<?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>74652</bug_id>
          
          <creation_ts>2011-12-15 15:13:13 -0800</creation_ts>
          <short_desc>[CSS Shaders] Move CustomFilterOperation to the platform layer</short_desc>
          <delta_ts>2012-01-11 05:28:49 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Layout and Rendering</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>71392</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Alexandru Chiculita">achicu</reporter>
          <assigned_to name="Alexandru Chiculita">achicu</assigned_to>
          <cc>cmarrin</cc>
    
    <cc>dino</cc>
    
    <cc>macpherson</cc>
    
    <cc>rakuco</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>522257</commentid>
    <comment_count>0</comment_count>
    <who name="Alexandru Chiculita">achicu</who>
    <bug_when>2011-12-15 15:13:13 -0800</bug_when>
    <thetext>Move CustomFilterOperation to the platform layer and use a PlatformShader instead of a CachedShader.

Quoted from previous discussions with Chris Marrin:

1) Make an abstract base class called Shader (or maybe PlatformShader or ShaderClient or something). This has a pure virtual method to get the shader string.

2) Subclass StyleShader from Shader and implement the get shader method.

3) Replace the methods that take/return StyleShader with those that take/return Shader.

4) Move CustomFilterOperation down into platform along with the others.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>530225</commentid>
    <comment_count>1</comment_count>
      <attachid>121267</attachid>
    <who name="Alexandru Chiculita">achicu</who>
    <bug_when>2012-01-05 05:51:16 -0800</bug_when>
    <thetext>Created attachment 121267
Patch V1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>530275</commentid>
    <comment_count>2</comment_count>
      <attachid>121267</attachid>
    <who name="Chris Marrin">cmarrin</who>
    <bug_when>2012-01-05 07:37:57 -0800</bug_when>
    <thetext>Comment on attachment 121267
Patch V1

Great patch. But I&apos;m really concerned that we have only 3 custom filter tests in LayoutTests/css3/filters. And two of those are just testing style, so they don&apos;t exercise any of this new code. Please add at least a couple of tests which exercise the tolerance of missing shaders and the use of the cache (write two shaders which use the same vertex or fragment shader, etc.).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>532185</commentid>
    <comment_count>3</comment_count>
      <attachid>121669</attachid>
    <who name="Alexandru Chiculita">achicu</who>
    <bug_when>2012-01-09 07:25:07 -0800</bug_when>
    <thetext>Created attachment 121669
Patch V2

Added two new tests.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>532188</commentid>
    <comment_count>4</comment_count>
      <attachid>121671</attachid>
    <who name="Alexandru Chiculita">achicu</who>
    <bug_when>2012-01-09 07:29:46 -0800</bug_when>
    <thetext>Created attachment 121671
Patch V3

This time including binary files.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>532255</commentid>
    <comment_count>5</comment_count>
      <attachid>121671</attachid>
    <who name="Chris Marrin">cmarrin</who>
    <bug_when>2012-01-09 10:02:55 -0800</bug_when>
    <thetext>Comment on attachment 121671
Patch V3

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

r=me, but please add text to the test cases so a successful test is obvious without looking at the pixel results

&gt; LayoutTests/css3/filters/custom-filter-shader-cache-expected.txt:1
&gt; +     

You should really have something output here. At least say something like &quot;Test of cached custom filter shaders. You should see 12 blocks of color bars, with increasing lightness from left to right&quot;

&gt; LayoutTests/css3/filters/missing-custom-filter-shader-expected.txt:1
&gt; +    

Same here. At least say something like &quot;Test of missing custom filter shaders. You should see 5 blocks of color bars, all the same&quot;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>532288</commentid>
    <comment_count>6</comment_count>
      <attachid>121671</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2012-01-09 10:32:37 -0800</bug_when>
    <thetext>Comment on attachment 121671
Patch V3

Custom filter tests always fail (bug 75047) so I don&apos;t see how you can be adding more.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>532343</commentid>
    <comment_count>7</comment_count>
    <who name="Alexandru Chiculita">achicu</who>
    <bug_when>2012-01-09 11:16:11 -0800</bug_when>
    <thetext>(In reply to comment #6)
&gt; (From update of attachment 121671 [details])
&gt; Custom filter tests always fail (bug 75047) so I don&apos;t see how you can be adding more.

New tests have window.layoutTestController.overridePreference(&quot;WebKitWebGLEnabled&quot;, &quot;1&quot;); which seems to do the trick about enabling WebGL in DRT (at least on SnowLeopard it works, not sure about Lion).

For the old test case I&apos;ve did the same in https://bugs.webkit.org/show_bug.cgi?id=75842 .</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>533816</commentid>
    <comment_count>8</comment_count>
    <who name="Alexandru Chiculita">achicu</who>
    <bug_when>2012-01-11 05:28:49 -0800</bug_when>
    <thetext>Landed in http://trac.webkit.org/changeset/104702. Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>121267</attachid>
            <date>2012-01-05 05:51:16 -0800</date>
            <delta_ts>2012-01-09 07:25:07 -0800</delta_ts>
            <desc>Patch V1</desc>
            <filename>bug74652.patch</filename>
            <type>text/plain</type>
            <size>58182</size>
            <attacher name="Alexandru Chiculita">achicu</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYkNv
cmUvQ01ha2VMaXN0cy50eHQKaW5kZXggYmQ5NWUxOS4uNmNmMGQ4ZCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0
cy50eHQKQEAgLTExMTUsNiArMTExNSw3IEBAIFNFVChXZWJDb3JlX1NPVVJDRVMKICAgICBwbGF0
Zm9ybS9ncmFwaGljcy9XaWR0aEl0ZXJhdG9yLmNwcAogCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3Mv
ZmlsdGVycy9DdXN0b21GaWx0ZXJNZXNoLmNwcAorICAgIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRl
cnMvQ3VzdG9tRmlsdGVyUHJvZ3JhbS5jcHAKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJz
L0N1c3RvbUZpbHRlclNoYWRlci5jcHAKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0Rp
c3RhbnRMaWdodFNvdXJjZS5jcHAKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFQmxl
bmQuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cKaW5kZXggODc0NDM3Ny4uZGM3ZDE2NyAxMDA3NTUKLS0tIGEvU291cmNl
L1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDg4IEBACisyMDEyLTAxLTA1ICBBbGV4YW5kcnUgQ2hpY3VsaXRhICA8YWNoaWN1QGFkb2Jl
LmNvbT4KKworICAgICAgICBbQ1NTIFNoYWRlcnNdIE1vdmUgQ3VzdG9tRmlsdGVyT3BlcmF0aW9u
IHRvIHRoZSBwbGF0Zm9ybSBsYXllcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9NzQ2NTIKKworICAgICAgICBGaWx0ZXJPcGVyYXRpb25zIGFyZSBub3cg
cGFydCBvZiB0aGUgcGxhdGZvcm0gY29kZSBhbmQgY2Fubm90IHJlZmVyZW5jZSBzdHlsZSBjbGFz
c2VzIGRpcmVjdGx5LCBidXQKKyAgICAgICAgQ3VzdG9tRmlsdGVyT3BlcmF0aW9uIHJlcXVpcmVz
IHRvIGxpbmsgdG8gdGhlIENhY2hlZFNoYWRlciBmb3IgdGhlIHZlcnRleCBhbmQgdGhlIGZyYWdt
ZW50IHNoYWRlci4KKyAgICAgICAgCisgICAgICAgIFRoZSBmaXggaXMgdG8gaW50cm9kdWNlIGFu
b3RoZXIgb2JqZWN0IHRoYXQgd2lsbCBhY3R1YWxseSBrZWVwIGEgbGluayB0byB0aGUgY2FjaGVk
IHJlc291cmNlcywgc28gaW4gdGhpcyBwYXRjaCAKKyAgICAgICAgSSdtIGFkZGluZyBhIG5ldyBj
bGFzcyBjYWxsZWQgQ3VzdG9tRmlsdGVyUHJvZ3JhbSB0aGF0IHdpbGwgc2l0IGluIHRoZQorICAg
ICAgICBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzIGRpcmVjdG9yeSBhbmQgd2lsbCBiZSByZWZl
cmVuY2VkIGZyb20gQ3VzdG9tRmlsdGVyT3BlcmF0aW9uLgorCisgICAgICAgIEN1c3RvbUZpbHRl
clByb2dyYW0gaXMgdGhlIGJhc2UgY2xhc3Mgb2YgU3R5bGVDdXN0b21GaWx0ZXJQcm9ncmFtIHRo
YXQgaXMgY3JlYXRlZCBmcm9tIAorICAgICAgICBDU1NTdHlsZVNlbGVjdG9yIHdoZW4gYSBuZXcg
Q3VzdG9tRmlsdGVyT3BlcmF0aW9uIGlzIGNyZWF0ZWQuIFN0eWxlQ3VzdG9tRmlsdGVyUHJvZ3Jh
bSBpcyByZXNwb25zaWJsZQorICAgICAgICB3aXRoIGxvYWRpbmcgYW5kIGtlZXBpbmcgcmVmZXJl
bmNlcyB0byB0aGUgU3R5bGVDYWNoZWRTaGFkZXJzIGFuZCB0aGUgQ2FjaGVkU2hhZGVycy4KKwor
ICAgICAgICBNb3JlIHBhdGNoZXMgd2lsbCBmb2xsb3cgd2l0aCBvcHRpbWl6YXRpb25zIGFib3V0
IHJldXNpbmcgM0QgZ3JhcGhpY3MgY29udGV4dHMgYW5kIGNvbXBpbGVkIHNoYWRlcnMuCisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTm8gbmV3IHRlc3Rz
LCBqdXN0IHJlZmFjdG9yaW5nIGNvZGUuCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAg
ICAgICAgKiBHTlVtYWtlZmlsZS5saXN0LmFtOgorICAgICAgICAqIFRhcmdldC5wcmk6CisgICAg
ICAgICogV2ViQ29yZS5neXBpOgorICAgICAgICAqIFdlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNw
cm9qOgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAg
ICAgKiBjc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkNTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbjo6dmFsdWVGb3JGaWx0ZXIpOgorICAgICAg
ICAqIGNzcy9DU1NTdHlsZVNlbGVjdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU1N0eWxl
U2VsZWN0b3I6OmxvYWRQZW5kaW5nU2hhZGVycyk6CisgICAgICAgIChXZWJDb3JlOjpDU1NTdHls
ZVNlbGVjdG9yOjpjcmVhdGVDdXN0b21GaWx0ZXJPcGVyYXRpb24pOgorICAgICAgICAgICAgVXBk
YXRlZCB0byB1c2UgdGhlIFN0eWxlQ3VzdG9tRmlsdGVyUHJvZ3JhbSBpbnN0ZWFkIG9mIHRoZSBD
dXN0b21GaWx0ZXJPcGVyYXRpb24uCisgICAgICAgIAorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL2ZpbHRlcnMvQ3VzdG9tRmlsdGVyT3BlcmF0aW9uLmg6IFJlbmFtZWQgZnJvbSBTb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvQ3VzdG9tRmlsdGVyT3BlcmF0aW9uLmguCisgICAgICAg
IChXZWJDb3JlOjpDdXN0b21GaWx0ZXJPcGVyYXRpb246OmNyZWF0ZSk6CisgICAgICAgICAgICBB
Y2NlcHRzIGEgQ3VzdG9tRmlsdGVyUHJvZ3JhbSBpbnN0ZWFkIG9mIENhY2hlZFNoYWRlcnMuCisg
ICAgICAgICAgICAKKyAgICAgICAgKFdlYkNvcmU6OkN1c3RvbUZpbHRlck9wZXJhdGlvbjo6cHJv
Z3JhbSk6IFJldHVybnMgdGhlIEN1c3RvbUZpbHRlclByb2dyYW0uCisgICAgICAgIAorICAgICAg
ICAoV2ViQ29yZTo6Q3VzdG9tRmlsdGVyT3BlcmF0aW9uOjpDdXN0b21GaWx0ZXJPcGVyYXRpb24p
OgorICAgICAgICAgICAgQWNjZXB0cyBhIEN1c3RvbUZpbHRlclByb2dyYW0gaW5zdGVhZCBvZiBD
YWNoZWRTaGFkZXJzLgorICAgICAgICAgICAgCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
ZmlsdGVycy9DdXN0b21GaWx0ZXJQcm9ncmFtLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3Jl
OjpDdXN0b21GaWx0ZXJQcm9ncmFtOjpDdXN0b21GaWx0ZXJQcm9ncmFtKToKKyAgICAgICAgKFdl
YkNvcmU6OkN1c3RvbUZpbHRlclByb2dyYW06On5DdXN0b21GaWx0ZXJQcm9ncmFtKToKKyAgICAg
ICAgKFdlYkNvcmU6OkN1c3RvbUZpbHRlclByb2dyYW06OmFkZENsaWVudCk6CisgICAgICAgIChX
ZWJDb3JlOjpDdXN0b21GaWx0ZXJQcm9ncmFtOjpyZW1vdmVDbGllbnQpOgorICAgICAgICAoV2Vi
Q29yZTo6Q3VzdG9tRmlsdGVyUHJvZ3JhbTo6bm90aWZ5Q2xpZW50cyk6CisgICAgICAgIChXZWJD
b3JlOjpDdXN0b21GaWx0ZXJQcm9ncmFtOjpjcmVhdGVTaGFkZXJXaXRoQ29udGV4dCk6CisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9DdXN0b21GaWx0ZXJQcm9ncmFtLmg6IEFk
ZGVkLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvQ3VzdG9tRmlsdGVyUHJv
Z3JhbUNsaWVudC5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkN1c3RvbUZpbHRlclByb2dy
YW1DbGllbnQ6On5DdXN0b21GaWx0ZXJQcm9ncmFtQ2xpZW50KToKKyAgICAgICAgCisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUN1c3RvbUZpbHRlci5jcHA6CisgICAgICAg
ICAgICBGRUN1c3RvbUZpbHRlciB3aWxsIG5vdCB1c2Ugc3RyaW5ncyBhbnltb3JlLiBJdCB3aWxs
IGp1c3QgZ2V0IGEgcmVmZXJlbmNlIHRvIHRoZSBDdXN0b21GaWx0ZXJQcm9ncmFtLgorICAgICAg
ICAKKyAgICAgICAgKFdlYkNvcmU6OkZFQ3VzdG9tRmlsdGVyOjpGRUN1c3RvbUZpbHRlcik6Cisg
ICAgICAgIChXZWJDb3JlOjpGRUN1c3RvbUZpbHRlcjo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNv
cmU6OkZFQ3VzdG9tRmlsdGVyOjppbml0aWFsaXplQ29udGV4dCk6CisgICAgICAgICAgICBVc2lu
ZyB0aGUgQ3VzdG9tRmlsdGVyUHJvZ3JhbSB0byBnZW5lcmF0ZSB0aGUgQ3VzdG9tRmlsdGVyU2hh
ZGVyIGluc3RhbmNlLiBBIGJldHRlciBuYW1lIGZvciBDdXN0b21GaWx0ZXJTaGFkZXIKKyAgICAg
ICAgICAgIHdvdWxkIGJlIEN1c3RvbUZpbHRlckNvbXBpbGVkUHJvZ3JhbSwgYnV0IEkgd291bGQg
cHJlZmVyIHRvIG1ha2UgdGhhdCBjaGFuZ2UgaW4gYSBkaWZmZXJlbnQgcGF0Y2guCisgICAgICAg
IAorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVDdXN0b21GaWx0ZXIuaDoK
KyAgICAgICAgKiByZW5kZXJpbmcvRmlsdGVyRWZmZWN0UmVuZGVyZXIuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6RmlsdGVyRWZmZWN0UmVuZGVyZXI6On5GaWx0ZXJFZmZlY3RSZW5kZXJlcik6Cisg
ICAgICAgIChXZWJDb3JlOjpGaWx0ZXJFZmZlY3RSZW5kZXJlcjo6YnVpbGQpOgorICAgICAgICAo
V2ViQ29yZTo6RmlsdGVyRWZmZWN0UmVuZGVyZXI6Om5vdGlmeUN1c3RvbUZpbHRlclByb2dyYW1M
b2FkZWQpOgorICAgICAgICAoV2ViQ29yZTo6RmlsdGVyRWZmZWN0UmVuZGVyZXI6OnJlbW92ZUN1
c3RvbUZpbHRlckNsaWVudHMpOgorICAgICAgICAqIHJlbmRlcmluZy9GaWx0ZXJFZmZlY3RSZW5k
ZXJlci5oOgorICAgICAgICAqIHJlbmRlcmluZy9zdHlsZS9TdHlsZUN1c3RvbUZpbHRlclByb2dy
YW0uaDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpTdHlsZUN1c3RvbUZpbHRlclByb2dyYW06
OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZUN1c3RvbUZpbHRlclByb2dyYW06OnNl
dFZlcnRleFNoYWRlcik6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZUN1c3RvbUZpbHRlclByb2dy
YW06OnZlcnRleFNoYWRlcik6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZUN1c3RvbUZpbHRlclBy
b2dyYW06OnNldEZyYWdtZW50U2hhZGVyKToKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlQ3VzdG9t
RmlsdGVyUHJvZ3JhbTo6ZnJhZ21lbnRTaGFkZXIpOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVD
dXN0b21GaWx0ZXJQcm9ncmFtOjp2ZXJ0ZXhTaGFkZXJTdHJpbmcpOgorICAgICAgICAoV2ViQ29y
ZTo6U3R5bGVDdXN0b21GaWx0ZXJQcm9ncmFtOjpmcmFnbWVudFNoYWRlclN0cmluZyk6CisgICAg
ICAgIChXZWJDb3JlOjpTdHlsZUN1c3RvbUZpbHRlclByb2dyYW06OmlzTG9hZGVkKToKKyAgICAg
ICAgKFdlYkNvcmU6OlN0eWxlQ3VzdG9tRmlsdGVyUHJvZ3JhbTo6YWRkQ2xpZW50cyk6CisgICAg
ICAgIChXZWJDb3JlOjpTdHlsZUN1c3RvbUZpbHRlclByb2dyYW06OnJlbW92ZUNsaWVudHMpOgor
ICAgICAgICAoV2ViQ29yZTo6U3R5bGVDdXN0b21GaWx0ZXJQcm9ncmFtOjpub3RpZnlGaW5pc2hl
ZCk6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZUN1c3RvbUZpbHRlclByb2dyYW06OlN0eWxlQ3Vz
dG9tRmlsdGVyUHJvZ3JhbSk6CisKIDIwMTItMDEtMDUgIEFsbGFuIFNhbmRmZWxkIEplbnNlbiAg
PGFsbGFuLmplbnNlbkBub2tpYS5jb20+CiAKICAgICAgICAgRml4IHBvdGVudGlhbCBzdXBlcmxp
bmVhciBydW50aW1lIG9mIG11bHRpcGxlIGluZGlyZWN0IGFkamVuY2VueSBjb21iaW5hdG9ycy4K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0gYi9Tb3VyY2Uv
V2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCmluZGV4IDgzMjI5Y2EuLjgyODk5ZDggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KKysrIGIvU291cmNlL1dl
YkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQpAQCAtMjgzNyw2ICsyODM3LDkgQEAgd2ViY29yZV9z
b3VyY2VzICs9IFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9UcmFu
c2Zvcm1hdGlvbk1hdHJpeENhaXJvLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZmlsdGVycy9DdXN0b21GaWx0ZXJNZXNoLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9DdXN0b21GaWx0ZXJNZXNoLmggXAorCVNvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvQ3VzdG9tRmlsdGVyT3BlcmF0aW9uLmggXAor
CVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvQ3VzdG9tRmlsdGVyUHJv
Z3JhbS5jcHAgXAorCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvQ3Vz
dG9tRmlsdGVyUHJvZ3JhbS5oIFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9m
aWx0ZXJzL0N1c3RvbUZpbHRlclNoYWRlci5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2ZpbHRlcnMvQ3VzdG9tRmlsdGVyU2hhZGVyLmggXAogCVNvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRGlzdGFudExpZ2h0U291cmNlLmNwcCBcCkBAIC0z
NTY2LDcgKzM1NjksNiBAQCB3ZWJjb3JlX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9zdHlsZS9Db3VudGVyRGlyZWN0aXZlcy5oIFwKIAlTb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvc3R5bGUvQ3Vyc29yRGF0YS5oIFwKIAlTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5
bGUvQ3Vyc29yTGlzdC5oIFwKLQlTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvQ3VzdG9t
RmlsdGVyT3BlcmF0aW9uLmggXAogCVNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9EYXRh
UmVmLmggXAogCVNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9GaWxsTGF5ZXIuY3BwIFwK
IAlTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvRmlsbExheWVyLmggXApAQCAtMzU5MSw2
ICszNTkzLDcgQEAgd2ViY29yZV9zb3VyY2VzICs9IFwKIAlTb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvc3R5bGUvU3R5bGVDYWNoZWRJbWFnZS5oIFwKIAlTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
c3R5bGUvU3R5bGVDYWNoZWRTaGFkZXIuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
c3R5bGUvU3R5bGVDYWNoZWRTaGFkZXIuaCBcCisJU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0
eWxlL1N0eWxlQ3VzdG9tRmlsdGVyUHJvZ3JhbS5oIFwKIAlTb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvc3R5bGUvU3R5bGVEYXNoYm9hcmRSZWdpb24uaCBcCiAJU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL3N0eWxlL1N0eWxlRGVwcmVjYXRlZEZsZXhpYmxlQm94RGF0YS5jcHAgXAogCVNvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZURlcHJlY2F0ZWRGbGV4aWJsZUJveERhdGEuaCBc
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpIGIvU291cmNlL1dlYkNvcmUv
VGFyZ2V0LnByaQppbmRleCBiMTJmNWU1Li43OTA1YzBkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9UYXJnZXQucHJpCisrKyBiL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkKQEAgLTIwODQs
NiArMjA4NCw4IEBAIEhFQURFUlMgKz0gXAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL0Nyb3NzZmFk
ZUdlbmVyYXRlZEltYWdlLmggXAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvQ3VzdG9t
RmlsdGVyTWVzaC5oIFwKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0N1c3RvbUZpbHRl
clNoYWRlci5oIFwKKyAgICBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0N1c3RvbUZpbHRlck9w
ZXJhdGlvbi5oIFwKKyAgICBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0N1c3RvbUZpbHRlclBy
b2dyYW0uaCBcCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUJsZW5kLmggXAogICAg
IHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVDb2xvck1hdHJpeC5oIFwKICAgICBwbGF0Zm9y
bS9ncmFwaGljcy9maWx0ZXJzL0ZFQ29tcG9uZW50VHJhbnNmZXIuaCBcCkBAIC0yMzc3LDcgKzIz
NzksNiBAQCBIRUFERVJTICs9IFwKICAgICByZW5kZXJpbmcvc3R5bGUvQ291bnRlckRpcmVjdGl2
ZXMuaCBcCiAgICAgcmVuZGVyaW5nL3N0eWxlL0N1cnNvckRhdGEuaCBcCiAgICAgcmVuZGVyaW5n
L3N0eWxlL0N1cnNvckxpc3QuaCBcCi0gICAgcmVuZGVyaW5nL3N0eWxlL0N1c3RvbUZpbHRlck9w
ZXJhdGlvbi5oIFwKICAgICByZW5kZXJpbmcvc3R5bGUvRmlsbExheWVyLmggXAogICAgIHJlbmRl
cmluZy9zdHlsZS9LZXlmcmFtZUxpc3QuaCBcCiAgICAgcmVuZGVyaW5nL3N0eWxlL05pbmVQaWVj
ZUltYWdlLmggXApAQCAtMjM4OCw2ICsyMzg5LDcgQEAgSEVBREVSUyArPSBcCiAgICAgcmVuZGVy
aW5nL3N0eWxlL1N0eWxlQm94RGF0YS5oIFwKICAgICByZW5kZXJpbmcvc3R5bGUvU3R5bGVDYWNo
ZWRJbWFnZS5oIFwKICAgICByZW5kZXJpbmcvc3R5bGUvU3R5bGVDYWNoZWRTaGFkZXIuaCBcCisg
ICAgcmVuZGVyaW5nL3N0eWxlL1N0eWxlQ3VzdG9tRmlsdGVyUHJvZ3JhbS5oIFwKICAgICByZW5k
ZXJpbmcvc3R5bGUvU3R5bGVEZXByZWNhdGVkRmxleGlibGVCb3hEYXRhLmggXAogICAgIHJlbmRl
cmluZy9zdHlsZS9TdHlsZUZpbHRlckRhdGEuaCBcCiAgICAgcmVuZGVyaW5nL3N0eWxlL1N0eWxl
RmxleGlibGVCb3hEYXRhLmggXApAQCAtMzI0Niw2ICszMjQ4LDcgQEAgY29udGFpbnMoREVGSU5F
UywgRU5BQkxFX0ZJTFRFUlM9MSkgewogICAgIFNPVVJDRVMgKz0gXAogICAgICAgICBwbGF0Zm9y
bS9ncmFwaGljcy9maWx0ZXJzL0N1c3RvbUZpbHRlck1lc2guY3BwIFwKICAgICAgICAgcGxhdGZv
cm0vZ3JhcGhpY3MvZmlsdGVycy9DdXN0b21GaWx0ZXJTaGFkZXIuY3BwIFwKKyAgICAgICAgcGxh
dGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9DdXN0b21GaWx0ZXJQcm9ncmFtLmNwcCBcCiAgICAgICAg
IHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRGlzdGFudExpZ2h0U291cmNlLmNwcCBcCiAgICAg
ICAgIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVCbGVuZC5jcHAgXAogICAgICAgICBwbGF0
Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFQ29sb3JNYXRyaXguY3BwIFwKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaSBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQpp
bmRleCBlNTgxYzAyLi4wMGFmM2QwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
Lmd5cGkKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCkBAIC0zNjY2LDYgKzM2NjYs
OSBAQAogICAgICAgICAgICAgJ3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvQ3VzdG9tRmlsdGVy
TWVzaC5oJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0N1c3RvbUZp
bHRlclNoYWRlci5jcHAnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMv
Q3VzdG9tRmlsdGVyU2hhZGVyLmgnLAorICAgICAgICAgICAgJ3BsYXRmb3JtL2dyYXBoaWNzL2Zp
bHRlcnMvQ3VzdG9tRmlsdGVyT3BlcmF0aW9uLmgnLAorICAgICAgICAgICAgJ3BsYXRmb3JtL2dy
YXBoaWNzL2ZpbHRlcnMvQ3VzdG9tRmlsdGVyUHJvZ3JhbS5jcHAnLAorICAgICAgICAgICAgJ3Bs
YXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvQ3VzdG9tRmlsdGVyUHJvZ3JhbS5oJywKICAgICAgICAg
ICAgICdwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0Rpc3RhbnRMaWdodFNvdXJjZS5jcHAnLAog
ICAgICAgICAgICAgJ3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRGlzdGFudExpZ2h0U291cmNl
LmgnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVCbGVuZC5jcHAn
LApAQCAtNDgxNSw3ICs0ODE4LDYgQEAKICAgICAgICAgICAgICdyZW5kZXJpbmcvbWF0aG1sL1Jl
bmRlck1hdGhNTFVuZGVyT3Zlci5oJywKICAgICAgICAgICAgICdyZW5kZXJpbmcvc3R5bGUvQ29u
dGVudERhdGEuY3BwJywKICAgICAgICAgICAgICdyZW5kZXJpbmcvc3R5bGUvQ291bnRlckRpcmVj
dGl2ZXMuY3BwJywKLSAgICAgICAgICAgICdyZW5kZXJpbmcvc3R5bGUvQ3VzdG9tRmlsdGVyT3Bl
cmF0aW9uLmgnLAogICAgICAgICAgICAgJ3JlbmRlcmluZy9zdHlsZS9GaWxsTGF5ZXIuY3BwJywK
ICAgICAgICAgICAgICdyZW5kZXJpbmcvc3R5bGUvS2V5ZnJhbWVMaXN0LmNwcCcsCiAgICAgICAg
ICAgICAncmVuZGVyaW5nL3N0eWxlL0tleWZyYW1lTGlzdC5oJywKQEAgLTQ4MzAsNiArNDgzMiw3
IEBACiAgICAgICAgICAgICAncmVuZGVyaW5nL3N0eWxlL1N0eWxlQ2FjaGVkSW1hZ2UuY3BwJywK
ICAgICAgICAgICAgICdyZW5kZXJpbmcvc3R5bGUvU3R5bGVDYWNoZWRTaGFkZXIuaCcsCiAgICAg
ICAgICAgICAncmVuZGVyaW5nL3N0eWxlL1N0eWxlQ2FjaGVkU2hhZGVyLmNwcCcsCisgICAgICAg
ICAgICAncmVuZGVyaW5nL3N0eWxlL1N0eWxlQ3VzdG9tRmlsdGVyUHJvZ3JhbS5oJywKICAgICAg
ICAgICAgICdyZW5kZXJpbmcvc3R5bGUvU3R5bGVEZXByZWNhdGVkRmxleGlibGVCb3hEYXRhLmNw
cCcsCiAgICAgICAgICAgICAncmVuZGVyaW5nL3N0eWxlL1N0eWxlRmlsdGVyRGF0YS5jcHAnLAog
ICAgICAgICAgICAgJ3JlbmRlcmluZy9zdHlsZS9TdHlsZUZsZXhpYmxlQm94RGF0YS5jcHAnLApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2og
Yi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagppbmRleCBkNDQz
YWQzLi5jYWYzOWM2IDEwMDc1NQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9X
ZWJDb3JlLnZjcHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3Jl
LnZjcHJvagpAQCAtMjk1ODQsNiArMjk1ODQsMjIgQEAKIAkJCQkJCT4KIAkJCQkJPC9GaWxlPgog
CQkJCQk8RmlsZQorCQkJCQkJUmVsYXRpdmVQYXRoPSIuLlxwbGF0Zm9ybVxncmFwaGljc1xmaWx0
ZXJzXEN1c3RvbUZpbHRlck9wZXJhdGlvbi5oIgorCQkJCQkJPgorCQkJCQk8L0ZpbGU+CisJCQkJ
CTxGaWxlCisJCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHBsYXRmb3JtXGdyYXBoaWNzXGZpbHRlcnNc
Q3VzdG9tRmlsdGVyUHJvZ3JhbS5jcHAiCisJCQkJCQk+CisJCQkJCTwvRmlsZT4KKwkJCQkJPEZp
bGUKKwkJCQkJCVJlbGF0aXZlUGF0aD0iLi5ccGxhdGZvcm1cZ3JhcGhpY3NcZmlsdGVyc1xDdXN0
b21GaWx0ZXJQcm9ncmFtLmgiCisJCQkJCQk+CisJCQkJCTwvRmlsZT4KKwkJCQkJPEZpbGUKKwkJ
CQkJCVJlbGF0aXZlUGF0aD0iLi5ccGxhdGZvcm1cZ3JhcGhpY3NcZmlsdGVyc1xDdXN0b21GaWx0
ZXJQcm9ncmFtQ2xpZW50LmgiCisJCQkJCQk+CisJCQkJCTwvRmlsZT4KKwkJCQkJPEZpbGUKIAkJ
CQkJCVJlbGF0aXZlUGF0aD0iLi5ccGxhdGZvcm1cZ3JhcGhpY3NcZmlsdGVyc1xDdXN0b21GaWx0
ZXJTaGFkZXIuY3BwIgogCQkJCQkJPgogCQkJCQk8L0ZpbGU+CkBAIC00MjQ0MywxMCArNDI0NTks
NiBAQAogCQkJCQk+CiAJCQkJPC9GaWxlPgogCQkJCTxGaWxlCi0JCQkJCVJlbGF0aXZlUGF0aD0i
Li5ccmVuZGVyaW5nXHN0eWxlXEN1c3RvbUZpbHRlck9wZXJhdGlvbi5oIgotCQkJCQk+Ci0JCQkJ
PC9GaWxlPgotCQkJCTxGaWxlCiAJCQkJCVJlbGF0aXZlUGF0aD0iLi5ccmVuZGVyaW5nXHN0eWxl
XERhdGFSZWYuaCIKIAkJCQkJPgogCQkJCTwvRmlsZT4KQEAgLTQyNTA3LDI2ICs0MjUxOSw2IEBA
CiAJCQkJCT4KIAkJCQk8L0ZpbGU+CiAJCQkJPEZpbGUKLQkJCQkJUmVsYXRpdmVQYXRoPSIuLlxy
ZW5kZXJpbmdcc3R5bGVcRmlsdGVyT3BlcmF0aW9uLmNwcCIKLQkJCQkJPgotCQkJCTwvRmlsZT4K
LQkJCQk8RmlsZQotCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHJlbmRlcmluZ1xzdHlsZVxGaWx0ZXJP
cGVyYXRpb24uaCIKLQkJCQkJPgotCQkJCTwvRmlsZT4KLQkJCQk8RmlsZQotCQkJCQlSZWxhdGl2
ZVBhdGg9Ii4uXHJlbmRlcmluZ1xzdHlsZVxGaWx0ZXJPcGVyYXRpb25zLmNwcCIKLQkJCQkJPgot
CQkJCTwvRmlsZT4KLQkJCQk8RmlsZQotCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHJlbmRlcmluZ1xz
dHlsZVxGaWx0ZXJPcGVyYXRpb25zLmgiCi0JCQkJCT4KLQkJCQk8L0ZpbGU+Ci0JCQkJPEZpbGUK
LQkJCQkJUmVsYXRpdmVQYXRoPSIuLlxyZW5kZXJpbmdcc3R5bGVcQ3VzdG9tRmlsdGVyT3BlcmF0
aW9uLmgiCi0JCQkJCT4KLQkJCQk8L0ZpbGU+Ci0JCQkJPEZpbGUKIAkJCQkJUmVsYXRpdmVQYXRo
PSIuLlxyZW5kZXJpbmdcc3R5bGVcS2V5ZnJhbWVMaXN0LmNwcCIKIAkJCQkJPgogCQkJCQk8Rmls
ZUNvbmZpZ3VyYXRpb24KQEAgLTQyOTk1LDYgKzQyOTg3LDEwIEBACiAJCQkJCT4KIAkJCQk8L0Zp
bGU+CiAJCQkJPEZpbGUKKwkJCQkJUmVsYXRpdmVQYXRoPSIuLlxyZW5kZXJpbmdcc3R5bGVcU3R5
bGVDdXN0b21GaWx0ZXJQcm9ncmFtLmgiCisJCQkJCT4KKwkJCQk8L0ZpbGU+CisJCQkJPEZpbGUK
IAkJCQkJUmVsYXRpdmVQYXRoPSIuLlxyZW5kZXJpbmdcc3R5bGVcU3R5bGVEZXByZWNhdGVkRmxl
eGlibGVCb3hEYXRhLmNwcCIKIAkJCQkJPgogCQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBi
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA3
MTRkZTZjLi42NzNmNGFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xMzk0LDkgKzEzOTQsMTMgQEAKIAkJNTAzOEJFMzAxNDcy
QUQyMzAwOTVFMEQxIC8qIFN0eWxlQ2FjaGVkU2hhZGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MDM4QkUyRTE0NzJBRDIzMDA5NUUwRDEgLyogU3R5
bGVDYWNoZWRTaGFkZXIuaCAqLzsgfTsKIAkJNTAzOEJFNDAxNDcyQUQ5ODAwOTVFMEQxIC8qIENh
Y2hlZFNoYWRlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA1MDM4QkUzRTE0NzJBRDk4MDA5NUUwRDEgLyogQ2FjaGVkU2hhZGVyLmNwcCAqLzsgfTsK
IAkJNTAzOEJFNDExNDcyQUQ5ODAwOTVFMEQxIC8qIENhY2hlZFNoYWRlci5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTAzOEJFM0YxNDcyQUQ5ODAwOTVF
MEQxIC8qIENhY2hlZFNoYWRlci5oICovOyB9OwotCQk1MDM4QkYyODE0NzUwRjE5MDA5NUUwRDEg
LyogQ3VzdG9tRmlsdGVyT3BlcmF0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA1MDM4QkYyNDE0NzUwRjE5MDA5NUUwRDEgLyogQ3VzdG9tRmlsdGVy
T3BlcmF0aW9uLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsg
fTsKKwkJNTAzRDBDQUExNEI1QjA4NzAwRjMyRjU3IC8qIEN1c3RvbUZpbHRlclByb2dyYW0uY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTAzRDBDQTcx
NEI1QjA4NzAwRjMyRjU3IC8qIEN1c3RvbUZpbHRlclByb2dyYW0uY3BwICovOyB9OworCQk1MDNE
MENBQjE0QjVCMDg3MDBGMzJGNTcgLyogQ3VzdG9tRmlsdGVyUHJvZ3JhbS5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTAzRDBDQTgxNEI1QjA4NzAwRjMy
RjU3IC8qIEN1c3RvbUZpbHRlclByb2dyYW0uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
ICgpOyB9OyB9OworCQk1MDNEMENBQzE0QjVCMDg3MDBGMzJGNTcgLyogQ3VzdG9tRmlsdGVyUHJv
Z3JhbUNsaWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNTAzRDBDQTkxNEI1QjA4NzAwRjMyRjU3IC8qIEN1c3RvbUZpbHRlclByb2dyYW1DbGllbnQu
aCAqLzsgfTsKKwkJNTAzRDBDQUUxNEI1QjBCQTAwRjMyRjU3IC8qIFN0eWxlQ3VzdG9tRmlsdGVy
UHJvZ3JhbS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
NTAzRDBDQUQxNEI1QjBCQTAwRjMyRjU3IC8qIFN0eWxlQ3VzdG9tRmlsdGVyUHJvZ3JhbS5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKCk7IH07IH07CiAJCTUwOENDQTRGMTNDRjEwNkIw
MDMxNTFGMyAvKiBSZW5kZXJGbG93VGhyZWFkLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA1MDhDQ0E0RDEzQ0YxMDZCMDAzMTUxRjMgLyogUmVuZGVyRmxv
d1RocmVhZC5oICovOyB9OwogCQk1MDhDQ0E1MDEzQ0YxMDZCMDAzMTUxRjMgLyogUmVuZGVyRmxv
d1RocmVhZC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA1MDhDQ0E0RTEzQ0YxMDZCMDAzMTUxRjMgLyogUmVuZGVyRmxvd1RocmVhZC5jcHAgKi87IH07
CisJCTUwQUNFMkNCMTRCNUQ3OTMwMDQ0NjY2NiAvKiBDdXN0b21GaWx0ZXJPcGVyYXRpb24uaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUwQUNFMkNBMTRC
NUQ3OTMwMDQ0NjY2NiAvKiBDdXN0b21GaWx0ZXJPcGVyYXRpb24uaCAqLzsgfTsKIAkJNTBENDAz
QzcxNDc2OEM5NDAwRDMwQkI1IC8qIEZFQ3VzdG9tRmlsdGVyLmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUwRDQwM0M1MTQ3NjhDOTQwMEQzMEJCNSAv
KiBGRUN1c3RvbUZpbHRlci5jcHAgKi87IH07CiAJCTUwRDQwM0M4MTQ3NjhDOTQwMEQzMEJCNSAv
KiBGRUN1c3RvbUZpbHRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNTBENDAzQzYxNDc2OEM5NDAwRDMwQkI1IC8qIEZFQ3VzdG9tRmlsdGVyLmggKi87
IH07CiAJCTUwRDQwNUY5MTQ3RDMxRjMwMEQzMEJCNSAvKiBDdXN0b21GaWx0ZXJNZXNoLmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUwRDQwNUY3MTQ3
RDMxRjMwMEQzMEJCNSAvKiBDdXN0b21GaWx0ZXJNZXNoLmNwcCAqLzsgfTsKQEAgLTg2NTUsOSAr
ODY1OSwxMyBAQAogCQk1MDM4QkUyRTE0NzJBRDIzMDA5NUUwRDEgLyogU3R5bGVDYWNoZWRTaGFk
ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gU3R5bGVDYWNoZWRTaGFkZXIu
aDsgcGF0aCA9IHN0eWxlL1N0eWxlQ2FjaGVkU2hhZGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTUwMzhCRTNFMTQ3MkFEOTgwMDk1RTBEMSAvKiBDYWNoZWRTaGFkZXIuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQ2FjaGVkU2hhZGVyLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTAzOEJFM0YxNDcyQUQ5ODAwOTVFMEQxIC8qIENh
Y2hlZFNoYWRlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDYWNoZWRTaGFk
ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNTAzOEJGMjQxNDc1MEYxOTAwOTVF
MEQxIC8qIEN1c3RvbUZpbHRlck9wZXJhdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IG5hbWUgPSBDdXN0b21GaWx0ZXJPcGVyYXRpb24uaDsgcGF0aCA9IHN0eWxlL0N1c3RvbUZpbHRl
ck9wZXJhdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1MDNEMENBNzE0QjVC
MDg3MDBGMzJGNTcgLyogQ3VzdG9tRmlsdGVyUHJvZ3JhbS5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IG5hbWUgPSBDdXN0b21GaWx0ZXJQcm9ncmFtLmNwcDsgcGF0aCA9IGZpbHRl
cnMvQ3VzdG9tRmlsdGVyUHJvZ3JhbS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CTUwM0QwQ0E4MTRCNUIwODcwMEYzMkY1NyAvKiBDdXN0b21GaWx0ZXJQcm9ncmFtLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IEN1c3RvbUZpbHRlclByb2dyYW0uaDsgcGF0aCA9
IGZpbHRlcnMvQ3VzdG9tRmlsdGVyUHJvZ3JhbS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQk1MDNEMENBOTE0QjVCMDg3MDBGMzJGNTcgLyogQ3VzdG9tRmlsdGVyUHJvZ3JhbUNsaWVu
dC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBDdXN0b21GaWx0ZXJQcm9ncmFt
Q2xpZW50Lmg7IHBhdGggPSBmaWx0ZXJzL0N1c3RvbUZpbHRlclByb2dyYW1DbGllbnQuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTAzRDBDQUQxNEI1QjBCQTAwRjMyRjU3IC8qIFN0
eWxlQ3VzdG9tRmlsdGVyUHJvZ3JhbS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUg
PSBTdHlsZUN1c3RvbUZpbHRlclByb2dyYW0uaDsgcGF0aCA9IHN0eWxlL1N0eWxlQ3VzdG9tRmls
dGVyUHJvZ3JhbS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MDhDQ0E0RDEzQ0Yx
MDZCMDAzMTUxRjMgLyogUmVuZGVyRmxvd1RocmVhZC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBSZW5kZXJGbG93VGhyZWFkLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTUwOENDQTRFMTNDRjEwNkIwMDMxNTFGMyAvKiBSZW5kZXJGbG93VGhyZWFkLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlbmRlckZsb3dUaHJlYWQuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1MEFDRTJDQTE0QjVENzkzMDA0NDY2NjYgLyog
Q3VzdG9tRmlsdGVyT3BlcmF0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9
IEN1c3RvbUZpbHRlck9wZXJhdGlvbi5oOyBwYXRoID0gZmlsdGVycy9DdXN0b21GaWx0ZXJPcGVy
YXRpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTBCNDIxNTcxNDY5NzY5NjAw
ODdFNjA0IC8qIFdlYktpdENTU1NoYWRlclZhbHVlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IFdlYktpdENTU1NoYWRlclZhbHVlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTUwRDQwM0M1MTQ3NjhDOTQwMEQzMEJCNSAvKiBGRUN1c3RvbUZpbHRlci5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBGRUN1c3RvbUZpbHRlci5jcHA7IHBh
dGggPSBmaWx0ZXJzL0ZFQ3VzdG9tRmlsdGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJNTBENDAzQzYxNDc2OEM5NDAwRDMwQkI1IC8qIEZFQ3VzdG9tRmlsdGVyLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IEZFQ3VzdG9tRmlsdGVyLmg7IHBhdGggPSBmaWx0
ZXJzL0ZFQ3VzdG9tRmlsdGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xNzc2
OSw2ICsxNzc3NywxMCBAQAogCQlBNzVFOEI3RjBFMURFMkIwMDA3RjI0ODEgLyogZmlsdGVycyAq
LyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCisJCQkJNTBBQ0UyQ0Ex
NEI1RDc5MzAwNDQ2NjY2IC8qIEN1c3RvbUZpbHRlck9wZXJhdGlvbi5oICovLAorCQkJCTUwM0Qw
Q0E3MTRCNUIwODcwMEYzMkY1NyAvKiBDdXN0b21GaWx0ZXJQcm9ncmFtLmNwcCAqLywKKwkJCQk1
MDNEMENBODE0QjVCMDg3MDBGMzJGNTcgLyogQ3VzdG9tRmlsdGVyUHJvZ3JhbS5oICovLAorCQkJ
CTUwM0QwQ0E5MTRCNUIwODcwMEYzMkY1NyAvKiBDdXN0b21GaWx0ZXJQcm9ncmFtQ2xpZW50Lmgg
Ki8sCiAJCQkJNDlFQ0VCNUMxNDk5NzkwRDAwQ0REM0E0IC8qIGFybSAqLywKIAkJCQkxOTg0MUJG
QTEzNjgzNkExMDA2RUJCQjkgLyogYXJtICovLAogCQkJCTUwRDQwNUY3MTQ3RDMxRjMwMEQzMEJC
NSAvKiBDdXN0b21GaWx0ZXJNZXNoLmNwcCAqLywKQEAgLTE5OTU0LDYgKzE5OTY2LDcgQEAKIAkJ
QkM4QzhGQUEwRERDRDJGMjAwQjU5MkY0IC8qIHN0eWxlICovID0gewogCQkJaXNhID0gUEJYR3Jv
dXA7CiAJCQljaGlsZHJlbiA9ICgKKwkJCQk1MDNEMENBRDE0QjVCMEJBMDBGMzJGNTcgLyogU3R5
bGVDdXN0b21GaWx0ZXJQcm9ncmFtLmggKi8sCiAJCQkJQkM1RUI1RTAwRTgxQkU4NzAwQjI1OTY1
IC8qIEJvcmRlckRhdGEuaCAqLywKIAkJCQlCQzVFQjVEQTBFODFCN0VBMDBCMjU5NjUgLyogQm9y
ZGVyVmFsdWUuaCAqLywKIAkJCQlCQzVFQjVERTBFODFCOUFCMDBCMjU5NjUgLyogQ29sbGFwc2Vk
Qm9yZGVyVmFsdWUuaCAqLywKQEAgLTE5OTY0LDcgKzE5OTc3LDYgQEAKIAkJCQlCQzVFQjk0RjBF
ODIwNTZCMDBCMjU5NjUgLyogQ291bnRlckRpcmVjdGl2ZXMuaCAqLywKIAkJCQlCQzIyNzJBMTBF
ODJFODdDMDBFN0Y5NzUgLyogQ3Vyc29yRGF0YS5oICovLAogCQkJCUJDMjI3MkFDMEU4MkU4RjMw
MEU3Rjk3NSAvKiBDdXJzb3JMaXN0LmggKi8sCi0JCQkJNTAzOEJGMjQxNDc1MEYxOTAwOTVFMEQx
IC8qIEN1c3RvbUZpbHRlck9wZXJhdGlvbi5oICovLAogCQkJCUJDMjI3NDZFMEU4MzY2NDUwMEU3
Rjk3NSAvKiBEYXRhUmVmLmggKi8sCiAJCQkJQkM1RUI2OUMwRTgxREFFQjAwQjI1OTY1IC8qIEZp
bGxMYXllci5jcHAgKi8sCiAJCQkJQkM1RUI2OUQwRTgxREFFQjAwQjI1OTY1IC8qIEZpbGxMYXll
ci5oICovLApAQCAtMjIxODEsNyArMjIxOTMsNiBAQAogCQkJCUJDMjI3MkFEMEU4MkU4RjMwMEU3
Rjk3NSAvKiBDdXJzb3JMaXN0LmggaW4gSGVhZGVycyAqLywKIAkJCQk2MkNEMzI1QTExNTdFNTdD
MDA2M0IwQTcgLyogQ3VzdG9tRXZlbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTUwRDQwNUZBMTQ3
RDMxRjMwMEQzMEJCNSAvKiBDdXN0b21GaWx0ZXJNZXNoLmggaW4gSGVhZGVycyAqLywKLQkJCQk1
MDM4QkYyODE0NzUwRjE5MDA5NUUwRDEgLyogQ3VzdG9tRmlsdGVyT3BlcmF0aW9uLmggaW4gSGVh
ZGVycyAqLywKIAkJCQk1MEQ0MDYxMjE0N0Q0OURFMDBEMzBCQjUgLyogQ3VzdG9tRmlsdGVyU2hh
ZGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlBOENCNDEzRTBFODYzM0ZEMDAzMkM0RjAgLyogRGFz
aEFycmF5LmggaW4gSGVhZGVycyAqLywKIAkJCQlBODBFNkQwQjBBMTk4OUNBMDA3RkI4QzUgLyog
RGFzaGJvYXJkUmVnaW9uLmggaW4gSGVhZGVycyAqLywKQEAgLTI0OTU5LDYgKzI0OTcwLDEwIEBA
CiAJCQkJRTFCRTUxMkUwQ0Y2QzUxMjAwMkVBOTU5IC8qIFhTTFRVbmljb2RlU29ydC5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJOTc3RTJFMEYxMkYwRkM5QzAwQzEzMzc5IC8qIFhTU0F1ZGl0b3IuaCBp
biBIZWFkZXJzICovLAogCQkJCUZENTM3MzUzMTM3QjY1MTgwMDAwOERDRSAvKiBaZXJvUG9sZS5o
IGluIEhlYWRlcnMgKi8sCisJCQkJNTAzRDBDQUIxNEI1QjA4NzAwRjMyRjU3IC8qIEN1c3RvbUZp
bHRlclByb2dyYW0uaCBpbiBIZWFkZXJzICovLAorCQkJCTUwM0QwQ0FDMTRCNUIwODcwMEYzMkY1
NyAvKiBDdXN0b21GaWx0ZXJQcm9ncmFtQ2xpZW50LmggaW4gSGVhZGVycyAqLywKKwkJCQk1MDNE
MENBRTE0QjVCMEJBMDBGMzJGNTcgLyogU3R5bGVDdXN0b21GaWx0ZXJQcm9ncmFtLmggaW4gSGVh
ZGVycyAqLywKKwkJCQk1MEFDRTJDQjE0QjVENzkzMDA0NDY2NjYgLyogQ3VzdG9tRmlsdGVyT3Bl
cmF0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBv
c3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKQEAgLTI3ODYyLDYgKzI3ODc3LDcgQEAKIAkJCQlFMUJF
NTEyRDBDRjZDNTEyMDAyRUE5NTkgLyogWFNMVFVuaWNvZGVTb3J0LmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCTk3N0UyRTBFMTJGMEZDOUMwMEMxMzM3OSAvKiBYU1NBdWRpdG9yLmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCUZENTM3MzUyMTM3QjY1MTgwMDAwOERDRSAvKiBaZXJvUG9sZS5jcHAgaW4g
U291cmNlcyAqLywKKwkJCQk1MDNEMENBQTE0QjVCMDg3MDBGMzJGNTcgLyogQ3VzdG9tRmlsdGVy
UHJvZ3JhbS5jcHAgaW4gU291cmNlcyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVu
dFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nz
cy9DU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NT
U0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHAKaW5kZXggNTJiYWY3MC4uZDUzZDQ0YiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5j
cHAKQEAgLTU2LDYgKzU2LDcgQEAKICNpbmNsdWRlICJSZW5kZXJTdHlsZS5oIgogI2luY2x1ZGUg
IlNoYWRvd1ZhbHVlLmgiCiAjaWYgRU5BQkxFKENTU19GSUxURVJTKQorI2luY2x1ZGUgIlN0eWxl
Q3VzdG9tRmlsdGVyUHJvZ3JhbS5oIgogI2luY2x1ZGUgIldlYktpdENTU0ZpbHRlclZhbHVlLmgi
CiAjZW5kaWYKICNpbmNsdWRlICJXZWJLaXRDU1NUcmFuc2Zvcm1WYWx1ZS5oIgpAQCAtNzUzLDEz
ICs3NTQsMTYgQEAgUGFzc1JlZlB0cjxDU1NWYWx1ZT4gQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0
aW9uOjp2YWx1ZUZvckZpbHRlcihSZW5kZXJTdHlsZSogc3QKICAgICAgICAgICAgIAogICAgICAg
ICAgICAgLy8gVGhlIG91dHB1dCBzaG91bGQgYmUgdmVyYm9zZSwgZXZlbiBpZiB0aGUgdmFsdWVz
IGFyZSB0aGUgZGVmYXVsdCBvbmVzLgogICAgICAgICAgICAgCisgICAgICAgICAgICBBU1NFUlQo
Y3VzdG9tT3BlcmF0aW9uLT5wcm9ncmFtKCkpOworICAgICAgICAgICAgU3R5bGVDdXN0b21GaWx0
ZXJQcm9ncmFtKiBwcm9ncmFtID0gc3RhdGljX2Nhc3Q8U3R5bGVDdXN0b21GaWx0ZXJQcm9ncmFt
Kj4oY3VzdG9tT3BlcmF0aW9uLT5wcm9ncmFtKCkpOworICAgICAgICAgICAgCiAgICAgICAgICAg
ICBSZWZQdHI8Q1NTVmFsdWVMaXN0PiBzaGFkZXJzTGlzdCA9IENTU1ZhbHVlTGlzdDo6Y3JlYXRl
U3BhY2VTZXBhcmF0ZWQoKTsKLSAgICAgICAgICAgIGlmIChjdXN0b21PcGVyYXRpb24tPnZlcnRl
eFNoYWRlcigpKQotICAgICAgICAgICAgICAgIHNoYWRlcnNMaXN0LT5hcHBlbmQoY3VzdG9tT3Bl
cmF0aW9uLT52ZXJ0ZXhTaGFkZXIoKS0+Y3NzVmFsdWUoKSk7CisgICAgICAgICAgICBpZiAocHJv
Z3JhbS0+dmVydGV4U2hhZGVyKCkpCisgICAgICAgICAgICAgICAgc2hhZGVyc0xpc3QtPmFwcGVu
ZChwcm9ncmFtLT52ZXJ0ZXhTaGFkZXIoKS0+Y3NzVmFsdWUoKSk7CiAgICAgICAgICAgICBlbHNl
CiAgICAgICAgICAgICAgICAgc2hhZGVyc0xpc3QtPmFwcGVuZChjc3NWYWx1ZVBvb2wtPmNyZWF0
ZUlkZW50aWZpZXJWYWx1ZShDU1NWYWx1ZU5vbmUpKTsKLSAgICAgICAgICAgIGlmIChjdXN0b21P
cGVyYXRpb24tPmZyYWdtZW50U2hhZGVyKCkpCi0gICAgICAgICAgICAgICAgc2hhZGVyc0xpc3Qt
PmFwcGVuZChjdXN0b21PcGVyYXRpb24tPmZyYWdtZW50U2hhZGVyKCktPmNzc1ZhbHVlKCkpOwor
ICAgICAgICAgICAgaWYgKHByb2dyYW0tPmZyYWdtZW50U2hhZGVyKCkpCisgICAgICAgICAgICAg
ICAgc2hhZGVyc0xpc3QtPmFwcGVuZChwcm9ncmFtLT5mcmFnbWVudFNoYWRlcigpLT5jc3NWYWx1
ZSgpKTsKICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICBzaGFkZXJzTGlzdC0+YXBw
ZW5kKGNzc1ZhbHVlUG9vbC0+Y3JlYXRlSWRlbnRpZmllclZhbHVlKENTU1ZhbHVlTm9uZSkpOwog
ICAgICAgICAgICAgZmlsdGVyVmFsdWUtPmFwcGVuZChzaGFkZXJzTGlzdC5yZWxlYXNlKCkpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1N0eWxlU2VsZWN0b3IuY3BwIGIvU291
cmNlL1dlYkNvcmUvY3NzL0NTU1N0eWxlU2VsZWN0b3IuY3BwCmluZGV4IGIwMjgyYzEuLmVjNzhk
OTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHlsZVNlbGVjdG9yLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU3R5bGVTZWxlY3Rvci5jcHAKQEAgLTEyNSw2ICsx
MjUsNyBAQAogI2lmIEVOQUJMRShDU1NfU0hBREVSUykKICNpbmNsdWRlICJDdXN0b21GaWx0ZXJP
cGVyYXRpb24uaCIKICNpbmNsdWRlICJTdHlsZUNhY2hlZFNoYWRlci5oIgorI2luY2x1ZGUgIlN0
eWxlQ3VzdG9tRmlsdGVyUHJvZ3JhbS5oIgogI2luY2x1ZGUgIlN0eWxlUGVuZGluZ1NoYWRlci5o
IgogI2luY2x1ZGUgIlN0eWxlU2hhZGVyLmgiCiAjaW5jbHVkZSAiV2ViS2l0Q1NTU2hhZGVyVmFs
dWUuaCIKQEAgLTUwODQsMTMgKzUwODUsMTUgQEAgdm9pZCBDU1NTdHlsZVNlbGVjdG9yOjpsb2Fk
UGVuZGluZ1NoYWRlcnMoKQogICAgICAgICBSZWZQdHI8RmlsdGVyT3BlcmF0aW9uPiBmaWx0ZXJP
cGVyYXRpb24gPSBmaWx0ZXJPcGVyYXRpb25zLmF0KGkpOwogICAgICAgICBpZiAoZmlsdGVyT3Bl
cmF0aW9uLT5nZXRPcGVyYXRpb25UeXBlKCkgPT0gRmlsdGVyT3BlcmF0aW9uOjpDVVNUT00pIHsK
ICAgICAgICAgICAgIEN1c3RvbUZpbHRlck9wZXJhdGlvbiogY3VzdG9tRmlsdGVyID0gc3RhdGlj
X2Nhc3Q8Q3VzdG9tRmlsdGVyT3BlcmF0aW9uKj4oZmlsdGVyT3BlcmF0aW9uLmdldCgpKTsKLSAg
ICAgICAgICAgIGlmIChjdXN0b21GaWx0ZXItPnZlcnRleFNoYWRlcigpICYmIGN1c3RvbUZpbHRl
ci0+dmVydGV4U2hhZGVyKCktPmlzUGVuZGluZ1NoYWRlcigpKSB7Ci0gICAgICAgICAgICAgICAg
V2ViS2l0Q1NTU2hhZGVyVmFsdWUqIHNoYWRlclZhbHVlID0gc3RhdGljX2Nhc3Q8U3R5bGVQZW5k
aW5nU2hhZGVyKj4oY3VzdG9tRmlsdGVyLT52ZXJ0ZXhTaGFkZXIoKSktPmNzc1NoYWRlclZhbHVl
KCk7Ci0gICAgICAgICAgICAgICAgY3VzdG9tRmlsdGVyLT5zZXRWZXJ0ZXhTaGFkZXIoc2hhZGVy
VmFsdWUtPmNhY2hlZFNoYWRlcihjYWNoZWRSZXNvdXJjZUxvYWRlcikpOworICAgICAgICAgICAg
QVNTRVJUKGN1c3RvbUZpbHRlci0+cHJvZ3JhbSgpKTsKKyAgICAgICAgICAgIFN0eWxlQ3VzdG9t
RmlsdGVyUHJvZ3JhbSogcHJvZ3JhbSA9IHN0YXRpY19jYXN0PFN0eWxlQ3VzdG9tRmlsdGVyUHJv
Z3JhbSo+KGN1c3RvbUZpbHRlci0+cHJvZ3JhbSgpKTsKKyAgICAgICAgICAgIGlmIChwcm9ncmFt
LT52ZXJ0ZXhTaGFkZXIoKSAmJiBwcm9ncmFtLT52ZXJ0ZXhTaGFkZXIoKS0+aXNQZW5kaW5nU2hh
ZGVyKCkpIHsKKyAgICAgICAgICAgICAgICBXZWJLaXRDU1NTaGFkZXJWYWx1ZSogc2hhZGVyVmFs
dWUgPSBzdGF0aWNfY2FzdDxTdHlsZVBlbmRpbmdTaGFkZXIqPihwcm9ncmFtLT52ZXJ0ZXhTaGFk
ZXIoKSktPmNzc1NoYWRlclZhbHVlKCk7CisgICAgICAgICAgICAgICAgcHJvZ3JhbS0+c2V0VmVy
dGV4U2hhZGVyKHNoYWRlclZhbHVlLT5jYWNoZWRTaGFkZXIoY2FjaGVkUmVzb3VyY2VMb2FkZXIp
KTsKICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmIChjdXN0b21GaWx0ZXItPmZyYWdtZW50
U2hhZGVyKCkgJiYgY3VzdG9tRmlsdGVyLT5mcmFnbWVudFNoYWRlcigpLT5pc1BlbmRpbmdTaGFk
ZXIoKSkgewotICAgICAgICAgICAgICAgIFdlYktpdENTU1NoYWRlclZhbHVlKiBzaGFkZXJWYWx1
ZSA9IHN0YXRpY19jYXN0PFN0eWxlUGVuZGluZ1NoYWRlcio+KGN1c3RvbUZpbHRlci0+ZnJhZ21l
bnRTaGFkZXIoKSktPmNzc1NoYWRlclZhbHVlKCk7Ci0gICAgICAgICAgICAgICAgY3VzdG9tRmls
dGVyLT5zZXRGcmFnbWVudFNoYWRlcihzaGFkZXJWYWx1ZS0+Y2FjaGVkU2hhZGVyKGNhY2hlZFJl
c291cmNlTG9hZGVyKSk7CisgICAgICAgICAgICBpZiAocHJvZ3JhbS0+ZnJhZ21lbnRTaGFkZXIo
KSAmJiBwcm9ncmFtLT5mcmFnbWVudFNoYWRlcigpLT5pc1BlbmRpbmdTaGFkZXIoKSkgeworICAg
ICAgICAgICAgICAgIFdlYktpdENTU1NoYWRlclZhbHVlKiBzaGFkZXJWYWx1ZSA9IHN0YXRpY19j
YXN0PFN0eWxlUGVuZGluZ1NoYWRlcio+KHByb2dyYW0tPmZyYWdtZW50U2hhZGVyKCkpLT5jc3NT
aGFkZXJWYWx1ZSgpOworICAgICAgICAgICAgICAgIHByb2dyYW0tPnNldEZyYWdtZW50U2hhZGVy
KHNoYWRlclZhbHVlLT5jYWNoZWRTaGFkZXIoY2FjaGVkUmVzb3VyY2VMb2FkZXIpKTsKICAgICAg
ICAgICAgIH0KICAgICAgICAgfQogICAgIH0KQEAgLTUxNTksOCArNTE2Miw4IEBAIFBhc3NSZWZQ
dHI8Q3VzdG9tRmlsdGVyT3BlcmF0aW9uPiBDU1NTdHlsZVNlbGVjdG9yOjpjcmVhdGVDdXN0b21G
aWx0ZXJPcGVyYXRpb24oCiAgICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICB9Ci0gICAgCi0g
ICAgcmV0dXJuIEN1c3RvbUZpbHRlck9wZXJhdGlvbjo6Y3JlYXRlKHZlcnRleFNoYWRlciwgZnJh
Z21lbnRTaGFkZXIsIG1lc2hSb3dzLCBtZXNoQ29sdW1ucywgbWVzaEJveFR5cGUsIG1lc2hUeXBl
KTsKKyAgICBSZWZQdHI8U3R5bGVDdXN0b21GaWx0ZXJQcm9ncmFtPiBwcm9ncmFtID0gU3R5bGVD
dXN0b21GaWx0ZXJQcm9ncmFtOjpjcmVhdGUodmVydGV4U2hhZGVyLnJlbGVhc2UoKSwgZnJhZ21l
bnRTaGFkZXIucmVsZWFzZSgpKTsKKyAgICByZXR1cm4gQ3VzdG9tRmlsdGVyT3BlcmF0aW9uOjpj
cmVhdGUocHJvZ3JhbS5yZWxlYXNlKCksIG1lc2hSb3dzLCBtZXNoQ29sdW1ucywgbWVzaEJveFR5
cGUsIG1lc2hUeXBlKTsKIH0KICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0N1c3RvbUZpbHRlck9wZXJhdGlvbi5oIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9DdXN0b21GaWx0ZXJPcGVyYXRpb24u
aApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43NGZlODg4Ci0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9DdXN0b21G
aWx0ZXJPcGVyYXRpb24uaApAQCAtMCwwICsxLDEwNCBAQAorLyoKKyAqIENvcHlyaWdodCAyMDEx
IEFkb2JlIFN5c3RlbXMgSW5jb3Jwb3JhdGVkLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUKKyAqICAgIGNvcHly
aWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nCisg
KiAgICBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogICAgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcKKyAqICAgIGRpc2NsYWltZXIgaW4gdGhl
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscworICogICAgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
VEhFIENPUFlSSUdIVCBIT0xERVIg4oCcQVMgSVPigJ0gQU5EIEFOWQorICogRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAq
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
VEhFIENPUFlSSUdIVCBIT0xERVIgQkUKKyAqIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwKKyAqIE9SIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBP
RiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAq
IFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IKKyAqIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRgorICogVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GCisgKiBTVUNIIERBTUFHRS4K
KyAqLworCisjaWZuZGVmIEN1c3RvbUZpbHRlck9wZXJhdGlvbl9oCisjZGVmaW5lIEN1c3RvbUZp
bHRlck9wZXJhdGlvbl9oCisKKyNpZiBFTkFCTEUoQ1NTX1NIQURFUlMpCisjaW5jbHVkZSAiQ3Vz
dG9tRmlsdGVyUHJvZ3JhbS5oIgorI2luY2x1ZGUgIkZpbHRlck9wZXJhdGlvbi5oIgorCituYW1l
c3BhY2UgV2ViQ29yZSB7CisKKy8vIENTUyBTaGFkZXJzCisKK2NsYXNzIEN1c3RvbUZpbHRlck9w
ZXJhdGlvbiA6IHB1YmxpYyBGaWx0ZXJPcGVyYXRpb24geworcHVibGljOgorICAgIGVudW0gTWVz
aEJveFR5cGUgeworICAgICAgICBGSUxURVJfQk9YLAorICAgICAgICBCT1JERVJfQk9YLAorICAg
ICAgICBQQURESU5HX0JPWCwKKyAgICAgICAgQ09OVEVOVF9CT1gKKyAgICB9OworICAgIAorICAg
IGVudW0gTWVzaFR5cGUgeworICAgICAgICBBVFRBQ0hFRCwKKyAgICAgICAgREVUQUNIRUQKKyAg
ICB9OworICAgIAorICAgIHN0YXRpYyBQYXNzUmVmUHRyPEN1c3RvbUZpbHRlck9wZXJhdGlvbj4g
Y3JlYXRlKFBhc3NSZWZQdHI8Q3VzdG9tRmlsdGVyUHJvZ3JhbT4gcHJvZ3JhbSwgdW5zaWduZWQg
bWVzaFJvd3MsIHVuc2lnbmVkIG1lc2hDb2x1bW5zLCBNZXNoQm94VHlwZSBtZXNoQm94VHlwZSwg
TWVzaFR5cGUgbWVzaFR5cGUpCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IEN1
c3RvbUZpbHRlck9wZXJhdGlvbihwcm9ncmFtLCBtZXNoUm93cywgbWVzaENvbHVtbnMsIG1lc2hC
b3hUeXBlLCBtZXNoVHlwZSkpOworICAgIH0KKyAgICAKKyAgICBDdXN0b21GaWx0ZXJQcm9ncmFt
KiBwcm9ncmFtKCkgY29uc3QgeyByZXR1cm4gbV9wcm9ncmFtLmdldCgpOyB9CisgICAgCisgICAg
dW5zaWduZWQgbWVzaFJvd3MoKSBjb25zdCB7IHJldHVybiBtX21lc2hSb3dzOyB9CisgICAgdW5z
aWduZWQgbWVzaENvbHVtbnMoKSBjb25zdCB7IHJldHVybiBtX21lc2hDb2x1bW5zOyB9CisgICAg
CisgICAgTWVzaEJveFR5cGUgbWVzaEJveFR5cGUoKSBjb25zdCB7IHJldHVybiBtX21lc2hCb3hU
eXBlOyB9CisgICAgTWVzaFR5cGUgbWVzaFR5cGUoKSBjb25zdCB7IHJldHVybiBtX21lc2hUeXBl
OyB9CisgICAgCitwcml2YXRlOgorICAgIHZpcnR1YWwgYm9vbCBvcGVyYXRvcj09KGNvbnN0IEZp
bHRlck9wZXJhdGlvbiYgbykgY29uc3QKKyAgICB7CisgICAgICAgIGlmICghaXNTYW1lVHlwZShv
KSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgICAgICBjb25zdCBDdXN0b21GaWx0
ZXJPcGVyYXRpb24qIG90aGVyID0gc3RhdGljX2Nhc3Q8Y29uc3QgQ3VzdG9tRmlsdGVyT3BlcmF0
aW9uKj4oJm8pOworICAgICAgICByZXR1cm4gbV9wcm9ncmFtLmdldCgpID09IG90aGVyLT5tX3By
b2dyYW0uZ2V0KCkKKyAgICAgICAgICAgICAgICYmIG1fbWVzaFJvd3MgPT0gb3RoZXItPm1fbWVz
aFJvd3MKKyAgICAgICAgICAgICAgICYmIG1fbWVzaENvbHVtbnMgPT0gb3RoZXItPm1fbWVzaENv
bHVtbnMKKyAgICAgICAgICAgICAgICYmIG1fbWVzaEJveFR5cGUgPT0gb3RoZXItPm1fbWVzaEJv
eFR5cGUKKyAgICAgICAgICAgICAgICYmIG1fbWVzaFR5cGUgPT0gb3RoZXItPm1fbWVzaFR5cGU7
CisgICAgfQorICAgIAorICAgIEN1c3RvbUZpbHRlck9wZXJhdGlvbihQYXNzUmVmUHRyPEN1c3Rv
bUZpbHRlclByb2dyYW0+IHByb2dyYW0sIHVuc2lnbmVkIG1lc2hSb3dzLCB1bnNpZ25lZCBtZXNo
Q29sdW1ucywgTWVzaEJveFR5cGUgbWVzaEJveFR5cGUsIE1lc2hUeXBlIG1lc2hUeXBlKQorICAg
ICAgICA6IEZpbHRlck9wZXJhdGlvbihDVVNUT00pCisgICAgICAgICwgbV9wcm9ncmFtKHByb2dy
YW0pCisgICAgICAgICwgbV9tZXNoUm93cyhtZXNoUm93cykKKyAgICAgICAgLCBtX21lc2hDb2x1
bW5zKG1lc2hDb2x1bW5zKQorICAgICAgICAsIG1fbWVzaEJveFR5cGUobWVzaEJveFR5cGUpCisg
ICAgICAgICwgbV9tZXNoVHlwZShtZXNoVHlwZSkKKyAgICB7CisgICAgfQorCisgICAgUmVmUHRy
PEN1c3RvbUZpbHRlclByb2dyYW0+IG1fcHJvZ3JhbTsKKyAgICAKKyAgICB1bnNpZ25lZCBtX21l
c2hSb3dzOworICAgIHVuc2lnbmVkIG1fbWVzaENvbHVtbnM7CisgICAgTWVzaEJveFR5cGUgbV9t
ZXNoQm94VHlwZTsKKyAgICBNZXNoVHlwZSBtX21lc2hUeXBlOworfTsKKworfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKENTU19TSEFERVJTKQorCisjZW5kaWYgLy8g
Q3VzdG9tRmlsdGVyT3BlcmF0aW9uX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2ZpbHRlcnMvQ3VzdG9tRmlsdGVyUHJvZ3JhbS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0N1c3RvbUZpbHRlclByb2dyYW0uY3BwCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmZmMDQzOWIKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0N1c3RvbUZpbHRl
clByb2dyYW0uY3BwCkBAIC0wLDAgKzEsOTAgQEAKKy8qCisgKiBDb3B5cmlnaHQgMjAxMSBBZG9i
ZSBTeXN0ZW1zIEluY29ycG9yYXRlZC4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqCisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlCisgKiAgICBjb3B5cmlnaHQg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZworICogICAg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUKKyAqICAgIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nCisgKiAgICBkaXNjbGFpbWVyIGluIHRoZSBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMKKyAqICAgIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBD
T1BZUklHSFQgSE9MREVSIOKAnEFTIElT4oCdIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBD
T1BZUklHSFQgSE9MREVSIEJFCisgKiBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksCisgKiBPUiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9G
SVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkK
KyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SCisgKiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YKKyAqIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRgorICogU1VDSCBEQU1BR0UuCisgKi8K
KworI2luY2x1ZGUgImNvbmZpZy5oIgorCisjaWYgRU5BQkxFKENTU19TSEFERVJTKQorI2luY2x1
ZGUgIkN1c3RvbUZpbHRlclByb2dyYW0uaCIKKworI2luY2x1ZGUgIkN1c3RvbUZpbHRlclByb2dy
YW1DbGllbnQuaCIKKyNpbmNsdWRlICJDdXN0b21GaWx0ZXJTaGFkZXIuaCIKKworI2lmIEVOQUJM
RShXRUJHTCkKKyNpbmNsdWRlICJHcmFwaGljc0NvbnRleHQzRC5oIgorI2VuZGlmCisKK25hbWVz
cGFjZSBXZWJDb3JlIHsKKworQ3VzdG9tRmlsdGVyUHJvZ3JhbTo6Q3VzdG9tRmlsdGVyUHJvZ3Jh
bSgpCit7CisgICAgLy8gS2VlcCB0aGUgY29uc3RydWN0b3IgcHJvdGVjdGVkIHRvIHByZXZlbnQg
Y3JlYXRpbmcgdGhpcyBvYmplY3QgZGlyZWN0bHkuCit9CisKK0N1c3RvbUZpbHRlclByb2dyYW06
On5DdXN0b21GaWx0ZXJQcm9ncmFtKCkKK3sKKyAgICAvLyBBbGwgdGhlIGNsaWVudHMgc2hvdWxk
IGtlZXAgYSByZWZlcmVuY2UgdG8gdGhpcyBvYmplY3QuCisgICAgQVNTRVJUKG1fY2xpZW50cy5p
c0VtcHR5KCkpOworfQorCit2b2lkIEN1c3RvbUZpbHRlclByb2dyYW06OmFkZENsaWVudChDdXN0
b21GaWx0ZXJQcm9ncmFtQ2xpZW50KiBjbGllbnQpCit7CisgICAgYm9vbCBjbGllbnRMaXN0V2Fz
RW1wdHkgPSBtX2NsaWVudHMuaXNFbXB0eSgpOworICAgIG1fY2xpZW50cy5hZGQoY2xpZW50KTsK
KyAgICBpZiAoY2xpZW50TGlzdFdhc0VtcHR5KSB7CisgICAgICAgIC8vIE5vdGlmeSB0aGUgU3R5
bGVDdXN0b21GaWx0ZXJQcm9ncmFtIHRoYXQgd2Ugbm93IGhhdmUgYXQgbGVhc3QgYSBjbGllbnQK
KyAgICAgICAgLy8gYW5kIHRoZSBsb2FkaW5nIGNhbiBiZWdpbi4KKyAgICAgICAgYWRkQ2xpZW50
cygpOworICAgIH0KK30KKwordm9pZCBDdXN0b21GaWx0ZXJQcm9ncmFtOjpyZW1vdmVDbGllbnQo
Q3VzdG9tRmlsdGVyUHJvZ3JhbUNsaWVudCogY2xpZW50KQoreworICAgIG1fY2xpZW50cy5yZW1v
dmUoY2xpZW50KTsKKyAgICBpZiAobV9jbGllbnRzLmlzRW1wdHkoKSkgeworICAgICAgICAvLyBX
ZSBoYXZlIG5vIGNsaWVudHMgYW55bW9yZSwgdGhlIGNhY2hlZCByZXNvdXJjZXMgY2FuIGJlIHB1
cmdlZCBmcm9tIG1lbW9yeS4KKyAgICAgICAgcmVtb3ZlQ2xpZW50cygpOworICAgIH0KK30KKwor
dm9pZCBDdXN0b21GaWx0ZXJQcm9ncmFtOjpub3RpZnlDbGllbnRzKCkKK3sKKyAgICBmb3IgKEN1
c3RvbUZpbHRlclByb2dyYW1DbGllbnRMaXN0OjppdGVyYXRvciBpdGVyID0gbV9jbGllbnRzLmJl
Z2luKCksIGVuZCA9IG1fY2xpZW50cy5lbmQoKTsgaXRlciAhPSBlbmQ7ICsraXRlcikKKyAgICAg
ICAgaXRlci0+Zmlyc3QtPm5vdGlmeUN1c3RvbUZpbHRlclByb2dyYW1Mb2FkZWQodGhpcyk7Cit9
CisKKyNpZiBFTkFCTEUoV0VCR0wpCitQYXNzUmVmUHRyPEN1c3RvbUZpbHRlclNoYWRlcj4gQ3Vz
dG9tRmlsdGVyUHJvZ3JhbTo6Y3JlYXRlU2hhZGVyV2l0aENvbnRleHQoR3JhcGhpY3NDb250ZXh0
M0QqIGNvbnRleHQpCit7CisgICAgQVNTRVJUKGlzTG9hZGVkKCkpOworICAgIHJldHVybiBDdXN0
b21GaWx0ZXJTaGFkZXI6OmNyZWF0ZShjb250ZXh0LCB2ZXJ0ZXhTaGFkZXJTdHJpbmcoKSwgZnJh
Z21lbnRTaGFkZXJTdHJpbmcoKSk7Cit9CisjZW5kaWYKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQorI2VuZGlmIC8vIEVOQUJMRShDU1NfU0hBREVSUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvQ3VzdG9tRmlsdGVyUHJvZ3JhbS5oIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9DdXN0b21GaWx0ZXJQcm9ncmFt
LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzc4Nzc0MQotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvQ3VzdG9t
RmlsdGVyUHJvZ3JhbS5oCkBAIC0wLDAgKzEsODIgQEAKKy8qCisgKiBDb3B5cmlnaHQgMjAxMSBB
ZG9iZSBTeXN0ZW1zIEluY29ycG9yYXRlZC4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqCisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlCisgKiAgICBjb3B5cmln
aHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZworICog
ICAgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqICAgIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nCisgKiAgICBkaXNjbGFpbWVyIGluIHRoZSBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMKKyAqICAgIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRI
RSBDT1BZUklHSFQgSE9MREVSIOKAnEFTIElT4oCdIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRI
RSBDT1BZUklHSFQgSE9MREVSIEJFCisgKiBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksCisgKiBPUiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0Yg
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SCisgKiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YKKyAqIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRgorICogU1VDSCBEQU1BR0UuCisg
Ki8KKworI2lmbmRlZiBDdXN0b21GaWx0ZXJQcm9ncmFtX2gKKyNkZWZpbmUgQ3VzdG9tRmlsdGVy
UHJvZ3JhbV9oCisKKyNpZiBFTkFCTEUoQ1NTX1NIQURFUlMpCisKKyNpbmNsdWRlIDx3dGYvSGFz
aENvdW50ZWRTZXQuaD4KKyNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgorI2luY2x1ZGUgPHd0
Zi90ZXh0L1dURlN0cmluZy5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIEdyYXBo
aWNzQ29udGV4dDNEOworY2xhc3MgQ3VzdG9tRmlsdGVyU2hhZGVyOworY2xhc3MgQ3VzdG9tRmls
dGVyUHJvZ3JhbUNsaWVudDsKKworLy8gVGhpcyBpcyB0aGUgYmFzZSBjbGFzcyBmb3IgdGhlIFN0
eWxlQ3VzdG9tRmlsdGVyUHJvZ3JhbSBjbGFzcyB3aGljaCBrbm93cyBob3cgdG8ga2VlcAorLy8g
cmVmZXJlbmNlcyB0byB0aGUgY2FjaGVkIHNoYWRlcnMuCitjbGFzcyBDdXN0b21GaWx0ZXJQcm9n
cmFtOiBwdWJsaWMgUmVmQ291bnRlZDxDdXN0b21GaWx0ZXJQcm9ncmFtPiB7CitwdWJsaWM6Cisg
ICAgdmlydHVhbCB+Q3VzdG9tRmlsdGVyUHJvZ3JhbSgpOworCisgICAgdmlydHVhbCBib29sIGlz
TG9hZGVkKCkgY29uc3QgPSAwOworICAgIAorICAgIHZvaWQgYWRkQ2xpZW50KEN1c3RvbUZpbHRl
clByb2dyYW1DbGllbnQqKTsKKyAgICB2b2lkIHJlbW92ZUNsaWVudChDdXN0b21GaWx0ZXJQcm9n
cmFtQ2xpZW50Kik7CisgICAgCisjaWYgRU5BQkxFKFdFQkdMKQorICAgIFBhc3NSZWZQdHI8Q3Vz
dG9tRmlsdGVyU2hhZGVyPiBjcmVhdGVTaGFkZXJXaXRoQ29udGV4dChHcmFwaGljc0NvbnRleHQz
RCopOworI2VuZGlmCitwcm90ZWN0ZWQ6CisgICAgLy8gU3R5bGVDdXN0b21GaWx0ZXJQcm9ncmFt
IGNhbiBub3RpZnkgdGhlIGNsaWVudHMgdGhhdCB0aGUgY2FjaGVkIHJlc291cmNlcyBhcmUKKyAg
ICAvLyBsb2FkZWQgYW5kIGl0IGlzIHJlYWR5IHRvIGNyZWF0ZSBDdXN0b21GaWx0ZXJTaGFkZXIg
b2JqZWN0cy4KKyAgICB2b2lkIG5vdGlmeUNsaWVudHMoKTsKKyAgICAKKyAgICB2aXJ0dWFsIFN0
cmluZyB2ZXJ0ZXhTaGFkZXJTdHJpbmcoKSBjb25zdCA9IDA7CisgICAgdmlydHVhbCBTdHJpbmcg
ZnJhZ21lbnRTaGFkZXJTdHJpbmcoKSBjb25zdCA9IDA7CisgICAgCisgICAgdmlydHVhbCB2b2lk
IGFkZENsaWVudHMoKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHJlbW92ZUNsaWVudHMoKSA9IDA7
CisKKyAgICAvLyBLZWVwIHRoZSBjb25zdHJ1Y3RvciBwcm90ZWN0ZWQgdG8gcHJldmVudCBjcmVh
dGluZyB0aGlzIG9iamVjdCBkaXJlY3RseS4KKyAgICBDdXN0b21GaWx0ZXJQcm9ncmFtKCk7CisK
K3ByaXZhdGU6CisgICAgdHlwZWRlZiBIYXNoQ291bnRlZFNldDxDdXN0b21GaWx0ZXJQcm9ncmFt
Q2xpZW50Kj4gQ3VzdG9tRmlsdGVyUHJvZ3JhbUNsaWVudExpc3Q7CisgICAgQ3VzdG9tRmlsdGVy
UHJvZ3JhbUNsaWVudExpc3QgbV9jbGllbnRzOworfTsKKworfQorCisjZW5kaWYgLy8gRU5BQkxF
KENTU19TSEFERVJTKQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2ZpbHRlcnMvQ3VzdG9tRmlsdGVyUHJvZ3JhbUNsaWVudC5oIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9DdXN0b21GaWx0ZXJQcm9ncmFtQ2xp
ZW50LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzlmYTI1MQotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvQ3Vz
dG9tRmlsdGVyUHJvZ3JhbUNsaWVudC5oCkBAIC0wLDAgKzEsNTIgQEAKKy8qCisgKiBDb3B5cmln
aHQgMjAxMSBBZG9iZSBTeXN0ZW1zIEluY29ycG9yYXRlZC4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqCisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlCisgKiAg
ICBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZworICogICAgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqICAgIGNvcHlyaWdodCBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nCisgKiAgICBkaXNjbGFpbWVy
IGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMKKyAqICAgIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSIOKAnEFTIElT4oCdIEFORCBBTlkKKyAqIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
VEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIFRIRSBDT1BZUklHSFQgSE9MREVSIEJFCisgKiBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksCisgKiBPUiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VS
RU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SCisgKiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YKKyAqIFRIRSBVU0UgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRgorICogU1VDSCBE
QU1BR0UuCisgKi8KKworI2lmbmRlZiBDdXN0b21GaWx0ZXJQcm9ncmFtQ2xpZW50X2gKKyNkZWZp
bmUgQ3VzdG9tRmlsdGVyUHJvZ3JhbUNsaWVudF9oCisKKyNpZiBFTkFCTEUoQ1NTX1NIQURFUlMp
CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgQ3VzdG9tRmlsdGVyUHJvZ3JhbTsKKwor
Y2xhc3MgQ3VzdG9tRmlsdGVyUHJvZ3JhbUNsaWVudCB7CitwdWJsaWM6CisgICAgdmlydHVhbCB+
Q3VzdG9tRmlsdGVyUHJvZ3JhbUNsaWVudCgpCisgICAgeworICAgIH0KKyAgICAKKyAgICB2aXJ0
dWFsIHZvaWQgbm90aWZ5Q3VzdG9tRmlsdGVyUHJvZ3JhbUxvYWRlZChDdXN0b21GaWx0ZXJQcm9n
cmFtKikgPSAwOworfTsKKworfQorCisjZW5kaWYgLy8gRU5BQkxFKENTU19TSEFERVJTKQorCisj
ZW5kaWYgLy8gQ3VzdG9tRmlsdGVyUHJvZ3JhbUNsaWVudF9oCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFQ3VzdG9tRmlsdGVyLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVDdXN0b21GaWx0ZXIuY3Bw
CmluZGV4IGZiNDI3MGUuLjY2MGQ1NzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVDdXN0b21GaWx0ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVDdXN0b21GaWx0ZXIuY3BwCkBAIC0zNCw2
ICszNCw3IEBACiAKICNpbmNsdWRlICJDYWNoZWRTaGFkZXIuaCIKICNpbmNsdWRlICJDdXN0b21G
aWx0ZXJNZXNoLmgiCisjaW5jbHVkZSAiQ3VzdG9tRmlsdGVyUHJvZ3JhbS5oIgogI2luY2x1ZGUg
IkN1c3RvbUZpbHRlclNoYWRlci5oIgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAi
RHJhd2luZ0J1ZmZlci5oIgpAQCAtNzMsMTMgKzc0LDEyIEBAIHN0YXRpYyB2b2lkIG9ydGhvZ29u
YWxQcm9qZWN0aW9uTWF0cml4KFRyYW5zZm9ybWF0aW9uTWF0cml4JiBtYXRyaXgsIGZsb2F0IGxl
ZnQsCiAgICAgbWF0cml4LnNldE00NCgxLjBmKTsKIH0KIAotRkVDdXN0b21GaWx0ZXI6OkZFQ3Vz
dG9tRmlsdGVyKEZpbHRlciogZmlsdGVyLCBEb2N1bWVudCogZG9jdW1lbnQsIGNvbnN0IFN0cmlu
ZyYgdmVydGV4U2hhZGVyLCBjb25zdCBTdHJpbmcmIGZyYWdtZW50U2hhZGVyLAorRkVDdXN0b21G
aWx0ZXI6OkZFQ3VzdG9tRmlsdGVyKEZpbHRlciogZmlsdGVyLCBEb2N1bWVudCogZG9jdW1lbnQs
IFBhc3NSZWZQdHI8Q3VzdG9tRmlsdGVyUHJvZ3JhbT4gcHJvZ3JhbSwKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICB1bnNpZ25lZCBtZXNoUm93cywgdW5zaWduZWQgbWVzaENvbHVtbnMs
IEN1c3RvbUZpbHRlck9wZXJhdGlvbjo6TWVzaEJveFR5cGUgbWVzaEJveFR5cGUsCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgQ3VzdG9tRmlsdGVyT3BlcmF0aW9uOjpNZXNoVHlwZSBt
ZXNoVHlwZSkKICAgICA6IEZpbHRlckVmZmVjdChmaWx0ZXIpCiAgICAgLCBtX2RvY3VtZW50KGRv
Y3VtZW50KQotICAgICwgbV92ZXJ0ZXhTaGFkZXIodmVydGV4U2hhZGVyKQotICAgICwgbV9mcmFn
bWVudFNoYWRlcihmcmFnbWVudFNoYWRlcikKKyAgICAsIG1fcHJvZ3JhbShwcm9ncmFtKQogICAg
ICwgbV9tZXNoUm93cyhtZXNoUm93cykKICAgICAsIG1fbWVzaENvbHVtbnMobWVzaENvbHVtbnMp
CiAgICAgLCBtX21lc2hCb3hUeXBlKG1lc2hCb3hUeXBlKQpAQCAtODcsMTEgKzg3LDExIEBAIEZF
Q3VzdG9tRmlsdGVyOjpGRUN1c3RvbUZpbHRlcihGaWx0ZXIqIGZpbHRlciwgRG9jdW1lbnQqIGRv
Y3VtZW50LCBjb25zdCBTdHJpbmcmCiB7CiB9CiAKLVBhc3NSZWZQdHI8RkVDdXN0b21GaWx0ZXI+
IEZFQ3VzdG9tRmlsdGVyOjpjcmVhdGUoRmlsdGVyKiBmaWx0ZXIsIERvY3VtZW50KiBkb2N1bWVu
dCwgY29uc3QgU3RyaW5nJiB2ZXJ0ZXhTaGFkZXIsIGNvbnN0IFN0cmluZyYgZnJhZ21lbnRTaGFk
ZXIsCitQYXNzUmVmUHRyPEZFQ3VzdG9tRmlsdGVyPiBGRUN1c3RvbUZpbHRlcjo6Y3JlYXRlKEZp
bHRlciogZmlsdGVyLCBEb2N1bWVudCogZG9jdW1lbnQsIFBhc3NSZWZQdHI8Q3VzdG9tRmlsdGVy
UHJvZ3JhbT4gcHJvZ3JhbSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB1bnNpZ25lZCBtZXNoUm93cywgdW5zaWduZWQgbWVzaENvbHVtbnMsIEN1c3RvbUZpbHRl
ck9wZXJhdGlvbjo6TWVzaEJveFR5cGUgbWVzaEJveFR5cGUsCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgQ3VzdG9tRmlsdGVyT3BlcmF0aW9uOjpNZXNoVHlwZSBt
ZXNoVHlwZSkKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IEZFQ3VzdG9tRmlsdGVyKGZpbHRl
ciwgZG9jdW1lbnQsIHZlcnRleFNoYWRlciwgZnJhZ21lbnRTaGFkZXIsIG1lc2hSb3dzLCBtZXNo
Q29sdW1ucywgbWVzaEJveFR5cGUsIG1lc2hUeXBlKSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKG5l
dyBGRUN1c3RvbUZpbHRlcihmaWx0ZXIsIGRvY3VtZW50LCBwcm9ncmFtLCBtZXNoUm93cywgbWVz
aENvbHVtbnMsIG1lc2hCb3hUeXBlLCBtZXNoVHlwZSkpOwogfQogCiB2b2lkIEZFQ3VzdG9tRmls
dGVyOjpwbGF0Zm9ybUFwcGx5U29mdHdhcmUoKQpAQCAtMTM3LDEwICsxMzcsMTEgQEAgdm9pZCBG
RUN1c3RvbUZpbHRlcjo6aW5pdGlhbGl6ZUNvbnRleHQoY29uc3QgSW50U2l6ZSYgY29udGV4dFNp
emUpCiAgICAgYXR0cmlidXRlcy5wcmVzZXJ2ZURyYXdpbmdCdWZmZXIgPSB0cnVlOwogICAgIGF0
dHJpYnV0ZXMucHJlbXVsdGlwbGllZEFscGhhID0gZmFsc2U7CiAgICAgCisgICAgQVNTRVJUKCFt
X2NvbnRleHQuZ2V0KCkpOwogICAgIG1fY29udGV4dCA9IEdyYXBoaWNzQ29udGV4dDNEOjpjcmVh
dGUoYXR0cmlidXRlcywgbV9kb2N1bWVudC0+dmlldygpLT5yb290KCktPmhvc3RXaW5kb3coKSwg
R3JhcGhpY3NDb250ZXh0M0Q6OlJlbmRlck9mZnNjcmVlbik7CiAgICAgbV9kcmF3aW5nQnVmZmVy
ID0gRHJhd2luZ0J1ZmZlcjo6Y3JlYXRlKG1fY29udGV4dC5nZXQoKSwgY29udGV4dFNpemUsICFh
dHRyaWJ1dGVzLnByZXNlcnZlRHJhd2luZ0J1ZmZlcik7CiAgICAgCi0gICAgbV9zaGFkZXIgPSBD
dXN0b21GaWx0ZXJTaGFkZXI6OmNyZWF0ZShtX2NvbnRleHQuZ2V0KCksIG1fdmVydGV4U2hhZGVy
LCBtX2ZyYWdtZW50U2hhZGVyKTsKKyAgICBtX3NoYWRlciA9IG1fcHJvZ3JhbS0+Y3JlYXRlU2hh
ZGVyV2l0aENvbnRleHQobV9jb250ZXh0LmdldCgpKTsKICAgICBtX21lc2ggPSBDdXN0b21GaWx0
ZXJNZXNoOjpjcmVhdGUobV9jb250ZXh0LmdldCgpLCBtX21lc2hDb2x1bW5zLCBtX21lc2hSb3dz
LCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRmxvYXRSZWN0KDAsIDAs
IDEsIDEpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX21lc2hUeXBl
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMv
RkVDdXN0b21GaWx0ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRl
cnMvRkVDdXN0b21GaWx0ZXIuaAppbmRleCAyYWFhYmY2Li5hNTRmYzQ1IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFQ3VzdG9tRmlsdGVyLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUN1c3RvbUZp
bHRlci5oCkBAIC01MCwxMSArNTAsMTIgQEAgY2xhc3MgRG9jdW1lbnQ7CiBjbGFzcyBEcmF3aW5n
QnVmZmVyOwogY2xhc3MgR3JhcGhpY3NDb250ZXh0M0Q7CiBjbGFzcyBJbnRTaXplOworY2xhc3Mg
Q3VzdG9tRmlsdGVyUHJvZ3JhbTsKIGNsYXNzIFRleHR1cmU7CiAKIGNsYXNzIEZFQ3VzdG9tRmls
dGVyIDogcHVibGljIEZpbHRlckVmZmVjdCB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQ
dHI8RkVDdXN0b21GaWx0ZXI+IGNyZWF0ZShGaWx0ZXIqLCBEb2N1bWVudCosIGNvbnN0IFN0cmlu
ZyYgdmVydGV4U2hhZGVyLCBjb25zdCBTdHJpbmcmIGZyYWdtZW50U2hhZGVyLAorICAgIHN0YXRp
YyBQYXNzUmVmUHRyPEZFQ3VzdG9tRmlsdGVyPiBjcmVhdGUoRmlsdGVyKiwgRG9jdW1lbnQqLCBQ
YXNzUmVmUHRyPEN1c3RvbUZpbHRlclByb2dyYW0+LAogICAgICAgICAgICAgICAgICAgIHVuc2ln
bmVkIG1lc2hSb3dzLCB1bnNpZ25lZCBtZXNoQ29sdW1ucywgQ3VzdG9tRmlsdGVyT3BlcmF0aW9u
OjpNZXNoQm94VHlwZSwgCiAgICAgICAgICAgICAgICAgICAgQ3VzdG9tRmlsdGVyT3BlcmF0aW9u
OjpNZXNoVHlwZSk7CiAKQEAgLTY0LDcgKzY1LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgVGV4
dFN0cmVhbSYgZXh0ZXJuYWxSZXByZXNlbnRhdGlvbihUZXh0U3RyZWFtJiwgaW50IGluZGVudGlv
bikgY29uc3Q7CiAKIHByaXZhdGU6Ci0gICAgRkVDdXN0b21GaWx0ZXIoRmlsdGVyKiwgRG9jdW1l
bnQqLCBjb25zdCBTdHJpbmcmIHZlcnRleFNoYWRlciwgY29uc3QgU3RyaW5nJiBmcmFnbWVudFNo
YWRlciwKKyAgICBGRUN1c3RvbUZpbHRlcihGaWx0ZXIqLCBEb2N1bWVudCosIFBhc3NSZWZQdHI8
Q3VzdG9tRmlsdGVyUHJvZ3JhbT4sCiAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgbWVzaFJv
d3MsIHVuc2lnbmVkIG1lc2hDb2x1bW5zLCBDdXN0b21GaWx0ZXJPcGVyYXRpb246Ok1lc2hCb3hU
eXBlLCAKICAgICAgICAgICAgICAgICAgICBDdXN0b21GaWx0ZXJPcGVyYXRpb246Ok1lc2hUeXBl
KTsKICAgICAKQEAgLTgxLDkgKzgyLDggQEAgcHJpdmF0ZToKICAgICBSZWZQdHI8Q3VzdG9tRmls
dGVyU2hhZGVyPiBtX3NoYWRlcjsKICAgICBSZWZQdHI8Q3VzdG9tRmlsdGVyTWVzaD4gbV9tZXNo
OwogICAgIEludFNpemUgbV9jb250ZXh0U2l6ZTsKLSAgICAKLSAgICBTdHJpbmcgbV92ZXJ0ZXhT
aGFkZXI7Ci0gICAgU3RyaW5nIG1fZnJhZ21lbnRTaGFkZXI7CisKKyAgICBSZWZQdHI8Q3VzdG9t
RmlsdGVyUHJvZ3JhbT4gbV9wcm9ncmFtOwogCiAgICAgdW5zaWduZWQgbV9tZXNoUm93czsKICAg
ICB1bnNpZ25lZCBtX21lc2hDb2x1bW5zOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL0ZpbHRlckVmZmVjdFJlbmRlcmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9GaWx0ZXJFZmZlY3RSZW5kZXJlci5jcHAKaW5kZXggMWNjNDUwNi4uMjVhZTExMCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0ZpbHRlckVmZmVjdFJlbmRlcmVyLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvRmlsdGVyRWZmZWN0UmVuZGVyZXIuY3BwCkBA
IC00MSw3ICs0MSw3IEBACiAjaW5jbHVkZSA8d3RmL01hdGhFeHRyYXMuaD4KIAogI2lmIEVOQUJM
RShDU1NfU0hBREVSUykgJiYgRU5BQkxFKFdFQkdMKQotI2luY2x1ZGUgIkNhY2hlZFNoYWRlci5o
IgorI2luY2x1ZGUgIkN1c3RvbUZpbHRlclByb2dyYW0uaCIKICNpbmNsdWRlICJDdXN0b21GaWx0
ZXJPcGVyYXRpb24uaCIKICNpbmNsdWRlICJGRUN1c3RvbUZpbHRlci5oIgogI2luY2x1ZGUgIlNl
dHRpbmdzLmgiCkBAIC04NCw2ICs4NCw5IEBAIEZpbHRlckVmZmVjdFJlbmRlcmVyOjpGaWx0ZXJF
ZmZlY3RSZW5kZXJlcihGaWx0ZXJFZmZlY3RPYnNlcnZlciogb2JzZXJ2ZXIpCiAKIEZpbHRlckVm
ZmVjdFJlbmRlcmVyOjp+RmlsdGVyRWZmZWN0UmVuZGVyZXIoKQogeworI2lmIEVOQUJMRShDU1Nf
U0hBREVSUykKKyAgICByZW1vdmVDdXN0b21GaWx0ZXJDbGllbnRzKCk7CisjZW5kaWYKIH0KIAog
R3JhcGhpY3NDb250ZXh0KiBGaWx0ZXJFZmZlY3RSZW5kZXJlcjo6aW5wdXRDb250ZXh0KCkKQEAg
LTk2LDcgKzk5LDcgQEAgdm9pZCBGaWx0ZXJFZmZlY3RSZW5kZXJlcjo6YnVpbGQoRG9jdW1lbnQq
IGRvY3VtZW50LCBjb25zdCBGaWx0ZXJPcGVyYXRpb25zJiBvcGUKICNpZiAhRU5BQkxFKENTU19T
SEFERVJTKSB8fCAhRU5BQkxFKFdFQkdMKQogICAgIFVOVVNFRF9QQVJBTShkb2N1bWVudCk7CiAj
ZWxzZQotICAgIENhY2hlZFNoYWRlckxpc3QgY2FjaGVkU2hhZGVyczsKKyAgICBDdXN0b21GaWx0
ZXJQcm9ncmFtTGlzdCBjYWNoZWRDdXN0b21GaWx0ZXJQcm9ncmFtczsKICNlbmRpZgogCiAgICAg
bV9lZmZlY3RzLmNsZWFyKCk7CkBAIC0yNDgsMzIgKzI1MSwxMSBAQCB2b2lkIEZpbHRlckVmZmVj
dFJlbmRlcmVyOjpidWlsZChEb2N1bWVudCogZG9jdW1lbnQsIGNvbnN0IEZpbHRlck9wZXJhdGlv
bnMmIG9wZQogICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICAgCiAgICAgICAg
ICAgICBDdXN0b21GaWx0ZXJPcGVyYXRpb24qIGN1c3RvbUZpbHRlck9wZXJhdGlvbiA9IHN0YXRp
Y19jYXN0PEN1c3RvbUZpbHRlck9wZXJhdGlvbio+KGZpbHRlck9wZXJhdGlvbik7Ci0gICAgICAg
ICAgICAKLSAgICAgICAgICAgIC8vIENoZWNrIHRoYXQgdGhlIGZpbHRlcnMgYXJlIGFscmVhZHkg
bG9hZGVkLiBJZiBub3QganVzdCBza2lwIHRoZW0gaGVyZS4KLSAgICAgICAgICAgIFN0cmluZyB2
ZXJ0ZXhTaGFkZXIsIGZyYWdtZW50U2hhZGVyOwotICAgICAgICAgICAgYm9vbCBzaGFkZXJzTG9h
ZGVkID0gdHJ1ZTsKLSAgICAgICAgICAgIGlmIChjdXN0b21GaWx0ZXJPcGVyYXRpb24tPnZlcnRl
eFNoYWRlcigpKSB7Ci0gICAgICAgICAgICAgICAgQ2FjaGVkU2hhZGVyKiBjYWNoZWRTaGFkZXIg
PSBjdXN0b21GaWx0ZXJPcGVyYXRpb24tPnZlcnRleFNoYWRlcigpLT5jYWNoZWRTaGFkZXIoKTsK
LSAgICAgICAgICAgICAgICBBU1NFUlQoY2FjaGVkU2hhZGVyKTsKLSAgICAgICAgICAgICAgICBj
YWNoZWRTaGFkZXJzLmFwcGVuZChjYWNoZWRTaGFkZXIpOwotICAgICAgICAgICAgICAgIGNhY2hl
ZFNoYWRlci0+YWRkQ2xpZW50KHRoaXMpOwotICAgICAgICAgICAgICAgIGlmIChjYWNoZWRTaGFk
ZXItPmlzTG9hZGVkKCkpCi0gICAgICAgICAgICAgICAgICAgIHZlcnRleFNoYWRlciA9IGNhY2hl
ZFNoYWRlci0+c2hhZGVyU3RyaW5nKCk7Ci0gICAgICAgICAgICAgICAgZWxzZQotICAgICAgICAg
ICAgICAgICAgICBzaGFkZXJzTG9hZGVkID0gZmFsc2U7Ci0gICAgICAgICAgICB9Ci0gICAgICAg
ICAgICBpZiAoY3VzdG9tRmlsdGVyT3BlcmF0aW9uLT5mcmFnbWVudFNoYWRlcigpKSB7Ci0gICAg
ICAgICAgICAgICAgQ2FjaGVkU2hhZGVyKiBjYWNoZWRTaGFkZXIgPSBjdXN0b21GaWx0ZXJPcGVy
YXRpb24tPmZyYWdtZW50U2hhZGVyKCktPmNhY2hlZFNoYWRlcigpOwotICAgICAgICAgICAgICAg
IEFTU0VSVChjYWNoZWRTaGFkZXIpOwotICAgICAgICAgICAgICAgIGNhY2hlZFNoYWRlcnMuYXBw
ZW5kKGNhY2hlZFNoYWRlcik7Ci0gICAgICAgICAgICAgICAgY2FjaGVkU2hhZGVyLT5hZGRDbGll
bnQodGhpcyk7Ci0gICAgICAgICAgICAgICAgaWYgKGNhY2hlZFNoYWRlci0+aXNMb2FkZWQoKSkK
LSAgICAgICAgICAgICAgICAgICAgZnJhZ21lbnRTaGFkZXIgPSBjYWNoZWRTaGFkZXItPnNoYWRl
clN0cmluZygpOwotICAgICAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICAgICAgc2hh
ZGVyc0xvYWRlZCA9IGZhbHNlOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYgKHNoYWRl
cnNMb2FkZWQpIHsKLSAgICAgICAgICAgICAgICBlZmZlY3QgPSBGRUN1c3RvbUZpbHRlcjo6Y3Jl
YXRlKHRoaXMsIGRvY3VtZW50LCB2ZXJ0ZXhTaGFkZXIsIGZyYWdtZW50U2hhZGVyLAorICAgICAg
ICAgICAgUmVmUHRyPEN1c3RvbUZpbHRlclByb2dyYW0+IHByb2dyYW0gPSBjdXN0b21GaWx0ZXJP
cGVyYXRpb24tPnByb2dyYW0oKTsKKyAgICAgICAgICAgIGlmIChwcm9ncmFtLT5pc0xvYWRlZCgp
KSB7CisgICAgICAgICAgICAgICAgY2FjaGVkQ3VzdG9tRmlsdGVyUHJvZ3JhbXMuYXBwZW5kKHBy
b2dyYW0pOworICAgICAgICAgICAgICAgIHByb2dyYW0tPmFkZENsaWVudCh0aGlzKTsKKyAgICAg
ICAgICAgICAgICBlZmZlY3QgPSBGRUN1c3RvbUZpbHRlcjo6Y3JlYXRlKHRoaXMsIGRvY3VtZW50
LCBwcm9ncmFtLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgY3VzdG9tRmlsdGVyT3BlcmF0aW9uLT5tZXNoUm93cygpLCBjdXN0b21GaWx0ZXJPcGVyYXRp
b24tPm1lc2hDb2x1bW5zKCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBjdXN0b21GaWx0ZXJPcGVyYXRpb24tPm1lc2hCb3hUeXBlKCksIGN1c3RvbUZp
bHRlck9wZXJhdGlvbi0+bWVzaFR5cGUoKSk7CiAgICAgICAgICAgICB9CkBAIC0zMDQsMTcgKzI4
NiwyNCBAQCB2b2lkIEZpbHRlckVmZmVjdFJlbmRlcmVyOjpidWlsZChEb2N1bWVudCogZG9jdW1l
bnQsIGNvbnN0IEZpbHRlck9wZXJhdGlvbnMmIG9wZQogICAgIHNldE1heEVmZmVjdFJlY3RzKG1f
c291cmNlRHJhd2luZ1JlZ2lvbik7CiAgICAgCiAjaWYgRU5BQkxFKENTU19TSEFERVJTKSAmJiBF
TkFCTEUoV0VCR0wpCi0gICAgZm9yIChDYWNoZWRTaGFkZXJMaXN0OjppdGVyYXRvciBpdGVyID0g
bV9jYWNoZWRTaGFkZXJzLmJlZ2luKCksIGVuZCA9IG1fY2FjaGVkU2hhZGVycy5lbmQoKTsgaXRl
ciAhPSBlbmQ7ICsraXRlcikKLSAgICAgICAgaXRlci0+Z2V0KCktPnJlbW92ZUNsaWVudCh0aGlz
KTsKLSAgICBtX2NhY2hlZFNoYWRlcnMuc3dhcChjYWNoZWRTaGFkZXJzKTsKKyAgICByZW1vdmVD
dXN0b21GaWx0ZXJDbGllbnRzKCk7CisgICAgbV9jYWNoZWRDdXN0b21GaWx0ZXJQcm9ncmFtcy5z
d2FwKGNhY2hlZEN1c3RvbUZpbHRlclByb2dyYW1zKTsKICNlbmRpZgogfQogCi12b2lkIEZpbHRl
ckVmZmVjdFJlbmRlcmVyOjpub3RpZnlGaW5pc2hlZChDYWNoZWRSZXNvdXJjZSopCisjaWYgRU5B
QkxFKENTU19TSEFERVJTKQordm9pZCBGaWx0ZXJFZmZlY3RSZW5kZXJlcjo6bm90aWZ5Q3VzdG9t
RmlsdGVyUHJvZ3JhbUxvYWRlZChDdXN0b21GaWx0ZXJQcm9ncmFtKikKIHsKICAgICBtX29ic2Vy
dmVyLT5maWx0ZXJOZWVkc1JlcGFpbnQoKTsKIH0KIAordm9pZCBGaWx0ZXJFZmZlY3RSZW5kZXJl
cjo6cmVtb3ZlQ3VzdG9tRmlsdGVyQ2xpZW50cygpCit7CisgICAgZm9yIChDdXN0b21GaWx0ZXJQ
cm9ncmFtTGlzdDo6aXRlcmF0b3IgaXRlciA9IG1fY2FjaGVkQ3VzdG9tRmlsdGVyUHJvZ3JhbXMu
YmVnaW4oKSwgZW5kID0gbV9jYWNoZWRDdXN0b21GaWx0ZXJQcm9ncmFtcy5lbmQoKTsgaXRlciAh
PSBlbmQ7ICsraXRlcikKKyAgICAgICAgaXRlci0+Z2V0KCktPnJlbW92ZUNsaWVudCh0aGlzKTsK
K30KKyNlbmRpZgorCiB2b2lkIEZpbHRlckVmZmVjdFJlbmRlcmVyOjpwcmVwYXJlKCkKIHsKICAg
ICAvLyBBdCB0aGlzIHBvaW50IHRoZSBlZmZlY3QgY2hhaW4gaGFzIGJlZW4gYnVpbHQsIGFuZCB0
aGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9GaWx0ZXJFZmZlY3RSZW5k
ZXJlci5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0ZpbHRlckVmZmVjdFJlbmRlcmVyLmgK
aW5kZXggODAxYTgwYi4uMDMzNThhMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL0ZpbHRlckVmZmVjdFJlbmRlcmVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L0ZpbHRlckVmZmVjdFJlbmRlcmVyLmgKQEAgLTI4LDggKzI4LDYgQEAKIAogI2lmIEVOQUJMRShD
U1NfRklMVEVSUykKIAotI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlQ2xpZW50LmgiCi0jaW5jbHVk
ZSAiQ2FjaGVkUmVzb3VyY2VIYW5kbGUuaCIKICNpbmNsdWRlICJGaWx0ZXIuaCIKICNpbmNsdWRl
ICJGaWx0ZXJFZmZlY3QuaCIKICNpbmNsdWRlICJGaWx0ZXJPcGVyYXRpb25zLmgiCkBAIC00Mywx
NCArNDEsMjIgQEAKICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgogI2luY2x1ZGUgPHd0Zi9S
ZWZQdHIuaD4KIAorI2lmIEVOQUJMRShDU1NfU0hBREVSUykKKyNpbmNsdWRlICJDdXN0b21GaWx0
ZXJQcm9ncmFtQ2xpZW50LmgiCisjZW5kaWYKKwogbmFtZXNwYWNlIFdlYkNvcmUgewogCiB0eXBl
ZGVmIFZlY3RvcjxSZWZQdHI8RmlsdGVyRWZmZWN0PiA+IEZpbHRlckVmZmVjdExpc3Q7CitjbGFz
cyBDdXN0b21GaWx0ZXJQcm9ncmFtOwogY2xhc3MgRG9jdW1lbnQ7CiBjbGFzcyBGaWx0ZXJFZmZl
Y3RPYnNlcnZlcjsKLWNsYXNzIENhY2hlZFNoYWRlcjsKIAotY2xhc3MgRmlsdGVyRWZmZWN0UmVu
ZGVyZXIgOiBwdWJsaWMgRmlsdGVyLCBwdWJsaWMgQ2FjaGVkUmVzb3VyY2VDbGllbnQgeworY2xh
c3MgRmlsdGVyRWZmZWN0UmVuZGVyZXIgOiBwdWJsaWMgRmlsdGVyCisjaWYgRU5BQkxFKENTU19T
SEFERVJTKQorICAgICwgcHVibGljIEN1c3RvbUZpbHRlclByb2dyYW1DbGllbnQKKyNlbmRpZgor
ewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgogICAgIHN0YXRpYyBQYXNz
UmVmUHRyPEZpbHRlckVmZmVjdFJlbmRlcmVyPiBjcmVhdGUoRmlsdGVyRWZmZWN0T2JzZXJ2ZXIq
IG9ic2VydmVyKQpAQCAtNzksOSArODUsMTMgQEAgcHVibGljOgogICAgIAogICAgIEludFJlY3Qg
b3V0cHV0UmVjdCgpIGNvbnN0IHsgcmV0dXJuIGxhc3RFZmZlY3QoKS0+aGFzUmVzdWx0KCkgPyBs
YXN0RWZmZWN0KCktPnJlcXVlc3RlZFJlZ2lvbk9mSW5wdXRJbWFnZURhdGEoSW50UmVjdChtX2Zp
bHRlclJlZ2lvbikpIDogSW50UmVjdCgpOyB9CiAKLSAgICB2aXJ0dWFsIHZvaWQgbm90aWZ5Rmlu
aXNoZWQoQ2FjaGVkUmVzb3VyY2UqKTsKLSAgICAKIHByaXZhdGU6CisjaWYgRU5BQkxFKENTU19T
SEFERVJTKQorICAgIC8vIEltcGxlbWVudGF0aW9uIG9mIHRoZSBDdXN0b21GaWx0ZXJQcm9ncmFt
Q2xpZW50IGludGVyZmFjZS4KKyAgICB2aXJ0dWFsIHZvaWQgbm90aWZ5Q3VzdG9tRmlsdGVyUHJv
Z3JhbUxvYWRlZChDdXN0b21GaWx0ZXJQcm9ncmFtKik7CisgICAgCisgICAgdm9pZCByZW1vdmVD
dXN0b21GaWx0ZXJDbGllbnRzKCk7CisjZW5kaWYKIAogICAgIHZvaWQgc2V0TWF4RWZmZWN0UmVj
dHMoY29uc3QgRmxvYXRSZWN0JiBlZmZlY3RSZWN0KQogICAgIHsKQEAgLTEwOCw4ICsxMTgsOCBA
QCBwcml2YXRlOgogICAgIEZpbHRlckVmZmVjdE9ic2VydmVyKiBtX29ic2VydmVyOyAvLyBObyBu
ZWVkIGZvciBhIHN0cm9uZyByZWZlcmVuY2VzIGhlcmUuIEl0IG93bnMgdXMuCiAgICAgCiAjaWYg
RU5BQkxFKENTU19TSEFERVJTKSAmJiBFTkFCTEUoV0VCR0wpCi0gICAgdHlwZWRlZiBWZWN0b3I8
Q2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkU2hhZGVyPiA+IENhY2hlZFNoYWRlckxpc3Q7Ci0g
ICAgQ2FjaGVkU2hhZGVyTGlzdCBtX2NhY2hlZFNoYWRlcnM7CisgICAgdHlwZWRlZiBWZWN0b3I8
UmVmUHRyPEN1c3RvbUZpbHRlclByb2dyYW0+ID4gQ3VzdG9tRmlsdGVyUHJvZ3JhbUxpc3Q7Cisg
ICAgQ3VzdG9tRmlsdGVyUHJvZ3JhbUxpc3QgbV9jYWNoZWRDdXN0b21GaWx0ZXJQcm9ncmFtczsK
ICNlbmRpZgogICAgIAogICAgIGJvb2wgbV9ncmFwaGljc0J1ZmZlckF0dGFjaGVkOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL0N1c3RvbUZpbHRlck9wZXJhdGlv
bi5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL0N1c3RvbUZpbHRlck9wZXJhdGlv
bi5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5OTQ2OWJlLi4wMDAwMDAwCi0tLSBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9DdXN0b21GaWx0ZXJPcGVyYXRpb24uaAor
KysgL2Rldi9udWxsCkBAIC0xLDExNCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IDIwMTEgQWRv
YmUgU3lzdGVtcyBJbmNvcnBvcmF0ZWQuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCi0gKgotICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKgotICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZQotICogICAgY29weXJpZ2h0
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcKLSAqICAg
IGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlCi0gKiAgICBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZwotICogICAgZGlzY2xhaW1lciBpbiB0aGUgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzCi0gKiAgICBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUg
Q09QWVJJR0hUIEhPTERFUiDigJxBUyBJU+KAnSBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUg
Q09QWVJJR0hUIEhPTERFUiBCRQotICogTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLAotICogT1IgQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJP
RklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
Ci0gKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUgotICogVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GCi0gKiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YKLSAqIFNVQ0ggREFNQUdFLgotICov
Ci0KLSNpZm5kZWYgQ3VzdG9tRmlsdGVyT3BlcmF0aW9uX2gKLSNkZWZpbmUgQ3VzdG9tRmlsdGVy
T3BlcmF0aW9uX2gKLQotI2lmIEVOQUJMRShDU1NfU0hBREVSUykKLQotI2luY2x1ZGUgIkZpbHRl
ck9wZXJhdGlvbi5oIgotI2luY2x1ZGUgIlN0eWxlU2hhZGVyLmgiCi0KLW5hbWVzcGFjZSBXZWJD
b3JlIHsKLQotLy8gQ1NTIFNoYWRlcnMKLQotY2xhc3MgQ3VzdG9tRmlsdGVyT3BlcmF0aW9uIDog
cHVibGljIEZpbHRlck9wZXJhdGlvbiB7Ci1wdWJsaWM6Ci0gICAgZW51bSBNZXNoQm94VHlwZSB7
Ci0gICAgICAgIEZJTFRFUl9CT1gsCi0gICAgICAgIEJPUkRFUl9CT1gsCi0gICAgICAgIFBBRERJ
TkdfQk9YLAotICAgICAgICBDT05URU5UX0JPWAotICAgIH07Ci0gICAgCi0gICAgZW51bSBNZXNo
VHlwZSB7Ci0gICAgICAgIEFUVEFDSEVELAotICAgICAgICBERVRBQ0hFRAotICAgIH07Ci0gICAg
Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8Q3VzdG9tRmlsdGVyT3BlcmF0aW9uPiBjcmVhdGUoUGFz
c1JlZlB0cjxTdHlsZVNoYWRlcj4gdmVydGV4U2hhZGVyLCBQYXNzUmVmUHRyPFN0eWxlU2hhZGVy
PiBmcmFnbWVudFNoYWRlciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB1bnNpZ25lZCBtZXNoUm93cywgdW5zaWduZWQgbWVzaENvbHVtbnMsIE1l
c2hCb3hUeXBlIG1lc2hCb3hUeXBlLCBNZXNoVHlwZSBtZXNoVHlwZSkKLSAgICB7Ci0gICAgICAg
IHJldHVybiBhZG9wdFJlZihuZXcgQ3VzdG9tRmlsdGVyT3BlcmF0aW9uKHZlcnRleFNoYWRlciwg
ZnJhZ21lbnRTaGFkZXIsIG1lc2hSb3dzLCBtZXNoQ29sdW1ucywgbWVzaEJveFR5cGUsIG1lc2hU
eXBlKSk7Ci0gICAgfQotICAgIAotICAgIHZvaWQgc2V0VmVydGV4U2hhZGVyKFBhc3NSZWZQdHI8
U3R5bGVTaGFkZXI+IHNoYWRlcikgeyBtX3ZlcnRleFNoYWRlciA9IHNoYWRlcjsgfQotICAgIFN0
eWxlU2hhZGVyKiB2ZXJ0ZXhTaGFkZXIoKSBjb25zdCB7IHJldHVybiBtX3ZlcnRleFNoYWRlci5n
ZXQoKTsgfQotICAgIAotICAgIHZvaWQgc2V0RnJhZ21lbnRTaGFkZXIoUGFzc1JlZlB0cjxTdHls
ZVNoYWRlcj4gc2hhZGVyKSB7IG1fZnJhZ21lbnRTaGFkZXIgPSBzaGFkZXI7IH0KLSAgICBTdHls
ZVNoYWRlciogZnJhZ21lbnRTaGFkZXIoKSBjb25zdCB7IHJldHVybiBtX2ZyYWdtZW50U2hhZGVy
LmdldCgpOyB9Ci0gICAgCi0gICAgdW5zaWduZWQgbWVzaFJvd3MoKSBjb25zdCB7IHJldHVybiBt
X21lc2hSb3dzOyB9Ci0gICAgdW5zaWduZWQgbWVzaENvbHVtbnMoKSBjb25zdCB7IHJldHVybiBt
X21lc2hDb2x1bW5zOyB9Ci0gICAgCi0gICAgTWVzaEJveFR5cGUgbWVzaEJveFR5cGUoKSBjb25z
dCB7IHJldHVybiBtX21lc2hCb3hUeXBlOyB9Ci0gICAgTWVzaFR5cGUgbWVzaFR5cGUoKSBjb25z
dCB7IHJldHVybiBtX21lc2hUeXBlOyB9Ci0gICAgCi1wcml2YXRlOgotICAgIHZpcnR1YWwgYm9v
bCBvcGVyYXRvcj09KGNvbnN0IEZpbHRlck9wZXJhdGlvbiYgbykgY29uc3QKLSAgICB7Ci0gICAg
ICAgIGlmICghaXNTYW1lVHlwZShvKSkKLSAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLQotICAg
ICAgICBjb25zdCBDdXN0b21GaWx0ZXJPcGVyYXRpb24qIG90aGVyID0gc3RhdGljX2Nhc3Q8Y29u
c3QgQ3VzdG9tRmlsdGVyT3BlcmF0aW9uKj4oJm8pOwotICAgICAgICByZXR1cm4gbV92ZXJ0ZXhT
aGFkZXIuZ2V0KCkgPT0gb3RoZXItPm1fdmVydGV4U2hhZGVyLmdldCgpCi0gICAgICAgICAgICAg
ICAmJiBtX2ZyYWdtZW50U2hhZGVyLmdldCgpID09IG90aGVyLT5tX2ZyYWdtZW50U2hhZGVyLmdl
dCgpCi0gICAgICAgICAgICAgICAmJiBtX21lc2hSb3dzID09IG90aGVyLT5tX21lc2hSb3dzCi0g
ICAgICAgICAgICAgICAmJiBtX21lc2hDb2x1bW5zID09IG90aGVyLT5tX21lc2hDb2x1bW5zCi0g
ICAgICAgICAgICAgICAmJiBtX21lc2hCb3hUeXBlID09IG90aGVyLT5tX21lc2hCb3hUeXBlCi0g
ICAgICAgICAgICAgICAmJiBtX21lc2hUeXBlID09IG90aGVyLT5tX21lc2hUeXBlOwotICAgIH0K
LSAgICAKLSAgICBDdXN0b21GaWx0ZXJPcGVyYXRpb24oUGFzc1JlZlB0cjxTdHlsZVNoYWRlcj4g
dmVydGV4U2hhZGVyLCBQYXNzUmVmUHRyPFN0eWxlU2hhZGVyPiBmcmFnbWVudFNoYWRlciwKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgbWVzaFJvd3MsIHVuc2lnbmVkIG1lc2hD
b2x1bW5zLCBNZXNoQm94VHlwZSBtZXNoQm94VHlwZSwgTWVzaFR5cGUgbWVzaFR5cGUpCi0gICAg
ICAgIDogRmlsdGVyT3BlcmF0aW9uKENVU1RPTSkKLSAgICAgICAgLCBtX3ZlcnRleFNoYWRlcih2
ZXJ0ZXhTaGFkZXIpCi0gICAgICAgICwgbV9mcmFnbWVudFNoYWRlcihmcmFnbWVudFNoYWRlcikK
LSAgICAgICAgLCBtX21lc2hSb3dzKG1lc2hSb3dzKQotICAgICAgICAsIG1fbWVzaENvbHVtbnMo
bWVzaENvbHVtbnMpCi0gICAgICAgICwgbV9tZXNoQm94VHlwZShtZXNoQm94VHlwZSkKLSAgICAg
ICAgLCBtX21lc2hUeXBlKG1lc2hUeXBlKQotICAgIHsKLSAgICB9Ci0KLSAgICBSZWZQdHI8U3R5
bGVTaGFkZXI+IG1fdmVydGV4U2hhZGVyOwotICAgIFJlZlB0cjxTdHlsZVNoYWRlcj4gbV9mcmFn
bWVudFNoYWRlcjsKLSAgICAKLSAgICB1bnNpZ25lZCBtX21lc2hSb3dzOwotICAgIHVuc2lnbmVk
IG1fbWVzaENvbHVtbnM7Ci0gICAgTWVzaEJveFR5cGUgbV9tZXNoQm94VHlwZTsKLSAgICBNZXNo
VHlwZSBtX21lc2hUeXBlOwotfTsKLQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQotCi0jZW5kaWYg
Ly8gRU5BQkxFKENTU19TSEFERVJTKQotCi0jZW5kaWYgLy8gQ3VzdG9tRmlsdGVyT3BlcmF0aW9u
X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZUN1c3Rv
bUZpbHRlclByb2dyYW0uaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZUN1
c3RvbUZpbHRlclByb2dyYW0uaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41
MDc3NTY4Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxl
L1N0eWxlQ3VzdG9tRmlsdGVyUHJvZ3JhbS5oCkBAIC0wLDAgKzEsMTI2IEBACisvKgorICogQ29w
eXJpZ2h0IDIwMTEgQWRvYmUgU3lzdGVtcyBJbmNvcnBvcmF0ZWQuIEFsbCBSaWdodHMgUmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZQor
ICogICAgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcKKyAqICAgIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiAgICBjb3B5cmlnaHQgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZworICogICAgZGlzY2xh
aW1lciBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzCisgKiAgICBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUiDigJxBUyBJU+KAnSBBTkQgQU5ZCisgKiBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUIEhPTERFUiBCRQorICogTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLAorICogT1IgQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBS
T0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUgorICogVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GCisgKiBUSEUgVVNFIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YKKyAqIFNV
Q0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgU3R5bGVDdXN0b21GaWx0ZXJQcm9ncmFtX2gKKyNk
ZWZpbmUgU3R5bGVDdXN0b21GaWx0ZXJQcm9ncmFtX2gKKworI2lmIEVOQUJMRShDU1NfU0hBREVS
UykKKyNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZUNsaWVudC5oIgorI2luY2x1ZGUgIkNhY2hlZFJl
c291cmNlSGFuZGxlLmgiCisjaW5jbHVkZSAiQ2FjaGVkU2hhZGVyLmgiCisjaW5jbHVkZSAiQ3Vz
dG9tRmlsdGVyUHJvZ3JhbS5oIgorI2luY2x1ZGUgIlN0eWxlU2hhZGVyLmgiCisjaW5jbHVkZSA8
d3RmL0Zhc3RBbGxvY0Jhc2UuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCisvLyBDU1MgU2hh
ZGVycworCitjbGFzcyBTdHlsZUN1c3RvbUZpbHRlclByb2dyYW0gOiBwdWJsaWMgQ3VzdG9tRmls
dGVyUHJvZ3JhbSwgcHVibGljIENhY2hlZFJlc291cmNlQ2xpZW50IHsKKyAgICBXVEZfTUFLRV9G
QVNUX0FMTE9DQVRFRDsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxTdHlsZUN1c3Rv
bUZpbHRlclByb2dyYW0+IGNyZWF0ZShQYXNzUmVmUHRyPFN0eWxlU2hhZGVyPiB2ZXJ0ZXhTaGFk
ZXIsIFBhc3NSZWZQdHI8U3R5bGVTaGFkZXI+IGZyYWdtZW50U2hhZGVyKQorICAgIHsKKyAgICAg
ICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBTdHlsZUN1c3RvbUZpbHRlclByb2dyYW0odmVydGV4U2hh
ZGVyLCBmcmFnbWVudFNoYWRlcikpOworICAgIH0KKyAgICAKKyAgICB2b2lkIHNldFZlcnRleFNo
YWRlcihQYXNzUmVmUHRyPFN0eWxlU2hhZGVyPiBzaGFkZXIpIHsgbV92ZXJ0ZXhTaGFkZXIgPSBz
aGFkZXI7IH0KKyAgICBTdHlsZVNoYWRlciogdmVydGV4U2hhZGVyKCkgY29uc3QgeyByZXR1cm4g
bV92ZXJ0ZXhTaGFkZXIuZ2V0KCk7IH0KKyAgICAKKyAgICB2b2lkIHNldEZyYWdtZW50U2hhZGVy
KFBhc3NSZWZQdHI8U3R5bGVTaGFkZXI+IHNoYWRlcikgeyBtX2ZyYWdtZW50U2hhZGVyID0gc2hh
ZGVyOyB9CisgICAgU3R5bGVTaGFkZXIqIGZyYWdtZW50U2hhZGVyKCkgY29uc3QgeyByZXR1cm4g
bV9mcmFnbWVudFNoYWRlci5nZXQoKTsgfQorICAgIAorICAgIHZpcnR1YWwgU3RyaW5nIHZlcnRl
eFNoYWRlclN0cmluZygpIGNvbnN0CisgICAgeworICAgICAgICBBU1NFUlQoaXNMb2FkZWQoKSk7
CisgICAgICAgIHJldHVybiBtX2NhY2hlZFZlcnRleFNoYWRlci5nZXQoKSA/IG1fY2FjaGVkVmVy
dGV4U2hhZGVyLT5zaGFkZXJTdHJpbmcoKSA6IFN0cmluZygpOworICAgIH0KKyAgICAKKyAgICB2
aXJ0dWFsIFN0cmluZyBmcmFnbWVudFNoYWRlclN0cmluZygpIGNvbnN0CisgICAgeworICAgICAg
ICBBU1NFUlQoaXNMb2FkZWQoKSk7CisgICAgICAgIHJldHVybiBtX2NhY2hlZEZyYWdtZW50U2hh
ZGVyLmdldCgpID8gbV9jYWNoZWRGcmFnbWVudFNoYWRlci0+c2hhZGVyU3RyaW5nKCkgOiBTdHJp
bmcoKTsKKyAgICB9CisKKyAgICB2aXJ0dWFsIGJvb2wgaXNMb2FkZWQoKSBjb25zdAorICAgIHsK
KyAgICAgICAgcmV0dXJuICghbV9jYWNoZWRWZXJ0ZXhTaGFkZXIuZ2V0KCkgfHwgbV9jYWNoZWRW
ZXJ0ZXhTaGFkZXItPmlzTG9hZGVkKCkpCisgICAgICAgICAgICAmJiAoIW1fY2FjaGVkRnJhZ21l
bnRTaGFkZXIuZ2V0KCkgfHwgbV9jYWNoZWRGcmFnbWVudFNoYWRlci0+aXNMb2FkZWQoKSk7Cisg
ICAgfQorCisgICAgdmlydHVhbCB2b2lkIGFkZENsaWVudHMoKQorICAgIHsKKyAgICAgICAgaWYg
KG1fdmVydGV4U2hhZGVyKSB7CisgICAgICAgICAgICBtX2NhY2hlZFZlcnRleFNoYWRlciA9IG1f
dmVydGV4U2hhZGVyLT5jYWNoZWRTaGFkZXIoKTsKKyAgICAgICAgICAgIG1fY2FjaGVkVmVydGV4
U2hhZGVyLT5hZGRDbGllbnQodGhpcyk7CisgICAgICAgIH0KKyAgICAgICAgaWYgKG1fZnJhZ21l
bnRTaGFkZXIpIHsKKyAgICAgICAgICAgIG1fY2FjaGVkRnJhZ21lbnRTaGFkZXIgPSBtX2ZyYWdt
ZW50U2hhZGVyLT5jYWNoZWRTaGFkZXIoKTsKKyAgICAgICAgICAgIG1fY2FjaGVkRnJhZ21lbnRT
aGFkZXItPmFkZENsaWVudCh0aGlzKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICB2aXJ0
dWFsIHZvaWQgcmVtb3ZlQ2xpZW50cygpCisgICAgeworICAgICAgICBpZiAobV9jYWNoZWRWZXJ0
ZXhTaGFkZXIuZ2V0KCkpIHsKKyAgICAgICAgICAgIG1fY2FjaGVkVmVydGV4U2hhZGVyLT5yZW1v
dmVDbGllbnQodGhpcyk7CisgICAgICAgICAgICBtX2NhY2hlZFZlcnRleFNoYWRlciA9IDA7Cisg
ICAgICAgIH0KKyAgICAgICAgaWYgKG1fY2FjaGVkRnJhZ21lbnRTaGFkZXIuZ2V0KCkpIHsKKyAg
ICAgICAgICAgIG1fY2FjaGVkRnJhZ21lbnRTaGFkZXItPnJlbW92ZUNsaWVudCh0aGlzKTsKKyAg
ICAgICAgICAgIG1fY2FjaGVkRnJhZ21lbnRTaGFkZXIgPSAwOworICAgICAgICB9CisgICAgfQor
ICAgIAorICAgIHZpcnR1YWwgdm9pZCBub3RpZnlGaW5pc2hlZChDYWNoZWRSZXNvdXJjZSopCisg
ICAgeworICAgICAgICBpZiAoaXNMb2FkZWQoKSkKKyAgICAgICAgICAgIG5vdGlmeUNsaWVudHMo
KTsKKyAgICB9CisKK3ByaXZhdGU6CisgICAgU3R5bGVDdXN0b21GaWx0ZXJQcm9ncmFtKFBhc3NS
ZWZQdHI8U3R5bGVTaGFkZXI+IHZlcnRleFNoYWRlciwgUGFzc1JlZlB0cjxTdHlsZVNoYWRlcj4g
ZnJhZ21lbnRTaGFkZXIpCisgICAgICAgIDogbV92ZXJ0ZXhTaGFkZXIodmVydGV4U2hhZGVyKQor
ICAgICAgICAsIG1fZnJhZ21lbnRTaGFkZXIoZnJhZ21lbnRTaGFkZXIpCisgICAgeworICAgIH0K
KyAgICAKKyAgICBSZWZQdHI8U3R5bGVTaGFkZXI+IG1fdmVydGV4U2hhZGVyOworICAgIFJlZlB0
cjxTdHlsZVNoYWRlcj4gbV9mcmFnbWVudFNoYWRlcjsKKyAgICAKKyAgICBDYWNoZWRSZXNvdXJj
ZUhhbmRsZTxDYWNoZWRTaGFkZXI+IG1fY2FjaGVkVmVydGV4U2hhZGVyOworICAgIENhY2hlZFJl
c291cmNlSGFuZGxlPENhY2hlZFNoYWRlcj4gbV9jYWNoZWRGcmFnbWVudFNoYWRlcjsKKworfTsK
KworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKENTU19TSEFERVJT
KQorCisjZW5kaWYgLy8gU3R5bGVDdXN0b21GaWx0ZXJQcm9ncmFtX2gK
</data>
<flag name="review"
          id="121710"
          type_id="1"
          status="-"
          setter="cmarrin"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>121669</attachid>
            <date>2012-01-09 07:25:07 -0800</date>
            <delta_ts>2012-01-09 07:29:46 -0800</delta_ts>
            <desc>Patch V2</desc>
            <filename>bug74652_1.patch</filename>
            <type>text/plain</type>
            <size>67088</size>
            <attacher name="Alexandru Chiculita">achicu</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBlOTEzMWI0Li43NTQxOWRmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjEgQEAKKzIwMTItMDEt
MDkgIEFsZXhhbmRydSBDaGljdWxpdGEgIDxhY2hpY3VAYWRvYmUuY29tPgorCisgICAgICAgIFtD
U1MgU2hhZGVyc10gTW92ZSBDdXN0b21GaWx0ZXJPcGVyYXRpb24gdG8gdGhlIHBsYXRmb3JtIGxh
eWVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03NDY1
MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogY3Nz
My9maWx0ZXJzL2N1c3RvbS1maWx0ZXItc2hhZGVyLWNhY2hlLWV4cGVjdGVkLnBuZzogQWRkZWQu
CisgICAgICAgICogY3NzMy9maWx0ZXJzL2N1c3RvbS1maWx0ZXItc2hhZGVyLWNhY2hlLWV4cGVj
dGVkLnR4dDogQWRkZWQuCisgICAgICAgICogY3NzMy9maWx0ZXJzL2N1c3RvbS1maWx0ZXItc2hh
ZGVyLWNhY2hlLmh0bWw6IEFkZGVkLgorICAgICAgICAgICAgVGVzdGluZyB0aGF0IG11bHRpcGxl
IGVsZW1lbnRzIGNhbiBzaGFyZSB0aGUgc2FtZSBzaGFkZXJzIGNhY2hlZCByZXNvdXJjZXMuCisK
KyAgICAgICAgKiBjc3MzL2ZpbHRlcnMvbWlzc2luZy1jdXN0b20tZmlsdGVyLXNoYWRlci1leHBl
Y3RlZC5wbmc6IEFkZGVkLgorICAgICAgICAqIGNzczMvZmlsdGVycy9taXNzaW5nLWN1c3RvbS1m
aWx0ZXItc2hhZGVyLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogY3NzMy9maWx0ZXJz
L21pc3NpbmctY3VzdG9tLWZpbHRlci1zaGFkZXIuaHRtbDogQWRkZWQuCisgICAgICAgICAgICBU
ZXN0aW5nIHRoYXQgd2UgZG9uJ3QgY3Jhc2ggd2hlbiBzaGFkZXJzIGFyZSBtaXNzaW5nIGFuZCB0
aGF0IHdlIGRvbid0IHRyeSB0byByZW5kZXIKKyAgICAgICAgICAgIGlmIG9uZSBjb21wb25lbnQg
b2YgdGhlIHBhaXIgKHZlcnRleCBzaGFkZXIsIGZyYWdtZW50IHNoYWRlcikgd2FzIG5vdCBsb2Fk
ZWQgeWV0LgorCiAyMDEyLTAxLTA5ICBQaGlsaXBwZSBOb3JtYW5kICA8cG5vcm1hbmRAaWdhbGlh
LmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLCBHVEsgcmViYXNlbGluZSBhZnRlciByMTA0NDEy
LgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY3NzMy9maWx0ZXJzL2N1c3RvbS1maWx0ZXItc2hh
ZGVyLWNhY2hlLWV4cGVjdGVkLnBuZyBiL0xheW91dFRlc3RzL2NzczMvZmlsdGVycy9jdXN0b20t
ZmlsdGVyLXNoYWRlci1jYWNoZS1leHBlY3RlZC5wbmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMC4uZTU2ZTAwMQpCaW5hcnkgZmlsZXMgL2Rldi9udWxsIGFuZCBiL0xheW91dFRl
c3RzL2NzczMvZmlsdGVycy9jdXN0b20tZmlsdGVyLXNoYWRlci1jYWNoZS1leHBlY3RlZC5wbmcg
ZGlmZmVyCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jc3MzL2ZpbHRlcnMvY3VzdG9tLWZpbHRl
ci1zaGFkZXItY2FjaGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvY3NzMy9maWx0ZXJzL2N1
c3RvbS1maWx0ZXItc2hhZGVyLWNhY2hlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwLi5jZGM1OTVkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
Y3NzMy9maWx0ZXJzL2N1c3RvbS1maWx0ZXItc2hhZGVyLWNhY2hlLWV4cGVjdGVkLnR4dApAQCAt
MCwwICsxLDQgQEAKKyAgICAgCisgICAgIAorICAgICAKKyAgICAKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2NzczMvZmlsdGVycy9jdXN0b20tZmlsdGVyLXNoYWRlci1jYWNoZS5odG1sIGIvTGF5
b3V0VGVzdHMvY3NzMy9maWx0ZXJzL2N1c3RvbS1maWx0ZXItc2hhZGVyLWNhY2hlLmh0bWwKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDFhMGU3MQotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2NzczMvZmlsdGVycy9jdXN0b20tZmlsdGVyLXNoYWRlci1jYWNoZS5o
dG1sCkBAIC0wLDAgKzEsNjEgQEAKKzwhLS0gVGhpcyBmaWxlIHNob3VsZCB0ZXN0IHRoYXQgY3Vz
dG9tLWZpbHRlcnMgY2FjaGVkIHJlc291cmNlcyBhcmUgc2hhcmVkIGJldHdlZW4gbXVsdGlwbGUg
ZWxlbWVudHMuIC0tPgorPCFkb2N0eXBlIGh0bWw+Cis8aHRtbD4KKyAgICA8aGVhZD4KKyAgICAg
ICAgPHRpdGxlPlRlc3RpbmcgdGhhdCBjYWNoZWQgc2hhZGVyIHJlc291cmNlcyBhcmUgc2hhcmVk
IGNvcnJlY3RseSBiZXR3ZWVuIGVsZW1lbnRzPC90aXRsZT4KKyAgICAgICAgPHNjcmlwdD4KKyAg
ICAgICAgICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKKyAgICAgICAgICAg
ICAgICB3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIub3ZlcnJpZGVQcmVmZXJlbmNlKCJXZWJL
aXRXZWJHTEVuYWJsZWQiLCAiMSIpOworICAgICAgICAgICAgICAgIHdpbmRvdy5sYXlvdXRUZXN0
Q29udHJvbGxlci5kdW1wQXNUZXh0KHRydWUpOworICAgICAgICAgICAgICAgIHdpbmRvdy5sYXlv
dXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7CisgICAgICAgICAgICB9CisgICAgICAg
ICAgICAKKyAgICAgICAgICAgIGZ1bmN0aW9uIHJ1blRlc3QoKQorICAgICAgICAgICAgeworICAg
ICAgICAgICAgICAgIC8vIFdlIG5lZWQgdG8gcnVuIHRoZSB0ZXN0cyBhZnRlciB0aGUgZG93bmxv
YWRpbmcgc3VjY2VlZGVkLgorICAgICAgICAgICAgICAgIC8vIFVzaW5nIGEgdGltZXIgaXMgbm90
IGlkZWFsLCBidXQgdGhlcmUgc2VlbXMgdG8gYmUgbm8gYmV0dGVyIG9wdGlvbnMuCisgICAgICAg
ICAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYg
KHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICAgICAgICAgICAgICAgICAgICAgIHdp
bmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7CisgICAgICAgICAgICAgICAg
fSwgMjAwKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgPC9zY3JpcHQ+CisgICAgICAgIDxzdHls
ZT4KKyAgICAgICAgICAgIC52ZXJ0ZXhfc2hhZGVyCisgICAgICAgICAgICB7CisgICAgICAgICAg
ICAgICAgLXdlYmtpdC1maWx0ZXI6IGN1c3RvbSh1cmwoJ3Jlc291cmNlcy92ZXJ0ZXgtb2Zmc2V0
LnZzJykpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgLmZyYWdtZW50X3NoYWRlcgorICAg
ICAgICAgICAgeworICAgICAgICAgICAgICAgIC13ZWJraXQtZmlsdGVyOiBjdXN0b20obm9uZSB1
cmwoJ3Jlc291cmNlcy9jb2xvci1vZmZzZXQuZnMnKSk7CisgICAgICAgICAgICB9CisgICAgICAg
ICAgICAuYm90aF9zaGFkZXJzCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgLXdlYmtp
dC1maWx0ZXI6IGN1c3RvbSh1cmwoJ3Jlc291cmNlcy92ZXJ0ZXgtb2Zmc2V0LnZzJykgdXJsKCdy
ZXNvdXJjZXMvY29sb3Itb2Zmc2V0LmZzJykpOworICAgICAgICAgICAgfQorICAgICAgICA8L3N0
eWxlPgorICAgIDwvaGVhZD4KKyAgICA8Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+CisgICAgICAg
IDxpbWcgY2xhc3M9InZlcnRleF9zaGFkZXIiIHNyYz0icmVzb3VyY2VzL3JlZmVyZW5jZS5wbmci
IC8+CisgICAgICAgIDxpbWcgY2xhc3M9ImZyYWdtZW50X3NoYWRlciIgc3JjPSJyZXNvdXJjZXMv
cmVmZXJlbmNlLnBuZyIgLz4KKyAgICAgICAgPGltZyBjbGFzcz0iYm90aF9zaGFkZXJzIiBzcmM9
InJlc291cmNlcy9yZWZlcmVuY2UucG5nIiAvPgorCisgICAgICAgIDxiciAvPgorCisgICAgICAg
IDxpbWcgY2xhc3M9InZlcnRleF9zaGFkZXIiIHNyYz0icmVzb3VyY2VzL3JlZmVyZW5jZS5wbmci
IC8+CisgICAgICAgIDxpbWcgY2xhc3M9ImZyYWdtZW50X3NoYWRlciIgc3JjPSJyZXNvdXJjZXMv
cmVmZXJlbmNlLnBuZyIgLz4KKyAgICAgICAgPGltZyBjbGFzcz0iYm90aF9zaGFkZXJzIiBzcmM9
InJlc291cmNlcy9yZWZlcmVuY2UucG5nIiAvPgorCisgICAgICAgIDxiciAvPgorCisgICAgICAg
IDxpbWcgY2xhc3M9InZlcnRleF9zaGFkZXIiIHNyYz0icmVzb3VyY2VzL3JlZmVyZW5jZS5wbmci
IC8+CisgICAgICAgIDxpbWcgY2xhc3M9ImZyYWdtZW50X3NoYWRlciIgc3JjPSJyZXNvdXJjZXMv
cmVmZXJlbmNlLnBuZyIgLz4KKyAgICAgICAgPGltZyBjbGFzcz0iYm90aF9zaGFkZXJzIiBzcmM9
InJlc291cmNlcy9yZWZlcmVuY2UucG5nIiAvPgorCisgICAgICAgIDxiciAvPgorCisgICAgICAg
IDxpbWcgY2xhc3M9InZlcnRleF9zaGFkZXIiIHNyYz0icmVzb3VyY2VzL3JlZmVyZW5jZS5wbmci
IC8+CisgICAgICAgIDxpbWcgY2xhc3M9ImZyYWdtZW50X3NoYWRlciIgc3JjPSJyZXNvdXJjZXMv
cmVmZXJlbmNlLnBuZyIgLz4KKyAgICAgICAgPGltZyBjbGFzcz0iYm90aF9zaGFkZXJzIiBzcmM9
InJlc291cmNlcy9yZWZlcmVuY2UucG5nIiAvPgorICAgIDwvYm9keT4KKzwvaHRtbD4KXCBObyBu
ZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jc3MzL2ZpbHRl
cnMvbWlzc2luZy1jdXN0b20tZmlsdGVyLXNoYWRlci1leHBlY3RlZC5wbmcgYi9MYXlvdXRUZXN0
cy9jc3MzL2ZpbHRlcnMvbWlzc2luZy1jdXN0b20tZmlsdGVyLXNoYWRlci1leHBlY3RlZC5wbmcK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjFmNjNmMApCaW5hcnkgZmlsZXMg
L2Rldi9udWxsIGFuZCBiL0xheW91dFRlc3RzL2NzczMvZmlsdGVycy9taXNzaW5nLWN1c3RvbS1m
aWx0ZXItc2hhZGVyLWV4cGVjdGVkLnBuZyBkaWZmZXIKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2NzczMvZmlsdGVycy9taXNzaW5nLWN1c3RvbS1maWx0ZXItc2hhZGVyLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2NzczMvZmlsdGVycy9taXNzaW5nLWN1c3RvbS1maWx0ZXItc2hhZGVyLWV4
cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xNjNiNGQzCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvY3NzMy9maWx0ZXJzL21pc3NpbmctY3VzdG9t
LWZpbHRlci1zaGFkZXItZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEgQEAKKyAgICAKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2NzczMvZmlsdGVycy9taXNzaW5nLWN1c3RvbS1maWx0ZXItc2hhZGVy
Lmh0bWwgYi9MYXlvdXRUZXN0cy9jc3MzL2ZpbHRlcnMvbWlzc2luZy1jdXN0b20tZmlsdGVyLXNo
YWRlci5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjE3OWQ2YjkKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9jc3MzL2ZpbHRlcnMvbWlzc2luZy1jdXN0b20t
ZmlsdGVyLXNoYWRlci5odG1sCkBAIC0wLDAgKzEsNTQgQEAKKzwhLS0gVGhpcyBmaWxlIHNob3Vs
ZCB0ZXN0IHRoYXQgY3VzdG9tLWZpbHRlcnMgZG8gbm90IHJlbmRlciB3aGVuIHNoYWRlcnMgYXJl
IG1pc3NpbmcuIC0tPgorPCFkb2N0eXBlIGh0bWw+Cis8aHRtbD4KKyAgICA8aGVhZD4KKyAgICAg
ICAgPHRpdGxlPlRlc3RpbmcgdGhhdCBjdXN0b20tZmlsdGVycyBkbyBub3QgcmVuZGVyIHdoZW4g
c2hhZGVycyBhcmUgbWlzc2luZzwvdGl0bGU+CisgICAgICAgIDxzY3JpcHQ+CisgICAgICAgICAg
ICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7CisgICAgICAgICAgICAgICAgd2lu
ZG93LmxheW91dFRlc3RDb250cm9sbGVyLm92ZXJyaWRlUHJlZmVyZW5jZSgiV2ViS2l0V2ViR0xF
bmFibGVkIiwgIjEiKTsKKyAgICAgICAgICAgICAgICB3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xs
ZXIuZHVtcEFzVGV4dCh0cnVlKTsKKyAgICAgICAgICAgICAgICB3aW5kb3cubGF5b3V0VGVzdENv
bnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgCisg
ICAgICAgICAgICBmdW5jdGlvbiBydW5UZXN0KCkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAg
ICAgICAvLyBXZSBuZWVkIHRvIHJ1biB0aGUgdGVzdHMgYWZ0ZXIgdGhlIGRvd25sb2FkaW5nIHN1
Y2NlZWRlZCBvciBmYWlscy4KKyAgICAgICAgICAgICAgICAvLyBVc2luZyBhIHRpbWVyIGlzIG5v
dCBpZGVhbCwgYnV0IHRoZXJlIHNlZW1zIHRvIGJlIG5vIGJldHRlciBvcHRpb25zLgorICAgICAg
ICAgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgICAgIGlm
ICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgICAgICAgICAgICAgICAgICAgICB3
aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSgpOworICAgICAgICAgICAgICAg
IH0sIDIwMCk7CisgICAgICAgICAgICB9CisgICAgICAgIDwvc2NyaXB0PgorICAgICAgICA8c3R5
bGU+CisgICAgICAgICAgICAubWlzc2luZ192ZXJ0ZXhfc2hhZGVyCisgICAgICAgICAgICB7Cisg
ICAgICAgICAgICAgICAgLXdlYmtpdC1maWx0ZXI6IGN1c3RvbSh1cmwoJ3Jlc291cmNlcy9taXNz
aW5nLXZlcnRleC1vZmZzZXQudnMnKSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAubWlz
c2luZ19mcmFnbWVudF9zaGFkZXIKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAtd2Vi
a2l0LWZpbHRlcjogY3VzdG9tKG5vbmUgdXJsKCdyZXNvdXJjZXMvbWlzc2luZy1jb2xvci1vZmZz
ZXQuZnMnKSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAuYm90aF9zaGFkZXJzX2J1dF9t
aXNzaW5nX3ZlcnRleF9zaGFkZXIKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAtd2Vi
a2l0LWZpbHRlcjogY3VzdG9tKHVybCgncmVzb3VyY2VzL21pc3NpbmctdmVydGV4LW9mZnNldC52
cycpIHVybCgncmVzb3VyY2VzL2NvbG9yLW9mZnNldC5mcycpKTsKKyAgICAgICAgICAgIH0KKwor
ICAgICAgICAgICAgLmJvdGhfc2hhZGVyc19idXRfbWlzc2luZ19mcmFnbWVudF9zaGFkZXIKKyAg
ICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAtd2Via2l0LWZpbHRlcjogY3VzdG9tKHVybCgn
cmVzb3VyY2VzL3ZlcnRleC1vZmZzZXQudnMnKSB1cmwoJ3Jlc291cmNlcy9taXNzaW5nLWNvbG9y
LW9mZnNldC5mcycpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIC5ib3RoX3NoYWRlcnNf
bWlzc2luZworICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIC13ZWJraXQtZmlsdGVyOiBj
dXN0b20odXJsKCdyZXNvdXJjZXMvbWlzc2luZy12ZXJ0ZXgtb2Zmc2V0LnZzJykgdXJsKCdyZXNv
dXJjZXMvbWlzc2luZy1jb2xvci1vZmZzZXQuZnMnKSk7CisgICAgICAgICAgICB9CisgICAgICAg
IDwvc3R5bGU+CisgICAgPC9oZWFkPgorICAgIDxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KKyAg
ICAgICAgPGltZyBjbGFzcz0ibWlzc2luZ192ZXJ0ZXhfc2hhZGVyIiBzcmM9InJlc291cmNlcy9y
ZWZlcmVuY2UucG5nIiAvPgorICAgICAgICA8aW1nIGNsYXNzPSJtaXNzaW5nX2ZyYWdtZW50X3No
YWRlciIgc3JjPSJyZXNvdXJjZXMvcmVmZXJlbmNlLnBuZyIgLz4KKyAgICAgICAgPGltZyBjbGFz
cz0iYm90aF9zaGFkZXJzX2J1dF9taXNzaW5nX3ZlcnRleF9zaGFkZXIiIHNyYz0icmVzb3VyY2Vz
L3JlZmVyZW5jZS5wbmciIC8+CisgICAgICAgIDxpbWcgY2xhc3M9ImJvdGhfc2hhZGVyc19idXRf
bWlzc2luZ19mcmFnbWVudF9zaGFkZXIiIHNyYz0icmVzb3VyY2VzL3JlZmVyZW5jZS5wbmciIC8+
CisgICAgICAgIDxpbWcgY2xhc3M9ImJvdGhfc2hhZGVyc19taXNzaW5nIiBzcmM9InJlc291cmNl
cy9yZWZlcmVuY2UucG5nIiAvPgorICAgIDwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50
eHQKaW5kZXggNDk4ZGZhZC4uOGUxNDBmMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ01h
a2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKQEAgLTExMTgs
NiArMTExOCw3IEBAIFNFVChXZWJDb3JlX1NPVVJDRVMKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9X
aWR0aEl0ZXJhdG9yLmNwcAogCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9DdXN0b21G
aWx0ZXJNZXNoLmNwcAorICAgIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvQ3VzdG9tRmlsdGVy
UHJvZ3JhbS5jcHAKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0N1c3RvbUZpbHRlclNo
YWRlci5jcHAKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0Rpc3RhbnRMaWdodFNvdXJj
ZS5jcHAKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFQmxlbmQuY3BwCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cK
aW5kZXggMDY1MDViZC4uZWRkOTBjMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDg5IEBACisyMDEy
LTAxLTA5ICBBbGV4YW5kcnUgQ2hpY3VsaXRhICA8YWNoaWN1QGFkb2JlLmNvbT4KKworICAgICAg
ICBbQ1NTIFNoYWRlcnNdIE1vdmUgQ3VzdG9tRmlsdGVyT3BlcmF0aW9uIHRvIHRoZSBwbGF0Zm9y
bSBsYXllcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
NzQ2NTIKKworICAgICAgICBGaWx0ZXJPcGVyYXRpb25zIGFyZSBub3cgcGFydCBvZiB0aGUgcGxh
dGZvcm0gY29kZSBhbmQgY2Fubm90IHJlZmVyZW5jZSBzdHlsZSBjbGFzc2VzIGRpcmVjdGx5LCBi
dXQKKyAgICAgICAgQ3VzdG9tRmlsdGVyT3BlcmF0aW9uIHJlcXVpcmVzIHRvIGxpbmsgdG8gdGhl
IENhY2hlZFNoYWRlciBmb3IgdGhlIHZlcnRleCBhbmQgdGhlIGZyYWdtZW50IHNoYWRlci4KKyAg
ICAgICAgCisgICAgICAgIFRoZSBmaXggaXMgdG8gaW50cm9kdWNlIGFub3RoZXIgb2JqZWN0IHRo
YXQgd2lsbCBhY3R1YWxseSBrZWVwIGEgbGluayB0byB0aGUgY2FjaGVkIHJlc291cmNlcywgc28g
aW4gdGhpcyBwYXRjaCAKKyAgICAgICAgSSdtIGFkZGluZyBhIG5ldyBjbGFzcyBjYWxsZWQgQ3Vz
dG9tRmlsdGVyUHJvZ3JhbSB0aGF0IHdpbGwgc2l0IGluIHRoZQorICAgICAgICBwbGF0Zm9ybS9n
cmFwaGljcy9maWx0ZXJzIGRpcmVjdG9yeSBhbmQgd2lsbCBiZSByZWZlcmVuY2VkIGZyb20gQ3Vz
dG9tRmlsdGVyT3BlcmF0aW9uLgorCisgICAgICAgIEN1c3RvbUZpbHRlclByb2dyYW0gaXMgdGhl
IGJhc2UgY2xhc3Mgb2YgU3R5bGVDdXN0b21GaWx0ZXJQcm9ncmFtIHRoYXQgaXMgY3JlYXRlZCBm
cm9tIAorICAgICAgICBDU1NTdHlsZVNlbGVjdG9yIHdoZW4gYSBuZXcgQ3VzdG9tRmlsdGVyT3Bl
cmF0aW9uIGlzIGNyZWF0ZWQuIFN0eWxlQ3VzdG9tRmlsdGVyUHJvZ3JhbSBpcyByZXNwb25zaWJs
ZQorICAgICAgICB3aXRoIGxvYWRpbmcgYW5kIGtlZXBpbmcgcmVmZXJlbmNlcyB0byB0aGUgU3R5
bGVDYWNoZWRTaGFkZXJzIGFuZCB0aGUgQ2FjaGVkU2hhZGVycy4KKworICAgICAgICBNb3JlIHBh
dGNoZXMgd2lsbCBmb2xsb3cgd2l0aCBvcHRpbWl6YXRpb25zIGFib3V0IHJldXNpbmcgM0QgZ3Jh
cGhpY3MgY29udGV4dHMgYW5kIGNvbXBpbGVkIHNoYWRlcnMuCisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGVzdHM6IGNzczMvZmlsdGVycy9jdXN0b20t
ZmlsdGVyLXNoYWRlci1jYWNoZS5odG1sCisgICAgICAgICAgICAgICBjc3MzL2ZpbHRlcnMvbWlz
c2luZy1jdXN0b20tZmlsdGVyLXNoYWRlci5odG1sCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4
dDoKKyAgICAgICAgKiBHTlVtYWtlZmlsZS5saXN0LmFtOgorICAgICAgICAqIFRhcmdldC5wcmk6
CisgICAgICAgICogV2ViQ29yZS5neXBpOgorICAgICAgICAqIFdlYkNvcmUudmNwcm9qL1dlYkNv
cmUudmNwcm9qOgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoK
KyAgICAgICAgKiBjc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkNTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbjo6dmFsdWVGb3JGaWx0ZXIpOgor
ICAgICAgICAqIGNzcy9DU1NTdHlsZVNlbGVjdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNT
U1N0eWxlU2VsZWN0b3I6OmxvYWRQZW5kaW5nU2hhZGVycyk6CisgICAgICAgIChXZWJDb3JlOjpD
U1NTdHlsZVNlbGVjdG9yOjpjcmVhdGVDdXN0b21GaWx0ZXJPcGVyYXRpb24pOgorICAgICAgICAg
ICAgVXBkYXRlZCB0byB1c2UgdGhlIFN0eWxlQ3VzdG9tRmlsdGVyUHJvZ3JhbSBpbnN0ZWFkIG9m
IHRoZSBDdXN0b21GaWx0ZXJPcGVyYXRpb24uCisgICAgICAgIAorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL2ZpbHRlcnMvQ3VzdG9tRmlsdGVyT3BlcmF0aW9uLmg6IFJlbmFtZWQgZnJvbSBT
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvQ3VzdG9tRmlsdGVyT3BlcmF0aW9uLmguCisg
ICAgICAgIChXZWJDb3JlOjpDdXN0b21GaWx0ZXJPcGVyYXRpb246OmNyZWF0ZSk6CisgICAgICAg
ICAgICBBY2NlcHRzIGEgQ3VzdG9tRmlsdGVyUHJvZ3JhbSBpbnN0ZWFkIG9mIHZlcnRleCBhbmQg
ZnJhZ21lbnQgQ2FjaGVkU2hhZGVycy4KKyAgICAgICAgICAgIAorICAgICAgICAoV2ViQ29yZTo6
Q3VzdG9tRmlsdGVyT3BlcmF0aW9uOjpwcm9ncmFtKTogUmV0dXJucyB0aGUgQ3VzdG9tRmlsdGVy
UHJvZ3JhbS4KKyAgICAgICAgCisgICAgICAgIChXZWJDb3JlOjpDdXN0b21GaWx0ZXJPcGVyYXRp
b246OkN1c3RvbUZpbHRlck9wZXJhdGlvbik6CisgICAgICAgICAgICBBY2NlcHRzIGEgQ3VzdG9t
RmlsdGVyUHJvZ3JhbSBpbnN0ZWFkIG9mIHZlcnRleCBhbmQgZnJhZ21lbnQgQ2FjaGVkU2hhZGVy
cy4KKyAgICAgICAgICAgIAorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvQ3Vz
dG9tRmlsdGVyUHJvZ3JhbS5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6Q3VzdG9tRmls
dGVyUHJvZ3JhbTo6Q3VzdG9tRmlsdGVyUHJvZ3JhbSk6CisgICAgICAgIChXZWJDb3JlOjpDdXN0
b21GaWx0ZXJQcm9ncmFtOjp+Q3VzdG9tRmlsdGVyUHJvZ3JhbSk6CisgICAgICAgIChXZWJDb3Jl
OjpDdXN0b21GaWx0ZXJQcm9ncmFtOjphZGRDbGllbnQpOgorICAgICAgICAoV2ViQ29yZTo6Q3Vz
dG9tRmlsdGVyUHJvZ3JhbTo6cmVtb3ZlQ2xpZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkN1c3Rv
bUZpbHRlclByb2dyYW06Om5vdGlmeUNsaWVudHMpOgorICAgICAgICAoV2ViQ29yZTo6Q3VzdG9t
RmlsdGVyUHJvZ3JhbTo6Y3JlYXRlU2hhZGVyV2l0aENvbnRleHQpOgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL2ZpbHRlcnMvQ3VzdG9tRmlsdGVyUHJvZ3JhbS5oOiBBZGRlZC4KKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0N1c3RvbUZpbHRlclByb2dyYW1DbGllbnQu
aDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpDdXN0b21GaWx0ZXJQcm9ncmFtQ2xpZW50Ojp+
Q3VzdG9tRmlsdGVyUHJvZ3JhbUNsaWVudCk6CisgICAgICAgIAorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL2ZpbHRlcnMvRkVDdXN0b21GaWx0ZXIuY3BwOgorICAgICAgICAgICAgRkVDdXN0
b21GaWx0ZXIgd2lsbCBub3QgdXNlIHN0cmluZ3MgYW55bW9yZS4gSXQgd2lsbCBqdXN0IGdldCBh
IHJlZmVyZW5jZSB0byB0aGUgQ3VzdG9tRmlsdGVyUHJvZ3JhbS4KKyAgICAgICAgCisgICAgICAg
IChXZWJDb3JlOjpGRUN1c3RvbUZpbHRlcjo6RkVDdXN0b21GaWx0ZXIpOgorICAgICAgICAoV2Vi
Q29yZTo6RkVDdXN0b21GaWx0ZXI6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpGRUN1c3Rv
bUZpbHRlcjo6aW5pdGlhbGl6ZUNvbnRleHQpOgorICAgICAgICAgICAgVXNpbmcgdGhlIEN1c3Rv
bUZpbHRlclByb2dyYW0gdG8gZ2VuZXJhdGUgdGhlIEN1c3RvbUZpbHRlclNoYWRlciBpbnN0YW5j
ZS4gQSBiZXR0ZXIgbmFtZSBmb3IgQ3VzdG9tRmlsdGVyU2hhZGVyCisgICAgICAgICAgICB3b3Vs
ZCBiZSBDdXN0b21GaWx0ZXJDb21waWxlZFByb2dyYW0sIGJ1dCBJIHdvdWxkIHByZWZlciB0byBt
YWtlIHRoYXQgY2hhbmdlIGluIGEgZGlmZmVyZW50IHBhdGNoLgorICAgICAgICAKKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFQ3VzdG9tRmlsdGVyLmg6CisgICAgICAgICog
cmVuZGVyaW5nL0ZpbHRlckVmZmVjdFJlbmRlcmVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZp
bHRlckVmZmVjdFJlbmRlcmVyOjp+RmlsdGVyRWZmZWN0UmVuZGVyZXIpOgorICAgICAgICAoV2Vi
Q29yZTo6RmlsdGVyRWZmZWN0UmVuZGVyZXI6OmJ1aWxkKToKKyAgICAgICAgKFdlYkNvcmU6OkZp
bHRlckVmZmVjdFJlbmRlcmVyOjpub3RpZnlDdXN0b21GaWx0ZXJQcm9ncmFtTG9hZGVkKToKKyAg
ICAgICAgKFdlYkNvcmU6OkZpbHRlckVmZmVjdFJlbmRlcmVyOjpyZW1vdmVDdXN0b21GaWx0ZXJD
bGllbnRzKToKKyAgICAgICAgKiByZW5kZXJpbmcvRmlsdGVyRWZmZWN0UmVuZGVyZXIuaDoKKyAg
ICAgICAgKiByZW5kZXJpbmcvc3R5bGUvU3R5bGVDdXN0b21GaWx0ZXJQcm9ncmFtLmg6IEFkZGVk
LgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVDdXN0b21GaWx0ZXJQcm9ncmFtOjpjcmVhdGUpOgor
ICAgICAgICAoV2ViQ29yZTo6U3R5bGVDdXN0b21GaWx0ZXJQcm9ncmFtOjpzZXRWZXJ0ZXhTaGFk
ZXIpOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVDdXN0b21GaWx0ZXJQcm9ncmFtOjp2ZXJ0ZXhT
aGFkZXIpOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVDdXN0b21GaWx0ZXJQcm9ncmFtOjpzZXRG
cmFnbWVudFNoYWRlcik6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZUN1c3RvbUZpbHRlclByb2dy
YW06OmZyYWdtZW50U2hhZGVyKToKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlQ3VzdG9tRmlsdGVy
UHJvZ3JhbTo6dmVydGV4U2hhZGVyU3RyaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlQ3Vz
dG9tRmlsdGVyUHJvZ3JhbTo6ZnJhZ21lbnRTaGFkZXJTdHJpbmcpOgorICAgICAgICAoV2ViQ29y
ZTo6U3R5bGVDdXN0b21GaWx0ZXJQcm9ncmFtOjppc0xvYWRlZCk6CisgICAgICAgIChXZWJDb3Jl
OjpTdHlsZUN1c3RvbUZpbHRlclByb2dyYW06OndpbGxIYXZlQ2xpZW50cyk6CisgICAgICAgIChX
ZWJDb3JlOjpTdHlsZUN1c3RvbUZpbHRlclByb2dyYW06OmRpZFJlbW92ZUxhc3RDbGllbnQpOgor
ICAgICAgICAoV2ViQ29yZTo6U3R5bGVDdXN0b21GaWx0ZXJQcm9ncmFtOjpub3RpZnlGaW5pc2hl
ZCk6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZUN1c3RvbUZpbHRlclByb2dyYW06OlN0eWxlQ3Vz
dG9tRmlsdGVyUHJvZ3JhbSk6CisKIDIwMTItMDEtMDkgIEtlbnRhcm8gSGFyYSAgPGhhcmFrZW5A
Y2hyb21pdW0ub3JnPgogCiAgICAgICAgIFtSZWZhY3RvcmluZ10gVXNlIGpvaW4oIiwgIiwgQGFy
Z3VtZW50cykgdG8gYnVpbGQgYSBtZXRob2QgYXJndW1lbnQKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0gYi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5s
aXN0LmFtCmluZGV4IDVjMDUzOTYuLmUzMTJkNzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L0dOVW1ha2VmaWxlLmxpc3QuYW0KKysrIGIvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlz
dC5hbQpAQCAtMjg0NSw2ICsyODQ1LDkgQEAgd2ViY29yZV9zb3VyY2VzICs9IFwKIAlTb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9UcmFuc2Zvcm1hdGlvbk1hdHJpeENhaXJv
LmNwcCBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9DdXN0b21G
aWx0ZXJNZXNoLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVy
cy9DdXN0b21GaWx0ZXJNZXNoLmggXAorCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2ZpbHRlcnMvQ3VzdG9tRmlsdGVyT3BlcmF0aW9uLmggXAorCVNvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2ZpbHRlcnMvQ3VzdG9tRmlsdGVyUHJvZ3JhbS5jcHAgXAorCVNvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvQ3VzdG9tRmlsdGVyUHJvZ3JhbS5oIFwK
IAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0N1c3RvbUZpbHRlclNo
YWRlci5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvQ3Vz
dG9tRmlsdGVyU2hhZGVyLmggXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Zp
bHRlcnMvRGlzdGFudExpZ2h0U291cmNlLmNwcCBcCkBAIC0zNTc0LDcgKzM1NzcsNiBAQCB3ZWJj
b3JlX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9Db3VudGVy
RGlyZWN0aXZlcy5oIFwKIAlTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvQ3Vyc29yRGF0
YS5oIFwKIAlTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvQ3Vyc29yTGlzdC5oIFwKLQlT
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvQ3VzdG9tRmlsdGVyT3BlcmF0aW9uLmggXAog
CVNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9EYXRhUmVmLmggXAogCVNvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9zdHlsZS9GaWxsTGF5ZXIuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvc3R5bGUvRmlsbExheWVyLmggXApAQCAtMzU5OSw2ICszNjAxLDcgQEAgd2ViY29yZV9z
b3VyY2VzICs9IFwKIAlTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVDYWNoZWRJ
bWFnZS5oIFwKIAlTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVDYWNoZWRTaGFk
ZXIuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVDYWNoZWRTaGFk
ZXIuaCBcCisJU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlQ3VzdG9tRmlsdGVy
UHJvZ3JhbS5oIFwKIAlTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVEYXNoYm9h
cmRSZWdpb24uaCBcCiAJU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlRGVwcmVj
YXRlZEZsZXhpYmxlQm94RGF0YS5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHls
ZS9TdHlsZURlcHJlY2F0ZWRGbGV4aWJsZUJveERhdGEuaCBcCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9UYXJnZXQucHJpIGIvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQppbmRleCBmODJl
MDU1Li40YzRmZDIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpCisrKyBi
L1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkKQEAgLTIwODksNiArMjA4OSw4IEBAIEhFQURFUlMg
Kz0gXAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL0Nyb3NzZmFkZUdlbmVyYXRlZEltYWdlLmggXAog
ICAgIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvQ3VzdG9tRmlsdGVyTWVzaC5oIFwKICAgICBw
bGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0N1c3RvbUZpbHRlclNoYWRlci5oIFwKKyAgICBwbGF0
Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0N1c3RvbUZpbHRlck9wZXJhdGlvbi5oIFwKKyAgICBwbGF0
Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0N1c3RvbUZpbHRlclByb2dyYW0uaCBcCiAgICAgcGxhdGZv
cm0vZ3JhcGhpY3MvZmlsdGVycy9GRUJsZW5kLmggXAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL2Zp
bHRlcnMvRkVDb2xvck1hdHJpeC5oIFwKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZF
Q29tcG9uZW50VHJhbnNmZXIuaCBcCkBAIC0yMzgyLDcgKzIzODQsNiBAQCBIRUFERVJTICs9IFwK
ICAgICByZW5kZXJpbmcvc3R5bGUvQ291bnRlckRpcmVjdGl2ZXMuaCBcCiAgICAgcmVuZGVyaW5n
L3N0eWxlL0N1cnNvckRhdGEuaCBcCiAgICAgcmVuZGVyaW5nL3N0eWxlL0N1cnNvckxpc3QuaCBc
Ci0gICAgcmVuZGVyaW5nL3N0eWxlL0N1c3RvbUZpbHRlck9wZXJhdGlvbi5oIFwKICAgICByZW5k
ZXJpbmcvc3R5bGUvRmlsbExheWVyLmggXAogICAgIHJlbmRlcmluZy9zdHlsZS9LZXlmcmFtZUxp
c3QuaCBcCiAgICAgcmVuZGVyaW5nL3N0eWxlL05pbmVQaWVjZUltYWdlLmggXApAQCAtMjM5Myw2
ICsyMzk0LDcgQEAgSEVBREVSUyArPSBcCiAgICAgcmVuZGVyaW5nL3N0eWxlL1N0eWxlQm94RGF0
YS5oIFwKICAgICByZW5kZXJpbmcvc3R5bGUvU3R5bGVDYWNoZWRJbWFnZS5oIFwKICAgICByZW5k
ZXJpbmcvc3R5bGUvU3R5bGVDYWNoZWRTaGFkZXIuaCBcCisgICAgcmVuZGVyaW5nL3N0eWxlL1N0
eWxlQ3VzdG9tRmlsdGVyUHJvZ3JhbS5oIFwKICAgICByZW5kZXJpbmcvc3R5bGUvU3R5bGVEZXBy
ZWNhdGVkRmxleGlibGVCb3hEYXRhLmggXAogICAgIHJlbmRlcmluZy9zdHlsZS9TdHlsZUZpbHRl
ckRhdGEuaCBcCiAgICAgcmVuZGVyaW5nL3N0eWxlL1N0eWxlRmxleGlibGVCb3hEYXRhLmggXApA
QCAtMzI1Miw2ICszMjU0LDcgQEAgY29udGFpbnMoREVGSU5FUywgRU5BQkxFX0ZJTFRFUlM9MSkg
ewogICAgIFNPVVJDRVMgKz0gXAogICAgICAgICBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0N1
c3RvbUZpbHRlck1lc2guY3BwIFwKICAgICAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9D
dXN0b21GaWx0ZXJTaGFkZXIuY3BwIFwKKyAgICAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVy
cy9DdXN0b21GaWx0ZXJQcm9ncmFtLmNwcCBcCiAgICAgICAgIHBsYXRmb3JtL2dyYXBoaWNzL2Zp
bHRlcnMvRGlzdGFudExpZ2h0U291cmNlLmNwcCBcCiAgICAgICAgIHBsYXRmb3JtL2dyYXBoaWNz
L2ZpbHRlcnMvRkVCbGVuZC5jcHAgXAogICAgICAgICBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJz
L0ZFQ29sb3JNYXRyaXguY3BwIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
Z3lwaSBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQppbmRleCAzYWM5OWFjLi44ODhiMTA3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKKysrIGIvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS5neXBpCkBAIC0zNjc0LDYgKzM2NzQsOSBAQAogICAgICAgICAgICAgJ3Bs
YXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvQ3VzdG9tRmlsdGVyTWVzaC5oJywKICAgICAgICAgICAg
ICdwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0N1c3RvbUZpbHRlclNoYWRlci5jcHAnLAogICAg
ICAgICAgICAgJ3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvQ3VzdG9tRmlsdGVyU2hhZGVyLmgn
LAorICAgICAgICAgICAgJ3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvQ3VzdG9tRmlsdGVyT3Bl
cmF0aW9uLmgnLAorICAgICAgICAgICAgJ3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvQ3VzdG9t
RmlsdGVyUHJvZ3JhbS5jcHAnLAorICAgICAgICAgICAgJ3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRl
cnMvQ3VzdG9tRmlsdGVyUHJvZ3JhbS5oJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9ncmFwaGlj
cy9maWx0ZXJzL0Rpc3RhbnRMaWdodFNvdXJjZS5jcHAnLAogICAgICAgICAgICAgJ3BsYXRmb3Jt
L2dyYXBoaWNzL2ZpbHRlcnMvRGlzdGFudExpZ2h0U291cmNlLmgnLAogICAgICAgICAgICAgJ3Bs
YXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVCbGVuZC5jcHAnLApAQCAtNDgyNSw3ICs0ODI4LDYg
QEAKICAgICAgICAgICAgICdyZW5kZXJpbmcvbWF0aG1sL1JlbmRlck1hdGhNTFVuZGVyT3Zlci5o
JywKICAgICAgICAgICAgICdyZW5kZXJpbmcvc3R5bGUvQ29udGVudERhdGEuY3BwJywKICAgICAg
ICAgICAgICdyZW5kZXJpbmcvc3R5bGUvQ291bnRlckRpcmVjdGl2ZXMuY3BwJywKLSAgICAgICAg
ICAgICdyZW5kZXJpbmcvc3R5bGUvQ3VzdG9tRmlsdGVyT3BlcmF0aW9uLmgnLAogICAgICAgICAg
ICAgJ3JlbmRlcmluZy9zdHlsZS9GaWxsTGF5ZXIuY3BwJywKICAgICAgICAgICAgICdyZW5kZXJp
bmcvc3R5bGUvS2V5ZnJhbWVMaXN0LmNwcCcsCiAgICAgICAgICAgICAncmVuZGVyaW5nL3N0eWxl
L0tleWZyYW1lTGlzdC5oJywKQEAgLTQ4NDAsNiArNDg0Miw3IEBACiAgICAgICAgICAgICAncmVu
ZGVyaW5nL3N0eWxlL1N0eWxlQ2FjaGVkSW1hZ2UuY3BwJywKICAgICAgICAgICAgICdyZW5kZXJp
bmcvc3R5bGUvU3R5bGVDYWNoZWRTaGFkZXIuaCcsCiAgICAgICAgICAgICAncmVuZGVyaW5nL3N0
eWxlL1N0eWxlQ2FjaGVkU2hhZGVyLmNwcCcsCisgICAgICAgICAgICAncmVuZGVyaW5nL3N0eWxl
L1N0eWxlQ3VzdG9tRmlsdGVyUHJvZ3JhbS5oJywKICAgICAgICAgICAgICdyZW5kZXJpbmcvc3R5
bGUvU3R5bGVEZXByZWNhdGVkRmxleGlibGVCb3hEYXRhLmNwcCcsCiAgICAgICAgICAgICAncmVu
ZGVyaW5nL3N0eWxlL1N0eWxlRmlsdGVyRGF0YS5jcHAnLAogICAgICAgICAgICAgJ3JlbmRlcmlu
Zy9zdHlsZS9TdHlsZUZsZXhpYmxlQm94RGF0YS5jcHAnLApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagppbmRleCAwYTA3ZDY3Li5hZjgxNmNiIDEwMDc1NQot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagorKysgYi9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagpAQCAtMjk2MDAsNiAr
Mjk2MDAsMjIgQEAKIAkJCQkJCT4KIAkJCQkJPC9GaWxlPgogCQkJCQk8RmlsZQorCQkJCQkJUmVs
YXRpdmVQYXRoPSIuLlxwbGF0Zm9ybVxncmFwaGljc1xmaWx0ZXJzXEN1c3RvbUZpbHRlck9wZXJh
dGlvbi5oIgorCQkJCQkJPgorCQkJCQk8L0ZpbGU+CisJCQkJCTxGaWxlCisJCQkJCQlSZWxhdGl2
ZVBhdGg9Ii4uXHBsYXRmb3JtXGdyYXBoaWNzXGZpbHRlcnNcQ3VzdG9tRmlsdGVyUHJvZ3JhbS5j
cHAiCisJCQkJCQk+CisJCQkJCTwvRmlsZT4KKwkJCQkJPEZpbGUKKwkJCQkJCVJlbGF0aXZlUGF0
aD0iLi5ccGxhdGZvcm1cZ3JhcGhpY3NcZmlsdGVyc1xDdXN0b21GaWx0ZXJQcm9ncmFtLmgiCisJ
CQkJCQk+CisJCQkJCTwvRmlsZT4KKwkJCQkJPEZpbGUKKwkJCQkJCVJlbGF0aXZlUGF0aD0iLi5c
cGxhdGZvcm1cZ3JhcGhpY3NcZmlsdGVyc1xDdXN0b21GaWx0ZXJQcm9ncmFtQ2xpZW50LmgiCisJ
CQkJCQk+CisJCQkJCTwvRmlsZT4KKwkJCQkJPEZpbGUKIAkJCQkJCVJlbGF0aXZlUGF0aD0iLi5c
cGxhdGZvcm1cZ3JhcGhpY3NcZmlsdGVyc1xDdXN0b21GaWx0ZXJTaGFkZXIuY3BwIgogCQkJCQkJ
PgogCQkJCQk8L0ZpbGU+CkBAIC00MjQ1OSwxMCArNDI0NzUsNiBAQAogCQkJCQk+CiAJCQkJPC9G
aWxlPgogCQkJCTxGaWxlCi0JCQkJCVJlbGF0aXZlUGF0aD0iLi5ccmVuZGVyaW5nXHN0eWxlXEN1
c3RvbUZpbHRlck9wZXJhdGlvbi5oIgotCQkJCQk+Ci0JCQkJPC9GaWxlPgotCQkJCTxGaWxlCiAJ
CQkJCVJlbGF0aXZlUGF0aD0iLi5ccmVuZGVyaW5nXHN0eWxlXERhdGFSZWYuaCIKIAkJCQkJPgog
CQkJCTwvRmlsZT4KQEAgLTQyNTIzLDI2ICs0MjUzNSw2IEBACiAJCQkJCT4KIAkJCQk8L0ZpbGU+
CiAJCQkJPEZpbGUKLQkJCQkJUmVsYXRpdmVQYXRoPSIuLlxyZW5kZXJpbmdcc3R5bGVcRmlsdGVy
T3BlcmF0aW9uLmNwcCIKLQkJCQkJPgotCQkJCTwvRmlsZT4KLQkJCQk8RmlsZQotCQkJCQlSZWxh
dGl2ZVBhdGg9Ii4uXHJlbmRlcmluZ1xzdHlsZVxGaWx0ZXJPcGVyYXRpb24uaCIKLQkJCQkJPgot
CQkJCTwvRmlsZT4KLQkJCQk8RmlsZQotCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHJlbmRlcmluZ1xz
dHlsZVxGaWx0ZXJPcGVyYXRpb25zLmNwcCIKLQkJCQkJPgotCQkJCTwvRmlsZT4KLQkJCQk8Rmls
ZQotCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHJlbmRlcmluZ1xzdHlsZVxGaWx0ZXJPcGVyYXRpb25z
LmgiCi0JCQkJCT4KLQkJCQk8L0ZpbGU+Ci0JCQkJPEZpbGUKLQkJCQkJUmVsYXRpdmVQYXRoPSIu
LlxyZW5kZXJpbmdcc3R5bGVcQ3VzdG9tRmlsdGVyT3BlcmF0aW9uLmgiCi0JCQkJCT4KLQkJCQk8
L0ZpbGU+Ci0JCQkJPEZpbGUKIAkJCQkJUmVsYXRpdmVQYXRoPSIuLlxyZW5kZXJpbmdcc3R5bGVc
S2V5ZnJhbWVMaXN0LmNwcCIKIAkJCQkJPgogCQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KQEAgLTQz
MDExLDYgKzQzMDAzLDEwIEBACiAJCQkJCT4KIAkJCQk8L0ZpbGU+CiAJCQkJPEZpbGUKKwkJCQkJ
UmVsYXRpdmVQYXRoPSIuLlxyZW5kZXJpbmdcc3R5bGVcU3R5bGVDdXN0b21GaWx0ZXJQcm9ncmFt
LmgiCisJCQkJCT4KKwkJCQk8L0ZpbGU+CisJCQkJPEZpbGUKIAkJCQkJUmVsYXRpdmVQYXRoPSIu
LlxyZW5kZXJpbmdcc3R5bGVcU3R5bGVEZXByZWNhdGVkRmxleGlibGVCb3hEYXRhLmNwcCIKIAkJ
CQkJPgogCQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBjNDY2ZWM2Li44MGY0MzFiIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oK
KysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBA
IC0xMzkyLDkgKzEzOTIsMTMgQEAKIAkJNTAzOEJFMzAxNDcyQUQyMzAwOTVFMEQxIC8qIFN0eWxl
Q2FjaGVkU2hhZGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA1MDM4QkUyRTE0NzJBRDIzMDA5NUUwRDEgLyogU3R5bGVDYWNoZWRTaGFkZXIuaCAqLzsg
fTsKIAkJNTAzOEJFNDAxNDcyQUQ5ODAwOTVFMEQxIC8qIENhY2hlZFNoYWRlci5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MDM4QkUzRTE0NzJBRDk4
MDA5NUUwRDEgLyogQ2FjaGVkU2hhZGVyLmNwcCAqLzsgfTsKIAkJNTAzOEJFNDExNDcyQUQ5ODAw
OTVFMEQxIC8qIENhY2hlZFNoYWRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gNTAzOEJFM0YxNDcyQUQ5ODAwOTVFMEQxIC8qIENhY2hlZFNoYWRlci5o
ICovOyB9OwotCQk1MDM4QkYyODE0NzUwRjE5MDA5NUUwRDEgLyogQ3VzdG9tRmlsdGVyT3BlcmF0
aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MDM4
QkYyNDE0NzUwRjE5MDA5NUUwRDEgLyogQ3VzdG9tRmlsdGVyT3BlcmF0aW9uLmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJNTAzRDBDQUExNEI1QjA4
NzAwRjMyRjU3IC8qIEN1c3RvbUZpbHRlclByb2dyYW0uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTAzRDBDQTcxNEI1QjA4NzAwRjMyRjU3IC8qIEN1
c3RvbUZpbHRlclByb2dyYW0uY3BwICovOyB9OworCQk1MDNEMENBQjE0QjVCMDg3MDBGMzJGNTcg
LyogQ3VzdG9tRmlsdGVyUHJvZ3JhbS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gNTAzRDBDQTgxNEI1QjA4NzAwRjMyRjU3IC8qIEN1c3RvbUZpbHRlclBy
b2dyYW0uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9ICgpOyB9OyB9OworCQk1MDNEMENB
QzE0QjVCMDg3MDBGMzJGNTcgLyogQ3VzdG9tRmlsdGVyUHJvZ3JhbUNsaWVudC5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTAzRDBDQTkxNEI1QjA4NzAw
RjMyRjU3IC8qIEN1c3RvbUZpbHRlclByb2dyYW1DbGllbnQuaCAqLzsgfTsKKwkJNTAzRDBDQUUx
NEI1QjBCQTAwRjMyRjU3IC8qIFN0eWxlQ3VzdG9tRmlsdGVyUHJvZ3JhbS5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTAzRDBDQUQxNEI1QjBCQTAwRjMy
RjU3IC8qIFN0eWxlQ3VzdG9tRmlsdGVyUHJvZ3JhbS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKCk7IH07IH07CiAJCTUwOENDQTRGMTNDRjEwNkIwMDMxNTFGMyAvKiBSZW5kZXJGbG93
VGhyZWFkLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1
MDhDQ0E0RDEzQ0YxMDZCMDAzMTUxRjMgLyogUmVuZGVyRmxvd1RocmVhZC5oICovOyB9OwogCQk1
MDhDQ0E1MDEzQ0YxMDZCMDAzMTUxRjMgLyogUmVuZGVyRmxvd1RocmVhZC5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MDhDQ0E0RTEzQ0YxMDZCMDAz
MTUxRjMgLyogUmVuZGVyRmxvd1RocmVhZC5jcHAgKi87IH07CisJCTUwQUNFMkNCMTRCNUQ3OTMw
MDQ0NjY2NiAvKiBDdXN0b21GaWx0ZXJPcGVyYXRpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUwQUNFMkNBMTRCNUQ3OTMwMDQ0NjY2NiAvKiBDdXN0
b21GaWx0ZXJPcGVyYXRpb24uaCAqLzsgfTsKIAkJNTBENDAzQzcxNDc2OEM5NDAwRDMwQkI1IC8q
IEZFQ3VzdG9tRmlsdGVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDUwRDQwM0M1MTQ3NjhDOTQwMEQzMEJCNSAvKiBGRUN1c3RvbUZpbHRlci5jcHAg
Ki87IH07CiAJCTUwRDQwM0M4MTQ3NjhDOTQwMEQzMEJCNSAvKiBGRUN1c3RvbUZpbHRlci5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTBENDAzQzYxNDc2
OEM5NDAwRDMwQkI1IC8qIEZFQ3VzdG9tRmlsdGVyLmggKi87IH07CiAJCTUwRDQwNUY5MTQ3RDMx
RjMwMEQzMEJCNSAvKiBDdXN0b21GaWx0ZXJNZXNoLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUwRDQwNUY3MTQ3RDMxRjMwMEQzMEJCNSAvKiBDdXN0
b21GaWx0ZXJNZXNoLmNwcCAqLzsgfTsKQEAgLTg2NTcsOSArODY2MSwxMyBAQAogCQk1MDM4QkUy
RTE0NzJBRDIzMDA5NUUwRDEgLyogU3R5bGVDYWNoZWRTaGFkZXIuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBuYW1lID0gU3R5bGVDYWNoZWRTaGFkZXIuaDsgcGF0aCA9IHN0eWxlL1N0eWxl
Q2FjaGVkU2hhZGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUwMzhCRTNFMTQ3
MkFEOTgwMDk1RTBEMSAvKiBDYWNoZWRTaGFkZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gQ2FjaGVkU2hhZGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJNTAzOEJFM0YxNDcyQUQ5ODAwOTVFMEQxIC8qIENhY2hlZFNoYWRlci5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDYWNoZWRTaGFkZXIuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKLQkJNTAzOEJGMjQxNDc1MEYxOTAwOTVFMEQxIC8qIEN1c3RvbUZpbHRlck9w
ZXJhdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBDdXN0b21GaWx0ZXJP
cGVyYXRpb24uaDsgcGF0aCA9IHN0eWxlL0N1c3RvbUZpbHRlck9wZXJhdGlvbi5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQk1MDNEMENBNzE0QjVCMDg3MDBGMzJGNTcgLyogQ3VzdG9t
RmlsdGVyUHJvZ3JhbS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBD
dXN0b21GaWx0ZXJQcm9ncmFtLmNwcDsgcGF0aCA9IGZpbHRlcnMvQ3VzdG9tRmlsdGVyUHJvZ3Jh
bS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTUwM0QwQ0E4MTRCNUIwODcwMEYz
MkY1NyAvKiBDdXN0b21GaWx0ZXJQcm9ncmFtLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
bmFtZSA9IEN1c3RvbUZpbHRlclByb2dyYW0uaDsgcGF0aCA9IGZpbHRlcnMvQ3VzdG9tRmlsdGVy
UHJvZ3JhbS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1MDNEMENBOTE0QjVCMDg3
MDBGMzJGNTcgLyogQ3VzdG9tRmlsdGVyUHJvZ3JhbUNsaWVudC5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IG5hbWUgPSBDdXN0b21GaWx0ZXJQcm9ncmFtQ2xpZW50Lmg7IHBhdGggPSBmaWx0
ZXJzL0N1c3RvbUZpbHRlclByb2dyYW1DbGllbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJNTAzRDBDQUQxNEI1QjBCQTAwRjMyRjU3IC8qIFN0eWxlQ3VzdG9tRmlsdGVyUHJvZ3Jh
bS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBTdHlsZUN1c3RvbUZpbHRlclBy
b2dyYW0uaDsgcGF0aCA9IHN0eWxlL1N0eWxlQ3VzdG9tRmlsdGVyUHJvZ3JhbS5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk1MDhDQ0E0RDEzQ0YxMDZCMDAzMTUxRjMgLyogUmVuZGVy
Rmxvd1RocmVhZC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW5kZXJGbG93
VGhyZWFkLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUwOENDQTRFMTNDRjEwNkIw
MDMxNTFGMyAvKiBSZW5kZXJGbG93VGhyZWFkLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IFJlbmRlckZsb3dUaHJlYWQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQk1MEFDRTJDQTE0QjVENzkzMDA0NDY2NjYgLyogQ3VzdG9tRmlsdGVyT3BlcmF0aW9u
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IEN1c3RvbUZpbHRlck9wZXJhdGlv
bi5oOyBwYXRoID0gZmlsdGVycy9DdXN0b21GaWx0ZXJPcGVyYXRpb24uaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJNTBCNDIxNTcxNDY5NzY5NjAwODdFNjA0IC8qIFdlYktpdENTU1No
YWRlclZhbHVlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYktpdENTU1No
YWRlclZhbHVlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUwRDQwM0M1MTQ3NjhD
OTQwMEQzMEJCNSAvKiBGRUN1c3RvbUZpbHRlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IG5hbWUgPSBGRUN1c3RvbUZpbHRlci5jcHA7IHBhdGggPSBmaWx0ZXJzL0ZFQ3VzdG9t
RmlsdGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTBENDAzQzYxNDc2OEM5
NDAwRDMwQkI1IC8qIEZFQ3VzdG9tRmlsdGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
bmFtZSA9IEZFQ3VzdG9tRmlsdGVyLmg7IHBhdGggPSBmaWx0ZXJzL0ZFQ3VzdG9tRmlsdGVyLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xNzcwMiw2ICsxNzcxMCwxMCBAQAogCQlB
NzVFOEI3RjBFMURFMkIwMDA3RjI0ODEgLyogZmlsdGVycyAqLyA9IHsKIAkJCWlzYSA9IFBCWEdy
b3VwOwogCQkJY2hpbGRyZW4gPSAoCisJCQkJNTBBQ0UyQ0ExNEI1RDc5MzAwNDQ2NjY2IC8qIEN1
c3RvbUZpbHRlck9wZXJhdGlvbi5oICovLAorCQkJCTUwM0QwQ0E3MTRCNUIwODcwMEYzMkY1NyAv
KiBDdXN0b21GaWx0ZXJQcm9ncmFtLmNwcCAqLywKKwkJCQk1MDNEMENBODE0QjVCMDg3MDBGMzJG
NTcgLyogQ3VzdG9tRmlsdGVyUHJvZ3JhbS5oICovLAorCQkJCTUwM0QwQ0E5MTRCNUIwODcwMEYz
MkY1NyAvKiBDdXN0b21GaWx0ZXJQcm9ncmFtQ2xpZW50LmggKi8sCiAJCQkJNDlFQ0VCNUMxNDk5
NzkwRDAwQ0REM0E0IC8qIGFybSAqLywKIAkJCQk1MEQ0MDVGNzE0N0QzMUYzMDBEMzBCQjUgLyog
Q3VzdG9tRmlsdGVyTWVzaC5jcHAgKi8sCiAJCQkJNTBENDA1RjgxNDdEMzFGMzAwRDMwQkI1IC8q
IEN1c3RvbUZpbHRlck1lc2guaCAqLywKQEAgLTE5ODg2LDYgKzE5ODk4LDcgQEAKIAkJQkM4QzhG
QUEwRERDRDJGMjAwQjU5MkY0IC8qIHN0eWxlICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJ
CQljaGlsZHJlbiA9ICgKKwkJCQk1MDNEMENBRDE0QjVCMEJBMDBGMzJGNTcgLyogU3R5bGVDdXN0
b21GaWx0ZXJQcm9ncmFtLmggKi8sCiAJCQkJQkM1RUI1RTAwRTgxQkU4NzAwQjI1OTY1IC8qIEJv
cmRlckRhdGEuaCAqLywKIAkJCQlCQzVFQjVEQTBFODFCN0VBMDBCMjU5NjUgLyogQm9yZGVyVmFs
dWUuaCAqLywKIAkJCQlCQzVFQjVERTBFODFCOUFCMDBCMjU5NjUgLyogQ29sbGFwc2VkQm9yZGVy
VmFsdWUuaCAqLywKQEAgLTE5ODk2LDcgKzE5OTA5LDYgQEAKIAkJCQlCQzVFQjk0RjBFODIwNTZC
MDBCMjU5NjUgLyogQ291bnRlckRpcmVjdGl2ZXMuaCAqLywKIAkJCQlCQzIyNzJBMTBFODJFODdD
MDBFN0Y5NzUgLyogQ3Vyc29yRGF0YS5oICovLAogCQkJCUJDMjI3MkFDMEU4MkU4RjMwMEU3Rjk3
NSAvKiBDdXJzb3JMaXN0LmggKi8sCi0JCQkJNTAzOEJGMjQxNDc1MEYxOTAwOTVFMEQxIC8qIEN1
c3RvbUZpbHRlck9wZXJhdGlvbi5oICovLAogCQkJCUJDMjI3NDZFMEU4MzY2NDUwMEU3Rjk3NSAv
KiBEYXRhUmVmLmggKi8sCiAJCQkJQkM1RUI2OUMwRTgxREFFQjAwQjI1OTY1IC8qIEZpbGxMYXll
ci5jcHAgKi8sCiAJCQkJQkM1RUI2OUQwRTgxREFFQjAwQjI1OTY1IC8qIEZpbGxMYXllci5oICov
LApAQCAtMjIxMTAsNyArMjIxMjIsNiBAQAogCQkJCUJDMjI3MkFEMEU4MkU4RjMwMEU3Rjk3NSAv
KiBDdXJzb3JMaXN0LmggaW4gSGVhZGVycyAqLywKIAkJCQk2MkNEMzI1QTExNTdFNTdDMDA2M0Iw
QTcgLyogQ3VzdG9tRXZlbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTUwRDQwNUZBMTQ3RDMxRjMw
MEQzMEJCNSAvKiBDdXN0b21GaWx0ZXJNZXNoLmggaW4gSGVhZGVycyAqLywKLQkJCQk1MDM4QkYy
ODE0NzUwRjE5MDA5NUUwRDEgLyogQ3VzdG9tRmlsdGVyT3BlcmF0aW9uLmggaW4gSGVhZGVycyAq
LywKIAkJCQk1MEQ0MDYxMjE0N0Q0OURFMDBEMzBCQjUgLyogQ3VzdG9tRmlsdGVyU2hhZGVyLmgg
aW4gSGVhZGVycyAqLywKIAkJCQlBOENCNDEzRTBFODYzM0ZEMDAzMkM0RjAgLyogRGFzaEFycmF5
LmggaW4gSGVhZGVycyAqLywKIAkJCQlBODBFNkQwQjBBMTk4OUNBMDA3RkI4QzUgLyogRGFzaGJv
YXJkUmVnaW9uLmggaW4gSGVhZGVycyAqLywKQEAgLTI0ODkwLDYgKzI0OTAxLDEwIEBACiAJCQkJ
RkQ1MzczNTMxMzdCNjUxODAwMDA4RENFIC8qIFplcm9Qb2xlLmggaW4gSGVhZGVycyAqLywKIAkJ
CQk5NzRBODYyMzE0QjdBREJCMDAzRkRDNzYgLyogRnJhbWVEZXN0cnVjdGlvbk9ic2VydmVyLmgg
aW4gSGVhZGVycyAqLywKIAkJCQk5N0QyQUQwNDE0QjgyM0E2MDA5M0RGMzIgLyogRE9NV2luZG93
UHJvcGVydHkuaCBpbiBIZWFkZXJzICovLAorCQkJCTUwM0QwQ0FCMTRCNUIwODcwMEYzMkY1NyAv
KiBDdXN0b21GaWx0ZXJQcm9ncmFtLmggaW4gSGVhZGVycyAqLywKKwkJCQk1MDNEMENBQzE0QjVC
MDg3MDBGMzJGNTcgLyogQ3VzdG9tRmlsdGVyUHJvZ3JhbUNsaWVudC5oIGluIEhlYWRlcnMgKi8s
CisJCQkJNTAzRDBDQUUxNEI1QjBCQTAwRjMyRjU3IC8qIFN0eWxlQ3VzdG9tRmlsdGVyUHJvZ3Jh
bS5oIGluIEhlYWRlcnMgKi8sCisJCQkJNTBBQ0UyQ0IxNEI1RDc5MzAwNDQ2NjY2IC8qIEN1c3Rv
bUZpbHRlck9wZXJhdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRl
cGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CkBAIC0yNzc5NSw2ICsyNzgxMCw3IEBA
CiAJCQkJRkQ1MzczNTIxMzdCNjUxODAwMDA4RENFIC8qIFplcm9Qb2xlLmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCTk3NEE4NjIyMTRCN0FEQkIwMDNGREM3NiAvKiBGcmFtZURlc3RydWN0aW9uT2Jz
ZXJ2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJOTdEMkFEMDMxNEI4MjNBNjAwOTNERjMyIC8q
IERPTVdpbmRvd1Byb3BlcnR5LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTUwM0QwQ0FBMTRCNUIw
ODcwMEYzMkY1NyAvKiBDdXN0b21GaWx0ZXJQcm9ncmFtLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
KTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcApp
bmRleCAzZTBkYzhjLi4xZmRlMTg5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NT
Q29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NT
Q29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcApAQCAtNTYsNiArNTYsNyBAQAogI2luY2x1ZGUg
IlJlbmRlclN0eWxlLmgiCiAjaW5jbHVkZSAiU2hhZG93VmFsdWUuaCIKICNpZiBFTkFCTEUoQ1NT
X0ZJTFRFUlMpCisjaW5jbHVkZSAiU3R5bGVDdXN0b21GaWx0ZXJQcm9ncmFtLmgiCiAjaW5jbHVk
ZSAiV2ViS2l0Q1NTRmlsdGVyVmFsdWUuaCIKICNlbmRpZgogI2luY2x1ZGUgIldlYktpdENTU1Ry
YW5zZm9ybVZhbHVlLmgiCkBAIC03NTMsMTMgKzc1NCwxNiBAQCBQYXNzUmVmUHRyPENTU1ZhbHVl
PiBDU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb246OnZhbHVlRm9yRmlsdGVyKFJlbmRlclN0eWxl
KiBzdAogICAgICAgICAgICAgCiAgICAgICAgICAgICAvLyBUaGUgb3V0cHV0IHNob3VsZCBiZSB2
ZXJib3NlLCBldmVuIGlmIHRoZSB2YWx1ZXMgYXJlIHRoZSBkZWZhdWx0IG9uZXMuCiAgICAgICAg
ICAgICAKKyAgICAgICAgICAgIEFTU0VSVChjdXN0b21PcGVyYXRpb24tPnByb2dyYW0oKSk7Cisg
ICAgICAgICAgICBTdHlsZUN1c3RvbUZpbHRlclByb2dyYW0qIHByb2dyYW0gPSBzdGF0aWNfY2Fz
dDxTdHlsZUN1c3RvbUZpbHRlclByb2dyYW0qPihjdXN0b21PcGVyYXRpb24tPnByb2dyYW0oKSk7
CisgICAgICAgICAgICAKICAgICAgICAgICAgIFJlZlB0cjxDU1NWYWx1ZUxpc3Q+IHNoYWRlcnNM
aXN0ID0gQ1NTVmFsdWVMaXN0OjpjcmVhdGVTcGFjZVNlcGFyYXRlZCgpOwotICAgICAgICAgICAg
aWYgKGN1c3RvbU9wZXJhdGlvbi0+dmVydGV4U2hhZGVyKCkpCi0gICAgICAgICAgICAgICAgc2hh
ZGVyc0xpc3QtPmFwcGVuZChjdXN0b21PcGVyYXRpb24tPnZlcnRleFNoYWRlcigpLT5jc3NWYWx1
ZSgpKTsKKyAgICAgICAgICAgIGlmIChwcm9ncmFtLT52ZXJ0ZXhTaGFkZXIoKSkKKyAgICAgICAg
ICAgICAgICBzaGFkZXJzTGlzdC0+YXBwZW5kKHByb2dyYW0tPnZlcnRleFNoYWRlcigpLT5jc3NW
YWx1ZSgpKTsKICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICBzaGFkZXJzTGlzdC0+
YXBwZW5kKGNzc1ZhbHVlUG9vbC0+Y3JlYXRlSWRlbnRpZmllclZhbHVlKENTU1ZhbHVlTm9uZSkp
OwotICAgICAgICAgICAgaWYgKGN1c3RvbU9wZXJhdGlvbi0+ZnJhZ21lbnRTaGFkZXIoKSkKLSAg
ICAgICAgICAgICAgICBzaGFkZXJzTGlzdC0+YXBwZW5kKGN1c3RvbU9wZXJhdGlvbi0+ZnJhZ21l
bnRTaGFkZXIoKS0+Y3NzVmFsdWUoKSk7CisgICAgICAgICAgICBpZiAocHJvZ3JhbS0+ZnJhZ21l
bnRTaGFkZXIoKSkKKyAgICAgICAgICAgICAgICBzaGFkZXJzTGlzdC0+YXBwZW5kKHByb2dyYW0t
PmZyYWdtZW50U2hhZGVyKCktPmNzc1ZhbHVlKCkpOwogICAgICAgICAgICAgZWxzZQogICAgICAg
ICAgICAgICAgIHNoYWRlcnNMaXN0LT5hcHBlbmQoY3NzVmFsdWVQb29sLT5jcmVhdGVJZGVudGlm
aWVyVmFsdWUoQ1NTVmFsdWVOb25lKSk7CiAgICAgICAgICAgICBmaWx0ZXJWYWx1ZS0+YXBwZW5k
KHNoYWRlcnNMaXN0LnJlbGVhc2UoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3Mv
Q1NTU3R5bGVTZWxlY3Rvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU3R5bGVTZWxlY3Rv
ci5jcHAKaW5kZXggYjAyODJjMS4uZWM3OGQ5MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
Y3NzL0NTU1N0eWxlU2VsZWN0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHls
ZVNlbGVjdG9yLmNwcApAQCAtMTI1LDYgKzEyNSw3IEBACiAjaWYgRU5BQkxFKENTU19TSEFERVJT
KQogI2luY2x1ZGUgIkN1c3RvbUZpbHRlck9wZXJhdGlvbi5oIgogI2luY2x1ZGUgIlN0eWxlQ2Fj
aGVkU2hhZGVyLmgiCisjaW5jbHVkZSAiU3R5bGVDdXN0b21GaWx0ZXJQcm9ncmFtLmgiCiAjaW5j
bHVkZSAiU3R5bGVQZW5kaW5nU2hhZGVyLmgiCiAjaW5jbHVkZSAiU3R5bGVTaGFkZXIuaCIKICNp
bmNsdWRlICJXZWJLaXRDU1NTaGFkZXJWYWx1ZS5oIgpAQCAtNTA4NCwxMyArNTA4NSwxNSBAQCB2
b2lkIENTU1N0eWxlU2VsZWN0b3I6OmxvYWRQZW5kaW5nU2hhZGVycygpCiAgICAgICAgIFJlZlB0
cjxGaWx0ZXJPcGVyYXRpb24+IGZpbHRlck9wZXJhdGlvbiA9IGZpbHRlck9wZXJhdGlvbnMuYXQo
aSk7CiAgICAgICAgIGlmIChmaWx0ZXJPcGVyYXRpb24tPmdldE9wZXJhdGlvblR5cGUoKSA9PSBG
aWx0ZXJPcGVyYXRpb246OkNVU1RPTSkgewogICAgICAgICAgICAgQ3VzdG9tRmlsdGVyT3BlcmF0
aW9uKiBjdXN0b21GaWx0ZXIgPSBzdGF0aWNfY2FzdDxDdXN0b21GaWx0ZXJPcGVyYXRpb24qPihm
aWx0ZXJPcGVyYXRpb24uZ2V0KCkpOwotICAgICAgICAgICAgaWYgKGN1c3RvbUZpbHRlci0+dmVy
dGV4U2hhZGVyKCkgJiYgY3VzdG9tRmlsdGVyLT52ZXJ0ZXhTaGFkZXIoKS0+aXNQZW5kaW5nU2hh
ZGVyKCkpIHsKLSAgICAgICAgICAgICAgICBXZWJLaXRDU1NTaGFkZXJWYWx1ZSogc2hhZGVyVmFs
dWUgPSBzdGF0aWNfY2FzdDxTdHlsZVBlbmRpbmdTaGFkZXIqPihjdXN0b21GaWx0ZXItPnZlcnRl
eFNoYWRlcigpKS0+Y3NzU2hhZGVyVmFsdWUoKTsKLSAgICAgICAgICAgICAgICBjdXN0b21GaWx0
ZXItPnNldFZlcnRleFNoYWRlcihzaGFkZXJWYWx1ZS0+Y2FjaGVkU2hhZGVyKGNhY2hlZFJlc291
cmNlTG9hZGVyKSk7CisgICAgICAgICAgICBBU1NFUlQoY3VzdG9tRmlsdGVyLT5wcm9ncmFtKCkp
OworICAgICAgICAgICAgU3R5bGVDdXN0b21GaWx0ZXJQcm9ncmFtKiBwcm9ncmFtID0gc3RhdGlj
X2Nhc3Q8U3R5bGVDdXN0b21GaWx0ZXJQcm9ncmFtKj4oY3VzdG9tRmlsdGVyLT5wcm9ncmFtKCkp
OworICAgICAgICAgICAgaWYgKHByb2dyYW0tPnZlcnRleFNoYWRlcigpICYmIHByb2dyYW0tPnZl
cnRleFNoYWRlcigpLT5pc1BlbmRpbmdTaGFkZXIoKSkgeworICAgICAgICAgICAgICAgIFdlYktp
dENTU1NoYWRlclZhbHVlKiBzaGFkZXJWYWx1ZSA9IHN0YXRpY19jYXN0PFN0eWxlUGVuZGluZ1No
YWRlcio+KHByb2dyYW0tPnZlcnRleFNoYWRlcigpKS0+Y3NzU2hhZGVyVmFsdWUoKTsKKyAgICAg
ICAgICAgICAgICBwcm9ncmFtLT5zZXRWZXJ0ZXhTaGFkZXIoc2hhZGVyVmFsdWUtPmNhY2hlZFNo
YWRlcihjYWNoZWRSZXNvdXJjZUxvYWRlcikpOwogICAgICAgICAgICAgfQotICAgICAgICAgICAg
aWYgKGN1c3RvbUZpbHRlci0+ZnJhZ21lbnRTaGFkZXIoKSAmJiBjdXN0b21GaWx0ZXItPmZyYWdt
ZW50U2hhZGVyKCktPmlzUGVuZGluZ1NoYWRlcigpKSB7Ci0gICAgICAgICAgICAgICAgV2ViS2l0
Q1NTU2hhZGVyVmFsdWUqIHNoYWRlclZhbHVlID0gc3RhdGljX2Nhc3Q8U3R5bGVQZW5kaW5nU2hh
ZGVyKj4oY3VzdG9tRmlsdGVyLT5mcmFnbWVudFNoYWRlcigpKS0+Y3NzU2hhZGVyVmFsdWUoKTsK
LSAgICAgICAgICAgICAgICBjdXN0b21GaWx0ZXItPnNldEZyYWdtZW50U2hhZGVyKHNoYWRlclZh
bHVlLT5jYWNoZWRTaGFkZXIoY2FjaGVkUmVzb3VyY2VMb2FkZXIpKTsKKyAgICAgICAgICAgIGlm
IChwcm9ncmFtLT5mcmFnbWVudFNoYWRlcigpICYmIHByb2dyYW0tPmZyYWdtZW50U2hhZGVyKCkt
PmlzUGVuZGluZ1NoYWRlcigpKSB7CisgICAgICAgICAgICAgICAgV2ViS2l0Q1NTU2hhZGVyVmFs
dWUqIHNoYWRlclZhbHVlID0gc3RhdGljX2Nhc3Q8U3R5bGVQZW5kaW5nU2hhZGVyKj4ocHJvZ3Jh
bS0+ZnJhZ21lbnRTaGFkZXIoKSktPmNzc1NoYWRlclZhbHVlKCk7CisgICAgICAgICAgICAgICAg
cHJvZ3JhbS0+c2V0RnJhZ21lbnRTaGFkZXIoc2hhZGVyVmFsdWUtPmNhY2hlZFNoYWRlcihjYWNo
ZWRSZXNvdXJjZUxvYWRlcikpOwogICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAgfQpAQCAt
NTE1OSw4ICs1MTYyLDggQEAgUGFzc1JlZlB0cjxDdXN0b21GaWx0ZXJPcGVyYXRpb24+IENTU1N0
eWxlU2VsZWN0b3I6OmNyZWF0ZUN1c3RvbUZpbHRlck9wZXJhdGlvbigKICAgICAgICAgICAgIH0K
ICAgICAgICAgfQogICAgIH0KLSAgICAKLSAgICByZXR1cm4gQ3VzdG9tRmlsdGVyT3BlcmF0aW9u
OjpjcmVhdGUodmVydGV4U2hhZGVyLCBmcmFnbWVudFNoYWRlciwgbWVzaFJvd3MsIG1lc2hDb2x1
bW5zLCBtZXNoQm94VHlwZSwgbWVzaFR5cGUpOworICAgIFJlZlB0cjxTdHlsZUN1c3RvbUZpbHRl
clByb2dyYW0+IHByb2dyYW0gPSBTdHlsZUN1c3RvbUZpbHRlclByb2dyYW06OmNyZWF0ZSh2ZXJ0
ZXhTaGFkZXIucmVsZWFzZSgpLCBmcmFnbWVudFNoYWRlci5yZWxlYXNlKCkpOworICAgIHJldHVy
biBDdXN0b21GaWx0ZXJPcGVyYXRpb246OmNyZWF0ZShwcm9ncmFtLnJlbGVhc2UoKSwgbWVzaFJv
d3MsIG1lc2hDb2x1bW5zLCBtZXNoQm94VHlwZSwgbWVzaFR5cGUpOwogfQogI2VuZGlmCiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvQ3VzdG9t
RmlsdGVyT3BlcmF0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0
ZXJzL0N1c3RvbUZpbHRlck9wZXJhdGlvbi5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAuLjc0ZmU4ODgKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9maWx0ZXJzL0N1c3RvbUZpbHRlck9wZXJhdGlvbi5oCkBAIC0wLDAgKzEsMTA0
IEBACisvKgorICogQ29weXJpZ2h0IDIwMTEgQWRvYmUgU3lzdGVtcyBJbmNvcnBvcmF0ZWQuIEFs
bCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZQorICogICAgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcKKyAqICAgIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiAgICBj
b3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZworICogICAgZGlzY2xhaW1lciBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzCisgKiAgICBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUiDigJxBUyBJU+KA
nSBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUIEhPTERFUiBCRQorICogTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLAorICogT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUgorICogVE9SVCAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GCisg
KiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lC
SUxJVFkgT0YKKyAqIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgQ3VzdG9tRmlsdGVyT3Bl
cmF0aW9uX2gKKyNkZWZpbmUgQ3VzdG9tRmlsdGVyT3BlcmF0aW9uX2gKKworI2lmIEVOQUJMRShD
U1NfU0hBREVSUykKKyNpbmNsdWRlICJDdXN0b21GaWx0ZXJQcm9ncmFtLmgiCisjaW5jbHVkZSAi
RmlsdGVyT3BlcmF0aW9uLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworLy8gQ1NTIFNoYWRl
cnMKKworY2xhc3MgQ3VzdG9tRmlsdGVyT3BlcmF0aW9uIDogcHVibGljIEZpbHRlck9wZXJhdGlv
biB7CitwdWJsaWM6CisgICAgZW51bSBNZXNoQm94VHlwZSB7CisgICAgICAgIEZJTFRFUl9CT1gs
CisgICAgICAgIEJPUkRFUl9CT1gsCisgICAgICAgIFBBRERJTkdfQk9YLAorICAgICAgICBDT05U
RU5UX0JPWAorICAgIH07CisgICAgCisgICAgZW51bSBNZXNoVHlwZSB7CisgICAgICAgIEFUVEFD
SEVELAorICAgICAgICBERVRBQ0hFRAorICAgIH07CisgICAgCisgICAgc3RhdGljIFBhc3NSZWZQ
dHI8Q3VzdG9tRmlsdGVyT3BlcmF0aW9uPiBjcmVhdGUoUGFzc1JlZlB0cjxDdXN0b21GaWx0ZXJQ
cm9ncmFtPiBwcm9ncmFtLCB1bnNpZ25lZCBtZXNoUm93cywgdW5zaWduZWQgbWVzaENvbHVtbnMs
IE1lc2hCb3hUeXBlIG1lc2hCb3hUeXBlLCBNZXNoVHlwZSBtZXNoVHlwZSkKKyAgICB7CisgICAg
ICAgIHJldHVybiBhZG9wdFJlZihuZXcgQ3VzdG9tRmlsdGVyT3BlcmF0aW9uKHByb2dyYW0sIG1l
c2hSb3dzLCBtZXNoQ29sdW1ucywgbWVzaEJveFR5cGUsIG1lc2hUeXBlKSk7CisgICAgfQorICAg
IAorICAgIEN1c3RvbUZpbHRlclByb2dyYW0qIHByb2dyYW0oKSBjb25zdCB7IHJldHVybiBtX3By
b2dyYW0uZ2V0KCk7IH0KKyAgICAKKyAgICB1bnNpZ25lZCBtZXNoUm93cygpIGNvbnN0IHsgcmV0
dXJuIG1fbWVzaFJvd3M7IH0KKyAgICB1bnNpZ25lZCBtZXNoQ29sdW1ucygpIGNvbnN0IHsgcmV0
dXJuIG1fbWVzaENvbHVtbnM7IH0KKyAgICAKKyAgICBNZXNoQm94VHlwZSBtZXNoQm94VHlwZSgp
IGNvbnN0IHsgcmV0dXJuIG1fbWVzaEJveFR5cGU7IH0KKyAgICBNZXNoVHlwZSBtZXNoVHlwZSgp
IGNvbnN0IHsgcmV0dXJuIG1fbWVzaFR5cGU7IH0KKyAgICAKK3ByaXZhdGU6CisgICAgdmlydHVh
bCBib29sIG9wZXJhdG9yPT0oY29uc3QgRmlsdGVyT3BlcmF0aW9uJiBvKSBjb25zdAorICAgIHsK
KyAgICAgICAgaWYgKCFpc1NhbWVUeXBlKG8pKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwor
CisgICAgICAgIGNvbnN0IEN1c3RvbUZpbHRlck9wZXJhdGlvbiogb3RoZXIgPSBzdGF0aWNfY2Fz
dDxjb25zdCBDdXN0b21GaWx0ZXJPcGVyYXRpb24qPigmbyk7CisgICAgICAgIHJldHVybiBtX3By
b2dyYW0uZ2V0KCkgPT0gb3RoZXItPm1fcHJvZ3JhbS5nZXQoKQorICAgICAgICAgICAgICAgJiYg
bV9tZXNoUm93cyA9PSBvdGhlci0+bV9tZXNoUm93cworICAgICAgICAgICAgICAgJiYgbV9tZXNo
Q29sdW1ucyA9PSBvdGhlci0+bV9tZXNoQ29sdW1ucworICAgICAgICAgICAgICAgJiYgbV9tZXNo
Qm94VHlwZSA9PSBvdGhlci0+bV9tZXNoQm94VHlwZQorICAgICAgICAgICAgICAgJiYgbV9tZXNo
VHlwZSA9PSBvdGhlci0+bV9tZXNoVHlwZTsKKyAgICB9CisgICAgCisgICAgQ3VzdG9tRmlsdGVy
T3BlcmF0aW9uKFBhc3NSZWZQdHI8Q3VzdG9tRmlsdGVyUHJvZ3JhbT4gcHJvZ3JhbSwgdW5zaWdu
ZWQgbWVzaFJvd3MsIHVuc2lnbmVkIG1lc2hDb2x1bW5zLCBNZXNoQm94VHlwZSBtZXNoQm94VHlw
ZSwgTWVzaFR5cGUgbWVzaFR5cGUpCisgICAgICAgIDogRmlsdGVyT3BlcmF0aW9uKENVU1RPTSkK
KyAgICAgICAgLCBtX3Byb2dyYW0ocHJvZ3JhbSkKKyAgICAgICAgLCBtX21lc2hSb3dzKG1lc2hS
b3dzKQorICAgICAgICAsIG1fbWVzaENvbHVtbnMobWVzaENvbHVtbnMpCisgICAgICAgICwgbV9t
ZXNoQm94VHlwZShtZXNoQm94VHlwZSkKKyAgICAgICAgLCBtX21lc2hUeXBlKG1lc2hUeXBlKQor
ICAgIHsKKyAgICB9CisKKyAgICBSZWZQdHI8Q3VzdG9tRmlsdGVyUHJvZ3JhbT4gbV9wcm9ncmFt
OworICAgIAorICAgIHVuc2lnbmVkIG1fbWVzaFJvd3M7CisgICAgdW5zaWduZWQgbV9tZXNoQ29s
dW1uczsKKyAgICBNZXNoQm94VHlwZSBtX21lc2hCb3hUeXBlOworICAgIE1lc2hUeXBlIG1fbWVz
aFR5cGU7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUo
Q1NTX1NIQURFUlMpCisKKyNlbmRpZiAvLyBDdXN0b21GaWx0ZXJPcGVyYXRpb25faApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9DdXN0b21GaWx0
ZXJQcm9ncmFtLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMv
Q3VzdG9tRmlsdGVyUHJvZ3JhbS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MC4uYWI3YjA0NwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2ZpbHRlcnMvQ3VzdG9tRmlsdGVyUHJvZ3JhbS5jcHAKQEAgLTAsMCArMSw5MiBAQAor
LyoKKyAqIENvcHlyaWdodCAyMDExIEFkb2JlIFN5c3RlbXMgSW5jb3Jwb3JhdGVkLiBBbGwgUmln
aHRzIFJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUKKyAqICAgIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nCisgKiAgICBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogICAgY29weXJp
Z2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcKKyAq
ICAgIGRpc2NsYWltZXIgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cworICogICAgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVIg4oCcQVMgSVPigJ0gQU5E
IEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVCBIT0xERVIgQkUKKyAqIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwK
KyAqIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IKKyAqIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRgorICogVEhF
IFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZ
IE9GCisgKiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisKKyNpZiBF
TkFCTEUoQ1NTX1NIQURFUlMpCisjaW5jbHVkZSAiQ3VzdG9tRmlsdGVyUHJvZ3JhbS5oIgorCisj
aW5jbHVkZSAiQ3VzdG9tRmlsdGVyUHJvZ3JhbUNsaWVudC5oIgorI2luY2x1ZGUgIkN1c3RvbUZp
bHRlclNoYWRlci5oIgorCisjaWYgRU5BQkxFKFdFQkdMKQorI2luY2x1ZGUgIkdyYXBoaWNzQ29u
dGV4dDNELmgiCisjZW5kaWYKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitDdXN0b21GaWx0ZXJQ
cm9ncmFtOjpDdXN0b21GaWx0ZXJQcm9ncmFtKCkKK3sKKyAgICAvLyBLZWVwIHRoZSBjb25zdHJ1
Y3RvciBwcm90ZWN0ZWQgdG8gcHJldmVudCBjcmVhdGluZyB0aGlzIG9iamVjdCBkaXJlY3RseS4K
K30KKworQ3VzdG9tRmlsdGVyUHJvZ3JhbTo6fkN1c3RvbUZpbHRlclByb2dyYW0oKQoreworICAg
IC8vIEFsbCB0aGUgY2xpZW50cyBzaG91bGQga2VlcCBhIHJlZmVyZW5jZSB0byB0aGlzIG9iamVj
dC4KKyAgICBBU1NFUlQobV9jbGllbnRzLmlzRW1wdHkoKSk7Cit9CisKK3ZvaWQgQ3VzdG9tRmls
dGVyUHJvZ3JhbTo6YWRkQ2xpZW50KEN1c3RvbUZpbHRlclByb2dyYW1DbGllbnQqIGNsaWVudCkK
K3sKKyAgICBpZiAobV9jbGllbnRzLmlzRW1wdHkoKSkgeworICAgICAgICAvLyBOb3RpZnkgdGhl
IFN0eWxlQ3VzdG9tRmlsdGVyUHJvZ3JhbSB0aGF0IHdlIG5vdyBoYXZlIGF0IGxlYXN0IGEgY2xp
ZW50CisgICAgICAgIC8vIGFuZCB0aGUgbG9hZGluZyBjYW4gYmVnaW4uCisgICAgICAgIC8vIE5v
dGU6IElmIHRoZSBzaGFkZXIgaXMgYWxyZWFkeSBjYWNoZWQgdGhlIGZpcnN0IGNsaWVudCB3aWxs
IGJlIG5vdGlmaWVkLAorICAgICAgICAvLyBldmVuIGlmIHRoZSBmaWx0ZXIgd2FzIGFscmVhZHkg
YnVpbHQuIEFkZCB0aGUgY2xpZW50IG9ubHkgYWZ0ZXIgbm90aWZ5aW5nCisgICAgICAgIC8vIHRo
ZSBjYWNoZSBhYm91dCB0aGVtLCBzbyB0aGF0IHdlIGF2b2lkIGEgdXNlbGVzcyByZWNyZWF0aW9u
IG9mIHRoZSBmaWx0ZXJzIGNoYWluLgorICAgICAgICB3aWxsSGF2ZUNsaWVudHMoKTsKKyAgICB9
CisgICAgbV9jbGllbnRzLmFkZChjbGllbnQpOworfQorCit2b2lkIEN1c3RvbUZpbHRlclByb2dy
YW06OnJlbW92ZUNsaWVudChDdXN0b21GaWx0ZXJQcm9ncmFtQ2xpZW50KiBjbGllbnQpCit7Cisg
ICAgbV9jbGllbnRzLnJlbW92ZShjbGllbnQpOworICAgIGlmIChtX2NsaWVudHMuaXNFbXB0eSgp
KSB7CisgICAgICAgIC8vIFdlIGhhdmUgbm8gY2xpZW50cyBhbnltb3JlLCB0aGUgY2FjaGVkIHJl
c291cmNlcyBjYW4gYmUgcHVyZ2VkIGZyb20gbWVtb3J5LgorICAgICAgICBkaWRSZW1vdmVMYXN0
Q2xpZW50KCk7CisgICAgfQorfQorCit2b2lkIEN1c3RvbUZpbHRlclByb2dyYW06Om5vdGlmeUNs
aWVudHMoKQoreworICAgIGZvciAoQ3VzdG9tRmlsdGVyUHJvZ3JhbUNsaWVudExpc3Q6Oml0ZXJh
dG9yIGl0ZXIgPSBtX2NsaWVudHMuYmVnaW4oKSwgZW5kID0gbV9jbGllbnRzLmVuZCgpOyBpdGVy
ICE9IGVuZDsgKytpdGVyKQorICAgICAgICBpdGVyLT5maXJzdC0+bm90aWZ5Q3VzdG9tRmlsdGVy
UHJvZ3JhbUxvYWRlZCh0aGlzKTsKK30KKworI2lmIEVOQUJMRShXRUJHTCkKK1Bhc3NSZWZQdHI8
Q3VzdG9tRmlsdGVyU2hhZGVyPiBDdXN0b21GaWx0ZXJQcm9ncmFtOjpjcmVhdGVTaGFkZXJXaXRo
Q29udGV4dChHcmFwaGljc0NvbnRleHQzRCogY29udGV4dCkKK3sKKyAgICBBU1NFUlQoaXNMb2Fk
ZWQoKSk7CisgICAgcmV0dXJuIEN1c3RvbUZpbHRlclNoYWRlcjo6Y3JlYXRlKGNvbnRleHQsIHZl
cnRleFNoYWRlclN0cmluZygpLCBmcmFnbWVudFNoYWRlclN0cmluZygpKTsKK30KKyNlbmRpZgor
Cit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisjZW5kaWYgLy8gRU5BQkxFKENTU19TSEFERVJTKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9DdXN0
b21GaWx0ZXJQcm9ncmFtLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0
ZXJzL0N1c3RvbUZpbHRlclByb2dyYW0uaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwLi5jNzNhNWVjCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZmlsdGVycy9DdXN0b21GaWx0ZXJQcm9ncmFtLmgKQEAgLTAsMCArMSw4MiBAQAor
LyoKKyAqIENvcHlyaWdodCAyMDExIEFkb2JlIFN5c3RlbXMgSW5jb3Jwb3JhdGVkLiBBbGwgUmln
aHRzIFJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUKKyAqICAgIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nCisgKiAgICBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogICAgY29weXJp
Z2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcKKyAq
ICAgIGRpc2NsYWltZXIgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cworICogICAgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVIg4oCcQVMgSVPigJ0gQU5E
IEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVCBIT0xERVIgQkUKKyAqIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwK
KyAqIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IKKyAqIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRgorICogVEhF
IFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZ
IE9GCisgKiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIEN1c3RvbUZpbHRlclByb2dyYW1f
aAorI2RlZmluZSBDdXN0b21GaWx0ZXJQcm9ncmFtX2gKKworI2lmIEVOQUJMRShDU1NfU0hBREVS
UykKKworI2luY2x1ZGUgPHd0Zi9IYXNoQ291bnRlZFNldC5oPgorI2luY2x1ZGUgPHd0Zi9SZWZD
b3VudGVkLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CisKK25hbWVzcGFjZSBX
ZWJDb3JlIHsKKworY2xhc3MgR3JhcGhpY3NDb250ZXh0M0Q7CitjbGFzcyBDdXN0b21GaWx0ZXJT
aGFkZXI7CitjbGFzcyBDdXN0b21GaWx0ZXJQcm9ncmFtQ2xpZW50OworCisvLyBUaGlzIGlzIHRo
ZSBiYXNlIGNsYXNzIGZvciB0aGUgU3R5bGVDdXN0b21GaWx0ZXJQcm9ncmFtIGNsYXNzIHdoaWNo
IGtub3dzIGhvdyB0byBrZWVwCisvLyByZWZlcmVuY2VzIHRvIHRoZSBjYWNoZWQgc2hhZGVycy4K
K2NsYXNzIEN1c3RvbUZpbHRlclByb2dyYW06IHB1YmxpYyBSZWZDb3VudGVkPEN1c3RvbUZpbHRl
clByb2dyYW0+IHsKK3B1YmxpYzoKKyAgICB2aXJ0dWFsIH5DdXN0b21GaWx0ZXJQcm9ncmFtKCk7
CisKKyAgICB2aXJ0dWFsIGJvb2wgaXNMb2FkZWQoKSBjb25zdCA9IDA7CisgICAgCisgICAgdm9p
ZCBhZGRDbGllbnQoQ3VzdG9tRmlsdGVyUHJvZ3JhbUNsaWVudCopOworICAgIHZvaWQgcmVtb3Zl
Q2xpZW50KEN1c3RvbUZpbHRlclByb2dyYW1DbGllbnQqKTsKKyAgICAKKyNpZiBFTkFCTEUoV0VC
R0wpCisgICAgUGFzc1JlZlB0cjxDdXN0b21GaWx0ZXJTaGFkZXI+IGNyZWF0ZVNoYWRlcldpdGhD
b250ZXh0KEdyYXBoaWNzQ29udGV4dDNEKik7CisjZW5kaWYKK3Byb3RlY3RlZDoKKyAgICAvLyBT
dHlsZUN1c3RvbUZpbHRlclByb2dyYW0gY2FuIG5vdGlmeSB0aGUgY2xpZW50cyB0aGF0IHRoZSBj
YWNoZWQgcmVzb3VyY2VzIGFyZQorICAgIC8vIGxvYWRlZCBhbmQgaXQgaXMgcmVhZHkgdG8gY3Jl
YXRlIEN1c3RvbUZpbHRlclNoYWRlciBvYmplY3RzLgorICAgIHZvaWQgbm90aWZ5Q2xpZW50cygp
OworICAgIAorICAgIHZpcnR1YWwgU3RyaW5nIHZlcnRleFNoYWRlclN0cmluZygpIGNvbnN0ID0g
MDsKKyAgICB2aXJ0dWFsIFN0cmluZyBmcmFnbWVudFNoYWRlclN0cmluZygpIGNvbnN0ID0gMDsK
KyAgICAKKyAgICB2aXJ0dWFsIHZvaWQgd2lsbEhhdmVDbGllbnRzKCkgPSAwOworICAgIHZpcnR1
YWwgdm9pZCBkaWRSZW1vdmVMYXN0Q2xpZW50KCkgPSAwOworCisgICAgLy8gS2VlcCB0aGUgY29u
c3RydWN0b3IgcHJvdGVjdGVkIHRvIHByZXZlbnQgY3JlYXRpbmcgdGhpcyBvYmplY3QgZGlyZWN0
bHkuCisgICAgQ3VzdG9tRmlsdGVyUHJvZ3JhbSgpOworCitwcml2YXRlOgorICAgIHR5cGVkZWYg
SGFzaENvdW50ZWRTZXQ8Q3VzdG9tRmlsdGVyUHJvZ3JhbUNsaWVudCo+IEN1c3RvbUZpbHRlclBy
b2dyYW1DbGllbnRMaXN0OworICAgIEN1c3RvbUZpbHRlclByb2dyYW1DbGllbnRMaXN0IG1fY2xp
ZW50czsKK307CisKK30KKworI2VuZGlmIC8vIEVOQUJMRShDU1NfU0hBREVSUykKKworI2VuZGlm
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0N1
c3RvbUZpbHRlclByb2dyYW1DbGllbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2ZpbHRlcnMvQ3VzdG9tRmlsdGVyUHJvZ3JhbUNsaWVudC5oCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAuLjM5ZmEyNTEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0N1c3RvbUZpbHRlclByb2dyYW1DbGllbnQu
aApAQCAtMCwwICsxLDUyIEBACisvKgorICogQ29weXJpZ2h0IDIwMTEgQWRvYmUgU3lzdGVtcyBJ
bmNvcnBvcmF0ZWQuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZQorICogICAgY29weXJpZ2h0IG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcKKyAqICAgIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlCisgKiAgICBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZworICogICAgZGlzY2xhaW1lciBpbiB0aGUgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzCisgKiAgICBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhP
TERFUiDigJxBUyBJU+KAnSBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUIEhP
TERFUiBCRQorICogTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLAorICogT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVT
SU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUgor
ICogVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GCisgKiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YKKyAqIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYg
Q3VzdG9tRmlsdGVyUHJvZ3JhbUNsaWVudF9oCisjZGVmaW5lIEN1c3RvbUZpbHRlclByb2dyYW1D
bGllbnRfaAorCisjaWYgRU5BQkxFKENTU19TSEFERVJTKQorCituYW1lc3BhY2UgV2ViQ29yZSB7
CisKK2NsYXNzIEN1c3RvbUZpbHRlclByb2dyYW07CisKK2NsYXNzIEN1c3RvbUZpbHRlclByb2dy
YW1DbGllbnQgeworcHVibGljOgorICAgIHZpcnR1YWwgfkN1c3RvbUZpbHRlclByb2dyYW1DbGll
bnQoKQorICAgIHsKKyAgICB9CisgICAgCisgICAgdmlydHVhbCB2b2lkIG5vdGlmeUN1c3RvbUZp
bHRlclByb2dyYW1Mb2FkZWQoQ3VzdG9tRmlsdGVyUHJvZ3JhbSopID0gMDsKK307CisKK30KKwor
I2VuZGlmIC8vIEVOQUJMRShDU1NfU0hBREVSUykKKworI2VuZGlmIC8vIEN1c3RvbUZpbHRlclBy
b2dyYW1DbGllbnRfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZmlsdGVycy9GRUN1c3RvbUZpbHRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9maWx0ZXJzL0ZFQ3VzdG9tRmlsdGVyLmNwcAppbmRleCBmYjQyNzBlLi42NjBkNTcz
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZF
Q3VzdG9tRmlsdGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9m
aWx0ZXJzL0ZFQ3VzdG9tRmlsdGVyLmNwcApAQCAtMzQsNiArMzQsNyBAQAogCiAjaW5jbHVkZSAi
Q2FjaGVkU2hhZGVyLmgiCiAjaW5jbHVkZSAiQ3VzdG9tRmlsdGVyTWVzaC5oIgorI2luY2x1ZGUg
IkN1c3RvbUZpbHRlclByb2dyYW0uaCIKICNpbmNsdWRlICJDdXN0b21GaWx0ZXJTaGFkZXIuaCIK
ICNpbmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIkRyYXdpbmdCdWZmZXIuaCIKQEAgLTcz
LDEzICs3NCwxMiBAQCBzdGF0aWMgdm9pZCBvcnRob2dvbmFsUHJvamVjdGlvbk1hdHJpeChUcmFu
c2Zvcm1hdGlvbk1hdHJpeCYgbWF0cml4LCBmbG9hdCBsZWZ0LAogICAgIG1hdHJpeC5zZXRNNDQo
MS4wZik7CiB9CiAKLUZFQ3VzdG9tRmlsdGVyOjpGRUN1c3RvbUZpbHRlcihGaWx0ZXIqIGZpbHRl
ciwgRG9jdW1lbnQqIGRvY3VtZW50LCBjb25zdCBTdHJpbmcmIHZlcnRleFNoYWRlciwgY29uc3Qg
U3RyaW5nJiBmcmFnbWVudFNoYWRlciwKK0ZFQ3VzdG9tRmlsdGVyOjpGRUN1c3RvbUZpbHRlcihG
aWx0ZXIqIGZpbHRlciwgRG9jdW1lbnQqIGRvY3VtZW50LCBQYXNzUmVmUHRyPEN1c3RvbUZpbHRl
clByb2dyYW0+IHByb2dyYW0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWdu
ZWQgbWVzaFJvd3MsIHVuc2lnbmVkIG1lc2hDb2x1bW5zLCBDdXN0b21GaWx0ZXJPcGVyYXRpb246
Ok1lc2hCb3hUeXBlIG1lc2hCb3hUeXBlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IEN1c3RvbUZpbHRlck9wZXJhdGlvbjo6TWVzaFR5cGUgbWVzaFR5cGUpCiAgICAgOiBGaWx0ZXJF
ZmZlY3QoZmlsdGVyKQogICAgICwgbV9kb2N1bWVudChkb2N1bWVudCkKLSAgICAsIG1fdmVydGV4
U2hhZGVyKHZlcnRleFNoYWRlcikKLSAgICAsIG1fZnJhZ21lbnRTaGFkZXIoZnJhZ21lbnRTaGFk
ZXIpCisgICAgLCBtX3Byb2dyYW0ocHJvZ3JhbSkKICAgICAsIG1fbWVzaFJvd3MobWVzaFJvd3Mp
CiAgICAgLCBtX21lc2hDb2x1bW5zKG1lc2hDb2x1bW5zKQogICAgICwgbV9tZXNoQm94VHlwZSht
ZXNoQm94VHlwZSkKQEAgLTg3LDExICs4NywxMSBAQCBGRUN1c3RvbUZpbHRlcjo6RkVDdXN0b21G
aWx0ZXIoRmlsdGVyKiBmaWx0ZXIsIERvY3VtZW50KiBkb2N1bWVudCwgY29uc3QgU3RyaW5nJgog
ewogfQogCi1QYXNzUmVmUHRyPEZFQ3VzdG9tRmlsdGVyPiBGRUN1c3RvbUZpbHRlcjo6Y3JlYXRl
KEZpbHRlciogZmlsdGVyLCBEb2N1bWVudCogZG9jdW1lbnQsIGNvbnN0IFN0cmluZyYgdmVydGV4
U2hhZGVyLCBjb25zdCBTdHJpbmcmIGZyYWdtZW50U2hhZGVyLAorUGFzc1JlZlB0cjxGRUN1c3Rv
bUZpbHRlcj4gRkVDdXN0b21GaWx0ZXI6OmNyZWF0ZShGaWx0ZXIqIGZpbHRlciwgRG9jdW1lbnQq
IGRvY3VtZW50LCBQYXNzUmVmUHRyPEN1c3RvbUZpbHRlclByb2dyYW0+IHByb2dyYW0sCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgbWVzaFJvd3Ms
IHVuc2lnbmVkIG1lc2hDb2x1bW5zLCBDdXN0b21GaWx0ZXJPcGVyYXRpb246Ok1lc2hCb3hUeXBl
IG1lc2hCb3hUeXBlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IEN1c3RvbUZpbHRlck9wZXJhdGlvbjo6TWVzaFR5cGUgbWVzaFR5cGUpCiB7Ci0gICAgcmV0dXJu
IGFkb3B0UmVmKG5ldyBGRUN1c3RvbUZpbHRlcihmaWx0ZXIsIGRvY3VtZW50LCB2ZXJ0ZXhTaGFk
ZXIsIGZyYWdtZW50U2hhZGVyLCBtZXNoUm93cywgbWVzaENvbHVtbnMsIG1lc2hCb3hUeXBlLCBt
ZXNoVHlwZSkpOworICAgIHJldHVybiBhZG9wdFJlZihuZXcgRkVDdXN0b21GaWx0ZXIoZmlsdGVy
LCBkb2N1bWVudCwgcHJvZ3JhbSwgbWVzaFJvd3MsIG1lc2hDb2x1bW5zLCBtZXNoQm94VHlwZSwg
bWVzaFR5cGUpKTsKIH0KIAogdm9pZCBGRUN1c3RvbUZpbHRlcjo6cGxhdGZvcm1BcHBseVNvZnR3
YXJlKCkKQEAgLTEzNywxMCArMTM3LDExIEBAIHZvaWQgRkVDdXN0b21GaWx0ZXI6OmluaXRpYWxp
emVDb250ZXh0KGNvbnN0IEludFNpemUmIGNvbnRleHRTaXplKQogICAgIGF0dHJpYnV0ZXMucHJl
c2VydmVEcmF3aW5nQnVmZmVyID0gdHJ1ZTsKICAgICBhdHRyaWJ1dGVzLnByZW11bHRpcGxpZWRB
bHBoYSA9IGZhbHNlOwogICAgIAorICAgIEFTU0VSVCghbV9jb250ZXh0LmdldCgpKTsKICAgICBt
X2NvbnRleHQgPSBHcmFwaGljc0NvbnRleHQzRDo6Y3JlYXRlKGF0dHJpYnV0ZXMsIG1fZG9jdW1l
bnQtPnZpZXcoKS0+cm9vdCgpLT5ob3N0V2luZG93KCksIEdyYXBoaWNzQ29udGV4dDNEOjpSZW5k
ZXJPZmZzY3JlZW4pOwogICAgIG1fZHJhd2luZ0J1ZmZlciA9IERyYXdpbmdCdWZmZXI6OmNyZWF0
ZShtX2NvbnRleHQuZ2V0KCksIGNvbnRleHRTaXplLCAhYXR0cmlidXRlcy5wcmVzZXJ2ZURyYXdp
bmdCdWZmZXIpOwogICAgIAotICAgIG1fc2hhZGVyID0gQ3VzdG9tRmlsdGVyU2hhZGVyOjpjcmVh
dGUobV9jb250ZXh0LmdldCgpLCBtX3ZlcnRleFNoYWRlciwgbV9mcmFnbWVudFNoYWRlcik7Cisg
ICAgbV9zaGFkZXIgPSBtX3Byb2dyYW0tPmNyZWF0ZVNoYWRlcldpdGhDb250ZXh0KG1fY29udGV4
dC5nZXQoKSk7CiAgICAgbV9tZXNoID0gQ3VzdG9tRmlsdGVyTWVzaDo6Y3JlYXRlKG1fY29udGV4
dC5nZXQoKSwgbV9tZXNoQ29sdW1ucywgbV9tZXNoUm93cywgCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIEZsb2F0UmVjdCgwLCAwLCAxLCAxKSwKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgbV9tZXNoVHlwZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFQ3VzdG9tRmlsdGVyLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFQ3VzdG9tRmlsdGVyLmgKaW5k
ZXggMmFhYWJmNi4uYTU0ZmM0NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZmlsdGVycy9GRUN1c3RvbUZpbHRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVDdXN0b21GaWx0ZXIuaApAQCAtNTAsMTEgKzUwLDEy
IEBAIGNsYXNzIERvY3VtZW50OwogY2xhc3MgRHJhd2luZ0J1ZmZlcjsKIGNsYXNzIEdyYXBoaWNz
Q29udGV4dDNEOwogY2xhc3MgSW50U2l6ZTsKK2NsYXNzIEN1c3RvbUZpbHRlclByb2dyYW07CiBj
bGFzcyBUZXh0dXJlOwogCiBjbGFzcyBGRUN1c3RvbUZpbHRlciA6IHB1YmxpYyBGaWx0ZXJFZmZl
Y3QgewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPEZFQ3VzdG9tRmlsdGVyPiBjcmVh
dGUoRmlsdGVyKiwgRG9jdW1lbnQqLCBjb25zdCBTdHJpbmcmIHZlcnRleFNoYWRlciwgY29uc3Qg
U3RyaW5nJiBmcmFnbWVudFNoYWRlciwKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxGRUN1c3RvbUZp
bHRlcj4gY3JlYXRlKEZpbHRlciosIERvY3VtZW50KiwgUGFzc1JlZlB0cjxDdXN0b21GaWx0ZXJQ
cm9ncmFtPiwKICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBtZXNoUm93cywgdW5zaWduZWQg
bWVzaENvbHVtbnMsIEN1c3RvbUZpbHRlck9wZXJhdGlvbjo6TWVzaEJveFR5cGUsIAogICAgICAg
ICAgICAgICAgICAgIEN1c3RvbUZpbHRlck9wZXJhdGlvbjo6TWVzaFR5cGUpOwogCkBAIC02NCw3
ICs2NSw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIFRleHRTdHJlYW0mIGV4dGVybmFsUmVwcmVz
ZW50YXRpb24oVGV4dFN0cmVhbSYsIGludCBpbmRlbnRpb24pIGNvbnN0OwogCiBwcml2YXRlOgot
ICAgIEZFQ3VzdG9tRmlsdGVyKEZpbHRlciosIERvY3VtZW50KiwgY29uc3QgU3RyaW5nJiB2ZXJ0
ZXhTaGFkZXIsIGNvbnN0IFN0cmluZyYgZnJhZ21lbnRTaGFkZXIsCisgICAgRkVDdXN0b21GaWx0
ZXIoRmlsdGVyKiwgRG9jdW1lbnQqLCBQYXNzUmVmUHRyPEN1c3RvbUZpbHRlclByb2dyYW0+LAog
ICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIG1lc2hSb3dzLCB1bnNpZ25lZCBtZXNoQ29sdW1u
cywgQ3VzdG9tRmlsdGVyT3BlcmF0aW9uOjpNZXNoQm94VHlwZSwgCiAgICAgICAgICAgICAgICAg
ICAgQ3VzdG9tRmlsdGVyT3BlcmF0aW9uOjpNZXNoVHlwZSk7CiAgICAgCkBAIC04MSw5ICs4Miw4
IEBAIHByaXZhdGU6CiAgICAgUmVmUHRyPEN1c3RvbUZpbHRlclNoYWRlcj4gbV9zaGFkZXI7CiAg
ICAgUmVmUHRyPEN1c3RvbUZpbHRlck1lc2g+IG1fbWVzaDsKICAgICBJbnRTaXplIG1fY29udGV4
dFNpemU7Ci0gICAgCi0gICAgU3RyaW5nIG1fdmVydGV4U2hhZGVyOwotICAgIFN0cmluZyBtX2Zy
YWdtZW50U2hhZGVyOworCisgICAgUmVmUHRyPEN1c3RvbUZpbHRlclByb2dyYW0+IG1fcHJvZ3Jh
bTsKIAogICAgIHVuc2lnbmVkIG1fbWVzaFJvd3M7CiAgICAgdW5zaWduZWQgbV9tZXNoQ29sdW1u
czsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9GaWx0ZXJFZmZlY3RSZW5k
ZXJlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvRmlsdGVyRWZmZWN0UmVuZGVyZXIu
Y3BwCmluZGV4IDFjYzQ1MDYuLjhhMDY4MDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9GaWx0ZXJFZmZlY3RSZW5kZXJlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL0ZpbHRlckVmZmVjdFJlbmRlcmVyLmNwcApAQCAtNDEsNyArNDEsNyBAQAogI2luY2x1
ZGUgPHd0Zi9NYXRoRXh0cmFzLmg+CiAKICNpZiBFTkFCTEUoQ1NTX1NIQURFUlMpICYmIEVOQUJM
RShXRUJHTCkKLSNpbmNsdWRlICJDYWNoZWRTaGFkZXIuaCIKKyNpbmNsdWRlICJDdXN0b21GaWx0
ZXJQcm9ncmFtLmgiCiAjaW5jbHVkZSAiQ3VzdG9tRmlsdGVyT3BlcmF0aW9uLmgiCiAjaW5jbHVk
ZSAiRkVDdXN0b21GaWx0ZXIuaCIKICNpbmNsdWRlICJTZXR0aW5ncy5oIgpAQCAtODQsNiArODQs
OSBAQCBGaWx0ZXJFZmZlY3RSZW5kZXJlcjo6RmlsdGVyRWZmZWN0UmVuZGVyZXIoRmlsdGVyRWZm
ZWN0T2JzZXJ2ZXIqIG9ic2VydmVyKQogCiBGaWx0ZXJFZmZlY3RSZW5kZXJlcjo6fkZpbHRlckVm
ZmVjdFJlbmRlcmVyKCkKIHsKKyNpZiBFTkFCTEUoQ1NTX1NIQURFUlMpCisgICAgcmVtb3ZlQ3Vz
dG9tRmlsdGVyQ2xpZW50cygpOworI2VuZGlmCiB9CiAKIEdyYXBoaWNzQ29udGV4dCogRmlsdGVy
RWZmZWN0UmVuZGVyZXI6OmlucHV0Q29udGV4dCgpCkBAIC05Niw3ICs5OSw3IEBAIHZvaWQgRmls
dGVyRWZmZWN0UmVuZGVyZXI6OmJ1aWxkKERvY3VtZW50KiBkb2N1bWVudCwgY29uc3QgRmlsdGVy
T3BlcmF0aW9ucyYgb3BlCiAjaWYgIUVOQUJMRShDU1NfU0hBREVSUykgfHwgIUVOQUJMRShXRUJH
TCkKICAgICBVTlVTRURfUEFSQU0oZG9jdW1lbnQpOwogI2Vsc2UKLSAgICBDYWNoZWRTaGFkZXJM
aXN0IGNhY2hlZFNoYWRlcnM7CisgICAgQ3VzdG9tRmlsdGVyUHJvZ3JhbUxpc3QgY2FjaGVkQ3Vz
dG9tRmlsdGVyUHJvZ3JhbXM7CiAjZW5kaWYKIAogICAgIG1fZWZmZWN0cy5jbGVhcigpOwpAQCAt
MjQ4LDMyICsyNTEsMTEgQEAgdm9pZCBGaWx0ZXJFZmZlY3RSZW5kZXJlcjo6YnVpbGQoRG9jdW1l
bnQqIGRvY3VtZW50LCBjb25zdCBGaWx0ZXJPcGVyYXRpb25zJiBvcGUKICAgICAgICAgICAgICAg
ICBjb250aW51ZTsKICAgICAgICAgICAgIAogICAgICAgICAgICAgQ3VzdG9tRmlsdGVyT3BlcmF0
aW9uKiBjdXN0b21GaWx0ZXJPcGVyYXRpb24gPSBzdGF0aWNfY2FzdDxDdXN0b21GaWx0ZXJPcGVy
YXRpb24qPihmaWx0ZXJPcGVyYXRpb24pOwotICAgICAgICAgICAgCi0gICAgICAgICAgICAvLyBD
aGVjayB0aGF0IHRoZSBmaWx0ZXJzIGFyZSBhbHJlYWR5IGxvYWRlZC4gSWYgbm90IGp1c3Qgc2tp
cCB0aGVtIGhlcmUuCi0gICAgICAgICAgICBTdHJpbmcgdmVydGV4U2hhZGVyLCBmcmFnbWVudFNo
YWRlcjsKLSAgICAgICAgICAgIGJvb2wgc2hhZGVyc0xvYWRlZCA9IHRydWU7Ci0gICAgICAgICAg
ICBpZiAoY3VzdG9tRmlsdGVyT3BlcmF0aW9uLT52ZXJ0ZXhTaGFkZXIoKSkgewotICAgICAgICAg
ICAgICAgIENhY2hlZFNoYWRlciogY2FjaGVkU2hhZGVyID0gY3VzdG9tRmlsdGVyT3BlcmF0aW9u
LT52ZXJ0ZXhTaGFkZXIoKS0+Y2FjaGVkU2hhZGVyKCk7Ci0gICAgICAgICAgICAgICAgQVNTRVJU
KGNhY2hlZFNoYWRlcik7Ci0gICAgICAgICAgICAgICAgY2FjaGVkU2hhZGVycy5hcHBlbmQoY2Fj
aGVkU2hhZGVyKTsKLSAgICAgICAgICAgICAgICBjYWNoZWRTaGFkZXItPmFkZENsaWVudCh0aGlz
KTsKLSAgICAgICAgICAgICAgICBpZiAoY2FjaGVkU2hhZGVyLT5pc0xvYWRlZCgpKQotICAgICAg
ICAgICAgICAgICAgICB2ZXJ0ZXhTaGFkZXIgPSBjYWNoZWRTaGFkZXItPnNoYWRlclN0cmluZygp
OwotICAgICAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICAgICAgc2hhZGVyc0xvYWRl
ZCA9IGZhbHNlOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYgKGN1c3RvbUZpbHRlck9w
ZXJhdGlvbi0+ZnJhZ21lbnRTaGFkZXIoKSkgewotICAgICAgICAgICAgICAgIENhY2hlZFNoYWRl
ciogY2FjaGVkU2hhZGVyID0gY3VzdG9tRmlsdGVyT3BlcmF0aW9uLT5mcmFnbWVudFNoYWRlcigp
LT5jYWNoZWRTaGFkZXIoKTsKLSAgICAgICAgICAgICAgICBBU1NFUlQoY2FjaGVkU2hhZGVyKTsK
LSAgICAgICAgICAgICAgICBjYWNoZWRTaGFkZXJzLmFwcGVuZChjYWNoZWRTaGFkZXIpOwotICAg
ICAgICAgICAgICAgIGNhY2hlZFNoYWRlci0+YWRkQ2xpZW50KHRoaXMpOwotICAgICAgICAgICAg
ICAgIGlmIChjYWNoZWRTaGFkZXItPmlzTG9hZGVkKCkpCi0gICAgICAgICAgICAgICAgICAgIGZy
YWdtZW50U2hhZGVyID0gY2FjaGVkU2hhZGVyLT5zaGFkZXJTdHJpbmcoKTsKLSAgICAgICAgICAg
ICAgICBlbHNlCi0gICAgICAgICAgICAgICAgICAgIHNoYWRlcnNMb2FkZWQgPSBmYWxzZTsKLSAg
ICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmIChzaGFkZXJzTG9hZGVkKSB7Ci0gICAgICAgICAg
ICAgICAgZWZmZWN0ID0gRkVDdXN0b21GaWx0ZXI6OmNyZWF0ZSh0aGlzLCBkb2N1bWVudCwgdmVy
dGV4U2hhZGVyLCBmcmFnbWVudFNoYWRlciwKKyAgICAgICAgICAgIFJlZlB0cjxDdXN0b21GaWx0
ZXJQcm9ncmFtPiBwcm9ncmFtID0gY3VzdG9tRmlsdGVyT3BlcmF0aW9uLT5wcm9ncmFtKCk7Cisg
ICAgICAgICAgICBjYWNoZWRDdXN0b21GaWx0ZXJQcm9ncmFtcy5hcHBlbmQocHJvZ3JhbSk7Cisg
ICAgICAgICAgICBwcm9ncmFtLT5hZGRDbGllbnQodGhpcyk7CisgICAgICAgICAgICBpZiAocHJv
Z3JhbS0+aXNMb2FkZWQoKSkgeworICAgICAgICAgICAgICAgIGVmZmVjdCA9IEZFQ3VzdG9tRmls
dGVyOjpjcmVhdGUodGhpcywgZG9jdW1lbnQsIHByb2dyYW0sCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdXN0b21GaWx0ZXJPcGVyYXRpb24tPm1lc2hS
b3dzKCksIGN1c3RvbUZpbHRlck9wZXJhdGlvbi0+bWVzaENvbHVtbnMoKSwKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN1c3RvbUZpbHRlck9wZXJhdGlv
bi0+bWVzaEJveFR5cGUoKSwgY3VzdG9tRmlsdGVyT3BlcmF0aW9uLT5tZXNoVHlwZSgpKTsKICAg
ICAgICAgICAgIH0KQEAgLTMwNCwxNyArMjg2LDI0IEBAIHZvaWQgRmlsdGVyRWZmZWN0UmVuZGVy
ZXI6OmJ1aWxkKERvY3VtZW50KiBkb2N1bWVudCwgY29uc3QgRmlsdGVyT3BlcmF0aW9ucyYgb3Bl
CiAgICAgc2V0TWF4RWZmZWN0UmVjdHMobV9zb3VyY2VEcmF3aW5nUmVnaW9uKTsKICAgICAKICNp
ZiBFTkFCTEUoQ1NTX1NIQURFUlMpICYmIEVOQUJMRShXRUJHTCkKLSAgICBmb3IgKENhY2hlZFNo
YWRlckxpc3Q6Oml0ZXJhdG9yIGl0ZXIgPSBtX2NhY2hlZFNoYWRlcnMuYmVnaW4oKSwgZW5kID0g
bV9jYWNoZWRTaGFkZXJzLmVuZCgpOyBpdGVyICE9IGVuZDsgKytpdGVyKQotICAgICAgICBpdGVy
LT5nZXQoKS0+cmVtb3ZlQ2xpZW50KHRoaXMpOwotICAgIG1fY2FjaGVkU2hhZGVycy5zd2FwKGNh
Y2hlZFNoYWRlcnMpOworICAgIHJlbW92ZUN1c3RvbUZpbHRlckNsaWVudHMoKTsKKyAgICBtX2Nh
Y2hlZEN1c3RvbUZpbHRlclByb2dyYW1zLnN3YXAoY2FjaGVkQ3VzdG9tRmlsdGVyUHJvZ3JhbXMp
OwogI2VuZGlmCiB9CiAKLXZvaWQgRmlsdGVyRWZmZWN0UmVuZGVyZXI6Om5vdGlmeUZpbmlzaGVk
KENhY2hlZFJlc291cmNlKikKKyNpZiBFTkFCTEUoQ1NTX1NIQURFUlMpCit2b2lkIEZpbHRlckVm
ZmVjdFJlbmRlcmVyOjpub3RpZnlDdXN0b21GaWx0ZXJQcm9ncmFtTG9hZGVkKEN1c3RvbUZpbHRl
clByb2dyYW0qKQogewogICAgIG1fb2JzZXJ2ZXItPmZpbHRlck5lZWRzUmVwYWludCgpOwogfQog
Cit2b2lkIEZpbHRlckVmZmVjdFJlbmRlcmVyOjpyZW1vdmVDdXN0b21GaWx0ZXJDbGllbnRzKCkK
K3sKKyAgICBmb3IgKEN1c3RvbUZpbHRlclByb2dyYW1MaXN0OjppdGVyYXRvciBpdGVyID0gbV9j
YWNoZWRDdXN0b21GaWx0ZXJQcm9ncmFtcy5iZWdpbigpLCBlbmQgPSBtX2NhY2hlZEN1c3RvbUZp
bHRlclByb2dyYW1zLmVuZCgpOyBpdGVyICE9IGVuZDsgKytpdGVyKQorICAgICAgICBpdGVyLT5n
ZXQoKS0+cmVtb3ZlQ2xpZW50KHRoaXMpOworfQorI2VuZGlmCisKIHZvaWQgRmlsdGVyRWZmZWN0
UmVuZGVyZXI6OnByZXBhcmUoKQogewogICAgIC8vIEF0IHRoaXMgcG9pbnQgdGhlIGVmZmVjdCBj
aGFpbiBoYXMgYmVlbiBidWlsdCwgYW5kIHRoZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL0ZpbHRlckVmZmVjdFJlbmRlcmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvRmlsdGVyRWZmZWN0UmVuZGVyZXIuaAppbmRleCA4MDFhODBiLi4wMzM1OGEwIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvRmlsdGVyRWZmZWN0UmVuZGVyZXIuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvRmlsdGVyRWZmZWN0UmVuZGVyZXIuaApAQCAtMjgs
OCArMjgsNiBAQAogCiAjaWYgRU5BQkxFKENTU19GSUxURVJTKQogCi0jaW5jbHVkZSAiQ2FjaGVk
UmVzb3VyY2VDbGllbnQuaCIKLSNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZUhhbmRsZS5oIgogI2lu
Y2x1ZGUgIkZpbHRlci5oIgogI2luY2x1ZGUgIkZpbHRlckVmZmVjdC5oIgogI2luY2x1ZGUgIkZp
bHRlck9wZXJhdGlvbnMuaCIKQEAgLTQzLDE0ICs0MSwyMiBAQAogI2luY2x1ZGUgPHd0Zi9SZWZD
b3VudGVkLmg+CiAjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgogCisjaWYgRU5BQkxFKENTU19TSEFE
RVJTKQorI2luY2x1ZGUgIkN1c3RvbUZpbHRlclByb2dyYW1DbGllbnQuaCIKKyNlbmRpZgorCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKIHR5cGVkZWYgVmVjdG9yPFJlZlB0cjxGaWx0ZXJFZmZlY3Q+
ID4gRmlsdGVyRWZmZWN0TGlzdDsKK2NsYXNzIEN1c3RvbUZpbHRlclByb2dyYW07CiBjbGFzcyBE
b2N1bWVudDsKIGNsYXNzIEZpbHRlckVmZmVjdE9ic2VydmVyOwotY2xhc3MgQ2FjaGVkU2hhZGVy
OwogCi1jbGFzcyBGaWx0ZXJFZmZlY3RSZW5kZXJlciA6IHB1YmxpYyBGaWx0ZXIsIHB1YmxpYyBD
YWNoZWRSZXNvdXJjZUNsaWVudCB7CitjbGFzcyBGaWx0ZXJFZmZlY3RSZW5kZXJlciA6IHB1Ymxp
YyBGaWx0ZXIKKyNpZiBFTkFCTEUoQ1NTX1NIQURFUlMpCisgICAgLCBwdWJsaWMgQ3VzdG9tRmls
dGVyUHJvZ3JhbUNsaWVudAorI2VuZGlmCit7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7
CiBwdWJsaWM6CiAgICAgc3RhdGljIFBhc3NSZWZQdHI8RmlsdGVyRWZmZWN0UmVuZGVyZXI+IGNy
ZWF0ZShGaWx0ZXJFZmZlY3RPYnNlcnZlciogb2JzZXJ2ZXIpCkBAIC03OSw5ICs4NSwxMyBAQCBw
dWJsaWM6CiAgICAgCiAgICAgSW50UmVjdCBvdXRwdXRSZWN0KCkgY29uc3QgeyByZXR1cm4gbGFz
dEVmZmVjdCgpLT5oYXNSZXN1bHQoKSA/IGxhc3RFZmZlY3QoKS0+cmVxdWVzdGVkUmVnaW9uT2ZJ
bnB1dEltYWdlRGF0YShJbnRSZWN0KG1fZmlsdGVyUmVnaW9uKSkgOiBJbnRSZWN0KCk7IH0KIAot
ICAgIHZpcnR1YWwgdm9pZCBub3RpZnlGaW5pc2hlZChDYWNoZWRSZXNvdXJjZSopOwotICAgIAog
cHJpdmF0ZToKKyNpZiBFTkFCTEUoQ1NTX1NIQURFUlMpCisgICAgLy8gSW1wbGVtZW50YXRpb24g
b2YgdGhlIEN1c3RvbUZpbHRlclByb2dyYW1DbGllbnQgaW50ZXJmYWNlLgorICAgIHZpcnR1YWwg
dm9pZCBub3RpZnlDdXN0b21GaWx0ZXJQcm9ncmFtTG9hZGVkKEN1c3RvbUZpbHRlclByb2dyYW0q
KTsKKyAgICAKKyAgICB2b2lkIHJlbW92ZUN1c3RvbUZpbHRlckNsaWVudHMoKTsKKyNlbmRpZgog
CiAgICAgdm9pZCBzZXRNYXhFZmZlY3RSZWN0cyhjb25zdCBGbG9hdFJlY3QmIGVmZmVjdFJlY3Qp
CiAgICAgewpAQCAtMTA4LDggKzExOCw4IEBAIHByaXZhdGU6CiAgICAgRmlsdGVyRWZmZWN0T2Jz
ZXJ2ZXIqIG1fb2JzZXJ2ZXI7IC8vIE5vIG5lZWQgZm9yIGEgc3Ryb25nIHJlZmVyZW5jZXMgaGVy
ZS4gSXQgb3ducyB1cy4KICAgICAKICNpZiBFTkFCTEUoQ1NTX1NIQURFUlMpICYmIEVOQUJMRShX
RUJHTCkKLSAgICB0eXBlZGVmIFZlY3RvcjxDYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRTaGFk
ZXI+ID4gQ2FjaGVkU2hhZGVyTGlzdDsKLSAgICBDYWNoZWRTaGFkZXJMaXN0IG1fY2FjaGVkU2hh
ZGVyczsKKyAgICB0eXBlZGVmIFZlY3RvcjxSZWZQdHI8Q3VzdG9tRmlsdGVyUHJvZ3JhbT4gPiBD
dXN0b21GaWx0ZXJQcm9ncmFtTGlzdDsKKyAgICBDdXN0b21GaWx0ZXJQcm9ncmFtTGlzdCBtX2Nh
Y2hlZEN1c3RvbUZpbHRlclByb2dyYW1zOwogI2VuZGlmCiAgICAgCiAgICAgYm9vbCBtX2dyYXBo
aWNzQnVmZmVyQXR0YWNoZWQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
c3R5bGUvQ3VzdG9tRmlsdGVyT3BlcmF0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
c3R5bGUvQ3VzdG9tRmlsdGVyT3BlcmF0aW9uLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDk5NDY5YmUuLjAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxl
L0N1c3RvbUZpbHRlck9wZXJhdGlvbi5oCisrKyAvZGV2L251bGwKQEAgLTEsMTE0ICswLDAgQEAK
LS8qCi0gKiBDb3B5cmlnaHQgMjAxMSBBZG9iZSBTeXN0ZW1zIEluY29ycG9yYXRlZC4gQWxsIFJp
Z2h0cyBSZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1l
dDoKLSAqCi0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlCi0gKiAgICBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZwotICogICAgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKLSAqICAgIGNvcHly
aWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nCi0g
KiAgICBkaXNjbGFpbWVyIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMKLSAqICAgIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSIOKAnEFTIElT4oCdIEFO
RCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQgSE9MREVSIEJFCi0gKiBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
Ci0gKiBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLSAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SCi0gKiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YKLSAqIFRI
RSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRgotICogU1VDSCBEQU1BR0UuCi0gKi8KLQotI2lmbmRlZiBDdXN0b21GaWx0ZXJPcGVyYXRp
b25faAotI2RlZmluZSBDdXN0b21GaWx0ZXJPcGVyYXRpb25faAotCi0jaWYgRU5BQkxFKENTU19T
SEFERVJTKQotCi0jaW5jbHVkZSAiRmlsdGVyT3BlcmF0aW9uLmgiCi0jaW5jbHVkZSAiU3R5bGVT
aGFkZXIuaCIKLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi0vLyBDU1MgU2hhZGVycwotCi1jbGFz
cyBDdXN0b21GaWx0ZXJPcGVyYXRpb24gOiBwdWJsaWMgRmlsdGVyT3BlcmF0aW9uIHsKLXB1Ymxp
YzoKLSAgICBlbnVtIE1lc2hCb3hUeXBlIHsKLSAgICAgICAgRklMVEVSX0JPWCwKLSAgICAgICAg
Qk9SREVSX0JPWCwKLSAgICAgICAgUEFERElOR19CT1gsCi0gICAgICAgIENPTlRFTlRfQk9YCi0g
ICAgfTsKLSAgICAKLSAgICBlbnVtIE1lc2hUeXBlIHsKLSAgICAgICAgQVRUQUNIRUQsCi0gICAg
ICAgIERFVEFDSEVECi0gICAgfTsKLSAgICAKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxDdXN0b21G
aWx0ZXJPcGVyYXRpb24+IGNyZWF0ZShQYXNzUmVmUHRyPFN0eWxlU2hhZGVyPiB2ZXJ0ZXhTaGFk
ZXIsIFBhc3NSZWZQdHI8U3R5bGVTaGFkZXI+IGZyYWdtZW50U2hhZGVyLAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIG1lc2hSb3dz
LCB1bnNpZ25lZCBtZXNoQ29sdW1ucywgTWVzaEJveFR5cGUgbWVzaEJveFR5cGUsIE1lc2hUeXBl
IG1lc2hUeXBlKQotICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBDdXN0b21GaWx0
ZXJPcGVyYXRpb24odmVydGV4U2hhZGVyLCBmcmFnbWVudFNoYWRlciwgbWVzaFJvd3MsIG1lc2hD
b2x1bW5zLCBtZXNoQm94VHlwZSwgbWVzaFR5cGUpKTsKLSAgICB9Ci0gICAgCi0gICAgdm9pZCBz
ZXRWZXJ0ZXhTaGFkZXIoUGFzc1JlZlB0cjxTdHlsZVNoYWRlcj4gc2hhZGVyKSB7IG1fdmVydGV4
U2hhZGVyID0gc2hhZGVyOyB9Ci0gICAgU3R5bGVTaGFkZXIqIHZlcnRleFNoYWRlcigpIGNvbnN0
IHsgcmV0dXJuIG1fdmVydGV4U2hhZGVyLmdldCgpOyB9Ci0gICAgCi0gICAgdm9pZCBzZXRGcmFn
bWVudFNoYWRlcihQYXNzUmVmUHRyPFN0eWxlU2hhZGVyPiBzaGFkZXIpIHsgbV9mcmFnbWVudFNo
YWRlciA9IHNoYWRlcjsgfQotICAgIFN0eWxlU2hhZGVyKiBmcmFnbWVudFNoYWRlcigpIGNvbnN0
IHsgcmV0dXJuIG1fZnJhZ21lbnRTaGFkZXIuZ2V0KCk7IH0KLSAgICAKLSAgICB1bnNpZ25lZCBt
ZXNoUm93cygpIGNvbnN0IHsgcmV0dXJuIG1fbWVzaFJvd3M7IH0KLSAgICB1bnNpZ25lZCBtZXNo
Q29sdW1ucygpIGNvbnN0IHsgcmV0dXJuIG1fbWVzaENvbHVtbnM7IH0KLSAgICAKLSAgICBNZXNo
Qm94VHlwZSBtZXNoQm94VHlwZSgpIGNvbnN0IHsgcmV0dXJuIG1fbWVzaEJveFR5cGU7IH0KLSAg
ICBNZXNoVHlwZSBtZXNoVHlwZSgpIGNvbnN0IHsgcmV0dXJuIG1fbWVzaFR5cGU7IH0KLSAgICAK
LXByaXZhdGU6Ci0gICAgdmlydHVhbCBib29sIG9wZXJhdG9yPT0oY29uc3QgRmlsdGVyT3BlcmF0
aW9uJiBvKSBjb25zdAotICAgIHsKLSAgICAgICAgaWYgKCFpc1NhbWVUeXBlKG8pKQotICAgICAg
ICAgICAgcmV0dXJuIGZhbHNlOwotCi0gICAgICAgIGNvbnN0IEN1c3RvbUZpbHRlck9wZXJhdGlv
biogb3RoZXIgPSBzdGF0aWNfY2FzdDxjb25zdCBDdXN0b21GaWx0ZXJPcGVyYXRpb24qPigmbyk7
Ci0gICAgICAgIHJldHVybiBtX3ZlcnRleFNoYWRlci5nZXQoKSA9PSBvdGhlci0+bV92ZXJ0ZXhT
aGFkZXIuZ2V0KCkKLSAgICAgICAgICAgICAgICYmIG1fZnJhZ21lbnRTaGFkZXIuZ2V0KCkgPT0g
b3RoZXItPm1fZnJhZ21lbnRTaGFkZXIuZ2V0KCkKLSAgICAgICAgICAgICAgICYmIG1fbWVzaFJv
d3MgPT0gb3RoZXItPm1fbWVzaFJvd3MKLSAgICAgICAgICAgICAgICYmIG1fbWVzaENvbHVtbnMg
PT0gb3RoZXItPm1fbWVzaENvbHVtbnMKLSAgICAgICAgICAgICAgICYmIG1fbWVzaEJveFR5cGUg
PT0gb3RoZXItPm1fbWVzaEJveFR5cGUKLSAgICAgICAgICAgICAgICYmIG1fbWVzaFR5cGUgPT0g
b3RoZXItPm1fbWVzaFR5cGU7Ci0gICAgfQotICAgIAotICAgIEN1c3RvbUZpbHRlck9wZXJhdGlv
bihQYXNzUmVmUHRyPFN0eWxlU2hhZGVyPiB2ZXJ0ZXhTaGFkZXIsIFBhc3NSZWZQdHI8U3R5bGVT
aGFkZXI+IGZyYWdtZW50U2hhZGVyLAotICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25l
ZCBtZXNoUm93cywgdW5zaWduZWQgbWVzaENvbHVtbnMsIE1lc2hCb3hUeXBlIG1lc2hCb3hUeXBl
LCBNZXNoVHlwZSBtZXNoVHlwZSkKLSAgICAgICAgOiBGaWx0ZXJPcGVyYXRpb24oQ1VTVE9NKQot
ICAgICAgICAsIG1fdmVydGV4U2hhZGVyKHZlcnRleFNoYWRlcikKLSAgICAgICAgLCBtX2ZyYWdt
ZW50U2hhZGVyKGZyYWdtZW50U2hhZGVyKQotICAgICAgICAsIG1fbWVzaFJvd3MobWVzaFJvd3Mp
Ci0gICAgICAgICwgbV9tZXNoQ29sdW1ucyhtZXNoQ29sdW1ucykKLSAgICAgICAgLCBtX21lc2hC
b3hUeXBlKG1lc2hCb3hUeXBlKQotICAgICAgICAsIG1fbWVzaFR5cGUobWVzaFR5cGUpCi0gICAg
ewotICAgIH0KLQotICAgIFJlZlB0cjxTdHlsZVNoYWRlcj4gbV92ZXJ0ZXhTaGFkZXI7Ci0gICAg
UmVmUHRyPFN0eWxlU2hhZGVyPiBtX2ZyYWdtZW50U2hhZGVyOwotICAgIAotICAgIHVuc2lnbmVk
IG1fbWVzaFJvd3M7Ci0gICAgdW5zaWduZWQgbV9tZXNoQ29sdW1uczsKLSAgICBNZXNoQm94VHlw
ZSBtX21lc2hCb3hUeXBlOwotICAgIE1lc2hUeXBlIG1fbWVzaFR5cGU7Ci19OwotCi19IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCi0KLSNlbmRpZiAvLyBFTkFCTEUoQ1NTX1NIQURFUlMpCi0KLSNlbmRp
ZiAvLyBDdXN0b21GaWx0ZXJPcGVyYXRpb25faApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL3N0eWxlL1N0eWxlQ3VzdG9tRmlsdGVyUHJvZ3JhbS5oIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlQ3VzdG9tRmlsdGVyUHJvZ3JhbS5oCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmNmNTU5ZDYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVDdXN0b21GaWx0ZXJQcm9ncmFtLmgKQEAg
LTAsMCArMSwxNDAgQEAKKy8qCisgKiBDb3B5cmlnaHQgMjAxMSBBZG9iZSBTeXN0ZW1zIEluY29y
cG9yYXRlZC4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqCisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlCisgKiAgICBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZworICogICAgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUKKyAqICAgIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nCisgKiAgICBkaXNjbGFpbWVyIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMKKyAqICAgIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVS
IOKAnEFTIElT4oCdIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQgSE9MREVS
IEJFCisgKiBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksCisgKiBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVT
UyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SCisgKiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YKKyAqIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRgorICogU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBTdHls
ZUN1c3RvbUZpbHRlclByb2dyYW1faAorI2RlZmluZSBTdHlsZUN1c3RvbUZpbHRlclByb2dyYW1f
aAorCisjaWYgRU5BQkxFKENTU19TSEFERVJTKQorI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlQ2xp
ZW50LmgiCisjaW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VIYW5kbGUuaCIKKyNpbmNsdWRlICJDYWNo
ZWRTaGFkZXIuaCIKKyNpbmNsdWRlICJDdXN0b21GaWx0ZXJQcm9ncmFtLmgiCisjaW5jbHVkZSAi
U3R5bGVTaGFkZXIuaCIKKyNpbmNsdWRlIDx3dGYvRmFzdEFsbG9jQmFzZS5oPgorCituYW1lc3Bh
Y2UgV2ViQ29yZSB7CisKKy8vIENTUyBTaGFkZXJzCisKK2NsYXNzIFN0eWxlQ3VzdG9tRmlsdGVy
UHJvZ3JhbSA6IHB1YmxpYyBDdXN0b21GaWx0ZXJQcm9ncmFtLCBwdWJsaWMgQ2FjaGVkUmVzb3Vy
Y2VDbGllbnQgeworICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOworcHVibGljOgorICAgIHN0
YXRpYyBQYXNzUmVmUHRyPFN0eWxlQ3VzdG9tRmlsdGVyUHJvZ3JhbT4gY3JlYXRlKFBhc3NSZWZQ
dHI8U3R5bGVTaGFkZXI+IHZlcnRleFNoYWRlciwgUGFzc1JlZlB0cjxTdHlsZVNoYWRlcj4gZnJh
Z21lbnRTaGFkZXIpCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IFN0eWxlQ3Vz
dG9tRmlsdGVyUHJvZ3JhbSh2ZXJ0ZXhTaGFkZXIsIGZyYWdtZW50U2hhZGVyKSk7CisgICAgfQor
ICAgIAorICAgIHZvaWQgc2V0VmVydGV4U2hhZGVyKFBhc3NSZWZQdHI8U3R5bGVTaGFkZXI+IHNo
YWRlcikgeyBtX3ZlcnRleFNoYWRlciA9IHNoYWRlcjsgfQorICAgIFN0eWxlU2hhZGVyKiB2ZXJ0
ZXhTaGFkZXIoKSBjb25zdCB7IHJldHVybiBtX3ZlcnRleFNoYWRlci5nZXQoKTsgfQorICAgIAor
ICAgIHZvaWQgc2V0RnJhZ21lbnRTaGFkZXIoUGFzc1JlZlB0cjxTdHlsZVNoYWRlcj4gc2hhZGVy
KSB7IG1fZnJhZ21lbnRTaGFkZXIgPSBzaGFkZXI7IH0KKyAgICBTdHlsZVNoYWRlciogZnJhZ21l
bnRTaGFkZXIoKSBjb25zdCB7IHJldHVybiBtX2ZyYWdtZW50U2hhZGVyLmdldCgpOyB9CisgICAg
CisgICAgdmlydHVhbCBTdHJpbmcgdmVydGV4U2hhZGVyU3RyaW5nKCkgY29uc3QKKyAgICB7Cisg
ICAgICAgIEFTU0VSVChpc0xvYWRlZCgpKTsKKyAgICAgICAgcmV0dXJuIG1fY2FjaGVkVmVydGV4
U2hhZGVyLmdldCgpID8gbV9jYWNoZWRWZXJ0ZXhTaGFkZXItPnNoYWRlclN0cmluZygpIDogU3Ry
aW5nKCk7CisgICAgfQorICAgIAorICAgIHZpcnR1YWwgU3RyaW5nIGZyYWdtZW50U2hhZGVyU3Ry
aW5nKCkgY29uc3QKKyAgICB7CisgICAgICAgIEFTU0VSVChpc0xvYWRlZCgpKTsKKyAgICAgICAg
cmV0dXJuIG1fY2FjaGVkRnJhZ21lbnRTaGFkZXIuZ2V0KCkgPyBtX2NhY2hlZEZyYWdtZW50U2hh
ZGVyLT5zaGFkZXJTdHJpbmcoKSA6IFN0cmluZygpOworICAgIH0KKworICAgIHZpcnR1YWwgYm9v
bCBpc0xvYWRlZCgpIGNvbnN0CisgICAgeworICAgICAgICAvLyBEbyBub3QgdXNlIHRoZSBDYWNo
ZWRSZXNvdXJjZTppc0xvYWRlZCBtZXRob2QgaGVyZSwgYmVjYXVzZSBpdCBhY3R1YWxseSBtZWFu
cyAhaXNMb2FkaW5nKCksCisgICAgICAgIC8vIHNvIG1pc3NpbmcgYW5kIGNhbmNlbGVkIHJlc291
cmNlcyB3aWxsIGhhdmUgaXNMb2FkZWQgc2V0IHRvIHRydWUsIGV2ZW4gaWYgdGhleSBhcmUgbm90
IGxvYWRlZCB5ZXQuCisgICAgICAgIHJldHVybiAoIW1fY2FjaGVkVmVydGV4U2hhZGVyLmdldCgp
IHx8IG1faXNWZXJ0ZXhTaGFkZXJMb2FkZWQpCisgICAgICAgICAgICAmJiAoIW1fY2FjaGVkRnJh
Z21lbnRTaGFkZXIuZ2V0KCkgfHwgbV9pc0ZyYWdtZW50U2hhZGVyTG9hZGVkKTsKKyAgICB9CisK
KyAgICB2aXJ0dWFsIHZvaWQgd2lsbEhhdmVDbGllbnRzKCkKKyAgICB7CisgICAgICAgIGlmICht
X3ZlcnRleFNoYWRlcikgeworICAgICAgICAgICAgbV9jYWNoZWRWZXJ0ZXhTaGFkZXIgPSBtX3Zl
cnRleFNoYWRlci0+Y2FjaGVkU2hhZGVyKCk7CisgICAgICAgICAgICBtX2NhY2hlZFZlcnRleFNo
YWRlci0+YWRkQ2xpZW50KHRoaXMpOworICAgICAgICB9CisgICAgICAgIGlmIChtX2ZyYWdtZW50
U2hhZGVyKSB7CisgICAgICAgICAgICBtX2NhY2hlZEZyYWdtZW50U2hhZGVyID0gbV9mcmFnbWVu
dFNoYWRlci0+Y2FjaGVkU2hhZGVyKCk7CisgICAgICAgICAgICBtX2NhY2hlZEZyYWdtZW50U2hh
ZGVyLT5hZGRDbGllbnQodGhpcyk7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgdmlydHVh
bCB2b2lkIGRpZFJlbW92ZUxhc3RDbGllbnQoKQorICAgIHsKKyAgICAgICAgaWYgKG1fY2FjaGVk
VmVydGV4U2hhZGVyLmdldCgpKSB7CisgICAgICAgICAgICBtX2NhY2hlZFZlcnRleFNoYWRlci0+
cmVtb3ZlQ2xpZW50KHRoaXMpOworICAgICAgICAgICAgbV9jYWNoZWRWZXJ0ZXhTaGFkZXIgPSAw
OworICAgICAgICAgICAgbV9pc1ZlcnRleFNoYWRlckxvYWRlZCA9IGZhbHNlOworICAgICAgICB9
CisgICAgICAgIGlmIChtX2NhY2hlZEZyYWdtZW50U2hhZGVyLmdldCgpKSB7CisgICAgICAgICAg
ICBtX2NhY2hlZEZyYWdtZW50U2hhZGVyLT5yZW1vdmVDbGllbnQodGhpcyk7CisgICAgICAgICAg
ICBtX2NhY2hlZEZyYWdtZW50U2hhZGVyID0gMDsKKyAgICAgICAgICAgIG1faXNGcmFnbWVudFNo
YWRlckxvYWRlZCA9IGZhbHNlOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIHZpcnR1YWwg
dm9pZCBub3RpZnlGaW5pc2hlZChDYWNoZWRSZXNvdXJjZSogcmVzb3VyY2UpCisgICAgeworICAg
ICAgICBpZiAocmVzb3VyY2UtPmVycm9yT2NjdXJyZWQoKSkKKyAgICAgICAgICAgIHJldHVybjsK
KyAgICAgICAgaWYgKHJlc291cmNlID09IG1fY2FjaGVkVmVydGV4U2hhZGVyLmdldCgpKQorICAg
ICAgICAgICAgbV9pc1ZlcnRleFNoYWRlckxvYWRlZCA9IHRydWU7CisgICAgICAgIGVsc2UgaWYg
KHJlc291cmNlID09IG1fY2FjaGVkRnJhZ21lbnRTaGFkZXIuZ2V0KCkpCisgICAgICAgICAgICBt
X2lzRnJhZ21lbnRTaGFkZXJMb2FkZWQgPSB0cnVlOworICAgICAgICBpZiAoaXNMb2FkZWQoKSkK
KyAgICAgICAgICAgIG5vdGlmeUNsaWVudHMoKTsKKyAgICB9CisKK3ByaXZhdGU6CisgICAgU3R5
bGVDdXN0b21GaWx0ZXJQcm9ncmFtKFBhc3NSZWZQdHI8U3R5bGVTaGFkZXI+IHZlcnRleFNoYWRl
ciwgUGFzc1JlZlB0cjxTdHlsZVNoYWRlcj4gZnJhZ21lbnRTaGFkZXIpCisgICAgICAgIDogbV92
ZXJ0ZXhTaGFkZXIodmVydGV4U2hhZGVyKQorICAgICAgICAsIG1fZnJhZ21lbnRTaGFkZXIoZnJh
Z21lbnRTaGFkZXIpCisgICAgICAgICwgbV9pc1ZlcnRleFNoYWRlckxvYWRlZChmYWxzZSkKKyAg
ICAgICAgLCBtX2lzRnJhZ21lbnRTaGFkZXJMb2FkZWQoZmFsc2UpCisgICAgeworICAgIH0KKyAg
ICAKKyAgICBSZWZQdHI8U3R5bGVTaGFkZXI+IG1fdmVydGV4U2hhZGVyOworICAgIFJlZlB0cjxT
dHlsZVNoYWRlcj4gbV9mcmFnbWVudFNoYWRlcjsKKyAgICAKKyAgICBDYWNoZWRSZXNvdXJjZUhh
bmRsZTxDYWNoZWRTaGFkZXI+IG1fY2FjaGVkVmVydGV4U2hhZGVyOworICAgIENhY2hlZFJlc291
cmNlSGFuZGxlPENhY2hlZFNoYWRlcj4gbV9jYWNoZWRGcmFnbWVudFNoYWRlcjsKKyAgICAKKyAg
ICBib29sIG1faXNWZXJ0ZXhTaGFkZXJMb2FkZWQ7CisgICAgYm9vbCBtX2lzRnJhZ21lbnRTaGFk
ZXJMb2FkZWQ7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFC
TEUoQ1NTX1NIQURFUlMpCisKKyNlbmRpZiAvLyBTdHlsZUN1c3RvbUZpbHRlclByb2dyYW1faAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>121671</attachid>
            <date>2012-01-09 07:29:46 -0800</date>
            <delta_ts>2012-01-09 10:32:37 -0800</delta_ts>
            <desc>Patch V3</desc>
            <filename>bug74652_2.patch</filename>
            <type>text/plain</type>
            <size>83029</size>
            <attacher name="Alexandru Chiculita">achicu</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBlOTEzMWI0Li43NTQxOWRmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjEgQEAKKzIwMTItMDEt
MDkgIEFsZXhhbmRydSBDaGljdWxpdGEgIDxhY2hpY3VAYWRvYmUuY29tPgorCisgICAgICAgIFtD
U1MgU2hhZGVyc10gTW92ZSBDdXN0b21GaWx0ZXJPcGVyYXRpb24gdG8gdGhlIHBsYXRmb3JtIGxh
eWVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03NDY1
MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogY3Nz
My9maWx0ZXJzL2N1c3RvbS1maWx0ZXItc2hhZGVyLWNhY2hlLWV4cGVjdGVkLnBuZzogQWRkZWQu
CisgICAgICAgICogY3NzMy9maWx0ZXJzL2N1c3RvbS1maWx0ZXItc2hhZGVyLWNhY2hlLWV4cGVj
dGVkLnR4dDogQWRkZWQuCisgICAgICAgICogY3NzMy9maWx0ZXJzL2N1c3RvbS1maWx0ZXItc2hh
ZGVyLWNhY2hlLmh0bWw6IEFkZGVkLgorICAgICAgICAgICAgVGVzdGluZyB0aGF0IG11bHRpcGxl
IGVsZW1lbnRzIGNhbiBzaGFyZSB0aGUgc2FtZSBzaGFkZXJzIGNhY2hlZCByZXNvdXJjZXMuCisK
KyAgICAgICAgKiBjc3MzL2ZpbHRlcnMvbWlzc2luZy1jdXN0b20tZmlsdGVyLXNoYWRlci1leHBl
Y3RlZC5wbmc6IEFkZGVkLgorICAgICAgICAqIGNzczMvZmlsdGVycy9taXNzaW5nLWN1c3RvbS1m
aWx0ZXItc2hhZGVyLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogY3NzMy9maWx0ZXJz
L21pc3NpbmctY3VzdG9tLWZpbHRlci1zaGFkZXIuaHRtbDogQWRkZWQuCisgICAgICAgICAgICBU
ZXN0aW5nIHRoYXQgd2UgZG9uJ3QgY3Jhc2ggd2hlbiBzaGFkZXJzIGFyZSBtaXNzaW5nIGFuZCB0
aGF0IHdlIGRvbid0IHRyeSB0byByZW5kZXIKKyAgICAgICAgICAgIGlmIG9uZSBjb21wb25lbnQg
b2YgdGhlIHBhaXIgKHZlcnRleCBzaGFkZXIsIGZyYWdtZW50IHNoYWRlcikgd2FzIG5vdCBsb2Fk
ZWQgeWV0LgorCiAyMDEyLTAxLTA5ICBQaGlsaXBwZSBOb3JtYW5kICA8cG5vcm1hbmRAaWdhbGlh
LmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLCBHVEsgcmViYXNlbGluZSBhZnRlciByMTA0NDEy
LgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY3NzMy9maWx0ZXJzL2N1c3RvbS1maWx0ZXItc2hh
ZGVyLWNhY2hlLWV4cGVjdGVkLnBuZyBiL0xheW91dFRlc3RzL2NzczMvZmlsdGVycy9jdXN0b20t
ZmlsdGVyLXNoYWRlci1jYWNoZS1leHBlY3RlZC5wbmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTU2ZTAwMTFkOTU1
NDcxOWI1Y2UyYTJjZGEyZTg1ZDJlMjcwYTBmZgpHSVQgYmluYXJ5IHBhdGNoCmxpdGVyYWwgMTY4
MDUKemNtZUh2ZG88TUQrYyMxdjYtcF5gRDJYVWtOO01kWU1paH0hJldhPk88MWBFZ29zQEQpNTtk
bGg8Ul55KzZVTWorCnpJcGtPLTQzb3BlV1h5OyRWfmpFSHA4SXw+KjhSUn5KKntePV91Y2JIZjVs
I1ZVLXJKZipaeTNlPiQ5KWI/Yyl9KAp6bUNJJDkza2VDV0pZczVXRWhNeF5Oa35aS3dBZDBia3tX
cFIzaXhONnpzWUk7YX5Jc3RkSERyZzdDUCY7Y2MwRXEKeng4MUk4eUxSckAqNGNBaiRKSkhXZVVI
eFdlUzchMT8lVEVkJmBGYkFWMWVkJj0rTjthaFlsJG5fd19tTmRDNlQhCnpDYGtCKk9eZXFXQms4
JWwtZFV9aSNxN0xSNiRIZ15LNXsxZWcyfjZkVCZjNU9EfCFAKlAyJH5sQUw7Ym9KNClNSAp6bHlQ
ZmxwaVJCY1diRWx1VVc1WDIrKWN+dWhNa0Y4VSQpeFdyIXFVZmZBQnQ5b2JqISk4OHo5Yk9BcXIy
Qm5ocWIKelpQJUhLNUZKYHNYWj1qZF5IUykraT9nP2NWeEtLRChvczN0TCQlbmwjT1J0SUo3b0FY
UVg8bStSQ05ka1FHbSF2CnpaNyl0O2RZeDxkMSh3PlNvPT15N0ZGJihkPGR6PWs+OSN0NUcxQjFZ
MzJOTWFpe1BMP2lYPTRqLTx7YlVZUGVAZAp6Yk5EZ3JpNFE2cmhTeUJALUpnUDY4JDJmNXhsZlFe
PmdqI0hfUHIjfEdYNnpiNkR8QWYpNWpMZlJxOzQ5MTclVXoKelhIZDFOTl87fk9eZXtGaVpSK2tQ
PXp3ZWdeUk1yMj5UZ2BYaGNXSDR3blIyLWRRWCtLdiphPD1YRXlMSSY2VkZECno9NWtMPm18ZVhS
enB1Zn5ITnd4JSlSSikyZCU4NGdhb0FTRW4hRXdURFhhZUF4SFRTcUFBOUwwLTZEQ350Sz9WNgp6
dTFIO0pkUik+KCliKE5oYWxATj52TzlHT2U0KXpPT1hMem1iX0h5P1NtdUEkX19hflVVWlFAOSkk
P0F4SWtuQzMKemAtaDZlPyMmdl9zcHIqT2w3cmNlNCo4IT92Rl8oUU4tZHJFMDt3VVZ5cD5mVGJp
NXoqSkxWTGNeZjU1ZTdXVXYoCnpGdFIrQURoczlCQ2h6PXVieCsob3prSlUzOW5NS2okPW1LcSo5
QE1We0FQWVZ6OzM1NTMzRGtOcUNjUzdxRkwxRwp6bXZqNCQ/eHt6fjleOHdqOU5LQCU2VGhCaFRS
S2dCcFl7MGc/JWNxKG9tJkg9aGQxMyR1Rj9Fe0AzVlFmXzwrbWgKekl4JSQ4JjI4PE02SzF4MmEm
YnY1cFZEJUsrNlVuZGhwKDhqeTEke1ItUjNxY3loYDBvMm1OLUgmckRvVC1LQCtJCnpEfCM1Q0Na
Y3VlJWxua2wlT35KOyQqMWxhLWhSMHZHV2ZRekBuVWJVYmt4M0MoYklhXz52RjkzVjNmKipId0gh
Xwp6Ni1Lcl8/MEUzdCErel9pP1U9KztPMmIqfXJzRitfdGdRKHUxYjZkd2coKVlgUVVYN3hialcq
ZWU3Z1QyPnNfWHEKemQqViNxY2QyfUN6QlFadSVETXw+QT0/PzVKbVhWWSZOWm5GeF5yN2ROSjsz
M3Y1YCVYQEt+PllvVEtkJmJYLTUmCnpLSmUxKUpfVHtMbSteT1FVQ3JFXzdoeC1PT3heNSlYI2Bk
e1NvVSROcT9sO2lDWHN7KV5fODJZI2NuSXljMlQ+cwp6PCR+ZW5fQExQYzQ/WDc1K0I2SlhWQClI
MV9JNUlXXzhRbUhyS3IxYE1HUm5gODcqWVd5SG5KPSNke0ZFd0xDRk4KekNCcTBJVkcmWEEhPz44
fTk3I0ZvQ1R6aSY7VE45eGRjI1lpZUBeJm9yYjBAREBLQXpQaH4hX1p7djJFKThTPXZsCnpfJnBN
filrUEBTP1cyT1JVQCRgWG9yMiZgOEdjRHZ3JSQtLUwoeCh4IUMqZWA+NihvV3ctakVsUENNK28l
YFdHRAp6UXJlKHE2eChxWENkNkdzeSFfc2NxLTxCPmxzMyg3ZVRpJT5TTkhCQzJjTGs2aHBDZ3Ap
ayFsZUEybnJyT30meEcKemcyfFMyQ2JobnNkSntXIW5eV3I0X1lIWSYwNFpDdEFNUStPOTNNUjRq
bzZfTCpQamhhQ1g+bXhBO1kxYlB8TCt7CnpGcXM5Xj92fi0xelBKdj5RRlUtRXF8RXFBUX5MOURU
anFVWl97NitZczlrMDd6PUF7TGZNPH1aTU0/e1g5N1VHSQp6WWk9TWM2TEBnTTV2K3FgRW5ZYVpU
MDZxTzklfl9SanYqYmE+cFFaO2JpcSheZ3okNm8rSkZVKU42S2hORmYxK18KekVmXntsUmhUKDRx
Ti1ifXBieXZBbl8+MU13JGV0Q0RHRGlSd0hkSS1RTHVjSERaeENoKDwxSnVXIXlmP3hHeXdfCnpj
VSpkQF45V24lOCQqPE9QbDFlUFcpQi0mJTdoVX5CUXVwcDlaMmFDYlFtZD1TSkgpbDk9XjA0VE5m
WmJMc2VJdAp6Y0h7JmZOYTU9QngpWkVNPFh0dF9DPmNIcDZlZE17P0F5Y15lOEJZeTV5RWM5QThl
TS1KMCFBdUBkfjlQZ2VpKDIKelVWcilXQEQ+LUw0T1k5ODQkZERIU1h5S3tDVngqK3V1S1hCJEtq
N2hHa3o9KmxZOXg+WGRNelkxZTsmeFZobnNICnp3ZGNlKGYkZlhITDRWJjs8c3MtWT8kPFRfWEZC
QSVxfXFFX0FmPFhTOFkrNkZkVXR5P3lRR0ZXPTdJan5RfXFzSgp6ODxRM09LbShfcCZ4RX5iYWlU
WCpfRklrZzdkSnYxRE4rTlRjeHdgaE5jKXUxbkUrLXkmNGt0YV5xQntJXiU+bF4KenljYjJnSTY9
aVBWJHNaNHAwY19SeFNeS3NlWlk9aFQyPDtRP0Zscm81YlctLUl5a3hLeGc/WU1CUm58X1A5RWMh
Cnp1dHNxNWd5ckRtLUtYNkpVSW10ZnRrMm1GM0dSfjFiOHp5Nnl7RkN5WStzWkhDO3o7NXpoSyQ9
RWJ1WCYkRENYegp6dXFfS2QjXjFMei1mRFN9XiFmQ3lrPVhtblI+VUA2b29JLTRFRFd3JUg1SHEq
clhOe1hne0BLWmUqR00tQ18jWCUKenR3RjF3QXpHaF8/ekM2V092aVNGKUxoMkliKUhle3NfM3ow
bnY5TlZiLX5EbmB6M1BfYEZjX3teM2o2XihtNHA3Cnp4eU5CIT9DN1ZiX25Rd3xKVjxRd2k7RF57
ek42bykjMG1iLSt8I3BBJU55X24wNilyNzwxNjJyJTRWJCkjUCVVYwp6P1Q4Z20mM3klVFA8eXJU
cUYrN2ZlSmxiY24pSiRqPkNAeVFzdUUraExhUmc3d05+PldOI3E8Y3VfeHVDRUpFR0UKej1lcUBp
JFRqYXJkSi13cng4bWxreTMyPlZYc2YhTFJ+Xil7Pz1sKjMqTyt9eVl5aUxYM2xDPig+fmAkPXMx
YTMtCnp4YDhTNSlwNE1JPTVrWTBkdzd+QFZnJlFTY0tqbXJ2YW8jSjJoaCkje1lkVW1neWh9fGoz
Tk89OWw2O0VLS2B4Ngp6cF5IfFpTU0lrMHBeRm82UVRiSnhzc09sQClAZXQpdmtfVDxLTSFweWc/
OG1WO1ZjLXMxd3Z6SWxBKngrcUY+aSkKek0+SmBTcGNWfEIxPGBzYENIfXYlMXN+XnchTHJIYXJJ
LWFucno/ZzJ6Tk5fVihCV1hrTEtZWCsoQXtUKlA+I0lgCnp1V1E1P1BFfD0ham8pPGxVVGR2aGdT
QzdDY1NZVENDMSNCZShORlh2R3BuWl9SQUQ+SDBeTmVIR0w2STZuRlckNgp6M2lpTjw4T2ZZIz4+
fX0hN2gybHpEVk1oZmFRQihVPkpCWT5EUkxqdDY0czgqPWhjUDgrT0o/OEs/KlQ3VSV1N1MKek9E
b0pBOD5ZaypWaWEzWWtOWn5JZi19ZDlVKzF5b3diYnFqYn1jT08/KnNQPUNDNlI0MDchcUpMMkRU
UmUxeF81Cno+SUZrOGBUMWNpWFRxYm5pSjEpWjxZI3BtYTE5Tk9IVnt8aiNebSY9Y0MzYk51Sk5j
TjRwfklOZEolRj5NamkySwp6PSNTeyFsSHZ6d2V8JXt2KGl4U1FNLVEybHN1PH19NGx1XyZJKjxg
fCtTeGhJLT4wdjlMKFN6Jm15Rj8kOXpDKW0KemNBZzVuJHtwKHwwVmJpPjhYRWBxMXN+fE9yNUdG
PVkjOzchPV9uWitMS3pAdk0xfj5YZCZsMktfIXo0RCM1M2oqCnpVRl99PTVLa3w+fDhyeUJwQHc5
RFB6YGNoXmFhcyM0a1ckMVMmdUdtbm07aEdCPmE0MCQmdEFFV3Q5Jl9TMTZ0UAp6X1FGbkorZVh0
eEQ2OEQ0VTNxPylfRXIkJDRAPE13MzJZflVNRXYoSHgkdnFyJnJgQ2YlU2ZFKzNiaz4yNj8xa0MK
ei1lWU13R345QyZsN15VKnh7LXZ6ckZgKCQ7O1B1d2lLSyNBcndXdlktU3tKIXpMKXswRmw5KnBq
R1JuaTspYChxCnpPXnRNX2VQS3NQfEkkSmREVlIwY1drZSZ9TFVnSSRDbkBBaFB9fkR+MmpffXVy
aC1IJGVHRyQ3biZPJCQtOX5Zfgp6OFYpfURkc0x5MEE3KiVELU5NQWlhQ1M9Km4tYm84ZHBUK2Nx
IWw7Mk0/KTkrXl9wbGBPR2dvUG40KEVSckoraSkKemBGUjdUI0t8S2dDejYpVTxGPkhLQjU7TFFW
MXVtJXdefn5WSUhDMnhSJWR8fHtgRT1rVzdsSFJEK3k1ZS1jcFc/CnpCfXpCQ0VLSiMrLWMrYntj
cj90TGAmTnlYYSp4YSFQMEJNRiNVWkNOKU0jVjdvI09gOXdVakg9PW0hakRUTT1icQp6UVA1fmta
XkxkWXFER0d2M0AlZldoVGd5OyFvcWg/YT8hZnNvUEg+Nl9RMiNZdikwMy0wemRoKzQpcipQSEJ7
RHgKemdsXzlYZEp2JHYjSHVDP3AyVyZicTBgSFEyZnVnKHFSYHlROXZLZmp1ZG1GNTdPRWMyPjh9
dkNCSDkpa1leY0ZtCnomMjZtVlgxY01IP3ZaOG04TnllQShAISVle2dYcVhtVXotaDtLaCVkenNT
WWc5b1FyeEBhUmdoXkBnJCszUlZrbgp6XjViUkBqVHZodTdGXks/NVg2eU5IVFgmRnVYSnA8MUh9
RzZXQCE1KjV8PzB6SGR9IUNQZWNGe3Z1UEZHQ1NYZSEKek9hU1JMJWx2ZlkyZT1yNU5zQ011QUJ6
fEh1fXpgS1E9JntMPERpNzVhb3ApO0pqP3MkWjVLME1GKllMaEhfPzVrCnppNW04Mno5ZW1iPCo7
JXZId3NSdSFoWGBHO2EhUEMkbX5Ta29wJHpRelp2KUR2OUYoc2tsaiVxbTFGRWolYE9aZQp6P2Rv
UlVnKmpeWjFtSmVVXjwjUC1XQWpHY3JAd0QyRE8+anR0QUh3Um9TMncraHhWJWdZK0l6ZTw7MG81
djA9WTMKemRMMVAkQVBNKm1DcUJMOHwzV18oQTw4e0NkZnV9X2skb1dGOzFjWj9yWFdwbHVIP0k7
MHhCZk4wRlhnSmY0c1YyCnokUkZeQFFhMTt8e1Z7eGswUEZ0JDdgX0J8M25Oal5GKWpfT3BiKkJQ
TERzTVdhN097YjkmQUBgdTIlbCteTCNWfAp6PF5APH1DaFQhMD48VVoxcXxUfldpeERhcmZEe1Fs
NTt0TU5gUSljcStAVmJLQGVneV5ub0Ruc1Z4e3wzQE9yNHUKekFscktxMk07VXszcnYhaiZFQEsk
bl4wLUFmPkFYX3RhZFVWZENMSXVVWmxzKjNlZlNjREx+JDU9aFlWPT8tKz1fCnpacGFwPkFkSHB5
JG9uJElZeXRBfVF3Pylme1F+NUAxJn4reTt0T2ttP1Q+dXEjVH1ZaGZWYFVsPS1mKXBrYH54NQp6
MD83T0tFcSFeNHhzSUI9Sl5xUmtMbHZXcC1JSTRydDQmKDE7SFhmMElobEhFa18jdyFYdHRaQ08w
MFJAN1lwRkQKeiFWY3ZRazM3VU1kdDhsaXJINzBtR3NNMlhhbkFDQWRiN1NBOVdAPG5QakJyPUFK
VX5+OUdFUERaQGwzUk1lR1M/CnprfElNODg2MkckeGtnbGw+WDB0aihNTDZLZm8wMSFzfHQzZjNe
PmYpSD9KRXUmbkopTD5FUHRHeCRrZSEyVVZwaAp6aCQtZEV1TD41TlRuKEszd1Q3PT9uWUp9Snh2
NTxDYzdnM1pmVCYtak1uNHVUeUs0aEpNdGlPTG9xNX1hRzJtblQKemVNPjxqcyF4M2BaOCFGWkg2
KkNmRjZAYEJrPjZJQWpeJmY+aFRCKGc9VWo8cnJBdG4/Vzg8UG0oYXs0SU4hemAlCnp3d3NMWk5i
MGE2UWc4I3NFd0l0O19iLXZnRyZzK3VuOTA8MS16T1Z5YndXPDMtNU9YYDE2UGRoZ3ZmP0I4PzRT
agp6WUBkQ2MwYXRDVEE5LTY+ZWMpTSpmPTRgOD88RFd8WWZOU3A3TD1LaDMxWlZyK191RW5FRC0/
MENWK1EwVFVHVzgKejd8OG5EcG9zWHpsaWNiYyg1cSZoMT1tXnw/RSlveyVPb3luXzhYMDs9IXhs
dik5U35MP3VtaHslYEZMMU1iaFJuCnp1SGJaTnshSFNINDk/KSpeaD0xUG1wdVNZJmpCPk9VQGdr
cG82cChEQlBPal5qcGJoY21RP01FdVdDODdVcDV5KAp6b2tKYl9GY3ZPamQzYGhrUDlhNCRVcE0k
SCpRaUo+ZW9IVUZLKlohb0VwY0FaSz51b1lAYlRZP1IwIVlCNSoydHoKek5qbmQ/JGpPTWNmWFBY
TU9MMH5gYXNtRHtYfUFjYip0VCpQNDd+JVBAejZ8Wi11dUVMbE9VcUx1SndtNTc8d0hjCnp5eWVC
fTEqJC0wSWFuNkZ4WXUkWCpkcStMeTlvViNPTkshZWxqVSg7b0g9RnAlayhFQFFtfF81QWVxI0s+
PXo1JQp6WSZTK1Q4dEdwflJQRGZPPDc+Mk9IYkUxdHRTaCpWZXgkaThrPlV2MXJEcWlLM0BXWnQ9
SHVMeml1SWRtPGhsfGcKelpgZ09wSmo1ZE45V2RCa1R5ajRwOFI0a0VrKFIwSz5GfTkxczkoM15D
VEVNalA+OVMmcUtyYUlSfGoqRlFRT3JMCno9Sy1+Iy17Z347X2x2N3xxMz5tKzE/ZE9gO0oqKnRL
UEFuYXsjP1B5OH5wJGE9QyleO3crKiZxbGFpN3lmVmkzPAp6SH1aKmhsN3tXR3Nheipxdy0+Ujxp
dldJZlpuNX1nTDluLVB2P3o2VWJpYEBsPmpeOXpUZztnO21RYjN9YXR6JlcKekBHMzc0Ujt1Z01j
WHdkIy1vNE1UQTNsNmdeWStxIXs0dktJPnVFeiRGbl5IQUBXKjsrVERDdnQxKVNtcyU5V2wjCnpV
bm1CR0BKMnJRbE0qQHJESXJQTTZlKTxGVEUyKktMaWZgRzV5Y25lR3hFeE4zaUh0dXhmM000K0s8
UEkxaG45Iwp6MUNTRGV1UlVLTnE4dFZCdkBfdHU0dU5mVEFmbmp4RE56PGszNWcpWWtNYFAjM3Y0
JDQoRVIoQkBfRFdAZyR4XyEKemJ2b0Q4UyRhQz5VZEhTSXNjPXlyMkxERDxwOVNJRnMlbUtJWWRU
Kz1KYTtiI0xHdzktKHNJVkgtNyk8Xm9QSFJkCnpTQ04zZSFpfkFwYikqQVk4YyMrcmJHaihGQG9R
YXgrSHUlYUNEdWVYVDg9cipYODBDa29FbGY8WUJgNjcjNFc5MAp6RjxWRnRHclNCJCFJYVptZkM3
KWw1OzN7d3h4OSUtVUctJUF0akVfYDJBKmNUODI+PGkjQXoteU5sdCYjaCk/fE4Kel97N2cyNVdr
KjNpSngqam0qQV88Wm4hPj0rZGA0VDswaUF4PlNZT1RfNC11Y2diVlZDU15fOGg+eXpCLXFGYiFL
CnpqQUhpNV4+WGoxO15rXzNELXY9TFUlTzx8cndtSHc5SGQhQz5uQXU8NEluST9eaz1RNVM8STk/
ODJwWmhRYHxzVwp6Pkd3fStHO3RWU3Y0LW5TUEVuJkpqVX1nSkA3VDlBLXdtT3E8NVNwayY1IVdo
YVlZMFEmR3JpIUVaaHhCb3lsfDEKej1GWDZiLWIqO2x7WSR2UVFCMjx2KlJMJWtJO1ckRmgzRzRY
a01ELXlvOUViTGNNM2AyXnhvWUZnUzlvPkUySkIwCnpHITEqcS1HTSV9QFlzUjU2OXV6b14lSGoj
V2B2QUApMzxZaU9VKX1Wbkl0LTJXVzVNOUFKWk1eX0B4NG1FJihpTAp6ck91aCNmQHIpYjElJDJr
V3g7fFZ6Ri1LcnR6bHg0MDJRQ0MxRmA+KThDcTlOcFl3V1JwfFN3O2s0TiVyOzBzciEKejE8QyZu
czA9KGFJPSVeYkloWjg7e09WVEkkb2E0YClEWW4pQkErZ21jP05yUm91fUg2YWlQZmk2ZihBSzw1
JEd+CnpQK0MmWF9IbmF5cipkej8zRHNDSFNLYEk+RVJ3ZGpGWVolNCZ4QTZ8ekxKNWUtYTdmc1BK
aXNzd31qZjkwMkxqJAp6ZSRLaERmcntNWmxHNDcxKnRGV3E3RFUzLXVHIzdQSiZ4aT45VkRRQT8h
bSNxMUlfIUwwb3hXSDhfd0VaIystYXgKeiE1VT1MbTZgJGs/RX5WYEtQZ1FBbCltdigzX21nb3dS
KXlMQ0txUHVBUTR2KSN6T09qe1RGfj4hem9oM3taZHJqCnpfTm4mdEJFVFgkbCQkJTB2N0ZlUiFJ
dn17cWB8RU5gb2QrO1Zab1cpWipMYGZDe2lybFFVbVFaMWxDQTNyJWppewp6eVVmJUEqPE9iUm0l
bXw5KjAyO3NLJjRybmhndUBLMDtHfCFobTlaeGYjfElKaXspem9JeyY/KiZLR2c8WX4hRiMKeiNe
SiMwaktLTz5QMEs7RVdwU0RrZ1Q+fjdAN1F5SWY+KWZ9bUF0d3gxOWs7Q0V1bzgmS3EofVlPQDs8
WkJlNyE+CnpFeHlSPkxFVSpET0I3MiYwJHYwPmhmfU9aQ3tgMVhTa2BFRSYlVzQkQzc3flFKcjJE
UlNKb2J1U3t2Z0lDOVJvfAp6PDZtSERhRGppVmVFbjAzeCpqOTNSZD9eWSY4NW1AUSkkR1RqV0dr
VV9YbityZTZtZTgjYGU5fF9UQ3c3enVsOHEKelMzUEI2MD8jeUNTN1AodiswPXN1aVctZ0sxbihK
NjRfSWViT2xLeUF3SU1tP09zb0NKUn5lN1daP2BtdE0tNTtsCnpPaClCbnBkTzAxSjBhXigmRiRE
a3ZLeGFxPXFsZktIZzVOT1JOODtTVXcmPm07cHpaanEwJj98YmtWTVJodDtwbQp6MTQ1LUZ6YEh7
dV9jalU/aFAlZH5pMUB7bTNJQEBOTWstIT5yRnNXTTQwbkMwUFZ6V2s+YnstXldlbytzTlVjUkwK
ekMpayYtKE1SeUN1fS1weDEwbDRrYn1zeXBSZEx6MTt6Ql52UFhVX1Z3SCYmdzFhTmxxcHZ2SEZR
R3RaTFF3e3ozCnomaSV1JEhtKVE8MD5ra3l6QjJLNXokLSZMbU8oZjRJSCpYQ0F4aX1JNUR7SDFe
NERZTiEqeFo5a2tiQkxBanItRgp6YXBUdkAqUCEoSz8tZ3w9SnlMTEE5V3spWFAqOTkkP1kpKW1P
OGg9U3psNklZM1gjZVFXR09NbU1RTXFpNGk4Q1oKeipDVypSKmM9O2RBTFItekx6fjlQbUVWeHxN
ODZHbDw2ZHRgLWxiIzJ7YW9eI0htJE5NaFhQUHN8OCVhVUwoMUk1CnpJSFIjRlM3ODthQlNBLSMl
S00lK3hVTT92bzxhbXB7MzE7fVprWCFIMn1UWjVod0JPekdaRUUlUVpwcGRBOHMldAp6OXhYXm1o
N3BFOGBKKHRnMmkhaj0mSE8yOE8/XiEtTV5WfXtNJk8+cmg2Yn1ZQWc8VUdXSXBrM05DSnd0Wkp5
S0UKejkkSSZpUn53UiQ9YjsqcUlodkU+dUcqV0lvNzxPNjhYRCNGZzxqWDFWVmRAfjU1S1ZSUk99
PVdselNpUGBXJU1LCnokO252fXprV1MwVH5kXlViX3dTJiQxZE8pRW5nLWtfRjFHXnV1aGcqYzM+
SEFMQWkxbkApcHlBaFVuX0leMVd4SAp6MzhhS3lBenlja3RmJihiUXJPQXcxXkEmY3stbkQ4blV7
YSgze3BMJGlaeiQ3d1M0d2V5KjI3UHktUyRoOyVzKi0KemplYHoxYnxyaUdvWnNEUjkkdyFHVlU9
dmhDK0NyKCpVZiZ0Zms/O05sSE9aaj1XMSlIJm5iJEk/PFhMZlBBYkRgCnpgVlQ2Z2RFQyZ6X3o/
RHw9OU05e3B+KEZgbVUtPz0zQ1VVJnhWbEI4NVlEaVZKRDFsRT18YmlhMFV8VXI+biZ7eQp6PWZj
P15zNiFMWmJHIVhlR3RQKS1TRGhQSWBEPXhMWG95SztFQWRJLTRuN0dpMXRmNWNQWGZQNXlgU0BY
bi09T1cKekN9a29sQlMzWXIkVUUoJDAyV3NxMUYtbGV3bXc7YW8mV2x6Zl4jKilZVTVMdWs3SDxh
SEhvQnswZExhI1BSSnpuCnpQOCQrcUFGZGY0XjFfWUhNVXB7Pzx8Jn1JTVRjO2oyPGgwRy1HRzh5
X0QpfXZYNUMwOSNTTmZKQ1hQejg4a21oJQp6I0ZgdXJrNkx8Sjg+dU5ZZUUwKGlINX5gfF56MipR
X2IkR28mMz4pdUZ7O25ARjdDNTVFQUghPnZaTyFQbypic0wKenhTbjQqNVRDdyUoPHh8WTU4Zj1a
cmkrZWUoTlo5bz1tOFgjZW8mZn5sdyl9cT9zRmRzZ1kma1hMMW5uSE8oZW8xCnp6O28rPzJqS2wp
aDFBa1BOQUx5TEJCMXt+ZV8tKW1rY3x1JWZtKDEkPk1MViMxT0FJezdYZH0rQklVWj9rS2FZYgp6
YmQmKGtlTncrYmU/RVEoQFo1alE1V2g9aCYrKkkhOG9jQzdMJV88YD5LSEFiLT0/Uz9zMW58XmRq
PCROSSshRzYKelpNNWUzeXoqIUdXTmpvQDBAciM/eWlOSTM2PmttTWBpPFEtNGdFVURSZyt+SzRP
azdRKSY7NEVZdUh2fU1fcXxVCnorVE1IYWEodmU3elV9KXEjQ3pzSDdtQnNVeUN3eik8ZkpoLU9f
PmdNbWFiMDRyZ2dxSDs1VWBuSk5nYFR1cEhkMAp6M0t9bXFwaDZxUWF1O3ZTalombCtsJFl6bGhh
WVBKPHtpUER3MFlwalZMT21HQFJAVXREZ2NZPUt1RyMwTWUzaUAKekkpMTdSPDxBQytwfkhsOSkh
Wmw7c2U7cVk3eTA+UThfVCNnSVdFU09xYVoxNS1HRVU3R0VSe3FoU2lQMVpDSypeCnppcEo9KTIq
PnZIQCgkRCNGPX51KWl6RFojYDAofjwyJjExbkBgJXBjJVNpXkFVelVaOUomMTg2RlQjNjRFbWFG
Swp6blB0PWklVz13MGU2OCZ4QUJCSWRsPkpsY0kkekt3Zz5LZ0tMTWxUSkJGbyVoJChpdHM+Iypi
fklPc01SMm5gMngKem9UUSMmZWo3O0xTbTNueFJLfE5vKkp5OUJmIT1hYFZqJGFOenkza0pHMjNy
RmFYcSpMOVJ+bSpRZSFhRypkSWMmCnpuckFPPmdneHpQYVhnbUJNU1NVVjxpRSgpN0dVVmgqZkhQ
Jj9eekJtQFVOQSFlQGIyRkh6Pik7aUEoaCtfLT1gWQp6KnVAQCgheTNNOyhmR3ZNY2U0WmleIWsk
Wkg5SD5ZJjw0Uyl8MTwwZmx7QHo4PTUwdUd2Y0VJfW5USCpsWSYjJlgKeih1M2VNUjl3SnVSWDhz
PHN4NXNzd2QjVERHd2ROYUczd2I9WSVRaVI0KUFldHNEfiU5LWdnKDBfQn11TCF0MSZYCnpaY3hp
bFAjZnhTbWJOQjwxKHotMCFmaU9Cb01iZXdvVnRoc3l4Wmh8QnZ5YlVoZH53cHQwIzRSWjtwRiVr
S2JIVQp6QElkfiRRYE1xV2Vzez8taUd3WWU1TVJpTlZ9bGtxTXRBaHhQQWQhRj1BYWI9TEYqJTJE
UmJCbFlDWE0xSiUyV3IKejBMcCZwMklmQSQoP210QE9ab2puV25QYnY8U1U9XiN7RXZrLVctKUwh
I2todzxCKTI9aS1WYGI0QzJZfHJ4TUtDCnppS1MoaVg9VCptUmFMZEQkLShZOGBROXJqQWpuPD1x
MnQjfCoqflNPT1F6QkY9O3hSZkprdjhoa1ArezlaUThVVAp6SGxvO1ItJk9SalEpTUJOJFJINmB5
XmR5KyYoNkQkd1B+fHE+SkReJllAaFhkMWQ8VEQhbT40T3F+JX5ldDtlPV8KekVBOD18Wn1AdElP
TWZRPXB0ITx6ZkA8IzNAWmd7c3ZaSmo7Nm8rQ2VFNXFha3daUU42OHl1MFM+fDRCdGIpKExZCnpg
RyV7OWdFSj13eVclPl5gdVV7QkgqeUBSSUktQTdrZDhwVm9jYUlHe3oxT0hISHdfSGE+RHlsdFFs
QXhaK0NZVQp6SkZTP3FQX3szaGdwKFY5YGtpZj8kQ08ya2JyKVUwalM+bklPRk8xSUl8fndOd3pq
dFBNeFRrUEZkdV58blhyKU8Kei1XMHpSblF0VVVNQEpLQUEwRndaVmBFfXMpViUldGMxUVBnSCgy
RTMhI0lJJm9NdD8oMVA1PGF3YW56R19oeTNsCnpiS25IZTZyK2hQIV9EWU4zTHx7KXNxPnBKZjMx
fUxRfGRaM3tCekJBe1VyVlZrbnFua2kmNUViK3dqdllZNk5Sbwp6WWxtP1F3O0IyQGYxKiZnRm9s
K1pjTjt9Pj4+clJDMnxneWBzTDg0X0RgS3tmbzJvPGo7TXVALU14M1NfOHkpNXEKemh9ND5PVlI5
Z0psbVg7RFp1YTh2Tz97TEI/KHRZQXEyU3RScVlTQlVGcGBlclBMPnFSZztVVSVhSkpxNjF3MSVJ
CnpuYn5KfV99VE07ekhCWEMlNj0jfTRgVEhQO09NMnZgMTluJEV1cnklXz83LWl7Q1daTDMqLX5P
REtSJSprJU1LJAp6RjJRQFNwLVV4ekxTYkZZWnZyVTEzMGluSip3cWMwMy1Jel5wVmFrd3opeU81
TXojNGNmO1VoUG8oVzJQZkdkTlUKekg1WUkjSVomQXplSVBIUmExJFViWjYpeTFITXA+XnFnS1Ik
NmhPTih5K2lqemJFP3x0RmdWXm1jeCFac0pCT0BCCno4fFc8REooJEtCQGoxX0xERGk+TCkmVU1a
Tjk+IVhAKWhtYiZ2QXVRWGAjQ0liWEN3Mk00aWIqU1UrUz52TiZAKAp6e0MqVWxqazhWN2Q0PUk5
JkgkQX4zU2wqJkVsdUUxQjRTZkNyPWUzZDlqbmBiTnlxWjtaXnY1fiVzemBVRmEqITcKekB7UXBB
e3ZMZ3AhWWJubnU2OThHdXtLdjc1QGV0ISFrfEs0Ym5NaC01Y1BqaVklbUVsJT0jWng1UFMkKCY8
Q20wCno+YjV8Q2VoSW9le3hMKDVIXiQwJXZNKjA4KEJRPnZsbUhXM29+cEY/JDJOc1VhekpIWk18
cEVWUEA+c0Ake18yPgp6R1YzMzh0RTV0RUdeaC1jRVYyX3ApY3RpSCFeSSVaZWpFRGpxeHRhdTlZ
Pz5mJFpyXz1qZ1VYRyNfdWZoSjM7Oz8KejV4PEdua0UtSzBoeTJhNmYwcSF5JWRGb088WD8jUnxL
ZGxMSm1EMWBvO3h7KE1OUSFVVEBYNUFWcXUobihCPG0/CkUwVSU1aFJzYUExCgpsaXRlcmFsIDAK
SGNtVj9kMDAwMDEKCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jc3MzL2ZpbHRlcnMvY3VzdG9t
LWZpbHRlci1zaGFkZXItY2FjaGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvY3NzMy9maWx0
ZXJzL2N1c3RvbS1maWx0ZXItc2hhZGVyLWNhY2hlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwLi5jZGM1OTVkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvY3NzMy9maWx0ZXJzL2N1c3RvbS1maWx0ZXItc2hhZGVyLWNhY2hlLWV4cGVjdGVkLnR4
dApAQCAtMCwwICsxLDQgQEAKKyAgICAgCisgICAgIAorICAgICAKKyAgICAKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2NzczMvZmlsdGVycy9jdXN0b20tZmlsdGVyLXNoYWRlci1jYWNoZS5odG1s
IGIvTGF5b3V0VGVzdHMvY3NzMy9maWx0ZXJzL2N1c3RvbS1maWx0ZXItc2hhZGVyLWNhY2hlLmh0
bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDFhMGU3MQotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2NzczMvZmlsdGVycy9jdXN0b20tZmlsdGVyLXNoYWRlci1j
YWNoZS5odG1sCkBAIC0wLDAgKzEsNjEgQEAKKzwhLS0gVGhpcyBmaWxlIHNob3VsZCB0ZXN0IHRo
YXQgY3VzdG9tLWZpbHRlcnMgY2FjaGVkIHJlc291cmNlcyBhcmUgc2hhcmVkIGJldHdlZW4gbXVs
dGlwbGUgZWxlbWVudHMuIC0tPgorPCFkb2N0eXBlIGh0bWw+Cis8aHRtbD4KKyAgICA8aGVhZD4K
KyAgICAgICAgPHRpdGxlPlRlc3RpbmcgdGhhdCBjYWNoZWQgc2hhZGVyIHJlc291cmNlcyBhcmUg
c2hhcmVkIGNvcnJlY3RseSBiZXR3ZWVuIGVsZW1lbnRzPC90aXRsZT4KKyAgICAgICAgPHNjcmlw
dD4KKyAgICAgICAgICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKKyAgICAg
ICAgICAgICAgICB3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIub3ZlcnJpZGVQcmVmZXJlbmNl
KCJXZWJLaXRXZWJHTEVuYWJsZWQiLCAiMSIpOworICAgICAgICAgICAgICAgIHdpbmRvdy5sYXlv
dXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KHRydWUpOworICAgICAgICAgICAgICAgIHdpbmRv
dy5sYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7CisgICAgICAgICAgICB9Cisg
ICAgICAgICAgICAKKyAgICAgICAgICAgIGZ1bmN0aW9uIHJ1blRlc3QoKQorICAgICAgICAgICAg
eworICAgICAgICAgICAgICAgIC8vIFdlIG5lZWQgdG8gcnVuIHRoZSB0ZXN0cyBhZnRlciB0aGUg
ZG93bmxvYWRpbmcgc3VjY2VlZGVkLgorICAgICAgICAgICAgICAgIC8vIFVzaW5nIGEgdGltZXIg
aXMgbm90IGlkZWFsLCBidXQgdGhlcmUgc2VlbXMgdG8gYmUgbm8gYmV0dGVyIG9wdGlvbnMuCisg
ICAgICAgICAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICAg
ICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICAgICAgICAgICAgICAgICAg
ICAgIHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7CisgICAgICAgICAg
ICAgICAgfSwgMjAwKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgPC9zY3JpcHQ+CisgICAgICAg
IDxzdHlsZT4KKyAgICAgICAgICAgIC52ZXJ0ZXhfc2hhZGVyCisgICAgICAgICAgICB7CisgICAg
ICAgICAgICAgICAgLXdlYmtpdC1maWx0ZXI6IGN1c3RvbSh1cmwoJ3Jlc291cmNlcy92ZXJ0ZXgt
b2Zmc2V0LnZzJykpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgLmZyYWdtZW50X3NoYWRl
cgorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIC13ZWJraXQtZmlsdGVyOiBjdXN0b20o
bm9uZSB1cmwoJ3Jlc291cmNlcy9jb2xvci1vZmZzZXQuZnMnKSk7CisgICAgICAgICAgICB9Cisg
ICAgICAgICAgICAuYm90aF9zaGFkZXJzCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAg
LXdlYmtpdC1maWx0ZXI6IGN1c3RvbSh1cmwoJ3Jlc291cmNlcy92ZXJ0ZXgtb2Zmc2V0LnZzJykg
dXJsKCdyZXNvdXJjZXMvY29sb3Itb2Zmc2V0LmZzJykpOworICAgICAgICAgICAgfQorICAgICAg
ICA8L3N0eWxlPgorICAgIDwvaGVhZD4KKyAgICA8Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+Cisg
ICAgICAgIDxpbWcgY2xhc3M9InZlcnRleF9zaGFkZXIiIHNyYz0icmVzb3VyY2VzL3JlZmVyZW5j
ZS5wbmciIC8+CisgICAgICAgIDxpbWcgY2xhc3M9ImZyYWdtZW50X3NoYWRlciIgc3JjPSJyZXNv
dXJjZXMvcmVmZXJlbmNlLnBuZyIgLz4KKyAgICAgICAgPGltZyBjbGFzcz0iYm90aF9zaGFkZXJz
IiBzcmM9InJlc291cmNlcy9yZWZlcmVuY2UucG5nIiAvPgorCisgICAgICAgIDxiciAvPgorCisg
ICAgICAgIDxpbWcgY2xhc3M9InZlcnRleF9zaGFkZXIiIHNyYz0icmVzb3VyY2VzL3JlZmVyZW5j
ZS5wbmciIC8+CisgICAgICAgIDxpbWcgY2xhc3M9ImZyYWdtZW50X3NoYWRlciIgc3JjPSJyZXNv
dXJjZXMvcmVmZXJlbmNlLnBuZyIgLz4KKyAgICAgICAgPGltZyBjbGFzcz0iYm90aF9zaGFkZXJz
IiBzcmM9InJlc291cmNlcy9yZWZlcmVuY2UucG5nIiAvPgorCisgICAgICAgIDxiciAvPgorCisg
ICAgICAgIDxpbWcgY2xhc3M9InZlcnRleF9zaGFkZXIiIHNyYz0icmVzb3VyY2VzL3JlZmVyZW5j
ZS5wbmciIC8+CisgICAgICAgIDxpbWcgY2xhc3M9ImZyYWdtZW50X3NoYWRlciIgc3JjPSJyZXNv
dXJjZXMvcmVmZXJlbmNlLnBuZyIgLz4KKyAgICAgICAgPGltZyBjbGFzcz0iYm90aF9zaGFkZXJz
IiBzcmM9InJlc291cmNlcy9yZWZlcmVuY2UucG5nIiAvPgorCisgICAgICAgIDxiciAvPgorCisg
ICAgICAgIDxpbWcgY2xhc3M9InZlcnRleF9zaGFkZXIiIHNyYz0icmVzb3VyY2VzL3JlZmVyZW5j
ZS5wbmciIC8+CisgICAgICAgIDxpbWcgY2xhc3M9ImZyYWdtZW50X3NoYWRlciIgc3JjPSJyZXNv
dXJjZXMvcmVmZXJlbmNlLnBuZyIgLz4KKyAgICAgICAgPGltZyBjbGFzcz0iYm90aF9zaGFkZXJz
IiBzcmM9InJlc291cmNlcy9yZWZlcmVuY2UucG5nIiAvPgorICAgIDwvYm9keT4KKzwvaHRtbD4K
XCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jc3Mz
L2ZpbHRlcnMvbWlzc2luZy1jdXN0b20tZmlsdGVyLXNoYWRlci1leHBlY3RlZC5wbmcgYi9MYXlv
dXRUZXN0cy9jc3MzL2ZpbHRlcnMvbWlzc2luZy1jdXN0b20tZmlsdGVyLXNoYWRlci1leHBlY3Rl
ZC5wbmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uYjFmNjNmMGQ1YTA0MWE5ZjlhNDI0YjI1MjI0YTc3YTQ4MmI2OTIz
NgpHSVQgYmluYXJ5IHBhdGNoCmxpdGVyYWwgMTMxODUKemNtZUhPWWdBTCR3b1h6SUx7U2l4Qk1R
TjEoYUorYTVDc3hjMiM3cE5NU092JUFXfmk7O2g4YEpDfTxId01NMGl7CnpxSD1uWE4yTXNRMEUm
bmVOUXpNYzUpdlErS19DZjIyb001aSsxbClrbyojRk5HdE89QWtObjdIWE58U3lwNmk/Ngp6SHxK
Yj9nekdMJjcqIVE1NiZNVnJZSHhTUTYkYmw0N1kwS2RTNiVgfXZjbHNwZmpgQF5IcGo4JkZaIUpL
NC1FXjEKem9pI1F5LStSR214NmZ7Ryk3ezJLI155JW09Wnc3Zm53JlE+SWsoJSNkezA2Z0p7ZWZ4
YDVpcHlWdD8/VXVGS2AlCnozd3tBVUZqeXF+PlFTMSVoVnwrTikxVilKLUsyY2RmNW9INylKXnMk
aVo5eHtGX295Rl5JelZCZH5CMkl6MXpNcwp6JGFJdnF0QDhmMF9YOGF9U1ReR1lOe2Q5RFhvMHVr
O2oxVFleak83dT1MJDZTQykkSUtKaWg7LWtzM1M2R1VMWXQKemhxR2EtbXRVSSppMzt5a1RVPnVv
X1kxJXVfOyZzcD9CKStrdHhkTU5eXjdAZlN6P19LSSpTfGJpZTRGYT5SMXlfCno5UHVja0I8dUMj
RVR0PEZiUlE8R2RxKzg2R2VxVVlEI1NHbGNFUj0qdFRMT15ePktgMz9pM2FJdn51TkZtZHtVWQp6
IWxVPS1Rd2ZlJC0/VlJ+cVo5MSotV0c8cVRJRGQzWiFAJSZ7RExtTGMmU0VsUEpLfEAjdyRLb2tt
RUdIQjkpUm0KejczKTtOdlU7fWgqfEsjZERCRyUoSm1IUEVzRFpRbl9sQk0pVDVrQnFvfmFxSEhC
WXBEb1owaGleJSp0Q0ZNbHsxCnoocnV0UmFrb0AqP0JuNzFPUjBOYmQ3bVlRcDBzbWo5MHs3S05t
N2oyIz9VQW1oJmM5amUtdWY+bS1WS1hafVNkTwp6WDAkP2t4el9TNVJYWjBvOC09clglVSNmazdG
eFNaOSRpTGxFPyUtZTRRQ3YtPD1hfjl4a0VvJDw0bD5CUHJrbV8KellxNmxXRGRoSVNPNjZQZyko
Ym56ZXNMYSpuciVIQC1nUWlMeUNnZlM9NDBSZj1FMk5yRWdjNV5CYDRJOzZNeUdUCnpjJHp5Vnti
NXZlVURsV3VZUm8taipISFcoKCh9LUFAcjNARko4Yz07Wj4oPFN4SmBhPXhEc305bWw+TkpLLWgw
Tgp6VV9kamQ+PGxmcm9Ae24zSkh1RDx0KH08bktYcXdDWm5Nc3chaWptYF9VR3BadyhyXiZ7QHc3
Iz5sd2BrNlN1az8KemlrQSZ8MS0yO1gtYnZqNElgSTNzRXBOVE52Zyg5fTk7ajIxNmtFYl87biVt
PHdZQCVpVHx7YGMhYG1kY2RQVlJZCnpzaSRSTF5TJFcxVlhfez1GcmU+Y1c9LUhYQSQrdzBwWmhf
ZnIzbFQyanVecT9BcGdTSHo0SHBrRXNFRWN4YjdrQQp6KjE8UH5DcT9VVXg4SjN3cj87RUNDaGE3
cilyYEQ0PWkyN2RiSXtlNXY2YlFEdShsJTg/YzdMc1MwLUlNWGhWVmQKejBuemlLISMtKHFXZlNW
PGw1KkdDKkB2Iyh1fSlmQGFUIztMamRjPjYjPm5MQkZxa2dQeypkKzJOY2VjS0x5JThJCnp3VzQ0
PWB4ZzQySkFPPl5TTjc5Z2xCI2E+I2YkRitjMW5rcWIhPTk8YnxfKShDUkpOPl5iTypZQDM7eX1f
aEFqPAp6cWdAOURodlMzNFBnT0J6YDREV25sUEh9TXc9YnRCOG00RksrMyRYO0BVe3s2JjIqNVBr
cThCNEhDOzNqMV93N3wKeilfc0kmZmV0SkZ3e00/Xmt0JXcrSz8qWHtybmx1MiQ1UCZ7U05+Jn5u
cj1SXk4obk5mKXxFe31KVG0oPl98V2ZXCnpLTiV0LTI2VWtMWHM9KnwlMWhRaURlOWpkYH1zaWAp
R2FlQFBjdHpLUUdMP196ZkRoVS1FbWstczh4alRVVXFLMwp6bT0hfF43eDJjcUUoYl5RbyhoPGZ7
XzNRclA9WiFvd2tROCRCdD9WdFYrZ0FCUlc7SzYjOTklanJqPUoqa0slb1kKenBQSFJvbjI/MEAy
OC1Ufig4NUhWKCRpYz9SZWhyU1FvTFREKjxaNk9tMXtUJTF5fiRxc2glI2JhTjFWN1lYeE9KCnpV
N2lkSTNlKCN6M0FwejNCQ0V+dz9+SE0pPThXK18zdnEtRUprdUVPeGhkdzlgZndBYnZWSzI+MUA3
cFcyaFBZNAp6c344aTA2Z2teIVV1MHklNyVQdzBBfHchKXEpfiVtaTVeek8oYTRHTDNgZztaYDF2
M0NCJjAqbTAmUnJtancpa2wKejdvaXgyR3FJPFUpTTVwelJmNj91NWVPTUNhMmhWP1kxe0ZYS1Zr
I2lid00rfmtud3VWNWVASE5VdW19S0dqfjdgCnooZVJMIXBKVnhIViEwVnkoTDRBSj56V0xrNnJX
b3teTkVjdGgxSUUpdVdfM3A1LTYtejZVb2QrOzU3RDUrSD1YMAp6dX1rUjw/Sy1uRGIhfEV4Uitk
azhIZW1gQCg2a05kbX55SSkkSEliZj0hcUFANEBke2RkRCZKZiFpTEY8WitwTFYKenUwQGlrXz1W
eVNqfDxUUldYWW0xKlMoaG5YdSh7eUlRS0A+NXwre0hFfiNVIW5kTUdXJCZBdDM9c1MlVk1DPXk+
CnpQWDd4e3xBVD0zU009Zyp3TiVwQT1WajcxSVFXc3Z5ZmdUVSVOIWlNK0VIRUhHLX15IVRIQkw5
K2gwOWU3fE9fKQp6dzJDLUNSZDFId1VFTVR6Mn1AfWo5TzUkREMjb31CcEgzOTlKMCZ4SUJvZUFO
bmtWWXNOZ2l6eXdASjhTUEspUzYKeiF5O1lPTFNXM2k9VlVoIyRUNVZlJCtAKUpwKX1JdGtLcER5
eyFyZ05CQWJ8RkdOQl5GNjNzMzcjTTVkSVRVU0FsCnpVMjtYayZIVjx9JFZBa0A0aF5yP0opV0BA
aWFhb2V4Y3ZKMFMyQkQkb2VHQW0lTUJiTHdLVXFwNzJuXng/ays+Wgp6RHFTIVhAOHl2V2FVP0Rj
cSFOM0xHOHlKd3ZQTlczTXs2KEBOKWlLYkRLS247Sn5YIUk5ZCZhSlM7NT5nOyhSMSEKemJUUlZ2
eytKSSFob3EpYU1fTytWaDV4akZqNDZQPllofE08LV9DMFEwWCttX0dCV0V0IS17ejtzcnVeVTY8
VSN+CnpkbiQpZEQqbHolOytDRmY9KXx1V0YmQTt7SWhlQmZBYCQwOWJLUC02a1g/bDhyJjZVfUhp
aVNIazkoaDgxPnF0QAp6c015NmtVJU4kJE8xVT1CJWw7RjB1U2kjK0RNVy1UQCtaWm0oIUIqPmZh
O3ZxWnJkbmI8emtwbWUxaSRGaDc5K3AKenlQek1aVUEyY2BkJFVhTS1gdF4mK2pCRUEzT2tPdUNr
fWZhazQ0cTgkYDUjR2R5SURee0pRZGpRa2YlN2ItMzJiCnpCNyMlaGpXPGhWKVNCMF5gVVRBUGUo
Z1BZIUJuQTdrfjVabEhVeS1WYEJBIW1sbFltV2laPmpLenR2aUZNa0pZXwp6Pm1VaDNmSztvQjdV
e0luRm1mbDVTNUlgTWh0fnt3Xlo0QFYlfklkZFVQdXItdEpAU004QithYV8yJUQleWtQQHMKekU+
d3BmS0g2RSo7cXpjUGgrU2A0ITx1NXw/dkpvI1dhcmk1TF9CVl5ofVhOSDVofilka3NrYn4yfSpe
Yl5pZ2Y/CnpfQmB5T3B1ZWRAPntLUXF2LTBUVGZhc3VUdkxucyRjVl41NTQjKCFpQWFoeTFeaVVv
fiNLfEpeTiZZKXBLUTJtIQp6ZypEJX5fYkFSVXhvM0crNEFzKnZwb0s+VE1tRypmd1VGPERoV2p+
cCNYXkVIMT08VkhUVjUhb2hUMjY8N3hYKWcKeiQ0RHViYWpLeCR0WEZCJGdJMnYkVCU5XzdXZ0hf
bD5+Iz1DQW59PElCPHJ8dnhaPERQWH1uKT8hNWx5R1B5LW53CnohOEpxJVZGam1KR2xPVVEhI3Ve
fldBSmZ5ZVY5PStuP0UwZjRWZTk8JXJ8I1RjJjVFbilYcmBqIWZ+RlMhRCFDRQp6PTs1Yk9EWUxC
Jkg+ZmReKz9CUyZ1YHw7Rl8zbiFpKnk9JGImfC00Y1VHYXAlRkcrP35OUU1XS1JLWjhwcWV8Sn0K
ekc4YVYmX25uRU5KUSYhNmFRQE9yVHNCQCpgK3lHWk1fS0xvOFc7NGo2TG9nZDlUNkxDS3VPZ3Nf
PmQodD9JQ0RsCnppZyRXS1ZuZz9CMCpYdl8zM0cmbXFpX3RNPEY/ak5IbDMqaGN4P1Z6dnJQJnI5
OG5DMGJ8aDs7cUV4Rj1oQVkwYAp6Ymtya0ZzJDV1e1Rpa0FCPXY9MyFyLXZsRCleSzVKbEhEOFFD
IUFjIyVKdHdreUwrQ0poLShkRkN1bkRTSzg8RSUKemJtTExBa34/bzM4cEgkSFdMJThzeyMpOWpW
OEdxfDNfRTZHRTspRi17XnorXzJZemduUH1yOzRmRUAmak9KV3gkCnpka285IT4le3trNjEoZUBu
RnRvYU08YDQpVDxDbDZrbCtyfG1MMERwT2pBP3s9b1hSNENzbU0+Vm0tQHhFbjVjdwp6P34+aEBU
Qkx4S1pqcTgrQXA/e304V0hqRjIhNnA+WDJaXiNeWiVicllrV0ZVaEB4UT8zN0hWbWFLdTQpMUFO
XjkKemI2WGgtUkRnXn0zKnhIQz59KXYqPyNBMmFXa3hKJjh9SUtub1hBWXJPYDR4PDlQZU1XendE
MiMjNHo+YGhlamskCnpfTzdldl9sa1UjX3wlKkZxUXFnSDwrTlU4OSZXRk5zSG5lc00waGlpRzE7
Sn1UQ219ZFk8NUw/TSVCKkY8cG81cwp6VXFNQEphX14hTk02aXRAPF5OcSVFKUF2cVN8JG1zOFdN
RExAK0JkV2wjJEshQkc1QUpNT3d2NmRQanVkaiU7TmQKekdrMHhycV9DQUhXPTVlQFZqXnF6Tjxt
SEMyeHs2b15VUGFQPGs0M19ieTY/ZjNlXzJKQWlUZThOQEokO2Z5R3V8CnpsNWdAdDtQZ3ZBJDdo
PVJhaXJSM29tQ0Eha3s2azJJV1lnKTc+QXR8eDM+QUwxSUBCWk9teHMzbTtwZHc/OWJ8VAp6Y2Ft
bmBxZjA+YC1FentRNT9kWSEzVWtsdy1KOChYP3xga1pEZXs0fjkmaWQyPTVWVkFmNnpmcSpKVyF5
QG8yTigKekl3PEAtWWU4WW9DNT1GPGopRGEzN0lIRkNZUGooK1V9QG0rYEYrcVRIJGEqe3hmN1Ni
ITRSQypQeFNUbXtjTU9ACnpjbjNOezQjYD5FX3YtVEM9a0hmcmttVHY3Wn5LTExYRy0oSkdoNUVv
KT50Z2dhT2hUNUhLJFNJdCl6eDwzNnNfdgp6aTV+fGVLZWJWezRVJnBIaDkoIypHT3xmMXRNUDx2
UFUhQjJnbTNzJWBuSEtaZjRDQi11UUg/aGFfdSp9R15EdjkKeiZLMS1PbGpIdFVAWUszfjBIdiQ+
WGQ4NiYlUmg+U1omJlIrMj9fNzk5dz1TQSo2ZkI+PjQ3QUVJSDdWYVdMT18wCno+e0NhWWszZyNx
MTd1ISVtRG9zQz92KUdAQHRAcEBhflE1PGJjfFZaVFl0TDx6fEg1K3E9O2dRS09+eEJydH1MLQp6
N3RnUW16VGVhQDFWeF84NjdealE1MVBySjleQEFXWUQ8cVpjSXR4bHNraVU3Ki1NfDc0LVBvbmx7
O2l8aVlxN34KemY3Z15nWDVOKzlEMDhpbCk5ZG5aWEo7ajIoTT45MFZJWTAySmI9MlpVMXdAKG1j
eVNERmpJeXZPIW9mNmxScVNnCnoySXBuN3E9K3t1LUM4NmtSV2pHQUp9Kkl2P3hKSHtLakZjRzhE
QCRsOWFCKkw4UiVLeHsjfUJVb31iUn50SkgzKAp6TCQmV09vYnIybioyPTYyXlQlZTZSUUVneUNZ
NzM1TWhzSlBKM3RfTEVYd3tHNzZtN3czWWlrSTIqYmIkYGtyIWAKelFfJmJxI2gxTSh7TEgxUGRp
clFDZWNVfGpteUo/TkN1QFF6QyEwO0xrbEZSVDEzMVdqMUAlP2B0JUt9O2FIOCZlCnplTF5BMEZn
SStWdSNDWGhxQH1FZ14qNWk/TjdZZ044KihsNEJ8VDQ4KnooMT4/M0ExT3M5RTh8R3xFRDh4M0dS
VAp6eUJpO0RGKkN9SVhHZS1EOW8xJXAqXkd8cnZXN19qJDRZaXl5WGVFPk9Aay0lN3BKfDEtT1Z7
dCFlM0xyRGBBQVUKej9PUCZxUFY7STc1PSpEPVNgUGArNyR8PEglUDBnLSpDVXwjTDJSM31RbFJz
WDBIR3s8dmskYGJAbEskNGJMfFFsCnojZSl8TnVNbXxoQWpBNWdXUz8/czM0bTY7MGBodTxFOyVT
d0FhS1htRHQqNGh1eD8tMFZpOT9mJDdPPUBUcSt2KQp6c3d8fmMpUWxub1Z0SW87cmZnYWUhM1Jx
Kkx5NnxOT3IrPWgyUUV7biQ9MXJuanIxQ2xzNCprMk0zfnsmU24qJi0Kekg0QHBkWW9DWkpGMXRi
MVooVyU8RVVvNWg3cmByJClDVlR4UHomekcwYSgyRiFkTTQjY15rbER5Sk17azdGN1U/CnozRX5a
P3pzfFBAanIoRGAwa2tWcTFBdjh2RShnTm07d2wkKCo2V3tfTDU1UVI3VkI1T2pEJUtZMFdBTFBq
IzNNMAp6QXBtYkhWQGNPIzZSNlQjdHh3OEdIbEIjTW0zbkkoQi16X1EpJCVFNUlXQ3wwQ01VeHVe
fiVaY1RaeHlHS340cn4KekZfVikpUDZqeXs8YypUTkh2V0NKdkZ1YnU0R2dCSGBzdWQtenI4aCoy
amxNeGhDQmZCR288fEJFSSV2I3t5SXdECno5P1JRZmQzITh4a0w0WWl5ZChQITBlTCE8ciRjITxs
JjhjMCtqUTh0MnhxXkAycTchO2d5NFRfVkQ+Z25oZXs4NApHI3MzUj1pMmE9YQoKbGl0ZXJhbCAw
CkhjbVY/ZDAwMDAxCgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY3NzMy9maWx0ZXJzL21pc3Np
bmctY3VzdG9tLWZpbHRlci1zaGFkZXItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvY3NzMy9m
aWx0ZXJzL21pc3NpbmctY3VzdG9tLWZpbHRlci1zaGFkZXItZXhwZWN0ZWQudHh0Cm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjE2M2I0ZDMKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9jc3MzL2ZpbHRlcnMvbWlzc2luZy1jdXN0b20tZmlsdGVyLXNoYWRlci1leHBl
Y3RlZC50eHQKQEAgLTAsMCArMSBAQAorICAgIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY3Nz
My9maWx0ZXJzL21pc3NpbmctY3VzdG9tLWZpbHRlci1zaGFkZXIuaHRtbCBiL0xheW91dFRlc3Rz
L2NzczMvZmlsdGVycy9taXNzaW5nLWN1c3RvbS1maWx0ZXItc2hhZGVyLmh0bWwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTc5ZDZiOQotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2NzczMvZmlsdGVycy9taXNzaW5nLWN1c3RvbS1maWx0ZXItc2hhZGVyLmh0bWwK
QEAgLTAsMCArMSw1NCBAQAorPCEtLSBUaGlzIGZpbGUgc2hvdWxkIHRlc3QgdGhhdCBjdXN0b20t
ZmlsdGVycyBkbyBub3QgcmVuZGVyIHdoZW4gc2hhZGVycyBhcmUgbWlzc2luZy4gLS0+Cis8IWRv
Y3R5cGUgaHRtbD4KKzxodG1sPgorICAgIDxoZWFkPgorICAgICAgICA8dGl0bGU+VGVzdGluZyB0
aGF0IGN1c3RvbS1maWx0ZXJzIGRvIG5vdCByZW5kZXIgd2hlbiBzaGFkZXJzIGFyZSBtaXNzaW5n
PC90aXRsZT4KKyAgICAgICAgPHNjcmlwdD4KKyAgICAgICAgICAgIGlmICh3aW5kb3cubGF5b3V0
VGVzdENvbnRyb2xsZXIpIHsKKyAgICAgICAgICAgICAgICB3aW5kb3cubGF5b3V0VGVzdENvbnRy
b2xsZXIub3ZlcnJpZGVQcmVmZXJlbmNlKCJXZWJLaXRXZWJHTEVuYWJsZWQiLCAiMSIpOworICAg
ICAgICAgICAgICAgIHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KHRydWUp
OworICAgICAgICAgICAgICAgIHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxE
b25lKCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGZ1bmN0aW9u
IHJ1blRlc3QoKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIC8vIFdlIG5lZWQgdG8g
cnVuIHRoZSB0ZXN0cyBhZnRlciB0aGUgZG93bmxvYWRpbmcgc3VjY2VlZGVkIG9yIGZhaWxzLgor
ICAgICAgICAgICAgICAgIC8vIFVzaW5nIGEgdGltZXIgaXMgbm90IGlkZWFsLCBidXQgdGhlcmUg
c2VlbXMgdG8gYmUgbm8gYmV0dGVyIG9wdGlvbnMuCisgICAgICAgICAgICAgICAgc2V0VGltZW91
dChmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0
Q29udHJvbGxlcikKKyAgICAgICAgICAgICAgICAgICAgICAgIHdpbmRvdy5sYXlvdXRUZXN0Q29u
dHJvbGxlci5ub3RpZnlEb25lKCk7CisgICAgICAgICAgICAgICAgfSwgMjAwKTsKKyAgICAgICAg
ICAgIH0KKyAgICAgICAgPC9zY3JpcHQ+CisgICAgICAgIDxzdHlsZT4KKyAgICAgICAgICAgIC5t
aXNzaW5nX3ZlcnRleF9zaGFkZXIKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAtd2Vi
a2l0LWZpbHRlcjogY3VzdG9tKHVybCgncmVzb3VyY2VzL21pc3NpbmctdmVydGV4LW9mZnNldC52
cycpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIC5taXNzaW5nX2ZyYWdtZW50X3NoYWRl
cgorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIC13ZWJraXQtZmlsdGVyOiBjdXN0b20o
bm9uZSB1cmwoJ3Jlc291cmNlcy9taXNzaW5nLWNvbG9yLW9mZnNldC5mcycpKTsKKyAgICAgICAg
ICAgIH0KKyAgICAgICAgICAgIC5ib3RoX3NoYWRlcnNfYnV0X21pc3NpbmdfdmVydGV4X3NoYWRl
cgorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIC13ZWJraXQtZmlsdGVyOiBjdXN0b20o
dXJsKCdyZXNvdXJjZXMvbWlzc2luZy12ZXJ0ZXgtb2Zmc2V0LnZzJykgdXJsKCdyZXNvdXJjZXMv
Y29sb3Itb2Zmc2V0LmZzJykpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICAuYm90aF9z
aGFkZXJzX2J1dF9taXNzaW5nX2ZyYWdtZW50X3NoYWRlcgorICAgICAgICAgICAgeworICAgICAg
ICAgICAgICAgIC13ZWJraXQtZmlsdGVyOiBjdXN0b20odXJsKCdyZXNvdXJjZXMvdmVydGV4LW9m
ZnNldC52cycpIHVybCgncmVzb3VyY2VzL21pc3NpbmctY29sb3Itb2Zmc2V0LmZzJykpOworICAg
ICAgICAgICAgfQorICAgICAgICAgICAgLmJvdGhfc2hhZGVyc19taXNzaW5nCisgICAgICAgICAg
ICB7CisgICAgICAgICAgICAgICAgLXdlYmtpdC1maWx0ZXI6IGN1c3RvbSh1cmwoJ3Jlc291cmNl
cy9taXNzaW5nLXZlcnRleC1vZmZzZXQudnMnKSB1cmwoJ3Jlc291cmNlcy9taXNzaW5nLWNvbG9y
LW9mZnNldC5mcycpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgPC9zdHlsZT4KKyAgICA8L2hl
YWQ+CisgICAgPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgorICAgICAgICA8aW1nIGNsYXNzPSJt
aXNzaW5nX3ZlcnRleF9zaGFkZXIiIHNyYz0icmVzb3VyY2VzL3JlZmVyZW5jZS5wbmciIC8+Cisg
ICAgICAgIDxpbWcgY2xhc3M9Im1pc3NpbmdfZnJhZ21lbnRfc2hhZGVyIiBzcmM9InJlc291cmNl
cy9yZWZlcmVuY2UucG5nIiAvPgorICAgICAgICA8aW1nIGNsYXNzPSJib3RoX3NoYWRlcnNfYnV0
X21pc3NpbmdfdmVydGV4X3NoYWRlciIgc3JjPSJyZXNvdXJjZXMvcmVmZXJlbmNlLnBuZyIgLz4K
KyAgICAgICAgPGltZyBjbGFzcz0iYm90aF9zaGFkZXJzX2J1dF9taXNzaW5nX2ZyYWdtZW50X3No
YWRlciIgc3JjPSJyZXNvdXJjZXMvcmVmZXJlbmNlLnBuZyIgLz4KKyAgICAgICAgPGltZyBjbGFz
cz0iYm90aF9zaGFkZXJzX21pc3NpbmciIHNyYz0icmVzb3VyY2VzL3JlZmVyZW5jZS5wbmciIC8+
CisgICAgPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ01ha2VM
aXN0cy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAppbmRleCA0OThkZmFkLi44
ZTE0MGYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAorKysgYi9T
b3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dApAQCAtMTExOCw2ICsxMTE4LDcgQEAgU0VUKFdl
YkNvcmVfU09VUkNFUwogICAgIHBsYXRmb3JtL2dyYXBoaWNzL1dpZHRoSXRlcmF0b3IuY3BwCiAK
ICAgICBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0N1c3RvbUZpbHRlck1lc2guY3BwCisgICAg
cGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9DdXN0b21GaWx0ZXJQcm9ncmFtLmNwcAogICAgIHBs
YXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvQ3VzdG9tRmlsdGVyU2hhZGVyLmNwcAogICAgIHBsYXRm
b3JtL2dyYXBoaWNzL2ZpbHRlcnMvRGlzdGFudExpZ2h0U291cmNlLmNwcAogICAgIHBsYXRmb3Jt
L2dyYXBoaWNzL2ZpbHRlcnMvRkVCbGVuZC5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAwNjUwNWJkLi5lZGQ5
MGMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dl
YkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsODkgQEAKKzIwMTItMDEtMDkgIEFsZXhhbmRydSBD
aGljdWxpdGEgIDxhY2hpY3VAYWRvYmUuY29tPgorCisgICAgICAgIFtDU1MgU2hhZGVyc10gTW92
ZSBDdXN0b21GaWx0ZXJPcGVyYXRpb24gdG8gdGhlIHBsYXRmb3JtIGxheWVyCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03NDY1MgorCisgICAgICAgIEZp
bHRlck9wZXJhdGlvbnMgYXJlIG5vdyBwYXJ0IG9mIHRoZSBwbGF0Zm9ybSBjb2RlIGFuZCBjYW5u
b3QgcmVmZXJlbmNlIHN0eWxlIGNsYXNzZXMgZGlyZWN0bHksIGJ1dAorICAgICAgICBDdXN0b21G
aWx0ZXJPcGVyYXRpb24gcmVxdWlyZXMgdG8gbGluayB0byB0aGUgQ2FjaGVkU2hhZGVyIGZvciB0
aGUgdmVydGV4IGFuZCB0aGUgZnJhZ21lbnQgc2hhZGVyLgorICAgICAgICAKKyAgICAgICAgVGhl
IGZpeCBpcyB0byBpbnRyb2R1Y2UgYW5vdGhlciBvYmplY3QgdGhhdCB3aWxsIGFjdHVhbGx5IGtl
ZXAgYSBsaW5rIHRvIHRoZSBjYWNoZWQgcmVzb3VyY2VzLCBzbyBpbiB0aGlzIHBhdGNoIAorICAg
ICAgICBJJ20gYWRkaW5nIGEgbmV3IGNsYXNzIGNhbGxlZCBDdXN0b21GaWx0ZXJQcm9ncmFtIHRo
YXQgd2lsbCBzaXQgaW4gdGhlCisgICAgICAgIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMgZGly
ZWN0b3J5IGFuZCB3aWxsIGJlIHJlZmVyZW5jZWQgZnJvbSBDdXN0b21GaWx0ZXJPcGVyYXRpb24u
CisKKyAgICAgICAgQ3VzdG9tRmlsdGVyUHJvZ3JhbSBpcyB0aGUgYmFzZSBjbGFzcyBvZiBTdHls
ZUN1c3RvbUZpbHRlclByb2dyYW0gdGhhdCBpcyBjcmVhdGVkIGZyb20gCisgICAgICAgIENTU1N0
eWxlU2VsZWN0b3Igd2hlbiBhIG5ldyBDdXN0b21GaWx0ZXJPcGVyYXRpb24gaXMgY3JlYXRlZC4g
U3R5bGVDdXN0b21GaWx0ZXJQcm9ncmFtIGlzIHJlc3BvbnNpYmxlCisgICAgICAgIHdpdGggbG9h
ZGluZyBhbmQga2VlcGluZyByZWZlcmVuY2VzIHRvIHRoZSBTdHlsZUNhY2hlZFNoYWRlcnMgYW5k
IHRoZSBDYWNoZWRTaGFkZXJzLgorCisgICAgICAgIE1vcmUgcGF0Y2hlcyB3aWxsIGZvbGxvdyB3
aXRoIG9wdGltaXphdGlvbnMgYWJvdXQgcmV1c2luZyAzRCBncmFwaGljcyBjb250ZXh0cyBhbmQg
Y29tcGlsZWQgc2hhZGVycy4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBUZXN0czogY3NzMy9maWx0ZXJzL2N1c3RvbS1maWx0ZXItc2hhZGVyLWNhY2hl
Lmh0bWwKKyAgICAgICAgICAgICAgIGNzczMvZmlsdGVycy9taXNzaW5nLWN1c3RvbS1maWx0ZXIt
c2hhZGVyLmh0bWwKKworICAgICAgICAqIENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIEdOVW1h
a2VmaWxlLmxpc3QuYW06CisgICAgICAgICogVGFyZ2V0LnByaToKKyAgICAgICAgKiBXZWJDb3Jl
Lmd5cGk6CisgICAgICAgICogV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2o6CisgICAgICAg
ICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGNzcy9DU1ND
b21wdXRlZFN0eWxlRGVjbGFyYXRpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTQ29tcHV0
ZWRTdHlsZURlY2xhcmF0aW9uOjp2YWx1ZUZvckZpbHRlcik6CisgICAgICAgICogY3NzL0NTU1N0
eWxlU2VsZWN0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTU3R5bGVTZWxlY3Rvcjo6bG9h
ZFBlbmRpbmdTaGFkZXJzKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1N0eWxlU2VsZWN0b3I6OmNy
ZWF0ZUN1c3RvbUZpbHRlck9wZXJhdGlvbik6CisgICAgICAgICAgICBVcGRhdGVkIHRvIHVzZSB0
aGUgU3R5bGVDdXN0b21GaWx0ZXJQcm9ncmFtIGluc3RlYWQgb2YgdGhlIEN1c3RvbUZpbHRlck9w
ZXJhdGlvbi4KKyAgICAgICAgCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9D
dXN0b21GaWx0ZXJPcGVyYXRpb24uaDogUmVuYW1lZCBmcm9tIFNvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9zdHlsZS9DdXN0b21GaWx0ZXJPcGVyYXRpb24uaC4KKyAgICAgICAgKFdlYkNvcmU6OkN1
c3RvbUZpbHRlck9wZXJhdGlvbjo6Y3JlYXRlKToKKyAgICAgICAgICAgIEFjY2VwdHMgYSBDdXN0
b21GaWx0ZXJQcm9ncmFtIGluc3RlYWQgb2YgdmVydGV4IGFuZCBmcmFnbWVudCBDYWNoZWRTaGFk
ZXJzLgorICAgICAgICAgICAgCisgICAgICAgIChXZWJDb3JlOjpDdXN0b21GaWx0ZXJPcGVyYXRp
b246OnByb2dyYW0pOiBSZXR1cm5zIHRoZSBDdXN0b21GaWx0ZXJQcm9ncmFtLgorICAgICAgICAK
KyAgICAgICAgKFdlYkNvcmU6OkN1c3RvbUZpbHRlck9wZXJhdGlvbjo6Q3VzdG9tRmlsdGVyT3Bl
cmF0aW9uKToKKyAgICAgICAgICAgIEFjY2VwdHMgYSBDdXN0b21GaWx0ZXJQcm9ncmFtIGluc3Rl
YWQgb2YgdmVydGV4IGFuZCBmcmFnbWVudCBDYWNoZWRTaGFkZXJzLgorICAgICAgICAgICAgCisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9DdXN0b21GaWx0ZXJQcm9ncmFtLmNw
cDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpDdXN0b21GaWx0ZXJQcm9ncmFtOjpDdXN0b21G
aWx0ZXJQcm9ncmFtKToKKyAgICAgICAgKFdlYkNvcmU6OkN1c3RvbUZpbHRlclByb2dyYW06On5D
dXN0b21GaWx0ZXJQcm9ncmFtKToKKyAgICAgICAgKFdlYkNvcmU6OkN1c3RvbUZpbHRlclByb2dy
YW06OmFkZENsaWVudCk6CisgICAgICAgIChXZWJDb3JlOjpDdXN0b21GaWx0ZXJQcm9ncmFtOjpy
ZW1vdmVDbGllbnQpOgorICAgICAgICAoV2ViQ29yZTo6Q3VzdG9tRmlsdGVyUHJvZ3JhbTo6bm90
aWZ5Q2xpZW50cyk6CisgICAgICAgIChXZWJDb3JlOjpDdXN0b21GaWx0ZXJQcm9ncmFtOjpjcmVh
dGVTaGFkZXJXaXRoQ29udGV4dCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVy
cy9DdXN0b21GaWx0ZXJQcm9ncmFtLmg6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL2ZpbHRlcnMvQ3VzdG9tRmlsdGVyUHJvZ3JhbUNsaWVudC5oOiBBZGRlZC4KKyAgICAgICAg
KFdlYkNvcmU6OkN1c3RvbUZpbHRlclByb2dyYW1DbGllbnQ6On5DdXN0b21GaWx0ZXJQcm9ncmFt
Q2xpZW50KToKKyAgICAgICAgCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9G
RUN1c3RvbUZpbHRlci5jcHA6CisgICAgICAgICAgICBGRUN1c3RvbUZpbHRlciB3aWxsIG5vdCB1
c2Ugc3RyaW5ncyBhbnltb3JlLiBJdCB3aWxsIGp1c3QgZ2V0IGEgcmVmZXJlbmNlIHRvIHRoZSBD
dXN0b21GaWx0ZXJQcm9ncmFtLgorICAgICAgICAKKyAgICAgICAgKFdlYkNvcmU6OkZFQ3VzdG9t
RmlsdGVyOjpGRUN1c3RvbUZpbHRlcik6CisgICAgICAgIChXZWJDb3JlOjpGRUN1c3RvbUZpbHRl
cjo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkZFQ3VzdG9tRmlsdGVyOjppbml0aWFsaXpl
Q29udGV4dCk6CisgICAgICAgICAgICBVc2luZyB0aGUgQ3VzdG9tRmlsdGVyUHJvZ3JhbSB0byBn
ZW5lcmF0ZSB0aGUgQ3VzdG9tRmlsdGVyU2hhZGVyIGluc3RhbmNlLiBBIGJldHRlciBuYW1lIGZv
ciBDdXN0b21GaWx0ZXJTaGFkZXIKKyAgICAgICAgICAgIHdvdWxkIGJlIEN1c3RvbUZpbHRlckNv
bXBpbGVkUHJvZ3JhbSwgYnV0IEkgd291bGQgcHJlZmVyIHRvIG1ha2UgdGhhdCBjaGFuZ2UgaW4g
YSBkaWZmZXJlbnQgcGF0Y2guCisgICAgICAgIAorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L2ZpbHRlcnMvRkVDdXN0b21GaWx0ZXIuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvRmlsdGVyRWZm
ZWN0UmVuZGVyZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RmlsdGVyRWZmZWN0UmVuZGVyZXI6
On5GaWx0ZXJFZmZlY3RSZW5kZXJlcik6CisgICAgICAgIChXZWJDb3JlOjpGaWx0ZXJFZmZlY3RS
ZW5kZXJlcjo6YnVpbGQpOgorICAgICAgICAoV2ViQ29yZTo6RmlsdGVyRWZmZWN0UmVuZGVyZXI6
Om5vdGlmeUN1c3RvbUZpbHRlclByb2dyYW1Mb2FkZWQpOgorICAgICAgICAoV2ViQ29yZTo6Rmls
dGVyRWZmZWN0UmVuZGVyZXI6OnJlbW92ZUN1c3RvbUZpbHRlckNsaWVudHMpOgorICAgICAgICAq
IHJlbmRlcmluZy9GaWx0ZXJFZmZlY3RSZW5kZXJlci5oOgorICAgICAgICAqIHJlbmRlcmluZy9z
dHlsZS9TdHlsZUN1c3RvbUZpbHRlclByb2dyYW0uaDogQWRkZWQuCisgICAgICAgIChXZWJDb3Jl
OjpTdHlsZUN1c3RvbUZpbHRlclByb2dyYW06OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpT
dHlsZUN1c3RvbUZpbHRlclByb2dyYW06OnNldFZlcnRleFNoYWRlcik6CisgICAgICAgIChXZWJD
b3JlOjpTdHlsZUN1c3RvbUZpbHRlclByb2dyYW06OnZlcnRleFNoYWRlcik6CisgICAgICAgIChX
ZWJDb3JlOjpTdHlsZUN1c3RvbUZpbHRlclByb2dyYW06OnNldEZyYWdtZW50U2hhZGVyKToKKyAg
ICAgICAgKFdlYkNvcmU6OlN0eWxlQ3VzdG9tRmlsdGVyUHJvZ3JhbTo6ZnJhZ21lbnRTaGFkZXIp
OgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVDdXN0b21GaWx0ZXJQcm9ncmFtOjp2ZXJ0ZXhTaGFk
ZXJTdHJpbmcpOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVDdXN0b21GaWx0ZXJQcm9ncmFtOjpm
cmFnbWVudFNoYWRlclN0cmluZyk6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZUN1c3RvbUZpbHRl
clByb2dyYW06OmlzTG9hZGVkKToKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlQ3VzdG9tRmlsdGVy
UHJvZ3JhbTo6d2lsbEhhdmVDbGllbnRzKToKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlQ3VzdG9t
RmlsdGVyUHJvZ3JhbTo6ZGlkUmVtb3ZlTGFzdENsaWVudCk6CisgICAgICAgIChXZWJDb3JlOjpT
dHlsZUN1c3RvbUZpbHRlclByb2dyYW06Om5vdGlmeUZpbmlzaGVkKToKKyAgICAgICAgKFdlYkNv
cmU6OlN0eWxlQ3VzdG9tRmlsdGVyUHJvZ3JhbTo6U3R5bGVDdXN0b21GaWx0ZXJQcm9ncmFtKToK
KwogMjAxMi0wMS0wOSAgS2VudGFybyBIYXJhICA8aGFyYWtlbkBjaHJvbWl1bS5vcmc+CiAKICAg
ICAgICAgW1JlZmFjdG9yaW5nXSBVc2Ugam9pbigiLCAiLCBAYXJndW1lbnRzKSB0byBidWlsZCBh
IG1ldGhvZCBhcmd1bWVudApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUu
bGlzdC5hbSBiL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KaW5kZXggNWMwNTM5
Ni4uZTMxMmQ3OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5h
bQorKysgYi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCkBAIC0yODQ1LDYgKzI4
NDUsOSBAQCB3ZWJjb3JlX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2NhaXJvL1RyYW5zZm9ybWF0aW9uTWF0cml4Q2Fpcm8uY3BwIFwKIAlTb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0N1c3RvbUZpbHRlck1lc2guY3BwIFwKIAlT
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0N1c3RvbUZpbHRlck1lc2gu
aCBcCisJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9DdXN0b21GaWx0
ZXJPcGVyYXRpb24uaCBcCisJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVy
cy9DdXN0b21GaWx0ZXJQcm9ncmFtLmNwcCBcCisJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZmlsdGVycy9DdXN0b21GaWx0ZXJQcm9ncmFtLmggXAogCVNvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvQ3VzdG9tRmlsdGVyU2hhZGVyLmNwcCBcCiAJU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9DdXN0b21GaWx0ZXJTaGFkZXIuaCBc
CiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9EaXN0YW50TGlnaHRT
b3VyY2UuY3BwIFwKQEAgLTM1NzQsNyArMzU3Nyw2IEBAIHdlYmNvcmVfc291cmNlcyArPSBcCiAJ
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL0NvdW50ZXJEaXJlY3RpdmVzLmggXAogCVNv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9DdXJzb3JEYXRhLmggXAogCVNvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9zdHlsZS9DdXJzb3JMaXN0LmggXAotCVNvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9zdHlsZS9DdXN0b21GaWx0ZXJPcGVyYXRpb24uaCBcCiAJU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL3N0eWxlL0RhdGFSZWYuaCBcCiAJU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxl
L0ZpbGxMYXllci5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9GaWxsTGF5
ZXIuaCBcCkBAIC0zNTk5LDYgKzM2MDEsNyBAQCB3ZWJjb3JlX3NvdXJjZXMgKz0gXAogCVNvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZUNhY2hlZEltYWdlLmggXAogCVNvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZUNhY2hlZFNoYWRlci5jcHAgXAogCVNvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZUNhY2hlZFNoYWRlci5oIFwKKwlTb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVDdXN0b21GaWx0ZXJQcm9ncmFtLmggXAogCVNvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZURhc2hib2FyZFJlZ2lvbi5oIFwKIAlTb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVEZXByZWNhdGVkRmxleGlibGVCb3hEYXRh
LmNwcCBcCiAJU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlRGVwcmVjYXRlZEZs
ZXhpYmxlQm94RGF0YS5oIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkg
Yi9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpCmluZGV4IGY4MmUwNTUuLjRjNGZkMjAgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkKKysrIGIvU291cmNlL1dlYkNvcmUvVGFy
Z2V0LnByaQpAQCAtMjA4OSw2ICsyMDg5LDggQEAgSEVBREVSUyArPSBcCiAgICAgcGxhdGZvcm0v
Z3JhcGhpY3MvQ3Jvc3NmYWRlR2VuZXJhdGVkSW1hZ2UuaCBcCiAgICAgcGxhdGZvcm0vZ3JhcGhp
Y3MvZmlsdGVycy9DdXN0b21GaWx0ZXJNZXNoLmggXAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL2Zp
bHRlcnMvQ3VzdG9tRmlsdGVyU2hhZGVyLmggXAorICAgIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRl
cnMvQ3VzdG9tRmlsdGVyT3BlcmF0aW9uLmggXAorICAgIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRl
cnMvQ3VzdG9tRmlsdGVyUHJvZ3JhbS5oIFwKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJz
L0ZFQmxlbmQuaCBcCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUNvbG9yTWF0cml4
LmggXAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVDb21wb25lbnRUcmFuc2Zlci5o
IFwKQEAgLTIzODIsNyArMjM4NCw2IEBAIEhFQURFUlMgKz0gXAogICAgIHJlbmRlcmluZy9zdHls
ZS9Db3VudGVyRGlyZWN0aXZlcy5oIFwKICAgICByZW5kZXJpbmcvc3R5bGUvQ3Vyc29yRGF0YS5o
IFwKICAgICByZW5kZXJpbmcvc3R5bGUvQ3Vyc29yTGlzdC5oIFwKLSAgICByZW5kZXJpbmcvc3R5
bGUvQ3VzdG9tRmlsdGVyT3BlcmF0aW9uLmggXAogICAgIHJlbmRlcmluZy9zdHlsZS9GaWxsTGF5
ZXIuaCBcCiAgICAgcmVuZGVyaW5nL3N0eWxlL0tleWZyYW1lTGlzdC5oIFwKICAgICByZW5kZXJp
bmcvc3R5bGUvTmluZVBpZWNlSW1hZ2UuaCBcCkBAIC0yMzkzLDYgKzIzOTQsNyBAQCBIRUFERVJT
ICs9IFwKICAgICByZW5kZXJpbmcvc3R5bGUvU3R5bGVCb3hEYXRhLmggXAogICAgIHJlbmRlcmlu
Zy9zdHlsZS9TdHlsZUNhY2hlZEltYWdlLmggXAogICAgIHJlbmRlcmluZy9zdHlsZS9TdHlsZUNh
Y2hlZFNoYWRlci5oIFwKKyAgICByZW5kZXJpbmcvc3R5bGUvU3R5bGVDdXN0b21GaWx0ZXJQcm9n
cmFtLmggXAogICAgIHJlbmRlcmluZy9zdHlsZS9TdHlsZURlcHJlY2F0ZWRGbGV4aWJsZUJveERh
dGEuaCBcCiAgICAgcmVuZGVyaW5nL3N0eWxlL1N0eWxlRmlsdGVyRGF0YS5oIFwKICAgICByZW5k
ZXJpbmcvc3R5bGUvU3R5bGVGbGV4aWJsZUJveERhdGEuaCBcCkBAIC0zMjUyLDYgKzMyNTQsNyBA
QCBjb250YWlucyhERUZJTkVTLCBFTkFCTEVfRklMVEVSUz0xKSB7CiAgICAgU09VUkNFUyArPSBc
CiAgICAgICAgIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvQ3VzdG9tRmlsdGVyTWVzaC5jcHAg
XAogICAgICAgICBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0N1c3RvbUZpbHRlclNoYWRlci5j
cHAgXAorICAgICAgICBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0N1c3RvbUZpbHRlclByb2dy
YW0uY3BwIFwKICAgICAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9EaXN0YW50TGlnaHRT
b3VyY2UuY3BwIFwKICAgICAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUJsZW5kLmNw
cCBcCiAgICAgICAgIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVDb2xvck1hdHJpeC5jcHAg
XApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpIGIvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS5neXBpCmluZGV4IDNhYzk5YWMuLjg4OGIxMDcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkK
QEAgLTM2NzQsNiArMzY3NCw5IEBACiAgICAgICAgICAgICAncGxhdGZvcm0vZ3JhcGhpY3MvZmls
dGVycy9DdXN0b21GaWx0ZXJNZXNoLmgnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL2dyYXBoaWNz
L2ZpbHRlcnMvQ3VzdG9tRmlsdGVyU2hhZGVyLmNwcCcsCiAgICAgICAgICAgICAncGxhdGZvcm0v
Z3JhcGhpY3MvZmlsdGVycy9DdXN0b21GaWx0ZXJTaGFkZXIuaCcsCisgICAgICAgICAgICAncGxh
dGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9DdXN0b21GaWx0ZXJPcGVyYXRpb24uaCcsCisgICAgICAg
ICAgICAncGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9DdXN0b21GaWx0ZXJQcm9ncmFtLmNwcCcs
CisgICAgICAgICAgICAncGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9DdXN0b21GaWx0ZXJQcm9n
cmFtLmgnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRGlzdGFudExp
Z2h0U291cmNlLmNwcCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9E
aXN0YW50TGlnaHRTb3VyY2UuaCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vZ3JhcGhpY3MvZmls
dGVycy9GRUJsZW5kLmNwcCcsCkBAIC00ODI1LDcgKzQ4MjgsNiBAQAogICAgICAgICAgICAgJ3Jl
bmRlcmluZy9tYXRobWwvUmVuZGVyTWF0aE1MVW5kZXJPdmVyLmgnLAogICAgICAgICAgICAgJ3Jl
bmRlcmluZy9zdHlsZS9Db250ZW50RGF0YS5jcHAnLAogICAgICAgICAgICAgJ3JlbmRlcmluZy9z
dHlsZS9Db3VudGVyRGlyZWN0aXZlcy5jcHAnLAotICAgICAgICAgICAgJ3JlbmRlcmluZy9zdHls
ZS9DdXN0b21GaWx0ZXJPcGVyYXRpb24uaCcsCiAgICAgICAgICAgICAncmVuZGVyaW5nL3N0eWxl
L0ZpbGxMYXllci5jcHAnLAogICAgICAgICAgICAgJ3JlbmRlcmluZy9zdHlsZS9LZXlmcmFtZUxp
c3QuY3BwJywKICAgICAgICAgICAgICdyZW5kZXJpbmcvc3R5bGUvS2V5ZnJhbWVMaXN0LmgnLApA
QCAtNDg0MCw2ICs0ODQyLDcgQEAKICAgICAgICAgICAgICdyZW5kZXJpbmcvc3R5bGUvU3R5bGVD
YWNoZWRJbWFnZS5jcHAnLAogICAgICAgICAgICAgJ3JlbmRlcmluZy9zdHlsZS9TdHlsZUNhY2hl
ZFNoYWRlci5oJywKICAgICAgICAgICAgICdyZW5kZXJpbmcvc3R5bGUvU3R5bGVDYWNoZWRTaGFk
ZXIuY3BwJywKKyAgICAgICAgICAgICdyZW5kZXJpbmcvc3R5bGUvU3R5bGVDdXN0b21GaWx0ZXJQ
cm9ncmFtLmgnLAogICAgICAgICAgICAgJ3JlbmRlcmluZy9zdHlsZS9TdHlsZURlcHJlY2F0ZWRG
bGV4aWJsZUJveERhdGEuY3BwJywKICAgICAgICAgICAgICdyZW5kZXJpbmcvc3R5bGUvU3R5bGVG
aWx0ZXJEYXRhLmNwcCcsCiAgICAgICAgICAgICAncmVuZGVyaW5nL3N0eWxlL1N0eWxlRmxleGli
bGVCb3hEYXRhLmNwcCcsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJv
ai9XZWJDb3JlLnZjcHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUu
dmNwcm9qCmluZGV4IDBhMDdkNjcuLmFmODE2Y2IgMTAwNzU1Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCkBAIC0yOTYwMCw2ICsyOTYwMCwyMiBAQAogCQkJCQkJ
PgogCQkJCQk8L0ZpbGU+CiAJCQkJCTxGaWxlCisJCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHBsYXRm
b3JtXGdyYXBoaWNzXGZpbHRlcnNcQ3VzdG9tRmlsdGVyT3BlcmF0aW9uLmgiCisJCQkJCQk+CisJ
CQkJCTwvRmlsZT4KKwkJCQkJPEZpbGUKKwkJCQkJCVJlbGF0aXZlUGF0aD0iLi5ccGxhdGZvcm1c
Z3JhcGhpY3NcZmlsdGVyc1xDdXN0b21GaWx0ZXJQcm9ncmFtLmNwcCIKKwkJCQkJCT4KKwkJCQkJ
PC9GaWxlPgorCQkJCQk8RmlsZQorCQkJCQkJUmVsYXRpdmVQYXRoPSIuLlxwbGF0Zm9ybVxncmFw
aGljc1xmaWx0ZXJzXEN1c3RvbUZpbHRlclByb2dyYW0uaCIKKwkJCQkJCT4KKwkJCQkJPC9GaWxl
PgorCQkJCQk8RmlsZQorCQkJCQkJUmVsYXRpdmVQYXRoPSIuLlxwbGF0Zm9ybVxncmFwaGljc1xm
aWx0ZXJzXEN1c3RvbUZpbHRlclByb2dyYW1DbGllbnQuaCIKKwkJCQkJCT4KKwkJCQkJPC9GaWxl
PgorCQkJCQk8RmlsZQogCQkJCQkJUmVsYXRpdmVQYXRoPSIuLlxwbGF0Zm9ybVxncmFwaGljc1xm
aWx0ZXJzXEN1c3RvbUZpbHRlclNoYWRlci5jcHAiCiAJCQkJCQk+CiAJCQkJCTwvRmlsZT4KQEAg
LTQyNDU5LDEwICs0MjQ3NSw2IEBACiAJCQkJCT4KIAkJCQk8L0ZpbGU+CiAJCQkJPEZpbGUKLQkJ
CQkJUmVsYXRpdmVQYXRoPSIuLlxyZW5kZXJpbmdcc3R5bGVcQ3VzdG9tRmlsdGVyT3BlcmF0aW9u
LmgiCi0JCQkJCT4KLQkJCQk8L0ZpbGU+Ci0JCQkJPEZpbGUKIAkJCQkJUmVsYXRpdmVQYXRoPSIu
LlxyZW5kZXJpbmdcc3R5bGVcRGF0YVJlZi5oIgogCQkJCQk+CiAJCQkJPC9GaWxlPgpAQCAtNDI1
MjMsMjYgKzQyNTM1LDYgQEAKIAkJCQkJPgogCQkJCTwvRmlsZT4KIAkJCQk8RmlsZQotCQkJCQlS
ZWxhdGl2ZVBhdGg9Ii4uXHJlbmRlcmluZ1xzdHlsZVxGaWx0ZXJPcGVyYXRpb24uY3BwIgotCQkJ
CQk+Ci0JCQkJPC9GaWxlPgotCQkJCTxGaWxlCi0JCQkJCVJlbGF0aXZlUGF0aD0iLi5ccmVuZGVy
aW5nXHN0eWxlXEZpbHRlck9wZXJhdGlvbi5oIgotCQkJCQk+Ci0JCQkJPC9GaWxlPgotCQkJCTxG
aWxlCi0JCQkJCVJlbGF0aXZlUGF0aD0iLi5ccmVuZGVyaW5nXHN0eWxlXEZpbHRlck9wZXJhdGlv
bnMuY3BwIgotCQkJCQk+Ci0JCQkJPC9GaWxlPgotCQkJCTxGaWxlCi0JCQkJCVJlbGF0aXZlUGF0
aD0iLi5ccmVuZGVyaW5nXHN0eWxlXEZpbHRlck9wZXJhdGlvbnMuaCIKLQkJCQkJPgotCQkJCTwv
RmlsZT4KLQkJCQk8RmlsZQotCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHJlbmRlcmluZ1xzdHlsZVxD
dXN0b21GaWx0ZXJPcGVyYXRpb24uaCIKLQkJCQkJPgotCQkJCTwvRmlsZT4KLQkJCQk8RmlsZQog
CQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHJlbmRlcmluZ1xzdHlsZVxLZXlmcmFtZUxpc3QuY3BwIgog
CQkJCQk+CiAJCQkJCTxGaWxlQ29uZmlndXJhdGlvbgpAQCAtNDMwMTEsNiArNDMwMDMsMTAgQEAK
IAkJCQkJPgogCQkJCTwvRmlsZT4KIAkJCQk8RmlsZQorCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHJl
bmRlcmluZ1xzdHlsZVxTdHlsZUN1c3RvbUZpbHRlclByb2dyYW0uaCIKKwkJCQkJPgorCQkJCTwv
RmlsZT4KKwkJCQk8RmlsZQogCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHJlbmRlcmluZ1xzdHlsZVxT
dHlsZURlcHJlY2F0ZWRGbGV4aWJsZUJveERhdGEuY3BwIgogCQkJCQk+CiAJCQkJCTxGaWxlQ29u
ZmlndXJhdGlvbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCmluZGV4IGM0NjZlYzYuLjgwZjQzMWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTEzOTIsOSArMTM5MiwxMyBA
QAogCQk1MDM4QkUzMDE0NzJBRDIzMDA5NUUwRDEgLyogU3R5bGVDYWNoZWRTaGFkZXIuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUwMzhCRTJFMTQ3MkFE
MjMwMDk1RTBEMSAvKiBTdHlsZUNhY2hlZFNoYWRlci5oICovOyB9OwogCQk1MDM4QkU0MDE0NzJB
RDk4MDA5NUUwRDEgLyogQ2FjaGVkU2hhZGVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUwMzhCRTNFMTQ3MkFEOTgwMDk1RTBEMSAvKiBDYWNoZWRT
aGFkZXIuY3BwICovOyB9OwogCQk1MDM4QkU0MTE0NzJBRDk4MDA5NUUwRDEgLyogQ2FjaGVkU2hh
ZGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MDM4
QkUzRjE0NzJBRDk4MDA5NUUwRDEgLyogQ2FjaGVkU2hhZGVyLmggKi87IH07Ci0JCTUwMzhCRjI4
MTQ3NTBGMTkwMDk1RTBEMSAvKiBDdXN0b21GaWx0ZXJPcGVyYXRpb24uaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUwMzhCRjI0MTQ3NTBGMTkwMDk1RTBE
MSAvKiBDdXN0b21GaWx0ZXJPcGVyYXRpb24uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OworCQk1MDNEMENBQTE0QjVCMDg3MDBGMzJGNTcgLyogQ3VzdG9t
RmlsdGVyUHJvZ3JhbS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA1MDNEMENBNzE0QjVCMDg3MDBGMzJGNTcgLyogQ3VzdG9tRmlsdGVyUHJvZ3JhbS5j
cHAgKi87IH07CisJCTUwM0QwQ0FCMTRCNUIwODcwMEYzMkY1NyAvKiBDdXN0b21GaWx0ZXJQcm9n
cmFtLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MDNE
MENBODE0QjVCMDg3MDBGMzJGNTcgLyogQ3VzdG9tRmlsdGVyUHJvZ3JhbS5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKCk7IH07IH07CisJCTUwM0QwQ0FDMTRCNUIwODcwMEYzMkY1NyAv
KiBDdXN0b21GaWx0ZXJQcm9ncmFtQ2xpZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA1MDNEMENBOTE0QjVCMDg3MDBGMzJGNTcgLyogQ3VzdG9tRmls
dGVyUHJvZ3JhbUNsaWVudC5oICovOyB9OworCQk1MDNEMENBRTE0QjVCMEJBMDBGMzJGNTcgLyog
U3R5bGVDdXN0b21GaWx0ZXJQcm9ncmFtLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA1MDNEMENBRDE0QjVCMEJBMDBGMzJGNTcgLyogU3R5bGVDdXN0b21G
aWx0ZXJQcm9ncmFtLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoKTsgfTsgfTsKIAkJ
NTA4Q0NBNEYxM0NGMTA2QjAwMzE1MUYzIC8qIFJlbmRlckZsb3dUaHJlYWQuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUwOENDQTREMTNDRjEwNkIwMDMx
NTFGMyAvKiBSZW5kZXJGbG93VGhyZWFkLmggKi87IH07CiAJCTUwOENDQTUwMTNDRjEwNkIwMDMx
NTFGMyAvKiBSZW5kZXJGbG93VGhyZWFkLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDUwOENDQTRFMTNDRjEwNkIwMDMxNTFGMyAvKiBSZW5kZXJGbG93
VGhyZWFkLmNwcCAqLzsgfTsKKwkJNTBBQ0UyQ0IxNEI1RDc5MzAwNDQ2NjY2IC8qIEN1c3RvbUZp
bHRlck9wZXJhdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNTBBQ0UyQ0ExNEI1RDc5MzAwNDQ2NjY2IC8qIEN1c3RvbUZpbHRlck9wZXJhdGlvbi5o
ICovOyB9OwogCQk1MEQ0MDNDNzE0NzY4Qzk0MDBEMzBCQjUgLyogRkVDdXN0b21GaWx0ZXIuY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTBENDAzQzUx
NDc2OEM5NDAwRDMwQkI1IC8qIEZFQ3VzdG9tRmlsdGVyLmNwcCAqLzsgfTsKIAkJNTBENDAzQzgx
NDc2OEM5NDAwRDMwQkI1IC8qIEZFQ3VzdG9tRmlsdGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MEQ0MDNDNjE0NzY4Qzk0MDBEMzBCQjUgLyogRkVD
dXN0b21GaWx0ZXIuaCAqLzsgfTsKIAkJNTBENDA1RjkxNDdEMzFGMzAwRDMwQkI1IC8qIEN1c3Rv
bUZpbHRlck1lc2guY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNTBENDA1RjcxNDdEMzFGMzAwRDMwQkI1IC8qIEN1c3RvbUZpbHRlck1lc2guY3BwICov
OyB9OwpAQCAtODY1Nyw5ICs4NjYxLDEzIEBACiAJCTUwMzhCRTJFMTQ3MkFEMjMwMDk1RTBEMSAv
KiBTdHlsZUNhY2hlZFNoYWRlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBT
dHlsZUNhY2hlZFNoYWRlci5oOyBwYXRoID0gc3R5bGUvU3R5bGVDYWNoZWRTaGFkZXIuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTAzOEJFM0UxNDcyQUQ5ODAwOTVFMEQxIC8qIENh
Y2hlZFNoYWRlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDYWNo
ZWRTaGFkZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MDM4QkUzRjE0NzJB
RDk4MDA5NUUwRDEgLyogQ2FjaGVkU2hhZGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IENhY2hlZFNoYWRlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk1MDM4
QkYyNDE0NzUwRjE5MDA5NUUwRDEgLyogQ3VzdG9tRmlsdGVyT3BlcmF0aW9uLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IEN1c3RvbUZpbHRlck9wZXJhdGlvbi5oOyBwYXRoID0g
c3R5bGUvQ3VzdG9tRmlsdGVyT3BlcmF0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCTUwM0QwQ0E3MTRCNUIwODcwMEYzMkY1NyAvKiBDdXN0b21GaWx0ZXJQcm9ncmFtLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IEN1c3RvbUZpbHRlclByb2dyYW0u
Y3BwOyBwYXRoID0gZmlsdGVycy9DdXN0b21GaWx0ZXJQcm9ncmFtLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJNTAzRDBDQTgxNEI1QjA4NzAwRjMyRjU3IC8qIEN1c3RvbUZpbHRl
clByb2dyYW0uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gQ3VzdG9tRmlsdGVy
UHJvZ3JhbS5oOyBwYXRoID0gZmlsdGVycy9DdXN0b21GaWx0ZXJQcm9ncmFtLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCTUwM0QwQ0E5MTRCNUIwODcwMEYzMkY1NyAvKiBDdXN0b21G
aWx0ZXJQcm9ncmFtQ2xpZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IEN1
c3RvbUZpbHRlclByb2dyYW1DbGllbnQuaDsgcGF0aCA9IGZpbHRlcnMvQ3VzdG9tRmlsdGVyUHJv
Z3JhbUNsaWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1MDNEMENBRDE0QjVC
MEJBMDBGMzJGNTcgLyogU3R5bGVDdXN0b21GaWx0ZXJQcm9ncmFtLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgbmFtZSA9IFN0eWxlQ3VzdG9tRmlsdGVyUHJvZ3JhbS5oOyBwYXRoID0gc3R5
bGUvU3R5bGVDdXN0b21GaWx0ZXJQcm9ncmFtLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTUwOENDQTREMTNDRjEwNkIwMDMxNTFGMyAvKiBSZW5kZXJGbG93VGhyZWFkLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbmRlckZsb3dUaHJlYWQuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTA4Q0NBNEUxM0NGMTA2QjAwMzE1MUYzIC8qIFJlbmRlckZs
b3dUaHJlYWQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVuZGVy
Rmxvd1RocmVhZC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTUwQUNFMkNBMTRC
NUQ3OTMwMDQ0NjY2NiAvKiBDdXN0b21GaWx0ZXJPcGVyYXRpb24uaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBuYW1lID0gQ3VzdG9tRmlsdGVyT3BlcmF0aW9uLmg7IHBhdGggPSBmaWx0ZXJz
L0N1c3RvbUZpbHRlck9wZXJhdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1
MEI0MjE1NzE0Njk3Njk2MDA4N0U2MDQgLyogV2ViS2l0Q1NTU2hhZGVyVmFsdWUuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViS2l0Q1NTU2hhZGVyVmFsdWUuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTBENDAzQzUxNDc2OEM5NDAwRDMwQkI1IC8qIEZFQ3Vz
dG9tRmlsdGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IEZFQ3Vz
dG9tRmlsdGVyLmNwcDsgcGF0aCA9IGZpbHRlcnMvRkVDdXN0b21GaWx0ZXIuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk1MEQ0MDNDNjE0NzY4Qzk0MDBEMzBCQjUgLyogRkVDdXN0
b21GaWx0ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gRkVDdXN0b21GaWx0
ZXIuaDsgcGF0aCA9IGZpbHRlcnMvRkVDdXN0b21GaWx0ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKQEAgLTE3NzAyLDYgKzE3NzEwLDEwIEBACiAJCUE3NUU4QjdGMEUxREUyQjAwMDdG
MjQ4MSAvKiBmaWx0ZXJzICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9
ICgKKwkJCQk1MEFDRTJDQTE0QjVENzkzMDA0NDY2NjYgLyogQ3VzdG9tRmlsdGVyT3BlcmF0aW9u
LmggKi8sCisJCQkJNTAzRDBDQTcxNEI1QjA4NzAwRjMyRjU3IC8qIEN1c3RvbUZpbHRlclByb2dy
YW0uY3BwICovLAorCQkJCTUwM0QwQ0E4MTRCNUIwODcwMEYzMkY1NyAvKiBDdXN0b21GaWx0ZXJQ
cm9ncmFtLmggKi8sCisJCQkJNTAzRDBDQTkxNEI1QjA4NzAwRjMyRjU3IC8qIEN1c3RvbUZpbHRl
clByb2dyYW1DbGllbnQuaCAqLywKIAkJCQk0OUVDRUI1QzE0OTk3OTBEMDBDREQzQTQgLyogYXJt
ICovLAogCQkJCTUwRDQwNUY3MTQ3RDMxRjMwMEQzMEJCNSAvKiBDdXN0b21GaWx0ZXJNZXNoLmNw
cCAqLywKIAkJCQk1MEQ0MDVGODE0N0QzMUYzMDBEMzBCQjUgLyogQ3VzdG9tRmlsdGVyTWVzaC5o
ICovLApAQCAtMTk4ODYsNiArMTk4OTgsNyBAQAogCQlCQzhDOEZBQTBERENEMkYyMDBCNTkyRjQg
Lyogc3R5bGUgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAorCQkJ
CTUwM0QwQ0FEMTRCNUIwQkEwMEYzMkY1NyAvKiBTdHlsZUN1c3RvbUZpbHRlclByb2dyYW0uaCAq
LywKIAkJCQlCQzVFQjVFMDBFODFCRTg3MDBCMjU5NjUgLyogQm9yZGVyRGF0YS5oICovLAogCQkJ
CUJDNUVCNURBMEU4MUI3RUEwMEIyNTk2NSAvKiBCb3JkZXJWYWx1ZS5oICovLAogCQkJCUJDNUVC
NURFMEU4MUI5QUIwMEIyNTk2NSAvKiBDb2xsYXBzZWRCb3JkZXJWYWx1ZS5oICovLApAQCAtMTk4
OTYsNyArMTk5MDksNiBAQAogCQkJCUJDNUVCOTRGMEU4MjA1NkIwMEIyNTk2NSAvKiBDb3VudGVy
RGlyZWN0aXZlcy5oICovLAogCQkJCUJDMjI3MkExMEU4MkU4N0MwMEU3Rjk3NSAvKiBDdXJzb3JE
YXRhLmggKi8sCiAJCQkJQkMyMjcyQUMwRTgyRThGMzAwRTdGOTc1IC8qIEN1cnNvckxpc3QuaCAq
LywKLQkJCQk1MDM4QkYyNDE0NzUwRjE5MDA5NUUwRDEgLyogQ3VzdG9tRmlsdGVyT3BlcmF0aW9u
LmggKi8sCiAJCQkJQkMyMjc0NkUwRTgzNjY0NTAwRTdGOTc1IC8qIERhdGFSZWYuaCAqLywKIAkJ
CQlCQzVFQjY5QzBFODFEQUVCMDBCMjU5NjUgLyogRmlsbExheWVyLmNwcCAqLywKIAkJCQlCQzVF
QjY5RDBFODFEQUVCMDBCMjU5NjUgLyogRmlsbExheWVyLmggKi8sCkBAIC0yMjExMCw3ICsyMjEy
Miw2IEBACiAJCQkJQkMyMjcyQUQwRTgyRThGMzAwRTdGOTc1IC8qIEN1cnNvckxpc3QuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTYyQ0QzMjVBMTE1N0U1N0MwMDYzQjBBNyAvKiBDdXN0b21FdmVudC5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJNTBENDA1RkExNDdEMzFGMzAwRDMwQkI1IC8qIEN1c3RvbUZp
bHRlck1lc2guaCBpbiBIZWFkZXJzICovLAotCQkJCTUwMzhCRjI4MTQ3NTBGMTkwMDk1RTBEMSAv
KiBDdXN0b21GaWx0ZXJPcGVyYXRpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCTUwRDQwNjEyMTQ3
RDQ5REUwMEQzMEJCNSAvKiBDdXN0b21GaWx0ZXJTaGFkZXIuaCBpbiBIZWFkZXJzICovLAogCQkJ
CUE4Q0I0MTNFMEU4NjMzRkQwMDMyQzRGMCAvKiBEYXNoQXJyYXkuaCBpbiBIZWFkZXJzICovLAog
CQkJCUE4MEU2RDBCMEExOTg5Q0EwMDdGQjhDNSAvKiBEYXNoYm9hcmRSZWdpb24uaCBpbiBIZWFk
ZXJzICovLApAQCAtMjQ4OTAsNiArMjQ5MDEsMTAgQEAKIAkJCQlGRDUzNzM1MzEzN0I2NTE4MDAw
MDhEQ0UgLyogWmVyb1BvbGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTk3NEE4NjIzMTRCN0FEQkIw
MDNGREM3NiAvKiBGcmFtZURlc3RydWN0aW9uT2JzZXJ2ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTk3RDJBRDA0MTRCODIzQTYwMDkzREYzMiAvKiBET01XaW5kb3dQcm9wZXJ0eS5oIGluIEhlYWRl
cnMgKi8sCisJCQkJNTAzRDBDQUIxNEI1QjA4NzAwRjMyRjU3IC8qIEN1c3RvbUZpbHRlclByb2dy
YW0uaCBpbiBIZWFkZXJzICovLAorCQkJCTUwM0QwQ0FDMTRCNUIwODcwMEYzMkY1NyAvKiBDdXN0
b21GaWx0ZXJQcm9ncmFtQ2xpZW50LmggaW4gSGVhZGVycyAqLywKKwkJCQk1MDNEMENBRTE0QjVC
MEJBMDBGMzJGNTcgLyogU3R5bGVDdXN0b21GaWx0ZXJQcm9ncmFtLmggaW4gSGVhZGVycyAqLywK
KwkJCQk1MEFDRTJDQjE0QjVENzkzMDA0NDY2NjYgLyogQ3VzdG9tRmlsdGVyT3BlcmF0aW9uLmgg
aW4gSGVhZGVycyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNz
aW5nID0gMDsKIAkJfTsKQEAgLTI3Nzk1LDYgKzI3ODEwLDcgQEAKIAkJCQlGRDUzNzM1MjEzN0I2
NTE4MDAwMDhEQ0UgLyogWmVyb1BvbGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJOTc0QTg2MjIx
NEI3QURCQjAwM0ZEQzc2IC8qIEZyYW1lRGVzdHJ1Y3Rpb25PYnNlcnZlci5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQk5N0QyQUQwMzE0QjgyM0E2MDA5M0RGMzIgLyogRE9NV2luZG93UHJvcGVydHku
Y3BwIGluIFNvdXJjZXMgKi8sCisJCQkJNTAzRDBDQUExNEI1QjA4NzAwRjMyRjU3IC8qIEN1c3Rv
bUZpbHRlclByb2dyYW0uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRl
cGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9jc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9DU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24uY3BwCmluZGV4IDNlMGRjOGMuLjFmZGUx
ODkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDb21wdXRlZFN0eWxlRGVjbGFy
YXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDb21wdXRlZFN0eWxlRGVjbGFy
YXRpb24uY3BwCkBAIC01Niw2ICs1Niw3IEBACiAjaW5jbHVkZSAiUmVuZGVyU3R5bGUuaCIKICNp
bmNsdWRlICJTaGFkb3dWYWx1ZS5oIgogI2lmIEVOQUJMRShDU1NfRklMVEVSUykKKyNpbmNsdWRl
ICJTdHlsZUN1c3RvbUZpbHRlclByb2dyYW0uaCIKICNpbmNsdWRlICJXZWJLaXRDU1NGaWx0ZXJW
YWx1ZS5oIgogI2VuZGlmCiAjaW5jbHVkZSAiV2ViS2l0Q1NTVHJhbnNmb3JtVmFsdWUuaCIKQEAg
LTc1MywxMyArNzU0LDE2IEBAIFBhc3NSZWZQdHI8Q1NTVmFsdWU+IENTU0NvbXB1dGVkU3R5bGVE
ZWNsYXJhdGlvbjo6dmFsdWVGb3JGaWx0ZXIoUmVuZGVyU3R5bGUqIHN0CiAgICAgICAgICAgICAK
ICAgICAgICAgICAgIC8vIFRoZSBvdXRwdXQgc2hvdWxkIGJlIHZlcmJvc2UsIGV2ZW4gaWYgdGhl
IHZhbHVlcyBhcmUgdGhlIGRlZmF1bHQgb25lcy4KICAgICAgICAgICAgIAorICAgICAgICAgICAg
QVNTRVJUKGN1c3RvbU9wZXJhdGlvbi0+cHJvZ3JhbSgpKTsKKyAgICAgICAgICAgIFN0eWxlQ3Vz
dG9tRmlsdGVyUHJvZ3JhbSogcHJvZ3JhbSA9IHN0YXRpY19jYXN0PFN0eWxlQ3VzdG9tRmlsdGVy
UHJvZ3JhbSo+KGN1c3RvbU9wZXJhdGlvbi0+cHJvZ3JhbSgpKTsKKyAgICAgICAgICAgIAogICAg
ICAgICAgICAgUmVmUHRyPENTU1ZhbHVlTGlzdD4gc2hhZGVyc0xpc3QgPSBDU1NWYWx1ZUxpc3Q6
OmNyZWF0ZVNwYWNlU2VwYXJhdGVkKCk7Ci0gICAgICAgICAgICBpZiAoY3VzdG9tT3BlcmF0aW9u
LT52ZXJ0ZXhTaGFkZXIoKSkKLSAgICAgICAgICAgICAgICBzaGFkZXJzTGlzdC0+YXBwZW5kKGN1
c3RvbU9wZXJhdGlvbi0+dmVydGV4U2hhZGVyKCktPmNzc1ZhbHVlKCkpOworICAgICAgICAgICAg
aWYgKHByb2dyYW0tPnZlcnRleFNoYWRlcigpKQorICAgICAgICAgICAgICAgIHNoYWRlcnNMaXN0
LT5hcHBlbmQocHJvZ3JhbS0+dmVydGV4U2hhZGVyKCktPmNzc1ZhbHVlKCkpOwogICAgICAgICAg
ICAgZWxzZQogICAgICAgICAgICAgICAgIHNoYWRlcnNMaXN0LT5hcHBlbmQoY3NzVmFsdWVQb29s
LT5jcmVhdGVJZGVudGlmaWVyVmFsdWUoQ1NTVmFsdWVOb25lKSk7Ci0gICAgICAgICAgICBpZiAo
Y3VzdG9tT3BlcmF0aW9uLT5mcmFnbWVudFNoYWRlcigpKQotICAgICAgICAgICAgICAgIHNoYWRl
cnNMaXN0LT5hcHBlbmQoY3VzdG9tT3BlcmF0aW9uLT5mcmFnbWVudFNoYWRlcigpLT5jc3NWYWx1
ZSgpKTsKKyAgICAgICAgICAgIGlmIChwcm9ncmFtLT5mcmFnbWVudFNoYWRlcigpKQorICAgICAg
ICAgICAgICAgIHNoYWRlcnNMaXN0LT5hcHBlbmQocHJvZ3JhbS0+ZnJhZ21lbnRTaGFkZXIoKS0+
Y3NzVmFsdWUoKSk7CiAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgc2hhZGVyc0xp
c3QtPmFwcGVuZChjc3NWYWx1ZVBvb2wtPmNyZWF0ZUlkZW50aWZpZXJWYWx1ZShDU1NWYWx1ZU5v
bmUpKTsKICAgICAgICAgICAgIGZpbHRlclZhbHVlLT5hcHBlbmQoc2hhZGVyc0xpc3QucmVsZWFz
ZSgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHlsZVNlbGVjdG9yLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHlsZVNlbGVjdG9yLmNwcAppbmRleCBiMDI4MmMx
Li5lYzc4ZDkwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU3R5bGVTZWxlY3Rv
ci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1N0eWxlU2VsZWN0b3IuY3BwCkBAIC0x
MjUsNiArMTI1LDcgQEAKICNpZiBFTkFCTEUoQ1NTX1NIQURFUlMpCiAjaW5jbHVkZSAiQ3VzdG9t
RmlsdGVyT3BlcmF0aW9uLmgiCiAjaW5jbHVkZSAiU3R5bGVDYWNoZWRTaGFkZXIuaCIKKyNpbmNs
dWRlICJTdHlsZUN1c3RvbUZpbHRlclByb2dyYW0uaCIKICNpbmNsdWRlICJTdHlsZVBlbmRpbmdT
aGFkZXIuaCIKICNpbmNsdWRlICJTdHlsZVNoYWRlci5oIgogI2luY2x1ZGUgIldlYktpdENTU1No
YWRlclZhbHVlLmgiCkBAIC01MDg0LDEzICs1MDg1LDE1IEBAIHZvaWQgQ1NTU3R5bGVTZWxlY3Rv
cjo6bG9hZFBlbmRpbmdTaGFkZXJzKCkKICAgICAgICAgUmVmUHRyPEZpbHRlck9wZXJhdGlvbj4g
ZmlsdGVyT3BlcmF0aW9uID0gZmlsdGVyT3BlcmF0aW9ucy5hdChpKTsKICAgICAgICAgaWYgKGZp
bHRlck9wZXJhdGlvbi0+Z2V0T3BlcmF0aW9uVHlwZSgpID09IEZpbHRlck9wZXJhdGlvbjo6Q1VT
VE9NKSB7CiAgICAgICAgICAgICBDdXN0b21GaWx0ZXJPcGVyYXRpb24qIGN1c3RvbUZpbHRlciA9
IHN0YXRpY19jYXN0PEN1c3RvbUZpbHRlck9wZXJhdGlvbio+KGZpbHRlck9wZXJhdGlvbi5nZXQo
KSk7Ci0gICAgICAgICAgICBpZiAoY3VzdG9tRmlsdGVyLT52ZXJ0ZXhTaGFkZXIoKSAmJiBjdXN0
b21GaWx0ZXItPnZlcnRleFNoYWRlcigpLT5pc1BlbmRpbmdTaGFkZXIoKSkgewotICAgICAgICAg
ICAgICAgIFdlYktpdENTU1NoYWRlclZhbHVlKiBzaGFkZXJWYWx1ZSA9IHN0YXRpY19jYXN0PFN0
eWxlUGVuZGluZ1NoYWRlcio+KGN1c3RvbUZpbHRlci0+dmVydGV4U2hhZGVyKCkpLT5jc3NTaGFk
ZXJWYWx1ZSgpOwotICAgICAgICAgICAgICAgIGN1c3RvbUZpbHRlci0+c2V0VmVydGV4U2hhZGVy
KHNoYWRlclZhbHVlLT5jYWNoZWRTaGFkZXIoY2FjaGVkUmVzb3VyY2VMb2FkZXIpKTsKKyAgICAg
ICAgICAgIEFTU0VSVChjdXN0b21GaWx0ZXItPnByb2dyYW0oKSk7CisgICAgICAgICAgICBTdHls
ZUN1c3RvbUZpbHRlclByb2dyYW0qIHByb2dyYW0gPSBzdGF0aWNfY2FzdDxTdHlsZUN1c3RvbUZp
bHRlclByb2dyYW0qPihjdXN0b21GaWx0ZXItPnByb2dyYW0oKSk7CisgICAgICAgICAgICBpZiAo
cHJvZ3JhbS0+dmVydGV4U2hhZGVyKCkgJiYgcHJvZ3JhbS0+dmVydGV4U2hhZGVyKCktPmlzUGVu
ZGluZ1NoYWRlcigpKSB7CisgICAgICAgICAgICAgICAgV2ViS2l0Q1NTU2hhZGVyVmFsdWUqIHNo
YWRlclZhbHVlID0gc3RhdGljX2Nhc3Q8U3R5bGVQZW5kaW5nU2hhZGVyKj4ocHJvZ3JhbS0+dmVy
dGV4U2hhZGVyKCkpLT5jc3NTaGFkZXJWYWx1ZSgpOworICAgICAgICAgICAgICAgIHByb2dyYW0t
PnNldFZlcnRleFNoYWRlcihzaGFkZXJWYWx1ZS0+Y2FjaGVkU2hhZGVyKGNhY2hlZFJlc291cmNl
TG9hZGVyKSk7CiAgICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiAoY3VzdG9tRmlsdGVyLT5m
cmFnbWVudFNoYWRlcigpICYmIGN1c3RvbUZpbHRlci0+ZnJhZ21lbnRTaGFkZXIoKS0+aXNQZW5k
aW5nU2hhZGVyKCkpIHsKLSAgICAgICAgICAgICAgICBXZWJLaXRDU1NTaGFkZXJWYWx1ZSogc2hh
ZGVyVmFsdWUgPSBzdGF0aWNfY2FzdDxTdHlsZVBlbmRpbmdTaGFkZXIqPihjdXN0b21GaWx0ZXIt
PmZyYWdtZW50U2hhZGVyKCkpLT5jc3NTaGFkZXJWYWx1ZSgpOwotICAgICAgICAgICAgICAgIGN1
c3RvbUZpbHRlci0+c2V0RnJhZ21lbnRTaGFkZXIoc2hhZGVyVmFsdWUtPmNhY2hlZFNoYWRlcihj
YWNoZWRSZXNvdXJjZUxvYWRlcikpOworICAgICAgICAgICAgaWYgKHByb2dyYW0tPmZyYWdtZW50
U2hhZGVyKCkgJiYgcHJvZ3JhbS0+ZnJhZ21lbnRTaGFkZXIoKS0+aXNQZW5kaW5nU2hhZGVyKCkp
IHsKKyAgICAgICAgICAgICAgICBXZWJLaXRDU1NTaGFkZXJWYWx1ZSogc2hhZGVyVmFsdWUgPSBz
dGF0aWNfY2FzdDxTdHlsZVBlbmRpbmdTaGFkZXIqPihwcm9ncmFtLT5mcmFnbWVudFNoYWRlcigp
KS0+Y3NzU2hhZGVyVmFsdWUoKTsKKyAgICAgICAgICAgICAgICBwcm9ncmFtLT5zZXRGcmFnbWVu
dFNoYWRlcihzaGFkZXJWYWx1ZS0+Y2FjaGVkU2hhZGVyKGNhY2hlZFJlc291cmNlTG9hZGVyKSk7
CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICB9CkBAIC01MTU5LDggKzUxNjIsOCBAQCBQ
YXNzUmVmUHRyPEN1c3RvbUZpbHRlck9wZXJhdGlvbj4gQ1NTU3R5bGVTZWxlY3Rvcjo6Y3JlYXRl
Q3VzdG9tRmlsdGVyT3BlcmF0aW9uKAogICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAgfQot
ICAgIAotICAgIHJldHVybiBDdXN0b21GaWx0ZXJPcGVyYXRpb246OmNyZWF0ZSh2ZXJ0ZXhTaGFk
ZXIsIGZyYWdtZW50U2hhZGVyLCBtZXNoUm93cywgbWVzaENvbHVtbnMsIG1lc2hCb3hUeXBlLCBt
ZXNoVHlwZSk7CisgICAgUmVmUHRyPFN0eWxlQ3VzdG9tRmlsdGVyUHJvZ3JhbT4gcHJvZ3JhbSA9
IFN0eWxlQ3VzdG9tRmlsdGVyUHJvZ3JhbTo6Y3JlYXRlKHZlcnRleFNoYWRlci5yZWxlYXNlKCks
IGZyYWdtZW50U2hhZGVyLnJlbGVhc2UoKSk7CisgICAgcmV0dXJuIEN1c3RvbUZpbHRlck9wZXJh
dGlvbjo6Y3JlYXRlKHByb2dyYW0ucmVsZWFzZSgpLCBtZXNoUm93cywgbWVzaENvbHVtbnMsIG1l
c2hCb3hUeXBlLCBtZXNoVHlwZSk7CiB9CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9DdXN0b21GaWx0ZXJPcGVyYXRpb24uaCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvQ3VzdG9tRmlsdGVyT3Bl
cmF0aW9uLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzRmZTg4OAotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMv
Q3VzdG9tRmlsdGVyT3BlcmF0aW9uLmgKQEAgLTAsMCArMSwxMDQgQEAKKy8qCisgKiBDb3B5cmln
aHQgMjAxMSBBZG9iZSBTeXN0ZW1zIEluY29ycG9yYXRlZC4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqCisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlCisgKiAg
ICBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZworICogICAgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqICAgIGNvcHlyaWdodCBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nCisgKiAgICBkaXNjbGFpbWVy
IGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMKKyAqICAgIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSIOKAnEFTIElT4oCdIEFORCBBTlkKKyAqIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
VEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIFRIRSBDT1BZUklHSFQgSE9MREVSIEJFCisgKiBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksCisgKiBPUiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VS
RU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SCisgKiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YKKyAqIFRIRSBVU0UgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRgorICogU1VDSCBE
QU1BR0UuCisgKi8KKworI2lmbmRlZiBDdXN0b21GaWx0ZXJPcGVyYXRpb25faAorI2RlZmluZSBD
dXN0b21GaWx0ZXJPcGVyYXRpb25faAorCisjaWYgRU5BQkxFKENTU19TSEFERVJTKQorI2luY2x1
ZGUgIkN1c3RvbUZpbHRlclByb2dyYW0uaCIKKyNpbmNsdWRlICJGaWx0ZXJPcGVyYXRpb24uaCIK
KworbmFtZXNwYWNlIFdlYkNvcmUgeworCisvLyBDU1MgU2hhZGVycworCitjbGFzcyBDdXN0b21G
aWx0ZXJPcGVyYXRpb24gOiBwdWJsaWMgRmlsdGVyT3BlcmF0aW9uIHsKK3B1YmxpYzoKKyAgICBl
bnVtIE1lc2hCb3hUeXBlIHsKKyAgICAgICAgRklMVEVSX0JPWCwKKyAgICAgICAgQk9SREVSX0JP
WCwKKyAgICAgICAgUEFERElOR19CT1gsCisgICAgICAgIENPTlRFTlRfQk9YCisgICAgfTsKKyAg
ICAKKyAgICBlbnVtIE1lc2hUeXBlIHsKKyAgICAgICAgQVRUQUNIRUQsCisgICAgICAgIERFVEFD
SEVECisgICAgfTsKKyAgICAKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxDdXN0b21GaWx0ZXJPcGVy
YXRpb24+IGNyZWF0ZShQYXNzUmVmUHRyPEN1c3RvbUZpbHRlclByb2dyYW0+IHByb2dyYW0sIHVu
c2lnbmVkIG1lc2hSb3dzLCB1bnNpZ25lZCBtZXNoQ29sdW1ucywgTWVzaEJveFR5cGUgbWVzaEJv
eFR5cGUsIE1lc2hUeXBlIG1lc2hUeXBlKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVm
KG5ldyBDdXN0b21GaWx0ZXJPcGVyYXRpb24ocHJvZ3JhbSwgbWVzaFJvd3MsIG1lc2hDb2x1bW5z
LCBtZXNoQm94VHlwZSwgbWVzaFR5cGUpKTsKKyAgICB9CisgICAgCisgICAgQ3VzdG9tRmlsdGVy
UHJvZ3JhbSogcHJvZ3JhbSgpIGNvbnN0IHsgcmV0dXJuIG1fcHJvZ3JhbS5nZXQoKTsgfQorICAg
IAorICAgIHVuc2lnbmVkIG1lc2hSb3dzKCkgY29uc3QgeyByZXR1cm4gbV9tZXNoUm93czsgfQor
ICAgIHVuc2lnbmVkIG1lc2hDb2x1bW5zKCkgY29uc3QgeyByZXR1cm4gbV9tZXNoQ29sdW1uczsg
fQorICAgIAorICAgIE1lc2hCb3hUeXBlIG1lc2hCb3hUeXBlKCkgY29uc3QgeyByZXR1cm4gbV9t
ZXNoQm94VHlwZTsgfQorICAgIE1lc2hUeXBlIG1lc2hUeXBlKCkgY29uc3QgeyByZXR1cm4gbV9t
ZXNoVHlwZTsgfQorICAgIAorcHJpdmF0ZToKKyAgICB2aXJ0dWFsIGJvb2wgb3BlcmF0b3I9PShj
b25zdCBGaWx0ZXJPcGVyYXRpb24mIG8pIGNvbnN0CisgICAgeworICAgICAgICBpZiAoIWlzU2Ft
ZVR5cGUobykpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICAgICAgY29uc3QgQ3Vz
dG9tRmlsdGVyT3BlcmF0aW9uKiBvdGhlciA9IHN0YXRpY19jYXN0PGNvbnN0IEN1c3RvbUZpbHRl
ck9wZXJhdGlvbio+KCZvKTsKKyAgICAgICAgcmV0dXJuIG1fcHJvZ3JhbS5nZXQoKSA9PSBvdGhl
ci0+bV9wcm9ncmFtLmdldCgpCisgICAgICAgICAgICAgICAmJiBtX21lc2hSb3dzID09IG90aGVy
LT5tX21lc2hSb3dzCisgICAgICAgICAgICAgICAmJiBtX21lc2hDb2x1bW5zID09IG90aGVyLT5t
X21lc2hDb2x1bW5zCisgICAgICAgICAgICAgICAmJiBtX21lc2hCb3hUeXBlID09IG90aGVyLT5t
X21lc2hCb3hUeXBlCisgICAgICAgICAgICAgICAmJiBtX21lc2hUeXBlID09IG90aGVyLT5tX21l
c2hUeXBlOworICAgIH0KKyAgICAKKyAgICBDdXN0b21GaWx0ZXJPcGVyYXRpb24oUGFzc1JlZlB0
cjxDdXN0b21GaWx0ZXJQcm9ncmFtPiBwcm9ncmFtLCB1bnNpZ25lZCBtZXNoUm93cywgdW5zaWdu
ZWQgbWVzaENvbHVtbnMsIE1lc2hCb3hUeXBlIG1lc2hCb3hUeXBlLCBNZXNoVHlwZSBtZXNoVHlw
ZSkKKyAgICAgICAgOiBGaWx0ZXJPcGVyYXRpb24oQ1VTVE9NKQorICAgICAgICAsIG1fcHJvZ3Jh
bShwcm9ncmFtKQorICAgICAgICAsIG1fbWVzaFJvd3MobWVzaFJvd3MpCisgICAgICAgICwgbV9t
ZXNoQ29sdW1ucyhtZXNoQ29sdW1ucykKKyAgICAgICAgLCBtX21lc2hCb3hUeXBlKG1lc2hCb3hU
eXBlKQorICAgICAgICAsIG1fbWVzaFR5cGUobWVzaFR5cGUpCisgICAgeworICAgIH0KKworICAg
IFJlZlB0cjxDdXN0b21GaWx0ZXJQcm9ncmFtPiBtX3Byb2dyYW07CisgICAgCisgICAgdW5zaWdu
ZWQgbV9tZXNoUm93czsKKyAgICB1bnNpZ25lZCBtX21lc2hDb2x1bW5zOworICAgIE1lc2hCb3hU
eXBlIG1fbWVzaEJveFR5cGU7CisgICAgTWVzaFR5cGUgbV9tZXNoVHlwZTsKK307CisKK30gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShDU1NfU0hBREVSUykKKworI2Vu
ZGlmIC8vIEN1c3RvbUZpbHRlck9wZXJhdGlvbl9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0N1c3RvbUZpbHRlclByb2dyYW0uY3BwIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9DdXN0b21GaWx0ZXJQcm9ncmFt
LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hYjdiMDQ3Ci0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9DdXN0
b21GaWx0ZXJQcm9ncmFtLmNwcApAQCAtMCwwICsxLDkyIEBACisvKgorICogQ29weXJpZ2h0IDIw
MTEgQWRvYmUgU3lzdGVtcyBJbmNvcnBvcmF0ZWQuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZQorICogICAgY29w
eXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcK
KyAqICAgIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiAgICBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZworICogICAgZGlzY2xhaW1lciBpbiB0
aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzCisgKiAgICBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBUSEUgQ09QWVJJR0hUIEhPTERFUiDigJxBUyBJU+KAnSBBTkQgQU5ZCisgKiBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQor
ICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBUSEUgQ09QWVJJR0hUIEhPTERFUiBCRQorICogTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLAorICogT1IgQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5U
IE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgor
ICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUgorICogVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GCisgKiBUSEUgVVNFIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YKKyAqIFNVQ0ggREFNQUdF
LgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKworI2lmIEVOQUJMRShDU1NfU0hBREVSUykK
KyNpbmNsdWRlICJDdXN0b21GaWx0ZXJQcm9ncmFtLmgiCisKKyNpbmNsdWRlICJDdXN0b21GaWx0
ZXJQcm9ncmFtQ2xpZW50LmgiCisjaW5jbHVkZSAiQ3VzdG9tRmlsdGVyU2hhZGVyLmgiCisKKyNp
ZiBFTkFCTEUoV0VCR0wpCisjaW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0M0QuaCIKKyNlbmRpZgor
CituYW1lc3BhY2UgV2ViQ29yZSB7CisKK0N1c3RvbUZpbHRlclByb2dyYW06OkN1c3RvbUZpbHRl
clByb2dyYW0oKQoreworICAgIC8vIEtlZXAgdGhlIGNvbnN0cnVjdG9yIHByb3RlY3RlZCB0byBw
cmV2ZW50IGNyZWF0aW5nIHRoaXMgb2JqZWN0IGRpcmVjdGx5LgorfQorCitDdXN0b21GaWx0ZXJQ
cm9ncmFtOjp+Q3VzdG9tRmlsdGVyUHJvZ3JhbSgpCit7CisgICAgLy8gQWxsIHRoZSBjbGllbnRz
IHNob3VsZCBrZWVwIGEgcmVmZXJlbmNlIHRvIHRoaXMgb2JqZWN0LgorICAgIEFTU0VSVChtX2Ns
aWVudHMuaXNFbXB0eSgpKTsKK30KKwordm9pZCBDdXN0b21GaWx0ZXJQcm9ncmFtOjphZGRDbGll
bnQoQ3VzdG9tRmlsdGVyUHJvZ3JhbUNsaWVudCogY2xpZW50KQoreworICAgIGlmIChtX2NsaWVu
dHMuaXNFbXB0eSgpKSB7CisgICAgICAgIC8vIE5vdGlmeSB0aGUgU3R5bGVDdXN0b21GaWx0ZXJQ
cm9ncmFtIHRoYXQgd2Ugbm93IGhhdmUgYXQgbGVhc3QgYSBjbGllbnQKKyAgICAgICAgLy8gYW5k
IHRoZSBsb2FkaW5nIGNhbiBiZWdpbi4KKyAgICAgICAgLy8gTm90ZTogSWYgdGhlIHNoYWRlciBp
cyBhbHJlYWR5IGNhY2hlZCB0aGUgZmlyc3QgY2xpZW50IHdpbGwgYmUgbm90aWZpZWQsCisgICAg
ICAgIC8vIGV2ZW4gaWYgdGhlIGZpbHRlciB3YXMgYWxyZWFkeSBidWlsdC4gQWRkIHRoZSBjbGll
bnQgb25seSBhZnRlciBub3RpZnlpbmcKKyAgICAgICAgLy8gdGhlIGNhY2hlIGFib3V0IHRoZW0s
IHNvIHRoYXQgd2UgYXZvaWQgYSB1c2VsZXNzIHJlY3JlYXRpb24gb2YgdGhlIGZpbHRlcnMgY2hh
aW4uCisgICAgICAgIHdpbGxIYXZlQ2xpZW50cygpOworICAgIH0KKyAgICBtX2NsaWVudHMuYWRk
KGNsaWVudCk7Cit9CisKK3ZvaWQgQ3VzdG9tRmlsdGVyUHJvZ3JhbTo6cmVtb3ZlQ2xpZW50KEN1
c3RvbUZpbHRlclByb2dyYW1DbGllbnQqIGNsaWVudCkKK3sKKyAgICBtX2NsaWVudHMucmVtb3Zl
KGNsaWVudCk7CisgICAgaWYgKG1fY2xpZW50cy5pc0VtcHR5KCkpIHsKKyAgICAgICAgLy8gV2Ug
aGF2ZSBubyBjbGllbnRzIGFueW1vcmUsIHRoZSBjYWNoZWQgcmVzb3VyY2VzIGNhbiBiZSBwdXJn
ZWQgZnJvbSBtZW1vcnkuCisgICAgICAgIGRpZFJlbW92ZUxhc3RDbGllbnQoKTsKKyAgICB9Cit9
CisKK3ZvaWQgQ3VzdG9tRmlsdGVyUHJvZ3JhbTo6bm90aWZ5Q2xpZW50cygpCit7CisgICAgZm9y
IChDdXN0b21GaWx0ZXJQcm9ncmFtQ2xpZW50TGlzdDo6aXRlcmF0b3IgaXRlciA9IG1fY2xpZW50
cy5iZWdpbigpLCBlbmQgPSBtX2NsaWVudHMuZW5kKCk7IGl0ZXIgIT0gZW5kOyArK2l0ZXIpCisg
ICAgICAgIGl0ZXItPmZpcnN0LT5ub3RpZnlDdXN0b21GaWx0ZXJQcm9ncmFtTG9hZGVkKHRoaXMp
OworfQorCisjaWYgRU5BQkxFKFdFQkdMKQorUGFzc1JlZlB0cjxDdXN0b21GaWx0ZXJTaGFkZXI+
IEN1c3RvbUZpbHRlclByb2dyYW06OmNyZWF0ZVNoYWRlcldpdGhDb250ZXh0KEdyYXBoaWNzQ29u
dGV4dDNEKiBjb250ZXh0KQoreworICAgIEFTU0VSVChpc0xvYWRlZCgpKTsKKyAgICByZXR1cm4g
Q3VzdG9tRmlsdGVyU2hhZGVyOjpjcmVhdGUoY29udGV4dCwgdmVydGV4U2hhZGVyU3RyaW5nKCks
IGZyYWdtZW50U2hhZGVyU3RyaW5nKCkpOworfQorI2VuZGlmCisKK30gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKKyNlbmRpZiAvLyBFTkFCTEUoQ1NTX1NIQURFUlMpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0N1c3RvbUZpbHRlclByb2dyYW0uaCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvQ3VzdG9tRmlsdGVyUHJv
Z3JhbS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmM3M2E1ZWMKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0N1
c3RvbUZpbHRlclByb2dyYW0uaApAQCAtMCwwICsxLDgyIEBACisvKgorICogQ29weXJpZ2h0IDIw
MTEgQWRvYmUgU3lzdGVtcyBJbmNvcnBvcmF0ZWQuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZQorICogICAgY29w
eXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcK
KyAqICAgIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiAgICBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZworICogICAgZGlzY2xhaW1lciBpbiB0
aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzCisgKiAgICBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBUSEUgQ09QWVJJR0hUIEhPTERFUiDigJxBUyBJU+KAnSBBTkQgQU5ZCisgKiBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQor
ICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBUSEUgQ09QWVJJR0hUIEhPTERFUiBCRQorICogTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLAorICogT1IgQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5U
IE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgor
ICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUgorICogVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GCisgKiBUSEUgVVNFIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YKKyAqIFNVQ0ggREFNQUdF
LgorICovCisKKyNpZm5kZWYgQ3VzdG9tRmlsdGVyUHJvZ3JhbV9oCisjZGVmaW5lIEN1c3RvbUZp
bHRlclByb2dyYW1faAorCisjaWYgRU5BQkxFKENTU19TSEFERVJTKQorCisjaW5jbHVkZSA8d3Rm
L0hhc2hDb3VudGVkU2V0Lmg+CisjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KKyNpbmNsdWRl
IDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBH
cmFwaGljc0NvbnRleHQzRDsKK2NsYXNzIEN1c3RvbUZpbHRlclNoYWRlcjsKK2NsYXNzIEN1c3Rv
bUZpbHRlclByb2dyYW1DbGllbnQ7CisKKy8vIFRoaXMgaXMgdGhlIGJhc2UgY2xhc3MgZm9yIHRo
ZSBTdHlsZUN1c3RvbUZpbHRlclByb2dyYW0gY2xhc3Mgd2hpY2gga25vd3MgaG93IHRvIGtlZXAK
Ky8vIHJlZmVyZW5jZXMgdG8gdGhlIGNhY2hlZCBzaGFkZXJzLgorY2xhc3MgQ3VzdG9tRmlsdGVy
UHJvZ3JhbTogcHVibGljIFJlZkNvdW50ZWQ8Q3VzdG9tRmlsdGVyUHJvZ3JhbT4geworcHVibGlj
OgorICAgIHZpcnR1YWwgfkN1c3RvbUZpbHRlclByb2dyYW0oKTsKKworICAgIHZpcnR1YWwgYm9v
bCBpc0xvYWRlZCgpIGNvbnN0ID0gMDsKKyAgICAKKyAgICB2b2lkIGFkZENsaWVudChDdXN0b21G
aWx0ZXJQcm9ncmFtQ2xpZW50Kik7CisgICAgdm9pZCByZW1vdmVDbGllbnQoQ3VzdG9tRmlsdGVy
UHJvZ3JhbUNsaWVudCopOworICAgIAorI2lmIEVOQUJMRShXRUJHTCkKKyAgICBQYXNzUmVmUHRy
PEN1c3RvbUZpbHRlclNoYWRlcj4gY3JlYXRlU2hhZGVyV2l0aENvbnRleHQoR3JhcGhpY3NDb250
ZXh0M0QqKTsKKyNlbmRpZgorcHJvdGVjdGVkOgorICAgIC8vIFN0eWxlQ3VzdG9tRmlsdGVyUHJv
Z3JhbSBjYW4gbm90aWZ5IHRoZSBjbGllbnRzIHRoYXQgdGhlIGNhY2hlZCByZXNvdXJjZXMgYXJl
CisgICAgLy8gbG9hZGVkIGFuZCBpdCBpcyByZWFkeSB0byBjcmVhdGUgQ3VzdG9tRmlsdGVyU2hh
ZGVyIG9iamVjdHMuCisgICAgdm9pZCBub3RpZnlDbGllbnRzKCk7CisgICAgCisgICAgdmlydHVh
bCBTdHJpbmcgdmVydGV4U2hhZGVyU3RyaW5nKCkgY29uc3QgPSAwOworICAgIHZpcnR1YWwgU3Ry
aW5nIGZyYWdtZW50U2hhZGVyU3RyaW5nKCkgY29uc3QgPSAwOworICAgIAorICAgIHZpcnR1YWwg
dm9pZCB3aWxsSGF2ZUNsaWVudHMoKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGRpZFJlbW92ZUxh
c3RDbGllbnQoKSA9IDA7CisKKyAgICAvLyBLZWVwIHRoZSBjb25zdHJ1Y3RvciBwcm90ZWN0ZWQg
dG8gcHJldmVudCBjcmVhdGluZyB0aGlzIG9iamVjdCBkaXJlY3RseS4KKyAgICBDdXN0b21GaWx0
ZXJQcm9ncmFtKCk7CisKK3ByaXZhdGU6CisgICAgdHlwZWRlZiBIYXNoQ291bnRlZFNldDxDdXN0
b21GaWx0ZXJQcm9ncmFtQ2xpZW50Kj4gQ3VzdG9tRmlsdGVyUHJvZ3JhbUNsaWVudExpc3Q7Cisg
ICAgQ3VzdG9tRmlsdGVyUHJvZ3JhbUNsaWVudExpc3QgbV9jbGllbnRzOworfTsKKworfQorCisj
ZW5kaWYgLy8gRU5BQkxFKENTU19TSEFERVJTKQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvQ3VzdG9tRmlsdGVyUHJvZ3JhbUNs
aWVudC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9DdXN0b21G
aWx0ZXJQcm9ncmFtQ2xpZW50LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4u
MzlmYTI1MQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2ZpbHRlcnMvQ3VzdG9tRmlsdGVyUHJvZ3JhbUNsaWVudC5oCkBAIC0wLDAgKzEsNTIgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgMjAxMSBBZG9iZSBTeXN0ZW1zIEluY29ycG9yYXRlZC4gQWxsIFJp
Z2h0cyBSZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqCisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlCisgKiAgICBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZworICogICAgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqICAgIGNvcHly
aWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nCisg
KiAgICBkaXNjbGFpbWVyIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMKKyAqICAgIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSIOKAnEFTIElT4oCdIEFO
RCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQgSE9MREVSIEJFCisgKiBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
CisgKiBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SCisgKiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YKKyAqIFRI
RSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRgorICogU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBDdXN0b21GaWx0ZXJQcm9ncmFt
Q2xpZW50X2gKKyNkZWZpbmUgQ3VzdG9tRmlsdGVyUHJvZ3JhbUNsaWVudF9oCisKKyNpZiBFTkFC
TEUoQ1NTX1NIQURFUlMpCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgQ3VzdG9tRmls
dGVyUHJvZ3JhbTsKKworY2xhc3MgQ3VzdG9tRmlsdGVyUHJvZ3JhbUNsaWVudCB7CitwdWJsaWM6
CisgICAgdmlydHVhbCB+Q3VzdG9tRmlsdGVyUHJvZ3JhbUNsaWVudCgpCisgICAgeworICAgIH0K
KyAgICAKKyAgICB2aXJ0dWFsIHZvaWQgbm90aWZ5Q3VzdG9tRmlsdGVyUHJvZ3JhbUxvYWRlZChD
dXN0b21GaWx0ZXJQcm9ncmFtKikgPSAwOworfTsKKworfQorCisjZW5kaWYgLy8gRU5BQkxFKENT
U19TSEFERVJTKQorCisjZW5kaWYgLy8gQ3VzdG9tRmlsdGVyUHJvZ3JhbUNsaWVudF9oCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFQ3VzdG9t
RmlsdGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVD
dXN0b21GaWx0ZXIuY3BwCmluZGV4IGZiNDI3MGUuLjY2MGQ1NzMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVDdXN0b21GaWx0ZXIuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVDdXN0b21GaWx0
ZXIuY3BwCkBAIC0zNCw2ICszNCw3IEBACiAKICNpbmNsdWRlICJDYWNoZWRTaGFkZXIuaCIKICNp
bmNsdWRlICJDdXN0b21GaWx0ZXJNZXNoLmgiCisjaW5jbHVkZSAiQ3VzdG9tRmlsdGVyUHJvZ3Jh
bS5oIgogI2luY2x1ZGUgIkN1c3RvbUZpbHRlclNoYWRlci5oIgogI2luY2x1ZGUgIkRvY3VtZW50
LmgiCiAjaW5jbHVkZSAiRHJhd2luZ0J1ZmZlci5oIgpAQCAtNzMsMTMgKzc0LDEyIEBAIHN0YXRp
YyB2b2lkIG9ydGhvZ29uYWxQcm9qZWN0aW9uTWF0cml4KFRyYW5zZm9ybWF0aW9uTWF0cml4JiBt
YXRyaXgsIGZsb2F0IGxlZnQsCiAgICAgbWF0cml4LnNldE00NCgxLjBmKTsKIH0KIAotRkVDdXN0
b21GaWx0ZXI6OkZFQ3VzdG9tRmlsdGVyKEZpbHRlciogZmlsdGVyLCBEb2N1bWVudCogZG9jdW1l
bnQsIGNvbnN0IFN0cmluZyYgdmVydGV4U2hhZGVyLCBjb25zdCBTdHJpbmcmIGZyYWdtZW50U2hh
ZGVyLAorRkVDdXN0b21GaWx0ZXI6OkZFQ3VzdG9tRmlsdGVyKEZpbHRlciogZmlsdGVyLCBEb2N1
bWVudCogZG9jdW1lbnQsIFBhc3NSZWZQdHI8Q3VzdG9tRmlsdGVyUHJvZ3JhbT4gcHJvZ3JhbSwK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBtZXNoUm93cywgdW5zaWdu
ZWQgbWVzaENvbHVtbnMsIEN1c3RvbUZpbHRlck9wZXJhdGlvbjo6TWVzaEJveFR5cGUgbWVzaEJv
eFR5cGUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ3VzdG9tRmlsdGVyT3BlcmF0
aW9uOjpNZXNoVHlwZSBtZXNoVHlwZSkKICAgICA6IEZpbHRlckVmZmVjdChmaWx0ZXIpCiAgICAg
LCBtX2RvY3VtZW50KGRvY3VtZW50KQotICAgICwgbV92ZXJ0ZXhTaGFkZXIodmVydGV4U2hhZGVy
KQotICAgICwgbV9mcmFnbWVudFNoYWRlcihmcmFnbWVudFNoYWRlcikKKyAgICAsIG1fcHJvZ3Jh
bShwcm9ncmFtKQogICAgICwgbV9tZXNoUm93cyhtZXNoUm93cykKICAgICAsIG1fbWVzaENvbHVt
bnMobWVzaENvbHVtbnMpCiAgICAgLCBtX21lc2hCb3hUeXBlKG1lc2hCb3hUeXBlKQpAQCAtODcs
MTEgKzg3LDExIEBAIEZFQ3VzdG9tRmlsdGVyOjpGRUN1c3RvbUZpbHRlcihGaWx0ZXIqIGZpbHRl
ciwgRG9jdW1lbnQqIGRvY3VtZW50LCBjb25zdCBTdHJpbmcmCiB7CiB9CiAKLVBhc3NSZWZQdHI8
RkVDdXN0b21GaWx0ZXI+IEZFQ3VzdG9tRmlsdGVyOjpjcmVhdGUoRmlsdGVyKiBmaWx0ZXIsIERv
Y3VtZW50KiBkb2N1bWVudCwgY29uc3QgU3RyaW5nJiB2ZXJ0ZXhTaGFkZXIsIGNvbnN0IFN0cmlu
ZyYgZnJhZ21lbnRTaGFkZXIsCitQYXNzUmVmUHRyPEZFQ3VzdG9tRmlsdGVyPiBGRUN1c3RvbUZp
bHRlcjo6Y3JlYXRlKEZpbHRlciogZmlsdGVyLCBEb2N1bWVudCogZG9jdW1lbnQsIFBhc3NSZWZQ
dHI8Q3VzdG9tRmlsdGVyUHJvZ3JhbT4gcHJvZ3JhbSwKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBtZXNoUm93cywgdW5zaWduZWQgbWVzaENvbHVt
bnMsIEN1c3RvbUZpbHRlck9wZXJhdGlvbjo6TWVzaEJveFR5cGUgbWVzaEJveFR5cGUsCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ3VzdG9tRmlsdGVyT3BlcmF0
aW9uOjpNZXNoVHlwZSBtZXNoVHlwZSkKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IEZFQ3Vz
dG9tRmlsdGVyKGZpbHRlciwgZG9jdW1lbnQsIHZlcnRleFNoYWRlciwgZnJhZ21lbnRTaGFkZXIs
IG1lc2hSb3dzLCBtZXNoQ29sdW1ucywgbWVzaEJveFR5cGUsIG1lc2hUeXBlKSk7CisgICAgcmV0
dXJuIGFkb3B0UmVmKG5ldyBGRUN1c3RvbUZpbHRlcihmaWx0ZXIsIGRvY3VtZW50LCBwcm9ncmFt
LCBtZXNoUm93cywgbWVzaENvbHVtbnMsIG1lc2hCb3hUeXBlLCBtZXNoVHlwZSkpOwogfQogCiB2
b2lkIEZFQ3VzdG9tRmlsdGVyOjpwbGF0Zm9ybUFwcGx5U29mdHdhcmUoKQpAQCAtMTM3LDEwICsx
MzcsMTEgQEAgdm9pZCBGRUN1c3RvbUZpbHRlcjo6aW5pdGlhbGl6ZUNvbnRleHQoY29uc3QgSW50
U2l6ZSYgY29udGV4dFNpemUpCiAgICAgYXR0cmlidXRlcy5wcmVzZXJ2ZURyYXdpbmdCdWZmZXIg
PSB0cnVlOwogICAgIGF0dHJpYnV0ZXMucHJlbXVsdGlwbGllZEFscGhhID0gZmFsc2U7CiAgICAg
CisgICAgQVNTRVJUKCFtX2NvbnRleHQuZ2V0KCkpOwogICAgIG1fY29udGV4dCA9IEdyYXBoaWNz
Q29udGV4dDNEOjpjcmVhdGUoYXR0cmlidXRlcywgbV9kb2N1bWVudC0+dmlldygpLT5yb290KCkt
Pmhvc3RXaW5kb3coKSwgR3JhcGhpY3NDb250ZXh0M0Q6OlJlbmRlck9mZnNjcmVlbik7CiAgICAg
bV9kcmF3aW5nQnVmZmVyID0gRHJhd2luZ0J1ZmZlcjo6Y3JlYXRlKG1fY29udGV4dC5nZXQoKSwg
Y29udGV4dFNpemUsICFhdHRyaWJ1dGVzLnByZXNlcnZlRHJhd2luZ0J1ZmZlcik7CiAgICAgCi0g
ICAgbV9zaGFkZXIgPSBDdXN0b21GaWx0ZXJTaGFkZXI6OmNyZWF0ZShtX2NvbnRleHQuZ2V0KCks
IG1fdmVydGV4U2hhZGVyLCBtX2ZyYWdtZW50U2hhZGVyKTsKKyAgICBtX3NoYWRlciA9IG1fcHJv
Z3JhbS0+Y3JlYXRlU2hhZGVyV2l0aENvbnRleHQobV9jb250ZXh0LmdldCgpKTsKICAgICBtX21l
c2ggPSBDdXN0b21GaWx0ZXJNZXNoOjpjcmVhdGUobV9jb250ZXh0LmdldCgpLCBtX21lc2hDb2x1
bW5zLCBtX21lc2hSb3dzLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
RmxvYXRSZWN0KDAsIDAsIDEsIDEpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBtX21lc2hUeXBlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2ZpbHRlcnMvRkVDdXN0b21GaWx0ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2ZpbHRlcnMvRkVDdXN0b21GaWx0ZXIuaAppbmRleCAyYWFhYmY2Li5hNTRmYzQ1
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZF
Q3VzdG9tRmlsdGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmls
dGVycy9GRUN1c3RvbUZpbHRlci5oCkBAIC01MCwxMSArNTAsMTIgQEAgY2xhc3MgRG9jdW1lbnQ7
CiBjbGFzcyBEcmF3aW5nQnVmZmVyOwogY2xhc3MgR3JhcGhpY3NDb250ZXh0M0Q7CiBjbGFzcyBJ
bnRTaXplOworY2xhc3MgQ3VzdG9tRmlsdGVyUHJvZ3JhbTsKIGNsYXNzIFRleHR1cmU7CiAKIGNs
YXNzIEZFQ3VzdG9tRmlsdGVyIDogcHVibGljIEZpbHRlckVmZmVjdCB7CiBwdWJsaWM6Ci0gICAg
c3RhdGljIFBhc3NSZWZQdHI8RkVDdXN0b21GaWx0ZXI+IGNyZWF0ZShGaWx0ZXIqLCBEb2N1bWVu
dCosIGNvbnN0IFN0cmluZyYgdmVydGV4U2hhZGVyLCBjb25zdCBTdHJpbmcmIGZyYWdtZW50U2hh
ZGVyLAorICAgIHN0YXRpYyBQYXNzUmVmUHRyPEZFQ3VzdG9tRmlsdGVyPiBjcmVhdGUoRmlsdGVy
KiwgRG9jdW1lbnQqLCBQYXNzUmVmUHRyPEN1c3RvbUZpbHRlclByb2dyYW0+LAogICAgICAgICAg
ICAgICAgICAgIHVuc2lnbmVkIG1lc2hSb3dzLCB1bnNpZ25lZCBtZXNoQ29sdW1ucywgQ3VzdG9t
RmlsdGVyT3BlcmF0aW9uOjpNZXNoQm94VHlwZSwgCiAgICAgICAgICAgICAgICAgICAgQ3VzdG9t
RmlsdGVyT3BlcmF0aW9uOjpNZXNoVHlwZSk7CiAKQEAgLTY0LDcgKzY1LDcgQEAgcHVibGljOgog
ICAgIHZpcnR1YWwgVGV4dFN0cmVhbSYgZXh0ZXJuYWxSZXByZXNlbnRhdGlvbihUZXh0U3RyZWFt
JiwgaW50IGluZGVudGlvbikgY29uc3Q7CiAKIHByaXZhdGU6Ci0gICAgRkVDdXN0b21GaWx0ZXIo
RmlsdGVyKiwgRG9jdW1lbnQqLCBjb25zdCBTdHJpbmcmIHZlcnRleFNoYWRlciwgY29uc3QgU3Ry
aW5nJiBmcmFnbWVudFNoYWRlciwKKyAgICBGRUN1c3RvbUZpbHRlcihGaWx0ZXIqLCBEb2N1bWVu
dCosIFBhc3NSZWZQdHI8Q3VzdG9tRmlsdGVyUHJvZ3JhbT4sCiAgICAgICAgICAgICAgICAgICAg
dW5zaWduZWQgbWVzaFJvd3MsIHVuc2lnbmVkIG1lc2hDb2x1bW5zLCBDdXN0b21GaWx0ZXJPcGVy
YXRpb246Ok1lc2hCb3hUeXBlLCAKICAgICAgICAgICAgICAgICAgICBDdXN0b21GaWx0ZXJPcGVy
YXRpb246Ok1lc2hUeXBlKTsKICAgICAKQEAgLTgxLDkgKzgyLDggQEAgcHJpdmF0ZToKICAgICBS
ZWZQdHI8Q3VzdG9tRmlsdGVyU2hhZGVyPiBtX3NoYWRlcjsKICAgICBSZWZQdHI8Q3VzdG9tRmls
dGVyTWVzaD4gbV9tZXNoOwogICAgIEludFNpemUgbV9jb250ZXh0U2l6ZTsKLSAgICAKLSAgICBT
dHJpbmcgbV92ZXJ0ZXhTaGFkZXI7Ci0gICAgU3RyaW5nIG1fZnJhZ21lbnRTaGFkZXI7CisKKyAg
ICBSZWZQdHI8Q3VzdG9tRmlsdGVyUHJvZ3JhbT4gbV9wcm9ncmFtOwogCiAgICAgdW5zaWduZWQg
bV9tZXNoUm93czsKICAgICB1bnNpZ25lZCBtX21lc2hDb2x1bW5zOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0ZpbHRlckVmZmVjdFJlbmRlcmVyLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9GaWx0ZXJFZmZlY3RSZW5kZXJlci5jcHAKaW5kZXggMWNjNDUwNi4u
OGEwNjgwOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0ZpbHRlckVmZmVj
dFJlbmRlcmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvRmlsdGVyRWZmZWN0
UmVuZGVyZXIuY3BwCkBAIC00MSw3ICs0MSw3IEBACiAjaW5jbHVkZSA8d3RmL01hdGhFeHRyYXMu
aD4KIAogI2lmIEVOQUJMRShDU1NfU0hBREVSUykgJiYgRU5BQkxFKFdFQkdMKQotI2luY2x1ZGUg
IkNhY2hlZFNoYWRlci5oIgorI2luY2x1ZGUgIkN1c3RvbUZpbHRlclByb2dyYW0uaCIKICNpbmNs
dWRlICJDdXN0b21GaWx0ZXJPcGVyYXRpb24uaCIKICNpbmNsdWRlICJGRUN1c3RvbUZpbHRlci5o
IgogI2luY2x1ZGUgIlNldHRpbmdzLmgiCkBAIC04NCw2ICs4NCw5IEBAIEZpbHRlckVmZmVjdFJl
bmRlcmVyOjpGaWx0ZXJFZmZlY3RSZW5kZXJlcihGaWx0ZXJFZmZlY3RPYnNlcnZlciogb2JzZXJ2
ZXIpCiAKIEZpbHRlckVmZmVjdFJlbmRlcmVyOjp+RmlsdGVyRWZmZWN0UmVuZGVyZXIoKQogewor
I2lmIEVOQUJMRShDU1NfU0hBREVSUykKKyAgICByZW1vdmVDdXN0b21GaWx0ZXJDbGllbnRzKCk7
CisjZW5kaWYKIH0KIAogR3JhcGhpY3NDb250ZXh0KiBGaWx0ZXJFZmZlY3RSZW5kZXJlcjo6aW5w
dXRDb250ZXh0KCkKQEAgLTk2LDcgKzk5LDcgQEAgdm9pZCBGaWx0ZXJFZmZlY3RSZW5kZXJlcjo6
YnVpbGQoRG9jdW1lbnQqIGRvY3VtZW50LCBjb25zdCBGaWx0ZXJPcGVyYXRpb25zJiBvcGUKICNp
ZiAhRU5BQkxFKENTU19TSEFERVJTKSB8fCAhRU5BQkxFKFdFQkdMKQogICAgIFVOVVNFRF9QQVJB
TShkb2N1bWVudCk7CiAjZWxzZQotICAgIENhY2hlZFNoYWRlckxpc3QgY2FjaGVkU2hhZGVyczsK
KyAgICBDdXN0b21GaWx0ZXJQcm9ncmFtTGlzdCBjYWNoZWRDdXN0b21GaWx0ZXJQcm9ncmFtczsK
ICNlbmRpZgogCiAgICAgbV9lZmZlY3RzLmNsZWFyKCk7CkBAIC0yNDgsMzIgKzI1MSwxMSBAQCB2
b2lkIEZpbHRlckVmZmVjdFJlbmRlcmVyOjpidWlsZChEb2N1bWVudCogZG9jdW1lbnQsIGNvbnN0
IEZpbHRlck9wZXJhdGlvbnMmIG9wZQogICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAg
ICAgICAgCiAgICAgICAgICAgICBDdXN0b21GaWx0ZXJPcGVyYXRpb24qIGN1c3RvbUZpbHRlck9w
ZXJhdGlvbiA9IHN0YXRpY19jYXN0PEN1c3RvbUZpbHRlck9wZXJhdGlvbio+KGZpbHRlck9wZXJh
dGlvbik7Ci0gICAgICAgICAgICAKLSAgICAgICAgICAgIC8vIENoZWNrIHRoYXQgdGhlIGZpbHRl
cnMgYXJlIGFscmVhZHkgbG9hZGVkLiBJZiBub3QganVzdCBza2lwIHRoZW0gaGVyZS4KLSAgICAg
ICAgICAgIFN0cmluZyB2ZXJ0ZXhTaGFkZXIsIGZyYWdtZW50U2hhZGVyOwotICAgICAgICAgICAg
Ym9vbCBzaGFkZXJzTG9hZGVkID0gdHJ1ZTsKLSAgICAgICAgICAgIGlmIChjdXN0b21GaWx0ZXJP
cGVyYXRpb24tPnZlcnRleFNoYWRlcigpKSB7Ci0gICAgICAgICAgICAgICAgQ2FjaGVkU2hhZGVy
KiBjYWNoZWRTaGFkZXIgPSBjdXN0b21GaWx0ZXJPcGVyYXRpb24tPnZlcnRleFNoYWRlcigpLT5j
YWNoZWRTaGFkZXIoKTsKLSAgICAgICAgICAgICAgICBBU1NFUlQoY2FjaGVkU2hhZGVyKTsKLSAg
ICAgICAgICAgICAgICBjYWNoZWRTaGFkZXJzLmFwcGVuZChjYWNoZWRTaGFkZXIpOwotICAgICAg
ICAgICAgICAgIGNhY2hlZFNoYWRlci0+YWRkQ2xpZW50KHRoaXMpOwotICAgICAgICAgICAgICAg
IGlmIChjYWNoZWRTaGFkZXItPmlzTG9hZGVkKCkpCi0gICAgICAgICAgICAgICAgICAgIHZlcnRl
eFNoYWRlciA9IGNhY2hlZFNoYWRlci0+c2hhZGVyU3RyaW5nKCk7Ci0gICAgICAgICAgICAgICAg
ZWxzZQotICAgICAgICAgICAgICAgICAgICBzaGFkZXJzTG9hZGVkID0gZmFsc2U7Ci0gICAgICAg
ICAgICB9Ci0gICAgICAgICAgICBpZiAoY3VzdG9tRmlsdGVyT3BlcmF0aW9uLT5mcmFnbWVudFNo
YWRlcigpKSB7Ci0gICAgICAgICAgICAgICAgQ2FjaGVkU2hhZGVyKiBjYWNoZWRTaGFkZXIgPSBj
dXN0b21GaWx0ZXJPcGVyYXRpb24tPmZyYWdtZW50U2hhZGVyKCktPmNhY2hlZFNoYWRlcigpOwot
ICAgICAgICAgICAgICAgIEFTU0VSVChjYWNoZWRTaGFkZXIpOwotICAgICAgICAgICAgICAgIGNh
Y2hlZFNoYWRlcnMuYXBwZW5kKGNhY2hlZFNoYWRlcik7Ci0gICAgICAgICAgICAgICAgY2FjaGVk
U2hhZGVyLT5hZGRDbGllbnQodGhpcyk7Ci0gICAgICAgICAgICAgICAgaWYgKGNhY2hlZFNoYWRl
ci0+aXNMb2FkZWQoKSkKLSAgICAgICAgICAgICAgICAgICAgZnJhZ21lbnRTaGFkZXIgPSBjYWNo
ZWRTaGFkZXItPnNoYWRlclN0cmluZygpOwotICAgICAgICAgICAgICAgIGVsc2UKLSAgICAgICAg
ICAgICAgICAgICAgc2hhZGVyc0xvYWRlZCA9IGZhbHNlOwotICAgICAgICAgICAgfQotICAgICAg
ICAgICAgaWYgKHNoYWRlcnNMb2FkZWQpIHsKLSAgICAgICAgICAgICAgICBlZmZlY3QgPSBGRUN1
c3RvbUZpbHRlcjo6Y3JlYXRlKHRoaXMsIGRvY3VtZW50LCB2ZXJ0ZXhTaGFkZXIsIGZyYWdtZW50
U2hhZGVyLAorICAgICAgICAgICAgUmVmUHRyPEN1c3RvbUZpbHRlclByb2dyYW0+IHByb2dyYW0g
PSBjdXN0b21GaWx0ZXJPcGVyYXRpb24tPnByb2dyYW0oKTsKKyAgICAgICAgICAgIGNhY2hlZEN1
c3RvbUZpbHRlclByb2dyYW1zLmFwcGVuZChwcm9ncmFtKTsKKyAgICAgICAgICAgIHByb2dyYW0t
PmFkZENsaWVudCh0aGlzKTsKKyAgICAgICAgICAgIGlmIChwcm9ncmFtLT5pc0xvYWRlZCgpKSB7
CisgICAgICAgICAgICAgICAgZWZmZWN0ID0gRkVDdXN0b21GaWx0ZXI6OmNyZWF0ZSh0aGlzLCBk
b2N1bWVudCwgcHJvZ3JhbSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGN1c3RvbUZpbHRlck9wZXJhdGlvbi0+bWVzaFJvd3MoKSwgY3VzdG9tRmlsdGVy
T3BlcmF0aW9uLT5tZXNoQ29sdW1ucygpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgY3VzdG9tRmlsdGVyT3BlcmF0aW9uLT5tZXNoQm94VHlwZSgpLCBj
dXN0b21GaWx0ZXJPcGVyYXRpb24tPm1lc2hUeXBlKCkpOwogICAgICAgICAgICAgfQpAQCAtMzA0
LDE3ICsyODYsMjQgQEAgdm9pZCBGaWx0ZXJFZmZlY3RSZW5kZXJlcjo6YnVpbGQoRG9jdW1lbnQq
IGRvY3VtZW50LCBjb25zdCBGaWx0ZXJPcGVyYXRpb25zJiBvcGUKICAgICBzZXRNYXhFZmZlY3RS
ZWN0cyhtX3NvdXJjZURyYXdpbmdSZWdpb24pOwogICAgIAogI2lmIEVOQUJMRShDU1NfU0hBREVS
UykgJiYgRU5BQkxFKFdFQkdMKQotICAgIGZvciAoQ2FjaGVkU2hhZGVyTGlzdDo6aXRlcmF0b3Ig
aXRlciA9IG1fY2FjaGVkU2hhZGVycy5iZWdpbigpLCBlbmQgPSBtX2NhY2hlZFNoYWRlcnMuZW5k
KCk7IGl0ZXIgIT0gZW5kOyArK2l0ZXIpCi0gICAgICAgIGl0ZXItPmdldCgpLT5yZW1vdmVDbGll
bnQodGhpcyk7Ci0gICAgbV9jYWNoZWRTaGFkZXJzLnN3YXAoY2FjaGVkU2hhZGVycyk7CisgICAg
cmVtb3ZlQ3VzdG9tRmlsdGVyQ2xpZW50cygpOworICAgIG1fY2FjaGVkQ3VzdG9tRmlsdGVyUHJv
Z3JhbXMuc3dhcChjYWNoZWRDdXN0b21GaWx0ZXJQcm9ncmFtcyk7CiAjZW5kaWYKIH0KIAotdm9p
ZCBGaWx0ZXJFZmZlY3RSZW5kZXJlcjo6bm90aWZ5RmluaXNoZWQoQ2FjaGVkUmVzb3VyY2UqKQor
I2lmIEVOQUJMRShDU1NfU0hBREVSUykKK3ZvaWQgRmlsdGVyRWZmZWN0UmVuZGVyZXI6Om5vdGlm
eUN1c3RvbUZpbHRlclByb2dyYW1Mb2FkZWQoQ3VzdG9tRmlsdGVyUHJvZ3JhbSopCiB7CiAgICAg
bV9vYnNlcnZlci0+ZmlsdGVyTmVlZHNSZXBhaW50KCk7CiB9CiAKK3ZvaWQgRmlsdGVyRWZmZWN0
UmVuZGVyZXI6OnJlbW92ZUN1c3RvbUZpbHRlckNsaWVudHMoKQoreworICAgIGZvciAoQ3VzdG9t
RmlsdGVyUHJvZ3JhbUxpc3Q6Oml0ZXJhdG9yIGl0ZXIgPSBtX2NhY2hlZEN1c3RvbUZpbHRlclBy
b2dyYW1zLmJlZ2luKCksIGVuZCA9IG1fY2FjaGVkQ3VzdG9tRmlsdGVyUHJvZ3JhbXMuZW5kKCk7
IGl0ZXIgIT0gZW5kOyArK2l0ZXIpCisgICAgICAgIGl0ZXItPmdldCgpLT5yZW1vdmVDbGllbnQo
dGhpcyk7Cit9CisjZW5kaWYKKwogdm9pZCBGaWx0ZXJFZmZlY3RSZW5kZXJlcjo6cHJlcGFyZSgp
CiB7CiAgICAgLy8gQXQgdGhpcyBwb2ludCB0aGUgZWZmZWN0IGNoYWluIGhhcyBiZWVuIGJ1aWx0
LCBhbmQgdGhlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvRmlsdGVyRWZm
ZWN0UmVuZGVyZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9GaWx0ZXJFZmZlY3RSZW5k
ZXJlci5oCmluZGV4IDgwMWE4MGIuLjAzMzU4YTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9GaWx0ZXJFZmZlY3RSZW5kZXJlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9GaWx0ZXJFZmZlY3RSZW5kZXJlci5oCkBAIC0yOCw4ICsyOCw2IEBACiAKICNpZiBF
TkFCTEUoQ1NTX0ZJTFRFUlMpCiAKLSNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZUNsaWVudC5oIgot
I2luY2x1ZGUgIkNhY2hlZFJlc291cmNlSGFuZGxlLmgiCiAjaW5jbHVkZSAiRmlsdGVyLmgiCiAj
aW5jbHVkZSAiRmlsdGVyRWZmZWN0LmgiCiAjaW5jbHVkZSAiRmlsdGVyT3BlcmF0aW9ucy5oIgpA
QCAtNDMsMTQgKzQxLDIyIEBACiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KICNpbmNsdWRl
IDx3dGYvUmVmUHRyLmg+CiAKKyNpZiBFTkFCTEUoQ1NTX1NIQURFUlMpCisjaW5jbHVkZSAiQ3Vz
dG9tRmlsdGVyUHJvZ3JhbUNsaWVudC5oIgorI2VuZGlmCisKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IAogdHlwZWRlZiBWZWN0b3I8UmVmUHRyPEZpbHRlckVmZmVjdD4gPiBGaWx0ZXJFZmZlY3RMaXN0
OworY2xhc3MgQ3VzdG9tRmlsdGVyUHJvZ3JhbTsKIGNsYXNzIERvY3VtZW50OwogY2xhc3MgRmls
dGVyRWZmZWN0T2JzZXJ2ZXI7Ci1jbGFzcyBDYWNoZWRTaGFkZXI7CiAKLWNsYXNzIEZpbHRlckVm
ZmVjdFJlbmRlcmVyIDogcHVibGljIEZpbHRlciwgcHVibGljIENhY2hlZFJlc291cmNlQ2xpZW50
IHsKK2NsYXNzIEZpbHRlckVmZmVjdFJlbmRlcmVyIDogcHVibGljIEZpbHRlcgorI2lmIEVOQUJM
RShDU1NfU0hBREVSUykKKyAgICAsIHB1YmxpYyBDdXN0b21GaWx0ZXJQcm9ncmFtQ2xpZW50Cisj
ZW5kaWYKK3sKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKICAgICBzdGF0
aWMgUGFzc1JlZlB0cjxGaWx0ZXJFZmZlY3RSZW5kZXJlcj4gY3JlYXRlKEZpbHRlckVmZmVjdE9i
c2VydmVyKiBvYnNlcnZlcikKQEAgLTc5LDkgKzg1LDEzIEBAIHB1YmxpYzoKICAgICAKICAgICBJ
bnRSZWN0IG91dHB1dFJlY3QoKSBjb25zdCB7IHJldHVybiBsYXN0RWZmZWN0KCktPmhhc1Jlc3Vs
dCgpID8gbGFzdEVmZmVjdCgpLT5yZXF1ZXN0ZWRSZWdpb25PZklucHV0SW1hZ2VEYXRhKEludFJl
Y3QobV9maWx0ZXJSZWdpb24pKSA6IEludFJlY3QoKTsgfQogCi0gICAgdmlydHVhbCB2b2lkIG5v
dGlmeUZpbmlzaGVkKENhY2hlZFJlc291cmNlKik7Ci0gICAgCiBwcml2YXRlOgorI2lmIEVOQUJM
RShDU1NfU0hBREVSUykKKyAgICAvLyBJbXBsZW1lbnRhdGlvbiBvZiB0aGUgQ3VzdG9tRmlsdGVy
UHJvZ3JhbUNsaWVudCBpbnRlcmZhY2UuCisgICAgdmlydHVhbCB2b2lkIG5vdGlmeUN1c3RvbUZp
bHRlclByb2dyYW1Mb2FkZWQoQ3VzdG9tRmlsdGVyUHJvZ3JhbSopOworICAgIAorICAgIHZvaWQg
cmVtb3ZlQ3VzdG9tRmlsdGVyQ2xpZW50cygpOworI2VuZGlmCiAKICAgICB2b2lkIHNldE1heEVm
ZmVjdFJlY3RzKGNvbnN0IEZsb2F0UmVjdCYgZWZmZWN0UmVjdCkKICAgICB7CkBAIC0xMDgsOCAr
MTE4LDggQEAgcHJpdmF0ZToKICAgICBGaWx0ZXJFZmZlY3RPYnNlcnZlciogbV9vYnNlcnZlcjsg
Ly8gTm8gbmVlZCBmb3IgYSBzdHJvbmcgcmVmZXJlbmNlcyBoZXJlLiBJdCBvd25zIHVzLgogICAg
IAogI2lmIEVOQUJMRShDU1NfU0hBREVSUykgJiYgRU5BQkxFKFdFQkdMKQotICAgIHR5cGVkZWYg
VmVjdG9yPENhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZFNoYWRlcj4gPiBDYWNoZWRTaGFkZXJM
aXN0OwotICAgIENhY2hlZFNoYWRlckxpc3QgbV9jYWNoZWRTaGFkZXJzOworICAgIHR5cGVkZWYg
VmVjdG9yPFJlZlB0cjxDdXN0b21GaWx0ZXJQcm9ncmFtPiA+IEN1c3RvbUZpbHRlclByb2dyYW1M
aXN0OworICAgIEN1c3RvbUZpbHRlclByb2dyYW1MaXN0IG1fY2FjaGVkQ3VzdG9tRmlsdGVyUHJv
Z3JhbXM7CiAjZW5kaWYKICAgICAKICAgICBib29sIG1fZ3JhcGhpY3NCdWZmZXJBdHRhY2hlZDsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9DdXN0b21GaWx0ZXJP
cGVyYXRpb24uaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9DdXN0b21GaWx0ZXJP
cGVyYXRpb24uaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOTk0NjliZS4uMDAwMDAw
MAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvQ3VzdG9tRmlsdGVyT3BlcmF0
aW9uLmgKKysrIC9kZXYvbnVsbApAQCAtMSwxMTQgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAy
MDExIEFkb2JlIFN5c3RlbXMgSW5jb3Jwb3JhdGVkLiBBbGwgUmlnaHRzIFJlc2VydmVkLgotICoK
LSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICoKLSAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUKLSAqICAgIGNv
cHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
Ci0gKiAgICBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQotICogICAgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcKLSAqICAgIGRpc2NsYWltZXIgaW4g
dGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscwotICogICAgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgVEhFIENPUFlSSUdIVCBIT0xERVIg4oCcQVMgSVPigJ0gQU5EIEFOWQotICogRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUK
LSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgVEhFIENPUFlSSUdIVCBIT0xERVIgQkUKLSAqIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwKLSAqIE9SIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IK
LSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWQotICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IKLSAqIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRgotICogVEhFIFVTRSBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GCi0gKiBTVUNIIERBTUFH
RS4KLSAqLwotCi0jaWZuZGVmIEN1c3RvbUZpbHRlck9wZXJhdGlvbl9oCi0jZGVmaW5lIEN1c3Rv
bUZpbHRlck9wZXJhdGlvbl9oCi0KLSNpZiBFTkFCTEUoQ1NTX1NIQURFUlMpCi0KLSNpbmNsdWRl
ICJGaWx0ZXJPcGVyYXRpb24uaCIKLSNpbmNsdWRlICJTdHlsZVNoYWRlci5oIgotCi1uYW1lc3Bh
Y2UgV2ViQ29yZSB7Ci0KLS8vIENTUyBTaGFkZXJzCi0KLWNsYXNzIEN1c3RvbUZpbHRlck9wZXJh
dGlvbiA6IHB1YmxpYyBGaWx0ZXJPcGVyYXRpb24gewotcHVibGljOgotICAgIGVudW0gTWVzaEJv
eFR5cGUgewotICAgICAgICBGSUxURVJfQk9YLAotICAgICAgICBCT1JERVJfQk9YLAotICAgICAg
ICBQQURESU5HX0JPWCwKLSAgICAgICAgQ09OVEVOVF9CT1gKLSAgICB9OwotICAgIAotICAgIGVu
dW0gTWVzaFR5cGUgewotICAgICAgICBBVFRBQ0hFRCwKLSAgICAgICAgREVUQUNIRUQKLSAgICB9
OwotICAgIAotICAgIHN0YXRpYyBQYXNzUmVmUHRyPEN1c3RvbUZpbHRlck9wZXJhdGlvbj4gY3Jl
YXRlKFBhc3NSZWZQdHI8U3R5bGVTaGFkZXI+IHZlcnRleFNoYWRlciwgUGFzc1JlZlB0cjxTdHls
ZVNoYWRlcj4gZnJhZ21lbnRTaGFkZXIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgbWVzaFJvd3MsIHVuc2lnbmVkIG1lc2hDb2x1
bW5zLCBNZXNoQm94VHlwZSBtZXNoQm94VHlwZSwgTWVzaFR5cGUgbWVzaFR5cGUpCi0gICAgewot
ICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IEN1c3RvbUZpbHRlck9wZXJhdGlvbih2ZXJ0ZXhT
aGFkZXIsIGZyYWdtZW50U2hhZGVyLCBtZXNoUm93cywgbWVzaENvbHVtbnMsIG1lc2hCb3hUeXBl
LCBtZXNoVHlwZSkpOwotICAgIH0KLSAgICAKLSAgICB2b2lkIHNldFZlcnRleFNoYWRlcihQYXNz
UmVmUHRyPFN0eWxlU2hhZGVyPiBzaGFkZXIpIHsgbV92ZXJ0ZXhTaGFkZXIgPSBzaGFkZXI7IH0K
LSAgICBTdHlsZVNoYWRlciogdmVydGV4U2hhZGVyKCkgY29uc3QgeyByZXR1cm4gbV92ZXJ0ZXhT
aGFkZXIuZ2V0KCk7IH0KLSAgICAKLSAgICB2b2lkIHNldEZyYWdtZW50U2hhZGVyKFBhc3NSZWZQ
dHI8U3R5bGVTaGFkZXI+IHNoYWRlcikgeyBtX2ZyYWdtZW50U2hhZGVyID0gc2hhZGVyOyB9Ci0g
ICAgU3R5bGVTaGFkZXIqIGZyYWdtZW50U2hhZGVyKCkgY29uc3QgeyByZXR1cm4gbV9mcmFnbWVu
dFNoYWRlci5nZXQoKTsgfQotICAgIAotICAgIHVuc2lnbmVkIG1lc2hSb3dzKCkgY29uc3QgeyBy
ZXR1cm4gbV9tZXNoUm93czsgfQotICAgIHVuc2lnbmVkIG1lc2hDb2x1bW5zKCkgY29uc3QgeyBy
ZXR1cm4gbV9tZXNoQ29sdW1uczsgfQotICAgIAotICAgIE1lc2hCb3hUeXBlIG1lc2hCb3hUeXBl
KCkgY29uc3QgeyByZXR1cm4gbV9tZXNoQm94VHlwZTsgfQotICAgIE1lc2hUeXBlIG1lc2hUeXBl
KCkgY29uc3QgeyByZXR1cm4gbV9tZXNoVHlwZTsgfQotICAgIAotcHJpdmF0ZToKLSAgICB2aXJ0
dWFsIGJvb2wgb3BlcmF0b3I9PShjb25zdCBGaWx0ZXJPcGVyYXRpb24mIG8pIGNvbnN0Ci0gICAg
ewotICAgICAgICBpZiAoIWlzU2FtZVR5cGUobykpCi0gICAgICAgICAgICByZXR1cm4gZmFsc2U7
Ci0KLSAgICAgICAgY29uc3QgQ3VzdG9tRmlsdGVyT3BlcmF0aW9uKiBvdGhlciA9IHN0YXRpY19j
YXN0PGNvbnN0IEN1c3RvbUZpbHRlck9wZXJhdGlvbio+KCZvKTsKLSAgICAgICAgcmV0dXJuIG1f
dmVydGV4U2hhZGVyLmdldCgpID09IG90aGVyLT5tX3ZlcnRleFNoYWRlci5nZXQoKQotICAgICAg
ICAgICAgICAgJiYgbV9mcmFnbWVudFNoYWRlci5nZXQoKSA9PSBvdGhlci0+bV9mcmFnbWVudFNo
YWRlci5nZXQoKQotICAgICAgICAgICAgICAgJiYgbV9tZXNoUm93cyA9PSBvdGhlci0+bV9tZXNo
Um93cwotICAgICAgICAgICAgICAgJiYgbV9tZXNoQ29sdW1ucyA9PSBvdGhlci0+bV9tZXNoQ29s
dW1ucwotICAgICAgICAgICAgICAgJiYgbV9tZXNoQm94VHlwZSA9PSBvdGhlci0+bV9tZXNoQm94
VHlwZQotICAgICAgICAgICAgICAgJiYgbV9tZXNoVHlwZSA9PSBvdGhlci0+bV9tZXNoVHlwZTsK
LSAgICB9Ci0gICAgCi0gICAgQ3VzdG9tRmlsdGVyT3BlcmF0aW9uKFBhc3NSZWZQdHI8U3R5bGVT
aGFkZXI+IHZlcnRleFNoYWRlciwgUGFzc1JlZlB0cjxTdHlsZVNoYWRlcj4gZnJhZ21lbnRTaGFk
ZXIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIG1lc2hSb3dzLCB1bnNpZ25l
ZCBtZXNoQ29sdW1ucywgTWVzaEJveFR5cGUgbWVzaEJveFR5cGUsIE1lc2hUeXBlIG1lc2hUeXBl
KQotICAgICAgICA6IEZpbHRlck9wZXJhdGlvbihDVVNUT00pCi0gICAgICAgICwgbV92ZXJ0ZXhT
aGFkZXIodmVydGV4U2hhZGVyKQotICAgICAgICAsIG1fZnJhZ21lbnRTaGFkZXIoZnJhZ21lbnRT
aGFkZXIpCi0gICAgICAgICwgbV9tZXNoUm93cyhtZXNoUm93cykKLSAgICAgICAgLCBtX21lc2hD
b2x1bW5zKG1lc2hDb2x1bW5zKQotICAgICAgICAsIG1fbWVzaEJveFR5cGUobWVzaEJveFR5cGUp
Ci0gICAgICAgICwgbV9tZXNoVHlwZShtZXNoVHlwZSkKLSAgICB7Ci0gICAgfQotCi0gICAgUmVm
UHRyPFN0eWxlU2hhZGVyPiBtX3ZlcnRleFNoYWRlcjsKLSAgICBSZWZQdHI8U3R5bGVTaGFkZXI+
IG1fZnJhZ21lbnRTaGFkZXI7Ci0gICAgCi0gICAgdW5zaWduZWQgbV9tZXNoUm93czsKLSAgICB1
bnNpZ25lZCBtX21lc2hDb2x1bW5zOwotICAgIE1lc2hCb3hUeXBlIG1fbWVzaEJveFR5cGU7Ci0g
ICAgTWVzaFR5cGUgbV9tZXNoVHlwZTsKLX07Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKLQot
I2VuZGlmIC8vIEVOQUJMRShDU1NfU0hBREVSUykKLQotI2VuZGlmIC8vIEN1c3RvbUZpbHRlck9w
ZXJhdGlvbl9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5
bGVDdXN0b21GaWx0ZXJQcm9ncmFtLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUv
U3R5bGVDdXN0b21GaWx0ZXJQcm9ncmFtLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMC4uY2Y1NTlkNgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9zdHlsZS9TdHlsZUN1c3RvbUZpbHRlclByb2dyYW0uaApAQCAtMCwwICsxLDE0MCBAQAorLyoK
KyAqIENvcHlyaWdodCAyMDExIEFkb2JlIFN5c3RlbXMgSW5jb3Jwb3JhdGVkLiBBbGwgUmlnaHRz
IFJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUKKyAqICAgIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nCisgKiAgICBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogICAgY29weXJpZ2h0
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcKKyAqICAg
IGRpc2NsYWltZXIgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscwor
ICogICAgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVIg4oCcQVMgSVPigJ0gQU5EIEFO
WQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVCBIT0xERVIgQkUKKyAqIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwKKyAq
IE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IKKyAqIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRgorICogVEhFIFVT
RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G
CisgKiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFN0eWxlQ3VzdG9tRmlsdGVyUHJvZ3Jh
bV9oCisjZGVmaW5lIFN0eWxlQ3VzdG9tRmlsdGVyUHJvZ3JhbV9oCisKKyNpZiBFTkFCTEUoQ1NT
X1NIQURFUlMpCisjaW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VDbGllbnQuaCIKKyNpbmNsdWRlICJD
YWNoZWRSZXNvdXJjZUhhbmRsZS5oIgorI2luY2x1ZGUgIkNhY2hlZFNoYWRlci5oIgorI2luY2x1
ZGUgIkN1c3RvbUZpbHRlclByb2dyYW0uaCIKKyNpbmNsdWRlICJTdHlsZVNoYWRlci5oIgorI2lu
Y2x1ZGUgPHd0Zi9GYXN0QWxsb2NCYXNlLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworLy8g
Q1NTIFNoYWRlcnMKKworY2xhc3MgU3R5bGVDdXN0b21GaWx0ZXJQcm9ncmFtIDogcHVibGljIEN1
c3RvbUZpbHRlclByb2dyYW0sIHB1YmxpYyBDYWNoZWRSZXNvdXJjZUNsaWVudCB7CisgICAgV1RG
X01BS0VfRkFTVF9BTExPQ0FURUQ7CitwdWJsaWM6CisgICAgc3RhdGljIFBhc3NSZWZQdHI8U3R5
bGVDdXN0b21GaWx0ZXJQcm9ncmFtPiBjcmVhdGUoUGFzc1JlZlB0cjxTdHlsZVNoYWRlcj4gdmVy
dGV4U2hhZGVyLCBQYXNzUmVmUHRyPFN0eWxlU2hhZGVyPiBmcmFnbWVudFNoYWRlcikKKyAgICB7
CisgICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgU3R5bGVDdXN0b21GaWx0ZXJQcm9ncmFtKHZl
cnRleFNoYWRlciwgZnJhZ21lbnRTaGFkZXIpKTsKKyAgICB9CisgICAgCisgICAgdm9pZCBzZXRW
ZXJ0ZXhTaGFkZXIoUGFzc1JlZlB0cjxTdHlsZVNoYWRlcj4gc2hhZGVyKSB7IG1fdmVydGV4U2hh
ZGVyID0gc2hhZGVyOyB9CisgICAgU3R5bGVTaGFkZXIqIHZlcnRleFNoYWRlcigpIGNvbnN0IHsg
cmV0dXJuIG1fdmVydGV4U2hhZGVyLmdldCgpOyB9CisgICAgCisgICAgdm9pZCBzZXRGcmFnbWVu
dFNoYWRlcihQYXNzUmVmUHRyPFN0eWxlU2hhZGVyPiBzaGFkZXIpIHsgbV9mcmFnbWVudFNoYWRl
ciA9IHNoYWRlcjsgfQorICAgIFN0eWxlU2hhZGVyKiBmcmFnbWVudFNoYWRlcigpIGNvbnN0IHsg
cmV0dXJuIG1fZnJhZ21lbnRTaGFkZXIuZ2V0KCk7IH0KKyAgICAKKyAgICB2aXJ0dWFsIFN0cmlu
ZyB2ZXJ0ZXhTaGFkZXJTdHJpbmcoKSBjb25zdAorICAgIHsKKyAgICAgICAgQVNTRVJUKGlzTG9h
ZGVkKCkpOworICAgICAgICByZXR1cm4gbV9jYWNoZWRWZXJ0ZXhTaGFkZXIuZ2V0KCkgPyBtX2Nh
Y2hlZFZlcnRleFNoYWRlci0+c2hhZGVyU3RyaW5nKCkgOiBTdHJpbmcoKTsKKyAgICB9CisgICAg
CisgICAgdmlydHVhbCBTdHJpbmcgZnJhZ21lbnRTaGFkZXJTdHJpbmcoKSBjb25zdAorICAgIHsK
KyAgICAgICAgQVNTRVJUKGlzTG9hZGVkKCkpOworICAgICAgICByZXR1cm4gbV9jYWNoZWRGcmFn
bWVudFNoYWRlci5nZXQoKSA/IG1fY2FjaGVkRnJhZ21lbnRTaGFkZXItPnNoYWRlclN0cmluZygp
IDogU3RyaW5nKCk7CisgICAgfQorCisgICAgdmlydHVhbCBib29sIGlzTG9hZGVkKCkgY29uc3QK
KyAgICB7CisgICAgICAgIC8vIERvIG5vdCB1c2UgdGhlIENhY2hlZFJlc291cmNlOmlzTG9hZGVk
IG1ldGhvZCBoZXJlLCBiZWNhdXNlIGl0IGFjdHVhbGx5IG1lYW5zICFpc0xvYWRpbmcoKSwKKyAg
ICAgICAgLy8gc28gbWlzc2luZyBhbmQgY2FuY2VsZWQgcmVzb3VyY2VzIHdpbGwgaGF2ZSBpc0xv
YWRlZCBzZXQgdG8gdHJ1ZSwgZXZlbiBpZiB0aGV5IGFyZSBub3QgbG9hZGVkIHlldC4KKyAgICAg
ICAgcmV0dXJuICghbV9jYWNoZWRWZXJ0ZXhTaGFkZXIuZ2V0KCkgfHwgbV9pc1ZlcnRleFNoYWRl
ckxvYWRlZCkKKyAgICAgICAgICAgICYmICghbV9jYWNoZWRGcmFnbWVudFNoYWRlci5nZXQoKSB8
fCBtX2lzRnJhZ21lbnRTaGFkZXJMb2FkZWQpOworICAgIH0KKworICAgIHZpcnR1YWwgdm9pZCB3
aWxsSGF2ZUNsaWVudHMoKQorICAgIHsKKyAgICAgICAgaWYgKG1fdmVydGV4U2hhZGVyKSB7Cisg
ICAgICAgICAgICBtX2NhY2hlZFZlcnRleFNoYWRlciA9IG1fdmVydGV4U2hhZGVyLT5jYWNoZWRT
aGFkZXIoKTsKKyAgICAgICAgICAgIG1fY2FjaGVkVmVydGV4U2hhZGVyLT5hZGRDbGllbnQodGhp
cyk7CisgICAgICAgIH0KKyAgICAgICAgaWYgKG1fZnJhZ21lbnRTaGFkZXIpIHsKKyAgICAgICAg
ICAgIG1fY2FjaGVkRnJhZ21lbnRTaGFkZXIgPSBtX2ZyYWdtZW50U2hhZGVyLT5jYWNoZWRTaGFk
ZXIoKTsKKyAgICAgICAgICAgIG1fY2FjaGVkRnJhZ21lbnRTaGFkZXItPmFkZENsaWVudCh0aGlz
KTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICB2aXJ0dWFsIHZvaWQgZGlkUmVtb3ZlTGFz
dENsaWVudCgpCisgICAgeworICAgICAgICBpZiAobV9jYWNoZWRWZXJ0ZXhTaGFkZXIuZ2V0KCkp
IHsKKyAgICAgICAgICAgIG1fY2FjaGVkVmVydGV4U2hhZGVyLT5yZW1vdmVDbGllbnQodGhpcyk7
CisgICAgICAgICAgICBtX2NhY2hlZFZlcnRleFNoYWRlciA9IDA7CisgICAgICAgICAgICBtX2lz
VmVydGV4U2hhZGVyTG9hZGVkID0gZmFsc2U7CisgICAgICAgIH0KKyAgICAgICAgaWYgKG1fY2Fj
aGVkRnJhZ21lbnRTaGFkZXIuZ2V0KCkpIHsKKyAgICAgICAgICAgIG1fY2FjaGVkRnJhZ21lbnRT
aGFkZXItPnJlbW92ZUNsaWVudCh0aGlzKTsKKyAgICAgICAgICAgIG1fY2FjaGVkRnJhZ21lbnRT
aGFkZXIgPSAwOworICAgICAgICAgICAgbV9pc0ZyYWdtZW50U2hhZGVyTG9hZGVkID0gZmFsc2U7
CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgdmlydHVhbCB2b2lkIG5vdGlmeUZpbmlzaGVk
KENhY2hlZFJlc291cmNlKiByZXNvdXJjZSkKKyAgICB7CisgICAgICAgIGlmIChyZXNvdXJjZS0+
ZXJyb3JPY2N1cnJlZCgpKQorICAgICAgICAgICAgcmV0dXJuOworICAgICAgICBpZiAocmVzb3Vy
Y2UgPT0gbV9jYWNoZWRWZXJ0ZXhTaGFkZXIuZ2V0KCkpCisgICAgICAgICAgICBtX2lzVmVydGV4
U2hhZGVyTG9hZGVkID0gdHJ1ZTsKKyAgICAgICAgZWxzZSBpZiAocmVzb3VyY2UgPT0gbV9jYWNo
ZWRGcmFnbWVudFNoYWRlci5nZXQoKSkKKyAgICAgICAgICAgIG1faXNGcmFnbWVudFNoYWRlckxv
YWRlZCA9IHRydWU7CisgICAgICAgIGlmIChpc0xvYWRlZCgpKQorICAgICAgICAgICAgbm90aWZ5
Q2xpZW50cygpOworICAgIH0KKworcHJpdmF0ZToKKyAgICBTdHlsZUN1c3RvbUZpbHRlclByb2dy
YW0oUGFzc1JlZlB0cjxTdHlsZVNoYWRlcj4gdmVydGV4U2hhZGVyLCBQYXNzUmVmUHRyPFN0eWxl
U2hhZGVyPiBmcmFnbWVudFNoYWRlcikKKyAgICAgICAgOiBtX3ZlcnRleFNoYWRlcih2ZXJ0ZXhT
aGFkZXIpCisgICAgICAgICwgbV9mcmFnbWVudFNoYWRlcihmcmFnbWVudFNoYWRlcikKKyAgICAg
ICAgLCBtX2lzVmVydGV4U2hhZGVyTG9hZGVkKGZhbHNlKQorICAgICAgICAsIG1faXNGcmFnbWVu
dFNoYWRlckxvYWRlZChmYWxzZSkKKyAgICB7CisgICAgfQorICAgIAorICAgIFJlZlB0cjxTdHls
ZVNoYWRlcj4gbV92ZXJ0ZXhTaGFkZXI7CisgICAgUmVmUHRyPFN0eWxlU2hhZGVyPiBtX2ZyYWdt
ZW50U2hhZGVyOworICAgIAorICAgIENhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZFNoYWRlcj4g
bV9jYWNoZWRWZXJ0ZXhTaGFkZXI7CisgICAgQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkU2hh
ZGVyPiBtX2NhY2hlZEZyYWdtZW50U2hhZGVyOworICAgIAorICAgIGJvb2wgbV9pc1ZlcnRleFNo
YWRlckxvYWRlZDsKKyAgICBib29sIG1faXNGcmFnbWVudFNoYWRlckxvYWRlZDsKK307CisKK30g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShDU1NfU0hBREVSUykKKwor
I2VuZGlmIC8vIFN0eWxlQ3VzdG9tRmlsdGVyUHJvZ3JhbV9oCg==
</data>
<flag name="review"
          id="122228"
          type_id="1"
          status="+"
          setter="cmarrin"
    />
          </attachment>
      

    </bug>

</bugzilla>