<?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>206516</bug_id>
          
          <creation_ts>2020-01-20 20:03:40 -0800</creation_ts>
          <short_desc>Make RenderingMode and AlphaPremultiplication enum classes and move them to separate headers</short_desc>
          <delta_ts>2020-01-22 10:15:08 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Canvas</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>204955</blocked>
    
    <blocked>206519</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Said Abou-Hallawa">sabouhallawa</reporter>
          <assigned_to name="Said Abou-Hallawa">sabouhallawa</assigned_to>
          <cc>alecflett</cc>
    
    <cc>annulen</cc>
    
    <cc>beidson</cc>
    
    <cc>cdumez</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>ddkilzer</cc>
    
    <cc>dino</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>fmalita</cc>
    
    <cc>fred.wang</cc>
    
    <cc>glenn</cc>
    
    <cc>graouts</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>jer.noble</cc>
    
    <cc>jsbell</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>luiz</cc>
    
    <cc>macpherson</cc>
    
    <cc>menard</cc>
    
    <cc>noam</cc>
    
    <cc>pdr</cc>
    
    <cc>philipj</cc>
    
    <cc>ryuan.choi</cc>
    
    <cc>schenney</cc>
    
    <cc>sergio</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1608921</commentid>
    <comment_count>0</comment_count>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2020-01-20 20:03:40 -0800</bug_when>
    <thetext>RenderingMode and AlphaPremultiplication need to be encoding and decoding when they are sent from the WebProcess to the GPUProcess.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1608922</commentid>
    <comment_count>1</comment_count>
      <attachid>388275</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2020-01-20 20:29:47 -0800</bug_when>
    <thetext>Created attachment 388275
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1608929</commentid>
    <comment_count>2</comment_count>
      <attachid>388277</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2020-01-20 21:23:37 -0800</bug_when>
    <thetext>Created attachment 388277
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1608930</commentid>
    <comment_count>3</comment_count>
      <attachid>388278</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2020-01-20 21:41:12 -0800</bug_when>
    <thetext>Created attachment 388278
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1608931</commentid>
    <comment_count>4</comment_count>
      <attachid>388279</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2020-01-20 22:05:52 -0800</bug_when>
    <thetext>Created attachment 388279
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1609310</commentid>
    <comment_count>5</comment_count>
      <attachid>388279</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2020-01-21 14:53:11 -0800</bug_when>
    <thetext>Comment on attachment 388279
Patch

Rejecting attachment 388279 from commit-queue.

Failed to run &quot;[&apos;/Volumes/Data/EWS/WebKit/Tools/Scripts/webkit-patch&apos;, &apos;--status-host=webkit-queues.webkit.org&apos;, &apos;--bot-id=webkit-cq-03&apos;, &apos;apply-attachment&apos;, &apos;--no-update&apos;, &apos;--non-interactive&apos;, 388279, &apos;--port=mac&apos;]&quot; exit_code: 2 cwd: /Volumes/Data/EWS/WebKit

Logging in as commit-queue@webkit.org...
Fetching: https://bugs.webkit.org/attachment.cgi?id=388279&amp;action=edit
Fetching: https://bugs.webkit.org/show_bug.cgi?id=206516&amp;ctype=xml&amp;excludefield=attachmentdata
Processing 1 patch from 1 bug.
Processing patch 388279 from bug 206516.
Fetching: https://bugs.webkit.org/attachment.cgi?id=388279
Failed to run &quot;[u&apos;/Volumes/Data/EWS/WebKit/Tools/Scripts/svn-apply&apos;, &apos;--force&apos;, &apos;--reviewer&apos;, u&apos;Tim Horton&apos;]&quot; exit_code: 1 cwd: /Volumes/Data/EWS/WebKit

Parsed 38 diffs from patch file(s).
patching file Source/WebCore/ChangeLog
Hunk #1 succeeded at 1 with fuzz 3.
patching file Source/WebKitLegacy/mac/ChangeLog
Hunk #1 succeeded at 1 with fuzz 3.
patching file Source/WebCore/Headers.cmake
patching file Source/WebCore/Modules/async-clipboard/ClipboardItemBindingsDataSource.cpp
patching file Source/WebCore/WebCore.xcodeproj/project.pbxproj
Hunk #3 succeeded at 25022 (offset 6 lines).
Hunk #4 succeeded at 25199 (offset 6 lines).
Hunk #5 succeeded at 29057 (offset 12 lines).
Hunk #6 FAILED at 31387.
Hunk #7 succeeded at 32033 (offset 13 lines).
Hunk #8 FAILED at 32084.
2 out of 8 hunks FAILED -- saving rejects to file Source/WebCore/WebCore.xcodeproj/project.pbxproj.rej
patching file Source/WebCore/bindings/js/SerializedScriptValue.cpp
patching file Source/WebCore/css/CSSFilterImageValue.cpp
patching file Source/WebCore/html/CustomPaintCanvas.cpp
patching file Source/WebCore/html/HTMLCanvasElement.cpp
patching file Source/WebCore/html/ImageBitmap.cpp
patching file Source/WebCore/html/OffscreenCanvas.cpp
patching file Source/WebCore/html/canvas/CanvasRenderingContext2DBase.cpp
patching file Source/WebCore/html/canvas/ImageBitmapRenderingContext.cpp
patching file Source/WebCore/html/canvas/WebGLRenderingContextBase.cpp
patching file Source/WebCore/html/shadow/MediaControlElements.cpp
patching file Source/WebCore/page/FrameSnapshotting.cpp
patching file Source/WebCore/platform/graphics/AlphaPremultiplication.h
patching file Source/WebCore/platform/graphics/BitmapImage.cpp
patching file Source/WebCore/platform/graphics/GraphicsContext.h
patching file Source/WebCore/platform/graphics/GraphicsTypes.cpp
patching file Source/WebCore/platform/graphics/GraphicsTypes.h
patching file Source/WebCore/platform/graphics/ImageBuffer.h
patching file Source/WebCore/platform/graphics/RenderingMode.h
patching file Source/WebCore/platform/graphics/ShadowBlur.cpp
patching file Source/WebCore/platform/graphics/cairo/ImageBufferCairo.cpp
patching file Source/WebCore/platform/graphics/cg/ImageBufferCG.cpp
patching file Source/WebCore/platform/graphics/cg/ImageBufferDataCG.h
patching file Source/WebCore/platform/graphics/filters/Filter.h
patching file Source/WebCore/platform/graphics/texmap/BitmapTexture.cpp
patching file Source/WebCore/platform/graphics/win/ImageBufferDirect2D.cpp
patching file Source/WebCore/platform/mock/MockRealtimeVideoSource.cpp
patching file Source/WebCore/rendering/RenderLayer.cpp
Hunk #1 succeeded at 6941 (offset 36 lines).
patching file Source/WebCore/rendering/shapes/Shape.cpp
patching file Source/WebCore/rendering/svg/RenderSVGResourceClipper.cpp
patching file Source/WebCore/rendering/svg/RenderSVGResourceFilter.cpp
patching file Source/WebCore/rendering/svg/RenderSVGResourceMasker.cpp
patching file Source/WebCore/svg/graphics/SVGImage.cpp
patching file Source/WebKitLegacy/mac/WebCoreSupport/WebContextMenuClient.mm

Failed to run &quot;[u&apos;/Volumes/Data/EWS/WebKit/Tools/Scripts/svn-apply&apos;, &apos;--force&apos;, &apos;--reviewer&apos;, u&apos;Tim Horton&apos;]&quot; exit_code: 1 cwd: /Volumes/Data/EWS/WebKit

Full output: https://webkit-queues.webkit.org/results/13309352</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1609336</commentid>
    <comment_count>6</comment_count>
      <attachid>388362</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2020-01-21 15:37:15 -0800</bug_when>
    <thetext>Created attachment 388362
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1609366</commentid>
    <comment_count>7</comment_count>
      <attachid>388362</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2020-01-21 16:26:29 -0800</bug_when>
    <thetext>Comment on attachment 388362
Patch

Clearing flags on attachment: 388362

Committed r254893: &lt;https://trac.webkit.org/changeset/254893&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1609367</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2020-01-21 16:26:31 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1609368</commentid>
    <comment_count>9</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-01-21 16:27:15 -0800</bug_when>
    <thetext>&lt;rdar://problem/58778857&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1609393</commentid>
    <comment_count>10</comment_count>
      <attachid>388362</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2020-01-21 17:16:15 -0800</bug_when>
    <thetext>Comment on attachment 388362
Patch

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

&gt; Source/WebCore/platform/graphics/AlphaPremultiplication.h:37
&gt; +WEBCORE_EXPORT WTF::TextStream&amp; operator&lt;&lt;(WTF::TextStream&amp;, AlphaPremultiplication);

Where is this function defined?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1609512</commentid>
    <comment_count>11</comment_count>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2020-01-22 05:16:28 -0800</bug_when>
    <thetext>(In reply to WebKit Commit Bot from comment #7)
&gt; Comment on attachment 388362 [details]
&gt; Patch
&gt; 
&gt; Clearing flags on attachment: 388362
&gt; 
&gt; Committed r254893: &lt;https://trac.webkit.org/changeset/254893&gt;

Follow-up build fix for Windows 10 Debug Build:

&lt;https://trac.webkit.org/changeset/254916&gt;

Build failure:

&lt;https://build.webkit.org/builders/Apple%20Win%2010%20Debug%20%28Build%29/builds/9682&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1609599</commentid>
    <comment_count>12</comment_count>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2020-01-22 10:14:05 -0800</bug_when>
    <thetext>(In reply to Darin Adler from comment #10)
&gt; Comment on attachment 388362 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=388362&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/platform/graphics/AlphaPremultiplication.h:37
&gt; &gt; +WEBCORE_EXPORT WTF::TextStream&amp; operator&lt;&lt;(WTF::TextStream&amp;, AlphaPremultiplication);
&gt; 
&gt; Where is this function defined?

WebCore/platform/graphics/GraphicsTypes.cpp</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1609600</commentid>
    <comment_count>13</comment_count>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2020-01-22 10:15:08 -0800</bug_when>
    <thetext>(In reply to David Kilzer (:ddkilzer) from comment #11)
&gt; (In reply to WebKit Commit Bot from comment #7)
&gt; &gt; Comment on attachment 388362 [details]
&gt; &gt; Patch
&gt; &gt; 
&gt; &gt; Clearing flags on attachment: 388362
&gt; &gt; 
&gt; &gt; Committed r254893: &lt;https://trac.webkit.org/changeset/254893&gt;
&gt; 
&gt; Follow-up build fix for Windows 10 Debug Build:
&gt; 
&gt; &lt;https://trac.webkit.org/changeset/254916&gt;
&gt; 
&gt; Build failure:
&gt; 
&gt; &lt;https://build.webkit.org/builders/Apple%20Win%2010%20Debug%20%28Build%29/
&gt; builds/9682&gt;

Thanks David!</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>388275</attachid>
            <date>2020-01-20 20:29:47 -0800</date>
            <delta_ts>2020-01-20 21:23:35 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-206516-20200120202946.patch</filename>
            <type>text/plain</type>
            <size>42665</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU0ODQxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDE0ZjAwY2EzZGFkNjI1
MDkwYjYzMDVkNGE3ZGFjMzhjMWNmMjllNS4uMjkyNDdjZDNmZjk5NmRmMTIxZjU4YzNhOGZmOTJi
NWU1ZjcxNmM2MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDc1IEBACisyMDIwLTAxLTIwICBTYWlk
IEFib3UtSGFsbGF3YSAgPHNhYm91aGFsbGF3YUBhcHBsZS5jb20+CisKKyAgICAgICAgTWFrZSBS
ZW5kZXJpbmdNb2RlIGFuZCBBbHBoYVByZW11bHRpcGxpY2F0aW9uIGVudW0gY2xhc3NlcyBhbmQg
bW92ZSB0aGVtIHRvIHNlcGFyYXRlIGhlYWRlcnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNjUxNgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIFJlbmRlcmluZ01vZGUgYW5kIEFscGhhUHJlbXVsdGlwbGlj
YXRpb24gbmVlZCB0byBiZSBlbmNvZGVkIGFuZCBkZWNvZGVkCisgICAgICAgIHdoZW4gdGhleSBh
cmUgc2VudCBmcm9tIHRoZSBXZWJQcm9jZXNzIHRvIHRoZSBHUFVQcm9jZXNzLgorCisgICAgICAg
ICogTW9kdWxlcy9hc3luYy1jbGlwYm9hcmQvQ2xpcGJvYXJkSXRlbUJpbmRpbmdzRGF0YVNvdXJj
ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDbGlwYm9hcmRJdGVtQmluZGluZ3NEYXRhU291cmNl
OjpDbGlwYm9hcmRJdGVtVHlwZUxvYWRlcjo6c2FuaXRpemVEYXRhSWZOZWVkZWQpOgorICAgICAg
ICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBiaW5kaW5n
cy9qcy9TZXJpYWxpemVkU2NyaXB0VmFsdWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2xvbmVE
ZXNlcmlhbGl6ZXI6OnJlYWRJbWFnZUJpdG1hcCk6CisgICAgICAgICogY3NzL0NTU0ZpbHRlcklt
YWdlVmFsdWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTRmlsdGVySW1hZ2VWYWx1ZTo6aW1h
Z2UpOgorICAgICAgICAqIGh0bWwvQ3VzdG9tUGFpbnRDYW52YXMuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6Q3VzdG9tUGFpbnRDYW52YXM6OmNvcGllZEltYWdlIGNvbnN0KToKKyAgICAgICAgKiBo
dG1sL0hUTUxDYW52YXNFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxDYW52YXNF
bGVtZW50OjpjcmVhdGVJbWFnZUJ1ZmZlciBjb25zdCk6CisgICAgICAgICogaHRtbC9JbWFnZUJp
dG1hcC5jcHA6CisgICAgICAgICogaHRtbC9PZmZzY3JlZW5DYW52YXMuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6T2Zmc2NyZWVuQ2FudmFzOjp0cmFuc2ZlclRvSW1hZ2VCaXRtYXApOgorICAgICAg
ICAoV2ViQ29yZTo6T2Zmc2NyZWVuQ2FudmFzOjpjcmVhdGVJbWFnZUJ1ZmZlciBjb25zdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpPZmZzY3JlZW5DYW52YXM6OnRha2VJbWFnZUJ1ZmZlciBjb25zdCk6
CisgICAgICAgICogaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEQmFzZS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpDYW52YXNSZW5kZXJpbmdDb250ZXh0MkRCYXNlOjpjcmVhdGVD
b21wb3NpdGluZ0J1ZmZlcik6CisgICAgICAgIChXZWJDb3JlOjpDYW52YXNSZW5kZXJpbmdDb250
ZXh0MkRCYXNlOjpjcmVhdGVQYXR0ZXJuKToKKyAgICAgICAgKiBodG1sL2NhbnZhcy9JbWFnZUJp
dG1hcFJlbmRlcmluZ0NvbnRleHQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VCaXRtYXBS
ZW5kZXJpbmdDb250ZXh0Ojppc0FjY2VsZXJhdGVkIGNvbnN0KToKKyAgICAgICAgKiBodG1sL2Nh
bnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Oldl
YkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OkxSVUltYWdlQnVmZmVyQ2FjaGU6OmltYWdlQnVmZmVy
KToKKyAgICAgICAgKiBodG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xFbGVtZW50cy5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpNZWRpYUNvbnRyb2xUZXh0VHJhY2tDb250YWluZXJFbGVtZW50OjpjcmVh
dGVUZXh0VHJhY2tSZXByZXNlbnRhdGlvbkltYWdlKToKKyAgICAgICAgKiBwYWdlL0ZyYW1lU25h
cHNob3R0aW5nLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnNuYXBzaG90RnJhbWVSZWN0V2l0aENs
aXApOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0FscGhhUHJlbXVsdGlwbGljYXRpb24u
aDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvQml0bWFwSW1hZ2UuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6Qml0bWFwSW1hZ2U6Om5hdGl2ZUltYWdlRm9yQ3VycmVudEZyYW1l
UmVzcGVjdGluZ09yaWVudGF0aW9uKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9HcmFw
aGljc0NvbnRleHQuaDoKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDo6cmVuZGVy
aW5nTW9kZSBjb25zdCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NUeXBl
cy5jcHA6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NUeXBlcy5oOgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0ltYWdlQnVmZmVyLmg6CisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvUmVuZGVyaW5nTW9kZS5oOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9TaGFkb3dCbHVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcmF0Y2hCdWZmZXI6
OmdldFNjcmF0Y2hCdWZmZXIpOgorICAgICAgICAoV2ViQ29yZTo6U2hhZG93Qmx1cjo6ZHJhd1Jl
Y3RTaGFkb3dXaXRob3V0VGlsaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OlNoYWRvd0JsdXI6OmRy
YXdJbnNldFNoYWRvd1dpdGhvdXRUaWxpbmcpOgorICAgICAgICAoV2ViQ29yZTo6U2hhZG93Qmx1
cjo6ZHJhd1JlY3RTaGFkb3dXaXRoVGlsaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OlNoYWRvd0Js
dXI6OmRyYXdJbnNldFNoYWRvd1dpdGhUaWxpbmcpOgorICAgICAgICAoV2ViQ29yZTo6U2hhZG93
Qmx1cjo6ZHJhd1NoYWRvd0xheWVyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jZy9J
bWFnZUJ1ZmZlckNHLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkltYWdlQnVmZmVyOjpJbWFnZUJ1
ZmZlcik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSW1hZ2VCdWZmZXJEYXRhQ0cu
aDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZpbHRlci5oOgorICAgICAg
ICAqIHBsYXRmb3JtL21vY2svTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2UuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6TW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2U6OmltYWdlQnVmZmVyIGNvbnN0KToKKyAg
ICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVu
ZGVyTGF5ZXI6OmNhbGN1bGF0ZUNsaXBSZWN0cyBjb25zdCk6CisgICAgICAgICogcmVuZGVyaW5n
L3NoYXBlcy9TaGFwZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTaGFwZTo6Y3JlYXRlUmFzdGVy
U2hhcGUpOgorICAgICAgICAqIHJlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUmVzb3VyY2VDbGlwcGVy
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclNWR1Jlc291cmNlQ2xpcHBlcjo6YXBwbHlD
bGlwcGluZ1RvQ29udGV4dCk6CisgICAgICAgICogcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdSZXNv
dXJjZUZpbHRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTVkdSZXNvdXJjZUZpbHRl
cjo6YXBwbHlSZXNvdXJjZSk6CisgICAgICAgICogcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdSZXNv
dXJjZU1hc2tlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTVkdSZXNvdXJjZU1hc2tl
cjo6YXBwbHlSZXNvdXJjZSk6CisgICAgICAgICogc3ZnL2dyYXBoaWNzL1NWR0ltYWdlLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlNWR0ltYWdlOjpuYXRpdmVJbWFnZUZvckN1cnJlbnRGcmFtZSk6
CisKIDIwMjAtMDEtMjAgIFNhaWQgQWJvdS1IYWxsYXdhICA8c2Fib3VoYWxsYXdhQGFwcGxlLmNv
bT4KIAogICAgICAgICBFWElGIG9yaWVudGF0aW9uIGlzIGlnbm9yZWQgZm9yIHNvbWUgQ1NTIGlt
YWdlcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nIGIvU291
cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCmluZGV4IDZmYWIyN2M1ZjBkMzE5MWI0YWJl
MmZjN2ZlYmQyMjc3NDEyODY4MmEuLjI5ZTI2M2NhZmY4MmY4YmRjZDkxOTc1MDQyYjUwMDcxMDNl
YjIzYTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZworKysg
Yi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAy
MC0wMS0yMCAgU2FpZCBBYm91LUhhbGxhd2EgIDxzYWJvdWhhbGxhd2FAYXBwbGUuY29tPgorCisg
ICAgICAgIE1ha2UgUmVuZGVyaW5nTW9kZSBhbmQgQWxwaGFQcmVtdWx0aXBsaWNhdGlvbiBlbnVt
IGNsYXNzZXMgYW5kIG1vdmUgdGhlbSB0byBzZXBhcmF0ZSBoZWFkZXJzCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDY1MTYKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkNv
bnRleHRNZW51Q2xpZW50Lm1tOgorICAgICAgICAoV2ViQ29udGV4dE1lbnVDbGllbnQ6OmltYWdl
Rm9yQ3VycmVudFNoYXJpbmdTZXJ2aWNlUGlja2VySXRlbSk6CisKIDIwMjAtMDEtMjAgIERhdmlk
IEtpbHplciAgPGRka2lsemVyQGFwcGxlLmNvbT4KIAogICAgICAgICBGaXggbWlzc2luZyBoZWFk
ZXIgZ3VhcmRzIGFuZCBjbGVhbiB1cCBlbXB0eSBmaWxlcyBpbiBXZWJDb3JlLCBXZWJLaXRMZWdh
Y3ksIFdlYktpdCwgVG9vbHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXN5
bmMtY2xpcGJvYXJkL0NsaXBib2FyZEl0ZW1CaW5kaW5nc0RhdGFTb3VyY2UuY3BwIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9hc3luYy1jbGlwYm9hcmQvQ2xpcGJvYXJkSXRlbUJpbmRpbmdzRGF0
YVNvdXJjZS5jcHAKaW5kZXggNDY0MWQ1ODA4YTUyN2VjNmUzMGQxY2ZiNmU4MGIyMzFkZDU2ZDZi
MC4uNzQ2NWQwZTZhODY2ODczOGY0ZWJkYzU3NGY5MjZjNzQ4OGU3YWE0ZSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9hc3luYy1jbGlwYm9hcmQvQ2xpcGJvYXJkSXRlbUJpbmRp
bmdzRGF0YVNvdXJjZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hc3luYy1jbGlw
Ym9hcmQvQ2xpcGJvYXJkSXRlbUJpbmRpbmdzRGF0YVNvdXJjZS5jcHAKQEAgLTI4NCw3ICsyODQs
NyBAQCB2b2lkIENsaXBib2FyZEl0ZW1CaW5kaW5nc0RhdGFTb3VyY2U6OkNsaXBib2FyZEl0ZW1U
eXBlTG9hZGVyOjpzYW5pdGl6ZURhdGFJZk5lZQogCiAgICAgICAgIGF1dG8gYml0bWFwSW1hZ2Ug
PSBCaXRtYXBJbWFnZTo6Y3JlYXRlKCk7CiAgICAgICAgIGJpdG1hcEltYWdlLT5zZXREYXRhKFdU
Rk1vdmUoYnVmZmVyVG9TYW5pdGl6ZSksIHRydWUpOwotICAgICAgICBhdXRvIGltYWdlQnVmZmVy
ID0gSW1hZ2VCdWZmZXI6OmNyZWF0ZShiaXRtYXBJbWFnZS0+c2l6ZSgpLCBVbmFjY2VsZXJhdGVk
KTsKKyAgICAgICAgYXV0byBpbWFnZUJ1ZmZlciA9IEltYWdlQnVmZmVyOjpjcmVhdGUoYml0bWFw
SW1hZ2UtPnNpemUoKSwgUmVuZGVyaW5nTW9kZTo6VW5hY2NlbGVyYXRlZCk7CiAgICAgICAgIGlm
ICghaW1hZ2VCdWZmZXIpIHsKICAgICAgICAgICAgIG1fZGF0YSA9IHsgbnVsbFN0cmluZygpIH07
CiAgICAgICAgICAgICByZXR1cm47CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggZDViM2NlYWVkZWNkNjMwNjgzYThkODBlOTgyMmIz
ZGY0MWQ3NjIwZS4uNmVkNGFjMjNhNmQ5YWM5NDRlYzE4NjRiYzY0OTdiMjc1Zjg1YTQ4MiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpA
QCAtMjE0MSw2ICsyMTQxLDggQEAKIAkJNzI0RUQzMzIxQTNBOEIyMzAwRjVGMTNDIC8qIEpTRVhU
QmxlbmRNaW5NYXguaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDcyNEVEMzMwMUEzQThCMjMwMEY1RjEzQyAvKiBKU0VYVEJsZW5kTWluTWF4LmggKi87IH07
CiAJCTcyNEVFNTUwMURDODBEN0YwMEE5MUZGQiAvKiBBY3Rpdml0eVN0YXRlLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3MjRFRTU0RTFEQzdGMjVCMDBB
OTFGRkIgLyogQWN0aXZpdHlTdGF0ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07CiAJCTcyNEVFNTUxMURDODBEODQwMEE5MUZGQiAvKiBBY3Rpdml0eVN0
YXRlQ2hhbmdlT2JzZXJ2ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDcyNEVFNTRGMURDN0YyNUIwMEE5MUZGQiAvKiBBY3Rpdml0eVN0YXRlQ2hhbmdl
T2JzZXJ2ZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OworCQk3Mjk5QkM2NzIzRDZBNTMyMDBDQzY4ODMgLyogQWxwaGFQcmVtdWx0aXBsaWNhdGlvbi5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzI5OUJDNjQy
M0Q2ODZBNjAwQ0M2ODgzIC8qIEFscGhhUHJlbXVsdGlwbGljYXRpb24uaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk3Mjk5QkM2ODIzRDZBNTNFMDBD
QzY4ODMgLyogUmVuZGVyaW5nTW9kZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gNzI5OUJDNjYyM0Q2ODZDNjAwQ0M2ODgzIC8qIFJlbmRlcmluZ01vZGUu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk3NTUz
Q0ZFODEwOEY0NzNGMDBFQTI4MUUgLyogVGltZWxpbmVSZWNvcmRGYWN0b3J5LmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3NTUzQ0ZFNjEwOEY0NzNGMDBF
QTI4MUUgLyogVGltZWxpbmVSZWNvcmRGYWN0b3J5LmggKi87IH07CiAJCTc1NzkzRTg0MEQwQ0Uw
QjMwMDdGQzBBQyAvKiBNZXNzYWdlRXZlbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDc1NzkzRTgxMEQwQ0UwQjMwMDdGQzBBQyAvKiBNZXNzYWdlRXZl
bnQuaCAqLzsgfTsKIAkJNzU3OTNFQzkwRDBDRTcyRDAwN0ZDMEFDIC8qIEpTTWVzc2FnZUV2ZW50
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3NTc5M0VD
NzBEMENFNzJEMDA3RkMwQUMgLyogSlNNZXNzYWdlRXZlbnQuaCAqLzsgfTsKQEAgLTk2NDAsNiAr
OTY0Miw4IEBACiAJCTcyN0FGRUQxMUEyRUE2QTAwMDA0NDJFOCAvKiBFWFRzUkdCLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEVYVHNSR0IuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk3MjdBRkVEMjFBMkVBNkEwMDAwNDQyRTggLyogRVhUc1JHQi5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBFWFRzUkdCLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTcyN0FGRUQzMUEyRUE2QTAwMDA0NDJFOCAvKiBFWFRzUkdCLmlk
bCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBFWFRzUkdCLmlkbDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJNzI5OUJDNjQyM0Q2ODZBNjAwQ0M2ODgzIC8qIEFscGhhUHJlbXVsdGlwbGlj
YXRpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQWxwaGFQcmVtdWx0aXBsaWNhdGlvbi5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQk3Mjk5QkM2NjIzRDY4NkM2MDBDQzY4ODMgLyogUmVuZGVy
aW5nTW9kZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW5kZXJpbmdNb2RlLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTcyQzE4QTNGMjMwQjA0QjcwMDY4NDdDNyAvKiBJbWFnZVBhaW50aW5n
T3B0aW9ucy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJbWFnZVBhaW50aW5nT3B0aW9ucy5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk3MkU0MTc2MTFBMkU4RDJGMDA0QzU2MkEgLyogSlNFWFRz
UkdCLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTRVhUc1JHQi5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTcyRTQxNzYyMUEyRThEMkYwMDRDNTYy
QSAvKiBKU0VYVHNSR0IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNFWFRz
UkdCLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yNTAxMiw2ICsyNTAxNiw3IEBA
CiAJCQkJRkJDMjIwREQxMjM3RkJFQjAwQkNGNzg4IC8qIG9wZW5nbCAqLywKIAkJCQkzNzIxNDkz
MzE4RjBCNkQ2MDAxNTZFREMgLyogb3BlbnR5cGUgKi8sCiAJCQkJNDlFOTExQjIwRUY4NkQyNzAw
OUQwQ0FGIC8qIHRyYW5zZm9ybXMgKi8sCisJCQkJNzI5OUJDNjQyM0Q2ODZBNjAwQ0M2ODgzIC8q
IEFscGhhUHJlbXVsdGlwbGljYXRpb24uaCAqLywKIAkJCQk0OTA3MDdFNDEyMTlDMDQzMDBEOTBF
NTEgLyogQU5HTEVXZWJLaXRCcmlkZ2UuY3BwICovLAogCQkJCTQ5MDcwN0U1MTIxOUMwNDMwMEQ5
MEU1MSAvKiBBTkdMRVdlYktpdEJyaWRnZS5oICovLAogCQkJCUJFRjI5RUU5MTcxNUREMDkwMEM0
QjRDOSAvKiBBdWRpb1RyYWNrUHJpdmF0ZS5oICovLApAQCAtMjUxODgsNiArMjUxOTMsNyBAQAog
CQkJCUJDQUI0MTgwMTNFMzU2RTgwMEQ4QUFGMyAvKiBSZWdpb24uaCAqLywKIAkJCQkwNzNBMTU1
MTIxNzdBMzk4MDBFQTA4RjIgLyogUmVtb3RlVmlkZW9TYW1wbGUuY3BwICovLAogCQkJCTA3M0Ex
NTUzMjE3N0EzOUEwMEVBMDhGMiAvKiBSZW1vdGVWaWRlb1NhbXBsZS5oICovLAorCQkJCTcyOTlC
QzY2MjNENjg2QzYwMENDNjg4MyAvKiBSZW5kZXJpbmdNb2RlLmggKi8sCiAJCQkJQTczRjk1RkMx
MkM5N0JGRTAwMzFBQUY5IC8qIFJvdW5kZWRSZWN0LmNwcCAqLywKIAkJCQlBNzNGOTVGRDEyQzk3
QkZFMDAzMUFBRjkgLyogUm91bmRlZFJlY3QuaCAqLywKIAkJCQkwRjNERDQ0RDEyRjVFQTFCMDAw
RDkxOTAgLyogU2hhZG93Qmx1ci5jcHAgKi8sCkBAIC0yOTAzOSw2ICsyOTA0NSw3IEBACiAJCQkJ
QkNGN0U0OTExMzdDRDdDNzAwMUREQUU3IC8qIEFkanVzdFZpZXdTaXplT3JOb3QuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTg0RDBDNDA2MTExNUYxRUEwMDE4QUEzNCAvKiBBZmZpbmVUcmFuc2Zvcm0u
aCBpbiBIZWFkZXJzICovLAogCQkJCTgzQkI1Qzg4MUQ1RDZGNDUwMDVBNzFGNCAvKiBBbGxEZXNj
ZW5kYW50c0NvbGxlY3Rpb24uaCBpbiBIZWFkZXJzICovLAorCQkJCTcyOTlCQzY3MjNENkE1MzIw
MENDNjg4MyAvKiBBbHBoYVByZW11bHRpcGxpY2F0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQlD
RURBMTJENzE1MkNBMUNCMDBEOUUwOEQgLyogQWx0ZXJuYXRpdmVUZXh0Q2xpZW50LmggaW4gSGVh
ZGVycyAqLywKIAkJCQlDRTA4QzNEMjE1MkI1OTlBMDAyMUI4QzIgLyogQWx0ZXJuYXRpdmVUZXh0
Q29udHJvbGxlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQ0U3QjJEQjMxNTg2QUJBRDAwOThCM0ZB
IC8qIEFsdGVybmF0aXZlVGV4dFVJQ29udHJvbGxlci5oIGluIEhlYWRlcnMgKi8sCkBAIC0zMTM2
OCw2ICszMTM3NSw3IEBACiAJCQkJMTE5OUZBNDYyMDhFMzVBMzAwMjM1OENDIC8qIExheW91dENv
bnRhaW5lci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNkYyNkJCNkMyMzM0M0U2RjAwMkYyQkVBIC8q
IExheW91dENvbnRleHQuaCBpbiBIZWFkZXJzICovLAogCQkJCTExMzEwQ0Y1MjBCQTRBNEMwMDY1
QThEMCAvKiBMYXlvdXREZXNjZW5kYW50SXRlcmF0b3IuaCBpbiBIZWFkZXJzICovLAorCQkJCUU0
MTgwMjU1MjNENDU0OUIwMEZGQjA3MSAvKiBMYXlvdXRJbnRlZ3JhdGlvbkJveFRyZWUuaCBpbiBI
ZWFkZXJzICovLAogCQkJCUU0QUJBQkREMjM2MDg4RkUwMEZBNDM0NSAvKiBMYXlvdXRJbnRlZ3Jh
dGlvbkxpbmVMYXlvdXQuaCBpbiBIZWFkZXJzICovLAogCQkJCTExMzEwQ0Y0MjBCQTRBM0QwMDY1
QThEMCAvKiBMYXlvdXRJdGVyYXRvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTMxRDcyRjYxNUZF
Njk1MzAwQzRDMDdFIC8qIExheW91dE1pbGVzdG9uZS5oIGluIEhlYWRlcnMgKi8sCkBAIC0zMjAx
Miw2ICszMjAyMCw3IEBACiAJCQkJQkNFQTQ4NzYwOTdEOTMwMjAwOTRDOUU0IC8qIFJlbmRlcklt
YWdlLmggaW4gSGVhZGVycyAqLywKIAkJCQkwOEYyRjAwQTEyMTNFNjE3MDBEQ0VDNDggLyogUmVu
ZGVySW1hZ2VSZXNvdXJjZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDg2NDFENDgxMjE0MkY3RDAw
OERFOUY2IC8qIFJlbmRlckltYWdlUmVzb3VyY2VTdHlsZUltYWdlLmggaW4gSGVhZGVycyAqLywK
KwkJCQk3Mjk5QkM2ODIzRDZBNTNFMDBDQzY4ODMgLyogUmVuZGVyaW5nTW9kZS5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJNTU2QzdDNEIyMjEyMzk5NzAwOUIwNkNBIC8qIFJlbmRlcmluZ1VwZGF0ZVNj
aGVkdWxlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkNFQTQ4NzgwOTdEOTMwMjAwOTRDOUU0IC8q
IFJlbmRlcklubGluZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjU5NUZGNDcxODI0Q0VFMzAwRkY1
MUNEIC8qIFJlbmRlckl0ZXJhdG9yLmggaW4gSGVhZGVycyAqLywKQEAgLTMyMDYyLDcgKzMyMDcx
LDYgQEAKIAkJCQk0NThGRTQwQTE1ODlERjBCMDA1NjA5RTYgLyogUmVuZGVyU2VhcmNoRmllbGQu
aCBpbiBIZWFkZXJzICovLAogCQkJCTBGMTFBNTRGMEYzOTIzMzEwMEMzNzg4NCAvKiBSZW5kZXJT
ZWxlY3Rpb25JbmZvLmggaW4gSGVhZGVycyAqLywKIAkJCQlBQjI0N0E2RDBBRkQ2MzgzMDAzRkE1
RkQgLyogUmVuZGVyU2xpZGVyLmggaW4gSGVhZGVycyAqLywKLQkJCQlFNDE4MDI1NTIzRDQ1NDlC
MDBGRkIwNzEgLyogTGF5b3V0SW50ZWdyYXRpb25Cb3hUcmVlLmggaW4gSGVhZGVycyAqLywKIAkJ
CQkzMTk1NUE4ODE2MEQxOTkyMDA4NTgwMjUgLyogUmVuZGVyU25hcHNob3R0ZWRQbHVnSW4uaCBp
biBIZWFkZXJzICovLAogCQkJCUJDOEM4RkFFMEREQ0QzMUIwMEI1OTJGNCAvKiBSZW5kZXJTdHls
ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkM1RUI2NjgwRTgxQ0I3MTAwQjI1OTY1IC8qIFJlbmRl
clN0eWxlQ29uc3RhbnRzLmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9TZXJpYWxpemVkU2NyaXB0VmFsdWUuY3BwCmluZGV4IDY0ZGZmMmQ5ODRl
ZjcyZGQ5ZWJhNTEwMjQwNjEwZmMxOGUyMWQ5NDcuLmVkYTE3MTdkZGZmZDdlYjBiYzNmODcwMmI4
MjkzZTg5OWJkNWNlN2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1Nl
cmlhbGl6ZWRTY3JpcHRWYWx1ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
U2VyaWFsaXplZFNjcmlwdFZhbHVlLmNwcApAQCAtMjc4NSw3ICsyNzg1LDcgQEAgcHJpdmF0ZToK
ICAgICAgICAgICAgIHJldHVybiBKU1ZhbHVlKCk7CiAgICAgICAgIH0KIAotICAgICAgICBhdXRv
IGJ1ZmZlciA9IEltYWdlQnVmZmVyOjpjcmVhdGUoRmxvYXRTaXplKGxvZ2ljYWxXaWR0aCwgbG9n
aWNhbEhlaWdodCksIFVuYWNjZWxlcmF0ZWQsIHJlc29sdXRpb25TY2FsZSk7CisgICAgICAgIGF1
dG8gYnVmZmVyID0gSW1hZ2VCdWZmZXI6OmNyZWF0ZShGbG9hdFNpemUobG9naWNhbFdpZHRoLCBs
b2dpY2FsSGVpZ2h0KSwgUmVuZGVyaW5nTW9kZTo6VW5hY2NlbGVyYXRlZCwgcmVzb2x1dGlvblNj
YWxlKTsKICAgICAgICAgaWYgKCFidWZmZXIpIHsKICAgICAgICAgICAgIGZhaWwoKTsKICAgICAg
ICAgICAgIHJldHVybiBKU1ZhbHVlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3Mv
Q1NTRmlsdGVySW1hZ2VWYWx1ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRmlsdGVySW1h
Z2VWYWx1ZS5jcHAKaW5kZXggZTViOGFiNDY5Y2VjNGJjMDU4YzQzN2QxOTk1MDQwYjUwMjFjNzQz
MS4uMmZhNTNhYTM4YzFmY2MxMTczNTZhZjlmMTU1ZDAxNWQ0NDM3ZjBjZSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvY3NzL0NTU0ZpbHRlckltYWdlVmFsdWUuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9DU1NGaWx0ZXJJbWFnZVZhbHVlLmNwcApAQCAtMTE2LDcgKzExNiw3IEBAIFJl
ZlB0cjxJbWFnZT4gQ1NTRmlsdGVySW1hZ2VWYWx1ZTo6aW1hZ2UoUmVuZGVyRWxlbWVudCYgcmVu
ZGVyZXIsIGNvbnN0IEZsb2F0U2l6CiAKICAgICAvLyBUcmFuc2Zvcm0gSW1hZ2UgaW50byBJbWFn
ZUJ1ZmZlci4KICAgICAvLyBGSVhNRSAoMTQ5NDI0KTogVGhpcyBidWZmZXIgc2hvdWxkIG5vdCBi
ZSB1bmNvbmRpdGlvbmFsbHkgdW5hY2NlbGVyYXRlZC4KLSAgICBhdXRvIHRleHR1cmUgPSBJbWFn
ZUJ1ZmZlcjo6Y3JlYXRlKHNpemUsIFVuYWNjZWxlcmF0ZWQpOworICAgIGF1dG8gdGV4dHVyZSA9
IEltYWdlQnVmZmVyOjpjcmVhdGUoc2l6ZSwgUmVuZGVyaW5nTW9kZTo6VW5hY2NlbGVyYXRlZCk7
CiAgICAgaWYgKCF0ZXh0dXJlKQogICAgICAgICByZXR1cm4gJkltYWdlOjpudWxsSW1hZ2UoKTsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9DdXN0b21QYWludENhbnZhcy5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0N1c3RvbVBhaW50Q2FudmFzLmNwcAppbmRleCBmNGI3NzA3
ZTk3YThmZTUxZjhlMjU3NzU4YWRlNGI2ZGRmZjUwMmU1Li4xNDc3NjJmNTUyNDJlNjMxNTQ5ZGRi
MGEwNjc0YTYyMWZlOGNmM2Q1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0N1c3Rv
bVBhaW50Q2FudmFzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0N1c3RvbVBhaW50Q2Fu
dmFzLmNwcApAQCAtOTMsNyArOTMsNyBAQCBJbWFnZSogQ3VzdG9tUGFpbnRDYW52YXM6OmNvcGll
ZEltYWdlKCkgY29uc3QKICAgICBpZiAoIXdpZHRoKCkgfHwgIWhlaWdodCgpKQogICAgICAgICBy
ZXR1cm4gbnVsbHB0cjsKIAotICAgIG1fY29waWVkQnVmZmVyID0gSW1hZ2VCdWZmZXI6OmNyZWF0
ZShzaXplKCksIFVuYWNjZWxlcmF0ZWQsIDEsIENvbG9yU3BhY2U6OlNSR0IsIG51bGxwdHIpOwor
ICAgIG1fY29waWVkQnVmZmVyID0gSW1hZ2VCdWZmZXI6OmNyZWF0ZShzaXplKCksIFJlbmRlcmlu
Z01vZGU6OlVuYWNjZWxlcmF0ZWQsIDEsIENvbG9yU3BhY2U6OlNSR0IsIG51bGxwdHIpOwogICAg
IGlmICghbV9jb3BpZWRCdWZmZXIpCiAgICAgICAgIHJldHVybiBudWxscHRyOwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxDYW52YXNFbGVtZW50LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTENhbnZhc0VsZW1lbnQuY3BwCmluZGV4IDIzZDliMzRlODQ4ZjZkMDFk
MzRhOWRhZmZiYTMwNTBmYzdhNzEzMTYuLmI4NDQ0NzFkN2E4ZWE4NWM4ODMyMmIxMjljNDBhMTgw
NDk2MWI3NTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENhbnZhc0VsZW1l
bnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENhbnZhc0VsZW1lbnQuY3BwCkBA
IC04ODUsNyArODg1LDcgQEAgdm9pZCBIVE1MQ2FudmFzRWxlbWVudDo6Y3JlYXRlSW1hZ2VCdWZm
ZXIoKSBjb25zdAogICAgIGlmICghd2lkdGgoKSB8fCAhaGVpZ2h0KCkpCiAgICAgICAgIHJldHVy
bjsKIAotICAgIFJlbmRlcmluZ01vZGUgcmVuZGVyaW5nTW9kZSA9IHNob3VsZEFjY2VsZXJhdGUo
c2l6ZSgpKSA/IEFjY2VsZXJhdGVkIDogVW5hY2NlbGVyYXRlZDsKKyAgICBSZW5kZXJpbmdNb2Rl
IHJlbmRlcmluZ01vZGUgPSBzaG91bGRBY2NlbGVyYXRlKHNpemUoKSkgPyBSZW5kZXJpbmdNb2Rl
OjpBY2NlbGVyYXRlZCA6IFJlbmRlcmluZ01vZGU6OlVuYWNjZWxlcmF0ZWQ7CiAKICAgICBhdXRv
IGhvc3RXaW5kb3cgPSAoZG9jdW1lbnQoKS52aWV3KCkgJiYgZG9jdW1lbnQoKS52aWV3KCktPnJv
b3QoKSkgPyBkb2N1bWVudCgpLnZpZXcoKS0+cm9vdCgpLT5ob3N0V2luZG93KCkgOiBudWxscHRy
OwogICAgIHNldEltYWdlQnVmZmVyKEltYWdlQnVmZmVyOjpjcmVhdGUoc2l6ZSgpLCByZW5kZXJp
bmdNb2RlLCAxLCBDb2xvclNwYWNlOjpTUkdCLCBob3N0V2luZG93KSk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9odG1sL0ltYWdlQml0bWFwLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SW1hZ2VCaXRtYXAuY3BwCmluZGV4IDVmNDlmNzM5YTFmNWMzYmUwZWUxNzFmMzRmOTYzZTAyNjZi
YzQ0OTIuLjJiODE5ODllOGZkNjJlZmUzNDUzODdhOTAyZmU2OTJiMzA5OTU0ZmUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW1hZ2VCaXRtYXAuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSW1hZ2VCaXRtYXAuY3BwCkBAIC02MSw5ICs2MSw5IEBAIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIFdURl9NQUtFX0lTT19BTExPQ0FURURfSU1QTChJbWFnZUJpdG1hcCk7CiAKICNpZiBV
U0UoSU9TVVJGQUNFX0NBTlZBU19CQUNLSU5HX1NUT1JFKSB8fCBFTkFCTEUoQUNDRUxFUkFURURf
MkRfQ0FOVkFTKQotc3RhdGljIFJlbmRlcmluZ01vZGUgYnVmZmVyUmVuZGVyaW5nTW9kZSA9IEFj
Y2VsZXJhdGVkOworc3RhdGljIFJlbmRlcmluZ01vZGUgYnVmZmVyUmVuZGVyaW5nTW9kZSA9IFJl
bmRlcmluZ01vZGU6OkFjY2VsZXJhdGVkOwogI2Vsc2UKLXN0YXRpYyBSZW5kZXJpbmdNb2RlIGJ1
ZmZlclJlbmRlcmluZ01vZGUgPSBVbmFjY2VsZXJhdGVkOworc3RhdGljIFJlbmRlcmluZ01vZGUg
YnVmZmVyUmVuZGVyaW5nTW9kZSA9IFJlbmRlcmluZ01vZGU6OlVuYWNjZWxlcmF0ZWQ7CiAjZW5k
aWYKIAogUmVmPEltYWdlQml0bWFwPiBJbWFnZUJpdG1hcDo6Y3JlYXRlKEludFNpemUgc2l6ZSkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvT2Zmc2NyZWVuQ2FudmFzLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvT2Zmc2NyZWVuQ2FudmFzLmNwcAppbmRleCBmNzQ0ODUxMjAwMTU3
NWI0YWY0YmJhMjRlYWE1N2FiZTZhMDY0M2M5Li43NTVmMTFlZjg5ZTExODFiZTA2ZDVlYTJmMDA3
ODY5NmUzOWJlNGQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL09mZnNjcmVlbkNh
bnZhcy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9PZmZzY3JlZW5DYW52YXMuY3BwCkBA
IC0xMjYsNyArMTI2LDcgQEAgRXhjZXB0aW9uT3I8UmVmUHRyPEltYWdlQml0bWFwPj4gT2Zmc2Ny
ZWVuQ2FudmFzOjp0cmFuc2ZlclRvSW1hZ2VCaXRtYXAoKQogICAgICAgICAgICAgcmV0dXJuIHsg
UmVmUHRyPEltYWdlQml0bWFwPiB7IG51bGxwdHIgfSB9OwogCiAgICAgICAgIGlmICghbV9oYXND
cmVhdGVkSW1hZ2VCdWZmZXIpCi0gICAgICAgICAgICByZXR1cm4geyBJbWFnZUJpdG1hcDo6Y3Jl
YXRlKHsgSW1hZ2VCdWZmZXI6OmNyZWF0ZShzaXplKCksIFVuYWNjZWxlcmF0ZWQpLCB0cnVlIH0p
IH07CisgICAgICAgICAgICByZXR1cm4geyBJbWFnZUJpdG1hcDo6Y3JlYXRlKHsgSW1hZ2VCdWZm
ZXI6OmNyZWF0ZShzaXplKCksIFJlbmRlcmluZ01vZGU6OlVuYWNjZWxlcmF0ZWQpLCB0cnVlIH0p
IH07CiAKICAgICAgICAgYXV0byBidWZmZXIgPSB0YWtlSW1hZ2VCdWZmZXIoKTsKICAgICAgICAg
aWYgKCFidWZmZXIpCkBAIC0yNDMsNyArMjQzLDcgQEAgdm9pZCBPZmZzY3JlZW5DYW52YXM6OmNy
ZWF0ZUltYWdlQnVmZmVyKCkgY29uc3QKICAgICBpZiAoIXdpZHRoKCkgfHwgIWhlaWdodCgpKQog
ICAgICAgICByZXR1cm47CiAKLSAgICBzZXRJbWFnZUJ1ZmZlcihJbWFnZUJ1ZmZlcjo6Y3JlYXRl
KHNpemUoKSwgVW5hY2NlbGVyYXRlZCkpOworICAgIHNldEltYWdlQnVmZmVyKEltYWdlQnVmZmVy
OjpjcmVhdGUoc2l6ZSgpLCBSZW5kZXJpbmdNb2RlOjpVbmFjY2VsZXJhdGVkKSk7CiB9CiAKIHN0
ZDo6dW5pcXVlX3B0cjxJbWFnZUJ1ZmZlcj4gT2Zmc2NyZWVuQ2FudmFzOjp0YWtlSW1hZ2VCdWZm
ZXIoKSBjb25zdApAQCAtMjU3LDcgKzI1Nyw3IEBAIHN0ZDo6dW5pcXVlX3B0cjxJbWFnZUJ1ZmZl
cj4gT2Zmc2NyZWVuQ2FudmFzOjp0YWtlSW1hZ2VCdWZmZXIoKSBjb25zdAogICAgIGlmIChzaXpl
KCkuaXNFbXB0eSgpKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAotICAgIHJldHVybiBzZXRJ
bWFnZUJ1ZmZlcihJbWFnZUJ1ZmZlcjo6Y3JlYXRlKHNpemUoKSwgVW5hY2NlbGVyYXRlZCkpOwor
ICAgIHJldHVybiBzZXRJbWFnZUJ1ZmZlcihJbWFnZUJ1ZmZlcjo6Y3JlYXRlKHNpemUoKSwgUmVu
ZGVyaW5nTW9kZTo6VW5hY2NlbGVyYXRlZCkpOwogfQogCiB2b2lkIE9mZnNjcmVlbkNhbnZhczo6
cmVzZXQoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzUmVu
ZGVyaW5nQ29udGV4dDJEQmFzZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52
YXNSZW5kZXJpbmdDb250ZXh0MkRCYXNlLmNwcAppbmRleCA4OWQ4ZjQyNDNiMmI5MmRmYmNiMzJh
YTIyMWI3NTNjOTNmMWY1OTQxLi5kNDk0NzEyMDgzMjMxMGM3YzBkN2JlZjFjODc5ZGEzZmZiMjkz
ZjBhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNSZW5kZXJp
bmdDb250ZXh0MkRCYXNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52
YXNSZW5kZXJpbmdDb250ZXh0MkRCYXNlLmNwcApAQCAtMTgwNiw3ICsxODA2LDcgQEAgdGVtcGxh
dGU8Y2xhc3MgVD4gSW50UmVjdCBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkRCYXNlOjpjYWxjdWxh
dGVDb21wb3NpdGluZ0J1ZmYKIAogc3RkOjp1bmlxdWVfcHRyPEltYWdlQnVmZmVyPiBDYW52YXNS
ZW5kZXJpbmdDb250ZXh0MkRCYXNlOjpjcmVhdGVDb21wb3NpdGluZ0J1ZmZlcihjb25zdCBJbnRS
ZWN0JiBidWZmZXJSZWN0KQogewotICAgIHJldHVybiBJbWFnZUJ1ZmZlcjo6Y3JlYXRlKGJ1ZmZl
clJlY3Quc2l6ZSgpLCBpc0FjY2VsZXJhdGVkKCkgPyBBY2NlbGVyYXRlZCA6IFVuYWNjZWxlcmF0
ZWQpOworICAgIHJldHVybiBJbWFnZUJ1ZmZlcjo6Y3JlYXRlKGJ1ZmZlclJlY3Quc2l6ZSgpLCBp
c0FjY2VsZXJhdGVkKCkgPyBSZW5kZXJpbmdNb2RlOjpBY2NlbGVyYXRlZCA6IFJlbmRlcmluZ01v
ZGU6OlVuYWNjZWxlcmF0ZWQpOwogfQogCiB2b2lkIENhbnZhc1JlbmRlcmluZ0NvbnRleHQyREJh
c2U6OmNvbXBvc2l0ZUJ1ZmZlcihJbWFnZUJ1ZmZlciYgYnVmZmVyLCBjb25zdCBJbnRSZWN0JiBi
dWZmZXJSZWN0LCBDb21wb3NpdGVPcGVyYXRvciBvcCkKQEAgLTE5OTAsNyArMTk5MCw3IEBAIEV4
Y2VwdGlvbk9yPFJlZlB0cjxDYW52YXNQYXR0ZXJuPj4gQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJE
QmFzZTo6Y3JlYXRlUGF0dGVybihICiAgICAgICAgIHJldHVybiBSZWZQdHI8Q2FudmFzUGF0dGVy
bj4geyBDYW52YXNQYXR0ZXJuOjpjcmVhdGUoQml0bWFwSW1hZ2U6OmNyZWF0ZShXVEZNb3ZlKG5h
dGl2ZUltYWdlKSksIHJlcGVhdFgsIHJlcGVhdFksIG9yaWdpbkNsZWFuKSB9OwogI2VuZGlmCiAK
LSAgICBhdXRvIGltYWdlQnVmZmVyID0gSW1hZ2VCdWZmZXI6OmNyZWF0ZShzaXplKHZpZGVvRWxl
bWVudCksIGRyYXdpbmdDb250ZXh0KCkgPyBkcmF3aW5nQ29udGV4dCgpLT5yZW5kZXJpbmdNb2Rl
KCkgOiBBY2NlbGVyYXRlZCk7CisgICAgYXV0byBpbWFnZUJ1ZmZlciA9IEltYWdlQnVmZmVyOjpj
cmVhdGUoc2l6ZSh2aWRlb0VsZW1lbnQpLCBkcmF3aW5nQ29udGV4dCgpID8gZHJhd2luZ0NvbnRl
eHQoKS0+cmVuZGVyaW5nTW9kZSgpIDogUmVuZGVyaW5nTW9kZTo6QWNjZWxlcmF0ZWQpOwogICAg
IGlmICghaW1hZ2VCdWZmZXIpCiAgICAgICAgIHJldHVybiBudWxscHRyOwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9JbWFnZUJpdG1hcFJlbmRlcmluZ0NvbnRleHQu
Y3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvSW1hZ2VCaXRtYXBSZW5kZXJpbmdDb250
ZXh0LmNwcAppbmRleCAxNGVhMzdkOGQ3ZWFmYjAxYjVjNGNlMTllYmU3NmM1MThjZmNkNGE4Li5i
NTFiNGRiZjEzZWU1MDZlYjk0OThjNDNlZjQ1Yzk0NGRkNzNlMGE1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL2NhbnZhcy9JbWFnZUJpdG1hcFJlbmRlcmluZ0NvbnRleHQuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0ltYWdlQml0bWFwUmVuZGVyaW5nQ29udGV4
dC5jcHAKQEAgLTM2LDkgKzM2LDkgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogV1RGX01BS0VfSVNP
X0FMTE9DQVRFRF9JTVBMKEltYWdlQml0bWFwUmVuZGVyaW5nQ29udGV4dCk7CiAKICNpZiBVU0Uo
SU9TVVJGQUNFX0NBTlZBU19CQUNLSU5HX1NUT1JFKSB8fCBFTkFCTEUoQUNDRUxFUkFURURfMkRf
Q0FOVkFTKQotc3RhdGljIFJlbmRlcmluZ01vZGUgYnVmZmVyUmVuZGVyaW5nTW9kZSA9IEFjY2Vs
ZXJhdGVkOworc3RhdGljIFJlbmRlcmluZ01vZGUgYnVmZmVyUmVuZGVyaW5nTW9kZSA9IFJlbmRl
cmluZ01vZGU6OkFjY2VsZXJhdGVkOwogI2Vsc2UKLXN0YXRpYyBSZW5kZXJpbmdNb2RlIGJ1ZmZl
clJlbmRlcmluZ01vZGUgPSBVbmFjY2VsZXJhdGVkOworc3RhdGljIFJlbmRlcmluZ01vZGUgYnVm
ZmVyUmVuZGVyaW5nTW9kZSA9IFJlbmRlcmluZ01vZGU6OlVuYWNjZWxlcmF0ZWQ7CiAjZW5kaWYK
IAogc3RkOjp1bmlxdWVfcHRyPEltYWdlQml0bWFwUmVuZGVyaW5nQ29udGV4dD4gSW1hZ2VCaXRt
YXBSZW5kZXJpbmdDb250ZXh0OjpjcmVhdGUoQ2FudmFzQmFzZSYgY2FudmFzLCBJbWFnZUJpdG1h
cFJlbmRlcmluZ0NvbnRleHRTZXR0aW5ncyYmIHNldHRpbmdzKQpAQCAtNjksNyArNjksNyBAQCBI
VE1MQ2FudmFzRWxlbWVudCogSW1hZ2VCaXRtYXBSZW5kZXJpbmdDb250ZXh0OjpjYW52YXMoKSBj
b25zdAogCiBib29sIEltYWdlQml0bWFwUmVuZGVyaW5nQ29udGV4dDo6aXNBY2NlbGVyYXRlZCgp
IGNvbnN0CiB7Ci0gICAgcmV0dXJuIGJ1ZmZlclJlbmRlcmluZ01vZGUgPT0gQWNjZWxlcmF0ZWQ7
CisgICAgcmV0dXJuIGJ1ZmZlclJlbmRlcmluZ01vZGUgPT0gUmVuZGVyaW5nTW9kZTo6QWNjZWxl
cmF0ZWQ7CiB9CiAKIHZvaWQgSW1hZ2VCaXRtYXBSZW5kZXJpbmdDb250ZXh0OjpzZXRPdXRwdXRC
aXRtYXAoUmVmUHRyPEltYWdlQml0bWFwPiBpbWFnZUJpdG1hcCkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuY3BwIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5jcHAKaW5k
ZXggNjdjYTUzYzQ3ZWVhMDA4YmVhM2Y2MWRmOTZlNzM4OWNhZWNhNmRlYS4uNDI4ODIxNjQ0OThk
ZmMxODU2OTQ3YjE2YzNhMjlhODYzN2ZkOTUwYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5jcHAKQEAgLTYzODYs
NyArNjM4Niw3IEBAIEltYWdlQnVmZmVyKiBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpMUlVJ
bWFnZUJ1ZmZlckNhY2hlOjppbWFnZUJ1ZmZlcihjb25zdCBJCiAgICAgfQogCiAgICAgLy8gRklY
TUUgKDE0OTQyMyk6IFNob3VsZCB0aGlzIEltYWdlQnVmZmVyIGJlIHVuY29uZGl0aW9uYWxseSB1
bmFjY2VsZXJhdGVkPwotICAgIHN0ZDo6dW5pcXVlX3B0cjxJbWFnZUJ1ZmZlcj4gdGVtcCA9IElt
YWdlQnVmZmVyOjpjcmVhdGUoc2l6ZSwgVW5hY2NlbGVyYXRlZCk7CisgICAgc3RkOjp1bmlxdWVf
cHRyPEltYWdlQnVmZmVyPiB0ZW1wID0gSW1hZ2VCdWZmZXI6OmNyZWF0ZShzaXplLCBSZW5kZXJp
bmdNb2RlOjpVbmFjY2VsZXJhdGVkKTsKICAgICBpZiAoIXRlbXApCiAgICAgICAgIHJldHVybiBu
dWxscHRyOwogICAgIEFTU0VSVChtX2J1ZmZlcnMuc2l6ZSgpID4gMCk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xFbGVtZW50cy5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xFbGVtZW50cy5jcHAKaW5kZXggMzRi
YTM3MmQ0OTE0M2NmZTI5M2E3YzJhODk0NWU0MGYzNTFiMTA1MS4uZjZiYmZhZGQzNzdiYjUxYjA2
MGFhMGIzM2YwYjY4MGYxMTJjOTk0ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9z
aGFkb3cvTWVkaWFDb250cm9sRWxlbWVudHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
c2hhZG93L01lZGlhQ29udHJvbEVsZW1lbnRzLmNwcApAQCAtMTQ0Nyw3ICsxNDQ3LDcgQEAgUmVm
UHRyPEltYWdlPiBNZWRpYUNvbnRyb2xUZXh0VHJhY2tDb250YWluZXJFbGVtZW50OjpjcmVhdGVU
ZXh0VHJhY2tSZXByZXNlbnRhdGkKICAgICBJbnRSZWN0IHBhaW50aW5nUmVjdCA9IEludFJlY3Qo
SW50UG9pbnQoKSwgbGF5ZXItPnNpemUoKSk7CiAKICAgICAvLyBGSVhNRSAoMTQ5NDIyKTogVGhp
cyBidWZmZXIgc2hvdWxkIG5vdCBiZSB1bmNvbmRpdGlvbmFsbHkgdW5hY2NlbGVyYXRlZC4KLSAg
ICBzdGQ6OnVuaXF1ZV9wdHI8SW1hZ2VCdWZmZXI+IGJ1ZmZlcihJbWFnZUJ1ZmZlcjo6Y3JlYXRl
KHBhaW50aW5nUmVjdC5zaXplKCksIFVuYWNjZWxlcmF0ZWQsIGRldmljZVNjYWxlRmFjdG9yKSk7
CisgICAgc3RkOjp1bmlxdWVfcHRyPEltYWdlQnVmZmVyPiBidWZmZXIoSW1hZ2VCdWZmZXI6OmNy
ZWF0ZShwYWludGluZ1JlY3Quc2l6ZSgpLCBSZW5kZXJpbmdNb2RlOjpVbmFjY2VsZXJhdGVkLCBk
ZXZpY2VTY2FsZUZhY3RvcikpOwogICAgIGlmICghYnVmZmVyKQogICAgICAgICByZXR1cm4gbnVs
bHB0cjsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVNuYXBzaG90dGlu
Zy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lU25hcHNob3R0aW5nLmNwcAppbmRleCAw
YTQ0YzJmYTFhMDk0OTdjZmRmNTU4ODgzMmZmZGZmMTAyMzMzMGUxLi5lMjRkOTJlNmYzZTYxZDM4
YTliMjQ0ODVmNGQxM2RlNTBlNTMzYTJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0ZyYW1lU25hcHNob3R0aW5nLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lU25h
cHNob3R0aW5nLmNwcApAQCAtMTExLDcgKzExMSw3IEBAIHN0ZDo6dW5pcXVlX3B0cjxJbWFnZUJ1
ZmZlcj4gc25hcHNob3RGcmFtZVJlY3RXaXRoQ2xpcChGcmFtZSYgZnJhbWUsIGNvbnN0IEludFJl
CiAgICAgaWYgKG9wdGlvbnMgJiBTbmFwc2hvdE9wdGlvbnNQYWludFdpdGhJbnRlZ3JhbFNjYWxl
RmFjdG9yKQogICAgICAgICBzY2FsZUZhY3RvciA9IGNlaWxmKHNjYWxlRmFjdG9yKTsKIAotICAg
IHN0ZDo6dW5pcXVlX3B0cjxJbWFnZUJ1ZmZlcj4gYnVmZmVyID0gSW1hZ2VCdWZmZXI6OmNyZWF0
ZShpbWFnZVJlY3Quc2l6ZSgpLCBVbmFjY2VsZXJhdGVkLCBzY2FsZUZhY3Rvcik7CisgICAgc3Rk
Ojp1bmlxdWVfcHRyPEltYWdlQnVmZmVyPiBidWZmZXIgPSBJbWFnZUJ1ZmZlcjo6Y3JlYXRlKGlt
YWdlUmVjdC5zaXplKCksIFJlbmRlcmluZ01vZGU6OlVuYWNjZWxlcmF0ZWQsIHNjYWxlRmFjdG9y
KTsKICAgICBpZiAoIWJ1ZmZlcikKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgYnVmZmVy
LT5jb250ZXh0KCkudHJhbnNsYXRlKC1pbWFnZVJlY3QueCgpLCAtaW1hZ2VSZWN0LnkoKSk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9BbHBoYVByZW11bHRp
cGxpY2F0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9BbHBoYVByZW11
bHRpcGxpY2F0aW9uLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNmQxY2FlZjg1NDFkZWUwNjJiZmUwNTQxNmNkYTJm
MmE3Zjc5MjZlMgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL0FscGhhUHJlbXVsdGlwbGljYXRpb24uaApAQCAtMCwwICsxLDM5IEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJ
UycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRP
UlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1Mg
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisg
KiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNp
bmNsdWRlIDx3dGYvRm9yd2FyZC5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2VudW0gY2xh
c3MgQWxwaGFQcmVtdWx0aXBsaWNhdGlvbiA6IHVpbnQ4X3QgeworICAgIFByZW11bHRpcGxpZWQs
CisgICAgVW5wcmVtdWx0aXBsaWVkCit9OworCitXRUJDT1JFX0VYUE9SVCBXVEY6OlRleHRTdHJl
YW0mIG9wZXJhdG9yPDwoV1RGOjpUZXh0U3RyZWFtJiwgQWxwaGFQcmVtdWx0aXBsaWNhdGlvbik7
CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL0JpdG1hcEltYWdlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL0JpdG1hcEltYWdlLmNwcAppbmRleCBjNzFkOThmOGE1ZjY2NzQ2ODYzMDk0NGFi
NzFkYmFmYzkxZGNiNjRlLi40ODIyNDRhNGYyYmRjZWRlN2M4NzRjZDFiNTBlYTkxNGIxNDk5YTIy
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9CaXRtYXBJbWFn
ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQml0bWFwSW1hZ2Uu
Y3BwCkBAIC0xNjAsNyArMTYwLDcgQEAgTmF0aXZlSW1hZ2VQdHIgQml0bWFwSW1hZ2U6Om5hdGl2
ZUltYWdlRm9yQ3VycmVudEZyYW1lUmVzcGVjdGluZ09yaWVudGF0aW9uKGNvbnMKICAgICAgICAg
cmV0dXJuIGltYWdlOwogCiAgICAgRmxvYXRSZWN0IHJlY3QgPSB7IEZsb2F0UG9pbnQoKSwgc2l6
ZSgpIH07Ci0gICAgYXV0byBidWZmZXIgPSBJbWFnZUJ1ZmZlcjo6Y3JlYXRlKHJlY3Quc2l6ZSgp
LCBVbmFjY2VsZXJhdGVkKTsKKyAgICBhdXRvIGJ1ZmZlciA9IEltYWdlQnVmZmVyOjpjcmVhdGUo
cmVjdC5zaXplKCksIFJlbmRlcmluZ01vZGU6OlVuYWNjZWxlcmF0ZWQpOwogICAgIGlmICghYnVm
ZmVyKQogICAgICAgICByZXR1cm4gaW1hZ2U7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dC5oIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0LmgKaW5kZXggZjU4NmRkNGIyYWY5MWY0NTY1
NTM1YTcwMjkzOTIzYWYyYmFhZGJhMi4uZTVjMzFjMWU2NGVmNTRiOTYxMTMxZGJiMjVjNGNlNGIx
ODllMmQzYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3Jh
cGhpY3NDb250ZXh0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3Jh
cGhpY3NDb250ZXh0LmgKQEAgLTM1LDYgKzM1LDcgQEAKICNpbmNsdWRlICJJbWFnZU9yaWVudGF0
aW9uLmgiCiAjaW5jbHVkZSAiSW1hZ2VQYWludGluZ09wdGlvbnMuaCIKICNpbmNsdWRlICJQYXR0
ZXJuLmgiCisjaW5jbHVkZSAiUmVuZGVyaW5nTW9kZS5oIgogI2luY2x1ZGUgPHd0Zi9GdW5jdGlv
bi5oPgogI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgogI2luY2x1ZGUgPHd0Zi9PcHRpb25T
ZXQuaD4KQEAgLTM1MCw3ICszNTEsNyBAQCBwdWJsaWM6CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9p
ZCBzZXRJc0FjY2VsZXJhdGVkQ29udGV4dChib29sKTsKICNlbmRpZgogICAgIGJvb2wgaXNBY2Nl
bGVyYXRlZENvbnRleHQoKSBjb25zdDsKLSAgICBSZW5kZXJpbmdNb2RlIHJlbmRlcmluZ01vZGUo
KSBjb25zdCB7IHJldHVybiBpc0FjY2VsZXJhdGVkQ29udGV4dCgpID8gQWNjZWxlcmF0ZWQgOiBV
bmFjY2VsZXJhdGVkOyB9CisgICAgUmVuZGVyaW5nTW9kZSByZW5kZXJpbmdNb2RlKCkgY29uc3Qg
eyByZXR1cm4gaXNBY2NlbGVyYXRlZENvbnRleHQoKSA/IFJlbmRlcmluZ01vZGU6OkFjY2VsZXJh
dGVkIDogUmVuZGVyaW5nTW9kZTo6VW5hY2NlbGVyYXRlZDsgfQogCiAgICAgV0VCQ09SRV9FWFBP
UlQgdm9pZCBzYXZlKCk7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCByZXN0b3JlKCk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc1R5cGVzLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzVHlwZXMuY3BwCmlu
ZGV4IDQ1OGFlNzJmMmFlMDI1NjI0NzY4ZTg3OWRiZDQ5Njk2NGI0OTFiMTguLmRjNTRhOTk4NWU0
ZDQyMDY3ZGE2YzIzODE4MzVmYmQzNzM2ODc2MWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzVHlwZXMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzVHlwZXMuY3BwCkBAIC0yOCw2ICsyOCw3IEBACiAj
aW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiR3JhcGhpY3NUeXBlcy5oIgogCisjaW5jbHVk
ZSAiQWxwaGFQcmVtdWx0aXBsaWNhdGlvbi5oIgogI2luY2x1ZGUgPHd0Zi9Bc3NlcnRpb25zLmg+
CiAjaW5jbHVkZSA8d3RmL3RleHQvVGV4dFN0cmVhbS5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dU
RlN0cmluZy5oPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
R3JhcGhpY3NUeXBlcy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhp
Y3NUeXBlcy5oCmluZGV4IGNlZWExZGE0MGViMzJmZjc4YTFlNzVlMTdiZmUwMDkyMDFiNzZmMTIu
LjU3ZWViZGM1MDAzYzM3MGI4YjQ3NDFlYzJiYTU0MjQ3Yzk1YzkzZWUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzVHlwZXMuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc1R5cGVzLmgKQEAgLTEyMiwxNyAr
MTIyLDYgQEAgZW51bSBUZXh0QWxpZ24gewogICAgIFJpZ2h0VGV4dEFsaWduCiB9OwogCi1lbnVt
IFJlbmRlcmluZ01vZGUgewotICAgIFVuYWNjZWxlcmF0ZWQsCi0gICAgVW5hY2NlbGVyYXRlZE5v
blBsYXRmb3JtQnVmZmVyLCAvLyBVc2UgcGxhaW4gbWVtb3J5IGFsbG9jYXRpb24gcmF0aGVyIHRo
YW4gcGxhdGZvcm0gQVBJIHRvIGFsbG9jYXRlIGJhY2tpbmcgc3RvcmUuCi0gICAgQWNjZWxlcmF0
ZWQKLX07Ci0KLWVudW0gY2xhc3MgQWxwaGFQcmVtdWx0aXBsaWNhdGlvbiB7Ci0gICAgUHJlbXVs
dGlwbGllZCwKLSAgICBVbnByZW11bHRpcGxpZWQKLX07Ci0KIFN0cmluZyBjb21wb3NpdGVPcGVy
YXRvck5hbWUoV2ViQ29yZTo6Q29tcG9zaXRlT3BlcmF0b3IsIFdlYkNvcmU6OkJsZW5kTW9kZSk7
CiBTdHJpbmcgYmxlbmRNb2RlTmFtZShXZWJDb3JlOjpCbGVuZE1vZGUpOwogYm9vbCBwYXJzZUJs
ZW5kTW9kZShjb25zdCBTdHJpbmcmLCBXZWJDb3JlOjpCbGVuZE1vZGUmKTsKQEAgLTE0Myw3ICsx
MzIsNiBAQCBXRUJDT1JFX0VYUE9SVCBXVEY6OlRleHRTdHJlYW0mIG9wZXJhdG9yPDwoV1RGOjpU
ZXh0U3RyZWFtJiwgV2ViQ29yZTo6Q29tcG9zaXRlTwogV0VCQ09SRV9FWFBPUlQgV1RGOjpUZXh0
U3RyZWFtJiBvcGVyYXRvcjw8KFdURjo6VGV4dFN0cmVhbSYsIFdpbmRSdWxlKTsKIFdFQkNPUkVf
RVhQT1JUIFdURjo6VGV4dFN0cmVhbSYgb3BlcmF0b3I8PChXVEY6OlRleHRTdHJlYW0mLCBMaW5l
Q2FwKTsKIFdFQkNPUkVfRVhQT1JUIFdURjo6VGV4dFN0cmVhbSYgb3BlcmF0b3I8PChXVEY6OlRl
eHRTdHJlYW0mLCBMaW5lSm9pbik7Ci1XRUJDT1JFX0VYUE9SVCBXVEY6OlRleHRTdHJlYW0mIG9w
ZXJhdG9yPDwoV1RGOjpUZXh0U3RyZWFtJiwgQWxwaGFQcmVtdWx0aXBsaWNhdGlvbik7CiAKIH0g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvSW1hZ2VCdWZmZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL0ltYWdlQnVmZmVyLmgKaW5kZXggY2I3NDM4NDQ4MDJhYjQyYjU1MzUxMTdjYWI1Y2I3NTY0
NGQ1YjNmNC4uYTFiN2Q3MmNlOGEwZjE5ZjBiYTg2YTRhZTkwMTI1YTBkYTY5MGQyNiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VCdWZmZXIuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZUJ1ZmZlci5oCkBAIC0zNSw2
ICszNSw3IEBACiAjaW5jbHVkZSAiSW1hZ2VQYWludGluZ09wdGlvbnMuaCIKICNpbmNsdWRlICJJ
bnRTaXplLmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1MYXllci5oIgorI2luY2x1ZGUgIlJlbmRlcmlu
Z01vZGUuaCIKICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9VaW50OENsYW1wZWRBcnJheS5oPgog
I2luY2x1ZGUgPG1lbW9yeT4KICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvUmVuZGVyaW5nTW9kZS5oIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvUmVuZGVyaW5nTW9kZS5oCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjY5
ZDhhZTgxYzg0OGIxMGU2ZjJkMDdhNzg5YjE2YzMzM2RjMjNjYjQKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9SZW5kZXJpbmdNb2RlLmgKQEAgLTAs
MCArMSwzNSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBS
T0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkg
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
KyNwcmFnbWEgb25jZQorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2VudW0gY2xhc3MgUmVuZGVy
aW5nTW9kZSA6IHVpbnQ4X3QgeworICAgIEFjY2VsZXJhdGVkLAorICAgIFVuYWNjZWxlcmF0ZWQs
Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9TaGFkb3dCbHVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL1NoYWRvd0JsdXIuY3BwCmluZGV4IDQwNDFiM2Y4MTA3Njc4YzU2YWNkYjBj
NTMzYTA5ODZmN2U2NDU1OTYuLjY4MWFiNTZlZWIzNDE5NDYyYjIzNDQ1MGQwMGY0MWY5MzM2NzRk
MTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1NoYWRvd0Js
dXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1NoYWRvd0JsdXIu
Y3BwCkBAIC04Myw3ICs4Myw3IEBAIHB1YmxpYzoKICAgICAgICAgY2xlYXJTY3JhdGNoQnVmZmVy
KCk7CiAKICAgICAgICAgLy8gU2hhZG93Qmx1ciBpcyBub3QgdXNlZCB3aXRoIGFjY2VsZXJhdGVk
IGRyYXdpbmcsIHNvIGl0J3MgT0sgdG8gbWFrZSBhbiB1bmNvbmRpdGlvbmFsbHkgdW5hY2NlbGVy
YXRlZCBidWZmZXIuCi0gICAgICAgIG1faW1hZ2VCdWZmZXIgPSBJbWFnZUJ1ZmZlcjo6Y3JlYXRl
KHJvdW5kZWRTaXplLCBVbmFjY2VsZXJhdGVkLCAxKTsKKyAgICAgICAgbV9pbWFnZUJ1ZmZlciA9
IEltYWdlQnVmZmVyOjpjcmVhdGUocm91bmRlZFNpemUsIFJlbmRlcmluZ01vZGU6OlVuYWNjZWxl
cmF0ZWQsIDEpOwogICAgICAgICByZXR1cm4gbV9pbWFnZUJ1ZmZlci5nZXQoKTsKICAgICB9CiAK
QEAgLTU5Myw3ICs1OTMsNyBAQCB2b2lkIFNoYWRvd0JsdXI6OmRyYXdJbnNldFNoYWRvdyhjb25z
dCBBZmZpbmVUcmFuc2Zvcm0mIHRyYW5zZm9ybSwgY29uc3QgSW50UmVjdAogCiB2b2lkIFNoYWRv
d0JsdXI6OmRyYXdSZWN0U2hhZG93V2l0aG91dFRpbGluZyhjb25zdCBBZmZpbmVUcmFuc2Zvcm0m
LCBjb25zdCBGbG9hdFJvdW5kZWRSZWN0JiBzaGFkb3dlZFJlY3QsIGNvbnN0IExheWVySW1hZ2VQ
cm9wZXJ0aWVzJiBsYXllckltYWdlUHJvcGVydGllcywgY29uc3QgRHJhd0J1ZmZlckNhbGxiYWNr
JiBkcmF3QnVmZmVyKQogewotICAgIGF1dG8gbGF5ZXJJbWFnZSA9IEltYWdlQnVmZmVyOjpjcmVh
dGUoZXhwYW5kZWRJbnRTaXplKGxheWVySW1hZ2VQcm9wZXJ0aWVzLmxheWVyU2l6ZSksIFVuYWNj
ZWxlcmF0ZWQsIDEpOworICAgIGF1dG8gbGF5ZXJJbWFnZSA9IEltYWdlQnVmZmVyOjpjcmVhdGUo
ZXhwYW5kZWRJbnRTaXplKGxheWVySW1hZ2VQcm9wZXJ0aWVzLmxheWVyU2l6ZSksIFJlbmRlcmlu
Z01vZGU6OlVuYWNjZWxlcmF0ZWQsIDEpOwogICAgIGlmICghbGF5ZXJJbWFnZSkKICAgICAgICAg
cmV0dXJuOwogCkBAIC02MjEsNyArNjIxLDcgQEAgdm9pZCBTaGFkb3dCbHVyOjpkcmF3UmVjdFNo
YWRvd1dpdGhvdXRUaWxpbmcoY29uc3QgQWZmaW5lVHJhbnNmb3JtJiwgY29uc3QgRmxvYXQKIAog
dm9pZCBTaGFkb3dCbHVyOjpkcmF3SW5zZXRTaGFkb3dXaXRob3V0VGlsaW5nKGNvbnN0IEFmZmlu
ZVRyYW5zZm9ybSYsIGNvbnN0IEZsb2F0UmVjdCYgZnVsbFJlY3QsIGNvbnN0IEZsb2F0Um91bmRl
ZFJlY3QmIGhvbGVSZWN0LCBjb25zdCBMYXllckltYWdlUHJvcGVydGllcyYgbGF5ZXJJbWFnZVBy
b3BlcnRpZXMsIGNvbnN0IERyYXdCdWZmZXJDYWxsYmFjayYgZHJhd0J1ZmZlcikKIHsKLSAgICBh
dXRvIGxheWVySW1hZ2UgPSBJbWFnZUJ1ZmZlcjo6Y3JlYXRlKGV4cGFuZGVkSW50U2l6ZShsYXll
ckltYWdlUHJvcGVydGllcy5sYXllclNpemUpLCBVbmFjY2VsZXJhdGVkLCAxKTsKKyAgICBhdXRv
IGxheWVySW1hZ2UgPSBJbWFnZUJ1ZmZlcjo6Y3JlYXRlKGV4cGFuZGVkSW50U2l6ZShsYXllcklt
YWdlUHJvcGVydGllcy5sYXllclNpemUpLCBSZW5kZXJpbmdNb2RlOjpVbmFjY2VsZXJhdGVkLCAx
KTsKICAgICBpZiAoIWxheWVySW1hZ2UpCiAgICAgICAgIHJldHVybjsKIApAQCAtNjg1LDcgKzY4
NSw3IEBAIHZvaWQgU2hhZG93Qmx1cjo6ZHJhd1JlY3RTaGFkb3dXaXRoVGlsaW5nKGNvbnN0IEFm
ZmluZVRyYW5zZm9ybSYgdHJhbnNmb3JtLCBjb25zCiAgICAgYXV0byogbGF5ZXJJbWFnZSA9IFNj
cmF0Y2hCdWZmZXI6OnNpbmdsZXRvbigpLmdldFNjcmF0Y2hCdWZmZXIodGVtcGxhdGVTaXplKTsK
ICNlbHNlCiAgICAgVU5VU0VEX1BBUkFNKGxheWVySW1hZ2VQcm9wZXJ0aWVzKTsKLSAgICBhdXRv
IGxheWVySW1hZ2VCdWZmZXIgPSBJbWFnZUJ1ZmZlcjo6Y3JlYXRlKHRlbXBsYXRlU2l6ZSwgVW5h
Y2NlbGVyYXRlZCwgMSk7CisgICAgYXV0byBsYXllckltYWdlQnVmZmVyID0gSW1hZ2VCdWZmZXI6
OmNyZWF0ZSh0ZW1wbGF0ZVNpemUsIFJlbmRlcmluZ01vZGU6OlVuYWNjZWxlcmF0ZWQsIDEpOwog
ICAgIGF1dG8qIGxheWVySW1hZ2UgPSBsYXllckltYWdlQnVmZmVyLmdldCgpOwogI2VuZGlmCiAK
QEAgLTczOSw3ICs3MzksNyBAQCB2b2lkIFNoYWRvd0JsdXI6OmRyYXdJbnNldFNoYWRvd1dpdGhU
aWxpbmcoY29uc3QgQWZmaW5lVHJhbnNmb3JtJiB0cmFuc2Zvcm0sIGNvbgogI2lmIFVTRShDRykK
ICAgICBhdXRvKiBsYXllckltYWdlID0gU2NyYXRjaEJ1ZmZlcjo6c2luZ2xldG9uKCkuZ2V0U2Ny
YXRjaEJ1ZmZlcih0ZW1wbGF0ZVNpemUpOwogI2Vsc2UKLSAgICBhdXRvIGxheWVySW1hZ2VCdWZm
ZXIgPSBJbWFnZUJ1ZmZlcjo6Y3JlYXRlKHRlbXBsYXRlU2l6ZSwgVW5hY2NlbGVyYXRlZCwgMSk7
CisgICAgYXV0byBsYXllckltYWdlQnVmZmVyID0gSW1hZ2VCdWZmZXI6OmNyZWF0ZSh0ZW1wbGF0
ZVNpemUsIFJlbmRlcmluZ01vZGU6OlVuYWNjZWxlcmF0ZWQsIDEpOwogICAgIGF1dG8qIGxheWVy
SW1hZ2UgPSBsYXllckltYWdlQnVmZmVyLmdldCgpOwogI2VuZGlmCiAKQEAgLTkxMiw3ICs5MTIs
NyBAQCB2b2lkIFNoYWRvd0JsdXI6OmRyYXdTaGFkb3dMYXllcihjb25zdCBBZmZpbmVUcmFuc2Zv
cm0mIHRyYW5zZm9ybSwgY29uc3QgSW50UmVjdAogCiAgICAgYWRqdXN0Qmx1clJhZGl1cyh0cmFu
c2Zvcm0pOwogCi0gICAgYXV0byBsYXllckltYWdlID0gSW1hZ2VCdWZmZXI6OmNyZWF0ZShleHBh
bmRlZEludFNpemUobGF5ZXJJbWFnZVByb3BlcnRpZXMtPmxheWVyU2l6ZSksIFVuYWNjZWxlcmF0
ZWQsIDEpOworICAgIGF1dG8gbGF5ZXJJbWFnZSA9IEltYWdlQnVmZmVyOjpjcmVhdGUoZXhwYW5k
ZWRJbnRTaXplKGxheWVySW1hZ2VQcm9wZXJ0aWVzLT5sYXllclNpemUpLCBSZW5kZXJpbmdNb2Rl
OjpVbmFjY2VsZXJhdGVkLCAxKTsKICAgICBpZiAoIWxheWVySW1hZ2UpCiAgICAgICAgIHJldHVy
bjsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSW1h
Z2VCdWZmZXJDRy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9JbWFn
ZUJ1ZmZlckNHLmNwcAppbmRleCAzNTZmMTk2NGQwOTU1MmJkMWEyN2ZjMGQyMjgwOWQ4YTNkYTZi
NzViLi45NDdmZjkzMjBiNjhjYmMwMWQ5ZjNhNDU0ZTgzNTQzZmQzZDk0MjM3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9JbWFnZUJ1ZmZlckNHLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9JbWFnZUJ1ZmZlckNHLmNw
cApAQCAtMTI3LDcgKzEyNyw3IEBAIEltYWdlQnVmZmVyOjpJbWFnZUJ1ZmZlcihjb25zdCBGbG9h
dFNpemUmIHNpemUsIGZsb2F0IHJlc29sdXRpb25TY2FsZSwgQ0dDb2xvclNwCiAgICAgbV9zaXpl
ID0gSW50U2l6ZShzY2FsZWRXaWR0aCwgc2NhbGVkSGVpZ2h0KTsKICAgICBtX2RhdGEuYmFja2lu
Z1N0b3JlU2l6ZSA9IG1fc2l6ZTsKIAotICAgIGJvb2wgYWNjZWxlcmF0ZVJlbmRlcmluZyA9IHJl
bmRlcmluZ01vZGUgPT0gQWNjZWxlcmF0ZWQ7CisgICAgYm9vbCBhY2NlbGVyYXRlUmVuZGVyaW5n
ID0gcmVuZGVyaW5nTW9kZSA9PSBSZW5kZXJpbmdNb2RlOjpBY2NlbGVyYXRlZDsKICAgICBpZiAo
bV9zaXplLndpZHRoKCkgPD0gMCB8fCBtX3NpemUuaGVpZ2h0KCkgPD0gMCkKICAgICAgICAgcmV0
dXJuOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9J
bWFnZUJ1ZmZlckRhdGFDRy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cv
SW1hZ2VCdWZmZXJEYXRhQ0cuaAppbmRleCBjNTVhNTRhZDkxMTc5NTNjYTVlNjk2ZGEwN2U2ZTBk
ZjY4MTQzZDU4Li4zZTIzNzRiYWQyNGYwNzg3ZmVmMDU0M2MxYjUxYjkxMjBmMTIzMGQ0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9JbWFnZUJ1ZmZlckRh
dGFDRy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0ltYWdlQnVm
ZmVyRGF0YUNHLmgKQEAgLTI2LDYgKzI2LDcgQEAKIAogI3ByYWdtYSBvbmNlCiAKKyNpbmNsdWRl
ICJBbHBoYVByZW11bHRpcGxpY2F0aW9uLmgiCiAjaW5jbHVkZSAiSW1hZ2UuaCIKICNpbmNsdWRl
IDxKYXZhU2NyaXB0Q29yZS9VaW50OENsYW1wZWRBcnJheS5oPgogI2luY2x1ZGUgPHd0Zi9DaGVj
a2VkQXJpdGhtZXRpYy5oPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZmlsdGVycy9GaWx0ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2ZpbHRlcnMvRmlsdGVyLmgKaW5kZXggNDllOGM1YTI2ZTc3MWM0MjQ5Njc4MTk1MjdhNTYyNzM1
M2RmNDQ5Ni4uZGQzNWNjNjViMTM3ZDgyMmM3MDE1MzJkYWJkMjQ5MDA0YmYyYTlmNiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GaWx0ZXIuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZpbHRlci5oCkBA
IC03MSw3ICs3MSw3IEBAIHByaXZhdGU6CiAgICAgc3RkOjp1bmlxdWVfcHRyPEltYWdlQnVmZmVy
PiBtX3NvdXJjZUltYWdlOwogICAgIEZsb2F0U2l6ZSBtX2ZpbHRlclJlc29sdXRpb247CiAgICAg
QWZmaW5lVHJhbnNmb3JtIG1fYWJzb2x1dGVUcmFuc2Zvcm07Ci0gICAgUmVuZGVyaW5nTW9kZSBt
X3JlbmRlcmluZ01vZGUgeyBVbmFjY2VsZXJhdGVkIH07CisgICAgUmVuZGVyaW5nTW9kZSBtX3Jl
bmRlcmluZ01vZGUgeyBSZW5kZXJpbmdNb2RlOjpVbmFjY2VsZXJhdGVkIH07CiAgICAgZmxvYXQg
bV9maWx0ZXJTY2FsZSB7IDEgfTsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21vY2svTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2UuY3BwIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbW9jay9Nb2NrUmVhbHRpbWVWaWRlb1NvdXJjZS5jcHAKaW5kZXggY2ExMWJiOGJh
MGIxOTEwYzYyNzk2N2Q0ZDI2MGIwNGM2ODQ4NjczMS4uNWFjOWQ2NjA2YzQyMjEyNDhiYzQxZGU5
Mzg5Y2U1Yzg3ZTRhNDE3YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9j
ay9Nb2NrUmVhbHRpbWVWaWRlb1NvdXJjZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbW9jay9Nb2NrUmVhbHRpbWVWaWRlb1NvdXJjZS5jcHAKQEAgLTQ1OCw3ICs0NTgsNyBAQCBJ
bWFnZUJ1ZmZlciogTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2U6OmltYWdlQnVmZmVyKCkgY29uc3QK
ICAgICBpZiAobV9pbWFnZUJ1ZmZlcikKICAgICAgICAgcmV0dXJuIG1faW1hZ2VCdWZmZXIuZ2V0
KCk7CiAKLSAgICBtX2ltYWdlQnVmZmVyID0gSW1hZ2VCdWZmZXI6OmNyZWF0ZShjYXB0dXJlU2l6
ZSgpLCBVbmFjY2VsZXJhdGVkKTsKKyAgICBtX2ltYWdlQnVmZmVyID0gSW1hZ2VCdWZmZXI6OmNy
ZWF0ZShjYXB0dXJlU2l6ZSgpLCBSZW5kZXJpbmdNb2RlOjpVbmFjY2VsZXJhdGVkKTsKICAgICBp
ZiAoIW1faW1hZ2VCdWZmZXIpCiAgICAgICAgIHJldHVybiBudWxscHRyOwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcAppbmRleCBkNWI5MWIyNjg2YWUyNjFlYjUzYzA2
ODliZWVjNjJmNTVlM2ZiNDU4Li44ZjUwZTU3NTcxZDdiMzg1MDBlZWQ3YmNkYTZiM2E2NDJhYmY3
OTUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAKQEAgLTY5MDUs
NyArNjkwNSw3IEBAIHZvaWQgUmVuZGVyTGF5ZXI6OnVwZGF0ZUZpbHRlclBhaW50aW5nU3RyYXRl
Z3koKQogICAgIH0KICAgICAKICAgICBlbnN1cmVMYXllckZpbHRlcnMoKTsKLSAgICBtX2ZpbHRl
cnMtPmJ1aWxkRmlsdGVyKHJlbmRlcmVyKCksIHBhZ2UoKS5kZXZpY2VTY2FsZUZhY3RvcigpLCBy
ZW5kZXJlcigpLnNldHRpbmdzKCkuYWNjZWxlcmF0ZWRGaWx0ZXJzRW5hYmxlZCgpID8gQWNjZWxl
cmF0ZWQgOiBVbmFjY2VsZXJhdGVkKTsKKyAgICBtX2ZpbHRlcnMtPmJ1aWxkRmlsdGVyKHJlbmRl
cmVyKCksIHBhZ2UoKS5kZXZpY2VTY2FsZUZhY3RvcigpLCByZW5kZXJlcigpLnNldHRpbmdzKCku
YWNjZWxlcmF0ZWRGaWx0ZXJzRW5hYmxlZCgpID8gUmVuZGVyaW5nTW9kZTo6QWNjZWxlcmF0ZWQg
OiBSZW5kZXJpbmdNb2RlOjpVbmFjY2VsZXJhdGVkKTsKIH0KIAogdm9pZCBSZW5kZXJMYXllcjo6
ZmlsdGVyTmVlZHNSZXBhaW50KCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9zaGFwZXMvU2hhcGUuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3NoYXBlcy9TaGFw
ZS5jcHAKaW5kZXggOTE0MjAyOWEyZDQ0NjRkZjVjYjdiM2E0NDE5M2JlMjg2M2MxZWQyYS4uODUx
YTg2Njc4OWI0ODM1NDIyYzU3YTQxZGRhNzVhMGJjYWQ3ZDY3NSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL3NoYXBlcy9TaGFwZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL3NoYXBlcy9TaGFwZS5jcHAKQEAgLTE4MSw3ICsxODEsNyBAQCBzdGQ6OnVuaXF1
ZV9wdHI8U2hhcGU+IFNoYXBlOjpjcmVhdGVSYXN0ZXJTaGFwZShJbWFnZSogaW1hZ2UsIGZsb2F0
IHRocmVzaG9sZCwgYwogICAgIEludFJlY3QgbWFyZ2luUmVjdCA9IHNuYXBwZWRJbnRSZWN0KG1h
cmdpblIpOwogICAgIGF1dG8gaW50ZXJ2YWxzID0gbWFrZVVuaXF1ZTxSYXN0ZXJTaGFwZUludGVy
dmFscz4obWFyZ2luUmVjdC5oZWlnaHQoKSwgLW1hcmdpblJlY3QueSgpKTsKICAgICAvLyBGSVhN
RSAoMTQ5NDIwKTogVGhpcyBidWZmZXIgc2hvdWxkIG5vdCBiZSB1bmNvbmRpdGlvbmFsbHkgdW5h
Y2NlbGVyYXRlZC4KLSAgICBzdGQ6OnVuaXF1ZV9wdHI8SW1hZ2VCdWZmZXI+IGltYWdlQnVmZmVy
ID0gSW1hZ2VCdWZmZXI6OmNyZWF0ZShpbWFnZVJlY3Quc2l6ZSgpLCBVbmFjY2VsZXJhdGVkKTsK
KyAgICBzdGQ6OnVuaXF1ZV9wdHI8SW1hZ2VCdWZmZXI+IGltYWdlQnVmZmVyID0gSW1hZ2VCdWZm
ZXI6OmNyZWF0ZShpbWFnZVJlY3Quc2l6ZSgpLCBSZW5kZXJpbmdNb2RlOjpVbmFjY2VsZXJhdGVk
KTsKIAogICAgIGlmIChpbWFnZUJ1ZmZlcikgewogICAgICAgICBHcmFwaGljc0NvbnRleHQmIGdy
YXBoaWNzQ29udGV4dCA9IGltYWdlQnVmZmVyLT5jb250ZXh0KCk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jlc291cmNlQ2xpcHBlci5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jlc291cmNlQ2xpcHBlci5jcHAK
aW5kZXggMDhlNDkyODJhZDkzYmNhY2QyOTc3NWI4NDZmMDU5ZDVhMmNhNzEzZS4uMWQ3N2I2M2M2
ZmUyODMxMmFlMTFlZDgyNWI1MjNhYWNlNzE3ZWM1YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdSZXNvdXJjZUNsaXBwZXIuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUmVzb3VyY2VDbGlwcGVyLmNwcApAQCAt
MTQyLDcgKzE0Miw3IEBAIGJvb2wgUmVuZGVyU1ZHUmVzb3VyY2VDbGlwcGVyOjphcHBseUNsaXBw
aW5nVG9Db250ZXh0KFJlbmRlckVsZW1lbnQmIHJlbmRlcmVyLCBjCiAKICAgICBpZiAoc2hvdWxk
Q3JlYXRlQ2xpcHBlck1hc2tJbWFnZSAmJiAhcmVwYWludFJlY3QuaXNFbXB0eSgpKSB7CiAgICAg
ICAgIC8vIEZJWE1FICgxNDk0NjkpOiBUaGlzIGltYWdlIGJ1ZmZlciBzaG91bGQgbm90IGJlIHVu
Y29uZGl0aW9uYWxseSB1bmFjY2VsZXJhdGVkLiBNYWtpbmcgaXQgbWF0Y2ggdGhlIGNvbnRleHQg
YnJlYWtzIG5lc3RlZCBjbGlwcGluZywgdGhvdWdoLgotICAgICAgICBjbGlwcGVyTWFza0ltYWdl
ID0gU1ZHUmVuZGVyaW5nQ29udGV4dDo6Y3JlYXRlSW1hZ2VCdWZmZXIocmVwYWludFJlY3QsIGFi
c29sdXRlVHJhbnNmb3JtLCBDb2xvclNwYWNlOjpTUkdCLCBVbmFjY2VsZXJhdGVkLCAmY29udGV4
dCk7CisgICAgICAgIGNsaXBwZXJNYXNrSW1hZ2UgPSBTVkdSZW5kZXJpbmdDb250ZXh0OjpjcmVh
dGVJbWFnZUJ1ZmZlcihyZXBhaW50UmVjdCwgYWJzb2x1dGVUcmFuc2Zvcm0sIENvbG9yU3BhY2U6
OlNSR0IsIFJlbmRlcmluZ01vZGU6OlVuYWNjZWxlcmF0ZWQsICZjb250ZXh0KTsKICAgICAgICAg
aWYgKCFjbGlwcGVyTWFza0ltYWdlKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jlc291cmNlRmls
dGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUmVzb3VyY2VG
aWx0ZXIuY3BwCmluZGV4IDc1YjU5YjYzYzNlNDk2MGJkNGUzYmRiZDg3NDkyYTkzMmY0MzE2MWIu
LmRkZGJhNDMyZDM3OTM3ZWIwNDNhNmNjMTdiZjkzMmU2Yjc4OTU0MjkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUmVzb3VyY2VGaWx0ZXIuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUmVzb3VyY2VGaWx0ZXIu
Y3BwCkBAIC0xOTEsNyArMTkxLDcgQEAgYm9vbCBSZW5kZXJTVkdSZXNvdXJjZUZpbHRlcjo6YXBw
bHlSZXNvdXJjZShSZW5kZXJFbGVtZW50JiByZW5kZXJlciwgY29uc3QgUmVuZGUKICAgICBlZmZl
Y3RpdmVUcmFuc2Zvcm0uc2NhbGUoc2NhbGUud2lkdGgoKSwgc2NhbGUuaGVpZ2h0KCkpOwogICAg
IGVmZmVjdGl2ZVRyYW5zZm9ybS5tdWx0aXBseShmaWx0ZXJEYXRhLT5zaGVhckZyZWVBYnNvbHV0
ZVRyYW5zZm9ybSk7CiAKLSAgICBSZW5kZXJpbmdNb2RlIHJlbmRlcmluZ01vZGUgPSByZW5kZXJl
ci5zZXR0aW5ncygpLmFjY2VsZXJhdGVkRmlsdGVyc0VuYWJsZWQoKSA/IEFjY2VsZXJhdGVkIDog
VW5hY2NlbGVyYXRlZDsKKyAgICBSZW5kZXJpbmdNb2RlIHJlbmRlcmluZ01vZGUgPSByZW5kZXJl
ci5zZXR0aW5ncygpLmFjY2VsZXJhdGVkRmlsdGVyc0VuYWJsZWQoKSA/IFJlbmRlcmluZ01vZGU6
OkFjY2VsZXJhdGVkIDogUmVuZGVyaW5nTW9kZTo6VW5hY2NlbGVyYXRlZDsKICAgICBhdXRvIHNv
dXJjZUdyYXBoaWMgPSBTVkdSZW5kZXJpbmdDb250ZXh0OjpjcmVhdGVJbWFnZUJ1ZmZlcihmaWx0
ZXJEYXRhLT5kcmF3aW5nUmVnaW9uLCBlZmZlY3RpdmVUcmFuc2Zvcm0sIENvbG9yU3BhY2U6Okxp
bmVhclJHQiwgcmVuZGVyaW5nTW9kZSwgY29udGV4dCk7CiAgICAgaWYgKCFzb3VyY2VHcmFwaGlj
KSB7CiAgICAgICAgIEFTU0VSVCghbV9yZW5kZXJlckZpbHRlckRhdGFNYXAuY29udGFpbnMoJnJl
bmRlcmVyKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRl
clNWR1Jlc291cmNlTWFza2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVu
ZGVyU1ZHUmVzb3VyY2VNYXNrZXIuY3BwCmluZGV4IDE3ODdlMThjMmRjZWY1YmRmOTkyNDc0Y2Zj
MDIyYjUxNjZhZDU4NDguLjEyMGM1N2I1Njk3ODcyMjA0NjViYzZhZWMwYjU4MDRjNDU1Y2Q4Mjkg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUmVzb3Vy
Y2VNYXNrZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZH
UmVzb3VyY2VNYXNrZXIuY3BwCkBAIC03MSw3ICs3MSw3IEBAIGJvb2wgUmVuZGVyU1ZHUmVzb3Vy
Y2VNYXNrZXI6OmFwcGx5UmVzb3VyY2UoUmVuZGVyRWxlbWVudCYgcmVuZGVyZXIsIGNvbnN0IFJl
bmRlCiAgICAgICAgIGNvbnN0IFNWR1JlbmRlclN0eWxlJiBzdmdTdHlsZSA9IHN0eWxlKCkuc3Zn
U3R5bGUoKTsKICAgICAgICAgQ29sb3JTcGFjZSBjb2xvclNwYWNlID0gc3ZnU3R5bGUuY29sb3JJ
bnRlcnBvbGF0aW9uKCkgPT0gQ29sb3JJbnRlcnBvbGF0aW9uOjpMaW5lYXJSR0IgPyBDb2xvclNw
YWNlOjpMaW5lYXJSR0IgOiBDb2xvclNwYWNlOjpTUkdCOwogICAgICAgICAvLyBGSVhNRSAoMTQ5
NDcwKTogVGhpcyBpbWFnZSBidWZmZXIgc2hvdWxkIG5vdCBiZSB1bmNvbmRpdGlvbmFsbHkgdW5h
Y2NlbGVyYXRlZC4gTWFraW5nIGl0IG1hdGNoIHRoZSBjb250ZXh0IGJyZWFrcyBhbHBoYSBtYXNr
aW5nLCB0aG91Z2guCi0gICAgICAgIG1hc2tlckRhdGEtPm1hc2tJbWFnZSA9IFNWR1JlbmRlcmlu
Z0NvbnRleHQ6OmNyZWF0ZUltYWdlQnVmZmVyKHJlcGFpbnRSZWN0LCBhYnNvbHV0ZVRyYW5zZm9y
bSwgY29sb3JTcGFjZSwgVW5hY2NlbGVyYXRlZCwgY29udGV4dCk7CisgICAgICAgIG1hc2tlckRh
dGEtPm1hc2tJbWFnZSA9IFNWR1JlbmRlcmluZ0NvbnRleHQ6OmNyZWF0ZUltYWdlQnVmZmVyKHJl
cGFpbnRSZWN0LCBhYnNvbHV0ZVRyYW5zZm9ybSwgY29sb3JTcGFjZSwgUmVuZGVyaW5nTW9kZTo6
VW5hY2NlbGVyYXRlZCwgY29udGV4dCk7CiAgICAgICAgIGlmICghbWFza2VyRGF0YS0+bWFza0lt
YWdlKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9zdmcvZ3JhcGhpY3MvU1ZHSW1hZ2UuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL2dyYXBo
aWNzL1NWR0ltYWdlLmNwcAppbmRleCBiODIxNDExYWRlNzc1MDg1NjE2ODg1NmVkMjJiNjJlYTZi
NWNkM2Q5Li45Nzg2N2FhZDNjMjdiNWI1MzhkM2E3OWZiNDk1ZGRkNGYwZjQzZDkxIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvZ3JhcGhpY3MvU1ZHSW1hZ2UuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9ncmFwaGljcy9TVkdJbWFnZS5jcHAKQEAgLTIxOCw3ICsyMTgsNyBAQCBO
YXRpdmVJbWFnZVB0ciBTVkdJbWFnZTo6bmF0aXZlSW1hZ2VGb3JDdXJyZW50RnJhbWUoY29uc3Qg
R3JhcGhpY3NDb250ZXh0KikKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKICAgICAvLyBDYWly
byBkb2VzIG5vdCB1c2UgdGhlIGFjY2VsZXJhdGVkIGRyYXdpbmcgZmxhZywgc28gaXQncyBPSyB0
byBtYWtlIGFuIHVuY29uZGl0aW9uYWxseSB1bmFjY2VsZXJhdGVkIGJ1ZmZlci4KLSAgICBzdGQ6
OnVuaXF1ZV9wdHI8SW1hZ2VCdWZmZXI+IGJ1ZmZlciA9IEltYWdlQnVmZmVyOjpjcmVhdGUoc2l6
ZSgpLCBVbmFjY2VsZXJhdGVkKTsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8SW1hZ2VCdWZmZXI+IGJ1
ZmZlciA9IEltYWdlQnVmZmVyOjpjcmVhdGUoc2l6ZSgpLCBSZW5kZXJpbmdNb2RlOjpVbmFjY2Vs
ZXJhdGVkKTsKICAgICBpZiAoIWJ1ZmZlcikgLy8gZmFpbGVkIHRvIGFsbG9jYXRlIGltYWdlCiAg
ICAgICAgIHJldHVybiBudWxscHRyOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5
L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDb250ZXh0TWVudUNsaWVudC5tbSBiL1NvdXJjZS9XZWJL
aXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNvbnRleHRNZW51Q2xpZW50Lm1tCmluZGV4
IGVmMDM1MDM0MmJiODIyNDZjZDE5ZjM1NGQ5YmNjMDI5MWYyOTA0M2QuLjI0MDdmMTA2OWI1N2Zi
ZjY1OTQ4ODc1NDEyOGNlOGZhYjFlY2JiZjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdh
Y3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNvbnRleHRNZW51Q2xpZW50Lm1tCisrKyBiL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNvbnRleHRNZW51Q2xpZW50Lm1t
CkBAIC0yMDIsNyArMjAyLDcgQEAgUmV0YWluUHRyPE5TSW1hZ2U+IFdlYkNvbnRleHRNZW51Q2xp
ZW50OjppbWFnZUZvckN1cnJlbnRTaGFyaW5nU2VydmljZVBpY2tlckl0ZW0KICAgICAgICAgcmV0
dXJuIG5pbDsKIAogICAgIC8vIFRoaXMgaXMgZWZmZWN0aXZlbHkgYSBzbmFwc2hvdCwgYW5kIHdp
bGwgYmUgcGFpbnRlZCBpbiBhbiB1bmFjY2VsZXJhdGVkIGZhc2hpb24gaW4gbGluZSB3aXRoIEZy
YW1lU25hcHNob3R0aW5nLgotICAgIHN0ZDo6dW5pcXVlX3B0cjxJbWFnZUJ1ZmZlcj4gYnVmZmVy
ID0gSW1hZ2VCdWZmZXI6OmNyZWF0ZShyZWN0LnNpemUoKSwgVW5hY2NlbGVyYXRlZCk7CisgICAg
c3RkOjp1bmlxdWVfcHRyPEltYWdlQnVmZmVyPiBidWZmZXIgPSBJbWFnZUJ1ZmZlcjo6Y3JlYXRl
KHJlY3Quc2l6ZSgpLCBSZW5kZXJpbmdNb2RlOjpVbmFjY2VsZXJhdGVkKTsKICAgICBpZiAoIWJ1
ZmZlcikKICAgICAgICAgcmV0dXJuIG5pbDsKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>388277</attachid>
            <date>2020-01-20 21:23:37 -0800</date>
            <delta_ts>2020-01-20 21:41:10 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-206516-20200120212336.patch</filename>
            <type>text/plain</type>
            <size>42985</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU0ODQxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDE0ZjAwY2EzZGFkNjI1
MDkwYjYzMDVkNGE3ZGFjMzhjMWNmMjllNS4uMjkyNDdjZDNmZjk5NmRmMTIxZjU4YzNhOGZmOTJi
NWU1ZjcxNmM2MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDc1IEBACisyMDIwLTAxLTIwICBTYWlk
IEFib3UtSGFsbGF3YSAgPHNhYm91aGFsbGF3YUBhcHBsZS5jb20+CisKKyAgICAgICAgTWFrZSBS
ZW5kZXJpbmdNb2RlIGFuZCBBbHBoYVByZW11bHRpcGxpY2F0aW9uIGVudW0gY2xhc3NlcyBhbmQg
bW92ZSB0aGVtIHRvIHNlcGFyYXRlIGhlYWRlcnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNjUxNgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIFJlbmRlcmluZ01vZGUgYW5kIEFscGhhUHJlbXVsdGlwbGlj
YXRpb24gbmVlZCB0byBiZSBlbmNvZGVkIGFuZCBkZWNvZGVkCisgICAgICAgIHdoZW4gdGhleSBh
cmUgc2VudCBmcm9tIHRoZSBXZWJQcm9jZXNzIHRvIHRoZSBHUFVQcm9jZXNzLgorCisgICAgICAg
ICogTW9kdWxlcy9hc3luYy1jbGlwYm9hcmQvQ2xpcGJvYXJkSXRlbUJpbmRpbmdzRGF0YVNvdXJj
ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDbGlwYm9hcmRJdGVtQmluZGluZ3NEYXRhU291cmNl
OjpDbGlwYm9hcmRJdGVtVHlwZUxvYWRlcjo6c2FuaXRpemVEYXRhSWZOZWVkZWQpOgorICAgICAg
ICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBiaW5kaW5n
cy9qcy9TZXJpYWxpemVkU2NyaXB0VmFsdWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2xvbmVE
ZXNlcmlhbGl6ZXI6OnJlYWRJbWFnZUJpdG1hcCk6CisgICAgICAgICogY3NzL0NTU0ZpbHRlcklt
YWdlVmFsdWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTRmlsdGVySW1hZ2VWYWx1ZTo6aW1h
Z2UpOgorICAgICAgICAqIGh0bWwvQ3VzdG9tUGFpbnRDYW52YXMuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6Q3VzdG9tUGFpbnRDYW52YXM6OmNvcGllZEltYWdlIGNvbnN0KToKKyAgICAgICAgKiBo
dG1sL0hUTUxDYW52YXNFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxDYW52YXNF
bGVtZW50OjpjcmVhdGVJbWFnZUJ1ZmZlciBjb25zdCk6CisgICAgICAgICogaHRtbC9JbWFnZUJp
dG1hcC5jcHA6CisgICAgICAgICogaHRtbC9PZmZzY3JlZW5DYW52YXMuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6T2Zmc2NyZWVuQ2FudmFzOjp0cmFuc2ZlclRvSW1hZ2VCaXRtYXApOgorICAgICAg
ICAoV2ViQ29yZTo6T2Zmc2NyZWVuQ2FudmFzOjpjcmVhdGVJbWFnZUJ1ZmZlciBjb25zdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpPZmZzY3JlZW5DYW52YXM6OnRha2VJbWFnZUJ1ZmZlciBjb25zdCk6
CisgICAgICAgICogaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEQmFzZS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpDYW52YXNSZW5kZXJpbmdDb250ZXh0MkRCYXNlOjpjcmVhdGVD
b21wb3NpdGluZ0J1ZmZlcik6CisgICAgICAgIChXZWJDb3JlOjpDYW52YXNSZW5kZXJpbmdDb250
ZXh0MkRCYXNlOjpjcmVhdGVQYXR0ZXJuKToKKyAgICAgICAgKiBodG1sL2NhbnZhcy9JbWFnZUJp
dG1hcFJlbmRlcmluZ0NvbnRleHQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VCaXRtYXBS
ZW5kZXJpbmdDb250ZXh0Ojppc0FjY2VsZXJhdGVkIGNvbnN0KToKKyAgICAgICAgKiBodG1sL2Nh
bnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Oldl
YkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OkxSVUltYWdlQnVmZmVyQ2FjaGU6OmltYWdlQnVmZmVy
KToKKyAgICAgICAgKiBodG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xFbGVtZW50cy5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpNZWRpYUNvbnRyb2xUZXh0VHJhY2tDb250YWluZXJFbGVtZW50OjpjcmVh
dGVUZXh0VHJhY2tSZXByZXNlbnRhdGlvbkltYWdlKToKKyAgICAgICAgKiBwYWdlL0ZyYW1lU25h
cHNob3R0aW5nLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnNuYXBzaG90RnJhbWVSZWN0V2l0aENs
aXApOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0FscGhhUHJlbXVsdGlwbGljYXRpb24u
aDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvQml0bWFwSW1hZ2UuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6Qml0bWFwSW1hZ2U6Om5hdGl2ZUltYWdlRm9yQ3VycmVudEZyYW1l
UmVzcGVjdGluZ09yaWVudGF0aW9uKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9HcmFw
aGljc0NvbnRleHQuaDoKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDo6cmVuZGVy
aW5nTW9kZSBjb25zdCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NUeXBl
cy5jcHA6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NUeXBlcy5oOgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0ltYWdlQnVmZmVyLmg6CisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvUmVuZGVyaW5nTW9kZS5oOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9TaGFkb3dCbHVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcmF0Y2hCdWZmZXI6
OmdldFNjcmF0Y2hCdWZmZXIpOgorICAgICAgICAoV2ViQ29yZTo6U2hhZG93Qmx1cjo6ZHJhd1Jl
Y3RTaGFkb3dXaXRob3V0VGlsaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OlNoYWRvd0JsdXI6OmRy
YXdJbnNldFNoYWRvd1dpdGhvdXRUaWxpbmcpOgorICAgICAgICAoV2ViQ29yZTo6U2hhZG93Qmx1
cjo6ZHJhd1JlY3RTaGFkb3dXaXRoVGlsaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OlNoYWRvd0Js
dXI6OmRyYXdJbnNldFNoYWRvd1dpdGhUaWxpbmcpOgorICAgICAgICAoV2ViQ29yZTo6U2hhZG93
Qmx1cjo6ZHJhd1NoYWRvd0xheWVyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jZy9J
bWFnZUJ1ZmZlckNHLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkltYWdlQnVmZmVyOjpJbWFnZUJ1
ZmZlcik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSW1hZ2VCdWZmZXJEYXRhQ0cu
aDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZpbHRlci5oOgorICAgICAg
ICAqIHBsYXRmb3JtL21vY2svTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2UuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6TW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2U6OmltYWdlQnVmZmVyIGNvbnN0KToKKyAg
ICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVu
ZGVyTGF5ZXI6OmNhbGN1bGF0ZUNsaXBSZWN0cyBjb25zdCk6CisgICAgICAgICogcmVuZGVyaW5n
L3NoYXBlcy9TaGFwZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTaGFwZTo6Y3JlYXRlUmFzdGVy
U2hhcGUpOgorICAgICAgICAqIHJlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUmVzb3VyY2VDbGlwcGVy
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclNWR1Jlc291cmNlQ2xpcHBlcjo6YXBwbHlD
bGlwcGluZ1RvQ29udGV4dCk6CisgICAgICAgICogcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdSZXNv
dXJjZUZpbHRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTVkdSZXNvdXJjZUZpbHRl
cjo6YXBwbHlSZXNvdXJjZSk6CisgICAgICAgICogcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdSZXNv
dXJjZU1hc2tlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTVkdSZXNvdXJjZU1hc2tl
cjo6YXBwbHlSZXNvdXJjZSk6CisgICAgICAgICogc3ZnL2dyYXBoaWNzL1NWR0ltYWdlLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlNWR0ltYWdlOjpuYXRpdmVJbWFnZUZvckN1cnJlbnRGcmFtZSk6
CisKIDIwMjAtMDEtMjAgIFNhaWQgQWJvdS1IYWxsYXdhICA8c2Fib3VoYWxsYXdhQGFwcGxlLmNv
bT4KIAogICAgICAgICBFWElGIG9yaWVudGF0aW9uIGlzIGlnbm9yZWQgZm9yIHNvbWUgQ1NTIGlt
YWdlcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nIGIvU291
cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCmluZGV4IDZmYWIyN2M1ZjBkMzE5MWI0YWJl
MmZjN2ZlYmQyMjc3NDEyODY4MmEuLjI5ZTI2M2NhZmY4MmY4YmRjZDkxOTc1MDQyYjUwMDcxMDNl
YjIzYTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZworKysg
Yi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAy
MC0wMS0yMCAgU2FpZCBBYm91LUhhbGxhd2EgIDxzYWJvdWhhbGxhd2FAYXBwbGUuY29tPgorCisg
ICAgICAgIE1ha2UgUmVuZGVyaW5nTW9kZSBhbmQgQWxwaGFQcmVtdWx0aXBsaWNhdGlvbiBlbnVt
IGNsYXNzZXMgYW5kIG1vdmUgdGhlbSB0byBzZXBhcmF0ZSBoZWFkZXJzCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDY1MTYKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkNv
bnRleHRNZW51Q2xpZW50Lm1tOgorICAgICAgICAoV2ViQ29udGV4dE1lbnVDbGllbnQ6OmltYWdl
Rm9yQ3VycmVudFNoYXJpbmdTZXJ2aWNlUGlja2VySXRlbSk6CisKIDIwMjAtMDEtMjAgIERhdmlk
IEtpbHplciAgPGRka2lsemVyQGFwcGxlLmNvbT4KIAogICAgICAgICBGaXggbWlzc2luZyBoZWFk
ZXIgZ3VhcmRzIGFuZCBjbGVhbiB1cCBlbXB0eSBmaWxlcyBpbiBXZWJDb3JlLCBXZWJLaXRMZWdh
Y3ksIFdlYktpdCwgVG9vbHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXN5
bmMtY2xpcGJvYXJkL0NsaXBib2FyZEl0ZW1CaW5kaW5nc0RhdGFTb3VyY2UuY3BwIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9hc3luYy1jbGlwYm9hcmQvQ2xpcGJvYXJkSXRlbUJpbmRpbmdzRGF0
YVNvdXJjZS5jcHAKaW5kZXggNDY0MWQ1ODA4YTUyN2VjNmUzMGQxY2ZiNmU4MGIyMzFkZDU2ZDZi
MC4uNzQ2NWQwZTZhODY2ODczOGY0ZWJkYzU3NGY5MjZjNzQ4OGU3YWE0ZSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9hc3luYy1jbGlwYm9hcmQvQ2xpcGJvYXJkSXRlbUJpbmRp
bmdzRGF0YVNvdXJjZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hc3luYy1jbGlw
Ym9hcmQvQ2xpcGJvYXJkSXRlbUJpbmRpbmdzRGF0YVNvdXJjZS5jcHAKQEAgLTI4NCw3ICsyODQs
NyBAQCB2b2lkIENsaXBib2FyZEl0ZW1CaW5kaW5nc0RhdGFTb3VyY2U6OkNsaXBib2FyZEl0ZW1U
eXBlTG9hZGVyOjpzYW5pdGl6ZURhdGFJZk5lZQogCiAgICAgICAgIGF1dG8gYml0bWFwSW1hZ2Ug
PSBCaXRtYXBJbWFnZTo6Y3JlYXRlKCk7CiAgICAgICAgIGJpdG1hcEltYWdlLT5zZXREYXRhKFdU
Rk1vdmUoYnVmZmVyVG9TYW5pdGl6ZSksIHRydWUpOwotICAgICAgICBhdXRvIGltYWdlQnVmZmVy
ID0gSW1hZ2VCdWZmZXI6OmNyZWF0ZShiaXRtYXBJbWFnZS0+c2l6ZSgpLCBVbmFjY2VsZXJhdGVk
KTsKKyAgICAgICAgYXV0byBpbWFnZUJ1ZmZlciA9IEltYWdlQnVmZmVyOjpjcmVhdGUoYml0bWFw
SW1hZ2UtPnNpemUoKSwgUmVuZGVyaW5nTW9kZTo6VW5hY2NlbGVyYXRlZCk7CiAgICAgICAgIGlm
ICghaW1hZ2VCdWZmZXIpIHsKICAgICAgICAgICAgIG1fZGF0YSA9IHsgbnVsbFN0cmluZygpIH07
CiAgICAgICAgICAgICByZXR1cm47CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggZDViM2NlYWVkZWNkNjMwNjgzYThkODBlOTgyMmIz
ZGY0MWQ3NjIwZS4uNmVkNGFjMjNhNmQ5YWM5NDRlYzE4NjRiYzY0OTdiMjc1Zjg1YTQ4MiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpA
QCAtMjE0MSw2ICsyMTQxLDggQEAKIAkJNzI0RUQzMzIxQTNBOEIyMzAwRjVGMTNDIC8qIEpTRVhU
QmxlbmRNaW5NYXguaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDcyNEVEMzMwMUEzQThCMjMwMEY1RjEzQyAvKiBKU0VYVEJsZW5kTWluTWF4LmggKi87IH07
CiAJCTcyNEVFNTUwMURDODBEN0YwMEE5MUZGQiAvKiBBY3Rpdml0eVN0YXRlLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3MjRFRTU0RTFEQzdGMjVCMDBB
OTFGRkIgLyogQWN0aXZpdHlTdGF0ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07CiAJCTcyNEVFNTUxMURDODBEODQwMEE5MUZGQiAvKiBBY3Rpdml0eVN0
YXRlQ2hhbmdlT2JzZXJ2ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDcyNEVFNTRGMURDN0YyNUIwMEE5MUZGQiAvKiBBY3Rpdml0eVN0YXRlQ2hhbmdl
T2JzZXJ2ZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OworCQk3Mjk5QkM2NzIzRDZBNTMyMDBDQzY4ODMgLyogQWxwaGFQcmVtdWx0aXBsaWNhdGlvbi5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzI5OUJDNjQy
M0Q2ODZBNjAwQ0M2ODgzIC8qIEFscGhhUHJlbXVsdGlwbGljYXRpb24uaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk3Mjk5QkM2ODIzRDZBNTNFMDBD
QzY4ODMgLyogUmVuZGVyaW5nTW9kZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gNzI5OUJDNjYyM0Q2ODZDNjAwQ0M2ODgzIC8qIFJlbmRlcmluZ01vZGUu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk3NTUz
Q0ZFODEwOEY0NzNGMDBFQTI4MUUgLyogVGltZWxpbmVSZWNvcmRGYWN0b3J5LmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3NTUzQ0ZFNjEwOEY0NzNGMDBF
QTI4MUUgLyogVGltZWxpbmVSZWNvcmRGYWN0b3J5LmggKi87IH07CiAJCTc1NzkzRTg0MEQwQ0Uw
QjMwMDdGQzBBQyAvKiBNZXNzYWdlRXZlbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDc1NzkzRTgxMEQwQ0UwQjMwMDdGQzBBQyAvKiBNZXNzYWdlRXZl
bnQuaCAqLzsgfTsKIAkJNzU3OTNFQzkwRDBDRTcyRDAwN0ZDMEFDIC8qIEpTTWVzc2FnZUV2ZW50
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3NTc5M0VD
NzBEMENFNzJEMDA3RkMwQUMgLyogSlNNZXNzYWdlRXZlbnQuaCAqLzsgfTsKQEAgLTk2NDAsNiAr
OTY0Miw4IEBACiAJCTcyN0FGRUQxMUEyRUE2QTAwMDA0NDJFOCAvKiBFWFRzUkdCLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEVYVHNSR0IuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk3MjdBRkVEMjFBMkVBNkEwMDAwNDQyRTggLyogRVhUc1JHQi5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBFWFRzUkdCLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTcyN0FGRUQzMUEyRUE2QTAwMDA0NDJFOCAvKiBFWFRzUkdCLmlk
bCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBFWFRzUkdCLmlkbDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJNzI5OUJDNjQyM0Q2ODZBNjAwQ0M2ODgzIC8qIEFscGhhUHJlbXVsdGlwbGlj
YXRpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQWxwaGFQcmVtdWx0aXBsaWNhdGlvbi5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQk3Mjk5QkM2NjIzRDY4NkM2MDBDQzY4ODMgLyogUmVuZGVy
aW5nTW9kZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW5kZXJpbmdNb2RlLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTcyQzE4QTNGMjMwQjA0QjcwMDY4NDdDNyAvKiBJbWFnZVBhaW50aW5n
T3B0aW9ucy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJbWFnZVBhaW50aW5nT3B0aW9ucy5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk3MkU0MTc2MTFBMkU4RDJGMDA0QzU2MkEgLyogSlNFWFRz
UkdCLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTRVhUc1JHQi5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTcyRTQxNzYyMUEyRThEMkYwMDRDNTYy
QSAvKiBKU0VYVHNSR0IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNFWFRz
UkdCLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yNTAxMiw2ICsyNTAxNiw3IEBA
CiAJCQkJRkJDMjIwREQxMjM3RkJFQjAwQkNGNzg4IC8qIG9wZW5nbCAqLywKIAkJCQkzNzIxNDkz
MzE4RjBCNkQ2MDAxNTZFREMgLyogb3BlbnR5cGUgKi8sCiAJCQkJNDlFOTExQjIwRUY4NkQyNzAw
OUQwQ0FGIC8qIHRyYW5zZm9ybXMgKi8sCisJCQkJNzI5OUJDNjQyM0Q2ODZBNjAwQ0M2ODgzIC8q
IEFscGhhUHJlbXVsdGlwbGljYXRpb24uaCAqLywKIAkJCQk0OTA3MDdFNDEyMTlDMDQzMDBEOTBF
NTEgLyogQU5HTEVXZWJLaXRCcmlkZ2UuY3BwICovLAogCQkJCTQ5MDcwN0U1MTIxOUMwNDMwMEQ5
MEU1MSAvKiBBTkdMRVdlYktpdEJyaWRnZS5oICovLAogCQkJCUJFRjI5RUU5MTcxNUREMDkwMEM0
QjRDOSAvKiBBdWRpb1RyYWNrUHJpdmF0ZS5oICovLApAQCAtMjUxODgsNiArMjUxOTMsNyBAQAog
CQkJCUJDQUI0MTgwMTNFMzU2RTgwMEQ4QUFGMyAvKiBSZWdpb24uaCAqLywKIAkJCQkwNzNBMTU1
MTIxNzdBMzk4MDBFQTA4RjIgLyogUmVtb3RlVmlkZW9TYW1wbGUuY3BwICovLAogCQkJCTA3M0Ex
NTUzMjE3N0EzOUEwMEVBMDhGMiAvKiBSZW1vdGVWaWRlb1NhbXBsZS5oICovLAorCQkJCTcyOTlC
QzY2MjNENjg2QzYwMENDNjg4MyAvKiBSZW5kZXJpbmdNb2RlLmggKi8sCiAJCQkJQTczRjk1RkMx
MkM5N0JGRTAwMzFBQUY5IC8qIFJvdW5kZWRSZWN0LmNwcCAqLywKIAkJCQlBNzNGOTVGRDEyQzk3
QkZFMDAzMUFBRjkgLyogUm91bmRlZFJlY3QuaCAqLywKIAkJCQkwRjNERDQ0RDEyRjVFQTFCMDAw
RDkxOTAgLyogU2hhZG93Qmx1ci5jcHAgKi8sCkBAIC0yOTAzOSw2ICsyOTA0NSw3IEBACiAJCQkJ
QkNGN0U0OTExMzdDRDdDNzAwMUREQUU3IC8qIEFkanVzdFZpZXdTaXplT3JOb3QuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTg0RDBDNDA2MTExNUYxRUEwMDE4QUEzNCAvKiBBZmZpbmVUcmFuc2Zvcm0u
aCBpbiBIZWFkZXJzICovLAogCQkJCTgzQkI1Qzg4MUQ1RDZGNDUwMDVBNzFGNCAvKiBBbGxEZXNj
ZW5kYW50c0NvbGxlY3Rpb24uaCBpbiBIZWFkZXJzICovLAorCQkJCTcyOTlCQzY3MjNENkE1MzIw
MENDNjg4MyAvKiBBbHBoYVByZW11bHRpcGxpY2F0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQlD
RURBMTJENzE1MkNBMUNCMDBEOUUwOEQgLyogQWx0ZXJuYXRpdmVUZXh0Q2xpZW50LmggaW4gSGVh
ZGVycyAqLywKIAkJCQlDRTA4QzNEMjE1MkI1OTlBMDAyMUI4QzIgLyogQWx0ZXJuYXRpdmVUZXh0
Q29udHJvbGxlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQ0U3QjJEQjMxNTg2QUJBRDAwOThCM0ZB
IC8qIEFsdGVybmF0aXZlVGV4dFVJQ29udHJvbGxlci5oIGluIEhlYWRlcnMgKi8sCkBAIC0zMTM2
OCw2ICszMTM3NSw3IEBACiAJCQkJMTE5OUZBNDYyMDhFMzVBMzAwMjM1OENDIC8qIExheW91dENv
bnRhaW5lci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNkYyNkJCNkMyMzM0M0U2RjAwMkYyQkVBIC8q
IExheW91dENvbnRleHQuaCBpbiBIZWFkZXJzICovLAogCQkJCTExMzEwQ0Y1MjBCQTRBNEMwMDY1
QThEMCAvKiBMYXlvdXREZXNjZW5kYW50SXRlcmF0b3IuaCBpbiBIZWFkZXJzICovLAorCQkJCUU0
MTgwMjU1MjNENDU0OUIwMEZGQjA3MSAvKiBMYXlvdXRJbnRlZ3JhdGlvbkJveFRyZWUuaCBpbiBI
ZWFkZXJzICovLAogCQkJCUU0QUJBQkREMjM2MDg4RkUwMEZBNDM0NSAvKiBMYXlvdXRJbnRlZ3Jh
dGlvbkxpbmVMYXlvdXQuaCBpbiBIZWFkZXJzICovLAogCQkJCTExMzEwQ0Y0MjBCQTRBM0QwMDY1
QThEMCAvKiBMYXlvdXRJdGVyYXRvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTMxRDcyRjYxNUZF
Njk1MzAwQzRDMDdFIC8qIExheW91dE1pbGVzdG9uZS5oIGluIEhlYWRlcnMgKi8sCkBAIC0zMjAx
Miw2ICszMjAyMCw3IEBACiAJCQkJQkNFQTQ4NzYwOTdEOTMwMjAwOTRDOUU0IC8qIFJlbmRlcklt
YWdlLmggaW4gSGVhZGVycyAqLywKIAkJCQkwOEYyRjAwQTEyMTNFNjE3MDBEQ0VDNDggLyogUmVu
ZGVySW1hZ2VSZXNvdXJjZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDg2NDFENDgxMjE0MkY3RDAw
OERFOUY2IC8qIFJlbmRlckltYWdlUmVzb3VyY2VTdHlsZUltYWdlLmggaW4gSGVhZGVycyAqLywK
KwkJCQk3Mjk5QkM2ODIzRDZBNTNFMDBDQzY4ODMgLyogUmVuZGVyaW5nTW9kZS5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJNTU2QzdDNEIyMjEyMzk5NzAwOUIwNkNBIC8qIFJlbmRlcmluZ1VwZGF0ZVNj
aGVkdWxlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkNFQTQ4NzgwOTdEOTMwMjAwOTRDOUU0IC8q
IFJlbmRlcklubGluZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjU5NUZGNDcxODI0Q0VFMzAwRkY1
MUNEIC8qIFJlbmRlckl0ZXJhdG9yLmggaW4gSGVhZGVycyAqLywKQEAgLTMyMDYyLDcgKzMyMDcx
LDYgQEAKIAkJCQk0NThGRTQwQTE1ODlERjBCMDA1NjA5RTYgLyogUmVuZGVyU2VhcmNoRmllbGQu
aCBpbiBIZWFkZXJzICovLAogCQkJCTBGMTFBNTRGMEYzOTIzMzEwMEMzNzg4NCAvKiBSZW5kZXJT
ZWxlY3Rpb25JbmZvLmggaW4gSGVhZGVycyAqLywKIAkJCQlBQjI0N0E2RDBBRkQ2MzgzMDAzRkE1
RkQgLyogUmVuZGVyU2xpZGVyLmggaW4gSGVhZGVycyAqLywKLQkJCQlFNDE4MDI1NTIzRDQ1NDlC
MDBGRkIwNzEgLyogTGF5b3V0SW50ZWdyYXRpb25Cb3hUcmVlLmggaW4gSGVhZGVycyAqLywKIAkJ
CQkzMTk1NUE4ODE2MEQxOTkyMDA4NTgwMjUgLyogUmVuZGVyU25hcHNob3R0ZWRQbHVnSW4uaCBp
biBIZWFkZXJzICovLAogCQkJCUJDOEM4RkFFMEREQ0QzMUIwMEI1OTJGNCAvKiBSZW5kZXJTdHls
ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkM1RUI2NjgwRTgxQ0I3MTAwQjI1OTY1IC8qIFJlbmRl
clN0eWxlQ29uc3RhbnRzLmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9TZXJpYWxpemVkU2NyaXB0VmFsdWUuY3BwCmluZGV4IDY0ZGZmMmQ5ODRl
ZjcyZGQ5ZWJhNTEwMjQwNjEwZmMxOGUyMWQ5NDcuLmVkYTE3MTdkZGZmZDdlYjBiYzNmODcwMmI4
MjkzZTg5OWJkNWNlN2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1Nl
cmlhbGl6ZWRTY3JpcHRWYWx1ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
U2VyaWFsaXplZFNjcmlwdFZhbHVlLmNwcApAQCAtMjc4NSw3ICsyNzg1LDcgQEAgcHJpdmF0ZToK
ICAgICAgICAgICAgIHJldHVybiBKU1ZhbHVlKCk7CiAgICAgICAgIH0KIAotICAgICAgICBhdXRv
IGJ1ZmZlciA9IEltYWdlQnVmZmVyOjpjcmVhdGUoRmxvYXRTaXplKGxvZ2ljYWxXaWR0aCwgbG9n
aWNhbEhlaWdodCksIFVuYWNjZWxlcmF0ZWQsIHJlc29sdXRpb25TY2FsZSk7CisgICAgICAgIGF1
dG8gYnVmZmVyID0gSW1hZ2VCdWZmZXI6OmNyZWF0ZShGbG9hdFNpemUobG9naWNhbFdpZHRoLCBs
b2dpY2FsSGVpZ2h0KSwgUmVuZGVyaW5nTW9kZTo6VW5hY2NlbGVyYXRlZCwgcmVzb2x1dGlvblNj
YWxlKTsKICAgICAgICAgaWYgKCFidWZmZXIpIHsKICAgICAgICAgICAgIGZhaWwoKTsKICAgICAg
ICAgICAgIHJldHVybiBKU1ZhbHVlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3Mv
Q1NTRmlsdGVySW1hZ2VWYWx1ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRmlsdGVySW1h
Z2VWYWx1ZS5jcHAKaW5kZXggZTViOGFiNDY5Y2VjNGJjMDU4YzQzN2QxOTk1MDQwYjUwMjFjNzQz
MS4uMmZhNTNhYTM4YzFmY2MxMTczNTZhZjlmMTU1ZDAxNWQ0NDM3ZjBjZSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvY3NzL0NTU0ZpbHRlckltYWdlVmFsdWUuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9DU1NGaWx0ZXJJbWFnZVZhbHVlLmNwcApAQCAtMTE2LDcgKzExNiw3IEBAIFJl
ZlB0cjxJbWFnZT4gQ1NTRmlsdGVySW1hZ2VWYWx1ZTo6aW1hZ2UoUmVuZGVyRWxlbWVudCYgcmVu
ZGVyZXIsIGNvbnN0IEZsb2F0U2l6CiAKICAgICAvLyBUcmFuc2Zvcm0gSW1hZ2UgaW50byBJbWFn
ZUJ1ZmZlci4KICAgICAvLyBGSVhNRSAoMTQ5NDI0KTogVGhpcyBidWZmZXIgc2hvdWxkIG5vdCBi
ZSB1bmNvbmRpdGlvbmFsbHkgdW5hY2NlbGVyYXRlZC4KLSAgICBhdXRvIHRleHR1cmUgPSBJbWFn
ZUJ1ZmZlcjo6Y3JlYXRlKHNpemUsIFVuYWNjZWxlcmF0ZWQpOworICAgIGF1dG8gdGV4dHVyZSA9
IEltYWdlQnVmZmVyOjpjcmVhdGUoc2l6ZSwgUmVuZGVyaW5nTW9kZTo6VW5hY2NlbGVyYXRlZCk7
CiAgICAgaWYgKCF0ZXh0dXJlKQogICAgICAgICByZXR1cm4gJkltYWdlOjpudWxsSW1hZ2UoKTsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9DdXN0b21QYWludENhbnZhcy5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0N1c3RvbVBhaW50Q2FudmFzLmNwcAppbmRleCBmNGI3NzA3
ZTk3YThmZTUxZjhlMjU3NzU4YWRlNGI2ZGRmZjUwMmU1Li4xNDc3NjJmNTUyNDJlNjMxNTQ5ZGRi
MGEwNjc0YTYyMWZlOGNmM2Q1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0N1c3Rv
bVBhaW50Q2FudmFzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0N1c3RvbVBhaW50Q2Fu
dmFzLmNwcApAQCAtOTMsNyArOTMsNyBAQCBJbWFnZSogQ3VzdG9tUGFpbnRDYW52YXM6OmNvcGll
ZEltYWdlKCkgY29uc3QKICAgICBpZiAoIXdpZHRoKCkgfHwgIWhlaWdodCgpKQogICAgICAgICBy
ZXR1cm4gbnVsbHB0cjsKIAotICAgIG1fY29waWVkQnVmZmVyID0gSW1hZ2VCdWZmZXI6OmNyZWF0
ZShzaXplKCksIFVuYWNjZWxlcmF0ZWQsIDEsIENvbG9yU3BhY2U6OlNSR0IsIG51bGxwdHIpOwor
ICAgIG1fY29waWVkQnVmZmVyID0gSW1hZ2VCdWZmZXI6OmNyZWF0ZShzaXplKCksIFJlbmRlcmlu
Z01vZGU6OlVuYWNjZWxlcmF0ZWQsIDEsIENvbG9yU3BhY2U6OlNSR0IsIG51bGxwdHIpOwogICAg
IGlmICghbV9jb3BpZWRCdWZmZXIpCiAgICAgICAgIHJldHVybiBudWxscHRyOwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxDYW52YXNFbGVtZW50LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTENhbnZhc0VsZW1lbnQuY3BwCmluZGV4IDIzZDliMzRlODQ4ZjZkMDFk
MzRhOWRhZmZiYTMwNTBmYzdhNzEzMTYuLmI4NDQ0NzFkN2E4ZWE4NWM4ODMyMmIxMjljNDBhMTgw
NDk2MWI3NTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENhbnZhc0VsZW1l
bnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENhbnZhc0VsZW1lbnQuY3BwCkBA
IC04ODUsNyArODg1LDcgQEAgdm9pZCBIVE1MQ2FudmFzRWxlbWVudDo6Y3JlYXRlSW1hZ2VCdWZm
ZXIoKSBjb25zdAogICAgIGlmICghd2lkdGgoKSB8fCAhaGVpZ2h0KCkpCiAgICAgICAgIHJldHVy
bjsKIAotICAgIFJlbmRlcmluZ01vZGUgcmVuZGVyaW5nTW9kZSA9IHNob3VsZEFjY2VsZXJhdGUo
c2l6ZSgpKSA/IEFjY2VsZXJhdGVkIDogVW5hY2NlbGVyYXRlZDsKKyAgICBSZW5kZXJpbmdNb2Rl
IHJlbmRlcmluZ01vZGUgPSBzaG91bGRBY2NlbGVyYXRlKHNpemUoKSkgPyBSZW5kZXJpbmdNb2Rl
OjpBY2NlbGVyYXRlZCA6IFJlbmRlcmluZ01vZGU6OlVuYWNjZWxlcmF0ZWQ7CiAKICAgICBhdXRv
IGhvc3RXaW5kb3cgPSAoZG9jdW1lbnQoKS52aWV3KCkgJiYgZG9jdW1lbnQoKS52aWV3KCktPnJv
b3QoKSkgPyBkb2N1bWVudCgpLnZpZXcoKS0+cm9vdCgpLT5ob3N0V2luZG93KCkgOiBudWxscHRy
OwogICAgIHNldEltYWdlQnVmZmVyKEltYWdlQnVmZmVyOjpjcmVhdGUoc2l6ZSgpLCByZW5kZXJp
bmdNb2RlLCAxLCBDb2xvclNwYWNlOjpTUkdCLCBob3N0V2luZG93KSk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9odG1sL0ltYWdlQml0bWFwLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SW1hZ2VCaXRtYXAuY3BwCmluZGV4IDVmNDlmNzM5YTFmNWMzYmUwZWUxNzFmMzRmOTYzZTAyNjZi
YzQ0OTIuLjJiODE5ODllOGZkNjJlZmUzNDUzODdhOTAyZmU2OTJiMzA5OTU0ZmUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW1hZ2VCaXRtYXAuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSW1hZ2VCaXRtYXAuY3BwCkBAIC02MSw5ICs2MSw5IEBAIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIFdURl9NQUtFX0lTT19BTExPQ0FURURfSU1QTChJbWFnZUJpdG1hcCk7CiAKICNpZiBV
U0UoSU9TVVJGQUNFX0NBTlZBU19CQUNLSU5HX1NUT1JFKSB8fCBFTkFCTEUoQUNDRUxFUkFURURf
MkRfQ0FOVkFTKQotc3RhdGljIFJlbmRlcmluZ01vZGUgYnVmZmVyUmVuZGVyaW5nTW9kZSA9IEFj
Y2VsZXJhdGVkOworc3RhdGljIFJlbmRlcmluZ01vZGUgYnVmZmVyUmVuZGVyaW5nTW9kZSA9IFJl
bmRlcmluZ01vZGU6OkFjY2VsZXJhdGVkOwogI2Vsc2UKLXN0YXRpYyBSZW5kZXJpbmdNb2RlIGJ1
ZmZlclJlbmRlcmluZ01vZGUgPSBVbmFjY2VsZXJhdGVkOworc3RhdGljIFJlbmRlcmluZ01vZGUg
YnVmZmVyUmVuZGVyaW5nTW9kZSA9IFJlbmRlcmluZ01vZGU6OlVuYWNjZWxlcmF0ZWQ7CiAjZW5k
aWYKIAogUmVmPEltYWdlQml0bWFwPiBJbWFnZUJpdG1hcDo6Y3JlYXRlKEludFNpemUgc2l6ZSkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvT2Zmc2NyZWVuQ2FudmFzLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvT2Zmc2NyZWVuQ2FudmFzLmNwcAppbmRleCBmNzQ0ODUxMjAwMTU3
NWI0YWY0YmJhMjRlYWE1N2FiZTZhMDY0M2M5Li43NTVmMTFlZjg5ZTExODFiZTA2ZDVlYTJmMDA3
ODY5NmUzOWJlNGQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL09mZnNjcmVlbkNh
bnZhcy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9PZmZzY3JlZW5DYW52YXMuY3BwCkBA
IC0xMjYsNyArMTI2LDcgQEAgRXhjZXB0aW9uT3I8UmVmUHRyPEltYWdlQml0bWFwPj4gT2Zmc2Ny
ZWVuQ2FudmFzOjp0cmFuc2ZlclRvSW1hZ2VCaXRtYXAoKQogICAgICAgICAgICAgcmV0dXJuIHsg
UmVmUHRyPEltYWdlQml0bWFwPiB7IG51bGxwdHIgfSB9OwogCiAgICAgICAgIGlmICghbV9oYXND
cmVhdGVkSW1hZ2VCdWZmZXIpCi0gICAgICAgICAgICByZXR1cm4geyBJbWFnZUJpdG1hcDo6Y3Jl
YXRlKHsgSW1hZ2VCdWZmZXI6OmNyZWF0ZShzaXplKCksIFVuYWNjZWxlcmF0ZWQpLCB0cnVlIH0p
IH07CisgICAgICAgICAgICByZXR1cm4geyBJbWFnZUJpdG1hcDo6Y3JlYXRlKHsgSW1hZ2VCdWZm
ZXI6OmNyZWF0ZShzaXplKCksIFJlbmRlcmluZ01vZGU6OlVuYWNjZWxlcmF0ZWQpLCB0cnVlIH0p
IH07CiAKICAgICAgICAgYXV0byBidWZmZXIgPSB0YWtlSW1hZ2VCdWZmZXIoKTsKICAgICAgICAg
aWYgKCFidWZmZXIpCkBAIC0yNDMsNyArMjQzLDcgQEAgdm9pZCBPZmZzY3JlZW5DYW52YXM6OmNy
ZWF0ZUltYWdlQnVmZmVyKCkgY29uc3QKICAgICBpZiAoIXdpZHRoKCkgfHwgIWhlaWdodCgpKQog
ICAgICAgICByZXR1cm47CiAKLSAgICBzZXRJbWFnZUJ1ZmZlcihJbWFnZUJ1ZmZlcjo6Y3JlYXRl
KHNpemUoKSwgVW5hY2NlbGVyYXRlZCkpOworICAgIHNldEltYWdlQnVmZmVyKEltYWdlQnVmZmVy
OjpjcmVhdGUoc2l6ZSgpLCBSZW5kZXJpbmdNb2RlOjpVbmFjY2VsZXJhdGVkKSk7CiB9CiAKIHN0
ZDo6dW5pcXVlX3B0cjxJbWFnZUJ1ZmZlcj4gT2Zmc2NyZWVuQ2FudmFzOjp0YWtlSW1hZ2VCdWZm
ZXIoKSBjb25zdApAQCAtMjU3LDcgKzI1Nyw3IEBAIHN0ZDo6dW5pcXVlX3B0cjxJbWFnZUJ1ZmZl
cj4gT2Zmc2NyZWVuQ2FudmFzOjp0YWtlSW1hZ2VCdWZmZXIoKSBjb25zdAogICAgIGlmIChzaXpl
KCkuaXNFbXB0eSgpKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAotICAgIHJldHVybiBzZXRJ
bWFnZUJ1ZmZlcihJbWFnZUJ1ZmZlcjo6Y3JlYXRlKHNpemUoKSwgVW5hY2NlbGVyYXRlZCkpOwor
ICAgIHJldHVybiBzZXRJbWFnZUJ1ZmZlcihJbWFnZUJ1ZmZlcjo6Y3JlYXRlKHNpemUoKSwgUmVu
ZGVyaW5nTW9kZTo6VW5hY2NlbGVyYXRlZCkpOwogfQogCiB2b2lkIE9mZnNjcmVlbkNhbnZhczo6
cmVzZXQoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzUmVu
ZGVyaW5nQ29udGV4dDJEQmFzZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52
YXNSZW5kZXJpbmdDb250ZXh0MkRCYXNlLmNwcAppbmRleCA4OWQ4ZjQyNDNiMmI5MmRmYmNiMzJh
YTIyMWI3NTNjOTNmMWY1OTQxLi5kNDk0NzEyMDgzMjMxMGM3YzBkN2JlZjFjODc5ZGEzZmZiMjkz
ZjBhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNSZW5kZXJp
bmdDb250ZXh0MkRCYXNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52
YXNSZW5kZXJpbmdDb250ZXh0MkRCYXNlLmNwcApAQCAtMTgwNiw3ICsxODA2LDcgQEAgdGVtcGxh
dGU8Y2xhc3MgVD4gSW50UmVjdCBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkRCYXNlOjpjYWxjdWxh
dGVDb21wb3NpdGluZ0J1ZmYKIAogc3RkOjp1bmlxdWVfcHRyPEltYWdlQnVmZmVyPiBDYW52YXNS
ZW5kZXJpbmdDb250ZXh0MkRCYXNlOjpjcmVhdGVDb21wb3NpdGluZ0J1ZmZlcihjb25zdCBJbnRS
ZWN0JiBidWZmZXJSZWN0KQogewotICAgIHJldHVybiBJbWFnZUJ1ZmZlcjo6Y3JlYXRlKGJ1ZmZl
clJlY3Quc2l6ZSgpLCBpc0FjY2VsZXJhdGVkKCkgPyBBY2NlbGVyYXRlZCA6IFVuYWNjZWxlcmF0
ZWQpOworICAgIHJldHVybiBJbWFnZUJ1ZmZlcjo6Y3JlYXRlKGJ1ZmZlclJlY3Quc2l6ZSgpLCBp
c0FjY2VsZXJhdGVkKCkgPyBSZW5kZXJpbmdNb2RlOjpBY2NlbGVyYXRlZCA6IFJlbmRlcmluZ01v
ZGU6OlVuYWNjZWxlcmF0ZWQpOwogfQogCiB2b2lkIENhbnZhc1JlbmRlcmluZ0NvbnRleHQyREJh
c2U6OmNvbXBvc2l0ZUJ1ZmZlcihJbWFnZUJ1ZmZlciYgYnVmZmVyLCBjb25zdCBJbnRSZWN0JiBi
dWZmZXJSZWN0LCBDb21wb3NpdGVPcGVyYXRvciBvcCkKQEAgLTE5OTAsNyArMTk5MCw3IEBAIEV4
Y2VwdGlvbk9yPFJlZlB0cjxDYW52YXNQYXR0ZXJuPj4gQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJE
QmFzZTo6Y3JlYXRlUGF0dGVybihICiAgICAgICAgIHJldHVybiBSZWZQdHI8Q2FudmFzUGF0dGVy
bj4geyBDYW52YXNQYXR0ZXJuOjpjcmVhdGUoQml0bWFwSW1hZ2U6OmNyZWF0ZShXVEZNb3ZlKG5h
dGl2ZUltYWdlKSksIHJlcGVhdFgsIHJlcGVhdFksIG9yaWdpbkNsZWFuKSB9OwogI2VuZGlmCiAK
LSAgICBhdXRvIGltYWdlQnVmZmVyID0gSW1hZ2VCdWZmZXI6OmNyZWF0ZShzaXplKHZpZGVvRWxl
bWVudCksIGRyYXdpbmdDb250ZXh0KCkgPyBkcmF3aW5nQ29udGV4dCgpLT5yZW5kZXJpbmdNb2Rl
KCkgOiBBY2NlbGVyYXRlZCk7CisgICAgYXV0byBpbWFnZUJ1ZmZlciA9IEltYWdlQnVmZmVyOjpj
cmVhdGUoc2l6ZSh2aWRlb0VsZW1lbnQpLCBkcmF3aW5nQ29udGV4dCgpID8gZHJhd2luZ0NvbnRl
eHQoKS0+cmVuZGVyaW5nTW9kZSgpIDogUmVuZGVyaW5nTW9kZTo6QWNjZWxlcmF0ZWQpOwogICAg
IGlmICghaW1hZ2VCdWZmZXIpCiAgICAgICAgIHJldHVybiBudWxscHRyOwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9JbWFnZUJpdG1hcFJlbmRlcmluZ0NvbnRleHQu
Y3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvSW1hZ2VCaXRtYXBSZW5kZXJpbmdDb250
ZXh0LmNwcAppbmRleCAxNGVhMzdkOGQ3ZWFmYjAxYjVjNGNlMTllYmU3NmM1MThjZmNkNGE4Li5i
NTFiNGRiZjEzZWU1MDZlYjk0OThjNDNlZjQ1Yzk0NGRkNzNlMGE1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL2NhbnZhcy9JbWFnZUJpdG1hcFJlbmRlcmluZ0NvbnRleHQuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0ltYWdlQml0bWFwUmVuZGVyaW5nQ29udGV4
dC5jcHAKQEAgLTM2LDkgKzM2LDkgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogV1RGX01BS0VfSVNP
X0FMTE9DQVRFRF9JTVBMKEltYWdlQml0bWFwUmVuZGVyaW5nQ29udGV4dCk7CiAKICNpZiBVU0Uo
SU9TVVJGQUNFX0NBTlZBU19CQUNLSU5HX1NUT1JFKSB8fCBFTkFCTEUoQUNDRUxFUkFURURfMkRf
Q0FOVkFTKQotc3RhdGljIFJlbmRlcmluZ01vZGUgYnVmZmVyUmVuZGVyaW5nTW9kZSA9IEFjY2Vs
ZXJhdGVkOworc3RhdGljIFJlbmRlcmluZ01vZGUgYnVmZmVyUmVuZGVyaW5nTW9kZSA9IFJlbmRl
cmluZ01vZGU6OkFjY2VsZXJhdGVkOwogI2Vsc2UKLXN0YXRpYyBSZW5kZXJpbmdNb2RlIGJ1ZmZl
clJlbmRlcmluZ01vZGUgPSBVbmFjY2VsZXJhdGVkOworc3RhdGljIFJlbmRlcmluZ01vZGUgYnVm
ZmVyUmVuZGVyaW5nTW9kZSA9IFJlbmRlcmluZ01vZGU6OlVuYWNjZWxlcmF0ZWQ7CiAjZW5kaWYK
IAogc3RkOjp1bmlxdWVfcHRyPEltYWdlQml0bWFwUmVuZGVyaW5nQ29udGV4dD4gSW1hZ2VCaXRt
YXBSZW5kZXJpbmdDb250ZXh0OjpjcmVhdGUoQ2FudmFzQmFzZSYgY2FudmFzLCBJbWFnZUJpdG1h
cFJlbmRlcmluZ0NvbnRleHRTZXR0aW5ncyYmIHNldHRpbmdzKQpAQCAtNjksNyArNjksNyBAQCBI
VE1MQ2FudmFzRWxlbWVudCogSW1hZ2VCaXRtYXBSZW5kZXJpbmdDb250ZXh0OjpjYW52YXMoKSBj
b25zdAogCiBib29sIEltYWdlQml0bWFwUmVuZGVyaW5nQ29udGV4dDo6aXNBY2NlbGVyYXRlZCgp
IGNvbnN0CiB7Ci0gICAgcmV0dXJuIGJ1ZmZlclJlbmRlcmluZ01vZGUgPT0gQWNjZWxlcmF0ZWQ7
CisgICAgcmV0dXJuIGJ1ZmZlclJlbmRlcmluZ01vZGUgPT0gUmVuZGVyaW5nTW9kZTo6QWNjZWxl
cmF0ZWQ7CiB9CiAKIHZvaWQgSW1hZ2VCaXRtYXBSZW5kZXJpbmdDb250ZXh0OjpzZXRPdXRwdXRC
aXRtYXAoUmVmUHRyPEltYWdlQml0bWFwPiBpbWFnZUJpdG1hcCkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuY3BwIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5jcHAKaW5k
ZXggNjdjYTUzYzQ3ZWVhMDA4YmVhM2Y2MWRmOTZlNzM4OWNhZWNhNmRlYS4uNDI4ODIxNjQ0OThk
ZmMxODU2OTQ3YjE2YzNhMjlhODYzN2ZkOTUwYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5jcHAKQEAgLTYzODYs
NyArNjM4Niw3IEBAIEltYWdlQnVmZmVyKiBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpMUlVJ
bWFnZUJ1ZmZlckNhY2hlOjppbWFnZUJ1ZmZlcihjb25zdCBJCiAgICAgfQogCiAgICAgLy8gRklY
TUUgKDE0OTQyMyk6IFNob3VsZCB0aGlzIEltYWdlQnVmZmVyIGJlIHVuY29uZGl0aW9uYWxseSB1
bmFjY2VsZXJhdGVkPwotICAgIHN0ZDo6dW5pcXVlX3B0cjxJbWFnZUJ1ZmZlcj4gdGVtcCA9IElt
YWdlQnVmZmVyOjpjcmVhdGUoc2l6ZSwgVW5hY2NlbGVyYXRlZCk7CisgICAgc3RkOjp1bmlxdWVf
cHRyPEltYWdlQnVmZmVyPiB0ZW1wID0gSW1hZ2VCdWZmZXI6OmNyZWF0ZShzaXplLCBSZW5kZXJp
bmdNb2RlOjpVbmFjY2VsZXJhdGVkKTsKICAgICBpZiAoIXRlbXApCiAgICAgICAgIHJldHVybiBu
dWxscHRyOwogICAgIEFTU0VSVChtX2J1ZmZlcnMuc2l6ZSgpID4gMCk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xFbGVtZW50cy5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xFbGVtZW50cy5jcHAKaW5kZXggMzRi
YTM3MmQ0OTE0M2NmZTI5M2E3YzJhODk0NWU0MGYzNTFiMTA1MS4uZjZiYmZhZGQzNzdiYjUxYjA2
MGFhMGIzM2YwYjY4MGYxMTJjOTk0ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9z
aGFkb3cvTWVkaWFDb250cm9sRWxlbWVudHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
c2hhZG93L01lZGlhQ29udHJvbEVsZW1lbnRzLmNwcApAQCAtMTQ0Nyw3ICsxNDQ3LDcgQEAgUmVm
UHRyPEltYWdlPiBNZWRpYUNvbnRyb2xUZXh0VHJhY2tDb250YWluZXJFbGVtZW50OjpjcmVhdGVU
ZXh0VHJhY2tSZXByZXNlbnRhdGkKICAgICBJbnRSZWN0IHBhaW50aW5nUmVjdCA9IEludFJlY3Qo
SW50UG9pbnQoKSwgbGF5ZXItPnNpemUoKSk7CiAKICAgICAvLyBGSVhNRSAoMTQ5NDIyKTogVGhp
cyBidWZmZXIgc2hvdWxkIG5vdCBiZSB1bmNvbmRpdGlvbmFsbHkgdW5hY2NlbGVyYXRlZC4KLSAg
ICBzdGQ6OnVuaXF1ZV9wdHI8SW1hZ2VCdWZmZXI+IGJ1ZmZlcihJbWFnZUJ1ZmZlcjo6Y3JlYXRl
KHBhaW50aW5nUmVjdC5zaXplKCksIFVuYWNjZWxlcmF0ZWQsIGRldmljZVNjYWxlRmFjdG9yKSk7
CisgICAgc3RkOjp1bmlxdWVfcHRyPEltYWdlQnVmZmVyPiBidWZmZXIoSW1hZ2VCdWZmZXI6OmNy
ZWF0ZShwYWludGluZ1JlY3Quc2l6ZSgpLCBSZW5kZXJpbmdNb2RlOjpVbmFjY2VsZXJhdGVkLCBk
ZXZpY2VTY2FsZUZhY3RvcikpOwogICAgIGlmICghYnVmZmVyKQogICAgICAgICByZXR1cm4gbnVs
bHB0cjsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVNuYXBzaG90dGlu
Zy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lU25hcHNob3R0aW5nLmNwcAppbmRleCAw
YTQ0YzJmYTFhMDk0OTdjZmRmNTU4ODgzMmZmZGZmMTAyMzMzMGUxLi5lMjRkOTJlNmYzZTYxZDM4
YTliMjQ0ODVmNGQxM2RlNTBlNTMzYTJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0ZyYW1lU25hcHNob3R0aW5nLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lU25h
cHNob3R0aW5nLmNwcApAQCAtMTExLDcgKzExMSw3IEBAIHN0ZDo6dW5pcXVlX3B0cjxJbWFnZUJ1
ZmZlcj4gc25hcHNob3RGcmFtZVJlY3RXaXRoQ2xpcChGcmFtZSYgZnJhbWUsIGNvbnN0IEludFJl
CiAgICAgaWYgKG9wdGlvbnMgJiBTbmFwc2hvdE9wdGlvbnNQYWludFdpdGhJbnRlZ3JhbFNjYWxl
RmFjdG9yKQogICAgICAgICBzY2FsZUZhY3RvciA9IGNlaWxmKHNjYWxlRmFjdG9yKTsKIAotICAg
IHN0ZDo6dW5pcXVlX3B0cjxJbWFnZUJ1ZmZlcj4gYnVmZmVyID0gSW1hZ2VCdWZmZXI6OmNyZWF0
ZShpbWFnZVJlY3Quc2l6ZSgpLCBVbmFjY2VsZXJhdGVkLCBzY2FsZUZhY3Rvcik7CisgICAgc3Rk
Ojp1bmlxdWVfcHRyPEltYWdlQnVmZmVyPiBidWZmZXIgPSBJbWFnZUJ1ZmZlcjo6Y3JlYXRlKGlt
YWdlUmVjdC5zaXplKCksIFJlbmRlcmluZ01vZGU6OlVuYWNjZWxlcmF0ZWQsIHNjYWxlRmFjdG9y
KTsKICAgICBpZiAoIWJ1ZmZlcikKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgYnVmZmVy
LT5jb250ZXh0KCkudHJhbnNsYXRlKC1pbWFnZVJlY3QueCgpLCAtaW1hZ2VSZWN0LnkoKSk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9BbHBoYVByZW11bHRp
cGxpY2F0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9BbHBoYVByZW11
bHRpcGxpY2F0aW9uLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNmQxY2FlZjg1NDFkZWUwNjJiZmUwNTQxNmNkYTJm
MmE3Zjc5MjZlMgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL0FscGhhUHJlbXVsdGlwbGljYXRpb24uaApAQCAtMCwwICsxLDM5IEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJ
UycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRP
UlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1Mg
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisg
KiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNp
bmNsdWRlIDx3dGYvRm9yd2FyZC5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2VudW0gY2xh
c3MgQWxwaGFQcmVtdWx0aXBsaWNhdGlvbiA6IHVpbnQ4X3QgeworICAgIFByZW11bHRpcGxpZWQs
CisgICAgVW5wcmVtdWx0aXBsaWVkCit9OworCitXRUJDT1JFX0VYUE9SVCBXVEY6OlRleHRTdHJl
YW0mIG9wZXJhdG9yPDwoV1RGOjpUZXh0U3RyZWFtJiwgQWxwaGFQcmVtdWx0aXBsaWNhdGlvbik7
CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL0JpdG1hcEltYWdlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL0JpdG1hcEltYWdlLmNwcAppbmRleCBjNzFkOThmOGE1ZjY2NzQ2ODYzMDk0NGFi
NzFkYmFmYzkxZGNiNjRlLi40ODIyNDRhNGYyYmRjZWRlN2M4NzRjZDFiNTBlYTkxNGIxNDk5YTIy
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9CaXRtYXBJbWFn
ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQml0bWFwSW1hZ2Uu
Y3BwCkBAIC0xNjAsNyArMTYwLDcgQEAgTmF0aXZlSW1hZ2VQdHIgQml0bWFwSW1hZ2U6Om5hdGl2
ZUltYWdlRm9yQ3VycmVudEZyYW1lUmVzcGVjdGluZ09yaWVudGF0aW9uKGNvbnMKICAgICAgICAg
cmV0dXJuIGltYWdlOwogCiAgICAgRmxvYXRSZWN0IHJlY3QgPSB7IEZsb2F0UG9pbnQoKSwgc2l6
ZSgpIH07Ci0gICAgYXV0byBidWZmZXIgPSBJbWFnZUJ1ZmZlcjo6Y3JlYXRlKHJlY3Quc2l6ZSgp
LCBVbmFjY2VsZXJhdGVkKTsKKyAgICBhdXRvIGJ1ZmZlciA9IEltYWdlQnVmZmVyOjpjcmVhdGUo
cmVjdC5zaXplKCksIFJlbmRlcmluZ01vZGU6OlVuYWNjZWxlcmF0ZWQpOwogICAgIGlmICghYnVm
ZmVyKQogICAgICAgICByZXR1cm4gaW1hZ2U7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dC5oIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0LmgKaW5kZXggZjU4NmRkNGIyYWY5MWY0NTY1
NTM1YTcwMjkzOTIzYWYyYmFhZGJhMi4uZTVjMzFjMWU2NGVmNTRiOTYxMTMxZGJiMjVjNGNlNGIx
ODllMmQzYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3Jh
cGhpY3NDb250ZXh0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3Jh
cGhpY3NDb250ZXh0LmgKQEAgLTM1LDYgKzM1LDcgQEAKICNpbmNsdWRlICJJbWFnZU9yaWVudGF0
aW9uLmgiCiAjaW5jbHVkZSAiSW1hZ2VQYWludGluZ09wdGlvbnMuaCIKICNpbmNsdWRlICJQYXR0
ZXJuLmgiCisjaW5jbHVkZSAiUmVuZGVyaW5nTW9kZS5oIgogI2luY2x1ZGUgPHd0Zi9GdW5jdGlv
bi5oPgogI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgogI2luY2x1ZGUgPHd0Zi9PcHRpb25T
ZXQuaD4KQEAgLTM1MCw3ICszNTEsNyBAQCBwdWJsaWM6CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9p
ZCBzZXRJc0FjY2VsZXJhdGVkQ29udGV4dChib29sKTsKICNlbmRpZgogICAgIGJvb2wgaXNBY2Nl
bGVyYXRlZENvbnRleHQoKSBjb25zdDsKLSAgICBSZW5kZXJpbmdNb2RlIHJlbmRlcmluZ01vZGUo
KSBjb25zdCB7IHJldHVybiBpc0FjY2VsZXJhdGVkQ29udGV4dCgpID8gQWNjZWxlcmF0ZWQgOiBV
bmFjY2VsZXJhdGVkOyB9CisgICAgUmVuZGVyaW5nTW9kZSByZW5kZXJpbmdNb2RlKCkgY29uc3Qg
eyByZXR1cm4gaXNBY2NlbGVyYXRlZENvbnRleHQoKSA/IFJlbmRlcmluZ01vZGU6OkFjY2VsZXJh
dGVkIDogUmVuZGVyaW5nTW9kZTo6VW5hY2NlbGVyYXRlZDsgfQogCiAgICAgV0VCQ09SRV9FWFBP
UlQgdm9pZCBzYXZlKCk7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCByZXN0b3JlKCk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc1R5cGVzLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzVHlwZXMuY3BwCmlu
ZGV4IDQ1OGFlNzJmMmFlMDI1NjI0NzY4ZTg3OWRiZDQ5Njk2NGI0OTFiMTguLmRjNTRhOTk4NWU0
ZDQyMDY3ZGE2YzIzODE4MzVmYmQzNzM2ODc2MWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzVHlwZXMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzVHlwZXMuY3BwCkBAIC0yOCw2ICsyOCw3IEBACiAj
aW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiR3JhcGhpY3NUeXBlcy5oIgogCisjaW5jbHVk
ZSAiQWxwaGFQcmVtdWx0aXBsaWNhdGlvbi5oIgogI2luY2x1ZGUgPHd0Zi9Bc3NlcnRpb25zLmg+
CiAjaW5jbHVkZSA8d3RmL3RleHQvVGV4dFN0cmVhbS5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dU
RlN0cmluZy5oPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
R3JhcGhpY3NUeXBlcy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhp
Y3NUeXBlcy5oCmluZGV4IGNlZWExZGE0MGViMzJmZjc4YTFlNzVlMTdiZmUwMDkyMDFiNzZmMTIu
LjU3ZWViZGM1MDAzYzM3MGI4YjQ3NDFlYzJiYTU0MjQ3Yzk1YzkzZWUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzVHlwZXMuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc1R5cGVzLmgKQEAgLTEyMiwxNyAr
MTIyLDYgQEAgZW51bSBUZXh0QWxpZ24gewogICAgIFJpZ2h0VGV4dEFsaWduCiB9OwogCi1lbnVt
IFJlbmRlcmluZ01vZGUgewotICAgIFVuYWNjZWxlcmF0ZWQsCi0gICAgVW5hY2NlbGVyYXRlZE5v
blBsYXRmb3JtQnVmZmVyLCAvLyBVc2UgcGxhaW4gbWVtb3J5IGFsbG9jYXRpb24gcmF0aGVyIHRo
YW4gcGxhdGZvcm0gQVBJIHRvIGFsbG9jYXRlIGJhY2tpbmcgc3RvcmUuCi0gICAgQWNjZWxlcmF0
ZWQKLX07Ci0KLWVudW0gY2xhc3MgQWxwaGFQcmVtdWx0aXBsaWNhdGlvbiB7Ci0gICAgUHJlbXVs
dGlwbGllZCwKLSAgICBVbnByZW11bHRpcGxpZWQKLX07Ci0KIFN0cmluZyBjb21wb3NpdGVPcGVy
YXRvck5hbWUoV2ViQ29yZTo6Q29tcG9zaXRlT3BlcmF0b3IsIFdlYkNvcmU6OkJsZW5kTW9kZSk7
CiBTdHJpbmcgYmxlbmRNb2RlTmFtZShXZWJDb3JlOjpCbGVuZE1vZGUpOwogYm9vbCBwYXJzZUJs
ZW5kTW9kZShjb25zdCBTdHJpbmcmLCBXZWJDb3JlOjpCbGVuZE1vZGUmKTsKQEAgLTE0Myw3ICsx
MzIsNiBAQCBXRUJDT1JFX0VYUE9SVCBXVEY6OlRleHRTdHJlYW0mIG9wZXJhdG9yPDwoV1RGOjpU
ZXh0U3RyZWFtJiwgV2ViQ29yZTo6Q29tcG9zaXRlTwogV0VCQ09SRV9FWFBPUlQgV1RGOjpUZXh0
U3RyZWFtJiBvcGVyYXRvcjw8KFdURjo6VGV4dFN0cmVhbSYsIFdpbmRSdWxlKTsKIFdFQkNPUkVf
RVhQT1JUIFdURjo6VGV4dFN0cmVhbSYgb3BlcmF0b3I8PChXVEY6OlRleHRTdHJlYW0mLCBMaW5l
Q2FwKTsKIFdFQkNPUkVfRVhQT1JUIFdURjo6VGV4dFN0cmVhbSYgb3BlcmF0b3I8PChXVEY6OlRl
eHRTdHJlYW0mLCBMaW5lSm9pbik7Ci1XRUJDT1JFX0VYUE9SVCBXVEY6OlRleHRTdHJlYW0mIG9w
ZXJhdG9yPDwoV1RGOjpUZXh0U3RyZWFtJiwgQWxwaGFQcmVtdWx0aXBsaWNhdGlvbik7CiAKIH0g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvSW1hZ2VCdWZmZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL0ltYWdlQnVmZmVyLmgKaW5kZXggY2I3NDM4NDQ4MDJhYjQyYjU1MzUxMTdjYWI1Y2I3NTY0
NGQ1YjNmNC4uNjJkMGE1YjMwNTZlYWJlNTVhYjJiZTYxOWQ3ZWE3OGQ4ZGM0YTU3NSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VCdWZmZXIuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZUJ1ZmZlci5oCkBAIC0yOCw2
ICsyOCw3IEBACiAjcHJhZ21hIG9uY2UKIAogI2luY2x1ZGUgIkFmZmluZVRyYW5zZm9ybS5oIgor
I2luY2x1ZGUgIkFscGhhUHJlbXVsdGlwbGljYXRpb24uaCIKICNpbmNsdWRlICJDb2xvclNwYWNl
LmgiCiAjaW5jbHVkZSAiR3JhcGhpY3NUeXBlcy5oIgogI2luY2x1ZGUgIkdyYXBoaWNzVHlwZXNH
TC5oIgpAQCAtMzUsNiArMzYsNyBAQAogI2luY2x1ZGUgIkltYWdlUGFpbnRpbmdPcHRpb25zLmgi
CiAjaW5jbHVkZSAiSW50U2l6ZS5oIgogI2luY2x1ZGUgIlBsYXRmb3JtTGF5ZXIuaCIKKyNpbmNs
dWRlICJSZW5kZXJpbmdNb2RlLmgiCiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvVWludDhDbGFt
cGVkQXJyYXkuaD4KICNpbmNsdWRlIDxtZW1vcnk+CiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4K
QEAgLTE5NCw0ICsxOTYsMyBAQCBWZWN0b3I8dWludDhfdD4gZGF0YShjb25zdCBJbWFnZURhdGEm
LCBjb25zdCBTdHJpbmcmIG1pbWVUeXBlLCBPcHRpb25hbDxkb3VibGU+CiAjZW5kaWYKIAogfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQotCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9SZW5kZXJpbmdNb2RlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9SZW5kZXJpbmdNb2RlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjlkOGFlODFjODQ4YjEwZTZmMmQwN2E3
ODliMTZjMzMzZGMyM2NiNAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL1JlbmRlcmluZ01vZGUuaApAQCAtMCwwICsxLDM1IEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycn
IEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMg
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwK
KyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKK25hbWVz
cGFjZSBXZWJDb3JlIHsKKworZW51bSBjbGFzcyBSZW5kZXJpbmdNb2RlIDogdWludDhfdCB7Cisg
ICAgQWNjZWxlcmF0ZWQsCisgICAgVW5hY2NlbGVyYXRlZCwKK307CisKK30gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1No
YWRvd0JsdXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvU2hhZG93Qmx1
ci5jcHAKaW5kZXggNDA0MWIzZjgxMDc2NzhjNTZhY2RiMGM1MzNhMDk4NmY3ZTY0NTU5Ni4uNjgx
YWI1NmVlYjM0MTk0NjJiMjM0NDUwZDAwZjQxZjkzMzY3NGQxOCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvU2hhZG93Qmx1ci5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvU2hhZG93Qmx1ci5jcHAKQEAgLTgzLDcgKzgzLDcgQEAg
cHVibGljOgogICAgICAgICBjbGVhclNjcmF0Y2hCdWZmZXIoKTsKIAogICAgICAgICAvLyBTaGFk
b3dCbHVyIGlzIG5vdCB1c2VkIHdpdGggYWNjZWxlcmF0ZWQgZHJhd2luZywgc28gaXQncyBPSyB0
byBtYWtlIGFuIHVuY29uZGl0aW9uYWxseSB1bmFjY2VsZXJhdGVkIGJ1ZmZlci4KLSAgICAgICAg
bV9pbWFnZUJ1ZmZlciA9IEltYWdlQnVmZmVyOjpjcmVhdGUocm91bmRlZFNpemUsIFVuYWNjZWxl
cmF0ZWQsIDEpOworICAgICAgICBtX2ltYWdlQnVmZmVyID0gSW1hZ2VCdWZmZXI6OmNyZWF0ZShy
b3VuZGVkU2l6ZSwgUmVuZGVyaW5nTW9kZTo6VW5hY2NlbGVyYXRlZCwgMSk7CiAgICAgICAgIHJl
dHVybiBtX2ltYWdlQnVmZmVyLmdldCgpOwogICAgIH0KIApAQCAtNTkzLDcgKzU5Myw3IEBAIHZv
aWQgU2hhZG93Qmx1cjo6ZHJhd0luc2V0U2hhZG93KGNvbnN0IEFmZmluZVRyYW5zZm9ybSYgdHJh
bnNmb3JtLCBjb25zdCBJbnRSZWN0CiAKIHZvaWQgU2hhZG93Qmx1cjo6ZHJhd1JlY3RTaGFkb3dX
aXRob3V0VGlsaW5nKGNvbnN0IEFmZmluZVRyYW5zZm9ybSYsIGNvbnN0IEZsb2F0Um91bmRlZFJl
Y3QmIHNoYWRvd2VkUmVjdCwgY29uc3QgTGF5ZXJJbWFnZVByb3BlcnRpZXMmIGxheWVySW1hZ2VQ
cm9wZXJ0aWVzLCBjb25zdCBEcmF3QnVmZmVyQ2FsbGJhY2smIGRyYXdCdWZmZXIpCiB7Ci0gICAg
YXV0byBsYXllckltYWdlID0gSW1hZ2VCdWZmZXI6OmNyZWF0ZShleHBhbmRlZEludFNpemUobGF5
ZXJJbWFnZVByb3BlcnRpZXMubGF5ZXJTaXplKSwgVW5hY2NlbGVyYXRlZCwgMSk7CisgICAgYXV0
byBsYXllckltYWdlID0gSW1hZ2VCdWZmZXI6OmNyZWF0ZShleHBhbmRlZEludFNpemUobGF5ZXJJ
bWFnZVByb3BlcnRpZXMubGF5ZXJTaXplKSwgUmVuZGVyaW5nTW9kZTo6VW5hY2NlbGVyYXRlZCwg
MSk7CiAgICAgaWYgKCFsYXllckltYWdlKQogICAgICAgICByZXR1cm47CiAKQEAgLTYyMSw3ICs2
MjEsNyBAQCB2b2lkIFNoYWRvd0JsdXI6OmRyYXdSZWN0U2hhZG93V2l0aG91dFRpbGluZyhjb25z
dCBBZmZpbmVUcmFuc2Zvcm0mLCBjb25zdCBGbG9hdAogCiB2b2lkIFNoYWRvd0JsdXI6OmRyYXdJ
bnNldFNoYWRvd1dpdGhvdXRUaWxpbmcoY29uc3QgQWZmaW5lVHJhbnNmb3JtJiwgY29uc3QgRmxv
YXRSZWN0JiBmdWxsUmVjdCwgY29uc3QgRmxvYXRSb3VuZGVkUmVjdCYgaG9sZVJlY3QsIGNvbnN0
IExheWVySW1hZ2VQcm9wZXJ0aWVzJiBsYXllckltYWdlUHJvcGVydGllcywgY29uc3QgRHJhd0J1
ZmZlckNhbGxiYWNrJiBkcmF3QnVmZmVyKQogewotICAgIGF1dG8gbGF5ZXJJbWFnZSA9IEltYWdl
QnVmZmVyOjpjcmVhdGUoZXhwYW5kZWRJbnRTaXplKGxheWVySW1hZ2VQcm9wZXJ0aWVzLmxheWVy
U2l6ZSksIFVuYWNjZWxlcmF0ZWQsIDEpOworICAgIGF1dG8gbGF5ZXJJbWFnZSA9IEltYWdlQnVm
ZmVyOjpjcmVhdGUoZXhwYW5kZWRJbnRTaXplKGxheWVySW1hZ2VQcm9wZXJ0aWVzLmxheWVyU2l6
ZSksIFJlbmRlcmluZ01vZGU6OlVuYWNjZWxlcmF0ZWQsIDEpOwogICAgIGlmICghbGF5ZXJJbWFn
ZSkKICAgICAgICAgcmV0dXJuOwogCkBAIC02ODUsNyArNjg1LDcgQEAgdm9pZCBTaGFkb3dCbHVy
OjpkcmF3UmVjdFNoYWRvd1dpdGhUaWxpbmcoY29uc3QgQWZmaW5lVHJhbnNmb3JtJiB0cmFuc2Zv
cm0sIGNvbnMKICAgICBhdXRvKiBsYXllckltYWdlID0gU2NyYXRjaEJ1ZmZlcjo6c2luZ2xldG9u
KCkuZ2V0U2NyYXRjaEJ1ZmZlcih0ZW1wbGF0ZVNpemUpOwogI2Vsc2UKICAgICBVTlVTRURfUEFS
QU0obGF5ZXJJbWFnZVByb3BlcnRpZXMpOwotICAgIGF1dG8gbGF5ZXJJbWFnZUJ1ZmZlciA9IElt
YWdlQnVmZmVyOjpjcmVhdGUodGVtcGxhdGVTaXplLCBVbmFjY2VsZXJhdGVkLCAxKTsKKyAgICBh
dXRvIGxheWVySW1hZ2VCdWZmZXIgPSBJbWFnZUJ1ZmZlcjo6Y3JlYXRlKHRlbXBsYXRlU2l6ZSwg
UmVuZGVyaW5nTW9kZTo6VW5hY2NlbGVyYXRlZCwgMSk7CiAgICAgYXV0byogbGF5ZXJJbWFnZSA9
IGxheWVySW1hZ2VCdWZmZXIuZ2V0KCk7CiAjZW5kaWYKIApAQCAtNzM5LDcgKzczOSw3IEBAIHZv
aWQgU2hhZG93Qmx1cjo6ZHJhd0luc2V0U2hhZG93V2l0aFRpbGluZyhjb25zdCBBZmZpbmVUcmFu
c2Zvcm0mIHRyYW5zZm9ybSwgY29uCiAjaWYgVVNFKENHKQogICAgIGF1dG8qIGxheWVySW1hZ2Ug
PSBTY3JhdGNoQnVmZmVyOjpzaW5nbGV0b24oKS5nZXRTY3JhdGNoQnVmZmVyKHRlbXBsYXRlU2l6
ZSk7CiAjZWxzZQotICAgIGF1dG8gbGF5ZXJJbWFnZUJ1ZmZlciA9IEltYWdlQnVmZmVyOjpjcmVh
dGUodGVtcGxhdGVTaXplLCBVbmFjY2VsZXJhdGVkLCAxKTsKKyAgICBhdXRvIGxheWVySW1hZ2VC
dWZmZXIgPSBJbWFnZUJ1ZmZlcjo6Y3JlYXRlKHRlbXBsYXRlU2l6ZSwgUmVuZGVyaW5nTW9kZTo6
VW5hY2NlbGVyYXRlZCwgMSk7CiAgICAgYXV0byogbGF5ZXJJbWFnZSA9IGxheWVySW1hZ2VCdWZm
ZXIuZ2V0KCk7CiAjZW5kaWYKIApAQCAtOTEyLDcgKzkxMiw3IEBAIHZvaWQgU2hhZG93Qmx1cjo6
ZHJhd1NoYWRvd0xheWVyKGNvbnN0IEFmZmluZVRyYW5zZm9ybSYgdHJhbnNmb3JtLCBjb25zdCBJ
bnRSZWN0CiAKICAgICBhZGp1c3RCbHVyUmFkaXVzKHRyYW5zZm9ybSk7CiAKLSAgICBhdXRvIGxh
eWVySW1hZ2UgPSBJbWFnZUJ1ZmZlcjo6Y3JlYXRlKGV4cGFuZGVkSW50U2l6ZShsYXllckltYWdl
UHJvcGVydGllcy0+bGF5ZXJTaXplKSwgVW5hY2NlbGVyYXRlZCwgMSk7CisgICAgYXV0byBsYXll
ckltYWdlID0gSW1hZ2VCdWZmZXI6OmNyZWF0ZShleHBhbmRlZEludFNpemUobGF5ZXJJbWFnZVBy
b3BlcnRpZXMtPmxheWVyU2l6ZSksIFJlbmRlcmluZ01vZGU6OlVuYWNjZWxlcmF0ZWQsIDEpOwog
ICAgIGlmICghbGF5ZXJJbWFnZSkKICAgICAgICAgcmV0dXJuOwogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9JbWFnZUJ1ZmZlckNHLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0ltYWdlQnVmZmVyQ0cuY3BwCmluZGV4IDM1
NmYxOTY0ZDA5NTUyYmQxYTI3ZmMwZDIyODA5ZDhhM2RhNmI3NWIuLjk0N2ZmOTMyMGI2OGNiYzAx
ZDlmM2E0NTRlODM1NDNmZDNkOTQyMzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2NnL0ltYWdlQnVmZmVyQ0cuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2NnL0ltYWdlQnVmZmVyQ0cuY3BwCkBAIC0xMjcsNyArMTI3LDcgQEAg
SW1hZ2VCdWZmZXI6OkltYWdlQnVmZmVyKGNvbnN0IEZsb2F0U2l6ZSYgc2l6ZSwgZmxvYXQgcmVz
b2x1dGlvblNjYWxlLCBDR0NvbG9yU3AKICAgICBtX3NpemUgPSBJbnRTaXplKHNjYWxlZFdpZHRo
LCBzY2FsZWRIZWlnaHQpOwogICAgIG1fZGF0YS5iYWNraW5nU3RvcmVTaXplID0gbV9zaXplOwog
Ci0gICAgYm9vbCBhY2NlbGVyYXRlUmVuZGVyaW5nID0gcmVuZGVyaW5nTW9kZSA9PSBBY2NlbGVy
YXRlZDsKKyAgICBib29sIGFjY2VsZXJhdGVSZW5kZXJpbmcgPSByZW5kZXJpbmdNb2RlID09IFJl
bmRlcmluZ01vZGU6OkFjY2VsZXJhdGVkOwogICAgIGlmIChtX3NpemUud2lkdGgoKSA8PSAwIHx8
IG1fc2l6ZS5oZWlnaHQoKSA8PSAwKQogICAgICAgICByZXR1cm47CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0ltYWdlQnVmZmVyRGF0YUNHLmggYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9JbWFnZUJ1ZmZlckRhdGFDRy5oCmlu
ZGV4IGM1NWE1NGFkOTExNzk1M2NhNWU2OTZkYTA3ZTZlMGRmNjgxNDNkNTguLjNlMjM3NGJhZDI0
ZjA3ODdmZWYwNTQzYzFiNTFiOTEyMGYxMjMwZDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2NnL0ltYWdlQnVmZmVyRGF0YUNHLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSW1hZ2VCdWZmZXJEYXRhQ0cuaApAQCAtMjYsNiAr
MjYsNyBAQAogCiAjcHJhZ21hIG9uY2UKIAorI2luY2x1ZGUgIkFscGhhUHJlbXVsdGlwbGljYXRp
b24uaCIKICNpbmNsdWRlICJJbWFnZS5oIgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL1VpbnQ4
Q2xhbXBlZEFycmF5Lmg+CiAjaW5jbHVkZSA8d3RmL0NoZWNrZWRBcml0aG1ldGljLmg+CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZpbHRlci5o
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GaWx0ZXIuaAppbmRl
eCA0OWU4YzVhMjZlNzcxYzQyNDk2NzgxOTUyN2E1NjI3MzUzZGY0NDk2Li5kZDM1Y2M2NWIxMzdk
ODIyYzcwMTUzMmRhYmQyNDkwMDRiZjJhOWY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZpbHRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRmlsdGVyLmgKQEAgLTcxLDcgKzcxLDcgQEAgcHJpdmF0
ZToKICAgICBzdGQ6OnVuaXF1ZV9wdHI8SW1hZ2VCdWZmZXI+IG1fc291cmNlSW1hZ2U7CiAgICAg
RmxvYXRTaXplIG1fZmlsdGVyUmVzb2x1dGlvbjsKICAgICBBZmZpbmVUcmFuc2Zvcm0gbV9hYnNv
bHV0ZVRyYW5zZm9ybTsKLSAgICBSZW5kZXJpbmdNb2RlIG1fcmVuZGVyaW5nTW9kZSB7IFVuYWNj
ZWxlcmF0ZWQgfTsKKyAgICBSZW5kZXJpbmdNb2RlIG1fcmVuZGVyaW5nTW9kZSB7IFJlbmRlcmlu
Z01vZGU6OlVuYWNjZWxlcmF0ZWQgfTsKICAgICBmbG9hdCBtX2ZpbHRlclNjYWxlIHsgMSB9Owog
fTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9Nb2NrUmVhbHRp
bWVWaWRlb1NvdXJjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL01vY2tSZWFs
dGltZVZpZGVvU291cmNlLmNwcAppbmRleCBjYTExYmI4YmEwYjE5MTBjNjI3OTY3ZDRkMjYwYjA0
YzY4NDg2NzMxLi41YWM5ZDY2MDZjNDIyMTI0OGJjNDFkZTkzODljZTVjODdlNGE0MTdiIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL01vY2tSZWFsdGltZVZpZGVvU291
cmNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL01vY2tSZWFsdGltZVZp
ZGVvU291cmNlLmNwcApAQCAtNDU4LDcgKzQ1OCw3IEBAIEltYWdlQnVmZmVyKiBNb2NrUmVhbHRp
bWVWaWRlb1NvdXJjZTo6aW1hZ2VCdWZmZXIoKSBjb25zdAogICAgIGlmIChtX2ltYWdlQnVmZmVy
KQogICAgICAgICByZXR1cm4gbV9pbWFnZUJ1ZmZlci5nZXQoKTsKIAotICAgIG1faW1hZ2VCdWZm
ZXIgPSBJbWFnZUJ1ZmZlcjo6Y3JlYXRlKGNhcHR1cmVTaXplKCksIFVuYWNjZWxlcmF0ZWQpOwor
ICAgIG1faW1hZ2VCdWZmZXIgPSBJbWFnZUJ1ZmZlcjo6Y3JlYXRlKGNhcHR1cmVTaXplKCksIFJl
bmRlcmluZ01vZGU6OlVuYWNjZWxlcmF0ZWQpOwogICAgIGlmICghbV9pbWFnZUJ1ZmZlcikKICAg
ICAgICAgcmV0dXJuIG51bGxwdHI7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJMYXllci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5
ZXIuY3BwCmluZGV4IGQ1YjkxYjI2ODZhZTI2MWViNTNjMDY4OWJlZWM2MmY1NWUzZmI0NTguLjhm
NTBlNTc1NzFkN2IzODUwMGVlZDdiY2RhNmIzYTY0MmFiZjc5NTAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcApAQCAtNjkwNSw3ICs2OTA1LDcgQEAgdm9pZCBSZW5k
ZXJMYXllcjo6dXBkYXRlRmlsdGVyUGFpbnRpbmdTdHJhdGVneSgpCiAgICAgfQogICAgIAogICAg
IGVuc3VyZUxheWVyRmlsdGVycygpOwotICAgIG1fZmlsdGVycy0+YnVpbGRGaWx0ZXIocmVuZGVy
ZXIoKSwgcGFnZSgpLmRldmljZVNjYWxlRmFjdG9yKCksIHJlbmRlcmVyKCkuc2V0dGluZ3MoKS5h
Y2NlbGVyYXRlZEZpbHRlcnNFbmFibGVkKCkgPyBBY2NlbGVyYXRlZCA6IFVuYWNjZWxlcmF0ZWQp
OworICAgIG1fZmlsdGVycy0+YnVpbGRGaWx0ZXIocmVuZGVyZXIoKSwgcGFnZSgpLmRldmljZVNj
YWxlRmFjdG9yKCksIHJlbmRlcmVyKCkuc2V0dGluZ3MoKS5hY2NlbGVyYXRlZEZpbHRlcnNFbmFi
bGVkKCkgPyBSZW5kZXJpbmdNb2RlOjpBY2NlbGVyYXRlZCA6IFJlbmRlcmluZ01vZGU6OlVuYWNj
ZWxlcmF0ZWQpOwogfQogCiB2b2lkIFJlbmRlckxheWVyOjpmaWx0ZXJOZWVkc1JlcGFpbnQoKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3NoYXBlcy9TaGFwZS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc2hhcGVzL1NoYXBlLmNwcAppbmRleCA5MTQyMDI5YTJk
NDQ2NGRmNWNiN2IzYTQ0MTkzYmUyODYzYzFlZDJhLi44NTFhODY2Nzg5YjQ4MzU0MjJjNTdhNDFk
ZGE3NWEwYmNhZDdkNjc1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc2hh
cGVzL1NoYXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc2hhcGVzL1NoYXBl
LmNwcApAQCAtMTgxLDcgKzE4MSw3IEBAIHN0ZDo6dW5pcXVlX3B0cjxTaGFwZT4gU2hhcGU6OmNy
ZWF0ZVJhc3RlclNoYXBlKEltYWdlKiBpbWFnZSwgZmxvYXQgdGhyZXNob2xkLCBjCiAgICAgSW50
UmVjdCBtYXJnaW5SZWN0ID0gc25hcHBlZEludFJlY3QobWFyZ2luUik7CiAgICAgYXV0byBpbnRl
cnZhbHMgPSBtYWtlVW5pcXVlPFJhc3RlclNoYXBlSW50ZXJ2YWxzPihtYXJnaW5SZWN0LmhlaWdo
dCgpLCAtbWFyZ2luUmVjdC55KCkpOwogICAgIC8vIEZJWE1FICgxNDk0MjApOiBUaGlzIGJ1ZmZl
ciBzaG91bGQgbm90IGJlIHVuY29uZGl0aW9uYWxseSB1bmFjY2VsZXJhdGVkLgotICAgIHN0ZDo6
dW5pcXVlX3B0cjxJbWFnZUJ1ZmZlcj4gaW1hZ2VCdWZmZXIgPSBJbWFnZUJ1ZmZlcjo6Y3JlYXRl
KGltYWdlUmVjdC5zaXplKCksIFVuYWNjZWxlcmF0ZWQpOworICAgIHN0ZDo6dW5pcXVlX3B0cjxJ
bWFnZUJ1ZmZlcj4gaW1hZ2VCdWZmZXIgPSBJbWFnZUJ1ZmZlcjo6Y3JlYXRlKGltYWdlUmVjdC5z
aXplKCksIFJlbmRlcmluZ01vZGU6OlVuYWNjZWxlcmF0ZWQpOwogCiAgICAgaWYgKGltYWdlQnVm
ZmVyKSB7CiAgICAgICAgIEdyYXBoaWNzQ29udGV4dCYgZ3JhcGhpY3NDb250ZXh0ID0gaW1hZ2VC
dWZmZXItPmNvbnRleHQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9z
dmcvUmVuZGVyU1ZHUmVzb3VyY2VDbGlwcGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9zdmcvUmVuZGVyU1ZHUmVzb3VyY2VDbGlwcGVyLmNwcAppbmRleCAwOGU0OTI4MmFkOTNiY2Fj
ZDI5Nzc1Yjg0NmYwNTlkNWEyY2E3MTNlLi4xZDc3YjYzYzZmZTI4MzEyYWUxMWVkODI1YjUyM2Fh
Y2U3MTdlYzVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRl
clNWR1Jlc291cmNlQ2xpcHBlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2
Zy9SZW5kZXJTVkdSZXNvdXJjZUNsaXBwZXIuY3BwCkBAIC0xNDIsNyArMTQyLDcgQEAgYm9vbCBS
ZW5kZXJTVkdSZXNvdXJjZUNsaXBwZXI6OmFwcGx5Q2xpcHBpbmdUb0NvbnRleHQoUmVuZGVyRWxl
bWVudCYgcmVuZGVyZXIsIGMKIAogICAgIGlmIChzaG91bGRDcmVhdGVDbGlwcGVyTWFza0ltYWdl
ICYmICFyZXBhaW50UmVjdC5pc0VtcHR5KCkpIHsKICAgICAgICAgLy8gRklYTUUgKDE0OTQ2OSk6
IFRoaXMgaW1hZ2UgYnVmZmVyIHNob3VsZCBub3QgYmUgdW5jb25kaXRpb25hbGx5IHVuYWNjZWxl
cmF0ZWQuIE1ha2luZyBpdCBtYXRjaCB0aGUgY29udGV4dCBicmVha3MgbmVzdGVkIGNsaXBwaW5n
LCB0aG91Z2guCi0gICAgICAgIGNsaXBwZXJNYXNrSW1hZ2UgPSBTVkdSZW5kZXJpbmdDb250ZXh0
OjpjcmVhdGVJbWFnZUJ1ZmZlcihyZXBhaW50UmVjdCwgYWJzb2x1dGVUcmFuc2Zvcm0sIENvbG9y
U3BhY2U6OlNSR0IsIFVuYWNjZWxlcmF0ZWQsICZjb250ZXh0KTsKKyAgICAgICAgY2xpcHBlck1h
c2tJbWFnZSA9IFNWR1JlbmRlcmluZ0NvbnRleHQ6OmNyZWF0ZUltYWdlQnVmZmVyKHJlcGFpbnRS
ZWN0LCBhYnNvbHV0ZVRyYW5zZm9ybSwgQ29sb3JTcGFjZTo6U1JHQiwgUmVuZGVyaW5nTW9kZTo6
VW5hY2NlbGVyYXRlZCwgJmNvbnRleHQpOwogICAgICAgICBpZiAoIWNsaXBwZXJNYXNrSW1hZ2Up
CiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUmVzb3VyY2VGaWx0ZXIuY3BwIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdSZXNvdXJjZUZpbHRlci5jcHAKaW5kZXggNzViNTli
NjNjM2U0OTYwYmQ0ZTNiZGJkODc0OTJhOTMyZjQzMTYxYi4uZGRkYmE0MzJkMzc5MzdlYjA0M2E2
Y2MxN2JmOTMyZTZiNzg5NTQyOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L3N2Zy9SZW5kZXJTVkdSZXNvdXJjZUZpbHRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL3N2Zy9SZW5kZXJTVkdSZXNvdXJjZUZpbHRlci5jcHAKQEAgLTE5MSw3ICsxOTEsNyBA
QCBib29sIFJlbmRlclNWR1Jlc291cmNlRmlsdGVyOjphcHBseVJlc291cmNlKFJlbmRlckVsZW1l
bnQmIHJlbmRlcmVyLCBjb25zdCBSZW5kZQogICAgIGVmZmVjdGl2ZVRyYW5zZm9ybS5zY2FsZShz
Y2FsZS53aWR0aCgpLCBzY2FsZS5oZWlnaHQoKSk7CiAgICAgZWZmZWN0aXZlVHJhbnNmb3JtLm11
bHRpcGx5KGZpbHRlckRhdGEtPnNoZWFyRnJlZUFic29sdXRlVHJhbnNmb3JtKTsKIAotICAgIFJl
bmRlcmluZ01vZGUgcmVuZGVyaW5nTW9kZSA9IHJlbmRlcmVyLnNldHRpbmdzKCkuYWNjZWxlcmF0
ZWRGaWx0ZXJzRW5hYmxlZCgpID8gQWNjZWxlcmF0ZWQgOiBVbmFjY2VsZXJhdGVkOworICAgIFJl
bmRlcmluZ01vZGUgcmVuZGVyaW5nTW9kZSA9IHJlbmRlcmVyLnNldHRpbmdzKCkuYWNjZWxlcmF0
ZWRGaWx0ZXJzRW5hYmxlZCgpID8gUmVuZGVyaW5nTW9kZTo6QWNjZWxlcmF0ZWQgOiBSZW5kZXJp
bmdNb2RlOjpVbmFjY2VsZXJhdGVkOwogICAgIGF1dG8gc291cmNlR3JhcGhpYyA9IFNWR1JlbmRl
cmluZ0NvbnRleHQ6OmNyZWF0ZUltYWdlQnVmZmVyKGZpbHRlckRhdGEtPmRyYXdpbmdSZWdpb24s
IGVmZmVjdGl2ZVRyYW5zZm9ybSwgQ29sb3JTcGFjZTo6TGluZWFyUkdCLCByZW5kZXJpbmdNb2Rl
LCBjb250ZXh0KTsKICAgICBpZiAoIXNvdXJjZUdyYXBoaWMpIHsKICAgICAgICAgQVNTRVJUKCFt
X3JlbmRlcmVyRmlsdGVyRGF0YU1hcC5jb250YWlucygmcmVuZGVyZXIpKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUmVzb3VyY2VNYXNrZXIuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdSZXNvdXJjZU1hc2tlci5j
cHAKaW5kZXggMTc4N2UxOGMyZGNlZjViZGY5OTI0NzRjZmMwMjJiNTE2NmFkNTg0OC4uMTIwYzU3
YjU2OTc4NzIyMDQ2NWJjNmFlYzBiNTgwNGM0NTVjZDgyOSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdSZXNvdXJjZU1hc2tlci5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdSZXNvdXJjZU1hc2tlci5jcHAKQEAg
LTcxLDcgKzcxLDcgQEAgYm9vbCBSZW5kZXJTVkdSZXNvdXJjZU1hc2tlcjo6YXBwbHlSZXNvdXJj
ZShSZW5kZXJFbGVtZW50JiByZW5kZXJlciwgY29uc3QgUmVuZGUKICAgICAgICAgY29uc3QgU1ZH
UmVuZGVyU3R5bGUmIHN2Z1N0eWxlID0gc3R5bGUoKS5zdmdTdHlsZSgpOwogICAgICAgICBDb2xv
clNwYWNlIGNvbG9yU3BhY2UgPSBzdmdTdHlsZS5jb2xvckludGVycG9sYXRpb24oKSA9PSBDb2xv
ckludGVycG9sYXRpb246OkxpbmVhclJHQiA/IENvbG9yU3BhY2U6OkxpbmVhclJHQiA6IENvbG9y
U3BhY2U6OlNSR0I7CiAgICAgICAgIC8vIEZJWE1FICgxNDk0NzApOiBUaGlzIGltYWdlIGJ1ZmZl
ciBzaG91bGQgbm90IGJlIHVuY29uZGl0aW9uYWxseSB1bmFjY2VsZXJhdGVkLiBNYWtpbmcgaXQg
bWF0Y2ggdGhlIGNvbnRleHQgYnJlYWtzIGFscGhhIG1hc2tpbmcsIHRob3VnaC4KLSAgICAgICAg
bWFza2VyRGF0YS0+bWFza0ltYWdlID0gU1ZHUmVuZGVyaW5nQ29udGV4dDo6Y3JlYXRlSW1hZ2VC
dWZmZXIocmVwYWludFJlY3QsIGFic29sdXRlVHJhbnNmb3JtLCBjb2xvclNwYWNlLCBVbmFjY2Vs
ZXJhdGVkLCBjb250ZXh0KTsKKyAgICAgICAgbWFza2VyRGF0YS0+bWFza0ltYWdlID0gU1ZHUmVu
ZGVyaW5nQ29udGV4dDo6Y3JlYXRlSW1hZ2VCdWZmZXIocmVwYWludFJlY3QsIGFic29sdXRlVHJh
bnNmb3JtLCBjb2xvclNwYWNlLCBSZW5kZXJpbmdNb2RlOjpVbmFjY2VsZXJhdGVkLCBjb250ZXh0
KTsKICAgICAgICAgaWYgKCFtYXNrZXJEYXRhLT5tYXNrSW1hZ2UpCiAgICAgICAgICAgICByZXR1
cm4gZmFsc2U7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9ncmFwaGljcy9TVkdJ
bWFnZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvZ3JhcGhpY3MvU1ZHSW1hZ2UuY3BwCmluZGV4
IGI4MjE0MTFhZGU3NzUwODU2MTY4ODU2ZWQyMmI2MmVhNmI1Y2QzZDkuLjk3ODY3YWFkM2MyN2I1
YjUzOGQzYTc5ZmI0OTVkZGQ0ZjBmNDNkOTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2
Zy9ncmFwaGljcy9TVkdJbWFnZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL2dyYXBoaWNz
L1NWR0ltYWdlLmNwcApAQCAtMjE4LDcgKzIxOCw3IEBAIE5hdGl2ZUltYWdlUHRyIFNWR0ltYWdl
OjpuYXRpdmVJbWFnZUZvckN1cnJlbnRGcmFtZShjb25zdCBHcmFwaGljc0NvbnRleHQqKQogICAg
ICAgICByZXR1cm4gbnVsbHB0cjsKIAogICAgIC8vIENhaXJvIGRvZXMgbm90IHVzZSB0aGUgYWNj
ZWxlcmF0ZWQgZHJhd2luZyBmbGFnLCBzbyBpdCdzIE9LIHRvIG1ha2UgYW4gdW5jb25kaXRpb25h
bGx5IHVuYWNjZWxlcmF0ZWQgYnVmZmVyLgotICAgIHN0ZDo6dW5pcXVlX3B0cjxJbWFnZUJ1ZmZl
cj4gYnVmZmVyID0gSW1hZ2VCdWZmZXI6OmNyZWF0ZShzaXplKCksIFVuYWNjZWxlcmF0ZWQpOwor
ICAgIHN0ZDo6dW5pcXVlX3B0cjxJbWFnZUJ1ZmZlcj4gYnVmZmVyID0gSW1hZ2VCdWZmZXI6OmNy
ZWF0ZShzaXplKCksIFJlbmRlcmluZ01vZGU6OlVuYWNjZWxlcmF0ZWQpOwogICAgIGlmICghYnVm
ZmVyKSAvLyBmYWlsZWQgdG8gYWxsb2NhdGUgaW1hZ2UKICAgICAgICAgcmV0dXJuIG51bGxwdHI7
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dl
YkNvbnRleHRNZW51Q2xpZW50Lm1tIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1
cHBvcnQvV2ViQ29udGV4dE1lbnVDbGllbnQubW0KaW5kZXggZWYwMzUwMzQyYmI4MjI0NmNkMTlm
MzU0ZDliY2MwMjkxZjI5MDQzZC4uMjQwN2YxMDY5YjU3ZmJmNjU5NDg4NzU0MTI4Y2U4ZmFiMWVj
YmJmOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQv
V2ViQ29udGV4dE1lbnVDbGllbnQubW0KKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2Vi
Q29yZVN1cHBvcnQvV2ViQ29udGV4dE1lbnVDbGllbnQubW0KQEAgLTIwMiw3ICsyMDIsNyBAQCBS
ZXRhaW5QdHI8TlNJbWFnZT4gV2ViQ29udGV4dE1lbnVDbGllbnQ6OmltYWdlRm9yQ3VycmVudFNo
YXJpbmdTZXJ2aWNlUGlja2VySXRlbQogICAgICAgICByZXR1cm4gbmlsOwogCiAgICAgLy8gVGhp
cyBpcyBlZmZlY3RpdmVseSBhIHNuYXBzaG90LCBhbmQgd2lsbCBiZSBwYWludGVkIGluIGFuIHVu
YWNjZWxlcmF0ZWQgZmFzaGlvbiBpbiBsaW5lIHdpdGggRnJhbWVTbmFwc2hvdHRpbmcuCi0gICAg
c3RkOjp1bmlxdWVfcHRyPEltYWdlQnVmZmVyPiBidWZmZXIgPSBJbWFnZUJ1ZmZlcjo6Y3JlYXRl
KHJlY3Quc2l6ZSgpLCBVbmFjY2VsZXJhdGVkKTsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8SW1hZ2VC
dWZmZXI+IGJ1ZmZlciA9IEltYWdlQnVmZmVyOjpjcmVhdGUocmVjdC5zaXplKCksIFJlbmRlcmlu
Z01vZGU6OlVuYWNjZWxlcmF0ZWQpOwogICAgIGlmICghYnVmZmVyKQogICAgICAgICByZXR1cm4g
bmlsOwogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>388278</attachid>
            <date>2020-01-20 21:41:12 -0800</date>
            <delta_ts>2020-01-20 22:05:50 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-206516-20200120214111.patch</filename>
            <type>text/plain</type>
            <size>46627</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU0ODQxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDE0ZjAwY2EzZGFkNjI1
MDkwYjYzMDVkNGE3ZGFjMzhjMWNmMjllNS4uMmMzYWEzMmJjODI5OTUyNGM1MjE3OTkyMDcwYzlm
Yjk4YjRmMGVlNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDgyIEBACisyMDIwLTAxLTIwICBTYWlk
IEFib3UtSGFsbGF3YSAgPHNhYm91aGFsbGF3YUBhcHBsZS5jb20+CisKKyAgICAgICAgTWFrZSBS
ZW5kZXJpbmdNb2RlIGFuZCBBbHBoYVByZW11bHRpcGxpY2F0aW9uIGVudW0gY2xhc3NlcyBhbmQg
bW92ZSB0aGVtIHRvIHNlcGFyYXRlIGhlYWRlcnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNjUxNgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIFJlbmRlcmluZ01vZGUgYW5kIEFscGhhUHJlbXVsdGlwbGlj
YXRpb24gbmVlZCB0byBiZSBlbmNvZGVkIGFuZCBkZWNvZGVkCisgICAgICAgIHdoZW4gdGhleSBh
cmUgc2VudCBmcm9tIHRoZSBXZWJQcm9jZXNzIHRvIHRoZSBHUFVQcm9jZXNzLgorCisgICAgICAg
ICogTW9kdWxlcy9hc3luYy1jbGlwYm9hcmQvQ2xpcGJvYXJkSXRlbUJpbmRpbmdzRGF0YVNvdXJj
ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDbGlwYm9hcmRJdGVtQmluZGluZ3NEYXRhU291cmNl
OjpDbGlwYm9hcmRJdGVtVHlwZUxvYWRlcjo6c2FuaXRpemVEYXRhSWZOZWVkZWQpOgorICAgICAg
ICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBiaW5kaW5n
cy9qcy9TZXJpYWxpemVkU2NyaXB0VmFsdWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2xvbmVE
ZXNlcmlhbGl6ZXI6OnJlYWRJbWFnZUJpdG1hcCk6CisgICAgICAgICogY3NzL0NTU0ZpbHRlcklt
YWdlVmFsdWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTRmlsdGVySW1hZ2VWYWx1ZTo6aW1h
Z2UpOgorICAgICAgICAqIGh0bWwvQ3VzdG9tUGFpbnRDYW52YXMuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6Q3VzdG9tUGFpbnRDYW52YXM6OmNvcGllZEltYWdlIGNvbnN0KToKKyAgICAgICAgKiBo
dG1sL0hUTUxDYW52YXNFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxDYW52YXNF
bGVtZW50OjpjcmVhdGVJbWFnZUJ1ZmZlciBjb25zdCk6CisgICAgICAgICogaHRtbC9JbWFnZUJp
dG1hcC5jcHA6CisgICAgICAgICogaHRtbC9PZmZzY3JlZW5DYW52YXMuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6T2Zmc2NyZWVuQ2FudmFzOjp0cmFuc2ZlclRvSW1hZ2VCaXRtYXApOgorICAgICAg
ICAoV2ViQ29yZTo6T2Zmc2NyZWVuQ2FudmFzOjpjcmVhdGVJbWFnZUJ1ZmZlciBjb25zdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpPZmZzY3JlZW5DYW52YXM6OnRha2VJbWFnZUJ1ZmZlciBjb25zdCk6
CisgICAgICAgICogaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEQmFzZS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpDYW52YXNSZW5kZXJpbmdDb250ZXh0MkRCYXNlOjpjcmVhdGVD
b21wb3NpdGluZ0J1ZmZlcik6CisgICAgICAgIChXZWJDb3JlOjpDYW52YXNSZW5kZXJpbmdDb250
ZXh0MkRCYXNlOjpjcmVhdGVQYXR0ZXJuKToKKyAgICAgICAgKiBodG1sL2NhbnZhcy9JbWFnZUJp
dG1hcFJlbmRlcmluZ0NvbnRleHQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VCaXRtYXBS
ZW5kZXJpbmdDb250ZXh0Ojppc0FjY2VsZXJhdGVkIGNvbnN0KToKKyAgICAgICAgKiBodG1sL2Nh
bnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Oldl
YkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OkxSVUltYWdlQnVmZmVyQ2FjaGU6OmltYWdlQnVmZmVy
KToKKyAgICAgICAgKiBodG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xFbGVtZW50cy5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpNZWRpYUNvbnRyb2xUZXh0VHJhY2tDb250YWluZXJFbGVtZW50OjpjcmVh
dGVUZXh0VHJhY2tSZXByZXNlbnRhdGlvbkltYWdlKToKKyAgICAgICAgKiBwYWdlL0ZyYW1lU25h
cHNob3R0aW5nLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnNuYXBzaG90RnJhbWVSZWN0V2l0aENs
aXApOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0FscGhhUHJlbXVsdGlwbGljYXRpb24u
aDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvQml0bWFwSW1hZ2UuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6Qml0bWFwSW1hZ2U6Om5hdGl2ZUltYWdlRm9yQ3VycmVudEZyYW1l
UmVzcGVjdGluZ09yaWVudGF0aW9uKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9HcmFw
aGljc0NvbnRleHQuaDoKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDo6cmVuZGVy
aW5nTW9kZSBjb25zdCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NUeXBl
cy5jcHA6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NUeXBlcy5oOgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0ltYWdlQnVmZmVyLmg6CisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvUmVuZGVyaW5nTW9kZS5oOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9TaGFkb3dCbHVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcmF0Y2hCdWZmZXI6
OmdldFNjcmF0Y2hCdWZmZXIpOgorICAgICAgICAoV2ViQ29yZTo6U2hhZG93Qmx1cjo6ZHJhd1Jl
Y3RTaGFkb3dXaXRob3V0VGlsaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OlNoYWRvd0JsdXI6OmRy
YXdJbnNldFNoYWRvd1dpdGhvdXRUaWxpbmcpOgorICAgICAgICAoV2ViQ29yZTo6U2hhZG93Qmx1
cjo6ZHJhd1JlY3RTaGFkb3dXaXRoVGlsaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OlNoYWRvd0Js
dXI6OmRyYXdJbnNldFNoYWRvd1dpdGhUaWxpbmcpOgorICAgICAgICAoV2ViQ29yZTo6U2hhZG93
Qmx1cjo6ZHJhd1NoYWRvd0xheWVyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jYWly
by9JbWFnZUJ1ZmZlckNhaXJvLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkltYWdlQnVmZmVyRGF0
YTo6fkltYWdlQnVmZmVyRGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZUJ1ZmZlcjo6SW1h
Z2VCdWZmZXIpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NnL0ltYWdlQnVmZmVyQ0cu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VCdWZmZXI6OkltYWdlQnVmZmVyKToKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jZy9JbWFnZUJ1ZmZlckRhdGFDRy5oOgorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRmlsdGVyLmg6CisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvdGV4bWFwL0JpdG1hcFRleHR1cmUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Qml0
bWFwVGV4dHVyZTo6dXBkYXRlQ29udGVudHMpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L3dpbi9JbWFnZUJ1ZmZlckRpcmVjdDJELmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkltYWdlQnVm
ZmVyOjpJbWFnZUJ1ZmZlcik6CisgICAgICAgICogcGxhdGZvcm0vbW9jay9Nb2NrUmVhbHRpbWVW
aWRlb1NvdXJjZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNb2NrUmVhbHRpbWVWaWRlb1NvdXJj
ZTo6aW1hZ2VCdWZmZXIgY29uc3QpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMYXllci5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllcjo6Y2FsY3VsYXRlQ2xpcFJlY3RzIGNv
bnN0KToKKyAgICAgICAgKiByZW5kZXJpbmcvc2hhcGVzL1NoYXBlLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlNoYXBlOjpjcmVhdGVSYXN0ZXJTaGFwZSk6CisgICAgICAgICogcmVuZGVyaW5nL3N2
Zy9SZW5kZXJTVkdSZXNvdXJjZUNsaXBwZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVy
U1ZHUmVzb3VyY2VDbGlwcGVyOjphcHBseUNsaXBwaW5nVG9Db250ZXh0KToKKyAgICAgICAgKiBy
ZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jlc291cmNlRmlsdGVyLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlJlbmRlclNWR1Jlc291cmNlRmlsdGVyOjphcHBseVJlc291cmNlKToKKyAgICAgICAgKiBy
ZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jlc291cmNlTWFza2VyLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlJlbmRlclNWR1Jlc291cmNlTWFza2VyOjphcHBseVJlc291cmNlKToKKyAgICAgICAgKiBz
dmcvZ3JhcGhpY3MvU1ZHSW1hZ2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHSW1hZ2U6Om5h
dGl2ZUltYWdlRm9yQ3VycmVudEZyYW1lKToKKwogMjAyMC0wMS0yMCAgU2FpZCBBYm91LUhhbGxh
d2EgIDxzYWJvdWhhbGxhd2FAYXBwbGUuY29tPgogCiAgICAgICAgIEVYSUYgb3JpZW50YXRpb24g
aXMgaWdub3JlZCBmb3Igc29tZSBDU1MgaW1hZ2VzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
TGVnYWN5L21hYy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cK
aW5kZXggNmZhYjI3YzVmMGQzMTkxYjRhYmUyZmM3ZmViZDIyNzc0MTI4NjgyYS4uMjllMjYzY2Fm
ZjgyZjhiZGNkOTE5NzUwNDJiNTAwNzEwM2ViMjNhNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dExlZ2FjeS9tYWMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDIwLTAxLTIwICBTYWlkIEFib3UtSGFsbGF3YSAgPHNh
Ym91aGFsbGF3YUBhcHBsZS5jb20+CisKKyAgICAgICAgTWFrZSBSZW5kZXJpbmdNb2RlIGFuZCBB
bHBoYVByZW11bHRpcGxpY2F0aW9uIGVudW0gY2xhc3NlcyBhbmQgbW92ZSB0aGVtIHRvIHNlcGFy
YXRlIGhlYWRlcnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTIwNjUxNgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgICogV2ViQ29yZVN1cHBvcnQvV2ViQ29udGV4dE1lbnVDbGllbnQubW06CisgICAgICAgIChX
ZWJDb250ZXh0TWVudUNsaWVudDo6aW1hZ2VGb3JDdXJyZW50U2hhcmluZ1NlcnZpY2VQaWNrZXJJ
dGVtKToKKwogMjAyMC0wMS0yMCAgRGF2aWQgS2lsemVyICA8ZGRraWx6ZXJAYXBwbGUuY29tPgog
CiAgICAgICAgIEZpeCBtaXNzaW5nIGhlYWRlciBndWFyZHMgYW5kIGNsZWFuIHVwIGVtcHR5IGZp
bGVzIGluIFdlYkNvcmUsIFdlYktpdExlZ2FjeSwgV2ViS2l0LCBUb29scwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9hc3luYy1jbGlwYm9hcmQvQ2xpcGJvYXJkSXRlbUJpbmRp
bmdzRGF0YVNvdXJjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FzeW5jLWNsaXBib2Fy
ZC9DbGlwYm9hcmRJdGVtQmluZGluZ3NEYXRhU291cmNlLmNwcAppbmRleCA0NjQxZDU4MDhhNTI3
ZWM2ZTMwZDFjZmI2ZTgwYjIzMWRkNTZkNmIwLi43NDY1ZDBlNmE4NjY4NzM4ZjRlYmRjNTc0Zjky
NmM3NDg4ZTdhYTRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FzeW5jLWNs
aXBib2FyZC9DbGlwYm9hcmRJdGVtQmluZGluZ3NEYXRhU291cmNlLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2FzeW5jLWNsaXBib2FyZC9DbGlwYm9hcmRJdGVtQmluZGluZ3NEYXRh
U291cmNlLmNwcApAQCAtMjg0LDcgKzI4NCw3IEBAIHZvaWQgQ2xpcGJvYXJkSXRlbUJpbmRpbmdz
RGF0YVNvdXJjZTo6Q2xpcGJvYXJkSXRlbVR5cGVMb2FkZXI6OnNhbml0aXplRGF0YUlmTmVlCiAK
ICAgICAgICAgYXV0byBiaXRtYXBJbWFnZSA9IEJpdG1hcEltYWdlOjpjcmVhdGUoKTsKICAgICAg
ICAgYml0bWFwSW1hZ2UtPnNldERhdGEoV1RGTW92ZShidWZmZXJUb1Nhbml0aXplKSwgdHJ1ZSk7
Ci0gICAgICAgIGF1dG8gaW1hZ2VCdWZmZXIgPSBJbWFnZUJ1ZmZlcjo6Y3JlYXRlKGJpdG1hcElt
YWdlLT5zaXplKCksIFVuYWNjZWxlcmF0ZWQpOworICAgICAgICBhdXRvIGltYWdlQnVmZmVyID0g
SW1hZ2VCdWZmZXI6OmNyZWF0ZShiaXRtYXBJbWFnZS0+c2l6ZSgpLCBSZW5kZXJpbmdNb2RlOjpV
bmFjY2VsZXJhdGVkKTsKICAgICAgICAgaWYgKCFpbWFnZUJ1ZmZlcikgewogICAgICAgICAgICAg
bV9kYXRhID0geyBudWxsU3RyaW5nKCkgfTsKICAgICAgICAgICAgIHJldHVybjsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBkNWIz
Y2VhZWRlY2Q2MzA2ODNhOGQ4MGU5ODIyYjNkZjQxZDc2MjBlLi42ZWQ0YWMyM2E2ZDlhYzk0NGVj
MTg2NGJjNjQ5N2IyNzVmODVhNDgyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0yMTQxLDYgKzIxNDEsOCBAQAogCQk3MjRFRDMz
MjFBM0E4QjIzMDBGNUYxM0MgLyogSlNFWFRCbGVuZE1pbk1heC5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzI0RUQzMzAxQTNBOEIyMzAwRjVGMTNDIC8q
IEpTRVhUQmxlbmRNaW5NYXguaCAqLzsgfTsKIAkJNzI0RUU1NTAxREM4MEQ3RjAwQTkxRkZCIC8q
IEFjdGl2aXR5U3RhdGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDcyNEVFNTRFMURDN0YyNUIwMEE5MUZGQiAvKiBBY3Rpdml0eVN0YXRlLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNzI0RUU1NTExREM4
MEQ4NDAwQTkxRkZCIC8qIEFjdGl2aXR5U3RhdGVDaGFuZ2VPYnNlcnZlci5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzI0RUU1NEYxREM3RjI1QjAwQTkx
RkZCIC8qIEFjdGl2aXR5U3RhdGVDaGFuZ2VPYnNlcnZlci5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTcyOTlCQzY3MjNENkE1MzIwMENDNjg4MyAv
KiBBbHBoYVByZW11bHRpcGxpY2F0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA3Mjk5QkM2NDIzRDY4NkE2MDBDQzY4ODMgLyogQWxwaGFQcmVtdWx0
aXBsaWNhdGlvbi5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CisJCTcyOTlCQzY4MjNENkE1M0UwMENDNjg4MyAvKiBSZW5kZXJpbmdNb2RlLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3Mjk5QkM2NjIzRDY4NkM2
MDBDQzY4ODMgLyogUmVuZGVyaW5nTW9kZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CiAJCTc1NTNDRkU4MTA4RjQ3M0YwMEVBMjgxRSAvKiBUaW1lbGlu
ZVJlY29yZEZhY3RvcnkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDc1NTNDRkU2MTA4RjQ3M0YwMEVBMjgxRSAvKiBUaW1lbGluZVJlY29yZEZhY3Rvcnku
aCAqLzsgfTsKIAkJNzU3OTNFODQwRDBDRTBCMzAwN0ZDMEFDIC8qIE1lc3NhZ2VFdmVudC5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzU3OTNFODEwRDBD
RTBCMzAwN0ZDMEFDIC8qIE1lc3NhZ2VFdmVudC5oICovOyB9OwogCQk3NTc5M0VDOTBEMENFNzJE
MDA3RkMwQUMgLyogSlNNZXNzYWdlRXZlbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDc1NzkzRUM3MEQwQ0U3MkQwMDdGQzBBQyAvKiBKU01lc3NhZ2VF
dmVudC5oICovOyB9OwpAQCAtOTY0MCw2ICs5NjQyLDggQEAKIAkJNzI3QUZFRDExQTJFQTZBMDAw
MDQ0MkU4IC8qIEVYVHNSR0IuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gRVhUc1JHQi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTcyN0FGRUQyMUEy
RUE2QTAwMDA0NDJFOCAvKiBFWFRzUkdCLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IEVYVHNSR0IuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNzI3QUZFRDMxQTJF
QTZBMDAwMDQ0MkU4IC8qIEVYVHNSR0IuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IEVYVHNS
R0IuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk3Mjk5QkM2NDIzRDY4NkE2MDBD
QzY4ODMgLyogQWxwaGFQcmVtdWx0aXBsaWNhdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBBbHBoYVBy
ZW11bHRpcGxpY2F0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTcyOTlCQzY2
MjNENjg2QzYwMENDNjg4MyAvKiBSZW5kZXJpbmdNb2RlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbmRl
cmluZ01vZGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNzJDMThBM0YyMzBCMDRC
NzAwNjg0N0M3IC8qIEltYWdlUGFpbnRpbmdPcHRpb25zLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEltYWdl
UGFpbnRpbmdPcHRpb25zLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTcyRTQxNzYx
MUEyRThEMkYwMDRDNTYyQSAvKiBKU0VYVHNSR0IuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gSlNFWFRzUkdCLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJNzJFNDE3NjIxQTJFOEQyRjAwNEM1NjJBIC8qIEpTRVhUc1JHQi5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBKU0VYVHNSR0IuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKQEAgLTI1MDEyLDYgKzI1MDE2LDcgQEAKIAkJCQlGQkMyMjBERDEyMzdGQkVCMDBCQ0Y3ODgg
Lyogb3BlbmdsICovLAogCQkJCTM3MjE0OTMzMThGMEI2RDYwMDE1NkVEQyAvKiBvcGVudHlwZSAq
LywKIAkJCQk0OUU5MTFCMjBFRjg2RDI3MDA5RDBDQUYgLyogdHJhbnNmb3JtcyAqLywKKwkJCQk3
Mjk5QkM2NDIzRDY4NkE2MDBDQzY4ODMgLyogQWxwaGFQcmVtdWx0aXBsaWNhdGlvbi5oICovLAog
CQkJCTQ5MDcwN0U0MTIxOUMwNDMwMEQ5MEU1MSAvKiBBTkdMRVdlYktpdEJyaWRnZS5jcHAgKi8s
CiAJCQkJNDkwNzA3RTUxMjE5QzA0MzAwRDkwRTUxIC8qIEFOR0xFV2ViS2l0QnJpZGdlLmggKi8s
CiAJCQkJQkVGMjlFRTkxNzE1REQwOTAwQzRCNEM5IC8qIEF1ZGlvVHJhY2tQcml2YXRlLmggKi8s
CkBAIC0yNTE4OCw2ICsyNTE5Myw3IEBACiAJCQkJQkNBQjQxODAxM0UzNTZFODAwRDhBQUYzIC8q
IFJlZ2lvbi5oICovLAogCQkJCTA3M0ExNTUxMjE3N0EzOTgwMEVBMDhGMiAvKiBSZW1vdGVWaWRl
b1NhbXBsZS5jcHAgKi8sCiAJCQkJMDczQTE1NTMyMTc3QTM5QTAwRUEwOEYyIC8qIFJlbW90ZVZp
ZGVvU2FtcGxlLmggKi8sCisJCQkJNzI5OUJDNjYyM0Q2ODZDNjAwQ0M2ODgzIC8qIFJlbmRlcmlu
Z01vZGUuaCAqLywKIAkJCQlBNzNGOTVGQzEyQzk3QkZFMDAzMUFBRjkgLyogUm91bmRlZFJlY3Qu
Y3BwICovLAogCQkJCUE3M0Y5NUZEMTJDOTdCRkUwMDMxQUFGOSAvKiBSb3VuZGVkUmVjdC5oICov
LAogCQkJCTBGM0RENDREMTJGNUVBMUIwMDBEOTE5MCAvKiBTaGFkb3dCbHVyLmNwcCAqLywKQEAg
LTI5MDM5LDYgKzI5MDQ1LDcgQEAKIAkJCQlCQ0Y3RTQ5MTEzN0NEN0M3MDAxRERBRTcgLyogQWRq
dXN0Vmlld1NpemVPck5vdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODREMEM0MDYxMTE1RjFFQTAw
MThBQTM0IC8qIEFmZmluZVRyYW5zZm9ybS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODNCQjVDODgx
RDVENkY0NTAwNUE3MUY0IC8qIEFsbERlc2NlbmRhbnRzQ29sbGVjdGlvbi5oIGluIEhlYWRlcnMg
Ki8sCisJCQkJNzI5OUJDNjcyM0Q2QTUzMjAwQ0M2ODgzIC8qIEFscGhhUHJlbXVsdGlwbGljYXRp
b24uaCBpbiBIZWFkZXJzICovLAogCQkJCUNFREExMkQ3MTUyQ0ExQ0IwMEQ5RTA4RCAvKiBBbHRl
cm5hdGl2ZVRleHRDbGllbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUNFMDhDM0QyMTUyQjU5OUEw
MDIxQjhDMiAvKiBBbHRlcm5hdGl2ZVRleHRDb250cm9sbGVyLmggaW4gSGVhZGVycyAqLywKIAkJ
CQlDRTdCMkRCMzE1ODZBQkFEMDA5OEIzRkEgLyogQWx0ZXJuYXRpdmVUZXh0VUlDb250cm9sbGVy
LmggaW4gSGVhZGVycyAqLywKQEAgLTMxMzY4LDYgKzMxMzc1LDcgQEAKIAkJCQkxMTk5RkE0NjIw
OEUzNUEzMDAyMzU4Q0MgLyogTGF5b3V0Q29udGFpbmVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk2
RjI2QkI2QzIzMzQzRTZGMDAyRjJCRUEgLyogTGF5b3V0Q29udGV4dC5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJMTEzMTBDRjUyMEJBNEE0QzAwNjVBOEQwIC8qIExheW91dERlc2NlbmRhbnRJdGVyYXRv
ci5oIGluIEhlYWRlcnMgKi8sCisJCQkJRTQxODAyNTUyM0Q0NTQ5QjAwRkZCMDcxIC8qIExheW91
dEludGVncmF0aW9uQm94VHJlZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTRBQkFCREQyMzYwODhG
RTAwRkE0MzQ1IC8qIExheW91dEludGVncmF0aW9uTGluZUxheW91dC5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJMTEzMTBDRjQyMEJBNEEzRDAwNjVBOEQwIC8qIExheW91dEl0ZXJhdG9yLmggaW4gSGVh
ZGVycyAqLywKIAkJCQk5MzFENzJGNjE1RkU2OTUzMDBDNEMwN0UgLyogTGF5b3V0TWlsZXN0b25l
LmggaW4gSGVhZGVycyAqLywKQEAgLTMyMDEyLDYgKzMyMDIwLDcgQEAKIAkJCQlCQ0VBNDg3NjA5
N0Q5MzAyMDA5NEM5RTQgLyogUmVuZGVySW1hZ2UuaCBpbiBIZWFkZXJzICovLAogCQkJCTA4RjJG
MDBBMTIxM0U2MTcwMERDRUM0OCAvKiBSZW5kZXJJbWFnZVJlc291cmNlLmggaW4gSGVhZGVycyAq
LywKIAkJCQkwODY0MUQ0ODEyMTQyRjdEMDA4REU5RjYgLyogUmVuZGVySW1hZ2VSZXNvdXJjZVN0
eWxlSW1hZ2UuaCBpbiBIZWFkZXJzICovLAorCQkJCTcyOTlCQzY4MjNENkE1M0UwMENDNjg4MyAv
KiBSZW5kZXJpbmdNb2RlLmggaW4gSGVhZGVycyAqLywKIAkJCQk1NTZDN0M0QjIyMTIzOTk3MDA5
QjA2Q0EgLyogUmVuZGVyaW5nVXBkYXRlU2NoZWR1bGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlC
Q0VBNDg3ODA5N0Q5MzAyMDA5NEM5RTQgLyogUmVuZGVySW5saW5lLmggaW4gSGVhZGVycyAqLywK
IAkJCQlCNTk1RkY0NzE4MjRDRUUzMDBGRjUxQ0QgLyogUmVuZGVySXRlcmF0b3IuaCBpbiBIZWFk
ZXJzICovLApAQCAtMzIwNjIsNyArMzIwNzEsNiBAQAogCQkJCTQ1OEZFNDBBMTU4OURGMEIwMDU2
MDlFNiAvKiBSZW5kZXJTZWFyY2hGaWVsZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEYxMUE1NEYw
RjM5MjMzMTAwQzM3ODg0IC8qIFJlbmRlclNlbGVjdGlvbkluZm8uaCBpbiBIZWFkZXJzICovLAog
CQkJCUFCMjQ3QTZEMEFGRDYzODMwMDNGQTVGRCAvKiBSZW5kZXJTbGlkZXIuaCBpbiBIZWFkZXJz
ICovLAotCQkJCUU0MTgwMjU1MjNENDU0OUIwMEZGQjA3MSAvKiBMYXlvdXRJbnRlZ3JhdGlvbkJv
eFRyZWUuaCBpbiBIZWFkZXJzICovLAogCQkJCTMxOTU1QTg4MTYwRDE5OTIwMDg1ODAyNSAvKiBS
ZW5kZXJTbmFwc2hvdHRlZFBsdWdJbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkM4QzhGQUUwRERD
RDMxQjAwQjU5MkY0IC8qIFJlbmRlclN0eWxlLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzVFQjY2
ODBFODFDQjcxMDBCMjU5NjUgLyogUmVuZGVyU3R5bGVDb25zdGFudHMuaCBpbiBIZWFkZXJzICov
LApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2VyaWFsaXplZFNjcmlw
dFZhbHVlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NlcmlhbGl6ZWRTY3JpcHRW
YWx1ZS5jcHAKaW5kZXggNjRkZmYyZDk4NGVmNzJkZDllYmE1MTAyNDA2MTBmYzE4ZTIxZDk0Ny4u
ZWRhMTcxN2RkZmZkN2ViMGJjM2Y4NzAyYjgyOTNlODk5YmQ1Y2U3YiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2VyaWFsaXplZFNjcmlwdFZhbHVlLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TZXJpYWxpemVkU2NyaXB0VmFsdWUuY3BwCkBAIC0y
Nzg1LDcgKzI3ODUsNyBAQCBwcml2YXRlOgogICAgICAgICAgICAgcmV0dXJuIEpTVmFsdWUoKTsK
ICAgICAgICAgfQogCi0gICAgICAgIGF1dG8gYnVmZmVyID0gSW1hZ2VCdWZmZXI6OmNyZWF0ZShG
bG9hdFNpemUobG9naWNhbFdpZHRoLCBsb2dpY2FsSGVpZ2h0KSwgVW5hY2NlbGVyYXRlZCwgcmVz
b2x1dGlvblNjYWxlKTsKKyAgICAgICAgYXV0byBidWZmZXIgPSBJbWFnZUJ1ZmZlcjo6Y3JlYXRl
KEZsb2F0U2l6ZShsb2dpY2FsV2lkdGgsIGxvZ2ljYWxIZWlnaHQpLCBSZW5kZXJpbmdNb2RlOjpV
bmFjY2VsZXJhdGVkLCByZXNvbHV0aW9uU2NhbGUpOwogICAgICAgICBpZiAoIWJ1ZmZlcikgewog
ICAgICAgICAgICAgZmFpbCgpOwogICAgICAgICAgICAgcmV0dXJuIEpTVmFsdWUoKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NGaWx0ZXJJbWFnZVZhbHVlLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9DU1NGaWx0ZXJJbWFnZVZhbHVlLmNwcAppbmRleCBlNWI4YWI0NjljZWM0
YmMwNThjNDM3ZDE5OTUwNDBiNTAyMWM3NDMxLi4yZmE1M2FhMzhjMWZjYzExNzM1NmFmOWYxNTVk
MDE1ZDQ0MzdmMGNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRmlsdGVySW1h
Z2VWYWx1ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ZpbHRlckltYWdlVmFsdWUu
Y3BwCkBAIC0xMTYsNyArMTE2LDcgQEAgUmVmUHRyPEltYWdlPiBDU1NGaWx0ZXJJbWFnZVZhbHVl
OjppbWFnZShSZW5kZXJFbGVtZW50JiByZW5kZXJlciwgY29uc3QgRmxvYXRTaXoKIAogICAgIC8v
IFRyYW5zZm9ybSBJbWFnZSBpbnRvIEltYWdlQnVmZmVyLgogICAgIC8vIEZJWE1FICgxNDk0MjQp
OiBUaGlzIGJ1ZmZlciBzaG91bGQgbm90IGJlIHVuY29uZGl0aW9uYWxseSB1bmFjY2VsZXJhdGVk
LgotICAgIGF1dG8gdGV4dHVyZSA9IEltYWdlQnVmZmVyOjpjcmVhdGUoc2l6ZSwgVW5hY2NlbGVy
YXRlZCk7CisgICAgYXV0byB0ZXh0dXJlID0gSW1hZ2VCdWZmZXI6OmNyZWF0ZShzaXplLCBSZW5k
ZXJpbmdNb2RlOjpVbmFjY2VsZXJhdGVkKTsKICAgICBpZiAoIXRleHR1cmUpCiAgICAgICAgIHJl
dHVybiAmSW1hZ2U6Om51bGxJbWFnZSgpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0N1c3RvbVBhaW50Q2FudmFzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvQ3VzdG9tUGFp
bnRDYW52YXMuY3BwCmluZGV4IGY0Yjc3MDdlOTdhOGZlNTFmOGUyNTc3NThhZGU0YjZkZGZmNTAy
ZTUuLjE0Nzc2MmY1NTI0MmU2MzE1NDlkZGIwYTA2NzRhNjIxZmU4Y2YzZDUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvQ3VzdG9tUGFpbnRDYW52YXMuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvQ3VzdG9tUGFpbnRDYW52YXMuY3BwCkBAIC05Myw3ICs5Myw3IEBAIEltYWdl
KiBDdXN0b21QYWludENhbnZhczo6Y29waWVkSW1hZ2UoKSBjb25zdAogICAgIGlmICghd2lkdGgo
KSB8fCAhaGVpZ2h0KCkpCiAgICAgICAgIHJldHVybiBudWxscHRyOwogCi0gICAgbV9jb3BpZWRC
dWZmZXIgPSBJbWFnZUJ1ZmZlcjo6Y3JlYXRlKHNpemUoKSwgVW5hY2NlbGVyYXRlZCwgMSwgQ29s
b3JTcGFjZTo6U1JHQiwgbnVsbHB0cik7CisgICAgbV9jb3BpZWRCdWZmZXIgPSBJbWFnZUJ1ZmZl
cjo6Y3JlYXRlKHNpemUoKSwgUmVuZGVyaW5nTW9kZTo6VW5hY2NlbGVyYXRlZCwgMSwgQ29sb3JT
cGFjZTo6U1JHQiwgbnVsbHB0cik7CiAgICAgaWYgKCFtX2NvcGllZEJ1ZmZlcikKICAgICAgICAg
cmV0dXJuIG51bGxwdHI7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENh
bnZhc0VsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5j
cHAKaW5kZXggMjNkOWIzNGU4NDhmNmQwMWQzNGE5ZGFmZmJhMzA1MGZjN2E3MTMxNi4uYjg0NDQ3
MWQ3YThlYTg1Yzg4MzIyYjEyOWM0MGExODA0OTYxYjc1MCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MQ2FudmFzRWxlbWVudC5jcHAKQEAgLTg4NSw3ICs4ODUsNyBAQCB2b2lkIEhUTUxDYW52
YXNFbGVtZW50OjpjcmVhdGVJbWFnZUJ1ZmZlcigpIGNvbnN0CiAgICAgaWYgKCF3aWR0aCgpIHx8
ICFoZWlnaHQoKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgUmVuZGVyaW5nTW9kZSByZW5kZXJp
bmdNb2RlID0gc2hvdWxkQWNjZWxlcmF0ZShzaXplKCkpID8gQWNjZWxlcmF0ZWQgOiBVbmFjY2Vs
ZXJhdGVkOworICAgIFJlbmRlcmluZ01vZGUgcmVuZGVyaW5nTW9kZSA9IHNob3VsZEFjY2VsZXJh
dGUoc2l6ZSgpKSA/IFJlbmRlcmluZ01vZGU6OkFjY2VsZXJhdGVkIDogUmVuZGVyaW5nTW9kZTo6
VW5hY2NlbGVyYXRlZDsKIAogICAgIGF1dG8gaG9zdFdpbmRvdyA9IChkb2N1bWVudCgpLnZpZXco
KSAmJiBkb2N1bWVudCgpLnZpZXcoKS0+cm9vdCgpKSA/IGRvY3VtZW50KCkudmlldygpLT5yb290
KCktPmhvc3RXaW5kb3coKSA6IG51bGxwdHI7CiAgICAgc2V0SW1hZ2VCdWZmZXIoSW1hZ2VCdWZm
ZXI6OmNyZWF0ZShzaXplKCksIHJlbmRlcmluZ01vZGUsIDEsIENvbG9yU3BhY2U6OlNSR0IsIGhv
c3RXaW5kb3cpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW1hZ2VCaXRtYXAu
Y3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9JbWFnZUJpdG1hcC5jcHAKaW5kZXggNWY0OWY3Mzlh
MWY1YzNiZTBlZTE3MWYzNGY5NjNlMDI2NmJjNDQ5Mi4uMmI4MTk4OWU4ZmQ2MmVmZTM0NTM4N2E5
MDJmZTY5MmIzMDk5NTRmZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9JbWFnZUJp
dG1hcC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9JbWFnZUJpdG1hcC5jcHAKQEAgLTYx
LDkgKzYxLDkgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogV1RGX01BS0VfSVNPX0FMTE9DQVRFRF9J
TVBMKEltYWdlQml0bWFwKTsKIAogI2lmIFVTRShJT1NVUkZBQ0VfQ0FOVkFTX0JBQ0tJTkdfU1RP
UkUpIHx8IEVOQUJMRShBQ0NFTEVSQVRFRF8yRF9DQU5WQVMpCi1zdGF0aWMgUmVuZGVyaW5nTW9k
ZSBidWZmZXJSZW5kZXJpbmdNb2RlID0gQWNjZWxlcmF0ZWQ7CitzdGF0aWMgUmVuZGVyaW5nTW9k
ZSBidWZmZXJSZW5kZXJpbmdNb2RlID0gUmVuZGVyaW5nTW9kZTo6QWNjZWxlcmF0ZWQ7CiAjZWxz
ZQotc3RhdGljIFJlbmRlcmluZ01vZGUgYnVmZmVyUmVuZGVyaW5nTW9kZSA9IFVuYWNjZWxlcmF0
ZWQ7CitzdGF0aWMgUmVuZGVyaW5nTW9kZSBidWZmZXJSZW5kZXJpbmdNb2RlID0gUmVuZGVyaW5n
TW9kZTo6VW5hY2NlbGVyYXRlZDsKICNlbmRpZgogCiBSZWY8SW1hZ2VCaXRtYXA+IEltYWdlQml0
bWFwOjpjcmVhdGUoSW50U2l6ZSBzaXplKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRt
bC9PZmZzY3JlZW5DYW52YXMuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9PZmZzY3JlZW5DYW52
YXMuY3BwCmluZGV4IGY3NDQ4NTEyMDAxNTc1YjRhZjRiYmEyNGVhYTU3YWJlNmEwNjQzYzkuLjc1
NWYxMWVmODllMTE4MWJlMDZkNWVhMmYwMDc4Njk2ZTM5YmU0ZDEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvT2Zmc2NyZWVuQ2FudmFzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL09mZnNjcmVlbkNhbnZhcy5jcHAKQEAgLTEyNiw3ICsxMjYsNyBAQCBFeGNlcHRpb25PcjxS
ZWZQdHI8SW1hZ2VCaXRtYXA+PiBPZmZzY3JlZW5DYW52YXM6OnRyYW5zZmVyVG9JbWFnZUJpdG1h
cCgpCiAgICAgICAgICAgICByZXR1cm4geyBSZWZQdHI8SW1hZ2VCaXRtYXA+IHsgbnVsbHB0ciB9
IH07CiAKICAgICAgICAgaWYgKCFtX2hhc0NyZWF0ZWRJbWFnZUJ1ZmZlcikKLSAgICAgICAgICAg
IHJldHVybiB7IEltYWdlQml0bWFwOjpjcmVhdGUoeyBJbWFnZUJ1ZmZlcjo6Y3JlYXRlKHNpemUo
KSwgVW5hY2NlbGVyYXRlZCksIHRydWUgfSkgfTsKKyAgICAgICAgICAgIHJldHVybiB7IEltYWdl
Qml0bWFwOjpjcmVhdGUoeyBJbWFnZUJ1ZmZlcjo6Y3JlYXRlKHNpemUoKSwgUmVuZGVyaW5nTW9k
ZTo6VW5hY2NlbGVyYXRlZCksIHRydWUgfSkgfTsKIAogICAgICAgICBhdXRvIGJ1ZmZlciA9IHRh
a2VJbWFnZUJ1ZmZlcigpOwogICAgICAgICBpZiAoIWJ1ZmZlcikKQEAgLTI0Myw3ICsyNDMsNyBA
QCB2b2lkIE9mZnNjcmVlbkNhbnZhczo6Y3JlYXRlSW1hZ2VCdWZmZXIoKSBjb25zdAogICAgIGlm
ICghd2lkdGgoKSB8fCAhaGVpZ2h0KCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIHNldEltYWdl
QnVmZmVyKEltYWdlQnVmZmVyOjpjcmVhdGUoc2l6ZSgpLCBVbmFjY2VsZXJhdGVkKSk7CisgICAg
c2V0SW1hZ2VCdWZmZXIoSW1hZ2VCdWZmZXI6OmNyZWF0ZShzaXplKCksIFJlbmRlcmluZ01vZGU6
OlVuYWNjZWxlcmF0ZWQpKTsKIH0KIAogc3RkOjp1bmlxdWVfcHRyPEltYWdlQnVmZmVyPiBPZmZz
Y3JlZW5DYW52YXM6OnRha2VJbWFnZUJ1ZmZlcigpIGNvbnN0CkBAIC0yNTcsNyArMjU3LDcgQEAg
c3RkOjp1bmlxdWVfcHRyPEltYWdlQnVmZmVyPiBPZmZzY3JlZW5DYW52YXM6OnRha2VJbWFnZUJ1
ZmZlcigpIGNvbnN0CiAgICAgaWYgKHNpemUoKS5pc0VtcHR5KCkpCiAgICAgICAgIHJldHVybiBu
dWxscHRyOwogCi0gICAgcmV0dXJuIHNldEltYWdlQnVmZmVyKEltYWdlQnVmZmVyOjpjcmVhdGUo
c2l6ZSgpLCBVbmFjY2VsZXJhdGVkKSk7CisgICAgcmV0dXJuIHNldEltYWdlQnVmZmVyKEltYWdl
QnVmZmVyOjpjcmVhdGUoc2l6ZSgpLCBSZW5kZXJpbmdNb2RlOjpVbmFjY2VsZXJhdGVkKSk7CiB9
CiAKIHZvaWQgT2Zmc2NyZWVuQ2FudmFzOjpyZXNldCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0MkRCYXNlLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyREJhc2UuY3BwCmlu
ZGV4IDg5ZDhmNDI0M2IyYjkyZGZiY2IzMmFhMjIxYjc1M2M5M2YxZjU5NDEuLmQ0OTQ3MTIwODMy
MzEwYzdjMGQ3YmVmMWM4NzlkYTNmZmIyOTNmMGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyREJhc2UuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyREJhc2UuY3BwCkBA
IC0xODA2LDcgKzE4MDYsNyBAQCB0ZW1wbGF0ZTxjbGFzcyBUPiBJbnRSZWN0IENhbnZhc1JlbmRl
cmluZ0NvbnRleHQyREJhc2U6OmNhbGN1bGF0ZUNvbXBvc2l0aW5nQnVmZgogCiBzdGQ6OnVuaXF1
ZV9wdHI8SW1hZ2VCdWZmZXI+IENhbnZhc1JlbmRlcmluZ0NvbnRleHQyREJhc2U6OmNyZWF0ZUNv
bXBvc2l0aW5nQnVmZmVyKGNvbnN0IEludFJlY3QmIGJ1ZmZlclJlY3QpCiB7Ci0gICAgcmV0dXJu
IEltYWdlQnVmZmVyOjpjcmVhdGUoYnVmZmVyUmVjdC5zaXplKCksIGlzQWNjZWxlcmF0ZWQoKSA/
IEFjY2VsZXJhdGVkIDogVW5hY2NlbGVyYXRlZCk7CisgICAgcmV0dXJuIEltYWdlQnVmZmVyOjpj
cmVhdGUoYnVmZmVyUmVjdC5zaXplKCksIGlzQWNjZWxlcmF0ZWQoKSA/IFJlbmRlcmluZ01vZGU6
OkFjY2VsZXJhdGVkIDogUmVuZGVyaW5nTW9kZTo6VW5hY2NlbGVyYXRlZCk7CiB9CiAKIHZvaWQg
Q2FudmFzUmVuZGVyaW5nQ29udGV4dDJEQmFzZTo6Y29tcG9zaXRlQnVmZmVyKEltYWdlQnVmZmVy
JiBidWZmZXIsIGNvbnN0IEludFJlY3QmIGJ1ZmZlclJlY3QsIENvbXBvc2l0ZU9wZXJhdG9yIG9w
KQpAQCAtMTk5MCw3ICsxOTkwLDcgQEAgRXhjZXB0aW9uT3I8UmVmUHRyPENhbnZhc1BhdHRlcm4+
PiBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkRCYXNlOjpjcmVhdGVQYXR0ZXJuKEgKICAgICAgICAg
cmV0dXJuIFJlZlB0cjxDYW52YXNQYXR0ZXJuPiB7IENhbnZhc1BhdHRlcm46OmNyZWF0ZShCaXRt
YXBJbWFnZTo6Y3JlYXRlKFdURk1vdmUobmF0aXZlSW1hZ2UpKSwgcmVwZWF0WCwgcmVwZWF0WSwg
b3JpZ2luQ2xlYW4pIH07CiAjZW5kaWYKIAotICAgIGF1dG8gaW1hZ2VCdWZmZXIgPSBJbWFnZUJ1
ZmZlcjo6Y3JlYXRlKHNpemUodmlkZW9FbGVtZW50KSwgZHJhd2luZ0NvbnRleHQoKSA/IGRyYXdp
bmdDb250ZXh0KCktPnJlbmRlcmluZ01vZGUoKSA6IEFjY2VsZXJhdGVkKTsKKyAgICBhdXRvIGlt
YWdlQnVmZmVyID0gSW1hZ2VCdWZmZXI6OmNyZWF0ZShzaXplKHZpZGVvRWxlbWVudCksIGRyYXdp
bmdDb250ZXh0KCkgPyBkcmF3aW5nQ29udGV4dCgpLT5yZW5kZXJpbmdNb2RlKCkgOiBSZW5kZXJp
bmdNb2RlOjpBY2NlbGVyYXRlZCk7CiAgICAgaWYgKCFpbWFnZUJ1ZmZlcikKICAgICAgICAgcmV0
dXJuIG51bGxwdHI7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0lt
YWdlQml0bWFwUmVuZGVyaW5nQ29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZh
cy9JbWFnZUJpdG1hcFJlbmRlcmluZ0NvbnRleHQuY3BwCmluZGV4IDE0ZWEzN2Q4ZDdlYWZiMDFi
NWM0Y2UxOWViZTc2YzUxOGNmY2Q0YTguLmI1MWI0ZGJmMTNlZTUwNmViOTQ5OGM0M2VmNDVjOTQ0
ZGQ3M2UwYTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0ltYWdlQml0
bWFwUmVuZGVyaW5nQ29udGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMv
SW1hZ2VCaXRtYXBSZW5kZXJpbmdDb250ZXh0LmNwcApAQCAtMzYsOSArMzYsOSBAQCBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiBXVEZfTUFLRV9JU09fQUxMT0NBVEVEX0lNUEwoSW1hZ2VCaXRtYXBSZW5k
ZXJpbmdDb250ZXh0KTsKIAogI2lmIFVTRShJT1NVUkZBQ0VfQ0FOVkFTX0JBQ0tJTkdfU1RPUkUp
IHx8IEVOQUJMRShBQ0NFTEVSQVRFRF8yRF9DQU5WQVMpCi1zdGF0aWMgUmVuZGVyaW5nTW9kZSBi
dWZmZXJSZW5kZXJpbmdNb2RlID0gQWNjZWxlcmF0ZWQ7CitzdGF0aWMgUmVuZGVyaW5nTW9kZSBi
dWZmZXJSZW5kZXJpbmdNb2RlID0gUmVuZGVyaW5nTW9kZTo6QWNjZWxlcmF0ZWQ7CiAjZWxzZQot
c3RhdGljIFJlbmRlcmluZ01vZGUgYnVmZmVyUmVuZGVyaW5nTW9kZSA9IFVuYWNjZWxlcmF0ZWQ7
CitzdGF0aWMgUmVuZGVyaW5nTW9kZSBidWZmZXJSZW5kZXJpbmdNb2RlID0gUmVuZGVyaW5nTW9k
ZTo6VW5hY2NlbGVyYXRlZDsKICNlbmRpZgogCiBzdGQ6OnVuaXF1ZV9wdHI8SW1hZ2VCaXRtYXBS
ZW5kZXJpbmdDb250ZXh0PiBJbWFnZUJpdG1hcFJlbmRlcmluZ0NvbnRleHQ6OmNyZWF0ZShDYW52
YXNCYXNlJiBjYW52YXMsIEltYWdlQml0bWFwUmVuZGVyaW5nQ29udGV4dFNldHRpbmdzJiYgc2V0
dGluZ3MpCkBAIC02OSw3ICs2OSw3IEBAIEhUTUxDYW52YXNFbGVtZW50KiBJbWFnZUJpdG1hcFJl
bmRlcmluZ0NvbnRleHQ6OmNhbnZhcygpIGNvbnN0CiAKIGJvb2wgSW1hZ2VCaXRtYXBSZW5kZXJp
bmdDb250ZXh0Ojppc0FjY2VsZXJhdGVkKCkgY29uc3QKIHsKLSAgICByZXR1cm4gYnVmZmVyUmVu
ZGVyaW5nTW9kZSA9PSBBY2NlbGVyYXRlZDsKKyAgICByZXR1cm4gYnVmZmVyUmVuZGVyaW5nTW9k
ZSA9PSBSZW5kZXJpbmdNb2RlOjpBY2NlbGVyYXRlZDsKIH0KIAogdm9pZCBJbWFnZUJpdG1hcFJl
bmRlcmluZ0NvbnRleHQ6OnNldE91dHB1dEJpdG1hcChSZWZQdHI8SW1hZ2VCaXRtYXA+IGltYWdl
Qml0bWFwKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5k
ZXJpbmdDb250ZXh0QmFzZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJl
bmRlcmluZ0NvbnRleHRCYXNlLmNwcAppbmRleCA2N2NhNTNjNDdlZWEwMDhiZWEzZjYxZGY5NmU3
Mzg5Y2FlY2E2ZGVhLi40Mjg4MjE2NDQ5OGRmYzE4NTY5NDdiMTZjM2EyOWE4NjM3ZmQ5NTBhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRl
eHRCYXNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmlu
Z0NvbnRleHRCYXNlLmNwcApAQCAtNjM4Niw3ICs2Mzg2LDcgQEAgSW1hZ2VCdWZmZXIqIFdlYkdM
UmVuZGVyaW5nQ29udGV4dEJhc2U6OkxSVUltYWdlQnVmZmVyQ2FjaGU6OmltYWdlQnVmZmVyKGNv
bnN0IEkKICAgICB9CiAKICAgICAvLyBGSVhNRSAoMTQ5NDIzKTogU2hvdWxkIHRoaXMgSW1hZ2VC
dWZmZXIgYmUgdW5jb25kaXRpb25hbGx5IHVuYWNjZWxlcmF0ZWQ/Ci0gICAgc3RkOjp1bmlxdWVf
cHRyPEltYWdlQnVmZmVyPiB0ZW1wID0gSW1hZ2VCdWZmZXI6OmNyZWF0ZShzaXplLCBVbmFjY2Vs
ZXJhdGVkKTsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8SW1hZ2VCdWZmZXI+IHRlbXAgPSBJbWFnZUJ1
ZmZlcjo6Y3JlYXRlKHNpemUsIFJlbmRlcmluZ01vZGU6OlVuYWNjZWxlcmF0ZWQpOwogICAgIGlm
ICghdGVtcCkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgQVNTRVJUKG1fYnVmZmVycy5z
aXplKCkgPiAwKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01lZGlh
Q29udHJvbEVsZW1lbnRzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01lZGlhQ29u
dHJvbEVsZW1lbnRzLmNwcAppbmRleCAzNGJhMzcyZDQ5MTQzY2ZlMjkzYTdjMmE4OTQ1ZTQwZjM1
MWIxMDUxLi5mNmJiZmFkZDM3N2JiNTFiMDYwYWEwYjMzZjBiNjgwZjExMmM5OTRmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xFbGVtZW50cy5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvTWVkaWFDb250cm9sRWxlbWVudHMuY3Bw
CkBAIC0xNDQ3LDcgKzE0NDcsNyBAQCBSZWZQdHI8SW1hZ2U+IE1lZGlhQ29udHJvbFRleHRUcmFj
a0NvbnRhaW5lckVsZW1lbnQ6OmNyZWF0ZVRleHRUcmFja1JlcHJlc2VudGF0aQogICAgIEludFJl
Y3QgcGFpbnRpbmdSZWN0ID0gSW50UmVjdChJbnRQb2ludCgpLCBsYXllci0+c2l6ZSgpKTsKIAog
ICAgIC8vIEZJWE1FICgxNDk0MjIpOiBUaGlzIGJ1ZmZlciBzaG91bGQgbm90IGJlIHVuY29uZGl0
aW9uYWxseSB1bmFjY2VsZXJhdGVkLgotICAgIHN0ZDo6dW5pcXVlX3B0cjxJbWFnZUJ1ZmZlcj4g
YnVmZmVyKEltYWdlQnVmZmVyOjpjcmVhdGUocGFpbnRpbmdSZWN0LnNpemUoKSwgVW5hY2NlbGVy
YXRlZCwgZGV2aWNlU2NhbGVGYWN0b3IpKTsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8SW1hZ2VCdWZm
ZXI+IGJ1ZmZlcihJbWFnZUJ1ZmZlcjo6Y3JlYXRlKHBhaW50aW5nUmVjdC5zaXplKCksIFJlbmRl
cmluZ01vZGU6OlVuYWNjZWxlcmF0ZWQsIGRldmljZVNjYWxlRmFjdG9yKSk7CiAgICAgaWYgKCFi
dWZmZXIpCiAgICAgICAgIHJldHVybiBudWxscHRyOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0ZyYW1lU25hcHNob3R0aW5nLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJh
bWVTbmFwc2hvdHRpbmcuY3BwCmluZGV4IDBhNDRjMmZhMWEwOTQ5N2NmZGY1NTg4ODMyZmZkZmYx
MDIzMzMwZTEuLmUyNGQ5MmU2ZjNlNjFkMzhhOWIyNDQ4NWY0ZDEzZGU1MGU1MzNhMmQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVTbmFwc2hvdHRpbmcuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVTbmFwc2hvdHRpbmcuY3BwCkBAIC0xMTEsNyArMTExLDcg
QEAgc3RkOjp1bmlxdWVfcHRyPEltYWdlQnVmZmVyPiBzbmFwc2hvdEZyYW1lUmVjdFdpdGhDbGlw
KEZyYW1lJiBmcmFtZSwgY29uc3QgSW50UmUKICAgICBpZiAob3B0aW9ucyAmIFNuYXBzaG90T3B0
aW9uc1BhaW50V2l0aEludGVncmFsU2NhbGVGYWN0b3IpCiAgICAgICAgIHNjYWxlRmFjdG9yID0g
Y2VpbGYoc2NhbGVGYWN0b3IpOwogCi0gICAgc3RkOjp1bmlxdWVfcHRyPEltYWdlQnVmZmVyPiBi
dWZmZXIgPSBJbWFnZUJ1ZmZlcjo6Y3JlYXRlKGltYWdlUmVjdC5zaXplKCksIFVuYWNjZWxlcmF0
ZWQsIHNjYWxlRmFjdG9yKTsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8SW1hZ2VCdWZmZXI+IGJ1ZmZl
ciA9IEltYWdlQnVmZmVyOjpjcmVhdGUoaW1hZ2VSZWN0LnNpemUoKSwgUmVuZGVyaW5nTW9kZTo6
VW5hY2NlbGVyYXRlZCwgc2NhbGVGYWN0b3IpOwogICAgIGlmICghYnVmZmVyKQogICAgICAgICBy
ZXR1cm4gbnVsbHB0cjsKICAgICBidWZmZXItPmNvbnRleHQoKS50cmFuc2xhdGUoLWltYWdlUmVj
dC54KCksIC1pbWFnZVJlY3QueSgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL0FscGhhUHJlbXVsdGlwbGljYXRpb24uaCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL0FscGhhUHJlbXVsdGlwbGljYXRpb24uaApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42ZDFj
YWVmODU0MWRlZTA2MmJmZTA1NDE2Y2RhMmYyYTdmNzkyNmUyCi0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQWxwaGFQcmVtdWx0aXBsaWNhdGlvbi5o
CkBAIC0wLDAgKzEsMzkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1F
TlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
CisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CisKK25hbWVz
cGFjZSBXZWJDb3JlIHsKKworZW51bSBjbGFzcyBBbHBoYVByZW11bHRpcGxpY2F0aW9uIDogdWlu
dDhfdCB7CisgICAgUHJlbXVsdGlwbGllZCwKKyAgICBVbnByZW11bHRpcGxpZWQKK307CisKK1dF
QkNPUkVfRVhQT1JUIFdURjo6VGV4dFN0cmVhbSYgb3BlcmF0b3I8PChXVEY6OlRleHRTdHJlYW0m
LCBBbHBoYVByZW11bHRpcGxpY2F0aW9uKTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQml0bWFwSW1hZ2UuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQml0bWFwSW1hZ2UuY3BwCmluZGV4
IGM3MWQ5OGY4YTVmNjY3NDY4NjMwOTQ0YWI3MWRiYWZjOTFkY2I2NGUuLjQ4MjI0NGE0ZjJiZGNl
ZGU3Yzg3NGNkMWI1MGVhOTE0YjE0OTlhMjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL0JpdG1hcEltYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9CaXRtYXBJbWFnZS5jcHAKQEAgLTE2MCw3ICsxNjAsNyBAQCBOYXRpdmVJ
bWFnZVB0ciBCaXRtYXBJbWFnZTo6bmF0aXZlSW1hZ2VGb3JDdXJyZW50RnJhbWVSZXNwZWN0aW5n
T3JpZW50YXRpb24oY29ucwogICAgICAgICByZXR1cm4gaW1hZ2U7CiAKICAgICBGbG9hdFJlY3Qg
cmVjdCA9IHsgRmxvYXRQb2ludCgpLCBzaXplKCkgfTsKLSAgICBhdXRvIGJ1ZmZlciA9IEltYWdl
QnVmZmVyOjpjcmVhdGUocmVjdC5zaXplKCksIFVuYWNjZWxlcmF0ZWQpOworICAgIGF1dG8gYnVm
ZmVyID0gSW1hZ2VCdWZmZXI6OmNyZWF0ZShyZWN0LnNpemUoKSwgUmVuZGVyaW5nTW9kZTo6VW5h
Y2NlbGVyYXRlZCk7CiAgICAgaWYgKCFidWZmZXIpCiAgICAgICAgIHJldHVybiBpbWFnZTsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250
ZXh0LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQu
aAppbmRleCBmNTg2ZGQ0YjJhZjkxZjQ1NjU1MzVhNzAyOTM5MjNhZjJiYWFkYmEyLi5lNWMzMWMx
ZTY0ZWY1NGI5NjExMzFkYmIyNWM0Y2U0YjE4OWUyZDNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQuaApAQCAtMzUsNiArMzUsNyBA
QAogI2luY2x1ZGUgIkltYWdlT3JpZW50YXRpb24uaCIKICNpbmNsdWRlICJJbWFnZVBhaW50aW5n
T3B0aW9ucy5oIgogI2luY2x1ZGUgIlBhdHRlcm4uaCIKKyNpbmNsdWRlICJSZW5kZXJpbmdNb2Rl
LmgiCiAjaW5jbHVkZSA8d3RmL0Z1bmN0aW9uLmg+CiAjaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxl
Lmg+CiAjaW5jbHVkZSA8d3RmL09wdGlvblNldC5oPgpAQCAtMzUwLDcgKzM1MSw3IEBAIHB1Ymxp
YzoKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldElzQWNjZWxlcmF0ZWRDb250ZXh0KGJvb2wp
OwogI2VuZGlmCiAgICAgYm9vbCBpc0FjY2VsZXJhdGVkQ29udGV4dCgpIGNvbnN0OwotICAgIFJl
bmRlcmluZ01vZGUgcmVuZGVyaW5nTW9kZSgpIGNvbnN0IHsgcmV0dXJuIGlzQWNjZWxlcmF0ZWRD
b250ZXh0KCkgPyBBY2NlbGVyYXRlZCA6IFVuYWNjZWxlcmF0ZWQ7IH0KKyAgICBSZW5kZXJpbmdN
b2RlIHJlbmRlcmluZ01vZGUoKSBjb25zdCB7IHJldHVybiBpc0FjY2VsZXJhdGVkQ29udGV4dCgp
ID8gUmVuZGVyaW5nTW9kZTo6QWNjZWxlcmF0ZWQgOiBSZW5kZXJpbmdNb2RlOjpVbmFjY2VsZXJh
dGVkOyB9CiAKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNhdmUoKTsKICAgICBXRUJDT1JFX0VY
UE9SVCB2b2lkIHJlc3RvcmUoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL0dyYXBoaWNzVHlwZXMuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvR3JhcGhpY3NUeXBlcy5jcHAKaW5kZXggNDU4YWU3MmYyYWUwMjU2MjQ3NjhlODc5ZGJk
NDk2OTY0YjQ5MWIxOC4uZGM1NGE5OTg1ZTRkNDIwNjdkYTZjMjM4MTgzNWZiZDM3MzY4NzYxYiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NUeXBl
cy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NUeXBl
cy5jcHAKQEAgLTI4LDYgKzI4LDcgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJH
cmFwaGljc1R5cGVzLmgiCiAKKyNpbmNsdWRlICJBbHBoYVByZW11bHRpcGxpY2F0aW9uLmgiCiAj
aW5jbHVkZSA8d3RmL0Fzc2VydGlvbnMuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9UZXh0U3RyZWFt
Lmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc1R5cGVzLmggYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc1R5cGVzLmgKaW5kZXggY2VlYTFkYTQwZWIzMmZm
NzhhMWU3NWUxN2JmZTAwOTIwMWI3NmYxMi4uNTdlZWJkYzUwMDNjMzcwYjhiNDc0MWVjMmJhNTQy
NDdjOTVjOTNlZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
R3JhcGhpY3NUeXBlcy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dy
YXBoaWNzVHlwZXMuaApAQCAtMTIyLDE3ICsxMjIsNiBAQCBlbnVtIFRleHRBbGlnbiB7CiAgICAg
UmlnaHRUZXh0QWxpZ24KIH07CiAKLWVudW0gUmVuZGVyaW5nTW9kZSB7Ci0gICAgVW5hY2NlbGVy
YXRlZCwKLSAgICBVbmFjY2VsZXJhdGVkTm9uUGxhdGZvcm1CdWZmZXIsIC8vIFVzZSBwbGFpbiBt
ZW1vcnkgYWxsb2NhdGlvbiByYXRoZXIgdGhhbiBwbGF0Zm9ybSBBUEkgdG8gYWxsb2NhdGUgYmFj
a2luZyBzdG9yZS4KLSAgICBBY2NlbGVyYXRlZAotfTsKLQotZW51bSBjbGFzcyBBbHBoYVByZW11
bHRpcGxpY2F0aW9uIHsKLSAgICBQcmVtdWx0aXBsaWVkLAotICAgIFVucHJlbXVsdGlwbGllZAot
fTsKLQogU3RyaW5nIGNvbXBvc2l0ZU9wZXJhdG9yTmFtZShXZWJDb3JlOjpDb21wb3NpdGVPcGVy
YXRvciwgV2ViQ29yZTo6QmxlbmRNb2RlKTsKIFN0cmluZyBibGVuZE1vZGVOYW1lKFdlYkNvcmU6
OkJsZW5kTW9kZSk7CiBib29sIHBhcnNlQmxlbmRNb2RlKGNvbnN0IFN0cmluZyYsIFdlYkNvcmU6
OkJsZW5kTW9kZSYpOwpAQCAtMTQzLDcgKzEzMiw2IEBAIFdFQkNPUkVfRVhQT1JUIFdURjo6VGV4
dFN0cmVhbSYgb3BlcmF0b3I8PChXVEY6OlRleHRTdHJlYW0mLCBXZWJDb3JlOjpDb21wb3NpdGVP
CiBXRUJDT1JFX0VYUE9SVCBXVEY6OlRleHRTdHJlYW0mIG9wZXJhdG9yPDwoV1RGOjpUZXh0U3Ry
ZWFtJiwgV2luZFJ1bGUpOwogV0VCQ09SRV9FWFBPUlQgV1RGOjpUZXh0U3RyZWFtJiBvcGVyYXRv
cjw8KFdURjo6VGV4dFN0cmVhbSYsIExpbmVDYXApOwogV0VCQ09SRV9FWFBPUlQgV1RGOjpUZXh0
U3RyZWFtJiBvcGVyYXRvcjw8KFdURjo6VGV4dFN0cmVhbSYsIExpbmVKb2luKTsKLVdFQkNPUkVf
RVhQT1JUIFdURjo6VGV4dFN0cmVhbSYgb3BlcmF0b3I8PChXVEY6OlRleHRTdHJlYW0mLCBBbHBo
YVByZW11bHRpcGxpY2F0aW9uKTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZUJ1ZmZlci5oIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VCdWZmZXIuaAppbmRleCBjYjc0Mzg0
NDgwMmFiNDJiNTUzNTExN2NhYjVjYjc1NjQ0ZDViM2Y0Li42MmQwYTViMzA1NmVhYmU1NWFiMmJl
NjE5ZDdlYTc4ZDhkYzRhNTc1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9JbWFnZUJ1ZmZlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL0ltYWdlQnVmZmVyLmgKQEAgLTI4LDYgKzI4LDcgQEAKICNwcmFnbWEgb25jZQogCiAjaW5j
bHVkZSAiQWZmaW5lVHJhbnNmb3JtLmgiCisjaW5jbHVkZSAiQWxwaGFQcmVtdWx0aXBsaWNhdGlv
bi5oIgogI2luY2x1ZGUgIkNvbG9yU3BhY2UuaCIKICNpbmNsdWRlICJHcmFwaGljc1R5cGVzLmgi
CiAjaW5jbHVkZSAiR3JhcGhpY3NUeXBlc0dMLmgiCkBAIC0zNSw2ICszNiw3IEBACiAjaW5jbHVk
ZSAiSW1hZ2VQYWludGluZ09wdGlvbnMuaCIKICNpbmNsdWRlICJJbnRTaXplLmgiCiAjaW5jbHVk
ZSAiUGxhdGZvcm1MYXllci5oIgorI2luY2x1ZGUgIlJlbmRlcmluZ01vZGUuaCIKICNpbmNsdWRl
IDxKYXZhU2NyaXB0Q29yZS9VaW50OENsYW1wZWRBcnJheS5oPgogI2luY2x1ZGUgPG1lbW9yeT4K
ICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgpAQCAtMTk0LDQgKzE5NiwzIEBAIFZlY3Rvcjx1aW50
OF90PiBkYXRhKGNvbnN0IEltYWdlRGF0YSYsIGNvbnN0IFN0cmluZyYgbWltZVR5cGUsIE9wdGlv
bmFsPGRvdWJsZT4KICNlbmRpZgogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCi0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1JlbmRlcmluZ01vZGUuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1JlbmRlcmluZ01vZGUuaApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li42OWQ4YWU4MWM4NDhiMTBlNmYyZDA3YTc4OWIxNmMzMzNkYzIzY2I0Ci0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvUmVuZGVyaW5nTW9kZS5oCkBA
IC0wLDAgKzEsMzUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQg
T0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisg
KiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjcHJhZ21hIG9uY2UKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitlbnVtIGNsYXNzIFJl
bmRlcmluZ01vZGUgOiB1aW50OF90IHsKKyAgICBBY2NlbGVyYXRlZCwKKyAgICBVbmFjY2VsZXJh
dGVkLAorfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvU2hhZG93Qmx1ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9TaGFkb3dCbHVyLmNwcAppbmRleCA0MDQxYjNmODEwNzY3OGM1NmFj
ZGIwYzUzM2EwOTg2ZjdlNjQ1NTk2Li42ODFhYjU2ZWViMzQxOTQ2MmIyMzQ0NTBkMDBmNDFmOTMz
Njc0ZDE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9TaGFk
b3dCbHVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9TaGFkb3dC
bHVyLmNwcApAQCAtODMsNyArODMsNyBAQCBwdWJsaWM6CiAgICAgICAgIGNsZWFyU2NyYXRjaEJ1
ZmZlcigpOwogCiAgICAgICAgIC8vIFNoYWRvd0JsdXIgaXMgbm90IHVzZWQgd2l0aCBhY2NlbGVy
YXRlZCBkcmF3aW5nLCBzbyBpdCdzIE9LIHRvIG1ha2UgYW4gdW5jb25kaXRpb25hbGx5IHVuYWNj
ZWxlcmF0ZWQgYnVmZmVyLgotICAgICAgICBtX2ltYWdlQnVmZmVyID0gSW1hZ2VCdWZmZXI6OmNy
ZWF0ZShyb3VuZGVkU2l6ZSwgVW5hY2NlbGVyYXRlZCwgMSk7CisgICAgICAgIG1faW1hZ2VCdWZm
ZXIgPSBJbWFnZUJ1ZmZlcjo6Y3JlYXRlKHJvdW5kZWRTaXplLCBSZW5kZXJpbmdNb2RlOjpVbmFj
Y2VsZXJhdGVkLCAxKTsKICAgICAgICAgcmV0dXJuIG1faW1hZ2VCdWZmZXIuZ2V0KCk7CiAgICAg
fQogCkBAIC01OTMsNyArNTkzLDcgQEAgdm9pZCBTaGFkb3dCbHVyOjpkcmF3SW5zZXRTaGFkb3co
Y29uc3QgQWZmaW5lVHJhbnNmb3JtJiB0cmFuc2Zvcm0sIGNvbnN0IEludFJlY3QKIAogdm9pZCBT
aGFkb3dCbHVyOjpkcmF3UmVjdFNoYWRvd1dpdGhvdXRUaWxpbmcoY29uc3QgQWZmaW5lVHJhbnNm
b3JtJiwgY29uc3QgRmxvYXRSb3VuZGVkUmVjdCYgc2hhZG93ZWRSZWN0LCBjb25zdCBMYXllcklt
YWdlUHJvcGVydGllcyYgbGF5ZXJJbWFnZVByb3BlcnRpZXMsIGNvbnN0IERyYXdCdWZmZXJDYWxs
YmFjayYgZHJhd0J1ZmZlcikKIHsKLSAgICBhdXRvIGxheWVySW1hZ2UgPSBJbWFnZUJ1ZmZlcjo6
Y3JlYXRlKGV4cGFuZGVkSW50U2l6ZShsYXllckltYWdlUHJvcGVydGllcy5sYXllclNpemUpLCBV
bmFjY2VsZXJhdGVkLCAxKTsKKyAgICBhdXRvIGxheWVySW1hZ2UgPSBJbWFnZUJ1ZmZlcjo6Y3Jl
YXRlKGV4cGFuZGVkSW50U2l6ZShsYXllckltYWdlUHJvcGVydGllcy5sYXllclNpemUpLCBSZW5k
ZXJpbmdNb2RlOjpVbmFjY2VsZXJhdGVkLCAxKTsKICAgICBpZiAoIWxheWVySW1hZ2UpCiAgICAg
ICAgIHJldHVybjsKIApAQCAtNjIxLDcgKzYyMSw3IEBAIHZvaWQgU2hhZG93Qmx1cjo6ZHJhd1Jl
Y3RTaGFkb3dXaXRob3V0VGlsaW5nKGNvbnN0IEFmZmluZVRyYW5zZm9ybSYsIGNvbnN0IEZsb2F0
CiAKIHZvaWQgU2hhZG93Qmx1cjo6ZHJhd0luc2V0U2hhZG93V2l0aG91dFRpbGluZyhjb25zdCBB
ZmZpbmVUcmFuc2Zvcm0mLCBjb25zdCBGbG9hdFJlY3QmIGZ1bGxSZWN0LCBjb25zdCBGbG9hdFJv
dW5kZWRSZWN0JiBob2xlUmVjdCwgY29uc3QgTGF5ZXJJbWFnZVByb3BlcnRpZXMmIGxheWVySW1h
Z2VQcm9wZXJ0aWVzLCBjb25zdCBEcmF3QnVmZmVyQ2FsbGJhY2smIGRyYXdCdWZmZXIpCiB7Ci0g
ICAgYXV0byBsYXllckltYWdlID0gSW1hZ2VCdWZmZXI6OmNyZWF0ZShleHBhbmRlZEludFNpemUo
bGF5ZXJJbWFnZVByb3BlcnRpZXMubGF5ZXJTaXplKSwgVW5hY2NlbGVyYXRlZCwgMSk7CisgICAg
YXV0byBsYXllckltYWdlID0gSW1hZ2VCdWZmZXI6OmNyZWF0ZShleHBhbmRlZEludFNpemUobGF5
ZXJJbWFnZVByb3BlcnRpZXMubGF5ZXJTaXplKSwgUmVuZGVyaW5nTW9kZTo6VW5hY2NlbGVyYXRl
ZCwgMSk7CiAgICAgaWYgKCFsYXllckltYWdlKQogICAgICAgICByZXR1cm47CiAKQEAgLTY4NSw3
ICs2ODUsNyBAQCB2b2lkIFNoYWRvd0JsdXI6OmRyYXdSZWN0U2hhZG93V2l0aFRpbGluZyhjb25z
dCBBZmZpbmVUcmFuc2Zvcm0mIHRyYW5zZm9ybSwgY29ucwogICAgIGF1dG8qIGxheWVySW1hZ2Ug
PSBTY3JhdGNoQnVmZmVyOjpzaW5nbGV0b24oKS5nZXRTY3JhdGNoQnVmZmVyKHRlbXBsYXRlU2l6
ZSk7CiAjZWxzZQogICAgIFVOVVNFRF9QQVJBTShsYXllckltYWdlUHJvcGVydGllcyk7Ci0gICAg
YXV0byBsYXllckltYWdlQnVmZmVyID0gSW1hZ2VCdWZmZXI6OmNyZWF0ZSh0ZW1wbGF0ZVNpemUs
IFVuYWNjZWxlcmF0ZWQsIDEpOworICAgIGF1dG8gbGF5ZXJJbWFnZUJ1ZmZlciA9IEltYWdlQnVm
ZmVyOjpjcmVhdGUodGVtcGxhdGVTaXplLCBSZW5kZXJpbmdNb2RlOjpVbmFjY2VsZXJhdGVkLCAx
KTsKICAgICBhdXRvKiBsYXllckltYWdlID0gbGF5ZXJJbWFnZUJ1ZmZlci5nZXQoKTsKICNlbmRp
ZgogCkBAIC03MzksNyArNzM5LDcgQEAgdm9pZCBTaGFkb3dCbHVyOjpkcmF3SW5zZXRTaGFkb3dX
aXRoVGlsaW5nKGNvbnN0IEFmZmluZVRyYW5zZm9ybSYgdHJhbnNmb3JtLCBjb24KICNpZiBVU0Uo
Q0cpCiAgICAgYXV0byogbGF5ZXJJbWFnZSA9IFNjcmF0Y2hCdWZmZXI6OnNpbmdsZXRvbigpLmdl
dFNjcmF0Y2hCdWZmZXIodGVtcGxhdGVTaXplKTsKICNlbHNlCi0gICAgYXV0byBsYXllckltYWdl
QnVmZmVyID0gSW1hZ2VCdWZmZXI6OmNyZWF0ZSh0ZW1wbGF0ZVNpemUsIFVuYWNjZWxlcmF0ZWQs
IDEpOworICAgIGF1dG8gbGF5ZXJJbWFnZUJ1ZmZlciA9IEltYWdlQnVmZmVyOjpjcmVhdGUodGVt
cGxhdGVTaXplLCBSZW5kZXJpbmdNb2RlOjpVbmFjY2VsZXJhdGVkLCAxKTsKICAgICBhdXRvKiBs
YXllckltYWdlID0gbGF5ZXJJbWFnZUJ1ZmZlci5nZXQoKTsKICNlbmRpZgogCkBAIC05MTIsNyAr
OTEyLDcgQEAgdm9pZCBTaGFkb3dCbHVyOjpkcmF3U2hhZG93TGF5ZXIoY29uc3QgQWZmaW5lVHJh
bnNmb3JtJiB0cmFuc2Zvcm0sIGNvbnN0IEludFJlY3QKIAogICAgIGFkanVzdEJsdXJSYWRpdXMo
dHJhbnNmb3JtKTsKIAotICAgIGF1dG8gbGF5ZXJJbWFnZSA9IEltYWdlQnVmZmVyOjpjcmVhdGUo
ZXhwYW5kZWRJbnRTaXplKGxheWVySW1hZ2VQcm9wZXJ0aWVzLT5sYXllclNpemUpLCBVbmFjY2Vs
ZXJhdGVkLCAxKTsKKyAgICBhdXRvIGxheWVySW1hZ2UgPSBJbWFnZUJ1ZmZlcjo6Y3JlYXRlKGV4
cGFuZGVkSW50U2l6ZShsYXllckltYWdlUHJvcGVydGllcy0+bGF5ZXJTaXplKSwgUmVuZGVyaW5n
TW9kZTo6VW5hY2NlbGVyYXRlZCwgMSk7CiAgICAgaWYgKCFsYXllckltYWdlKQogICAgICAgICBy
ZXR1cm47CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nh
aXJvL0ltYWdlQnVmZmVyQ2Fpcm8uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY2Fpcm8vSW1hZ2VCdWZmZXJDYWlyby5jcHAKaW5kZXggMWYxMzMzYTc0MjY5ZjUyNDcwNWY1
NDNmMGRkYjgzNGNjN2NiZGYwZC4uY2NjNWY5Y2RiMDE1MzJkYmU4ODk2YjRkMWM2MGRiMDg1NjE2
YzkzOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8v
SW1hZ2VCdWZmZXJDYWlyby5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY2Fpcm8vSW1hZ2VCdWZmZXJDYWlyby5jcHAKQEAgLTEwMyw3ICsxMDMsNyBAQCBJbWFnZUJ1
ZmZlckRhdGE6OkltYWdlQnVmZmVyRGF0YShjb25zdCBJbnRTaXplJiBzaXplLCBSZW5kZXJpbmdN
b2RlIHJlbmRlcmluZ01vZAogCiBJbWFnZUJ1ZmZlckRhdGE6On5JbWFnZUJ1ZmZlckRhdGEoKQog
ewotICAgIGlmIChtX3JlbmRlcmluZ01vZGUgIT0gQWNjZWxlcmF0ZWQpCisgICAgaWYgKG1fcmVu
ZGVyaW5nTW9kZSAhPSBSZW5kZXJpbmdNb2RlOjpBY2NlbGVyYXRlZCkKICAgICAgICAgcmV0dXJu
OwogCiAjaWYgRU5BQkxFKEFDQ0VMRVJBVEVEXzJEX0NBTlZBUykKQEAgLTI5MiwxNCArMjkyLDE0
IEBAIEltYWdlQnVmZmVyOjpJbWFnZUJ1ZmZlcihjb25zdCBGbG9hdFNpemUmIHNpemUsIGZsb2F0
IHJlc29sdXRpb25TY2FsZSwgQ29sb3JTcGFjCiAgICAgICAgIHJldHVybjsKIAogI2lmIEVOQUJM
RShBQ0NFTEVSQVRFRF8yRF9DQU5WQVMpCi0gICAgaWYgKG1fZGF0YS5tX3JlbmRlcmluZ01vZGUg
PT0gQWNjZWxlcmF0ZWQpIHsKKyAgICBpZiAobV9kYXRhLm1fcmVuZGVyaW5nTW9kZSA9PSBSZW5k
ZXJpbmdNb2RlOjpBY2NlbGVyYXRlZCkgewogICAgICAgICBtX2RhdGEuY3JlYXRlQ2Fpcm9HTFN1
cmZhY2UoKTsKICAgICAgICAgaWYgKCFtX2RhdGEubV9zdXJmYWNlIHx8IGNhaXJvX3N1cmZhY2Vf
c3RhdHVzKG1fZGF0YS5tX3N1cmZhY2UuZ2V0KCkpICE9IENBSVJPX1NUQVRVU19TVUNDRVNTKQot
ICAgICAgICAgICAgbV9kYXRhLm1fcmVuZGVyaW5nTW9kZSA9IFVuYWNjZWxlcmF0ZWQ7IC8vIElm
IGFsbG9jYXRpb24gZmFpbHMsIGZhbGwgYmFjayB0byBub24tYWNjZWxlcmF0ZWQgcGF0aC4KKyAg
ICAgICAgICAgIG1fZGF0YS5tX3JlbmRlcmluZ01vZGUgPSBSZW5kZXJpbmdNb2RlOjpVbmFjY2Vs
ZXJhdGVkOyAvLyBJZiBhbGxvY2F0aW9uIGZhaWxzLCBmYWxsIGJhY2sgdG8gbm9uLWFjY2VsZXJh
dGVkIHBhdGguCiAgICAgfQotICAgIGlmIChtX2RhdGEubV9yZW5kZXJpbmdNb2RlID09IFVuYWNj
ZWxlcmF0ZWQpCisgICAgaWYgKG1fZGF0YS5tX3JlbmRlcmluZ01vZGUgPT0gUmVuZGVyaW5nTW9k
ZTo6VW5hY2NlbGVyYXRlZCkKICNlbHNlCi0gICAgQVNTRVJUKG1fZGF0YS5tX3JlbmRlcmluZ01v
ZGUgIT0gQWNjZWxlcmF0ZWQpOworICAgIEFTU0VSVChtX2RhdGEubV9yZW5kZXJpbmdNb2RlICE9
IFJlbmRlcmluZ01vZGU6OkFjY2VsZXJhdGVkKTsKICNlbmRpZgogICAgIHsKICAgICAgICAgc3Rh
dGljIGNhaXJvX3VzZXJfZGF0YV9rZXlfdCBzX3N1cmZhY2VEYXRhS2V5OwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSW1hZ2VCdWZmZXJDRy5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9JbWFnZUJ1ZmZlckNHLmNwcAppbmRl
eCAzNTZmMTk2NGQwOTU1MmJkMWEyN2ZjMGQyMjgwOWQ4YTNkYTZiNzViLi45NDdmZjkzMjBiNjhj
YmMwMWQ5ZjNhNDU0ZTgzNTQzZmQzZDk0MjM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jZy9JbWFnZUJ1ZmZlckNHLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9JbWFnZUJ1ZmZlckNHLmNwcApAQCAtMTI3LDcgKzEyNyw3
IEBAIEltYWdlQnVmZmVyOjpJbWFnZUJ1ZmZlcihjb25zdCBGbG9hdFNpemUmIHNpemUsIGZsb2F0
IHJlc29sdXRpb25TY2FsZSwgQ0dDb2xvclNwCiAgICAgbV9zaXplID0gSW50U2l6ZShzY2FsZWRX
aWR0aCwgc2NhbGVkSGVpZ2h0KTsKICAgICBtX2RhdGEuYmFja2luZ1N0b3JlU2l6ZSA9IG1fc2l6
ZTsKIAotICAgIGJvb2wgYWNjZWxlcmF0ZVJlbmRlcmluZyA9IHJlbmRlcmluZ01vZGUgPT0gQWNj
ZWxlcmF0ZWQ7CisgICAgYm9vbCBhY2NlbGVyYXRlUmVuZGVyaW5nID0gcmVuZGVyaW5nTW9kZSA9
PSBSZW5kZXJpbmdNb2RlOjpBY2NlbGVyYXRlZDsKICAgICBpZiAobV9zaXplLndpZHRoKCkgPD0g
MCB8fCBtX3NpemUuaGVpZ2h0KCkgPD0gMCkKICAgICAgICAgcmV0dXJuOwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9JbWFnZUJ1ZmZlckRhdGFDRy5o
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSW1hZ2VCdWZmZXJEYXRhQ0cu
aAppbmRleCBjNTVhNTRhZDkxMTc5NTNjYTVlNjk2ZGEwN2U2ZTBkZjY4MTQzZDU4Li4zZTIzNzRi
YWQyNGYwNzg3ZmVmMDU0M2MxYjUxYjkxMjBmMTIzMGQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9JbWFnZUJ1ZmZlckRhdGFDRy5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0ltYWdlQnVmZmVyRGF0YUNHLmgKQEAgLTI2
LDYgKzI2LDcgQEAKIAogI3ByYWdtYSBvbmNlCiAKKyNpbmNsdWRlICJBbHBoYVByZW11bHRpcGxp
Y2F0aW9uLmgiCiAjaW5jbHVkZSAiSW1hZ2UuaCIKICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9V
aW50OENsYW1wZWRBcnJheS5oPgogI2luY2x1ZGUgPHd0Zi9DaGVja2VkQXJpdGhtZXRpYy5oPgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GaWx0
ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRmlsdGVyLmgK
aW5kZXggNDllOGM1YTI2ZTc3MWM0MjQ5Njc4MTk1MjdhNTYyNzM1M2RmNDQ5Ni4uZGQzNWNjNjVi
MTM3ZDgyMmM3MDE1MzJkYWJkMjQ5MDA0YmYyYTlmNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GaWx0ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZpbHRlci5oCkBAIC03MSw3ICs3MSw3IEBAIHBy
aXZhdGU6CiAgICAgc3RkOjp1bmlxdWVfcHRyPEltYWdlQnVmZmVyPiBtX3NvdXJjZUltYWdlOwog
ICAgIEZsb2F0U2l6ZSBtX2ZpbHRlclJlc29sdXRpb247CiAgICAgQWZmaW5lVHJhbnNmb3JtIG1f
YWJzb2x1dGVUcmFuc2Zvcm07Ci0gICAgUmVuZGVyaW5nTW9kZSBtX3JlbmRlcmluZ01vZGUgeyBV
bmFjY2VsZXJhdGVkIH07CisgICAgUmVuZGVyaW5nTW9kZSBtX3JlbmRlcmluZ01vZGUgeyBSZW5k
ZXJpbmdNb2RlOjpVbmFjY2VsZXJhdGVkIH07CiAgICAgZmxvYXQgbV9maWx0ZXJTY2FsZSB7IDEg
fTsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3Rl
eG1hcC9CaXRtYXBUZXh0dXJlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L3RleG1hcC9CaXRtYXBUZXh0dXJlLmNwcAppbmRleCA3ZDJjZWZkNjI2MWRlZTJhMzlhODlkMTAx
NzAyZWI1MDI1MmY0ZjVlLi5mMDM5MTM4MDYwZDM0NDM0ZTZjZGRiZjk2ZWE2NGMzMDFhNjM1NTNm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvQml0
bWFwVGV4dHVyZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4
bWFwL0JpdG1hcFRleHR1cmUuY3BwCkBAIC0zOCw3ICszOCw3IEBAIHZvaWQgQml0bWFwVGV4dHVy
ZTo6dXBkYXRlQ29udGVudHMoVGV4dHVyZU1hcHBlciYsIEdyYXBoaWNzTGF5ZXIqIHNvdXJjZUxh
eWVyLCBjCiB7CiAgICAgLy8gTWFraW5nIGFuIHVuY29uZGl0aW9uYWxseSB1bmFjY2VsZXJhdGVk
IGJ1ZmZlciBoZXJlIGlzIE9LIGJlY2F1c2UgdGhpcyBjb2RlCiAgICAgLy8gaXNuJ3QgdXNlZCBi
eSBhbnkgcGxhdGZvcm1zIHRoYXQgcmVzcGVjdCB0aGUgYWNjZWxlcmF0ZWQgYml0LgotICAgIHN0
ZDo6dW5pcXVlX3B0cjxJbWFnZUJ1ZmZlcj4gaW1hZ2VCdWZmZXIgPSBJbWFnZUJ1ZmZlcjo6Y3Jl
YXRlKHRhcmdldFJlY3Quc2l6ZSgpLCBVbmFjY2VsZXJhdGVkKTsKKyAgICBzdGQ6OnVuaXF1ZV9w
dHI8SW1hZ2VCdWZmZXI+IGltYWdlQnVmZmVyID0gSW1hZ2VCdWZmZXI6OmNyZWF0ZSh0YXJnZXRS
ZWN0LnNpemUoKSwgUmVuZGVyaW5nTW9kZTo6VW5hY2NlbGVyYXRlZCk7CiAKICAgICBpZiAoIWlt
YWdlQnVmZmVyKQogICAgICAgICByZXR1cm47CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy93aW4vSW1hZ2VCdWZmZXJEaXJlY3QyRC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vSW1hZ2VCdWZmZXJEaXJlY3QyRC5jcHAKaW5kZXgg
NWU5Y2YwNTc4YTZiODI5ZjBhNmMwYTAxYjA5ODZlNjAzZDYwNDI4Yy4uYjhlM2IwYmExOWIyY2Fk
ZmQ2YmY3NDk2YmM3YjgyYzUzZTkxODA5ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3Mvd2luL0ltYWdlQnVmZmVyRGlyZWN0MkQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9JbWFnZUJ1ZmZlckRpcmVjdDJELmNwcApAQCAt
OTEsNyArOTEsNyBAQCBJbWFnZUJ1ZmZlcjo6SW1hZ2VCdWZmZXIoY29uc3QgRmxvYXRTaXplJiBz
aXplLCBmbG9hdCByZXNvbHV0aW9uU2NhbGUsIENvbG9yU3BhYwogICAgIG1fc2l6ZSA9IEludFNp
emUoc2NhbGVkV2lkdGgsIHNjYWxlZEhlaWdodCk7CiAgICAgbV9kYXRhLmJhY2tpbmdTdG9yZVNp
emUgPSBtX3NpemU7CiAKLSAgICBib29sIGFjY2VsZXJhdGVSZW5kZXJpbmcgPSByZW5kZXJpbmdN
b2RlID09IEFjY2VsZXJhdGVkOworICAgIGJvb2wgYWNjZWxlcmF0ZVJlbmRlcmluZyA9IHJlbmRl
cmluZ01vZGUgPT0gUmVuZGVyaW5nTW9kZTo6QWNjZWxlcmF0ZWQ7CiAgICAgaWYgKG1fc2l6ZS53
aWR0aCgpIDw9IDAgfHwgbV9zaXplLmhlaWdodCgpIDw9IDApCiAgICAgICAgIHJldHVybjsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9Nb2NrUmVhbHRpbWVWaWRl
b1NvdXJjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL01vY2tSZWFsdGltZVZp
ZGVvU291cmNlLmNwcAppbmRleCBjYTExYmI4YmEwYjE5MTBjNjI3OTY3ZDRkMjYwYjA0YzY4NDg2
NzMxLi41YWM5ZDY2MDZjNDIyMTI0OGJjNDFkZTkzODljZTVjODdlNGE0MTdiIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL01vY2tSZWFsdGltZVZpZGVvU291cmNlLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL01vY2tSZWFsdGltZVZpZGVvU291
cmNlLmNwcApAQCAtNDU4LDcgKzQ1OCw3IEBAIEltYWdlQnVmZmVyKiBNb2NrUmVhbHRpbWVWaWRl
b1NvdXJjZTo6aW1hZ2VCdWZmZXIoKSBjb25zdAogICAgIGlmIChtX2ltYWdlQnVmZmVyKQogICAg
ICAgICByZXR1cm4gbV9pbWFnZUJ1ZmZlci5nZXQoKTsKIAotICAgIG1faW1hZ2VCdWZmZXIgPSBJ
bWFnZUJ1ZmZlcjo6Y3JlYXRlKGNhcHR1cmVTaXplKCksIFVuYWNjZWxlcmF0ZWQpOworICAgIG1f
aW1hZ2VCdWZmZXIgPSBJbWFnZUJ1ZmZlcjo6Y3JlYXRlKGNhcHR1cmVTaXplKCksIFJlbmRlcmlu
Z01vZGU6OlVuYWNjZWxlcmF0ZWQpOwogICAgIGlmICghbV9pbWFnZUJ1ZmZlcikKICAgICAgICAg
cmV0dXJuIG51bGxwdHI7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJMYXllci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3Bw
CmluZGV4IGQ1YjkxYjI2ODZhZTI2MWViNTNjMDY4OWJlZWM2MmY1NWUzZmI0NTguLjhmNTBlNTc1
NzFkN2IzODUwMGVlZDdiY2RhNmIzYTY0MmFiZjc5NTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckxheWVyLmNwcApAQCAtNjkwNSw3ICs2OTA1LDcgQEAgdm9pZCBSZW5kZXJMYXll
cjo6dXBkYXRlRmlsdGVyUGFpbnRpbmdTdHJhdGVneSgpCiAgICAgfQogICAgIAogICAgIGVuc3Vy
ZUxheWVyRmlsdGVycygpOwotICAgIG1fZmlsdGVycy0+YnVpbGRGaWx0ZXIocmVuZGVyZXIoKSwg
cGFnZSgpLmRldmljZVNjYWxlRmFjdG9yKCksIHJlbmRlcmVyKCkuc2V0dGluZ3MoKS5hY2NlbGVy
YXRlZEZpbHRlcnNFbmFibGVkKCkgPyBBY2NlbGVyYXRlZCA6IFVuYWNjZWxlcmF0ZWQpOworICAg
IG1fZmlsdGVycy0+YnVpbGRGaWx0ZXIocmVuZGVyZXIoKSwgcGFnZSgpLmRldmljZVNjYWxlRmFj
dG9yKCksIHJlbmRlcmVyKCkuc2V0dGluZ3MoKS5hY2NlbGVyYXRlZEZpbHRlcnNFbmFibGVkKCkg
PyBSZW5kZXJpbmdNb2RlOjpBY2NlbGVyYXRlZCA6IFJlbmRlcmluZ01vZGU6OlVuYWNjZWxlcmF0
ZWQpOwogfQogCiB2b2lkIFJlbmRlckxheWVyOjpmaWx0ZXJOZWVkc1JlcGFpbnQoKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3NoYXBlcy9TaGFwZS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvc2hhcGVzL1NoYXBlLmNwcAppbmRleCA5MTQyMDI5YTJkNDQ2NGRm
NWNiN2IzYTQ0MTkzYmUyODYzYzFlZDJhLi44NTFhODY2Nzg5YjQ4MzU0MjJjNTdhNDFkZGE3NWEw
YmNhZDdkNjc1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc2hhcGVzL1No
YXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc2hhcGVzL1NoYXBlLmNwcApA
QCAtMTgxLDcgKzE4MSw3IEBAIHN0ZDo6dW5pcXVlX3B0cjxTaGFwZT4gU2hhcGU6OmNyZWF0ZVJh
c3RlclNoYXBlKEltYWdlKiBpbWFnZSwgZmxvYXQgdGhyZXNob2xkLCBjCiAgICAgSW50UmVjdCBt
YXJnaW5SZWN0ID0gc25hcHBlZEludFJlY3QobWFyZ2luUik7CiAgICAgYXV0byBpbnRlcnZhbHMg
PSBtYWtlVW5pcXVlPFJhc3RlclNoYXBlSW50ZXJ2YWxzPihtYXJnaW5SZWN0LmhlaWdodCgpLCAt
bWFyZ2luUmVjdC55KCkpOwogICAgIC8vIEZJWE1FICgxNDk0MjApOiBUaGlzIGJ1ZmZlciBzaG91
bGQgbm90IGJlIHVuY29uZGl0aW9uYWxseSB1bmFjY2VsZXJhdGVkLgotICAgIHN0ZDo6dW5pcXVl
X3B0cjxJbWFnZUJ1ZmZlcj4gaW1hZ2VCdWZmZXIgPSBJbWFnZUJ1ZmZlcjo6Y3JlYXRlKGltYWdl
UmVjdC5zaXplKCksIFVuYWNjZWxlcmF0ZWQpOworICAgIHN0ZDo6dW5pcXVlX3B0cjxJbWFnZUJ1
ZmZlcj4gaW1hZ2VCdWZmZXIgPSBJbWFnZUJ1ZmZlcjo6Y3JlYXRlKGltYWdlUmVjdC5zaXplKCks
IFJlbmRlcmluZ01vZGU6OlVuYWNjZWxlcmF0ZWQpOwogCiAgICAgaWYgKGltYWdlQnVmZmVyKSB7
CiAgICAgICAgIEdyYXBoaWNzQ29udGV4dCYgZ3JhcGhpY3NDb250ZXh0ID0gaW1hZ2VCdWZmZXIt
PmNvbnRleHQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVu
ZGVyU1ZHUmVzb3VyY2VDbGlwcGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcv
UmVuZGVyU1ZHUmVzb3VyY2VDbGlwcGVyLmNwcAppbmRleCAwOGU0OTI4MmFkOTNiY2FjZDI5Nzc1
Yjg0NmYwNTlkNWEyY2E3MTNlLi4xZDc3YjYzYzZmZTI4MzEyYWUxMWVkODI1YjUyM2FhY2U3MTdl
YzVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jl
c291cmNlQ2xpcHBlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5k
ZXJTVkdSZXNvdXJjZUNsaXBwZXIuY3BwCkBAIC0xNDIsNyArMTQyLDcgQEAgYm9vbCBSZW5kZXJT
VkdSZXNvdXJjZUNsaXBwZXI6OmFwcGx5Q2xpcHBpbmdUb0NvbnRleHQoUmVuZGVyRWxlbWVudCYg
cmVuZGVyZXIsIGMKIAogICAgIGlmIChzaG91bGRDcmVhdGVDbGlwcGVyTWFza0ltYWdlICYmICFy
ZXBhaW50UmVjdC5pc0VtcHR5KCkpIHsKICAgICAgICAgLy8gRklYTUUgKDE0OTQ2OSk6IFRoaXMg
aW1hZ2UgYnVmZmVyIHNob3VsZCBub3QgYmUgdW5jb25kaXRpb25hbGx5IHVuYWNjZWxlcmF0ZWQu
IE1ha2luZyBpdCBtYXRjaCB0aGUgY29udGV4dCBicmVha3MgbmVzdGVkIGNsaXBwaW5nLCB0aG91
Z2guCi0gICAgICAgIGNsaXBwZXJNYXNrSW1hZ2UgPSBTVkdSZW5kZXJpbmdDb250ZXh0OjpjcmVh
dGVJbWFnZUJ1ZmZlcihyZXBhaW50UmVjdCwgYWJzb2x1dGVUcmFuc2Zvcm0sIENvbG9yU3BhY2U6
OlNSR0IsIFVuYWNjZWxlcmF0ZWQsICZjb250ZXh0KTsKKyAgICAgICAgY2xpcHBlck1hc2tJbWFn
ZSA9IFNWR1JlbmRlcmluZ0NvbnRleHQ6OmNyZWF0ZUltYWdlQnVmZmVyKHJlcGFpbnRSZWN0LCBh
YnNvbHV0ZVRyYW5zZm9ybSwgQ29sb3JTcGFjZTo6U1JHQiwgUmVuZGVyaW5nTW9kZTo6VW5hY2Nl
bGVyYXRlZCwgJmNvbnRleHQpOwogICAgICAgICBpZiAoIWNsaXBwZXJNYXNrSW1hZ2UpCiAgICAg
ICAgICAgICByZXR1cm4gZmFsc2U7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9zdmcvUmVuZGVyU1ZHUmVzb3VyY2VGaWx0ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL3N2Zy9SZW5kZXJTVkdSZXNvdXJjZUZpbHRlci5jcHAKaW5kZXggNzViNTliNjNjM2U0
OTYwYmQ0ZTNiZGJkODc0OTJhOTMyZjQzMTYxYi4uZGRkYmE0MzJkMzc5MzdlYjA0M2E2Y2MxN2Jm
OTMyZTZiNzg5NTQyOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9S
ZW5kZXJTVkdSZXNvdXJjZUZpbHRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L3N2Zy9SZW5kZXJTVkdSZXNvdXJjZUZpbHRlci5jcHAKQEAgLTE5MSw3ICsxOTEsNyBAQCBib29s
IFJlbmRlclNWR1Jlc291cmNlRmlsdGVyOjphcHBseVJlc291cmNlKFJlbmRlckVsZW1lbnQmIHJl
bmRlcmVyLCBjb25zdCBSZW5kZQogICAgIGVmZmVjdGl2ZVRyYW5zZm9ybS5zY2FsZShzY2FsZS53
aWR0aCgpLCBzY2FsZS5oZWlnaHQoKSk7CiAgICAgZWZmZWN0aXZlVHJhbnNmb3JtLm11bHRpcGx5
KGZpbHRlckRhdGEtPnNoZWFyRnJlZUFic29sdXRlVHJhbnNmb3JtKTsKIAotICAgIFJlbmRlcmlu
Z01vZGUgcmVuZGVyaW5nTW9kZSA9IHJlbmRlcmVyLnNldHRpbmdzKCkuYWNjZWxlcmF0ZWRGaWx0
ZXJzRW5hYmxlZCgpID8gQWNjZWxlcmF0ZWQgOiBVbmFjY2VsZXJhdGVkOworICAgIFJlbmRlcmlu
Z01vZGUgcmVuZGVyaW5nTW9kZSA9IHJlbmRlcmVyLnNldHRpbmdzKCkuYWNjZWxlcmF0ZWRGaWx0
ZXJzRW5hYmxlZCgpID8gUmVuZGVyaW5nTW9kZTo6QWNjZWxlcmF0ZWQgOiBSZW5kZXJpbmdNb2Rl
OjpVbmFjY2VsZXJhdGVkOwogICAgIGF1dG8gc291cmNlR3JhcGhpYyA9IFNWR1JlbmRlcmluZ0Nv
bnRleHQ6OmNyZWF0ZUltYWdlQnVmZmVyKGZpbHRlckRhdGEtPmRyYXdpbmdSZWdpb24sIGVmZmVj
dGl2ZVRyYW5zZm9ybSwgQ29sb3JTcGFjZTo6TGluZWFyUkdCLCByZW5kZXJpbmdNb2RlLCBjb250
ZXh0KTsKICAgICBpZiAoIXNvdXJjZUdyYXBoaWMpIHsKICAgICAgICAgQVNTRVJUKCFtX3JlbmRl
cmVyRmlsdGVyRGF0YU1hcC5jb250YWlucygmcmVuZGVyZXIpKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUmVzb3VyY2VNYXNrZXIuY3BwIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdSZXNvdXJjZU1hc2tlci5jcHAKaW5k
ZXggMTc4N2UxOGMyZGNlZjViZGY5OTI0NzRjZmMwMjJiNTE2NmFkNTg0OC4uMTIwYzU3YjU2OTc4
NzIyMDQ2NWJjNmFlYzBiNTgwNGM0NTVjZDgyOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdSZXNvdXJjZU1hc2tlci5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdSZXNvdXJjZU1hc2tlci5jcHAKQEAgLTcxLDcg
KzcxLDcgQEAgYm9vbCBSZW5kZXJTVkdSZXNvdXJjZU1hc2tlcjo6YXBwbHlSZXNvdXJjZShSZW5k
ZXJFbGVtZW50JiByZW5kZXJlciwgY29uc3QgUmVuZGUKICAgICAgICAgY29uc3QgU1ZHUmVuZGVy
U3R5bGUmIHN2Z1N0eWxlID0gc3R5bGUoKS5zdmdTdHlsZSgpOwogICAgICAgICBDb2xvclNwYWNl
IGNvbG9yU3BhY2UgPSBzdmdTdHlsZS5jb2xvckludGVycG9sYXRpb24oKSA9PSBDb2xvckludGVy
cG9sYXRpb246OkxpbmVhclJHQiA/IENvbG9yU3BhY2U6OkxpbmVhclJHQiA6IENvbG9yU3BhY2U6
OlNSR0I7CiAgICAgICAgIC8vIEZJWE1FICgxNDk0NzApOiBUaGlzIGltYWdlIGJ1ZmZlciBzaG91
bGQgbm90IGJlIHVuY29uZGl0aW9uYWxseSB1bmFjY2VsZXJhdGVkLiBNYWtpbmcgaXQgbWF0Y2gg
dGhlIGNvbnRleHQgYnJlYWtzIGFscGhhIG1hc2tpbmcsIHRob3VnaC4KLSAgICAgICAgbWFza2Vy
RGF0YS0+bWFza0ltYWdlID0gU1ZHUmVuZGVyaW5nQ29udGV4dDo6Y3JlYXRlSW1hZ2VCdWZmZXIo
cmVwYWludFJlY3QsIGFic29sdXRlVHJhbnNmb3JtLCBjb2xvclNwYWNlLCBVbmFjY2VsZXJhdGVk
LCBjb250ZXh0KTsKKyAgICAgICAgbWFza2VyRGF0YS0+bWFza0ltYWdlID0gU1ZHUmVuZGVyaW5n
Q29udGV4dDo6Y3JlYXRlSW1hZ2VCdWZmZXIocmVwYWludFJlY3QsIGFic29sdXRlVHJhbnNmb3Jt
LCBjb2xvclNwYWNlLCBSZW5kZXJpbmdNb2RlOjpVbmFjY2VsZXJhdGVkLCBjb250ZXh0KTsKICAg
ICAgICAgaWYgKCFtYXNrZXJEYXRhLT5tYXNrSW1hZ2UpCiAgICAgICAgICAgICByZXR1cm4gZmFs
c2U7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9ncmFwaGljcy9TVkdJbWFnZS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvZ3JhcGhpY3MvU1ZHSW1hZ2UuY3BwCmluZGV4IGI4MjE0
MTFhZGU3NzUwODU2MTY4ODU2ZWQyMmI2MmVhNmI1Y2QzZDkuLjk3ODY3YWFkM2MyN2I1YjUzOGQz
YTc5ZmI0OTVkZGQ0ZjBmNDNkOTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9ncmFw
aGljcy9TVkdJbWFnZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL2dyYXBoaWNzL1NWR0lt
YWdlLmNwcApAQCAtMjE4LDcgKzIxOCw3IEBAIE5hdGl2ZUltYWdlUHRyIFNWR0ltYWdlOjpuYXRp
dmVJbWFnZUZvckN1cnJlbnRGcmFtZShjb25zdCBHcmFwaGljc0NvbnRleHQqKQogICAgICAgICBy
ZXR1cm4gbnVsbHB0cjsKIAogICAgIC8vIENhaXJvIGRvZXMgbm90IHVzZSB0aGUgYWNjZWxlcmF0
ZWQgZHJhd2luZyBmbGFnLCBzbyBpdCdzIE9LIHRvIG1ha2UgYW4gdW5jb25kaXRpb25hbGx5IHVu
YWNjZWxlcmF0ZWQgYnVmZmVyLgotICAgIHN0ZDo6dW5pcXVlX3B0cjxJbWFnZUJ1ZmZlcj4gYnVm
ZmVyID0gSW1hZ2VCdWZmZXI6OmNyZWF0ZShzaXplKCksIFVuYWNjZWxlcmF0ZWQpOworICAgIHN0
ZDo6dW5pcXVlX3B0cjxJbWFnZUJ1ZmZlcj4gYnVmZmVyID0gSW1hZ2VCdWZmZXI6OmNyZWF0ZShz
aXplKCksIFJlbmRlcmluZ01vZGU6OlVuYWNjZWxlcmF0ZWQpOwogICAgIGlmICghYnVmZmVyKSAv
LyBmYWlsZWQgdG8gYWxsb2NhdGUgaW1hZ2UKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNvbnRl
eHRNZW51Q2xpZW50Lm1tIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQv
V2ViQ29udGV4dE1lbnVDbGllbnQubW0KaW5kZXggZWYwMzUwMzQyYmI4MjI0NmNkMTlmMzU0ZDli
Y2MwMjkxZjI5MDQzZC4uMjQwN2YxMDY5YjU3ZmJmNjU5NDg4NzU0MTI4Y2U4ZmFiMWVjYmJmOSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ29u
dGV4dE1lbnVDbGllbnQubW0KKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1
cHBvcnQvV2ViQ29udGV4dE1lbnVDbGllbnQubW0KQEAgLTIwMiw3ICsyMDIsNyBAQCBSZXRhaW5Q
dHI8TlNJbWFnZT4gV2ViQ29udGV4dE1lbnVDbGllbnQ6OmltYWdlRm9yQ3VycmVudFNoYXJpbmdT
ZXJ2aWNlUGlja2VySXRlbQogICAgICAgICByZXR1cm4gbmlsOwogCiAgICAgLy8gVGhpcyBpcyBl
ZmZlY3RpdmVseSBhIHNuYXBzaG90LCBhbmQgd2lsbCBiZSBwYWludGVkIGluIGFuIHVuYWNjZWxl
cmF0ZWQgZmFzaGlvbiBpbiBsaW5lIHdpdGggRnJhbWVTbmFwc2hvdHRpbmcuCi0gICAgc3RkOjp1
bmlxdWVfcHRyPEltYWdlQnVmZmVyPiBidWZmZXIgPSBJbWFnZUJ1ZmZlcjo6Y3JlYXRlKHJlY3Qu
c2l6ZSgpLCBVbmFjY2VsZXJhdGVkKTsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8SW1hZ2VCdWZmZXI+
IGJ1ZmZlciA9IEltYWdlQnVmZmVyOjpjcmVhdGUocmVjdC5zaXplKCksIFJlbmRlcmluZ01vZGU6
OlVuYWNjZWxlcmF0ZWQpOwogICAgIGlmICghYnVmZmVyKQogICAgICAgICByZXR1cm4gbmlsOwog
Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>388279</attachid>
            <date>2020-01-20 22:05:52 -0800</date>
            <delta_ts>2020-01-21 15:37:13 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-206516-20200120220551.patch</filename>
            <type>text/plain</type>
            <size>47540</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU0ODQxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDE0ZjAwY2EzZGFkNjI1
MDkwYjYzMDVkNGE3ZGFjMzhjMWNmMjllNS4uNzg2YTE5N2Y1NmNhNWFkMTgyY2YxMzFmYWE1NWQ0
OWRhOTc2YTU1OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDgzIEBACisyMDIwLTAxLTIwICBTYWlk
IEFib3UtSGFsbGF3YSAgPHNhYm91aGFsbGF3YUBhcHBsZS5jb20+CisKKyAgICAgICAgTWFrZSBS
ZW5kZXJpbmdNb2RlIGFuZCBBbHBoYVByZW11bHRpcGxpY2F0aW9uIGVudW0gY2xhc3NlcyBhbmQg
bW92ZSB0aGVtIHRvIHNlcGFyYXRlIGhlYWRlcnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNjUxNgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIFJlbmRlcmluZ01vZGUgYW5kIEFscGhhUHJlbXVsdGlwbGlj
YXRpb24gbmVlZCB0byBiZSBlbmNvZGVkIGFuZCBkZWNvZGVkCisgICAgICAgIHdoZW4gdGhleSBh
cmUgc2VudCBmcm9tIHRoZSBXZWJQcm9jZXNzIHRvIHRoZSBHUFVQcm9jZXNzLgorCisgICAgICAg
ICogSGVhZGVycy5jbWFrZToKKyAgICAgICAgKiBNb2R1bGVzL2FzeW5jLWNsaXBib2FyZC9DbGlw
Ym9hcmRJdGVtQmluZGluZ3NEYXRhU291cmNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNsaXBi
b2FyZEl0ZW1CaW5kaW5nc0RhdGFTb3VyY2U6OkNsaXBib2FyZEl0ZW1UeXBlTG9hZGVyOjpzYW5p
dGl6ZURhdGFJZk5lZWRlZCk6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qOgorICAgICAgICAqIGJpbmRpbmdzL2pzL1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpDbG9uZURlc2VyaWFsaXplcjo6cmVhZEltYWdlQml0bWFwKToK
KyAgICAgICAgKiBjc3MvQ1NTRmlsdGVySW1hZ2VWYWx1ZS5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpDU1NGaWx0ZXJJbWFnZVZhbHVlOjppbWFnZSk6CisgICAgICAgICogaHRtbC9DdXN0b21QYWlu
dENhbnZhcy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDdXN0b21QYWludENhbnZhczo6Y29waWVk
SW1hZ2UgY29uc3QpOgorICAgICAgICAqIGh0bWwvSFRNTENhbnZhc0VsZW1lbnQuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6SFRNTENhbnZhc0VsZW1lbnQ6OmNyZWF0ZUltYWdlQnVmZmVyIGNvbnN0
KToKKyAgICAgICAgKiBodG1sL0ltYWdlQml0bWFwLmNwcDoKKyAgICAgICAgKiBodG1sL09mZnNj
cmVlbkNhbnZhcy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpPZmZzY3JlZW5DYW52YXM6OnRyYW5z
ZmVyVG9JbWFnZUJpdG1hcCk6CisgICAgICAgIChXZWJDb3JlOjpPZmZzY3JlZW5DYW52YXM6OmNy
ZWF0ZUltYWdlQnVmZmVyIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6Ok9mZnNjcmVlbkNhbnZh
czo6dGFrZUltYWdlQnVmZmVyIGNvbnN0KToKKyAgICAgICAgKiBodG1sL2NhbnZhcy9DYW52YXNS
ZW5kZXJpbmdDb250ZXh0MkRCYXNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNhbnZhc1JlbmRl
cmluZ0NvbnRleHQyREJhc2U6OmNyZWF0ZUNvbXBvc2l0aW5nQnVmZmVyKToKKyAgICAgICAgKFdl
YkNvcmU6OkNhbnZhc1JlbmRlcmluZ0NvbnRleHQyREJhc2U6OmNyZWF0ZVBhdHRlcm4pOgorICAg
ICAgICAqIGh0bWwvY2FudmFzL0ltYWdlQml0bWFwUmVuZGVyaW5nQ29udGV4dC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpJbWFnZUJpdG1hcFJlbmRlcmluZ0NvbnRleHQ6OmlzQWNjZWxlcmF0ZWQg
Y29uc3QpOgorICAgICAgICAqIGh0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2Uu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6TFJVSW1h
Z2VCdWZmZXJDYWNoZTo6aW1hZ2VCdWZmZXIpOgorICAgICAgICAqIGh0bWwvc2hhZG93L01lZGlh
Q29udHJvbEVsZW1lbnRzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhQ29udHJvbFRleHRU
cmFja0NvbnRhaW5lckVsZW1lbnQ6OmNyZWF0ZVRleHRUcmFja1JlcHJlc2VudGF0aW9uSW1hZ2Up
OgorICAgICAgICAqIHBhZ2UvRnJhbWVTbmFwc2hvdHRpbmcuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6c25hcHNob3RGcmFtZVJlY3RXaXRoQ2xpcCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvQWxwaGFQcmVtdWx0aXBsaWNhdGlvbi5oOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9CaXRtYXBJbWFnZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpCaXRtYXBJbWFnZTo6
bmF0aXZlSW1hZ2VGb3JDdXJyZW50RnJhbWVSZXNwZWN0aW5nT3JpZW50YXRpb24pOgorICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dC5oOgorICAgICAgICAoV2ViQ29y
ZTo6R3JhcGhpY3NDb250ZXh0OjpyZW5kZXJpbmdNb2RlIGNvbnN0KToKKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy9HcmFwaGljc1R5cGVzLmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9HcmFwaGljc1R5cGVzLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VC
dWZmZXIuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9SZW5kZXJpbmdNb2RlLmg6IEFk
ZGVkLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL1NoYWRvd0JsdXIuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6U2NyYXRjaEJ1ZmZlcjo6Z2V0U2NyYXRjaEJ1ZmZlcik6CisgICAgICAgIChX
ZWJDb3JlOjpTaGFkb3dCbHVyOjpkcmF3UmVjdFNoYWRvd1dpdGhvdXRUaWxpbmcpOgorICAgICAg
ICAoV2ViQ29yZTo6U2hhZG93Qmx1cjo6ZHJhd0luc2V0U2hhZG93V2l0aG91dFRpbGluZyk6Cisg
ICAgICAgIChXZWJDb3JlOjpTaGFkb3dCbHVyOjpkcmF3UmVjdFNoYWRvd1dpdGhUaWxpbmcpOgor
ICAgICAgICAoV2ViQ29yZTo6U2hhZG93Qmx1cjo6ZHJhd0luc2V0U2hhZG93V2l0aFRpbGluZyk6
CisgICAgICAgIChXZWJDb3JlOjpTaGFkb3dCbHVyOjpkcmF3U2hhZG93TGF5ZXIpOgorICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0ltYWdlQnVmZmVyQ2Fpcm8uY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6SW1hZ2VCdWZmZXJEYXRhOjp+SW1hZ2VCdWZmZXJEYXRhKToKKyAgICAgICAg
KFdlYkNvcmU6OkltYWdlQnVmZmVyOjpJbWFnZUJ1ZmZlcik6CisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvY2cvSW1hZ2VCdWZmZXJDRy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZUJ1
ZmZlcjo6SW1hZ2VCdWZmZXIpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NnL0ltYWdl
QnVmZmVyRGF0YUNHLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GaWx0
ZXIuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvQml0bWFwVGV4dHVyZS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpCaXRtYXBUZXh0dXJlOjp1cGRhdGVDb250ZW50cyk6Cisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0ltYWdlQnVmZmVyRGlyZWN0MkQuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6SW1hZ2VCdWZmZXI6OkltYWdlQnVmZmVyKToKKyAgICAgICAgKiBw
bGF0Zm9ybS9tb2NrL01vY2tSZWFsdGltZVZpZGVvU291cmNlLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6Ok1vY2tSZWFsdGltZVZpZGVvU291cmNlOjppbWFnZUJ1ZmZlciBjb25zdCk6CisgICAgICAg
ICogcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxh
eWVyOjpjYWxjdWxhdGVDbGlwUmVjdHMgY29uc3QpOgorICAgICAgICAqIHJlbmRlcmluZy9zaGFw
ZXMvU2hhcGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2hhcGU6OmNyZWF0ZVJhc3RlclNoYXBl
KToKKyAgICAgICAgKiByZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jlc291cmNlQ2xpcHBlci5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTVkdSZXNvdXJjZUNsaXBwZXI6OmFwcGx5Q2xpcHBp
bmdUb0NvbnRleHQpOgorICAgICAgICAqIHJlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUmVzb3VyY2VG
aWx0ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU1ZHUmVzb3VyY2VGaWx0ZXI6OmFw
cGx5UmVzb3VyY2UpOgorICAgICAgICAqIHJlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUmVzb3VyY2VN
YXNrZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU1ZHUmVzb3VyY2VNYXNrZXI6OmFw
cGx5UmVzb3VyY2UpOgorICAgICAgICAqIHN2Zy9ncmFwaGljcy9TVkdJbWFnZS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpTVkdJbWFnZTo6bmF0aXZlSW1hZ2VGb3JDdXJyZW50RnJhbWUpOgorCiAy
MDIwLTAxLTIwICBTYWlkIEFib3UtSGFsbGF3YSAgPHNhYm91aGFsbGF3YUBhcHBsZS5jb20+CiAK
ICAgICAgICAgRVhJRiBvcmllbnRhdGlvbiBpcyBpZ25vcmVkIGZvciBzb21lIENTUyBpbWFnZXMK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZyBiL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwppbmRleCA2ZmFiMjdjNWYwZDMxOTFiNGFiZTJmYzdm
ZWJkMjI3NzQxMjg2ODJhLi4yOWUyNjNjYWZmODJmOGJkY2Q5MTk3NTA0MmI1MDA3MTAzZWIyM2E2
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMjAtMDEt
MjAgIFNhaWQgQWJvdS1IYWxsYXdhICA8c2Fib3VoYWxsYXdhQGFwcGxlLmNvbT4KKworICAgICAg
ICBNYWtlIFJlbmRlcmluZ01vZGUgYW5kIEFscGhhUHJlbXVsdGlwbGljYXRpb24gZW51bSBjbGFz
c2VzIGFuZCBtb3ZlIHRoZW0gdG8gc2VwYXJhdGUgaGVhZGVycworICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA2NTE2CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJDb250ZXh0
TWVudUNsaWVudC5tbToKKyAgICAgICAgKFdlYkNvbnRleHRNZW51Q2xpZW50OjppbWFnZUZvckN1
cnJlbnRTaGFyaW5nU2VydmljZVBpY2tlckl0ZW0pOgorCiAyMDIwLTAxLTIwICBEYXZpZCBLaWx6
ZXIgIDxkZGtpbHplckBhcHBsZS5jb20+CiAKICAgICAgICAgRml4IG1pc3NpbmcgaGVhZGVyIGd1
YXJkcyBhbmQgY2xlYW4gdXAgZW1wdHkgZmlsZXMgaW4gV2ViQ29yZSwgV2ViS2l0TGVnYWN5LCBX
ZWJLaXQsIFRvb2xzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlIGIv
U291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQppbmRleCBiYjg3ODA2MTgzNzQxZjk2MjY4Mzg2
OGVmYzY4OTEwMmJjNGY0YTJkLi40NTUyYzA1YTczOWY3NTg3OGI2N2ZhNGU2ODgwZTZjNzQ2NWU2
MTk2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKQEAgLTEwMzEsNiArMTAzMSw3IEBAIHNldChXZWJDb3Jl
X1BSSVZBVEVfRlJBTUVXT1JLX0hFQURFUlMKICAgICBwbGF0Zm9ybS9nYW1lcGFkL0dhbWVwYWRQ
cm92aWRlckNsaWVudC5oCiAgICAgcGxhdGZvcm0vZ2FtZXBhZC9QbGF0Zm9ybUdhbWVwYWQuaAog
CisgICAgcGxhdGZvcm0vZ3JhcGhpY3MvQWxwaGFQcmVtdWx0aXBsaWNhdGlvbi5oCiAgICAgcGxh
dGZvcm0vZ3JhcGhpY3MvQU5HTEVXZWJLaXRCcmlkZ2UuaAogICAgIHBsYXRmb3JtL2dyYXBoaWNz
L0F1ZGlvVHJhY2tQcml2YXRlLmgKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9CaXRtYXBJbWFnZS5o
CkBAIC0xMTI4LDYgKzExMjksNyBAQCBzZXQoV2ViQ29yZV9QUklWQVRFX0ZSQU1FV09SS19IRUFE
RVJTCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvUGxhdGZvcm1UaW1lUmFuZ2VzLmgKICAgICBwbGF0
Zm9ybS9ncmFwaGljcy9SZWdpb24uaAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL1JlbW90ZVZpZGVv
U2FtcGxlLmgKKyAgICBwbGF0Zm9ybS9ncmFwaGljcy9SZW5kZXJpbmdNb2RlLmgKICAgICBwbGF0
Zm9ybS9ncmFwaGljcy9Sb3VuZGVkUmVjdC5oCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvU3RyaW5n
VHJ1bmNhdG9yLmgKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9UYWJTaXplLmgKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXN5bmMtY2xpcGJvYXJkL0NsaXBib2FyZEl0ZW1CaW5k
aW5nc0RhdGFTb3VyY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hc3luYy1jbGlwYm9h
cmQvQ2xpcGJvYXJkSXRlbUJpbmRpbmdzRGF0YVNvdXJjZS5jcHAKaW5kZXggNDY0MWQ1ODA4YTUy
N2VjNmUzMGQxY2ZiNmU4MGIyMzFkZDU2ZDZiMC4uNzQ2NWQwZTZhODY2ODczOGY0ZWJkYzU3NGY5
MjZjNzQ4OGU3YWE0ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hc3luYy1j
bGlwYm9hcmQvQ2xpcGJvYXJkSXRlbUJpbmRpbmdzRGF0YVNvdXJjZS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9hc3luYy1jbGlwYm9hcmQvQ2xpcGJvYXJkSXRlbUJpbmRpbmdzRGF0
YVNvdXJjZS5jcHAKQEAgLTI4NCw3ICsyODQsNyBAQCB2b2lkIENsaXBib2FyZEl0ZW1CaW5kaW5n
c0RhdGFTb3VyY2U6OkNsaXBib2FyZEl0ZW1UeXBlTG9hZGVyOjpzYW5pdGl6ZURhdGFJZk5lZQog
CiAgICAgICAgIGF1dG8gYml0bWFwSW1hZ2UgPSBCaXRtYXBJbWFnZTo6Y3JlYXRlKCk7CiAgICAg
ICAgIGJpdG1hcEltYWdlLT5zZXREYXRhKFdURk1vdmUoYnVmZmVyVG9TYW5pdGl6ZSksIHRydWUp
OwotICAgICAgICBhdXRvIGltYWdlQnVmZmVyID0gSW1hZ2VCdWZmZXI6OmNyZWF0ZShiaXRtYXBJ
bWFnZS0+c2l6ZSgpLCBVbmFjY2VsZXJhdGVkKTsKKyAgICAgICAgYXV0byBpbWFnZUJ1ZmZlciA9
IEltYWdlQnVmZmVyOjpjcmVhdGUoYml0bWFwSW1hZ2UtPnNpemUoKSwgUmVuZGVyaW5nTW9kZTo6
VW5hY2NlbGVyYXRlZCk7CiAgICAgICAgIGlmICghaW1hZ2VCdWZmZXIpIHsKICAgICAgICAgICAg
IG1fZGF0YSA9IHsgbnVsbFN0cmluZygpIH07CiAgICAgICAgICAgICByZXR1cm47CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggZDVi
M2NlYWVkZWNkNjMwNjgzYThkODBlOTgyMmIzZGY0MWQ3NjIwZS4uNmVkNGFjMjNhNmQ5YWM5NDRl
YzE4NjRiYzY0OTdiMjc1Zjg1YTQ4MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMjE0MSw2ICsyMTQxLDggQEAKIAkJNzI0RUQz
MzIxQTNBOEIyMzAwRjVGMTNDIC8qIEpTRVhUQmxlbmRNaW5NYXguaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDcyNEVEMzMwMUEzQThCMjMwMEY1RjEzQyAv
KiBKU0VYVEJsZW5kTWluTWF4LmggKi87IH07CiAJCTcyNEVFNTUwMURDODBEN0YwMEE5MUZGQiAv
KiBBY3Rpdml0eVN0YXRlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA3MjRFRTU0RTFEQzdGMjVCMDBBOTFGRkIgLyogQWN0aXZpdHlTdGF0ZS5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTcyNEVFNTUxMURD
ODBEODQwMEE5MUZGQiAvKiBBY3Rpdml0eVN0YXRlQ2hhbmdlT2JzZXJ2ZXIuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDcyNEVFNTRGMURDN0YyNUIwMEE5
MUZGQiAvKiBBY3Rpdml0eVN0YXRlQ2hhbmdlT2JzZXJ2ZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRU
UklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk3Mjk5QkM2NzIzRDZBNTMyMDBDQzY4ODMg
LyogQWxwaGFQcmVtdWx0aXBsaWNhdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNzI5OUJDNjQyM0Q2ODZBNjAwQ0M2ODgzIC8qIEFscGhhUHJlbXVs
dGlwbGljYXRpb24uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OworCQk3Mjk5QkM2ODIzRDZBNTNFMDBDQzY4ODMgLyogUmVuZGVyaW5nTW9kZS5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzI5OUJDNjYyM0Q2ODZD
NjAwQ0M2ODgzIC8qIFJlbmRlcmluZ01vZGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OwogCQk3NTUzQ0ZFODEwOEY0NzNGMDBFQTI4MUUgLyogVGltZWxp
bmVSZWNvcmRGYWN0b3J5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA3NTUzQ0ZFNjEwOEY0NzNGMDBFQTI4MUUgLyogVGltZWxpbmVSZWNvcmRGYWN0b3J5
LmggKi87IH07CiAJCTc1NzkzRTg0MEQwQ0UwQjMwMDdGQzBBQyAvKiBNZXNzYWdlRXZlbnQuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDc1NzkzRTgxMEQw
Q0UwQjMwMDdGQzBBQyAvKiBNZXNzYWdlRXZlbnQuaCAqLzsgfTsKIAkJNzU3OTNFQzkwRDBDRTcy
RDAwN0ZDMEFDIC8qIEpTTWVzc2FnZUV2ZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA3NTc5M0VDNzBEMENFNzJEMDA3RkMwQUMgLyogSlNNZXNzYWdl
RXZlbnQuaCAqLzsgfTsKQEAgLTk2NDAsNiArOTY0Miw4IEBACiAJCTcyN0FGRUQxMUEyRUE2QTAw
MDA0NDJFOCAvKiBFWFRzUkdCLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IEVYVHNSR0IuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3MjdBRkVEMjFB
MkVBNkEwMDAwNDQyRTggLyogRVhUc1JHQi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBFWFRzUkdCLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTcyN0FGRUQzMUEy
RUE2QTAwMDA0NDJFOCAvKiBFWFRzUkdCLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBFWFRz
UkdCLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNzI5OUJDNjQyM0Q2ODZBNjAw
Q0M2ODgzIC8qIEFscGhhUHJlbXVsdGlwbGljYXRpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQWxwaGFQ
cmVtdWx0aXBsaWNhdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk3Mjk5QkM2
NjIzRDY4NkM2MDBDQzY4ODMgLyogUmVuZGVyaW5nTW9kZS5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW5k
ZXJpbmdNb2RlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTcyQzE4QTNGMjMwQjA0
QjcwMDY4NDdDNyAvKiBJbWFnZVBhaW50aW5nT3B0aW9ucy5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJbWFn
ZVBhaW50aW5nT3B0aW9ucy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3MkU0MTc2
MTFBMkU4RDJGMDA0QzU2MkEgLyogSlNFWFRzUkdCLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IEpTRVhUc1JHQi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTcyRTQxNzYyMUEyRThEMkYwMDRDNTYyQSAvKiBKU0VYVHNSR0IuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gSlNFWFRzUkdCLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CkBAIC0yNTAxMiw2ICsyNTAxNiw3IEBACiAJCQkJRkJDMjIwREQxMjM3RkJFQjAwQkNGNzg4
IC8qIG9wZW5nbCAqLywKIAkJCQkzNzIxNDkzMzE4RjBCNkQ2MDAxNTZFREMgLyogb3BlbnR5cGUg
Ki8sCiAJCQkJNDlFOTExQjIwRUY4NkQyNzAwOUQwQ0FGIC8qIHRyYW5zZm9ybXMgKi8sCisJCQkJ
NzI5OUJDNjQyM0Q2ODZBNjAwQ0M2ODgzIC8qIEFscGhhUHJlbXVsdGlwbGljYXRpb24uaCAqLywK
IAkJCQk0OTA3MDdFNDEyMTlDMDQzMDBEOTBFNTEgLyogQU5HTEVXZWJLaXRCcmlkZ2UuY3BwICov
LAogCQkJCTQ5MDcwN0U1MTIxOUMwNDMwMEQ5MEU1MSAvKiBBTkdMRVdlYktpdEJyaWRnZS5oICov
LAogCQkJCUJFRjI5RUU5MTcxNUREMDkwMEM0QjRDOSAvKiBBdWRpb1RyYWNrUHJpdmF0ZS5oICov
LApAQCAtMjUxODgsNiArMjUxOTMsNyBAQAogCQkJCUJDQUI0MTgwMTNFMzU2RTgwMEQ4QUFGMyAv
KiBSZWdpb24uaCAqLywKIAkJCQkwNzNBMTU1MTIxNzdBMzk4MDBFQTA4RjIgLyogUmVtb3RlVmlk
ZW9TYW1wbGUuY3BwICovLAogCQkJCTA3M0ExNTUzMjE3N0EzOUEwMEVBMDhGMiAvKiBSZW1vdGVW
aWRlb1NhbXBsZS5oICovLAorCQkJCTcyOTlCQzY2MjNENjg2QzYwMENDNjg4MyAvKiBSZW5kZXJp
bmdNb2RlLmggKi8sCiAJCQkJQTczRjk1RkMxMkM5N0JGRTAwMzFBQUY5IC8qIFJvdW5kZWRSZWN0
LmNwcCAqLywKIAkJCQlBNzNGOTVGRDEyQzk3QkZFMDAzMUFBRjkgLyogUm91bmRlZFJlY3QuaCAq
LywKIAkJCQkwRjNERDQ0RDEyRjVFQTFCMDAwRDkxOTAgLyogU2hhZG93Qmx1ci5jcHAgKi8sCkBA
IC0yOTAzOSw2ICsyOTA0NSw3IEBACiAJCQkJQkNGN0U0OTExMzdDRDdDNzAwMUREQUU3IC8qIEFk
anVzdFZpZXdTaXplT3JOb3QuaCBpbiBIZWFkZXJzICovLAogCQkJCTg0RDBDNDA2MTExNUYxRUEw
MDE4QUEzNCAvKiBBZmZpbmVUcmFuc2Zvcm0uaCBpbiBIZWFkZXJzICovLAogCQkJCTgzQkI1Qzg4
MUQ1RDZGNDUwMDVBNzFGNCAvKiBBbGxEZXNjZW5kYW50c0NvbGxlY3Rpb24uaCBpbiBIZWFkZXJz
ICovLAorCQkJCTcyOTlCQzY3MjNENkE1MzIwMENDNjg4MyAvKiBBbHBoYVByZW11bHRpcGxpY2F0
aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQlDRURBMTJENzE1MkNBMUNCMDBEOUUwOEQgLyogQWx0
ZXJuYXRpdmVUZXh0Q2xpZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlDRTA4QzNEMjE1MkI1OTlB
MDAyMUI4QzIgLyogQWx0ZXJuYXRpdmVUZXh0Q29udHJvbGxlci5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJQ0U3QjJEQjMxNTg2QUJBRDAwOThCM0ZBIC8qIEFsdGVybmF0aXZlVGV4dFVJQ29udHJvbGxl
ci5oIGluIEhlYWRlcnMgKi8sCkBAIC0zMTM2OCw2ICszMTM3NSw3IEBACiAJCQkJMTE5OUZBNDYy
MDhFMzVBMzAwMjM1OENDIC8qIExheW91dENvbnRhaW5lci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
NkYyNkJCNkMyMzM0M0U2RjAwMkYyQkVBIC8qIExheW91dENvbnRleHQuaCBpbiBIZWFkZXJzICov
LAogCQkJCTExMzEwQ0Y1MjBCQTRBNEMwMDY1QThEMCAvKiBMYXlvdXREZXNjZW5kYW50SXRlcmF0
b3IuaCBpbiBIZWFkZXJzICovLAorCQkJCUU0MTgwMjU1MjNENDU0OUIwMEZGQjA3MSAvKiBMYXlv
dXRJbnRlZ3JhdGlvbkJveFRyZWUuaCBpbiBIZWFkZXJzICovLAogCQkJCUU0QUJBQkREMjM2MDg4
RkUwMEZBNDM0NSAvKiBMYXlvdXRJbnRlZ3JhdGlvbkxpbmVMYXlvdXQuaCBpbiBIZWFkZXJzICov
LAogCQkJCTExMzEwQ0Y0MjBCQTRBM0QwMDY1QThEMCAvKiBMYXlvdXRJdGVyYXRvci5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJOTMxRDcyRjYxNUZFNjk1MzAwQzRDMDdFIC8qIExheW91dE1pbGVzdG9u
ZS5oIGluIEhlYWRlcnMgKi8sCkBAIC0zMjAxMiw2ICszMjAyMCw3IEBACiAJCQkJQkNFQTQ4NzYw
OTdEOTMwMjAwOTRDOUU0IC8qIFJlbmRlckltYWdlLmggaW4gSGVhZGVycyAqLywKIAkJCQkwOEYy
RjAwQTEyMTNFNjE3MDBEQ0VDNDggLyogUmVuZGVySW1hZ2VSZXNvdXJjZS5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJMDg2NDFENDgxMjE0MkY3RDAwOERFOUY2IC8qIFJlbmRlckltYWdlUmVzb3VyY2VT
dHlsZUltYWdlLmggaW4gSGVhZGVycyAqLywKKwkJCQk3Mjk5QkM2ODIzRDZBNTNFMDBDQzY4ODMg
LyogUmVuZGVyaW5nTW9kZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTU2QzdDNEIyMjEyMzk5NzAw
OUIwNkNBIC8qIFJlbmRlcmluZ1VwZGF0ZVNjaGVkdWxlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
QkNFQTQ4NzgwOTdEOTMwMjAwOTRDOUU0IC8qIFJlbmRlcklubGluZS5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJQjU5NUZGNDcxODI0Q0VFMzAwRkY1MUNEIC8qIFJlbmRlckl0ZXJhdG9yLmggaW4gSGVh
ZGVycyAqLywKQEAgLTMyMDYyLDcgKzMyMDcxLDYgQEAKIAkJCQk0NThGRTQwQTE1ODlERjBCMDA1
NjA5RTYgLyogUmVuZGVyU2VhcmNoRmllbGQuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGMTFBNTRG
MEYzOTIzMzEwMEMzNzg4NCAvKiBSZW5kZXJTZWxlY3Rpb25JbmZvLmggaW4gSGVhZGVycyAqLywK
IAkJCQlBQjI0N0E2RDBBRkQ2MzgzMDAzRkE1RkQgLyogUmVuZGVyU2xpZGVyLmggaW4gSGVhZGVy
cyAqLywKLQkJCQlFNDE4MDI1NTIzRDQ1NDlCMDBGRkIwNzEgLyogTGF5b3V0SW50ZWdyYXRpb25C
b3hUcmVlLmggaW4gSGVhZGVycyAqLywKIAkJCQkzMTk1NUE4ODE2MEQxOTkyMDA4NTgwMjUgLyog
UmVuZGVyU25hcHNob3R0ZWRQbHVnSW4uaCBpbiBIZWFkZXJzICovLAogCQkJCUJDOEM4RkFFMERE
Q0QzMUIwMEI1OTJGNCAvKiBSZW5kZXJTdHlsZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkM1RUI2
NjgwRTgxQ0I3MTAwQjI1OTY1IC8qIFJlbmRlclN0eWxlQ29uc3RhbnRzLmggaW4gSGVhZGVycyAq
LywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NlcmlhbGl6ZWRTY3Jp
cHRWYWx1ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TZXJpYWxpemVkU2NyaXB0
VmFsdWUuY3BwCmluZGV4IDY0ZGZmMmQ5ODRlZjcyZGQ5ZWJhNTEwMjQwNjEwZmMxOGUyMWQ5NDcu
LmVkYTE3MTdkZGZmZDdlYjBiYzNmODcwMmI4MjkzZTg5OWJkNWNlN2IgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2VyaWFsaXplZFNjcmlwdFZhbHVlLmNwcApAQCAt
Mjc4NSw3ICsyNzg1LDcgQEAgcHJpdmF0ZToKICAgICAgICAgICAgIHJldHVybiBKU1ZhbHVlKCk7
CiAgICAgICAgIH0KIAotICAgICAgICBhdXRvIGJ1ZmZlciA9IEltYWdlQnVmZmVyOjpjcmVhdGUo
RmxvYXRTaXplKGxvZ2ljYWxXaWR0aCwgbG9naWNhbEhlaWdodCksIFVuYWNjZWxlcmF0ZWQsIHJl
c29sdXRpb25TY2FsZSk7CisgICAgICAgIGF1dG8gYnVmZmVyID0gSW1hZ2VCdWZmZXI6OmNyZWF0
ZShGbG9hdFNpemUobG9naWNhbFdpZHRoLCBsb2dpY2FsSGVpZ2h0KSwgUmVuZGVyaW5nTW9kZTo6
VW5hY2NlbGVyYXRlZCwgcmVzb2x1dGlvblNjYWxlKTsKICAgICAgICAgaWYgKCFidWZmZXIpIHsK
ICAgICAgICAgICAgIGZhaWwoKTsKICAgICAgICAgICAgIHJldHVybiBKU1ZhbHVlKCk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRmlsdGVySW1hZ2VWYWx1ZS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvQ1NTRmlsdGVySW1hZ2VWYWx1ZS5jcHAKaW5kZXggZTViOGFiNDY5Y2Vj
NGJjMDU4YzQzN2QxOTk1MDQwYjUwMjFjNzQzMS4uMmZhNTNhYTM4YzFmY2MxMTczNTZhZjlmMTU1
ZDAxNWQ0NDM3ZjBjZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ZpbHRlcklt
YWdlVmFsdWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NGaWx0ZXJJbWFnZVZhbHVl
LmNwcApAQCAtMTE2LDcgKzExNiw3IEBAIFJlZlB0cjxJbWFnZT4gQ1NTRmlsdGVySW1hZ2VWYWx1
ZTo6aW1hZ2UoUmVuZGVyRWxlbWVudCYgcmVuZGVyZXIsIGNvbnN0IEZsb2F0U2l6CiAKICAgICAv
LyBUcmFuc2Zvcm0gSW1hZ2UgaW50byBJbWFnZUJ1ZmZlci4KICAgICAvLyBGSVhNRSAoMTQ5NDI0
KTogVGhpcyBidWZmZXIgc2hvdWxkIG5vdCBiZSB1bmNvbmRpdGlvbmFsbHkgdW5hY2NlbGVyYXRl
ZC4KLSAgICBhdXRvIHRleHR1cmUgPSBJbWFnZUJ1ZmZlcjo6Y3JlYXRlKHNpemUsIFVuYWNjZWxl
cmF0ZWQpOworICAgIGF1dG8gdGV4dHVyZSA9IEltYWdlQnVmZmVyOjpjcmVhdGUoc2l6ZSwgUmVu
ZGVyaW5nTW9kZTo6VW5hY2NlbGVyYXRlZCk7CiAgICAgaWYgKCF0ZXh0dXJlKQogICAgICAgICBy
ZXR1cm4gJkltYWdlOjpudWxsSW1hZ2UoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aHRtbC9DdXN0b21QYWludENhbnZhcy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0N1c3RvbVBh
aW50Q2FudmFzLmNwcAppbmRleCBmNGI3NzA3ZTk3YThmZTUxZjhlMjU3NzU4YWRlNGI2ZGRmZjUw
MmU1Li4xNDc3NjJmNTUyNDJlNjMxNTQ5ZGRiMGEwNjc0YTYyMWZlOGNmM2Q1IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL0N1c3RvbVBhaW50Q2FudmFzLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0N1c3RvbVBhaW50Q2FudmFzLmNwcApAQCAtOTMsNyArOTMsNyBAQCBJbWFn
ZSogQ3VzdG9tUGFpbnRDYW52YXM6OmNvcGllZEltYWdlKCkgY29uc3QKICAgICBpZiAoIXdpZHRo
KCkgfHwgIWhlaWdodCgpKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAotICAgIG1fY29waWVk
QnVmZmVyID0gSW1hZ2VCdWZmZXI6OmNyZWF0ZShzaXplKCksIFVuYWNjZWxlcmF0ZWQsIDEsIENv
bG9yU3BhY2U6OlNSR0IsIG51bGxwdHIpOworICAgIG1fY29waWVkQnVmZmVyID0gSW1hZ2VCdWZm
ZXI6OmNyZWF0ZShzaXplKCksIFJlbmRlcmluZ01vZGU6OlVuYWNjZWxlcmF0ZWQsIDEsIENvbG9y
U3BhY2U6OlNSR0IsIG51bGxwdHIpOwogICAgIGlmICghbV9jb3BpZWRCdWZmZXIpCiAgICAgICAg
IHJldHVybiBudWxscHRyOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxD
YW52YXNFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENhbnZhc0VsZW1lbnQu
Y3BwCmluZGV4IDIzZDliMzRlODQ4ZjZkMDFkMzRhOWRhZmZiYTMwNTBmYzdhNzEzMTYuLmI4NDQ0
NzFkN2E4ZWE4NWM4ODMyMmIxMjljNDBhMTgwNDk2MWI3NTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTENhbnZhc0VsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTENhbnZhc0VsZW1lbnQuY3BwCkBAIC04ODUsNyArODg1LDcgQEAgdm9pZCBIVE1MQ2Fu
dmFzRWxlbWVudDo6Y3JlYXRlSW1hZ2VCdWZmZXIoKSBjb25zdAogICAgIGlmICghd2lkdGgoKSB8
fCAhaGVpZ2h0KCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIFJlbmRlcmluZ01vZGUgcmVuZGVy
aW5nTW9kZSA9IHNob3VsZEFjY2VsZXJhdGUoc2l6ZSgpKSA/IEFjY2VsZXJhdGVkIDogVW5hY2Nl
bGVyYXRlZDsKKyAgICBSZW5kZXJpbmdNb2RlIHJlbmRlcmluZ01vZGUgPSBzaG91bGRBY2NlbGVy
YXRlKHNpemUoKSkgPyBSZW5kZXJpbmdNb2RlOjpBY2NlbGVyYXRlZCA6IFJlbmRlcmluZ01vZGU6
OlVuYWNjZWxlcmF0ZWQ7CiAKICAgICBhdXRvIGhvc3RXaW5kb3cgPSAoZG9jdW1lbnQoKS52aWV3
KCkgJiYgZG9jdW1lbnQoKS52aWV3KCktPnJvb3QoKSkgPyBkb2N1bWVudCgpLnZpZXcoKS0+cm9v
dCgpLT5ob3N0V2luZG93KCkgOiBudWxscHRyOwogICAgIHNldEltYWdlQnVmZmVyKEltYWdlQnVm
ZmVyOjpjcmVhdGUoc2l6ZSgpLCByZW5kZXJpbmdNb2RlLCAxLCBDb2xvclNwYWNlOjpTUkdCLCBo
b3N0V2luZG93KSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0ltYWdlQml0bWFw
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW1hZ2VCaXRtYXAuY3BwCmluZGV4IDVmNDlmNzM5
YTFmNWMzYmUwZWUxNzFmMzRmOTYzZTAyNjZiYzQ0OTIuLjJiODE5ODllOGZkNjJlZmUzNDUzODdh
OTAyZmU2OTJiMzA5OTU0ZmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW1hZ2VC
aXRtYXAuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW1hZ2VCaXRtYXAuY3BwCkBAIC02
MSw5ICs2MSw5IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIFdURl9NQUtFX0lTT19BTExPQ0FURURf
SU1QTChJbWFnZUJpdG1hcCk7CiAKICNpZiBVU0UoSU9TVVJGQUNFX0NBTlZBU19CQUNLSU5HX1NU
T1JFKSB8fCBFTkFCTEUoQUNDRUxFUkFURURfMkRfQ0FOVkFTKQotc3RhdGljIFJlbmRlcmluZ01v
ZGUgYnVmZmVyUmVuZGVyaW5nTW9kZSA9IEFjY2VsZXJhdGVkOworc3RhdGljIFJlbmRlcmluZ01v
ZGUgYnVmZmVyUmVuZGVyaW5nTW9kZSA9IFJlbmRlcmluZ01vZGU6OkFjY2VsZXJhdGVkOwogI2Vs
c2UKLXN0YXRpYyBSZW5kZXJpbmdNb2RlIGJ1ZmZlclJlbmRlcmluZ01vZGUgPSBVbmFjY2VsZXJh
dGVkOworc3RhdGljIFJlbmRlcmluZ01vZGUgYnVmZmVyUmVuZGVyaW5nTW9kZSA9IFJlbmRlcmlu
Z01vZGU6OlVuYWNjZWxlcmF0ZWQ7CiAjZW5kaWYKIAogUmVmPEltYWdlQml0bWFwPiBJbWFnZUJp
dG1hcDo6Y3JlYXRlKEludFNpemUgc2l6ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvT2Zmc2NyZWVuQ2FudmFzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvT2Zmc2NyZWVuQ2Fu
dmFzLmNwcAppbmRleCBmNzQ0ODUxMjAwMTU3NWI0YWY0YmJhMjRlYWE1N2FiZTZhMDY0M2M5Li43
NTVmMTFlZjg5ZTExODFiZTA2ZDVlYTJmMDA3ODY5NmUzOWJlNGQxIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL09mZnNjcmVlbkNhbnZhcy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9PZmZzY3JlZW5DYW52YXMuY3BwCkBAIC0xMjYsNyArMTI2LDcgQEAgRXhjZXB0aW9uT3I8
UmVmUHRyPEltYWdlQml0bWFwPj4gT2Zmc2NyZWVuQ2FudmFzOjp0cmFuc2ZlclRvSW1hZ2VCaXRt
YXAoKQogICAgICAgICAgICAgcmV0dXJuIHsgUmVmUHRyPEltYWdlQml0bWFwPiB7IG51bGxwdHIg
fSB9OwogCiAgICAgICAgIGlmICghbV9oYXNDcmVhdGVkSW1hZ2VCdWZmZXIpCi0gICAgICAgICAg
ICByZXR1cm4geyBJbWFnZUJpdG1hcDo6Y3JlYXRlKHsgSW1hZ2VCdWZmZXI6OmNyZWF0ZShzaXpl
KCksIFVuYWNjZWxlcmF0ZWQpLCB0cnVlIH0pIH07CisgICAgICAgICAgICByZXR1cm4geyBJbWFn
ZUJpdG1hcDo6Y3JlYXRlKHsgSW1hZ2VCdWZmZXI6OmNyZWF0ZShzaXplKCksIFJlbmRlcmluZ01v
ZGU6OlVuYWNjZWxlcmF0ZWQpLCB0cnVlIH0pIH07CiAKICAgICAgICAgYXV0byBidWZmZXIgPSB0
YWtlSW1hZ2VCdWZmZXIoKTsKICAgICAgICAgaWYgKCFidWZmZXIpCkBAIC0yNDMsNyArMjQzLDcg
QEAgdm9pZCBPZmZzY3JlZW5DYW52YXM6OmNyZWF0ZUltYWdlQnVmZmVyKCkgY29uc3QKICAgICBp
ZiAoIXdpZHRoKCkgfHwgIWhlaWdodCgpKQogICAgICAgICByZXR1cm47CiAKLSAgICBzZXRJbWFn
ZUJ1ZmZlcihJbWFnZUJ1ZmZlcjo6Y3JlYXRlKHNpemUoKSwgVW5hY2NlbGVyYXRlZCkpOworICAg
IHNldEltYWdlQnVmZmVyKEltYWdlQnVmZmVyOjpjcmVhdGUoc2l6ZSgpLCBSZW5kZXJpbmdNb2Rl
OjpVbmFjY2VsZXJhdGVkKSk7CiB9CiAKIHN0ZDo6dW5pcXVlX3B0cjxJbWFnZUJ1ZmZlcj4gT2Zm
c2NyZWVuQ2FudmFzOjp0YWtlSW1hZ2VCdWZmZXIoKSBjb25zdApAQCAtMjU3LDcgKzI1Nyw3IEBA
IHN0ZDo6dW5pcXVlX3B0cjxJbWFnZUJ1ZmZlcj4gT2Zmc2NyZWVuQ2FudmFzOjp0YWtlSW1hZ2VC
dWZmZXIoKSBjb25zdAogICAgIGlmIChzaXplKCkuaXNFbXB0eSgpKQogICAgICAgICByZXR1cm4g
bnVsbHB0cjsKIAotICAgIHJldHVybiBzZXRJbWFnZUJ1ZmZlcihJbWFnZUJ1ZmZlcjo6Y3JlYXRl
KHNpemUoKSwgVW5hY2NlbGVyYXRlZCkpOworICAgIHJldHVybiBzZXRJbWFnZUJ1ZmZlcihJbWFn
ZUJ1ZmZlcjo6Y3JlYXRlKHNpemUoKSwgUmVuZGVyaW5nTW9kZTo6VW5hY2NlbGVyYXRlZCkpOwog
fQogCiB2b2lkIE9mZnNjcmVlbkNhbnZhczo6cmVzZXQoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEQmFzZS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0MkRCYXNlLmNwcApp
bmRleCA4OWQ4ZjQyNDNiMmI5MmRmYmNiMzJhYTIyMWI3NTNjOTNmMWY1OTQxLi5kNDk0NzEyMDgz
MjMxMGM3YzBkN2JlZjFjODc5ZGEzZmZiMjkzZjBhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0MkRCYXNlLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0MkRCYXNlLmNwcApA
QCAtMTgwNiw3ICsxODA2LDcgQEAgdGVtcGxhdGU8Y2xhc3MgVD4gSW50UmVjdCBDYW52YXNSZW5k
ZXJpbmdDb250ZXh0MkRCYXNlOjpjYWxjdWxhdGVDb21wb3NpdGluZ0J1ZmYKIAogc3RkOjp1bmlx
dWVfcHRyPEltYWdlQnVmZmVyPiBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkRCYXNlOjpjcmVhdGVD
b21wb3NpdGluZ0J1ZmZlcihjb25zdCBJbnRSZWN0JiBidWZmZXJSZWN0KQogewotICAgIHJldHVy
biBJbWFnZUJ1ZmZlcjo6Y3JlYXRlKGJ1ZmZlclJlY3Quc2l6ZSgpLCBpc0FjY2VsZXJhdGVkKCkg
PyBBY2NlbGVyYXRlZCA6IFVuYWNjZWxlcmF0ZWQpOworICAgIHJldHVybiBJbWFnZUJ1ZmZlcjo6
Y3JlYXRlKGJ1ZmZlclJlY3Quc2l6ZSgpLCBpc0FjY2VsZXJhdGVkKCkgPyBSZW5kZXJpbmdNb2Rl
OjpBY2NlbGVyYXRlZCA6IFJlbmRlcmluZ01vZGU6OlVuYWNjZWxlcmF0ZWQpOwogfQogCiB2b2lk
IENhbnZhc1JlbmRlcmluZ0NvbnRleHQyREJhc2U6OmNvbXBvc2l0ZUJ1ZmZlcihJbWFnZUJ1ZmZl
ciYgYnVmZmVyLCBjb25zdCBJbnRSZWN0JiBidWZmZXJSZWN0LCBDb21wb3NpdGVPcGVyYXRvciBv
cCkKQEAgLTE5OTAsNyArMTk5MCw3IEBAIEV4Y2VwdGlvbk9yPFJlZlB0cjxDYW52YXNQYXR0ZXJu
Pj4gQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEQmFzZTo6Y3JlYXRlUGF0dGVybihICiAgICAgICAg
IHJldHVybiBSZWZQdHI8Q2FudmFzUGF0dGVybj4geyBDYW52YXNQYXR0ZXJuOjpjcmVhdGUoQml0
bWFwSW1hZ2U6OmNyZWF0ZShXVEZNb3ZlKG5hdGl2ZUltYWdlKSksIHJlcGVhdFgsIHJlcGVhdFks
IG9yaWdpbkNsZWFuKSB9OwogI2VuZGlmCiAKLSAgICBhdXRvIGltYWdlQnVmZmVyID0gSW1hZ2VC
dWZmZXI6OmNyZWF0ZShzaXplKHZpZGVvRWxlbWVudCksIGRyYXdpbmdDb250ZXh0KCkgPyBkcmF3
aW5nQ29udGV4dCgpLT5yZW5kZXJpbmdNb2RlKCkgOiBBY2NlbGVyYXRlZCk7CisgICAgYXV0byBp
bWFnZUJ1ZmZlciA9IEltYWdlQnVmZmVyOjpjcmVhdGUoc2l6ZSh2aWRlb0VsZW1lbnQpLCBkcmF3
aW5nQ29udGV4dCgpID8gZHJhd2luZ0NvbnRleHQoKS0+cmVuZGVyaW5nTW9kZSgpIDogUmVuZGVy
aW5nTW9kZTo6QWNjZWxlcmF0ZWQpOwogICAgIGlmICghaW1hZ2VCdWZmZXIpCiAgICAgICAgIHJl
dHVybiBudWxscHRyOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9J
bWFnZUJpdG1hcFJlbmRlcmluZ0NvbnRleHQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52
YXMvSW1hZ2VCaXRtYXBSZW5kZXJpbmdDb250ZXh0LmNwcAppbmRleCAxNGVhMzdkOGQ3ZWFmYjAx
YjVjNGNlMTllYmU3NmM1MThjZmNkNGE4Li5iNTFiNGRiZjEzZWU1MDZlYjk0OThjNDNlZjQ1Yzk0
NGRkNzNlMGE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9JbWFnZUJp
dG1hcFJlbmRlcmluZ0NvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFz
L0ltYWdlQml0bWFwUmVuZGVyaW5nQ29udGV4dC5jcHAKQEAgLTM2LDkgKzM2LDkgQEAgbmFtZXNw
YWNlIFdlYkNvcmUgewogV1RGX01BS0VfSVNPX0FMTE9DQVRFRF9JTVBMKEltYWdlQml0bWFwUmVu
ZGVyaW5nQ29udGV4dCk7CiAKICNpZiBVU0UoSU9TVVJGQUNFX0NBTlZBU19CQUNLSU5HX1NUT1JF
KSB8fCBFTkFCTEUoQUNDRUxFUkFURURfMkRfQ0FOVkFTKQotc3RhdGljIFJlbmRlcmluZ01vZGUg
YnVmZmVyUmVuZGVyaW5nTW9kZSA9IEFjY2VsZXJhdGVkOworc3RhdGljIFJlbmRlcmluZ01vZGUg
YnVmZmVyUmVuZGVyaW5nTW9kZSA9IFJlbmRlcmluZ01vZGU6OkFjY2VsZXJhdGVkOwogI2Vsc2UK
LXN0YXRpYyBSZW5kZXJpbmdNb2RlIGJ1ZmZlclJlbmRlcmluZ01vZGUgPSBVbmFjY2VsZXJhdGVk
Oworc3RhdGljIFJlbmRlcmluZ01vZGUgYnVmZmVyUmVuZGVyaW5nTW9kZSA9IFJlbmRlcmluZ01v
ZGU6OlVuYWNjZWxlcmF0ZWQ7CiAjZW5kaWYKIAogc3RkOjp1bmlxdWVfcHRyPEltYWdlQml0bWFw
UmVuZGVyaW5nQ29udGV4dD4gSW1hZ2VCaXRtYXBSZW5kZXJpbmdDb250ZXh0OjpjcmVhdGUoQ2Fu
dmFzQmFzZSYgY2FudmFzLCBJbWFnZUJpdG1hcFJlbmRlcmluZ0NvbnRleHRTZXR0aW5ncyYmIHNl
dHRpbmdzKQpAQCAtNjksNyArNjksNyBAQCBIVE1MQ2FudmFzRWxlbWVudCogSW1hZ2VCaXRtYXBS
ZW5kZXJpbmdDb250ZXh0OjpjYW52YXMoKSBjb25zdAogCiBib29sIEltYWdlQml0bWFwUmVuZGVy
aW5nQ29udGV4dDo6aXNBY2NlbGVyYXRlZCgpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIGJ1ZmZlclJl
bmRlcmluZ01vZGUgPT0gQWNjZWxlcmF0ZWQ7CisgICAgcmV0dXJuIGJ1ZmZlclJlbmRlcmluZ01v
ZGUgPT0gUmVuZGVyaW5nTW9kZTo6QWNjZWxlcmF0ZWQ7CiB9CiAKIHZvaWQgSW1hZ2VCaXRtYXBS
ZW5kZXJpbmdDb250ZXh0OjpzZXRPdXRwdXRCaXRtYXAoUmVmUHRyPEltYWdlQml0bWFwPiBpbWFn
ZUJpdG1hcCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVu
ZGVyaW5nQ29udGV4dEJhc2UuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xS
ZW5kZXJpbmdDb250ZXh0QmFzZS5jcHAKaW5kZXggNjdjYTUzYzQ3ZWVhMDA4YmVhM2Y2MWRmOTZl
NzM4OWNhZWNhNmRlYS4uNDI4ODIxNjQ0OThkZmMxODU2OTQ3YjE2YzNhMjlhODYzN2ZkOTUwYSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250
ZXh0QmFzZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJp
bmdDb250ZXh0QmFzZS5jcHAKQEAgLTYzODYsNyArNjM4Niw3IEBAIEltYWdlQnVmZmVyKiBXZWJH
TFJlbmRlcmluZ0NvbnRleHRCYXNlOjpMUlVJbWFnZUJ1ZmZlckNhY2hlOjppbWFnZUJ1ZmZlcihj
b25zdCBJCiAgICAgfQogCiAgICAgLy8gRklYTUUgKDE0OTQyMyk6IFNob3VsZCB0aGlzIEltYWdl
QnVmZmVyIGJlIHVuY29uZGl0aW9uYWxseSB1bmFjY2VsZXJhdGVkPwotICAgIHN0ZDo6dW5pcXVl
X3B0cjxJbWFnZUJ1ZmZlcj4gdGVtcCA9IEltYWdlQnVmZmVyOjpjcmVhdGUoc2l6ZSwgVW5hY2Nl
bGVyYXRlZCk7CisgICAgc3RkOjp1bmlxdWVfcHRyPEltYWdlQnVmZmVyPiB0ZW1wID0gSW1hZ2VC
dWZmZXI6OmNyZWF0ZShzaXplLCBSZW5kZXJpbmdNb2RlOjpVbmFjY2VsZXJhdGVkKTsKICAgICBp
ZiAoIXRlbXApCiAgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIEFTU0VSVChtX2J1ZmZlcnMu
c2l6ZSgpID4gMCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9NZWRp
YUNvbnRyb2xFbGVtZW50cy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9NZWRpYUNv
bnRyb2xFbGVtZW50cy5jcHAKaW5kZXggMzRiYTM3MmQ0OTE0M2NmZTI5M2E3YzJhODk0NWU0MGYz
NTFiMTA1MS4uZjZiYmZhZGQzNzdiYjUxYjA2MGFhMGIzM2YwYjY4MGYxMTJjOTk0ZiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvTWVkaWFDb250cm9sRWxlbWVudHMuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01lZGlhQ29udHJvbEVsZW1lbnRzLmNw
cApAQCAtMTQ0Nyw3ICsxNDQ3LDcgQEAgUmVmUHRyPEltYWdlPiBNZWRpYUNvbnRyb2xUZXh0VHJh
Y2tDb250YWluZXJFbGVtZW50OjpjcmVhdGVUZXh0VHJhY2tSZXByZXNlbnRhdGkKICAgICBJbnRS
ZWN0IHBhaW50aW5nUmVjdCA9IEludFJlY3QoSW50UG9pbnQoKSwgbGF5ZXItPnNpemUoKSk7CiAK
ICAgICAvLyBGSVhNRSAoMTQ5NDIyKTogVGhpcyBidWZmZXIgc2hvdWxkIG5vdCBiZSB1bmNvbmRp
dGlvbmFsbHkgdW5hY2NlbGVyYXRlZC4KLSAgICBzdGQ6OnVuaXF1ZV9wdHI8SW1hZ2VCdWZmZXI+
IGJ1ZmZlcihJbWFnZUJ1ZmZlcjo6Y3JlYXRlKHBhaW50aW5nUmVjdC5zaXplKCksIFVuYWNjZWxl
cmF0ZWQsIGRldmljZVNjYWxlRmFjdG9yKSk7CisgICAgc3RkOjp1bmlxdWVfcHRyPEltYWdlQnVm
ZmVyPiBidWZmZXIoSW1hZ2VCdWZmZXI6OmNyZWF0ZShwYWludGluZ1JlY3Quc2l6ZSgpLCBSZW5k
ZXJpbmdNb2RlOjpVbmFjY2VsZXJhdGVkLCBkZXZpY2VTY2FsZUZhY3RvcikpOwogICAgIGlmICgh
YnVmZmVyKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGFnZS9GcmFtZVNuYXBzaG90dGluZy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Zy
YW1lU25hcHNob3R0aW5nLmNwcAppbmRleCAwYTQ0YzJmYTFhMDk0OTdjZmRmNTU4ODgzMmZmZGZm
MTAyMzMzMGUxLi5lMjRkOTJlNmYzZTYxZDM4YTliMjQ0ODVmNGQxM2RlNTBlNTMzYTJkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lU25hcHNob3R0aW5nLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lU25hcHNob3R0aW5nLmNwcApAQCAtMTExLDcgKzExMSw3
IEBAIHN0ZDo6dW5pcXVlX3B0cjxJbWFnZUJ1ZmZlcj4gc25hcHNob3RGcmFtZVJlY3RXaXRoQ2xp
cChGcmFtZSYgZnJhbWUsIGNvbnN0IEludFJlCiAgICAgaWYgKG9wdGlvbnMgJiBTbmFwc2hvdE9w
dGlvbnNQYWludFdpdGhJbnRlZ3JhbFNjYWxlRmFjdG9yKQogICAgICAgICBzY2FsZUZhY3RvciA9
IGNlaWxmKHNjYWxlRmFjdG9yKTsKIAotICAgIHN0ZDo6dW5pcXVlX3B0cjxJbWFnZUJ1ZmZlcj4g
YnVmZmVyID0gSW1hZ2VCdWZmZXI6OmNyZWF0ZShpbWFnZVJlY3Quc2l6ZSgpLCBVbmFjY2VsZXJh
dGVkLCBzY2FsZUZhY3Rvcik7CisgICAgc3RkOjp1bmlxdWVfcHRyPEltYWdlQnVmZmVyPiBidWZm
ZXIgPSBJbWFnZUJ1ZmZlcjo6Y3JlYXRlKGltYWdlUmVjdC5zaXplKCksIFJlbmRlcmluZ01vZGU6
OlVuYWNjZWxlcmF0ZWQsIHNjYWxlRmFjdG9yKTsKICAgICBpZiAoIWJ1ZmZlcikKICAgICAgICAg
cmV0dXJuIG51bGxwdHI7CiAgICAgYnVmZmVyLT5jb250ZXh0KCkudHJhbnNsYXRlKC1pbWFnZVJl
Y3QueCgpLCAtaW1hZ2VSZWN0LnkoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9BbHBoYVByZW11bHRpcGxpY2F0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9BbHBoYVByZW11bHRpcGxpY2F0aW9uLmgKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNmQx
Y2FlZjg1NDFkZWUwNjJiZmUwNTQxNmNkYTJmMmE3Zjc5MjZlMgotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0FscGhhUHJlbXVsdGlwbGljYXRpb24u
aApAQCAtMCwwICsxLDM5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVN
RU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgorCituYW1l
c3BhY2UgV2ViQ29yZSB7CisKK2VudW0gY2xhc3MgQWxwaGFQcmVtdWx0aXBsaWNhdGlvbiA6IHVp
bnQ4X3QgeworICAgIFByZW11bHRpcGxpZWQsCisgICAgVW5wcmVtdWx0aXBsaWVkCit9OworCitX
RUJDT1JFX0VYUE9SVCBXVEY6OlRleHRTdHJlYW0mIG9wZXJhdG9yPDwoV1RGOjpUZXh0U3RyZWFt
JiwgQWxwaGFQcmVtdWx0aXBsaWNhdGlvbik7CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0JpdG1hcEltYWdlLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0JpdG1hcEltYWdlLmNwcAppbmRl
eCBjNzFkOThmOGE1ZjY2NzQ2ODYzMDk0NGFiNzFkYmFmYzkxZGNiNjRlLi40ODIyNDRhNGYyYmRj
ZWRlN2M4NzRjZDFiNTBlYTkxNGIxNDk5YTIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9CaXRtYXBJbWFnZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvQml0bWFwSW1hZ2UuY3BwCkBAIC0xNjAsNyArMTYwLDcgQEAgTmF0aXZl
SW1hZ2VQdHIgQml0bWFwSW1hZ2U6Om5hdGl2ZUltYWdlRm9yQ3VycmVudEZyYW1lUmVzcGVjdGlu
Z09yaWVudGF0aW9uKGNvbnMKICAgICAgICAgcmV0dXJuIGltYWdlOwogCiAgICAgRmxvYXRSZWN0
IHJlY3QgPSB7IEZsb2F0UG9pbnQoKSwgc2l6ZSgpIH07Ci0gICAgYXV0byBidWZmZXIgPSBJbWFn
ZUJ1ZmZlcjo6Y3JlYXRlKHJlY3Quc2l6ZSgpLCBVbmFjY2VsZXJhdGVkKTsKKyAgICBhdXRvIGJ1
ZmZlciA9IEltYWdlQnVmZmVyOjpjcmVhdGUocmVjdC5zaXplKCksIFJlbmRlcmluZ01vZGU6OlVu
YWNjZWxlcmF0ZWQpOwogICAgIGlmICghYnVmZmVyKQogICAgICAgICByZXR1cm4gaW1hZ2U7CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29u
dGV4dC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0
LmgKaW5kZXggZjU4NmRkNGIyYWY5MWY0NTY1NTM1YTcwMjkzOTIzYWYyYmFhZGJhMi4uZTVjMzFj
MWU2NGVmNTRiOTYxMTMxZGJiMjVjNGNlNGIxODllMmQzYSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0LmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0LmgKQEAgLTM1LDYgKzM1LDcg
QEAKICNpbmNsdWRlICJJbWFnZU9yaWVudGF0aW9uLmgiCiAjaW5jbHVkZSAiSW1hZ2VQYWludGlu
Z09wdGlvbnMuaCIKICNpbmNsdWRlICJQYXR0ZXJuLmgiCisjaW5jbHVkZSAiUmVuZGVyaW5nTW9k
ZS5oIgogI2luY2x1ZGUgPHd0Zi9GdW5jdGlvbi5oPgogI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJs
ZS5oPgogI2luY2x1ZGUgPHd0Zi9PcHRpb25TZXQuaD4KQEAgLTM1MCw3ICszNTEsNyBAQCBwdWJs
aWM6CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRJc0FjY2VsZXJhdGVkQ29udGV4dChib29s
KTsKICNlbmRpZgogICAgIGJvb2wgaXNBY2NlbGVyYXRlZENvbnRleHQoKSBjb25zdDsKLSAgICBS
ZW5kZXJpbmdNb2RlIHJlbmRlcmluZ01vZGUoKSBjb25zdCB7IHJldHVybiBpc0FjY2VsZXJhdGVk
Q29udGV4dCgpID8gQWNjZWxlcmF0ZWQgOiBVbmFjY2VsZXJhdGVkOyB9CisgICAgUmVuZGVyaW5n
TW9kZSByZW5kZXJpbmdNb2RlKCkgY29uc3QgeyByZXR1cm4gaXNBY2NlbGVyYXRlZENvbnRleHQo
KSA/IFJlbmRlcmluZ01vZGU6OkFjY2VsZXJhdGVkIDogUmVuZGVyaW5nTW9kZTo6VW5hY2NlbGVy
YXRlZDsgfQogCiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzYXZlKCk7CiAgICAgV0VCQ09SRV9F
WFBPUlQgdm9pZCByZXN0b3JlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9HcmFwaGljc1R5cGVzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL0dyYXBoaWNzVHlwZXMuY3BwCmluZGV4IDQ1OGFlNzJmMmFlMDI1NjI0NzY4ZTg3OWRi
ZDQ5Njk2NGI0OTFiMTguLmRjNTRhOTk4NWU0ZDQyMDY3ZGE2YzIzODE4MzVmYmQzNzM2ODc2MWIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzVHlw
ZXMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzVHlw
ZXMuY3BwCkBAIC0yOCw2ICsyOCw3IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAi
R3JhcGhpY3NUeXBlcy5oIgogCisjaW5jbHVkZSAiQWxwaGFQcmVtdWx0aXBsaWNhdGlvbi5oIgog
I2luY2x1ZGUgPHd0Zi9Bc3NlcnRpb25zLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvVGV4dFN0cmVh
bS5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NUeXBlcy5oIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NUeXBlcy5oCmluZGV4IGNlZWExZGE0MGViMzJm
Zjc4YTFlNzVlMTdiZmUwMDkyMDFiNzZmMTIuLjU3ZWViZGM1MDAzYzM3MGI4YjQ3NDFlYzJiYTU0
MjQ3Yzk1YzkzZWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L0dyYXBoaWNzVHlwZXMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9H
cmFwaGljc1R5cGVzLmgKQEAgLTEyMiwxNyArMTIyLDYgQEAgZW51bSBUZXh0QWxpZ24gewogICAg
IFJpZ2h0VGV4dEFsaWduCiB9OwogCi1lbnVtIFJlbmRlcmluZ01vZGUgewotICAgIFVuYWNjZWxl
cmF0ZWQsCi0gICAgVW5hY2NlbGVyYXRlZE5vblBsYXRmb3JtQnVmZmVyLCAvLyBVc2UgcGxhaW4g
bWVtb3J5IGFsbG9jYXRpb24gcmF0aGVyIHRoYW4gcGxhdGZvcm0gQVBJIHRvIGFsbG9jYXRlIGJh
Y2tpbmcgc3RvcmUuCi0gICAgQWNjZWxlcmF0ZWQKLX07Ci0KLWVudW0gY2xhc3MgQWxwaGFQcmVt
dWx0aXBsaWNhdGlvbiB7Ci0gICAgUHJlbXVsdGlwbGllZCwKLSAgICBVbnByZW11bHRpcGxpZWQK
LX07Ci0KIFN0cmluZyBjb21wb3NpdGVPcGVyYXRvck5hbWUoV2ViQ29yZTo6Q29tcG9zaXRlT3Bl
cmF0b3IsIFdlYkNvcmU6OkJsZW5kTW9kZSk7CiBTdHJpbmcgYmxlbmRNb2RlTmFtZShXZWJDb3Jl
OjpCbGVuZE1vZGUpOwogYm9vbCBwYXJzZUJsZW5kTW9kZShjb25zdCBTdHJpbmcmLCBXZWJDb3Jl
OjpCbGVuZE1vZGUmKTsKQEAgLTE0Myw3ICsxMzIsNiBAQCBXRUJDT1JFX0VYUE9SVCBXVEY6OlRl
eHRTdHJlYW0mIG9wZXJhdG9yPDwoV1RGOjpUZXh0U3RyZWFtJiwgV2ViQ29yZTo6Q29tcG9zaXRl
TwogV0VCQ09SRV9FWFBPUlQgV1RGOjpUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFdURjo6VGV4dFN0
cmVhbSYsIFdpbmRSdWxlKTsKIFdFQkNPUkVfRVhQT1JUIFdURjo6VGV4dFN0cmVhbSYgb3BlcmF0
b3I8PChXVEY6OlRleHRTdHJlYW0mLCBMaW5lQ2FwKTsKIFdFQkNPUkVfRVhQT1JUIFdURjo6VGV4
dFN0cmVhbSYgb3BlcmF0b3I8PChXVEY6OlRleHRTdHJlYW0mLCBMaW5lSm9pbik7Ci1XRUJDT1JF
X0VYUE9SVCBXVEY6OlRleHRTdHJlYW0mIG9wZXJhdG9yPDwoV1RGOjpUZXh0U3RyZWFtJiwgQWxw
aGFQcmVtdWx0aXBsaWNhdGlvbik7CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VCdWZmZXIuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlQnVmZmVyLmgKaW5kZXggY2I3NDM4
NDQ4MDJhYjQyYjU1MzUxMTdjYWI1Y2I3NTY0NGQ1YjNmNC4uNjJkMGE1YjMwNTZlYWJlNTVhYjJi
ZTYxOWQ3ZWE3OGQ4ZGM0YTU3NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvSW1hZ2VCdWZmZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9JbWFnZUJ1ZmZlci5oCkBAIC0yOCw2ICsyOCw3IEBACiAjcHJhZ21hIG9uY2UKIAogI2lu
Y2x1ZGUgIkFmZmluZVRyYW5zZm9ybS5oIgorI2luY2x1ZGUgIkFscGhhUHJlbXVsdGlwbGljYXRp
b24uaCIKICNpbmNsdWRlICJDb2xvclNwYWNlLmgiCiAjaW5jbHVkZSAiR3JhcGhpY3NUeXBlcy5o
IgogI2luY2x1ZGUgIkdyYXBoaWNzVHlwZXNHTC5oIgpAQCAtMzUsNiArMzYsNyBAQAogI2luY2x1
ZGUgIkltYWdlUGFpbnRpbmdPcHRpb25zLmgiCiAjaW5jbHVkZSAiSW50U2l6ZS5oIgogI2luY2x1
ZGUgIlBsYXRmb3JtTGF5ZXIuaCIKKyNpbmNsdWRlICJSZW5kZXJpbmdNb2RlLmgiCiAjaW5jbHVk
ZSA8SmF2YVNjcmlwdENvcmUvVWludDhDbGFtcGVkQXJyYXkuaD4KICNpbmNsdWRlIDxtZW1vcnk+
CiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KQEAgLTE5NCw0ICsxOTYsMyBAQCBWZWN0b3I8dWlu
dDhfdD4gZGF0YShjb25zdCBJbWFnZURhdGEmLCBjb25zdCBTdHJpbmcmIG1pbWVUeXBlLCBPcHRp
b25hbDxkb3VibGU+CiAjZW5kaWYKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQotCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9SZW5kZXJpbmdNb2RlLmggYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9SZW5kZXJpbmdNb2RlLmgKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uNjlkOGFlODFjODQ4YjEwZTZmMmQwN2E3ODliMTZjMzMzZGMyM2NiNAotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1JlbmRlcmluZ01vZGUuaApA
QCAtMCwwICsxLDM1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5U
IE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgor
ICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworI3ByYWdtYSBvbmNlCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworZW51bSBjbGFzcyBS
ZW5kZXJpbmdNb2RlIDogdWludDhfdCB7CisgICAgQWNjZWxlcmF0ZWQsCisgICAgVW5hY2NlbGVy
YXRlZCwKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1NoYWRvd0JsdXIuY3BwIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvU2hhZG93Qmx1ci5jcHAKaW5kZXggNDA0MWIzZjgxMDc2NzhjNTZh
Y2RiMGM1MzNhMDk4NmY3ZTY0NTU5Ni4uNjgxYWI1NmVlYjM0MTk0NjJiMjM0NDUwZDAwZjQxZjkz
MzY3NGQxOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvU2hh
ZG93Qmx1ci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvU2hhZG93
Qmx1ci5jcHAKQEAgLTgzLDcgKzgzLDcgQEAgcHVibGljOgogICAgICAgICBjbGVhclNjcmF0Y2hC
dWZmZXIoKTsKIAogICAgICAgICAvLyBTaGFkb3dCbHVyIGlzIG5vdCB1c2VkIHdpdGggYWNjZWxl
cmF0ZWQgZHJhd2luZywgc28gaXQncyBPSyB0byBtYWtlIGFuIHVuY29uZGl0aW9uYWxseSB1bmFj
Y2VsZXJhdGVkIGJ1ZmZlci4KLSAgICAgICAgbV9pbWFnZUJ1ZmZlciA9IEltYWdlQnVmZmVyOjpj
cmVhdGUocm91bmRlZFNpemUsIFVuYWNjZWxlcmF0ZWQsIDEpOworICAgICAgICBtX2ltYWdlQnVm
ZmVyID0gSW1hZ2VCdWZmZXI6OmNyZWF0ZShyb3VuZGVkU2l6ZSwgUmVuZGVyaW5nTW9kZTo6VW5h
Y2NlbGVyYXRlZCwgMSk7CiAgICAgICAgIHJldHVybiBtX2ltYWdlQnVmZmVyLmdldCgpOwogICAg
IH0KIApAQCAtNTkzLDcgKzU5Myw3IEBAIHZvaWQgU2hhZG93Qmx1cjo6ZHJhd0luc2V0U2hhZG93
KGNvbnN0IEFmZmluZVRyYW5zZm9ybSYgdHJhbnNmb3JtLCBjb25zdCBJbnRSZWN0CiAKIHZvaWQg
U2hhZG93Qmx1cjo6ZHJhd1JlY3RTaGFkb3dXaXRob3V0VGlsaW5nKGNvbnN0IEFmZmluZVRyYW5z
Zm9ybSYsIGNvbnN0IEZsb2F0Um91bmRlZFJlY3QmIHNoYWRvd2VkUmVjdCwgY29uc3QgTGF5ZXJJ
bWFnZVByb3BlcnRpZXMmIGxheWVySW1hZ2VQcm9wZXJ0aWVzLCBjb25zdCBEcmF3QnVmZmVyQ2Fs
bGJhY2smIGRyYXdCdWZmZXIpCiB7Ci0gICAgYXV0byBsYXllckltYWdlID0gSW1hZ2VCdWZmZXI6
OmNyZWF0ZShleHBhbmRlZEludFNpemUobGF5ZXJJbWFnZVByb3BlcnRpZXMubGF5ZXJTaXplKSwg
VW5hY2NlbGVyYXRlZCwgMSk7CisgICAgYXV0byBsYXllckltYWdlID0gSW1hZ2VCdWZmZXI6OmNy
ZWF0ZShleHBhbmRlZEludFNpemUobGF5ZXJJbWFnZVByb3BlcnRpZXMubGF5ZXJTaXplKSwgUmVu
ZGVyaW5nTW9kZTo6VW5hY2NlbGVyYXRlZCwgMSk7CiAgICAgaWYgKCFsYXllckltYWdlKQogICAg
ICAgICByZXR1cm47CiAKQEAgLTYyMSw3ICs2MjEsNyBAQCB2b2lkIFNoYWRvd0JsdXI6OmRyYXdS
ZWN0U2hhZG93V2l0aG91dFRpbGluZyhjb25zdCBBZmZpbmVUcmFuc2Zvcm0mLCBjb25zdCBGbG9h
dAogCiB2b2lkIFNoYWRvd0JsdXI6OmRyYXdJbnNldFNoYWRvd1dpdGhvdXRUaWxpbmcoY29uc3Qg
QWZmaW5lVHJhbnNmb3JtJiwgY29uc3QgRmxvYXRSZWN0JiBmdWxsUmVjdCwgY29uc3QgRmxvYXRS
b3VuZGVkUmVjdCYgaG9sZVJlY3QsIGNvbnN0IExheWVySW1hZ2VQcm9wZXJ0aWVzJiBsYXllcklt
YWdlUHJvcGVydGllcywgY29uc3QgRHJhd0J1ZmZlckNhbGxiYWNrJiBkcmF3QnVmZmVyKQogewot
ICAgIGF1dG8gbGF5ZXJJbWFnZSA9IEltYWdlQnVmZmVyOjpjcmVhdGUoZXhwYW5kZWRJbnRTaXpl
KGxheWVySW1hZ2VQcm9wZXJ0aWVzLmxheWVyU2l6ZSksIFVuYWNjZWxlcmF0ZWQsIDEpOworICAg
IGF1dG8gbGF5ZXJJbWFnZSA9IEltYWdlQnVmZmVyOjpjcmVhdGUoZXhwYW5kZWRJbnRTaXplKGxh
eWVySW1hZ2VQcm9wZXJ0aWVzLmxheWVyU2l6ZSksIFJlbmRlcmluZ01vZGU6OlVuYWNjZWxlcmF0
ZWQsIDEpOwogICAgIGlmICghbGF5ZXJJbWFnZSkKICAgICAgICAgcmV0dXJuOwogCkBAIC02ODUs
NyArNjg1LDcgQEAgdm9pZCBTaGFkb3dCbHVyOjpkcmF3UmVjdFNoYWRvd1dpdGhUaWxpbmcoY29u
c3QgQWZmaW5lVHJhbnNmb3JtJiB0cmFuc2Zvcm0sIGNvbnMKICAgICBhdXRvKiBsYXllckltYWdl
ID0gU2NyYXRjaEJ1ZmZlcjo6c2luZ2xldG9uKCkuZ2V0U2NyYXRjaEJ1ZmZlcih0ZW1wbGF0ZVNp
emUpOwogI2Vsc2UKICAgICBVTlVTRURfUEFSQU0obGF5ZXJJbWFnZVByb3BlcnRpZXMpOwotICAg
IGF1dG8gbGF5ZXJJbWFnZUJ1ZmZlciA9IEltYWdlQnVmZmVyOjpjcmVhdGUodGVtcGxhdGVTaXpl
LCBVbmFjY2VsZXJhdGVkLCAxKTsKKyAgICBhdXRvIGxheWVySW1hZ2VCdWZmZXIgPSBJbWFnZUJ1
ZmZlcjo6Y3JlYXRlKHRlbXBsYXRlU2l6ZSwgUmVuZGVyaW5nTW9kZTo6VW5hY2NlbGVyYXRlZCwg
MSk7CiAgICAgYXV0byogbGF5ZXJJbWFnZSA9IGxheWVySW1hZ2VCdWZmZXIuZ2V0KCk7CiAjZW5k
aWYKIApAQCAtNzM5LDcgKzczOSw3IEBAIHZvaWQgU2hhZG93Qmx1cjo6ZHJhd0luc2V0U2hhZG93
V2l0aFRpbGluZyhjb25zdCBBZmZpbmVUcmFuc2Zvcm0mIHRyYW5zZm9ybSwgY29uCiAjaWYgVVNF
KENHKQogICAgIGF1dG8qIGxheWVySW1hZ2UgPSBTY3JhdGNoQnVmZmVyOjpzaW5nbGV0b24oKS5n
ZXRTY3JhdGNoQnVmZmVyKHRlbXBsYXRlU2l6ZSk7CiAjZWxzZQotICAgIGF1dG8gbGF5ZXJJbWFn
ZUJ1ZmZlciA9IEltYWdlQnVmZmVyOjpjcmVhdGUodGVtcGxhdGVTaXplLCBVbmFjY2VsZXJhdGVk
LCAxKTsKKyAgICBhdXRvIGxheWVySW1hZ2VCdWZmZXIgPSBJbWFnZUJ1ZmZlcjo6Y3JlYXRlKHRl
bXBsYXRlU2l6ZSwgUmVuZGVyaW5nTW9kZTo6VW5hY2NlbGVyYXRlZCwgMSk7CiAgICAgYXV0byog
bGF5ZXJJbWFnZSA9IGxheWVySW1hZ2VCdWZmZXIuZ2V0KCk7CiAjZW5kaWYKIApAQCAtOTEyLDcg
KzkxMiw3IEBAIHZvaWQgU2hhZG93Qmx1cjo6ZHJhd1NoYWRvd0xheWVyKGNvbnN0IEFmZmluZVRy
YW5zZm9ybSYgdHJhbnNmb3JtLCBjb25zdCBJbnRSZWN0CiAKICAgICBhZGp1c3RCbHVyUmFkaXVz
KHRyYW5zZm9ybSk7CiAKLSAgICBhdXRvIGxheWVySW1hZ2UgPSBJbWFnZUJ1ZmZlcjo6Y3JlYXRl
KGV4cGFuZGVkSW50U2l6ZShsYXllckltYWdlUHJvcGVydGllcy0+bGF5ZXJTaXplKSwgVW5hY2Nl
bGVyYXRlZCwgMSk7CisgICAgYXV0byBsYXllckltYWdlID0gSW1hZ2VCdWZmZXI6OmNyZWF0ZShl
eHBhbmRlZEludFNpemUobGF5ZXJJbWFnZVByb3BlcnRpZXMtPmxheWVyU2l6ZSksIFJlbmRlcmlu
Z01vZGU6OlVuYWNjZWxlcmF0ZWQsIDEpOwogICAgIGlmICghbGF5ZXJJbWFnZSkKICAgICAgICAg
cmV0dXJuOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
YWlyby9JbWFnZUJ1ZmZlckNhaXJvLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2NhaXJvL0ltYWdlQnVmZmVyQ2Fpcm8uY3BwCmluZGV4IDFmMTMzM2E3NDI2OWY1MjQ3MDVm
NTQzZjBkZGI4MzRjYzdjYmRmMGQuLmNjYzVmOWNkYjAxNTMyZGJlODg5NmI0ZDFjNjBkYjA4NTYx
NmM5MzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJv
L0ltYWdlQnVmZmVyQ2Fpcm8uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2NhaXJvL0ltYWdlQnVmZmVyQ2Fpcm8uY3BwCkBAIC0xMDMsNyArMTAzLDcgQEAgSW1hZ2VC
dWZmZXJEYXRhOjpJbWFnZUJ1ZmZlckRhdGEoY29uc3QgSW50U2l6ZSYgc2l6ZSwgUmVuZGVyaW5n
TW9kZSByZW5kZXJpbmdNb2QKIAogSW1hZ2VCdWZmZXJEYXRhOjp+SW1hZ2VCdWZmZXJEYXRhKCkK
IHsKLSAgICBpZiAobV9yZW5kZXJpbmdNb2RlICE9IEFjY2VsZXJhdGVkKQorICAgIGlmIChtX3Jl
bmRlcmluZ01vZGUgIT0gUmVuZGVyaW5nTW9kZTo6QWNjZWxlcmF0ZWQpCiAgICAgICAgIHJldHVy
bjsKIAogI2lmIEVOQUJMRShBQ0NFTEVSQVRFRF8yRF9DQU5WQVMpCkBAIC0yOTIsMTQgKzI5Miwx
NCBAQCBJbWFnZUJ1ZmZlcjo6SW1hZ2VCdWZmZXIoY29uc3QgRmxvYXRTaXplJiBzaXplLCBmbG9h
dCByZXNvbHV0aW9uU2NhbGUsIENvbG9yU3BhYwogICAgICAgICByZXR1cm47CiAKICNpZiBFTkFC
TEUoQUNDRUxFUkFURURfMkRfQ0FOVkFTKQotICAgIGlmIChtX2RhdGEubV9yZW5kZXJpbmdNb2Rl
ID09IEFjY2VsZXJhdGVkKSB7CisgICAgaWYgKG1fZGF0YS5tX3JlbmRlcmluZ01vZGUgPT0gUmVu
ZGVyaW5nTW9kZTo6QWNjZWxlcmF0ZWQpIHsKICAgICAgICAgbV9kYXRhLmNyZWF0ZUNhaXJvR0xT
dXJmYWNlKCk7CiAgICAgICAgIGlmICghbV9kYXRhLm1fc3VyZmFjZSB8fCBjYWlyb19zdXJmYWNl
X3N0YXR1cyhtX2RhdGEubV9zdXJmYWNlLmdldCgpKSAhPSBDQUlST19TVEFUVVNfU1VDQ0VTUykK
LSAgICAgICAgICAgIG1fZGF0YS5tX3JlbmRlcmluZ01vZGUgPSBVbmFjY2VsZXJhdGVkOyAvLyBJ
ZiBhbGxvY2F0aW9uIGZhaWxzLCBmYWxsIGJhY2sgdG8gbm9uLWFjY2VsZXJhdGVkIHBhdGguCisg
ICAgICAgICAgICBtX2RhdGEubV9yZW5kZXJpbmdNb2RlID0gUmVuZGVyaW5nTW9kZTo6VW5hY2Nl
bGVyYXRlZDsgLy8gSWYgYWxsb2NhdGlvbiBmYWlscywgZmFsbCBiYWNrIHRvIG5vbi1hY2NlbGVy
YXRlZCBwYXRoLgogICAgIH0KLSAgICBpZiAobV9kYXRhLm1fcmVuZGVyaW5nTW9kZSA9PSBVbmFj
Y2VsZXJhdGVkKQorICAgIGlmIChtX2RhdGEubV9yZW5kZXJpbmdNb2RlID09IFJlbmRlcmluZ01v
ZGU6OlVuYWNjZWxlcmF0ZWQpCiAjZWxzZQotICAgIEFTU0VSVChtX2RhdGEubV9yZW5kZXJpbmdN
b2RlICE9IEFjY2VsZXJhdGVkKTsKKyAgICBBU1NFUlQobV9kYXRhLm1fcmVuZGVyaW5nTW9kZSAh
PSBSZW5kZXJpbmdNb2RlOjpBY2NlbGVyYXRlZCk7CiAjZW5kaWYKICAgICB7CiAgICAgICAgIHN0
YXRpYyBjYWlyb191c2VyX2RhdGFfa2V5X3Qgc19zdXJmYWNlRGF0YUtleTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0ltYWdlQnVmZmVyQ0cuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSW1hZ2VCdWZmZXJDRy5jcHAKaW5k
ZXggMzU2ZjE5NjRkMDk1NTJiZDFhMjdmYzBkMjI4MDlkOGEzZGE2Yjc1Yi4uOTQ3ZmY5MzIwYjY4
Y2JjMDFkOWYzYTQ1NGU4MzU0M2ZkM2Q5NDIzNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY2cvSW1hZ2VCdWZmZXJDRy5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSW1hZ2VCdWZmZXJDRy5jcHAKQEAgLTEyNyw3ICsxMjcs
NyBAQCBJbWFnZUJ1ZmZlcjo6SW1hZ2VCdWZmZXIoY29uc3QgRmxvYXRTaXplJiBzaXplLCBmbG9h
dCByZXNvbHV0aW9uU2NhbGUsIENHQ29sb3JTcAogICAgIG1fc2l6ZSA9IEludFNpemUoc2NhbGVk
V2lkdGgsIHNjYWxlZEhlaWdodCk7CiAgICAgbV9kYXRhLmJhY2tpbmdTdG9yZVNpemUgPSBtX3Np
emU7CiAKLSAgICBib29sIGFjY2VsZXJhdGVSZW5kZXJpbmcgPSByZW5kZXJpbmdNb2RlID09IEFj
Y2VsZXJhdGVkOworICAgIGJvb2wgYWNjZWxlcmF0ZVJlbmRlcmluZyA9IHJlbmRlcmluZ01vZGUg
PT0gUmVuZGVyaW5nTW9kZTo6QWNjZWxlcmF0ZWQ7CiAgICAgaWYgKG1fc2l6ZS53aWR0aCgpIDw9
IDAgfHwgbV9zaXplLmhlaWdodCgpIDw9IDApCiAgICAgICAgIHJldHVybjsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSW1hZ2VCdWZmZXJEYXRhQ0cu
aCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0ltYWdlQnVmZmVyRGF0YUNH
LmgKaW5kZXggYzU1YTU0YWQ5MTE3OTUzY2E1ZTY5NmRhMDdlNmUwZGY2ODE0M2Q1OC4uM2UyMzc0
YmFkMjRmMDc4N2ZlZjA1NDNjMWI1MWI5MTIwZjEyMzBkNCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSW1hZ2VCdWZmZXJEYXRhQ0cuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9JbWFnZUJ1ZmZlckRhdGFDRy5oCkBAIC0y
Niw2ICsyNiw3IEBACiAKICNwcmFnbWEgb25jZQogCisjaW5jbHVkZSAiQWxwaGFQcmVtdWx0aXBs
aWNhdGlvbi5oIgogI2luY2x1ZGUgIkltYWdlLmgiCiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUv
VWludDhDbGFtcGVkQXJyYXkuaD4KICNpbmNsdWRlIDx3dGYvQ2hlY2tlZEFyaXRobWV0aWMuaD4K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRmls
dGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZpbHRlci5o
CmluZGV4IDQ5ZThjNWEyNmU3NzFjNDI0OTY3ODE5NTI3YTU2MjczNTNkZjQ0OTYuLmRkMzVjYzY1
YjEzN2Q4MjJjNzAxNTMyZGFiZDI0OTAwNGJmMmE5ZjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRmlsdGVyLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GaWx0ZXIuaApAQCAtNzEsNyArNzEsNyBAQCBw
cml2YXRlOgogICAgIHN0ZDo6dW5pcXVlX3B0cjxJbWFnZUJ1ZmZlcj4gbV9zb3VyY2VJbWFnZTsK
ICAgICBGbG9hdFNpemUgbV9maWx0ZXJSZXNvbHV0aW9uOwogICAgIEFmZmluZVRyYW5zZm9ybSBt
X2Fic29sdXRlVHJhbnNmb3JtOwotICAgIFJlbmRlcmluZ01vZGUgbV9yZW5kZXJpbmdNb2RlIHsg
VW5hY2NlbGVyYXRlZCB9OworICAgIFJlbmRlcmluZ01vZGUgbV9yZW5kZXJpbmdNb2RlIHsgUmVu
ZGVyaW5nTW9kZTo6VW5hY2NlbGVyYXRlZCB9OwogICAgIGZsb2F0IG1fZmlsdGVyU2NhbGUgeyAx
IH07CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90
ZXhtYXAvQml0bWFwVGV4dHVyZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy90ZXhtYXAvQml0bWFwVGV4dHVyZS5jcHAKaW5kZXggN2QyY2VmZDYyNjFkZWUyYTM5YTg5ZDEw
MTcwMmViNTAyNTJmNGY1ZS4uZjAzOTEzODA2MGQzNDQzNGU2Y2RkYmY5NmVhNjRjMzAxYTYzNTUz
ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL0Jp
dG1hcFRleHR1cmUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3Rl
eG1hcC9CaXRtYXBUZXh0dXJlLmNwcApAQCAtMzgsNyArMzgsNyBAQCB2b2lkIEJpdG1hcFRleHR1
cmU6OnVwZGF0ZUNvbnRlbnRzKFRleHR1cmVNYXBwZXImLCBHcmFwaGljc0xheWVyKiBzb3VyY2VM
YXllciwgYwogewogICAgIC8vIE1ha2luZyBhbiB1bmNvbmRpdGlvbmFsbHkgdW5hY2NlbGVyYXRl
ZCBidWZmZXIgaGVyZSBpcyBPSyBiZWNhdXNlIHRoaXMgY29kZQogICAgIC8vIGlzbid0IHVzZWQg
YnkgYW55IHBsYXRmb3JtcyB0aGF0IHJlc3BlY3QgdGhlIGFjY2VsZXJhdGVkIGJpdC4KLSAgICBz
dGQ6OnVuaXF1ZV9wdHI8SW1hZ2VCdWZmZXI+IGltYWdlQnVmZmVyID0gSW1hZ2VCdWZmZXI6OmNy
ZWF0ZSh0YXJnZXRSZWN0LnNpemUoKSwgVW5hY2NlbGVyYXRlZCk7CisgICAgc3RkOjp1bmlxdWVf
cHRyPEltYWdlQnVmZmVyPiBpbWFnZUJ1ZmZlciA9IEltYWdlQnVmZmVyOjpjcmVhdGUodGFyZ2V0
UmVjdC5zaXplKCksIFJlbmRlcmluZ01vZGU6OlVuYWNjZWxlcmF0ZWQpOwogCiAgICAgaWYgKCFp
bWFnZUJ1ZmZlcikKICAgICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0ltYWdlQnVmZmVyRGlyZWN0MkQuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0ltYWdlQnVmZmVyRGlyZWN0MkQuY3BwCmluZGV4
IDVlOWNmMDU3OGE2YjgyOWYwYTZjMGEwMWIwOTg2ZTYwM2Q2MDQyOGMuLmI4ZTNiMGJhMTliMmNh
ZGZkNmJmNzQ5NmJjN2I4MmM1M2U5MTgwOWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL3dpbi9JbWFnZUJ1ZmZlckRpcmVjdDJELmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vSW1hZ2VCdWZmZXJEaXJlY3QyRC5jcHAKQEAg
LTkxLDcgKzkxLDcgQEAgSW1hZ2VCdWZmZXI6OkltYWdlQnVmZmVyKGNvbnN0IEZsb2F0U2l6ZSYg
c2l6ZSwgZmxvYXQgcmVzb2x1dGlvblNjYWxlLCBDb2xvclNwYWMKICAgICBtX3NpemUgPSBJbnRT
aXplKHNjYWxlZFdpZHRoLCBzY2FsZWRIZWlnaHQpOwogICAgIG1fZGF0YS5iYWNraW5nU3RvcmVT
aXplID0gbV9zaXplOwogCi0gICAgYm9vbCBhY2NlbGVyYXRlUmVuZGVyaW5nID0gcmVuZGVyaW5n
TW9kZSA9PSBBY2NlbGVyYXRlZDsKKyAgICBib29sIGFjY2VsZXJhdGVSZW5kZXJpbmcgPSByZW5k
ZXJpbmdNb2RlID09IFJlbmRlcmluZ01vZGU6OkFjY2VsZXJhdGVkOwogICAgIGlmIChtX3NpemUu
d2lkdGgoKSA8PSAwIHx8IG1fc2l6ZS5oZWlnaHQoKSA8PSAwKQogICAgICAgICByZXR1cm47CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTW9ja1JlYWx0aW1lVmlk
ZW9Tb3VyY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9Nb2NrUmVhbHRpbWVW
aWRlb1NvdXJjZS5jcHAKaW5kZXggY2ExMWJiOGJhMGIxOTEwYzYyNzk2N2Q0ZDI2MGIwNGM2ODQ4
NjczMS4uNWFjOWQ2NjA2YzQyMjEyNDhiYzQxZGU5Mzg5Y2U1Yzg3ZTRhNDE3YiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9Nb2NrUmVhbHRpbWVWaWRlb1NvdXJjZS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9Nb2NrUmVhbHRpbWVWaWRlb1Nv
dXJjZS5jcHAKQEAgLTQ1OCw3ICs0NTgsNyBAQCBJbWFnZUJ1ZmZlciogTW9ja1JlYWx0aW1lVmlk
ZW9Tb3VyY2U6OmltYWdlQnVmZmVyKCkgY29uc3QKICAgICBpZiAobV9pbWFnZUJ1ZmZlcikKICAg
ICAgICAgcmV0dXJuIG1faW1hZ2VCdWZmZXIuZ2V0KCk7CiAKLSAgICBtX2ltYWdlQnVmZmVyID0g
SW1hZ2VCdWZmZXI6OmNyZWF0ZShjYXB0dXJlU2l6ZSgpLCBVbmFjY2VsZXJhdGVkKTsKKyAgICBt
X2ltYWdlQnVmZmVyID0gSW1hZ2VCdWZmZXI6OmNyZWF0ZShjYXB0dXJlU2l6ZSgpLCBSZW5kZXJp
bmdNb2RlOjpVbmFjY2VsZXJhdGVkKTsKICAgICBpZiAoIW1faW1hZ2VCdWZmZXIpCiAgICAgICAg
IHJldHVybiBudWxscHRyOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyTGF5ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNw
cAppbmRleCBkNWI5MWIyNjg2YWUyNjFlYjUzYzA2ODliZWVjNjJmNTVlM2ZiNDU4Li44ZjUwZTU3
NTcxZDdiMzg1MDBlZWQ3YmNkYTZiM2E2NDJhYmY3OTUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJMYXllci5jcHAKQEAgLTY5MDUsNyArNjkwNSw3IEBAIHZvaWQgUmVuZGVyTGF5
ZXI6OnVwZGF0ZUZpbHRlclBhaW50aW5nU3RyYXRlZ3koKQogICAgIH0KICAgICAKICAgICBlbnN1
cmVMYXllckZpbHRlcnMoKTsKLSAgICBtX2ZpbHRlcnMtPmJ1aWxkRmlsdGVyKHJlbmRlcmVyKCks
IHBhZ2UoKS5kZXZpY2VTY2FsZUZhY3RvcigpLCByZW5kZXJlcigpLnNldHRpbmdzKCkuYWNjZWxl
cmF0ZWRGaWx0ZXJzRW5hYmxlZCgpID8gQWNjZWxlcmF0ZWQgOiBVbmFjY2VsZXJhdGVkKTsKKyAg
ICBtX2ZpbHRlcnMtPmJ1aWxkRmlsdGVyKHJlbmRlcmVyKCksIHBhZ2UoKS5kZXZpY2VTY2FsZUZh
Y3RvcigpLCByZW5kZXJlcigpLnNldHRpbmdzKCkuYWNjZWxlcmF0ZWRGaWx0ZXJzRW5hYmxlZCgp
ID8gUmVuZGVyaW5nTW9kZTo6QWNjZWxlcmF0ZWQgOiBSZW5kZXJpbmdNb2RlOjpVbmFjY2VsZXJh
dGVkKTsKIH0KIAogdm9pZCBSZW5kZXJMYXllcjo6ZmlsdGVyTmVlZHNSZXBhaW50KCkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zaGFwZXMvU2hhcGUuY3BwIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL3NoYXBlcy9TaGFwZS5jcHAKaW5kZXggOTE0MjAyOWEyZDQ0NjRk
ZjVjYjdiM2E0NDE5M2JlMjg2M2MxZWQyYS4uODUxYTg2Njc4OWI0ODM1NDIyYzU3YTQxZGRhNzVh
MGJjYWQ3ZDY3NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3NoYXBlcy9T
aGFwZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3NoYXBlcy9TaGFwZS5jcHAK
QEAgLTE4MSw3ICsxODEsNyBAQCBzdGQ6OnVuaXF1ZV9wdHI8U2hhcGU+IFNoYXBlOjpjcmVhdGVS
YXN0ZXJTaGFwZShJbWFnZSogaW1hZ2UsIGZsb2F0IHRocmVzaG9sZCwgYwogICAgIEludFJlY3Qg
bWFyZ2luUmVjdCA9IHNuYXBwZWRJbnRSZWN0KG1hcmdpblIpOwogICAgIGF1dG8gaW50ZXJ2YWxz
ID0gbWFrZVVuaXF1ZTxSYXN0ZXJTaGFwZUludGVydmFscz4obWFyZ2luUmVjdC5oZWlnaHQoKSwg
LW1hcmdpblJlY3QueSgpKTsKICAgICAvLyBGSVhNRSAoMTQ5NDIwKTogVGhpcyBidWZmZXIgc2hv
dWxkIG5vdCBiZSB1bmNvbmRpdGlvbmFsbHkgdW5hY2NlbGVyYXRlZC4KLSAgICBzdGQ6OnVuaXF1
ZV9wdHI8SW1hZ2VCdWZmZXI+IGltYWdlQnVmZmVyID0gSW1hZ2VCdWZmZXI6OmNyZWF0ZShpbWFn
ZVJlY3Quc2l6ZSgpLCBVbmFjY2VsZXJhdGVkKTsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8SW1hZ2VC
dWZmZXI+IGltYWdlQnVmZmVyID0gSW1hZ2VCdWZmZXI6OmNyZWF0ZShpbWFnZVJlY3Quc2l6ZSgp
LCBSZW5kZXJpbmdNb2RlOjpVbmFjY2VsZXJhdGVkKTsKIAogICAgIGlmIChpbWFnZUJ1ZmZlcikg
ewogICAgICAgICBHcmFwaGljc0NvbnRleHQmIGdyYXBoaWNzQ29udGV4dCA9IGltYWdlQnVmZmVy
LT5jb250ZXh0KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1Jl
bmRlclNWR1Jlc291cmNlQ2xpcHBlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3Zn
L1JlbmRlclNWR1Jlc291cmNlQ2xpcHBlci5jcHAKaW5kZXggMDhlNDkyODJhZDkzYmNhY2QyOTc3
NWI4NDZmMDU5ZDVhMmNhNzEzZS4uMWQ3N2I2M2M2ZmUyODMxMmFlMTFlZDgyNWI1MjNhYWNlNzE3
ZWM1YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdS
ZXNvdXJjZUNsaXBwZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVu
ZGVyU1ZHUmVzb3VyY2VDbGlwcGVyLmNwcApAQCAtMTQyLDcgKzE0Miw3IEBAIGJvb2wgUmVuZGVy
U1ZHUmVzb3VyY2VDbGlwcGVyOjphcHBseUNsaXBwaW5nVG9Db250ZXh0KFJlbmRlckVsZW1lbnQm
IHJlbmRlcmVyLCBjCiAKICAgICBpZiAoc2hvdWxkQ3JlYXRlQ2xpcHBlck1hc2tJbWFnZSAmJiAh
cmVwYWludFJlY3QuaXNFbXB0eSgpKSB7CiAgICAgICAgIC8vIEZJWE1FICgxNDk0NjkpOiBUaGlz
IGltYWdlIGJ1ZmZlciBzaG91bGQgbm90IGJlIHVuY29uZGl0aW9uYWxseSB1bmFjY2VsZXJhdGVk
LiBNYWtpbmcgaXQgbWF0Y2ggdGhlIGNvbnRleHQgYnJlYWtzIG5lc3RlZCBjbGlwcGluZywgdGhv
dWdoLgotICAgICAgICBjbGlwcGVyTWFza0ltYWdlID0gU1ZHUmVuZGVyaW5nQ29udGV4dDo6Y3Jl
YXRlSW1hZ2VCdWZmZXIocmVwYWludFJlY3QsIGFic29sdXRlVHJhbnNmb3JtLCBDb2xvclNwYWNl
OjpTUkdCLCBVbmFjY2VsZXJhdGVkLCAmY29udGV4dCk7CisgICAgICAgIGNsaXBwZXJNYXNrSW1h
Z2UgPSBTVkdSZW5kZXJpbmdDb250ZXh0OjpjcmVhdGVJbWFnZUJ1ZmZlcihyZXBhaW50UmVjdCwg
YWJzb2x1dGVUcmFuc2Zvcm0sIENvbG9yU3BhY2U6OlNSR0IsIFJlbmRlcmluZ01vZGU6OlVuYWNj
ZWxlcmF0ZWQsICZjb250ZXh0KTsKICAgICAgICAgaWYgKCFjbGlwcGVyTWFza0ltYWdlKQogICAg
ICAgICAgICAgcmV0dXJuIGZhbHNlOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvc3ZnL1JlbmRlclNWR1Jlc291cmNlRmlsdGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9zdmcvUmVuZGVyU1ZHUmVzb3VyY2VGaWx0ZXIuY3BwCmluZGV4IDc1YjU5YjYzYzNl
NDk2MGJkNGUzYmRiZDg3NDkyYTkzMmY0MzE2MWIuLmRkZGJhNDMyZDM3OTM3ZWIwNDNhNmNjMTdi
ZjkzMmU2Yjc4OTU0MjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcv
UmVuZGVyU1ZHUmVzb3VyY2VGaWx0ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9zdmcvUmVuZGVyU1ZHUmVzb3VyY2VGaWx0ZXIuY3BwCkBAIC0xOTEsNyArMTkxLDcgQEAgYm9v
bCBSZW5kZXJTVkdSZXNvdXJjZUZpbHRlcjo6YXBwbHlSZXNvdXJjZShSZW5kZXJFbGVtZW50JiBy
ZW5kZXJlciwgY29uc3QgUmVuZGUKICAgICBlZmZlY3RpdmVUcmFuc2Zvcm0uc2NhbGUoc2NhbGUu
d2lkdGgoKSwgc2NhbGUuaGVpZ2h0KCkpOwogICAgIGVmZmVjdGl2ZVRyYW5zZm9ybS5tdWx0aXBs
eShmaWx0ZXJEYXRhLT5zaGVhckZyZWVBYnNvbHV0ZVRyYW5zZm9ybSk7CiAKLSAgICBSZW5kZXJp
bmdNb2RlIHJlbmRlcmluZ01vZGUgPSByZW5kZXJlci5zZXR0aW5ncygpLmFjY2VsZXJhdGVkRmls
dGVyc0VuYWJsZWQoKSA/IEFjY2VsZXJhdGVkIDogVW5hY2NlbGVyYXRlZDsKKyAgICBSZW5kZXJp
bmdNb2RlIHJlbmRlcmluZ01vZGUgPSByZW5kZXJlci5zZXR0aW5ncygpLmFjY2VsZXJhdGVkRmls
dGVyc0VuYWJsZWQoKSA/IFJlbmRlcmluZ01vZGU6OkFjY2VsZXJhdGVkIDogUmVuZGVyaW5nTW9k
ZTo6VW5hY2NlbGVyYXRlZDsKICAgICBhdXRvIHNvdXJjZUdyYXBoaWMgPSBTVkdSZW5kZXJpbmdD
b250ZXh0OjpjcmVhdGVJbWFnZUJ1ZmZlcihmaWx0ZXJEYXRhLT5kcmF3aW5nUmVnaW9uLCBlZmZl
Y3RpdmVUcmFuc2Zvcm0sIENvbG9yU3BhY2U6OkxpbmVhclJHQiwgcmVuZGVyaW5nTW9kZSwgY29u
dGV4dCk7CiAgICAgaWYgKCFzb3VyY2VHcmFwaGljKSB7CiAgICAgICAgIEFTU0VSVCghbV9yZW5k
ZXJlckZpbHRlckRhdGFNYXAuY29udGFpbnMoJnJlbmRlcmVyKSk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jlc291cmNlTWFza2VyLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUmVzb3VyY2VNYXNrZXIuY3BwCmlu
ZGV4IDE3ODdlMThjMmRjZWY1YmRmOTkyNDc0Y2ZjMDIyYjUxNjZhZDU4NDguLjEyMGM1N2I1Njk3
ODcyMjA0NjViYzZhZWMwYjU4MDRjNDU1Y2Q4MjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUmVzb3VyY2VNYXNrZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUmVzb3VyY2VNYXNrZXIuY3BwCkBAIC03MSw3
ICs3MSw3IEBAIGJvb2wgUmVuZGVyU1ZHUmVzb3VyY2VNYXNrZXI6OmFwcGx5UmVzb3VyY2UoUmVu
ZGVyRWxlbWVudCYgcmVuZGVyZXIsIGNvbnN0IFJlbmRlCiAgICAgICAgIGNvbnN0IFNWR1JlbmRl
clN0eWxlJiBzdmdTdHlsZSA9IHN0eWxlKCkuc3ZnU3R5bGUoKTsKICAgICAgICAgQ29sb3JTcGFj
ZSBjb2xvclNwYWNlID0gc3ZnU3R5bGUuY29sb3JJbnRlcnBvbGF0aW9uKCkgPT0gQ29sb3JJbnRl
cnBvbGF0aW9uOjpMaW5lYXJSR0IgPyBDb2xvclNwYWNlOjpMaW5lYXJSR0IgOiBDb2xvclNwYWNl
OjpTUkdCOwogICAgICAgICAvLyBGSVhNRSAoMTQ5NDcwKTogVGhpcyBpbWFnZSBidWZmZXIgc2hv
dWxkIG5vdCBiZSB1bmNvbmRpdGlvbmFsbHkgdW5hY2NlbGVyYXRlZC4gTWFraW5nIGl0IG1hdGNo
IHRoZSBjb250ZXh0IGJyZWFrcyBhbHBoYSBtYXNraW5nLCB0aG91Z2guCi0gICAgICAgIG1hc2tl
ckRhdGEtPm1hc2tJbWFnZSA9IFNWR1JlbmRlcmluZ0NvbnRleHQ6OmNyZWF0ZUltYWdlQnVmZmVy
KHJlcGFpbnRSZWN0LCBhYnNvbHV0ZVRyYW5zZm9ybSwgY29sb3JTcGFjZSwgVW5hY2NlbGVyYXRl
ZCwgY29udGV4dCk7CisgICAgICAgIG1hc2tlckRhdGEtPm1hc2tJbWFnZSA9IFNWR1JlbmRlcmlu
Z0NvbnRleHQ6OmNyZWF0ZUltYWdlQnVmZmVyKHJlcGFpbnRSZWN0LCBhYnNvbHV0ZVRyYW5zZm9y
bSwgY29sb3JTcGFjZSwgUmVuZGVyaW5nTW9kZTo6VW5hY2NlbGVyYXRlZCwgY29udGV4dCk7CiAg
ICAgICAgIGlmICghbWFza2VyRGF0YS0+bWFza0ltYWdlKQogICAgICAgICAgICAgcmV0dXJuIGZh
bHNlOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvZ3JhcGhpY3MvU1ZHSW1hZ2Uu
Y3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL2dyYXBoaWNzL1NWR0ltYWdlLmNwcAppbmRleCBiODIx
NDExYWRlNzc1MDg1NjE2ODg1NmVkMjJiNjJlYTZiNWNkM2Q5Li45Nzg2N2FhZDNjMjdiNWI1Mzhk
M2E3OWZiNDk1ZGRkNGYwZjQzZDkxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvZ3Jh
cGhpY3MvU1ZHSW1hZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9ncmFwaGljcy9TVkdJ
bWFnZS5jcHAKQEAgLTIxOCw3ICsyMTgsNyBAQCBOYXRpdmVJbWFnZVB0ciBTVkdJbWFnZTo6bmF0
aXZlSW1hZ2VGb3JDdXJyZW50RnJhbWUoY29uc3QgR3JhcGhpY3NDb250ZXh0KikKICAgICAgICAg
cmV0dXJuIG51bGxwdHI7CiAKICAgICAvLyBDYWlybyBkb2VzIG5vdCB1c2UgdGhlIGFjY2VsZXJh
dGVkIGRyYXdpbmcgZmxhZywgc28gaXQncyBPSyB0byBtYWtlIGFuIHVuY29uZGl0aW9uYWxseSB1
bmFjY2VsZXJhdGVkIGJ1ZmZlci4KLSAgICBzdGQ6OnVuaXF1ZV9wdHI8SW1hZ2VCdWZmZXI+IGJ1
ZmZlciA9IEltYWdlQnVmZmVyOjpjcmVhdGUoc2l6ZSgpLCBVbmFjY2VsZXJhdGVkKTsKKyAgICBz
dGQ6OnVuaXF1ZV9wdHI8SW1hZ2VCdWZmZXI+IGJ1ZmZlciA9IEltYWdlQnVmZmVyOjpjcmVhdGUo
c2l6ZSgpLCBSZW5kZXJpbmdNb2RlOjpVbmFjY2VsZXJhdGVkKTsKICAgICBpZiAoIWJ1ZmZlcikg
Ly8gZmFpbGVkIHRvIGFsbG9jYXRlIGltYWdlCiAgICAgICAgIHJldHVybiBudWxscHRyOwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDb250
ZXh0TWVudUNsaWVudC5tbSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0
L1dlYkNvbnRleHRNZW51Q2xpZW50Lm1tCmluZGV4IGVmMDM1MDM0MmJiODIyNDZjZDE5ZjM1NGQ5
YmNjMDI5MWYyOTA0M2QuLjI0MDdmMTA2OWI1N2ZiZjY1OTQ4ODc1NDEyOGNlOGZhYjFlY2JiZjkg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNv
bnRleHRNZW51Q2xpZW50Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVT
dXBwb3J0L1dlYkNvbnRleHRNZW51Q2xpZW50Lm1tCkBAIC0yMDIsNyArMjAyLDcgQEAgUmV0YWlu
UHRyPE5TSW1hZ2U+IFdlYkNvbnRleHRNZW51Q2xpZW50OjppbWFnZUZvckN1cnJlbnRTaGFyaW5n
U2VydmljZVBpY2tlckl0ZW0KICAgICAgICAgcmV0dXJuIG5pbDsKIAogICAgIC8vIFRoaXMgaXMg
ZWZmZWN0aXZlbHkgYSBzbmFwc2hvdCwgYW5kIHdpbGwgYmUgcGFpbnRlZCBpbiBhbiB1bmFjY2Vs
ZXJhdGVkIGZhc2hpb24gaW4gbGluZSB3aXRoIEZyYW1lU25hcHNob3R0aW5nLgotICAgIHN0ZDo6
dW5pcXVlX3B0cjxJbWFnZUJ1ZmZlcj4gYnVmZmVyID0gSW1hZ2VCdWZmZXI6OmNyZWF0ZShyZWN0
LnNpemUoKSwgVW5hY2NlbGVyYXRlZCk7CisgICAgc3RkOjp1bmlxdWVfcHRyPEltYWdlQnVmZmVy
PiBidWZmZXIgPSBJbWFnZUJ1ZmZlcjo6Y3JlYXRlKHJlY3Quc2l6ZSgpLCBSZW5kZXJpbmdNb2Rl
OjpVbmFjY2VsZXJhdGVkKTsKICAgICBpZiAoIWJ1ZmZlcikKICAgICAgICAgcmV0dXJuIG5pbDsK
IAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>388362</attachid>
            <date>2020-01-21 15:37:15 -0800</date>
            <delta_ts>2020-01-21 16:26:29 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-206516-20200121153715.patch</filename>
            <type>text/plain</type>
            <size>43138</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI1NDg4NSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDgzIEBACisyMDIwLTAxLTIxICBTYWlkIEFi
b3UtSGFsbGF3YSAgPHNhYm91aGFsbGF3YUBhcHBsZS5jb20+CisKKyAgICAgICAgTWFrZSBSZW5k
ZXJpbmdNb2RlIGFuZCBBbHBoYVByZW11bHRpcGxpY2F0aW9uIGVudW0gY2xhc3NlcyBhbmQgbW92
ZSB0aGVtIHRvIHNlcGFyYXRlIGhlYWRlcnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTIwNjUxNgorCisgICAgICAgIFJldmlld2VkIGJ5IFRpbSBIb3J0
b24uCisKKyAgICAgICAgUmVuZGVyaW5nTW9kZSBhbmQgQWxwaGFQcmVtdWx0aXBsaWNhdGlvbiBu
ZWVkIHRvIGJlIGVuY29kZWQgYW5kIGRlY29kZWQKKyAgICAgICAgd2hlbiB0aGV5IGFyZSBzZW50
IGZyb20gdGhlIFdlYlByb2Nlc3MgdG8gdGhlIEdQVVByb2Nlc3MuCisKKyAgICAgICAgKiBIZWFk
ZXJzLmNtYWtlOgorICAgICAgICAqIE1vZHVsZXMvYXN5bmMtY2xpcGJvYXJkL0NsaXBib2FyZEl0
ZW1CaW5kaW5nc0RhdGFTb3VyY2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2xpcGJvYXJkSXRl
bUJpbmRpbmdzRGF0YVNvdXJjZTo6Q2xpcGJvYXJkSXRlbVR5cGVMb2FkZXI6OnNhbml0aXplRGF0
YUlmTmVlZGVkKToKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6
CisgICAgICAgICogYmluZGluZ3MvanMvU2VyaWFsaXplZFNjcmlwdFZhbHVlLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkNsb25lRGVzZXJpYWxpemVyOjpyZWFkSW1hZ2VCaXRtYXApOgorICAgICAg
ICAqIGNzcy9DU1NGaWx0ZXJJbWFnZVZhbHVlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU0Zp
bHRlckltYWdlVmFsdWU6OmltYWdlKToKKyAgICAgICAgKiBodG1sL0N1c3RvbVBhaW50Q2FudmFz
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkN1c3RvbVBhaW50Q2FudmFzOjpjb3BpZWRJbWFnZSBj
b25zdCk6CisgICAgICAgICogaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpIVE1MQ2FudmFzRWxlbWVudDo6Y3JlYXRlSW1hZ2VCdWZmZXIgY29uc3QpOgorICAg
ICAgICAqIGh0bWwvSW1hZ2VCaXRtYXAuY3BwOgorICAgICAgICAqIGh0bWwvT2Zmc2NyZWVuQ2Fu
dmFzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok9mZnNjcmVlbkNhbnZhczo6dHJhbnNmZXJUb0lt
YWdlQml0bWFwKToKKyAgICAgICAgKFdlYkNvcmU6Ok9mZnNjcmVlbkNhbnZhczo6Y3JlYXRlSW1h
Z2VCdWZmZXIgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6T2Zmc2NyZWVuQ2FudmFzOjp0YWtl
SW1hZ2VCdWZmZXIgY29uc3QpOgorICAgICAgICAqIGh0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmlu
Z0NvbnRleHQyREJhc2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2FudmFzUmVuZGVyaW5nQ29u
dGV4dDJEQmFzZTo6Y3JlYXRlQ29tcG9zaXRpbmdCdWZmZXIpOgorICAgICAgICAoV2ViQ29yZTo6
Q2FudmFzUmVuZGVyaW5nQ29udGV4dDJEQmFzZTo6Y3JlYXRlUGF0dGVybik6CisgICAgICAgICog
aHRtbC9jYW52YXMvSW1hZ2VCaXRtYXBSZW5kZXJpbmdDb250ZXh0LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkltYWdlQml0bWFwUmVuZGVyaW5nQ29udGV4dDo6aXNBY2NlbGVyYXRlZCBjb25zdCk6
CisgICAgICAgICogaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpMUlVJbWFnZUJ1ZmZl
ckNhY2hlOjppbWFnZUJ1ZmZlcik6CisgICAgICAgICogaHRtbC9zaGFkb3cvTWVkaWFDb250cm9s
RWxlbWVudHMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFDb250cm9sVGV4dFRyYWNrQ29u
dGFpbmVyRWxlbWVudDo6Y3JlYXRlVGV4dFRyYWNrUmVwcmVzZW50YXRpb25JbWFnZSk6CisgICAg
ICAgICogcGFnZS9GcmFtZVNuYXBzaG90dGluZy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpzbmFw
c2hvdEZyYW1lUmVjdFdpdGhDbGlwKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9BbHBo
YVByZW11bHRpcGxpY2F0aW9uLmg6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L0JpdG1hcEltYWdlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkJpdG1hcEltYWdlOjpuYXRpdmVJ
bWFnZUZvckN1cnJlbnRGcmFtZVJlc3BlY3RpbmdPcmllbnRhdGlvbik6CisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0Lmg6CisgICAgICAgIChXZWJDb3JlOjpHcmFw
aGljc0NvbnRleHQ6OnJlbmRlcmluZ01vZGUgY29uc3QpOgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL0dyYXBoaWNzVHlwZXMuY3BwOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0dy
YXBoaWNzVHlwZXMuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9JbWFnZUJ1ZmZlci5o
OgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL1JlbmRlcmluZ01vZGUuaDogQWRkZWQuCisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvU2hhZG93Qmx1ci5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpTY3JhdGNoQnVmZmVyOjpnZXRTY3JhdGNoQnVmZmVyKToKKyAgICAgICAgKFdlYkNvcmU6
OlNoYWRvd0JsdXI6OmRyYXdSZWN0U2hhZG93V2l0aG91dFRpbGluZyk6CisgICAgICAgIChXZWJD
b3JlOjpTaGFkb3dCbHVyOjpkcmF3SW5zZXRTaGFkb3dXaXRob3V0VGlsaW5nKToKKyAgICAgICAg
KFdlYkNvcmU6OlNoYWRvd0JsdXI6OmRyYXdSZWN0U2hhZG93V2l0aFRpbGluZyk6CisgICAgICAg
IChXZWJDb3JlOjpTaGFkb3dCbHVyOjpkcmF3SW5zZXRTaGFkb3dXaXRoVGlsaW5nKToKKyAgICAg
ICAgKFdlYkNvcmU6OlNoYWRvd0JsdXI6OmRyYXdTaGFkb3dMYXllcik6CisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3MvY2Fpcm8vSW1hZ2VCdWZmZXJDYWlyby5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpJbWFnZUJ1ZmZlckRhdGE6On5JbWFnZUJ1ZmZlckRhdGEpOgorICAgICAgICAoV2ViQ29y
ZTo6SW1hZ2VCdWZmZXI6OkltYWdlQnVmZmVyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9jZy9JbWFnZUJ1ZmZlckNHLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkltYWdlQnVmZmVyOjpJ
bWFnZUJ1ZmZlcik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSW1hZ2VCdWZmZXJE
YXRhQ0cuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZpbHRlci5oOgor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9CaXRtYXBUZXh0dXJlLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkJpdG1hcFRleHR1cmU6OnVwZGF0ZUNvbnRlbnRzKToKKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy93aW4vSW1hZ2VCdWZmZXJEaXJlY3QyRC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpJbWFnZUJ1ZmZlcjo6SW1hZ2VCdWZmZXIpOgorICAgICAgICAqIHBsYXRmb3Jt
L21vY2svTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TW9j
a1JlYWx0aW1lVmlkZW9Tb3VyY2U6OmltYWdlQnVmZmVyIGNvbnN0KToKKyAgICAgICAgKiByZW5k
ZXJpbmcvUmVuZGVyTGF5ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXI6OmNh
bGN1bGF0ZUNsaXBSZWN0cyBjb25zdCk6CisgICAgICAgICogcmVuZGVyaW5nL3NoYXBlcy9TaGFw
ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTaGFwZTo6Y3JlYXRlUmFzdGVyU2hhcGUpOgorICAg
ICAgICAqIHJlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUmVzb3VyY2VDbGlwcGVyLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlJlbmRlclNWR1Jlc291cmNlQ2xpcHBlcjo6YXBwbHlDbGlwcGluZ1RvQ29u
dGV4dCk6CisgICAgICAgICogcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdSZXNvdXJjZUZpbHRlci5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTVkdSZXNvdXJjZUZpbHRlcjo6YXBwbHlSZXNv
dXJjZSk6CisgICAgICAgICogcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdSZXNvdXJjZU1hc2tlci5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTVkdSZXNvdXJjZU1hc2tlcjo6YXBwbHlSZXNv
dXJjZSk6CisgICAgICAgICogc3ZnL2dyYXBoaWNzL1NWR0ltYWdlLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlNWR0ltYWdlOjpuYXRpdmVJbWFnZUZvckN1cnJlbnRGcmFtZSk6CisKIDIwMjAtMDEt
MjEgIFJvYiBCdWlzICA8cmJ1aXNAaWdhbGlhLmNvbT4KIAogICAgICAgICBBZGQgYnVpbGQgZmxh
ZyBmb3Igc3RhbGUtd2hpbGUtcmV2YWxpZGF0ZQpJbmRleDogU291cmNlL1dlYkNvcmUvSGVhZGVy
cy5jbWFrZQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCShyZXZp
c2lvbiAyNTQ4ODUpCisrKyBTb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCSh3b3JraW5nIGNv
cHkpCkBAIC0xMDMxLDYgKzEwMzEsNyBAQCBzZXQoV2ViQ29yZV9QUklWQVRFX0ZSQU1FV09SS19I
RUFERVJTCiAgICAgcGxhdGZvcm0vZ2FtZXBhZC9HYW1lcGFkUHJvdmlkZXJDbGllbnQuaAogICAg
IHBsYXRmb3JtL2dhbWVwYWQvUGxhdGZvcm1HYW1lcGFkLmgKIAorICAgIHBsYXRmb3JtL2dyYXBo
aWNzL0FscGhhUHJlbXVsdGlwbGljYXRpb24uaAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL0FOR0xF
V2ViS2l0QnJpZGdlLmgKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9BdWRpb1RyYWNrUHJpdmF0ZS5o
CiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvQml0bWFwSW1hZ2UuaApAQCAtMTEyOCw2ICsxMTI5LDcg
QEAgc2V0KFdlYkNvcmVfUFJJVkFURV9GUkFNRVdPUktfSEVBREVSUwogICAgIHBsYXRmb3JtL2dy
YXBoaWNzL1BsYXRmb3JtVGltZVJhbmdlcy5oCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvUmVnaW9u
LmgKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9SZW1vdGVWaWRlb1NhbXBsZS5oCisgICAgcGxhdGZv
cm0vZ3JhcGhpY3MvUmVuZGVyaW5nTW9kZS5oCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvUm91bmRl
ZFJlY3QuaAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL1N0cmluZ1RydW5jYXRvci5oCiAgICAgcGxh
dGZvcm0vZ3JhcGhpY3MvVGFiU2l6ZS5oCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2Fz
eW5jLWNsaXBib2FyZC9DbGlwYm9hcmRJdGVtQmluZGluZ3NEYXRhU291cmNlLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FzeW5jLWNsaXBib2FyZC9DbGlwYm9hcmRJ
dGVtQmluZGluZ3NEYXRhU291cmNlLmNwcAkocmV2aXNpb24gMjU0ODg1KQorKysgU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9hc3luYy1jbGlwYm9hcmQvQ2xpcGJvYXJkSXRlbUJpbmRpbmdzRGF0YVNv
dXJjZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI4NCw3ICsyODQsNyBAQCB2b2lkIENsaXBib2Fy
ZEl0ZW1CaW5kaW5nc0RhdGFTb3VyY2U6OkNsCiAKICAgICAgICAgYXV0byBiaXRtYXBJbWFnZSA9
IEJpdG1hcEltYWdlOjpjcmVhdGUoKTsKICAgICAgICAgYml0bWFwSW1hZ2UtPnNldERhdGEoV1RG
TW92ZShidWZmZXJUb1Nhbml0aXplKSwgdHJ1ZSk7Ci0gICAgICAgIGF1dG8gaW1hZ2VCdWZmZXIg
PSBJbWFnZUJ1ZmZlcjo6Y3JlYXRlKGJpdG1hcEltYWdlLT5zaXplKCksIFVuYWNjZWxlcmF0ZWQp
OworICAgICAgICBhdXRvIGltYWdlQnVmZmVyID0gSW1hZ2VCdWZmZXI6OmNyZWF0ZShiaXRtYXBJ
bWFnZS0+c2l6ZSgpLCBSZW5kZXJpbmdNb2RlOjpVbmFjY2VsZXJhdGVkKTsKICAgICAgICAgaWYg
KCFpbWFnZUJ1ZmZlcikgewogICAgICAgICAgICAgbV9kYXRhID0geyBudWxsU3RyaW5nKCkgfTsK
ICAgICAgICAgICAgIHJldHVybjsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHJldmlzaW9uIDI1NDg4NSkKKysrIFNvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkod29ya2luZyBjb3B5KQpA
QCAtMjE0MSw2ICsyMTQxLDggQEAKIAkJNzI0RUQzMzIxQTNBOEIyMzAwRjVGMTNDIC8qIEpTRVhU
QmxlbmRNaW5NYXguaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDcyNEVEMzMwMUEzQThCMjMwMEY1RjEzQyAvKiBKU0VYVEJsZW5kTWluTWF4LmggKi87IH07
CiAJCTcyNEVFNTUwMURDODBEN0YwMEE5MUZGQiAvKiBBY3Rpdml0eVN0YXRlLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3MjRFRTU0RTFEQzdGMjVCMDBB
OTFGRkIgLyogQWN0aXZpdHlTdGF0ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07CiAJCTcyNEVFNTUxMURDODBEODQwMEE5MUZGQiAvKiBBY3Rpdml0eVN0
YXRlQ2hhbmdlT2JzZXJ2ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDcyNEVFNTRGMURDN0YyNUIwMEE5MUZGQiAvKiBBY3Rpdml0eVN0YXRlQ2hhbmdl
T2JzZXJ2ZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OworCQk3Mjk5QkM2NzIzRDZBNTMyMDBDQzY4ODMgLyogQWxwaGFQcmVtdWx0aXBsaWNhdGlvbi5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzI5OUJDNjQy
M0Q2ODZBNjAwQ0M2ODgzIC8qIEFscGhhUHJlbXVsdGlwbGljYXRpb24uaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk3Mjk5QkM2ODIzRDZBNTNFMDBD
QzY4ODMgLyogUmVuZGVyaW5nTW9kZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gNzI5OUJDNjYyM0Q2ODZDNjAwQ0M2ODgzIC8qIFJlbmRlcmluZ01vZGUu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk3NTUz
Q0ZFODEwOEY0NzNGMDBFQTI4MUUgLyogVGltZWxpbmVSZWNvcmRGYWN0b3J5LmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3NTUzQ0ZFNjEwOEY0NzNGMDBF
QTI4MUUgLyogVGltZWxpbmVSZWNvcmRGYWN0b3J5LmggKi87IH07CiAJCTc1NzkzRTg0MEQwQ0Uw
QjMwMDdGQzBBQyAvKiBNZXNzYWdlRXZlbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDc1NzkzRTgxMEQwQ0UwQjMwMDdGQzBBQyAvKiBNZXNzYWdlRXZl
bnQuaCAqLzsgfTsKIAkJNzU3OTNFQzkwRDBDRTcyRDAwN0ZDMEFDIC8qIEpTTWVzc2FnZUV2ZW50
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3NTc5M0VD
NzBEMENFNzJEMDA3RkMwQUMgLyogSlNNZXNzYWdlRXZlbnQuaCAqLzsgfTsKQEAgLTk2NDAsNiAr
OTY0Miw4IEBACiAJCTcyN0FGRUQxMUEyRUE2QTAwMDA0NDJFOCAvKiBFWFRzUkdCLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEVYVHNSR0IuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk3MjdBRkVEMjFBMkVBNkEwMDAwNDQyRTggLyogRVhUc1JHQi5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBFWFRzUkdCLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTcyN0FGRUQzMUEyRUE2QTAwMDA0NDJFOCAvKiBFWFRzUkdCLmlk
bCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBFWFRzUkdCLmlkbDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJNzI5OUJDNjQyM0Q2ODZBNjAwQ0M2ODgzIC8qIEFscGhhUHJlbXVsdGlwbGlj
YXRpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQWxwaGFQcmVtdWx0aXBsaWNhdGlvbi5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQk3Mjk5QkM2NjIzRDY4NkM2MDBDQzY4ODMgLyogUmVuZGVy
aW5nTW9kZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW5kZXJpbmdNb2RlLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTcyQzE4QTNGMjMwQjA0QjcwMDY4NDdDNyAvKiBJbWFnZVBhaW50aW5n
T3B0aW9ucy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJbWFnZVBhaW50aW5nT3B0aW9ucy5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk3MkU0MTc2MTFBMkU4RDJGMDA0QzU2MkEgLyogSlNFWFRz
UkdCLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTRVhUc1JHQi5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTcyRTQxNzYyMUEyRThEMkYwMDRDNTYy
QSAvKiBKU0VYVHNSR0IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNFWFRz
UkdCLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yNTAxOCw2ICsyNTAyMiw3IEBA
CiAJCQkJRkJDMjIwREQxMjM3RkJFQjAwQkNGNzg4IC8qIG9wZW5nbCAqLywKIAkJCQkzNzIxNDkz
MzE4RjBCNkQ2MDAxNTZFREMgLyogb3BlbnR5cGUgKi8sCiAJCQkJNDlFOTExQjIwRUY4NkQyNzAw
OUQwQ0FGIC8qIHRyYW5zZm9ybXMgKi8sCisJCQkJNzI5OUJDNjQyM0Q2ODZBNjAwQ0M2ODgzIC8q
IEFscGhhUHJlbXVsdGlwbGljYXRpb24uaCAqLywKIAkJCQk0OTA3MDdFNDEyMTlDMDQzMDBEOTBF
NTEgLyogQU5HTEVXZWJLaXRCcmlkZ2UuY3BwICovLAogCQkJCTQ5MDcwN0U1MTIxOUMwNDMwMEQ5
MEU1MSAvKiBBTkdMRVdlYktpdEJyaWRnZS5oICovLAogCQkJCUJFRjI5RUU5MTcxNUREMDkwMEM0
QjRDOSAvKiBBdWRpb1RyYWNrUHJpdmF0ZS5oICovLApAQCAtMjUxOTQsNiArMjUxOTksNyBAQAog
CQkJCUJDQUI0MTgwMTNFMzU2RTgwMEQ4QUFGMyAvKiBSZWdpb24uaCAqLywKIAkJCQkwNzNBMTU1
MTIxNzdBMzk4MDBFQTA4RjIgLyogUmVtb3RlVmlkZW9TYW1wbGUuY3BwICovLAogCQkJCTA3M0Ex
NTUzMjE3N0EzOUEwMEVBMDhGMiAvKiBSZW1vdGVWaWRlb1NhbXBsZS5oICovLAorCQkJCTcyOTlC
QzY2MjNENjg2QzYwMENDNjg4MyAvKiBSZW5kZXJpbmdNb2RlLmggKi8sCiAJCQkJQTczRjk1RkMx
MkM5N0JGRTAwMzFBQUY5IC8qIFJvdW5kZWRSZWN0LmNwcCAqLywKIAkJCQlBNzNGOTVGRDEyQzk3
QkZFMDAzMUFBRjkgLyogUm91bmRlZFJlY3QuaCAqLywKIAkJCQkwRjNERDQ0RDEyRjVFQTFCMDAw
RDkxOTAgLyogU2hhZG93Qmx1ci5jcHAgKi8sCkBAIC0yOTA1MSw2ICsyOTA1Nyw3IEBACiAJCQkJ
QkNGN0U0OTExMzdDRDdDNzAwMUREQUU3IC8qIEFkanVzdFZpZXdTaXplT3JOb3QuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTg0RDBDNDA2MTExNUYxRUEwMDE4QUEzNCAvKiBBZmZpbmVUcmFuc2Zvcm0u
aCBpbiBIZWFkZXJzICovLAogCQkJCTgzQkI1Qzg4MUQ1RDZGNDUwMDVBNzFGNCAvKiBBbGxEZXNj
ZW5kYW50c0NvbGxlY3Rpb24uaCBpbiBIZWFkZXJzICovLAorCQkJCTcyOTlCQzY3MjNENkE1MzIw
MENDNjg4MyAvKiBBbHBoYVByZW11bHRpcGxpY2F0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQlD
RURBMTJENzE1MkNBMUNCMDBEOUUwOEQgLyogQWx0ZXJuYXRpdmVUZXh0Q2xpZW50LmggaW4gSGVh
ZGVycyAqLywKIAkJCQlDRTA4QzNEMjE1MkI1OTlBMDAyMUI4QzIgLyogQWx0ZXJuYXRpdmVUZXh0
Q29udHJvbGxlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQ0U3QjJEQjMxNTg2QUJBRDAwOThCM0ZB
IC8qIEFsdGVybmF0aXZlVGV4dFVJQ29udHJvbGxlci5oIGluIEhlYWRlcnMgKi8sCkBAIC0zMjAy
NSw2ICszMjAzMiw3IEBACiAJCQkJQkNFQTQ4NzYwOTdEOTMwMjAwOTRDOUU0IC8qIFJlbmRlcklt
YWdlLmggaW4gSGVhZGVycyAqLywKIAkJCQkwOEYyRjAwQTEyMTNFNjE3MDBEQ0VDNDggLyogUmVu
ZGVySW1hZ2VSZXNvdXJjZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDg2NDFENDgxMjE0MkY3RDAw
OERFOUY2IC8qIFJlbmRlckltYWdlUmVzb3VyY2VTdHlsZUltYWdlLmggaW4gSGVhZGVycyAqLywK
KwkJCQk3Mjk5QkM2ODIzRDZBNTNFMDBDQzY4ODMgLyogUmVuZGVyaW5nTW9kZS5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJNTU2QzdDNEIyMjEyMzk5NzAwOUIwNkNBIC8qIFJlbmRlcmluZ1VwZGF0ZVNj
aGVkdWxlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkNFQTQ4NzgwOTdEOTMwMjAwOTRDOUU0IC8q
IFJlbmRlcklubGluZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjU5NUZGNDcxODI0Q0VFMzAwRkY1
MUNEIC8qIFJlbmRlckl0ZXJhdG9yLmggaW4gSGVhZGVycyAqLywKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2VyaWFsaXplZFNjcmlwdFZhbHVlLmNwcAkocmV2
aXNpb24gMjU0ODg1KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2VyaWFsaXplZFNj
cmlwdFZhbHVlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjc4NSw3ICsyNzg1LDcgQEAgcHJpdmF0
ZToKICAgICAgICAgICAgIHJldHVybiBKU1ZhbHVlKCk7CiAgICAgICAgIH0KIAotICAgICAgICBh
dXRvIGJ1ZmZlciA9IEltYWdlQnVmZmVyOjpjcmVhdGUoRmxvYXRTaXplKGxvZ2ljYWxXaWR0aCwg
bG9naWNhbEhlaWdodCksIFVuYWNjZWxlcmF0ZWQsIHJlc29sdXRpb25TY2FsZSk7CisgICAgICAg
IGF1dG8gYnVmZmVyID0gSW1hZ2VCdWZmZXI6OmNyZWF0ZShGbG9hdFNpemUobG9naWNhbFdpZHRo
LCBsb2dpY2FsSGVpZ2h0KSwgUmVuZGVyaW5nTW9kZTo6VW5hY2NlbGVyYXRlZCwgcmVzb2x1dGlv
blNjYWxlKTsKICAgICAgICAgaWYgKCFidWZmZXIpIHsKICAgICAgICAgICAgIGZhaWwoKTsKICAg
ICAgICAgICAgIHJldHVybiBKU1ZhbHVlKCk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NT
RmlsdGVySW1hZ2VWYWx1ZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvY3NzL0NT
U0ZpbHRlckltYWdlVmFsdWUuY3BwCShyZXZpc2lvbiAyNTQ4ODUpCisrKyBTb3VyY2UvV2ViQ29y
ZS9jc3MvQ1NTRmlsdGVySW1hZ2VWYWx1ZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTExNiw3ICsx
MTYsNyBAQCBSZWZQdHI8SW1hZ2U+IENTU0ZpbHRlckltYWdlVmFsdWU6OmltYWdlCiAKICAgICAv
LyBUcmFuc2Zvcm0gSW1hZ2UgaW50byBJbWFnZUJ1ZmZlci4KICAgICAvLyBGSVhNRSAoMTQ5NDI0
KTogVGhpcyBidWZmZXIgc2hvdWxkIG5vdCBiZSB1bmNvbmRpdGlvbmFsbHkgdW5hY2NlbGVyYXRl
ZC4KLSAgICBhdXRvIHRleHR1cmUgPSBJbWFnZUJ1ZmZlcjo6Y3JlYXRlKHNpemUsIFVuYWNjZWxl
cmF0ZWQpOworICAgIGF1dG8gdGV4dHVyZSA9IEltYWdlQnVmZmVyOjpjcmVhdGUoc2l6ZSwgUmVu
ZGVyaW5nTW9kZTo6VW5hY2NlbGVyYXRlZCk7CiAgICAgaWYgKCF0ZXh0dXJlKQogICAgICAgICBy
ZXR1cm4gJkltYWdlOjpudWxsSW1hZ2UoKTsKIApJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9D
dXN0b21QYWludENhbnZhcy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9D
dXN0b21QYWludENhbnZhcy5jcHAJKHJldmlzaW9uIDI1NDg4NSkKKysrIFNvdXJjZS9XZWJDb3Jl
L2h0bWwvQ3VzdG9tUGFpbnRDYW52YXMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC05Myw3ICs5Myw3
IEBAIEltYWdlKiBDdXN0b21QYWludENhbnZhczo6Y29waWVkSW1hZ2UoKSAKICAgICBpZiAoIXdp
ZHRoKCkgfHwgIWhlaWdodCgpKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAotICAgIG1fY29w
aWVkQnVmZmVyID0gSW1hZ2VCdWZmZXI6OmNyZWF0ZShzaXplKCksIFVuYWNjZWxlcmF0ZWQsIDEs
IENvbG9yU3BhY2U6OlNSR0IsIG51bGxwdHIpOworICAgIG1fY29waWVkQnVmZmVyID0gSW1hZ2VC
dWZmZXI6OmNyZWF0ZShzaXplKCksIFJlbmRlcmluZ01vZGU6OlVuYWNjZWxlcmF0ZWQsIDEsIENv
bG9yU3BhY2U6OlNSR0IsIG51bGxwdHIpOwogICAgIGlmICghbV9jb3BpZWRCdWZmZXIpCiAgICAg
ICAgIHJldHVybiBudWxscHRyOwogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxDYW52
YXNFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxDYW52
YXNFbGVtZW50LmNwcAkocmV2aXNpb24gMjU0ODg1KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MQ2FudmFzRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTg4NSw3ICs4ODUsNyBAQCB2
b2lkIEhUTUxDYW52YXNFbGVtZW50OjpjcmVhdGVJbWFnZUJ1ZmZlCiAgICAgaWYgKCF3aWR0aCgp
IHx8ICFoZWlnaHQoKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgUmVuZGVyaW5nTW9kZSByZW5k
ZXJpbmdNb2RlID0gc2hvdWxkQWNjZWxlcmF0ZShzaXplKCkpID8gQWNjZWxlcmF0ZWQgOiBVbmFj
Y2VsZXJhdGVkOworICAgIFJlbmRlcmluZ01vZGUgcmVuZGVyaW5nTW9kZSA9IHNob3VsZEFjY2Vs
ZXJhdGUoc2l6ZSgpKSA/IFJlbmRlcmluZ01vZGU6OkFjY2VsZXJhdGVkIDogUmVuZGVyaW5nTW9k
ZTo6VW5hY2NlbGVyYXRlZDsKIAogICAgIGF1dG8gaG9zdFdpbmRvdyA9IChkb2N1bWVudCgpLnZp
ZXcoKSAmJiBkb2N1bWVudCgpLnZpZXcoKS0+cm9vdCgpKSA/IGRvY3VtZW50KCkudmlldygpLT5y
b290KCktPmhvc3RXaW5kb3coKSA6IG51bGxwdHI7CiAgICAgc2V0SW1hZ2VCdWZmZXIoSW1hZ2VC
dWZmZXI6OmNyZWF0ZShzaXplKCksIHJlbmRlcmluZ01vZGUsIDEsIENvbG9yU3BhY2U6OlNSR0Is
IGhvc3RXaW5kb3cpKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvSW1hZ2VCaXRtYXAuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvSW1hZ2VCaXRtYXAuY3BwCShyZXZp
c2lvbiAyNTQ4ODUpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL0ltYWdlQml0bWFwLmNwcAkod29y
a2luZyBjb3B5KQpAQCAtNjEsOSArNjEsOSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBXVEZfTUFL
RV9JU09fQUxMT0NBVEVEX0lNUEwoSW1hZ2VCaXRtYXApOwogCiAjaWYgVVNFKElPU1VSRkFDRV9D
QU5WQVNfQkFDS0lOR19TVE9SRSkgfHwgRU5BQkxFKEFDQ0VMRVJBVEVEXzJEX0NBTlZBUykKLXN0
YXRpYyBSZW5kZXJpbmdNb2RlIGJ1ZmZlclJlbmRlcmluZ01vZGUgPSBBY2NlbGVyYXRlZDsKK3N0
YXRpYyBSZW5kZXJpbmdNb2RlIGJ1ZmZlclJlbmRlcmluZ01vZGUgPSBSZW5kZXJpbmdNb2RlOjpB
Y2NlbGVyYXRlZDsKICNlbHNlCi1zdGF0aWMgUmVuZGVyaW5nTW9kZSBidWZmZXJSZW5kZXJpbmdN
b2RlID0gVW5hY2NlbGVyYXRlZDsKK3N0YXRpYyBSZW5kZXJpbmdNb2RlIGJ1ZmZlclJlbmRlcmlu
Z01vZGUgPSBSZW5kZXJpbmdNb2RlOjpVbmFjY2VsZXJhdGVkOwogI2VuZGlmCiAKIFJlZjxJbWFn
ZUJpdG1hcD4gSW1hZ2VCaXRtYXA6OmNyZWF0ZShJbnRTaXplIHNpemUpCkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9odG1sL09mZnNjcmVlbkNhbnZhcy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvaHRtbC9PZmZzY3JlZW5DYW52YXMuY3BwCShyZXZpc2lvbiAyNTQ4ODUpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9odG1sL09mZnNjcmVlbkNhbnZhcy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEy
Niw3ICsxMjYsNyBAQCBFeGNlcHRpb25PcjxSZWZQdHI8SW1hZ2VCaXRtYXA+PiBPZmZzY3JlCiAg
ICAgICAgICAgICByZXR1cm4geyBSZWZQdHI8SW1hZ2VCaXRtYXA+IHsgbnVsbHB0ciB9IH07CiAK
ICAgICAgICAgaWYgKCFtX2hhc0NyZWF0ZWRJbWFnZUJ1ZmZlcikKLSAgICAgICAgICAgIHJldHVy
biB7IEltYWdlQml0bWFwOjpjcmVhdGUoeyBJbWFnZUJ1ZmZlcjo6Y3JlYXRlKHNpemUoKSwgVW5h
Y2NlbGVyYXRlZCksIHRydWUgfSkgfTsKKyAgICAgICAgICAgIHJldHVybiB7IEltYWdlQml0bWFw
OjpjcmVhdGUoeyBJbWFnZUJ1ZmZlcjo6Y3JlYXRlKHNpemUoKSwgUmVuZGVyaW5nTW9kZTo6VW5h
Y2NlbGVyYXRlZCksIHRydWUgfSkgfTsKIAogICAgICAgICBhdXRvIGJ1ZmZlciA9IHRha2VJbWFn
ZUJ1ZmZlcigpOwogICAgICAgICBpZiAoIWJ1ZmZlcikKQEAgLTI0Myw3ICsyNDMsNyBAQCB2b2lk
IE9mZnNjcmVlbkNhbnZhczo6Y3JlYXRlSW1hZ2VCdWZmZXIoCiAgICAgaWYgKCF3aWR0aCgpIHx8
ICFoZWlnaHQoKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgc2V0SW1hZ2VCdWZmZXIoSW1hZ2VC
dWZmZXI6OmNyZWF0ZShzaXplKCksIFVuYWNjZWxlcmF0ZWQpKTsKKyAgICBzZXRJbWFnZUJ1ZmZl
cihJbWFnZUJ1ZmZlcjo6Y3JlYXRlKHNpemUoKSwgUmVuZGVyaW5nTW9kZTo6VW5hY2NlbGVyYXRl
ZCkpOwogfQogCiBzdGQ6OnVuaXF1ZV9wdHI8SW1hZ2VCdWZmZXI+IE9mZnNjcmVlbkNhbnZhczo6
dGFrZUltYWdlQnVmZmVyKCkgY29uc3QKQEAgLTI1Nyw3ICsyNTcsNyBAQCBzdGQ6OnVuaXF1ZV9w
dHI8SW1hZ2VCdWZmZXI+IE9mZnNjcmVlbkNhCiAgICAgaWYgKHNpemUoKS5pc0VtcHR5KCkpCiAg
ICAgICAgIHJldHVybiBudWxscHRyOwogCi0gICAgcmV0dXJuIHNldEltYWdlQnVmZmVyKEltYWdl
QnVmZmVyOjpjcmVhdGUoc2l6ZSgpLCBVbmFjY2VsZXJhdGVkKSk7CisgICAgcmV0dXJuIHNldElt
YWdlQnVmZmVyKEltYWdlQnVmZmVyOjpjcmVhdGUoc2l6ZSgpLCBSZW5kZXJpbmdNb2RlOjpVbmFj
Y2VsZXJhdGVkKSk7CiB9CiAKIHZvaWQgT2Zmc2NyZWVuQ2FudmFzOjpyZXNldCgpCkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0MkRCYXNlLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNSZW5kZXJp
bmdDb250ZXh0MkRCYXNlLmNwcAkocmV2aXNpb24gMjU0ODg1KQorKysgU291cmNlL1dlYkNvcmUv
aHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEQmFzZS5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTE4MDYsNyArMTgwNiw3IEBAIHRlbXBsYXRlPGNsYXNzIFQ+IEludFJlY3QgQ2FudmFz
UmVuZGVyaW4KIAogc3RkOjp1bmlxdWVfcHRyPEltYWdlQnVmZmVyPiBDYW52YXNSZW5kZXJpbmdD
b250ZXh0MkRCYXNlOjpjcmVhdGVDb21wb3NpdGluZ0J1ZmZlcihjb25zdCBJbnRSZWN0JiBidWZm
ZXJSZWN0KQogewotICAgIHJldHVybiBJbWFnZUJ1ZmZlcjo6Y3JlYXRlKGJ1ZmZlclJlY3Quc2l6
ZSgpLCBpc0FjY2VsZXJhdGVkKCkgPyBBY2NlbGVyYXRlZCA6IFVuYWNjZWxlcmF0ZWQpOworICAg
IHJldHVybiBJbWFnZUJ1ZmZlcjo6Y3JlYXRlKGJ1ZmZlclJlY3Quc2l6ZSgpLCBpc0FjY2VsZXJh
dGVkKCkgPyBSZW5kZXJpbmdNb2RlOjpBY2NlbGVyYXRlZCA6IFJlbmRlcmluZ01vZGU6OlVuYWNj
ZWxlcmF0ZWQpOwogfQogCiB2b2lkIENhbnZhc1JlbmRlcmluZ0NvbnRleHQyREJhc2U6OmNvbXBv
c2l0ZUJ1ZmZlcihJbWFnZUJ1ZmZlciYgYnVmZmVyLCBjb25zdCBJbnRSZWN0JiBidWZmZXJSZWN0
LCBDb21wb3NpdGVPcGVyYXRvciBvcCkKQEAgLTE5OTAsNyArMTk5MCw3IEBAIEV4Y2VwdGlvbk9y
PFJlZlB0cjxDYW52YXNQYXR0ZXJuPj4gQ2FudmEKICAgICAgICAgcmV0dXJuIFJlZlB0cjxDYW52
YXNQYXR0ZXJuPiB7IENhbnZhc1BhdHRlcm46OmNyZWF0ZShCaXRtYXBJbWFnZTo6Y3JlYXRlKFdU
Rk1vdmUobmF0aXZlSW1hZ2UpKSwgcmVwZWF0WCwgcmVwZWF0WSwgb3JpZ2luQ2xlYW4pIH07CiAj
ZW5kaWYKIAotICAgIGF1dG8gaW1hZ2VCdWZmZXIgPSBJbWFnZUJ1ZmZlcjo6Y3JlYXRlKHNpemUo
dmlkZW9FbGVtZW50KSwgZHJhd2luZ0NvbnRleHQoKSA/IGRyYXdpbmdDb250ZXh0KCktPnJlbmRl
cmluZ01vZGUoKSA6IEFjY2VsZXJhdGVkKTsKKyAgICBhdXRvIGltYWdlQnVmZmVyID0gSW1hZ2VC
dWZmZXI6OmNyZWF0ZShzaXplKHZpZGVvRWxlbWVudCksIGRyYXdpbmdDb250ZXh0KCkgPyBkcmF3
aW5nQ29udGV4dCgpLT5yZW5kZXJpbmdNb2RlKCkgOiBSZW5kZXJpbmdNb2RlOjpBY2NlbGVyYXRl
ZCk7CiAgICAgaWYgKCFpbWFnZUJ1ZmZlcikKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0ltYWdlQml0bWFwUmVuZGVyaW5nQ29udGV4
dC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvSW1hZ2VCaXRt
YXBSZW5kZXJpbmdDb250ZXh0LmNwcAkocmV2aXNpb24gMjU0ODg1KQorKysgU291cmNlL1dlYkNv
cmUvaHRtbC9jYW52YXMvSW1hZ2VCaXRtYXBSZW5kZXJpbmdDb250ZXh0LmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMzYsOSArMzYsOSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBXVEZfTUFLRV9JU09f
QUxMT0NBVEVEX0lNUEwoSW1hZ2VCaXRtYXBSZW5kZXJpbmdDb250ZXh0KTsKIAogI2lmIFVTRShJ
T1NVUkZBQ0VfQ0FOVkFTX0JBQ0tJTkdfU1RPUkUpIHx8IEVOQUJMRShBQ0NFTEVSQVRFRF8yRF9D
QU5WQVMpCi1zdGF0aWMgUmVuZGVyaW5nTW9kZSBidWZmZXJSZW5kZXJpbmdNb2RlID0gQWNjZWxl
cmF0ZWQ7CitzdGF0aWMgUmVuZGVyaW5nTW9kZSBidWZmZXJSZW5kZXJpbmdNb2RlID0gUmVuZGVy
aW5nTW9kZTo6QWNjZWxlcmF0ZWQ7CiAjZWxzZQotc3RhdGljIFJlbmRlcmluZ01vZGUgYnVmZmVy
UmVuZGVyaW5nTW9kZSA9IFVuYWNjZWxlcmF0ZWQ7CitzdGF0aWMgUmVuZGVyaW5nTW9kZSBidWZm
ZXJSZW5kZXJpbmdNb2RlID0gUmVuZGVyaW5nTW9kZTo6VW5hY2NlbGVyYXRlZDsKICNlbmRpZgog
CiBzdGQ6OnVuaXF1ZV9wdHI8SW1hZ2VCaXRtYXBSZW5kZXJpbmdDb250ZXh0PiBJbWFnZUJpdG1h
cFJlbmRlcmluZ0NvbnRleHQ6OmNyZWF0ZShDYW52YXNCYXNlJiBjYW52YXMsIEltYWdlQml0bWFw
UmVuZGVyaW5nQ29udGV4dFNldHRpbmdzJiYgc2V0dGluZ3MpCkBAIC02OSw3ICs2OSw3IEBAIEhU
TUxDYW52YXNFbGVtZW50KiBJbWFnZUJpdG1hcFJlbmRlcmluZ0MKIAogYm9vbCBJbWFnZUJpdG1h
cFJlbmRlcmluZ0NvbnRleHQ6OmlzQWNjZWxlcmF0ZWQoKSBjb25zdAogewotICAgIHJldHVybiBi
dWZmZXJSZW5kZXJpbmdNb2RlID09IEFjY2VsZXJhdGVkOworICAgIHJldHVybiBidWZmZXJSZW5k
ZXJpbmdNb2RlID09IFJlbmRlcmluZ01vZGU6OkFjY2VsZXJhdGVkOwogfQogCiB2b2lkIEltYWdl
Qml0bWFwUmVuZGVyaW5nQ29udGV4dDo6c2V0T3V0cHV0Qml0bWFwKFJlZlB0cjxJbWFnZUJpdG1h
cD4gaW1hZ2VCaXRtYXApCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJl
bmRlcmluZ0NvbnRleHRCYXNlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1s
L2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlLmNwcAkocmV2aXNpb24gMjU0ODg1KQor
KysgU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTYzODYsNyArNjM4Niw3IEBAIEltYWdlQnVmZmVyKiBXZWJH
TFJlbmRlcmluZ0NvbnRleHRCYXNlOjoKICAgICB9CiAKICAgICAvLyBGSVhNRSAoMTQ5NDIzKTog
U2hvdWxkIHRoaXMgSW1hZ2VCdWZmZXIgYmUgdW5jb25kaXRpb25hbGx5IHVuYWNjZWxlcmF0ZWQ/
Ci0gICAgc3RkOjp1bmlxdWVfcHRyPEltYWdlQnVmZmVyPiB0ZW1wID0gSW1hZ2VCdWZmZXI6OmNy
ZWF0ZShzaXplLCBVbmFjY2VsZXJhdGVkKTsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8SW1hZ2VCdWZm
ZXI+IHRlbXAgPSBJbWFnZUJ1ZmZlcjo6Y3JlYXRlKHNpemUsIFJlbmRlcmluZ01vZGU6OlVuYWNj
ZWxlcmF0ZWQpOwogICAgIGlmICghdGVtcCkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAg
QVNTRVJUKG1fYnVmZmVycy5zaXplKCkgPiAwKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwv
c2hhZG93L01lZGlhQ29udHJvbEVsZW1lbnRzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9odG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xFbGVtZW50cy5jcHAJKHJldmlzaW9uIDI1NDg4
NSkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01lZGlhQ29udHJvbEVsZW1lbnRzLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMTQ0Nyw3ICsxNDQ3LDcgQEAgUmVmUHRyPEltYWdlPiBNZWRp
YUNvbnRyb2xUZXh0VHJhY2tDb250YQogICAgIEludFJlY3QgcGFpbnRpbmdSZWN0ID0gSW50UmVj
dChJbnRQb2ludCgpLCBsYXllci0+c2l6ZSgpKTsKIAogICAgIC8vIEZJWE1FICgxNDk0MjIpOiBU
aGlzIGJ1ZmZlciBzaG91bGQgbm90IGJlIHVuY29uZGl0aW9uYWxseSB1bmFjY2VsZXJhdGVkLgot
ICAgIHN0ZDo6dW5pcXVlX3B0cjxJbWFnZUJ1ZmZlcj4gYnVmZmVyKEltYWdlQnVmZmVyOjpjcmVh
dGUocGFpbnRpbmdSZWN0LnNpemUoKSwgVW5hY2NlbGVyYXRlZCwgZGV2aWNlU2NhbGVGYWN0b3Ip
KTsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8SW1hZ2VCdWZmZXI+IGJ1ZmZlcihJbWFnZUJ1ZmZlcjo6
Y3JlYXRlKHBhaW50aW5nUmVjdC5zaXplKCksIFJlbmRlcmluZ01vZGU6OlVuYWNjZWxlcmF0ZWQs
IGRldmljZVNjYWxlRmFjdG9yKSk7CiAgICAgaWYgKCFidWZmZXIpCiAgICAgICAgIHJldHVybiBu
dWxscHRyOwogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lU25hcHNob3R0aW5nLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lU25hcHNob3R0aW5nLmNw
cAkocmV2aXNpb24gMjU0ODg1KQorKysgU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVNuYXBzaG90
dGluZy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTExMSw3ICsxMTEsNyBAQCBzdGQ6OnVuaXF1ZV9w
dHI8SW1hZ2VCdWZmZXI+IHNuYXBzaG90RnJhCiAgICAgaWYgKG9wdGlvbnMgJiBTbmFwc2hvdE9w
dGlvbnNQYWludFdpdGhJbnRlZ3JhbFNjYWxlRmFjdG9yKQogICAgICAgICBzY2FsZUZhY3RvciA9
IGNlaWxmKHNjYWxlRmFjdG9yKTsKIAotICAgIHN0ZDo6dW5pcXVlX3B0cjxJbWFnZUJ1ZmZlcj4g
YnVmZmVyID0gSW1hZ2VCdWZmZXI6OmNyZWF0ZShpbWFnZVJlY3Quc2l6ZSgpLCBVbmFjY2VsZXJh
dGVkLCBzY2FsZUZhY3Rvcik7CisgICAgc3RkOjp1bmlxdWVfcHRyPEltYWdlQnVmZmVyPiBidWZm
ZXIgPSBJbWFnZUJ1ZmZlcjo6Y3JlYXRlKGltYWdlUmVjdC5zaXplKCksIFJlbmRlcmluZ01vZGU6
OlVuYWNjZWxlcmF0ZWQsIHNjYWxlRmFjdG9yKTsKICAgICBpZiAoIWJ1ZmZlcikKICAgICAgICAg
cmV0dXJuIG51bGxwdHI7CiAgICAgYnVmZmVyLT5jb250ZXh0KCkudHJhbnNsYXRlKC1pbWFnZVJl
Y3QueCgpLCAtaW1hZ2VSZWN0LnkoKSk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9BbHBoYVByZW11bHRpcGxpY2F0aW9uLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQWxwaGFQcmVtdWx0aXBsaWNhdGlvbi5oCShub25leGlz
dGVudCkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0FscGhhUHJlbXVsdGlw
bGljYXRpb24uaAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDM5IEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFO
RCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAq
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRl
IDx3dGYvRm9yd2FyZC5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2VudW0gY2xhc3MgQWxw
aGFQcmVtdWx0aXBsaWNhdGlvbiA6IHVpbnQ4X3QgeworICAgIFByZW11bHRpcGxpZWQsCisgICAg
VW5wcmVtdWx0aXBsaWVkCit9OworCitXRUJDT1JFX0VYUE9SVCBXVEY6OlRleHRTdHJlYW0mIG9w
ZXJhdG9yPDwoV1RGOjpUZXh0U3RyZWFtJiwgQWxwaGFQcmVtdWx0aXBsaWNhdGlvbik7CisKK30g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL0JpdG1hcEltYWdlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9CaXRtYXBJbWFnZS5jcHAJKHJldmlzaW9uIDI1NDg4NSkKKysrIFNvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0JpdG1hcEltYWdlLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMTYwLDcgKzE2MCw3IEBAIE5hdGl2ZUltYWdlUHRyIEJpdG1hcEltYWdlOjpuYXRpdmVJbWFn
ZUYKICAgICAgICAgcmV0dXJuIGltYWdlOwogCiAgICAgRmxvYXRSZWN0IHJlY3QgPSB7IEZsb2F0
UG9pbnQoKSwgc2l6ZSgpIH07Ci0gICAgYXV0byBidWZmZXIgPSBJbWFnZUJ1ZmZlcjo6Y3JlYXRl
KHJlY3Quc2l6ZSgpLCBVbmFjY2VsZXJhdGVkKTsKKyAgICBhdXRvIGJ1ZmZlciA9IEltYWdlQnVm
ZmVyOjpjcmVhdGUocmVjdC5zaXplKCksIFJlbmRlcmluZ01vZGU6OlVuYWNjZWxlcmF0ZWQpOwog
ICAgIGlmICghYnVmZmVyKQogICAgICAgICByZXR1cm4gaW1hZ2U7CiAKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dC5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dC5oCShyZXZp
c2lvbiAyNTQ4ODUpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGlj
c0NvbnRleHQuaAkod29ya2luZyBjb3B5KQpAQCAtMzUsNiArMzUsNyBAQAogI2luY2x1ZGUgIklt
YWdlT3JpZW50YXRpb24uaCIKICNpbmNsdWRlICJJbWFnZVBhaW50aW5nT3B0aW9ucy5oIgogI2lu
Y2x1ZGUgIlBhdHRlcm4uaCIKKyNpbmNsdWRlICJSZW5kZXJpbmdNb2RlLmgiCiAjaW5jbHVkZSA8
d3RmL0Z1bmN0aW9uLmg+CiAjaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+CiAjaW5jbHVkZSA8
d3RmL09wdGlvblNldC5oPgpAQCAtMzUwLDcgKzM1MSw3IEBAIHB1YmxpYzoKICAgICBXRUJDT1JF
X0VYUE9SVCB2b2lkIHNldElzQWNjZWxlcmF0ZWRDb250ZXh0KGJvb2wpOwogI2VuZGlmCiAgICAg
Ym9vbCBpc0FjY2VsZXJhdGVkQ29udGV4dCgpIGNvbnN0OwotICAgIFJlbmRlcmluZ01vZGUgcmVu
ZGVyaW5nTW9kZSgpIGNvbnN0IHsgcmV0dXJuIGlzQWNjZWxlcmF0ZWRDb250ZXh0KCkgPyBBY2Nl
bGVyYXRlZCA6IFVuYWNjZWxlcmF0ZWQ7IH0KKyAgICBSZW5kZXJpbmdNb2RlIHJlbmRlcmluZ01v
ZGUoKSBjb25zdCB7IHJldHVybiBpc0FjY2VsZXJhdGVkQ29udGV4dCgpID8gUmVuZGVyaW5nTW9k
ZTo6QWNjZWxlcmF0ZWQgOiBSZW5kZXJpbmdNb2RlOjpVbmFjY2VsZXJhdGVkOyB9CiAKICAgICBX
RUJDT1JFX0VYUE9SVCB2b2lkIHNhdmUoKTsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHJlc3Rv
cmUoKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzVHlw
ZXMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dy
YXBoaWNzVHlwZXMuY3BwCShyZXZpc2lvbiAyNTQ4ODUpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9HcmFwaGljc1R5cGVzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjgsNiAr
MjgsNyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkdyYXBoaWNzVHlwZXMuaCIK
IAorI2luY2x1ZGUgIkFscGhhUHJlbXVsdGlwbGljYXRpb24uaCIKICNpbmNsdWRlIDx3dGYvQXNz
ZXJ0aW9ucy5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1RleHRTdHJlYW0uaD4KICNpbmNsdWRlIDx3
dGYvdGV4dC9XVEZTdHJpbmcuaD4KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL0dyYXBoaWNzVHlwZXMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9HcmFwaGljc1R5cGVzLmgJKHJldmlzaW9uIDI1NDg4NSkKKysrIFNvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzVHlwZXMuaAkod29ya2luZyBjb3B5KQpA
QCAtMTIyLDE3ICsxMjIsNiBAQCBlbnVtIFRleHRBbGlnbiB7CiAgICAgUmlnaHRUZXh0QWxpZ24K
IH07CiAKLWVudW0gUmVuZGVyaW5nTW9kZSB7Ci0gICAgVW5hY2NlbGVyYXRlZCwKLSAgICBVbmFj
Y2VsZXJhdGVkTm9uUGxhdGZvcm1CdWZmZXIsIC8vIFVzZSBwbGFpbiBtZW1vcnkgYWxsb2NhdGlv
biByYXRoZXIgdGhhbiBwbGF0Zm9ybSBBUEkgdG8gYWxsb2NhdGUgYmFja2luZyBzdG9yZS4KLSAg
ICBBY2NlbGVyYXRlZAotfTsKLQotZW51bSBjbGFzcyBBbHBoYVByZW11bHRpcGxpY2F0aW9uIHsK
LSAgICBQcmVtdWx0aXBsaWVkLAotICAgIFVucHJlbXVsdGlwbGllZAotfTsKLQogU3RyaW5nIGNv
bXBvc2l0ZU9wZXJhdG9yTmFtZShXZWJDb3JlOjpDb21wb3NpdGVPcGVyYXRvciwgV2ViQ29yZTo6
QmxlbmRNb2RlKTsKIFN0cmluZyBibGVuZE1vZGVOYW1lKFdlYkNvcmU6OkJsZW5kTW9kZSk7CiBi
b29sIHBhcnNlQmxlbmRNb2RlKGNvbnN0IFN0cmluZyYsIFdlYkNvcmU6OkJsZW5kTW9kZSYpOwpA
QCAtMTQzLDcgKzEzMiw2IEBAIFdFQkNPUkVfRVhQT1JUIFdURjo6VGV4dFN0cmVhbSYgb3BlcmF0
b3IKIFdFQkNPUkVfRVhQT1JUIFdURjo6VGV4dFN0cmVhbSYgb3BlcmF0b3I8PChXVEY6OlRleHRT
dHJlYW0mLCBXaW5kUnVsZSk7CiBXRUJDT1JFX0VYUE9SVCBXVEY6OlRleHRTdHJlYW0mIG9wZXJh
dG9yPDwoV1RGOjpUZXh0U3RyZWFtJiwgTGluZUNhcCk7CiBXRUJDT1JFX0VYUE9SVCBXVEY6OlRl
eHRTdHJlYW0mIG9wZXJhdG9yPDwoV1RGOjpUZXh0U3RyZWFtJiwgTGluZUpvaW4pOwotV0VCQ09S
RV9FWFBPUlQgV1RGOjpUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFdURjo6VGV4dFN0cmVhbSYsIEFs
cGhhUHJlbXVsdGlwbGljYXRpb24pOwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlQnVmZmVyLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VCdWZmZXIuaAkocmV2
aXNpb24gMjU0ODg1KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VC
dWZmZXIuaAkod29ya2luZyBjb3B5KQpAQCAtMjgsNiArMjgsNyBAQAogI3ByYWdtYSBvbmNlCiAK
ICNpbmNsdWRlICJBZmZpbmVUcmFuc2Zvcm0uaCIKKyNpbmNsdWRlICJBbHBoYVByZW11bHRpcGxp
Y2F0aW9uLmgiCiAjaW5jbHVkZSAiQ29sb3JTcGFjZS5oIgogI2luY2x1ZGUgIkdyYXBoaWNzVHlw
ZXMuaCIKICNpbmNsdWRlICJHcmFwaGljc1R5cGVzR0wuaCIKQEAgLTM1LDYgKzM2LDcgQEAKICNp
bmNsdWRlICJJbWFnZVBhaW50aW5nT3B0aW9ucy5oIgogI2luY2x1ZGUgIkludFNpemUuaCIKICNp
bmNsdWRlICJQbGF0Zm9ybUxheWVyLmgiCisjaW5jbHVkZSAiUmVuZGVyaW5nTW9kZS5oIgogI2lu
Y2x1ZGUgPEphdmFTY3JpcHRDb3JlL1VpbnQ4Q2xhbXBlZEFycmF5Lmg+CiAjaW5jbHVkZSA8bWVt
b3J5PgogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CkBAIC0xOTQsNCArMTk2LDMgQEAgVmVjdG9y
PHVpbnQ4X3Q+IGRhdGEoY29uc3QgSW1hZ2VEYXRhJiwgYwogI2VuZGlmCiAKIH0gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKLQpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvUmVu
ZGVyaW5nTW9kZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL1JlbmRlcmluZ01vZGUuaAkobm9uZXhpc3RlbnQpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9SZW5kZXJpbmdNb2RlLmgJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwz
NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgor
ICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7
IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFn
bWEgb25jZQorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2VudW0gY2xhc3MgUmVuZGVyaW5nTW9k
ZSA6IHVpbnQ4X3QgeworICAgIEFjY2VsZXJhdGVkLAorICAgIFVuYWNjZWxlcmF0ZWQsCit9Owor
Cit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9TaGFkb3dCbHVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9TaGFkb3dCbHVyLmNwcAkocmV2aXNpb24gMjU0ODg1KQorKysgU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvU2hhZG93Qmx1ci5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTgzLDcgKzgzLDcgQEAgcHVibGljOgogICAgICAgICBjbGVhclNjcmF0Y2hCdWZmZXIoKTsK
IAogICAgICAgICAvLyBTaGFkb3dCbHVyIGlzIG5vdCB1c2VkIHdpdGggYWNjZWxlcmF0ZWQgZHJh
d2luZywgc28gaXQncyBPSyB0byBtYWtlIGFuIHVuY29uZGl0aW9uYWxseSB1bmFjY2VsZXJhdGVk
IGJ1ZmZlci4KLSAgICAgICAgbV9pbWFnZUJ1ZmZlciA9IEltYWdlQnVmZmVyOjpjcmVhdGUocm91
bmRlZFNpemUsIFVuYWNjZWxlcmF0ZWQsIDEpOworICAgICAgICBtX2ltYWdlQnVmZmVyID0gSW1h
Z2VCdWZmZXI6OmNyZWF0ZShyb3VuZGVkU2l6ZSwgUmVuZGVyaW5nTW9kZTo6VW5hY2NlbGVyYXRl
ZCwgMSk7CiAgICAgICAgIHJldHVybiBtX2ltYWdlQnVmZmVyLmdldCgpOwogICAgIH0KIApAQCAt
NTkzLDcgKzU5Myw3IEBAIHZvaWQgU2hhZG93Qmx1cjo6ZHJhd0luc2V0U2hhZG93KGNvbnN0IEEK
IAogdm9pZCBTaGFkb3dCbHVyOjpkcmF3UmVjdFNoYWRvd1dpdGhvdXRUaWxpbmcoY29uc3QgQWZm
aW5lVHJhbnNmb3JtJiwgY29uc3QgRmxvYXRSb3VuZGVkUmVjdCYgc2hhZG93ZWRSZWN0LCBjb25z
dCBMYXllckltYWdlUHJvcGVydGllcyYgbGF5ZXJJbWFnZVByb3BlcnRpZXMsIGNvbnN0IERyYXdC
dWZmZXJDYWxsYmFjayYgZHJhd0J1ZmZlcikKIHsKLSAgICBhdXRvIGxheWVySW1hZ2UgPSBJbWFn
ZUJ1ZmZlcjo6Y3JlYXRlKGV4cGFuZGVkSW50U2l6ZShsYXllckltYWdlUHJvcGVydGllcy5sYXll
clNpemUpLCBVbmFjY2VsZXJhdGVkLCAxKTsKKyAgICBhdXRvIGxheWVySW1hZ2UgPSBJbWFnZUJ1
ZmZlcjo6Y3JlYXRlKGV4cGFuZGVkSW50U2l6ZShsYXllckltYWdlUHJvcGVydGllcy5sYXllclNp
emUpLCBSZW5kZXJpbmdNb2RlOjpVbmFjY2VsZXJhdGVkLCAxKTsKICAgICBpZiAoIWxheWVySW1h
Z2UpCiAgICAgICAgIHJldHVybjsKIApAQCAtNjIxLDcgKzYyMSw3IEBAIHZvaWQgU2hhZG93Qmx1
cjo6ZHJhd1JlY3RTaGFkb3dXaXRob3V0VGkKIAogdm9pZCBTaGFkb3dCbHVyOjpkcmF3SW5zZXRT
aGFkb3dXaXRob3V0VGlsaW5nKGNvbnN0IEFmZmluZVRyYW5zZm9ybSYsIGNvbnN0IEZsb2F0UmVj
dCYgZnVsbFJlY3QsIGNvbnN0IEZsb2F0Um91bmRlZFJlY3QmIGhvbGVSZWN0LCBjb25zdCBMYXll
ckltYWdlUHJvcGVydGllcyYgbGF5ZXJJbWFnZVByb3BlcnRpZXMsIGNvbnN0IERyYXdCdWZmZXJD
YWxsYmFjayYgZHJhd0J1ZmZlcikKIHsKLSAgICBhdXRvIGxheWVySW1hZ2UgPSBJbWFnZUJ1ZmZl
cjo6Y3JlYXRlKGV4cGFuZGVkSW50U2l6ZShsYXllckltYWdlUHJvcGVydGllcy5sYXllclNpemUp
LCBVbmFjY2VsZXJhdGVkLCAxKTsKKyAgICBhdXRvIGxheWVySW1hZ2UgPSBJbWFnZUJ1ZmZlcjo6
Y3JlYXRlKGV4cGFuZGVkSW50U2l6ZShsYXllckltYWdlUHJvcGVydGllcy5sYXllclNpemUpLCBS
ZW5kZXJpbmdNb2RlOjpVbmFjY2VsZXJhdGVkLCAxKTsKICAgICBpZiAoIWxheWVySW1hZ2UpCiAg
ICAgICAgIHJldHVybjsKIApAQCAtNjg1LDcgKzY4NSw3IEBAIHZvaWQgU2hhZG93Qmx1cjo6ZHJh
d1JlY3RTaGFkb3dXaXRoVGlsaW4KICAgICBhdXRvKiBsYXllckltYWdlID0gU2NyYXRjaEJ1ZmZl
cjo6c2luZ2xldG9uKCkuZ2V0U2NyYXRjaEJ1ZmZlcih0ZW1wbGF0ZVNpemUpOwogI2Vsc2UKICAg
ICBVTlVTRURfUEFSQU0obGF5ZXJJbWFnZVByb3BlcnRpZXMpOwotICAgIGF1dG8gbGF5ZXJJbWFn
ZUJ1ZmZlciA9IEltYWdlQnVmZmVyOjpjcmVhdGUodGVtcGxhdGVTaXplLCBVbmFjY2VsZXJhdGVk
LCAxKTsKKyAgICBhdXRvIGxheWVySW1hZ2VCdWZmZXIgPSBJbWFnZUJ1ZmZlcjo6Y3JlYXRlKHRl
bXBsYXRlU2l6ZSwgUmVuZGVyaW5nTW9kZTo6VW5hY2NlbGVyYXRlZCwgMSk7CiAgICAgYXV0byog
bGF5ZXJJbWFnZSA9IGxheWVySW1hZ2VCdWZmZXIuZ2V0KCk7CiAjZW5kaWYKIApAQCAtNzM5LDcg
KzczOSw3IEBAIHZvaWQgU2hhZG93Qmx1cjo6ZHJhd0luc2V0U2hhZG93V2l0aFRpbGkKICNpZiBV
U0UoQ0cpCiAgICAgYXV0byogbGF5ZXJJbWFnZSA9IFNjcmF0Y2hCdWZmZXI6OnNpbmdsZXRvbigp
LmdldFNjcmF0Y2hCdWZmZXIodGVtcGxhdGVTaXplKTsKICNlbHNlCi0gICAgYXV0byBsYXllcklt
YWdlQnVmZmVyID0gSW1hZ2VCdWZmZXI6OmNyZWF0ZSh0ZW1wbGF0ZVNpemUsIFVuYWNjZWxlcmF0
ZWQsIDEpOworICAgIGF1dG8gbGF5ZXJJbWFnZUJ1ZmZlciA9IEltYWdlQnVmZmVyOjpjcmVhdGUo
dGVtcGxhdGVTaXplLCBSZW5kZXJpbmdNb2RlOjpVbmFjY2VsZXJhdGVkLCAxKTsKICAgICBhdXRv
KiBsYXllckltYWdlID0gbGF5ZXJJbWFnZUJ1ZmZlci5nZXQoKTsKICNlbmRpZgogCkBAIC05MTIs
NyArOTEyLDcgQEAgdm9pZCBTaGFkb3dCbHVyOjpkcmF3U2hhZG93TGF5ZXIoY29uc3QgQQogCiAg
ICAgYWRqdXN0Qmx1clJhZGl1cyh0cmFuc2Zvcm0pOwogCi0gICAgYXV0byBsYXllckltYWdlID0g
SW1hZ2VCdWZmZXI6OmNyZWF0ZShleHBhbmRlZEludFNpemUobGF5ZXJJbWFnZVByb3BlcnRpZXMt
PmxheWVyU2l6ZSksIFVuYWNjZWxlcmF0ZWQsIDEpOworICAgIGF1dG8gbGF5ZXJJbWFnZSA9IElt
YWdlQnVmZmVyOjpjcmVhdGUoZXhwYW5kZWRJbnRTaXplKGxheWVySW1hZ2VQcm9wZXJ0aWVzLT5s
YXllclNpemUpLCBSZW5kZXJpbmdNb2RlOjpVbmFjY2VsZXJhdGVkLCAxKTsKICAgICBpZiAoIWxh
eWVySW1hZ2UpCiAgICAgICAgIHJldHVybjsKIApJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY2Fpcm8vSW1hZ2VCdWZmZXJDYWlyby5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vSW1hZ2VCdWZmZXJDYWlyby5jcHAJ
KHJldmlzaW9uIDI1NDg4NSkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nh
aXJvL0ltYWdlQnVmZmVyQ2Fpcm8uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMDMsNyArMTAzLDcg
QEAgSW1hZ2VCdWZmZXJEYXRhOjpJbWFnZUJ1ZmZlckRhdGEoY29uc3QgSQogCiBJbWFnZUJ1ZmZl
ckRhdGE6On5JbWFnZUJ1ZmZlckRhdGEoKQogewotICAgIGlmIChtX3JlbmRlcmluZ01vZGUgIT0g
QWNjZWxlcmF0ZWQpCisgICAgaWYgKG1fcmVuZGVyaW5nTW9kZSAhPSBSZW5kZXJpbmdNb2RlOjpB
Y2NlbGVyYXRlZCkKICAgICAgICAgcmV0dXJuOwogCiAjaWYgRU5BQkxFKEFDQ0VMRVJBVEVEXzJE
X0NBTlZBUykKQEAgLTI5MiwxNCArMjkyLDE0IEBAIEltYWdlQnVmZmVyOjpJbWFnZUJ1ZmZlcihj
b25zdCBGbG9hdFNpemUKICAgICAgICAgcmV0dXJuOwogCiAjaWYgRU5BQkxFKEFDQ0VMRVJBVEVE
XzJEX0NBTlZBUykKLSAgICBpZiAobV9kYXRhLm1fcmVuZGVyaW5nTW9kZSA9PSBBY2NlbGVyYXRl
ZCkgeworICAgIGlmIChtX2RhdGEubV9yZW5kZXJpbmdNb2RlID09IFJlbmRlcmluZ01vZGU6OkFj
Y2VsZXJhdGVkKSB7CiAgICAgICAgIG1fZGF0YS5jcmVhdGVDYWlyb0dMU3VyZmFjZSgpOwogICAg
ICAgICBpZiAoIW1fZGF0YS5tX3N1cmZhY2UgfHwgY2Fpcm9fc3VyZmFjZV9zdGF0dXMobV9kYXRh
Lm1fc3VyZmFjZS5nZXQoKSkgIT0gQ0FJUk9fU1RBVFVTX1NVQ0NFU1MpCi0gICAgICAgICAgICBt
X2RhdGEubV9yZW5kZXJpbmdNb2RlID0gVW5hY2NlbGVyYXRlZDsgLy8gSWYgYWxsb2NhdGlvbiBm
YWlscywgZmFsbCBiYWNrIHRvIG5vbi1hY2NlbGVyYXRlZCBwYXRoLgorICAgICAgICAgICAgbV9k
YXRhLm1fcmVuZGVyaW5nTW9kZSA9IFJlbmRlcmluZ01vZGU6OlVuYWNjZWxlcmF0ZWQ7IC8vIElm
IGFsbG9jYXRpb24gZmFpbHMsIGZhbGwgYmFjayB0byBub24tYWNjZWxlcmF0ZWQgcGF0aC4KICAg
ICB9Ci0gICAgaWYgKG1fZGF0YS5tX3JlbmRlcmluZ01vZGUgPT0gVW5hY2NlbGVyYXRlZCkKKyAg
ICBpZiAobV9kYXRhLm1fcmVuZGVyaW5nTW9kZSA9PSBSZW5kZXJpbmdNb2RlOjpVbmFjY2VsZXJh
dGVkKQogI2Vsc2UKLSAgICBBU1NFUlQobV9kYXRhLm1fcmVuZGVyaW5nTW9kZSAhPSBBY2NlbGVy
YXRlZCk7CisgICAgQVNTRVJUKG1fZGF0YS5tX3JlbmRlcmluZ01vZGUgIT0gUmVuZGVyaW5nTW9k
ZTo6QWNjZWxlcmF0ZWQpOwogI2VuZGlmCiAgICAgewogICAgICAgICBzdGF0aWMgY2Fpcm9fdXNl
cl9kYXRhX2tleV90IHNfc3VyZmFjZURhdGFLZXk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jZy9JbWFnZUJ1ZmZlckNHLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9JbWFnZUJ1ZmZlckNHLmNwcAkocmV2aXNpb24g
MjU0ODg1KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSW1hZ2VCdWZm
ZXJDRy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEyNyw3ICsxMjcsNyBAQCBJbWFnZUJ1ZmZlcjo6
SW1hZ2VCdWZmZXIoY29uc3QgRmxvYXRTaXplCiAgICAgbV9zaXplID0gSW50U2l6ZShzY2FsZWRX
aWR0aCwgc2NhbGVkSGVpZ2h0KTsKICAgICBtX2RhdGEuYmFja2luZ1N0b3JlU2l6ZSA9IG1fc2l6
ZTsKIAotICAgIGJvb2wgYWNjZWxlcmF0ZVJlbmRlcmluZyA9IHJlbmRlcmluZ01vZGUgPT0gQWNj
ZWxlcmF0ZWQ7CisgICAgYm9vbCBhY2NlbGVyYXRlUmVuZGVyaW5nID0gcmVuZGVyaW5nTW9kZSA9
PSBSZW5kZXJpbmdNb2RlOjpBY2NlbGVyYXRlZDsKICAgICBpZiAobV9zaXplLndpZHRoKCkgPD0g
MCB8fCBtX3NpemUuaGVpZ2h0KCkgPD0gMCkKICAgICAgICAgcmV0dXJuOwogCkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9JbWFnZUJ1ZmZlckRhdGFDRy5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0ltYWdlQnVmZmVy
RGF0YUNHLmgJKHJldmlzaW9uIDI1NDg4NSkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2NnL0ltYWdlQnVmZmVyRGF0YUNHLmgJKHdvcmtpbmcgY29weSkKQEAgLTI2LDYgKzI2
LDcgQEAKIAogI3ByYWdtYSBvbmNlCiAKKyNpbmNsdWRlICJBbHBoYVByZW11bHRpcGxpY2F0aW9u
LmgiCiAjaW5jbHVkZSAiSW1hZ2UuaCIKICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9VaW50OENs
YW1wZWRBcnJheS5oPgogI2luY2x1ZGUgPHd0Zi9DaGVja2VkQXJpdGhtZXRpYy5oPgpJbmRleDog
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GaWx0ZXIuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZpbHRlci5o
CShyZXZpc2lvbiAyNTQ4ODUpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9m
aWx0ZXJzL0ZpbHRlci5oCSh3b3JraW5nIGNvcHkpCkBAIC03MSw3ICs3MSw3IEBAIHByaXZhdGU6
CiAgICAgc3RkOjp1bmlxdWVfcHRyPEltYWdlQnVmZmVyPiBtX3NvdXJjZUltYWdlOwogICAgIEZs
b2F0U2l6ZSBtX2ZpbHRlclJlc29sdXRpb247CiAgICAgQWZmaW5lVHJhbnNmb3JtIG1fYWJzb2x1
dGVUcmFuc2Zvcm07Ci0gICAgUmVuZGVyaW5nTW9kZSBtX3JlbmRlcmluZ01vZGUgeyBVbmFjY2Vs
ZXJhdGVkIH07CisgICAgUmVuZGVyaW5nTW9kZSBtX3JlbmRlcmluZ01vZGUgeyBSZW5kZXJpbmdN
b2RlOjpVbmFjY2VsZXJhdGVkIH07CiAgICAgZmxvYXQgbV9maWx0ZXJTY2FsZSB7IDEgfTsKIH07
CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9CaXRtYXBU
ZXh0dXJlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy90ZXhtYXAvQml0bWFwVGV4dHVyZS5jcHAJKHJldmlzaW9uIDI1NDg4NSkKKysrIFNvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9CaXRtYXBUZXh0dXJlLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMzgsNyArMzgsNyBAQCB2b2lkIEJpdG1hcFRleHR1cmU6OnVwZGF0ZUNvbnRl
bnRzKFRleHR1CiB7CiAgICAgLy8gTWFraW5nIGFuIHVuY29uZGl0aW9uYWxseSB1bmFjY2VsZXJh
dGVkIGJ1ZmZlciBoZXJlIGlzIE9LIGJlY2F1c2UgdGhpcyBjb2RlCiAgICAgLy8gaXNuJ3QgdXNl
ZCBieSBhbnkgcGxhdGZvcm1zIHRoYXQgcmVzcGVjdCB0aGUgYWNjZWxlcmF0ZWQgYml0LgotICAg
IHN0ZDo6dW5pcXVlX3B0cjxJbWFnZUJ1ZmZlcj4gaW1hZ2VCdWZmZXIgPSBJbWFnZUJ1ZmZlcjo6
Y3JlYXRlKHRhcmdldFJlY3Quc2l6ZSgpLCBVbmFjY2VsZXJhdGVkKTsKKyAgICBzdGQ6OnVuaXF1
ZV9wdHI8SW1hZ2VCdWZmZXI+IGltYWdlQnVmZmVyID0gSW1hZ2VCdWZmZXI6OmNyZWF0ZSh0YXJn
ZXRSZWN0LnNpemUoKSwgUmVuZGVyaW5nTW9kZTo6VW5hY2NlbGVyYXRlZCk7CiAKICAgICBpZiAo
IWltYWdlQnVmZmVyKQogICAgICAgICByZXR1cm47CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy93aW4vSW1hZ2VCdWZmZXJEaXJlY3QyRC5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0ltYWdlQnVmZmVyRGlyZWN0MkQu
Y3BwCShyZXZpc2lvbiAyNTQ4ODUpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy93aW4vSW1hZ2VCdWZmZXJEaXJlY3QyRC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTkxLDcgKzkx
LDcgQEAgSW1hZ2VCdWZmZXI6OkltYWdlQnVmZmVyKGNvbnN0IEZsb2F0U2l6ZQogICAgIG1fc2l6
ZSA9IEludFNpemUoc2NhbGVkV2lkdGgsIHNjYWxlZEhlaWdodCk7CiAgICAgbV9kYXRhLmJhY2tp
bmdTdG9yZVNpemUgPSBtX3NpemU7CiAKLSAgICBib29sIGFjY2VsZXJhdGVSZW5kZXJpbmcgPSBy
ZW5kZXJpbmdNb2RlID09IEFjY2VsZXJhdGVkOworICAgIGJvb2wgYWNjZWxlcmF0ZVJlbmRlcmlu
ZyA9IHJlbmRlcmluZ01vZGUgPT0gUmVuZGVyaW5nTW9kZTo6QWNjZWxlcmF0ZWQ7CiAgICAgaWYg
KG1fc2l6ZS53aWR0aCgpIDw9IDAgfHwgbV9zaXplLmhlaWdodCgpIDw9IDApCiAgICAgICAgIHJl
dHVybjsKIApJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9Nb2NrUmVhbHRpbWVW
aWRlb1NvdXJjZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9j
ay9Nb2NrUmVhbHRpbWVWaWRlb1NvdXJjZS5jcHAJKHJldmlzaW9uIDI1NDg4NSkKKysrIFNvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2UuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC00NTgsNyArNDU4LDcgQEAgSW1hZ2VCdWZmZXIqIE1vY2tSZWFsdGltZVZp
ZGVvU291cmNlOjppbQogICAgIGlmIChtX2ltYWdlQnVmZmVyKQogICAgICAgICByZXR1cm4gbV9p
bWFnZUJ1ZmZlci5nZXQoKTsKIAotICAgIG1faW1hZ2VCdWZmZXIgPSBJbWFnZUJ1ZmZlcjo6Y3Jl
YXRlKGNhcHR1cmVTaXplKCksIFVuYWNjZWxlcmF0ZWQpOworICAgIG1faW1hZ2VCdWZmZXIgPSBJ
bWFnZUJ1ZmZlcjo6Y3JlYXRlKGNhcHR1cmVTaXplKCksIFJlbmRlcmluZ01vZGU6OlVuYWNjZWxl
cmF0ZWQpOwogICAgIGlmICghbV9pbWFnZUJ1ZmZlcikKICAgICAgICAgcmV0dXJuIG51bGxwdHI7
CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcAkocmV2aXNp
b24gMjU0ODg1KQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtNjk0MSw3ICs2OTQxLDcgQEAgdm9pZCBSZW5kZXJMYXllcjo6dXBk
YXRlRmlsdGVyUGFpbnRpbmdTdAogICAgIH0KICAgICAKICAgICBlbnN1cmVMYXllckZpbHRlcnMo
KTsKLSAgICBtX2ZpbHRlcnMtPmJ1aWxkRmlsdGVyKHJlbmRlcmVyKCksIHBhZ2UoKS5kZXZpY2VT
Y2FsZUZhY3RvcigpLCByZW5kZXJlcigpLnNldHRpbmdzKCkuYWNjZWxlcmF0ZWRGaWx0ZXJzRW5h
YmxlZCgpID8gQWNjZWxlcmF0ZWQgOiBVbmFjY2VsZXJhdGVkKTsKKyAgICBtX2ZpbHRlcnMtPmJ1
aWxkRmlsdGVyKHJlbmRlcmVyKCksIHBhZ2UoKS5kZXZpY2VTY2FsZUZhY3RvcigpLCByZW5kZXJl
cigpLnNldHRpbmdzKCkuYWNjZWxlcmF0ZWRGaWx0ZXJzRW5hYmxlZCgpID8gUmVuZGVyaW5nTW9k
ZTo6QWNjZWxlcmF0ZWQgOiBSZW5kZXJpbmdNb2RlOjpVbmFjY2VsZXJhdGVkKTsKIH0KIAogdm9p
ZCBSZW5kZXJMYXllcjo6ZmlsdGVyTmVlZHNSZXBhaW50KCkKSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9zaGFwZXMvU2hhcGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9zaGFwZXMvU2hhcGUuY3BwCShyZXZpc2lvbiAyNTQ4ODUpCisrKyBTb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvc2hhcGVzL1NoYXBlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTgx
LDcgKzE4MSw3IEBAIHN0ZDo6dW5pcXVlX3B0cjxTaGFwZT4gU2hhcGU6OmNyZWF0ZVJhc3QKICAg
ICBJbnRSZWN0IG1hcmdpblJlY3QgPSBzbmFwcGVkSW50UmVjdChtYXJnaW5SKTsKICAgICBhdXRv
IGludGVydmFscyA9IG1ha2VVbmlxdWU8UmFzdGVyU2hhcGVJbnRlcnZhbHM+KG1hcmdpblJlY3Qu
aGVpZ2h0KCksIC1tYXJnaW5SZWN0LnkoKSk7CiAgICAgLy8gRklYTUUgKDE0OTQyMCk6IFRoaXMg
YnVmZmVyIHNob3VsZCBub3QgYmUgdW5jb25kaXRpb25hbGx5IHVuYWNjZWxlcmF0ZWQuCi0gICAg
c3RkOjp1bmlxdWVfcHRyPEltYWdlQnVmZmVyPiBpbWFnZUJ1ZmZlciA9IEltYWdlQnVmZmVyOjpj
cmVhdGUoaW1hZ2VSZWN0LnNpemUoKSwgVW5hY2NlbGVyYXRlZCk7CisgICAgc3RkOjp1bmlxdWVf
cHRyPEltYWdlQnVmZmVyPiBpbWFnZUJ1ZmZlciA9IEltYWdlQnVmZmVyOjpjcmVhdGUoaW1hZ2VS
ZWN0LnNpemUoKSwgUmVuZGVyaW5nTW9kZTo6VW5hY2NlbGVyYXRlZCk7CiAKICAgICBpZiAoaW1h
Z2VCdWZmZXIpIHsKICAgICAgICAgR3JhcGhpY3NDb250ZXh0JiBncmFwaGljc0NvbnRleHQgPSBp
bWFnZUJ1ZmZlci0+Y29udGV4dCgpOwpJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2
Zy9SZW5kZXJTVkdSZXNvdXJjZUNsaXBwZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUmVzb3VyY2VDbGlwcGVyLmNwcAkocmV2aXNpb24g
MjU0ODg1KQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdSZXNvdXJj
ZUNsaXBwZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNDIsNyArMTQyLDcgQEAgYm9vbCBSZW5k
ZXJTVkdSZXNvdXJjZUNsaXBwZXI6OmFwcGx5Q2xpcAogCiAgICAgaWYgKHNob3VsZENyZWF0ZUNs
aXBwZXJNYXNrSW1hZ2UgJiYgIXJlcGFpbnRSZWN0LmlzRW1wdHkoKSkgewogICAgICAgICAvLyBG
SVhNRSAoMTQ5NDY5KTogVGhpcyBpbWFnZSBidWZmZXIgc2hvdWxkIG5vdCBiZSB1bmNvbmRpdGlv
bmFsbHkgdW5hY2NlbGVyYXRlZC4gTWFraW5nIGl0IG1hdGNoIHRoZSBjb250ZXh0IGJyZWFrcyBu
ZXN0ZWQgY2xpcHBpbmcsIHRob3VnaC4KLSAgICAgICAgY2xpcHBlck1hc2tJbWFnZSA9IFNWR1Jl
bmRlcmluZ0NvbnRleHQ6OmNyZWF0ZUltYWdlQnVmZmVyKHJlcGFpbnRSZWN0LCBhYnNvbHV0ZVRy
YW5zZm9ybSwgQ29sb3JTcGFjZTo6U1JHQiwgVW5hY2NlbGVyYXRlZCwgJmNvbnRleHQpOworICAg
ICAgICBjbGlwcGVyTWFza0ltYWdlID0gU1ZHUmVuZGVyaW5nQ29udGV4dDo6Y3JlYXRlSW1hZ2VC
dWZmZXIocmVwYWludFJlY3QsIGFic29sdXRlVHJhbnNmb3JtLCBDb2xvclNwYWNlOjpTUkdCLCBS
ZW5kZXJpbmdNb2RlOjpVbmFjY2VsZXJhdGVkLCAmY29udGV4dCk7CiAgICAgICAgIGlmICghY2xp
cHBlck1hc2tJbWFnZSkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKIApJbmRleDogU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdSZXNvdXJjZUZpbHRlci5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdSZXNvdXJjZUZp
bHRlci5jcHAJKHJldmlzaW9uIDI1NDg4NSkKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9z
dmcvUmVuZGVyU1ZHUmVzb3VyY2VGaWx0ZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xOTEsNyAr
MTkxLDcgQEAgYm9vbCBSZW5kZXJTVkdSZXNvdXJjZUZpbHRlcjo6YXBwbHlSZXNvdQogICAgIGVm
ZmVjdGl2ZVRyYW5zZm9ybS5zY2FsZShzY2FsZS53aWR0aCgpLCBzY2FsZS5oZWlnaHQoKSk7CiAg
ICAgZWZmZWN0aXZlVHJhbnNmb3JtLm11bHRpcGx5KGZpbHRlckRhdGEtPnNoZWFyRnJlZUFic29s
dXRlVHJhbnNmb3JtKTsKIAotICAgIFJlbmRlcmluZ01vZGUgcmVuZGVyaW5nTW9kZSA9IHJlbmRl
cmVyLnNldHRpbmdzKCkuYWNjZWxlcmF0ZWRGaWx0ZXJzRW5hYmxlZCgpID8gQWNjZWxlcmF0ZWQg
OiBVbmFjY2VsZXJhdGVkOworICAgIFJlbmRlcmluZ01vZGUgcmVuZGVyaW5nTW9kZSA9IHJlbmRl
cmVyLnNldHRpbmdzKCkuYWNjZWxlcmF0ZWRGaWx0ZXJzRW5hYmxlZCgpID8gUmVuZGVyaW5nTW9k
ZTo6QWNjZWxlcmF0ZWQgOiBSZW5kZXJpbmdNb2RlOjpVbmFjY2VsZXJhdGVkOwogICAgIGF1dG8g
c291cmNlR3JhcGhpYyA9IFNWR1JlbmRlcmluZ0NvbnRleHQ6OmNyZWF0ZUltYWdlQnVmZmVyKGZp
bHRlckRhdGEtPmRyYXdpbmdSZWdpb24sIGVmZmVjdGl2ZVRyYW5zZm9ybSwgQ29sb3JTcGFjZTo6
TGluZWFyUkdCLCByZW5kZXJpbmdNb2RlLCBjb250ZXh0KTsKICAgICBpZiAoIXNvdXJjZUdyYXBo
aWMpIHsKICAgICAgICAgQVNTRVJUKCFtX3JlbmRlcmVyRmlsdGVyRGF0YU1hcC5jb250YWlucygm
cmVuZGVyZXIpKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZH
UmVzb3VyY2VNYXNrZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9zdmcvUmVuZGVyU1ZHUmVzb3VyY2VNYXNrZXIuY3BwCShyZXZpc2lvbiAyNTQ4ODUpCisrKyBT
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jlc291cmNlTWFza2VyLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtNzEsNyArNzEsNyBAQCBib29sIFJlbmRlclNWR1Jlc291cmNlTWFz
a2VyOjphcHBseVJlc291CiAgICAgICAgIGNvbnN0IFNWR1JlbmRlclN0eWxlJiBzdmdTdHlsZSA9
IHN0eWxlKCkuc3ZnU3R5bGUoKTsKICAgICAgICAgQ29sb3JTcGFjZSBjb2xvclNwYWNlID0gc3Zn
U3R5bGUuY29sb3JJbnRlcnBvbGF0aW9uKCkgPT0gQ29sb3JJbnRlcnBvbGF0aW9uOjpMaW5lYXJS
R0IgPyBDb2xvclNwYWNlOjpMaW5lYXJSR0IgOiBDb2xvclNwYWNlOjpTUkdCOwogICAgICAgICAv
LyBGSVhNRSAoMTQ5NDcwKTogVGhpcyBpbWFnZSBidWZmZXIgc2hvdWxkIG5vdCBiZSB1bmNvbmRp
dGlvbmFsbHkgdW5hY2NlbGVyYXRlZC4gTWFraW5nIGl0IG1hdGNoIHRoZSBjb250ZXh0IGJyZWFr
cyBhbHBoYSBtYXNraW5nLCB0aG91Z2guCi0gICAgICAgIG1hc2tlckRhdGEtPm1hc2tJbWFnZSA9
IFNWR1JlbmRlcmluZ0NvbnRleHQ6OmNyZWF0ZUltYWdlQnVmZmVyKHJlcGFpbnRSZWN0LCBhYnNv
bHV0ZVRyYW5zZm9ybSwgY29sb3JTcGFjZSwgVW5hY2NlbGVyYXRlZCwgY29udGV4dCk7CisgICAg
ICAgIG1hc2tlckRhdGEtPm1hc2tJbWFnZSA9IFNWR1JlbmRlcmluZ0NvbnRleHQ6OmNyZWF0ZUlt
YWdlQnVmZmVyKHJlcGFpbnRSZWN0LCBhYnNvbHV0ZVRyYW5zZm9ybSwgY29sb3JTcGFjZSwgUmVu
ZGVyaW5nTW9kZTo6VW5hY2NlbGVyYXRlZCwgY29udGV4dCk7CiAgICAgICAgIGlmICghbWFza2Vy
RGF0YS0+bWFza0ltYWdlKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogCkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9zdmcvZ3JhcGhpY3MvU1ZHSW1hZ2UuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL3N2Zy9ncmFwaGljcy9TVkdJbWFnZS5jcHAJKHJldmlzaW9uIDI1NDg4NSkKKysr
IFNvdXJjZS9XZWJDb3JlL3N2Zy9ncmFwaGljcy9TVkdJbWFnZS5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTIxOCw3ICsyMTgsNyBAQCBOYXRpdmVJbWFnZVB0ciBTVkdJbWFnZTo6bmF0aXZlSW1hZ2VG
b3JDCiAgICAgICAgIHJldHVybiBudWxscHRyOwogCiAgICAgLy8gQ2Fpcm8gZG9lcyBub3QgdXNl
IHRoZSBhY2NlbGVyYXRlZCBkcmF3aW5nIGZsYWcsIHNvIGl0J3MgT0sgdG8gbWFrZSBhbiB1bmNv
bmRpdGlvbmFsbHkgdW5hY2NlbGVyYXRlZCBidWZmZXIuCi0gICAgc3RkOjp1bmlxdWVfcHRyPElt
YWdlQnVmZmVyPiBidWZmZXIgPSBJbWFnZUJ1ZmZlcjo6Y3JlYXRlKHNpemUoKSwgVW5hY2NlbGVy
YXRlZCk7CisgICAgc3RkOjp1bmlxdWVfcHRyPEltYWdlQnVmZmVyPiBidWZmZXIgPSBJbWFnZUJ1
ZmZlcjo6Y3JlYXRlKHNpemUoKSwgUmVuZGVyaW5nTW9kZTo6VW5hY2NlbGVyYXRlZCk7CiAgICAg
aWYgKCFidWZmZXIpIC8vIGZhaWxlZCB0byBhbGxvY2F0ZSBpbWFnZQogICAgICAgICByZXR1cm4g
bnVsbHB0cjsKIApJbmRleDogU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwkocmV2aXNpb24gMjU0
ODg1KQorKysgU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkp
CkBAIC0xLDMgKzEsMTMgQEAKKzIwMjAtMDEtMjEgIFNhaWQgQWJvdS1IYWxsYXdhICA8c2Fib3Vo
YWxsYXdhQGFwcGxlLmNvbT4KKworICAgICAgICBNYWtlIFJlbmRlcmluZ01vZGUgYW5kIEFscGhh
UHJlbXVsdGlwbGljYXRpb24gZW51bSBjbGFzc2VzIGFuZCBtb3ZlIHRoZW0gdG8gc2VwYXJhdGUg
aGVhZGVycworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MjA2NTE2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgVGltIEhvcnRvbi4KKworICAgICAgICAqIFdl
YkNvcmVTdXBwb3J0L1dlYkNvbnRleHRNZW51Q2xpZW50Lm1tOgorICAgICAgICAoV2ViQ29udGV4
dE1lbnVDbGllbnQ6OmltYWdlRm9yQ3VycmVudFNoYXJpbmdTZXJ2aWNlUGlja2VySXRlbSk6CisK
IDIwMjAtMDEtMjEgIFJvYiBCdWlzICA8cmJ1aXNAaWdhbGlhLmNvbT4KIAogICAgICAgICBBZGQg
YnVpbGQgZmxhZyBmb3Igc3RhbGUtd2hpbGUtcmV2YWxpZGF0ZQpJbmRleDogU291cmNlL1dlYktp
dExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ29udGV4dE1lbnVDbGllbnQubW0KPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ29udGV4
dE1lbnVDbGllbnQubW0JKHJldmlzaW9uIDI1NDg4NSkKKysrIFNvdXJjZS9XZWJLaXRMZWdhY3kv
bWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNvbnRleHRNZW51Q2xpZW50Lm1tCSh3b3JraW5nIGNvcHkp
CkBAIC0yMDIsNyArMjAyLDcgQEAgUmV0YWluUHRyPE5TSW1hZ2U+IFdlYkNvbnRleHRNZW51Q2xp
ZW50OgogICAgICAgICByZXR1cm4gbmlsOwogCiAgICAgLy8gVGhpcyBpcyBlZmZlY3RpdmVseSBh
IHNuYXBzaG90LCBhbmQgd2lsbCBiZSBwYWludGVkIGluIGFuIHVuYWNjZWxlcmF0ZWQgZmFzaGlv
biBpbiBsaW5lIHdpdGggRnJhbWVTbmFwc2hvdHRpbmcuCi0gICAgc3RkOjp1bmlxdWVfcHRyPElt
YWdlQnVmZmVyPiBidWZmZXIgPSBJbWFnZUJ1ZmZlcjo6Y3JlYXRlKHJlY3Quc2l6ZSgpLCBVbmFj
Y2VsZXJhdGVkKTsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8SW1hZ2VCdWZmZXI+IGJ1ZmZlciA9IElt
YWdlQnVmZmVyOjpjcmVhdGUocmVjdC5zaXplKCksIFJlbmRlcmluZ01vZGU6OlVuYWNjZWxlcmF0
ZWQpOwogICAgIGlmICghYnVmZmVyKQogICAgICAgICByZXR1cm4gbmlsOwogCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>