<?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>236148</bug_id>
          
          <creation_ts>2022-02-04 11:29:33 -0800</creation_ts>
          <short_desc>Implement getComputedStyle for sub grid</short_desc>
          <delta_ts>2022-02-16 19:41:45 -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>CSS</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>DoNotImportToRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>236122</dependson>
          <blocked>202115</blocked>
    
    <blocked>236287</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Matt Woodrow">mattwoodrow</reporter>
          <assigned_to name="Matt Woodrow">mattwoodrow</assigned_to>
          <cc>annulen</cc>
    
    <cc>changseok</cc>
    
    <cc>clopez</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>jean-yves.avenard</cc>
    
    <cc>jfernandez</cc>
    
    <cc>koivisto</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>macpherson</cc>
    
    <cc>menard</cc>
    
    <cc>obrufau</cc>
    
    <cc>pdr</cc>
    
    <cc>rego</cc>
    
    <cc>ryuan.choi</cc>
    
    <cc>sergio</cc>
    
    <cc>svillar</cc>
    
    <cc>youennf</cc>
    
    <cc>zalan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1837523</commentid>
    <comment_count>0</comment_count>
    <who name="Matt Woodrow">mattwoodrow</who>
    <bug_when>2022-02-04 11:29:33 -0800</bug_when>
    <thetext>getComputedStyle should return the actual number of explicit tracks if it&apos;s a sub grid, otherwise falling back to the specified value.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1837800</commentid>
    <comment_count>1</comment_count>
      <attachid>451004</attachid>
    <who name="Matt Woodrow">mattwoodrow</who>
    <bug_when>2022-02-05 15:36:15 -0800</bug_when>
    <thetext>Created attachment 451004
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1837801</commentid>
    <comment_count>2</comment_count>
      <attachid>451005</attachid>
    <who name="Matt Woodrow">mattwoodrow</who>
    <bug_when>2022-02-05 15:37:17 -0800</bug_when>
    <thetext>Created attachment 451005
Patch for EWS</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1837802</commentid>
    <comment_count>3</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2022-02-05 15:38:36 -0800</bug_when>
    <thetext>This patch modifies the imported WPT tests. Please ensure that any changes on the tests (not coming from a WPT import) are exported to WPT. Please see https://trac.webkit.org/wiki/WPTExportProcess</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1837804</commentid>
    <comment_count>4</comment_count>
      <attachid>451006</attachid>
    <who name="Matt Woodrow">mattwoodrow</who>
    <bug_when>2022-02-05 15:40:35 -0800</bug_when>
    <thetext>Created attachment 451006
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1837805</commentid>
    <comment_count>5</comment_count>
      <attachid>451007</attachid>
    <who name="Matt Woodrow">mattwoodrow</who>
    <bug_when>2022-02-05 15:41:06 -0800</bug_when>
    <thetext>Created attachment 451007
Patch for EWS</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1841481</commentid>
    <comment_count>6</comment_count>
      <attachid>451958</attachid>
    <who name="Matt Woodrow">mattwoodrow</who>
    <bug_when>2022-02-14 16:51:08 -0800</bug_when>
    <thetext>Created attachment 451958
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1841482</commentid>
    <comment_count>7</comment_count>
      <attachid>451959</attachid>
    <who name="Matt Woodrow">mattwoodrow</who>
    <bug_when>2022-02-14 16:52:01 -0800</bug_when>
    <thetext>Created attachment 451959
Patch for EWS</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1842083</commentid>
    <comment_count>8</comment_count>
      <attachid>451958</attachid>
    <who name="Oriol Brufau">obrufau</who>
    <bug_when>2022-02-15 18:18:41 -0800</bug_when>
    <thetext>Comment on attachment 451958
Patch

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

Looks good to me with these comments.

&gt; Source/WebCore/ChangeLog:28
&gt; +        Inherit track count from parent grid for subgridded axes and clamp item placement to that explicit grid.

This is from the previous patch.

&gt; Source/WebCore/css/CSSComputedStyleDeclaration.cpp:928
&gt; +    unsigned m_autoRepeatTotalTracks;

Not counting tracks. m_autoRepeatTotalLineSets?

&gt; Source/WebCore/css/CSSComputedStyleDeclaration.cpp:929
&gt; +    unsigned m_autoRepeatTrackListLength;

Not counting tracks. m_autoRepeatLineSetListLength?

&gt; Source/WebCore/css/CSSComputedStyleDeclaration.cpp:1002
&gt; +    if (!m_autoRepeatTotalTracks) {

I don&apos;t think this can match. If m_autoRepeatTotalTracks is 0, then we will either match `i &lt; m_insertionPoint` or `i &gt;= m_insertionPoint + 0` above.

&gt; Source/WebCore/rendering/RenderGrid.cpp:498
&gt; +    if (isRowAxis ? isSubgridColumns() : isSubgridRows())

Could be isSubgrid(direction)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1842146</commentid>
    <comment_count>9</comment_count>
      <attachid>451958</attachid>
    <who name="Manuel Rego Casasnovas">rego</who>
    <bug_when>2022-02-15 22:58:41 -0800</bug_when>
    <thetext>Comment on attachment 451958
Patch

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

We miss the ChangeLog for the LayoutTest changes.

&gt; Source/WebCore/css/CSSComputedStyleDeclaration.cpp:907
&gt; +        , m_totalTracks(totalTracksCount)

Could we call this m_totalLines and store it with the +1 already? It looks we&apos;re always using it adding +1.

&gt; Source/WebCore/css/CSSComputedStyleDeclaration.cpp:1092
&gt; +    // an appropriate grid parent?), then we fall back to using the specified value.

Why a question in the comment?

&gt; Source/WebCore/rendering/style/GridPositionsResolver.cpp:82
&gt; +    // TODO: Handle subgrid auto repeat tracks

Nit: s/TODO/FIXME/

&gt; Source/WebCore/rendering/style/GridPositionsResolver.cpp:83
&gt; +    if (isRowAxis ? gridContainerStyle.gridSubgridColumns() : gridContainerStyle.gridSubgridRows()) {

Could we use isSubgrid() here?

&gt; LayoutTests/TestExpectations:-1450
&gt; -imported/w3c/web-platform-tests/css/css-grid/subgrid/grid-subgridded-axis-auto-repeater-crash-002.html [ Crash ]

Aren&apos;t we passing any other test after this change?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1842247</commentid>
    <comment_count>10</comment_count>
      <attachid>451958</attachid>
    <who name="Manuel Rego Casasnovas">rego</who>
    <bug_when>2022-02-16 05:13:16 -0800</bug_when>
    <thetext>Comment on attachment 451958
Patch

This patch looks good too.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1842476</commentid>
    <comment_count>11</comment_count>
      <attachid>452235</attachid>
    <who name="Matt Woodrow">mattwoodrow</who>
    <bug_when>2022-02-16 13:04:12 -0800</bug_when>
    <thetext>Created attachment 452235
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1842478</commentid>
    <comment_count>12</comment_count>
      <attachid>452236</attachid>
    <who name="Matt Woodrow">mattwoodrow</who>
    <bug_when>2022-02-16 13:06:39 -0800</bug_when>
    <thetext>Created attachment 452236
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1842480</commentid>
    <comment_count>13</comment_count>
      <attachid>452237</attachid>
    <who name="Matt Woodrow">mattwoodrow</who>
    <bug_when>2022-02-16 13:07:17 -0800</bug_when>
    <thetext>Created attachment 452237
Patch for EWS</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1842481</commentid>
    <comment_count>14</comment_count>
    <who name="Matt Woodrow">mattwoodrow</who>
    <bug_when>2022-02-16 13:09:15 -0800</bug_when>
    <thetext>(In reply to Manuel Rego Casasnovas from comment #9)
&gt; 
&gt; &gt; LayoutTests/TestExpectations:-1450
&gt; &gt; -imported/w3c/web-platform-tests/css/css-grid/subgrid/grid-subgridded-axis-auto-repeater-crash-002.html [ Crash ]
&gt; 
&gt; Aren&apos;t we passing any other test after this change?

Unfortunately not! A lot of tests check getComputedStyle, but as part of a ref test. This change gets them closer to being correct, but the grids still render incorrectly.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1842603</commentid>
    <comment_count>15</comment_count>
      <attachid>452236</attachid>
    <who name="Oriol Brufau">obrufau</who>
    <bug_when>2022-02-16 16:55:46 -0800</bug_when>
    <thetext>Comment on attachment 452236
Patch

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

&gt; Source/WebCore/css/CSSComputedStyleDeclaration.cpp:929
&gt; +    unsigned m_totalLines;

Can you stick to either &quot;line&quot; or &quot;line set&quot; terminology?
Technically speaking it&apos;s called &quot;line name set&quot; https://www.w3.org/TR/css-grid-2/#line-name-set
Both &quot;line&quot; and &quot;line set&quot; are probably understandable, but should be consistent.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1842624</commentid>
    <comment_count>16</comment_count>
    <who name="Matt Woodrow">mattwoodrow</who>
    <bug_when>2022-02-16 17:31:33 -0800</bug_when>
    <thetext>(In reply to Oriol Brufau from comment #15)
&gt; Comment on attachment 452236 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=452236&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/css/CSSComputedStyleDeclaration.cpp:929
&gt; &gt; +    unsigned m_totalLines;
&gt; 
&gt; Can you stick to either &quot;line&quot; or &quot;line set&quot; terminology?
&gt; Technically speaking it&apos;s called &quot;line name set&quot;
&gt; https://www.w3.org/TR/css-grid-2/#line-name-set
&gt; Both &quot;line&quot; and &quot;line set&quot; are probably understandable, but should be
&gt; consistent.

m_totalLines is the actual number of lines in the grid (initialised used Grid::numTracks + 1), and isn&apos;t a count of line name sets coming from style properties.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1842665</commentid>
    <comment_count>17</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2022-02-16 19:41:36 -0800</bug_when>
    <thetext>Committed r289993 (247379@main): &lt;https://commits.webkit.org/247379@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 452236.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>451004</attachid>
            <date>2022-02-05 15:36:15 -0800</date>
            <delta_ts>2022-02-05 15:40:23 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-236148-20220206123614.patch</filename>
            <type>text/plain</type>
            <size>14821</size>
            <attacher name="Matt Woodrow">mattwoodrow</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg5MDY3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTQxZWNmNTA4ZGY2ZmM3
ZmM0NmQwMGQ4ZTY1ODJlN2ViYTlkNmQ3ZC4uMmZmOTA0YWJkMDg0ZDVhZjJkYjFhYWM0YWMzOGUx
YmRmODg1YjQxMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDIyLTAyLTA0ICBNYXR0
IFdvb2Ryb3cgIDxtYXR0d29vZHJvd0BhcHBsZS5jb20+CisKKyAgICAgICAgSW1wbGVtZW50IGdl
dENvbXB1dGVkU3R5bGUgZm9yIHN1YmdyaWRzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yMzYxNDgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBBZGRzIE9yZGVyZWROYW1lZExpbmVzQ29sbGVjdG9ySW5TdWJn
cmlkTGF5b3V0IHRvIGl0ZXJhdGUgdGhlIHN1YmdyaWQgbmFtZXMgbGlzdCwgc3RvcHBpbmcKKyAg
ICAgICAgYXQgdGhlIG51bWJlciBvZiBhY3R1YWwgdHJhY2tzIGluIHRoZSBncmlkLgorCisKKyAg
ICAgICAgKiBjc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6Ok9yZGVyZWROYW1lZExpbmVzQ29sbGVjdG9ySW5TdWJncmlkTGF5b3V0OjpPcmRlcmVk
TmFtZWRMaW5lc0NvbGxlY3RvckluU3ViZ3JpZExheW91dCk6CisgICAgICAgIChXZWJDb3JlOjpP
cmRlcmVkTmFtZWRMaW5lc0NvbGxlY3RvckluR3JpZExheW91dDo6Y29sbGVjdExpbmVOYW1lc0Zv
ckluZGV4IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6Ok9yZGVyZWROYW1lZExpbmVzQ29sbGVj
dG9ySW5TdWJncmlkTGF5b3V0Ojpjb2xsZWN0TGluZU5hbWVzRm9ySW5kZXggY29uc3QpOgorICAg
ICAgICAoV2ViQ29yZTo6YWRkVmFsdWVzRm9yTmFtZWRHcmlkTGluZXNBdEluZGV4KToKKyAgICAg
ICAgKFdlYkNvcmU6OnBvcHVsYXRlU3ViZ3JpZFRyYWNrTGlzdCk6CisgICAgICAgIChXZWJDb3Jl
Ojp2YWx1ZUZvckdyaWRUcmFja0xpc3QpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJHcmlk
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckdyaWQ6OmNvbXB1dGVBdXRvUmVwZWF0VHJh
Y2tzQ291bnQgY29uc3QpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJHcmlkLmg6CisgICAg
ICAgICogcmVuZGVyaW5nL3N0eWxlL0dyaWRQb3NpdGlvbnNSZXNvbHZlci5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpOYW1lZExpbmVDb2xsZWN0aW9uOjpjb250YWlucyBjb25zdCk6CisgICAgICAg
ICogc3R5bGUvU3R5bGVCdWlsZGVyQ29udmVydGVyLmg6CisgICAgICAgIChXZWJDb3JlOjpTdHls
ZTo6QnVpbGRlckNvbnZlcnRlcjo6Y3JlYXRlR3JpZFRyYWNrTGlzdCk6CisKIDIwMjItMDItMDMg
IE1hdHQgV29vZHJvdyAgPG1hdHR3b29kcm93QGFwcGxlLmNvbT4KIAogICAgICAgICBJbmhlcml0
IHRyYWNrIGNvdW50IGZyb20gcGFyZW50IGdyaWQgZm9yIHN1YmdyaWRkZWQgYXhlcyBhbmQgY2xh
bXAgaXRlbSBwbGFjZW1lbnQgdG8gdGhhdCBleHBsaWNpdCBncmlkLgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvY3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9jc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcAppbmRleCAxNWUwNTQ5
ODkwOGE3ZGE1ZjRhOWQ1YzZhY2NhNDFiOTM0ZjA5MTE5Li40N2M3ZGYzODA2MDAzOTY2NzMwMWNm
ZjI2MmI5YjU1YmVhMGYyM2JmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ29t
cHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ29t
cHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcApAQCAtODk5LDYgKzg5OSwzOCBAQCBwcml2YXRlOgog
ICAgIHVuc2lnbmVkIG1fYXV0b1JlcGVhdFRyYWNrTGlzdExlbmd0aDsKIH07CiAKK2NsYXNzIE9y
ZGVyZWROYW1lZExpbmVzQ29sbGVjdG9ySW5TdWJncmlkTGF5b3V0IDogcHVibGljIE9yZGVyZWRO
YW1lZExpbmVzQ29sbGVjdG9yIHsKK3B1YmxpYzoKKyAgICBPcmRlcmVkTmFtZWRMaW5lc0NvbGxl
Y3RvckluU3ViZ3JpZExheW91dChjb25zdCBSZW5kZXJTdHlsZSYgc3R5bGUsIGJvb2wgaXNSb3dB
eGlzLCB1bnNpZ25lZCB0b3RhbFRyYWNrc0NvdW50KQorICAgIDogT3JkZXJlZE5hbWVkTGluZXND
b2xsZWN0b3Ioc3R5bGUsIGlzUm93QXhpcykKKyAgICAsIG1faW5zZXJ0aW9uUG9pbnQoaXNSb3dB
eGlzID8gc3R5bGUuZ3JpZEF1dG9SZXBlYXRDb2x1bW5zSW5zZXJ0aW9uUG9pbnQoKSA6IHN0eWxl
LmdyaWRBdXRvUmVwZWF0Um93c0luc2VydGlvblBvaW50KCkpCisgICAgLCBtX2F1dG9SZXBlYXRU
cmFja0xpc3RMZW5ndGgoKGlzUm93QXhpcyA/IHN0eWxlLmF1dG9SZXBlYXRPcmRlcmVkTmFtZWRH
cmlkQ29sdW1uTGluZXMoKSA6IHN0eWxlLmF1dG9SZXBlYXRPcmRlcmVkTmFtZWRHcmlkUm93TGlu
ZXMoKSkuc2l6ZSgpKQorICAgICwgbV90b3RhbFRyYWNrcyh0b3RhbFRyYWNrc0NvdW50KQorICAg
IHsKKyAgICAgICAgaWYgKCFtX2F1dG9SZXBlYXRUcmFja0xpc3RMZW5ndGgpIHsKKyAgICAgICAg
ICAgIG1fYXV0b1JlcGVhdFRvdGFsVHJhY2tzID0gMDsKKyAgICAgICAgICAgIHJldHVybjsKKyAg
ICAgICAgfQorICAgICAgICAvLyArMSB0byBjb252ZXJ0IGZyb20gdHJhY2tzIHRvIGxpbmVzCisg
ICAgICAgIHVuc2lnbmVkIG5hbWVkID0gKGlzUm93QXhpcyA/IHN0eWxlLm9yZGVyZWROYW1lZEdy
aWRDb2x1bW5MaW5lcygpIDogc3R5bGUub3JkZXJlZE5hbWVkR3JpZFJvd0xpbmVzKCkpLnNpemUo
KTsKKyAgICAgICAgaWYgKG5hbWVkID49IG1fdG90YWxUcmFja3MgKyAxKSB7CisgICAgICAgICAg
ICBtX2F1dG9SZXBlYXRUb3RhbFRyYWNrcyA9IDA7CisgICAgICAgICAgICByZXR1cm47CisgICAg
ICAgIH0KKyAgICAgICAgbV9hdXRvUmVwZWF0VG90YWxUcmFja3MgPSAobV90b3RhbFRyYWNrcyAr
IDEgLSBuYW1lZCkgLyBtX2F1dG9SZXBlYXRUcmFja0xpc3RMZW5ndGg7CisgICAgICAgIG1fYXV0
b1JlcGVhdFRvdGFsVHJhY2tzICo9IG1fYXV0b1JlcGVhdFRyYWNrTGlzdExlbmd0aDsKKyAgICB9
CisKKyAgICB2b2lkIGNvbGxlY3RMaW5lTmFtZXNGb3JJbmRleChDU1NHcmlkTGluZU5hbWVzVmFs
dWUmLCB1bnNpZ25lZCBpbmRleCkgY29uc3Qgb3ZlcnJpZGU7CisKKyAgICBpbnQgbmFtZWRHcmlk
TGluZUNvdW50KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gbV90b3RhbFRyYWNrcyArIDE7IH0K
K3ByaXZhdGU6CisgICAgdW5zaWduZWQgbV9pbnNlcnRpb25Qb2ludDsKKyAgICB1bnNpZ25lZCBt
X2F1dG9SZXBlYXRUb3RhbFRyYWNrczsKKyAgICB1bnNpZ25lZCBtX2F1dG9SZXBlYXRUcmFja0xp
c3RMZW5ndGg7CisgICAgdW5zaWduZWQgbV90b3RhbFRyYWNrczsKK307CisKIHZvaWQgT3JkZXJl
ZE5hbWVkTGluZXNDb2xsZWN0b3I6OmFwcGVuZExpbmVzKENTU0dyaWRMaW5lTmFtZXNWYWx1ZSYg
bGluZU5hbWVzVmFsdWUsIHVuc2lnbmVkIGluZGV4LCBOYW1lZExpbmVzVHlwZSB0eXBlKSBjb25z
dAogewogICAgIGF1dG8gaXRlciA9IHR5cGUgPT0gTmFtZWRMaW5lcyA/IG1fb3JkZXJlZE5hbWVk
R3JpZExpbmVzLmZpbmQoaW5kZXgpIDogbV9vcmRlcmVkTmFtZWRBdXRvUmVwZWF0R3JpZExpbmVz
LmZpbmQoaW5kZXgpOwpAQCAtOTI2LDcgKzk1OCw3IEBAIHZvaWQgT3JkZXJlZE5hbWVkTGluZXND
b2xsZWN0b3JJbnNpZGVSZXBlYXQ6OmNvbGxlY3RMaW5lTmFtZXNGb3JJbmRleChDU1NHcmlkTGlu
CiB2b2lkIE9yZGVyZWROYW1lZExpbmVzQ29sbGVjdG9ySW5HcmlkTGF5b3V0Ojpjb2xsZWN0TGlu
ZU5hbWVzRm9ySW5kZXgoQ1NTR3JpZExpbmVOYW1lc1ZhbHVlJiBsaW5lTmFtZXNWYWx1ZSwgdW5z
aWduZWQgaSkgY29uc3QKIHsKICAgICBBU1NFUlQoIWlzRW1wdHkoKSk7Ci0gICAgaWYgKCFtX2F1
dG9SZXBlYXRUcmFja0xpc3RMZW5ndGggfHwgaSA8IG1faW5zZXJ0aW9uUG9pbnQpIHsKKyAgICBp
ZiAoIW1fYXV0b1JlcGVhdFRvdGFsVHJhY2tzIHx8IGkgPCBtX2luc2VydGlvblBvaW50KSB7CiAg
ICAgICAgIGFwcGVuZExpbmVzKGxpbmVOYW1lc1ZhbHVlLCBpLCBOYW1lZExpbmVzKTsKICAgICAg
ICAgcmV0dXJuOwogICAgIH0KQEAgLTk1NiwxNCArOTg4LDM1IEBAIHZvaWQgT3JkZXJlZE5hbWVk
TGluZXNDb2xsZWN0b3JJbkdyaWRMYXlvdXQ6OmNvbGxlY3RMaW5lTmFtZXNGb3JJbmRleChDU1NH
cmlkTGluCiAgICAgYXBwZW5kTGluZXMobGluZU5hbWVzVmFsdWUsIGF1dG9SZXBlYXRJbmRleElu
Rmlyc3RSZXBldGl0aW9uLCBBdXRvUmVwZWF0TmFtZWRMaW5lcyk7CiB9CiAKLXN0YXRpYyB2b2lk
IGFkZFZhbHVlc0Zvck5hbWVkR3JpZExpbmVzQXRJbmRleChPcmRlcmVkTmFtZWRMaW5lc0NvbGxl
Y3RvciYgY29sbGVjdG9yLCB1bnNpZ25lZCBpLCBDU1NWYWx1ZUxpc3QmIGxpc3QpCit2b2lkIE9y
ZGVyZWROYW1lZExpbmVzQ29sbGVjdG9ySW5TdWJncmlkTGF5b3V0Ojpjb2xsZWN0TGluZU5hbWVz
Rm9ySW5kZXgoQ1NTR3JpZExpbmVOYW1lc1ZhbHVlJiBsaW5lTmFtZXNWYWx1ZSwgdW5zaWduZWQg
aSkgY29uc3QKIHsKLSAgICBpZiAoY29sbGVjdG9yLmlzRW1wdHkoKSkKKyAgICBpZiAoIW1fYXV0
b1JlcGVhdFRyYWNrTGlzdExlbmd0aCB8fCBpIDwgbV9pbnNlcnRpb25Qb2ludCkgeworICAgICAg
ICBhcHBlbmRMaW5lcyhsaW5lTmFtZXNWYWx1ZSwgaSwgTmFtZWRMaW5lcyk7CisgICAgICAgIHJl
dHVybjsKKyAgICB9CisKKyAgICBpZiAoaSA+PSBtX2luc2VydGlvblBvaW50ICsgbV9hdXRvUmVw
ZWF0VG90YWxUcmFja3MpIHsKKyAgICAgICAgYXBwZW5kTGluZXMobGluZU5hbWVzVmFsdWUsIGkg
LSAobV9hdXRvUmVwZWF0VG90YWxUcmFja3MgLSAxKSwgTmFtZWRMaW5lcyk7CisgICAgICAgIHJl
dHVybjsKKyAgICB9CisKKyAgICBpZiAoIW1fYXV0b1JlcGVhdFRvdGFsVHJhY2tzKSB7CisgICAg
ICAgIGFwcGVuZExpbmVzKGxpbmVOYW1lc1ZhbHVlLCBpICsgMSwgTmFtZWRMaW5lcyk7CisgICAg
ICAgIHJldHVybjsKKyAgICB9CisKKyAgICB1bnNpZ25lZCBhdXRvUmVwZWF0SW5kZXhJbkZpcnN0
UmVwZXRpdGlvbiA9IChpIC0gbV9pbnNlcnRpb25Qb2ludCkgJSBtX2F1dG9SZXBlYXRUcmFja0xp
c3RMZW5ndGg7CisgICAgYXBwZW5kTGluZXMobGluZU5hbWVzVmFsdWUsIGF1dG9SZXBlYXRJbmRl
eEluRmlyc3RSZXBldGl0aW9uLCBBdXRvUmVwZWF0TmFtZWRMaW5lcyk7Cit9CisKK3N0YXRpYyB2
b2lkIGFkZFZhbHVlc0Zvck5hbWVkR3JpZExpbmVzQXRJbmRleChPcmRlcmVkTmFtZWRMaW5lc0Nv
bGxlY3RvciYgY29sbGVjdG9yLCB1bnNpZ25lZCBpLCBDU1NWYWx1ZUxpc3QmIGxpc3QsIGJvb2wg
cmVuZGVyRW1wdHkgPSBmYWxzZSkKK3sKKyAgICBpZiAoY29sbGVjdG9yLmlzRW1wdHkoKSAmJiAh
cmVuZGVyRW1wdHkpCiAgICAgICAgIHJldHVybjsKIAogICAgIGF1dG8gbGluZU5hbWVzID0gQ1NT
R3JpZExpbmVOYW1lc1ZhbHVlOjpjcmVhdGUoKTsKICAgICBjb2xsZWN0b3IuY29sbGVjdExpbmVO
YW1lc0ZvckluZGV4KGxpbmVOYW1lcy5nZXQoKSwgaSk7Ci0gICAgaWYgKGxpbmVOYW1lcy0+bGVu
Z3RoKCkpCisgICAgaWYgKGxpbmVOYW1lcy0+bGVuZ3RoKCkgfHwgcmVuZGVyRW1wdHkpCiAgICAg
ICAgIGxpc3QuYXBwZW5kKFdURk1vdmUobGluZU5hbWVzKSk7CiB9CiAKQEAgLTk5OCwxNSArMTA1
MSwxNiBAQCB2b2lkIHBvcHVsYXRlR3JpZFRyYWNrTGlzdChDU1NWYWx1ZUxpc3QmIGxpc3QsIE9y
ZGVyZWROYW1lZExpbmVzQ29sbGVjdG9yJiBjb2xsZQogICAgIHBvcHVsYXRlR3JpZFRyYWNrTGlz
dDxUPihsaXN0LCBjb2xsZWN0b3IsIHRyYWNrcywgZ2V0VHJhY2tTaXplLCAwLCB0cmFja3Muc2l6
ZSgpLCBvZmZzZXQpOwogfQogCi1zdGF0aWMgdm9pZCBwb3B1bGF0ZVN1YmdyaWRUcmFja0xpc3Qo
Q1NTVmFsdWVMaXN0JiBsaXN0LCBPcmRlcmVkTmFtZWRMaW5lc0NvbGxlY3RvciYgY29sbGVjdG9y
LCBpbnQgc3RhcnQsIGludCBlbmQpCitzdGF0aWMgdm9pZCBwb3B1bGF0ZVN1YmdyaWRUcmFja0xp
c3QoQ1NTVmFsdWVMaXN0JiBsaXN0LCBPcmRlcmVkTmFtZWRMaW5lc0NvbGxlY3RvciYgY29sbGVj
dG9yLCBpbnQgc3RhcnQsIGludCBlbmQsIGJvb2wgcmVuZGVyRW1wdHkgPSBmYWxzZSkKIHsKLSAg
ICBmb3IgKGludCBpID0gc3RhcnQ7IGkgPCBlbmQ7IGkrKykKLSAgICAgICAgYWRkVmFsdWVzRm9y
TmFtZWRHcmlkTGluZXNBdEluZGV4KGNvbGxlY3RvciwgaSwgbGlzdCk7CisgICAgZm9yIChpbnQg
aSA9IHN0YXJ0OyBpIDwgZW5kOyBpKyspIHsKKyAgICAgICAgYWRkVmFsdWVzRm9yTmFtZWRHcmlk
TGluZXNBdEluZGV4KGNvbGxlY3RvciwgaSwgbGlzdCwgcmVuZGVyRW1wdHkpOworICAgIH0KIH0K
IAotc3RhdGljIHZvaWQgcG9wdWxhdGVTdWJncmlkVHJhY2tMaXN0KENTU1ZhbHVlTGlzdCYgbGlz
dCwgT3JkZXJlZE5hbWVkTGluZXNDb2xsZWN0b3ImIGNvbGxlY3RvcikKK3N0YXRpYyB2b2lkIHBv
cHVsYXRlU3ViZ3JpZFRyYWNrTGlzdChDU1NWYWx1ZUxpc3QmIGxpc3QsIE9yZGVyZWROYW1lZExp
bmVzQ29sbGVjdG9yJiBjb2xsZWN0b3IsIGJvb2wgcmVuZGVyRW1wdHkgPSBmYWxzZSkKIHsKLSAg
ICBwb3B1bGF0ZVN1YmdyaWRUcmFja0xpc3QobGlzdCwgY29sbGVjdG9yLCAwLCBjb2xsZWN0b3Iu
bmFtZWRHcmlkTGluZUNvdW50KCkpOworICAgIHBvcHVsYXRlU3ViZ3JpZFRyYWNrTGlzdChsaXN0
LCBjb2xsZWN0b3IsIDAsIGNvbGxlY3Rvci5uYW1lZEdyaWRMaW5lQ291bnQoKSwgcmVuZGVyRW1w
dHkpOwogfQogCiBzdGF0aWMgUmVmPENTU1ZhbHVlPiB2YWx1ZUZvckdyaWRUcmFja0xpc3QoR3Jp
ZFRyYWNrU2l6aW5nRGlyZWN0aW9uIGRpcmVjdGlvbiwgUmVuZGVyT2JqZWN0KiByZW5kZXJlciwg
Y29uc3QgUmVuZGVyU3R5bGUmIHN0eWxlKQpAQCAtMTAzNiw5ICsxMDkwLDE1IEBAIHN0YXRpYyBS
ZWY8Q1NTVmFsdWU+IHZhbHVlRm9yR3JpZFRyYWNrTGlzdChHcmlkVHJhY2tTaXppbmdEaXJlY3Rp
b24gZGlyZWN0aW9uLCBSCiAKICAgICAvLyBJZiB0aGUgZWxlbWVudCBpcyBhIGdyaWQgY29udGFp
bmVyLCB0aGUgcmVzb2x2ZWQgdmFsdWUgaXMgdGhlIHVzZWQgdmFsdWUsCiAgICAgLy8gc3BlY2lm
eWluZyB0cmFjayBzaXplcyBpbiBwaXhlbHMgYW5kIGV4cGFuZGluZyB0aGUgcmVwZWF0KCkgbm90
YXRpb24uCi0gICAgaWYgKGlzUmVuZGVyR3JpZCkgewotICAgICAgICAvLyBUT0RPOiBXZSBuZWVk
IHRvIGhhbmRsZSBjb21wdXRlZCBzdWJncmlkIGhlcmUuCisgICAgLy8gSWYgc3ViZ3JpZCB3YXMg
c3BlY2lmaWVkLCBidXQgdGhlIGVsZW1lbnQgaXNuJ3QgYSBzdWJncmlkIChkdWUgdG8gbm90IGhh
dmluZworICAgIC8vIGFuIGFwcHJvcHJpYXRlIGdyaWQgcGFyZW50PyksIHRoZW4gd2UgZmFsbCBi
YWNrIHRvIHVzaW5nIHRoZSBzcGVjaWZpZWQgdmFsdWUuCisgICAgaWYgKGlzUmVuZGVyR3JpZCAm
JiAoIWlzU3ViZ3JpZCB8fCBkb3duY2FzdDxSZW5kZXJHcmlkKHJlbmRlcmVyKS0+aXNTdWJncmlk
KGRpcmVjdGlvbikpKSB7CiAgICAgICAgIGF1dG8qIGdyaWQgPSBkb3duY2FzdDxSZW5kZXJHcmlk
PihyZW5kZXJlcik7CisgICAgICAgIGlmIChpc1N1YmdyaWQpIHsKKyAgICAgICAgICAgIE9yZGVy
ZWROYW1lZExpbmVzQ29sbGVjdG9ySW5TdWJncmlkTGF5b3V0IGNvbGxlY3RvcihzdHlsZSwgaXNS
b3dBeGlzLCBncmlkLT5udW1UcmFja3MoZGlyZWN0aW9uKSk7CisgICAgICAgICAgICBwb3B1bGF0
ZVN1YmdyaWRUcmFja0xpc3QobGlzdC5nZXQoKSwgY29sbGVjdG9yLCB0cnVlKTsKKyAgICAgICAg
ICAgIHJldHVybiBsaXN0OworICAgICAgICB9CiAgICAgICAgIE9yZGVyZWROYW1lZExpbmVzQ29s
bGVjdG9ySW5HcmlkTGF5b3V0IGNvbGxlY3RvcihzdHlsZSwgaXNSb3dBeGlzLCBncmlkLT5hdXRv
UmVwZWF0Q291bnRGb3JEaXJlY3Rpb24oZGlyZWN0aW9uKSwgYXV0b1JlcGVhdFRyYWNrU2l6ZXMu
c2l6ZSgpKTsKICAgICAgICAgLy8gTmFtZWQgZ3JpZCBsaW5lIGluZGljZXMgYXJlIHJlbGF0aXZl
IHRvIHRoZSBleHBsaWNpdCBncmlkLCBidXQgd2UgYXJlIGluY2x1ZGluZyBhbGwgdHJhY2tzLgog
ICAgICAgICAvLyBTbyB3ZSBuZWVkIHRvIHN1YnRyYWN0IHRoZSBudW1iZXIgb2YgbGVhZGluZyBp
bXBsaWNpdCB0cmFja3MgaW4gb3JkZXIgdG8gZ2V0IHRoZSBwcm9wZXIgbGluZSBpbmRleC4KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJHcmlkLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJHcmlkLmNwcAppbmRleCA5ZWZlNDVhOGZmZjkxMzhl
NTM1MmY2NTIwNGEwOTI3MjA1NTI3ZThmLi45MTZlNjdkNDFkODE2Mjk4MzVjMWQwMmQyNmFlNDM3
YjYwYmJjMDc1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyR3Jp
ZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckdyaWQuY3BwCkBAIC00
NzksNiArNDc5LDkgQEAgdW5zaWduZWQgUmVuZGVyR3JpZDo6Y29tcHV0ZUF1dG9SZXBlYXRUcmFj
a3NDb3VudChHcmlkVHJhY2tTaXppbmdEaXJlY3Rpb24gZGlyZWMKIHsKICAgICBBU1NFUlQoIWF2
YWlsYWJsZVNpemUgfHwgYXZhaWxhYmxlU2l6ZS52YWx1ZSgpICE9IC0xKTsKICAgICBib29sIGlz
Um93QXhpcyA9IGRpcmVjdGlvbiA9PSBGb3JDb2x1bW5zOworICAgIGlmIChpc1Jvd0F4aXMgPyBp
c1N1YmdyaWRDb2x1bW5zKCkgOiBpc1N1YmdyaWRSb3dzKCkpIHsKKyAgICAgICAgcmV0dXJuIDA7
CisgICAgfQogICAgIGNvbnN0IGF1dG8mIGF1dG9SZXBlYXRUcmFja3MgPSBpc1Jvd0F4aXMgPyBz
dHlsZSgpLmdyaWRBdXRvUmVwZWF0Q29sdW1ucygpIDogc3R5bGUoKS5ncmlkQXV0b1JlcGVhdFJv
d3MoKTsKICAgICB1bnNpZ25lZCBhdXRvUmVwZWF0VHJhY2tMaXN0TGVuZ3RoID0gYXV0b1JlcGVh
dFRyYWNrcy5zaXplKCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJHcmlkLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyR3JpZC5oCmluZGV4
IGI0NmVmZGE2YjUyZmNhYjQ1ZDFmNDE1ZTQ1OWYwNjI3NGViMTkyZjIuLmUzMDQxYWU3NDIxNThl
MThkYWI5ZGE4NmRkZjI2MTFkOTI1MDIzZjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJHcmlkLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckdyaWQuaApAQCAtOTUsNiArOTUsMTAgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gbV9ncmlk
OwogICAgIH0KIAorICAgIHVuc2lnbmVkIG51bVRyYWNrcyhHcmlkVHJhY2tTaXppbmdEaXJlY3Rp
b24gZGlyZWN0aW9uKSBjb25zdCB7CisgICAgICAgIHJldHVybiBudW1UcmFja3MoZGlyZWN0aW9u
LCBtX2dyaWQpOworICAgIH0KKwogcHJpdmF0ZToKICAgICBJdGVtUG9zaXRpb24gc2VsZkFsaWdu
bWVudE5vcm1hbEJlaGF2aW9yKGNvbnN0IFJlbmRlckJveCogY2hpbGQgPSBudWxscHRyKSBjb25z
dCBvdmVycmlkZQogICAgIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9z
dHlsZS9HcmlkUG9zaXRpb25zUmVzb2x2ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L3N0eWxlL0dyaWRQb3NpdGlvbnNSZXNvbHZlci5jcHAKaW5kZXggMTY0MDdjMWJkZmVhMTQ1YWJj
ZTc0NGRkMzE0ZjZmN2QxN2ZmYWY4NC4uNjc0MmEyMjFlZWU5ZWMwYzgzMmZhZDMyOWIwYmQxZDJm
OWFlMTI5NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL0dyaWRQ
b3NpdGlvbnNSZXNvbHZlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxl
L0dyaWRQb3NpdGlvbnNSZXNvbHZlci5jcHAKQEAgLTEwNSw3ICsxMDUsNyBAQCBib29sIE5hbWVk
TGluZUNvbGxlY3Rpb246OmNvbnRhaW5zKHVuc2lnbmVkIGxpbmUpIGNvbnN0CiAgICAgaWYgKGNv
bnRhaW5zKG1faW1wbGljaXROYW1lZExpbmVzSW5kZXhlcywgbGluZSkpCiAgICAgICAgIHJldHVy
biB0cnVlOwogCi0gICAgaWYgKCFtX2F1dG9SZXBlYXRUcmFja0xpc3RMZW5ndGggfHwgbGluZSA8
IG1faW5zZXJ0aW9uUG9pbnQpCisgICAgaWYgKCFtX2F1dG9SZXBlYXRUb3RhbFRyYWNrc3x8IGxp
bmUgPCBtX2luc2VydGlvblBvaW50KQogICAgICAgICByZXR1cm4gY29udGFpbnMobV9uYW1lZExp
bmVzSW5kZXhlcywgbGluZSk7CiAKICAgICBBU1NFUlQobV9hdXRvUmVwZWF0VG90YWxUcmFja3Mp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVCdWlsZGVyQ29udmVydGVy
LmggYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZUJ1aWxkZXJDb252ZXJ0ZXIuaAppbmRleCAx
ZDYzZTI0YjUxMWExMGE2ZGMxNTZlZDE1OWVmNzA4Y2M0NTMyYTBiLi4zNzhhMTU0YjY2OWU3MTVh
ZjgwNWM3MjkwYjVmOTJlYThhYTJkYzY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdHls
ZS9TdHlsZUJ1aWxkZXJDb252ZXJ0ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHls
ZUJ1aWxkZXJDb252ZXJ0ZXIuaApAQCAtMTAyMyw4ICsxMDIzLDEwIEBAIGlubGluZSBib29sIEJ1
aWxkZXJDb252ZXJ0ZXI6OmNyZWF0ZUdyaWRUcmFja0xpc3QoY29uc3QgQ1NTVmFsdWUmIHZhbHVl
LCBUcmFja3NECiAgICAgICAgICAgICBjcmVhdGVHcmlkTGluZU5hbWVzTGlzdChjdXJyZW50VmFs
dWUsIGN1cnJlbnROYW1lZEdyaWRMaW5lLCB0cmFja3NEYXRhLm1fbmFtZWRHcmlkTGluZXMsIHRy
YWNrc0RhdGEubV9vcmRlcmVkTmFtZWRHcmlkTGluZXMpOwogICAgICAgICAgICAgLy8gU3ViZ3Jp
ZHMgb25seSBoYXZlIGxpbmUgbmFtZXMgZGVmaW5lZCwgbm90IHRyYWNrIHNpemVzLCBzbyB3ZSB3
YW50IG91ciBjb3VudAogICAgICAgICAgICAgLy8gdG8gYmUgdGhlIG51bWJlciBvZiBsaW5lcyBu
YW1lZCByYXRoZXIgdGhhbiBudW1iZXIgb2Ygc2l6ZWQgdHJhY2tzLgotICAgICAgICAgICAgaWYg
KHRyYWNrc0RhdGEuaXNTdWJncmlkKQorICAgICAgICAgICAgaWYgKHRyYWNrc0RhdGEuaXNTdWJn
cmlkKSB7CisgICAgICAgICAgICAgICAgdHJhY2tzRGF0YS5tX3RyYWNrU2l6ZXMuYXBwZW5kKEdy
aWRUcmFja1NpemUoTGVuZ3RoKExlbmd0aFR5cGU6OkF1dG8pKSk7CiAgICAgICAgICAgICAgICAg
Y3VycmVudE5hbWVkR3JpZExpbmUrKzsKKyAgICAgICAgICAgIH0KICAgICAgICAgfSBlbHNlIHsK
ICAgICAgICAgICAgICsrY3VycmVudE5hbWVkR3JpZExpbmU7CiAgICAgICAgICAgICB0cmFja3NE
YXRhLm1fdHJhY2tTaXplcy5hcHBlbmQoY3JlYXRlR3JpZFRyYWNrU2l6ZShjdXJyZW50VmFsdWUs
IGJ1aWxkZXJTdGF0ZSkpOwpAQCAtMTA0NCw4ICsxMDQ2LDEwIEBAIGlubGluZSBib29sIEJ1aWxk
ZXJDb252ZXJ0ZXI6OmNyZWF0ZUdyaWRUcmFja0xpc3QoY29uc3QgQ1NTVmFsdWUmIHZhbHVlLCBU
cmFja3NECiAgICAgICAgICAgICBmb3IgKGF1dG8mIGF1dG9SZXBlYXRWYWx1ZSA6IGRvd25jYXN0
PENTU1ZhbHVlTGlzdD4oY3VycmVudFZhbHVlLmdldCgpKSkgewogICAgICAgICAgICAgICAgIGlm
IChpczxDU1NHcmlkTGluZU5hbWVzVmFsdWU+KGF1dG9SZXBlYXRWYWx1ZSkpIHsKICAgICAgICAg
ICAgICAgICAgICAgY3JlYXRlR3JpZExpbmVOYW1lc0xpc3QoYXV0b1JlcGVhdFZhbHVlLmdldCgp
LCBhdXRvUmVwZWF0SW5kZXgsIHRyYWNrc0RhdGEubV9hdXRvUmVwZWF0TmFtZWRHcmlkTGluZXMs
IHRyYWNrc0RhdGEubV9hdXRvUmVwZWF0T3JkZXJlZE5hbWVkR3JpZExpbmVzKTsKLSAgICAgICAg
ICAgICAgICAgICAgaWYgKHRyYWNrc0RhdGEuaXNTdWJncmlkKQorICAgICAgICAgICAgICAgICAg
ICBpZiAodHJhY2tzRGF0YS5pc1N1YmdyaWQpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHRy
YWNrc0RhdGEubV9hdXRvUmVwZWF0VHJhY2tTaXplcy5hcHBlbmQoR3JpZFRyYWNrU2l6ZShMZW5n
dGgoTGVuZ3RoVHlwZTo6QXV0bykpKTsKICAgICAgICAgICAgICAgICAgICAgICAgICsrYXV0b1Jl
cGVhdEluZGV4OworICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgIGNv
bnRpbnVlOwogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICArK2F1dG9SZXBlYXRJ
bmRleDsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRU
ZXN0cy9UZXN0RXhwZWN0YXRpb25zCmluZGV4IGMwMzU5YzNiOTM5NzlmM2FhODFjZGQ2NTFkNWI4
MzAxMGQ3MmU2M2EuLmUzM2VjNTJiZTc1MGQ1N2FlOWRhZWZmN2ExOTI1ZmRmYTM5YzhlYzYgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMv
VGVzdEV4cGVjdGF0aW9ucwpAQCAtMTQ2Niw4ICsxNDY2LDYgQEAgaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWdyaWQvc3ViZ3JpZC9zdWJncmlkLW1icC1vdmVyZmxvdy0w
MDEuaHQKIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1ncmlkL3N1Ymdy
aWQvc3ViZ3JpZC1tYnAtb3ZlcmZsb3ctMDAyLmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0KIGlt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1ncmlkL3N1YmdyaWQvc3ViZ3Jp
ZC1tYnAtb3ZlcmZsb3ctMDAzLmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0KIGltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1ncmlkL3N1YmdyaWQvc3ViZ3JpZC1tYnAtb3Zl
cmZsb3ctMDA0Lmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0KLWltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvY3NzL2Nzcy1ncmlkL3N1YmdyaWQvZ3JpZC1zdWJncmlkZGVkLWF4aXMtYXV0
by1yZXBlYXRlci1jcmFzaC0wMDEuaHRtbCBbIENyYXNoIF0KLWltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvY3NzL2Nzcy1ncmlkL3N1YmdyaWQvZ3JpZC1zdWJncmlkZGVkLWF4aXMtYXV0
by1yZXBlYXRlci1jcmFzaC0wMDIuaHRtbCBbIENyYXNoIF0KIAogd2Via2l0Lm9yZy9iLzE0OTg5
MCBmYXN0L2Nzcy1ncmlkLWxheW91dC9ncmlkLXNob3J0aGFuZHMtc3R5bGUtZm9ybWF0Lmh0bWwg
WyBGYWlsdXJlIF0KIHdlYmtpdC5vcmcvYi8xOTE1MDggZmFzdC9jc3MtZ3JpZC1sYXlvdXQvY3Jh
c2gtbGFyZ2UtcG9zaXRpb25zLmh0bWwgWyBTa2lwIF0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1ncmlkL3N1YmdyaWQvZ3Jp
ZC1zdWJncmlkZGVkLWF4aXMtYXV0by1yZXBlYXRlci1jcmFzaC0wMDEtZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWdyaWQv
c3ViZ3JpZC9ncmlkLXN1YmdyaWRkZWQtYXhpcy1hdXRvLXJlcGVhdGVyLWNyYXNoLTAwMS1leHBl
Y3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uYWRlYTYyNGJmOGVmODgyYmQzZWEzYzk5NGFmYTRkYjhiMTg2
NGU3ZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvY3NzL2Nzcy1ncmlkL3N1YmdyaWQvZ3JpZC1zdWJncmlkZGVkLWF4aXMtYXV0
by1yZXBlYXRlci1jcmFzaC0wMDEtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNyBAQAorbGF5ZXIg
YXQgKDAsMCkgc2l6ZSA4MDB4NjAwCisgIFJlbmRlclZpZXcgYXQgKDAsMCkgc2l6ZSA4MDB4NjAw
CitsYXllciBhdCAoMCwwKSBzaXplIDgwMHgxNgorICBSZW5kZXJCbG9jayB7SFRNTH0gYXQgKDAs
MCkgc2l6ZSA4MDB4MTYKKyAgICBSZW5kZXJCb2R5IHtCT0RZfSBhdCAoOCw4KSBzaXplIDc4NHgw
CisgICAgICBSZW5kZXJHcmlkIHtESVZ9IGF0ICgwLDApIHNpemUgNzg0eDAKKyAgICAgICAgUmVu
ZGVyQmxvY2sge0RJVn0gYXQgKDAsMCkgc2l6ZSA3ODR4MApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWdyaWQvc3ViZ3JpZC9n
cmlkLXN1YmdyaWRkZWQtYXhpcy1hdXRvLXJlcGVhdGVyLWNyYXNoLTAwMi1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtZ3Jp
ZC9zdWJncmlkL2dyaWQtc3ViZ3JpZGRlZC1heGlzLWF1dG8tcmVwZWF0ZXItY3Jhc2gtMDAyLWV4
cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kYjYzYTVmNmIzNDcyNDZiZmEyODY2ODRlN2FjYzUyYzUx
YTFjZDdlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWdyaWQvc3ViZ3JpZC9ncmlkLXN1YmdyaWRkZWQtYXhpcy1h
dXRvLXJlcGVhdGVyLWNyYXNoLTAwMi1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw1IEBACitsYXll
ciBhdCAoMCwwKSBzaXplIDgwMHg2MDAKKyAgUmVuZGVyVmlldyBhdCAoMCwwKSBzaXplIDgwMHg2
MDAKK2xheWVyIGF0ICgwLDApIHNpemUgODAweDgKKyAgUmVuZGVyQmxvY2sge0hUTUx9IGF0ICgw
LDApIHNpemUgODAweDgKKyAgICBSZW5kZXJCb2R5IHtCT0RZfSBhdCAoOCw4KSBzaXplIDc4NHgw
Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>451005</attachid>
            <date>2022-02-05 15:37:17 -0800</date>
            <delta_ts>2022-02-05 15:40:28 -0800</delta_ts>
            <desc>Patch for EWS</desc>
            <filename>ews-patch</filename>
            <type>text/plain</type>
            <size>130290</size>
            <attacher name="Matt Woodrow">mattwoodrow</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBjN2I0YjVhMjhkMjYuLjI2ZThhMTBhMTUxZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBA
CisyMDIyLTAyLTAyICBNYXR0IFdvb2Ryb3cgIDxtYXR0d29vZHJvd0BhcHBsZS5jb20+CisKKyAg
ICAgICAgQWRkIHN1cHBvcnQgZm9yIHBhcnNpbmcgJ3N1YmdyaWQnIGluIGdyaWQtdGVtcGxhdGUt
Y29sdW1ucy9yb3cKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTIzNjA1NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIFVwZGF0ZWQgVGVzdEV4cGVjdGF0aW9ucyB0byBsaXN0IGFsbCB0aGUgc3ViZ3JpZCB0ZXN0
cyBpbmRpdmlkdWFsbHksIG5vdyB0aGF0IHdlIHBhc3MgYSBmZXcuCisKKyAgICAgICAgKiBUZXN0
RXhwZWN0YXRpb25zOgorCiAyMDIyLTAyLTAzICBGcsOpZMOpcmljIFdhbmcgIDxmd2FuZ0BpZ2Fs
aWEuY29tPgogCiAgICAgICAgIG51bGwgcHRyIGRlcmVmIGluIFJlbmRlclRyZWVCdWlsZGVyOjpC
bG9jazo6YXR0YWNoSWdub3JpbmdDb250aW51YXRpb24KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zCmluZGV4IDQw
MjQ2NmU0OWYwZS4uZTMzZWM1MmJlNzUwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9UZXN0RXhw
ZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTE0MjEsNiAr
MTQyMSw1MiBAQCBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtZ3JpZC9t
YXNvbnJ5L3RlbnRhdGl2ZS9tYXNvbnJ5LW9yZGVyLTAwMQogaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9jc3MvY3NzLWdyaWQvbWFzb25yeS90ZW50YXRpdmUvbWFzb25yeS1zdWJncmlk
LTAwMS5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2Nzcy9jc3MtZ3JpZC9tYXNvbnJ5L3RlbnRhdGl2ZS9tYXNvbnJ5LXN1YmdyaWQtMDAy
Lmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0KIAoraW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9jc3MvY3NzLWdyaWQvc3ViZ3JpZC9hYnMtcG9zLTAwMi5odG1sIFsgSW1hZ2VPbmx5RmFp
bHVyZSBdCitpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtZ3JpZC9zdWJn
cmlkL2Ficy1wb3MtMDAzLmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0KK2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1ncmlkL3N1YmdyaWQvYWJzLXBvcy0wMDQuaHRtbCBb
IEltYWdlT25seUZhaWx1cmUgXQoraW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3Mv
Y3NzLWdyaWQvc3ViZ3JpZC9iYXNlbGluZS0wMDEuaHRtbCBbIEltYWdlT25seUZhaWx1cmUgXQor
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWdyaWQvc3ViZ3JpZC9ncmlk
LWdhcC0wMDEuaHRtbCBbIEltYWdlT25seUZhaWx1cmUgXQoraW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9jc3MvY3NzLWdyaWQvc3ViZ3JpZC9ncmlkLWdhcC0wMDIuaHRtbCBbIEltYWdl
T25seUZhaWx1cmUgXQoraW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWdy
aWQvc3ViZ3JpZC9ncmlkLWdhcC0wMDMuaHRtbCBbIEltYWdlT25seUZhaWx1cmUgXQoraW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWdyaWQvc3ViZ3JpZC9ncmlkLWdhcC0w
MDQuaHRtbCBbIEltYWdlT25seUZhaWx1cmUgXQoraW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9jc3MvY3NzLWdyaWQvc3ViZ3JpZC9ncmlkLWdhcC0wMDUuaHRtbCBbIEltYWdlT25seUZh
aWx1cmUgXQoraW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWdyaWQvc3Vi
Z3JpZC9ncmlkLWdhcC0wMDYuaHRtbCBbIEltYWdlT25seUZhaWx1cmUgXQoraW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWdyaWQvc3ViZ3JpZC9ncmlkLWdhcC0wMDcuaHRt
bCBbIEltYWdlT25seUZhaWx1cmUgXQoraW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9j
c3MvY3NzLWdyaWQvc3ViZ3JpZC9ncmlkLWdhcC0wMDguaHRtbCBbIEltYWdlT25seUZhaWx1cmUg
XQoraW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWdyaWQvc3ViZ3JpZC9n
cmlkLWdhcC0wMDkuaHRtbCBbIEltYWdlT25seUZhaWx1cmUgXQoraW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWdyaWQvc3ViZ3JpZC9ncmlkLWdhcC1sYXJnZXItMDAxLmh0
bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0KK2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
Y3NzL2Nzcy1ncmlkL3N1YmdyaWQvZ3JpZC1nYXAtbGFyZ2VyLTAwMi5odG1sIFsgSW1hZ2VPbmx5
RmFpbHVyZSBdCitpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtZ3JpZC9z
dWJncmlkL2dyaWQtZ2FwLW5vcm1hbC0wMDEuaHRtbCBbIEltYWdlT25seUZhaWx1cmUgXQoraW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWdyaWQvc3ViZ3JpZC9ncmlkLWdh
cC1zbWFsbGVyLTAwMS5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCitpbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtZ3JpZC9zdWJncmlkL2l0ZW0tcGVyY2VudGFnZS1oZWln
aHQtMDAxLmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0KK2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvY3NzL2Nzcy1ncmlkL3N1YmdyaWQvbGluZS1uYW1lcy0wMDEuaHRtbCBbIEltYWdl
T25seUZhaWx1cmUgXQoraW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWdy
aWQvc3ViZ3JpZC9saW5lLW5hbWVzLTAwMi5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCitpbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtZ3JpZC9zdWJncmlkL2xpbmUtbmFt
ZXMtMDAzLmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0KK2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvY3NzL2Nzcy1ncmlkL3N1YmdyaWQvbGluZS1uYW1lcy0wMDQuaHRtbCBbIEltYWdl
T25seUZhaWx1cmUgXQoraW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWdy
aWQvc3ViZ3JpZC9saW5lLW5hbWVzLTAwNS5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCitpbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtZ3JpZC9zdWJncmlkL2xpbmUtbmFt
ZXMtMDA2Lmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0KK2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvY3NzL2Nzcy1ncmlkL3N1YmdyaWQvbGluZS1uYW1lcy0wMDcuaHRtbCBbIEltYWdl
T25seUZhaWx1cmUgXQoraW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWdy
aWQvc3ViZ3JpZC9saW5lLW5hbWVzLTAwOC5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCitpbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtZ3JpZC9zdWJncmlkL29ydGhvZ29u
YWwtd3JpdGluZy1tb2RlLTAwMS5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCitpbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtZ3JpZC9zdWJncmlkL29ydGhvZ29uYWwtd3Jp
dGluZy1tb2RlLTAwMi5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCitpbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtZ3JpZC9zdWJncmlkL29ydGhvZ29uYWwtd3JpdGluZy1t
b2RlLTAwMy5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCitpbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2Nzcy9jc3MtZ3JpZC9zdWJncmlkL29ydGhvZ29uYWwtd3JpdGluZy1tb2RlLTAw
NC5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCitpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2Nzcy9jc3MtZ3JpZC9zdWJncmlkL3BhcmVudC1yZXBlYXQtYXV0by1maXQtMDAxLmh0bWwg
WyBJbWFnZU9ubHlGYWlsdXJlIF0KK2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3Nz
L2Nzcy1ncmlkL3N1YmdyaWQvcGFyZW50LXJlcGVhdC1hdXRvLWZpdC0wMDIuaHRtbCBbIEltYWdl
T25seUZhaWx1cmUgXQoraW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWdy
aWQvc3ViZ3JpZC9yZXBlYXQtYXV0by1maWxsLTAwMS5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBd
CitpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtZ3JpZC9zdWJncmlkL3Jl
cGVhdC1hdXRvLWZpbGwtMDAyLmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0KK2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1ncmlkL3N1YmdyaWQvcmVwZWF0LWF1dG8tZmls
bC0wMDMuaHRtbCBbIEltYWdlT25seUZhaWx1cmUgXQoraW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9jc3MvY3NzLWdyaWQvc3ViZ3JpZC9yZXBlYXQtYXV0by1maWxsLTAwNC5odG1sIFsg
SW1hZ2VPbmx5RmFpbHVyZSBdCitpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9j
c3MtZ3JpZC9zdWJncmlkL3JlcGVhdC1hdXRvLWZpbGwtMDA1Lmh0bWwgWyBJbWFnZU9ubHlGYWls
dXJlIF0KK2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1ncmlkL3N1Ymdy
aWQvcmVwZWF0LWF1dG8tZmlsbC0wMDYuaHRtbCBbIEltYWdlT25seUZhaWx1cmUgXQoraW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWdyaWQvc3ViZ3JpZC9yZXBlYXQtYXV0
by1maWxsLTAwNy5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCitpbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2Nzcy9jc3MtZ3JpZC9zdWJncmlkL3JlcGVhdC1hdXRvLWZpbGwtMDA4Lmh0
bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0KK2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
Y3NzL2Nzcy1ncmlkL3N1YmdyaWQvc3ViZ3JpZC1pdGVtLWJsb2NrLXNpemUtMDAxLmh0bWwgWyBJ
bWFnZU9ubHlGYWlsdXJlIF0KK2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nz
cy1ncmlkL3N1YmdyaWQvc3ViZ3JpZC1tYnAtb3ZlcmZsb3ctMDAxLmh0bWwgWyBJbWFnZU9ubHlG
YWlsdXJlIF0KK2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1ncmlkL3N1
YmdyaWQvc3ViZ3JpZC1tYnAtb3ZlcmZsb3ctMDAyLmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0K
K2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1ncmlkL3N1YmdyaWQvc3Vi
Z3JpZC1tYnAtb3ZlcmZsb3ctMDAzLmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0KK2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1ncmlkL3N1YmdyaWQvc3ViZ3JpZC1tYnAt
b3ZlcmZsb3ctMDA0Lmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0KKwogd2Via2l0Lm9yZy9iLzE0
OTg5MCBmYXN0L2Nzcy1ncmlkLWxheW91dC9ncmlkLXNob3J0aGFuZHMtc3R5bGUtZm9ybWF0Lmh0
bWwgWyBGYWlsdXJlIF0KIHdlYmtpdC5vcmcvYi8xOTE1MDggZmFzdC9jc3MtZ3JpZC1sYXlvdXQv
Y3Jhc2gtbGFyZ2UtcG9zaXRpb25zLmh0bWwgWyBTa2lwIF0KIApAQCAtNDI2Miw3ICs0MzA4LDYg
QEAgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2NhbnZhcy9lbGVtZW50L21h
bnVhbC9zaGFkb3dzL2NhbnZhc19zaGFkb3cKIAogIyBDU1MgTWFzb25yeSBMYXlvdXQgbm90IHN1
cHBvcnRlZC4KIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1ncmlkL21h
c29ucnkudGVudGF0aXZlIFsgU2tpcCBdCi13ZWJraXQub3JnL2IvMjAyMTE1IGltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1ncmlkL3N1YmdyaWQgWyBTa2lwIF0KIHdlYmtp
dC5vcmcvYi8yMDQ1ODAgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWdy
aWQvYW5pbWF0aW9uL2dyaWQtdGVtcGxhdGUtY29sdW1ucy0wMDEuaHRtbCBbIEltYWdlT25seUZh
aWx1cmUgXQogd2Via2l0Lm9yZy9iLzIwNDU4MCBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2Nzcy9jc3MtZ3JpZC9hbmltYXRpb24vZ3JpZC10ZW1wbGF0ZS1yb3dzLTAwMS5odG1sIFsg
SW1hZ2VPbmx5RmFpbHVyZSBdCiB3ZWJraXQub3JnL2IvMjA5NDYwIGltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1ncmlkL2Fic3Bvcy9kZXNjZW5kYW50LXN0YXRpYy1wb3Np
dGlvbi0wMDEuaHRtbCBbIEltYWdlT25seUZhaWx1cmUgXQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFu
Z2VMb2cKaW5kZXggNDM3OTliOTIzMjgzLi5jNTA0M2ZkMDE4MTIgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMyIEBACisyMDIyLTAyLTAzICBNYXR0IFdvb2Ryb3cg
IDxtYXR0d29vZHJvd0BhcHBsZS5jb20+CisKKyAgICAgICAgSW5oZXJpdCB0cmFjayBjb3VudCBm
cm9tIHBhcmVudCBncmlkIGZvciBzdWJncmlkZGVkIGF4ZXMgYW5kIGNsYW1wIGl0ZW0gcGxhY2Vt
ZW50IHRvIHRoYXQgZXhwbGljaXQgZ3JpZC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTIzNjEyMgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIFRlc3QgY2hhbmdlcyB0byBtYXRjaCBsYXRlc3Qgc3BlYywgc3Vi
bWl0dGVkIHVwc3RyZWFtIGFzIGh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMv
d3B0L3B1bGwvMzI2MjkKKworICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWdy
aWQvc3ViZ3JpZC9saW5lLW5hbWVzLTAwMi1leHBlY3RlZC5odG1sOgorICAgICAgICAqIHdlYi1w
bGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWdyaWQvc3ViZ3JpZC9saW5lLW5hbWVzLTAwNS1leHBlY3Rl
ZC5odG1sOgorCisyMDIyLTAyLTAyICBNYXR0IFdvb2Ryb3cgIDxtYXR0d29vZHJvd0BhcHBsZS5j
b20+CisKKyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIHBhcnNpbmcgJ3N1YmdyaWQnIGluIGdyaWQt
dGVtcGxhdGUtY29sdW1ucy9yb3cKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTIzNjA1NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIEltcG9ydGVkIGxhc3Rlc3Qgc3ViZ3JpZCB0ZXN0cy4KKworICAgICAgICAq
IHJlc291cmNlcy9pbXBvcnQtZXhwZWN0YXRpb25zLmpzb246CisgICAgICAgICogd2ViLXBsYXRm
b3JtLXRlc3RzL2Nzcy9jc3MtZ3JpZC9zdWJncmlkL2dyaWQtdGVtcGxhdGUtY29tcHV0ZWQtbm9n
cmlkLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1n
cmlkL3N1YmdyaWQvZ3JpZC10ZW1wbGF0ZS1pbnZhbGlkLWV4cGVjdGVkLnR4dDogQWRkZWQuCisg
ICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtZ3JpZC9zdWJncmlkL2dyaWQtdGVt
cGxhdGUtaW52YWxpZC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMv
Y3NzL2Nzcy1ncmlkL3N1YmdyaWQvZ3JpZC10ZW1wbGF0ZS12YWxpZC1leHBlY3RlZC50eHQ6IEFk
ZGVkLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWdyaWQvc3ViZ3JpZC9n
cmlkLXRlbXBsYXRlLXZhbGlkLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10
ZXN0cy9jc3MvY3NzLWdyaWQvc3ViZ3JpZC93M2MtaW1wb3J0LmxvZzoKKwogMjAyMi0wMi0wMyAg
Q2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIEltcGxlbWVudCBBYm9y
dFNpZ25hbC50aW1lb3V0KCkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1ncmlkL3N1YmdyaWQvZ3JpZC1zdWJncmlkZGVkLWF4
aXMtYXV0by1yZXBlYXRlci1jcmFzaC0wMDEtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWdyaWQvc3ViZ3JpZC9ncmlkLXN1
YmdyaWRkZWQtYXhpcy1hdXRvLXJlcGVhdGVyLWNyYXNoLTAwMS1leHBlY3RlZC50eHQKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi5hZGVhNjI0YmY4ZWYKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nz
cy9jc3MtZ3JpZC9zdWJncmlkL2dyaWQtc3ViZ3JpZGRlZC1heGlzLWF1dG8tcmVwZWF0ZXItY3Jh
c2gtMDAxLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDcgQEAKK2xheWVyIGF0ICgwLDApIHNpemUg
ODAweDYwMAorICBSZW5kZXJWaWV3IGF0ICgwLDApIHNpemUgODAweDYwMAorbGF5ZXIgYXQgKDAs
MCkgc2l6ZSA4MDB4MTYKKyAgUmVuZGVyQmxvY2sge0hUTUx9IGF0ICgwLDApIHNpemUgODAweDE2
CisgICAgUmVuZGVyQm9keSB7Qk9EWX0gYXQgKDgsOCkgc2l6ZSA3ODR4MAorICAgICAgUmVuZGVy
R3JpZCB7RElWfSBhdCAoMCwwKSBzaXplIDc4NHgwCisgICAgICAgIFJlbmRlckJsb2NrIHtESVZ9
IGF0ICgwLDApIHNpemUgNzg0eDAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1ncmlkL3N1YmdyaWQvZ3JpZC1zdWJncmlkZGVk
LWF4aXMtYXV0by1yZXBlYXRlci1jcmFzaC0wMDItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWdyaWQvc3ViZ3JpZC9ncmlk
LXN1YmdyaWRkZWQtYXhpcy1hdXRvLXJlcGVhdGVyLWNyYXNoLTAwMi1leHBlY3RlZC50eHQKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi5kYjYzYTVmNmIzNDcKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2Nzcy9jc3MtZ3JpZC9zdWJncmlkL2dyaWQtc3ViZ3JpZGRlZC1heGlzLWF1dG8tcmVwZWF0ZXIt
Y3Jhc2gtMDAyLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDUgQEAKK2xheWVyIGF0ICgwLDApIHNp
emUgODAweDYwMAorICBSZW5kZXJWaWV3IGF0ICgwLDApIHNpemUgODAweDYwMAorbGF5ZXIgYXQg
KDAsMCkgc2l6ZSA4MDB4OAorICBSZW5kZXJCbG9jayB7SFRNTH0gYXQgKDAsMCkgc2l6ZSA4MDB4
OAorICAgIFJlbmRlckJvZHkge0JPRFl9IGF0ICg4LDgpIHNpemUgNzg0eDAKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1ncmlk
L3N1YmdyaWQvZ3JpZC10ZW1wbGF0ZS1jb21wdXRlZC1ub2dyaWQtZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWdyaWQvc3Vi
Z3JpZC9ncmlkLXRlbXBsYXRlLWNvbXB1dGVkLW5vZ3JpZC1leHBlY3RlZC50eHQKaW5kZXggYWFh
NjdlYzMzOTZlLi42NjAyYzc0ZDNhZTIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1ncmlkL3N1YmdyaWQvZ3JpZC10ZW1wbGF0
ZS1jb21wdXRlZC1ub2dyaWQtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1ncmlkL3N1YmdyaWQvZ3JpZC10ZW1wbGF0
ZS1jb21wdXRlZC1ub2dyaWQtZXhwZWN0ZWQudHh0CkBAIC0xLDMxICsxLDMxIEBACiAKLUZBSUwg
UHJvcGVydHkgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zIHZhbHVlICdzdWJncmlkIFthXScgY29tcHV0
ZXMgdG8gJ3N1YmdyaWQgW2FdJyBhc3NlcnRfdHJ1ZTogJ3N1YmdyaWQgW2FdJyBpcyBhIHN1cHBv
cnRlZCB2YWx1ZSBmb3IgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zLiBleHBlY3RlZCB0cnVlIGdvdCBm
YWxzZQotRkFJTCBQcm9wZXJ0eSBncmlkLXRlbXBsYXRlLWNvbHVtbnMgdmFsdWUgJ3N1YmdyaWQg
W2FdIFtiXScgY29tcHV0ZXMgdG8gJ3N1YmdyaWQgW2FdIFtiXScgYXNzZXJ0X3RydWU6ICdzdWJn
cmlkIFthXSBbYl0nIGlzIGEgc3VwcG9ydGVkIHZhbHVlIGZvciBncmlkLXRlbXBsYXRlLWNvbHVt
bnMuIGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCi1GQUlMIFByb3BlcnR5IGdyaWQtdGVtcGxhdGUt
Y29sdW1ucyB2YWx1ZSAnc3ViZ3JpZCBbYV0gW2JdIFtiXSBbY10nIGNvbXB1dGVzIHRvICdzdWJn
cmlkIFthXSBbYl0gW2JdIFtjXScgYXNzZXJ0X3RydWU6ICdzdWJncmlkIFthXSBbYl0gW2JdIFtj
XScgaXMgYSBzdXBwb3J0ZWQgdmFsdWUgZm9yIGdyaWQtdGVtcGxhdGUtY29sdW1ucy4gZXhwZWN0
ZWQgdHJ1ZSBnb3QgZmFsc2UKLUZBSUwgUHJvcGVydHkgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zIHZh
bHVlICdzdWJncmlkIFthXSBbYiBjIGRdIFtlIGZdIFtlIGZdIFtnXScgY29tcHV0ZXMgdG8gJ3N1
YmdyaWQgW2FdIFtiIGMgZF0gW2UgZl0gW2UgZl0gW2ddJyBhc3NlcnRfdHJ1ZTogJ3N1YmdyaWQg
W2FdIFtiIGMgZF0gW2UgZl0gW2UgZl0gW2ddJyBpcyBhIHN1cHBvcnRlZCB2YWx1ZSBmb3IgZ3Jp
ZC10ZW1wbGF0ZS1jb2x1bW5zLiBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQotRkFJTCBQcm9wZXJ0
eSBncmlkLXRlbXBsYXRlLWNvbHVtbnMgdmFsdWUgJ3N1YmdyaWQgW2EgYiBjXSBbZF0gW2UgZl0n
IGNvbXB1dGVzIHRvICdzdWJncmlkIFthIGIgY10gW2RdIFtlIGZdJyBhc3NlcnRfdHJ1ZTogJ3N1
YmdyaWQgW2EgYiBjXSBbZF0gW2UgZl0nIGlzIGEgc3VwcG9ydGVkIHZhbHVlIGZvciBncmlkLXRl
bXBsYXRlLWNvbHVtbnMuIGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCi1GQUlMIFByb3BlcnR5IGdy
aWQtdGVtcGxhdGUtY29sdW1ucyB2YWx1ZSAnc3ViZ3JpZCByZXBlYXQoYXV0by1maWxsLCBbY10p
JyBjb21wdXRlcyB0byAnc3ViZ3JpZCByZXBlYXQoYXV0by1maWxsLCBbY10pJyBhc3NlcnRfdHJ1
ZTogJ3N1YmdyaWQgcmVwZWF0KGF1dG8tZmlsbCwgW2NdKScgaXMgYSBzdXBwb3J0ZWQgdmFsdWUg
Zm9yIGdyaWQtdGVtcGxhdGUtY29sdW1ucy4gZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKLUZBSUwg
UHJvcGVydHkgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zIHZhbHVlICdzdWJncmlkIHJlcGVhdChhdXRv
LWZpbGwsIFtjXSkgW2ddIFtoIGldJyBjb21wdXRlcyB0byAnc3ViZ3JpZCByZXBlYXQoYXV0by1m
aWxsLCBbY10pIFtnXSBbaCBpXScgYXNzZXJ0X3RydWU6ICdzdWJncmlkIHJlcGVhdChhdXRvLWZp
bGwsIFtjXSkgW2ddIFtoIGldJyBpcyBhIHN1cHBvcnRlZCB2YWx1ZSBmb3IgZ3JpZC10ZW1wbGF0
ZS1jb2x1bW5zLiBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQotRkFJTCBQcm9wZXJ0eSBncmlkLXRl
bXBsYXRlLWNvbHVtbnMgdmFsdWUgJ3N1YmdyaWQgW2FdIHJlcGVhdChhdXRvLWZpbGwsIFtjXSkg
W2ddIFtoIGldJyBjb21wdXRlcyB0byAnc3ViZ3JpZCBbYV0gcmVwZWF0KGF1dG8tZmlsbCwgW2Nd
KSBbZ10gW2ggaV0nIGFzc2VydF90cnVlOiAnc3ViZ3JpZCBbYV0gcmVwZWF0KGF1dG8tZmlsbCwg
W2NdKSBbZ10gW2ggaV0nIGlzIGEgc3VwcG9ydGVkIHZhbHVlIGZvciBncmlkLXRlbXBsYXRlLWNv
bHVtbnMuIGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCi1GQUlMIFByb3BlcnR5IGdyaWQtdGVtcGxh
dGUtY29sdW1ucyB2YWx1ZSAnc3ViZ3JpZCBbYSBiXSByZXBlYXQoYXV0by1maWxsLCBbY10pIFtn
XScgY29tcHV0ZXMgdG8gJ3N1YmdyaWQgW2EgYl0gcmVwZWF0KGF1dG8tZmlsbCwgW2NdKSBbZ10n
IGFzc2VydF90cnVlOiAnc3ViZ3JpZCBbYSBiXSByZXBlYXQoYXV0by1maWxsLCBbY10pIFtnXScg
aXMgYSBzdXBwb3J0ZWQgdmFsdWUgZm9yIGdyaWQtdGVtcGxhdGUtY29sdW1ucy4gZXhwZWN0ZWQg
dHJ1ZSBnb3QgZmFsc2UKLUZBSUwgUHJvcGVydHkgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zIHZhbHVl
ICdzdWJncmlkIFthXSBbYl0gcmVwZWF0KGF1dG8tZmlsbCwgW2NdKSBbZyBoXScgY29tcHV0ZXMg
dG8gJ3N1YmdyaWQgW2FdIFtiXSByZXBlYXQoYXV0by1maWxsLCBbY10pIFtnIGhdJyBhc3NlcnRf
dHJ1ZTogJ3N1YmdyaWQgW2FdIFtiXSByZXBlYXQoYXV0by1maWxsLCBbY10pIFtnIGhdJyBpcyBh
IHN1cHBvcnRlZCB2YWx1ZSBmb3IgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zLiBleHBlY3RlZCB0cnVl
IGdvdCBmYWxzZQotRkFJTCBQcm9wZXJ0eSBncmlkLXRlbXBsYXRlLWNvbHVtbnMgdmFsdWUgJ3N1
YmdyaWQgW2FdIFtiXSByZXBlYXQoYXV0by1maWxsLCBbY10pJyBjb21wdXRlcyB0byAnc3ViZ3Jp
ZCBbYV0gW2JdIHJlcGVhdChhdXRvLWZpbGwsIFtjXSknIGFzc2VydF90cnVlOiAnc3ViZ3JpZCBb
YV0gW2JdIHJlcGVhdChhdXRvLWZpbGwsIFtjXSknIGlzIGEgc3VwcG9ydGVkIHZhbHVlIGZvciBn
cmlkLXRlbXBsYXRlLWNvbHVtbnMuIGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCi1GQUlMIFByb3Bl
cnR5IGdyaWQtdGVtcGxhdGUtY29sdW1ucyB2YWx1ZSAnc3ViZ3JpZCByZXBlYXQoYXV0by1maWxs
LCBbYyBkXSknIGNvbXB1dGVzIHRvICdzdWJncmlkIHJlcGVhdChhdXRvLWZpbGwsIFtjIGRdKScg
YXNzZXJ0X3RydWU6ICdzdWJncmlkIHJlcGVhdChhdXRvLWZpbGwsIFtjIGRdKScgaXMgYSBzdXBw
b3J0ZWQgdmFsdWUgZm9yIGdyaWQtdGVtcGxhdGUtY29sdW1ucy4gZXhwZWN0ZWQgdHJ1ZSBnb3Qg
ZmFsc2UKLUZBSUwgUHJvcGVydHkgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zIHZhbHVlICdzdWJncmlk
IHJlcGVhdChhdXRvLWZpbGwsIFtjIGRdKSBbZ10gW2ggaV0nIGNvbXB1dGVzIHRvICdzdWJncmlk
IHJlcGVhdChhdXRvLWZpbGwsIFtjIGRdKSBbZ10gW2ggaV0nIGFzc2VydF90cnVlOiAnc3ViZ3Jp
ZCByZXBlYXQoYXV0by1maWxsLCBbYyBkXSkgW2ddIFtoIGldJyBpcyBhIHN1cHBvcnRlZCB2YWx1
ZSBmb3IgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zLiBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQotRkFJ
TCBQcm9wZXJ0eSBncmlkLXRlbXBsYXRlLWNvbHVtbnMgdmFsdWUgJ3N1YmdyaWQgW2FdIHJlcGVh
dChhdXRvLWZpbGwsIFtjIGRdKSBbZ10gW2ggaV0nIGNvbXB1dGVzIHRvICdzdWJncmlkIFthXSBy
ZXBlYXQoYXV0by1maWxsLCBbYyBkXSkgW2ddIFtoIGldJyBhc3NlcnRfdHJ1ZTogJ3N1YmdyaWQg
W2FdIHJlcGVhdChhdXRvLWZpbGwsIFtjIGRdKSBbZ10gW2ggaV0nIGlzIGEgc3VwcG9ydGVkIHZh
bHVlIGZvciBncmlkLXRlbXBsYXRlLWNvbHVtbnMuIGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCi1G
QUlMIFByb3BlcnR5IGdyaWQtdGVtcGxhdGUtY29sdW1ucyB2YWx1ZSAnc3ViZ3JpZCBbYSBiXSBy
ZXBlYXQoYXV0by1maWxsLCBbYyBkXSkgW2ddJyBjb21wdXRlcyB0byAnc3ViZ3JpZCBbYSBiXSBy
ZXBlYXQoYXV0by1maWxsLCBbYyBkXSkgW2ddJyBhc3NlcnRfdHJ1ZTogJ3N1YmdyaWQgW2EgYl0g
cmVwZWF0KGF1dG8tZmlsbCwgW2MgZF0pIFtnXScgaXMgYSBzdXBwb3J0ZWQgdmFsdWUgZm9yIGdy
aWQtdGVtcGxhdGUtY29sdW1ucy4gZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKLUZBSUwgUHJvcGVy
dHkgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zIHZhbHVlICdzdWJncmlkIFthXSBbYl0gcmVwZWF0KGF1
dG8tZmlsbCwgW2MgZF0pIFtnIGhdJyBjb21wdXRlcyB0byAnc3ViZ3JpZCBbYV0gW2JdIHJlcGVh
dChhdXRvLWZpbGwsIFtjIGRdKSBbZyBoXScgYXNzZXJ0X3RydWU6ICdzdWJncmlkIFthXSBbYl0g
cmVwZWF0KGF1dG8tZmlsbCwgW2MgZF0pIFtnIGhdJyBpcyBhIHN1cHBvcnRlZCB2YWx1ZSBmb3Ig
Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zLiBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQotRkFJTCBQcm9w
ZXJ0eSBncmlkLXRlbXBsYXRlLWNvbHVtbnMgdmFsdWUgJ3N1YmdyaWQgW2FdIFtiXSByZXBlYXQo
YXV0by1maWxsLCBbYyBkXSknIGNvbXB1dGVzIHRvICdzdWJncmlkIFthXSBbYl0gcmVwZWF0KGF1
dG8tZmlsbCwgW2MgZF0pJyBhc3NlcnRfdHJ1ZTogJ3N1YmdyaWQgW2FdIFtiXSByZXBlYXQoYXV0
by1maWxsLCBbYyBkXSknIGlzIGEgc3VwcG9ydGVkIHZhbHVlIGZvciBncmlkLXRlbXBsYXRlLWNv
bHVtbnMuIGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCi1GQUlMIFByb3BlcnR5IGdyaWQtdGVtcGxh
dGUtY29sdW1ucyB2YWx1ZSAnc3ViZ3JpZCByZXBlYXQoYXV0by1maWxsLCBbY10gW2RdKScgY29t
cHV0ZXMgdG8gJ3N1YmdyaWQgcmVwZWF0KGF1dG8tZmlsbCwgW2NdIFtkXSknIGFzc2VydF90cnVl
OiAnc3ViZ3JpZCByZXBlYXQoYXV0by1maWxsLCBbY10gW2RdKScgaXMgYSBzdXBwb3J0ZWQgdmFs
dWUgZm9yIGdyaWQtdGVtcGxhdGUtY29sdW1ucy4gZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKLUZB
SUwgUHJvcGVydHkgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zIHZhbHVlICdzdWJncmlkIHJlcGVhdChh
dXRvLWZpbGwsIFtjXSBbZF0pIFtnXSBbaCBpXScgY29tcHV0ZXMgdG8gJ3N1YmdyaWQgcmVwZWF0
KGF1dG8tZmlsbCwgW2NdIFtkXSkgW2ddIFtoIGldJyBhc3NlcnRfdHJ1ZTogJ3N1YmdyaWQgcmVw
ZWF0KGF1dG8tZmlsbCwgW2NdIFtkXSkgW2ddIFtoIGldJyBpcyBhIHN1cHBvcnRlZCB2YWx1ZSBm
b3IgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zLiBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQotRkFJTCBQ
cm9wZXJ0eSBncmlkLXRlbXBsYXRlLWNvbHVtbnMgdmFsdWUgJ3N1YmdyaWQgW2FdIHJlcGVhdChh
dXRvLWZpbGwsIFtjXSBbZF0pIFtnXSBbaCBpXScgY29tcHV0ZXMgdG8gJ3N1YmdyaWQgW2FdIHJl
cGVhdChhdXRvLWZpbGwsIFtjXSBbZF0pIFtnXSBbaCBpXScgYXNzZXJ0X3RydWU6ICdzdWJncmlk
IFthXSByZXBlYXQoYXV0by1maWxsLCBbY10gW2RdKSBbZ10gW2ggaV0nIGlzIGEgc3VwcG9ydGVk
IHZhbHVlIGZvciBncmlkLXRlbXBsYXRlLWNvbHVtbnMuIGV4cGVjdGVkIHRydWUgZ290IGZhbHNl
Ci1GQUlMIFByb3BlcnR5IGdyaWQtdGVtcGxhdGUtY29sdW1ucyB2YWx1ZSAnc3ViZ3JpZCBbYSBi
XSByZXBlYXQoYXV0by1maWxsLCBbY10gW2RdKSBbZ10nIGNvbXB1dGVzIHRvICdzdWJncmlkIFth
IGJdIHJlcGVhdChhdXRvLWZpbGwsIFtjXSBbZF0pIFtnXScgYXNzZXJ0X3RydWU6ICdzdWJncmlk
IFthIGJdIHJlcGVhdChhdXRvLWZpbGwsIFtjXSBbZF0pIFtnXScgaXMgYSBzdXBwb3J0ZWQgdmFs
dWUgZm9yIGdyaWQtdGVtcGxhdGUtY29sdW1ucy4gZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKLUZB
SUwgUHJvcGVydHkgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zIHZhbHVlICdzdWJncmlkIFthXSBbYl0g
cmVwZWF0KGF1dG8tZmlsbCwgW2NdIFtkXSkgW2cgaF0nIGNvbXB1dGVzIHRvICdzdWJncmlkIFth
XSBbYl0gcmVwZWF0KGF1dG8tZmlsbCwgW2NdIFtkXSkgW2cgaF0nIGFzc2VydF90cnVlOiAnc3Vi
Z3JpZCBbYV0gW2JdIHJlcGVhdChhdXRvLWZpbGwsIFtjXSBbZF0pIFtnIGhdJyBpcyBhIHN1cHBv
cnRlZCB2YWx1ZSBmb3IgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zLiBleHBlY3RlZCB0cnVlIGdvdCBm
YWxzZQotRkFJTCBQcm9wZXJ0eSBncmlkLXRlbXBsYXRlLWNvbHVtbnMgdmFsdWUgJ3N1YmdyaWQg
W2FdIFtiXSByZXBlYXQoYXV0by1maWxsLCBbY10gW2RdKScgY29tcHV0ZXMgdG8gJ3N1YmdyaWQg
W2FdIFtiXSByZXBlYXQoYXV0by1maWxsLCBbY10gW2RdKScgYXNzZXJ0X3RydWU6ICdzdWJncmlk
IFthXSBbYl0gcmVwZWF0KGF1dG8tZmlsbCwgW2NdIFtkXSknIGlzIGEgc3VwcG9ydGVkIHZhbHVl
IGZvciBncmlkLXRlbXBsYXRlLWNvbHVtbnMuIGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCi1GQUlM
IFByb3BlcnR5IGdyaWQtdGVtcGxhdGUtY29sdW1ucyB2YWx1ZSAnc3ViZ3JpZCByZXBlYXQoYXV0
by1maWxsLCBbY10gW2QgZV0pJyBjb21wdXRlcyB0byAnc3ViZ3JpZCByZXBlYXQoYXV0by1maWxs
LCBbY10gW2QgZV0pJyBhc3NlcnRfdHJ1ZTogJ3N1YmdyaWQgcmVwZWF0KGF1dG8tZmlsbCwgW2Nd
IFtkIGVdKScgaXMgYSBzdXBwb3J0ZWQgdmFsdWUgZm9yIGdyaWQtdGVtcGxhdGUtY29sdW1ucy4g
ZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKLUZBSUwgUHJvcGVydHkgZ3JpZC10ZW1wbGF0ZS1jb2x1
bW5zIHZhbHVlICdzdWJncmlkIHJlcGVhdChhdXRvLWZpbGwsIFtjXSBbZCBlXSkgW2ddIFtoIGld
JyBjb21wdXRlcyB0byAnc3ViZ3JpZCByZXBlYXQoYXV0by1maWxsLCBbY10gW2QgZV0pIFtnXSBb
aCBpXScgYXNzZXJ0X3RydWU6ICdzdWJncmlkIHJlcGVhdChhdXRvLWZpbGwsIFtjXSBbZCBlXSkg
W2ddIFtoIGldJyBpcyBhIHN1cHBvcnRlZCB2YWx1ZSBmb3IgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5z
LiBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQotRkFJTCBQcm9wZXJ0eSBncmlkLXRlbXBsYXRlLWNv
bHVtbnMgdmFsdWUgJ3N1YmdyaWQgW2FdIHJlcGVhdChhdXRvLWZpbGwsIFtjXSBbZCBlXSkgW2dd
IFtoIGldJyBjb21wdXRlcyB0byAnc3ViZ3JpZCBbYV0gcmVwZWF0KGF1dG8tZmlsbCwgW2NdIFtk
IGVdKSBbZ10gW2ggaV0nIGFzc2VydF90cnVlOiAnc3ViZ3JpZCBbYV0gcmVwZWF0KGF1dG8tZmls
bCwgW2NdIFtkIGVdKSBbZ10gW2ggaV0nIGlzIGEgc3VwcG9ydGVkIHZhbHVlIGZvciBncmlkLXRl
bXBsYXRlLWNvbHVtbnMuIGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCi1GQUlMIFByb3BlcnR5IGdy
aWQtdGVtcGxhdGUtY29sdW1ucyB2YWx1ZSAnc3ViZ3JpZCBbYSBiXSByZXBlYXQoYXV0by1maWxs
LCBbY10gW2QgZV0pIFtnXScgY29tcHV0ZXMgdG8gJ3N1YmdyaWQgW2EgYl0gcmVwZWF0KGF1dG8t
ZmlsbCwgW2NdIFtkIGVdKSBbZ10nIGFzc2VydF90cnVlOiAnc3ViZ3JpZCBbYSBiXSByZXBlYXQo
YXV0by1maWxsLCBbY10gW2QgZV0pIFtnXScgaXMgYSBzdXBwb3J0ZWQgdmFsdWUgZm9yIGdyaWQt
dGVtcGxhdGUtY29sdW1ucy4gZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKLUZBSUwgUHJvcGVydHkg
Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zIHZhbHVlICdzdWJncmlkIFthXSBbYl0gcmVwZWF0KGF1dG8t
ZmlsbCwgW2NdIFtkIGVdKSBbZyBoXScgY29tcHV0ZXMgdG8gJ3N1YmdyaWQgW2FdIFtiXSByZXBl
YXQoYXV0by1maWxsLCBbY10gW2QgZV0pIFtnIGhdJyBhc3NlcnRfdHJ1ZTogJ3N1YmdyaWQgW2Fd
IFtiXSByZXBlYXQoYXV0by1maWxsLCBbY10gW2QgZV0pIFtnIGhdJyBpcyBhIHN1cHBvcnRlZCB2
YWx1ZSBmb3IgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zLiBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQot
RkFJTCBQcm9wZXJ0eSBncmlkLXRlbXBsYXRlLWNvbHVtbnMgdmFsdWUgJ3N1YmdyaWQgW2FdIFti
XSByZXBlYXQoYXV0by1maWxsLCBbY10gW2QgZV0pJyBjb21wdXRlcyB0byAnc3ViZ3JpZCBbYV0g
W2JdIHJlcGVhdChhdXRvLWZpbGwsIFtjXSBbZCBlXSknIGFzc2VydF90cnVlOiAnc3ViZ3JpZCBb
YV0gW2JdIHJlcGVhdChhdXRvLWZpbGwsIFtjXSBbZCBlXSknIGlzIGEgc3VwcG9ydGVkIHZhbHVl
IGZvciBncmlkLXRlbXBsYXRlLWNvbHVtbnMuIGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCitQQVNT
IFByb3BlcnR5IGdyaWQtdGVtcGxhdGUtY29sdW1ucyB2YWx1ZSAnc3ViZ3JpZCBbYV0nCitQQVNT
IFByb3BlcnR5IGdyaWQtdGVtcGxhdGUtY29sdW1ucyB2YWx1ZSAnc3ViZ3JpZCBbYV0gW2JdJwor
UEFTUyBQcm9wZXJ0eSBncmlkLXRlbXBsYXRlLWNvbHVtbnMgdmFsdWUgJ3N1YmdyaWQgW2FdIFti
XSBbYl0gW2NdJworUEFTUyBQcm9wZXJ0eSBncmlkLXRlbXBsYXRlLWNvbHVtbnMgdmFsdWUgJ3N1
YmdyaWQgW2FdIFtiIGMgZF0gW2UgZl0gW2UgZl0gW2ddJworUEFTUyBQcm9wZXJ0eSBncmlkLXRl
bXBsYXRlLWNvbHVtbnMgdmFsdWUgJ3N1YmdyaWQgW2EgYiBjXSBbZF0gW2UgZl0nCitQQVNTIFBy
b3BlcnR5IGdyaWQtdGVtcGxhdGUtY29sdW1ucyB2YWx1ZSAnc3ViZ3JpZCByZXBlYXQoYXV0by1m
aWxsLCBbY10pJworUEFTUyBQcm9wZXJ0eSBncmlkLXRlbXBsYXRlLWNvbHVtbnMgdmFsdWUgJ3N1
YmdyaWQgcmVwZWF0KGF1dG8tZmlsbCwgW2NdKSBbZ10gW2ggaV0nCitQQVNTIFByb3BlcnR5IGdy
aWQtdGVtcGxhdGUtY29sdW1ucyB2YWx1ZSAnc3ViZ3JpZCBbYV0gcmVwZWF0KGF1dG8tZmlsbCwg
W2NdKSBbZ10gW2ggaV0nCitQQVNTIFByb3BlcnR5IGdyaWQtdGVtcGxhdGUtY29sdW1ucyB2YWx1
ZSAnc3ViZ3JpZCBbYSBiXSByZXBlYXQoYXV0by1maWxsLCBbY10pIFtnXScKK1BBU1MgUHJvcGVy
dHkgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zIHZhbHVlICdzdWJncmlkIFthXSBbYl0gcmVwZWF0KGF1
dG8tZmlsbCwgW2NdKSBbZyBoXScKK1BBU1MgUHJvcGVydHkgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5z
IHZhbHVlICdzdWJncmlkIFthXSBbYl0gcmVwZWF0KGF1dG8tZmlsbCwgW2NdKScKK1BBU1MgUHJv
cGVydHkgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zIHZhbHVlICdzdWJncmlkIHJlcGVhdChhdXRvLWZp
bGwsIFtjIGRdKScKK1BBU1MgUHJvcGVydHkgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zIHZhbHVlICdz
dWJncmlkIHJlcGVhdChhdXRvLWZpbGwsIFtjIGRdKSBbZ10gW2ggaV0nCitQQVNTIFByb3BlcnR5
IGdyaWQtdGVtcGxhdGUtY29sdW1ucyB2YWx1ZSAnc3ViZ3JpZCBbYV0gcmVwZWF0KGF1dG8tZmls
bCwgW2MgZF0pIFtnXSBbaCBpXScKK1BBU1MgUHJvcGVydHkgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5z
IHZhbHVlICdzdWJncmlkIFthIGJdIHJlcGVhdChhdXRvLWZpbGwsIFtjIGRdKSBbZ10nCitQQVNT
IFByb3BlcnR5IGdyaWQtdGVtcGxhdGUtY29sdW1ucyB2YWx1ZSAnc3ViZ3JpZCBbYV0gW2JdIHJl
cGVhdChhdXRvLWZpbGwsIFtjIGRdKSBbZyBoXScKK1BBU1MgUHJvcGVydHkgZ3JpZC10ZW1wbGF0
ZS1jb2x1bW5zIHZhbHVlICdzdWJncmlkIFthXSBbYl0gcmVwZWF0KGF1dG8tZmlsbCwgW2MgZF0p
JworUEFTUyBQcm9wZXJ0eSBncmlkLXRlbXBsYXRlLWNvbHVtbnMgdmFsdWUgJ3N1YmdyaWQgcmVw
ZWF0KGF1dG8tZmlsbCwgW2NdIFtkXSknCitQQVNTIFByb3BlcnR5IGdyaWQtdGVtcGxhdGUtY29s
dW1ucyB2YWx1ZSAnc3ViZ3JpZCByZXBlYXQoYXV0by1maWxsLCBbY10gW2RdKSBbZ10gW2ggaV0n
CitQQVNTIFByb3BlcnR5IGdyaWQtdGVtcGxhdGUtY29sdW1ucyB2YWx1ZSAnc3ViZ3JpZCBbYV0g
cmVwZWF0KGF1dG8tZmlsbCwgW2NdIFtkXSkgW2ddIFtoIGldJworUEFTUyBQcm9wZXJ0eSBncmlk
LXRlbXBsYXRlLWNvbHVtbnMgdmFsdWUgJ3N1YmdyaWQgW2EgYl0gcmVwZWF0KGF1dG8tZmlsbCwg
W2NdIFtkXSkgW2ddJworUEFTUyBQcm9wZXJ0eSBncmlkLXRlbXBsYXRlLWNvbHVtbnMgdmFsdWUg
J3N1YmdyaWQgW2FdIFtiXSByZXBlYXQoYXV0by1maWxsLCBbY10gW2RdKSBbZyBoXScKK1BBU1Mg
UHJvcGVydHkgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zIHZhbHVlICdzdWJncmlkIFthXSBbYl0gcmVw
ZWF0KGF1dG8tZmlsbCwgW2NdIFtkXSknCitQQVNTIFByb3BlcnR5IGdyaWQtdGVtcGxhdGUtY29s
dW1ucyB2YWx1ZSAnc3ViZ3JpZCByZXBlYXQoYXV0by1maWxsLCBbY10gW2QgZV0pJworUEFTUyBQ
cm9wZXJ0eSBncmlkLXRlbXBsYXRlLWNvbHVtbnMgdmFsdWUgJ3N1YmdyaWQgcmVwZWF0KGF1dG8t
ZmlsbCwgW2NdIFtkIGVdKSBbZ10gW2ggaV0nCitQQVNTIFByb3BlcnR5IGdyaWQtdGVtcGxhdGUt
Y29sdW1ucyB2YWx1ZSAnc3ViZ3JpZCBbYV0gcmVwZWF0KGF1dG8tZmlsbCwgW2NdIFtkIGVdKSBb
Z10gW2ggaV0nCitQQVNTIFByb3BlcnR5IGdyaWQtdGVtcGxhdGUtY29sdW1ucyB2YWx1ZSAnc3Vi
Z3JpZCBbYSBiXSByZXBlYXQoYXV0by1maWxsLCBbY10gW2QgZV0pIFtnXScKK1BBU1MgUHJvcGVy
dHkgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zIHZhbHVlICdzdWJncmlkIFthXSBbYl0gcmVwZWF0KGF1
dG8tZmlsbCwgW2NdIFtkIGVdKSBbZyBoXScKK1BBU1MgUHJvcGVydHkgZ3JpZC10ZW1wbGF0ZS1j
b2x1bW5zIHZhbHVlICdzdWJncmlkIFthXSBbYl0gcmVwZWF0KGF1dG8tZmlsbCwgW2NdIFtkIGVd
KScKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9jc3MvY3NzLWdyaWQvc3ViZ3JpZC9ncmlkLXRlbXBsYXRlLWludmFsaWQtZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nz
LWdyaWQvc3ViZ3JpZC9ncmlkLXRlbXBsYXRlLWludmFsaWQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uMjAwYWIwOTQ3NzVjCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3Mv
Y3NzLWdyaWQvc3ViZ3JpZC9ncmlkLXRlbXBsYXRlLWludmFsaWQtZXhwZWN0ZWQudHh0CkBAIC0w
LDAgKzEsMjAgQEAKKworUEFTUyBlLnN0eWxlWydncmlkLXRlbXBsYXRlLXJvd3MnXSA9ICJzdWJn
cmlkIHN1YmdyaWQiIHNob3VsZCBub3Qgc2V0IHRoZSBwcm9wZXJ0eSB2YWx1ZQorUEFTUyBlLnN0
eWxlWydncmlkLXRlbXBsYXRlLXJvd3MnXSA9ICJzdWJncmlkIG5vbmUiIHNob3VsZCBub3Qgc2V0
IHRoZSBwcm9wZXJ0eSB2YWx1ZQorUEFTUyBlLnN0eWxlWydncmlkLXRlbXBsYXRlLXJvd3MnXSA9
ICJzdWJncmlkIDFweCIgc2hvdWxkIG5vdCBzZXQgdGhlIHByb3BlcnR5IHZhbHVlCitQQVNTIGUu
c3R5bGVbJ2dyaWQtdGVtcGxhdGUtcm93cyddID0gInN1YmdyaWQgW2FdIDFweCIgc2hvdWxkIG5v
dCBzZXQgdGhlIHByb3BlcnR5IHZhbHVlCitQQVNTIGUuc3R5bGVbJ2dyaWQtdGVtcGxhdGUtcm93
cyddID0gInN1YmdyaWQgcmVwZWF0KGF1dG8tZmlsbCwgMXB4KSIgc2hvdWxkIG5vdCBzZXQgdGhl
IHByb3BlcnR5IHZhbHVlCitQQVNTIGUuc3R5bGVbJ2dyaWQtdGVtcGxhdGUtcm93cyddID0gInN1
YmdyaWQgcmVwZWF0KGF1dG8tZmlsbCwgbGluZSkiIHNob3VsZCBub3Qgc2V0IHRoZSBwcm9wZXJ0
eSB2YWx1ZQorUEFTUyBlLnN0eWxlWydncmlkLXRlbXBsYXRlLXJvd3MnXSA9ICJzdWJncmlkIHJl
cGVhdCgyLCAxcHgpIiBzaG91bGQgbm90IHNldCB0aGUgcHJvcGVydHkgdmFsdWUKK1BBU1MgZS5z
dHlsZVsnZ3JpZC10ZW1wbGF0ZS1yb3dzJ10gPSAic3ViZ3JpZCByZXBlYXQoMiwgbGluZSkiIHNo
b3VsZCBub3Qgc2V0IHRoZSBwcm9wZXJ0eSB2YWx1ZQorUEFTUyBlLnN0eWxlWydncmlkLXRlbXBs
YXRlLXJvd3MnXSA9ICJzdWJncmlkIHJlcGVhdCgyLCIgc2hvdWxkIG5vdCBzZXQgdGhlIHByb3Bl
cnR5IHZhbHVlCitQQVNTIGUuc3R5bGVbJ2dyaWQtdGVtcGxhdGUtY29sdW1ucyddID0gInN1Ymdy
aWQgc3ViZ3JpZCIgc2hvdWxkIG5vdCBzZXQgdGhlIHByb3BlcnR5IHZhbHVlCitQQVNTIGUuc3R5
bGVbJ2dyaWQtdGVtcGxhdGUtY29sdW1ucyddID0gInN1YmdyaWQgbm9uZSIgc2hvdWxkIG5vdCBz
ZXQgdGhlIHByb3BlcnR5IHZhbHVlCitQQVNTIGUuc3R5bGVbJ2dyaWQtdGVtcGxhdGUtY29sdW1u
cyddID0gInN1YmdyaWQgMXB4IiBzaG91bGQgbm90IHNldCB0aGUgcHJvcGVydHkgdmFsdWUKK1BB
U1MgZS5zdHlsZVsnZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zJ10gPSAic3ViZ3JpZCBbYV0gMXB4IiBz
aG91bGQgbm90IHNldCB0aGUgcHJvcGVydHkgdmFsdWUKK1BBU1MgZS5zdHlsZVsnZ3JpZC10ZW1w
bGF0ZS1jb2x1bW5zJ10gPSAic3ViZ3JpZCByZXBlYXQoYXV0by1maWxsLCAxcHgpIiBzaG91bGQg
bm90IHNldCB0aGUgcHJvcGVydHkgdmFsdWUKK1BBU1MgZS5zdHlsZVsnZ3JpZC10ZW1wbGF0ZS1j
b2x1bW5zJ10gPSAic3ViZ3JpZCByZXBlYXQoYXV0by1maWxsLCBsaW5lKSIgc2hvdWxkIG5vdCBz
ZXQgdGhlIHByb3BlcnR5IHZhbHVlCitQQVNTIGUuc3R5bGVbJ2dyaWQtdGVtcGxhdGUtY29sdW1u
cyddID0gInN1YmdyaWQgcmVwZWF0KDIsIDFweCkiIHNob3VsZCBub3Qgc2V0IHRoZSBwcm9wZXJ0
eSB2YWx1ZQorUEFTUyBlLnN0eWxlWydncmlkLXRlbXBsYXRlLWNvbHVtbnMnXSA9ICJzdWJncmlk
IHJlcGVhdCgyLCBsaW5lKSIgc2hvdWxkIG5vdCBzZXQgdGhlIHByb3BlcnR5IHZhbHVlCitQQVNT
IGUuc3R5bGVbJ2dyaWQtdGVtcGxhdGUtY29sdW1ucyddID0gInN1YmdyaWQgcmVwZWF0KDIsIiBz
aG91bGQgbm90IHNldCB0aGUgcHJvcGVydHkgdmFsdWUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWdyaWQvc3ViZ3JpZC9n
cmlkLXRlbXBsYXRlLXZhbGlkLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1ncmlkL3N1YmdyaWQvZ3JpZC10ZW1wbGF0ZS12
YWxpZC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
Li40NTEyYjY0NjQ4ZmQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtZ3JpZC9zdWJncmlkL2dyaWQtdGVtcGxhdGUt
dmFsaWQtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMzggQEAKKworUEFTUyBlLnN0eWxlWydncmlk
LXRlbXBsYXRlLXJvd3MnXSA9ICJzdWJncmlkIiBzaG91bGQgc2V0IHRoZSBwcm9wZXJ0eSB2YWx1
ZQorUEFTUyBlLnN0eWxlWydncmlkLXRlbXBsYXRlLXJvd3MnXSA9ICJzdWJncmlkIFthXSIgc2hv
dWxkIHNldCB0aGUgcHJvcGVydHkgdmFsdWUKK1BBU1MgZS5zdHlsZVsnZ3JpZC10ZW1wbGF0ZS1y
b3dzJ10gPSAic3ViZ3JpZCBbYV0gW2JdIiBzaG91bGQgc2V0IHRoZSBwcm9wZXJ0eSB2YWx1ZQor
UEFTUyBlLnN0eWxlWydncmlkLXRlbXBsYXRlLXJvd3MnXSA9ICJzdWJncmlkIFthXSBbYl0gW2Nd
IiBzaG91bGQgc2V0IHRoZSBwcm9wZXJ0eSB2YWx1ZQorUEFTUyBlLnN0eWxlWydncmlkLXRlbXBs
YXRlLXJvd3MnXSA9ICJzdWJncmlkIFtdIiBzaG91bGQgc2V0IHRoZSBwcm9wZXJ0eSB2YWx1ZQor
UEFTUyBlLnN0eWxlWydncmlkLXRlbXBsYXRlLXJvd3MnXSA9ICJzdWJncmlkIFthXSBbYl0gW10g
W2NdIiBzaG91bGQgc2V0IHRoZSBwcm9wZXJ0eSB2YWx1ZQorUEFTUyBlLnN0eWxlWydncmlkLXRl
bXBsYXRlLXJvd3MnXSA9ICJzdWJncmlkIFtdIFtdIFtdIFtjXSIgc2hvdWxkIHNldCB0aGUgcHJv
cGVydHkgdmFsdWUKK1BBU1MgZS5zdHlsZVsnZ3JpZC10ZW1wbGF0ZS1yb3dzJ10gPSAic3ViZ3Jp
ZCBbXSBbXSBbXSBbXSIgc2hvdWxkIHNldCB0aGUgcHJvcGVydHkgdmFsdWUKK1BBU1MgZS5zdHls
ZVsnZ3JpZC10ZW1wbGF0ZS1yb3dzJ10gPSAic3ViZ3JpZCByZXBlYXQoYXV0by1maWxsLCBbYV0p
IiBzaG91bGQgc2V0IHRoZSBwcm9wZXJ0eSB2YWx1ZQorUEFTUyBlLnN0eWxlWydncmlkLXRlbXBs
YXRlLXJvd3MnXSA9ICJzdWJncmlkIFthXSByZXBlYXQoYXV0by1maWxsLCBbYl0pIiBzaG91bGQg
c2V0IHRoZSBwcm9wZXJ0eSB2YWx1ZQorUEFTUyBlLnN0eWxlWydncmlkLXRlbXBsYXRlLXJvd3Mn
XSA9ICJzdWJncmlkIFthXSByZXBlYXQoYXV0by1maWxsLCBbYl0pIFtjXSIgc2hvdWxkIHNldCB0
aGUgcHJvcGVydHkgdmFsdWUKK1BBU1MgZS5zdHlsZVsnZ3JpZC10ZW1wbGF0ZS1yb3dzJ10gPSAi
c3ViZ3JpZCBbXSByZXBlYXQoYXV0by1maWxsLCBbXSkgW10iIHNob3VsZCBzZXQgdGhlIHByb3Bl
cnR5IHZhbHVlCitQQVNTIGUuc3R5bGVbJ2dyaWQtdGVtcGxhdGUtcm93cyddID0gInN1YmdyaWQg
cmVwZWF0KDIsIFthXSkiIHNob3VsZCBzZXQgdGhlIHByb3BlcnR5IHZhbHVlCitQQVNTIGUuc3R5
bGVbJ2dyaWQtdGVtcGxhdGUtcm93cyddID0gInN1YmdyaWQgcmVwZWF0KDIsIFthXSBbYl0pIiBz
aG91bGQgc2V0IHRoZSBwcm9wZXJ0eSB2YWx1ZQorUEFTUyBlLnN0eWxlWydncmlkLXRlbXBsYXRl
LXJvd3MnXSA9ICJzdWJncmlkIFthXSByZXBlYXQoMiwgW2JdKSIgc2hvdWxkIHNldCB0aGUgcHJv
cGVydHkgdmFsdWUKK1BBU1MgZS5zdHlsZVsnZ3JpZC10ZW1wbGF0ZS1yb3dzJ10gPSAic3ViZ3Jp
ZCBbYV0gcmVwZWF0KDIsIFtiXSkgW2NdIiBzaG91bGQgc2V0IHRoZSBwcm9wZXJ0eSB2YWx1ZQor
UEFTUyBlLnN0eWxlWydncmlkLXRlbXBsYXRlLXJvd3MnXSA9ICJzdWJncmlkIFtdIHJlcGVhdCgy
LCBbXSkgW10iIHNob3VsZCBzZXQgdGhlIHByb3BlcnR5IHZhbHVlCitQQVNTIGUuc3R5bGVbJ2dy
aWQtdGVtcGxhdGUtcm93cyddID0gInN1YmdyaWQgW2FdIHJlcGVhdCgyLCBbYl0pIHJlcGVhdChh
dXRvLWZpbGwsIFtjXSkgW2RdIiBzaG91bGQgc2V0IHRoZSBwcm9wZXJ0eSB2YWx1ZQorUEFTUyBl
LnN0eWxlWydncmlkLXRlbXBsYXRlLWNvbHVtbnMnXSA9ICJzdWJncmlkIiBzaG91bGQgc2V0IHRo
ZSBwcm9wZXJ0eSB2YWx1ZQorUEFTUyBlLnN0eWxlWydncmlkLXRlbXBsYXRlLWNvbHVtbnMnXSA9
ICJzdWJncmlkIFthXSIgc2hvdWxkIHNldCB0aGUgcHJvcGVydHkgdmFsdWUKK1BBU1MgZS5zdHls
ZVsnZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zJ10gPSAic3ViZ3JpZCBbYV0gW2JdIiBzaG91bGQgc2V0
IHRoZSBwcm9wZXJ0eSB2YWx1ZQorUEFTUyBlLnN0eWxlWydncmlkLXRlbXBsYXRlLWNvbHVtbnMn
XSA9ICJzdWJncmlkIFthXSBbYl0gW2NdIiBzaG91bGQgc2V0IHRoZSBwcm9wZXJ0eSB2YWx1ZQor
UEFTUyBlLnN0eWxlWydncmlkLXRlbXBsYXRlLWNvbHVtbnMnXSA9ICJzdWJncmlkIFtdIiBzaG91
bGQgc2V0IHRoZSBwcm9wZXJ0eSB2YWx1ZQorUEFTUyBlLnN0eWxlWydncmlkLXRlbXBsYXRlLWNv
bHVtbnMnXSA9ICJzdWJncmlkIFthXSBbYl0gW10gW2NdIiBzaG91bGQgc2V0IHRoZSBwcm9wZXJ0
eSB2YWx1ZQorUEFTUyBlLnN0eWxlWydncmlkLXRlbXBsYXRlLWNvbHVtbnMnXSA9ICJzdWJncmlk
IFtdIFtdIFtdIFtjXSIgc2hvdWxkIHNldCB0aGUgcHJvcGVydHkgdmFsdWUKK1BBU1MgZS5zdHls
ZVsnZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zJ10gPSAic3ViZ3JpZCBbXSBbXSBbXSBbXSIgc2hvdWxk
IHNldCB0aGUgcHJvcGVydHkgdmFsdWUKK1BBU1MgZS5zdHlsZVsnZ3JpZC10ZW1wbGF0ZS1jb2x1
bW5zJ10gPSAic3ViZ3JpZCByZXBlYXQoYXV0by1maWxsLCBbYV0pIiBzaG91bGQgc2V0IHRoZSBw
cm9wZXJ0eSB2YWx1ZQorUEFTUyBlLnN0eWxlWydncmlkLXRlbXBsYXRlLWNvbHVtbnMnXSA9ICJz
dWJncmlkIFthXSByZXBlYXQoYXV0by1maWxsLCBbYl0pIiBzaG91bGQgc2V0IHRoZSBwcm9wZXJ0
eSB2YWx1ZQorUEFTUyBlLnN0eWxlWydncmlkLXRlbXBsYXRlLWNvbHVtbnMnXSA9ICJzdWJncmlk
IFthXSByZXBlYXQoYXV0by1maWxsLCBbYl0pIFtjXSIgc2hvdWxkIHNldCB0aGUgcHJvcGVydHkg
dmFsdWUKK1BBU1MgZS5zdHlsZVsnZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zJ10gPSAic3ViZ3JpZCBb
XSByZXBlYXQoYXV0by1maWxsLCBbXSkgW10iIHNob3VsZCBzZXQgdGhlIHByb3BlcnR5IHZhbHVl
CitQQVNTIGUuc3R5bGVbJ2dyaWQtdGVtcGxhdGUtY29sdW1ucyddID0gInN1YmdyaWQgcmVwZWF0
KDIsIFthXSkiIHNob3VsZCBzZXQgdGhlIHByb3BlcnR5IHZhbHVlCitQQVNTIGUuc3R5bGVbJ2dy
aWQtdGVtcGxhdGUtY29sdW1ucyddID0gInN1YmdyaWQgcmVwZWF0KDIsIFthXSBbYl0pIiBzaG91
bGQgc2V0IHRoZSBwcm9wZXJ0eSB2YWx1ZQorUEFTUyBlLnN0eWxlWydncmlkLXRlbXBsYXRlLWNv
bHVtbnMnXSA9ICJzdWJncmlkIFthXSByZXBlYXQoMiwgW2JdKSIgc2hvdWxkIHNldCB0aGUgcHJv
cGVydHkgdmFsdWUKK1BBU1MgZS5zdHlsZVsnZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zJ10gPSAic3Vi
Z3JpZCBbYV0gcmVwZWF0KDIsIFtiXSkgW2NdIiBzaG91bGQgc2V0IHRoZSBwcm9wZXJ0eSB2YWx1
ZQorUEFTUyBlLnN0eWxlWydncmlkLXRlbXBsYXRlLWNvbHVtbnMnXSA9ICJzdWJncmlkIFtdIHJl
cGVhdCgyLCBbXSkgW10iIHNob3VsZCBzZXQgdGhlIHByb3BlcnR5IHZhbHVlCitQQVNTIGUuc3R5
bGVbJ2dyaWQtdGVtcGxhdGUtY29sdW1ucyddID0gInN1YmdyaWQgW2FdIHJlcGVhdCgyLCBbYl0p
IHJlcGVhdChhdXRvLWZpbGwsIFtjXSkgW2RdIiBzaG91bGQgc2V0IHRoZSBwcm9wZXJ0eSB2YWx1
ZQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2Nzcy9jc3MtZ3JpZC9zdWJncmlkL2xpbmUtbmFtZXMtMDAyLWV4cGVjdGVkLmh0bWwgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtZ3JpZC9z
dWJncmlkL2xpbmUtbmFtZXMtMDAyLWV4cGVjdGVkLmh0bWwKaW5kZXggMDRjNTgzOTU5NmM5Li4y
Mzk5MzI4YmVjYzQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvY3NzL2Nzcy1ncmlkL3N1YmdyaWQvbGluZS1uYW1lcy0wMDItZXhwZWN0ZWQu
aHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nz
cy9jc3MtZ3JpZC9zdWJncmlkL2xpbmUtbmFtZXMtMDAyLWV4cGVjdGVkLmh0bWwKQEAgLTE0LDcg
KzE0LDcgQEAgaHRtbCxib2R5IHsKIAogLmdyaWQgewogICBkaXNwbGF5OiBncmlkOwotICBncmlk
OiBhdXRvIC8gW2FdIDUwcHggNTBweCBbYV0gNTBweCA1MHB4IFthXTsKKyAgZ3JpZDogYXV0byAv
IFthXSA1MHB4IDQwcHggW2FdIDEwcHggNTBweCBbYV07CiAgIHBhZGRpbmc6IDIwcHggMTBweDsK
IH0KIApAQCAtMzIsNyArMzIsNyBAQCB4IHsgYmFja2dyb3VuZDogZ3JleTsgfQogCiA8ZGl2IGNs
YXNzPSJncmlkIj4KICAgPGRpdiBjbGFzcz0ic3ViZ3JpZCI+Ci0gICAgPHggc3R5bGU9ImdyaWQt
Y29sdW1uOiAxIC8gMyI+PC94PgorICAgIDx4IHN0eWxlPSJncmlkLWNvbHVtbjogMyAvIDQiPjwv
eD4KICAgPC9kaXY+CiA8L2Rpdj4KIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWdyaWQvc3ViZ3JpZC9saW5lLW5hbWVzLTAw
NS1leHBlY3RlZC5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9jc3MvY3NzLWdyaWQvc3ViZ3JpZC9saW5lLW5hbWVzLTAwNS1leHBlY3RlZC5odG1sCmlu
ZGV4IDRjN2Y0YjUwZmQxNi4uY2ZlMThkMWIyNmVkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtZ3JpZC9zdWJncmlkL2xpbmUt
bmFtZXMtMDA1LWV4cGVjdGVkLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWdyaWQvc3ViZ3JpZC9saW5lLW5hbWVzLTAwNS1leHBl
Y3RlZC5odG1sCkBAIC0xMTUsNyArMTE1LDcgQEAgeCB7CiA8ZGl2IHN0eWxlPSJkaXNwbGF5Omdy
aWQ7IHdpZHRoOjUwMHB4OyBncmlkLWF1dG8tY29sdW1uczogNTBweDsiPgogPGk+PC9pPjxpPjwv
aT48aT48L2k+PGk+PC9pPjxpPjwvaT48aT48L2k+PGk+PC9pPjxpPjwvaT48aT48L2k+PGk+PC9p
PgogICA8ZGl2IGNsYXNzPSJzdWJncmlkMiI+Ci0gICAgPHggc3R5bGU9ImdyaWQtY29sdW1uOiBz
cGFuIDQgLyAxMSI+eDwveD4KKyAgICA8eCBzdHlsZT0iZ3JpZC1jb2x1bW46IHNwYW4gMyAvIDEx
Ij54PC94PgogICA8L2Rpdj4KIDwvZGl2PgogCkBAIC0xMjksNyArMTI5LDcgQEAgeCB7CiA8ZGl2
IHN0eWxlPSJkaXNwbGF5OmdyaWQ7IGdyaWQ6IGF1dG8gLyByZXBlYXQoMTAsIDUwcHgpIHJlcGVh
dCgxMCwgW2FdIDUwcHgpIFthXSI+CiA8aT48L2k+PGk+PC9pPjxpPjwvaT48aT48L2k+PGk+PC9p
PjxpPjwvaT48aT48L2k+PGk+PC9pPjxpPjwvaT48aT48L2k+CiAgIDxkaXYgc3R5bGU9ImRpc3Bs
YXk6Z3JpZDsgZ3JpZDphdXRvL3N1YmdyaWQ7IGdyaWQtY29sdW1uOiBzcGFuIDEwOyBncmlkLXJv
dzoyIj4KLSAgICA8eCBzdHlsZT0iZ3JpZC1jb2x1bW46IDEgLyAxMSI+eDwveD4KKyAgICA8eCBz
dHlsZT0iZ3JpZC1jb2x1bW46IDEwIC8gMTEiPng8L3g+CiAgIDwvZGl2PgogPC9kaXY+CiAKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2Nzcy9jc3MtZ3JpZC9zdWJncmlkL2dyaWQtdGVtcGxhdGUtY29tcHV0ZWQtbm9n
cmlkLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtZ3JpZC9zdWJncmlkL2dyaWQtdGVtcGxhdGUtY29t
cHV0ZWQtbm9ncmlkLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
NTY3ZmIxYzIxMjUxLi4wMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3Rr
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1ncmlkL3N1YmdyaWQvZ3Jp
ZC10ZW1wbGF0ZS1jb21wdXRlZC1ub2dyaWQtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAg
LTEsMzEgKzAsMCBAQAotCi1GQUlMIFByb3BlcnR5IGdyaWQtdGVtcGxhdGUtY29sdW1ucyB2YWx1
ZSAnc3ViZ3JpZCBbYV0nIGFzc2VydF90cnVlOiAnc3ViZ3JpZCBbYV0nIGlzIGEgc3VwcG9ydGVk
IHZhbHVlIGZvciBncmlkLXRlbXBsYXRlLWNvbHVtbnMuIGV4cGVjdGVkIHRydWUgZ290IGZhbHNl
Ci1GQUlMIFByb3BlcnR5IGdyaWQtdGVtcGxhdGUtY29sdW1ucyB2YWx1ZSAnc3ViZ3JpZCBbYV0g
W2JdJyBhc3NlcnRfdHJ1ZTogJ3N1YmdyaWQgW2FdIFtiXScgaXMgYSBzdXBwb3J0ZWQgdmFsdWUg
Zm9yIGdyaWQtdGVtcGxhdGUtY29sdW1ucy4gZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKLUZBSUwg
UHJvcGVydHkgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zIHZhbHVlICdzdWJncmlkIFthXSBbYl0gW2Jd
IFtjXScgYXNzZXJ0X3RydWU6ICdzdWJncmlkIFthXSBbYl0gW2JdIFtjXScgaXMgYSBzdXBwb3J0
ZWQgdmFsdWUgZm9yIGdyaWQtdGVtcGxhdGUtY29sdW1ucy4gZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFs
c2UKLUZBSUwgUHJvcGVydHkgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zIHZhbHVlICdzdWJncmlkIFth
XSBbYiBjIGRdIFtlIGZdIFtlIGZdIFtnXScgYXNzZXJ0X3RydWU6ICdzdWJncmlkIFthXSBbYiBj
IGRdIFtlIGZdIFtlIGZdIFtnXScgaXMgYSBzdXBwb3J0ZWQgdmFsdWUgZm9yIGdyaWQtdGVtcGxh
dGUtY29sdW1ucy4gZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKLUZBSUwgUHJvcGVydHkgZ3JpZC10
ZW1wbGF0ZS1jb2x1bW5zIHZhbHVlICdzdWJncmlkIFthIGIgY10gW2RdIFtlIGZdJyBhc3NlcnRf
dHJ1ZTogJ3N1YmdyaWQgW2EgYiBjXSBbZF0gW2UgZl0nIGlzIGEgc3VwcG9ydGVkIHZhbHVlIGZv
ciBncmlkLXRlbXBsYXRlLWNvbHVtbnMuIGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCi1GQUlMIFBy
b3BlcnR5IGdyaWQtdGVtcGxhdGUtY29sdW1ucyB2YWx1ZSAnc3ViZ3JpZCByZXBlYXQoYXV0by1m
aWxsLCBbY10pJyBhc3NlcnRfdHJ1ZTogJ3N1YmdyaWQgcmVwZWF0KGF1dG8tZmlsbCwgW2NdKScg
aXMgYSBzdXBwb3J0ZWQgdmFsdWUgZm9yIGdyaWQtdGVtcGxhdGUtY29sdW1ucy4gZXhwZWN0ZWQg
dHJ1ZSBnb3QgZmFsc2UKLUZBSUwgUHJvcGVydHkgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zIHZhbHVl
ICdzdWJncmlkIHJlcGVhdChhdXRvLWZpbGwsIFtjXSkgW2ddIFtoIGldJyBhc3NlcnRfdHJ1ZTog
J3N1YmdyaWQgcmVwZWF0KGF1dG8tZmlsbCwgW2NdKSBbZ10gW2ggaV0nIGlzIGEgc3VwcG9ydGVk
IHZhbHVlIGZvciBncmlkLXRlbXBsYXRlLWNvbHVtbnMuIGV4cGVjdGVkIHRydWUgZ290IGZhbHNl
Ci1GQUlMIFByb3BlcnR5IGdyaWQtdGVtcGxhdGUtY29sdW1ucyB2YWx1ZSAnc3ViZ3JpZCBbYV0g
cmVwZWF0KGF1dG8tZmlsbCwgW2NdKSBbZ10gW2ggaV0nIGFzc2VydF90cnVlOiAnc3ViZ3JpZCBb
YV0gcmVwZWF0KGF1dG8tZmlsbCwgW2NdKSBbZ10gW2ggaV0nIGlzIGEgc3VwcG9ydGVkIHZhbHVl
IGZvciBncmlkLXRlbXBsYXRlLWNvbHVtbnMuIGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCi1GQUlM
IFByb3BlcnR5IGdyaWQtdGVtcGxhdGUtY29sdW1ucyB2YWx1ZSAnc3ViZ3JpZCBbYSBiXSByZXBl
YXQoYXV0by1maWxsLCBbY10pIFtnXScgYXNzZXJ0X3RydWU6ICdzdWJncmlkIFthIGJdIHJlcGVh
dChhdXRvLWZpbGwsIFtjXSkgW2ddJyBpcyBhIHN1cHBvcnRlZCB2YWx1ZSBmb3IgZ3JpZC10ZW1w
bGF0ZS1jb2x1bW5zLiBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQotRkFJTCBQcm9wZXJ0eSBncmlk
LXRlbXBsYXRlLWNvbHVtbnMgdmFsdWUgJ3N1YmdyaWQgW2FdIFtiXSByZXBlYXQoYXV0by1maWxs
LCBbY10pIFtnIGhdJyBhc3NlcnRfdHJ1ZTogJ3N1YmdyaWQgW2FdIFtiXSByZXBlYXQoYXV0by1m
aWxsLCBbY10pIFtnIGhdJyBpcyBhIHN1cHBvcnRlZCB2YWx1ZSBmb3IgZ3JpZC10ZW1wbGF0ZS1j
b2x1bW5zLiBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQotRkFJTCBQcm9wZXJ0eSBncmlkLXRlbXBs
YXRlLWNvbHVtbnMgdmFsdWUgJ3N1YmdyaWQgW2FdIFtiXSByZXBlYXQoYXV0by1maWxsLCBbY10p
JyBhc3NlcnRfdHJ1ZTogJ3N1YmdyaWQgW2FdIFtiXSByZXBlYXQoYXV0by1maWxsLCBbY10pJyBp
cyBhIHN1cHBvcnRlZCB2YWx1ZSBmb3IgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zLiBleHBlY3RlZCB0
cnVlIGdvdCBmYWxzZQotRkFJTCBQcm9wZXJ0eSBncmlkLXRlbXBsYXRlLWNvbHVtbnMgdmFsdWUg
J3N1YmdyaWQgcmVwZWF0KGF1dG8tZmlsbCwgW2MgZF0pJyBhc3NlcnRfdHJ1ZTogJ3N1YmdyaWQg
cmVwZWF0KGF1dG8tZmlsbCwgW2MgZF0pJyBpcyBhIHN1cHBvcnRlZCB2YWx1ZSBmb3IgZ3JpZC10
ZW1wbGF0ZS1jb2x1bW5zLiBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQotRkFJTCBQcm9wZXJ0eSBn
cmlkLXRlbXBsYXRlLWNvbHVtbnMgdmFsdWUgJ3N1YmdyaWQgcmVwZWF0KGF1dG8tZmlsbCwgW2Mg
ZF0pIFtnXSBbaCBpXScgYXNzZXJ0X3RydWU6ICdzdWJncmlkIHJlcGVhdChhdXRvLWZpbGwsIFtj
IGRdKSBbZ10gW2ggaV0nIGlzIGEgc3VwcG9ydGVkIHZhbHVlIGZvciBncmlkLXRlbXBsYXRlLWNv
bHVtbnMuIGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCi1GQUlMIFByb3BlcnR5IGdyaWQtdGVtcGxh
dGUtY29sdW1ucyB2YWx1ZSAnc3ViZ3JpZCBbYV0gcmVwZWF0KGF1dG8tZmlsbCwgW2MgZF0pIFtn
XSBbaCBpXScgYXNzZXJ0X3RydWU6ICdzdWJncmlkIFthXSByZXBlYXQoYXV0by1maWxsLCBbYyBk
XSkgW2ddIFtoIGldJyBpcyBhIHN1cHBvcnRlZCB2YWx1ZSBmb3IgZ3JpZC10ZW1wbGF0ZS1jb2x1
bW5zLiBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQotRkFJTCBQcm9wZXJ0eSBncmlkLXRlbXBsYXRl
LWNvbHVtbnMgdmFsdWUgJ3N1YmdyaWQgW2EgYl0gcmVwZWF0KGF1dG8tZmlsbCwgW2MgZF0pIFtn
XScgYXNzZXJ0X3RydWU6ICdzdWJncmlkIFthIGJdIHJlcGVhdChhdXRvLWZpbGwsIFtjIGRdKSBb
Z10nIGlzIGEgc3VwcG9ydGVkIHZhbHVlIGZvciBncmlkLXRlbXBsYXRlLWNvbHVtbnMuIGV4cGVj
dGVkIHRydWUgZ290IGZhbHNlCi1GQUlMIFByb3BlcnR5IGdyaWQtdGVtcGxhdGUtY29sdW1ucyB2
YWx1ZSAnc3ViZ3JpZCBbYV0gW2JdIHJlcGVhdChhdXRvLWZpbGwsIFtjIGRdKSBbZyBoXScgYXNz
ZXJ0X3RydWU6ICdzdWJncmlkIFthXSBbYl0gcmVwZWF0KGF1dG8tZmlsbCwgW2MgZF0pIFtnIGhd
JyBpcyBhIHN1cHBvcnRlZCB2YWx1ZSBmb3IgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zLiBleHBlY3Rl
ZCB0cnVlIGdvdCBmYWxzZQotRkFJTCBQcm9wZXJ0eSBncmlkLXRlbXBsYXRlLWNvbHVtbnMgdmFs
dWUgJ3N1YmdyaWQgW2FdIFtiXSByZXBlYXQoYXV0by1maWxsLCBbYyBkXSknIGFzc2VydF90cnVl
OiAnc3ViZ3JpZCBbYV0gW2JdIHJlcGVhdChhdXRvLWZpbGwsIFtjIGRdKScgaXMgYSBzdXBwb3J0
ZWQgdmFsdWUgZm9yIGdyaWQtdGVtcGxhdGUtY29sdW1ucy4gZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFs
c2UKLUZBSUwgUHJvcGVydHkgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zIHZhbHVlICdzdWJncmlkIHJl
cGVhdChhdXRvLWZpbGwsIFtjXSBbZF0pJyBhc3NlcnRfdHJ1ZTogJ3N1YmdyaWQgcmVwZWF0KGF1
dG8tZmlsbCwgW2NdIFtkXSknIGlzIGEgc3VwcG9ydGVkIHZhbHVlIGZvciBncmlkLXRlbXBsYXRl
LWNvbHVtbnMuIGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCi1GQUlMIFByb3BlcnR5IGdyaWQtdGVt
cGxhdGUtY29sdW1ucyB2YWx1ZSAnc3ViZ3JpZCByZXBlYXQoYXV0by1maWxsLCBbY10gW2RdKSBb
Z10gW2ggaV0nIGFzc2VydF90cnVlOiAnc3ViZ3JpZCByZXBlYXQoYXV0by1maWxsLCBbY10gW2Rd
KSBbZ10gW2ggaV0nIGlzIGEgc3VwcG9ydGVkIHZhbHVlIGZvciBncmlkLXRlbXBsYXRlLWNvbHVt
bnMuIGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCi1GQUlMIFByb3BlcnR5IGdyaWQtdGVtcGxhdGUt
Y29sdW1ucyB2YWx1ZSAnc3ViZ3JpZCBbYV0gcmVwZWF0KGF1dG8tZmlsbCwgW2NdIFtkXSkgW2dd
IFtoIGldJyBhc3NlcnRfdHJ1ZTogJ3N1YmdyaWQgW2FdIHJlcGVhdChhdXRvLWZpbGwsIFtjXSBb
ZF0pIFtnXSBbaCBpXScgaXMgYSBzdXBwb3J0ZWQgdmFsdWUgZm9yIGdyaWQtdGVtcGxhdGUtY29s
dW1ucy4gZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKLUZBSUwgUHJvcGVydHkgZ3JpZC10ZW1wbGF0
ZS1jb2x1bW5zIHZhbHVlICdzdWJncmlkIFthIGJdIHJlcGVhdChhdXRvLWZpbGwsIFtjXSBbZF0p
IFtnXScgYXNzZXJ0X3RydWU6ICdzdWJncmlkIFthIGJdIHJlcGVhdChhdXRvLWZpbGwsIFtjXSBb
ZF0pIFtnXScgaXMgYSBzdXBwb3J0ZWQgdmFsdWUgZm9yIGdyaWQtdGVtcGxhdGUtY29sdW1ucy4g
ZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKLUZBSUwgUHJvcGVydHkgZ3JpZC10ZW1wbGF0ZS1jb2x1
bW5zIHZhbHVlICdzdWJncmlkIFthXSBbYl0gcmVwZWF0KGF1dG8tZmlsbCwgW2NdIFtkXSkgW2cg
aF0nIGFzc2VydF90cnVlOiAnc3ViZ3JpZCBbYV0gW2JdIHJlcGVhdChhdXRvLWZpbGwsIFtjXSBb
ZF0pIFtnIGhdJyBpcyBhIHN1cHBvcnRlZCB2YWx1ZSBmb3IgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5z
LiBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQotRkFJTCBQcm9wZXJ0eSBncmlkLXRlbXBsYXRlLWNv
bHVtbnMgdmFsdWUgJ3N1YmdyaWQgW2FdIFtiXSByZXBlYXQoYXV0by1maWxsLCBbY10gW2RdKScg
YXNzZXJ0X3RydWU6ICdzdWJncmlkIFthXSBbYl0gcmVwZWF0KGF1dG8tZmlsbCwgW2NdIFtkXSkn
IGlzIGEgc3VwcG9ydGVkIHZhbHVlIGZvciBncmlkLXRlbXBsYXRlLWNvbHVtbnMuIGV4cGVjdGVk
IHRydWUgZ290IGZhbHNlCi1GQUlMIFByb3BlcnR5IGdyaWQtdGVtcGxhdGUtY29sdW1ucyB2YWx1
ZSAnc3ViZ3JpZCByZXBlYXQoYXV0by1maWxsLCBbY10gW2QgZV0pJyBhc3NlcnRfdHJ1ZTogJ3N1
YmdyaWQgcmVwZWF0KGF1dG8tZmlsbCwgW2NdIFtkIGVdKScgaXMgYSBzdXBwb3J0ZWQgdmFsdWUg
Zm9yIGdyaWQtdGVtcGxhdGUtY29sdW1ucy4gZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKLUZBSUwg
UHJvcGVydHkgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zIHZhbHVlICdzdWJncmlkIHJlcGVhdChhdXRv
LWZpbGwsIFtjXSBbZCBlXSkgW2ddIFtoIGldJyBhc3NlcnRfdHJ1ZTogJ3N1YmdyaWQgcmVwZWF0
KGF1dG8tZmlsbCwgW2NdIFtkIGVdKSBbZ10gW2ggaV0nIGlzIGEgc3VwcG9ydGVkIHZhbHVlIGZv
ciBncmlkLXRlbXBsYXRlLWNvbHVtbnMuIGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCi1GQUlMIFBy
b3BlcnR5IGdyaWQtdGVtcGxhdGUtY29sdW1ucyB2YWx1ZSAnc3ViZ3JpZCBbYV0gcmVwZWF0KGF1
dG8tZmlsbCwgW2NdIFtkIGVdKSBbZ10gW2ggaV0nIGFzc2VydF90cnVlOiAnc3ViZ3JpZCBbYV0g
cmVwZWF0KGF1dG8tZmlsbCwgW2NdIFtkIGVdKSBbZ10gW2ggaV0nIGlzIGEgc3VwcG9ydGVkIHZh
bHVlIGZvciBncmlkLXRlbXBsYXRlLWNvbHVtbnMuIGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCi1G
QUlMIFByb3BlcnR5IGdyaWQtdGVtcGxhdGUtY29sdW1ucyB2YWx1ZSAnc3ViZ3JpZCBbYSBiXSBy
ZXBlYXQoYXV0by1maWxsLCBbY10gW2QgZV0pIFtnXScgYXNzZXJ0X3RydWU6ICdzdWJncmlkIFth
IGJdIHJlcGVhdChhdXRvLWZpbGwsIFtjXSBbZCBlXSkgW2ddJyBpcyBhIHN1cHBvcnRlZCB2YWx1
ZSBmb3IgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zLiBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQotRkFJ
TCBQcm9wZXJ0eSBncmlkLXRlbXBsYXRlLWNvbHVtbnMgdmFsdWUgJ3N1YmdyaWQgW2FdIFtiXSBy
ZXBlYXQoYXV0by1maWxsLCBbY10gW2QgZV0pIFtnIGhdJyBhc3NlcnRfdHJ1ZTogJ3N1YmdyaWQg
W2FdIFtiXSByZXBlYXQoYXV0by1maWxsLCBbY10gW2QgZV0pIFtnIGhdJyBpcyBhIHN1cHBvcnRl
ZCB2YWx1ZSBmb3IgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zLiBleHBlY3RlZCB0cnVlIGdvdCBmYWxz
ZQotRkFJTCBQcm9wZXJ0eSBncmlkLXRlbXBsYXRlLWNvbHVtbnMgdmFsdWUgJ3N1YmdyaWQgW2Fd
IFtiXSByZXBlYXQoYXV0by1maWxsLCBbY10gW2QgZV0pJyBhc3NlcnRfdHJ1ZTogJ3N1YmdyaWQg
W2FdIFtiXSByZXBlYXQoYXV0by1maWxsLCBbY10gW2QgZV0pJyBpcyBhIHN1cHBvcnRlZCB2YWx1
ZSBmb3IgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zLiBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQotCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93cGUvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9jc3MvY3NzLWdyaWQvc3ViZ3JpZC9ncmlkLXRlbXBsYXRlLWNvbXB1dGVkLW5v
Z3JpZC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93cGUvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWdyaWQvc3ViZ3JpZC9ncmlkLXRlbXBsYXRlLWNv
bXB1dGVkLW5vZ3JpZC1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDU2N2ZiMWMyMTI1MS4uMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3dw
ZS9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtZ3JpZC9zdWJncmlkL2dy
aWQtdGVtcGxhdGUtY29tcHV0ZWQtbm9ncmlkLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBA
IC0xLDMxICswLDAgQEAKLQotRkFJTCBQcm9wZXJ0eSBncmlkLXRlbXBsYXRlLWNvbHVtbnMgdmFs
dWUgJ3N1YmdyaWQgW2FdJyBhc3NlcnRfdHJ1ZTogJ3N1YmdyaWQgW2FdJyBpcyBhIHN1cHBvcnRl
ZCB2YWx1ZSBmb3IgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zLiBleHBlY3RlZCB0cnVlIGdvdCBmYWxz
ZQotRkFJTCBQcm9wZXJ0eSBncmlkLXRlbXBsYXRlLWNvbHVtbnMgdmFsdWUgJ3N1YmdyaWQgW2Fd
IFtiXScgYXNzZXJ0X3RydWU6ICdzdWJncmlkIFthXSBbYl0nIGlzIGEgc3VwcG9ydGVkIHZhbHVl
IGZvciBncmlkLXRlbXBsYXRlLWNvbHVtbnMuIGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCi1GQUlM
IFByb3BlcnR5IGdyaWQtdGVtcGxhdGUtY29sdW1ucyB2YWx1ZSAnc3ViZ3JpZCBbYV0gW2JdIFti
XSBbY10nIGFzc2VydF90cnVlOiAnc3ViZ3JpZCBbYV0gW2JdIFtiXSBbY10nIGlzIGEgc3VwcG9y
dGVkIHZhbHVlIGZvciBncmlkLXRlbXBsYXRlLWNvbHVtbnMuIGV4cGVjdGVkIHRydWUgZ290IGZh
bHNlCi1GQUlMIFByb3BlcnR5IGdyaWQtdGVtcGxhdGUtY29sdW1ucyB2YWx1ZSAnc3ViZ3JpZCBb
YV0gW2IgYyBkXSBbZSBmXSBbZSBmXSBbZ10nIGFzc2VydF90cnVlOiAnc3ViZ3JpZCBbYV0gW2Ig
YyBkXSBbZSBmXSBbZSBmXSBbZ10nIGlzIGEgc3VwcG9ydGVkIHZhbHVlIGZvciBncmlkLXRlbXBs
YXRlLWNvbHVtbnMuIGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCi1GQUlMIFByb3BlcnR5IGdyaWQt
dGVtcGxhdGUtY29sdW1ucyB2YWx1ZSAnc3ViZ3JpZCBbYSBiIGNdIFtkXSBbZSBmXScgYXNzZXJ0
X3RydWU6ICdzdWJncmlkIFthIGIgY10gW2RdIFtlIGZdJyBpcyBhIHN1cHBvcnRlZCB2YWx1ZSBm
b3IgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zLiBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQotRkFJTCBQ
cm9wZXJ0eSBncmlkLXRlbXBsYXRlLWNvbHVtbnMgdmFsdWUgJ3N1YmdyaWQgcmVwZWF0KGF1dG8t
ZmlsbCwgW2NdKScgYXNzZXJ0X3RydWU6ICdzdWJncmlkIHJlcGVhdChhdXRvLWZpbGwsIFtjXSkn
IGlzIGEgc3VwcG9ydGVkIHZhbHVlIGZvciBncmlkLXRlbXBsYXRlLWNvbHVtbnMuIGV4cGVjdGVk
IHRydWUgZ290IGZhbHNlCi1GQUlMIFByb3BlcnR5IGdyaWQtdGVtcGxhdGUtY29sdW1ucyB2YWx1
ZSAnc3ViZ3JpZCByZXBlYXQoYXV0by1maWxsLCBbY10pIFtnXSBbaCBpXScgYXNzZXJ0X3RydWU6
ICdzdWJncmlkIHJlcGVhdChhdXRvLWZpbGwsIFtjXSkgW2ddIFtoIGldJyBpcyBhIHN1cHBvcnRl
ZCB2YWx1ZSBmb3IgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zLiBleHBlY3RlZCB0cnVlIGdvdCBmYWxz
ZQotRkFJTCBQcm9wZXJ0eSBncmlkLXRlbXBsYXRlLWNvbHVtbnMgdmFsdWUgJ3N1YmdyaWQgW2Fd
IHJlcGVhdChhdXRvLWZpbGwsIFtjXSkgW2ddIFtoIGldJyBhc3NlcnRfdHJ1ZTogJ3N1YmdyaWQg
W2FdIHJlcGVhdChhdXRvLWZpbGwsIFtjXSkgW2ddIFtoIGldJyBpcyBhIHN1cHBvcnRlZCB2YWx1
ZSBmb3IgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zLiBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQotRkFJ
TCBQcm9wZXJ0eSBncmlkLXRlbXBsYXRlLWNvbHVtbnMgdmFsdWUgJ3N1YmdyaWQgW2EgYl0gcmVw
ZWF0KGF1dG8tZmlsbCwgW2NdKSBbZ10nIGFzc2VydF90cnVlOiAnc3ViZ3JpZCBbYSBiXSByZXBl
YXQoYXV0by1maWxsLCBbY10pIFtnXScgaXMgYSBzdXBwb3J0ZWQgdmFsdWUgZm9yIGdyaWQtdGVt
cGxhdGUtY29sdW1ucy4gZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKLUZBSUwgUHJvcGVydHkgZ3Jp
ZC10ZW1wbGF0ZS1jb2x1bW5zIHZhbHVlICdzdWJncmlkIFthXSBbYl0gcmVwZWF0KGF1dG8tZmls
bCwgW2NdKSBbZyBoXScgYXNzZXJ0X3RydWU6ICdzdWJncmlkIFthXSBbYl0gcmVwZWF0KGF1dG8t
ZmlsbCwgW2NdKSBbZyBoXScgaXMgYSBzdXBwb3J0ZWQgdmFsdWUgZm9yIGdyaWQtdGVtcGxhdGUt
Y29sdW1ucy4gZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKLUZBSUwgUHJvcGVydHkgZ3JpZC10ZW1w
bGF0ZS1jb2x1bW5zIHZhbHVlICdzdWJncmlkIFthXSBbYl0gcmVwZWF0KGF1dG8tZmlsbCwgW2Nd
KScgYXNzZXJ0X3RydWU6ICdzdWJncmlkIFthXSBbYl0gcmVwZWF0KGF1dG8tZmlsbCwgW2NdKScg
aXMgYSBzdXBwb3J0ZWQgdmFsdWUgZm9yIGdyaWQtdGVtcGxhdGUtY29sdW1ucy4gZXhwZWN0ZWQg
dHJ1ZSBnb3QgZmFsc2UKLUZBSUwgUHJvcGVydHkgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zIHZhbHVl
ICdzdWJncmlkIHJlcGVhdChhdXRvLWZpbGwsIFtjIGRdKScgYXNzZXJ0X3RydWU6ICdzdWJncmlk
IHJlcGVhdChhdXRvLWZpbGwsIFtjIGRdKScgaXMgYSBzdXBwb3J0ZWQgdmFsdWUgZm9yIGdyaWQt
dGVtcGxhdGUtY29sdW1ucy4gZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKLUZBSUwgUHJvcGVydHkg
Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zIHZhbHVlICdzdWJncmlkIHJlcGVhdChhdXRvLWZpbGwsIFtj
IGRdKSBbZ10gW2ggaV0nIGFzc2VydF90cnVlOiAnc3ViZ3JpZCByZXBlYXQoYXV0by1maWxsLCBb
YyBkXSkgW2ddIFtoIGldJyBpcyBhIHN1cHBvcnRlZCB2YWx1ZSBmb3IgZ3JpZC10ZW1wbGF0ZS1j
b2x1bW5zLiBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQotRkFJTCBQcm9wZXJ0eSBncmlkLXRlbXBs
YXRlLWNvbHVtbnMgdmFsdWUgJ3N1YmdyaWQgW2FdIHJlcGVhdChhdXRvLWZpbGwsIFtjIGRdKSBb
Z10gW2ggaV0nIGFzc2VydF90cnVlOiAnc3ViZ3JpZCBbYV0gcmVwZWF0KGF1dG8tZmlsbCwgW2Mg
ZF0pIFtnXSBbaCBpXScgaXMgYSBzdXBwb3J0ZWQgdmFsdWUgZm9yIGdyaWQtdGVtcGxhdGUtY29s
dW1ucy4gZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKLUZBSUwgUHJvcGVydHkgZ3JpZC10ZW1wbGF0
ZS1jb2x1bW5zIHZhbHVlICdzdWJncmlkIFthIGJdIHJlcGVhdChhdXRvLWZpbGwsIFtjIGRdKSBb
Z10nIGFzc2VydF90cnVlOiAnc3ViZ3JpZCBbYSBiXSByZXBlYXQoYXV0by1maWxsLCBbYyBkXSkg
W2ddJyBpcyBhIHN1cHBvcnRlZCB2YWx1ZSBmb3IgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zLiBleHBl
Y3RlZCB0cnVlIGdvdCBmYWxzZQotRkFJTCBQcm9wZXJ0eSBncmlkLXRlbXBsYXRlLWNvbHVtbnMg
dmFsdWUgJ3N1YmdyaWQgW2FdIFtiXSByZXBlYXQoYXV0by1maWxsLCBbYyBkXSkgW2cgaF0nIGFz
c2VydF90cnVlOiAnc3ViZ3JpZCBbYV0gW2JdIHJlcGVhdChhdXRvLWZpbGwsIFtjIGRdKSBbZyBo
XScgaXMgYSBzdXBwb3J0ZWQgdmFsdWUgZm9yIGdyaWQtdGVtcGxhdGUtY29sdW1ucy4gZXhwZWN0
ZWQgdHJ1ZSBnb3QgZmFsc2UKLUZBSUwgUHJvcGVydHkgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zIHZh
bHVlICdzdWJncmlkIFthXSBbYl0gcmVwZWF0KGF1dG8tZmlsbCwgW2MgZF0pJyBhc3NlcnRfdHJ1
ZTogJ3N1YmdyaWQgW2FdIFtiXSByZXBlYXQoYXV0by1maWxsLCBbYyBkXSknIGlzIGEgc3VwcG9y
dGVkIHZhbHVlIGZvciBncmlkLXRlbXBsYXRlLWNvbHVtbnMuIGV4cGVjdGVkIHRydWUgZ290IGZh
bHNlCi1GQUlMIFByb3BlcnR5IGdyaWQtdGVtcGxhdGUtY29sdW1ucyB2YWx1ZSAnc3ViZ3JpZCBy
ZXBlYXQoYXV0by1maWxsLCBbY10gW2RdKScgYXNzZXJ0X3RydWU6ICdzdWJncmlkIHJlcGVhdChh
dXRvLWZpbGwsIFtjXSBbZF0pJyBpcyBhIHN1cHBvcnRlZCB2YWx1ZSBmb3IgZ3JpZC10ZW1wbGF0
ZS1jb2x1bW5zLiBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQotRkFJTCBQcm9wZXJ0eSBncmlkLXRl
bXBsYXRlLWNvbHVtbnMgdmFsdWUgJ3N1YmdyaWQgcmVwZWF0KGF1dG8tZmlsbCwgW2NdIFtkXSkg
W2ddIFtoIGldJyBhc3NlcnRfdHJ1ZTogJ3N1YmdyaWQgcmVwZWF0KGF1dG8tZmlsbCwgW2NdIFtk
XSkgW2ddIFtoIGldJyBpcyBhIHN1cHBvcnRlZCB2YWx1ZSBmb3IgZ3JpZC10ZW1wbGF0ZS1jb2x1
bW5zLiBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQotRkFJTCBQcm9wZXJ0eSBncmlkLXRlbXBsYXRl
LWNvbHVtbnMgdmFsdWUgJ3N1YmdyaWQgW2FdIHJlcGVhdChhdXRvLWZpbGwsIFtjXSBbZF0pIFtn
XSBbaCBpXScgYXNzZXJ0X3RydWU6ICdzdWJncmlkIFthXSByZXBlYXQoYXV0by1maWxsLCBbY10g
W2RdKSBbZ10gW2ggaV0nIGlzIGEgc3VwcG9ydGVkIHZhbHVlIGZvciBncmlkLXRlbXBsYXRlLWNv
bHVtbnMuIGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCi1GQUlMIFByb3BlcnR5IGdyaWQtdGVtcGxh
dGUtY29sdW1ucyB2YWx1ZSAnc3ViZ3JpZCBbYSBiXSByZXBlYXQoYXV0by1maWxsLCBbY10gW2Rd
KSBbZ10nIGFzc2VydF90cnVlOiAnc3ViZ3JpZCBbYSBiXSByZXBlYXQoYXV0by1maWxsLCBbY10g
W2RdKSBbZ10nIGlzIGEgc3VwcG9ydGVkIHZhbHVlIGZvciBncmlkLXRlbXBsYXRlLWNvbHVtbnMu
IGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCi1GQUlMIFByb3BlcnR5IGdyaWQtdGVtcGxhdGUtY29s
dW1ucyB2YWx1ZSAnc3ViZ3JpZCBbYV0gW2JdIHJlcGVhdChhdXRvLWZpbGwsIFtjXSBbZF0pIFtn
IGhdJyBhc3NlcnRfdHJ1ZTogJ3N1YmdyaWQgW2FdIFtiXSByZXBlYXQoYXV0by1maWxsLCBbY10g
W2RdKSBbZyBoXScgaXMgYSBzdXBwb3J0ZWQgdmFsdWUgZm9yIGdyaWQtdGVtcGxhdGUtY29sdW1u
cy4gZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKLUZBSUwgUHJvcGVydHkgZ3JpZC10ZW1wbGF0ZS1j
b2x1bW5zIHZhbHVlICdzdWJncmlkIFthXSBbYl0gcmVwZWF0KGF1dG8tZmlsbCwgW2NdIFtkXSkn
IGFzc2VydF90cnVlOiAnc3ViZ3JpZCBbYV0gW2JdIHJlcGVhdChhdXRvLWZpbGwsIFtjXSBbZF0p
JyBpcyBhIHN1cHBvcnRlZCB2YWx1ZSBmb3IgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zLiBleHBlY3Rl
ZCB0cnVlIGdvdCBmYWxzZQotRkFJTCBQcm9wZXJ0eSBncmlkLXRlbXBsYXRlLWNvbHVtbnMgdmFs
dWUgJ3N1YmdyaWQgcmVwZWF0KGF1dG8tZmlsbCwgW2NdIFtkIGVdKScgYXNzZXJ0X3RydWU6ICdz
dWJncmlkIHJlcGVhdChhdXRvLWZpbGwsIFtjXSBbZCBlXSknIGlzIGEgc3VwcG9ydGVkIHZhbHVl
IGZvciBncmlkLXRlbXBsYXRlLWNvbHVtbnMuIGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCi1GQUlM
IFByb3BlcnR5IGdyaWQtdGVtcGxhdGUtY29sdW1ucyB2YWx1ZSAnc3ViZ3JpZCByZXBlYXQoYXV0
by1maWxsLCBbY10gW2QgZV0pIFtnXSBbaCBpXScgYXNzZXJ0X3RydWU6ICdzdWJncmlkIHJlcGVh
dChhdXRvLWZpbGwsIFtjXSBbZCBlXSkgW2ddIFtoIGldJyBpcyBhIHN1cHBvcnRlZCB2YWx1ZSBm
b3IgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zLiBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQotRkFJTCBQ
cm9wZXJ0eSBncmlkLXRlbXBsYXRlLWNvbHVtbnMgdmFsdWUgJ3N1YmdyaWQgW2FdIHJlcGVhdChh
dXRvLWZpbGwsIFtjXSBbZCBlXSkgW2ddIFtoIGldJyBhc3NlcnRfdHJ1ZTogJ3N1YmdyaWQgW2Fd
IHJlcGVhdChhdXRvLWZpbGwsIFtjXSBbZCBlXSkgW2ddIFtoIGldJyBpcyBhIHN1cHBvcnRlZCB2
YWx1ZSBmb3IgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zLiBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQot
RkFJTCBQcm9wZXJ0eSBncmlkLXRlbXBsYXRlLWNvbHVtbnMgdmFsdWUgJ3N1YmdyaWQgW2EgYl0g
cmVwZWF0KGF1dG8tZmlsbCwgW2NdIFtkIGVdKSBbZ10nIGFzc2VydF90cnVlOiAnc3ViZ3JpZCBb
YSBiXSByZXBlYXQoYXV0by1maWxsLCBbY10gW2QgZV0pIFtnXScgaXMgYSBzdXBwb3J0ZWQgdmFs
dWUgZm9yIGdyaWQtdGVtcGxhdGUtY29sdW1ucy4gZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKLUZB
SUwgUHJvcGVydHkgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zIHZhbHVlICdzdWJncmlkIFthXSBbYl0g
cmVwZWF0KGF1dG8tZmlsbCwgW2NdIFtkIGVdKSBbZyBoXScgYXNzZXJ0X3RydWU6ICdzdWJncmlk
IFthXSBbYl0gcmVwZWF0KGF1dG8tZmlsbCwgW2NdIFtkIGVdKSBbZyBoXScgaXMgYSBzdXBwb3J0
ZWQgdmFsdWUgZm9yIGdyaWQtdGVtcGxhdGUtY29sdW1ucy4gZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFs
c2UKLUZBSUwgUHJvcGVydHkgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zIHZhbHVlICdzdWJncmlkIFth
XSBbYl0gcmVwZWF0KGF1dG8tZmlsbCwgW2NdIFtkIGVdKScgYXNzZXJ0X3RydWU6ICdzdWJncmlk
IFthXSBbYl0gcmVwZWF0KGF1dG8tZmlsbCwgW2NdIFtkIGVdKScgaXMgYSBzdXBwb3J0ZWQgdmFs
dWUgZm9yIGdyaWQtdGVtcGxhdGUtY29sdW1ucy4gZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKLQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dURi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV1RGL0NoYW5nZUxvZwpp
bmRleCA2ZGJkMDlkNDdjZmMuLjMwMTFiMmJkMWYwOCAxMDA2NDQKLS0tIGEvU291cmNlL1dURi9D
aGFuZ2VMb2cKKysrIGIvU291cmNlL1dURi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAy
Mi0wMi0wMiAgTWF0dCBXb29kcm93ICA8bWF0dHdvb2Ryb3dAYXBwbGUuY29tPgorCisgICAgICAg
IEFkZCBzdXBwb3J0IGZvciBwYXJzaW5nICdzdWJncmlkJyBpbiBncmlkLXRlbXBsYXRlLWNvbHVt
bnMvcm93CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0y
MzYwNTQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBB
ZGRzIGEgbmV3IGV4cGVyaW1lbnRhbCBwcmVmZXJlbmNlIGZvciBzdWJncmlkIHN1cHBvcnQsIGRp
c2FibGVkIGJ5IGRlZmF1bHQuCisKKyAgICAgICAgKiBTY3JpcHRzL1ByZWZlcmVuY2VzL1dlYlBy
ZWZlcmVuY2VzRXhwZXJpbWVudGFsLnlhbWw6CisKIDIwMjItMDItMDIgIFhhbiBMb3BleiAgPHhh
bkBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtKU0NdIFJlbW92ZSBjb21waWxlciB3YXJuaW5nIGlu
IFRyYWlsaW5nQXJyYXkuaApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi9TY3JpcHRzL1ByZWZlcmVu
Y2VzL1dlYlByZWZlcmVuY2VzRXhwZXJpbWVudGFsLnlhbWwgYi9Tb3VyY2UvV1RGL1NjcmlwdHMv
UHJlZmVyZW5jZXMvV2ViUHJlZmVyZW5jZXNFeHBlcmltZW50YWwueWFtbAppbmRleCA1YjRkM2I2
MjU3MTcuLjFjODFhYzc1MGJlZSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi9TY3JpcHRzL1ByZWZl
cmVuY2VzL1dlYlByZWZlcmVuY2VzRXhwZXJpbWVudGFsLnlhbWwKKysrIGIvU291cmNlL1dURi9T
Y3JpcHRzL1ByZWZlcmVuY2VzL1dlYlByZWZlcmVuY2VzRXhwZXJpbWVudGFsLnlhbWwKQEAgLTEz
NDcsNiArMTM0NywxOCBAQCBTdG9yYWdlQVBJRW5hYmxlZDoKICAgICAgICJQTEFURk9STShDT0NP
QSkiIDogdHJ1ZQogICAgICAgZGVmYXVsdDogZmFsc2UKIAorU3ViZ3JpZEVuYWJsZWQ6CisgIHR5
cGU6IGJvb2wKKyAgaHVtYW5SZWFkYWJsZU5hbWU6ICJDU1Mgc3ViZ3JpZCBzdXBwb3J0IgorICBo
dW1hblJlYWRhYmxlRGVzY3JpcHRpb246ICJFbmFibGUgQ1NTIHN1YmdyaWQgc3VwcG9ydCIKKyAg
ZGVmYXVsdFZhbHVlOgorICAgIFdlYktpdExlZ2FjeToKKyAgICAgIGRlZmF1bHQ6IGZhbHNlCisg
ICAgV2ViS2l0OgorICAgICAgZGVmYXVsdDogZmFsc2UKKyAgICBXZWJDb3JlOgorICAgICAgZGVm
YXVsdDogZmFsc2UKKwogU3ludGhldGljRWRpdGluZ0NvbW1hbmRzRW5hYmxlZDoKICAgdHlwZTog
Ym9vbAogICBodW1hblJlYWRhYmxlTmFtZTogIlN5bnRoZXRpYyBFZGl0aW5nIENvbW1hbmRzIgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hh
bmdlTG9nCmluZGV4IDFmMzA4YzAxMmVlMC4uMmZmOTA0YWJkMDg0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMTQ0IEBACisyMDIyLTAyLTA0ICBNYXR0IFdvb2Ryb3cgIDxtYXR0d29vZHJvd0BhcHBs
ZS5jb20+CisKKyAgICAgICAgSW1wbGVtZW50IGdldENvbXB1dGVkU3R5bGUgZm9yIHN1YmdyaWRz
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzYxNDgK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGRzIE9y
ZGVyZWROYW1lZExpbmVzQ29sbGVjdG9ySW5TdWJncmlkTGF5b3V0IHRvIGl0ZXJhdGUgdGhlIHN1
YmdyaWQgbmFtZXMgbGlzdCwgc3RvcHBpbmcKKyAgICAgICAgYXQgdGhlIG51bWJlciBvZiBhY3R1
YWwgdHJhY2tzIGluIHRoZSBncmlkLgorCisKKyAgICAgICAgKiBjc3MvQ1NTQ29tcHV0ZWRTdHls
ZURlY2xhcmF0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok9yZGVyZWROYW1lZExpbmVzQ29s
bGVjdG9ySW5TdWJncmlkTGF5b3V0OjpPcmRlcmVkTmFtZWRMaW5lc0NvbGxlY3RvckluU3ViZ3Jp
ZExheW91dCk6CisgICAgICAgIChXZWJDb3JlOjpPcmRlcmVkTmFtZWRMaW5lc0NvbGxlY3Rvcklu
R3JpZExheW91dDo6Y29sbGVjdExpbmVOYW1lc0ZvckluZGV4IGNvbnN0KToKKyAgICAgICAgKFdl
YkNvcmU6Ok9yZGVyZWROYW1lZExpbmVzQ29sbGVjdG9ySW5TdWJncmlkTGF5b3V0Ojpjb2xsZWN0
TGluZU5hbWVzRm9ySW5kZXggY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6YWRkVmFsdWVzRm9y
TmFtZWRHcmlkTGluZXNBdEluZGV4KToKKyAgICAgICAgKFdlYkNvcmU6OnBvcHVsYXRlU3ViZ3Jp
ZFRyYWNrTGlzdCk6CisgICAgICAgIChXZWJDb3JlOjp2YWx1ZUZvckdyaWRUcmFja0xpc3QpOgor
ICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJHcmlkLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJl
bmRlckdyaWQ6OmNvbXB1dGVBdXRvUmVwZWF0VHJhY2tzQ291bnQgY29uc3QpOgorICAgICAgICAq
IHJlbmRlcmluZy9SZW5kZXJHcmlkLmg6CisgICAgICAgICogcmVuZGVyaW5nL3N0eWxlL0dyaWRQ
b3NpdGlvbnNSZXNvbHZlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpOYW1lZExpbmVDb2xsZWN0
aW9uOjpjb250YWlucyBjb25zdCk6CisgICAgICAgICogc3R5bGUvU3R5bGVCdWlsZGVyQ29udmVy
dGVyLmg6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZTo6QnVpbGRlckNvbnZlcnRlcjo6Y3JlYXRl
R3JpZFRyYWNrTGlzdCk6CisKKzIwMjItMDItMDMgIE1hdHQgV29vZHJvdyAgPG1hdHR3b29kcm93
QGFwcGxlLmNvbT4KKworICAgICAgICBJbmhlcml0IHRyYWNrIGNvdW50IGZyb20gcGFyZW50IGdy
aWQgZm9yIHN1YmdyaWRkZWQgYXhlcyBhbmQgY2xhbXAgaXRlbSBwbGFjZW1lbnQgdG8gdGhhdCBl
eHBsaWNpdCBncmlkLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjM2MTIyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgQ2hhbmdlcyBHcmlkUG9zaXRpb25zUmVzb2x2ZXI6OmV4cGxpY2l0R3JpZDw+Q291bnQg
dG8gcmV0dXJuIHRoZSBudW1iZXIgb2YgdHJhY2tzCisgICAgICAgIHNwYW5uZWQgaW4gdGhlIHBh
cmVudCBncmlkLCBmb3IgYXhlcyB0aGF0IGFyZSBhIHN1YmdyaWQuCisKKyAgICAgICAgVXBkYXRl
cyBhZGp1c3RHcmlkUG9zaXRpb25zRm9yU3R5bGUgdG8gdXNlIHRoZSBudW1iZXIgb2YgbGluZXMg
c3BlY2lmaWVkIGluIHRoZQorICAgICAgICBzdWJncmlkIHByb3BlcnR5LCBmb3IgZ3JpZCBpdGVt
cyB0aGF0IGFyZSBhbHNvIGEgc3ViZ3JpZCBhbmQgaGF2ZSBhbiBvdGhlcndpc2UKKyAgICAgICAg
aW5kZWZpbml0ZSBzcGFuLgorCisgICAgICAgIEFkZHMgY2xhbXBpbmcgc3VwcG9ydCB0byBHcmlk
IHNvIHRoYXQgd2UgY2FuIHByZXZlbnQgc3ViZ3JpZHMgZnJvbSBldmVyIGFkZGluZworICAgICAg
ICBuZXcgaW1wbGljaXQgdHJhY2tzLgorCisgICAgICAgICogcmVuZGVyaW5nL0dyaWQuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6R3JpZDo6aW5zZXJ0KToKKyAgICAgICAgKFdlYkNvcmU6OkdyaWQ6
OnNldENsYW1waW5nRm9yU3ViZ3JpZCk6CisgICAgICAgIChXZWJDb3JlOjpHcmlkOjpjbGFtcEFu
ZFRyYW5zbGF0ZVRvSW1wbGljaXRHcmlkKToKKyAgICAgICAgKFdlYkNvcmU6OkdyaWQ6OnNldE5l
ZWRzSXRlbXNQbGFjZW1lbnQpOgorICAgICAgICAqIHJlbmRlcmluZy9HcmlkLmg6CisgICAgICAg
ICogcmVuZGVyaW5nL1JlbmRlckdyaWQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyR3Jp
ZDo6Y29tcHV0ZUludHJpbnNpY0xvZ2ljYWxXaWR0aHMgY29uc3QpOgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyR3JpZDo6cGxhY2VJdGVtc09uR3JpZCBjb25zdCk6CisgICAgICAgIChXZWJDb3Jl
OjpSZW5kZXJHcmlkOjpwb3B1bGF0ZUV4cGxpY2l0R3JpZEFuZE9yZGVySXRlcmF0b3IgY29uc3Qp
OgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyR3JpZDo6cGxhY2VTcGVjaWZpZWRNYWpvckF4aXNJ
dGVtc09uR3JpZCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJHcmlkOjppc1N1Ymdy
aWQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyR3JpZDo6aXNTdWJncmlkUm93cyBj
b25zdCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJHcmlkOjppc1N1YmdyaWRDb2x1bW5zIGNv
bnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckdyaWQ6OmdyaWRBcmVhQnJlYWR0aEZvck91
dE9mRmxvd0NoaWxkKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckdyaWQ6Om51bVRyYWNrcyBj
b25zdCk6CisgICAgICAgIChXZWJDb3JlOjp0cmFuc3Bvc2VkRGlyZWN0aW9uKToKKyAgICAgICAg
KFdlYkNvcmU6OlJlbmRlckdyaWQ6OmNvbXB1dGVHcmlkU3BhbkZvck91dE9mRmxvd0NoaWxkIGNv
bnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckdyaWQ6OmdyaWRTcGFuRm9yT3V0T2ZGbG93
Q2hpbGQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyR3JpZDo6Z3JpZFNwYW5Gb3JD
aGlsZCBjb25zdCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckdyaWQuaDoKKyAgICAgICAg
KiByZW5kZXJpbmcvc3R5bGUvR3JpZEFyZWEuaDoKKyAgICAgICAgKFdlYkNvcmU6OkdyaWRTcGFu
OjppbnRlZ2VyU3BhbiBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpHcmlkU3Bhbjo6dHJhbnNs
YXRlVG8pOgorICAgICAgICAoV2ViQ29yZTo6R3JpZFNwYW46OmNsYW1wKToKKyAgICAgICAgKiBy
ZW5kZXJpbmcvc3R5bGUvR3JpZFBvc2l0aW9uc1Jlc29sdmVyLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OmlzSW5kZWZpbml0ZVNwYW4pOgorICAgICAgICAoV2ViQ29yZTo6YWRqdXN0R3JpZFBvc2l0
aW9uc0Zyb21TdHlsZSk6CisgICAgICAgIChXZWJDb3JlOjpHcmlkUG9zaXRpb25zUmVzb2x2ZXI6
OmV4cGxpY2l0R3JpZENvbHVtbkNvdW50KToKKyAgICAgICAgKFdlYkNvcmU6OkdyaWRQb3NpdGlv
bnNSZXNvbHZlcjo6ZXhwbGljaXRHcmlkUm93Q291bnQpOgorICAgICAgICAoV2ViQ29yZTo6ZXhw
bGljaXRHcmlkU2l6ZUZvclNpZGUpOgorICAgICAgICAoV2ViQ29yZTo6cmVzb2x2ZU5hbWVkR3Jp
ZExpbmVQb3NpdGlvbkZyb21TdHlsZSk6CisgICAgICAgIChXZWJDb3JlOjpyZXNvbHZlTmFtZWRH
cmlkTGluZVBvc2l0aW9uQWdhaW5zdE9wcG9zaXRlUG9zaXRpb24pOgorICAgICAgICAoV2ViQ29y
ZTo6cmVzb2x2ZUdyaWRQb3NpdGlvbkFnYWluc3RPcHBvc2l0ZVBvc2l0aW9uKToKKyAgICAgICAg
KFdlYkNvcmU6OnJlc29sdmVHcmlkUG9zaXRpb25Gcm9tU3R5bGUpOgorICAgICAgICAoV2ViQ29y
ZTo6R3JpZFBvc2l0aW9uc1Jlc29sdmVyOjpyZXNvbHZlR3JpZFBvc2l0aW9uc0Zyb21TdHlsZSk6
CisgICAgICAgICogcmVuZGVyaW5nL3N0eWxlL0dyaWRQb3NpdGlvbnNSZXNvbHZlci5oOgorCisy
MDIyLTAyLTAyICBNYXR0IFdvb2Ryb3cgIDxtYXR0d29vZHJvd0BhcHBsZS5jb20+CisKKyAgICAg
ICAgQWRkIHN1cHBvcnQgZm9yIHBhcnNpbmcgJ3N1YmdyaWQnIGluIGdyaWQtdGVtcGxhdGUtY29s
dW1ucy9yb3cKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIzNjA1NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IEFkZHMgc3VwcG9ydCBmb3IgcGFyc2luZyB0aGUgJ3N1YmdyaWQnIGtleXdvcmQgZm9sbG93ZWQg
YnkgYSBsaXN0IG9mIGxpbmUgbmFtZXMgZm9yCisgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1u
cy9yb3dzLgorICAgICAgICBBZGRzIGEgbmV3IENTU1N1YmdyaWRWYWx1ZSB3cmFwcGVyIGFyb3Vu
ZCBDU1NWYWx1ZUxpc3QgdG8gcmVwcmVzZW50IHRoaXMuCisgICAgICAgIEFsc28gYWRkcyBzdXBw
b3J0IGZvciBjb252ZXJ0aW5nIHRoaXMgaW50byBzdHlsZSBkYXRhIGluIFN0eWxlQnVpbGRlckNv
bnZlcnRlciwgYW5kIHNlcmlhbGl6aW5nCisgICAgICAgIHRoZSBzcGVjaWZpZWQgdmFsdWUgZm9y
IGNvbXB1dGVkIHZhbHVlICh1c2VkIHdoZW4gdGhlIGVsZW1lbnQgc3BlY2lmaWVkIHN1YmdyaWQg
YnV0IGRvZXNuJ3QKKyAgICAgICAgaGF2ZSBhbiBhcHByb3ByaWF0ZSBncmlkIHBhcmVudCkuCisK
KyAgICAgICAgVGVzdHM6IGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1n
cmlkL3N1YmdyaWQvZ3JpZC10ZW1wbGF0ZS1pbnZhbGlkLmh0bWwKKyAgICAgICAgICAgICAgIGlt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1ncmlkL3N1YmdyaWQvZ3JpZC10
ZW1wbGF0ZS12YWxpZC5odG1sCisKKyAgICAgICAgKiBTb3VyY2VzLnR4dDoKKyAgICAgICAgKiBX
ZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogY3NzL0NTU0NvbXB1
dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpPcmRlcmVkTmFtZWRM
aW5lc0NvbGxlY3Rvcjo6bmFtZWRHcmlkTGluZUNvdW50IGNvbnN0KToKKyAgICAgICAgKFdlYkNv
cmU6OnBvcHVsYXRlU3ViZ3JpZFRyYWNrTGlzdCk6CisgICAgICAgIChXZWJDb3JlOjp2YWx1ZUZv
ckdyaWRUcmFja0xpc3QpOgorICAgICAgICAqIGNzcy9DU1NTdWJncmlkVmFsdWUuY3BwOiBBZGRl
ZC4KKyAgICAgICAgKFdlYkNvcmU6OkNTU1N1YmdyaWRWYWx1ZTo6Y3VzdG9tQ1NTVGV4dCBjb25z
dCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NTdWJncmlkVmFsdWU6OkNTU1N1YmdyaWRWYWx1ZSk6
CisgICAgICAgICogY3NzL0NTU1N1YmdyaWRWYWx1ZS5oOiBBZGRlZC4KKyAgICAgICAgKiBjc3Mv
Q1NTVmFsdWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTVmFsdWU6OmVxdWFscyBjb25zdCk6
CisgICAgICAgIChXZWJDb3JlOjpDU1NWYWx1ZTo6Y3NzVGV4dCBjb25zdCk6CisgICAgICAgIChX
ZWJDb3JlOjpDU1NWYWx1ZTo6ZGVzdHJveSk6CisgICAgICAgICogY3NzL0NTU1ZhbHVlLmg6Cisg
ICAgICAgIChXZWJDb3JlOjpDU1NWYWx1ZTo6aXNTdWJncmlkVmFsdWUgY29uc3QpOgorICAgICAg
ICAqIGNzcy9DU1NWYWx1ZUtleXdvcmRzLmluOgorICAgICAgICAqIGNzcy9wYXJzZXIvQ1NTUGFy
c2VyQ29udGV4dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpvcGVyYXRvcj09KToKKyAgICAgICAg
KFdlYkNvcmU6OmFkZCk6CisgICAgICAgICogY3NzL3BhcnNlci9DU1NQYXJzZXJDb250ZXh0Lmg6
CisgICAgICAgICogY3NzL3BhcnNlci9DU1NQcm9wZXJ0eVBhcnNlci5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpjb25zdW1lR3JpZExpbmVOYW1lcyk6CisgICAgICAgIChXZWJDb3JlOjpjb25zdW1l
R3JpZE5hbWVSZXBlYXRGdW5jdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpjb25zdW1lR3JpZFRy
YWNrTGlzdCk6CisgICAgICAgIChXZWJDb3JlOjpjb25zdW1lR3JpZFRlbXBsYXRlc1Jvd3NPckNv
bHVtbnMpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJvcGVydHlQYXJzZXI6OnBhcnNlU2luZ2xl
VmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJvcGVydHlQYXJzZXI6OmNvbnN1bWVHcmlk
VGVtcGxhdGVSb3dzQW5kQXJlYXNBbmRDb2x1bW5zKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1By
b3BlcnR5UGFyc2VyOjpjb25zdW1lR3JpZFRlbXBsYXRlU2hvcnRoYW5kKToKKyAgICAgICAgKFdl
YkNvcmU6OkNTU1Byb3BlcnR5UGFyc2VyOjpjb25zdW1lR3JpZFNob3J0aGFuZCk6CisgICAgICAg
ICogcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmg6CisgICAgICAgIChXZWJDb3JlOjpSZW5k
ZXJTdHlsZTo6Z3JpZFN1YmdyaWRSb3dzIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRl
clN0eWxlOjpncmlkU3ViZ3JpZENvbHVtbnMgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVu
ZGVyU3R5bGU6OnNldEdyaWRTdWJncmlkUm93cyk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJT
dHlsZTo6c2V0R3JpZFN1YmdyaWRDb2x1bW5zKToKKyAgICAgICAgKiByZW5kZXJpbmcvc3R5bGUv
U3R5bGVHcmlkRGF0YS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZUdyaWREYXRhOjpTdHls
ZUdyaWREYXRhKToKKyAgICAgICAgKiByZW5kZXJpbmcvc3R5bGUvU3R5bGVHcmlkRGF0YS5oOgor
ICAgICAgICAoV2ViQ29yZTo6U3R5bGVHcmlkRGF0YTo6b3BlcmF0b3I9PSBjb25zdCk6CisgICAg
ICAgICogc3R5bGUvU3R5bGVCdWlsZGVyQ29udmVydGVyLmg6CisgICAgICAgIChXZWJDb3JlOjpT
dHlsZTo6QnVpbGRlckNvbnZlcnRlcjo6Y3JlYXRlR3JpZFRyYWNrTGlzdCk6CisgICAgICAgICog
c3R5bGUvU3R5bGVCdWlsZGVyQ3VzdG9tLmg6CisKIDIwMjItMDItMDMgIEtpbW1vIEtpbm51bmVu
ICA8a2tpbm51bmVuQGFwcGxlLmNvbT4KIAogICAgICAgICBDcmFzaCBhdCBjb20uYXBwbGUuV2Vi
S2l0OiBXZWJLaXQ6OlJlbW90ZUxheWVyQmFja2luZ1N0b3JlOjpkaXNwbGF5CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlIGIvU291cmNlL1dlYkNvcmUvSGVhZGVycy5j
bWFrZQppbmRleCA2NTM5MzdhY2U2NWMuLmI2NTI0OTFhNmE1YiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvSGVhZGVycy5jbWFrZQorKysgYi9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtl
CkBAIC01MzgsNiArNTM4LDcgQEAgc2V0KFdlYkNvcmVfUFJJVkFURV9GUkFNRVdPUktfSEVBREVS
UwogICAgIGNzcy9DU1NTdHlsZURlY2xhcmF0aW9uLmgKICAgICBjc3MvQ1NTU3R5bGVSdWxlLmgK
ICAgICBjc3MvQ1NTU3R5bGVTaGVldC5oCisgICAgY3NzL0NTU1N1YmdyaWRWYWx1ZS5oCiAgICAg
Y3NzL0NTU1RvTGVuZ3RoQ29udmVyc2lvbkRhdGEuaAogICAgIGNzcy9DU1NVbml0cy5oCiAgICAg
Y3NzL0NTU1Vua25vd25SdWxlLmgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMu
dHh0IGIvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKaW5kZXggYjNmNWUwYjc4NDE3Li40MDlj
YzUxMzhhNjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CisrKyBiL1Nv
dXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CkBAIC03NjcsNiArNzY3LDcgQEAgY3NzL0NTU1NoYWRv
d1ZhbHVlLmNwcAogY3NzL0NTU1N0eWxlRGVjbGFyYXRpb24uY3BwCiBjc3MvQ1NTU3R5bGVSdWxl
LmNwcAogY3NzL0NTU1N0eWxlU2hlZXQuY3BwCitjc3MvQ1NTU3ViZ3JpZFZhbHVlLmNwcAogY3Nz
L0NTU1N1cHBvcnRzUnVsZS5jcHAKIGNzcy9DU1NUaW1pbmdGdW5jdGlvblZhbHVlLmNwcAogY3Nz
L0NTU1RvTGVuZ3RoQ29udmVyc2lvbkRhdGEuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggYzVmNDRlZjA0YTcwLi5jNGVjZTdl
NTJjZTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oKQEAgLTQ2ODgsNiArNDY4OCw3IEBACiAJCUQwMDBFQkEzMTFCREFGRDQwMEM0Nzcy
NiAvKiBGcmFtZUxvYWRlclN0YXRlTWFjaGluZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gRDAwMEVCQTExMUJEQUZENDAwQzQ3NzI2IC8qIEZyYW1lTG9h
ZGVyU3RhdGVNYWNoaW5lLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKIAkJRDAwMEVEMjgxMUMxQjlDRDAwQzQ3NzI2IC8qIFN1YmZyYW1lTG9hZGVyLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBEMDAwRUQyNjEx
QzFCOUNEMDBDNDc3MjYgLyogU3ViZnJhbWVMb2FkZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlEMDFBMjdBRTEwQzlCRkQ4MDAwMjZBNDIgLyog
U3BhY2VTcGxpdFN0cmluZy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gRDAxQTI3QUMxMEM5QkZEODAwMDI2QTQyIC8qIFNwYWNlU3BsaXRTdHJpbmcuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQlEMDI2REIw
QTI3QUI3MTlFMDA4MUIxNDMgLyogQ1NTU3ViZ3JpZFZhbHVlLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBEMDI2REIwODI3QUI3MTlEMDA4MUIxNDMgLyog
Q1NTU3ViZ3JpZFZhbHVlLmggKi87IH07CiAJCUQwNUNFRDJBMEE0MEJCMkMwMEM1QUYzOCAvKiBG
b3JtYXRCbG9ja0NvbW1hbmQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEQwNUNFRDI4MEE0MEJCMkMwMEM1QUYzOCAvKiBGb3JtYXRCbG9ja0NvbW1hbmQu
aCAqLzsgfTsKIAkJRDA2QzBEOEYwQ0ZEMTE0NjAwNjVGNDNGIC8qIFJlbW92ZUZvcm1hdENvbW1h
bmQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEQwNkMw
RDhEMENGRDExNDYwMDY1RjQzRiAvKiBSZW1vdmVGb3JtYXRDb21tYW5kLmggKi87IH07CiAJCUQw
N0RFQUJBMEEzNjU1NEEwMENBMzBGOCAvKiBJbnNlcnRMaXN0Q29tbWFuZC5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRDA3REVBQjgwQTM2NTU0QTAwQ0Ez
MEY4IC8qIEluc2VydExpc3RDb21tYW5kLmggKi87IH07CkBAIC0xNjQzMyw2ICsxNjQzNCw4IEBA
CiAJCUQwMDBFRDI2MTFDMUI5Q0QwMEM0NzcyNiAvKiBTdWJmcmFtZUxvYWRlci5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTdWJmcmFtZUxvYWRlci5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQlEMDFBMjdBQjEwQzlCRkQ4MDAwMjZBNDIgLyogU3BhY2VTcGxpdFN0
cmluZy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTcGFjZVNwbGl0
U3RyaW5nLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRDAxQTI3QUMxMEM5QkZE
ODAwMDI2QTQyIC8qIFNwYWNlU3BsaXRTdHJpbmcuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gU3BhY2VTcGxpdFN0cmluZy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQlEMDI2REIwODI3QUI3MTlEMDA4MUIxNDMgLyogQ1NTU3ViZ3JpZFZhbHVlLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENTU1N1YmdyaWRWYWx1ZS5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQlEMDI2REIwQjI3QUI3MUFGMDA4MUIxNDMgLyogQ1NTU3ViZ3JpZFZh
bHVlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IENTU1N1YmdyaWRW
YWx1ZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUQwMzZERDhEMjA4RkZDMEMw
MEY5RjRCMiAvKiBXZWJHTENvbXByZXNzZWRUZXh0dXJlQVNUQy5pZGwgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gV2ViR0xDb21w
cmVzc2VkVGV4dHVyZUFTVEMuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlEMDVD
RUQyNzBBNDBCQjJDMDBDNUFGMzggLyogRm9ybWF0QmxvY2tDb21tYW5kLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBGb3JtYXRCbG9ja0NvbW1hbmQuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlEMDVDRUQyODBBNDBCQjJDMDBDNUFGMzggLyogRm9y
bWF0QmxvY2tDb21tYW5kLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBGb3Jt
YXRCbG9ja0NvbW1hbmQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTMxNTUxLDYg
KzMxNTU0LDggQEAKIAkJRjUyM0QxODQwMkRFNDJFODAxODYzNUNBIC8qIGNzcyAqLyA9IHsKIAkJ
CWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCisJCQkJRDAyNkRCMEIyN0FCNzFBRjAw
ODFCMTQzIC8qIENTU1N1YmdyaWRWYWx1ZS5jcHAgKi8sCisJCQkJRDAyNkRCMDgyN0FCNzE5RDAw
ODFCMTQzIC8qIENTU1N1YmdyaWRWYWx1ZS5oICovLAogCQkJCUJDRjE2NDREMjY2MjlGOUEwMDAy
RjdFRiAvKiBjYWxjICovLAogCQkJCTk0NkQzNzI3MUQ2Q0IyMjUwMDc3MDg0RiAvKiBwYXJzZXIg
Ki8sCiAJCQkJNEJBRkQwREEyMTkyMUVBRDAwQzBBQjY0IC8qIHR5cGVkb20gKi8sCkBAIC0zNTc5
MCw2ICszNTc5NSw3IEBACiAJCQkJQjJGQTNEQTkwQUI3NUE2RjAwMEU1QUM0IC8qIEpTU1ZHTWFy
a2VyRWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjJGQTNEQUIwQUI3NUE2RjAwMEU1QUM0
IC8qIEpTU1ZHTWFza0VsZW1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUIyRkEzREFEMEFCNzVB
NkYwMDBFNUFDNCAvKiBKU1NWR01hdHJpeC5oIGluIEhlYWRlcnMgKi8sCisJCQkJRDAyNkRCMEEy
N0FCNzE5RTAwODFCMTQzIC8qIENTU1N1YmdyaWRWYWx1ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
QjJGQTNEQUYwQUI3NUE2RjAwMEU1QUM0IC8qIEpTU1ZHTWV0YWRhdGFFbGVtZW50LmggaW4gSGVh
ZGVycyAqLywKIAkJCQlCMjdCMjgyQTBDRUYwQzA3MDBEMzlENTQgLyogSlNTVkdNaXNzaW5nR2x5
cGhFbGVtZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQk0NDk2RTNBMDEzOTgxM0E1MDAzRUUzMkEg
LyogSlNTVkdNUGF0aEVsZW1lbnQuaCBpbiBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvY3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9jc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcAppbmRleCA2OTJkODQ2ODMz
MzYuLjQ3YzdkZjM4MDYwMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0NvbXB1
dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0NvbXB1
dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHAKQEAgLTg1OCw2ICs4NTgsOCBAQCBwdWJsaWM6CiAgICAg
Ym9vbCBpc0VtcHR5KCkgY29uc3QgeyByZXR1cm4gbV9vcmRlcmVkTmFtZWRHcmlkTGluZXMuaXNF
bXB0eSgpICYmIG1fb3JkZXJlZE5hbWVkQXV0b1JlcGVhdEdyaWRMaW5lcy5pc0VtcHR5KCk7IH0K
ICAgICB2aXJ0dWFsIHZvaWQgY29sbGVjdExpbmVOYW1lc0ZvckluZGV4KENTU0dyaWRMaW5lTmFt
ZXNWYWx1ZSYsIHVuc2lnbmVkIGluZGV4KSBjb25zdDsKIAorICAgIHZpcnR1YWwgaW50IG5hbWVk
R3JpZExpbmVDb3VudCgpIGNvbnN0IHsgcmV0dXJuIG1fb3JkZXJlZE5hbWVkR3JpZExpbmVzLnNp
emUoKTsgfQorCiBwcm90ZWN0ZWQ6CiAKICAgICBlbnVtIE5hbWVkTGluZXNUeXBlIHsgTmFtZWRM
aW5lcywgQXV0b1JlcGVhdE5hbWVkTGluZXMgfTsKQEAgLTg3NSw2ICs4NzcsOCBAQCBwdWJsaWM6
CiAgICAgfQogCiAgICAgdm9pZCBjb2xsZWN0TGluZU5hbWVzRm9ySW5kZXgoQ1NTR3JpZExpbmVO
YW1lc1ZhbHVlJiwgdW5zaWduZWQgaW5kZXgpIGNvbnN0IG92ZXJyaWRlOworCisgICAgaW50IG5h
bWVkR3JpZExpbmVDb3VudCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG1fb3JkZXJlZE5hbWVk
QXV0b1JlcGVhdEdyaWRMaW5lcy5zaXplKCk7IH0KIH07CiAKIGNsYXNzIE9yZGVyZWROYW1lZExp
bmVzQ29sbGVjdG9ySW5HcmlkTGF5b3V0IDogcHVibGljIE9yZGVyZWROYW1lZExpbmVzQ29sbGVj
dG9yIHsKQEAgLTg5NSw2ICs4OTksMzggQEAgcHJpdmF0ZToKICAgICB1bnNpZ25lZCBtX2F1dG9S
ZXBlYXRUcmFja0xpc3RMZW5ndGg7CiB9OwogCitjbGFzcyBPcmRlcmVkTmFtZWRMaW5lc0NvbGxl
Y3RvckluU3ViZ3JpZExheW91dCA6IHB1YmxpYyBPcmRlcmVkTmFtZWRMaW5lc0NvbGxlY3RvciB7
CitwdWJsaWM6CisgICAgT3JkZXJlZE5hbWVkTGluZXNDb2xsZWN0b3JJblN1YmdyaWRMYXlvdXQo
Y29uc3QgUmVuZGVyU3R5bGUmIHN0eWxlLCBib29sIGlzUm93QXhpcywgdW5zaWduZWQgdG90YWxU
cmFja3NDb3VudCkKKyAgICA6IE9yZGVyZWROYW1lZExpbmVzQ29sbGVjdG9yKHN0eWxlLCBpc1Jv
d0F4aXMpCisgICAgLCBtX2luc2VydGlvblBvaW50KGlzUm93QXhpcyA/IHN0eWxlLmdyaWRBdXRv
UmVwZWF0Q29sdW1uc0luc2VydGlvblBvaW50KCkgOiBzdHlsZS5ncmlkQXV0b1JlcGVhdFJvd3NJ
bnNlcnRpb25Qb2ludCgpKQorICAgICwgbV9hdXRvUmVwZWF0VHJhY2tMaXN0TGVuZ3RoKChpc1Jv
d0F4aXMgPyBzdHlsZS5hdXRvUmVwZWF0T3JkZXJlZE5hbWVkR3JpZENvbHVtbkxpbmVzKCkgOiBz
dHlsZS5hdXRvUmVwZWF0T3JkZXJlZE5hbWVkR3JpZFJvd0xpbmVzKCkpLnNpemUoKSkKKyAgICAs
IG1fdG90YWxUcmFja3ModG90YWxUcmFja3NDb3VudCkKKyAgICB7CisgICAgICAgIGlmICghbV9h
dXRvUmVwZWF0VHJhY2tMaXN0TGVuZ3RoKSB7CisgICAgICAgICAgICBtX2F1dG9SZXBlYXRUb3Rh
bFRyYWNrcyA9IDA7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgLy8g
KzEgdG8gY29udmVydCBmcm9tIHRyYWNrcyB0byBsaW5lcworICAgICAgICB1bnNpZ25lZCBuYW1l
ZCA9IChpc1Jvd0F4aXMgPyBzdHlsZS5vcmRlcmVkTmFtZWRHcmlkQ29sdW1uTGluZXMoKSA6IHN0
eWxlLm9yZGVyZWROYW1lZEdyaWRSb3dMaW5lcygpKS5zaXplKCk7CisgICAgICAgIGlmIChuYW1l
ZCA+PSBtX3RvdGFsVHJhY2tzICsgMSkgeworICAgICAgICAgICAgbV9hdXRvUmVwZWF0VG90YWxU
cmFja3MgPSAwOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIG1fYXV0
b1JlcGVhdFRvdGFsVHJhY2tzID0gKG1fdG90YWxUcmFja3MgKyAxIC0gbmFtZWQpIC8gbV9hdXRv
UmVwZWF0VHJhY2tMaXN0TGVuZ3RoOworICAgICAgICBtX2F1dG9SZXBlYXRUb3RhbFRyYWNrcyAq
PSBtX2F1dG9SZXBlYXRUcmFja0xpc3RMZW5ndGg7CisgICAgfQorCisgICAgdm9pZCBjb2xsZWN0
TGluZU5hbWVzRm9ySW5kZXgoQ1NTR3JpZExpbmVOYW1lc1ZhbHVlJiwgdW5zaWduZWQgaW5kZXgp
IGNvbnN0IG92ZXJyaWRlOworCisgICAgaW50IG5hbWVkR3JpZExpbmVDb3VudCgpIGNvbnN0IG92
ZXJyaWRlIHsgcmV0dXJuIG1fdG90YWxUcmFja3MgKyAxOyB9Citwcml2YXRlOgorICAgIHVuc2ln
bmVkIG1faW5zZXJ0aW9uUG9pbnQ7CisgICAgdW5zaWduZWQgbV9hdXRvUmVwZWF0VG90YWxUcmFj
a3M7CisgICAgdW5zaWduZWQgbV9hdXRvUmVwZWF0VHJhY2tMaXN0TGVuZ3RoOworICAgIHVuc2ln
bmVkIG1fdG90YWxUcmFja3M7Cit9OworCiB2b2lkIE9yZGVyZWROYW1lZExpbmVzQ29sbGVjdG9y
OjphcHBlbmRMaW5lcyhDU1NHcmlkTGluZU5hbWVzVmFsdWUmIGxpbmVOYW1lc1ZhbHVlLCB1bnNp
Z25lZCBpbmRleCwgTmFtZWRMaW5lc1R5cGUgdHlwZSkgY29uc3QKIHsKICAgICBhdXRvIGl0ZXIg
PSB0eXBlID09IE5hbWVkTGluZXMgPyBtX29yZGVyZWROYW1lZEdyaWRMaW5lcy5maW5kKGluZGV4
KSA6IG1fb3JkZXJlZE5hbWVkQXV0b1JlcGVhdEdyaWRMaW5lcy5maW5kKGluZGV4KTsKQEAgLTky
Miw3ICs5NTgsNyBAQCB2b2lkIE9yZGVyZWROYW1lZExpbmVzQ29sbGVjdG9ySW5zaWRlUmVwZWF0
Ojpjb2xsZWN0TGluZU5hbWVzRm9ySW5kZXgoQ1NTR3JpZExpbgogdm9pZCBPcmRlcmVkTmFtZWRM
aW5lc0NvbGxlY3RvckluR3JpZExheW91dDo6Y29sbGVjdExpbmVOYW1lc0ZvckluZGV4KENTU0dy
aWRMaW5lTmFtZXNWYWx1ZSYgbGluZU5hbWVzVmFsdWUsIHVuc2lnbmVkIGkpIGNvbnN0CiB7CiAg
ICAgQVNTRVJUKCFpc0VtcHR5KCkpOwotICAgIGlmICghbV9hdXRvUmVwZWF0VHJhY2tMaXN0TGVu
Z3RoIHx8IGkgPCBtX2luc2VydGlvblBvaW50KSB7CisgICAgaWYgKCFtX2F1dG9SZXBlYXRUb3Rh
bFRyYWNrcyB8fCBpIDwgbV9pbnNlcnRpb25Qb2ludCkgewogICAgICAgICBhcHBlbmRMaW5lcyhs
aW5lTmFtZXNWYWx1ZSwgaSwgTmFtZWRMaW5lcyk7CiAgICAgICAgIHJldHVybjsKICAgICB9CkBA
IC05NTIsMTQgKzk4OCwzNSBAQCB2b2lkIE9yZGVyZWROYW1lZExpbmVzQ29sbGVjdG9ySW5Hcmlk
TGF5b3V0Ojpjb2xsZWN0TGluZU5hbWVzRm9ySW5kZXgoQ1NTR3JpZExpbgogICAgIGFwcGVuZExp
bmVzKGxpbmVOYW1lc1ZhbHVlLCBhdXRvUmVwZWF0SW5kZXhJbkZpcnN0UmVwZXRpdGlvbiwgQXV0
b1JlcGVhdE5hbWVkTGluZXMpOwogfQogCi1zdGF0aWMgdm9pZCBhZGRWYWx1ZXNGb3JOYW1lZEdy
aWRMaW5lc0F0SW5kZXgoT3JkZXJlZE5hbWVkTGluZXNDb2xsZWN0b3ImIGNvbGxlY3RvciwgdW5z
aWduZWQgaSwgQ1NTVmFsdWVMaXN0JiBsaXN0KQordm9pZCBPcmRlcmVkTmFtZWRMaW5lc0NvbGxl
Y3RvckluU3ViZ3JpZExheW91dDo6Y29sbGVjdExpbmVOYW1lc0ZvckluZGV4KENTU0dyaWRMaW5l
TmFtZXNWYWx1ZSYgbGluZU5hbWVzVmFsdWUsIHVuc2lnbmVkIGkpIGNvbnN0CiB7Ci0gICAgaWYg
KGNvbGxlY3Rvci5pc0VtcHR5KCkpCisgICAgaWYgKCFtX2F1dG9SZXBlYXRUcmFja0xpc3RMZW5n
dGggfHwgaSA8IG1faW5zZXJ0aW9uUG9pbnQpIHsKKyAgICAgICAgYXBwZW5kTGluZXMobGluZU5h
bWVzVmFsdWUsIGksIE5hbWVkTGluZXMpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAg
aWYgKGkgPj0gbV9pbnNlcnRpb25Qb2ludCArIG1fYXV0b1JlcGVhdFRvdGFsVHJhY2tzKSB7Cisg
ICAgICAgIGFwcGVuZExpbmVzKGxpbmVOYW1lc1ZhbHVlLCBpIC0gKG1fYXV0b1JlcGVhdFRvdGFs
VHJhY2tzIC0gMSksIE5hbWVkTGluZXMpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAg
aWYgKCFtX2F1dG9SZXBlYXRUb3RhbFRyYWNrcykgeworICAgICAgICBhcHBlbmRMaW5lcyhsaW5l
TmFtZXNWYWx1ZSwgaSArIDEsIE5hbWVkTGluZXMpOworICAgICAgICByZXR1cm47CisgICAgfQor
CisgICAgdW5zaWduZWQgYXV0b1JlcGVhdEluZGV4SW5GaXJzdFJlcGV0aXRpb24gPSAoaSAtIG1f
aW5zZXJ0aW9uUG9pbnQpICUgbV9hdXRvUmVwZWF0VHJhY2tMaXN0TGVuZ3RoOworICAgIGFwcGVu
ZExpbmVzKGxpbmVOYW1lc1ZhbHVlLCBhdXRvUmVwZWF0SW5kZXhJbkZpcnN0UmVwZXRpdGlvbiwg
QXV0b1JlcGVhdE5hbWVkTGluZXMpOworfQorCitzdGF0aWMgdm9pZCBhZGRWYWx1ZXNGb3JOYW1l
ZEdyaWRMaW5lc0F0SW5kZXgoT3JkZXJlZE5hbWVkTGluZXNDb2xsZWN0b3ImIGNvbGxlY3Rvciwg
dW5zaWduZWQgaSwgQ1NTVmFsdWVMaXN0JiBsaXN0LCBib29sIHJlbmRlckVtcHR5ID0gZmFsc2Up
Cit7CisgICAgaWYgKGNvbGxlY3Rvci5pc0VtcHR5KCkgJiYgIXJlbmRlckVtcHR5KQogICAgICAg
ICByZXR1cm47CiAKICAgICBhdXRvIGxpbmVOYW1lcyA9IENTU0dyaWRMaW5lTmFtZXNWYWx1ZTo6
Y3JlYXRlKCk7CiAgICAgY29sbGVjdG9yLmNvbGxlY3RMaW5lTmFtZXNGb3JJbmRleChsaW5lTmFt
ZXMuZ2V0KCksIGkpOwotICAgIGlmIChsaW5lTmFtZXMtPmxlbmd0aCgpKQorICAgIGlmIChsaW5l
TmFtZXMtPmxlbmd0aCgpIHx8IHJlbmRlckVtcHR5KQogICAgICAgICBsaXN0LmFwcGVuZChXVEZN
b3ZlKGxpbmVOYW1lcykpOwogfQogCkBAIC05OTQsMTAgKzEwNTEsMjMgQEAgdm9pZCBwb3B1bGF0
ZUdyaWRUcmFja0xpc3QoQ1NTVmFsdWVMaXN0JiBsaXN0LCBPcmRlcmVkTmFtZWRMaW5lc0NvbGxl
Y3RvciYgY29sbGUKICAgICBwb3B1bGF0ZUdyaWRUcmFja0xpc3Q8VD4obGlzdCwgY29sbGVjdG9y
LCB0cmFja3MsIGdldFRyYWNrU2l6ZSwgMCwgdHJhY2tzLnNpemUoKSwgb2Zmc2V0KTsKIH0KIAor
c3RhdGljIHZvaWQgcG9wdWxhdGVTdWJncmlkVHJhY2tMaXN0KENTU1ZhbHVlTGlzdCYgbGlzdCwg
T3JkZXJlZE5hbWVkTGluZXNDb2xsZWN0b3ImIGNvbGxlY3RvciwgaW50IHN0YXJ0LCBpbnQgZW5k
LCBib29sIHJlbmRlckVtcHR5ID0gZmFsc2UpCit7CisgICAgZm9yIChpbnQgaSA9IHN0YXJ0OyBp
IDwgZW5kOyBpKyspIHsKKyAgICAgICAgYWRkVmFsdWVzRm9yTmFtZWRHcmlkTGluZXNBdEluZGV4
KGNvbGxlY3RvciwgaSwgbGlzdCwgcmVuZGVyRW1wdHkpOworICAgIH0KK30KKworc3RhdGljIHZv
aWQgcG9wdWxhdGVTdWJncmlkVHJhY2tMaXN0KENTU1ZhbHVlTGlzdCYgbGlzdCwgT3JkZXJlZE5h
bWVkTGluZXNDb2xsZWN0b3ImIGNvbGxlY3RvciwgYm9vbCByZW5kZXJFbXB0eSA9IGZhbHNlKQor
eworICAgIHBvcHVsYXRlU3ViZ3JpZFRyYWNrTGlzdChsaXN0LCBjb2xsZWN0b3IsIDAsIGNvbGxl
Y3Rvci5uYW1lZEdyaWRMaW5lQ291bnQoKSwgcmVuZGVyRW1wdHkpOworfQorCiBzdGF0aWMgUmVm
PENTU1ZhbHVlPiB2YWx1ZUZvckdyaWRUcmFja0xpc3QoR3JpZFRyYWNrU2l6aW5nRGlyZWN0aW9u
IGRpcmVjdGlvbiwgUmVuZGVyT2JqZWN0KiByZW5kZXJlciwgY29uc3QgUmVuZGVyU3R5bGUmIHN0
eWxlKQogewogICAgIGJvb2wgaXNSb3dBeGlzID0gZGlyZWN0aW9uID09IEZvckNvbHVtbnM7CiAg
ICAgYm9vbCBpc1JlbmRlckdyaWQgPSBpczxSZW5kZXJHcmlkPihyZW5kZXJlcik7CisgICAgYm9v
bCBpc1N1YmdyaWQgPSBpc1Jvd0F4aXMgPyBzdHlsZS5ncmlkU3ViZ3JpZENvbHVtbnMoKSA6IHN0
eWxlLmdyaWRTdWJncmlkUm93cygpOwogICAgIGF1dG8mIHRyYWNrU2l6ZXMgPSBpc1Jvd0F4aXMg
PyBzdHlsZS5ncmlkQ29sdW1ucygpIDogc3R5bGUuZ3JpZFJvd3MoKTsKICAgICBhdXRvJiBhdXRv
UmVwZWF0VHJhY2tTaXplcyA9IGlzUm93QXhpcyA/IHN0eWxlLmdyaWRBdXRvUmVwZWF0Q29sdW1u
cygpIDogc3R5bGUuZ3JpZEF1dG9SZXBlYXRSb3dzKCk7CiAKQEAgLTEwMTEsMTUgKzEwODEsMjQg
QEAgc3RhdGljIFJlZjxDU1NWYWx1ZT4gdmFsdWVGb3JHcmlkVHJhY2tMaXN0KEdyaWRUcmFja1Np
emluZ0RpcmVjdGlvbiBkaXJlY3Rpb24sIFIKICAgICAgICAgdHJhY2tMaXN0SXNFbXB0eSA9IHBv
c2l0aW9ucy5zaXplKCkgPT0gMTsKICAgICB9CiAKLSAgICBpZiAodHJhY2tMaXN0SXNFbXB0eSkK
KyAgICBpZiAodHJhY2tMaXN0SXNFbXB0eSAmJiAhaXNTdWJncmlkKQogICAgICAgICByZXR1cm4g
Q1NTVmFsdWVQb29sOjpzaW5nbGV0b24oKS5jcmVhdGVJZGVudGlmaWVyVmFsdWUoQ1NTVmFsdWVO
b25lKTsKIAogICAgIGF1dG8gbGlzdCA9IENTU1ZhbHVlTGlzdDo6Y3JlYXRlU3BhY2VTZXBhcmF0
ZWQoKTsKKyAgICBpZiAoaXNTdWJncmlkKQorICAgICAgICBsaXN0LT5hcHBlbmQoQ1NTVmFsdWVQ
b29sOjpzaW5nbGV0b24oKS5jcmVhdGVJZGVudGlmaWVyVmFsdWUoQ1NTVmFsdWVTdWJncmlkKSk7
CiAKICAgICAvLyBJZiB0aGUgZWxlbWVudCBpcyBhIGdyaWQgY29udGFpbmVyLCB0aGUgcmVzb2x2
ZWQgdmFsdWUgaXMgdGhlIHVzZWQgdmFsdWUsCiAgICAgLy8gc3BlY2lmeWluZyB0cmFjayBzaXpl
cyBpbiBwaXhlbHMgYW5kIGV4cGFuZGluZyB0aGUgcmVwZWF0KCkgbm90YXRpb24uCi0gICAgaWYg
KGlzUmVuZGVyR3JpZCkgeworICAgIC8vIElmIHN1YmdyaWQgd2FzIHNwZWNpZmllZCwgYnV0IHRo
ZSBlbGVtZW50IGlzbid0IGEgc3ViZ3JpZCAoZHVlIHRvIG5vdCBoYXZpbmcKKyAgICAvLyBhbiBh
cHByb3ByaWF0ZSBncmlkIHBhcmVudD8pLCB0aGVuIHdlIGZhbGwgYmFjayB0byB1c2luZyB0aGUg
c3BlY2lmaWVkIHZhbHVlLgorICAgIGlmIChpc1JlbmRlckdyaWQgJiYgKCFpc1N1YmdyaWQgfHwg
ZG93bmNhc3Q8UmVuZGVyR3JpZChyZW5kZXJlciktPmlzU3ViZ3JpZChkaXJlY3Rpb24pKSkgewog
ICAgICAgICBhdXRvKiBncmlkID0gZG93bmNhc3Q8UmVuZGVyR3JpZD4ocmVuZGVyZXIpOworICAg
ICAgICBpZiAoaXNTdWJncmlkKSB7CisgICAgICAgICAgICBPcmRlcmVkTmFtZWRMaW5lc0NvbGxl
Y3RvckluU3ViZ3JpZExheW91dCBjb2xsZWN0b3Ioc3R5bGUsIGlzUm93QXhpcywgZ3JpZC0+bnVt
VHJhY2tzKGRpcmVjdGlvbikpOworICAgICAgICAgICAgcG9wdWxhdGVTdWJncmlkVHJhY2tMaXN0
KGxpc3QuZ2V0KCksIGNvbGxlY3RvciwgdHJ1ZSk7CisgICAgICAgICAgICByZXR1cm4gbGlzdDsK
KyAgICAgICAgfQogICAgICAgICBPcmRlcmVkTmFtZWRMaW5lc0NvbGxlY3RvckluR3JpZExheW91
dCBjb2xsZWN0b3Ioc3R5bGUsIGlzUm93QXhpcywgZ3JpZC0+YXV0b1JlcGVhdENvdW50Rm9yRGly
ZWN0aW9uKGRpcmVjdGlvbiksIGF1dG9SZXBlYXRUcmFja1NpemVzLnNpemUoKSk7CiAgICAgICAg
IC8vIE5hbWVkIGdyaWQgbGluZSBpbmRpY2VzIGFyZSByZWxhdGl2ZSB0byB0aGUgZXhwbGljaXQg
Z3JpZCwgYnV0IHdlIGFyZSBpbmNsdWRpbmcgYWxsIHRyYWNrcy4KICAgICAgICAgLy8gU28gd2Ug
bmVlZCB0byBzdWJ0cmFjdCB0aGUgbnVtYmVyIG9mIGxlYWRpbmcgaW1wbGljaXQgdHJhY2tzIGlu
IG9yZGVyIHRvIGdldCB0aGUgcHJvcGVyIGxpbmUgaW5kZXguCkBAIC0xMDM2LDI1ICsxMTE1LDQw
IEBAIHN0YXRpYyBSZWY8Q1NTVmFsdWU+IHZhbHVlRm9yR3JpZFRyYWNrTGlzdChHcmlkVHJhY2tT
aXppbmdEaXJlY3Rpb24gZGlyZWN0aW9uLCBSCiAgICAgICAgIHJldHVybiBzcGVjaWZpZWRWYWx1
ZUZvckdyaWRUcmFja1NpemUodiwgc3R5bGUpOwogICAgIH07CiAKLSAgICBpZiAoYXV0b1JlcGVh
dFRyYWNrU2l6ZXMuaXNFbXB0eSgpKSB7CisgICAgT3JkZXJlZE5hbWVkTGluZXNDb2xsZWN0b3JJ
bnNpZGVSZXBlYXQgcmVwZWF0Q29sbGVjdG9yKHN0eWxlLCBpc1Jvd0F4aXMpOworICAgIGlmIChp
c1N1YmdyaWQgPyAhcmVwZWF0Q29sbGVjdG9yLm5hbWVkR3JpZExpbmVDb3VudCgpIDogYXV0b1Jl
cGVhdFRyYWNrU2l6ZXMuaXNFbXB0eSgpKSB7CiAgICAgICAgIC8vIElmIHRoZXJlJ3Mgbm8gYXV0
byByZXBlYXQoKSwganVzdCBhZGQgYWxsIHRoZSBsaW5lIG5hbWVzIGFuZCB0cmFjayBzaXplcy4K
LSAgICAgICAgcG9wdWxhdGVHcmlkVHJhY2tMaXN0KGxpc3QuZ2V0KCksIGNvbGxlY3RvciwgdHJh
Y2tTaXplcywgZ2V0VHJhY2tTaXplKTsKKyAgICAgICAgaWYgKGlzU3ViZ3JpZCkKKyAgICAgICAg
ICAgIHBvcHVsYXRlU3ViZ3JpZFRyYWNrTGlzdChsaXN0LmdldCgpLCBjb2xsZWN0b3IpOworICAg
ICAgICBlbHNlCisgICAgICAgICAgICBwb3B1bGF0ZUdyaWRUcmFja0xpc3QobGlzdC5nZXQoKSwg
Y29sbGVjdG9yLCB0cmFja1NpemVzLCBnZXRUcmFja1NpemUpOwogICAgICAgICByZXR1cm4gbGlz
dDsKICAgICB9CiAKICAgICAvLyBBZGQgdGhlIGxpbmUgbmFtZXMgYW5kIHRyYWNrIHNpemVzIHRo
YXQgcHJlY2VkZSB0aGUgYXV0byByZXBlYXQoKS4KLSAgICBpbnQgYXV0b1JlcGVhdEluc2VydGlv
blBvaW50ID0gc3RkOjpjbGFtcDxpbnQ+KGlzUm93QXhpcyA/IHN0eWxlLmdyaWRBdXRvUmVwZWF0
Q29sdW1uc0luc2VydGlvblBvaW50KCkgOiBzdHlsZS5ncmlkQXV0b1JlcGVhdFJvd3NJbnNlcnRp
b25Qb2ludCgpLCAwLCB0cmFja1NpemVzLnNpemUoKSk7Ci0gICAgcG9wdWxhdGVHcmlkVHJhY2tM
aXN0KGxpc3QuZ2V0KCksIGNvbGxlY3RvciwgdHJhY2tTaXplcywgZ2V0VHJhY2tTaXplLCAwLCBh
dXRvUmVwZWF0SW5zZXJ0aW9uUG9pbnQpOworICAgIGludCBhdXRvUmVwZWF0SW5zZXJ0aW9uUG9p
bnQgPSBpc1Jvd0F4aXMgPyBzdHlsZS5ncmlkQXV0b1JlcGVhdENvbHVtbnNJbnNlcnRpb25Qb2lu
dCgpIDogc3R5bGUuZ3JpZEF1dG9SZXBlYXRSb3dzSW5zZXJ0aW9uUG9pbnQoKTsKKyAgICBpZiAo
aXNTdWJncmlkKQorICAgICAgICBwb3B1bGF0ZVN1YmdyaWRUcmFja0xpc3QobGlzdC5nZXQoKSwg
Y29sbGVjdG9yLCAwLCBhdXRvUmVwZWF0SW5zZXJ0aW9uUG9pbnQpOworICAgIGVsc2UgeworICAg
ICAgICBhdXRvUmVwZWF0SW5zZXJ0aW9uUG9pbnQgPSBzdGQ6OmNsYW1wPGludD4oYXV0b1JlcGVh
dEluc2VydGlvblBvaW50LCAwLCB0cmFja1NpemVzLnNpemUoKSk7CisgICAgICAgIHBvcHVsYXRl
R3JpZFRyYWNrTGlzdChsaXN0LmdldCgpLCBjb2xsZWN0b3IsIHRyYWNrU2l6ZXMsIGdldFRyYWNr
U2l6ZSwgMCwgYXV0b1JlcGVhdEluc2VydGlvblBvaW50KTsKKyAgICB9CiAKICAgICAvLyBBZGQg
YSBDU1NHcmlkQXV0b1JlcGVhdFZhbHVlIHdpdGggdGhlIGNvbnRlbnRzIG9mIHRoZSBhdXRvIHJl
cGVhdCgpLgogICAgIEF1dG9SZXBlYXRUeXBlIGF1dG9SZXBlYXRUeXBlID0gaXNSb3dBeGlzID8g
c3R5bGUuZ3JpZEF1dG9SZXBlYXRDb2x1bW5zVHlwZSgpIDogc3R5bGUuZ3JpZEF1dG9SZXBlYXRS
b3dzVHlwZSgpOwogICAgIGF1dG8gcmVwZWF0ZWRWYWx1ZXMgPSBDU1NHcmlkQXV0b1JlcGVhdFZh
bHVlOjpjcmVhdGUoYXV0b1JlcGVhdFR5cGUgPT0gQXV0b1JlcGVhdFR5cGU6OkZpbGwgPyBDU1NW
YWx1ZUF1dG9GaWxsIDogQ1NTVmFsdWVBdXRvRml0KTsKLSAgICBPcmRlcmVkTmFtZWRMaW5lc0Nv
bGxlY3Rvckluc2lkZVJlcGVhdCByZXBlYXRDb2xsZWN0b3Ioc3R5bGUsIGlzUm93QXhpcyk7Ci0g
ICAgcG9wdWxhdGVHcmlkVHJhY2tMaXN0KHJlcGVhdGVkVmFsdWVzLmdldCgpLCByZXBlYXRDb2xs
ZWN0b3IsIGF1dG9SZXBlYXRUcmFja1NpemVzLCBnZXRUcmFja1NpemUpOworCisgICAgaWYgKGlz
U3ViZ3JpZCkKKyAgICAgICAgcG9wdWxhdGVTdWJncmlkVHJhY2tMaXN0KHJlcGVhdGVkVmFsdWVz
LmdldCgpLCByZXBlYXRDb2xsZWN0b3IpOworICAgIGVsc2UKKyAgICAgICAgcG9wdWxhdGVHcmlk
VHJhY2tMaXN0KHJlcGVhdGVkVmFsdWVzLmdldCgpLCByZXBlYXRDb2xsZWN0b3IsIGF1dG9SZXBl
YXRUcmFja1NpemVzLCBnZXRUcmFja1NpemUpOwogICAgIGxpc3QtPmFwcGVuZChyZXBlYXRlZFZh
bHVlcy5nZXQoKSk7CiAKICAgICAvLyBBZGQgdGhlIGxpbmUgbmFtZXMgYW5kIHRyYWNrIHNpemVz
IHRoYXQgZm9sbG93IHRoZSBhdXRvIHJlcGVhdCgpLgotICAgIHBvcHVsYXRlR3JpZFRyYWNrTGlz
dChsaXN0LmdldCgpLCBjb2xsZWN0b3IsIHRyYWNrU2l6ZXMsIGdldFRyYWNrU2l6ZSwgYXV0b1Jl
cGVhdEluc2VydGlvblBvaW50LCB0cmFja1NpemVzLnNpemUoKSwgMSk7CisgICAgaWYgKGlzU3Vi
Z3JpZCkKKyAgICAgICAgcG9wdWxhdGVTdWJncmlkVHJhY2tMaXN0KGxpc3QuZ2V0KCksIGNvbGxl
Y3RvciwgYXV0b1JlcGVhdEluc2VydGlvblBvaW50LCBjb2xsZWN0b3IubmFtZWRHcmlkTGluZUNv
dW50KCkgKyAxKTsKKyAgICBlbHNlCisgICAgICAgIHBvcHVsYXRlR3JpZFRyYWNrTGlzdChsaXN0
LmdldCgpLCBjb2xsZWN0b3IsIHRyYWNrU2l6ZXMsIGdldFRyYWNrU2l6ZSwgYXV0b1JlcGVhdElu
c2VydGlvblBvaW50LCB0cmFja1NpemVzLnNpemUoKSwgMSk7CiAgICAgcmV0dXJuIGxpc3Q7CiB9
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdWJncmlkVmFsdWUuY3BwIGIv
U291cmNlL1dlYkNvcmUvY3NzL0NTU1N1YmdyaWRWYWx1ZS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwLi5hNDFhODc4MjBjNTMKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViQ29yZS9jc3MvQ1NTU3ViZ3JpZFZhbHVlLmNwcApAQCAtMCwwICsxLDQ4IEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDEzLCAyMDE0IElnYWxpYSwgUy5MLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoK
KyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBp
biB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2ds
ZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQg
dG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0
d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09O
VFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIg
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAor
ICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJDU1NTdWJncmlkVmFsdWUuaCIKKwor
bmFtZXNwYWNlIFdlYkNvcmUgeworCitTdHJpbmcgQ1NTU3ViZ3JpZFZhbHVlOjpjdXN0b21DU1NU
ZXh0KCkgY29uc3QKK3sKKyAgICBpZiAoIWxlbmd0aCgpKQorICAgICAgICByZXR1cm4gInN1Ymdy
aWQiOworICAgIHJldHVybiAic3ViZ3JpZCAiICsgQ1NTVmFsdWVMaXN0OjpjdXN0b21DU1NUZXh0
KCk7Cit9CisKK0NTU1N1YmdyaWRWYWx1ZTo6Q1NTU3ViZ3JpZFZhbHVlKCkKKyAgICA6IENTU1Zh
bHVlTGlzdChTdWJncmlkQ2xhc3MsIFNwYWNlU2VwYXJhdG9yKQoreworfQorCit9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU3ViZ3JpZFZhbHVlLmggYi9Tb3VyY2UvV2ViQ29y
ZS9jc3MvQ1NTU3ViZ3JpZFZhbHVlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwLi5mYWEzYzNjNjNiYTkKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9j
c3MvQ1NTU3ViZ3JpZFZhbHVlLmgKQEAgLTAsMCArMSw1MiBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAxMywgMjAxNCBJZ2FsaWEsIFMuTC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0
aW9uLgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5h
bWVzIG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJv
bW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVj
aWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFT
IElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRS
SUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAor
ICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UK
KworI2luY2x1ZGUgIkNTU1ZhbHVlTGlzdC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2Ns
YXNzIENTU1N1YmdyaWRWYWx1ZSBmaW5hbCA6IHB1YmxpYyBDU1NWYWx1ZUxpc3QgeworcHVibGlj
OgorICAgIHN0YXRpYyBSZWY8Q1NTU3ViZ3JpZFZhbHVlPiBjcmVhdGUoKQorICAgIHsKKyAgICAg
ICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgQ1NTU3ViZ3JpZFZhbHVlKTsKKyAgICB9CisKKyAgICBT
dHJpbmcgY3VzdG9tQ1NTVGV4dCgpIGNvbnN0OworCitwcml2YXRlOgorICAgIENTU1N1YmdyaWRW
YWx1ZSgpOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCitTUEVDSUFMSVpFX1RZUEVf
VFJBSVRTX0NTU19WQUxVRShDU1NTdWJncmlkVmFsdWUsIGlzU3ViZ3JpZFZhbHVlKCkpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVlLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9DU1NWYWx1ZS5jcHAKaW5kZXggYWZkMWNlYTI3MjJiLi5jZWQxMzk0MjkxNmIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvY3NzL0NTU1ZhbHVlLmNwcApAQCAtNjksNiArNjksNyBAQAogI2luY2x1ZGUgIkNTU0dyaWRJ
bnRlZ2VyUmVwZWF0VmFsdWUuaCIKICNpbmNsdWRlICJDU1NHcmlkTGluZU5hbWVzVmFsdWUuaCIK
ICNpbmNsdWRlICJDU1NHcmlkVGVtcGxhdGVBcmVhc1ZhbHVlLmgiCisjaW5jbHVkZSAiQ1NTU3Vi
Z3JpZFZhbHVlLmgiCiAKICNpbmNsdWRlICJEZXByZWNhdGVkQ1NTT01QcmltaXRpdmVWYWx1ZS5o
IgogI2luY2x1ZGUgIkRlcHJlY2F0ZWRDU1NPTVZhbHVlTGlzdC5oIgpAQCAtMTg0LDYgKzE4NSw4
IEBAIGJvb2wgQ1NTVmFsdWU6OmVxdWFscyhjb25zdCBDU1NWYWx1ZSYgb3RoZXIpIGNvbnN0CiAg
ICAgICAgICAgICByZXR1cm4gY29tcGFyZUNTU1ZhbHVlczxDU1NHcmlkSW50ZWdlclJlcGVhdFZh
bHVlPigqdGhpcywgb3RoZXIpOwogICAgICAgICBjYXNlIEdyaWRMaW5lTmFtZXNDbGFzczoKICAg
ICAgICAgICAgIHJldHVybiBjb21wYXJlQ1NTVmFsdWVzPENTU0dyaWRMaW5lTmFtZXNWYWx1ZT4o
KnRoaXMsIG90aGVyKTsKKyAgICAgICAgY2FzZSBTdWJncmlkQ2xhc3M6CisgICAgICAgICAgICBy
ZXR1cm4gY29tcGFyZUNTU1ZhbHVlczxDU1NTdWJncmlkVmFsdWU+KCp0aGlzLCBvdGhlcik7CiAg
ICAgICAgIGNhc2UgR3JpZFRlbXBsYXRlQXJlYXNDbGFzczoKICAgICAgICAgICAgIHJldHVybiBj
b21wYXJlQ1NTVmFsdWVzPENTU0dyaWRUZW1wbGF0ZUFyZWFzVmFsdWU+KCp0aGlzLCBvdGhlcik7
CiAgICAgICAgIGNhc2UgUHJpbWl0aXZlQ2xhc3M6CkBAIC0yODcsNiArMjkwLDggQEAgU3RyaW5n
IENTU1ZhbHVlOjpjc3NUZXh0KCkgY29uc3QKICAgICAgICAgcmV0dXJuIGRvd25jYXN0PENTU0dy
aWRJbnRlZ2VyUmVwZWF0VmFsdWU+KCp0aGlzKS5jdXN0b21DU1NUZXh0KCk7CiAgICAgY2FzZSBH
cmlkTGluZU5hbWVzQ2xhc3M6CiAgICAgICAgIHJldHVybiBkb3duY2FzdDxDU1NHcmlkTGluZU5h
bWVzVmFsdWU+KCp0aGlzKS5jdXN0b21DU1NUZXh0KCk7CisgICAgY2FzZSBTdWJncmlkQ2xhc3M6
CisgICAgICAgIHJldHVybiBkb3duY2FzdDxDU1NTdWJncmlkVmFsdWU+KCp0aGlzKS5jdXN0b21D
U1NUZXh0KCk7CiAgICAgY2FzZSBHcmlkVGVtcGxhdGVBcmVhc0NsYXNzOgogICAgICAgICByZXR1
cm4gZG93bmNhc3Q8Q1NTR3JpZFRlbXBsYXRlQXJlYXNWYWx1ZT4oKnRoaXMpLmN1c3RvbUNTU1Rl
eHQoKTsKICAgICBjYXNlIFByaW1pdGl2ZUNsYXNzOgpAQCAtNDEwLDYgKzQxNSw5IEBAIHZvaWQg
Q1NTVmFsdWU6OmRlc3Ryb3koKQogICAgIGNhc2UgR3JpZExpbmVOYW1lc0NsYXNzOgogICAgICAg
ICBkZWxldGUgZG93bmNhc3Q8Q1NTR3JpZExpbmVOYW1lc1ZhbHVlPih0aGlzKTsKICAgICAgICAg
cmV0dXJuOworICAgIGNhc2UgU3ViZ3JpZENsYXNzOgorICAgICAgICBkZWxldGUgZG93bmNhc3Q8
Q1NTU3ViZ3JpZFZhbHVlPih0aGlzKTsKKyAgICAgICAgcmV0dXJuOwogICAgIGNhc2UgR3JpZFRl
bXBsYXRlQXJlYXNDbGFzczoKICAgICAgICAgZGVsZXRlIGRvd25jYXN0PENTU0dyaWRUZW1wbGF0
ZUFyZWFzVmFsdWU+KHRoaXMpOwogICAgICAgICByZXR1cm47CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9jc3MvQ1NTVmFsdWUuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZS5oCmlu
ZGV4IGY1NTM4NTAyNmQ0Zi4uZTY3NzdlYjgwZTEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9jc3MvQ1NTVmFsdWUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVmFsdWUuaApAQCAt
MTM0LDYgKzEzNCw3IEBAIHB1YmxpYzoKICAgICBib29sIGlzR3JpZEludGVnZXJSZXBlYXRWYWx1
ZSgpIGNvbnN0IHsgcmV0dXJuIG1fY2xhc3NUeXBlID09IEdyaWRJbnRlZ2VyUmVwZWF0Q2xhc3M7
IH0KICAgICBib29sIGlzR3JpZFRlbXBsYXRlQXJlYXNWYWx1ZSgpIGNvbnN0IHsgcmV0dXJuIG1f
Y2xhc3NUeXBlID09IEdyaWRUZW1wbGF0ZUFyZWFzQ2xhc3M7IH0KICAgICBib29sIGlzR3JpZExp
bmVOYW1lc1ZhbHVlKCkgY29uc3QgeyByZXR1cm4gbV9jbGFzc1R5cGUgPT0gR3JpZExpbmVOYW1l
c0NsYXNzOyB9CisgICAgYm9vbCBpc1N1YmdyaWRWYWx1ZSgpIGNvbnN0IHsgcmV0dXJuIG1fY2xh
c3NUeXBlID09IFN1YmdyaWRDbGFzczsgfQogICAgIGJvb2wgaXNVbmljb2RlUmFuZ2VWYWx1ZSgp
IGNvbnN0IHsgcmV0dXJuIG1fY2xhc3NUeXBlID09IFVuaWNvZGVSYW5nZUNsYXNzOyB9CiAKICAg
ICBib29sIGlzVmFyaWFibGVSZWZlcmVuY2VWYWx1ZSgpIGNvbnN0IHsgcmV0dXJuIG1fY2xhc3NU
eXBlID09IFZhcmlhYmxlUmVmZXJlbmNlQ2xhc3M7IH0KQEAgLTIyNCw2ICsyMjUsNyBAQCBwcm90
ZWN0ZWQ6CiAgICAgICAgIEdyaWRMaW5lTmFtZXNDbGFzcywKICAgICAgICAgR3JpZEF1dG9SZXBl
YXRDbGFzcywKICAgICAgICAgR3JpZEludGVnZXJSZXBlYXRDbGFzcywKKyAgICAgICAgU3ViZ3Jp
ZENsYXNzLAogICAgICAgICAvLyBEbyBub3QgYXBwZW5kIG5vbi1saXN0IGNsYXNzIHR5cGVzIGhl
cmUuCiAgICAgfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVlS2V5
d29yZHMuaW4gYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVmFsdWVLZXl3b3Jkcy5pbgppbmRleCAy
NDJlZmY4ZTZlN2MuLmU5MjRmMmQzMzU1MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3Nz
L0NTU1ZhbHVlS2V5d29yZHMuaW4KKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVlS2V5
d29yZHMuaW4KQEAgLTE0MjAsNiArMTQyMCw3IEBAIHNwYW4KIAogLy8gZ3JpZC10ZW1wbGF0ZS17
Y29sdW1uc3xyb3dzfQogbWlubWF4CitzdWJncmlkCiAKIC8vIGdyaWQtYXV0by1mbG93CiBhdXRv
LWZsb3cKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUGFyc2VyQ29u
dGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1BhcnNlckNvbnRleHQuY3Bw
CmluZGV4IDU1ZDM2YmI1ODYxNi4uOTEzY2RhMGEyN2RkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9jc3MvcGFyc2VyL0NTU1BhcnNlckNvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9wYXJzZXIvQ1NTUGFyc2VyQ29udGV4dC5jcHAKQEAgLTExMSw2ICsxMTEsNyBAQCBDU1NQ
YXJzZXJDb250ZXh0OjpDU1NQYXJzZXJDb250ZXh0KGNvbnN0IERvY3VtZW50JiBkb2N1bWVudCwg
Y29uc3QgVVJMJiBzaGVldEJhcwogICAgICwgZ3JhZGllbnRQcmVtdWx0aXBsaWVkQWxwaGFJbnRl
cnBvbGF0aW9uRW5hYmxlZCB7IGRvY3VtZW50LnNldHRpbmdzKCkuY3NzR3JhZGllbnRQcmVtdWx0
aXBsaWVkQWxwaGFJbnRlcnBvbGF0aW9uRW5hYmxlZCgpIH0KICAgICAsIGdyYWRpZW50SW50ZXJw
b2xhdGlvbkNvbG9yU3BhY2VzRW5hYmxlZCB7IGRvY3VtZW50LnNldHRpbmdzKCkuY3NzR3JhZGll
bnRJbnRlcnBvbGF0aW9uQ29sb3JTcGFjZXNFbmFibGVkKCkgfQogICAgICwgaW5wdXRTZWN1cml0
eUVuYWJsZWQgeyBkb2N1bWVudC5zZXR0aW5ncygpLmNzc0lucHV0U2VjdXJpdHlFbmFibGVkKCkg
fQorICAgICwgc3ViZ3JpZEVuYWJsZWQgeyBkb2N1bWVudC5zZXR0aW5ncygpLnN1YmdyaWRFbmFi
bGVkKCkgfQogI2lmIEVOQUJMRShBVFRBQ0hNRU5UX0VMRU1FTlQpCiAgICAgLCBhdHRhY2htZW50
RW5hYmxlZCB7IFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNoYXJlZEZlYXR1cmVzKCkuYXR0YWNo
bWVudEVsZW1lbnRFbmFibGVkKCkgfQogI2VuZGlmCkBAIC0xNjQsNiArMTY1LDcgQEAgYm9vbCBv
cGVyYXRvcj09KGNvbnN0IENTU1BhcnNlckNvbnRleHQmIGEsIGNvbnN0IENTU1BhcnNlckNvbnRl
eHQmIGIpCiAjaWYgRU5BQkxFKEFUVEFDSE1FTlRfRUxFTUVOVCkKICAgICAgICAgJiYgYS5hdHRh
Y2htZW50RW5hYmxlZCA9PSBiLmF0dGFjaG1lbnRFbmFibGVkCiAjZW5kaWYKKyAgICAgICAgJiYg
YS5zdWJncmlkRW5hYmxlZCA9PSBiLnN1YmdyaWRFbmFibGVkCiAgICAgOwogfQogCkBAIC0yMDgs
NyArMjEwLDggQEAgdm9pZCBhZGQoSGFzaGVyJiBoYXNoZXIsIGNvbnN0IENTU1BhcnNlckNvbnRl
eHQmIGNvbnRleHQpCiAjZW5kaWYKICAgICAgICAgfCBjb250ZXh0LmFjY2VudENvbG9yRW5hYmxl
ZCAgICAgICAgICAgICAgICAgICAgICAgIDw8IDI5CiAgICAgICAgIHwgY29udGV4dC5pbnB1dFNl
Y3VyaXR5RW5hYmxlZCAgICAgICAgICAgICAgICAgICAgICA8PCAzMAotICAgICAgICB8IGNvbnRl
eHQubW9kZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPDwgMzE7IC8vIFRo
aXMgaXMgbXVsdGlwbGUgYml0cywgc28ga2VlcCBpdCBsYXN0LgorICAgICAgICB8IGNvbnRleHQu
c3ViZ3JpZEVuYWJsZWQgICAgICAgICAgICAgICAgICAgICAgICAgICAgPDwgMzEKKyAgICAgICAg
fCAodW5zaWduZWQgbG9uZyBsb25nKWNvbnRleHQubW9kZSAgICAgICAgICAgICAgICAgIDw8IDMy
OyAvLyBUaGlzIGlzIG11bHRpcGxlIGJpdHMsIHNvIGtlZXAgaXQgbGFzdC4KICAgICBhZGQoaGFz
aGVyLCBjb250ZXh0LmJhc2VVUkwsIGNvbnRleHQuY2hhcnNldCwgYml0cyk7CiB9CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUGFyc2VyQ29udGV4dC5oIGIvU291
cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQYXJzZXJDb250ZXh0LmgKaW5kZXggZDg5YjkzODZj
NTczLi5jODZlZDZjOGNmNmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIv
Q1NTUGFyc2VyQ29udGV4dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUGFy
c2VyQ29udGV4dC5oCkBAIC04OSw2ICs4OSw3IEBAIHN0cnVjdCBDU1NQYXJzZXJDb250ZXh0IHsK
ICAgICBib29sIGdyYWRpZW50UHJlbXVsdGlwbGllZEFscGhhSW50ZXJwb2xhdGlvbkVuYWJsZWQg
eyBmYWxzZSB9OwogICAgIGJvb2wgZ3JhZGllbnRJbnRlcnBvbGF0aW9uQ29sb3JTcGFjZXNFbmFi
bGVkIHsgZmFsc2UgfTsKICAgICBib29sIGlucHV0U2VjdXJpdHlFbmFibGVkIHsgZmFsc2UgfTsK
KyAgICBib29sIHN1YmdyaWRFbmFibGVkIHsgZmFsc2UgfTsKIAogICAgIC8vIFJ1bnRpbWVFbmFi
bGVkRmVhdHVyZXMuCiAjaWYgRU5BQkxFKEFUVEFDSE1FTlRfRUxFTUVOVCkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUHJvcGVydHlQYXJzZXIuY3BwIGIvU291cmNl
L1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQcm9wZXJ0eVBhcnNlci5jcHAKaW5kZXggYmZiOWI2MTE1
OTIyLi5mMjVhYThjM2RiMjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIv
Q1NTUHJvcGVydHlQYXJzZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NT
UHJvcGVydHlQYXJzZXIuY3BwCkBAIC01OSw2ICs1OSw3IEBACiAjaW5jbHVkZSAiQ1NTUmF5VmFs
dWUuaCIKICNpbmNsdWRlICJDU1NSZWZsZWN0VmFsdWUuaCIKICNpbmNsdWRlICJDU1NTaGFkb3dW
YWx1ZS5oIgorI2luY2x1ZGUgIkNTU1N1YmdyaWRWYWx1ZS5oIgogI2luY2x1ZGUgIkNTU1RpbWlu
Z0Z1bmN0aW9uVmFsdWUuaCIKICNpbmNsdWRlICJDU1NVbmljb2RlUmFuZ2VWYWx1ZS5oIgogI2lu
Y2x1ZGUgIkNTU1ZhcmlhYmxlUGFyc2VyLmgiCkBAIC0zNjA1LDcgKzM2MDYsNyBAQCBzdGF0aWMg
UmVmUHRyPENTU1ZhbHVlPiBjb25zdW1lR3JpZFRyYWNrU2l6ZShDU1NQYXJzZXJUb2tlblJhbmdl
JiByYW5nZSwgQ1NTUGFycwogfQogCiAvLyBBcHBlbmRzIHRvIHRoZSBwYXNzZWQgaW4gQ1NTR3Jp
ZExpbmVOYW1lc1ZhbHVlIGlmIGFueSwgb3RoZXJ3aXNlIGNyZWF0ZXMgYSBuZXcgb25lLiBSZXR1
cm5zIG51bGxwdHIgaWYgYW4gZW1wdHkgbGlzdCBpcyBjb25zdW1lZC4KLXN0YXRpYyBSZWZQdHI8
Q1NTR3JpZExpbmVOYW1lc1ZhbHVlPiBjb25zdW1lR3JpZExpbmVOYW1lcyhDU1NQYXJzZXJUb2tl
blJhbmdlJiByYW5nZSwgQ1NTR3JpZExpbmVOYW1lc1ZhbHVlKiBsaW5lTmFtZXMgPSBudWxscHRy
KQorc3RhdGljIFJlZlB0cjxDU1NHcmlkTGluZU5hbWVzVmFsdWU+IGNvbnN1bWVHcmlkTGluZU5h
bWVzKENTU1BhcnNlclRva2VuUmFuZ2UmIHJhbmdlLCBDU1NHcmlkTGluZU5hbWVzVmFsdWUqIGxp
bmVOYW1lcyA9IG51bGxwdHIsIGJvb2wgYWxsb3dFbXB0eSA9IGZhbHNlKQogewogICAgIENTU1Bh
cnNlclRva2VuUmFuZ2UgcmFuZ2VDb3B5ID0gcmFuZ2U7CiAgICAgaWYgKHJhbmdlQ29weS5jb25z
dW1lSW5jbHVkaW5nV2hpdGVzcGFjZSgpLnR5cGUoKSAhPSBMZWZ0QnJhY2tldFRva2VuKQpAQCAt
MzYxOSw3ICszNjIwLDcgQEAgc3RhdGljIFJlZlB0cjxDU1NHcmlkTGluZU5hbWVzVmFsdWU+IGNv
bnN1bWVHcmlkTGluZU5hbWVzKENTU1BhcnNlclRva2VuUmFuZ2UmIHIKICAgICBpZiAocmFuZ2VD
b3B5LmNvbnN1bWVJbmNsdWRpbmdXaGl0ZXNwYWNlKCkudHlwZSgpICE9IFJpZ2h0QnJhY2tldFRv
a2VuKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICByYW5nZSA9IHJhbmdlQ29weTsKLSAg
ICByZXR1cm4gcmVzdWx0LT5sZW5ndGgoKSA/IHJlc3VsdCA6IG51bGxwdHI7CisgICAgcmV0dXJu
IChyZXN1bHQtPmxlbmd0aCgpIHx8IGFsbG93RW1wdHkpID8gcmVzdWx0IDogbnVsbHB0cjsKIH0K
IAogc3RhdGljIGJvb2wgY29uc3VtZUdyaWRUcmFja1JlcGVhdEZ1bmN0aW9uKENTU1BhcnNlclRv
a2VuUmFuZ2UmIHJhbmdlLCBDU1NQYXJzZXJNb2RlIGNzc1BhcnNlck1vZGUsIENTU1ZhbHVlTGlz
dCYgbGlzdCwgYm9vbCYgaXNBdXRvUmVwZWF0LCBib29sJiBhbGxUcmFja3NBcmVGaXhlZFNpemVk
KQpAQCAtMzY3NSwxMCArMzY3Niw1OCBAQCBzdGF0aWMgYm9vbCBjb25zdW1lR3JpZFRyYWNrUmVw
ZWF0RnVuY3Rpb24oQ1NTUGFyc2VyVG9rZW5SYW5nZSYgcmFuZ2UsIENTU1BhcnNlcgogICAgIHJl
dHVybiB0cnVlOwogfQogCitzdGF0aWMgYm9vbCBjb25zdW1lR3JpZE5hbWVSZXBlYXRGdW5jdGlv
bihDU1NQYXJzZXJUb2tlblJhbmdlJiByYW5nZSwgQ1NTVmFsdWVMaXN0JiBsaXN0KQoreworICAg
IENTU1BhcnNlclRva2VuUmFuZ2UgYXJncyA9IGNvbnN1bWVGdW5jdGlvbihyYW5nZSk7CisgICAg
c2l6ZV90IHJlcGV0aXRpb25zID0gMTsKKyAgICBib29sIGlzQXV0b1JlcGVhdCA9IGlkZW50TWF0
Y2hlczxDU1NWYWx1ZUF1dG9GaWxsPihhcmdzLnBlZWsoKS5pZCgpKTsKKyAgICBSZWZQdHI8Q1NT
VmFsdWVMaXN0PiByZXBlYXRlZFZhbHVlczsKKyAgICBpZiAoaXNBdXRvUmVwZWF0KQorICAgICAg
ICByZXBlYXRlZFZhbHVlcyA9IENTU0dyaWRBdXRvUmVwZWF0VmFsdWU6OmNyZWF0ZShhcmdzLmNv
bnN1bWVJbmNsdWRpbmdXaGl0ZXNwYWNlKCkuaWQoKSk7CisgICAgZWxzZSB7CisgICAgICAgIGF1
dG8gcmVwZXRpdGlvbiA9IGNvbnN1bWVQb3NpdGl2ZUludGVnZXJSYXcoYXJncyk7CisgICAgICAg
IGlmICghcmVwZXRpdGlvbikKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgcmVw
ZXRpdGlvbnMgPSBjbGFtcFRvPHNpemVfdD4oc3RhdGljX2Nhc3Q8c2l6ZV90PigqcmVwZXRpdGlv
biksIDAsIEdyaWRQb3NpdGlvbjo6bWF4KCkpOworICAgICAgICByZXBlYXRlZFZhbHVlcyA9IENT
U0dyaWRJbnRlZ2VyUmVwZWF0VmFsdWU6OmNyZWF0ZShyZXBldGl0aW9ucyk7CisgICAgfQorICAg
IGlmICghY29uc3VtZUNvbW1hSW5jbHVkaW5nV2hpdGVzcGFjZShhcmdzKSkKKyAgICAgICAgcmV0
dXJuIGZhbHNlOworCisgICAgYXV0byBsaW5lTmFtZXMgPSBjb25zdW1lR3JpZExpbmVOYW1lcyhh
cmdzLCBudWxscHRyLCB0cnVlKTsKKyAgICBpZiAoIWxpbmVOYW1lcykKKyAgICAgICAgcmV0dXJu
IGZhbHNlOworICAgIHJlcGVhdGVkVmFsdWVzLT5hcHBlbmQobGluZU5hbWVzLnJlbGVhc2VOb25O
dWxsKCkpOworCisgICAgd2hpbGUgKCFhcmdzLmF0RW5kKCkpIHsKKyAgICAgICAgbGluZU5hbWVz
ID0gY29uc3VtZUdyaWRMaW5lTmFtZXMoYXJncywgbnVsbHB0ciwgdHJ1ZSk7CisgICAgICAgIGlm
ICghbGluZU5hbWVzKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICByZXBlYXRl
ZFZhbHVlcy0+YXBwZW5kKGxpbmVOYW1lcy5yZWxlYXNlTm9uTnVsbCgpKTsKKyAgICB9CisKKyAg
ICBsaXN0LmFwcGVuZChyZXBlYXRlZFZhbHVlcy5yZWxlYXNlTm9uTnVsbCgpKTsKKyAgICByZXR1
cm4gdHJ1ZTsKK30KKwogZW51bSBUcmFja0xpc3RUeXBlIHsgR3JpZFRlbXBsYXRlLCBHcmlkVGVt
cGxhdGVOb1JlcGVhdCwgR3JpZEF1dG8gfTsKIAotc3RhdGljIFJlZlB0cjxDU1NWYWx1ZT4gY29u
c3VtZUdyaWRUcmFja0xpc3QoQ1NTUGFyc2VyVG9rZW5SYW5nZSYgcmFuZ2UsIENTU1BhcnNlck1v
ZGUgY3NzUGFyc2VyTW9kZSwgVHJhY2tMaXN0VHlwZSB0cmFja0xpc3RUeXBlKQorc3RhdGljIFJl
ZlB0cjxDU1NWYWx1ZT4gY29uc3VtZUdyaWRUcmFja0xpc3QoQ1NTUGFyc2VyVG9rZW5SYW5nZSYg
cmFuZ2UsIGNvbnN0IENTU1BhcnNlckNvbnRleHQmIGNvbnRleHQsIFRyYWNrTGlzdFR5cGUgdHJh
Y2tMaXN0VHlwZSkKIHsKKyAgICBpZiAodHJhY2tMaXN0VHlwZSA9PSBHcmlkVGVtcGxhdGUgJiYg
Y29udGV4dC5zdWJncmlkRW5hYmxlZCAmJiByYW5nZS5wZWVrKCkuaWQoKSA9PSBDU1NWYWx1ZVN1
YmdyaWQpIHsKKyAgICAgICAgY29uc3VtZUlkZW50KHJhbmdlKTsKKyAgICAgICAgYXV0byB2YWx1
ZXMgPSBDU1NTdWJncmlkVmFsdWU6OmNyZWF0ZSgpOworICAgICAgICB3aGlsZSAoIXJhbmdlLmF0
RW5kKCkgJiYgcmFuZ2UucGVlaygpLnR5cGUoKSAhPSBEZWxpbWl0ZXJUb2tlbikgeworICAgICAg
ICAgICAgaWYgKHJhbmdlLnBlZWsoKS5mdW5jdGlvbklkKCkgPT0gQ1NTVmFsdWVSZXBlYXQpIHsK
KyAgICAgICAgICAgICAgICBpZiAoIWNvbnN1bWVHcmlkTmFtZVJlcGVhdEZ1bmN0aW9uKHJhbmdl
LCB2YWx1ZXMpKQorICAgICAgICAgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICAgICAg
ICAgIH0gZWxzZSBpZiAoYXV0byB2YWx1ZSA9IGNvbnN1bWVHcmlkTGluZU5hbWVzKHJhbmdlLCBu
dWxscHRyLCB0cnVlKSkKKyAgICAgICAgICAgICAgICB2YWx1ZXMtPmFwcGVuZCh2YWx1ZS5yZWxl
YXNlTm9uTnVsbCgpKTsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICByZXR1cm4g
bnVsbHB0cjsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gdmFsdWVzOworICAgIH0KICAgICBi
b29sIGFsbG93R3JpZExpbmVOYW1lcyA9IHRyYWNrTGlzdFR5cGUgIT0gR3JpZEF1dG87CiAgICAg
UmVmUHRyPENTU1ZhbHVlTGlzdD4gdmFsdWVzID0gQ1NTVmFsdWVMaXN0OjpjcmVhdGVTcGFjZVNl
cGFyYXRlZCgpOwogICAgIGlmICghYWxsb3dHcmlkTGluZU5hbWVzICYmIHJhbmdlLnBlZWsoKS50
eXBlKCkgPT0gTGVmdEJyYWNrZXRUb2tlbikKQEAgLTM2OTUsMTIgKzM3NDQsMTIgQEAgc3RhdGlj
IFJlZlB0cjxDU1NWYWx1ZT4gY29uc3VtZUdyaWRUcmFja0xpc3QoQ1NTUGFyc2VyVG9rZW5SYW5n
ZSYgcmFuZ2UsIENTU1BhcnMKICAgICAgICAgaWYgKHJhbmdlLnBlZWsoKS5mdW5jdGlvbklkKCkg
PT0gQ1NTVmFsdWVSZXBlYXQpIHsKICAgICAgICAgICAgIGlmICghYWxsb3dSZXBlYXQpCiAgICAg
ICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0gICAgICAgICAgICBpZiAoIWNvbnN1bWVHcmlk
VHJhY2tSZXBlYXRGdW5jdGlvbihyYW5nZSwgY3NzUGFyc2VyTW9kZSwgKnZhbHVlcywgaXNBdXRv
UmVwZWF0LCBhbGxUcmFja3NBcmVGaXhlZFNpemVkKSkKKyAgICAgICAgICAgIGlmICghY29uc3Vt
ZUdyaWRUcmFja1JlcGVhdEZ1bmN0aW9uKHJhbmdlLCBjb250ZXh0Lm1vZGUsICp2YWx1ZXMsIGlz
QXV0b1JlcGVhdCwgYWxsVHJhY2tzQXJlRml4ZWRTaXplZCkpCiAgICAgICAgICAgICAgICAgcmV0
dXJuIG51bGxwdHI7CiAgICAgICAgICAgICBpZiAoaXNBdXRvUmVwZWF0ICYmIHNlZW5BdXRvUmVw
ZWF0KQogICAgICAgICAgICAgICAgIHJldHVybiBudWxscHRyOwogICAgICAgICAgICAgc2VlbkF1
dG9SZXBlYXQgPSBzZWVuQXV0b1JlcGVhdCB8fCBpc0F1dG9SZXBlYXQ7Ci0gICAgICAgIH0gZWxz
ZSBpZiAoUmVmUHRyPENTU1ZhbHVlPiB2YWx1ZSA9IGNvbnN1bWVHcmlkVHJhY2tTaXplKHJhbmdl
LCBjc3NQYXJzZXJNb2RlKSkgeworICAgICAgICB9IGVsc2UgaWYgKFJlZlB0cjxDU1NWYWx1ZT4g
dmFsdWUgPSBjb25zdW1lR3JpZFRyYWNrU2l6ZShyYW5nZSwgY29udGV4dC5tb2RlKSkgewogICAg
ICAgICAgICAgaWYgKGFsbFRyYWNrc0FyZUZpeGVkU2l6ZWQpCiAgICAgICAgICAgICAgICAgYWxs
VHJhY2tzQXJlRml4ZWRTaXplZCA9IGlzR3JpZFRyYWNrRml4ZWRTaXplZCgqdmFsdWUpOwogICAg
ICAgICAgICAgdmFsdWVzLT5hcHBlbmQodmFsdWUucmVsZWFzZU5vbk51bGwoKSk7CkBAIC0zNzE4
LDExICszNzY3LDExIEBAIHN0YXRpYyBSZWZQdHI8Q1NTVmFsdWU+IGNvbnN1bWVHcmlkVHJhY2tM
aXN0KENTU1BhcnNlclRva2VuUmFuZ2UmIHJhbmdlLCBDU1NQYXJzCiAgICAgcmV0dXJuIHZhbHVl
czsKIH0KIAotc3RhdGljIFJlZlB0cjxDU1NWYWx1ZT4gY29uc3VtZUdyaWRUZW1wbGF0ZXNSb3dz
T3JDb2x1bW5zKENTU1BhcnNlclRva2VuUmFuZ2UmIHJhbmdlLCBDU1NQYXJzZXJNb2RlIGNzc1Bh
cnNlck1vZGUpCitzdGF0aWMgUmVmUHRyPENTU1ZhbHVlPiBjb25zdW1lR3JpZFRlbXBsYXRlc1Jv
d3NPckNvbHVtbnMoQ1NTUGFyc2VyVG9rZW5SYW5nZSYgcmFuZ2UsIGNvbnN0IENTU1BhcnNlckNv
bnRleHQmIGNvbnRleHQpCiB7CiAgICAgaWYgKHJhbmdlLnBlZWsoKS5pZCgpID09IENTU1ZhbHVl
Tm9uZSkKICAgICAgICAgcmV0dXJuIGNvbnN1bWVJZGVudChyYW5nZSk7Ci0gICAgcmV0dXJuIGNv
bnN1bWVHcmlkVHJhY2tMaXN0KHJhbmdlLCBjc3NQYXJzZXJNb2RlLCBHcmlkVGVtcGxhdGUpOwor
ICAgIHJldHVybiBjb25zdW1lR3JpZFRyYWNrTGlzdChyYW5nZSwgY29udGV4dCwgR3JpZFRlbXBs
YXRlKTsKIH0KIAogc3RhdGljIFJlZlB0cjxDU1NWYWx1ZT4gY29uc3VtZUdyaWRUZW1wbGF0ZUFy
ZWFzKENTU1BhcnNlclRva2VuUmFuZ2UmIHJhbmdlKQpAQCAtNDYyOSwxMCArNDY3OCwxMCBAQCBS
ZWZQdHI8Q1NTVmFsdWU+IENTU1Byb3BlcnR5UGFyc2VyOjpwYXJzZVNpbmdsZVZhbHVlKENTU1By
b3BlcnR5SUQgcHJvcGVydHksIENTUwogICAgICAgICByZXR1cm4gY29uc3VtZUdyaWRMaW5lKG1f
cmFuZ2UpOwogICAgIGNhc2UgQ1NTUHJvcGVydHlHcmlkQXV0b0NvbHVtbnM6CiAgICAgY2FzZSBD
U1NQcm9wZXJ0eUdyaWRBdXRvUm93czoKLSAgICAgICAgcmV0dXJuIGNvbnN1bWVHcmlkVHJhY2tM
aXN0KG1fcmFuZ2UsIG1fY29udGV4dC5tb2RlLCBHcmlkQXV0byk7CisgICAgICAgIHJldHVybiBj
b25zdW1lR3JpZFRyYWNrTGlzdChtX3JhbmdlLCBtX2NvbnRleHQsIEdyaWRBdXRvKTsKICAgICBj
YXNlIENTU1Byb3BlcnR5R3JpZFRlbXBsYXRlQ29sdW1uczoKICAgICBjYXNlIENTU1Byb3BlcnR5
R3JpZFRlbXBsYXRlUm93czoKLSAgICAgICAgcmV0dXJuIGNvbnN1bWVHcmlkVGVtcGxhdGVzUm93
c09yQ29sdW1ucyhtX3JhbmdlLCBtX2NvbnRleHQubW9kZSk7CisgICAgICAgIHJldHVybiBjb25z
dW1lR3JpZFRlbXBsYXRlc1Jvd3NPckNvbHVtbnMobV9yYW5nZSwgbV9jb250ZXh0KTsKICAgICBj
YXNlIENTU1Byb3BlcnR5R3JpZFRlbXBsYXRlQXJlYXM6CiAgICAgICAgIHJldHVybiBjb25zdW1l
R3JpZFRlbXBsYXRlQXJlYXMobV9yYW5nZSk7CiAgICAgY2FzZSBDU1NQcm9wZXJ0eUdyaWRBdXRv
RmxvdzoKQEAgLTU4NzksNyArNTkyOCw3IEBAIGJvb2wgQ1NTUHJvcGVydHlQYXJzZXI6OmNvbnN1
bWVHcmlkVGVtcGxhdGVSb3dzQW5kQXJlYXNBbmRDb2x1bW5zKENTU1Byb3BlcnR5SUQKICAgICBp
ZiAoIW1fcmFuZ2UuYXRFbmQoKSkgewogICAgICAgICBpZiAoIWNvbnN1bWVTbGFzaEluY2x1ZGlu
Z1doaXRlc3BhY2UobV9yYW5nZSkpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAg
IGNvbHVtbnNWYWx1ZSA9IGNvbnN1bWVHcmlkVHJhY2tMaXN0KG1fcmFuZ2UsIG1fY29udGV4dC5t
b2RlLCBHcmlkVGVtcGxhdGVOb1JlcGVhdCk7CisgICAgICAgIGNvbHVtbnNWYWx1ZSA9IGNvbnN1
bWVHcmlkVHJhY2tMaXN0KG1fcmFuZ2UsIG1fY29udGV4dCwgR3JpZFRlbXBsYXRlTm9SZXBlYXQp
OwogICAgICAgICBpZiAoIWNvbHVtbnNWYWx1ZSB8fCAhbV9yYW5nZS5hdEVuZCgpKQogICAgICAg
ICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0gZWxzZSB7CkBAIC01OTA2LDEyICs1OTU1LDEyIEBA
IGJvb2wgQ1NTUHJvcGVydHlQYXJzZXI6OmNvbnN1bWVHcmlkVGVtcGxhdGVTaG9ydGhhbmQoQ1NT
UHJvcGVydHlJRCBzaG9ydGhhbmRJZCwKIAogICAgIC8vIDItIDxncmlkLXRlbXBsYXRlLXJvd3M+
IC8gPGdyaWQtdGVtcGxhdGUtY29sdW1ucz4KICAgICBpZiAoIXJvd3NWYWx1ZSkKLSAgICAgICAg
cm93c1ZhbHVlID0gY29uc3VtZUdyaWRUcmFja0xpc3QobV9yYW5nZSwgbV9jb250ZXh0Lm1vZGUs
IEdyaWRUZW1wbGF0ZSk7CisgICAgICAgIHJvd3NWYWx1ZSA9IGNvbnN1bWVHcmlkVHJhY2tMaXN0
KG1fcmFuZ2UsIG1fY29udGV4dCwgR3JpZFRlbXBsYXRlKTsKIAogICAgIGlmIChyb3dzVmFsdWUp
IHsKICAgICAgICAgaWYgKCFjb25zdW1lU2xhc2hJbmNsdWRpbmdXaGl0ZXNwYWNlKG1fcmFuZ2Up
KQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICBSZWZQdHI8Q1NTVmFsdWU+IGNv
bHVtbnNWYWx1ZSA9IGNvbnN1bWVHcmlkVGVtcGxhdGVzUm93c09yQ29sdW1ucyhtX3JhbmdlLCBt
X2NvbnRleHQubW9kZSk7CisgICAgICAgIFJlZlB0cjxDU1NWYWx1ZT4gY29sdW1uc1ZhbHVlID0g
Y29uc3VtZUdyaWRUZW1wbGF0ZXNSb3dzT3JDb2x1bW5zKG1fcmFuZ2UsIG1fY29udGV4dCk7CiAg
ICAgICAgIGlmICghY29sdW1uc1ZhbHVlIHx8ICFtX3JhbmdlLmF0RW5kKCkpCiAgICAgICAgICAg
ICByZXR1cm4gZmFsc2U7CiAKQEAgLTU5ODUsNyArNjAzNCw3IEBAIGJvb2wgQ1NTUHJvcGVydHlQ
YXJzZXI6OmNvbnN1bWVHcmlkU2hvcnRoYW5kKGJvb2wgaW1wb3J0YW50KQogICAgICAgICBpZiAo
Y29uc3VtZVNsYXNoSW5jbHVkaW5nV2hpdGVzcGFjZShtX3JhbmdlKSkKICAgICAgICAgICAgIGF1
dG9Sb3dzVmFsdWUgPSBDU1NWYWx1ZVBvb2w6OnNpbmdsZXRvbigpLmNyZWF0ZUlkZW50aWZpZXJW
YWx1ZShDU1NWYWx1ZUF1dG8pOwogICAgICAgICBlbHNlIHsKLSAgICAgICAgICAgIGF1dG9Sb3dz
VmFsdWUgPSBjb25zdW1lR3JpZFRyYWNrTGlzdChtX3JhbmdlLCBtX2NvbnRleHQubW9kZSwgR3Jp
ZEF1dG8pOworICAgICAgICAgICAgYXV0b1Jvd3NWYWx1ZSA9IGNvbnN1bWVHcmlkVHJhY2tMaXN0
KG1fcmFuZ2UsIG1fY29udGV4dCwgR3JpZEF1dG8pOwogICAgICAgICAgICAgaWYgKCFhdXRvUm93
c1ZhbHVlKQogICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgICAgIGlmICgh
Y29uc3VtZVNsYXNoSW5jbHVkaW5nV2hpdGVzcGFjZShtX3JhbmdlKSkKQEAgLTU5OTMsNyArNjA0
Miw3IEBAIGJvb2wgQ1NTUHJvcGVydHlQYXJzZXI6OmNvbnN1bWVHcmlkU2hvcnRoYW5kKGJvb2wg
aW1wb3J0YW50KQogICAgICAgICB9CiAgICAgICAgIGlmIChtX3JhbmdlLmF0RW5kKCkpCiAgICAg
ICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgIHRlbXBsYXRlQ29sdW1ucyA9IGNvbnN1bWVH
cmlkVGVtcGxhdGVzUm93c09yQ29sdW1ucyhtX3JhbmdlLCBtX2NvbnRleHQubW9kZSk7CisgICAg
ICAgIHRlbXBsYXRlQ29sdW1ucyA9IGNvbnN1bWVHcmlkVGVtcGxhdGVzUm93c09yQ29sdW1ucyht
X3JhbmdlLCBtX2NvbnRleHQpOwogICAgICAgICBpZiAoIXRlbXBsYXRlQ29sdW1ucykKICAgICAg
ICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgdGVtcGxhdGVSb3dzID0gQ1NTVmFsdWVQb29s
OjpzaW5nbGV0b24oKS5jcmVhdGVJZGVudGlmaWVyVmFsdWUoQ1NTVmFsdWVOb25lKTsKQEAgLTYw
MTEsNyArNjA2MCw3IEBAIGJvb2wgQ1NTUHJvcGVydHlQYXJzZXI6OmNvbnN1bWVHcmlkU2hvcnRo
YW5kKGJvb2wgaW1wb3J0YW50KQogICAgICAgICBpZiAobV9yYW5nZS5hdEVuZCgpKQogICAgICAg
ICAgICAgYXV0b0NvbHVtbnNWYWx1ZSA9IENTU1ZhbHVlUG9vbDo6c2luZ2xldG9uKCkuY3JlYXRl
SWRlbnRpZmllclZhbHVlKENTU1ZhbHVlQXV0byk7CiAgICAgICAgIGVsc2UgewotICAgICAgICAg
ICAgYXV0b0NvbHVtbnNWYWx1ZSA9IGNvbnN1bWVHcmlkVHJhY2tMaXN0KG1fcmFuZ2UsIG1fY29u
dGV4dC5tb2RlLCBHcmlkQXV0byk7CisgICAgICAgICAgICBhdXRvQ29sdW1uc1ZhbHVlID0gY29u
c3VtZUdyaWRUcmFja0xpc3QobV9yYW5nZSwgbV9jb250ZXh0LCBHcmlkQXV0byk7CiAgICAgICAg
ICAgICBpZiAoIWF1dG9Db2x1bW5zVmFsdWUpCiAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNl
OwogICAgICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvR3JpZC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvR3JpZC5jcHAKaW5kZXggNTYwMmQ3YzJkNGQ1
Li4zN2NhOTNmMDNhNzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9Hcmlk
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvR3JpZC5jcHAKQEAgLTYxLDE3ICs2
MSwyNCBAQCB2b2lkIEdyaWQ6OmVuc3VyZUdyaWRTaXplKHVuc2lnbmVkIG1heGltdW1Sb3dTaXpl
LCB1bnNpZ25lZCBtYXhpbXVtQ29sdW1uU2l6ZSkKICAgICB9CiB9CiAKLXZvaWQgR3JpZDo6aW5z
ZXJ0KFJlbmRlckJveCYgY2hpbGQsIGNvbnN0IEdyaWRBcmVhJiBhcmVhKQorR3JpZEFyZWEgR3Jp
ZDo6aW5zZXJ0KFJlbmRlckJveCYgY2hpbGQsIGNvbnN0IEdyaWRBcmVhJiBhcmVhKQogewotICAg
IEFTU0VSVChhcmVhLnJvd3MuaXNUcmFuc2xhdGVkRGVmaW5pdGUoKSAmJiBhcmVhLmNvbHVtbnMu
aXNUcmFuc2xhdGVkRGVmaW5pdGUoKSk7Ci0gICAgZW5zdXJlR3JpZFNpemUoYXJlYS5yb3dzLmVu
ZExpbmUoKSwgYXJlYS5jb2x1bW5zLmVuZExpbmUoKSk7CisgICAgR3JpZEFyZWEgY2xhbXBlZCA9
IGFyZWE7CisgICAgaWYgKG1fbWF4Um93cykKKyAgICAgICAgY2xhbXBlZC5yb3dzLmNsYW1wKG1f
bWF4Um93cyk7CisgICAgaWYgKG1fbWF4Q29sdW1ucykKKyAgICAgICAgY2xhbXBlZC5jb2x1bW5z
LmNsYW1wKG1fbWF4Q29sdW1ucyk7CiAKLSAgICBmb3IgKGF1dG8gcm93IDogYXJlYS5yb3dzKSB7
Ci0gICAgICAgIGZvciAoYXV0byBjb2x1bW4gOiBhcmVhLmNvbHVtbnMpCisgICAgQVNTRVJUKGNs
YW1wZWQucm93cy5pc1RyYW5zbGF0ZWREZWZpbml0ZSgpICYmIGNsYW1wZWQuY29sdW1ucy5pc1Ry
YW5zbGF0ZWREZWZpbml0ZSgpKTsKKyAgICBlbnN1cmVHcmlkU2l6ZShjbGFtcGVkLnJvd3MuZW5k
TGluZSgpLCBjbGFtcGVkLmNvbHVtbnMuZW5kTGluZSgpKTsKKworICAgIGZvciAoYXV0byByb3cg
OiBjbGFtcGVkLnJvd3MpIHsKKyAgICAgICAgZm9yIChhdXRvIGNvbHVtbiA6IGNsYW1wZWQuY29s
dW1ucykKICAgICAgICAgICAgIG1fZ3JpZFtyb3ddW2NvbHVtbl0uYXBwZW5kKGNoaWxkKTsKICAg
ICB9CiAKLSAgICBzZXRHcmlkSXRlbUFyZWEoY2hpbGQsIGFyZWEpOworICAgIHNldEdyaWRJdGVt
QXJlYShjaGlsZCwgY2xhbXBlZCk7CisgICAgcmV0dXJuIGNsYW1wZWQ7CiB9CiAKIHZvaWQgR3Jp
ZDo6c2V0RXhwbGljaXRHcmlkU3RhcnQodW5zaWduZWQgcm93U3RhcnQsIHVuc2lnbmVkIGNvbHVt
blN0YXJ0KQpAQCAtODUsNiArOTIsMjYgQEAgdW5zaWduZWQgR3JpZDo6ZXhwbGljaXRHcmlkU3Rh
cnQoR3JpZFRyYWNrU2l6aW5nRGlyZWN0aW9uIGRpcmVjdGlvbikgY29uc3QKICAgICByZXR1cm4g
ZGlyZWN0aW9uID09IEZvclJvd3MgPyBtX2V4cGxpY2l0Um93U3RhcnQgOiBtX2V4cGxpY2l0Q29s
dW1uU3RhcnQ7CiB9CiAKK3ZvaWQgR3JpZDo6c2V0Q2xhbXBpbmdGb3JTdWJncmlkKHVuc2lnbmVk
IG1heFJvd3MsIHVuc2lnbmVkIG1heENvbHVtbnMpCit7CisgICAgbV9tYXhSb3dzID0gbWF4Um93
czsKKyAgICBtX21heENvbHVtbnMgPSBtYXhDb2x1bW5zOworfQorCit2b2lkIEdyaWQ6OmNsYW1w
QW5kVHJhbnNsYXRlVG9JbXBsaWNpdEdyaWQoR3JpZEFyZWEmIGFyZWEpCit7CisgICAgaWYgKCFh
cmVhLnJvd3MuaXNJbmRlZmluaXRlKCkpIHsKKyAgICAgICAgaWYgKG1fbWF4Um93cykKKyAgICAg
ICAgICAgIGFyZWEucm93cy5jbGFtcChtX21heFJvd3MpOworICAgICAgICBhcmVhLnJvd3MudHJh
bnNsYXRlKGV4cGxpY2l0R3JpZFN0YXJ0KEZvclJvd3MpKTsKKyAgICB9CisgICAgaWYgKCFhcmVh
LmNvbHVtbnMuaXNJbmRlZmluaXRlKCkpIHsKKyAgICAgICAgaWYgKG1fbWF4Q29sdW1ucykKKyAg
ICAgICAgICAgIGFyZWEuY29sdW1ucy5jbGFtcChtX21heENvbHVtbnMpOworICAgICAgICBhcmVh
LmNvbHVtbnMudHJhbnNsYXRlKGV4cGxpY2l0R3JpZFN0YXJ0KEZvckNvbHVtbnMpKTsKKyAgICB9
Cit9CisKIEdyaWRBcmVhIEdyaWQ6OmdyaWRJdGVtQXJlYShjb25zdCBSZW5kZXJCb3gmIGl0ZW0p
IGNvbnN0CiB7CiAgICAgQVNTRVJUKG1fZ3JpZEl0ZW1BcmVhLmNvbnRhaW5zKCZpdGVtKSk7CkBA
IC0xNjEsNiArMTg4LDggQEAgdm9pZCBHcmlkOjpzZXROZWVkc0l0ZW1zUGxhY2VtZW50KGJvb2wg
bmVlZHNJdGVtc1BsYWNlbWVudCkKICAgICBtX2F1dG9SZXBlYXRFbXB0eVJvd3MgPSBudWxscHRy
OwogICAgIG1fYXV0b1JlcGVhdENvbHVtbnMgPSAwOwogICAgIG1fYXV0b1JlcGVhdFJvd3MgPSAw
OworICAgIG1fbWF4Q29sdW1ucyA9IDA7CisgICAgbV9tYXhSb3dzID0gMDsKIH0KIAogR3JpZEl0
ZXJhdG9yOjpHcmlkSXRlcmF0b3IoY29uc3QgR3JpZCYgZ3JpZCwgR3JpZFRyYWNrU2l6aW5nRGly
ZWN0aW9uIGRpcmVjdGlvbiwgdW5zaWduZWQgZml4ZWRUcmFja0luZGV4LCB1bnNpZ25lZCB2YXJ5
aW5nVHJhY2tJbmRleCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9Hcmlk
LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvR3JpZC5oCmluZGV4IDcyY2FkZjY4ZWY0ZC4u
MTFkOWU2OGZiODE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvR3JpZC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9HcmlkLmgKQEAgLTQ4LDcgKzQ4LDcgQEAg
cHVibGljOgogICAgIHVuc2lnbmVkIG51bVRyYWNrcyhHcmlkVHJhY2tTaXppbmdEaXJlY3Rpb24p
IGNvbnN0OwogCiAgICAgdm9pZCBlbnN1cmVHcmlkU2l6ZSh1bnNpZ25lZCBtYXhpbXVtUm93U2l6
ZSwgdW5zaWduZWQgbWF4aW11bUNvbHVtblNpemUpOwotICAgIHZvaWQgaW5zZXJ0KFJlbmRlckJv
eCYsIGNvbnN0IEdyaWRBcmVhJik7CisgICAgR3JpZEFyZWEgaW5zZXJ0KFJlbmRlckJveCYsIGNv
bnN0IEdyaWRBcmVhJik7CiAKICAgICAvLyBOb3RlIHRoYXQgZWFjaCBpbiBmbG93IGNoaWxkIG9m
IGEgZ3JpZCBjb250YWluZXIgYmVjb21lcyBhIGdyaWQgaXRlbS4gVGhpcyBtZWFucyB0aGF0CiAg
ICAgLy8gdGhpcyBtZXRob2Qgd2lsbCByZXR1cm4gZmFsc2UgZm9yIGEgZ3JpZCBjb250YWluZXIg
d2l0aCBvbmx5IG91dCBvZiBmbG93IGNoaWxkcmVuLgpAQCAtNjcsNiArNjcsMTAgQEAgcHVibGlj
OgogICAgIHVuc2lnbmVkIGF1dG9SZXBlYXRUcmFja3MoR3JpZFRyYWNrU2l6aW5nRGlyZWN0aW9u
KSBjb25zdDsKICAgICB2b2lkIHNldEF1dG9SZXBlYXRUcmFja3ModW5zaWduZWQgYXV0b1JlcGVh
dFJvd3MsIHVuc2lnbmVkIGF1dG9SZXBlYXRDb2x1bW5zKTsKIAorICAgIHZvaWQgc2V0Q2xhbXBp
bmdGb3JTdWJncmlkKHVuc2lnbmVkIG1heFJvd3MsIHVuc2lnbmVkIG1heENvbHVtbnMpOworCisg
ICAgdm9pZCBjbGFtcEFuZFRyYW5zbGF0ZVRvSW1wbGljaXRHcmlkKEdyaWRBcmVhJik7CisKICAg
ICB2b2lkIHNldEF1dG9SZXBlYXRFbXB0eUNvbHVtbnMoc3RkOjp1bmlxdWVfcHRyPE9yZGVyZWRU
cmFja0luZGV4U2V0Pik7CiAgICAgdm9pZCBzZXRBdXRvUmVwZWF0RW1wdHlSb3dzKHN0ZDo6dW5p
cXVlX3B0cjxPcmRlcmVkVHJhY2tJbmRleFNldD4pOwogCkBAIC05Miw2ICs5Niw5IEBAIHByaXZh
dGU6CiAgICAgdW5zaWduZWQgbV9hdXRvUmVwZWF0Q29sdW1ucyB7IDAgfTsKICAgICB1bnNpZ25l
ZCBtX2F1dG9SZXBlYXRSb3dzIHsgMCB9OwogCisgICAgdW5zaWduZWQgbV9tYXhDb2x1bW5zIHsg
MCB9OworICAgIHVuc2lnbmVkIG1fbWF4Um93cyB7IDAgfTsKKwogICAgIGJvb2wgbV9uZWVkc0l0
ZW1zUGxhY2VtZW50IHsgdHJ1ZSB9OwogCiAgICAgR3JpZEFzTWF0cml4IG1fZ3JpZDsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJHcmlkLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJHcmlkLmNwcAppbmRleCAyNmY4ZmNiYzBhYjIuLjkxNmU2
N2Q0MWQ4MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckdyaWQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJHcmlkLmNwcApAQCAtNDMw
LDggKzQzMCw3IEBAIHZvaWQgUmVuZGVyR3JpZDo6Y29tcHV0ZUludHJpbnNpY0xvZ2ljYWxXaWR0
aHMoTGF5b3V0VW5pdCYgbWluTG9naWNhbFdpZHRoLCBMYXlvCiAgICAgTGF5b3V0VW5pdCBjaGls
ZE1heFdpZHRoOwogICAgIGJvb2wgaGFkRXhjbHVkZWRDaGlsZHJlbiA9IGNvbXB1dGVQcmVmZXJy
ZWRXaWR0aHNGb3JFeGNsdWRlZENoaWxkcmVuKGNoaWxkTWluV2lkdGgsIGNoaWxkTWF4V2lkdGgp
OwogCi0gICAgR3JpZCBncmlkKGNvbnN0X2Nhc3Q8UmVuZGVyR3JpZCY+KCp0aGlzKSk7Ci0gICAg
R3JpZFRyYWNrU2l6aW5nQWxnb3JpdGhtIGFsZ29yaXRobSh0aGlzLCBncmlkKTsKKyAgICBHcmlk
VHJhY2tTaXppbmdBbGdvcml0aG0gYWxnb3JpdGhtKHRoaXMsIGNvbnN0X2Nhc3Q8R3JpZCY+KG1f
Z3JpZCkpOwogICAgIHBsYWNlSXRlbXNPbkdyaWQoYWxnb3JpdGhtLCBzdGQ6Om51bGxvcHQpOwog
CiAgICAgcGVyZm9ybUdyaWRJdGVtc1ByZUxheW91dChhbGdvcml0aG0pOwpAQCAtNDgwLDYgKzQ3
OSw5IEBAIHVuc2lnbmVkIFJlbmRlckdyaWQ6OmNvbXB1dGVBdXRvUmVwZWF0VHJhY2tzQ291bnQo
R3JpZFRyYWNrU2l6aW5nRGlyZWN0aW9uIGRpcmVjCiB7CiAgICAgQVNTRVJUKCFhdmFpbGFibGVT
aXplIHx8IGF2YWlsYWJsZVNpemUudmFsdWUoKSAhPSAtMSk7CiAgICAgYm9vbCBpc1Jvd0F4aXMg
PSBkaXJlY3Rpb24gPT0gRm9yQ29sdW1uczsKKyAgICBpZiAoaXNSb3dBeGlzID8gaXNTdWJncmlk
Q29sdW1ucygpIDogaXNTdWJncmlkUm93cygpKSB7CisgICAgICAgIHJldHVybiAwOworICAgIH0K
ICAgICBjb25zdCBhdXRvJiBhdXRvUmVwZWF0VHJhY2tzID0gaXNSb3dBeGlzID8gc3R5bGUoKS5n
cmlkQXV0b1JlcGVhdENvbHVtbnMoKSA6IHN0eWxlKCkuZ3JpZEF1dG9SZXBlYXRSb3dzKCk7CiAg
ICAgdW5zaWduZWQgYXV0b1JlcGVhdFRyYWNrTGlzdExlbmd0aCA9IGF1dG9SZXBlYXRUcmFja3Mu
c2l6ZSgpOwogCkBAIC02MjUsNyArNjI3LDYgQEAgdm9pZCBSZW5kZXJHcmlkOjpwbGFjZUl0ZW1z
T25HcmlkKEdyaWRUcmFja1NpemluZ0FsZ29yaXRobSYgYWxnb3JpdGhtLCBzdGQ6Om9wdGkKICAg
ICBHcmlkJiBncmlkID0gYWxnb3JpdGhtLm11dGFibGVHcmlkKCk7CiAgICAgdW5zaWduZWQgYXV0
b1JlcGVhdENvbHVtbnMgPSBjb21wdXRlQXV0b1JlcGVhdFRyYWNrc0NvdW50KEZvckNvbHVtbnMs
IGF2YWlsYWJsZUxvZ2ljYWxXaWR0aCk7CiAgICAgdW5zaWduZWQgYXV0b1JlcGVhdFJvd3MgPSBj
b21wdXRlQXV0b1JlcGVhdFRyYWNrc0NvdW50KEZvclJvd3MsIGF2YWlsYWJsZUxvZ2ljYWxIZWln
aHRGb3JQZXJjZW50YWdlQ29tcHV0YXRpb24oKSk7Ci0KICAgICBhdXRvUmVwZWF0Um93cyA9IGNs
YW1wQXV0b1JlcGVhdFRyYWNrcyhGb3JSb3dzLCBhdXRvUmVwZWF0Um93cyk7CiAgICAgYXV0b1Jl
cGVhdENvbHVtbnMgPSBjbGFtcEF1dG9SZXBlYXRUcmFja3MoRm9yQ29sdW1ucywgYXV0b1JlcGVh
dENvbHVtbnMpOwogCkBAIC02NTQsMTAgKzY1NSw3IEBAIHZvaWQgUmVuZGVyR3JpZDo6cGxhY2VJ
dGVtc09uR3JpZChHcmlkVHJhY2tTaXppbmdBbGdvcml0aG0mIGFsZ29yaXRobSwgc3RkOjpvcHRp
CiAgICAgICAgICAgICBjaGlsZC0+c2V0T3ZlcnJpZGluZ0NvbnRhaW5pbmdCbG9ja0NvbnRlbnRM
b2dpY2FsSGVpZ2h0KHN0ZDo6bnVsbG9wdCk7CiAKICAgICAgICAgR3JpZEFyZWEgYXJlYSA9IGdy
aWQuZ3JpZEl0ZW1BcmVhKCpjaGlsZCk7Ci0gICAgICAgIGlmICghYXJlYS5yb3dzLmlzSW5kZWZp
bml0ZSgpKQotICAgICAgICAgICAgYXJlYS5yb3dzLnRyYW5zbGF0ZShncmlkLmV4cGxpY2l0R3Jp
ZFN0YXJ0KEZvclJvd3MpKTsKLSAgICAgICAgaWYgKCFhcmVhLmNvbHVtbnMuaXNJbmRlZmluaXRl
KCkpCi0gICAgICAgICAgICBhcmVhLmNvbHVtbnMudHJhbnNsYXRlKGdyaWQuZXhwbGljaXRHcmlk
U3RhcnQoRm9yQ29sdW1ucykpOworICAgICAgICBncmlkLmNsYW1wQW5kVHJhbnNsYXRlVG9JbXBs
aWNpdEdyaWQoYXJlYSk7CiAKICAgICAgICAgaWYgKGFyZWEucm93cy5pc0luZGVmaW5pdGUoKSB8
fCBhcmVhLmNvbHVtbnMuaXNJbmRlZmluaXRlKCkpIHsKICAgICAgICAgICAgIGdyaWQuc2V0R3Jp
ZEl0ZW1BcmVhKCpjaGlsZCwgYXJlYSk7CkBAIC02NzQsOCArNjcyLDggQEAgdm9pZCBSZW5kZXJH
cmlkOjpwbGFjZUl0ZW1zT25HcmlkKEdyaWRUcmFja1NpemluZ0FsZ29yaXRobSYgYWxnb3JpdGht
LCBzdGQ6Om9wdGkKIAogI2lmIEFTU0VSVF9FTkFCTEVECiAgICAgaWYgKGdyaWQuaGFzR3JpZEl0
ZW1zKCkpIHsKLSAgICAgICAgQVNTRVJUKGdyaWQubnVtVHJhY2tzKEZvclJvd3MpID49IEdyaWRQ
b3NpdGlvbnNSZXNvbHZlcjo6ZXhwbGljaXRHcmlkUm93Q291bnQoc3R5bGUoKSwgZ3JpZC5hdXRv
UmVwZWF0VHJhY2tzKEZvclJvd3MpKSk7Ci0gICAgICAgIEFTU0VSVChncmlkLm51bVRyYWNrcyhG
b3JDb2x1bW5zKSA+PSBHcmlkUG9zaXRpb25zUmVzb2x2ZXI6OmV4cGxpY2l0R3JpZENvbHVtbkNv
dW50KHN0eWxlKCksIGdyaWQuYXV0b1JlcGVhdFRyYWNrcyhGb3JDb2x1bW5zKSkpOworICAgICAg
ICBBU1NFUlQoZ3JpZC5udW1UcmFja3MoRm9yUm93cykgPj0gR3JpZFBvc2l0aW9uc1Jlc29sdmVy
OjpleHBsaWNpdEdyaWRSb3dDb3VudCgqdGhpcykpOworICAgICAgICBBU1NFUlQoZ3JpZC5udW1U
cmFja3MoRm9yQ29sdW1ucykgPj0gR3JpZFBvc2l0aW9uc1Jlc29sdmVyOjpleHBsaWNpdEdyaWRD
b2x1bW5Db3VudCgqdGhpcykpOwogICAgIH0KICNlbmRpZgogCkBAIC03MjksMzMgKzcyNywzNSBA
QCB2b2lkIFJlbmRlckdyaWQ6OnBvcHVsYXRlRXhwbGljaXRHcmlkQW5kT3JkZXJJdGVyYXRvcihH
cmlkJiBncmlkKSBjb25zdAogICAgIE9yZGVySXRlcmF0b3JQb3B1bGF0b3IgcG9wdWxhdG9yKGdy
aWQub3JkZXJJdGVyYXRvcigpKTsKICAgICB1bnNpZ25lZCBleHBsaWNpdFJvd1N0YXJ0ID0gMDsK
ICAgICB1bnNpZ25lZCBleHBsaWNpdENvbHVtblN0YXJ0ID0gMDsKLSAgICB1bnNpZ25lZCBhdXRv
UmVwZWF0Um93cyA9IGdyaWQuYXV0b1JlcGVhdFRyYWNrcyhGb3JSb3dzKTsKLSAgICB1bnNpZ25l
ZCBhdXRvUmVwZWF0Q29sdW1ucyA9IGdyaWQuYXV0b1JlcGVhdFRyYWNrcyhGb3JDb2x1bW5zKTsK
LSAgICB1bnNpZ25lZCBtYXhpbXVtUm93SW5kZXggPSBHcmlkUG9zaXRpb25zUmVzb2x2ZXI6OmV4
cGxpY2l0R3JpZFJvd0NvdW50KHN0eWxlKCksIGF1dG9SZXBlYXRSb3dzKTsKLSAgICB1bnNpZ25l
ZCBtYXhpbXVtQ29sdW1uSW5kZXggPSBHcmlkUG9zaXRpb25zUmVzb2x2ZXI6OmV4cGxpY2l0R3Jp
ZENvbHVtbkNvdW50KHN0eWxlKCksIGF1dG9SZXBlYXRDb2x1bW5zKTsKKyAgICB1bnNpZ25lZCBt
YXhpbXVtUm93SW5kZXggPSBHcmlkUG9zaXRpb25zUmVzb2x2ZXI6OmV4cGxpY2l0R3JpZFJvd0Nv
dW50KCp0aGlzKTsKKyAgICB1bnNpZ25lZCBtYXhpbXVtQ29sdW1uSW5kZXggPSBHcmlkUG9zaXRp
b25zUmVzb2x2ZXI6OmV4cGxpY2l0R3JpZENvbHVtbkNvdW50KCp0aGlzKTsKIAogICAgIGZvciAo
UmVuZGVyQm94KiBjaGlsZCA9IGZpcnN0Q2hpbGRCb3goKTsgY2hpbGQ7IGNoaWxkID0gY2hpbGQt
Pm5leHRTaWJsaW5nQm94KCkpIHsKICAgICAgICAgaWYgKCFwb3B1bGF0b3IuY29sbGVjdENoaWxk
KCpjaGlsZCkpCiAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgCi0gICAgICAgIEdyaWRT
cGFuIHJvd1Bvc2l0aW9ucyA9IEdyaWRQb3NpdGlvbnNSZXNvbHZlcjo6cmVzb2x2ZUdyaWRQb3Np
dGlvbnNGcm9tU3R5bGUoc3R5bGUoKSwgKmNoaWxkLCBGb3JSb3dzLCBhdXRvUmVwZWF0Um93cyk7
Ci0gICAgICAgIGlmICghcm93UG9zaXRpb25zLmlzSW5kZWZpbml0ZSgpKSB7Ci0gICAgICAgICAg
ICBleHBsaWNpdFJvd1N0YXJ0ID0gc3RkOjptYXg8aW50PihleHBsaWNpdFJvd1N0YXJ0LCAtcm93
UG9zaXRpb25zLnVudHJhbnNsYXRlZFN0YXJ0TGluZSgpKTsKLSAgICAgICAgICAgIG1heGltdW1S
b3dJbmRleCA9IHN0ZDo6bWF4PGludD4obWF4aW11bVJvd0luZGV4LCByb3dQb3NpdGlvbnMudW50
cmFuc2xhdGVkRW5kTGluZSgpKTsKLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIC8vIEdy
b3cgdGhlIGdyaWQgZm9yIGl0ZW1zIHdpdGggYSBkZWZpbml0ZSByb3cgc3BhbiwgZ2V0dGluZyB0
aGUgbGFyZ2VzdCBzdWNoIHNwYW4uCi0gICAgICAgICAgICB1bnNpZ25lZCBzcGFuU2l6ZSA9IEdy
aWRQb3NpdGlvbnNSZXNvbHZlcjo6c3BhblNpemVGb3JBdXRvUGxhY2VkSXRlbSgqY2hpbGQsIEZv
clJvd3MpOwotICAgICAgICAgICAgbWF4aW11bVJvd0luZGV4ID0gc3RkOjptYXgobWF4aW11bVJv
d0luZGV4LCBzcGFuU2l6ZSk7CisgICAgICAgIEdyaWRTcGFuIHJvd1Bvc2l0aW9ucyA9IEdyaWRQ
b3NpdGlvbnNSZXNvbHZlcjo6cmVzb2x2ZUdyaWRQb3NpdGlvbnNGcm9tU3R5bGUoKmNoaWxkLCBG
b3JSb3dzKTsKKyAgICAgICAgaWYgKCFpc1N1YmdyaWRSb3dzKCkpIHsKKyAgICAgICAgICAgIGlm
ICghcm93UG9zaXRpb25zLmlzSW5kZWZpbml0ZSgpKSB7CisgICAgICAgICAgICAgICAgZXhwbGlj
aXRSb3dTdGFydCA9IHN0ZDo6bWF4PGludD4oZXhwbGljaXRSb3dTdGFydCwgLXJvd1Bvc2l0aW9u
cy51bnRyYW5zbGF0ZWRTdGFydExpbmUoKSk7CisgICAgICAgICAgICAgICAgbWF4aW11bVJvd0lu
ZGV4ID0gc3RkOjptYXg8aW50PihtYXhpbXVtUm93SW5kZXgsIHJvd1Bvc2l0aW9ucy51bnRyYW5z
bGF0ZWRFbmRMaW5lKCkpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAv
LyBHcm93IHRoZSBncmlkIGZvciBpdGVtcyB3aXRoIGEgZGVmaW5pdGUgcm93IHNwYW4sIGdldHRp
bmcgdGhlIGxhcmdlc3Qgc3VjaCBzcGFuLgorICAgICAgICAgICAgICAgIHVuc2lnbmVkIHNwYW5T
aXplID0gR3JpZFBvc2l0aW9uc1Jlc29sdmVyOjpzcGFuU2l6ZUZvckF1dG9QbGFjZWRJdGVtKCpj
aGlsZCwgRm9yUm93cyk7CisgICAgICAgICAgICAgICAgbWF4aW11bVJvd0luZGV4ID0gc3RkOjpt
YXgobWF4aW11bVJvd0luZGV4LCBzcGFuU2l6ZSk7CisgICAgICAgICAgICB9CiAgICAgICAgIH0K
IAotICAgICAgICBHcmlkU3BhbiBjb2x1bW5Qb3NpdGlvbnMgPSBHcmlkUG9zaXRpb25zUmVzb2x2
ZXI6OnJlc29sdmVHcmlkUG9zaXRpb25zRnJvbVN0eWxlKHN0eWxlKCksICpjaGlsZCwgRm9yQ29s
dW1ucywgYXV0b1JlcGVhdENvbHVtbnMpOwotICAgICAgICBpZiAoIWNvbHVtblBvc2l0aW9ucy5p
c0luZGVmaW5pdGUoKSkgewotICAgICAgICAgICAgZXhwbGljaXRDb2x1bW5TdGFydCA9IHN0ZDo6
bWF4PGludD4oZXhwbGljaXRDb2x1bW5TdGFydCwgLWNvbHVtblBvc2l0aW9ucy51bnRyYW5zbGF0
ZWRTdGFydExpbmUoKSk7Ci0gICAgICAgICAgICBtYXhpbXVtQ29sdW1uSW5kZXggPSBzdGQ6Om1h
eDxpbnQ+KG1heGltdW1Db2x1bW5JbmRleCwgY29sdW1uUG9zaXRpb25zLnVudHJhbnNsYXRlZEVu
ZExpbmUoKSk7Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAvLyBHcm93IHRoZSBncmlk
IGZvciBpdGVtcyB3aXRoIGEgZGVmaW5pdGUgY29sdW1uIHNwYW4sIGdldHRpbmcgdGhlIGxhcmdl
c3Qgc3VjaCBzcGFuLgotICAgICAgICAgICAgdW5zaWduZWQgc3BhblNpemUgPSBHcmlkUG9zaXRp
b25zUmVzb2x2ZXI6OnNwYW5TaXplRm9yQXV0b1BsYWNlZEl0ZW0oKmNoaWxkLCBGb3JDb2x1bW5z
KTsKLSAgICAgICAgICAgIG1heGltdW1Db2x1bW5JbmRleCA9IHN0ZDo6bWF4KG1heGltdW1Db2x1
bW5JbmRleCwgc3BhblNpemUpOworICAgICAgICBHcmlkU3BhbiBjb2x1bW5Qb3NpdGlvbnMgPSBH
cmlkUG9zaXRpb25zUmVzb2x2ZXI6OnJlc29sdmVHcmlkUG9zaXRpb25zRnJvbVN0eWxlKCpjaGls
ZCwgRm9yQ29sdW1ucyk7CisgICAgICAgIGlmICghaXNTdWJncmlkQ29sdW1ucygpKSB7CisgICAg
ICAgICAgICBpZiAoIWNvbHVtblBvc2l0aW9ucy5pc0luZGVmaW5pdGUoKSkgeworICAgICAgICAg
ICAgICAgIGV4cGxpY2l0Q29sdW1uU3RhcnQgPSBzdGQ6Om1heDxpbnQ+KGV4cGxpY2l0Q29sdW1u
U3RhcnQsIC1jb2x1bW5Qb3NpdGlvbnMudW50cmFuc2xhdGVkU3RhcnRMaW5lKCkpOworICAgICAg
ICAgICAgICAgIG1heGltdW1Db2x1bW5JbmRleCA9IHN0ZDo6bWF4PGludD4obWF4aW11bUNvbHVt
bkluZGV4LCBjb2x1bW5Qb3NpdGlvbnMudW50cmFuc2xhdGVkRW5kTGluZSgpKTsKKyAgICAgICAg
ICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgLy8gR3JvdyB0aGUgZ3JpZCBmb3IgaXRlbXMg
d2l0aCBhIGRlZmluaXRlIGNvbHVtbiBzcGFuLCBnZXR0aW5nIHRoZSBsYXJnZXN0IHN1Y2ggc3Bh
bi4KKyAgICAgICAgICAgICAgICB1bnNpZ25lZCBzcGFuU2l6ZSA9IEdyaWRQb3NpdGlvbnNSZXNv
bHZlcjo6c3BhblNpemVGb3JBdXRvUGxhY2VkSXRlbSgqY2hpbGQsIEZvckNvbHVtbnMpOworICAg
ICAgICAgICAgICAgIG1heGltdW1Db2x1bW5JbmRleCA9IHN0ZDo6bWF4KG1heGltdW1Db2x1bW5J
bmRleCwgc3BhblNpemUpOworICAgICAgICAgICAgfQogICAgICAgICB9CiAKICAgICAgICAgZ3Jp
ZC5zZXRHcmlkSXRlbUFyZWEoKmNoaWxkLCB7IHJvd1Bvc2l0aW9ucywgY29sdW1uUG9zaXRpb25z
IH0pOwpAQCAtNzYzLDYgKzc2Myw3IEBAIHZvaWQgUmVuZGVyR3JpZDo6cG9wdWxhdGVFeHBsaWNp
dEdyaWRBbmRPcmRlckl0ZXJhdG9yKEdyaWQmIGdyaWQpIGNvbnN0CiAKICAgICBncmlkLnNldEV4
cGxpY2l0R3JpZFN0YXJ0KGV4cGxpY2l0Um93U3RhcnQsIGV4cGxpY2l0Q29sdW1uU3RhcnQpOwog
ICAgIGdyaWQuZW5zdXJlR3JpZFNpemUobWF4aW11bVJvd0luZGV4ICsgZXhwbGljaXRSb3dTdGFy
dCwgbWF4aW11bUNvbHVtbkluZGV4ICsgZXhwbGljaXRDb2x1bW5TdGFydCk7CisgICAgZ3JpZC5z
ZXRDbGFtcGluZ0ZvclN1YmdyaWQoaXNTdWJncmlkUm93cygpID8gbWF4aW11bVJvd0luZGV4IDog
MCwgaXNTdWJncmlkQ29sdW1ucygpID8gbWF4aW11bUNvbHVtbkluZGV4IDogMCk7CiB9CiAKIHN0
ZDo6dW5pcXVlX3B0cjxHcmlkQXJlYT4gUmVuZGVyR3JpZDo6Y3JlYXRlRW1wdHlHcmlkQXJlYUF0
U3BlY2lmaWVkUG9zaXRpb25zT3V0c2lkZUdyaWQoR3JpZCYgZ3JpZCwgY29uc3QgUmVuZGVyQm94
JiBncmlkSXRlbSwgR3JpZFRyYWNrU2l6aW5nRGlyZWN0aW9uIHNwZWNpZmllZERpcmVjdGlvbiwg
Y29uc3QgR3JpZFNwYW4mIHNwZWNpZmllZFBvc2l0aW9ucykgY29uc3QKQEAgLTc5Niw3ICs3OTcs
NyBAQCB2b2lkIFJlbmRlckdyaWQ6OnBsYWNlU3BlY2lmaWVkTWFqb3JBeGlzSXRlbXNPbkdyaWQo
R3JpZCYgZ3JpZCwgY29uc3QgVmVjdG9yPFJlbgogICAgICAgICBpZiAoIWVtcHR5R3JpZEFyZWEp
CiAgICAgICAgICAgICBlbXB0eUdyaWRBcmVhID0gY3JlYXRlRW1wdHlHcmlkQXJlYUF0U3BlY2lm
aWVkUG9zaXRpb25zT3V0c2lkZUdyaWQoZ3JpZCwgKmF1dG9HcmlkSXRlbSwgYXV0b1BsYWNlbWVu
dE1ham9yQXhpc0RpcmVjdGlvbigpLCBtYWpvckF4aXNQb3NpdGlvbnMpOwogCi0gICAgICAgIGdy
aWQuaW5zZXJ0KCphdXRvR3JpZEl0ZW0sICplbXB0eUdyaWRBcmVhKTsKKyAgICAgICAgKmVtcHR5
R3JpZEFyZWEgPSBncmlkLmluc2VydCgqYXV0b0dyaWRJdGVtLCAqZW1wdHlHcmlkQXJlYSk7CiAK
ICAgICAgICAgaWYgKCFpc0dyaWRBdXRvRmxvd0RlbnNlKQogICAgICAgICAgICAgbWlub3JBeGlz
Q3Vyc29ycy5zZXQobWFqb3JBeGlzSW5pdGlhbFBvc2l0aW9uLCBpc0ZvckNvbHVtbnMgPyBlbXB0
eUdyaWRBcmVhLT5yb3dzLnN0YXJ0TGluZSgpIDogZW1wdHlHcmlkQXJlYS0+Y29sdW1ucy5zdGFy
dExpbmUoKSk7CkBAIC0xNTk0LDExICsxNTk1LDI5IEBAIExheW91dFVuaXQgUmVuZGVyR3JpZDo6
cmVzb2x2ZUF1dG9FbmRHcmlkUG9zaXRpb24oR3JpZFRyYWNrU2l6aW5nRGlyZWN0aW9uIGRpcmVj
CiAgICAgcmV0dXJuIGNsaWVudExvZ2ljYWxXaWR0aCgpOwogfQogCitib29sIFJlbmRlckdyaWQ6
OmlzU3ViZ3JpZChHcmlkVHJhY2tTaXppbmdEaXJlY3Rpb24gZGlyZWN0aW9uKSBjb25zdAorewor
ICAgIGlmIChpc091dE9mRmxvd1Bvc2l0aW9uZWQoKSB8fCBpc0V4Y2x1ZGVkRnJvbU5vcm1hbExh
eW91dCgpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgaWYgKChkaXJlY3Rpb24gPT0gRm9y
Q29sdW1ucykgPyAhc3R5bGUoKS5ncmlkU3ViZ3JpZENvbHVtbnMoKSA6ICFzdHlsZSgpLmdyaWRT
dWJncmlkUm93cygpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgcmV0dXJuIGlzPFJlbmRl
ckdyaWQ+KHBhcmVudCgpKTsKK30KKworYm9vbCBSZW5kZXJHcmlkOjppc1N1YmdyaWRSb3dzKCkg
Y29uc3QKK3sKKyAgICByZXR1cm4gaXNTdWJncmlkKEZvclJvd3MpOworfQorYm9vbCBSZW5kZXJH
cmlkOjppc1N1YmdyaWRDb2x1bW5zKCkgY29uc3QKK3sKKyAgICByZXR1cm4gaXNTdWJncmlkKEZv
ckNvbHVtbnMpOworfQorCiBMYXlvdXRVbml0IFJlbmRlckdyaWQ6OmdyaWRBcmVhQnJlYWR0aEZv
ck91dE9mRmxvd0NoaWxkKGNvbnN0IFJlbmRlckJveCYgY2hpbGQsIEdyaWRUcmFja1NpemluZ0Rp
cmVjdGlvbiBkaXJlY3Rpb24pCiB7CiAgICAgQVNTRVJUKGNoaWxkLmlzT3V0T2ZGbG93UG9zaXRp
b25lZCgpKTsKICAgICBib29sIGlzUm93QXhpcyA9IGRpcmVjdGlvbiA9PSBGb3JDb2x1bW5zOwot
ICAgIEdyaWRTcGFuIHNwYW4gPSBHcmlkUG9zaXRpb25zUmVzb2x2ZXI6OnJlc29sdmVHcmlkUG9z
aXRpb25zRnJvbVN0eWxlKHN0eWxlKCksIGNoaWxkLCBkaXJlY3Rpb24sIGF1dG9SZXBlYXRDb3Vu
dEZvckRpcmVjdGlvbihkaXJlY3Rpb24pKTsKKyAgICBHcmlkU3BhbiBzcGFuID0gR3JpZFBvc2l0
aW9uc1Jlc29sdmVyOjpyZXNvbHZlR3JpZFBvc2l0aW9uc0Zyb21TdHlsZShjaGlsZCwgZGlyZWN0
aW9uKTsKICAgICBpZiAoc3Bhbi5pc0luZGVmaW5pdGUoKSkKICAgICAgICAgcmV0dXJuIGlzUm93
QXhpcyA/IGNsaWVudExvZ2ljYWxXaWR0aCgpIDogY2xpZW50TG9naWNhbEhlaWdodCgpOwogCkBA
IC0xOTA0LDcgKzE5MjMsNyBAQCB1bnNpZ25lZCBSZW5kZXJHcmlkOjpudW1UcmFja3MoR3JpZFRy
YWNrU2l6aW5nRGlyZWN0aW9uIGRpcmVjdGlvbiwgY29uc3QgR3JpZCYgZwogICAgICAgICByZXR1
cm4gZ3JpZC5udW1UcmFja3MoRm9yUm93cyk7CiAKICAgICAvLyBGSVhNRTogVGhpcyBzdGlsbCBy
ZXF1aXJlcyBrbm93bGVkZ2UgYWJvdXQgbV9ncmlkIGludGVybmFscy4KLSAgICByZXR1cm4gZ3Jp
ZC5udW1UcmFja3MoRm9yUm93cykgPyBncmlkLm51bVRyYWNrcyhGb3JDb2x1bW5zKSA6IEdyaWRQ
b3NpdGlvbnNSZXNvbHZlcjo6ZXhwbGljaXRHcmlkQ29sdW1uQ291bnQoc3R5bGUoKSwgZ3JpZC5h
dXRvUmVwZWF0VHJhY2tzKEZvckNvbHVtbnMpKTsKKyAgICByZXR1cm4gZ3JpZC5udW1UcmFja3Mo
Rm9yUm93cykgPyBncmlkLm51bVRyYWNrcyhGb3JDb2x1bW5zKSA6IEdyaWRQb3NpdGlvbnNSZXNv
bHZlcjo6ZXhwbGljaXRHcmlkQ29sdW1uQ291bnQoKnRoaXMpOwogfQogCiB2b2lkIFJlbmRlckdy
aWQ6OnBhaW50Q2hpbGRyZW4oUGFpbnRJbmZvJiBwYWludEluZm8sIGNvbnN0IExheW91dFBvaW50
JiBwYWludE9mZnNldCwgUGFpbnRJbmZvJiBmb3JDaGlsZCwgYm9vbCB1c2VQcmludFJlY3QpCkBA
IC0xOTYxLDQgKzE5ODAsNzEgQEAgYm9vbCBSZW5kZXJHcmlkOjpoYXNBdXRvU2l6ZUluUm93QXhp
cyhjb25zdCBSZW5kZXJCb3gmIGNoaWxkKSBjb25zdAogICAgIHJldHVybiBpc0hvcml6b250YWxX
cml0aW5nTW9kZSgpID8gY2hpbGQuc3R5bGUoKS53aWR0aCgpLmlzQXV0bygpIDogY2hpbGQuc3R5
bGUoKS5oZWlnaHQoKS5pc0F1dG8oKTsKIH0KIAorc3RhdGljIEdyaWRUcmFja1NpemluZ0RpcmVj
dGlvbiB0cmFuc3Bvc2VkRGlyZWN0aW9uKEdyaWRUcmFja1NpemluZ0RpcmVjdGlvbiBkaXJlY3Rp
b24pCit7CisgICAgaWYgKGRpcmVjdGlvbiA9PSBGb3JDb2x1bW5zKQorICAgICAgICByZXR1cm4g
Rm9yUm93czsKKyAgICByZXR1cm4gRm9yQ29sdW1uczsKK30KKworYm9vbCBSZW5kZXJHcmlkOjpj
b21wdXRlR3JpZFNwYW5Gb3JPdXRPZkZsb3dDaGlsZChjb25zdCBSZW5kZXJCb3gmIGNoaWxkLCBH
cmlkVHJhY2tTaXppbmdEaXJlY3Rpb24gZGlyZWN0aW9uLCBpbnQmIHN0YXJ0TGluZSwgYm9vbCYg
c3RhcnRJc0F1dG8sIGludCYgZW5kTGluZSwgYm9vbCYgZW5kSXNBdXRvKSBjb25zdAoreworICAg
IEFTU0VSVChjaGlsZC5pc091dE9mRmxvd1Bvc2l0aW9uZWQoKSk7CisgICAgaW50IGxhc3RMaW5l
ID0gbnVtVHJhY2tzKGRpcmVjdGlvbiwgbV9ncmlkKTsKKyAgICBHcmlkU3BhbiBzcGFuID0gR3Jp
ZFBvc2l0aW9uc1Jlc29sdmVyOjpyZXNvbHZlR3JpZFBvc2l0aW9uc0Zyb21TdHlsZShjaGlsZCwg
ZGlyZWN0aW9uKTsKKyAgICBpZiAoc3Bhbi5pc0luZGVmaW5pdGUoKSkKKyAgICAgICAgcmV0dXJu
IGZhbHNlOworCisgICAgdW5zaWduZWQgZXhwbGljaXRTdGFydCA9IG1fZ3JpZC5leHBsaWNpdEdy
aWRTdGFydChkaXJlY3Rpb24pOworICAgIHN0YXJ0TGluZSA9IHNwYW4udW50cmFuc2xhdGVkU3Rh
cnRMaW5lKCkgKyBleHBsaWNpdFN0YXJ0OworICAgIGVuZExpbmUgPSBzcGFuLnVudHJhbnNsYXRl
ZEVuZExpbmUoKSArIGV4cGxpY2l0U3RhcnQ7CisKKyAgICBHcmlkUG9zaXRpb24gc3RhcnRQb3Np
dGlvbiA9IGRpcmVjdGlvbiA9PSBGb3JDb2x1bW5zID8gY2hpbGQuc3R5bGUoKS5ncmlkSXRlbUNv
bHVtblN0YXJ0KCkgOiBjaGlsZC5zdHlsZSgpLmdyaWRJdGVtUm93U3RhcnQoKTsKKyAgICBHcmlk
UG9zaXRpb24gZW5kUG9zaXRpb24gPSBkaXJlY3Rpb24gPT0gRm9yQ29sdW1ucyA/IGNoaWxkLnN0
eWxlKCkuZ3JpZEl0ZW1Db2x1bW5FbmQoKSA6IGNoaWxkLnN0eWxlKCkuZ3JpZEl0ZW1Sb3dFbmQo
KTsKKworICAgIHN0YXJ0SXNBdXRvID0gc3RhcnRQb3NpdGlvbi5pc0F1dG8oKSB8fCBzdGFydExp
bmUgPCAwIHx8IHN0YXJ0TGluZSA+IGxhc3RMaW5lOworICAgIGVuZElzQXV0byA9IGVuZFBvc2l0
aW9uLmlzQXV0bygpIHx8IGVuZExpbmUgPCAwIHx8IGVuZExpbmUgPiBsYXN0TGluZTsKKyAgICBy
ZXR1cm4gdHJ1ZTsKK30KKworR3JpZFNwYW4gUmVuZGVyR3JpZDo6Z3JpZFNwYW5Gb3JPdXRPZkZs
b3dDaGlsZChjb25zdCBSZW5kZXJCb3gmIGNoaWxkLCBHcmlkVHJhY2tTaXppbmdEaXJlY3Rpb24g
ZGlyZWN0aW9uKSBjb25zdAoreworICAgIGludCBsYXN0TGluZSA9IG51bVRyYWNrcyhkaXJlY3Rp
b24sIG1fZ3JpZCk7CisgICAgaW50IHN0YXJ0TGluZSwgZW5kTGluZTsKKyAgICBib29sIHN0YXJ0
SXNBdXRvLCBlbmRJc0F1dG87CisgICAgaWYgKCFjb21wdXRlR3JpZFNwYW5Gb3JPdXRPZkZsb3dD
aGlsZChjaGlsZCwgZGlyZWN0aW9uLCBzdGFydExpbmUsIHN0YXJ0SXNBdXRvLCBlbmRMaW5lLCBl
bmRJc0F1dG8pKQorICAgICAgICByZXR1cm4gR3JpZFNwYW46OnRyYW5zbGF0ZWREZWZpbml0ZUdy
aWRTcGFuKDAsIGxhc3RMaW5lKTsKKyAgICByZXR1cm4gR3JpZFNwYW46OnRyYW5zbGF0ZWREZWZp
bml0ZUdyaWRTcGFuKHN0YXJ0SXNBdXRvID8gMCA6IHN0YXJ0TGluZSwgZW5kSXNBdXRvID8gbGFz
dExpbmUgOiBlbmRMaW5lKTsKK30KKworR3JpZFNwYW4gUmVuZGVyR3JpZDo6Z3JpZFNwYW5Gb3JD
aGlsZChjb25zdCBSZW5kZXJCb3gmIGNoaWxkLCBHcmlkVHJhY2tTaXppbmdEaXJlY3Rpb24gZGly
ZWN0aW9uKSBjb25zdAoreworICAgIEFTU0VSVChpczxSZW5kZXJHcmlkPihjaGlsZC5wYXJlbnQo
KSkpOworCisgICAgUmVuZGVyR3JpZCogcmVuZGVyR3JpZCA9IGRvd25jYXN0PFJlbmRlckdyaWQ+
KGNoaWxkLnBhcmVudCgpKTsKKyAgICAvLyB8ZGlyZWN0aW9ufCBpcyBzcGVjaWZpZWQgcmVsYXRp
dmUgdG8gdGhpcyBncmlkLCBzd2l0Y2ggaXQgaWYgfGNoaWxkfCdzIGRpcmVjdCBwYXJlbnQgZ3Jp
ZAorICAgIC8vIGlzIHVzaW5nIGEgZGlmZmVyZW50IHdyaXRpbmcgbW9kZS4KKyAgICBpZiAocmVu
ZGVyR3JpZC0+aXNIb3Jpem9udGFsV3JpdGluZ01vZGUoKSAhPSBpc0hvcml6b250YWxXcml0aW5n
TW9kZSgpKQorICAgICAgICBkaXJlY3Rpb24gPSB0cmFuc3Bvc2VkRGlyZWN0aW9uKGRpcmVjdGlv
bik7CisgICAgR3JpZFNwYW4gc3BhbiA9IGNoaWxkLmlzT3V0T2ZGbG93UG9zaXRpb25lZCgpID8g
cmVuZGVyR3JpZC0+Z3JpZFNwYW5Gb3JPdXRPZkZsb3dDaGlsZChjaGlsZCwgZGlyZWN0aW9uKSA6
IHJlbmRlckdyaWQtPmN1cnJlbnRHcmlkKCkuZ3JpZEl0ZW1TcGFuKGNoaWxkLCBkaXJlY3Rpb24p
OworCisgICAgd2hpbGUgKHJlbmRlckdyaWQgIT0gdGhpcykgeworICAgICAgICBBU1NFUlQoaXM8
UmVuZGVyR3JpZD4ocmVuZGVyR3JpZC0+cGFyZW50KCkpKTsKKyAgICAgICAgUmVuZGVyR3JpZCog
cGFyZW50ID0gZG93bmNhc3Q8UmVuZGVyR3JpZD4ocmVuZGVyR3JpZC0+cGFyZW50KCkpOworCisg
ICAgICAgIGJvb2wgaXNTdWJncmlkID0gZGlyZWN0aW9uID09IEZvckNvbHVtbnMgPyByZW5kZXJH
cmlkLT5pc1N1YmdyaWRDb2x1bW5zKCkgOiByZW5kZXJHcmlkLT5pc1N1YmdyaWRSb3dzKCk7CisK
KyAgICAgICAgaWYgKHJlbmRlckdyaWQtPmlzSG9yaXpvbnRhbFdyaXRpbmdNb2RlKCkgIT0gcGFy
ZW50LT5pc0hvcml6b250YWxXcml0aW5nTW9kZSgpKQorICAgICAgICAgICAgZGlyZWN0aW9uID0g
dHJhbnNwb3NlZERpcmVjdGlvbihkaXJlY3Rpb24pOworCisgICAgICAgIEdyaWRTcGFuIHBhcmVu
dFNwYW4gPSByZW5kZXJHcmlkLT5pc091dE9mRmxvd1Bvc2l0aW9uZWQoKSA/IHBhcmVudC0+Z3Jp
ZFNwYW5Gb3JPdXRPZkZsb3dDaGlsZCgqcmVuZGVyR3JpZCwgZGlyZWN0aW9uKSA6ICBwYXJlbnQt
PmN1cnJlbnRHcmlkKCkuZ3JpZEl0ZW1TcGFuKCpyZW5kZXJHcmlkLCBkaXJlY3Rpb24pOworICAg
ICAgICBpZiAoaXNTdWJncmlkKQorICAgICAgICAgICAgc3Bhbi50cmFuc2xhdGVUbyhwYXJlbnRT
cGFuLCBwYXJlbnQtPnN0eWxlKCkuaXNMZWZ0VG9SaWdodERpcmVjdGlvbigpICE9IHJlbmRlckdy
aWQtPnN0eWxlKCkuaXNMZWZ0VG9SaWdodERpcmVjdGlvbigpKTsKKyAgICAgICAgZWxzZQorICAg
ICAgICAgICAgc3BhbiA9IHBhcmVudFNwYW47CisgICAgICAgIHJlbmRlckdyaWQgPSBwYXJlbnQ7
CisgICAgfQorICAgIHJldHVybiBzcGFuOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyR3JpZC5oIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckdyaWQuaAppbmRleCAyOWFlNTk0ODAwM2UuLmUzMDQx
YWU3NDIxNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckdyaWQu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyR3JpZC5oCkBAIC04Miw2ICs4
MiwyMyBAQCBwdWJsaWM6CiAKICAgICBTdHlsZUNvbnRlbnRBbGlnbm1lbnREYXRhIGNvbnRlbnRB
bGlnbm1lbnQoR3JpZFRyYWNrU2l6aW5nRGlyZWN0aW9uKSBjb25zdDsKIAorICAgIC8vIENvbXB1
dGVzIHRoZSBzcGFuIHJlbGF0aXZlIHRvIHRoaXMgUmVuZGVyR3JpZCwgZXZlbiBpZiB0aGUgUmVu
ZGVyQm94IGlzIGEgY2hpbGQKKyAgICAvLyBvZiBhIGRlc2NlbmRhbnQgc3ViZ3JpZC4KKyAgICBH
cmlkU3BhbiBncmlkU3BhbkZvckNoaWxkKGNvbnN0IFJlbmRlckJveCYsIEdyaWRUcmFja1Npemlu
Z0RpcmVjdGlvbikgY29uc3Q7CisKKyAgICBib29sIGlzU3ViZ3JpZFJvd3MoKSBjb25zdDsKKyAg
ICBib29sIGlzU3ViZ3JpZENvbHVtbnMoKSBjb25zdDsKKyAgICBib29sIGlzU3ViZ3JpZChHcmlk
VHJhY2tTaXppbmdEaXJlY3Rpb24pIGNvbnN0OworCisgICAgY29uc3QgR3JpZCYgY3VycmVudEdy
aWQoKSBjb25zdAorICAgIHsKKyAgICAgICAgcmV0dXJuIG1fZ3JpZDsKKyAgICB9CisKKyAgICB1
bnNpZ25lZCBudW1UcmFja3MoR3JpZFRyYWNrU2l6aW5nRGlyZWN0aW9uIGRpcmVjdGlvbikgY29u
c3QgeworICAgICAgICByZXR1cm4gbnVtVHJhY2tzKGRpcmVjdGlvbiwgbV9ncmlkKTsKKyAgICB9
CisKIHByaXZhdGU6CiAgICAgSXRlbVBvc2l0aW9uIHNlbGZBbGlnbm1lbnROb3JtYWxCZWhhdmlv
cihjb25zdCBSZW5kZXJCb3gqIGNoaWxkID0gbnVsbHB0cikgY29uc3Qgb3ZlcnJpZGUKICAgICB7
CkBAIC0xNTAsOCArMTY3LDYgQEAgcHJpdmF0ZToKICAgICB2b2lkIHNldExvZ2ljYWxQb3NpdGlv
bkZvckNoaWxkKFJlbmRlckJveCYpIGNvbnN0OwogICAgIHZvaWQgc2V0TG9naWNhbE9mZnNldEZv
ckNoaWxkKFJlbmRlckJveCYsIEdyaWRUcmFja1NpemluZ0RpcmVjdGlvbikgY29uc3Q7CiAgICAg
TGF5b3V0VW5pdCBsb2dpY2FsT2Zmc2V0Rm9yQ2hpbGQoY29uc3QgUmVuZGVyQm94JiwgR3JpZFRy
YWNrU2l6aW5nRGlyZWN0aW9uKSBjb25zdDsKLSAgICBHcmlkQXJlYSBjYWNoZWRHcmlkQXJlYShj
b25zdCBSZW5kZXJCb3gmKSBjb25zdDsKLSAgICBHcmlkU3BhbiBjYWNoZWRHcmlkU3Bhbihjb25z
dCBSZW5kZXJCb3gmLCBHcmlkVHJhY2tTaXppbmdEaXJlY3Rpb24pIGNvbnN0OwogCiAgICAgTGF5
b3V0VW5pdCBncmlkQXJlYUJyZWFkdGhGb3JDaGlsZEluY2x1ZGluZ0FsaWdubWVudE9mZnNldHMo
Y29uc3QgUmVuZGVyQm94JiwgR3JpZFRyYWNrU2l6aW5nRGlyZWN0aW9uKSBjb25zdDsKIApAQCAt
MTkxLDYgKzIwNiw5IEBAIHByaXZhdGU6CiAKICAgICBib29sIGFzcGVjdFJhdGlvUHJlZmVyc0lu
bGluZShjb25zdCBSZW5kZXJCb3gmIGNoaWxkLCBib29sIGJsb2NrRmxvd0lzQ29sdW1uQXhpcyk7
CiAKKyAgICBHcmlkU3BhbiBncmlkU3BhbkZvck91dE9mRmxvd0NoaWxkKGNvbnN0IFJlbmRlckJv
eCYsIEdyaWRUcmFja1NpemluZ0RpcmVjdGlvbikgY29uc3Q7CisgICAgYm9vbCBjb21wdXRlR3Jp
ZFNwYW5Gb3JPdXRPZkZsb3dDaGlsZChjb25zdCBSZW5kZXJCb3gmLCBHcmlkVHJhY2tTaXppbmdE
aXJlY3Rpb24sIGludCYsIGJvb2wmLCBpbnQmLCBib29sJikgY29uc3Q7CisKICAgICBHcmlkIG1f
Z3JpZDsKIAogICAgIEdyaWRUcmFja1NpemluZ0FsZ29yaXRobSBtX3RyYWNrU2l6aW5nQWxnb3Jp
dGhtOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL0dyaWRBcmVh
LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvR3JpZEFyZWEuaAppbmRleCBiN2Vi
ZDFkOTYxZGUuLmVlM2I5MmZjMGZmMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL3N0eWxlL0dyaWRBcmVhLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxl
L0dyaWRBcmVhLmgKQEAgLTY1LDcgKzY1LDcgQEAgcHVibGljOgogCiAgICAgdW5zaWduZWQgaW50
ZWdlclNwYW4oKSBjb25zdAogICAgIHsKLSAgICAgICAgQVNTRVJUKGlzVHJhbnNsYXRlZERlZmlu
aXRlKCkpOworICAgICAgICBBU1NFUlQoaXNUcmFuc2xhdGVkRGVmaW5pdGUoKSB8fCBtX3R5cGUg
PT0gVW50cmFuc2xhdGVkRGVmaW5pdGUpOwogICAgICAgICByZXR1cm4gbV9lbmRMaW5lIC0gbV9z
dGFydExpbmU7CiAgICAgfQogCkBAIC0xNDEsNiArMTQxLDMxIEBAIHB1YmxpYzoKICAgICAgICAg
QVNTRVJUKG1fZW5kTGluZSA+IDApOwogICAgIH0KIAorICAgIC8vIE1vdmVzIHRoaXMgc3BhbiB0
byBiZSBpbiB0aGUgc2FtZSBjb29yZGluYXRlIHNwYWNlIGFzIHxwYXJlbnR8LgorICAgIC8vIElm
IHJldmVyc2UgaXMgc3BlY2lmaWVkLCB0aGVuIHN3YXBzIHRoZSBkaXJlY3Rpb24gdG8gaGFuZGxl
IFJUTC9MVFIgY2hhbmdlcy4KKyAgICB2b2lkIHRyYW5zbGF0ZVRvKGNvbnN0IEdyaWRTcGFuJiBw
YXJlbnQsIGJvb2wgcmV2ZXJzZSkKKyAgICB7CisgICAgICAgIEFTU0VSVChtX3R5cGUgPT0gVHJh
bnNsYXRlZERlZmluaXRlKTsKKyAgICAgICAgQVNTRVJUKHBhcmVudC5tX3R5cGUgPT0gVHJhbnNs
YXRlZERlZmluaXRlKTsKKyAgICAgICAgaWYgKHJldmVyc2UpIHsKKyAgICAgICAgICAgIGludCBz
dGFydCA9IG1fc3RhcnRMaW5lOworICAgICAgICAgICAgbV9zdGFydExpbmUgPSBwYXJlbnQuaW50
ZWdlclNwYW4oKSAtIG1fZW5kTGluZSArIHBhcmVudC5zdGFydExpbmUoKTsKKyAgICAgICAgICAg
IG1fZW5kTGluZSA9IHBhcmVudC5pbnRlZ2VyU3BhbigpIC0gc3RhcnQgKyBwYXJlbnQuc3RhcnRM
aW5lKCk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBtX3N0YXJ0TGluZSArPSBwYXJl
bnQubV9zdGFydExpbmU7CisgICAgICAgICAgICBtX2VuZExpbmUgKz0gcGFyZW50Lm1fc3RhcnRM
aW5lOworICAgICAgICB9CisgICAgfQorCisgICAgdm9pZCBjbGFtcChpbnQgbWF4KQorICAgIHsK
KyAgICAgICAgQVNTRVJUKG1fdHlwZSAhPSBJbmRlZmluaXRlKTsKKyAgICAgICAgbV9zdGFydExp
bmUgPSBzdGQ6Om1heChtX3N0YXJ0TGluZSwgMCk7CisgICAgICAgIG1fZW5kTGluZSA9IHN0ZDo6
bWF4KHN0ZDo6bWluKG1fZW5kTGluZSwgbWF4KSwgMSk7CisgICAgICAgIGlmIChtX3N0YXJ0TGlu
ZSA+PSBtX2VuZExpbmUpCisgICAgICAgICAgICBtX3N0YXJ0TGluZSA9IG1fZW5kTGluZSAtIDE7
CisgICAgfQorCiBwcml2YXRlOgogCiAgICAgZW51bSBHcmlkU3BhblR5cGUge1VudHJhbnNsYXRl
ZERlZmluaXRlLCBUcmFuc2xhdGVkRGVmaW5pdGUsIEluZGVmaW5pdGV9OwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL0dyaWRQb3NpdGlvbnNSZXNvbHZlci5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvR3JpZFBvc2l0aW9uc1Jlc29sdmVyLmNw
cAppbmRleCAzM2M3MDNjNWYwNmYuLjY3NDJhMjIxZWVlOSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL3N0eWxlL0dyaWRQb3NpdGlvbnNSZXNvbHZlci5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL0dyaWRQb3NpdGlvbnNSZXNvbHZlci5jcHAKQEAg
LTMzLDYgKzMzLDcgQEAKIAogI2luY2x1ZGUgIkdyaWRBcmVhLmgiCiAjaW5jbHVkZSAiUmVuZGVy
Qm94LmgiCisjaW5jbHVkZSAiUmVuZGVyR3JpZC5oIgogI2luY2x1ZGUgPGNzdGRsaWI+CiAKIG5h
bWVzcGFjZSBXZWJDb3JlIHsKQEAgLTEwNCw3ICsxMDUsNyBAQCBib29sIE5hbWVkTGluZUNvbGxl
Y3Rpb246OmNvbnRhaW5zKHVuc2lnbmVkIGxpbmUpIGNvbnN0CiAgICAgaWYgKGNvbnRhaW5zKG1f
aW1wbGljaXROYW1lZExpbmVzSW5kZXhlcywgbGluZSkpCiAgICAgICAgIHJldHVybiB0cnVlOwog
Ci0gICAgaWYgKCFtX2F1dG9SZXBlYXRUcmFja0xpc3RMZW5ndGggfHwgbGluZSA8IG1faW5zZXJ0
aW9uUG9pbnQpCisgICAgaWYgKCFtX2F1dG9SZXBlYXRUb3RhbFRyYWNrc3x8IGxpbmUgPCBtX2lu
c2VydGlvblBvaW50KQogICAgICAgICByZXR1cm4gY29udGFpbnMobV9uYW1lZExpbmVzSW5kZXhl
cywgbGluZSk7CiAKICAgICBBU1NFUlQobV9hdXRvUmVwZWF0VG90YWxUcmFja3MpOwpAQCAtMTUy
LDYgKzE1MywxOCBAQCB1bnNpZ25lZCBOYW1lZExpbmVDb2xsZWN0aW9uOjpmaXJzdFBvc2l0aW9u
KCkgY29uc3QKICAgICByZXR1cm4gc3RkOjptaW4oZmlyc3RFeHBsaWNpdFBvc2l0aW9uKCksIG1f
aW1wbGljaXROYW1lZExpbmVzSW5kZXhlcy0+YXQoZmlyc3RMaW5lKSk7CiB9CiAKKy8vIGh0dHBz
Oi8vZHJhZnRzLmNzc3dnLm9yZy9jc3MtZ3JpZC0yLyNpbmRlZmluaXRlLWdyaWQtc3Bhbgorc3Rh
dGljIGJvb2wgaXNJbmRlZmluaXRlU3BhbihHcmlkUG9zaXRpb24mIGluaXRpYWxQb3NpdGlvbiwg
R3JpZFBvc2l0aW9uJiBmaW5hbFBvc2l0aW9uKQoreworICAgIGlmICghaW5pdGlhbFBvc2l0aW9u
LmlzQXV0bygpICYmICFmaW5hbFBvc2l0aW9uLmlzQXV0bygpKQorICAgICAgICByZXR1cm4gZmFs
c2U7CisKKyAgICBpZiAoaW5pdGlhbFBvc2l0aW9uLmlzU3BhbigpIHx8IGZpbmFsUG9zaXRpb24u
aXNTcGFuKCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIHJldHVybiB0cnVlOworfQor
CiBzdGF0aWMgdm9pZCBhZGp1c3RHcmlkUG9zaXRpb25zRnJvbVN0eWxlKGNvbnN0IFJlbmRlckJv
eCYgZ3JpZEl0ZW0sIEdyaWRUcmFja1NpemluZ0RpcmVjdGlvbiBkaXJlY3Rpb24sIEdyaWRQb3Np
dGlvbiYgaW5pdGlhbFBvc2l0aW9uLCBHcmlkUG9zaXRpb24mIGZpbmFsUG9zaXRpb24pCiB7CiAg
ICAgYm9vbCBpc0ZvckNvbHVtbnMgPSBkaXJlY3Rpb24gPT0gRm9yQ29sdW1uczsKQEAgLTE2OCwy
MSArMTgxLDUyIEBAIHN0YXRpYyB2b2lkIGFkanVzdEdyaWRQb3NpdGlvbnNGcm9tU3R5bGUoY29u
c3QgUmVuZGVyQm94JiBncmlkSXRlbSwgR3JpZFRyYWNrU2l6CiAgICAgICAgIGZpbmFsUG9zaXRp
b24uc2V0U3BhblBvc2l0aW9uKDEsIFN0cmluZygpKTsKICAgICBpZiAoZmluYWxQb3NpdGlvbi5p
c0F1dG8oKSAmJiBpbml0aWFsUG9zaXRpb24uaXNTcGFuKCkgJiYgIWluaXRpYWxQb3NpdGlvbi5u
YW1lZEdyaWRMaW5lKCkuaXNOdWxsKCkpCiAgICAgICAgIGluaXRpYWxQb3NpdGlvbi5zZXRTcGFu
UG9zaXRpb24oMSwgU3RyaW5nKCkpOworCisgICAgaWYgKGlzSW5kZWZpbml0ZVNwYW4oaW5pdGlh
bFBvc2l0aW9uLCBmaW5hbFBvc2l0aW9uKSAmJiBpczxSZW5kZXJHcmlkPihncmlkSXRlbSkgJiYg
ZG93bmNhc3Q8UmVuZGVyR3JpZD4oZ3JpZEl0ZW0pLmlzU3ViZ3JpZChkaXJlY3Rpb24pKSB7Cisg
ICAgICAgIC8vIEluZGVmaW5pdGUgc3BhbiBmb3IgYW4gaXRlbSB0aGF0IGlzIHN1YmdyaWRkZWQg
aW4gdGhpcyBheGlzLgorICAgICAgICBpbnQgbGluZUNvdW50ID0gZGlyZWN0aW9uID09IEZvckNv
bHVtbnMgPyBncmlkSXRlbS5zdHlsZSgpLmdyaWRDb2x1bW5zKCkuc2l6ZSgpIDogZ3JpZEl0ZW0u
c3R5bGUoKS5ncmlkUm93cygpLnNpemUoKTsKKworICAgICAgICBpZiAoaW5pdGlhbFBvc2l0aW9u
LmlzQXV0bygpKSB7CisgICAgICAgICAgICAvLyBTZXQgaW5pdGlhbCBwb3NpdGlvbiB0byBzcGFu
IDxsaW5lIG5hbWVzIC0gMT4KKyAgICAgICAgICAgIGluaXRpYWxQb3NpdGlvbi5zZXRTcGFuUG9z
aXRpb24oc3RkOjptYXgoMSwgbGluZUNvdW50IC0gMSksICIiKTsKKyAgICAgICAgICAgIGlmIChm
aW5hbFBvc2l0aW9uLmlzU3BhbigpKQorICAgICAgICAgICAgICAgIGZpbmFsUG9zaXRpb24uc2V0
QXV0b1Bvc2l0aW9uKCk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAvLyBTZXQgZmlu
YWwgcG9zaXRpb24gdG8gc3BhbiA8bGluZSBuYW1lcyAtIDE+CisgICAgICAgICAgICBmaW5hbFBv
c2l0aW9uLnNldFNwYW5Qb3NpdGlvbihzdGQ6Om1heCgxLCBsaW5lQ291bnQgLSAxKSwgIiIpOwor
ICAgICAgICAgICAgaWYgKGluaXRpYWxQb3NpdGlvbi5pc1NwYW4oKSkKKyAgICAgICAgICAgICAg
ICBpbml0aWFsUG9zaXRpb24uc2V0QXV0b1Bvc2l0aW9uKCk7CisgICAgICAgIH0KKyAgICB9CiB9
CiAKLXVuc2lnbmVkIEdyaWRQb3NpdGlvbnNSZXNvbHZlcjo6ZXhwbGljaXRHcmlkQ29sdW1uQ291
bnQoY29uc3QgUmVuZGVyU3R5bGUmIGdyaWRDb250YWluZXJTdHlsZSwgdW5zaWduZWQgYXV0b1Jl
cGVhdFRyYWNrc0NvdW50KQordW5zaWduZWQgR3JpZFBvc2l0aW9uc1Jlc29sdmVyOjpleHBsaWNp
dEdyaWRDb2x1bW5Db3VudChjb25zdCBSZW5kZXJHcmlkJiBncmlkQ29udGFpbmVyKQogewotICAg
IHJldHVybiBzdGQ6Om1pbjx1bnNpZ25lZD4oc3RkOjptYXgoZ3JpZENvbnRhaW5lclN0eWxlLmdy
aWRDb2x1bW5zKCkuc2l6ZSgpICsgYXV0b1JlcGVhdFRyYWNrc0NvdW50LCBncmlkQ29udGFpbmVy
U3R5bGUubmFtZWRHcmlkQXJlYUNvbHVtbkNvdW50KCkpLCBHcmlkUG9zaXRpb246Om1heCgpKTsK
KyAgICBib29sIHNwZWNpZmllZFN1YmdyaWQgPSBncmlkQ29udGFpbmVyLnN0eWxlKCkuZ3JpZFN1
YmdyaWRDb2x1bW5zKCk7CisgICAgaWYgKHNwZWNpZmllZFN1YmdyaWQgJiYgZ3JpZENvbnRhaW5l
ci5pc1N1YmdyaWRDb2x1bW5zKCkpIHsKKyAgICAgICAgY29uc3QgUmVuZGVyR3JpZCYgcGFyZW50
ID0gKmRvd25jYXN0PFJlbmRlckdyaWQ+KGdyaWRDb250YWluZXIucGFyZW50KCkpOworICAgICAg
ICBHcmlkVHJhY2tTaXppbmdEaXJlY3Rpb24gZGlyZWN0aW9uID0gZ3JpZENvbnRhaW5lci5pc0hv
cml6b250YWxXcml0aW5nTW9kZSgpID09IHBhcmVudC5pc0hvcml6b250YWxXcml0aW5nTW9kZSgp
ID8gRm9yQ29sdW1ucyA6IEZvclJvd3M7CisgICAgICAgIHJldHVybiBwYXJlbnQuZ3JpZFNwYW5G
b3JDaGlsZChncmlkQ29udGFpbmVyLCBkaXJlY3Rpb24pLmludGVnZXJTcGFuKCk7CisgICAgfQor
ICAgIGF1dG8gc3BlY2lmaWVkQ29sdW1ucyA9IHNwZWNpZmllZFN1YmdyaWQgPyAwIDogZ3JpZENv
bnRhaW5lci5zdHlsZSgpLmdyaWRDb2x1bW5zKCkuc2l6ZSgpOworICAgIHJldHVybiBzdGQ6Om1p
bjx1bnNpZ25lZD4oc3RkOjptYXgoc3BlY2lmaWVkQ29sdW1ucyArIGdyaWRDb250YWluZXIuYXV0
b1JlcGVhdENvdW50Rm9yRGlyZWN0aW9uKEZvckNvbHVtbnMpLCBncmlkQ29udGFpbmVyLnN0eWxl
KCkubmFtZWRHcmlkQXJlYUNvbHVtbkNvdW50KCkpLCBHcmlkUG9zaXRpb246Om1heCgpKTsKIH0K
IAotdW5zaWduZWQgR3JpZFBvc2l0aW9uc1Jlc29sdmVyOjpleHBsaWNpdEdyaWRSb3dDb3VudChj
b25zdCBSZW5kZXJTdHlsZSYgZ3JpZENvbnRhaW5lclN0eWxlLCB1bnNpZ25lZCBhdXRvUmVwZWF0
VHJhY2tzQ291bnQpCit1bnNpZ25lZCBHcmlkUG9zaXRpb25zUmVzb2x2ZXI6OmV4cGxpY2l0R3Jp
ZFJvd0NvdW50KGNvbnN0IFJlbmRlckdyaWQmIGdyaWRDb250YWluZXIpCiB7Ci0gICAgcmV0dXJu
IHN0ZDo6bWluPHVuc2lnbmVkPihzdGQ6Om1heChncmlkQ29udGFpbmVyU3R5bGUuZ3JpZFJvd3Mo
KS5zaXplKCkgKyBhdXRvUmVwZWF0VHJhY2tzQ291bnQsIGdyaWRDb250YWluZXJTdHlsZS5uYW1l
ZEdyaWRBcmVhUm93Q291bnQoKSksIEdyaWRQb3NpdGlvbjo6bWF4KCkpOworICAgIGJvb2wgc3Bl
Y2lmaWVkU3ViZ3JpZCA9IGdyaWRDb250YWluZXIuc3R5bGUoKS5ncmlkU3ViZ3JpZFJvd3MoKTsK
KyAgICBpZiAoc3BlY2lmaWVkU3ViZ3JpZCAmJiBncmlkQ29udGFpbmVyLmlzU3ViZ3JpZFJvd3Mo
KSkgeworICAgICAgICBjb25zdCBSZW5kZXJHcmlkJiBwYXJlbnQgPSAqZG93bmNhc3Q8UmVuZGVy
R3JpZD4oZ3JpZENvbnRhaW5lci5wYXJlbnQoKSk7CisgICAgICAgIEdyaWRUcmFja1NpemluZ0Rp
cmVjdGlvbiBkaXJlY3Rpb24gPSBncmlkQ29udGFpbmVyLmlzSG9yaXpvbnRhbFdyaXRpbmdNb2Rl
KCkgPT0gcGFyZW50LmlzSG9yaXpvbnRhbFdyaXRpbmdNb2RlKCkgPyBGb3JSb3dzIDogRm9yQ29s
dW1uczsKKyAgICAgICAgcmV0dXJuIHBhcmVudC5ncmlkU3BhbkZvckNoaWxkKGdyaWRDb250YWlu
ZXIsIGRpcmVjdGlvbikuaW50ZWdlclNwYW4oKTsKKyAgICB9CisgICAgYXV0byBzcGVjaWZpZWRS
b3dzID0gc3BlY2lmaWVkU3ViZ3JpZCA/IDAgOiBncmlkQ29udGFpbmVyLnN0eWxlKCkuZ3JpZFJv
d3MoKS5zaXplKCk7CisgICAgcmV0dXJuIHN0ZDo6bWluPHVuc2lnbmVkPihzdGQ6Om1heChzcGVj
aWZpZWRSb3dzICsgZ3JpZENvbnRhaW5lci5hdXRvUmVwZWF0Q291bnRGb3JEaXJlY3Rpb24oRm9y
Um93cyksIGdyaWRDb250YWluZXIuc3R5bGUoKS5uYW1lZEdyaWRBcmVhUm93Q291bnQoKSksIEdy
aWRQb3NpdGlvbjo6bWF4KCkpOwogfQogCi1zdGF0aWMgdW5zaWduZWQgZXhwbGljaXRHcmlkU2l6
ZUZvclNpZGUoY29uc3QgUmVuZGVyU3R5bGUmIGdyaWRDb250YWluZXJTdHlsZSwgR3JpZFBvc2l0
aW9uU2lkZSBzaWRlLCB1bnNpZ25lZCBhdXRvUmVwZWF0VHJhY2tzQ291bnQpCitzdGF0aWMgdW5z
aWduZWQgZXhwbGljaXRHcmlkU2l6ZUZvclNpZGUoY29uc3QgUmVuZGVyR3JpZCYgZ3JpZENvbnRh
aW5lciwgR3JpZFBvc2l0aW9uU2lkZSBzaWRlKQogewotICAgIHJldHVybiBpc0NvbHVtblNpZGUo
c2lkZSkgPyBHcmlkUG9zaXRpb25zUmVzb2x2ZXI6OmV4cGxpY2l0R3JpZENvbHVtbkNvdW50KGdy
aWRDb250YWluZXJTdHlsZSwgYXV0b1JlcGVhdFRyYWNrc0NvdW50KSA6IEdyaWRQb3NpdGlvbnNS
ZXNvbHZlcjo6ZXhwbGljaXRHcmlkUm93Q291bnQoZ3JpZENvbnRhaW5lclN0eWxlLCBhdXRvUmVw
ZWF0VHJhY2tzQ291bnQpOworICAgIHJldHVybiBpc0NvbHVtblNpZGUoc2lkZSkgPyBHcmlkUG9z
aXRpb25zUmVzb2x2ZXI6OmV4cGxpY2l0R3JpZENvbHVtbkNvdW50KGdyaWRDb250YWluZXIpIDog
R3JpZFBvc2l0aW9uc1Jlc29sdmVyOjpleHBsaWNpdEdyaWRSb3dDb3VudChncmlkQ29udGFpbmVy
KTsKIH0KIAogc3RhdGljIHVuc2lnbmVkIGxvb2tBaGVhZEZvck5hbWVkR3JpZExpbmUoaW50IHN0
YXJ0LCB1bnNpZ25lZCBudW1iZXJPZkxpbmVzLCB1bnNpZ25lZCBncmlkTGFzdExpbmUsIE5hbWVk
TGluZUNvbGxlY3Rpb24mIGxpbmVzQ29sbGVjdGlvbikKQEAgLTIyNCwxMiArMjY4LDEyIEBAIHN0
YXRpYyBpbnQgbG9va0JhY2tGb3JOYW1lZEdyaWRMaW5lKGludCBlbmQsIHVuc2lnbmVkIG51bWJl
ck9mTGluZXMsIGludCBncmlkTGFzCiAgICAgcmV0dXJuIHN0YXJ0ICsgMTsKIH0KIAotc3RhdGlj
IGludCByZXNvbHZlTmFtZWRHcmlkTGluZVBvc2l0aW9uRnJvbVN0eWxlKGNvbnN0IFJlbmRlclN0
eWxlJiBncmlkQ29udGFpbmVyU3R5bGUsIGNvbnN0IEdyaWRQb3NpdGlvbiYgcG9zaXRpb24sIEdy
aWRQb3NpdGlvblNpZGUgc2lkZSwgdW5zaWduZWQgYXV0b1JlcGVhdFRyYWNrc0NvdW50KQorc3Rh
dGljIGludCByZXNvbHZlTmFtZWRHcmlkTGluZVBvc2l0aW9uRnJvbVN0eWxlKGNvbnN0IFJlbmRl
ckdyaWQmIGdyaWRDb250YWluZXIsIGNvbnN0IEdyaWRQb3NpdGlvbiYgcG9zaXRpb24sIEdyaWRQ
b3NpdGlvblNpZGUgc2lkZSkKIHsKICAgICBBU1NFUlQoIXBvc2l0aW9uLm5hbWVkR3JpZExpbmUo
KS5pc051bGwoKSk7CiAKLSAgICB1bnNpZ25lZCBsYXN0TGluZSA9IGV4cGxpY2l0R3JpZFNpemVG
b3JTaWRlKGdyaWRDb250YWluZXJTdHlsZSwgc2lkZSwgYXV0b1JlcGVhdFRyYWNrc0NvdW50KTsK
LSAgICBOYW1lZExpbmVDb2xsZWN0aW9uIGxpbmVzQ29sbGVjdGlvbihncmlkQ29udGFpbmVyU3R5
bGUsIHBvc2l0aW9uLm5hbWVkR3JpZExpbmUoKSwgZGlyZWN0aW9uRnJvbVNpZGUoc2lkZSksIGxh
c3RMaW5lLCBhdXRvUmVwZWF0VHJhY2tzQ291bnQpOworICAgIHVuc2lnbmVkIGxhc3RMaW5lID0g
ZXhwbGljaXRHcmlkU2l6ZUZvclNpZGUoZ3JpZENvbnRhaW5lciwgc2lkZSk7CisgICAgTmFtZWRM
aW5lQ29sbGVjdGlvbiBsaW5lc0NvbGxlY3Rpb24oZ3JpZENvbnRhaW5lci5zdHlsZSgpLCBwb3Np
dGlvbi5uYW1lZEdyaWRMaW5lKCksIGRpcmVjdGlvbkZyb21TaWRlKHNpZGUpLCBsYXN0TGluZSwg
Z3JpZENvbnRhaW5lci5hdXRvUmVwZWF0Q291bnRGb3JEaXJlY3Rpb24oZGlyZWN0aW9uRnJvbVNp
ZGUoc2lkZSkpKTsKIAogICAgIGlmIChwb3NpdGlvbi5pc1Bvc2l0aXZlKCkpCiAgICAgICAgIHJl
dHVybiBsb29rQWhlYWRGb3JOYW1lZEdyaWRMaW5lKDAsIHN0ZDo6YWJzKHBvc2l0aW9uLmludGVn
ZXJQb3NpdGlvbigpKSwgbGFzdExpbmUsIGxpbmVzQ29sbGVjdGlvbik7CkBAIC0yNTAsMTkgKzI5
NCwxOSBAQCBzdGF0aWMgR3JpZFNwYW4gZGVmaW5pdGVHcmlkU3BhbldpdGhOYW1lZExpbmVTcGFu
QWdhaW5zdE9wcG9zaXRlKGludCBvcHBvc2l0ZUxpbgogICAgIHJldHVybiBHcmlkU3Bhbjo6dW50
cmFuc2xhdGVkRGVmaW5pdGVHcmlkU3BhbihzdGFydCwgZW5kKTsKIH0KIAotc3RhdGljIEdyaWRT
cGFuIHJlc29sdmVOYW1lZEdyaWRMaW5lUG9zaXRpb25BZ2FpbnN0T3Bwb3NpdGVQb3NpdGlvbihj
b25zdCBSZW5kZXJTdHlsZSYgZ3JpZENvbnRhaW5lclN0eWxlLCBpbnQgb3Bwb3NpdGVMaW5lLCBj
b25zdCBHcmlkUG9zaXRpb24mIHBvc2l0aW9uLCBHcmlkUG9zaXRpb25TaWRlIHNpZGUsIHVuc2ln
bmVkIGF1dG9SZXBlYXRUcmFja3NDb3VudCkKK3N0YXRpYyBHcmlkU3BhbiByZXNvbHZlTmFtZWRH
cmlkTGluZVBvc2l0aW9uQWdhaW5zdE9wcG9zaXRlUG9zaXRpb24oY29uc3QgUmVuZGVyR3JpZCYg
Z3JpZENvbnRhaW5lciwgaW50IG9wcG9zaXRlTGluZSwgY29uc3QgR3JpZFBvc2l0aW9uJiBwb3Np
dGlvbiwgR3JpZFBvc2l0aW9uU2lkZSBzaWRlKQogewogICAgIEFTU0VSVChwb3NpdGlvbi5pc1Nw
YW4oKSk7CiAgICAgQVNTRVJUKCFwb3NpdGlvbi5uYW1lZEdyaWRMaW5lKCkuaXNOdWxsKCkpOwog
ICAgIC8vIE5lZ2F0aXZlIHBvc2l0aW9ucyBhcmUgbm90IGFsbG93ZWQgcGVyIHRoZSBzcGVjaWZp
Y2F0aW9uIGFuZCBzaG91bGQgaGF2ZSBiZWVuIGhhbmRsZWQgZHVyaW5nIHBhcnNpbmcuCiAgICAg
QVNTRVJUKHBvc2l0aW9uLnNwYW5Qb3NpdGlvbigpID4gMCk7CiAKLSAgICB1bnNpZ25lZCBsYXN0
TGluZSA9IGV4cGxpY2l0R3JpZFNpemVGb3JTaWRlKGdyaWRDb250YWluZXJTdHlsZSwgc2lkZSwg
YXV0b1JlcGVhdFRyYWNrc0NvdW50KTsKLSAgICBOYW1lZExpbmVDb2xsZWN0aW9uIGxpbmVzQ29s
bGVjdGlvbihncmlkQ29udGFpbmVyU3R5bGUsIHBvc2l0aW9uLm5hbWVkR3JpZExpbmUoKSwgZGly
ZWN0aW9uRnJvbVNpZGUoc2lkZSksIGxhc3RMaW5lLCBhdXRvUmVwZWF0VHJhY2tzQ291bnQpOwor
ICAgIHVuc2lnbmVkIGxhc3RMaW5lID0gZXhwbGljaXRHcmlkU2l6ZUZvclNpZGUoZ3JpZENvbnRh
aW5lciwgc2lkZSk7CisgICAgTmFtZWRMaW5lQ29sbGVjdGlvbiBsaW5lc0NvbGxlY3Rpb24oZ3Jp
ZENvbnRhaW5lci5zdHlsZSgpLCBwb3NpdGlvbi5uYW1lZEdyaWRMaW5lKCksIGRpcmVjdGlvbkZy
b21TaWRlKHNpZGUpLCBsYXN0TGluZSwgZ3JpZENvbnRhaW5lci5hdXRvUmVwZWF0Q291bnRGb3JE
aXJlY3Rpb24oZGlyZWN0aW9uRnJvbVNpZGUoc2lkZSkpKTsKICAgICByZXR1cm4gZGVmaW5pdGVH
cmlkU3BhbldpdGhOYW1lZExpbmVTcGFuQWdhaW5zdE9wcG9zaXRlKG9wcG9zaXRlTGluZSwgcG9z
aXRpb24sIHNpZGUsIGxhc3RMaW5lLCBsaW5lc0NvbGxlY3Rpb24pOwogfQogCi1zdGF0aWMgR3Jp
ZFNwYW4gcmVzb2x2ZUdyaWRQb3NpdGlvbkFnYWluc3RPcHBvc2l0ZVBvc2l0aW9uKGNvbnN0IFJl
bmRlclN0eWxlJiBncmlkQ29udGFpbmVyU3R5bGUsIGludCBvcHBvc2l0ZUxpbmUsIGNvbnN0IEdy
aWRQb3NpdGlvbiYgcG9zaXRpb24sIEdyaWRQb3NpdGlvblNpZGUgc2lkZSwgdW5zaWduZWQgYXV0
b1JlcGVhdFRyYWNrc0NvdW50KQorc3RhdGljIEdyaWRTcGFuIHJlc29sdmVHcmlkUG9zaXRpb25B
Z2FpbnN0T3Bwb3NpdGVQb3NpdGlvbihjb25zdCBSZW5kZXJHcmlkJiBncmlkQ29udGFpbmVyLCBp
bnQgb3Bwb3NpdGVMaW5lLCBjb25zdCBHcmlkUG9zaXRpb24mIHBvc2l0aW9uLCBHcmlkUG9zaXRp
b25TaWRlIHNpZGUpCiB7CiAgICAgaWYgKHBvc2l0aW9uLmlzQXV0bygpKSB7CiAgICAgICAgIGlm
IChpc1N0YXJ0U2lkZShzaWRlKSkKQEAgLTI3NSw3ICszMTksNyBAQCBzdGF0aWMgR3JpZFNwYW4g
cmVzb2x2ZUdyaWRQb3NpdGlvbkFnYWluc3RPcHBvc2l0ZVBvc2l0aW9uKGNvbnN0IFJlbmRlclN0
eWxlJiBncgogCiAgICAgaWYgKCFwb3NpdGlvbi5uYW1lZEdyaWRMaW5lKCkuaXNOdWxsKCkpIHsK
ICAgICAgICAgLy8gc3BhbiAyICdjJyAtPiB3ZSBuZWVkIHRvIGZpbmQgdGhlIGFwcHJvcHJpYXRl
IGdyaWQgbGluZSBiZWZvcmUgLyBhZnRlciBvdXIgb3Bwb3NpdGUgcG9zaXRpb24uCi0gICAgICAg
IHJldHVybiByZXNvbHZlTmFtZWRHcmlkTGluZVBvc2l0aW9uQWdhaW5zdE9wcG9zaXRlUG9zaXRp
b24oZ3JpZENvbnRhaW5lclN0eWxlLCBvcHBvc2l0ZUxpbmUsIHBvc2l0aW9uLCBzaWRlLCBhdXRv
UmVwZWF0VHJhY2tzQ291bnQpOworICAgICAgICByZXR1cm4gcmVzb2x2ZU5hbWVkR3JpZExpbmVQ
b3NpdGlvbkFnYWluc3RPcHBvc2l0ZVBvc2l0aW9uKGdyaWRDb250YWluZXIsIG9wcG9zaXRlTGlu
ZSwgcG9zaXRpb24sIHNpZGUpOwogICAgIH0KIAogICAgIC8vICdzcGFuIDEnIGlzIGNvbnRhaW5l
ZCBpbnNpZGUgYSBzaW5nbGUgZ3JpZCB0cmFjayByZWdhcmRsZXNzIG9mIHRoZSBkaXJlY3Rpb24u
CkBAIC0zMTUsMjEgKzM1OSwyMSBAQCB1bnNpZ25lZCBHcmlkUG9zaXRpb25zUmVzb2x2ZXI6OnNw
YW5TaXplRm9yQXV0b1BsYWNlZEl0ZW0oY29uc3QgUmVuZGVyQm94JiBncmlkSQogICAgIHJldHVy
biBwb3NpdGlvbi5zcGFuUG9zaXRpb24oKTsKIH0KIAotc3RhdGljIGludCByZXNvbHZlR3JpZFBv
c2l0aW9uRnJvbVN0eWxlKGNvbnN0IFJlbmRlclN0eWxlJiBncmlkQ29udGFpbmVyU3R5bGUsIGNv
bnN0IEdyaWRQb3NpdGlvbiYgcG9zaXRpb24sIEdyaWRQb3NpdGlvblNpZGUgc2lkZSwgdW5zaWdu
ZWQgYXV0b1JlcGVhdFRyYWNrc0NvdW50KQorc3RhdGljIGludCByZXNvbHZlR3JpZFBvc2l0aW9u
RnJvbVN0eWxlKGNvbnN0IFJlbmRlckdyaWQmIGdyaWRDb250YWluZXIsIGNvbnN0IEdyaWRQb3Np
dGlvbiYgcG9zaXRpb24sIEdyaWRQb3NpdGlvblNpZGUgc2lkZSkKIHsKICAgICBzd2l0Y2ggKHBv
c2l0aW9uLnR5cGUoKSkgewogICAgIGNhc2UgRXhwbGljaXRQb3NpdGlvbjogewogICAgICAgICBB
U1NFUlQocG9zaXRpb24uaW50ZWdlclBvc2l0aW9uKCkpOwogCiAgICAgICAgIGlmICghcG9zaXRp
b24ubmFtZWRHcmlkTGluZSgpLmlzTnVsbCgpKQotICAgICAgICAgICAgcmV0dXJuIHJlc29sdmVO
YW1lZEdyaWRMaW5lUG9zaXRpb25Gcm9tU3R5bGUoZ3JpZENvbnRhaW5lclN0eWxlLCBwb3NpdGlv
biwgc2lkZSwgYXV0b1JlcGVhdFRyYWNrc0NvdW50KTsKKyAgICAgICAgICAgIHJldHVybiByZXNv
bHZlTmFtZWRHcmlkTGluZVBvc2l0aW9uRnJvbVN0eWxlKGdyaWRDb250YWluZXIsIHBvc2l0aW9u
LCBzaWRlKTsKIAogICAgICAgICAvLyBIYW5kbGUgPGludGVnZXI+IGV4cGxpY2l0IHBvc2l0aW9u
LgogICAgICAgICBpZiAocG9zaXRpb24uaXNQb3NpdGl2ZSgpKQogICAgICAgICAgICAgcmV0dXJu
IHBvc2l0aW9uLmludGVnZXJQb3NpdGlvbigpIC0gMTsKIAogICAgICAgICB1bnNpZ25lZCByZXNv
bHZlZFBvc2l0aW9uID0gc3RkOjphYnMocG9zaXRpb24uaW50ZWdlclBvc2l0aW9uKCkpIC0gMTsK
LSAgICAgICAgY29uc3QgdW5zaWduZWQgZW5kT2ZUcmFjayA9IGV4cGxpY2l0R3JpZFNpemVGb3JT
aWRlKGdyaWRDb250YWluZXJTdHlsZSwgc2lkZSwgYXV0b1JlcGVhdFRyYWNrc0NvdW50KTsKKyAg
ICAgICAgY29uc3QgdW5zaWduZWQgZW5kT2ZUcmFjayA9IGV4cGxpY2l0R3JpZFNpemVGb3JTaWRl
KGdyaWRDb250YWluZXIsIHNpZGUpOwogCiAgICAgICAgIHJldHVybiBlbmRPZlRyYWNrIC0gcmVz
b2x2ZWRQb3NpdGlvbjsKICAgICB9CkBAIC0zNDEsMTQgKzM4NSwxNCBAQCBzdGF0aWMgaW50IHJl
c29sdmVHcmlkUG9zaXRpb25Gcm9tU3R5bGUoY29uc3QgUmVuZGVyU3R5bGUmIGdyaWRDb250YWlu
ZXJTdHlsZSwgYwogICAgICAgICBTdHJpbmcgbmFtZWRHcmlkTGluZSA9IHBvc2l0aW9uLm5hbWVk
R3JpZExpbmUoKTsKICAgICAgICAgQVNTRVJUKCFwb3NpdGlvbi5uYW1lZEdyaWRMaW5lKCkuaXNO
dWxsKCkpOwogCi0gICAgICAgIHVuc2lnbmVkIGxhc3RMaW5lID0gZXhwbGljaXRHcmlkU2l6ZUZv
clNpZGUoZ3JpZENvbnRhaW5lclN0eWxlLCBzaWRlLCBhdXRvUmVwZWF0VHJhY2tzQ291bnQpOwot
ICAgICAgICBOYW1lZExpbmVDb2xsZWN0aW9uIGltcGxpY2l0TGluZXMoZ3JpZENvbnRhaW5lclN0
eWxlLCBpbXBsaWNpdE5hbWVkR3JpZExpbmVGb3JTaWRlKG5hbWVkR3JpZExpbmUsIHNpZGUpLCBk
aXJlY3Rpb25Gcm9tU2lkZShzaWRlKSwgbGFzdExpbmUsIGF1dG9SZXBlYXRUcmFja3NDb3VudCk7
CisgICAgICAgIHVuc2lnbmVkIGxhc3RMaW5lID0gZXhwbGljaXRHcmlkU2l6ZUZvclNpZGUoZ3Jp
ZENvbnRhaW5lciwgc2lkZSk7CisgICAgICAgIE5hbWVkTGluZUNvbGxlY3Rpb24gaW1wbGljaXRM
aW5lcyhncmlkQ29udGFpbmVyLnN0eWxlKCksIGltcGxpY2l0TmFtZWRHcmlkTGluZUZvclNpZGUo
bmFtZWRHcmlkTGluZSwgc2lkZSksIGRpcmVjdGlvbkZyb21TaWRlKHNpZGUpLCBsYXN0TGluZSwg
Z3JpZENvbnRhaW5lci5hdXRvUmVwZWF0Q291bnRGb3JEaXJlY3Rpb24oZGlyZWN0aW9uRnJvbVNp
ZGUoc2lkZSkpKTsKICAgICAgICAgaWYgKGltcGxpY2l0TGluZXMuaGFzTmFtZWRMaW5lcygpKQog
ICAgICAgICAgICAgcmV0dXJuIGltcGxpY2l0TGluZXMuZmlyc3RQb3NpdGlvbigpOwogCiAgICAg
ICAgIC8vIE90aGVyd2lzZSwgaWYgdGhlcmUgaXMgYSBuYW1lZCBsaW5lIHdpdGggdGhlIHNwZWNp
ZmllZCBuYW1lLCBjb250cmlidXRlcyB0aGUgZmlyc3Qgc3VjaCBsaW5lIHRvIHRoZSBncmlkCiAg
ICAgICAgIC8vIGl0ZW0ncyBwbGFjZW1lbnQuCi0gICAgICAgIE5hbWVkTGluZUNvbGxlY3Rpb24g
ZXhwbGljaXRMaW5lcyhncmlkQ29udGFpbmVyU3R5bGUsIG5hbWVkR3JpZExpbmUsIGRpcmVjdGlv
bkZyb21TaWRlKHNpZGUpLCBsYXN0TGluZSwgYXV0b1JlcGVhdFRyYWNrc0NvdW50KTsKKyAgICAg
ICAgTmFtZWRMaW5lQ29sbGVjdGlvbiBleHBsaWNpdExpbmVzKGdyaWRDb250YWluZXIuc3R5bGUo
KSwgbmFtZWRHcmlkTGluZSwgZGlyZWN0aW9uRnJvbVNpZGUoc2lkZSksIGxhc3RMaW5lLCBncmlk
Q29udGFpbmVyLmF1dG9SZXBlYXRDb3VudEZvckRpcmVjdGlvbihkaXJlY3Rpb25Gcm9tU2lkZShz
aWRlKSkpOwogICAgICAgICBpZiAoZXhwbGljaXRMaW5lcy5oYXNOYW1lZExpbmVzKCkpCiAgICAg
ICAgICAgICByZXR1cm4gZXhwbGljaXRMaW5lcy5maXJzdFBvc2l0aW9uKCk7CiAKQEAgLTM2NSw4
ICs0MDksMTEgQEAgc3RhdGljIGludCByZXNvbHZlR3JpZFBvc2l0aW9uRnJvbVN0eWxlKGNvbnN0
IFJlbmRlclN0eWxlJiBncmlkQ29udGFpbmVyU3R5bGUsIGMKICAgICByZXR1cm4gMDsKIH0KIAot
R3JpZFNwYW4gR3JpZFBvc2l0aW9uc1Jlc29sdmVyOjpyZXNvbHZlR3JpZFBvc2l0aW9uc0Zyb21T
dHlsZShjb25zdCBSZW5kZXJTdHlsZSYgZ3JpZENvbnRhaW5lclN0eWxlLCBjb25zdCBSZW5kZXJC
b3gmIGdyaWRJdGVtLCBHcmlkVHJhY2tTaXppbmdEaXJlY3Rpb24gZGlyZWN0aW9uLCB1bnNpZ25l
ZCBhdXRvUmVwZWF0VHJhY2tzQ291bnQpCitHcmlkU3BhbiBHcmlkUG9zaXRpb25zUmVzb2x2ZXI6
OnJlc29sdmVHcmlkUG9zaXRpb25zRnJvbVN0eWxlKGNvbnN0IFJlbmRlckJveCYgZ3JpZEl0ZW0s
IEdyaWRUcmFja1NpemluZ0RpcmVjdGlvbiBkaXJlY3Rpb24pCiB7CisgICAgYXV0byogZ3JpZENv
bnRhaW5lciA9IGRvd25jYXN0PFJlbmRlckdyaWQ+KGdyaWRJdGVtLmNvbnRhaW5pbmdCbG9jaygp
KTsKKyAgICBBU1NFUlQoZ3JpZENvbnRhaW5lcik7CisKICAgICBHcmlkUG9zaXRpb24gaW5pdGlh
bFBvc2l0aW9uLCBmaW5hbFBvc2l0aW9uOwogICAgIGFkanVzdEdyaWRQb3NpdGlvbnNGcm9tU3R5
bGUoZ3JpZEl0ZW0sIGRpcmVjdGlvbiwgaW5pdGlhbFBvc2l0aW9uLCBmaW5hbFBvc2l0aW9uKTsK
IApAQCAtMzc5LDE4ICs0MjYsMTggQEAgR3JpZFNwYW4gR3JpZFBvc2l0aW9uc1Jlc29sdmVyOjpy
ZXNvbHZlR3JpZFBvc2l0aW9uc0Zyb21TdHlsZShjb25zdCBSZW5kZXJTdHlsZSYKIAogICAgIGlm
IChpbml0aWFsUG9zaXRpb24uc2hvdWxkQmVSZXNvbHZlZEFnYWluc3RPcHBvc2l0ZVBvc2l0aW9u
KCkpIHsKICAgICAgICAgLy8gSW5mZXIgdGhlIHBvc2l0aW9uIGZyb20gdGhlIGZpbmFsIHBvc2l0
aW9uICgnYXV0byAvIDEnIG9yICdzcGFuIDIgLyAzJyBjYXNlKS4KLSAgICAgICAgYXV0byBlbmRM
aW5lID0gcmVzb2x2ZUdyaWRQb3NpdGlvbkZyb21TdHlsZShncmlkQ29udGFpbmVyU3R5bGUsIGZp
bmFsUG9zaXRpb24sIGZpbmFsU2lkZSwgYXV0b1JlcGVhdFRyYWNrc0NvdW50KTsKLSAgICAgICAg
cmV0dXJuIHJlc29sdmVHcmlkUG9zaXRpb25BZ2FpbnN0T3Bwb3NpdGVQb3NpdGlvbihncmlkQ29u
dGFpbmVyU3R5bGUsIGVuZExpbmUsIGluaXRpYWxQb3NpdGlvbiwgaW5pdGlhbFNpZGUsIGF1dG9S
ZXBlYXRUcmFja3NDb3VudCk7CisgICAgICAgIGF1dG8gZW5kTGluZSA9IHJlc29sdmVHcmlkUG9z
aXRpb25Gcm9tU3R5bGUoKmdyaWRDb250YWluZXIsIGZpbmFsUG9zaXRpb24sIGZpbmFsU2lkZSk7
CisgICAgICAgIHJldHVybiByZXNvbHZlR3JpZFBvc2l0aW9uQWdhaW5zdE9wcG9zaXRlUG9zaXRp
b24oKmdyaWRDb250YWluZXIsIGVuZExpbmUsIGluaXRpYWxQb3NpdGlvbiwgaW5pdGlhbFNpZGUp
OwogICAgIH0KIAogICAgIGlmIChmaW5hbFBvc2l0aW9uLnNob3VsZEJlUmVzb2x2ZWRBZ2FpbnN0
T3Bwb3NpdGVQb3NpdGlvbigpKSB7CiAgICAgICAgIC8vIEluZmVyIG91ciBwb3NpdGlvbiBmcm9t
IHRoZSBpbml0aWFsIHBvc2l0aW9uICgnMSAvIGF1dG8nIG9yICczIC8gc3BhbiAyJyBjYXNlKS4K
LSAgICAgICAgYXV0byBzdGFydExpbmUgPSByZXNvbHZlR3JpZFBvc2l0aW9uRnJvbVN0eWxlKGdy
aWRDb250YWluZXJTdHlsZSwgaW5pdGlhbFBvc2l0aW9uLCBpbml0aWFsU2lkZSwgYXV0b1JlcGVh
dFRyYWNrc0NvdW50KTsKLSAgICAgICAgcmV0dXJuIHJlc29sdmVHcmlkUG9zaXRpb25BZ2FpbnN0
T3Bwb3NpdGVQb3NpdGlvbihncmlkQ29udGFpbmVyU3R5bGUsIHN0YXJ0TGluZSwgZmluYWxQb3Np
dGlvbiwgZmluYWxTaWRlLCBhdXRvUmVwZWF0VHJhY2tzQ291bnQpOworICAgICAgICBhdXRvIHN0
YXJ0TGluZSA9IHJlc29sdmVHcmlkUG9zaXRpb25Gcm9tU3R5bGUoKmdyaWRDb250YWluZXIsIGlu
aXRpYWxQb3NpdGlvbiwgaW5pdGlhbFNpZGUpOworICAgICAgICByZXR1cm4gcmVzb2x2ZUdyaWRQ
b3NpdGlvbkFnYWluc3RPcHBvc2l0ZVBvc2l0aW9uKCpncmlkQ29udGFpbmVyLCBzdGFydExpbmUs
IGZpbmFsUG9zaXRpb24sIGZpbmFsU2lkZSk7CiAgICAgfQogCi0gICAgaW50IHN0YXJ0TGluZSA9
IHJlc29sdmVHcmlkUG9zaXRpb25Gcm9tU3R5bGUoZ3JpZENvbnRhaW5lclN0eWxlLCBpbml0aWFs
UG9zaXRpb24sIGluaXRpYWxTaWRlLCBhdXRvUmVwZWF0VHJhY2tzQ291bnQpOwotICAgIGludCBl
bmRMaW5lID0gcmVzb2x2ZUdyaWRQb3NpdGlvbkZyb21TdHlsZShncmlkQ29udGFpbmVyU3R5bGUs
IGZpbmFsUG9zaXRpb24sIGZpbmFsU2lkZSwgYXV0b1JlcGVhdFRyYWNrc0NvdW50KTsKKyAgICBp
bnQgc3RhcnRMaW5lID0gcmVzb2x2ZUdyaWRQb3NpdGlvbkZyb21TdHlsZSgqZ3JpZENvbnRhaW5l
ciwgaW5pdGlhbFBvc2l0aW9uLCBpbml0aWFsU2lkZSk7CisgICAgaW50IGVuZExpbmUgPSByZXNv
bHZlR3JpZFBvc2l0aW9uRnJvbVN0eWxlKCpncmlkQ29udGFpbmVyLCBmaW5hbFBvc2l0aW9uLCBm
aW5hbFNpZGUpOwogCiAgICAgaWYgKHN0YXJ0TGluZSA+IGVuZExpbmUpCiAgICAgICAgIHN0ZDo6
c3dhcChzdGFydExpbmUsIGVuZExpbmUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL3N0eWxlL0dyaWRQb3NpdGlvbnNSZXNvbHZlci5oIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL3N0eWxlL0dyaWRQb3NpdGlvbnNSZXNvbHZlci5oCmluZGV4IDYyM2I2MmM2YzI0MS4u
NzI0MTk1NzczNTQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUv
R3JpZFBvc2l0aW9uc1Jlc29sdmVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0
eWxlL0dyaWRQb3NpdGlvbnNSZXNvbHZlci5oCkBAIC0zNiw2ICszNiw3IEBAIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAogY2xhc3MgR3JpZFNwYW47CiBjbGFzcyBSZW5kZXJCb3g7CitjbGFzcyBSZW5k
ZXJHcmlkOwogY2xhc3MgUmVuZGVyU3R5bGU7CiAKIGVudW0gR3JpZFRyYWNrU2l6aW5nRGlyZWN0
aW9uIHsKQEAgLTczLDkgKzc0LDkgQEAgcHVibGljOgogICAgIHN0YXRpYyBHcmlkUG9zaXRpb25T
aWRlIGluaXRpYWxQb3NpdGlvblNpZGUoR3JpZFRyYWNrU2l6aW5nRGlyZWN0aW9uKTsKICAgICBz
dGF0aWMgR3JpZFBvc2l0aW9uU2lkZSBmaW5hbFBvc2l0aW9uU2lkZShHcmlkVHJhY2tTaXppbmdE
aXJlY3Rpb24pOwogICAgIHN0YXRpYyB1bnNpZ25lZCBzcGFuU2l6ZUZvckF1dG9QbGFjZWRJdGVt
KGNvbnN0IFJlbmRlckJveCYsIEdyaWRUcmFja1NpemluZ0RpcmVjdGlvbik7Ci0gICAgc3RhdGlj
IEdyaWRTcGFuIHJlc29sdmVHcmlkUG9zaXRpb25zRnJvbVN0eWxlKGNvbnN0IFJlbmRlclN0eWxl
JiwgY29uc3QgUmVuZGVyQm94JiwgR3JpZFRyYWNrU2l6aW5nRGlyZWN0aW9uLCB1bnNpZ25lZCBh
dXRvUmVwZWF0VHJhY2tzQ291bnQpOwotICAgIHN0YXRpYyB1bnNpZ25lZCBleHBsaWNpdEdyaWRD
b2x1bW5Db3VudChjb25zdCBSZW5kZXJTdHlsZSYsIHVuc2lnbmVkIGF1dG9SZXBlYXRDb2x1bW5z
Q291bnQpOwotICAgIHN0YXRpYyB1bnNpZ25lZCBleHBsaWNpdEdyaWRSb3dDb3VudChjb25zdCBS
ZW5kZXJTdHlsZSYsIHVuc2lnbmVkIGF1dG9SZXBlYXRSb3dzQ291bnQpOworICAgIHN0YXRpYyBH
cmlkU3BhbiByZXNvbHZlR3JpZFBvc2l0aW9uc0Zyb21TdHlsZShjb25zdCBSZW5kZXJCb3gmLCBH
cmlkVHJhY2tTaXppbmdEaXJlY3Rpb24pOworICAgIHN0YXRpYyB1bnNpZ25lZCBleHBsaWNpdEdy
aWRDb2x1bW5Db3VudChjb25zdCBSZW5kZXJHcmlkJik7CisgICAgc3RhdGljIHVuc2lnbmVkIGV4
cGxpY2l0R3JpZFJvd0NvdW50KGNvbnN0IFJlbmRlckdyaWQmKTsKIH07CiAKIH0gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9S
ZW5kZXJTdHlsZS5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxl
LmgKaW5kZXggYWMxNDJjZjAwNmRhLi4wMTllNmVjNzI0ZWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5oCkBAIC01ODEsNiArNTgxLDggQEAgcHVibGlj
OgogICAgIHNpemVfdCBuYW1lZEdyaWRBcmVhUm93Q291bnQoKSBjb25zdCB7IHJldHVybiBtX3Jh
cmVOb25Jbmhlcml0ZWREYXRhLT5ncmlkLT5uYW1lZEdyaWRBcmVhUm93Q291bnQ7IH0KICAgICBz
aXplX3QgbmFtZWRHcmlkQXJlYUNvbHVtbkNvdW50KCkgY29uc3QgeyByZXR1cm4gbV9yYXJlTm9u
SW5oZXJpdGVkRGF0YS0+Z3JpZC0+bmFtZWRHcmlkQXJlYUNvbHVtbkNvdW50OyB9CiAgICAgR3Jp
ZEF1dG9GbG93IGdyaWRBdXRvRmxvdygpIGNvbnN0IHsgcmV0dXJuIHN0YXRpY19jYXN0PEdyaWRB
dXRvRmxvdz4obV9yYXJlTm9uSW5oZXJpdGVkRGF0YS0+Z3JpZC0+Z3JpZEF1dG9GbG93KTsgfQor
ICAgIGJvb2wgZ3JpZFN1YmdyaWRSb3dzKCkgY29uc3QgeyByZXR1cm4gbV9yYXJlTm9uSW5oZXJp
dGVkRGF0YS0+Z3JpZC0+c3ViZ3JpZFJvd3M7IH0KKyAgICBib29sIGdyaWRTdWJncmlkQ29sdW1u
cygpIGNvbnN0IHsgcmV0dXJuIG1fcmFyZU5vbkluaGVyaXRlZERhdGEtPmdyaWQtPnN1YmdyaWRD
b2x1bW5zOyB9CiAgICAgYm9vbCBpc0dyaWRBdXRvRmxvd0RpcmVjdGlvblJvdygpIGNvbnN0IHsg
cmV0dXJuIChtX3JhcmVOb25Jbmhlcml0ZWREYXRhLT5ncmlkLT5ncmlkQXV0b0Zsb3cgJiBJbnRl
cm5hbEF1dG9GbG93RGlyZWN0aW9uUm93KTsgfQogICAgIGJvb2wgaXNHcmlkQXV0b0Zsb3dEaXJl
Y3Rpb25Db2x1bW4oKSBjb25zdCB7IHJldHVybiAobV9yYXJlTm9uSW5oZXJpdGVkRGF0YS0+Z3Jp
ZC0+Z3JpZEF1dG9GbG93ICYgSW50ZXJuYWxBdXRvRmxvd0RpcmVjdGlvbkNvbHVtbik7IH0KICAg
ICBib29sIGlzR3JpZEF1dG9GbG93QWxnb3JpdGhtU3BhcnNlKCkgY29uc3QgeyByZXR1cm4gKG1f
cmFyZU5vbkluaGVyaXRlZERhdGEtPmdyaWQtPmdyaWRBdXRvRmxvdyAmIEludGVybmFsQXV0b0Zs
b3dBbGdvcml0aG1TcGFyc2UpOyB9CkBAIC0xMjAzLDYgKzEyMDUsOCBAQCBwdWJsaWM6CiAgICAg
dm9pZCBzZXROYW1lZEdyaWRBcmVhUm93Q291bnQoc2l6ZV90IHJvd0NvdW50KSB7IFNFVF9ORVNU
RURfVkFSKG1fcmFyZU5vbkluaGVyaXRlZERhdGEsIGdyaWQsIG5hbWVkR3JpZEFyZWFSb3dDb3Vu
dCwgcm93Q291bnQpOyB9CiAgICAgdm9pZCBzZXROYW1lZEdyaWRBcmVhQ29sdW1uQ291bnQoc2l6
ZV90IGNvbHVtbkNvdW50KSB7IFNFVF9ORVNURURfVkFSKG1fcmFyZU5vbkluaGVyaXRlZERhdGEs
IGdyaWQsIG5hbWVkR3JpZEFyZWFDb2x1bW5Db3VudCwgY29sdW1uQ291bnQpOyB9CiAgICAgdm9p
ZCBzZXRHcmlkQXV0b0Zsb3coR3JpZEF1dG9GbG93IGZsb3cpIHsgU0VUX05FU1RFRF9WQVIobV9y
YXJlTm9uSW5oZXJpdGVkRGF0YSwgZ3JpZCwgZ3JpZEF1dG9GbG93LCBmbG93KTsgfQorICAgIHZv
aWQgc2V0R3JpZFN1YmdyaWRSb3dzKGJvb2wgc3ViZ3JpZCkgeyBTRVRfTkVTVEVEX1ZBUihtX3Jh
cmVOb25Jbmhlcml0ZWREYXRhLCBncmlkLCBzdWJncmlkUm93cywgc3ViZ3JpZCk7IH0KKyAgICB2
b2lkIHNldEdyaWRTdWJncmlkQ29sdW1ucyhib29sIHN1YmdyaWQpIHsgU0VUX05FU1RFRF9WQVIo
bV9yYXJlTm9uSW5oZXJpdGVkRGF0YSwgZ3JpZCwgc3ViZ3JpZENvbHVtbnMsIHN1YmdyaWQpOyB9
CiAgICAgdm9pZCBzZXRHcmlkSXRlbUNvbHVtblN0YXJ0KGNvbnN0IEdyaWRQb3NpdGlvbiYgY29s
dW1uU3RhcnRQb3NpdGlvbikgeyBTRVRfTkVTVEVEX1ZBUihtX3JhcmVOb25Jbmhlcml0ZWREYXRh
LCBncmlkSXRlbSwgZ3JpZENvbHVtblN0YXJ0LCBjb2x1bW5TdGFydFBvc2l0aW9uKTsgfQogICAg
IHZvaWQgc2V0R3JpZEl0ZW1Db2x1bW5FbmQoY29uc3QgR3JpZFBvc2l0aW9uJiBjb2x1bW5FbmRQ
b3NpdGlvbikgeyBTRVRfTkVTVEVEX1ZBUihtX3JhcmVOb25Jbmhlcml0ZWREYXRhLCBncmlkSXRl
bSwgZ3JpZENvbHVtbkVuZCwgY29sdW1uRW5kUG9zaXRpb24pOyB9CiAgICAgdm9pZCBzZXRHcmlk
SXRlbVJvd1N0YXJ0KGNvbnN0IEdyaWRQb3NpdGlvbiYgcm93U3RhcnRQb3NpdGlvbikgeyBTRVRf
TkVTVEVEX1ZBUihtX3JhcmVOb25Jbmhlcml0ZWREYXRhLCBncmlkSXRlbSwgZ3JpZFJvd1N0YXJ0
LCByb3dTdGFydFBvc2l0aW9uKTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL3N0eWxlL1N0eWxlR3JpZERhdGEuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0
eWxlL1N0eWxlR3JpZERhdGEuY3BwCmluZGV4IDU2NmYzYmIxZjc0MS4uOTIzOTE5N2M1ZmY1IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVHcmlkRGF0YS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlR3JpZERhdGEuY3Bw
CkBAIC01NSw2ICs1NSw4IEBAIFN0eWxlR3JpZERhdGE6OlN0eWxlR3JpZERhdGEoKQogICAgICwg
YXV0b1JlcGVhdFJvd3NJbnNlcnRpb25Qb2ludChSZW5kZXJTdHlsZTo6aW5pdGlhbEdyaWRBdXRv
UmVwZWF0SW5zZXJ0aW9uUG9pbnQoKSkKICAgICAsIGF1dG9SZXBlYXRDb2x1bW5zVHlwZShSZW5k
ZXJTdHlsZTo6aW5pdGlhbEdyaWRBdXRvUmVwZWF0VHlwZSgpKQogICAgICwgYXV0b1JlcGVhdFJv
d3NUeXBlKFJlbmRlclN0eWxlOjppbml0aWFsR3JpZEF1dG9SZXBlYXRUeXBlKCkpCisgICAgLCBz
dWJncmlkUm93cyhmYWxzZSkKKyAgICAsIHN1YmdyaWRDb2x1bW5zKGZhbHNlKQogewogfQogCkBA
IC04NCw2ICs4Niw4IEBAIGlubGluZSBTdHlsZUdyaWREYXRhOjpTdHlsZUdyaWREYXRhKGNvbnN0
IFN0eWxlR3JpZERhdGEmIG8pCiAgICAgLCBhdXRvUmVwZWF0Um93c0luc2VydGlvblBvaW50KG8u
YXV0b1JlcGVhdFJvd3NJbnNlcnRpb25Qb2ludCkKICAgICAsIGF1dG9SZXBlYXRDb2x1bW5zVHlw
ZShvLmF1dG9SZXBlYXRDb2x1bW5zVHlwZSkKICAgICAsIGF1dG9SZXBlYXRSb3dzVHlwZShvLmF1
dG9SZXBlYXRSb3dzVHlwZSkKKyAgICAsIHN1YmdyaWRSb3dzKG8uc3ViZ3JpZFJvd3MpCisgICAg
LCBzdWJncmlkQ29sdW1ucyhvLnN1YmdyaWRDb2x1bW5zKQogewogfQogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVHcmlkRGF0YS5oIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlR3JpZERhdGEuaAppbmRleCA0M2RlMzg2MGQ1YTku
LmViOWIzMmVmOTBjMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxl
L1N0eWxlR3JpZERhdGEuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5
bGVHcmlkRGF0YS5oCkBAIC01Nyw3ICs1Nyw4IEBAIHB1YmxpYzoKICAgICAgICAgICAgICYmIG9y
ZGVyZWROYW1lZEdyaWRSb3dMaW5lcyA9PSBvLm9yZGVyZWROYW1lZEdyaWRSb3dMaW5lcyAmJiBv
cmRlcmVkTmFtZWRHcmlkQ29sdW1uTGluZXMgPT0gby5vcmRlcmVkTmFtZWRHcmlkQ29sdW1uTGlu
ZXMKICAgICAgICAgICAgICYmIGdyaWRBdXRvUmVwZWF0Q29sdW1ucyA9PSBvLmdyaWRBdXRvUmVw
ZWF0Q29sdW1ucyAmJiBncmlkQXV0b1JlcGVhdFJvd3MgPT0gby5ncmlkQXV0b1JlcGVhdFJvd3MK
ICAgICAgICAgICAgICYmIGF1dG9SZXBlYXRDb2x1bW5zSW5zZXJ0aW9uUG9pbnQgPT0gby5hdXRv
UmVwZWF0Q29sdW1uc0luc2VydGlvblBvaW50ICYmIGF1dG9SZXBlYXRSb3dzSW5zZXJ0aW9uUG9p
bnQgPT0gby5hdXRvUmVwZWF0Um93c0luc2VydGlvblBvaW50Ci0gICAgICAgICAgICAmJiBhdXRv
UmVwZWF0Q29sdW1uc1R5cGUgPT0gby5hdXRvUmVwZWF0Q29sdW1uc1R5cGUgJiYgYXV0b1JlcGVh
dFJvd3NUeXBlID09IG8uYXV0b1JlcGVhdFJvd3NUeXBlOworICAgICAgICAgICAgJiYgYXV0b1Jl
cGVhdENvbHVtbnNUeXBlID09IG8uYXV0b1JlcGVhdENvbHVtbnNUeXBlICYmIGF1dG9SZXBlYXRS
b3dzVHlwZSA9PSBvLmF1dG9SZXBlYXRSb3dzVHlwZSAmJiBzdWJncmlkUm93cyA9PSBvLnN1Ymdy
aWRSb3dzCisgICAgICAgICAgICAmJiBzdWJncmlkQ29sdW1ucyA9PSBvLnN1YmdyaWRDb2x1bW5z
OwogICAgIH0KIAogICAgIGJvb2wgb3BlcmF0b3IhPShjb25zdCBTdHlsZUdyaWREYXRhJiBvKSBj
b25zdApAQCAtMTAyLDYgKzEwMyw5IEBAIHB1YmxpYzoKICAgICBBdXRvUmVwZWF0VHlwZSBhdXRv
UmVwZWF0Q29sdW1uc1R5cGU7CiAgICAgQXV0b1JlcGVhdFR5cGUgYXV0b1JlcGVhdFJvd3NUeXBl
OwogCisgICAgYm9vbCBzdWJncmlkUm93czsKKyAgICBib29sIHN1YmdyaWRDb2x1bW5zOworCiBw
cml2YXRlOgogICAgIFN0eWxlR3JpZERhdGEoKTsKICAgICBTdHlsZUdyaWREYXRhKGNvbnN0IFN0
eWxlR3JpZERhdGEmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlQnVp
bGRlckNvbnZlcnRlci5oIGIvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVCdWlsZGVyQ29udmVy
dGVyLmgKaW5kZXggMGY5MGJjMjI1OWVkLi4zNzhhMTU0YjY2OWUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3N0eWxlL1N0eWxlQnVpbGRlckNvbnZlcnRlci5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3N0eWxlL1N0eWxlQnVpbGRlckNvbnZlcnRlci5oCkBAIC00NCw2ICs0NCw3IEBACiAjaW5j
bHVkZSAiQ1NTUHJpbWl0aXZlVmFsdWVNYXBwaW5ncy5oIgogI2luY2x1ZGUgIkNTU1JheVZhbHVl
LmgiCiAjaW5jbHVkZSAiQ1NTUmVmbGVjdFZhbHVlLmgiCisjaW5jbHVkZSAiQ1NTU3ViZ3JpZFZh
bHVlLmgiCiAjaW5jbHVkZSAiQ2FsY0V4cHJlc3Npb25MZW5ndGguaCIKICNpbmNsdWRlICJDYWxj
RXhwcmVzc2lvbk9wZXJhdGlvbi5oIgogI2luY2x1ZGUgIkZvbnRQYWxldHRlLmgiCkBAIC0xMDA0
LDYgKzEwMDUsNyBAQCBwdWJsaWM6CiAgICAgT3JkZXJlZE5hbWVkR3JpZExpbmVzTWFwIG1fYXV0
b1JlcGVhdE9yZGVyZWROYW1lZEdyaWRMaW5lczsKICAgICB1bnNpZ25lZCBtX2F1dG9SZXBlYXRJ
bnNlcnRpb25Qb2ludCB7IFJlbmRlclN0eWxlOjppbml0aWFsR3JpZEF1dG9SZXBlYXRJbnNlcnRp
b25Qb2ludCgpIH07CiAgICAgQXV0b1JlcGVhdFR5cGUgbV9hdXRvUmVwZWF0VHlwZSB7IFJlbmRl
clN0eWxlOjppbml0aWFsR3JpZEF1dG9SZXBlYXRUeXBlKCkgfTsKKyAgICBib29sIGlzU3ViZ3Jp
ZCB7IGZhbHNlIH07CiB9OwogCiBpbmxpbmUgYm9vbCBCdWlsZGVyQ29udmVydGVyOjpjcmVhdGVH
cmlkVHJhY2tMaXN0KGNvbnN0IENTU1ZhbHVlJiB2YWx1ZSwgVHJhY2tzRGF0YSYgdHJhY2tzRGF0
YSwgQnVpbGRlclN0YXRlJiBidWlsZGVyU3RhdGUpCkBAIC0xMDE3LDE0ICsxMDE5LDIzIEBAIGlu
bGluZSBib29sIEJ1aWxkZXJDb252ZXJ0ZXI6OmNyZWF0ZUdyaWRUcmFja0xpc3QoY29uc3QgQ1NT
VmFsdWUmIHZhbHVlLCBUcmFja3NECiAKICAgICB1bnNpZ25lZCBjdXJyZW50TmFtZWRHcmlkTGlu
ZSA9IDA7CiAgICAgYXV0byBoYW5kbGVMaW5lTmFtZU9yVHJhY2tTaXplID0gWyZdKGNvbnN0IENT
U1ZhbHVlJiBjdXJyZW50VmFsdWUpIHsKLSAgICAgICAgaWYgKGlzPENTU0dyaWRMaW5lTmFtZXNW
YWx1ZT4oY3VycmVudFZhbHVlKSkKKyAgICAgICAgaWYgKGlzPENTU0dyaWRMaW5lTmFtZXNWYWx1
ZT4oY3VycmVudFZhbHVlKSkgewogICAgICAgICAgICAgY3JlYXRlR3JpZExpbmVOYW1lc0xpc3Qo
Y3VycmVudFZhbHVlLCBjdXJyZW50TmFtZWRHcmlkTGluZSwgdHJhY2tzRGF0YS5tX25hbWVkR3Jp
ZExpbmVzLCB0cmFja3NEYXRhLm1fb3JkZXJlZE5hbWVkR3JpZExpbmVzKTsKLSAgICAgICAgZWxz
ZSB7CisgICAgICAgICAgICAvLyBTdWJncmlkcyBvbmx5IGhhdmUgbGluZSBuYW1lcyBkZWZpbmVk
LCBub3QgdHJhY2sgc2l6ZXMsIHNvIHdlIHdhbnQgb3VyIGNvdW50CisgICAgICAgICAgICAvLyB0
byBiZSB0aGUgbnVtYmVyIG9mIGxpbmVzIG5hbWVkIHJhdGhlciB0aGFuIG51bWJlciBvZiBzaXpl
ZCB0cmFja3MuCisgICAgICAgICAgICBpZiAodHJhY2tzRGF0YS5pc1N1YmdyaWQpIHsKKyAgICAg
ICAgICAgICAgICB0cmFja3NEYXRhLm1fdHJhY2tTaXplcy5hcHBlbmQoR3JpZFRyYWNrU2l6ZShM
ZW5ndGgoTGVuZ3RoVHlwZTo6QXV0bykpKTsKKyAgICAgICAgICAgICAgICBjdXJyZW50TmFtZWRH
cmlkTGluZSsrOworICAgICAgICAgICAgfQorICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAg
KytjdXJyZW50TmFtZWRHcmlkTGluZTsKICAgICAgICAgICAgIHRyYWNrc0RhdGEubV90cmFja1Np
emVzLmFwcGVuZChjcmVhdGVHcmlkVHJhY2tTaXplKGN1cnJlbnRWYWx1ZSwgYnVpbGRlclN0YXRl
KSk7CiAgICAgICAgIH0KICAgICB9OwogCisgICAgaWYgKGlzPENTU1N1YmdyaWRWYWx1ZT4odmFs
dWUpKQorICAgICAgICB0cmFja3NEYXRhLmlzU3ViZ3JpZCA9IHRydWU7CisKICAgICBmb3IgKGF1
dG8mIGN1cnJlbnRWYWx1ZSA6IGRvd25jYXN0PENTU1ZhbHVlTGlzdD4odmFsdWUpKSB7CiAgICAg
ICAgIGlmIChpczxDU1NHcmlkQXV0b1JlcGVhdFZhbHVlPihjdXJyZW50VmFsdWUpKSB7CiAgICAg
ICAgICAgICBBU1NFUlQodHJhY2tzRGF0YS5tX2F1dG9SZXBlYXRUcmFja1NpemVzLmlzRW1wdHko
KSk7CkBAIC0xMDM1LDYgKzEwNDYsMTAgQEAgaW5saW5lIGJvb2wgQnVpbGRlckNvbnZlcnRlcjo6
Y3JlYXRlR3JpZFRyYWNrTGlzdChjb25zdCBDU1NWYWx1ZSYgdmFsdWUsIFRyYWNrc0QKICAgICAg
ICAgICAgIGZvciAoYXV0byYgYXV0b1JlcGVhdFZhbHVlIDogZG93bmNhc3Q8Q1NTVmFsdWVMaXN0
PihjdXJyZW50VmFsdWUuZ2V0KCkpKSB7CiAgICAgICAgICAgICAgICAgaWYgKGlzPENTU0dyaWRM
aW5lTmFtZXNWYWx1ZT4oYXV0b1JlcGVhdFZhbHVlKSkgewogICAgICAgICAgICAgICAgICAgICBj
cmVhdGVHcmlkTGluZU5hbWVzTGlzdChhdXRvUmVwZWF0VmFsdWUuZ2V0KCksIGF1dG9SZXBlYXRJ
bmRleCwgdHJhY2tzRGF0YS5tX2F1dG9SZXBlYXROYW1lZEdyaWRMaW5lcywgdHJhY2tzRGF0YS5t
X2F1dG9SZXBlYXRPcmRlcmVkTmFtZWRHcmlkTGluZXMpOworICAgICAgICAgICAgICAgICAgICBp
ZiAodHJhY2tzRGF0YS5pc1N1YmdyaWQpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHRyYWNr
c0RhdGEubV9hdXRvUmVwZWF0VHJhY2tTaXplcy5hcHBlbmQoR3JpZFRyYWNrU2l6ZShMZW5ndGgo
TGVuZ3RoVHlwZTo6QXV0bykpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICsrYXV0b1JlcGVh
dEluZGV4OworICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgIGNvbnRp
bnVlOwogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICArK2F1dG9SZXBlYXRJbmRl
eDsKQEAgLTEwNTgsNyArMTA3Myw3IEBAIGlubGluZSBib29sIEJ1aWxkZXJDb252ZXJ0ZXI6OmNy
ZWF0ZUdyaWRUcmFja0xpc3QoY29uc3QgQ1NTVmFsdWUmIHZhbHVlLCBUcmFja3NECiAKICAgICAv
LyBUaGUgcGFyc2VyIHNob3VsZCBoYXZlIHJlamVjdGVkIGFueSA8dHJhY2stbGlzdD4gd2l0aG91
dCBhbnkgPHRyYWNrLXNpemU+IGFzCiAgICAgLy8gdGhpcyBpcyBub3QgY29uZm9ybWFudCB0byB0
aGUgc3ludGF4LgotICAgIEFTU0VSVCghdHJhY2tzRGF0YS5tX3RyYWNrU2l6ZXMuaXNFbXB0eSgp
IHx8ICF0cmFja3NEYXRhLm1fYXV0b1JlcGVhdFRyYWNrU2l6ZXMuaXNFbXB0eSgpKTsKKyAgICBB
U1NFUlQoIXRyYWNrc0RhdGEubV90cmFja1NpemVzLmlzRW1wdHkoKSB8fCAhdHJhY2tzRGF0YS5t
X2F1dG9SZXBlYXRUcmFja1NpemVzLmlzRW1wdHkoKSB8fCB0cmFja3NEYXRhLmlzU3ViZ3JpZCk7
CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N0eWxl
L1N0eWxlQnVpbGRlckN1c3RvbS5oIGIvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVCdWlsZGVy
Q3VzdG9tLmgKaW5kZXggMTNjYWQ5YjdmZDc3Li4yYWE0MjRmMmJiYWQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlQnVpbGRlckN1c3RvbS5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3N0eWxlL1N0eWxlQnVpbGRlckN1c3RvbS5oCkBAIC0xOTA1LDcgKzE5MDUsOCBAQCBpbmxp
bmUgdm9pZCBCdWlsZGVyQ3VzdG9tOjphcHBseVZhbHVlR3JpZFRlbXBsYXRlQXJlYXMoQnVpbGRl
clN0YXRlJiBidWlsZGVyU3RhdAogICAgIHN0eWxlLnNldEdyaWRBdXRvUmVwZWF0IyNUcmFja1R5
cGUjI3NJbnNlcnRpb25Qb2ludCh0cmFja3NEYXRhID8gdHJhY2tzRGF0YS0+bV9hdXRvUmVwZWF0
SW5zZXJ0aW9uUG9pbnQgOiBwYXJlbnRTdHlsZS0+Z3JpZEF1dG9SZXBlYXQjI1RyYWNrVHlwZSMj
c0luc2VydGlvblBvaW50KCkpOyBcCiAgICAgc3R5bGUuc2V0QXV0b1JlcGVhdE5hbWVkR3JpZCMj
VHJhY2tUeXBlIyNMaW5lcyh0cmFja3NEYXRhID8gdHJhY2tzRGF0YS0+bV9hdXRvUmVwZWF0TmFt
ZWRHcmlkTGluZXMgOiBwYXJlbnRTdHlsZS0+YXV0b1JlcGVhdE5hbWVkR3JpZCMjVHJhY2tUeXBl
IyNMaW5lcygpKTsgXAogICAgIHN0eWxlLnNldEF1dG9SZXBlYXRPcmRlcmVkTmFtZWRHcmlkIyNU
cmFja1R5cGUjI0xpbmVzKHRyYWNrc0RhdGEgPyB0cmFja3NEYXRhLT5tX2F1dG9SZXBlYXRPcmRl
cmVkTmFtZWRHcmlkTGluZXMgOiBwYXJlbnRTdHlsZS0+YXV0b1JlcGVhdE9yZGVyZWROYW1lZEdy
aWQjI1RyYWNrVHlwZSMjTGluZXMoKSk7IFwKLSAgICBzdHlsZS5zZXRHcmlkQXV0b1JlcGVhdCMj
VHJhY2tUeXBlIyNzVHlwZSh0cmFja3NEYXRhID8gdHJhY2tzRGF0YS0+bV9hdXRvUmVwZWF0VHlw
ZSA6IHBhcmVudFN0eWxlLT5ncmlkQXV0b1JlcGVhdCMjVHJhY2tUeXBlIyNzVHlwZSgpKTsKKyAg
ICBzdHlsZS5zZXRHcmlkQXV0b1JlcGVhdCMjVHJhY2tUeXBlIyNzVHlwZSh0cmFja3NEYXRhID8g
dHJhY2tzRGF0YS0+bV9hdXRvUmVwZWF0VHlwZSA6IHBhcmVudFN0eWxlLT5ncmlkQXV0b1JlcGVh
dCMjVHJhY2tUeXBlIyNzVHlwZSgpKTsgXAorICAgIHN0eWxlLnNldEdyaWRTdWJncmlkIyNUcmFj
a1R5cGUjI3ModHJhY2tzRGF0YSA/IHRyYWNrc0RhdGEtPmlzU3ViZ3JpZCA6IHBhcmVudFN0eWxl
LT5ncmlkU3ViZ3JpZCMjVHJhY2tUeXBlIyNzKCkpOwogCiAjZGVmaW5lIFNFVF9JTkhFUklUX1RS
QUNLU19EQVRBKHN0eWxlLCBwYXJlbnRTdHlsZSwgVHJhY2tUeXBlKSBcCiAgICAgQnVpbGRlckNv
bnZlcnRlcjo6VHJhY2tzRGF0YSogdHJhY2tzRGF0YSA9IG51bGxwdHI7IFwK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>451006</attachid>
            <date>2022-02-05 15:40:35 -0800</date>
            <delta_ts>2022-02-14 16:50:53 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-236148-20220206124033.patch</filename>
            <type>text/plain</type>
            <size>14789</size>
            <attacher name="Matt Woodrow">mattwoodrow</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg5MDY3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTQxZWNmNTA4ZGY2ZmM3
ZmM0NmQwMGQ4ZTY1ODJlN2ViYTlkNmQ3ZC4uMmZmOTA0YWJkMDg0ZDVhZjJkYjFhYWM0YWMzOGUx
YmRmODg1YjQxMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDIyLTAyLTA0ICBNYXR0
IFdvb2Ryb3cgIDxtYXR0d29vZHJvd0BhcHBsZS5jb20+CisKKyAgICAgICAgSW1wbGVtZW50IGdl
dENvbXB1dGVkU3R5bGUgZm9yIHN1YmdyaWRzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yMzYxNDgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBBZGRzIE9yZGVyZWROYW1lZExpbmVzQ29sbGVjdG9ySW5TdWJn
cmlkTGF5b3V0IHRvIGl0ZXJhdGUgdGhlIHN1YmdyaWQgbmFtZXMgbGlzdCwgc3RvcHBpbmcKKyAg
ICAgICAgYXQgdGhlIG51bWJlciBvZiBhY3R1YWwgdHJhY2tzIGluIHRoZSBncmlkLgorCisKKyAg
ICAgICAgKiBjc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6Ok9yZGVyZWROYW1lZExpbmVzQ29sbGVjdG9ySW5TdWJncmlkTGF5b3V0OjpPcmRlcmVk
TmFtZWRMaW5lc0NvbGxlY3RvckluU3ViZ3JpZExheW91dCk6CisgICAgICAgIChXZWJDb3JlOjpP
cmRlcmVkTmFtZWRMaW5lc0NvbGxlY3RvckluR3JpZExheW91dDo6Y29sbGVjdExpbmVOYW1lc0Zv
ckluZGV4IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6Ok9yZGVyZWROYW1lZExpbmVzQ29sbGVj
dG9ySW5TdWJncmlkTGF5b3V0Ojpjb2xsZWN0TGluZU5hbWVzRm9ySW5kZXggY29uc3QpOgorICAg
ICAgICAoV2ViQ29yZTo6YWRkVmFsdWVzRm9yTmFtZWRHcmlkTGluZXNBdEluZGV4KToKKyAgICAg
ICAgKFdlYkNvcmU6OnBvcHVsYXRlU3ViZ3JpZFRyYWNrTGlzdCk6CisgICAgICAgIChXZWJDb3Jl
Ojp2YWx1ZUZvckdyaWRUcmFja0xpc3QpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJHcmlk
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckdyaWQ6OmNvbXB1dGVBdXRvUmVwZWF0VHJh
Y2tzQ291bnQgY29uc3QpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJHcmlkLmg6CisgICAg
ICAgICogcmVuZGVyaW5nL3N0eWxlL0dyaWRQb3NpdGlvbnNSZXNvbHZlci5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpOYW1lZExpbmVDb2xsZWN0aW9uOjpjb250YWlucyBjb25zdCk6CisgICAgICAg
ICogc3R5bGUvU3R5bGVCdWlsZGVyQ29udmVydGVyLmg6CisgICAgICAgIChXZWJDb3JlOjpTdHls
ZTo6QnVpbGRlckNvbnZlcnRlcjo6Y3JlYXRlR3JpZFRyYWNrTGlzdCk6CisKIDIwMjItMDItMDMg
IE1hdHQgV29vZHJvdyAgPG1hdHR3b29kcm93QGFwcGxlLmNvbT4KIAogICAgICAgICBJbmhlcml0
IHRyYWNrIGNvdW50IGZyb20gcGFyZW50IGdyaWQgZm9yIHN1YmdyaWRkZWQgYXhlcyBhbmQgY2xh
bXAgaXRlbSBwbGFjZW1lbnQgdG8gdGhhdCBleHBsaWNpdCBncmlkLgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvY3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9jc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcAppbmRleCAxNWUwNTQ5
ODkwOGE3ZGE1ZjRhOWQ1YzZhY2NhNDFiOTM0ZjA5MTE5Li41OTBiYThhYjU5ZmY2MTFkMDYxZTA3
ZDEzMGY2ODcyYjg2Y2YyMWI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ29t
cHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ29t
cHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcApAQCAtODk5LDYgKzg5OSwzOCBAQCBwcml2YXRlOgog
ICAgIHVuc2lnbmVkIG1fYXV0b1JlcGVhdFRyYWNrTGlzdExlbmd0aDsKIH07CiAKK2NsYXNzIE9y
ZGVyZWROYW1lZExpbmVzQ29sbGVjdG9ySW5TdWJncmlkTGF5b3V0IDogcHVibGljIE9yZGVyZWRO
YW1lZExpbmVzQ29sbGVjdG9yIHsKK3B1YmxpYzoKKyAgICBPcmRlcmVkTmFtZWRMaW5lc0NvbGxl
Y3RvckluU3ViZ3JpZExheW91dChjb25zdCBSZW5kZXJTdHlsZSYgc3R5bGUsIGJvb2wgaXNSb3dB
eGlzLCB1bnNpZ25lZCB0b3RhbFRyYWNrc0NvdW50KQorICAgICAgICA6IE9yZGVyZWROYW1lZExp
bmVzQ29sbGVjdG9yKHN0eWxlLCBpc1Jvd0F4aXMpCisgICAgICAgICwgbV9pbnNlcnRpb25Qb2lu
dChpc1Jvd0F4aXMgPyBzdHlsZS5ncmlkQXV0b1JlcGVhdENvbHVtbnNJbnNlcnRpb25Qb2ludCgp
IDogc3R5bGUuZ3JpZEF1dG9SZXBlYXRSb3dzSW5zZXJ0aW9uUG9pbnQoKSkKKyAgICAgICAgLCBt
X2F1dG9SZXBlYXRUcmFja0xpc3RMZW5ndGgoKGlzUm93QXhpcyA/IHN0eWxlLmF1dG9SZXBlYXRP
cmRlcmVkTmFtZWRHcmlkQ29sdW1uTGluZXMoKSA6IHN0eWxlLmF1dG9SZXBlYXRPcmRlcmVkTmFt
ZWRHcmlkUm93TGluZXMoKSkuc2l6ZSgpKQorICAgICAgICAsIG1fdG90YWxUcmFja3ModG90YWxU
cmFja3NDb3VudCkKKyAgICB7CisgICAgICAgIGlmICghbV9hdXRvUmVwZWF0VHJhY2tMaXN0TGVu
Z3RoKSB7CisgICAgICAgICAgICBtX2F1dG9SZXBlYXRUb3RhbFRyYWNrcyA9IDA7CisgICAgICAg
ICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgLy8gKzEgdG8gY29udmVydCBmcm9tIHRy
YWNrcyB0byBsaW5lcworICAgICAgICB1bnNpZ25lZCBuYW1lZCA9IChpc1Jvd0F4aXMgPyBzdHls
ZS5vcmRlcmVkTmFtZWRHcmlkQ29sdW1uTGluZXMoKSA6IHN0eWxlLm9yZGVyZWROYW1lZEdyaWRS
b3dMaW5lcygpKS5zaXplKCk7CisgICAgICAgIGlmIChuYW1lZCA+PSBtX3RvdGFsVHJhY2tzICsg
MSkgeworICAgICAgICAgICAgbV9hdXRvUmVwZWF0VG90YWxUcmFja3MgPSAwOworICAgICAgICAg
ICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIG1fYXV0b1JlcGVhdFRvdGFsVHJhY2tzID0g
KG1fdG90YWxUcmFja3MgKyAxIC0gbmFtZWQpIC8gbV9hdXRvUmVwZWF0VHJhY2tMaXN0TGVuZ3Ro
OworICAgICAgICBtX2F1dG9SZXBlYXRUb3RhbFRyYWNrcyAqPSBtX2F1dG9SZXBlYXRUcmFja0xp
c3RMZW5ndGg7CisgICAgfQorCisgICAgdm9pZCBjb2xsZWN0TGluZU5hbWVzRm9ySW5kZXgoQ1NT
R3JpZExpbmVOYW1lc1ZhbHVlJiwgdW5zaWduZWQgaW5kZXgpIGNvbnN0IG92ZXJyaWRlOworCisg
ICAgaW50IG5hbWVkR3JpZExpbmVDb3VudCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG1fdG90
YWxUcmFja3MgKyAxOyB9Citwcml2YXRlOgorICAgIHVuc2lnbmVkIG1faW5zZXJ0aW9uUG9pbnQ7
CisgICAgdW5zaWduZWQgbV9hdXRvUmVwZWF0VG90YWxUcmFja3M7CisgICAgdW5zaWduZWQgbV9h
dXRvUmVwZWF0VHJhY2tMaXN0TGVuZ3RoOworICAgIHVuc2lnbmVkIG1fdG90YWxUcmFja3M7Cit9
OworCiB2b2lkIE9yZGVyZWROYW1lZExpbmVzQ29sbGVjdG9yOjphcHBlbmRMaW5lcyhDU1NHcmlk
TGluZU5hbWVzVmFsdWUmIGxpbmVOYW1lc1ZhbHVlLCB1bnNpZ25lZCBpbmRleCwgTmFtZWRMaW5l
c1R5cGUgdHlwZSkgY29uc3QKIHsKICAgICBhdXRvIGl0ZXIgPSB0eXBlID09IE5hbWVkTGluZXMg
PyBtX29yZGVyZWROYW1lZEdyaWRMaW5lcy5maW5kKGluZGV4KSA6IG1fb3JkZXJlZE5hbWVkQXV0
b1JlcGVhdEdyaWRMaW5lcy5maW5kKGluZGV4KTsKQEAgLTkyNiw3ICs5NTgsNyBAQCB2b2lkIE9y
ZGVyZWROYW1lZExpbmVzQ29sbGVjdG9ySW5zaWRlUmVwZWF0Ojpjb2xsZWN0TGluZU5hbWVzRm9y
SW5kZXgoQ1NTR3JpZExpbgogdm9pZCBPcmRlcmVkTmFtZWRMaW5lc0NvbGxlY3RvckluR3JpZExh
eW91dDo6Y29sbGVjdExpbmVOYW1lc0ZvckluZGV4KENTU0dyaWRMaW5lTmFtZXNWYWx1ZSYgbGlu
ZU5hbWVzVmFsdWUsIHVuc2lnbmVkIGkpIGNvbnN0CiB7CiAgICAgQVNTRVJUKCFpc0VtcHR5KCkp
OwotICAgIGlmICghbV9hdXRvUmVwZWF0VHJhY2tMaXN0TGVuZ3RoIHx8IGkgPCBtX2luc2VydGlv
blBvaW50KSB7CisgICAgaWYgKCFtX2F1dG9SZXBlYXRUb3RhbFRyYWNrcyB8fCBpIDwgbV9pbnNl
cnRpb25Qb2ludCkgewogICAgICAgICBhcHBlbmRMaW5lcyhsaW5lTmFtZXNWYWx1ZSwgaSwgTmFt
ZWRMaW5lcyk7CiAgICAgICAgIHJldHVybjsKICAgICB9CkBAIC05NTYsMTQgKzk4OCwzNSBAQCB2
b2lkIE9yZGVyZWROYW1lZExpbmVzQ29sbGVjdG9ySW5HcmlkTGF5b3V0Ojpjb2xsZWN0TGluZU5h
bWVzRm9ySW5kZXgoQ1NTR3JpZExpbgogICAgIGFwcGVuZExpbmVzKGxpbmVOYW1lc1ZhbHVlLCBh
dXRvUmVwZWF0SW5kZXhJbkZpcnN0UmVwZXRpdGlvbiwgQXV0b1JlcGVhdE5hbWVkTGluZXMpOwog
fQogCi1zdGF0aWMgdm9pZCBhZGRWYWx1ZXNGb3JOYW1lZEdyaWRMaW5lc0F0SW5kZXgoT3JkZXJl
ZE5hbWVkTGluZXNDb2xsZWN0b3ImIGNvbGxlY3RvciwgdW5zaWduZWQgaSwgQ1NTVmFsdWVMaXN0
JiBsaXN0KQordm9pZCBPcmRlcmVkTmFtZWRMaW5lc0NvbGxlY3RvckluU3ViZ3JpZExheW91dDo6
Y29sbGVjdExpbmVOYW1lc0ZvckluZGV4KENTU0dyaWRMaW5lTmFtZXNWYWx1ZSYgbGluZU5hbWVz
VmFsdWUsIHVuc2lnbmVkIGkpIGNvbnN0Cit7CisgICAgaWYgKCFtX2F1dG9SZXBlYXRUcmFja0xp
c3RMZW5ndGggfHwgaSA8IG1faW5zZXJ0aW9uUG9pbnQpIHsKKyAgICAgICAgYXBwZW5kTGluZXMo
bGluZU5hbWVzVmFsdWUsIGksIE5hbWVkTGluZXMpOworICAgICAgICByZXR1cm47CisgICAgfQor
CisgICAgaWYgKGkgPj0gbV9pbnNlcnRpb25Qb2ludCArIG1fYXV0b1JlcGVhdFRvdGFsVHJhY2tz
KSB7CisgICAgICAgIGFwcGVuZExpbmVzKGxpbmVOYW1lc1ZhbHVlLCBpIC0gKG1fYXV0b1JlcGVh
dFRvdGFsVHJhY2tzIC0gMSksIE5hbWVkTGluZXMpOworICAgICAgICByZXR1cm47CisgICAgfQor
CisgICAgaWYgKCFtX2F1dG9SZXBlYXRUb3RhbFRyYWNrcykgeworICAgICAgICBhcHBlbmRMaW5l
cyhsaW5lTmFtZXNWYWx1ZSwgaSArIDEsIE5hbWVkTGluZXMpOworICAgICAgICByZXR1cm47Cisg
ICAgfQorCisgICAgdW5zaWduZWQgYXV0b1JlcGVhdEluZGV4SW5GaXJzdFJlcGV0aXRpb24gPSAo
aSAtIG1faW5zZXJ0aW9uUG9pbnQpICUgbV9hdXRvUmVwZWF0VHJhY2tMaXN0TGVuZ3RoOworICAg
IGFwcGVuZExpbmVzKGxpbmVOYW1lc1ZhbHVlLCBhdXRvUmVwZWF0SW5kZXhJbkZpcnN0UmVwZXRp
dGlvbiwgQXV0b1JlcGVhdE5hbWVkTGluZXMpOworfQorCitzdGF0aWMgdm9pZCBhZGRWYWx1ZXNG
b3JOYW1lZEdyaWRMaW5lc0F0SW5kZXgoT3JkZXJlZE5hbWVkTGluZXNDb2xsZWN0b3ImIGNvbGxl
Y3RvciwgdW5zaWduZWQgaSwgQ1NTVmFsdWVMaXN0JiBsaXN0LCBib29sIHJlbmRlckVtcHR5ID0g
ZmFsc2UpCiB7Ci0gICAgaWYgKGNvbGxlY3Rvci5pc0VtcHR5KCkpCisgICAgaWYgKGNvbGxlY3Rv
ci5pc0VtcHR5KCkgJiYgIXJlbmRlckVtcHR5KQogICAgICAgICByZXR1cm47CiAKICAgICBhdXRv
IGxpbmVOYW1lcyA9IENTU0dyaWRMaW5lTmFtZXNWYWx1ZTo6Y3JlYXRlKCk7CiAgICAgY29sbGVj
dG9yLmNvbGxlY3RMaW5lTmFtZXNGb3JJbmRleChsaW5lTmFtZXMuZ2V0KCksIGkpOwotICAgIGlm
IChsaW5lTmFtZXMtPmxlbmd0aCgpKQorICAgIGlmIChsaW5lTmFtZXMtPmxlbmd0aCgpIHx8IHJl
bmRlckVtcHR5KQogICAgICAgICBsaXN0LmFwcGVuZChXVEZNb3ZlKGxpbmVOYW1lcykpOwogfQog
CkBAIC05OTgsMTUgKzEwNTEsMTUgQEAgdm9pZCBwb3B1bGF0ZUdyaWRUcmFja0xpc3QoQ1NTVmFs
dWVMaXN0JiBsaXN0LCBPcmRlcmVkTmFtZWRMaW5lc0NvbGxlY3RvciYgY29sbGUKICAgICBwb3B1
bGF0ZUdyaWRUcmFja0xpc3Q8VD4obGlzdCwgY29sbGVjdG9yLCB0cmFja3MsIGdldFRyYWNrU2l6
ZSwgMCwgdHJhY2tzLnNpemUoKSwgb2Zmc2V0KTsKIH0KIAotc3RhdGljIHZvaWQgcG9wdWxhdGVT
dWJncmlkVHJhY2tMaXN0KENTU1ZhbHVlTGlzdCYgbGlzdCwgT3JkZXJlZE5hbWVkTGluZXNDb2xs
ZWN0b3ImIGNvbGxlY3RvciwgaW50IHN0YXJ0LCBpbnQgZW5kKQorc3RhdGljIHZvaWQgcG9wdWxh
dGVTdWJncmlkVHJhY2tMaXN0KENTU1ZhbHVlTGlzdCYgbGlzdCwgT3JkZXJlZE5hbWVkTGluZXND
b2xsZWN0b3ImIGNvbGxlY3RvciwgaW50IHN0YXJ0LCBpbnQgZW5kLCBib29sIHJlbmRlckVtcHR5
ID0gZmFsc2UpCiB7CiAgICAgZm9yIChpbnQgaSA9IHN0YXJ0OyBpIDwgZW5kOyBpKyspCi0gICAg
ICAgIGFkZFZhbHVlc0Zvck5hbWVkR3JpZExpbmVzQXRJbmRleChjb2xsZWN0b3IsIGksIGxpc3Qp
OworICAgICAgICBhZGRWYWx1ZXNGb3JOYW1lZEdyaWRMaW5lc0F0SW5kZXgoY29sbGVjdG9yLCBp
LCBsaXN0LCByZW5kZXJFbXB0eSk7CiB9CiAKLXN0YXRpYyB2b2lkIHBvcHVsYXRlU3ViZ3JpZFRy
YWNrTGlzdChDU1NWYWx1ZUxpc3QmIGxpc3QsIE9yZGVyZWROYW1lZExpbmVzQ29sbGVjdG9yJiBj
b2xsZWN0b3IpCitzdGF0aWMgdm9pZCBwb3B1bGF0ZVN1YmdyaWRUcmFja0xpc3QoQ1NTVmFsdWVM
aXN0JiBsaXN0LCBPcmRlcmVkTmFtZWRMaW5lc0NvbGxlY3RvciYgY29sbGVjdG9yLCBib29sIHJl
bmRlckVtcHR5ID0gZmFsc2UpCiB7Ci0gICAgcG9wdWxhdGVTdWJncmlkVHJhY2tMaXN0KGxpc3Qs
IGNvbGxlY3RvciwgMCwgY29sbGVjdG9yLm5hbWVkR3JpZExpbmVDb3VudCgpKTsKKyAgICBwb3B1
bGF0ZVN1YmdyaWRUcmFja0xpc3QobGlzdCwgY29sbGVjdG9yLCAwLCBjb2xsZWN0b3IubmFtZWRH
cmlkTGluZUNvdW50KCksIHJlbmRlckVtcHR5KTsKIH0KIAogc3RhdGljIFJlZjxDU1NWYWx1ZT4g
dmFsdWVGb3JHcmlkVHJhY2tMaXN0KEdyaWRUcmFja1NpemluZ0RpcmVjdGlvbiBkaXJlY3Rpb24s
IFJlbmRlck9iamVjdCogcmVuZGVyZXIsIGNvbnN0IFJlbmRlclN0eWxlJiBzdHlsZSkKQEAgLTEw
MzYsOSArMTA4OSwxNSBAQCBzdGF0aWMgUmVmPENTU1ZhbHVlPiB2YWx1ZUZvckdyaWRUcmFja0xp
c3QoR3JpZFRyYWNrU2l6aW5nRGlyZWN0aW9uIGRpcmVjdGlvbiwgUgogCiAgICAgLy8gSWYgdGhl
IGVsZW1lbnQgaXMgYSBncmlkIGNvbnRhaW5lciwgdGhlIHJlc29sdmVkIHZhbHVlIGlzIHRoZSB1
c2VkIHZhbHVlLAogICAgIC8vIHNwZWNpZnlpbmcgdHJhY2sgc2l6ZXMgaW4gcGl4ZWxzIGFuZCBl
eHBhbmRpbmcgdGhlIHJlcGVhdCgpIG5vdGF0aW9uLgotICAgIGlmIChpc1JlbmRlckdyaWQpIHsK
LSAgICAgICAgLy8gVE9ETzogV2UgbmVlZCB0byBoYW5kbGUgY29tcHV0ZWQgc3ViZ3JpZCBoZXJl
LgorICAgIC8vIElmIHN1YmdyaWQgd2FzIHNwZWNpZmllZCwgYnV0IHRoZSBlbGVtZW50IGlzbid0
IGEgc3ViZ3JpZCAoZHVlIHRvIG5vdCBoYXZpbmcKKyAgICAvLyBhbiBhcHByb3ByaWF0ZSBncmlk
IHBhcmVudD8pLCB0aGVuIHdlIGZhbGwgYmFjayB0byB1c2luZyB0aGUgc3BlY2lmaWVkIHZhbHVl
LgorICAgIGlmIChpc1JlbmRlckdyaWQgJiYgKCFpc1N1YmdyaWQgfHwgZG93bmNhc3Q8UmVuZGVy
R3JpZD4ocmVuZGVyZXIpLT5pc1N1YmdyaWQoZGlyZWN0aW9uKSkpIHsKICAgICAgICAgYXV0byog
Z3JpZCA9IGRvd25jYXN0PFJlbmRlckdyaWQ+KHJlbmRlcmVyKTsKKyAgICAgICAgaWYgKGlzU3Vi
Z3JpZCkgeworICAgICAgICAgICAgT3JkZXJlZE5hbWVkTGluZXNDb2xsZWN0b3JJblN1YmdyaWRM
YXlvdXQgY29sbGVjdG9yKHN0eWxlLCBpc1Jvd0F4aXMsIGdyaWQtPm51bVRyYWNrcyhkaXJlY3Rp
b24pKTsKKyAgICAgICAgICAgIHBvcHVsYXRlU3ViZ3JpZFRyYWNrTGlzdChsaXN0LmdldCgpLCBj
b2xsZWN0b3IsIHRydWUpOworICAgICAgICAgICAgcmV0dXJuIGxpc3Q7CisgICAgICAgIH0KICAg
ICAgICAgT3JkZXJlZE5hbWVkTGluZXNDb2xsZWN0b3JJbkdyaWRMYXlvdXQgY29sbGVjdG9yKHN0
eWxlLCBpc1Jvd0F4aXMsIGdyaWQtPmF1dG9SZXBlYXRDb3VudEZvckRpcmVjdGlvbihkaXJlY3Rp
b24pLCBhdXRvUmVwZWF0VHJhY2tTaXplcy5zaXplKCkpOwogICAgICAgICAvLyBOYW1lZCBncmlk
IGxpbmUgaW5kaWNlcyBhcmUgcmVsYXRpdmUgdG8gdGhlIGV4cGxpY2l0IGdyaWQsIGJ1dCB3ZSBh
cmUgaW5jbHVkaW5nIGFsbCB0cmFja3MuCiAgICAgICAgIC8vIFNvIHdlIG5lZWQgdG8gc3VidHJh
Y3QgdGhlIG51bWJlciBvZiBsZWFkaW5nIGltcGxpY2l0IHRyYWNrcyBpbiBvcmRlciB0byBnZXQg
dGhlIHByb3BlciBsaW5lIGluZGV4LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckdyaWQuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckdyaWQu
Y3BwCmluZGV4IDllZmU0NWE4ZmZmOTEzOGU1MzUyZjY1MjA0YTA5MjcyMDU1MjdlOGYuLjJlOTc2
ZGIzYTg4NTM0NTU5ZjVkNWFkMjM5ZTg1MGI3ZGRlZWNmMTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJHcmlkLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyR3JpZC5jcHAKQEAgLTQ3OSw2ICs0NzksOSBAQCB1bnNpZ25lZCBSZW5kZXJH
cmlkOjpjb21wdXRlQXV0b1JlcGVhdFRyYWNrc0NvdW50KEdyaWRUcmFja1NpemluZ0RpcmVjdGlv
biBkaXJlYwogewogICAgIEFTU0VSVCghYXZhaWxhYmxlU2l6ZSB8fCBhdmFpbGFibGVTaXplLnZh
bHVlKCkgIT0gLTEpOwogICAgIGJvb2wgaXNSb3dBeGlzID0gZGlyZWN0aW9uID09IEZvckNvbHVt
bnM7CisgICAgaWYgKGlzUm93QXhpcyA/IGlzU3ViZ3JpZENvbHVtbnMoKSA6IGlzU3ViZ3JpZFJv
d3MoKSkKKyAgICAgICAgcmV0dXJuIDA7CisKICAgICBjb25zdCBhdXRvJiBhdXRvUmVwZWF0VHJh
Y2tzID0gaXNSb3dBeGlzID8gc3R5bGUoKS5ncmlkQXV0b1JlcGVhdENvbHVtbnMoKSA6IHN0eWxl
KCkuZ3JpZEF1dG9SZXBlYXRSb3dzKCk7CiAgICAgdW5zaWduZWQgYXV0b1JlcGVhdFRyYWNrTGlz
dExlbmd0aCA9IGF1dG9SZXBlYXRUcmFja3Muc2l6ZSgpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyR3JpZC5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckdyaWQuaAppbmRleCBiNDZlZmRhNmI1MmZjYWI0NWQxZjQxNWU0NTlmMDYyNzRlYjE5
MmYyLi4zYWM2MDY2YjFmN2Q4NmYyZWMxZmUxNTQyOGM2OTBjYTkyZWRmNzg2IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyR3JpZC5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJHcmlkLmgKQEAgLTk1LDYgKzk1LDExIEBAIHB1YmxpYzoKICAg
ICAgICAgcmV0dXJuIG1fZ3JpZDsKICAgICB9CiAKKyAgICB1bnNpZ25lZCBudW1UcmFja3MoR3Jp
ZFRyYWNrU2l6aW5nRGlyZWN0aW9uIGRpcmVjdGlvbikgY29uc3QKKyAgICB7CisgICAgICAgIHJl
dHVybiBudW1UcmFja3MoZGlyZWN0aW9uLCBtX2dyaWQpOworICAgIH0KKwogcHJpdmF0ZToKICAg
ICBJdGVtUG9zaXRpb24gc2VsZkFsaWdubWVudE5vcm1hbEJlaGF2aW9yKGNvbnN0IFJlbmRlckJv
eCogY2hpbGQgPSBudWxscHRyKSBjb25zdCBvdmVycmlkZQogICAgIHsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9HcmlkUG9zaXRpb25zUmVzb2x2ZXIuY3BwIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL0dyaWRQb3NpdGlvbnNSZXNvbHZlci5jcHAK
aW5kZXggMTY0MDdjMWJkZmVhMTQ1YWJjZTc0NGRkMzE0ZjZmN2QxN2ZmYWY4NC4uMjk4MmE1Nzg1
NjZmYmNjNzg0OGI2ZmUzYmU1YjQ1ZDI4ZTZjMjc4ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL3N0eWxlL0dyaWRQb3NpdGlvbnNSZXNvbHZlci5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL0dyaWRQb3NpdGlvbnNSZXNvbHZlci5jcHAKQEAgLTEw
NSw3ICsxMDUsNyBAQCBib29sIE5hbWVkTGluZUNvbGxlY3Rpb246OmNvbnRhaW5zKHVuc2lnbmVk
IGxpbmUpIGNvbnN0CiAgICAgaWYgKGNvbnRhaW5zKG1faW1wbGljaXROYW1lZExpbmVzSW5kZXhl
cywgbGluZSkpCiAgICAgICAgIHJldHVybiB0cnVlOwogCi0gICAgaWYgKCFtX2F1dG9SZXBlYXRU
cmFja0xpc3RMZW5ndGggfHwgbGluZSA8IG1faW5zZXJ0aW9uUG9pbnQpCisgICAgaWYgKCFtX2F1
dG9SZXBlYXRUb3RhbFRyYWNrcyB8fCBsaW5lIDwgbV9pbnNlcnRpb25Qb2ludCkKICAgICAgICAg
cmV0dXJuIGNvbnRhaW5zKG1fbmFtZWRMaW5lc0luZGV4ZXMsIGxpbmUpOwogCiAgICAgQVNTRVJU
KG1fYXV0b1JlcGVhdFRvdGFsVHJhY2tzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N0
eWxlL1N0eWxlQnVpbGRlckNvbnZlcnRlci5oIGIvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVC
dWlsZGVyQ29udmVydGVyLmgKaW5kZXggMWQ2M2UyNGI1MTFhMTBhNmRjMTU2ZWQxNTllZjcwOGNj
NDUzMmEwYi4uMzc4YTE1NGI2NjllNzE1YWY4MDVjNzI5MGI1ZjkyZWE4YWEyZGM2OSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVCdWlsZGVyQ29udmVydGVyLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVCdWlsZGVyQ29udmVydGVyLmgKQEAgLTEwMjMsOCAr
MTAyMywxMCBAQCBpbmxpbmUgYm9vbCBCdWlsZGVyQ29udmVydGVyOjpjcmVhdGVHcmlkVHJhY2tM
aXN0KGNvbnN0IENTU1ZhbHVlJiB2YWx1ZSwgVHJhY2tzRAogICAgICAgICAgICAgY3JlYXRlR3Jp
ZExpbmVOYW1lc0xpc3QoY3VycmVudFZhbHVlLCBjdXJyZW50TmFtZWRHcmlkTGluZSwgdHJhY2tz
RGF0YS5tX25hbWVkR3JpZExpbmVzLCB0cmFja3NEYXRhLm1fb3JkZXJlZE5hbWVkR3JpZExpbmVz
KTsKICAgICAgICAgICAgIC8vIFN1YmdyaWRzIG9ubHkgaGF2ZSBsaW5lIG5hbWVzIGRlZmluZWQs
IG5vdCB0cmFjayBzaXplcywgc28gd2Ugd2FudCBvdXIgY291bnQKICAgICAgICAgICAgIC8vIHRv
IGJlIHRoZSBudW1iZXIgb2YgbGluZXMgbmFtZWQgcmF0aGVyIHRoYW4gbnVtYmVyIG9mIHNpemVk
IHRyYWNrcy4KLSAgICAgICAgICAgIGlmICh0cmFja3NEYXRhLmlzU3ViZ3JpZCkKKyAgICAgICAg
ICAgIGlmICh0cmFja3NEYXRhLmlzU3ViZ3JpZCkgeworICAgICAgICAgICAgICAgIHRyYWNrc0Rh
dGEubV90cmFja1NpemVzLmFwcGVuZChHcmlkVHJhY2tTaXplKExlbmd0aChMZW5ndGhUeXBlOjpB
dXRvKSkpOwogICAgICAgICAgICAgICAgIGN1cnJlbnROYW1lZEdyaWRMaW5lKys7CisgICAgICAg
ICAgICB9CiAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICArK2N1cnJlbnROYW1lZEdyaWRM
aW5lOwogICAgICAgICAgICAgdHJhY2tzRGF0YS5tX3RyYWNrU2l6ZXMuYXBwZW5kKGNyZWF0ZUdy
aWRUcmFja1NpemUoY3VycmVudFZhbHVlLCBidWlsZGVyU3RhdGUpKTsKQEAgLTEwNDQsOCArMTA0
NiwxMCBAQCBpbmxpbmUgYm9vbCBCdWlsZGVyQ29udmVydGVyOjpjcmVhdGVHcmlkVHJhY2tMaXN0
KGNvbnN0IENTU1ZhbHVlJiB2YWx1ZSwgVHJhY2tzRAogICAgICAgICAgICAgZm9yIChhdXRvJiBh
dXRvUmVwZWF0VmFsdWUgOiBkb3duY2FzdDxDU1NWYWx1ZUxpc3Q+KGN1cnJlbnRWYWx1ZS5nZXQo
KSkpIHsKICAgICAgICAgICAgICAgICBpZiAoaXM8Q1NTR3JpZExpbmVOYW1lc1ZhbHVlPihhdXRv
UmVwZWF0VmFsdWUpKSB7CiAgICAgICAgICAgICAgICAgICAgIGNyZWF0ZUdyaWRMaW5lTmFtZXNM
aXN0KGF1dG9SZXBlYXRWYWx1ZS5nZXQoKSwgYXV0b1JlcGVhdEluZGV4LCB0cmFja3NEYXRhLm1f
YXV0b1JlcGVhdE5hbWVkR3JpZExpbmVzLCB0cmFja3NEYXRhLm1fYXV0b1JlcGVhdE9yZGVyZWRO
YW1lZEdyaWRMaW5lcyk7Ci0gICAgICAgICAgICAgICAgICAgIGlmICh0cmFja3NEYXRhLmlzU3Vi
Z3JpZCkKKyAgICAgICAgICAgICAgICAgICAgaWYgKHRyYWNrc0RhdGEuaXNTdWJncmlkKSB7Cisg
ICAgICAgICAgICAgICAgICAgICAgICB0cmFja3NEYXRhLm1fYXV0b1JlcGVhdFRyYWNrU2l6ZXMu
YXBwZW5kKEdyaWRUcmFja1NpemUoTGVuZ3RoKExlbmd0aFR5cGU6OkF1dG8pKSk7CiAgICAgICAg
ICAgICAgICAgICAgICAgICArK2F1dG9SZXBlYXRJbmRleDsKKyAgICAgICAgICAgICAgICAgICAg
fQogICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAgICAgICB9CiAgICAg
ICAgICAgICAgICAgKythdXRvUmVwZWF0SW5kZXg7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9U
ZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucwppbmRleCBjMDM1
OWMzYjkzOTc5ZjNhYTgxY2RkNjUxZDViODMwMTBkNzJlNjNhLi5lMzNlYzUyYmU3NTBkNTdhZTlk
YWVmZjdhMTkyNWZkZmEzOWM4ZWM2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0
YXRpb25zCisrKyBiL0xheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTE0NjYsOCArMTQ2
Niw2IEBAIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1ncmlkL3N1Ymdy
aWQvc3ViZ3JpZC1tYnAtb3ZlcmZsb3ctMDAxLmh0CiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2Nzcy9jc3MtZ3JpZC9zdWJncmlkL3N1YmdyaWQtbWJwLW92ZXJmbG93LTAwMi5odG1s
IFsgSW1hZ2VPbmx5RmFpbHVyZSBdCiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nz
cy9jc3MtZ3JpZC9zdWJncmlkL3N1YmdyaWQtbWJwLW92ZXJmbG93LTAwMy5odG1sIFsgSW1hZ2VP
bmx5RmFpbHVyZSBdCiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtZ3Jp
ZC9zdWJncmlkL3N1YmdyaWQtbWJwLW92ZXJmbG93LTAwNC5odG1sIFsgSW1hZ2VPbmx5RmFpbHVy
ZSBdCi1pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtZ3JpZC9zdWJncmlk
L2dyaWQtc3ViZ3JpZGRlZC1heGlzLWF1dG8tcmVwZWF0ZXItY3Jhc2gtMDAxLmh0bWwgWyBDcmFz
aCBdCi1pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtZ3JpZC9zdWJncmlk
L2dyaWQtc3ViZ3JpZGRlZC1heGlzLWF1dG8tcmVwZWF0ZXItY3Jhc2gtMDAyLmh0bWwgWyBDcmFz
aCBdCiAKIHdlYmtpdC5vcmcvYi8xNDk4OTAgZmFzdC9jc3MtZ3JpZC1sYXlvdXQvZ3JpZC1zaG9y
dGhhbmRzLXN0eWxlLWZvcm1hdC5odG1sIFsgRmFpbHVyZSBdCiB3ZWJraXQub3JnL2IvMTkxNTA4
IGZhc3QvY3NzLWdyaWQtbGF5b3V0L2NyYXNoLWxhcmdlLXBvc2l0aW9ucy5odG1sIFsgU2tpcCBd
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2Nzcy9jc3MtZ3JpZC9zdWJncmlkL2dyaWQtc3ViZ3JpZGRlZC1heGlzLWF1dG8tcmVwZWF0ZXIt
Y3Jhc2gtMDAxLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvY3NzL2Nzcy1ncmlkL3N1YmdyaWQvZ3JpZC1zdWJncmlkZGVkLWF4aXMtYXV0
by1yZXBlYXRlci1jcmFzaC0wMDEtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmFkZWE2MjRiZjhl
Zjg4MmJkM2VhM2M5OTRhZmE0ZGI4YjE4NjRlN2YKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtZ3JpZC9zdWJncmlk
L2dyaWQtc3ViZ3JpZGRlZC1heGlzLWF1dG8tcmVwZWF0ZXItY3Jhc2gtMDAxLWV4cGVjdGVkLnR4
dApAQCAtMCwwICsxLDcgQEAKK2xheWVyIGF0ICgwLDApIHNpemUgODAweDYwMAorICBSZW5kZXJW
aWV3IGF0ICgwLDApIHNpemUgODAweDYwMAorbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4MTYKKyAg
UmVuZGVyQmxvY2sge0hUTUx9IGF0ICgwLDApIHNpemUgODAweDE2CisgICAgUmVuZGVyQm9keSB7
Qk9EWX0gYXQgKDgsOCkgc2l6ZSA3ODR4MAorICAgICAgUmVuZGVyR3JpZCB7RElWfSBhdCAoMCww
KSBzaXplIDc4NHgwCisgICAgICAgIFJlbmRlckJsb2NrIHtESVZ9IGF0ICgwLDApIHNpemUgNzg0
eDAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvY3NzL2Nzcy1ncmlkL3N1YmdyaWQvZ3JpZC1zdWJncmlkZGVkLWF4aXMtYXV0by1yZXBlYXRl
ci1jcmFzaC0wMDItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWdyaWQvc3ViZ3JpZC9ncmlkLXN1YmdyaWRkZWQtYXhpcy1h
dXRvLXJlcGVhdGVyLWNyYXNoLTAwMi1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZGI2M2E1ZjZi
MzQ3MjQ2YmZhMjg2Njg0ZTdhY2M1MmM1MWExY2Q3ZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1ncmlkL3N1Ymdy
aWQvZ3JpZC1zdWJncmlkZGVkLWF4aXMtYXV0by1yZXBlYXRlci1jcmFzaC0wMDItZXhwZWN0ZWQu
dHh0CkBAIC0wLDAgKzEsNSBAQAorbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCisgIFJlbmRl
clZpZXcgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCitsYXllciBhdCAoMCwwKSBzaXplIDgwMHg4Cisg
IFJlbmRlckJsb2NrIHtIVE1MfSBhdCAoMCwwKSBzaXplIDgwMHg4CisgICAgUmVuZGVyQm9keSB7
Qk9EWX0gYXQgKDgsOCkgc2l6ZSA3ODR4MAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>451007</attachid>
            <date>2022-02-05 15:41:06 -0800</date>
            <delta_ts>2022-02-14 16:50:58 -0800</delta_ts>
            <desc>Patch for EWS</desc>
            <filename>ews-pa</filename>
            <type>text/plain</type>
            <size>130297</size>
            <attacher name="Matt Woodrow">mattwoodrow</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBjN2I0YjVhMjhkMjYuLjI2ZThhMTBhMTUxZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBA
CisyMDIyLTAyLTAyICBNYXR0IFdvb2Ryb3cgIDxtYXR0d29vZHJvd0BhcHBsZS5jb20+CisKKyAg
ICAgICAgQWRkIHN1cHBvcnQgZm9yIHBhcnNpbmcgJ3N1YmdyaWQnIGluIGdyaWQtdGVtcGxhdGUt
Y29sdW1ucy9yb3cKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTIzNjA1NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIFVwZGF0ZWQgVGVzdEV4cGVjdGF0aW9ucyB0byBsaXN0IGFsbCB0aGUgc3ViZ3JpZCB0ZXN0
cyBpbmRpdmlkdWFsbHksIG5vdyB0aGF0IHdlIHBhc3MgYSBmZXcuCisKKyAgICAgICAgKiBUZXN0
RXhwZWN0YXRpb25zOgorCiAyMDIyLTAyLTAzICBGcsOpZMOpcmljIFdhbmcgIDxmd2FuZ0BpZ2Fs
aWEuY29tPgogCiAgICAgICAgIG51bGwgcHRyIGRlcmVmIGluIFJlbmRlclRyZWVCdWlsZGVyOjpC
bG9jazo6YXR0YWNoSWdub3JpbmdDb250aW51YXRpb24KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zCmluZGV4IDQw
MjQ2NmU0OWYwZS4uZTMzZWM1MmJlNzUwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9UZXN0RXhw
ZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTE0MjEsNiAr
MTQyMSw1MiBAQCBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtZ3JpZC9t
YXNvbnJ5L3RlbnRhdGl2ZS9tYXNvbnJ5LW9yZGVyLTAwMQogaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9jc3MvY3NzLWdyaWQvbWFzb25yeS90ZW50YXRpdmUvbWFzb25yeS1zdWJncmlk
LTAwMS5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2Nzcy9jc3MtZ3JpZC9tYXNvbnJ5L3RlbnRhdGl2ZS9tYXNvbnJ5LXN1YmdyaWQtMDAy
Lmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0KIAoraW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9jc3MvY3NzLWdyaWQvc3ViZ3JpZC9hYnMtcG9zLTAwMi5odG1sIFsgSW1hZ2VPbmx5RmFp
bHVyZSBdCitpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtZ3JpZC9zdWJn
cmlkL2Ficy1wb3MtMDAzLmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0KK2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1ncmlkL3N1YmdyaWQvYWJzLXBvcy0wMDQuaHRtbCBb
IEltYWdlT25seUZhaWx1cmUgXQoraW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3Mv
Y3NzLWdyaWQvc3ViZ3JpZC9iYXNlbGluZS0wMDEuaHRtbCBbIEltYWdlT25seUZhaWx1cmUgXQor
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWdyaWQvc3ViZ3JpZC9ncmlk
LWdhcC0wMDEuaHRtbCBbIEltYWdlT25seUZhaWx1cmUgXQoraW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9jc3MvY3NzLWdyaWQvc3ViZ3JpZC9ncmlkLWdhcC0wMDIuaHRtbCBbIEltYWdl
T25seUZhaWx1cmUgXQoraW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWdy
aWQvc3ViZ3JpZC9ncmlkLWdhcC0wMDMuaHRtbCBbIEltYWdlT25seUZhaWx1cmUgXQoraW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWdyaWQvc3ViZ3JpZC9ncmlkLWdhcC0w
MDQuaHRtbCBbIEltYWdlT25seUZhaWx1cmUgXQoraW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9jc3MvY3NzLWdyaWQvc3ViZ3JpZC9ncmlkLWdhcC0wMDUuaHRtbCBbIEltYWdlT25seUZh
aWx1cmUgXQoraW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWdyaWQvc3Vi
Z3JpZC9ncmlkLWdhcC0wMDYuaHRtbCBbIEltYWdlT25seUZhaWx1cmUgXQoraW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWdyaWQvc3ViZ3JpZC9ncmlkLWdhcC0wMDcuaHRt
bCBbIEltYWdlT25seUZhaWx1cmUgXQoraW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9j
c3MvY3NzLWdyaWQvc3ViZ3JpZC9ncmlkLWdhcC0wMDguaHRtbCBbIEltYWdlT25seUZhaWx1cmUg
XQoraW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWdyaWQvc3ViZ3JpZC9n
cmlkLWdhcC0wMDkuaHRtbCBbIEltYWdlT25seUZhaWx1cmUgXQoraW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWdyaWQvc3ViZ3JpZC9ncmlkLWdhcC1sYXJnZXItMDAxLmh0
bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0KK2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
Y3NzL2Nzcy1ncmlkL3N1YmdyaWQvZ3JpZC1nYXAtbGFyZ2VyLTAwMi5odG1sIFsgSW1hZ2VPbmx5
RmFpbHVyZSBdCitpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtZ3JpZC9z
dWJncmlkL2dyaWQtZ2FwLW5vcm1hbC0wMDEuaHRtbCBbIEltYWdlT25seUZhaWx1cmUgXQoraW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWdyaWQvc3ViZ3JpZC9ncmlkLWdh
cC1zbWFsbGVyLTAwMS5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCitpbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtZ3JpZC9zdWJncmlkL2l0ZW0tcGVyY2VudGFnZS1oZWln
aHQtMDAxLmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0KK2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvY3NzL2Nzcy1ncmlkL3N1YmdyaWQvbGluZS1uYW1lcy0wMDEuaHRtbCBbIEltYWdl
T25seUZhaWx1cmUgXQoraW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWdy
aWQvc3ViZ3JpZC9saW5lLW5hbWVzLTAwMi5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCitpbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtZ3JpZC9zdWJncmlkL2xpbmUtbmFt
ZXMtMDAzLmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0KK2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvY3NzL2Nzcy1ncmlkL3N1YmdyaWQvbGluZS1uYW1lcy0wMDQuaHRtbCBbIEltYWdl
T25seUZhaWx1cmUgXQoraW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWdy
aWQvc3ViZ3JpZC9saW5lLW5hbWVzLTAwNS5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCitpbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtZ3JpZC9zdWJncmlkL2xpbmUtbmFt
ZXMtMDA2Lmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0KK2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvY3NzL2Nzcy1ncmlkL3N1YmdyaWQvbGluZS1uYW1lcy0wMDcuaHRtbCBbIEltYWdl
T25seUZhaWx1cmUgXQoraW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWdy
aWQvc3ViZ3JpZC9saW5lLW5hbWVzLTAwOC5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCitpbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtZ3JpZC9zdWJncmlkL29ydGhvZ29u
YWwtd3JpdGluZy1tb2RlLTAwMS5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCitpbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtZ3JpZC9zdWJncmlkL29ydGhvZ29uYWwtd3Jp
dGluZy1tb2RlLTAwMi5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCitpbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtZ3JpZC9zdWJncmlkL29ydGhvZ29uYWwtd3JpdGluZy1t
b2RlLTAwMy5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCitpbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2Nzcy9jc3MtZ3JpZC9zdWJncmlkL29ydGhvZ29uYWwtd3JpdGluZy1tb2RlLTAw
NC5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCitpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2Nzcy9jc3MtZ3JpZC9zdWJncmlkL3BhcmVudC1yZXBlYXQtYXV0by1maXQtMDAxLmh0bWwg
WyBJbWFnZU9ubHlGYWlsdXJlIF0KK2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3Nz
L2Nzcy1ncmlkL3N1YmdyaWQvcGFyZW50LXJlcGVhdC1hdXRvLWZpdC0wMDIuaHRtbCBbIEltYWdl
T25seUZhaWx1cmUgXQoraW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWdy
aWQvc3ViZ3JpZC9yZXBlYXQtYXV0by1maWxsLTAwMS5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBd
CitpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtZ3JpZC9zdWJncmlkL3Jl
cGVhdC1hdXRvLWZpbGwtMDAyLmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0KK2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1ncmlkL3N1YmdyaWQvcmVwZWF0LWF1dG8tZmls
bC0wMDMuaHRtbCBbIEltYWdlT25seUZhaWx1cmUgXQoraW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9jc3MvY3NzLWdyaWQvc3ViZ3JpZC9yZXBlYXQtYXV0by1maWxsLTAwNC5odG1sIFsg
SW1hZ2VPbmx5RmFpbHVyZSBdCitpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9j
c3MtZ3JpZC9zdWJncmlkL3JlcGVhdC1hdXRvLWZpbGwtMDA1Lmh0bWwgWyBJbWFnZU9ubHlGYWls
dXJlIF0KK2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1ncmlkL3N1Ymdy
aWQvcmVwZWF0LWF1dG8tZmlsbC0wMDYuaHRtbCBbIEltYWdlT25seUZhaWx1cmUgXQoraW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWdyaWQvc3ViZ3JpZC9yZXBlYXQtYXV0
by1maWxsLTAwNy5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCitpbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2Nzcy9jc3MtZ3JpZC9zdWJncmlkL3JlcGVhdC1hdXRvLWZpbGwtMDA4Lmh0
bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0KK2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
Y3NzL2Nzcy1ncmlkL3N1YmdyaWQvc3ViZ3JpZC1pdGVtLWJsb2NrLXNpemUtMDAxLmh0bWwgWyBJ
bWFnZU9ubHlGYWlsdXJlIF0KK2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nz
cy1ncmlkL3N1YmdyaWQvc3ViZ3JpZC1tYnAtb3ZlcmZsb3ctMDAxLmh0bWwgWyBJbWFnZU9ubHlG
YWlsdXJlIF0KK2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1ncmlkL3N1
YmdyaWQvc3ViZ3JpZC1tYnAtb3ZlcmZsb3ctMDAyLmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0K
K2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1ncmlkL3N1YmdyaWQvc3Vi
Z3JpZC1tYnAtb3ZlcmZsb3ctMDAzLmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0KK2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1ncmlkL3N1YmdyaWQvc3ViZ3JpZC1tYnAt
b3ZlcmZsb3ctMDA0Lmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0KKwogd2Via2l0Lm9yZy9iLzE0
OTg5MCBmYXN0L2Nzcy1ncmlkLWxheW91dC9ncmlkLXNob3J0aGFuZHMtc3R5bGUtZm9ybWF0Lmh0
bWwgWyBGYWlsdXJlIF0KIHdlYmtpdC5vcmcvYi8xOTE1MDggZmFzdC9jc3MtZ3JpZC1sYXlvdXQv
Y3Jhc2gtbGFyZ2UtcG9zaXRpb25zLmh0bWwgWyBTa2lwIF0KIApAQCAtNDI2Miw3ICs0MzA4LDYg
QEAgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2NhbnZhcy9lbGVtZW50L21h
bnVhbC9zaGFkb3dzL2NhbnZhc19zaGFkb3cKIAogIyBDU1MgTWFzb25yeSBMYXlvdXQgbm90IHN1
cHBvcnRlZC4KIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1ncmlkL21h
c29ucnkudGVudGF0aXZlIFsgU2tpcCBdCi13ZWJraXQub3JnL2IvMjAyMTE1IGltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1ncmlkL3N1YmdyaWQgWyBTa2lwIF0KIHdlYmtp
dC5vcmcvYi8yMDQ1ODAgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWdy
aWQvYW5pbWF0aW9uL2dyaWQtdGVtcGxhdGUtY29sdW1ucy0wMDEuaHRtbCBbIEltYWdlT25seUZh
aWx1cmUgXQogd2Via2l0Lm9yZy9iLzIwNDU4MCBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2Nzcy9jc3MtZ3JpZC9hbmltYXRpb24vZ3JpZC10ZW1wbGF0ZS1yb3dzLTAwMS5odG1sIFsg
SW1hZ2VPbmx5RmFpbHVyZSBdCiB3ZWJraXQub3JnL2IvMjA5NDYwIGltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1ncmlkL2Fic3Bvcy9kZXNjZW5kYW50LXN0YXRpYy1wb3Np
dGlvbi0wMDEuaHRtbCBbIEltYWdlT25seUZhaWx1cmUgXQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFu
Z2VMb2cKaW5kZXggNDM3OTliOTIzMjgzLi5jNTA0M2ZkMDE4MTIgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMyIEBACisyMDIyLTAyLTAzICBNYXR0IFdvb2Ryb3cg
IDxtYXR0d29vZHJvd0BhcHBsZS5jb20+CisKKyAgICAgICAgSW5oZXJpdCB0cmFjayBjb3VudCBm
cm9tIHBhcmVudCBncmlkIGZvciBzdWJncmlkZGVkIGF4ZXMgYW5kIGNsYW1wIGl0ZW0gcGxhY2Vt
ZW50IHRvIHRoYXQgZXhwbGljaXQgZ3JpZC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTIzNjEyMgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIFRlc3QgY2hhbmdlcyB0byBtYXRjaCBsYXRlc3Qgc3BlYywgc3Vi
bWl0dGVkIHVwc3RyZWFtIGFzIGh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMv
d3B0L3B1bGwvMzI2MjkKKworICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWdy
aWQvc3ViZ3JpZC9saW5lLW5hbWVzLTAwMi1leHBlY3RlZC5odG1sOgorICAgICAgICAqIHdlYi1w
bGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWdyaWQvc3ViZ3JpZC9saW5lLW5hbWVzLTAwNS1leHBlY3Rl
ZC5odG1sOgorCisyMDIyLTAyLTAyICBNYXR0IFdvb2Ryb3cgIDxtYXR0d29vZHJvd0BhcHBsZS5j
b20+CisKKyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIHBhcnNpbmcgJ3N1YmdyaWQnIGluIGdyaWQt
dGVtcGxhdGUtY29sdW1ucy9yb3cKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTIzNjA1NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIEltcG9ydGVkIGxhc3Rlc3Qgc3ViZ3JpZCB0ZXN0cy4KKworICAgICAgICAq
IHJlc291cmNlcy9pbXBvcnQtZXhwZWN0YXRpb25zLmpzb246CisgICAgICAgICogd2ViLXBsYXRm
b3JtLXRlc3RzL2Nzcy9jc3MtZ3JpZC9zdWJncmlkL2dyaWQtdGVtcGxhdGUtY29tcHV0ZWQtbm9n
cmlkLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1n
cmlkL3N1YmdyaWQvZ3JpZC10ZW1wbGF0ZS1pbnZhbGlkLWV4cGVjdGVkLnR4dDogQWRkZWQuCisg
ICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtZ3JpZC9zdWJncmlkL2dyaWQtdGVt
cGxhdGUtaW52YWxpZC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMv
Y3NzL2Nzcy1ncmlkL3N1YmdyaWQvZ3JpZC10ZW1wbGF0ZS12YWxpZC1leHBlY3RlZC50eHQ6IEFk
ZGVkLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWdyaWQvc3ViZ3JpZC9n
cmlkLXRlbXBsYXRlLXZhbGlkLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10
ZXN0cy9jc3MvY3NzLWdyaWQvc3ViZ3JpZC93M2MtaW1wb3J0LmxvZzoKKwogMjAyMi0wMi0wMyAg
Q2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIEltcGxlbWVudCBBYm9y
dFNpZ25hbC50aW1lb3V0KCkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1ncmlkL3N1YmdyaWQvZ3JpZC1zdWJncmlkZGVkLWF4
aXMtYXV0by1yZXBlYXRlci1jcmFzaC0wMDEtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWdyaWQvc3ViZ3JpZC9ncmlkLXN1
YmdyaWRkZWQtYXhpcy1hdXRvLXJlcGVhdGVyLWNyYXNoLTAwMS1leHBlY3RlZC50eHQKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi5hZGVhNjI0YmY4ZWYKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nz
cy9jc3MtZ3JpZC9zdWJncmlkL2dyaWQtc3ViZ3JpZGRlZC1heGlzLWF1dG8tcmVwZWF0ZXItY3Jh
c2gtMDAxLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDcgQEAKK2xheWVyIGF0ICgwLDApIHNpemUg
ODAweDYwMAorICBSZW5kZXJWaWV3IGF0ICgwLDApIHNpemUgODAweDYwMAorbGF5ZXIgYXQgKDAs
MCkgc2l6ZSA4MDB4MTYKKyAgUmVuZGVyQmxvY2sge0hUTUx9IGF0ICgwLDApIHNpemUgODAweDE2
CisgICAgUmVuZGVyQm9keSB7Qk9EWX0gYXQgKDgsOCkgc2l6ZSA3ODR4MAorICAgICAgUmVuZGVy
R3JpZCB7RElWfSBhdCAoMCwwKSBzaXplIDc4NHgwCisgICAgICAgIFJlbmRlckJsb2NrIHtESVZ9
IGF0ICgwLDApIHNpemUgNzg0eDAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1ncmlkL3N1YmdyaWQvZ3JpZC1zdWJncmlkZGVk
LWF4aXMtYXV0by1yZXBlYXRlci1jcmFzaC0wMDItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWdyaWQvc3ViZ3JpZC9ncmlk
LXN1YmdyaWRkZWQtYXhpcy1hdXRvLXJlcGVhdGVyLWNyYXNoLTAwMi1leHBlY3RlZC50eHQKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi5kYjYzYTVmNmIzNDcKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2Nzcy9jc3MtZ3JpZC9zdWJncmlkL2dyaWQtc3ViZ3JpZGRlZC1heGlzLWF1dG8tcmVwZWF0ZXIt
Y3Jhc2gtMDAyLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDUgQEAKK2xheWVyIGF0ICgwLDApIHNp
emUgODAweDYwMAorICBSZW5kZXJWaWV3IGF0ICgwLDApIHNpemUgODAweDYwMAorbGF5ZXIgYXQg
KDAsMCkgc2l6ZSA4MDB4OAorICBSZW5kZXJCbG9jayB7SFRNTH0gYXQgKDAsMCkgc2l6ZSA4MDB4
OAorICAgIFJlbmRlckJvZHkge0JPRFl9IGF0ICg4LDgpIHNpemUgNzg0eDAKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1ncmlk
L3N1YmdyaWQvZ3JpZC10ZW1wbGF0ZS1jb21wdXRlZC1ub2dyaWQtZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWdyaWQvc3Vi
Z3JpZC9ncmlkLXRlbXBsYXRlLWNvbXB1dGVkLW5vZ3JpZC1leHBlY3RlZC50eHQKaW5kZXggYWFh
NjdlYzMzOTZlLi42NjAyYzc0ZDNhZTIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1ncmlkL3N1YmdyaWQvZ3JpZC10ZW1wbGF0
ZS1jb21wdXRlZC1ub2dyaWQtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1ncmlkL3N1YmdyaWQvZ3JpZC10ZW1wbGF0
ZS1jb21wdXRlZC1ub2dyaWQtZXhwZWN0ZWQudHh0CkBAIC0xLDMxICsxLDMxIEBACiAKLUZBSUwg
UHJvcGVydHkgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zIHZhbHVlICdzdWJncmlkIFthXScgY29tcHV0
ZXMgdG8gJ3N1YmdyaWQgW2FdJyBhc3NlcnRfdHJ1ZTogJ3N1YmdyaWQgW2FdJyBpcyBhIHN1cHBv
cnRlZCB2YWx1ZSBmb3IgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zLiBleHBlY3RlZCB0cnVlIGdvdCBm
YWxzZQotRkFJTCBQcm9wZXJ0eSBncmlkLXRlbXBsYXRlLWNvbHVtbnMgdmFsdWUgJ3N1YmdyaWQg
W2FdIFtiXScgY29tcHV0ZXMgdG8gJ3N1YmdyaWQgW2FdIFtiXScgYXNzZXJ0X3RydWU6ICdzdWJn
cmlkIFthXSBbYl0nIGlzIGEgc3VwcG9ydGVkIHZhbHVlIGZvciBncmlkLXRlbXBsYXRlLWNvbHVt
bnMuIGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCi1GQUlMIFByb3BlcnR5IGdyaWQtdGVtcGxhdGUt
Y29sdW1ucyB2YWx1ZSAnc3ViZ3JpZCBbYV0gW2JdIFtiXSBbY10nIGNvbXB1dGVzIHRvICdzdWJn
cmlkIFthXSBbYl0gW2JdIFtjXScgYXNzZXJ0X3RydWU6ICdzdWJncmlkIFthXSBbYl0gW2JdIFtj
XScgaXMgYSBzdXBwb3J0ZWQgdmFsdWUgZm9yIGdyaWQtdGVtcGxhdGUtY29sdW1ucy4gZXhwZWN0
ZWQgdHJ1ZSBnb3QgZmFsc2UKLUZBSUwgUHJvcGVydHkgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zIHZh
bHVlICdzdWJncmlkIFthXSBbYiBjIGRdIFtlIGZdIFtlIGZdIFtnXScgY29tcHV0ZXMgdG8gJ3N1
YmdyaWQgW2FdIFtiIGMgZF0gW2UgZl0gW2UgZl0gW2ddJyBhc3NlcnRfdHJ1ZTogJ3N1YmdyaWQg
W2FdIFtiIGMgZF0gW2UgZl0gW2UgZl0gW2ddJyBpcyBhIHN1cHBvcnRlZCB2YWx1ZSBmb3IgZ3Jp
ZC10ZW1wbGF0ZS1jb2x1bW5zLiBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQotRkFJTCBQcm9wZXJ0
eSBncmlkLXRlbXBsYXRlLWNvbHVtbnMgdmFsdWUgJ3N1YmdyaWQgW2EgYiBjXSBbZF0gW2UgZl0n
IGNvbXB1dGVzIHRvICdzdWJncmlkIFthIGIgY10gW2RdIFtlIGZdJyBhc3NlcnRfdHJ1ZTogJ3N1
YmdyaWQgW2EgYiBjXSBbZF0gW2UgZl0nIGlzIGEgc3VwcG9ydGVkIHZhbHVlIGZvciBncmlkLXRl
bXBsYXRlLWNvbHVtbnMuIGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCi1GQUlMIFByb3BlcnR5IGdy
aWQtdGVtcGxhdGUtY29sdW1ucyB2YWx1ZSAnc3ViZ3JpZCByZXBlYXQoYXV0by1maWxsLCBbY10p
JyBjb21wdXRlcyB0byAnc3ViZ3JpZCByZXBlYXQoYXV0by1maWxsLCBbY10pJyBhc3NlcnRfdHJ1
ZTogJ3N1YmdyaWQgcmVwZWF0KGF1dG8tZmlsbCwgW2NdKScgaXMgYSBzdXBwb3J0ZWQgdmFsdWUg
Zm9yIGdyaWQtdGVtcGxhdGUtY29sdW1ucy4gZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKLUZBSUwg
UHJvcGVydHkgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zIHZhbHVlICdzdWJncmlkIHJlcGVhdChhdXRv
LWZpbGwsIFtjXSkgW2ddIFtoIGldJyBjb21wdXRlcyB0byAnc3ViZ3JpZCByZXBlYXQoYXV0by1m
aWxsLCBbY10pIFtnXSBbaCBpXScgYXNzZXJ0X3RydWU6ICdzdWJncmlkIHJlcGVhdChhdXRvLWZp
bGwsIFtjXSkgW2ddIFtoIGldJyBpcyBhIHN1cHBvcnRlZCB2YWx1ZSBmb3IgZ3JpZC10ZW1wbGF0
ZS1jb2x1bW5zLiBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQotRkFJTCBQcm9wZXJ0eSBncmlkLXRl
bXBsYXRlLWNvbHVtbnMgdmFsdWUgJ3N1YmdyaWQgW2FdIHJlcGVhdChhdXRvLWZpbGwsIFtjXSkg
W2ddIFtoIGldJyBjb21wdXRlcyB0byAnc3ViZ3JpZCBbYV0gcmVwZWF0KGF1dG8tZmlsbCwgW2Nd
KSBbZ10gW2ggaV0nIGFzc2VydF90cnVlOiAnc3ViZ3JpZCBbYV0gcmVwZWF0KGF1dG8tZmlsbCwg
W2NdKSBbZ10gW2ggaV0nIGlzIGEgc3VwcG9ydGVkIHZhbHVlIGZvciBncmlkLXRlbXBsYXRlLWNv
bHVtbnMuIGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCi1GQUlMIFByb3BlcnR5IGdyaWQtdGVtcGxh
dGUtY29sdW1ucyB2YWx1ZSAnc3ViZ3JpZCBbYSBiXSByZXBlYXQoYXV0by1maWxsLCBbY10pIFtn
XScgY29tcHV0ZXMgdG8gJ3N1YmdyaWQgW2EgYl0gcmVwZWF0KGF1dG8tZmlsbCwgW2NdKSBbZ10n
IGFzc2VydF90cnVlOiAnc3ViZ3JpZCBbYSBiXSByZXBlYXQoYXV0by1maWxsLCBbY10pIFtnXScg
aXMgYSBzdXBwb3J0ZWQgdmFsdWUgZm9yIGdyaWQtdGVtcGxhdGUtY29sdW1ucy4gZXhwZWN0ZWQg
dHJ1ZSBnb3QgZmFsc2UKLUZBSUwgUHJvcGVydHkgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zIHZhbHVl
ICdzdWJncmlkIFthXSBbYl0gcmVwZWF0KGF1dG8tZmlsbCwgW2NdKSBbZyBoXScgY29tcHV0ZXMg
dG8gJ3N1YmdyaWQgW2FdIFtiXSByZXBlYXQoYXV0by1maWxsLCBbY10pIFtnIGhdJyBhc3NlcnRf
dHJ1ZTogJ3N1YmdyaWQgW2FdIFtiXSByZXBlYXQoYXV0by1maWxsLCBbY10pIFtnIGhdJyBpcyBh
IHN1cHBvcnRlZCB2YWx1ZSBmb3IgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zLiBleHBlY3RlZCB0cnVl
IGdvdCBmYWxzZQotRkFJTCBQcm9wZXJ0eSBncmlkLXRlbXBsYXRlLWNvbHVtbnMgdmFsdWUgJ3N1
YmdyaWQgW2FdIFtiXSByZXBlYXQoYXV0by1maWxsLCBbY10pJyBjb21wdXRlcyB0byAnc3ViZ3Jp
ZCBbYV0gW2JdIHJlcGVhdChhdXRvLWZpbGwsIFtjXSknIGFzc2VydF90cnVlOiAnc3ViZ3JpZCBb
YV0gW2JdIHJlcGVhdChhdXRvLWZpbGwsIFtjXSknIGlzIGEgc3VwcG9ydGVkIHZhbHVlIGZvciBn
cmlkLXRlbXBsYXRlLWNvbHVtbnMuIGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCi1GQUlMIFByb3Bl
cnR5IGdyaWQtdGVtcGxhdGUtY29sdW1ucyB2YWx1ZSAnc3ViZ3JpZCByZXBlYXQoYXV0by1maWxs
LCBbYyBkXSknIGNvbXB1dGVzIHRvICdzdWJncmlkIHJlcGVhdChhdXRvLWZpbGwsIFtjIGRdKScg
YXNzZXJ0X3RydWU6ICdzdWJncmlkIHJlcGVhdChhdXRvLWZpbGwsIFtjIGRdKScgaXMgYSBzdXBw
b3J0ZWQgdmFsdWUgZm9yIGdyaWQtdGVtcGxhdGUtY29sdW1ucy4gZXhwZWN0ZWQgdHJ1ZSBnb3Qg
ZmFsc2UKLUZBSUwgUHJvcGVydHkgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zIHZhbHVlICdzdWJncmlk
IHJlcGVhdChhdXRvLWZpbGwsIFtjIGRdKSBbZ10gW2ggaV0nIGNvbXB1dGVzIHRvICdzdWJncmlk
IHJlcGVhdChhdXRvLWZpbGwsIFtjIGRdKSBbZ10gW2ggaV0nIGFzc2VydF90cnVlOiAnc3ViZ3Jp
ZCByZXBlYXQoYXV0by1maWxsLCBbYyBkXSkgW2ddIFtoIGldJyBpcyBhIHN1cHBvcnRlZCB2YWx1
ZSBmb3IgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zLiBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQotRkFJ
TCBQcm9wZXJ0eSBncmlkLXRlbXBsYXRlLWNvbHVtbnMgdmFsdWUgJ3N1YmdyaWQgW2FdIHJlcGVh
dChhdXRvLWZpbGwsIFtjIGRdKSBbZ10gW2ggaV0nIGNvbXB1dGVzIHRvICdzdWJncmlkIFthXSBy
ZXBlYXQoYXV0by1maWxsLCBbYyBkXSkgW2ddIFtoIGldJyBhc3NlcnRfdHJ1ZTogJ3N1YmdyaWQg
W2FdIHJlcGVhdChhdXRvLWZpbGwsIFtjIGRdKSBbZ10gW2ggaV0nIGlzIGEgc3VwcG9ydGVkIHZh
bHVlIGZvciBncmlkLXRlbXBsYXRlLWNvbHVtbnMuIGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCi1G
QUlMIFByb3BlcnR5IGdyaWQtdGVtcGxhdGUtY29sdW1ucyB2YWx1ZSAnc3ViZ3JpZCBbYSBiXSBy
ZXBlYXQoYXV0by1maWxsLCBbYyBkXSkgW2ddJyBjb21wdXRlcyB0byAnc3ViZ3JpZCBbYSBiXSBy
ZXBlYXQoYXV0by1maWxsLCBbYyBkXSkgW2ddJyBhc3NlcnRfdHJ1ZTogJ3N1YmdyaWQgW2EgYl0g
cmVwZWF0KGF1dG8tZmlsbCwgW2MgZF0pIFtnXScgaXMgYSBzdXBwb3J0ZWQgdmFsdWUgZm9yIGdy
aWQtdGVtcGxhdGUtY29sdW1ucy4gZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKLUZBSUwgUHJvcGVy
dHkgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zIHZhbHVlICdzdWJncmlkIFthXSBbYl0gcmVwZWF0KGF1
dG8tZmlsbCwgW2MgZF0pIFtnIGhdJyBjb21wdXRlcyB0byAnc3ViZ3JpZCBbYV0gW2JdIHJlcGVh
dChhdXRvLWZpbGwsIFtjIGRdKSBbZyBoXScgYXNzZXJ0X3RydWU6ICdzdWJncmlkIFthXSBbYl0g
cmVwZWF0KGF1dG8tZmlsbCwgW2MgZF0pIFtnIGhdJyBpcyBhIHN1cHBvcnRlZCB2YWx1ZSBmb3Ig
Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zLiBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQotRkFJTCBQcm9w
ZXJ0eSBncmlkLXRlbXBsYXRlLWNvbHVtbnMgdmFsdWUgJ3N1YmdyaWQgW2FdIFtiXSByZXBlYXQo
YXV0by1maWxsLCBbYyBkXSknIGNvbXB1dGVzIHRvICdzdWJncmlkIFthXSBbYl0gcmVwZWF0KGF1
dG8tZmlsbCwgW2MgZF0pJyBhc3NlcnRfdHJ1ZTogJ3N1YmdyaWQgW2FdIFtiXSByZXBlYXQoYXV0
by1maWxsLCBbYyBkXSknIGlzIGEgc3VwcG9ydGVkIHZhbHVlIGZvciBncmlkLXRlbXBsYXRlLWNv
bHVtbnMuIGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCi1GQUlMIFByb3BlcnR5IGdyaWQtdGVtcGxh
dGUtY29sdW1ucyB2YWx1ZSAnc3ViZ3JpZCByZXBlYXQoYXV0by1maWxsLCBbY10gW2RdKScgY29t
cHV0ZXMgdG8gJ3N1YmdyaWQgcmVwZWF0KGF1dG8tZmlsbCwgW2NdIFtkXSknIGFzc2VydF90cnVl
OiAnc3ViZ3JpZCByZXBlYXQoYXV0by1maWxsLCBbY10gW2RdKScgaXMgYSBzdXBwb3J0ZWQgdmFs
dWUgZm9yIGdyaWQtdGVtcGxhdGUtY29sdW1ucy4gZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKLUZB
SUwgUHJvcGVydHkgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zIHZhbHVlICdzdWJncmlkIHJlcGVhdChh
dXRvLWZpbGwsIFtjXSBbZF0pIFtnXSBbaCBpXScgY29tcHV0ZXMgdG8gJ3N1YmdyaWQgcmVwZWF0
KGF1dG8tZmlsbCwgW2NdIFtkXSkgW2ddIFtoIGldJyBhc3NlcnRfdHJ1ZTogJ3N1YmdyaWQgcmVw
ZWF0KGF1dG8tZmlsbCwgW2NdIFtkXSkgW2ddIFtoIGldJyBpcyBhIHN1cHBvcnRlZCB2YWx1ZSBm
b3IgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zLiBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQotRkFJTCBQ
cm9wZXJ0eSBncmlkLXRlbXBsYXRlLWNvbHVtbnMgdmFsdWUgJ3N1YmdyaWQgW2FdIHJlcGVhdChh
dXRvLWZpbGwsIFtjXSBbZF0pIFtnXSBbaCBpXScgY29tcHV0ZXMgdG8gJ3N1YmdyaWQgW2FdIHJl
cGVhdChhdXRvLWZpbGwsIFtjXSBbZF0pIFtnXSBbaCBpXScgYXNzZXJ0X3RydWU6ICdzdWJncmlk
IFthXSByZXBlYXQoYXV0by1maWxsLCBbY10gW2RdKSBbZ10gW2ggaV0nIGlzIGEgc3VwcG9ydGVk
IHZhbHVlIGZvciBncmlkLXRlbXBsYXRlLWNvbHVtbnMuIGV4cGVjdGVkIHRydWUgZ290IGZhbHNl
Ci1GQUlMIFByb3BlcnR5IGdyaWQtdGVtcGxhdGUtY29sdW1ucyB2YWx1ZSAnc3ViZ3JpZCBbYSBi
XSByZXBlYXQoYXV0by1maWxsLCBbY10gW2RdKSBbZ10nIGNvbXB1dGVzIHRvICdzdWJncmlkIFth
IGJdIHJlcGVhdChhdXRvLWZpbGwsIFtjXSBbZF0pIFtnXScgYXNzZXJ0X3RydWU6ICdzdWJncmlk
IFthIGJdIHJlcGVhdChhdXRvLWZpbGwsIFtjXSBbZF0pIFtnXScgaXMgYSBzdXBwb3J0ZWQgdmFs
dWUgZm9yIGdyaWQtdGVtcGxhdGUtY29sdW1ucy4gZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKLUZB
SUwgUHJvcGVydHkgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zIHZhbHVlICdzdWJncmlkIFthXSBbYl0g
cmVwZWF0KGF1dG8tZmlsbCwgW2NdIFtkXSkgW2cgaF0nIGNvbXB1dGVzIHRvICdzdWJncmlkIFth
XSBbYl0gcmVwZWF0KGF1dG8tZmlsbCwgW2NdIFtkXSkgW2cgaF0nIGFzc2VydF90cnVlOiAnc3Vi
Z3JpZCBbYV0gW2JdIHJlcGVhdChhdXRvLWZpbGwsIFtjXSBbZF0pIFtnIGhdJyBpcyBhIHN1cHBv
cnRlZCB2YWx1ZSBmb3IgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zLiBleHBlY3RlZCB0cnVlIGdvdCBm
YWxzZQotRkFJTCBQcm9wZXJ0eSBncmlkLXRlbXBsYXRlLWNvbHVtbnMgdmFsdWUgJ3N1YmdyaWQg
W2FdIFtiXSByZXBlYXQoYXV0by1maWxsLCBbY10gW2RdKScgY29tcHV0ZXMgdG8gJ3N1YmdyaWQg
W2FdIFtiXSByZXBlYXQoYXV0by1maWxsLCBbY10gW2RdKScgYXNzZXJ0X3RydWU6ICdzdWJncmlk
IFthXSBbYl0gcmVwZWF0KGF1dG8tZmlsbCwgW2NdIFtkXSknIGlzIGEgc3VwcG9ydGVkIHZhbHVl
IGZvciBncmlkLXRlbXBsYXRlLWNvbHVtbnMuIGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCi1GQUlM
IFByb3BlcnR5IGdyaWQtdGVtcGxhdGUtY29sdW1ucyB2YWx1ZSAnc3ViZ3JpZCByZXBlYXQoYXV0
by1maWxsLCBbY10gW2QgZV0pJyBjb21wdXRlcyB0byAnc3ViZ3JpZCByZXBlYXQoYXV0by1maWxs
LCBbY10gW2QgZV0pJyBhc3NlcnRfdHJ1ZTogJ3N1YmdyaWQgcmVwZWF0KGF1dG8tZmlsbCwgW2Nd
IFtkIGVdKScgaXMgYSBzdXBwb3J0ZWQgdmFsdWUgZm9yIGdyaWQtdGVtcGxhdGUtY29sdW1ucy4g
ZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKLUZBSUwgUHJvcGVydHkgZ3JpZC10ZW1wbGF0ZS1jb2x1
bW5zIHZhbHVlICdzdWJncmlkIHJlcGVhdChhdXRvLWZpbGwsIFtjXSBbZCBlXSkgW2ddIFtoIGld
JyBjb21wdXRlcyB0byAnc3ViZ3JpZCByZXBlYXQoYXV0by1maWxsLCBbY10gW2QgZV0pIFtnXSBb
aCBpXScgYXNzZXJ0X3RydWU6ICdzdWJncmlkIHJlcGVhdChhdXRvLWZpbGwsIFtjXSBbZCBlXSkg
W2ddIFtoIGldJyBpcyBhIHN1cHBvcnRlZCB2YWx1ZSBmb3IgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5z
LiBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQotRkFJTCBQcm9wZXJ0eSBncmlkLXRlbXBsYXRlLWNv
bHVtbnMgdmFsdWUgJ3N1YmdyaWQgW2FdIHJlcGVhdChhdXRvLWZpbGwsIFtjXSBbZCBlXSkgW2dd
IFtoIGldJyBjb21wdXRlcyB0byAnc3ViZ3JpZCBbYV0gcmVwZWF0KGF1dG8tZmlsbCwgW2NdIFtk
IGVdKSBbZ10gW2ggaV0nIGFzc2VydF90cnVlOiAnc3ViZ3JpZCBbYV0gcmVwZWF0KGF1dG8tZmls
bCwgW2NdIFtkIGVdKSBbZ10gW2ggaV0nIGlzIGEgc3VwcG9ydGVkIHZhbHVlIGZvciBncmlkLXRl
bXBsYXRlLWNvbHVtbnMuIGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCi1GQUlMIFByb3BlcnR5IGdy
aWQtdGVtcGxhdGUtY29sdW1ucyB2YWx1ZSAnc3ViZ3JpZCBbYSBiXSByZXBlYXQoYXV0by1maWxs
LCBbY10gW2QgZV0pIFtnXScgY29tcHV0ZXMgdG8gJ3N1YmdyaWQgW2EgYl0gcmVwZWF0KGF1dG8t
ZmlsbCwgW2NdIFtkIGVdKSBbZ10nIGFzc2VydF90cnVlOiAnc3ViZ3JpZCBbYSBiXSByZXBlYXQo
YXV0by1maWxsLCBbY10gW2QgZV0pIFtnXScgaXMgYSBzdXBwb3J0ZWQgdmFsdWUgZm9yIGdyaWQt
dGVtcGxhdGUtY29sdW1ucy4gZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKLUZBSUwgUHJvcGVydHkg
Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zIHZhbHVlICdzdWJncmlkIFthXSBbYl0gcmVwZWF0KGF1dG8t
ZmlsbCwgW2NdIFtkIGVdKSBbZyBoXScgY29tcHV0ZXMgdG8gJ3N1YmdyaWQgW2FdIFtiXSByZXBl
YXQoYXV0by1maWxsLCBbY10gW2QgZV0pIFtnIGhdJyBhc3NlcnRfdHJ1ZTogJ3N1YmdyaWQgW2Fd
IFtiXSByZXBlYXQoYXV0by1maWxsLCBbY10gW2QgZV0pIFtnIGhdJyBpcyBhIHN1cHBvcnRlZCB2
YWx1ZSBmb3IgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zLiBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQot
RkFJTCBQcm9wZXJ0eSBncmlkLXRlbXBsYXRlLWNvbHVtbnMgdmFsdWUgJ3N1YmdyaWQgW2FdIFti
XSByZXBlYXQoYXV0by1maWxsLCBbY10gW2QgZV0pJyBjb21wdXRlcyB0byAnc3ViZ3JpZCBbYV0g
W2JdIHJlcGVhdChhdXRvLWZpbGwsIFtjXSBbZCBlXSknIGFzc2VydF90cnVlOiAnc3ViZ3JpZCBb
YV0gW2JdIHJlcGVhdChhdXRvLWZpbGwsIFtjXSBbZCBlXSknIGlzIGEgc3VwcG9ydGVkIHZhbHVl
IGZvciBncmlkLXRlbXBsYXRlLWNvbHVtbnMuIGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCitQQVNT
IFByb3BlcnR5IGdyaWQtdGVtcGxhdGUtY29sdW1ucyB2YWx1ZSAnc3ViZ3JpZCBbYV0nCitQQVNT
IFByb3BlcnR5IGdyaWQtdGVtcGxhdGUtY29sdW1ucyB2YWx1ZSAnc3ViZ3JpZCBbYV0gW2JdJwor
UEFTUyBQcm9wZXJ0eSBncmlkLXRlbXBsYXRlLWNvbHVtbnMgdmFsdWUgJ3N1YmdyaWQgW2FdIFti
XSBbYl0gW2NdJworUEFTUyBQcm9wZXJ0eSBncmlkLXRlbXBsYXRlLWNvbHVtbnMgdmFsdWUgJ3N1
YmdyaWQgW2FdIFtiIGMgZF0gW2UgZl0gW2UgZl0gW2ddJworUEFTUyBQcm9wZXJ0eSBncmlkLXRl
bXBsYXRlLWNvbHVtbnMgdmFsdWUgJ3N1YmdyaWQgW2EgYiBjXSBbZF0gW2UgZl0nCitQQVNTIFBy
b3BlcnR5IGdyaWQtdGVtcGxhdGUtY29sdW1ucyB2YWx1ZSAnc3ViZ3JpZCByZXBlYXQoYXV0by1m
aWxsLCBbY10pJworUEFTUyBQcm9wZXJ0eSBncmlkLXRlbXBsYXRlLWNvbHVtbnMgdmFsdWUgJ3N1
YmdyaWQgcmVwZWF0KGF1dG8tZmlsbCwgW2NdKSBbZ10gW2ggaV0nCitQQVNTIFByb3BlcnR5IGdy
aWQtdGVtcGxhdGUtY29sdW1ucyB2YWx1ZSAnc3ViZ3JpZCBbYV0gcmVwZWF0KGF1dG8tZmlsbCwg
W2NdKSBbZ10gW2ggaV0nCitQQVNTIFByb3BlcnR5IGdyaWQtdGVtcGxhdGUtY29sdW1ucyB2YWx1
ZSAnc3ViZ3JpZCBbYSBiXSByZXBlYXQoYXV0by1maWxsLCBbY10pIFtnXScKK1BBU1MgUHJvcGVy
dHkgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zIHZhbHVlICdzdWJncmlkIFthXSBbYl0gcmVwZWF0KGF1
dG8tZmlsbCwgW2NdKSBbZyBoXScKK1BBU1MgUHJvcGVydHkgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5z
IHZhbHVlICdzdWJncmlkIFthXSBbYl0gcmVwZWF0KGF1dG8tZmlsbCwgW2NdKScKK1BBU1MgUHJv
cGVydHkgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zIHZhbHVlICdzdWJncmlkIHJlcGVhdChhdXRvLWZp
bGwsIFtjIGRdKScKK1BBU1MgUHJvcGVydHkgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zIHZhbHVlICdz
dWJncmlkIHJlcGVhdChhdXRvLWZpbGwsIFtjIGRdKSBbZ10gW2ggaV0nCitQQVNTIFByb3BlcnR5
IGdyaWQtdGVtcGxhdGUtY29sdW1ucyB2YWx1ZSAnc3ViZ3JpZCBbYV0gcmVwZWF0KGF1dG8tZmls
bCwgW2MgZF0pIFtnXSBbaCBpXScKK1BBU1MgUHJvcGVydHkgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5z
IHZhbHVlICdzdWJncmlkIFthIGJdIHJlcGVhdChhdXRvLWZpbGwsIFtjIGRdKSBbZ10nCitQQVNT
IFByb3BlcnR5IGdyaWQtdGVtcGxhdGUtY29sdW1ucyB2YWx1ZSAnc3ViZ3JpZCBbYV0gW2JdIHJl
cGVhdChhdXRvLWZpbGwsIFtjIGRdKSBbZyBoXScKK1BBU1MgUHJvcGVydHkgZ3JpZC10ZW1wbGF0
ZS1jb2x1bW5zIHZhbHVlICdzdWJncmlkIFthXSBbYl0gcmVwZWF0KGF1dG8tZmlsbCwgW2MgZF0p
JworUEFTUyBQcm9wZXJ0eSBncmlkLXRlbXBsYXRlLWNvbHVtbnMgdmFsdWUgJ3N1YmdyaWQgcmVw
ZWF0KGF1dG8tZmlsbCwgW2NdIFtkXSknCitQQVNTIFByb3BlcnR5IGdyaWQtdGVtcGxhdGUtY29s
dW1ucyB2YWx1ZSAnc3ViZ3JpZCByZXBlYXQoYXV0by1maWxsLCBbY10gW2RdKSBbZ10gW2ggaV0n
CitQQVNTIFByb3BlcnR5IGdyaWQtdGVtcGxhdGUtY29sdW1ucyB2YWx1ZSAnc3ViZ3JpZCBbYV0g
cmVwZWF0KGF1dG8tZmlsbCwgW2NdIFtkXSkgW2ddIFtoIGldJworUEFTUyBQcm9wZXJ0eSBncmlk
LXRlbXBsYXRlLWNvbHVtbnMgdmFsdWUgJ3N1YmdyaWQgW2EgYl0gcmVwZWF0KGF1dG8tZmlsbCwg
W2NdIFtkXSkgW2ddJworUEFTUyBQcm9wZXJ0eSBncmlkLXRlbXBsYXRlLWNvbHVtbnMgdmFsdWUg
J3N1YmdyaWQgW2FdIFtiXSByZXBlYXQoYXV0by1maWxsLCBbY10gW2RdKSBbZyBoXScKK1BBU1Mg
UHJvcGVydHkgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zIHZhbHVlICdzdWJncmlkIFthXSBbYl0gcmVw
ZWF0KGF1dG8tZmlsbCwgW2NdIFtkXSknCitQQVNTIFByb3BlcnR5IGdyaWQtdGVtcGxhdGUtY29s
dW1ucyB2YWx1ZSAnc3ViZ3JpZCByZXBlYXQoYXV0by1maWxsLCBbY10gW2QgZV0pJworUEFTUyBQ
cm9wZXJ0eSBncmlkLXRlbXBsYXRlLWNvbHVtbnMgdmFsdWUgJ3N1YmdyaWQgcmVwZWF0KGF1dG8t
ZmlsbCwgW2NdIFtkIGVdKSBbZ10gW2ggaV0nCitQQVNTIFByb3BlcnR5IGdyaWQtdGVtcGxhdGUt
Y29sdW1ucyB2YWx1ZSAnc3ViZ3JpZCBbYV0gcmVwZWF0KGF1dG8tZmlsbCwgW2NdIFtkIGVdKSBb
Z10gW2ggaV0nCitQQVNTIFByb3BlcnR5IGdyaWQtdGVtcGxhdGUtY29sdW1ucyB2YWx1ZSAnc3Vi
Z3JpZCBbYSBiXSByZXBlYXQoYXV0by1maWxsLCBbY10gW2QgZV0pIFtnXScKK1BBU1MgUHJvcGVy
dHkgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zIHZhbHVlICdzdWJncmlkIFthXSBbYl0gcmVwZWF0KGF1
dG8tZmlsbCwgW2NdIFtkIGVdKSBbZyBoXScKK1BBU1MgUHJvcGVydHkgZ3JpZC10ZW1wbGF0ZS1j
b2x1bW5zIHZhbHVlICdzdWJncmlkIFthXSBbYl0gcmVwZWF0KGF1dG8tZmlsbCwgW2NdIFtkIGVd
KScKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9jc3MvY3NzLWdyaWQvc3ViZ3JpZC9ncmlkLXRlbXBsYXRlLWludmFsaWQtZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nz
LWdyaWQvc3ViZ3JpZC9ncmlkLXRlbXBsYXRlLWludmFsaWQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uMjAwYWIwOTQ3NzVjCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3Mv
Y3NzLWdyaWQvc3ViZ3JpZC9ncmlkLXRlbXBsYXRlLWludmFsaWQtZXhwZWN0ZWQudHh0CkBAIC0w
LDAgKzEsMjAgQEAKKworUEFTUyBlLnN0eWxlWydncmlkLXRlbXBsYXRlLXJvd3MnXSA9ICJzdWJn
cmlkIHN1YmdyaWQiIHNob3VsZCBub3Qgc2V0IHRoZSBwcm9wZXJ0eSB2YWx1ZQorUEFTUyBlLnN0
eWxlWydncmlkLXRlbXBsYXRlLXJvd3MnXSA9ICJzdWJncmlkIG5vbmUiIHNob3VsZCBub3Qgc2V0
IHRoZSBwcm9wZXJ0eSB2YWx1ZQorUEFTUyBlLnN0eWxlWydncmlkLXRlbXBsYXRlLXJvd3MnXSA9
ICJzdWJncmlkIDFweCIgc2hvdWxkIG5vdCBzZXQgdGhlIHByb3BlcnR5IHZhbHVlCitQQVNTIGUu
c3R5bGVbJ2dyaWQtdGVtcGxhdGUtcm93cyddID0gInN1YmdyaWQgW2FdIDFweCIgc2hvdWxkIG5v
dCBzZXQgdGhlIHByb3BlcnR5IHZhbHVlCitQQVNTIGUuc3R5bGVbJ2dyaWQtdGVtcGxhdGUtcm93
cyddID0gInN1YmdyaWQgcmVwZWF0KGF1dG8tZmlsbCwgMXB4KSIgc2hvdWxkIG5vdCBzZXQgdGhl
IHByb3BlcnR5IHZhbHVlCitQQVNTIGUuc3R5bGVbJ2dyaWQtdGVtcGxhdGUtcm93cyddID0gInN1
YmdyaWQgcmVwZWF0KGF1dG8tZmlsbCwgbGluZSkiIHNob3VsZCBub3Qgc2V0IHRoZSBwcm9wZXJ0
eSB2YWx1ZQorUEFTUyBlLnN0eWxlWydncmlkLXRlbXBsYXRlLXJvd3MnXSA9ICJzdWJncmlkIHJl
cGVhdCgyLCAxcHgpIiBzaG91bGQgbm90IHNldCB0aGUgcHJvcGVydHkgdmFsdWUKK1BBU1MgZS5z
dHlsZVsnZ3JpZC10ZW1wbGF0ZS1yb3dzJ10gPSAic3ViZ3JpZCByZXBlYXQoMiwgbGluZSkiIHNo
b3VsZCBub3Qgc2V0IHRoZSBwcm9wZXJ0eSB2YWx1ZQorUEFTUyBlLnN0eWxlWydncmlkLXRlbXBs
YXRlLXJvd3MnXSA9ICJzdWJncmlkIHJlcGVhdCgyLCIgc2hvdWxkIG5vdCBzZXQgdGhlIHByb3Bl
cnR5IHZhbHVlCitQQVNTIGUuc3R5bGVbJ2dyaWQtdGVtcGxhdGUtY29sdW1ucyddID0gInN1Ymdy
aWQgc3ViZ3JpZCIgc2hvdWxkIG5vdCBzZXQgdGhlIHByb3BlcnR5IHZhbHVlCitQQVNTIGUuc3R5
bGVbJ2dyaWQtdGVtcGxhdGUtY29sdW1ucyddID0gInN1YmdyaWQgbm9uZSIgc2hvdWxkIG5vdCBz
ZXQgdGhlIHByb3BlcnR5IHZhbHVlCitQQVNTIGUuc3R5bGVbJ2dyaWQtdGVtcGxhdGUtY29sdW1u
cyddID0gInN1YmdyaWQgMXB4IiBzaG91bGQgbm90IHNldCB0aGUgcHJvcGVydHkgdmFsdWUKK1BB
U1MgZS5zdHlsZVsnZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zJ10gPSAic3ViZ3JpZCBbYV0gMXB4IiBz
aG91bGQgbm90IHNldCB0aGUgcHJvcGVydHkgdmFsdWUKK1BBU1MgZS5zdHlsZVsnZ3JpZC10ZW1w
bGF0ZS1jb2x1bW5zJ10gPSAic3ViZ3JpZCByZXBlYXQoYXV0by1maWxsLCAxcHgpIiBzaG91bGQg
bm90IHNldCB0aGUgcHJvcGVydHkgdmFsdWUKK1BBU1MgZS5zdHlsZVsnZ3JpZC10ZW1wbGF0ZS1j
b2x1bW5zJ10gPSAic3ViZ3JpZCByZXBlYXQoYXV0by1maWxsLCBsaW5lKSIgc2hvdWxkIG5vdCBz
ZXQgdGhlIHByb3BlcnR5IHZhbHVlCitQQVNTIGUuc3R5bGVbJ2dyaWQtdGVtcGxhdGUtY29sdW1u
cyddID0gInN1YmdyaWQgcmVwZWF0KDIsIDFweCkiIHNob3VsZCBub3Qgc2V0IHRoZSBwcm9wZXJ0
eSB2YWx1ZQorUEFTUyBlLnN0eWxlWydncmlkLXRlbXBsYXRlLWNvbHVtbnMnXSA9ICJzdWJncmlk
IHJlcGVhdCgyLCBsaW5lKSIgc2hvdWxkIG5vdCBzZXQgdGhlIHByb3BlcnR5IHZhbHVlCitQQVNT
IGUuc3R5bGVbJ2dyaWQtdGVtcGxhdGUtY29sdW1ucyddID0gInN1YmdyaWQgcmVwZWF0KDIsIiBz
aG91bGQgbm90IHNldCB0aGUgcHJvcGVydHkgdmFsdWUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWdyaWQvc3ViZ3JpZC9n
cmlkLXRlbXBsYXRlLXZhbGlkLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1ncmlkL3N1YmdyaWQvZ3JpZC10ZW1wbGF0ZS12
YWxpZC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
Li40NTEyYjY0NjQ4ZmQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtZ3JpZC9zdWJncmlkL2dyaWQtdGVtcGxhdGUt
dmFsaWQtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMzggQEAKKworUEFTUyBlLnN0eWxlWydncmlk
LXRlbXBsYXRlLXJvd3MnXSA9ICJzdWJncmlkIiBzaG91bGQgc2V0IHRoZSBwcm9wZXJ0eSB2YWx1
ZQorUEFTUyBlLnN0eWxlWydncmlkLXRlbXBsYXRlLXJvd3MnXSA9ICJzdWJncmlkIFthXSIgc2hv
dWxkIHNldCB0aGUgcHJvcGVydHkgdmFsdWUKK1BBU1MgZS5zdHlsZVsnZ3JpZC10ZW1wbGF0ZS1y
b3dzJ10gPSAic3ViZ3JpZCBbYV0gW2JdIiBzaG91bGQgc2V0IHRoZSBwcm9wZXJ0eSB2YWx1ZQor
UEFTUyBlLnN0eWxlWydncmlkLXRlbXBsYXRlLXJvd3MnXSA9ICJzdWJncmlkIFthXSBbYl0gW2Nd
IiBzaG91bGQgc2V0IHRoZSBwcm9wZXJ0eSB2YWx1ZQorUEFTUyBlLnN0eWxlWydncmlkLXRlbXBs
YXRlLXJvd3MnXSA9ICJzdWJncmlkIFtdIiBzaG91bGQgc2V0IHRoZSBwcm9wZXJ0eSB2YWx1ZQor
UEFTUyBlLnN0eWxlWydncmlkLXRlbXBsYXRlLXJvd3MnXSA9ICJzdWJncmlkIFthXSBbYl0gW10g
W2NdIiBzaG91bGQgc2V0IHRoZSBwcm9wZXJ0eSB2YWx1ZQorUEFTUyBlLnN0eWxlWydncmlkLXRl
bXBsYXRlLXJvd3MnXSA9ICJzdWJncmlkIFtdIFtdIFtdIFtjXSIgc2hvdWxkIHNldCB0aGUgcHJv
cGVydHkgdmFsdWUKK1BBU1MgZS5zdHlsZVsnZ3JpZC10ZW1wbGF0ZS1yb3dzJ10gPSAic3ViZ3Jp
ZCBbXSBbXSBbXSBbXSIgc2hvdWxkIHNldCB0aGUgcHJvcGVydHkgdmFsdWUKK1BBU1MgZS5zdHls
ZVsnZ3JpZC10ZW1wbGF0ZS1yb3dzJ10gPSAic3ViZ3JpZCByZXBlYXQoYXV0by1maWxsLCBbYV0p
IiBzaG91bGQgc2V0IHRoZSBwcm9wZXJ0eSB2YWx1ZQorUEFTUyBlLnN0eWxlWydncmlkLXRlbXBs
YXRlLXJvd3MnXSA9ICJzdWJncmlkIFthXSByZXBlYXQoYXV0by1maWxsLCBbYl0pIiBzaG91bGQg
c2V0IHRoZSBwcm9wZXJ0eSB2YWx1ZQorUEFTUyBlLnN0eWxlWydncmlkLXRlbXBsYXRlLXJvd3Mn
XSA9ICJzdWJncmlkIFthXSByZXBlYXQoYXV0by1maWxsLCBbYl0pIFtjXSIgc2hvdWxkIHNldCB0
aGUgcHJvcGVydHkgdmFsdWUKK1BBU1MgZS5zdHlsZVsnZ3JpZC10ZW1wbGF0ZS1yb3dzJ10gPSAi
c3ViZ3JpZCBbXSByZXBlYXQoYXV0by1maWxsLCBbXSkgW10iIHNob3VsZCBzZXQgdGhlIHByb3Bl
cnR5IHZhbHVlCitQQVNTIGUuc3R5bGVbJ2dyaWQtdGVtcGxhdGUtcm93cyddID0gInN1YmdyaWQg
cmVwZWF0KDIsIFthXSkiIHNob3VsZCBzZXQgdGhlIHByb3BlcnR5IHZhbHVlCitQQVNTIGUuc3R5
bGVbJ2dyaWQtdGVtcGxhdGUtcm93cyddID0gInN1YmdyaWQgcmVwZWF0KDIsIFthXSBbYl0pIiBz
aG91bGQgc2V0IHRoZSBwcm9wZXJ0eSB2YWx1ZQorUEFTUyBlLnN0eWxlWydncmlkLXRlbXBsYXRl
LXJvd3MnXSA9ICJzdWJncmlkIFthXSByZXBlYXQoMiwgW2JdKSIgc2hvdWxkIHNldCB0aGUgcHJv
cGVydHkgdmFsdWUKK1BBU1MgZS5zdHlsZVsnZ3JpZC10ZW1wbGF0ZS1yb3dzJ10gPSAic3ViZ3Jp
ZCBbYV0gcmVwZWF0KDIsIFtiXSkgW2NdIiBzaG91bGQgc2V0IHRoZSBwcm9wZXJ0eSB2YWx1ZQor
UEFTUyBlLnN0eWxlWydncmlkLXRlbXBsYXRlLXJvd3MnXSA9ICJzdWJncmlkIFtdIHJlcGVhdCgy
LCBbXSkgW10iIHNob3VsZCBzZXQgdGhlIHByb3BlcnR5IHZhbHVlCitQQVNTIGUuc3R5bGVbJ2dy
aWQtdGVtcGxhdGUtcm93cyddID0gInN1YmdyaWQgW2FdIHJlcGVhdCgyLCBbYl0pIHJlcGVhdChh
dXRvLWZpbGwsIFtjXSkgW2RdIiBzaG91bGQgc2V0IHRoZSBwcm9wZXJ0eSB2YWx1ZQorUEFTUyBl
LnN0eWxlWydncmlkLXRlbXBsYXRlLWNvbHVtbnMnXSA9ICJzdWJncmlkIiBzaG91bGQgc2V0IHRo
ZSBwcm9wZXJ0eSB2YWx1ZQorUEFTUyBlLnN0eWxlWydncmlkLXRlbXBsYXRlLWNvbHVtbnMnXSA9
ICJzdWJncmlkIFthXSIgc2hvdWxkIHNldCB0aGUgcHJvcGVydHkgdmFsdWUKK1BBU1MgZS5zdHls
ZVsnZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zJ10gPSAic3ViZ3JpZCBbYV0gW2JdIiBzaG91bGQgc2V0
IHRoZSBwcm9wZXJ0eSB2YWx1ZQorUEFTUyBlLnN0eWxlWydncmlkLXRlbXBsYXRlLWNvbHVtbnMn
XSA9ICJzdWJncmlkIFthXSBbYl0gW2NdIiBzaG91bGQgc2V0IHRoZSBwcm9wZXJ0eSB2YWx1ZQor
UEFTUyBlLnN0eWxlWydncmlkLXRlbXBsYXRlLWNvbHVtbnMnXSA9ICJzdWJncmlkIFtdIiBzaG91
bGQgc2V0IHRoZSBwcm9wZXJ0eSB2YWx1ZQorUEFTUyBlLnN0eWxlWydncmlkLXRlbXBsYXRlLWNv
bHVtbnMnXSA9ICJzdWJncmlkIFthXSBbYl0gW10gW2NdIiBzaG91bGQgc2V0IHRoZSBwcm9wZXJ0
eSB2YWx1ZQorUEFTUyBlLnN0eWxlWydncmlkLXRlbXBsYXRlLWNvbHVtbnMnXSA9ICJzdWJncmlk
IFtdIFtdIFtdIFtjXSIgc2hvdWxkIHNldCB0aGUgcHJvcGVydHkgdmFsdWUKK1BBU1MgZS5zdHls
ZVsnZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zJ10gPSAic3ViZ3JpZCBbXSBbXSBbXSBbXSIgc2hvdWxk
IHNldCB0aGUgcHJvcGVydHkgdmFsdWUKK1BBU1MgZS5zdHlsZVsnZ3JpZC10ZW1wbGF0ZS1jb2x1
bW5zJ10gPSAic3ViZ3JpZCByZXBlYXQoYXV0by1maWxsLCBbYV0pIiBzaG91bGQgc2V0IHRoZSBw
cm9wZXJ0eSB2YWx1ZQorUEFTUyBlLnN0eWxlWydncmlkLXRlbXBsYXRlLWNvbHVtbnMnXSA9ICJz
dWJncmlkIFthXSByZXBlYXQoYXV0by1maWxsLCBbYl0pIiBzaG91bGQgc2V0IHRoZSBwcm9wZXJ0
eSB2YWx1ZQorUEFTUyBlLnN0eWxlWydncmlkLXRlbXBsYXRlLWNvbHVtbnMnXSA9ICJzdWJncmlk
IFthXSByZXBlYXQoYXV0by1maWxsLCBbYl0pIFtjXSIgc2hvdWxkIHNldCB0aGUgcHJvcGVydHkg
dmFsdWUKK1BBU1MgZS5zdHlsZVsnZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zJ10gPSAic3ViZ3JpZCBb
XSByZXBlYXQoYXV0by1maWxsLCBbXSkgW10iIHNob3VsZCBzZXQgdGhlIHByb3BlcnR5IHZhbHVl
CitQQVNTIGUuc3R5bGVbJ2dyaWQtdGVtcGxhdGUtY29sdW1ucyddID0gInN1YmdyaWQgcmVwZWF0
KDIsIFthXSkiIHNob3VsZCBzZXQgdGhlIHByb3BlcnR5IHZhbHVlCitQQVNTIGUuc3R5bGVbJ2dy
aWQtdGVtcGxhdGUtY29sdW1ucyddID0gInN1YmdyaWQgcmVwZWF0KDIsIFthXSBbYl0pIiBzaG91
bGQgc2V0IHRoZSBwcm9wZXJ0eSB2YWx1ZQorUEFTUyBlLnN0eWxlWydncmlkLXRlbXBsYXRlLWNv
bHVtbnMnXSA9ICJzdWJncmlkIFthXSByZXBlYXQoMiwgW2JdKSIgc2hvdWxkIHNldCB0aGUgcHJv
cGVydHkgdmFsdWUKK1BBU1MgZS5zdHlsZVsnZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zJ10gPSAic3Vi
Z3JpZCBbYV0gcmVwZWF0KDIsIFtiXSkgW2NdIiBzaG91bGQgc2V0IHRoZSBwcm9wZXJ0eSB2YWx1
ZQorUEFTUyBlLnN0eWxlWydncmlkLXRlbXBsYXRlLWNvbHVtbnMnXSA9ICJzdWJncmlkIFtdIHJl
cGVhdCgyLCBbXSkgW10iIHNob3VsZCBzZXQgdGhlIHByb3BlcnR5IHZhbHVlCitQQVNTIGUuc3R5
bGVbJ2dyaWQtdGVtcGxhdGUtY29sdW1ucyddID0gInN1YmdyaWQgW2FdIHJlcGVhdCgyLCBbYl0p
IHJlcGVhdChhdXRvLWZpbGwsIFtjXSkgW2RdIiBzaG91bGQgc2V0IHRoZSBwcm9wZXJ0eSB2YWx1
ZQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2Nzcy9jc3MtZ3JpZC9zdWJncmlkL2xpbmUtbmFtZXMtMDAyLWV4cGVjdGVkLmh0bWwgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtZ3JpZC9z
dWJncmlkL2xpbmUtbmFtZXMtMDAyLWV4cGVjdGVkLmh0bWwKaW5kZXggMDRjNTgzOTU5NmM5Li4y
Mzk5MzI4YmVjYzQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvY3NzL2Nzcy1ncmlkL3N1YmdyaWQvbGluZS1uYW1lcy0wMDItZXhwZWN0ZWQu
aHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nz
cy9jc3MtZ3JpZC9zdWJncmlkL2xpbmUtbmFtZXMtMDAyLWV4cGVjdGVkLmh0bWwKQEAgLTE0LDcg
KzE0LDcgQEAgaHRtbCxib2R5IHsKIAogLmdyaWQgewogICBkaXNwbGF5OiBncmlkOwotICBncmlk
OiBhdXRvIC8gW2FdIDUwcHggNTBweCBbYV0gNTBweCA1MHB4IFthXTsKKyAgZ3JpZDogYXV0byAv
IFthXSA1MHB4IDQwcHggW2FdIDEwcHggNTBweCBbYV07CiAgIHBhZGRpbmc6IDIwcHggMTBweDsK
IH0KIApAQCAtMzIsNyArMzIsNyBAQCB4IHsgYmFja2dyb3VuZDogZ3JleTsgfQogCiA8ZGl2IGNs
YXNzPSJncmlkIj4KICAgPGRpdiBjbGFzcz0ic3ViZ3JpZCI+Ci0gICAgPHggc3R5bGU9ImdyaWQt
Y29sdW1uOiAxIC8gMyI+PC94PgorICAgIDx4IHN0eWxlPSJncmlkLWNvbHVtbjogMyAvIDQiPjwv
eD4KICAgPC9kaXY+CiA8L2Rpdj4KIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWdyaWQvc3ViZ3JpZC9saW5lLW5hbWVzLTAw
NS1leHBlY3RlZC5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9jc3MvY3NzLWdyaWQvc3ViZ3JpZC9saW5lLW5hbWVzLTAwNS1leHBlY3RlZC5odG1sCmlu
ZGV4IDRjN2Y0YjUwZmQxNi4uY2ZlMThkMWIyNmVkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtZ3JpZC9zdWJncmlkL2xpbmUt
bmFtZXMtMDA1LWV4cGVjdGVkLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWdyaWQvc3ViZ3JpZC9saW5lLW5hbWVzLTAwNS1leHBl
Y3RlZC5odG1sCkBAIC0xMTUsNyArMTE1LDcgQEAgeCB7CiA8ZGl2IHN0eWxlPSJkaXNwbGF5Omdy
aWQ7IHdpZHRoOjUwMHB4OyBncmlkLWF1dG8tY29sdW1uczogNTBweDsiPgogPGk+PC9pPjxpPjwv
aT48aT48L2k+PGk+PC9pPjxpPjwvaT48aT48L2k+PGk+PC9pPjxpPjwvaT48aT48L2k+PGk+PC9p
PgogICA8ZGl2IGNsYXNzPSJzdWJncmlkMiI+Ci0gICAgPHggc3R5bGU9ImdyaWQtY29sdW1uOiBz
cGFuIDQgLyAxMSI+eDwveD4KKyAgICA8eCBzdHlsZT0iZ3JpZC1jb2x1bW46IHNwYW4gMyAvIDEx
Ij54PC94PgogICA8L2Rpdj4KIDwvZGl2PgogCkBAIC0xMjksNyArMTI5LDcgQEAgeCB7CiA8ZGl2
IHN0eWxlPSJkaXNwbGF5OmdyaWQ7IGdyaWQ6IGF1dG8gLyByZXBlYXQoMTAsIDUwcHgpIHJlcGVh
dCgxMCwgW2FdIDUwcHgpIFthXSI+CiA8aT48L2k+PGk+PC9pPjxpPjwvaT48aT48L2k+PGk+PC9p
PjxpPjwvaT48aT48L2k+PGk+PC9pPjxpPjwvaT48aT48L2k+CiAgIDxkaXYgc3R5bGU9ImRpc3Bs
YXk6Z3JpZDsgZ3JpZDphdXRvL3N1YmdyaWQ7IGdyaWQtY29sdW1uOiBzcGFuIDEwOyBncmlkLXJv
dzoyIj4KLSAgICA8eCBzdHlsZT0iZ3JpZC1jb2x1bW46IDEgLyAxMSI+eDwveD4KKyAgICA8eCBz
dHlsZT0iZ3JpZC1jb2x1bW46IDEwIC8gMTEiPng8L3g+CiAgIDwvZGl2PgogPC9kaXY+CiAKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2Nzcy9jc3MtZ3JpZC9zdWJncmlkL2dyaWQtdGVtcGxhdGUtY29tcHV0ZWQtbm9n
cmlkLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtZ3JpZC9zdWJncmlkL2dyaWQtdGVtcGxhdGUtY29t
cHV0ZWQtbm9ncmlkLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
NTY3ZmIxYzIxMjUxLi4wMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3Rr
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1ncmlkL3N1YmdyaWQvZ3Jp
ZC10ZW1wbGF0ZS1jb21wdXRlZC1ub2dyaWQtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAg
LTEsMzEgKzAsMCBAQAotCi1GQUlMIFByb3BlcnR5IGdyaWQtdGVtcGxhdGUtY29sdW1ucyB2YWx1
ZSAnc3ViZ3JpZCBbYV0nIGFzc2VydF90cnVlOiAnc3ViZ3JpZCBbYV0nIGlzIGEgc3VwcG9ydGVk
IHZhbHVlIGZvciBncmlkLXRlbXBsYXRlLWNvbHVtbnMuIGV4cGVjdGVkIHRydWUgZ290IGZhbHNl
Ci1GQUlMIFByb3BlcnR5IGdyaWQtdGVtcGxhdGUtY29sdW1ucyB2YWx1ZSAnc3ViZ3JpZCBbYV0g
W2JdJyBhc3NlcnRfdHJ1ZTogJ3N1YmdyaWQgW2FdIFtiXScgaXMgYSBzdXBwb3J0ZWQgdmFsdWUg
Zm9yIGdyaWQtdGVtcGxhdGUtY29sdW1ucy4gZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKLUZBSUwg
UHJvcGVydHkgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zIHZhbHVlICdzdWJncmlkIFthXSBbYl0gW2Jd
IFtjXScgYXNzZXJ0X3RydWU6ICdzdWJncmlkIFthXSBbYl0gW2JdIFtjXScgaXMgYSBzdXBwb3J0
ZWQgdmFsdWUgZm9yIGdyaWQtdGVtcGxhdGUtY29sdW1ucy4gZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFs
c2UKLUZBSUwgUHJvcGVydHkgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zIHZhbHVlICdzdWJncmlkIFth
XSBbYiBjIGRdIFtlIGZdIFtlIGZdIFtnXScgYXNzZXJ0X3RydWU6ICdzdWJncmlkIFthXSBbYiBj
IGRdIFtlIGZdIFtlIGZdIFtnXScgaXMgYSBzdXBwb3J0ZWQgdmFsdWUgZm9yIGdyaWQtdGVtcGxh
dGUtY29sdW1ucy4gZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKLUZBSUwgUHJvcGVydHkgZ3JpZC10
ZW1wbGF0ZS1jb2x1bW5zIHZhbHVlICdzdWJncmlkIFthIGIgY10gW2RdIFtlIGZdJyBhc3NlcnRf
dHJ1ZTogJ3N1YmdyaWQgW2EgYiBjXSBbZF0gW2UgZl0nIGlzIGEgc3VwcG9ydGVkIHZhbHVlIGZv
ciBncmlkLXRlbXBsYXRlLWNvbHVtbnMuIGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCi1GQUlMIFBy
b3BlcnR5IGdyaWQtdGVtcGxhdGUtY29sdW1ucyB2YWx1ZSAnc3ViZ3JpZCByZXBlYXQoYXV0by1m
aWxsLCBbY10pJyBhc3NlcnRfdHJ1ZTogJ3N1YmdyaWQgcmVwZWF0KGF1dG8tZmlsbCwgW2NdKScg
aXMgYSBzdXBwb3J0ZWQgdmFsdWUgZm9yIGdyaWQtdGVtcGxhdGUtY29sdW1ucy4gZXhwZWN0ZWQg
dHJ1ZSBnb3QgZmFsc2UKLUZBSUwgUHJvcGVydHkgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zIHZhbHVl
ICdzdWJncmlkIHJlcGVhdChhdXRvLWZpbGwsIFtjXSkgW2ddIFtoIGldJyBhc3NlcnRfdHJ1ZTog
J3N1YmdyaWQgcmVwZWF0KGF1dG8tZmlsbCwgW2NdKSBbZ10gW2ggaV0nIGlzIGEgc3VwcG9ydGVk
IHZhbHVlIGZvciBncmlkLXRlbXBsYXRlLWNvbHVtbnMuIGV4cGVjdGVkIHRydWUgZ290IGZhbHNl
Ci1GQUlMIFByb3BlcnR5IGdyaWQtdGVtcGxhdGUtY29sdW1ucyB2YWx1ZSAnc3ViZ3JpZCBbYV0g
cmVwZWF0KGF1dG8tZmlsbCwgW2NdKSBbZ10gW2ggaV0nIGFzc2VydF90cnVlOiAnc3ViZ3JpZCBb
YV0gcmVwZWF0KGF1dG8tZmlsbCwgW2NdKSBbZ10gW2ggaV0nIGlzIGEgc3VwcG9ydGVkIHZhbHVl
IGZvciBncmlkLXRlbXBsYXRlLWNvbHVtbnMuIGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCi1GQUlM
IFByb3BlcnR5IGdyaWQtdGVtcGxhdGUtY29sdW1ucyB2YWx1ZSAnc3ViZ3JpZCBbYSBiXSByZXBl
YXQoYXV0by1maWxsLCBbY10pIFtnXScgYXNzZXJ0X3RydWU6ICdzdWJncmlkIFthIGJdIHJlcGVh
dChhdXRvLWZpbGwsIFtjXSkgW2ddJyBpcyBhIHN1cHBvcnRlZCB2YWx1ZSBmb3IgZ3JpZC10ZW1w
bGF0ZS1jb2x1bW5zLiBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQotRkFJTCBQcm9wZXJ0eSBncmlk
LXRlbXBsYXRlLWNvbHVtbnMgdmFsdWUgJ3N1YmdyaWQgW2FdIFtiXSByZXBlYXQoYXV0by1maWxs
LCBbY10pIFtnIGhdJyBhc3NlcnRfdHJ1ZTogJ3N1YmdyaWQgW2FdIFtiXSByZXBlYXQoYXV0by1m
aWxsLCBbY10pIFtnIGhdJyBpcyBhIHN1cHBvcnRlZCB2YWx1ZSBmb3IgZ3JpZC10ZW1wbGF0ZS1j
b2x1bW5zLiBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQotRkFJTCBQcm9wZXJ0eSBncmlkLXRlbXBs
YXRlLWNvbHVtbnMgdmFsdWUgJ3N1YmdyaWQgW2FdIFtiXSByZXBlYXQoYXV0by1maWxsLCBbY10p
JyBhc3NlcnRfdHJ1ZTogJ3N1YmdyaWQgW2FdIFtiXSByZXBlYXQoYXV0by1maWxsLCBbY10pJyBp
cyBhIHN1cHBvcnRlZCB2YWx1ZSBmb3IgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zLiBleHBlY3RlZCB0
cnVlIGdvdCBmYWxzZQotRkFJTCBQcm9wZXJ0eSBncmlkLXRlbXBsYXRlLWNvbHVtbnMgdmFsdWUg
J3N1YmdyaWQgcmVwZWF0KGF1dG8tZmlsbCwgW2MgZF0pJyBhc3NlcnRfdHJ1ZTogJ3N1YmdyaWQg
cmVwZWF0KGF1dG8tZmlsbCwgW2MgZF0pJyBpcyBhIHN1cHBvcnRlZCB2YWx1ZSBmb3IgZ3JpZC10
ZW1wbGF0ZS1jb2x1bW5zLiBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQotRkFJTCBQcm9wZXJ0eSBn
cmlkLXRlbXBsYXRlLWNvbHVtbnMgdmFsdWUgJ3N1YmdyaWQgcmVwZWF0KGF1dG8tZmlsbCwgW2Mg
ZF0pIFtnXSBbaCBpXScgYXNzZXJ0X3RydWU6ICdzdWJncmlkIHJlcGVhdChhdXRvLWZpbGwsIFtj
IGRdKSBbZ10gW2ggaV0nIGlzIGEgc3VwcG9ydGVkIHZhbHVlIGZvciBncmlkLXRlbXBsYXRlLWNv
bHVtbnMuIGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCi1GQUlMIFByb3BlcnR5IGdyaWQtdGVtcGxh
dGUtY29sdW1ucyB2YWx1ZSAnc3ViZ3JpZCBbYV0gcmVwZWF0KGF1dG8tZmlsbCwgW2MgZF0pIFtn
XSBbaCBpXScgYXNzZXJ0X3RydWU6ICdzdWJncmlkIFthXSByZXBlYXQoYXV0by1maWxsLCBbYyBk
XSkgW2ddIFtoIGldJyBpcyBhIHN1cHBvcnRlZCB2YWx1ZSBmb3IgZ3JpZC10ZW1wbGF0ZS1jb2x1
bW5zLiBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQotRkFJTCBQcm9wZXJ0eSBncmlkLXRlbXBsYXRl
LWNvbHVtbnMgdmFsdWUgJ3N1YmdyaWQgW2EgYl0gcmVwZWF0KGF1dG8tZmlsbCwgW2MgZF0pIFtn
XScgYXNzZXJ0X3RydWU6ICdzdWJncmlkIFthIGJdIHJlcGVhdChhdXRvLWZpbGwsIFtjIGRdKSBb
Z10nIGlzIGEgc3VwcG9ydGVkIHZhbHVlIGZvciBncmlkLXRlbXBsYXRlLWNvbHVtbnMuIGV4cGVj
dGVkIHRydWUgZ290IGZhbHNlCi1GQUlMIFByb3BlcnR5IGdyaWQtdGVtcGxhdGUtY29sdW1ucyB2
YWx1ZSAnc3ViZ3JpZCBbYV0gW2JdIHJlcGVhdChhdXRvLWZpbGwsIFtjIGRdKSBbZyBoXScgYXNz
ZXJ0X3RydWU6ICdzdWJncmlkIFthXSBbYl0gcmVwZWF0KGF1dG8tZmlsbCwgW2MgZF0pIFtnIGhd
JyBpcyBhIHN1cHBvcnRlZCB2YWx1ZSBmb3IgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zLiBleHBlY3Rl
ZCB0cnVlIGdvdCBmYWxzZQotRkFJTCBQcm9wZXJ0eSBncmlkLXRlbXBsYXRlLWNvbHVtbnMgdmFs
dWUgJ3N1YmdyaWQgW2FdIFtiXSByZXBlYXQoYXV0by1maWxsLCBbYyBkXSknIGFzc2VydF90cnVl
OiAnc3ViZ3JpZCBbYV0gW2JdIHJlcGVhdChhdXRvLWZpbGwsIFtjIGRdKScgaXMgYSBzdXBwb3J0
ZWQgdmFsdWUgZm9yIGdyaWQtdGVtcGxhdGUtY29sdW1ucy4gZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFs
c2UKLUZBSUwgUHJvcGVydHkgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zIHZhbHVlICdzdWJncmlkIHJl
cGVhdChhdXRvLWZpbGwsIFtjXSBbZF0pJyBhc3NlcnRfdHJ1ZTogJ3N1YmdyaWQgcmVwZWF0KGF1
dG8tZmlsbCwgW2NdIFtkXSknIGlzIGEgc3VwcG9ydGVkIHZhbHVlIGZvciBncmlkLXRlbXBsYXRl
LWNvbHVtbnMuIGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCi1GQUlMIFByb3BlcnR5IGdyaWQtdGVt
cGxhdGUtY29sdW1ucyB2YWx1ZSAnc3ViZ3JpZCByZXBlYXQoYXV0by1maWxsLCBbY10gW2RdKSBb
Z10gW2ggaV0nIGFzc2VydF90cnVlOiAnc3ViZ3JpZCByZXBlYXQoYXV0by1maWxsLCBbY10gW2Rd
KSBbZ10gW2ggaV0nIGlzIGEgc3VwcG9ydGVkIHZhbHVlIGZvciBncmlkLXRlbXBsYXRlLWNvbHVt
bnMuIGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCi1GQUlMIFByb3BlcnR5IGdyaWQtdGVtcGxhdGUt
Y29sdW1ucyB2YWx1ZSAnc3ViZ3JpZCBbYV0gcmVwZWF0KGF1dG8tZmlsbCwgW2NdIFtkXSkgW2dd
IFtoIGldJyBhc3NlcnRfdHJ1ZTogJ3N1YmdyaWQgW2FdIHJlcGVhdChhdXRvLWZpbGwsIFtjXSBb
ZF0pIFtnXSBbaCBpXScgaXMgYSBzdXBwb3J0ZWQgdmFsdWUgZm9yIGdyaWQtdGVtcGxhdGUtY29s
dW1ucy4gZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKLUZBSUwgUHJvcGVydHkgZ3JpZC10ZW1wbGF0
ZS1jb2x1bW5zIHZhbHVlICdzdWJncmlkIFthIGJdIHJlcGVhdChhdXRvLWZpbGwsIFtjXSBbZF0p
IFtnXScgYXNzZXJ0X3RydWU6ICdzdWJncmlkIFthIGJdIHJlcGVhdChhdXRvLWZpbGwsIFtjXSBb
ZF0pIFtnXScgaXMgYSBzdXBwb3J0ZWQgdmFsdWUgZm9yIGdyaWQtdGVtcGxhdGUtY29sdW1ucy4g
ZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKLUZBSUwgUHJvcGVydHkgZ3JpZC10ZW1wbGF0ZS1jb2x1
bW5zIHZhbHVlICdzdWJncmlkIFthXSBbYl0gcmVwZWF0KGF1dG8tZmlsbCwgW2NdIFtkXSkgW2cg
aF0nIGFzc2VydF90cnVlOiAnc3ViZ3JpZCBbYV0gW2JdIHJlcGVhdChhdXRvLWZpbGwsIFtjXSBb
ZF0pIFtnIGhdJyBpcyBhIHN1cHBvcnRlZCB2YWx1ZSBmb3IgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5z
LiBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQotRkFJTCBQcm9wZXJ0eSBncmlkLXRlbXBsYXRlLWNv
bHVtbnMgdmFsdWUgJ3N1YmdyaWQgW2FdIFtiXSByZXBlYXQoYXV0by1maWxsLCBbY10gW2RdKScg
YXNzZXJ0X3RydWU6ICdzdWJncmlkIFthXSBbYl0gcmVwZWF0KGF1dG8tZmlsbCwgW2NdIFtkXSkn
IGlzIGEgc3VwcG9ydGVkIHZhbHVlIGZvciBncmlkLXRlbXBsYXRlLWNvbHVtbnMuIGV4cGVjdGVk
IHRydWUgZ290IGZhbHNlCi1GQUlMIFByb3BlcnR5IGdyaWQtdGVtcGxhdGUtY29sdW1ucyB2YWx1
ZSAnc3ViZ3JpZCByZXBlYXQoYXV0by1maWxsLCBbY10gW2QgZV0pJyBhc3NlcnRfdHJ1ZTogJ3N1
YmdyaWQgcmVwZWF0KGF1dG8tZmlsbCwgW2NdIFtkIGVdKScgaXMgYSBzdXBwb3J0ZWQgdmFsdWUg
Zm9yIGdyaWQtdGVtcGxhdGUtY29sdW1ucy4gZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKLUZBSUwg
UHJvcGVydHkgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zIHZhbHVlICdzdWJncmlkIHJlcGVhdChhdXRv
LWZpbGwsIFtjXSBbZCBlXSkgW2ddIFtoIGldJyBhc3NlcnRfdHJ1ZTogJ3N1YmdyaWQgcmVwZWF0
KGF1dG8tZmlsbCwgW2NdIFtkIGVdKSBbZ10gW2ggaV0nIGlzIGEgc3VwcG9ydGVkIHZhbHVlIGZv
ciBncmlkLXRlbXBsYXRlLWNvbHVtbnMuIGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCi1GQUlMIFBy
b3BlcnR5IGdyaWQtdGVtcGxhdGUtY29sdW1ucyB2YWx1ZSAnc3ViZ3JpZCBbYV0gcmVwZWF0KGF1
dG8tZmlsbCwgW2NdIFtkIGVdKSBbZ10gW2ggaV0nIGFzc2VydF90cnVlOiAnc3ViZ3JpZCBbYV0g
cmVwZWF0KGF1dG8tZmlsbCwgW2NdIFtkIGVdKSBbZ10gW2ggaV0nIGlzIGEgc3VwcG9ydGVkIHZh
bHVlIGZvciBncmlkLXRlbXBsYXRlLWNvbHVtbnMuIGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCi1G
QUlMIFByb3BlcnR5IGdyaWQtdGVtcGxhdGUtY29sdW1ucyB2YWx1ZSAnc3ViZ3JpZCBbYSBiXSBy
ZXBlYXQoYXV0by1maWxsLCBbY10gW2QgZV0pIFtnXScgYXNzZXJ0X3RydWU6ICdzdWJncmlkIFth
IGJdIHJlcGVhdChhdXRvLWZpbGwsIFtjXSBbZCBlXSkgW2ddJyBpcyBhIHN1cHBvcnRlZCB2YWx1
ZSBmb3IgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zLiBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQotRkFJ
TCBQcm9wZXJ0eSBncmlkLXRlbXBsYXRlLWNvbHVtbnMgdmFsdWUgJ3N1YmdyaWQgW2FdIFtiXSBy
ZXBlYXQoYXV0by1maWxsLCBbY10gW2QgZV0pIFtnIGhdJyBhc3NlcnRfdHJ1ZTogJ3N1YmdyaWQg
W2FdIFtiXSByZXBlYXQoYXV0by1maWxsLCBbY10gW2QgZV0pIFtnIGhdJyBpcyBhIHN1cHBvcnRl
ZCB2YWx1ZSBmb3IgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zLiBleHBlY3RlZCB0cnVlIGdvdCBmYWxz
ZQotRkFJTCBQcm9wZXJ0eSBncmlkLXRlbXBsYXRlLWNvbHVtbnMgdmFsdWUgJ3N1YmdyaWQgW2Fd
IFtiXSByZXBlYXQoYXV0by1maWxsLCBbY10gW2QgZV0pJyBhc3NlcnRfdHJ1ZTogJ3N1YmdyaWQg
W2FdIFtiXSByZXBlYXQoYXV0by1maWxsLCBbY10gW2QgZV0pJyBpcyBhIHN1cHBvcnRlZCB2YWx1
ZSBmb3IgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zLiBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQotCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93cGUvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9jc3MvY3NzLWdyaWQvc3ViZ3JpZC9ncmlkLXRlbXBsYXRlLWNvbXB1dGVkLW5v
Z3JpZC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93cGUvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWdyaWQvc3ViZ3JpZC9ncmlkLXRlbXBsYXRlLWNv
bXB1dGVkLW5vZ3JpZC1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDU2N2ZiMWMyMTI1MS4uMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3dw
ZS9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtZ3JpZC9zdWJncmlkL2dy
aWQtdGVtcGxhdGUtY29tcHV0ZWQtbm9ncmlkLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBA
IC0xLDMxICswLDAgQEAKLQotRkFJTCBQcm9wZXJ0eSBncmlkLXRlbXBsYXRlLWNvbHVtbnMgdmFs
dWUgJ3N1YmdyaWQgW2FdJyBhc3NlcnRfdHJ1ZTogJ3N1YmdyaWQgW2FdJyBpcyBhIHN1cHBvcnRl
ZCB2YWx1ZSBmb3IgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zLiBleHBlY3RlZCB0cnVlIGdvdCBmYWxz
ZQotRkFJTCBQcm9wZXJ0eSBncmlkLXRlbXBsYXRlLWNvbHVtbnMgdmFsdWUgJ3N1YmdyaWQgW2Fd
IFtiXScgYXNzZXJ0X3RydWU6ICdzdWJncmlkIFthXSBbYl0nIGlzIGEgc3VwcG9ydGVkIHZhbHVl
IGZvciBncmlkLXRlbXBsYXRlLWNvbHVtbnMuIGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCi1GQUlM
IFByb3BlcnR5IGdyaWQtdGVtcGxhdGUtY29sdW1ucyB2YWx1ZSAnc3ViZ3JpZCBbYV0gW2JdIFti
XSBbY10nIGFzc2VydF90cnVlOiAnc3ViZ3JpZCBbYV0gW2JdIFtiXSBbY10nIGlzIGEgc3VwcG9y
dGVkIHZhbHVlIGZvciBncmlkLXRlbXBsYXRlLWNvbHVtbnMuIGV4cGVjdGVkIHRydWUgZ290IGZh
bHNlCi1GQUlMIFByb3BlcnR5IGdyaWQtdGVtcGxhdGUtY29sdW1ucyB2YWx1ZSAnc3ViZ3JpZCBb
YV0gW2IgYyBkXSBbZSBmXSBbZSBmXSBbZ10nIGFzc2VydF90cnVlOiAnc3ViZ3JpZCBbYV0gW2Ig
YyBkXSBbZSBmXSBbZSBmXSBbZ10nIGlzIGEgc3VwcG9ydGVkIHZhbHVlIGZvciBncmlkLXRlbXBs
YXRlLWNvbHVtbnMuIGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCi1GQUlMIFByb3BlcnR5IGdyaWQt
dGVtcGxhdGUtY29sdW1ucyB2YWx1ZSAnc3ViZ3JpZCBbYSBiIGNdIFtkXSBbZSBmXScgYXNzZXJ0
X3RydWU6ICdzdWJncmlkIFthIGIgY10gW2RdIFtlIGZdJyBpcyBhIHN1cHBvcnRlZCB2YWx1ZSBm
b3IgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zLiBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQotRkFJTCBQ
cm9wZXJ0eSBncmlkLXRlbXBsYXRlLWNvbHVtbnMgdmFsdWUgJ3N1YmdyaWQgcmVwZWF0KGF1dG8t
ZmlsbCwgW2NdKScgYXNzZXJ0X3RydWU6ICdzdWJncmlkIHJlcGVhdChhdXRvLWZpbGwsIFtjXSkn
IGlzIGEgc3VwcG9ydGVkIHZhbHVlIGZvciBncmlkLXRlbXBsYXRlLWNvbHVtbnMuIGV4cGVjdGVk
IHRydWUgZ290IGZhbHNlCi1GQUlMIFByb3BlcnR5IGdyaWQtdGVtcGxhdGUtY29sdW1ucyB2YWx1
ZSAnc3ViZ3JpZCByZXBlYXQoYXV0by1maWxsLCBbY10pIFtnXSBbaCBpXScgYXNzZXJ0X3RydWU6
ICdzdWJncmlkIHJlcGVhdChhdXRvLWZpbGwsIFtjXSkgW2ddIFtoIGldJyBpcyBhIHN1cHBvcnRl
ZCB2YWx1ZSBmb3IgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zLiBleHBlY3RlZCB0cnVlIGdvdCBmYWxz
ZQotRkFJTCBQcm9wZXJ0eSBncmlkLXRlbXBsYXRlLWNvbHVtbnMgdmFsdWUgJ3N1YmdyaWQgW2Fd
IHJlcGVhdChhdXRvLWZpbGwsIFtjXSkgW2ddIFtoIGldJyBhc3NlcnRfdHJ1ZTogJ3N1YmdyaWQg
W2FdIHJlcGVhdChhdXRvLWZpbGwsIFtjXSkgW2ddIFtoIGldJyBpcyBhIHN1cHBvcnRlZCB2YWx1
ZSBmb3IgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zLiBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQotRkFJ
TCBQcm9wZXJ0eSBncmlkLXRlbXBsYXRlLWNvbHVtbnMgdmFsdWUgJ3N1YmdyaWQgW2EgYl0gcmVw
ZWF0KGF1dG8tZmlsbCwgW2NdKSBbZ10nIGFzc2VydF90cnVlOiAnc3ViZ3JpZCBbYSBiXSByZXBl
YXQoYXV0by1maWxsLCBbY10pIFtnXScgaXMgYSBzdXBwb3J0ZWQgdmFsdWUgZm9yIGdyaWQtdGVt
cGxhdGUtY29sdW1ucy4gZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKLUZBSUwgUHJvcGVydHkgZ3Jp
ZC10ZW1wbGF0ZS1jb2x1bW5zIHZhbHVlICdzdWJncmlkIFthXSBbYl0gcmVwZWF0KGF1dG8tZmls
bCwgW2NdKSBbZyBoXScgYXNzZXJ0X3RydWU6ICdzdWJncmlkIFthXSBbYl0gcmVwZWF0KGF1dG8t
ZmlsbCwgW2NdKSBbZyBoXScgaXMgYSBzdXBwb3J0ZWQgdmFsdWUgZm9yIGdyaWQtdGVtcGxhdGUt
Y29sdW1ucy4gZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKLUZBSUwgUHJvcGVydHkgZ3JpZC10ZW1w
bGF0ZS1jb2x1bW5zIHZhbHVlICdzdWJncmlkIFthXSBbYl0gcmVwZWF0KGF1dG8tZmlsbCwgW2Nd
KScgYXNzZXJ0X3RydWU6ICdzdWJncmlkIFthXSBbYl0gcmVwZWF0KGF1dG8tZmlsbCwgW2NdKScg
aXMgYSBzdXBwb3J0ZWQgdmFsdWUgZm9yIGdyaWQtdGVtcGxhdGUtY29sdW1ucy4gZXhwZWN0ZWQg
dHJ1ZSBnb3QgZmFsc2UKLUZBSUwgUHJvcGVydHkgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zIHZhbHVl
ICdzdWJncmlkIHJlcGVhdChhdXRvLWZpbGwsIFtjIGRdKScgYXNzZXJ0X3RydWU6ICdzdWJncmlk
IHJlcGVhdChhdXRvLWZpbGwsIFtjIGRdKScgaXMgYSBzdXBwb3J0ZWQgdmFsdWUgZm9yIGdyaWQt
dGVtcGxhdGUtY29sdW1ucy4gZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKLUZBSUwgUHJvcGVydHkg
Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zIHZhbHVlICdzdWJncmlkIHJlcGVhdChhdXRvLWZpbGwsIFtj
IGRdKSBbZ10gW2ggaV0nIGFzc2VydF90cnVlOiAnc3ViZ3JpZCByZXBlYXQoYXV0by1maWxsLCBb
YyBkXSkgW2ddIFtoIGldJyBpcyBhIHN1cHBvcnRlZCB2YWx1ZSBmb3IgZ3JpZC10ZW1wbGF0ZS1j
b2x1bW5zLiBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQotRkFJTCBQcm9wZXJ0eSBncmlkLXRlbXBs
YXRlLWNvbHVtbnMgdmFsdWUgJ3N1YmdyaWQgW2FdIHJlcGVhdChhdXRvLWZpbGwsIFtjIGRdKSBb
Z10gW2ggaV0nIGFzc2VydF90cnVlOiAnc3ViZ3JpZCBbYV0gcmVwZWF0KGF1dG8tZmlsbCwgW2Mg
ZF0pIFtnXSBbaCBpXScgaXMgYSBzdXBwb3J0ZWQgdmFsdWUgZm9yIGdyaWQtdGVtcGxhdGUtY29s
dW1ucy4gZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKLUZBSUwgUHJvcGVydHkgZ3JpZC10ZW1wbGF0
ZS1jb2x1bW5zIHZhbHVlICdzdWJncmlkIFthIGJdIHJlcGVhdChhdXRvLWZpbGwsIFtjIGRdKSBb
Z10nIGFzc2VydF90cnVlOiAnc3ViZ3JpZCBbYSBiXSByZXBlYXQoYXV0by1maWxsLCBbYyBkXSkg
W2ddJyBpcyBhIHN1cHBvcnRlZCB2YWx1ZSBmb3IgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zLiBleHBl
Y3RlZCB0cnVlIGdvdCBmYWxzZQotRkFJTCBQcm9wZXJ0eSBncmlkLXRlbXBsYXRlLWNvbHVtbnMg
dmFsdWUgJ3N1YmdyaWQgW2FdIFtiXSByZXBlYXQoYXV0by1maWxsLCBbYyBkXSkgW2cgaF0nIGFz
c2VydF90cnVlOiAnc3ViZ3JpZCBbYV0gW2JdIHJlcGVhdChhdXRvLWZpbGwsIFtjIGRdKSBbZyBo
XScgaXMgYSBzdXBwb3J0ZWQgdmFsdWUgZm9yIGdyaWQtdGVtcGxhdGUtY29sdW1ucy4gZXhwZWN0
ZWQgdHJ1ZSBnb3QgZmFsc2UKLUZBSUwgUHJvcGVydHkgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zIHZh
bHVlICdzdWJncmlkIFthXSBbYl0gcmVwZWF0KGF1dG8tZmlsbCwgW2MgZF0pJyBhc3NlcnRfdHJ1
ZTogJ3N1YmdyaWQgW2FdIFtiXSByZXBlYXQoYXV0by1maWxsLCBbYyBkXSknIGlzIGEgc3VwcG9y
dGVkIHZhbHVlIGZvciBncmlkLXRlbXBsYXRlLWNvbHVtbnMuIGV4cGVjdGVkIHRydWUgZ290IGZh
bHNlCi1GQUlMIFByb3BlcnR5IGdyaWQtdGVtcGxhdGUtY29sdW1ucyB2YWx1ZSAnc3ViZ3JpZCBy
ZXBlYXQoYXV0by1maWxsLCBbY10gW2RdKScgYXNzZXJ0X3RydWU6ICdzdWJncmlkIHJlcGVhdChh
dXRvLWZpbGwsIFtjXSBbZF0pJyBpcyBhIHN1cHBvcnRlZCB2YWx1ZSBmb3IgZ3JpZC10ZW1wbGF0
ZS1jb2x1bW5zLiBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQotRkFJTCBQcm9wZXJ0eSBncmlkLXRl
bXBsYXRlLWNvbHVtbnMgdmFsdWUgJ3N1YmdyaWQgcmVwZWF0KGF1dG8tZmlsbCwgW2NdIFtkXSkg
W2ddIFtoIGldJyBhc3NlcnRfdHJ1ZTogJ3N1YmdyaWQgcmVwZWF0KGF1dG8tZmlsbCwgW2NdIFtk
XSkgW2ddIFtoIGldJyBpcyBhIHN1cHBvcnRlZCB2YWx1ZSBmb3IgZ3JpZC10ZW1wbGF0ZS1jb2x1
bW5zLiBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQotRkFJTCBQcm9wZXJ0eSBncmlkLXRlbXBsYXRl
LWNvbHVtbnMgdmFsdWUgJ3N1YmdyaWQgW2FdIHJlcGVhdChhdXRvLWZpbGwsIFtjXSBbZF0pIFtn
XSBbaCBpXScgYXNzZXJ0X3RydWU6ICdzdWJncmlkIFthXSByZXBlYXQoYXV0by1maWxsLCBbY10g
W2RdKSBbZ10gW2ggaV0nIGlzIGEgc3VwcG9ydGVkIHZhbHVlIGZvciBncmlkLXRlbXBsYXRlLWNv
bHVtbnMuIGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCi1GQUlMIFByb3BlcnR5IGdyaWQtdGVtcGxh
dGUtY29sdW1ucyB2YWx1ZSAnc3ViZ3JpZCBbYSBiXSByZXBlYXQoYXV0by1maWxsLCBbY10gW2Rd
KSBbZ10nIGFzc2VydF90cnVlOiAnc3ViZ3JpZCBbYSBiXSByZXBlYXQoYXV0by1maWxsLCBbY10g
W2RdKSBbZ10nIGlzIGEgc3VwcG9ydGVkIHZhbHVlIGZvciBncmlkLXRlbXBsYXRlLWNvbHVtbnMu
IGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCi1GQUlMIFByb3BlcnR5IGdyaWQtdGVtcGxhdGUtY29s
dW1ucyB2YWx1ZSAnc3ViZ3JpZCBbYV0gW2JdIHJlcGVhdChhdXRvLWZpbGwsIFtjXSBbZF0pIFtn
IGhdJyBhc3NlcnRfdHJ1ZTogJ3N1YmdyaWQgW2FdIFtiXSByZXBlYXQoYXV0by1maWxsLCBbY10g
W2RdKSBbZyBoXScgaXMgYSBzdXBwb3J0ZWQgdmFsdWUgZm9yIGdyaWQtdGVtcGxhdGUtY29sdW1u
cy4gZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKLUZBSUwgUHJvcGVydHkgZ3JpZC10ZW1wbGF0ZS1j
b2x1bW5zIHZhbHVlICdzdWJncmlkIFthXSBbYl0gcmVwZWF0KGF1dG8tZmlsbCwgW2NdIFtkXSkn
IGFzc2VydF90cnVlOiAnc3ViZ3JpZCBbYV0gW2JdIHJlcGVhdChhdXRvLWZpbGwsIFtjXSBbZF0p
JyBpcyBhIHN1cHBvcnRlZCB2YWx1ZSBmb3IgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zLiBleHBlY3Rl
ZCB0cnVlIGdvdCBmYWxzZQotRkFJTCBQcm9wZXJ0eSBncmlkLXRlbXBsYXRlLWNvbHVtbnMgdmFs
dWUgJ3N1YmdyaWQgcmVwZWF0KGF1dG8tZmlsbCwgW2NdIFtkIGVdKScgYXNzZXJ0X3RydWU6ICdz
dWJncmlkIHJlcGVhdChhdXRvLWZpbGwsIFtjXSBbZCBlXSknIGlzIGEgc3VwcG9ydGVkIHZhbHVl
IGZvciBncmlkLXRlbXBsYXRlLWNvbHVtbnMuIGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCi1GQUlM
IFByb3BlcnR5IGdyaWQtdGVtcGxhdGUtY29sdW1ucyB2YWx1ZSAnc3ViZ3JpZCByZXBlYXQoYXV0
by1maWxsLCBbY10gW2QgZV0pIFtnXSBbaCBpXScgYXNzZXJ0X3RydWU6ICdzdWJncmlkIHJlcGVh
dChhdXRvLWZpbGwsIFtjXSBbZCBlXSkgW2ddIFtoIGldJyBpcyBhIHN1cHBvcnRlZCB2YWx1ZSBm
b3IgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zLiBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQotRkFJTCBQ
cm9wZXJ0eSBncmlkLXRlbXBsYXRlLWNvbHVtbnMgdmFsdWUgJ3N1YmdyaWQgW2FdIHJlcGVhdChh
dXRvLWZpbGwsIFtjXSBbZCBlXSkgW2ddIFtoIGldJyBhc3NlcnRfdHJ1ZTogJ3N1YmdyaWQgW2Fd
IHJlcGVhdChhdXRvLWZpbGwsIFtjXSBbZCBlXSkgW2ddIFtoIGldJyBpcyBhIHN1cHBvcnRlZCB2
YWx1ZSBmb3IgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zLiBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQot
RkFJTCBQcm9wZXJ0eSBncmlkLXRlbXBsYXRlLWNvbHVtbnMgdmFsdWUgJ3N1YmdyaWQgW2EgYl0g
cmVwZWF0KGF1dG8tZmlsbCwgW2NdIFtkIGVdKSBbZ10nIGFzc2VydF90cnVlOiAnc3ViZ3JpZCBb
YSBiXSByZXBlYXQoYXV0by1maWxsLCBbY10gW2QgZV0pIFtnXScgaXMgYSBzdXBwb3J0ZWQgdmFs
dWUgZm9yIGdyaWQtdGVtcGxhdGUtY29sdW1ucy4gZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKLUZB
SUwgUHJvcGVydHkgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zIHZhbHVlICdzdWJncmlkIFthXSBbYl0g
cmVwZWF0KGF1dG8tZmlsbCwgW2NdIFtkIGVdKSBbZyBoXScgYXNzZXJ0X3RydWU6ICdzdWJncmlk
IFthXSBbYl0gcmVwZWF0KGF1dG8tZmlsbCwgW2NdIFtkIGVdKSBbZyBoXScgaXMgYSBzdXBwb3J0
ZWQgdmFsdWUgZm9yIGdyaWQtdGVtcGxhdGUtY29sdW1ucy4gZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFs
c2UKLUZBSUwgUHJvcGVydHkgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zIHZhbHVlICdzdWJncmlkIFth
XSBbYl0gcmVwZWF0KGF1dG8tZmlsbCwgW2NdIFtkIGVdKScgYXNzZXJ0X3RydWU6ICdzdWJncmlk
IFthXSBbYl0gcmVwZWF0KGF1dG8tZmlsbCwgW2NdIFtkIGVdKScgaXMgYSBzdXBwb3J0ZWQgdmFs
dWUgZm9yIGdyaWQtdGVtcGxhdGUtY29sdW1ucy4gZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKLQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dURi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV1RGL0NoYW5nZUxvZwpp
bmRleCA2ZGJkMDlkNDdjZmMuLjMwMTFiMmJkMWYwOCAxMDA2NDQKLS0tIGEvU291cmNlL1dURi9D
aGFuZ2VMb2cKKysrIGIvU291cmNlL1dURi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAy
Mi0wMi0wMiAgTWF0dCBXb29kcm93ICA8bWF0dHdvb2Ryb3dAYXBwbGUuY29tPgorCisgICAgICAg
IEFkZCBzdXBwb3J0IGZvciBwYXJzaW5nICdzdWJncmlkJyBpbiBncmlkLXRlbXBsYXRlLWNvbHVt
bnMvcm93CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0y
MzYwNTQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBB
ZGRzIGEgbmV3IGV4cGVyaW1lbnRhbCBwcmVmZXJlbmNlIGZvciBzdWJncmlkIHN1cHBvcnQsIGRp
c2FibGVkIGJ5IGRlZmF1bHQuCisKKyAgICAgICAgKiBTY3JpcHRzL1ByZWZlcmVuY2VzL1dlYlBy
ZWZlcmVuY2VzRXhwZXJpbWVudGFsLnlhbWw6CisKIDIwMjItMDItMDIgIFhhbiBMb3BleiAgPHhh
bkBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtKU0NdIFJlbW92ZSBjb21waWxlciB3YXJuaW5nIGlu
IFRyYWlsaW5nQXJyYXkuaApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi9TY3JpcHRzL1ByZWZlcmVu
Y2VzL1dlYlByZWZlcmVuY2VzRXhwZXJpbWVudGFsLnlhbWwgYi9Tb3VyY2UvV1RGL1NjcmlwdHMv
UHJlZmVyZW5jZXMvV2ViUHJlZmVyZW5jZXNFeHBlcmltZW50YWwueWFtbAppbmRleCA1YjRkM2I2
MjU3MTcuLjFjODFhYzc1MGJlZSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi9TY3JpcHRzL1ByZWZl
cmVuY2VzL1dlYlByZWZlcmVuY2VzRXhwZXJpbWVudGFsLnlhbWwKKysrIGIvU291cmNlL1dURi9T
Y3JpcHRzL1ByZWZlcmVuY2VzL1dlYlByZWZlcmVuY2VzRXhwZXJpbWVudGFsLnlhbWwKQEAgLTEz
NDcsNiArMTM0NywxOCBAQCBTdG9yYWdlQVBJRW5hYmxlZDoKICAgICAgICJQTEFURk9STShDT0NP
QSkiIDogdHJ1ZQogICAgICAgZGVmYXVsdDogZmFsc2UKIAorU3ViZ3JpZEVuYWJsZWQ6CisgIHR5
cGU6IGJvb2wKKyAgaHVtYW5SZWFkYWJsZU5hbWU6ICJDU1Mgc3ViZ3JpZCBzdXBwb3J0IgorICBo
dW1hblJlYWRhYmxlRGVzY3JpcHRpb246ICJFbmFibGUgQ1NTIHN1YmdyaWQgc3VwcG9ydCIKKyAg
ZGVmYXVsdFZhbHVlOgorICAgIFdlYktpdExlZ2FjeToKKyAgICAgIGRlZmF1bHQ6IGZhbHNlCisg
ICAgV2ViS2l0OgorICAgICAgZGVmYXVsdDogZmFsc2UKKyAgICBXZWJDb3JlOgorICAgICAgZGVm
YXVsdDogZmFsc2UKKwogU3ludGhldGljRWRpdGluZ0NvbW1hbmRzRW5hYmxlZDoKICAgdHlwZTog
Ym9vbAogICBodW1hblJlYWRhYmxlTmFtZTogIlN5bnRoZXRpYyBFZGl0aW5nIENvbW1hbmRzIgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hh
bmdlTG9nCmluZGV4IDFmMzA4YzAxMmVlMC4uMmZmOTA0YWJkMDg0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMTQ0IEBACisyMDIyLTAyLTA0ICBNYXR0IFdvb2Ryb3cgIDxtYXR0d29vZHJvd0BhcHBs
ZS5jb20+CisKKyAgICAgICAgSW1wbGVtZW50IGdldENvbXB1dGVkU3R5bGUgZm9yIHN1YmdyaWRz
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzYxNDgK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGRzIE9y
ZGVyZWROYW1lZExpbmVzQ29sbGVjdG9ySW5TdWJncmlkTGF5b3V0IHRvIGl0ZXJhdGUgdGhlIHN1
YmdyaWQgbmFtZXMgbGlzdCwgc3RvcHBpbmcKKyAgICAgICAgYXQgdGhlIG51bWJlciBvZiBhY3R1
YWwgdHJhY2tzIGluIHRoZSBncmlkLgorCisKKyAgICAgICAgKiBjc3MvQ1NTQ29tcHV0ZWRTdHls
ZURlY2xhcmF0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok9yZGVyZWROYW1lZExpbmVzQ29s
bGVjdG9ySW5TdWJncmlkTGF5b3V0OjpPcmRlcmVkTmFtZWRMaW5lc0NvbGxlY3RvckluU3ViZ3Jp
ZExheW91dCk6CisgICAgICAgIChXZWJDb3JlOjpPcmRlcmVkTmFtZWRMaW5lc0NvbGxlY3Rvcklu
R3JpZExheW91dDo6Y29sbGVjdExpbmVOYW1lc0ZvckluZGV4IGNvbnN0KToKKyAgICAgICAgKFdl
YkNvcmU6Ok9yZGVyZWROYW1lZExpbmVzQ29sbGVjdG9ySW5TdWJncmlkTGF5b3V0Ojpjb2xsZWN0
TGluZU5hbWVzRm9ySW5kZXggY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6YWRkVmFsdWVzRm9y
TmFtZWRHcmlkTGluZXNBdEluZGV4KToKKyAgICAgICAgKFdlYkNvcmU6OnBvcHVsYXRlU3ViZ3Jp
ZFRyYWNrTGlzdCk6CisgICAgICAgIChXZWJDb3JlOjp2YWx1ZUZvckdyaWRUcmFja0xpc3QpOgor
ICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJHcmlkLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJl
bmRlckdyaWQ6OmNvbXB1dGVBdXRvUmVwZWF0VHJhY2tzQ291bnQgY29uc3QpOgorICAgICAgICAq
IHJlbmRlcmluZy9SZW5kZXJHcmlkLmg6CisgICAgICAgICogcmVuZGVyaW5nL3N0eWxlL0dyaWRQ
b3NpdGlvbnNSZXNvbHZlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpOYW1lZExpbmVDb2xsZWN0
aW9uOjpjb250YWlucyBjb25zdCk6CisgICAgICAgICogc3R5bGUvU3R5bGVCdWlsZGVyQ29udmVy
dGVyLmg6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZTo6QnVpbGRlckNvbnZlcnRlcjo6Y3JlYXRl
R3JpZFRyYWNrTGlzdCk6CisKKzIwMjItMDItMDMgIE1hdHQgV29vZHJvdyAgPG1hdHR3b29kcm93
QGFwcGxlLmNvbT4KKworICAgICAgICBJbmhlcml0IHRyYWNrIGNvdW50IGZyb20gcGFyZW50IGdy
aWQgZm9yIHN1YmdyaWRkZWQgYXhlcyBhbmQgY2xhbXAgaXRlbSBwbGFjZW1lbnQgdG8gdGhhdCBl
eHBsaWNpdCBncmlkLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjM2MTIyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgQ2hhbmdlcyBHcmlkUG9zaXRpb25zUmVzb2x2ZXI6OmV4cGxpY2l0R3JpZDw+Q291bnQg
dG8gcmV0dXJuIHRoZSBudW1iZXIgb2YgdHJhY2tzCisgICAgICAgIHNwYW5uZWQgaW4gdGhlIHBh
cmVudCBncmlkLCBmb3IgYXhlcyB0aGF0IGFyZSBhIHN1YmdyaWQuCisKKyAgICAgICAgVXBkYXRl
cyBhZGp1c3RHcmlkUG9zaXRpb25zRm9yU3R5bGUgdG8gdXNlIHRoZSBudW1iZXIgb2YgbGluZXMg
c3BlY2lmaWVkIGluIHRoZQorICAgICAgICBzdWJncmlkIHByb3BlcnR5LCBmb3IgZ3JpZCBpdGVt
cyB0aGF0IGFyZSBhbHNvIGEgc3ViZ3JpZCBhbmQgaGF2ZSBhbiBvdGhlcndpc2UKKyAgICAgICAg
aW5kZWZpbml0ZSBzcGFuLgorCisgICAgICAgIEFkZHMgY2xhbXBpbmcgc3VwcG9ydCB0byBHcmlk
IHNvIHRoYXQgd2UgY2FuIHByZXZlbnQgc3ViZ3JpZHMgZnJvbSBldmVyIGFkZGluZworICAgICAg
ICBuZXcgaW1wbGljaXQgdHJhY2tzLgorCisgICAgICAgICogcmVuZGVyaW5nL0dyaWQuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6R3JpZDo6aW5zZXJ0KToKKyAgICAgICAgKFdlYkNvcmU6OkdyaWQ6
OnNldENsYW1waW5nRm9yU3ViZ3JpZCk6CisgICAgICAgIChXZWJDb3JlOjpHcmlkOjpjbGFtcEFu
ZFRyYW5zbGF0ZVRvSW1wbGljaXRHcmlkKToKKyAgICAgICAgKFdlYkNvcmU6OkdyaWQ6OnNldE5l
ZWRzSXRlbXNQbGFjZW1lbnQpOgorICAgICAgICAqIHJlbmRlcmluZy9HcmlkLmg6CisgICAgICAg
ICogcmVuZGVyaW5nL1JlbmRlckdyaWQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyR3Jp
ZDo6Y29tcHV0ZUludHJpbnNpY0xvZ2ljYWxXaWR0aHMgY29uc3QpOgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyR3JpZDo6cGxhY2VJdGVtc09uR3JpZCBjb25zdCk6CisgICAgICAgIChXZWJDb3Jl
OjpSZW5kZXJHcmlkOjpwb3B1bGF0ZUV4cGxpY2l0R3JpZEFuZE9yZGVySXRlcmF0b3IgY29uc3Qp
OgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyR3JpZDo6cGxhY2VTcGVjaWZpZWRNYWpvckF4aXNJ
dGVtc09uR3JpZCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJHcmlkOjppc1N1Ymdy
aWQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyR3JpZDo6aXNTdWJncmlkUm93cyBj
b25zdCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJHcmlkOjppc1N1YmdyaWRDb2x1bW5zIGNv
bnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckdyaWQ6OmdyaWRBcmVhQnJlYWR0aEZvck91
dE9mRmxvd0NoaWxkKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckdyaWQ6Om51bVRyYWNrcyBj
b25zdCk6CisgICAgICAgIChXZWJDb3JlOjp0cmFuc3Bvc2VkRGlyZWN0aW9uKToKKyAgICAgICAg
KFdlYkNvcmU6OlJlbmRlckdyaWQ6OmNvbXB1dGVHcmlkU3BhbkZvck91dE9mRmxvd0NoaWxkIGNv
bnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckdyaWQ6OmdyaWRTcGFuRm9yT3V0T2ZGbG93
Q2hpbGQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyR3JpZDo6Z3JpZFNwYW5Gb3JD
aGlsZCBjb25zdCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckdyaWQuaDoKKyAgICAgICAg
KiByZW5kZXJpbmcvc3R5bGUvR3JpZEFyZWEuaDoKKyAgICAgICAgKFdlYkNvcmU6OkdyaWRTcGFu
OjppbnRlZ2VyU3BhbiBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpHcmlkU3Bhbjo6dHJhbnNs
YXRlVG8pOgorICAgICAgICAoV2ViQ29yZTo6R3JpZFNwYW46OmNsYW1wKToKKyAgICAgICAgKiBy
ZW5kZXJpbmcvc3R5bGUvR3JpZFBvc2l0aW9uc1Jlc29sdmVyLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OmlzSW5kZWZpbml0ZVNwYW4pOgorICAgICAgICAoV2ViQ29yZTo6YWRqdXN0R3JpZFBvc2l0
aW9uc0Zyb21TdHlsZSk6CisgICAgICAgIChXZWJDb3JlOjpHcmlkUG9zaXRpb25zUmVzb2x2ZXI6
OmV4cGxpY2l0R3JpZENvbHVtbkNvdW50KToKKyAgICAgICAgKFdlYkNvcmU6OkdyaWRQb3NpdGlv
bnNSZXNvbHZlcjo6ZXhwbGljaXRHcmlkUm93Q291bnQpOgorICAgICAgICAoV2ViQ29yZTo6ZXhw
bGljaXRHcmlkU2l6ZUZvclNpZGUpOgorICAgICAgICAoV2ViQ29yZTo6cmVzb2x2ZU5hbWVkR3Jp
ZExpbmVQb3NpdGlvbkZyb21TdHlsZSk6CisgICAgICAgIChXZWJDb3JlOjpyZXNvbHZlTmFtZWRH
cmlkTGluZVBvc2l0aW9uQWdhaW5zdE9wcG9zaXRlUG9zaXRpb24pOgorICAgICAgICAoV2ViQ29y
ZTo6cmVzb2x2ZUdyaWRQb3NpdGlvbkFnYWluc3RPcHBvc2l0ZVBvc2l0aW9uKToKKyAgICAgICAg
KFdlYkNvcmU6OnJlc29sdmVHcmlkUG9zaXRpb25Gcm9tU3R5bGUpOgorICAgICAgICAoV2ViQ29y
ZTo6R3JpZFBvc2l0aW9uc1Jlc29sdmVyOjpyZXNvbHZlR3JpZFBvc2l0aW9uc0Zyb21TdHlsZSk6
CisgICAgICAgICogcmVuZGVyaW5nL3N0eWxlL0dyaWRQb3NpdGlvbnNSZXNvbHZlci5oOgorCisy
MDIyLTAyLTAyICBNYXR0IFdvb2Ryb3cgIDxtYXR0d29vZHJvd0BhcHBsZS5jb20+CisKKyAgICAg
ICAgQWRkIHN1cHBvcnQgZm9yIHBhcnNpbmcgJ3N1YmdyaWQnIGluIGdyaWQtdGVtcGxhdGUtY29s
dW1ucy9yb3cKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIzNjA1NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IEFkZHMgc3VwcG9ydCBmb3IgcGFyc2luZyB0aGUgJ3N1YmdyaWQnIGtleXdvcmQgZm9sbG93ZWQg
YnkgYSBsaXN0IG9mIGxpbmUgbmFtZXMgZm9yCisgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1u
cy9yb3dzLgorICAgICAgICBBZGRzIGEgbmV3IENTU1N1YmdyaWRWYWx1ZSB3cmFwcGVyIGFyb3Vu
ZCBDU1NWYWx1ZUxpc3QgdG8gcmVwcmVzZW50IHRoaXMuCisgICAgICAgIEFsc28gYWRkcyBzdXBw
b3J0IGZvciBjb252ZXJ0aW5nIHRoaXMgaW50byBzdHlsZSBkYXRhIGluIFN0eWxlQnVpbGRlckNv
bnZlcnRlciwgYW5kIHNlcmlhbGl6aW5nCisgICAgICAgIHRoZSBzcGVjaWZpZWQgdmFsdWUgZm9y
IGNvbXB1dGVkIHZhbHVlICh1c2VkIHdoZW4gdGhlIGVsZW1lbnQgc3BlY2lmaWVkIHN1YmdyaWQg
YnV0IGRvZXNuJ3QKKyAgICAgICAgaGF2ZSBhbiBhcHByb3ByaWF0ZSBncmlkIHBhcmVudCkuCisK
KyAgICAgICAgVGVzdHM6IGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1n
cmlkL3N1YmdyaWQvZ3JpZC10ZW1wbGF0ZS1pbnZhbGlkLmh0bWwKKyAgICAgICAgICAgICAgIGlt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1ncmlkL3N1YmdyaWQvZ3JpZC10
ZW1wbGF0ZS12YWxpZC5odG1sCisKKyAgICAgICAgKiBTb3VyY2VzLnR4dDoKKyAgICAgICAgKiBX
ZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogY3NzL0NTU0NvbXB1
dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpPcmRlcmVkTmFtZWRM
aW5lc0NvbGxlY3Rvcjo6bmFtZWRHcmlkTGluZUNvdW50IGNvbnN0KToKKyAgICAgICAgKFdlYkNv
cmU6OnBvcHVsYXRlU3ViZ3JpZFRyYWNrTGlzdCk6CisgICAgICAgIChXZWJDb3JlOjp2YWx1ZUZv
ckdyaWRUcmFja0xpc3QpOgorICAgICAgICAqIGNzcy9DU1NTdWJncmlkVmFsdWUuY3BwOiBBZGRl
ZC4KKyAgICAgICAgKFdlYkNvcmU6OkNTU1N1YmdyaWRWYWx1ZTo6Y3VzdG9tQ1NTVGV4dCBjb25z
dCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NTdWJncmlkVmFsdWU6OkNTU1N1YmdyaWRWYWx1ZSk6
CisgICAgICAgICogY3NzL0NTU1N1YmdyaWRWYWx1ZS5oOiBBZGRlZC4KKyAgICAgICAgKiBjc3Mv
Q1NTVmFsdWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTVmFsdWU6OmVxdWFscyBjb25zdCk6
CisgICAgICAgIChXZWJDb3JlOjpDU1NWYWx1ZTo6Y3NzVGV4dCBjb25zdCk6CisgICAgICAgIChX
ZWJDb3JlOjpDU1NWYWx1ZTo6ZGVzdHJveSk6CisgICAgICAgICogY3NzL0NTU1ZhbHVlLmg6Cisg
ICAgICAgIChXZWJDb3JlOjpDU1NWYWx1ZTo6aXNTdWJncmlkVmFsdWUgY29uc3QpOgorICAgICAg
ICAqIGNzcy9DU1NWYWx1ZUtleXdvcmRzLmluOgorICAgICAgICAqIGNzcy9wYXJzZXIvQ1NTUGFy
c2VyQ29udGV4dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpvcGVyYXRvcj09KToKKyAgICAgICAg
KFdlYkNvcmU6OmFkZCk6CisgICAgICAgICogY3NzL3BhcnNlci9DU1NQYXJzZXJDb250ZXh0Lmg6
CisgICAgICAgICogY3NzL3BhcnNlci9DU1NQcm9wZXJ0eVBhcnNlci5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpjb25zdW1lR3JpZExpbmVOYW1lcyk6CisgICAgICAgIChXZWJDb3JlOjpjb25zdW1l
R3JpZE5hbWVSZXBlYXRGdW5jdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpjb25zdW1lR3JpZFRy
YWNrTGlzdCk6CisgICAgICAgIChXZWJDb3JlOjpjb25zdW1lR3JpZFRlbXBsYXRlc1Jvd3NPckNv
bHVtbnMpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJvcGVydHlQYXJzZXI6OnBhcnNlU2luZ2xl
VmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJvcGVydHlQYXJzZXI6OmNvbnN1bWVHcmlk
VGVtcGxhdGVSb3dzQW5kQXJlYXNBbmRDb2x1bW5zKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1By
b3BlcnR5UGFyc2VyOjpjb25zdW1lR3JpZFRlbXBsYXRlU2hvcnRoYW5kKToKKyAgICAgICAgKFdl
YkNvcmU6OkNTU1Byb3BlcnR5UGFyc2VyOjpjb25zdW1lR3JpZFNob3J0aGFuZCk6CisgICAgICAg
ICogcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmg6CisgICAgICAgIChXZWJDb3JlOjpSZW5k
ZXJTdHlsZTo6Z3JpZFN1YmdyaWRSb3dzIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRl
clN0eWxlOjpncmlkU3ViZ3JpZENvbHVtbnMgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVu
ZGVyU3R5bGU6OnNldEdyaWRTdWJncmlkUm93cyk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJT
dHlsZTo6c2V0R3JpZFN1YmdyaWRDb2x1bW5zKToKKyAgICAgICAgKiByZW5kZXJpbmcvc3R5bGUv
U3R5bGVHcmlkRGF0YS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZUdyaWREYXRhOjpTdHls
ZUdyaWREYXRhKToKKyAgICAgICAgKiByZW5kZXJpbmcvc3R5bGUvU3R5bGVHcmlkRGF0YS5oOgor
ICAgICAgICAoV2ViQ29yZTo6U3R5bGVHcmlkRGF0YTo6b3BlcmF0b3I9PSBjb25zdCk6CisgICAg
ICAgICogc3R5bGUvU3R5bGVCdWlsZGVyQ29udmVydGVyLmg6CisgICAgICAgIChXZWJDb3JlOjpT
dHlsZTo6QnVpbGRlckNvbnZlcnRlcjo6Y3JlYXRlR3JpZFRyYWNrTGlzdCk6CisgICAgICAgICog
c3R5bGUvU3R5bGVCdWlsZGVyQ3VzdG9tLmg6CisKIDIwMjItMDItMDMgIEtpbW1vIEtpbm51bmVu
ICA8a2tpbm51bmVuQGFwcGxlLmNvbT4KIAogICAgICAgICBDcmFzaCBhdCBjb20uYXBwbGUuV2Vi
S2l0OiBXZWJLaXQ6OlJlbW90ZUxheWVyQmFja2luZ1N0b3JlOjpkaXNwbGF5CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlIGIvU291cmNlL1dlYkNvcmUvSGVhZGVycy5j
bWFrZQppbmRleCA2NTM5MzdhY2U2NWMuLmI2NTI0OTFhNmE1YiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvSGVhZGVycy5jbWFrZQorKysgYi9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtl
CkBAIC01MzgsNiArNTM4LDcgQEAgc2V0KFdlYkNvcmVfUFJJVkFURV9GUkFNRVdPUktfSEVBREVS
UwogICAgIGNzcy9DU1NTdHlsZURlY2xhcmF0aW9uLmgKICAgICBjc3MvQ1NTU3R5bGVSdWxlLmgK
ICAgICBjc3MvQ1NTU3R5bGVTaGVldC5oCisgICAgY3NzL0NTU1N1YmdyaWRWYWx1ZS5oCiAgICAg
Y3NzL0NTU1RvTGVuZ3RoQ29udmVyc2lvbkRhdGEuaAogICAgIGNzcy9DU1NVbml0cy5oCiAgICAg
Y3NzL0NTU1Vua25vd25SdWxlLmgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMu
dHh0IGIvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKaW5kZXggYjNmNWUwYjc4NDE3Li40MDlj
YzUxMzhhNjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CisrKyBiL1Nv
dXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CkBAIC03NjcsNiArNzY3LDcgQEAgY3NzL0NTU1NoYWRv
d1ZhbHVlLmNwcAogY3NzL0NTU1N0eWxlRGVjbGFyYXRpb24uY3BwCiBjc3MvQ1NTU3R5bGVSdWxl
LmNwcAogY3NzL0NTU1N0eWxlU2hlZXQuY3BwCitjc3MvQ1NTU3ViZ3JpZFZhbHVlLmNwcAogY3Nz
L0NTU1N1cHBvcnRzUnVsZS5jcHAKIGNzcy9DU1NUaW1pbmdGdW5jdGlvblZhbHVlLmNwcAogY3Nz
L0NTU1RvTGVuZ3RoQ29udmVyc2lvbkRhdGEuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggYzVmNDRlZjA0YTcwLi5jNGVjZTdl
NTJjZTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oKQEAgLTQ2ODgsNiArNDY4OCw3IEBACiAJCUQwMDBFQkEzMTFCREFGRDQwMEM0Nzcy
NiAvKiBGcmFtZUxvYWRlclN0YXRlTWFjaGluZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gRDAwMEVCQTExMUJEQUZENDAwQzQ3NzI2IC8qIEZyYW1lTG9h
ZGVyU3RhdGVNYWNoaW5lLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKIAkJRDAwMEVEMjgxMUMxQjlDRDAwQzQ3NzI2IC8qIFN1YmZyYW1lTG9hZGVyLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBEMDAwRUQyNjEx
QzFCOUNEMDBDNDc3MjYgLyogU3ViZnJhbWVMb2FkZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlEMDFBMjdBRTEwQzlCRkQ4MDAwMjZBNDIgLyog
U3BhY2VTcGxpdFN0cmluZy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gRDAxQTI3QUMxMEM5QkZEODAwMDI2QTQyIC8qIFNwYWNlU3BsaXRTdHJpbmcuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQlEMDI2REIw
QTI3QUI3MTlFMDA4MUIxNDMgLyogQ1NTU3ViZ3JpZFZhbHVlLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBEMDI2REIwODI3QUI3MTlEMDA4MUIxNDMgLyog
Q1NTU3ViZ3JpZFZhbHVlLmggKi87IH07CiAJCUQwNUNFRDJBMEE0MEJCMkMwMEM1QUYzOCAvKiBG
b3JtYXRCbG9ja0NvbW1hbmQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEQwNUNFRDI4MEE0MEJCMkMwMEM1QUYzOCAvKiBGb3JtYXRCbG9ja0NvbW1hbmQu
aCAqLzsgfTsKIAkJRDA2QzBEOEYwQ0ZEMTE0NjAwNjVGNDNGIC8qIFJlbW92ZUZvcm1hdENvbW1h
bmQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEQwNkMw
RDhEMENGRDExNDYwMDY1RjQzRiAvKiBSZW1vdmVGb3JtYXRDb21tYW5kLmggKi87IH07CiAJCUQw
N0RFQUJBMEEzNjU1NEEwMENBMzBGOCAvKiBJbnNlcnRMaXN0Q29tbWFuZC5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRDA3REVBQjgwQTM2NTU0QTAwQ0Ez
MEY4IC8qIEluc2VydExpc3RDb21tYW5kLmggKi87IH07CkBAIC0xNjQzMyw2ICsxNjQzNCw4IEBA
CiAJCUQwMDBFRDI2MTFDMUI5Q0QwMEM0NzcyNiAvKiBTdWJmcmFtZUxvYWRlci5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTdWJmcmFtZUxvYWRlci5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQlEMDFBMjdBQjEwQzlCRkQ4MDAwMjZBNDIgLyogU3BhY2VTcGxpdFN0
cmluZy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTcGFjZVNwbGl0
U3RyaW5nLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRDAxQTI3QUMxMEM5QkZE
ODAwMDI2QTQyIC8qIFNwYWNlU3BsaXRTdHJpbmcuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gU3BhY2VTcGxpdFN0cmluZy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQlEMDI2REIwODI3QUI3MTlEMDA4MUIxNDMgLyogQ1NTU3ViZ3JpZFZhbHVlLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENTU1N1YmdyaWRWYWx1ZS5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQlEMDI2REIwQjI3QUI3MUFGMDA4MUIxNDMgLyogQ1NTU3ViZ3JpZFZh
bHVlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IENTU1N1YmdyaWRW
YWx1ZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUQwMzZERDhEMjA4RkZDMEMw
MEY5RjRCMiAvKiBXZWJHTENvbXByZXNzZWRUZXh0dXJlQVNUQy5pZGwgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gV2ViR0xDb21w
cmVzc2VkVGV4dHVyZUFTVEMuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlEMDVD
RUQyNzBBNDBCQjJDMDBDNUFGMzggLyogRm9ybWF0QmxvY2tDb21tYW5kLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBGb3JtYXRCbG9ja0NvbW1hbmQuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlEMDVDRUQyODBBNDBCQjJDMDBDNUFGMzggLyogRm9y
bWF0QmxvY2tDb21tYW5kLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBGb3Jt
YXRCbG9ja0NvbW1hbmQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTMxNTUxLDYg
KzMxNTU0LDggQEAKIAkJRjUyM0QxODQwMkRFNDJFODAxODYzNUNBIC8qIGNzcyAqLyA9IHsKIAkJ
CWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCisJCQkJRDAyNkRCMEIyN0FCNzFBRjAw
ODFCMTQzIC8qIENTU1N1YmdyaWRWYWx1ZS5jcHAgKi8sCisJCQkJRDAyNkRCMDgyN0FCNzE5RDAw
ODFCMTQzIC8qIENTU1N1YmdyaWRWYWx1ZS5oICovLAogCQkJCUJDRjE2NDREMjY2MjlGOUEwMDAy
RjdFRiAvKiBjYWxjICovLAogCQkJCTk0NkQzNzI3MUQ2Q0IyMjUwMDc3MDg0RiAvKiBwYXJzZXIg
Ki8sCiAJCQkJNEJBRkQwREEyMTkyMUVBRDAwQzBBQjY0IC8qIHR5cGVkb20gKi8sCkBAIC0zNTc5
MCw2ICszNTc5NSw3IEBACiAJCQkJQjJGQTNEQTkwQUI3NUE2RjAwMEU1QUM0IC8qIEpTU1ZHTWFy
a2VyRWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjJGQTNEQUIwQUI3NUE2RjAwMEU1QUM0
IC8qIEpTU1ZHTWFza0VsZW1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUIyRkEzREFEMEFCNzVB
NkYwMDBFNUFDNCAvKiBKU1NWR01hdHJpeC5oIGluIEhlYWRlcnMgKi8sCisJCQkJRDAyNkRCMEEy
N0FCNzE5RTAwODFCMTQzIC8qIENTU1N1YmdyaWRWYWx1ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
QjJGQTNEQUYwQUI3NUE2RjAwMEU1QUM0IC8qIEpTU1ZHTWV0YWRhdGFFbGVtZW50LmggaW4gSGVh
ZGVycyAqLywKIAkJCQlCMjdCMjgyQTBDRUYwQzA3MDBEMzlENTQgLyogSlNTVkdNaXNzaW5nR2x5
cGhFbGVtZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQk0NDk2RTNBMDEzOTgxM0E1MDAzRUUzMkEg
LyogSlNTVkdNUGF0aEVsZW1lbnQuaCBpbiBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvY3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9jc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcAppbmRleCA2OTJkODQ2ODMz
MzYuLjU5MGJhOGFiNTlmZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0NvbXB1
dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0NvbXB1
dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHAKQEAgLTg1OCw2ICs4NTgsOCBAQCBwdWJsaWM6CiAgICAg
Ym9vbCBpc0VtcHR5KCkgY29uc3QgeyByZXR1cm4gbV9vcmRlcmVkTmFtZWRHcmlkTGluZXMuaXNF
bXB0eSgpICYmIG1fb3JkZXJlZE5hbWVkQXV0b1JlcGVhdEdyaWRMaW5lcy5pc0VtcHR5KCk7IH0K
ICAgICB2aXJ0dWFsIHZvaWQgY29sbGVjdExpbmVOYW1lc0ZvckluZGV4KENTU0dyaWRMaW5lTmFt
ZXNWYWx1ZSYsIHVuc2lnbmVkIGluZGV4KSBjb25zdDsKIAorICAgIHZpcnR1YWwgaW50IG5hbWVk
R3JpZExpbmVDb3VudCgpIGNvbnN0IHsgcmV0dXJuIG1fb3JkZXJlZE5hbWVkR3JpZExpbmVzLnNp
emUoKTsgfQorCiBwcm90ZWN0ZWQ6CiAKICAgICBlbnVtIE5hbWVkTGluZXNUeXBlIHsgTmFtZWRM
aW5lcywgQXV0b1JlcGVhdE5hbWVkTGluZXMgfTsKQEAgLTg3NSw2ICs4NzcsOCBAQCBwdWJsaWM6
CiAgICAgfQogCiAgICAgdm9pZCBjb2xsZWN0TGluZU5hbWVzRm9ySW5kZXgoQ1NTR3JpZExpbmVO
YW1lc1ZhbHVlJiwgdW5zaWduZWQgaW5kZXgpIGNvbnN0IG92ZXJyaWRlOworCisgICAgaW50IG5h
bWVkR3JpZExpbmVDb3VudCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG1fb3JkZXJlZE5hbWVk
QXV0b1JlcGVhdEdyaWRMaW5lcy5zaXplKCk7IH0KIH07CiAKIGNsYXNzIE9yZGVyZWROYW1lZExp
bmVzQ29sbGVjdG9ySW5HcmlkTGF5b3V0IDogcHVibGljIE9yZGVyZWROYW1lZExpbmVzQ29sbGVj
dG9yIHsKQEAgLTg5NSw2ICs4OTksMzggQEAgcHJpdmF0ZToKICAgICB1bnNpZ25lZCBtX2F1dG9S
ZXBlYXRUcmFja0xpc3RMZW5ndGg7CiB9OwogCitjbGFzcyBPcmRlcmVkTmFtZWRMaW5lc0NvbGxl
Y3RvckluU3ViZ3JpZExheW91dCA6IHB1YmxpYyBPcmRlcmVkTmFtZWRMaW5lc0NvbGxlY3RvciB7
CitwdWJsaWM6CisgICAgT3JkZXJlZE5hbWVkTGluZXNDb2xsZWN0b3JJblN1YmdyaWRMYXlvdXQo
Y29uc3QgUmVuZGVyU3R5bGUmIHN0eWxlLCBib29sIGlzUm93QXhpcywgdW5zaWduZWQgdG90YWxU
cmFja3NDb3VudCkKKyAgICAgICAgOiBPcmRlcmVkTmFtZWRMaW5lc0NvbGxlY3RvcihzdHlsZSwg
aXNSb3dBeGlzKQorICAgICAgICAsIG1faW5zZXJ0aW9uUG9pbnQoaXNSb3dBeGlzID8gc3R5bGUu
Z3JpZEF1dG9SZXBlYXRDb2x1bW5zSW5zZXJ0aW9uUG9pbnQoKSA6IHN0eWxlLmdyaWRBdXRvUmVw
ZWF0Um93c0luc2VydGlvblBvaW50KCkpCisgICAgICAgICwgbV9hdXRvUmVwZWF0VHJhY2tMaXN0
TGVuZ3RoKChpc1Jvd0F4aXMgPyBzdHlsZS5hdXRvUmVwZWF0T3JkZXJlZE5hbWVkR3JpZENvbHVt
bkxpbmVzKCkgOiBzdHlsZS5hdXRvUmVwZWF0T3JkZXJlZE5hbWVkR3JpZFJvd0xpbmVzKCkpLnNp
emUoKSkKKyAgICAgICAgLCBtX3RvdGFsVHJhY2tzKHRvdGFsVHJhY2tzQ291bnQpCisgICAgewor
ICAgICAgICBpZiAoIW1fYXV0b1JlcGVhdFRyYWNrTGlzdExlbmd0aCkgeworICAgICAgICAgICAg
bV9hdXRvUmVwZWF0VG90YWxUcmFja3MgPSAwOworICAgICAgICAgICAgcmV0dXJuOworICAgICAg
ICB9CisgICAgICAgIC8vICsxIHRvIGNvbnZlcnQgZnJvbSB0cmFja3MgdG8gbGluZXMKKyAgICAg
ICAgdW5zaWduZWQgbmFtZWQgPSAoaXNSb3dBeGlzID8gc3R5bGUub3JkZXJlZE5hbWVkR3JpZENv
bHVtbkxpbmVzKCkgOiBzdHlsZS5vcmRlcmVkTmFtZWRHcmlkUm93TGluZXMoKSkuc2l6ZSgpOwor
ICAgICAgICBpZiAobmFtZWQgPj0gbV90b3RhbFRyYWNrcyArIDEpIHsKKyAgICAgICAgICAgIG1f
YXV0b1JlcGVhdFRvdGFsVHJhY2tzID0gMDsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAg
fQorICAgICAgICBtX2F1dG9SZXBlYXRUb3RhbFRyYWNrcyA9IChtX3RvdGFsVHJhY2tzICsgMSAt
IG5hbWVkKSAvIG1fYXV0b1JlcGVhdFRyYWNrTGlzdExlbmd0aDsKKyAgICAgICAgbV9hdXRvUmVw
ZWF0VG90YWxUcmFja3MgKj0gbV9hdXRvUmVwZWF0VHJhY2tMaXN0TGVuZ3RoOworICAgIH0KKwor
ICAgIHZvaWQgY29sbGVjdExpbmVOYW1lc0ZvckluZGV4KENTU0dyaWRMaW5lTmFtZXNWYWx1ZSYs
IHVuc2lnbmVkIGluZGV4KSBjb25zdCBvdmVycmlkZTsKKworICAgIGludCBuYW1lZEdyaWRMaW5l
Q291bnQoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBtX3RvdGFsVHJhY2tzICsgMTsgfQorcHJp
dmF0ZToKKyAgICB1bnNpZ25lZCBtX2luc2VydGlvblBvaW50OworICAgIHVuc2lnbmVkIG1fYXV0
b1JlcGVhdFRvdGFsVHJhY2tzOworICAgIHVuc2lnbmVkIG1fYXV0b1JlcGVhdFRyYWNrTGlzdExl
bmd0aDsKKyAgICB1bnNpZ25lZCBtX3RvdGFsVHJhY2tzOworfTsKKwogdm9pZCBPcmRlcmVkTmFt
ZWRMaW5lc0NvbGxlY3Rvcjo6YXBwZW5kTGluZXMoQ1NTR3JpZExpbmVOYW1lc1ZhbHVlJiBsaW5l
TmFtZXNWYWx1ZSwgdW5zaWduZWQgaW5kZXgsIE5hbWVkTGluZXNUeXBlIHR5cGUpIGNvbnN0CiB7
CiAgICAgYXV0byBpdGVyID0gdHlwZSA9PSBOYW1lZExpbmVzID8gbV9vcmRlcmVkTmFtZWRHcmlk
TGluZXMuZmluZChpbmRleCkgOiBtX29yZGVyZWROYW1lZEF1dG9SZXBlYXRHcmlkTGluZXMuZmlu
ZChpbmRleCk7CkBAIC05MjIsNyArOTU4LDcgQEAgdm9pZCBPcmRlcmVkTmFtZWRMaW5lc0NvbGxl
Y3Rvckluc2lkZVJlcGVhdDo6Y29sbGVjdExpbmVOYW1lc0ZvckluZGV4KENTU0dyaWRMaW4KIHZv
aWQgT3JkZXJlZE5hbWVkTGluZXNDb2xsZWN0b3JJbkdyaWRMYXlvdXQ6OmNvbGxlY3RMaW5lTmFt
ZXNGb3JJbmRleChDU1NHcmlkTGluZU5hbWVzVmFsdWUmIGxpbmVOYW1lc1ZhbHVlLCB1bnNpZ25l
ZCBpKSBjb25zdAogewogICAgIEFTU0VSVCghaXNFbXB0eSgpKTsKLSAgICBpZiAoIW1fYXV0b1Jl
cGVhdFRyYWNrTGlzdExlbmd0aCB8fCBpIDwgbV9pbnNlcnRpb25Qb2ludCkgeworICAgIGlmICgh
bV9hdXRvUmVwZWF0VG90YWxUcmFja3MgfHwgaSA8IG1faW5zZXJ0aW9uUG9pbnQpIHsKICAgICAg
ICAgYXBwZW5kTGluZXMobGluZU5hbWVzVmFsdWUsIGksIE5hbWVkTGluZXMpOwogICAgICAgICBy
ZXR1cm47CiAgICAgfQpAQCAtOTUyLDE0ICs5ODgsMzUgQEAgdm9pZCBPcmRlcmVkTmFtZWRMaW5l
c0NvbGxlY3RvckluR3JpZExheW91dDo6Y29sbGVjdExpbmVOYW1lc0ZvckluZGV4KENTU0dyaWRM
aW4KICAgICBhcHBlbmRMaW5lcyhsaW5lTmFtZXNWYWx1ZSwgYXV0b1JlcGVhdEluZGV4SW5GaXJz
dFJlcGV0aXRpb24sIEF1dG9SZXBlYXROYW1lZExpbmVzKTsKIH0KIAotc3RhdGljIHZvaWQgYWRk
VmFsdWVzRm9yTmFtZWRHcmlkTGluZXNBdEluZGV4KE9yZGVyZWROYW1lZExpbmVzQ29sbGVjdG9y
JiBjb2xsZWN0b3IsIHVuc2lnbmVkIGksIENTU1ZhbHVlTGlzdCYgbGlzdCkKK3ZvaWQgT3JkZXJl
ZE5hbWVkTGluZXNDb2xsZWN0b3JJblN1YmdyaWRMYXlvdXQ6OmNvbGxlY3RMaW5lTmFtZXNGb3JJ
bmRleChDU1NHcmlkTGluZU5hbWVzVmFsdWUmIGxpbmVOYW1lc1ZhbHVlLCB1bnNpZ25lZCBpKSBj
b25zdAoreworICAgIGlmICghbV9hdXRvUmVwZWF0VHJhY2tMaXN0TGVuZ3RoIHx8IGkgPCBtX2lu
c2VydGlvblBvaW50KSB7CisgICAgICAgIGFwcGVuZExpbmVzKGxpbmVOYW1lc1ZhbHVlLCBpLCBO
YW1lZExpbmVzKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGlmIChpID49IG1faW5z
ZXJ0aW9uUG9pbnQgKyBtX2F1dG9SZXBlYXRUb3RhbFRyYWNrcykgeworICAgICAgICBhcHBlbmRM
aW5lcyhsaW5lTmFtZXNWYWx1ZSwgaSAtIChtX2F1dG9SZXBlYXRUb3RhbFRyYWNrcyAtIDEpLCBO
YW1lZExpbmVzKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGlmICghbV9hdXRvUmVw
ZWF0VG90YWxUcmFja3MpIHsKKyAgICAgICAgYXBwZW5kTGluZXMobGluZU5hbWVzVmFsdWUsIGkg
KyAxLCBOYW1lZExpbmVzKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIHVuc2lnbmVk
IGF1dG9SZXBlYXRJbmRleEluRmlyc3RSZXBldGl0aW9uID0gKGkgLSBtX2luc2VydGlvblBvaW50
KSAlIG1fYXV0b1JlcGVhdFRyYWNrTGlzdExlbmd0aDsKKyAgICBhcHBlbmRMaW5lcyhsaW5lTmFt
ZXNWYWx1ZSwgYXV0b1JlcGVhdEluZGV4SW5GaXJzdFJlcGV0aXRpb24sIEF1dG9SZXBlYXROYW1l
ZExpbmVzKTsKK30KKworc3RhdGljIHZvaWQgYWRkVmFsdWVzRm9yTmFtZWRHcmlkTGluZXNBdElu
ZGV4KE9yZGVyZWROYW1lZExpbmVzQ29sbGVjdG9yJiBjb2xsZWN0b3IsIHVuc2lnbmVkIGksIENT
U1ZhbHVlTGlzdCYgbGlzdCwgYm9vbCByZW5kZXJFbXB0eSA9IGZhbHNlKQogewotICAgIGlmIChj
b2xsZWN0b3IuaXNFbXB0eSgpKQorICAgIGlmIChjb2xsZWN0b3IuaXNFbXB0eSgpICYmICFyZW5k
ZXJFbXB0eSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgYXV0byBsaW5lTmFtZXMgPSBDU1NHcmlk
TGluZU5hbWVzVmFsdWU6OmNyZWF0ZSgpOwogICAgIGNvbGxlY3Rvci5jb2xsZWN0TGluZU5hbWVz
Rm9ySW5kZXgobGluZU5hbWVzLmdldCgpLCBpKTsKLSAgICBpZiAobGluZU5hbWVzLT5sZW5ndGgo
KSkKKyAgICBpZiAobGluZU5hbWVzLT5sZW5ndGgoKSB8fCByZW5kZXJFbXB0eSkKICAgICAgICAg
bGlzdC5hcHBlbmQoV1RGTW92ZShsaW5lTmFtZXMpKTsKIH0KIApAQCAtOTk0LDEwICsxMDUxLDIy
IEBAIHZvaWQgcG9wdWxhdGVHcmlkVHJhY2tMaXN0KENTU1ZhbHVlTGlzdCYgbGlzdCwgT3JkZXJl
ZE5hbWVkTGluZXNDb2xsZWN0b3ImIGNvbGxlCiAgICAgcG9wdWxhdGVHcmlkVHJhY2tMaXN0PFQ+
KGxpc3QsIGNvbGxlY3RvciwgdHJhY2tzLCBnZXRUcmFja1NpemUsIDAsIHRyYWNrcy5zaXplKCks
IG9mZnNldCk7CiB9CiAKK3N0YXRpYyB2b2lkIHBvcHVsYXRlU3ViZ3JpZFRyYWNrTGlzdChDU1NW
YWx1ZUxpc3QmIGxpc3QsIE9yZGVyZWROYW1lZExpbmVzQ29sbGVjdG9yJiBjb2xsZWN0b3IsIGlu
dCBzdGFydCwgaW50IGVuZCwgYm9vbCByZW5kZXJFbXB0eSA9IGZhbHNlKQoreworICAgIGZvciAo
aW50IGkgPSBzdGFydDsgaSA8IGVuZDsgaSsrKQorICAgICAgICBhZGRWYWx1ZXNGb3JOYW1lZEdy
aWRMaW5lc0F0SW5kZXgoY29sbGVjdG9yLCBpLCBsaXN0LCByZW5kZXJFbXB0eSk7Cit9CisKK3N0
YXRpYyB2b2lkIHBvcHVsYXRlU3ViZ3JpZFRyYWNrTGlzdChDU1NWYWx1ZUxpc3QmIGxpc3QsIE9y
ZGVyZWROYW1lZExpbmVzQ29sbGVjdG9yJiBjb2xsZWN0b3IsIGJvb2wgcmVuZGVyRW1wdHkgPSBm
YWxzZSkKK3sKKyAgICBwb3B1bGF0ZVN1YmdyaWRUcmFja0xpc3QobGlzdCwgY29sbGVjdG9yLCAw
LCBjb2xsZWN0b3IubmFtZWRHcmlkTGluZUNvdW50KCksIHJlbmRlckVtcHR5KTsKK30KKwogc3Rh
dGljIFJlZjxDU1NWYWx1ZT4gdmFsdWVGb3JHcmlkVHJhY2tMaXN0KEdyaWRUcmFja1NpemluZ0Rp
cmVjdGlvbiBkaXJlY3Rpb24sIFJlbmRlck9iamVjdCogcmVuZGVyZXIsIGNvbnN0IFJlbmRlclN0
eWxlJiBzdHlsZSkKIHsKICAgICBib29sIGlzUm93QXhpcyA9IGRpcmVjdGlvbiA9PSBGb3JDb2x1
bW5zOwogICAgIGJvb2wgaXNSZW5kZXJHcmlkID0gaXM8UmVuZGVyR3JpZD4ocmVuZGVyZXIpOwor
ICAgIGJvb2wgaXNTdWJncmlkID0gaXNSb3dBeGlzID8gc3R5bGUuZ3JpZFN1YmdyaWRDb2x1bW5z
KCkgOiBzdHlsZS5ncmlkU3ViZ3JpZFJvd3MoKTsKICAgICBhdXRvJiB0cmFja1NpemVzID0gaXNS
b3dBeGlzID8gc3R5bGUuZ3JpZENvbHVtbnMoKSA6IHN0eWxlLmdyaWRSb3dzKCk7CiAgICAgYXV0
byYgYXV0b1JlcGVhdFRyYWNrU2l6ZXMgPSBpc1Jvd0F4aXMgPyBzdHlsZS5ncmlkQXV0b1JlcGVh
dENvbHVtbnMoKSA6IHN0eWxlLmdyaWRBdXRvUmVwZWF0Um93cygpOwogCkBAIC0xMDExLDE1ICsx
MDgwLDI0IEBAIHN0YXRpYyBSZWY8Q1NTVmFsdWU+IHZhbHVlRm9yR3JpZFRyYWNrTGlzdChHcmlk
VHJhY2tTaXppbmdEaXJlY3Rpb24gZGlyZWN0aW9uLCBSCiAgICAgICAgIHRyYWNrTGlzdElzRW1w
dHkgPSBwb3NpdGlvbnMuc2l6ZSgpID09IDE7CiAgICAgfQogCi0gICAgaWYgKHRyYWNrTGlzdElz
RW1wdHkpCisgICAgaWYgKHRyYWNrTGlzdElzRW1wdHkgJiYgIWlzU3ViZ3JpZCkKICAgICAgICAg
cmV0dXJuIENTU1ZhbHVlUG9vbDo6c2luZ2xldG9uKCkuY3JlYXRlSWRlbnRpZmllclZhbHVlKENT
U1ZhbHVlTm9uZSk7CiAKICAgICBhdXRvIGxpc3QgPSBDU1NWYWx1ZUxpc3Q6OmNyZWF0ZVNwYWNl
U2VwYXJhdGVkKCk7CisgICAgaWYgKGlzU3ViZ3JpZCkKKyAgICAgICAgbGlzdC0+YXBwZW5kKENT
U1ZhbHVlUG9vbDo6c2luZ2xldG9uKCkuY3JlYXRlSWRlbnRpZmllclZhbHVlKENTU1ZhbHVlU3Vi
Z3JpZCkpOwogCiAgICAgLy8gSWYgdGhlIGVsZW1lbnQgaXMgYSBncmlkIGNvbnRhaW5lciwgdGhl
IHJlc29sdmVkIHZhbHVlIGlzIHRoZSB1c2VkIHZhbHVlLAogICAgIC8vIHNwZWNpZnlpbmcgdHJh
Y2sgc2l6ZXMgaW4gcGl4ZWxzIGFuZCBleHBhbmRpbmcgdGhlIHJlcGVhdCgpIG5vdGF0aW9uLgot
ICAgIGlmIChpc1JlbmRlckdyaWQpIHsKKyAgICAvLyBJZiBzdWJncmlkIHdhcyBzcGVjaWZpZWQs
IGJ1dCB0aGUgZWxlbWVudCBpc24ndCBhIHN1YmdyaWQgKGR1ZSB0byBub3QgaGF2aW5nCisgICAg
Ly8gYW4gYXBwcm9wcmlhdGUgZ3JpZCBwYXJlbnQ/KSwgdGhlbiB3ZSBmYWxsIGJhY2sgdG8gdXNp
bmcgdGhlIHNwZWNpZmllZCB2YWx1ZS4KKyAgICBpZiAoaXNSZW5kZXJHcmlkICYmICghaXNTdWJn
cmlkIHx8IGRvd25jYXN0PFJlbmRlckdyaWQ+KHJlbmRlcmVyKS0+aXNTdWJncmlkKGRpcmVjdGlv
bikpKSB7CiAgICAgICAgIGF1dG8qIGdyaWQgPSBkb3duY2FzdDxSZW5kZXJHcmlkPihyZW5kZXJl
cik7CisgICAgICAgIGlmIChpc1N1YmdyaWQpIHsKKyAgICAgICAgICAgIE9yZGVyZWROYW1lZExp
bmVzQ29sbGVjdG9ySW5TdWJncmlkTGF5b3V0IGNvbGxlY3RvcihzdHlsZSwgaXNSb3dBeGlzLCBn
cmlkLT5udW1UcmFja3MoZGlyZWN0aW9uKSk7CisgICAgICAgICAgICBwb3B1bGF0ZVN1YmdyaWRU
cmFja0xpc3QobGlzdC5nZXQoKSwgY29sbGVjdG9yLCB0cnVlKTsKKyAgICAgICAgICAgIHJldHVy
biBsaXN0OworICAgICAgICB9CiAgICAgICAgIE9yZGVyZWROYW1lZExpbmVzQ29sbGVjdG9ySW5H
cmlkTGF5b3V0IGNvbGxlY3RvcihzdHlsZSwgaXNSb3dBeGlzLCBncmlkLT5hdXRvUmVwZWF0Q291
bnRGb3JEaXJlY3Rpb24oZGlyZWN0aW9uKSwgYXV0b1JlcGVhdFRyYWNrU2l6ZXMuc2l6ZSgpKTsK
ICAgICAgICAgLy8gTmFtZWQgZ3JpZCBsaW5lIGluZGljZXMgYXJlIHJlbGF0aXZlIHRvIHRoZSBl
eHBsaWNpdCBncmlkLCBidXQgd2UgYXJlIGluY2x1ZGluZyBhbGwgdHJhY2tzLgogICAgICAgICAv
LyBTbyB3ZSBuZWVkIHRvIHN1YnRyYWN0IHRoZSBudW1iZXIgb2YgbGVhZGluZyBpbXBsaWNpdCB0
cmFja3MgaW4gb3JkZXIgdG8gZ2V0IHRoZSBwcm9wZXIgbGluZSBpbmRleC4KQEAgLTEwMzYsMjUg
KzExMTQsNDAgQEAgc3RhdGljIFJlZjxDU1NWYWx1ZT4gdmFsdWVGb3JHcmlkVHJhY2tMaXN0KEdy
aWRUcmFja1NpemluZ0RpcmVjdGlvbiBkaXJlY3Rpb24sIFIKICAgICAgICAgcmV0dXJuIHNwZWNp
ZmllZFZhbHVlRm9yR3JpZFRyYWNrU2l6ZSh2LCBzdHlsZSk7CiAgICAgfTsKIAotICAgIGlmIChh
dXRvUmVwZWF0VHJhY2tTaXplcy5pc0VtcHR5KCkpIHsKKyAgICBPcmRlcmVkTmFtZWRMaW5lc0Nv
bGxlY3Rvckluc2lkZVJlcGVhdCByZXBlYXRDb2xsZWN0b3Ioc3R5bGUsIGlzUm93QXhpcyk7Cisg
ICAgaWYgKGlzU3ViZ3JpZCA/ICFyZXBlYXRDb2xsZWN0b3IubmFtZWRHcmlkTGluZUNvdW50KCkg
OiBhdXRvUmVwZWF0VHJhY2tTaXplcy5pc0VtcHR5KCkpIHsKICAgICAgICAgLy8gSWYgdGhlcmUn
cyBubyBhdXRvIHJlcGVhdCgpLCBqdXN0IGFkZCBhbGwgdGhlIGxpbmUgbmFtZXMgYW5kIHRyYWNr
IHNpemVzLgotICAgICAgICBwb3B1bGF0ZUdyaWRUcmFja0xpc3QobGlzdC5nZXQoKSwgY29sbGVj
dG9yLCB0cmFja1NpemVzLCBnZXRUcmFja1NpemUpOworICAgICAgICBpZiAoaXNTdWJncmlkKQor
ICAgICAgICAgICAgcG9wdWxhdGVTdWJncmlkVHJhY2tMaXN0KGxpc3QuZ2V0KCksIGNvbGxlY3Rv
cik7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHBvcHVsYXRlR3JpZFRyYWNrTGlzdChsaXN0
LmdldCgpLCBjb2xsZWN0b3IsIHRyYWNrU2l6ZXMsIGdldFRyYWNrU2l6ZSk7CiAgICAgICAgIHJl
dHVybiBsaXN0OwogICAgIH0KIAogICAgIC8vIEFkZCB0aGUgbGluZSBuYW1lcyBhbmQgdHJhY2sg
c2l6ZXMgdGhhdCBwcmVjZWRlIHRoZSBhdXRvIHJlcGVhdCgpLgotICAgIGludCBhdXRvUmVwZWF0
SW5zZXJ0aW9uUG9pbnQgPSBzdGQ6OmNsYW1wPGludD4oaXNSb3dBeGlzID8gc3R5bGUuZ3JpZEF1
dG9SZXBlYXRDb2x1bW5zSW5zZXJ0aW9uUG9pbnQoKSA6IHN0eWxlLmdyaWRBdXRvUmVwZWF0Um93
c0luc2VydGlvblBvaW50KCksIDAsIHRyYWNrU2l6ZXMuc2l6ZSgpKTsKLSAgICBwb3B1bGF0ZUdy
aWRUcmFja0xpc3QobGlzdC5nZXQoKSwgY29sbGVjdG9yLCB0cmFja1NpemVzLCBnZXRUcmFja1Np
emUsIDAsIGF1dG9SZXBlYXRJbnNlcnRpb25Qb2ludCk7CisgICAgaW50IGF1dG9SZXBlYXRJbnNl
cnRpb25Qb2ludCA9IGlzUm93QXhpcyA/IHN0eWxlLmdyaWRBdXRvUmVwZWF0Q29sdW1uc0luc2Vy
dGlvblBvaW50KCkgOiBzdHlsZS5ncmlkQXV0b1JlcGVhdFJvd3NJbnNlcnRpb25Qb2ludCgpOwor
ICAgIGlmIChpc1N1YmdyaWQpCisgICAgICAgIHBvcHVsYXRlU3ViZ3JpZFRyYWNrTGlzdChsaXN0
LmdldCgpLCBjb2xsZWN0b3IsIDAsIGF1dG9SZXBlYXRJbnNlcnRpb25Qb2ludCk7CisgICAgZWxz
ZSB7CisgICAgICAgIGF1dG9SZXBlYXRJbnNlcnRpb25Qb2ludCA9IHN0ZDo6Y2xhbXA8aW50Pihh
dXRvUmVwZWF0SW5zZXJ0aW9uUG9pbnQsIDAsIHRyYWNrU2l6ZXMuc2l6ZSgpKTsKKyAgICAgICAg
cG9wdWxhdGVHcmlkVHJhY2tMaXN0KGxpc3QuZ2V0KCksIGNvbGxlY3RvciwgdHJhY2tTaXplcywg
Z2V0VHJhY2tTaXplLCAwLCBhdXRvUmVwZWF0SW5zZXJ0aW9uUG9pbnQpOworICAgIH0KIAogICAg
IC8vIEFkZCBhIENTU0dyaWRBdXRvUmVwZWF0VmFsdWUgd2l0aCB0aGUgY29udGVudHMgb2YgdGhl
IGF1dG8gcmVwZWF0KCkuCiAgICAgQXV0b1JlcGVhdFR5cGUgYXV0b1JlcGVhdFR5cGUgPSBpc1Jv
d0F4aXMgPyBzdHlsZS5ncmlkQXV0b1JlcGVhdENvbHVtbnNUeXBlKCkgOiBzdHlsZS5ncmlkQXV0
b1JlcGVhdFJvd3NUeXBlKCk7CiAgICAgYXV0byByZXBlYXRlZFZhbHVlcyA9IENTU0dyaWRBdXRv
UmVwZWF0VmFsdWU6OmNyZWF0ZShhdXRvUmVwZWF0VHlwZSA9PSBBdXRvUmVwZWF0VHlwZTo6Rmls
bCA/IENTU1ZhbHVlQXV0b0ZpbGwgOiBDU1NWYWx1ZUF1dG9GaXQpOwotICAgIE9yZGVyZWROYW1l
ZExpbmVzQ29sbGVjdG9ySW5zaWRlUmVwZWF0IHJlcGVhdENvbGxlY3RvcihzdHlsZSwgaXNSb3dB
eGlzKTsKLSAgICBwb3B1bGF0ZUdyaWRUcmFja0xpc3QocmVwZWF0ZWRWYWx1ZXMuZ2V0KCksIHJl
cGVhdENvbGxlY3RvciwgYXV0b1JlcGVhdFRyYWNrU2l6ZXMsIGdldFRyYWNrU2l6ZSk7CisKKyAg
ICBpZiAoaXNTdWJncmlkKQorICAgICAgICBwb3B1bGF0ZVN1YmdyaWRUcmFja0xpc3QocmVwZWF0
ZWRWYWx1ZXMuZ2V0KCksIHJlcGVhdENvbGxlY3Rvcik7CisgICAgZWxzZQorICAgICAgICBwb3B1
bGF0ZUdyaWRUcmFja0xpc3QocmVwZWF0ZWRWYWx1ZXMuZ2V0KCksIHJlcGVhdENvbGxlY3Rvciwg
YXV0b1JlcGVhdFRyYWNrU2l6ZXMsIGdldFRyYWNrU2l6ZSk7CiAgICAgbGlzdC0+YXBwZW5kKHJl
cGVhdGVkVmFsdWVzLmdldCgpKTsKIAogICAgIC8vIEFkZCB0aGUgbGluZSBuYW1lcyBhbmQgdHJh
Y2sgc2l6ZXMgdGhhdCBmb2xsb3cgdGhlIGF1dG8gcmVwZWF0KCkuCi0gICAgcG9wdWxhdGVHcmlk
VHJhY2tMaXN0KGxpc3QuZ2V0KCksIGNvbGxlY3RvciwgdHJhY2tTaXplcywgZ2V0VHJhY2tTaXpl
LCBhdXRvUmVwZWF0SW5zZXJ0aW9uUG9pbnQsIHRyYWNrU2l6ZXMuc2l6ZSgpLCAxKTsKKyAgICBp
ZiAoaXNTdWJncmlkKQorICAgICAgICBwb3B1bGF0ZVN1YmdyaWRUcmFja0xpc3QobGlzdC5nZXQo
KSwgY29sbGVjdG9yLCBhdXRvUmVwZWF0SW5zZXJ0aW9uUG9pbnQsIGNvbGxlY3Rvci5uYW1lZEdy
aWRMaW5lQ291bnQoKSArIDEpOworICAgIGVsc2UKKyAgICAgICAgcG9wdWxhdGVHcmlkVHJhY2tM
aXN0KGxpc3QuZ2V0KCksIGNvbGxlY3RvciwgdHJhY2tTaXplcywgZ2V0VHJhY2tTaXplLCBhdXRv
UmVwZWF0SW5zZXJ0aW9uUG9pbnQsIHRyYWNrU2l6ZXMuc2l6ZSgpLCAxKTsKICAgICByZXR1cm4g
bGlzdDsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1N1YmdyaWRWYWx1
ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU3ViZ3JpZFZhbHVlLmNwcApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLmE0MWE4NzgyMGM1MwotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdWJncmlkVmFsdWUuY3BwCkBAIC0wLDAgKzEs
NDggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMsIDIwMTQgSWdhbGlhLCBTLkwuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBt
ZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUg
b2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkg
YmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0
aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJT
IEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFS
VElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09Q
WVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICog
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkNTU1N1YmdyaWRWYWx1
ZS5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1N0cmluZyBDU1NTdWJncmlkVmFsdWU6OmN1
c3RvbUNTU1RleHQoKSBjb25zdAoreworICAgIGlmICghbGVuZ3RoKCkpCisgICAgICAgIHJldHVy
biAic3ViZ3JpZCI7CisgICAgcmV0dXJuICJzdWJncmlkICIgKyBDU1NWYWx1ZUxpc3Q6OmN1c3Rv
bUNTU1RleHQoKTsKK30KKworQ1NTU3ViZ3JpZFZhbHVlOjpDU1NTdWJncmlkVmFsdWUoKQorICAg
IDogQ1NTVmFsdWVMaXN0KFN1YmdyaWRDbGFzcywgU3BhY2VTZXBhcmF0b3IpCit7Cit9CisKK30K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdWJncmlkVmFsdWUuaCBiL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9DU1NTdWJncmlkVmFsdWUuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAuLmZhYTNjM2M2M2JhOQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9DU1NTdWJncmlkVmFsdWUuaApAQCAtMCwwICsxLDUyIEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDEzLCAyMDE0IElnYWxpYSwgUy5MLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAq
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBk
aXN0cmlidXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5v
ciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3Jz
ZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRo
b3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JT
CisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIg
T1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICog
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFn
bWEgb25jZQorCisjaW5jbHVkZSAiQ1NTVmFsdWVMaXN0LmgiCisKK25hbWVzcGFjZSBXZWJDb3Jl
IHsKKworY2xhc3MgQ1NTU3ViZ3JpZFZhbHVlIGZpbmFsIDogcHVibGljIENTU1ZhbHVlTGlzdCB7
CitwdWJsaWM6CisgICAgc3RhdGljIFJlZjxDU1NTdWJncmlkVmFsdWU+IGNyZWF0ZSgpCisgICAg
eworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBDU1NTdWJncmlkVmFsdWUpOworICAgIH0K
KworICAgIFN0cmluZyBjdXN0b21DU1NUZXh0KCkgY29uc3Q7CisKK3ByaXZhdGU6CisgICAgQ1NT
U3ViZ3JpZFZhbHVlKCk7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKK1NQRUNJQUxJ
WkVfVFlQRV9UUkFJVFNfQ1NTX1ZBTFVFKENTU1N1YmdyaWRWYWx1ZSwgaXNTdWJncmlkVmFsdWUo
KSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVmFsdWUuY3BwIGIvU291cmNl
L1dlYkNvcmUvY3NzL0NTU1ZhbHVlLmNwcAppbmRleCBhZmQxY2VhMjcyMmIuLmNlZDEzOTQyOTE2
YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVlLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvQ1NTVmFsdWUuY3BwCkBAIC02OSw2ICs2OSw3IEBACiAjaW5jbHVkZSAi
Q1NTR3JpZEludGVnZXJSZXBlYXRWYWx1ZS5oIgogI2luY2x1ZGUgIkNTU0dyaWRMaW5lTmFtZXNW
YWx1ZS5oIgogI2luY2x1ZGUgIkNTU0dyaWRUZW1wbGF0ZUFyZWFzVmFsdWUuaCIKKyNpbmNsdWRl
ICJDU1NTdWJncmlkVmFsdWUuaCIKIAogI2luY2x1ZGUgIkRlcHJlY2F0ZWRDU1NPTVByaW1pdGl2
ZVZhbHVlLmgiCiAjaW5jbHVkZSAiRGVwcmVjYXRlZENTU09NVmFsdWVMaXN0LmgiCkBAIC0xODQs
NiArMTg1LDggQEAgYm9vbCBDU1NWYWx1ZTo6ZXF1YWxzKGNvbnN0IENTU1ZhbHVlJiBvdGhlcikg
Y29uc3QKICAgICAgICAgICAgIHJldHVybiBjb21wYXJlQ1NTVmFsdWVzPENTU0dyaWRJbnRlZ2Vy
UmVwZWF0VmFsdWU+KCp0aGlzLCBvdGhlcik7CiAgICAgICAgIGNhc2UgR3JpZExpbmVOYW1lc0Ns
YXNzOgogICAgICAgICAgICAgcmV0dXJuIGNvbXBhcmVDU1NWYWx1ZXM8Q1NTR3JpZExpbmVOYW1l
c1ZhbHVlPigqdGhpcywgb3RoZXIpOworICAgICAgICBjYXNlIFN1YmdyaWRDbGFzczoKKyAgICAg
ICAgICAgIHJldHVybiBjb21wYXJlQ1NTVmFsdWVzPENTU1N1YmdyaWRWYWx1ZT4oKnRoaXMsIG90
aGVyKTsKICAgICAgICAgY2FzZSBHcmlkVGVtcGxhdGVBcmVhc0NsYXNzOgogICAgICAgICAgICAg
cmV0dXJuIGNvbXBhcmVDU1NWYWx1ZXM8Q1NTR3JpZFRlbXBsYXRlQXJlYXNWYWx1ZT4oKnRoaXMs
IG90aGVyKTsKICAgICAgICAgY2FzZSBQcmltaXRpdmVDbGFzczoKQEAgLTI4Nyw2ICsyOTAsOCBA
QCBTdHJpbmcgQ1NTVmFsdWU6OmNzc1RleHQoKSBjb25zdAogICAgICAgICByZXR1cm4gZG93bmNh
c3Q8Q1NTR3JpZEludGVnZXJSZXBlYXRWYWx1ZT4oKnRoaXMpLmN1c3RvbUNTU1RleHQoKTsKICAg
ICBjYXNlIEdyaWRMaW5lTmFtZXNDbGFzczoKICAgICAgICAgcmV0dXJuIGRvd25jYXN0PENTU0dy
aWRMaW5lTmFtZXNWYWx1ZT4oKnRoaXMpLmN1c3RvbUNTU1RleHQoKTsKKyAgICBjYXNlIFN1Ymdy
aWRDbGFzczoKKyAgICAgICAgcmV0dXJuIGRvd25jYXN0PENTU1N1YmdyaWRWYWx1ZT4oKnRoaXMp
LmN1c3RvbUNTU1RleHQoKTsKICAgICBjYXNlIEdyaWRUZW1wbGF0ZUFyZWFzQ2xhc3M6CiAgICAg
ICAgIHJldHVybiBkb3duY2FzdDxDU1NHcmlkVGVtcGxhdGVBcmVhc1ZhbHVlPigqdGhpcykuY3Vz
dG9tQ1NTVGV4dCgpOwogICAgIGNhc2UgUHJpbWl0aXZlQ2xhc3M6CkBAIC00MTAsNiArNDE1LDkg
QEAgdm9pZCBDU1NWYWx1ZTo6ZGVzdHJveSgpCiAgICAgY2FzZSBHcmlkTGluZU5hbWVzQ2xhc3M6
CiAgICAgICAgIGRlbGV0ZSBkb3duY2FzdDxDU1NHcmlkTGluZU5hbWVzVmFsdWU+KHRoaXMpOwog
ICAgICAgICByZXR1cm47CisgICAgY2FzZSBTdWJncmlkQ2xhc3M6CisgICAgICAgIGRlbGV0ZSBk
b3duY2FzdDxDU1NTdWJncmlkVmFsdWU+KHRoaXMpOworICAgICAgICByZXR1cm47CiAgICAgY2Fz
ZSBHcmlkVGVtcGxhdGVBcmVhc0NsYXNzOgogICAgICAgICBkZWxldGUgZG93bmNhc3Q8Q1NTR3Jp
ZFRlbXBsYXRlQXJlYXNWYWx1ZT4odGhpcyk7CiAgICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZS5oIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1Zh
bHVlLmgKaW5kZXggZjU1Mzg1MDI2ZDRmLi5lNjc3N2ViODBlMTMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1
ZS5oCkBAIC0xMzQsNiArMTM0LDcgQEAgcHVibGljOgogICAgIGJvb2wgaXNHcmlkSW50ZWdlclJl
cGVhdFZhbHVlKCkgY29uc3QgeyByZXR1cm4gbV9jbGFzc1R5cGUgPT0gR3JpZEludGVnZXJSZXBl
YXRDbGFzczsgfQogICAgIGJvb2wgaXNHcmlkVGVtcGxhdGVBcmVhc1ZhbHVlKCkgY29uc3QgeyBy
ZXR1cm4gbV9jbGFzc1R5cGUgPT0gR3JpZFRlbXBsYXRlQXJlYXNDbGFzczsgfQogICAgIGJvb2wg
aXNHcmlkTGluZU5hbWVzVmFsdWUoKSBjb25zdCB7IHJldHVybiBtX2NsYXNzVHlwZSA9PSBHcmlk
TGluZU5hbWVzQ2xhc3M7IH0KKyAgICBib29sIGlzU3ViZ3JpZFZhbHVlKCkgY29uc3QgeyByZXR1
cm4gbV9jbGFzc1R5cGUgPT0gU3ViZ3JpZENsYXNzOyB9CiAgICAgYm9vbCBpc1VuaWNvZGVSYW5n
ZVZhbHVlKCkgY29uc3QgeyByZXR1cm4gbV9jbGFzc1R5cGUgPT0gVW5pY29kZVJhbmdlQ2xhc3M7
IH0KIAogICAgIGJvb2wgaXNWYXJpYWJsZVJlZmVyZW5jZVZhbHVlKCkgY29uc3QgeyByZXR1cm4g
bV9jbGFzc1R5cGUgPT0gVmFyaWFibGVSZWZlcmVuY2VDbGFzczsgfQpAQCAtMjI0LDYgKzIyNSw3
IEBAIHByb3RlY3RlZDoKICAgICAgICAgR3JpZExpbmVOYW1lc0NsYXNzLAogICAgICAgICBHcmlk
QXV0b1JlcGVhdENsYXNzLAogICAgICAgICBHcmlkSW50ZWdlclJlcGVhdENsYXNzLAorICAgICAg
ICBTdWJncmlkQ2xhc3MsCiAgICAgICAgIC8vIERvIG5vdCBhcHBlbmQgbm9uLWxpc3QgY2xhc3Mg
dHlwZXMgaGVyZS4KICAgICB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NT
VmFsdWVLZXl3b3Jkcy5pbiBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZUtleXdvcmRzLmlu
CmluZGV4IDI0MmVmZjhlNmU3Yy4uZTkyNGYyZDMzNTUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9jc3MvQ1NTVmFsdWVLZXl3b3Jkcy5pbgorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NT
VmFsdWVLZXl3b3Jkcy5pbgpAQCAtMTQyMCw2ICsxNDIwLDcgQEAgc3BhbgogCiAvLyBncmlkLXRl
bXBsYXRlLXtjb2x1bW5zfHJvd3N9CiBtaW5tYXgKK3N1YmdyaWQKIAogLy8gZ3JpZC1hdXRvLWZs
b3cKIGF1dG8tZmxvdwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQ
YXJzZXJDb250ZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUGFyc2VyQ29u
dGV4dC5jcHAKaW5kZXggNTVkMzZiYjU4NjE2Li45MTNjZGEwYTI3ZGQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUGFyc2VyQ29udGV4dC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQYXJzZXJDb250ZXh0LmNwcApAQCAtMTExLDYgKzExMSw3
IEBAIENTU1BhcnNlckNvbnRleHQ6OkNTU1BhcnNlckNvbnRleHQoY29uc3QgRG9jdW1lbnQmIGRv
Y3VtZW50LCBjb25zdCBVUkwmIHNoZWV0QmFzCiAgICAgLCBncmFkaWVudFByZW11bHRpcGxpZWRB
bHBoYUludGVycG9sYXRpb25FbmFibGVkIHsgZG9jdW1lbnQuc2V0dGluZ3MoKS5jc3NHcmFkaWVu
dFByZW11bHRpcGxpZWRBbHBoYUludGVycG9sYXRpb25FbmFibGVkKCkgfQogICAgICwgZ3JhZGll
bnRJbnRlcnBvbGF0aW9uQ29sb3JTcGFjZXNFbmFibGVkIHsgZG9jdW1lbnQuc2V0dGluZ3MoKS5j
c3NHcmFkaWVudEludGVycG9sYXRpb25Db2xvclNwYWNlc0VuYWJsZWQoKSB9CiAgICAgLCBpbnB1
dFNlY3VyaXR5RW5hYmxlZCB7IGRvY3VtZW50LnNldHRpbmdzKCkuY3NzSW5wdXRTZWN1cml0eUVu
YWJsZWQoKSB9CisgICAgLCBzdWJncmlkRW5hYmxlZCB7IGRvY3VtZW50LnNldHRpbmdzKCkuc3Vi
Z3JpZEVuYWJsZWQoKSB9CiAjaWYgRU5BQkxFKEFUVEFDSE1FTlRfRUxFTUVOVCkKICAgICAsIGF0
dGFjaG1lbnRFbmFibGVkIHsgUnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2hhcmVkRmVhdHVyZXMo
KS5hdHRhY2htZW50RWxlbWVudEVuYWJsZWQoKSB9CiAjZW5kaWYKQEAgLTE2NCw2ICsxNjUsNyBA
QCBib29sIG9wZXJhdG9yPT0oY29uc3QgQ1NTUGFyc2VyQ29udGV4dCYgYSwgY29uc3QgQ1NTUGFy
c2VyQ29udGV4dCYgYikKICNpZiBFTkFCTEUoQVRUQUNITUVOVF9FTEVNRU5UKQogICAgICAgICAm
JiBhLmF0dGFjaG1lbnRFbmFibGVkID09IGIuYXR0YWNobWVudEVuYWJsZWQKICNlbmRpZgorICAg
ICAgICAmJiBhLnN1YmdyaWRFbmFibGVkID09IGIuc3ViZ3JpZEVuYWJsZWQKICAgICA7CiB9CiAK
QEAgLTIwOCw3ICsyMTAsOCBAQCB2b2lkIGFkZChIYXNoZXImIGhhc2hlciwgY29uc3QgQ1NTUGFy
c2VyQ29udGV4dCYgY29udGV4dCkKICNlbmRpZgogICAgICAgICB8IGNvbnRleHQuYWNjZW50Q29s
b3JFbmFibGVkICAgICAgICAgICAgICAgICAgICAgICAgPDwgMjkKICAgICAgICAgfCBjb250ZXh0
LmlucHV0U2VjdXJpdHlFbmFibGVkICAgICAgICAgICAgICAgICAgICAgIDw8IDMwCi0gICAgICAg
IHwgY29udGV4dC5tb2RlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8PCAz
MTsgLy8gVGhpcyBpcyBtdWx0aXBsZSBiaXRzLCBzbyBrZWVwIGl0IGxhc3QuCisgICAgICAgIHwg
Y29udGV4dC5zdWJncmlkRW5hYmxlZCAgICAgICAgICAgICAgICAgICAgICAgICAgICA8PCAzMQor
ICAgICAgICB8ICh1bnNpZ25lZCBsb25nIGxvbmcpY29udGV4dC5tb2RlICAgICAgICAgICAgICAg
ICAgPDwgMzI7IC8vIFRoaXMgaXMgbXVsdGlwbGUgYml0cywgc28ga2VlcCBpdCBsYXN0LgogICAg
IGFkZChoYXNoZXIsIGNvbnRleHQuYmFzZVVSTCwgY29udGV4dC5jaGFyc2V0LCBiaXRzKTsKIH0K
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQYXJzZXJDb250ZXh0
LmggYi9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1BhcnNlckNvbnRleHQuaAppbmRleCBk
ODliOTM4NmM1NzMuLmM4NmVkNmM4Y2Y2ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3Nz
L3BhcnNlci9DU1NQYXJzZXJDb250ZXh0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNl
ci9DU1NQYXJzZXJDb250ZXh0LmgKQEAgLTg5LDYgKzg5LDcgQEAgc3RydWN0IENTU1BhcnNlckNv
bnRleHQgewogICAgIGJvb2wgZ3JhZGllbnRQcmVtdWx0aXBsaWVkQWxwaGFJbnRlcnBvbGF0aW9u
RW5hYmxlZCB7IGZhbHNlIH07CiAgICAgYm9vbCBncmFkaWVudEludGVycG9sYXRpb25Db2xvclNw
YWNlc0VuYWJsZWQgeyBmYWxzZSB9OwogICAgIGJvb2wgaW5wdXRTZWN1cml0eUVuYWJsZWQgeyBm
YWxzZSB9OworICAgIGJvb2wgc3ViZ3JpZEVuYWJsZWQgeyBmYWxzZSB9OwogCiAgICAgLy8gUnVu
dGltZUVuYWJsZWRGZWF0dXJlcy4KICNpZiBFTkFCTEUoQVRUQUNITUVOVF9FTEVNRU5UKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQcm9wZXJ0eVBhcnNlci5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1Byb3BlcnR5UGFyc2VyLmNwcAppbmRleCBi
ZmI5YjYxMTU5MjIuLmYyNWFhOGMzZGIyNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3Nz
L3BhcnNlci9DU1NQcm9wZXJ0eVBhcnNlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL3Bh
cnNlci9DU1NQcm9wZXJ0eVBhcnNlci5jcHAKQEAgLTU5LDYgKzU5LDcgQEAKICNpbmNsdWRlICJD
U1NSYXlWYWx1ZS5oIgogI2luY2x1ZGUgIkNTU1JlZmxlY3RWYWx1ZS5oIgogI2luY2x1ZGUgIkNT
U1NoYWRvd1ZhbHVlLmgiCisjaW5jbHVkZSAiQ1NTU3ViZ3JpZFZhbHVlLmgiCiAjaW5jbHVkZSAi
Q1NTVGltaW5nRnVuY3Rpb25WYWx1ZS5oIgogI2luY2x1ZGUgIkNTU1VuaWNvZGVSYW5nZVZhbHVl
LmgiCiAjaW5jbHVkZSAiQ1NTVmFyaWFibGVQYXJzZXIuaCIKQEAgLTM2MDUsNyArMzYwNiw3IEBA
IHN0YXRpYyBSZWZQdHI8Q1NTVmFsdWU+IGNvbnN1bWVHcmlkVHJhY2tTaXplKENTU1BhcnNlclRv
a2VuUmFuZ2UmIHJhbmdlLCBDU1NQYXJzCiB9CiAKIC8vIEFwcGVuZHMgdG8gdGhlIHBhc3NlZCBp
biBDU1NHcmlkTGluZU5hbWVzVmFsdWUgaWYgYW55LCBvdGhlcndpc2UgY3JlYXRlcyBhIG5ldyBv
bmUuIFJldHVybnMgbnVsbHB0ciBpZiBhbiBlbXB0eSBsaXN0IGlzIGNvbnN1bWVkLgotc3RhdGlj
IFJlZlB0cjxDU1NHcmlkTGluZU5hbWVzVmFsdWU+IGNvbnN1bWVHcmlkTGluZU5hbWVzKENTU1Bh
cnNlclRva2VuUmFuZ2UmIHJhbmdlLCBDU1NHcmlkTGluZU5hbWVzVmFsdWUqIGxpbmVOYW1lcyA9
IG51bGxwdHIpCitzdGF0aWMgUmVmUHRyPENTU0dyaWRMaW5lTmFtZXNWYWx1ZT4gY29uc3VtZUdy
aWRMaW5lTmFtZXMoQ1NTUGFyc2VyVG9rZW5SYW5nZSYgcmFuZ2UsIENTU0dyaWRMaW5lTmFtZXNW
YWx1ZSogbGluZU5hbWVzID0gbnVsbHB0ciwgYm9vbCBhbGxvd0VtcHR5ID0gZmFsc2UpCiB7CiAg
ICAgQ1NTUGFyc2VyVG9rZW5SYW5nZSByYW5nZUNvcHkgPSByYW5nZTsKICAgICBpZiAocmFuZ2VD
b3B5LmNvbnN1bWVJbmNsdWRpbmdXaGl0ZXNwYWNlKCkudHlwZSgpICE9IExlZnRCcmFja2V0VG9r
ZW4pCkBAIC0zNjE5LDcgKzM2MjAsNyBAQCBzdGF0aWMgUmVmUHRyPENTU0dyaWRMaW5lTmFtZXNW
YWx1ZT4gY29uc3VtZUdyaWRMaW5lTmFtZXMoQ1NTUGFyc2VyVG9rZW5SYW5nZSYgcgogICAgIGlm
IChyYW5nZUNvcHkuY29uc3VtZUluY2x1ZGluZ1doaXRlc3BhY2UoKS50eXBlKCkgIT0gUmlnaHRC
cmFja2V0VG9rZW4pCiAgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIHJhbmdlID0gcmFuZ2VD
b3B5OwotICAgIHJldHVybiByZXN1bHQtPmxlbmd0aCgpID8gcmVzdWx0IDogbnVsbHB0cjsKKyAg
ICByZXR1cm4gKHJlc3VsdC0+bGVuZ3RoKCkgfHwgYWxsb3dFbXB0eSkgPyByZXN1bHQgOiBudWxs
cHRyOwogfQogCiBzdGF0aWMgYm9vbCBjb25zdW1lR3JpZFRyYWNrUmVwZWF0RnVuY3Rpb24oQ1NT
UGFyc2VyVG9rZW5SYW5nZSYgcmFuZ2UsIENTU1BhcnNlck1vZGUgY3NzUGFyc2VyTW9kZSwgQ1NT
VmFsdWVMaXN0JiBsaXN0LCBib29sJiBpc0F1dG9SZXBlYXQsIGJvb2wmIGFsbFRyYWNrc0FyZUZp
eGVkU2l6ZWQpCkBAIC0zNjc1LDEwICszNjc2LDU4IEBAIHN0YXRpYyBib29sIGNvbnN1bWVHcmlk
VHJhY2tSZXBlYXRGdW5jdGlvbihDU1NQYXJzZXJUb2tlblJhbmdlJiByYW5nZSwgQ1NTUGFyc2Vy
CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKK3N0YXRpYyBib29sIGNvbnN1bWVHcmlkTmFtZVJlcGVh
dEZ1bmN0aW9uKENTU1BhcnNlclRva2VuUmFuZ2UmIHJhbmdlLCBDU1NWYWx1ZUxpc3QmIGxpc3Qp
Cit7CisgICAgQ1NTUGFyc2VyVG9rZW5SYW5nZSBhcmdzID0gY29uc3VtZUZ1bmN0aW9uKHJhbmdl
KTsKKyAgICBzaXplX3QgcmVwZXRpdGlvbnMgPSAxOworICAgIGJvb2wgaXNBdXRvUmVwZWF0ID0g
aWRlbnRNYXRjaGVzPENTU1ZhbHVlQXV0b0ZpbGw+KGFyZ3MucGVlaygpLmlkKCkpOworICAgIFJl
ZlB0cjxDU1NWYWx1ZUxpc3Q+IHJlcGVhdGVkVmFsdWVzOworICAgIGlmIChpc0F1dG9SZXBlYXQp
CisgICAgICAgIHJlcGVhdGVkVmFsdWVzID0gQ1NTR3JpZEF1dG9SZXBlYXRWYWx1ZTo6Y3JlYXRl
KGFyZ3MuY29uc3VtZUluY2x1ZGluZ1doaXRlc3BhY2UoKS5pZCgpKTsKKyAgICBlbHNlIHsKKyAg
ICAgICAgYXV0byByZXBldGl0aW9uID0gY29uc3VtZVBvc2l0aXZlSW50ZWdlclJhdyhhcmdzKTsK
KyAgICAgICAgaWYgKCFyZXBldGl0aW9uKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAg
ICAgICByZXBldGl0aW9ucyA9IGNsYW1wVG88c2l6ZV90PihzdGF0aWNfY2FzdDxzaXplX3Q+KCpy
ZXBldGl0aW9uKSwgMCwgR3JpZFBvc2l0aW9uOjptYXgoKSk7CisgICAgICAgIHJlcGVhdGVkVmFs
dWVzID0gQ1NTR3JpZEludGVnZXJSZXBlYXRWYWx1ZTo6Y3JlYXRlKHJlcGV0aXRpb25zKTsKKyAg
ICB9CisgICAgaWYgKCFjb25zdW1lQ29tbWFJbmNsdWRpbmdXaGl0ZXNwYWNlKGFyZ3MpKQorICAg
ICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBhdXRvIGxpbmVOYW1lcyA9IGNvbnN1bWVHcmlkTGlu
ZU5hbWVzKGFyZ3MsIG51bGxwdHIsIHRydWUpOworICAgIGlmICghbGluZU5hbWVzKQorICAgICAg
ICByZXR1cm4gZmFsc2U7CisgICAgcmVwZWF0ZWRWYWx1ZXMtPmFwcGVuZChsaW5lTmFtZXMucmVs
ZWFzZU5vbk51bGwoKSk7CisKKyAgICB3aGlsZSAoIWFyZ3MuYXRFbmQoKSkgeworICAgICAgICBs
aW5lTmFtZXMgPSBjb25zdW1lR3JpZExpbmVOYW1lcyhhcmdzLCBudWxscHRyLCB0cnVlKTsKKyAg
ICAgICAgaWYgKCFsaW5lTmFtZXMpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAg
IHJlcGVhdGVkVmFsdWVzLT5hcHBlbmQobGluZU5hbWVzLnJlbGVhc2VOb25OdWxsKCkpOworICAg
IH0KKworICAgIGxpc3QuYXBwZW5kKHJlcGVhdGVkVmFsdWVzLnJlbGVhc2VOb25OdWxsKCkpOwor
ICAgIHJldHVybiB0cnVlOworfQorCiBlbnVtIFRyYWNrTGlzdFR5cGUgeyBHcmlkVGVtcGxhdGUs
IEdyaWRUZW1wbGF0ZU5vUmVwZWF0LCBHcmlkQXV0byB9OwogCi1zdGF0aWMgUmVmUHRyPENTU1Zh
bHVlPiBjb25zdW1lR3JpZFRyYWNrTGlzdChDU1NQYXJzZXJUb2tlblJhbmdlJiByYW5nZSwgQ1NT
UGFyc2VyTW9kZSBjc3NQYXJzZXJNb2RlLCBUcmFja0xpc3RUeXBlIHRyYWNrTGlzdFR5cGUpCitz
dGF0aWMgUmVmUHRyPENTU1ZhbHVlPiBjb25zdW1lR3JpZFRyYWNrTGlzdChDU1NQYXJzZXJUb2tl
blJhbmdlJiByYW5nZSwgY29uc3QgQ1NTUGFyc2VyQ29udGV4dCYgY29udGV4dCwgVHJhY2tMaXN0
VHlwZSB0cmFja0xpc3RUeXBlKQogeworICAgIGlmICh0cmFja0xpc3RUeXBlID09IEdyaWRUZW1w
bGF0ZSAmJiBjb250ZXh0LnN1YmdyaWRFbmFibGVkICYmIHJhbmdlLnBlZWsoKS5pZCgpID09IENT
U1ZhbHVlU3ViZ3JpZCkgeworICAgICAgICBjb25zdW1lSWRlbnQocmFuZ2UpOworICAgICAgICBh
dXRvIHZhbHVlcyA9IENTU1N1YmdyaWRWYWx1ZTo6Y3JlYXRlKCk7CisgICAgICAgIHdoaWxlICgh
cmFuZ2UuYXRFbmQoKSAmJiByYW5nZS5wZWVrKCkudHlwZSgpICE9IERlbGltaXRlclRva2VuKSB7
CisgICAgICAgICAgICBpZiAocmFuZ2UucGVlaygpLmZ1bmN0aW9uSWQoKSA9PSBDU1NWYWx1ZVJl
cGVhdCkgeworICAgICAgICAgICAgICAgIGlmICghY29uc3VtZUdyaWROYW1lUmVwZWF0RnVuY3Rp
b24ocmFuZ2UsIHZhbHVlcykpCisgICAgICAgICAgICAgICAgICAgIHJldHVybiBudWxscHRyOwor
ICAgICAgICAgICAgfSBlbHNlIGlmIChhdXRvIHZhbHVlID0gY29uc3VtZUdyaWRMaW5lTmFtZXMo
cmFuZ2UsIG51bGxwdHIsIHRydWUpKQorICAgICAgICAgICAgICAgIHZhbHVlcy0+YXBwZW5kKHZh
bHVlLnJlbGVhc2VOb25OdWxsKCkpOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAg
IHJldHVybiBudWxscHRyOworICAgICAgICB9CisgICAgICAgIHJldHVybiB2YWx1ZXM7CisgICAg
fQogICAgIGJvb2wgYWxsb3dHcmlkTGluZU5hbWVzID0gdHJhY2tMaXN0VHlwZSAhPSBHcmlkQXV0
bzsKICAgICBSZWZQdHI8Q1NTVmFsdWVMaXN0PiB2YWx1ZXMgPSBDU1NWYWx1ZUxpc3Q6OmNyZWF0
ZVNwYWNlU2VwYXJhdGVkKCk7CiAgICAgaWYgKCFhbGxvd0dyaWRMaW5lTmFtZXMgJiYgcmFuZ2Uu
cGVlaygpLnR5cGUoKSA9PSBMZWZ0QnJhY2tldFRva2VuKQpAQCAtMzY5NSwxMiArMzc0NCwxMiBA
QCBzdGF0aWMgUmVmUHRyPENTU1ZhbHVlPiBjb25zdW1lR3JpZFRyYWNrTGlzdChDU1NQYXJzZXJU
b2tlblJhbmdlJiByYW5nZSwgQ1NTUGFycwogICAgICAgICBpZiAocmFuZ2UucGVlaygpLmZ1bmN0
aW9uSWQoKSA9PSBDU1NWYWx1ZVJlcGVhdCkgewogICAgICAgICAgICAgaWYgKCFhbGxvd1JlcGVh
dCkKICAgICAgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKLSAgICAgICAgICAgIGlmICghY29u
c3VtZUdyaWRUcmFja1JlcGVhdEZ1bmN0aW9uKHJhbmdlLCBjc3NQYXJzZXJNb2RlLCAqdmFsdWVz
LCBpc0F1dG9SZXBlYXQsIGFsbFRyYWNrc0FyZUZpeGVkU2l6ZWQpKQorICAgICAgICAgICAgaWYg
KCFjb25zdW1lR3JpZFRyYWNrUmVwZWF0RnVuY3Rpb24ocmFuZ2UsIGNvbnRleHQubW9kZSwgKnZh
bHVlcywgaXNBdXRvUmVwZWF0LCBhbGxUcmFja3NBcmVGaXhlZFNpemVkKSkKICAgICAgICAgICAg
ICAgICByZXR1cm4gbnVsbHB0cjsKICAgICAgICAgICAgIGlmIChpc0F1dG9SZXBlYXQgJiYgc2Vl
bkF1dG9SZXBlYXQpCiAgICAgICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgICAgICAg
ICBzZWVuQXV0b1JlcGVhdCA9IHNlZW5BdXRvUmVwZWF0IHx8IGlzQXV0b1JlcGVhdDsKLSAgICAg
ICAgfSBlbHNlIGlmIChSZWZQdHI8Q1NTVmFsdWU+IHZhbHVlID0gY29uc3VtZUdyaWRUcmFja1Np
emUocmFuZ2UsIGNzc1BhcnNlck1vZGUpKSB7CisgICAgICAgIH0gZWxzZSBpZiAoUmVmUHRyPENT
U1ZhbHVlPiB2YWx1ZSA9IGNvbnN1bWVHcmlkVHJhY2tTaXplKHJhbmdlLCBjb250ZXh0Lm1vZGUp
KSB7CiAgICAgICAgICAgICBpZiAoYWxsVHJhY2tzQXJlRml4ZWRTaXplZCkKICAgICAgICAgICAg
ICAgICBhbGxUcmFja3NBcmVGaXhlZFNpemVkID0gaXNHcmlkVHJhY2tGaXhlZFNpemVkKCp2YWx1
ZSk7CiAgICAgICAgICAgICB2YWx1ZXMtPmFwcGVuZCh2YWx1ZS5yZWxlYXNlTm9uTnVsbCgpKTsK
QEAgLTM3MTgsMTEgKzM3NjcsMTEgQEAgc3RhdGljIFJlZlB0cjxDU1NWYWx1ZT4gY29uc3VtZUdy
aWRUcmFja0xpc3QoQ1NTUGFyc2VyVG9rZW5SYW5nZSYgcmFuZ2UsIENTU1BhcnMKICAgICByZXR1
cm4gdmFsdWVzOwogfQogCi1zdGF0aWMgUmVmUHRyPENTU1ZhbHVlPiBjb25zdW1lR3JpZFRlbXBs
YXRlc1Jvd3NPckNvbHVtbnMoQ1NTUGFyc2VyVG9rZW5SYW5nZSYgcmFuZ2UsIENTU1BhcnNlck1v
ZGUgY3NzUGFyc2VyTW9kZSkKK3N0YXRpYyBSZWZQdHI8Q1NTVmFsdWU+IGNvbnN1bWVHcmlkVGVt
cGxhdGVzUm93c09yQ29sdW1ucyhDU1NQYXJzZXJUb2tlblJhbmdlJiByYW5nZSwgY29uc3QgQ1NT
UGFyc2VyQ29udGV4dCYgY29udGV4dCkKIHsKICAgICBpZiAocmFuZ2UucGVlaygpLmlkKCkgPT0g
Q1NTVmFsdWVOb25lKQogICAgICAgICByZXR1cm4gY29uc3VtZUlkZW50KHJhbmdlKTsKLSAgICBy
ZXR1cm4gY29uc3VtZUdyaWRUcmFja0xpc3QocmFuZ2UsIGNzc1BhcnNlck1vZGUsIEdyaWRUZW1w
bGF0ZSk7CisgICAgcmV0dXJuIGNvbnN1bWVHcmlkVHJhY2tMaXN0KHJhbmdlLCBjb250ZXh0LCBH
cmlkVGVtcGxhdGUpOwogfQogCiBzdGF0aWMgUmVmUHRyPENTU1ZhbHVlPiBjb25zdW1lR3JpZFRl
bXBsYXRlQXJlYXMoQ1NTUGFyc2VyVG9rZW5SYW5nZSYgcmFuZ2UpCkBAIC00NjI5LDEwICs0Njc4
LDEwIEBAIFJlZlB0cjxDU1NWYWx1ZT4gQ1NTUHJvcGVydHlQYXJzZXI6OnBhcnNlU2luZ2xlVmFs
dWUoQ1NTUHJvcGVydHlJRCBwcm9wZXJ0eSwgQ1NTCiAgICAgICAgIHJldHVybiBjb25zdW1lR3Jp
ZExpbmUobV9yYW5nZSk7CiAgICAgY2FzZSBDU1NQcm9wZXJ0eUdyaWRBdXRvQ29sdW1uczoKICAg
ICBjYXNlIENTU1Byb3BlcnR5R3JpZEF1dG9Sb3dzOgotICAgICAgICByZXR1cm4gY29uc3VtZUdy
aWRUcmFja0xpc3QobV9yYW5nZSwgbV9jb250ZXh0Lm1vZGUsIEdyaWRBdXRvKTsKKyAgICAgICAg
cmV0dXJuIGNvbnN1bWVHcmlkVHJhY2tMaXN0KG1fcmFuZ2UsIG1fY29udGV4dCwgR3JpZEF1dG8p
OwogICAgIGNhc2UgQ1NTUHJvcGVydHlHcmlkVGVtcGxhdGVDb2x1bW5zOgogICAgIGNhc2UgQ1NT
UHJvcGVydHlHcmlkVGVtcGxhdGVSb3dzOgotICAgICAgICByZXR1cm4gY29uc3VtZUdyaWRUZW1w
bGF0ZXNSb3dzT3JDb2x1bW5zKG1fcmFuZ2UsIG1fY29udGV4dC5tb2RlKTsKKyAgICAgICAgcmV0
dXJuIGNvbnN1bWVHcmlkVGVtcGxhdGVzUm93c09yQ29sdW1ucyhtX3JhbmdlLCBtX2NvbnRleHQp
OwogICAgIGNhc2UgQ1NTUHJvcGVydHlHcmlkVGVtcGxhdGVBcmVhczoKICAgICAgICAgcmV0dXJu
IGNvbnN1bWVHcmlkVGVtcGxhdGVBcmVhcyhtX3JhbmdlKTsKICAgICBjYXNlIENTU1Byb3BlcnR5
R3JpZEF1dG9GbG93OgpAQCAtNTg3OSw3ICs1OTI4LDcgQEAgYm9vbCBDU1NQcm9wZXJ0eVBhcnNl
cjo6Y29uc3VtZUdyaWRUZW1wbGF0ZVJvd3NBbmRBcmVhc0FuZENvbHVtbnMoQ1NTUHJvcGVydHlJ
RAogICAgIGlmICghbV9yYW5nZS5hdEVuZCgpKSB7CiAgICAgICAgIGlmICghY29uc3VtZVNsYXNo
SW5jbHVkaW5nV2hpdGVzcGFjZShtX3JhbmdlKSkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsK
LSAgICAgICAgY29sdW1uc1ZhbHVlID0gY29uc3VtZUdyaWRUcmFja0xpc3QobV9yYW5nZSwgbV9j
b250ZXh0Lm1vZGUsIEdyaWRUZW1wbGF0ZU5vUmVwZWF0KTsKKyAgICAgICAgY29sdW1uc1ZhbHVl
ID0gY29uc3VtZUdyaWRUcmFja0xpc3QobV9yYW5nZSwgbV9jb250ZXh0LCBHcmlkVGVtcGxhdGVO
b1JlcGVhdCk7CiAgICAgICAgIGlmICghY29sdW1uc1ZhbHVlIHx8ICFtX3JhbmdlLmF0RW5kKCkp
CiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfSBlbHNlIHsKQEAgLTU5MDYsMTIgKzU5
NTUsMTIgQEAgYm9vbCBDU1NQcm9wZXJ0eVBhcnNlcjo6Y29uc3VtZUdyaWRUZW1wbGF0ZVNob3J0
aGFuZChDU1NQcm9wZXJ0eUlEIHNob3J0aGFuZElkLAogCiAgICAgLy8gMi0gPGdyaWQtdGVtcGxh
dGUtcm93cz4gLyA8Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zPgogICAgIGlmICghcm93c1ZhbHVlKQot
ICAgICAgICByb3dzVmFsdWUgPSBjb25zdW1lR3JpZFRyYWNrTGlzdChtX3JhbmdlLCBtX2NvbnRl
eHQubW9kZSwgR3JpZFRlbXBsYXRlKTsKKyAgICAgICAgcm93c1ZhbHVlID0gY29uc3VtZUdyaWRU
cmFja0xpc3QobV9yYW5nZSwgbV9jb250ZXh0LCBHcmlkVGVtcGxhdGUpOwogCiAgICAgaWYgKHJv
d3NWYWx1ZSkgewogICAgICAgICBpZiAoIWNvbnN1bWVTbGFzaEluY2x1ZGluZ1doaXRlc3BhY2Uo
bV9yYW5nZSkpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgIFJlZlB0cjxDU1NW
YWx1ZT4gY29sdW1uc1ZhbHVlID0gY29uc3VtZUdyaWRUZW1wbGF0ZXNSb3dzT3JDb2x1bW5zKG1f
cmFuZ2UsIG1fY29udGV4dC5tb2RlKTsKKyAgICAgICAgUmVmUHRyPENTU1ZhbHVlPiBjb2x1bW5z
VmFsdWUgPSBjb25zdW1lR3JpZFRlbXBsYXRlc1Jvd3NPckNvbHVtbnMobV9yYW5nZSwgbV9jb250
ZXh0KTsKICAgICAgICAgaWYgKCFjb2x1bW5zVmFsdWUgfHwgIW1fcmFuZ2UuYXRFbmQoKSkKICAg
ICAgICAgICAgIHJldHVybiBmYWxzZTsKIApAQCAtNTk4NSw3ICs2MDM0LDcgQEAgYm9vbCBDU1NQ
cm9wZXJ0eVBhcnNlcjo6Y29uc3VtZUdyaWRTaG9ydGhhbmQoYm9vbCBpbXBvcnRhbnQpCiAgICAg
ICAgIGlmIChjb25zdW1lU2xhc2hJbmNsdWRpbmdXaGl0ZXNwYWNlKG1fcmFuZ2UpKQogICAgICAg
ICAgICAgYXV0b1Jvd3NWYWx1ZSA9IENTU1ZhbHVlUG9vbDo6c2luZ2xldG9uKCkuY3JlYXRlSWRl
bnRpZmllclZhbHVlKENTU1ZhbHVlQXV0byk7CiAgICAgICAgIGVsc2UgewotICAgICAgICAgICAg
YXV0b1Jvd3NWYWx1ZSA9IGNvbnN1bWVHcmlkVHJhY2tMaXN0KG1fcmFuZ2UsIG1fY29udGV4dC5t
b2RlLCBHcmlkQXV0byk7CisgICAgICAgICAgICBhdXRvUm93c1ZhbHVlID0gY29uc3VtZUdyaWRU
cmFja0xpc3QobV9yYW5nZSwgbV9jb250ZXh0LCBHcmlkQXV0byk7CiAgICAgICAgICAgICBpZiAo
IWF1dG9Sb3dzVmFsdWUpCiAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICAg
ICAgaWYgKCFjb25zdW1lU2xhc2hJbmNsdWRpbmdXaGl0ZXNwYWNlKG1fcmFuZ2UpKQpAQCAtNTk5
Myw3ICs2MDQyLDcgQEAgYm9vbCBDU1NQcm9wZXJ0eVBhcnNlcjo6Y29uc3VtZUdyaWRTaG9ydGhh
bmQoYm9vbCBpbXBvcnRhbnQpCiAgICAgICAgIH0KICAgICAgICAgaWYgKG1fcmFuZ2UuYXRFbmQo
KSkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgdGVtcGxhdGVDb2x1bW5zID0g
Y29uc3VtZUdyaWRUZW1wbGF0ZXNSb3dzT3JDb2x1bW5zKG1fcmFuZ2UsIG1fY29udGV4dC5tb2Rl
KTsKKyAgICAgICAgdGVtcGxhdGVDb2x1bW5zID0gY29uc3VtZUdyaWRUZW1wbGF0ZXNSb3dzT3JD
b2x1bW5zKG1fcmFuZ2UsIG1fY29udGV4dCk7CiAgICAgICAgIGlmICghdGVtcGxhdGVDb2x1bW5z
KQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICB0ZW1wbGF0ZVJvd3MgPSBDU1NW
YWx1ZVBvb2w6OnNpbmdsZXRvbigpLmNyZWF0ZUlkZW50aWZpZXJWYWx1ZShDU1NWYWx1ZU5vbmUp
OwpAQCAtNjAxMSw3ICs2MDYwLDcgQEAgYm9vbCBDU1NQcm9wZXJ0eVBhcnNlcjo6Y29uc3VtZUdy
aWRTaG9ydGhhbmQoYm9vbCBpbXBvcnRhbnQpCiAgICAgICAgIGlmIChtX3JhbmdlLmF0RW5kKCkp
CiAgICAgICAgICAgICBhdXRvQ29sdW1uc1ZhbHVlID0gQ1NTVmFsdWVQb29sOjpzaW5nbGV0b24o
KS5jcmVhdGVJZGVudGlmaWVyVmFsdWUoQ1NTVmFsdWVBdXRvKTsKICAgICAgICAgZWxzZSB7Ci0g
ICAgICAgICAgICBhdXRvQ29sdW1uc1ZhbHVlID0gY29uc3VtZUdyaWRUcmFja0xpc3QobV9yYW5n
ZSwgbV9jb250ZXh0Lm1vZGUsIEdyaWRBdXRvKTsKKyAgICAgICAgICAgIGF1dG9Db2x1bW5zVmFs
dWUgPSBjb25zdW1lR3JpZFRyYWNrTGlzdChtX3JhbmdlLCBtX2NvbnRleHQsIEdyaWRBdXRvKTsK
ICAgICAgICAgICAgIGlmICghYXV0b0NvbHVtbnNWYWx1ZSkKICAgICAgICAgICAgICAgICByZXR1
cm4gZmFsc2U7CiAgICAgICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9HcmlkLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9HcmlkLmNwcAppbmRleCA1NjAy
ZDdjMmQ0ZDUuLjM3Y2E5M2YwM2E3MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL0dyaWQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9HcmlkLmNwcApAQCAt
NjEsMTcgKzYxLDI0IEBAIHZvaWQgR3JpZDo6ZW5zdXJlR3JpZFNpemUodW5zaWduZWQgbWF4aW11
bVJvd1NpemUsIHVuc2lnbmVkIG1heGltdW1Db2x1bW5TaXplKQogICAgIH0KIH0KIAotdm9pZCBH
cmlkOjppbnNlcnQoUmVuZGVyQm94JiBjaGlsZCwgY29uc3QgR3JpZEFyZWEmIGFyZWEpCitHcmlk
QXJlYSBHcmlkOjppbnNlcnQoUmVuZGVyQm94JiBjaGlsZCwgY29uc3QgR3JpZEFyZWEmIGFyZWEp
CiB7Ci0gICAgQVNTRVJUKGFyZWEucm93cy5pc1RyYW5zbGF0ZWREZWZpbml0ZSgpICYmIGFyZWEu
Y29sdW1ucy5pc1RyYW5zbGF0ZWREZWZpbml0ZSgpKTsKLSAgICBlbnN1cmVHcmlkU2l6ZShhcmVh
LnJvd3MuZW5kTGluZSgpLCBhcmVhLmNvbHVtbnMuZW5kTGluZSgpKTsKKyAgICBHcmlkQXJlYSBj
bGFtcGVkID0gYXJlYTsKKyAgICBpZiAobV9tYXhSb3dzKQorICAgICAgICBjbGFtcGVkLnJvd3Mu
Y2xhbXAobV9tYXhSb3dzKTsKKyAgICBpZiAobV9tYXhDb2x1bW5zKQorICAgICAgICBjbGFtcGVk
LmNvbHVtbnMuY2xhbXAobV9tYXhDb2x1bW5zKTsKIAotICAgIGZvciAoYXV0byByb3cgOiBhcmVh
LnJvd3MpIHsKLSAgICAgICAgZm9yIChhdXRvIGNvbHVtbiA6IGFyZWEuY29sdW1ucykKKyAgICBB
U1NFUlQoY2xhbXBlZC5yb3dzLmlzVHJhbnNsYXRlZERlZmluaXRlKCkgJiYgY2xhbXBlZC5jb2x1
bW5zLmlzVHJhbnNsYXRlZERlZmluaXRlKCkpOworICAgIGVuc3VyZUdyaWRTaXplKGNsYW1wZWQu
cm93cy5lbmRMaW5lKCksIGNsYW1wZWQuY29sdW1ucy5lbmRMaW5lKCkpOworCisgICAgZm9yIChh
dXRvIHJvdyA6IGNsYW1wZWQucm93cykgeworICAgICAgICBmb3IgKGF1dG8gY29sdW1uIDogY2xh
bXBlZC5jb2x1bW5zKQogICAgICAgICAgICAgbV9ncmlkW3Jvd11bY29sdW1uXS5hcHBlbmQoY2hp
bGQpOwogICAgIH0KIAotICAgIHNldEdyaWRJdGVtQXJlYShjaGlsZCwgYXJlYSk7CisgICAgc2V0
R3JpZEl0ZW1BcmVhKGNoaWxkLCBjbGFtcGVkKTsKKyAgICByZXR1cm4gY2xhbXBlZDsKIH0KIAog
dm9pZCBHcmlkOjpzZXRFeHBsaWNpdEdyaWRTdGFydCh1bnNpZ25lZCByb3dTdGFydCwgdW5zaWdu
ZWQgY29sdW1uU3RhcnQpCkBAIC04NSw2ICs5MiwyNiBAQCB1bnNpZ25lZCBHcmlkOjpleHBsaWNp
dEdyaWRTdGFydChHcmlkVHJhY2tTaXppbmdEaXJlY3Rpb24gZGlyZWN0aW9uKSBjb25zdAogICAg
IHJldHVybiBkaXJlY3Rpb24gPT0gRm9yUm93cyA/IG1fZXhwbGljaXRSb3dTdGFydCA6IG1fZXhw
bGljaXRDb2x1bW5TdGFydDsKIH0KIAordm9pZCBHcmlkOjpzZXRDbGFtcGluZ0ZvclN1YmdyaWQo
dW5zaWduZWQgbWF4Um93cywgdW5zaWduZWQgbWF4Q29sdW1ucykKK3sKKyAgICBtX21heFJvd3Mg
PSBtYXhSb3dzOworICAgIG1fbWF4Q29sdW1ucyA9IG1heENvbHVtbnM7Cit9CisKK3ZvaWQgR3Jp
ZDo6Y2xhbXBBbmRUcmFuc2xhdGVUb0ltcGxpY2l0R3JpZChHcmlkQXJlYSYgYXJlYSkKK3sKKyAg
ICBpZiAoIWFyZWEucm93cy5pc0luZGVmaW5pdGUoKSkgeworICAgICAgICBpZiAobV9tYXhSb3dz
KQorICAgICAgICAgICAgYXJlYS5yb3dzLmNsYW1wKG1fbWF4Um93cyk7CisgICAgICAgIGFyZWEu
cm93cy50cmFuc2xhdGUoZXhwbGljaXRHcmlkU3RhcnQoRm9yUm93cykpOworICAgIH0KKyAgICBp
ZiAoIWFyZWEuY29sdW1ucy5pc0luZGVmaW5pdGUoKSkgeworICAgICAgICBpZiAobV9tYXhDb2x1
bW5zKQorICAgICAgICAgICAgYXJlYS5jb2x1bW5zLmNsYW1wKG1fbWF4Q29sdW1ucyk7CisgICAg
ICAgIGFyZWEuY29sdW1ucy50cmFuc2xhdGUoZXhwbGljaXRHcmlkU3RhcnQoRm9yQ29sdW1ucykp
OworICAgIH0KK30KKwogR3JpZEFyZWEgR3JpZDo6Z3JpZEl0ZW1BcmVhKGNvbnN0IFJlbmRlckJv
eCYgaXRlbSkgY29uc3QKIHsKICAgICBBU1NFUlQobV9ncmlkSXRlbUFyZWEuY29udGFpbnMoJml0
ZW0pKTsKQEAgLTE2MSw2ICsxODgsOCBAQCB2b2lkIEdyaWQ6OnNldE5lZWRzSXRlbXNQbGFjZW1l
bnQoYm9vbCBuZWVkc0l0ZW1zUGxhY2VtZW50KQogICAgIG1fYXV0b1JlcGVhdEVtcHR5Um93cyA9
IG51bGxwdHI7CiAgICAgbV9hdXRvUmVwZWF0Q29sdW1ucyA9IDA7CiAgICAgbV9hdXRvUmVwZWF0
Um93cyA9IDA7CisgICAgbV9tYXhDb2x1bW5zID0gMDsKKyAgICBtX21heFJvd3MgPSAwOwogfQog
CiBHcmlkSXRlcmF0b3I6OkdyaWRJdGVyYXRvcihjb25zdCBHcmlkJiBncmlkLCBHcmlkVHJhY2tT
aXppbmdEaXJlY3Rpb24gZGlyZWN0aW9uLCB1bnNpZ25lZCBmaXhlZFRyYWNrSW5kZXgsIHVuc2ln
bmVkIHZhcnlpbmdUcmFja0luZGV4KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL0dyaWQuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9HcmlkLmgKaW5kZXggNzJjYWRm
NjhlZjRkLi4xMWQ5ZTY4ZmI4MTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9HcmlkLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0dyaWQuaApAQCAtNDgsNyAr
NDgsNyBAQCBwdWJsaWM6CiAgICAgdW5zaWduZWQgbnVtVHJhY2tzKEdyaWRUcmFja1NpemluZ0Rp
cmVjdGlvbikgY29uc3Q7CiAKICAgICB2b2lkIGVuc3VyZUdyaWRTaXplKHVuc2lnbmVkIG1heGlt
dW1Sb3dTaXplLCB1bnNpZ25lZCBtYXhpbXVtQ29sdW1uU2l6ZSk7Ci0gICAgdm9pZCBpbnNlcnQo
UmVuZGVyQm94JiwgY29uc3QgR3JpZEFyZWEmKTsKKyAgICBHcmlkQXJlYSBpbnNlcnQoUmVuZGVy
Qm94JiwgY29uc3QgR3JpZEFyZWEmKTsKIAogICAgIC8vIE5vdGUgdGhhdCBlYWNoIGluIGZsb3cg
Y2hpbGQgb2YgYSBncmlkIGNvbnRhaW5lciBiZWNvbWVzIGEgZ3JpZCBpdGVtLiBUaGlzIG1lYW5z
IHRoYXQKICAgICAvLyB0aGlzIG1ldGhvZCB3aWxsIHJldHVybiBmYWxzZSBmb3IgYSBncmlkIGNv
bnRhaW5lciB3aXRoIG9ubHkgb3V0IG9mIGZsb3cgY2hpbGRyZW4uCkBAIC02Nyw2ICs2NywxMCBA
QCBwdWJsaWM6CiAgICAgdW5zaWduZWQgYXV0b1JlcGVhdFRyYWNrcyhHcmlkVHJhY2tTaXppbmdE
aXJlY3Rpb24pIGNvbnN0OwogICAgIHZvaWQgc2V0QXV0b1JlcGVhdFRyYWNrcyh1bnNpZ25lZCBh
dXRvUmVwZWF0Um93cywgdW5zaWduZWQgYXV0b1JlcGVhdENvbHVtbnMpOwogCisgICAgdm9pZCBz
ZXRDbGFtcGluZ0ZvclN1YmdyaWQodW5zaWduZWQgbWF4Um93cywgdW5zaWduZWQgbWF4Q29sdW1u
cyk7CisKKyAgICB2b2lkIGNsYW1wQW5kVHJhbnNsYXRlVG9JbXBsaWNpdEdyaWQoR3JpZEFyZWEm
KTsKKwogICAgIHZvaWQgc2V0QXV0b1JlcGVhdEVtcHR5Q29sdW1ucyhzdGQ6OnVuaXF1ZV9wdHI8
T3JkZXJlZFRyYWNrSW5kZXhTZXQ+KTsKICAgICB2b2lkIHNldEF1dG9SZXBlYXRFbXB0eVJvd3Mo
c3RkOjp1bmlxdWVfcHRyPE9yZGVyZWRUcmFja0luZGV4U2V0Pik7CiAKQEAgLTkyLDYgKzk2LDkg
QEAgcHJpdmF0ZToKICAgICB1bnNpZ25lZCBtX2F1dG9SZXBlYXRDb2x1bW5zIHsgMCB9OwogICAg
IHVuc2lnbmVkIG1fYXV0b1JlcGVhdFJvd3MgeyAwIH07CiAKKyAgICB1bnNpZ25lZCBtX21heENv
bHVtbnMgeyAwIH07CisgICAgdW5zaWduZWQgbV9tYXhSb3dzIHsgMCB9OworCiAgICAgYm9vbCBt
X25lZWRzSXRlbXNQbGFjZW1lbnQgeyB0cnVlIH07CiAKICAgICBHcmlkQXNNYXRyaXggbV9ncmlk
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckdyaWQuY3BwIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckdyaWQuY3BwCmluZGV4IDI2ZjhmY2JjMGFi
Mi4uMmU5NzZkYjNhODg1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyR3JpZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckdyaWQuY3Bw
CkBAIC00MzAsOCArNDMwLDcgQEAgdm9pZCBSZW5kZXJHcmlkOjpjb21wdXRlSW50cmluc2ljTG9n
aWNhbFdpZHRocyhMYXlvdXRVbml0JiBtaW5Mb2dpY2FsV2lkdGgsIExheW8KICAgICBMYXlvdXRV
bml0IGNoaWxkTWF4V2lkdGg7CiAgICAgYm9vbCBoYWRFeGNsdWRlZENoaWxkcmVuID0gY29tcHV0
ZVByZWZlcnJlZFdpZHRoc0ZvckV4Y2x1ZGVkQ2hpbGRyZW4oY2hpbGRNaW5XaWR0aCwgY2hpbGRN
YXhXaWR0aCk7CiAKLSAgICBHcmlkIGdyaWQoY29uc3RfY2FzdDxSZW5kZXJHcmlkJj4oKnRoaXMp
KTsKLSAgICBHcmlkVHJhY2tTaXppbmdBbGdvcml0aG0gYWxnb3JpdGhtKHRoaXMsIGdyaWQpOwor
ICAgIEdyaWRUcmFja1NpemluZ0FsZ29yaXRobSBhbGdvcml0aG0odGhpcywgY29uc3RfY2FzdDxH
cmlkJj4obV9ncmlkKSk7CiAgICAgcGxhY2VJdGVtc09uR3JpZChhbGdvcml0aG0sIHN0ZDo6bnVs
bG9wdCk7CiAKICAgICBwZXJmb3JtR3JpZEl0ZW1zUHJlTGF5b3V0KGFsZ29yaXRobSk7CkBAIC00
ODAsNiArNDc5LDkgQEAgdW5zaWduZWQgUmVuZGVyR3JpZDo6Y29tcHV0ZUF1dG9SZXBlYXRUcmFj
a3NDb3VudChHcmlkVHJhY2tTaXppbmdEaXJlY3Rpb24gZGlyZWMKIHsKICAgICBBU1NFUlQoIWF2
YWlsYWJsZVNpemUgfHwgYXZhaWxhYmxlU2l6ZS52YWx1ZSgpICE9IC0xKTsKICAgICBib29sIGlz
Um93QXhpcyA9IGRpcmVjdGlvbiA9PSBGb3JDb2x1bW5zOworICAgIGlmIChpc1Jvd0F4aXMgPyBp
c1N1YmdyaWRDb2x1bW5zKCkgOiBpc1N1YmdyaWRSb3dzKCkpCisgICAgICAgIHJldHVybiAwOwor
CiAgICAgY29uc3QgYXV0byYgYXV0b1JlcGVhdFRyYWNrcyA9IGlzUm93QXhpcyA/IHN0eWxlKCku
Z3JpZEF1dG9SZXBlYXRDb2x1bW5zKCkgOiBzdHlsZSgpLmdyaWRBdXRvUmVwZWF0Um93cygpOwog
ICAgIHVuc2lnbmVkIGF1dG9SZXBlYXRUcmFja0xpc3RMZW5ndGggPSBhdXRvUmVwZWF0VHJhY2tz
LnNpemUoKTsKIApAQCAtNjI1LDcgKzYyNyw2IEBAIHZvaWQgUmVuZGVyR3JpZDo6cGxhY2VJdGVt
c09uR3JpZChHcmlkVHJhY2tTaXppbmdBbGdvcml0aG0mIGFsZ29yaXRobSwgc3RkOjpvcHRpCiAg
ICAgR3JpZCYgZ3JpZCA9IGFsZ29yaXRobS5tdXRhYmxlR3JpZCgpOwogICAgIHVuc2lnbmVkIGF1
dG9SZXBlYXRDb2x1bW5zID0gY29tcHV0ZUF1dG9SZXBlYXRUcmFja3NDb3VudChGb3JDb2x1bW5z
LCBhdmFpbGFibGVMb2dpY2FsV2lkdGgpOwogICAgIHVuc2lnbmVkIGF1dG9SZXBlYXRSb3dzID0g
Y29tcHV0ZUF1dG9SZXBlYXRUcmFja3NDb3VudChGb3JSb3dzLCBhdmFpbGFibGVMb2dpY2FsSGVp
Z2h0Rm9yUGVyY2VudGFnZUNvbXB1dGF0aW9uKCkpOwotCiAgICAgYXV0b1JlcGVhdFJvd3MgPSBj
bGFtcEF1dG9SZXBlYXRUcmFja3MoRm9yUm93cywgYXV0b1JlcGVhdFJvd3MpOwogICAgIGF1dG9S
ZXBlYXRDb2x1bW5zID0gY2xhbXBBdXRvUmVwZWF0VHJhY2tzKEZvckNvbHVtbnMsIGF1dG9SZXBl
YXRDb2x1bW5zKTsKIApAQCAtNjU0LDEwICs2NTUsNyBAQCB2b2lkIFJlbmRlckdyaWQ6OnBsYWNl
SXRlbXNPbkdyaWQoR3JpZFRyYWNrU2l6aW5nQWxnb3JpdGhtJiBhbGdvcml0aG0sIHN0ZDo6b3B0
aQogICAgICAgICAgICAgY2hpbGQtPnNldE92ZXJyaWRpbmdDb250YWluaW5nQmxvY2tDb250ZW50
TG9naWNhbEhlaWdodChzdGQ6Om51bGxvcHQpOwogCiAgICAgICAgIEdyaWRBcmVhIGFyZWEgPSBn
cmlkLmdyaWRJdGVtQXJlYSgqY2hpbGQpOwotICAgICAgICBpZiAoIWFyZWEucm93cy5pc0luZGVm
aW5pdGUoKSkKLSAgICAgICAgICAgIGFyZWEucm93cy50cmFuc2xhdGUoZ3JpZC5leHBsaWNpdEdy
aWRTdGFydChGb3JSb3dzKSk7Ci0gICAgICAgIGlmICghYXJlYS5jb2x1bW5zLmlzSW5kZWZpbml0
ZSgpKQotICAgICAgICAgICAgYXJlYS5jb2x1bW5zLnRyYW5zbGF0ZShncmlkLmV4cGxpY2l0R3Jp
ZFN0YXJ0KEZvckNvbHVtbnMpKTsKKyAgICAgICAgZ3JpZC5jbGFtcEFuZFRyYW5zbGF0ZVRvSW1w
bGljaXRHcmlkKGFyZWEpOwogCiAgICAgICAgIGlmIChhcmVhLnJvd3MuaXNJbmRlZmluaXRlKCkg
fHwgYXJlYS5jb2x1bW5zLmlzSW5kZWZpbml0ZSgpKSB7CiAgICAgICAgICAgICBncmlkLnNldEdy
aWRJdGVtQXJlYSgqY2hpbGQsIGFyZWEpOwpAQCAtNjc0LDggKzY3Miw4IEBAIHZvaWQgUmVuZGVy
R3JpZDo6cGxhY2VJdGVtc09uR3JpZChHcmlkVHJhY2tTaXppbmdBbGdvcml0aG0mIGFsZ29yaXRo
bSwgc3RkOjpvcHRpCiAKICNpZiBBU1NFUlRfRU5BQkxFRAogICAgIGlmIChncmlkLmhhc0dyaWRJ
dGVtcygpKSB7Ci0gICAgICAgIEFTU0VSVChncmlkLm51bVRyYWNrcyhGb3JSb3dzKSA+PSBHcmlk
UG9zaXRpb25zUmVzb2x2ZXI6OmV4cGxpY2l0R3JpZFJvd0NvdW50KHN0eWxlKCksIGdyaWQuYXV0
b1JlcGVhdFRyYWNrcyhGb3JSb3dzKSkpOwotICAgICAgICBBU1NFUlQoZ3JpZC5udW1UcmFja3Mo
Rm9yQ29sdW1ucykgPj0gR3JpZFBvc2l0aW9uc1Jlc29sdmVyOjpleHBsaWNpdEdyaWRDb2x1bW5D
b3VudChzdHlsZSgpLCBncmlkLmF1dG9SZXBlYXRUcmFja3MoRm9yQ29sdW1ucykpKTsKKyAgICAg
ICAgQVNTRVJUKGdyaWQubnVtVHJhY2tzKEZvclJvd3MpID49IEdyaWRQb3NpdGlvbnNSZXNvbHZl
cjo6ZXhwbGljaXRHcmlkUm93Q291bnQoKnRoaXMpKTsKKyAgICAgICAgQVNTRVJUKGdyaWQubnVt
VHJhY2tzKEZvckNvbHVtbnMpID49IEdyaWRQb3NpdGlvbnNSZXNvbHZlcjo6ZXhwbGljaXRHcmlk
Q29sdW1uQ291bnQoKnRoaXMpKTsKICAgICB9CiAjZW5kaWYKIApAQCAtNzI5LDMzICs3MjcsMzUg
QEAgdm9pZCBSZW5kZXJHcmlkOjpwb3B1bGF0ZUV4cGxpY2l0R3JpZEFuZE9yZGVySXRlcmF0b3Io
R3JpZCYgZ3JpZCkgY29uc3QKICAgICBPcmRlckl0ZXJhdG9yUG9wdWxhdG9yIHBvcHVsYXRvcihn
cmlkLm9yZGVySXRlcmF0b3IoKSk7CiAgICAgdW5zaWduZWQgZXhwbGljaXRSb3dTdGFydCA9IDA7
CiAgICAgdW5zaWduZWQgZXhwbGljaXRDb2x1bW5TdGFydCA9IDA7Ci0gICAgdW5zaWduZWQgYXV0
b1JlcGVhdFJvd3MgPSBncmlkLmF1dG9SZXBlYXRUcmFja3MoRm9yUm93cyk7Ci0gICAgdW5zaWdu
ZWQgYXV0b1JlcGVhdENvbHVtbnMgPSBncmlkLmF1dG9SZXBlYXRUcmFja3MoRm9yQ29sdW1ucyk7
Ci0gICAgdW5zaWduZWQgbWF4aW11bVJvd0luZGV4ID0gR3JpZFBvc2l0aW9uc1Jlc29sdmVyOjpl
eHBsaWNpdEdyaWRSb3dDb3VudChzdHlsZSgpLCBhdXRvUmVwZWF0Um93cyk7Ci0gICAgdW5zaWdu
ZWQgbWF4aW11bUNvbHVtbkluZGV4ID0gR3JpZFBvc2l0aW9uc1Jlc29sdmVyOjpleHBsaWNpdEdy
aWRDb2x1bW5Db3VudChzdHlsZSgpLCBhdXRvUmVwZWF0Q29sdW1ucyk7CisgICAgdW5zaWduZWQg
bWF4aW11bVJvd0luZGV4ID0gR3JpZFBvc2l0aW9uc1Jlc29sdmVyOjpleHBsaWNpdEdyaWRSb3dD
b3VudCgqdGhpcyk7CisgICAgdW5zaWduZWQgbWF4aW11bUNvbHVtbkluZGV4ID0gR3JpZFBvc2l0
aW9uc1Jlc29sdmVyOjpleHBsaWNpdEdyaWRDb2x1bW5Db3VudCgqdGhpcyk7CiAKICAgICBmb3Ig
KFJlbmRlckJveCogY2hpbGQgPSBmaXJzdENoaWxkQm94KCk7IGNoaWxkOyBjaGlsZCA9IGNoaWxk
LT5uZXh0U2libGluZ0JveCgpKSB7CiAgICAgICAgIGlmICghcG9wdWxhdG9yLmNvbGxlY3RDaGls
ZCgqY2hpbGQpKQogICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgIAotICAgICAgICBHcmlk
U3BhbiByb3dQb3NpdGlvbnMgPSBHcmlkUG9zaXRpb25zUmVzb2x2ZXI6OnJlc29sdmVHcmlkUG9z
aXRpb25zRnJvbVN0eWxlKHN0eWxlKCksICpjaGlsZCwgRm9yUm93cywgYXV0b1JlcGVhdFJvd3Mp
OwotICAgICAgICBpZiAoIXJvd1Bvc2l0aW9ucy5pc0luZGVmaW5pdGUoKSkgewotICAgICAgICAg
ICAgZXhwbGljaXRSb3dTdGFydCA9IHN0ZDo6bWF4PGludD4oZXhwbGljaXRSb3dTdGFydCwgLXJv
d1Bvc2l0aW9ucy51bnRyYW5zbGF0ZWRTdGFydExpbmUoKSk7Ci0gICAgICAgICAgICBtYXhpbXVt
Um93SW5kZXggPSBzdGQ6Om1heDxpbnQ+KG1heGltdW1Sb3dJbmRleCwgcm93UG9zaXRpb25zLnVu
dHJhbnNsYXRlZEVuZExpbmUoKSk7Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAvLyBH
cm93IHRoZSBncmlkIGZvciBpdGVtcyB3aXRoIGEgZGVmaW5pdGUgcm93IHNwYW4sIGdldHRpbmcg
dGhlIGxhcmdlc3Qgc3VjaCBzcGFuLgotICAgICAgICAgICAgdW5zaWduZWQgc3BhblNpemUgPSBH
cmlkUG9zaXRpb25zUmVzb2x2ZXI6OnNwYW5TaXplRm9yQXV0b1BsYWNlZEl0ZW0oKmNoaWxkLCBG
b3JSb3dzKTsKLSAgICAgICAgICAgIG1heGltdW1Sb3dJbmRleCA9IHN0ZDo6bWF4KG1heGltdW1S
b3dJbmRleCwgc3BhblNpemUpOworICAgICAgICBHcmlkU3BhbiByb3dQb3NpdGlvbnMgPSBHcmlk
UG9zaXRpb25zUmVzb2x2ZXI6OnJlc29sdmVHcmlkUG9zaXRpb25zRnJvbVN0eWxlKCpjaGlsZCwg
Rm9yUm93cyk7CisgICAgICAgIGlmICghaXNTdWJncmlkUm93cygpKSB7CisgICAgICAgICAgICBp
ZiAoIXJvd1Bvc2l0aW9ucy5pc0luZGVmaW5pdGUoKSkgeworICAgICAgICAgICAgICAgIGV4cGxp
Y2l0Um93U3RhcnQgPSBzdGQ6Om1heDxpbnQ+KGV4cGxpY2l0Um93U3RhcnQsIC1yb3dQb3NpdGlv
bnMudW50cmFuc2xhdGVkU3RhcnRMaW5lKCkpOworICAgICAgICAgICAgICAgIG1heGltdW1Sb3dJ
bmRleCA9IHN0ZDo6bWF4PGludD4obWF4aW11bVJvd0luZGV4LCByb3dQb3NpdGlvbnMudW50cmFu
c2xhdGVkRW5kTGluZSgpKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAg
Ly8gR3JvdyB0aGUgZ3JpZCBmb3IgaXRlbXMgd2l0aCBhIGRlZmluaXRlIHJvdyBzcGFuLCBnZXR0
aW5nIHRoZSBsYXJnZXN0IHN1Y2ggc3Bhbi4KKyAgICAgICAgICAgICAgICB1bnNpZ25lZCBzcGFu
U2l6ZSA9IEdyaWRQb3NpdGlvbnNSZXNvbHZlcjo6c3BhblNpemVGb3JBdXRvUGxhY2VkSXRlbSgq
Y2hpbGQsIEZvclJvd3MpOworICAgICAgICAgICAgICAgIG1heGltdW1Sb3dJbmRleCA9IHN0ZDo6
bWF4KG1heGltdW1Sb3dJbmRleCwgc3BhblNpemUpOworICAgICAgICAgICAgfQogICAgICAgICB9
CiAKLSAgICAgICAgR3JpZFNwYW4gY29sdW1uUG9zaXRpb25zID0gR3JpZFBvc2l0aW9uc1Jlc29s
dmVyOjpyZXNvbHZlR3JpZFBvc2l0aW9uc0Zyb21TdHlsZShzdHlsZSgpLCAqY2hpbGQsIEZvckNv
bHVtbnMsIGF1dG9SZXBlYXRDb2x1bW5zKTsKLSAgICAgICAgaWYgKCFjb2x1bW5Qb3NpdGlvbnMu
aXNJbmRlZmluaXRlKCkpIHsKLSAgICAgICAgICAgIGV4cGxpY2l0Q29sdW1uU3RhcnQgPSBzdGQ6
Om1heDxpbnQ+KGV4cGxpY2l0Q29sdW1uU3RhcnQsIC1jb2x1bW5Qb3NpdGlvbnMudW50cmFuc2xh
dGVkU3RhcnRMaW5lKCkpOwotICAgICAgICAgICAgbWF4aW11bUNvbHVtbkluZGV4ID0gc3RkOjpt
YXg8aW50PihtYXhpbXVtQ29sdW1uSW5kZXgsIGNvbHVtblBvc2l0aW9ucy51bnRyYW5zbGF0ZWRF
bmRMaW5lKCkpOwotICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgLy8gR3JvdyB0aGUgZ3Jp
ZCBmb3IgaXRlbXMgd2l0aCBhIGRlZmluaXRlIGNvbHVtbiBzcGFuLCBnZXR0aW5nIHRoZSBsYXJn
ZXN0IHN1Y2ggc3Bhbi4KLSAgICAgICAgICAgIHVuc2lnbmVkIHNwYW5TaXplID0gR3JpZFBvc2l0
aW9uc1Jlc29sdmVyOjpzcGFuU2l6ZUZvckF1dG9QbGFjZWRJdGVtKCpjaGlsZCwgRm9yQ29sdW1u
cyk7Ci0gICAgICAgICAgICBtYXhpbXVtQ29sdW1uSW5kZXggPSBzdGQ6Om1heChtYXhpbXVtQ29s
dW1uSW5kZXgsIHNwYW5TaXplKTsKKyAgICAgICAgR3JpZFNwYW4gY29sdW1uUG9zaXRpb25zID0g
R3JpZFBvc2l0aW9uc1Jlc29sdmVyOjpyZXNvbHZlR3JpZFBvc2l0aW9uc0Zyb21TdHlsZSgqY2hp
bGQsIEZvckNvbHVtbnMpOworICAgICAgICBpZiAoIWlzU3ViZ3JpZENvbHVtbnMoKSkgeworICAg
ICAgICAgICAgaWYgKCFjb2x1bW5Qb3NpdGlvbnMuaXNJbmRlZmluaXRlKCkpIHsKKyAgICAgICAg
ICAgICAgICBleHBsaWNpdENvbHVtblN0YXJ0ID0gc3RkOjptYXg8aW50PihleHBsaWNpdENvbHVt
blN0YXJ0LCAtY29sdW1uUG9zaXRpb25zLnVudHJhbnNsYXRlZFN0YXJ0TGluZSgpKTsKKyAgICAg
ICAgICAgICAgICBtYXhpbXVtQ29sdW1uSW5kZXggPSBzdGQ6Om1heDxpbnQ+KG1heGltdW1Db2x1
bW5JbmRleCwgY29sdW1uUG9zaXRpb25zLnVudHJhbnNsYXRlZEVuZExpbmUoKSk7CisgICAgICAg
ICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIC8vIEdyb3cgdGhlIGdyaWQgZm9yIGl0ZW1z
IHdpdGggYSBkZWZpbml0ZSBjb2x1bW4gc3BhbiwgZ2V0dGluZyB0aGUgbGFyZ2VzdCBzdWNoIHNw
YW4uCisgICAgICAgICAgICAgICAgdW5zaWduZWQgc3BhblNpemUgPSBHcmlkUG9zaXRpb25zUmVz
b2x2ZXI6OnNwYW5TaXplRm9yQXV0b1BsYWNlZEl0ZW0oKmNoaWxkLCBGb3JDb2x1bW5zKTsKKyAg
ICAgICAgICAgICAgICBtYXhpbXVtQ29sdW1uSW5kZXggPSBzdGQ6Om1heChtYXhpbXVtQ29sdW1u
SW5kZXgsIHNwYW5TaXplKTsKKyAgICAgICAgICAgIH0KICAgICAgICAgfQogCiAgICAgICAgIGdy
aWQuc2V0R3JpZEl0ZW1BcmVhKCpjaGlsZCwgeyByb3dQb3NpdGlvbnMsIGNvbHVtblBvc2l0aW9u
cyB9KTsKQEAgLTc2Myw2ICs3NjMsNyBAQCB2b2lkIFJlbmRlckdyaWQ6OnBvcHVsYXRlRXhwbGlj
aXRHcmlkQW5kT3JkZXJJdGVyYXRvcihHcmlkJiBncmlkKSBjb25zdAogCiAgICAgZ3JpZC5zZXRF
eHBsaWNpdEdyaWRTdGFydChleHBsaWNpdFJvd1N0YXJ0LCBleHBsaWNpdENvbHVtblN0YXJ0KTsK
ICAgICBncmlkLmVuc3VyZUdyaWRTaXplKG1heGltdW1Sb3dJbmRleCArIGV4cGxpY2l0Um93U3Rh
cnQsIG1heGltdW1Db2x1bW5JbmRleCArIGV4cGxpY2l0Q29sdW1uU3RhcnQpOworICAgIGdyaWQu
c2V0Q2xhbXBpbmdGb3JTdWJncmlkKGlzU3ViZ3JpZFJvd3MoKSA/IG1heGltdW1Sb3dJbmRleCA6
IDAsIGlzU3ViZ3JpZENvbHVtbnMoKSA/IG1heGltdW1Db2x1bW5JbmRleCA6IDApOwogfQogCiBz
dGQ6OnVuaXF1ZV9wdHI8R3JpZEFyZWE+IFJlbmRlckdyaWQ6OmNyZWF0ZUVtcHR5R3JpZEFyZWFB
dFNwZWNpZmllZFBvc2l0aW9uc091dHNpZGVHcmlkKEdyaWQmIGdyaWQsIGNvbnN0IFJlbmRlckJv
eCYgZ3JpZEl0ZW0sIEdyaWRUcmFja1NpemluZ0RpcmVjdGlvbiBzcGVjaWZpZWREaXJlY3Rpb24s
IGNvbnN0IEdyaWRTcGFuJiBzcGVjaWZpZWRQb3NpdGlvbnMpIGNvbnN0CkBAIC03OTYsNyArNzk3
LDcgQEAgdm9pZCBSZW5kZXJHcmlkOjpwbGFjZVNwZWNpZmllZE1ham9yQXhpc0l0ZW1zT25Hcmlk
KEdyaWQmIGdyaWQsIGNvbnN0IFZlY3RvcjxSZW4KICAgICAgICAgaWYgKCFlbXB0eUdyaWRBcmVh
KQogICAgICAgICAgICAgZW1wdHlHcmlkQXJlYSA9IGNyZWF0ZUVtcHR5R3JpZEFyZWFBdFNwZWNp
ZmllZFBvc2l0aW9uc091dHNpZGVHcmlkKGdyaWQsICphdXRvR3JpZEl0ZW0sIGF1dG9QbGFjZW1l
bnRNYWpvckF4aXNEaXJlY3Rpb24oKSwgbWFqb3JBeGlzUG9zaXRpb25zKTsKIAotICAgICAgICBn
cmlkLmluc2VydCgqYXV0b0dyaWRJdGVtLCAqZW1wdHlHcmlkQXJlYSk7CisgICAgICAgICplbXB0
eUdyaWRBcmVhID0gZ3JpZC5pbnNlcnQoKmF1dG9HcmlkSXRlbSwgKmVtcHR5R3JpZEFyZWEpOwog
CiAgICAgICAgIGlmICghaXNHcmlkQXV0b0Zsb3dEZW5zZSkKICAgICAgICAgICAgIG1pbm9yQXhp
c0N1cnNvcnMuc2V0KG1ham9yQXhpc0luaXRpYWxQb3NpdGlvbiwgaXNGb3JDb2x1bW5zID8gZW1w
dHlHcmlkQXJlYS0+cm93cy5zdGFydExpbmUoKSA6IGVtcHR5R3JpZEFyZWEtPmNvbHVtbnMuc3Rh
cnRMaW5lKCkpOwpAQCAtMTU5NCwxMSArMTU5NSwyOSBAQCBMYXlvdXRVbml0IFJlbmRlckdyaWQ6
OnJlc29sdmVBdXRvRW5kR3JpZFBvc2l0aW9uKEdyaWRUcmFja1NpemluZ0RpcmVjdGlvbiBkaXJl
YwogICAgIHJldHVybiBjbGllbnRMb2dpY2FsV2lkdGgoKTsKIH0KIAorYm9vbCBSZW5kZXJHcmlk
Ojppc1N1YmdyaWQoR3JpZFRyYWNrU2l6aW5nRGlyZWN0aW9uIGRpcmVjdGlvbikgY29uc3QKK3sK
KyAgICBpZiAoaXNPdXRPZkZsb3dQb3NpdGlvbmVkKCkgfHwgaXNFeGNsdWRlZEZyb21Ob3JtYWxM
YXlvdXQoKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIGlmICgoZGlyZWN0aW9uID09IEZv
ckNvbHVtbnMpID8gIXN0eWxlKCkuZ3JpZFN1YmdyaWRDb2x1bW5zKCkgOiAhc3R5bGUoKS5ncmlk
U3ViZ3JpZFJvd3MoKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIHJldHVybiBpczxSZW5k
ZXJHcmlkPihwYXJlbnQoKSk7Cit9CisKK2Jvb2wgUmVuZGVyR3JpZDo6aXNTdWJncmlkUm93cygp
IGNvbnN0Cit7CisgICAgcmV0dXJuIGlzU3ViZ3JpZChGb3JSb3dzKTsKK30KK2Jvb2wgUmVuZGVy
R3JpZDo6aXNTdWJncmlkQ29sdW1ucygpIGNvbnN0Cit7CisgICAgcmV0dXJuIGlzU3ViZ3JpZChG
b3JDb2x1bW5zKTsKK30KKwogTGF5b3V0VW5pdCBSZW5kZXJHcmlkOjpncmlkQXJlYUJyZWFkdGhG
b3JPdXRPZkZsb3dDaGlsZChjb25zdCBSZW5kZXJCb3gmIGNoaWxkLCBHcmlkVHJhY2tTaXppbmdE
aXJlY3Rpb24gZGlyZWN0aW9uKQogewogICAgIEFTU0VSVChjaGlsZC5pc091dE9mRmxvd1Bvc2l0
aW9uZWQoKSk7CiAgICAgYm9vbCBpc1Jvd0F4aXMgPSBkaXJlY3Rpb24gPT0gRm9yQ29sdW1uczsK
LSAgICBHcmlkU3BhbiBzcGFuID0gR3JpZFBvc2l0aW9uc1Jlc29sdmVyOjpyZXNvbHZlR3JpZFBv
c2l0aW9uc0Zyb21TdHlsZShzdHlsZSgpLCBjaGlsZCwgZGlyZWN0aW9uLCBhdXRvUmVwZWF0Q291
bnRGb3JEaXJlY3Rpb24oZGlyZWN0aW9uKSk7CisgICAgR3JpZFNwYW4gc3BhbiA9IEdyaWRQb3Np
dGlvbnNSZXNvbHZlcjo6cmVzb2x2ZUdyaWRQb3NpdGlvbnNGcm9tU3R5bGUoY2hpbGQsIGRpcmVj
dGlvbik7CiAgICAgaWYgKHNwYW4uaXNJbmRlZmluaXRlKCkpCiAgICAgICAgIHJldHVybiBpc1Jv
d0F4aXMgPyBjbGllbnRMb2dpY2FsV2lkdGgoKSA6IGNsaWVudExvZ2ljYWxIZWlnaHQoKTsKIApA
QCAtMTkwNCw3ICsxOTIzLDcgQEAgdW5zaWduZWQgUmVuZGVyR3JpZDo6bnVtVHJhY2tzKEdyaWRU
cmFja1NpemluZ0RpcmVjdGlvbiBkaXJlY3Rpb24sIGNvbnN0IEdyaWQmIGcKICAgICAgICAgcmV0
dXJuIGdyaWQubnVtVHJhY2tzKEZvclJvd3MpOwogCiAgICAgLy8gRklYTUU6IFRoaXMgc3RpbGwg
cmVxdWlyZXMga25vd2xlZGdlIGFib3V0IG1fZ3JpZCBpbnRlcm5hbHMuCi0gICAgcmV0dXJuIGdy
aWQubnVtVHJhY2tzKEZvclJvd3MpID8gZ3JpZC5udW1UcmFja3MoRm9yQ29sdW1ucykgOiBHcmlk
UG9zaXRpb25zUmVzb2x2ZXI6OmV4cGxpY2l0R3JpZENvbHVtbkNvdW50KHN0eWxlKCksIGdyaWQu
YXV0b1JlcGVhdFRyYWNrcyhGb3JDb2x1bW5zKSk7CisgICAgcmV0dXJuIGdyaWQubnVtVHJhY2tz
KEZvclJvd3MpID8gZ3JpZC5udW1UcmFja3MoRm9yQ29sdW1ucykgOiBHcmlkUG9zaXRpb25zUmVz
b2x2ZXI6OmV4cGxpY2l0R3JpZENvbHVtbkNvdW50KCp0aGlzKTsKIH0KIAogdm9pZCBSZW5kZXJH
cmlkOjpwYWludENoaWxkcmVuKFBhaW50SW5mbyYgcGFpbnRJbmZvLCBjb25zdCBMYXlvdXRQb2lu
dCYgcGFpbnRPZmZzZXQsIFBhaW50SW5mbyYgZm9yQ2hpbGQsIGJvb2wgdXNlUHJpbnRSZWN0KQpA
QCAtMTk2MSw0ICsxOTgwLDcxIEBAIGJvb2wgUmVuZGVyR3JpZDo6aGFzQXV0b1NpemVJblJvd0F4
aXMoY29uc3QgUmVuZGVyQm94JiBjaGlsZCkgY29uc3QKICAgICByZXR1cm4gaXNIb3Jpem9udGFs
V3JpdGluZ01vZGUoKSA/IGNoaWxkLnN0eWxlKCkud2lkdGgoKS5pc0F1dG8oKSA6IGNoaWxkLnN0
eWxlKCkuaGVpZ2h0KCkuaXNBdXRvKCk7CiB9CiAKK3N0YXRpYyBHcmlkVHJhY2tTaXppbmdEaXJl
Y3Rpb24gdHJhbnNwb3NlZERpcmVjdGlvbihHcmlkVHJhY2tTaXppbmdEaXJlY3Rpb24gZGlyZWN0
aW9uKQoreworICAgIGlmIChkaXJlY3Rpb24gPT0gRm9yQ29sdW1ucykKKyAgICAgICAgcmV0dXJu
IEZvclJvd3M7CisgICAgcmV0dXJuIEZvckNvbHVtbnM7Cit9CisKK2Jvb2wgUmVuZGVyR3JpZDo6
Y29tcHV0ZUdyaWRTcGFuRm9yT3V0T2ZGbG93Q2hpbGQoY29uc3QgUmVuZGVyQm94JiBjaGlsZCwg
R3JpZFRyYWNrU2l6aW5nRGlyZWN0aW9uIGRpcmVjdGlvbiwgaW50JiBzdGFydExpbmUsIGJvb2wm
IHN0YXJ0SXNBdXRvLCBpbnQmIGVuZExpbmUsIGJvb2wmIGVuZElzQXV0bykgY29uc3QKK3sKKyAg
ICBBU1NFUlQoY2hpbGQuaXNPdXRPZkZsb3dQb3NpdGlvbmVkKCkpOworICAgIGludCBsYXN0TGlu
ZSA9IG51bVRyYWNrcyhkaXJlY3Rpb24sIG1fZ3JpZCk7CisgICAgR3JpZFNwYW4gc3BhbiA9IEdy
aWRQb3NpdGlvbnNSZXNvbHZlcjo6cmVzb2x2ZUdyaWRQb3NpdGlvbnNGcm9tU3R5bGUoY2hpbGQs
IGRpcmVjdGlvbik7CisgICAgaWYgKHNwYW4uaXNJbmRlZmluaXRlKCkpCisgICAgICAgIHJldHVy
biBmYWxzZTsKKworICAgIHVuc2lnbmVkIGV4cGxpY2l0U3RhcnQgPSBtX2dyaWQuZXhwbGljaXRH
cmlkU3RhcnQoZGlyZWN0aW9uKTsKKyAgICBzdGFydExpbmUgPSBzcGFuLnVudHJhbnNsYXRlZFN0
YXJ0TGluZSgpICsgZXhwbGljaXRTdGFydDsKKyAgICBlbmRMaW5lID0gc3Bhbi51bnRyYW5zbGF0
ZWRFbmRMaW5lKCkgKyBleHBsaWNpdFN0YXJ0OworCisgICAgR3JpZFBvc2l0aW9uIHN0YXJ0UG9z
aXRpb24gPSBkaXJlY3Rpb24gPT0gRm9yQ29sdW1ucyA/IGNoaWxkLnN0eWxlKCkuZ3JpZEl0ZW1D
b2x1bW5TdGFydCgpIDogY2hpbGQuc3R5bGUoKS5ncmlkSXRlbVJvd1N0YXJ0KCk7CisgICAgR3Jp
ZFBvc2l0aW9uIGVuZFBvc2l0aW9uID0gZGlyZWN0aW9uID09IEZvckNvbHVtbnMgPyBjaGlsZC5z
dHlsZSgpLmdyaWRJdGVtQ29sdW1uRW5kKCkgOiBjaGlsZC5zdHlsZSgpLmdyaWRJdGVtUm93RW5k
KCk7CisKKyAgICBzdGFydElzQXV0byA9IHN0YXJ0UG9zaXRpb24uaXNBdXRvKCkgfHwgc3RhcnRM
aW5lIDwgMCB8fCBzdGFydExpbmUgPiBsYXN0TGluZTsKKyAgICBlbmRJc0F1dG8gPSBlbmRQb3Np
dGlvbi5pc0F1dG8oKSB8fCBlbmRMaW5lIDwgMCB8fCBlbmRMaW5lID4gbGFzdExpbmU7CisgICAg
cmV0dXJuIHRydWU7Cit9CisKK0dyaWRTcGFuIFJlbmRlckdyaWQ6OmdyaWRTcGFuRm9yT3V0T2ZG
bG93Q2hpbGQoY29uc3QgUmVuZGVyQm94JiBjaGlsZCwgR3JpZFRyYWNrU2l6aW5nRGlyZWN0aW9u
IGRpcmVjdGlvbikgY29uc3QKK3sKKyAgICBpbnQgbGFzdExpbmUgPSBudW1UcmFja3MoZGlyZWN0
aW9uLCBtX2dyaWQpOworICAgIGludCBzdGFydExpbmUsIGVuZExpbmU7CisgICAgYm9vbCBzdGFy
dElzQXV0bywgZW5kSXNBdXRvOworICAgIGlmICghY29tcHV0ZUdyaWRTcGFuRm9yT3V0T2ZGbG93
Q2hpbGQoY2hpbGQsIGRpcmVjdGlvbiwgc3RhcnRMaW5lLCBzdGFydElzQXV0bywgZW5kTGluZSwg
ZW5kSXNBdXRvKSkKKyAgICAgICAgcmV0dXJuIEdyaWRTcGFuOjp0cmFuc2xhdGVkRGVmaW5pdGVH
cmlkU3BhbigwLCBsYXN0TGluZSk7CisgICAgcmV0dXJuIEdyaWRTcGFuOjp0cmFuc2xhdGVkRGVm
aW5pdGVHcmlkU3BhbihzdGFydElzQXV0byA/IDAgOiBzdGFydExpbmUsIGVuZElzQXV0byA/IGxh
c3RMaW5lIDogZW5kTGluZSk7Cit9CisKK0dyaWRTcGFuIFJlbmRlckdyaWQ6OmdyaWRTcGFuRm9y
Q2hpbGQoY29uc3QgUmVuZGVyQm94JiBjaGlsZCwgR3JpZFRyYWNrU2l6aW5nRGlyZWN0aW9uIGRp
cmVjdGlvbikgY29uc3QKK3sKKyAgICBBU1NFUlQoaXM8UmVuZGVyR3JpZD4oY2hpbGQucGFyZW50
KCkpKTsKKworICAgIFJlbmRlckdyaWQqIHJlbmRlckdyaWQgPSBkb3duY2FzdDxSZW5kZXJHcmlk
PihjaGlsZC5wYXJlbnQoKSk7CisgICAgLy8gfGRpcmVjdGlvbnwgaXMgc3BlY2lmaWVkIHJlbGF0
aXZlIHRvIHRoaXMgZ3JpZCwgc3dpdGNoIGl0IGlmIHxjaGlsZHwncyBkaXJlY3QgcGFyZW50IGdy
aWQKKyAgICAvLyBpcyB1c2luZyBhIGRpZmZlcmVudCB3cml0aW5nIG1vZGUuCisgICAgaWYgKHJl
bmRlckdyaWQtPmlzSG9yaXpvbnRhbFdyaXRpbmdNb2RlKCkgIT0gaXNIb3Jpem9udGFsV3JpdGlu
Z01vZGUoKSkKKyAgICAgICAgZGlyZWN0aW9uID0gdHJhbnNwb3NlZERpcmVjdGlvbihkaXJlY3Rp
b24pOworICAgIEdyaWRTcGFuIHNwYW4gPSBjaGlsZC5pc091dE9mRmxvd1Bvc2l0aW9uZWQoKSA/
IHJlbmRlckdyaWQtPmdyaWRTcGFuRm9yT3V0T2ZGbG93Q2hpbGQoY2hpbGQsIGRpcmVjdGlvbikg
OiByZW5kZXJHcmlkLT5jdXJyZW50R3JpZCgpLmdyaWRJdGVtU3BhbihjaGlsZCwgZGlyZWN0aW9u
KTsKKworICAgIHdoaWxlIChyZW5kZXJHcmlkICE9IHRoaXMpIHsKKyAgICAgICAgQVNTRVJUKGlz
PFJlbmRlckdyaWQ+KHJlbmRlckdyaWQtPnBhcmVudCgpKSk7CisgICAgICAgIFJlbmRlckdyaWQq
IHBhcmVudCA9IGRvd25jYXN0PFJlbmRlckdyaWQ+KHJlbmRlckdyaWQtPnBhcmVudCgpKTsKKwor
ICAgICAgICBib29sIGlzU3ViZ3JpZCA9IGRpcmVjdGlvbiA9PSBGb3JDb2x1bW5zID8gcmVuZGVy
R3JpZC0+aXNTdWJncmlkQ29sdW1ucygpIDogcmVuZGVyR3JpZC0+aXNTdWJncmlkUm93cygpOwor
CisgICAgICAgIGlmIChyZW5kZXJHcmlkLT5pc0hvcml6b250YWxXcml0aW5nTW9kZSgpICE9IHBh
cmVudC0+aXNIb3Jpem9udGFsV3JpdGluZ01vZGUoKSkKKyAgICAgICAgICAgIGRpcmVjdGlvbiA9
IHRyYW5zcG9zZWREaXJlY3Rpb24oZGlyZWN0aW9uKTsKKworICAgICAgICBHcmlkU3BhbiBwYXJl
bnRTcGFuID0gcmVuZGVyR3JpZC0+aXNPdXRPZkZsb3dQb3NpdGlvbmVkKCkgPyBwYXJlbnQtPmdy
aWRTcGFuRm9yT3V0T2ZGbG93Q2hpbGQoKnJlbmRlckdyaWQsIGRpcmVjdGlvbikgOiAgcGFyZW50
LT5jdXJyZW50R3JpZCgpLmdyaWRJdGVtU3BhbigqcmVuZGVyR3JpZCwgZGlyZWN0aW9uKTsKKyAg
ICAgICAgaWYgKGlzU3ViZ3JpZCkKKyAgICAgICAgICAgIHNwYW4udHJhbnNsYXRlVG8ocGFyZW50
U3BhbiwgcGFyZW50LT5zdHlsZSgpLmlzTGVmdFRvUmlnaHREaXJlY3Rpb24oKSAhPSByZW5kZXJH
cmlkLT5zdHlsZSgpLmlzTGVmdFRvUmlnaHREaXJlY3Rpb24oKSk7CisgICAgICAgIGVsc2UKKyAg
ICAgICAgICAgIHNwYW4gPSBwYXJlbnRTcGFuOworICAgICAgICByZW5kZXJHcmlkID0gcGFyZW50
OworICAgIH0KKyAgICByZXR1cm4gc3BhbjsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckdyaWQuaCBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJHcmlkLmgKaW5kZXggMjlhZTU5NDgwMDNlLi4zYWM2
MDY2YjFmN2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJHcmlk
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckdyaWQuaApAQCAtODIsNiAr
ODIsMjQgQEAgcHVibGljOgogCiAgICAgU3R5bGVDb250ZW50QWxpZ25tZW50RGF0YSBjb250ZW50
QWxpZ25tZW50KEdyaWRUcmFja1NpemluZ0RpcmVjdGlvbikgY29uc3Q7CiAKKyAgICAvLyBDb21w
dXRlcyB0aGUgc3BhbiByZWxhdGl2ZSB0byB0aGlzIFJlbmRlckdyaWQsIGV2ZW4gaWYgdGhlIFJl
bmRlckJveCBpcyBhIGNoaWxkCisgICAgLy8gb2YgYSBkZXNjZW5kYW50IHN1YmdyaWQuCisgICAg
R3JpZFNwYW4gZ3JpZFNwYW5Gb3JDaGlsZChjb25zdCBSZW5kZXJCb3gmLCBHcmlkVHJhY2tTaXpp
bmdEaXJlY3Rpb24pIGNvbnN0OworCisgICAgYm9vbCBpc1N1YmdyaWRSb3dzKCkgY29uc3Q7Cisg
ICAgYm9vbCBpc1N1YmdyaWRDb2x1bW5zKCkgY29uc3Q7CisgICAgYm9vbCBpc1N1YmdyaWQoR3Jp
ZFRyYWNrU2l6aW5nRGlyZWN0aW9uKSBjb25zdDsKKworICAgIGNvbnN0IEdyaWQmIGN1cnJlbnRH
cmlkKCkgY29uc3QKKyAgICB7CisgICAgICAgIHJldHVybiBtX2dyaWQ7CisgICAgfQorCisgICAg
dW5zaWduZWQgbnVtVHJhY2tzKEdyaWRUcmFja1NpemluZ0RpcmVjdGlvbiBkaXJlY3Rpb24pIGNv
bnN0CisgICAgeworICAgICAgICByZXR1cm4gbnVtVHJhY2tzKGRpcmVjdGlvbiwgbV9ncmlkKTsK
KyAgICB9CisKIHByaXZhdGU6CiAgICAgSXRlbVBvc2l0aW9uIHNlbGZBbGlnbm1lbnROb3JtYWxC
ZWhhdmlvcihjb25zdCBSZW5kZXJCb3gqIGNoaWxkID0gbnVsbHB0cikgY29uc3Qgb3ZlcnJpZGUK
ICAgICB7CkBAIC0xNTAsOCArMTY4LDYgQEAgcHJpdmF0ZToKICAgICB2b2lkIHNldExvZ2ljYWxQ
b3NpdGlvbkZvckNoaWxkKFJlbmRlckJveCYpIGNvbnN0OwogICAgIHZvaWQgc2V0TG9naWNhbE9m
ZnNldEZvckNoaWxkKFJlbmRlckJveCYsIEdyaWRUcmFja1NpemluZ0RpcmVjdGlvbikgY29uc3Q7
CiAgICAgTGF5b3V0VW5pdCBsb2dpY2FsT2Zmc2V0Rm9yQ2hpbGQoY29uc3QgUmVuZGVyQm94Jiwg
R3JpZFRyYWNrU2l6aW5nRGlyZWN0aW9uKSBjb25zdDsKLSAgICBHcmlkQXJlYSBjYWNoZWRHcmlk
QXJlYShjb25zdCBSZW5kZXJCb3gmKSBjb25zdDsKLSAgICBHcmlkU3BhbiBjYWNoZWRHcmlkU3Bh
bihjb25zdCBSZW5kZXJCb3gmLCBHcmlkVHJhY2tTaXppbmdEaXJlY3Rpb24pIGNvbnN0OwogCiAg
ICAgTGF5b3V0VW5pdCBncmlkQXJlYUJyZWFkdGhGb3JDaGlsZEluY2x1ZGluZ0FsaWdubWVudE9m
ZnNldHMoY29uc3QgUmVuZGVyQm94JiwgR3JpZFRyYWNrU2l6aW5nRGlyZWN0aW9uKSBjb25zdDsK
IApAQCAtMTkxLDYgKzIwNyw5IEBAIHByaXZhdGU6CiAKICAgICBib29sIGFzcGVjdFJhdGlvUHJl
ZmVyc0lubGluZShjb25zdCBSZW5kZXJCb3gmIGNoaWxkLCBib29sIGJsb2NrRmxvd0lzQ29sdW1u
QXhpcyk7CiAKKyAgICBHcmlkU3BhbiBncmlkU3BhbkZvck91dE9mRmxvd0NoaWxkKGNvbnN0IFJl
bmRlckJveCYsIEdyaWRUcmFja1NpemluZ0RpcmVjdGlvbikgY29uc3Q7CisgICAgYm9vbCBjb21w
dXRlR3JpZFNwYW5Gb3JPdXRPZkZsb3dDaGlsZChjb25zdCBSZW5kZXJCb3gmLCBHcmlkVHJhY2tT
aXppbmdEaXJlY3Rpb24sIGludCYsIGJvb2wmLCBpbnQmLCBib29sJikgY29uc3Q7CisKICAgICBH
cmlkIG1fZ3JpZDsKIAogICAgIEdyaWRUcmFja1NpemluZ0FsZ29yaXRobSBtX3RyYWNrU2l6aW5n
QWxnb3JpdGhtOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL0dy
aWRBcmVhLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvR3JpZEFyZWEuaAppbmRl
eCBiN2ViZDFkOTYxZGUuLmVlM2I5MmZjMGZmMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL3N0eWxlL0dyaWRBcmVhLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L3N0eWxlL0dyaWRBcmVhLmgKQEAgLTY1LDcgKzY1LDcgQEAgcHVibGljOgogCiAgICAgdW5zaWdu
ZWQgaW50ZWdlclNwYW4oKSBjb25zdAogICAgIHsKLSAgICAgICAgQVNTRVJUKGlzVHJhbnNsYXRl
ZERlZmluaXRlKCkpOworICAgICAgICBBU1NFUlQoaXNUcmFuc2xhdGVkRGVmaW5pdGUoKSB8fCBt
X3R5cGUgPT0gVW50cmFuc2xhdGVkRGVmaW5pdGUpOwogICAgICAgICByZXR1cm4gbV9lbmRMaW5l
IC0gbV9zdGFydExpbmU7CiAgICAgfQogCkBAIC0xNDEsNiArMTQxLDMxIEBAIHB1YmxpYzoKICAg
ICAgICAgQVNTRVJUKG1fZW5kTGluZSA+IDApOwogICAgIH0KIAorICAgIC8vIE1vdmVzIHRoaXMg
c3BhbiB0byBiZSBpbiB0aGUgc2FtZSBjb29yZGluYXRlIHNwYWNlIGFzIHxwYXJlbnR8LgorICAg
IC8vIElmIHJldmVyc2UgaXMgc3BlY2lmaWVkLCB0aGVuIHN3YXBzIHRoZSBkaXJlY3Rpb24gdG8g
aGFuZGxlIFJUTC9MVFIgY2hhbmdlcy4KKyAgICB2b2lkIHRyYW5zbGF0ZVRvKGNvbnN0IEdyaWRT
cGFuJiBwYXJlbnQsIGJvb2wgcmV2ZXJzZSkKKyAgICB7CisgICAgICAgIEFTU0VSVChtX3R5cGUg
PT0gVHJhbnNsYXRlZERlZmluaXRlKTsKKyAgICAgICAgQVNTRVJUKHBhcmVudC5tX3R5cGUgPT0g
VHJhbnNsYXRlZERlZmluaXRlKTsKKyAgICAgICAgaWYgKHJldmVyc2UpIHsKKyAgICAgICAgICAg
IGludCBzdGFydCA9IG1fc3RhcnRMaW5lOworICAgICAgICAgICAgbV9zdGFydExpbmUgPSBwYXJl
bnQuaW50ZWdlclNwYW4oKSAtIG1fZW5kTGluZSArIHBhcmVudC5zdGFydExpbmUoKTsKKyAgICAg
ICAgICAgIG1fZW5kTGluZSA9IHBhcmVudC5pbnRlZ2VyU3BhbigpIC0gc3RhcnQgKyBwYXJlbnQu
c3RhcnRMaW5lKCk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBtX3N0YXJ0TGluZSAr
PSBwYXJlbnQubV9zdGFydExpbmU7CisgICAgICAgICAgICBtX2VuZExpbmUgKz0gcGFyZW50Lm1f
c3RhcnRMaW5lOworICAgICAgICB9CisgICAgfQorCisgICAgdm9pZCBjbGFtcChpbnQgbWF4KQor
ICAgIHsKKyAgICAgICAgQVNTRVJUKG1fdHlwZSAhPSBJbmRlZmluaXRlKTsKKyAgICAgICAgbV9z
dGFydExpbmUgPSBzdGQ6Om1heChtX3N0YXJ0TGluZSwgMCk7CisgICAgICAgIG1fZW5kTGluZSA9
IHN0ZDo6bWF4KHN0ZDo6bWluKG1fZW5kTGluZSwgbWF4KSwgMSk7CisgICAgICAgIGlmIChtX3N0
YXJ0TGluZSA+PSBtX2VuZExpbmUpCisgICAgICAgICAgICBtX3N0YXJ0TGluZSA9IG1fZW5kTGlu
ZSAtIDE7CisgICAgfQorCiBwcml2YXRlOgogCiAgICAgZW51bSBHcmlkU3BhblR5cGUge1VudHJh
bnNsYXRlZERlZmluaXRlLCBUcmFuc2xhdGVkRGVmaW5pdGUsIEluZGVmaW5pdGV9OwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL0dyaWRQb3NpdGlvbnNSZXNvbHZl
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvR3JpZFBvc2l0aW9uc1Jlc29s
dmVyLmNwcAppbmRleCAzM2M3MDNjNWYwNmYuLjI5ODJhNTc4NTY2ZiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL0dyaWRQb3NpdGlvbnNSZXNvbHZlci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL0dyaWRQb3NpdGlvbnNSZXNvbHZlci5j
cHAKQEAgLTMzLDYgKzMzLDcgQEAKIAogI2luY2x1ZGUgIkdyaWRBcmVhLmgiCiAjaW5jbHVkZSAi
UmVuZGVyQm94LmgiCisjaW5jbHVkZSAiUmVuZGVyR3JpZC5oIgogI2luY2x1ZGUgPGNzdGRsaWI+
CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTEwNCw3ICsxMDUsNyBAQCBib29sIE5hbWVkTGlu
ZUNvbGxlY3Rpb246OmNvbnRhaW5zKHVuc2lnbmVkIGxpbmUpIGNvbnN0CiAgICAgaWYgKGNvbnRh
aW5zKG1faW1wbGljaXROYW1lZExpbmVzSW5kZXhlcywgbGluZSkpCiAgICAgICAgIHJldHVybiB0
cnVlOwogCi0gICAgaWYgKCFtX2F1dG9SZXBlYXRUcmFja0xpc3RMZW5ndGggfHwgbGluZSA8IG1f
aW5zZXJ0aW9uUG9pbnQpCisgICAgaWYgKCFtX2F1dG9SZXBlYXRUb3RhbFRyYWNrcyB8fCBsaW5l
IDwgbV9pbnNlcnRpb25Qb2ludCkKICAgICAgICAgcmV0dXJuIGNvbnRhaW5zKG1fbmFtZWRMaW5l
c0luZGV4ZXMsIGxpbmUpOwogCiAgICAgQVNTRVJUKG1fYXV0b1JlcGVhdFRvdGFsVHJhY2tzKTsK
QEAgLTE1Miw2ICsxNTMsMTggQEAgdW5zaWduZWQgTmFtZWRMaW5lQ29sbGVjdGlvbjo6Zmlyc3RQ
b3NpdGlvbigpIGNvbnN0CiAgICAgcmV0dXJuIHN0ZDo6bWluKGZpcnN0RXhwbGljaXRQb3NpdGlv
bigpLCBtX2ltcGxpY2l0TmFtZWRMaW5lc0luZGV4ZXMtPmF0KGZpcnN0TGluZSkpOwogfQogCisv
LyBodHRwczovL2RyYWZ0cy5jc3N3Zy5vcmcvY3NzLWdyaWQtMi8jaW5kZWZpbml0ZS1ncmlkLXNw
YW4KK3N0YXRpYyBib29sIGlzSW5kZWZpbml0ZVNwYW4oR3JpZFBvc2l0aW9uJiBpbml0aWFsUG9z
aXRpb24sIEdyaWRQb3NpdGlvbiYgZmluYWxQb3NpdGlvbikKK3sKKyAgICBpZiAoIWluaXRpYWxQ
b3NpdGlvbi5pc0F1dG8oKSAmJiAhZmluYWxQb3NpdGlvbi5pc0F1dG8oKSkKKyAgICAgICAgcmV0
dXJuIGZhbHNlOworCisgICAgaWYgKGluaXRpYWxQb3NpdGlvbi5pc1NwYW4oKSB8fCBmaW5hbFBv
c2l0aW9uLmlzU3BhbigpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICByZXR1cm4gdHJ1
ZTsKK30KKwogc3RhdGljIHZvaWQgYWRqdXN0R3JpZFBvc2l0aW9uc0Zyb21TdHlsZShjb25zdCBS
ZW5kZXJCb3gmIGdyaWRJdGVtLCBHcmlkVHJhY2tTaXppbmdEaXJlY3Rpb24gZGlyZWN0aW9uLCBH
cmlkUG9zaXRpb24mIGluaXRpYWxQb3NpdGlvbiwgR3JpZFBvc2l0aW9uJiBmaW5hbFBvc2l0aW9u
KQogewogICAgIGJvb2wgaXNGb3JDb2x1bW5zID0gZGlyZWN0aW9uID09IEZvckNvbHVtbnM7CkBA
IC0xNjgsMjEgKzE4MSw1MiBAQCBzdGF0aWMgdm9pZCBhZGp1c3RHcmlkUG9zaXRpb25zRnJvbVN0
eWxlKGNvbnN0IFJlbmRlckJveCYgZ3JpZEl0ZW0sIEdyaWRUcmFja1NpegogICAgICAgICBmaW5h
bFBvc2l0aW9uLnNldFNwYW5Qb3NpdGlvbigxLCBTdHJpbmcoKSk7CiAgICAgaWYgKGZpbmFsUG9z
aXRpb24uaXNBdXRvKCkgJiYgaW5pdGlhbFBvc2l0aW9uLmlzU3BhbigpICYmICFpbml0aWFsUG9z
aXRpb24ubmFtZWRHcmlkTGluZSgpLmlzTnVsbCgpKQogICAgICAgICBpbml0aWFsUG9zaXRpb24u
c2V0U3BhblBvc2l0aW9uKDEsIFN0cmluZygpKTsKKworICAgIGlmIChpc0luZGVmaW5pdGVTcGFu
KGluaXRpYWxQb3NpdGlvbiwgZmluYWxQb3NpdGlvbikgJiYgaXM8UmVuZGVyR3JpZD4oZ3JpZEl0
ZW0pICYmIGRvd25jYXN0PFJlbmRlckdyaWQ+KGdyaWRJdGVtKS5pc1N1YmdyaWQoZGlyZWN0aW9u
KSkgeworICAgICAgICAvLyBJbmRlZmluaXRlIHNwYW4gZm9yIGFuIGl0ZW0gdGhhdCBpcyBzdWJn
cmlkZGVkIGluIHRoaXMgYXhpcy4KKyAgICAgICAgaW50IGxpbmVDb3VudCA9IGRpcmVjdGlvbiA9
PSBGb3JDb2x1bW5zID8gZ3JpZEl0ZW0uc3R5bGUoKS5ncmlkQ29sdW1ucygpLnNpemUoKSA6IGdy
aWRJdGVtLnN0eWxlKCkuZ3JpZFJvd3MoKS5zaXplKCk7CisKKyAgICAgICAgaWYgKGluaXRpYWxQ
b3NpdGlvbi5pc0F1dG8oKSkgeworICAgICAgICAgICAgLy8gU2V0IGluaXRpYWwgcG9zaXRpb24g
dG8gc3BhbiA8bGluZSBuYW1lcyAtIDE+CisgICAgICAgICAgICBpbml0aWFsUG9zaXRpb24uc2V0
U3BhblBvc2l0aW9uKHN0ZDo6bWF4KDEsIGxpbmVDb3VudCAtIDEpLCAiIik7CisgICAgICAgICAg
ICBpZiAoZmluYWxQb3NpdGlvbi5pc1NwYW4oKSkKKyAgICAgICAgICAgICAgICBmaW5hbFBvc2l0
aW9uLnNldEF1dG9Qb3NpdGlvbigpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgLy8g
U2V0IGZpbmFsIHBvc2l0aW9uIHRvIHNwYW4gPGxpbmUgbmFtZXMgLSAxPgorICAgICAgICAgICAg
ZmluYWxQb3NpdGlvbi5zZXRTcGFuUG9zaXRpb24oc3RkOjptYXgoMSwgbGluZUNvdW50IC0gMSks
ICIiKTsKKyAgICAgICAgICAgIGlmIChpbml0aWFsUG9zaXRpb24uaXNTcGFuKCkpCisgICAgICAg
ICAgICAgICAgaW5pdGlhbFBvc2l0aW9uLnNldEF1dG9Qb3NpdGlvbigpOworICAgICAgICB9Cisg
ICAgfQogfQogCi11bnNpZ25lZCBHcmlkUG9zaXRpb25zUmVzb2x2ZXI6OmV4cGxpY2l0R3JpZENv
bHVtbkNvdW50KGNvbnN0IFJlbmRlclN0eWxlJiBncmlkQ29udGFpbmVyU3R5bGUsIHVuc2lnbmVk
IGF1dG9SZXBlYXRUcmFja3NDb3VudCkKK3Vuc2lnbmVkIEdyaWRQb3NpdGlvbnNSZXNvbHZlcjo6
ZXhwbGljaXRHcmlkQ29sdW1uQ291bnQoY29uc3QgUmVuZGVyR3JpZCYgZ3JpZENvbnRhaW5lcikK
IHsKLSAgICByZXR1cm4gc3RkOjptaW48dW5zaWduZWQ+KHN0ZDo6bWF4KGdyaWRDb250YWluZXJT
dHlsZS5ncmlkQ29sdW1ucygpLnNpemUoKSArIGF1dG9SZXBlYXRUcmFja3NDb3VudCwgZ3JpZENv
bnRhaW5lclN0eWxlLm5hbWVkR3JpZEFyZWFDb2x1bW5Db3VudCgpKSwgR3JpZFBvc2l0aW9uOjpt
YXgoKSk7CisgICAgYm9vbCBzcGVjaWZpZWRTdWJncmlkID0gZ3JpZENvbnRhaW5lci5zdHlsZSgp
LmdyaWRTdWJncmlkQ29sdW1ucygpOworICAgIGlmIChzcGVjaWZpZWRTdWJncmlkICYmIGdyaWRD
b250YWluZXIuaXNTdWJncmlkQ29sdW1ucygpKSB7CisgICAgICAgIGNvbnN0IFJlbmRlckdyaWQm
IHBhcmVudCA9ICpkb3duY2FzdDxSZW5kZXJHcmlkPihncmlkQ29udGFpbmVyLnBhcmVudCgpKTsK
KyAgICAgICAgR3JpZFRyYWNrU2l6aW5nRGlyZWN0aW9uIGRpcmVjdGlvbiA9IGdyaWRDb250YWlu
ZXIuaXNIb3Jpem9udGFsV3JpdGluZ01vZGUoKSA9PSBwYXJlbnQuaXNIb3Jpem9udGFsV3JpdGlu
Z01vZGUoKSA/IEZvckNvbHVtbnMgOiBGb3JSb3dzOworICAgICAgICByZXR1cm4gcGFyZW50Lmdy
aWRTcGFuRm9yQ2hpbGQoZ3JpZENvbnRhaW5lciwgZGlyZWN0aW9uKS5pbnRlZ2VyU3BhbigpOwor
ICAgIH0KKyAgICBhdXRvIHNwZWNpZmllZENvbHVtbnMgPSBzcGVjaWZpZWRTdWJncmlkID8gMCA6
IGdyaWRDb250YWluZXIuc3R5bGUoKS5ncmlkQ29sdW1ucygpLnNpemUoKTsKKyAgICByZXR1cm4g
c3RkOjptaW48dW5zaWduZWQ+KHN0ZDo6bWF4KHNwZWNpZmllZENvbHVtbnMgKyBncmlkQ29udGFp
bmVyLmF1dG9SZXBlYXRDb3VudEZvckRpcmVjdGlvbihGb3JDb2x1bW5zKSwgZ3JpZENvbnRhaW5l
ci5zdHlsZSgpLm5hbWVkR3JpZEFyZWFDb2x1bW5Db3VudCgpKSwgR3JpZFBvc2l0aW9uOjptYXgo
KSk7CiB9CiAKLXVuc2lnbmVkIEdyaWRQb3NpdGlvbnNSZXNvbHZlcjo6ZXhwbGljaXRHcmlkUm93
Q291bnQoY29uc3QgUmVuZGVyU3R5bGUmIGdyaWRDb250YWluZXJTdHlsZSwgdW5zaWduZWQgYXV0
b1JlcGVhdFRyYWNrc0NvdW50KQordW5zaWduZWQgR3JpZFBvc2l0aW9uc1Jlc29sdmVyOjpleHBs
aWNpdEdyaWRSb3dDb3VudChjb25zdCBSZW5kZXJHcmlkJiBncmlkQ29udGFpbmVyKQogewotICAg
IHJldHVybiBzdGQ6Om1pbjx1bnNpZ25lZD4oc3RkOjptYXgoZ3JpZENvbnRhaW5lclN0eWxlLmdy
aWRSb3dzKCkuc2l6ZSgpICsgYXV0b1JlcGVhdFRyYWNrc0NvdW50LCBncmlkQ29udGFpbmVyU3R5
bGUubmFtZWRHcmlkQXJlYVJvd0NvdW50KCkpLCBHcmlkUG9zaXRpb246Om1heCgpKTsKKyAgICBi
b29sIHNwZWNpZmllZFN1YmdyaWQgPSBncmlkQ29udGFpbmVyLnN0eWxlKCkuZ3JpZFN1YmdyaWRS
b3dzKCk7CisgICAgaWYgKHNwZWNpZmllZFN1YmdyaWQgJiYgZ3JpZENvbnRhaW5lci5pc1N1Ymdy
aWRSb3dzKCkpIHsKKyAgICAgICAgY29uc3QgUmVuZGVyR3JpZCYgcGFyZW50ID0gKmRvd25jYXN0
PFJlbmRlckdyaWQ+KGdyaWRDb250YWluZXIucGFyZW50KCkpOworICAgICAgICBHcmlkVHJhY2tT
aXppbmdEaXJlY3Rpb24gZGlyZWN0aW9uID0gZ3JpZENvbnRhaW5lci5pc0hvcml6b250YWxXcml0
aW5nTW9kZSgpID09IHBhcmVudC5pc0hvcml6b250YWxXcml0aW5nTW9kZSgpID8gRm9yUm93cyA6
IEZvckNvbHVtbnM7CisgICAgICAgIHJldHVybiBwYXJlbnQuZ3JpZFNwYW5Gb3JDaGlsZChncmlk
Q29udGFpbmVyLCBkaXJlY3Rpb24pLmludGVnZXJTcGFuKCk7CisgICAgfQorICAgIGF1dG8gc3Bl
Y2lmaWVkUm93cyA9IHNwZWNpZmllZFN1YmdyaWQgPyAwIDogZ3JpZENvbnRhaW5lci5zdHlsZSgp
LmdyaWRSb3dzKCkuc2l6ZSgpOworICAgIHJldHVybiBzdGQ6Om1pbjx1bnNpZ25lZD4oc3RkOjpt
YXgoc3BlY2lmaWVkUm93cyArIGdyaWRDb250YWluZXIuYXV0b1JlcGVhdENvdW50Rm9yRGlyZWN0
aW9uKEZvclJvd3MpLCBncmlkQ29udGFpbmVyLnN0eWxlKCkubmFtZWRHcmlkQXJlYVJvd0NvdW50
KCkpLCBHcmlkUG9zaXRpb246Om1heCgpKTsKIH0KIAotc3RhdGljIHVuc2lnbmVkIGV4cGxpY2l0
R3JpZFNpemVGb3JTaWRlKGNvbnN0IFJlbmRlclN0eWxlJiBncmlkQ29udGFpbmVyU3R5bGUsIEdy
aWRQb3NpdGlvblNpZGUgc2lkZSwgdW5zaWduZWQgYXV0b1JlcGVhdFRyYWNrc0NvdW50KQorc3Rh
dGljIHVuc2lnbmVkIGV4cGxpY2l0R3JpZFNpemVGb3JTaWRlKGNvbnN0IFJlbmRlckdyaWQmIGdy
aWRDb250YWluZXIsIEdyaWRQb3NpdGlvblNpZGUgc2lkZSkKIHsKLSAgICByZXR1cm4gaXNDb2x1
bW5TaWRlKHNpZGUpID8gR3JpZFBvc2l0aW9uc1Jlc29sdmVyOjpleHBsaWNpdEdyaWRDb2x1bW5D
b3VudChncmlkQ29udGFpbmVyU3R5bGUsIGF1dG9SZXBlYXRUcmFja3NDb3VudCkgOiBHcmlkUG9z
aXRpb25zUmVzb2x2ZXI6OmV4cGxpY2l0R3JpZFJvd0NvdW50KGdyaWRDb250YWluZXJTdHlsZSwg
YXV0b1JlcGVhdFRyYWNrc0NvdW50KTsKKyAgICByZXR1cm4gaXNDb2x1bW5TaWRlKHNpZGUpID8g
R3JpZFBvc2l0aW9uc1Jlc29sdmVyOjpleHBsaWNpdEdyaWRDb2x1bW5Db3VudChncmlkQ29udGFp
bmVyKSA6IEdyaWRQb3NpdGlvbnNSZXNvbHZlcjo6ZXhwbGljaXRHcmlkUm93Q291bnQoZ3JpZENv
bnRhaW5lcik7CiB9CiAKIHN0YXRpYyB1bnNpZ25lZCBsb29rQWhlYWRGb3JOYW1lZEdyaWRMaW5l
KGludCBzdGFydCwgdW5zaWduZWQgbnVtYmVyT2ZMaW5lcywgdW5zaWduZWQgZ3JpZExhc3RMaW5l
LCBOYW1lZExpbmVDb2xsZWN0aW9uJiBsaW5lc0NvbGxlY3Rpb24pCkBAIC0yMjQsMTIgKzI2OCwx
MiBAQCBzdGF0aWMgaW50IGxvb2tCYWNrRm9yTmFtZWRHcmlkTGluZShpbnQgZW5kLCB1bnNpZ25l
ZCBudW1iZXJPZkxpbmVzLCBpbnQgZ3JpZExhcwogICAgIHJldHVybiBzdGFydCArIDE7CiB9CiAK
LXN0YXRpYyBpbnQgcmVzb2x2ZU5hbWVkR3JpZExpbmVQb3NpdGlvbkZyb21TdHlsZShjb25zdCBS
ZW5kZXJTdHlsZSYgZ3JpZENvbnRhaW5lclN0eWxlLCBjb25zdCBHcmlkUG9zaXRpb24mIHBvc2l0
aW9uLCBHcmlkUG9zaXRpb25TaWRlIHNpZGUsIHVuc2lnbmVkIGF1dG9SZXBlYXRUcmFja3NDb3Vu
dCkKK3N0YXRpYyBpbnQgcmVzb2x2ZU5hbWVkR3JpZExpbmVQb3NpdGlvbkZyb21TdHlsZShjb25z
dCBSZW5kZXJHcmlkJiBncmlkQ29udGFpbmVyLCBjb25zdCBHcmlkUG9zaXRpb24mIHBvc2l0aW9u
LCBHcmlkUG9zaXRpb25TaWRlIHNpZGUpCiB7CiAgICAgQVNTRVJUKCFwb3NpdGlvbi5uYW1lZEdy
aWRMaW5lKCkuaXNOdWxsKCkpOwogCi0gICAgdW5zaWduZWQgbGFzdExpbmUgPSBleHBsaWNpdEdy
aWRTaXplRm9yU2lkZShncmlkQ29udGFpbmVyU3R5bGUsIHNpZGUsIGF1dG9SZXBlYXRUcmFja3ND
b3VudCk7Ci0gICAgTmFtZWRMaW5lQ29sbGVjdGlvbiBsaW5lc0NvbGxlY3Rpb24oZ3JpZENvbnRh
aW5lclN0eWxlLCBwb3NpdGlvbi5uYW1lZEdyaWRMaW5lKCksIGRpcmVjdGlvbkZyb21TaWRlKHNp
ZGUpLCBsYXN0TGluZSwgYXV0b1JlcGVhdFRyYWNrc0NvdW50KTsKKyAgICB1bnNpZ25lZCBsYXN0
TGluZSA9IGV4cGxpY2l0R3JpZFNpemVGb3JTaWRlKGdyaWRDb250YWluZXIsIHNpZGUpOworICAg
IE5hbWVkTGluZUNvbGxlY3Rpb24gbGluZXNDb2xsZWN0aW9uKGdyaWRDb250YWluZXIuc3R5bGUo
KSwgcG9zaXRpb24ubmFtZWRHcmlkTGluZSgpLCBkaXJlY3Rpb25Gcm9tU2lkZShzaWRlKSwgbGFz
dExpbmUsIGdyaWRDb250YWluZXIuYXV0b1JlcGVhdENvdW50Rm9yRGlyZWN0aW9uKGRpcmVjdGlv
bkZyb21TaWRlKHNpZGUpKSk7CiAKICAgICBpZiAocG9zaXRpb24uaXNQb3NpdGl2ZSgpKQogICAg
ICAgICByZXR1cm4gbG9va0FoZWFkRm9yTmFtZWRHcmlkTGluZSgwLCBzdGQ6OmFicyhwb3NpdGlv
bi5pbnRlZ2VyUG9zaXRpb24oKSksIGxhc3RMaW5lLCBsaW5lc0NvbGxlY3Rpb24pOwpAQCAtMjUw
LDE5ICsyOTQsMTkgQEAgc3RhdGljIEdyaWRTcGFuIGRlZmluaXRlR3JpZFNwYW5XaXRoTmFtZWRM
aW5lU3BhbkFnYWluc3RPcHBvc2l0ZShpbnQgb3Bwb3NpdGVMaW4KICAgICByZXR1cm4gR3JpZFNw
YW46OnVudHJhbnNsYXRlZERlZmluaXRlR3JpZFNwYW4oc3RhcnQsIGVuZCk7CiB9CiAKLXN0YXRp
YyBHcmlkU3BhbiByZXNvbHZlTmFtZWRHcmlkTGluZVBvc2l0aW9uQWdhaW5zdE9wcG9zaXRlUG9z
aXRpb24oY29uc3QgUmVuZGVyU3R5bGUmIGdyaWRDb250YWluZXJTdHlsZSwgaW50IG9wcG9zaXRl
TGluZSwgY29uc3QgR3JpZFBvc2l0aW9uJiBwb3NpdGlvbiwgR3JpZFBvc2l0aW9uU2lkZSBzaWRl
LCB1bnNpZ25lZCBhdXRvUmVwZWF0VHJhY2tzQ291bnQpCitzdGF0aWMgR3JpZFNwYW4gcmVzb2x2
ZU5hbWVkR3JpZExpbmVQb3NpdGlvbkFnYWluc3RPcHBvc2l0ZVBvc2l0aW9uKGNvbnN0IFJlbmRl
ckdyaWQmIGdyaWRDb250YWluZXIsIGludCBvcHBvc2l0ZUxpbmUsIGNvbnN0IEdyaWRQb3NpdGlv
biYgcG9zaXRpb24sIEdyaWRQb3NpdGlvblNpZGUgc2lkZSkKIHsKICAgICBBU1NFUlQocG9zaXRp
b24uaXNTcGFuKCkpOwogICAgIEFTU0VSVCghcG9zaXRpb24ubmFtZWRHcmlkTGluZSgpLmlzTnVs
bCgpKTsKICAgICAvLyBOZWdhdGl2ZSBwb3NpdGlvbnMgYXJlIG5vdCBhbGxvd2VkIHBlciB0aGUg
c3BlY2lmaWNhdGlvbiBhbmQgc2hvdWxkIGhhdmUgYmVlbiBoYW5kbGVkIGR1cmluZyBwYXJzaW5n
LgogICAgIEFTU0VSVChwb3NpdGlvbi5zcGFuUG9zaXRpb24oKSA+IDApOwogCi0gICAgdW5zaWdu
ZWQgbGFzdExpbmUgPSBleHBsaWNpdEdyaWRTaXplRm9yU2lkZShncmlkQ29udGFpbmVyU3R5bGUs
IHNpZGUsIGF1dG9SZXBlYXRUcmFja3NDb3VudCk7Ci0gICAgTmFtZWRMaW5lQ29sbGVjdGlvbiBs
aW5lc0NvbGxlY3Rpb24oZ3JpZENvbnRhaW5lclN0eWxlLCBwb3NpdGlvbi5uYW1lZEdyaWRMaW5l
KCksIGRpcmVjdGlvbkZyb21TaWRlKHNpZGUpLCBsYXN0TGluZSwgYXV0b1JlcGVhdFRyYWNrc0Nv
dW50KTsKKyAgICB1bnNpZ25lZCBsYXN0TGluZSA9IGV4cGxpY2l0R3JpZFNpemVGb3JTaWRlKGdy
aWRDb250YWluZXIsIHNpZGUpOworICAgIE5hbWVkTGluZUNvbGxlY3Rpb24gbGluZXNDb2xsZWN0
aW9uKGdyaWRDb250YWluZXIuc3R5bGUoKSwgcG9zaXRpb24ubmFtZWRHcmlkTGluZSgpLCBkaXJl
Y3Rpb25Gcm9tU2lkZShzaWRlKSwgbGFzdExpbmUsIGdyaWRDb250YWluZXIuYXV0b1JlcGVhdENv
dW50Rm9yRGlyZWN0aW9uKGRpcmVjdGlvbkZyb21TaWRlKHNpZGUpKSk7CiAgICAgcmV0dXJuIGRl
ZmluaXRlR3JpZFNwYW5XaXRoTmFtZWRMaW5lU3BhbkFnYWluc3RPcHBvc2l0ZShvcHBvc2l0ZUxp
bmUsIHBvc2l0aW9uLCBzaWRlLCBsYXN0TGluZSwgbGluZXNDb2xsZWN0aW9uKTsKIH0KIAotc3Rh
dGljIEdyaWRTcGFuIHJlc29sdmVHcmlkUG9zaXRpb25BZ2FpbnN0T3Bwb3NpdGVQb3NpdGlvbihj
b25zdCBSZW5kZXJTdHlsZSYgZ3JpZENvbnRhaW5lclN0eWxlLCBpbnQgb3Bwb3NpdGVMaW5lLCBj
b25zdCBHcmlkUG9zaXRpb24mIHBvc2l0aW9uLCBHcmlkUG9zaXRpb25TaWRlIHNpZGUsIHVuc2ln
bmVkIGF1dG9SZXBlYXRUcmFja3NDb3VudCkKK3N0YXRpYyBHcmlkU3BhbiByZXNvbHZlR3JpZFBv
c2l0aW9uQWdhaW5zdE9wcG9zaXRlUG9zaXRpb24oY29uc3QgUmVuZGVyR3JpZCYgZ3JpZENvbnRh
aW5lciwgaW50IG9wcG9zaXRlTGluZSwgY29uc3QgR3JpZFBvc2l0aW9uJiBwb3NpdGlvbiwgR3Jp
ZFBvc2l0aW9uU2lkZSBzaWRlKQogewogICAgIGlmIChwb3NpdGlvbi5pc0F1dG8oKSkgewogICAg
ICAgICBpZiAoaXNTdGFydFNpZGUoc2lkZSkpCkBAIC0yNzUsNyArMzE5LDcgQEAgc3RhdGljIEdy
aWRTcGFuIHJlc29sdmVHcmlkUG9zaXRpb25BZ2FpbnN0T3Bwb3NpdGVQb3NpdGlvbihjb25zdCBS
ZW5kZXJTdHlsZSYgZ3IKIAogICAgIGlmICghcG9zaXRpb24ubmFtZWRHcmlkTGluZSgpLmlzTnVs
bCgpKSB7CiAgICAgICAgIC8vIHNwYW4gMiAnYycgLT4gd2UgbmVlZCB0byBmaW5kIHRoZSBhcHBy
b3ByaWF0ZSBncmlkIGxpbmUgYmVmb3JlIC8gYWZ0ZXIgb3VyIG9wcG9zaXRlIHBvc2l0aW9uLgot
ICAgICAgICByZXR1cm4gcmVzb2x2ZU5hbWVkR3JpZExpbmVQb3NpdGlvbkFnYWluc3RPcHBvc2l0
ZVBvc2l0aW9uKGdyaWRDb250YWluZXJTdHlsZSwgb3Bwb3NpdGVMaW5lLCBwb3NpdGlvbiwgc2lk
ZSwgYXV0b1JlcGVhdFRyYWNrc0NvdW50KTsKKyAgICAgICAgcmV0dXJuIHJlc29sdmVOYW1lZEdy
aWRMaW5lUG9zaXRpb25BZ2FpbnN0T3Bwb3NpdGVQb3NpdGlvbihncmlkQ29udGFpbmVyLCBvcHBv
c2l0ZUxpbmUsIHBvc2l0aW9uLCBzaWRlKTsKICAgICB9CiAKICAgICAvLyAnc3BhbiAxJyBpcyBj
b250YWluZWQgaW5zaWRlIGEgc2luZ2xlIGdyaWQgdHJhY2sgcmVnYXJkbGVzcyBvZiB0aGUgZGly
ZWN0aW9uLgpAQCAtMzE1LDIxICszNTksMjEgQEAgdW5zaWduZWQgR3JpZFBvc2l0aW9uc1Jlc29s
dmVyOjpzcGFuU2l6ZUZvckF1dG9QbGFjZWRJdGVtKGNvbnN0IFJlbmRlckJveCYgZ3JpZEkKICAg
ICByZXR1cm4gcG9zaXRpb24uc3BhblBvc2l0aW9uKCk7CiB9CiAKLXN0YXRpYyBpbnQgcmVzb2x2
ZUdyaWRQb3NpdGlvbkZyb21TdHlsZShjb25zdCBSZW5kZXJTdHlsZSYgZ3JpZENvbnRhaW5lclN0
eWxlLCBjb25zdCBHcmlkUG9zaXRpb24mIHBvc2l0aW9uLCBHcmlkUG9zaXRpb25TaWRlIHNpZGUs
IHVuc2lnbmVkIGF1dG9SZXBlYXRUcmFja3NDb3VudCkKK3N0YXRpYyBpbnQgcmVzb2x2ZUdyaWRQ
b3NpdGlvbkZyb21TdHlsZShjb25zdCBSZW5kZXJHcmlkJiBncmlkQ29udGFpbmVyLCBjb25zdCBH
cmlkUG9zaXRpb24mIHBvc2l0aW9uLCBHcmlkUG9zaXRpb25TaWRlIHNpZGUpCiB7CiAgICAgc3dp
dGNoIChwb3NpdGlvbi50eXBlKCkpIHsKICAgICBjYXNlIEV4cGxpY2l0UG9zaXRpb246IHsKICAg
ICAgICAgQVNTRVJUKHBvc2l0aW9uLmludGVnZXJQb3NpdGlvbigpKTsKIAogICAgICAgICBpZiAo
IXBvc2l0aW9uLm5hbWVkR3JpZExpbmUoKS5pc051bGwoKSkKLSAgICAgICAgICAgIHJldHVybiBy
ZXNvbHZlTmFtZWRHcmlkTGluZVBvc2l0aW9uRnJvbVN0eWxlKGdyaWRDb250YWluZXJTdHlsZSwg
cG9zaXRpb24sIHNpZGUsIGF1dG9SZXBlYXRUcmFja3NDb3VudCk7CisgICAgICAgICAgICByZXR1
cm4gcmVzb2x2ZU5hbWVkR3JpZExpbmVQb3NpdGlvbkZyb21TdHlsZShncmlkQ29udGFpbmVyLCBw
b3NpdGlvbiwgc2lkZSk7CiAKICAgICAgICAgLy8gSGFuZGxlIDxpbnRlZ2VyPiBleHBsaWNpdCBw
b3NpdGlvbi4KICAgICAgICAgaWYgKHBvc2l0aW9uLmlzUG9zaXRpdmUoKSkKICAgICAgICAgICAg
IHJldHVybiBwb3NpdGlvbi5pbnRlZ2VyUG9zaXRpb24oKSAtIDE7CiAKICAgICAgICAgdW5zaWdu
ZWQgcmVzb2x2ZWRQb3NpdGlvbiA9IHN0ZDo6YWJzKHBvc2l0aW9uLmludGVnZXJQb3NpdGlvbigp
KSAtIDE7Ci0gICAgICAgIGNvbnN0IHVuc2lnbmVkIGVuZE9mVHJhY2sgPSBleHBsaWNpdEdyaWRT
aXplRm9yU2lkZShncmlkQ29udGFpbmVyU3R5bGUsIHNpZGUsIGF1dG9SZXBlYXRUcmFja3NDb3Vu
dCk7CisgICAgICAgIGNvbnN0IHVuc2lnbmVkIGVuZE9mVHJhY2sgPSBleHBsaWNpdEdyaWRTaXpl
Rm9yU2lkZShncmlkQ29udGFpbmVyLCBzaWRlKTsKIAogICAgICAgICByZXR1cm4gZW5kT2ZUcmFj
ayAtIHJlc29sdmVkUG9zaXRpb247CiAgICAgfQpAQCAtMzQxLDE0ICszODUsMTQgQEAgc3RhdGlj
IGludCByZXNvbHZlR3JpZFBvc2l0aW9uRnJvbVN0eWxlKGNvbnN0IFJlbmRlclN0eWxlJiBncmlk
Q29udGFpbmVyU3R5bGUsIGMKICAgICAgICAgU3RyaW5nIG5hbWVkR3JpZExpbmUgPSBwb3NpdGlv
bi5uYW1lZEdyaWRMaW5lKCk7CiAgICAgICAgIEFTU0VSVCghcG9zaXRpb24ubmFtZWRHcmlkTGlu
ZSgpLmlzTnVsbCgpKTsKIAotICAgICAgICB1bnNpZ25lZCBsYXN0TGluZSA9IGV4cGxpY2l0R3Jp
ZFNpemVGb3JTaWRlKGdyaWRDb250YWluZXJTdHlsZSwgc2lkZSwgYXV0b1JlcGVhdFRyYWNrc0Nv
dW50KTsKLSAgICAgICAgTmFtZWRMaW5lQ29sbGVjdGlvbiBpbXBsaWNpdExpbmVzKGdyaWRDb250
YWluZXJTdHlsZSwgaW1wbGljaXROYW1lZEdyaWRMaW5lRm9yU2lkZShuYW1lZEdyaWRMaW5lLCBz
aWRlKSwgZGlyZWN0aW9uRnJvbVNpZGUoc2lkZSksIGxhc3RMaW5lLCBhdXRvUmVwZWF0VHJhY2tz
Q291bnQpOworICAgICAgICB1bnNpZ25lZCBsYXN0TGluZSA9IGV4cGxpY2l0R3JpZFNpemVGb3JT
aWRlKGdyaWRDb250YWluZXIsIHNpZGUpOworICAgICAgICBOYW1lZExpbmVDb2xsZWN0aW9uIGlt
cGxpY2l0TGluZXMoZ3JpZENvbnRhaW5lci5zdHlsZSgpLCBpbXBsaWNpdE5hbWVkR3JpZExpbmVG
b3JTaWRlKG5hbWVkR3JpZExpbmUsIHNpZGUpLCBkaXJlY3Rpb25Gcm9tU2lkZShzaWRlKSwgbGFz
dExpbmUsIGdyaWRDb250YWluZXIuYXV0b1JlcGVhdENvdW50Rm9yRGlyZWN0aW9uKGRpcmVjdGlv
bkZyb21TaWRlKHNpZGUpKSk7CiAgICAgICAgIGlmIChpbXBsaWNpdExpbmVzLmhhc05hbWVkTGlu
ZXMoKSkKICAgICAgICAgICAgIHJldHVybiBpbXBsaWNpdExpbmVzLmZpcnN0UG9zaXRpb24oKTsK
IAogICAgICAgICAvLyBPdGhlcndpc2UsIGlmIHRoZXJlIGlzIGEgbmFtZWQgbGluZSB3aXRoIHRo
ZSBzcGVjaWZpZWQgbmFtZSwgY29udHJpYnV0ZXMgdGhlIGZpcnN0IHN1Y2ggbGluZSB0byB0aGUg
Z3JpZAogICAgICAgICAvLyBpdGVtJ3MgcGxhY2VtZW50LgotICAgICAgICBOYW1lZExpbmVDb2xs
ZWN0aW9uIGV4cGxpY2l0TGluZXMoZ3JpZENvbnRhaW5lclN0eWxlLCBuYW1lZEdyaWRMaW5lLCBk
aXJlY3Rpb25Gcm9tU2lkZShzaWRlKSwgbGFzdExpbmUsIGF1dG9SZXBlYXRUcmFja3NDb3VudCk7
CisgICAgICAgIE5hbWVkTGluZUNvbGxlY3Rpb24gZXhwbGljaXRMaW5lcyhncmlkQ29udGFpbmVy
LnN0eWxlKCksIG5hbWVkR3JpZExpbmUsIGRpcmVjdGlvbkZyb21TaWRlKHNpZGUpLCBsYXN0TGlu
ZSwgZ3JpZENvbnRhaW5lci5hdXRvUmVwZWF0Q291bnRGb3JEaXJlY3Rpb24oZGlyZWN0aW9uRnJv
bVNpZGUoc2lkZSkpKTsKICAgICAgICAgaWYgKGV4cGxpY2l0TGluZXMuaGFzTmFtZWRMaW5lcygp
KQogICAgICAgICAgICAgcmV0dXJuIGV4cGxpY2l0TGluZXMuZmlyc3RQb3NpdGlvbigpOwogCkBA
IC0zNjUsOCArNDA5LDExIEBAIHN0YXRpYyBpbnQgcmVzb2x2ZUdyaWRQb3NpdGlvbkZyb21TdHls
ZShjb25zdCBSZW5kZXJTdHlsZSYgZ3JpZENvbnRhaW5lclN0eWxlLCBjCiAgICAgcmV0dXJuIDA7
CiB9CiAKLUdyaWRTcGFuIEdyaWRQb3NpdGlvbnNSZXNvbHZlcjo6cmVzb2x2ZUdyaWRQb3NpdGlv
bnNGcm9tU3R5bGUoY29uc3QgUmVuZGVyU3R5bGUmIGdyaWRDb250YWluZXJTdHlsZSwgY29uc3Qg
UmVuZGVyQm94JiBncmlkSXRlbSwgR3JpZFRyYWNrU2l6aW5nRGlyZWN0aW9uIGRpcmVjdGlvbiwg
dW5zaWduZWQgYXV0b1JlcGVhdFRyYWNrc0NvdW50KQorR3JpZFNwYW4gR3JpZFBvc2l0aW9uc1Jl
c29sdmVyOjpyZXNvbHZlR3JpZFBvc2l0aW9uc0Zyb21TdHlsZShjb25zdCBSZW5kZXJCb3gmIGdy
aWRJdGVtLCBHcmlkVHJhY2tTaXppbmdEaXJlY3Rpb24gZGlyZWN0aW9uKQogeworICAgIGF1dG8q
IGdyaWRDb250YWluZXIgPSBkb3duY2FzdDxSZW5kZXJHcmlkPihncmlkSXRlbS5jb250YWluaW5n
QmxvY2soKSk7CisgICAgQVNTRVJUKGdyaWRDb250YWluZXIpOworCiAgICAgR3JpZFBvc2l0aW9u
IGluaXRpYWxQb3NpdGlvbiwgZmluYWxQb3NpdGlvbjsKICAgICBhZGp1c3RHcmlkUG9zaXRpb25z
RnJvbVN0eWxlKGdyaWRJdGVtLCBkaXJlY3Rpb24sIGluaXRpYWxQb3NpdGlvbiwgZmluYWxQb3Np
dGlvbik7CiAKQEAgLTM3OSwxOCArNDI2LDE4IEBAIEdyaWRTcGFuIEdyaWRQb3NpdGlvbnNSZXNv
bHZlcjo6cmVzb2x2ZUdyaWRQb3NpdGlvbnNGcm9tU3R5bGUoY29uc3QgUmVuZGVyU3R5bGUmCiAK
ICAgICBpZiAoaW5pdGlhbFBvc2l0aW9uLnNob3VsZEJlUmVzb2x2ZWRBZ2FpbnN0T3Bwb3NpdGVQ
b3NpdGlvbigpKSB7CiAgICAgICAgIC8vIEluZmVyIHRoZSBwb3NpdGlvbiBmcm9tIHRoZSBmaW5h
bCBwb3NpdGlvbiAoJ2F1dG8gLyAxJyBvciAnc3BhbiAyIC8gMycgY2FzZSkuCi0gICAgICAgIGF1
dG8gZW5kTGluZSA9IHJlc29sdmVHcmlkUG9zaXRpb25Gcm9tU3R5bGUoZ3JpZENvbnRhaW5lclN0
eWxlLCBmaW5hbFBvc2l0aW9uLCBmaW5hbFNpZGUsIGF1dG9SZXBlYXRUcmFja3NDb3VudCk7Ci0g
ICAgICAgIHJldHVybiByZXNvbHZlR3JpZFBvc2l0aW9uQWdhaW5zdE9wcG9zaXRlUG9zaXRpb24o
Z3JpZENvbnRhaW5lclN0eWxlLCBlbmRMaW5lLCBpbml0aWFsUG9zaXRpb24sIGluaXRpYWxTaWRl
LCBhdXRvUmVwZWF0VHJhY2tzQ291bnQpOworICAgICAgICBhdXRvIGVuZExpbmUgPSByZXNvbHZl
R3JpZFBvc2l0aW9uRnJvbVN0eWxlKCpncmlkQ29udGFpbmVyLCBmaW5hbFBvc2l0aW9uLCBmaW5h
bFNpZGUpOworICAgICAgICByZXR1cm4gcmVzb2x2ZUdyaWRQb3NpdGlvbkFnYWluc3RPcHBvc2l0
ZVBvc2l0aW9uKCpncmlkQ29udGFpbmVyLCBlbmRMaW5lLCBpbml0aWFsUG9zaXRpb24sIGluaXRp
YWxTaWRlKTsKICAgICB9CiAKICAgICBpZiAoZmluYWxQb3NpdGlvbi5zaG91bGRCZVJlc29sdmVk
QWdhaW5zdE9wcG9zaXRlUG9zaXRpb24oKSkgewogICAgICAgICAvLyBJbmZlciBvdXIgcG9zaXRp
b24gZnJvbSB0aGUgaW5pdGlhbCBwb3NpdGlvbiAoJzEgLyBhdXRvJyBvciAnMyAvIHNwYW4gMicg
Y2FzZSkuCi0gICAgICAgIGF1dG8gc3RhcnRMaW5lID0gcmVzb2x2ZUdyaWRQb3NpdGlvbkZyb21T
dHlsZShncmlkQ29udGFpbmVyU3R5bGUsIGluaXRpYWxQb3NpdGlvbiwgaW5pdGlhbFNpZGUsIGF1
dG9SZXBlYXRUcmFja3NDb3VudCk7Ci0gICAgICAgIHJldHVybiByZXNvbHZlR3JpZFBvc2l0aW9u
QWdhaW5zdE9wcG9zaXRlUG9zaXRpb24oZ3JpZENvbnRhaW5lclN0eWxlLCBzdGFydExpbmUsIGZp
bmFsUG9zaXRpb24sIGZpbmFsU2lkZSwgYXV0b1JlcGVhdFRyYWNrc0NvdW50KTsKKyAgICAgICAg
YXV0byBzdGFydExpbmUgPSByZXNvbHZlR3JpZFBvc2l0aW9uRnJvbVN0eWxlKCpncmlkQ29udGFp
bmVyLCBpbml0aWFsUG9zaXRpb24sIGluaXRpYWxTaWRlKTsKKyAgICAgICAgcmV0dXJuIHJlc29s
dmVHcmlkUG9zaXRpb25BZ2FpbnN0T3Bwb3NpdGVQb3NpdGlvbigqZ3JpZENvbnRhaW5lciwgc3Rh
cnRMaW5lLCBmaW5hbFBvc2l0aW9uLCBmaW5hbFNpZGUpOwogICAgIH0KIAotICAgIGludCBzdGFy
dExpbmUgPSByZXNvbHZlR3JpZFBvc2l0aW9uRnJvbVN0eWxlKGdyaWRDb250YWluZXJTdHlsZSwg
aW5pdGlhbFBvc2l0aW9uLCBpbml0aWFsU2lkZSwgYXV0b1JlcGVhdFRyYWNrc0NvdW50KTsKLSAg
ICBpbnQgZW5kTGluZSA9IHJlc29sdmVHcmlkUG9zaXRpb25Gcm9tU3R5bGUoZ3JpZENvbnRhaW5l
clN0eWxlLCBmaW5hbFBvc2l0aW9uLCBmaW5hbFNpZGUsIGF1dG9SZXBlYXRUcmFja3NDb3VudCk7
CisgICAgaW50IHN0YXJ0TGluZSA9IHJlc29sdmVHcmlkUG9zaXRpb25Gcm9tU3R5bGUoKmdyaWRD
b250YWluZXIsIGluaXRpYWxQb3NpdGlvbiwgaW5pdGlhbFNpZGUpOworICAgIGludCBlbmRMaW5l
ID0gcmVzb2x2ZUdyaWRQb3NpdGlvbkZyb21TdHlsZSgqZ3JpZENvbnRhaW5lciwgZmluYWxQb3Np
dGlvbiwgZmluYWxTaWRlKTsKIAogICAgIGlmIChzdGFydExpbmUgPiBlbmRMaW5lKQogICAgICAg
ICBzdGQ6OnN3YXAoc3RhcnRMaW5lLCBlbmRMaW5lKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9zdHlsZS9HcmlkUG9zaXRpb25zUmVzb2x2ZXIuaCBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9zdHlsZS9HcmlkUG9zaXRpb25zUmVzb2x2ZXIuaAppbmRleCA2MjNiNjJj
NmMyNDEuLjcyNDE5NTc3MzU0MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L3N0eWxlL0dyaWRQb3NpdGlvbnNSZXNvbHZlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9zdHlsZS9HcmlkUG9zaXRpb25zUmVzb2x2ZXIuaApAQCAtMzYsNiArMzYsNyBAQCBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIEdyaWRTcGFuOwogY2xhc3MgUmVuZGVyQm94OworY2xh
c3MgUmVuZGVyR3JpZDsKIGNsYXNzIFJlbmRlclN0eWxlOwogCiBlbnVtIEdyaWRUcmFja1Npemlu
Z0RpcmVjdGlvbiB7CkBAIC03Myw5ICs3NCw5IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgR3JpZFBv
c2l0aW9uU2lkZSBpbml0aWFsUG9zaXRpb25TaWRlKEdyaWRUcmFja1NpemluZ0RpcmVjdGlvbik7
CiAgICAgc3RhdGljIEdyaWRQb3NpdGlvblNpZGUgZmluYWxQb3NpdGlvblNpZGUoR3JpZFRyYWNr
U2l6aW5nRGlyZWN0aW9uKTsKICAgICBzdGF0aWMgdW5zaWduZWQgc3BhblNpemVGb3JBdXRvUGxh
Y2VkSXRlbShjb25zdCBSZW5kZXJCb3gmLCBHcmlkVHJhY2tTaXppbmdEaXJlY3Rpb24pOwotICAg
IHN0YXRpYyBHcmlkU3BhbiByZXNvbHZlR3JpZFBvc2l0aW9uc0Zyb21TdHlsZShjb25zdCBSZW5k
ZXJTdHlsZSYsIGNvbnN0IFJlbmRlckJveCYsIEdyaWRUcmFja1NpemluZ0RpcmVjdGlvbiwgdW5z
aWduZWQgYXV0b1JlcGVhdFRyYWNrc0NvdW50KTsKLSAgICBzdGF0aWMgdW5zaWduZWQgZXhwbGlj
aXRHcmlkQ29sdW1uQ291bnQoY29uc3QgUmVuZGVyU3R5bGUmLCB1bnNpZ25lZCBhdXRvUmVwZWF0
Q29sdW1uc0NvdW50KTsKLSAgICBzdGF0aWMgdW5zaWduZWQgZXhwbGljaXRHcmlkUm93Q291bnQo
Y29uc3QgUmVuZGVyU3R5bGUmLCB1bnNpZ25lZCBhdXRvUmVwZWF0Um93c0NvdW50KTsKKyAgICBz
dGF0aWMgR3JpZFNwYW4gcmVzb2x2ZUdyaWRQb3NpdGlvbnNGcm9tU3R5bGUoY29uc3QgUmVuZGVy
Qm94JiwgR3JpZFRyYWNrU2l6aW5nRGlyZWN0aW9uKTsKKyAgICBzdGF0aWMgdW5zaWduZWQgZXhw
bGljaXRHcmlkQ29sdW1uQ291bnQoY29uc3QgUmVuZGVyR3JpZCYpOworICAgIHN0YXRpYyB1bnNp
Z25lZCBleHBsaWNpdEdyaWRSb3dDb3VudChjb25zdCBSZW5kZXJHcmlkJik7CiB9OwogCiB9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
c3R5bGUvUmVuZGVyU3R5bGUuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5k
ZXJTdHlsZS5oCmluZGV4IGFjMTQyY2YwMDZkYS4uMDE5ZTZlYzcyNGVjIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaApAQCAtNTgxLDYgKzU4MSw4IEBA
IHB1YmxpYzoKICAgICBzaXplX3QgbmFtZWRHcmlkQXJlYVJvd0NvdW50KCkgY29uc3QgeyByZXR1
cm4gbV9yYXJlTm9uSW5oZXJpdGVkRGF0YS0+Z3JpZC0+bmFtZWRHcmlkQXJlYVJvd0NvdW50OyB9
CiAgICAgc2l6ZV90IG5hbWVkR3JpZEFyZWFDb2x1bW5Db3VudCgpIGNvbnN0IHsgcmV0dXJuIG1f
cmFyZU5vbkluaGVyaXRlZERhdGEtPmdyaWQtPm5hbWVkR3JpZEFyZWFDb2x1bW5Db3VudDsgfQog
ICAgIEdyaWRBdXRvRmxvdyBncmlkQXV0b0Zsb3coKSBjb25zdCB7IHJldHVybiBzdGF0aWNfY2Fz
dDxHcmlkQXV0b0Zsb3c+KG1fcmFyZU5vbkluaGVyaXRlZERhdGEtPmdyaWQtPmdyaWRBdXRvRmxv
dyk7IH0KKyAgICBib29sIGdyaWRTdWJncmlkUm93cygpIGNvbnN0IHsgcmV0dXJuIG1fcmFyZU5v
bkluaGVyaXRlZERhdGEtPmdyaWQtPnN1YmdyaWRSb3dzOyB9CisgICAgYm9vbCBncmlkU3ViZ3Jp
ZENvbHVtbnMoKSBjb25zdCB7IHJldHVybiBtX3JhcmVOb25Jbmhlcml0ZWREYXRhLT5ncmlkLT5z
dWJncmlkQ29sdW1uczsgfQogICAgIGJvb2wgaXNHcmlkQXV0b0Zsb3dEaXJlY3Rpb25Sb3coKSBj
b25zdCB7IHJldHVybiAobV9yYXJlTm9uSW5oZXJpdGVkRGF0YS0+Z3JpZC0+Z3JpZEF1dG9GbG93
ICYgSW50ZXJuYWxBdXRvRmxvd0RpcmVjdGlvblJvdyk7IH0KICAgICBib29sIGlzR3JpZEF1dG9G
bG93RGlyZWN0aW9uQ29sdW1uKCkgY29uc3QgeyByZXR1cm4gKG1fcmFyZU5vbkluaGVyaXRlZERh
dGEtPmdyaWQtPmdyaWRBdXRvRmxvdyAmIEludGVybmFsQXV0b0Zsb3dEaXJlY3Rpb25Db2x1bW4p
OyB9CiAgICAgYm9vbCBpc0dyaWRBdXRvRmxvd0FsZ29yaXRobVNwYXJzZSgpIGNvbnN0IHsgcmV0
dXJuIChtX3JhcmVOb25Jbmhlcml0ZWREYXRhLT5ncmlkLT5ncmlkQXV0b0Zsb3cgJiBJbnRlcm5h
bEF1dG9GbG93QWxnb3JpdGhtU3BhcnNlKTsgfQpAQCAtMTIwMyw2ICsxMjA1LDggQEAgcHVibGlj
OgogICAgIHZvaWQgc2V0TmFtZWRHcmlkQXJlYVJvd0NvdW50KHNpemVfdCByb3dDb3VudCkgeyBT
RVRfTkVTVEVEX1ZBUihtX3JhcmVOb25Jbmhlcml0ZWREYXRhLCBncmlkLCBuYW1lZEdyaWRBcmVh
Um93Q291bnQsIHJvd0NvdW50KTsgfQogICAgIHZvaWQgc2V0TmFtZWRHcmlkQXJlYUNvbHVtbkNv
dW50KHNpemVfdCBjb2x1bW5Db3VudCkgeyBTRVRfTkVTVEVEX1ZBUihtX3JhcmVOb25Jbmhlcml0
ZWREYXRhLCBncmlkLCBuYW1lZEdyaWRBcmVhQ29sdW1uQ291bnQsIGNvbHVtbkNvdW50KTsgfQog
ICAgIHZvaWQgc2V0R3JpZEF1dG9GbG93KEdyaWRBdXRvRmxvdyBmbG93KSB7IFNFVF9ORVNURURf
VkFSKG1fcmFyZU5vbkluaGVyaXRlZERhdGEsIGdyaWQsIGdyaWRBdXRvRmxvdywgZmxvdyk7IH0K
KyAgICB2b2lkIHNldEdyaWRTdWJncmlkUm93cyhib29sIHN1YmdyaWQpIHsgU0VUX05FU1RFRF9W
QVIobV9yYXJlTm9uSW5oZXJpdGVkRGF0YSwgZ3JpZCwgc3ViZ3JpZFJvd3MsIHN1YmdyaWQpOyB9
CisgICAgdm9pZCBzZXRHcmlkU3ViZ3JpZENvbHVtbnMoYm9vbCBzdWJncmlkKSB7IFNFVF9ORVNU
RURfVkFSKG1fcmFyZU5vbkluaGVyaXRlZERhdGEsIGdyaWQsIHN1YmdyaWRDb2x1bW5zLCBzdWJn
cmlkKTsgfQogICAgIHZvaWQgc2V0R3JpZEl0ZW1Db2x1bW5TdGFydChjb25zdCBHcmlkUG9zaXRp
b24mIGNvbHVtblN0YXJ0UG9zaXRpb24pIHsgU0VUX05FU1RFRF9WQVIobV9yYXJlTm9uSW5oZXJp
dGVkRGF0YSwgZ3JpZEl0ZW0sIGdyaWRDb2x1bW5TdGFydCwgY29sdW1uU3RhcnRQb3NpdGlvbik7
IH0KICAgICB2b2lkIHNldEdyaWRJdGVtQ29sdW1uRW5kKGNvbnN0IEdyaWRQb3NpdGlvbiYgY29s
dW1uRW5kUG9zaXRpb24pIHsgU0VUX05FU1RFRF9WQVIobV9yYXJlTm9uSW5oZXJpdGVkRGF0YSwg
Z3JpZEl0ZW0sIGdyaWRDb2x1bW5FbmQsIGNvbHVtbkVuZFBvc2l0aW9uKTsgfQogICAgIHZvaWQg
c2V0R3JpZEl0ZW1Sb3dTdGFydChjb25zdCBHcmlkUG9zaXRpb24mIHJvd1N0YXJ0UG9zaXRpb24p
IHsgU0VUX05FU1RFRF9WQVIobV9yYXJlTm9uSW5oZXJpdGVkRGF0YSwgZ3JpZEl0ZW0sIGdyaWRS
b3dTdGFydCwgcm93U3RhcnRQb3NpdGlvbik7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9zdHlsZS9TdHlsZUdyaWREYXRhLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9zdHlsZS9TdHlsZUdyaWREYXRhLmNwcAppbmRleCA1NjZmM2JiMWY3NDEuLjkyMzkxOTdj
NWZmNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlR3Jp
ZERhdGEuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZUdyaWRE
YXRhLmNwcApAQCAtNTUsNiArNTUsOCBAQCBTdHlsZUdyaWREYXRhOjpTdHlsZUdyaWREYXRhKCkK
ICAgICAsIGF1dG9SZXBlYXRSb3dzSW5zZXJ0aW9uUG9pbnQoUmVuZGVyU3R5bGU6OmluaXRpYWxH
cmlkQXV0b1JlcGVhdEluc2VydGlvblBvaW50KCkpCiAgICAgLCBhdXRvUmVwZWF0Q29sdW1uc1R5
cGUoUmVuZGVyU3R5bGU6OmluaXRpYWxHcmlkQXV0b1JlcGVhdFR5cGUoKSkKICAgICAsIGF1dG9S
ZXBlYXRSb3dzVHlwZShSZW5kZXJTdHlsZTo6aW5pdGlhbEdyaWRBdXRvUmVwZWF0VHlwZSgpKQor
ICAgICwgc3ViZ3JpZFJvd3MoZmFsc2UpCisgICAgLCBzdWJncmlkQ29sdW1ucyhmYWxzZSkKIHsK
IH0KIApAQCAtODQsNiArODYsOCBAQCBpbmxpbmUgU3R5bGVHcmlkRGF0YTo6U3R5bGVHcmlkRGF0
YShjb25zdCBTdHlsZUdyaWREYXRhJiBvKQogICAgICwgYXV0b1JlcGVhdFJvd3NJbnNlcnRpb25Q
b2ludChvLmF1dG9SZXBlYXRSb3dzSW5zZXJ0aW9uUG9pbnQpCiAgICAgLCBhdXRvUmVwZWF0Q29s
dW1uc1R5cGUoby5hdXRvUmVwZWF0Q29sdW1uc1R5cGUpCiAgICAgLCBhdXRvUmVwZWF0Um93c1R5
cGUoby5hdXRvUmVwZWF0Um93c1R5cGUpCisgICAgLCBzdWJncmlkUm93cyhvLnN1YmdyaWRSb3dz
KQorICAgICwgc3ViZ3JpZENvbHVtbnMoby5zdWJncmlkQ29sdW1ucykKIHsKIH0KIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlR3JpZERhdGEuaCBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZUdyaWREYXRhLmgKaW5kZXggNDNkZTM4
NjBkNWE5Li5lYjliMzJlZjkwYzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9zdHlsZS9TdHlsZUdyaWREYXRhLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0
eWxlL1N0eWxlR3JpZERhdGEuaApAQCAtNTcsNyArNTcsOCBAQCBwdWJsaWM6CiAgICAgICAgICAg
ICAmJiBvcmRlcmVkTmFtZWRHcmlkUm93TGluZXMgPT0gby5vcmRlcmVkTmFtZWRHcmlkUm93TGlu
ZXMgJiYgb3JkZXJlZE5hbWVkR3JpZENvbHVtbkxpbmVzID09IG8ub3JkZXJlZE5hbWVkR3JpZENv
bHVtbkxpbmVzCiAgICAgICAgICAgICAmJiBncmlkQXV0b1JlcGVhdENvbHVtbnMgPT0gby5ncmlk
QXV0b1JlcGVhdENvbHVtbnMgJiYgZ3JpZEF1dG9SZXBlYXRSb3dzID09IG8uZ3JpZEF1dG9SZXBl
YXRSb3dzCiAgICAgICAgICAgICAmJiBhdXRvUmVwZWF0Q29sdW1uc0luc2VydGlvblBvaW50ID09
IG8uYXV0b1JlcGVhdENvbHVtbnNJbnNlcnRpb25Qb2ludCAmJiBhdXRvUmVwZWF0Um93c0luc2Vy
dGlvblBvaW50ID09IG8uYXV0b1JlcGVhdFJvd3NJbnNlcnRpb25Qb2ludAotICAgICAgICAgICAg
JiYgYXV0b1JlcGVhdENvbHVtbnNUeXBlID09IG8uYXV0b1JlcGVhdENvbHVtbnNUeXBlICYmIGF1
dG9SZXBlYXRSb3dzVHlwZSA9PSBvLmF1dG9SZXBlYXRSb3dzVHlwZTsKKyAgICAgICAgICAgICYm
IGF1dG9SZXBlYXRDb2x1bW5zVHlwZSA9PSBvLmF1dG9SZXBlYXRDb2x1bW5zVHlwZSAmJiBhdXRv
UmVwZWF0Um93c1R5cGUgPT0gby5hdXRvUmVwZWF0Um93c1R5cGUgJiYgc3ViZ3JpZFJvd3MgPT0g
by5zdWJncmlkUm93cworICAgICAgICAgICAgJiYgc3ViZ3JpZENvbHVtbnMgPT0gby5zdWJncmlk
Q29sdW1uczsKICAgICB9CiAKICAgICBib29sIG9wZXJhdG9yIT0oY29uc3QgU3R5bGVHcmlkRGF0
YSYgbykgY29uc3QKQEAgLTEwMiw2ICsxMDMsOSBAQCBwdWJsaWM6CiAgICAgQXV0b1JlcGVhdFR5
cGUgYXV0b1JlcGVhdENvbHVtbnNUeXBlOwogICAgIEF1dG9SZXBlYXRUeXBlIGF1dG9SZXBlYXRS
b3dzVHlwZTsKIAorICAgIGJvb2wgc3ViZ3JpZFJvd3M7CisgICAgYm9vbCBzdWJncmlkQ29sdW1u
czsKKwogcHJpdmF0ZToKICAgICBTdHlsZUdyaWREYXRhKCk7CiAgICAgU3R5bGVHcmlkRGF0YShj
b25zdCBTdHlsZUdyaWREYXRhJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9T
dHlsZUJ1aWxkZXJDb252ZXJ0ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlQnVpbGRl
ckNvbnZlcnRlci5oCmluZGV4IDBmOTBiYzIyNTllZC4uMzc4YTE1NGI2NjllIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZUJ1aWxkZXJDb252ZXJ0ZXIuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9zdHlsZS9TdHlsZUJ1aWxkZXJDb252ZXJ0ZXIuaApAQCAtNDQsNiArNDQsNyBA
QAogI2luY2x1ZGUgIkNTU1ByaW1pdGl2ZVZhbHVlTWFwcGluZ3MuaCIKICNpbmNsdWRlICJDU1NS
YXlWYWx1ZS5oIgogI2luY2x1ZGUgIkNTU1JlZmxlY3RWYWx1ZS5oIgorI2luY2x1ZGUgIkNTU1N1
YmdyaWRWYWx1ZS5oIgogI2luY2x1ZGUgIkNhbGNFeHByZXNzaW9uTGVuZ3RoLmgiCiAjaW5jbHVk
ZSAiQ2FsY0V4cHJlc3Npb25PcGVyYXRpb24uaCIKICNpbmNsdWRlICJGb250UGFsZXR0ZS5oIgpA
QCAtMTAwNCw2ICsxMDA1LDcgQEAgcHVibGljOgogICAgIE9yZGVyZWROYW1lZEdyaWRMaW5lc01h
cCBtX2F1dG9SZXBlYXRPcmRlcmVkTmFtZWRHcmlkTGluZXM7CiAgICAgdW5zaWduZWQgbV9hdXRv
UmVwZWF0SW5zZXJ0aW9uUG9pbnQgeyBSZW5kZXJTdHlsZTo6aW5pdGlhbEdyaWRBdXRvUmVwZWF0
SW5zZXJ0aW9uUG9pbnQoKSB9OwogICAgIEF1dG9SZXBlYXRUeXBlIG1fYXV0b1JlcGVhdFR5cGUg
eyBSZW5kZXJTdHlsZTo6aW5pdGlhbEdyaWRBdXRvUmVwZWF0VHlwZSgpIH07CisgICAgYm9vbCBp
c1N1YmdyaWQgeyBmYWxzZSB9OwogfTsKIAogaW5saW5lIGJvb2wgQnVpbGRlckNvbnZlcnRlcjo6
Y3JlYXRlR3JpZFRyYWNrTGlzdChjb25zdCBDU1NWYWx1ZSYgdmFsdWUsIFRyYWNrc0RhdGEmIHRy
YWNrc0RhdGEsIEJ1aWxkZXJTdGF0ZSYgYnVpbGRlclN0YXRlKQpAQCAtMTAxNywxNCArMTAxOSwy
MyBAQCBpbmxpbmUgYm9vbCBCdWlsZGVyQ29udmVydGVyOjpjcmVhdGVHcmlkVHJhY2tMaXN0KGNv
bnN0IENTU1ZhbHVlJiB2YWx1ZSwgVHJhY2tzRAogCiAgICAgdW5zaWduZWQgY3VycmVudE5hbWVk
R3JpZExpbmUgPSAwOwogICAgIGF1dG8gaGFuZGxlTGluZU5hbWVPclRyYWNrU2l6ZSA9IFsmXShj
b25zdCBDU1NWYWx1ZSYgY3VycmVudFZhbHVlKSB7Ci0gICAgICAgIGlmIChpczxDU1NHcmlkTGlu
ZU5hbWVzVmFsdWU+KGN1cnJlbnRWYWx1ZSkpCisgICAgICAgIGlmIChpczxDU1NHcmlkTGluZU5h
bWVzVmFsdWU+KGN1cnJlbnRWYWx1ZSkpIHsKICAgICAgICAgICAgIGNyZWF0ZUdyaWRMaW5lTmFt
ZXNMaXN0KGN1cnJlbnRWYWx1ZSwgY3VycmVudE5hbWVkR3JpZExpbmUsIHRyYWNrc0RhdGEubV9u
YW1lZEdyaWRMaW5lcywgdHJhY2tzRGF0YS5tX29yZGVyZWROYW1lZEdyaWRMaW5lcyk7Ci0gICAg
ICAgIGVsc2UgeworICAgICAgICAgICAgLy8gU3ViZ3JpZHMgb25seSBoYXZlIGxpbmUgbmFtZXMg
ZGVmaW5lZCwgbm90IHRyYWNrIHNpemVzLCBzbyB3ZSB3YW50IG91ciBjb3VudAorICAgICAgICAg
ICAgLy8gdG8gYmUgdGhlIG51bWJlciBvZiBsaW5lcyBuYW1lZCByYXRoZXIgdGhhbiBudW1iZXIg
b2Ygc2l6ZWQgdHJhY2tzLgorICAgICAgICAgICAgaWYgKHRyYWNrc0RhdGEuaXNTdWJncmlkKSB7
CisgICAgICAgICAgICAgICAgdHJhY2tzRGF0YS5tX3RyYWNrU2l6ZXMuYXBwZW5kKEdyaWRUcmFj
a1NpemUoTGVuZ3RoKExlbmd0aFR5cGU6OkF1dG8pKSk7CisgICAgICAgICAgICAgICAgY3VycmVu
dE5hbWVkR3JpZExpbmUrKzsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBlbHNlIHsKICAgICAg
ICAgICAgICsrY3VycmVudE5hbWVkR3JpZExpbmU7CiAgICAgICAgICAgICB0cmFja3NEYXRhLm1f
dHJhY2tTaXplcy5hcHBlbmQoY3JlYXRlR3JpZFRyYWNrU2l6ZShjdXJyZW50VmFsdWUsIGJ1aWxk
ZXJTdGF0ZSkpOwogICAgICAgICB9CiAgICAgfTsKIAorICAgIGlmIChpczxDU1NTdWJncmlkVmFs
dWU+KHZhbHVlKSkKKyAgICAgICAgdHJhY2tzRGF0YS5pc1N1YmdyaWQgPSB0cnVlOworCiAgICAg
Zm9yIChhdXRvJiBjdXJyZW50VmFsdWUgOiBkb3duY2FzdDxDU1NWYWx1ZUxpc3Q+KHZhbHVlKSkg
ewogICAgICAgICBpZiAoaXM8Q1NTR3JpZEF1dG9SZXBlYXRWYWx1ZT4oY3VycmVudFZhbHVlKSkg
ewogICAgICAgICAgICAgQVNTRVJUKHRyYWNrc0RhdGEubV9hdXRvUmVwZWF0VHJhY2tTaXplcy5p
c0VtcHR5KCkpOwpAQCAtMTAzNSw2ICsxMDQ2LDEwIEBAIGlubGluZSBib29sIEJ1aWxkZXJDb252
ZXJ0ZXI6OmNyZWF0ZUdyaWRUcmFja0xpc3QoY29uc3QgQ1NTVmFsdWUmIHZhbHVlLCBUcmFja3NE
CiAgICAgICAgICAgICBmb3IgKGF1dG8mIGF1dG9SZXBlYXRWYWx1ZSA6IGRvd25jYXN0PENTU1Zh
bHVlTGlzdD4oY3VycmVudFZhbHVlLmdldCgpKSkgewogICAgICAgICAgICAgICAgIGlmIChpczxD
U1NHcmlkTGluZU5hbWVzVmFsdWU+KGF1dG9SZXBlYXRWYWx1ZSkpIHsKICAgICAgICAgICAgICAg
ICAgICAgY3JlYXRlR3JpZExpbmVOYW1lc0xpc3QoYXV0b1JlcGVhdFZhbHVlLmdldCgpLCBhdXRv
UmVwZWF0SW5kZXgsIHRyYWNrc0RhdGEubV9hdXRvUmVwZWF0TmFtZWRHcmlkTGluZXMsIHRyYWNr
c0RhdGEubV9hdXRvUmVwZWF0T3JkZXJlZE5hbWVkR3JpZExpbmVzKTsKKyAgICAgICAgICAgICAg
ICAgICAgaWYgKHRyYWNrc0RhdGEuaXNTdWJncmlkKSB7CisgICAgICAgICAgICAgICAgICAgICAg
ICB0cmFja3NEYXRhLm1fYXV0b1JlcGVhdFRyYWNrU2l6ZXMuYXBwZW5kKEdyaWRUcmFja1NpemUo
TGVuZ3RoKExlbmd0aFR5cGU6OkF1dG8pKSk7CisgICAgICAgICAgICAgICAgICAgICAgICArK2F1
dG9SZXBlYXRJbmRleDsKKyAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAg
ICBjb250aW51ZTsKICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgKythdXRvUmVw
ZWF0SW5kZXg7CkBAIC0xMDU4LDcgKzEwNzMsNyBAQCBpbmxpbmUgYm9vbCBCdWlsZGVyQ29udmVy
dGVyOjpjcmVhdGVHcmlkVHJhY2tMaXN0KGNvbnN0IENTU1ZhbHVlJiB2YWx1ZSwgVHJhY2tzRAog
CiAgICAgLy8gVGhlIHBhcnNlciBzaG91bGQgaGF2ZSByZWplY3RlZCBhbnkgPHRyYWNrLWxpc3Q+
IHdpdGhvdXQgYW55IDx0cmFjay1zaXplPiBhcwogICAgIC8vIHRoaXMgaXMgbm90IGNvbmZvcm1h
bnQgdG8gdGhlIHN5bnRheC4KLSAgICBBU1NFUlQoIXRyYWNrc0RhdGEubV90cmFja1NpemVzLmlz
RW1wdHkoKSB8fCAhdHJhY2tzRGF0YS5tX2F1dG9SZXBlYXRUcmFja1NpemVzLmlzRW1wdHkoKSk7
CisgICAgQVNTRVJUKCF0cmFja3NEYXRhLm1fdHJhY2tTaXplcy5pc0VtcHR5KCkgfHwgIXRyYWNr
c0RhdGEubV9hdXRvUmVwZWF0VHJhY2tTaXplcy5pc0VtcHR5KCkgfHwgdHJhY2tzRGF0YS5pc1N1
YmdyaWQpOwogICAgIHJldHVybiB0cnVlOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9zdHlsZS9TdHlsZUJ1aWxkZXJDdXN0b20uaCBiL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxl
QnVpbGRlckN1c3RvbS5oCmluZGV4IDEzY2FkOWI3ZmQ3Ny4uMmFhNDI0ZjJiYmFkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZUJ1aWxkZXJDdXN0b20uaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9zdHlsZS9TdHlsZUJ1aWxkZXJDdXN0b20uaApAQCAtMTkwNSw3ICsxOTA1LDgg
QEAgaW5saW5lIHZvaWQgQnVpbGRlckN1c3RvbTo6YXBwbHlWYWx1ZUdyaWRUZW1wbGF0ZUFyZWFz
KEJ1aWxkZXJTdGF0ZSYgYnVpbGRlclN0YXQKICAgICBzdHlsZS5zZXRHcmlkQXV0b1JlcGVhdCMj
VHJhY2tUeXBlIyNzSW5zZXJ0aW9uUG9pbnQodHJhY2tzRGF0YSA/IHRyYWNrc0RhdGEtPm1fYXV0
b1JlcGVhdEluc2VydGlvblBvaW50IDogcGFyZW50U3R5bGUtPmdyaWRBdXRvUmVwZWF0IyNUcmFj
a1R5cGUjI3NJbnNlcnRpb25Qb2ludCgpKTsgXAogICAgIHN0eWxlLnNldEF1dG9SZXBlYXROYW1l
ZEdyaWQjI1RyYWNrVHlwZSMjTGluZXModHJhY2tzRGF0YSA/IHRyYWNrc0RhdGEtPm1fYXV0b1Jl
cGVhdE5hbWVkR3JpZExpbmVzIDogcGFyZW50U3R5bGUtPmF1dG9SZXBlYXROYW1lZEdyaWQjI1Ry
YWNrVHlwZSMjTGluZXMoKSk7IFwKICAgICBzdHlsZS5zZXRBdXRvUmVwZWF0T3JkZXJlZE5hbWVk
R3JpZCMjVHJhY2tUeXBlIyNMaW5lcyh0cmFja3NEYXRhID8gdHJhY2tzRGF0YS0+bV9hdXRvUmVw
ZWF0T3JkZXJlZE5hbWVkR3JpZExpbmVzIDogcGFyZW50U3R5bGUtPmF1dG9SZXBlYXRPcmRlcmVk
TmFtZWRHcmlkIyNUcmFja1R5cGUjI0xpbmVzKCkpOyBcCi0gICAgc3R5bGUuc2V0R3JpZEF1dG9S
ZXBlYXQjI1RyYWNrVHlwZSMjc1R5cGUodHJhY2tzRGF0YSA/IHRyYWNrc0RhdGEtPm1fYXV0b1Jl
cGVhdFR5cGUgOiBwYXJlbnRTdHlsZS0+Z3JpZEF1dG9SZXBlYXQjI1RyYWNrVHlwZSMjc1R5cGUo
KSk7CisgICAgc3R5bGUuc2V0R3JpZEF1dG9SZXBlYXQjI1RyYWNrVHlwZSMjc1R5cGUodHJhY2tz
RGF0YSA/IHRyYWNrc0RhdGEtPm1fYXV0b1JlcGVhdFR5cGUgOiBwYXJlbnRTdHlsZS0+Z3JpZEF1
dG9SZXBlYXQjI1RyYWNrVHlwZSMjc1R5cGUoKSk7IFwKKyAgICBzdHlsZS5zZXRHcmlkU3ViZ3Jp
ZCMjVHJhY2tUeXBlIyNzKHRyYWNrc0RhdGEgPyB0cmFja3NEYXRhLT5pc1N1YmdyaWQgOiBwYXJl
bnRTdHlsZS0+Z3JpZFN1YmdyaWQjI1RyYWNrVHlwZSMjcygpKTsKIAogI2RlZmluZSBTRVRfSU5I
RVJJVF9UUkFDS1NfREFUQShzdHlsZSwgcGFyZW50U3R5bGUsIFRyYWNrVHlwZSkgXAogICAgIEJ1
aWxkZXJDb252ZXJ0ZXI6OlRyYWNrc0RhdGEqIHRyYWNrc0RhdGEgPSBudWxscHRyOyBcCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>451958</attachid>
            <date>2022-02-14 16:51:08 -0800</date>
            <delta_ts>2022-02-16 13:04:01 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-236148-20220215135106.patch</filename>
            <type>text/plain</type>
            <size>13942</size>
            <attacher name="Matt Woodrow">mattwoodrow</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg5NzcwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZWU5MWY4YjFjMGNkZThi
YjkyM2I2YTMyOGM0OTg2NTMyOWU0NWU4My4uMzA0YjRhMTMxMjYxNTA4YjMzYTc5MDU4YzdmMWUy
ZmY3YjhhZGY1OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDgzIEBACisyMDIyLTAyLTE1ICBNYXR0
IFdvb2Ryb3cgIDxtYXR0d29vZHJvd0BhcHBsZS5jb20+CisKKyAgICAgICAgSW1wbGVtZW50IGdl
dENvbXB1dGVkU3R5bGUgZm9yIHN1YmdyaWRzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yMzYxNDgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBBZGRzIE9yZGVyZWROYW1lZExpbmVzQ29sbGVjdG9ySW5TdWJn
cmlkTGF5b3V0IHRvIGl0ZXJhdGUgdGhlIHN1YmdyaWQgbmFtZXMgbGlzdCwgc3RvcHBpbmcKKyAg
ICAgICAgYXQgdGhlIG51bWJlciBvZiBhY3R1YWwgdHJhY2tzIGluIHRoZSBncmlkLgorCisKKyAg
ICAgICAgKiBjc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6Ok9yZGVyZWROYW1lZExpbmVzQ29sbGVjdG9ySW5TdWJncmlkTGF5b3V0OjpPcmRlcmVk
TmFtZWRMaW5lc0NvbGxlY3RvckluU3ViZ3JpZExheW91dCk6CisgICAgICAgIChXZWJDb3JlOjpP
cmRlcmVkTmFtZWRMaW5lc0NvbGxlY3RvckluR3JpZExheW91dDo6Y29sbGVjdExpbmVOYW1lc0Zv
ckluZGV4IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6Ok9yZGVyZWROYW1lZExpbmVzQ29sbGVj
dG9ySW5TdWJncmlkTGF5b3V0Ojpjb2xsZWN0TGluZU5hbWVzRm9ySW5kZXggY29uc3QpOgorICAg
ICAgICAoV2ViQ29yZTo6YWRkVmFsdWVzRm9yTmFtZWRHcmlkTGluZXNBdEluZGV4KToKKyAgICAg
ICAgKFdlYkNvcmU6OnBvcHVsYXRlU3ViZ3JpZFRyYWNrTGlzdCk6CisgICAgICAgIChXZWJDb3Jl
Ojp2YWx1ZUZvckdyaWRUcmFja0xpc3QpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJHcmlk
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckdyaWQ6OmNvbXB1dGVBdXRvUmVwZWF0VHJh
Y2tzQ291bnQgY29uc3QpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJHcmlkLmg6CisgICAg
ICAgICogcmVuZGVyaW5nL3N0eWxlL0dyaWRQb3NpdGlvbnNSZXNvbHZlci5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpOYW1lZExpbmVDb2xsZWN0aW9uOjpjb250YWlucyBjb25zdCk6CisgICAgICAg
ICogc3R5bGUvU3R5bGVCdWlsZGVyQ29udmVydGVyLmg6CisgICAgICAgIChXZWJDb3JlOjpTdHls
ZTo6QnVpbGRlckNvbnZlcnRlcjo6Y3JlYXRlR3JpZFRyYWNrTGlzdCk6CisKKworICAgICAgICBJ
bmhlcml0IHRyYWNrIGNvdW50IGZyb20gcGFyZW50IGdyaWQgZm9yIHN1YmdyaWRkZWQgYXhlcyBh
bmQgY2xhbXAgaXRlbSBwbGFjZW1lbnQgdG8gdGhhdCBleHBsaWNpdCBncmlkLgorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM2MTIyCisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQ2hhbmdlcyBHcmlkUG9zaXRp
b25zUmVzb2x2ZXI6OmV4cGxpY2l0R3JpZDw+Q291bnQgdG8gcmV0dXJuIHRoZSBudW1iZXIgb2Yg
dHJhY2tzCisgICAgICAgIHNwYW5uZWQgaW4gdGhlIHBhcmVudCBncmlkLCBmb3IgYXhlcyB0aGF0
IGFyZSBhIHN1YmdyaWQuCisKKyAgICAgICAgVXBkYXRlcyBhZGp1c3RHcmlkUG9zaXRpb25zRm9y
U3R5bGUgdG8gdXNlIHRoZSBudW1iZXIgb2YgbGluZXMgc3BlY2lmaWVkIGluIHRoZQorICAgICAg
ICBzdWJncmlkIHByb3BlcnR5LCBmb3IgZ3JpZCBpdGVtcyB0aGF0IGFyZSBhbHNvIGEgc3ViZ3Jp
ZCBhbmQgaGF2ZSBhbiBvdGhlcndpc2UKKyAgICAgICAgaW5kZWZpbml0ZSBzcGFuLgorCisgICAg
ICAgIEFkZHMgY2xhbXBpbmcgc3VwcG9ydCB0byBHcmlkIHNvIHRoYXQgd2UgY2FuIHByZXZlbnQg
c3ViZ3JpZHMgZnJvbSBldmVyIGFkZGluZworICAgICAgICBuZXcgaW1wbGljaXQgdHJhY2tzLgor
CisgICAgICAgICogcmVuZGVyaW5nL0dyaWQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6R3JpZDo6
aW5zZXJ0KToKKyAgICAgICAgKFdlYkNvcmU6OkdyaWQ6OnNldENsYW1waW5nRm9yU3ViZ3JpZCk6
CisgICAgICAgIChXZWJDb3JlOjpHcmlkOjpjbGFtcEFuZFRyYW5zbGF0ZVRvSW1wbGljaXRHcmlk
KToKKyAgICAgICAgKFdlYkNvcmU6OkdyaWQ6OnNldE5lZWRzSXRlbXNQbGFjZW1lbnQpOgorICAg
ICAgICAqIHJlbmRlcmluZy9HcmlkLmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckdyaWQu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyR3JpZDo6Y29tcHV0ZUludHJpbnNpY0xvZ2lj
YWxXaWR0aHMgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyR3JpZDo6cGxhY2VJdGVt
c09uR3JpZCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJHcmlkOjpwb3B1bGF0ZUV4
cGxpY2l0R3JpZEFuZE9yZGVySXRlcmF0b3IgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVu
ZGVyR3JpZDo6cGxhY2VTcGVjaWZpZWRNYWpvckF4aXNJdGVtc09uR3JpZCBjb25zdCk6CisgICAg
ICAgIChXZWJDb3JlOjpSZW5kZXJHcmlkOjppc1N1YmdyaWQgY29uc3QpOgorICAgICAgICAoV2Vi
Q29yZTo6UmVuZGVyR3JpZDo6aXNTdWJncmlkUm93cyBjb25zdCk6CisgICAgICAgIChXZWJDb3Jl
OjpSZW5kZXJHcmlkOjppc1N1YmdyaWRDb2x1bW5zIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6
OlJlbmRlckdyaWQ6OmdyaWRBcmVhQnJlYWR0aEZvck91dE9mRmxvd0NoaWxkKToKKyAgICAgICAg
KFdlYkNvcmU6OlJlbmRlckdyaWQ6Om51bVRyYWNrcyBjb25zdCk6CisgICAgICAgIChXZWJDb3Jl
Ojp0cmFuc3Bvc2VkRGlyZWN0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckdyaWQ6OmNv
bXB1dGVHcmlkU3BhbkZvck91dE9mRmxvd0NoaWxkIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6
OlJlbmRlckdyaWQ6OmdyaWRTcGFuRm9yT3V0T2ZGbG93Q2hpbGQgY29uc3QpOgorICAgICAgICAo
V2ViQ29yZTo6UmVuZGVyR3JpZDo6Z3JpZFNwYW5Gb3JDaGlsZCBjb25zdCk6CisgICAgICAgICog
cmVuZGVyaW5nL1JlbmRlckdyaWQuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvc3R5bGUvR3JpZEFy
ZWEuaDoKKyAgICAgICAgKFdlYkNvcmU6OkdyaWRTcGFuOjppbnRlZ2VyU3BhbiBjb25zdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpHcmlkU3Bhbjo6dHJhbnNsYXRlVG8pOgorICAgICAgICAoV2ViQ29y
ZTo6R3JpZFNwYW46OmNsYW1wKToKKyAgICAgICAgKiByZW5kZXJpbmcvc3R5bGUvR3JpZFBvc2l0
aW9uc1Jlc29sdmVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmlzSW5kZWZpbml0ZVNwYW4pOgor
ICAgICAgICAoV2ViQ29yZTo6YWRqdXN0R3JpZFBvc2l0aW9uc0Zyb21TdHlsZSk6CisgICAgICAg
IChXZWJDb3JlOjpHcmlkUG9zaXRpb25zUmVzb2x2ZXI6OmV4cGxpY2l0R3JpZENvbHVtbkNvdW50
KToKKyAgICAgICAgKFdlYkNvcmU6OkdyaWRQb3NpdGlvbnNSZXNvbHZlcjo6ZXhwbGljaXRHcmlk
Um93Q291bnQpOgorICAgICAgICAoV2ViQ29yZTo6ZXhwbGljaXRHcmlkU2l6ZUZvclNpZGUpOgor
ICAgICAgICAoV2ViQ29yZTo6cmVzb2x2ZU5hbWVkR3JpZExpbmVQb3NpdGlvbkZyb21TdHlsZSk6
CisgICAgICAgIChXZWJDb3JlOjpyZXNvbHZlTmFtZWRHcmlkTGluZVBvc2l0aW9uQWdhaW5zdE9w
cG9zaXRlUG9zaXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6cmVzb2x2ZUdyaWRQb3NpdGlvbkFn
YWluc3RPcHBvc2l0ZVBvc2l0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OnJlc29sdmVHcmlkUG9z
aXRpb25Gcm9tU3R5bGUpOgorICAgICAgICAoV2ViQ29yZTo6R3JpZFBvc2l0aW9uc1Jlc29sdmVy
OjpyZXNvbHZlR3JpZFBvc2l0aW9uc0Zyb21TdHlsZSk6CisgICAgICAgICogcmVuZGVyaW5nL3N0
eWxlL0dyaWRQb3NpdGlvbnNSZXNvbHZlci5oOgorCiAyMDIyLTAyLTE1ICBNYXR0IFdvb2Ryb3cg
IDxtYXR0d29vZHJvd0BhcHBsZS5jb20+CiAKICAgICAgICAgSW5oZXJpdCB0cmFjayBjb3VudCBm
cm9tIHBhcmVudCBncmlkIGZvciBzdWJncmlkZGVkIGF4ZXMgYW5kIGNsYW1wIGl0ZW0gcGxhY2Vt
ZW50IHRvIHRoYXQgZXhwbGljaXQgZ3JpZC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nz
cy9DU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NT
U0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHAKaW5kZXggZDNiYWQ5YWQyM2I0N2Y5ODMxODcz
OWRkZDRjMDlmMDNkYmJjOTYzZi4uNzU5MDI1Njg3NWU0YWYxNTVkNjgzYTUwMWI5MWY5YTg4MmNl
OTIyYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNs
YXJhdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNs
YXJhdGlvbi5jcHAKQEAgLTg5OCw2ICs4OTgsMzggQEAgcHJpdmF0ZToKICAgICB1bnNpZ25lZCBt
X2F1dG9SZXBlYXRUcmFja0xpc3RMZW5ndGg7CiB9OwogCitjbGFzcyBPcmRlcmVkTmFtZWRMaW5l
c0NvbGxlY3RvckluU3ViZ3JpZExheW91dCA6IHB1YmxpYyBPcmRlcmVkTmFtZWRMaW5lc0NvbGxl
Y3RvciB7CitwdWJsaWM6CisgICAgT3JkZXJlZE5hbWVkTGluZXNDb2xsZWN0b3JJblN1YmdyaWRM
YXlvdXQoY29uc3QgUmVuZGVyU3R5bGUmIHN0eWxlLCBib29sIGlzUm93QXhpcywgdW5zaWduZWQg
dG90YWxUcmFja3NDb3VudCkKKyAgICAgICAgOiBPcmRlcmVkTmFtZWRMaW5lc0NvbGxlY3Rvcihz
dHlsZSwgaXNSb3dBeGlzKQorICAgICAgICAsIG1faW5zZXJ0aW9uUG9pbnQoaXNSb3dBeGlzID8g
c3R5bGUuZ3JpZEF1dG9SZXBlYXRDb2x1bW5zSW5zZXJ0aW9uUG9pbnQoKSA6IHN0eWxlLmdyaWRB
dXRvUmVwZWF0Um93c0luc2VydGlvblBvaW50KCkpCisgICAgICAgICwgbV9hdXRvUmVwZWF0VHJh
Y2tMaXN0TGVuZ3RoKChpc1Jvd0F4aXMgPyBzdHlsZS5hdXRvUmVwZWF0T3JkZXJlZE5hbWVkR3Jp
ZENvbHVtbkxpbmVzKCkgOiBzdHlsZS5hdXRvUmVwZWF0T3JkZXJlZE5hbWVkR3JpZFJvd0xpbmVz
KCkpLnNpemUoKSkKKyAgICAgICAgLCBtX3RvdGFsVHJhY2tzKHRvdGFsVHJhY2tzQ291bnQpCisg
ICAgeworICAgICAgICBpZiAoIW1fYXV0b1JlcGVhdFRyYWNrTGlzdExlbmd0aCkgeworICAgICAg
ICAgICAgbV9hdXRvUmVwZWF0VG90YWxUcmFja3MgPSAwOworICAgICAgICAgICAgcmV0dXJuOwor
ICAgICAgICB9CisgICAgICAgIC8vICsxIHRvIGNvbnZlcnQgZnJvbSB0cmFja3MgdG8gbGluZXMK
KyAgICAgICAgdW5zaWduZWQgbmFtZWQgPSAoaXNSb3dBeGlzID8gc3R5bGUub3JkZXJlZE5hbWVk
R3JpZENvbHVtbkxpbmVzKCkgOiBzdHlsZS5vcmRlcmVkTmFtZWRHcmlkUm93TGluZXMoKSkuc2l6
ZSgpOworICAgICAgICBpZiAobmFtZWQgPj0gbV90b3RhbFRyYWNrcyArIDEpIHsKKyAgICAgICAg
ICAgIG1fYXV0b1JlcGVhdFRvdGFsVHJhY2tzID0gMDsKKyAgICAgICAgICAgIHJldHVybjsKKyAg
ICAgICAgfQorICAgICAgICBtX2F1dG9SZXBlYXRUb3RhbFRyYWNrcyA9IChtX3RvdGFsVHJhY2tz
ICsgMSAtIG5hbWVkKSAvIG1fYXV0b1JlcGVhdFRyYWNrTGlzdExlbmd0aDsKKyAgICAgICAgbV9h
dXRvUmVwZWF0VG90YWxUcmFja3MgKj0gbV9hdXRvUmVwZWF0VHJhY2tMaXN0TGVuZ3RoOworICAg
IH0KKworICAgIHZvaWQgY29sbGVjdExpbmVOYW1lc0ZvckluZGV4KENTU0dyaWRMaW5lTmFtZXNW
YWx1ZSYsIHVuc2lnbmVkIGluZGV4KSBjb25zdCBvdmVycmlkZTsKKworICAgIGludCBuYW1lZEdy
aWRMaW5lQ291bnQoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBtX3RvdGFsVHJhY2tzICsgMTsg
fQorcHJpdmF0ZToKKyAgICB1bnNpZ25lZCBtX2luc2VydGlvblBvaW50OworICAgIHVuc2lnbmVk
IG1fYXV0b1JlcGVhdFRvdGFsVHJhY2tzOworICAgIHVuc2lnbmVkIG1fYXV0b1JlcGVhdFRyYWNr
TGlzdExlbmd0aDsKKyAgICB1bnNpZ25lZCBtX3RvdGFsVHJhY2tzOworfTsKKwogdm9pZCBPcmRl
cmVkTmFtZWRMaW5lc0NvbGxlY3Rvcjo6YXBwZW5kTGluZXMoQ1NTR3JpZExpbmVOYW1lc1ZhbHVl
JiBsaW5lTmFtZXNWYWx1ZSwgdW5zaWduZWQgaW5kZXgsIE5hbWVkTGluZXNUeXBlIHR5cGUpIGNv
bnN0CiB7CiAgICAgYXV0byBpdGVyID0gdHlwZSA9PSBOYW1lZExpbmVzID8gbV9vcmRlcmVkTmFt
ZWRHcmlkTGluZXMuZmluZChpbmRleCkgOiBtX29yZGVyZWROYW1lZEF1dG9SZXBlYXRHcmlkTGlu
ZXMuZmluZChpbmRleCk7CkBAIC05NTUsOSArOTg3LDMwIEBAIHZvaWQgT3JkZXJlZE5hbWVkTGlu
ZXNDb2xsZWN0b3JJbkdyaWRMYXlvdXQ6OmNvbGxlY3RMaW5lTmFtZXNGb3JJbmRleChDU1NHcmlk
TGluCiAgICAgYXBwZW5kTGluZXMobGluZU5hbWVzVmFsdWUsIGF1dG9SZXBlYXRJbmRleEluRmly
c3RSZXBldGl0aW9uLCBBdXRvUmVwZWF0TmFtZWRMaW5lcyk7CiB9CiAKK3ZvaWQgT3JkZXJlZE5h
bWVkTGluZXNDb2xsZWN0b3JJblN1YmdyaWRMYXlvdXQ6OmNvbGxlY3RMaW5lTmFtZXNGb3JJbmRl
eChDU1NHcmlkTGluZU5hbWVzVmFsdWUmIGxpbmVOYW1lc1ZhbHVlLCB1bnNpZ25lZCBpKSBjb25z
dAoreworICAgIGlmICghbV9hdXRvUmVwZWF0VHJhY2tMaXN0TGVuZ3RoIHx8IGkgPCBtX2luc2Vy
dGlvblBvaW50KSB7CisgICAgICAgIGFwcGVuZExpbmVzKGxpbmVOYW1lc1ZhbHVlLCBpLCBOYW1l
ZExpbmVzKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGlmIChpID49IG1faW5zZXJ0
aW9uUG9pbnQgKyBtX2F1dG9SZXBlYXRUb3RhbFRyYWNrcykgeworICAgICAgICBhcHBlbmRMaW5l
cyhsaW5lTmFtZXNWYWx1ZSwgaSAtIG1fYXV0b1JlcGVhdFRvdGFsVHJhY2tzLCBOYW1lZExpbmVz
KTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGlmICghbV9hdXRvUmVwZWF0VG90YWxU
cmFja3MpIHsKKyAgICAgICAgYXBwZW5kTGluZXMobGluZU5hbWVzVmFsdWUsIGksIE5hbWVkTGlu
ZXMpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgdW5zaWduZWQgYXV0b1JlcGVhdElu
ZGV4SW5GaXJzdFJlcGV0aXRpb24gPSAoaSAtIG1faW5zZXJ0aW9uUG9pbnQpICUgbV9hdXRvUmVw
ZWF0VHJhY2tMaXN0TGVuZ3RoOworICAgIGFwcGVuZExpbmVzKGxpbmVOYW1lc1ZhbHVlLCBhdXRv
UmVwZWF0SW5kZXhJbkZpcnN0UmVwZXRpdGlvbiwgQXV0b1JlcGVhdE5hbWVkTGluZXMpOworfQor
CiBzdGF0aWMgdm9pZCBhZGRWYWx1ZXNGb3JOYW1lZEdyaWRMaW5lc0F0SW5kZXgoT3JkZXJlZE5h
bWVkTGluZXNDb2xsZWN0b3ImIGNvbGxlY3RvciwgdW5zaWduZWQgaSwgQ1NTVmFsdWVMaXN0JiBs
aXN0LCBib29sIHJlbmRlckVtcHR5ID0gZmFsc2UpCiB7Ci0gICAgaWYgKGNvbGxlY3Rvci5pc0Vt
cHR5KCkpCisgICAgaWYgKGNvbGxlY3Rvci5pc0VtcHR5KCkgJiYgIXJlbmRlckVtcHR5KQogICAg
ICAgICByZXR1cm47CiAKICAgICBhdXRvIGxpbmVOYW1lcyA9IENTU0dyaWRMaW5lTmFtZXNWYWx1
ZTo6Y3JlYXRlKCk7CkBAIC0xMDM1LDkgKzEwODgsMTUgQEAgc3RhdGljIFJlZjxDU1NWYWx1ZT4g
dmFsdWVGb3JHcmlkVHJhY2tMaXN0KEdyaWRUcmFja1NpemluZ0RpcmVjdGlvbiBkaXJlY3Rpb24s
IFIKIAogICAgIC8vIElmIHRoZSBlbGVtZW50IGlzIGEgZ3JpZCBjb250YWluZXIsIHRoZSByZXNv
bHZlZCB2YWx1ZSBpcyB0aGUgdXNlZCB2YWx1ZSwKICAgICAvLyBzcGVjaWZ5aW5nIHRyYWNrIHNp
emVzIGluIHBpeGVscyBhbmQgZXhwYW5kaW5nIHRoZSByZXBlYXQoKSBub3RhdGlvbi4KLSAgICBp
ZiAoaXNSZW5kZXJHcmlkKSB7Ci0gICAgICAgIC8vIEZJWE1FOiBXZSBuZWVkIHRvIGhhbmRsZSBj
b21wdXRlZCBzdWJncmlkIGhlcmUuCisgICAgLy8gSWYgc3ViZ3JpZCB3YXMgc3BlY2lmaWVkLCBi
dXQgdGhlIGVsZW1lbnQgaXNuJ3QgYSBzdWJncmlkIChkdWUgdG8gbm90IGhhdmluZworICAgIC8v
IGFuIGFwcHJvcHJpYXRlIGdyaWQgcGFyZW50PyksIHRoZW4gd2UgZmFsbCBiYWNrIHRvIHVzaW5n
IHRoZSBzcGVjaWZpZWQgdmFsdWUuCisgICAgaWYgKGlzUmVuZGVyR3JpZCAmJiAoIWlzU3ViZ3Jp
ZCB8fCBkb3duY2FzdDxSZW5kZXJHcmlkPihyZW5kZXJlciktPmlzU3ViZ3JpZChkaXJlY3Rpb24p
KSkgewogICAgICAgICBhdXRvKiBncmlkID0gZG93bmNhc3Q8UmVuZGVyR3JpZD4ocmVuZGVyZXIp
OworICAgICAgICBpZiAoaXNTdWJncmlkKSB7CisgICAgICAgICAgICBPcmRlcmVkTmFtZWRMaW5l
c0NvbGxlY3RvckluU3ViZ3JpZExheW91dCBjb2xsZWN0b3Ioc3R5bGUsIGlzUm93QXhpcywgZ3Jp
ZC0+bnVtVHJhY2tzKGRpcmVjdGlvbikpOworICAgICAgICAgICAgcG9wdWxhdGVTdWJncmlkTGlu
ZU5hbWVMaXN0KGxpc3QuZ2V0KCksIGNvbGxlY3Rvcik7CisgICAgICAgICAgICByZXR1cm4gbGlz
dDsKKyAgICAgICAgfQogICAgICAgICBPcmRlcmVkTmFtZWRMaW5lc0NvbGxlY3RvckluR3JpZExh
eW91dCBjb2xsZWN0b3Ioc3R5bGUsIGlzUm93QXhpcywgZ3JpZC0+YXV0b1JlcGVhdENvdW50Rm9y
RGlyZWN0aW9uKGRpcmVjdGlvbiksIGF1dG9SZXBlYXRUcmFja1NpemVzLnNpemUoKSk7CiAgICAg
ICAgIC8vIE5hbWVkIGdyaWQgbGluZSBpbmRpY2VzIGFyZSByZWxhdGl2ZSB0byB0aGUgZXhwbGlj
aXQgZ3JpZCwgYnV0IHdlIGFyZSBpbmNsdWRpbmcgYWxsIHRyYWNrcy4KICAgICAgICAgLy8gU28g
d2UgbmVlZCB0byBzdWJ0cmFjdCB0aGUgbnVtYmVyIG9mIGxlYWRpbmcgaW1wbGljaXQgdHJhY2tz
IGluIG9yZGVyIHRvIGdldCB0aGUgcHJvcGVyIGxpbmUgaW5kZXguCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyR3JpZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyR3JpZC5jcHAKaW5kZXggZWI5MWZmZDMyNDEzNjI1YjJkNzk0ZDQwMjYxM2Nl
OWNmMzRkMDNiZi4uY2QyNTY4MWQxMzM4M2E0OTNmOWY3NzFiNzM0OWQ5ODE3ZTc0ZDBjYiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckdyaWQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJHcmlkLmNwcApAQCAtNDk1LDYgKzQ5NSw5IEBA
IHVuc2lnbmVkIFJlbmRlckdyaWQ6OmNvbXB1dGVBdXRvUmVwZWF0VHJhY2tzQ291bnQoR3JpZFRy
YWNrU2l6aW5nRGlyZWN0aW9uIGRpcmVjCiB7CiAgICAgQVNTRVJUKCFhdmFpbGFibGVTaXplIHx8
IGF2YWlsYWJsZVNpemUudmFsdWUoKSAhPSAtMSk7CiAgICAgYm9vbCBpc1Jvd0F4aXMgPSBkaXJl
Y3Rpb24gPT0gRm9yQ29sdW1uczsKKyAgICBpZiAoaXNSb3dBeGlzID8gaXNTdWJncmlkQ29sdW1u
cygpIDogaXNTdWJncmlkUm93cygpKQorICAgICAgICByZXR1cm4gMDsKKwogICAgIGNvbnN0IGF1
dG8mIGF1dG9SZXBlYXRUcmFja3MgPSBpc1Jvd0F4aXMgPyBzdHlsZSgpLmdyaWRBdXRvUmVwZWF0
Q29sdW1ucygpIDogc3R5bGUoKS5ncmlkQXV0b1JlcGVhdFJvd3MoKTsKICAgICB1bnNpZ25lZCBh
dXRvUmVwZWF0VHJhY2tMaXN0TGVuZ3RoID0gYXV0b1JlcGVhdFRyYWNrcy5zaXplKCk7CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJHcmlkLmggYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyR3JpZC5oCmluZGV4IDMxNzZkNWNmZDhhYTE4MWMxYzg5
MzE1YmZjNTBjNzdlNjYxNzhjNWEuLjczZDc0M2VjZTdlNTI0ZTEwZDcwNGUwOGZlNDc4NjRiYzky
YWY5NWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJHcmlkLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckdyaWQuaApAQCAtOTUsNiArOTUs
MTEgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gbV9ncmlkOwogICAgIH0KIAorICAgIHVuc2ln
bmVkIG51bVRyYWNrcyhHcmlkVHJhY2tTaXppbmdEaXJlY3Rpb24gZGlyZWN0aW9uKSBjb25zdAor
ICAgIHsKKyAgICAgICAgcmV0dXJuIG51bVRyYWNrcyhkaXJlY3Rpb24sIG1fZ3JpZCk7CisgICAg
fQorCiBwcml2YXRlOgogICAgIEl0ZW1Qb3NpdGlvbiBzZWxmQWxpZ25tZW50Tm9ybWFsQmVoYXZp
b3IoY29uc3QgUmVuZGVyQm94KiBjaGlsZCA9IG51bGxwdHIpIGNvbnN0IG92ZXJyaWRlCiAgICAg
ewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL0dyaWRQb3NpdGlv
bnNSZXNvbHZlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvR3JpZFBvc2l0
aW9uc1Jlc29sdmVyLmNwcAppbmRleCA2N2JiMzZlYWM0NjAxMThiYTU0MGRkNWE5Yzg4YjllNjll
ODVmYTQwLi45ZTNlNTYzYzljZjQzMWQyNmIzMDIzZGZkMTVlZDE3Mjg1M2ViOTFmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvR3JpZFBvc2l0aW9uc1Jlc29sdmVy
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvR3JpZFBvc2l0aW9uc1Jl
c29sdmVyLmNwcApAQCAtNzksNiArNzksMTEgQEAgTmFtZWRMaW5lQ29sbGVjdGlvbjo6TmFtZWRM
aW5lQ29sbGVjdGlvbihjb25zdCBSZW5kZXJTdHlsZSYgZ3JpZENvbnRhaW5lclN0eWxlLAogICAg
IG1faW5zZXJ0aW9uUG9pbnQgPSBpc1Jvd0F4aXMgPyBncmlkQ29udGFpbmVyU3R5bGUuZ3JpZEF1
dG9SZXBlYXRDb2x1bW5zSW5zZXJ0aW9uUG9pbnQoKSA6IGdyaWRDb250YWluZXJTdHlsZS5ncmlk
QXV0b1JlcGVhdFJvd3NJbnNlcnRpb25Qb2ludCgpOwogCiAgICAgbV9hdXRvUmVwZWF0VHJhY2tM
aXN0TGVuZ3RoID0gaXNSb3dBeGlzID8gZ3JpZENvbnRhaW5lclN0eWxlLmdyaWRBdXRvUmVwZWF0
Q29sdW1ucygpLnNpemUoKSA6IGdyaWRDb250YWluZXJTdHlsZS5ncmlkQXV0b1JlcGVhdFJvd3Mo
KS5zaXplKCk7CisgICAgLy8gVE9ETzogSGFuZGxlIHN1YmdyaWQgYXV0byByZXBlYXQgdHJhY2tz
CisgICAgaWYgKGlzUm93QXhpcyA/IGdyaWRDb250YWluZXJTdHlsZS5ncmlkU3ViZ3JpZENvbHVt
bnMoKSA6IGdyaWRDb250YWluZXJTdHlsZS5ncmlkU3ViZ3JpZFJvd3MoKSkgeworICAgICAgICBt
X2F1dG9SZXBlYXRUcmFja0xpc3RMZW5ndGggPSAwOworICAgICAgICBtX2F1dG9SZXBlYXROYW1l
ZExpbmVzSW5kZXhlcyA9IG51bGxwdHI7CisgICAgfQogfQogCiBib29sIE5hbWVkTGluZUNvbGxl
Y3Rpb246Omhhc0V4cGxpY2l0TmFtZWRMaW5lcygpIGNvbnN0CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucwppbmRl
eCA4ZmQzZWIwNzdjM2Y2ZDU5N2U1MWFiMTBlOWI3ZDQzMGNmNWQzMWE2Li44NDc5YzFjNTI0ZTBh
NmY2ZjczNTIyNWY5OTY5YTZhMGQyYmZjMDE3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9UZXN0
RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTE0NDYs
OCArMTQ0Niw2IEBAIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1ncmlk
L3N1YmdyaWQvc3ViZ3JpZC1tYnAtb3ZlcmZsb3ctMDAxLmh0CiBpbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2Nzcy9jc3MtZ3JpZC9zdWJncmlkL3N1YmdyaWQtbWJwLW92ZXJmbG93LTAw
Mi5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2Nzcy9jc3MtZ3JpZC9zdWJncmlkL3N1YmdyaWQtbWJwLW92ZXJmbG93LTAwMy5odG1sIFsg
SW1hZ2VPbmx5RmFpbHVyZSBdCiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9j
c3MtZ3JpZC9zdWJncmlkL3N1YmdyaWQtbWJwLW92ZXJmbG93LTAwNC5odG1sIFsgSW1hZ2VPbmx5
RmFpbHVyZSBdCi1pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtZ3JpZC9z
dWJncmlkL2dyaWQtc3ViZ3JpZGRlZC1heGlzLWF1dG8tcmVwZWF0ZXItY3Jhc2gtMDAxLmh0bWwg
WyBDcmFzaCBdCi1pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtZ3JpZC9z
dWJncmlkL2dyaWQtc3ViZ3JpZGRlZC1heGlzLWF1dG8tcmVwZWF0ZXItY3Jhc2gtMDAyLmh0bWwg
WyBDcmFzaCBdCiAKIHdlYmtpdC5vcmcvYi8xNDk4OTAgZmFzdC9jc3MtZ3JpZC1sYXlvdXQvZ3Jp
ZC1zaG9ydGhhbmRzLXN0eWxlLWZvcm1hdC5odG1sIFsgRmFpbHVyZSBdCiB3ZWJraXQub3JnL2Iv
MTkxNTA4IGZhc3QvY3NzLWdyaWQtbGF5b3V0L2NyYXNoLWxhcmdlLXBvc2l0aW9ucy5odG1sIFsg
U2tpcCBdCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2Nzcy9jc3MtZ3JpZC9zdWJncmlkL2dyaWQtc3ViZ3JpZGRlZC1heGlzLWF1dG8tcmVw
ZWF0ZXItY3Jhc2gtMDAxLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1ncmlkL3N1YmdyaWQvZ3JpZC1zdWJncmlkZGVkLWF4
aXMtYXV0by1yZXBlYXRlci1jcmFzaC0wMDEtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmNlNTY5
YzdlNTZkOWRhN2U5ZDllNjI5ZjQxMDY2YTUwZTg2ZTM5NGQKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtZ3JpZC9z
dWJncmlkL2dyaWQtc3ViZ3JpZGRlZC1heGlzLWF1dG8tcmVwZWF0ZXItY3Jhc2gtMDAxLWV4cGVj
dGVkLnR4dApAQCAtMCwwICsxLDcgQEAKK2xheWVyIGF0ICgwLDApIHNpemUgODAweDYwMAorICBS
ZW5kZXJWaWV3IGF0ICgwLDApIHNpemUgODAweDYwMAorbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4
MTYKKyAgUmVuZGVyQmxvY2sge0hUTUx9IGF0ICgwLDApIHNpemUgODAweDE2CisgICAgUmVuZGVy
Qm9keSB7Qk9EWX0gYXQgKDgsOCkgc2l6ZSA3ODR4MAorICAgICAgUmVuZGVyR3JpZCB7RElWfSBh
dCAoMCwwKSBzaXplIDc4NHgwCisgICAgICAgIFJlbmRlckJsb2NrIHtESVZ9IGF0ICgzOTIsMCkg
c2l6ZSAzOTJ4MApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9jc3MvY3NzLWdyaWQvc3ViZ3JpZC9ncmlkLXN1YmdyaWRkZWQtYXhpcy1hdXRv
LXJlcGVhdGVyLWNyYXNoLTAwMi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtZ3JpZC9zdWJncmlkL2dyaWQtc3ViZ3JpZGRl
ZC1heGlzLWF1dG8tcmVwZWF0ZXItY3Jhc2gtMDAyLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5k
YjYzYTVmNmIzNDcyNDZiZmEyODY2ODRlN2FjYzUyYzUxYTFjZDdlCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWdy
aWQvc3ViZ3JpZC9ncmlkLXN1YmdyaWRkZWQtYXhpcy1hdXRvLXJlcGVhdGVyLWNyYXNoLTAwMi1l
eHBlY3RlZC50eHQKQEAgLTAsMCArMSw1IEBACitsYXllciBhdCAoMCwwKSBzaXplIDgwMHg2MDAK
KyAgUmVuZGVyVmlldyBhdCAoMCwwKSBzaXplIDgwMHg2MDAKK2xheWVyIGF0ICgwLDApIHNpemUg
ODAweDgKKyAgUmVuZGVyQmxvY2sge0hUTUx9IGF0ICgwLDApIHNpemUgODAweDgKKyAgICBSZW5k
ZXJCb2R5IHtCT0RZfSBhdCAoOCw4KSBzaXplIDc4NHgwCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>451959</attachid>
            <date>2022-02-14 16:52:01 -0800</date>
            <delta_ts>2022-02-16 13:04:06 -0800</delta_ts>
            <desc>Patch for EWS</desc>
            <filename>ews-patch</filename>
            <type>text/plain</type>
            <size>57174</size>
            <attacher name="Matt Woodrow">mattwoodrow</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9U
ZXN0RXhwZWN0YXRpb25zCmluZGV4IDhmZDNlYjA3N2MzZi4uODQ3OWMxYzUyNGUwIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL1Rlc3RF
eHBlY3RhdGlvbnMKQEAgLTE0NDYsOCArMTQ0Niw2IEBAIGltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvY3NzL2Nzcy1ncmlkL3N1YmdyaWQvc3ViZ3JpZC1tYnAtb3ZlcmZsb3ctMDAxLmh0
CiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtZ3JpZC9zdWJncmlkL3N1
YmdyaWQtbWJwLW92ZXJmbG93LTAwMi5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCiBpbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtZ3JpZC9zdWJncmlkL3N1YmdyaWQtbWJw
LW92ZXJmbG93LTAwMy5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCiBpbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtZ3JpZC9zdWJncmlkL3N1YmdyaWQtbWJwLW92ZXJmbG93
LTAwNC5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCi1pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2Nzcy9jc3MtZ3JpZC9zdWJncmlkL2dyaWQtc3ViZ3JpZGRlZC1heGlzLWF1dG8tcmVw
ZWF0ZXItY3Jhc2gtMDAxLmh0bWwgWyBDcmFzaCBdCi1pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2Nzcy9jc3MtZ3JpZC9zdWJncmlkL2dyaWQtc3ViZ3JpZGRlZC1heGlzLWF1dG8tcmVw
ZWF0ZXItY3Jhc2gtMDAyLmh0bWwgWyBDcmFzaCBdCiAKIHdlYmtpdC5vcmcvYi8xNDk4OTAgZmFz
dC9jc3MtZ3JpZC1sYXlvdXQvZ3JpZC1zaG9ydGhhbmRzLXN0eWxlLWZvcm1hdC5odG1sIFsgRmFp
bHVyZSBdCiB3ZWJraXQub3JnL2IvMTkxNTA4IGZhc3QvY3NzLWdyaWQtbGF5b3V0L2NyYXNoLWxh
cmdlLXBvc2l0aW9ucy5odG1sIFsgU2tpcCBdCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2MvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZwpp
bmRleCBmMTY5MzY2MjQ1OGEuLjdkMjhmODkxOTA0OSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMjItMDItMTUgIE1hdHQgV29vZHJvdyAgPG1hdHR3
b29kcm93QGFwcGxlLmNvbT4KKworICAgICAgICBJbmhlcml0IHRyYWNrIGNvdW50IGZyb20gcGFy
ZW50IGdyaWQgZm9yIHN1YmdyaWRkZWQgYXhlcyBhbmQgY2xhbXAgaXRlbSBwbGFjZW1lbnQgdG8g
dGhhdCBleHBsaWNpdCBncmlkLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MjM2MTIyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgVGVzdCBjaGFuZ2VzIHRvIG1hdGNoIGxhdGVzdCBzcGVjLCBzdWJtaXR0ZWQg
dXBzdHJlYW0gYXMgaHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQvcHVs
bC8zMjYyOQorCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtZ3JpZC9zdWJn
cmlkL2xpbmUtbmFtZXMtMDAyLWV4cGVjdGVkLmh0bWw6CisgICAgICAgICogd2ViLXBsYXRmb3Jt
LXRlc3RzL2Nzcy9jc3MtZ3JpZC9zdWJncmlkL2xpbmUtbmFtZXMtMDA1LWV4cGVjdGVkLmh0bWw6
CisKIDIwMjItMDItMTQgIEFudHRpIEtvaXZpc3RvICA8YW50dGlAYXBwbGUuY29tPgogCiAgICAg
ICAgIFtDU1MgQ29udGFpbmVyIFF1ZXJpZXNdIEltcGxlbWVudCBmdWxsIHF1ZXJ5IHBhcnNlciBh
bmQgZXZhbHVhdG9yCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2Nzcy9jc3MtZ3JpZC9zdWJncmlkL2dyaWQtc3ViZ3JpZGRlZC1heGlzLWF1
dG8tcmVwZWF0ZXItY3Jhc2gtMDAxLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1ncmlkL3N1YmdyaWQvZ3JpZC1zdWJncmlk
ZGVkLWF4aXMtYXV0by1yZXBlYXRlci1jcmFzaC0wMDEtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uY2U1NjljN2U1NmQ5Ci0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nz
LWdyaWQvc3ViZ3JpZC9ncmlkLXN1YmdyaWRkZWQtYXhpcy1hdXRvLXJlcGVhdGVyLWNyYXNoLTAw
MS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw3IEBACitsYXllciBhdCAoMCwwKSBzaXplIDgwMHg2
MDAKKyAgUmVuZGVyVmlldyBhdCAoMCwwKSBzaXplIDgwMHg2MDAKK2xheWVyIGF0ICgwLDApIHNp
emUgODAweDE2CisgIFJlbmRlckJsb2NrIHtIVE1MfSBhdCAoMCwwKSBzaXplIDgwMHgxNgorICAg
IFJlbmRlckJvZHkge0JPRFl9IGF0ICg4LDgpIHNpemUgNzg0eDAKKyAgICAgIFJlbmRlckdyaWQg
e0RJVn0gYXQgKDAsMCkgc2l6ZSA3ODR4MAorICAgICAgICBSZW5kZXJCbG9jayB7RElWfSBhdCAo
MzkyLDApIHNpemUgMzkyeDAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1ncmlkL3N1YmdyaWQvZ3JpZC1zdWJncmlkZGVkLWF4
aXMtYXV0by1yZXBlYXRlci1jcmFzaC0wMDItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWdyaWQvc3ViZ3JpZC9ncmlkLXN1
YmdyaWRkZWQtYXhpcy1hdXRvLXJlcGVhdGVyLWNyYXNoLTAwMi1leHBlY3RlZC50eHQKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi5kYjYzYTVmNmIzNDcKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nz
cy9jc3MtZ3JpZC9zdWJncmlkL2dyaWQtc3ViZ3JpZGRlZC1heGlzLWF1dG8tcmVwZWF0ZXItY3Jh
c2gtMDAyLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDUgQEAKK2xheWVyIGF0ICgwLDApIHNpemUg
ODAweDYwMAorICBSZW5kZXJWaWV3IGF0ICgwLDApIHNpemUgODAweDYwMAorbGF5ZXIgYXQgKDAs
MCkgc2l6ZSA4MDB4OAorICBSZW5kZXJCbG9jayB7SFRNTH0gYXQgKDAsMCkgc2l6ZSA4MDB4OAor
ICAgIFJlbmRlckJvZHkge0JPRFl9IGF0ICg4LDgpIHNpemUgNzg0eDAKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1ncmlkL3N1
YmdyaWQvbGluZS1uYW1lcy0wMDItZXhwZWN0ZWQuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1ncmlkL3N1YmdyaWQvbGluZS1uYW1lcy0w
MDItZXhwZWN0ZWQuaHRtbAppbmRleCAwNGM1ODM5NTk2YzkuLjIzOTkzMjhiZWNjNCAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nz
LWdyaWQvc3ViZ3JpZC9saW5lLW5hbWVzLTAwMi1leHBlY3RlZC5odG1sCisrKyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1ncmlkL3N1YmdyaWQv
bGluZS1uYW1lcy0wMDItZXhwZWN0ZWQuaHRtbApAQCAtMTQsNyArMTQsNyBAQCBodG1sLGJvZHkg
ewogCiAuZ3JpZCB7CiAgIGRpc3BsYXk6IGdyaWQ7Ci0gIGdyaWQ6IGF1dG8gLyBbYV0gNTBweCA1
MHB4IFthXSA1MHB4IDUwcHggW2FdOworICBncmlkOiBhdXRvIC8gW2FdIDUwcHggNDBweCBbYV0g
MTBweCA1MHB4IFthXTsKICAgcGFkZGluZzogMjBweCAxMHB4OwogfQogCkBAIC0zMiw3ICszMiw3
IEBAIHggeyBiYWNrZ3JvdW5kOiBncmV5OyB9CiAKIDxkaXYgY2xhc3M9ImdyaWQiPgogICA8ZGl2
IGNsYXNzPSJzdWJncmlkIj4KLSAgICA8eCBzdHlsZT0iZ3JpZC1jb2x1bW46IDEgLyAzIj48L3g+
CisgICAgPHggc3R5bGU9ImdyaWQtY29sdW1uOiAzIC8gNCI+PC94PgogICA8L2Rpdj4KIDwvZGl2
PgogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2Nzcy9jc3MtZ3JpZC9zdWJncmlkL2xpbmUtbmFtZXMtMDA1LWV4cGVjdGVkLmh0bWwgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtZ3JpZC9z
dWJncmlkL2xpbmUtbmFtZXMtMDA1LWV4cGVjdGVkLmh0bWwKaW5kZXggNGM3ZjRiNTBmZDE2Li5j
ZmUxOGQxYjI2ZWQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvY3NzL2Nzcy1ncmlkL3N1YmdyaWQvbGluZS1uYW1lcy0wMDUtZXhwZWN0ZWQu
aHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nz
cy9jc3MtZ3JpZC9zdWJncmlkL2xpbmUtbmFtZXMtMDA1LWV4cGVjdGVkLmh0bWwKQEAgLTExNSw3
ICsxMTUsNyBAQCB4IHsKIDxkaXYgc3R5bGU9ImRpc3BsYXk6Z3JpZDsgd2lkdGg6NTAwcHg7IGdy
aWQtYXV0by1jb2x1bW5zOiA1MHB4OyI+CiA8aT48L2k+PGk+PC9pPjxpPjwvaT48aT48L2k+PGk+
PC9pPjxpPjwvaT48aT48L2k+PGk+PC9pPjxpPjwvaT48aT48L2k+CiAgIDxkaXYgY2xhc3M9InN1
YmdyaWQyIj4KLSAgICA8eCBzdHlsZT0iZ3JpZC1jb2x1bW46IHNwYW4gNCAvIDExIj54PC94Pgor
ICAgIDx4IHN0eWxlPSJncmlkLWNvbHVtbjogc3BhbiAzIC8gMTEiPng8L3g+CiAgIDwvZGl2Pgog
PC9kaXY+CiAKQEAgLTEyOSw3ICsxMjksNyBAQCB4IHsKIDxkaXYgc3R5bGU9ImRpc3BsYXk6Z3Jp
ZDsgZ3JpZDogYXV0byAvIHJlcGVhdCgxMCwgNTBweCkgcmVwZWF0KDEwLCBbYV0gNTBweCkgW2Fd
Ij4KIDxpPjwvaT48aT48L2k+PGk+PC9pPjxpPjwvaT48aT48L2k+PGk+PC9pPjxpPjwvaT48aT48
L2k+PGk+PC9pPjxpPjwvaT4KICAgPGRpdiBzdHlsZT0iZGlzcGxheTpncmlkOyBncmlkOmF1dG8v
c3ViZ3JpZDsgZ3JpZC1jb2x1bW46IHNwYW4gMTA7IGdyaWQtcm93OjIiPgotICAgIDx4IHN0eWxl
PSJncmlkLWNvbHVtbjogMSAvIDExIj54PC94PgorICAgIDx4IHN0eWxlPSJncmlkLWNvbHVtbjog
MTAgLyAxMSI+eDwveD4KICAgPC9kaXY+CiA8L2Rpdj4KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDMwYzQ4OTdl
MTFiNC4uMzA0YjRhMTMxMjYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTM4IEBACisyMDIyLTAy
LTE1ICBNYXR0IFdvb2Ryb3cgIDxtYXR0d29vZHJvd0BhcHBsZS5jb20+CisKKyAgICAgICAgSW1w
bGVtZW50IGdldENvbXB1dGVkU3R5bGUgZm9yIHN1YmdyaWRzCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzYxNDgKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGRzIE9yZGVyZWROYW1lZExpbmVzQ29sbGVj
dG9ySW5TdWJncmlkTGF5b3V0IHRvIGl0ZXJhdGUgdGhlIHN1YmdyaWQgbmFtZXMgbGlzdCwgc3Rv
cHBpbmcKKyAgICAgICAgYXQgdGhlIG51bWJlciBvZiBhY3R1YWwgdHJhY2tzIGluIHRoZSBncmlk
LgorCisKKyAgICAgICAgKiBjc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6Ok9yZGVyZWROYW1lZExpbmVzQ29sbGVjdG9ySW5TdWJncmlkTGF5b3V0
OjpPcmRlcmVkTmFtZWRMaW5lc0NvbGxlY3RvckluU3ViZ3JpZExheW91dCk6CisgICAgICAgIChX
ZWJDb3JlOjpPcmRlcmVkTmFtZWRMaW5lc0NvbGxlY3RvckluR3JpZExheW91dDo6Y29sbGVjdExp
bmVOYW1lc0ZvckluZGV4IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6Ok9yZGVyZWROYW1lZExp
bmVzQ29sbGVjdG9ySW5TdWJncmlkTGF5b3V0Ojpjb2xsZWN0TGluZU5hbWVzRm9ySW5kZXggY29u
c3QpOgorICAgICAgICAoV2ViQ29yZTo6YWRkVmFsdWVzRm9yTmFtZWRHcmlkTGluZXNBdEluZGV4
KToKKyAgICAgICAgKFdlYkNvcmU6OnBvcHVsYXRlU3ViZ3JpZFRyYWNrTGlzdCk6CisgICAgICAg
IChXZWJDb3JlOjp2YWx1ZUZvckdyaWRUcmFja0xpc3QpOgorICAgICAgICAqIHJlbmRlcmluZy9S
ZW5kZXJHcmlkLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckdyaWQ6OmNvbXB1dGVBdXRv
UmVwZWF0VHJhY2tzQ291bnQgY29uc3QpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJHcmlk
Lmg6CisgICAgICAgICogcmVuZGVyaW5nL3N0eWxlL0dyaWRQb3NpdGlvbnNSZXNvbHZlci5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpOYW1lZExpbmVDb2xsZWN0aW9uOjpjb250YWlucyBjb25zdCk6
CisgICAgICAgICogc3R5bGUvU3R5bGVCdWlsZGVyQ29udmVydGVyLmg6CisgICAgICAgIChXZWJD
b3JlOjpTdHlsZTo6QnVpbGRlckNvbnZlcnRlcjo6Y3JlYXRlR3JpZFRyYWNrTGlzdCk6CisKKwor
ICAgICAgICBJbmhlcml0IHRyYWNrIGNvdW50IGZyb20gcGFyZW50IGdyaWQgZm9yIHN1YmdyaWRk
ZWQgYXhlcyBhbmQgY2xhbXAgaXRlbSBwbGFjZW1lbnQgdG8gdGhhdCBleHBsaWNpdCBncmlkLgor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM2MTIyCisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQ2hhbmdlcyBH
cmlkUG9zaXRpb25zUmVzb2x2ZXI6OmV4cGxpY2l0R3JpZDw+Q291bnQgdG8gcmV0dXJuIHRoZSBu
dW1iZXIgb2YgdHJhY2tzCisgICAgICAgIHNwYW5uZWQgaW4gdGhlIHBhcmVudCBncmlkLCBmb3Ig
YXhlcyB0aGF0IGFyZSBhIHN1YmdyaWQuCisKKyAgICAgICAgVXBkYXRlcyBhZGp1c3RHcmlkUG9z
aXRpb25zRm9yU3R5bGUgdG8gdXNlIHRoZSBudW1iZXIgb2YgbGluZXMgc3BlY2lmaWVkIGluIHRo
ZQorICAgICAgICBzdWJncmlkIHByb3BlcnR5LCBmb3IgZ3JpZCBpdGVtcyB0aGF0IGFyZSBhbHNv
IGEgc3ViZ3JpZCBhbmQgaGF2ZSBhbiBvdGhlcndpc2UKKyAgICAgICAgaW5kZWZpbml0ZSBzcGFu
LgorCisgICAgICAgIEFkZHMgY2xhbXBpbmcgc3VwcG9ydCB0byBHcmlkIHNvIHRoYXQgd2UgY2Fu
IHByZXZlbnQgc3ViZ3JpZHMgZnJvbSBldmVyIGFkZGluZworICAgICAgICBuZXcgaW1wbGljaXQg
dHJhY2tzLgorCisgICAgICAgICogcmVuZGVyaW5nL0dyaWQuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6R3JpZDo6aW5zZXJ0KToKKyAgICAgICAgKFdlYkNvcmU6OkdyaWQ6OnNldENsYW1waW5nRm9y
U3ViZ3JpZCk6CisgICAgICAgIChXZWJDb3JlOjpHcmlkOjpjbGFtcEFuZFRyYW5zbGF0ZVRvSW1w
bGljaXRHcmlkKToKKyAgICAgICAgKFdlYkNvcmU6OkdyaWQ6OnNldE5lZWRzSXRlbXNQbGFjZW1l
bnQpOgorICAgICAgICAqIHJlbmRlcmluZy9HcmlkLmg6CisgICAgICAgICogcmVuZGVyaW5nL1Jl
bmRlckdyaWQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyR3JpZDo6Y29tcHV0ZUludHJp
bnNpY0xvZ2ljYWxXaWR0aHMgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyR3JpZDo6
cGxhY2VJdGVtc09uR3JpZCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJHcmlkOjpw
b3B1bGF0ZUV4cGxpY2l0R3JpZEFuZE9yZGVySXRlcmF0b3IgY29uc3QpOgorICAgICAgICAoV2Vi
Q29yZTo6UmVuZGVyR3JpZDo6cGxhY2VTcGVjaWZpZWRNYWpvckF4aXNJdGVtc09uR3JpZCBjb25z
dCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJHcmlkOjppc1N1YmdyaWQgY29uc3QpOgorICAg
ICAgICAoV2ViQ29yZTo6UmVuZGVyR3JpZDo6aXNTdWJncmlkUm93cyBjb25zdCk6CisgICAgICAg
IChXZWJDb3JlOjpSZW5kZXJHcmlkOjppc1N1YmdyaWRDb2x1bW5zIGNvbnN0KToKKyAgICAgICAg
KFdlYkNvcmU6OlJlbmRlckdyaWQ6OmdyaWRBcmVhQnJlYWR0aEZvck91dE9mRmxvd0NoaWxkKToK
KyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckdyaWQ6Om51bVRyYWNrcyBjb25zdCk6CisgICAgICAg
IChXZWJDb3JlOjp0cmFuc3Bvc2VkRGlyZWN0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRl
ckdyaWQ6OmNvbXB1dGVHcmlkU3BhbkZvck91dE9mRmxvd0NoaWxkIGNvbnN0KToKKyAgICAgICAg
KFdlYkNvcmU6OlJlbmRlckdyaWQ6OmdyaWRTcGFuRm9yT3V0T2ZGbG93Q2hpbGQgY29uc3QpOgor
ICAgICAgICAoV2ViQ29yZTo6UmVuZGVyR3JpZDo6Z3JpZFNwYW5Gb3JDaGlsZCBjb25zdCk6Cisg
ICAgICAgICogcmVuZGVyaW5nL1JlbmRlckdyaWQuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvc3R5
bGUvR3JpZEFyZWEuaDoKKyAgICAgICAgKFdlYkNvcmU6OkdyaWRTcGFuOjppbnRlZ2VyU3BhbiBj
b25zdCk6CisgICAgICAgIChXZWJDb3JlOjpHcmlkU3Bhbjo6dHJhbnNsYXRlVG8pOgorICAgICAg
ICAoV2ViQ29yZTo6R3JpZFNwYW46OmNsYW1wKToKKyAgICAgICAgKiByZW5kZXJpbmcvc3R5bGUv
R3JpZFBvc2l0aW9uc1Jlc29sdmVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmlzSW5kZWZpbml0
ZVNwYW4pOgorICAgICAgICAoV2ViQ29yZTo6YWRqdXN0R3JpZFBvc2l0aW9uc0Zyb21TdHlsZSk6
CisgICAgICAgIChXZWJDb3JlOjpHcmlkUG9zaXRpb25zUmVzb2x2ZXI6OmV4cGxpY2l0R3JpZENv
bHVtbkNvdW50KToKKyAgICAgICAgKFdlYkNvcmU6OkdyaWRQb3NpdGlvbnNSZXNvbHZlcjo6ZXhw
bGljaXRHcmlkUm93Q291bnQpOgorICAgICAgICAoV2ViQ29yZTo6ZXhwbGljaXRHcmlkU2l6ZUZv
clNpZGUpOgorICAgICAgICAoV2ViQ29yZTo6cmVzb2x2ZU5hbWVkR3JpZExpbmVQb3NpdGlvbkZy
b21TdHlsZSk6CisgICAgICAgIChXZWJDb3JlOjpyZXNvbHZlTmFtZWRHcmlkTGluZVBvc2l0aW9u
QWdhaW5zdE9wcG9zaXRlUG9zaXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6cmVzb2x2ZUdyaWRQ
b3NpdGlvbkFnYWluc3RPcHBvc2l0ZVBvc2l0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OnJlc29s
dmVHcmlkUG9zaXRpb25Gcm9tU3R5bGUpOgorICAgICAgICAoV2ViQ29yZTo6R3JpZFBvc2l0aW9u
c1Jlc29sdmVyOjpyZXNvbHZlR3JpZFBvc2l0aW9uc0Zyb21TdHlsZSk6CisgICAgICAgICogcmVu
ZGVyaW5nL3N0eWxlL0dyaWRQb3NpdGlvbnNSZXNvbHZlci5oOgorCisyMDIyLTAyLTE1ICBNYXR0
IFdvb2Ryb3cgIDxtYXR0d29vZHJvd0BhcHBsZS5jb20+CisKKyAgICAgICAgSW5oZXJpdCB0cmFj
ayBjb3VudCBmcm9tIHBhcmVudCBncmlkIGZvciBzdWJncmlkZGVkIGF4ZXMgYW5kIGNsYW1wIGl0
ZW0gcGxhY2VtZW50IHRvIHRoYXQgZXhwbGljaXQgZ3JpZC4KKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzNjEyMgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIENoYW5nZXMgR3JpZFBvc2l0aW9uc1Jlc29sdmVy
OjpleHBsaWNpdEdyaWQ8PkNvdW50IHRvIHJldHVybiB0aGUgbnVtYmVyIG9mIHRyYWNrcworICAg
ICAgICBzcGFubmVkIGluIHRoZSBwYXJlbnQgZ3JpZCwgZm9yIGF4ZXMgdGhhdCBhcmUgYSBzdWJn
cmlkLgorCisgICAgICAgIFVwZGF0ZXMgYWRqdXN0R3JpZFBvc2l0aW9uc0ZvclN0eWxlIHRvIHVz
ZSB0aGUgbnVtYmVyIG9mIGxpbmVzIHNwZWNpZmllZCBpbiB0aGUKKyAgICAgICAgc3ViZ3JpZCBw
cm9wZXJ0eSwgZm9yIGdyaWQgaXRlbXMgdGhhdCBhcmUgYWxzbyBhIHN1YmdyaWQgYW5kIGhhdmUg
YW4gb3RoZXJ3aXNlCisgICAgICAgIGluZGVmaW5pdGUgc3Bhbi4KKworICAgICAgICBBZGRzIGNs
YW1waW5nIHN1cHBvcnQgdG8gR3JpZCBzbyB0aGF0IHdlIGNhbiBwcmV2ZW50IHN1YmdyaWRzIGZy
b20gZXZlciBhZGRpbmcKKyAgICAgICAgbmV3IGltcGxpY2l0IHRyYWNrcy4KKworICAgICAgICAq
IHJlbmRlcmluZy9HcmlkLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdyaWQ6Omluc2VydCk6Cisg
ICAgICAgIChXZWJDb3JlOjpHcmlkOjpzZXRDbGFtcGluZ0ZvclN1YmdyaWQpOgorICAgICAgICAo
V2ViQ29yZTo6R3JpZDo6Y2xhbXBBbmRUcmFuc2xhdGVUb0ltcGxpY2l0R3JpZCk6CisgICAgICAg
IChXZWJDb3JlOjpHcmlkOjpzZXROZWVkc0l0ZW1zUGxhY2VtZW50KToKKyAgICAgICAgKiByZW5k
ZXJpbmcvR3JpZC5oOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJHcmlkLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlJlbmRlckdyaWQ6OmNvbXB1dGVJbnRyaW5zaWNMb2dpY2FsV2lkdGhzIGNv
bnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckdyaWQ6OnBsYWNlSXRlbXNPbkdyaWQgY29u
c3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyR3JpZDo6cG9wdWxhdGVFeHBsaWNpdEdyaWRB
bmRPcmRlckl0ZXJhdG9yIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckdyaWQ6OnBs
YWNlU3BlY2lmaWVkTWFqb3JBeGlzSXRlbXNPbkdyaWQgY29uc3QpOgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyR3JpZDo6aXNTdWJncmlkIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRl
ckdyaWQ6OmlzU3ViZ3JpZFJvd3MgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyR3Jp
ZDo6aXNTdWJncmlkQ29sdW1ucyBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJHcmlk
OjpncmlkQXJlYUJyZWFkdGhGb3JPdXRPZkZsb3dDaGlsZCk6CisgICAgICAgIChXZWJDb3JlOjpS
ZW5kZXJHcmlkOjpudW1UcmFja3MgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6dHJhbnNwb3Nl
ZERpcmVjdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJHcmlkOjpjb21wdXRlR3JpZFNw
YW5Gb3JPdXRPZkZsb3dDaGlsZCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJHcmlk
OjpncmlkU3BhbkZvck91dE9mRmxvd0NoaWxkIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlJl
bmRlckdyaWQ6OmdyaWRTcGFuRm9yQ2hpbGQgY29uc3QpOgorICAgICAgICAqIHJlbmRlcmluZy9S
ZW5kZXJHcmlkLmg6CisgICAgICAgICogcmVuZGVyaW5nL3N0eWxlL0dyaWRBcmVhLmg6CisgICAg
ICAgIChXZWJDb3JlOjpHcmlkU3Bhbjo6aW50ZWdlclNwYW4gY29uc3QpOgorICAgICAgICAoV2Vi
Q29yZTo6R3JpZFNwYW46OnRyYW5zbGF0ZVRvKToKKyAgICAgICAgKFdlYkNvcmU6OkdyaWRTcGFu
OjpjbGFtcCk6CisgICAgICAgICogcmVuZGVyaW5nL3N0eWxlL0dyaWRQb3NpdGlvbnNSZXNvbHZl
ci5jcHA6CisgICAgICAgIChXZWJDb3JlOjppc0luZGVmaW5pdGVTcGFuKToKKyAgICAgICAgKFdl
YkNvcmU6OmFkanVzdEdyaWRQb3NpdGlvbnNGcm9tU3R5bGUpOgorICAgICAgICAoV2ViQ29yZTo6
R3JpZFBvc2l0aW9uc1Jlc29sdmVyOjpleHBsaWNpdEdyaWRDb2x1bW5Db3VudCk6CisgICAgICAg
IChXZWJDb3JlOjpHcmlkUG9zaXRpb25zUmVzb2x2ZXI6OmV4cGxpY2l0R3JpZFJvd0NvdW50KToK
KyAgICAgICAgKFdlYkNvcmU6OmV4cGxpY2l0R3JpZFNpemVGb3JTaWRlKToKKyAgICAgICAgKFdl
YkNvcmU6OnJlc29sdmVOYW1lZEdyaWRMaW5lUG9zaXRpb25Gcm9tU3R5bGUpOgorICAgICAgICAo
V2ViQ29yZTo6cmVzb2x2ZU5hbWVkR3JpZExpbmVQb3NpdGlvbkFnYWluc3RPcHBvc2l0ZVBvc2l0
aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OnJlc29sdmVHcmlkUG9zaXRpb25BZ2FpbnN0T3Bwb3Np
dGVQb3NpdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpyZXNvbHZlR3JpZFBvc2l0aW9uRnJvbVN0
eWxlKToKKyAgICAgICAgKFdlYkNvcmU6OkdyaWRQb3NpdGlvbnNSZXNvbHZlcjo6cmVzb2x2ZUdy
aWRQb3NpdGlvbnNGcm9tU3R5bGUpOgorICAgICAgICAqIHJlbmRlcmluZy9zdHlsZS9HcmlkUG9z
aXRpb25zUmVzb2x2ZXIuaDoKKwogMjAyMi0wMi0xNCAgUGF0cmljayBBbmdsZSAgPHBhbmdsZUBh
cHBsZS5jb20+CiAKICAgICAgICAgV2ViIEluc3BlY3RvcjogRWxlbWVudCB0b29sdGlwcyBpbiBv
dmVybGF5cyBzaG91bGQgdXNlIHNhbWUgZW5jb2RhYmxlL2RlY29kYWJsZSBMYWJlbCB0eXBlIGFz
IGdyaWQgb3ZlcmxheXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDb21wdXRl
ZFN0eWxlRGVjbGFyYXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0NvbXB1dGVkU3R5
bGVEZWNsYXJhdGlvbi5jcHAKaW5kZXggZDNiYWQ5YWQyM2I0Li43NTkwMjU2ODc1ZTQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24uY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24uY3Bw
CkBAIC04OTgsNiArODk4LDM4IEBAIHByaXZhdGU6CiAgICAgdW5zaWduZWQgbV9hdXRvUmVwZWF0
VHJhY2tMaXN0TGVuZ3RoOwogfTsKIAorY2xhc3MgT3JkZXJlZE5hbWVkTGluZXNDb2xsZWN0b3JJ
blN1YmdyaWRMYXlvdXQgOiBwdWJsaWMgT3JkZXJlZE5hbWVkTGluZXNDb2xsZWN0b3IgeworcHVi
bGljOgorICAgIE9yZGVyZWROYW1lZExpbmVzQ29sbGVjdG9ySW5TdWJncmlkTGF5b3V0KGNvbnN0
IFJlbmRlclN0eWxlJiBzdHlsZSwgYm9vbCBpc1Jvd0F4aXMsIHVuc2lnbmVkIHRvdGFsVHJhY2tz
Q291bnQpCisgICAgICAgIDogT3JkZXJlZE5hbWVkTGluZXNDb2xsZWN0b3Ioc3R5bGUsIGlzUm93
QXhpcykKKyAgICAgICAgLCBtX2luc2VydGlvblBvaW50KGlzUm93QXhpcyA/IHN0eWxlLmdyaWRB
dXRvUmVwZWF0Q29sdW1uc0luc2VydGlvblBvaW50KCkgOiBzdHlsZS5ncmlkQXV0b1JlcGVhdFJv
d3NJbnNlcnRpb25Qb2ludCgpKQorICAgICAgICAsIG1fYXV0b1JlcGVhdFRyYWNrTGlzdExlbmd0
aCgoaXNSb3dBeGlzID8gc3R5bGUuYXV0b1JlcGVhdE9yZGVyZWROYW1lZEdyaWRDb2x1bW5MaW5l
cygpIDogc3R5bGUuYXV0b1JlcGVhdE9yZGVyZWROYW1lZEdyaWRSb3dMaW5lcygpKS5zaXplKCkp
CisgICAgICAgICwgbV90b3RhbFRyYWNrcyh0b3RhbFRyYWNrc0NvdW50KQorICAgIHsKKyAgICAg
ICAgaWYgKCFtX2F1dG9SZXBlYXRUcmFja0xpc3RMZW5ndGgpIHsKKyAgICAgICAgICAgIG1fYXV0
b1JlcGVhdFRvdGFsVHJhY2tzID0gMDsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQor
ICAgICAgICAvLyArMSB0byBjb252ZXJ0IGZyb20gdHJhY2tzIHRvIGxpbmVzCisgICAgICAgIHVu
c2lnbmVkIG5hbWVkID0gKGlzUm93QXhpcyA/IHN0eWxlLm9yZGVyZWROYW1lZEdyaWRDb2x1bW5M
aW5lcygpIDogc3R5bGUub3JkZXJlZE5hbWVkR3JpZFJvd0xpbmVzKCkpLnNpemUoKTsKKyAgICAg
ICAgaWYgKG5hbWVkID49IG1fdG90YWxUcmFja3MgKyAxKSB7CisgICAgICAgICAgICBtX2F1dG9S
ZXBlYXRUb3RhbFRyYWNrcyA9IDA7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAg
ICAgICAgbV9hdXRvUmVwZWF0VG90YWxUcmFja3MgPSAobV90b3RhbFRyYWNrcyArIDEgLSBuYW1l
ZCkgLyBtX2F1dG9SZXBlYXRUcmFja0xpc3RMZW5ndGg7CisgICAgICAgIG1fYXV0b1JlcGVhdFRv
dGFsVHJhY2tzICo9IG1fYXV0b1JlcGVhdFRyYWNrTGlzdExlbmd0aDsKKyAgICB9CisKKyAgICB2
b2lkIGNvbGxlY3RMaW5lTmFtZXNGb3JJbmRleChDU1NHcmlkTGluZU5hbWVzVmFsdWUmLCB1bnNp
Z25lZCBpbmRleCkgY29uc3Qgb3ZlcnJpZGU7CisKKyAgICBpbnQgbmFtZWRHcmlkTGluZUNvdW50
KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gbV90b3RhbFRyYWNrcyArIDE7IH0KK3ByaXZhdGU6
CisgICAgdW5zaWduZWQgbV9pbnNlcnRpb25Qb2ludDsKKyAgICB1bnNpZ25lZCBtX2F1dG9SZXBl
YXRUb3RhbFRyYWNrczsKKyAgICB1bnNpZ25lZCBtX2F1dG9SZXBlYXRUcmFja0xpc3RMZW5ndGg7
CisgICAgdW5zaWduZWQgbV90b3RhbFRyYWNrczsKK307CisKIHZvaWQgT3JkZXJlZE5hbWVkTGlu
ZXNDb2xsZWN0b3I6OmFwcGVuZExpbmVzKENTU0dyaWRMaW5lTmFtZXNWYWx1ZSYgbGluZU5hbWVz
VmFsdWUsIHVuc2lnbmVkIGluZGV4LCBOYW1lZExpbmVzVHlwZSB0eXBlKSBjb25zdAogewogICAg
IGF1dG8gaXRlciA9IHR5cGUgPT0gTmFtZWRMaW5lcyA/IG1fb3JkZXJlZE5hbWVkR3JpZExpbmVz
LmZpbmQoaW5kZXgpIDogbV9vcmRlcmVkTmFtZWRBdXRvUmVwZWF0R3JpZExpbmVzLmZpbmQoaW5k
ZXgpOwpAQCAtOTU1LDkgKzk4NywzMCBAQCB2b2lkIE9yZGVyZWROYW1lZExpbmVzQ29sbGVjdG9y
SW5HcmlkTGF5b3V0Ojpjb2xsZWN0TGluZU5hbWVzRm9ySW5kZXgoQ1NTR3JpZExpbgogICAgIGFw
cGVuZExpbmVzKGxpbmVOYW1lc1ZhbHVlLCBhdXRvUmVwZWF0SW5kZXhJbkZpcnN0UmVwZXRpdGlv
biwgQXV0b1JlcGVhdE5hbWVkTGluZXMpOwogfQogCit2b2lkIE9yZGVyZWROYW1lZExpbmVzQ29s
bGVjdG9ySW5TdWJncmlkTGF5b3V0Ojpjb2xsZWN0TGluZU5hbWVzRm9ySW5kZXgoQ1NTR3JpZExp
bmVOYW1lc1ZhbHVlJiBsaW5lTmFtZXNWYWx1ZSwgdW5zaWduZWQgaSkgY29uc3QKK3sKKyAgICBp
ZiAoIW1fYXV0b1JlcGVhdFRyYWNrTGlzdExlbmd0aCB8fCBpIDwgbV9pbnNlcnRpb25Qb2ludCkg
eworICAgICAgICBhcHBlbmRMaW5lcyhsaW5lTmFtZXNWYWx1ZSwgaSwgTmFtZWRMaW5lcyk7Cisg
ICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBpZiAoaSA+PSBtX2luc2VydGlvblBvaW50ICsg
bV9hdXRvUmVwZWF0VG90YWxUcmFja3MpIHsKKyAgICAgICAgYXBwZW5kTGluZXMobGluZU5hbWVz
VmFsdWUsIGkgLSBtX2F1dG9SZXBlYXRUb3RhbFRyYWNrcywgTmFtZWRMaW5lcyk7CisgICAgICAg
IHJldHVybjsKKyAgICB9CisKKyAgICBpZiAoIW1fYXV0b1JlcGVhdFRvdGFsVHJhY2tzKSB7Cisg
ICAgICAgIGFwcGVuZExpbmVzKGxpbmVOYW1lc1ZhbHVlLCBpLCBOYW1lZExpbmVzKTsKKyAgICAg
ICAgcmV0dXJuOworICAgIH0KKworICAgIHVuc2lnbmVkIGF1dG9SZXBlYXRJbmRleEluRmlyc3RS
ZXBldGl0aW9uID0gKGkgLSBtX2luc2VydGlvblBvaW50KSAlIG1fYXV0b1JlcGVhdFRyYWNrTGlz
dExlbmd0aDsKKyAgICBhcHBlbmRMaW5lcyhsaW5lTmFtZXNWYWx1ZSwgYXV0b1JlcGVhdEluZGV4
SW5GaXJzdFJlcGV0aXRpb24sIEF1dG9SZXBlYXROYW1lZExpbmVzKTsKK30KKwogc3RhdGljIHZv
aWQgYWRkVmFsdWVzRm9yTmFtZWRHcmlkTGluZXNBdEluZGV4KE9yZGVyZWROYW1lZExpbmVzQ29s
bGVjdG9yJiBjb2xsZWN0b3IsIHVuc2lnbmVkIGksIENTU1ZhbHVlTGlzdCYgbGlzdCwgYm9vbCBy
ZW5kZXJFbXB0eSA9IGZhbHNlKQogewotICAgIGlmIChjb2xsZWN0b3IuaXNFbXB0eSgpKQorICAg
IGlmIChjb2xsZWN0b3IuaXNFbXB0eSgpICYmICFyZW5kZXJFbXB0eSkKICAgICAgICAgcmV0dXJu
OwogCiAgICAgYXV0byBsaW5lTmFtZXMgPSBDU1NHcmlkTGluZU5hbWVzVmFsdWU6OmNyZWF0ZSgp
OwpAQCAtMTAzNSw5ICsxMDg4LDE1IEBAIHN0YXRpYyBSZWY8Q1NTVmFsdWU+IHZhbHVlRm9yR3Jp
ZFRyYWNrTGlzdChHcmlkVHJhY2tTaXppbmdEaXJlY3Rpb24gZGlyZWN0aW9uLCBSCiAKICAgICAv
LyBJZiB0aGUgZWxlbWVudCBpcyBhIGdyaWQgY29udGFpbmVyLCB0aGUgcmVzb2x2ZWQgdmFsdWUg
aXMgdGhlIHVzZWQgdmFsdWUsCiAgICAgLy8gc3BlY2lmeWluZyB0cmFjayBzaXplcyBpbiBwaXhl
bHMgYW5kIGV4cGFuZGluZyB0aGUgcmVwZWF0KCkgbm90YXRpb24uCi0gICAgaWYgKGlzUmVuZGVy
R3JpZCkgewotICAgICAgICAvLyBGSVhNRTogV2UgbmVlZCB0byBoYW5kbGUgY29tcHV0ZWQgc3Vi
Z3JpZCBoZXJlLgorICAgIC8vIElmIHN1YmdyaWQgd2FzIHNwZWNpZmllZCwgYnV0IHRoZSBlbGVt
ZW50IGlzbid0IGEgc3ViZ3JpZCAoZHVlIHRvIG5vdCBoYXZpbmcKKyAgICAvLyBhbiBhcHByb3By
aWF0ZSBncmlkIHBhcmVudD8pLCB0aGVuIHdlIGZhbGwgYmFjayB0byB1c2luZyB0aGUgc3BlY2lm
aWVkIHZhbHVlLgorICAgIGlmIChpc1JlbmRlckdyaWQgJiYgKCFpc1N1YmdyaWQgfHwgZG93bmNh
c3Q8UmVuZGVyR3JpZD4ocmVuZGVyZXIpLT5pc1N1YmdyaWQoZGlyZWN0aW9uKSkpIHsKICAgICAg
ICAgYXV0byogZ3JpZCA9IGRvd25jYXN0PFJlbmRlckdyaWQ+KHJlbmRlcmVyKTsKKyAgICAgICAg
aWYgKGlzU3ViZ3JpZCkgeworICAgICAgICAgICAgT3JkZXJlZE5hbWVkTGluZXNDb2xsZWN0b3JJ
blN1YmdyaWRMYXlvdXQgY29sbGVjdG9yKHN0eWxlLCBpc1Jvd0F4aXMsIGdyaWQtPm51bVRyYWNr
cyhkaXJlY3Rpb24pKTsKKyAgICAgICAgICAgIHBvcHVsYXRlU3ViZ3JpZExpbmVOYW1lTGlzdChs
aXN0LmdldCgpLCBjb2xsZWN0b3IpOworICAgICAgICAgICAgcmV0dXJuIGxpc3Q7CisgICAgICAg
IH0KICAgICAgICAgT3JkZXJlZE5hbWVkTGluZXNDb2xsZWN0b3JJbkdyaWRMYXlvdXQgY29sbGVj
dG9yKHN0eWxlLCBpc1Jvd0F4aXMsIGdyaWQtPmF1dG9SZXBlYXRDb3VudEZvckRpcmVjdGlvbihk
aXJlY3Rpb24pLCBhdXRvUmVwZWF0VHJhY2tTaXplcy5zaXplKCkpOwogICAgICAgICAvLyBOYW1l
ZCBncmlkIGxpbmUgaW5kaWNlcyBhcmUgcmVsYXRpdmUgdG8gdGhlIGV4cGxpY2l0IGdyaWQsIGJ1
dCB3ZSBhcmUgaW5jbHVkaW5nIGFsbCB0cmFja3MuCiAgICAgICAgIC8vIFNvIHdlIG5lZWQgdG8g
c3VidHJhY3QgdGhlIG51bWJlciBvZiBsZWFkaW5nIGltcGxpY2l0IHRyYWNrcyBpbiBvcmRlciB0
byBnZXQgdGhlIHByb3BlciBsaW5lIGluZGV4LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL0dyaWQuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0dyaWQuY3BwCmlu
ZGV4IDU2MDJkN2MyZDRkNS4uMzdjYTkzZjAzYTcyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvR3JpZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0dyaWQu
Y3BwCkBAIC02MSwxNyArNjEsMjQgQEAgdm9pZCBHcmlkOjplbnN1cmVHcmlkU2l6ZSh1bnNpZ25l
ZCBtYXhpbXVtUm93U2l6ZSwgdW5zaWduZWQgbWF4aW11bUNvbHVtblNpemUpCiAgICAgfQogfQog
Ci12b2lkIEdyaWQ6Omluc2VydChSZW5kZXJCb3gmIGNoaWxkLCBjb25zdCBHcmlkQXJlYSYgYXJl
YSkKK0dyaWRBcmVhIEdyaWQ6Omluc2VydChSZW5kZXJCb3gmIGNoaWxkLCBjb25zdCBHcmlkQXJl
YSYgYXJlYSkKIHsKLSAgICBBU1NFUlQoYXJlYS5yb3dzLmlzVHJhbnNsYXRlZERlZmluaXRlKCkg
JiYgYXJlYS5jb2x1bW5zLmlzVHJhbnNsYXRlZERlZmluaXRlKCkpOwotICAgIGVuc3VyZUdyaWRT
aXplKGFyZWEucm93cy5lbmRMaW5lKCksIGFyZWEuY29sdW1ucy5lbmRMaW5lKCkpOworICAgIEdy
aWRBcmVhIGNsYW1wZWQgPSBhcmVhOworICAgIGlmIChtX21heFJvd3MpCisgICAgICAgIGNsYW1w
ZWQucm93cy5jbGFtcChtX21heFJvd3MpOworICAgIGlmIChtX21heENvbHVtbnMpCisgICAgICAg
IGNsYW1wZWQuY29sdW1ucy5jbGFtcChtX21heENvbHVtbnMpOwogCi0gICAgZm9yIChhdXRvIHJv
dyA6IGFyZWEucm93cykgewotICAgICAgICBmb3IgKGF1dG8gY29sdW1uIDogYXJlYS5jb2x1bW5z
KQorICAgIEFTU0VSVChjbGFtcGVkLnJvd3MuaXNUcmFuc2xhdGVkRGVmaW5pdGUoKSAmJiBjbGFt
cGVkLmNvbHVtbnMuaXNUcmFuc2xhdGVkRGVmaW5pdGUoKSk7CisgICAgZW5zdXJlR3JpZFNpemUo
Y2xhbXBlZC5yb3dzLmVuZExpbmUoKSwgY2xhbXBlZC5jb2x1bW5zLmVuZExpbmUoKSk7CisKKyAg
ICBmb3IgKGF1dG8gcm93IDogY2xhbXBlZC5yb3dzKSB7CisgICAgICAgIGZvciAoYXV0byBjb2x1
bW4gOiBjbGFtcGVkLmNvbHVtbnMpCiAgICAgICAgICAgICBtX2dyaWRbcm93XVtjb2x1bW5dLmFw
cGVuZChjaGlsZCk7CiAgICAgfQogCi0gICAgc2V0R3JpZEl0ZW1BcmVhKGNoaWxkLCBhcmVhKTsK
KyAgICBzZXRHcmlkSXRlbUFyZWEoY2hpbGQsIGNsYW1wZWQpOworICAgIHJldHVybiBjbGFtcGVk
OwogfQogCiB2b2lkIEdyaWQ6OnNldEV4cGxpY2l0R3JpZFN0YXJ0KHVuc2lnbmVkIHJvd1N0YXJ0
LCB1bnNpZ25lZCBjb2x1bW5TdGFydCkKQEAgLTg1LDYgKzkyLDI2IEBAIHVuc2lnbmVkIEdyaWQ6
OmV4cGxpY2l0R3JpZFN0YXJ0KEdyaWRUcmFja1NpemluZ0RpcmVjdGlvbiBkaXJlY3Rpb24pIGNv
bnN0CiAgICAgcmV0dXJuIGRpcmVjdGlvbiA9PSBGb3JSb3dzID8gbV9leHBsaWNpdFJvd1N0YXJ0
IDogbV9leHBsaWNpdENvbHVtblN0YXJ0OwogfQogCit2b2lkIEdyaWQ6OnNldENsYW1waW5nRm9y
U3ViZ3JpZCh1bnNpZ25lZCBtYXhSb3dzLCB1bnNpZ25lZCBtYXhDb2x1bW5zKQoreworICAgIG1f
bWF4Um93cyA9IG1heFJvd3M7CisgICAgbV9tYXhDb2x1bW5zID0gbWF4Q29sdW1uczsKK30KKwor
dm9pZCBHcmlkOjpjbGFtcEFuZFRyYW5zbGF0ZVRvSW1wbGljaXRHcmlkKEdyaWRBcmVhJiBhcmVh
KQoreworICAgIGlmICghYXJlYS5yb3dzLmlzSW5kZWZpbml0ZSgpKSB7CisgICAgICAgIGlmICht
X21heFJvd3MpCisgICAgICAgICAgICBhcmVhLnJvd3MuY2xhbXAobV9tYXhSb3dzKTsKKyAgICAg
ICAgYXJlYS5yb3dzLnRyYW5zbGF0ZShleHBsaWNpdEdyaWRTdGFydChGb3JSb3dzKSk7CisgICAg
fQorICAgIGlmICghYXJlYS5jb2x1bW5zLmlzSW5kZWZpbml0ZSgpKSB7CisgICAgICAgIGlmICht
X21heENvbHVtbnMpCisgICAgICAgICAgICBhcmVhLmNvbHVtbnMuY2xhbXAobV9tYXhDb2x1bW5z
KTsKKyAgICAgICAgYXJlYS5jb2x1bW5zLnRyYW5zbGF0ZShleHBsaWNpdEdyaWRTdGFydChGb3JD
b2x1bW5zKSk7CisgICAgfQorfQorCiBHcmlkQXJlYSBHcmlkOjpncmlkSXRlbUFyZWEoY29uc3Qg
UmVuZGVyQm94JiBpdGVtKSBjb25zdAogewogICAgIEFTU0VSVChtX2dyaWRJdGVtQXJlYS5jb250
YWlucygmaXRlbSkpOwpAQCAtMTYxLDYgKzE4OCw4IEBAIHZvaWQgR3JpZDo6c2V0TmVlZHNJdGVt
c1BsYWNlbWVudChib29sIG5lZWRzSXRlbXNQbGFjZW1lbnQpCiAgICAgbV9hdXRvUmVwZWF0RW1w
dHlSb3dzID0gbnVsbHB0cjsKICAgICBtX2F1dG9SZXBlYXRDb2x1bW5zID0gMDsKICAgICBtX2F1
dG9SZXBlYXRSb3dzID0gMDsKKyAgICBtX21heENvbHVtbnMgPSAwOworICAgIG1fbWF4Um93cyA9
IDA7CiB9CiAKIEdyaWRJdGVyYXRvcjo6R3JpZEl0ZXJhdG9yKGNvbnN0IEdyaWQmIGdyaWQsIEdy
aWRUcmFja1NpemluZ0RpcmVjdGlvbiBkaXJlY3Rpb24sIHVuc2lnbmVkIGZpeGVkVHJhY2tJbmRl
eCwgdW5zaWduZWQgdmFyeWluZ1RyYWNrSW5kZXgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvR3JpZC5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0dyaWQuaAppbmRl
eCA3MmNhZGY2OGVmNGQuLjExZDllNjhmYjgxOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL0dyaWQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvR3JpZC5oCkBA
IC00OCw3ICs0OCw3IEBAIHB1YmxpYzoKICAgICB1bnNpZ25lZCBudW1UcmFja3MoR3JpZFRyYWNr
U2l6aW5nRGlyZWN0aW9uKSBjb25zdDsKIAogICAgIHZvaWQgZW5zdXJlR3JpZFNpemUodW5zaWdu
ZWQgbWF4aW11bVJvd1NpemUsIHVuc2lnbmVkIG1heGltdW1Db2x1bW5TaXplKTsKLSAgICB2b2lk
IGluc2VydChSZW5kZXJCb3gmLCBjb25zdCBHcmlkQXJlYSYpOworICAgIEdyaWRBcmVhIGluc2Vy
dChSZW5kZXJCb3gmLCBjb25zdCBHcmlkQXJlYSYpOwogCiAgICAgLy8gTm90ZSB0aGF0IGVhY2gg
aW4gZmxvdyBjaGlsZCBvZiBhIGdyaWQgY29udGFpbmVyIGJlY29tZXMgYSBncmlkIGl0ZW0uIFRo
aXMgbWVhbnMgdGhhdAogICAgIC8vIHRoaXMgbWV0aG9kIHdpbGwgcmV0dXJuIGZhbHNlIGZvciBh
IGdyaWQgY29udGFpbmVyIHdpdGggb25seSBvdXQgb2YgZmxvdyBjaGlsZHJlbi4KQEAgLTY3LDYg
KzY3LDEwIEBAIHB1YmxpYzoKICAgICB1bnNpZ25lZCBhdXRvUmVwZWF0VHJhY2tzKEdyaWRUcmFj
a1NpemluZ0RpcmVjdGlvbikgY29uc3Q7CiAgICAgdm9pZCBzZXRBdXRvUmVwZWF0VHJhY2tzKHVu
c2lnbmVkIGF1dG9SZXBlYXRSb3dzLCB1bnNpZ25lZCBhdXRvUmVwZWF0Q29sdW1ucyk7CiAKKyAg
ICB2b2lkIHNldENsYW1waW5nRm9yU3ViZ3JpZCh1bnNpZ25lZCBtYXhSb3dzLCB1bnNpZ25lZCBt
YXhDb2x1bW5zKTsKKworICAgIHZvaWQgY2xhbXBBbmRUcmFuc2xhdGVUb0ltcGxpY2l0R3JpZChH
cmlkQXJlYSYpOworCiAgICAgdm9pZCBzZXRBdXRvUmVwZWF0RW1wdHlDb2x1bW5zKHN0ZDo6dW5p
cXVlX3B0cjxPcmRlcmVkVHJhY2tJbmRleFNldD4pOwogICAgIHZvaWQgc2V0QXV0b1JlcGVhdEVt
cHR5Um93cyhzdGQ6OnVuaXF1ZV9wdHI8T3JkZXJlZFRyYWNrSW5kZXhTZXQ+KTsKIApAQCAtOTIs
NiArOTYsOSBAQCBwcml2YXRlOgogICAgIHVuc2lnbmVkIG1fYXV0b1JlcGVhdENvbHVtbnMgeyAw
IH07CiAgICAgdW5zaWduZWQgbV9hdXRvUmVwZWF0Um93cyB7IDAgfTsKIAorICAgIHVuc2lnbmVk
IG1fbWF4Q29sdW1ucyB7IDAgfTsKKyAgICB1bnNpZ25lZCBtX21heFJvd3MgeyAwIH07CisKICAg
ICBib29sIG1fbmVlZHNJdGVtc1BsYWNlbWVudCB7IHRydWUgfTsKIAogICAgIEdyaWRBc01hdHJp
eCBtX2dyaWQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvR3JpZExheW91
dEZ1bmN0aW9ucy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvR3JpZExheW91dEZ1bmN0
aW9ucy5jcHAKaW5kZXggZDRmNzg4ZGM3MGQyLi5hZjZiMWY4ZDVmZWMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9HcmlkTGF5b3V0RnVuY3Rpb25zLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvR3JpZExheW91dEZ1bmN0aW9ucy5jcHAKQEAgLTc3LDcgKzc3
LDcgQEAgTGF5b3V0VW5pdCBtYXJnaW5Mb2dpY2FsU2l6ZUZvckNoaWxkKGNvbnN0IFJlbmRlckdy
aWQmIGdyaWQsIEdyaWRUcmFja1NpemluZ0RpcmUKICAgICByZXR1cm4gbWFyZ2luU3RhcnQgKyBt
YXJnaW5FbmQ7CiB9CiAKLWJvb2wgaXNPcnRob2dvbmFsQ2hpbGQoY29uc3QgUmVuZGVyR3JpZCYg
Z3JpZCwgY29uc3QgUmVuZGVyQm94JiBjaGlsZCkKK2Jvb2wgaXNPcnRob2dvbmFsQ2hpbGQoY29u
c3QgUmVuZGVyR3JpZCYgZ3JpZCwgY29uc3QgUmVuZGVyRWxlbWVudCYgY2hpbGQpCiB7CiAgICAg
cmV0dXJuIGNoaWxkLmlzSG9yaXpvbnRhbFdyaXRpbmdNb2RlKCkgIT0gZ3JpZC5pc0hvcml6b250
YWxXcml0aW5nTW9kZSgpOwogfQpAQCAtODcsNyArODcsNyBAQCBib29sIGlzQXNwZWN0UmF0aW9C
bG9ja1NpemVEZXBlbmRlbnRDaGlsZChjb25zdCBSZW5kZXJCb3gmIGNoaWxkKQogICAgIHJldHVy
biAoY2hpbGQuc3R5bGUoKS5oYXNBc3BlY3RSYXRpbygpIHx8IGNoaWxkLmhhc0ludHJpbnNpY0Fz
cGVjdFJhdGlvKCkpICYmIChjaGlsZC5oYXNSZWxhdGl2ZUxvZ2ljYWxIZWlnaHQoKSB8fCBjaGls
ZC5oYXNTdHJldGNoZWRMb2dpY2FsSGVpZ2h0KCkpOwogfQogCi1HcmlkVHJhY2tTaXppbmdEaXJl
Y3Rpb24gZmxvd0F3YXJlRGlyZWN0aW9uRm9yQ2hpbGQoY29uc3QgUmVuZGVyR3JpZCYgZ3JpZCwg
Y29uc3QgUmVuZGVyQm94JiBjaGlsZCwgR3JpZFRyYWNrU2l6aW5nRGlyZWN0aW9uIGRpcmVjdGlv
bikKK0dyaWRUcmFja1NpemluZ0RpcmVjdGlvbiBmbG93QXdhcmVEaXJlY3Rpb25Gb3JDaGlsZChj
b25zdCBSZW5kZXJHcmlkJiBncmlkLCBjb25zdCBSZW5kZXJFbGVtZW50JiBjaGlsZCwgR3JpZFRy
YWNrU2l6aW5nRGlyZWN0aW9uIGRpcmVjdGlvbikKIHsKICAgICByZXR1cm4gIWlzT3J0aG9nb25h
bENoaWxkKGdyaWQsIGNoaWxkKSA/IGRpcmVjdGlvbiA6IChkaXJlY3Rpb24gPT0gRm9yQ29sdW1u
cyA/IEZvclJvd3MgOiBGb3JDb2x1bW5zKTsKIH0KQEAgLTEwMiw2ICsxMDIsMTkgQEAgc3RkOjpv
cHRpb25hbDxMYXlvdXRVbml0PiBvdmVycmlkaW5nQ29udGFpbmluZ0Jsb2NrQ29udGVudFNpemVG
b3JDaGlsZChjb25zdCBSZW4KICAgICByZXR1cm4gZGlyZWN0aW9uID09IEZvckNvbHVtbnMgPyBj
aGlsZC5vdmVycmlkaW5nQ29udGFpbmluZ0Jsb2NrQ29udGVudExvZ2ljYWxXaWR0aCgpIDogY2hp
bGQub3ZlcnJpZGluZ0NvbnRhaW5pbmdCbG9ja0NvbnRlbnRMb2dpY2FsSGVpZ2h0KCk7CiB9CiAK
K2Jvb2wgaXNGbGlwcGVkRGlyZWN0aW9uKGNvbnN0IFJlbmRlckdyaWQmIGdyaWQsIEdyaWRUcmFj
a1NpemluZ0RpcmVjdGlvbiBkaXJlY3Rpb24pCit7CisgICAgaWYgKGRpcmVjdGlvbiA9PSBGb3JD
b2x1bW5zKQorICAgICAgICByZXR1cm4gIWdyaWQuc3R5bGUoKS5pc0xlZnRUb1JpZ2h0RGlyZWN0
aW9uKCk7CisgICAgcmV0dXJuIGdyaWQuc3R5bGUoKS5pc0ZsaXBwZWRCbG9ja3NXcml0aW5nTW9k
ZSgpOworfQorCitib29sIGlzU3ViZ3JpZFJldmVyc2VkRGlyZWN0aW9uKGNvbnN0IFJlbmRlckdy
aWQmIGdyaWQsIEdyaWRUcmFja1NpemluZ0RpcmVjdGlvbiBvdXRlckRpcmVjdGlvbiwgY29uc3Qg
UmVuZGVyR3JpZCYgc3ViZ3JpZCkKK3sKKyAgICBHcmlkVHJhY2tTaXppbmdEaXJlY3Rpb24gY2hp
bGREaXJlY3Rpb24gPSBmbG93QXdhcmVEaXJlY3Rpb25Gb3JDaGlsZChncmlkLCBzdWJncmlkLCBv
dXRlckRpcmVjdGlvbik7CisgICAgcmV0dXJuIGlzRmxpcHBlZERpcmVjdGlvbihncmlkLCBvdXRl
ckRpcmVjdGlvbikgIT0gaXNGbGlwcGVkRGlyZWN0aW9uKHN1YmdyaWQsIGNoaWxkRGlyZWN0aW9u
KTsKK30KKwogfSAvLyBuYW1lc3BhY2UgR3JpZExheW91dEZ1bmN0aW9ucwogCiB9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvR3JpZExh
eW91dEZ1bmN0aW9ucy5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0dyaWRMYXlvdXRGdW5j
dGlvbnMuaAppbmRleCA1ZGIzZjVmOTgyOTUuLjI2ZWJkY2E5MDAxZiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0dyaWRMYXlvdXRGdW5jdGlvbnMuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvR3JpZExheW91dEZ1bmN0aW9ucy5oCkBAIC0zMCw2ICszMCw3IEBA
CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorY2xhc3MgUmVuZGVyRWxlbWVudDsKIGNsYXNzIFJl
bmRlckJveDsKIGNsYXNzIFJlbmRlckdyaWQ7CiAKQEAgLTM5LDEyICs0MCwxNSBAQCBuYW1lc3Bh
Y2UgR3JpZExheW91dEZ1bmN0aW9ucyB7CiAKIExheW91dFVuaXQgY29tcHV0ZU1hcmdpbkxvZ2lj
YWxTaXplRm9yQ2hpbGQoY29uc3QgUmVuZGVyR3JpZCYsIEdyaWRUcmFja1NpemluZ0RpcmVjdGlv
biwgY29uc3QgUmVuZGVyQm94Jik7CiBMYXlvdXRVbml0IG1hcmdpbkxvZ2ljYWxTaXplRm9yQ2hp
bGQoY29uc3QgUmVuZGVyR3JpZCYsIEdyaWRUcmFja1NpemluZ0RpcmVjdGlvbiwgY29uc3QgUmVu
ZGVyQm94Jik7Ci1ib29sIGlzT3J0aG9nb25hbENoaWxkKGNvbnN0IFJlbmRlckdyaWQmLCBjb25z
dCBSZW5kZXJCb3gmKTsKK2Jvb2wgaXNPcnRob2dvbmFsQ2hpbGQoY29uc3QgUmVuZGVyR3JpZCYs
IGNvbnN0IFJlbmRlckVsZW1lbnQmKTsKIGJvb2wgaXNBc3BlY3RSYXRpb0Jsb2NrU2l6ZURlcGVu
ZGVudENoaWxkKGNvbnN0IFJlbmRlckJveCYpOwotR3JpZFRyYWNrU2l6aW5nRGlyZWN0aW9uIGZs
b3dBd2FyZURpcmVjdGlvbkZvckNoaWxkKGNvbnN0IFJlbmRlckdyaWQmLCBjb25zdCBSZW5kZXJC
b3gmLCBHcmlkVHJhY2tTaXppbmdEaXJlY3Rpb24pOworR3JpZFRyYWNrU2l6aW5nRGlyZWN0aW9u
IGZsb3dBd2FyZURpcmVjdGlvbkZvckNoaWxkKGNvbnN0IFJlbmRlckdyaWQmLCBjb25zdCBSZW5k
ZXJFbGVtZW50JiwgR3JpZFRyYWNrU2l6aW5nRGlyZWN0aW9uKTsKIGJvb2wgaGFzT3ZlcnJpZGlu
Z0NvbnRhaW5pbmdCbG9ja0NvbnRlbnRTaXplRm9yQ2hpbGQoY29uc3QgUmVuZGVyQm94JiwgR3Jp
ZFRyYWNrU2l6aW5nRGlyZWN0aW9uKTsKIHN0ZDo6b3B0aW9uYWw8TGF5b3V0VW5pdD4gb3ZlcnJp
ZGluZ0NvbnRhaW5pbmdCbG9ja0NvbnRlbnRTaXplRm9yQ2hpbGQoY29uc3QgUmVuZGVyQm94Jiwg
R3JpZFRyYWNrU2l6aW5nRGlyZWN0aW9uKTsKIAorYm9vbCBpc0ZsaXBwZWREaXJlY3Rpb24oY29u
c3QgUmVuZGVyR3JpZCYsIEdyaWRUcmFja1NpemluZ0RpcmVjdGlvbik7Citib29sIGlzU3ViZ3Jp
ZFJldmVyc2VkRGlyZWN0aW9uKGNvbnN0IFJlbmRlckdyaWQmLCBHcmlkVHJhY2tTaXppbmdEaXJl
Y3Rpb24gb3V0ZXJEaXJlY3Rpb24sIGNvbnN0IFJlbmRlckdyaWQmIHN1YmdyaWQpOworCiB9CiAK
IH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJHcmlkLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJHcmlk
LmNwcAppbmRleCA3ZmZiNjIzNzQ4ZjAuLmNkMjU2ODFkMTMzOCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckdyaWQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJHcmlkLmNwcApAQCAtNDQ2LDggKzQ0Niw3IEBAIHZvaWQgUmVuZGVyR3Jp
ZDo6Y29tcHV0ZUludHJpbnNpY0xvZ2ljYWxXaWR0aHMoTGF5b3V0VW5pdCYgbWluTG9naWNhbFdp
ZHRoLCBMYXlvCiAgICAgTGF5b3V0VW5pdCBjaGlsZE1heFdpZHRoOwogICAgIGJvb2wgaGFkRXhj
bHVkZWRDaGlsZHJlbiA9IGNvbXB1dGVQcmVmZXJyZWRXaWR0aHNGb3JFeGNsdWRlZENoaWxkcmVu
KGNoaWxkTWluV2lkdGgsIGNoaWxkTWF4V2lkdGgpOwogCi0gICAgR3JpZCBncmlkKGNvbnN0X2Nh
c3Q8UmVuZGVyR3JpZCY+KCp0aGlzKSk7Ci0gICAgR3JpZFRyYWNrU2l6aW5nQWxnb3JpdGhtIGFs
Z29yaXRobSh0aGlzLCBncmlkKTsKKyAgICBHcmlkVHJhY2tTaXppbmdBbGdvcml0aG0gYWxnb3Jp
dGhtKHRoaXMsIGNvbnN0X2Nhc3Q8R3JpZCY+KG1fZ3JpZCkpOwogICAgIHBsYWNlSXRlbXNPbkdy
aWQoYWxnb3JpdGhtLCBzdGQ6Om51bGxvcHQpOwogCiAgICAgcGVyZm9ybUdyaWRJdGVtc1ByZUxh
eW91dChhbGdvcml0aG0pOwpAQCAtNDk2LDYgKzQ5NSw5IEBAIHVuc2lnbmVkIFJlbmRlckdyaWQ6
OmNvbXB1dGVBdXRvUmVwZWF0VHJhY2tzQ291bnQoR3JpZFRyYWNrU2l6aW5nRGlyZWN0aW9uIGRp
cmVjCiB7CiAgICAgQVNTRVJUKCFhdmFpbGFibGVTaXplIHx8IGF2YWlsYWJsZVNpemUudmFsdWUo
KSAhPSAtMSk7CiAgICAgYm9vbCBpc1Jvd0F4aXMgPSBkaXJlY3Rpb24gPT0gRm9yQ29sdW1uczsK
KyAgICBpZiAoaXNSb3dBeGlzID8gaXNTdWJncmlkQ29sdW1ucygpIDogaXNTdWJncmlkUm93cygp
KQorICAgICAgICByZXR1cm4gMDsKKwogICAgIGNvbnN0IGF1dG8mIGF1dG9SZXBlYXRUcmFja3Mg
PSBpc1Jvd0F4aXMgPyBzdHlsZSgpLmdyaWRBdXRvUmVwZWF0Q29sdW1ucygpIDogc3R5bGUoKS5n
cmlkQXV0b1JlcGVhdFJvd3MoKTsKICAgICB1bnNpZ25lZCBhdXRvUmVwZWF0VHJhY2tMaXN0TGVu
Z3RoID0gYXV0b1JlcGVhdFRyYWNrcy5zaXplKCk7CiAKQEAgLTY0MSw3ICs2NDMsNiBAQCB2b2lk
IFJlbmRlckdyaWQ6OnBsYWNlSXRlbXNPbkdyaWQoR3JpZFRyYWNrU2l6aW5nQWxnb3JpdGhtJiBh
bGdvcml0aG0sIHN0ZDo6b3B0aQogICAgIEdyaWQmIGdyaWQgPSBhbGdvcml0aG0ubXV0YWJsZUdy
aWQoKTsKICAgICB1bnNpZ25lZCBhdXRvUmVwZWF0Q29sdW1ucyA9IGNvbXB1dGVBdXRvUmVwZWF0
VHJhY2tzQ291bnQoRm9yQ29sdW1ucywgYXZhaWxhYmxlTG9naWNhbFdpZHRoKTsKICAgICB1bnNp
Z25lZCBhdXRvUmVwZWF0Um93cyA9IGNvbXB1dGVBdXRvUmVwZWF0VHJhY2tzQ291bnQoRm9yUm93
cywgYXZhaWxhYmxlTG9naWNhbEhlaWdodEZvclBlcmNlbnRhZ2VDb21wdXRhdGlvbigpKTsKLQog
ICAgIGF1dG9SZXBlYXRSb3dzID0gY2xhbXBBdXRvUmVwZWF0VHJhY2tzKEZvclJvd3MsIGF1dG9S
ZXBlYXRSb3dzKTsKICAgICBhdXRvUmVwZWF0Q29sdW1ucyA9IGNsYW1wQXV0b1JlcGVhdFRyYWNr
cyhGb3JDb2x1bW5zLCBhdXRvUmVwZWF0Q29sdW1ucyk7CiAKQEAgLTY3MCwxMCArNjcxLDcgQEAg
dm9pZCBSZW5kZXJHcmlkOjpwbGFjZUl0ZW1zT25HcmlkKEdyaWRUcmFja1NpemluZ0FsZ29yaXRo
bSYgYWxnb3JpdGhtLCBzdGQ6Om9wdGkKICAgICAgICAgICAgIGNoaWxkLT5zZXRPdmVycmlkaW5n
Q29udGFpbmluZ0Jsb2NrQ29udGVudExvZ2ljYWxIZWlnaHQoc3RkOjpudWxsb3B0KTsKIAogICAg
ICAgICBHcmlkQXJlYSBhcmVhID0gZ3JpZC5ncmlkSXRlbUFyZWEoKmNoaWxkKTsKLSAgICAgICAg
aWYgKCFhcmVhLnJvd3MuaXNJbmRlZmluaXRlKCkpCi0gICAgICAgICAgICBhcmVhLnJvd3MudHJh
bnNsYXRlKGdyaWQuZXhwbGljaXRHcmlkU3RhcnQoRm9yUm93cykpOwotICAgICAgICBpZiAoIWFy
ZWEuY29sdW1ucy5pc0luZGVmaW5pdGUoKSkKLSAgICAgICAgICAgIGFyZWEuY29sdW1ucy50cmFu
c2xhdGUoZ3JpZC5leHBsaWNpdEdyaWRTdGFydChGb3JDb2x1bW5zKSk7CisgICAgICAgIGdyaWQu
Y2xhbXBBbmRUcmFuc2xhdGVUb0ltcGxpY2l0R3JpZChhcmVhKTsKIAogICAgICAgICBpZiAoYXJl
YS5yb3dzLmlzSW5kZWZpbml0ZSgpIHx8IGFyZWEuY29sdW1ucy5pc0luZGVmaW5pdGUoKSkgewog
ICAgICAgICAgICAgZ3JpZC5zZXRHcmlkSXRlbUFyZWEoKmNoaWxkLCBhcmVhKTsKQEAgLTY5MCw4
ICs2ODgsOCBAQCB2b2lkIFJlbmRlckdyaWQ6OnBsYWNlSXRlbXNPbkdyaWQoR3JpZFRyYWNrU2l6
aW5nQWxnb3JpdGhtJiBhbGdvcml0aG0sIHN0ZDo6b3B0aQogCiAjaWYgQVNTRVJUX0VOQUJMRUQK
ICAgICBpZiAoZ3JpZC5oYXNHcmlkSXRlbXMoKSkgewotICAgICAgICBBU1NFUlQoZ3JpZC5udW1U
cmFja3MoRm9yUm93cykgPj0gR3JpZFBvc2l0aW9uc1Jlc29sdmVyOjpleHBsaWNpdEdyaWRSb3dD
b3VudChzdHlsZSgpLCBncmlkLmF1dG9SZXBlYXRUcmFja3MoRm9yUm93cykpKTsKLSAgICAgICAg
QVNTRVJUKGdyaWQubnVtVHJhY2tzKEZvckNvbHVtbnMpID49IEdyaWRQb3NpdGlvbnNSZXNvbHZl
cjo6ZXhwbGljaXRHcmlkQ29sdW1uQ291bnQoc3R5bGUoKSwgZ3JpZC5hdXRvUmVwZWF0VHJhY2tz
KEZvckNvbHVtbnMpKSk7CisgICAgICAgIEFTU0VSVChncmlkLm51bVRyYWNrcyhGb3JSb3dzKSA+
PSBHcmlkUG9zaXRpb25zUmVzb2x2ZXI6OmV4cGxpY2l0R3JpZFJvd0NvdW50KCp0aGlzKSk7Cisg
ICAgICAgIEFTU0VSVChncmlkLm51bVRyYWNrcyhGb3JDb2x1bW5zKSA+PSBHcmlkUG9zaXRpb25z
UmVzb2x2ZXI6OmV4cGxpY2l0R3JpZENvbHVtbkNvdW50KCp0aGlzKSk7CiAgICAgfQogI2VuZGlm
CiAKQEAgLTc0NSwzMyArNzQzLDM1IEBAIHZvaWQgUmVuZGVyR3JpZDo6cG9wdWxhdGVFeHBsaWNp
dEdyaWRBbmRPcmRlckl0ZXJhdG9yKEdyaWQmIGdyaWQpIGNvbnN0CiAgICAgT3JkZXJJdGVyYXRv
clBvcHVsYXRvciBwb3B1bGF0b3IoZ3JpZC5vcmRlckl0ZXJhdG9yKCkpOwogICAgIHVuc2lnbmVk
IGV4cGxpY2l0Um93U3RhcnQgPSAwOwogICAgIHVuc2lnbmVkIGV4cGxpY2l0Q29sdW1uU3RhcnQg
PSAwOwotICAgIHVuc2lnbmVkIGF1dG9SZXBlYXRSb3dzID0gZ3JpZC5hdXRvUmVwZWF0VHJhY2tz
KEZvclJvd3MpOwotICAgIHVuc2lnbmVkIGF1dG9SZXBlYXRDb2x1bW5zID0gZ3JpZC5hdXRvUmVw
ZWF0VHJhY2tzKEZvckNvbHVtbnMpOwotICAgIHVuc2lnbmVkIG1heGltdW1Sb3dJbmRleCA9IEdy
aWRQb3NpdGlvbnNSZXNvbHZlcjo6ZXhwbGljaXRHcmlkUm93Q291bnQoc3R5bGUoKSwgYXV0b1Jl
cGVhdFJvd3MpOwotICAgIHVuc2lnbmVkIG1heGltdW1Db2x1bW5JbmRleCA9IEdyaWRQb3NpdGlv
bnNSZXNvbHZlcjo6ZXhwbGljaXRHcmlkQ29sdW1uQ291bnQoc3R5bGUoKSwgYXV0b1JlcGVhdENv
bHVtbnMpOworICAgIHVuc2lnbmVkIG1heGltdW1Sb3dJbmRleCA9IEdyaWRQb3NpdGlvbnNSZXNv
bHZlcjo6ZXhwbGljaXRHcmlkUm93Q291bnQoKnRoaXMpOworICAgIHVuc2lnbmVkIG1heGltdW1D
b2x1bW5JbmRleCA9IEdyaWRQb3NpdGlvbnNSZXNvbHZlcjo6ZXhwbGljaXRHcmlkQ29sdW1uQ291
bnQoKnRoaXMpOwogCiAgICAgZm9yIChSZW5kZXJCb3gqIGNoaWxkID0gZmlyc3RDaGlsZEJveCgp
OyBjaGlsZDsgY2hpbGQgPSBjaGlsZC0+bmV4dFNpYmxpbmdCb3goKSkgewogICAgICAgICBpZiAo
IXBvcHVsYXRvci5jb2xsZWN0Q2hpbGQoKmNoaWxkKSkKICAgICAgICAgICAgIGNvbnRpbnVlOwog
ICAgICAgICAKLSAgICAgICAgR3JpZFNwYW4gcm93UG9zaXRpb25zID0gR3JpZFBvc2l0aW9uc1Jl
c29sdmVyOjpyZXNvbHZlR3JpZFBvc2l0aW9uc0Zyb21TdHlsZShzdHlsZSgpLCAqY2hpbGQsIEZv
clJvd3MsIGF1dG9SZXBlYXRSb3dzKTsKLSAgICAgICAgaWYgKCFyb3dQb3NpdGlvbnMuaXNJbmRl
ZmluaXRlKCkpIHsKLSAgICAgICAgICAgIGV4cGxpY2l0Um93U3RhcnQgPSBzdGQ6Om1heDxpbnQ+
KGV4cGxpY2l0Um93U3RhcnQsIC1yb3dQb3NpdGlvbnMudW50cmFuc2xhdGVkU3RhcnRMaW5lKCkp
OwotICAgICAgICAgICAgbWF4aW11bVJvd0luZGV4ID0gc3RkOjptYXg8aW50PihtYXhpbXVtUm93
SW5kZXgsIHJvd1Bvc2l0aW9ucy51bnRyYW5zbGF0ZWRFbmRMaW5lKCkpOwotICAgICAgICB9IGVs
c2UgewotICAgICAgICAgICAgLy8gR3JvdyB0aGUgZ3JpZCBmb3IgaXRlbXMgd2l0aCBhIGRlZmlu
aXRlIHJvdyBzcGFuLCBnZXR0aW5nIHRoZSBsYXJnZXN0IHN1Y2ggc3Bhbi4KLSAgICAgICAgICAg
IHVuc2lnbmVkIHNwYW5TaXplID0gR3JpZFBvc2l0aW9uc1Jlc29sdmVyOjpzcGFuU2l6ZUZvckF1
dG9QbGFjZWRJdGVtKCpjaGlsZCwgRm9yUm93cyk7Ci0gICAgICAgICAgICBtYXhpbXVtUm93SW5k
ZXggPSBzdGQ6Om1heChtYXhpbXVtUm93SW5kZXgsIHNwYW5TaXplKTsKKyAgICAgICAgR3JpZFNw
YW4gcm93UG9zaXRpb25zID0gR3JpZFBvc2l0aW9uc1Jlc29sdmVyOjpyZXNvbHZlR3JpZFBvc2l0
aW9uc0Zyb21TdHlsZSgqY2hpbGQsIEZvclJvd3MpOworICAgICAgICBpZiAoIWlzU3ViZ3JpZFJv
d3MoKSkgeworICAgICAgICAgICAgaWYgKCFyb3dQb3NpdGlvbnMuaXNJbmRlZmluaXRlKCkpIHsK
KyAgICAgICAgICAgICAgICBleHBsaWNpdFJvd1N0YXJ0ID0gc3RkOjptYXg8aW50PihleHBsaWNp
dFJvd1N0YXJ0LCAtcm93UG9zaXRpb25zLnVudHJhbnNsYXRlZFN0YXJ0TGluZSgpKTsKKyAgICAg
ICAgICAgICAgICBtYXhpbXVtUm93SW5kZXggPSBzdGQ6Om1heDxpbnQ+KG1heGltdW1Sb3dJbmRl
eCwgcm93UG9zaXRpb25zLnVudHJhbnNsYXRlZEVuZExpbmUoKSk7CisgICAgICAgICAgICB9IGVs
c2UgeworICAgICAgICAgICAgICAgIC8vIEdyb3cgdGhlIGdyaWQgZm9yIGl0ZW1zIHdpdGggYSBk
ZWZpbml0ZSByb3cgc3BhbiwgZ2V0dGluZyB0aGUgbGFyZ2VzdCBzdWNoIHNwYW4uCisgICAgICAg
ICAgICAgICAgdW5zaWduZWQgc3BhblNpemUgPSBHcmlkUG9zaXRpb25zUmVzb2x2ZXI6OnNwYW5T
aXplRm9yQXV0b1BsYWNlZEl0ZW0oKmNoaWxkLCBGb3JSb3dzKTsKKyAgICAgICAgICAgICAgICBt
YXhpbXVtUm93SW5kZXggPSBzdGQ6Om1heChtYXhpbXVtUm93SW5kZXgsIHNwYW5TaXplKTsKKyAg
ICAgICAgICAgIH0KICAgICAgICAgfQogCi0gICAgICAgIEdyaWRTcGFuIGNvbHVtblBvc2l0aW9u
cyA9IEdyaWRQb3NpdGlvbnNSZXNvbHZlcjo6cmVzb2x2ZUdyaWRQb3NpdGlvbnNGcm9tU3R5bGUo
c3R5bGUoKSwgKmNoaWxkLCBGb3JDb2x1bW5zLCBhdXRvUmVwZWF0Q29sdW1ucyk7Ci0gICAgICAg
IGlmICghY29sdW1uUG9zaXRpb25zLmlzSW5kZWZpbml0ZSgpKSB7Ci0gICAgICAgICAgICBleHBs
aWNpdENvbHVtblN0YXJ0ID0gc3RkOjptYXg8aW50PihleHBsaWNpdENvbHVtblN0YXJ0LCAtY29s
dW1uUG9zaXRpb25zLnVudHJhbnNsYXRlZFN0YXJ0TGluZSgpKTsKLSAgICAgICAgICAgIG1heGlt
dW1Db2x1bW5JbmRleCA9IHN0ZDo6bWF4PGludD4obWF4aW11bUNvbHVtbkluZGV4LCBjb2x1bW5Q
b3NpdGlvbnMudW50cmFuc2xhdGVkRW5kTGluZSgpKTsKLSAgICAgICAgfSBlbHNlIHsKLSAgICAg
ICAgICAgIC8vIEdyb3cgdGhlIGdyaWQgZm9yIGl0ZW1zIHdpdGggYSBkZWZpbml0ZSBjb2x1bW4g
c3BhbiwgZ2V0dGluZyB0aGUgbGFyZ2VzdCBzdWNoIHNwYW4uCi0gICAgICAgICAgICB1bnNpZ25l
ZCBzcGFuU2l6ZSA9IEdyaWRQb3NpdGlvbnNSZXNvbHZlcjo6c3BhblNpemVGb3JBdXRvUGxhY2Vk
SXRlbSgqY2hpbGQsIEZvckNvbHVtbnMpOwotICAgICAgICAgICAgbWF4aW11bUNvbHVtbkluZGV4
ID0gc3RkOjptYXgobWF4aW11bUNvbHVtbkluZGV4LCBzcGFuU2l6ZSk7CisgICAgICAgIEdyaWRT
cGFuIGNvbHVtblBvc2l0aW9ucyA9IEdyaWRQb3NpdGlvbnNSZXNvbHZlcjo6cmVzb2x2ZUdyaWRQ
b3NpdGlvbnNGcm9tU3R5bGUoKmNoaWxkLCBGb3JDb2x1bW5zKTsKKyAgICAgICAgaWYgKCFpc1N1
YmdyaWRDb2x1bW5zKCkpIHsKKyAgICAgICAgICAgIGlmICghY29sdW1uUG9zaXRpb25zLmlzSW5k
ZWZpbml0ZSgpKSB7CisgICAgICAgICAgICAgICAgZXhwbGljaXRDb2x1bW5TdGFydCA9IHN0ZDo6
bWF4PGludD4oZXhwbGljaXRDb2x1bW5TdGFydCwgLWNvbHVtblBvc2l0aW9ucy51bnRyYW5zbGF0
ZWRTdGFydExpbmUoKSk7CisgICAgICAgICAgICAgICAgbWF4aW11bUNvbHVtbkluZGV4ID0gc3Rk
OjptYXg8aW50PihtYXhpbXVtQ29sdW1uSW5kZXgsIGNvbHVtblBvc2l0aW9ucy51bnRyYW5zbGF0
ZWRFbmRMaW5lKCkpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAvLyBH
cm93IHRoZSBncmlkIGZvciBpdGVtcyB3aXRoIGEgZGVmaW5pdGUgY29sdW1uIHNwYW4sIGdldHRp
bmcgdGhlIGxhcmdlc3Qgc3VjaCBzcGFuLgorICAgICAgICAgICAgICAgIHVuc2lnbmVkIHNwYW5T
aXplID0gR3JpZFBvc2l0aW9uc1Jlc29sdmVyOjpzcGFuU2l6ZUZvckF1dG9QbGFjZWRJdGVtKCpj
aGlsZCwgRm9yQ29sdW1ucyk7CisgICAgICAgICAgICAgICAgbWF4aW11bUNvbHVtbkluZGV4ID0g
c3RkOjptYXgobWF4aW11bUNvbHVtbkluZGV4LCBzcGFuU2l6ZSk7CisgICAgICAgICAgICB9CiAg
ICAgICAgIH0KIAogICAgICAgICBncmlkLnNldEdyaWRJdGVtQXJlYSgqY2hpbGQsIHsgcm93UG9z
aXRpb25zLCBjb2x1bW5Qb3NpdGlvbnMgfSk7CkBAIC03NzksNiArNzc5LDcgQEAgdm9pZCBSZW5k
ZXJHcmlkOjpwb3B1bGF0ZUV4cGxpY2l0R3JpZEFuZE9yZGVySXRlcmF0b3IoR3JpZCYgZ3JpZCkg
Y29uc3QKIAogICAgIGdyaWQuc2V0RXhwbGljaXRHcmlkU3RhcnQoZXhwbGljaXRSb3dTdGFydCwg
ZXhwbGljaXRDb2x1bW5TdGFydCk7CiAgICAgZ3JpZC5lbnN1cmVHcmlkU2l6ZShtYXhpbXVtUm93
SW5kZXggKyBleHBsaWNpdFJvd1N0YXJ0LCBtYXhpbXVtQ29sdW1uSW5kZXggKyBleHBsaWNpdENv
bHVtblN0YXJ0KTsKKyAgICBncmlkLnNldENsYW1waW5nRm9yU3ViZ3JpZChpc1N1YmdyaWRSb3dz
KCkgPyBtYXhpbXVtUm93SW5kZXggOiAwLCBpc1N1YmdyaWRDb2x1bW5zKCkgPyBtYXhpbXVtQ29s
dW1uSW5kZXggOiAwKTsKIH0KIAogc3RkOjp1bmlxdWVfcHRyPEdyaWRBcmVhPiBSZW5kZXJHcmlk
OjpjcmVhdGVFbXB0eUdyaWRBcmVhQXRTcGVjaWZpZWRQb3NpdGlvbnNPdXRzaWRlR3JpZChHcmlk
JiBncmlkLCBjb25zdCBSZW5kZXJCb3gmIGdyaWRJdGVtLCBHcmlkVHJhY2tTaXppbmdEaXJlY3Rp
b24gc3BlY2lmaWVkRGlyZWN0aW9uLCBjb25zdCBHcmlkU3BhbiYgc3BlY2lmaWVkUG9zaXRpb25z
KSBjb25zdApAQCAtODEyLDcgKzgxMyw3IEBAIHZvaWQgUmVuZGVyR3JpZDo6cGxhY2VTcGVjaWZp
ZWRNYWpvckF4aXNJdGVtc09uR3JpZChHcmlkJiBncmlkLCBjb25zdCBWZWN0b3I8UmVuCiAgICAg
ICAgIGlmICghZW1wdHlHcmlkQXJlYSkKICAgICAgICAgICAgIGVtcHR5R3JpZEFyZWEgPSBjcmVh
dGVFbXB0eUdyaWRBcmVhQXRTcGVjaWZpZWRQb3NpdGlvbnNPdXRzaWRlR3JpZChncmlkLCAqYXV0
b0dyaWRJdGVtLCBhdXRvUGxhY2VtZW50TWFqb3JBeGlzRGlyZWN0aW9uKCksIG1ham9yQXhpc1Bv
c2l0aW9ucyk7CiAKLSAgICAgICAgZ3JpZC5pbnNlcnQoKmF1dG9HcmlkSXRlbSwgKmVtcHR5R3Jp
ZEFyZWEpOworICAgICAgICAqZW1wdHlHcmlkQXJlYSA9IGdyaWQuaW5zZXJ0KCphdXRvR3JpZEl0
ZW0sICplbXB0eUdyaWRBcmVhKTsKIAogICAgICAgICBpZiAoIWlzR3JpZEF1dG9GbG93RGVuc2Up
CiAgICAgICAgICAgICBtaW5vckF4aXNDdXJzb3JzLnNldChtYWpvckF4aXNJbml0aWFsUG9zaXRp
b24sIGlzRm9yQ29sdW1ucyA/IGVtcHR5R3JpZEFyZWEtPnJvd3Muc3RhcnRMaW5lKCkgOiBlbXB0
eUdyaWRBcmVhLT5jb2x1bW5zLnN0YXJ0TGluZSgpKTsKQEAgLTE2MTAsMTEgKzE2MTEsMjkgQEAg
TGF5b3V0VW5pdCBSZW5kZXJHcmlkOjpyZXNvbHZlQXV0b0VuZEdyaWRQb3NpdGlvbihHcmlkVHJh
Y2tTaXppbmdEaXJlY3Rpb24gZGlyZWMKICAgICByZXR1cm4gY2xpZW50TG9naWNhbFdpZHRoKCk7
CiB9CiAKK2Jvb2wgUmVuZGVyR3JpZDo6aXNTdWJncmlkKEdyaWRUcmFja1NpemluZ0RpcmVjdGlv
biBkaXJlY3Rpb24pIGNvbnN0Cit7CisgICAgaWYgKGlzT3V0T2ZGbG93UG9zaXRpb25lZCgpIHx8
IGlzRXhjbHVkZWRGcm9tTm9ybWFsTGF5b3V0KCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAg
ICBpZiAoKGRpcmVjdGlvbiA9PSBGb3JDb2x1bW5zKSA/ICFzdHlsZSgpLmdyaWRTdWJncmlkQ29s
dW1ucygpIDogIXN0eWxlKCkuZ3JpZFN1YmdyaWRSb3dzKCkpCisgICAgICAgIHJldHVybiBmYWxz
ZTsKKyAgICByZXR1cm4gaXM8UmVuZGVyR3JpZD4ocGFyZW50KCkpOworfQorCitib29sIFJlbmRl
ckdyaWQ6OmlzU3ViZ3JpZFJvd3MoKSBjb25zdAoreworICAgIHJldHVybiBpc1N1YmdyaWQoRm9y
Um93cyk7Cit9Citib29sIFJlbmRlckdyaWQ6OmlzU3ViZ3JpZENvbHVtbnMoKSBjb25zdAorewor
ICAgIHJldHVybiBpc1N1YmdyaWQoRm9yQ29sdW1ucyk7Cit9CisKIExheW91dFVuaXQgUmVuZGVy
R3JpZDo6Z3JpZEFyZWFCcmVhZHRoRm9yT3V0T2ZGbG93Q2hpbGQoY29uc3QgUmVuZGVyQm94JiBj
aGlsZCwgR3JpZFRyYWNrU2l6aW5nRGlyZWN0aW9uIGRpcmVjdGlvbikKIHsKICAgICBBU1NFUlQo
Y2hpbGQuaXNPdXRPZkZsb3dQb3NpdGlvbmVkKCkpOwogICAgIGJvb2wgaXNSb3dBeGlzID0gZGly
ZWN0aW9uID09IEZvckNvbHVtbnM7Ci0gICAgR3JpZFNwYW4gc3BhbiA9IEdyaWRQb3NpdGlvbnNS
ZXNvbHZlcjo6cmVzb2x2ZUdyaWRQb3NpdGlvbnNGcm9tU3R5bGUoc3R5bGUoKSwgY2hpbGQsIGRp
cmVjdGlvbiwgYXV0b1JlcGVhdENvdW50Rm9yRGlyZWN0aW9uKGRpcmVjdGlvbikpOworICAgIEdy
aWRTcGFuIHNwYW4gPSBHcmlkUG9zaXRpb25zUmVzb2x2ZXI6OnJlc29sdmVHcmlkUG9zaXRpb25z
RnJvbVN0eWxlKGNoaWxkLCBkaXJlY3Rpb24pOwogICAgIGlmIChzcGFuLmlzSW5kZWZpbml0ZSgp
KQogICAgICAgICByZXR1cm4gaXNSb3dBeGlzID8gY2xpZW50TG9naWNhbFdpZHRoKCkgOiBjbGll
bnRMb2dpY2FsSGVpZ2h0KCk7CiAKQEAgLTE5MjAsNyArMTkzOSw3IEBAIHVuc2lnbmVkIFJlbmRl
ckdyaWQ6Om51bVRyYWNrcyhHcmlkVHJhY2tTaXppbmdEaXJlY3Rpb24gZGlyZWN0aW9uLCBjb25z
dCBHcmlkJiBnCiAgICAgICAgIHJldHVybiBncmlkLm51bVRyYWNrcyhGb3JSb3dzKTsKIAogICAg
IC8vIEZJWE1FOiBUaGlzIHN0aWxsIHJlcXVpcmVzIGtub3dsZWRnZSBhYm91dCBtX2dyaWQgaW50
ZXJuYWxzLgotICAgIHJldHVybiBncmlkLm51bVRyYWNrcyhGb3JSb3dzKSA/IGdyaWQubnVtVHJh
Y2tzKEZvckNvbHVtbnMpIDogR3JpZFBvc2l0aW9uc1Jlc29sdmVyOjpleHBsaWNpdEdyaWRDb2x1
bW5Db3VudChzdHlsZSgpLCBncmlkLmF1dG9SZXBlYXRUcmFja3MoRm9yQ29sdW1ucykpOworICAg
IHJldHVybiBncmlkLm51bVRyYWNrcyhGb3JSb3dzKSA/IGdyaWQubnVtVHJhY2tzKEZvckNvbHVt
bnMpIDogR3JpZFBvc2l0aW9uc1Jlc29sdmVyOjpleHBsaWNpdEdyaWRDb2x1bW5Db3VudCgqdGhp
cyk7CiB9CiAKIHZvaWQgUmVuZGVyR3JpZDo6cGFpbnRDaGlsZHJlbihQYWludEluZm8mIHBhaW50
SW5mbywgY29uc3QgTGF5b3V0UG9pbnQmIHBhaW50T2Zmc2V0LCBQYWludEluZm8mIGZvckNoaWxk
LCBib29sIHVzZVByaW50UmVjdCkKQEAgLTE5NzcsNCArMTk5Niw2MiBAQCBib29sIFJlbmRlckdy
aWQ6Omhhc0F1dG9TaXplSW5Sb3dBeGlzKGNvbnN0IFJlbmRlckJveCYgY2hpbGQpIGNvbnN0CiAg
ICAgcmV0dXJuIGlzSG9yaXpvbnRhbFdyaXRpbmdNb2RlKCkgPyBjaGlsZC5zdHlsZSgpLndpZHRo
KCkuaXNBdXRvKCkgOiBjaGlsZC5zdHlsZSgpLmhlaWdodCgpLmlzQXV0bygpOwogfQogCitib29s
IFJlbmRlckdyaWQ6OmNvbXB1dGVHcmlkU3BhbkZvck91dE9mRmxvd0NoaWxkKGNvbnN0IFJlbmRl
ckJveCYgY2hpbGQsIEdyaWRUcmFja1NpemluZ0RpcmVjdGlvbiBkaXJlY3Rpb24sIGludCYgc3Rh
cnRMaW5lLCBib29sJiBzdGFydElzQXV0bywgaW50JiBlbmRMaW5lLCBib29sJiBlbmRJc0F1dG8p
IGNvbnN0Cit7CisgICAgQVNTRVJUKGNoaWxkLmlzT3V0T2ZGbG93UG9zaXRpb25lZCgpKTsKKyAg
ICBpbnQgbGFzdExpbmUgPSBudW1UcmFja3MoZGlyZWN0aW9uLCBtX2dyaWQpOworICAgIEdyaWRT
cGFuIHNwYW4gPSBHcmlkUG9zaXRpb25zUmVzb2x2ZXI6OnJlc29sdmVHcmlkUG9zaXRpb25zRnJv
bVN0eWxlKGNoaWxkLCBkaXJlY3Rpb24pOworICAgIGlmIChzcGFuLmlzSW5kZWZpbml0ZSgpKQor
ICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICB1bnNpZ25lZCBleHBsaWNpdFN0YXJ0ID0gbV9n
cmlkLmV4cGxpY2l0R3JpZFN0YXJ0KGRpcmVjdGlvbik7CisgICAgc3RhcnRMaW5lID0gc3Bhbi51
bnRyYW5zbGF0ZWRTdGFydExpbmUoKSArIGV4cGxpY2l0U3RhcnQ7CisgICAgZW5kTGluZSA9IHNw
YW4udW50cmFuc2xhdGVkRW5kTGluZSgpICsgZXhwbGljaXRTdGFydDsKKworICAgIEdyaWRQb3Np
dGlvbiBzdGFydFBvc2l0aW9uID0gZGlyZWN0aW9uID09IEZvckNvbHVtbnMgPyBjaGlsZC5zdHls
ZSgpLmdyaWRJdGVtQ29sdW1uU3RhcnQoKSA6IGNoaWxkLnN0eWxlKCkuZ3JpZEl0ZW1Sb3dTdGFy
dCgpOworICAgIEdyaWRQb3NpdGlvbiBlbmRQb3NpdGlvbiA9IGRpcmVjdGlvbiA9PSBGb3JDb2x1
bW5zID8gY2hpbGQuc3R5bGUoKS5ncmlkSXRlbUNvbHVtbkVuZCgpIDogY2hpbGQuc3R5bGUoKS5n
cmlkSXRlbVJvd0VuZCgpOworCisgICAgc3RhcnRJc0F1dG8gPSBzdGFydFBvc2l0aW9uLmlzQXV0
bygpIHx8IHN0YXJ0TGluZSA8IDAgfHwgc3RhcnRMaW5lID4gbGFzdExpbmU7CisgICAgZW5kSXNB
dXRvID0gZW5kUG9zaXRpb24uaXNBdXRvKCkgfHwgZW5kTGluZSA8IDAgfHwgZW5kTGluZSA+IGxh
c3RMaW5lOworICAgIHJldHVybiB0cnVlOworfQorCitHcmlkU3BhbiBSZW5kZXJHcmlkOjpncmlk
U3BhbkZvck91dE9mRmxvd0NoaWxkKGNvbnN0IFJlbmRlckJveCYgY2hpbGQsIEdyaWRUcmFja1Np
emluZ0RpcmVjdGlvbiBkaXJlY3Rpb24pIGNvbnN0Cit7CisgICAgaW50IGxhc3RMaW5lID0gbnVt
VHJhY2tzKGRpcmVjdGlvbiwgbV9ncmlkKTsKKyAgICBpbnQgc3RhcnRMaW5lLCBlbmRMaW5lOwor
ICAgIGJvb2wgc3RhcnRJc0F1dG8sIGVuZElzQXV0bzsKKyAgICBpZiAoIWNvbXB1dGVHcmlkU3Bh
bkZvck91dE9mRmxvd0NoaWxkKGNoaWxkLCBkaXJlY3Rpb24sIHN0YXJ0TGluZSwgc3RhcnRJc0F1
dG8sIGVuZExpbmUsIGVuZElzQXV0bykpCisgICAgICAgIHJldHVybiBHcmlkU3Bhbjo6dHJhbnNs
YXRlZERlZmluaXRlR3JpZFNwYW4oMCwgbGFzdExpbmUpOworICAgIHJldHVybiBHcmlkU3Bhbjo6
dHJhbnNsYXRlZERlZmluaXRlR3JpZFNwYW4oc3RhcnRJc0F1dG8gPyAwIDogc3RhcnRMaW5lLCBl
bmRJc0F1dG8gPyBsYXN0TGluZSA6IGVuZExpbmUpOworfQorCitHcmlkU3BhbiBSZW5kZXJHcmlk
OjpncmlkU3BhbkZvckNoaWxkKGNvbnN0IFJlbmRlckJveCYgY2hpbGQsIEdyaWRUcmFja1Npemlu
Z0RpcmVjdGlvbiBkaXJlY3Rpb24pIGNvbnN0Cit7CisgICAgQVNTRVJUKGlzPFJlbmRlckdyaWQ+
KGNoaWxkLnBhcmVudCgpKSk7CisKKyAgICBSZW5kZXJHcmlkKiByZW5kZXJHcmlkID0gZG93bmNh
c3Q8UmVuZGVyR3JpZD4oY2hpbGQucGFyZW50KCkpOworICAgIC8vIHxkaXJlY3Rpb258IGlzIHNw
ZWNpZmllZCByZWxhdGl2ZSB0byB0aGlzIGdyaWQsIHN3aXRjaCBpdCBpZiB8Y2hpbGR8J3MgZGly
ZWN0IHBhcmVudCBncmlkCisgICAgLy8gaXMgdXNpbmcgYSBkaWZmZXJlbnQgd3JpdGluZyBtb2Rl
LgorICAgIGRpcmVjdGlvbiA9IEdyaWRMYXlvdXRGdW5jdGlvbnM6OmZsb3dBd2FyZURpcmVjdGlv
bkZvckNoaWxkKCp0aGlzLCAqcmVuZGVyR3JpZCwgZGlyZWN0aW9uKTsKKyAgICBHcmlkU3BhbiBz
cGFuID0gY2hpbGQuaXNPdXRPZkZsb3dQb3NpdGlvbmVkKCkgPyByZW5kZXJHcmlkLT5ncmlkU3Bh
bkZvck91dE9mRmxvd0NoaWxkKGNoaWxkLCBkaXJlY3Rpb24pIDogcmVuZGVyR3JpZC0+Y3VycmVu
dEdyaWQoKS5ncmlkSXRlbVNwYW4oY2hpbGQsIGRpcmVjdGlvbik7CisKKyAgICB3aGlsZSAocmVu
ZGVyR3JpZCAhPSB0aGlzKSB7CisgICAgICAgIEFTU0VSVChpczxSZW5kZXJHcmlkPihyZW5kZXJH
cmlkLT5wYXJlbnQoKSkpOworICAgICAgICBSZW5kZXJHcmlkKiBwYXJlbnQgPSBkb3duY2FzdDxS
ZW5kZXJHcmlkPihyZW5kZXJHcmlkLT5wYXJlbnQoKSk7CisKKyAgICAgICAgYm9vbCBpc1N1Ymdy
aWQgPSBkaXJlY3Rpb24gPT0gRm9yQ29sdW1ucyA/IHJlbmRlckdyaWQtPmlzU3ViZ3JpZENvbHVt
bnMoKSA6IHJlbmRlckdyaWQtPmlzU3ViZ3JpZFJvd3MoKTsKKworICAgICAgICBkaXJlY3Rpb24g
PSBHcmlkTGF5b3V0RnVuY3Rpb25zOjpmbG93QXdhcmVEaXJlY3Rpb25Gb3JDaGlsZCgqcGFyZW50
LCAqcmVuZGVyR3JpZCwgZGlyZWN0aW9uKTsKKworICAgICAgICBHcmlkU3BhbiBwYXJlbnRTcGFu
ID0gcmVuZGVyR3JpZC0+aXNPdXRPZkZsb3dQb3NpdGlvbmVkKCkgPyBwYXJlbnQtPmdyaWRTcGFu
Rm9yT3V0T2ZGbG93Q2hpbGQoKnJlbmRlckdyaWQsIGRpcmVjdGlvbikgOiAgcGFyZW50LT5jdXJy
ZW50R3JpZCgpLmdyaWRJdGVtU3BhbigqcmVuZGVyR3JpZCwgZGlyZWN0aW9uKTsKKyAgICAgICAg
aWYgKGlzU3ViZ3JpZCkKKyAgICAgICAgICAgIHNwYW4udHJhbnNsYXRlVG8ocGFyZW50U3Bhbiwg
R3JpZExheW91dEZ1bmN0aW9uczo6aXNTdWJncmlkUmV2ZXJzZWREaXJlY3Rpb24oKnBhcmVudCwg
ZGlyZWN0aW9uLCAqcmVuZGVyR3JpZCkpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBzcGFu
ID0gcGFyZW50U3BhbjsKKyAgICAgICAgcmVuZGVyR3JpZCA9IHBhcmVudDsKKyAgICB9CisgICAg
cmV0dXJuIHNwYW47Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJHcmlkLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyR3JpZC5oCmluZGV4IGUyMzBiMTNkYThhMi4uNzNkNzQzZWNlN2U1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyR3JpZC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJHcmlkLmgKQEAgLTgyLDYgKzgyLDI0IEBAIHB1Ymxp
YzoKIAogICAgIFN0eWxlQ29udGVudEFsaWdubWVudERhdGEgY29udGVudEFsaWdubWVudChHcmlk
VHJhY2tTaXppbmdEaXJlY3Rpb24pIGNvbnN0OwogCisgICAgLy8gQ29tcHV0ZXMgdGhlIHNwYW4g
cmVsYXRpdmUgdG8gdGhpcyBSZW5kZXJHcmlkLCBldmVuIGlmIHRoZSBSZW5kZXJCb3ggaXMgYSBj
aGlsZAorICAgIC8vIG9mIGEgZGVzY2VuZGFudCBzdWJncmlkLgorICAgIEdyaWRTcGFuIGdyaWRT
cGFuRm9yQ2hpbGQoY29uc3QgUmVuZGVyQm94JiwgR3JpZFRyYWNrU2l6aW5nRGlyZWN0aW9uKSBj
b25zdDsKKworICAgIGJvb2wgaXNTdWJncmlkUm93cygpIGNvbnN0OworICAgIGJvb2wgaXNTdWJn
cmlkQ29sdW1ucygpIGNvbnN0OworICAgIGJvb2wgaXNTdWJncmlkKEdyaWRUcmFja1NpemluZ0Rp
cmVjdGlvbikgY29uc3Q7CisKKyAgICBjb25zdCBHcmlkJiBjdXJyZW50R3JpZCgpIGNvbnN0Cisg
ICAgeworICAgICAgICByZXR1cm4gbV9ncmlkOworICAgIH0KKworICAgIHVuc2lnbmVkIG51bVRy
YWNrcyhHcmlkVHJhY2tTaXppbmdEaXJlY3Rpb24gZGlyZWN0aW9uKSBjb25zdAorICAgIHsKKyAg
ICAgICAgcmV0dXJuIG51bVRyYWNrcyhkaXJlY3Rpb24sIG1fZ3JpZCk7CisgICAgfQorCiBwcml2
YXRlOgogICAgIEl0ZW1Qb3NpdGlvbiBzZWxmQWxpZ25tZW50Tm9ybWFsQmVoYXZpb3IoY29uc3Qg
UmVuZGVyQm94KiBjaGlsZCA9IG51bGxwdHIpIGNvbnN0IG92ZXJyaWRlCiAgICAgewpAQCAtMTUw
LDggKzE2OCw2IEBAIHByaXZhdGU6CiAgICAgdm9pZCBzZXRMb2dpY2FsUG9zaXRpb25Gb3JDaGls
ZChSZW5kZXJCb3gmKSBjb25zdDsKICAgICB2b2lkIHNldExvZ2ljYWxPZmZzZXRGb3JDaGlsZChS
ZW5kZXJCb3gmLCBHcmlkVHJhY2tTaXppbmdEaXJlY3Rpb24pIGNvbnN0OwogICAgIExheW91dFVu
aXQgbG9naWNhbE9mZnNldEZvckNoaWxkKGNvbnN0IFJlbmRlckJveCYsIEdyaWRUcmFja1Npemlu
Z0RpcmVjdGlvbikgY29uc3Q7Ci0gICAgR3JpZEFyZWEgY2FjaGVkR3JpZEFyZWEoY29uc3QgUmVu
ZGVyQm94JikgY29uc3Q7Ci0gICAgR3JpZFNwYW4gY2FjaGVkR3JpZFNwYW4oY29uc3QgUmVuZGVy
Qm94JiwgR3JpZFRyYWNrU2l6aW5nRGlyZWN0aW9uKSBjb25zdDsKIAogICAgIExheW91dFVuaXQg
Z3JpZEFyZWFCcmVhZHRoRm9yQ2hpbGRJbmNsdWRpbmdBbGlnbm1lbnRPZmZzZXRzKGNvbnN0IFJl
bmRlckJveCYsIEdyaWRUcmFja1NpemluZ0RpcmVjdGlvbikgY29uc3Q7CiAKQEAgLTE5Myw2ICsy
MDksOSBAQCBwcml2YXRlOgogCiAgICAgVmVjdG9yPFJlbmRlckJveCo+IGNvbXB1dGVBc3BlY3RS
YXRpb0RlcGVuZGVudEFuZEJhc2VsaW5lSXRlbXMoKTsKIAorICAgIEdyaWRTcGFuIGdyaWRTcGFu
Rm9yT3V0T2ZGbG93Q2hpbGQoY29uc3QgUmVuZGVyQm94JiwgR3JpZFRyYWNrU2l6aW5nRGlyZWN0
aW9uKSBjb25zdDsKKyAgICBib29sIGNvbXB1dGVHcmlkU3BhbkZvck91dE9mRmxvd0NoaWxkKGNv
bnN0IFJlbmRlckJveCYsIEdyaWRUcmFja1NpemluZ0RpcmVjdGlvbiwgaW50JiwgYm9vbCYsIGlu
dCYsIGJvb2wmKSBjb25zdDsKKwogICAgIEdyaWQgbV9ncmlkOwogCiAgICAgR3JpZFRyYWNrU2l6
aW5nQWxnb3JpdGhtIG1fdHJhY2tTaXppbmdBbGdvcml0aG07CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvR3JpZEFyZWEuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9zdHlsZS9HcmlkQXJlYS5oCmluZGV4IGI3ZWJkMWQ5NjFkZS4uZWUzYjkyZmMwZmYzIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvR3JpZEFyZWEuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvR3JpZEFyZWEuaApAQCAtNjUsNyArNjUs
NyBAQCBwdWJsaWM6CiAKICAgICB1bnNpZ25lZCBpbnRlZ2VyU3BhbigpIGNvbnN0CiAgICAgewot
ICAgICAgICBBU1NFUlQoaXNUcmFuc2xhdGVkRGVmaW5pdGUoKSk7CisgICAgICAgIEFTU0VSVChp
c1RyYW5zbGF0ZWREZWZpbml0ZSgpIHx8IG1fdHlwZSA9PSBVbnRyYW5zbGF0ZWREZWZpbml0ZSk7
CiAgICAgICAgIHJldHVybiBtX2VuZExpbmUgLSBtX3N0YXJ0TGluZTsKICAgICB9CiAKQEAgLTE0
MSw2ICsxNDEsMzEgQEAgcHVibGljOgogICAgICAgICBBU1NFUlQobV9lbmRMaW5lID4gMCk7CiAg
ICAgfQogCisgICAgLy8gTW92ZXMgdGhpcyBzcGFuIHRvIGJlIGluIHRoZSBzYW1lIGNvb3JkaW5h
dGUgc3BhY2UgYXMgfHBhcmVudHwuCisgICAgLy8gSWYgcmV2ZXJzZSBpcyBzcGVjaWZpZWQsIHRo
ZW4gc3dhcHMgdGhlIGRpcmVjdGlvbiB0byBoYW5kbGUgUlRML0xUUiBjaGFuZ2VzLgorICAgIHZv
aWQgdHJhbnNsYXRlVG8oY29uc3QgR3JpZFNwYW4mIHBhcmVudCwgYm9vbCByZXZlcnNlKQorICAg
IHsKKyAgICAgICAgQVNTRVJUKG1fdHlwZSA9PSBUcmFuc2xhdGVkRGVmaW5pdGUpOworICAgICAg
ICBBU1NFUlQocGFyZW50Lm1fdHlwZSA9PSBUcmFuc2xhdGVkRGVmaW5pdGUpOworICAgICAgICBp
ZiAocmV2ZXJzZSkgeworICAgICAgICAgICAgaW50IHN0YXJ0ID0gbV9zdGFydExpbmU7CisgICAg
ICAgICAgICBtX3N0YXJ0TGluZSA9IHBhcmVudC5pbnRlZ2VyU3BhbigpIC0gbV9lbmRMaW5lICsg
cGFyZW50LnN0YXJ0TGluZSgpOworICAgICAgICAgICAgbV9lbmRMaW5lID0gcGFyZW50LmludGVn
ZXJTcGFuKCkgLSBzdGFydCArIHBhcmVudC5zdGFydExpbmUoKTsKKyAgICAgICAgfSBlbHNlIHsK
KyAgICAgICAgICAgIG1fc3RhcnRMaW5lICs9IHBhcmVudC5tX3N0YXJ0TGluZTsKKyAgICAgICAg
ICAgIG1fZW5kTGluZSArPSBwYXJlbnQubV9zdGFydExpbmU7CisgICAgICAgIH0KKyAgICB9CisK
KyAgICB2b2lkIGNsYW1wKGludCBtYXgpCisgICAgeworICAgICAgICBBU1NFUlQobV90eXBlICE9
IEluZGVmaW5pdGUpOworICAgICAgICBtX3N0YXJ0TGluZSA9IHN0ZDo6bWF4KG1fc3RhcnRMaW5l
LCAwKTsKKyAgICAgICAgbV9lbmRMaW5lID0gc3RkOjptYXgoc3RkOjptaW4obV9lbmRMaW5lLCBt
YXgpLCAxKTsKKyAgICAgICAgaWYgKG1fc3RhcnRMaW5lID49IG1fZW5kTGluZSkKKyAgICAgICAg
ICAgIG1fc3RhcnRMaW5lID0gbV9lbmRMaW5lIC0gMTsKKyAgICB9CisKIHByaXZhdGU6CiAKICAg
ICBlbnVtIEdyaWRTcGFuVHlwZSB7VW50cmFuc2xhdGVkRGVmaW5pdGUsIFRyYW5zbGF0ZWREZWZp
bml0ZSwgSW5kZWZpbml0ZX07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
c3R5bGUvR3JpZFBvc2l0aW9uc1Jlc29sdmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9zdHlsZS9HcmlkUG9zaXRpb25zUmVzb2x2ZXIuY3BwCmluZGV4IDMzYzcwM2M1ZjA2Zi4uOWUz
ZTU2M2M5Y2Y0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvR3Jp
ZFBvc2l0aW9uc1Jlc29sdmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5
bGUvR3JpZFBvc2l0aW9uc1Jlc29sdmVyLmNwcApAQCAtMzMsNiArMzMsNyBAQAogCiAjaW5jbHVk
ZSAiR3JpZEFyZWEuaCIKICNpbmNsdWRlICJSZW5kZXJCb3guaCIKKyNpbmNsdWRlICJSZW5kZXJH
cmlkLmgiCiAjaW5jbHVkZSA8Y3N0ZGxpYj4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtNzgs
NiArNzksMTEgQEAgTmFtZWRMaW5lQ29sbGVjdGlvbjo6TmFtZWRMaW5lQ29sbGVjdGlvbihjb25z
dCBSZW5kZXJTdHlsZSYgZ3JpZENvbnRhaW5lclN0eWxlLAogICAgIG1faW5zZXJ0aW9uUG9pbnQg
PSBpc1Jvd0F4aXMgPyBncmlkQ29udGFpbmVyU3R5bGUuZ3JpZEF1dG9SZXBlYXRDb2x1bW5zSW5z
ZXJ0aW9uUG9pbnQoKSA6IGdyaWRDb250YWluZXJTdHlsZS5ncmlkQXV0b1JlcGVhdFJvd3NJbnNl
cnRpb25Qb2ludCgpOwogCiAgICAgbV9hdXRvUmVwZWF0VHJhY2tMaXN0TGVuZ3RoID0gaXNSb3dB
eGlzID8gZ3JpZENvbnRhaW5lclN0eWxlLmdyaWRBdXRvUmVwZWF0Q29sdW1ucygpLnNpemUoKSA6
IGdyaWRDb250YWluZXJTdHlsZS5ncmlkQXV0b1JlcGVhdFJvd3MoKS5zaXplKCk7CisgICAgLy8g
VE9ETzogSGFuZGxlIHN1YmdyaWQgYXV0byByZXBlYXQgdHJhY2tzCisgICAgaWYgKGlzUm93QXhp
cyA/IGdyaWRDb250YWluZXJTdHlsZS5ncmlkU3ViZ3JpZENvbHVtbnMoKSA6IGdyaWRDb250YWlu
ZXJTdHlsZS5ncmlkU3ViZ3JpZFJvd3MoKSkgeworICAgICAgICBtX2F1dG9SZXBlYXRUcmFja0xp
c3RMZW5ndGggPSAwOworICAgICAgICBtX2F1dG9SZXBlYXROYW1lZExpbmVzSW5kZXhlcyA9IG51
bGxwdHI7CisgICAgfQogfQogCiBib29sIE5hbWVkTGluZUNvbGxlY3Rpb246Omhhc0V4cGxpY2l0
TmFtZWRMaW5lcygpIGNvbnN0CkBAIC0xNTIsNiArMTU4LDE4IEBAIHVuc2lnbmVkIE5hbWVkTGlu
ZUNvbGxlY3Rpb246OmZpcnN0UG9zaXRpb24oKSBjb25zdAogICAgIHJldHVybiBzdGQ6Om1pbihm
aXJzdEV4cGxpY2l0UG9zaXRpb24oKSwgbV9pbXBsaWNpdE5hbWVkTGluZXNJbmRleGVzLT5hdChm
aXJzdExpbmUpKTsKIH0KIAorLy8gaHR0cHM6Ly9kcmFmdHMuY3Nzd2cub3JnL2Nzcy1ncmlkLTIv
I2luZGVmaW5pdGUtZ3JpZC1zcGFuCitzdGF0aWMgYm9vbCBpc0luZGVmaW5pdGVTcGFuKEdyaWRQ
b3NpdGlvbiYgaW5pdGlhbFBvc2l0aW9uLCBHcmlkUG9zaXRpb24mIGZpbmFsUG9zaXRpb24pCit7
CisgICAgaWYgKCFpbml0aWFsUG9zaXRpb24uaXNBdXRvKCkgJiYgIWZpbmFsUG9zaXRpb24uaXNB
dXRvKCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIGlmIChpbml0aWFsUG9zaXRpb24u
aXNTcGFuKCkgfHwgZmluYWxQb3NpdGlvbi5pc1NwYW4oKSkKKyAgICAgICAgcmV0dXJuIGZhbHNl
OworCisgICAgcmV0dXJuIHRydWU7Cit9CisKIHN0YXRpYyB2b2lkIGFkanVzdEdyaWRQb3NpdGlv
bnNGcm9tU3R5bGUoY29uc3QgUmVuZGVyQm94JiBncmlkSXRlbSwgR3JpZFRyYWNrU2l6aW5nRGly
ZWN0aW9uIGRpcmVjdGlvbiwgR3JpZFBvc2l0aW9uJiBpbml0aWFsUG9zaXRpb24sIEdyaWRQb3Np
dGlvbiYgZmluYWxQb3NpdGlvbikKIHsKICAgICBib29sIGlzRm9yQ29sdW1ucyA9IGRpcmVjdGlv
biA9PSBGb3JDb2x1bW5zOwpAQCAtMTY4LDIxICsxODYsNTIgQEAgc3RhdGljIHZvaWQgYWRqdXN0
R3JpZFBvc2l0aW9uc0Zyb21TdHlsZShjb25zdCBSZW5kZXJCb3gmIGdyaWRJdGVtLCBHcmlkVHJh
Y2tTaXoKICAgICAgICAgZmluYWxQb3NpdGlvbi5zZXRTcGFuUG9zaXRpb24oMSwgU3RyaW5nKCkp
OwogICAgIGlmIChmaW5hbFBvc2l0aW9uLmlzQXV0bygpICYmIGluaXRpYWxQb3NpdGlvbi5pc1Nw
YW4oKSAmJiAhaW5pdGlhbFBvc2l0aW9uLm5hbWVkR3JpZExpbmUoKS5pc051bGwoKSkKICAgICAg
ICAgaW5pdGlhbFBvc2l0aW9uLnNldFNwYW5Qb3NpdGlvbigxLCBTdHJpbmcoKSk7CisKKyAgICBp
ZiAoaXNJbmRlZmluaXRlU3Bhbihpbml0aWFsUG9zaXRpb24sIGZpbmFsUG9zaXRpb24pICYmIGlz
PFJlbmRlckdyaWQ+KGdyaWRJdGVtKSAmJiBkb3duY2FzdDxSZW5kZXJHcmlkPihncmlkSXRlbSku
aXNTdWJncmlkKGRpcmVjdGlvbikpIHsKKyAgICAgICAgLy8gSW5kZWZpbml0ZSBzcGFuIGZvciBh
biBpdGVtIHRoYXQgaXMgc3ViZ3JpZGRlZCBpbiB0aGlzIGF4aXMuCisgICAgICAgIGludCBsaW5l
Q291bnQgPSBkaXJlY3Rpb24gPT0gRm9yQ29sdW1ucyA/IGdyaWRJdGVtLnN0eWxlKCkuZ3JpZENv
bHVtbnMoKS5zaXplKCkgOiBncmlkSXRlbS5zdHlsZSgpLmdyaWRSb3dzKCkuc2l6ZSgpOworCisg
ICAgICAgIGlmIChpbml0aWFsUG9zaXRpb24uaXNBdXRvKCkpIHsKKyAgICAgICAgICAgIC8vIFNl
dCBpbml0aWFsIHBvc2l0aW9uIHRvIHNwYW4gPGxpbmUgbmFtZXMgLSAxPgorICAgICAgICAgICAg
aW5pdGlhbFBvc2l0aW9uLnNldFNwYW5Qb3NpdGlvbihzdGQ6Om1heCgxLCBsaW5lQ291bnQgLSAx
KSwgIiIpOworICAgICAgICAgICAgaWYgKGZpbmFsUG9zaXRpb24uaXNTcGFuKCkpCisgICAgICAg
ICAgICAgICAgZmluYWxQb3NpdGlvbi5zZXRBdXRvUG9zaXRpb24oKTsKKyAgICAgICAgfSBlbHNl
IHsKKyAgICAgICAgICAgIC8vIFNldCBmaW5hbCBwb3NpdGlvbiB0byBzcGFuIDxsaW5lIG5hbWVz
IC0gMT4KKyAgICAgICAgICAgIGZpbmFsUG9zaXRpb24uc2V0U3BhblBvc2l0aW9uKHN0ZDo6bWF4
KDEsIGxpbmVDb3VudCAtIDEpLCAiIik7CisgICAgICAgICAgICBpZiAoaW5pdGlhbFBvc2l0aW9u
LmlzU3BhbigpKQorICAgICAgICAgICAgICAgIGluaXRpYWxQb3NpdGlvbi5zZXRBdXRvUG9zaXRp
b24oKTsKKyAgICAgICAgfQorICAgIH0KIH0KIAotdW5zaWduZWQgR3JpZFBvc2l0aW9uc1Jlc29s
dmVyOjpleHBsaWNpdEdyaWRDb2x1bW5Db3VudChjb25zdCBSZW5kZXJTdHlsZSYgZ3JpZENvbnRh
aW5lclN0eWxlLCB1bnNpZ25lZCBhdXRvUmVwZWF0VHJhY2tzQ291bnQpCit1bnNpZ25lZCBHcmlk
UG9zaXRpb25zUmVzb2x2ZXI6OmV4cGxpY2l0R3JpZENvbHVtbkNvdW50KGNvbnN0IFJlbmRlckdy
aWQmIGdyaWRDb250YWluZXIpCiB7Ci0gICAgcmV0dXJuIHN0ZDo6bWluPHVuc2lnbmVkPihzdGQ6
Om1heChncmlkQ29udGFpbmVyU3R5bGUuZ3JpZENvbHVtbnMoKS5zaXplKCkgKyBhdXRvUmVwZWF0
VHJhY2tzQ291bnQsIGdyaWRDb250YWluZXJTdHlsZS5uYW1lZEdyaWRBcmVhQ29sdW1uQ291bnQo
KSksIEdyaWRQb3NpdGlvbjo6bWF4KCkpOworICAgIGJvb2wgc3BlY2lmaWVkU3ViZ3JpZCA9IGdy
aWRDb250YWluZXIuc3R5bGUoKS5ncmlkU3ViZ3JpZENvbHVtbnMoKTsKKyAgICBpZiAoc3BlY2lm
aWVkU3ViZ3JpZCAmJiBncmlkQ29udGFpbmVyLmlzU3ViZ3JpZENvbHVtbnMoKSkgeworICAgICAg
ICBjb25zdCBSZW5kZXJHcmlkJiBwYXJlbnQgPSAqZG93bmNhc3Q8UmVuZGVyR3JpZD4oZ3JpZENv
bnRhaW5lci5wYXJlbnQoKSk7CisgICAgICAgIEdyaWRUcmFja1NpemluZ0RpcmVjdGlvbiBkaXJl
Y3Rpb24gPSBHcmlkTGF5b3V0RnVuY3Rpb25zOjpmbG93QXdhcmVEaXJlY3Rpb25Gb3JDaGlsZChw
YXJlbnQsIGdyaWRDb250YWluZXIsIEZvckNvbHVtbnMpOworICAgICAgICByZXR1cm4gcGFyZW50
LmdyaWRTcGFuRm9yQ2hpbGQoZ3JpZENvbnRhaW5lciwgZGlyZWN0aW9uKS5pbnRlZ2VyU3Bhbigp
OworICAgIH0KKyAgICBhdXRvIHNwZWNpZmllZENvbHVtbnMgPSBzcGVjaWZpZWRTdWJncmlkID8g
MCA6IGdyaWRDb250YWluZXIuc3R5bGUoKS5ncmlkQ29sdW1ucygpLnNpemUoKTsKKyAgICByZXR1
cm4gc3RkOjptaW48dW5zaWduZWQ+KHN0ZDo6bWF4KHNwZWNpZmllZENvbHVtbnMgKyBncmlkQ29u
dGFpbmVyLmF1dG9SZXBlYXRDb3VudEZvckRpcmVjdGlvbihGb3JDb2x1bW5zKSwgZ3JpZENvbnRh
aW5lci5zdHlsZSgpLm5hbWVkR3JpZEFyZWFDb2x1bW5Db3VudCgpKSwgR3JpZFBvc2l0aW9uOjpt
YXgoKSk7CiB9CiAKLXVuc2lnbmVkIEdyaWRQb3NpdGlvbnNSZXNvbHZlcjo6ZXhwbGljaXRHcmlk
Um93Q291bnQoY29uc3QgUmVuZGVyU3R5bGUmIGdyaWRDb250YWluZXJTdHlsZSwgdW5zaWduZWQg
YXV0b1JlcGVhdFRyYWNrc0NvdW50KQordW5zaWduZWQgR3JpZFBvc2l0aW9uc1Jlc29sdmVyOjpl
eHBsaWNpdEdyaWRSb3dDb3VudChjb25zdCBSZW5kZXJHcmlkJiBncmlkQ29udGFpbmVyKQogewot
ICAgIHJldHVybiBzdGQ6Om1pbjx1bnNpZ25lZD4oc3RkOjptYXgoZ3JpZENvbnRhaW5lclN0eWxl
LmdyaWRSb3dzKCkuc2l6ZSgpICsgYXV0b1JlcGVhdFRyYWNrc0NvdW50LCBncmlkQ29udGFpbmVy
U3R5bGUubmFtZWRHcmlkQXJlYVJvd0NvdW50KCkpLCBHcmlkUG9zaXRpb246Om1heCgpKTsKKyAg
ICBib29sIHNwZWNpZmllZFN1YmdyaWQgPSBncmlkQ29udGFpbmVyLnN0eWxlKCkuZ3JpZFN1Ymdy
aWRSb3dzKCk7CisgICAgaWYgKHNwZWNpZmllZFN1YmdyaWQgJiYgZ3JpZENvbnRhaW5lci5pc1N1
YmdyaWRSb3dzKCkpIHsKKyAgICAgICAgY29uc3QgUmVuZGVyR3JpZCYgcGFyZW50ID0gKmRvd25j
YXN0PFJlbmRlckdyaWQ+KGdyaWRDb250YWluZXIucGFyZW50KCkpOworICAgICAgICBHcmlkVHJh
Y2tTaXppbmdEaXJlY3Rpb24gZGlyZWN0aW9uID0gR3JpZExheW91dEZ1bmN0aW9uczo6Zmxvd0F3
YXJlRGlyZWN0aW9uRm9yQ2hpbGQocGFyZW50LCBncmlkQ29udGFpbmVyLCBGb3JSb3dzKTsKKyAg
ICAgICAgcmV0dXJuIHBhcmVudC5ncmlkU3BhbkZvckNoaWxkKGdyaWRDb250YWluZXIsIGRpcmVj
dGlvbikuaW50ZWdlclNwYW4oKTsKKyAgICB9CisgICAgYXV0byBzcGVjaWZpZWRSb3dzID0gc3Bl
Y2lmaWVkU3ViZ3JpZCA/IDAgOiBncmlkQ29udGFpbmVyLnN0eWxlKCkuZ3JpZFJvd3MoKS5zaXpl
KCk7CisgICAgcmV0dXJuIHN0ZDo6bWluPHVuc2lnbmVkPihzdGQ6Om1heChzcGVjaWZpZWRSb3dz
ICsgZ3JpZENvbnRhaW5lci5hdXRvUmVwZWF0Q291bnRGb3JEaXJlY3Rpb24oRm9yUm93cyksIGdy
aWRDb250YWluZXIuc3R5bGUoKS5uYW1lZEdyaWRBcmVhUm93Q291bnQoKSksIEdyaWRQb3NpdGlv
bjo6bWF4KCkpOwogfQogCi1zdGF0aWMgdW5zaWduZWQgZXhwbGljaXRHcmlkU2l6ZUZvclNpZGUo
Y29uc3QgUmVuZGVyU3R5bGUmIGdyaWRDb250YWluZXJTdHlsZSwgR3JpZFBvc2l0aW9uU2lkZSBz
aWRlLCB1bnNpZ25lZCBhdXRvUmVwZWF0VHJhY2tzQ291bnQpCitzdGF0aWMgdW5zaWduZWQgZXhw
bGljaXRHcmlkU2l6ZUZvclNpZGUoY29uc3QgUmVuZGVyR3JpZCYgZ3JpZENvbnRhaW5lciwgR3Jp
ZFBvc2l0aW9uU2lkZSBzaWRlKQogewotICAgIHJldHVybiBpc0NvbHVtblNpZGUoc2lkZSkgPyBH
cmlkUG9zaXRpb25zUmVzb2x2ZXI6OmV4cGxpY2l0R3JpZENvbHVtbkNvdW50KGdyaWRDb250YWlu
ZXJTdHlsZSwgYXV0b1JlcGVhdFRyYWNrc0NvdW50KSA6IEdyaWRQb3NpdGlvbnNSZXNvbHZlcjo6
ZXhwbGljaXRHcmlkUm93Q291bnQoZ3JpZENvbnRhaW5lclN0eWxlLCBhdXRvUmVwZWF0VHJhY2tz
Q291bnQpOworICAgIHJldHVybiBpc0NvbHVtblNpZGUoc2lkZSkgPyBHcmlkUG9zaXRpb25zUmVz
b2x2ZXI6OmV4cGxpY2l0R3JpZENvbHVtbkNvdW50KGdyaWRDb250YWluZXIpIDogR3JpZFBvc2l0
aW9uc1Jlc29sdmVyOjpleHBsaWNpdEdyaWRSb3dDb3VudChncmlkQ29udGFpbmVyKTsKIH0KIAog
c3RhdGljIHVuc2lnbmVkIGxvb2tBaGVhZEZvck5hbWVkR3JpZExpbmUoaW50IHN0YXJ0LCB1bnNp
Z25lZCBudW1iZXJPZkxpbmVzLCB1bnNpZ25lZCBncmlkTGFzdExpbmUsIE5hbWVkTGluZUNvbGxl
Y3Rpb24mIGxpbmVzQ29sbGVjdGlvbikKQEAgLTIyNCwxMiArMjczLDEyIEBAIHN0YXRpYyBpbnQg
bG9va0JhY2tGb3JOYW1lZEdyaWRMaW5lKGludCBlbmQsIHVuc2lnbmVkIG51bWJlck9mTGluZXMs
IGludCBncmlkTGFzCiAgICAgcmV0dXJuIHN0YXJ0ICsgMTsKIH0KIAotc3RhdGljIGludCByZXNv
bHZlTmFtZWRHcmlkTGluZVBvc2l0aW9uRnJvbVN0eWxlKGNvbnN0IFJlbmRlclN0eWxlJiBncmlk
Q29udGFpbmVyU3R5bGUsIGNvbnN0IEdyaWRQb3NpdGlvbiYgcG9zaXRpb24sIEdyaWRQb3NpdGlv
blNpZGUgc2lkZSwgdW5zaWduZWQgYXV0b1JlcGVhdFRyYWNrc0NvdW50KQorc3RhdGljIGludCBy
ZXNvbHZlTmFtZWRHcmlkTGluZVBvc2l0aW9uRnJvbVN0eWxlKGNvbnN0IFJlbmRlckdyaWQmIGdy
aWRDb250YWluZXIsIGNvbnN0IEdyaWRQb3NpdGlvbiYgcG9zaXRpb24sIEdyaWRQb3NpdGlvblNp
ZGUgc2lkZSkKIHsKICAgICBBU1NFUlQoIXBvc2l0aW9uLm5hbWVkR3JpZExpbmUoKS5pc051bGwo
KSk7CiAKLSAgICB1bnNpZ25lZCBsYXN0TGluZSA9IGV4cGxpY2l0R3JpZFNpemVGb3JTaWRlKGdy
aWRDb250YWluZXJTdHlsZSwgc2lkZSwgYXV0b1JlcGVhdFRyYWNrc0NvdW50KTsKLSAgICBOYW1l
ZExpbmVDb2xsZWN0aW9uIGxpbmVzQ29sbGVjdGlvbihncmlkQ29udGFpbmVyU3R5bGUsIHBvc2l0
aW9uLm5hbWVkR3JpZExpbmUoKSwgZGlyZWN0aW9uRnJvbVNpZGUoc2lkZSksIGxhc3RMaW5lLCBh
dXRvUmVwZWF0VHJhY2tzQ291bnQpOworICAgIHVuc2lnbmVkIGxhc3RMaW5lID0gZXhwbGljaXRH
cmlkU2l6ZUZvclNpZGUoZ3JpZENvbnRhaW5lciwgc2lkZSk7CisgICAgTmFtZWRMaW5lQ29sbGVj
dGlvbiBsaW5lc0NvbGxlY3Rpb24oZ3JpZENvbnRhaW5lci5zdHlsZSgpLCBwb3NpdGlvbi5uYW1l
ZEdyaWRMaW5lKCksIGRpcmVjdGlvbkZyb21TaWRlKHNpZGUpLCBsYXN0TGluZSwgZ3JpZENvbnRh
aW5lci5hdXRvUmVwZWF0Q291bnRGb3JEaXJlY3Rpb24oZGlyZWN0aW9uRnJvbVNpZGUoc2lkZSkp
KTsKIAogICAgIGlmIChwb3NpdGlvbi5pc1Bvc2l0aXZlKCkpCiAgICAgICAgIHJldHVybiBsb29r
QWhlYWRGb3JOYW1lZEdyaWRMaW5lKDAsIHN0ZDo6YWJzKHBvc2l0aW9uLmludGVnZXJQb3NpdGlv
bigpKSwgbGFzdExpbmUsIGxpbmVzQ29sbGVjdGlvbik7CkBAIC0yNTAsMTkgKzI5OSwxOSBAQCBz
dGF0aWMgR3JpZFNwYW4gZGVmaW5pdGVHcmlkU3BhbldpdGhOYW1lZExpbmVTcGFuQWdhaW5zdE9w
cG9zaXRlKGludCBvcHBvc2l0ZUxpbgogICAgIHJldHVybiBHcmlkU3Bhbjo6dW50cmFuc2xhdGVk
RGVmaW5pdGVHcmlkU3BhbihzdGFydCwgZW5kKTsKIH0KIAotc3RhdGljIEdyaWRTcGFuIHJlc29s
dmVOYW1lZEdyaWRMaW5lUG9zaXRpb25BZ2FpbnN0T3Bwb3NpdGVQb3NpdGlvbihjb25zdCBSZW5k
ZXJTdHlsZSYgZ3JpZENvbnRhaW5lclN0eWxlLCBpbnQgb3Bwb3NpdGVMaW5lLCBjb25zdCBHcmlk
UG9zaXRpb24mIHBvc2l0aW9uLCBHcmlkUG9zaXRpb25TaWRlIHNpZGUsIHVuc2lnbmVkIGF1dG9S
ZXBlYXRUcmFja3NDb3VudCkKK3N0YXRpYyBHcmlkU3BhbiByZXNvbHZlTmFtZWRHcmlkTGluZVBv
c2l0aW9uQWdhaW5zdE9wcG9zaXRlUG9zaXRpb24oY29uc3QgUmVuZGVyR3JpZCYgZ3JpZENvbnRh
aW5lciwgaW50IG9wcG9zaXRlTGluZSwgY29uc3QgR3JpZFBvc2l0aW9uJiBwb3NpdGlvbiwgR3Jp
ZFBvc2l0aW9uU2lkZSBzaWRlKQogewogICAgIEFTU0VSVChwb3NpdGlvbi5pc1NwYW4oKSk7CiAg
ICAgQVNTRVJUKCFwb3NpdGlvbi5uYW1lZEdyaWRMaW5lKCkuaXNOdWxsKCkpOwogICAgIC8vIE5l
Z2F0aXZlIHBvc2l0aW9ucyBhcmUgbm90IGFsbG93ZWQgcGVyIHRoZSBzcGVjaWZpY2F0aW9uIGFu
ZCBzaG91bGQgaGF2ZSBiZWVuIGhhbmRsZWQgZHVyaW5nIHBhcnNpbmcuCiAgICAgQVNTRVJUKHBv
c2l0aW9uLnNwYW5Qb3NpdGlvbigpID4gMCk7CiAKLSAgICB1bnNpZ25lZCBsYXN0TGluZSA9IGV4
cGxpY2l0R3JpZFNpemVGb3JTaWRlKGdyaWRDb250YWluZXJTdHlsZSwgc2lkZSwgYXV0b1JlcGVh
dFRyYWNrc0NvdW50KTsKLSAgICBOYW1lZExpbmVDb2xsZWN0aW9uIGxpbmVzQ29sbGVjdGlvbihn
cmlkQ29udGFpbmVyU3R5bGUsIHBvc2l0aW9uLm5hbWVkR3JpZExpbmUoKSwgZGlyZWN0aW9uRnJv
bVNpZGUoc2lkZSksIGxhc3RMaW5lLCBhdXRvUmVwZWF0VHJhY2tzQ291bnQpOworICAgIHVuc2ln
bmVkIGxhc3RMaW5lID0gZXhwbGljaXRHcmlkU2l6ZUZvclNpZGUoZ3JpZENvbnRhaW5lciwgc2lk
ZSk7CisgICAgTmFtZWRMaW5lQ29sbGVjdGlvbiBsaW5lc0NvbGxlY3Rpb24oZ3JpZENvbnRhaW5l
ci5zdHlsZSgpLCBwb3NpdGlvbi5uYW1lZEdyaWRMaW5lKCksIGRpcmVjdGlvbkZyb21TaWRlKHNp
ZGUpLCBsYXN0TGluZSwgZ3JpZENvbnRhaW5lci5hdXRvUmVwZWF0Q291bnRGb3JEaXJlY3Rpb24o
ZGlyZWN0aW9uRnJvbVNpZGUoc2lkZSkpKTsKICAgICByZXR1cm4gZGVmaW5pdGVHcmlkU3Bhbldp
dGhOYW1lZExpbmVTcGFuQWdhaW5zdE9wcG9zaXRlKG9wcG9zaXRlTGluZSwgcG9zaXRpb24sIHNp
ZGUsIGxhc3RMaW5lLCBsaW5lc0NvbGxlY3Rpb24pOwogfQogCi1zdGF0aWMgR3JpZFNwYW4gcmVz
b2x2ZUdyaWRQb3NpdGlvbkFnYWluc3RPcHBvc2l0ZVBvc2l0aW9uKGNvbnN0IFJlbmRlclN0eWxl
JiBncmlkQ29udGFpbmVyU3R5bGUsIGludCBvcHBvc2l0ZUxpbmUsIGNvbnN0IEdyaWRQb3NpdGlv
biYgcG9zaXRpb24sIEdyaWRQb3NpdGlvblNpZGUgc2lkZSwgdW5zaWduZWQgYXV0b1JlcGVhdFRy
YWNrc0NvdW50KQorc3RhdGljIEdyaWRTcGFuIHJlc29sdmVHcmlkUG9zaXRpb25BZ2FpbnN0T3Bw
b3NpdGVQb3NpdGlvbihjb25zdCBSZW5kZXJHcmlkJiBncmlkQ29udGFpbmVyLCBpbnQgb3Bwb3Np
dGVMaW5lLCBjb25zdCBHcmlkUG9zaXRpb24mIHBvc2l0aW9uLCBHcmlkUG9zaXRpb25TaWRlIHNp
ZGUpCiB7CiAgICAgaWYgKHBvc2l0aW9uLmlzQXV0bygpKSB7CiAgICAgICAgIGlmIChpc1N0YXJ0
U2lkZShzaWRlKSkKQEAgLTI3NSw3ICszMjQsNyBAQCBzdGF0aWMgR3JpZFNwYW4gcmVzb2x2ZUdy
aWRQb3NpdGlvbkFnYWluc3RPcHBvc2l0ZVBvc2l0aW9uKGNvbnN0IFJlbmRlclN0eWxlJiBncgog
CiAgICAgaWYgKCFwb3NpdGlvbi5uYW1lZEdyaWRMaW5lKCkuaXNOdWxsKCkpIHsKICAgICAgICAg
Ly8gc3BhbiAyICdjJyAtPiB3ZSBuZWVkIHRvIGZpbmQgdGhlIGFwcHJvcHJpYXRlIGdyaWQgbGlu
ZSBiZWZvcmUgLyBhZnRlciBvdXIgb3Bwb3NpdGUgcG9zaXRpb24uCi0gICAgICAgIHJldHVybiBy
ZXNvbHZlTmFtZWRHcmlkTGluZVBvc2l0aW9uQWdhaW5zdE9wcG9zaXRlUG9zaXRpb24oZ3JpZENv
bnRhaW5lclN0eWxlLCBvcHBvc2l0ZUxpbmUsIHBvc2l0aW9uLCBzaWRlLCBhdXRvUmVwZWF0VHJh
Y2tzQ291bnQpOworICAgICAgICByZXR1cm4gcmVzb2x2ZU5hbWVkR3JpZExpbmVQb3NpdGlvbkFn
YWluc3RPcHBvc2l0ZVBvc2l0aW9uKGdyaWRDb250YWluZXIsIG9wcG9zaXRlTGluZSwgcG9zaXRp
b24sIHNpZGUpOwogICAgIH0KIAogICAgIC8vICdzcGFuIDEnIGlzIGNvbnRhaW5lZCBpbnNpZGUg
YSBzaW5nbGUgZ3JpZCB0cmFjayByZWdhcmRsZXNzIG9mIHRoZSBkaXJlY3Rpb24uCkBAIC0zMTUs
MjEgKzM2NCwyMSBAQCB1bnNpZ25lZCBHcmlkUG9zaXRpb25zUmVzb2x2ZXI6OnNwYW5TaXplRm9y
QXV0b1BsYWNlZEl0ZW0oY29uc3QgUmVuZGVyQm94JiBncmlkSQogICAgIHJldHVybiBwb3NpdGlv
bi5zcGFuUG9zaXRpb24oKTsKIH0KIAotc3RhdGljIGludCByZXNvbHZlR3JpZFBvc2l0aW9uRnJv
bVN0eWxlKGNvbnN0IFJlbmRlclN0eWxlJiBncmlkQ29udGFpbmVyU3R5bGUsIGNvbnN0IEdyaWRQ
b3NpdGlvbiYgcG9zaXRpb24sIEdyaWRQb3NpdGlvblNpZGUgc2lkZSwgdW5zaWduZWQgYXV0b1Jl
cGVhdFRyYWNrc0NvdW50KQorc3RhdGljIGludCByZXNvbHZlR3JpZFBvc2l0aW9uRnJvbVN0eWxl
KGNvbnN0IFJlbmRlckdyaWQmIGdyaWRDb250YWluZXIsIGNvbnN0IEdyaWRQb3NpdGlvbiYgcG9z
aXRpb24sIEdyaWRQb3NpdGlvblNpZGUgc2lkZSkKIHsKICAgICBzd2l0Y2ggKHBvc2l0aW9uLnR5
cGUoKSkgewogICAgIGNhc2UgRXhwbGljaXRQb3NpdGlvbjogewogICAgICAgICBBU1NFUlQocG9z
aXRpb24uaW50ZWdlclBvc2l0aW9uKCkpOwogCiAgICAgICAgIGlmICghcG9zaXRpb24ubmFtZWRH
cmlkTGluZSgpLmlzTnVsbCgpKQotICAgICAgICAgICAgcmV0dXJuIHJlc29sdmVOYW1lZEdyaWRM
aW5lUG9zaXRpb25Gcm9tU3R5bGUoZ3JpZENvbnRhaW5lclN0eWxlLCBwb3NpdGlvbiwgc2lkZSwg
YXV0b1JlcGVhdFRyYWNrc0NvdW50KTsKKyAgICAgICAgICAgIHJldHVybiByZXNvbHZlTmFtZWRH
cmlkTGluZVBvc2l0aW9uRnJvbVN0eWxlKGdyaWRDb250YWluZXIsIHBvc2l0aW9uLCBzaWRlKTsK
IAogICAgICAgICAvLyBIYW5kbGUgPGludGVnZXI+IGV4cGxpY2l0IHBvc2l0aW9uLgogICAgICAg
ICBpZiAocG9zaXRpb24uaXNQb3NpdGl2ZSgpKQogICAgICAgICAgICAgcmV0dXJuIHBvc2l0aW9u
LmludGVnZXJQb3NpdGlvbigpIC0gMTsKIAogICAgICAgICB1bnNpZ25lZCByZXNvbHZlZFBvc2l0
aW9uID0gc3RkOjphYnMocG9zaXRpb24uaW50ZWdlclBvc2l0aW9uKCkpIC0gMTsKLSAgICAgICAg
Y29uc3QgdW5zaWduZWQgZW5kT2ZUcmFjayA9IGV4cGxpY2l0R3JpZFNpemVGb3JTaWRlKGdyaWRD
b250YWluZXJTdHlsZSwgc2lkZSwgYXV0b1JlcGVhdFRyYWNrc0NvdW50KTsKKyAgICAgICAgY29u
c3QgdW5zaWduZWQgZW5kT2ZUcmFjayA9IGV4cGxpY2l0R3JpZFNpemVGb3JTaWRlKGdyaWRDb250
YWluZXIsIHNpZGUpOwogCiAgICAgICAgIHJldHVybiBlbmRPZlRyYWNrIC0gcmVzb2x2ZWRQb3Np
dGlvbjsKICAgICB9CkBAIC0zNDEsMTQgKzM5MCwxNCBAQCBzdGF0aWMgaW50IHJlc29sdmVHcmlk
UG9zaXRpb25Gcm9tU3R5bGUoY29uc3QgUmVuZGVyU3R5bGUmIGdyaWRDb250YWluZXJTdHlsZSwg
YwogICAgICAgICBTdHJpbmcgbmFtZWRHcmlkTGluZSA9IHBvc2l0aW9uLm5hbWVkR3JpZExpbmUo
KTsKICAgICAgICAgQVNTRVJUKCFwb3NpdGlvbi5uYW1lZEdyaWRMaW5lKCkuaXNOdWxsKCkpOwog
Ci0gICAgICAgIHVuc2lnbmVkIGxhc3RMaW5lID0gZXhwbGljaXRHcmlkU2l6ZUZvclNpZGUoZ3Jp
ZENvbnRhaW5lclN0eWxlLCBzaWRlLCBhdXRvUmVwZWF0VHJhY2tzQ291bnQpOwotICAgICAgICBO
YW1lZExpbmVDb2xsZWN0aW9uIGltcGxpY2l0TGluZXMoZ3JpZENvbnRhaW5lclN0eWxlLCBpbXBs
aWNpdE5hbWVkR3JpZExpbmVGb3JTaWRlKG5hbWVkR3JpZExpbmUsIHNpZGUpLCBkaXJlY3Rpb25G
cm9tU2lkZShzaWRlKSwgbGFzdExpbmUsIGF1dG9SZXBlYXRUcmFja3NDb3VudCk7CisgICAgICAg
IHVuc2lnbmVkIGxhc3RMaW5lID0gZXhwbGljaXRHcmlkU2l6ZUZvclNpZGUoZ3JpZENvbnRhaW5l
ciwgc2lkZSk7CisgICAgICAgIE5hbWVkTGluZUNvbGxlY3Rpb24gaW1wbGljaXRMaW5lcyhncmlk
Q29udGFpbmVyLnN0eWxlKCksIGltcGxpY2l0TmFtZWRHcmlkTGluZUZvclNpZGUobmFtZWRHcmlk
TGluZSwgc2lkZSksIGRpcmVjdGlvbkZyb21TaWRlKHNpZGUpLCBsYXN0TGluZSwgZ3JpZENvbnRh
aW5lci5hdXRvUmVwZWF0Q291bnRGb3JEaXJlY3Rpb24oZGlyZWN0aW9uRnJvbVNpZGUoc2lkZSkp
KTsKICAgICAgICAgaWYgKGltcGxpY2l0TGluZXMuaGFzTmFtZWRMaW5lcygpKQogICAgICAgICAg
ICAgcmV0dXJuIGltcGxpY2l0TGluZXMuZmlyc3RQb3NpdGlvbigpOwogCiAgICAgICAgIC8vIE90
aGVyd2lzZSwgaWYgdGhlcmUgaXMgYSBuYW1lZCBsaW5lIHdpdGggdGhlIHNwZWNpZmllZCBuYW1l
LCBjb250cmlidXRlcyB0aGUgZmlyc3Qgc3VjaCBsaW5lIHRvIHRoZSBncmlkCiAgICAgICAgIC8v
IGl0ZW0ncyBwbGFjZW1lbnQuCi0gICAgICAgIE5hbWVkTGluZUNvbGxlY3Rpb24gZXhwbGljaXRM
aW5lcyhncmlkQ29udGFpbmVyU3R5bGUsIG5hbWVkR3JpZExpbmUsIGRpcmVjdGlvbkZyb21TaWRl
KHNpZGUpLCBsYXN0TGluZSwgYXV0b1JlcGVhdFRyYWNrc0NvdW50KTsKKyAgICAgICAgTmFtZWRM
aW5lQ29sbGVjdGlvbiBleHBsaWNpdExpbmVzKGdyaWRDb250YWluZXIuc3R5bGUoKSwgbmFtZWRH
cmlkTGluZSwgZGlyZWN0aW9uRnJvbVNpZGUoc2lkZSksIGxhc3RMaW5lLCBncmlkQ29udGFpbmVy
LmF1dG9SZXBlYXRDb3VudEZvckRpcmVjdGlvbihkaXJlY3Rpb25Gcm9tU2lkZShzaWRlKSkpOwog
ICAgICAgICBpZiAoZXhwbGljaXRMaW5lcy5oYXNOYW1lZExpbmVzKCkpCiAgICAgICAgICAgICBy
ZXR1cm4gZXhwbGljaXRMaW5lcy5maXJzdFBvc2l0aW9uKCk7CiAKQEAgLTM2NSw4ICs0MTQsMTEg
QEAgc3RhdGljIGludCByZXNvbHZlR3JpZFBvc2l0aW9uRnJvbVN0eWxlKGNvbnN0IFJlbmRlclN0
eWxlJiBncmlkQ29udGFpbmVyU3R5bGUsIGMKICAgICByZXR1cm4gMDsKIH0KIAotR3JpZFNwYW4g
R3JpZFBvc2l0aW9uc1Jlc29sdmVyOjpyZXNvbHZlR3JpZFBvc2l0aW9uc0Zyb21TdHlsZShjb25z
dCBSZW5kZXJTdHlsZSYgZ3JpZENvbnRhaW5lclN0eWxlLCBjb25zdCBSZW5kZXJCb3gmIGdyaWRJ
dGVtLCBHcmlkVHJhY2tTaXppbmdEaXJlY3Rpb24gZGlyZWN0aW9uLCB1bnNpZ25lZCBhdXRvUmVw
ZWF0VHJhY2tzQ291bnQpCitHcmlkU3BhbiBHcmlkUG9zaXRpb25zUmVzb2x2ZXI6OnJlc29sdmVH
cmlkUG9zaXRpb25zRnJvbVN0eWxlKGNvbnN0IFJlbmRlckJveCYgZ3JpZEl0ZW0sIEdyaWRUcmFj
a1NpemluZ0RpcmVjdGlvbiBkaXJlY3Rpb24pCiB7CisgICAgYXV0byogZ3JpZENvbnRhaW5lciA9
IGRvd25jYXN0PFJlbmRlckdyaWQ+KGdyaWRJdGVtLmNvbnRhaW5pbmdCbG9jaygpKTsKKyAgICBB
U1NFUlQoZ3JpZENvbnRhaW5lcik7CisKICAgICBHcmlkUG9zaXRpb24gaW5pdGlhbFBvc2l0aW9u
LCBmaW5hbFBvc2l0aW9uOwogICAgIGFkanVzdEdyaWRQb3NpdGlvbnNGcm9tU3R5bGUoZ3JpZEl0
ZW0sIGRpcmVjdGlvbiwgaW5pdGlhbFBvc2l0aW9uLCBmaW5hbFBvc2l0aW9uKTsKIApAQCAtMzc5
LDE4ICs0MzEsMTggQEAgR3JpZFNwYW4gR3JpZFBvc2l0aW9uc1Jlc29sdmVyOjpyZXNvbHZlR3Jp
ZFBvc2l0aW9uc0Zyb21TdHlsZShjb25zdCBSZW5kZXJTdHlsZSYKIAogICAgIGlmIChpbml0aWFs
UG9zaXRpb24uc2hvdWxkQmVSZXNvbHZlZEFnYWluc3RPcHBvc2l0ZVBvc2l0aW9uKCkpIHsKICAg
ICAgICAgLy8gSW5mZXIgdGhlIHBvc2l0aW9uIGZyb20gdGhlIGZpbmFsIHBvc2l0aW9uICgnYXV0
byAvIDEnIG9yICdzcGFuIDIgLyAzJyBjYXNlKS4KLSAgICAgICAgYXV0byBlbmRMaW5lID0gcmVz
b2x2ZUdyaWRQb3NpdGlvbkZyb21TdHlsZShncmlkQ29udGFpbmVyU3R5bGUsIGZpbmFsUG9zaXRp
b24sIGZpbmFsU2lkZSwgYXV0b1JlcGVhdFRyYWNrc0NvdW50KTsKLSAgICAgICAgcmV0dXJuIHJl
c29sdmVHcmlkUG9zaXRpb25BZ2FpbnN0T3Bwb3NpdGVQb3NpdGlvbihncmlkQ29udGFpbmVyU3R5
bGUsIGVuZExpbmUsIGluaXRpYWxQb3NpdGlvbiwgaW5pdGlhbFNpZGUsIGF1dG9SZXBlYXRUcmFj
a3NDb3VudCk7CisgICAgICAgIGF1dG8gZW5kTGluZSA9IHJlc29sdmVHcmlkUG9zaXRpb25Gcm9t
U3R5bGUoKmdyaWRDb250YWluZXIsIGZpbmFsUG9zaXRpb24sIGZpbmFsU2lkZSk7CisgICAgICAg
IHJldHVybiByZXNvbHZlR3JpZFBvc2l0aW9uQWdhaW5zdE9wcG9zaXRlUG9zaXRpb24oKmdyaWRD
b250YWluZXIsIGVuZExpbmUsIGluaXRpYWxQb3NpdGlvbiwgaW5pdGlhbFNpZGUpOwogICAgIH0K
IAogICAgIGlmIChmaW5hbFBvc2l0aW9uLnNob3VsZEJlUmVzb2x2ZWRBZ2FpbnN0T3Bwb3NpdGVQ
b3NpdGlvbigpKSB7CiAgICAgICAgIC8vIEluZmVyIG91ciBwb3NpdGlvbiBmcm9tIHRoZSBpbml0
aWFsIHBvc2l0aW9uICgnMSAvIGF1dG8nIG9yICczIC8gc3BhbiAyJyBjYXNlKS4KLSAgICAgICAg
YXV0byBzdGFydExpbmUgPSByZXNvbHZlR3JpZFBvc2l0aW9uRnJvbVN0eWxlKGdyaWRDb250YWlu
ZXJTdHlsZSwgaW5pdGlhbFBvc2l0aW9uLCBpbml0aWFsU2lkZSwgYXV0b1JlcGVhdFRyYWNrc0Nv
dW50KTsKLSAgICAgICAgcmV0dXJuIHJlc29sdmVHcmlkUG9zaXRpb25BZ2FpbnN0T3Bwb3NpdGVQ
b3NpdGlvbihncmlkQ29udGFpbmVyU3R5bGUsIHN0YXJ0TGluZSwgZmluYWxQb3NpdGlvbiwgZmlu
YWxTaWRlLCBhdXRvUmVwZWF0VHJhY2tzQ291bnQpOworICAgICAgICBhdXRvIHN0YXJ0TGluZSA9
IHJlc29sdmVHcmlkUG9zaXRpb25Gcm9tU3R5bGUoKmdyaWRDb250YWluZXIsIGluaXRpYWxQb3Np
dGlvbiwgaW5pdGlhbFNpZGUpOworICAgICAgICByZXR1cm4gcmVzb2x2ZUdyaWRQb3NpdGlvbkFn
YWluc3RPcHBvc2l0ZVBvc2l0aW9uKCpncmlkQ29udGFpbmVyLCBzdGFydExpbmUsIGZpbmFsUG9z
aXRpb24sIGZpbmFsU2lkZSk7CiAgICAgfQogCi0gICAgaW50IHN0YXJ0TGluZSA9IHJlc29sdmVH
cmlkUG9zaXRpb25Gcm9tU3R5bGUoZ3JpZENvbnRhaW5lclN0eWxlLCBpbml0aWFsUG9zaXRpb24s
IGluaXRpYWxTaWRlLCBhdXRvUmVwZWF0VHJhY2tzQ291bnQpOwotICAgIGludCBlbmRMaW5lID0g
cmVzb2x2ZUdyaWRQb3NpdGlvbkZyb21TdHlsZShncmlkQ29udGFpbmVyU3R5bGUsIGZpbmFsUG9z
aXRpb24sIGZpbmFsU2lkZSwgYXV0b1JlcGVhdFRyYWNrc0NvdW50KTsKKyAgICBpbnQgc3RhcnRM
aW5lID0gcmVzb2x2ZUdyaWRQb3NpdGlvbkZyb21TdHlsZSgqZ3JpZENvbnRhaW5lciwgaW5pdGlh
bFBvc2l0aW9uLCBpbml0aWFsU2lkZSk7CisgICAgaW50IGVuZExpbmUgPSByZXNvbHZlR3JpZFBv
c2l0aW9uRnJvbVN0eWxlKCpncmlkQ29udGFpbmVyLCBmaW5hbFBvc2l0aW9uLCBmaW5hbFNpZGUp
OwogCiAgICAgaWYgKHN0YXJ0TGluZSA+IGVuZExpbmUpCiAgICAgICAgIHN0ZDo6c3dhcChzdGFy
dExpbmUsIGVuZExpbmUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0
eWxlL0dyaWRQb3NpdGlvbnNSZXNvbHZlci5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0
eWxlL0dyaWRQb3NpdGlvbnNSZXNvbHZlci5oCmluZGV4IDYyM2I2MmM2YzI0MS4uNzI0MTk1Nzcz
NTQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvR3JpZFBvc2l0
aW9uc1Jlc29sdmVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL0dyaWRQ
b3NpdGlvbnNSZXNvbHZlci5oCkBAIC0zNiw2ICszNiw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IAogY2xhc3MgR3JpZFNwYW47CiBjbGFzcyBSZW5kZXJCb3g7CitjbGFzcyBSZW5kZXJHcmlkOwog
Y2xhc3MgUmVuZGVyU3R5bGU7CiAKIGVudW0gR3JpZFRyYWNrU2l6aW5nRGlyZWN0aW9uIHsKQEAg
LTczLDkgKzc0LDkgQEAgcHVibGljOgogICAgIHN0YXRpYyBHcmlkUG9zaXRpb25TaWRlIGluaXRp
YWxQb3NpdGlvblNpZGUoR3JpZFRyYWNrU2l6aW5nRGlyZWN0aW9uKTsKICAgICBzdGF0aWMgR3Jp
ZFBvc2l0aW9uU2lkZSBmaW5hbFBvc2l0aW9uU2lkZShHcmlkVHJhY2tTaXppbmdEaXJlY3Rpb24p
OwogICAgIHN0YXRpYyB1bnNpZ25lZCBzcGFuU2l6ZUZvckF1dG9QbGFjZWRJdGVtKGNvbnN0IFJl
bmRlckJveCYsIEdyaWRUcmFja1NpemluZ0RpcmVjdGlvbik7Ci0gICAgc3RhdGljIEdyaWRTcGFu
IHJlc29sdmVHcmlkUG9zaXRpb25zRnJvbVN0eWxlKGNvbnN0IFJlbmRlclN0eWxlJiwgY29uc3Qg
UmVuZGVyQm94JiwgR3JpZFRyYWNrU2l6aW5nRGlyZWN0aW9uLCB1bnNpZ25lZCBhdXRvUmVwZWF0
VHJhY2tzQ291bnQpOwotICAgIHN0YXRpYyB1bnNpZ25lZCBleHBsaWNpdEdyaWRDb2x1bW5Db3Vu
dChjb25zdCBSZW5kZXJTdHlsZSYsIHVuc2lnbmVkIGF1dG9SZXBlYXRDb2x1bW5zQ291bnQpOwot
ICAgIHN0YXRpYyB1bnNpZ25lZCBleHBsaWNpdEdyaWRSb3dDb3VudChjb25zdCBSZW5kZXJTdHls
ZSYsIHVuc2lnbmVkIGF1dG9SZXBlYXRSb3dzQ291bnQpOworICAgIHN0YXRpYyBHcmlkU3BhbiBy
ZXNvbHZlR3JpZFBvc2l0aW9uc0Zyb21TdHlsZShjb25zdCBSZW5kZXJCb3gmLCBHcmlkVHJhY2tT
aXppbmdEaXJlY3Rpb24pOworICAgIHN0YXRpYyB1bnNpZ25lZCBleHBsaWNpdEdyaWRDb2x1bW5D
b3VudChjb25zdCBSZW5kZXJHcmlkJik7CisgICAgc3RhdGljIHVuc2lnbmVkIGV4cGxpY2l0R3Jp
ZFJvd0NvdW50KGNvbnN0IFJlbmRlckdyaWQmKTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNv
cmUK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>452235</attachid>
            <date>2022-02-16 13:04:12 -0800</date>
            <delta_ts>2022-02-16 13:06:33 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-236148-20220217100411.patch</filename>
            <type>text/plain</type>
            <size>11714</size>
            <attacher name="Matt Woodrow">mattwoodrow</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg5NzcwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZWU5MWY4YjFjMGNkZThi
YjkyM2I2YTMyOGM0OTg2NTMyOWU0NWU4My4uNmZhMWM3MGVlMjNlYzIxNzEzNGI3MjU5ODdmMDIw
NTg2N2FlYmM1ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDIyLTAyLTE1ICBNYXR0
IFdvb2Ryb3cgIDxtYXR0d29vZHJvd0BhcHBsZS5jb20+CisKKyAgICAgICAgSW1wbGVtZW50IGdl
dENvbXB1dGVkU3R5bGUgZm9yIHN1YmdyaWRzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yMzYxNDgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBBZGRzIE9yZGVyZWROYW1lZExpbmVzQ29sbGVjdG9ySW5TdWJn
cmlkTGF5b3V0IHRvIGl0ZXJhdGUgdGhlIHN1YmdyaWQgbmFtZXMgbGlzdCwgc3RvcHBpbmcKKyAg
ICAgICAgYXQgdGhlIG51bWJlciBvZiBhY3R1YWwgdHJhY2tzIGluIHRoZSBncmlkLgorCisKKyAg
ICAgICAgKiBjc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6Ok9yZGVyZWROYW1lZExpbmVzQ29sbGVjdG9ySW5TdWJncmlkTGF5b3V0OjpPcmRlcmVk
TmFtZWRMaW5lc0NvbGxlY3RvckluU3ViZ3JpZExheW91dCk6CisgICAgICAgIChXZWJDb3JlOjpP
cmRlcmVkTmFtZWRMaW5lc0NvbGxlY3RvckluR3JpZExheW91dDo6Y29sbGVjdExpbmVOYW1lc0Zv
ckluZGV4IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6Ok9yZGVyZWROYW1lZExpbmVzQ29sbGVj
dG9ySW5TdWJncmlkTGF5b3V0Ojpjb2xsZWN0TGluZU5hbWVzRm9ySW5kZXggY29uc3QpOgorICAg
ICAgICAoV2ViQ29yZTo6YWRkVmFsdWVzRm9yTmFtZWRHcmlkTGluZXNBdEluZGV4KToKKyAgICAg
ICAgKFdlYkNvcmU6OnBvcHVsYXRlU3ViZ3JpZFRyYWNrTGlzdCk6CisgICAgICAgIChXZWJDb3Jl
Ojp2YWx1ZUZvckdyaWRUcmFja0xpc3QpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJHcmlk
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckdyaWQ6OmNvbXB1dGVBdXRvUmVwZWF0VHJh
Y2tzQ291bnQgY29uc3QpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJHcmlkLmg6CisgICAg
ICAgICogcmVuZGVyaW5nL3N0eWxlL0dyaWRQb3NpdGlvbnNSZXNvbHZlci5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpOYW1lZExpbmVDb2xsZWN0aW9uOjpjb250YWlucyBjb25zdCk6CisgICAgICAg
ICogc3R5bGUvU3R5bGVCdWlsZGVyQ29udmVydGVyLmg6CisgICAgICAgIChXZWJDb3JlOjpTdHls
ZTo6QnVpbGRlckNvbnZlcnRlcjo6Y3JlYXRlR3JpZFRyYWNrTGlzdCk6CisKIDIwMjItMDItMTUg
IE1hdHQgV29vZHJvdyAgPG1hdHR3b29kcm93QGFwcGxlLmNvbT4KIAogICAgICAgICBJbmhlcml0
IHRyYWNrIGNvdW50IGZyb20gcGFyZW50IGdyaWQgZm9yIHN1YmdyaWRkZWQgYXhlcyBhbmQgY2xh
bXAgaXRlbSBwbGFjZW1lbnQgdG8gdGhhdCBleHBsaWNpdCBncmlkLgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvY3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9jc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcAppbmRleCBkM2JhZDlh
ZDIzYjQ3Zjk4MzE4NzM5ZGRkNGMwOWYwM2RiYmM5NjNmLi4yZDljMDY0ZjQwNGMyNjk3MGFmMzFm
NjA4OGNjN2U5Yzc2OGRmODA0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ29t
cHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ29t
cHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcApAQCAtODk4LDYgKzg5OCwzNyBAQCBwcml2YXRlOgog
ICAgIHVuc2lnbmVkIG1fYXV0b1JlcGVhdFRyYWNrTGlzdExlbmd0aDsKIH07CiAKK2NsYXNzIE9y
ZGVyZWROYW1lZExpbmVzQ29sbGVjdG9ySW5TdWJncmlkTGF5b3V0IDogcHVibGljIE9yZGVyZWRO
YW1lZExpbmVzQ29sbGVjdG9yIHsKK3B1YmxpYzoKKyAgICBPcmRlcmVkTmFtZWRMaW5lc0NvbGxl
Y3RvckluU3ViZ3JpZExheW91dChjb25zdCBSZW5kZXJTdHlsZSYgc3R5bGUsIGJvb2wgaXNSb3dB
eGlzLCB1bnNpZ25lZCB0b3RhbFRyYWNrc0NvdW50KQorICAgICAgICA6IE9yZGVyZWROYW1lZExp
bmVzQ29sbGVjdG9yKHN0eWxlLCBpc1Jvd0F4aXMpCisgICAgICAgICwgbV9pbnNlcnRpb25Qb2lu
dChpc1Jvd0F4aXMgPyBzdHlsZS5ncmlkQXV0b1JlcGVhdENvbHVtbnNJbnNlcnRpb25Qb2ludCgp
IDogc3R5bGUuZ3JpZEF1dG9SZXBlYXRSb3dzSW5zZXJ0aW9uUG9pbnQoKSkKKyAgICAgICAgLCBt
X2F1dG9SZXBlYXRMaW5lU2V0TGlzdExlbmd0aCgoaXNSb3dBeGlzID8gc3R5bGUuYXV0b1JlcGVh
dE9yZGVyZWROYW1lZEdyaWRDb2x1bW5MaW5lcygpIDogc3R5bGUuYXV0b1JlcGVhdE9yZGVyZWRO
YW1lZEdyaWRSb3dMaW5lcygpKS5zaXplKCkpCisgICAgICAgICwgbV90b3RhbExpbmVzKHRvdGFs
VHJhY2tzQ291bnQgKyAxKQorICAgIHsKKyAgICAgICAgaWYgKCFtX2F1dG9SZXBlYXRMaW5lU2V0
TGlzdExlbmd0aCkgeworICAgICAgICAgICAgbV9hdXRvUmVwZWF0VG90YWxMaW5lU2V0cyA9IDA7
CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgdW5zaWduZWQgbmFtZWQg
PSAoaXNSb3dBeGlzID8gc3R5bGUub3JkZXJlZE5hbWVkR3JpZENvbHVtbkxpbmVzKCkgOiBzdHls
ZS5vcmRlcmVkTmFtZWRHcmlkUm93TGluZXMoKSkuc2l6ZSgpOworICAgICAgICBpZiAobmFtZWQg
Pj0gbV90b3RhbExpbmVzKSB7CisgICAgICAgICAgICBtX2F1dG9SZXBlYXRUb3RhbExpbmVTZXRz
ID0gMDsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICBtX2F1dG9SZXBl
YXRUb3RhbExpbmVTZXRzID0gKG1fdG90YWxMaW5lcyAtIG5hbWVkKSAvIG1fYXV0b1JlcGVhdExp
bmVTZXRMaXN0TGVuZ3RoOworICAgICAgICBtX2F1dG9SZXBlYXRUb3RhbExpbmVTZXRzICo9IG1f
YXV0b1JlcGVhdExpbmVTZXRMaXN0TGVuZ3RoOworICAgIH0KKworICAgIHZvaWQgY29sbGVjdExp
bmVOYW1lc0ZvckluZGV4KENTU0dyaWRMaW5lTmFtZXNWYWx1ZSYsIHVuc2lnbmVkIGluZGV4KSBj
b25zdCBvdmVycmlkZTsKKworICAgIGludCBuYW1lZEdyaWRMaW5lQ291bnQoKSBjb25zdCBvdmVy
cmlkZSB7IHJldHVybiBtX3RvdGFsTGluZXM7IH0KK3ByaXZhdGU6CisgICAgdW5zaWduZWQgbV9p
bnNlcnRpb25Qb2ludDsKKyAgICB1bnNpZ25lZCBtX2F1dG9SZXBlYXRUb3RhbExpbmVTZXRzOwor
ICAgIHVuc2lnbmVkIG1fYXV0b1JlcGVhdExpbmVTZXRMaXN0TGVuZ3RoOworICAgIHVuc2lnbmVk
IG1fdG90YWxMaW5lczsKK307CisKIHZvaWQgT3JkZXJlZE5hbWVkTGluZXNDb2xsZWN0b3I6OmFw
cGVuZExpbmVzKENTU0dyaWRMaW5lTmFtZXNWYWx1ZSYgbGluZU5hbWVzVmFsdWUsIHVuc2lnbmVk
IGluZGV4LCBOYW1lZExpbmVzVHlwZSB0eXBlKSBjb25zdAogewogICAgIGF1dG8gaXRlciA9IHR5
cGUgPT0gTmFtZWRMaW5lcyA/IG1fb3JkZXJlZE5hbWVkR3JpZExpbmVzLmZpbmQoaW5kZXgpIDog
bV9vcmRlcmVkTmFtZWRBdXRvUmVwZWF0R3JpZExpbmVzLmZpbmQoaW5kZXgpOwpAQCAtOTU1LDkg
Kzk4NiwyNSBAQCB2b2lkIE9yZGVyZWROYW1lZExpbmVzQ29sbGVjdG9ySW5HcmlkTGF5b3V0Ojpj
b2xsZWN0TGluZU5hbWVzRm9ySW5kZXgoQ1NTR3JpZExpbgogICAgIGFwcGVuZExpbmVzKGxpbmVO
YW1lc1ZhbHVlLCBhdXRvUmVwZWF0SW5kZXhJbkZpcnN0UmVwZXRpdGlvbiwgQXV0b1JlcGVhdE5h
bWVkTGluZXMpOwogfQogCit2b2lkIE9yZGVyZWROYW1lZExpbmVzQ29sbGVjdG9ySW5TdWJncmlk
TGF5b3V0Ojpjb2xsZWN0TGluZU5hbWVzRm9ySW5kZXgoQ1NTR3JpZExpbmVOYW1lc1ZhbHVlJiBs
aW5lTmFtZXNWYWx1ZSwgdW5zaWduZWQgaSkgY29uc3QKK3sKKyAgICBpZiAoIW1fYXV0b1JlcGVh
dExpbmVTZXRMaXN0TGVuZ3RoIHx8IGkgPCBtX2luc2VydGlvblBvaW50KSB7CisgICAgICAgIGFw
cGVuZExpbmVzKGxpbmVOYW1lc1ZhbHVlLCBpLCBOYW1lZExpbmVzKTsKKyAgICAgICAgcmV0dXJu
OworICAgIH0KKworICAgIGlmIChpID49IG1faW5zZXJ0aW9uUG9pbnQgKyBtX2F1dG9SZXBlYXRU
b3RhbExpbmVTZXRzKSB7CisgICAgICAgIGFwcGVuZExpbmVzKGxpbmVOYW1lc1ZhbHVlLCBpIC0g
bV9hdXRvUmVwZWF0VG90YWxMaW5lU2V0cywgTmFtZWRMaW5lcyk7CisgICAgICAgIHJldHVybjsK
KyAgICB9CisKKyAgICB1bnNpZ25lZCBhdXRvUmVwZWF0SW5kZXhJbkZpcnN0UmVwZXRpdGlvbiA9
IChpIC0gbV9pbnNlcnRpb25Qb2ludCkgJSBtX2F1dG9SZXBlYXRMaW5lU2V0TGlzdExlbmd0aDsK
KyAgICBhcHBlbmRMaW5lcyhsaW5lTmFtZXNWYWx1ZSwgYXV0b1JlcGVhdEluZGV4SW5GaXJzdFJl
cGV0aXRpb24sIEF1dG9SZXBlYXROYW1lZExpbmVzKTsKK30KKwogc3RhdGljIHZvaWQgYWRkVmFs
dWVzRm9yTmFtZWRHcmlkTGluZXNBdEluZGV4KE9yZGVyZWROYW1lZExpbmVzQ29sbGVjdG9yJiBj
b2xsZWN0b3IsIHVuc2lnbmVkIGksIENTU1ZhbHVlTGlzdCYgbGlzdCwgYm9vbCByZW5kZXJFbXB0
eSA9IGZhbHNlKQogewotICAgIGlmIChjb2xsZWN0b3IuaXNFbXB0eSgpKQorICAgIGlmIChjb2xs
ZWN0b3IuaXNFbXB0eSgpICYmICFyZW5kZXJFbXB0eSkKICAgICAgICAgcmV0dXJuOwogCiAgICAg
YXV0byBsaW5lTmFtZXMgPSBDU1NHcmlkTGluZU5hbWVzVmFsdWU6OmNyZWF0ZSgpOwpAQCAtMTAz
NSw5ICsxMDgyLDE1IEBAIHN0YXRpYyBSZWY8Q1NTVmFsdWU+IHZhbHVlRm9yR3JpZFRyYWNrTGlz
dChHcmlkVHJhY2tTaXppbmdEaXJlY3Rpb24gZGlyZWN0aW9uLCBSCiAKICAgICAvLyBJZiB0aGUg
ZWxlbWVudCBpcyBhIGdyaWQgY29udGFpbmVyLCB0aGUgcmVzb2x2ZWQgdmFsdWUgaXMgdGhlIHVz
ZWQgdmFsdWUsCiAgICAgLy8gc3BlY2lmeWluZyB0cmFjayBzaXplcyBpbiBwaXhlbHMgYW5kIGV4
cGFuZGluZyB0aGUgcmVwZWF0KCkgbm90YXRpb24uCi0gICAgaWYgKGlzUmVuZGVyR3JpZCkgewot
ICAgICAgICAvLyBGSVhNRTogV2UgbmVlZCB0byBoYW5kbGUgY29tcHV0ZWQgc3ViZ3JpZCBoZXJl
LgorICAgIC8vIElmIHN1YmdyaWQgd2FzIHNwZWNpZmllZCwgYnV0IHRoZSBlbGVtZW50IGlzbid0
IGEgc3ViZ3JpZCAoZHVlIHRvIG5vdCBoYXZpbmcKKyAgICAvLyBhbiBhcHByb3ByaWF0ZSBncmlk
IHBhcmVudCksIHRoZW4gd2UgZmFsbCBiYWNrIHRvIHVzaW5nIHRoZSBzcGVjaWZpZWQgdmFsdWUu
CisgICAgaWYgKGlzUmVuZGVyR3JpZCAmJiAoIWlzU3ViZ3JpZCB8fCBkb3duY2FzdDxSZW5kZXJH
cmlkPihyZW5kZXJlciktPmlzU3ViZ3JpZChkaXJlY3Rpb24pKSkgewogICAgICAgICBhdXRvKiBn
cmlkID0gZG93bmNhc3Q8UmVuZGVyR3JpZD4ocmVuZGVyZXIpOworICAgICAgICBpZiAoaXNTdWJn
cmlkKSB7CisgICAgICAgICAgICBPcmRlcmVkTmFtZWRMaW5lc0NvbGxlY3RvckluU3ViZ3JpZExh
eW91dCBjb2xsZWN0b3Ioc3R5bGUsIGlzUm93QXhpcywgZ3JpZC0+bnVtVHJhY2tzKGRpcmVjdGlv
bikpOworICAgICAgICAgICAgcG9wdWxhdGVTdWJncmlkTGluZU5hbWVMaXN0KGxpc3QuZ2V0KCks
IGNvbGxlY3Rvcik7CisgICAgICAgICAgICByZXR1cm4gbGlzdDsKKyAgICAgICAgfQogICAgICAg
ICBPcmRlcmVkTmFtZWRMaW5lc0NvbGxlY3RvckluR3JpZExheW91dCBjb2xsZWN0b3Ioc3R5bGUs
IGlzUm93QXhpcywgZ3JpZC0+YXV0b1JlcGVhdENvdW50Rm9yRGlyZWN0aW9uKGRpcmVjdGlvbiks
IGF1dG9SZXBlYXRUcmFja1NpemVzLnNpemUoKSk7CiAgICAgICAgIC8vIE5hbWVkIGdyaWQgbGlu
ZSBpbmRpY2VzIGFyZSByZWxhdGl2ZSB0byB0aGUgZXhwbGljaXQgZ3JpZCwgYnV0IHdlIGFyZSBp
bmNsdWRpbmcgYWxsIHRyYWNrcy4KICAgICAgICAgLy8gU28gd2UgbmVlZCB0byBzdWJ0cmFjdCB0
aGUgbnVtYmVyIG9mIGxlYWRpbmcgaW1wbGljaXQgdHJhY2tzIGluIG9yZGVyIHRvIGdldCB0aGUg
cHJvcGVyIGxpbmUgaW5kZXguCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyR3JpZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyR3JpZC5jcHAK
aW5kZXggY2ZlZDk2NzJlYjQ4ODA4MjM2NmNjOTQ0N2RiNzU2N2I2MWQ5NzczMS4uOGU2NjVkNzFi
NzFlNjYzZDE4OGExYmMyNzU5OWQ1ZjM0OTI1NmRiNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckdyaWQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJHcmlkLmNwcApAQCAtNDk1LDYgKzQ5NSw5IEBAIHVuc2lnbmVkIFJlbmRlckdyaWQ6
OmNvbXB1dGVBdXRvUmVwZWF0VHJhY2tzQ291bnQoR3JpZFRyYWNrU2l6aW5nRGlyZWN0aW9uIGRp
cmVjCiB7CiAgICAgQVNTRVJUKCFhdmFpbGFibGVTaXplIHx8IGF2YWlsYWJsZVNpemUudmFsdWUo
KSAhPSAtMSk7CiAgICAgYm9vbCBpc1Jvd0F4aXMgPSBkaXJlY3Rpb24gPT0gRm9yQ29sdW1uczsK
KyAgICBpZiAoaXNTdWJncmlkKGRpcmVjdGlvbikpCisgICAgICAgIHJldHVybiAwOworCiAgICAg
Y29uc3QgYXV0byYgYXV0b1JlcGVhdFRyYWNrcyA9IGlzUm93QXhpcyA/IHN0eWxlKCkuZ3JpZEF1
dG9SZXBlYXRDb2x1bW5zKCkgOiBzdHlsZSgpLmdyaWRBdXRvUmVwZWF0Um93cygpOwogICAgIHVu
c2lnbmVkIGF1dG9SZXBlYXRUcmFja0xpc3RMZW5ndGggPSBhdXRvUmVwZWF0VHJhY2tzLnNpemUo
KTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckdyaWQuaCBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJHcmlkLmgKaW5kZXggYzAwNmE2MDYzZGIw
OGQyNTE5NTEwNzU3ZDI3ODhlNTkzNTg1ZTRkYi4uZjJhNTQzY2UyNzg3YmUzNzJlOTBjNWY2Nzdm
ZmJjZTBmNWUxOGUzZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckdyaWQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyR3JpZC5oCkBAIC0x
MDEsNiArMTAxLDExIEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIG1fZ3JpZDsKICAgICB9CiAK
KyAgICB1bnNpZ25lZCBudW1UcmFja3MoR3JpZFRyYWNrU2l6aW5nRGlyZWN0aW9uIGRpcmVjdGlv
bikgY29uc3QKKyAgICB7CisgICAgICAgIHJldHVybiBudW1UcmFja3MoZGlyZWN0aW9uLCBtX2dy
aWQpOworICAgIH0KKwogcHJpdmF0ZToKICAgICBJdGVtUG9zaXRpb24gc2VsZkFsaWdubWVudE5v
cm1hbEJlaGF2aW9yKGNvbnN0IFJlbmRlckJveCogY2hpbGQgPSBudWxscHRyKSBjb25zdCBvdmVy
cmlkZQogICAgIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9H
cmlkUG9zaXRpb25zUmVzb2x2ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxl
L0dyaWRQb3NpdGlvbnNSZXNvbHZlci5jcHAKaW5kZXggMzE0MjEyYzQ3MDdjMjQzNTRlZDIyYzlh
OGYxNDk2NWQ0ZDYwODRjMC4uNTk2NWE3ZjUyY2JlY2I2ODI1ZmE0NWIyOGY5OWJjZWMxMzkwMWM2
OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL0dyaWRQb3NpdGlv
bnNSZXNvbHZlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL0dyaWRQ
b3NpdGlvbnNSZXNvbHZlci5jcHAKQEAgLTc5LDYgKzc5LDExIEBAIE5hbWVkTGluZUNvbGxlY3Rp
b246Ok5hbWVkTGluZUNvbGxlY3Rpb24oY29uc3QgUmVuZGVyU3R5bGUmIGdyaWRDb250YWluZXJT
dHlsZSwKICAgICBtX2luc2VydGlvblBvaW50ID0gaXNSb3dBeGlzID8gZ3JpZENvbnRhaW5lclN0
eWxlLmdyaWRBdXRvUmVwZWF0Q29sdW1uc0luc2VydGlvblBvaW50KCkgOiBncmlkQ29udGFpbmVy
U3R5bGUuZ3JpZEF1dG9SZXBlYXRSb3dzSW5zZXJ0aW9uUG9pbnQoKTsKIAogICAgIG1fYXV0b1Jl
cGVhdFRyYWNrTGlzdExlbmd0aCA9IGlzUm93QXhpcyA/IGdyaWRDb250YWluZXJTdHlsZS5ncmlk
QXV0b1JlcGVhdENvbHVtbnMoKS5zaXplKCkgOiBncmlkQ29udGFpbmVyU3R5bGUuZ3JpZEF1dG9S
ZXBlYXRSb3dzKCkuc2l6ZSgpOworICAgIC8vIEZJWE1FOiBIYW5kbGUgc3ViZ3JpZCBhdXRvIHJl
cGVhdCB0cmFja3MKKyAgICBpZiAoaXNSb3dBeGlzID8gZ3JpZENvbnRhaW5lclN0eWxlLmdyaWRT
dWJncmlkQ29sdW1ucygpIDogZ3JpZENvbnRhaW5lclN0eWxlLmdyaWRTdWJncmlkUm93cygpKSB7
CisgICAgICAgIG1fYXV0b1JlcGVhdFRyYWNrTGlzdExlbmd0aCA9IDA7CisgICAgICAgIG1fYXV0
b1JlcGVhdE5hbWVkTGluZXNJbmRleGVzID0gbnVsbHB0cjsKKyAgICB9CiB9CiAKIGJvb2wgTmFt
ZWRMaW5lQ29sbGVjdGlvbjo6aGFzRXhwbGljaXROYW1lZExpbmVzKCkgY29uc3QKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA3
OWQzM2UwZDNkOTFlN2RlMWViZDliMGViZjExN2FlZTkwOWY2MmZlLi5lYTUyMDFkOGZjNDIxOThi
ZDdlYWFiZDEzM2NkNmZhYzUxZWZjNjg5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMjItMDIt
MTUgIE1hdHQgV29vZHJvdyAgPG1hdHR3b29kcm93QGFwcGxlLmNvbT4KKworICAgICAgICBJbXBs
ZW1lbnQgZ2V0Q29tcHV0ZWRTdHlsZSBmb3Igc3ViZ3JpZHMKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzNjE0OAorICAgICAgICAKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTWFyayB0ZXN0cyBhcyBubyBsb25n
ZXIgY3Jhc2hpbmcuCisKKyAgICAgICAgKiBUZXN0RXhwZWN0YXRpb25zOgorCiAyMDIyLTAyLTA3
ICBKb24gTGVlICA8am9ubGVlQGFwcGxlLmNvbT4KIAogICAgICAgICBFbmFibGUgYWNjZWxlcmF0
ZWQgZHJhd2luZyBpbiB0aGUgaU9TIHNpbXVsYXRvcgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
VGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggOGZk
M2ViMDc3YzNmNmQ1OTdlNTFhYjEwZTliN2Q0MzBjZjVkMzFhNi4uODQ3OWMxYzUyNGUwYTZmNmY3
MzUyMjVmOTk2OWE2YTBkMmJmYzAxNyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvVGVzdEV4cGVj
dGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zCkBAIC0xNDQ2LDggKzE0
NDYsNiBAQCBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtZ3JpZC9zdWJn
cmlkL3N1YmdyaWQtbWJwLW92ZXJmbG93LTAwMS5odAogaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9jc3MvY3NzLWdyaWQvc3ViZ3JpZC9zdWJncmlkLW1icC1vdmVyZmxvdy0wMDIuaHRt
bCBbIEltYWdlT25seUZhaWx1cmUgXQogaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9j
c3MvY3NzLWdyaWQvc3ViZ3JpZC9zdWJncmlkLW1icC1vdmVyZmxvdy0wMDMuaHRtbCBbIEltYWdl
T25seUZhaWx1cmUgXQogaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWdy
aWQvc3ViZ3JpZC9zdWJncmlkLW1icC1vdmVyZmxvdy0wMDQuaHRtbCBbIEltYWdlT25seUZhaWx1
cmUgXQotaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWdyaWQvc3ViZ3Jp
ZC9ncmlkLXN1YmdyaWRkZWQtYXhpcy1hdXRvLXJlcGVhdGVyLWNyYXNoLTAwMS5odG1sIFsgQ3Jh
c2ggXQotaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWdyaWQvc3ViZ3Jp
ZC9ncmlkLXN1YmdyaWRkZWQtYXhpcy1hdXRvLXJlcGVhdGVyLWNyYXNoLTAwMi5odG1sIFsgQ3Jh
c2ggXQogCiB3ZWJraXQub3JnL2IvMTQ5ODkwIGZhc3QvY3NzLWdyaWQtbGF5b3V0L2dyaWQtc2hv
cnRoYW5kcy1zdHlsZS1mb3JtYXQuaHRtbCBbIEZhaWx1cmUgXQogd2Via2l0Lm9yZy9iLzE5MTUw
OCBmYXN0L2Nzcy1ncmlkLWxheW91dC9jcmFzaC1sYXJnZS1wb3NpdGlvbnMuaHRtbCBbIFNraXAg
XQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9jc3MvY3NzLWdyaWQvc3ViZ3JpZC9ncmlkLXN1YmdyaWRkZWQtYXhpcy1hdXRvLXJlcGVhdGVy
LWNyYXNoLTAwMS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2Nzcy9jc3MtZ3JpZC9zdWJncmlkL2dyaWQtc3ViZ3JpZGRlZC1heGlzLWF1
dG8tcmVwZWF0ZXItY3Jhc2gtMDAxLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jZTU2OWM3ZTU2
ZDlkYTdlOWQ5ZTYyOWY0MTA2NmE1MGU4NmUzOTRkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWdyaWQvc3ViZ3Jp
ZC9ncmlkLXN1YmdyaWRkZWQtYXhpcy1hdXRvLXJlcGVhdGVyLWNyYXNoLTAwMS1leHBlY3RlZC50
eHQKQEAgLTAsMCArMSw3IEBACitsYXllciBhdCAoMCwwKSBzaXplIDgwMHg2MDAKKyAgUmVuZGVy
VmlldyBhdCAoMCwwKSBzaXplIDgwMHg2MDAKK2xheWVyIGF0ICgwLDApIHNpemUgODAweDE2Cisg
IFJlbmRlckJsb2NrIHtIVE1MfSBhdCAoMCwwKSBzaXplIDgwMHgxNgorICAgIFJlbmRlckJvZHkg
e0JPRFl9IGF0ICg4LDgpIHNpemUgNzg0eDAKKyAgICAgIFJlbmRlckdyaWQge0RJVn0gYXQgKDAs
MCkgc2l6ZSA3ODR4MAorICAgICAgICBSZW5kZXJCbG9jayB7RElWfSBhdCAoMzkyLDApIHNpemUg
MzkyeDAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvY3NzL2Nzcy1ncmlkL3N1YmdyaWQvZ3JpZC1zdWJncmlkZGVkLWF4aXMtYXV0by1yZXBl
YXRlci1jcmFzaC0wMDItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWdyaWQvc3ViZ3JpZC9ncmlkLXN1YmdyaWRkZWQtYXhp
cy1hdXRvLXJlcGVhdGVyLWNyYXNoLTAwMi1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZGI2M2E1
ZjZiMzQ3MjQ2YmZhMjg2Njg0ZTdhY2M1MmM1MWExY2Q3ZQotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1ncmlkL3N1
YmdyaWQvZ3JpZC1zdWJncmlkZGVkLWF4aXMtYXV0by1yZXBlYXRlci1jcmFzaC0wMDItZXhwZWN0
ZWQudHh0CkBAIC0wLDAgKzEsNSBAQAorbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCisgIFJl
bmRlclZpZXcgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCitsYXllciBhdCAoMCwwKSBzaXplIDgwMHg4
CisgIFJlbmRlckJsb2NrIHtIVE1MfSBhdCAoMCwwKSBzaXplIDgwMHg4CisgICAgUmVuZGVyQm9k
eSB7Qk9EWX0gYXQgKDgsOCkgc2l6ZSA3ODR4MAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>452236</attachid>
            <date>2022-02-16 13:06:39 -0800</date>
            <delta_ts>2022-02-16 19:41:41 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-236148-20220217100638.patch</filename>
            <type>text/plain</type>
            <size>11722</size>
            <attacher name="Matt Woodrow">mattwoodrow</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg5NzcwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZWU5MWY4YjFjMGNkZThi
YjkyM2I2YTMyOGM0OTg2NTMyOWU0NWU4My4uODRkNjcxY2NmNmMwNjY3MDNhOWJkMTEyNDhkYjA5
ZmY1Y2ZjYWM1YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDIyLTAyLTE1ICBNYXR0
IFdvb2Ryb3cgIDxtYXR0d29vZHJvd0BhcHBsZS5jb20+CisKKyAgICAgICAgSW1wbGVtZW50IGdl
dENvbXB1dGVkU3R5bGUgZm9yIHN1YmdyaWRzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yMzYxNDgKKworICAgICAgICBSZXZpZXdlZCBieSBNYW51ZWwg
UmVnbyBDYXNhc25vdmFzLgorCisgICAgICAgIEFkZHMgT3JkZXJlZE5hbWVkTGluZXNDb2xsZWN0
b3JJblN1YmdyaWRMYXlvdXQgdG8gaXRlcmF0ZSB0aGUgc3ViZ3JpZCBuYW1lcyBsaXN0LCBzdG9w
cGluZworICAgICAgICBhdCB0aGUgbnVtYmVyIG9mIGFjdHVhbCB0cmFja3MgaW4gdGhlIGdyaWQu
CisKKworICAgICAgICAqIGNzcy9DU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24uY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6T3JkZXJlZE5hbWVkTGluZXNDb2xsZWN0b3JJblN1YmdyaWRMYXlvdXQ6
Ok9yZGVyZWROYW1lZExpbmVzQ29sbGVjdG9ySW5TdWJncmlkTGF5b3V0KToKKyAgICAgICAgKFdl
YkNvcmU6Ok9yZGVyZWROYW1lZExpbmVzQ29sbGVjdG9ySW5HcmlkTGF5b3V0Ojpjb2xsZWN0TGlu
ZU5hbWVzRm9ySW5kZXggY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6T3JkZXJlZE5hbWVkTGlu
ZXNDb2xsZWN0b3JJblN1YmdyaWRMYXlvdXQ6OmNvbGxlY3RMaW5lTmFtZXNGb3JJbmRleCBjb25z
dCk6CisgICAgICAgIChXZWJDb3JlOjphZGRWYWx1ZXNGb3JOYW1lZEdyaWRMaW5lc0F0SW5kZXgp
OgorICAgICAgICAoV2ViQ29yZTo6cG9wdWxhdGVTdWJncmlkVHJhY2tMaXN0KToKKyAgICAgICAg
KFdlYkNvcmU6OnZhbHVlRm9yR3JpZFRyYWNrTGlzdCk6CisgICAgICAgICogcmVuZGVyaW5nL1Jl
bmRlckdyaWQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyR3JpZDo6Y29tcHV0ZUF1dG9S
ZXBlYXRUcmFja3NDb3VudCBjb25zdCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckdyaWQu
aDoKKyAgICAgICAgKiByZW5kZXJpbmcvc3R5bGUvR3JpZFBvc2l0aW9uc1Jlc29sdmVyLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6Ok5hbWVkTGluZUNvbGxlY3Rpb246OmNvbnRhaW5zIGNvbnN0KToK
KyAgICAgICAgKiBzdHlsZS9TdHlsZUJ1aWxkZXJDb252ZXJ0ZXIuaDoKKyAgICAgICAgKFdlYkNv
cmU6OlN0eWxlOjpCdWlsZGVyQ29udmVydGVyOjpjcmVhdGVHcmlkVHJhY2tMaXN0KToKKwogMjAy
Mi0wMi0xNSAgTWF0dCBXb29kcm93ICA8bWF0dHdvb2Ryb3dAYXBwbGUuY29tPgogCiAgICAgICAg
IEluaGVyaXQgdHJhY2sgY291bnQgZnJvbSBwYXJlbnQgZ3JpZCBmb3Igc3ViZ3JpZGRlZCBheGVz
IGFuZCBjbGFtcCBpdGVtIHBsYWNlbWVudCB0byB0aGF0IGV4cGxpY2l0IGdyaWQuCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24uY3BwCmluZGV4
IGQzYmFkOWFkMjNiNDdmOTgzMTg3MzlkZGQ0YzA5ZjAzZGJiYzk2M2YuLjJkOWMwNjRmNDA0YzI2
OTcwYWYzMWY2MDg4Y2M3ZTljNzY4ZGY4MDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nz
cy9DU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nz
cy9DU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24uY3BwCkBAIC04OTgsNiArODk4LDM3IEBAIHBy
aXZhdGU6CiAgICAgdW5zaWduZWQgbV9hdXRvUmVwZWF0VHJhY2tMaXN0TGVuZ3RoOwogfTsKIAor
Y2xhc3MgT3JkZXJlZE5hbWVkTGluZXNDb2xsZWN0b3JJblN1YmdyaWRMYXlvdXQgOiBwdWJsaWMg
T3JkZXJlZE5hbWVkTGluZXNDb2xsZWN0b3IgeworcHVibGljOgorICAgIE9yZGVyZWROYW1lZExp
bmVzQ29sbGVjdG9ySW5TdWJncmlkTGF5b3V0KGNvbnN0IFJlbmRlclN0eWxlJiBzdHlsZSwgYm9v
bCBpc1Jvd0F4aXMsIHVuc2lnbmVkIHRvdGFsVHJhY2tzQ291bnQpCisgICAgICAgIDogT3JkZXJl
ZE5hbWVkTGluZXNDb2xsZWN0b3Ioc3R5bGUsIGlzUm93QXhpcykKKyAgICAgICAgLCBtX2luc2Vy
dGlvblBvaW50KGlzUm93QXhpcyA/IHN0eWxlLmdyaWRBdXRvUmVwZWF0Q29sdW1uc0luc2VydGlv
blBvaW50KCkgOiBzdHlsZS5ncmlkQXV0b1JlcGVhdFJvd3NJbnNlcnRpb25Qb2ludCgpKQorICAg
ICAgICAsIG1fYXV0b1JlcGVhdExpbmVTZXRMaXN0TGVuZ3RoKChpc1Jvd0F4aXMgPyBzdHlsZS5h
dXRvUmVwZWF0T3JkZXJlZE5hbWVkR3JpZENvbHVtbkxpbmVzKCkgOiBzdHlsZS5hdXRvUmVwZWF0
T3JkZXJlZE5hbWVkR3JpZFJvd0xpbmVzKCkpLnNpemUoKSkKKyAgICAgICAgLCBtX3RvdGFsTGlu
ZXModG90YWxUcmFja3NDb3VudCArIDEpCisgICAgeworICAgICAgICBpZiAoIW1fYXV0b1JlcGVh
dExpbmVTZXRMaXN0TGVuZ3RoKSB7CisgICAgICAgICAgICBtX2F1dG9SZXBlYXRUb3RhbExpbmVT
ZXRzID0gMDsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICB1bnNpZ25l
ZCBuYW1lZCA9IChpc1Jvd0F4aXMgPyBzdHlsZS5vcmRlcmVkTmFtZWRHcmlkQ29sdW1uTGluZXMo
KSA6IHN0eWxlLm9yZGVyZWROYW1lZEdyaWRSb3dMaW5lcygpKS5zaXplKCk7CisgICAgICAgIGlm
IChuYW1lZCA+PSBtX3RvdGFsTGluZXMpIHsKKyAgICAgICAgICAgIG1fYXV0b1JlcGVhdFRvdGFs
TGluZVNldHMgPSAwOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIG1f
YXV0b1JlcGVhdFRvdGFsTGluZVNldHMgPSAobV90b3RhbExpbmVzIC0gbmFtZWQpIC8gbV9hdXRv
UmVwZWF0TGluZVNldExpc3RMZW5ndGg7CisgICAgICAgIG1fYXV0b1JlcGVhdFRvdGFsTGluZVNl
dHMgKj0gbV9hdXRvUmVwZWF0TGluZVNldExpc3RMZW5ndGg7CisgICAgfQorCisgICAgdm9pZCBj
b2xsZWN0TGluZU5hbWVzRm9ySW5kZXgoQ1NTR3JpZExpbmVOYW1lc1ZhbHVlJiwgdW5zaWduZWQg
aW5kZXgpIGNvbnN0IG92ZXJyaWRlOworCisgICAgaW50IG5hbWVkR3JpZExpbmVDb3VudCgpIGNv
bnN0IG92ZXJyaWRlIHsgcmV0dXJuIG1fdG90YWxMaW5lczsgfQorcHJpdmF0ZToKKyAgICB1bnNp
Z25lZCBtX2luc2VydGlvblBvaW50OworICAgIHVuc2lnbmVkIG1fYXV0b1JlcGVhdFRvdGFsTGlu
ZVNldHM7CisgICAgdW5zaWduZWQgbV9hdXRvUmVwZWF0TGluZVNldExpc3RMZW5ndGg7CisgICAg
dW5zaWduZWQgbV90b3RhbExpbmVzOworfTsKKwogdm9pZCBPcmRlcmVkTmFtZWRMaW5lc0NvbGxl
Y3Rvcjo6YXBwZW5kTGluZXMoQ1NTR3JpZExpbmVOYW1lc1ZhbHVlJiBsaW5lTmFtZXNWYWx1ZSwg
dW5zaWduZWQgaW5kZXgsIE5hbWVkTGluZXNUeXBlIHR5cGUpIGNvbnN0CiB7CiAgICAgYXV0byBp
dGVyID0gdHlwZSA9PSBOYW1lZExpbmVzID8gbV9vcmRlcmVkTmFtZWRHcmlkTGluZXMuZmluZChp
bmRleCkgOiBtX29yZGVyZWROYW1lZEF1dG9SZXBlYXRHcmlkTGluZXMuZmluZChpbmRleCk7CkBA
IC05NTUsOSArOTg2LDI1IEBAIHZvaWQgT3JkZXJlZE5hbWVkTGluZXNDb2xsZWN0b3JJbkdyaWRM
YXlvdXQ6OmNvbGxlY3RMaW5lTmFtZXNGb3JJbmRleChDU1NHcmlkTGluCiAgICAgYXBwZW5kTGlu
ZXMobGluZU5hbWVzVmFsdWUsIGF1dG9SZXBlYXRJbmRleEluRmlyc3RSZXBldGl0aW9uLCBBdXRv
UmVwZWF0TmFtZWRMaW5lcyk7CiB9CiAKK3ZvaWQgT3JkZXJlZE5hbWVkTGluZXNDb2xsZWN0b3JJ
blN1YmdyaWRMYXlvdXQ6OmNvbGxlY3RMaW5lTmFtZXNGb3JJbmRleChDU1NHcmlkTGluZU5hbWVz
VmFsdWUmIGxpbmVOYW1lc1ZhbHVlLCB1bnNpZ25lZCBpKSBjb25zdAoreworICAgIGlmICghbV9h
dXRvUmVwZWF0TGluZVNldExpc3RMZW5ndGggfHwgaSA8IG1faW5zZXJ0aW9uUG9pbnQpIHsKKyAg
ICAgICAgYXBwZW5kTGluZXMobGluZU5hbWVzVmFsdWUsIGksIE5hbWVkTGluZXMpOworICAgICAg
ICByZXR1cm47CisgICAgfQorCisgICAgaWYgKGkgPj0gbV9pbnNlcnRpb25Qb2ludCArIG1fYXV0
b1JlcGVhdFRvdGFsTGluZVNldHMpIHsKKyAgICAgICAgYXBwZW5kTGluZXMobGluZU5hbWVzVmFs
dWUsIGkgLSBtX2F1dG9SZXBlYXRUb3RhbExpbmVTZXRzLCBOYW1lZExpbmVzKTsKKyAgICAgICAg
cmV0dXJuOworICAgIH0KKworICAgIHVuc2lnbmVkIGF1dG9SZXBlYXRJbmRleEluRmlyc3RSZXBl
dGl0aW9uID0gKGkgLSBtX2luc2VydGlvblBvaW50KSAlIG1fYXV0b1JlcGVhdExpbmVTZXRMaXN0
TGVuZ3RoOworICAgIGFwcGVuZExpbmVzKGxpbmVOYW1lc1ZhbHVlLCBhdXRvUmVwZWF0SW5kZXhJ
bkZpcnN0UmVwZXRpdGlvbiwgQXV0b1JlcGVhdE5hbWVkTGluZXMpOworfQorCiBzdGF0aWMgdm9p
ZCBhZGRWYWx1ZXNGb3JOYW1lZEdyaWRMaW5lc0F0SW5kZXgoT3JkZXJlZE5hbWVkTGluZXNDb2xs
ZWN0b3ImIGNvbGxlY3RvciwgdW5zaWduZWQgaSwgQ1NTVmFsdWVMaXN0JiBsaXN0LCBib29sIHJl
bmRlckVtcHR5ID0gZmFsc2UpCiB7Ci0gICAgaWYgKGNvbGxlY3Rvci5pc0VtcHR5KCkpCisgICAg
aWYgKGNvbGxlY3Rvci5pc0VtcHR5KCkgJiYgIXJlbmRlckVtcHR5KQogICAgICAgICByZXR1cm47
CiAKICAgICBhdXRvIGxpbmVOYW1lcyA9IENTU0dyaWRMaW5lTmFtZXNWYWx1ZTo6Y3JlYXRlKCk7
CkBAIC0xMDM1LDkgKzEwODIsMTUgQEAgc3RhdGljIFJlZjxDU1NWYWx1ZT4gdmFsdWVGb3JHcmlk
VHJhY2tMaXN0KEdyaWRUcmFja1NpemluZ0RpcmVjdGlvbiBkaXJlY3Rpb24sIFIKIAogICAgIC8v
IElmIHRoZSBlbGVtZW50IGlzIGEgZ3JpZCBjb250YWluZXIsIHRoZSByZXNvbHZlZCB2YWx1ZSBp
cyB0aGUgdXNlZCB2YWx1ZSwKICAgICAvLyBzcGVjaWZ5aW5nIHRyYWNrIHNpemVzIGluIHBpeGVs
cyBhbmQgZXhwYW5kaW5nIHRoZSByZXBlYXQoKSBub3RhdGlvbi4KLSAgICBpZiAoaXNSZW5kZXJH
cmlkKSB7Ci0gICAgICAgIC8vIEZJWE1FOiBXZSBuZWVkIHRvIGhhbmRsZSBjb21wdXRlZCBzdWJn
cmlkIGhlcmUuCisgICAgLy8gSWYgc3ViZ3JpZCB3YXMgc3BlY2lmaWVkLCBidXQgdGhlIGVsZW1l
bnQgaXNuJ3QgYSBzdWJncmlkIChkdWUgdG8gbm90IGhhdmluZworICAgIC8vIGFuIGFwcHJvcHJp
YXRlIGdyaWQgcGFyZW50KSwgdGhlbiB3ZSBmYWxsIGJhY2sgdG8gdXNpbmcgdGhlIHNwZWNpZmll
ZCB2YWx1ZS4KKyAgICBpZiAoaXNSZW5kZXJHcmlkICYmICghaXNTdWJncmlkIHx8IGRvd25jYXN0
PFJlbmRlckdyaWQ+KHJlbmRlcmVyKS0+aXNTdWJncmlkKGRpcmVjdGlvbikpKSB7CiAgICAgICAg
IGF1dG8qIGdyaWQgPSBkb3duY2FzdDxSZW5kZXJHcmlkPihyZW5kZXJlcik7CisgICAgICAgIGlm
IChpc1N1YmdyaWQpIHsKKyAgICAgICAgICAgIE9yZGVyZWROYW1lZExpbmVzQ29sbGVjdG9ySW5T
dWJncmlkTGF5b3V0IGNvbGxlY3RvcihzdHlsZSwgaXNSb3dBeGlzLCBncmlkLT5udW1UcmFja3Mo
ZGlyZWN0aW9uKSk7CisgICAgICAgICAgICBwb3B1bGF0ZVN1YmdyaWRMaW5lTmFtZUxpc3QobGlz
dC5nZXQoKSwgY29sbGVjdG9yKTsKKyAgICAgICAgICAgIHJldHVybiBsaXN0OworICAgICAgICB9
CiAgICAgICAgIE9yZGVyZWROYW1lZExpbmVzQ29sbGVjdG9ySW5HcmlkTGF5b3V0IGNvbGxlY3Rv
cihzdHlsZSwgaXNSb3dBeGlzLCBncmlkLT5hdXRvUmVwZWF0Q291bnRGb3JEaXJlY3Rpb24oZGly
ZWN0aW9uKSwgYXV0b1JlcGVhdFRyYWNrU2l6ZXMuc2l6ZSgpKTsKICAgICAgICAgLy8gTmFtZWQg
Z3JpZCBsaW5lIGluZGljZXMgYXJlIHJlbGF0aXZlIHRvIHRoZSBleHBsaWNpdCBncmlkLCBidXQg
d2UgYXJlIGluY2x1ZGluZyBhbGwgdHJhY2tzLgogICAgICAgICAvLyBTbyB3ZSBuZWVkIHRvIHN1
YnRyYWN0IHRoZSBudW1iZXIgb2YgbGVhZGluZyBpbXBsaWNpdCB0cmFja3MgaW4gb3JkZXIgdG8g
Z2V0IHRoZSBwcm9wZXIgbGluZSBpbmRleC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJHcmlkLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJH
cmlkLmNwcAppbmRleCBjZmVkOTY3MmViNDg4MDgyMzY2Y2M5NDQ3ZGI3NTY3YjYxZDk3NzMxLi44
ZTY2NWQ3MWI3MWU2NjNkMTg4YTFiYzI3NTk5ZDVmMzQ5MjU2ZGI2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyR3JpZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckdyaWQuY3BwCkBAIC00OTUsNiArNDk1LDkgQEAgdW5zaWduZWQgUmVu
ZGVyR3JpZDo6Y29tcHV0ZUF1dG9SZXBlYXRUcmFja3NDb3VudChHcmlkVHJhY2tTaXppbmdEaXJl
Y3Rpb24gZGlyZWMKIHsKICAgICBBU1NFUlQoIWF2YWlsYWJsZVNpemUgfHwgYXZhaWxhYmxlU2l6
ZS52YWx1ZSgpICE9IC0xKTsKICAgICBib29sIGlzUm93QXhpcyA9IGRpcmVjdGlvbiA9PSBGb3JD
b2x1bW5zOworICAgIGlmIChpc1N1YmdyaWQoZGlyZWN0aW9uKSkKKyAgICAgICAgcmV0dXJuIDA7
CisKICAgICBjb25zdCBhdXRvJiBhdXRvUmVwZWF0VHJhY2tzID0gaXNSb3dBeGlzID8gc3R5bGUo
KS5ncmlkQXV0b1JlcGVhdENvbHVtbnMoKSA6IHN0eWxlKCkuZ3JpZEF1dG9SZXBlYXRSb3dzKCk7
CiAgICAgdW5zaWduZWQgYXV0b1JlcGVhdFRyYWNrTGlzdExlbmd0aCA9IGF1dG9SZXBlYXRUcmFj
a3Muc2l6ZSgpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
R3JpZC5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckdyaWQuaAppbmRleCBjMDA2
YTYwNjNkYjA4ZDI1MTk1MTA3NTdkMjc4OGU1OTM1ODVlNGRiLi5mMmE1NDNjZTI3ODdiZTM3MmU5
MGM1ZjY3N2ZmYmNlMGY1ZTE4ZTNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyR3JpZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJHcmlk
LmgKQEAgLTEwMSw2ICsxMDEsMTEgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gbV9ncmlkOwog
ICAgIH0KIAorICAgIHVuc2lnbmVkIG51bVRyYWNrcyhHcmlkVHJhY2tTaXppbmdEaXJlY3Rpb24g
ZGlyZWN0aW9uKSBjb25zdAorICAgIHsKKyAgICAgICAgcmV0dXJuIG51bVRyYWNrcyhkaXJlY3Rp
b24sIG1fZ3JpZCk7CisgICAgfQorCiBwcml2YXRlOgogICAgIEl0ZW1Qb3NpdGlvbiBzZWxmQWxp
Z25tZW50Tm9ybWFsQmVoYXZpb3IoY29uc3QgUmVuZGVyQm94KiBjaGlsZCA9IG51bGxwdHIpIGNv
bnN0IG92ZXJyaWRlCiAgICAgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L3N0eWxlL0dyaWRQb3NpdGlvbnNSZXNvbHZlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvc3R5bGUvR3JpZFBvc2l0aW9uc1Jlc29sdmVyLmNwcAppbmRleCAzMTQyMTJjNDcwN2MyNDM1
NGVkMjJjOWE4ZjE0OTY1ZDRkNjA4NGMwLi41OTY1YTdmNTJjYmVjYjY4MjVmYTQ1YjI4Zjk5YmNl
YzEzOTAxYzY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvR3Jp
ZFBvc2l0aW9uc1Jlc29sdmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5
bGUvR3JpZFBvc2l0aW9uc1Jlc29sdmVyLmNwcApAQCAtNzksNiArNzksMTEgQEAgTmFtZWRMaW5l
Q29sbGVjdGlvbjo6TmFtZWRMaW5lQ29sbGVjdGlvbihjb25zdCBSZW5kZXJTdHlsZSYgZ3JpZENv
bnRhaW5lclN0eWxlLAogICAgIG1faW5zZXJ0aW9uUG9pbnQgPSBpc1Jvd0F4aXMgPyBncmlkQ29u
dGFpbmVyU3R5bGUuZ3JpZEF1dG9SZXBlYXRDb2x1bW5zSW5zZXJ0aW9uUG9pbnQoKSA6IGdyaWRD
b250YWluZXJTdHlsZS5ncmlkQXV0b1JlcGVhdFJvd3NJbnNlcnRpb25Qb2ludCgpOwogCiAgICAg
bV9hdXRvUmVwZWF0VHJhY2tMaXN0TGVuZ3RoID0gaXNSb3dBeGlzID8gZ3JpZENvbnRhaW5lclN0
eWxlLmdyaWRBdXRvUmVwZWF0Q29sdW1ucygpLnNpemUoKSA6IGdyaWRDb250YWluZXJTdHlsZS5n
cmlkQXV0b1JlcGVhdFJvd3MoKS5zaXplKCk7CisgICAgLy8gRklYTUU6IEhhbmRsZSBzdWJncmlk
IGF1dG8gcmVwZWF0IHRyYWNrcworICAgIGlmIChpc1Jvd0F4aXMgPyBncmlkQ29udGFpbmVyU3R5
bGUuZ3JpZFN1YmdyaWRDb2x1bW5zKCkgOiBncmlkQ29udGFpbmVyU3R5bGUuZ3JpZFN1YmdyaWRS
b3dzKCkpIHsKKyAgICAgICAgbV9hdXRvUmVwZWF0VHJhY2tMaXN0TGVuZ3RoID0gMDsKKyAgICAg
ICAgbV9hdXRvUmVwZWF0TmFtZWRMaW5lc0luZGV4ZXMgPSBudWxscHRyOworICAgIH0KIH0KIAog
Ym9vbCBOYW1lZExpbmVDb2xsZWN0aW9uOjpoYXNFeHBsaWNpdE5hbWVkTGluZXMoKSBjb25zdApk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
CmluZGV4IDc5ZDMzZTBkM2Q5MWU3ZGUxZWJkOWIwZWJmMTE3YWVlOTA5ZjYyZmUuLmE5YjI5NmQz
NjczMzgxY2Y2NTdkZDFlZmZjM2VkODJiMjk2NGRmZTggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAor
MjAyMi0wMi0xNSAgTWF0dCBXb29kcm93ICA8bWF0dHdvb2Ryb3dAYXBwbGUuY29tPgorCisgICAg
ICAgIEltcGxlbWVudCBnZXRDb21wdXRlZFN0eWxlIGZvciBzdWJncmlkcworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM2MTQ4CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTWFudWVsIFJlZ28gQ2FzYXNub3Zhcy4KKworICAgICAgICBNYXJrIHRlc3RzIGFz
IG5vIGxvbmdlciBjcmFzaGluZy4KKworICAgICAgICAqIFRlc3RFeHBlY3RhdGlvbnM6CisKIDIw
MjItMDItMDcgIEpvbiBMZWUgIDxqb25sZWVAYXBwbGUuY29tPgogCiAgICAgICAgIEVuYWJsZSBh
Y2NlbGVyYXRlZCBkcmF3aW5nIGluIHRoZSBpT1Mgc2ltdWxhdG9yCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucwpp
bmRleCA4ZmQzZWIwNzdjM2Y2ZDU5N2U1MWFiMTBlOWI3ZDQzMGNmNWQzMWE2Li44NDc5YzFjNTI0
ZTBhNmY2ZjczNTIyNWY5OTY5YTZhMGQyYmZjMDE3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9U
ZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTE0
NDYsOCArMTQ0Niw2IEBAIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1n
cmlkL3N1YmdyaWQvc3ViZ3JpZC1tYnAtb3ZlcmZsb3ctMDAxLmh0CiBpbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtZ3JpZC9zdWJncmlkL3N1YmdyaWQtbWJwLW92ZXJmbG93
LTAwMi5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2Nzcy9jc3MtZ3JpZC9zdWJncmlkL3N1YmdyaWQtbWJwLW92ZXJmbG93LTAwMy5odG1s
IFsgSW1hZ2VPbmx5RmFpbHVyZSBdCiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nz
cy9jc3MtZ3JpZC9zdWJncmlkL3N1YmdyaWQtbWJwLW92ZXJmbG93LTAwNC5odG1sIFsgSW1hZ2VP
bmx5RmFpbHVyZSBdCi1pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtZ3Jp
ZC9zdWJncmlkL2dyaWQtc3ViZ3JpZGRlZC1heGlzLWF1dG8tcmVwZWF0ZXItY3Jhc2gtMDAxLmh0
bWwgWyBDcmFzaCBdCi1pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtZ3Jp
ZC9zdWJncmlkL2dyaWQtc3ViZ3JpZGRlZC1heGlzLWF1dG8tcmVwZWF0ZXItY3Jhc2gtMDAyLmh0
bWwgWyBDcmFzaCBdCiAKIHdlYmtpdC5vcmcvYi8xNDk4OTAgZmFzdC9jc3MtZ3JpZC1sYXlvdXQv
Z3JpZC1zaG9ydGhhbmRzLXN0eWxlLWZvcm1hdC5odG1sIFsgRmFpbHVyZSBdCiB3ZWJraXQub3Jn
L2IvMTkxNTA4IGZhc3QvY3NzLWdyaWQtbGF5b3V0L2NyYXNoLWxhcmdlLXBvc2l0aW9ucy5odG1s
IFsgU2tpcCBdCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2Nzcy9jc3MtZ3JpZC9zdWJncmlkL2dyaWQtc3ViZ3JpZGRlZC1heGlzLWF1dG8t
cmVwZWF0ZXItY3Jhc2gtMDAxLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1ncmlkL3N1YmdyaWQvZ3JpZC1zdWJncmlkZGVk
LWF4aXMtYXV0by1yZXBlYXRlci1jcmFzaC0wMDEtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmNl
NTY5YzdlNTZkOWRhN2U5ZDllNjI5ZjQxMDY2YTUwZTg2ZTM5NGQKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtZ3Jp
ZC9zdWJncmlkL2dyaWQtc3ViZ3JpZGRlZC1heGlzLWF1dG8tcmVwZWF0ZXItY3Jhc2gtMDAxLWV4
cGVjdGVkLnR4dApAQCAtMCwwICsxLDcgQEAKK2xheWVyIGF0ICgwLDApIHNpemUgODAweDYwMAor
ICBSZW5kZXJWaWV3IGF0ICgwLDApIHNpemUgODAweDYwMAorbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4
MDB4MTYKKyAgUmVuZGVyQmxvY2sge0hUTUx9IGF0ICgwLDApIHNpemUgODAweDE2CisgICAgUmVu
ZGVyQm9keSB7Qk9EWX0gYXQgKDgsOCkgc2l6ZSA3ODR4MAorICAgICAgUmVuZGVyR3JpZCB7RElW
fSBhdCAoMCwwKSBzaXplIDc4NHgwCisgICAgICAgIFJlbmRlckJsb2NrIHtESVZ9IGF0ICgzOTIs
MCkgc2l6ZSAzOTJ4MApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWdyaWQvc3ViZ3JpZC9ncmlkLXN1YmdyaWRkZWQtYXhpcy1h
dXRvLXJlcGVhdGVyLWNyYXNoLTAwMi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtZ3JpZC9zdWJncmlkL2dyaWQtc3ViZ3Jp
ZGRlZC1heGlzLWF1dG8tcmVwZWF0ZXItY3Jhc2gtMDAyLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5kYjYzYTVmNmIzNDcyNDZiZmEyODY2ODRlN2FjYzUyYzUxYTFjZDdlCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nz
LWdyaWQvc3ViZ3JpZC9ncmlkLXN1YmdyaWRkZWQtYXhpcy1hdXRvLXJlcGVhdGVyLWNyYXNoLTAw
Mi1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw1IEBACitsYXllciBhdCAoMCwwKSBzaXplIDgwMHg2
MDAKKyAgUmVuZGVyVmlldyBhdCAoMCwwKSBzaXplIDgwMHg2MDAKK2xheWVyIGF0ICgwLDApIHNp
emUgODAweDgKKyAgUmVuZGVyQmxvY2sge0hUTUx9IGF0ICgwLDApIHNpemUgODAweDgKKyAgICBS
ZW5kZXJCb2R5IHtCT0RZfSBhdCAoOCw4KSBzaXplIDc4NHgwCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>452237</attachid>
            <date>2022-02-16 13:07:17 -0800</date>
            <delta_ts>2022-02-16 13:07:17 -0800</delta_ts>
            <desc>Patch for EWS</desc>
            <filename>ews-patch</filename>
            <type>text/plain</type>
            <size>53186</size>
            <attacher name="Matt Woodrow">mattwoodrow</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA3OWQzM2UwZDNkOTEuLmE5YjI5NmQzNjczMyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBA
CisyMDIyLTAyLTE1ICBNYXR0IFdvb2Ryb3cgIDxtYXR0d29vZHJvd0BhcHBsZS5jb20+CisKKyAg
ICAgICAgSW1wbGVtZW50IGdldENvbXB1dGVkU3R5bGUgZm9yIHN1YmdyaWRzCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzYxNDgKKworICAgICAgICBS
ZXZpZXdlZCBieSBNYW51ZWwgUmVnbyBDYXNhc25vdmFzLgorCisgICAgICAgIE1hcmsgdGVzdHMg
YXMgbm8gbG9uZ2VyIGNyYXNoaW5nLgorCisgICAgICAgICogVGVzdEV4cGVjdGF0aW9uczoKKwog
MjAyMi0wMi0wNyAgSm9uIExlZSAgPGpvbmxlZUBhcHBsZS5jb20+CiAKICAgICAgICAgRW5hYmxl
IGFjY2VsZXJhdGVkIGRyYXdpbmcgaW4gdGhlIGlPUyBzaW11bGF0b3IKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25z
CmluZGV4IDhmZDNlYjA3N2MzZi4uODQ3OWMxYzUyNGUwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMKQEAg
LTE0NDYsOCArMTQ0Niw2IEBAIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nz
cy1ncmlkL3N1YmdyaWQvc3ViZ3JpZC1tYnAtb3ZlcmZsb3ctMDAxLmh0CiBpbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtZ3JpZC9zdWJncmlkL3N1YmdyaWQtbWJwLW92ZXJm
bG93LTAwMi5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2Nzcy9jc3MtZ3JpZC9zdWJncmlkL3N1YmdyaWQtbWJwLW92ZXJmbG93LTAwMy5o
dG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2Nzcy9jc3MtZ3JpZC9zdWJncmlkL3N1YmdyaWQtbWJwLW92ZXJmbG93LTAwNC5odG1sIFsgSW1h
Z2VPbmx5RmFpbHVyZSBdCi1pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3Mt
Z3JpZC9zdWJncmlkL2dyaWQtc3ViZ3JpZGRlZC1heGlzLWF1dG8tcmVwZWF0ZXItY3Jhc2gtMDAx
Lmh0bWwgWyBDcmFzaCBdCi1pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3Mt
Z3JpZC9zdWJncmlkL2dyaWQtc3ViZ3JpZGRlZC1heGlzLWF1dG8tcmVwZWF0ZXItY3Jhc2gtMDAy
Lmh0bWwgWyBDcmFzaCBdCiAKIHdlYmtpdC5vcmcvYi8xNDk4OTAgZmFzdC9jc3MtZ3JpZC1sYXlv
dXQvZ3JpZC1zaG9ydGhhbmRzLXN0eWxlLWZvcm1hdC5odG1sIFsgRmFpbHVyZSBdCiB3ZWJraXQu
b3JnL2IvMTkxNTA4IGZhc3QvY3NzLWdyaWQtbGF5b3V0L2NyYXNoLWxhcmdlLXBvc2l0aW9ucy5o
dG1sIFsgU2tpcCBdCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdl
TG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZwppbmRleCBmMTY5MzY2MjQ1
OGEuLjdkMjhmODkxOTA0OSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0No
YW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMTUgQEAKKzIwMjItMDItMTUgIE1hdHQgV29vZHJvdyAgPG1hdHR3b29kcm93QGFwcGxlLmNv
bT4KKworICAgICAgICBJbmhlcml0IHRyYWNrIGNvdW50IGZyb20gcGFyZW50IGdyaWQgZm9yIHN1
YmdyaWRkZWQgYXhlcyBhbmQgY2xhbXAgaXRlbSBwbGFjZW1lbnQgdG8gdGhhdCBleHBsaWNpdCBn
cmlkLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM2
MTIyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGVz
dCBjaGFuZ2VzIHRvIG1hdGNoIGxhdGVzdCBzcGVjLCBzdWJtaXR0ZWQgdXBzdHJlYW0gYXMgaHR0
cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQvcHVsbC8zMjYyOQorCisgICAg
ICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtZ3JpZC9zdWJncmlkL2xpbmUtbmFtZXMt
MDAyLWV4cGVjdGVkLmh0bWw6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3Mt
Z3JpZC9zdWJncmlkL2xpbmUtbmFtZXMtMDA1LWV4cGVjdGVkLmh0bWw6CisKIDIwMjItMDItMTQg
IEFudHRpIEtvaXZpc3RvICA8YW50dGlAYXBwbGUuY29tPgogCiAgICAgICAgIFtDU1MgQ29udGFp
bmVyIFF1ZXJpZXNdIEltcGxlbWVudCBmdWxsIHF1ZXJ5IHBhcnNlciBhbmQgZXZhbHVhdG9yCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nz
cy9jc3MtZ3JpZC9zdWJncmlkL2dyaWQtc3ViZ3JpZGRlZC1heGlzLWF1dG8tcmVwZWF0ZXItY3Jh
c2gtMDAxLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvY3NzL2Nzcy1ncmlkL3N1YmdyaWQvZ3JpZC1zdWJncmlkZGVkLWF4aXMtYXV0by1y
ZXBlYXRlci1jcmFzaC0wMDEtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMC4uY2U1NjljN2U1NmQ5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWdyaWQvc3ViZ3JpZC9n
cmlkLXN1YmdyaWRkZWQtYXhpcy1hdXRvLXJlcGVhdGVyLWNyYXNoLTAwMS1leHBlY3RlZC50eHQK
QEAgLTAsMCArMSw3IEBACitsYXllciBhdCAoMCwwKSBzaXplIDgwMHg2MDAKKyAgUmVuZGVyVmll
dyBhdCAoMCwwKSBzaXplIDgwMHg2MDAKK2xheWVyIGF0ICgwLDApIHNpemUgODAweDE2CisgIFJl
bmRlckJsb2NrIHtIVE1MfSBhdCAoMCwwKSBzaXplIDgwMHgxNgorICAgIFJlbmRlckJvZHkge0JP
RFl9IGF0ICg4LDgpIHNpemUgNzg0eDAKKyAgICAgIFJlbmRlckdyaWQge0RJVn0gYXQgKDAsMCkg
c2l6ZSA3ODR4MAorICAgICAgICBSZW5kZXJCbG9jayB7RElWfSBhdCAoMzkyLDApIHNpemUgMzky
eDAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvY3NzL2Nzcy1ncmlkL3N1YmdyaWQvZ3JpZC1zdWJncmlkZGVkLWF4aXMtYXV0by1yZXBlYXRl
ci1jcmFzaC0wMDItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWdyaWQvc3ViZ3JpZC9ncmlkLXN1YmdyaWRkZWQtYXhpcy1h
dXRvLXJlcGVhdGVyLWNyYXNoLTAwMi1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwLi5kYjYzYTVmNmIzNDcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtZ3JpZC9zdWJn
cmlkL2dyaWQtc3ViZ3JpZGRlZC1heGlzLWF1dG8tcmVwZWF0ZXItY3Jhc2gtMDAyLWV4cGVjdGVk
LnR4dApAQCAtMCwwICsxLDUgQEAKK2xheWVyIGF0ICgwLDApIHNpemUgODAweDYwMAorICBSZW5k
ZXJWaWV3IGF0ICgwLDApIHNpemUgODAweDYwMAorbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4OAor
ICBSZW5kZXJCbG9jayB7SFRNTH0gYXQgKDAsMCkgc2l6ZSA4MDB4OAorICAgIFJlbmRlckJvZHkg
e0JPRFl9IGF0ICg4LDgpIHNpemUgNzg0eDAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1ncmlkL3N1YmdyaWQvbGluZS1uYW1l
cy0wMDItZXhwZWN0ZWQuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvY3NzL2Nzcy1ncmlkL3N1YmdyaWQvbGluZS1uYW1lcy0wMDItZXhwZWN0ZWQuaHRt
bAppbmRleCAwNGM1ODM5NTk2YzkuLjIzOTkzMjhiZWNjNCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWdyaWQvc3ViZ3JpZC9s
aW5lLW5hbWVzLTAwMi1leHBlY3RlZC5odG1sCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1ncmlkL3N1YmdyaWQvbGluZS1uYW1lcy0wMDIt
ZXhwZWN0ZWQuaHRtbApAQCAtMTQsNyArMTQsNyBAQCBodG1sLGJvZHkgewogCiAuZ3JpZCB7CiAg
IGRpc3BsYXk6IGdyaWQ7Ci0gIGdyaWQ6IGF1dG8gLyBbYV0gNTBweCA1MHB4IFthXSA1MHB4IDUw
cHggW2FdOworICBncmlkOiBhdXRvIC8gW2FdIDUwcHggNDBweCBbYV0gMTBweCA1MHB4IFthXTsK
ICAgcGFkZGluZzogMjBweCAxMHB4OwogfQogCkBAIC0zMiw3ICszMiw3IEBAIHggeyBiYWNrZ3Jv
dW5kOiBncmV5OyB9CiAKIDxkaXYgY2xhc3M9ImdyaWQiPgogICA8ZGl2IGNsYXNzPSJzdWJncmlk
Ij4KLSAgICA8eCBzdHlsZT0iZ3JpZC1jb2x1bW46IDEgLyAzIj48L3g+CisgICAgPHggc3R5bGU9
ImdyaWQtY29sdW1uOiAzIC8gNCI+PC94PgogICA8L2Rpdj4KIDwvZGl2PgogCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtZ3Jp
ZC9zdWJncmlkL2xpbmUtbmFtZXMtMDA1LWV4cGVjdGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtZ3JpZC9zdWJncmlkL2xpbmUtbmFt
ZXMtMDA1LWV4cGVjdGVkLmh0bWwKaW5kZXggNGM3ZjRiNTBmZDE2Li5jZmUxOGQxYjI2ZWQgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3Nz
L2Nzcy1ncmlkL3N1YmdyaWQvbGluZS1uYW1lcy0wMDUtZXhwZWN0ZWQuaHRtbAorKysgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtZ3JpZC9zdWJn
cmlkL2xpbmUtbmFtZXMtMDA1LWV4cGVjdGVkLmh0bWwKQEAgLTExNSw3ICsxMTUsNyBAQCB4IHsK
IDxkaXYgc3R5bGU9ImRpc3BsYXk6Z3JpZDsgd2lkdGg6NTAwcHg7IGdyaWQtYXV0by1jb2x1bW5z
OiA1MHB4OyI+CiA8aT48L2k+PGk+PC9pPjxpPjwvaT48aT48L2k+PGk+PC9pPjxpPjwvaT48aT48
L2k+PGk+PC9pPjxpPjwvaT48aT48L2k+CiAgIDxkaXYgY2xhc3M9InN1YmdyaWQyIj4KLSAgICA8
eCBzdHlsZT0iZ3JpZC1jb2x1bW46IHNwYW4gNCAvIDExIj54PC94PgorICAgIDx4IHN0eWxlPSJn
cmlkLWNvbHVtbjogc3BhbiAzIC8gMTEiPng8L3g+CiAgIDwvZGl2PgogPC9kaXY+CiAKQEAgLTEy
OSw3ICsxMjksNyBAQCB4IHsKIDxkaXYgc3R5bGU9ImRpc3BsYXk6Z3JpZDsgZ3JpZDogYXV0byAv
IHJlcGVhdCgxMCwgNTBweCkgcmVwZWF0KDEwLCBbYV0gNTBweCkgW2FdIj4KIDxpPjwvaT48aT48
L2k+PGk+PC9pPjxpPjwvaT48aT48L2k+PGk+PC9pPjxpPjwvaT48aT48L2k+PGk+PC9pPjxpPjwv
aT4KICAgPGRpdiBzdHlsZT0iZGlzcGxheTpncmlkOyBncmlkOmF1dG8vc3ViZ3JpZDsgZ3JpZC1j
b2x1bW46IHNwYW4gMTA7IGdyaWQtcm93OjIiPgotICAgIDx4IHN0eWxlPSJncmlkLWNvbHVtbjog
MSAvIDExIj54PC94PgorICAgIDx4IHN0eWxlPSJncmlkLWNvbHVtbjogMTAgLyAxMSI+eDwveD4K
ICAgPC9kaXY+CiA8L2Rpdj4KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9n
IGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDMwYzQ4OTdlMTFiNC4uODRkNjcxY2Nm
NmMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dl
YkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsODQgQEAKKzIwMjItMDItMTUgIE1hdHQgV29vZHJv
dyAgPG1hdHR3b29kcm93QGFwcGxlLmNvbT4KKworICAgICAgICBJbXBsZW1lbnQgZ2V0Q29tcHV0
ZWRTdHlsZSBmb3Igc3ViZ3JpZHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTIzNjE0OAorCisgICAgICAgIFJldmlld2VkIGJ5IE1hbnVlbCBSZWdvIENh
c2Fzbm92YXMuCisKKyAgICAgICAgQWRkcyBPcmRlcmVkTmFtZWRMaW5lc0NvbGxlY3RvckluU3Vi
Z3JpZExheW91dCB0byBpdGVyYXRlIHRoZSBzdWJncmlkIG5hbWVzIGxpc3QsIHN0b3BwaW5nCisg
ICAgICAgIGF0IHRoZSBudW1iZXIgb2YgYWN0dWFsIHRyYWNrcyBpbiB0aGUgZ3JpZC4KKworCisg
ICAgICAgICogY3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpPcmRlcmVkTmFtZWRMaW5lc0NvbGxlY3RvckluU3ViZ3JpZExheW91dDo6T3JkZXJl
ZE5hbWVkTGluZXNDb2xsZWN0b3JJblN1YmdyaWRMYXlvdXQpOgorICAgICAgICAoV2ViQ29yZTo6
T3JkZXJlZE5hbWVkTGluZXNDb2xsZWN0b3JJbkdyaWRMYXlvdXQ6OmNvbGxlY3RMaW5lTmFtZXNG
b3JJbmRleCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpPcmRlcmVkTmFtZWRMaW5lc0NvbGxl
Y3RvckluU3ViZ3JpZExheW91dDo6Y29sbGVjdExpbmVOYW1lc0ZvckluZGV4IGNvbnN0KToKKyAg
ICAgICAgKFdlYkNvcmU6OmFkZFZhbHVlc0Zvck5hbWVkR3JpZExpbmVzQXRJbmRleCk6CisgICAg
ICAgIChXZWJDb3JlOjpwb3B1bGF0ZVN1YmdyaWRUcmFja0xpc3QpOgorICAgICAgICAoV2ViQ29y
ZTo6dmFsdWVGb3JHcmlkVHJhY2tMaXN0KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyR3Jp
ZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJHcmlkOjpjb21wdXRlQXV0b1JlcGVhdFRy
YWNrc0NvdW50IGNvbnN0KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyR3JpZC5oOgorICAg
ICAgICAqIHJlbmRlcmluZy9zdHlsZS9HcmlkUG9zaXRpb25zUmVzb2x2ZXIuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6TmFtZWRMaW5lQ29sbGVjdGlvbjo6Y29udGFpbnMgY29uc3QpOgorICAgICAg
ICAqIHN0eWxlL1N0eWxlQnVpbGRlckNvbnZlcnRlci5oOgorICAgICAgICAoV2ViQ29yZTo6U3R5
bGU6OkJ1aWxkZXJDb252ZXJ0ZXI6OmNyZWF0ZUdyaWRUcmFja0xpc3QpOgorCisyMDIyLTAyLTE1
ICBNYXR0IFdvb2Ryb3cgIDxtYXR0d29vZHJvd0BhcHBsZS5jb20+CisKKyAgICAgICAgSW5oZXJp
dCB0cmFjayBjb3VudCBmcm9tIHBhcmVudCBncmlkIGZvciBzdWJncmlkZGVkIGF4ZXMgYW5kIGNs
YW1wIGl0ZW0gcGxhY2VtZW50IHRvIHRoYXQgZXhwbGljaXQgZ3JpZC4KKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzNjEyMgorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIENoYW5nZXMgR3JpZFBvc2l0aW9uc1Jl
c29sdmVyOjpleHBsaWNpdEdyaWQ8PkNvdW50IHRvIHJldHVybiB0aGUgbnVtYmVyIG9mIHRyYWNr
cworICAgICAgICBzcGFubmVkIGluIHRoZSBwYXJlbnQgZ3JpZCwgZm9yIGF4ZXMgdGhhdCBhcmUg
YSBzdWJncmlkLgorCisgICAgICAgIFVwZGF0ZXMgYWRqdXN0R3JpZFBvc2l0aW9uc0ZvclN0eWxl
IHRvIHVzZSB0aGUgbnVtYmVyIG9mIGxpbmVzIHNwZWNpZmllZCBpbiB0aGUKKyAgICAgICAgc3Vi
Z3JpZCBwcm9wZXJ0eSwgZm9yIGdyaWQgaXRlbXMgdGhhdCBhcmUgYWxzbyBhIHN1YmdyaWQgYW5k
IGhhdmUgYW4gb3RoZXJ3aXNlCisgICAgICAgIGluZGVmaW5pdGUgc3Bhbi4KKworICAgICAgICBB
ZGRzIGNsYW1waW5nIHN1cHBvcnQgdG8gR3JpZCBzbyB0aGF0IHdlIGNhbiBwcmV2ZW50IHN1Ymdy
aWRzIGZyb20gZXZlciBhZGRpbmcKKyAgICAgICAgbmV3IGltcGxpY2l0IHRyYWNrcy4KKworICAg
ICAgICAqIHJlbmRlcmluZy9HcmlkLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdyaWQ6Omluc2Vy
dCk6CisgICAgICAgIChXZWJDb3JlOjpHcmlkOjpzZXRDbGFtcGluZ0ZvclN1YmdyaWQpOgorICAg
ICAgICAoV2ViQ29yZTo6R3JpZDo6Y2xhbXBBbmRUcmFuc2xhdGVUb0ltcGxpY2l0R3JpZCk6Cisg
ICAgICAgIChXZWJDb3JlOjpHcmlkOjpzZXROZWVkc0l0ZW1zUGxhY2VtZW50KToKKyAgICAgICAg
KiByZW5kZXJpbmcvR3JpZC5oOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJHcmlkLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckdyaWQ6OmNvbXB1dGVJbnRyaW5zaWNMb2dpY2FsV2lk
dGhzIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckdyaWQ6OnBsYWNlSXRlbXNPbkdy
aWQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyR3JpZDo6cG9wdWxhdGVFeHBsaWNp
dEdyaWRBbmRPcmRlckl0ZXJhdG9yIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckdy
aWQ6OnBsYWNlU3BlY2lmaWVkTWFqb3JBeGlzSXRlbXNPbkdyaWQgY29uc3QpOgorICAgICAgICAo
V2ViQ29yZTo6UmVuZGVyR3JpZDo6aXNTdWJncmlkIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6
OlJlbmRlckdyaWQ6OmlzU3ViZ3JpZFJvd3MgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVu
ZGVyR3JpZDo6aXNTdWJncmlkQ29sdW1ucyBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5k
ZXJHcmlkOjpncmlkQXJlYUJyZWFkdGhGb3JPdXRPZkZsb3dDaGlsZCk6CisgICAgICAgIChXZWJD
b3JlOjpSZW5kZXJHcmlkOjpudW1UcmFja3MgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6dHJh
bnNwb3NlZERpcmVjdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJHcmlkOjpjb21wdXRl
R3JpZFNwYW5Gb3JPdXRPZkZsb3dDaGlsZCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5k
ZXJHcmlkOjpncmlkU3BhbkZvck91dE9mRmxvd0NoaWxkIGNvbnN0KToKKyAgICAgICAgKFdlYkNv
cmU6OlJlbmRlckdyaWQ6OmdyaWRTcGFuRm9yQ2hpbGQgY29uc3QpOgorICAgICAgICAqIHJlbmRl
cmluZy9SZW5kZXJHcmlkLmg6CisgICAgICAgICogcmVuZGVyaW5nL3N0eWxlL0dyaWRBcmVhLmg6
CisgICAgICAgIChXZWJDb3JlOjpHcmlkU3Bhbjo6aW50ZWdlclNwYW4gY29uc3QpOgorICAgICAg
ICAoV2ViQ29yZTo6R3JpZFNwYW46OnRyYW5zbGF0ZVRvKToKKyAgICAgICAgKFdlYkNvcmU6Okdy
aWRTcGFuOjpjbGFtcCk6CisgICAgICAgICogcmVuZGVyaW5nL3N0eWxlL0dyaWRQb3NpdGlvbnNS
ZXNvbHZlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjppc0luZGVmaW5pdGVTcGFuKToKKyAgICAg
ICAgKFdlYkNvcmU6OmFkanVzdEdyaWRQb3NpdGlvbnNGcm9tU3R5bGUpOgorICAgICAgICAoV2Vi
Q29yZTo6R3JpZFBvc2l0aW9uc1Jlc29sdmVyOjpleHBsaWNpdEdyaWRDb2x1bW5Db3VudCk6Cisg
ICAgICAgIChXZWJDb3JlOjpHcmlkUG9zaXRpb25zUmVzb2x2ZXI6OmV4cGxpY2l0R3JpZFJvd0Nv
dW50KToKKyAgICAgICAgKFdlYkNvcmU6OmV4cGxpY2l0R3JpZFNpemVGb3JTaWRlKToKKyAgICAg
ICAgKFdlYkNvcmU6OnJlc29sdmVOYW1lZEdyaWRMaW5lUG9zaXRpb25Gcm9tU3R5bGUpOgorICAg
ICAgICAoV2ViQ29yZTo6cmVzb2x2ZU5hbWVkR3JpZExpbmVQb3NpdGlvbkFnYWluc3RPcHBvc2l0
ZVBvc2l0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OnJlc29sdmVHcmlkUG9zaXRpb25BZ2FpbnN0
T3Bwb3NpdGVQb3NpdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpyZXNvbHZlR3JpZFBvc2l0aW9u
RnJvbVN0eWxlKToKKyAgICAgICAgKFdlYkNvcmU6OkdyaWRQb3NpdGlvbnNSZXNvbHZlcjo6cmVz
b2x2ZUdyaWRQb3NpdGlvbnNGcm9tU3R5bGUpOgorICAgICAgICAqIHJlbmRlcmluZy9zdHlsZS9H
cmlkUG9zaXRpb25zUmVzb2x2ZXIuaDoKKwogMjAyMi0wMi0xNCAgUGF0cmljayBBbmdsZSAgPHBh
bmdsZUBhcHBsZS5jb20+CiAKICAgICAgICAgV2ViIEluc3BlY3RvcjogRWxlbWVudCB0b29sdGlw
cyBpbiBvdmVybGF5cyBzaG91bGQgdXNlIHNhbWUgZW5jb2RhYmxlL2RlY29kYWJsZSBMYWJlbCB0
eXBlIGFzIGdyaWQgb3ZlcmxheXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1ND
b21wdXRlZFN0eWxlRGVjbGFyYXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0NvbXB1
dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHAKaW5kZXggZDNiYWQ5YWQyM2I0Li4yZDljMDY0ZjQwNGMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRp
b24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRp
b24uY3BwCkBAIC04OTgsNiArODk4LDM3IEBAIHByaXZhdGU6CiAgICAgdW5zaWduZWQgbV9hdXRv
UmVwZWF0VHJhY2tMaXN0TGVuZ3RoOwogfTsKIAorY2xhc3MgT3JkZXJlZE5hbWVkTGluZXNDb2xs
ZWN0b3JJblN1YmdyaWRMYXlvdXQgOiBwdWJsaWMgT3JkZXJlZE5hbWVkTGluZXNDb2xsZWN0b3Ig
eworcHVibGljOgorICAgIE9yZGVyZWROYW1lZExpbmVzQ29sbGVjdG9ySW5TdWJncmlkTGF5b3V0
KGNvbnN0IFJlbmRlclN0eWxlJiBzdHlsZSwgYm9vbCBpc1Jvd0F4aXMsIHVuc2lnbmVkIHRvdGFs
VHJhY2tzQ291bnQpCisgICAgICAgIDogT3JkZXJlZE5hbWVkTGluZXNDb2xsZWN0b3Ioc3R5bGUs
IGlzUm93QXhpcykKKyAgICAgICAgLCBtX2luc2VydGlvblBvaW50KGlzUm93QXhpcyA/IHN0eWxl
LmdyaWRBdXRvUmVwZWF0Q29sdW1uc0luc2VydGlvblBvaW50KCkgOiBzdHlsZS5ncmlkQXV0b1Jl
cGVhdFJvd3NJbnNlcnRpb25Qb2ludCgpKQorICAgICAgICAsIG1fYXV0b1JlcGVhdExpbmVTZXRM
aXN0TGVuZ3RoKChpc1Jvd0F4aXMgPyBzdHlsZS5hdXRvUmVwZWF0T3JkZXJlZE5hbWVkR3JpZENv
bHVtbkxpbmVzKCkgOiBzdHlsZS5hdXRvUmVwZWF0T3JkZXJlZE5hbWVkR3JpZFJvd0xpbmVzKCkp
LnNpemUoKSkKKyAgICAgICAgLCBtX3RvdGFsTGluZXModG90YWxUcmFja3NDb3VudCArIDEpCisg
ICAgeworICAgICAgICBpZiAoIW1fYXV0b1JlcGVhdExpbmVTZXRMaXN0TGVuZ3RoKSB7CisgICAg
ICAgICAgICBtX2F1dG9SZXBlYXRUb3RhbExpbmVTZXRzID0gMDsKKyAgICAgICAgICAgIHJldHVy
bjsKKyAgICAgICAgfQorICAgICAgICB1bnNpZ25lZCBuYW1lZCA9IChpc1Jvd0F4aXMgPyBzdHls
ZS5vcmRlcmVkTmFtZWRHcmlkQ29sdW1uTGluZXMoKSA6IHN0eWxlLm9yZGVyZWROYW1lZEdyaWRS
b3dMaW5lcygpKS5zaXplKCk7CisgICAgICAgIGlmIChuYW1lZCA+PSBtX3RvdGFsTGluZXMpIHsK
KyAgICAgICAgICAgIG1fYXV0b1JlcGVhdFRvdGFsTGluZVNldHMgPSAwOworICAgICAgICAgICAg
cmV0dXJuOworICAgICAgICB9CisgICAgICAgIG1fYXV0b1JlcGVhdFRvdGFsTGluZVNldHMgPSAo
bV90b3RhbExpbmVzIC0gbmFtZWQpIC8gbV9hdXRvUmVwZWF0TGluZVNldExpc3RMZW5ndGg7Cisg
ICAgICAgIG1fYXV0b1JlcGVhdFRvdGFsTGluZVNldHMgKj0gbV9hdXRvUmVwZWF0TGluZVNldExp
c3RMZW5ndGg7CisgICAgfQorCisgICAgdm9pZCBjb2xsZWN0TGluZU5hbWVzRm9ySW5kZXgoQ1NT
R3JpZExpbmVOYW1lc1ZhbHVlJiwgdW5zaWduZWQgaW5kZXgpIGNvbnN0IG92ZXJyaWRlOworCisg
ICAgaW50IG5hbWVkR3JpZExpbmVDb3VudCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG1fdG90
YWxMaW5lczsgfQorcHJpdmF0ZToKKyAgICB1bnNpZ25lZCBtX2luc2VydGlvblBvaW50OworICAg
IHVuc2lnbmVkIG1fYXV0b1JlcGVhdFRvdGFsTGluZVNldHM7CisgICAgdW5zaWduZWQgbV9hdXRv
UmVwZWF0TGluZVNldExpc3RMZW5ndGg7CisgICAgdW5zaWduZWQgbV90b3RhbExpbmVzOworfTsK
Kwogdm9pZCBPcmRlcmVkTmFtZWRMaW5lc0NvbGxlY3Rvcjo6YXBwZW5kTGluZXMoQ1NTR3JpZExp
bmVOYW1lc1ZhbHVlJiBsaW5lTmFtZXNWYWx1ZSwgdW5zaWduZWQgaW5kZXgsIE5hbWVkTGluZXNU
eXBlIHR5cGUpIGNvbnN0CiB7CiAgICAgYXV0byBpdGVyID0gdHlwZSA9PSBOYW1lZExpbmVzID8g
bV9vcmRlcmVkTmFtZWRHcmlkTGluZXMuZmluZChpbmRleCkgOiBtX29yZGVyZWROYW1lZEF1dG9S
ZXBlYXRHcmlkTGluZXMuZmluZChpbmRleCk7CkBAIC05NTUsOSArOTg2LDI1IEBAIHZvaWQgT3Jk
ZXJlZE5hbWVkTGluZXNDb2xsZWN0b3JJbkdyaWRMYXlvdXQ6OmNvbGxlY3RMaW5lTmFtZXNGb3JJ
bmRleChDU1NHcmlkTGluCiAgICAgYXBwZW5kTGluZXMobGluZU5hbWVzVmFsdWUsIGF1dG9SZXBl
YXRJbmRleEluRmlyc3RSZXBldGl0aW9uLCBBdXRvUmVwZWF0TmFtZWRMaW5lcyk7CiB9CiAKK3Zv
aWQgT3JkZXJlZE5hbWVkTGluZXNDb2xsZWN0b3JJblN1YmdyaWRMYXlvdXQ6OmNvbGxlY3RMaW5l
TmFtZXNGb3JJbmRleChDU1NHcmlkTGluZU5hbWVzVmFsdWUmIGxpbmVOYW1lc1ZhbHVlLCB1bnNp
Z25lZCBpKSBjb25zdAoreworICAgIGlmICghbV9hdXRvUmVwZWF0TGluZVNldExpc3RMZW5ndGgg
fHwgaSA8IG1faW5zZXJ0aW9uUG9pbnQpIHsKKyAgICAgICAgYXBwZW5kTGluZXMobGluZU5hbWVz
VmFsdWUsIGksIE5hbWVkTGluZXMpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgaWYg
KGkgPj0gbV9pbnNlcnRpb25Qb2ludCArIG1fYXV0b1JlcGVhdFRvdGFsTGluZVNldHMpIHsKKyAg
ICAgICAgYXBwZW5kTGluZXMobGluZU5hbWVzVmFsdWUsIGkgLSBtX2F1dG9SZXBlYXRUb3RhbExp
bmVTZXRzLCBOYW1lZExpbmVzKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIHVuc2ln
bmVkIGF1dG9SZXBlYXRJbmRleEluRmlyc3RSZXBldGl0aW9uID0gKGkgLSBtX2luc2VydGlvblBv
aW50KSAlIG1fYXV0b1JlcGVhdExpbmVTZXRMaXN0TGVuZ3RoOworICAgIGFwcGVuZExpbmVzKGxp
bmVOYW1lc1ZhbHVlLCBhdXRvUmVwZWF0SW5kZXhJbkZpcnN0UmVwZXRpdGlvbiwgQXV0b1JlcGVh
dE5hbWVkTGluZXMpOworfQorCiBzdGF0aWMgdm9pZCBhZGRWYWx1ZXNGb3JOYW1lZEdyaWRMaW5l
c0F0SW5kZXgoT3JkZXJlZE5hbWVkTGluZXNDb2xsZWN0b3ImIGNvbGxlY3RvciwgdW5zaWduZWQg
aSwgQ1NTVmFsdWVMaXN0JiBsaXN0LCBib29sIHJlbmRlckVtcHR5ID0gZmFsc2UpCiB7Ci0gICAg
aWYgKGNvbGxlY3Rvci5pc0VtcHR5KCkpCisgICAgaWYgKGNvbGxlY3Rvci5pc0VtcHR5KCkgJiYg
IXJlbmRlckVtcHR5KQogICAgICAgICByZXR1cm47CiAKICAgICBhdXRvIGxpbmVOYW1lcyA9IENT
U0dyaWRMaW5lTmFtZXNWYWx1ZTo6Y3JlYXRlKCk7CkBAIC0xMDM1LDkgKzEwODIsMTUgQEAgc3Rh
dGljIFJlZjxDU1NWYWx1ZT4gdmFsdWVGb3JHcmlkVHJhY2tMaXN0KEdyaWRUcmFja1NpemluZ0Rp
cmVjdGlvbiBkaXJlY3Rpb24sIFIKIAogICAgIC8vIElmIHRoZSBlbGVtZW50IGlzIGEgZ3JpZCBj
b250YWluZXIsIHRoZSByZXNvbHZlZCB2YWx1ZSBpcyB0aGUgdXNlZCB2YWx1ZSwKICAgICAvLyBz
cGVjaWZ5aW5nIHRyYWNrIHNpemVzIGluIHBpeGVscyBhbmQgZXhwYW5kaW5nIHRoZSByZXBlYXQo
KSBub3RhdGlvbi4KLSAgICBpZiAoaXNSZW5kZXJHcmlkKSB7Ci0gICAgICAgIC8vIEZJWE1FOiBX
ZSBuZWVkIHRvIGhhbmRsZSBjb21wdXRlZCBzdWJncmlkIGhlcmUuCisgICAgLy8gSWYgc3ViZ3Jp
ZCB3YXMgc3BlY2lmaWVkLCBidXQgdGhlIGVsZW1lbnQgaXNuJ3QgYSBzdWJncmlkIChkdWUgdG8g
bm90IGhhdmluZworICAgIC8vIGFuIGFwcHJvcHJpYXRlIGdyaWQgcGFyZW50KSwgdGhlbiB3ZSBm
YWxsIGJhY2sgdG8gdXNpbmcgdGhlIHNwZWNpZmllZCB2YWx1ZS4KKyAgICBpZiAoaXNSZW5kZXJH
cmlkICYmICghaXNTdWJncmlkIHx8IGRvd25jYXN0PFJlbmRlckdyaWQ+KHJlbmRlcmVyKS0+aXNT
dWJncmlkKGRpcmVjdGlvbikpKSB7CiAgICAgICAgIGF1dG8qIGdyaWQgPSBkb3duY2FzdDxSZW5k
ZXJHcmlkPihyZW5kZXJlcik7CisgICAgICAgIGlmIChpc1N1YmdyaWQpIHsKKyAgICAgICAgICAg
IE9yZGVyZWROYW1lZExpbmVzQ29sbGVjdG9ySW5TdWJncmlkTGF5b3V0IGNvbGxlY3RvcihzdHls
ZSwgaXNSb3dBeGlzLCBncmlkLT5udW1UcmFja3MoZGlyZWN0aW9uKSk7CisgICAgICAgICAgICBw
b3B1bGF0ZVN1YmdyaWRMaW5lTmFtZUxpc3QobGlzdC5nZXQoKSwgY29sbGVjdG9yKTsKKyAgICAg
ICAgICAgIHJldHVybiBsaXN0OworICAgICAgICB9CiAgICAgICAgIE9yZGVyZWROYW1lZExpbmVz
Q29sbGVjdG9ySW5HcmlkTGF5b3V0IGNvbGxlY3RvcihzdHlsZSwgaXNSb3dBeGlzLCBncmlkLT5h
dXRvUmVwZWF0Q291bnRGb3JEaXJlY3Rpb24oZGlyZWN0aW9uKSwgYXV0b1JlcGVhdFRyYWNrU2l6
ZXMuc2l6ZSgpKTsKICAgICAgICAgLy8gTmFtZWQgZ3JpZCBsaW5lIGluZGljZXMgYXJlIHJlbGF0
aXZlIHRvIHRoZSBleHBsaWNpdCBncmlkLCBidXQgd2UgYXJlIGluY2x1ZGluZyBhbGwgdHJhY2tz
LgogICAgICAgICAvLyBTbyB3ZSBuZWVkIHRvIHN1YnRyYWN0IHRoZSBudW1iZXIgb2YgbGVhZGlu
ZyBpbXBsaWNpdCB0cmFja3MgaW4gb3JkZXIgdG8gZ2V0IHRoZSBwcm9wZXIgbGluZSBpbmRleC4K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9HcmlkLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9HcmlkLmNwcAppbmRleCA1NjAyZDdjMmQ0ZDUuLjRjMWZmZTUwNGFi
MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0dyaWQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9HcmlkLmNwcApAQCAtNjEsMTcgKzYxLDI0IEBAIHZvaWQg
R3JpZDo6ZW5zdXJlR3JpZFNpemUodW5zaWduZWQgbWF4aW11bVJvd1NpemUsIHVuc2lnbmVkIG1h
eGltdW1Db2x1bW5TaXplKQogICAgIH0KIH0KIAotdm9pZCBHcmlkOjppbnNlcnQoUmVuZGVyQm94
JiBjaGlsZCwgY29uc3QgR3JpZEFyZWEmIGFyZWEpCitHcmlkQXJlYSBHcmlkOjppbnNlcnQoUmVu
ZGVyQm94JiBjaGlsZCwgY29uc3QgR3JpZEFyZWEmIGFyZWEpCiB7Ci0gICAgQVNTRVJUKGFyZWEu
cm93cy5pc1RyYW5zbGF0ZWREZWZpbml0ZSgpICYmIGFyZWEuY29sdW1ucy5pc1RyYW5zbGF0ZWRE
ZWZpbml0ZSgpKTsKLSAgICBlbnN1cmVHcmlkU2l6ZShhcmVhLnJvd3MuZW5kTGluZSgpLCBhcmVh
LmNvbHVtbnMuZW5kTGluZSgpKTsKKyAgICBHcmlkQXJlYSBjbGFtcGVkQXJlYSA9IGFyZWE7Cisg
ICAgaWYgKG1fbWF4Um93cykKKyAgICAgICAgY2xhbXBlZEFyZWEucm93cy5jbGFtcChtX21heFJv
d3MpOworICAgIGlmIChtX21heENvbHVtbnMpCisgICAgICAgIGNsYW1wZWRBcmVhLmNvbHVtbnMu
Y2xhbXAobV9tYXhDb2x1bW5zKTsKIAotICAgIGZvciAoYXV0byByb3cgOiBhcmVhLnJvd3MpIHsK
LSAgICAgICAgZm9yIChhdXRvIGNvbHVtbiA6IGFyZWEuY29sdW1ucykKKyAgICBBU1NFUlQoY2xh
bXBlZEFyZWEucm93cy5pc1RyYW5zbGF0ZWREZWZpbml0ZSgpICYmIGNsYW1wZWRBcmVhLmNvbHVt
bnMuaXNUcmFuc2xhdGVkRGVmaW5pdGUoKSk7CisgICAgZW5zdXJlR3JpZFNpemUoY2xhbXBlZEFy
ZWEucm93cy5lbmRMaW5lKCksIGNsYW1wZWRBcmVhLmNvbHVtbnMuZW5kTGluZSgpKTsKKworICAg
IGZvciAoYXV0byByb3cgOiBjbGFtcGVkQXJlYS5yb3dzKSB7CisgICAgICAgIGZvciAoYXV0byBj
b2x1bW4gOiBjbGFtcGVkQXJlYS5jb2x1bW5zKQogICAgICAgICAgICAgbV9ncmlkW3Jvd11bY29s
dW1uXS5hcHBlbmQoY2hpbGQpOwogICAgIH0KIAotICAgIHNldEdyaWRJdGVtQXJlYShjaGlsZCwg
YXJlYSk7CisgICAgc2V0R3JpZEl0ZW1BcmVhKGNoaWxkLCBjbGFtcGVkQXJlYSk7CisgICAgcmV0
dXJuIGNsYW1wZWRBcmVhOwogfQogCiB2b2lkIEdyaWQ6OnNldEV4cGxpY2l0R3JpZFN0YXJ0KHVu
c2lnbmVkIHJvd1N0YXJ0LCB1bnNpZ25lZCBjb2x1bW5TdGFydCkKQEAgLTg1LDYgKzkyLDI0IEBA
IHVuc2lnbmVkIEdyaWQ6OmV4cGxpY2l0R3JpZFN0YXJ0KEdyaWRUcmFja1NpemluZ0RpcmVjdGlv
biBkaXJlY3Rpb24pIGNvbnN0CiAgICAgcmV0dXJuIGRpcmVjdGlvbiA9PSBGb3JSb3dzID8gbV9l
eHBsaWNpdFJvd1N0YXJ0IDogbV9leHBsaWNpdENvbHVtblN0YXJ0OwogfQogCit2b2lkIEdyaWQ6
OnNldENsYW1waW5nRm9yU3ViZ3JpZCh1bnNpZ25lZCBtYXhSb3dzLCB1bnNpZ25lZCBtYXhDb2x1
bW5zKQoreworICAgIG1fbWF4Um93cyA9IG1heFJvd3M7CisgICAgbV9tYXhDb2x1bW5zID0gbWF4
Q29sdW1uczsKK30KKwordm9pZCBHcmlkOjpjbGFtcEFyZWFUb1N1YmdyaWRJZk5lZWRlZChHcmlk
QXJlYSYgYXJlYSkKK3sKKyAgICBpZiAoIWFyZWEucm93cy5pc0luZGVmaW5pdGUoKSkgeworICAg
ICAgICBpZiAobV9tYXhSb3dzKQorICAgICAgICAgICAgYXJlYS5yb3dzLmNsYW1wKG1fbWF4Um93
cyk7CisgICAgfQorICAgIGlmICghYXJlYS5jb2x1bW5zLmlzSW5kZWZpbml0ZSgpKSB7CisgICAg
ICAgIGlmIChtX21heENvbHVtbnMpCisgICAgICAgICAgICBhcmVhLmNvbHVtbnMuY2xhbXAobV9t
YXhDb2x1bW5zKTsKKyAgICB9Cit9CisKIEdyaWRBcmVhIEdyaWQ6OmdyaWRJdGVtQXJlYShjb25z
dCBSZW5kZXJCb3gmIGl0ZW0pIGNvbnN0CiB7CiAgICAgQVNTRVJUKG1fZ3JpZEl0ZW1BcmVhLmNv
bnRhaW5zKCZpdGVtKSk7CkBAIC0xNjEsNiArMTg2LDggQEAgdm9pZCBHcmlkOjpzZXROZWVkc0l0
ZW1zUGxhY2VtZW50KGJvb2wgbmVlZHNJdGVtc1BsYWNlbWVudCkKICAgICBtX2F1dG9SZXBlYXRF
bXB0eVJvd3MgPSBudWxscHRyOwogICAgIG1fYXV0b1JlcGVhdENvbHVtbnMgPSAwOwogICAgIG1f
YXV0b1JlcGVhdFJvd3MgPSAwOworICAgIG1fbWF4Q29sdW1ucyA9IDA7CisgICAgbV9tYXhSb3dz
ID0gMDsKIH0KIAogR3JpZEl0ZXJhdG9yOjpHcmlkSXRlcmF0b3IoY29uc3QgR3JpZCYgZ3JpZCwg
R3JpZFRyYWNrU2l6aW5nRGlyZWN0aW9uIGRpcmVjdGlvbiwgdW5zaWduZWQgZml4ZWRUcmFja0lu
ZGV4LCB1bnNpZ25lZCB2YXJ5aW5nVHJhY2tJbmRleCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9HcmlkLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvR3JpZC5oCmlu
ZGV4IDcyY2FkZjY4ZWY0ZC4uNGMxZWYzYTVmMDE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvR3JpZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9HcmlkLmgK
QEAgLTQ4LDcgKzQ4LDcgQEAgcHVibGljOgogICAgIHVuc2lnbmVkIG51bVRyYWNrcyhHcmlkVHJh
Y2tTaXppbmdEaXJlY3Rpb24pIGNvbnN0OwogCiAgICAgdm9pZCBlbnN1cmVHcmlkU2l6ZSh1bnNp
Z25lZCBtYXhpbXVtUm93U2l6ZSwgdW5zaWduZWQgbWF4aW11bUNvbHVtblNpemUpOwotICAgIHZv
aWQgaW5zZXJ0KFJlbmRlckJveCYsIGNvbnN0IEdyaWRBcmVhJik7CisgICAgR3JpZEFyZWEgaW5z
ZXJ0KFJlbmRlckJveCYsIGNvbnN0IEdyaWRBcmVhJik7CiAKICAgICAvLyBOb3RlIHRoYXQgZWFj
aCBpbiBmbG93IGNoaWxkIG9mIGEgZ3JpZCBjb250YWluZXIgYmVjb21lcyBhIGdyaWQgaXRlbS4g
VGhpcyBtZWFucyB0aGF0CiAgICAgLy8gdGhpcyBtZXRob2Qgd2lsbCByZXR1cm4gZmFsc2UgZm9y
IGEgZ3JpZCBjb250YWluZXIgd2l0aCBvbmx5IG91dCBvZiBmbG93IGNoaWxkcmVuLgpAQCAtNjcs
NiArNjcsMTAgQEAgcHVibGljOgogICAgIHVuc2lnbmVkIGF1dG9SZXBlYXRUcmFja3MoR3JpZFRy
YWNrU2l6aW5nRGlyZWN0aW9uKSBjb25zdDsKICAgICB2b2lkIHNldEF1dG9SZXBlYXRUcmFja3Mo
dW5zaWduZWQgYXV0b1JlcGVhdFJvd3MsIHVuc2lnbmVkIGF1dG9SZXBlYXRDb2x1bW5zKTsKIAor
ICAgIHZvaWQgc2V0Q2xhbXBpbmdGb3JTdWJncmlkKHVuc2lnbmVkIG1heFJvd3MsIHVuc2lnbmVk
IG1heENvbHVtbnMpOworCisgICAgdm9pZCBjbGFtcEFyZWFUb1N1YmdyaWRJZk5lZWRlZChHcmlk
QXJlYSYpOworCiAgICAgdm9pZCBzZXRBdXRvUmVwZWF0RW1wdHlDb2x1bW5zKHN0ZDo6dW5pcXVl
X3B0cjxPcmRlcmVkVHJhY2tJbmRleFNldD4pOwogICAgIHZvaWQgc2V0QXV0b1JlcGVhdEVtcHR5
Um93cyhzdGQ6OnVuaXF1ZV9wdHI8T3JkZXJlZFRyYWNrSW5kZXhTZXQ+KTsKIApAQCAtOTIsNiAr
OTYsOSBAQCBwcml2YXRlOgogICAgIHVuc2lnbmVkIG1fYXV0b1JlcGVhdENvbHVtbnMgeyAwIH07
CiAgICAgdW5zaWduZWQgbV9hdXRvUmVwZWF0Um93cyB7IDAgfTsKIAorICAgIHVuc2lnbmVkIG1f
bWF4Q29sdW1ucyB7IDAgfTsKKyAgICB1bnNpZ25lZCBtX21heFJvd3MgeyAwIH07CisKICAgICBi
b29sIG1fbmVlZHNJdGVtc1BsYWNlbWVudCB7IHRydWUgfTsKIAogICAgIEdyaWRBc01hdHJpeCBt
X2dyaWQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvR3JpZExheW91dEZ1
bmN0aW9ucy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvR3JpZExheW91dEZ1bmN0aW9u
cy5jcHAKaW5kZXggZDRmNzg4ZGM3MGQyLi5kYWY1ZDI4N2E0MWMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9HcmlkTGF5b3V0RnVuY3Rpb25zLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvR3JpZExheW91dEZ1bmN0aW9ucy5jcHAKQEAgLTEwMiw2ICsxMDIs
MjAgQEAgc3RkOjpvcHRpb25hbDxMYXlvdXRVbml0PiBvdmVycmlkaW5nQ29udGFpbmluZ0Jsb2Nr
Q29udGVudFNpemVGb3JDaGlsZChjb25zdCBSZW4KICAgICByZXR1cm4gZGlyZWN0aW9uID09IEZv
ckNvbHVtbnMgPyBjaGlsZC5vdmVycmlkaW5nQ29udGFpbmluZ0Jsb2NrQ29udGVudExvZ2ljYWxX
aWR0aCgpIDogY2hpbGQub3ZlcnJpZGluZ0NvbnRhaW5pbmdCbG9ja0NvbnRlbnRMb2dpY2FsSGVp
Z2h0KCk7CiB9CiAKK2Jvb2wgaXNGbGlwcGVkRGlyZWN0aW9uKGNvbnN0IFJlbmRlckdyaWQmIGdy
aWQsIEdyaWRUcmFja1NpemluZ0RpcmVjdGlvbiBkaXJlY3Rpb24pCit7CisgICAgaWYgKGRpcmVj
dGlvbiA9PSBGb3JDb2x1bW5zKQorICAgICAgICByZXR1cm4gIWdyaWQuc3R5bGUoKS5pc0xlZnRU
b1JpZ2h0RGlyZWN0aW9uKCk7CisgICAgcmV0dXJuIGdyaWQuc3R5bGUoKS5pc0ZsaXBwZWRCbG9j
a3NXcml0aW5nTW9kZSgpOworfQorCitib29sIGlzU3ViZ3JpZFJldmVyc2VkRGlyZWN0aW9uKGNv
bnN0IFJlbmRlckdyaWQmIGdyaWQsIEdyaWRUcmFja1NpemluZ0RpcmVjdGlvbiBvdXRlckRpcmVj
dGlvbiwgY29uc3QgUmVuZGVyR3JpZCYgc3ViZ3JpZCkKK3sKKyAgICBHcmlkVHJhY2tTaXppbmdE
aXJlY3Rpb24gY2hpbGREaXJlY3Rpb24gPSBmbG93QXdhcmVEaXJlY3Rpb25Gb3JDaGlsZChncmlk
LCBzdWJncmlkLCBvdXRlckRpcmVjdGlvbik7CisgICAgQVNTRVJUKHN1YmdyaWQuaXNTdWJncmlk
KGNoaWxkRGlyZWN0aW9uKSk7CisgICAgcmV0dXJuIGlzRmxpcHBlZERpcmVjdGlvbihncmlkLCBv
dXRlckRpcmVjdGlvbikgIT0gaXNGbGlwcGVkRGlyZWN0aW9uKHN1YmdyaWQsIGNoaWxkRGlyZWN0
aW9uKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgR3JpZExheW91dEZ1bmN0aW9ucwogCiB9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvR3Jp
ZExheW91dEZ1bmN0aW9ucy5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0dyaWRMYXlvdXRG
dW5jdGlvbnMuaAppbmRleCA1ZGIzZjVmOTgyOTUuLjg2MTdjMmMxMjNkMCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0dyaWRMYXlvdXRGdW5jdGlvbnMuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvR3JpZExheW91dEZ1bmN0aW9ucy5oCkBAIC00NSw2ICs0NSw5
IEBAIEdyaWRUcmFja1NpemluZ0RpcmVjdGlvbiBmbG93QXdhcmVEaXJlY3Rpb25Gb3JDaGlsZChj
b25zdCBSZW5kZXJHcmlkJiwgY29uc3QgUmVuCiBib29sIGhhc092ZXJyaWRpbmdDb250YWluaW5n
QmxvY2tDb250ZW50U2l6ZUZvckNoaWxkKGNvbnN0IFJlbmRlckJveCYsIEdyaWRUcmFja1Npemlu
Z0RpcmVjdGlvbik7CiBzdGQ6Om9wdGlvbmFsPExheW91dFVuaXQ+IG92ZXJyaWRpbmdDb250YWlu
aW5nQmxvY2tDb250ZW50U2l6ZUZvckNoaWxkKGNvbnN0IFJlbmRlckJveCYsIEdyaWRUcmFja1Np
emluZ0RpcmVjdGlvbik7CiAKK2Jvb2wgaXNGbGlwcGVkRGlyZWN0aW9uKGNvbnN0IFJlbmRlckdy
aWQmLCBHcmlkVHJhY2tTaXppbmdEaXJlY3Rpb24pOworYm9vbCBpc1N1YmdyaWRSZXZlcnNlZERp
cmVjdGlvbihjb25zdCBSZW5kZXJHcmlkJiwgR3JpZFRyYWNrU2l6aW5nRGlyZWN0aW9uIG91dGVy
RGlyZWN0aW9uLCBjb25zdCBSZW5kZXJHcmlkJiBzdWJncmlkKTsKKwogfQogCiB9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
R3JpZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyR3JpZC5jcHAKaW5kZXgg
N2ZmYjYyMzc0OGYwLi44ZTY2NWQ3MWI3MWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJHcmlkLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyR3JpZC5jcHAKQEAgLTQ0Niw4ICs0NDYsNyBAQCB2b2lkIFJlbmRlckdyaWQ6OmNvbXB1dGVJ
bnRyaW5zaWNMb2dpY2FsV2lkdGhzKExheW91dFVuaXQmIG1pbkxvZ2ljYWxXaWR0aCwgTGF5bwog
ICAgIExheW91dFVuaXQgY2hpbGRNYXhXaWR0aDsKICAgICBib29sIGhhZEV4Y2x1ZGVkQ2hpbGRy
ZW4gPSBjb21wdXRlUHJlZmVycmVkV2lkdGhzRm9yRXhjbHVkZWRDaGlsZHJlbihjaGlsZE1pbldp
ZHRoLCBjaGlsZE1heFdpZHRoKTsKIAotICAgIEdyaWQgZ3JpZChjb25zdF9jYXN0PFJlbmRlckdy
aWQmPigqdGhpcykpOwotICAgIEdyaWRUcmFja1NpemluZ0FsZ29yaXRobSBhbGdvcml0aG0odGhp
cywgZ3JpZCk7CisgICAgR3JpZFRyYWNrU2l6aW5nQWxnb3JpdGhtIGFsZ29yaXRobSh0aGlzLCBj
b25zdF9jYXN0PEdyaWQmPihtX2dyaWQpKTsKICAgICBwbGFjZUl0ZW1zT25HcmlkKGFsZ29yaXRo
bSwgc3RkOjpudWxsb3B0KTsKIAogICAgIHBlcmZvcm1HcmlkSXRlbXNQcmVMYXlvdXQoYWxnb3Jp
dGhtKTsKQEAgLTQ5Niw2ICs0OTUsOSBAQCB1bnNpZ25lZCBSZW5kZXJHcmlkOjpjb21wdXRlQXV0
b1JlcGVhdFRyYWNrc0NvdW50KEdyaWRUcmFja1NpemluZ0RpcmVjdGlvbiBkaXJlYwogewogICAg
IEFTU0VSVCghYXZhaWxhYmxlU2l6ZSB8fCBhdmFpbGFibGVTaXplLnZhbHVlKCkgIT0gLTEpOwog
ICAgIGJvb2wgaXNSb3dBeGlzID0gZGlyZWN0aW9uID09IEZvckNvbHVtbnM7CisgICAgaWYgKGlz
U3ViZ3JpZChkaXJlY3Rpb24pKQorICAgICAgICByZXR1cm4gMDsKKwogICAgIGNvbnN0IGF1dG8m
IGF1dG9SZXBlYXRUcmFja3MgPSBpc1Jvd0F4aXMgPyBzdHlsZSgpLmdyaWRBdXRvUmVwZWF0Q29s
dW1ucygpIDogc3R5bGUoKS5ncmlkQXV0b1JlcGVhdFJvd3MoKTsKICAgICB1bnNpZ25lZCBhdXRv
UmVwZWF0VHJhY2tMaXN0TGVuZ3RoID0gYXV0b1JlcGVhdFRyYWNrcy5zaXplKCk7CiAKQEAgLTY0
MSw3ICs2NDMsNiBAQCB2b2lkIFJlbmRlckdyaWQ6OnBsYWNlSXRlbXNPbkdyaWQoR3JpZFRyYWNr
U2l6aW5nQWxnb3JpdGhtJiBhbGdvcml0aG0sIHN0ZDo6b3B0aQogICAgIEdyaWQmIGdyaWQgPSBh
bGdvcml0aG0ubXV0YWJsZUdyaWQoKTsKICAgICB1bnNpZ25lZCBhdXRvUmVwZWF0Q29sdW1ucyA9
IGNvbXB1dGVBdXRvUmVwZWF0VHJhY2tzQ291bnQoRm9yQ29sdW1ucywgYXZhaWxhYmxlTG9naWNh
bFdpZHRoKTsKICAgICB1bnNpZ25lZCBhdXRvUmVwZWF0Um93cyA9IGNvbXB1dGVBdXRvUmVwZWF0
VHJhY2tzQ291bnQoRm9yUm93cywgYXZhaWxhYmxlTG9naWNhbEhlaWdodEZvclBlcmNlbnRhZ2VD
b21wdXRhdGlvbigpKTsKLQogICAgIGF1dG9SZXBlYXRSb3dzID0gY2xhbXBBdXRvUmVwZWF0VHJh
Y2tzKEZvclJvd3MsIGF1dG9SZXBlYXRSb3dzKTsKICAgICBhdXRvUmVwZWF0Q29sdW1ucyA9IGNs
YW1wQXV0b1JlcGVhdFRyYWNrcyhGb3JDb2x1bW5zLCBhdXRvUmVwZWF0Q29sdW1ucyk7CiAKQEAg
LTY3MCw2ICs2NzEsNyBAQCB2b2lkIFJlbmRlckdyaWQ6OnBsYWNlSXRlbXNPbkdyaWQoR3JpZFRy
YWNrU2l6aW5nQWxnb3JpdGhtJiBhbGdvcml0aG0sIHN0ZDo6b3B0aQogICAgICAgICAgICAgY2hp
bGQtPnNldE92ZXJyaWRpbmdDb250YWluaW5nQmxvY2tDb250ZW50TG9naWNhbEhlaWdodChzdGQ6
Om51bGxvcHQpOwogCiAgICAgICAgIEdyaWRBcmVhIGFyZWEgPSBncmlkLmdyaWRJdGVtQXJlYSgq
Y2hpbGQpOworICAgICAgICBncmlkLmNsYW1wQXJlYVRvU3ViZ3JpZElmTmVlZGVkKGFyZWEpOwog
ICAgICAgICBpZiAoIWFyZWEucm93cy5pc0luZGVmaW5pdGUoKSkKICAgICAgICAgICAgIGFyZWEu
cm93cy50cmFuc2xhdGUoZ3JpZC5leHBsaWNpdEdyaWRTdGFydChGb3JSb3dzKSk7CiAgICAgICAg
IGlmICghYXJlYS5jb2x1bW5zLmlzSW5kZWZpbml0ZSgpKQpAQCAtNjkwLDggKzY5Miw4IEBAIHZv
aWQgUmVuZGVyR3JpZDo6cGxhY2VJdGVtc09uR3JpZChHcmlkVHJhY2tTaXppbmdBbGdvcml0aG0m
IGFsZ29yaXRobSwgc3RkOjpvcHRpCiAKICNpZiBBU1NFUlRfRU5BQkxFRAogICAgIGlmIChncmlk
Lmhhc0dyaWRJdGVtcygpKSB7Ci0gICAgICAgIEFTU0VSVChncmlkLm51bVRyYWNrcyhGb3JSb3dz
KSA+PSBHcmlkUG9zaXRpb25zUmVzb2x2ZXI6OmV4cGxpY2l0R3JpZFJvd0NvdW50KHN0eWxlKCks
IGdyaWQuYXV0b1JlcGVhdFRyYWNrcyhGb3JSb3dzKSkpOwotICAgICAgICBBU1NFUlQoZ3JpZC5u
dW1UcmFja3MoRm9yQ29sdW1ucykgPj0gR3JpZFBvc2l0aW9uc1Jlc29sdmVyOjpleHBsaWNpdEdy
aWRDb2x1bW5Db3VudChzdHlsZSgpLCBncmlkLmF1dG9SZXBlYXRUcmFja3MoRm9yQ29sdW1ucykp
KTsKKyAgICAgICAgQVNTRVJUKGdyaWQubnVtVHJhY2tzKEZvclJvd3MpID49IEdyaWRQb3NpdGlv
bnNSZXNvbHZlcjo6ZXhwbGljaXRHcmlkUm93Q291bnQoKnRoaXMpKTsKKyAgICAgICAgQVNTRVJU
KGdyaWQubnVtVHJhY2tzKEZvckNvbHVtbnMpID49IEdyaWRQb3NpdGlvbnNSZXNvbHZlcjo6ZXhw
bGljaXRHcmlkQ29sdW1uQ291bnQoKnRoaXMpKTsKICAgICB9CiAjZW5kaWYKIApAQCAtNzQ1LDMz
ICs3NDcsMzUgQEAgdm9pZCBSZW5kZXJHcmlkOjpwb3B1bGF0ZUV4cGxpY2l0R3JpZEFuZE9yZGVy
SXRlcmF0b3IoR3JpZCYgZ3JpZCkgY29uc3QKICAgICBPcmRlckl0ZXJhdG9yUG9wdWxhdG9yIHBv
cHVsYXRvcihncmlkLm9yZGVySXRlcmF0b3IoKSk7CiAgICAgdW5zaWduZWQgZXhwbGljaXRSb3dT
dGFydCA9IDA7CiAgICAgdW5zaWduZWQgZXhwbGljaXRDb2x1bW5TdGFydCA9IDA7Ci0gICAgdW5z
aWduZWQgYXV0b1JlcGVhdFJvd3MgPSBncmlkLmF1dG9SZXBlYXRUcmFja3MoRm9yUm93cyk7Ci0g
ICAgdW5zaWduZWQgYXV0b1JlcGVhdENvbHVtbnMgPSBncmlkLmF1dG9SZXBlYXRUcmFja3MoRm9y
Q29sdW1ucyk7Ci0gICAgdW5zaWduZWQgbWF4aW11bVJvd0luZGV4ID0gR3JpZFBvc2l0aW9uc1Jl
c29sdmVyOjpleHBsaWNpdEdyaWRSb3dDb3VudChzdHlsZSgpLCBhdXRvUmVwZWF0Um93cyk7Ci0g
ICAgdW5zaWduZWQgbWF4aW11bUNvbHVtbkluZGV4ID0gR3JpZFBvc2l0aW9uc1Jlc29sdmVyOjpl
eHBsaWNpdEdyaWRDb2x1bW5Db3VudChzdHlsZSgpLCBhdXRvUmVwZWF0Q29sdW1ucyk7CisgICAg
dW5zaWduZWQgbWF4aW11bVJvd0luZGV4ID0gR3JpZFBvc2l0aW9uc1Jlc29sdmVyOjpleHBsaWNp
dEdyaWRSb3dDb3VudCgqdGhpcyk7CisgICAgdW5zaWduZWQgbWF4aW11bUNvbHVtbkluZGV4ID0g
R3JpZFBvc2l0aW9uc1Jlc29sdmVyOjpleHBsaWNpdEdyaWRDb2x1bW5Db3VudCgqdGhpcyk7CiAK
ICAgICBmb3IgKFJlbmRlckJveCogY2hpbGQgPSBmaXJzdENoaWxkQm94KCk7IGNoaWxkOyBjaGls
ZCA9IGNoaWxkLT5uZXh0U2libGluZ0JveCgpKSB7CiAgICAgICAgIGlmICghcG9wdWxhdG9yLmNv
bGxlY3RDaGlsZCgqY2hpbGQpKQogICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgIAotICAg
ICAgICBHcmlkU3BhbiByb3dQb3NpdGlvbnMgPSBHcmlkUG9zaXRpb25zUmVzb2x2ZXI6OnJlc29s
dmVHcmlkUG9zaXRpb25zRnJvbVN0eWxlKHN0eWxlKCksICpjaGlsZCwgRm9yUm93cywgYXV0b1Jl
cGVhdFJvd3MpOwotICAgICAgICBpZiAoIXJvd1Bvc2l0aW9ucy5pc0luZGVmaW5pdGUoKSkgewot
ICAgICAgICAgICAgZXhwbGljaXRSb3dTdGFydCA9IHN0ZDo6bWF4PGludD4oZXhwbGljaXRSb3dT
dGFydCwgLXJvd1Bvc2l0aW9ucy51bnRyYW5zbGF0ZWRTdGFydExpbmUoKSk7Ci0gICAgICAgICAg
ICBtYXhpbXVtUm93SW5kZXggPSBzdGQ6Om1heDxpbnQ+KG1heGltdW1Sb3dJbmRleCwgcm93UG9z
aXRpb25zLnVudHJhbnNsYXRlZEVuZExpbmUoKSk7Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAg
ICAgICAvLyBHcm93IHRoZSBncmlkIGZvciBpdGVtcyB3aXRoIGEgZGVmaW5pdGUgcm93IHNwYW4s
IGdldHRpbmcgdGhlIGxhcmdlc3Qgc3VjaCBzcGFuLgotICAgICAgICAgICAgdW5zaWduZWQgc3Bh
blNpemUgPSBHcmlkUG9zaXRpb25zUmVzb2x2ZXI6OnNwYW5TaXplRm9yQXV0b1BsYWNlZEl0ZW0o
KmNoaWxkLCBGb3JSb3dzKTsKLSAgICAgICAgICAgIG1heGltdW1Sb3dJbmRleCA9IHN0ZDo6bWF4
KG1heGltdW1Sb3dJbmRleCwgc3BhblNpemUpOworICAgICAgICBHcmlkU3BhbiByb3dQb3NpdGlv
bnMgPSBHcmlkUG9zaXRpb25zUmVzb2x2ZXI6OnJlc29sdmVHcmlkUG9zaXRpb25zRnJvbVN0eWxl
KCpjaGlsZCwgRm9yUm93cyk7CisgICAgICAgIGlmICghaXNTdWJncmlkUm93cygpKSB7CisgICAg
ICAgICAgICBpZiAoIXJvd1Bvc2l0aW9ucy5pc0luZGVmaW5pdGUoKSkgeworICAgICAgICAgICAg
ICAgIGV4cGxpY2l0Um93U3RhcnQgPSBzdGQ6Om1heDxpbnQ+KGV4cGxpY2l0Um93U3RhcnQsIC1y
b3dQb3NpdGlvbnMudW50cmFuc2xhdGVkU3RhcnRMaW5lKCkpOworICAgICAgICAgICAgICAgIG1h
eGltdW1Sb3dJbmRleCA9IHN0ZDo6bWF4PGludD4obWF4aW11bVJvd0luZGV4LCByb3dQb3NpdGlv
bnMudW50cmFuc2xhdGVkRW5kTGluZSgpKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAg
ICAgICAgICAgLy8gR3JvdyB0aGUgZ3JpZCBmb3IgaXRlbXMgd2l0aCBhIGRlZmluaXRlIHJvdyBz
cGFuLCBnZXR0aW5nIHRoZSBsYXJnZXN0IHN1Y2ggc3Bhbi4KKyAgICAgICAgICAgICAgICB1bnNp
Z25lZCBzcGFuU2l6ZSA9IEdyaWRQb3NpdGlvbnNSZXNvbHZlcjo6c3BhblNpemVGb3JBdXRvUGxh
Y2VkSXRlbSgqY2hpbGQsIEZvclJvd3MpOworICAgICAgICAgICAgICAgIG1heGltdW1Sb3dJbmRl
eCA9IHN0ZDo6bWF4KG1heGltdW1Sb3dJbmRleCwgc3BhblNpemUpOworICAgICAgICAgICAgfQog
ICAgICAgICB9CiAKLSAgICAgICAgR3JpZFNwYW4gY29sdW1uUG9zaXRpb25zID0gR3JpZFBvc2l0
aW9uc1Jlc29sdmVyOjpyZXNvbHZlR3JpZFBvc2l0aW9uc0Zyb21TdHlsZShzdHlsZSgpLCAqY2hp
bGQsIEZvckNvbHVtbnMsIGF1dG9SZXBlYXRDb2x1bW5zKTsKLSAgICAgICAgaWYgKCFjb2x1bW5Q
b3NpdGlvbnMuaXNJbmRlZmluaXRlKCkpIHsKLSAgICAgICAgICAgIGV4cGxpY2l0Q29sdW1uU3Rh
cnQgPSBzdGQ6Om1heDxpbnQ+KGV4cGxpY2l0Q29sdW1uU3RhcnQsIC1jb2x1bW5Qb3NpdGlvbnMu
dW50cmFuc2xhdGVkU3RhcnRMaW5lKCkpOwotICAgICAgICAgICAgbWF4aW11bUNvbHVtbkluZGV4
ID0gc3RkOjptYXg8aW50PihtYXhpbXVtQ29sdW1uSW5kZXgsIGNvbHVtblBvc2l0aW9ucy51bnRy
YW5zbGF0ZWRFbmRMaW5lKCkpOwotICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgLy8gR3Jv
dyB0aGUgZ3JpZCBmb3IgaXRlbXMgd2l0aCBhIGRlZmluaXRlIGNvbHVtbiBzcGFuLCBnZXR0aW5n
IHRoZSBsYXJnZXN0IHN1Y2ggc3Bhbi4KLSAgICAgICAgICAgIHVuc2lnbmVkIHNwYW5TaXplID0g
R3JpZFBvc2l0aW9uc1Jlc29sdmVyOjpzcGFuU2l6ZUZvckF1dG9QbGFjZWRJdGVtKCpjaGlsZCwg
Rm9yQ29sdW1ucyk7Ci0gICAgICAgICAgICBtYXhpbXVtQ29sdW1uSW5kZXggPSBzdGQ6Om1heCht
YXhpbXVtQ29sdW1uSW5kZXgsIHNwYW5TaXplKTsKKyAgICAgICAgR3JpZFNwYW4gY29sdW1uUG9z
aXRpb25zID0gR3JpZFBvc2l0aW9uc1Jlc29sdmVyOjpyZXNvbHZlR3JpZFBvc2l0aW9uc0Zyb21T
dHlsZSgqY2hpbGQsIEZvckNvbHVtbnMpOworICAgICAgICBpZiAoIWlzU3ViZ3JpZENvbHVtbnMo
KSkgeworICAgICAgICAgICAgaWYgKCFjb2x1bW5Qb3NpdGlvbnMuaXNJbmRlZmluaXRlKCkpIHsK
KyAgICAgICAgICAgICAgICBleHBsaWNpdENvbHVtblN0YXJ0ID0gc3RkOjptYXg8aW50PihleHBs
aWNpdENvbHVtblN0YXJ0LCAtY29sdW1uUG9zaXRpb25zLnVudHJhbnNsYXRlZFN0YXJ0TGluZSgp
KTsKKyAgICAgICAgICAgICAgICBtYXhpbXVtQ29sdW1uSW5kZXggPSBzdGQ6Om1heDxpbnQ+KG1h
eGltdW1Db2x1bW5JbmRleCwgY29sdW1uUG9zaXRpb25zLnVudHJhbnNsYXRlZEVuZExpbmUoKSk7
CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIC8vIEdyb3cgdGhlIGdyaWQg
Zm9yIGl0ZW1zIHdpdGggYSBkZWZpbml0ZSBjb2x1bW4gc3BhbiwgZ2V0dGluZyB0aGUgbGFyZ2Vz
dCBzdWNoIHNwYW4uCisgICAgICAgICAgICAgICAgdW5zaWduZWQgc3BhblNpemUgPSBHcmlkUG9z
aXRpb25zUmVzb2x2ZXI6OnNwYW5TaXplRm9yQXV0b1BsYWNlZEl0ZW0oKmNoaWxkLCBGb3JDb2x1
bW5zKTsKKyAgICAgICAgICAgICAgICBtYXhpbXVtQ29sdW1uSW5kZXggPSBzdGQ6Om1heChtYXhp
bXVtQ29sdW1uSW5kZXgsIHNwYW5TaXplKTsKKyAgICAgICAgICAgIH0KICAgICAgICAgfQogCiAg
ICAgICAgIGdyaWQuc2V0R3JpZEl0ZW1BcmVhKCpjaGlsZCwgeyByb3dQb3NpdGlvbnMsIGNvbHVt
blBvc2l0aW9ucyB9KTsKQEAgLTc3OSw2ICs3ODMsNyBAQCB2b2lkIFJlbmRlckdyaWQ6OnBvcHVs
YXRlRXhwbGljaXRHcmlkQW5kT3JkZXJJdGVyYXRvcihHcmlkJiBncmlkKSBjb25zdAogCiAgICAg
Z3JpZC5zZXRFeHBsaWNpdEdyaWRTdGFydChleHBsaWNpdFJvd1N0YXJ0LCBleHBsaWNpdENvbHVt
blN0YXJ0KTsKICAgICBncmlkLmVuc3VyZUdyaWRTaXplKG1heGltdW1Sb3dJbmRleCArIGV4cGxp
Y2l0Um93U3RhcnQsIG1heGltdW1Db2x1bW5JbmRleCArIGV4cGxpY2l0Q29sdW1uU3RhcnQpOwor
ICAgIGdyaWQuc2V0Q2xhbXBpbmdGb3JTdWJncmlkKGlzU3ViZ3JpZFJvd3MoKSA/IG1heGltdW1S
b3dJbmRleCA6IDAsIGlzU3ViZ3JpZENvbHVtbnMoKSA/IG1heGltdW1Db2x1bW5JbmRleCA6IDAp
OwogfQogCiBzdGQ6OnVuaXF1ZV9wdHI8R3JpZEFyZWE+IFJlbmRlckdyaWQ6OmNyZWF0ZUVtcHR5
R3JpZEFyZWFBdFNwZWNpZmllZFBvc2l0aW9uc091dHNpZGVHcmlkKEdyaWQmIGdyaWQsIGNvbnN0
IFJlbmRlckJveCYgZ3JpZEl0ZW0sIEdyaWRUcmFja1NpemluZ0RpcmVjdGlvbiBzcGVjaWZpZWRE
aXJlY3Rpb24sIGNvbnN0IEdyaWRTcGFuJiBzcGVjaWZpZWRQb3NpdGlvbnMpIGNvbnN0CkBAIC04
MTIsNyArODE3LDcgQEAgdm9pZCBSZW5kZXJHcmlkOjpwbGFjZVNwZWNpZmllZE1ham9yQXhpc0l0
ZW1zT25HcmlkKEdyaWQmIGdyaWQsIGNvbnN0IFZlY3RvcjxSZW4KICAgICAgICAgaWYgKCFlbXB0
eUdyaWRBcmVhKQogICAgICAgICAgICAgZW1wdHlHcmlkQXJlYSA9IGNyZWF0ZUVtcHR5R3JpZEFy
ZWFBdFNwZWNpZmllZFBvc2l0aW9uc091dHNpZGVHcmlkKGdyaWQsICphdXRvR3JpZEl0ZW0sIGF1
dG9QbGFjZW1lbnRNYWpvckF4aXNEaXJlY3Rpb24oKSwgbWFqb3JBeGlzUG9zaXRpb25zKTsKIAot
ICAgICAgICBncmlkLmluc2VydCgqYXV0b0dyaWRJdGVtLCAqZW1wdHlHcmlkQXJlYSk7CisgICAg
ICAgICplbXB0eUdyaWRBcmVhID0gZ3JpZC5pbnNlcnQoKmF1dG9HcmlkSXRlbSwgKmVtcHR5R3Jp
ZEFyZWEpOwogCiAgICAgICAgIGlmICghaXNHcmlkQXV0b0Zsb3dEZW5zZSkKICAgICAgICAgICAg
IG1pbm9yQXhpc0N1cnNvcnMuc2V0KG1ham9yQXhpc0luaXRpYWxQb3NpdGlvbiwgaXNGb3JDb2x1
bW5zID8gZW1wdHlHcmlkQXJlYS0+cm93cy5zdGFydExpbmUoKSA6IGVtcHR5R3JpZEFyZWEtPmNv
bHVtbnMuc3RhcnRMaW5lKCkpOwpAQCAtMTYxMCwyMyArMTYxNSwyNSBAQCBMYXlvdXRVbml0IFJl
bmRlckdyaWQ6OnJlc29sdmVBdXRvRW5kR3JpZFBvc2l0aW9uKEdyaWRUcmFja1NpemluZ0RpcmVj
dGlvbiBkaXJlYwogICAgIHJldHVybiBjbGllbnRMb2dpY2FsV2lkdGgoKTsKIH0KIAorYm9vbCBS
ZW5kZXJHcmlkOjppc1N1YmdyaWQoR3JpZFRyYWNrU2l6aW5nRGlyZWN0aW9uIGRpcmVjdGlvbikg
Y29uc3QKK3sKKyAgICBpZiAoaXNPdXRPZkZsb3dQb3NpdGlvbmVkKCkgfHwgaXNFeGNsdWRlZEZy
b21Ob3JtYWxMYXlvdXQoKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIGlmICgoZGlyZWN0
aW9uID09IEZvckNvbHVtbnMpID8gIXN0eWxlKCkuZ3JpZFN1YmdyaWRDb2x1bW5zKCkgOiAhc3R5
bGUoKS5ncmlkU3ViZ3JpZFJvd3MoKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIHJldHVy
biBpczxSZW5kZXJHcmlkPihwYXJlbnQoKSk7Cit9CisKIExheW91dFVuaXQgUmVuZGVyR3JpZDo6
Z3JpZEFyZWFCcmVhZHRoRm9yT3V0T2ZGbG93Q2hpbGQoY29uc3QgUmVuZGVyQm94JiBjaGlsZCwg
R3JpZFRyYWNrU2l6aW5nRGlyZWN0aW9uIGRpcmVjdGlvbikKIHsKICAgICBBU1NFUlQoY2hpbGQu
aXNPdXRPZkZsb3dQb3NpdGlvbmVkKCkpOwogICAgIGJvb2wgaXNSb3dBeGlzID0gZGlyZWN0aW9u
ID09IEZvckNvbHVtbnM7Ci0gICAgR3JpZFNwYW4gc3BhbiA9IEdyaWRQb3NpdGlvbnNSZXNvbHZl
cjo6cmVzb2x2ZUdyaWRQb3NpdGlvbnNGcm9tU3R5bGUoc3R5bGUoKSwgY2hpbGQsIGRpcmVjdGlv
biwgYXV0b1JlcGVhdENvdW50Rm9yRGlyZWN0aW9uKGRpcmVjdGlvbikpOwotICAgIGlmIChzcGFu
LmlzSW5kZWZpbml0ZSgpKQotICAgICAgICByZXR1cm4gaXNSb3dBeGlzID8gY2xpZW50TG9naWNh
bFdpZHRoKCkgOiBjbGllbnRMb2dpY2FsSGVpZ2h0KCk7Ci0KLSAgICB1bnNpZ25lZCBleHBsaWNp
dFN0YXJ0ID0gbV9ncmlkLmV4cGxpY2l0R3JpZFN0YXJ0KGRpcmVjdGlvbik7Ci0gICAgaW50IHN0
YXJ0TGluZSA9IHNwYW4udW50cmFuc2xhdGVkU3RhcnRMaW5lKCkgKyBleHBsaWNpdFN0YXJ0Owot
ICAgIGludCBlbmRMaW5lID0gc3Bhbi51bnRyYW5zbGF0ZWRFbmRMaW5lKCkgKyBleHBsaWNpdFN0
YXJ0OwogICAgIGludCBsYXN0TGluZSA9IG51bVRyYWNrcyhkaXJlY3Rpb24sIG1fZ3JpZCk7Ci0g
ICAgR3JpZFBvc2l0aW9uIHN0YXJ0UG9zaXRpb24gPSBkaXJlY3Rpb24gPT0gRm9yQ29sdW1ucyA/
IGNoaWxkLnN0eWxlKCkuZ3JpZEl0ZW1Db2x1bW5TdGFydCgpIDogY2hpbGQuc3R5bGUoKS5ncmlk
SXRlbVJvd1N0YXJ0KCk7Ci0gICAgR3JpZFBvc2l0aW9uIGVuZFBvc2l0aW9uID0gZGlyZWN0aW9u
ID09IEZvckNvbHVtbnMgPyBjaGlsZC5zdHlsZSgpLmdyaWRJdGVtQ29sdW1uRW5kKCkgOiBjaGls
ZC5zdHlsZSgpLmdyaWRJdGVtUm93RW5kKCk7CiAKLSAgICBib29sIHN0YXJ0SXNBdXRvID0gc3Rh
cnRQb3NpdGlvbi5pc0F1dG8oKSB8fCBzdGFydExpbmUgPCAwIHx8IHN0YXJ0TGluZSA+IGxhc3RM
aW5lOwotICAgIGJvb2wgZW5kSXNBdXRvID0gZW5kUG9zaXRpb24uaXNBdXRvKCkgfHwgZW5kTGlu
ZSA8IDAgfHwgZW5kTGluZSA+IGxhc3RMaW5lOworICAgIGludCBzdGFydExpbmUsIGVuZExpbmU7
CisgICAgYm9vbCBzdGFydElzQXV0bywgZW5kSXNBdXRvOworICAgIGlmICghY29tcHV0ZUdyaWRQ
b3NpdGlvbnNGb3JPdXRPZkZsb3dDaGlsZChjaGlsZCwgZGlyZWN0aW9uLCBzdGFydExpbmUsIHN0
YXJ0SXNBdXRvLCBlbmRMaW5lLCBlbmRJc0F1dG8pKQorICAgICAgICByZXR1cm4gaXNSb3dBeGlz
ID8gY2xpZW50TG9naWNhbFdpZHRoKCkgOiBjbGllbnRMb2dpY2FsSGVpZ2h0KCk7CiAKICAgICBp
ZiAoc3RhcnRJc0F1dG8gJiYgZW5kSXNBdXRvKQogICAgICAgICByZXR1cm4gaXNSb3dBeGlzID8g
Y2xpZW50TG9naWNhbFdpZHRoKCkgOiBjbGllbnRMb2dpY2FsSGVpZ2h0KCk7CkBAIC0xOTIwLDcg
KzE5MjcsNyBAQCB1bnNpZ25lZCBSZW5kZXJHcmlkOjpudW1UcmFja3MoR3JpZFRyYWNrU2l6aW5n
RGlyZWN0aW9uIGRpcmVjdGlvbiwgY29uc3QgR3JpZCYgZwogICAgICAgICByZXR1cm4gZ3JpZC5u
dW1UcmFja3MoRm9yUm93cyk7CiAKICAgICAvLyBGSVhNRTogVGhpcyBzdGlsbCByZXF1aXJlcyBr
bm93bGVkZ2UgYWJvdXQgbV9ncmlkIGludGVybmFscy4KLSAgICByZXR1cm4gZ3JpZC5udW1UcmFj
a3MoRm9yUm93cykgPyBncmlkLm51bVRyYWNrcyhGb3JDb2x1bW5zKSA6IEdyaWRQb3NpdGlvbnNS
ZXNvbHZlcjo6ZXhwbGljaXRHcmlkQ29sdW1uQ291bnQoc3R5bGUoKSwgZ3JpZC5hdXRvUmVwZWF0
VHJhY2tzKEZvckNvbHVtbnMpKTsKKyAgICByZXR1cm4gZ3JpZC5udW1UcmFja3MoRm9yUm93cykg
PyBncmlkLm51bVRyYWNrcyhGb3JDb2x1bW5zKSA6IEdyaWRQb3NpdGlvbnNSZXNvbHZlcjo6ZXhw
bGljaXRHcmlkQ29sdW1uQ291bnQoKnRoaXMpOwogfQogCiB2b2lkIFJlbmRlckdyaWQ6OnBhaW50
Q2hpbGRyZW4oUGFpbnRJbmZvJiBwYWludEluZm8sIGNvbnN0IExheW91dFBvaW50JiBwYWludE9m
ZnNldCwgUGFpbnRJbmZvJiBmb3JDaGlsZCwgYm9vbCB1c2VQcmludFJlY3QpCkBAIC0xOTc3LDQg
KzE5ODQsNjIgQEAgYm9vbCBSZW5kZXJHcmlkOjpoYXNBdXRvU2l6ZUluUm93QXhpcyhjb25zdCBS
ZW5kZXJCb3gmIGNoaWxkKSBjb25zdAogICAgIHJldHVybiBpc0hvcml6b250YWxXcml0aW5nTW9k
ZSgpID8gY2hpbGQuc3R5bGUoKS53aWR0aCgpLmlzQXV0bygpIDogY2hpbGQuc3R5bGUoKS5oZWln
aHQoKS5pc0F1dG8oKTsKIH0KIAorYm9vbCBSZW5kZXJHcmlkOjpjb21wdXRlR3JpZFBvc2l0aW9u
c0Zvck91dE9mRmxvd0NoaWxkKGNvbnN0IFJlbmRlckJveCYgY2hpbGQsIEdyaWRUcmFja1Npemlu
Z0RpcmVjdGlvbiBkaXJlY3Rpb24sIGludCYgc3RhcnRMaW5lLCBib29sJiBzdGFydElzQXV0bywg
aW50JiBlbmRMaW5lLCBib29sJiBlbmRJc0F1dG8pIGNvbnN0Cit7CisgICAgQVNTRVJUKGNoaWxk
LmlzT3V0T2ZGbG93UG9zaXRpb25lZCgpKTsKKyAgICBpbnQgbGFzdExpbmUgPSBudW1UcmFja3Mo
ZGlyZWN0aW9uLCBtX2dyaWQpOworICAgIEdyaWRTcGFuIHNwYW4gPSBHcmlkUG9zaXRpb25zUmVz
b2x2ZXI6OnJlc29sdmVHcmlkUG9zaXRpb25zRnJvbVN0eWxlKGNoaWxkLCBkaXJlY3Rpb24pOwor
ICAgIGlmIChzcGFuLmlzSW5kZWZpbml0ZSgpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAg
ICB1bnNpZ25lZCBleHBsaWNpdFN0YXJ0ID0gbV9ncmlkLmV4cGxpY2l0R3JpZFN0YXJ0KGRpcmVj
dGlvbik7CisgICAgc3RhcnRMaW5lID0gc3Bhbi51bnRyYW5zbGF0ZWRTdGFydExpbmUoKSArIGV4
cGxpY2l0U3RhcnQ7CisgICAgZW5kTGluZSA9IHNwYW4udW50cmFuc2xhdGVkRW5kTGluZSgpICsg
ZXhwbGljaXRTdGFydDsKKworICAgIEdyaWRQb3NpdGlvbiBzdGFydFBvc2l0aW9uID0gZGlyZWN0
aW9uID09IEZvckNvbHVtbnMgPyBjaGlsZC5zdHlsZSgpLmdyaWRJdGVtQ29sdW1uU3RhcnQoKSA6
IGNoaWxkLnN0eWxlKCkuZ3JpZEl0ZW1Sb3dTdGFydCgpOworICAgIEdyaWRQb3NpdGlvbiBlbmRQ
b3NpdGlvbiA9IGRpcmVjdGlvbiA9PSBGb3JDb2x1bW5zID8gY2hpbGQuc3R5bGUoKS5ncmlkSXRl
bUNvbHVtbkVuZCgpIDogY2hpbGQuc3R5bGUoKS5ncmlkSXRlbVJvd0VuZCgpOworCisgICAgc3Rh
cnRJc0F1dG8gPSBzdGFydFBvc2l0aW9uLmlzQXV0bygpIHx8IHN0YXJ0TGluZSA8IDAgfHwgc3Rh
cnRMaW5lID4gbGFzdExpbmU7CisgICAgZW5kSXNBdXRvID0gZW5kUG9zaXRpb24uaXNBdXRvKCkg
fHwgZW5kTGluZSA8IDAgfHwgZW5kTGluZSA+IGxhc3RMaW5lOworICAgIHJldHVybiB0cnVlOwor
fQorCitHcmlkU3BhbiBSZW5kZXJHcmlkOjpncmlkU3BhbkZvck91dE9mRmxvd0NoaWxkKGNvbnN0
IFJlbmRlckJveCYgY2hpbGQsIEdyaWRUcmFja1NpemluZ0RpcmVjdGlvbiBkaXJlY3Rpb24pIGNv
bnN0Cit7CisgICAgaW50IGxhc3RMaW5lID0gbnVtVHJhY2tzKGRpcmVjdGlvbiwgbV9ncmlkKTsK
KyAgICBpbnQgc3RhcnRMaW5lLCBlbmRMaW5lOworICAgIGJvb2wgc3RhcnRJc0F1dG8sIGVuZElz
QXV0bzsKKyAgICBpZiAoIWNvbXB1dGVHcmlkUG9zaXRpb25zRm9yT3V0T2ZGbG93Q2hpbGQoY2hp
bGQsIGRpcmVjdGlvbiwgc3RhcnRMaW5lLCBzdGFydElzQXV0bywgZW5kTGluZSwgZW5kSXNBdXRv
KSkKKyAgICAgICAgcmV0dXJuIEdyaWRTcGFuOjp0cmFuc2xhdGVkRGVmaW5pdGVHcmlkU3Bhbigw
LCBsYXN0TGluZSk7CisgICAgcmV0dXJuIEdyaWRTcGFuOjp0cmFuc2xhdGVkRGVmaW5pdGVHcmlk
U3BhbihzdGFydElzQXV0byA/IDAgOiBzdGFydExpbmUsIGVuZElzQXV0byA/IGxhc3RMaW5lIDog
ZW5kTGluZSk7Cit9CisKK0dyaWRTcGFuIFJlbmRlckdyaWQ6OmdyaWRTcGFuRm9yQ2hpbGQoY29u
c3QgUmVuZGVyQm94JiBjaGlsZCwgR3JpZFRyYWNrU2l6aW5nRGlyZWN0aW9uIGRpcmVjdGlvbikg
Y29uc3QKK3sKKyAgICBBU1NFUlQoaXM8UmVuZGVyR3JpZD4oY2hpbGQucGFyZW50KCkpKTsKKwor
ICAgIFJlbmRlckdyaWQqIHJlbmRlckdyaWQgPSBkb3duY2FzdDxSZW5kZXJHcmlkPihjaGlsZC5w
YXJlbnQoKSk7CisgICAgLy8gfGRpcmVjdGlvbnwgaXMgc3BlY2lmaWVkIHJlbGF0aXZlIHRvIHRo
aXMgZ3JpZCwgc3dpdGNoIGl0IGlmIHxjaGlsZHwncyBkaXJlY3QgcGFyZW50IGdyaWQKKyAgICAv
LyBpcyB1c2luZyBhIGRpZmZlcmVudCB3cml0aW5nIG1vZGUuCisgICAgZGlyZWN0aW9uID0gR3Jp
ZExheW91dEZ1bmN0aW9uczo6Zmxvd0F3YXJlRGlyZWN0aW9uRm9yQ2hpbGQoKnRoaXMsICpyZW5k
ZXJHcmlkLCBkaXJlY3Rpb24pOworICAgIEdyaWRTcGFuIHNwYW4gPSBjaGlsZC5pc091dE9mRmxv
d1Bvc2l0aW9uZWQoKSA/IHJlbmRlckdyaWQtPmdyaWRTcGFuRm9yT3V0T2ZGbG93Q2hpbGQoY2hp
bGQsIGRpcmVjdGlvbikgOiByZW5kZXJHcmlkLT5jdXJyZW50R3JpZCgpLmdyaWRJdGVtU3Bhbihj
aGlsZCwgZGlyZWN0aW9uKTsKKworICAgIHdoaWxlIChyZW5kZXJHcmlkICE9IHRoaXMpIHsKKyAg
ICAgICAgQVNTRVJUKGlzPFJlbmRlckdyaWQ+KHJlbmRlckdyaWQtPnBhcmVudCgpKSk7CisgICAg
ICAgIFJlbmRlckdyaWQqIHBhcmVudCA9IGRvd25jYXN0PFJlbmRlckdyaWQ+KHJlbmRlckdyaWQt
PnBhcmVudCgpKTsKKworICAgICAgICBib29sIGlzU3ViZ3JpZCA9IHJlbmRlckdyaWQtPmlzU3Vi
Z3JpZChkaXJlY3Rpb24pOworCisgICAgICAgIGRpcmVjdGlvbiA9IEdyaWRMYXlvdXRGdW5jdGlv
bnM6OmZsb3dBd2FyZURpcmVjdGlvbkZvckNoaWxkKCpwYXJlbnQsICpyZW5kZXJHcmlkLCBkaXJl
Y3Rpb24pOworCisgICAgICAgIEdyaWRTcGFuIHBhcmVudFNwYW4gPSByZW5kZXJHcmlkLT5pc091
dE9mRmxvd1Bvc2l0aW9uZWQoKSA/IHBhcmVudC0+Z3JpZFNwYW5Gb3JPdXRPZkZsb3dDaGlsZCgq
cmVuZGVyR3JpZCwgZGlyZWN0aW9uKSA6ICBwYXJlbnQtPmN1cnJlbnRHcmlkKCkuZ3JpZEl0ZW1T
cGFuKCpyZW5kZXJHcmlkLCBkaXJlY3Rpb24pOworICAgICAgICBpZiAoaXNTdWJncmlkKQorICAg
ICAgICAgICAgc3Bhbi50cmFuc2xhdGVUbyhwYXJlbnRTcGFuLCBHcmlkTGF5b3V0RnVuY3Rpb25z
Ojppc1N1YmdyaWRSZXZlcnNlZERpcmVjdGlvbigqcGFyZW50LCBkaXJlY3Rpb24sICpyZW5kZXJH
cmlkKSk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHNwYW4gPSBwYXJlbnRTcGFuOworICAg
ICAgICByZW5kZXJHcmlkID0gcGFyZW50OworICAgIH0KKyAgICByZXR1cm4gc3BhbjsKK30KKwog
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckdyaWQuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJHcmlkLmgK
aW5kZXggZTIzMGIxM2RhOGEyLi5mMmE1NDNjZTI3ODcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJHcmlkLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckdyaWQuaApAQCAtODIsNiArODIsMzAgQEAgcHVibGljOgogCiAgICAgU3R5bGVDb250
ZW50QWxpZ25tZW50RGF0YSBjb250ZW50QWxpZ25tZW50KEdyaWRUcmFja1NpemluZ0RpcmVjdGlv
bikgY29uc3Q7CiAKKyAgICAvLyBDb21wdXRlcyB0aGUgc3BhbiByZWxhdGl2ZSB0byB0aGlzIFJl
bmRlckdyaWQsIGV2ZW4gaWYgdGhlIFJlbmRlckJveCBpcyBhIGNoaWxkCisgICAgLy8gb2YgYSBk
ZXNjZW5kYW50IHN1YmdyaWQuCisgICAgR3JpZFNwYW4gZ3JpZFNwYW5Gb3JDaGlsZChjb25zdCBS
ZW5kZXJCb3gmLCBHcmlkVHJhY2tTaXppbmdEaXJlY3Rpb24pIGNvbnN0OworCisgICAgYm9vbCBp
c1N1YmdyaWQoR3JpZFRyYWNrU2l6aW5nRGlyZWN0aW9uKSBjb25zdDsKKyAgICBib29sIGlzU3Vi
Z3JpZFJvd3MoKSBjb25zdAorICAgIHsKKyAgICAgICAgcmV0dXJuIGlzU3ViZ3JpZChGb3JSb3dz
KTsKKyAgICB9CisgICAgYm9vbCBpc1N1YmdyaWRDb2x1bW5zKCkgY29uc3QKKyAgICB7CisgICAg
ICAgIHJldHVybiBpc1N1YmdyaWQoRm9yQ29sdW1ucyk7CisgICAgfQorCisgICAgY29uc3QgR3Jp
ZCYgY3VycmVudEdyaWQoKSBjb25zdAorICAgIHsKKyAgICAgICAgcmV0dXJuIG1fZ3JpZDsKKyAg
ICB9CisKKyAgICB1bnNpZ25lZCBudW1UcmFja3MoR3JpZFRyYWNrU2l6aW5nRGlyZWN0aW9uIGRp
cmVjdGlvbikgY29uc3QKKyAgICB7CisgICAgICAgIHJldHVybiBudW1UcmFja3MoZGlyZWN0aW9u
LCBtX2dyaWQpOworICAgIH0KKwogcHJpdmF0ZToKICAgICBJdGVtUG9zaXRpb24gc2VsZkFsaWdu
bWVudE5vcm1hbEJlaGF2aW9yKGNvbnN0IFJlbmRlckJveCogY2hpbGQgPSBudWxscHRyKSBjb25z
dCBvdmVycmlkZQogICAgIHsKQEAgLTE1MCw4ICsxNzQsNiBAQCBwcml2YXRlOgogICAgIHZvaWQg
c2V0TG9naWNhbFBvc2l0aW9uRm9yQ2hpbGQoUmVuZGVyQm94JikgY29uc3Q7CiAgICAgdm9pZCBz
ZXRMb2dpY2FsT2Zmc2V0Rm9yQ2hpbGQoUmVuZGVyQm94JiwgR3JpZFRyYWNrU2l6aW5nRGlyZWN0
aW9uKSBjb25zdDsKICAgICBMYXlvdXRVbml0IGxvZ2ljYWxPZmZzZXRGb3JDaGlsZChjb25zdCBS
ZW5kZXJCb3gmLCBHcmlkVHJhY2tTaXppbmdEaXJlY3Rpb24pIGNvbnN0OwotICAgIEdyaWRBcmVh
IGNhY2hlZEdyaWRBcmVhKGNvbnN0IFJlbmRlckJveCYpIGNvbnN0OwotICAgIEdyaWRTcGFuIGNh
Y2hlZEdyaWRTcGFuKGNvbnN0IFJlbmRlckJveCYsIEdyaWRUcmFja1NpemluZ0RpcmVjdGlvbikg
Y29uc3Q7CiAKICAgICBMYXlvdXRVbml0IGdyaWRBcmVhQnJlYWR0aEZvckNoaWxkSW5jbHVkaW5n
QWxpZ25tZW50T2Zmc2V0cyhjb25zdCBSZW5kZXJCb3gmLCBHcmlkVHJhY2tTaXppbmdEaXJlY3Rp
b24pIGNvbnN0OwogCkBAIC0xOTMsNiArMjE1LDkgQEAgcHJpdmF0ZToKIAogICAgIFZlY3RvcjxS
ZW5kZXJCb3gqPiBjb21wdXRlQXNwZWN0UmF0aW9EZXBlbmRlbnRBbmRCYXNlbGluZUl0ZW1zKCk7
CiAKKyAgICBHcmlkU3BhbiBncmlkU3BhbkZvck91dE9mRmxvd0NoaWxkKGNvbnN0IFJlbmRlckJv
eCYsIEdyaWRUcmFja1NpemluZ0RpcmVjdGlvbikgY29uc3Q7CisgICAgYm9vbCBjb21wdXRlR3Jp
ZFBvc2l0aW9uc0Zvck91dE9mRmxvd0NoaWxkKGNvbnN0IFJlbmRlckJveCYsIEdyaWRUcmFja1Np
emluZ0RpcmVjdGlvbiwgaW50JiwgYm9vbCYsIGludCYsIGJvb2wmKSBjb25zdDsKKwogICAgIEdy
aWQgbV9ncmlkOwogCiAgICAgR3JpZFRyYWNrU2l6aW5nQWxnb3JpdGhtIG1fdHJhY2tTaXppbmdB
bGdvcml0aG07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvR3Jp
ZEFyZWEuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9HcmlkQXJlYS5oCmluZGV4
IGI3ZWJkMWQ5NjFkZS4uYmQyY2ZmY2ExZThmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvc3R5bGUvR3JpZEFyZWEuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
c3R5bGUvR3JpZEFyZWEuaApAQCAtNjUsNyArNjUsNyBAQCBwdWJsaWM6CiAKICAgICB1bnNpZ25l
ZCBpbnRlZ2VyU3BhbigpIGNvbnN0CiAgICAgewotICAgICAgICBBU1NFUlQoaXNUcmFuc2xhdGVk
RGVmaW5pdGUoKSk7CisgICAgICAgIEFTU0VSVCghaXNJbmRlZmluaXRlKCkpOwogICAgICAgICBy
ZXR1cm4gbV9lbmRMaW5lIC0gbV9zdGFydExpbmU7CiAgICAgfQogCkBAIC0xNDEsNiArMTQxLDMx
IEBAIHB1YmxpYzoKICAgICAgICAgQVNTRVJUKG1fZW5kTGluZSA+IDApOwogICAgIH0KIAorICAg
IC8vIE1vdmVzIHRoaXMgc3BhbiB0byBiZSBpbiB0aGUgc2FtZSBjb29yZGluYXRlIHNwYWNlIGFz
IHxwYXJlbnR8LgorICAgIC8vIElmIHJldmVyc2UgaXMgc3BlY2lmaWVkLCB0aGVuIHN3YXBzIHRo
ZSBkaXJlY3Rpb24gdG8gaGFuZGxlIFJUTC9MVFIgY2hhbmdlcy4KKyAgICB2b2lkIHRyYW5zbGF0
ZVRvKGNvbnN0IEdyaWRTcGFuJiBwYXJlbnQsIGJvb2wgcmV2ZXJzZSkKKyAgICB7CisgICAgICAg
IEFTU0VSVChtX3R5cGUgPT0gVHJhbnNsYXRlZERlZmluaXRlKTsKKyAgICAgICAgQVNTRVJUKHBh
cmVudC5tX3R5cGUgPT0gVHJhbnNsYXRlZERlZmluaXRlKTsKKyAgICAgICAgaWYgKHJldmVyc2Up
IHsKKyAgICAgICAgICAgIGludCBzdGFydCA9IG1fc3RhcnRMaW5lOworICAgICAgICAgICAgbV9z
dGFydExpbmUgPSBwYXJlbnQuZW5kTGluZSgpIC0gbV9lbmRMaW5lOworICAgICAgICAgICAgbV9l
bmRMaW5lID0gcGFyZW50LmVuZExpbmUoKSAtIHN0YXJ0OworICAgICAgICB9IGVsc2UgeworICAg
ICAgICAgICAgbV9zdGFydExpbmUgKz0gcGFyZW50Lm1fc3RhcnRMaW5lOworICAgICAgICAgICAg
bV9lbmRMaW5lICs9IHBhcmVudC5tX3N0YXJ0TGluZTsKKyAgICAgICAgfQorICAgIH0KKworICAg
IHZvaWQgY2xhbXAoaW50IG1heCkKKyAgICB7CisgICAgICAgIEFTU0VSVChtX3R5cGUgIT0gSW5k
ZWZpbml0ZSk7CisgICAgICAgIG1fc3RhcnRMaW5lID0gc3RkOjptYXgobV9zdGFydExpbmUsIDAp
OworICAgICAgICBtX2VuZExpbmUgPSBzdGQ6Om1heChzdGQ6Om1pbihtX2VuZExpbmUsIG1heCks
IDEpOworICAgICAgICBpZiAobV9zdGFydExpbmUgPj0gbV9lbmRMaW5lKQorICAgICAgICAgICAg
bV9zdGFydExpbmUgPSBtX2VuZExpbmUgLSAxOworICAgIH0KKwogcHJpdmF0ZToKIAogICAgIGVu
dW0gR3JpZFNwYW5UeXBlIHtVbnRyYW5zbGF0ZWREZWZpbml0ZSwgVHJhbnNsYXRlZERlZmluaXRl
LCBJbmRlZmluaXRlfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHls
ZS9HcmlkUG9zaXRpb25zUmVzb2x2ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0
eWxlL0dyaWRQb3NpdGlvbnNSZXNvbHZlci5jcHAKaW5kZXggMzNjNzAzYzVmMDZmLi41OTY1YTdm
NTJjYmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9HcmlkUG9z
aXRpb25zUmVzb2x2ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9H
cmlkUG9zaXRpb25zUmVzb2x2ZXIuY3BwCkBAIC0zMyw2ICszMyw3IEBACiAKICNpbmNsdWRlICJH
cmlkQXJlYS5oIgogI2luY2x1ZGUgIlJlbmRlckJveC5oIgorI2luY2x1ZGUgIlJlbmRlckdyaWQu
aCIKICNpbmNsdWRlIDxjc3RkbGliPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC03OCw2ICs3
OSwxMSBAQCBOYW1lZExpbmVDb2xsZWN0aW9uOjpOYW1lZExpbmVDb2xsZWN0aW9uKGNvbnN0IFJl
bmRlclN0eWxlJiBncmlkQ29udGFpbmVyU3R5bGUsCiAgICAgbV9pbnNlcnRpb25Qb2ludCA9IGlz
Um93QXhpcyA/IGdyaWRDb250YWluZXJTdHlsZS5ncmlkQXV0b1JlcGVhdENvbHVtbnNJbnNlcnRp
b25Qb2ludCgpIDogZ3JpZENvbnRhaW5lclN0eWxlLmdyaWRBdXRvUmVwZWF0Um93c0luc2VydGlv
blBvaW50KCk7CiAKICAgICBtX2F1dG9SZXBlYXRUcmFja0xpc3RMZW5ndGggPSBpc1Jvd0F4aXMg
PyBncmlkQ29udGFpbmVyU3R5bGUuZ3JpZEF1dG9SZXBlYXRDb2x1bW5zKCkuc2l6ZSgpIDogZ3Jp
ZENvbnRhaW5lclN0eWxlLmdyaWRBdXRvUmVwZWF0Um93cygpLnNpemUoKTsKKyAgICAvLyBGSVhN
RTogSGFuZGxlIHN1YmdyaWQgYXV0byByZXBlYXQgdHJhY2tzCisgICAgaWYgKGlzUm93QXhpcyA/
IGdyaWRDb250YWluZXJTdHlsZS5ncmlkU3ViZ3JpZENvbHVtbnMoKSA6IGdyaWRDb250YWluZXJT
dHlsZS5ncmlkU3ViZ3JpZFJvd3MoKSkgeworICAgICAgICBtX2F1dG9SZXBlYXRUcmFja0xpc3RM
ZW5ndGggPSAwOworICAgICAgICBtX2F1dG9SZXBlYXROYW1lZExpbmVzSW5kZXhlcyA9IG51bGxw
dHI7CisgICAgfQogfQogCiBib29sIE5hbWVkTGluZUNvbGxlY3Rpb246Omhhc0V4cGxpY2l0TmFt
ZWRMaW5lcygpIGNvbnN0CkBAIC0xNTIsNiArMTU4LDE2IEBAIHVuc2lnbmVkIE5hbWVkTGluZUNv
bGxlY3Rpb246OmZpcnN0UG9zaXRpb24oKSBjb25zdAogICAgIHJldHVybiBzdGQ6Om1pbihmaXJz
dEV4cGxpY2l0UG9zaXRpb24oKSwgbV9pbXBsaWNpdE5hbWVkTGluZXNJbmRleGVzLT5hdChmaXJz
dExpbmUpKTsKIH0KIAorLy8gaHR0cHM6Ly9kcmFmdHMuY3Nzd2cub3JnL2Nzcy1ncmlkLTIvI2lu
ZGVmaW5pdGUtZ3JpZC1zcGFuCitzdGF0aWMgYm9vbCBpc0luZGVmaW5pdGVTcGFuKEdyaWRQb3Np
dGlvbiYgaW5pdGlhbFBvc2l0aW9uLCBHcmlkUG9zaXRpb24mIGZpbmFsUG9zaXRpb24pCit7Cisg
ICAgaWYgKGluaXRpYWxQb3NpdGlvbi5pc0F1dG8oKSkKKyAgICAgICAgcmV0dXJuICFmaW5hbFBv
c2l0aW9uLmlzU3BhbigpOworICAgIGlmIChmaW5hbFBvc2l0aW9uLmlzQXV0bygpKQorICAgICAg
ICByZXR1cm4gIWluaXRpYWxQb3NpdGlvbi5pc1NwYW4oKTsKKyAgICByZXR1cm4gZmFsc2U7Cit9
CisKIHN0YXRpYyB2b2lkIGFkanVzdEdyaWRQb3NpdGlvbnNGcm9tU3R5bGUoY29uc3QgUmVuZGVy
Qm94JiBncmlkSXRlbSwgR3JpZFRyYWNrU2l6aW5nRGlyZWN0aW9uIGRpcmVjdGlvbiwgR3JpZFBv
c2l0aW9uJiBpbml0aWFsUG9zaXRpb24sIEdyaWRQb3NpdGlvbiYgZmluYWxQb3NpdGlvbikKIHsK
ICAgICBib29sIGlzRm9yQ29sdW1ucyA9IGRpcmVjdGlvbiA9PSBGb3JDb2x1bW5zOwpAQCAtMTY4
LDIxICsxODQsNDQgQEAgc3RhdGljIHZvaWQgYWRqdXN0R3JpZFBvc2l0aW9uc0Zyb21TdHlsZShj
b25zdCBSZW5kZXJCb3gmIGdyaWRJdGVtLCBHcmlkVHJhY2tTaXoKICAgICAgICAgZmluYWxQb3Np
dGlvbi5zZXRTcGFuUG9zaXRpb24oMSwgU3RyaW5nKCkpOwogICAgIGlmIChmaW5hbFBvc2l0aW9u
LmlzQXV0bygpICYmIGluaXRpYWxQb3NpdGlvbi5pc1NwYW4oKSAmJiAhaW5pdGlhbFBvc2l0aW9u
Lm5hbWVkR3JpZExpbmUoKS5pc051bGwoKSkKICAgICAgICAgaW5pdGlhbFBvc2l0aW9uLnNldFNw
YW5Qb3NpdGlvbigxLCBTdHJpbmcoKSk7CisKKyAgICBpZiAoaXNJbmRlZmluaXRlU3Bhbihpbml0
aWFsUG9zaXRpb24sIGZpbmFsUG9zaXRpb24pICYmIGlzPFJlbmRlckdyaWQ+KGdyaWRJdGVtKSAm
JiBkb3duY2FzdDxSZW5kZXJHcmlkPihncmlkSXRlbSkuaXNTdWJncmlkKGRpcmVjdGlvbikpIHsK
KyAgICAgICAgLy8gSW5kZWZpbml0ZSBzcGFuIGZvciBhbiBpdGVtIHRoYXQgaXMgc3ViZ3JpZGRl
ZCBpbiB0aGlzIGF4aXMuCisgICAgICAgIGludCBsaW5lQ291bnQgPSAoaXNGb3JDb2x1bW5zID8g
Z3JpZEl0ZW0uc3R5bGUoKS5vcmRlcmVkTmFtZWRHcmlkQ29sdW1uTGluZXMoKSA6IGdyaWRJdGVt
LnN0eWxlKCkub3JkZXJlZE5hbWVkR3JpZFJvd0xpbmVzKCkpLnNpemUoKTsKKworICAgICAgICBp
ZiAoaW5pdGlhbFBvc2l0aW9uLmlzQXV0bygpKSB7CisgICAgICAgICAgICAvLyBTZXQgaW5pdGlh
bCBwb3NpdGlvbiB0byBzcGFuIDxsaW5lIG5hbWVzIC0gMT4KKyAgICAgICAgICAgIGluaXRpYWxQ
b3NpdGlvbi5zZXRTcGFuUG9zaXRpb24oc3RkOjptYXgoMSwgbGluZUNvdW50IC0gMSksICIiKTsK
KyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIC8vIFNldCBmaW5hbCBwb3NpdGlvbiB0byBz
cGFuIDxsaW5lIG5hbWVzIC0gMT4KKyAgICAgICAgICAgIGZpbmFsUG9zaXRpb24uc2V0U3BhblBv
c2l0aW9uKHN0ZDo6bWF4KDEsIGxpbmVDb3VudCAtIDEpLCAiIik7CisgICAgICAgIH0KKyAgICB9
CiB9CiAKLXVuc2lnbmVkIEdyaWRQb3NpdGlvbnNSZXNvbHZlcjo6ZXhwbGljaXRHcmlkQ29sdW1u
Q291bnQoY29uc3QgUmVuZGVyU3R5bGUmIGdyaWRDb250YWluZXJTdHlsZSwgdW5zaWduZWQgYXV0
b1JlcGVhdFRyYWNrc0NvdW50KQordW5zaWduZWQgR3JpZFBvc2l0aW9uc1Jlc29sdmVyOjpleHBs
aWNpdEdyaWRDb2x1bW5Db3VudChjb25zdCBSZW5kZXJHcmlkJiBncmlkQ29udGFpbmVyKQogewot
ICAgIHJldHVybiBzdGQ6Om1pbjx1bnNpZ25lZD4oc3RkOjptYXgoZ3JpZENvbnRhaW5lclN0eWxl
LmdyaWRDb2x1bW5zKCkuc2l6ZSgpICsgYXV0b1JlcGVhdFRyYWNrc0NvdW50LCBncmlkQ29udGFp
bmVyU3R5bGUubmFtZWRHcmlkQXJlYUNvbHVtbkNvdW50KCkpLCBHcmlkUG9zaXRpb246Om1heCgp
KTsKKyAgICBpZiAoZ3JpZENvbnRhaW5lci5pc1N1YmdyaWRDb2x1bW5zKCkpIHsKKyAgICAgICAg
Y29uc3QgUmVuZGVyR3JpZCYgcGFyZW50ID0gKmRvd25jYXN0PFJlbmRlckdyaWQ+KGdyaWRDb250
YWluZXIucGFyZW50KCkpOworICAgICAgICBHcmlkVHJhY2tTaXppbmdEaXJlY3Rpb24gZGlyZWN0
aW9uID0gR3JpZExheW91dEZ1bmN0aW9uczo6Zmxvd0F3YXJlRGlyZWN0aW9uRm9yQ2hpbGQocGFy
ZW50LCBncmlkQ29udGFpbmVyLCBGb3JDb2x1bW5zKTsKKyAgICAgICAgcmV0dXJuIHBhcmVudC5n
cmlkU3BhbkZvckNoaWxkKGdyaWRDb250YWluZXIsIGRpcmVjdGlvbikuaW50ZWdlclNwYW4oKTsK
KyAgICB9CisgICAgcmV0dXJuIHN0ZDo6bWluPHVuc2lnbmVkPihzdGQ6Om1heChncmlkQ29udGFp
bmVyLnN0eWxlKCkuZ3JpZENvbHVtbnMoKS5zaXplKCkgKyBncmlkQ29udGFpbmVyLmF1dG9SZXBl
YXRDb3VudEZvckRpcmVjdGlvbihGb3JDb2x1bW5zKSwgZ3JpZENvbnRhaW5lci5zdHlsZSgpLm5h
bWVkR3JpZEFyZWFDb2x1bW5Db3VudCgpKSwgR3JpZFBvc2l0aW9uOjptYXgoKSk7CiB9CiAKLXVu
c2lnbmVkIEdyaWRQb3NpdGlvbnNSZXNvbHZlcjo6ZXhwbGljaXRHcmlkUm93Q291bnQoY29uc3Qg
UmVuZGVyU3R5bGUmIGdyaWRDb250YWluZXJTdHlsZSwgdW5zaWduZWQgYXV0b1JlcGVhdFRyYWNr
c0NvdW50KQordW5zaWduZWQgR3JpZFBvc2l0aW9uc1Jlc29sdmVyOjpleHBsaWNpdEdyaWRSb3dD
b3VudChjb25zdCBSZW5kZXJHcmlkJiBncmlkQ29udGFpbmVyKQogewotICAgIHJldHVybiBzdGQ6
Om1pbjx1bnNpZ25lZD4oc3RkOjptYXgoZ3JpZENvbnRhaW5lclN0eWxlLmdyaWRSb3dzKCkuc2l6
ZSgpICsgYXV0b1JlcGVhdFRyYWNrc0NvdW50LCBncmlkQ29udGFpbmVyU3R5bGUubmFtZWRHcmlk
QXJlYVJvd0NvdW50KCkpLCBHcmlkUG9zaXRpb246Om1heCgpKTsKKyAgICBpZiAoZ3JpZENvbnRh
aW5lci5pc1N1YmdyaWRSb3dzKCkpIHsKKyAgICAgICAgY29uc3QgUmVuZGVyR3JpZCYgcGFyZW50
ID0gKmRvd25jYXN0PFJlbmRlckdyaWQ+KGdyaWRDb250YWluZXIucGFyZW50KCkpOworICAgICAg
ICBHcmlkVHJhY2tTaXppbmdEaXJlY3Rpb24gZGlyZWN0aW9uID0gR3JpZExheW91dEZ1bmN0aW9u
czo6Zmxvd0F3YXJlRGlyZWN0aW9uRm9yQ2hpbGQocGFyZW50LCBncmlkQ29udGFpbmVyLCBGb3JS
b3dzKTsKKyAgICAgICAgcmV0dXJuIHBhcmVudC5ncmlkU3BhbkZvckNoaWxkKGdyaWRDb250YWlu
ZXIsIGRpcmVjdGlvbikuaW50ZWdlclNwYW4oKTsKKyAgICB9CisgICAgcmV0dXJuIHN0ZDo6bWlu
PHVuc2lnbmVkPihzdGQ6Om1heChncmlkQ29udGFpbmVyLnN0eWxlKCkuZ3JpZFJvd3MoKS5zaXpl
KCkgKyBncmlkQ29udGFpbmVyLmF1dG9SZXBlYXRDb3VudEZvckRpcmVjdGlvbihGb3JSb3dzKSwg
Z3JpZENvbnRhaW5lci5zdHlsZSgpLm5hbWVkR3JpZEFyZWFSb3dDb3VudCgpKSwgR3JpZFBvc2l0
aW9uOjptYXgoKSk7CiB9CiAKLXN0YXRpYyB1bnNpZ25lZCBleHBsaWNpdEdyaWRTaXplRm9yU2lk
ZShjb25zdCBSZW5kZXJTdHlsZSYgZ3JpZENvbnRhaW5lclN0eWxlLCBHcmlkUG9zaXRpb25TaWRl
IHNpZGUsIHVuc2lnbmVkIGF1dG9SZXBlYXRUcmFja3NDb3VudCkKK3N0YXRpYyB1bnNpZ25lZCBl
eHBsaWNpdEdyaWRTaXplRm9yU2lkZShjb25zdCBSZW5kZXJHcmlkJiBncmlkQ29udGFpbmVyLCBH
cmlkUG9zaXRpb25TaWRlIHNpZGUpCiB7Ci0gICAgcmV0dXJuIGlzQ29sdW1uU2lkZShzaWRlKSA/
IEdyaWRQb3NpdGlvbnNSZXNvbHZlcjo6ZXhwbGljaXRHcmlkQ29sdW1uQ291bnQoZ3JpZENvbnRh
aW5lclN0eWxlLCBhdXRvUmVwZWF0VHJhY2tzQ291bnQpIDogR3JpZFBvc2l0aW9uc1Jlc29sdmVy
OjpleHBsaWNpdEdyaWRSb3dDb3VudChncmlkQ29udGFpbmVyU3R5bGUsIGF1dG9SZXBlYXRUcmFj
a3NDb3VudCk7CisgICAgcmV0dXJuIGlzQ29sdW1uU2lkZShzaWRlKSA/IEdyaWRQb3NpdGlvbnNS
ZXNvbHZlcjo6ZXhwbGljaXRHcmlkQ29sdW1uQ291bnQoZ3JpZENvbnRhaW5lcikgOiBHcmlkUG9z
aXRpb25zUmVzb2x2ZXI6OmV4cGxpY2l0R3JpZFJvd0NvdW50KGdyaWRDb250YWluZXIpOwogfQog
CiBzdGF0aWMgdW5zaWduZWQgbG9va0FoZWFkRm9yTmFtZWRHcmlkTGluZShpbnQgc3RhcnQsIHVu
c2lnbmVkIG51bWJlck9mTGluZXMsIHVuc2lnbmVkIGdyaWRMYXN0TGluZSwgTmFtZWRMaW5lQ29s
bGVjdGlvbiYgbGluZXNDb2xsZWN0aW9uKQpAQCAtMjI0LDEyICsyNjMsMTIgQEAgc3RhdGljIGlu
dCBsb29rQmFja0Zvck5hbWVkR3JpZExpbmUoaW50IGVuZCwgdW5zaWduZWQgbnVtYmVyT2ZMaW5l
cywgaW50IGdyaWRMYXMKICAgICByZXR1cm4gc3RhcnQgKyAxOwogfQogCi1zdGF0aWMgaW50IHJl
c29sdmVOYW1lZEdyaWRMaW5lUG9zaXRpb25Gcm9tU3R5bGUoY29uc3QgUmVuZGVyU3R5bGUmIGdy
aWRDb250YWluZXJTdHlsZSwgY29uc3QgR3JpZFBvc2l0aW9uJiBwb3NpdGlvbiwgR3JpZFBvc2l0
aW9uU2lkZSBzaWRlLCB1bnNpZ25lZCBhdXRvUmVwZWF0VHJhY2tzQ291bnQpCitzdGF0aWMgaW50
IHJlc29sdmVOYW1lZEdyaWRMaW5lUG9zaXRpb25Gcm9tU3R5bGUoY29uc3QgUmVuZGVyR3JpZCYg
Z3JpZENvbnRhaW5lciwgY29uc3QgR3JpZFBvc2l0aW9uJiBwb3NpdGlvbiwgR3JpZFBvc2l0aW9u
U2lkZSBzaWRlKQogewogICAgIEFTU0VSVCghcG9zaXRpb24ubmFtZWRHcmlkTGluZSgpLmlzTnVs
bCgpKTsKIAotICAgIHVuc2lnbmVkIGxhc3RMaW5lID0gZXhwbGljaXRHcmlkU2l6ZUZvclNpZGUo
Z3JpZENvbnRhaW5lclN0eWxlLCBzaWRlLCBhdXRvUmVwZWF0VHJhY2tzQ291bnQpOwotICAgIE5h
bWVkTGluZUNvbGxlY3Rpb24gbGluZXNDb2xsZWN0aW9uKGdyaWRDb250YWluZXJTdHlsZSwgcG9z
aXRpb24ubmFtZWRHcmlkTGluZSgpLCBkaXJlY3Rpb25Gcm9tU2lkZShzaWRlKSwgbGFzdExpbmUs
IGF1dG9SZXBlYXRUcmFja3NDb3VudCk7CisgICAgdW5zaWduZWQgbGFzdExpbmUgPSBleHBsaWNp
dEdyaWRTaXplRm9yU2lkZShncmlkQ29udGFpbmVyLCBzaWRlKTsKKyAgICBOYW1lZExpbmVDb2xs
ZWN0aW9uIGxpbmVzQ29sbGVjdGlvbihncmlkQ29udGFpbmVyLnN0eWxlKCksIHBvc2l0aW9uLm5h
bWVkR3JpZExpbmUoKSwgZGlyZWN0aW9uRnJvbVNpZGUoc2lkZSksIGxhc3RMaW5lLCBncmlkQ29u
dGFpbmVyLmF1dG9SZXBlYXRDb3VudEZvckRpcmVjdGlvbihkaXJlY3Rpb25Gcm9tU2lkZShzaWRl
KSkpOwogCiAgICAgaWYgKHBvc2l0aW9uLmlzUG9zaXRpdmUoKSkKICAgICAgICAgcmV0dXJuIGxv
b2tBaGVhZEZvck5hbWVkR3JpZExpbmUoMCwgc3RkOjphYnMocG9zaXRpb24uaW50ZWdlclBvc2l0
aW9uKCkpLCBsYXN0TGluZSwgbGluZXNDb2xsZWN0aW9uKTsKQEAgLTI1MCwxOSArMjg5LDE5IEBA
IHN0YXRpYyBHcmlkU3BhbiBkZWZpbml0ZUdyaWRTcGFuV2l0aE5hbWVkTGluZVNwYW5BZ2FpbnN0
T3Bwb3NpdGUoaW50IG9wcG9zaXRlTGluCiAgICAgcmV0dXJuIEdyaWRTcGFuOjp1bnRyYW5zbGF0
ZWREZWZpbml0ZUdyaWRTcGFuKHN0YXJ0LCBlbmQpOwogfQogCi1zdGF0aWMgR3JpZFNwYW4gcmVz
b2x2ZU5hbWVkR3JpZExpbmVQb3NpdGlvbkFnYWluc3RPcHBvc2l0ZVBvc2l0aW9uKGNvbnN0IFJl
bmRlclN0eWxlJiBncmlkQ29udGFpbmVyU3R5bGUsIGludCBvcHBvc2l0ZUxpbmUsIGNvbnN0IEdy
aWRQb3NpdGlvbiYgcG9zaXRpb24sIEdyaWRQb3NpdGlvblNpZGUgc2lkZSwgdW5zaWduZWQgYXV0
b1JlcGVhdFRyYWNrc0NvdW50KQorc3RhdGljIEdyaWRTcGFuIHJlc29sdmVOYW1lZEdyaWRMaW5l
UG9zaXRpb25BZ2FpbnN0T3Bwb3NpdGVQb3NpdGlvbihjb25zdCBSZW5kZXJHcmlkJiBncmlkQ29u
dGFpbmVyLCBpbnQgb3Bwb3NpdGVMaW5lLCBjb25zdCBHcmlkUG9zaXRpb24mIHBvc2l0aW9uLCBH
cmlkUG9zaXRpb25TaWRlIHNpZGUpCiB7CiAgICAgQVNTRVJUKHBvc2l0aW9uLmlzU3BhbigpKTsK
ICAgICBBU1NFUlQoIXBvc2l0aW9uLm5hbWVkR3JpZExpbmUoKS5pc051bGwoKSk7CiAgICAgLy8g
TmVnYXRpdmUgcG9zaXRpb25zIGFyZSBub3QgYWxsb3dlZCBwZXIgdGhlIHNwZWNpZmljYXRpb24g
YW5kIHNob3VsZCBoYXZlIGJlZW4gaGFuZGxlZCBkdXJpbmcgcGFyc2luZy4KICAgICBBU1NFUlQo
cG9zaXRpb24uc3BhblBvc2l0aW9uKCkgPiAwKTsKIAotICAgIHVuc2lnbmVkIGxhc3RMaW5lID0g
ZXhwbGljaXRHcmlkU2l6ZUZvclNpZGUoZ3JpZENvbnRhaW5lclN0eWxlLCBzaWRlLCBhdXRvUmVw
ZWF0VHJhY2tzQ291bnQpOwotICAgIE5hbWVkTGluZUNvbGxlY3Rpb24gbGluZXNDb2xsZWN0aW9u
KGdyaWRDb250YWluZXJTdHlsZSwgcG9zaXRpb24ubmFtZWRHcmlkTGluZSgpLCBkaXJlY3Rpb25G
cm9tU2lkZShzaWRlKSwgbGFzdExpbmUsIGF1dG9SZXBlYXRUcmFja3NDb3VudCk7CisgICAgdW5z
aWduZWQgbGFzdExpbmUgPSBleHBsaWNpdEdyaWRTaXplRm9yU2lkZShncmlkQ29udGFpbmVyLCBz
aWRlKTsKKyAgICBOYW1lZExpbmVDb2xsZWN0aW9uIGxpbmVzQ29sbGVjdGlvbihncmlkQ29udGFp
bmVyLnN0eWxlKCksIHBvc2l0aW9uLm5hbWVkR3JpZExpbmUoKSwgZGlyZWN0aW9uRnJvbVNpZGUo
c2lkZSksIGxhc3RMaW5lLCBncmlkQ29udGFpbmVyLmF1dG9SZXBlYXRDb3VudEZvckRpcmVjdGlv
bihkaXJlY3Rpb25Gcm9tU2lkZShzaWRlKSkpOwogICAgIHJldHVybiBkZWZpbml0ZUdyaWRTcGFu
V2l0aE5hbWVkTGluZVNwYW5BZ2FpbnN0T3Bwb3NpdGUob3Bwb3NpdGVMaW5lLCBwb3NpdGlvbiwg
c2lkZSwgbGFzdExpbmUsIGxpbmVzQ29sbGVjdGlvbik7CiB9CiAKLXN0YXRpYyBHcmlkU3BhbiBy
ZXNvbHZlR3JpZFBvc2l0aW9uQWdhaW5zdE9wcG9zaXRlUG9zaXRpb24oY29uc3QgUmVuZGVyU3R5
bGUmIGdyaWRDb250YWluZXJTdHlsZSwgaW50IG9wcG9zaXRlTGluZSwgY29uc3QgR3JpZFBvc2l0
aW9uJiBwb3NpdGlvbiwgR3JpZFBvc2l0aW9uU2lkZSBzaWRlLCB1bnNpZ25lZCBhdXRvUmVwZWF0
VHJhY2tzQ291bnQpCitzdGF0aWMgR3JpZFNwYW4gcmVzb2x2ZUdyaWRQb3NpdGlvbkFnYWluc3RP
cHBvc2l0ZVBvc2l0aW9uKGNvbnN0IFJlbmRlckdyaWQmIGdyaWRDb250YWluZXIsIGludCBvcHBv
c2l0ZUxpbmUsIGNvbnN0IEdyaWRQb3NpdGlvbiYgcG9zaXRpb24sIEdyaWRQb3NpdGlvblNpZGUg
c2lkZSkKIHsKICAgICBpZiAocG9zaXRpb24uaXNBdXRvKCkpIHsKICAgICAgICAgaWYgKGlzU3Rh
cnRTaWRlKHNpZGUpKQpAQCAtMjc1LDcgKzMxNCw3IEBAIHN0YXRpYyBHcmlkU3BhbiByZXNvbHZl
R3JpZFBvc2l0aW9uQWdhaW5zdE9wcG9zaXRlUG9zaXRpb24oY29uc3QgUmVuZGVyU3R5bGUmIGdy
CiAKICAgICBpZiAoIXBvc2l0aW9uLm5hbWVkR3JpZExpbmUoKS5pc051bGwoKSkgewogICAgICAg
ICAvLyBzcGFuIDIgJ2MnIC0+IHdlIG5lZWQgdG8gZmluZCB0aGUgYXBwcm9wcmlhdGUgZ3JpZCBs
aW5lIGJlZm9yZSAvIGFmdGVyIG91ciBvcHBvc2l0ZSBwb3NpdGlvbi4KLSAgICAgICAgcmV0dXJu
IHJlc29sdmVOYW1lZEdyaWRMaW5lUG9zaXRpb25BZ2FpbnN0T3Bwb3NpdGVQb3NpdGlvbihncmlk
Q29udGFpbmVyU3R5bGUsIG9wcG9zaXRlTGluZSwgcG9zaXRpb24sIHNpZGUsIGF1dG9SZXBlYXRU
cmFja3NDb3VudCk7CisgICAgICAgIHJldHVybiByZXNvbHZlTmFtZWRHcmlkTGluZVBvc2l0aW9u
QWdhaW5zdE9wcG9zaXRlUG9zaXRpb24oZ3JpZENvbnRhaW5lciwgb3Bwb3NpdGVMaW5lLCBwb3Np
dGlvbiwgc2lkZSk7CiAgICAgfQogCiAgICAgLy8gJ3NwYW4gMScgaXMgY29udGFpbmVkIGluc2lk
ZSBhIHNpbmdsZSBncmlkIHRyYWNrIHJlZ2FyZGxlc3Mgb2YgdGhlIGRpcmVjdGlvbi4KQEAgLTMx
NSwyMSArMzU0LDIxIEBAIHVuc2lnbmVkIEdyaWRQb3NpdGlvbnNSZXNvbHZlcjo6c3BhblNpemVG
b3JBdXRvUGxhY2VkSXRlbShjb25zdCBSZW5kZXJCb3gmIGdyaWRJCiAgICAgcmV0dXJuIHBvc2l0
aW9uLnNwYW5Qb3NpdGlvbigpOwogfQogCi1zdGF0aWMgaW50IHJlc29sdmVHcmlkUG9zaXRpb25G
cm9tU3R5bGUoY29uc3QgUmVuZGVyU3R5bGUmIGdyaWRDb250YWluZXJTdHlsZSwgY29uc3QgR3Jp
ZFBvc2l0aW9uJiBwb3NpdGlvbiwgR3JpZFBvc2l0aW9uU2lkZSBzaWRlLCB1bnNpZ25lZCBhdXRv
UmVwZWF0VHJhY2tzQ291bnQpCitzdGF0aWMgaW50IHJlc29sdmVHcmlkUG9zaXRpb25Gcm9tU3R5
bGUoY29uc3QgUmVuZGVyR3JpZCYgZ3JpZENvbnRhaW5lciwgY29uc3QgR3JpZFBvc2l0aW9uJiBw
b3NpdGlvbiwgR3JpZFBvc2l0aW9uU2lkZSBzaWRlKQogewogICAgIHN3aXRjaCAocG9zaXRpb24u
dHlwZSgpKSB7CiAgICAgY2FzZSBFeHBsaWNpdFBvc2l0aW9uOiB7CiAgICAgICAgIEFTU0VSVChw
b3NpdGlvbi5pbnRlZ2VyUG9zaXRpb24oKSk7CiAKICAgICAgICAgaWYgKCFwb3NpdGlvbi5uYW1l
ZEdyaWRMaW5lKCkuaXNOdWxsKCkpCi0gICAgICAgICAgICByZXR1cm4gcmVzb2x2ZU5hbWVkR3Jp
ZExpbmVQb3NpdGlvbkZyb21TdHlsZShncmlkQ29udGFpbmVyU3R5bGUsIHBvc2l0aW9uLCBzaWRl
LCBhdXRvUmVwZWF0VHJhY2tzQ291bnQpOworICAgICAgICAgICAgcmV0dXJuIHJlc29sdmVOYW1l
ZEdyaWRMaW5lUG9zaXRpb25Gcm9tU3R5bGUoZ3JpZENvbnRhaW5lciwgcG9zaXRpb24sIHNpZGUp
OwogCiAgICAgICAgIC8vIEhhbmRsZSA8aW50ZWdlcj4gZXhwbGljaXQgcG9zaXRpb24uCiAgICAg
ICAgIGlmIChwb3NpdGlvbi5pc1Bvc2l0aXZlKCkpCiAgICAgICAgICAgICByZXR1cm4gcG9zaXRp
b24uaW50ZWdlclBvc2l0aW9uKCkgLSAxOwogCiAgICAgICAgIHVuc2lnbmVkIHJlc29sdmVkUG9z
aXRpb24gPSBzdGQ6OmFicyhwb3NpdGlvbi5pbnRlZ2VyUG9zaXRpb24oKSkgLSAxOwotICAgICAg
ICBjb25zdCB1bnNpZ25lZCBlbmRPZlRyYWNrID0gZXhwbGljaXRHcmlkU2l6ZUZvclNpZGUoZ3Jp
ZENvbnRhaW5lclN0eWxlLCBzaWRlLCBhdXRvUmVwZWF0VHJhY2tzQ291bnQpOworICAgICAgICBj
b25zdCB1bnNpZ25lZCBlbmRPZlRyYWNrID0gZXhwbGljaXRHcmlkU2l6ZUZvclNpZGUoZ3JpZENv
bnRhaW5lciwgc2lkZSk7CiAKICAgICAgICAgcmV0dXJuIGVuZE9mVHJhY2sgLSByZXNvbHZlZFBv
c2l0aW9uOwogICAgIH0KQEAgLTM0MSwxNCArMzgwLDE0IEBAIHN0YXRpYyBpbnQgcmVzb2x2ZUdy
aWRQb3NpdGlvbkZyb21TdHlsZShjb25zdCBSZW5kZXJTdHlsZSYgZ3JpZENvbnRhaW5lclN0eWxl
LCBjCiAgICAgICAgIFN0cmluZyBuYW1lZEdyaWRMaW5lID0gcG9zaXRpb24ubmFtZWRHcmlkTGlu
ZSgpOwogICAgICAgICBBU1NFUlQoIXBvc2l0aW9uLm5hbWVkR3JpZExpbmUoKS5pc051bGwoKSk7
CiAKLSAgICAgICAgdW5zaWduZWQgbGFzdExpbmUgPSBleHBsaWNpdEdyaWRTaXplRm9yU2lkZShn
cmlkQ29udGFpbmVyU3R5bGUsIHNpZGUsIGF1dG9SZXBlYXRUcmFja3NDb3VudCk7Ci0gICAgICAg
IE5hbWVkTGluZUNvbGxlY3Rpb24gaW1wbGljaXRMaW5lcyhncmlkQ29udGFpbmVyU3R5bGUsIGlt
cGxpY2l0TmFtZWRHcmlkTGluZUZvclNpZGUobmFtZWRHcmlkTGluZSwgc2lkZSksIGRpcmVjdGlv
bkZyb21TaWRlKHNpZGUpLCBsYXN0TGluZSwgYXV0b1JlcGVhdFRyYWNrc0NvdW50KTsKKyAgICAg
ICAgdW5zaWduZWQgbGFzdExpbmUgPSBleHBsaWNpdEdyaWRTaXplRm9yU2lkZShncmlkQ29udGFp
bmVyLCBzaWRlKTsKKyAgICAgICAgTmFtZWRMaW5lQ29sbGVjdGlvbiBpbXBsaWNpdExpbmVzKGdy
aWRDb250YWluZXIuc3R5bGUoKSwgaW1wbGljaXROYW1lZEdyaWRMaW5lRm9yU2lkZShuYW1lZEdy
aWRMaW5lLCBzaWRlKSwgZGlyZWN0aW9uRnJvbVNpZGUoc2lkZSksIGxhc3RMaW5lLCBncmlkQ29u
dGFpbmVyLmF1dG9SZXBlYXRDb3VudEZvckRpcmVjdGlvbihkaXJlY3Rpb25Gcm9tU2lkZShzaWRl
KSkpOwogICAgICAgICBpZiAoaW1wbGljaXRMaW5lcy5oYXNOYW1lZExpbmVzKCkpCiAgICAgICAg
ICAgICByZXR1cm4gaW1wbGljaXRMaW5lcy5maXJzdFBvc2l0aW9uKCk7CiAKICAgICAgICAgLy8g
T3RoZXJ3aXNlLCBpZiB0aGVyZSBpcyBhIG5hbWVkIGxpbmUgd2l0aCB0aGUgc3BlY2lmaWVkIG5h
bWUsIGNvbnRyaWJ1dGVzIHRoZSBmaXJzdCBzdWNoIGxpbmUgdG8gdGhlIGdyaWQKICAgICAgICAg
Ly8gaXRlbSdzIHBsYWNlbWVudC4KLSAgICAgICAgTmFtZWRMaW5lQ29sbGVjdGlvbiBleHBsaWNp
dExpbmVzKGdyaWRDb250YWluZXJTdHlsZSwgbmFtZWRHcmlkTGluZSwgZGlyZWN0aW9uRnJvbVNp
ZGUoc2lkZSksIGxhc3RMaW5lLCBhdXRvUmVwZWF0VHJhY2tzQ291bnQpOworICAgICAgICBOYW1l
ZExpbmVDb2xsZWN0aW9uIGV4cGxpY2l0TGluZXMoZ3JpZENvbnRhaW5lci5zdHlsZSgpLCBuYW1l
ZEdyaWRMaW5lLCBkaXJlY3Rpb25Gcm9tU2lkZShzaWRlKSwgbGFzdExpbmUsIGdyaWRDb250YWlu
ZXIuYXV0b1JlcGVhdENvdW50Rm9yRGlyZWN0aW9uKGRpcmVjdGlvbkZyb21TaWRlKHNpZGUpKSk7
CiAgICAgICAgIGlmIChleHBsaWNpdExpbmVzLmhhc05hbWVkTGluZXMoKSkKICAgICAgICAgICAg
IHJldHVybiBleHBsaWNpdExpbmVzLmZpcnN0UG9zaXRpb24oKTsKIApAQCAtMzY1LDggKzQwNCwx
MSBAQCBzdGF0aWMgaW50IHJlc29sdmVHcmlkUG9zaXRpb25Gcm9tU3R5bGUoY29uc3QgUmVuZGVy
U3R5bGUmIGdyaWRDb250YWluZXJTdHlsZSwgYwogICAgIHJldHVybiAwOwogfQogCi1HcmlkU3Bh
biBHcmlkUG9zaXRpb25zUmVzb2x2ZXI6OnJlc29sdmVHcmlkUG9zaXRpb25zRnJvbVN0eWxlKGNv
bnN0IFJlbmRlclN0eWxlJiBncmlkQ29udGFpbmVyU3R5bGUsIGNvbnN0IFJlbmRlckJveCYgZ3Jp
ZEl0ZW0sIEdyaWRUcmFja1NpemluZ0RpcmVjdGlvbiBkaXJlY3Rpb24sIHVuc2lnbmVkIGF1dG9S
ZXBlYXRUcmFja3NDb3VudCkKK0dyaWRTcGFuIEdyaWRQb3NpdGlvbnNSZXNvbHZlcjo6cmVzb2x2
ZUdyaWRQb3NpdGlvbnNGcm9tU3R5bGUoY29uc3QgUmVuZGVyQm94JiBncmlkSXRlbSwgR3JpZFRy
YWNrU2l6aW5nRGlyZWN0aW9uIGRpcmVjdGlvbikKIHsKKyAgICBhdXRvKiBncmlkQ29udGFpbmVy
ID0gZG93bmNhc3Q8UmVuZGVyR3JpZD4oZ3JpZEl0ZW0uY29udGFpbmluZ0Jsb2NrKCkpOworICAg
IEFTU0VSVChncmlkQ29udGFpbmVyKTsKKwogICAgIEdyaWRQb3NpdGlvbiBpbml0aWFsUG9zaXRp
b24sIGZpbmFsUG9zaXRpb247CiAgICAgYWRqdXN0R3JpZFBvc2l0aW9uc0Zyb21TdHlsZShncmlk
SXRlbSwgZGlyZWN0aW9uLCBpbml0aWFsUG9zaXRpb24sIGZpbmFsUG9zaXRpb24pOwogCkBAIC0z
NzksMTggKzQyMSwxOCBAQCBHcmlkU3BhbiBHcmlkUG9zaXRpb25zUmVzb2x2ZXI6OnJlc29sdmVH
cmlkUG9zaXRpb25zRnJvbVN0eWxlKGNvbnN0IFJlbmRlclN0eWxlJgogCiAgICAgaWYgKGluaXRp
YWxQb3NpdGlvbi5zaG91bGRCZVJlc29sdmVkQWdhaW5zdE9wcG9zaXRlUG9zaXRpb24oKSkgewog
ICAgICAgICAvLyBJbmZlciB0aGUgcG9zaXRpb24gZnJvbSB0aGUgZmluYWwgcG9zaXRpb24gKCdh
dXRvIC8gMScgb3IgJ3NwYW4gMiAvIDMnIGNhc2UpLgotICAgICAgICBhdXRvIGVuZExpbmUgPSBy
ZXNvbHZlR3JpZFBvc2l0aW9uRnJvbVN0eWxlKGdyaWRDb250YWluZXJTdHlsZSwgZmluYWxQb3Np
dGlvbiwgZmluYWxTaWRlLCBhdXRvUmVwZWF0VHJhY2tzQ291bnQpOwotICAgICAgICByZXR1cm4g
cmVzb2x2ZUdyaWRQb3NpdGlvbkFnYWluc3RPcHBvc2l0ZVBvc2l0aW9uKGdyaWRDb250YWluZXJT
dHlsZSwgZW5kTGluZSwgaW5pdGlhbFBvc2l0aW9uLCBpbml0aWFsU2lkZSwgYXV0b1JlcGVhdFRy
YWNrc0NvdW50KTsKKyAgICAgICAgYXV0byBlbmRMaW5lID0gcmVzb2x2ZUdyaWRQb3NpdGlvbkZy
b21TdHlsZSgqZ3JpZENvbnRhaW5lciwgZmluYWxQb3NpdGlvbiwgZmluYWxTaWRlKTsKKyAgICAg
ICAgcmV0dXJuIHJlc29sdmVHcmlkUG9zaXRpb25BZ2FpbnN0T3Bwb3NpdGVQb3NpdGlvbigqZ3Jp
ZENvbnRhaW5lciwgZW5kTGluZSwgaW5pdGlhbFBvc2l0aW9uLCBpbml0aWFsU2lkZSk7CiAgICAg
fQogCiAgICAgaWYgKGZpbmFsUG9zaXRpb24uc2hvdWxkQmVSZXNvbHZlZEFnYWluc3RPcHBvc2l0
ZVBvc2l0aW9uKCkpIHsKICAgICAgICAgLy8gSW5mZXIgb3VyIHBvc2l0aW9uIGZyb20gdGhlIGlu
aXRpYWwgcG9zaXRpb24gKCcxIC8gYXV0bycgb3IgJzMgLyBzcGFuIDInIGNhc2UpLgotICAgICAg
ICBhdXRvIHN0YXJ0TGluZSA9IHJlc29sdmVHcmlkUG9zaXRpb25Gcm9tU3R5bGUoZ3JpZENvbnRh
aW5lclN0eWxlLCBpbml0aWFsUG9zaXRpb24sIGluaXRpYWxTaWRlLCBhdXRvUmVwZWF0VHJhY2tz
Q291bnQpOwotICAgICAgICByZXR1cm4gcmVzb2x2ZUdyaWRQb3NpdGlvbkFnYWluc3RPcHBvc2l0
ZVBvc2l0aW9uKGdyaWRDb250YWluZXJTdHlsZSwgc3RhcnRMaW5lLCBmaW5hbFBvc2l0aW9uLCBm
aW5hbFNpZGUsIGF1dG9SZXBlYXRUcmFja3NDb3VudCk7CisgICAgICAgIGF1dG8gc3RhcnRMaW5l
ID0gcmVzb2x2ZUdyaWRQb3NpdGlvbkZyb21TdHlsZSgqZ3JpZENvbnRhaW5lciwgaW5pdGlhbFBv
c2l0aW9uLCBpbml0aWFsU2lkZSk7CisgICAgICAgIHJldHVybiByZXNvbHZlR3JpZFBvc2l0aW9u
QWdhaW5zdE9wcG9zaXRlUG9zaXRpb24oKmdyaWRDb250YWluZXIsIHN0YXJ0TGluZSwgZmluYWxQ
b3NpdGlvbiwgZmluYWxTaWRlKTsKICAgICB9CiAKLSAgICBpbnQgc3RhcnRMaW5lID0gcmVzb2x2
ZUdyaWRQb3NpdGlvbkZyb21TdHlsZShncmlkQ29udGFpbmVyU3R5bGUsIGluaXRpYWxQb3NpdGlv
biwgaW5pdGlhbFNpZGUsIGF1dG9SZXBlYXRUcmFja3NDb3VudCk7Ci0gICAgaW50IGVuZExpbmUg
PSByZXNvbHZlR3JpZFBvc2l0aW9uRnJvbVN0eWxlKGdyaWRDb250YWluZXJTdHlsZSwgZmluYWxQ
b3NpdGlvbiwgZmluYWxTaWRlLCBhdXRvUmVwZWF0VHJhY2tzQ291bnQpOworICAgIGludCBzdGFy
dExpbmUgPSByZXNvbHZlR3JpZFBvc2l0aW9uRnJvbVN0eWxlKCpncmlkQ29udGFpbmVyLCBpbml0
aWFsUG9zaXRpb24sIGluaXRpYWxTaWRlKTsKKyAgICBpbnQgZW5kTGluZSA9IHJlc29sdmVHcmlk
UG9zaXRpb25Gcm9tU3R5bGUoKmdyaWRDb250YWluZXIsIGZpbmFsUG9zaXRpb24sIGZpbmFsU2lk
ZSk7CiAKICAgICBpZiAoc3RhcnRMaW5lID4gZW5kTGluZSkKICAgICAgICAgc3RkOjpzd2FwKHN0
YXJ0TGluZSwgZW5kTGluZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
c3R5bGUvR3JpZFBvc2l0aW9uc1Jlc29sdmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
c3R5bGUvR3JpZFBvc2l0aW9uc1Jlc29sdmVyLmgKaW5kZXggNjIzYjYyYzZjMjQxLi43MjQxOTU3
NzM1NDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9HcmlkUG9z
aXRpb25zUmVzb2x2ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvR3Jp
ZFBvc2l0aW9uc1Jlc29sdmVyLmgKQEAgLTM2LDYgKzM2LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUg
ewogCiBjbGFzcyBHcmlkU3BhbjsKIGNsYXNzIFJlbmRlckJveDsKK2NsYXNzIFJlbmRlckdyaWQ7
CiBjbGFzcyBSZW5kZXJTdHlsZTsKIAogZW51bSBHcmlkVHJhY2tTaXppbmdEaXJlY3Rpb24gewpA
QCAtNzMsOSArNzQsOSBAQCBwdWJsaWM6CiAgICAgc3RhdGljIEdyaWRQb3NpdGlvblNpZGUgaW5p
dGlhbFBvc2l0aW9uU2lkZShHcmlkVHJhY2tTaXppbmdEaXJlY3Rpb24pOwogICAgIHN0YXRpYyBH
cmlkUG9zaXRpb25TaWRlIGZpbmFsUG9zaXRpb25TaWRlKEdyaWRUcmFja1NpemluZ0RpcmVjdGlv
bik7CiAgICAgc3RhdGljIHVuc2lnbmVkIHNwYW5TaXplRm9yQXV0b1BsYWNlZEl0ZW0oY29uc3Qg
UmVuZGVyQm94JiwgR3JpZFRyYWNrU2l6aW5nRGlyZWN0aW9uKTsKLSAgICBzdGF0aWMgR3JpZFNw
YW4gcmVzb2x2ZUdyaWRQb3NpdGlvbnNGcm9tU3R5bGUoY29uc3QgUmVuZGVyU3R5bGUmLCBjb25z
dCBSZW5kZXJCb3gmLCBHcmlkVHJhY2tTaXppbmdEaXJlY3Rpb24sIHVuc2lnbmVkIGF1dG9SZXBl
YXRUcmFja3NDb3VudCk7Ci0gICAgc3RhdGljIHVuc2lnbmVkIGV4cGxpY2l0R3JpZENvbHVtbkNv
dW50KGNvbnN0IFJlbmRlclN0eWxlJiwgdW5zaWduZWQgYXV0b1JlcGVhdENvbHVtbnNDb3VudCk7
Ci0gICAgc3RhdGljIHVuc2lnbmVkIGV4cGxpY2l0R3JpZFJvd0NvdW50KGNvbnN0IFJlbmRlclN0
eWxlJiwgdW5zaWduZWQgYXV0b1JlcGVhdFJvd3NDb3VudCk7CisgICAgc3RhdGljIEdyaWRTcGFu
IHJlc29sdmVHcmlkUG9zaXRpb25zRnJvbVN0eWxlKGNvbnN0IFJlbmRlckJveCYsIEdyaWRUcmFj
a1NpemluZ0RpcmVjdGlvbik7CisgICAgc3RhdGljIHVuc2lnbmVkIGV4cGxpY2l0R3JpZENvbHVt
bkNvdW50KGNvbnN0IFJlbmRlckdyaWQmKTsKKyAgICBzdGF0aWMgdW5zaWduZWQgZXhwbGljaXRH
cmlkUm93Q291bnQoY29uc3QgUmVuZGVyR3JpZCYpOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>