<?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>102414</bug_id>
          
          <creation_ts>2012-11-15 11:23:32 -0800</creation_ts>
          <short_desc>[Texmap][CSS Shaders] Make the CustomFilterValidatedProgram maintain the platform compiled program</short_desc>
          <delta_ts>2012-11-16 07:39:55 -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>WebKit Qt</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>101801</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Alexandru Chiculita">achicu</reporter>
          <assigned_to name="Alexandru Chiculita">achicu</assigned_to>
          <cc>abarth</cc>
    
    <cc>abecsi</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>dino</cc>
    
    <cc>gtk-ews</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>jamesr</cc>
    
    <cc>kenneth</cc>
    
    <cc>menard</cc>
    
    <cc>noam</cc>
    
    <cc>rakuco</cc>
    
    <cc>tony</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>xan.lopez</cc>
    
    <cc>zeno</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>768337</commentid>
    <comment_count>0</comment_count>
    <who name="Alexandru Chiculita">achicu</who>
    <bug_when>2012-11-15 11:23:32 -0800</bug_when>
    <thetext>ValidatedCustomFilterOperation already contains a reference to a CustomFilterValidatedProgram which is cached and reused across multiple repaints and RenderLayers. It also has a mechanism to keep a reference to a platform compiled shader. We will reuse this to maintain the &quot;compiled shaders&quot; in the WK2 LayerTreeCoordinator.cpp.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>768358</commentid>
    <comment_count>1</comment_count>
      <attachid>174496</attachid>
    <who name="Alexandru Chiculita">achicu</who>
    <bug_when>2012-11-15 11:50:27 -0800</bug_when>
    <thetext>Created attachment 174496
Patch V1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>768414</commentid>
    <comment_count>2</comment_count>
      <attachid>174503</attachid>
    <who name="Alexandru Chiculita">achicu</who>
    <bug_when>2012-11-15 13:03:14 -0800</bug_when>
    <thetext>Created attachment 174503
Patch V2

Rebased.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>768438</commentid>
    <comment_count>3</comment_count>
      <attachid>174503</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2012-11-15 13:41:08 -0800</bug_when>
    <thetext>Comment on attachment 174503
Patch V2

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

&gt; Source/WebCore/WebCore.gyp/WebCore.gyp:118
&gt;        &apos;../platform/graphics/filters&apos;,
&gt; +      &apos;../platform/graphics/filters/texmap&apos;,
&gt;        &apos;../platform/graphics/filters/skia&apos;,

Google doesn&apos;t use texture mapper, why is this needed, seems wrong

&gt; Source/WebCore/WebCore.gypi:4955
&gt;              &apos;platform/graphics/efl/IntRectEfl.cpp&apos;,
&gt; +            &apos;platform/graphics/filters/texmap/CustomFilterValidatedProgramTextureMapper.cpp&apos;,
&gt; +            &apos;platform/graphics/filters/texmap/TextureMapperPlatformCompiledProgram.h&apos;,
&gt;              &apos;platform/graphics/filters/CustomFilterArrayParameter.h&apos;,
&gt;              &apos;platform/graphics/filters/CustomFilterConstants.h&apos;,

Same here</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>768443</commentid>
    <comment_count>4</comment_count>
    <who name="Alexandru Chiculita">achicu</who>
    <bug_when>2012-11-15 13:43:11 -0800</bug_when>
    <thetext>(In reply to comment #3)
&gt; (From update of attachment 174503 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=174503&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/WebCore.gyp/WebCore.gyp:118
&gt; &gt;        &apos;../platform/graphics/filters&apos;,
&gt; &gt; +      &apos;../platform/graphics/filters/texmap&apos;,
&gt; &gt;        &apos;../platform/graphics/filters/skia&apos;,
&gt; 
&gt; Google doesn&apos;t use texture mapper, why is this needed, seems wrong
&gt; 
&gt; &gt; Source/WebCore/WebCore.gypi:4955
&gt; &gt;              &apos;platform/graphics/efl/IntRectEfl.cpp&apos;,
&gt; &gt; +            &apos;platform/graphics/filters/texmap/CustomFilterValidatedProgramTextureMapper.cpp&apos;,
&gt; &gt; +            &apos;platform/graphics/filters/texmap/TextureMapperPlatformCompiledProgram.h&apos;,
&gt; &gt;              &apos;platform/graphics/filters/CustomFilterArrayParameter.h&apos;,
&gt; &gt;              &apos;platform/graphics/filters/CustomFilterConstants.h&apos;,
&gt; 
&gt; Same here

Sorry about that. I&apos;ve searched for TextureMapper related files and found them in the GYP project file too. I thought that there may be projects based on that. I will remove them.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>768444</commentid>
    <comment_count>5</comment_count>
    <who name="Alexandru Chiculita">achicu</who>
    <bug_when>2012-11-15 13:44:41 -0800</bug_when>
    <thetext>(In reply to comment #4)

For example in 
http://svn.webkit.org/repository/webkit/trunk/Source/WebCore/WebCore.gypi

search for platform/graphics/texmap/</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>768445</commentid>
    <comment_count>6</comment_count>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2012-11-15 13:45:23 -0800</bug_when>
    <thetext>I suggest you git blame that line, it might be a mistake</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>768446</commentid>
    <comment_count>7</comment_count>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2012-11-15 13:48:24 -0800</bug_when>
    <thetext>b372bde3 Source/WebCore/WebCore.gypi (rniwa@webkit.org               2011-07-22 21:31:04 +0000 3986)             &apos;platform/graphics/texmap/GraphicsLayerTextureMapper.cpp&apos;,
b372bde3 Source/WebCore/WebCore.gypi (rniwa@webkit.org               2011-07-22 21:31:04 +0000 3987)             &apos;platform/graphics/texmap/GraphicsLayerTextureMapper.h&apos;,
ecf8da49 Source/WebCore/WebCore.gypi (noam.rosenthal@nokia.com       2012-01-09 11:54:06 +0000 3988)             &apos;platform/graphics/texmap/TextureMapper.cpp&apos;,
b372bde3 Source/WebCore/WebCore.gypi (rniwa@webkit.org               2011-07-22 21:31:04 +0000 3989)             &apos;platform/graphics/texmap/TextureMapper.h&apos;,
1571338c Source/WebCore/WebCore.gypi (noam.rosenthal@nokia.com       2012-02-14 12:53:30 +0000 3990)             &apos;platform/graphics/texmap/TextureMapperBackingStore.cpp&apos;,
1571338c Source/WebCore/WebCore.gypi (noam.rosenthal@nokia.com       2012-02-14 12:53:30 +0000 3991)             &apos;platform/graphics/texmap/TextureMapperBackingStore.h&apos;,
5ee5803c Source/WebCore/WebCore.gypi (yael.aharon@nokia.com          2012-02-22 04:02:26 +0000 3992)             &apos;platform/graphics/texmap/TextureMapperGL.cpp&apos;,
5ee5803c Source/WebCore/WebCore.gypi (yael.aharon@nokia.com          2012-02-22 04:02:26 +0000 3993)             &apos;platform/graphics/texmap/TextureMapperGL.h&apos;,
1ddb153e Source/WebCore/WebCore.gypi (noam.rosenthal@nokia.com       2012-02-03 14:59:31 +0000 3994)             &apos;platform/graphics/texmap/TextureMapperImageBuffer.cpp&apos;,
1ddb153e Source/WebCore/WebCore.gypi (noam.rosenthal@nokia.com       2012-02-03 14:59:31 +0000 3995)             &apos;platform/graphics/texmap/TextureMapperImageBuffer.h&apos;,
a3e29880 Source/WebCore/WebCore.gypi (noam.rosenthal@nokia.com       2012-02-15 08:26:30 +0000 3996)             &apos;platform/graphics/texmap/TextureMapperLayer.cpp&apos;,
a3e29880 Source/WebCore/WebCore.gypi (noam.rosenthal@nokia.com       2012-02-15 08:26:30 +0000 3997)             &apos;platform/graphics/texmap/TextureMapperLayer.h&apos;,
b372bde3 Source/WebCore/WebCore.gypi (rniwa@webkit.org               2011-07-22 21:31:04 +0000 3998)             &apos;platform/graphics/texmap/TextureMapperPlatformLayer.h&apos;,
5ee5803c Source/WebCore/WebCore.gypi (yael.aharon@nokia.com          2012-02-22 04:02:26 +0000 3999)             &apos;platform/graphics/texmap/TextureMapperShaderManager.cpp&apos;,
5ee5803c Source/WebCore/WebCore.gypi (yael.aharon@nokia.com          2012-02-22 04:02:26 +0000 4000)             &apos;platform/graphics/texmap/TextureMapperShaderManager.h&apos;,</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>768451</commentid>
    <comment_count>8</comment_count>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2012-11-15 13:50:33 -0800</bug_when>
    <thetext>
&gt; ecf8da49 Source/WebCore/WebCore.gypi (noam.rosenthal@nokia.com       2012-01-09 11:54:06 +0000 3988)             &apos;platform/graphics/texmap/TextureMapper.cpp&apos;,

Noam, I don&apos;t think these should be added to chrome right?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>768452</commentid>
    <comment_count>9</comment_count>
    <who name="Noam Rosenthal">noam</who>
    <bug_when>2012-11-15 13:51:49 -0800</bug_when>
    <thetext>(In reply to comment #8)
&gt; &gt; ecf8da49 Source/WebCore/WebCore.gypi (noam.rosenthal@nokia.com       2012-01-09 11:54:06 +0000 3988)             &apos;platform/graphics/texmap/TextureMapper.cpp&apos;,
&gt; 
&gt; Noam, I don&apos;t think these should be added to chrome right?
Probably not :) Let&apos;s remove it...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>768457</commentid>
    <comment_count>10</comment_count>
    <who name="Alexandru Chiculita">achicu</who>
    <bug_when>2012-11-15 13:56:48 -0800</bug_when>
    <thetext>(In reply to comment #9)
&gt; (In reply to comment #8)
&gt; &gt; &gt; ecf8da49 Source/WebCore/WebCore.gypi (noam.rosenthal@nokia.com       2012-01-09 11:54:06 +0000 3988)             &apos;platform/graphics/texmap/TextureMapper.cpp&apos;,
&gt; &gt; 
&gt; &gt; Noam, I don&apos;t think these should be added to chrome right?
&gt; Probably not :) Let&apos;s remove it...

Added a bug for that:
https://bugs.webkit.org/show_bug.cgi?id=102425</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>768461</commentid>
    <comment_count>11</comment_count>
      <attachid>174509</attachid>
    <who name="Alexandru Chiculita">achicu</who>
    <bug_when>2012-11-15 14:00:07 -0800</bug_when>
    <thetext>Created attachment 174509
Patch V3</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>768464</commentid>
    <comment_count>12</comment_count>
      <attachid>174509</attachid>
    <who name="Noam Rosenthal">noam</who>
    <bug_when>2012-11-15 14:04:17 -0800</bug_when>
    <thetext>Comment on attachment 174509
Patch V3

Looks like a step in the right direction. Can&apos;t find anything here that I would do different.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>768469</commentid>
    <comment_count>13</comment_count>
    <who name="Alexandru Chiculita">achicu</who>
    <bug_when>2012-11-15 14:06:01 -0800</bug_when>
    <thetext>(In reply to comment #12)
&gt; (From update of attachment 174509 [details])
&gt; Looks like a step in the right direction. Can&apos;t find anything here that I would do different.

Thanks, Noam!

Looking in the gypi project file I&apos;ve found lots of other unrelated files like for example the whole platform/graphics/qt/ is in there.

Do you know what&apos;s the policy?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>768489</commentid>
    <comment_count>14</comment_count>
    <who name="Tony Chang">tony</who>
    <bug_when>2012-11-15 14:23:46 -0800</bug_when>
    <thetext>(In reply to comment #13)
&gt; (In reply to comment #12)
&gt; &gt; (From update of attachment 174509 [details] [details])
&gt; &gt; Looks like a step in the right direction. Can&apos;t find anything here that I would do different.
&gt; 
&gt; Thanks, Noam!
&gt; 
&gt; Looking in the gypi project file I&apos;ve found lots of other unrelated files like for example the whole platform/graphics/qt/ is in there.
&gt; 
&gt; Do you know what&apos;s the policy?

Normally, we list every file and directory in the .gypi files.  In WebCore.gyp, we exclude files that aren&apos;t used:
http://trac.webkit.org/browser/trunk/Source/WebCore/WebCore.gyp/WebCore.gyp#L1612

You can see that texmap is already excluded so adding new files to WebCore.gypi is fine.

In theory, the purpose is to make things easy for people not working on Chromium.  You don&apos;t have to think about whether to add a file or not, you just add everything.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>768521</commentid>
    <comment_count>15</comment_count>
      <attachid>174509</attachid>
    <who name="kov&apos;s GTK+ EWS bot">gtk-ews</who>
    <bug_when>2012-11-15 14:48:49 -0800</bug_when>
    <thetext>Comment on attachment 174509
Patch V3

Attachment 174509 did not pass gtk-ews (gtk):
Output: http://queues.webkit.org/results/14848530</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>768950</commentid>
    <comment_count>16</comment_count>
    <who name="Alexandru Chiculita">achicu</who>
    <bug_when>2012-11-15 23:00:20 -0800</bug_when>
    <thetext>Just finished a local build on Gtk and it didn&apos;t fail.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>769166</commentid>
    <comment_count>17</comment_count>
      <attachid>174509</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-11-16 05:44:32 -0800</bug_when>
    <thetext>Comment on attachment 174509
Patch V3

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

New failing tests:
inspector-protocol/nmi-webaudio.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>769219</commentid>
    <comment_count>18</comment_count>
    <who name="Noam Rosenthal">noam</who>
    <bug_when>2012-11-16 06:49:19 -0800</bug_when>
    <thetext>(In reply to comment #16)
&gt; Just finished a local build on Gtk and it didn&apos;t fail.

It&apos;s a flaky test, feel free to land when you&apos;re ready.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>769223</commentid>
    <comment_count>19</comment_count>
      <attachid>174509</attachid>
    <who name="Alexandru Chiculita">achicu</who>
    <bug_when>2012-11-16 06:56:12 -0800</bug_when>
    <thetext>Comment on attachment 174509
Patch V3

Added cq+ to land the patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>769264</commentid>
    <comment_count>20</comment_count>
      <attachid>174509</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-11-16 07:39:48 -0800</bug_when>
    <thetext>Comment on attachment 174509
Patch V3

Clearing flags on attachment: 174509

Committed r134948: &lt;http://trac.webkit.org/changeset/134948&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>769265</commentid>
    <comment_count>21</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-11-16 07:39:55 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>174496</attachid>
            <date>2012-11-15 11:50:27 -0800</date>
            <delta_ts>2012-11-15 13:03:14 -0800</delta_ts>
            <desc>Patch V1</desc>
            <filename>bug102414.patch</filename>
            <type>text/plain</type>
            <size>33485</size>
            <attacher name="Alexandru Chiculita">achicu</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYkNv
cmUvQ01ha2VMaXN0cy50eHQKaW5kZXggZjNkODZhMi4uZWE4NGQxYSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0
cy50eHQKQEAgLTUxLDYgKzUxLDcgQEAgU0VUKFdlYkNvcmVfSU5DTFVERV9ESVJFQ1RPUklFUwog
ICAgICIke1dFQkNPUkVfRElSfS9wbGF0Zm9ybS9ncmFwaGljcy9jcHUvYXJtIgogICAgICIke1dF
QkNPUkVfRElSfS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzIgogICAgICIke1dFQkNPUkVfRElS
fS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL2FybSIKKyAgICAiJHtXRUJDT1JFX0RJUn0vcGxh
dGZvcm0vZ3JhcGhpY3MvZmlsdGVycy90ZXhtYXAiCiAgICAgIiR7V0VCQ09SRV9ESVJ9L3BsYXRm
b3JtL2dyYXBoaWNzL2hhcmZidXp6IgogICAgICIke1dFQkNPUkVfRElSfS9wbGF0Zm9ybS9ncmFw
aGljcy9oYXJmYnV6ei9uZyIKICAgICAiJHtXRUJDT1JFX0RJUn0vcGxhdGZvcm0vZ3JhcGhpY3Mv
b3BlbnR5cGUiCkBAIC0xOTA0LDYgKzE5MDUsNyBAQCBTRVQoV2ViQ29yZV9TT1VSQ0VTCiAgICAg
cGxhdGZvcm0vZ3JhcGhpY3MvVGlsZWRCYWNraW5nU3RvcmUuY3BwCiAgICAgcGxhdGZvcm0vZ3Jh
cGhpY3MvV2lkdGhJdGVyYXRvci5jcHAKIAorICAgIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMv
dGV4bWFwL0N1c3RvbUZpbHRlclZhbGlkYXRlZFByb2dyYW1UZXh0dXJlTWFwcGVyLmNwcAogICAg
IHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvQ3VzdG9tRmlsdGVyQ29tcGlsZWRQcm9ncmFtLmNw
cAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvQ3VzdG9tRmlsdGVyR2xvYmFsQ29udGV4
dC5jcHAKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0N1c3RvbUZpbHRlck1lc2guY3Bw
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cKaW5kZXggYzE3NDIxOS4uYTI3YzU5MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUx
IEBACisyMDEyLTExLTE1ICBBbGV4YW5kcnUgQ2hpY3VsaXRhICA8YWNoaWN1QGFkb2JlLmNvbT4K
KworICAgICAgICBbVGV4bWFwXVtDU1MgU2hhZGVyc10gTWFrZSB0aGUgQ3VzdG9tRmlsdGVyVmFs
aWRhdGVkUHJvZ3JhbSBtYWludGFpbiB0aGUgcGxhdGZvcm0gY29tcGlsZWQgcHJvZ3JhbQorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAyNDE0CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkZWQgV2ViQ29y
ZSBjbGFzc2VzIG5lZWRlZCBmb3IgdGhlIFdlYktpdDIgaW1wbGVtZW50YXRpb24gb2YgVGV4dHVy
ZSBNYXBwZXIgdG8ga2VlcCBhIHJlZmVyZW5jZSB0byB0aGUgCisgICAgICAgIHBsYXRmb3JtIGNv
bXBpbGVkIGN1c3RvbSBmaWx0ZXIuIEl0IGlzIGp1c3QgdXNlZCB0byBtYWludGFpbiB0aGUgbGlm
ZS10aW1lIG9mIHRoZSBvYmplY3RzLiBXZWJLaXQyIGluamVjdHMgYQorICAgICAgICBjbGllbnQg
aW4gVGV4dHVyZU1hcHBlclBsYXRmb3JtQ29tcGlsZWRQcm9ncmFtIGFuZCByZWNlaXZlcyBhIGNh
bGxiYWNrIHdoZW4gdGhlIGN1c3RvbSBmaWx0ZXIgcHJvZ3JhbSBpcyBub3QKKyAgICAgICAgdXNl
ZCB0byByZW5kZXIgYW55IGxheWVyIG9uIHRoZSBwYWdlLiAKKworICAgICAgICBOb3RlIHRoYXQg
Q3VzdG9tRmlsdGVyVmFsaWRhdGVkUHJvZ3JhbSBhcmUgcmV1c2VkIGFjcm9zcyBtdWx0aXBsZSBl
bGVtZW50cyBvZiB0aGUgc2FtZSBwYWdlLiBBbHNvLCB0aGUgaW5zdGFuY2VzCisgICAgICAgIGFy
ZSByZXVzZWQgYWNyb3NzIGZyYW1lcywgc28gYW5pbWF0aW9ucyBzaG91bGQgcmV1c2UgdGhlIHNh
bWUgcHJlLXZhbGlkYXRlZCBwcm9ncmFtLiBJbiB0aGlzIGNhc2UsIHRoZSBtZWNoYW5pc20gaXMK
KyAgICAgICAgZXh0ZW5kZWQgYW5kIHJldXNlZCBpbiB0aGUgcGxhdGZvcm0gY29tcG9zaXRvci4K
KyAgICAgICAgCisgICAgICAgIE5vIG5ldyB0ZXN0cywgZXhpc3RpbmcgdGVzdHMgZm9yIENTUyBD
dXN0b20gRmlsdGVycyBhbHJlYWR5IGNvdmVyIHRoaXMgcGF0aC4KKworICAgICAgICAqIENNYWtl
TGlzdHMudHh0OgorICAgICAgICAqIEdOVW1ha2VmaWxlLmFtOgorICAgICAgICAqIEdOVW1ha2Vm
aWxlLmxpc3QuYW06CisgICAgICAgICogVGFyZ2V0LnByaToKKyAgICAgICAgKiBXZWJDb3JlLmd5
cC9XZWJDb3JlLmd5cDoKKyAgICAgICAgKiBXZWJDb3JlLmd5cGk6CisgICAgICAgICogV2ViQ29y
ZS5wcmk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9DdXN0b21GaWx0ZXJW
YWxpZGF0ZWRQcm9ncmFtLmNwcDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL2ZpbHRlcnMvQ3VzdG9tRmlsdGVyVmFsaWRhdGVkUHJvZ3JhbS5oOgorICAg
ICAgICAoV2ViQ29yZSk6CisgICAgICAgIChDdXN0b21GaWx0ZXJWYWxpZGF0ZWRQcm9ncmFtKToK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL3RleG1hcC9DdXN0b21GaWx0ZXJW
YWxpZGF0ZWRQcm9ncmFtVGV4dHVyZU1hcHBlci5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29y
ZSk6CisgICAgICAgIChXZWJDb3JlOjpDdXN0b21GaWx0ZXJWYWxpZGF0ZWRQcm9ncmFtOjpwbGF0
Zm9ybUNvbXBpbGVkUHJvZ3JhbSk6IFBsYXRmb3JtIGltcGxlbWVudGF0aW9uIGZvciBjcmVhdGlu
ZyBhbmQgZGVsZXRpbmcgdGhlIHJlZmVyZW5jZS4KKyAgICAgICAgKFdlYkNvcmU6OkN1c3RvbUZp
bHRlclZhbGlkYXRlZFByb2dyYW06OnBsYXRmb3JtSW5pdCk6CisgICAgICAgIChXZWJDb3JlOjpD
dXN0b21GaWx0ZXJWYWxpZGF0ZWRQcm9ncmFtOjpwbGF0Zm9ybURlc3Ryb3kpOgorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvdGV4bWFwL1RleHR1cmVNYXBwZXJQbGF0Zm9ybUNv
bXBpbGVkUHJvZ3JhbS5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoVGV4
dHVyZU1hcHBlclBsYXRmb3JtQ29tcGlsZWRQcm9ncmFtQ2xpZW50KToKKyAgICAgICAgKFdlYkNv
cmU6OlRleHR1cmVNYXBwZXJQbGF0Zm9ybUNvbXBpbGVkUHJvZ3JhbUNsaWVudDo6cmVmKToKKyAg
ICAgICAgKFdlYkNvcmU6OlRleHR1cmVNYXBwZXJQbGF0Zm9ybUNvbXBpbGVkUHJvZ3JhbUNsaWVu
dDo6ZGVyZWYpOgorICAgICAgICAoVGV4dHVyZU1hcHBlclBsYXRmb3JtQ29tcGlsZWRQcm9ncmFt
KToKKyAgICAgICAgU3RvcmVzIGEgbGluayB0byBhIFRleHR1cmVNYXBwZXJQbGF0Zm9ybUNvbXBp
bGVkUHJvZ3JhbUNsaWVudC4gSXQncyBtYWluIHB1cnBvc2UgaXMgdG8gY2FsbCB1bnJlZiBvbiB0
aGUgY2xpZW50IHdoZW4KKyAgICAgICAgdGhlIHNoYWRlciBpcyBub3QgbmVlZGVkIGFueW1vcmUu
IFdlYktpdDIgY2FuIHVzZSB0aGF0IHRvIGRlbGV0ZSB0aGUgY29ycmVzcG9uZGluZyBzaGFkZXIg
ZnJvbSB0aGUgY29tcG9zaXRvciBzaWRlLgorICAgICAgICAoV2ViQ29yZTo6VGV4dHVyZU1hcHBl
clBsYXRmb3JtQ29tcGlsZWRQcm9ncmFtOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6VGV4
dHVyZU1hcHBlclBsYXRmb3JtQ29tcGlsZWRQcm9ncmFtOjpzZXRDbGllbnQpOiBVc2VkIGJ5IFdl
YktpdDIgdG8gaW5qZWN0IHRoZSBwbGF0Zm9ybSBjbGllbnQuCisgICAgICAgIChXZWJDb3JlOjpU
ZXh0dXJlTWFwcGVyUGxhdGZvcm1Db21waWxlZFByb2dyYW06OmNsaWVudCk6CisgICAgICAgIChX
ZWJDb3JlOjpUZXh0dXJlTWFwcGVyUGxhdGZvcm1Db21waWxlZFByb2dyYW06OlRleHR1cmVNYXBw
ZXJQbGF0Zm9ybUNvbXBpbGVkUHJvZ3JhbSk6CisKIDIwMTItMTEtMTQgIE90dG8gRGVyZWsgQ2hl
dW5nICA8b3RjaGV1bmdAcmltLmNvbT4KIAogICAgICAgICBbQmxhY2tCZXJyeV0gVXBkYXRpbmcg
QkIgQ29va2llIGRhdGFiYXNlIHRvIHVzZSBXQUwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L0dOVW1ha2VmaWxlLmFtIGIvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0KaW5kZXggMzU2
ZGVkZi4uOThkZjdlNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0K
KysrIGIvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0KQEAgLTU3LDYgKzU3LDcgQEAgd2Vi
Y29yZV9jcHBmbGFncyArPSBcCiAJLUkkKHNyY2RpcikvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY3B1L2FybSBcCiAJLUkkKHNyY2RpcikvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZmlsdGVycyBcCiAJLUkkKHNyY2RpcikvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZmlsdGVycy9hcm0gXAorCS1JJChzcmNkaXIpL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2ZpbHRlcnMvdGV4bWFwIFwKIAktSSQoc3JjZGlyKS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUgXAogCS1JJChzcmNkaXIpL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL29wZW5nbCBcCiAJLUkkKHNyY2RpcikvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3Mvb3BlbnR5cGUgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvR05V
bWFrZWZpbGUubGlzdC5hbSBiL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KaW5k
ZXggNWJmMWYyMS4uODhlMzNjNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZp
bGUubGlzdC5hbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCkBAIC02
MzMwLDYgKzYzMzAsOCBAQCBlbmRpZiAgIyBFTkQgVVNFX0NMVVRURVIKIAogaWYgVVNFX1RFWFRV
UkVfTUFQUEVSX0NBSVJPCiB3ZWJjb3JlX3NvdXJjZXMgKz0gXAorCVNvdXJjZS9XZWJDb3JlLy9w
bGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL3RleG1hcC9DdXN0b21GaWx0ZXJWYWxpZGF0ZWRQcm9n
cmFtVGV4dHVyZU1hcHBlci5jcHAgXAorCVNvdXJjZS9XZWJDb3JlLy9wbGF0Zm9ybS9ncmFwaGlj
cy9maWx0ZXJzL3RleG1hcC9UZXh0dXJlTWFwcGVyUGxhdGZvcm1Db21waWxlZFByb2dyYW0uaCBc
CiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJT
aGFkZXJNYW5hZ2VyLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4
bWFwL1RleHR1cmVNYXBwZXJTaGFkZXJNYW5hZ2VyLmggXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL3RleG1hcC9HcmFwaGljc0xheWVyVGV4dHVyZU1hcHBlci5jcHAgXApAQCAt
NjM1MSw2ICs2MzUzLDggQEAgZW5kaWYgICMgRU5EIFVTRV9URVhUVVJFX01BUFBFUl9DQUlSTwog
CiBpZiBVU0VfVEVYVFVSRV9NQVBQRVJfR0wKIHdlYmNvcmVfc291cmNlcyArPSBcCisJU291cmNl
L1dlYkNvcmUvL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvdGV4bWFwL0N1c3RvbUZpbHRlclZh
bGlkYXRlZFByb2dyYW1UZXh0dXJlTWFwcGVyLmNwcCBcCisJU291cmNlL1dlYkNvcmUvL3BsYXRm
b3JtL2dyYXBoaWNzL2ZpbHRlcnMvdGV4bWFwL1RleHR1cmVNYXBwZXJQbGF0Zm9ybUNvbXBpbGVk
UHJvZ3JhbS5oIFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4
dHVyZU1hcHBlckdMLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4
bWFwL1RleHR1cmVNYXBwZXJHTC5oIFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy90ZXhtYXAvVGV4dHVyZU1hcHBlclNoYWRlck1hbmFnZXIuY3BwIFwKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL1RhcmdldC5wcmkgYi9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpCmluZGV4
IDA5MjU5ZTEuLmJiZjZiMWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkK
KysrIGIvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQpAQCAtMjA3NSw2ICsyMDc1LDcgQEAgSEVB
REVSUyArPSBcCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvQml0bWFwSW1hZ2UuaCBcCiAgICAgcGxh
dGZvcm0vZ3JhcGhpY3MvQ29sb3IuaCBcCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvQ3Jvc3NmYWRl
R2VuZXJhdGVkSW1hZ2UuaCBcCisgICAgcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy90ZXhtYXAv
VGV4dHVyZU1hcHBlclBsYXRmb3JtQ29tcGlsZWRQcm9ncmFtLmggXAogICAgIHBsYXRmb3JtL2dy
YXBoaWNzL2ZpbHRlcnMvQ3VzdG9tRmlsdGVyQXJyYXlQYXJhbWV0ZXIuaCBcCiAgICAgcGxhdGZv
cm0vZ3JhcGhpY3MvZmlsdGVycy9DdXN0b21GaWx0ZXJDb25zdGFudHMuaCBcCiAgICAgcGxhdGZv
cm0vZ3JhcGhpY3MvZmlsdGVycy9DdXN0b21GaWx0ZXJHbG9iYWxDb250ZXh0LmggXApAQCAtMzUw
MSw2ICszNTAyLDcgQEAgZW5hYmxlPyhYU0xUKSB7CiAKIGVuYWJsZT8oRklMVEVSUykgewogICAg
IFNPVVJDRVMgKz0gXAorICAgICAgICBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL3RleG1hcC9D
dXN0b21GaWx0ZXJWYWxpZGF0ZWRQcm9ncmFtVGV4dHVyZU1hcHBlci5jcHAgXAogICAgICAgICBw
bGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0N1c3RvbUZpbHRlckdsb2JhbENvbnRleHQuY3BwIFwK
ICAgICAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9DdXN0b21GaWx0ZXJPcGVyYXRpb24u
Y3BwIFwKICAgICAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9DdXN0b21GaWx0ZXJQYXJh
bWV0ZXJMaXN0LmNwcCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cC9X
ZWJDb3JlLmd5cCBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwL1dlYkNvcmUuZ3lwCmluZGV4
IDdiZjg0Y2UuLmFiNDQzMzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lw
L1dlYkNvcmUuZ3lwCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwL1dlYkNvcmUuZ3lw
CkBAIC0xMTQsNiArMTE0LDcgQEAKICAgICAgICcuLi9wbGF0Zm9ybS9ncmFwaGljcy9jcHUvYXJt
JywKICAgICAgICcuLi9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzJywKICAgICAgICcuLi9wbGF0
Zm9ybS9ncmFwaGljcy9maWx0ZXJzL2FybScsCisgICAgICAnLi4vcGxhdGZvcm0vZ3JhcGhpY3Mv
ZmlsdGVycy90ZXhtYXAnLAogICAgICAgJy4uL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvc2tp
YScsCiAgICAgICAnLi4vcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1JywKICAgICAgICcuLi9wbGF0Zm9y
bS9ncmFwaGljcy9vcGVudHlwZScsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
Lmd5cGkgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKaW5kZXggYjNkYzgwYS4uNTU0ZjE4
ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUuZ3lwaQpAQCAtNDkzOCw2ICs0OTM4LDggQEAKICAgICAgICAgICAgICdw
bGF0Zm9ybS9ncmFwaGljcy9lZmwvSW1hZ2VFZmwuY3BwJywKICAgICAgICAgICAgICdwbGF0Zm9y
bS9ncmFwaGljcy9lZmwvSW50UG9pbnRFZmwuY3BwJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9n
cmFwaGljcy9lZmwvSW50UmVjdEVmbC5jcHAnLAorICAgICAgICAgICAgJ3BsYXRmb3JtL2dyYXBo
aWNzL2ZpbHRlcnMvdGV4bWFwL0N1c3RvbUZpbHRlclZhbGlkYXRlZFByb2dyYW1UZXh0dXJlTWFw
cGVyLmNwcCcsCisgICAgICAgICAgICAncGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy90ZXhtYXAv
VGV4dHVyZU1hcHBlclBsYXRmb3JtQ29tcGlsZWRQcm9ncmFtLmgnLAogICAgICAgICAgICAgJ3Bs
YXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvQ3VzdG9tRmlsdGVyQXJyYXlQYXJhbWV0ZXIuaCcsCiAg
ICAgICAgICAgICAncGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9DdXN0b21GaWx0ZXJDb25zdGFu
dHMuaCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9DdXN0b21GaWx0
ZXJHbG9iYWxDb250ZXh0LmNwcCcsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
LnByaSBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUucHJpCmluZGV4IDcxZDI3NmMuLjZiOWFlODUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUucHJpCisrKyBiL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUucHJpCkBAIC01Niw2ICs1Niw3IEBAIElOQ0xVREVQQVRIICs9IFwKICAgICAk
JFNPVVJDRV9ESVIvcGxhdGZvcm0vZ3JhcGhpY3MvY3B1L2FybSBcCiAgICAgJCRTT1VSQ0VfRElS
L3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMgXAogICAgICQkU09VUkNFX0RJUi9wbGF0Zm9ybS9n
cmFwaGljcy9maWx0ZXJzL2FybSBcCisgICAgJCRTT1VSQ0VfRElSL3BsYXRmb3JtL2dyYXBoaWNz
L2ZpbHRlcnMvdGV4bWFwIFwKICAgICAkJFNPVVJDRV9ESVIvcGxhdGZvcm0vZ3JhcGhpY3Mvb3Bl
bmdsIFwKICAgICAkJFNPVVJDRV9ESVIvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbnR5cGUgXAogICAg
ICQkU09VUkNFX0RJUi9wbGF0Zm9ybS9ncmFwaGljcy9xdCBcCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0N1c3RvbUZpbHRlclZhbGlkYXRlZFBy
b2dyYW0uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9DdXN0
b21GaWx0ZXJWYWxpZGF0ZWRQcm9ncmFtLmNwcAppbmRleCBmNWVmNmNmLi5lZjVlZTRlIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0N1c3RvbUZp
bHRlclZhbGlkYXRlZFByb2dyYW0uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2ZpbHRlcnMvQ3VzdG9tRmlsdGVyVmFsaWRhdGVkUHJvZ3JhbS5jcHAKQEAgLTUxMiw3
ICs1MTIsNyBAQCBDdXN0b21GaWx0ZXJWYWxpZGF0ZWRQcm9ncmFtOjp+Q3VzdG9tRmlsdGVyVmFs
aWRhdGVkUHJvZ3JhbSgpCiAgICAgICAgIG1fZ2xvYmFsQ29udGV4dC0+cmVtb3ZlVmFsaWRhdGVk
UHJvZ3JhbSh0aGlzKTsKIH0KIAotI2lmICFQTEFURk9STShCTEFDS0JFUlJZKQorI2lmICFQTEFU
Rk9STShCTEFDS0JFUlJZKSAmJiAhVVNFKFRFWFRVUkVfTUFQUEVSKQogdm9pZCBDdXN0b21GaWx0
ZXJWYWxpZGF0ZWRQcm9ncmFtOjpwbGF0Zm9ybUluaXQoKQogewogfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9DdXN0b21GaWx0ZXJWYWxpZGF0
ZWRQcm9ncmFtLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0N1
c3RvbUZpbHRlclZhbGlkYXRlZFByb2dyYW0uaAppbmRleCAxMmZlZmNjLi44YWZjOWVjIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0N1c3RvbUZp
bHRlclZhbGlkYXRlZFByb2dyYW0uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9maWx0ZXJzL0N1c3RvbUZpbHRlclZhbGlkYXRlZFByb2dyYW0uaApAQCAtNTMsNiArNTMs
MTEgQEAgc3RydWN0IEFOR0xFU2hhZGVyU3ltYm9sOwogY2xhc3MgQ3VzdG9tRmlsdGVyQ29tcGls
ZWRQcm9ncmFtOwogY2xhc3MgQ3VzdG9tRmlsdGVyR2xvYmFsQ29udGV4dDsKIAorI2lmIFVTRShU
RVhUVVJFX01BUFBFUikKK2NsYXNzIFRleHR1cmVNYXBwZXJQbGF0Zm9ybUNvbXBpbGVkUHJvZ3Jh
bTsKK3R5cGVkZWYgVGV4dHVyZU1hcHBlclBsYXRmb3JtQ29tcGlsZWRQcm9ncmFtIFBsYXRmb3Jt
Q29tcGlsZWRQcm9ncmFtOworI2VuZGlmCisKIC8vCiAvLyBBIHVuaXF1ZSBjb21iaW5hdGlvbiBv
ZiB2ZXJ0ZXggc2hhZGVyIGFuZCBmcmFnbWVudCBzaGFkZXIgaXMgb25seSB2YWxpZGF0ZWQgYW5k
IGNvbXBpbGVkIG9uY2UuCiAvLyBBbGwgc2hhZGVycyBhcmUgdmFsaWRhdGVkIHRocm91Z2ggQU5H
TEUgaW4gQ3VzdG9tRmlsdGVyVmFsaWRhdGVkUHJvZ3JhbSBiZWZvcmUgYmVpbmcgY29tcGlsZWQg
YnkgdGhlIEdyYXBoaWNzQ29udGV4dDNEIGluIEN1c3RvbUZpbHRlckNvbXBpbGVkUHJvZ3JhbS4K
QEAgLTkxLDcgKzk2LDcgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gbV92YWxpZGF0ZWRGcmFn
bWVudFNoYWRlcjsgCiAgICAgfQogCi0jaWYgUExBVEZPUk0oQkxBQ0tCRVJSWSkKKyNpZiBQTEFU
Rk9STShCTEFDS0JFUlJZKSB8fCBVU0UoVEVYVFVSRV9NQVBQRVIpCiAgICAgUGxhdGZvcm1Db21w
aWxlZFByb2dyYW0qIHBsYXRmb3JtQ29tcGlsZWRQcm9ncmFtKCk7CiAjZW5kaWYKIApAQCAtMTI0
LDcgKzEyOSw3IEBAIHByaXZhdGU6CiAgICAgU3RyaW5nIG1fdmFsaWRhdGVkRnJhZ21lbnRTaGFk
ZXI7CiAKICAgICBSZWZQdHI8Q3VzdG9tRmlsdGVyQ29tcGlsZWRQcm9ncmFtPiBtX2NvbXBpbGVk
UHJvZ3JhbTsKLSNpZiBQTEFURk9STShCTEFDS0JFUlJZKQorI2lmIFBMQVRGT1JNKEJMQUNLQkVS
UlkpIHx8IFVTRShURVhUVVJFX01BUFBFUikKICAgICBQbGF0Zm9ybUNvbXBpbGVkUHJvZ3JhbSog
bV9wbGF0Zm9ybUNvbXBpbGVkUHJvZ3JhbTsKICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL3RleG1hcC9DdXN0b21GaWx0ZXJWYWxp
ZGF0ZWRQcm9ncmFtVGV4dHVyZU1hcHBlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9maWx0ZXJzL3RleG1hcC9DdXN0b21GaWx0ZXJWYWxpZGF0ZWRQcm9ncmFtVGV4dHVy
ZU1hcHBlci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYmVkMGU2ZQot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRl
cnMvdGV4bWFwL0N1c3RvbUZpbHRlclZhbGlkYXRlZFByb2dyYW1UZXh0dXJlTWFwcGVyLmNwcApA
QCAtMCwwICsxLDU4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIEFkb2JlIFN5c3RlbXMg
SW5jb3Jwb3JhdGVkLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUKKyAqICAgIGNvcHlyaWdodCBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nCisgKiAgICBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZQorICogICAgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcKKyAqICAgIGRpc2NsYWltZXIgaW4gdGhlIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscworICogICAgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBI
T0xERVIgIkFTIElTIiBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUIEhPTERF
UiBCRQorICogTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLAorICogT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5F
U1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUgorICog
VE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GCisgKiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RiBUSEUgUE9TU0lCSUxJVFkgT0YKKyAqIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJj
b25maWcuaCIKKworI2lmIEVOQUJMRShDU1NfU0hBREVSUykgJiYgVVNFKFRFWFRVUkVfTUFQUEVS
KQorI2luY2x1ZGUgIkN1c3RvbUZpbHRlclZhbGlkYXRlZFByb2dyYW0uaCIKKworI2luY2x1ZGUg
IlRleHR1cmVNYXBwZXJQbGF0Zm9ybUNvbXBpbGVkUHJvZ3JhbS5oIgorCituYW1lc3BhY2UgV2Vi
Q29yZSB7CisKK1BsYXRmb3JtQ29tcGlsZWRQcm9ncmFtKiBDdXN0b21GaWx0ZXJWYWxpZGF0ZWRQ
cm9ncmFtOjpwbGF0Zm9ybUNvbXBpbGVkUHJvZ3JhbSgpCit7CisgICAgaWYgKCFtX3BsYXRmb3Jt
Q29tcGlsZWRQcm9ncmFtKQorICAgICAgICBtX3BsYXRmb3JtQ29tcGlsZWRQcm9ncmFtID0gVGV4
dHVyZU1hcHBlclBsYXRmb3JtQ29tcGlsZWRQcm9ncmFtOjpjcmVhdGUoKS5sZWFrUmVmKCk7Cisg
ICAgcmV0dXJuIG1fcGxhdGZvcm1Db21waWxlZFByb2dyYW07Cit9CisKK3ZvaWQgQ3VzdG9tRmls
dGVyVmFsaWRhdGVkUHJvZ3JhbTo6cGxhdGZvcm1Jbml0KCkKK3sKKyAgICBtX3BsYXRmb3JtQ29t
cGlsZWRQcm9ncmFtID0gMDsKK30KKwordm9pZCBDdXN0b21GaWx0ZXJWYWxpZGF0ZWRQcm9ncmFt
OjpwbGF0Zm9ybURlc3Ryb3koKQoreworICAgIGRlcmVmSWZOb3ROdWxsKG1fcGxhdGZvcm1Db21w
aWxlZFByb2dyYW0pOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBF
TkFCTEUoQ1NTX1NIQURFUlMpICYmIFVTRShURVhUVVJFX01BUFBFUikKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvdGV4bWFwL1RleHR1cmVNYXBw
ZXJQbGF0Zm9ybUNvbXBpbGVkUHJvZ3JhbS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZmlsdGVycy90ZXhtYXAvVGV4dHVyZU1hcHBlclBsYXRmb3JtQ29tcGlsZWRQcm9ncmFt
LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYWZhNmNhNQotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvdGV4bWFw
L1RleHR1cmVNYXBwZXJQbGF0Zm9ybUNvbXBpbGVkUHJvZ3JhbS5oCkBAIC0wLDAgKzEsNzEgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgQWRvYmUgU3lzdGVtcyBJbmNvcnBvcmF0ZWQuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZQorICogICAgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcKKyAqICAgIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiAgICBj
b3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZworICogICAgZGlzY2xhaW1lciBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzCisgKiAgICBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUiAiQVMgSVMiIEFO
RCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQgSE9MREVSIEJFCisgKiBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
CisgKiBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SCisgKiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YKKyAqIFRI
RSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRgorICogU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBUZXh0dXJlTWFwcGVyUGxhdGZv
cm1Db21waWxlZFByb2dyYW1faAorI2RlZmluZSBUZXh0dXJlTWFwcGVyUGxhdGZvcm1Db21waWxl
ZFByb2dyYW1faAorCisjaWYgRU5BQkxFKENTU19TSEFERVJTKQorI2luY2x1ZGUgPHd0Zi9QYXNz
UmVmUHRyLmg+CisjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KKyNpbmNsdWRlIDx3dGYvUmVm
UHRyLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgVGV4dHVyZU1hcHBlclBsYXRm
b3JtQ29tcGlsZWRQcm9ncmFtQ2xpZW50IHsKK3B1YmxpYzoKKyAgICB2b2lkIHJlZigpIHsgcmVm
RnJvbVZhbGlkYXRlZFByb2dyYW0oKTsgfQorICAgIHZvaWQgZGVyZWYoKSB7IGRlcmVmRnJvbVZh
bGlkYXRlZFByb2dyYW0oKTsgfQorCisgICAgdmlydHVhbCB2b2lkIHJlZkZyb21WYWxpZGF0ZWRQ
cm9ncmFtKCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBkZXJlZkZyb21WYWxpZGF0ZWRQcm9ncmFt
KCkgPSAwOworfTsKKworY2xhc3MgVGV4dHVyZU1hcHBlclBsYXRmb3JtQ29tcGlsZWRQcm9ncmFt
IDogcHVibGljIFJlZkNvdW50ZWQ8VGV4dHVyZU1hcHBlclBsYXRmb3JtQ29tcGlsZWRQcm9ncmFt
PiB7CitwdWJsaWM6CisgICAgc3RhdGljIFBhc3NSZWZQdHI8VGV4dHVyZU1hcHBlclBsYXRmb3Jt
Q29tcGlsZWRQcm9ncmFtPiBjcmVhdGUoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVm
KG5ldyBUZXh0dXJlTWFwcGVyUGxhdGZvcm1Db21waWxlZFByb2dyYW0oKSk7CisgICAgfQorICAg
IAorICAgIHZvaWQgc2V0Q2xpZW50KFBhc3NSZWZQdHI8VGV4dHVyZU1hcHBlclBsYXRmb3JtQ29t
cGlsZWRQcm9ncmFtQ2xpZW50PiBjbGllbnQpIHsgbV9jbGllbnQgPSBjbGllbnQ7IH0KKyAgICBU
ZXh0dXJlTWFwcGVyUGxhdGZvcm1Db21waWxlZFByb2dyYW1DbGllbnQqIGNsaWVudCgpIGNvbnN0
IHsgcmV0dXJuIG1fY2xpZW50LmdldCgpOyB9CisKK3ByaXZhdGU6CisgICAgVGV4dHVyZU1hcHBl
clBsYXRmb3JtQ29tcGlsZWRQcm9ncmFtKCkKKyAgICB7CisgICAgfQorCisgICAgUmVmUHRyPFRl
eHR1cmVNYXBwZXJQbGF0Zm9ybUNvbXBpbGVkUHJvZ3JhbUNsaWVudD4gbV9jbGllbnQ7Cit9Owor
Cit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoQ1NTX1NIQURFUlMp
CisKKyNlbmRpZiAvLyBUZXh0dXJlTWFwcGVyUGxhdGZvcm1Db21waWxlZFByb2dyYW1faApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV2ViS2l0Mi9D
TWFrZUxpc3RzLnR4dAppbmRleCA2ZTQ2ZjQ4Li4wNjMyZGQxIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9DTWFrZUxpc3RzLnR4
dApAQCAtMjE4LDYgKzIxOCw3IEBAIFNFVChXZWJLaXQyX1NPVVJDRVMKICAgICBTaGFyZWQvQVBJ
L2MvV0tVc2VyQ29udGVudFVSTFBhdHRlcm4uY3BwCiAKICAgICBTaGFyZWQvQ29vcmRpbmF0ZWRH
cmFwaGljcy9Db29yZGluYXRlZEdyYXBoaWNzQXJndW1lbnRDb2RlcnMuY3BwCisgICAgU2hhcmVk
L0Nvb3JkaW5hdGVkR3JhcGhpY3MvV2ViQ3VzdG9tRmlsdGVyUHJvZ3JhbVByb3h5LmNwcAogCiAg
ICAgU2hhcmVkL1BsdWdpbnMvTlBJZGVudGlmaWVyRGF0YS5jcHAKICAgICBTaGFyZWQvUGx1Z2lu
cy9OUE9iamVjdE1lc3NhZ2VSZWNlaXZlci5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCBmOGEyNjE4Li5kODZm
YzY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dl
YktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDYgQEAKKzIwMTItMTEtMTUgIEFsZXhhbmRydSBD
aGljdWxpdGEgIDxhY2hpY3VAYWRvYmUuY29tPgorCisgICAgICAgIFtUZXhtYXBdW0NTUyBTaGFk
ZXJzXSBNYWtlIHRoZSBDdXN0b21GaWx0ZXJWYWxpZGF0ZWRQcm9ncmFtIG1haW50YWluIHRoZSBw
bGF0Zm9ybSBjb21waWxlZCBwcm9ncmFtCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xMDI0MTQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBUaGlzIGlzIHRoZSBmaXJzdCBwYXJ0IG9mIHNoYWRlciBjYWNoaW5n
IGltcGxlbWVudGF0aW9uIGZvciB0aGUgQ3VzdG9tIEZpbHRlcnMgaW4gV0syIExheWVyVHJlZUNv
b3JkaW5hdG9yLgorICAgICAgICBJbiB0aGlzIHBhdGNoIGl0IHdpbGwganVzdCBtYWtlIHRoZSBM
YXllclRyZWVDb29yZGluYXRvciBrbm93bGVkZ2VhYmxlIGFib3V0IHRoZSBsaWZlLXRpbWUKKyAg
ICAgICAgb2YgdGhlIGN1c3RvbSBmaWx0ZXIgcHJvZ3JhbXMuIEl0IGNhbiBhbGxvY2F0ZSBJRHMg
Zm9yIHRoZSBmaWx0ZXJzIGFuZCBpdCBhbHNvIGdldHMgYSBjYWxsYmFjayB3aGVuIHRoZQorICAg
ICAgICBmaWx0ZXJzIGFyZSBub3QgbmVlZGVkIGFueW1vcmUuCisKKyAgICAgICAgVGhlIFVJIHBy
b2Nlc3MgaXMgc3RpbGwgcmVjcmVhdGluZyB0aGUgc2hhZGVyIGV2ZXJ5IHRpbWUsIGJ1dCBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAxODAxCisgICAgICAgIHdpbGwg
Zml4IHRoYXQgYW5kIHRyeSB0byByZXVzZSBleGlzdGluZyBjdXN0b20gZmlsdGVycy4KKworICAg
ICAgICAqIENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIFNoYXJlZC9Db29yZGluYXRlZEdyYXBo
aWNzL0Nvb3JkaW5hdGVkR3JhcGhpY3NBcmd1bWVudENvZGVycy5jcHA6CisgICAgICAgIChDb3Jl
SVBDOjo6OmVuY29kZSk6CisgICAgICAgICogU2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvV2Vi
Q3VzdG9tRmlsdGVyUHJvZ3JhbVByb3h5LmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXQpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJDdXN0b21GaWx0ZXJQcm9ncmFtUHJveHk6On5XZWJDdXN0b21G
aWx0ZXJQcm9ncmFtUHJveHkpOgorICAgICAgICAqIFNoYXJlZC9Db29yZGluYXRlZEdyYXBoaWNz
L1dlYkN1c3RvbUZpbHRlclByb2dyYW1Qcm94eS5oOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdCk6
CisgICAgICAgIChXZWJDdXN0b21GaWx0ZXJQcm9ncmFtUHJveHlDbGllbnQpOgorICAgICAgICAo
V2ViQ3VzdG9tRmlsdGVyUHJvZ3JhbVByb3h5KToKKyAgICAgICAgKFdlYktpdDo6V2ViQ3VzdG9t
RmlsdGVyUHJvZ3JhbVByb3h5OjpjcmVhdGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJDdXN0b21G
aWx0ZXJQcm9ncmFtUHJveHk6OmlkKToKKyAgICAgICAgKFdlYktpdDo6V2ViQ3VzdG9tRmlsdGVy
UHJvZ3JhbVByb3h5OjpyZWZGcm9tVmFsaWRhdGVkUHJvZ3JhbSk6CisgICAgICAgIChXZWJLaXQ6
OldlYkN1c3RvbUZpbHRlclByb2dyYW1Qcm94eTo6ZGVyZWZGcm9tVmFsaWRhdGVkUHJvZ3JhbSk6
CisgICAgICAgIChXZWJLaXQ6OldlYkN1c3RvbUZpbHRlclByb2dyYW1Qcm94eTo6c2V0Q2xpZW50
KToKKyAgICAgICAgKFdlYktpdDo6V2ViQ3VzdG9tRmlsdGVyUHJvZ3JhbVByb3h5OjpjbGllbnQp
OgorICAgICAgICAoV2ViS2l0OjpXZWJDdXN0b21GaWx0ZXJQcm9ncmFtUHJveHk6OldlYkN1c3Rv
bUZpbHRlclByb2dyYW1Qcm94eSk6CisgICAgICAgICogVGFyZ2V0LnByaToKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9MYXllclRyZWVDb29yZGluYXRv
ci5jcHA6CisgICAgICAgIChXZWJLaXQ6OkxheWVyVHJlZUNvb3JkaW5hdG9yOjp+TGF5ZXJUcmVl
Q29vcmRpbmF0b3IpOgorICAgICAgICAoV2ViS2l0OjpMYXllclRyZWVDb29yZGluYXRvcjo6c3lu
Y0xheWVyRmlsdGVycyk6CisgICAgICAgIChXZWJLaXQpOgorICAgICAgICAoV2ViS2l0OjpMYXll
clRyZWVDb29yZGluYXRvcjo6Y2hlY2tDdXN0b21GaWx0ZXJQcm9ncmFtUHJveGllcyk6CisgICAg
ICAgIChXZWJLaXQ6OkxheWVyVHJlZUNvb3JkaW5hdG9yOjpyZW1vdmVDdXN0b21GaWx0ZXJQcm9n
cmFtUHJveHkpOgorICAgICAgICAoV2ViS2l0OjpMYXllclRyZWVDb29yZGluYXRvcjo6ZGlzY29u
bmVjdEN1c3RvbUZpbHRlclByb2dyYW1zKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2Uv
Q29vcmRpbmF0ZWRHcmFwaGljcy9MYXllclRyZWVDb29yZGluYXRvci5oOgorICAgICAgICAoTGF5
ZXJUcmVlQ29vcmRpbmF0b3IpOgorCiAyMDEyLTExLTE0ICBBbnRvbiBPYnpoaXJvdiAgPGEub2J6
aGlyb3ZAc2Ftc3VuZy5jb20+CiAKICAgICAgICAgQWRkIHBsYXRmb3JtIGltcGxlbWVudGF0aW9u
IG9mIHJlbW90ZSB3ZWIgaW5zcGVjdG9yIHNlcnZlciBmb3IgR1RLIHBvcnQuCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZEdy
YXBoaWNzQXJndW1lbnRDb2RlcnMuY3BwIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0Nvb3JkaW5h
dGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRHcmFwaGljc0FyZ3VtZW50Q29kZXJzLmNwcAppbmRleCBi
ZGI5MDY1Li5kOTg1NzA3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ29vcmRp
bmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZEdyYXBoaWNzQXJndW1lbnRDb2RlcnMuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkR3Jh
cGhpY3NBcmd1bWVudENvZGVycy5jcHAKQEAgLTE0Niw2ICsxNDYsMTAgQEAgdm9pZCBBcmd1bWVu
dENvZGVyPFdlYkNvcmU6OkZpbHRlck9wZXJhdGlvbnM+OjplbmNvZGUoQXJndW1lbnRFbmNvZGVy
JiBlbmNvZGVyLAogICAgICAgICAgICAgQVNTRVJUKGN1c3RvbU9wZXJhdGlvbi0+dmFsaWRhdGVk
UHJvZ3JhbSgpKTsKICAgICAgICAgICAgIFJlZlB0cjxDdXN0b21GaWx0ZXJWYWxpZGF0ZWRQcm9n
cmFtPiBwcm9ncmFtID0gY3VzdG9tT3BlcmF0aW9uLT52YWxpZGF0ZWRQcm9ncmFtKCk7CiAgICAg
ICAgICAgICBBU1NFUlQocHJvZ3JhbS0+aXNJbml0aWFsaXplZCgpKTsKKyAgICAgICAgICAgIEFT
U0VSVChwcm9ncmFtLT5wbGF0Zm9ybUNvbXBpbGVkUHJvZ3JhbSgpKTsKKyAgICAgICAgICAgIC8v
IEZJWE1FOiBXZSBzaG91bGQgb25seSBzZXJpYWxpemUgdGhlIG9iamVjdCBpZiBpdCB3YXMgbm90
IHNlcmlhbGl6ZWQgYmVmb3JlLAorICAgICAgICAgICAgLy8gb3RoZXJ3aXNlIG9ubHkgdGhlIElE
IG9mIHRoZSBwcm9ncmFtIHNob3VsZCBiZSB3cml0dGVuIHRvIHRoZSBzdHJlYW0uCisgICAgICAg
ICAgICAvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAxODAxCiAg
ICAgICAgICAgICBlbmNvZGVyIDw8IHByb2dyYW0tPnZhbGlkYXRlZFZlcnRleFNoYWRlcigpOwog
ICAgICAgICAgICAgZW5jb2RlciA8PCBwcm9ncmFtLT52YWxpZGF0ZWRGcmFnbWVudFNoYWRlcigp
OwogICAgICAgICAgICAgY29uc3QgQ3VzdG9tRmlsdGVyUHJvZ3JhbUluZm8mIHByb2dyYW1JbmZv
ID0gcHJvZ3JhbS0+cHJvZ3JhbUluZm8oKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1No
YXJlZC9Db29yZGluYXRlZEdyYXBoaWNzL1dlYkN1c3RvbUZpbHRlclByb2dyYW1Qcm94eS5jcHAg
Yi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy9XZWJDdXN0b21GaWx0
ZXJQcm9ncmFtUHJveHkuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjU2
ZjcwNzYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ29vcmRpbmF0
ZWRHcmFwaGljcy9XZWJDdXN0b21GaWx0ZXJQcm9ncmFtUHJveHkuY3BwCkBAIC0wLDAgKzEsNDkg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgQWRvYmUgU3lzdGVtcyBJbmNvcnBvcmF0ZWQu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZQorICogICAgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcKKyAqICAgIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiAg
ICBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZworICogICAgZGlzY2xhaW1lciBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzCisgKiAgICBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUiAiQVMgSVMi
IEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQgSE9MREVSIEJFCisgKiBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksCisgKiBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SCisgKiBUT1JUIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YKKyAq
IFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRgorICogU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorCisj
aWYgRU5BQkxFKENTU19TSEFERVJTKQorI2luY2x1ZGUgIldlYkN1c3RvbUZpbHRlclByb2dyYW1Q
cm94eS5oIgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworaW50IFdlYkN1c3RvbUZpbHRlclByb2dy
YW1Qcm94eTo6c19uZXh0SWQgPSAxOworCitXZWJDdXN0b21GaWx0ZXJQcm9ncmFtUHJveHk6On5X
ZWJDdXN0b21GaWx0ZXJQcm9ncmFtUHJveHkoKQoreworICAgIGlmIChtX2NsaWVudCkgeworICAg
ICAgICBtX2NsaWVudC0+cmVtb3ZlQ3VzdG9tRmlsdGVyUHJvZ3JhbVByb3h5KHRoaXMpOworICAg
ICAgICBtX2NsaWVudCA9IDA7CisgICAgfQorfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKwor
I2VuZGlmIC8vIEVOQUJMRShDU1NfU0hBREVSUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1NoYXJlZC9Db29yZGluYXRlZEdyYXBoaWNzL1dlYkN1c3RvbUZpbHRlclByb2dyYW1Qcm94eS5o
IGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvV2ViQ3VzdG9tRmls
dGVyUHJvZ3JhbVByb3h5LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYmI2
ZjBiYgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Db29yZGluYXRl
ZEdyYXBoaWNzL1dlYkN1c3RvbUZpbHRlclByb2dyYW1Qcm94eS5oCkBAIC0wLDAgKzEsOTMgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgQWRvYmUgU3lzdGVtcyBJbmNvcnBvcmF0ZWQuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZQorICogICAgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcKKyAqICAgIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiAgICBj
b3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZworICogICAgZGlzY2xhaW1lciBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzCisgKiAgICBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUiAiQVMgSVMiIEFO
RCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQgSE9MREVSIEJFCisgKiBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
CisgKiBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SCisgKiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YKKyAqIFRI
RSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRgorICogU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBXZWJDdXN0b21GaWx0ZXJQcm9n
cmFtUHJveHlfaAorI2RlZmluZSBXZWJDdXN0b21GaWx0ZXJQcm9ncmFtUHJveHlfaAorCisjaWYg
VVNFKENPT1JESU5BVEVEX0dSQVBISUNTKSAmJiBFTkFCTEUoQ1NTX1NIQURFUlMpCisKKyNpbmNs
dWRlICJUZXh0dXJlTWFwcGVyUGxhdGZvcm1Db21waWxlZFByb2dyYW0uaCIKKyNpbmNsdWRlIDx3
dGYvUmVmQ291bnRlZC5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgV2ViQ3VzdG9t
RmlsdGVyUHJvZ3JhbVByb3h5OworCitjbGFzcyBXZWJDdXN0b21GaWx0ZXJQcm9ncmFtUHJveHlD
bGllbnQgeworcHVibGljOgorICAgIHZpcnR1YWwgdm9pZCByZW1vdmVDdXN0b21GaWx0ZXJQcm9n
cmFtUHJveHkoV2ViQ3VzdG9tRmlsdGVyUHJvZ3JhbVByb3h5KikgPSAwOworfTsKKworLy8gVGhp
cyBpcyBhIHByb3h5IGNsYXNzIHVzZWQgdG8gc3RvcmUgdGhlIElEIG9mIHRoZSBjdXN0b20gZmls
dGVyIHByb2dyYW0gc2VyaWFsaXplZCB0byB0aGUgb3RoZXIgcHJvY2Vzcy4KKy8vIEl0IGxpdmVz
IGluIHRoZSBXZWJQcm9jZXNzIGFuZCBpcyByZWZlcmVuY2VkIGZyb20gdGhlIEN1c3RvbUZpbHRl
clZhbGlkYXRlZFByb2dyYW0gbWVhbmluZyB0aGF0IGl0IHdpbGwgYmUga2VwdCBhbGl2ZSBhcwor
Ly8gbG9uZyBhcyBhIGxheWVyIG9uIHRoZSBwYWdlIHdpbGwgcmVuZGVyIHdpdGggdGhpcyBwcm9n
cmFtLiBJdCB3aWxsIGNhbGwgcmVtb3ZlQ3VzdG9tRmlsdGVyUHJvZ3JhbVByb3h5IG9uIHRoZSBt
X2NsaWVudAorLy8gd2hlbiB0aGUgcHJvZ3JhbSBpcyBubyBsb25nZXIgbmVlZGVkIHRvIHJlbmRl
ciB0aGUgZmlsdGVyLiBUaGUgY2xpZW50IGNhbiB0aGVuIHNlbmQgYSBtZXNzYWdlIHRvIHRoZSBV
SSBwcm9jZXNzCisvLyB0byBkZXN0cm95IHRoZSBhc3NvY2lhdGVkIHJlZmVyZW5jZS4gTm90ZSB0
aGF0IG1vcmUgbGF5ZXJzIGNhbiBzaGFyZSB0aGUgc2FtZSBwcm9ncmFtIGFuZCB0aGVyZSdzCisv
LyBubyBuZWVkIHRvIGltcGxlbWVudCBhIGNhY2hpbmcgbWVjaGFuaXNtIGluIHRoZSBjb21wb3Np
dG9yIHNpZGUuCisKK2NsYXNzIFdlYkN1c3RvbUZpbHRlclByb2dyYW1Qcm94eSA6IHB1YmxpYyBS
ZWZDb3VudGVkPFdlYkN1c3RvbUZpbHRlclByb2dyYW1Qcm94eT4sIHB1YmxpYyBXZWJDb3JlOjpU
ZXh0dXJlTWFwcGVyUGxhdGZvcm1Db21waWxlZFByb2dyYW1DbGllbnQgeworcHVibGljOgorICAg
IHVzaW5nIFJlZkNvdW50ZWQ8V2ViQ3VzdG9tRmlsdGVyUHJvZ3JhbVByb3h5Pjo6cmVmOworICAg
IHVzaW5nIFJlZkNvdW50ZWQ8V2ViQ3VzdG9tRmlsdGVyUHJvZ3JhbVByb3h5Pjo6ZGVyZWY7CisK
KyAgICBzdGF0aWMgUGFzc1JlZlB0cjxXZWJDdXN0b21GaWx0ZXJQcm9ncmFtUHJveHk+IGNyZWF0
ZShXZWJDdXN0b21GaWx0ZXJQcm9ncmFtUHJveHlDbGllbnQqIGNsaWVudCkKKyAgICB7CisgICAg
ICAgIHJldHVybiBhZG9wdFJlZihuZXcgV2ViQ3VzdG9tRmlsdGVyUHJvZ3JhbVByb3h5KGNsaWVu
dCkpOworICAgIH0KKworICAgIGludCBpZCgpIGNvbnN0IHsgcmV0dXJuIG1faWQ7IH0KKworICAg
IC8vIE5lZWRlZCB0byBtYWtlIFRleHR1cmVNYXBwZXJQbGF0Zm9ybUNvbXBpbGVkUHJvZ3JhbUNs
aWVudCBsb29rIGxpa2UgYSBSZWZDb3VudGVkIG9iamVjdC4KKyAgICB2aXJ0dWFsIHZvaWQgcmVm
RnJvbVZhbGlkYXRlZFByb2dyYW0oKSB7IHJlZigpOyB9CisgICAgdmlydHVhbCB2b2lkIGRlcmVm
RnJvbVZhbGlkYXRlZFByb2dyYW0oKSB7IGRlcmVmKCk7IH0KKworICAgIH5XZWJDdXN0b21GaWx0
ZXJQcm9ncmFtUHJveHkoKTsKKyAgICAKKyAgICB2b2lkIHNldENsaWVudChXZWJDdXN0b21GaWx0
ZXJQcm9ncmFtUHJveHlDbGllbnQqIGNsaWVudCkgeyBtX2NsaWVudCA9IGNsaWVudDsgfQorICAg
IFdlYkN1c3RvbUZpbHRlclByb2dyYW1Qcm94eUNsaWVudCogY2xpZW50KCkgY29uc3QgeyByZXR1
cm4gbV9jbGllbnQ7IH0KKworcHJpdmF0ZToKKyAgICBXZWJDdXN0b21GaWx0ZXJQcm9ncmFtUHJv
eHkoV2ViQ3VzdG9tRmlsdGVyUHJvZ3JhbVByb3h5Q2xpZW50KiBjbGllbnQpCisgICAgICAgIDog
bV9jbGllbnQoY2xpZW50KQorICAgICAgICAsIG1faWQoc19uZXh0SWQrKykKKyAgICB7CisgICAg
fQorICAgIAorICAgIFdlYkN1c3RvbUZpbHRlclByb2dyYW1Qcm94eUNsaWVudCogbV9jbGllbnQ7
CisgICAgaW50IG1faWQ7CisgICAgCisgICAgc3RhdGljIGludCBzX25leHRJZDsKK307CisKK30g
Ly8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gVVNFKENPT1JESU5BVEVEX0dSQVBISUNT
KSAmJiBFTkFCTEUoQ1NTX1NIQURFUlMpCisKKyNlbmRpZiAvLyBXZWJDdXN0b21GaWx0ZXJQcm9n
cmFtUHJveHlfaAorCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9UYXJnZXQucHJpIGIvU291
cmNlL1dlYktpdDIvVGFyZ2V0LnByaQppbmRleCBkYWM5YjlhLi44OGYxNDNlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9UYXJnZXQucHJpCisrKyBiL1NvdXJjZS9XZWJLaXQyL1RhcmdldC5w
cmkKQEAgLTUwMiw2ICs1MDIsNyBAQCBTT1VSQ0VTICs9IFwKICAgICBTaGFyZWQvV2ViVVJMUmVz
cG9uc2UuY3BwIFwKICAgICBTaGFyZWQvV2ViV2hlZWxFdmVudC5jcHAgXAogICAgIFNoYXJlZC9D
b29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkR3JhcGhpY3NBcmd1bWVudENvZGVycy5jcHAg
XAorICAgIFNoYXJlZC9Db29yZGluYXRlZEdyYXBoaWNzL1dlYkN1c3RvbUZpbHRlclByb2dyYW1Q
cm94eS5jcHAgXAogICAgIFNoYXJlZC9xdC9Bcmd1bWVudENvZGVyc1F0LmNwcCBcCiAgICAgU2hh
cmVkL3F0L0xheWVyVHJlZUNvbnRleHRRdC5jcHAgXAogICAgIFNoYXJlZC9xdC9TaGFyZWFibGVC
aXRtYXBRdC5jcHAgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQ
YWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvTGF5ZXJUcmVlQ29vcmRpbmF0b3IuY3BwIGIvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvTGF5ZXJUcmVl
Q29vcmRpbmF0b3IuY3BwCmluZGV4IDJmYzRjN2EuLjVjOWZkY2IgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0xheWVyVHJl
ZUNvb3JkaW5hdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2Uv
Q29vcmRpbmF0ZWRHcmFwaGljcy9MYXllclRyZWVDb29yZGluYXRvci5jcHAKQEAgLTQ5LDYgKzQ5
LDExIEBACiAjaW5jbHVkZSA8V2ViQ29yZS9TZXR0aW5ncy5oPgogI2luY2x1ZGUgPHd0Zi9UZW1w
b3JhcnlDaGFuZ2UuaD4KIAorI2lmIEVOQUJMRShDU1NfU0hBREVSUykKKyNpbmNsdWRlICJDdXN0
b21GaWx0ZXJWYWxpZGF0ZWRQcm9ncmFtLmgiCisjaW5jbHVkZSAiVmFsaWRhdGVkQ3VzdG9tRmls
dGVyT3BlcmF0aW9uLmgiCisjZW5kaWYKKwogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKIG5h
bWVzcGFjZSBXZWJLaXQgewpAQCAtNjAsNiArNjUsMTAgQEAgUGFzc1JlZlB0cjxMYXllclRyZWVD
b29yZGluYXRvcj4gTGF5ZXJUcmVlQ29vcmRpbmF0b3I6OmNyZWF0ZShXZWJQYWdlKiB3ZWJQYWdl
KQogCiBMYXllclRyZWVDb29yZGluYXRvcjo6fkxheWVyVHJlZUNvb3JkaW5hdG9yKCkKIHsKKyNp
ZiBFTkFCTEUoQ1NTX1NIQURFUlMpCisgICAgZGlzY29ubmVjdEN1c3RvbUZpbHRlclByb2dyYW1z
KCk7CisjZW5kaWYKKwogICAgIC8vIFByZXZlbnQgc2V0Q29vcmRpbmF0ZWRHcmFwaGljc0xheWVy
Q2xpZW50KDApIC0+IGRldGFjaExheWVyKCkgZnJvbSBtb2RpZnlpbmcgdGhlIHNldCB3aGlsZSB3
ZSBpdGVyYXRlIGl0LgogICAgIEhhc2hTZXQ8V2ViQ29yZTo6Q29vcmRpbmF0ZWRHcmFwaGljc0xh
eWVyKj4gcmVnaXN0ZXJlZExheWVyczsKICAgICByZWdpc3RlcmVkTGF5ZXJzLnN3YXAobV9yZWdp
c3RlcmVkTGF5ZXJzKTsKQEAgLTMyNCwxMCArMzMzLDYyIEBAIHZvaWQgTGF5ZXJUcmVlQ29vcmRp
bmF0b3I6OnN5bmNDYW52YXMoV2ViTGF5ZXJJRCBpZCwgY29uc3QgSW50U2l6ZSYgY2FudmFzU2l6
ZSwKIHZvaWQgTGF5ZXJUcmVlQ29vcmRpbmF0b3I6OnN5bmNMYXllckZpbHRlcnMoV2ViTGF5ZXJJ
RCBpZCwgY29uc3QgRmlsdGVyT3BlcmF0aW9ucyYgZmlsdGVycykKIHsKICAgICBtX3Nob3VsZFN5
bmNGcmFtZSA9IHRydWU7CisjaWYgRU5BQkxFKENTU19TSEFERVJTKQorICAgIGNoZWNrQ3VzdG9t
RmlsdGVyUHJvZ3JhbVByb3hpZXMoZmlsdGVycyk7CisjZW5kaWYKICAgICBtX3dlYlBhZ2UtPnNl
bmQoTWVzc2FnZXM6OkxheWVyVHJlZUNvb3JkaW5hdG9yUHJveHk6OlNldENvbXBvc2l0aW5nTGF5
ZXJGaWx0ZXJzKGlkLCBmaWx0ZXJzKSk7CiB9CiAjZW5kaWYKIAorI2lmIEVOQUJMRShDU1NfU0hB
REVSUykKK3ZvaWQgTGF5ZXJUcmVlQ29vcmRpbmF0b3I6OmNoZWNrQ3VzdG9tRmlsdGVyUHJvZ3Jh
bVByb3hpZXMoY29uc3QgRmlsdGVyT3BlcmF0aW9ucyYgZmlsdGVycykKK3sKKyAgICAvLyBXZSBu
ZWVkIHRvIGNyZWF0ZSB0aGUgV2ViQ3VzdG9tRmlsdGVyUHJvZ3JhbVByb3h5IG9iamVjdHMgYmVm
b3JlIHdlIGdldCB0byBzZXJpYWxpemUgdGhlCisgICAgLy8gY3VzdG9tIGZpbHRlcnMgdG8gdGhl
IG90aGVyIHByb2Nlc3MuIFRoYXQncyBiZWNhdXNlIFdlYkN1c3RvbUZpbHRlclByb2dyYW1Qcm94
eSBuZWVkcworICAgIC8vIHRvIGxpbmsgYmFjayB0byB0aGUgY29vcmRpbmF0b3IsIHNvIHRoYXQg
d2UgY2FuIHNlbmQgYSBtZXNzYWdlIHRvIHRoZSBVSSBwcm9jZXNzIHdoZW4gCisgICAgLy8gdGhl
IHByb2dyYW0gaXMgbm90IG5lZWRlZCBhbnltb3JlLgorICAgIC8vIE5vdGUgdGhhdCB0aGUgc2Vy
aWFsaXphdGlvbiB3aWxsIG9ubHkgaGFwcGVuIGF0IGEgbGF0ZXIgdGltZSBpbiBBcmd1bWVudENv
ZGVyPFdlYkNvcmU6OkZpbHRlck9wZXJhdGlvbnM+OjplbmNvZGUuCisgICAgLy8gQXQgdGhhdCBw
b2ludCB0aGUgcHJvZ3JhbSB3aWxsIG9ubHkgYmUgc2VyaWFsaXplZCBvbmNlLiBBbGwgdGhlIG90
aGVyIHRpbWVzIGl0IHdpbGwgb25seSB1c2UgdGhlIElEIG9mIHRoZSBwcm9ncmFtLgorICAgIGZv
ciAoc2l6ZV90IGkgPSAwOyBpIDwgZmlsdGVycy5zaXplKCk7ICsraSkgeworICAgICAgICBjb25z
dCBGaWx0ZXJPcGVyYXRpb24qIG9wZXJhdGlvbiA9IGZpbHRlcnMuYXQoaSk7CisgICAgICAgIGlm
IChvcGVyYXRpb24tPmdldE9wZXJhdGlvblR5cGUoKSAhPSBGaWx0ZXJPcGVyYXRpb246OlZBTElE
QVRFRF9DVVNUT00pCisgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgY29uc3QgVmFsaWRh
dGVkQ3VzdG9tRmlsdGVyT3BlcmF0aW9uKiBjdXN0b21PcGVyYXRpb24gPSBzdGF0aWNfY2FzdDxj
b25zdCBWYWxpZGF0ZWRDdXN0b21GaWx0ZXJPcGVyYXRpb24qPihvcGVyYXRpb24pOworICAgICAg
ICBBU1NFUlQoY3VzdG9tT3BlcmF0aW9uLT52YWxpZGF0ZWRQcm9ncmFtKCktPmlzSW5pdGlhbGl6
ZWQoKSk7CisgICAgICAgIFRleHR1cmVNYXBwZXJQbGF0Zm9ybUNvbXBpbGVkUHJvZ3JhbSogcHJv
Z3JhbSA9IGN1c3RvbU9wZXJhdGlvbi0+dmFsaWRhdGVkUHJvZ3JhbSgpLT5wbGF0Zm9ybUNvbXBp
bGVkUHJvZ3JhbSgpOworICAgICAgICBpZiAoIXByb2dyYW0tPmNsaWVudCgpKQorICAgICAgICAg
ICAgcHJvZ3JhbS0+c2V0Q2xpZW50KFdlYkN1c3RvbUZpbHRlclByb2dyYW1Qcm94eTo6Y3JlYXRl
KHRoaXMpKTsKKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBXZWJDdXN0b21GaWx0ZXJQcm9n
cmFtUHJveHkqIGN1c3RvbUZpbHRlclByb2dyYW1Qcm94eSA9IHN0YXRpY19jYXN0PFdlYkN1c3Rv
bUZpbHRlclByb2dyYW1Qcm94eSo+KHByb2dyYW0tPmNsaWVudCgpKTsKKyAgICAgICAgICAgIGlm
ICghY3VzdG9tRmlsdGVyUHJvZ3JhbVByb3h5LT5jbGllbnQoKSkgeworICAgICAgICAgICAgICAg
IC8vIEp1c3QgaW4gY2FzZSB0aGUgTGF5ZXJUcmVlQ29vcmRpbmF0b3Igd2FzIGRlc3Ryb3llZCBh
bmQgcmVjcmVhdGVkLgorICAgICAgICAgICAgICAgIGN1c3RvbUZpbHRlclByb2dyYW1Qcm94eS0+
c2V0Q2xpZW50KHRoaXMpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAv
LyBJZiB0aGUgY2xpZW50IHdhcyBub3QgZGlzY29ubmVjdGVkIHRoZW4gdGhpcyBjb29yZGluYXRv
ciBtdXN0IGJlIHRoZSBjbGllbnQgZm9yIGl0LgorICAgICAgICAgICAgICAgIEFTU0VSVChjdXN0
b21GaWx0ZXJQcm9ncmFtUHJveHktPmNsaWVudCgpID09IHRoaXMpOworICAgICAgICAgICAgfQor
ICAgICAgICB9CisgICAgfQorfQorCit2b2lkIExheWVyVHJlZUNvb3JkaW5hdG9yOjpyZW1vdmVD
dXN0b21GaWx0ZXJQcm9ncmFtUHJveHkoV2ViQ3VzdG9tRmlsdGVyUHJvZ3JhbVByb3h5KiBjdXN0
b21GaWx0ZXJQcm9ncmFtUHJveHkpCit7CisgICAgLy8gQXQgdGhpcyB0aW1lIHRoZSBzaGFkZXIg
aXMgbm90IG5lZWRlZCBhbnltb3JlLCBzbyB3ZSByZW1vdmUgaXQgZnJvbSBvdXIgc2V0IGFuZCAK
KyAgICAvLyBzZW5kIGEgbWVzc2FnZSB0byB0aGUgb3RoZXIgcHJvY2VzcyB0byBkZWxldGUgaXQu
CisgICAgbV9jdXN0b21GaWx0ZXJQcm9ncmFtcy5yZW1vdmUoY3VzdG9tRmlsdGVyUHJvZ3JhbVBy
b3h5KTsKKyAgICAvLyBGSVhNRTogU2VuZCBhIG1lc3NhZ2UgdG8gZGVsZXRlIHRoZSBvYmplY3Qg
b24gdGhlIFVJIHByb2Nlc3MuCisgICAgLy8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTEwMTgwMQorfQorCit2b2lkIExheWVyVHJlZUNvb3JkaW5hdG9yOjpkaXNjb25u
ZWN0Q3VzdG9tRmlsdGVyUHJvZ3JhbXMoKQoreworICAgIC8vIE1ha2Ugc3VyZSB0aGF0IFdlYkNv
cmUgd2lsbCBub3QgY2FsbCBpbnRvIHRoaXMgY29vcmRpbmF0b3IgYW55bW9yZS4KKyAgICBIYXNo
U2V0PFdlYkN1c3RvbUZpbHRlclByb2dyYW1Qcm94eSo+OjppdGVyYXRvciBpdGVyID0gbV9jdXN0
b21GaWx0ZXJQcm9ncmFtcy5iZWdpbigpOworICAgIGZvciAoOyBpdGVyICE9IG1fY3VzdG9tRmls
dGVyUHJvZ3JhbXMuZW5kKCk7ICsraXRlcikKKyAgICAgICAgKCppdGVyKS0+c2V0Q2xpZW50KDAp
OworfQorI2VuZGlmCisKIHZvaWQgTGF5ZXJUcmVlQ29vcmRpbmF0b3I6OmF0dGFjaExheWVyKENv
b3JkaW5hdGVkR3JhcGhpY3NMYXllciogbGF5ZXIpCiB7CiAgICAgQVNTRVJUKCFtX3JlZ2lzdGVy
ZWRMYXllcnMuY29udGFpbnMobGF5ZXIpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0xheWVyVHJlZUNvb3JkaW5hdG9y
LmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGlj
cy9MYXllclRyZWVDb29yZGluYXRvci5oCmluZGV4IDQwMTdlMWYuLjc4NGEzOTIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNz
L0xheWVyVHJlZUNvb3JkaW5hdG9yLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvTGF5ZXJUcmVlQ29vcmRpbmF0b3IuaApAQCAtMzIs
NiArMzIsMTAgQEAKICNpbmNsdWRlIDxXZWJDb3JlL0dyYXBoaWNzU3VyZmFjZS5oPgogI2luY2x1
ZGUgPHd0Zi9Pd25QdHIuaD4KIAorI2lmIEVOQUJMRShDU1NfU0hBREVSUykKKyNpbmNsdWRlICJX
ZWJDdXN0b21GaWx0ZXJQcm9ncmFtUHJveHkuaCIKKyNlbmRpZgorCiBuYW1lc3BhY2UgV2ViS2l0
IHsKIAogY2xhc3MgVXBkYXRlSW5mbzsKQEAgLTQwLDcgKzQ0LDExIEBAIGNsYXNzIFdlYlBhZ2U7
CiBjbGFzcyBMYXllclRyZWVDb29yZGluYXRvciA6IHB1YmxpYyBMYXllclRyZWVIb3N0LCBXZWJD
b3JlOjpHcmFwaGljc0xheWVyQ2xpZW50CiAgICAgLCBwdWJsaWMgQ29vcmRpbmF0ZWRHcmFwaGlj
c0xheWVyQ2xpZW50CiAgICAgLCBwdWJsaWMgVXBkYXRlQXRsYXNDbGllbnQKLSAgICAsIHB1Ymxp
YyBXZWJDb3JlOjpHcmFwaGljc0xheWVyRmFjdG9yeSB7CisgICAgLCBwdWJsaWMgV2ViQ29yZTo6
R3JhcGhpY3NMYXllckZhY3RvcnkKKyNpZiBFTkFCTEUoQ1NTX1NIQURFUlMpCisgICAgLCBXZWJD
dXN0b21GaWx0ZXJQcm9ncmFtUHJveHlDbGllbnQKKyNlbmRpZgorewogcHVibGljOgogICAgIHN0
YXRpYyBQYXNzUmVmUHRyPExheWVyVHJlZUNvb3JkaW5hdG9yPiBjcmVhdGUoV2ViUGFnZSopOwog
ICAgIHZpcnR1YWwgfkxheWVyVHJlZUNvb3JkaW5hdG9yKCk7CkBAIC0xMzcsNiArMTQ1LDE0IEBA
IHByaXZhdGU6CiAKICAgICB2b2lkIHJlbGVhc2VJbmFjdGl2ZUF0bGFzZXNUaW1lckZpcmVkKFdl
YkNvcmU6OlRpbWVyPExheWVyVHJlZUNvb3JkaW5hdG9yPiopOwogCisjaWYgRU5BQkxFKENTU19T
SEFERVJTKQorICAgIC8vIFdlYkN1c3RvbUZpbHRlclByb2dyYW1Qcm94eUNsaWVudAorICAgIHZv
aWQgcmVtb3ZlQ3VzdG9tRmlsdGVyUHJvZ3JhbVByb3h5KFdlYkN1c3RvbUZpbHRlclByb2dyYW1Q
cm94eSopOworCisgICAgdm9pZCBjaGVja0N1c3RvbUZpbHRlclByb2dyYW1Qcm94aWVzKGNvbnN0
IFdlYkNvcmU6OkZpbHRlck9wZXJhdGlvbnMmKTsKKyAgICB2b2lkIGRpc2Nvbm5lY3RDdXN0b21G
aWx0ZXJQcm9ncmFtcygpOworI2VuZGlmCisKICAgICBPd25QdHI8V2ViQ29yZTo6R3JhcGhpY3NM
YXllcj4gbV9yb290TGF5ZXI7CiAKICAgICAvLyBUaGUgbGF5ZXIgd2hpY2ggY29udGFpbnMgYWxs
IG5vbi1jb21wb3NpdGVkIGNvbnRlbnQuCkBAIC0xNTEsNiArMTY3LDEwIEBAIHByaXZhdGU6CiAg
ICAgVmVjdG9yPGludDY0X3Q+IG1fcmVsZWFzZWREaXJlY3RseUNvbXBvc2l0ZWRJbWFnZXM7CiAg
ICAgVmVjdG9yPE93blB0cjxVcGRhdGVBdGxhcz4gPiBtX3VwZGF0ZUF0bGFzZXM7CiAKKyNpZiBF
TkFCTEUoQ1NTX1NIQURFUlMpCisgICAgSGFzaFNldDxXZWJDdXN0b21GaWx0ZXJQcm9ncmFtUHJv
eHkqPiBtX2N1c3RvbUZpbHRlclByb2dyYW1zOworI2VuZGlmCisKICAgICBib29sIG1fbm90aWZ5
QWZ0ZXJTY2hlZHVsZWRMYXllckZsdXNoOwogICAgIGJvb2wgbV9pc1ZhbGlkOwogICAgIC8vIFdl
IGRvbid0IHNlbmQgdGhlIG1lc3NhZ2VzIHJlbGF0ZWQgdG8gcmVsZWFzaW5nIHJlc291cmNlcyB0
byBVSSBQcm9jZXNzIGR1cmluZyBwdXJnaW5nLCBiZWNhdXNlIFVJIFByb2Nlc3MgYWxyZWFkeSBo
YWQgcmVtb3ZlZCBhbGwgcmVzb3VyY2VzLgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>174503</attachid>
            <date>2012-11-15 13:03:14 -0800</date>
            <delta_ts>2012-11-15 14:00:07 -0800</delta_ts>
            <desc>Patch V2</desc>
            <filename>bug102414_v2.patch</filename>
            <type>text/plain</type>
            <size>33529</size>
            <attacher name="Alexandru Chiculita">achicu</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYkNv
cmUvQ01ha2VMaXN0cy50eHQKaW5kZXggYTZhOWFkMy4uMzQyNGQ4ZiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0
cy50eHQKQEAgLTUxLDYgKzUxLDcgQEAgU0VUKFdlYkNvcmVfSU5DTFVERV9ESVJFQ1RPUklFUwog
ICAgICIke1dFQkNPUkVfRElSfS9wbGF0Zm9ybS9ncmFwaGljcy9jcHUvYXJtIgogICAgICIke1dF
QkNPUkVfRElSfS9wbGF0Zm9ybS9ncmFwaGljcy9jcHUvYXJtL2ZpbHRlcnMiCiAgICAgIiR7V0VC
Q09SRV9ESVJ9L3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMiCisgICAgIiR7V0VCQ09SRV9ESVJ9
L3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvdGV4bWFwIgogICAgICIke1dFQkNPUkVfRElSfS9w
bGF0Zm9ybS9ncmFwaGljcy9oYXJmYnV6eiIKICAgICAiJHtXRUJDT1JFX0RJUn0vcGxhdGZvcm0v
Z3JhcGhpY3MvaGFyZmJ1enovbmciCiAgICAgIiR7V0VCQ09SRV9ESVJ9L3BsYXRmb3JtL2dyYXBo
aWNzL29wZW50eXBlIgpAQCAtMTkwNiw2ICsxOTA3LDcgQEAgU0VUKFdlYkNvcmVfU09VUkNFUwog
CiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvY3B1L2FybS9maWx0ZXJzL0ZFTGlnaHRpbmdORU9OLmNw
cAogCisgICAgcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy90ZXhtYXAvQ3VzdG9tRmlsdGVyVmFs
aWRhdGVkUHJvZ3JhbVRleHR1cmVNYXBwZXIuY3BwCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvZmls
dGVycy9DdXN0b21GaWx0ZXJDb21waWxlZFByb2dyYW0uY3BwCiAgICAgcGxhdGZvcm0vZ3JhcGhp
Y3MvZmlsdGVycy9DdXN0b21GaWx0ZXJHbG9iYWxDb250ZXh0LmNwcAogICAgIHBsYXRmb3JtL2dy
YXBoaWNzL2ZpbHRlcnMvQ3VzdG9tRmlsdGVyTWVzaC5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBkZGEyMDNl
Li42ZTFmNzhlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTEgQEAKKzIwMTItMTEtMTUgIEFsZXhh
bmRydSBDaGljdWxpdGEgIDxhY2hpY3VAYWRvYmUuY29tPgorCisgICAgICAgIFtUZXhtYXBdW0NT
UyBTaGFkZXJzXSBNYWtlIHRoZSBDdXN0b21GaWx0ZXJWYWxpZGF0ZWRQcm9ncmFtIG1haW50YWlu
IHRoZSBwbGF0Zm9ybSBjb21waWxlZCBwcm9ncmFtCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDI0MTQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBBZGRlZCBXZWJDb3JlIGNsYXNzZXMgbmVlZGVkIGZvciB0
aGUgV2ViS2l0MiBpbXBsZW1lbnRhdGlvbiBvZiBUZXh0dXJlIE1hcHBlciB0byBrZWVwIGEgcmVm
ZXJlbmNlIHRvIHRoZSAKKyAgICAgICAgcGxhdGZvcm0gY29tcGlsZWQgY3VzdG9tIGZpbHRlci4g
SXQgaXMganVzdCB1c2VkIHRvIG1haW50YWluIHRoZSBsaWZlLXRpbWUgb2YgdGhlIG9iamVjdHMu
IFdlYktpdDIgaW5qZWN0cyBhCisgICAgICAgIGNsaWVudCBpbiBUZXh0dXJlTWFwcGVyUGxhdGZv
cm1Db21waWxlZFByb2dyYW0gYW5kIHJlY2VpdmVzIGEgY2FsbGJhY2sgd2hlbiB0aGUgY3VzdG9t
IGZpbHRlciBwcm9ncmFtIGlzIG5vdAorICAgICAgICB1c2VkIHRvIHJlbmRlciBhbnkgbGF5ZXIg
b24gdGhlIHBhZ2UuIAorCisgICAgICAgIE5vdGUgdGhhdCBDdXN0b21GaWx0ZXJWYWxpZGF0ZWRQ
cm9ncmFtIGFyZSByZXVzZWQgYWNyb3NzIG11bHRpcGxlIGVsZW1lbnRzIG9mIHRoZSBzYW1lIHBh
Z2UuIEFsc28sIHRoZSBpbnN0YW5jZXMKKyAgICAgICAgYXJlIHJldXNlZCBhY3Jvc3MgZnJhbWVz
LCBzbyBhbmltYXRpb25zIHNob3VsZCByZXVzZSB0aGUgc2FtZSBwcmUtdmFsaWRhdGVkIHByb2dy
YW0uIEluIHRoaXMgY2FzZSwgdGhlIG1lY2hhbmlzbSBpcworICAgICAgICBleHRlbmRlZCBhbmQg
cmV1c2VkIGluIHRoZSBwbGF0Zm9ybSBjb21wb3NpdG9yLgorICAgICAgICAKKyAgICAgICAgTm8g
bmV3IHRlc3RzLCBleGlzdGluZyB0ZXN0cyBmb3IgQ1NTIEN1c3RvbSBGaWx0ZXJzIGFscmVhZHkg
Y292ZXIgdGhpcyBwYXRoLgorCisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6CisgICAgICAgICog
R05VbWFrZWZpbGUuYW06CisgICAgICAgICogR05VbWFrZWZpbGUubGlzdC5hbToKKyAgICAgICAg
KiBUYXJnZXQucHJpOgorICAgICAgICAqIFdlYkNvcmUuZ3lwL1dlYkNvcmUuZ3lwOgorICAgICAg
ICAqIFdlYkNvcmUuZ3lwaToKKyAgICAgICAgKiBXZWJDb3JlLnByaToKKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0N1c3RvbUZpbHRlclZhbGlkYXRlZFByb2dyYW0uY3BwOgor
ICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9D
dXN0b21GaWx0ZXJWYWxpZGF0ZWRQcm9ncmFtLmg6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAg
ICAgKEN1c3RvbUZpbHRlclZhbGlkYXRlZFByb2dyYW0pOgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL2ZpbHRlcnMvdGV4bWFwL0N1c3RvbUZpbHRlclZhbGlkYXRlZFByb2dyYW1UZXh0dXJl
TWFwcGVyLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6
OkN1c3RvbUZpbHRlclZhbGlkYXRlZFByb2dyYW06OnBsYXRmb3JtQ29tcGlsZWRQcm9ncmFtKTog
UGxhdGZvcm0gaW1wbGVtZW50YXRpb24gZm9yIGNyZWF0aW5nIGFuZCBkZWxldGluZyB0aGUgcmVm
ZXJlbmNlLgorICAgICAgICAoV2ViQ29yZTo6Q3VzdG9tRmlsdGVyVmFsaWRhdGVkUHJvZ3JhbTo6
cGxhdGZvcm1Jbml0KToKKyAgICAgICAgKFdlYkNvcmU6OkN1c3RvbUZpbHRlclZhbGlkYXRlZFBy
b2dyYW06OnBsYXRmb3JtRGVzdHJveSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZmls
dGVycy90ZXhtYXAvVGV4dHVyZU1hcHBlclBsYXRmb3JtQ29tcGlsZWRQcm9ncmFtLmg6IEFkZGVk
LgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChUZXh0dXJlTWFwcGVyUGxhdGZvcm1Db21w
aWxlZFByb2dyYW1DbGllbnQpOgorICAgICAgICAoV2ViQ29yZTo6VGV4dHVyZU1hcHBlclBsYXRm
b3JtQ29tcGlsZWRQcm9ncmFtQ2xpZW50OjpyZWYpOgorICAgICAgICAoV2ViQ29yZTo6VGV4dHVy
ZU1hcHBlclBsYXRmb3JtQ29tcGlsZWRQcm9ncmFtQ2xpZW50OjpkZXJlZik6CisgICAgICAgIChU
ZXh0dXJlTWFwcGVyUGxhdGZvcm1Db21waWxlZFByb2dyYW0pOgorICAgICAgICBTdG9yZXMgYSBs
aW5rIHRvIGEgVGV4dHVyZU1hcHBlclBsYXRmb3JtQ29tcGlsZWRQcm9ncmFtQ2xpZW50LiBJdCdz
IG1haW4gcHVycG9zZSBpcyB0byBjYWxsIHVucmVmIG9uIHRoZSBjbGllbnQgd2hlbgorICAgICAg
ICB0aGUgc2hhZGVyIGlzIG5vdCBuZWVkZWQgYW55bW9yZS4gV2ViS2l0MiBjYW4gdXNlIHRoYXQg
dG8gZGVsZXRlIHRoZSBjb3JyZXNwb25kaW5nIHNoYWRlciBmcm9tIHRoZSBjb21wb3NpdG9yIHNp
ZGUuCisgICAgICAgIChXZWJDb3JlOjpUZXh0dXJlTWFwcGVyUGxhdGZvcm1Db21waWxlZFByb2dy
YW06OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpUZXh0dXJlTWFwcGVyUGxhdGZvcm1Db21w
aWxlZFByb2dyYW06OnNldENsaWVudCk6IFVzZWQgYnkgV2ViS2l0MiB0byBpbmplY3QgdGhlIHBs
YXRmb3JtIGNsaWVudC4KKyAgICAgICAgKFdlYkNvcmU6OlRleHR1cmVNYXBwZXJQbGF0Zm9ybUNv
bXBpbGVkUHJvZ3JhbTo6Y2xpZW50KToKKyAgICAgICAgKFdlYkNvcmU6OlRleHR1cmVNYXBwZXJQ
bGF0Zm9ybUNvbXBpbGVkUHJvZ3JhbTo6VGV4dHVyZU1hcHBlclBsYXRmb3JtQ29tcGlsZWRQcm9n
cmFtKToKKwogMjAxMi0xMS0xNSAgU2hlcmlmZiBCb3QgIDx3ZWJraXQucmV2aWV3LmJvdEBnbWFp
bC5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjEzNDgwMCBhbmQgcjEz
NDgwNS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmFtIGIvU291cmNl
L1dlYkNvcmUvR05VbWFrZWZpbGUuYW0KaW5kZXggMTljOTIxOS4uODNiYWZjZiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0KKysrIGIvU291cmNlL1dlYkNvcmUvR05V
bWFrZWZpbGUuYW0KQEAgLTU3LDYgKzU3LDcgQEAgd2ViY29yZV9jcHBmbGFncyArPSBcCiAJLUkk
KHNyY2RpcikvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY3B1L2FybSBcCiAJLUkk
KHNyY2RpcikvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY3B1L2FybS9maWx0ZXJz
LyBcCiAJLUkkKHNyY2RpcikvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVy
cyBcCisJLUkkKHNyY2RpcikvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVy
cy90ZXhtYXAgXAogCS1JJChzcmNkaXIpL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2dwdSBcCiAJLUkkKHNyY2RpcikvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3Bl
bmdsIFwKIAktSSQoc3JjZGlyKS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVu
dHlwZSBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtIGIv
U291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQppbmRleCA1YzcyOWRkLi5lZjlkNDU3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KQEAgLTYzMzAsNiArNjMzMCw4IEBAIGVu
ZGlmICAjIEVORCBVU0VfQ0xVVFRFUgogCiBpZiBVU0VfVEVYVFVSRV9NQVBQRVJfQ0FJUk8KIHdl
YmNvcmVfc291cmNlcyArPSBcCisJU291cmNlL1dlYkNvcmUvL3BsYXRmb3JtL2dyYXBoaWNzL2Zp
bHRlcnMvdGV4bWFwL0N1c3RvbUZpbHRlclZhbGlkYXRlZFByb2dyYW1UZXh0dXJlTWFwcGVyLmNw
cCBcCisJU291cmNlL1dlYkNvcmUvL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvdGV4bWFwL1Rl
eHR1cmVNYXBwZXJQbGF0Zm9ybUNvbXBpbGVkUHJvZ3JhbS5oIFwKIAlTb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlclNoYWRlck1hbmFnZXIuY3BwIFwK
IAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlclNo
YWRlck1hbmFnZXIuaCBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFw
L0dyYXBoaWNzTGF5ZXJUZXh0dXJlTWFwcGVyLmNwcCBcCkBAIC02MzUxLDYgKzYzNTMsOCBAQCBl
bmRpZiAgIyBFTkQgVVNFX1RFWFRVUkVfTUFQUEVSX0NBSVJPCiAKIGlmIFVTRV9URVhUVVJFX01B
UFBFUl9HTAogd2ViY29yZV9zb3VyY2VzICs9IFwKKwlTb3VyY2UvV2ViQ29yZS8vcGxhdGZvcm0v
Z3JhcGhpY3MvZmlsdGVycy90ZXhtYXAvQ3VzdG9tRmlsdGVyVmFsaWRhdGVkUHJvZ3JhbVRleHR1
cmVNYXBwZXIuY3BwIFwKKwlTb3VyY2UvV2ViQ29yZS8vcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVy
cy90ZXhtYXAvVGV4dHVyZU1hcHBlclBsYXRmb3JtQ29tcGlsZWRQcm9ncmFtLmggXAogCVNvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyR0wuY3BwIFwK
IAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckdM
LmggXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFw
cGVyU2hhZGVyTWFuYWdlci5jcHAgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvVGFyZ2V0
LnByaSBiL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkKaW5kZXggNzY0Y2JlOS4uMzFkNzljMSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9UYXJnZXQucHJpCkBAIC0yMDgwLDYgKzIwODAsNyBAQCBIRUFERVJTICs9IFwKICAgICBwbGF0
Zm9ybS9ncmFwaGljcy9jcHUvYXJtL2ZpbHRlcnMvRkVHYXVzc2lhbkJsdXJORU9OLmggXAogICAg
IHBsYXRmb3JtL2dyYXBoaWNzL2NwdS9hcm0vZmlsdGVycy9GRUxpZ2h0aW5nTkVPTi5oIFwKICAg
ICBwbGF0Zm9ybS9ncmFwaGljcy9Dcm9zc2ZhZGVHZW5lcmF0ZWRJbWFnZS5oIFwKKyAgICBwbGF0
Zm9ybS9ncmFwaGljcy9maWx0ZXJzL3RleG1hcC9UZXh0dXJlTWFwcGVyUGxhdGZvcm1Db21waWxl
ZFByb2dyYW0uaCBcCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9DdXN0b21GaWx0ZXJB
cnJheVBhcmFtZXRlci5oIFwKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0N1c3RvbUZp
bHRlckNvbnN0YW50cy5oIFwKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0N1c3RvbUZp
bHRlckdsb2JhbENvbnRleHQuaCBcCkBAIC0zNTAyLDYgKzM1MDMsNyBAQCBlbmFibGU/KFhTTFQp
IHsKIGVuYWJsZT8oRklMVEVSUykgewogICAgIFNPVVJDRVMgKz0gXAogICAgICAgICBwbGF0Zm9y
bS9ncmFwaGljcy9jcHUvYXJtL2ZpbHRlcnMvRkVMaWdodGluZ05FT04uY3BwIFwKKyAgICAgICAg
cGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy90ZXhtYXAvQ3VzdG9tRmlsdGVyVmFsaWRhdGVkUHJv
Z3JhbVRleHR1cmVNYXBwZXIuY3BwIFwKICAgICAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVy
cy9DdXN0b21GaWx0ZXJHbG9iYWxDb250ZXh0LmNwcCBcCiAgICAgICAgIHBsYXRmb3JtL2dyYXBo
aWNzL2ZpbHRlcnMvQ3VzdG9tRmlsdGVyT3BlcmF0aW9uLmNwcCBcCiAgICAgICAgIHBsYXRmb3Jt
L2dyYXBoaWNzL2ZpbHRlcnMvQ3VzdG9tRmlsdGVyUGFyYW1ldGVyTGlzdC5jcHAgXApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXAvV2ViQ29yZS5neXAgYi9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLmd5cC9XZWJDb3JlLmd5cAppbmRleCAxNzBhNDViLi42NTllMDhmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cC9XZWJDb3JlLmd5cAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLmd5cC9XZWJDb3JlLmd5cApAQCAtMTE0LDYgKzExNCw3IEBACiAg
ICAgICAnLi4vcGxhdGZvcm0vZ3JhcGhpY3MvY3B1L2FybScsCiAgICAgICAnLi4vcGxhdGZvcm0v
Z3JhcGhpY3MvY3B1L2FybS9maWx0ZXJzJywKICAgICAgICcuLi9wbGF0Zm9ybS9ncmFwaGljcy9m
aWx0ZXJzJywKKyAgICAgICcuLi9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL3RleG1hcCcsCiAg
ICAgICAnLi4vcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9za2lhJywKICAgICAgICcuLi9wbGF0
Zm9ybS9ncmFwaGljcy9ncHUnLAogICAgICAgJy4uL3BsYXRmb3JtL2dyYXBoaWNzL29wZW50eXBl
JywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaSBiL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUuZ3lwaQppbmRleCBmMWQzMDdhLi40NTAwYjY0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBp
CkBAIC00OTQ5LDYgKzQ5NDksOCBAQAogICAgICAgICAgICAgJ3BsYXRmb3JtL2dyYXBoaWNzL2Vm
bC9JbWFnZUVmbC5jcHAnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL2dyYXBoaWNzL2VmbC9JbnRQ
b2ludEVmbC5jcHAnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL2dyYXBoaWNzL2VmbC9JbnRSZWN0
RWZsLmNwcCcsCisgICAgICAgICAgICAncGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy90ZXhtYXAv
Q3VzdG9tRmlsdGVyVmFsaWRhdGVkUHJvZ3JhbVRleHR1cmVNYXBwZXIuY3BwJywKKyAgICAgICAg
ICAgICdwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL3RleG1hcC9UZXh0dXJlTWFwcGVyUGxhdGZv
cm1Db21waWxlZFByb2dyYW0uaCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vZ3JhcGhpY3MvZmls
dGVycy9DdXN0b21GaWx0ZXJBcnJheVBhcmFtZXRlci5oJywKICAgICAgICAgICAgICdwbGF0Zm9y
bS9ncmFwaGljcy9maWx0ZXJzL0N1c3RvbUZpbHRlckNvbnN0YW50cy5oJywKICAgICAgICAgICAg
ICdwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0N1c3RvbUZpbHRlckdsb2JhbENvbnRleHQuY3Bw
JywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUucHJpIGIvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS5wcmkKaW5kZXggMDI5YzdhZS4uMzUwNDg3MCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS5wcmkKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5wcmkKQEAg
LTU2LDYgKzU2LDcgQEAgSU5DTFVERVBBVEggKz0gXAogICAgICQkU09VUkNFX0RJUi9wbGF0Zm9y
bS9ncmFwaGljcy9jcHUvYXJtIFwKICAgICAkJFNPVVJDRV9ESVIvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y3B1L2FybS9maWx0ZXJzIFwKICAgICAkJFNPVVJDRV9ESVIvcGxhdGZvcm0vZ3JhcGhpY3MvZmls
dGVycyBcCisgICAgJCRTT1VSQ0VfRElSL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvdGV4bWFw
IFwKICAgICAkJFNPVVJDRV9ESVIvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsIFwKICAgICAkJFNP
VVJDRV9ESVIvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbnR5cGUgXAogICAgICQkU09VUkNFX0RJUi9w
bGF0Zm9ybS9ncmFwaGljcy9xdCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9maWx0ZXJzL0N1c3RvbUZpbHRlclZhbGlkYXRlZFByb2dyYW0uY3BwIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9DdXN0b21GaWx0ZXJWYWxpZGF0
ZWRQcm9ncmFtLmNwcAppbmRleCBmNWVmNmNmLi5lZjVlZTRlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0N1c3RvbUZpbHRlclZhbGlkYXRlZFBy
b2dyYW0uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMv
Q3VzdG9tRmlsdGVyVmFsaWRhdGVkUHJvZ3JhbS5jcHAKQEAgLTUxMiw3ICs1MTIsNyBAQCBDdXN0
b21GaWx0ZXJWYWxpZGF0ZWRQcm9ncmFtOjp+Q3VzdG9tRmlsdGVyVmFsaWRhdGVkUHJvZ3JhbSgp
CiAgICAgICAgIG1fZ2xvYmFsQ29udGV4dC0+cmVtb3ZlVmFsaWRhdGVkUHJvZ3JhbSh0aGlzKTsK
IH0KIAotI2lmICFQTEFURk9STShCTEFDS0JFUlJZKQorI2lmICFQTEFURk9STShCTEFDS0JFUlJZ
KSAmJiAhVVNFKFRFWFRVUkVfTUFQUEVSKQogdm9pZCBDdXN0b21GaWx0ZXJWYWxpZGF0ZWRQcm9n
cmFtOjpwbGF0Zm9ybUluaXQoKQogewogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9DdXN0b21GaWx0ZXJWYWxpZGF0ZWRQcm9ncmFtLmggYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0N1c3RvbUZpbHRlclZhbGlk
YXRlZFByb2dyYW0uaAppbmRleCAxMmZlZmNjLi44YWZjOWVjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0N1c3RvbUZpbHRlclZhbGlkYXRlZFBy
b2dyYW0uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0N1
c3RvbUZpbHRlclZhbGlkYXRlZFByb2dyYW0uaApAQCAtNTMsNiArNTMsMTEgQEAgc3RydWN0IEFO
R0xFU2hhZGVyU3ltYm9sOwogY2xhc3MgQ3VzdG9tRmlsdGVyQ29tcGlsZWRQcm9ncmFtOwogY2xh
c3MgQ3VzdG9tRmlsdGVyR2xvYmFsQ29udGV4dDsKIAorI2lmIFVTRShURVhUVVJFX01BUFBFUikK
K2NsYXNzIFRleHR1cmVNYXBwZXJQbGF0Zm9ybUNvbXBpbGVkUHJvZ3JhbTsKK3R5cGVkZWYgVGV4
dHVyZU1hcHBlclBsYXRmb3JtQ29tcGlsZWRQcm9ncmFtIFBsYXRmb3JtQ29tcGlsZWRQcm9ncmFt
OworI2VuZGlmCisKIC8vCiAvLyBBIHVuaXF1ZSBjb21iaW5hdGlvbiBvZiB2ZXJ0ZXggc2hhZGVy
IGFuZCBmcmFnbWVudCBzaGFkZXIgaXMgb25seSB2YWxpZGF0ZWQgYW5kIGNvbXBpbGVkIG9uY2Uu
CiAvLyBBbGwgc2hhZGVycyBhcmUgdmFsaWRhdGVkIHRocm91Z2ggQU5HTEUgaW4gQ3VzdG9tRmls
dGVyVmFsaWRhdGVkUHJvZ3JhbSBiZWZvcmUgYmVpbmcgY29tcGlsZWQgYnkgdGhlIEdyYXBoaWNz
Q29udGV4dDNEIGluIEN1c3RvbUZpbHRlckNvbXBpbGVkUHJvZ3JhbS4KQEAgLTkxLDcgKzk2LDcg
QEAgcHVibGljOgogICAgICAgICByZXR1cm4gbV92YWxpZGF0ZWRGcmFnbWVudFNoYWRlcjsgCiAg
ICAgfQogCi0jaWYgUExBVEZPUk0oQkxBQ0tCRVJSWSkKKyNpZiBQTEFURk9STShCTEFDS0JFUlJZ
KSB8fCBVU0UoVEVYVFVSRV9NQVBQRVIpCiAgICAgUGxhdGZvcm1Db21waWxlZFByb2dyYW0qIHBs
YXRmb3JtQ29tcGlsZWRQcm9ncmFtKCk7CiAjZW5kaWYKIApAQCAtMTI0LDcgKzEyOSw3IEBAIHBy
aXZhdGU6CiAgICAgU3RyaW5nIG1fdmFsaWRhdGVkRnJhZ21lbnRTaGFkZXI7CiAKICAgICBSZWZQ
dHI8Q3VzdG9tRmlsdGVyQ29tcGlsZWRQcm9ncmFtPiBtX2NvbXBpbGVkUHJvZ3JhbTsKLSNpZiBQ
TEFURk9STShCTEFDS0JFUlJZKQorI2lmIFBMQVRGT1JNKEJMQUNLQkVSUlkpIHx8IFVTRShURVhU
VVJFX01BUFBFUikKICAgICBQbGF0Zm9ybUNvbXBpbGVkUHJvZ3JhbSogbV9wbGF0Zm9ybUNvbXBp
bGVkUHJvZ3JhbTsKICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9maWx0ZXJzL3RleG1hcC9DdXN0b21GaWx0ZXJWYWxpZGF0ZWRQcm9ncmFtVGV4
dHVyZU1hcHBlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJz
L3RleG1hcC9DdXN0b21GaWx0ZXJWYWxpZGF0ZWRQcm9ncmFtVGV4dHVyZU1hcHBlci5jcHAKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYmVkMGU2ZQotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvdGV4bWFwL0N1c3Rv
bUZpbHRlclZhbGlkYXRlZFByb2dyYW1UZXh0dXJlTWFwcGVyLmNwcApAQCAtMCwwICsxLDU4IEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIEFkb2JlIFN5c3RlbXMgSW5jb3Jwb3JhdGVkLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUKKyAqICAgIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nCisgKiAgICBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogICAg
Y29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcKKyAqICAgIGRpc2NsYWltZXIgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscworICogICAgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVIgIkFTIElTIiBB
TkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUIEhPTERFUiBCRQorICogTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LAorICogT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUgorICogVE9SVCAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GCisgKiBU
SEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJ
VFkgT0YKKyAqIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKworI2lm
IEVOQUJMRShDU1NfU0hBREVSUykgJiYgVVNFKFRFWFRVUkVfTUFQUEVSKQorI2luY2x1ZGUgIkN1
c3RvbUZpbHRlclZhbGlkYXRlZFByb2dyYW0uaCIKKworI2luY2x1ZGUgIlRleHR1cmVNYXBwZXJQ
bGF0Zm9ybUNvbXBpbGVkUHJvZ3JhbS5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1BsYXRm
b3JtQ29tcGlsZWRQcm9ncmFtKiBDdXN0b21GaWx0ZXJWYWxpZGF0ZWRQcm9ncmFtOjpwbGF0Zm9y
bUNvbXBpbGVkUHJvZ3JhbSgpCit7CisgICAgaWYgKCFtX3BsYXRmb3JtQ29tcGlsZWRQcm9ncmFt
KQorICAgICAgICBtX3BsYXRmb3JtQ29tcGlsZWRQcm9ncmFtID0gVGV4dHVyZU1hcHBlclBsYXRm
b3JtQ29tcGlsZWRQcm9ncmFtOjpjcmVhdGUoKS5sZWFrUmVmKCk7CisgICAgcmV0dXJuIG1fcGxh
dGZvcm1Db21waWxlZFByb2dyYW07Cit9CisKK3ZvaWQgQ3VzdG9tRmlsdGVyVmFsaWRhdGVkUHJv
Z3JhbTo6cGxhdGZvcm1Jbml0KCkKK3sKKyAgICBtX3BsYXRmb3JtQ29tcGlsZWRQcm9ncmFtID0g
MDsKK30KKwordm9pZCBDdXN0b21GaWx0ZXJWYWxpZGF0ZWRQcm9ncmFtOjpwbGF0Zm9ybURlc3Ry
b3koKQoreworICAgIGRlcmVmSWZOb3ROdWxsKG1fcGxhdGZvcm1Db21waWxlZFByb2dyYW0pOwor
fQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoQ1NTX1NIQURF
UlMpICYmIFVTRShURVhUVVJFX01BUFBFUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvdGV4bWFwL1RleHR1cmVNYXBwZXJQbGF0Zm9ybUNvbXBp
bGVkUHJvZ3JhbS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy90
ZXhtYXAvVGV4dHVyZU1hcHBlclBsYXRmb3JtQ29tcGlsZWRQcm9ncmFtLmgKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYWZhNmNhNQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvdGV4bWFwL1RleHR1cmVNYXBwZXJQ
bGF0Zm9ybUNvbXBpbGVkUHJvZ3JhbS5oCkBAIC0wLDAgKzEsNzEgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMTIgQWRvYmUgU3lzdGVtcyBJbmNvcnBvcmF0ZWQuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZQor
ICogICAgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcKKyAqICAgIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiAgICBjb3B5cmlnaHQgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZworICogICAgZGlzY2xh
aW1lciBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzCisgKiAgICBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUiAiQVMgSVMiIEFORCBBTlkKKyAqIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
VEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIFRIRSBDT1BZUklHSFQgSE9MREVSIEJFCisgKiBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksCisgKiBPUiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VS
RU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SCisgKiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YKKyAqIFRIRSBVU0UgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRgorICogU1VDSCBE
QU1BR0UuCisgKi8KKworI2lmbmRlZiBUZXh0dXJlTWFwcGVyUGxhdGZvcm1Db21waWxlZFByb2dy
YW1faAorI2RlZmluZSBUZXh0dXJlTWFwcGVyUGxhdGZvcm1Db21waWxlZFByb2dyYW1faAorCisj
aWYgRU5BQkxFKENTU19TSEFERVJTKQorI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CisjaW5j
bHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KKyNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CisKK25hbWVz
cGFjZSBXZWJDb3JlIHsKKworY2xhc3MgVGV4dHVyZU1hcHBlclBsYXRmb3JtQ29tcGlsZWRQcm9n
cmFtQ2xpZW50IHsKK3B1YmxpYzoKKyAgICB2b2lkIHJlZigpIHsgcmVmRnJvbVZhbGlkYXRlZFBy
b2dyYW0oKTsgfQorICAgIHZvaWQgZGVyZWYoKSB7IGRlcmVmRnJvbVZhbGlkYXRlZFByb2dyYW0o
KTsgfQorCisgICAgdmlydHVhbCB2b2lkIHJlZkZyb21WYWxpZGF0ZWRQcm9ncmFtKCkgPSAwOwor
ICAgIHZpcnR1YWwgdm9pZCBkZXJlZkZyb21WYWxpZGF0ZWRQcm9ncmFtKCkgPSAwOworfTsKKwor
Y2xhc3MgVGV4dHVyZU1hcHBlclBsYXRmb3JtQ29tcGlsZWRQcm9ncmFtIDogcHVibGljIFJlZkNv
dW50ZWQ8VGV4dHVyZU1hcHBlclBsYXRmb3JtQ29tcGlsZWRQcm9ncmFtPiB7CitwdWJsaWM6Cisg
ICAgc3RhdGljIFBhc3NSZWZQdHI8VGV4dHVyZU1hcHBlclBsYXRmb3JtQ29tcGlsZWRQcm9ncmFt
PiBjcmVhdGUoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBUZXh0dXJlTWFw
cGVyUGxhdGZvcm1Db21waWxlZFByb2dyYW0oKSk7CisgICAgfQorICAgIAorICAgIHZvaWQgc2V0
Q2xpZW50KFBhc3NSZWZQdHI8VGV4dHVyZU1hcHBlclBsYXRmb3JtQ29tcGlsZWRQcm9ncmFtQ2xp
ZW50PiBjbGllbnQpIHsgbV9jbGllbnQgPSBjbGllbnQ7IH0KKyAgICBUZXh0dXJlTWFwcGVyUGxh
dGZvcm1Db21waWxlZFByb2dyYW1DbGllbnQqIGNsaWVudCgpIGNvbnN0IHsgcmV0dXJuIG1fY2xp
ZW50LmdldCgpOyB9CisKK3ByaXZhdGU6CisgICAgVGV4dHVyZU1hcHBlclBsYXRmb3JtQ29tcGls
ZWRQcm9ncmFtKCkKKyAgICB7CisgICAgfQorCisgICAgUmVmUHRyPFRleHR1cmVNYXBwZXJQbGF0
Zm9ybUNvbXBpbGVkUHJvZ3JhbUNsaWVudD4gbV9jbGllbnQ7Cit9OworCit9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoQ1NTX1NIQURFUlMpCisKKyNlbmRpZiAvLyBU
ZXh0dXJlTWFwcGVyUGxhdGZvcm1Db21waWxlZFByb2dyYW1faApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV2ViS2l0Mi9DTWFrZUxpc3RzLnR4dApp
bmRleCA2ZTQ2ZjQ4Li4wNjMyZGQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DTWFrZUxp
c3RzLnR4dAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9DTWFrZUxpc3RzLnR4dApAQCAtMjE4LDYgKzIx
OCw3IEBAIFNFVChXZWJLaXQyX1NPVVJDRVMKICAgICBTaGFyZWQvQVBJL2MvV0tVc2VyQ29udGVu
dFVSTFBhdHRlcm4uY3BwCiAKICAgICBTaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGlu
YXRlZEdyYXBoaWNzQXJndW1lbnRDb2RlcnMuY3BwCisgICAgU2hhcmVkL0Nvb3JkaW5hdGVkR3Jh
cGhpY3MvV2ViQ3VzdG9tRmlsdGVyUHJvZ3JhbVByb3h5LmNwcAogCiAgICAgU2hhcmVkL1BsdWdp
bnMvTlBJZGVudGlmaWVyRGF0YS5jcHAKICAgICBTaGFyZWQvUGx1Z2lucy9OUE9iamVjdE1lc3Nh
Z2VSZWNlaXZlci5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCBhZjU2MGI3Li4wY2RlMDRjIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsNDYgQEAKKzIwMTItMTEtMTUgIEFsZXhhbmRydSBDaGljdWxpdGEgIDxhY2hp
Y3VAYWRvYmUuY29tPgorCisgICAgICAgIFtUZXhtYXBdW0NTUyBTaGFkZXJzXSBNYWtlIHRoZSBD
dXN0b21GaWx0ZXJWYWxpZGF0ZWRQcm9ncmFtIG1haW50YWluIHRoZSBwbGF0Zm9ybSBjb21waWxl
ZCBwcm9ncmFtCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xMDI0MTQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBUaGlzIGlzIHRoZSBmaXJzdCBwYXJ0IG9mIHNoYWRlciBjYWNoaW5nIGltcGxlbWVudGF0aW9u
IGZvciB0aGUgQ3VzdG9tIEZpbHRlcnMgaW4gV0syIExheWVyVHJlZUNvb3JkaW5hdG9yLgorICAg
ICAgICBJbiB0aGlzIHBhdGNoIGl0IHdpbGwganVzdCBtYWtlIHRoZSBMYXllclRyZWVDb29yZGlu
YXRvciBrbm93bGVkZ2VhYmxlIGFib3V0IHRoZSBsaWZlLXRpbWUKKyAgICAgICAgb2YgdGhlIGN1
c3RvbSBmaWx0ZXIgcHJvZ3JhbXMuIEl0IGNhbiBhbGxvY2F0ZSBJRHMgZm9yIHRoZSBmaWx0ZXJz
IGFuZCBpdCBhbHNvIGdldHMgYSBjYWxsYmFjayB3aGVuIHRoZQorICAgICAgICBmaWx0ZXJzIGFy
ZSBub3QgbmVlZGVkIGFueW1vcmUuCisKKyAgICAgICAgVGhlIFVJIHByb2Nlc3MgaXMgc3RpbGwg
cmVjcmVhdGluZyB0aGUgc2hhZGVyIGV2ZXJ5IHRpbWUsIGJ1dCBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAxODAxCisgICAgICAgIHdpbGwgZml4IHRoYXQgYW5kIHRy
eSB0byByZXVzZSBleGlzdGluZyBjdXN0b20gZmlsdGVycy4KKworICAgICAgICAqIENNYWtlTGlz
dHMudHh0OgorICAgICAgICAqIFNoYXJlZC9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVk
R3JhcGhpY3NBcmd1bWVudENvZGVycy5jcHA6CisgICAgICAgIChDb3JlSVBDOjo6OmVuY29kZSk6
CisgICAgICAgICogU2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvV2ViQ3VzdG9tRmlsdGVyUHJv
Z3JhbVByb3h5LmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXQpOgorICAgICAgICAoV2ViS2l0
OjpXZWJDdXN0b21GaWx0ZXJQcm9ncmFtUHJveHk6On5XZWJDdXN0b21GaWx0ZXJQcm9ncmFtUHJv
eHkpOgorICAgICAgICAqIFNoYXJlZC9Db29yZGluYXRlZEdyYXBoaWNzL1dlYkN1c3RvbUZpbHRl
clByb2dyYW1Qcm94eS5oOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdCk6CisgICAgICAgIChXZWJD
dXN0b21GaWx0ZXJQcm9ncmFtUHJveHlDbGllbnQpOgorICAgICAgICAoV2ViQ3VzdG9tRmlsdGVy
UHJvZ3JhbVByb3h5KToKKyAgICAgICAgKFdlYktpdDo6V2ViQ3VzdG9tRmlsdGVyUHJvZ3JhbVBy
b3h5OjpjcmVhdGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJDdXN0b21GaWx0ZXJQcm9ncmFtUHJv
eHk6OmlkKToKKyAgICAgICAgKFdlYktpdDo6V2ViQ3VzdG9tRmlsdGVyUHJvZ3JhbVByb3h5Ojpy
ZWZGcm9tVmFsaWRhdGVkUHJvZ3JhbSk6CisgICAgICAgIChXZWJLaXQ6OldlYkN1c3RvbUZpbHRl
clByb2dyYW1Qcm94eTo6ZGVyZWZGcm9tVmFsaWRhdGVkUHJvZ3JhbSk6CisgICAgICAgIChXZWJL
aXQ6OldlYkN1c3RvbUZpbHRlclByb2dyYW1Qcm94eTo6c2V0Q2xpZW50KToKKyAgICAgICAgKFdl
YktpdDo6V2ViQ3VzdG9tRmlsdGVyUHJvZ3JhbVByb3h5OjpjbGllbnQpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJDdXN0b21GaWx0ZXJQcm9ncmFtUHJveHk6OldlYkN1c3RvbUZpbHRlclByb2dyYW1Q
cm94eSk6CisgICAgICAgICogVGFyZ2V0LnByaToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBh
Z2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9MYXllclRyZWVDb29yZGluYXRvci5jcHA6CisgICAgICAg
IChXZWJLaXQ6OkxheWVyVHJlZUNvb3JkaW5hdG9yOjp+TGF5ZXJUcmVlQ29vcmRpbmF0b3IpOgor
ICAgICAgICAoV2ViS2l0OjpMYXllclRyZWVDb29yZGluYXRvcjo6c3luY0xheWVyRmlsdGVycyk6
CisgICAgICAgIChXZWJLaXQpOgorICAgICAgICAoV2ViS2l0OjpMYXllclRyZWVDb29yZGluYXRv
cjo6Y2hlY2tDdXN0b21GaWx0ZXJQcm9ncmFtUHJveGllcyk6CisgICAgICAgIChXZWJLaXQ6Okxh
eWVyVHJlZUNvb3JkaW5hdG9yOjpyZW1vdmVDdXN0b21GaWx0ZXJQcm9ncmFtUHJveHkpOgorICAg
ICAgICAoV2ViS2l0OjpMYXllclRyZWVDb29yZGluYXRvcjo6ZGlzY29ubmVjdEN1c3RvbUZpbHRl
clByb2dyYW1zKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFw
aGljcy9MYXllclRyZWVDb29yZGluYXRvci5oOgorICAgICAgICAoTGF5ZXJUcmVlQ29vcmRpbmF0
b3IpOgorCiAyMDEyLTExLTE1ICBSaWNrIEJ5ZXJzICA8cmJ5ZXJzQGNocm9taXVtLm9yZz4KIAog
ICAgICAgICBObyB0ZXN0cyBmb3IgY2hhbmdpbmcgbW91c2UgY3Vyc29ycwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvU2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRHcmFw
aGljc0FyZ3VtZW50Q29kZXJzLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Db29yZGluYXRl
ZEdyYXBoaWNzL0Nvb3JkaW5hdGVkR3JhcGhpY3NBcmd1bWVudENvZGVycy5jcHAKaW5kZXggYmRi
OTA2NS4uZDk4NTcwNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0Nvb3JkaW5h
dGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRHcmFwaGljc0FyZ3VtZW50Q29kZXJzLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZEdyYXBo
aWNzQXJndW1lbnRDb2RlcnMuY3BwCkBAIC0xNDYsNiArMTQ2LDEwIEBAIHZvaWQgQXJndW1lbnRD
b2RlcjxXZWJDb3JlOjpGaWx0ZXJPcGVyYXRpb25zPjo6ZW5jb2RlKEFyZ3VtZW50RW5jb2RlciYg
ZW5jb2RlciwKICAgICAgICAgICAgIEFTU0VSVChjdXN0b21PcGVyYXRpb24tPnZhbGlkYXRlZFBy
b2dyYW0oKSk7CiAgICAgICAgICAgICBSZWZQdHI8Q3VzdG9tRmlsdGVyVmFsaWRhdGVkUHJvZ3Jh
bT4gcHJvZ3JhbSA9IGN1c3RvbU9wZXJhdGlvbi0+dmFsaWRhdGVkUHJvZ3JhbSgpOwogICAgICAg
ICAgICAgQVNTRVJUKHByb2dyYW0tPmlzSW5pdGlhbGl6ZWQoKSk7CisgICAgICAgICAgICBBU1NF
UlQocHJvZ3JhbS0+cGxhdGZvcm1Db21waWxlZFByb2dyYW0oKSk7CisgICAgICAgICAgICAvLyBG
SVhNRTogV2Ugc2hvdWxkIG9ubHkgc2VyaWFsaXplIHRoZSBvYmplY3QgaWYgaXQgd2FzIG5vdCBz
ZXJpYWxpemVkIGJlZm9yZSwKKyAgICAgICAgICAgIC8vIG90aGVyd2lzZSBvbmx5IHRoZSBJRCBv
ZiB0aGUgcHJvZ3JhbSBzaG91bGQgYmUgd3JpdHRlbiB0byB0aGUgc3RyZWFtLgorICAgICAgICAg
ICAgLy8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwMTgwMQogICAg
ICAgICAgICAgZW5jb2RlciA8PCBwcm9ncmFtLT52YWxpZGF0ZWRWZXJ0ZXhTaGFkZXIoKTsKICAg
ICAgICAgICAgIGVuY29kZXIgPDwgcHJvZ3JhbS0+dmFsaWRhdGVkRnJhZ21lbnRTaGFkZXIoKTsK
ICAgICAgICAgICAgIGNvbnN0IEN1c3RvbUZpbHRlclByb2dyYW1JbmZvJiBwcm9ncmFtSW5mbyA9
IHByb2dyYW0tPnByb2dyYW1JbmZvKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFy
ZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy9XZWJDdXN0b21GaWx0ZXJQcm9ncmFtUHJveHkuY3BwIGIv
U291cmNlL1dlYktpdDIvU2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvV2ViQ3VzdG9tRmlsdGVy
UHJvZ3JhbVByb3h5LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41NmY3
MDc2Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0Nvb3JkaW5hdGVk
R3JhcGhpY3MvV2ViQ3VzdG9tRmlsdGVyUHJvZ3JhbVByb3h5LmNwcApAQCAtMCwwICsxLDQ5IEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIEFkb2JlIFN5c3RlbXMgSW5jb3Jwb3JhdGVkLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUKKyAqICAgIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nCisgKiAgICBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogICAg
Y29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcKKyAqICAgIGRpc2NsYWltZXIgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscworICogICAgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVIgIkFTIElTIiBB
TkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUIEhPTERFUiBCRQorICogTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LAorICogT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUgorICogVE9SVCAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GCisgKiBU
SEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJ
VFkgT0YKKyAqIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKworI2lm
IEVOQUJMRShDU1NfU0hBREVSUykKKyNpbmNsdWRlICJXZWJDdXN0b21GaWx0ZXJQcm9ncmFtUHJv
eHkuaCIKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2ludCBXZWJDdXN0b21GaWx0ZXJQcm9ncmFt
UHJveHk6OnNfbmV4dElkID0gMTsKKworV2ViQ3VzdG9tRmlsdGVyUHJvZ3JhbVByb3h5Ojp+V2Vi
Q3VzdG9tRmlsdGVyUHJvZ3JhbVByb3h5KCkKK3sKKyAgICBpZiAobV9jbGllbnQpIHsKKyAgICAg
ICAgbV9jbGllbnQtPnJlbW92ZUN1c3RvbUZpbHRlclByb2dyYW1Qcm94eSh0aGlzKTsKKyAgICAg
ICAgbV9jbGllbnQgPSAwOworICAgIH0KK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNl
bmRpZiAvLyBFTkFCTEUoQ1NTX1NIQURFUlMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9T
aGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy9XZWJDdXN0b21GaWx0ZXJQcm9ncmFtUHJveHkuaCBi
L1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Db29yZGluYXRlZEdyYXBoaWNzL1dlYkN1c3RvbUZpbHRl
clByb2dyYW1Qcm94eS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmJiNmYw
YmIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ29vcmRpbmF0ZWRH
cmFwaGljcy9XZWJDdXN0b21GaWx0ZXJQcm9ncmFtUHJveHkuaApAQCAtMCwwICsxLDkzIEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDEyIEFkb2JlIFN5c3RlbXMgSW5jb3Jwb3JhdGVkLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUKKyAqICAgIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nCisgKiAgICBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogICAgY29w
eXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcK
KyAqICAgIGRpc2NsYWltZXIgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscworICogICAgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVIgIkFTIElTIiBBTkQg
QU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUIEhPTERFUiBCRQorICogTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLAor
ICogT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUgorICogVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GCisgKiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YKKyAqIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgV2ViQ3VzdG9tRmlsdGVyUHJvZ3Jh
bVByb3h5X2gKKyNkZWZpbmUgV2ViQ3VzdG9tRmlsdGVyUHJvZ3JhbVByb3h5X2gKKworI2lmIFVT
RShDT09SRElOQVRFRF9HUkFQSElDUykgJiYgRU5BQkxFKENTU19TSEFERVJTKQorCisjaW5jbHVk
ZSAiVGV4dHVyZU1hcHBlclBsYXRmb3JtQ29tcGlsZWRQcm9ncmFtLmgiCisjaW5jbHVkZSA8d3Rm
L1JlZkNvdW50ZWQuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIFdlYkN1c3RvbUZp
bHRlclByb2dyYW1Qcm94eTsKKworY2xhc3MgV2ViQ3VzdG9tRmlsdGVyUHJvZ3JhbVByb3h5Q2xp
ZW50IHsKK3B1YmxpYzoKKyAgICB2aXJ0dWFsIHZvaWQgcmVtb3ZlQ3VzdG9tRmlsdGVyUHJvZ3Jh
bVByb3h5KFdlYkN1c3RvbUZpbHRlclByb2dyYW1Qcm94eSopID0gMDsKK307CisKKy8vIFRoaXMg
aXMgYSBwcm94eSBjbGFzcyB1c2VkIHRvIHN0b3JlIHRoZSBJRCBvZiB0aGUgY3VzdG9tIGZpbHRl
ciBwcm9ncmFtIHNlcmlhbGl6ZWQgdG8gdGhlIG90aGVyIHByb2Nlc3MuCisvLyBJdCBsaXZlcyBp
biB0aGUgV2ViUHJvY2VzcyBhbmQgaXMgcmVmZXJlbmNlZCBmcm9tIHRoZSBDdXN0b21GaWx0ZXJW
YWxpZGF0ZWRQcm9ncmFtIG1lYW5pbmcgdGhhdCBpdCB3aWxsIGJlIGtlcHQgYWxpdmUgYXMKKy8v
IGxvbmcgYXMgYSBsYXllciBvbiB0aGUgcGFnZSB3aWxsIHJlbmRlciB3aXRoIHRoaXMgcHJvZ3Jh
bS4gSXQgd2lsbCBjYWxsIHJlbW92ZUN1c3RvbUZpbHRlclByb2dyYW1Qcm94eSBvbiB0aGUgbV9j
bGllbnQKKy8vIHdoZW4gdGhlIHByb2dyYW0gaXMgbm8gbG9uZ2VyIG5lZWRlZCB0byByZW5kZXIg
dGhlIGZpbHRlci4gVGhlIGNsaWVudCBjYW4gdGhlbiBzZW5kIGEgbWVzc2FnZSB0byB0aGUgVUkg
cHJvY2VzcworLy8gdG8gZGVzdHJveSB0aGUgYXNzb2NpYXRlZCByZWZlcmVuY2UuIE5vdGUgdGhh
dCBtb3JlIGxheWVycyBjYW4gc2hhcmUgdGhlIHNhbWUgcHJvZ3JhbSBhbmQgdGhlcmUncworLy8g
bm8gbmVlZCB0byBpbXBsZW1lbnQgYSBjYWNoaW5nIG1lY2hhbmlzbSBpbiB0aGUgY29tcG9zaXRv
ciBzaWRlLgorCitjbGFzcyBXZWJDdXN0b21GaWx0ZXJQcm9ncmFtUHJveHkgOiBwdWJsaWMgUmVm
Q291bnRlZDxXZWJDdXN0b21GaWx0ZXJQcm9ncmFtUHJveHk+LCBwdWJsaWMgV2ViQ29yZTo6VGV4
dHVyZU1hcHBlclBsYXRmb3JtQ29tcGlsZWRQcm9ncmFtQ2xpZW50IHsKK3B1YmxpYzoKKyAgICB1
c2luZyBSZWZDb3VudGVkPFdlYkN1c3RvbUZpbHRlclByb2dyYW1Qcm94eT46OnJlZjsKKyAgICB1
c2luZyBSZWZDb3VudGVkPFdlYkN1c3RvbUZpbHRlclByb2dyYW1Qcm94eT46OmRlcmVmOworCisg
ICAgc3RhdGljIFBhc3NSZWZQdHI8V2ViQ3VzdG9tRmlsdGVyUHJvZ3JhbVByb3h5PiBjcmVhdGUo
V2ViQ3VzdG9tRmlsdGVyUHJvZ3JhbVByb3h5Q2xpZW50KiBjbGllbnQpCisgICAgeworICAgICAg
ICByZXR1cm4gYWRvcHRSZWYobmV3IFdlYkN1c3RvbUZpbHRlclByb2dyYW1Qcm94eShjbGllbnQp
KTsKKyAgICB9CisKKyAgICBpbnQgaWQoKSBjb25zdCB7IHJldHVybiBtX2lkOyB9CisKKyAgICAv
LyBOZWVkZWQgdG8gbWFrZSBUZXh0dXJlTWFwcGVyUGxhdGZvcm1Db21waWxlZFByb2dyYW1DbGll
bnQgbG9vayBsaWtlIGEgUmVmQ291bnRlZCBvYmplY3QuCisgICAgdmlydHVhbCB2b2lkIHJlZkZy
b21WYWxpZGF0ZWRQcm9ncmFtKCkgeyByZWYoKTsgfQorICAgIHZpcnR1YWwgdm9pZCBkZXJlZkZy
b21WYWxpZGF0ZWRQcm9ncmFtKCkgeyBkZXJlZigpOyB9CisKKyAgICB+V2ViQ3VzdG9tRmlsdGVy
UHJvZ3JhbVByb3h5KCk7CisgICAgCisgICAgdm9pZCBzZXRDbGllbnQoV2ViQ3VzdG9tRmlsdGVy
UHJvZ3JhbVByb3h5Q2xpZW50KiBjbGllbnQpIHsgbV9jbGllbnQgPSBjbGllbnQ7IH0KKyAgICBX
ZWJDdXN0b21GaWx0ZXJQcm9ncmFtUHJveHlDbGllbnQqIGNsaWVudCgpIGNvbnN0IHsgcmV0dXJu
IG1fY2xpZW50OyB9CisKK3ByaXZhdGU6CisgICAgV2ViQ3VzdG9tRmlsdGVyUHJvZ3JhbVByb3h5
KFdlYkN1c3RvbUZpbHRlclByb2dyYW1Qcm94eUNsaWVudCogY2xpZW50KQorICAgICAgICA6IG1f
Y2xpZW50KGNsaWVudCkKKyAgICAgICAgLCBtX2lkKHNfbmV4dElkKyspCisgICAgeworICAgIH0K
KyAgICAKKyAgICBXZWJDdXN0b21GaWx0ZXJQcm9ncmFtUHJveHlDbGllbnQqIG1fY2xpZW50Owor
ICAgIGludCBtX2lkOworICAgIAorICAgIHN0YXRpYyBpbnQgc19uZXh0SWQ7Cit9OworCit9IC8v
IG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIFVTRShDT09SRElOQVRFRF9HUkFQSElDUykg
JiYgRU5BQkxFKENTU19TSEFERVJTKQorCisjZW5kaWYgLy8gV2ViQ3VzdG9tRmlsdGVyUHJvZ3Jh
bVByb3h5X2gKKwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVGFyZ2V0LnByaSBiL1NvdXJj
ZS9XZWJLaXQyL1RhcmdldC5wcmkKaW5kZXggZGFjOWI5YS4uODhmMTQzZSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvVGFyZ2V0LnByaQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9UYXJnZXQucHJp
CkBAIC01MDIsNiArNTAyLDcgQEAgU09VUkNFUyArPSBcCiAgICAgU2hhcmVkL1dlYlVSTFJlc3Bv
bnNlLmNwcCBcCiAgICAgU2hhcmVkL1dlYldoZWVsRXZlbnQuY3BwIFwKICAgICBTaGFyZWQvQ29v
cmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZEdyYXBoaWNzQXJndW1lbnRDb2RlcnMuY3BwIFwK
KyAgICBTaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy9XZWJDdXN0b21GaWx0ZXJQcm9ncmFtUHJv
eHkuY3BwIFwKICAgICBTaGFyZWQvcXQvQXJndW1lbnRDb2RlcnNRdC5jcHAgXAogICAgIFNoYXJl
ZC9xdC9MYXllclRyZWVDb250ZXh0UXQuY3BwIFwKICAgICBTaGFyZWQvcXQvU2hhcmVhYmxlQml0
bWFwUXQuY3BwIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFn
ZS9Db29yZGluYXRlZEdyYXBoaWNzL0xheWVyVHJlZUNvb3JkaW5hdG9yLmNwcCBiL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0xheWVyVHJlZUNv
b3JkaW5hdG9yLmNwcAppbmRleCBiYjllYjNiLi43ZTc4NmE1IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9MYXllclRyZWVD
b29yZGluYXRvci5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nv
b3JkaW5hdGVkR3JhcGhpY3MvTGF5ZXJUcmVlQ29vcmRpbmF0b3IuY3BwCkBAIC00OSw2ICs0OSwx
MSBAQAogI2luY2x1ZGUgPFdlYkNvcmUvU2V0dGluZ3MuaD4KICNpbmNsdWRlIDx3dGYvVGVtcG9y
YXJ5Q2hhbmdlLmg+CiAKKyNpZiBFTkFCTEUoQ1NTX1NIQURFUlMpCisjaW5jbHVkZSAiQ3VzdG9t
RmlsdGVyVmFsaWRhdGVkUHJvZ3JhbS5oIgorI2luY2x1ZGUgIlZhbGlkYXRlZEN1c3RvbUZpbHRl
ck9wZXJhdGlvbi5oIgorI2VuZGlmCisKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCiBuYW1l
c3BhY2UgV2ViS2l0IHsKQEAgLTYwLDYgKzY1LDEwIEBAIFBhc3NSZWZQdHI8TGF5ZXJUcmVlQ29v
cmRpbmF0b3I+IExheWVyVHJlZUNvb3JkaW5hdG9yOjpjcmVhdGUoV2ViUGFnZSogd2ViUGFnZSkK
IAogTGF5ZXJUcmVlQ29vcmRpbmF0b3I6On5MYXllclRyZWVDb29yZGluYXRvcigpCiB7CisjaWYg
RU5BQkxFKENTU19TSEFERVJTKQorICAgIGRpc2Nvbm5lY3RDdXN0b21GaWx0ZXJQcm9ncmFtcygp
OworI2VuZGlmCisKICAgICAvLyBQcmV2ZW50IHNldENvb3JkaW5hdGVkR3JhcGhpY3NMYXllckNs
aWVudCgwKSAtPiBkZXRhY2hMYXllcigpIGZyb20gbW9kaWZ5aW5nIHRoZSBzZXQgd2hpbGUgd2Ug
aXRlcmF0ZSBpdC4KICAgICBIYXNoU2V0PFdlYkNvcmU6OkNvb3JkaW5hdGVkR3JhcGhpY3NMYXll
cio+IHJlZ2lzdGVyZWRMYXllcnM7CiAgICAgcmVnaXN0ZXJlZExheWVycy5zd2FwKG1fcmVnaXN0
ZXJlZExheWVycyk7CkBAIC0zMjMsMTAgKzMzMiw2MiBAQCB2b2lkIExheWVyVHJlZUNvb3JkaW5h
dG9yOjpzeW5jQ2FudmFzKFdlYkxheWVySUQgaWQsIGNvbnN0IEludFNpemUmIGNhbnZhc1NpemUs
CiB2b2lkIExheWVyVHJlZUNvb3JkaW5hdG9yOjpzeW5jTGF5ZXJGaWx0ZXJzKFdlYkxheWVySUQg
aWQsIGNvbnN0IEZpbHRlck9wZXJhdGlvbnMmIGZpbHRlcnMpCiB7CiAgICAgbV9zaG91bGRTeW5j
RnJhbWUgPSB0cnVlOworI2lmIEVOQUJMRShDU1NfU0hBREVSUykKKyAgICBjaGVja0N1c3RvbUZp
bHRlclByb2dyYW1Qcm94aWVzKGZpbHRlcnMpOworI2VuZGlmCiAgICAgbV93ZWJQYWdlLT5zZW5k
KE1lc3NhZ2VzOjpMYXllclRyZWVDb29yZGluYXRvclByb3h5OjpTZXRDb21wb3NpdGluZ0xheWVy
RmlsdGVycyhpZCwgZmlsdGVycykpOwogfQogI2VuZGlmCiAKKyNpZiBFTkFCTEUoQ1NTX1NIQURF
UlMpCit2b2lkIExheWVyVHJlZUNvb3JkaW5hdG9yOjpjaGVja0N1c3RvbUZpbHRlclByb2dyYW1Q
cm94aWVzKGNvbnN0IEZpbHRlck9wZXJhdGlvbnMmIGZpbHRlcnMpCit7CisgICAgLy8gV2UgbmVl
ZCB0byBjcmVhdGUgdGhlIFdlYkN1c3RvbUZpbHRlclByb2dyYW1Qcm94eSBvYmplY3RzIGJlZm9y
ZSB3ZSBnZXQgdG8gc2VyaWFsaXplIHRoZQorICAgIC8vIGN1c3RvbSBmaWx0ZXJzIHRvIHRoZSBv
dGhlciBwcm9jZXNzLiBUaGF0J3MgYmVjYXVzZSBXZWJDdXN0b21GaWx0ZXJQcm9ncmFtUHJveHkg
bmVlZHMKKyAgICAvLyB0byBsaW5rIGJhY2sgdG8gdGhlIGNvb3JkaW5hdG9yLCBzbyB0aGF0IHdl
IGNhbiBzZW5kIGEgbWVzc2FnZSB0byB0aGUgVUkgcHJvY2VzcyB3aGVuIAorICAgIC8vIHRoZSBw
cm9ncmFtIGlzIG5vdCBuZWVkZWQgYW55bW9yZS4KKyAgICAvLyBOb3RlIHRoYXQgdGhlIHNlcmlh
bGl6YXRpb24gd2lsbCBvbmx5IGhhcHBlbiBhdCBhIGxhdGVyIHRpbWUgaW4gQXJndW1lbnRDb2Rl
cjxXZWJDb3JlOjpGaWx0ZXJPcGVyYXRpb25zPjo6ZW5jb2RlLgorICAgIC8vIEF0IHRoYXQgcG9p
bnQgdGhlIHByb2dyYW0gd2lsbCBvbmx5IGJlIHNlcmlhbGl6ZWQgb25jZS4gQWxsIHRoZSBvdGhl
ciB0aW1lcyBpdCB3aWxsIG9ubHkgdXNlIHRoZSBJRCBvZiB0aGUgcHJvZ3JhbS4KKyAgICBmb3Ig
KHNpemVfdCBpID0gMDsgaSA8IGZpbHRlcnMuc2l6ZSgpOyArK2kpIHsKKyAgICAgICAgY29uc3Qg
RmlsdGVyT3BlcmF0aW9uKiBvcGVyYXRpb24gPSBmaWx0ZXJzLmF0KGkpOworICAgICAgICBpZiAo
b3BlcmF0aW9uLT5nZXRPcGVyYXRpb25UeXBlKCkgIT0gRmlsdGVyT3BlcmF0aW9uOjpWQUxJREFU
RURfQ1VTVE9NKQorICAgICAgICAgICAgY29udGludWU7CisgICAgICAgIGNvbnN0IFZhbGlkYXRl
ZEN1c3RvbUZpbHRlck9wZXJhdGlvbiogY3VzdG9tT3BlcmF0aW9uID0gc3RhdGljX2Nhc3Q8Y29u
c3QgVmFsaWRhdGVkQ3VzdG9tRmlsdGVyT3BlcmF0aW9uKj4ob3BlcmF0aW9uKTsKKyAgICAgICAg
QVNTRVJUKGN1c3RvbU9wZXJhdGlvbi0+dmFsaWRhdGVkUHJvZ3JhbSgpLT5pc0luaXRpYWxpemVk
KCkpOworICAgICAgICBUZXh0dXJlTWFwcGVyUGxhdGZvcm1Db21waWxlZFByb2dyYW0qIHByb2dy
YW0gPSBjdXN0b21PcGVyYXRpb24tPnZhbGlkYXRlZFByb2dyYW0oKS0+cGxhdGZvcm1Db21waWxl
ZFByb2dyYW0oKTsKKyAgICAgICAgaWYgKCFwcm9ncmFtLT5jbGllbnQoKSkKKyAgICAgICAgICAg
IHByb2dyYW0tPnNldENsaWVudChXZWJDdXN0b21GaWx0ZXJQcm9ncmFtUHJveHk6OmNyZWF0ZSh0
aGlzKSk7CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgV2ViQ3VzdG9tRmlsdGVyUHJvZ3Jh
bVByb3h5KiBjdXN0b21GaWx0ZXJQcm9ncmFtUHJveHkgPSBzdGF0aWNfY2FzdDxXZWJDdXN0b21G
aWx0ZXJQcm9ncmFtUHJveHkqPihwcm9ncmFtLT5jbGllbnQoKSk7CisgICAgICAgICAgICBpZiAo
IWN1c3RvbUZpbHRlclByb2dyYW1Qcm94eS0+Y2xpZW50KCkpIHsKKyAgICAgICAgICAgICAgICAv
LyBKdXN0IGluIGNhc2UgdGhlIExheWVyVHJlZUNvb3JkaW5hdG9yIHdhcyBkZXN0cm95ZWQgYW5k
IHJlY3JlYXRlZC4KKyAgICAgICAgICAgICAgICBjdXN0b21GaWx0ZXJQcm9ncmFtUHJveHktPnNl
dENsaWVudCh0aGlzKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgLy8g
SWYgdGhlIGNsaWVudCB3YXMgbm90IGRpc2Nvbm5lY3RlZCB0aGVuIHRoaXMgY29vcmRpbmF0b3Ig
bXVzdCBiZSB0aGUgY2xpZW50IGZvciBpdC4KKyAgICAgICAgICAgICAgICBBU1NFUlQoY3VzdG9t
RmlsdGVyUHJvZ3JhbVByb3h5LT5jbGllbnQoKSA9PSB0aGlzKTsKKyAgICAgICAgICAgIH0KKyAg
ICAgICAgfQorICAgIH0KK30KKwordm9pZCBMYXllclRyZWVDb29yZGluYXRvcjo6cmVtb3ZlQ3Vz
dG9tRmlsdGVyUHJvZ3JhbVByb3h5KFdlYkN1c3RvbUZpbHRlclByb2dyYW1Qcm94eSogY3VzdG9t
RmlsdGVyUHJvZ3JhbVByb3h5KQoreworICAgIC8vIEF0IHRoaXMgdGltZSB0aGUgc2hhZGVyIGlz
IG5vdCBuZWVkZWQgYW55bW9yZSwgc28gd2UgcmVtb3ZlIGl0IGZyb20gb3VyIHNldCBhbmQgCisg
ICAgLy8gc2VuZCBhIG1lc3NhZ2UgdG8gdGhlIG90aGVyIHByb2Nlc3MgdG8gZGVsZXRlIGl0Lgor
ICAgIG1fY3VzdG9tRmlsdGVyUHJvZ3JhbXMucmVtb3ZlKGN1c3RvbUZpbHRlclByb2dyYW1Qcm94
eSk7CisgICAgLy8gRklYTUU6IFNlbmQgYSBtZXNzYWdlIHRvIGRlbGV0ZSB0aGUgb2JqZWN0IG9u
IHRoZSBVSSBwcm9jZXNzLgorICAgIC8vIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xMDE4MDEKK30KKwordm9pZCBMYXllclRyZWVDb29yZGluYXRvcjo6ZGlzY29ubmVj
dEN1c3RvbUZpbHRlclByb2dyYW1zKCkKK3sKKyAgICAvLyBNYWtlIHN1cmUgdGhhdCBXZWJDb3Jl
IHdpbGwgbm90IGNhbGwgaW50byB0aGlzIGNvb3JkaW5hdG9yIGFueW1vcmUuCisgICAgSGFzaFNl
dDxXZWJDdXN0b21GaWx0ZXJQcm9ncmFtUHJveHkqPjo6aXRlcmF0b3IgaXRlciA9IG1fY3VzdG9t
RmlsdGVyUHJvZ3JhbXMuYmVnaW4oKTsKKyAgICBmb3IgKDsgaXRlciAhPSBtX2N1c3RvbUZpbHRl
clByb2dyYW1zLmVuZCgpOyArK2l0ZXIpCisgICAgICAgICgqaXRlciktPnNldENsaWVudCgwKTsK
K30KKyNlbmRpZgorCiB2b2lkIExheWVyVHJlZUNvb3JkaW5hdG9yOjpkZXRhY2hMYXllcihDb29y
ZGluYXRlZEdyYXBoaWNzTGF5ZXIqIGxheWVyKQogewogICAgIG1fcmVnaXN0ZXJlZExheWVycy5y
ZW1vdmUobGF5ZXIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQ
YWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvTGF5ZXJUcmVlQ29vcmRpbmF0b3IuaCBiL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0xheWVyVHJlZUNv
b3JkaW5hdG9yLmgKaW5kZXggMWE5ZTE3OS4uY2EzNmY2NCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvTGF5ZXJUcmVlQ29v
cmRpbmF0b3IuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRp
bmF0ZWRHcmFwaGljcy9MYXllclRyZWVDb29yZGluYXRvci5oCkBAIC0zMiw2ICszMiwxMCBAQAog
I2luY2x1ZGUgPFdlYkNvcmUvR3JhcGhpY3NTdXJmYWNlLmg+CiAjaW5jbHVkZSA8d3RmL093blB0
ci5oPgogCisjaWYgRU5BQkxFKENTU19TSEFERVJTKQorI2luY2x1ZGUgIldlYkN1c3RvbUZpbHRl
clByb2dyYW1Qcm94eS5oIgorI2VuZGlmCisKIG5hbWVzcGFjZSBXZWJLaXQgewogCiBjbGFzcyBV
cGRhdGVJbmZvOwpAQCAtNDAsNyArNDQsMTEgQEAgY2xhc3MgV2ViUGFnZTsKIGNsYXNzIExheWVy
VHJlZUNvb3JkaW5hdG9yIDogcHVibGljIExheWVyVHJlZUhvc3QsIFdlYkNvcmU6OkdyYXBoaWNz
TGF5ZXJDbGllbnQKICAgICAsIHB1YmxpYyBDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXJDbGllbnQK
ICAgICAsIHB1YmxpYyBVcGRhdGVBdGxhc0NsaWVudAotICAgICwgcHVibGljIFdlYkNvcmU6Okdy
YXBoaWNzTGF5ZXJGYWN0b3J5IHsKKyAgICAsIHB1YmxpYyBXZWJDb3JlOjpHcmFwaGljc0xheWVy
RmFjdG9yeQorI2lmIEVOQUJMRShDU1NfU0hBREVSUykKKyAgICAsIFdlYkN1c3RvbUZpbHRlclBy
b2dyYW1Qcm94eUNsaWVudAorI2VuZGlmCit7CiBwdWJsaWM6CiAgICAgc3RhdGljIFBhc3NSZWZQ
dHI8TGF5ZXJUcmVlQ29vcmRpbmF0b3I+IGNyZWF0ZShXZWJQYWdlKik7CiAgICAgdmlydHVhbCB+
TGF5ZXJUcmVlQ29vcmRpbmF0b3IoKTsKQEAgLTEzNiw2ICsxNDQsMTQgQEAgcHJpdmF0ZToKIAog
ICAgIHZvaWQgcmVsZWFzZUluYWN0aXZlQXRsYXNlc1RpbWVyRmlyZWQoV2ViQ29yZTo6VGltZXI8
TGF5ZXJUcmVlQ29vcmRpbmF0b3I+Kik7CiAKKyNpZiBFTkFCTEUoQ1NTX1NIQURFUlMpCisgICAg
Ly8gV2ViQ3VzdG9tRmlsdGVyUHJvZ3JhbVByb3h5Q2xpZW50CisgICAgdm9pZCByZW1vdmVDdXN0
b21GaWx0ZXJQcm9ncmFtUHJveHkoV2ViQ3VzdG9tRmlsdGVyUHJvZ3JhbVByb3h5Kik7CisKKyAg
ICB2b2lkIGNoZWNrQ3VzdG9tRmlsdGVyUHJvZ3JhbVByb3hpZXMoY29uc3QgV2ViQ29yZTo6Rmls
dGVyT3BlcmF0aW9ucyYpOworICAgIHZvaWQgZGlzY29ubmVjdEN1c3RvbUZpbHRlclByb2dyYW1z
KCk7CisjZW5kaWYKKwogICAgIE93blB0cjxXZWJDb3JlOjpHcmFwaGljc0xheWVyPiBtX3Jvb3RM
YXllcjsKIAogICAgIC8vIFRoZSBsYXllciB3aGljaCBjb250YWlucyBhbGwgbm9uLWNvbXBvc2l0
ZWQgY29udGVudC4KQEAgLTE1MCw2ICsxNjYsMTAgQEAgcHJpdmF0ZToKICAgICBWZWN0b3I8aW50
NjRfdD4gbV9yZWxlYXNlZERpcmVjdGx5Q29tcG9zaXRlZEltYWdlczsKICAgICBWZWN0b3I8T3du
UHRyPFVwZGF0ZUF0bGFzPiA+IG1fdXBkYXRlQXRsYXNlczsKIAorI2lmIEVOQUJMRShDU1NfU0hB
REVSUykKKyAgICBIYXNoU2V0PFdlYkN1c3RvbUZpbHRlclByb2dyYW1Qcm94eSo+IG1fY3VzdG9t
RmlsdGVyUHJvZ3JhbXM7CisjZW5kaWYKKwogICAgIGJvb2wgbV9ub3RpZnlBZnRlclNjaGVkdWxl
ZExheWVyRmx1c2g7CiAgICAgYm9vbCBtX2lzVmFsaWQ7CiAgICAgLy8gV2UgZG9uJ3Qgc2VuZCB0
aGUgbWVzc2FnZXMgcmVsYXRlZCB0byByZWxlYXNpbmcgcmVzb3VyY2VzIHRvIFVJIFByb2Nlc3Mg
ZHVyaW5nIHB1cmdpbmcsIGJlY2F1c2UgVUkgUHJvY2VzcyBhbHJlYWR5IGhhZCByZW1vdmVkIGFs
bCByZXNvdXJjZXMuCg==
</data>
<flag name="review"
          id="189579"
          type_id="1"
          status="-"
          setter="kenneth"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>174509</attachid>
            <date>2012-11-15 14:00:07 -0800</date>
            <delta_ts>2012-11-16 07:39:48 -0800</delta_ts>
            <desc>Patch V3</desc>
            <filename>bug102414_v3.patch</filename>
            <type>text/plain</type>
            <size>32204</size>
            <attacher name="Alexandru Chiculita">achicu</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYkNv
cmUvQ01ha2VMaXN0cy50eHQKaW5kZXggYTZhOWFkMy4uMzQyNGQ4ZiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0
cy50eHQKQEAgLTUxLDYgKzUxLDcgQEAgU0VUKFdlYkNvcmVfSU5DTFVERV9ESVJFQ1RPUklFUwog
ICAgICIke1dFQkNPUkVfRElSfS9wbGF0Zm9ybS9ncmFwaGljcy9jcHUvYXJtIgogICAgICIke1dF
QkNPUkVfRElSfS9wbGF0Zm9ybS9ncmFwaGljcy9jcHUvYXJtL2ZpbHRlcnMiCiAgICAgIiR7V0VC
Q09SRV9ESVJ9L3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMiCisgICAgIiR7V0VCQ09SRV9ESVJ9
L3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvdGV4bWFwIgogICAgICIke1dFQkNPUkVfRElSfS9w
bGF0Zm9ybS9ncmFwaGljcy9oYXJmYnV6eiIKICAgICAiJHtXRUJDT1JFX0RJUn0vcGxhdGZvcm0v
Z3JhcGhpY3MvaGFyZmJ1enovbmciCiAgICAgIiR7V0VCQ09SRV9ESVJ9L3BsYXRmb3JtL2dyYXBo
aWNzL29wZW50eXBlIgpAQCAtMTkwNiw2ICsxOTA3LDcgQEAgU0VUKFdlYkNvcmVfU09VUkNFUwog
CiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvY3B1L2FybS9maWx0ZXJzL0ZFTGlnaHRpbmdORU9OLmNw
cAogCisgICAgcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy90ZXhtYXAvQ3VzdG9tRmlsdGVyVmFs
aWRhdGVkUHJvZ3JhbVRleHR1cmVNYXBwZXIuY3BwCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvZmls
dGVycy9DdXN0b21GaWx0ZXJDb21waWxlZFByb2dyYW0uY3BwCiAgICAgcGxhdGZvcm0vZ3JhcGhp
Y3MvZmlsdGVycy9DdXN0b21GaWx0ZXJHbG9iYWxDb250ZXh0LmNwcAogICAgIHBsYXRmb3JtL2dy
YXBoaWNzL2ZpbHRlcnMvQ3VzdG9tRmlsdGVyTWVzaC5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBkZGEyMDNl
Li41MWM1ZDZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDkgQEAKKzIwMTItMTEtMTUgIEFsZXhh
bmRydSBDaGljdWxpdGEgIDxhY2hpY3VAYWRvYmUuY29tPgorCisgICAgICAgIFtUZXhtYXBdW0NT
UyBTaGFkZXJzXSBNYWtlIHRoZSBDdXN0b21GaWx0ZXJWYWxpZGF0ZWRQcm9ncmFtIG1haW50YWlu
IHRoZSBwbGF0Zm9ybSBjb21waWxlZCBwcm9ncmFtCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDI0MTQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBBZGRlZCBXZWJDb3JlIGNsYXNzZXMgbmVlZGVkIGZvciB0
aGUgV2ViS2l0MiBpbXBsZW1lbnRhdGlvbiBvZiBUZXh0dXJlIE1hcHBlciB0byBrZWVwIGEgcmVm
ZXJlbmNlIHRvIHRoZSAKKyAgICAgICAgcGxhdGZvcm0gY29tcGlsZWQgY3VzdG9tIGZpbHRlci4g
SXQgaXMganVzdCB1c2VkIHRvIG1haW50YWluIHRoZSBsaWZlLXRpbWUgb2YgdGhlIG9iamVjdHMu
IFdlYktpdDIgaW5qZWN0cyBhCisgICAgICAgIGNsaWVudCBpbiBUZXh0dXJlTWFwcGVyUGxhdGZv
cm1Db21waWxlZFByb2dyYW0gYW5kIHJlY2VpdmVzIGEgY2FsbGJhY2sgd2hlbiB0aGUgY3VzdG9t
IGZpbHRlciBwcm9ncmFtIGlzIG5vdAorICAgICAgICB1c2VkIHRvIHJlbmRlciBhbnkgbGF5ZXIg
b24gdGhlIHBhZ2UuIAorCisgICAgICAgIE5vdGUgdGhhdCBDdXN0b21GaWx0ZXJWYWxpZGF0ZWRQ
cm9ncmFtIGFyZSByZXVzZWQgYWNyb3NzIG11bHRpcGxlIGVsZW1lbnRzIG9mIHRoZSBzYW1lIHBh
Z2UuIEFsc28sIHRoZSBpbnN0YW5jZXMKKyAgICAgICAgYXJlIHJldXNlZCBhY3Jvc3MgZnJhbWVz
LCBzbyBhbmltYXRpb25zIHNob3VsZCByZXVzZSB0aGUgc2FtZSBwcmUtdmFsaWRhdGVkIHByb2dy
YW0uIEluIHRoaXMgY2FzZSwgdGhlIG1lY2hhbmlzbSBpcworICAgICAgICBleHRlbmRlZCBhbmQg
cmV1c2VkIGluIHRoZSBwbGF0Zm9ybSBjb21wb3NpdG9yLgorICAgICAgICAKKyAgICAgICAgTm8g
bmV3IHRlc3RzLCBleGlzdGluZyB0ZXN0cyBmb3IgQ1NTIEN1c3RvbSBGaWx0ZXJzIGFscmVhZHkg
Y292ZXIgdGhpcyBwYXRoLgorCisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6CisgICAgICAgICog
R05VbWFrZWZpbGUuYW06CisgICAgICAgICogR05VbWFrZWZpbGUubGlzdC5hbToKKyAgICAgICAg
KiBUYXJnZXQucHJpOgorICAgICAgICAqIFdlYkNvcmUucHJpOgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL2ZpbHRlcnMvQ3VzdG9tRmlsdGVyVmFsaWRhdGVkUHJvZ3JhbS5jcHA6CisgICAg
ICAgIChXZWJDb3JlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0N1c3Rv
bUZpbHRlclZhbGlkYXRlZFByb2dyYW0uaDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAo
Q3VzdG9tRmlsdGVyVmFsaWRhdGVkUHJvZ3JhbSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvZmlsdGVycy90ZXhtYXAvQ3VzdG9tRmlsdGVyVmFsaWRhdGVkUHJvZ3JhbVRleHR1cmVNYXBw
ZXIuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6Q3Vz
dG9tRmlsdGVyVmFsaWRhdGVkUHJvZ3JhbTo6cGxhdGZvcm1Db21waWxlZFByb2dyYW0pOiBQbGF0
Zm9ybSBpbXBsZW1lbnRhdGlvbiBmb3IgY3JlYXRpbmcgYW5kIGRlbGV0aW5nIHRoZSByZWZlcmVu
Y2UuCisgICAgICAgIChXZWJDb3JlOjpDdXN0b21GaWx0ZXJWYWxpZGF0ZWRQcm9ncmFtOjpwbGF0
Zm9ybUluaXQpOgorICAgICAgICAoV2ViQ29yZTo6Q3VzdG9tRmlsdGVyVmFsaWRhdGVkUHJvZ3Jh
bTo6cGxhdGZvcm1EZXN0cm95KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJz
L3RleG1hcC9UZXh0dXJlTWFwcGVyUGxhdGZvcm1Db21waWxlZFByb2dyYW0uaDogQWRkZWQuCisg
ICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFRleHR1cmVNYXBwZXJQbGF0Zm9ybUNvbXBpbGVk
UHJvZ3JhbUNsaWVudCk6CisgICAgICAgIChXZWJDb3JlOjpUZXh0dXJlTWFwcGVyUGxhdGZvcm1D
b21waWxlZFByb2dyYW1DbGllbnQ6OnJlZik6CisgICAgICAgIChXZWJDb3JlOjpUZXh0dXJlTWFw
cGVyUGxhdGZvcm1Db21waWxlZFByb2dyYW1DbGllbnQ6OmRlcmVmKToKKyAgICAgICAgKFRleHR1
cmVNYXBwZXJQbGF0Zm9ybUNvbXBpbGVkUHJvZ3JhbSk6CisgICAgICAgIFN0b3JlcyBhIGxpbmsg
dG8gYSBUZXh0dXJlTWFwcGVyUGxhdGZvcm1Db21waWxlZFByb2dyYW1DbGllbnQuIEl0J3MgbWFp
biBwdXJwb3NlIGlzIHRvIGNhbGwgdW5yZWYgb24gdGhlIGNsaWVudCB3aGVuCisgICAgICAgIHRo
ZSBzaGFkZXIgaXMgbm90IG5lZWRlZCBhbnltb3JlLiBXZWJLaXQyIGNhbiB1c2UgdGhhdCB0byBk
ZWxldGUgdGhlIGNvcnJlc3BvbmRpbmcgc2hhZGVyIGZyb20gdGhlIGNvbXBvc2l0b3Igc2lkZS4K
KyAgICAgICAgKFdlYkNvcmU6OlRleHR1cmVNYXBwZXJQbGF0Zm9ybUNvbXBpbGVkUHJvZ3JhbTo6
Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlRleHR1cmVNYXBwZXJQbGF0Zm9ybUNvbXBpbGVk
UHJvZ3JhbTo6c2V0Q2xpZW50KTogVXNlZCBieSBXZWJLaXQyIHRvIGluamVjdCB0aGUgcGxhdGZv
cm0gY2xpZW50LgorICAgICAgICAoV2ViQ29yZTo6VGV4dHVyZU1hcHBlclBsYXRmb3JtQ29tcGls
ZWRQcm9ncmFtOjpjbGllbnQpOgorICAgICAgICAoV2ViQ29yZTo6VGV4dHVyZU1hcHBlclBsYXRm
b3JtQ29tcGlsZWRQcm9ncmFtOjpUZXh0dXJlTWFwcGVyUGxhdGZvcm1Db21waWxlZFByb2dyYW0p
OgorCiAyMDEyLTExLTE1ICBTaGVyaWZmIEJvdCAgPHdlYmtpdC5yZXZpZXcuYm90QGdtYWlsLmNv
bT4KIAogICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByMTM0ODAwIGFuZCByMTM0ODA1
LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0gYi9Tb3VyY2UvV2Vi
Q29yZS9HTlVtYWtlZmlsZS5hbQppbmRleCAxOWM5MjE5Li44M2JhZmNmIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtl
ZmlsZS5hbQpAQCAtNTcsNiArNTcsNyBAQCB3ZWJjb3JlX2NwcGZsYWdzICs9IFwKIAktSSQoc3Jj
ZGlyKS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jcHUvYXJtIFwKIAktSSQoc3Jj
ZGlyKS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jcHUvYXJtL2ZpbHRlcnMvIFwK
IAktSSQoc3JjZGlyKS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzIFwK
KwktSSQoc3JjZGlyKS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL3Rl
eG1hcCBcCiAJLUkkKHNyY2RpcikvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1
IFwKIAktSSQoc3JjZGlyKS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wg
XAogCS1JJChzcmNkaXIpL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW50eXBl
IFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0gYi9Tb3Vy
Y2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCmluZGV4IDVjNzI5ZGQuLmVmOWQ0NTcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KKysrIGIvU291cmNl
L1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQpAQCAtNjMzMCw2ICs2MzMwLDggQEAgZW5kaWYg
ICMgRU5EIFVTRV9DTFVUVEVSCiAKIGlmIFVTRV9URVhUVVJFX01BUFBFUl9DQUlSTwogd2ViY29y
ZV9zb3VyY2VzICs9IFwKKwlTb3VyY2UvV2ViQ29yZS8vcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVy
cy90ZXhtYXAvQ3VzdG9tRmlsdGVyVmFsaWRhdGVkUHJvZ3JhbVRleHR1cmVNYXBwZXIuY3BwIFwK
KwlTb3VyY2UvV2ViQ29yZS8vcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy90ZXhtYXAvVGV4dHVy
ZU1hcHBlclBsYXRmb3JtQ29tcGlsZWRQcm9ncmFtLmggXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyU2hhZGVyTWFuYWdlci5jcHAgXAogCVNv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyU2hhZGVy
TWFuYWdlci5oIFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvR3Jh
cGhpY3NMYXllclRleHR1cmVNYXBwZXIuY3BwIFwKQEAgLTYzNTEsNiArNjM1Myw4IEBAIGVuZGlm
ICAjIEVORCBVU0VfVEVYVFVSRV9NQVBQRVJfQ0FJUk8KIAogaWYgVVNFX1RFWFRVUkVfTUFQUEVS
X0dMCiB3ZWJjb3JlX3NvdXJjZXMgKz0gXAorCVNvdXJjZS9XZWJDb3JlLy9wbGF0Zm9ybS9ncmFw
aGljcy9maWx0ZXJzL3RleG1hcC9DdXN0b21GaWx0ZXJWYWxpZGF0ZWRQcm9ncmFtVGV4dHVyZU1h
cHBlci5jcHAgXAorCVNvdXJjZS9XZWJDb3JlLy9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL3Rl
eG1hcC9UZXh0dXJlTWFwcGVyUGxhdGZvcm1Db21waWxlZFByb2dyYW0uaCBcCiAJU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJHTC5jcHAgXAogCVNv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyR0wuaCBc
CiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJT
aGFkZXJNYW5hZ2VyLmNwcCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJp
IGIvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQppbmRleCA3NjRjYmU5Li4zMWQ3OWMxIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpCisrKyBiL1NvdXJjZS9XZWJDb3JlL1Rh
cmdldC5wcmkKQEAgLTIwODAsNiArMjA4MCw3IEBAIEhFQURFUlMgKz0gXAogICAgIHBsYXRmb3Jt
L2dyYXBoaWNzL2NwdS9hcm0vZmlsdGVycy9GRUdhdXNzaWFuQmx1ck5FT04uaCBcCiAgICAgcGxh
dGZvcm0vZ3JhcGhpY3MvY3B1L2FybS9maWx0ZXJzL0ZFTGlnaHRpbmdORU9OLmggXAogICAgIHBs
YXRmb3JtL2dyYXBoaWNzL0Nyb3NzZmFkZUdlbmVyYXRlZEltYWdlLmggXAorICAgIHBsYXRmb3Jt
L2dyYXBoaWNzL2ZpbHRlcnMvdGV4bWFwL1RleHR1cmVNYXBwZXJQbGF0Zm9ybUNvbXBpbGVkUHJv
Z3JhbS5oIFwKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0N1c3RvbUZpbHRlckFycmF5
UGFyYW1ldGVyLmggXAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvQ3VzdG9tRmlsdGVy
Q29uc3RhbnRzLmggXAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvQ3VzdG9tRmlsdGVy
R2xvYmFsQ29udGV4dC5oIFwKQEAgLTM1MDIsNiArMzUwMyw3IEBAIGVuYWJsZT8oWFNMVCkgewog
ZW5hYmxlPyhGSUxURVJTKSB7CiAgICAgU09VUkNFUyArPSBcCiAgICAgICAgIHBsYXRmb3JtL2dy
YXBoaWNzL2NwdS9hcm0vZmlsdGVycy9GRUxpZ2h0aW5nTkVPTi5jcHAgXAorICAgICAgICBwbGF0
Zm9ybS9ncmFwaGljcy9maWx0ZXJzL3RleG1hcC9DdXN0b21GaWx0ZXJWYWxpZGF0ZWRQcm9ncmFt
VGV4dHVyZU1hcHBlci5jcHAgXAogICAgICAgICBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0N1
c3RvbUZpbHRlckdsb2JhbENvbnRleHQuY3BwIFwKICAgICAgICAgcGxhdGZvcm0vZ3JhcGhpY3Mv
ZmlsdGVycy9DdXN0b21GaWx0ZXJPcGVyYXRpb24uY3BwIFwKICAgICAgICAgcGxhdGZvcm0vZ3Jh
cGhpY3MvZmlsdGVycy9DdXN0b21GaWx0ZXJQYXJhbWV0ZXJMaXN0LmNwcCBcCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnByaSBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUucHJp
CmluZGV4IDAyOWM3YWUuLjM1MDQ4NzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUucHJpCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUucHJpCkBAIC01Niw2ICs1Niw3IEBA
IElOQ0xVREVQQVRIICs9IFwKICAgICAkJFNPVVJDRV9ESVIvcGxhdGZvcm0vZ3JhcGhpY3MvY3B1
L2FybSBcCiAgICAgJCRTT1VSQ0VfRElSL3BsYXRmb3JtL2dyYXBoaWNzL2NwdS9hcm0vZmlsdGVy
cyBcCiAgICAgJCRTT1VSQ0VfRElSL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMgXAorICAgICQk
U09VUkNFX0RJUi9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL3RleG1hcCBcCiAgICAgJCRTT1VS
Q0VfRElSL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbCBcCiAgICAgJCRTT1VSQ0VfRElSL3BsYXRm
b3JtL2dyYXBoaWNzL29wZW50eXBlIFwKICAgICAkJFNPVVJDRV9ESVIvcGxhdGZvcm0vZ3JhcGhp
Y3MvcXQgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmls
dGVycy9DdXN0b21GaWx0ZXJWYWxpZGF0ZWRQcm9ncmFtLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvQ3VzdG9tRmlsdGVyVmFsaWRhdGVkUHJvZ3JhbS5jcHAK
aW5kZXggZjVlZjZjZi4uZWY1ZWU0ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZmlsdGVycy9DdXN0b21GaWx0ZXJWYWxpZGF0ZWRQcm9ncmFtLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0N1c3RvbUZpbHRlclZh
bGlkYXRlZFByb2dyYW0uY3BwCkBAIC01MTIsNyArNTEyLDcgQEAgQ3VzdG9tRmlsdGVyVmFsaWRh
dGVkUHJvZ3JhbTo6fkN1c3RvbUZpbHRlclZhbGlkYXRlZFByb2dyYW0oKQogICAgICAgICBtX2ds
b2JhbENvbnRleHQtPnJlbW92ZVZhbGlkYXRlZFByb2dyYW0odGhpcyk7CiB9CiAKLSNpZiAhUExB
VEZPUk0oQkxBQ0tCRVJSWSkKKyNpZiAhUExBVEZPUk0oQkxBQ0tCRVJSWSkgJiYgIVVTRShURVhU
VVJFX01BUFBFUikKIHZvaWQgQ3VzdG9tRmlsdGVyVmFsaWRhdGVkUHJvZ3JhbTo6cGxhdGZvcm1J
bml0KCkKIHsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2ZpbHRlcnMvQ3VzdG9tRmlsdGVyVmFsaWRhdGVkUHJvZ3JhbS5oIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9DdXN0b21GaWx0ZXJWYWxpZGF0ZWRQcm9ncmFtLmgK
aW5kZXggMTJmZWZjYy4uOGFmYzllYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZmlsdGVycy9DdXN0b21GaWx0ZXJWYWxpZGF0ZWRQcm9ncmFtLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9DdXN0b21GaWx0ZXJWYWxp
ZGF0ZWRQcm9ncmFtLmgKQEAgLTUzLDYgKzUzLDExIEBAIHN0cnVjdCBBTkdMRVNoYWRlclN5bWJv
bDsKIGNsYXNzIEN1c3RvbUZpbHRlckNvbXBpbGVkUHJvZ3JhbTsKIGNsYXNzIEN1c3RvbUZpbHRl
ckdsb2JhbENvbnRleHQ7CiAKKyNpZiBVU0UoVEVYVFVSRV9NQVBQRVIpCitjbGFzcyBUZXh0dXJl
TWFwcGVyUGxhdGZvcm1Db21waWxlZFByb2dyYW07Cit0eXBlZGVmIFRleHR1cmVNYXBwZXJQbGF0
Zm9ybUNvbXBpbGVkUHJvZ3JhbSBQbGF0Zm9ybUNvbXBpbGVkUHJvZ3JhbTsKKyNlbmRpZgorCiAv
LwogLy8gQSB1bmlxdWUgY29tYmluYXRpb24gb2YgdmVydGV4IHNoYWRlciBhbmQgZnJhZ21lbnQg
c2hhZGVyIGlzIG9ubHkgdmFsaWRhdGVkIGFuZCBjb21waWxlZCBvbmNlLgogLy8gQWxsIHNoYWRl
cnMgYXJlIHZhbGlkYXRlZCB0aHJvdWdoIEFOR0xFIGluIEN1c3RvbUZpbHRlclZhbGlkYXRlZFBy
b2dyYW0gYmVmb3JlIGJlaW5nIGNvbXBpbGVkIGJ5IHRoZSBHcmFwaGljc0NvbnRleHQzRCBpbiBD
dXN0b21GaWx0ZXJDb21waWxlZFByb2dyYW0uCkBAIC05MSw3ICs5Niw3IEBAIHB1YmxpYzoKICAg
ICAgICAgcmV0dXJuIG1fdmFsaWRhdGVkRnJhZ21lbnRTaGFkZXI7IAogICAgIH0KIAotI2lmIFBM
QVRGT1JNKEJMQUNLQkVSUlkpCisjaWYgUExBVEZPUk0oQkxBQ0tCRVJSWSkgfHwgVVNFKFRFWFRV
UkVfTUFQUEVSKQogICAgIFBsYXRmb3JtQ29tcGlsZWRQcm9ncmFtKiBwbGF0Zm9ybUNvbXBpbGVk
UHJvZ3JhbSgpOwogI2VuZGlmCiAKQEAgLTEyNCw3ICsxMjksNyBAQCBwcml2YXRlOgogICAgIFN0
cmluZyBtX3ZhbGlkYXRlZEZyYWdtZW50U2hhZGVyOwogCiAgICAgUmVmUHRyPEN1c3RvbUZpbHRl
ckNvbXBpbGVkUHJvZ3JhbT4gbV9jb21waWxlZFByb2dyYW07Ci0jaWYgUExBVEZPUk0oQkxBQ0tC
RVJSWSkKKyNpZiBQTEFURk9STShCTEFDS0JFUlJZKSB8fCBVU0UoVEVYVFVSRV9NQVBQRVIpCiAg
ICAgUGxhdGZvcm1Db21waWxlZFByb2dyYW0qIG1fcGxhdGZvcm1Db21waWxlZFByb2dyYW07CiAj
ZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmls
dGVycy90ZXhtYXAvQ3VzdG9tRmlsdGVyVmFsaWRhdGVkUHJvZ3JhbVRleHR1cmVNYXBwZXIuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy90ZXhtYXAvQ3VzdG9t
RmlsdGVyVmFsaWRhdGVkUHJvZ3JhbVRleHR1cmVNYXBwZXIuY3BwCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAuLmJlZDBlNmUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL3RleG1hcC9DdXN0b21GaWx0ZXJWYWxpZGF0
ZWRQcm9ncmFtVGV4dHVyZU1hcHBlci5jcHAKQEAgLTAsMCArMSw1OCBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAxMiBBZG9iZSBTeXN0ZW1zIEluY29ycG9yYXRlZC4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqCisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
CisgKiAgICBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZworICogICAgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqICAgIGNvcHlyaWdodCBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nCisgKiAgICBkaXNj
bGFpbWVyIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMKKyAqICAg
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSICJBUyBJUyIgQU5EIEFOWQorICogRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgVEhFIENPUFlSSUdIVCBIT0xERVIgQkUKKyAqIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwKKyAqIE9SIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9D
VVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IKKyAqIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRgorICogVEhFIFVTRSBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GCisgKiBTVUNI
IERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisKKyNpZiBFTkFCTEUoQ1NTX1NI
QURFUlMpICYmIFVTRShURVhUVVJFX01BUFBFUikKKyNpbmNsdWRlICJDdXN0b21GaWx0ZXJWYWxp
ZGF0ZWRQcm9ncmFtLmgiCisKKyNpbmNsdWRlICJUZXh0dXJlTWFwcGVyUGxhdGZvcm1Db21waWxl
ZFByb2dyYW0uaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitQbGF0Zm9ybUNvbXBpbGVkUHJv
Z3JhbSogQ3VzdG9tRmlsdGVyVmFsaWRhdGVkUHJvZ3JhbTo6cGxhdGZvcm1Db21waWxlZFByb2dy
YW0oKQoreworICAgIGlmICghbV9wbGF0Zm9ybUNvbXBpbGVkUHJvZ3JhbSkKKyAgICAgICAgbV9w
bGF0Zm9ybUNvbXBpbGVkUHJvZ3JhbSA9IFRleHR1cmVNYXBwZXJQbGF0Zm9ybUNvbXBpbGVkUHJv
Z3JhbTo6Y3JlYXRlKCkubGVha1JlZigpOworICAgIHJldHVybiBtX3BsYXRmb3JtQ29tcGlsZWRQ
cm9ncmFtOworfQorCit2b2lkIEN1c3RvbUZpbHRlclZhbGlkYXRlZFByb2dyYW06OnBsYXRmb3Jt
SW5pdCgpCit7CisgICAgbV9wbGF0Zm9ybUNvbXBpbGVkUHJvZ3JhbSA9IDA7Cit9CisKK3ZvaWQg
Q3VzdG9tRmlsdGVyVmFsaWRhdGVkUHJvZ3JhbTo6cGxhdGZvcm1EZXN0cm95KCkKK3sKKyAgICBk
ZXJlZklmTm90TnVsbChtX3BsYXRmb3JtQ29tcGlsZWRQcm9ncmFtKTsKK30KKworfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKENTU19TSEFERVJTKSAmJiBVU0UoVEVY
VFVSRV9NQVBQRVIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9maWx0ZXJzL3RleG1hcC9UZXh0dXJlTWFwcGVyUGxhdGZvcm1Db21waWxlZFByb2dyYW0uaCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvdGV4bWFwL1RleHR1cmVN
YXBwZXJQbGF0Zm9ybUNvbXBpbGVkUHJvZ3JhbS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAuLmFmYTZjYTUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9maWx0ZXJzL3RleG1hcC9UZXh0dXJlTWFwcGVyUGxhdGZvcm1Db21waWxl
ZFByb2dyYW0uaApAQCAtMCwwICsxLDcxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIEFk
b2JlIFN5c3RlbXMgSW5jb3Jwb3JhdGVkLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUKKyAqICAgIGNvcHlyaWdo
dCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nCisgKiAg
ICBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZQorICogICAgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcKKyAqICAgIGRpc2NsYWltZXIgaW4gdGhlIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscworICogICAgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhF
IENPUFlSSUdIVCBIT0xERVIgIkFTIElTIiBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09Q
WVJJR0hUIEhPTERFUiBCRQorICogTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLAorICogT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklU
UzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisg
KiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUgorICogVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GCisgKiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YKKyAqIFNVQ0ggREFNQUdFLgorICovCisK
KyNpZm5kZWYgVGV4dHVyZU1hcHBlclBsYXRmb3JtQ29tcGlsZWRQcm9ncmFtX2gKKyNkZWZpbmUg
VGV4dHVyZU1hcHBlclBsYXRmb3JtQ29tcGlsZWRQcm9ncmFtX2gKKworI2lmIEVOQUJMRShDU1Nf
U0hBREVSUykKKyNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0Zi9SZWZD
b3VudGVkLmg+CisjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7
CisKK2NsYXNzIFRleHR1cmVNYXBwZXJQbGF0Zm9ybUNvbXBpbGVkUHJvZ3JhbUNsaWVudCB7Citw
dWJsaWM6CisgICAgdm9pZCByZWYoKSB7IHJlZkZyb21WYWxpZGF0ZWRQcm9ncmFtKCk7IH0KKyAg
ICB2b2lkIGRlcmVmKCkgeyBkZXJlZkZyb21WYWxpZGF0ZWRQcm9ncmFtKCk7IH0KKworICAgIHZp
cnR1YWwgdm9pZCByZWZGcm9tVmFsaWRhdGVkUHJvZ3JhbSgpID0gMDsKKyAgICB2aXJ0dWFsIHZv
aWQgZGVyZWZGcm9tVmFsaWRhdGVkUHJvZ3JhbSgpID0gMDsKK307CisKK2NsYXNzIFRleHR1cmVN
YXBwZXJQbGF0Zm9ybUNvbXBpbGVkUHJvZ3JhbSA6IHB1YmxpYyBSZWZDb3VudGVkPFRleHR1cmVN
YXBwZXJQbGF0Zm9ybUNvbXBpbGVkUHJvZ3JhbT4geworcHVibGljOgorICAgIHN0YXRpYyBQYXNz
UmVmUHRyPFRleHR1cmVNYXBwZXJQbGF0Zm9ybUNvbXBpbGVkUHJvZ3JhbT4gY3JlYXRlKCkKKyAg
ICB7CisgICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgVGV4dHVyZU1hcHBlclBsYXRmb3JtQ29t
cGlsZWRQcm9ncmFtKCkpOworICAgIH0KKyAgICAKKyAgICB2b2lkIHNldENsaWVudChQYXNzUmVm
UHRyPFRleHR1cmVNYXBwZXJQbGF0Zm9ybUNvbXBpbGVkUHJvZ3JhbUNsaWVudD4gY2xpZW50KSB7
IG1fY2xpZW50ID0gY2xpZW50OyB9CisgICAgVGV4dHVyZU1hcHBlclBsYXRmb3JtQ29tcGlsZWRQ
cm9ncmFtQ2xpZW50KiBjbGllbnQoKSBjb25zdCB7IHJldHVybiBtX2NsaWVudC5nZXQoKTsgfQor
Citwcml2YXRlOgorICAgIFRleHR1cmVNYXBwZXJQbGF0Zm9ybUNvbXBpbGVkUHJvZ3JhbSgpCisg
ICAgeworICAgIH0KKworICAgIFJlZlB0cjxUZXh0dXJlTWFwcGVyUGxhdGZvcm1Db21waWxlZFBy
b2dyYW1DbGllbnQ+IG1fY2xpZW50OworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisj
ZW5kaWYgLy8gRU5BQkxFKENTU19TSEFERVJTKQorCisjZW5kaWYgLy8gVGV4dHVyZU1hcHBlclBs
YXRmb3JtQ29tcGlsZWRQcm9ncmFtX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NNYWtl
TGlzdHMudHh0IGIvU291cmNlL1dlYktpdDIvQ01ha2VMaXN0cy50eHQKaW5kZXggNmU0NmY0OC4u
MDYzMmRkMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ01ha2VMaXN0cy50eHQKKysrIGIv
U291cmNlL1dlYktpdDIvQ01ha2VMaXN0cy50eHQKQEAgLTIxOCw2ICsyMTgsNyBAQCBTRVQoV2Vi
S2l0Ml9TT1VSQ0VTCiAgICAgU2hhcmVkL0FQSS9jL1dLVXNlckNvbnRlbnRVUkxQYXR0ZXJuLmNw
cAogCiAgICAgU2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRHcmFwaGljc0Fy
Z3VtZW50Q29kZXJzLmNwcAorICAgIFNoYXJlZC9Db29yZGluYXRlZEdyYXBoaWNzL1dlYkN1c3Rv
bUZpbHRlclByb2dyYW1Qcm94eS5jcHAKIAogICAgIFNoYXJlZC9QbHVnaW5zL05QSWRlbnRpZmll
ckRhdGEuY3BwCiAgICAgU2hhcmVkL1BsdWdpbnMvTlBPYmplY3RNZXNzYWdlUmVjZWl2ZXIuY3Bw
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cKaW5kZXggYWY1NjBiNy4uMGNkZTA0YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ2
IEBACisyMDEyLTExLTE1ICBBbGV4YW5kcnUgQ2hpY3VsaXRhICA8YWNoaWN1QGFkb2JlLmNvbT4K
KworICAgICAgICBbVGV4bWFwXVtDU1MgU2hhZGVyc10gTWFrZSB0aGUgQ3VzdG9tRmlsdGVyVmFs
aWRhdGVkUHJvZ3JhbSBtYWludGFpbiB0aGUgcGxhdGZvcm0gY29tcGlsZWQgcHJvZ3JhbQorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAyNDE0CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBpcyB0aGUg
Zmlyc3QgcGFydCBvZiBzaGFkZXIgY2FjaGluZyBpbXBsZW1lbnRhdGlvbiBmb3IgdGhlIEN1c3Rv
bSBGaWx0ZXJzIGluIFdLMiBMYXllclRyZWVDb29yZGluYXRvci4KKyAgICAgICAgSW4gdGhpcyBw
YXRjaCBpdCB3aWxsIGp1c3QgbWFrZSB0aGUgTGF5ZXJUcmVlQ29vcmRpbmF0b3Iga25vd2xlZGdl
YWJsZSBhYm91dCB0aGUgbGlmZS10aW1lCisgICAgICAgIG9mIHRoZSBjdXN0b20gZmlsdGVyIHBy
b2dyYW1zLiBJdCBjYW4gYWxsb2NhdGUgSURzIGZvciB0aGUgZmlsdGVycyBhbmQgaXQgYWxzbyBn
ZXRzIGEgY2FsbGJhY2sgd2hlbiB0aGUKKyAgICAgICAgZmlsdGVycyBhcmUgbm90IG5lZWRlZCBh
bnltb3JlLgorCisgICAgICAgIFRoZSBVSSBwcm9jZXNzIGlzIHN0aWxsIHJlY3JlYXRpbmcgdGhl
IHNoYWRlciBldmVyeSB0aW1lLCBidXQgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTEwMTgwMQorICAgICAgICB3aWxsIGZpeCB0aGF0IGFuZCB0cnkgdG8gcmV1c2UgZXhp
c3RpbmcgY3VzdG9tIGZpbHRlcnMuCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAg
ICAgKiBTaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZEdyYXBoaWNzQXJndW1l
bnRDb2RlcnMuY3BwOgorICAgICAgICAoQ29yZUlQQzo6OjplbmNvZGUpOgorICAgICAgICAqIFNo
YXJlZC9Db29yZGluYXRlZEdyYXBoaWNzL1dlYkN1c3RvbUZpbHRlclByb2dyYW1Qcm94eS5jcHA6
IEFkZGVkLgorICAgICAgICAoV2ViS2l0KToKKyAgICAgICAgKFdlYktpdDo6V2ViQ3VzdG9tRmls
dGVyUHJvZ3JhbVByb3h5Ojp+V2ViQ3VzdG9tRmlsdGVyUHJvZ3JhbVByb3h5KToKKyAgICAgICAg
KiBTaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy9XZWJDdXN0b21GaWx0ZXJQcm9ncmFtUHJveHku
aDogQWRkZWQuCisgICAgICAgIChXZWJLaXQpOgorICAgICAgICAoV2ViQ3VzdG9tRmlsdGVyUHJv
Z3JhbVByb3h5Q2xpZW50KToKKyAgICAgICAgKFdlYkN1c3RvbUZpbHRlclByb2dyYW1Qcm94eSk6
CisgICAgICAgIChXZWJLaXQ6OldlYkN1c3RvbUZpbHRlclByb2dyYW1Qcm94eTo6Y3JlYXRlKToK
KyAgICAgICAgKFdlYktpdDo6V2ViQ3VzdG9tRmlsdGVyUHJvZ3JhbVByb3h5OjppZCk6CisgICAg
ICAgIChXZWJLaXQ6OldlYkN1c3RvbUZpbHRlclByb2dyYW1Qcm94eTo6cmVmRnJvbVZhbGlkYXRl
ZFByb2dyYW0pOgorICAgICAgICAoV2ViS2l0OjpXZWJDdXN0b21GaWx0ZXJQcm9ncmFtUHJveHk6
OmRlcmVmRnJvbVZhbGlkYXRlZFByb2dyYW0pOgorICAgICAgICAoV2ViS2l0OjpXZWJDdXN0b21G
aWx0ZXJQcm9ncmFtUHJveHk6OnNldENsaWVudCk6CisgICAgICAgIChXZWJLaXQ6OldlYkN1c3Rv
bUZpbHRlclByb2dyYW1Qcm94eTo6Y2xpZW50KToKKyAgICAgICAgKFdlYktpdDo6V2ViQ3VzdG9t
RmlsdGVyUHJvZ3JhbVByb3h5OjpXZWJDdXN0b21GaWx0ZXJQcm9ncmFtUHJveHkpOgorICAgICAg
ICAqIFRhcmdldC5wcmk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVk
R3JhcGhpY3MvTGF5ZXJUcmVlQ29vcmRpbmF0b3IuY3BwOgorICAgICAgICAoV2ViS2l0OjpMYXll
clRyZWVDb29yZGluYXRvcjo6fkxheWVyVHJlZUNvb3JkaW5hdG9yKToKKyAgICAgICAgKFdlYktp
dDo6TGF5ZXJUcmVlQ29vcmRpbmF0b3I6OnN5bmNMYXllckZpbHRlcnMpOgorICAgICAgICAoV2Vi
S2l0KToKKyAgICAgICAgKFdlYktpdDo6TGF5ZXJUcmVlQ29vcmRpbmF0b3I6OmNoZWNrQ3VzdG9t
RmlsdGVyUHJvZ3JhbVByb3hpZXMpOgorICAgICAgICAoV2ViS2l0OjpMYXllclRyZWVDb29yZGlu
YXRvcjo6cmVtb3ZlQ3VzdG9tRmlsdGVyUHJvZ3JhbVByb3h5KToKKyAgICAgICAgKFdlYktpdDo6
TGF5ZXJUcmVlQ29vcmRpbmF0b3I6OmRpc2Nvbm5lY3RDdXN0b21GaWx0ZXJQcm9ncmFtcyk6Cisg
ICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvTGF5ZXJUcmVl
Q29vcmRpbmF0b3IuaDoKKyAgICAgICAgKExheWVyVHJlZUNvb3JkaW5hdG9yKToKKwogMjAxMi0x
MS0xNSAgUmljayBCeWVycyAgPHJieWVyc0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgTm8gdGVz
dHMgZm9yIGNoYW5naW5nIG1vdXNlIGN1cnNvcnMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1NoYXJlZC9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkR3JhcGhpY3NBcmd1bWVudENv
ZGVycy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29y
ZGluYXRlZEdyYXBoaWNzQXJndW1lbnRDb2RlcnMuY3BwCmluZGV4IGJkYjkwNjUuLmQ5ODU3MDcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Db29yZGluYXRlZEdyYXBoaWNzL0Nv
b3JkaW5hdGVkR3JhcGhpY3NBcmd1bWVudENvZGVycy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIv
U2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRHcmFwaGljc0FyZ3VtZW50Q29k
ZXJzLmNwcApAQCAtMTQ2LDYgKzE0NiwxMCBAQCB2b2lkIEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6
RmlsdGVyT3BlcmF0aW9ucz46OmVuY29kZShBcmd1bWVudEVuY29kZXImIGVuY29kZXIsCiAgICAg
ICAgICAgICBBU1NFUlQoY3VzdG9tT3BlcmF0aW9uLT52YWxpZGF0ZWRQcm9ncmFtKCkpOwogICAg
ICAgICAgICAgUmVmUHRyPEN1c3RvbUZpbHRlclZhbGlkYXRlZFByb2dyYW0+IHByb2dyYW0gPSBj
dXN0b21PcGVyYXRpb24tPnZhbGlkYXRlZFByb2dyYW0oKTsKICAgICAgICAgICAgIEFTU0VSVChw
cm9ncmFtLT5pc0luaXRpYWxpemVkKCkpOworICAgICAgICAgICAgQVNTRVJUKHByb2dyYW0tPnBs
YXRmb3JtQ29tcGlsZWRQcm9ncmFtKCkpOworICAgICAgICAgICAgLy8gRklYTUU6IFdlIHNob3Vs
ZCBvbmx5IHNlcmlhbGl6ZSB0aGUgb2JqZWN0IGlmIGl0IHdhcyBub3Qgc2VyaWFsaXplZCBiZWZv
cmUsCisgICAgICAgICAgICAvLyBvdGhlcndpc2Ugb25seSB0aGUgSUQgb2YgdGhlIHByb2dyYW0g
c2hvdWxkIGJlIHdyaXR0ZW4gdG8gdGhlIHN0cmVhbS4KKyAgICAgICAgICAgIC8vIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDE4MDEKICAgICAgICAgICAgIGVuY29k
ZXIgPDwgcHJvZ3JhbS0+dmFsaWRhdGVkVmVydGV4U2hhZGVyKCk7CiAgICAgICAgICAgICBlbmNv
ZGVyIDw8IHByb2dyYW0tPnZhbGlkYXRlZEZyYWdtZW50U2hhZGVyKCk7CiAgICAgICAgICAgICBj
b25zdCBDdXN0b21GaWx0ZXJQcm9ncmFtSW5mbyYgcHJvZ3JhbUluZm8gPSBwcm9ncmFtLT5wcm9n
cmFtSW5mbygpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0Nvb3JkaW5hdGVk
R3JhcGhpY3MvV2ViQ3VzdG9tRmlsdGVyUHJvZ3JhbVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQy
L1NoYXJlZC9Db29yZGluYXRlZEdyYXBoaWNzL1dlYkN1c3RvbUZpbHRlclByb2dyYW1Qcm94eS5j
cHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTZmNzA3NgotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Db29yZGluYXRlZEdyYXBoaWNzL1dlYkN1
c3RvbUZpbHRlclByb2dyYW1Qcm94eS5jcHAKQEAgLTAsMCArMSw0OSBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAxMiBBZG9iZSBTeXN0ZW1zIEluY29ycG9yYXRlZC4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqCisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
CisgKiAgICBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZworICogICAgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqICAgIGNvcHlyaWdodCBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nCisgKiAgICBkaXNj
bGFpbWVyIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMKKyAqICAg
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSICJBUyBJUyIgQU5EIEFOWQorICogRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgVEhFIENPUFlSSUdIVCBIT0xERVIgQkUKKyAqIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwKKyAqIE9SIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9D
VVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IKKyAqIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRgorICogVEhFIFVTRSBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GCisgKiBTVUNI
IERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisKKyNpZiBFTkFCTEUoQ1NTX1NI
QURFUlMpCisjaW5jbHVkZSAiV2ViQ3VzdG9tRmlsdGVyUHJvZ3JhbVByb3h5LmgiCisKK25hbWVz
cGFjZSBXZWJLaXQgeworCitpbnQgV2ViQ3VzdG9tRmlsdGVyUHJvZ3JhbVByb3h5OjpzX25leHRJ
ZCA9IDE7CisKK1dlYkN1c3RvbUZpbHRlclByb2dyYW1Qcm94eTo6fldlYkN1c3RvbUZpbHRlclBy
b2dyYW1Qcm94eSgpCit7CisgICAgaWYgKG1fY2xpZW50KSB7CisgICAgICAgIG1fY2xpZW50LT5y
ZW1vdmVDdXN0b21GaWx0ZXJQcm9ncmFtUHJveHkodGhpcyk7CisgICAgICAgIG1fY2xpZW50ID0g
MDsKKyAgICB9Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gRU5BQkxF
KENTU19TSEFERVJTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0Nvb3JkaW5h
dGVkR3JhcGhpY3MvV2ViQ3VzdG9tRmlsdGVyUHJvZ3JhbVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0
Mi9TaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy9XZWJDdXN0b21GaWx0ZXJQcm9ncmFtUHJveHku
aApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iYjZmMGJiCi0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvV2ViQ3Vz
dG9tRmlsdGVyUHJvZ3JhbVByb3h5LmgKQEAgLTAsMCArMSw5MyBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAxMiBBZG9iZSBTeXN0ZW1zIEluY29ycG9yYXRlZC4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqCisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlCisg
KiAgICBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZworICogICAgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqICAgIGNvcHlyaWdodCBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nCisgKiAgICBkaXNjbGFp
bWVyIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMKKyAqICAgIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSICJBUyBJUyIgQU5EIEFOWQorICogRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBU
SEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgVEhFIENPUFlSSUdIVCBIT0xERVIgQkUKKyAqIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwKKyAqIE9SIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJF
TUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IKKyAqIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRgorICogVEhFIFVTRSBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GCisgKiBTVUNIIERB
TUFHRS4KKyAqLworCisjaWZuZGVmIFdlYkN1c3RvbUZpbHRlclByb2dyYW1Qcm94eV9oCisjZGVm
aW5lIFdlYkN1c3RvbUZpbHRlclByb2dyYW1Qcm94eV9oCisKKyNpZiBVU0UoQ09PUkRJTkFURURf
R1JBUEhJQ1MpICYmIEVOQUJMRShDU1NfU0hBREVSUykKKworI2luY2x1ZGUgIlRleHR1cmVNYXBw
ZXJQbGF0Zm9ybUNvbXBpbGVkUHJvZ3JhbS5oIgorI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+
CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBXZWJDdXN0b21GaWx0ZXJQcm9ncmFtUHJv
eHk7CisKK2NsYXNzIFdlYkN1c3RvbUZpbHRlclByb2dyYW1Qcm94eUNsaWVudCB7CitwdWJsaWM6
CisgICAgdmlydHVhbCB2b2lkIHJlbW92ZUN1c3RvbUZpbHRlclByb2dyYW1Qcm94eShXZWJDdXN0
b21GaWx0ZXJQcm9ncmFtUHJveHkqKSA9IDA7Cit9OworCisvLyBUaGlzIGlzIGEgcHJveHkgY2xh
c3MgdXNlZCB0byBzdG9yZSB0aGUgSUQgb2YgdGhlIGN1c3RvbSBmaWx0ZXIgcHJvZ3JhbSBzZXJp
YWxpemVkIHRvIHRoZSBvdGhlciBwcm9jZXNzLgorLy8gSXQgbGl2ZXMgaW4gdGhlIFdlYlByb2Nl
c3MgYW5kIGlzIHJlZmVyZW5jZWQgZnJvbSB0aGUgQ3VzdG9tRmlsdGVyVmFsaWRhdGVkUHJvZ3Jh
bSBtZWFuaW5nIHRoYXQgaXQgd2lsbCBiZSBrZXB0IGFsaXZlIGFzCisvLyBsb25nIGFzIGEgbGF5
ZXIgb24gdGhlIHBhZ2Ugd2lsbCByZW5kZXIgd2l0aCB0aGlzIHByb2dyYW0uIEl0IHdpbGwgY2Fs
bCByZW1vdmVDdXN0b21GaWx0ZXJQcm9ncmFtUHJveHkgb24gdGhlIG1fY2xpZW50CisvLyB3aGVu
IHRoZSBwcm9ncmFtIGlzIG5vIGxvbmdlciBuZWVkZWQgdG8gcmVuZGVyIHRoZSBmaWx0ZXIuIFRo
ZSBjbGllbnQgY2FuIHRoZW4gc2VuZCBhIG1lc3NhZ2UgdG8gdGhlIFVJIHByb2Nlc3MKKy8vIHRv
IGRlc3Ryb3kgdGhlIGFzc29jaWF0ZWQgcmVmZXJlbmNlLiBOb3RlIHRoYXQgbW9yZSBsYXllcnMg
Y2FuIHNoYXJlIHRoZSBzYW1lIHByb2dyYW0gYW5kIHRoZXJlJ3MKKy8vIG5vIG5lZWQgdG8gaW1w
bGVtZW50IGEgY2FjaGluZyBtZWNoYW5pc20gaW4gdGhlIGNvbXBvc2l0b3Igc2lkZS4KKworY2xh
c3MgV2ViQ3VzdG9tRmlsdGVyUHJvZ3JhbVByb3h5IDogcHVibGljIFJlZkNvdW50ZWQ8V2ViQ3Vz
dG9tRmlsdGVyUHJvZ3JhbVByb3h5PiwgcHVibGljIFdlYkNvcmU6OlRleHR1cmVNYXBwZXJQbGF0
Zm9ybUNvbXBpbGVkUHJvZ3JhbUNsaWVudCB7CitwdWJsaWM6CisgICAgdXNpbmcgUmVmQ291bnRl
ZDxXZWJDdXN0b21GaWx0ZXJQcm9ncmFtUHJveHk+OjpyZWY7CisgICAgdXNpbmcgUmVmQ291bnRl
ZDxXZWJDdXN0b21GaWx0ZXJQcm9ncmFtUHJveHk+OjpkZXJlZjsKKworICAgIHN0YXRpYyBQYXNz
UmVmUHRyPFdlYkN1c3RvbUZpbHRlclByb2dyYW1Qcm94eT4gY3JlYXRlKFdlYkN1c3RvbUZpbHRl
clByb2dyYW1Qcm94eUNsaWVudCogY2xpZW50KQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0
UmVmKG5ldyBXZWJDdXN0b21GaWx0ZXJQcm9ncmFtUHJveHkoY2xpZW50KSk7CisgICAgfQorCisg
ICAgaW50IGlkKCkgY29uc3QgeyByZXR1cm4gbV9pZDsgfQorCisgICAgLy8gTmVlZGVkIHRvIG1h
a2UgVGV4dHVyZU1hcHBlclBsYXRmb3JtQ29tcGlsZWRQcm9ncmFtQ2xpZW50IGxvb2sgbGlrZSBh
IFJlZkNvdW50ZWQgb2JqZWN0LgorICAgIHZpcnR1YWwgdm9pZCByZWZGcm9tVmFsaWRhdGVkUHJv
Z3JhbSgpIHsgcmVmKCk7IH0KKyAgICB2aXJ0dWFsIHZvaWQgZGVyZWZGcm9tVmFsaWRhdGVkUHJv
Z3JhbSgpIHsgZGVyZWYoKTsgfQorCisgICAgfldlYkN1c3RvbUZpbHRlclByb2dyYW1Qcm94eSgp
OworICAgIAorICAgIHZvaWQgc2V0Q2xpZW50KFdlYkN1c3RvbUZpbHRlclByb2dyYW1Qcm94eUNs
aWVudCogY2xpZW50KSB7IG1fY2xpZW50ID0gY2xpZW50OyB9CisgICAgV2ViQ3VzdG9tRmlsdGVy
UHJvZ3JhbVByb3h5Q2xpZW50KiBjbGllbnQoKSBjb25zdCB7IHJldHVybiBtX2NsaWVudDsgfQor
Citwcml2YXRlOgorICAgIFdlYkN1c3RvbUZpbHRlclByb2dyYW1Qcm94eShXZWJDdXN0b21GaWx0
ZXJQcm9ncmFtUHJveHlDbGllbnQqIGNsaWVudCkKKyAgICAgICAgOiBtX2NsaWVudChjbGllbnQp
CisgICAgICAgICwgbV9pZChzX25leHRJZCsrKQorICAgIHsKKyAgICB9CisgICAgCisgICAgV2Vi
Q3VzdG9tRmlsdGVyUHJvZ3JhbVByb3h5Q2xpZW50KiBtX2NsaWVudDsKKyAgICBpbnQgbV9pZDsK
KyAgICAKKyAgICBzdGF0aWMgaW50IHNfbmV4dElkOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2Vi
S2l0CisKKyNlbmRpZiAvLyBVU0UoQ09PUkRJTkFURURfR1JBUEhJQ1MpICYmIEVOQUJMRShDU1Nf
U0hBREVSUykKKworI2VuZGlmIC8vIFdlYkN1c3RvbUZpbHRlclByb2dyYW1Qcm94eV9oCisKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1RhcmdldC5wcmkgYi9Tb3VyY2UvV2ViS2l0Mi9UYXJn
ZXQucHJpCmluZGV4IGRhYzliOWEuLjg4ZjE0M2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1RhcmdldC5wcmkKKysrIGIvU291cmNlL1dlYktpdDIvVGFyZ2V0LnByaQpAQCAtNTAyLDYgKzUw
Miw3IEBAIFNPVVJDRVMgKz0gXAogICAgIFNoYXJlZC9XZWJVUkxSZXNwb25zZS5jcHAgXAogICAg
IFNoYXJlZC9XZWJXaGVlbEV2ZW50LmNwcCBcCiAgICAgU2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhp
Y3MvQ29vcmRpbmF0ZWRHcmFwaGljc0FyZ3VtZW50Q29kZXJzLmNwcCBcCisgICAgU2hhcmVkL0Nv
b3JkaW5hdGVkR3JhcGhpY3MvV2ViQ3VzdG9tRmlsdGVyUHJvZ3JhbVByb3h5LmNwcCBcCiAgICAg
U2hhcmVkL3F0L0FyZ3VtZW50Q29kZXJzUXQuY3BwIFwKICAgICBTaGFyZWQvcXQvTGF5ZXJUcmVl
Q29udGV4dFF0LmNwcCBcCiAgICAgU2hhcmVkL3F0L1NoYXJlYWJsZUJpdG1hcFF0LmNwcCBcCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRH
cmFwaGljcy9MYXllclRyZWVDb29yZGluYXRvci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9MYXllclRyZWVDb29yZGluYXRvci5jcHAK
aW5kZXggYmI5ZWIzYi4uN2U3ODZhNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvTGF5ZXJUcmVlQ29vcmRpbmF0b3IuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBo
aWNzL0xheWVyVHJlZUNvb3JkaW5hdG9yLmNwcApAQCAtNDksNiArNDksMTEgQEAKICNpbmNsdWRl
IDxXZWJDb3JlL1NldHRpbmdzLmg+CiAjaW5jbHVkZSA8d3RmL1RlbXBvcmFyeUNoYW5nZS5oPgog
CisjaWYgRU5BQkxFKENTU19TSEFERVJTKQorI2luY2x1ZGUgIkN1c3RvbUZpbHRlclZhbGlkYXRl
ZFByb2dyYW0uaCIKKyNpbmNsdWRlICJWYWxpZGF0ZWRDdXN0b21GaWx0ZXJPcGVyYXRpb24uaCIK
KyNlbmRpZgorCiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAogbmFtZXNwYWNlIFdlYktpdCB7
CkBAIC02MCw2ICs2NSwxMCBAQCBQYXNzUmVmUHRyPExheWVyVHJlZUNvb3JkaW5hdG9yPiBMYXll
clRyZWVDb29yZGluYXRvcjo6Y3JlYXRlKFdlYlBhZ2UqIHdlYlBhZ2UpCiAKIExheWVyVHJlZUNv
b3JkaW5hdG9yOjp+TGF5ZXJUcmVlQ29vcmRpbmF0b3IoKQogeworI2lmIEVOQUJMRShDU1NfU0hB
REVSUykKKyAgICBkaXNjb25uZWN0Q3VzdG9tRmlsdGVyUHJvZ3JhbXMoKTsKKyNlbmRpZgorCiAg
ICAgLy8gUHJldmVudCBzZXRDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXJDbGllbnQoMCkgLT4gZGV0
YWNoTGF5ZXIoKSBmcm9tIG1vZGlmeWluZyB0aGUgc2V0IHdoaWxlIHdlIGl0ZXJhdGUgaXQuCiAg
ICAgSGFzaFNldDxXZWJDb3JlOjpDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXIqPiByZWdpc3RlcmVk
TGF5ZXJzOwogICAgIHJlZ2lzdGVyZWRMYXllcnMuc3dhcChtX3JlZ2lzdGVyZWRMYXllcnMpOwpA
QCAtMzIzLDEwICszMzIsNjIgQEAgdm9pZCBMYXllclRyZWVDb29yZGluYXRvcjo6c3luY0NhbnZh
cyhXZWJMYXllcklEIGlkLCBjb25zdCBJbnRTaXplJiBjYW52YXNTaXplLAogdm9pZCBMYXllclRy
ZWVDb29yZGluYXRvcjo6c3luY0xheWVyRmlsdGVycyhXZWJMYXllcklEIGlkLCBjb25zdCBGaWx0
ZXJPcGVyYXRpb25zJiBmaWx0ZXJzKQogewogICAgIG1fc2hvdWxkU3luY0ZyYW1lID0gdHJ1ZTsK
KyNpZiBFTkFCTEUoQ1NTX1NIQURFUlMpCisgICAgY2hlY2tDdXN0b21GaWx0ZXJQcm9ncmFtUHJv
eGllcyhmaWx0ZXJzKTsKKyNlbmRpZgogICAgIG1fd2ViUGFnZS0+c2VuZChNZXNzYWdlczo6TGF5
ZXJUcmVlQ29vcmRpbmF0b3JQcm94eTo6U2V0Q29tcG9zaXRpbmdMYXllckZpbHRlcnMoaWQsIGZp
bHRlcnMpKTsKIH0KICNlbmRpZgogCisjaWYgRU5BQkxFKENTU19TSEFERVJTKQordm9pZCBMYXll
clRyZWVDb29yZGluYXRvcjo6Y2hlY2tDdXN0b21GaWx0ZXJQcm9ncmFtUHJveGllcyhjb25zdCBG
aWx0ZXJPcGVyYXRpb25zJiBmaWx0ZXJzKQoreworICAgIC8vIFdlIG5lZWQgdG8gY3JlYXRlIHRo
ZSBXZWJDdXN0b21GaWx0ZXJQcm9ncmFtUHJveHkgb2JqZWN0cyBiZWZvcmUgd2UgZ2V0IHRvIHNl
cmlhbGl6ZSB0aGUKKyAgICAvLyBjdXN0b20gZmlsdGVycyB0byB0aGUgb3RoZXIgcHJvY2Vzcy4g
VGhhdCdzIGJlY2F1c2UgV2ViQ3VzdG9tRmlsdGVyUHJvZ3JhbVByb3h5IG5lZWRzCisgICAgLy8g
dG8gbGluayBiYWNrIHRvIHRoZSBjb29yZGluYXRvciwgc28gdGhhdCB3ZSBjYW4gc2VuZCBhIG1l
c3NhZ2UgdG8gdGhlIFVJIHByb2Nlc3Mgd2hlbiAKKyAgICAvLyB0aGUgcHJvZ3JhbSBpcyBub3Qg
bmVlZGVkIGFueW1vcmUuCisgICAgLy8gTm90ZSB0aGF0IHRoZSBzZXJpYWxpemF0aW9uIHdpbGwg
b25seSBoYXBwZW4gYXQgYSBsYXRlciB0aW1lIGluIEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6Rmls
dGVyT3BlcmF0aW9ucz46OmVuY29kZS4KKyAgICAvLyBBdCB0aGF0IHBvaW50IHRoZSBwcm9ncmFt
IHdpbGwgb25seSBiZSBzZXJpYWxpemVkIG9uY2UuIEFsbCB0aGUgb3RoZXIgdGltZXMgaXQgd2ls
bCBvbmx5IHVzZSB0aGUgSUQgb2YgdGhlIHByb2dyYW0uCisgICAgZm9yIChzaXplX3QgaSA9IDA7
IGkgPCBmaWx0ZXJzLnNpemUoKTsgKytpKSB7CisgICAgICAgIGNvbnN0IEZpbHRlck9wZXJhdGlv
biogb3BlcmF0aW9uID0gZmlsdGVycy5hdChpKTsKKyAgICAgICAgaWYgKG9wZXJhdGlvbi0+Z2V0
T3BlcmF0aW9uVHlwZSgpICE9IEZpbHRlck9wZXJhdGlvbjo6VkFMSURBVEVEX0NVU1RPTSkKKyAg
ICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICBjb25zdCBWYWxpZGF0ZWRDdXN0b21GaWx0ZXJP
cGVyYXRpb24qIGN1c3RvbU9wZXJhdGlvbiA9IHN0YXRpY19jYXN0PGNvbnN0IFZhbGlkYXRlZEN1
c3RvbUZpbHRlck9wZXJhdGlvbio+KG9wZXJhdGlvbik7CisgICAgICAgIEFTU0VSVChjdXN0b21P
cGVyYXRpb24tPnZhbGlkYXRlZFByb2dyYW0oKS0+aXNJbml0aWFsaXplZCgpKTsKKyAgICAgICAg
VGV4dHVyZU1hcHBlclBsYXRmb3JtQ29tcGlsZWRQcm9ncmFtKiBwcm9ncmFtID0gY3VzdG9tT3Bl
cmF0aW9uLT52YWxpZGF0ZWRQcm9ncmFtKCktPnBsYXRmb3JtQ29tcGlsZWRQcm9ncmFtKCk7Cisg
ICAgICAgIGlmICghcHJvZ3JhbS0+Y2xpZW50KCkpCisgICAgICAgICAgICBwcm9ncmFtLT5zZXRD
bGllbnQoV2ViQ3VzdG9tRmlsdGVyUHJvZ3JhbVByb3h5OjpjcmVhdGUodGhpcykpOworICAgICAg
ICBlbHNlIHsKKyAgICAgICAgICAgIFdlYkN1c3RvbUZpbHRlclByb2dyYW1Qcm94eSogY3VzdG9t
RmlsdGVyUHJvZ3JhbVByb3h5ID0gc3RhdGljX2Nhc3Q8V2ViQ3VzdG9tRmlsdGVyUHJvZ3JhbVBy
b3h5Kj4ocHJvZ3JhbS0+Y2xpZW50KCkpOworICAgICAgICAgICAgaWYgKCFjdXN0b21GaWx0ZXJQ
cm9ncmFtUHJveHktPmNsaWVudCgpKSB7CisgICAgICAgICAgICAgICAgLy8gSnVzdCBpbiBjYXNl
IHRoZSBMYXllclRyZWVDb29yZGluYXRvciB3YXMgZGVzdHJveWVkIGFuZCByZWNyZWF0ZWQuCisg
ICAgICAgICAgICAgICAgY3VzdG9tRmlsdGVyUHJvZ3JhbVByb3h5LT5zZXRDbGllbnQodGhpcyk7
CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIC8vIElmIHRoZSBjbGllbnQg
d2FzIG5vdCBkaXNjb25uZWN0ZWQgdGhlbiB0aGlzIGNvb3JkaW5hdG9yIG11c3QgYmUgdGhlIGNs
aWVudCBmb3IgaXQuCisgICAgICAgICAgICAgICAgQVNTRVJUKGN1c3RvbUZpbHRlclByb2dyYW1Q
cm94eS0+Y2xpZW50KCkgPT0gdGhpcyk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9
Cit9CisKK3ZvaWQgTGF5ZXJUcmVlQ29vcmRpbmF0b3I6OnJlbW92ZUN1c3RvbUZpbHRlclByb2dy
YW1Qcm94eShXZWJDdXN0b21GaWx0ZXJQcm9ncmFtUHJveHkqIGN1c3RvbUZpbHRlclByb2dyYW1Q
cm94eSkKK3sKKyAgICAvLyBBdCB0aGlzIHRpbWUgdGhlIHNoYWRlciBpcyBub3QgbmVlZGVkIGFu
eW1vcmUsIHNvIHdlIHJlbW92ZSBpdCBmcm9tIG91ciBzZXQgYW5kIAorICAgIC8vIHNlbmQgYSBt
ZXNzYWdlIHRvIHRoZSBvdGhlciBwcm9jZXNzIHRvIGRlbGV0ZSBpdC4KKyAgICBtX2N1c3RvbUZp
bHRlclByb2dyYW1zLnJlbW92ZShjdXN0b21GaWx0ZXJQcm9ncmFtUHJveHkpOworICAgIC8vIEZJ
WE1FOiBTZW5kIGEgbWVzc2FnZSB0byBkZWxldGUgdGhlIG9iamVjdCBvbiB0aGUgVUkgcHJvY2Vz
cy4KKyAgICAvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAxODAx
Cit9CisKK3ZvaWQgTGF5ZXJUcmVlQ29vcmRpbmF0b3I6OmRpc2Nvbm5lY3RDdXN0b21GaWx0ZXJQ
cm9ncmFtcygpCit7CisgICAgLy8gTWFrZSBzdXJlIHRoYXQgV2ViQ29yZSB3aWxsIG5vdCBjYWxs
IGludG8gdGhpcyBjb29yZGluYXRvciBhbnltb3JlLgorICAgIEhhc2hTZXQ8V2ViQ3VzdG9tRmls
dGVyUHJvZ3JhbVByb3h5Kj46Oml0ZXJhdG9yIGl0ZXIgPSBtX2N1c3RvbUZpbHRlclByb2dyYW1z
LmJlZ2luKCk7CisgICAgZm9yICg7IGl0ZXIgIT0gbV9jdXN0b21GaWx0ZXJQcm9ncmFtcy5lbmQo
KTsgKytpdGVyKQorICAgICAgICAoKml0ZXIpLT5zZXRDbGllbnQoMCk7Cit9CisjZW5kaWYKKwog
dm9pZCBMYXllclRyZWVDb29yZGluYXRvcjo6ZGV0YWNoTGF5ZXIoQ29vcmRpbmF0ZWRHcmFwaGlj
c0xheWVyKiBsYXllcikKIHsKICAgICBtX3JlZ2lzdGVyZWRMYXllcnMucmVtb3ZlKGxheWVyKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRl
ZEdyYXBoaWNzL0xheWVyVHJlZUNvb3JkaW5hdG9yLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9MYXllclRyZWVDb29yZGluYXRvci5oCmlu
ZGV4IDFhOWUxNzkuLmNhMzZmNjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0xheWVyVHJlZUNvb3JkaW5hdG9yLmgKKysr
IGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3Mv
TGF5ZXJUcmVlQ29vcmRpbmF0b3IuaApAQCAtMzIsNiArMzIsMTAgQEAKICNpbmNsdWRlIDxXZWJD
b3JlL0dyYXBoaWNzU3VyZmFjZS5oPgogI2luY2x1ZGUgPHd0Zi9Pd25QdHIuaD4KIAorI2lmIEVO
QUJMRShDU1NfU0hBREVSUykKKyNpbmNsdWRlICJXZWJDdXN0b21GaWx0ZXJQcm9ncmFtUHJveHku
aCIKKyNlbmRpZgorCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogY2xhc3MgVXBkYXRlSW5mbzsKQEAg
LTQwLDcgKzQ0LDExIEBAIGNsYXNzIFdlYlBhZ2U7CiBjbGFzcyBMYXllclRyZWVDb29yZGluYXRv
ciA6IHB1YmxpYyBMYXllclRyZWVIb3N0LCBXZWJDb3JlOjpHcmFwaGljc0xheWVyQ2xpZW50CiAg
ICAgLCBwdWJsaWMgQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyQ2xpZW50CiAgICAgLCBwdWJsaWMg
VXBkYXRlQXRsYXNDbGllbnQKLSAgICAsIHB1YmxpYyBXZWJDb3JlOjpHcmFwaGljc0xheWVyRmFj
dG9yeSB7CisgICAgLCBwdWJsaWMgV2ViQ29yZTo6R3JhcGhpY3NMYXllckZhY3RvcnkKKyNpZiBF
TkFCTEUoQ1NTX1NIQURFUlMpCisgICAgLCBXZWJDdXN0b21GaWx0ZXJQcm9ncmFtUHJveHlDbGll
bnQKKyNlbmRpZgorewogcHVibGljOgogICAgIHN0YXRpYyBQYXNzUmVmUHRyPExheWVyVHJlZUNv
b3JkaW5hdG9yPiBjcmVhdGUoV2ViUGFnZSopOwogICAgIHZpcnR1YWwgfkxheWVyVHJlZUNvb3Jk
aW5hdG9yKCk7CkBAIC0xMzYsNiArMTQ0LDE0IEBAIHByaXZhdGU6CiAKICAgICB2b2lkIHJlbGVh
c2VJbmFjdGl2ZUF0bGFzZXNUaW1lckZpcmVkKFdlYkNvcmU6OlRpbWVyPExheWVyVHJlZUNvb3Jk
aW5hdG9yPiopOwogCisjaWYgRU5BQkxFKENTU19TSEFERVJTKQorICAgIC8vIFdlYkN1c3RvbUZp
bHRlclByb2dyYW1Qcm94eUNsaWVudAorICAgIHZvaWQgcmVtb3ZlQ3VzdG9tRmlsdGVyUHJvZ3Jh
bVByb3h5KFdlYkN1c3RvbUZpbHRlclByb2dyYW1Qcm94eSopOworCisgICAgdm9pZCBjaGVja0N1
c3RvbUZpbHRlclByb2dyYW1Qcm94aWVzKGNvbnN0IFdlYkNvcmU6OkZpbHRlck9wZXJhdGlvbnMm
KTsKKyAgICB2b2lkIGRpc2Nvbm5lY3RDdXN0b21GaWx0ZXJQcm9ncmFtcygpOworI2VuZGlmCisK
ICAgICBPd25QdHI8V2ViQ29yZTo6R3JhcGhpY3NMYXllcj4gbV9yb290TGF5ZXI7CiAKICAgICAv
LyBUaGUgbGF5ZXIgd2hpY2ggY29udGFpbnMgYWxsIG5vbi1jb21wb3NpdGVkIGNvbnRlbnQuCkBA
IC0xNTAsNiArMTY2LDEwIEBAIHByaXZhdGU6CiAgICAgVmVjdG9yPGludDY0X3Q+IG1fcmVsZWFz
ZWREaXJlY3RseUNvbXBvc2l0ZWRJbWFnZXM7CiAgICAgVmVjdG9yPE93blB0cjxVcGRhdGVBdGxh
cz4gPiBtX3VwZGF0ZUF0bGFzZXM7CiAKKyNpZiBFTkFCTEUoQ1NTX1NIQURFUlMpCisgICAgSGFz
aFNldDxXZWJDdXN0b21GaWx0ZXJQcm9ncmFtUHJveHkqPiBtX2N1c3RvbUZpbHRlclByb2dyYW1z
OworI2VuZGlmCisKICAgICBib29sIG1fbm90aWZ5QWZ0ZXJTY2hlZHVsZWRMYXllckZsdXNoOwog
ICAgIGJvb2wgbV9pc1ZhbGlkOwogICAgIC8vIFdlIGRvbid0IHNlbmQgdGhlIG1lc3NhZ2VzIHJl
bGF0ZWQgdG8gcmVsZWFzaW5nIHJlc291cmNlcyB0byBVSSBQcm9jZXNzIGR1cmluZyBwdXJnaW5n
LCBiZWNhdXNlIFVJIFByb2Nlc3MgYWxyZWFkeSBoYWQgcmVtb3ZlZCBhbGwgcmVzb3VyY2VzLgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>