<?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>127794</bug_id>
          
          <creation_ts>2014-01-28 14:01:44 -0800</creation_ts>
          <short_desc>Add support for sessions to MemoryCache</short_desc>
          <delta_ts>2014-03-05 12:05:29 -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>Page Loading</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>
          <dependson>129646</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Martin Hock">mhock</reporter>
          <assigned_to name="Martin Hock">mhock</assigned_to>
          <cc>ap</cc>
    
    <cc>buildbot</cc>
    
    <cc>commit-queue</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>japhet</cc>
    
    <cc>jeffrey+webkit</cc>
    
    <cc>rniwa</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>973075</commentid>
    <comment_count>0</comment_count>
    <who name="Martin Hock">mhock</who>
    <bug_when>2014-01-28 14:01:44 -0800</bug_when>
    <thetext>Currently, the memory cache ignores sessions.  Different sessions should not see each other&apos;s cache.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>973093</commentid>
    <comment_count>1</comment_count>
      <attachid>222488</attachid>
    <who name="Martin Hock">mhock</who>
    <bug_when>2014-01-28 14:20:10 -0800</bug_when>
    <thetext>Created attachment 222488
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>973106</commentid>
    <comment_count>2</comment_count>
      <attachid>222488</attachid>
    <who name="Vicki Pfau">jeffrey+webkit</who>
    <bug_when>2014-01-28 14:30:23 -0800</bug_when>
    <thetext>Comment on attachment 222488
patch

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

&gt; Source/WebCore/platform/network/cf/ResourceRequest.h:171
&gt; +        const String&amp; setPartitionSession() const { return m_partitionSession = (m_cachePartition.isNull() ? emptyString() : m_cachePartition) + &apos;|&apos; + String::number(m_sessionID); }

Given that this takes no arguments and returns a value, it probably shouldn&apos;t be called set*. I&apos;m a bit confused as to why you have it both do an assignment and return the value in one operation, however.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>973185</commentid>
    <comment_count>3</comment_count>
      <attachid>222488</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2014-01-28 15:55:15 -0800</bug_when>
    <thetext>Comment on attachment 222488
patch

Attachment 222488 did not pass mac-wk2-ews (mac-wk2):
Output: http://webkit-queues.appspot.com/results/6622893324632064

New failing tests:
editing/unsupported-content/list-type-before.html
editing/unsupported-content/table-type-before.html
editing/unsupported-content/list-delete-003.html
editing/unsupported-content/list-delete-001.html
editing/unsupported-content/list-type-after.html
editing/unsupported-content/table-delete-002.html
editing/unsupported-content/table-type-after.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>973186</commentid>
    <comment_count>4</comment_count>
      <attachid>222521</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2014-01-28 15:55:16 -0800</bug_when>
    <thetext>Created attachment 222521
Archive of layout-test-results from webkit-ews-12 for mac-mountainlion-wk2

The attached test failures were seen while running run-webkit-tests on the mac-wk2-ews.
Bot: webkit-ews-12  Port: mac-mountainlion-wk2  Platform: Mac OS X 10.8.5</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>979035</commentid>
    <comment_count>5</comment_count>
      <attachid>223739</attachid>
    <who name="Martin Hock">mhock</who>
    <bug_when>2014-02-10 13:49:04 -0800</bug_when>
    <thetext>Created attachment 223739
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>979134</commentid>
    <comment_count>6</comment_count>
      <attachid>223766</attachid>
    <who name="Martin Hock">mhock</who>
    <bug_when>2014-02-10 16:26:46 -0800</bug_when>
    <thetext>Created attachment 223766
Remove extraneous change to WebCache.mm</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>982049</commentid>
    <comment_count>7</comment_count>
      <attachid>224535</attachid>
    <who name="Martin Hock">mhock</who>
    <bug_when>2014-02-18 12:50:58 -0800</bug_when>
    <thetext>Created attachment 224535
Create another MemoryCache level; make WebCore sessionID-aware</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>982883</commentid>
    <comment_count>8</comment_count>
      <attachid>224770</attachid>
    <who name="Martin Hock">mhock</who>
    <bug_when>2014-02-20 10:31:35 -0800</bug_when>
    <thetext>Created attachment 224770
refactor</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>984929</commentid>
    <comment_count>9</comment_count>
      <attachid>225304</attachid>
    <who name="Martin Hock">mhock</who>
    <bug_when>2014-02-26 15:12:28 -0800</bug_when>
    <thetext>Created attachment 225304
split out SessionID changes (129141)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>985052</commentid>
    <comment_count>10</comment_count>
      <attachid>225338</attachid>
    <who name="Martin Hock">mhock</who>
    <bug_when>2014-02-26 19:38:48 -0800</bug_when>
    <thetext>Created attachment 225338
fix WebCache.mm</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>985428</commentid>
    <comment_count>11</comment_count>
      <attachid>225432</attachid>
    <who name="Martin Hock">mhock</who>
    <bug_when>2014-02-27 17:25:38 -0800</bug_when>
    <thetext>Created attachment 225432
restore MemoryCache::resourceForURL(const URL&amp;)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>985445</commentid>
    <comment_count>12</comment_count>
      <attachid>225435</attachid>
    <who name="Martin Hock">mhock</who>
    <bug_when>2014-02-27 20:53:32 -0800</bug_when>
    <thetext>Created attachment 225435
build fix</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>986492</commentid>
    <comment_count>13</comment_count>
      <attachid>225691</attachid>
    <who name="Martin Hock">mhock</who>
    <bug_when>2014-03-03 14:14:56 -0800</bug_when>
    <thetext>Created attachment 225691
rebase</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>986509</commentid>
    <comment_count>14</comment_count>
      <attachid>225691</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-03-03 15:02:12 -0800</bug_when>
    <thetext>Comment on attachment 225691
rebase

Clearing flags on attachment: 225691

Committed r165013: &lt;http://trac.webkit.org/changeset/165013&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>986510</commentid>
    <comment_count>15</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-03-03 15:02:17 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>986599</commentid>
    <comment_count>16</comment_count>
      <attachid>225691</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2014-03-03 17:08:19 -0800</bug_when>
    <thetext>Comment on attachment 225691
rebase

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

&gt; Source/WebCore/loader/cache/MemoryCache.cpp:867
&gt; +void MemoryCache::removeRequestFromSessionCaches(ScriptExecutionContext*, const ResourceRequest&amp; request)
&gt; +{
&gt; +    for (auto&amp; resources : memoryCache()-&gt;m_sessionResources) {
&gt; +        if (CachedResource* resource = memoryCache()-&gt;resourceForRequestImpl(request, *resources.value))
&gt; +        memoryCache()-&gt;remove(resource);
&gt; +    }

Unlike all other functions around, this new function is not thread safe, which caused assertion failures on bots.

See &lt;http://build.webkit.org/results/Apple%20Mavericks%20Debug%20WK1%20(Tests)/r165015%20(3510)/fast/files/workers/worker-apply-blob-url-to-xhr-crash-log.txt&gt;.

&gt; Source/WebCore/loader/cache/MemoryCache.cpp:897
&gt; +    for (auto &amp;resources : m_sessionResources) {

Misplaced &amp;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>986605</commentid>
    <comment_count>17</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-03-03 17:12:08 -0800</bug_when>
    <thetext>Re-opened since this is blocked by bug 129646</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>986937</commentid>
    <comment_count>18</comment_count>
      <attachid>225806</attachid>
    <who name="Martin Hock">mhock</who>
    <bug_when>2014-03-04 13:11:36 -0800</bug_when>
    <thetext>Created attachment 225806
support multithreading in removeRequestFromSessionCaches</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>986939</commentid>
    <comment_count>19</comment_count>
      <attachid>225807</attachid>
    <who name="Martin Hock">mhock</who>
    <bug_when>2014-03-04 13:15:58 -0800</bug_when>
    <thetext>Created attachment 225807
misplaced &amp;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>986940</commentid>
    <comment_count>20</comment_count>
    <who name="Martin Hock">mhock</who>
    <bug_when>2014-03-04 13:19:18 -0800</bug_when>
    <thetext>(In reply to comment #16)
&gt; (From update of attachment 225691 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=225691&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/loader/cache/MemoryCache.cpp:867
&gt; &gt; +void MemoryCache::removeRequestFromSessionCaches(ScriptExecutionContext*, const ResourceRequest&amp; request)
&gt; &gt; +{
&gt; &gt; +    for (auto&amp; resources : memoryCache()-&gt;m_sessionResources) {
&gt; &gt; +        if (CachedResource* resource = memoryCache()-&gt;resourceForRequestImpl(request, *resources.value))
&gt; &gt; +        memoryCache()-&gt;remove(resource);
&gt; &gt; +    }
&gt; 
&gt; Unlike all other functions around, this new function is not thread safe, which caused assertion failures on bots.
&gt; 
&gt; See &lt;http://build.webkit.org/results/Apple%20Mavericks%20Debug%20WK1%20(Tests)/r165015%20(3510)/fast/files/workers/worker-apply-blob-url-to-xhr-crash-log.txt&gt;.

This should be fixed - I&apos;ve run all the tests and I don&apos;t think any of the minor flakiness I observe is due to my changes.

&gt; &gt; Source/WebCore/loader/cache/MemoryCache.cpp:897
&gt; &gt; +    for (auto &amp;resources : m_sessionResources) {
&gt; 
&gt; Misplaced &amp;

Fixed in second patch, thanks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>987343</commentid>
    <comment_count>21</comment_count>
      <attachid>225807</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-03-05 12:05:22 -0800</bug_when>
    <thetext>Comment on attachment 225807
misplaced &amp;

Clearing flags on attachment: 225807

Committed r165117: &lt;http://trac.webkit.org/changeset/165117&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>987344</commentid>
    <comment_count>22</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-03-05 12:05:29 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>222488</attachid>
            <date>2014-01-28 14:20:10 -0800</date>
            <delta_ts>2014-02-10 13:49:04 -0800</delta_ts>
            <desc>patch</desc>
            <filename>memcachesession.01.diff</filename>
            <type>text/plain</type>
            <size>15024</size>
            <attacher name="Martin Hock">mhock</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCAwYmUyYWU1Li45ODhmYzc1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzQg
QEAKKzIwMTQtMDEtMjggIE1hcnRpbiBIb2NrICA8bWhvY2tAYXBwbGUuY29tPgorCisgICAgICAg
IEFkZCBzdXBwb3J0IGZvciBzZXNzaW9ucyB0byBjYWNoZSBwYXJ0aXRpb25pbmcuCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjc3OTQKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHBsYXRmb3JtL25ldHdv
cmsvTmV0d29ya2luZ0NvbnRleHQuaDogQWRkIHNlc3Npb25JRCBtZW1iZXIuCisgICAgICAgIChX
ZWJDb3JlOjpOZXR3b3JraW5nQ29udGV4dDo6c2Vzc2lvbklEKToKKyAgICAgICAgKiBwbGF0Zm9y
bS9uZXR3b3JrL1Jlc291cmNlSGFuZGxlSW50ZXJuYWwuaDogQWRkIHNlc3Npb25JRCBtZW1iZXIu
CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9jZi9SZXNvdXJjZUhhbmRsZUNGTmV0LmNwcDog
U2V0IHNlc3Npb25JRCBmcm9tIE5ldHdvcmtpbmdDb250ZXh0IGFuZCBwYXNzIHRvIHNldFN0b3Jh
Z2VTZXNzaW9uLgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGU6OnN0YXJ0KToKKyAg
ICAgICAgKFdlYkNvcmU6OlJlc291cmNlSGFuZGxlOjp3aWxsU2VuZFJlcXVlc3QpOgorICAgICAg
ICAoV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGU6OnBsYXRmb3JtTG9hZFJlc291cmNlU3luY2hyb25v
dXNseSk6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZTo6Y29udGludWVXaWxsU2Vu
ZFJlcXVlc3QpOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvY2YvUmVzb3VyY2VSZXF1ZXN0
Lmg6IFBhc3Mgc2Vzc2lvbklEIGluIGNvbnN0cnVjdG9ycy4KKyAgICAgICAgKFdlYkNvcmU6OlJl
c291cmNlUmVxdWVzdDo6UmVzb3VyY2VSZXF1ZXN0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlc291
cmNlUmVxdWVzdDo6Y2FjaGVQYXJ0aXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VS
ZXF1ZXN0OjpzZXRDYWNoZVBhcnRpdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZVJl
cXVlc3Q6OnNlc3Npb25JRCk6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3Q6OnNl
dFBhcnRpdGlvblNlc3Npb24pOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvY2YvUmVzb3Vy
Y2VSZXF1ZXN0Q0ZOZXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0Ojpz
ZXRTdG9yYWdlU2Vzc2lvbik6IFNldCBzZXNzaW9uSUQuCisgICAgICAgICogcGxhdGZvcm0vbmV0
d29yay9tYWMvUmVzb3VyY2VIYW5kbGVNYWMubW06IFNldCBzZXNzaW9uSUQgZnJvbSBOZXR3b3Jr
aW5nQ29udGV4dCBhbmQgcGFzcyB0byBzZXRTdG9yYWdlU2Vzc2lvbi4KKyAgICAgICAgKFdlYkNv
cmU6OlJlc291cmNlSGFuZGxlOjpzdGFydCk6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUhh
bmRsZTo6cGxhdGZvcm1Mb2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5KToKKyAgICAgICAgKFdlYkNv
cmU6OlJlc291cmNlSGFuZGxlOjp3aWxsU2VuZFJlcXVlc3QpOgorICAgICAgICAoV2ViQ29yZTo6
UmVzb3VyY2VIYW5kbGU6OmNvbnRpbnVlV2lsbFNlbmRSZXF1ZXN0KToKKyAgICAgICAgKiBwbGF0
Zm9ybS9uZXR3b3JrL21hYy9SZXNvdXJjZVJlcXVlc3RNYWMubW06CisgICAgICAgIChXZWJDb3Jl
OjpSZXNvdXJjZVJlcXVlc3Q6OnNldFN0b3JhZ2VTZXNzaW9uKTogU2V0IHNlc3Npb25JRC4KKwog
MjAxNC0wMS0yOCAgQW50dGkgS29pdmlzdG8gIDxhbnR0aUBhcHBsZS5jb20+CiAKICAgICAgICAg
UkVHUkVTU0lPTihyMTYyODM3KTogNSUgcmVncmVzc2lvbiBvbiBodG1sNS1mdWxsLXJlbmRlciBh
bmQgMyUgcmVncmVzc2lvbiBpbiBEb1lvdUV2ZW5CZW5jaApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbmV0d29yay9OZXR3b3JraW5nQ29udGV4dC5oIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbmV0d29yay9OZXR3b3JraW5nQ29udGV4dC5oCmluZGV4IDMwODBhN2UuLjdl
NDZhN2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvTmV0d29y
a2luZ0NvbnRleHQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL05ldHdv
cmtpbmdDb250ZXh0LmgKQEAgLTU5LDYgKzU5LDcgQEAgcHVibGljOgogCiAjaWYgUExBVEZPUk0o
TUFDKSB8fCBVU0UoQ0ZORVRXT1JLKSB8fCBVU0UoU09VUCkKICAgICB2aXJ0dWFsIE5ldHdvcmtT
dG9yYWdlU2Vzc2lvbiYgc3RvcmFnZVNlc3Npb24oKSBjb25zdCA9IDA7CisgICAgdmlydHVhbCB1
aW50NjRfdCBzZXNzaW9uSUQoKSBjb25zdCB7IHJldHVybiAwOyB9CiAjZW5kaWYKIAogI2lmIFBM
QVRGT1JNKFdJTikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsv
UmVzb3VyY2VIYW5kbGVJbnRlcm5hbC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29y
ay9SZXNvdXJjZUhhbmRsZUludGVybmFsLmgKaW5kZXggN2RjNDNlMi4uMDVlYWNjNSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZUludGVy
bmFsLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRs
ZUludGVybmFsLmgKQEAgLTE2MCw2ICsxNjAsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAjZW5k
aWYKICNpZiBQTEFURk9STShNQUMpIHx8IFVTRShDRk5FVFdPUkspCiAgICAgICAgIFJldGFpblB0
cjxDRlVSTFN0b3JhZ2VTZXNzaW9uUmVmPiBtX3N0b3JhZ2VTZXNzaW9uOworICAgICAgICB1aW50
NjRfdCBtX3Nlc3Npb25JRDsKICNlbmRpZgogI2lmIFVTRShXSU5JTkVUKQogICAgICAgICBUaW1l
cjxSZXNvdXJjZUhhbmRsZT4gbV9maWxlTG9hZFRpbWVyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9SZXNvdXJjZUhhbmRsZUNGTmV0LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvUmVzb3VyY2VIYW5kbGVDRk5ldC5jcHAKaW5k
ZXggMzI4NGYyMS4uMjkwZDUwZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bmV0d29yay9jZi9SZXNvdXJjZUhhbmRsZUNGTmV0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9uZXR3b3JrL2NmL1Jlc291cmNlSGFuZGxlQ0ZOZXQuY3BwCkBAIC0yNDMsNiArMjQz
LDcgQEAgYm9vbCBSZXNvdXJjZUhhbmRsZTo6c3RhcnQoKQogICAgICAgICByZXR1cm4gZmFsc2U7
CiAKICAgICBkLT5tX3N0b3JhZ2VTZXNzaW9uID0gZC0+bV9jb250ZXh0LT5zdG9yYWdlU2Vzc2lv
bigpLnBsYXRmb3JtU2Vzc2lvbigpOworICAgIGQtPm1fc2Vzc2lvbklEID0gZC0+bV9jb250ZXh0
LT5zZXNzaW9uSUQoKTsKIAogICAgIGJvb2wgc2hvdWxkVXNlQ3JlZGVudGlhbFN0b3JhZ2UgPSAh
Y2xpZW50KCkgfHwgY2xpZW50KCktPnNob3VsZFVzZUNyZWRlbnRpYWxTdG9yYWdlKHRoaXMpOwog
CkBAIC0yOTgsNyArMjk5LDcgQEAgdm9pZCBSZXNvdXJjZUhhbmRsZTo6d2lsbFNlbmRSZXF1ZXN0
KFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgY29uc3QgUmVzb3VyY2VSZXMKIAogICAgICAgICAv
LyBDbGllbnQgY2FsbCBtYXkgbm90IHByZXNlcnZlIHRoZSBzZXNzaW9uLCBlc3BlY2lhbGx5IGlm
IHRoZSByZXF1ZXN0IGlzIHNlbnQgb3ZlciBJUEMuCiAgICAgICAgIGlmICghcmVxdWVzdC5pc051
bGwoKSkgewotICAgICAgICAgICAgcmVxdWVzdC5zZXRTdG9yYWdlU2Vzc2lvbihkLT5tX3N0b3Jh
Z2VTZXNzaW9uLmdldCgpKTsKKyAgICAgICAgICAgIHJlcXVlc3Quc2V0U3RvcmFnZVNlc3Npb24o
ZC0+bV9zdG9yYWdlU2Vzc2lvbi5nZXQoKSwgZC0+bV9zZXNzaW9uSUQpOwogCiAgICAgICAgICAg
ICBkLT5tX2N1cnJlbnRSZXF1ZXN0ID0gcmVxdWVzdDsKICAgICAgICAgfQpAQCAtNDg2LDYgKzQ4
Nyw3IEBAIHZvaWQgUmVzb3VyY2VIYW5kbGU6OnBsYXRmb3JtTG9hZFJlc291cmNlU3luY2hyb25v
dXNseShOZXR3b3JraW5nQ29udGV4dCogY29udGV4CiAgICAgUmVmUHRyPFJlc291cmNlSGFuZGxl
PiBoYW5kbGUgPSBhZG9wdFJlZihuZXcgUmVzb3VyY2VIYW5kbGUoY29udGV4dCwgcmVxdWVzdCwg
Y2xpZW50LmdldCgpLCBmYWxzZSAvKmRlZmVyc0xvYWRpbmcqLywgdHJ1ZSAvKnNob3VsZENvbnRl
bnRTbmlmZiovKSk7CiAKICAgICBoYW5kbGUtPmQtPm1fc3RvcmFnZVNlc3Npb24gPSBjb250ZXh0
LT5zdG9yYWdlU2Vzc2lvbigpLnBsYXRmb3JtU2Vzc2lvbigpOworICAgIGhhbmRsZS0+ZC0+bV9z
ZXNzaW9uSUQgPSBjb250ZXh0LT5zZXNzaW9uSUQoKTsKIAogICAgIGlmIChoYW5kbGUtPmQtPm1f
c2NoZWR1bGVkRmFpbHVyZVR5cGUgIT0gTm9GYWlsdXJlKSB7CiAgICAgICAgIGVycm9yID0gY29u
dGV4dC0+YmxvY2tlZEVycm9yKHJlcXVlc3QpOwpAQCAtNTc5LDcgKzU4MSw3IEBAIHZvaWQgUmVz
b3VyY2VIYW5kbGU6OmNvbnRpbnVlV2lsbFNlbmRSZXF1ZXN0KGNvbnN0IFJlc291cmNlUmVxdWVz
dCYgcmVxdWVzdCkKIHsKICAgICBSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdFJlc3VsdCA9IHJlcXVl
c3Q7CiAgICAgaWYgKCFyZXF1ZXN0UmVzdWx0LmlzTnVsbCgpKQotICAgICAgICByZXF1ZXN0UmVz
dWx0LnNldFN0b3JhZ2VTZXNzaW9uKGQtPm1fc3RvcmFnZVNlc3Npb24uZ2V0KCkpOworICAgICAg
ICByZXF1ZXN0UmVzdWx0LnNldFN0b3JhZ2VTZXNzaW9uKGQtPm1fc3RvcmFnZVNlc3Npb24uZ2V0
KCksIGQtPm1fc2Vzc2lvbklEKTsKICAgICBkLT5tX2Nvbm5lY3Rpb25EZWxlZ2F0ZS0+Y29udGlu
dWVXaWxsU2VuZFJlcXVlc3QocmVxdWVzdFJlc3VsdC5jZlVSTFJlcXVlc3QoVXBkYXRlSFRUUEJv
ZHkpKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9j
Zi9SZXNvdXJjZVJlcXVlc3QuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2Yv
UmVzb3VyY2VSZXF1ZXN0LmgKaW5kZXggMmEyNmQ1YS4uZDM2ODUyOSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9SZXNvdXJjZVJlcXVlc3QuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL1Jlc291cmNlUmVxdWVzdC5oCkBAIC00
Niw2ICs0Niw5IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICNpZiBQTEFURk9STShJT1MpCiAgICAg
ICAgICAgICAsIG1fbWFpblJlc291cmNlUmVxdWVzdChmYWxzZSkKICNlbmRpZgorI2lmIFBMQVRG
T1JNKE1BQykgfHwgVVNFKENGTkVUV09SSykKKyAgICAgICAgICAgICwgbV9zZXNzaW9uSUQoMCkK
KyNlbmRpZgogICAgICAgICB7CiAgICAgICAgIH0KIApAQCAtNTQsNiArNTcsOSBAQCBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAjaWYgUExBVEZPUk0oSU9TKQogICAgICAgICAgICAgLCBtX21haW5SZXNv
dXJjZVJlcXVlc3QoZmFsc2UpCiAjZW5kaWYKKyNpZiBQTEFURk9STShNQUMpIHx8IFVTRShDRk5F
VFdPUkspCisgICAgICAgICAgICAsIG1fc2Vzc2lvbklEKDApCisjZW5kaWYKICAgICAgICAgewog
ICAgICAgICB9CiAKQEAgLTYyLDYgKzY4LDkgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogI2lmIFBM
QVRGT1JNKElPUykKICAgICAgICAgICAgICwgbV9tYWluUmVzb3VyY2VSZXF1ZXN0KGZhbHNlKQog
I2VuZGlmCisjaWYgUExBVEZPUk0oTUFDKSB8fCBVU0UoQ0ZORVRXT1JLKQorICAgICAgICAgICAg
LCBtX3Nlc3Npb25JRCgwKQorI2VuZGlmCiAgICAgICAgIHsKICAgICAgICAgICAgIHNldEhUVFBS
ZWZlcnJlcihyZWZlcnJlcik7CiAgICAgICAgIH0KQEAgLTcxLDYgKzgwLDkgQEAgbmFtZXNwYWNl
IFdlYkNvcmUgewogI2lmIFBMQVRGT1JNKElPUykKICAgICAgICAgICAgICwgbV9tYWluUmVzb3Vy
Y2VSZXF1ZXN0KGZhbHNlKQogI2VuZGlmCisjaWYgUExBVEZPUk0oTUFDKSB8fCBVU0UoQ0ZORVRX
T1JLKQorICAgICAgICAgICAgLCBtX3Nlc3Npb25JRCgwKQorI2VuZGlmCiAgICAgICAgIHsKICAg
ICAgICAgfQogICAgICAgICAKQEAgLTg2LDYgKzk4LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewog
ICAgICAgICAgICAgLCBtX21haW5SZXNvdXJjZVJlcXVlc3QoZmFsc2UpCiAjZW5kaWYKICAgICAg
ICAgICAgICwgbV9jZlJlcXVlc3QoY2ZSZXF1ZXN0KQorICAgICAgICAgICAgLCBtX3Nlc3Npb25J
RCgwKQogICAgICAgICB7CiAjaWYgUExBVEZPUk0oTUFDKQogICAgICAgICAgICAgdXBkYXRlTlNV
UkxSZXF1ZXN0KCk7CkBAIC0xMTEsMTMgKzEyNCwxNCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
ICNpZiBFTkFCTEUoQ0FDSEVfUEFSVElUSU9OSU5HKQogICAgICAgICBzdGF0aWMgU3RyaW5nIHBh
cnRpdGlvbk5hbWUoY29uc3QgU3RyaW5nJiBkb21haW4pOwotICAgICAgICBjb25zdCBTdHJpbmcm
IGNhY2hlUGFydGl0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9jYWNoZVBhcnRpdGlvbi5pc051bGwo
KSA/IGVtcHR5U3RyaW5nKCkgOiBtX2NhY2hlUGFydGl0aW9uOyB9Ci0gICAgICAgIHZvaWQgc2V0
Q2FjaGVQYXJ0aXRpb24oY29uc3QgU3RyaW5nJiBjYWNoZVBhcnRpdGlvbikgeyBtX2NhY2hlUGFy
dGl0aW9uID0gcGFydGl0aW9uTmFtZShjYWNoZVBhcnRpdGlvbik7IH0KKyAgICAgICAgY29uc3Qg
U3RyaW5nJiBjYWNoZVBhcnRpdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fcGFydGl0aW9uU2Vzc2lv
bi5pc051bGwoKSA/IHNldFBhcnRpdGlvblNlc3Npb24oKSA6IG1fcGFydGl0aW9uU2Vzc2lvbjsg
fQorICAgICAgICB2b2lkIHNldENhY2hlUGFydGl0aW9uKGNvbnN0IFN0cmluZyYgY2FjaGVQYXJ0
aXRpb24pIHsgbV9jYWNoZVBhcnRpdGlvbiA9IHBhcnRpdGlvbk5hbWUoY2FjaGVQYXJ0aXRpb24p
OyBzZXRQYXJ0aXRpb25TZXNzaW9uKCk7IH0KICNlbmRpZgogCiAjaWYgUExBVEZPUk0oTUFDKSB8
fCBVU0UoQ0ZORVRXT1JLKQogICAgICAgICBDRlVSTFJlcXVlc3RSZWYgY2ZVUkxSZXF1ZXN0KEhU
VFBCb2R5VXBkYXRlUG9saWN5KSBjb25zdDsKLSAgICAgICAgdm9pZCBzZXRTdG9yYWdlU2Vzc2lv
bihDRlVSTFN0b3JhZ2VTZXNzaW9uUmVmKTsKKyAgICAgICAgdWludDY0X3Qgc2Vzc2lvbklEKCkg
Y29uc3QgeyByZXR1cm4gbV9zZXNzaW9uSUQ7IH0KKyAgICAgICAgdm9pZCBzZXRTdG9yYWdlU2Vz
c2lvbihDRlVSTFN0b3JhZ2VTZXNzaW9uUmVmLCB1aW50NjRfdCBzZXNzaW9uSUQpOwogI2VuZGlm
CiAKICAgICAgICAgc3RhdGljIGJvb2wgaHR0cFBpcGVsaW5pbmdFbmFibGVkKCk7CkBAIC0xNTIs
OCArMTY2LDEzIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICNpZiBQTEFURk9STShNQUMpCiAgICAg
ICAgIFJldGFpblB0cjxOU1VSTFJlcXVlc3Q+IG1fbnNSZXF1ZXN0OwogI2VuZGlmCisjaWYgUExB
VEZPUk0oTUFDKSB8fCBVU0UoQ0ZORVRXT1JLKQorICAgICAgICB1aW50NjRfdCBtX3Nlc3Npb25J
RDsKKyAgICAgICAgY29uc3QgU3RyaW5nJiBzZXRQYXJ0aXRpb25TZXNzaW9uKCkgY29uc3QgeyBy
ZXR1cm4gbV9wYXJ0aXRpb25TZXNzaW9uID0gKG1fY2FjaGVQYXJ0aXRpb24uaXNOdWxsKCkgPyBl
bXB0eVN0cmluZygpIDogbV9jYWNoZVBhcnRpdGlvbikgKyAnfCcgKyBTdHJpbmc6Om51bWJlciht
X3Nlc3Npb25JRCk7IH0KKyNlbmRpZgogI2lmIEVOQUJMRShDQUNIRV9QQVJUSVRJT05JTkcpCiAg
ICAgICAgIFN0cmluZyBtX2NhY2hlUGFydGl0aW9uOworICAgICAgICBtdXRhYmxlIFN0cmluZyBt
X3BhcnRpdGlvblNlc3Npb247CiAjZW5kaWYKIAogICAgICAgICBzdGF0aWMgYm9vbCBzX2h0dHBQ
aXBlbGluaW5nRW5hYmxlZDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25l
dHdvcmsvY2YvUmVzb3VyY2VSZXF1ZXN0Q0ZOZXQuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbmV0d29yay9jZi9SZXNvdXJjZVJlcXVlc3RDRk5ldC5jcHAKaW5kZXggYTgxYTk1Zi4uODY2
NzlkZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9SZXNv
dXJjZVJlcXVlc3RDRk5ldC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29y
ay9jZi9SZXNvdXJjZVJlcXVlc3RDRk5ldC5jcHAKQEAgLTMyNSwxMyArMzI1LDE0IEBAIHZvaWQg
UmVzb3VyY2VSZXF1ZXN0Ojpkb1VwZGF0ZVJlc291cmNlSFRUUEJvZHkoKQogfQogCiAKLXZvaWQg
UmVzb3VyY2VSZXF1ZXN0OjpzZXRTdG9yYWdlU2Vzc2lvbihDRlVSTFN0b3JhZ2VTZXNzaW9uUmVm
IHN0b3JhZ2VTZXNzaW9uKQordm9pZCBSZXNvdXJjZVJlcXVlc3Q6OnNldFN0b3JhZ2VTZXNzaW9u
KENGVVJMU3RvcmFnZVNlc3Npb25SZWYgc3RvcmFnZVNlc3Npb24sIHVpbnQ2NF90IHNlc3Npb25J
RCkKIHsKICAgICB1cGRhdGVQbGF0Zm9ybVJlcXVlc3QoKTsKIAogICAgIENGTXV0YWJsZVVSTFJl
cXVlc3RSZWYgY2ZSZXF1ZXN0ID0gQ0ZVUkxSZXF1ZXN0Q3JlYXRlTXV0YWJsZUNvcHkoMCwgbV9j
ZlJlcXVlc3QuZ2V0KCkpOwogICAgIHdrU2V0UmVxdWVzdFN0b3JhZ2VTZXNzaW9uKHN0b3JhZ2VT
ZXNzaW9uLCBjZlJlcXVlc3QpOwogICAgIG1fY2ZSZXF1ZXN0ID0gYWRvcHRDRihjZlJlcXVlc3Qp
OworICAgIG1fc2Vzc2lvbklEID0gc2Vzc2lvbklEOwogI2lmIFBMQVRGT1JNKE1BQykKICAgICB1
cGRhdGVOU1VSTFJlcXVlc3QoKTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbmV0d29yay9tYWMvUmVzb3VyY2VIYW5kbGVNYWMubW0gYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9uZXR3b3JrL21hYy9SZXNvdXJjZUhhbmRsZU1hYy5tbQppbmRleCA2ZGEwZjgz
Li41Mjc0ZmE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL21h
Yy9SZXNvdXJjZUhhbmRsZU1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3
b3JrL21hYy9SZXNvdXJjZUhhbmRsZU1hYy5tbQpAQCAtMjE1LDYgKzIxNSw3IEBAIGJvb2wgUmVz
b3VyY2VIYW5kbGU6OnN0YXJ0KCkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgZC0+bV9z
dG9yYWdlU2Vzc2lvbiA9IGQtPm1fY29udGV4dC0+c3RvcmFnZVNlc3Npb24oKS5wbGF0Zm9ybVNl
c3Npb24oKTsKKyAgICBkLT5tX3Nlc3Npb25JRCA9IGQtPm1fY29udGV4dC0+c2Vzc2lvbklEKCk7
CiAKICAgICAvLyBGSVhNRTogRG8gbm90IHVzZSB0aGUgc3luYyB2ZXJzaW9uIG9mIHNob3VsZFVz
ZUNyZWRlbnRpYWxTdG9yYWdlIHdoZW4gdGhlIGNsaWVudCByZXR1cm5zIHRydWUgZnJvbSB1c2Vz
QXN5bmNDYWxsYmFja3MuCiAgICAgYm9vbCBzaG91bGRVc2VDcmVkZW50aWFsU3RvcmFnZSA9ICFj
bGllbnQoKSB8fCBjbGllbnQoKS0+c2hvdWxkVXNlQ3JlZGVudGlhbFN0b3JhZ2UodGhpcyk7CkBA
IC0zNzAsNiArMzcxLDcgQEAgdm9pZCBSZXNvdXJjZUhhbmRsZTo6cGxhdGZvcm1Mb2FkUmVzb3Vy
Y2VTeW5jaHJvbm91c2x5KE5ldHdvcmtpbmdDb250ZXh0KiBjb250ZXgKICAgICBSZWZQdHI8UmVz
b3VyY2VIYW5kbGU+IGhhbmRsZSA9IGFkb3B0UmVmKG5ldyBSZXNvdXJjZUhhbmRsZShjb250ZXh0
LCByZXF1ZXN0LCBjbGllbnQuZ2V0KCksIGZhbHNlIC8qZGVmZXJzTG9hZGluZyovLCB0cnVlIC8q
c2hvdWxkQ29udGVudFNuaWZmKi8pKTsKIAogICAgIGhhbmRsZS0+ZC0+bV9zdG9yYWdlU2Vzc2lv
biA9IGNvbnRleHQtPnN0b3JhZ2VTZXNzaW9uKCkucGxhdGZvcm1TZXNzaW9uKCk7CisgICAgaGFu
ZGxlLT5kLT5tX3Nlc3Npb25JRCA9IGNvbnRleHQtPnNlc3Npb25JRCgpOwogCiAgICAgaWYgKGNv
bnRleHQgJiYgaGFuZGxlLT5kLT5tX3NjaGVkdWxlZEZhaWx1cmVUeXBlICE9IE5vRmFpbHVyZSkg
ewogICAgICAgICBlcnJvciA9IGNvbnRleHQtPmJsb2NrZWRFcnJvcihyZXF1ZXN0KTsKQEAgLTQ4
Miw3ICs0ODQsNyBAQCB2b2lkIFJlc291cmNlSGFuZGxlOjp3aWxsU2VuZFJlcXVlc3QoUmVzb3Vy
Y2VSZXF1ZXN0JiByZXF1ZXN0LCBjb25zdCBSZXNvdXJjZVJlcwogCiAgICAgICAgIC8vIENsaWVu
dCBjYWxsIG1heSBub3QgcHJlc2VydmUgdGhlIHNlc3Npb24sIGVzcGVjaWFsbHkgaWYgdGhlIHJl
cXVlc3QgaXMgc2VudCBvdmVyIElQQy4KICAgICAgICAgaWYgKCFyZXF1ZXN0LmlzTnVsbCgpKQot
ICAgICAgICAgICAgcmVxdWVzdC5zZXRTdG9yYWdlU2Vzc2lvbihkLT5tX3N0b3JhZ2VTZXNzaW9u
LmdldCgpKTsKKyAgICAgICAgICAgIHJlcXVlc3Quc2V0U3RvcmFnZVNlc3Npb24oZC0+bV9zdG9y
YWdlU2Vzc2lvbi5nZXQoKSwgZC0+bV9zZXNzaW9uSUQpOwogICAgIH0KIH0KIApAQCAtNDk0LDcg
KzQ5Niw3IEBAIHZvaWQgUmVzb3VyY2VIYW5kbGU6OmNvbnRpbnVlV2lsbFNlbmRSZXF1ZXN0KGNv
bnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCkKICAgICAvLyBDbGllbnQgY2FsbCBtYXkgbm90
IHByZXNlcnZlIHRoZSBzZXNzaW9uLCBlc3BlY2lhbGx5IGlmIHRoZSByZXF1ZXN0IGlzIHNlbnQg
b3ZlciBJUEMuCiAgICAgUmVzb3VyY2VSZXF1ZXN0IG5ld1JlcXVlc3QgPSByZXF1ZXN0OwogICAg
IGlmICghbmV3UmVxdWVzdC5pc051bGwoKSkKLSAgICAgICAgbmV3UmVxdWVzdC5zZXRTdG9yYWdl
U2Vzc2lvbihkLT5tX3N0b3JhZ2VTZXNzaW9uLmdldCgpKTsKKyAgICAgICAgbmV3UmVxdWVzdC5z
ZXRTdG9yYWdlU2Vzc2lvbihkLT5tX3N0b3JhZ2VTZXNzaW9uLmdldCgpLCBkLT5tX3Nlc3Npb25J
RCk7CiAgICAgWyhpZClkZWxlZ2F0ZSgpIGNvbnRpbnVlV2lsbFNlbmRSZXF1ZXN0Om5ld1JlcXVl
c3QubnNVUkxSZXF1ZXN0KFVwZGF0ZUhUVFBCb2R5KV07CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvbWFjL1Jlc291cmNlUmVxdWVzdE1hYy5tbSBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvbWFjL1Jlc291cmNlUmVxdWVzdE1hYy5tbQpp
bmRleCA3NWQ4OTRmLi4zMWIzMDdiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9uZXR3b3JrL21hYy9SZXNvdXJjZVJlcXVlc3RNYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbmV0d29yay9tYWMvUmVzb3VyY2VSZXF1ZXN0TWFjLm1tCkBAIC0yNTksMTAgKzI1
OSwxMSBAQCB2b2lkIFJlc291cmNlUmVxdWVzdDo6YXBwbHlXZWJBcmNoaXZlSGFja0Zvck1haWwo
KQogI2VuZGlmCiB9CiAKLXZvaWQgUmVzb3VyY2VSZXF1ZXN0OjpzZXRTdG9yYWdlU2Vzc2lvbihD
RlVSTFN0b3JhZ2VTZXNzaW9uUmVmIHN0b3JhZ2VTZXNzaW9uKQordm9pZCBSZXNvdXJjZVJlcXVl
c3Q6OnNldFN0b3JhZ2VTZXNzaW9uKENGVVJMU3RvcmFnZVNlc3Npb25SZWYgc3RvcmFnZVNlc3Np
b24sIHVpbnQ2NF90IHNlc3Npb25JRCkKIHsKICAgICB1cGRhdGVQbGF0Zm9ybVJlcXVlc3QoKTsK
ICAgICBtX25zUmVxdWVzdCA9IGFkb3B0TlMod2tDb3B5UmVxdWVzdFdpdGhTdG9yYWdlU2Vzc2lv
bihzdG9yYWdlU2Vzc2lvbiwgbV9uc1JlcXVlc3QuZ2V0KCkpKTsKKyAgICBtX3Nlc3Npb25JRCA9
IHNlc3Npb25JRDsKIH0KICAgICAKICNlbmRpZiAvLyBVU0UoQ0ZORVRXT1JLKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmlu
ZGV4IDRlNmQzMDkuLjA3ODQxYWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxv
ZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAxNC0w
MS0yOCAgTWFydGluIEhvY2sgIDxtaG9ja0BhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIHN1cHBv
cnQgZm9yIHNlc3Npb25zIHRvIGNhY2hlIHBhcnRpdGlvbmluZy4KKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyNzc5NAorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvUmVtb3RlTmV0
d29ya2luZ0NvbnRleHQuaDogQWRkIHNlc3Npb25JRCBhY2Nlc3Nvci4KKyAgICAgICAgKiBXZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L21hYy9XZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0Lmg6Cisg
ICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9tYWMvV2ViRnJhbWVOZXR3b3JraW5n
Q29udGV4dC5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dDo6
c3RvcmFnZVNlc3Npb24pOiBVc2Ugc2Vzc2lvbklEIHRvIGFjY2VzcyBzdG9yYWdlIHNlc3Npb24u
CisgICAgICAgIChXZWJLaXQ6OldlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQ6OnNlc3Npb25JRCk6
IEFkZCBzZXNzaW9uSUQgYWNjZXNzb3IuCisKIDIwMTQtMDEtMjggIEFuZGVycyBDYXJsc3NvbiAg
PGFuZGVyc2NhQGFwcGxlLmNvbT4KIAogICAgICAgICBBZGQgYSBOYXZpZ2F0aW9uQWN0aW9uRGF0
YSBvYmplY3QgZm9yIGVhc3kgc3RvcmFnZSBvZiBuYXZpZ2F0aW9uIGFjdGlvbiBkYXRhCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9SZW1vdGVOZXR3b3JraW5nQ29u
dGV4dC5oIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvUmVtb3RlTmV0d29ya2luZ0Nv
bnRleHQuaAppbmRleCBlM2VkMTJiLi5jZWU3ZTJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9OZXR3b3JrUHJvY2Vzcy9SZW1vdGVOZXR3b3JraW5nQ29udGV4dC5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL05ldHdvcmtQcm9jZXNzL1JlbW90ZU5ldHdvcmtpbmdDb250ZXh0LmgKQEAgLTQzLDYg
KzQzLDcgQEAgcHVibGljOgogICAgIHN0YXRpYyB2b2lkIGVuc3VyZVByaXZhdGVCcm93c2luZ1Nl
c3Npb24odWludDY0X3Qgc2Vzc2lvbklEKTsKIAogICAgIHZpcnR1YWwgYm9vbCBzaG91bGRDbGVh
clJlZmVycmVyT25IVFRQU1RvSFRUUFJlZGlyZWN0KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4g
bV9zaG91bGRDbGVhclJlZmVycmVyT25IVFRQU1RvSFRUUFJlZGlyZWN0OyB9CisgICAgdmlydHVh
bCB1aW50NjRfdCBzZXNzaW9uSUQoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBtX3Nlc3Npb25J
RDsgfQogCiBwcml2YXRlOgogICAgIFJlbW90ZU5ldHdvcmtpbmdDb250ZXh0KHVpbnQ2NF90IHNl
c3Npb25JRCwgYm9vbCBzaG91bGRDbGVhclJlZmVycmVyT25IVFRQU1RvSFRUUFJlZGlyZWN0KQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9tYWMv
V2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJDb3JlU3VwcG9ydC9tYWMvV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5oCmluZGV4IDg2Mjlm
YTguLjdiNmUxMWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvbWFjL1dlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L21hYy9XZWJGcmFtZU5ldHdvcmtpbmdDb250
ZXh0LmgKQEAgLTU4LDYgKzU4LDcgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIFJldGFpblB0cjxD
RkRhdGFSZWY+IHNvdXJjZUFwcGxpY2F0aW9uQXVkaXREYXRhKCkgY29uc3Qgb3ZlcnJpZGU7CiAg
ICAgdmlydHVhbCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yIGJsb2NrZWRFcnJvcihjb25zdCBXZWJD
b3JlOjpSZXNvdXJjZVJlcXVlc3QmKSBjb25zdCBvdmVycmlkZTsKICAgICB2aXJ0dWFsIFdlYkNv
cmU6Ok5ldHdvcmtTdG9yYWdlU2Vzc2lvbiYgc3RvcmFnZVNlc3Npb24oKSBjb25zdCBvdmVycmlk
ZTsKKyAgICB2aXJ0dWFsIHVpbnQ2NF90IHNlc3Npb25JRCgpIGNvbnN0IG92ZXJyaWRlOwogfTsK
IAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9tYWMvV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5tbSBiL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViQ29yZVN1cHBvcnQvbWFjL1dlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQubW0KaW5k
ZXggNmI1OWFjNC4uOWU4MmVhMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJDb3JlU3VwcG9ydC9tYWMvV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5tbQorKysgYi9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L21hYy9XZWJGcmFtZU5ldHdv
cmtpbmdDb250ZXh0Lm1tCkBAIC05OSwxMCArOTksMTQgQEAgUmVzb3VyY2VFcnJvciBXZWJGcmFt
ZU5ldHdvcmtpbmdDb250ZXh0OjpibG9ja2VkRXJyb3IoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiBy
ZXEKIE5ldHdvcmtTdG9yYWdlU2Vzc2lvbiYgV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dDo6c3Rv
cmFnZVNlc3Npb24oKSBjb25zdAogewogICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CisgICAg
cmV0dXJuICpTZXNzaW9uVHJhY2tlcjo6c2Vzc2lvbihzZXNzaW9uSUQoKSk7Cit9CiAKK3VpbnQ2
NF90IFdlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQ6OnNlc3Npb25JRCgpIGNvbnN0Cit7CiAgICAg
aWYgKGZyYW1lKCkpCi0gICAgICAgIHJldHVybiAqU2Vzc2lvblRyYWNrZXI6OnNlc3Npb24od2Vi
RnJhbWVMb2FkZXJDbGllbnQoKS0+d2ViRnJhbWUoKS0+cGFnZSgpLT5zZXNzaW9uSUQoKSk7Ci0g
ICAgcmV0dXJuIE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6ZGVmYXVsdFN0b3JhZ2VTZXNzaW9uKCk7
CisgICAgICAgIHJldHVybiB3ZWJGcmFtZUxvYWRlckNsaWVudCgpLT53ZWJGcmFtZSgpLT5wYWdl
KCktPnNlc3Npb25JRCgpOworICAgIHJldHVybiBTZXNzaW9uVHJhY2tlcjo6ZGVmYXVsdFNlc3Np
b25JRDsKIH0KIAogV2ViRnJhbWVMb2FkZXJDbGllbnQqIFdlYkZyYW1lTmV0d29ya2luZ0NvbnRl
eHQ6OndlYkZyYW1lTG9hZGVyQ2xpZW50KCkgY29uc3QK
</data>
<flag name="commit-queue"
          id="246517"
          type_id="3"
          status="-"
          setter="buildbot"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="0"
              isprivate="0"
          >
            <attachid>222521</attachid>
            <date>2014-01-28 15:55:16 -0800</date>
            <delta_ts>2014-02-10 13:49:04 -0800</delta_ts>
            <desc>Archive of layout-test-results from webkit-ews-12 for mac-mountainlion-wk2</desc>
            <filename>layout-test-results.zip</filename>
            <type>application/zip</type>
            <size>355677</size>
            <attacher name="Build Bot">buildbot</attacher>
            
              <data encoding="base64">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
hP8ZlZTx690AyDc2eevdkTx2Rgqdcd5OZ9BNW6UamuOOF9TIpfLuIdWVuCe84LI4hDAgCqD+ywI1
yfbXLR1XElVabs+QSJeYODW3QsyD44+6ALpHTQS+AJmVoI8QhVnEx03lWISp1+unziLfENKJCkSa
hcpk+YOgzgfxDBS3U+z/+n9QSwMECgAAAAAAons8RAAAAAAAAAAAAAAAAAwAHABjb21wb3NpdGlu
Zy9VVAkAA0A96FLJPehSdXgLAAEE9QEAAAQUAAAAUEsDBAoAAAAAAKJ7PEQAAAAAAAAAAAAAAAAU
ABwAY29tcG9zaXRpbmcvcmVwYWludC9VVAkAA0A96FLJPehSdXgLAAEE9QEAAAQUAAAAUEsDBBQA
AgAIAKJ7PESGpqbUvQAAAEACAABBABwAY29tcG9zaXRpbmcvcmVwYWludC9pbnZhbGlkYXRpb25z
LW9uLWNvbXBvc2l0ZWQtbGF5ZXJzLWFjdHVhbC50eHRVVAkAA0A96FJAPehSdXgLAAEE9QEAAAQU
AAAAhZHBDoMgDIbvPkWPelnEweQNdjHZMzAkkWQBBnjY20/qFtFFd6Ht37/tl1B65YQ2EbySMRQA
ZUqAAzlDyykQVv0T6Udt+KLWQBsCvK5RrYry6oUbtAydeCmfbHc7mj4ky2lyXTDgvBz0o/fKAJmq
qd5Oorg3jU1pTVQmhpsTz1EBWRrr1bvrseFs0FFbAzydoCS7kCPQGYGuEA4x9lAOcdZIDG+y7cmc
q2XJgu+P5YgMIK+W/JvNMb3pX4s3UEsDBBQAAgAIAKJ7PERDOX1ZzwAAALMBAAA/ABwAY29tcG9z
aXRpbmcvcmVwYWludC9pbnZhbGlkYXRpb25zLW9uLWNvbXBvc2l0ZWQtbGF5ZXJzLWRpZmYudHh0
VVQJAANAPehSQD3oUnV4CwABBPUBAAAEFAAAAMWOQUsDMRBG7/kVc2xJx2zq2u5xEcWDnizY85gd
NJAmy2Yi9d+b2lUPehcCQx6Pj4eIYJ5SKAfO5oaEzO1+Z/b8fO9lPtfFh8E8cmDKbAK9pyIonAUn
ziVINi4dxpS9+PhiJh7JRzE+vlHwA4lPMWOK+CXxgHWDp4x8HNnV/4UcRWmt/y2EnBQKnxl9D2hX
G9B2tYW+V7CYd2CqrVkBnIgT6MBewrZrwV4tFf7QdsbdUuk/Xf3bXVf5e7iBdm2ha5ozrm9xN9H4
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
RNpEdaq5AAAAYgEAACsAHABjb21wb3NpdGluZy9yZXBhaW50L3Jlc2l6ZS1yZXBhaW50LWRpZmYu
dHh0VVQJAANAPehSQD3oUnV4CwABBPUBAAAEFAAAAL2OQWsCMRCF7/kVc1TSMRtt6x4XUTzUk4V6
nsahBqK7ZCag/vqust48C495vI+B9xAR3E+bypHFLUnJrXbfbse/X1EHW5SY9m7LiUnYJbq0RVFZ
FDNLSSoutMeulajx9OcydxRP2rvEK+MQkc8dB+X9RM9qrLUvKaWghdK9smkA/dsH2NtpGgOj4Qly
v0sMwo0EhRq8n8G8fgc/Gxv7BFfTsYEHr8BPP6GuqoH3Gq0zdYcYZEMXzuYfUEsDBBQAAgAIAKJ7
PES4ku3ltQAAALABAAAvABwAY29tcG9zaXRpbmcvcmVwYWludC9yZXNpemUtcmVwYWludC1leHBl
Y3RlZC50eHRVVAkAA0A96FJAPehSdXgLAAEE9QEAAAQUAAAAdVC7DsMgDNz5Co/JUgGJEvYOXSL1
GyhBClIFFIiq/n0xUZuHlMVn+85ny1XQXhqbIGiVIgGoMAEBjDXQixZYU/+7FBjvQNCMlNekJtUt
SD8ZFQf50QF1DzfbMaLmkmVdgWKgJvMcg7bAcpXr42Rpnk0XUjmbtE3x7uVr1sBWYm99al8I76JJ
xlkQuEJsFmwvaClHmtP+KBiDfMfrcsp6Q6GOr9xR+D60LOHUfs1/2YIY8eHkC1BLAwQUAAIACACi
ezxEul0hErUHAAA6GgAAMwAcAGNvbXBvc2l0aW5nL3JlcGFpbnQvcmVzaXplLXJlcGFpbnQtcHJl
dHR5LWRpZmYuaHRtbFVUCQADQD3oUkA96FJ1eAsAAQT1AQAABBQAAAC9WWtz47YV/e5fgbGndZIx
ScmSHD286nT9aGeaZDp1pvnYAUlQxBokWACypW3733vxokiKlNxJptnJUgQugHPvPfcB7n2uCra+
uM8JTuFREIVRkmMhifp0vVVZML+GYan2jKwvloyWrzdo+UYlVSRF/7pA8J8iOxWkJOECK8rLJSp5
SVZmKuYiJSKIuVK8WKJxtUMp/Cbp6uI/F3Y7t0nCGRdLdDWaLMxc+EwZeaRZ5uZjnLxuBN+WaeBF
s7n+0zzIniA5oym6StPUzmW8VEGGC8r2S1TwkssKJw5ggcWGAuQxKdDIDlUclDN6CMJAozdiAOXj
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
UExW7Jgu/j/ZcXuGOd4PW+Ld1820789Aszg/7f8eD3QuuoGA0q3/C/J/UEsDBAoAAAAAAMN7PEQA
AAAAAAAAAAAAAAAJABwAZmFzdC9jc3MvVVQJAAN+PehSyT3oUnV4CwABBPUBAAAEFAAAAFBLAwQU
AAIACADDezxE2wjTQjsAAAA/AAAAKQAcAGZhc3QvY3NzL2NvbXBhcmUtY29udGVudC1zdHlsZS1z
dGRlcnIudHh0VVQJAAN+PehSfj3oUnV4CwABBPUBAAAEFAAAAHMsKUnNLShRKMlXSM0rLE0tTVVI
VCjPL8pWyARKKJRnZOakKkDEM4sVklIz89IVCoryk1OLi1NT9LgAUEsDBAoAAAAAAMN7PEQAAAAA
AAAAAAAAAAAVABwAZmFzdC9jc3MtZ3JpZC1sYXlvdXQvVVQJAAN+PehSyT3oUnV4CwABBPUBAAAE
FAAAAFBLAwQUAAIACADDezxE4h9VT64AAABFAQAAQwAcAGZhc3QvY3NzLWdyaWQtbGF5b3V0L2dy
aWQtZWxlbWVudC1jaGFuZ2UtY29sdW1ucy1yZXBhaW50LWFjdHVhbC50eHRVVAkAA3496FJ+PehS
dXgLAAEE9QEAAAQUAAAAfY/BCoMwEETv+Yo51lLFSgW/oid/IE1WExoTSVbo5zeKFAulp50d3k4m
vbEJTImhDKln1kauWvrR+jFvhDFaXWoarLdsgy9VcMvkExxJDQ6QiDRL67lCn/HMSbcdgRxN5BnJ
hMVpPAhNW88vnLGOyycdlmk6UAeowj2Ao1SEMGwHe2jK4BAi/a24/YMOyYnIV+K0F87FFScBnFaB
DrcO17rODxffZvvDa3azEOINUEsDBBQAAgAIAMN7PESE8aImGQEAAHACAABBABwAZmFzdC9jc3Mt
Z3JpZC1sYXlvdXQvZ3JpZC1lbGVtZW50LWNoYW5nZS1jb2x1bW5zLXJlcGFpbnQtZGlmZi50eHRV
VAkAA3496FJ+PehSdXgLAAEE9QEAAAQUAAAAxVA9T8MwEN3zK94IpI7bioqOEYIJiQEQnV3nklg4
dpW7SOXf46QpKgysSJbu7ul9yUop6Pfoh45YPxgx+nH3qne0f3Iyj/vB+Uq/kCfDpL35jIMoIRbV
Ew9eWNeGRVtm1fSuUieGnvYk6iiIsq0JDSk7BgVOwoNxCabjgaxQVchRsjzP/7GKsTIYPxUpS6jV
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
BBm/sduJ/FAZSOa8RE4srlHVJzWnmxQVUBWBDueuJODS1r/DXPU/tNuhtVJvUEsDBBQAAgAIAMN7
PETVOZryDQEAAFYCAAA6ABwAZmFzdC9jc3MtZ3JpZC1sYXlvdXQvZ3JpZC1pdGVtLWNoYW5nZS1y
b3ctcmVwYWludC1kaWZmLnR4dFVUCQADfj3oUn496FJ1eAsAAQT1AQAABBQAAADFTrFOwzAU3PMV
NwKp40aoUsYIwcQGiM6vzmtj4dqR/SLSv8dJK1QJBjYkW+/e+Xx3Sino9+DGIyf9SEL6afuqt7x7
tnIZD6N1nX5hx5RYOzqFUZRwEhU5jU6S3lMSbVJSh2g7dVboBVvhozI9+QOrGD7zj4GsF8XTwEa4
q2SSoizL/+hARkZyS4O2hapXG5T1qkHbFnjrbcLsD9Oz+ci4pxlnE+sPeWMs3tkPwYOWDXMShhgG
ju6ES06VzRh768ldqVIfRtdhx6jX62HC3Xku4shXzz5AIhlG2H/Hni1yoZkIWTeEZMUGXxW4ucTm
eCOpUJgZI2hw38wZqDfr26L8Qf/O5vsHcXMlRj7FF1BLAwQUAAIACADDezxEBEE0w5MAAADhAAAA
PgAcAGZhc3QvY3NzLWdyaWQtbGF5b3V0L2dyaWQtaXRlbS1jaGFuZ2Utcm93LXJlcGFpbnQtZXhw
ZWN0ZWQudHh0VVQJAAN+PehSfj3oUnV4CwABBPUBAAAEFAAAAE2O0Q6CMAxF3/cV9xFMJCPGhA/h
B+YorBHXZZtR/94NjOGpt+1JT0fHCZlShnVk7yU7U7PxC/uldIQl8nSO8oJ4mK0DZ3ogRAkU1w8i
BcM+dxgLPbM364FKTp7rhBuh1zq8cdrrBkc6rL0gR2MJMv+1+4nyUB1I4YIkziy+U83PWuw2JwU0
NWDAZagG9FfdqlapL1BLAwQUAAIACADDezxE1v6ngQwIAADFHAAAQgAcAGZhc3QvY3NzLWdyaWQt
bGF5b3V0L2dyaWQtaXRlbS1jaGFuZ2Utcm93LXJlcGFpbnQtcHJldHR5LWRpZmYuaHRtbFVUCQAD
fj3oUn496FJ1eAsAAQT1AQAABBQAAADVWWtv47gV/Z5fQSRoszuIZDu2s37MuOjkgQJ9oGgG3Y8F
JVEWJ5SoJenYnrb/vZcvWZIl28VuW3QHO5bIS/Lc17mXmo+Zytnq6mNGcAI/OVEYxRkWkqhPtxuV
BrNbGJZqz8jqasFo8XaHFu9UUkUS9PcrBP8pslNBQmIusKK8WKCCF2RppiIuEiKCiCvF8wUalTuU
wDNJllf/vLLbuU1izrhYoJvheG7mwhfKyBNNUzcf4fhtLfimSAIvms70n/pB9gTJGU3QTZIkdi7l
hQpSnFO2X6CcF1yWOHYAcyzWFCCPSI6GdqjkoJzRQxAGGr0TAygbtZCOx+OO/SUuZCCJoGltUtJv
xJxRPzRgJFULNAynfjyhsmQYNlE4YiSICWN2YksTlcEGw+GvHEacJLRYV6stPuce/dT0kINMiwyA
qUo84+9EtLSaTqfLPoMTYk0Rar/8Ac6SbnHKOAZVBF1nquk9LfUIJsC0qI7iYH6qQM3hGbWdloHZ
t2GpbQbaBcaPOty2ApcHZK8k1v7rDRyzuBk27ZBxcevtDkE1LHf2hOddCS6G/UE1codC/dPWsBee
pAmJ9vpvZKB+Zjx++zMWKgRVFykVUgVxRlnSa1h93Cusvzu1mSA5uPbuzHnuDG9+WkD4kCDSIo2w
m/qog2hRNMYswIyuIT8U71BLEB3tv8NFwog3h9tHm1C/Z8Q69BDP8UZI7RoNu52FOALvbLzH4Mwq
cGwCGXinUDTi/Dgc1oLsl63ADKfn/GVNjELFz5o5TAXPW8Z2HKnP0Fb/0yaPiIBoIvXosqMe+DGV
uqidzxsk6NOliwp9Jk8mk1buHXu/4hi90dSmgE2DivRdHLjw7AoRC7cRTmNHWDXFjYqdhGMLRa9Z
TpBUKXR2apjOgJ5NXNR4RRq5CosCm61mCuxpXkEPQfBboAcsIJrjNWl4ZoHuK4NHDGsrasEYqAEw
ABT3hNp6H7wym8x7uTcl6YEAdFjBjlWJrGVzx9IkTZpLwdmyX3xO5stTdb3aybFMHYfLiv6SnSRH
G6CEsP4VZH4WzeADet2UJRcKqq1wkQxGzXNSKIk+DOA8vFEZt/a2FVk3NBD1CuI09p4yC4xMTw9Q
yWgwGELCCHs6e/CBrekGM/boEXRK39taluNd0CrvOfQGbuh+WNWd9tFg95PnVJldpXTjmC6cIS+J
LZvBlkRvVAVK6LSzlrDAUXgvlzU1Jk7pG6mw2sjPmwhqeFUPQ509nXD0EsU5i7BozvujU0ZMhh4m
cv6tGq3IaWzz2PVS+tF3C/q5vy3sY46T7dwhLFK6I3Yfx8fDpkohNj2ITbPjKr6lwAWiFWrVnt8C
WiRkByR1QrVDIaxB6NLLkVGjvM0cixUapkvYztIE50V8dxbowwHoyAaxL0L2zYB1z1UFc68V4Koz
axxNU4Fzi7CVJ802opYjjz1Me2ybPfSafOtqPWHQOELPfEFhepi/HMLL1eSeSWOI5lzVRibH7XGz
OXZ7WPMdx3BvS5B4nrXH/NaTgr/uDOuzX3yNbN1LHn7whHYM80SS1G48Mse2l69zbsEFDC97WMbp
r1sw2XW41cPn9bBLhOGIsAVOIcPujpbbcbOJKcgFqHqN/oGul1dVIa6V7/ZqhqFD52mg9iXp3Oq6
F5ETbF1zM8IMQVbNKNbNaE+NusmJlL7x6LVzl1tq2fFqiPqSUgglBhqid8o38rEagWb2Gykea8Wy
q877lqNdYurFRXM5RK2JBM/t7t1FoiORsa+BF6FxoQE9DlE6JxrlwrV9PU1fvc5GG8iqos47vr4n
9H2R8tjZkG+U5ot6+kVsYyqJm4J4SQELVLCRV6ReLM0u0MN8yYg9aeAq7Rrwax0URwrmIivtQk2i
d4o1J6s/upgAsJHgW3A4dAIZhrWuKaIq1E1Qpcdk6rr4qhVx754ddCOr/x82i6j/rNPu8XOawC3L
KqYdJP3lu6OiQB/GJX4H24MFSKuu1G96R6UuGIVj2zIdPn746t/hg5unp6daSt/MXp5epi+d/ATN
ZXcUPz8/d6FekLwEhmo437VpLckQHgFpI/Of57PhzPFWzAgWfzPtgb8K6BFzbcq0yMeB+/L2UcaC
luBTEX+6zpQq5WIwwF/xLlxzvoZFJZU6dM3YgNFIDr7+tCFiPxiFk/DevYTQWoZf5fUK9jX7rVBz
55gnJNA+JFuQ+w14Wjvz02RWWwKg3MfCiCd7+IF8ANxYyk+3/iagvxlmo9Xgr+BP4KzBE1Z48Pzj
6+BHEv2eKvfzeUNZMvgL1F0syQAiBcwZKAIMC9f3DVNykALdDmIpg7WgSWAlBuYZ8hcqboaLNQDm
W1hRAtfClTRWG8xCtVMAc9REV/s4dHs8Yy7tfeP6Mo9kBt110hLRNxnU+AhkPphCYfUS5vp/6Clu
VyOwJcyvGlKQ5edloFLfrr5kVPf6UqE4I/Gby3ZjCx1smiuMicAsmhSweUPaYEB10OILtkfOXKFh
nRT6QFaTkhnfMKAxolsryKgP9tcIC1KbLoCZBHAo4ml1rN0CAOkBDnI+v0OnEcQPmO9nG/H+AiPe
9xvxO2cBsESsZBua+akDrGXq7cpNH6txWRjZa+/ZMKrJnTTE+AJD/LqIZLnstwZC32k7oBkaz7Sz
0Wg6/P6sUZpqASuf18kJnVToBFh+gebdCnXo819EOvl3TD/8n0Kd/t8Y9eESpLN+o/5Hk/yXqhWT
CwzxQ78hvv9lSXd6AZpZP5qf44HWj+k9oMSbf738F1BLAwQKAAAAAADUezxEAAAAAAAAAAAAAAAA
DAAcAGZhc3QvZnJhbWVzL1VUCQADoD3oUsk96FJ1eAsAAQT1AQAABBQAAABQSwMEFAACAAgA1Hs8
RNsI00I7AAAAPwAAAC8AHABmYXN0L2ZyYW1lcy9mcmFtZS1kaXNwbGF5LW5vbmUtZm9jdXMtc3Rk
ZXJyLnR4dFVUCQADoD3oUqA96FJ1eAsAAQT1AQAABBQAAABzLClJzS0oUSjJV0jNKyxNLU1VSFQo
zy/KVsgESiiUZ2TmpCpAxDOLFZJSM/PSFQqK8pNTi4tTU/S4AFBLAwQKAAAAAADYezxEAAAAAAAA
AAAAAAAADAAcAGZhc3QvaW1hZ2VzL1VUCQADpz3oUsk96FJ1eAsAAQT1AQAABBQAAABQSwMEFAAC
AAgA2Hs8RIErElJhAAAA3AEAACsAHABmYXN0L2ltYWdlcy9yZXBhaW50LXN1YnJlY3QtZ3JpZC1h
Y3R1YWwudHh0VVQJAAOnPehSpz3oUnV4CwABBPUBAAAEFAAAANMoSi1IzMwrUShKTS4p5lJQ0AAx
FHQNDQwghKEFEGnCJQwUiBECcoFilgTFjM0x9WIT07WEiAD1ExAkVszIglhBEzNiBQ1AbscIHEwx
IBckaElYECiCqR2rIEaEaXJxAQBQSwMEFAACAAgA2Hs8RLVGFI4BAQAAgQMAACkAHABmYXN0L2lt
YWdlcy9yZXBhaW50LXN1YnJlY3QtZ3JpZC1kaWZmLnR4dFVUCQADpz3oUqc96FJ1eAsAAQT1AQAA
BBQAAAC90k1Pg0AQBuA7v2KOmu10odXa3ojRkzdN7HkLY0Oy/Qg7m9R/77QghTrWm8kGyMM7MxsW
RAT7vvNxQ8E+OXb2eflml7R6qbi9PcbKl/aVPLlA1rvPXWRkCow1heg52A8X2FYbt5YeNe1dtWUM
cVVTwbiuqxLpsJdnKsd84MQY8w8jXcHR+dPAPAfMRtkCTDaa3EOeJ3DT1sCxICQARylYcmnaXLK5
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
cmVsb2FkLWluLXBsYWNlLXN0ZGVyci50eHRVVAkAA6g96FKoPehSdXgLAAEE9QEAAAQUAAAAcywp
Sc0tKFEoyVdIzSssTS1NVUhUKM8vylbIBEoolGdk5qQqQMQzixWSUjPz0hUKivKTU4uLU1P0uABQ
SwMEFAACAAgA2Xs8RNsI00I7AAAAPwAAAFMAHABmYXN0L2xvYWRlci9pbWFnZXMtZW5hYmxlZC11
bnNldC1jYW4tYmxvY2staW1hZ2UtYW5kLWNhbi1yZWxvYWQtaW4tcGxhY2Utc3RkZXJyLnR4dFVU
CQADqT3oUqk96FJ1eAsAAQT1AQAABBQAAABzLClJzS0oUSjJV0jNKyxNLU1VSFQozy/KVsgESiiU
Z2TmpCpAxDOLFZJSM/PSFQqK8pNTi4tTU/S4AFBLAwQUAAIACADdezxE2wjTQjsAAAA/AAAALQAc
AGZhc3QvbG9hZGVyL3JlbG9hZC1wb2xpY3ktZGVsZWdhdGUtc3RkZXJyLnR4dFVUCQADsj3oUrI9
6FJ1eAsAAQT1AQAABBQAAABzLClJzS0oUSjJV0jNKyxNLU1VSFQozy/KVsgESiiUZ2TmpCpAxDOL
FZJSM/PSFQqK8pNTi4tTU/S4AFBLAwQKAAAAAADjezxEAAAAAAAAAAAAAAAADQAcAGZhc3QvcmVn
aW9ucy9VVAkAA7k96FLJPehSdXgLAAEE9QEAAAQUAAAAUEsDBAoAAAAAAON7PEQAAAAAAAAAAAAA
AAAVABwAZmFzdC9yZWdpb25zL3JlcGFpbnQvVVQJAAO6PehSyT3oUnV4CwABBPUBAAAEFAAAAFBL
AwQUAAIACADjezxEsAvOmjUAAABvAAAASQAcAGZhc3QvcmVnaW9ucy9yZXBhaW50L2VsZW1lbnQt
aW4tbmFtZWQtZmxvdy1hYnNvbHV0ZS1mcm9tLWZpeGVkLWFjdHVhbC50eHRVVAkAA7k96FK5PehS
dXgLAAEE9QEAAAQUAAAA0yhKLUjMzCtRKEpNLinmUlDQADEUTA0UDA0MQJSpgSZcFCQEwkYQjCRh
ChFEV48qrMnFBQBQSwMEFAACAAgA43s8RMeR/xPPAAAA2AEAAEcAHABmYXN0L3JlZ2lvbnMvcmVw
YWludC9lbGVtZW50LWluLW5hbWVkLWZsb3ctYWJzb2x1dGUtZnJvbS1maXhlZC1kaWZmLnR4dFVU
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
AAgA43s8RDuFxabQAAAA1wEAAEcAHABmYXN0L3JlZ2lvbnMvcmVwYWludC9lbGVtZW50LWluLW5h
bWVkLWZsb3ctZml4ZWQtZnJvbS1hYnNvbHV0ZS1kaWZmLnR4dFVUCQADuT3oUrk96FJ1eAsAAQT1
AQAABBQAAADFjsFqwzAQRO/6ij0mKBvJAdOrKc2ptxaa88ZeB4EsBWtF3b+v3Ii26Q8UJEa80ewO
IoJ5iz5PnMwTCZnj6dWc+PzspMpjdn4wL+yZEhtPHzELCifBmVP2ksxISczMFxdDKnolF8SU/xMH
QRcw0MQDjj6+4+iW9TnHCemcyl5h5OXKvfCwl0WU1vrfC1EvmfxXna4DbHYt6Gb3AF2nYFPHwVw6
J4Wwkl6gtdBYC4eird3+8BU2BR5uulX626m0JvRdwt68cn85dcffwD2GctQnUEsDBBQAAgAIAON7
PET29L/hMQAAAEIAAABLABwAZmFzdC9yZWdpb25zL3JlcGFpbnQvZWxlbWVudC1pbi1uYW1lZC1m
bG93LWZpeGVkLWZyb20tYWJzb2x1dGUtZXhwZWN0ZWQudHh0VVQJAAO5PehSuT3oUnV4CwABBPUB
AAAEFAAAANMoSi1IzMwrUShKTS4p5lJQ0AAxFEwNFAwNDBSMgLSpgSZcGCRmCBQzgtCaXJpcXABQ
SwMEFAACAAgA43s8RLAOw/fHBwAARRwAAE8AHABmYXN0L3JlZ2lvbnMvcmVwYWludC9lbGVtZW50
LWluLW5hbWVkLWZsb3ctZml4ZWQtZnJvbS1hYnNvbHV0ZS1wcmV0dHktZGlmZi5odG1sVVQJAAO5
PehSuT3oUnV4CwABBPUBAAAEFAAAAMVZa2/jNhb9nl8hJOimLSLJju00tme82MkDBba7KJqi/VhQ
EmVxQolakoqdbPe/9/IlS7Jku51ZTAYZPXhJnvs+VN5lMqers3cZRglcciyRF2eICyzfX1Yy9W8v
4bWQrxSvzhaUFM9X3uKFCCJx4v33zIMfibfST3DMOJKEFQuvYAVe6qGI8QRzP2JSsnzhjcutl8A9
TpZn/zszy9lFYkYZX3gXo8lcjwWPhOJ7kqZ2PELx85qzqkh8J5reqn/NjcwOglGSeBdJkpixlBXS
T1FO6OvCy1nBRIliCzBHfE0A8hjn3si8Khkop/XgmIJGL1gDysYdpJPJpGd9gQrhC8xJ2hgU5A3r
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
YWwudHh0VVQJAAO5PehSuT3oUnV4CwABBPUBAAAEFAAAANMoSi1IzMwrUShKTS4p5lJQ0AAxFIwN
DMDYFIQ04cKGQCEQNoJghIQpRBxNOaqoJhcXAFBLAwQUAAIACADjezxE4oJ+/NEAAADVAQAARgAc
AGZhc3QvcmVnaW9ucy9yZXBhaW50L2VsZW1lbnQtaW5mbG93LWZpeGVkLWZyb20tb3V0Zmxvdy1z
dGF0aWMtZGlmZi50eHRVVAkAA7k96FK5PehSdXgLAAEE9QEAAAQUAAAAxY7BTsMwDIbveQofmTKT
dGhwrRCcdmMSO4fWRZHSZqodrbz93K0Ixgsgxfqlz/mSHxHBvedUemL3EiS418PeHehjF2WJ5xJT
694oUWByKXzlIijEgiNxScKuCyxupM+YB9Y8hjiI0/s9DYJx6FI+YRcnarEbc4/qXxBLkNggTUdq
hNp7mcRYa/+7T2ikhHRpU9eA1foRbLV+gro2cLe8BqNWZoMwk0Zg66HyHjaaW7/64TOsFG6uuTLw
vXlQMs9i2BvDXw2dX5vlj7/CLQY95gxQSwMEFAACAAgA43s8RIlzBZ84AAAAWQAAAEoAHABmYXN0
L3JlZ2lvbnMvcmVwYWludC9lbGVtZW50LWluZmxvdy1maXhlZC1mcm9tLW91dGZsb3ctc3RhdGlj
LWV4cGVjdGVkLnR4dFVUCQADuT3oUrk96FJ1eAsAAQT1AQAABBQAAADTKEotSMzMK1EoSk0uKeZS
UNAAMRRMDRQMDQwUjIC0qYEmXBgkZggUM4LQCAljoAAIQ9VrcnEBAFBLAwQUAAIACADjezxEoQlN
LdMHAADgHAAATgAcAGZhc3QvcmVnaW9ucy9yZXBhaW50L2VsZW1lbnQtaW5mbG93LWZpeGVkLWZy
b20tb3V0Zmxvdy1zdGF0aWMtcHJldHR5LWRpZmYuaHRtbFVUCQADuT3oUrk96FJ1eAsAAQT1AQAA
BBQAAADVWWtv47gV/Z5fISRos7uIJD+zsT3jopMHFti2KJpF92NBSZTFCSWqJBU7093/3suXLMmS
7emmBToDjx68JM+999wHNR8ymdP1xYcMowQuOZbIizPEBZYfryuZ+nfX8FrIN4rXF0tKipcbb/lK
BJE48f514cEfiXfST3DMOJKEFUuvYAVe6aGI8QRzP2JSsnzpjcudl8A9TlYXv16Y5ewiMaOML72r
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
iwc6F92WQMXX/7H5b1BLAwQUAAIACADjezxE1tFaFjQAAABYAAAASAAcAGZhc3QvcmVnaW9ucy9y
ZXBhaW50L2VsZW1lbnQtb3V0Zmxvdy1zdGF0aWMtZnJvbS1pbmZsb3ctZml4ZWQtYWN0dWFsLnR4
dFVUCQADuT3oUrk96FJ1eAsAAQT1AQAABBQAAADTKEotSMzMK1EoSk0uKeZSUNAAMRRMDRQMDQxA
lKmBJlzUGChkjCkMUgnCRhCsyaXJxQUAUEsDBBQAAgAIAON7PEST1i0KzAAAAL4BAABGABwAZmFz
dC9yZWdpb25zL3JlcGFpbnQvZWxlbWVudC1vdXRmbG93LXN0YXRpYy1mcm9tLWluZmxvdy1maXhl
ZC1kaWZmLnR4dFVUCQADuT3oUrk96FJ1eAsAAQT1AQAABBQAAADFjkFrwzAMhe/+FTqueJqdlu4c
xnbqrYP2rCXKMDhxiWWa/vspbUrZ/sBA0oMPvcdDRHCHFEvP2b2TkPs4frojf+2CLPJWQmzdniNT
ZhfpkoqgcBYcOZco2XWUxY38HdKQVU8UBnH63/MgqN9dTGfMQhIa7MbUYxiuqAsTt8jTiRvh9kUm
Mdba/+5DjRSK1zZ1DVg9v4KdT10beFrSYNTK2SDMpBHYeqi8h7Xq1q8efIaVwvVNV8b+cSwGuOON
ss2D219B/hakqw4d8wNQSwMEFAACAAgA43s8RIlzBZ84AAAAWQAAAEoAHABmYXN0L3JlZ2lvbnMv
cmVwYWludC9lbGVtZW50LW91dGZsb3ctc3RhdGljLWZyb20taW5mbG93LWZpeGVkLWV4cGVjdGVk
LnR4dFVUCQADuT3oUrk96FJ1eAsAAQT1AQAABBQAAADTKEotSMzMK1EoSk0uKeZSUNAAMRRMDRQM
DQwUjIC0qYEmXBgkZggUM4LQCAljoAAIQ9VrcnEBAFBLAwQUAAIACADjezxEmQgukMsHAABbHAAA
TgAcAGZhc3QvcmVnaW9ucy9yZXBhaW50L2VsZW1lbnQtb3V0Zmxvdy1zdGF0aWMtZnJvbS1pbmZs
b3ctZml4ZWQtcHJldHR5LWRpZmYuaHRtbFVUCQADuT3oUrk96FJ1eAsAAQT1AQAABBQAAADVWW2P
27gR/r6/QthFu0mwkuy1vV3biQ+XfcEB1xZFN2g+FpREWcxSokpSa2969987fJMlWbIdNL1Dc8hJ
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
2eht1yrfBe7kO8JVWMeA9do83x51Y9sRkA6Pe8EKHdTpAF52gq/6XNDvgf8pL79XZE5PMMTkuCEm
YIXJ72OJ354Y0xPJPjJkh7//n9yYnWCL2bAtvi0lHUVzcwKam2E0/40HOg/dEUCx1f+m+B9QSwME
FAACAAgA43s8RAfbVK7XAAAATQIAADwAHABmYXN0L3JlZ2lvbnMvcmVwYWludC9pbnZhbGlkLXJl
Z2lvbi1yZXBhaW50LWNyYXNoLWFjdHVhbC50eHRVVAkAA7k96FK5PehSdXgLAAEE9QEAAAQUAAAA
rU9LasMwEN37FG+ZQCgKxZteopteQJXGtkCZMTNyim/fsWmyyKqBgISGp/ebL7KGNsWGyCh8jbVk
KI1F+IQ5aoMMiMg0E2fitCKtqdIJWcjA4mJd0cQ1cyzckIQb+TuoXFCaOaBKNgvnwiM4XihjqPLz
1nWfDFtSIjNnwiZZat49k0abvFHGKsvtw4jw7jmpRR6rp++B7lbYNyAMUt12CxHNpB8Ylci3+K6L
9xV1FXno4dZ0c7IOOGwD+vB3zn043tFzCPt9xJ9j/wcPz+H9a+gvbHPsul9QSwMEFAACAAgA43s8
RPpqYqMMAQAAQQMAADoAHABmYXN0L3JlZ2lvbnMvcmVwYWludC9pbnZhbGlkLXJlZ2lvbi1yZXBh
aW50LWNyYXNoLWRpZmYudHh0VVQJAAO5PehSuj3oUnV4CwABBPUBAAAEFAAAAMWPQUsDMRCF7/sr
3lHZTbO1FNTTInryICjYc7qZbgMxKZmJ1n/vdm2LpRcLhcKEge/lvbwopaDfo88fxPrRiNFPszc9
o/mzk+16yM5b/UqeDJP25jtmUUIsKhFnL6wXhkUn6lwM3O+VcUG0C5/GO6t+udpi1SbDS0XrFbVC
diRrKcqyvEQH00o2fmjQNFCT6hblpBrfoWkKvARwbltihhPwMmZvEaJg8MIEi77DTmAiTJD6L5nQ
eWIM75CFC5AlYRG9j18udIjJUrpHl4hChbnPVPWsd9GoQIGrbcUhiwuFDWkF03o/1wd0XO/PH2FD
buq9oTyKGR/gXciRcOr9fwn1qcL0bIbzdkI/xQ9QSwMEFAACAAgA43s8RP5DfhfJAAAASAEAAD4A
HABmYXN0L3JlZ2lvbnMvcmVwYWludC9pbnZhbGlkLXJlZ2lvbi1yZXBhaW50LWNyYXNoLWV4cGVj
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
aW50L3JlcGFpbnQtZWxlbWVudC1pbnNpZGUtcmVsYXRpdmUtcmVnaW9uLWRpZmYudHh0VVQJAAO6
PehSuj3oUnV4CwABBPUBAAAEFAAAAMWPQU/DMAyF7/kVPjJlISmigmOFxokbIHYOjdkieU1VO6j8
e1wYGpx2RI70os/vOY5zDvxLoXpA9pso0d9vn/wWXx+yHOWuZkr+EQkjo6f4Uao4QRY3IVcS9m+R
xU+4y2Vg1THmQX7Uae6AqnngnFAzFCW/L5fF73AesRdMlzKLsdb+7zaxlxrpa5euA9esb8A26yZA
1xl43mcGwVmA96VSgqEI7FCgpzyOmAxcHJ+BSf/EBmAhvUDQug0B2rAy7gTbANdKmwX/8l6Fk9ue
xd8ztPmHtucx6DGfUEsDBBQAAgAIAON7PESV1xZAUwAAAHMAAABIABwAZmFzdC9yZWdpb25zL3Jl
cGFpbnQvcmVwYWludC1lbGVtZW50LWluc2lkZS1yZWxhdGl2ZS1yZWdpb24tZXhwZWN0ZWQudHh0
VVQJAAO6PehSuj3oUnV4CwABBPUBAAAEFAAAAAvJyCxWKEmtKFEozsgvzUlRyMsvUUhPLVFIzsks
KEhN4dIoSi1IzMwrUShKTS4p5lJQ0AAxFAyA0MLAQMHUQBNJzNRAwQQoaIgqamSAUKvJxQUAUEsD
BBQAAgAIAON7PETZM4R74gcAACAeAABMABwAZmFzdC9yZWdpb25zL3JlcGFpbnQvcmVwYWludC1l
bGVtZW50LWluc2lkZS1yZWxhdGl2ZS1yZWdpb24tcHJldHR5LWRpZmYuaHRtbFVUCQADuj3oUro9
6FJ1eAsAAQT1AQAABBQAAADVWWuP2zYW/T6/QpjBdtpiJMtje+JH4qKZBxboA4udYPtxQUmUxQwl
aklqxpPd/vdevmRJlmwvEjRog0YyeUme+z5U3mYyp+uztxlGCTxyLJEXZ4gLLN9dVjL155cwLOQr
xeuzJSXF05W3fCaCSJx4/z3z4D+Jt9JPcMw4koQVS69gBV7pqYjxBHM/YlKyfOmNy62XwDtOVme/
n5nt7CYxo4wvvYtwstBzwQOh+I6kqZ2PUPy04awqEt+JpnP1p3mQOUEwShLvIkkSM5eyQvopygl9
XXo5K5goUWwB5ohvCEAe49wLzVDJQDmtB8cUNHrGGlA27iCdTCY9+wtUCF9gTtLGpCCfsD6jeahP
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
PEQAAAAAAAAAAAAAAAANABwAZmFzdC9yZXBhaW50L1VUCQADxD3oUsk96FJ1eAsAAQT1AQAABBQA
AABQSwMEFAACAAgA5Hs8RA0wr/rbAAAAJAEAAE0AHABmYXN0L3JlcGFpbnQvYmFja2dyb3VuZC1z
aG9ydGhhbmQtd2l0aC1ncmFkaWVudC1hbmQtaGVpZ2h0LWNoYW5nZXMtYWN0dWFsLnR4dFVUCQAD
vD3oUrw96FJ1eAsAAQT1AQAABBQAAABVkMtqwzAQRff6ios3aaE1acgi2xBcKKTY1P4BWRo9qCoZ
PZr47ysvsuhmYIbLnDMzGZuQKWX8UrTKUu0Mz9CRS0s+Y+biW8dQvISmnBBp4dZnklhiWCi6FVxl
ihDGOok53GHIapPrgHtNLWO9RypCUEovWEPBzTqHRARea9yQQaEZzuPY4KemuKaaVMG5cKuceUUz
deOES/85XLupa+pO9n7+uD5kvkjk1Fov6d6rp90JpyOOexwO+90zkgmlivlQbyG8vrVsIz2MVHFu
HXhMFbR9IhZi7B+NsT9QSwMEFAACAAgA5Hs8RBOOkyklAQAAMgIAAEsAHABmYXN0L3JlcGFpbnQv
YmFja2dyb3VuZC1zaG9ydGhhbmQtd2l0aC1ncmFkaWVudC1hbmQtaGVpZ2h0LWNoYW5nZXMtZGlm
Zi50eHRVVAkAA7w96FK8PehSdXgLAAEE9QEAAAQUAAAAzZBBb8IwDIXv/RVWL2wqIYwhjWPZ1knT
mEAUjXPauG20rEGxI+DfL0VcduM4RbKjWM/vexFCgPxyNvwgyVfFShb7Uu6x+jB8bc/BWC23aFER
SqvOLrBgJBYeKVgm2Shi6fGgTM+yUvV3613otaDOee5UvB0Nd6L1ShvsWQwvHZq2Y1HHcYsk8HTA
mlFP+MRJlmX/AkrVHJS9IOU5iMfxE2RDyfME1j1QqGskGkM0h6OxFggRVKzeIIFrIN0syzKFGINU
XDiGxlnrjqihOkO6K8odvKw/N6tiV6STBOIRgwKu2Nv4JTQxvcbTurkbLWAxh/kUZrPp6B4MQe8Y
xEOSvS3fVzdpYvZg9UVXYZRGz4vfNUkTrD1vlKcIGNezDzhA/eFMfgFQSwMEFAACAAgA5Hs8RP6f
mPvUAAAAHAEAAE8AHABmYXN0L3JlcGFpbnQvYmFja2dyb3VuZC1zaG9ydGhhbmQtd2l0aC1ncmFk
aWVudC1hbmQtaGVpZ2h0LWNoYW5nZXMtZXhwZWN0ZWQudHh0VVQJAAO8PehSvD3oUnV4CwABBPUB
AAAEFAAAAFWQzU7DMBCE736KUS4FCapS9dArQrm1SkTyAo6z/hHGjtY2bd4eR8CBy0q7mt1vZkfr
EjKljC9ipx3VzsoMw3J2FDImqT4MxxJmGMoJTIt0IdOMheNC7FdInYmhrPMzpniHJWdsrgMZDO2F
6AJSUYpSesIaC27OeyQiyFp5Q0aNpn8dhgafVSUNVaWO3sdb5UwrmrEdRrx11/7Sjm1Tb4pN/mfm
nVROexdmunf6YXfG+YTTAcfjYfeImi/EjOeXn5VfJ7p4v/aSUwVsH+BCQvyjCPENUEsDBBQAAgAI
AOR7PETe/eBvSwgAAGwcAABTABwAZmFzdC9yZXBhaW50L2JhY2tncm91bmQtc2hvcnRoYW5kLXdp
dGgtZ3JhZGllbnQtYW5kLWhlaWdodC1jaGFuZ2VzLXByZXR0eS1kaWZmLmh0bWxVVAkAA7w96FK8
PehSdXgLAAEE9QEAAAQUAAAAvVlrb+M2Fv2eX0EkaLNbRJKd2Bk/Ml7M5IEtdroTNEH7cUFJlMUJ
JboildjT9r/v5UuWZMk20EEzyIji89zXuZfKTSoztji5SQmO4ZERiVGU4kIQ+f68lIk3OYduITeM
LE5mjOYvF2j2SgWVJEa/nyD4kWQtvZhEvMCS8nyGcp6TuR4KeRGTwgu5lDyboeFqjWJok3h+8ueJ
2c5uEnHGixk6G1xN9Zj/QBm5o0lix0McvSwLXuax56YmE/WvfpA5QXBGY3QWx7EZS3guvQRnlG1m
KOM5FyscWYAZLpYUIA9Jhgama8VBOC1HQRhI9Eo0oHTYQnp1ddWxv8C58AQpaFIbFPQr0WfUD/UY
SeQMDfyx64+pWDEMm0gcMuJFhDEz8EZjmcIGg8F3FiOOY5ovq9UGnzWPajUtZCHTPAVgspqe8ldS
tKQaj8fzPoUTYlThK7t8grOEXZwwjkGUgi5T2bSemnULKsA0r47ioH4qQczBAbGtlJ7et6GptxSk
87Qdlbu9FXi1RfZEImW/XsfRi5tu03YZ67dO7+BUg9XanHC/XoGJYX8QjVwgXz3aEvbCEzQm4Ub9
jzTUj4xHL4+4kD6IOktoIaQXpZTFvYpVxz3B+ot9mxUkA9NeHDjPnuHUT3NwH+KFakrD7cbO68Bb
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
em9udGFsLWJ0LW92ZXJmbG93LWNoaWxkLWRpZmYudHh0VVQJAAO+PehSvj3oUnV4CwABBPUBAAAE
FAAAAL1OywrCQBC79yvmqGzHsSIFb0X05E1Bz9N2ioW1W3ZnfX29rXjtVUgIJJAEEYHOzsabBNqx
Mu0vJ7pIeWj1J9vY2pqOYoWDkOWXi4oqQdFLiFYDNRyUvPTcdkpX59u365QtloruLr6x7oHVdWhB
efZSqdQLfWpijPnnNlca2X6XiwIwS9dgsjSHokhg9msAP9wLiYHRqRRWG8iW+cDlyPl0AJPBgOQD
UEsDBBQAAgAIAOV7PEQSJvyPJQAAACoAAAA2ABwAZmFzdC9yZXBhaW50L2hvcml6b250YWwtYnQt
b3ZlcmZsb3ctY2hpbGQtZXhwZWN0ZWQudHh0VVQJAAO+PehSvj3oUnV4CwABBPUBAAAEFAAAANMo
Si1IzMwrUShKTS4p5lJQ0AAxFIwsFQwNzIDYAIQ1uTS5uABQSwMEFAACAAgA5Xs8RCujevmHBwAA
9RkAADoAHABmYXN0L3JlcGFpbnQvaG9yaXpvbnRhbC1idC1vdmVyZmxvdy1jaGlsZC1wcmV0dHkt
ZGlmZi5odG1sVVQJAAO+PehSvj3oUnV4CwABBPUBAAAEFAAAAL1ZWW/jNhB+z68QErTZLiLJju00
tndddHOgQA8UzaJ9LCiJsrihRJWkYidt/3uHlyzJkp2ixxZbS+SQ/Ob6Zqh9l8mcrk7eZRgl8JNj
ibw4Q1xg+f68kql/fQ7DQj5TvDpZUFI8XniLJyKIxIn3+4kHfyTeSj/BMeNIElYsvIIVeKmnIsYT
zP2IScnyhTcut14CzzhZnvx5Yrazm8SMMr7wzkaTuZ4L7gnFtyRN7XyE4sc1Z1WR+E40vVb/NQ8y
JwhGSeKdJUli5lJWSD9FOaHPCy9nBRMlii3AHPE1AchjnHsjM1QyUE7rwTEFjZ6wBpSNO0gnk0nP
/gIVwheYk7QxKcgL1mc0D/UpTuXCGwUzN54QUVIEm0gUUezHmFIzsSGJzGCD0egzixElCSnW9WqD
z7pHPbU9ZCGTIgNgshbP2BPmHa1ms9lyyOAYG1MEyi/fwVnCLk4pQ6AKJ+tMtr2npG7ABIgU9VEM
zE8kqDk6orbV0tf7tiy1yUA7X/tRhduGo3KH7AHHyn+DgaMXt8OmGzI2bp3dIahG5daccLctwcWw
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
8vjDeSZlKZZhiL6gXbBhbAOLSiJU6OqxkJJIhF/+XWH+Eo6DWTCxLwG0lsEXcb6GffV+a6+9c8wS
7Csf4i3I/RU8rZz5YXbTWAKg7MfCiCUv8AP5ALiREB8u3U1AfTPMxuvwn+BP4KzwDkkU3n9+DD/j
6O9E2p+PFaFJ+A+ou0jgECIFzOlLDAwL1/eKShGmQLchxyXQqAyhgSevilOpHwEJAziw3NYX0B74
0MdUiAZyJwHduA2q8U3o8nBG39WHxtUd3hMZNNVJR0RdYLzWtx/9nRTqqZPQt/59K3G5HoMJYX7d
koLkPi0DBfpy/YO1A1xJYimsHDgDQLmfJsBGbF2u7bSV/Z8tAAl3Un0ndNQEfy4iUa7eYIfJsB08
7wdlAW+y8CZj1fypvz927fF/xDr9Wqzf1XffKnonb7DE7Lt67STE6RsgzochfmM0szeguR5G8zVB
0vnRPA28qP+l5w9QSwMEFAACAAgA5ns8RIVCVr41AAAAYAAAAEEAHABmYXN0L3JlcGFpbnQvbmVn
YXRpdmUtdGV4dC1pbmRlbnQtd2l0aC1vdmVyZmxvdy1oaWRkZW4tYWN0dWFsLnR4dFVUCQADvz3o
Ur896FJ1eAsAAQT1AQAABBQAAADzyExJSc1TCEmtKOHSKEotSMzMK1EoSk0uKeZSUNAAMRRMTQ0U
LBSMDAwUTA00SRLV5OICAFBLAwQUAAIACADmezxEjvuX1boAAACHAQAAPwAcAGZhc3QvcmVwYWlu
dC9uZWdhdGl2ZS10ZXh0LWluZGVudC13aXRoLW92ZXJmbG93LWhpZGRlbi1kaWZmLnR4dFVUCQAD
vz3oUr896FJ1eAsAAQT1AQAABBQAAADFjsFqAkEQRO/zFX1MGNteA4s5LpJAIDeVeG53Wx2Y7MpO
jW7+PqP4AzkFCgoeRfGYmeRriPnbkrwpVN53G9nZ/jPgUascYidri6bJJOrPkMGwBB4t5YgkB02Q
0c4aekhvR0W4WJlM4NB31oOvASceLjYe4nDlU+gKZZvO1sK6OSY47/2/iWiLrPGu0TTEi1lNfjFb
UtM4+rhPaFs+HD09vmks4skR3UgLquuKXumlqqiunp3/E6YS9wtQSwMEFAACAAgA5ns8RHfX5PYz
AAAANAAAAEMAHABmYXN0L3JlcGFpbnQvbmVnYXRpdmUtdGV4dC1pbmRlbnQtd2l0aC1vdmVyZmxv
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
1KFrxiJGYxl9/m1LxFs0DqfhrXsJobUMP8vLNcg18taoLTnhKQm0D8kO1v0JPK2d+XE6b2wBUO5j
YczTN/iBfADcWMqP1/4moL8Z5uN19E/wJ9Ss6AErHD3++hz9SuKfqXI/n7aUpdE/gHexJBFECpgz
UAQqLFzft0zJKINyGwlSQRlVUUk2phUPzFVAdx7gyB1VeaCrDFhxF+QQiqQMoKvZYhaqvQKs4zbE
xhei6+MZc3MfGtc3eiRzaLHTzhJ9nUGtL0Hmqymwq19hvgEcGovr9RgMCvPr1ipI9ffXgPbX65+M
pkhzt1sEfgFEX43r9gxct8O4vnPegotTouS3hTY5A9pkGBpC32lQaDYbobm+WqHZ6PsuQvPTxNnI
0eu1mz7W5rzYgcL1buD4RSct8ccyltXqDHNMv9Ic/0Oos/9nz32rrJ+eYYi7YUN8/20TanYGmh+H
0XyNBzo/hkqgWJt/jPovUEsDBBQAAgAIAOZ7PESMORchJQAAAE4AAAA7ABwAZmFzdC9yZXBhaW50
L292ZXJmbG93LWZsaXBwZWQtd3JpdGluZy1tb2RlLXRhYmxlLWFjdHVhbC50eHRVVAkAA8A96FLA
PehSdXgLAAEE9QEAAAQUAAAA0yhKLUjMzCtRKEpNLinmUlDQADEULIDQ0MBAwdRAk2gxTS4uAFBL
AwQUAAIACADmezxEanT+b6kAAABoAQAAOQAcAGZhc3QvcmVwYWludC9vdmVyZmxvdy1mbGlwcGVk
LXdyaXRpbmctbW9kZS10YWJsZS1kaWZmLnR4dFVUCQADwD3oUsA96FJ1eAsAAQT1AQAABBQAAADF
jj0LwkAQRPv8ii2Vc90EVCyDaGWnoPWabORg9cLdnh//3iiW9jIDA68YHiICHYLmiyRaszFtjns6
ymnr7Tur7LWlnahwElJ+hmxokgyjpKyWqONkFKVnfzUKN4mdhjt26vteWrxHb/56xktoBY1PKiiP
XhqTdmoPK5xzf1DgxjLrR6CuAavJDFw1WUBdFzD6HkEcLFPh4E0ag+WQqixhXo5/Q/gJhxYvUEsD
BBQAAgAIAOZ7PEQ2kIC/JAAAACYAAAA9ABwAZmFzdC9yZXBhaW50L292ZXJmbG93LWZsaXBwZWQt
d3JpdGluZy1tb2RlLXRhYmxlLWV4cGVjdGVkLnR4dFVUCQADwD3oUsA96FJ1eAsAAQT1AQAABBQA
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
uwmob4bZeB3+DP4EzgrvkETh/S+P4S84+oZI+/O+IjQJf4S6iwQOIVLAnL7EwLBwfa+oFGEKdBty
XAKNylBxCdhqC0RByhKrqxkEDtzocoXafDyCfqZCNJA7CSjHbXCNb0OXhzP6zj40ru7ynsiguU46
Iuoi47W+AenvpVBXnYS+/e9bisv1GEwJ8+uWFCT5aRko1JfrN9YecDWJpbBy4BQA5X6aABsxdrm2
01b2b1sAEu+k+k7oqAk+LSJRrl5hh+thO3jeG2UBbw5/oAX0ZqPPusb4H4FO/hHQ/9Rr/1bcXr/C
DNP/zl8n8U1egW82jO9fRjN9BZqbYTT/JEI6P5qmgQ71P/T8BVBLAwQUAAIACADnezxEmb27lFAA
AACvAAAALwAcAGZhc3QvcmVwYWludC9yZWZsZWN0aW9uLXRhYmxlLWxheW91dC1hY3R1YWwudHh0
VVQJAAPBPehSwT3oUnV4CwABBPUBAAAEFAAAANMoSi1IzMwrUShKTS4p5lJQ0AAxFMwVLBSMFAw1
4QJmQAETBSOEgK6lkYKlgpGBAbIqkKAFWBBJpQVQnbmFCbI6oCagDZh6sRoIF9Tk4gIAUEsDBBQA
AgAIAOd7PEQVP9ijxwAAAOMBAAAtABwAZmFzdC9yZXBhaW50L3JlZmxlY3Rpb24tdGFibGUtbGF5
b3V0LWRpZmYudHh0VVQJAAPBPehSwT3oUnV4CwABBPUBAAAEFAAAAL2NQQuCQBCF7/6KORbrtK1E
2k2iTt0K6jzpCMKW4c5C/fvW0ijqHAw8+HjfPEQEvW+sP7HTKxLS68NOH/i4qaWPpa9tqbdsmRxr
S7fGCwo7wZadt+J0RU50yxeqz11WlgupmzMKHS1jb/D1EjCXE7lKpJT60ywV4sk+RvMc0MRzUCY2
BvI8glFvQxtUFyF0pBDARQIZJNMpmPEnXUCWzTqqBpp2zQ8yD2QGyRt5mv0/9b3y3s1CM31uwMCC
F2Z+6L+fviiEi+5QSwMEFAACAAgA53s8RMMX0lY1AAAAUAAAADEAHABmYXN0L3JlcGFpbnQvcmVm
bGVjdGlvbi10YWJsZS1sYXlvdXQtZXhwZWN0ZWQudHh0VVQJAAPBPehSwT3oUnV4CwABBPUBAAAE
FAAAANMoSi1IzMwrUShKTS4p5lJQ0AAxFHQtjRQsFIwMDBQMNVEELRUsLEyQBYEqzBUsIAo1ubgA
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
zkARyLBwfd8wJQcppNuBICWkUf1Mmf20E9gvRW4F9DAbzEK1VYBs1ARU+x50uT9j7ul94/r+jmQG
DXXSEtGXF9T47mO+kUIt9RLmxr9rIy5XIzAfzK8aUhDYx2WgOF+u3jkbwHUkVtLJgSMAlH/UAdZ4
dbly0072qy1gL2lHLVCTO2iI6xMM8YcikuWy3xoIvdN2QMH8Gs30HQmN/ti2yZuAHb8x2DmazSYd
YPcc2HQB5Lvj9ndCB/U5gJWf4KWGPu+16b/a8G+Kcnwc5Q2gnKDr3xLl5FRu/BIivynS6deE3G9q
05vjSGdg0fenRdtbpsu3KhiTE6zw/rgVgFEQqJ3E+p+a4f+fsma/mzCb/zqkvwv6Tk/pd4b9hvg6
/xyFc3MKnAP916/xQethmmZoVM0/u/8XUEsDBBQAAgAIAOh7PETp3tU2QwAAAJ4AAAAuABwAZmFz
dC9yZXBhaW50L3RyYW5zZm9ybS10YWJsZS1sYXlvdXQtYWN0dWFsLnR4dFVUCQADwz3oUsM96FJ1
eAsAAQT1AQAABBQAAADTKEotSMzMK1EoSk0uKeZSUNAAMRQsFAwNgFjBUBNNyEjBCFXIEogNMNWB
BFFUWiqYW5ggqwNqMlewwNQLN1CTiwsAUEsDBBQAAgAIAOh7PESW72GquwAAALkBAAAsABwAZmFz
dC9yZXBhaW50L3RyYW5zZm9ybS10YWJsZS1sYXlvdXQtZGlmZi50eHRVVAkAA8M96FLDPehSdXgL
AAEE9QEAAAQUAAAAvY6xCsJADIb3PkVG5YzpiWjdiujkpqBzrBEKp5W7HOjbe9WiIJ2FhMDH//EH
EYH2jYsXCbRiZVofdnSQ46bW7ixj7U60FScchBw/mqioEhS9hOg00JmDkpcb11cl9XwN58ZfUPno
BDtB7jepVE5jvWtmjPlPK1ca2b06yxLQjmZg7MjmUJYZDDoZfPosZAZaUikUYPO0YIe/bAKTH7ZI
m/ckW5qy8KULmBfTNvlhyZtD8daxV++vgjTZE1BLAwQUAAIACADoezxE6uvjBToAAABOAAAAMAAc
AGZhc3QvcmVwYWludC90cmFuc2Zvcm0tdGFibGUtbGF5b3V0LWV4cGVjdGVkLnR4dFVUCQADwz3o
UsM96FJ1eAsAAQT1AQAABBQAAADTKEotSMzMK1EoSk0uKeZSUNAAMRQsFCwVzC1MFAw14UIGCobm
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
QjSQWwnIxm1Aje9B5/sj+pw+9F6d3z2RQUOddETU4cVrfffR30ihljoJfeLftRHnqzGYD8ZXLSkI
7OMyUJzPV2+sDeA4Ekth5cARAMpdmgAbvDpf2WEr+68tAMF2VH0ndNAEnxeRKJevsMPlsB08742y
gHc5nsJPdX7q90XXIP8j2Ml/BvtJvfex+Hv5ClNMP63fjmKcvALjbBjjR0YzfQWaq2E0/4UlnYtO
05Aa9X/0/ANQSwMEFAACAAgA6Hs8RKkRcRAlAAAAVwAAADAAHABmYXN0L3JlcGFpbnQvdmVydGlj
YWwtb3ZlcmZsb3ctcGFyZW50LWFjdHVhbC50eHRVVAkAA8M96FLDPehSdXgLAAEE9QEAAAQUAAAA
0yhKLUjMzCtRKEpNLinmUlDQADEUjCxByNDAAIQ1SRTW5OICAFBLAwQUAAIACADoezxEEjpFf6IA
AABbAQAALgAcAGZhc3QvcmVwYWludC92ZXJ0aWNhbC1vdmVyZmxvdy1wYXJlbnQtZGlmZi50eHRV
VAkAA8M96FLEPehSdXgLAAEE9QEAAAQUAAAAvY5BC4JAEIXv/oo5Fus0GhF0W6JO3QryPOkIwqay
O1v279Pw6jV4w3t8MLyHiED3zsWnBDqxMp2LGxXyuDQ62zE2rqKrOOEg5PjTRUWVoOglRKeBag5K
XnpuWqWXeG1KdtiNqXbdG3v20irK0EupUm100MQY869eLjWy+7VaC5inOzB5ugdrE1jN3+DHaSEx
MJFSYXuYlGfZdOtFDkt8VPIFUEsDBBQAAgAIAOh7PEQWDVuKIwAAACkAAAAyABwAZmFzdC9yZXBh
aW50L3ZlcnRpY2FsLW92ZXJmbG93LXBhcmVudC1leHBlY3RlZC50eHRVVAkAA8M96FLDPehSdXgL
AAEE9QEAAAQUAAAA0yhKLUjMzCtRKEpNLinmUlDQADEUjCxByNDAAIQ1uTS5uABQSwMEFAACAAgA
6Hs8RCxbaReABwAA7hkAADYAHABmYXN0L3JlcGFpbnQvdmVydGljYWwtb3ZlcmZsb3ctcGFyZW50
LXByZXR0eS1kaWZmLmh0bWxVVAkAA8Q96FLEPehSdXgLAAEE9QEAAAQUAAAAvVlZb+M2EH7PrxAS
tNkWkWTHdhrbuy66OVCgB4qmaB8LSqIsbihRJanYSdv/3uElS7Jkp+hudzfRwSH5zcw3B7VvM5nT
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
xNkwxI+MZvoKNFfDaP4LSToXnaQhL+r/5vkHUEsDBBQAAgAIAOh7PETcyacfJwAAAFcAAAAuABwA
ZmFzdC9yZXBhaW50L3ZlcnRpY2FsLW92ZXJmbG93LXNhbWUtYWN0dWFsLnR4dFVUCQADxD3oUsQ9
6FJ1eAsAAQT1AQAABBQAAADTKEotSMzMK1EoSk0uKeZSUNAAMRSMLBWMDBUMDQxAWJNEYU0uLgBQ
SwMEFAACAAgA6Hs8RHaMlDiiAAAAVwEAACwAHABmYXN0L3JlcGFpbnQvdmVydGljYWwtb3ZlcmZs
b3ctc2FtZS1kaWZmLnR4dFVUCQADxD3oUsQ96FJ1eAsAAQT1AQAABBQAAAC9jrEKwkAMhvc+RUbl
GtMWEdwO0clNwc7xGqFwtaWX0/r2ttK1q5Cf/HwQviAi0K31sZFAR1amU3mlUu7nWud1iLWv6CJe
OAh5/rRRUSUo9hKi10APDkq9dFw/lV7Sa+3YYzu2h2/fGLgRlKETp1JtdNDEGPMfKzuN7H9OawHz
dAsmT3dgbQKr+Rb68bGQGJiIUyj2UOSQZ9mU9SKHJT5O8gVQSwMEFAACAAgA6Hs8RCATArkmAAAA
KQAAADAAHABmYXN0L3JlcGFpbnQvdmVydGljYWwtb3ZlcmZsb3ctc2FtZS1leHBlY3RlZC50eHRV
VAkAA8Q96FLEPehSdXgLAAEE9QEAAAQUAAAA0yhKLUjMzCtRKEpNLinmUlDQADEUjCwVjAwVDA0M
QFiTS5OLCwBQSwMEFAACAAgA6Hs8RHn1Hgd/BwAA7BkAADQAHABmYXN0L3JlcGFpbnQvdmVydGlj
YWwtb3ZlcmZsb3ctc2FtZS1wcmV0dHktZGlmZi5odG1sVVQJAAPEPehSxD3oUnV4CwABBPUBAAAE
FAAAAL1ZWW/jNhB+z68QErTZFpHkM43tXRfdHCjQA0VTtI8FJVEWN5SoklTsbNv/3uElS7Jkp+ix
xdYSOSS/mfnmoPZtJnO6PnubYZTAT44l8uIMcYHlu8tKpv7NJQwL+ULx+mxJSfF05S2fiSASJ97v
Zx78kXgn/QTHjCNJWLH0ClbglZ6KGE8w9yMmJcuX3rjceQk842R19ueZ2c5uEjPK+NK7GE0Xei54
IBTfkTS18xGKnzacVUXiO9H0Rv3XPMicIBgliXeRJImZS1kh/RTlhL4svZwVTJQotgBzxDcEII9x
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
dGlvbnMtb24tY29tcG9zaXRlZC1sYXllcnMtYWN0dWFsLnR4dFVUBQADQD3oUnV4CwABBPUBAAAE
FAAAAFBLAQIeAxQAAgAIAKJ7PERDOX1ZzwAAALMBAAA/ABgAAAAAAAEAAACkgb83AABjb21wb3Np
dGluZy9yZXBhaW50L2ludmFsaWRhdGlvbnMtb24tY29tcG9zaXRlZC1sYXllcnMtZGlmZi50eHRV
VAUAA0A96FJ1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACACiezxELUAwab0AAAAqAgAAQwAYAAAA
AAABAAAApIEHOQAAY29tcG9zaXRpbmcvcmVwYWludC9pbnZhbGlkYXRpb25zLW9uLWNvbXBvc2l0
ZWQtbGF5ZXJzLWV4cGVjdGVkLnR4dFVUBQADQD3oUnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAI
AKJ7PEQbaxPSxgcAAIAbAABHABgAAAAAAAEAAACkgUE6AABjb21wb3NpdGluZy9yZXBhaW50L2lu
dmFsaWRhdGlvbnMtb24tY29tcG9zaXRlZC1sYXllcnMtcHJldHR5LWRpZmYuaHRtbFVUBQADQD3o
UnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAKJ7PETqfnDMtAAAALEBAAAtABgAAAAAAAEAAACk
gYhCAABjb21wb3NpdGluZy9yZXBhaW50L3Jlc2l6ZS1yZXBhaW50LWFjdHVhbC50eHRVVAUAA0A9
6FJ1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACACiezxE2kR1qrkAAABiAQAAKwAYAAAAAAABAAAA
pIGjQwAAY29tcG9zaXRpbmcvcmVwYWludC9yZXNpemUtcmVwYWludC1kaWZmLnR4dFVUBQADQD3o
UnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAKJ7PES4ku3ltQAAALABAAAvABgAAAAAAAEAAACk
gcFEAABjb21wb3NpdGluZy9yZXBhaW50L3Jlc2l6ZS1yZXBhaW50LWV4cGVjdGVkLnR4dFVUBQAD
QD3oUnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAKJ7PES6XSEStQcAADoaAAAzABgAAAAAAAEA
AACkgd9FAABjb21wb3NpdGluZy9yZXBhaW50L3Jlc2l6ZS1yZXBhaW50LXByZXR0eS1kaWZmLmh0
bWxVVAUAA0A96FJ1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAAC6ezxEAAAAAAAAAAAAAAAACAAY
AAAAAAAAABAA7UEBTgAAZWRpdGluZy9VVAUAA2896FJ1eAsAAQT1AQAABBQAAABQSwECHgMKAAAA
AAC6ezxEAAAAAAAAAAAAAAAAHAAYAAAAAAAAABAA7UFDTgAAZWRpdGluZy91bnN1cHBvcnRlZC1j
b250ZW50L1VUBQADcD3oUnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIALp7PEQLEAkE3gMAAEgR
AAA2ABgAAAAAAAEAAACkgZlOAABlZGl0aW5nL3Vuc3VwcG9ydGVkLWNvbnRlbnQvbGlzdC1kZWxl
dGUtMDAxLWFjdHVhbC50eHRVVAUAA2896FJ1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAC6ezxE
OPfF2wcBAADUAgAANAAYAAAAAAABAAAApIHnUgAAZWRpdGluZy91bnN1cHBvcnRlZC1jb250ZW50
L2xpc3QtZGVsZXRlLTAwMS1kaWZmLnR4dFVUBQADbz3oUnV4CwABBPUBAAAEFAAAAFBLAQIeAxQA
AgAIALp7PEQUN94fAQQAABcSAAA4ABgAAAAAAAEAAACkgVxUAABlZGl0aW5nL3Vuc3VwcG9ydGVk
LWNvbnRlbnQvbGlzdC1kZWxldGUtMDAxLWV4cGVjdGVkLnR4dFVUBQADbz3oUnV4CwABBPUBAAAE
FAAAAFBLAQIeAxQAAgAIALp7PET9XWrj3QcAAIoaAAA8ABgAAAAAAAEAAACkgc9YAABlZGl0aW5n
L3Vuc3VwcG9ydGVkLWNvbnRlbnQvbGlzdC1kZWxldGUtMDAxLXByZXR0eS1kaWZmLmh0bWxVVAUA
A2896FJ1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAC6ezxELlNMh3kDAADGDwAANgAYAAAAAAAB
AAAApIEiYQAAZWRpdGluZy91bnN1cHBvcnRlZC1jb250ZW50L2xpc3QtZGVsZXRlLTAwMy1hY3R1
YWwudHh0VVQFAANvPehSdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAuns8RIb9+g4GAQAA1AIA
ADQAGAAAAAAAAQAAAKSBC2UAAGVkaXRpbmcvdW5zdXBwb3J0ZWQtY29udGVudC9saXN0LWRlbGV0
ZS0wMDMtZGlmZi50eHRVVAUAA2896FJ1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAC6ezxE4Xo8
VJ8DAACVEAAAOAAYAAAAAAABAAAApIF/ZgAAZWRpdGluZy91bnN1cHBvcnRlZC1jb250ZW50L2xp
c3QtZGVsZXRlLTAwMy1leHBlY3RlZC50eHRVVAUAA2896FJ1eAsAAQT1AQAABBQAAABQSwECHgMU
AAIACAC6ezxE8K6twN0HAACKGgAAPAAYAAAAAAABAAAApIGQagAAZWRpdGluZy91bnN1cHBvcnRl
ZC1jb250ZW50L2xpc3QtZGVsZXRlLTAwMy1wcmV0dHktZGlmZi5odG1sVVQFAANvPehSdXgLAAEE
9QEAAAQUAAAAUEsBAh4DFAACAAgAuns8RDqFpgDVAwAAphUAADYAGAAAAAAAAQAAAKSB43IAAGVk
aXRpbmcvdW5zdXBwb3J0ZWQtY29udGVudC9saXN0LXR5cGUtYWZ0ZXItYWN0dWFsLnR4dFVUBQAD
bz3oUnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIALp7PEQElhC8BwEAANQCAAA0ABgAAAAAAAEA
AACkgSh3AABlZGl0aW5nL3Vuc3VwcG9ydGVkLWNvbnRlbnQvbGlzdC10eXBlLWFmdGVyLWRpZmYu
dHh0VVQFAANvPehSdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAuns8RN/7fBP5AwAAdRYAADgA
GAAAAAAAAQAAAKSBnXgAAGVkaXRpbmcvdW5zdXBwb3J0ZWQtY29udGVudC9saXN0LXR5cGUtYWZ0
ZXItZXhwZWN0ZWQudHh0VVQFAANvPehSdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAuns8RKmE
3kjbBwAAihoAADwAGAAAAAAAAQAAAKSBCH0AAGVkaXRpbmcvdW5zdXBwb3J0ZWQtY29udGVudC9s
aXN0LXR5cGUtYWZ0ZXItcHJldHR5LWRpZmYuaHRtbFVUBQADbz3oUnV4CwABBPUBAAAEFAAAAFBL
AQIeAxQAAgAIALp7PES5WwQk2gMAAJYUAAA3ABgAAAAAAAEAAACkgVmFAABlZGl0aW5nL3Vuc3Vw
cG9ydGVkLWNvbnRlbnQvbGlzdC10eXBlLWJlZm9yZS1hY3R1YWwudHh0VVQFAANvPehSdXgLAAEE
9QEAAAQUAAAAUEsBAh4DFAACAAgAuns8RFZOvAVPAQAA8gMAADUAGAAAAAAAAQAAAKSBpIkAAGVk
aXRpbmcvdW5zdXBwb3J0ZWQtY29udGVudC9saXN0LXR5cGUtYmVmb3JlLWRpZmYudHh0VVQFAANv
PehSdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAuns8RF13w5j7AwAAZRUAADkAGAAAAAAAAQAA
AKSBYosAAGVkaXRpbmcvdW5zdXBwb3J0ZWQtY29udGVudC9saXN0LXR5cGUtYmVmb3JlLWV4cGVj
dGVkLnR4dFVUBQADbz3oUnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIALp7PEREmvMCJggAAPUb
AAA9ABgAAAAAAAEAAACkgdCPAABlZGl0aW5nL3Vuc3VwcG9ydGVkLWNvbnRlbnQvbGlzdC10eXBl
LWJlZm9yZS1wcmV0dHktZGlmZi5odG1sVVQFAANvPehSdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAAC
AAgAuns8RFC2BYx7AwAAzREAADcAGAAAAAAAAQAAAKSBbZgAAGVkaXRpbmcvdW5zdXBwb3J0ZWQt
Y29udGVudC90YWJsZS1kZWxldGUtMDAyLWFjdHVhbC50eHRVVAUAA2896FJ1eAsAAQT1AQAABBQA
AABQSwECHgMUAAIACAC6ezxEEUfq4AgBAADWAgAANQAYAAAAAAABAAAApIFZnAAAZWRpdGluZy91
bnN1cHBvcnRlZC1jb250ZW50L3RhYmxlLWRlbGV0ZS0wMDItZGlmZi50eHRVVAUAA2896FJ1eAsA
AQT1AQAABBQAAABQSwECHgMUAAIACAC6ezxERDAaPZ8DAACcEgAAOQAYAAAAAAABAAAApIHQnQAA
ZWRpdGluZy91bnN1cHBvcnRlZC1jb250ZW50L3RhYmxlLWRlbGV0ZS0wMDItZXhwZWN0ZWQudHh0
VVQFAANvPehSdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAuns8RAwIj1zeBwAAixoAAD0AGAAA
AAAAAQAAAKSB4qEAAGVkaXRpbmcvdW5zdXBwb3J0ZWQtY29udGVudC90YWJsZS1kZWxldGUtMDAy
LXByZXR0eS1kaWZmLmh0bWxVVAUAA2896FJ1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAC6ezxE
PY6Fi5YEAAAPJAAANwAYAAAAAAABAAAApIE3qgAAZWRpdGluZy91bnN1cHBvcnRlZC1jb250ZW50
L3RhYmxlLXR5cGUtYWZ0ZXItYWN0dWFsLnR4dFVUBQADbz3oUnV4CwABBPUBAAAEFAAAAFBLAQIe
AxQAAgAIALp7PERHf0xwBgEAANYCAAA1ABgAAAAAAAEAAACkgT6vAABlZGl0aW5nL3Vuc3VwcG9y
dGVkLWNvbnRlbnQvdGFibGUtdHlwZS1hZnRlci1kaWZmLnR4dFVUBQADbz3oUnV4CwABBPUBAAAE
FAAAAFBLAQIeAxQAAgAIALp7PEQuR4QfuQQAAN4kAAA5ABgAAAAAAAEAAACkgbOwAABlZGl0aW5n
L3Vuc3VwcG9ydGVkLWNvbnRlbnQvdGFibGUtdHlwZS1hZnRlci1leHBlY3RlZC50eHRVVAUAA289
6FJ1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAC6ezxE81inKNsHAACLGgAAPQAYAAAAAAABAAAA
pIHftQAAZWRpdGluZy91bnN1cHBvcnRlZC1jb250ZW50L3RhYmxlLXR5cGUtYWZ0ZXItcHJldHR5
LWRpZmYuaHRtbFVUBQADbz3oUnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIALp7PERXq39SlQQA
AN0gAAA4ABgAAAAAAAEAAACkgTG+AABlZGl0aW5nL3Vuc3VwcG9ydGVkLWNvbnRlbnQvdGFibGUt
dHlwZS1iZWZvcmUtYWN0dWFsLnR4dFVUBQADbz3oUnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAI
ALp7PER7ZVaqSgEAAMwDAAA2ABgAAAAAAAEAAACkgTjDAABlZGl0aW5nL3Vuc3VwcG9ydGVkLWNv
bnRlbnQvdGFibGUtdHlwZS1iZWZvcmUtZGlmZi50eHRVVAUAA2896FJ1eAsAAQT1AQAABBQAAABQ
SwECHgMUAAIACAC6ezxEFIP5KbMEAACsIQAAOgAYAAAAAAABAAAApIHyxAAAZWRpdGluZy91bnN1
cHBvcnRlZC1jb250ZW50L3RhYmxlLXR5cGUtYmVmb3JlLWV4cGVjdGVkLnR4dFVUBQADbz3oUnV4
CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIALp7PER21wjpHwgAALYbAAA+ABgAAAAAAAEAAACkgRnK
AABlZGl0aW5nL3Vuc3VwcG9ydGVkLWNvbnRlbnQvdGFibGUtdHlwZS1iZWZvcmUtcHJldHR5LWRp
ZmYuaHRtbFVUBQADcD3oUnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAOh7PEQWqoI9DgYAALBL
AAANABgAAAAAAAEAAACkgbDSAABlcnJvcl9sb2cudHh0VVQFAAPEPehSdXgLAAEE9QEAAAQUAAAA
UEsBAh4DCgAAAAAA5Hs8RAAAAAAAAAAAAAAAAAUAGAAAAAAAAAAQAO1BBdkAAGZhc3QvVVQFAAO8
PehSdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAAwHs8RAAAAAAAAAAAAAAAABAAGAAAAAAAAAAQ
AO1BRNkAAGZhc3QvYm94LXNoYWRvdy9VVAUAA3g96FJ1eAsAAQT1AQAABBQAAABQSwECHgMUAAIA
CADAezxE/i5IaEIAAABlAAAAKQAYAAAAAAABAAAApIGO2QAAZmFzdC9ib3gtc2hhZG93L3NoYWRv
dy1yZXBhaW50LWFjdHVhbC50eHRVVAUAA3c96FJ1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACADA
ezxE/XTRP8IAAAB1AQAAJwAYAAAAAAABAAAApIEz2gAAZmFzdC9ib3gtc2hhZG93L3NoYWRvdy1y
ZXBhaW50LWRpZmYudHh0VVQFAAN3PehSdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAwHs8RBlI
QS87AAAATgAAACsAGAAAAAAAAQAAAKSBVtsAAGZhc3QvYm94LXNoYWRvdy9zaGFkb3ctcmVwYWlu
dC1leHBlY3RlZC50eHRVVAUAA3c96FJ1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACADAezxEsMut
wMsHAACKHAAALwAYAAAAAAABAAAApIH22wAAZmFzdC9ib3gtc2hhZG93L3NoYWRvdy1yZXBhaW50
LXByZXR0eS1kaWZmLmh0bWxVVAUAA3g96FJ1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAADDezxE
AAAAAAAAAAAAAAAACQAYAAAAAAAAABAA7UEq5AAAZmFzdC9jc3MvVVQFAAN+PehSdXgLAAEE9QEA
AAQUAAAAUEsBAh4DFAACAAgAw3s8RNsI00I7AAAAPwAAACkAGAAAAAAAAQAAAKSBbeQAAGZhc3Qv
Y3NzL2NvbXBhcmUtY29udGVudC1zdHlsZS1zdGRlcnIudHh0VVQFAAN+PehSdXgLAAEE9QEAAAQU
AAAAUEsBAh4DCgAAAAAAw3s8RAAAAAAAAAAAAAAAABUAGAAAAAAAAAAQAO1BC+UAAGZhc3QvY3Nz
LWdyaWQtbGF5b3V0L1VUBQADfj3oUnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAMN7PETiH1VP
rgAAAEUBAABDABgAAAAAAAEAAACkgVrlAABmYXN0L2Nzcy1ncmlkLWxheW91dC9ncmlkLWVsZW1l
bnQtY2hhbmdlLWNvbHVtbnMtcmVwYWludC1hY3R1YWwudHh0VVQFAAN+PehSdXgLAAEE9QEAAAQU
AAAAUEsBAh4DFAACAAgAw3s8RITxoiYZAQAAcAIAAEEAGAAAAAAAAQAAAKSBheYAAGZhc3QvY3Nz
LWdyaWQtbGF5b3V0L2dyaWQtZWxlbWVudC1jaGFuZ2UtY29sdW1ucy1yZXBhaW50LWRpZmYudHh0
VVQFAAN+PehSdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAw3s8RG+lSBKlAAAAHAEAAEUAGAAA
AAAAAQAAAKSBGegAAGZhc3QvY3NzLWdyaWQtbGF5b3V0L2dyaWQtZWxlbWVudC1jaGFuZ2UtY29s
dW1ucy1yZXBhaW50LWV4cGVjdGVkLnR4dFVUBQADfj3oUnV4CwABBPUBAAAEFAAAAFBLAQIeAxQA
AgAIAMN7PETeJ1KaBggAAHsbAABJABgAAAAAAAEAAACkgT3pAABmYXN0L2Nzcy1ncmlkLWxheW91
dC9ncmlkLWVsZW1lbnQtY2hhbmdlLWNvbHVtbnMtcmVwYWludC1wcmV0dHktZGlmZi5odG1sVVQF
AAN+PehSdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAw3s8RJE6SBGtAAAARQEAAEAAGAAAAAAA
AQAAAKSBxvEAAGZhc3QvY3NzLWdyaWQtbGF5b3V0L2dyaWQtZWxlbWVudC1jaGFuZ2Utcm93cy1y
ZXBhaW50LWFjdHVhbC50eHRVVAUAA3496FJ1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACADDezxE
R6r0thkBAABqAgAAPgAYAAAAAAABAAAApIHt8gAAZmFzdC9jc3MtZ3JpZC1sYXlvdXQvZ3JpZC1l
bGVtZW50LWNoYW5nZS1yb3dzLXJlcGFpbnQtZGlmZi50eHRVVAUAA3496FJ1eAsAAQT1AQAABBQA
AABQSwECHgMUAAIACADDezxEx3M0eKUAAAAaAQAAQgAYAAAAAAABAAAApIF+9AAAZmFzdC9jc3Mt
Z3JpZC1sYXlvdXQvZ3JpZC1lbGVtZW50LWNoYW5nZS1yb3dzLXJlcGFpbnQtZXhwZWN0ZWQudHh0
VVQFAAN+PehSdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAw3s8RLkg3k8FCAAAeBsAAEYAGAAA
AAAAAQAAAKSBn/UAAGZhc3QvY3NzLWdyaWQtbGF5b3V0L2dyaWQtZWxlbWVudC1jaGFuZ2Utcm93
cy1yZXBhaW50LXByZXR0eS1kaWZmLmh0bWxVVAUAA3496FJ1eAsAAQT1AQAABBQAAABQSwECHgMU
AAIACADDezxE5L/T6qAAAAAgAQAAPwAYAAAAAAABAAAApIEk/gAAZmFzdC9jc3MtZ3JpZC1sYXlv
dXQvZ3JpZC1pdGVtLWNoYW5nZS1jb2x1bW4tcmVwYWludC1hY3R1YWwudHh0VVQFAAN+PehSdXgL
AAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAw3s8RNu79kcMAQAAQgIAAD0AGAAAAAAAAQAAAKSBPf8A
AGZhc3QvY3NzLWdyaWQtbGF5b3V0L2dyaWQtaXRlbS1jaGFuZ2UtY29sdW1uLXJlcGFpbnQtZGlm
Zi50eHRVVAUAA3496FJ1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACADDezxEb9JMx5sAAAD3AAAA
QQAYAAAAAAABAAAApIHAAAEAZmFzdC9jc3MtZ3JpZC1sYXlvdXQvZ3JpZC1pdGVtLWNoYW5nZS1j
b2x1bW4tcmVwYWludC1leHBlY3RlZC50eHRVVAUAA3496FJ1eAsAAQT1AQAABBQAAABQSwECHgMU
AAIACADDezxEPdZ9MfUHAABRGwAARQAYAAAAAAABAAAApIHWAQEAZmFzdC9jc3MtZ3JpZC1sYXlv
dXQvZ3JpZC1pdGVtLWNoYW5nZS1jb2x1bW4tcmVwYWludC1wcmV0dHktZGlmZi5odG1sVVQFAAN+
PehSdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAw3s8RMxhJzGdAAAAIQEAADwAGAAAAAAAAQAA
AKSBSgoBAGZhc3QvY3NzLWdyaWQtbGF5b3V0L2dyaWQtaXRlbS1jaGFuZ2Utcm93LXJlcGFpbnQt
YWN0dWFsLnR4dFVUBQADfj3oUnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAMN7PETVOZryDQEA
AFYCAAA6ABgAAAAAAAEAAACkgV0LAQBmYXN0L2Nzcy1ncmlkLWxheW91dC9ncmlkLWl0ZW0tY2hh
bmdlLXJvdy1yZXBhaW50LWRpZmYudHh0VVQFAAN+PehSdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAAC
AAgAw3s8RARBNMOTAAAA4QAAAD4AGAAAAAAAAQAAAKSB3gwBAGZhc3QvY3NzLWdyaWQtbGF5b3V0
L2dyaWQtaXRlbS1jaGFuZ2Utcm93LXJlcGFpbnQtZXhwZWN0ZWQudHh0VVQFAAN+PehSdXgLAAEE
9QEAAAQUAAAAUEsBAh4DFAACAAgAw3s8RNb+p4EMCAAAxRwAAEIAGAAAAAAAAQAAAKSB6Q0BAGZh
c3QvY3NzLWdyaWQtbGF5b3V0L2dyaWQtaXRlbS1jaGFuZ2Utcm93LXJlcGFpbnQtcHJldHR5LWRp
ZmYuaHRtbFVUBQADfj3oUnV4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAANR7PEQAAAAAAAAAAAAA
AAAMABgAAAAAAAAAEADtQXEWAQBmYXN0L2ZyYW1lcy9VVAUAA6A96FJ1eAsAAQT1AQAABBQAAABQ
SwECHgMUAAIACADUezxE2wjTQjsAAAA/AAAALwAYAAAAAAABAAAApIG3FgEAZmFzdC9mcmFtZXMv
ZnJhbWUtZGlzcGxheS1ub25lLWZvY3VzLXN0ZGVyci50eHRVVAUAA6A96FJ1eAsAAQT1AQAABBQA
AABQSwECHgMKAAAAAADYezxEAAAAAAAAAAAAAAAADAAYAAAAAAAAABAA7UFbFwEAZmFzdC9pbWFn
ZXMvVVQFAAOnPehSdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA2Hs8RIErElJhAAAA3AEAACsA
GAAAAAAAAQAAAKSBoRcBAGZhc3QvaW1hZ2VzL3JlcGFpbnQtc3VicmVjdC1ncmlkLWFjdHVhbC50
eHRVVAUAA6c96FJ1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACADYezxEtUYUjgEBAACBAwAAKQAY
AAAAAAABAAAApIFnGAEAZmFzdC9pbWFnZXMvcmVwYWludC1zdWJyZWN0LWdyaWQtZGlmZi50eHRV
VAUAA6c96FJ1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACADYezxEzfP7U2AAAABhAQAALQAYAAAA
AAABAAAApIHLGQEAZmFzdC9pbWFnZXMvcmVwYWludC1zdWJyZWN0LWdyaWQtZXhwZWN0ZWQudHh0
VVQFAAOnPehSdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA2Hs8RI9rpiKHCAAA2S4AADEAGAAA
AAAAAQAAAKSBkhoBAGZhc3QvaW1hZ2VzL3JlcGFpbnQtc3VicmVjdC1ncmlkLXByZXR0eS1kaWZm
Lmh0bWxVVAUAA6c96FJ1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAADdezxEAAAAAAAAAAAAAAAA
DAAYAAAAAAAAABAA7UGEIwEAZmFzdC9sb2FkZXIvVVQFAAOyPehSdXgLAAEE9QEAAAQUAAAAUEsB
Ah4DFAACAAgA2Hs8RNsI00I7AAAAPwAAAFIAGAAAAAAAAQAAAKSByiMBAGZhc3QvbG9hZGVyL2Rp
c3BsYXktaW1hZ2UtdW5zZXQtY2FuLWJsb2NrLWltYWdlLWFuZC1jYW4tcmVsb2FkLWluLXBsYWNl
LXN0ZGVyci50eHRVVAUAA6g96FJ1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACADZezxE2wjTQjsA
AAA/AAAAUwAYAAAAAAABAAAApIGRJAEAZmFzdC9sb2FkZXIvaW1hZ2VzLWVuYWJsZWQtdW5zZXQt
Y2FuLWJsb2NrLWltYWdlLWFuZC1jYW4tcmVsb2FkLWluLXBsYWNlLXN0ZGVyci50eHRVVAUAA6k9
6FJ1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACADdezxE2wjTQjsAAAA/AAAALQAYAAAAAAABAAAA
pIFZJQEAZmFzdC9sb2FkZXIvcmVsb2FkLXBvbGljeS1kZWxlZ2F0ZS1zdGRlcnIudHh0VVQFAAOy
PehSdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAA43s8RAAAAAAAAAAAAAAAAA0AGAAAAAAAAAAQ
AO1B+yUBAGZhc3QvcmVnaW9ucy9VVAUAA7k96FJ1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAADj
ezxEAAAAAAAAAAAAAAAAFQAYAAAAAAAAABAA7UFCJgEAZmFzdC9yZWdpb25zL3JlcGFpbnQvVVQF
AAO6PehSdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA43s8RLALzpo1AAAAbwAAAEkAGAAAAAAA
AQAAAKSBkSYBAGZhc3QvcmVnaW9ucy9yZXBhaW50L2VsZW1lbnQtaW4tbmFtZWQtZmxvdy1hYnNv
bHV0ZS1mcm9tLWZpeGVkLWFjdHVhbC50eHRVVAUAA7k96FJ1eAsAAQT1AQAABBQAAABQSwECHgMU
AAIACADjezxEx5H/E88AAADYAQAARwAYAAAAAAABAAAApIFJJwEAZmFzdC9yZWdpb25zL3JlcGFp
bnQvZWxlbWVudC1pbi1uYW1lZC1mbG93LWFic29sdXRlLWZyb20tZml4ZWQtZGlmZi50eHRVVAUA
A7k96FJ1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACADjezxE9vS/4TEAAABCAAAASwAYAAAAAAAB
AAAApIGZKAEAZmFzdC9yZWdpb25zL3JlcGFpbnQvZWxlbWVudC1pbi1uYW1lZC1mbG93LWFic29s
dXRlLWZyb20tZml4ZWQtZXhwZWN0ZWQudHh0VVQFAAO5PehSdXgLAAEE9QEAAAQUAAAAUEsBAh4D
FAACAAgA43s8RBlImNrIBwAARhwAAE8AGAAAAAAAAQAAAKSBTykBAGZhc3QvcmVnaW9ucy9yZXBh
aW50L2VsZW1lbnQtaW4tbmFtZWQtZmxvdy1hYnNvbHV0ZS1mcm9tLWZpeGVkLXByZXR0eS1kaWZm
Lmh0bWxVVAUAA7k96FJ1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACADjezxEcUto/jYAAABuAAAA
SQAYAAAAAAABAAAApIGgMQEAZmFzdC9yZWdpb25zL3JlcGFpbnQvZWxlbWVudC1pbi1uYW1lZC1m
bG93LWZpeGVkLWZyb20tYWJzb2x1dGUtYWN0dWFsLnR4dFVUBQADuT3oUnV4CwABBPUBAAAEFAAA
AFBLAQIeAxQAAgAIAON7PEQ7hcWm0AAAANcBAABHABgAAAAAAAEAAACkgVkyAQBmYXN0L3JlZ2lv
bnMvcmVwYWludC9lbGVtZW50LWluLW5hbWVkLWZsb3ctZml4ZWQtZnJvbS1hYnNvbHV0ZS1kaWZm
LnR4dFVUBQADuT3oUnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAON7PET29L/hMQAAAEIAAABL
ABgAAAAAAAEAAACkgaozAQBmYXN0L3JlZ2lvbnMvcmVwYWludC9lbGVtZW50LWluLW5hbWVkLWZs
b3ctZml4ZWQtZnJvbS1hYnNvbHV0ZS1leHBlY3RlZC50eHRVVAUAA7k96FJ1eAsAAQT1AQAABBQA
AABQSwECHgMUAAIACADjezxEsA7D98cHAABFHAAATwAYAAAAAAABAAAApIFgNAEAZmFzdC9yZWdp
b25zL3JlcGFpbnQvZWxlbWVudC1pbi1uYW1lZC1mbG93LWZpeGVkLWZyb20tYWJzb2x1dGUtcHJl
dHR5LWRpZmYuaHRtbFVUBQADuT3oUnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAON7PEQnEGvl
MwAAAG4AAABIABgAAAAAAAEAAACkgbA8AQBmYXN0L3JlZ2lvbnMvcmVwYWludC9lbGVtZW50LWlu
Zmxvdy1maXhlZC1mcm9tLW91dGZsb3ctc3RhdGljLWFjdHVhbC50eHRVVAUAA7k96FJ1eAsAAQT1
AQAABBQAAABQSwECHgMUAAIACADjezxE4oJ+/NEAAADVAQAARgAYAAAAAAABAAAApIFlPQEAZmFz
dC9yZWdpb25zL3JlcGFpbnQvZWxlbWVudC1pbmZsb3ctZml4ZWQtZnJvbS1vdXRmbG93LXN0YXRp
Yy1kaWZmLnR4dFVUBQADuT3oUnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAON7PESJcwWfOAAA
AFkAAABKABgAAAAAAAEAAACkgbY+AQBmYXN0L3JlZ2lvbnMvcmVwYWludC9lbGVtZW50LWluZmxv
dy1maXhlZC1mcm9tLW91dGZsb3ctc3RhdGljLWV4cGVjdGVkLnR4dFVUBQADuT3oUnV4CwABBPUB
AAAEFAAAAFBLAQIeAxQAAgAIAON7PEShCU0t0wcAAOAcAABOABgAAAAAAAEAAACkgXI/AQBmYXN0
L3JlZ2lvbnMvcmVwYWludC9lbGVtZW50LWluZmxvdy1maXhlZC1mcm9tLW91dGZsb3ctc3RhdGlj
LXByZXR0eS1kaWZmLmh0bWxVVAUAA7k96FJ1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACADjezxE
1tFaFjQAAABYAAAASAAYAAAAAAABAAAApIHNRwEAZmFzdC9yZWdpb25zL3JlcGFpbnQvZWxlbWVu
dC1vdXRmbG93LXN0YXRpYy1mcm9tLWluZmxvdy1maXhlZC1hY3R1YWwudHh0VVQFAAO5PehSdXgL
AAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA43s8RJPWLQrMAAAAvgEAAEYAGAAAAAAAAQAAAKSBg0gB
AGZhc3QvcmVnaW9ucy9yZXBhaW50L2VsZW1lbnQtb3V0Zmxvdy1zdGF0aWMtZnJvbS1pbmZsb3ct
Zml4ZWQtZGlmZi50eHRVVAUAA7k96FJ1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACADjezxEiXMF
nzgAAABZAAAASgAYAAAAAAABAAAApIHPSQEAZmFzdC9yZWdpb25zL3JlcGFpbnQvZWxlbWVudC1v
dXRmbG93LXN0YXRpYy1mcm9tLWluZmxvdy1maXhlZC1leHBlY3RlZC50eHRVVAUAA7k96FJ1eAsA
AQT1AQAABBQAAABQSwECHgMUAAIACADjezxEmQgukMsHAABbHAAATgAYAAAAAAABAAAApIGLSgEA
ZmFzdC9yZWdpb25zL3JlcGFpbnQvZWxlbWVudC1vdXRmbG93LXN0YXRpYy1mcm9tLWluZmxvdy1m
aXhlZC1wcmV0dHktZGlmZi5odG1sVVQFAAO5PehSdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA
43s8RAfbVK7XAAAATQIAADwAGAAAAAAAAQAAAKSB3lIBAGZhc3QvcmVnaW9ucy9yZXBhaW50L2lu
dmFsaWQtcmVnaW9uLXJlcGFpbnQtY3Jhc2gtYWN0dWFsLnR4dFVUBQADuT3oUnV4CwABBPUBAAAE
FAAAAFBLAQIeAxQAAgAIAON7PET6amKjDAEAAEEDAAA6ABgAAAAAAAEAAACkgStUAQBmYXN0L3Jl
Z2lvbnMvcmVwYWludC9pbnZhbGlkLXJlZ2lvbi1yZXBhaW50LWNyYXNoLWRpZmYudHh0VVQFAAO5
PehSdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA43s8RP5DfhfJAAAASAEAAD4AGAAAAAAAAQAA
AKSBq1UBAGZhc3QvcmVnaW9ucy9yZXBhaW50L2ludmFsaWQtcmVnaW9uLXJlcGFpbnQtY3Jhc2gt
ZXhwZWN0ZWQudHh0VVQFAAO5PehSdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA43s8RDZQXppE
CAAAPSUAAEIAGAAAAAAAAQAAAKSB7FYBAGZhc3QvcmVnaW9ucy9yZXBhaW50L2ludmFsaWQtcmVn
aW9uLXJlcGFpbnQtY3Jhc2gtcHJldHR5LWRpZmYuaHRtbFVUBQADuj3oUnV4CwABBPUBAAAEFAAA
AFBLAQIeAxQAAgAIAON7PES4Y/CZVQAAALQAAABGABgAAAAAAAEAAACkgaxfAQBmYXN0L3JlZ2lv
bnMvcmVwYWludC9yZXBhaW50LWVsZW1lbnQtaW5zaWRlLXJlbGF0aXZlLXJlZ2lvbi1hY3R1YWwu
dHh0VVQFAAO6PehSdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA43s8ROdfrczaAAAAAAIAAEQA
GAAAAAAAAQAAAKSBgWABAGZhc3QvcmVnaW9ucy9yZXBhaW50L3JlcGFpbnQtZWxlbWVudC1pbnNp
ZGUtcmVsYXRpdmUtcmVnaW9uLWRpZmYudHh0VVQFAAO6PehSdXgLAAEE9QEAAAQUAAAAUEsBAh4D
FAACAAgA43s8RJXXFkBTAAAAcwAAAEgAGAAAAAAAAQAAAKSB2WEBAGZhc3QvcmVnaW9ucy9yZXBh
aW50L3JlcGFpbnQtZWxlbWVudC1pbnNpZGUtcmVsYXRpdmUtcmVnaW9uLWV4cGVjdGVkLnR4dFVU
BQADuj3oUnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAON7PETZM4R74gcAACAeAABMABgAAAAA
AAEAAACkga5iAQBmYXN0L3JlZ2lvbnMvcmVwYWludC9yZXBhaW50LWVsZW1lbnQtaW5zaWRlLXJl
bGF0aXZlLXJlZ2lvbi1wcmV0dHktZGlmZi5odG1sVVQFAAO6PehSdXgLAAEE9QEAAAQUAAAAUEsB
Ah4DFAACAAgA43s8RBR4Ev+rAQAAngMAADgAGAAAAAAAAQAAAKSBFmsBAGZhc3QvcmVnaW9ucy9y
ZXBhaW50L3JlcGFpbnQtcmVnaW9ucy1vdmVyZmxvdy1hY3R1YWwudHh0VVQFAAO6PehSdXgLAAEE
9QEAAAQUAAAAUEsBAh4DFAACAAgA43s8RAKs1yQVAQAA8gIAADYAGAAAAAAAAQAAAKSBM20BAGZh
c3QvcmVnaW9ucy9yZXBhaW50L3JlcGFpbnQtcmVnaW9ucy1vdmVyZmxvdy1kaWZmLnR4dFVUBQAD
uj3oUnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAON7PESyFU31kQEAANoCAAA6ABgAAAAAAAEA
AACkgbhuAQBmYXN0L3JlZ2lvbnMvcmVwYWludC9yZXBhaW50LXJlZ2lvbnMtb3ZlcmZsb3ctZXhw
ZWN0ZWQudHh0VVQFAAO6PehSdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA43s8RJy3bMVfCAAA
kCUAAD4AGAAAAAAAAQAAAKSBvXABAGZhc3QvcmVnaW9ucy9yZXBhaW50L3JlcGFpbnQtcmVnaW9u
cy1vdmVyZmxvdy1wcmV0dHktZGlmZi5odG1sVVQFAAO6PehSdXgLAAEE9QEAAAQUAAAAUEsBAh4D
CgAAAAAA6Hs8RAAAAAAAAAAAAAAAAA0AGAAAAAAAAAAQAO1BlHkBAGZhc3QvcmVwYWludC9VVAUA
A8Q96FJ1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACADkezxEDTCv+tsAAAAkAQAATQAYAAAAAAAB
AAAApIHbeQEAZmFzdC9yZXBhaW50L2JhY2tncm91bmQtc2hvcnRoYW5kLXdpdGgtZ3JhZGllbnQt
YW5kLWhlaWdodC1jaGFuZ2VzLWFjdHVhbC50eHRVVAUAA7w96FJ1eAsAAQT1AQAABBQAAABQSwEC
HgMUAAIACADkezxEE46TKSUBAAAyAgAASwAYAAAAAAABAAAApIE9ewEAZmFzdC9yZXBhaW50L2Jh
Y2tncm91bmQtc2hvcnRoYW5kLXdpdGgtZ3JhZGllbnQtYW5kLWhlaWdodC1jaGFuZ2VzLWRpZmYu
dHh0VVQFAAO8PehSdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA5Hs8RP6fmPvUAAAAHAEAAE8A
GAAAAAAAAQAAAKSB53wBAGZhc3QvcmVwYWludC9iYWNrZ3JvdW5kLXNob3J0aGFuZC13aXRoLWdy
YWRpZW50LWFuZC1oZWlnaHQtY2hhbmdlcy1leHBlY3RlZC50eHRVVAUAA7w96FJ1eAsAAQT1AQAA
BBQAAABQSwECHgMUAAIACADkezxE3v3gb0sIAABsHAAAUwAYAAAAAAABAAAApIFEfgEAZmFzdC9y
ZXBhaW50L2JhY2tncm91bmQtc2hvcnRoYW5kLXdpdGgtZ3JhZGllbnQtYW5kLWhlaWdodC1jaGFu
Z2VzLXByZXR0eS1kaWZmLmh0bWxVVAUAA7w96FJ1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACADl
ezxEqwAtvCcAAABaAAAANAAYAAAAAAABAAAApIEchwEAZmFzdC9yZXBhaW50L2hvcml6b250YWwt
YnQtb3ZlcmZsb3ctY2hpbGQtYWN0dWFsLnR4dFVUBQADvj3oUnV4CwABBPUBAAAEFAAAAFBLAQIe
AxQAAgAIAOV7PETbIkl2pwAAAGYBAAAyABgAAAAAAAEAAACkgbGHAQBmYXN0L3JlcGFpbnQvaG9y
aXpvbnRhbC1idC1vdmVyZmxvdy1jaGlsZC1kaWZmLnR4dFVUBQADvj3oUnV4CwABBPUBAAAEFAAA
AFBLAQIeAxQAAgAIAOV7PEQSJvyPJQAAACoAAAA2ABgAAAAAAAEAAACkgcSIAQBmYXN0L3JlcGFp
bnQvaG9yaXpvbnRhbC1idC1vdmVyZmxvdy1jaGlsZC1leHBlY3RlZC50eHRVVAUAA7496FJ1eAsA
AQT1AQAABBQAAABQSwECHgMUAAIACADlezxEK6N6+YcHAAD1GQAAOgAYAAAAAAABAAAApIFZiQEA
ZmFzdC9yZXBhaW50L2hvcml6b250YWwtYnQtb3ZlcmZsb3ctY2hpbGQtcHJldHR5LWRpZmYuaHRt
bFVUBQADvj3oUnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAOV7PESpEXEQJQAAAFcAAAA1ABgA
AAAAAAEAAACkgVSRAQBmYXN0L3JlcGFpbnQvaG9yaXpvbnRhbC1idC1vdmVyZmxvdy1wYXJlbnQt
YWN0dWFsLnR4dFVUBQADvj3oUnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAOV7PER0KOVopgAA
AGUBAAAzABgAAAAAAAEAAACkgeiRAQBmYXN0L3JlcGFpbnQvaG9yaXpvbnRhbC1idC1vdmVyZmxv
dy1wYXJlbnQtZGlmZi50eHRVVAUAA7496FJ1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACADlezxE
Fg1biiMAAAApAAAANwAYAAAAAAABAAAApIH7kgEAZmFzdC9yZXBhaW50L2hvcml6b250YWwtYnQt
b3ZlcmZsb3ctcGFyZW50LWV4cGVjdGVkLnR4dFVUBQADvj3oUnV4CwABBPUBAAAEFAAAAFBLAQIe
AxQAAgAIAOV7PETtP0XKhwcAAPMZAAA7ABgAAAAAAAEAAACkgY+TAQBmYXN0L3JlcGFpbnQvaG9y
aXpvbnRhbC1idC1vdmVyZmxvdy1wYXJlbnQtcHJldHR5LWRpZmYuaHRtbFVUBQADvj3oUnV4CwAB
BPUBAAAEFAAAAFBLAQIeAxQAAgAIAOV7PETcyacfJwAAAFcAAAAzABgAAAAAAAEAAACkgYubAQBm
YXN0L3JlcGFpbnQvaG9yaXpvbnRhbC1idC1vdmVyZmxvdy1zYW1lLWFjdHVhbC50eHRVVAUAA749
6FJ1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACADlezxEqDrL6qYAAABhAQAAMQAYAAAAAAABAAAA
pIEfnAEAZmFzdC9yZXBhaW50L2hvcml6b250YWwtYnQtb3ZlcmZsb3ctc2FtZS1kaWZmLnR4dFVU
BQADvj3oUnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAOV7PEQgEwK5JgAAACkAAAA1ABgAAAAA
AAEAAACkgTCdAQBmYXN0L3JlcGFpbnQvaG9yaXpvbnRhbC1idC1vdmVyZmxvdy1zYW1lLWV4cGVj
dGVkLnR4dFVUBQADvj3oUnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAOV7PERNL+KriQcAAPEZ
AAA5ABgAAAAAAAEAAACkgcWdAQBmYXN0L3JlcGFpbnQvaG9yaXpvbnRhbC1idC1vdmVyZmxvdy1z
YW1lLXByZXR0eS1kaWZmLmh0bWxVVAUAA7496FJ1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACADm
ezxEhUJWvjUAAABgAAAAQQAYAAAAAAABAAAApIHBpQEAZmFzdC9yZXBhaW50L25lZ2F0aXZlLXRl
eHQtaW5kZW50LXdpdGgtb3ZlcmZsb3ctaGlkZGVuLWFjdHVhbC50eHRVVAUAA7896FJ1eAsAAQT1
AQAABBQAAABQSwECHgMUAAIACADmezxEjvuX1boAAACHAQAAPwAYAAAAAAABAAAApIFxpgEAZmFz
dC9yZXBhaW50L25lZ2F0aXZlLXRleHQtaW5kZW50LXdpdGgtb3ZlcmZsb3ctaGlkZGVuLWRpZmYu
dHh0VVQFAAO/PehSdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA5ns8RHfX5PYzAAAANAAAAEMA
GAAAAAAAAQAAAKSBpKcBAGZhc3QvcmVwYWludC9uZWdhdGl2ZS10ZXh0LWluZGVudC13aXRoLW92
ZXJmbG93LWhpZGRlbi1leHBlY3RlZC50eHRVVAUAA7896FJ1eAsAAQT1AQAABBQAAABQSwECHgMU
AAIACADmezxE8CwLhaAHAACUGgAARwAYAAAAAAABAAAApIFUqAEAZmFzdC9yZXBhaW50L25lZ2F0
aXZlLXRleHQtaW5kZW50LXdpdGgtb3ZlcmZsb3ctaGlkZGVuLXByZXR0eS1kaWZmLmh0bWxVVAUA
A8A96FJ1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACADmezxEjDkXISUAAABOAAAAOwAYAAAAAAAB
AAAApIF1sAEAZmFzdC9yZXBhaW50L292ZXJmbG93LWZsaXBwZWQtd3JpdGluZy1tb2RlLXRhYmxl
LWFjdHVhbC50eHRVVAUAA8A96FJ1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACADmezxEanT+b6kA
AABoAQAAOQAYAAAAAAABAAAApIEPsQEAZmFzdC9yZXBhaW50L292ZXJmbG93LWZsaXBwZWQtd3Jp
dGluZy1tb2RlLXRhYmxlLWRpZmYudHh0VVQFAAPAPehSdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAAC
AAgA5ns8RDaQgL8kAAAAJgAAAD0AGAAAAAAAAQAAAKSBK7IBAGZhc3QvcmVwYWludC9vdmVyZmxv
dy1mbGlwcGVkLXdyaXRpbmctbW9kZS10YWJsZS1leHBlY3RlZC50eHRVVAUAA8A96FJ1eAsAAQT1
AQAABBQAAABQSwECHgMUAAIACADmezxEBWtYrIgHAADwGQAAQQAYAAAAAAABAAAApIHGsgEAZmFz
dC9yZXBhaW50L292ZXJmbG93LWZsaXBwZWQtd3JpdGluZy1tb2RlLXRhYmxlLXByZXR0eS1kaWZm
Lmh0bWxVVAUAA8A96FJ1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACADnezxEmb27lFAAAACvAAAA
LwAYAAAAAAABAAAApIHJugEAZmFzdC9yZXBhaW50L3JlZmxlY3Rpb24tdGFibGUtbGF5b3V0LWFj
dHVhbC50eHRVVAUAA8E96FJ1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACADnezxEFT/Yo8cAAADj
AQAALQAYAAAAAAABAAAApIGCuwEAZmFzdC9yZXBhaW50L3JlZmxlY3Rpb24tdGFibGUtbGF5b3V0
LWRpZmYudHh0VVQFAAPBPehSdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA53s8RMMX0lY1AAAA
UAAAADEAGAAAAAAAAQAAAKSBsLwBAGZhc3QvcmVwYWludC9yZWZsZWN0aW9uLXRhYmxlLWxheW91
dC1leHBlY3RlZC50eHRVVAUAA8E96FJ1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACADnezxEBXLm
BuYHAAB+HwAANQAYAAAAAAABAAAApIFQvQEAZmFzdC9yZXBhaW50L3JlZmxlY3Rpb24tdGFibGUt
bGF5b3V0LXByZXR0eS1kaWZmLmh0bWxVVAUAA8E96FJ1eAsAAQT1AQAABBQAAABQSwECHgMUAAIA
CADoezxE6d7VNkMAAACeAAAALgAYAAAAAAABAAAApIGlxQEAZmFzdC9yZXBhaW50L3RyYW5zZm9y
bS10YWJsZS1sYXlvdXQtYWN0dWFsLnR4dFVUBQADwz3oUnV4CwABBPUBAAAEFAAAAFBLAQIeAxQA
AgAIAOh7PESW72GquwAAALkBAAAsABgAAAAAAAEAAACkgVDGAQBmYXN0L3JlcGFpbnQvdHJhbnNm
b3JtLXRhYmxlLWxheW91dC1kaWZmLnR4dFVUBQADwz3oUnV4CwABBPUBAAAEFAAAAFBLAQIeAxQA
AgAIAOh7PETq6+MFOgAAAE4AAAAwABgAAAAAAAEAAACkgXHHAQBmYXN0L3JlcGFpbnQvdHJhbnNm
b3JtLXRhYmxlLWxheW91dC1leHBlY3RlZC50eHRVVAUAA8M96FJ1eAsAAQT1AQAABBQAAABQSwEC
HgMUAAIACADoezxEn3hmVukHAABMHgAANAAYAAAAAAABAAAApIEVyAEAZmFzdC9yZXBhaW50L3Ry
YW5zZm9ybS10YWJsZS1sYXlvdXQtcHJldHR5LWRpZmYuaHRtbFVUBQADwz3oUnV4CwABBPUBAAAE
FAAAAFBLAQIeAxQAAgAIAOh7PESKHP/0JwAAAFoAAAAvABgAAAAAAAEAAACkgWzQAQBmYXN0L3Jl
cGFpbnQvdmVydGljYWwtb3ZlcmZsb3ctY2hpbGQtYWN0dWFsLnR4dFVUBQADwz3oUnV4CwABBPUB
AAAEFAAAAFBLAQIeAxQAAgAIAOh7PERXBNqNogAAAFwBAAAtABgAAAAAAAEAAACkgfzQAQBmYXN0
L3JlcGFpbnQvdmVydGljYWwtb3ZlcmZsb3ctY2hpbGQtZGlmZi50eHRVVAUAA8M96FJ1eAsAAQT1
AQAABBQAAABQSwECHgMUAAIACADoezxE8oLweSUAAAAqAAAAMQAYAAAAAAABAAAApIEF0gEAZmFz
dC9yZXBhaW50L3ZlcnRpY2FsLW92ZXJmbG93LWNoaWxkLWV4cGVjdGVkLnR4dFVUBQADwz3oUnV4
CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAOh7PEQNIL+gfwcAAPAZAAA1ABgAAAAAAAEAAACkgZXS
AQBmYXN0L3JlcGFpbnQvdmVydGljYWwtb3ZlcmZsb3ctY2hpbGQtcHJldHR5LWRpZmYuaHRtbFVU
BQADwz3oUnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAOh7PESpEXEQJQAAAFcAAAAwABgAAAAA
AAEAAACkgYPaAQBmYXN0L3JlcGFpbnQvdmVydGljYWwtb3ZlcmZsb3ctcGFyZW50LWFjdHVhbC50
eHRVVAUAA8M96FJ1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACADoezxEEjpFf6IAAABbAQAALgAY
AAAAAAABAAAApIES2wEAZmFzdC9yZXBhaW50L3ZlcnRpY2FsLW92ZXJmbG93LXBhcmVudC1kaWZm
LnR4dFVUBQADwz3oUnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAOh7PEQWDVuKIwAAACkAAAAy
ABgAAAAAAAEAAACkgRzcAQBmYXN0L3JlcGFpbnQvdmVydGljYWwtb3ZlcmZsb3ctcGFyZW50LWV4
cGVjdGVkLnR4dFVUBQADwz3oUnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAOh7PEQsW2kXgAcA
AO4ZAAA2ABgAAAAAAAEAAACkgavcAQBmYXN0L3JlcGFpbnQvdmVydGljYWwtb3ZlcmZsb3ctcGFy
ZW50LXByZXR0eS1kaWZmLmh0bWxVVAUAA8Q96FJ1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACADo
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
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>223739</attachid>
            <date>2014-02-10 13:49:04 -0800</date>
            <delta_ts>2014-02-10 16:26:46 -0800</delta_ts>
            <desc>patch</desc>
            <filename>memcachesession.08.diff</filename>
            <type>text/plain</type>
            <size>23592</size>
            <attacher name="Martin Hock">mhock</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCAwMGYxYmYyLi5kNWFhZjNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzkg
QEAKKzIwMTQtMDItMTAgIE1hcnRpbiBIb2NrICA8bWhvY2tAYXBwbGUuY29tPgorCisgICAgICAg
IEFkZCBzdXBwb3J0IGZvciBzZXNzaW9ucyB0byBNZW1vcnlDYWNoZS4KKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyNzc5NAorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogbG9hZGVyL2NhY2hlL0NhY2hlZFJl
c291cmNlTG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hlZFJlc291cmNlTG9hZGVy
OjpyZXF1ZXN0VXNlckNTU1N0eWxlU2hlZXQpOgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkUmVz
b3VyY2VMb2FkZXI6OnJlcXVlc3RSZXNvdXJjZSk6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRS
ZXNvdXJjZUxvYWRlcjo6cmV2YWxpZGF0ZVJlc291cmNlKToKKyAgICAgICAgKFdlYkNvcmU6OkNh
Y2hlZFJlc291cmNlTG9hZGVyOjpsb2FkUmVzb3VyY2UpOgorICAgICAgICAqIGxvYWRlci9jYWNo
ZS9NZW1vcnlDYWNoZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpjYWNoZVN0cmluZyk6CisgICAg
ICAgIChXZWJDb3JlOjpNZW1vcnlDYWNoZTo6YWRkKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lbW9y
eUNhY2hlOjpyZXZhbGlkYXRpb25TdWNjZWVkZWQpOgorICAgICAgICAoV2ViQ29yZTo6TWVtb3J5
Q2FjaGU6OnJlc291cmNlRm9yUmVxdWVzdCk6CisgICAgICAgIChXZWJDb3JlOjpNZW1vcnlDYWNo
ZTo6YWRkSW1hZ2VUb0NhY2hlKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lbW9yeUNhY2hlOjpyZW1v
dmVJbWFnZUZyb21DYWNoZSk6CisgICAgICAgIChXZWJDb3JlOjpNZW1vcnlDYWNoZTo6ZXZpY3Qp
OgorICAgICAgICAoV2ViQ29yZTo6TWVtb3J5Q2FjaGU6OnJlbW92ZVVybEZyb21DYWNoZSk6Cisg
ICAgICAgICogbG9hZGVyL2NhY2hlL01lbW9yeUNhY2hlLmg6CisgICAgICAgICogcGFnZS9QYWdl
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2U6OlBhZ2UpOgorICAgICAgICAqIHBhZ2UvUGFn
ZS5oOgorICAgICAgICAoV2ViQ29yZTo6UGFnZTo6c2Vzc2lvbklEKToKKyAgICAgICAgKFdlYkNv
cmU6OlBhZ2U6OnNldFNlc3Npb25JRCk6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9OZXR3
b3JraW5nQ29udGV4dC5oOgorICAgICAgICAoV2ViQ29yZTo6TmV0d29ya2luZ0NvbnRleHQ6OnNl
c3Npb25JRCk6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZVJlcXVlc3RCYXNl
Lmg6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3RCYXNlOjpzZXNzaW9uSUQpOgor
ICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0QmFzZTo6c2V0U2Vzc2lvbklEKToKKyAg
ICAgICAgKFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdEJhc2U6OlJlc291cmNlUmVxdWVzdEJhc2Up
OgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvY2YvUmVzb3VyY2VSZXF1ZXN0Lmg6CisgICAg
ICAgIChXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3Q6OlJlc291cmNlUmVxdWVzdCk6CisKIDIwMTQt
MDItMTAgIFJvZ2VyIEZvbmcgIDxyb2dlcl9mb25nQGFwcGxlLmNvbT4KIAogICAgICAgICBbV2lu
ZG93c10gVW5yZXZpZXdlZCB0ZXN0IGZpeC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZUxvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VMb2FkZXIuY3BwCmluZGV4IDExZjE4YTguLmY3ZWViZGUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZUxv
YWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNl
TG9hZGVyLmNwcApAQCAtNDgsNiArNDgsNyBAQAogI2luY2x1ZGUgIkxvYWRlclN0cmF0ZWd5Lmgi
CiAjaW5jbHVkZSAiTG9nZ2luZy5oIgogI2luY2x1ZGUgIk1lbW9yeUNhY2hlLmgiCisjaW5jbHVk
ZSAiUGFnZS5oIgogI2luY2x1ZGUgIlBpbmdMb2FkZXIuaCIKICNpbmNsdWRlICJQbGF0Zm9ybVN0
cmF0ZWdpZXMuaCIKICNpbmNsdWRlICJSZW5kZXJFbGVtZW50LmgiCkBAIC0xOTcsNiArMTk4LDcg
QEAgQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkQ1NTU3R5bGVTaGVldD4gQ2FjaGVkUmVzb3Vy
Y2VMb2FkZXI6OnJlcXVlc3RVc2VyQ1NTU3QKIAogICAgIENhY2hlZFJlc291cmNlSGFuZGxlPENh
Y2hlZENTU1N0eWxlU2hlZXQ+IHVzZXJTaGVldCA9IG5ldyBDYWNoZWRDU1NTdHlsZVNoZWV0KHJl
cXVlc3QucmVzb3VyY2VSZXF1ZXN0KCksIHJlcXVlc3QuY2hhcnNldCgpKTsKIAorICAgIHVzZXJT
aGVldC0+cmVzb3VyY2VSZXF1ZXN0KCkuc2V0U2Vzc2lvbklEKGZyYW1lKCktPnBhZ2UoKS0+c2Vz
c2lvbklEKCkpOwogICAgIG1lbW9yeUNhY2hlKCktPmFkZCh1c2VyU2hlZXQuZ2V0KCkpOwogICAg
IC8vIEZJWE1FOiBsb2FkUmVzb3VyY2UgY2FsbHMgc2V0T3duaW5nQ2FjaGVkUmVzb3VyY2VMb2Fk
ZXIoKSBpZiB0aGUgcmVzb3VyY2UgY291bGRuJ3QgYmUgYWRkZWQgdG8gY2FjaGUuIERvZXMgdGhp
cyBmdW5jdGlvbiBuZWVkIHRvIGNhbGwgaXQsIHRvbz8KIApAQCAtNDI3LDYgKzQyOSw4IEBAIENh
Y2hlZFJlc291cmNlSGFuZGxlPENhY2hlZFJlc291cmNlPiBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6
cmVxdWVzdFJlc291cmNlKENhY2hlCiAgICAgaWYgKGRvY3VtZW50KCkpCiAgICAgICAgIHJlcXVl
c3QubXV0YWJsZVJlc291cmNlUmVxdWVzdCgpLnNldENhY2hlUGFydGl0aW9uKGRvY3VtZW50KCkt
PnRvcE9yaWdpbigpLT5jYWNoZVBhcnRpdGlvbigpKTsKICNlbmRpZgorICAgIGlmIChGcmFtZSog
ZiA9IGZyYW1lKCkpCisgICAgICAgIHJlcXVlc3QubXV0YWJsZVJlc291cmNlUmVxdWVzdCgpLnNl
dFNlc3Npb25JRChmLT5wYWdlKCktPnNlc3Npb25JRCgpKTsKIAogICAgIHJlc291cmNlID0gbWVt
b3J5Q2FjaGUoKS0+cmVzb3VyY2VGb3JSZXF1ZXN0KHJlcXVlc3QucmVzb3VyY2VSZXF1ZXN0KCkp
OwogCkBAIC00ODgsNiArNDkyLDcgQEAgQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkUmVzb3Vy
Y2U+IENhY2hlZFJlc291cmNlTG9hZGVyOjpyZXZhbGlkYXRlUmVzb3VyY2UoY28KICAgICBMT0co
UmVzb3VyY2VMb2FkaW5nLCAiUmVzb3VyY2UgJXAgY3JlYXRlZCB0byByZXZhbGlkYXRlICVwIiwg
bmV3UmVzb3VyY2UuZ2V0KCksIHJlc291cmNlKTsKICAgICBuZXdSZXNvdXJjZS0+c2V0UmVzb3Vy
Y2VUb1JldmFsaWRhdGUocmVzb3VyY2UpOwogICAgIAorICAgIG5ld1Jlc291cmNlLT5yZXNvdXJj
ZVJlcXVlc3QoKS5zZXRTZXNzaW9uSUQoZnJhbWUoKS0+cGFnZSgpLT5zZXNzaW9uSUQoKSk7CiAg
ICAgbWVtb3J5Q2FjaGUoKS0+cmVtb3ZlKHJlc291cmNlKTsKICAgICBtZW1vcnlDYWNoZSgpLT5h
ZGQobmV3UmVzb3VyY2UuZ2V0KCkpOwogI2lmIEVOQUJMRShSRVNPVVJDRV9USU1JTkcpCkBAIC01
MDYsNiArNTExLDggQEAgQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkUmVzb3VyY2U+IENhY2hl
ZFJlc291cmNlTG9hZGVyOjpsb2FkUmVzb3VyY2UoQ2FjaGVkUmUKIAogICAgIENhY2hlZFJlc291
cmNlSGFuZGxlPENhY2hlZFJlc291cmNlPiByZXNvdXJjZSA9IGNyZWF0ZVJlc291cmNlKHR5cGUs
IHJlcXVlc3QubXV0YWJsZVJlc291cmNlUmVxdWVzdCgpLCBjaGFyc2V0KTsKIAorICAgIGlmIChm
cmFtZSgpKQorICAgICAgICByZXNvdXJjZS0+cmVzb3VyY2VSZXF1ZXN0KCkuc2V0U2Vzc2lvbklE
KGZyYW1lKCktPnBhZ2UoKS0+c2Vzc2lvbklEKCkpOwogICAgIGlmICghbWVtb3J5Q2FjaGUoKS0+
YWRkKHJlc291cmNlLmdldCgpKSkKICAgICAgICAgcmVzb3VyY2UtPnNldE93bmluZ0NhY2hlZFJl
c291cmNlTG9hZGVyKHRoaXMpOwogI2lmIEVOQUJMRShSRVNPVVJDRV9USU1JTkcpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvTWVtb3J5Q2FjaGUuY3BwIGIvU291cmNl
L1dlYkNvcmUvbG9hZGVyL2NhY2hlL01lbW9yeUNhY2hlLmNwcAppbmRleCAwMWFkNWI1Li5mNGUw
OGJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvTWVtb3J5Q2FjaGUu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9NZW1vcnlDYWNoZS5jcHAKQEAg
LTU5LDYgKzU5LDEzIEBAIHN0YXRpYyBjb25zdCBkb3VibGUgY01pbkRlbGF5QmVmb3JlTGl2ZURl
Y29kZWRQcnVuZSA9IDE7IC8vIFNlY29uZHMuCiBzdGF0aWMgY29uc3QgZmxvYXQgY1RhcmdldFBy
dW5lUGVyY2VudGFnZSA9IC45NWY7IC8vIFBlcmNlbnRhZ2Ugb2YgY2FwYWNpdHkgdG93YXJkIHdo
aWNoIHdlIHBydW5lLCB0byBhdm9pZCBpbW1lZGlhdGVseSBwcnVuaW5nIGFnYWluLgogc3RhdGlj
IGNvbnN0IGRvdWJsZSBjRGVmYXVsdERlY29kZWREYXRhRGVsZXRpb25JbnRlcnZhbCA9IDA7CiAK
K3N0YXRpYyBTdHJpbmcgY2FjaGVTdHJpbmcoVVJMIHVybCwgdWludDY0X3Qgc2Vzc2lvbklEKQor
eworICAgIGlmIChzZXNzaW9uSUQpCisgICAgICAgIHJldHVybiB1cmwuc3RyaW5nKCkgKyAnfCcg
KyBTdHJpbmc6Om51bWJlcihzZXNzaW9uSUQpOworICAgIHJldHVybiB1cmwuc3RyaW5nKCk7Cit9
CisKIE1lbW9yeUNhY2hlKiBtZW1vcnlDYWNoZSgpCiB7CiAgICAgc3RhdGljIE1lbW9yeUNhY2hl
KiBzdGF0aWNDYWNoZSA9IG5ldyBNZW1vcnlDYWNoZTsKQEAgLTEwMSwxNSArMTA4LDE2IEBAIGJv
b2wgTWVtb3J5Q2FjaGU6OmFkZChDYWNoZWRSZXNvdXJjZSogcmVzb3VyY2UpCiAKICAgICBBU1NF
UlQoV1RGOjppc01haW5UaHJlYWQoKSk7CiAKKyAgICBTdHJpbmcga2V5ID0gY2FjaGVTdHJpbmco
cmVzb3VyY2UtPnVybCgpLCByZXNvdXJjZS0+cmVzb3VyY2VSZXF1ZXN0KCkuc2Vzc2lvbklEKCkp
OwogI2lmIEVOQUJMRShDQUNIRV9QQVJUSVRJT05JTkcpCi0gICAgQ2FjaGVkUmVzb3VyY2VJdGVt
KiBvcmlnaW5NYXAgPSBtX3Jlc291cmNlcy5nZXQocmVzb3VyY2UtPnVybCgpKTsKKyAgICBDYWNo
ZWRSZXNvdXJjZUl0ZW0qIG9yaWdpbk1hcCA9IG1fcmVzb3VyY2VzLmdldChrZXkpOwogICAgIGlm
ICghb3JpZ2luTWFwKSB7CiAgICAgICAgIG9yaWdpbk1hcCA9IG5ldyBDYWNoZWRSZXNvdXJjZUl0
ZW07Ci0gICAgICAgIG1fcmVzb3VyY2VzLnNldChyZXNvdXJjZS0+dXJsKCksIGFkb3B0UHRyKG9y
aWdpbk1hcCkpOworICAgICAgICBtX3Jlc291cmNlcy5zZXQoa2V5LCBhZG9wdFB0cihvcmlnaW5N
YXApKTsKICAgICB9CiAgICAgb3JpZ2luTWFwLT5zZXQocmVzb3VyY2UtPmNhY2hlUGFydGl0aW9u
KCksIHJlc291cmNlKTsKICNlbHNlCi0gICAgbV9yZXNvdXJjZXMuc2V0KHJlc291cmNlLT51cmwo
KSwgcmVzb3VyY2UpOworICAgIG1fcmVzb3VyY2VzLnNldChrZXksIHJlc291cmNlKTsKICNlbmRp
ZgogICAgIHJlc291cmNlLT5zZXRJbkNhY2hlKHRydWUpOwogICAgIApAQCAtMTM0LDE3ICsxNDIs
MTggQEAgdm9pZCBNZW1vcnlDYWNoZTo6cmV2YWxpZGF0aW9uU3VjY2VlZGVkKENhY2hlZFJlc291
cmNlKiByZXZhbGlkYXRpbmdSZXNvdXJjZSwgY28KIAogICAgIGV2aWN0KHJldmFsaWRhdGluZ1Jl
c291cmNlKTsKIAorICAgIFN0cmluZyBrZXkgPSBjYWNoZVN0cmluZyhyZXNvdXJjZS0+dXJsKCks
IHJlc291cmNlLT5yZXNvdXJjZVJlcXVlc3QoKS5zZXNzaW9uSUQoKSk7CiAjaWYgRU5BQkxFKENB
Q0hFX1BBUlRJVElPTklORykKLSAgICBBU1NFUlQoIW1fcmVzb3VyY2VzLmdldChyZXNvdXJjZS0+
dXJsKCkpIHx8ICFtX3Jlc291cmNlcy5nZXQocmVzb3VyY2UtPnVybCgpKS0+Z2V0KHJlc291cmNl
LT5jYWNoZVBhcnRpdGlvbigpKSk7Ci0gICAgQ2FjaGVkUmVzb3VyY2VJdGVtKiBvcmlnaW5NYXAg
PSBtX3Jlc291cmNlcy5nZXQocmVzb3VyY2UtPnVybCgpKTsKKyAgICBBU1NFUlQoIW1fcmVzb3Vy
Y2VzLmdldChrZXkpIHx8ICFtX3Jlc291cmNlcy5nZXQoa2V5KS0+Z2V0KHJlc291cmNlLT5jYWNo
ZVBhcnRpdGlvbigpKSk7CisgICAgQ2FjaGVkUmVzb3VyY2VJdGVtKiBvcmlnaW5NYXAgPSBtX3Jl
c291cmNlcy5nZXQoa2V5KTsKICAgICBpZiAoIW9yaWdpbk1hcCkgewogICAgICAgICBvcmlnaW5N
YXAgPSBuZXcgQ2FjaGVkUmVzb3VyY2VJdGVtOwotICAgICAgICBtX3Jlc291cmNlcy5zZXQocmVz
b3VyY2UtPnVybCgpLCBhZG9wdFB0cihvcmlnaW5NYXApKTsKKyAgICAgICAgbV9yZXNvdXJjZXMu
c2V0KGtleSwgYWRvcHRQdHIob3JpZ2luTWFwKSk7CiAgICAgfQogICAgIG9yaWdpbk1hcC0+c2V0
KHJlc291cmNlLT5jYWNoZVBhcnRpdGlvbigpLCByZXNvdXJjZSk7CiAjZWxzZQotICAgIEFTU0VS
VCghbV9yZXNvdXJjZXMuZ2V0KHJlc291cmNlLT51cmwoKSkpOwotICAgIG1fcmVzb3VyY2VzLnNl
dChyZXNvdXJjZS0+dXJsKCksIHJlc291cmNlKTsKKyAgICBBU1NFUlQoIW1fcmVzb3VyY2VzLmdl
dChrZXkpKTsKKyAgICBtX3Jlc291cmNlcy5zZXQoa2V5LCByZXNvdXJjZSk7CiAjZW5kaWYKICAg
ICByZXNvdXJjZS0+c2V0SW5DYWNoZSh0cnVlKTsKICAgICByZXNvdXJjZS0+dXBkYXRlUmVzcG9u
c2VBZnRlclJldmFsaWRhdGlvbihyZXNwb25zZSk7CkBAIC0xNzgsMTMgKzE4NywxNSBAQCBDYWNo
ZWRSZXNvdXJjZSogTWVtb3J5Q2FjaGU6OnJlc291cmNlRm9yUmVxdWVzdChjb25zdCBSZXNvdXJj
ZVJlcXVlc3QmIHJlcXVlc3QpCiB7CiAgICAgQVNTRVJUKFdURjo6aXNNYWluVGhyZWFkKCkpOwog
ICAgIFVSTCB1cmwgPSByZW1vdmVGcmFnbWVudElkZW50aWZpZXJJZk5lZWRlZChyZXF1ZXN0LnVy
bCgpKTsKKyAgICBTdHJpbmcga2V5ID0gY2FjaGVTdHJpbmcodXJsLCByZXF1ZXN0LnNlc3Npb25J
RCgpKTsKKwogI2lmIEVOQUJMRShDQUNIRV9QQVJUSVRJT05JTkcpCi0gICAgQ2FjaGVkUmVzb3Vy
Y2VJdGVtKiBpdGVtID0gbV9yZXNvdXJjZXMuZ2V0KHVybCk7CisgICAgQ2FjaGVkUmVzb3VyY2VJ
dGVtKiBpdGVtID0gbV9yZXNvdXJjZXMuZ2V0KGtleSk7CiAgICAgQ2FjaGVkUmVzb3VyY2UqIHJl
c291cmNlID0gMDsKICAgICBpZiAoaXRlbSkKICAgICAgICAgcmVzb3VyY2UgPSBpdGVtLT5nZXQo
cmVxdWVzdC5jYWNoZVBhcnRpdGlvbigpKTsKICNlbHNlCi0gICAgQ2FjaGVkUmVzb3VyY2UqIHJl
c291cmNlID0gbV9yZXNvdXJjZXMuZ2V0KHVybCk7CisgICAgQ2FjaGVkUmVzb3VyY2UqIHJlc291
cmNlID0gbV9yZXNvdXJjZXMuZ2V0KGtleSk7CiAjZW5kaWYKICAgICBib29sIHdhc1B1cmdlYWJs
ZSA9IE1lbW9yeUNhY2hlOjpzaG91bGRNYWtlUmVzb3VyY2VQdXJnZWFibGVPbkV2aWN0aW9uKCkg
JiYgcmVzb3VyY2UgJiYgcmVzb3VyY2UtPmlzUHVyZ2VhYmxlKCk7CiAgICAgaWYgKHJlc291cmNl
ICYmICFyZXNvdXJjZS0+bWFrZVB1cmdlYWJsZShmYWxzZSkpIHsKQEAgLTIyNCw2ICsyMzUsNyBA
QCBzdGF0aWMgQ2FjaGVkSW1hZ2VDbGllbnQmIGR1bW15Q2FjaGVkSW1hZ2VDbGllbnQoKQogCiBi
b29sIE1lbW9yeUNhY2hlOjphZGRJbWFnZVRvQ2FjaGUoTmF0aXZlSW1hZ2VQdHIgaW1hZ2UsIGNv
bnN0IFVSTCYgdXJsLCBjb25zdCBTdHJpbmcmIGNhY2hlUGFydGl0aW9uKQogeworICAgIHVpbnQ2
NF90IHNlc3Npb25JRCA9IDA7CiAgICAgQVNTRVJUKGltYWdlKTsKICAgICByZW1vdmVJbWFnZUZy
b21DYWNoZSh1cmwsIGNhY2hlUGFydGl0aW9uKTsgLy8gUmVtb3ZlIGNhY2hlIGVudHJ5IGlmIGl0
IGFscmVhZHkgZXhpc3RzLgogCkBAIC0yNDAsMjEgKzI1MiwyNCBAQCBib29sIE1lbW9yeUNhY2hl
OjphZGRJbWFnZVRvQ2FjaGUoTmF0aXZlSW1hZ2VQdHIgaW1hZ2UsIGNvbnN0IFVSTCYgdXJsLCBj
b25zdCBTdAogI2lmIEVOQUJMRShDQUNIRV9QQVJUSVRJT05JTkcpCiAgICAgY2FjaGVkSW1hZ2Ut
PnJlc291cmNlUmVxdWVzdCgpLnNldENhY2hlUGFydGl0aW9uKGNhY2hlUGFydGl0aW9uKTsKICNl
bmRpZgorICAgIGNhY2hlZEltYWdlLT5yZXNvdXJjZVJlcXVlc3QoKS5zZXRTZXNzaW9uSUQoc2Vz
c2lvbklEKTsKICAgICBhZGQoY2FjaGVkSW1hZ2UucmVsZWFzZSgpKTsKICAgICByZXR1cm4gdHJ1
ZTsKIH0KIAogdm9pZCBNZW1vcnlDYWNoZTo6cmVtb3ZlSW1hZ2VGcm9tQ2FjaGUoY29uc3QgVVJM
JiB1cmwsIGNvbnN0IFN0cmluZyYgY2FjaGVQYXJ0aXRpb24pCiB7CisgICAgdWludDY0X3Qgc2Vz
c2lvbklEID0gMDsKKyAgICBTdHJpbmcga2V5ID0gY2FjaGVTdHJpbmcodXJsLCBzZXNzaW9uSUQp
OwogI2lmIEVOQUJMRShDQUNIRV9QQVJUSVRJT05JTkcpCiAgICAgQ2FjaGVkUmVzb3VyY2UqIHJl
c291cmNlOwotICAgIGlmIChDYWNoZWRSZXNvdXJjZUl0ZW0qIGl0ZW0gPSBtX3Jlc291cmNlcy5n
ZXQodXJsKSkKKyAgICBpZiAoQ2FjaGVkUmVzb3VyY2VJdGVtKiBpdGVtID0gbV9yZXNvdXJjZXMu
Z2V0KGtleSkpCiAgICAgICAgIHJlc291cmNlID0gaXRlbS0+Z2V0KFJlc291cmNlUmVxdWVzdDo6
cGFydGl0aW9uTmFtZShjYWNoZVBhcnRpdGlvbikpOwogICAgIGVsc2UKICAgICAgICAgcmVzb3Vy
Y2UgPSBudWxscHRyOwogI2Vsc2UKICAgICBVTlVTRURfUEFSQU0oY2FjaGVQYXJ0aXRpb24pOwot
ICAgIENhY2hlZFJlc291cmNlKiByZXNvdXJjZSA9IG1fcmVzb3VyY2VzLmdldCh1cmwpOworICAg
IENhY2hlZFJlc291cmNlKiByZXNvdXJjZSA9IG1fcmVzb3VyY2VzLmdldChrZXkpOwogI2VuZGlm
CiAgICAgaWYgKCFyZXNvdXJjZSkKICAgICAgICAgcmV0dXJuOwpAQCAtNTIwLDE5ICs1MzUsMjAg
QEAgdm9pZCBNZW1vcnlDYWNoZTo6ZXZpY3QoQ2FjaGVkUmVzb3VyY2UqIHJlc291cmNlKQogewog
ICAgIEFTU0VSVChXVEY6OmlzTWFpblRocmVhZCgpKTsKICAgICBMT0coUmVzb3VyY2VMb2FkaW5n
LCAiRXZpY3RpbmcgcmVzb3VyY2UgJXAgZm9yICclcycgZnJvbSBjYWNoZSIsIHJlc291cmNlLCBy
ZXNvdXJjZS0+dXJsKCkuc3RyaW5nKCkubGF0aW4xKCkuZGF0YSgpKTsKKyAgICBTdHJpbmcga2V5
ID0gY2FjaGVTdHJpbmcocmVzb3VyY2UtPnVybCgpLCByZXNvdXJjZS0+cmVzb3VyY2VSZXF1ZXN0
KCkuc2Vzc2lvbklEKCkpOwogICAgIC8vIFRoZSByZXNvdXJjZSBtYXkgaGF2ZSBhbHJlYWR5IGJl
ZW4gcmVtb3ZlZCBieSBzb21lb25lIG90aGVyIHRoYW4gb3VyIGNhbGxlciwKICAgICAvLyB3aG8g
bmVlZGVkIGEgZnJlc2ggY29weSBmb3IgYSByZWxvYWQuIFNlZSA8aHR0cDovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI0NzkjYzY+LgogICAgIGlmIChyZXNvdXJjZS0+aW5DYWNo
ZSgpKSB7CiAgICAgICAgIC8vIFJlbW92ZSBmcm9tIHRoZSByZXNvdXJjZSBtYXAuCiAjaWYgRU5B
QkxFKENBQ0hFX1BBUlRJVElPTklORykKLSAgICAgICAgQ2FjaGVkUmVzb3VyY2VJdGVtKiBpdGVt
ID0gbV9yZXNvdXJjZXMuZ2V0KHJlc291cmNlLT51cmwoKSk7CisgICAgICAgIENhY2hlZFJlc291
cmNlSXRlbSogaXRlbSA9IG1fcmVzb3VyY2VzLmdldChrZXkpOwogICAgICAgICBpZiAoaXRlbSkg
ewogICAgICAgICAgICAgaXRlbS0+cmVtb3ZlKHJlc291cmNlLT5jYWNoZVBhcnRpdGlvbigpKTsK
ICAgICAgICAgICAgIGlmICghaXRlbS0+c2l6ZSgpKQotICAgICAgICAgICAgICAgIG1fcmVzb3Vy
Y2VzLnJlbW92ZShyZXNvdXJjZS0+dXJsKCkpOworICAgICAgICAgICAgICAgIG1fcmVzb3VyY2Vz
LnJlbW92ZShrZXkpOwogICAgICAgICB9CiAjZWxzZQotICAgICAgICBtX3Jlc291cmNlcy5yZW1v
dmUocmVzb3VyY2UtPnVybCgpKTsKKyAgICAgICAgbV9yZXNvdXJjZXMucmVtb3ZlKGtleSk7CiAj
ZW5kaWYKICAgICAgICAgcmVzb3VyY2UtPnNldEluQ2FjaGUoZmFsc2UpOwogCkBAIC01NDcsOSAr
NTYzLDkgQEAgdm9pZCBNZW1vcnlDYWNoZTo6ZXZpY3QoQ2FjaGVkUmVzb3VyY2UqIHJlc291cmNl
KQogICAgICAgICAgICAgYWRqdXN0U2l6ZShyZXNvdXJjZS0+aGFzQ2xpZW50cygpLCAtc3RhdGlj
X2Nhc3Q8aW50PihyZXNvdXJjZS0+c2l6ZSgpKSk7CiAgICAgfSBlbHNlCiAjaWYgRU5BQkxFKENB
Q0hFX1BBUlRJVElPTklORykKLSAgICAgICAgQVNTRVJUKCFtX3Jlc291cmNlcy5nZXQocmVzb3Vy
Y2UtPnVybCgpKSB8fCBtX3Jlc291cmNlcy5nZXQocmVzb3VyY2UtPnVybCgpKS0+Z2V0KHJlc291
cmNlLT5jYWNoZVBhcnRpdGlvbigpKSAhPSByZXNvdXJjZSk7CisgICAgICAgIEFTU0VSVCghbV9y
ZXNvdXJjZXMuZ2V0KGtleSkgfHwgbV9yZXNvdXJjZXMuZ2V0KGtleSktPmdldChyZXNvdXJjZS0+
Y2FjaGVQYXJ0aXRpb24oKSkgIT0gcmVzb3VyY2UpOwogI2Vsc2UKLSAgICAgICAgQVNTRVJUKG1f
cmVzb3VyY2VzLmdldChyZXNvdXJjZS0+dXJsKCkpICE9IHJlc291cmNlKTsKKyAgICAgICAgQVNT
RVJUKG1fcmVzb3VyY2VzLmdldChrZXkpICE9IHJlc291cmNlKTsKICNlbmRpZgogCiAgICAgcmVz
b3VyY2UtPmRlbGV0ZUlmUG9zc2libGUoKTsKQEAgLTgwOCw5ICs4MjQsMTEgQEAgdm9pZCBNZW1v
cnlDYWNoZTo6YWRqdXN0U2l6ZShib29sIGxpdmUsIGludCBkZWx0YSkKICAgICB9CiB9CiAKLXZv
aWQgTWVtb3J5Q2FjaGU6OnJlbW92ZVVybEZyb21DYWNoZShTY3JpcHRFeGVjdXRpb25Db250ZXh0
KiBjb250ZXh0LCBjb25zdCBTdHJpbmcmIHVybFN0cmluZykKK3ZvaWQgTWVtb3J5Q2FjaGU6OnJl
bW92ZVVybEZyb21DYWNoZShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBjb25zdCBT
dHJpbmcmIHVybFN0cmluZywgdWludDY0X3Qgc2Vzc2lvbklEKQogewotICAgIHJlbW92ZVJlcXVl
c3RGcm9tQ2FjaGUoY29udGV4dCwgUmVzb3VyY2VSZXF1ZXN0KHVybFN0cmluZykpOworICAgIFJl
c291cmNlUmVxdWVzdCByZXF1ZXN0ID0gUmVzb3VyY2VSZXF1ZXN0KHVybFN0cmluZyk7CisgICAg
cmVxdWVzdC5zZXRTZXNzaW9uSUQoc2Vzc2lvbklEKTsKKyAgICByZW1vdmVSZXF1ZXN0RnJvbUNh
Y2hlKGNvbnRleHQsIHJlcXVlc3QpOwogfQogCiB2b2lkIE1lbW9yeUNhY2hlOjpyZW1vdmVSZXF1
ZXN0RnJvbUNhY2hlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIGNvbnN0IFJlc291
cmNlUmVxdWVzdCYgcmVxdWVzdCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9j
YWNoZS9NZW1vcnlDYWNoZS5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL01lbW9yeUNh
Y2hlLmgKaW5kZXggYzAyM2E5Ny4uMWFjNmQ4OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
bG9hZGVyL2NhY2hlL01lbW9yeUNhY2hlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2Nh
Y2hlL01lbW9yeUNhY2hlLmgKQEAgLTE3MCw3ICsxNzAsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBm
bHVzaENhY2hlZEltYWdlc1RvRGlzaygpOyAvLyBGbHVzaCBlbmNvZGVkIGRhdGEgZnJvbSByZXNv
dXJjZXMgc3RpbGwgcmVmZXJlbmNlZCBieSB3ZWIgcGFnZXMuCiAjZW5kaWYKIAotICAgIHN0YXRp
YyB2b2lkIHJlbW92ZVVybEZyb21DYWNoZShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgY29uc3Qg
U3RyaW5nJiB1cmxTdHJpbmcpOworICAgIHN0YXRpYyB2b2lkIHJlbW92ZVVybEZyb21DYWNoZShT
Y3JpcHRFeGVjdXRpb25Db250ZXh0KiwgY29uc3QgU3RyaW5nJiB1cmxTdHJpbmcsIHVpbnQ2NF90
IHNlc3Npb25JRCk7CiAgICAgc3RhdGljIHZvaWQgcmVtb3ZlUmVxdWVzdEZyb21DYWNoZShTY3Jp
cHRFeGVjdXRpb25Db250ZXh0KiwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0Jik7CiAKICAgICAvLyBG
dW5jdGlvbiB0byBjb2xsZWN0IGNhY2hlIHN0YXRpc3RpY3MgZm9yIHRoZSBjYWNoZXMgd2luZG93
IGluIHRoZSBTYWZhcmkgRGVidWcgbWVudS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvUGFnZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCmluZGV4IGRlOWM2OGUu
LmVjODc5ZGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcApAQCAtMTkyLDYgKzE5Miw3IEBAIFBhZ2U6OlBh
Z2UoUGFnZUNsaWVudHMmIHBhZ2VDbGllbnRzKQogI2VuZGlmCiAgICAgLCBtX2xhc3RTcGF0aWFs
TmF2aWdhdGlvbkNhbmRpZGF0ZXNDb3VudCgwKSAvLyBOT1RFOiBPbmx5IGNhbGxlZCBmcm9tIElu
dGVybmFscyBmb3IgU3BhdGlhbCBOYXZpZ2F0aW9uIHRlc3RpbmcuCiAgICAgLCBtX2ZyYW1lc0hh
bmRsaW5nQmVmb3JlVW5sb2FkRXZlbnQoMCkKKyAgICAsIG1fc2Vzc2lvbklEKDApCiB7CiAgICAg
QVNTRVJUKG1fZWRpdG9yQ2xpZW50KTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9QYWdlLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaAppbmRleCA3M2FlOWM5Li4wM2I5
ZmY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL1BhZ2UuaApAQCAtNDE0LDYgKzQxNCw4IEBAIHB1YmxpYzoKIAogICAgIHZv
aWQgc2V0VXNlckNvbnRlbnRDb250cm9sbGVyKFVzZXJDb250ZW50Q29udHJvbGxlciopOwogICAg
IFVzZXJDb250ZW50Q29udHJvbGxlciogdXNlckNvbnRlbnRDb250cm9sbGVyKCkgeyByZXR1cm4g
bV91c2VyQ29udGVudENvbnRyb2xsZXIuZ2V0KCk7IH0KKyAgICB1aW50NjRfdCBzZXNzaW9uSUQo
KSBjb25zdCB7IHJldHVybiBtX3Nlc3Npb25JRDsgfQorICAgIHZvaWQgc2V0U2Vzc2lvbklEKHVp
bnQ2NF90IHNlc3Npb25JRCkgeyBtX3Nlc3Npb25JRCA9IHNlc3Npb25JRDsgfQogCiBwcml2YXRl
OgogICAgIHZvaWQgaW5pdEdyb3VwKCk7CkBAIC01NTgsNiArNTYwLDggQEAgcHJpdmF0ZToKICAg
ICB1bnNpZ25lZCBtX2ZyYW1lc0hhbmRsaW5nQmVmb3JlVW5sb2FkRXZlbnQ7CiAKICAgICBSZWZQ
dHI8VXNlckNvbnRlbnRDb250cm9sbGVyPiBtX3VzZXJDb250ZW50Q29udHJvbGxlcjsKKworICAg
IHVpbnQ2NF90IG1fc2Vzc2lvbklEOwogfTsKIAogaW5saW5lIFBhZ2VHcm91cCYgUGFnZTo6Z3Jv
dXAoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9OZXR3b3Jr
aW5nQ29udGV4dC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9OZXR3b3JraW5n
Q29udGV4dC5oCmluZGV4IGZjZmZjMDQuLmE0ODYzNTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL25ldHdvcmsvTmV0d29ya2luZ0NvbnRleHQuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtpbmdDb250ZXh0LmgKQEAgLTU5LDYgKzU5LDcg
QEAgcHVibGljOgogCiAjaWYgUExBVEZPUk0oQ09DT0EpIHx8IFVTRShDRk5FVFdPUkspIHx8IFVT
RShTT1VQKQogICAgIHZpcnR1YWwgTmV0d29ya1N0b3JhZ2VTZXNzaW9uJiBzdG9yYWdlU2Vzc2lv
bigpIGNvbnN0ID0gMDsKKyAgICB2aXJ0dWFsIHVpbnQ2NF90IHNlc3Npb25JRCgpIGNvbnN0IHsg
cmV0dXJuIDA7IH0KICNlbmRpZgogCiAjaWYgUExBVEZPUk0oV0lOKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZVJlcXVlc3RCYXNlLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlUmVxdWVzdEJhc2UuaAppbmRleCBl
YTY2ZDYxLi4xNjE0ZDI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3
b3JrL1Jlc291cmNlUmVxdWVzdEJhc2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9u
ZXR3b3JrL1Jlc291cmNlUmVxdWVzdEJhc2UuaApAQCAtNjcsNiArNjcsOSBAQCBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAgICAgICAgIGNvbnN0IFVSTCYgdXJsKCkgY29uc3Q7CiAgICAgICAgIHZvaWQg
c2V0VVJMKGNvbnN0IFVSTCYgdXJsKTsKIAorICAgICAgICB1aW50NjRfdCBzZXNzaW9uSUQoKSBj
b25zdCB7IHJldHVybiBtX3Nlc3Npb25JRDsgfQorICAgICAgICB2b2lkIHNldFNlc3Npb25JRCh1
aW50NjRfdCBzZXNzaW9uSUQpIHsgbV9zZXNzaW9uSUQgPSBzZXNzaW9uSUQ7IH0KKwogICAgICAg
ICB2b2lkIHJlbW92ZUNyZWRlbnRpYWxzKCk7CiAKICAgICAgICAgUmVzb3VyY2VSZXF1ZXN0Q2Fj
aGVQb2xpY3kgY2FjaGVQb2xpY3koKSBjb25zdDsKQEAgLTE1Miw3ICsxNTUsOCBAQCBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAgICAgcHJvdGVjdGVkOgogICAgICAgICAvLyBVc2VkIHdoZW4gUmVzb3Vy
Y2VSZXF1ZXN0IGlzIGluaXRpYWxpemVkIGZyb20gYSBwbGF0Zm9ybSByZXByZXNlbnRhdGlvbiBv
ZiB0aGUgcmVxdWVzdAogICAgICAgICBSZXNvdXJjZVJlcXVlc3RCYXNlKCkKLSAgICAgICAgICAg
IDogbV9yZXNvdXJjZVJlcXVlc3RVcGRhdGVkKGZhbHNlKQorICAgICAgICAgICAgOiBtX3Nlc3Np
b25JRCgwKQorICAgICAgICAgICAgLCBtX3Jlc291cmNlUmVxdWVzdFVwZGF0ZWQoZmFsc2UpCiAg
ICAgICAgICAgICAsIG1fcGxhdGZvcm1SZXF1ZXN0VXBkYXRlZCh0cnVlKQogICAgICAgICAgICAg
LCBtX3Jlc291cmNlUmVxdWVzdEJvZHlVcGRhdGVkKGZhbHNlKQogICAgICAgICAgICAgLCBtX3Bs
YXRmb3JtUmVxdWVzdEJvZHlVcGRhdGVkKHRydWUpCkBAIC0xNjUsNiArMTY5LDcgQEAgbmFtZXNw
YWNlIFdlYkNvcmUgewogCiAgICAgICAgIFJlc291cmNlUmVxdWVzdEJhc2UoY29uc3QgVVJMJiB1
cmwsIFJlc291cmNlUmVxdWVzdENhY2hlUG9saWN5IHBvbGljeSkKICAgICAgICAgICAgIDogbV91
cmwodXJsKQorICAgICAgICAgICAgLCBtX3Nlc3Npb25JRCgwKQogICAgICAgICAgICAgLCBtX3Rp
bWVvdXRJbnRlcnZhbChzX2RlZmF1bHRUaW1lb3V0SW50ZXJ2YWwpCiAgICAgICAgICAgICAsIG1f
aHR0cE1ldGhvZChBU0NJSUxpdGVyYWwoIkdFVCIpKQogICAgICAgICAgICAgLCBtX2NhY2hlUG9s
aWN5KHBvbGljeSkKQEAgLTE5MSw2ICsxOTYsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAg
ICAgIHN0YXRpYyBib29sIHBsYXRmb3JtQ29tcGFyZShjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBj
b25zdCBSZXNvdXJjZVJlcXVlc3QmKSB7IHJldHVybiB0cnVlOyB9CiAKICAgICAgICAgVVJMIG1f
dXJsOworICAgICAgICB1aW50NjRfdCBtX3Nlc3Npb25JRDsKICAgICAgICAgZG91YmxlIG1fdGlt
ZW91dEludGVydmFsOyAvLyAwIGlzIGEgbWFnaWMgdmFsdWUgZm9yIHBsYXRmb3JtIGRlZmF1bHQg
b24gcGxhdGZvcm1zIHRoYXQgaGF2ZSBvbmUuCiAgICAgICAgIFVSTCBtX2ZpcnN0UGFydHlGb3JD
b29raWVzOwogICAgICAgICBTdHJpbmcgbV9odHRwTWV0aG9kOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9SZXNvdXJjZVJlcXVlc3QuaCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvUmVzb3VyY2VSZXF1ZXN0LmgKaW5kZXggNTM0MTk4
OC4uMmM2MjI4OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9j
Zi9SZXNvdXJjZVJlcXVlc3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3Jr
L2NmL1Jlc291cmNlUmVxdWVzdC5oCkBAIC01Nyw3ICs1Nyw3IEBAIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKICAgICAgICAgewogICAgICAgICB9CiAKLSAgICAgICAgUmVzb3VyY2VSZXF1ZXN0KGNvbnN0
IFVSTCYgdXJsLCBjb25zdCBTdHJpbmcmIHJlZmVycmVyLCBSZXNvdXJjZVJlcXVlc3RDYWNoZVBv
bGljeSBwb2xpY3kgPSBVc2VQcm90b2NvbENhY2hlUG9saWN5KSAKKyAgICAgICAgUmVzb3VyY2VS
ZXF1ZXN0KGNvbnN0IFVSTCYgdXJsLCBjb25zdCBTdHJpbmcmIHJlZmVycmVyLCBSZXNvdXJjZVJl
cXVlc3RDYWNoZVBvbGljeSBwb2xpY3kgPSBVc2VQcm90b2NvbENhY2hlUG9saWN5KQogICAgICAg
ICAgICAgOiBSZXNvdXJjZVJlcXVlc3RCYXNlKHVybCwgcG9saWN5KQogI2lmIFBMQVRGT1JNKElP
UykKICAgICAgICAgICAgICwgbV9tYWluUmVzb3VyY2VSZXF1ZXN0KGZhbHNlKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdl
TG9nCmluZGV4IDBlZjc0ODUuLjMyZDg2NmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFj
L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwx
MyBAQAorMjAxNC0wMi0xMCAgTWFydGluIEhvY2sgIDxtaG9ja0BhcHBsZS5jb20+CisKKyAgICAg
ICAgQWRkIHN1cHBvcnQgZm9yIHNlc3Npb25zIHRvIE1lbW9yeUNhY2hlLgorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI3Nzk0CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBNaXNjL1dlYkNhY2hlLm1tOgor
ICAgICAgICAoK1tXZWJDYWNoZSByZW1vdmVJbWFnZUZyb21DYWNoZUZvclVSTDpmb3JGcmFtZTpd
KToKKwogMjAxNC0wMi0wOCAgUnlvc3VrZSBOaXdhICA8cm5pd2FAd2Via2l0Lm9yZz4KIAogICAg
ICAgICBDbGVhbnVwIHRoZSBpbnRlcmZhY2Ugb2YgRnJhbWVTZWxlY3Rpb24KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvbWFjL01pc2MvV2ViQ2FjaGUubW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9N
aXNjL1dlYkNhY2hlLm1tCmluZGV4IDA2MWNhNWIuLmU2YTk2NjQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvbWFjL01pc2MvV2ViQ2FjaGUubW0KKysrIGIvU291cmNlL1dlYktpdC9tYWMvTWlz
Yy9XZWJDYWNoZS5tbQpAQCAtNDMsNiArNDMsNyBAQAogI2ltcG9ydCA8V2ViQ29yZS9DYWNoZWRJ
bWFnZS5oPgogI2ltcG9ydCA8V2ViQ29yZS9DcmVkZW50aWFsU3RvcmFnZS5oPgogI2ltcG9ydCA8
V2ViQ29yZS9GcmFtZS5oPgorI2ltcG9ydCA8V2ViQ29yZS9QYWdlLmg+CiAjaW1wb3J0IDxXZWJD
b3JlL1BhZ2VDYWNoZS5oPgogI2ltcG9ydCA8V2ViQ29yZS9XZWJDb3JlVGhyZWFkUnVuLmg+CiAj
ZW5kaWYKQEAgLTIyNSw3ICsyMjYsNyBAQAogICAgIGlmIChmcmFtZSkKICAgICAgICAgdG9wT3Jp
Z2luID0gY29yZShmcmFtZSktPmRvY3VtZW50KCktPnRvcE9yaWdpbigpOwogI2VuZGlmCi0gICAg
V2ViQ29yZTo6bWVtb3J5Q2FjaGUoKS0+cmVtb3ZlSW1hZ2VGcm9tQ2FjaGUodXJsLCB0b3BPcmln
aW4gPyB0b3BPcmlnaW4tPmNhY2hlUGFydGl0aW9uKCkgOiBlbXB0eVN0cmluZygpKTsKKyAgICBX
ZWJDb3JlOjptZW1vcnlDYWNoZSgpLT5yZW1vdmVJbWFnZUZyb21DYWNoZSh1cmwsIHRvcE9yaWdp
biA/IHRvcE9yaWdpbi0+Y2FjaGVQYXJ0aXRpb24oKSA6IGVtcHR5U3RyaW5nKCksIGZyYW1lID8g
Y29yZShmcmFtZSktPnBhZ2UoKS0+c2Vzc2lvbklEKCkgOiAwKTsKIH0KIAogKyAoQ0dJbWFnZVJl
ZilpbWFnZUZvclVSTDooTlNVUkwgKil1cmwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCA5YjczMjE0Li4yMDkzMDY3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktp
dDIvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMjQgQEAKIDIwMTQtMDItMTAgIE1hcnRpbiBIb2NrICA8
bWhvY2tAYXBwbGUuY29tPgogCisgICAgICAgIEFkZCBzdXBwb3J0IGZvciBzZXNzaW9ucyB0byBN
ZW1vcnlDYWNoZS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTEyNzc5NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgICogTmV0d29ya1Byb2Nlc3MvUmVtb3RlTmV0d29ya2luZ0NvbnRleHQuaDoKKyAgICAgICAg
KiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L21hYy9XZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0
Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9tYWMvV2ViRnJhbWVOZXR3
b3JraW5nQ29udGV4dC5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViRnJhbWVOZXR3b3JraW5nQ29u
dGV4dDo6c3RvcmFnZVNlc3Npb24pOgorICAgICAgICAoV2ViS2l0OjpXZWJGcmFtZU5ldHdvcmtp
bmdDb250ZXh0OjpzZXNzaW9uSUQpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQ
YWdlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6V2ViUGFnZSk6CisgICAgICAgIChX
ZWJLaXQ6OldlYlBhZ2U6OnNlc3Npb25JRCk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OnNl
dFNlc3Npb25JRCk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OnVwZGF0ZVByZWZlcmVuY2Vz
KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oOgorCisyMDE0LTAyLTEw
ICBNYXJ0aW4gSG9jayAgPG1ob2NrQGFwcGxlLmNvbT4KKwogICAgICAgICBBZGQgQVBJIGZvciBh
Y2Nlc3Npbmcgc2Vzc2lvbiBlcGhlbWVyYWxpdHkgZnJvbSBhIHBhZ2UgYnVuZGxlCiAgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjg0MTAKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvUmVtb3RlTmV0d29ya2luZ0NvbnRl
eHQuaCBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL1JlbW90ZU5ldHdvcmtpbmdDb250
ZXh0LmgKaW5kZXggZTNlZDEyYi4uY2VlN2UyYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
TmV0d29ya1Byb2Nlc3MvUmVtb3RlTmV0d29ya2luZ0NvbnRleHQuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9OZXR3b3JrUHJvY2Vzcy9SZW1vdGVOZXR3b3JraW5nQ29udGV4dC5oCkBAIC00Myw2ICs0
Myw3IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgdm9pZCBlbnN1cmVQcml2YXRlQnJvd3NpbmdTZXNz
aW9uKHVpbnQ2NF90IHNlc3Npb25JRCk7CiAKICAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkQ2xlYXJS
ZWZlcnJlck9uSFRUUFNUb0hUVFBSZWRpcmVjdCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG1f
c2hvdWxkQ2xlYXJSZWZlcnJlck9uSFRUUFNUb0hUVFBSZWRpcmVjdDsgfQorICAgIHZpcnR1YWwg
dWludDY0X3Qgc2Vzc2lvbklEKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gbV9zZXNzaW9uSUQ7
IH0KIAogcHJpdmF0ZToKICAgICBSZW1vdGVOZXR3b3JraW5nQ29udGV4dCh1aW50NjRfdCBzZXNz
aW9uSUQsIGJvb2wgc2hvdWxkQ2xlYXJSZWZlcnJlck9uSFRUUFNUb0hUVFBSZWRpcmVjdCkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvbWFjL1dl
YkZyYW1lTmV0d29ya2luZ0NvbnRleHQuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvbWFjL1dlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQuaAppbmRleCA4NjI5ZmE4
Li43YjZlMTFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L21hYy9XZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0LmgKKysrIGIvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9tYWMvV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4
dC5oCkBAIC01OCw2ICs1OCw3IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCBSZXRhaW5QdHI8Q0ZE
YXRhUmVmPiBzb3VyY2VBcHBsaWNhdGlvbkF1ZGl0RGF0YSgpIGNvbnN0IG92ZXJyaWRlOwogICAg
IHZpcnR1YWwgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciBibG9ja2VkRXJyb3IoY29uc3QgV2ViQ29y
ZTo6UmVzb3VyY2VSZXF1ZXN0JikgY29uc3Qgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCBXZWJDb3Jl
OjpOZXR3b3JrU3RvcmFnZVNlc3Npb24mIHN0b3JhZ2VTZXNzaW9uKCkgY29uc3Qgb3ZlcnJpZGU7
CisgICAgdmlydHVhbCB1aW50NjRfdCBzZXNzaW9uSUQoKSBjb25zdCBvdmVycmlkZTsKIH07CiAK
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
bWFjL1dlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQubW0gYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L21hYy9XZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0Lm1tCmluZGV4
IDc0NjFjNDYuLmIzYzg4NDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvbWFjL1dlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQubW0KKysrIGIvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9tYWMvV2ViRnJhbWVOZXR3b3Jr
aW5nQ29udGV4dC5tbQpAQCAtMTAxLDEwICsxMDEsMTQgQEAgUmVzb3VyY2VFcnJvciBXZWJGcmFt
ZU5ldHdvcmtpbmdDb250ZXh0OjpibG9ja2VkRXJyb3IoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiBy
ZXEKIE5ldHdvcmtTdG9yYWdlU2Vzc2lvbiYgV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dDo6c3Rv
cmFnZVNlc3Npb24oKSBjb25zdAogewogICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CisgICAg
cmV0dXJuICpTZXNzaW9uVHJhY2tlcjo6c2Vzc2lvbihzZXNzaW9uSUQoKSk7Cit9CiAKK3VpbnQ2
NF90IFdlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQ6OnNlc3Npb25JRCgpIGNvbnN0Cit7CiAgICAg
aWYgKGZyYW1lKCkpCi0gICAgICAgIHJldHVybiAqU2Vzc2lvblRyYWNrZXI6OnNlc3Npb24od2Vi
RnJhbWVMb2FkZXJDbGllbnQoKS0+d2ViRnJhbWUoKS0+cGFnZSgpLT5zZXNzaW9uSUQoKSk7Ci0g
ICAgcmV0dXJuIE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6ZGVmYXVsdFN0b3JhZ2VTZXNzaW9uKCk7
CisgICAgICAgIHJldHVybiB3ZWJGcmFtZUxvYWRlckNsaWVudCgpLT53ZWJGcmFtZSgpLT5wYWdl
KCktPnNlc3Npb25JRCgpOworICAgIHJldHVybiBTZXNzaW9uVHJhY2tlcjo6ZGVmYXVsdFNlc3Np
b25JRDsKIH0KIAogV2ViRnJhbWVMb2FkZXJDbGllbnQqIFdlYkZyYW1lTmV0d29ya2luZ0NvbnRl
eHQ6OndlYkZyYW1lTG9hZGVyQ2xpZW50KCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAppbmRleCA3ODQ3ZGI2Li5lODI4YTQ3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKKysrIGIv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCkBAIC0yMzAsNyAr
MjMwLDYgQEAgUGFzc1JlZlB0cjxXZWJQYWdlPiBXZWJQYWdlOjpjcmVhdGUodWludDY0X3QgcGFn
ZUlELCBjb25zdCBXZWJQYWdlQ3JlYXRpb25QYXJhbWUKIAogV2ViUGFnZTo6V2ViUGFnZSh1aW50
NjRfdCBwYWdlSUQsIGNvbnN0IFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMmIHBhcmFtZXRlcnMp
CiAgICAgOiBtX3BhZ2VJRChwYWdlSUQpCi0gICAgLCBtX3Nlc3Npb25JRCgwKQogICAgICwgbV92
aWV3U2l6ZShwYXJhbWV0ZXJzLnZpZXdTaXplKQogICAgICwgbV9oYXNTZWVuUGx1Z2luKGZhbHNl
KQogICAgICwgbV91c2VGaXhlZExheW91dChmYWxzZSkKQEAgLTIwOTYsOCArMjA5NSw4IEBAIHZv
aWQgV2ViUGFnZTo6c2V0TGF5ZXJIb3N0aW5nTW9kZSh1bnNpZ25lZCBsYXllckhvc3RpbmdNb2Rl
KQogCiB1aW50NjRfdCBXZWJQYWdlOjpzZXNzaW9uSUQoKSBjb25zdAogewotICAgIGlmIChtX3Nl
c3Npb25JRCkKLSAgICAgICAgcmV0dXJuIG1fc2Vzc2lvbklEOworICAgIGlmIChtX3BhZ2UtPnNl
c3Npb25JRCgpKQorICAgICAgICByZXR1cm4gbV9wYWdlLT5zZXNzaW9uSUQoKTsKIAogICAgIHJl
dHVybiBtX3BhZ2UtPnNldHRpbmdzKCkucHJpdmF0ZUJyb3dzaW5nRW5hYmxlZCgpID8gU2Vzc2lv
blRyYWNrZXI6OmxlZ2FjeVByaXZhdGVTZXNzaW9uSUQgOiBTZXNzaW9uVHJhY2tlcjo6ZGVmYXVs
dFNlc3Npb25JRDsKIH0KQEAgLTIxMDksNyArMjEwOCw3IEBAIGJvb2wgV2ViUGFnZTo6aXNVc2lu
Z0VwaGVtZXJhbFNlc3Npb24oKSBjb25zdAogCiB2b2lkIFdlYlBhZ2U6OnNldFNlc3Npb25JRCh1
aW50NjRfdCBzZXNzaW9uSUQpCiB7Ci0gICAgbV9zZXNzaW9uSUQgPSBzZXNzaW9uSUQ7CisgICAg
bV9wYWdlLT5zZXRTZXNzaW9uSUQoc2Vzc2lvbklEKTsKICAgICBpZiAoU2Vzc2lvblRyYWNrZXI6
OmlzRXBoZW1lcmFsSUQoc2Vzc2lvbklEKSkKICAgICAgICAgV2ViUHJvY2Vzczo6c2hhcmVkKCku
ZW5zdXJlUHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbihzZXNzaW9uSUQpOwogfQpAQCAtMjQxNiw4ICsy
NDE1LDggQEAgdm9pZCBXZWJQYWdlOjp1cGRhdGVQcmVmZXJlbmNlcyhjb25zdCBXZWJQcmVmZXJl
bmNlc1N0b3JlJiBzdG9yZSkKICAgICBzZXR0aW5ncy5zZXRMb2NhbFN0b3JhZ2VFbmFibGVkKHN0
b3JlLmdldEJvb2xWYWx1ZUZvcktleShXZWJQcmVmZXJlbmNlc0tleTo6bG9jYWxTdG9yYWdlRW5h
YmxlZEtleSgpKSk7CiAgICAgc2V0dGluZ3Muc2V0WFNTQXVkaXRvckVuYWJsZWQoc3RvcmUuZ2V0
Qm9vbFZhbHVlRm9yS2V5KFdlYlByZWZlcmVuY2VzS2V5Ojp4c3NBdWRpdG9yRW5hYmxlZEtleSgp
KSk7CiAgICAgc2V0dGluZ3Muc2V0RnJhbWVGbGF0dGVuaW5nRW5hYmxlZChzdG9yZS5nZXRCb29s
VmFsdWVGb3JLZXkoV2ViUHJlZmVyZW5jZXNLZXk6OmZyYW1lRmxhdHRlbmluZ0VuYWJsZWRLZXko
KSkpOwotICAgIGlmIChtX3Nlc3Npb25JRCkKLSAgICAgICAgc2V0dGluZ3Muc2V0UHJpdmF0ZUJy
b3dzaW5nRW5hYmxlZChTZXNzaW9uVHJhY2tlcjo6aXNFcGhlbWVyYWxJRChtX3Nlc3Npb25JRCkp
OworICAgIGlmIChtX3BhZ2UtPnNlc3Npb25JRCgpKQorICAgICAgICBzZXR0aW5ncy5zZXRQcml2
YXRlQnJvd3NpbmdFbmFibGVkKFNlc3Npb25UcmFja2VyOjppc0VwaGVtZXJhbElEKG1fcGFnZS0+
c2Vzc2lvbklEKCkpKTsKICAgICBlbHNlCiAgICAgICAgIHNldHRpbmdzLnNldFByaXZhdGVCcm93
c2luZ0VuYWJsZWQoc3RvcmUuZ2V0Qm9vbFZhbHVlRm9yS2V5KFdlYlByZWZlcmVuY2VzS2V5Ojpw
cml2YXRlQnJvd3NpbmdFbmFibGVkS2V5KCkpKTsKICAgICBzZXR0aW5ncy5zZXREZXZlbG9wZXJF
eHRyYXNFbmFibGVkKHN0b3JlLmdldEJvb2xWYWx1ZUZvcktleShXZWJQcmVmZXJlbmNlc0tleTo6
ZGV2ZWxvcGVyRXh0cmFzRW5hYmxlZEtleSgpKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJQYWdlL1dlYlBhZ2UuaAppbmRleCAzZmJmZmEzLi4yNzM5NWI2IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKQEAgLTg5Miw3ICs4OTIsNiBAQCBw
cml2YXRlOgogICAgIHZvaWQgcmVwb3J0VXNlZEZlYXR1cmVzKCk7CiAKICAgICB1aW50NjRfdCBt
X3BhZ2VJRDsKLSAgICB1aW50NjRfdCBtX3Nlc3Npb25JRDsKIAogICAgIE93blB0cjxXZWJDb3Jl
OjpQYWdlPiBtX3BhZ2U7CiAgICAgUmVmUHRyPFdlYkZyYW1lPiBtX21haW5GcmFtZTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>223766</attachid>
            <date>2014-02-10 16:26:46 -0800</date>
            <delta_ts>2014-02-18 12:50:58 -0800</delta_ts>
            <desc>Remove extraneous change to WebCache.mm</desc>
            <filename>memcachesession.09.diff</filename>
            <type>text/plain</type>
            <size>22187</size>
            <attacher name="Martin Hock">mhock</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCAwMGYxYmYyLi5kNWFhZjNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzkg
QEAKKzIwMTQtMDItMTAgIE1hcnRpbiBIb2NrICA8bWhvY2tAYXBwbGUuY29tPgorCisgICAgICAg
IEFkZCBzdXBwb3J0IGZvciBzZXNzaW9ucyB0byBNZW1vcnlDYWNoZS4KKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyNzc5NAorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogbG9hZGVyL2NhY2hlL0NhY2hlZFJl
c291cmNlTG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hlZFJlc291cmNlTG9hZGVy
OjpyZXF1ZXN0VXNlckNTU1N0eWxlU2hlZXQpOgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkUmVz
b3VyY2VMb2FkZXI6OnJlcXVlc3RSZXNvdXJjZSk6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRS
ZXNvdXJjZUxvYWRlcjo6cmV2YWxpZGF0ZVJlc291cmNlKToKKyAgICAgICAgKFdlYkNvcmU6OkNh
Y2hlZFJlc291cmNlTG9hZGVyOjpsb2FkUmVzb3VyY2UpOgorICAgICAgICAqIGxvYWRlci9jYWNo
ZS9NZW1vcnlDYWNoZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpjYWNoZVN0cmluZyk6CisgICAg
ICAgIChXZWJDb3JlOjpNZW1vcnlDYWNoZTo6YWRkKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lbW9y
eUNhY2hlOjpyZXZhbGlkYXRpb25TdWNjZWVkZWQpOgorICAgICAgICAoV2ViQ29yZTo6TWVtb3J5
Q2FjaGU6OnJlc291cmNlRm9yUmVxdWVzdCk6CisgICAgICAgIChXZWJDb3JlOjpNZW1vcnlDYWNo
ZTo6YWRkSW1hZ2VUb0NhY2hlKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lbW9yeUNhY2hlOjpyZW1v
dmVJbWFnZUZyb21DYWNoZSk6CisgICAgICAgIChXZWJDb3JlOjpNZW1vcnlDYWNoZTo6ZXZpY3Qp
OgorICAgICAgICAoV2ViQ29yZTo6TWVtb3J5Q2FjaGU6OnJlbW92ZVVybEZyb21DYWNoZSk6Cisg
ICAgICAgICogbG9hZGVyL2NhY2hlL01lbW9yeUNhY2hlLmg6CisgICAgICAgICogcGFnZS9QYWdl
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2U6OlBhZ2UpOgorICAgICAgICAqIHBhZ2UvUGFn
ZS5oOgorICAgICAgICAoV2ViQ29yZTo6UGFnZTo6c2Vzc2lvbklEKToKKyAgICAgICAgKFdlYkNv
cmU6OlBhZ2U6OnNldFNlc3Npb25JRCk6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9OZXR3
b3JraW5nQ29udGV4dC5oOgorICAgICAgICAoV2ViQ29yZTo6TmV0d29ya2luZ0NvbnRleHQ6OnNl
c3Npb25JRCk6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZVJlcXVlc3RCYXNl
Lmg6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3RCYXNlOjpzZXNzaW9uSUQpOgor
ICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0QmFzZTo6c2V0U2Vzc2lvbklEKToKKyAg
ICAgICAgKFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdEJhc2U6OlJlc291cmNlUmVxdWVzdEJhc2Up
OgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvY2YvUmVzb3VyY2VSZXF1ZXN0Lmg6CisgICAg
ICAgIChXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3Q6OlJlc291cmNlUmVxdWVzdCk6CisKIDIwMTQt
MDItMTAgIFJvZ2VyIEZvbmcgIDxyb2dlcl9mb25nQGFwcGxlLmNvbT4KIAogICAgICAgICBbV2lu
ZG93c10gVW5yZXZpZXdlZCB0ZXN0IGZpeC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZUxvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VMb2FkZXIuY3BwCmluZGV4IDExZjE4YTguLmY3ZWViZGUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZUxv
YWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNl
TG9hZGVyLmNwcApAQCAtNDgsNiArNDgsNyBAQAogI2luY2x1ZGUgIkxvYWRlclN0cmF0ZWd5Lmgi
CiAjaW5jbHVkZSAiTG9nZ2luZy5oIgogI2luY2x1ZGUgIk1lbW9yeUNhY2hlLmgiCisjaW5jbHVk
ZSAiUGFnZS5oIgogI2luY2x1ZGUgIlBpbmdMb2FkZXIuaCIKICNpbmNsdWRlICJQbGF0Zm9ybVN0
cmF0ZWdpZXMuaCIKICNpbmNsdWRlICJSZW5kZXJFbGVtZW50LmgiCkBAIC0xOTcsNiArMTk4LDcg
QEAgQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkQ1NTU3R5bGVTaGVldD4gQ2FjaGVkUmVzb3Vy
Y2VMb2FkZXI6OnJlcXVlc3RVc2VyQ1NTU3QKIAogICAgIENhY2hlZFJlc291cmNlSGFuZGxlPENh
Y2hlZENTU1N0eWxlU2hlZXQ+IHVzZXJTaGVldCA9IG5ldyBDYWNoZWRDU1NTdHlsZVNoZWV0KHJl
cXVlc3QucmVzb3VyY2VSZXF1ZXN0KCksIHJlcXVlc3QuY2hhcnNldCgpKTsKIAorICAgIHVzZXJT
aGVldC0+cmVzb3VyY2VSZXF1ZXN0KCkuc2V0U2Vzc2lvbklEKGZyYW1lKCktPnBhZ2UoKS0+c2Vz
c2lvbklEKCkpOwogICAgIG1lbW9yeUNhY2hlKCktPmFkZCh1c2VyU2hlZXQuZ2V0KCkpOwogICAg
IC8vIEZJWE1FOiBsb2FkUmVzb3VyY2UgY2FsbHMgc2V0T3duaW5nQ2FjaGVkUmVzb3VyY2VMb2Fk
ZXIoKSBpZiB0aGUgcmVzb3VyY2UgY291bGRuJ3QgYmUgYWRkZWQgdG8gY2FjaGUuIERvZXMgdGhp
cyBmdW5jdGlvbiBuZWVkIHRvIGNhbGwgaXQsIHRvbz8KIApAQCAtNDI3LDYgKzQyOSw4IEBAIENh
Y2hlZFJlc291cmNlSGFuZGxlPENhY2hlZFJlc291cmNlPiBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6
cmVxdWVzdFJlc291cmNlKENhY2hlCiAgICAgaWYgKGRvY3VtZW50KCkpCiAgICAgICAgIHJlcXVl
c3QubXV0YWJsZVJlc291cmNlUmVxdWVzdCgpLnNldENhY2hlUGFydGl0aW9uKGRvY3VtZW50KCkt
PnRvcE9yaWdpbigpLT5jYWNoZVBhcnRpdGlvbigpKTsKICNlbmRpZgorICAgIGlmIChGcmFtZSog
ZiA9IGZyYW1lKCkpCisgICAgICAgIHJlcXVlc3QubXV0YWJsZVJlc291cmNlUmVxdWVzdCgpLnNl
dFNlc3Npb25JRChmLT5wYWdlKCktPnNlc3Npb25JRCgpKTsKIAogICAgIHJlc291cmNlID0gbWVt
b3J5Q2FjaGUoKS0+cmVzb3VyY2VGb3JSZXF1ZXN0KHJlcXVlc3QucmVzb3VyY2VSZXF1ZXN0KCkp
OwogCkBAIC00ODgsNiArNDkyLDcgQEAgQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkUmVzb3Vy
Y2U+IENhY2hlZFJlc291cmNlTG9hZGVyOjpyZXZhbGlkYXRlUmVzb3VyY2UoY28KICAgICBMT0co
UmVzb3VyY2VMb2FkaW5nLCAiUmVzb3VyY2UgJXAgY3JlYXRlZCB0byByZXZhbGlkYXRlICVwIiwg
bmV3UmVzb3VyY2UuZ2V0KCksIHJlc291cmNlKTsKICAgICBuZXdSZXNvdXJjZS0+c2V0UmVzb3Vy
Y2VUb1JldmFsaWRhdGUocmVzb3VyY2UpOwogICAgIAorICAgIG5ld1Jlc291cmNlLT5yZXNvdXJj
ZVJlcXVlc3QoKS5zZXRTZXNzaW9uSUQoZnJhbWUoKS0+cGFnZSgpLT5zZXNzaW9uSUQoKSk7CiAg
ICAgbWVtb3J5Q2FjaGUoKS0+cmVtb3ZlKHJlc291cmNlKTsKICAgICBtZW1vcnlDYWNoZSgpLT5h
ZGQobmV3UmVzb3VyY2UuZ2V0KCkpOwogI2lmIEVOQUJMRShSRVNPVVJDRV9USU1JTkcpCkBAIC01
MDYsNiArNTExLDggQEAgQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkUmVzb3VyY2U+IENhY2hl
ZFJlc291cmNlTG9hZGVyOjpsb2FkUmVzb3VyY2UoQ2FjaGVkUmUKIAogICAgIENhY2hlZFJlc291
cmNlSGFuZGxlPENhY2hlZFJlc291cmNlPiByZXNvdXJjZSA9IGNyZWF0ZVJlc291cmNlKHR5cGUs
IHJlcXVlc3QubXV0YWJsZVJlc291cmNlUmVxdWVzdCgpLCBjaGFyc2V0KTsKIAorICAgIGlmIChm
cmFtZSgpKQorICAgICAgICByZXNvdXJjZS0+cmVzb3VyY2VSZXF1ZXN0KCkuc2V0U2Vzc2lvbklE
KGZyYW1lKCktPnBhZ2UoKS0+c2Vzc2lvbklEKCkpOwogICAgIGlmICghbWVtb3J5Q2FjaGUoKS0+
YWRkKHJlc291cmNlLmdldCgpKSkKICAgICAgICAgcmVzb3VyY2UtPnNldE93bmluZ0NhY2hlZFJl
c291cmNlTG9hZGVyKHRoaXMpOwogI2lmIEVOQUJMRShSRVNPVVJDRV9USU1JTkcpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvTWVtb3J5Q2FjaGUuY3BwIGIvU291cmNl
L1dlYkNvcmUvbG9hZGVyL2NhY2hlL01lbW9yeUNhY2hlLmNwcAppbmRleCAwMWFkNWI1Li5mNGUw
OGJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvTWVtb3J5Q2FjaGUu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9NZW1vcnlDYWNoZS5jcHAKQEAg
LTU5LDYgKzU5LDEzIEBAIHN0YXRpYyBjb25zdCBkb3VibGUgY01pbkRlbGF5QmVmb3JlTGl2ZURl
Y29kZWRQcnVuZSA9IDE7IC8vIFNlY29uZHMuCiBzdGF0aWMgY29uc3QgZmxvYXQgY1RhcmdldFBy
dW5lUGVyY2VudGFnZSA9IC45NWY7IC8vIFBlcmNlbnRhZ2Ugb2YgY2FwYWNpdHkgdG93YXJkIHdo
aWNoIHdlIHBydW5lLCB0byBhdm9pZCBpbW1lZGlhdGVseSBwcnVuaW5nIGFnYWluLgogc3RhdGlj
IGNvbnN0IGRvdWJsZSBjRGVmYXVsdERlY29kZWREYXRhRGVsZXRpb25JbnRlcnZhbCA9IDA7CiAK
K3N0YXRpYyBTdHJpbmcgY2FjaGVTdHJpbmcoVVJMIHVybCwgdWludDY0X3Qgc2Vzc2lvbklEKQor
eworICAgIGlmIChzZXNzaW9uSUQpCisgICAgICAgIHJldHVybiB1cmwuc3RyaW5nKCkgKyAnfCcg
KyBTdHJpbmc6Om51bWJlcihzZXNzaW9uSUQpOworICAgIHJldHVybiB1cmwuc3RyaW5nKCk7Cit9
CisKIE1lbW9yeUNhY2hlKiBtZW1vcnlDYWNoZSgpCiB7CiAgICAgc3RhdGljIE1lbW9yeUNhY2hl
KiBzdGF0aWNDYWNoZSA9IG5ldyBNZW1vcnlDYWNoZTsKQEAgLTEwMSwxNSArMTA4LDE2IEBAIGJv
b2wgTWVtb3J5Q2FjaGU6OmFkZChDYWNoZWRSZXNvdXJjZSogcmVzb3VyY2UpCiAKICAgICBBU1NF
UlQoV1RGOjppc01haW5UaHJlYWQoKSk7CiAKKyAgICBTdHJpbmcga2V5ID0gY2FjaGVTdHJpbmco
cmVzb3VyY2UtPnVybCgpLCByZXNvdXJjZS0+cmVzb3VyY2VSZXF1ZXN0KCkuc2Vzc2lvbklEKCkp
OwogI2lmIEVOQUJMRShDQUNIRV9QQVJUSVRJT05JTkcpCi0gICAgQ2FjaGVkUmVzb3VyY2VJdGVt
KiBvcmlnaW5NYXAgPSBtX3Jlc291cmNlcy5nZXQocmVzb3VyY2UtPnVybCgpKTsKKyAgICBDYWNo
ZWRSZXNvdXJjZUl0ZW0qIG9yaWdpbk1hcCA9IG1fcmVzb3VyY2VzLmdldChrZXkpOwogICAgIGlm
ICghb3JpZ2luTWFwKSB7CiAgICAgICAgIG9yaWdpbk1hcCA9IG5ldyBDYWNoZWRSZXNvdXJjZUl0
ZW07Ci0gICAgICAgIG1fcmVzb3VyY2VzLnNldChyZXNvdXJjZS0+dXJsKCksIGFkb3B0UHRyKG9y
aWdpbk1hcCkpOworICAgICAgICBtX3Jlc291cmNlcy5zZXQoa2V5LCBhZG9wdFB0cihvcmlnaW5N
YXApKTsKICAgICB9CiAgICAgb3JpZ2luTWFwLT5zZXQocmVzb3VyY2UtPmNhY2hlUGFydGl0aW9u
KCksIHJlc291cmNlKTsKICNlbHNlCi0gICAgbV9yZXNvdXJjZXMuc2V0KHJlc291cmNlLT51cmwo
KSwgcmVzb3VyY2UpOworICAgIG1fcmVzb3VyY2VzLnNldChrZXksIHJlc291cmNlKTsKICNlbmRp
ZgogICAgIHJlc291cmNlLT5zZXRJbkNhY2hlKHRydWUpOwogICAgIApAQCAtMTM0LDE3ICsxNDIs
MTggQEAgdm9pZCBNZW1vcnlDYWNoZTo6cmV2YWxpZGF0aW9uU3VjY2VlZGVkKENhY2hlZFJlc291
cmNlKiByZXZhbGlkYXRpbmdSZXNvdXJjZSwgY28KIAogICAgIGV2aWN0KHJldmFsaWRhdGluZ1Jl
c291cmNlKTsKIAorICAgIFN0cmluZyBrZXkgPSBjYWNoZVN0cmluZyhyZXNvdXJjZS0+dXJsKCks
IHJlc291cmNlLT5yZXNvdXJjZVJlcXVlc3QoKS5zZXNzaW9uSUQoKSk7CiAjaWYgRU5BQkxFKENB
Q0hFX1BBUlRJVElPTklORykKLSAgICBBU1NFUlQoIW1fcmVzb3VyY2VzLmdldChyZXNvdXJjZS0+
dXJsKCkpIHx8ICFtX3Jlc291cmNlcy5nZXQocmVzb3VyY2UtPnVybCgpKS0+Z2V0KHJlc291cmNl
LT5jYWNoZVBhcnRpdGlvbigpKSk7Ci0gICAgQ2FjaGVkUmVzb3VyY2VJdGVtKiBvcmlnaW5NYXAg
PSBtX3Jlc291cmNlcy5nZXQocmVzb3VyY2UtPnVybCgpKTsKKyAgICBBU1NFUlQoIW1fcmVzb3Vy
Y2VzLmdldChrZXkpIHx8ICFtX3Jlc291cmNlcy5nZXQoa2V5KS0+Z2V0KHJlc291cmNlLT5jYWNo
ZVBhcnRpdGlvbigpKSk7CisgICAgQ2FjaGVkUmVzb3VyY2VJdGVtKiBvcmlnaW5NYXAgPSBtX3Jl
c291cmNlcy5nZXQoa2V5KTsKICAgICBpZiAoIW9yaWdpbk1hcCkgewogICAgICAgICBvcmlnaW5N
YXAgPSBuZXcgQ2FjaGVkUmVzb3VyY2VJdGVtOwotICAgICAgICBtX3Jlc291cmNlcy5zZXQocmVz
b3VyY2UtPnVybCgpLCBhZG9wdFB0cihvcmlnaW5NYXApKTsKKyAgICAgICAgbV9yZXNvdXJjZXMu
c2V0KGtleSwgYWRvcHRQdHIob3JpZ2luTWFwKSk7CiAgICAgfQogICAgIG9yaWdpbk1hcC0+c2V0
KHJlc291cmNlLT5jYWNoZVBhcnRpdGlvbigpLCByZXNvdXJjZSk7CiAjZWxzZQotICAgIEFTU0VS
VCghbV9yZXNvdXJjZXMuZ2V0KHJlc291cmNlLT51cmwoKSkpOwotICAgIG1fcmVzb3VyY2VzLnNl
dChyZXNvdXJjZS0+dXJsKCksIHJlc291cmNlKTsKKyAgICBBU1NFUlQoIW1fcmVzb3VyY2VzLmdl
dChrZXkpKTsKKyAgICBtX3Jlc291cmNlcy5zZXQoa2V5LCByZXNvdXJjZSk7CiAjZW5kaWYKICAg
ICByZXNvdXJjZS0+c2V0SW5DYWNoZSh0cnVlKTsKICAgICByZXNvdXJjZS0+dXBkYXRlUmVzcG9u
c2VBZnRlclJldmFsaWRhdGlvbihyZXNwb25zZSk7CkBAIC0xNzgsMTMgKzE4NywxNSBAQCBDYWNo
ZWRSZXNvdXJjZSogTWVtb3J5Q2FjaGU6OnJlc291cmNlRm9yUmVxdWVzdChjb25zdCBSZXNvdXJj
ZVJlcXVlc3QmIHJlcXVlc3QpCiB7CiAgICAgQVNTRVJUKFdURjo6aXNNYWluVGhyZWFkKCkpOwog
ICAgIFVSTCB1cmwgPSByZW1vdmVGcmFnbWVudElkZW50aWZpZXJJZk5lZWRlZChyZXF1ZXN0LnVy
bCgpKTsKKyAgICBTdHJpbmcga2V5ID0gY2FjaGVTdHJpbmcodXJsLCByZXF1ZXN0LnNlc3Npb25J
RCgpKTsKKwogI2lmIEVOQUJMRShDQUNIRV9QQVJUSVRJT05JTkcpCi0gICAgQ2FjaGVkUmVzb3Vy
Y2VJdGVtKiBpdGVtID0gbV9yZXNvdXJjZXMuZ2V0KHVybCk7CisgICAgQ2FjaGVkUmVzb3VyY2VJ
dGVtKiBpdGVtID0gbV9yZXNvdXJjZXMuZ2V0KGtleSk7CiAgICAgQ2FjaGVkUmVzb3VyY2UqIHJl
c291cmNlID0gMDsKICAgICBpZiAoaXRlbSkKICAgICAgICAgcmVzb3VyY2UgPSBpdGVtLT5nZXQo
cmVxdWVzdC5jYWNoZVBhcnRpdGlvbigpKTsKICNlbHNlCi0gICAgQ2FjaGVkUmVzb3VyY2UqIHJl
c291cmNlID0gbV9yZXNvdXJjZXMuZ2V0KHVybCk7CisgICAgQ2FjaGVkUmVzb3VyY2UqIHJlc291
cmNlID0gbV9yZXNvdXJjZXMuZ2V0KGtleSk7CiAjZW5kaWYKICAgICBib29sIHdhc1B1cmdlYWJs
ZSA9IE1lbW9yeUNhY2hlOjpzaG91bGRNYWtlUmVzb3VyY2VQdXJnZWFibGVPbkV2aWN0aW9uKCkg
JiYgcmVzb3VyY2UgJiYgcmVzb3VyY2UtPmlzUHVyZ2VhYmxlKCk7CiAgICAgaWYgKHJlc291cmNl
ICYmICFyZXNvdXJjZS0+bWFrZVB1cmdlYWJsZShmYWxzZSkpIHsKQEAgLTIyNCw2ICsyMzUsNyBA
QCBzdGF0aWMgQ2FjaGVkSW1hZ2VDbGllbnQmIGR1bW15Q2FjaGVkSW1hZ2VDbGllbnQoKQogCiBi
b29sIE1lbW9yeUNhY2hlOjphZGRJbWFnZVRvQ2FjaGUoTmF0aXZlSW1hZ2VQdHIgaW1hZ2UsIGNv
bnN0IFVSTCYgdXJsLCBjb25zdCBTdHJpbmcmIGNhY2hlUGFydGl0aW9uKQogeworICAgIHVpbnQ2
NF90IHNlc3Npb25JRCA9IDA7CiAgICAgQVNTRVJUKGltYWdlKTsKICAgICByZW1vdmVJbWFnZUZy
b21DYWNoZSh1cmwsIGNhY2hlUGFydGl0aW9uKTsgLy8gUmVtb3ZlIGNhY2hlIGVudHJ5IGlmIGl0
IGFscmVhZHkgZXhpc3RzLgogCkBAIC0yNDAsMjEgKzI1MiwyNCBAQCBib29sIE1lbW9yeUNhY2hl
OjphZGRJbWFnZVRvQ2FjaGUoTmF0aXZlSW1hZ2VQdHIgaW1hZ2UsIGNvbnN0IFVSTCYgdXJsLCBj
b25zdCBTdAogI2lmIEVOQUJMRShDQUNIRV9QQVJUSVRJT05JTkcpCiAgICAgY2FjaGVkSW1hZ2Ut
PnJlc291cmNlUmVxdWVzdCgpLnNldENhY2hlUGFydGl0aW9uKGNhY2hlUGFydGl0aW9uKTsKICNl
bmRpZgorICAgIGNhY2hlZEltYWdlLT5yZXNvdXJjZVJlcXVlc3QoKS5zZXRTZXNzaW9uSUQoc2Vz
c2lvbklEKTsKICAgICBhZGQoY2FjaGVkSW1hZ2UucmVsZWFzZSgpKTsKICAgICByZXR1cm4gdHJ1
ZTsKIH0KIAogdm9pZCBNZW1vcnlDYWNoZTo6cmVtb3ZlSW1hZ2VGcm9tQ2FjaGUoY29uc3QgVVJM
JiB1cmwsIGNvbnN0IFN0cmluZyYgY2FjaGVQYXJ0aXRpb24pCiB7CisgICAgdWludDY0X3Qgc2Vz
c2lvbklEID0gMDsKKyAgICBTdHJpbmcga2V5ID0gY2FjaGVTdHJpbmcodXJsLCBzZXNzaW9uSUQp
OwogI2lmIEVOQUJMRShDQUNIRV9QQVJUSVRJT05JTkcpCiAgICAgQ2FjaGVkUmVzb3VyY2UqIHJl
c291cmNlOwotICAgIGlmIChDYWNoZWRSZXNvdXJjZUl0ZW0qIGl0ZW0gPSBtX3Jlc291cmNlcy5n
ZXQodXJsKSkKKyAgICBpZiAoQ2FjaGVkUmVzb3VyY2VJdGVtKiBpdGVtID0gbV9yZXNvdXJjZXMu
Z2V0KGtleSkpCiAgICAgICAgIHJlc291cmNlID0gaXRlbS0+Z2V0KFJlc291cmNlUmVxdWVzdDo6
cGFydGl0aW9uTmFtZShjYWNoZVBhcnRpdGlvbikpOwogICAgIGVsc2UKICAgICAgICAgcmVzb3Vy
Y2UgPSBudWxscHRyOwogI2Vsc2UKICAgICBVTlVTRURfUEFSQU0oY2FjaGVQYXJ0aXRpb24pOwot
ICAgIENhY2hlZFJlc291cmNlKiByZXNvdXJjZSA9IG1fcmVzb3VyY2VzLmdldCh1cmwpOworICAg
IENhY2hlZFJlc291cmNlKiByZXNvdXJjZSA9IG1fcmVzb3VyY2VzLmdldChrZXkpOwogI2VuZGlm
CiAgICAgaWYgKCFyZXNvdXJjZSkKICAgICAgICAgcmV0dXJuOwpAQCAtNTIwLDE5ICs1MzUsMjAg
QEAgdm9pZCBNZW1vcnlDYWNoZTo6ZXZpY3QoQ2FjaGVkUmVzb3VyY2UqIHJlc291cmNlKQogewog
ICAgIEFTU0VSVChXVEY6OmlzTWFpblRocmVhZCgpKTsKICAgICBMT0coUmVzb3VyY2VMb2FkaW5n
LCAiRXZpY3RpbmcgcmVzb3VyY2UgJXAgZm9yICclcycgZnJvbSBjYWNoZSIsIHJlc291cmNlLCBy
ZXNvdXJjZS0+dXJsKCkuc3RyaW5nKCkubGF0aW4xKCkuZGF0YSgpKTsKKyAgICBTdHJpbmcga2V5
ID0gY2FjaGVTdHJpbmcocmVzb3VyY2UtPnVybCgpLCByZXNvdXJjZS0+cmVzb3VyY2VSZXF1ZXN0
KCkuc2Vzc2lvbklEKCkpOwogICAgIC8vIFRoZSByZXNvdXJjZSBtYXkgaGF2ZSBhbHJlYWR5IGJl
ZW4gcmVtb3ZlZCBieSBzb21lb25lIG90aGVyIHRoYW4gb3VyIGNhbGxlciwKICAgICAvLyB3aG8g
bmVlZGVkIGEgZnJlc2ggY29weSBmb3IgYSByZWxvYWQuIFNlZSA8aHR0cDovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI0NzkjYzY+LgogICAgIGlmIChyZXNvdXJjZS0+aW5DYWNo
ZSgpKSB7CiAgICAgICAgIC8vIFJlbW92ZSBmcm9tIHRoZSByZXNvdXJjZSBtYXAuCiAjaWYgRU5B
QkxFKENBQ0hFX1BBUlRJVElPTklORykKLSAgICAgICAgQ2FjaGVkUmVzb3VyY2VJdGVtKiBpdGVt
ID0gbV9yZXNvdXJjZXMuZ2V0KHJlc291cmNlLT51cmwoKSk7CisgICAgICAgIENhY2hlZFJlc291
cmNlSXRlbSogaXRlbSA9IG1fcmVzb3VyY2VzLmdldChrZXkpOwogICAgICAgICBpZiAoaXRlbSkg
ewogICAgICAgICAgICAgaXRlbS0+cmVtb3ZlKHJlc291cmNlLT5jYWNoZVBhcnRpdGlvbigpKTsK
ICAgICAgICAgICAgIGlmICghaXRlbS0+c2l6ZSgpKQotICAgICAgICAgICAgICAgIG1fcmVzb3Vy
Y2VzLnJlbW92ZShyZXNvdXJjZS0+dXJsKCkpOworICAgICAgICAgICAgICAgIG1fcmVzb3VyY2Vz
LnJlbW92ZShrZXkpOwogICAgICAgICB9CiAjZWxzZQotICAgICAgICBtX3Jlc291cmNlcy5yZW1v
dmUocmVzb3VyY2UtPnVybCgpKTsKKyAgICAgICAgbV9yZXNvdXJjZXMucmVtb3ZlKGtleSk7CiAj
ZW5kaWYKICAgICAgICAgcmVzb3VyY2UtPnNldEluQ2FjaGUoZmFsc2UpOwogCkBAIC01NDcsOSAr
NTYzLDkgQEAgdm9pZCBNZW1vcnlDYWNoZTo6ZXZpY3QoQ2FjaGVkUmVzb3VyY2UqIHJlc291cmNl
KQogICAgICAgICAgICAgYWRqdXN0U2l6ZShyZXNvdXJjZS0+aGFzQ2xpZW50cygpLCAtc3RhdGlj
X2Nhc3Q8aW50PihyZXNvdXJjZS0+c2l6ZSgpKSk7CiAgICAgfSBlbHNlCiAjaWYgRU5BQkxFKENB
Q0hFX1BBUlRJVElPTklORykKLSAgICAgICAgQVNTRVJUKCFtX3Jlc291cmNlcy5nZXQocmVzb3Vy
Y2UtPnVybCgpKSB8fCBtX3Jlc291cmNlcy5nZXQocmVzb3VyY2UtPnVybCgpKS0+Z2V0KHJlc291
cmNlLT5jYWNoZVBhcnRpdGlvbigpKSAhPSByZXNvdXJjZSk7CisgICAgICAgIEFTU0VSVCghbV9y
ZXNvdXJjZXMuZ2V0KGtleSkgfHwgbV9yZXNvdXJjZXMuZ2V0KGtleSktPmdldChyZXNvdXJjZS0+
Y2FjaGVQYXJ0aXRpb24oKSkgIT0gcmVzb3VyY2UpOwogI2Vsc2UKLSAgICAgICAgQVNTRVJUKG1f
cmVzb3VyY2VzLmdldChyZXNvdXJjZS0+dXJsKCkpICE9IHJlc291cmNlKTsKKyAgICAgICAgQVNT
RVJUKG1fcmVzb3VyY2VzLmdldChrZXkpICE9IHJlc291cmNlKTsKICNlbmRpZgogCiAgICAgcmVz
b3VyY2UtPmRlbGV0ZUlmUG9zc2libGUoKTsKQEAgLTgwOCw5ICs4MjQsMTEgQEAgdm9pZCBNZW1v
cnlDYWNoZTo6YWRqdXN0U2l6ZShib29sIGxpdmUsIGludCBkZWx0YSkKICAgICB9CiB9CiAKLXZv
aWQgTWVtb3J5Q2FjaGU6OnJlbW92ZVVybEZyb21DYWNoZShTY3JpcHRFeGVjdXRpb25Db250ZXh0
KiBjb250ZXh0LCBjb25zdCBTdHJpbmcmIHVybFN0cmluZykKK3ZvaWQgTWVtb3J5Q2FjaGU6OnJl
bW92ZVVybEZyb21DYWNoZShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBjb25zdCBT
dHJpbmcmIHVybFN0cmluZywgdWludDY0X3Qgc2Vzc2lvbklEKQogewotICAgIHJlbW92ZVJlcXVl
c3RGcm9tQ2FjaGUoY29udGV4dCwgUmVzb3VyY2VSZXF1ZXN0KHVybFN0cmluZykpOworICAgIFJl
c291cmNlUmVxdWVzdCByZXF1ZXN0ID0gUmVzb3VyY2VSZXF1ZXN0KHVybFN0cmluZyk7CisgICAg
cmVxdWVzdC5zZXRTZXNzaW9uSUQoc2Vzc2lvbklEKTsKKyAgICByZW1vdmVSZXF1ZXN0RnJvbUNh
Y2hlKGNvbnRleHQsIHJlcXVlc3QpOwogfQogCiB2b2lkIE1lbW9yeUNhY2hlOjpyZW1vdmVSZXF1
ZXN0RnJvbUNhY2hlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIGNvbnN0IFJlc291
cmNlUmVxdWVzdCYgcmVxdWVzdCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9j
YWNoZS9NZW1vcnlDYWNoZS5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL01lbW9yeUNh
Y2hlLmgKaW5kZXggYzAyM2E5Ny4uMWFjNmQ4OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
bG9hZGVyL2NhY2hlL01lbW9yeUNhY2hlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2Nh
Y2hlL01lbW9yeUNhY2hlLmgKQEAgLTE3MCw3ICsxNzAsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBm
bHVzaENhY2hlZEltYWdlc1RvRGlzaygpOyAvLyBGbHVzaCBlbmNvZGVkIGRhdGEgZnJvbSByZXNv
dXJjZXMgc3RpbGwgcmVmZXJlbmNlZCBieSB3ZWIgcGFnZXMuCiAjZW5kaWYKIAotICAgIHN0YXRp
YyB2b2lkIHJlbW92ZVVybEZyb21DYWNoZShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgY29uc3Qg
U3RyaW5nJiB1cmxTdHJpbmcpOworICAgIHN0YXRpYyB2b2lkIHJlbW92ZVVybEZyb21DYWNoZShT
Y3JpcHRFeGVjdXRpb25Db250ZXh0KiwgY29uc3QgU3RyaW5nJiB1cmxTdHJpbmcsIHVpbnQ2NF90
IHNlc3Npb25JRCk7CiAgICAgc3RhdGljIHZvaWQgcmVtb3ZlUmVxdWVzdEZyb21DYWNoZShTY3Jp
cHRFeGVjdXRpb25Db250ZXh0KiwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0Jik7CiAKICAgICAvLyBG
dW5jdGlvbiB0byBjb2xsZWN0IGNhY2hlIHN0YXRpc3RpY3MgZm9yIHRoZSBjYWNoZXMgd2luZG93
IGluIHRoZSBTYWZhcmkgRGVidWcgbWVudS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvUGFnZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCmluZGV4IGRlOWM2OGUu
LmVjODc5ZGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcApAQCAtMTkyLDYgKzE5Miw3IEBAIFBhZ2U6OlBh
Z2UoUGFnZUNsaWVudHMmIHBhZ2VDbGllbnRzKQogI2VuZGlmCiAgICAgLCBtX2xhc3RTcGF0aWFs
TmF2aWdhdGlvbkNhbmRpZGF0ZXNDb3VudCgwKSAvLyBOT1RFOiBPbmx5IGNhbGxlZCBmcm9tIElu
dGVybmFscyBmb3IgU3BhdGlhbCBOYXZpZ2F0aW9uIHRlc3RpbmcuCiAgICAgLCBtX2ZyYW1lc0hh
bmRsaW5nQmVmb3JlVW5sb2FkRXZlbnQoMCkKKyAgICAsIG1fc2Vzc2lvbklEKDApCiB7CiAgICAg
QVNTRVJUKG1fZWRpdG9yQ2xpZW50KTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9QYWdlLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaAppbmRleCA3M2FlOWM5Li4wM2I5
ZmY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL1BhZ2UuaApAQCAtNDE0LDYgKzQxNCw4IEBAIHB1YmxpYzoKIAogICAgIHZv
aWQgc2V0VXNlckNvbnRlbnRDb250cm9sbGVyKFVzZXJDb250ZW50Q29udHJvbGxlciopOwogICAg
IFVzZXJDb250ZW50Q29udHJvbGxlciogdXNlckNvbnRlbnRDb250cm9sbGVyKCkgeyByZXR1cm4g
bV91c2VyQ29udGVudENvbnRyb2xsZXIuZ2V0KCk7IH0KKyAgICB1aW50NjRfdCBzZXNzaW9uSUQo
KSBjb25zdCB7IHJldHVybiBtX3Nlc3Npb25JRDsgfQorICAgIHZvaWQgc2V0U2Vzc2lvbklEKHVp
bnQ2NF90IHNlc3Npb25JRCkgeyBtX3Nlc3Npb25JRCA9IHNlc3Npb25JRDsgfQogCiBwcml2YXRl
OgogICAgIHZvaWQgaW5pdEdyb3VwKCk7CkBAIC01NTgsNiArNTYwLDggQEAgcHJpdmF0ZToKICAg
ICB1bnNpZ25lZCBtX2ZyYW1lc0hhbmRsaW5nQmVmb3JlVW5sb2FkRXZlbnQ7CiAKICAgICBSZWZQ
dHI8VXNlckNvbnRlbnRDb250cm9sbGVyPiBtX3VzZXJDb250ZW50Q29udHJvbGxlcjsKKworICAg
IHVpbnQ2NF90IG1fc2Vzc2lvbklEOwogfTsKIAogaW5saW5lIFBhZ2VHcm91cCYgUGFnZTo6Z3Jv
dXAoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9OZXR3b3Jr
aW5nQ29udGV4dC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9OZXR3b3JraW5n
Q29udGV4dC5oCmluZGV4IGZjZmZjMDQuLmE0ODYzNTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL25ldHdvcmsvTmV0d29ya2luZ0NvbnRleHQuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtpbmdDb250ZXh0LmgKQEAgLTU5LDYgKzU5LDcg
QEAgcHVibGljOgogCiAjaWYgUExBVEZPUk0oQ09DT0EpIHx8IFVTRShDRk5FVFdPUkspIHx8IFVT
RShTT1VQKQogICAgIHZpcnR1YWwgTmV0d29ya1N0b3JhZ2VTZXNzaW9uJiBzdG9yYWdlU2Vzc2lv
bigpIGNvbnN0ID0gMDsKKyAgICB2aXJ0dWFsIHVpbnQ2NF90IHNlc3Npb25JRCgpIGNvbnN0IHsg
cmV0dXJuIDA7IH0KICNlbmRpZgogCiAjaWYgUExBVEZPUk0oV0lOKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZVJlcXVlc3RCYXNlLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlUmVxdWVzdEJhc2UuaAppbmRleCBl
YTY2ZDYxLi4xNjE0ZDI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3
b3JrL1Jlc291cmNlUmVxdWVzdEJhc2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9u
ZXR3b3JrL1Jlc291cmNlUmVxdWVzdEJhc2UuaApAQCAtNjcsNiArNjcsOSBAQCBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAgICAgICAgIGNvbnN0IFVSTCYgdXJsKCkgY29uc3Q7CiAgICAgICAgIHZvaWQg
c2V0VVJMKGNvbnN0IFVSTCYgdXJsKTsKIAorICAgICAgICB1aW50NjRfdCBzZXNzaW9uSUQoKSBj
b25zdCB7IHJldHVybiBtX3Nlc3Npb25JRDsgfQorICAgICAgICB2b2lkIHNldFNlc3Npb25JRCh1
aW50NjRfdCBzZXNzaW9uSUQpIHsgbV9zZXNzaW9uSUQgPSBzZXNzaW9uSUQ7IH0KKwogICAgICAg
ICB2b2lkIHJlbW92ZUNyZWRlbnRpYWxzKCk7CiAKICAgICAgICAgUmVzb3VyY2VSZXF1ZXN0Q2Fj
aGVQb2xpY3kgY2FjaGVQb2xpY3koKSBjb25zdDsKQEAgLTE1Miw3ICsxNTUsOCBAQCBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAgICAgcHJvdGVjdGVkOgogICAgICAgICAvLyBVc2VkIHdoZW4gUmVzb3Vy
Y2VSZXF1ZXN0IGlzIGluaXRpYWxpemVkIGZyb20gYSBwbGF0Zm9ybSByZXByZXNlbnRhdGlvbiBv
ZiB0aGUgcmVxdWVzdAogICAgICAgICBSZXNvdXJjZVJlcXVlc3RCYXNlKCkKLSAgICAgICAgICAg
IDogbV9yZXNvdXJjZVJlcXVlc3RVcGRhdGVkKGZhbHNlKQorICAgICAgICAgICAgOiBtX3Nlc3Np
b25JRCgwKQorICAgICAgICAgICAgLCBtX3Jlc291cmNlUmVxdWVzdFVwZGF0ZWQoZmFsc2UpCiAg
ICAgICAgICAgICAsIG1fcGxhdGZvcm1SZXF1ZXN0VXBkYXRlZCh0cnVlKQogICAgICAgICAgICAg
LCBtX3Jlc291cmNlUmVxdWVzdEJvZHlVcGRhdGVkKGZhbHNlKQogICAgICAgICAgICAgLCBtX3Bs
YXRmb3JtUmVxdWVzdEJvZHlVcGRhdGVkKHRydWUpCkBAIC0xNjUsNiArMTY5LDcgQEAgbmFtZXNw
YWNlIFdlYkNvcmUgewogCiAgICAgICAgIFJlc291cmNlUmVxdWVzdEJhc2UoY29uc3QgVVJMJiB1
cmwsIFJlc291cmNlUmVxdWVzdENhY2hlUG9saWN5IHBvbGljeSkKICAgICAgICAgICAgIDogbV91
cmwodXJsKQorICAgICAgICAgICAgLCBtX3Nlc3Npb25JRCgwKQogICAgICAgICAgICAgLCBtX3Rp
bWVvdXRJbnRlcnZhbChzX2RlZmF1bHRUaW1lb3V0SW50ZXJ2YWwpCiAgICAgICAgICAgICAsIG1f
aHR0cE1ldGhvZChBU0NJSUxpdGVyYWwoIkdFVCIpKQogICAgICAgICAgICAgLCBtX2NhY2hlUG9s
aWN5KHBvbGljeSkKQEAgLTE5MSw2ICsxOTYsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAg
ICAgIHN0YXRpYyBib29sIHBsYXRmb3JtQ29tcGFyZShjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBj
b25zdCBSZXNvdXJjZVJlcXVlc3QmKSB7IHJldHVybiB0cnVlOyB9CiAKICAgICAgICAgVVJMIG1f
dXJsOworICAgICAgICB1aW50NjRfdCBtX3Nlc3Npb25JRDsKICAgICAgICAgZG91YmxlIG1fdGlt
ZW91dEludGVydmFsOyAvLyAwIGlzIGEgbWFnaWMgdmFsdWUgZm9yIHBsYXRmb3JtIGRlZmF1bHQg
b24gcGxhdGZvcm1zIHRoYXQgaGF2ZSBvbmUuCiAgICAgICAgIFVSTCBtX2ZpcnN0UGFydHlGb3JD
b29raWVzOwogICAgICAgICBTdHJpbmcgbV9odHRwTWV0aG9kOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9SZXNvdXJjZVJlcXVlc3QuaCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvUmVzb3VyY2VSZXF1ZXN0LmgKaW5kZXggNTM0MTk4
OC4uMmM2MjI4OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9j
Zi9SZXNvdXJjZVJlcXVlc3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3Jr
L2NmL1Jlc291cmNlUmVxdWVzdC5oCkBAIC01Nyw3ICs1Nyw3IEBAIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKICAgICAgICAgewogICAgICAgICB9CiAKLSAgICAgICAgUmVzb3VyY2VSZXF1ZXN0KGNvbnN0
IFVSTCYgdXJsLCBjb25zdCBTdHJpbmcmIHJlZmVycmVyLCBSZXNvdXJjZVJlcXVlc3RDYWNoZVBv
bGljeSBwb2xpY3kgPSBVc2VQcm90b2NvbENhY2hlUG9saWN5KSAKKyAgICAgICAgUmVzb3VyY2VS
ZXF1ZXN0KGNvbnN0IFVSTCYgdXJsLCBjb25zdCBTdHJpbmcmIHJlZmVycmVyLCBSZXNvdXJjZVJl
cXVlc3RDYWNoZVBvbGljeSBwb2xpY3kgPSBVc2VQcm90b2NvbENhY2hlUG9saWN5KQogICAgICAg
ICAgICAgOiBSZXNvdXJjZVJlcXVlc3RCYXNlKHVybCwgcG9saWN5KQogI2lmIFBMQVRGT1JNKElP
UykKICAgICAgICAgICAgICwgbV9tYWluUmVzb3VyY2VSZXF1ZXN0KGZhbHNlKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmlu
ZGV4IDliNzMyMTQuLjIwOTMwNjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxv
ZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsNSArMSwyNCBAQAogMjAxNC0w
Mi0xMCAgTWFydGluIEhvY2sgIDxtaG9ja0BhcHBsZS5jb20+CiAKKyAgICAgICAgQWRkIHN1cHBv
cnQgZm9yIHNlc3Npb25zIHRvIE1lbW9yeUNhY2hlLgorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI3Nzk0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9SZW1vdGVOZXR3b3JraW5n
Q29udGV4dC5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvbWFjL1dlYkZy
YW1lTmV0d29ya2luZ0NvbnRleHQuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L21hYy9XZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0Lm1tOgorICAgICAgICAoV2ViS2l0OjpX
ZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0OjpzdG9yYWdlU2Vzc2lvbik6CisgICAgICAgIChXZWJL
aXQ6OldlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQ6OnNlc3Npb25JRCk6CisgICAgICAgICogV2Vi
UHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpX
ZWJQYWdlKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6c2Vzc2lvbklEKToKKyAgICAgICAg
KFdlYktpdDo6V2ViUGFnZTo6c2V0U2Vzc2lvbklEKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFn
ZTo6dXBkYXRlUHJlZmVyZW5jZXMpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQ
YWdlLmg6CisKKzIwMTQtMDItMTAgIE1hcnRpbiBIb2NrICA8bWhvY2tAYXBwbGUuY29tPgorCiAg
ICAgICAgIEFkZCBBUEkgZm9yIGFjY2Vzc2luZyBzZXNzaW9uIGVwaGVtZXJhbGl0eSBmcm9tIGEg
cGFnZSBidW5kbGUKICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTEyODQxMAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9S
ZW1vdGVOZXR3b3JraW5nQ29udGV4dC5oIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3Mv
UmVtb3RlTmV0d29ya2luZ0NvbnRleHQuaAppbmRleCBlM2VkMTJiLi5jZWU3ZTJhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9SZW1vdGVOZXR3b3JraW5nQ29udGV4
dC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL1JlbW90ZU5ldHdvcmtpbmdD
b250ZXh0LmgKQEAgLTQzLDYgKzQzLDcgQEAgcHVibGljOgogICAgIHN0YXRpYyB2b2lkIGVuc3Vy
ZVByaXZhdGVCcm93c2luZ1Nlc3Npb24odWludDY0X3Qgc2Vzc2lvbklEKTsKIAogICAgIHZpcnR1
YWwgYm9vbCBzaG91bGRDbGVhclJlZmVycmVyT25IVFRQU1RvSFRUUFJlZGlyZWN0KCkgY29uc3Qg
b3ZlcnJpZGUgeyByZXR1cm4gbV9zaG91bGRDbGVhclJlZmVycmVyT25IVFRQU1RvSFRUUFJlZGly
ZWN0OyB9CisgICAgdmlydHVhbCB1aW50NjRfdCBzZXNzaW9uSUQoKSBjb25zdCBvdmVycmlkZSB7
IHJldHVybiBtX3Nlc3Npb25JRDsgfQogCiBwcml2YXRlOgogICAgIFJlbW90ZU5ldHdvcmtpbmdD
b250ZXh0KHVpbnQ2NF90IHNlc3Npb25JRCwgYm9vbCBzaG91bGRDbGVhclJlZmVycmVyT25IVFRQ
U1RvSFRUUFJlZGlyZWN0KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJDb3JlU3VwcG9ydC9tYWMvV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5oIGIvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9tYWMvV2ViRnJhbWVOZXR3b3JraW5nQ29u
dGV4dC5oCmluZGV4IDg2MjlmYTguLjdiNmUxMWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvbWFjL1dlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQu
aAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L21hYy9XZWJG
cmFtZU5ldHdvcmtpbmdDb250ZXh0LmgKQEAgLTU4LDYgKzU4LDcgQEAgcHJpdmF0ZToKICAgICB2
aXJ0dWFsIFJldGFpblB0cjxDRkRhdGFSZWY+IHNvdXJjZUFwcGxpY2F0aW9uQXVkaXREYXRhKCkg
Y29uc3Qgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yIGJsb2Nr
ZWRFcnJvcihjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmKSBjb25zdCBvdmVycmlkZTsK
ICAgICB2aXJ0dWFsIFdlYkNvcmU6Ok5ldHdvcmtTdG9yYWdlU2Vzc2lvbiYgc3RvcmFnZVNlc3Np
b24oKSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHVpbnQ2NF90IHNlc3Npb25JRCgpIGNv
bnN0IG92ZXJyaWRlOwogfTsKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9tYWMvV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5tbSBiL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvbWFjL1dlYkZyYW1lTmV0d29y
a2luZ0NvbnRleHQubW0KaW5kZXggNzQ2MWM0Ni4uYjNjODg0MiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9tYWMvV2ViRnJhbWVOZXR3b3JraW5n
Q29udGV4dC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L21hYy9XZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0Lm1tCkBAIC0xMDEsMTAgKzEwMSwxNCBAQCBS
ZXNvdXJjZUVycm9yIFdlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQ6OmJsb2NrZWRFcnJvcihjb25z
dCBSZXNvdXJjZVJlcXVlc3QmIHJlcQogTmV0d29ya1N0b3JhZ2VTZXNzaW9uJiBXZWJGcmFtZU5l
dHdvcmtpbmdDb250ZXh0OjpzdG9yYWdlU2Vzc2lvbigpIGNvbnN0CiB7CiAgICAgQVNTRVJUKGlz
TWFpblRocmVhZCgpKTsKKyAgICByZXR1cm4gKlNlc3Npb25UcmFja2VyOjpzZXNzaW9uKHNlc3Np
b25JRCgpKTsKK30KIAordWludDY0X3QgV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dDo6c2Vzc2lv
bklEKCkgY29uc3QKK3sKICAgICBpZiAoZnJhbWUoKSkKLSAgICAgICAgcmV0dXJuICpTZXNzaW9u
VHJhY2tlcjo6c2Vzc2lvbih3ZWJGcmFtZUxvYWRlckNsaWVudCgpLT53ZWJGcmFtZSgpLT5wYWdl
KCktPnNlc3Npb25JRCgpKTsKLSAgICByZXR1cm4gTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpkZWZh
dWx0U3RvcmFnZVNlc3Npb24oKTsKKyAgICAgICAgcmV0dXJuIHdlYkZyYW1lTG9hZGVyQ2xpZW50
KCktPndlYkZyYW1lKCktPnBhZ2UoKS0+c2Vzc2lvbklEKCk7CisgICAgcmV0dXJuIFNlc3Npb25U
cmFja2VyOjpkZWZhdWx0U2Vzc2lvbklEOwogfQogCiBXZWJGcmFtZUxvYWRlckNsaWVudCogV2Vi
RnJhbWVOZXR3b3JraW5nQ29udGV4dDo6d2ViRnJhbWVMb2FkZXJDbGllbnQoKSBjb25zdApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwIGIv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCmluZGV4IDc4NDdk
YjYuLmU4MjhhNDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFn
ZS9XZWJQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2Vi
UGFnZS5jcHAKQEAgLTIzMCw3ICsyMzAsNiBAQCBQYXNzUmVmUHRyPFdlYlBhZ2U+IFdlYlBhZ2U6
OmNyZWF0ZSh1aW50NjRfdCBwYWdlSUQsIGNvbnN0IFdlYlBhZ2VDcmVhdGlvblBhcmFtZQogCiBX
ZWJQYWdlOjpXZWJQYWdlKHVpbnQ2NF90IHBhZ2VJRCwgY29uc3QgV2ViUGFnZUNyZWF0aW9uUGFy
YW1ldGVycyYgcGFyYW1ldGVycykKICAgICA6IG1fcGFnZUlEKHBhZ2VJRCkKLSAgICAsIG1fc2Vz
c2lvbklEKDApCiAgICAgLCBtX3ZpZXdTaXplKHBhcmFtZXRlcnMudmlld1NpemUpCiAgICAgLCBt
X2hhc1NlZW5QbHVnaW4oZmFsc2UpCiAgICAgLCBtX3VzZUZpeGVkTGF5b3V0KGZhbHNlKQpAQCAt
MjA5Niw4ICsyMDk1LDggQEAgdm9pZCBXZWJQYWdlOjpzZXRMYXllckhvc3RpbmdNb2RlKHVuc2ln
bmVkIGxheWVySG9zdGluZ01vZGUpCiAKIHVpbnQ2NF90IFdlYlBhZ2U6OnNlc3Npb25JRCgpIGNv
bnN0CiB7Ci0gICAgaWYgKG1fc2Vzc2lvbklEKQotICAgICAgICByZXR1cm4gbV9zZXNzaW9uSUQ7
CisgICAgaWYgKG1fcGFnZS0+c2Vzc2lvbklEKCkpCisgICAgICAgIHJldHVybiBtX3BhZ2UtPnNl
c3Npb25JRCgpOwogCiAgICAgcmV0dXJuIG1fcGFnZS0+c2V0dGluZ3MoKS5wcml2YXRlQnJvd3Np
bmdFbmFibGVkKCkgPyBTZXNzaW9uVHJhY2tlcjo6bGVnYWN5UHJpdmF0ZVNlc3Npb25JRCA6IFNl
c3Npb25UcmFja2VyOjpkZWZhdWx0U2Vzc2lvbklEOwogfQpAQCAtMjEwOSw3ICsyMTA4LDcgQEAg
Ym9vbCBXZWJQYWdlOjppc1VzaW5nRXBoZW1lcmFsU2Vzc2lvbigpIGNvbnN0CiAKIHZvaWQgV2Vi
UGFnZTo6c2V0U2Vzc2lvbklEKHVpbnQ2NF90IHNlc3Npb25JRCkKIHsKLSAgICBtX3Nlc3Npb25J
RCA9IHNlc3Npb25JRDsKKyAgICBtX3BhZ2UtPnNldFNlc3Npb25JRChzZXNzaW9uSUQpOwogICAg
IGlmIChTZXNzaW9uVHJhY2tlcjo6aXNFcGhlbWVyYWxJRChzZXNzaW9uSUQpKQogICAgICAgICBX
ZWJQcm9jZXNzOjpzaGFyZWQoKS5lbnN1cmVQcml2YXRlQnJvd3NpbmdTZXNzaW9uKHNlc3Npb25J
RCk7CiB9CkBAIC0yNDE2LDggKzI0MTUsOCBAQCB2b2lkIFdlYlBhZ2U6OnVwZGF0ZVByZWZlcmVu
Y2VzKGNvbnN0IFdlYlByZWZlcmVuY2VzU3RvcmUmIHN0b3JlKQogICAgIHNldHRpbmdzLnNldExv
Y2FsU3RvcmFnZUVuYWJsZWQoc3RvcmUuZ2V0Qm9vbFZhbHVlRm9yS2V5KFdlYlByZWZlcmVuY2Vz
S2V5Ojpsb2NhbFN0b3JhZ2VFbmFibGVkS2V5KCkpKTsKICAgICBzZXR0aW5ncy5zZXRYU1NBdWRp
dG9yRW5hYmxlZChzdG9yZS5nZXRCb29sVmFsdWVGb3JLZXkoV2ViUHJlZmVyZW5jZXNLZXk6Onhz
c0F1ZGl0b3JFbmFibGVkS2V5KCkpKTsKICAgICBzZXR0aW5ncy5zZXRGcmFtZUZsYXR0ZW5pbmdF
bmFibGVkKHN0b3JlLmdldEJvb2xWYWx1ZUZvcktleShXZWJQcmVmZXJlbmNlc0tleTo6ZnJhbWVG
bGF0dGVuaW5nRW5hYmxlZEtleSgpKSk7Ci0gICAgaWYgKG1fc2Vzc2lvbklEKQotICAgICAgICBz
ZXR0aW5ncy5zZXRQcml2YXRlQnJvd3NpbmdFbmFibGVkKFNlc3Npb25UcmFja2VyOjppc0VwaGVt
ZXJhbElEKG1fc2Vzc2lvbklEKSk7CisgICAgaWYgKG1fcGFnZS0+c2Vzc2lvbklEKCkpCisgICAg
ICAgIHNldHRpbmdzLnNldFByaXZhdGVCcm93c2luZ0VuYWJsZWQoU2Vzc2lvblRyYWNrZXI6Omlz
RXBoZW1lcmFsSUQobV9wYWdlLT5zZXNzaW9uSUQoKSkpOwogICAgIGVsc2UKICAgICAgICAgc2V0
dGluZ3Muc2V0UHJpdmF0ZUJyb3dzaW5nRW5hYmxlZChzdG9yZS5nZXRCb29sVmFsdWVGb3JLZXko
V2ViUHJlZmVyZW5jZXNLZXk6OnByaXZhdGVCcm93c2luZ0VuYWJsZWRLZXkoKSkpOwogICAgIHNl
dHRpbmdzLnNldERldmVsb3BlckV4dHJhc0VuYWJsZWQoc3RvcmUuZ2V0Qm9vbFZhbHVlRm9yS2V5
KFdlYlByZWZlcmVuY2VzS2V5OjpkZXZlbG9wZXJFeHRyYXNFbmFibGVkS2V5KCkpKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmggYi9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCmluZGV4IDNmYmZmYTMuLjI3
Mzk1YjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQ
YWdlLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaApA
QCAtODkyLDcgKzg5Miw2IEBAIHByaXZhdGU6CiAgICAgdm9pZCByZXBvcnRVc2VkRmVhdHVyZXMo
KTsKIAogICAgIHVpbnQ2NF90IG1fcGFnZUlEOwotICAgIHVpbnQ2NF90IG1fc2Vzc2lvbklEOwog
CiAgICAgT3duUHRyPFdlYkNvcmU6OlBhZ2U+IG1fcGFnZTsKICAgICBSZWZQdHI8V2ViRnJhbWU+
IG1fbWFpbkZyYW1lOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>224535</attachid>
            <date>2014-02-18 12:50:58 -0800</date>
            <delta_ts>2014-02-18 15:54:25 -0800</delta_ts>
            <desc>Create another MemoryCache level; make WebCore sessionID-aware</desc>
            <filename>memcachesession.14.diff</filename>
            <type>text/plain</type>
            <size>79110</size>
            <attacher name="Martin Hock">mhock</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA4OTNhN2I2Li43MzA5OGExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNzUg
QEAKKzIwMTQtMDItMTggIE1hcnRpbiBIb2NrICA8bWhvY2tAYXBwbGUuY29tPgorCisgICAgICAg
IEFkZCBzdXBwb3J0IGZvciBzZXNzaW9ucyB0byBNZW1vcnlDYWNoZS4KKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyNzc5NAorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogR05VbWFrZWZpbGUubGlzdC5hbToK
KyAgICAgICAgKiBXZWJDb3JlLmV4cC5pbjoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2o6CisgICAgICAgICogaHRtbC9ET01VUkwuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6RE9NVVJMOjpyZXZva2VPYmplY3RVUkwpOiBSZW1vdmUgZnJvbSBNZW1vcnlDYWNoZSBv
ZiBhbGwgc2Vzc2lvbnMuCisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvclBhZ2VBZ2VudC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JQYWdlQWdlbnQ6OmNhY2hlZFJlc291cmNl
KTogUGFzcyBzZXNzaW9uSUQgdG8gTWVtb3J5Q2FjaGUuCisgICAgICAgICogaW5zcGVjdG9yL0lu
c3BlY3RvclJlc291cmNlQWdlbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yUmVz
b3VyY2VBZ2VudDo6cmVwbGF5WEhSKTogRGl0dG8uCisgICAgICAgICogbG9hZGVyL0RvY3VtZW50
TG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmFyZUFsbExvYWRlcnNQYWdlQ2FjaGVBY2Nl
cHRhYmxlKTogRGl0dG8uCisgICAgICAgICogbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyOjpsb2FkKTogTWFrZSBuZXdEb2N1bWVudExvYWRlciBh
d2FyZSBvZiBmcmFtZS4KKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyOjphY3RpdmVEb2N1
bWVudExvYWRlcik6IE1ha2UgYWN0aXZlRG9jdW1lbnRMb2FkZXIgYXdhcmUgb2YgZnJhbWUuCisg
ICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRlcjo6dGVsbENsaWVudEFib3V0UGFzdE1lbW9yeUNh
Y2hlTG9hZHMpOiBQYXNzIHNlc3Npb25JRCB0byBNZW1vcnlDYWNoZS4KKyAgICAgICAgKiBsb2Fk
ZXIvYXJjaGl2ZS9jZi9MZWdhY3lXZWJBcmNoaXZlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okxl
Z2FjeVdlYkFyY2hpdmU6OmNyZWF0ZSk6IERpdHRvLgorICAgICAgICAqIGxvYWRlci9jYWNoZS9D
YWNoZWRSZXNvdXJjZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRSZXNvdXJjZTo6Q2Fj
aGVkUmVzb3VyY2UpOiBJbml0aWFsaXplIHNlc3Npb25JRC4KKyAgICAgICAgKFdlYkNvcmU6OkNh
Y2hlZFJlc291cmNlOjp+Q2FjaGVkUmVzb3VyY2UpOiBQYXNzIHNlc3Npb25JRCB0byBNZW1vcnlD
YWNoZS4KKyAgICAgICAgKiBsb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2UuaDogQWRkIHNlc3Np
b25JRCBtZW1iZXIgdG8gQ2FjaGVkUmVzb3VyY2UuCisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRS
ZXNvdXJjZTo6c2Vzc2lvbklEKToKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hlZFJlc291cmNlOjpz
ZXRTZXNzaW9uSUQpOgorICAgICAgICAqIGxvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZUxvYWRl
ci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRSZXNvdXJjZUxvYWRlcjo6c2Vzc2lvbklE
KTogUmV0cmlldmUgc2Vzc2lvbklEIGZyb20gZnJhbWUncyBwYWdlLgorICAgICAgICAoV2ViQ29y
ZTo6Q2FjaGVkUmVzb3VyY2VMb2FkZXI6OnJlcXVlc3RVc2VyQ1NTU3R5bGVTaGVldCk6IFBhc3Mg
c2Vzc2lvbklEIHRvIE1lbW9yeUNhY2hlLgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkUmVzb3Vy
Y2VMb2FkZXI6OnJlcXVlc3RSZXNvdXJjZSk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6Q2Fj
aGVkUmVzb3VyY2VMb2FkZXI6OnJldmFsaWRhdGVSZXNvdXJjZSk6IERpdHRvLgorICAgICAgICAo
V2ViQ29yZTo6Q2FjaGVkUmVzb3VyY2VMb2FkZXI6OmxvYWRSZXNvdXJjZSk6IERpdHRvLgorICAg
ICAgICAqIGxvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZUxvYWRlci5oOgorICAgICAgICAqIGxv
YWRlci9jYWNoZS9NZW1vcnlDYWNoZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZW1vcnlDYWNo
ZTo6Z2V0U2Vzc2lvbk1hcCk6IFJldHJpZXZlIENhY2hlZFJlc291cmNlTWFwIGJhc2VkIG9uIHNl
c3Npb25JRC4KKyAgICAgICAgKFdlYkNvcmU6Ok1lbW9yeUNhY2hlOjphZGQpOiBBZGQgc2Vzc2lv
bklEIHBhcmFtZXRlci4KKyAgICAgICAgKFdlYkNvcmU6Ok1lbW9yeUNhY2hlOjpyZXZhbGlkYXRp
b25TdWNjZWVkZWQpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6Ok1lbW9yeUNhY2hlOjpyZXNv
dXJjZUZvclVSTCk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6TWVtb3J5Q2FjaGU6OnJlc291
cmNlRm9yUmVxdWVzdCk6IERpdHRvLCBhbHNvIG1vdmUgaW1wbCBpbnRvIGltcGwgbWV0aG9kLgor
ICAgICAgICAoV2ViQ29yZTo6TWVtb3J5Q2FjaGU6OnJlc291cmNlRm9yUmVxdWVzdEltcGwpOiBB
ZGQgQ2FjaGVkUmVzb3VyY2VNYXAgcGFyYW1ldGVyLgorICAgICAgICAoV2ViQ29yZTo6TWVtb3J5
Q2FjaGU6OmFkZEltYWdlVG9DYWNoZSk6IFVzZSBkZWZhdWx0IHNlc3Npb25JRC4KKyAgICAgICAg
KFdlYkNvcmU6Ok1lbW9yeUNhY2hlOjpyZW1vdmVJbWFnZUZyb21DYWNoZSk6IERpdHRvLgorICAg
ICAgICAoV2ViQ29yZTo6TWVtb3J5Q2FjaGU6OmV2aWN0KTogVXNlIHNlc3Npb25JRCBmcm9tIENh
Y2hlZFJlc291cmNlIHBhcmFtZXRlci4KKyAgICAgICAgKFdlYkNvcmU6Ok1lbW9yeUNhY2hlOjpy
ZW1vdmVSZXNvdXJjZXNXaXRoT3JpZ2luKTogSXRlcmF0ZSB0aHJvdWdoIGFsbCBDYWNoZWRSZXNv
dXJjZU1hcHMuCisgICAgICAgIChXZWJDb3JlOjpNZW1vcnlDYWNoZTo6Z2V0T3JpZ2luc1dpdGhD
YWNoZSk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6TWVtb3J5Q2FjaGU6OnJlbW92ZVVybEZy
b21DYWNoZSk6IEFkZCBzZXNzaW9uSUQgcGFyYW1ldGVyLgorICAgICAgICAoV2ViQ29yZTo6TWVt
b3J5Q2FjaGU6OnJlbW92ZVJlcXVlc3RGcm9tQ2FjaGUpOiBEaXR0by4KKyAgICAgICAgKFdlYkNv
cmU6Ok1lbW9yeUNhY2hlOjpyZW1vdmVSZXF1ZXN0RnJvbUNhY2hlSW1wbCk6IERpdHRvLgorICAg
ICAgICAoV2ViQ29yZTo6TWVtb3J5Q2FjaGU6OnJlbW92ZVJlcXVlc3RGcm9tU2Vzc2lvbkNhY2hl
cyk6IEl0ZXJhdGUgdGhyb3VnaCBhbGwgQ2FjaGVkUmVzb3VyY2VNYXBzLgorICAgICAgICAoV2Vi
Q29yZTo6TWVtb3J5Q2FjaGU6OmNyb3NzVGhyZWFkUmVtb3ZlUmVxdWVzdEZyb21DYWNoZSk6IEFk
ZCBzZXNzaW9uSUQgcGFyYW1ldGVyLgorICAgICAgICAoV2ViQ29yZTo6TWVtb3J5Q2FjaGU6Omdl
dFN0YXRpc3RpY3MpOiBJdGVyYXRlIHRocm91Z2ggYWxsIENhY2hlZFJlc291cmNlTWFwcy4KKyAg
ICAgICAgKFdlYkNvcmU6Ok1lbW9yeUNhY2hlOjpzZXREaXNhYmxlZCk6IERpdHRvLgorICAgICAg
ICAqIGxvYWRlci9jYWNoZS9NZW1vcnlDYWNoZS5oOiBDcmVhdGUgYW5vdGhlciBsZXZlbCBmb3Ig
Y2FjaGUuCisgICAgICAgICogcGFnZS9QYWdlLmNwcDogQWRkIHNlc3Npb25JRCBtZW1iZXIuCisg
ICAgICAgIChXZWJDb3JlOjpQYWdlOjpQYWdlKToKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2U6OnNl
c3Npb25JRCk6IFJldHJpZXZlIHNlc3Npb25JRCBvciB1c2Ugc2V0dGluZ3MgaWYgbm90IHNldC4K
KyAgICAgICAgKiBwYWdlL1BhZ2UuaDogQWRkIHNlc3Npb25JRCBtZW1iZXIuCisgICAgICAgIChX
ZWJDb3JlOjpQYWdlOjppc1Nlc3Npb25JRFNldCk6CisgICAgICAgIChXZWJDb3JlOjpQYWdlOjpz
ZXRTZXNzaW9uSUQpOgorICAgICAgICAqIHBhZ2UvU2Vzc2lvbklELmg6IFN0YXRpYyB1dGlsaXR5
IGNsYXNzIGZvciBzZXNzaW9uSURzIHB1bGxlZCBmcm9tIFNlc3Npb25UcmFja2VyLgorICAgICAg
ICAoV2ViQ29yZTo6U2Vzc2lvbklEOjppc0VwaGVtZXJhbElEKToKKyAgICAgICAgKiBwbGF0Zm9y
bS9uZXR3b3JrL05ldHdvcmtpbmdDb250ZXh0Lmg6IEFkZCBzZXNzaW9uSUQoKSBtZXRob2QuCisg
ICAgICAgIChXZWJDb3JlOjpOZXR3b3JraW5nQ29udGV4dDo6c2Vzc2lvbklEKToKKyAgICAgICAg
KiBwbGF0Zm9ybS9uZXR3b3JrL2NmL1Jlc291cmNlUmVxdWVzdC5oOgorICAgICAgICAoV2ViQ29y
ZTo6UmVzb3VyY2VSZXF1ZXN0OjpSZXNvdXJjZVJlcXVlc3QpOiBSZW1vdmUgdHJhaWxpbmcgd2hp
dGVzcGFjZS4KKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFscy5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpJbnRlcm5hbHM6OmlzTG9hZGluZ0Zyb21NZW1vcnlDYWNoZSk6IFBhc3Mgc2Vzc2lvbklE
IHRvIE1lbW9yeUNhY2hlLgorCiAyMDE0LTAyLTE4ICBNaWhhaSBUaWNhICA8bWl0aWNhQGFkb2Jl
LmNvbT4KIAogICAgICAgICBbQ1NTIEJsZW5kaW5nXSBBZGQgLXdlYmtpdC1ibGVuZC1tb2RlIHN1
cHBvcnQgZm9yIFNWRy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxp
c3QuYW0gYi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCmluZGV4IDJmOWYxODEu
LjE2ZDYzMmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0K
KysrIGIvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQpAQCAtNDE4MSw2ICs0MTgx
LDcgQEAgd2ViY29yZV9zb3VyY2VzICs9IFwKIAlTb3VyY2UvV2ViQ29yZS9wYWdlL1NlY3VyaXR5
T3JpZ2luSGFzaC5oIFwKIAlTb3VyY2UvV2ViQ29yZS9wYWdlL1NlY3VyaXR5UG9saWN5LmNwcCBc
CiAJU291cmNlL1dlYkNvcmUvcGFnZS9TZWN1cml0eVBvbGljeS5oIFwKKwlTb3VyY2UvV2ViQ29y
ZS9wYWdlL1Nlc3Npb25JRC5oIFwKIAlTb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmNwcCBc
CiAJU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5oIFwKIAlTb3VyY2UvV2ViQ29yZS9wYWdl
L1NwYXRpYWxOYXZpZ2F0aW9uLmNwcCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLmV4cC5pbiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCmluZGV4IGE0YTg3ODMu
LjAxOTAyZTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCisrKyBi
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCkBAIC0xNjgsOSArMTY4LDkgQEAgX19aTjdX
ZWJDb3JlMTFNZW1vcnlDYWNoZTExc2V0RGlzYWJsZWRFYgogX19aTjdXZWJDb3JlMTFNZW1vcnlD
YWNoZTEzZ2V0U3RhdGlzdGljc0V2CiBfX1pON1dlYkNvcmUxMU1lbW9yeUNhY2hlMTNzZXRDYXBh
Y2l0aWVzRWpqagogX19aTjdXZWJDb3JlMTFNZW1vcnlDYWNoZTE0ZXZpY3RSZXNvdXJjZXNFdgot
X19aTjdXZWJDb3JlMTFNZW1vcnlDYWNoZTE0cmVzb3VyY2VGb3JVUkxFUktOU18zVVJMRQorX19a
TjdXZWJDb3JlMTFNZW1vcnlDYWNoZTE0cmVzb3VyY2VGb3JVUkxFUktOU18zVVJMRXkKIF9fWk43
V2ViQ29yZTExTWVtb3J5Q2FjaGUxNWFkZEltYWdlVG9DYWNoZUVQN0NHSW1hZ2VSS05TXzNVUkxF
UktOM1dURjZTdHJpbmdFCi1fX1pON1dlYkNvcmUxMU1lbW9yeUNhY2hlMThyZXNvdXJjZUZvclJl
cXVlc3RFUktOU18xNVJlc291cmNlUmVxdWVzdEUKK19fWk43V2ViQ29yZTExTWVtb3J5Q2FjaGUx
OHJlc291cmNlRm9yUmVxdWVzdEVSS05TXzE1UmVzb3VyY2VSZXF1ZXN0RXkKIF9fWk43V2ViQ29y
ZTExTWVtb3J5Q2FjaGUxOWdldE9yaWdpbnNXaXRoQ2FjaGVFUk4zV1RGN0hhc2hTZXRJTlMxXzZS
ZWZQdHJJTlNfMTRTZWN1cml0eU9yaWdpbkVFRU5TXzE4U2VjdXJpdHlPcmlnaW5IYXNoRU5TMV8x
MEhhc2hUcmFpdHNJUzVfRUVFRQogX19aTjdXZWJDb3JlMTFNZW1vcnlDYWNoZTIwcmVtb3ZlSW1h
Z2VGcm9tQ2FjaGVFUktOU18zVVJMRVJLTjNXVEY2U3RyaW5nRQogX19aTjdXZWJDb3JlMTFNZW1v
cnlDYWNoZTI1cmVtb3ZlUmVzb3VyY2VzV2l0aE9yaWdpbkVQTlNfMTRTZWN1cml0eU9yaWdpbkUK
QEAgLTE3MzcsNiArMTczNyw3IEBAIF9fWk5LN1dlYkNvcmU0UGFnZTE3dmlld3BvcnRBcmd1bWVu
dHNFdgogX19aTks3V2ViQ29yZTRQYWdlMzRpbkxvd1F1YWxpdHlJbWFnZUludGVycG9sYXRpb25N
b2RlRXYKIF9fWk5LN1dlYkNvcmU0UGFnZTlncm91cE5hbWVFdgogX19aTks3V2ViQ29yZTRQYWdl
OXBhZ2VDb3VudEV2CitfX1pOSzdXZWJDb3JlNFBhZ2U5c2Vzc2lvbklERXYKIF9fWk5LN1dlYkNv
cmU1Q29sb3IxMHNlcmlhbGl6ZWRFdgogX19aTks3V2ViQ29yZTVDb2xvcjdnZXRSR0JBRVJkUzFf
UzFfUzFfCiBfX1pOSzdXZWJDb3JlNUNvbG9yN2dldFJHQkFFUmZTMV9TMV9TMV8KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA4NDJl
Yjg4Li5kYTM3NjZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCkBAIC0yMjA3LDYgKzIyMDcsNyBAQAogCQk3NTQxNUQ1QTEyOUFCMkQy
MDAzQUQ2NjkgLyogSlNTcGVlY2hJbnB1dFJlc3VsdExpc3QuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDc1NDE1RDU0MTI5QUIyRDIwMDNBRDY2OSAvKiBK
U1NwZWVjaElucHV0UmVzdWx0TGlzdC5oICovOyB9OwogCQk3NTUzQ0ZFODEwOEY0NzNGMDBFQTI4
MUUgLyogVGltZWxpbmVSZWNvcmRGYWN0b3J5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA3NTUzQ0ZFNjEwOEY0NzNGMDBFQTI4MUUgLyogVGltZWxpbmVS
ZWNvcmRGYWN0b3J5LmggKi87IH07CiAJCTc1NTNDRkU5MTA4RjQ3M0YwMEVBMjgxRSAvKiBUaW1l
bGluZVJlY29yZEZhY3RvcnkuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gNzU1M0NGRTcxMDhGNDczRjAwRUEyODFFIC8qIFRpbWVsaW5lUmVjb3JkRmFj
dG9yeS5jcHAgKi87IH07CisJCTc1NjZGOUQwMThCM0NGMkMwMDE0QkY3OSAvKiBTZXNzaW9uSUQu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDc1NjZGOUNG
MThCM0NGMDQwMDE0QkY3OSAvKiBTZXNzaW9uSUQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk3NTc4RjkwQzExRERGMjY5MDBEOTMzQzUgLyogU3Bl
ZWNoSW5wdXQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDc1NzhGOTA5MTFEREYyNjkwMEQ5MzNDNSAvKiBTcGVlY2hJbnB1dC5oICovOyB9OwogCQk3NTc4
RjkwRDExRERGMjY5MDBEOTMzQzUgLyogU3BlZWNoSW5wdXRDbGllbnQuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDc1NzhGOTBBMTFEREYyNjkwMEQ5MzND
NSAvKiBTcGVlY2hJbnB1dENsaWVudC5oICovOyB9OwogCQk3NTc4RjkyMDExRTRFMzI4MDBEOTMz
QzUgLyogU3BlZWNoSW5wdXRMaXN0ZW5lci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNzU3OEY5MUUxMUU0RTMyODAwRDkzM0M1IC8qIFNwZWVjaElucHV0
TGlzdGVuZXIuaCAqLzsgfTsKQEAgLTkxMzEsNiArOTEzMiw3IEBACiAJCTc1NDE1RDU0MTI5QUIy
RDIwMDNBRDY2OSAvKiBKU1NwZWVjaElucHV0UmVzdWx0TGlzdC5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBKU1NwZWVjaElucHV0UmVzdWx0TGlzdC5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk3NTUzQ0ZFNjEwOEY0NzNGMDBFQTI4MUUgLyogVGltZWxpbmVSZWNv
cmRGYWN0b3J5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFRpbWVsaW5lUmVj
b3JkRmFjdG9yeS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3NTUzQ0ZFNzEwOEY0
NzNGMDBFQTI4MUUgLyogVGltZWxpbmVSZWNvcmRGYWN0b3J5LmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFRpbWVsaW5lUmVjb3JkRmFjdG9yeS5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCTc1NjZGOUNGMThCM0NGMDQwMDE0QkY3OSAvKiBTZXNzaW9u
SUQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU2Vzc2lvbklELmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTc1NzhGOTA5MTFEREYyNjkwMEQ5MzNDNSAvKiBTcGVl
Y2hJbnB1dC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTcGVlY2hJbnB1dC5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3NTc4RjkwQTExRERGMjY5MDBEOTMzQzUg
LyogU3BlZWNoSW5wdXRDbGllbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
U3BlZWNoSW5wdXRDbGllbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNzU3OEY5
MUUxMUU0RTMyODAwRDkzM0M1IC8qIFNwZWVjaElucHV0TGlzdGVuZXIuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gU3BlZWNoSW5wdXRMaXN0ZW5lci5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwpAQCAtMTYxNDcsNiArMTYxNDksNyBAQAogCQkJCUJDRDBFMEY5MEU5NzJD
MzUwMDI2NURFQSAvKiBTZWN1cml0eU9yaWdpbkhhc2guaCAqLywKIAkJCQk5NzREMkRBMjE0NkE1
MzVEMDBENTFGOEIgLyogU2VjdXJpdHlQb2xpY3kuY3BwICovLAogCQkJCTk3NEQyREEzMTQ2QTUz
NUQwMEQ1MUY4QiAvKiBTZWN1cml0eVBvbGljeS5oICovLAorCQkJCTc1NjZGOUNGMThCM0NGMDQw
MDE0QkY3OSAvKiBTZXNzaW9uSUQuaCAqLywKIAkJCQkxNEM5QTVFOTBCM0QxMDVGMDA1QTAyMzIg
LyogU2V0dGluZ3MuY3BwICovLAogCQkJCUY1ODc4NjNBMDJERTNBMTQwMUVBNDEyMiAvKiBTZXR0
aW5ncy5oICovLAogCQkJCUJDNTlERUY4MTY5REVEQzMwMDE2QUMzNCAvKiBTZXR0aW5ncy5pbiAq
LywKQEAgLTI1MjU1LDYgKzI1MjU4LDcgQEAKIAkJCQlDNTE2MEVFQjEwMDQ1NDNBMDBBN0NFRTIg
LyogU3RvcmFnZUFyZWFJbXBsLmggaW4gSGVhZGVycyAqLywKIAkJCQlDNTEwMkVDRjBGRDlFRjhD
MDBGQUZGMDQgLyogU3RvcmFnZUFyZWFTeW5jLmggaW4gSGVhZGVycyAqLywKIAkJCQlDRDU1OTY5
MjE0NzVCNjc4MDAxRDBCRDAgLyogQXVkaW9GaWxlUmVhZGVySU9TLmggaW4gSGVhZGVycyAqLywK
KwkJCQk3NTY2RjlEMDE4QjNDRjJDMDAxNEJGNzkgLyogU2Vzc2lvbklELmggaW4gSGVhZGVycyAq
LywKIAkJCQk1MUUwQkFCQjBEQTU1NDcxMDBBOUU0MTcgLyogU3RvcmFnZUV2ZW50LmggaW4gSGVh
ZGVycyAqLywKIAkJCQlCNTY1NzZFODE3REE5NEUyMDBBNTZCREMgLyogRE9NQ29uc3RydWN0b3JX
aXRoRG9jdW1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUM1RUJERDg0MTA1RURERUMwMDU2ODE2
RiAvKiBTdG9yYWdlRXZlbnREaXNwYXRjaGVyLmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvRE9NVVJMLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRE9N
VVJMLmNwcAppbmRleCA0ZTQ0MjU0Li41YjQ5ZGNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0RPTVVSTC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9ET01VUkwuY3BwCkBA
IC0xMjQsNyArMTI0LDcgQEAgdm9pZCBET01VUkw6OnJldm9rZU9iamVjdFVSTChTY3JpcHRFeGVj
dXRpb25Db250ZXh0KiBzY3JpcHRFeGVjdXRpb25Db250ZXh0LCBjb24KICNpZiBFTkFCTEUoQ0FD
SEVfUEFSVElUSU9OSU5HKQogICAgIHJlcXVlc3Quc2V0Q2FjaGVQYXJ0aXRpb24oc2NyaXB0RXhl
Y3V0aW9uQ29udGV4dC0+dG9wT3JpZ2luKCktPmNhY2hlUGFydGl0aW9uKCkpOwogI2VuZGlmCi0g
ICAgTWVtb3J5Q2FjaGU6OnJlbW92ZVJlcXVlc3RGcm9tQ2FjaGUoc2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCwgcmVxdWVzdCk7CisgICAgTWVtb3J5Q2FjaGU6OnJlbW92ZVJlcXVlc3RGcm9tU2Vzc2lv
bkNhY2hlcyhzY3JpcHRFeGVjdXRpb25Db250ZXh0LCByZXF1ZXN0KTsKIAogICAgIHNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQtPnB1YmxpY1VSTE1hbmFnZXIoKS5yZXZva2UodXJsKTsKIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JQYWdlQWdlbnQuY3BwIGIv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclBhZ2VBZ2VudC5jcHAKaW5kZXggY2Zl
ZTVkOC4uMzAxMjkwNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3Bl
Y3RvclBhZ2VBZ2VudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rv
clBhZ2VBZ2VudC5jcHAKQEAgLTI4Miw3ICsyODIsNyBAQCBDYWNoZWRSZXNvdXJjZSogSW5zcGVj
dG9yUGFnZUFnZW50OjpjYWNoZWRSZXNvdXJjZShGcmFtZSogZnJhbWUsIGNvbnN0IFVSTCYgdXJs
KQogI2lmIEVOQUJMRShDQUNIRV9QQVJUSVRJT05JTkcpCiAgICAgICAgIHJlcXVlc3Quc2V0Q2Fj
aGVQYXJ0aXRpb24oZnJhbWUtPmRvY3VtZW50KCktPnRvcE9yaWdpbigpLT5jYWNoZVBhcnRpdGlv
bigpKTsKICNlbmRpZgotICAgICAgICBjYWNoZWRSZXNvdXJjZSA9IG1lbW9yeUNhY2hlKCktPnJl
c291cmNlRm9yUmVxdWVzdChyZXF1ZXN0KTsKKyAgICAgICAgY2FjaGVkUmVzb3VyY2UgPSBtZW1v
cnlDYWNoZSgpLT5yZXNvdXJjZUZvclJlcXVlc3QocmVxdWVzdCwgZnJhbWUtPnBhZ2UoKS0+c2Vz
c2lvbklEKCkpOwogICAgIH0KIAogICAgIHJldHVybiBjYWNoZWRSZXNvdXJjZTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JSZXNvdXJjZUFnZW50LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JSZXNvdXJjZUFnZW50LmNwcAppbmRl
eCA4OWU1Y2Y0Li5iMWNkY2QyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
SW5zcGVjdG9yUmVzb3VyY2VBZ2VudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L0luc3BlY3RvclJlc291cmNlQWdlbnQuY3BwCkBAIC01OTQsNyArNTk0LDcgQEAgdm9pZCBJbnNw
ZWN0b3JSZXNvdXJjZUFnZW50OjpyZXBsYXlYSFIoRXJyb3JTdHJpbmcqLCBjb25zdCBTdHJpbmcm
IHJlcXVlc3RJZCkKICNpZiBFTkFCTEUoQ0FDSEVfUEFSVElUSU9OSU5HKQogICAgIHJlcXVlc3Qu
c2V0Q2FjaGVQYXJ0aXRpb24obV9wYWdlQWdlbnQtPm1haW5GcmFtZSgpLT5kb2N1bWVudCgpLT50
b3BPcmlnaW4oKS0+Y2FjaGVQYXJ0aXRpb24oKSk7CiAjZW5kaWYKLSAgICBDYWNoZWRSZXNvdXJj
ZSogY2FjaGVkUmVzb3VyY2UgPSBtZW1vcnlDYWNoZSgpLT5yZXNvdXJjZUZvclJlcXVlc3QocmVx
dWVzdCk7CisgICAgQ2FjaGVkUmVzb3VyY2UqIGNhY2hlZFJlc291cmNlID0gbWVtb3J5Q2FjaGUo
KS0+cmVzb3VyY2VGb3JSZXF1ZXN0KHJlcXVlc3QsIG1fcGFnZUFnZW50LT5wYWdlKCktPnNlc3Np
b25JRCgpKTsKICAgICBpZiAoY2FjaGVkUmVzb3VyY2UpCiAgICAgICAgIG1lbW9yeUNhY2hlKCkt
PnJlbW92ZShjYWNoZWRSZXNvdXJjZSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9Eb2N1bWVudExvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRM
b2FkZXIuY3BwCmluZGV4IDUzOWE1NWQuLjRjZWIyYjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9Eb2N1bWVudExvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVy
L0RvY3VtZW50TG9hZGVyLmNwcApAQCAtMTA1LDcgKzEwNSwxMCBAQCBzdGF0aWMgYm9vbCBhcmVB
bGxMb2FkZXJzUGFnZUNhY2hlQWNjZXB0YWJsZShjb25zdCBSZXNvdXJjZUxvYWRlclNldCYgbG9h
ZGVycykKICAgICAgICAgaWYgKCFoYW5kbGUpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAK
LSAgICAgICAgQ2FjaGVkUmVzb3VyY2UqIGNhY2hlZFJlc291cmNlID0gbWVtb3J5Q2FjaGUoKS0+
cmVzb3VyY2VGb3JVUkwoaGFuZGxlLT5maXJzdFJlcXVlc3QoKS51cmwoKSk7CisgICAgICAgIGlm
ICghbG9hZGVyLT5mcmFtZUxvYWRlcigpKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworCisg
ICAgICAgIENhY2hlZFJlc291cmNlKiBjYWNoZWRSZXNvdXJjZSA9IG1lbW9yeUNhY2hlKCktPnJl
c291cmNlRm9yVVJMKGhhbmRsZS0+Zmlyc3RSZXF1ZXN0KCkudXJsKCksIGxvYWRlci0+ZnJhbWVM
b2FkZXIoKS0+ZnJhbWUoKS5wYWdlKCktPnNlc3Npb25JRCgpKTsKICAgICAgICAgaWYgKCFjYWNo
ZWRSZXNvdXJjZSkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9GcmFtZUxvYWRlci5jcHAKaW5kZXggODE4MzBmMC4uMTdmYTEzZiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvRnJhbWVMb2FkZXIuY3BwCkBAIC0xMzcyLDYgKzEzNzIsOSBAQCB2b2lkIEZyYW1lTG9h
ZGVyOjpsb2FkV2l0aE5hdmlnYXRpb25BY3Rpb24oY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1
ZXN0LCBjb25zdAogCiB2b2lkIEZyYW1lTG9hZGVyOjpsb2FkKERvY3VtZW50TG9hZGVyKiBuZXdE
b2N1bWVudExvYWRlcikKIHsKKyAgICBpZiAoIW5ld0RvY3VtZW50TG9hZGVyLT5mcmFtZSgpKQor
ICAgICAgICBuZXdEb2N1bWVudExvYWRlci0+c2V0RnJhbWUoJmZyYW1lKCkpOworCiAgICAgUmVz
b3VyY2VSZXF1ZXN0JiByID0gbmV3RG9jdW1lbnRMb2FkZXItPnJlcXVlc3QoKTsKICAgICBhZGRF
eHRyYUZpZWxkc1RvTWFpblJlc291cmNlUmVxdWVzdChyKTsKICAgICBGcmFtZUxvYWRUeXBlIHR5
cGU7CkBAIC0xNjQzLDkgKzE2NDYsMTYgQEAgdm9pZCBGcmFtZUxvYWRlcjo6c3RvcEZvclVzZXJD
YW5jZWwoYm9vbCBkZWZlckNoZWNrTG9hZENvbXBsZXRlKQogCiBEb2N1bWVudExvYWRlciogRnJh
bWVMb2FkZXI6OmFjdGl2ZURvY3VtZW50TG9hZGVyKCkgY29uc3QKIHsKKyAgICBEb2N1bWVudExv
YWRlciogYWN0aXZlRG9jTG9hZGVyOwogICAgIGlmIChtX3N0YXRlID09IEZyYW1lU3RhdGVQcm92
aXNpb25hbCkKLSAgICAgICAgcmV0dXJuIG1fcHJvdmlzaW9uYWxEb2N1bWVudExvYWRlci5nZXQo
KTsKLSAgICByZXR1cm4gbV9kb2N1bWVudExvYWRlci5nZXQoKTsKKyAgICAgICAgYWN0aXZlRG9j
TG9hZGVyID0gbV9wcm92aXNpb25hbERvY3VtZW50TG9hZGVyLmdldCgpOworICAgIGVsc2UKKyAg
ICAgICAgYWN0aXZlRG9jTG9hZGVyID0gbV9kb2N1bWVudExvYWRlci5nZXQoKTsKKworICAgIGlm
ICghYWN0aXZlRG9jTG9hZGVyLT5mcmFtZSgpKQorICAgICAgICBhY3RpdmVEb2NMb2FkZXItPnNl
dEZyYW1lKCZmcmFtZSgpKTsKKworICAgIHJldHVybiBhY3RpdmVEb2NMb2FkZXI7CiB9CiAKIGJv
b2wgRnJhbWVMb2FkZXI6OmlzTG9hZGluZygpIGNvbnN0CkBAIC0zMzgyLDcgKzMzOTIsNyBAQCB2
b2lkIEZyYW1lTG9hZGVyOjp0ZWxsQ2xpZW50QWJvdXRQYXN0TWVtb3J5Q2FjaGVMb2FkcygpCiAK
ICAgICBzaXplX3Qgc2l6ZSA9IHBhc3RMb2Fkcy5zaXplKCk7CiAgICAgZm9yIChzaXplX3QgaSA9
IDA7IGkgPCBzaXplOyArK2kpIHsKLSAgICAgICAgQ2FjaGVkUmVzb3VyY2UqIHJlc291cmNlID0g
bWVtb3J5Q2FjaGUoKS0+cmVzb3VyY2VGb3JSZXF1ZXN0KHBhc3RMb2Fkc1tpXSk7CisgICAgICAg
IENhY2hlZFJlc291cmNlKiByZXNvdXJjZSA9IG1lbW9yeUNhY2hlKCktPnJlc291cmNlRm9yUmVx
dWVzdChwYXN0TG9hZHNbaV0sIG1fZnJhbWUucGFnZSgpLT5zZXNzaW9uSUQoKSk7CiAKICAgICAg
ICAgLy8gRklYTUU6IFRoZXNlIGxvYWRzLCBsb2FkZWQgZnJvbSBjYWNoZSwgYnV0IG5vdyBnb25l
IGZyb20gdGhlIGNhY2hlIGJ5IHRoZSB0aW1lCiAgICAgICAgIC8vIFBhZ2U6OnNldE1lbW9yeUNh
Y2hlQ2xpZW50Q2FsbHNFbmFibGVkKHRydWUpIGlzIGNhbGxlZCwgd2lsbCBub3QgYmUgc2VlbiBi
eSB0aGUgY2xpZW50LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2FyY2hpdmUv
Y2YvTGVnYWN5V2ViQXJjaGl2ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvYXJjaGl2ZS9j
Zi9MZWdhY3lXZWJBcmNoaXZlLmNwcAppbmRleCAzMWYxYTFiLi4wMjRkMjhmIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvYXJjaGl2ZS9jZi9MZWdhY3lXZWJBcmNoaXZlLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvYXJjaGl2ZS9jZi9MZWdhY3lXZWJBcmNoaXZlLmNw
cApAQCAtNTU0LDcgKzU1NCw3IEBAIFBhc3NSZWZQdHI8TGVnYWN5V2ViQXJjaGl2ZT4gTGVnYWN5
V2ViQXJjaGl2ZTo6Y3JlYXRlKGNvbnN0IFN0cmluZyYgbWFya3VwU3RyaW5nCiAjaWYgRU5BQkxF
KENBQ0hFX1BBUlRJVElPTklORykKICAgICAgICAgICAgICAgICByZXF1ZXN0LnNldENhY2hlUGFy
dGl0aW9uKGZyYW1lLT5kb2N1bWVudCgpLT50b3BPcmlnaW4oKS0+Y2FjaGVQYXJ0aXRpb24oKSk7
CiAjZW5kaWYKLSAgICAgICAgICAgICAgICBDYWNoZWRSZXNvdXJjZSogY2FjaGVkUmVzb3VyY2Ug
PSBtZW1vcnlDYWNoZSgpLT5yZXNvdXJjZUZvclJlcXVlc3QocmVxdWVzdCk7CisgICAgICAgICAg
ICAgICAgQ2FjaGVkUmVzb3VyY2UqIGNhY2hlZFJlc291cmNlID0gbWVtb3J5Q2FjaGUoKS0+cmVz
b3VyY2VGb3JSZXF1ZXN0KHJlcXVlc3QsIGZyYW1lLT5wYWdlKCktPnNlc3Npb25JRCgpKTsKICAg
ICAgICAgICAgICAgICBpZiAoY2FjaGVkUmVzb3VyY2UpIHsKICAgICAgICAgICAgICAgICAgICAg
UmVzb3VyY2VCdWZmZXIqIGRhdGEgPSBjYWNoZWRSZXNvdXJjZS0+cmVzb3VyY2VCdWZmZXIoKTsK
ICAgICAgICAgICAgICAgICAgICAgcmVzb3VyY2UgPSBBcmNoaXZlUmVzb3VyY2U6OmNyZWF0ZShk
YXRhID8gZGF0YS0+c2hhcmVkQnVmZmVyKCkgOiAwLCBzdWJyZXNvdXJjZVVSTCwgY2FjaGVkUmVz
b3VyY2UtPnJlc3BvbnNlKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2Nh
Y2hlL0NhY2hlZFJlc291cmNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNo
ZWRSZXNvdXJjZS5jcHAKaW5kZXggNjk3YTQ5NS4uNWU1NmIxMCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2UuY3BwCkBAIC0xNDksNiArMTQ5LDcgQEAg
REVGSU5FX0RFQlVHX09OTFlfR0xPQkFMKFJlZkNvdW50ZWRMZWFrQ291bnRlciwgY2FjaGVkUmVz
b3VyY2VMZWFrQ291bnRlciwgKCJDYWMKIAogQ2FjaGVkUmVzb3VyY2U6OkNhY2hlZFJlc291cmNl
KGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgVHlwZSB0eXBlKQogICAgIDogbV9yZXNv
dXJjZVJlcXVlc3QocmVxdWVzdCkKKyAgICAsIG1fc2Vzc2lvbklEKDApCiAgICAgLCBtX2xvYWRQ
cmlvcml0eShkZWZhdWx0UHJpb3JpdHlGb3JSZXNvdXJjZVR5cGUodHlwZSkpCiAgICAgLCBtX3Jl
c3BvbnNlVGltZXN0YW1wKGN1cnJlbnRUaW1lKCkpCiAgICAgLCBtX2RlY29kZWREYXRhRGVsZXRp
b25UaW1lcih0aGlzLCAmQ2FjaGVkUmVzb3VyY2U6OmRlY29kZWREYXRhRGVsZXRpb25UaW1lckZp
cmVkLCBkZWFkRGVjb2RlZERhdGFEZWxldGlvbkludGVydmFsRm9yUmVzb3VyY2VUeXBlKHR5cGUp
KQpAQCAtMTk5LDcgKzIwMCw3IEBAIENhY2hlZFJlc291cmNlOjp+Q2FjaGVkUmVzb3VyY2UoKQog
ICAgIEFTU0VSVChjYW5EZWxldGUoKSk7CiAgICAgQVNTRVJUKCFpbkNhY2hlKCkpOwogICAgIEFT
U0VSVCghbV9kZWxldGVkKTsKLSAgICBBU1NFUlQodXJsKCkuaXNOdWxsKCkgfHwgbWVtb3J5Q2Fj
aGUoKS0+cmVzb3VyY2VGb3JSZXF1ZXN0KHJlc291cmNlUmVxdWVzdCgpKSAhPSB0aGlzKTsKKyAg
ICBBU1NFUlQodXJsKCkuaXNOdWxsKCkgfHwgIXNlc3Npb25JRCgpIHx8IG1lbW9yeUNhY2hlKCkt
PnJlc291cmNlRm9yUmVxdWVzdChyZXNvdXJjZVJlcXVlc3QoKSwgc2Vzc2lvbklEKCkpICE9IHRo
aXMpOwogCiAjaWZuZGVmIE5ERUJVRwogICAgIG1fZGVsZXRlZCA9IHRydWU7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2UuaCBiL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZS5oCmluZGV4IGVmMGJjNjYuLjg4ZDRm
MzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJj
ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZS5oCkBA
IC0xMTEsNiArMTExLDggQEAgcHVibGljOgogI2lmIEVOQUJMRShDQUNIRV9QQVJUSVRJT05JTkcp
CiAgICAgY29uc3QgU3RyaW5nJiBjYWNoZVBhcnRpdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fcmVz
b3VyY2VSZXF1ZXN0LmNhY2hlUGFydGl0aW9uKCk7IH0KICNlbmRpZgorICAgIHVpbnQ2NF90IHNl
c3Npb25JRCgpIGNvbnN0IHsgcmV0dXJuIG1fc2Vzc2lvbklEOyB9CisgICAgdm9pZCBzZXRTZXNz
aW9uSUQodWludDY0X3Qgc2Vzc2lvbklEKSB7IG1fc2Vzc2lvbklEID0gc2Vzc2lvbklEOyB9CiAg
ICAgVHlwZSB0eXBlKCkgY29uc3QgeyByZXR1cm4gc3RhdGljX2Nhc3Q8VHlwZT4obV90eXBlKTsg
fQogICAgIAogICAgIFJlc291cmNlTG9hZFByaW9yaXR5IGxvYWRQcmlvcml0eSgpIGNvbnN0IHsg
cmV0dXJuIG1fbG9hZFByaW9yaXR5OyB9CkBAIC0yOTAsNiArMjkyLDcgQEAgcHJvdGVjdGVkOgog
ICAgIEhhc2hNYXA8Q2FjaGVkUmVzb3VyY2VDbGllbnQqLCBPd25QdHI8Q2FjaGVkUmVzb3VyY2VD
YWxsYmFjaz4+IG1fY2xpZW50c0F3YWl0aW5nQ2FsbGJhY2s7CiAKICAgICBSZXNvdXJjZVJlcXVl
c3QgbV9yZXNvdXJjZVJlcXVlc3Q7CisgICAgdWludDY0X3QgbV9zZXNzaW9uSUQ7CiAgICAgU3Ry
aW5nIG1fYWNjZXB0OwogICAgIFJlZlB0cjxTdWJyZXNvdXJjZUxvYWRlcj4gbV9sb2FkZXI7CiAg
ICAgUmVzb3VyY2VMb2FkZXJPcHRpb25zIG1fb3B0aW9uczsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZUxvYWRlci5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VMb2FkZXIuY3BwCmluZGV4IDExZjE4YTgu
LmI2MjAzYmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRS
ZXNvdXJjZUxvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hl
ZFJlc291cmNlTG9hZGVyLmNwcApAQCAtNDgsMTIgKzQ4LDE0IEBACiAjaW5jbHVkZSAiTG9hZGVy
U3RyYXRlZ3kuaCIKICNpbmNsdWRlICJMb2dnaW5nLmgiCiAjaW5jbHVkZSAiTWVtb3J5Q2FjaGUu
aCIKKyNpbmNsdWRlICJQYWdlLmgiCiAjaW5jbHVkZSAiUGluZ0xvYWRlci5oIgogI2luY2x1ZGUg
IlBsYXRmb3JtU3RyYXRlZ2llcy5oIgogI2luY2x1ZGUgIlJlbmRlckVsZW1lbnQuaCIKICNpbmNs
dWRlICJSZXNvdXJjZUxvYWRTY2hlZHVsZXIuaCIKICNpbmNsdWRlICJTY3JpcHRDb250cm9sbGVy
LmgiCiAjaW5jbHVkZSAiU2VjdXJpdHlPcmlnaW4uaCIKKyNpbmNsdWRlICJTZXNzaW9uSUQuaCIK
ICNpbmNsdWRlICJTZXR0aW5ncy5oIgogI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KICNp
bmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KQEAgLTE0Nyw2ICsxNDksMTggQEAgRnJhbWUq
IENhY2hlZFJlc291cmNlTG9hZGVyOjpmcmFtZSgpIGNvbnN0CiAgICAgcmV0dXJuIG1fZG9jdW1l
bnRMb2FkZXIgPyBtX2RvY3VtZW50TG9hZGVyLT5mcmFtZSgpIDogMDsKIH0KIAordWludDY0X3Qg
Q2FjaGVkUmVzb3VyY2VMb2FkZXI6OnNlc3Npb25JRCgpIGNvbnN0Cit7CisgICAgdWludDY0X3Qg
c2Vzc2lvbklEID0gMDsKKyAgICBpZiAoRnJhbWUqIGYgPSBmcmFtZSgpKQorICAgICAgICBzZXNz
aW9uSUQgPSBmLT5wYWdlKCktPnNlc3Npb25JRCgpOworCisgICAgaWYgKCFzZXNzaW9uSUQpCisg
ICAgICAgIHNlc3Npb25JRCA9IFNlc3Npb25JRDo6ZGVmYXVsdFNlc3Npb25JRDsKKworICAgIHJl
dHVybiBzZXNzaW9uSUQ7Cit9CisKIENhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZEltYWdlPiBD
YWNoZWRSZXNvdXJjZUxvYWRlcjo6cmVxdWVzdEltYWdlKENhY2hlZFJlc291cmNlUmVxdWVzdCYg
cmVxdWVzdCkKIHsKICAgICBpZiAoRnJhbWUqIGZyYW1lID0gdGhpcy0+ZnJhbWUoKSkgewpAQCAt
MTg3LDcgKzIwMSw3IEBAIENhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZENTU1N0eWxlU2hlZXQ+
IENhY2hlZFJlc291cmNlTG9hZGVyOjpyZXF1ZXN0VXNlckNTU1N0CiAgICAgcmVxdWVzdC5tdXRh
YmxlUmVzb3VyY2VSZXF1ZXN0KCkuc2V0Q2FjaGVQYXJ0aXRpb24oZG9jdW1lbnQoKS0+dG9wT3Jp
Z2luKCktPmNhY2hlUGFydGl0aW9uKCkpOwogI2VuZGlmCiAKLSAgICBpZiAoQ2FjaGVkUmVzb3Vy
Y2UqIGV4aXN0aW5nID0gbWVtb3J5Q2FjaGUoKS0+cmVzb3VyY2VGb3JSZXF1ZXN0KHJlcXVlc3Qu
cmVzb3VyY2VSZXF1ZXN0KCkpKSB7CisgICAgaWYgKENhY2hlZFJlc291cmNlKiBleGlzdGluZyA9
IG1lbW9yeUNhY2hlKCktPnJlc291cmNlRm9yUmVxdWVzdChyZXF1ZXN0LnJlc291cmNlUmVxdWVz
dCgpLCBzZXNzaW9uSUQoKSkpIHsKICAgICAgICAgaWYgKGV4aXN0aW5nLT50eXBlKCkgPT0gQ2Fj
aGVkUmVzb3VyY2U6OkNTU1N0eWxlU2hlZXQpCiAgICAgICAgICAgICByZXR1cm4gdG9DYWNoZWRD
U1NTdHlsZVNoZWV0KGV4aXN0aW5nKTsKICAgICAgICAgbWVtb3J5Q2FjaGUoKS0+cmVtb3ZlKGV4
aXN0aW5nKTsKQEAgLTE5Nyw3ICsyMTEsNyBAQCBDYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRD
U1NTdHlsZVNoZWV0PiBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6cmVxdWVzdFVzZXJDU1NTdAogCiAg
ICAgQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkQ1NTU3R5bGVTaGVldD4gdXNlclNoZWV0ID0g
bmV3IENhY2hlZENTU1N0eWxlU2hlZXQocmVxdWVzdC5yZXNvdXJjZVJlcXVlc3QoKSwgcmVxdWVz
dC5jaGFyc2V0KCkpOwogCi0gICAgbWVtb3J5Q2FjaGUoKS0+YWRkKHVzZXJTaGVldC5nZXQoKSk7
CisgICAgbWVtb3J5Q2FjaGUoKS0+YWRkKHVzZXJTaGVldC5nZXQoKSwgc2Vzc2lvbklEKCkpOwog
ICAgIC8vIEZJWE1FOiBsb2FkUmVzb3VyY2UgY2FsbHMgc2V0T3duaW5nQ2FjaGVkUmVzb3VyY2VM
b2FkZXIoKSBpZiB0aGUgcmVzb3VyY2UgY291bGRuJ3QgYmUgYWRkZWQgdG8gY2FjaGUuIERvZXMg
dGhpcyBmdW5jdGlvbiBuZWVkIHRvIGNhbGwgaXQsIHRvbz8KIAogICAgIHVzZXJTaGVldC0+bG9h
ZCh0aGlzLCBSZXNvdXJjZUxvYWRlck9wdGlvbnMoRG9Ob3RTZW5kQ2FsbGJhY2tzLCBTbmlmZkNv
bnRlbnQsIEJ1ZmZlckRhdGEsIEFsbG93U3RvcmVkQ3JlZGVudGlhbHMsIEFza0NsaWVudEZvckFs
bENyZWRlbnRpYWxzLCBTa2lwU2VjdXJpdHlDaGVjaywgVXNlRGVmYXVsdE9yaWdpblJlc3RyaWN0
aW9uc0ZvclR5cGUpKTsKQEAgLTQyOCw3ICs0NDIsNyBAQCBDYWNoZWRSZXNvdXJjZUhhbmRsZTxD
YWNoZWRSZXNvdXJjZT4gQ2FjaGVkUmVzb3VyY2VMb2FkZXI6OnJlcXVlc3RSZXNvdXJjZShDYWNo
ZQogICAgICAgICByZXF1ZXN0Lm11dGFibGVSZXNvdXJjZVJlcXVlc3QoKS5zZXRDYWNoZVBhcnRp
dGlvbihkb2N1bWVudCgpLT50b3BPcmlnaW4oKS0+Y2FjaGVQYXJ0aXRpb24oKSk7CiAjZW5kaWYK
IAotICAgIHJlc291cmNlID0gbWVtb3J5Q2FjaGUoKS0+cmVzb3VyY2VGb3JSZXF1ZXN0KHJlcXVl
c3QucmVzb3VyY2VSZXF1ZXN0KCkpOworICAgIHJlc291cmNlID0gbWVtb3J5Q2FjaGUoKS0+cmVz
b3VyY2VGb3JSZXF1ZXN0KHJlcXVlc3QucmVzb3VyY2VSZXF1ZXN0KCksIHNlc3Npb25JRCgpKTsK
IAogICAgIGNvbnN0IFJldmFsaWRhdGlvblBvbGljeSBwb2xpY3kgPSBkZXRlcm1pbmVSZXZhbGlk
YXRpb25Qb2xpY3kodHlwZSwgcmVxdWVzdC5tdXRhYmxlUmVzb3VyY2VSZXF1ZXN0KCksIHJlcXVl
c3QuZm9yUHJlbG9hZCgpLCByZXNvdXJjZS5nZXQoKSwgcmVxdWVzdC5kZWZlcigpKTsKICAgICBz
d2l0Y2ggKHBvbGljeSkgewpAQCAtNDg5LDcgKzUwMyw3IEBAIENhY2hlZFJlc291cmNlSGFuZGxl
PENhY2hlZFJlc291cmNlPiBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6cmV2YWxpZGF0ZVJlc291cmNl
KGNvCiAgICAgbmV3UmVzb3VyY2UtPnNldFJlc291cmNlVG9SZXZhbGlkYXRlKHJlc291cmNlKTsK
ICAgICAKICAgICBtZW1vcnlDYWNoZSgpLT5yZW1vdmUocmVzb3VyY2UpOwotICAgIG1lbW9yeUNh
Y2hlKCktPmFkZChuZXdSZXNvdXJjZS5nZXQoKSk7CisgICAgbWVtb3J5Q2FjaGUoKS0+YWRkKG5l
d1Jlc291cmNlLmdldCgpLCBzZXNzaW9uSUQoKSk7CiAjaWYgRU5BQkxFKFJFU09VUkNFX1RJTUlO
RykKICAgICBzdG9yZVJlc291cmNlVGltaW5nSW5pdGlhdG9ySW5mb3JtYXRpb24ocmVzb3VyY2Us
IHJlcXVlc3QpOwogI2Vsc2UKQEAgLTUwMCwxMyArNTE0LDEzIEBAIENhY2hlZFJlc291cmNlSGFu
ZGxlPENhY2hlZFJlc291cmNlPiBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6cmV2YWxpZGF0ZVJlc291
cmNlKGNvCiAKIENhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZFJlc291cmNlPiBDYWNoZWRSZXNv
dXJjZUxvYWRlcjo6bG9hZFJlc291cmNlKENhY2hlZFJlc291cmNlOjpUeXBlIHR5cGUsIENhY2hl
ZFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgY29uc3QgU3RyaW5nJiBjaGFyc2V0KQogewotICAg
IEFTU0VSVCghbWVtb3J5Q2FjaGUoKS0+cmVzb3VyY2VGb3JSZXF1ZXN0KHJlcXVlc3QucmVzb3Vy
Y2VSZXF1ZXN0KCkpKTsKKyAgICBBU1NFUlQoIW1lbW9yeUNhY2hlKCktPnJlc291cmNlRm9yUmVx
dWVzdChyZXF1ZXN0LnJlc291cmNlUmVxdWVzdCgpLCBzZXNzaW9uSUQoKSkpOwogCiAgICAgTE9H
KFJlc291cmNlTG9hZGluZywgIkxvYWRpbmcgQ2FjaGVkUmVzb3VyY2UgZm9yICclcycuIiwgcmVx
dWVzdC5yZXNvdXJjZVJlcXVlc3QoKS51cmwoKS5zdHJpbmdDZW50ZXJFbGxpcHNpemVkVG9MZW5n
dGgoKS5sYXRpbjEoKS5kYXRhKCkpOwogCiAgICAgQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVk
UmVzb3VyY2U+IHJlc291cmNlID0gY3JlYXRlUmVzb3VyY2UodHlwZSwgcmVxdWVzdC5tdXRhYmxl
UmVzb3VyY2VSZXF1ZXN0KCksIGNoYXJzZXQpOwogCi0gICAgaWYgKCFtZW1vcnlDYWNoZSgpLT5h
ZGQocmVzb3VyY2UuZ2V0KCkpKQorICAgIGlmICghbWVtb3J5Q2FjaGUoKS0+YWRkKHJlc291cmNl
LmdldCgpLCBzZXNzaW9uSUQoKSkpCiAgICAgICAgIHJlc291cmNlLT5zZXRPd25pbmdDYWNoZWRS
ZXNvdXJjZUxvYWRlcih0aGlzKTsKICNpZiBFTkFCTEUoUkVTT1VSQ0VfVElNSU5HKQogICAgIHN0
b3JlUmVzb3VyY2VUaW1pbmdJbml0aWF0b3JJbmZvcm1hdGlvbihyZXNvdXJjZSwgcmVxdWVzdCk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VM
b2FkZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZUxvYWRl
ci5oCmluZGV4IGFhZDdlMjUuLjIwN2JmYWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZUxvYWRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZUxvYWRlci5oCkBAIC0xMTEsNiArMTExLDcgQEAgcHVi
bGljOgogICAgIERvY3VtZW50KiBkb2N1bWVudCgpIGNvbnN0IHsgcmV0dXJuIG1fZG9jdW1lbnQ7
IH0gLy8gQ2FuIGJlIG51bGwKICAgICB2b2lkIHNldERvY3VtZW50KERvY3VtZW50KiBkb2N1bWVu
dCkgeyBtX2RvY3VtZW50ID0gZG9jdW1lbnQ7IH0KICAgICB2b2lkIGNsZWFyRG9jdW1lbnRMb2Fk
ZXIoKSB7IG1fZG9jdW1lbnRMb2FkZXIgPSAwOyB9CisgICAgdWludDY0X3Qgc2Vzc2lvbklEKCkg
Y29uc3Q7CiAKICAgICB2b2lkIHJlbW92ZUNhY2hlZFJlc291cmNlKENhY2hlZFJlc291cmNlKikg
Y29uc3Q7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9NZW1vcnlD
YWNoZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvTWVtb3J5Q2FjaGUuY3BwCmlu
ZGV4IGNjNmEyMjUuLjNiMmU4NWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9j
YWNoZS9NZW1vcnlDYWNoZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL01l
bW9yeUNhY2hlLmNwcApAQCAtMzgsNiArMzgsNyBAQAogI2luY2x1ZGUgIlB1YmxpY1N1ZmZpeC5o
IgogI2luY2x1ZGUgIlNlY3VyaXR5T3JpZ2luLmgiCiAjaW5jbHVkZSAiU2VjdXJpdHlPcmlnaW5I
YXNoLmgiCisjaW5jbHVkZSAiU2Vzc2lvbklELmgiCiAjaW5jbHVkZSAiV29ya2VyR2xvYmFsU2Nv
cGUuaCIKICNpbmNsdWRlICJXb3JrZXJMb2FkZXJQcm94eS5oIgogI2luY2x1ZGUgIldvcmtlclRo
cmVhZC5oIgpAQCAtODAsNiArODEsMTcgQEAgTWVtb3J5Q2FjaGU6Ok1lbW9yeUNhY2hlKCkKIHsK
IH0KIAorTWVtb3J5Q2FjaGU6OkNhY2hlZFJlc291cmNlTWFwJiBNZW1vcnlDYWNoZTo6Z2V0U2Vz
c2lvbk1hcCh1aW50NjRfdCBzZXNzaW9uSUQpCit7CisgICAgQVNTRVJUKHNlc3Npb25JRCk7Cisg
ICAgQ2FjaGVkUmVzb3VyY2VNYXAqIG1hcCA9IG1fc2Vzc2lvblJlc291cmNlcy5nZXQoc2Vzc2lv
bklEKTsKKyAgICBpZiAoIW1hcCkgeworICAgICAgICBtX3Nlc3Npb25SZXNvdXJjZXMuc2V0KHNl
c3Npb25JRCwgc3RkOjptYWtlX3VuaXF1ZTxDYWNoZWRSZXNvdXJjZU1hcD4oKSk7CisgICAgICAg
IG1hcCA9IG1fc2Vzc2lvblJlc291cmNlcy5nZXQoc2Vzc2lvbklEKTsKKyAgICB9CisgICAgcmV0
dXJuICptYXA7Cit9CisKIFVSTCBNZW1vcnlDYWNoZTo6cmVtb3ZlRnJhZ21lbnRJZGVudGlmaWVy
SWZOZWVkZWQoY29uc3QgVVJMJiBvcmlnaW5hbFVSTCkKIHsKICAgICBpZiAoIW9yaWdpbmFsVVJM
Lmhhc0ZyYWdtZW50SWRlbnRpZmllcigpKQpAQCAtOTQsMjIgKzEwNiwyNCBAQCBVUkwgTWVtb3J5
Q2FjaGU6OnJlbW92ZUZyYWdtZW50SWRlbnRpZmllcklmTmVlZGVkKGNvbnN0IFVSTCYgb3JpZ2lu
YWxVUkwpCiAgICAgcmV0dXJuIHVybDsKIH0KIAotYm9vbCBNZW1vcnlDYWNoZTo6YWRkKENhY2hl
ZFJlc291cmNlKiByZXNvdXJjZSkKK2Jvb2wgTWVtb3J5Q2FjaGU6OmFkZChDYWNoZWRSZXNvdXJj
ZSogcmVzb3VyY2UsIHVpbnQ2NF90IHNlc3Npb25JRCkKIHsKICAgICBpZiAoZGlzYWJsZWQoKSkK
ICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgQVNTRVJUKFdURjo6aXNNYWluVGhyZWFkKCkp
OwogCisgICAgQ2FjaGVkUmVzb3VyY2VNYXAmIHJlc291cmNlcyA9IGdldFNlc3Npb25NYXAoc2Vz
c2lvbklEKTsKKyAgICByZXNvdXJjZS0+c2V0U2Vzc2lvbklEKHNlc3Npb25JRCk7CiAjaWYgRU5B
QkxFKENBQ0hFX1BBUlRJVElPTklORykKLSAgICBDYWNoZWRSZXNvdXJjZUl0ZW0qIG9yaWdpbk1h
cCA9IG1fcmVzb3VyY2VzLmdldChyZXNvdXJjZS0+dXJsKCkpOworICAgIENhY2hlZFJlc291cmNl
SXRlbSogb3JpZ2luTWFwID0gcmVzb3VyY2VzLmdldChyZXNvdXJjZS0+dXJsKCkpOwogICAgIGlm
ICghb3JpZ2luTWFwKSB7CiAgICAgICAgIG9yaWdpbk1hcCA9IG5ldyBDYWNoZWRSZXNvdXJjZUl0
ZW07Ci0gICAgICAgIG1fcmVzb3VyY2VzLnNldChyZXNvdXJjZS0+dXJsKCksIGFkb3B0UHRyKG9y
aWdpbk1hcCkpOworICAgICAgICByZXNvdXJjZXMuc2V0KHJlc291cmNlLT51cmwoKSwgYWRvcHRQ
dHIob3JpZ2luTWFwKSk7CiAgICAgfQogICAgIG9yaWdpbk1hcC0+c2V0KHJlc291cmNlLT5jYWNo
ZVBhcnRpdGlvbigpLCByZXNvdXJjZSk7CiAjZWxzZQotICAgIG1fcmVzb3VyY2VzLnNldChyZXNv
dXJjZS0+dXJsKCksIHJlc291cmNlKTsKKyAgICByZXNvdXJjZXMuc2V0KHJlc291cmNlLT51cmwo
KSwgcmVzb3VyY2UpOwogI2VuZGlmCiAgICAgcmVzb3VyY2UtPnNldEluQ2FjaGUodHJ1ZSk7CiAg
ICAgCkBAIC0xMzQsMTcgKzE0OCwxOCBAQCB2b2lkIE1lbW9yeUNhY2hlOjpyZXZhbGlkYXRpb25T
dWNjZWVkZWQoQ2FjaGVkUmVzb3VyY2UqIHJldmFsaWRhdGluZ1Jlc291cmNlLCBjbwogCiAgICAg
ZXZpY3QocmV2YWxpZGF0aW5nUmVzb3VyY2UpOwogCisgICAgQ2FjaGVkUmVzb3VyY2VNYXAmIHJl
c291cmNlcyA9IGdldFNlc3Npb25NYXAocmVzb3VyY2UtPnNlc3Npb25JRCgpKTsKICNpZiBFTkFC
TEUoQ0FDSEVfUEFSVElUSU9OSU5HKQotICAgIEFTU0VSVCghbV9yZXNvdXJjZXMuZ2V0KHJlc291
cmNlLT51cmwoKSkgfHwgIW1fcmVzb3VyY2VzLmdldChyZXNvdXJjZS0+dXJsKCkpLT5nZXQocmVz
b3VyY2UtPmNhY2hlUGFydGl0aW9uKCkpKTsKLSAgICBDYWNoZWRSZXNvdXJjZUl0ZW0qIG9yaWdp
bk1hcCA9IG1fcmVzb3VyY2VzLmdldChyZXNvdXJjZS0+dXJsKCkpOworICAgIEFTU0VSVCghcmVz
b3VyY2VzLmdldChyZXNvdXJjZS0+dXJsKCkpIHx8ICFyZXNvdXJjZXMuZ2V0KHJlc291cmNlLT51
cmwoKSktPmdldChyZXNvdXJjZS0+Y2FjaGVQYXJ0aXRpb24oKSkpOworICAgIENhY2hlZFJlc291
cmNlSXRlbSogb3JpZ2luTWFwID0gcmVzb3VyY2VzLmdldChyZXNvdXJjZS0+dXJsKCkpOwogICAg
IGlmICghb3JpZ2luTWFwKSB7CiAgICAgICAgIG9yaWdpbk1hcCA9IG5ldyBDYWNoZWRSZXNvdXJj
ZUl0ZW07Ci0gICAgICAgIG1fcmVzb3VyY2VzLnNldChyZXNvdXJjZS0+dXJsKCksIGFkb3B0UHRy
KG9yaWdpbk1hcCkpOworICAgICAgICByZXNvdXJjZXMuc2V0KHJlc291cmNlLT51cmwoKSwgYWRv
cHRQdHIob3JpZ2luTWFwKSk7CiAgICAgfQogICAgIG9yaWdpbk1hcC0+c2V0KHJlc291cmNlLT5j
YWNoZVBhcnRpdGlvbigpLCByZXNvdXJjZSk7CiAjZWxzZQotICAgIEFTU0VSVCghbV9yZXNvdXJj
ZXMuZ2V0KHJlc291cmNlLT51cmwoKSkpOwotICAgIG1fcmVzb3VyY2VzLnNldChyZXNvdXJjZS0+
dXJsKCksIHJlc291cmNlKTsKKyAgICBBU1NFUlQoIXJlc291cmNlcy5nZXQocmVzb3VyY2UtPnVy
bCgpKSk7CisgICAgcmVzb3VyY2VzLnNldChyZXNvdXJjZS0+dXJsKCksIHJlc291cmNlKTsKICNl
bmRpZgogICAgIHJlc291cmNlLT5zZXRJbkNhY2hlKHRydWUpOwogICAgIHJlc291cmNlLT51cGRh
dGVSZXNwb25zZUFmdGVyUmV2YWxpZGF0aW9uKHJlc3BvbnNlKTsKQEAgLTE2OSwyMiArMTg0LDI4
IEBAIHZvaWQgTWVtb3J5Q2FjaGU6OnJldmFsaWRhdGlvbkZhaWxlZChDYWNoZWRSZXNvdXJjZSog
cmV2YWxpZGF0aW5nUmVzb3VyY2UpCiAgICAgcmV2YWxpZGF0aW5nUmVzb3VyY2UtPmNsZWFyUmVz
b3VyY2VUb1JldmFsaWRhdGUoKTsKIH0KIAotQ2FjaGVkUmVzb3VyY2UqIE1lbW9yeUNhY2hlOjpy
ZXNvdXJjZUZvclVSTChjb25zdCBVUkwmIHJlc291cmNlVVJMKQorQ2FjaGVkUmVzb3VyY2UqIE1l
bW9yeUNhY2hlOjpyZXNvdXJjZUZvclVSTChjb25zdCBVUkwmIHJlc291cmNlVVJMLCB1aW50NjRf
dCBzZXNzaW9uSUQpCiB7Ci0gICAgcmV0dXJuIHJlc291cmNlRm9yUmVxdWVzdChSZXNvdXJjZVJl
cXVlc3QocmVzb3VyY2VVUkwpKTsKKyAgICByZXR1cm4gcmVzb3VyY2VGb3JSZXF1ZXN0KFJlc291
cmNlUmVxdWVzdChyZXNvdXJjZVVSTCksIHNlc3Npb25JRCk7CiB9CiAKLUNhY2hlZFJlc291cmNl
KiBNZW1vcnlDYWNoZTo6cmVzb3VyY2VGb3JSZXF1ZXN0KGNvbnN0IFJlc291cmNlUmVxdWVzdCYg
cmVxdWVzdCkKK0NhY2hlZFJlc291cmNlKiBNZW1vcnlDYWNoZTo6cmVzb3VyY2VGb3JSZXF1ZXN0
KGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgdWludDY0X3Qgc2Vzc2lvbklEKQorewor
ICAgIHJldHVybiByZXNvdXJjZUZvclJlcXVlc3RJbXBsKHJlcXVlc3QsIGdldFNlc3Npb25NYXAo
c2Vzc2lvbklEKSk7Cit9CisKK0NhY2hlZFJlc291cmNlKiBNZW1vcnlDYWNoZTo6cmVzb3VyY2VG
b3JSZXF1ZXN0SW1wbChjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIENhY2hlZFJlc291
cmNlTWFwJiByZXNvdXJjZXMpCiB7CiAgICAgQVNTRVJUKFdURjo6aXNNYWluVGhyZWFkKCkpOwog
ICAgIFVSTCB1cmwgPSByZW1vdmVGcmFnbWVudElkZW50aWZpZXJJZk5lZWRlZChyZXF1ZXN0LnVy
bCgpKTsKKwogI2lmIEVOQUJMRShDQUNIRV9QQVJUSVRJT05JTkcpCi0gICAgQ2FjaGVkUmVzb3Vy
Y2VJdGVtKiBpdGVtID0gbV9yZXNvdXJjZXMuZ2V0KHVybCk7CisgICAgQ2FjaGVkUmVzb3VyY2VJ
dGVtKiBpdGVtID0gcmVzb3VyY2VzLmdldCh1cmwpOwogICAgIENhY2hlZFJlc291cmNlKiByZXNv
dXJjZSA9IDA7CiAgICAgaWYgKGl0ZW0pCiAgICAgICAgIHJlc291cmNlID0gaXRlbS0+Z2V0KHJl
cXVlc3QuY2FjaGVQYXJ0aXRpb24oKSk7CiAjZWxzZQotICAgIENhY2hlZFJlc291cmNlKiByZXNv
dXJjZSA9IG1fcmVzb3VyY2VzLmdldCh1cmwpOworICAgIENhY2hlZFJlc291cmNlKiByZXNvdXJj
ZSA9IHJlc291cmNlcy5nZXQodXJsKTsKICNlbmRpZgogICAgIGJvb2wgd2FzUHVyZ2VhYmxlID0g
TWVtb3J5Q2FjaGU6OnNob3VsZE1ha2VSZXNvdXJjZVB1cmdlYWJsZU9uRXZpY3Rpb24oKSAmJiBy
ZXNvdXJjZSAmJiByZXNvdXJjZS0+aXNQdXJnZWFibGUoKTsKICAgICBpZiAocmVzb3VyY2UgJiYg
IXJlc291cmNlLT5tYWtlUHVyZ2VhYmxlKGZhbHNlKSkgewpAQCAtMjQwLDIxICsyNjEsMjIgQEAg
Ym9vbCBNZW1vcnlDYWNoZTo6YWRkSW1hZ2VUb0NhY2hlKE5hdGl2ZUltYWdlUHRyIGltYWdlLCBj
b25zdCBVUkwmIHVybCwgY29uc3QgU3QKICNpZiBFTkFCTEUoQ0FDSEVfUEFSVElUSU9OSU5HKQog
ICAgIGNhY2hlZEltYWdlLT5yZXNvdXJjZVJlcXVlc3QoKS5zZXRDYWNoZVBhcnRpdGlvbihjYWNo
ZVBhcnRpdGlvbik7CiAjZW5kaWYKLSAgICBhZGQoY2FjaGVkSW1hZ2UucmVsZWFzZSgpKTsKKyAg
ICBhZGQoY2FjaGVkSW1hZ2UucmVsZWFzZSgpLCBTZXNzaW9uSUQ6OmRlZmF1bHRTZXNzaW9uSUQp
OwogICAgIHJldHVybiB0cnVlOwogfQogCiB2b2lkIE1lbW9yeUNhY2hlOjpyZW1vdmVJbWFnZUZy
b21DYWNoZShjb25zdCBVUkwmIHVybCwgY29uc3QgU3RyaW5nJiBjYWNoZVBhcnRpdGlvbikKIHsK
KyAgICBDYWNoZWRSZXNvdXJjZU1hcCYgcmVzb3VyY2VzID0gZ2V0U2Vzc2lvbk1hcChTZXNzaW9u
SUQ6OmRlZmF1bHRTZXNzaW9uSUQpOwogI2lmIEVOQUJMRShDQUNIRV9QQVJUSVRJT05JTkcpCiAg
ICAgQ2FjaGVkUmVzb3VyY2UqIHJlc291cmNlOwotICAgIGlmIChDYWNoZWRSZXNvdXJjZUl0ZW0q
IGl0ZW0gPSBtX3Jlc291cmNlcy5nZXQodXJsKSkKKyAgICBpZiAoQ2FjaGVkUmVzb3VyY2VJdGVt
KiBpdGVtID0gcmVzb3VyY2VzLmdldCh1cmwpKQogICAgICAgICByZXNvdXJjZSA9IGl0ZW0tPmdl
dChSZXNvdXJjZVJlcXVlc3Q6OnBhcnRpdGlvbk5hbWUoY2FjaGVQYXJ0aXRpb24pKTsKICAgICBl
bHNlCiAgICAgICAgIHJlc291cmNlID0gbnVsbHB0cjsKICNlbHNlCiAgICAgVU5VU0VEX1BBUkFN
KGNhY2hlUGFydGl0aW9uKTsKLSAgICBDYWNoZWRSZXNvdXJjZSogcmVzb3VyY2UgPSBtX3Jlc291
cmNlcy5nZXQodXJsKTsKKyAgICBDYWNoZWRSZXNvdXJjZSogcmVzb3VyY2UgPSByZXNvdXJjZXMu
Z2V0KHVybCk7CiAjZW5kaWYKICAgICBpZiAoIXJlc291cmNlKQogICAgICAgICByZXR1cm47CkBA
IC01MjIsMTcgKzU0NCwxOCBAQCB2b2lkIE1lbW9yeUNhY2hlOjpldmljdChDYWNoZWRSZXNvdXJj
ZSogcmVzb3VyY2UpCiAgICAgTE9HKFJlc291cmNlTG9hZGluZywgIkV2aWN0aW5nIHJlc291cmNl
ICVwIGZvciAnJXMnIGZyb20gY2FjaGUiLCByZXNvdXJjZSwgcmVzb3VyY2UtPnVybCgpLnN0cmlu
ZygpLmxhdGluMSgpLmRhdGEoKSk7CiAgICAgLy8gVGhlIHJlc291cmNlIG1heSBoYXZlIGFscmVh
ZHkgYmVlbiByZW1vdmVkIGJ5IHNvbWVvbmUgb3RoZXIgdGhhbiBvdXIgY2FsbGVyLAogICAgIC8v
IHdobyBuZWVkZWQgYSBmcmVzaCBjb3B5IGZvciBhIHJlbG9hZC4gU2VlIDxodHRwOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjQ3OSNjNj4uCisgICAgQ2FjaGVkUmVzb3VyY2VN
YXAmIHJlc291cmNlcyA9IGdldFNlc3Npb25NYXAocmVzb3VyY2UtPnNlc3Npb25JRCgpKTsKICAg
ICBpZiAocmVzb3VyY2UtPmluQ2FjaGUoKSkgewogICAgICAgICAvLyBSZW1vdmUgZnJvbSB0aGUg
cmVzb3VyY2UgbWFwLgogI2lmIEVOQUJMRShDQUNIRV9QQVJUSVRJT05JTkcpCi0gICAgICAgIENh
Y2hlZFJlc291cmNlSXRlbSogaXRlbSA9IG1fcmVzb3VyY2VzLmdldChyZXNvdXJjZS0+dXJsKCkp
OworICAgICAgICBDYWNoZWRSZXNvdXJjZUl0ZW0qIGl0ZW0gPSByZXNvdXJjZXMuZ2V0KHJlc291
cmNlLT51cmwoKSk7CiAgICAgICAgIGlmIChpdGVtKSB7CiAgICAgICAgICAgICBpdGVtLT5yZW1v
dmUocmVzb3VyY2UtPmNhY2hlUGFydGl0aW9uKCkpOwogICAgICAgICAgICAgaWYgKCFpdGVtLT5z
aXplKCkpCi0gICAgICAgICAgICAgICAgbV9yZXNvdXJjZXMucmVtb3ZlKHJlc291cmNlLT51cmwo
KSk7CisgICAgICAgICAgICAgICAgcmVzb3VyY2VzLnJlbW92ZShyZXNvdXJjZS0+dXJsKCkpOwog
ICAgICAgICB9CiAjZWxzZQotICAgICAgICBtX3Jlc291cmNlcy5yZW1vdmUocmVzb3VyY2UtPnVy
bCgpKTsKKyAgICAgICAgcmVzb3VyY2VzLnJlbW92ZShyZXNvdXJjZS0+dXJsKCkpOwogI2VuZGlm
CiAgICAgICAgIHJlc291cmNlLT5zZXRJbkNhY2hlKGZhbHNlKTsKIApAQCAtNTQ3LDkgKzU3MCw5
IEBAIHZvaWQgTWVtb3J5Q2FjaGU6OmV2aWN0KENhY2hlZFJlc291cmNlKiByZXNvdXJjZSkKICAg
ICAgICAgICAgIGFkanVzdFNpemUocmVzb3VyY2UtPmhhc0NsaWVudHMoKSwgLXN0YXRpY19jYXN0
PGludD4ocmVzb3VyY2UtPnNpemUoKSkpOwogICAgIH0gZWxzZQogI2lmIEVOQUJMRShDQUNIRV9Q
QVJUSVRJT05JTkcpCi0gICAgICAgIEFTU0VSVCghbV9yZXNvdXJjZXMuZ2V0KHJlc291cmNlLT51
cmwoKSkgfHwgbV9yZXNvdXJjZXMuZ2V0KHJlc291cmNlLT51cmwoKSktPmdldChyZXNvdXJjZS0+
Y2FjaGVQYXJ0aXRpb24oKSkgIT0gcmVzb3VyY2UpOworICAgICAgICBBU1NFUlQoIXJlc291cmNl
cy5nZXQocmVzb3VyY2UtPnVybCgpKSB8fCByZXNvdXJjZXMuZ2V0KHJlc291cmNlLT51cmwoKSkt
PmdldChyZXNvdXJjZS0+Y2FjaGVQYXJ0aXRpb24oKSkgIT0gcmVzb3VyY2UpOwogI2Vsc2UKLSAg
ICAgICAgQVNTRVJUKG1fcmVzb3VyY2VzLmdldChyZXNvdXJjZS0+dXJsKCkpICE9IHJlc291cmNl
KTsKKyAgICAgICAgQVNTRVJUKHJlc291cmNlcy5nZXQocmVzb3VyY2UtPnVybCgpKSAhPSByZXNv
dXJjZSk7CiAjZW5kaWYKIAogICAgIHJlc291cmNlLT5kZWxldGVJZlBvc3NpYmxlKCk7CkBAIC02
NjksMzEgKzY5MiwzMyBAQCB2b2lkIE1lbW9yeUNhY2hlOjpyZW1vdmVSZXNvdXJjZXNXaXRoT3Jp
Z2luKFNlY3VyaXR5T3JpZ2luKiBvcmlnaW4pCiB7CiAgICAgVmVjdG9yPENhY2hlZFJlc291cmNl
Kj4gcmVzb3VyY2VzV2l0aE9yaWdpbjsKIAotICAgIENhY2hlZFJlc291cmNlTWFwOjppdGVyYXRv
ciBlID0gbV9yZXNvdXJjZXMuZW5kKCk7CisgICAgZm9yIChhdXRvIG1hcEl0ZXJhdG9yID0gbV9z
ZXNzaW9uUmVzb3VyY2VzLmJlZ2luKCksIG1hcEl0ZXJhdG9yRW5kID0gbV9zZXNzaW9uUmVzb3Vy
Y2VzLmVuZCgpOyBtYXBJdGVyYXRvciAhPSBtYXBJdGVyYXRvckVuZDsgKyttYXBJdGVyYXRvcikg
eworICAgICAgICBDYWNoZWRSZXNvdXJjZU1hcDo6aXRlcmF0b3IgZSA9IG1hcEl0ZXJhdG9yLT52
YWx1ZS0+ZW5kKCk7CiAjaWYgRU5BQkxFKENBQ0hFX1BBUlRJVElPTklORykKLSAgICBTdHJpbmcg
b3JpZ2luUGFydGl0aW9uID0gUmVzb3VyY2VSZXF1ZXN0OjpwYXJ0aXRpb25OYW1lKG9yaWdpbi0+
aG9zdCgpKTsKKyAgICAgICAgU3RyaW5nIG9yaWdpblBhcnRpdGlvbiA9IFJlc291cmNlUmVxdWVz
dDo6cGFydGl0aW9uTmFtZShvcmlnaW4tPmhvc3QoKSk7CiAjZW5kaWYKIAotICAgIGZvciAoQ2Fj
aGVkUmVzb3VyY2VNYXA6Oml0ZXJhdG9yIGl0ID0gbV9yZXNvdXJjZXMuYmVnaW4oKTsgaXQgIT0g
ZTsgKytpdCkgeworICAgICAgICBmb3IgKENhY2hlZFJlc291cmNlTWFwOjppdGVyYXRvciBpdCA9
IG1hcEl0ZXJhdG9yLT52YWx1ZS0+YmVnaW4oKTsgaXQgIT0gZTsgKytpdCkgewogI2lmIEVOQUJM
RShDQUNIRV9QQVJUSVRJT05JTkcpCi0gICAgICAgIGZvciAoQ2FjaGVkUmVzb3VyY2VJdGVtOjpp
dGVyYXRvciBpdGVtSXRlcmF0b3IgPSBpdC0+dmFsdWUtPmJlZ2luKCk7IGl0ZW1JdGVyYXRvciAh
PSBpdC0+dmFsdWUtPmVuZCgpOyArK2l0ZW1JdGVyYXRvcikgewotICAgICAgICAgICAgQ2FjaGVk
UmVzb3VyY2UqIHJlc291cmNlID0gaXRlbUl0ZXJhdG9yLT52YWx1ZTsKLSAgICAgICAgICAgIFN0
cmluZyBwYXJ0aXRpb24gPSBpdGVtSXRlcmF0b3ItPmtleTsKLSAgICAgICAgICAgIGlmIChwYXJ0
aXRpb24gPT0gb3JpZ2luUGFydGl0aW9uKSB7Ci0gICAgICAgICAgICAgICAgcmVzb3VyY2VzV2l0
aE9yaWdpbi5hcHBlbmQocmVzb3VyY2UpOwotICAgICAgICAgICAgICAgIGNvbnRpbnVlOwotICAg
ICAgICAgICAgfQorICAgICAgICAgICAgZm9yIChDYWNoZWRSZXNvdXJjZUl0ZW06Oml0ZXJhdG9y
IGl0ZW1JdGVyYXRvciA9IGl0LT52YWx1ZS0+YmVnaW4oKTsgaXRlbUl0ZXJhdG9yICE9IGl0LT52
YWx1ZS0+ZW5kKCk7ICsraXRlbUl0ZXJhdG9yKSB7CisgICAgICAgICAgICAgICAgQ2FjaGVkUmVz
b3VyY2UqIHJlc291cmNlID0gaXRlbUl0ZXJhdG9yLT52YWx1ZTsKKyAgICAgICAgICAgICAgICBT
dHJpbmcgcGFydGl0aW9uID0gaXRlbUl0ZXJhdG9yLT5rZXk7CisgICAgICAgICAgICAgICAgaWYg
KHBhcnRpdGlvbiA9PSBvcmlnaW5QYXJ0aXRpb24pIHsKKyAgICAgICAgICAgICAgICAgICAgcmVz
b3VyY2VzV2l0aE9yaWdpbi5hcHBlbmQocmVzb3VyY2UpOworICAgICAgICAgICAgICAgICAgICBj
b250aW51ZTsKKyAgICAgICAgICAgICAgICB9CiAjZWxzZQotICAgICAgICAgICAgQ2FjaGVkUmVz
b3VyY2UqIHJlc291cmNlID0gaXQtPnZhbHVlOworICAgICAgICAgICAgICAgIENhY2hlZFJlc291
cmNlKiByZXNvdXJjZSA9IGl0LT52YWx1ZTsKICNlbmRpZgotICAgICAgICAgICAgUmVmUHRyPFNl
Y3VyaXR5T3JpZ2luPiByZXNvdXJjZU9yaWdpbiA9IFNlY3VyaXR5T3JpZ2luOjpjcmVhdGVGcm9t
U3RyaW5nKHJlc291cmNlLT51cmwoKSk7Ci0gICAgICAgICAgICBpZiAoIXJlc291cmNlT3JpZ2lu
KQotICAgICAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICAgICAgaWYgKHJlc291cmNlT3Jp
Z2luLT5lcXVhbChvcmlnaW4pKQotICAgICAgICAgICAgICAgIHJlc291cmNlc1dpdGhPcmlnaW4u
YXBwZW5kKHJlc291cmNlKTsKKyAgICAgICAgICAgICAgICBSZWZQdHI8U2VjdXJpdHlPcmlnaW4+
IHJlc291cmNlT3JpZ2luID0gU2VjdXJpdHlPcmlnaW46OmNyZWF0ZUZyb21TdHJpbmcocmVzb3Vy
Y2UtPnVybCgpKTsKKyAgICAgICAgICAgICAgICBpZiAoIXJlc291cmNlT3JpZ2luKQorICAgICAg
ICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICBpZiAocmVzb3VyY2VPcmln
aW4tPmVxdWFsKG9yaWdpbikpCisgICAgICAgICAgICAgICAgICAgIHJlc291cmNlc1dpdGhPcmln
aW4uYXBwZW5kKHJlc291cmNlKTsKICNpZiBFTkFCTEUoQ0FDSEVfUEFSVElUSU9OSU5HKQotICAg
ICAgICB9CisgICAgICAgICAgICB9CiAjZW5kaWYKKyAgICAgICAgfQogICAgIH0KIAogICAgIGZv
ciAoc2l6ZV90IGkgPSAwOyBpIDwgcmVzb3VyY2VzV2l0aE9yaWdpbi5zaXplKCk7ICsraSkKQEAg
LTcwNSwxNiArNzMwLDE4IEBAIHZvaWQgTWVtb3J5Q2FjaGU6OmdldE9yaWdpbnNXaXRoQ2FjaGUo
U2VjdXJpdHlPcmlnaW5TZXQmIG9yaWdpbnMpCiAjaWYgRU5BQkxFKENBQ0hFX1BBUlRJVElPTklO
RykKICAgICBERUZJTkVfU1RBVElDX0xPQ0FMKFN0cmluZywgaHR0cFN0cmluZywgKCJodHRwIikp
OwogI2VuZGlmCi0gICAgQ2FjaGVkUmVzb3VyY2VNYXA6Oml0ZXJhdG9yIGUgPSBtX3Jlc291cmNl
cy5lbmQoKTsKLSAgICBmb3IgKENhY2hlZFJlc291cmNlTWFwOjppdGVyYXRvciBpdCA9IG1fcmVz
b3VyY2VzLmJlZ2luKCk7IGl0ICE9IGU7ICsraXQpIHsKKyAgICBmb3IgKGF1dG8gbWFwSXRlcmF0
b3IgPSBtX3Nlc3Npb25SZXNvdXJjZXMuYmVnaW4oKSwgbWFwSXRlcmF0b3JFbmQgPSBtX3Nlc3Np
b25SZXNvdXJjZXMuZW5kKCk7IG1hcEl0ZXJhdG9yICE9IG1hcEl0ZXJhdG9yRW5kOyArK21hcEl0
ZXJhdG9yKSB7CisgICAgICAgIENhY2hlZFJlc291cmNlTWFwOjppdGVyYXRvciBlID0gbWFwSXRl
cmF0b3ItPnZhbHVlLT5lbmQoKTsKKyAgICAgICAgZm9yIChDYWNoZWRSZXNvdXJjZU1hcDo6aXRl
cmF0b3IgaXQgPSBtYXBJdGVyYXRvci0+dmFsdWUtPmJlZ2luKCk7IGl0ICE9IGU7ICsraXQpIHsK
ICNpZiBFTkFCTEUoQ0FDSEVfUEFSVElUSU9OSU5HKQotICAgICAgICBpZiAoaXQtPnZhbHVlLT5i
ZWdpbigpLT5rZXkgPT0gZW1wdHlTdHJpbmcoKSkKLSAgICAgICAgICAgIG9yaWdpbnMuYWRkKFNl
Y3VyaXR5T3JpZ2luOjpjcmVhdGVGcm9tU3RyaW5nKGl0LT52YWx1ZS0+YmVnaW4oKS0+dmFsdWUt
PnVybCgpKSk7Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIG9yaWdpbnMuYWRkKFNlY3VyaXR5
T3JpZ2luOjpjcmVhdGUoaHR0cFN0cmluZywgaXQtPnZhbHVlLT5iZWdpbigpLT5rZXksIDApKTsK
KyAgICAgICAgICAgIGlmIChpdC0+dmFsdWUtPmJlZ2luKCktPmtleSA9PSBlbXB0eVN0cmluZygp
KQorICAgICAgICAgICAgICAgIG9yaWdpbnMuYWRkKFNlY3VyaXR5T3JpZ2luOjpjcmVhdGVGcm9t
U3RyaW5nKGl0LT52YWx1ZS0+YmVnaW4oKS0+dmFsdWUtPnVybCgpKSk7CisgICAgICAgICAgICBl
bHNlCisgICAgICAgICAgICAgICAgb3JpZ2lucy5hZGQoU2VjdXJpdHlPcmlnaW46OmNyZWF0ZSho
dHRwU3RyaW5nLCBpdC0+dmFsdWUtPmJlZ2luKCktPmtleSwgMCkpOwogI2Vsc2UKLSAgICAgICAg
b3JpZ2lucy5hZGQoU2VjdXJpdHlPcmlnaW46OmNyZWF0ZUZyb21TdHJpbmcoaXQtPnZhbHVlLT51
cmwoKSkpOworICAgICAgICAgICAgb3JpZ2lucy5hZGQoU2VjdXJpdHlPcmlnaW46OmNyZWF0ZUZy
b21TdHJpbmcoaXQtPnZhbHVlLT51cmwoKSkpOwogI2VuZGlmCisgICAgICAgIH0KICAgICB9CiB9
CiAKQEAgLTgwOCwzMSArODM1LDM5IEBAIHZvaWQgTWVtb3J5Q2FjaGU6OmFkanVzdFNpemUoYm9v
bCBsaXZlLCBpbnQgZGVsdGEpCiAgICAgfQogfQogCi12b2lkIE1lbW9yeUNhY2hlOjpyZW1vdmVV
cmxGcm9tQ2FjaGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgY29uc3QgU3RyaW5n
JiB1cmxTdHJpbmcpCit2b2lkIE1lbW9yeUNhY2hlOjpyZW1vdmVVcmxGcm9tQ2FjaGUoU2NyaXB0
RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgY29uc3QgU3RyaW5nJiB1cmxTdHJpbmcsIHVpbnQ2
NF90IHNlc3Npb25JRCkKIHsKLSAgICByZW1vdmVSZXF1ZXN0RnJvbUNhY2hlKGNvbnRleHQsIFJl
c291cmNlUmVxdWVzdCh1cmxTdHJpbmcpKTsKKyAgICByZW1vdmVSZXF1ZXN0RnJvbUNhY2hlKGNv
bnRleHQsIFJlc291cmNlUmVxdWVzdCh1cmxTdHJpbmcpLCBzZXNzaW9uSUQpOwogfQogCi12b2lk
IE1lbW9yeUNhY2hlOjpyZW1vdmVSZXF1ZXN0RnJvbUNhY2hlKFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQqIGNvbnRleHQsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCkKK3ZvaWQgTWVtb3J5
Q2FjaGU6OnJlbW92ZVJlcXVlc3RGcm9tQ2FjaGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29u
dGV4dCwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCB1aW50NjRfdCBzZXNzaW9uSUQp
CiB7CiAgICAgaWYgKGNvbnRleHQtPmlzV29ya2VyR2xvYmFsU2NvcGUoKSkgewotICAgICAgICB0
b1dvcmtlckdsb2JhbFNjb3BlKGNvbnRleHQpLT50aHJlYWQoKS53b3JrZXJMb2FkZXJQcm94eSgp
LnBvc3RUYXNrVG9Mb2FkZXIoY3JlYXRlQ2FsbGJhY2tUYXNrKCZjcm9zc1RocmVhZFJlbW92ZVJl
cXVlc3RGcm9tQ2FjaGUsIHJlcXVlc3QpKTsKKyAgICAgICAgdG9Xb3JrZXJHbG9iYWxTY29wZShj
b250ZXh0KS0+dGhyZWFkKCkud29ya2VyTG9hZGVyUHJveHkoKS5wb3N0VGFza1RvTG9hZGVyKGNy
ZWF0ZUNhbGxiYWNrVGFzaygmY3Jvc3NUaHJlYWRSZW1vdmVSZXF1ZXN0RnJvbUNhY2hlLCByZXF1
ZXN0LCBzZXNzaW9uSUQpKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIHJlbW92ZVJl
cXVlc3RGcm9tQ2FjaGVJbXBsKGNvbnRleHQsIHJlcXVlc3QpOworICAgIHJlbW92ZVJlcXVlc3RG
cm9tQ2FjaGVJbXBsKGNvbnRleHQsIHJlcXVlc3QsIHNlc3Npb25JRCk7Cit9CisKK3ZvaWQgTWVt
b3J5Q2FjaGU6OnJlbW92ZVJlcXVlc3RGcm9tQ2FjaGVJbXBsKFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQqLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIHVpbnQ2NF90IHNlc3Npb25JRCkK
K3sKKyAgICBpZiAoQ2FjaGVkUmVzb3VyY2UqIHJlc291cmNlID0gbWVtb3J5Q2FjaGUoKS0+cmVz
b3VyY2VGb3JSZXF1ZXN0KHJlcXVlc3QsIHNlc3Npb25JRCkpCisgICAgICAgIG1lbW9yeUNhY2hl
KCktPnJlbW92ZShyZXNvdXJjZSk7CiB9CiAKLXZvaWQgTWVtb3J5Q2FjaGU6OnJlbW92ZVJlcXVl
c3RGcm9tQ2FjaGVJbXBsKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBjb25zdCBSZXNvdXJjZVJl
cXVlc3QmIHJlcXVlc3QpCit2b2lkIE1lbW9yeUNhY2hlOjpyZW1vdmVSZXF1ZXN0RnJvbVNlc3Np
b25DYWNoZXMoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIGNvbnN0IFJlc291cmNlUmVxdWVzdCYg
cmVxdWVzdCkKIHsKLSAgICBpZiAoQ2FjaGVkUmVzb3VyY2UqIHJlc291cmNlID0gbWVtb3J5Q2Fj
aGUoKS0+cmVzb3VyY2VGb3JSZXF1ZXN0KHJlcXVlc3QpKQorICAgIGZvciAoYXV0byBtYXBJdGVy
YXRvciA9IG1lbW9yeUNhY2hlKCktPm1fc2Vzc2lvblJlc291cmNlcy5iZWdpbigpLCBtYXBJdGVy
YXRvckVuZCA9IG1lbW9yeUNhY2hlKCktPm1fc2Vzc2lvblJlc291cmNlcy5lbmQoKTsgbWFwSXRl
cmF0b3IgIT0gbWFwSXRlcmF0b3JFbmQ7ICsrbWFwSXRlcmF0b3IpIHsKKyAgICAgICAgaWYgKENh
Y2hlZFJlc291cmNlKiByZXNvdXJjZSA9IG1lbW9yeUNhY2hlKCktPnJlc291cmNlRm9yUmVxdWVz
dEltcGwocmVxdWVzdCwgKm1hcEl0ZXJhdG9yLT52YWx1ZSkpCiAgICAgICAgIG1lbW9yeUNhY2hl
KCktPnJlbW92ZShyZXNvdXJjZSk7CisgICAgfQogfQogCi12b2lkIE1lbW9yeUNhY2hlOjpjcm9z
c1RocmVhZFJlbW92ZVJlcXVlc3RGcm9tQ2FjaGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29u
dGV4dCwgUGFzc093blB0cjxXZWJDb3JlOjpDcm9zc1RocmVhZFJlc291cmNlUmVxdWVzdERhdGE+
IHJlcXVlc3REYXRhKQordm9pZCBNZW1vcnlDYWNoZTo6Y3Jvc3NUaHJlYWRSZW1vdmVSZXF1ZXN0
RnJvbUNhY2hlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIFBhc3NPd25QdHI8V2Vi
Q29yZTo6Q3Jvc3NUaHJlYWRSZXNvdXJjZVJlcXVlc3REYXRhPiByZXF1ZXN0RGF0YSwgdWludDY0
X3Qgc2Vzc2lvbklEKQogewogICAgIE93blB0cjxSZXNvdXJjZVJlcXVlc3Q+IHJlcXVlc3QoUmVz
b3VyY2VSZXF1ZXN0OjphZG9wdChyZXF1ZXN0RGF0YSkpOwotICAgIE1lbW9yeUNhY2hlOjpyZW1v
dmVSZXF1ZXN0RnJvbUNhY2hlSW1wbChjb250ZXh0LCAqcmVxdWVzdCk7CisgICAgTWVtb3J5Q2Fj
aGU6OnJlbW92ZVJlcXVlc3RGcm9tQ2FjaGVJbXBsKGNvbnRleHQsICpyZXF1ZXN0LCBzZXNzaW9u
SUQpOwogfQogCiB2b2lkIE1lbW9yeUNhY2hlOjpUeXBlU3RhdGlzdGljOjphZGRSZXNvdXJjZShD
YWNoZWRSZXNvdXJjZSogbykKQEAgLTg1NSwzOCArODkwLDQxIEBAIHZvaWQgTWVtb3J5Q2FjaGU6
OlR5cGVTdGF0aXN0aWM6OmFkZFJlc291cmNlKENhY2hlZFJlc291cmNlKiBvKQogTWVtb3J5Q2Fj
aGU6OlN0YXRpc3RpY3MgTWVtb3J5Q2FjaGU6OmdldFN0YXRpc3RpY3MoKQogewogICAgIFN0YXRp
c3RpY3Mgc3RhdHM7Ci0gICAgQ2FjaGVkUmVzb3VyY2VNYXA6Oml0ZXJhdG9yIGUgPSBtX3Jlc291
cmNlcy5lbmQoKTsKLSAgICBmb3IgKENhY2hlZFJlc291cmNlTWFwOjppdGVyYXRvciBpID0gbV9y
ZXNvdXJjZXMuYmVnaW4oKTsgaSAhPSBlOyArK2kpIHsKKworICAgIGZvciAoYXV0byBtYXBJdGVy
YXRvciA9IG1fc2Vzc2lvblJlc291cmNlcy5iZWdpbigpLCBtYXBJdGVyYXRvckVuZCA9IG1fc2Vz
c2lvblJlc291cmNlcy5lbmQoKTsgbWFwSXRlcmF0b3IgIT0gbWFwSXRlcmF0b3JFbmQ7ICsrbWFw
SXRlcmF0b3IpIHsKKyAgICAgICAgQ2FjaGVkUmVzb3VyY2VNYXA6Oml0ZXJhdG9yIGUgPSBtYXBJ
dGVyYXRvci0+dmFsdWUtPmVuZCgpOworICAgICAgICBmb3IgKENhY2hlZFJlc291cmNlTWFwOjpp
dGVyYXRvciBpID0gbWFwSXRlcmF0b3ItPnZhbHVlLT5iZWdpbigpOyBpICE9IGU7ICsraSkgewog
I2lmIEVOQUJMRShDQUNIRV9QQVJUSVRJT05JTkcpCi0gICAgICAgIGZvciAoQ2FjaGVkUmVzb3Vy
Y2VJdGVtOjppdGVyYXRvciBpdGVtSXRlcmF0b3IgPSBpLT52YWx1ZS0+YmVnaW4oKTsgaXRlbUl0
ZXJhdG9yICE9IGktPnZhbHVlLT5lbmQoKTsgKytpdGVtSXRlcmF0b3IpIHsKLSAgICAgICAgICAg
IENhY2hlZFJlc291cmNlKiByZXNvdXJjZSA9IGl0ZW1JdGVyYXRvci0+dmFsdWU7CisgICAgICAg
ICAgICBmb3IgKENhY2hlZFJlc291cmNlSXRlbTo6aXRlcmF0b3IgaXRlbUl0ZXJhdG9yID0gaS0+
dmFsdWUtPmJlZ2luKCk7IGl0ZW1JdGVyYXRvciAhPSBpLT52YWx1ZS0+ZW5kKCk7ICsraXRlbUl0
ZXJhdG9yKSB7CisgICAgICAgICAgICAgICAgQ2FjaGVkUmVzb3VyY2UqIHJlc291cmNlID0gaXRl
bUl0ZXJhdG9yLT52YWx1ZTsKICNlbHNlCi0gICAgICAgICAgICBDYWNoZWRSZXNvdXJjZSogcmVz
b3VyY2UgPSBpLT52YWx1ZTsKKyAgICAgICAgICAgICAgICBDYWNoZWRSZXNvdXJjZSogcmVzb3Vy
Y2UgPSBpLT52YWx1ZTsKICNlbmRpZgotICAgICAgICAgICAgc3dpdGNoIChyZXNvdXJjZS0+dHlw
ZSgpKSB7Ci0gICAgICAgICAgICBjYXNlIENhY2hlZFJlc291cmNlOjpJbWFnZVJlc291cmNlOgot
ICAgICAgICAgICAgICAgIHN0YXRzLmltYWdlcy5hZGRSZXNvdXJjZShyZXNvdXJjZSk7Ci0gICAg
ICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICBjYXNlIENhY2hlZFJlc291cmNlOjpDU1NT
dHlsZVNoZWV0OgotICAgICAgICAgICAgICAgIHN0YXRzLmNzc1N0eWxlU2hlZXRzLmFkZFJlc291
cmNlKHJlc291cmNlKTsKLSAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgIGNhc2Ug
Q2FjaGVkUmVzb3VyY2U6OlNjcmlwdDoKLSAgICAgICAgICAgICAgICBzdGF0cy5zY3JpcHRzLmFk
ZFJlc291cmNlKHJlc291cmNlKTsKLSAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAg
ICAgICBzd2l0Y2ggKHJlc291cmNlLT50eXBlKCkpIHsKKyAgICAgICAgICAgICAgICBjYXNlIENh
Y2hlZFJlc291cmNlOjpJbWFnZVJlc291cmNlOgorICAgICAgICAgICAgICAgICAgICBzdGF0cy5p
bWFnZXMuYWRkUmVzb3VyY2UocmVzb3VyY2UpOworICAgICAgICAgICAgICAgICAgICBicmVhazsK
KyAgICAgICAgICAgICAgICBjYXNlIENhY2hlZFJlc291cmNlOjpDU1NTdHlsZVNoZWV0OgorICAg
ICAgICAgICAgICAgICAgICBzdGF0cy5jc3NTdHlsZVNoZWV0cy5hZGRSZXNvdXJjZShyZXNvdXJj
ZSk7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIGNhc2UgQ2Fj
aGVkUmVzb3VyY2U6OlNjcmlwdDoKKyAgICAgICAgICAgICAgICAgICAgc3RhdHMuc2NyaXB0cy5h
ZGRSZXNvdXJjZShyZXNvdXJjZSk7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogI2lmIEVO
QUJMRShYU0xUKQotICAgICAgICAgICAgY2FzZSBDYWNoZWRSZXNvdXJjZTo6WFNMU3R5bGVTaGVl
dDoKLSAgICAgICAgICAgICAgICBzdGF0cy54c2xTdHlsZVNoZWV0cy5hZGRSZXNvdXJjZShyZXNv
dXJjZSk7Ci0gICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgY2FzZSBDYWNo
ZWRSZXNvdXJjZTo6WFNMU3R5bGVTaGVldDoKKyAgICAgICAgICAgICAgICAgICAgc3RhdHMueHNs
U3R5bGVTaGVldHMuYWRkUmVzb3VyY2UocmVzb3VyY2UpOworICAgICAgICAgICAgICAgICAgICBi
cmVhazsKICNlbmRpZgotICAgICAgICAgICAgY2FzZSBDYWNoZWRSZXNvdXJjZTo6Rm9udFJlc291
cmNlOgotICAgICAgICAgICAgICAgIHN0YXRzLmZvbnRzLmFkZFJlc291cmNlKHJlc291cmNlKTsK
LSAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgIGRlZmF1bHQ6Ci0gICAgICAgICAg
ICAgICAgYnJlYWs7Ci0gICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgY2FzZSBDYWNoZWRS
ZXNvdXJjZTo6Rm9udFJlc291cmNlOgorICAgICAgICAgICAgICAgICAgICBzdGF0cy5mb250cy5h
ZGRSZXNvdXJjZShyZXNvdXJjZSk7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAg
ICAgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAg
ICAgICAgIH0KICNpZiBFTkFCTEUoQ0FDSEVfUEFSVElUSU9OSU5HKQotICAgICAgICB9CisgICAg
ICAgICAgICB9CiAjZW5kaWYKKyAgICAgICAgfQogICAgIH0KICAgICByZXR1cm4gc3RhdHM7CiB9
CkBAIC04OTgsOCArOTM2LDExIEBAIHZvaWQgTWVtb3J5Q2FjaGU6OnNldERpc2FibGVkKGJvb2wg
ZGlzYWJsZWQpCiAgICAgICAgIHJldHVybjsKIAogICAgIGZvciAoOzspIHsKLSAgICAgICAgQ2Fj
aGVkUmVzb3VyY2VNYXA6Oml0ZXJhdG9yIG91dGVySXRlcmF0b3IgPSBtX3Jlc291cmNlcy5iZWdp
bigpOwotICAgICAgICBpZiAob3V0ZXJJdGVyYXRvciA9PSBtX3Jlc291cmNlcy5lbmQoKSkKKyAg
ICAgICAgU2Vzc2lvbkNhY2hlZFJlc291cmNlTWFwOjppdGVyYXRvciBzZXNzaW9uSXRlcmF0b3Ig
PSBtX3Nlc3Npb25SZXNvdXJjZXMuYmVnaW4oKTsKKyAgICAgICAgaWYgKHNlc3Npb25JdGVyYXRv
ciA9PSBtX3Nlc3Npb25SZXNvdXJjZXMuZW5kKCkpCisgICAgICAgICAgICBicmVhazsKKyAgICAg
ICAgQ2FjaGVkUmVzb3VyY2VNYXA6Oml0ZXJhdG9yIG91dGVySXRlcmF0b3IgPSBzZXNzaW9uSXRl
cmF0b3ItPnZhbHVlLT5iZWdpbigpOworICAgICAgICBpZiAob3V0ZXJJdGVyYXRvciA9PSBzZXNz
aW9uSXRlcmF0b3ItPnZhbHVlLT5lbmQoKSkKICAgICAgICAgICAgIGJyZWFrOwogI2lmIEVOQUJM
RShDQUNIRV9QQVJUSVRJT05JTkcpCiAgICAgICAgIENhY2hlZFJlc291cmNlSXRlbTo6aXRlcmF0
b3IgaW5uZXJJdGVyYXRvciA9IG91dGVySXRlcmF0b3ItPnZhbHVlLT5iZWdpbigpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL01lbW9yeUNhY2hlLmggYi9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvY2FjaGUvTWVtb3J5Q2FjaGUuaAppbmRleCBjMDIzYTk3Li5hMDdjYTll
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvTWVtb3J5Q2FjaGUuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvTWVtb3J5Q2FjaGUuaApAQCAtODcsNiAr
ODcsNyBAQCBwdWJsaWM6CiAjZWxzZQogICAgIHR5cGVkZWYgSGFzaE1hcDxTdHJpbmcsIENhY2hl
ZFJlc291cmNlKj4gQ2FjaGVkUmVzb3VyY2VNYXA7CiAjZW5kaWYKKyAgICB0eXBlZGVmIEhhc2hN
YXA8dWludDY0X3QsIHN0ZDo6dW5pcXVlX3B0cjxDYWNoZWRSZXNvdXJjZU1hcD4+IFNlc3Npb25D
YWNoZWRSZXNvdXJjZU1hcDsKIAogICAgIHN0cnVjdCBMUlVMaXN0IHsKICAgICAgICAgQ2FjaGVk
UmVzb3VyY2UqIG1faGVhZDsKQEAgLTExOCwxMCArMTE5LDEwIEBAIHB1YmxpYzoKICAgICAgICAg
VHlwZVN0YXRpc3RpYyBmb250czsKICAgICB9OwogCi0gICAgQ2FjaGVkUmVzb3VyY2UqIHJlc291
cmNlRm9yVVJMKGNvbnN0IFVSTCYpOwotICAgIENhY2hlZFJlc291cmNlKiByZXNvdXJjZUZvclJl
cXVlc3QoY29uc3QgUmVzb3VyY2VSZXF1ZXN0Jik7Ci0gICAgCi0gICAgYm9vbCBhZGQoQ2FjaGVk
UmVzb3VyY2UqIHJlc291cmNlKTsKKyAgICBDYWNoZWRSZXNvdXJjZSogcmVzb3VyY2VGb3JVUkwo
Y29uc3QgVVJMJiwgdWludDY0X3Qgc2Vzc2lvbklEKTsKKyAgICBDYWNoZWRSZXNvdXJjZSogcmVz
b3VyY2VGb3JSZXF1ZXN0KGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIHVpbnQ2NF90IHNlc3Npb25J
RCk7CisKKyAgICBib29sIGFkZChDYWNoZWRSZXNvdXJjZSosIHVpbnQ2NF90IHNlc3Npb25JRCk7
CiAgICAgdm9pZCByZW1vdmUoQ2FjaGVkUmVzb3VyY2UqIHJlc291cmNlKSB7IGV2aWN0KHJlc291
cmNlKTsgfQogCiAgICAgc3RhdGljIFVSTCByZW1vdmVGcmFnbWVudElkZW50aWZpZXJJZk5lZWRl
ZChjb25zdCBVUkwmIG9yaWdpbmFsVVJMKTsKQEAgLTE3MCw4ICsxNzEsOSBAQCBwdWJsaWM6CiAg
ICAgdm9pZCBmbHVzaENhY2hlZEltYWdlc1RvRGlzaygpOyAvLyBGbHVzaCBlbmNvZGVkIGRhdGEg
ZnJvbSByZXNvdXJjZXMgc3RpbGwgcmVmZXJlbmNlZCBieSB3ZWIgcGFnZXMuCiAjZW5kaWYKIAot
ICAgIHN0YXRpYyB2b2lkIHJlbW92ZVVybEZyb21DYWNoZShTY3JpcHRFeGVjdXRpb25Db250ZXh0
KiwgY29uc3QgU3RyaW5nJiB1cmxTdHJpbmcpOwotICAgIHN0YXRpYyB2b2lkIHJlbW92ZVJlcXVl
c3RGcm9tQ2FjaGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIGNvbnN0IFJlc291cmNlUmVxdWVz
dCYpOworICAgIHN0YXRpYyB2b2lkIHJlbW92ZVVybEZyb21DYWNoZShTY3JpcHRFeGVjdXRpb25D
b250ZXh0KiwgY29uc3QgU3RyaW5nJiB1cmxTdHJpbmcsIHVpbnQ2NF90IHNlc3Npb25JRCk7Cisg
ICAgc3RhdGljIHZvaWQgcmVtb3ZlUmVxdWVzdEZyb21DYWNoZShTY3JpcHRFeGVjdXRpb25Db250
ZXh0KiwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgdWludDY0X3Qgc2Vzc2lvbklEKTsKKyAgICBz
dGF0aWMgdm9pZCByZW1vdmVSZXF1ZXN0RnJvbVNlc3Npb25DYWNoZXMoU2NyaXB0RXhlY3V0aW9u
Q29udGV4dCosIGNvbnN0IFJlc291cmNlUmVxdWVzdCYpOwogCiAgICAgLy8gRnVuY3Rpb24gdG8g
Y29sbGVjdCBjYWNoZSBzdGF0aXN0aWNzIGZvciB0aGUgY2FjaGVzIHdpbmRvdyBpbiB0aGUgU2Fm
YXJpIERlYnVnIG1lbnUuCiAgICAgU3RhdGlzdGljcyBnZXRTdGF0aXN0aWNzKCk7CkBAIC0yMjEs
OCArMjIzLDExIEBAIHByaXZhdGU6CiAgICAgYm9vbCBtYWtlUmVzb3VyY2VQdXJnZWFibGUoQ2Fj
aGVkUmVzb3VyY2UqKTsKICAgICB2b2lkIGV2aWN0KENhY2hlZFJlc291cmNlKik7CiAKLSAgICBz
dGF0aWMgdm9pZCByZW1vdmVSZXF1ZXN0RnJvbUNhY2hlSW1wbChTY3JpcHRFeGVjdXRpb25Db250
ZXh0KiwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0Jik7Ci0gICAgc3RhdGljIHZvaWQgY3Jvc3NUaHJl
YWRSZW1vdmVSZXF1ZXN0RnJvbUNhY2hlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBQYXNzT3du
UHRyPENyb3NzVGhyZWFkUmVzb3VyY2VSZXF1ZXN0RGF0YT4pOworICAgIENhY2hlZFJlc291cmNl
KiByZXNvdXJjZUZvclJlcXVlc3RJbXBsKGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIENhY2hlZFJl
c291cmNlTWFwJik7CisgICAgc3RhdGljIHZvaWQgcmVtb3ZlUmVxdWVzdEZyb21DYWNoZUltcGwo
U2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIHVpbnQ2NF90
IHNlc3Npb25JRCk7CisgICAgc3RhdGljIHZvaWQgY3Jvc3NUaHJlYWRSZW1vdmVSZXF1ZXN0RnJv
bUNhY2hlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBQYXNzT3duUHRyPENyb3NzVGhyZWFkUmVz
b3VyY2VSZXF1ZXN0RGF0YT4sIHVpbnQ2NF90IHNlc3Npb25JRCk7CisKKyAgICBDYWNoZWRSZXNv
dXJjZU1hcCYgZ2V0U2Vzc2lvbk1hcCh1aW50NjRfdCBzZXNzaW9uSUQpOwogCiAgICAgYm9vbCBt
X2Rpc2FibGVkOyAgLy8gV2hldGhlciBvciBub3QgdGhlIGNhY2hlIGlzIGVuYWJsZWQuCiAgICAg
Ym9vbCBtX3BydW5lRW5hYmxlZDsKQEAgLTI0Niw3ICsyNTEsNyBAQCBwcml2YXRlOgogICAgIAog
ICAgIC8vIEEgVVJMLWJhc2VkIG1hcCBvZiBhbGwgcmVzb3VyY2VzIHRoYXQgYXJlIGluIHRoZSBj
YWNoZSAoaW5jbHVkaW5nIHRoZSBmcmVzaGVzdCB2ZXJzaW9uIG9mIG9iamVjdHMgdGhhdCBhcmUg
Y3VycmVudGx5IGJlaW5nIAogICAgIC8vIHJlZmVyZW5jZWQgYnkgYSBXZWIgcGFnZSkuCi0gICAg
Q2FjaGVkUmVzb3VyY2VNYXAgbV9yZXNvdXJjZXM7CisgICAgU2Vzc2lvbkNhY2hlZFJlc291cmNl
TWFwIG1fc2Vzc2lvblJlc291cmNlczsKIH07CiAKIGlubGluZSBib29sIE1lbW9yeUNhY2hlOjpz
aG91bGRNYWtlUmVzb3VyY2VQdXJnZWFibGVPbkV2aWN0aW9uKCkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCmlu
ZGV4IGVkODI0OTUuLjk5ODAyYmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFn
ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcApAQCAtNzUsNiArNzUsNyBA
QAogI2luY2x1ZGUgIlNjaGVtZVJlZ2lzdHJ5LmgiCiAjaW5jbHVkZSAiU2NyaXB0Q29udHJvbGxl
ci5oIgogI2luY2x1ZGUgIlNjcm9sbGluZ0Nvb3JkaW5hdG9yLmgiCisjaW5jbHVkZSAiU2Vzc2lv
bklELmgiCiAjaW5jbHVkZSAiU2V0dGluZ3MuaCIKICNpbmNsdWRlICJTaGFyZWRCdWZmZXIuaCIK
ICNpbmNsdWRlICJTdG9yYWdlQXJlYS5oIgpAQCAtMTkzLDYgKzE5NCw3IEBAIFBhZ2U6OlBhZ2Uo
UGFnZUNsaWVudHMmIHBhZ2VDbGllbnRzKQogI2VuZGlmCiAgICAgLCBtX2xhc3RTcGF0aWFsTmF2
aWdhdGlvbkNhbmRpZGF0ZXNDb3VudCgwKSAvLyBOT1RFOiBPbmx5IGNhbGxlZCBmcm9tIEludGVy
bmFscyBmb3IgU3BhdGlhbCBOYXZpZ2F0aW9uIHRlc3RpbmcuCiAgICAgLCBtX2ZyYW1lc0hhbmRs
aW5nQmVmb3JlVW5sb2FkRXZlbnQoMCkKKyAgICAsIG1fc2Vzc2lvbklEKDApCiB7CiAgICAgQVNT
RVJUKG1fZWRpdG9yQ2xpZW50KTsKIApAQCAtMTUxMiw2ICsxNTE0LDExIEBAIHZvaWQgUGFnZTo6
c2V0VXNlckNvbnRlbnRDb250cm9sbGVyKFVzZXJDb250ZW50Q29udHJvbGxlciogdXNlckNvbnRl
bnRDb250cm9sbGVyCiAgICAgICAgIG1fdXNlckNvbnRlbnRDb250cm9sbGVyLT5hZGRQYWdlKCp0
aGlzKTsKIH0KIAordWludDY0X3QgUGFnZTo6c2Vzc2lvbklEKCkgY29uc3QKK3sKKyAgICByZXR1
cm4gbV9zZXNzaW9uSUQgPyBtX3Nlc3Npb25JRCA6IHNldHRpbmdzKCkucHJpdmF0ZUJyb3dzaW5n
RW5hYmxlZCgpID8gU2Vzc2lvbklEOjpsZWdhY3lQcml2YXRlU2Vzc2lvbklEIDogU2Vzc2lvbklE
OjpkZWZhdWx0U2Vzc2lvbklEOworfQorCiBQYWdlOjpQYWdlQ2xpZW50czo6UGFnZUNsaWVudHMo
KQogICAgIDogYWx0ZXJuYXRpdmVUZXh0Q2xpZW50KG51bGxwdHIpCiAgICAgLCBjaHJvbWVDbGll
bnQobnVsbHB0cikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmgKaW5kZXggNjY2NmU2Mi4uMmM0ODM0NyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9Q
YWdlLmgKQEAgLTQxMSw2ICs0MTEsOSBAQCBwdWJsaWM6CiAKICAgICB2b2lkIHNldFVzZXJDb250
ZW50Q29udHJvbGxlcihVc2VyQ29udGVudENvbnRyb2xsZXIqKTsKICAgICBVc2VyQ29udGVudENv
bnRyb2xsZXIqIHVzZXJDb250ZW50Q29udHJvbGxlcigpIHsgcmV0dXJuIG1fdXNlckNvbnRlbnRD
b250cm9sbGVyLmdldCgpOyB9CisgICAgdWludDY0X3Qgc2Vzc2lvbklEKCkgY29uc3Q7CisgICAg
Ym9vbCBpc1Nlc3Npb25JRFNldCgpIGNvbnN0IHsgcmV0dXJuIG1fc2Vzc2lvbklEOyB9CisgICAg
dm9pZCBzZXRTZXNzaW9uSUQodWludDY0X3Qgc2Vzc2lvbklEKSB7IEFTU0VSVChzZXNzaW9uSUQp
OyBtX3Nlc3Npb25JRCA9IHNlc3Npb25JRDsgfQogCiBwcml2YXRlOgogICAgIHZvaWQgaW5pdEdy
b3VwKCk7CkBAIC01NTQsNiArNTU3LDggQEAgcHJpdmF0ZToKICAgICB1bnNpZ25lZCBtX2ZyYW1l
c0hhbmRsaW5nQmVmb3JlVW5sb2FkRXZlbnQ7CiAKICAgICBSZWZQdHI8VXNlckNvbnRlbnRDb250
cm9sbGVyPiBtX3VzZXJDb250ZW50Q29udHJvbGxlcjsKKworICAgIHVpbnQ2NF90IG1fc2Vzc2lv
bklEOwogfTsKIAogaW5saW5lIFBhZ2VHcm91cCYgUGFnZTo6Z3JvdXAoKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGFnZS9TZXNzaW9uSUQuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2Vz
c2lvbklELmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzQ2MTUxZQotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2Vzc2lvbklELmgKQEAgLTAsMCAr
MSw0MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
KyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisg
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgU2Vzc2lvbklEX2gKKyNkZWZpbmUgU2Vzc2lv
bklEX2gKKworI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgorCituYW1lc3BhY2UgV2ViQ29y
ZSB7CisKK2NsYXNzIFNlc3Npb25JRCB7CisgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoU2Vzc2lv
bklEKTsKK3B1YmxpYzoKKyAgICBzdGF0aWMgY29uc3QgdWludDY0X3QgZGVmYXVsdFNlc3Npb25J
RCA9IDE7CisgICAgc3RhdGljIGNvbnN0IHVpbnQ2NF90IGxlZ2FjeVByaXZhdGVTZXNzaW9uSUQg
PSAyOworICAgIHN0YXRpYyBib29sIGlzRXBoZW1lcmFsSUQodWludDY0X3Qgc2Vzc2lvbklEKSB7
IHJldHVybiBzZXNzaW9uSUQgIT0gU2Vzc2lvbklEOjpkZWZhdWx0U2Vzc2lvbklEOyB9Cit9Owor
Cit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBTZXNzaW9uSURfaApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9OZXR3b3JraW5nQ29udGV4dC5o
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9OZXR3b3JraW5nQ29udGV4dC5oCmlu
ZGV4IGZjZmZjMDQuLmE0ODYzNTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L25ldHdvcmsvTmV0d29ya2luZ0NvbnRleHQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9uZXR3b3JrL05ldHdvcmtpbmdDb250ZXh0LmgKQEAgLTU5LDYgKzU5LDcgQEAgcHVibGljOgog
CiAjaWYgUExBVEZPUk0oQ09DT0EpIHx8IFVTRShDRk5FVFdPUkspIHx8IFVTRShTT1VQKQogICAg
IHZpcnR1YWwgTmV0d29ya1N0b3JhZ2VTZXNzaW9uJiBzdG9yYWdlU2Vzc2lvbigpIGNvbnN0ID0g
MDsKKyAgICB2aXJ0dWFsIHVpbnQ2NF90IHNlc3Npb25JRCgpIGNvbnN0IHsgcmV0dXJuIDA7IH0K
ICNlbmRpZgogCiAjaWYgUExBVEZPUk0oV0lOKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbmV0d29yay9jZi9SZXNvdXJjZVJlcXVlc3QuaCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL25ldHdvcmsvY2YvUmVzb3VyY2VSZXF1ZXN0LmgKaW5kZXggNTM0MTk4OC4uMmM2MjI4
OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9SZXNvdXJj
ZVJlcXVlc3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL1Jlc291
cmNlUmVxdWVzdC5oCkBAIC01Nyw3ICs1Nyw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAg
ICAgewogICAgICAgICB9CiAKLSAgICAgICAgUmVzb3VyY2VSZXF1ZXN0KGNvbnN0IFVSTCYgdXJs
LCBjb25zdCBTdHJpbmcmIHJlZmVycmVyLCBSZXNvdXJjZVJlcXVlc3RDYWNoZVBvbGljeSBwb2xp
Y3kgPSBVc2VQcm90b2NvbENhY2hlUG9saWN5KSAKKyAgICAgICAgUmVzb3VyY2VSZXF1ZXN0KGNv
bnN0IFVSTCYgdXJsLCBjb25zdCBTdHJpbmcmIHJlZmVycmVyLCBSZXNvdXJjZVJlcXVlc3RDYWNo
ZVBvbGljeSBwb2xpY3kgPSBVc2VQcm90b2NvbENhY2hlUG9saWN5KQogICAgICAgICAgICAgOiBS
ZXNvdXJjZVJlcXVlc3RCYXNlKHVybCwgcG9saWN5KQogI2lmIFBMQVRGT1JNKElPUykKICAgICAg
ICAgICAgICwgbV9tYWluUmVzb3VyY2VSZXF1ZXN0KGZhbHNlKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9J
bnRlcm5hbHMuY3BwCmluZGV4IDY2ZTYyMGIuLjE4OTE3MjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5n
L0ludGVybmFscy5jcHAKQEAgLTM1NCw5ICszNTQsOSBAQCBib29sIEludGVybmFsczo6aXNQcmVs
b2FkZWQoY29uc3QgU3RyaW5nJiB1cmwpCiAKIGJvb2wgSW50ZXJuYWxzOjppc0xvYWRpbmdGcm9t
TWVtb3J5Q2FjaGUoY29uc3QgU3RyaW5nJiB1cmwpCiB7Ci0gICAgaWYgKCFjb250ZXh0RG9jdW1l
bnQoKSkKKyAgICBpZiAoIWNvbnRleHREb2N1bWVudCgpIHx8ICFjb250ZXh0RG9jdW1lbnQoKS0+
cGFnZSgpKQogICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgQ2FjaGVkUmVzb3VyY2UqIHJlc291
cmNlID0gbWVtb3J5Q2FjaGUoKS0+cmVzb3VyY2VGb3JVUkwoY29udGV4dERvY3VtZW50KCktPmNv
bXBsZXRlVVJMKHVybCkpOworICAgIENhY2hlZFJlc291cmNlKiByZXNvdXJjZSA9IG1lbW9yeUNh
Y2hlKCktPnJlc291cmNlRm9yVVJMKGNvbnRleHREb2N1bWVudCgpLT5jb21wbGV0ZVVSTCh1cmwp
LCBjb250ZXh0RG9jdW1lbnQoKS0+cGFnZSgpLT5zZXNzaW9uSUQoKSk7CiAgICAgcmV0dXJuIHJl
c291cmNlICYmIHJlc291cmNlLT5zdGF0dXMoKSA9PSBDYWNoZWRSZXNvdXJjZTo6Q2FjaGVkOwog
fQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKaW5kZXggOWZjMTVlMi4uNTNhYTczYSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDYyIEBACisyMDE0LTAyLTE4ICBNYXJ0aW4gSG9jayAgPG1ob2NrQGFwcGxlLmNvbT4KKworICAg
ICAgICBBZGQgc3VwcG9ydCBmb3Igc2Vzc2lvbnMgdG8gTWVtb3J5Q2FjaGUuCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjc3OTQKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05l
dHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6c3RvcmFn
ZVNlc3Npb24pOiBTd2l0Y2ggdG8gU2Vzc2lvbklEIGNsYXNzLgorICAgICAgICAqIE5ldHdvcmtQ
cm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nl
c3M6OmluaXRpYWxpemVOZXR3b3JrUHJvY2Vzcyk6IERpdHRvLgorICAgICAgICAqIE5ldHdvcmtQ
cm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRlci5oOiBBZGQgc2Vzc2lvbklEKCkgbWV0aG9kLgor
ICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OnNlc3Npb25JRCk6CisgICAg
ICAgICogTmV0d29ya1Byb2Nlc3MvUmVtb3RlTmV0d29ya2luZ0NvbnRleHQuaDogQWRkIHNlc3Np
b25JRCgpIG1ldGhvZC4KKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9tYWMvRGlza0NhY2hlTW9u
aXRvci5oOiBBZGQgc2Vzc2lvbklEIG1lbWJlci4KKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9t
YWMvRGlza0NhY2hlTW9uaXRvci5tbToKKyAgICAgICAgKFdlYktpdDo6RGlza0NhY2hlTW9uaXRv
cjo6RGlza0NhY2hlTW9uaXRvcik6IFNlbmQgc2Vzc2lvbklEIHRvIE5ldHdvcmtQcm9jZXNzQ29u
bmVjdGlvbjo6RGlkQ2FjaGVSZXNvdXJjZS4KKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9tYWMv
UmVtb3RlTmV0d29ya2luZ0NvbnRleHQubW06CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU5ldHdv
cmtpbmdDb250ZXh0OjplbnN1cmVQcml2YXRlQnJvd3NpbmdTZXNzaW9uKTogU3dpdGNoIHRvIFNl
c3Npb25JRCBjbGFzcy4KKyAgICAgICAgKiBTaGFyZWQvU2Vzc2lvblRyYWNrZXIuY3BwOiBTd2l0
Y2ggdG8gU2Vzc2lvbklEIGNsYXNzLgorICAgICAgICAoV2ViS2l0OjpTZXNzaW9uVHJhY2tlcjo6
c2Vzc2lvbik6CisgICAgICAgIChXZWJLaXQ6OlNlc3Npb25UcmFja2VyOjpzZXNzaW9uSUQpOgor
ICAgICAgICAoV2ViS2l0OjpTZXNzaW9uVHJhY2tlcjo6c2V0U2Vzc2lvbik6CisgICAgICAgICog
U2hhcmVkL1Nlc3Npb25UcmFja2VyLmg6IE1vdmUgY29kZSB0byBTZXNzaW9uSUQgY2xhc3MuCisg
ICAgICAgICogU2hhcmVkL21hYy9Db29raWVTdG9yYWdlU2hpbS5tbTogU3dpdGNoIHRvIFNlc3Np
b25JRCBjbGFzcy4KKyAgICAgICAgKFdlYktpdDo6d2ViS2l0Q29va2llU3RvcmFnZUNvcHlSZXF1
ZXN0SGVhZGVyRmllbGRzRm9yVVJMKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJU2Vzc2lvbi5j
cHA6IERpdHRvLgorICAgICAgICAoQVBJOjpnZW5lcmF0ZUlEKToKKyAgICAgICAgKEFQSTo6U2Vz
c2lvbjo6ZGVmYXVsdFNlc3Npb24pOgorICAgICAgICAoQVBJOjpTZXNzaW9uOjpsZWdhY3lQcml2
YXRlU2Vzc2lvbik6CisgICAgICAgICogVUlQcm9jZXNzL0FQSVNlc3Npb24uaDogRGl0dG8uCisg
ICAgICAgICogVUlQcm9jZXNzL1dlYkNvbnRleHQuY3BwOiBEaXR0by4KKyAgICAgICAgKFdlYktp
dDo6V2ViQ29udGV4dDo6c2V0QW55UGFnZUdyb3VwTWlnaHRIYXZlUHJpdmF0ZUJyb3dzaW5nRW5h
YmxlZCk6CisgICAgICAgIChXZWJLaXQ6OldlYkNvbnRleHQ6OmNyZWF0ZU5ld1dlYlByb2Nlc3Mp
OgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGUuY3Bw
OiBEaXR0by4KKyAgICAgICAgKFdlYktpdDo6SW5qZWN0ZWRCdW5kbGU6OnNldFByaXZhdGVCcm93
c2luZ0VuYWJsZWQpOgorICAgICAgICAqIFdlYlByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vz
c0Nvbm5lY3Rpb24uY3BwOiBBZGQgc2Vzc2lvbklEIHBhcmFtZXRlciB0byBkaWRDYWNoZVJlc291
cmNlIGFuZCBwYXNzIHRvIE1lbW9yeUNhY2hlLgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJv
Y2Vzc0Nvbm5lY3Rpb246OmRpZENhY2hlUmVzb3VyY2UpOgorICAgICAgICAqIFdlYlByb2Nlc3Mv
TmV0d29yay9OZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24uaDogRGl0dG8uCisgICAgICAgICogV2Vi
UHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbi5tZXNzYWdlcy5pbjogRGl0
dG8uCisgICAgICAgICogV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYlJlc291cmNlTG9hZFNjaGVkdWxl
ci5jcHA6IFN3aXRjaCB0byBTZXNzaW9uSUQgY2xhc3MuCisgICAgICAgIChXZWJLaXQ6OldlYlJl
c291cmNlTG9hZFNjaGVkdWxlcjo6c2NoZWR1bGVMb2FkKToKKyAgICAgICAgKiBXZWJQcm9jZXNz
L1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5jcHA6IERpdHRvLgorICAgICAg
ICAoV2ViS2l0OjpXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OmxvYWRSZXNvdXJjZVN5bmNocm9ub3Vz
bHkpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvbWFjL1dlYkZyYW1lTmV0
d29ya2luZ0NvbnRleHQuaDogQWRkIHNlc3Npb25JRCBtZXRob2QuCisgICAgICAgICogV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9tYWMvV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5tbToKKyAg
ICAgICAgKFdlYktpdDo6V2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dDo6ZW5zdXJlUHJpdmF0ZUJy
b3dzaW5nU2Vzc2lvbik6IFN3aXRjaCB0byBTZXNzaW9uSUQgY2xhc3MuCisgICAgICAgIChXZWJL
aXQ6OldlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQ6OnN0b3JhZ2VTZXNzaW9uKTogSW1wbGVtZW50
IGluIHRlcm1zIG9mIHNlc3Npb25JRCgpLgorICAgICAgICAoV2ViS2l0OjpXZWJGcmFtZU5ldHdv
cmtpbmdDb250ZXh0OjpzZXNzaW9uSUQpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvc291cC9XZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0LmNwcDogU3dpdGNoIHRvIFNlc3Np
b25JRCBjbGFzcy4KKyAgICAgICAgKFdlYktpdDo6V2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dDo6
c3RvcmFnZVNlc3Npb24pOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNw
cDogTW92ZSBzZXNzaW9uSUQgdG8gcGFnZSB0byBhbGxvdyBXZWJDb3JlIHRvIGFjY2VzcyBpdC4K
KyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6V2ViUGFnZSk6CisgICAgICAgIChXZWJLaXQ6Oldl
YlBhZ2U6OnNlc3Npb25JRCk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OmlzVXNpbmdFcGhl
bWVyYWxTZXNzaW9uKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6c2V0U2Vzc2lvbklEKToK
KyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6dXBkYXRlUHJlZmVyZW5jZXMpOgorICAgICAgICAq
IFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmg6CisKIDIwMTQtMDItMTcgIENoYW5nU2VvayBP
aCAgPGNoYW5nc2Vvay5vaEBjb2xsYWJvcmEuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQgZ3Rr
IGJ1aWxkIGZpeC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05l
dHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQ
cm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcAppbmRleCAxZmVlNDk4Li44
ZTUxNTc0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3Jr
Q29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1By
b2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwCkBAIC00Miw2ICs0Miw3IEBA
CiAjaW5jbHVkZSA8V2ViQ29yZS9QbGF0Zm9ybUNvb2tpZUphci5oPgogI2luY2x1ZGUgPFdlYkNv
cmUvUmVzb3VyY2VMb2FkZXJPcHRpb25zLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJjZVJl
cXVlc3QuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1Nlc3Npb25JRC5oPgogI2luY2x1ZGUgPHd0Zi9S
dW5Mb29wLmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwpAQCAtMTUwLDcgKzE1MSw3IEBA
IHZvaWQgTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OnNldFNlcmlhbExvYWRpbmdFbmFi
bGVkKGJvb2wgZW5hYmxlZCkKIAogc3RhdGljIE5ldHdvcmtTdG9yYWdlU2Vzc2lvbiYgc3RvcmFn
ZVNlc3Npb24odWludDY0X3Qgc2Vzc2lvbklEKQogewotICAgIGlmIChTZXNzaW9uVHJhY2tlcjo6
aXNFcGhlbWVyYWxJRChzZXNzaW9uSUQpKSB7CisgICAgaWYgKFNlc3Npb25JRDo6aXNFcGhlbWVy
YWxJRChzZXNzaW9uSUQpKSB7CiAgICAgICAgIE5ldHdvcmtTdG9yYWdlU2Vzc2lvbiogcHJpdmF0
ZVNlc3Npb24gPSBTZXNzaW9uVHJhY2tlcjo6c2Vzc2lvbihzZXNzaW9uSUQpOwogICAgICAgICBp
ZiAocHJpdmF0ZVNlc3Npb24pCiAgICAgICAgICAgICByZXR1cm4gKnByaXZhdGVTZXNzaW9uOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3Mu
Y3BwIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwCmlu
ZGV4IDhhMTJhYjcuLjVjZTBiNjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQ
cm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJv
Y2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAKQEAgLTQ1LDYgKzQ1LDcgQEAKICNpbmNsdWRlICJXZWJD
b29raWVNYW5hZ2VyLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9Mb2dnaW5nLmg+CiAjaW5jbHVkZSA8
V2ViQ29yZS9SZXNvdXJjZVJlcXVlc3QuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1Nlc3Npb25JRC5o
PgogI2luY2x1ZGUgPHd0Zi9SdW5Mb29wLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5o
PgogCkBAIC0xNjMsNyArMTY0LDcgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzczo6aW5pdGlhbGl6ZU5l
dHdvcmtQcm9jZXNzKGNvbnN0IE5ldHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJhbWUKIAogICAgIC8v
IEZJWE1FOiBpbnN0ZWFkIG9mIGhhbmRsaW5nIHRoaXMgaGVyZSwgYSBtZXNzYWdlIHNob3VsZCBi
ZSBzZW50IGxhdGVyIChzY2FsZXMgdG8gbXVsdGlwbGUgc2Vzc2lvbnMpCiAgICAgaWYgKHBhcmFt
ZXRlcnMucHJpdmF0ZUJyb3dzaW5nRW5hYmxlZCkKLSAgICAgICAgUmVtb3RlTmV0d29ya2luZ0Nv
bnRleHQ6OmVuc3VyZVByaXZhdGVCcm93c2luZ1Nlc3Npb24oU2Vzc2lvblRyYWNrZXI6OmxlZ2Fj
eVByaXZhdGVTZXNzaW9uSUQpOworICAgICAgICBSZW1vdGVOZXR3b3JraW5nQ29udGV4dDo6ZW5z
dXJlUHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbihTZXNzaW9uSUQ6OmxlZ2FjeVByaXZhdGVTZXNzaW9u
SUQpOwogCiAgICAgaWYgKHBhcmFtZXRlcnMuc2hvdWxkVXNlVGVzdGluZ05ldHdvcmtTZXNzaW9u
KQogICAgICAgICBOZXR3b3JrU3RvcmFnZVNlc3Npb246OnN3aXRjaFRvTmV3VGVzdGluZ1Nlc3Np
b24oKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtS
ZXNvdXJjZUxvYWRlci5oIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jl
c291cmNlTG9hZGVyLmgKaW5kZXggMjhiY2M5Yi4uYjNlNDQ0ZCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZGVyLmgKKysrIGIvU291
cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZGVyLmgKQEAgLTcx
LDYgKzcxLDcgQEAgcHVibGljOgogCiAgICAgV2ViQ29yZTo6UmVzb3VyY2VMb2FkUHJpb3JpdHkg
cHJpb3JpdHkoKSB7IHJldHVybiBtX3ByaW9yaXR5OyB9CiAgICAgV2ViQ29yZTo6UmVzb3VyY2VS
ZXF1ZXN0JiByZXF1ZXN0KCkgeyByZXR1cm4gbV9yZXF1ZXN0OyB9CisgICAgdWludDY0X3Qgc2Vz
c2lvbklEKCkgY29uc3QgeyByZXR1cm4gbV9zZXNzaW9uSUQ7IH0KIAogICAgIFdlYkNvcmU6OlJl
c291cmNlSGFuZGxlKiBoYW5kbGUoKSBjb25zdCB7IHJldHVybiBtX2hhbmRsZS5nZXQoKTsgfQog
ICAgIHZvaWQgZGlkQ29udmVydEhhbmRsZVRvRG93bmxvYWQoKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL1JlbW90ZU5ldHdvcmtpbmdDb250ZXh0LmggYi9Tb3Vy
Y2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9SZW1vdGVOZXR3b3JraW5nQ29udGV4dC5oCmluZGV4
IGU5NThiYjMuLjlkZWY2YjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9j
ZXNzL1JlbW90ZU5ldHdvcmtpbmdDb250ZXh0LmgKKysrIGIvU291cmNlL1dlYktpdDIvTmV0d29y
a1Byb2Nlc3MvUmVtb3RlTmV0d29ya2luZ0NvbnRleHQuaApAQCAtNDMsNiArNDMsNyBAQCBwdWJs
aWM6CiAgICAgc3RhdGljIHZvaWQgZW5zdXJlUHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbih1aW50NjRf
dCBzZXNzaW9uSUQpOwogCiAgICAgdmlydHVhbCBib29sIHNob3VsZENsZWFyUmVmZXJyZXJPbkhU
VFBTVG9IVFRQUmVkaXJlY3QoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBtX3Nob3VsZENsZWFy
UmVmZXJyZXJPbkhUVFBTVG9IVFRQUmVkaXJlY3Q7IH0KKyAgICB2aXJ0dWFsIHVpbnQ2NF90IHNl
c3Npb25JRCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG1fc2Vzc2lvbklEOyB9CiAKIHByaXZh
dGU6CiAgICAgUmVtb3RlTmV0d29ya2luZ0NvbnRleHQodWludDY0X3Qgc2Vzc2lvbklELCBib29s
IHNob3VsZENsZWFyUmVmZXJyZXJPbkhUVFBTVG9IVFRQUmVkaXJlY3QpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9tYWMvRGlza0NhY2hlTW9uaXRvci5oIGIvU291
cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvbWFjL0Rpc2tDYWNoZU1vbml0b3IuaAppbmRleCAz
MTg4M2M1Li4yMGNlODY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vz
cy9tYWMvRGlza0NhY2hlTW9uaXRvci5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9j
ZXNzL21hYy9EaXNrQ2FjaGVNb25pdG9yLmgKQEAgLTUyLDYgKzUyLDcgQEAgcHJpdmF0ZToKIAog
ICAgIFJlZlB0cjxOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcz4gbV9jb25uZWN0aW9uVG9X
ZWJQcm9jZXNzOwogICAgIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCBtX3Jlc291cmNlUmVxdWVz
dDsKKyAgICB1aW50NjRfdCBtX3Nlc3Npb25JRDsKIH07CiAKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvbWFjL0Rpc2tDYWNoZU1vbml0b3IubW0gYi9Tb3VyY2Uv
V2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9tYWMvRGlza0NhY2hlTW9uaXRvci5tbQppbmRleCAzODBk
YTFmLi5lYjBhNzFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9t
YWMvRGlza0NhY2hlTW9uaXRvci5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vz
cy9tYWMvRGlza0NhY2hlTW9uaXRvci5tbQpAQCAtNjIsNiArNjIsNyBAQCB2b2lkIERpc2tDYWNo
ZU1vbml0b3I6Om1vbml0b3JGaWxlQmFja2luZ1N0b3JlQ3JlYXRpb24oQ0ZDYWNoZWRVUkxSZXNw
b25zZVJlZiBjYQogRGlza0NhY2hlTW9uaXRvcjo6RGlza0NhY2hlTW9uaXRvcihDRkNhY2hlZFVS
TFJlc3BvbnNlUmVmIGNhY2hlZFJlc3BvbnNlLCBOZXR3b3JrUmVzb3VyY2VMb2FkZXIqIGxvYWRl
cikKICAgICA6IG1fY29ubmVjdGlvblRvV2ViUHJvY2Vzcyhsb2FkZXItPmNvbm5lY3Rpb25Ub1dl
YlByb2Nlc3MoKSkKICAgICAsIG1fcmVzb3VyY2VSZXF1ZXN0KGxvYWRlci0+cmVxdWVzdCgpKQor
ICAgICwgbV9zZXNzaW9uSUQobG9hZGVyLT5zZXNzaW9uSUQoKSkKIHsKICAgICBBU1NFUlQoUnVu
TG9vcDo6aXNNYWluKCkpOwogCkBAIC04OCw3ICs4OSw3IEBAIERpc2tDYWNoZU1vbml0b3I6OkRp
c2tDYWNoZU1vbml0b3IoQ0ZDYWNoZWRVUkxSZXNwb25zZVJlZiBjYWNoZWRSZXNwb25zZSwgTmV0
d29yCiAgICAgICAgIGlmIChoYW5kbGUuaXNOdWxsKCkpCiAgICAgICAgICAgICByZXR1cm47CiAK
LSAgICAgICAgbW9uaXRvci0+c2VuZChNZXNzYWdlczo6TmV0d29ya1Byb2Nlc3NDb25uZWN0aW9u
OjpEaWRDYWNoZVJlc291cmNlKG1vbml0b3ItPnJlc291cmNlUmVxdWVzdCgpLCBoYW5kbGUpKTsK
KyAgICAgICAgbW9uaXRvci0+c2VuZChNZXNzYWdlczo6TmV0d29ya1Byb2Nlc3NDb25uZWN0aW9u
OjpEaWRDYWNoZVJlc291cmNlKG1vbml0b3ItPnJlc291cmNlUmVxdWVzdCgpLCBoYW5kbGUsIG1f
c2Vzc2lvbklEKSk7CiAgICAgfTsKIAogICAgIF9DRkNhY2hlZFVSTFJlc3BvbnNlU2V0QmVjYW1l
RmlsZUJhY2tlZENhbGxCYWNrQmxvY2soY2FjaGVkUmVzcG9uc2UsIGJsb2NrLCBkaXNwYXRjaF9n
ZXRfbWFpbl9xdWV1ZSgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9j
ZXNzL21hYy9SZW1vdGVOZXR3b3JraW5nQ29udGV4dC5tbSBiL1NvdXJjZS9XZWJLaXQyL05ldHdv
cmtQcm9jZXNzL21hYy9SZW1vdGVOZXR3b3JraW5nQ29udGV4dC5tbQppbmRleCBhMGE4ZjY1Li44
MjgyOTYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9tYWMvUmVt
b3RlTmV0d29ya2luZ0NvbnRleHQubW0KKysrIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nl
c3MvbWFjL1JlbW90ZU5ldHdvcmtpbmdDb250ZXh0Lm1tCkBAIC0yOSw2ICsyOSw3IEBACiAjaW1w
b3J0ICJTZXNzaW9uVHJhY2tlci5oIgogI2ltcG9ydCAiV2ViRXJyb3JzLmgiCiAjaW1wb3J0IDxX
ZWJDb3JlL1Jlc291cmNlRXJyb3IuaD4KKyNpbXBvcnQgPFdlYkNvcmUvU2Vzc2lvbklELmg+CiAj
aW1wb3J0IDxXZWJLaXRTeXN0ZW1JbnRlcmZhY2UuaD4KICNpbXBvcnQgPHd0Zi9NYWluVGhyZWFk
Lmg+CiAjaW1wb3J0IDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KQEAgLTc5LDcgKzgwLDcgQEAgUmVz
b3VyY2VFcnJvciBSZW1vdGVOZXR3b3JraW5nQ29udGV4dDo6YmxvY2tlZEVycm9yKGNvbnN0IFJl
c291cmNlUmVxdWVzdCYgcmVxdWUKIAogdm9pZCBSZW1vdGVOZXR3b3JraW5nQ29udGV4dDo6ZW5z
dXJlUHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbih1aW50NjRfdCBzZXNzaW9uSUQpCiB7Ci0gICAgQVNT
RVJUKFNlc3Npb25UcmFja2VyOjppc0VwaGVtZXJhbElEKHNlc3Npb25JRCkpOworICAgIEFTU0VS
VChTZXNzaW9uSUQ6OmlzRXBoZW1lcmFsSUQoc2Vzc2lvbklEKSk7CiAKICAgICBpZiAoU2Vzc2lv
blRyYWNrZXI6OnNlc3Npb24oc2Vzc2lvbklEKSkKICAgICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1Nlc3Npb25UcmFja2VyLmNwcCBiL1NvdXJjZS9XZWJL
aXQyL1NoYXJlZC9TZXNzaW9uVHJhY2tlci5jcHAKaW5kZXggNmU0ZDRmZi4uMWQ4YjM0OCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1Nlc3Npb25UcmFja2VyLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9TaGFyZWQvU2Vzc2lvblRyYWNrZXIuY3BwCkBAIC0zMyw5ICszMyw2IEBA
IHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAotY29uc3Qg
dWludDY0X3QgU2Vzc2lvblRyYWNrZXI6OmRlZmF1bHRTZXNzaW9uSUQ7Ci1jb25zdCB1aW50NjRf
dCBTZXNzaW9uVHJhY2tlcjo6bGVnYWN5UHJpdmF0ZVNlc3Npb25JRDsKLQogc3RhdGljIEhhc2hN
YXA8dWludDY0X3QsIHN0ZDo6dW5pcXVlX3B0cjxOZXR3b3JrU3RvcmFnZVNlc3Npb24+PiYgc3Rh
dGljU2Vzc2lvbk1hcCgpCiB7CiAgICAgQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsKQEAgLTcy
LDcgKzY5LDcgQEAgY29uc3QgU3RyaW5nJiBTZXNzaW9uVHJhY2tlcjo6Z2V0SWRlbnRpZmllckJh
c2UoKQogCiBOZXR3b3JrU3RvcmFnZVNlc3Npb24qIFNlc3Npb25UcmFja2VyOjpzZXNzaW9uKHVp
bnQ2NF90IHNlc3Npb25JRCkKIHsKLSAgICBpZiAoc2Vzc2lvbklEID09IGRlZmF1bHRTZXNzaW9u
SUQpCisgICAgaWYgKHNlc3Npb25JRCA9PSBTZXNzaW9uSUQ6OmRlZmF1bHRTZXNzaW9uSUQpCiAg
ICAgICAgIHJldHVybiAmTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpkZWZhdWx0U3RvcmFnZVNlc3Np
b24oKTsKICAgICByZXR1cm4gc3RhdGljU2Vzc2lvbk1hcCgpLmdldChzZXNzaW9uSUQpOwogfQpA
QCAtODAsMTMgKzc3LDEzIEBAIE5ldHdvcmtTdG9yYWdlU2Vzc2lvbiogU2Vzc2lvblRyYWNrZXI6
OnNlc3Npb24odWludDY0X3Qgc2Vzc2lvbklEKQogdWludDY0X3QgU2Vzc2lvblRyYWNrZXI6OnNl
c3Npb25JRChjb25zdCBOZXR3b3JrU3RvcmFnZVNlc3Npb24mIHNlc3Npb24pCiB7CiAgICAgaWYg
KCZzZXNzaW9uID09ICZOZXR3b3JrU3RvcmFnZVNlc3Npb246OmRlZmF1bHRTdG9yYWdlU2Vzc2lv
bigpKQotICAgICAgICByZXR1cm4gZGVmYXVsdFNlc3Npb25JRDsKKyAgICAgICAgcmV0dXJuIFNl
c3Npb25JRDo6ZGVmYXVsdFNlc3Npb25JRDsKICAgICByZXR1cm4gc3RvcmFnZVNlc3Npb25Ub0lE
KCkuZ2V0KCZzZXNzaW9uKTsKIH0KIAogdm9pZCBTZXNzaW9uVHJhY2tlcjo6c2V0U2Vzc2lvbih1
aW50NjRfdCBzZXNzaW9uSUQsIHN0ZDo6dW5pcXVlX3B0cjxOZXR3b3JrU3RvcmFnZVNlc3Npb24+
IHNlc3Npb24pCiB7Ci0gICAgQVNTRVJUKHNlc3Npb25JRCAhPSBkZWZhdWx0U2Vzc2lvbklEKTsK
KyAgICBBU1NFUlQoc2Vzc2lvbklEICE9IFNlc3Npb25JRDo6ZGVmYXVsdFNlc3Npb25JRCk7CiAg
ICAgc3RvcmFnZVNlc3Npb25Ub0lEKCkuc2V0KHNlc3Npb24uZ2V0KCksIHNlc3Npb25JRCk7CiAg
ICAgc3RhdGljU2Vzc2lvbk1hcCgpLnNldChzZXNzaW9uSUQsIHN0ZDo6bW92ZShzZXNzaW9uKSk7
CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvU2Vzc2lvblRyYWNrZXIuaCBi
L1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9TZXNzaW9uVHJhY2tlci5oCmluZGV4IDJlYjgxYzkuLjlj
ZjQ5YzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9TZXNzaW9uVHJhY2tlci5o
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9TZXNzaW9uVHJhY2tlci5oCkBAIC0yNyw2ICsy
Nyw3IEBACiAjZGVmaW5lIFNlc3Npb25UcmFja2VyX2gKIAogI2luY2x1ZGUgPFdlYkNvcmUvTmV0
d29ya1N0b3JhZ2VTZXNzaW9uLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9TZXNzaW9uSUQuaD4KICNp
bmNsdWRlIDx3dGYvSGFzaE1hcC5oPgogI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgogI2lu
Y2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KQEAgLTM2LDkgKzM3LDYgQEAgbmFtZXNwYWNlIFdl
YktpdCB7CiBjbGFzcyBTZXNzaW9uVHJhY2tlciB7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUo
U2Vzc2lvblRyYWNrZXIpOwogcHVibGljOgotICAgIHN0YXRpYyBjb25zdCB1aW50NjRfdCBkZWZh
dWx0U2Vzc2lvbklEID0gMTsKLSAgICBzdGF0aWMgY29uc3QgdWludDY0X3QgbGVnYWN5UHJpdmF0
ZVNlc3Npb25JRCA9IDI7Ci0gICAgc3RhdGljIGJvb2wgaXNFcGhlbWVyYWxJRCh1aW50NjRfdCBz
ZXNzaW9uSUQpIHsgcmV0dXJuIHNlc3Npb25JRCAhPSBTZXNzaW9uVHJhY2tlcjo6ZGVmYXVsdFNl
c3Npb25JRDsgfQogICAgIC8vIEZJWE1FOiBzZXNzaW9uTWFwKCkncyByZXR1cm5lZCBtYXAgZG9l
cyBub3QgaW5jbHVkZSBkZWZhdWx0IHNlc3Npb24uCiAgICAgc3RhdGljIGNvbnN0IEhhc2hNYXA8
dWludDY0X3QsIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpOZXR3b3JrU3RvcmFnZVNlc3Npb24+
PiYgc2Vzc2lvbk1hcCgpOwogICAgIHN0YXRpYyBjb25zdCBTdHJpbmcmIGdldElkZW50aWZpZXJC
YXNlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL0Nvb2tpZVN0b3Jh
Z2VTaGltLm1tIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9Db29raWVTdG9yYWdlU2hpbS5t
bQppbmRleCBjNmQ3MDVmLi4yYjM3YjRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFy
ZWQvbWFjL0Nvb2tpZVN0b3JhZ2VTaGltLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9t
YWMvQ29va2llU3RvcmFnZVNoaW0ubW0KQEAgLTMxLDcgKzMxLDcgQEAKICNpbmNsdWRlICJDb29r
aWVTdG9yYWdlU2hpbUxpYnJhcnkuaCIKICNpbmNsdWRlICJOZXR3b3JrQ29ubmVjdGlvblRvV2Vi
UHJvY2Vzcy5oIgogI2luY2x1ZGUgIk5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbi5oIgotI2luY2x1
ZGUgIlNlc3Npb25UcmFja2VyLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9TZXNzaW9uSUQuaD4KICNp
bmNsdWRlICJXZWJDb3JlQXJndW1lbnRDb2RlcnMuaCIKICNpbmNsdWRlICJXZWJQcm9jZXNzLmgi
CiAjaW5jbHVkZSA8V2ViQ29yZS9VUkwuaD4KQEAgLTU4LDcgKzU4LDcgQEAgc3RhdGljIENGRGlj
dGlvbmFyeVJlZiB3ZWJLaXRDb29raWVTdG9yYWdlQ29weVJlcXVlc3RIZWFkZXJGaWVsZHNGb3JV
UkwoQ0ZIVFRQQ28KIHsKICAgICBTdHJpbmcgY29va2llczsKICAgICBVUkwgZmlyc3RQYXJ0eUZv
ckNvb2tpZXNVUkw7Ci0gICAgaWYgKCFXZWJQcm9jZXNzOjpzaGFyZWQoKS5uZXR3b3JrQ29ubmVj
dGlvbigpLT5jb25uZWN0aW9uKCktPnNlbmRTeW5jKE1lc3NhZ2VzOjpOZXR3b3JrQ29ubmVjdGlv
blRvV2ViUHJvY2Vzczo6Q29va2llUmVxdWVzdEhlYWRlckZpZWxkVmFsdWUoU2Vzc2lvblRyYWNr
ZXI6OmRlZmF1bHRTZXNzaW9uSUQsIGZpcnN0UGFydHlGb3JDb29raWVzVVJMLCBpblJlcXVlc3RV
UkwpLCBNZXNzYWdlczo6TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OkNvb2tpZXNGb3JE
T006OlJlcGx5KGNvb2tpZXMpLCAwKSkKKyAgICBpZiAoIVdlYlByb2Nlc3M6OnNoYXJlZCgpLm5l
dHdvcmtDb25uZWN0aW9uKCktPmNvbm5lY3Rpb24oKS0+c2VuZFN5bmMoTWVzc2FnZXM6Ok5ldHdv
cmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpDb29raWVSZXF1ZXN0SGVhZGVyRmllbGRWYWx1ZShT
ZXNzaW9uSUQ6OmRlZmF1bHRTZXNzaW9uSUQsIGZpcnN0UGFydHlGb3JDb29raWVzVVJMLCBpblJl
cXVlc3RVUkwpLCBNZXNzYWdlczo6TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OkNvb2tp
ZXNGb3JET006OlJlcGx5KGNvb2tpZXMpLCAwKSkKICAgICAgICAgcmV0dXJuIDA7CiAKICAgICBp
ZiAoY29va2llcy5pc051bGwoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUElTZXNzaW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUElTZXNzaW9uLmNw
cAppbmRleCAwOGQ4NGFmLi4zODgyODFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJU2Vzc2lvbi5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSVNl
c3Npb24uY3BwCkBAIC0yNiw2ICsyNiw3IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVk
ZSAiQVBJU2Vzc2lvbi5oIgogCisjaW5jbHVkZSA8V2ViQ29yZS9TZXNzaW9uSUQuaD4KICNpbmNs
dWRlIDx3dGYvUnVuTG9vcC5oPgogCiBuYW1lc3BhY2UgQVBJIHsKQEAgLTM0LDcgKzM1LDcgQEAg
c3RhdGljIHVpbnQ2NF90IGdlbmVyYXRlSUQoYm9vbCBpc0VwaGVtZXJhbCkKIHsKICAgICBBU1NF
UlQoUnVuTG9vcDo6aXNNYWluKCkpOwogCi0gICAgc3RhdGljIHVpbnQ2NF90IHVuaXF1ZVNlc3Np
b25JRCA9IFdlYktpdDo6U2Vzc2lvblRyYWNrZXI6OmxlZ2FjeVByaXZhdGVTZXNzaW9uSUQ7Cisg
ICAgc3RhdGljIHVpbnQ2NF90IHVuaXF1ZVNlc3Npb25JRCA9IFdlYkNvcmU6OlNlc3Npb25JRDo6
bGVnYWN5UHJpdmF0ZVNlc3Npb25JRDsKICAgICBBU1NFUlQoaXNFcGhlbWVyYWwpOwogICAgIHJl
dHVybiArK3VuaXF1ZVNlc3Npb25JRDsKIH0KQEAgLTQzLDcgKzQ0LDcgQEAgU2Vzc2lvbiYgU2Vz
c2lvbjo6ZGVmYXVsdFNlc3Npb24oKQogewogICAgIEFTU0VSVChSdW5Mb29wOjppc01haW4oKSk7
CiAKLSAgICBzdGF0aWMgU2Vzc2lvbiogZGVmYXVsdFNlc3Npb24gPSBuZXcgU2Vzc2lvbihmYWxz
ZSwgV2ViS2l0OjpTZXNzaW9uVHJhY2tlcjo6ZGVmYXVsdFNlc3Npb25JRCk7CisgICAgc3RhdGlj
IFNlc3Npb24qIGRlZmF1bHRTZXNzaW9uID0gbmV3IFNlc3Npb24oZmFsc2UsIFdlYkNvcmU6OlNl
c3Npb25JRDo6ZGVmYXVsdFNlc3Npb25JRCk7CiAgICAgcmV0dXJuICpkZWZhdWx0U2Vzc2lvbjsK
IH0KIApAQCAtNTEsNyArNTIsNyBAQCBTZXNzaW9uJiBTZXNzaW9uOjpsZWdhY3lQcml2YXRlU2Vz
c2lvbigpCiB7CiAgICAgQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsKIAotICAgIHN0YXRpYyBT
ZXNzaW9uKiBsZWdhY3lQcml2YXRlU2Vzc2lvbiA9IG5ldyBTZXNzaW9uKHRydWUsIFdlYktpdDo6
U2Vzc2lvblRyYWNrZXI6OmxlZ2FjeVByaXZhdGVTZXNzaW9uSUQpOworICAgIHN0YXRpYyBTZXNz
aW9uKiBsZWdhY3lQcml2YXRlU2Vzc2lvbiA9IG5ldyBTZXNzaW9uKHRydWUsIFdlYkNvcmU6OlNl
c3Npb25JRDo6bGVnYWN5UHJpdmF0ZVNlc3Npb25JRCk7CiAgICAgcmV0dXJuICpsZWdhY3lQcml2
YXRlU2Vzc2lvbjsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SVNlc3Npb24uaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUElTZXNzaW9uLmgKaW5kZXgg
YmQ2MDRiMi4uZTE1OTBiNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SVNlc3Npb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJU2Vzc2lvbi5oCkBA
IC0yNyw3ICsyNyw2IEBACiAjZGVmaW5lIEFQSVNlc3Npb25faAogCiAjaW5jbHVkZSAiQVBJT2Jq
ZWN0LmgiCi0jaW5jbHVkZSAiU2Vzc2lvblRyYWNrZXIuaCIKICNpbmNsdWRlIDx3dGYvUGFzc1Jl
ZlB0ci5oPgogCiBuYW1lc3BhY2UgQVBJIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9XZWJDb250ZXh0LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb250
ZXh0LmNwcAppbmRleCAzNDUzNjQ4Li5kNWFkZGZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvV2ViQ29udGV4dC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L1dlYkNvbnRleHQuY3BwCkBAIC0zMyw3ICszMyw2IEBACiAjaW5jbHVkZSAiTG9nZ2luZy5oIgog
I2luY2x1ZGUgIk11dGFibGVEaWN0aW9uYXJ5LmgiCiAjaW5jbHVkZSAiU2FuZGJveEV4dGVuc2lv
bi5oIgotI2luY2x1ZGUgIlNlc3Npb25UcmFja2VyLmgiCiAjaW5jbHVkZSAiU3RhdGlzdGljc0Rh
dGEuaCIKICNpbmNsdWRlICJUZXh0Q2hlY2tlci5oIgogI2luY2x1ZGUgIldLQ29udGV4dFByaXZh
dGUuaCIKQEAgLTYzLDYgKzYyLDcgQEAKICNpbmNsdWRlIDxXZWJDb3JlL0xpbmtIYXNoLmg+CiAj
aW5jbHVkZSA8V2ViQ29yZS9Mb2dnaW5nLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJjZVJl
cXVlc3QuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1Nlc3Npb25JRC5oPgogI2luY2x1ZGUgPHJ1bnRp
bWUvSlNDSW5saW5lcy5oPgogI2luY2x1ZGUgPHd0Zi9DdXJyZW50VGltZS5oPgogI2luY2x1ZGUg
PHd0Zi9NYWluVGhyZWFkLmg+CkBAIC00ODYsMTYgKzQ4NiwxNiBAQCB2b2lkIFdlYkNvbnRleHQ6
OnNldEFueVBhZ2VHcm91cE1pZ2h0SGF2ZVByaXZhdGVCcm93c2luZ0VuYWJsZWQoYm9vbCBwcml2
YXRlQnJvdwogI2lmIEVOQUJMRShORVRXT1JLX1BST0NFU1MpCiAgICAgaWYgKHVzZXNOZXR3b3Jr
UHJvY2VzcygpICYmIG5ldHdvcmtQcm9jZXNzKCkpIHsKICAgICAgICAgaWYgKHByaXZhdGVCcm93
c2luZ0VuYWJsZWQpCi0gICAgICAgICAgICBuZXR3b3JrUHJvY2VzcygpLT5zZW5kKE1lc3NhZ2Vz
OjpOZXR3b3JrUHJvY2Vzczo6RW5zdXJlUHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbihTZXNzaW9uVHJh
Y2tlcjo6bGVnYWN5UHJpdmF0ZVNlc3Npb25JRCksIDApOworICAgICAgICAgICAgbmV0d29ya1By
b2Nlc3MoKS0+c2VuZChNZXNzYWdlczo6TmV0d29ya1Byb2Nlc3M6OkVuc3VyZVByaXZhdGVCcm93
c2luZ1Nlc3Npb24oU2Vzc2lvbklEOjpsZWdhY3lQcml2YXRlU2Vzc2lvbklEKSwgMCk7CiAgICAg
ICAgIGVsc2UKLSAgICAgICAgICAgIG5ldHdvcmtQcm9jZXNzKCktPnNlbmQoTWVzc2FnZXM6Ok5l
dHdvcmtQcm9jZXNzOjpEZXN0cm95UHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbihTZXNzaW9uVHJhY2tl
cjo6bGVnYWN5UHJpdmF0ZVNlc3Npb25JRCksIDApOworICAgICAgICAgICAgbmV0d29ya1Byb2Nl
c3MoKS0+c2VuZChNZXNzYWdlczo6TmV0d29ya1Byb2Nlc3M6OkRlc3Ryb3lQcml2YXRlQnJvd3Np
bmdTZXNzaW9uKFNlc3Npb25JRDo6bGVnYWN5UHJpdmF0ZVNlc3Npb25JRCksIDApOwogICAgIH0K
ICNlbmRpZiAvLyBFTkFCTEVEKE5FVFdPUktfUFJPQ0VTUykKIAogICAgIGlmIChwcml2YXRlQnJv
d3NpbmdFbmFibGVkKQotICAgICAgICBzZW5kVG9BbGxQcm9jZXNzZXMoTWVzc2FnZXM6OldlYlBy
b2Nlc3M6OkVuc3VyZVByaXZhdGVCcm93c2luZ1Nlc3Npb24oU2Vzc2lvblRyYWNrZXI6OmxlZ2Fj
eVByaXZhdGVTZXNzaW9uSUQpKTsKKyAgICAgICAgc2VuZFRvQWxsUHJvY2Vzc2VzKE1lc3NhZ2Vz
OjpXZWJQcm9jZXNzOjpFbnN1cmVQcml2YXRlQnJvd3NpbmdTZXNzaW9uKFNlc3Npb25JRDo6bGVn
YWN5UHJpdmF0ZVNlc3Npb25JRCkpOwogICAgIGVsc2UKLSAgICAgICAgc2VuZFRvQWxsUHJvY2Vz
c2VzKE1lc3NhZ2VzOjpXZWJQcm9jZXNzOjpEZXN0cm95UHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbihT
ZXNzaW9uVHJhY2tlcjo6bGVnYWN5UHJpdmF0ZVNlc3Npb25JRCkpOworICAgICAgICBzZW5kVG9B
bGxQcm9jZXNzZXMoTWVzc2FnZXM6OldlYlByb2Nlc3M6OkRlc3Ryb3lQcml2YXRlQnJvd3NpbmdT
ZXNzaW9uKFNlc3Npb25JRDo6bGVnYWN5UHJpdmF0ZVNlc3Npb25JRCkpOwogfQogCiB2b2lkICgq
c19pbnZhbGlkTWVzc2FnZUNhbGxiYWNrKShXS1N0cmluZ1JlZiBtZXNzYWdlTmFtZSk7CkBAIC02
MjUsNyArNjI1LDcgQEAgV2ViUHJvY2Vzc1Byb3h5JiBXZWJDb250ZXh0OjpjcmVhdGVOZXdXZWJQ
cm9jZXNzKCkKICNlbmRpZgogCiAgICAgaWYgKFdlYlByZWZlcmVuY2VzOjphbnlQYWdlc0FyZVVz
aW5nUHJpdmF0ZUJyb3dzaW5nKCkpCi0gICAgICAgIHByb2Nlc3MtPnNlbmQoTWVzc2FnZXM6Oldl
YlByb2Nlc3M6OkVuc3VyZVByaXZhdGVCcm93c2luZ1Nlc3Npb24oU2Vzc2lvblRyYWNrZXI6Omxl
Z2FjeVByaXZhdGVTZXNzaW9uSUQpLCAwKTsKKyAgICAgICAgcHJvY2Vzcy0+c2VuZChNZXNzYWdl
czo6V2ViUHJvY2Vzczo6RW5zdXJlUHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbihTZXNzaW9uSUQ6Omxl
Z2FjeVByaXZhdGVTZXNzaW9uSUQpLCAwKTsKIAogICAgIG1fcHJvY2Vzc2VzLmFwcGVuZChwcm9j
ZXNzKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1
bmRsZS9JbmplY3RlZEJ1bmRsZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVj
dGVkQnVuZGxlL0luamVjdGVkQnVuZGxlLmNwcAppbmRleCA1M2Y1ZjZlLi5mOGU4NmEzIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVk
QnVuZGxlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxl
L0luamVjdGVkQnVuZGxlLmNwcApAQCAtNjcsNiArNjcsNyBAQAogI2luY2x1ZGUgPFdlYkNvcmUv
U2NyaXB0Q29udHJvbGxlci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU2VjdXJpdHlPcmlnaW4uaD4K
ICNpbmNsdWRlIDxXZWJDb3JlL1NlY3VyaXR5UG9saWN5Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9T
ZXNzaW9uSUQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1NldHRpbmdzLmg+CiAjaW5jbHVkZSA8V2Vi
Q29yZS9Vc2VyR2VzdHVyZUluZGljYXRvci5oPgogCkBAIC0yOTksOSArMzAwLDkgQEAgdm9pZCBJ
bmplY3RlZEJ1bmRsZTo6c2V0UHJpdmF0ZUJyb3dzaW5nRW5hYmxlZChXZWJQYWdlR3JvdXBQcm94
eSogcGFnZUdyb3VwLCBib28KICAgICAvLyBGSVhNRSAoTmV0d29ya1Byb2Nlc3MpOiBUaGlzIHRl
c3Qtb25seSBmdW5jdGlvbiBkb2Vzbid0IHdvcmsgd2l0aCBOZXR3b3JrUHJvY2VzcywgPGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTUyNzQ+LgogI2lmIFBMQVRGT1JN
KENPQ09BKSB8fCBVU0UoQ0ZORVRXT1JLKSB8fCBVU0UoU09VUCkKICAgICBpZiAoZW5hYmxlZCkK
LSAgICAgICAgV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dDo6ZW5zdXJlUHJpdmF0ZUJyb3dzaW5n
U2Vzc2lvbihTZXNzaW9uVHJhY2tlcjo6bGVnYWN5UHJpdmF0ZVNlc3Npb25JRCk7CisgICAgICAg
IFdlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQ6OmVuc3VyZVByaXZhdGVCcm93c2luZ1Nlc3Npb24o
U2Vzc2lvbklEOjpsZWdhY3lQcml2YXRlU2Vzc2lvbklEKTsKICAgICBlbHNlCi0gICAgICAgIFNl
c3Npb25UcmFja2VyOjpkZXN0cm95U2Vzc2lvbihTZXNzaW9uVHJhY2tlcjo6bGVnYWN5UHJpdmF0
ZVNlc3Npb25JRCk7CisgICAgICAgIFNlc3Npb25UcmFja2VyOjpkZXN0cm95U2Vzc2lvbihTZXNz
aW9uSUQ6OmxlZ2FjeVByaXZhdGVTZXNzaW9uSUQpOwogI2VuZGlmCiAgICAgY29uc3QgSGFzaFNl
dDxQYWdlKj4mIHBhZ2VzID0gUGFnZUdyb3VwOjpwYWdlR3JvdXAocGFnZUdyb3VwLT5pZGVudGlm
aWVyKCkpLT5wYWdlcygpOwogICAgIGZvciAoSGFzaFNldDxQYWdlKj46Oml0ZXJhdG9yIGl0ZXIg
PSBwYWdlcy5iZWdpbigpOyBpdGVyICE9IHBhZ2VzLmVuZCgpOyArK2l0ZXIpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NDb25uZWN0
aW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vz
c0Nvbm5lY3Rpb24uY3BwCmluZGV4IGIyMTZlMTIuLjUyMDU0MzUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24uY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc0Nv
bm5lY3Rpb24uY3BwCkBAIC04MSw5ICs4MSw5IEBAIHZvaWQgTmV0d29ya1Byb2Nlc3NDb25uZWN0
aW9uOjpkaWRSZWNlaXZlSW52YWxpZE1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uKiwgSVBDOjpTCiB9
CiAKICNpZiBFTkFCTEUoU0hBUkVBQkxFX1JFU09VUkNFKQotdm9pZCBOZXR3b3JrUHJvY2Vzc0Nv
bm5lY3Rpb246OmRpZENhY2hlUmVzb3VyY2UoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0
LCBjb25zdCBTaGFyZWFibGVSZXNvdXJjZTo6SGFuZGxlJiBoYW5kbGUpCit2b2lkIE5ldHdvcmtQ
cm9jZXNzQ29ubmVjdGlvbjo6ZGlkQ2FjaGVSZXNvdXJjZShjb25zdCBSZXNvdXJjZVJlcXVlc3Qm
IHJlcXVlc3QsIGNvbnN0IFNoYXJlYWJsZVJlc291cmNlOjpIYW5kbGUmIGhhbmRsZSwgdWludDY0
X3Qgc2Vzc2lvbklEKQogewotICAgIENhY2hlZFJlc291cmNlKiByZXNvdXJjZSA9IG1lbW9yeUNh
Y2hlKCktPnJlc291cmNlRm9yUmVxdWVzdChyZXF1ZXN0KTsKKyAgICBDYWNoZWRSZXNvdXJjZSog
cmVzb3VyY2UgPSBtZW1vcnlDYWNoZSgpLT5yZXNvdXJjZUZvclJlcXVlc3QocmVxdWVzdCwgc2Vz
c2lvbklEKTsKICAgICBpZiAoIXJlc291cmNlKQogICAgICAgICByZXR1cm47CiAgICAgCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3ND
b25uZWN0aW9uLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05ldHdvcmsvTmV0d29ya1By
b2Nlc3NDb25uZWN0aW9uLmgKaW5kZXggODQyZjZlYi4uMzU0YTMzOCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbi5o
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc0Nv
bm5lY3Rpb24uaApAQCAtNzAsNyArNzAsNyBAQCBwcml2YXRlOgogCiAjaWYgRU5BQkxFKFNIQVJF
QUJMRV9SRVNPVVJDRSkKICAgICAvLyBNZXNzYWdlIGhhbmRsZXJzLgotICAgIHZvaWQgZGlkQ2Fj
aGVSZXNvdXJjZShjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBTaGFyZWFi
bGVSZXNvdXJjZTo6SGFuZGxlJik7CisgICAgdm9pZCBkaWRDYWNoZVJlc291cmNlKGNvbnN0IFdl
YkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFNoYXJlYWJsZVJlc291cmNlOjpIYW5kbGUm
LCB1aW50NjRfdCBzZXNzaW9uSUQpOwogI2VuZGlmCiAKICAgICAvLyBUaGUgY29ubmVjdGlvbiBm
cm9tIHRoZSB3ZWIgcHJvY2VzcyB0byB0aGUgbmV0d29yayBwcm9jZXNzLgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzQ29ubmVjdGlv
bi5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTmV0d29yay9OZXR3b3Jr
UHJvY2Vzc0Nvbm5lY3Rpb24ubWVzc2FnZXMuaW4KaW5kZXggZTY5ODlkOS4uMWYzM2I1NyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNz
Q29ubmVjdGlvbi5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05l
dHdvcmsvTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uLm1lc3NhZ2VzLmluCkBAIC0yNSw3ICsyNSw3
IEBACiBtZXNzYWdlcyAtPiBOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24gTGVnYWN5UmVjZWl2ZXIg
ewogCiAjaWYgRU5BQkxFKFNIQVJFQUJMRV9SRVNPVVJDRSkKLSAgICBEaWRDYWNoZVJlc291cmNl
KFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCByZXF1ZXN0LCBXZWJLaXQ6OlNoYXJlYWJsZVJlc291
cmNlOjpIYW5kbGUgcmVzb3VyY2UpCisgICAgRGlkQ2FjaGVSZXNvdXJjZShXZWJDb3JlOjpSZXNv
dXJjZVJlcXVlc3QgcmVxdWVzdCwgV2ViS2l0OjpTaGFyZWFibGVSZXNvdXJjZTo6SGFuZGxlIHJl
c291cmNlLCB1aW50NjRfdCBzZXNzaW9uSUQpCiAjZW5kaWYKIAogfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYlJlc291cmNlTG9hZFNjaGVkdWxlci5j
cHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05ldHdvcmsvV2ViUmVzb3VyY2VMb2FkU2No
ZWR1bGVyLmNwcAppbmRleCBlYWJkNjU0Li4yYmFjZGJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL05ldHdvcmsvV2ViUmVzb3VyY2VMb2FkU2NoZWR1bGVyLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05ldHdvcmsvV2ViUmVzb3VyY2VMb2FkU2NoZWR1
bGVyLmNwcApAQCAtNDcsNiArNDcsNyBAQAogI2luY2x1ZGUgPFdlYkNvcmUvUmVmZXJyZXJQb2xp
Y3kuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlQnVmZmVyLmg+CiAjaW5jbHVkZSA8V2Vi
Q29yZS9SZXNvdXJjZUxvYWRlci5oPgorI2luY2x1ZGUgPFdlYkNvcmUvU2Vzc2lvbklELmg+CiAj
aW5jbHVkZSA8V2ViQ29yZS9TZXR0aW5ncy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU3VicmVzb3Vy
Y2VMb2FkZXIuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CkBAIC0xMTgsNyArMTE5
LDcgQEAgdm9pZCBXZWJSZXNvdXJjZUxvYWRTY2hlZHVsZXI6OnNjaGVkdWxlTG9hZChSZXNvdXJj
ZUxvYWRlciogcmVzb3VyY2VMb2FkZXIsIENhY2gKICAgICBsb2FkUGFyYW1ldGVycy5pZGVudGlm
aWVyID0gaWRlbnRpZmllcjsKICAgICBsb2FkUGFyYW1ldGVycy53ZWJQYWdlSUQgPSB3ZWJQYWdl
ID8gd2ViUGFnZS0+cGFnZUlEKCkgOiAwOwogICAgIGxvYWRQYXJhbWV0ZXJzLndlYkZyYW1lSUQg
PSB3ZWJGcmFtZSA/IHdlYkZyYW1lLT5mcmFtZUlEKCkgOiAwOwotICAgIGxvYWRQYXJhbWV0ZXJz
LnNlc3Npb25JRCA9IHdlYlBhZ2UgPyB3ZWJQYWdlLT5zZXNzaW9uSUQoKSA6IFNlc3Npb25UcmFj
a2VyOjpkZWZhdWx0U2Vzc2lvbklEOworICAgIGxvYWRQYXJhbWV0ZXJzLnNlc3Npb25JRCA9IHdl
YlBhZ2UgPyB3ZWJQYWdlLT5zZXNzaW9uSUQoKSA6IFNlc3Npb25JRDo6ZGVmYXVsdFNlc3Npb25J
RDsKICAgICBsb2FkUGFyYW1ldGVycy5yZXF1ZXN0ID0gcmVzb3VyY2VMb2FkZXItPnJlcXVlc3Qo
KTsKICAgICBsb2FkUGFyYW1ldGVycy5wcmlvcml0eSA9IHByaW9yaXR5OwogICAgIGxvYWRQYXJh
bWV0ZXJzLmNvbnRlbnRTbmlmZmluZ1BvbGljeSA9IGNvbnRlbnRTbmlmZmluZ1BvbGljeTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUGxh
dGZvcm1TdHJhdGVnaWVzLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmNwcAppbmRleCAzZTcwN2M3Li5jZTdkZDUyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlBs
YXRmb3JtU3RyYXRlZ2llcy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuY3BwCkBAIC01NCw2ICs1NCw3IEBACiAj
aW5jbHVkZSA8V2ViQ29yZS9QbGF0Zm9ybUNvb2tpZUphci5oPgogI2luY2x1ZGUgPFdlYkNvcmUv
UGxhdGZvcm1QYXN0ZWJvYXJkLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJjZUVycm9yLmg+
CisjaW5jbHVkZSA8V2ViQ29yZS9TZXNzaW9uSUQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1N0b3Jh
Z2VOYW1lc3BhY2UuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1N1YmZyYW1lTG9hZGVyLmg+CiAjaW5j
bHVkZSA8V2ViQ29yZS9VUkwuaD4KQEAgLTI2Myw3ICsyNjQsNyBAQCB2b2lkIFdlYlBsYXRmb3Jt
U3RyYXRlZ2llczo6bG9hZFJlc291cmNlU3luY2hyb25vdXNseShOZXR3b3JraW5nQ29udGV4dCog
Y29udGV4dAogICAgIGxvYWRQYXJhbWV0ZXJzLmlkZW50aWZpZXIgPSByZXNvdXJjZUxvYWRJZGVu
dGlmaWVyOwogICAgIGxvYWRQYXJhbWV0ZXJzLndlYlBhZ2VJRCA9IHdlYlBhZ2UgPyB3ZWJQYWdl
LT5wYWdlSUQoKSA6IDA7CiAgICAgbG9hZFBhcmFtZXRlcnMud2ViRnJhbWVJRCA9IHdlYkZyYW1l
ID8gd2ViRnJhbWUtPmZyYW1lSUQoKSA6IDA7Ci0gICAgbG9hZFBhcmFtZXRlcnMuc2Vzc2lvbklE
ID0gd2ViUGFnZSA/IHdlYlBhZ2UtPnNlc3Npb25JRCgpIDogU2Vzc2lvblRyYWNrZXI6OmRlZmF1
bHRTZXNzaW9uSUQ7CisgICAgbG9hZFBhcmFtZXRlcnMuc2Vzc2lvbklEID0gd2ViUGFnZSA/IHdl
YlBhZ2UtPnNlc3Npb25JRCgpIDogU2Vzc2lvbklEOjpkZWZhdWx0U2Vzc2lvbklEOwogICAgIGxv
YWRQYXJhbWV0ZXJzLnJlcXVlc3QgPSByZXF1ZXN0OwogICAgIGxvYWRQYXJhbWV0ZXJzLnByaW9y
aXR5ID0gUmVzb3VyY2VMb2FkUHJpb3JpdHlIaWdoZXN0OwogICAgIGxvYWRQYXJhbWV0ZXJzLmNv
bnRlbnRTbmlmZmluZ1BvbGljeSA9IFNuaWZmQ29udGVudDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvbWFjL1dlYkZyYW1lTmV0d29ya2luZ0Nv
bnRleHQuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvbWFjL1dl
YkZyYW1lTmV0d29ya2luZ0NvbnRleHQuaAppbmRleCA4NjI5ZmE4Li43YjZlMTFiIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L21hYy9XZWJGcmFt
ZU5ldHdvcmtpbmdDb250ZXh0LmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9tYWMvV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5oCkBAIC01OCw2ICs1OCw3
IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCBSZXRhaW5QdHI8Q0ZEYXRhUmVmPiBzb3VyY2VBcHBs
aWNhdGlvbkF1ZGl0RGF0YSgpIGNvbnN0IG92ZXJyaWRlOwogICAgIHZpcnR1YWwgV2ViQ29yZTo6
UmVzb3VyY2VFcnJvciBibG9ja2VkRXJyb3IoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0
JikgY29uc3Qgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCBXZWJDb3JlOjpOZXR3b3JrU3RvcmFnZVNl
c3Npb24mIHN0b3JhZ2VTZXNzaW9uKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB1aW50
NjRfdCBzZXNzaW9uSUQoKSBjb25zdCBvdmVycmlkZTsKIH07CiAKIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvbWFjL1dlYkZyYW1lTmV0d29y
a2luZ0NvbnRleHQubW0gYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L21hYy9XZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0Lm1tCmluZGV4IDNjNTI1MTYuLmJmYzliM2Ug
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvbWFj
L1dlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQubW0KKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9tYWMvV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5tbQpAQCAt
MzUsNiArMzUsNyBAQAogI2luY2x1ZGUgPFdlYkNvcmUvTmV0d29ya1N0b3JhZ2VTZXNzaW9uLmg+
CiAjaW5jbHVkZSA8V2ViQ29yZS9QYWdlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJjZUVy
cm9yLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9TZXNzaW9uSUQuaD4KICNpbmNsdWRlIDxXZWJDb3Jl
L1NldHRpbmdzLmg+CiAjaW5jbHVkZSA8V2ViS2l0U3lzdGVtSW50ZXJmYWNlLmg+CiAKQEAgLTQ0
LDcgKzQ1LDcgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiAgICAgCiB2b2lkIFdlYkZyYW1lTmV0d29y
a2luZ0NvbnRleHQ6OmVuc3VyZVByaXZhdGVCcm93c2luZ1Nlc3Npb24odWludDY0X3Qgc2Vzc2lv
bklEKQogewotICAgIEFTU0VSVChTZXNzaW9uVHJhY2tlcjo6aXNFcGhlbWVyYWxJRChzZXNzaW9u
SUQpKTsKKyAgICBBU1NFUlQoU2Vzc2lvbklEOjppc0VwaGVtZXJhbElEKHNlc3Npb25JRCkpOwog
CiAgICAgaWYgKFNlc3Npb25UcmFja2VyOjpzZXNzaW9uKHNlc3Npb25JRCkpCiAgICAgICAgIHJl
dHVybjsKQEAgLTEwMSwxMCArMTAyLDE0IEBAIFJlc291cmNlRXJyb3IgV2ViRnJhbWVOZXR3b3Jr
aW5nQ29udGV4dDo6YmxvY2tlZEVycm9yKGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxCiBOZXR3
b3JrU3RvcmFnZVNlc3Npb24mIFdlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQ6OnN0b3JhZ2VTZXNz
aW9uKCkgY29uc3QKIHsKICAgICBBU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOworICAgIHJldHVy
biAqU2Vzc2lvblRyYWNrZXI6OnNlc3Npb24oc2Vzc2lvbklEKCkpOworfQogCit1aW50NjRfdCBX
ZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0OjpzZXNzaW9uSUQoKSBjb25zdAorewogICAgIGlmIChm
cmFtZSgpKQotICAgICAgICByZXR1cm4gKlNlc3Npb25UcmFja2VyOjpzZXNzaW9uKHdlYkZyYW1l
TG9hZGVyQ2xpZW50KCktPndlYkZyYW1lKCktPnBhZ2UoKS0+c2Vzc2lvbklEKCkpOwotICAgIHJl
dHVybiBOZXR3b3JrU3RvcmFnZVNlc3Npb246OmRlZmF1bHRTdG9yYWdlU2Vzc2lvbigpOworICAg
ICAgICByZXR1cm4gd2ViRnJhbWVMb2FkZXJDbGllbnQoKS0+d2ViRnJhbWUoKS0+cGFnZSgpLT5z
ZXNzaW9uSUQoKTsKKyAgICByZXR1cm4gU2Vzc2lvbklEOjpkZWZhdWx0U2Vzc2lvbklEOwogfQog
CiBXZWJGcmFtZUxvYWRlckNsaWVudCogV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dDo6d2ViRnJh
bWVMb2FkZXJDbGllbnQoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9zb3VwL1dlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQuY3BwIGIv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9zb3VwL1dlYkZyYW1lTmV0
d29ya2luZ0NvbnRleHQuY3BwCmluZGV4IDRkMTNkYzMuLmRkYjE0ZTcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvc291cC9XZWJGcmFtZU5ldHdv
cmtpbmdDb250ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L3NvdXAvV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5jcHAKQEAgLTMwLDYgKzMwLDcg
QEAKICNpbmNsdWRlICJTZXNzaW9uVHJhY2tlci5oIgogI2luY2x1ZGUgIldlYkZyYW1lLmgiCiAj
aW5jbHVkZSAiV2ViUGFnZS5oIgorI2luY2x1ZGUgPFdlYkNvcmUvU2Vzc2lvbklELmg+CiAjaW5j
bHVkZSA8V2ViQ29yZS9TZXR0aW5ncy5oPgogI2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5o
PgogCkBAIC01NSw3ICs1Niw3IEBAIFdlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQ6OldlYkZyYW1l
TmV0d29ya2luZ0NvbnRleHQoV2ViRnJhbWUqIGZyYW1lKQogTmV0d29ya1N0b3JhZ2VTZXNzaW9u
JiBXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0OjpzdG9yYWdlU2Vzc2lvbigpIGNvbnN0CiB7CiAg
ICAgaWYgKGZyYW1lKCkgJiYgZnJhbWUoKS0+c2V0dGluZ3MoKS5wcml2YXRlQnJvd3NpbmdFbmFi
bGVkKCkpCi0gICAgICAgIHJldHVybiAqU2Vzc2lvblRyYWNrZXI6OnNlc3Npb24oU2Vzc2lvblRy
YWNrZXI6OmxlZ2FjeVByaXZhdGVTZXNzaW9uSUQpOworICAgICAgICByZXR1cm4gKlNlc3Npb25U
cmFja2VyOjpzZXNzaW9uKFNlc3Npb25JRDo6bGVnYWN5UHJpdmF0ZVNlc3Npb25JRCk7CiAKICAg
ICByZXR1cm4gTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpkZWZhdWx0U3RvcmFnZVNlc3Npb24oKTsK
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdl
LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAppbmRl
eCAyNzU0ODE2Li44NjIzMDlhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYlBhZ2UvV2ViUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQ
YWdlL1dlYlBhZ2UuY3BwCkBAIC0xMzMsNiArMTMzLDcgQEAKICNpbmNsdWRlIDxXZWJDb3JlL1Nj
aGVtZVJlZ2lzdHJ5Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TY3JpcHRDb250cm9sbGVyLmg+CiAj
aW5jbHVkZSA8V2ViQ29yZS9TZXJpYWxpemVkU2NyaXB0VmFsdWUuaD4KKyNpbmNsdWRlIDxXZWJD
b3JlL1Nlc3Npb25JRC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU2V0dGluZ3MuaD4KICNpbmNsdWRl
IDxXZWJDb3JlL1NoYWRvd1Jvb3QuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1NoYXJlZEJ1ZmZlci5o
PgpAQCAtMjI2LDcgKzIyNyw2IEBAIFBhc3NSZWZQdHI8V2ViUGFnZT4gV2ViUGFnZTo6Y3JlYXRl
KHVpbnQ2NF90IHBhZ2VJRCwgY29uc3QgV2ViUGFnZUNyZWF0aW9uUGFyYW1lCiAKIFdlYlBhZ2U6
OldlYlBhZ2UodWludDY0X3QgcGFnZUlELCBjb25zdCBXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJz
JiBwYXJhbWV0ZXJzKQogICAgIDogbV9wYWdlSUQocGFnZUlEKQotICAgICwgbV9zZXNzaW9uSUQo
MCkKICAgICAsIG1fdmlld1NpemUocGFyYW1ldGVycy52aWV3U2l6ZSkKICAgICAsIG1faGFzU2Vl
blBsdWdpbihmYWxzZSkKICAgICAsIG1fdXNlRml4ZWRMYXlvdXQoZmFsc2UpCkBAIC0yMDk2LDIx
ICsyMDk2LDIxIEBAIHZvaWQgV2ViUGFnZTo6c2V0TGF5ZXJIb3N0aW5nTW9kZSh1bnNpZ25lZCBs
YXllckhvc3RpbmdNb2RlKQogCiB1aW50NjRfdCBXZWJQYWdlOjpzZXNzaW9uSUQoKSBjb25zdAog
ewotICAgIGlmIChtX3Nlc3Npb25JRCkKLSAgICAgICAgcmV0dXJuIG1fc2Vzc2lvbklEOworICAg
IGlmIChtX3BhZ2UtPmlzU2Vzc2lvbklEU2V0KCkpCisgICAgICAgIHJldHVybiBtX3BhZ2UtPnNl
c3Npb25JRCgpOwogCi0gICAgcmV0dXJuIG1fcGFnZS0+c2V0dGluZ3MoKS5wcml2YXRlQnJvd3Np
bmdFbmFibGVkKCkgPyBTZXNzaW9uVHJhY2tlcjo6bGVnYWN5UHJpdmF0ZVNlc3Npb25JRCA6IFNl
c3Npb25UcmFja2VyOjpkZWZhdWx0U2Vzc2lvbklEOworICAgIHJldHVybiBtX3BhZ2UtPnNldHRp
bmdzKCkucHJpdmF0ZUJyb3dzaW5nRW5hYmxlZCgpID8gU2Vzc2lvbklEOjpsZWdhY3lQcml2YXRl
U2Vzc2lvbklEIDogU2Vzc2lvbklEOjpkZWZhdWx0U2Vzc2lvbklEOwogfQogCiBib29sIFdlYlBh
Z2U6OmlzVXNpbmdFcGhlbWVyYWxTZXNzaW9uKCkgY29uc3QKIHsKLSAgICByZXR1cm4gU2Vzc2lv
blRyYWNrZXI6OmlzRXBoZW1lcmFsSUQoc2Vzc2lvbklEKCkpOworICAgIHJldHVybiBTZXNzaW9u
SUQ6OmlzRXBoZW1lcmFsSUQoc2Vzc2lvbklEKCkpOwogfQogCiB2b2lkIFdlYlBhZ2U6OnNldFNl
c3Npb25JRCh1aW50NjRfdCBzZXNzaW9uSUQpCiB7Ci0gICAgbV9zZXNzaW9uSUQgPSBzZXNzaW9u
SUQ7Ci0gICAgaWYgKFNlc3Npb25UcmFja2VyOjppc0VwaGVtZXJhbElEKHNlc3Npb25JRCkpCisg
ICAgbV9wYWdlLT5zZXRTZXNzaW9uSUQoc2Vzc2lvbklEKTsKKyAgICBpZiAoU2Vzc2lvbklEOjpp
c0VwaGVtZXJhbElEKHNlc3Npb25JRCkpCiAgICAgICAgIFdlYlByb2Nlc3M6OnNoYXJlZCgpLmVu
c3VyZVByaXZhdGVCcm93c2luZ1Nlc3Npb24oc2Vzc2lvbklEKTsKIH0KIApAQCAtMjQxNiw4ICsy
NDE2LDggQEAgdm9pZCBXZWJQYWdlOjp1cGRhdGVQcmVmZXJlbmNlcyhjb25zdCBXZWJQcmVmZXJl
bmNlc1N0b3JlJiBzdG9yZSkKICAgICBzZXR0aW5ncy5zZXRMb2NhbFN0b3JhZ2VFbmFibGVkKHN0
b3JlLmdldEJvb2xWYWx1ZUZvcktleShXZWJQcmVmZXJlbmNlc0tleTo6bG9jYWxTdG9yYWdlRW5h
YmxlZEtleSgpKSk7CiAgICAgc2V0dGluZ3Muc2V0WFNTQXVkaXRvckVuYWJsZWQoc3RvcmUuZ2V0
Qm9vbFZhbHVlRm9yS2V5KFdlYlByZWZlcmVuY2VzS2V5Ojp4c3NBdWRpdG9yRW5hYmxlZEtleSgp
KSk7CiAgICAgc2V0dGluZ3Muc2V0RnJhbWVGbGF0dGVuaW5nRW5hYmxlZChzdG9yZS5nZXRCb29s
VmFsdWVGb3JLZXkoV2ViUHJlZmVyZW5jZXNLZXk6OmZyYW1lRmxhdHRlbmluZ0VuYWJsZWRLZXko
KSkpOwotICAgIGlmIChtX3Nlc3Npb25JRCkKLSAgICAgICAgc2V0dGluZ3Muc2V0UHJpdmF0ZUJy
b3dzaW5nRW5hYmxlZChTZXNzaW9uVHJhY2tlcjo6aXNFcGhlbWVyYWxJRChtX3Nlc3Npb25JRCkp
OworICAgIGlmIChtX3BhZ2UtPmlzU2Vzc2lvbklEU2V0KCkpCisgICAgICAgIHNldHRpbmdzLnNl
dFByaXZhdGVCcm93c2luZ0VuYWJsZWQoU2Vzc2lvbklEOjppc0VwaGVtZXJhbElEKG1fcGFnZS0+
c2Vzc2lvbklEKCkpKTsKICAgICBlbHNlCiAgICAgICAgIHNldHRpbmdzLnNldFByaXZhdGVCcm93
c2luZ0VuYWJsZWQoc3RvcmUuZ2V0Qm9vbFZhbHVlRm9yS2V5KFdlYlByZWZlcmVuY2VzS2V5Ojpw
cml2YXRlQnJvd3NpbmdFbmFibGVkS2V5KCkpKTsKICAgICBzZXR0aW5ncy5zZXREZXZlbG9wZXJF
eHRyYXNFbmFibGVkKHN0b3JlLmdldEJvb2xWYWx1ZUZvcktleShXZWJQcmVmZXJlbmNlc0tleTo6
ZGV2ZWxvcGVyRXh0cmFzRW5hYmxlZEtleSgpKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJQYWdlL1dlYlBhZ2UuaAppbmRleCBhNWNmNGIwLi42OTQ0Zjc2IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKQEAgLTg5NSw3ICs4OTUsNiBAQCBw
cml2YXRlOgogICAgIHZvaWQgcmVwb3J0VXNlZEZlYXR1cmVzKCk7CiAKICAgICB1aW50NjRfdCBt
X3BhZ2VJRDsKLSAgICB1aW50NjRfdCBtX3Nlc3Npb25JRDsKIAogICAgIE93blB0cjxXZWJDb3Jl
OjpQYWdlPiBtX3BhZ2U7CiAgICAgUmVmUHRyPFdlYkZyYW1lPiBtX21haW5GcmFtZTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>224770</attachid>
            <date>2014-02-20 10:31:35 -0800</date>
            <delta_ts>2014-02-26 15:12:28 -0800</delta_ts>
            <desc>refactor</desc>
            <filename>memcachesession.19.diff</filename>
            <type>text/plain</type>
            <size>94891</size>
            <attacher name="Martin Hock">mhock</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA5ZDhiOTZjLi5lYzJmZDNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTAx
IEBACisyMDE0LTAyLTE5ICBNYXJ0aW4gSG9jayAgPG1ob2NrQGFwcGxlLmNvbT4KKworICAgICAg
ICBBZGQgc3VwcG9ydCBmb3Igc2Vzc2lvbnMgdG8gTWVtb3J5Q2FjaGUuCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjc3OTQKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIEdOVW1ha2VmaWxlLmxpc3QuYW06
CisgICAgICAgICogV2ViQ29yZS5leHAuaW46CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGVkaXRpbmcvRGVsZXRlQnV0dG9uQ29udHJvbGxl
ci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEZWxldGVCdXR0b25Db250cm9sbGVyOjpjcmVhdGVE
ZWxldGlvblVJKTogSW5pdGlhbGl6ZSBDYWNoZWRJbWFnZSB3aXRoIHNlc3Npb25JRC4KKyAgICAg
ICAgKiBodG1sL0RPTVVSTC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpET01VUkw6OnJldm9rZU9i
amVjdFVSTCk6IFJlbW92ZSBVUkwgZnJvbSBNZW1vcnlDYWNoZSBmb3IgYWxsIHNlc3Npb25zLgor
ICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JQYWdlQWdlbnQuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6SW5zcGVjdG9yUGFnZUFnZW50OjpjYWNoZWRSZXNvdXJjZSk6IFBhc3Mgc2Vzc2lvbklE
IHRvIE1lbW9yeUNhY2hlLgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JSZXNvdXJjZUFn
ZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclJlc291cmNlQWdlbnQ6OnJlcGxh
eVhIUik6IERpdHRvLgorICAgICAgICAqIGxvYWRlci9Eb2N1bWVudExvYWRlci5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjphcmVBbGxMb2FkZXJzUGFnZUNhY2hlQWNjZXB0YWJsZSk6IERpdHRvLgor
ICAgICAgICAqIGxvYWRlci9GcmFtZUxvYWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGcmFt
ZUxvYWRlcjo6dGVsbENsaWVudEFib3V0UGFzdE1lbW9yeUNhY2hlTG9hZHMpOiBEaXR0by4KKyAg
ICAgICAgKiBsb2FkZXIvSW1hZ2VMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VM
b2FkZXI6OnVwZGF0ZUZyb21FbGVtZW50KTogSW5pdGlhbGl6ZSBDYWNoZWRJbWFnZSB3aXRoIHNl
c3Npb25JRC4KKyAgICAgICAgKiBsb2FkZXIvYXJjaGl2ZS9jZi9MZWdhY3lXZWJBcmNoaXZlLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkxlZ2FjeVdlYkFyY2hpdmU6OmNyZWF0ZSk6IFBhc3Mgc2Vz
c2lvbklEIHRvIE1lbW9yeUNhY2hlLgorICAgICAgICAqIGxvYWRlci9jYWNoZS9DYWNoZWRDU1NT
dHlsZVNoZWV0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hlZENTU1N0eWxlU2hlZXQ6OkNh
Y2hlZENTU1N0eWxlU2hlZXQpOiBDb25zdHJ1Y3RvciB0YWtlcyBzZXNzaW9uSUQuCisgICAgICAg
ICogbG9hZGVyL2NhY2hlL0NhY2hlZENTU1N0eWxlU2hlZXQuaDoKKyAgICAgICAgKiBsb2FkZXIv
Y2FjaGUvQ2FjaGVkRm9udC5jcHA6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkRm9u
dDo6Q2FjaGVkRm9udCk6CisgICAgICAgICogbG9hZGVyL2NhY2hlL0NhY2hlZEZvbnQuaDoKKyAg
ICAgICAgKiBsb2FkZXIvY2FjaGUvQ2FjaGVkSW1hZ2UuY3BwOiBEaXR0by4KKyAgICAgICAgKFdl
YkNvcmU6OkNhY2hlZEltYWdlOjpDYWNoZWRJbWFnZSk6CisgICAgICAgICogbG9hZGVyL2NhY2hl
L0NhY2hlZEltYWdlLmg6CisgICAgICAgICogbG9hZGVyL2NhY2hlL0NhY2hlZFJhd1Jlc291cmNl
LmNwcDogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRSYXdSZXNvdXJjZTo6Q2FjaGVk
UmF3UmVzb3VyY2UpOgorICAgICAgICAqIGxvYWRlci9jYWNoZS9DYWNoZWRSYXdSZXNvdXJjZS5o
OgorICAgICAgICAqIGxvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZS5jcHA6IERpdHRvLgorICAg
ICAgICAoV2ViQ29yZTo6Q2FjaGVkUmVzb3VyY2U6OkNhY2hlZFJlc291cmNlKToKKyAgICAgICAg
KFdlYkNvcmU6OkNhY2hlZFJlc291cmNlOjp+Q2FjaGVkUmVzb3VyY2UpOiBQYXNzIHNlc3Npb25J
RCB0byBNZW1vcnlDYWNoZS4KKyAgICAgICAgKiBsb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2Uu
aDoKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hlZFJlc291cmNlOjpzZXNzaW9uSUQpOgorICAgICAg
ICAqIGxvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZUxvYWRlci5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpjcmVhdGVSZXNvdXJjZSk6IENvbnN0cnVjdG9ycyB0YWtlIHNlc3Npb25JRC4KKyAgICAg
ICAgKFdlYkNvcmU6OkNhY2hlZFJlc291cmNlTG9hZGVyOjpzZXNzaW9uSUQpOiBSZXRyaWV2ZSBz
ZXNzaW9uSUQgZnJvbSBwYWdlLgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkUmVzb3VyY2VMb2Fk
ZXI6OnJlcXVlc3RVc2VyQ1NTU3R5bGVTaGVldCk6IFBhc3Mgc2Vzc2lvbklEIHRvIE1lbW9yeUNh
Y2hlLgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkUmVzb3VyY2VMb2FkZXI6OnJlcXVlc3RSZXNv
dXJjZSk6IEluaXRpYWxpemUgQ2FjaGVkQ1NTU3R5bGVTaGVldCB3aXRoIHNlc3Npb25JRC4KKyAg
ICAgICAgKFdlYkNvcmU6OkNhY2hlZFJlc291cmNlTG9hZGVyOjpyZXZhbGlkYXRlUmVzb3VyY2Up
OiBJbml0aWFsaXplIGNhY2hlZCByZXNvdXJjZSB3aXRoIHNlc3Npb25JRC4KKyAgICAgICAgKFdl
YkNvcmU6OkNhY2hlZFJlc291cmNlTG9hZGVyOjpsb2FkUmVzb3VyY2UpOiBQYXNzIHNlc3Npb25J
RCB0byBNZW1vcnlDYWNoZSBhbmQgaW5pdGlhbGl6ZSBjYWNoZWQgcmVzb3VyY2Ugd2l0aCBzZXNz
aW9uSUQuCisgICAgICAgICogbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlTG9hZGVyLmg6Cisg
ICAgICAgICogbG9hZGVyL2NhY2hlL0NhY2hlZFNWR0RvY3VtZW50LmNwcDogQ29uc3RydWN0b3Ig
dGFrZXMgc2Vzc2lvbklELgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkU1ZHRG9jdW1lbnQ6OkNh
Y2hlZFNWR0RvY3VtZW50KToKKyAgICAgICAgKiBsb2FkZXIvY2FjaGUvQ2FjaGVkU1ZHRG9jdW1l
bnQuaDoKKyAgICAgICAgKiBsb2FkZXIvY2FjaGUvQ2FjaGVkU2NyaXB0LmNwcDogRGl0dG8uCisg
ICAgICAgIChXZWJDb3JlOjpDYWNoZWRTY3JpcHQ6OkNhY2hlZFNjcmlwdCk6CisgICAgICAgICog
bG9hZGVyL2NhY2hlL0NhY2hlZFNjcmlwdC5oOgorICAgICAgICAqIGxvYWRlci9jYWNoZS9DYWNo
ZWRUZXh0VHJhY2suY3BwOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OkNhY2hlZFRleHRUcmFj
azo6Q2FjaGVkVGV4dFRyYWNrKToKKyAgICAgICAgKiBsb2FkZXIvY2FjaGUvQ2FjaGVkVGV4dFRy
YWNrLmg6CisgICAgICAgICogbG9hZGVyL2NhY2hlL0NhY2hlZFhTTFN0eWxlU2hlZXQuY3BwOiBE
aXR0by4KKyAgICAgICAgKFdlYkNvcmU6OkNhY2hlZFhTTFN0eWxlU2hlZXQ6OkNhY2hlZFhTTFN0
eWxlU2hlZXQpOgorICAgICAgICAqIGxvYWRlci9jYWNoZS9DYWNoZWRYU0xTdHlsZVNoZWV0Lmg6
CisgICAgICAgICogbG9hZGVyL2NhY2hlL01lbW9yeUNhY2hlLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6Ok1lbW9yeUNhY2hlOjpnZXRTZXNzaW9uTWFwKTogUmV0cmlldmUgQ2FjaGVkUmVzb3VyY2VN
YXAgYmFzZWQgb24gc2Vzc2lvbklELgorICAgICAgICAoV2ViQ29yZTo6TWVtb3J5Q2FjaGU6OmFk
ZCk6IFVzZSBzZXNzaW9uSUQgZnJvbSBDYWNoZWRSZXNvdXJjZSBwYXJhbWV0ZXIuCisgICAgICAg
IChXZWJDb3JlOjpNZW1vcnlDYWNoZTo6cmV2YWxpZGF0aW9uU3VjY2VlZGVkKTogQWRkIHNlc3Np
b25JRCBwYXJhbWV0ZXIuCisgICAgICAgIChXZWJDb3JlOjpNZW1vcnlDYWNoZTo6cmVzb3VyY2VG
b3JVUkwpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6Ok1lbW9yeUNhY2hlOjpyZXNvdXJjZUZv
clJlcXVlc3QpOiBEaXR0bywgYWxzbyBtb3ZlIGltcGwgaW50byBpbXBsIG1ldGhvZC4KKyAgICAg
ICAgKFdlYkNvcmU6Ok1lbW9yeUNhY2hlOjpyZXNvdXJjZUZvclJlcXVlc3RJbXBsKTogQWRkIENh
Y2hlZFJlc291cmNlTWFwIHBhcmFtZXRlci4KKyAgICAgICAgKFdlYkNvcmU6Ok1lbW9yeUNhY2hl
OjphZGRJbWFnZVRvQ2FjaGUpOiBVc2UgZGVmYXVsdCBzZXNzaW9uSUQuCisgICAgICAgIChXZWJD
b3JlOjpNZW1vcnlDYWNoZTo6cmVtb3ZlSW1hZ2VGcm9tQ2FjaGUpOiBEaXR0by4KKyAgICAgICAg
KFdlYkNvcmU6Ok1lbW9yeUNhY2hlOjpldmljdCk6IFVzZSBzZXNzaW9uSUQgZnJvbSBDYWNoZWRS
ZXNvdXJjZSBwYXJhbWV0ZXIuCisgICAgICAgIChXZWJDb3JlOjpNZW1vcnlDYWNoZTo6cmVtb3Zl
UmVzb3VyY2VzV2l0aE9yaWdpbik6IEl0ZXJhdGUgdGhyb3VnaCBhbGwgQ2FjaGVkUmVzb3VyY2VN
YXBzLgorICAgICAgICAoV2ViQ29yZTo6TWVtb3J5Q2FjaGU6OmdldE9yaWdpbnNXaXRoQ2FjaGUp
OiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6Ok1lbW9yeUNhY2hlOjpyZW1vdmVVcmxGcm9tQ2Fj
aGUpOiBBZGQgc2Vzc2lvbklEIHBhcmFtZXRlci4KKyAgICAgICAgKFdlYkNvcmU6Ok1lbW9yeUNh
Y2hlOjpyZW1vdmVSZXF1ZXN0RnJvbUNhY2hlKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpN
ZW1vcnlDYWNoZTo6cmVtb3ZlUmVxdWVzdEZyb21DYWNoZUltcGwpOiBEaXR0by4KKyAgICAgICAg
KFdlYkNvcmU6Ok1lbW9yeUNhY2hlOjpyZW1vdmVSZXF1ZXN0RnJvbVNlc3Npb25DYWNoZXMpOiBJ
dGVyYXRlIHRocm91Z2ggYWxsIENhY2hlZFJlc291cmNlTWFwcy4KKyAgICAgICAgKFdlYkNvcmU6
Ok1lbW9yeUNhY2hlOjpjcm9zc1RocmVhZFJlbW92ZVJlcXVlc3RGcm9tQ2FjaGUpOiBBZGQgc2Vz
c2lvbklEIHBhcmFtZXRlci4KKyAgICAgICAgKFdlYkNvcmU6Ok1lbW9yeUNhY2hlOjpnZXRTdGF0
aXN0aWNzKTogSXRlcmF0ZSB0aHJvdWdoIGFsbCBDYWNoZWRSZXNvdXJjZU1hcHMuCisgICAgICAg
IChXZWJDb3JlOjpNZW1vcnlDYWNoZTo6c2V0RGlzYWJsZWQpOiBEaXR0by4KKyAgICAgICAgKiBs
b2FkZXIvY2FjaGUvTWVtb3J5Q2FjaGUuaDogQ3JlYXRlIGFub3RoZXIgbGV2ZWwgZm9yIGNhY2hl
LgorICAgICAgICAqIHBhZ2UvUGFnZS5jcHA6IEFkZCBzZXNzaW9uSUQgbWVtYmVyLgorICAgICAg
ICAoV2ViQ29yZTo6UGFnZTo6UGFnZSk6CisgICAgICAgIChXZWJDb3JlOjpQYWdlOjpzZXNzaW9u
SUQpOiBSZXRyaWV2ZSBzZXNzaW9uSUQgb3IgdXNlIHNldHRpbmdzIGlmIG5vdCBzZXQuCisgICAg
ICAgICogcGFnZS9QYWdlLmg6IEFkZCBzZXNzaW9uSUQgbWVtYmVyLgorICAgICAgICAoV2ViQ29y
ZTo6UGFnZTo6aXNTZXNzaW9uSURTZXQpOgorICAgICAgICAoV2ViQ29yZTo6UGFnZTo6c2V0U2Vz
c2lvbklEKToKKyAgICAgICAgKiBwYWdlL1Nlc3Npb25JRC5oOiBTdGF0aWMgdXRpbGl0eSBjbGFz
cyBmb3Igc2Vzc2lvbklEcyBwdWxsZWQgZnJvbSBTZXNzaW9uVHJhY2tlci4KKyAgICAgICAgKFdl
YkNvcmU6OlNlc3Npb25JRDo6aXNFcGhlbWVyYWxJRCk6CisgICAgICAgICogcGxhdGZvcm0vbmV0
d29yay9jZi9SZXNvdXJjZVJlcXVlc3QuaDoKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlUmVx
dWVzdDo6UmVzb3VyY2VSZXF1ZXN0KTogUmVtb3ZlIHRyYWlsaW5nIHdoaXRlc3BhY2UuCisgICAg
ICAgICogcmVuZGVyaW5nL1JlbmRlclNuYXBzaG90dGVkUGx1Z0luLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlJlbmRlclNuYXBzaG90dGVkUGx1Z0luOjp1cGRhdGVTbmFwc2hvdCk6IEluaXRpYWxp
emUgQ2FjaGVkSW1hZ2Ugd2l0aCBzZXNzaW9uSUQuCisgICAgICAgICogdGVzdGluZy9JbnRlcm5h
bHMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJuYWxzOjppc0xvYWRpbmdGcm9tTWVtb3J5
Q2FjaGUpOiBQYXNzIHNlc3Npb25JRCB0byBNZW1vcnlDYWNoZS4KKwogMjAxNC0wMi0xOSAgUHJh
dGlrIFNvbGFua2kgIDxwc29sYW5raUBhcHBsZS5jb20+CiAKICAgICAgICAgQVNTRVJUIGluIEZy
YW1lTG9hZGVyOjpzaG91bGRJbnRlcnJ1cHRMb2FkRm9yWEZyYW1lT3B0aW9ucwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbSBiL1NvdXJjZS9XZWJDb3JlL0dO
VW1ha2VmaWxlLmxpc3QuYW0KaW5kZXggMmY5ZjE4MS4uMTZkNjMyYSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9HTlVt
YWtlZmlsZS5saXN0LmFtCkBAIC00MTgxLDYgKzQxODEsNyBAQCB3ZWJjb3JlX3NvdXJjZXMgKz0g
XAogCVNvdXJjZS9XZWJDb3JlL3BhZ2UvU2VjdXJpdHlPcmlnaW5IYXNoLmggXAogCVNvdXJjZS9X
ZWJDb3JlL3BhZ2UvU2VjdXJpdHlQb2xpY3kuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9wYWdlL1Nl
Y3VyaXR5UG9saWN5LmggXAorCVNvdXJjZS9XZWJDb3JlL3BhZ2UvU2Vzc2lvbklELmggXAogCVNv
dXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9wYWdlL1Nl
dHRpbmdzLmggXAogCVNvdXJjZS9XZWJDb3JlL3BhZ2UvU3BhdGlhbE5hdmlnYXRpb24uY3BwIFwK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluIGIvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS5leHAuaW4KaW5kZXggMGRlNTk1Yy4uNzU1OTNjOSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5l
eHAuaW4KQEAgLTE2OCw5ICsxNjgsOSBAQCBfX1pON1dlYkNvcmUxMU1lbW9yeUNhY2hlMTFzZXRE
aXNhYmxlZEViCiBfX1pON1dlYkNvcmUxMU1lbW9yeUNhY2hlMTNnZXRTdGF0aXN0aWNzRXYKIF9f
Wk43V2ViQ29yZTExTWVtb3J5Q2FjaGUxM3NldENhcGFjaXRpZXNFampqCiBfX1pON1dlYkNvcmUx
MU1lbW9yeUNhY2hlMTRldmljdFJlc291cmNlc0V2Ci1fX1pON1dlYkNvcmUxMU1lbW9yeUNhY2hl
MTRyZXNvdXJjZUZvclVSTEVSS05TXzNVUkxFCitfX1pON1dlYkNvcmUxMU1lbW9yeUNhY2hlMTRy
ZXNvdXJjZUZvclVSTEVSS05TXzNVUkxFeQogX19aTjdXZWJDb3JlMTFNZW1vcnlDYWNoZTE1YWRk
SW1hZ2VUb0NhY2hlRVA3Q0dJbWFnZVJLTlNfM1VSTEVSS04zV1RGNlN0cmluZ0UKLV9fWk43V2Vi
Q29yZTExTWVtb3J5Q2FjaGUxOHJlc291cmNlRm9yUmVxdWVzdEVSS05TXzE1UmVzb3VyY2VSZXF1
ZXN0RQorX19aTjdXZWJDb3JlMTFNZW1vcnlDYWNoZTE4cmVzb3VyY2VGb3JSZXF1ZXN0RVJLTlNf
MTVSZXNvdXJjZVJlcXVlc3RFeQogX19aTjdXZWJDb3JlMTFNZW1vcnlDYWNoZTE5Z2V0T3JpZ2lu
c1dpdGhDYWNoZUVSTjNXVEY3SGFzaFNldElOUzFfNlJlZlB0cklOU18xNFNlY3VyaXR5T3JpZ2lu
RUVFTlNfMThTZWN1cml0eU9yaWdpbkhhc2hFTlMxXzEwSGFzaFRyYWl0c0lTNV9FRUVFCiBfX1pO
N1dlYkNvcmUxMU1lbW9yeUNhY2hlMjByZW1vdmVJbWFnZUZyb21DYWNoZUVSS05TXzNVUkxFUktO
M1dURjZTdHJpbmdFCiBfX1pON1dlYkNvcmUxMU1lbW9yeUNhY2hlMjVyZW1vdmVSZXNvdXJjZXNX
aXRoT3JpZ2luRVBOU18xNFNlY3VyaXR5T3JpZ2luRQpAQCAtMTczNiw2ICsxNzM2LDcgQEAgX19a
Tks3V2ViQ29yZTRQYWdlMTd2aWV3cG9ydEFyZ3VtZW50c0V2CiBfX1pOSzdXZWJDb3JlNFBhZ2Uz
NGluTG93UXVhbGl0eUltYWdlSW50ZXJwb2xhdGlvbk1vZGVFdgogX19aTks3V2ViQ29yZTRQYWdl
OWdyb3VwTmFtZUV2CiBfX1pOSzdXZWJDb3JlNFBhZ2U5cGFnZUNvdW50RXYKK19fWk5LN1dlYkNv
cmU0UGFnZTlzZXNzaW9uSURFdgogX19aTks3V2ViQ29yZTVDb2xvcjEwc2VyaWFsaXplZEV2CiBf
X1pOSzdXZWJDb3JlNUNvbG9yN2dldFJHQkFFUmRTMV9TMV9TMV8KIF9fWk5LN1dlYkNvcmU1Q29s
b3I3Z2V0UkdCQUVSZlMxX1MxX1MxXwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGY2Y2U1NTYuLjliMjNkYjEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTIyMDcs
NiArMjIwNyw3IEBACiAJCTc1NDE1RDVBMTI5QUIyRDIwMDNBRDY2OSAvKiBKU1NwZWVjaElucHV0
UmVzdWx0TGlzdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNzU0MTVENTQxMjlBQjJEMjAwM0FENjY5IC8qIEpTU3BlZWNoSW5wdXRSZXN1bHRMaXN0Lmgg
Ki87IH07CiAJCTc1NTNDRkU4MTA4RjQ3M0YwMEVBMjgxRSAvKiBUaW1lbGluZVJlY29yZEZhY3Rv
cnkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDc1NTND
RkU2MTA4RjQ3M0YwMEVBMjgxRSAvKiBUaW1lbGluZVJlY29yZEZhY3RvcnkuaCAqLzsgfTsKIAkJ
NzU1M0NGRTkxMDhGNDczRjAwRUEyODFFIC8qIFRpbWVsaW5lUmVjb3JkRmFjdG9yeS5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3NTUzQ0ZFNzEwOEY0
NzNGMDBFQTI4MUUgLyogVGltZWxpbmVSZWNvcmRGYWN0b3J5LmNwcCAqLzsgfTsKKwkJNzU2NkY5
RDAxOEIzQ0YyQzAwMTRCRjc5IC8qIFNlc3Npb25JRC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzU2NkY5Q0YxOEIzQ0YwNDAwMTRCRjc5IC8qIFNlc3Np
b25JRC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJ
CTc1NzhGOTBDMTFEREYyNjkwMEQ5MzNDNSAvKiBTcGVlY2hJbnB1dC5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzU3OEY5MDkxMURERjI2OTAwRDkzM0M1
IC8qIFNwZWVjaElucHV0LmggKi87IH07CiAJCTc1NzhGOTBEMTFEREYyNjkwMEQ5MzNDNSAvKiBT
cGVlY2hJbnB1dENsaWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNzU3OEY5MEExMURERjI2OTAwRDkzM0M1IC8qIFNwZWVjaElucHV0Q2xpZW50Lmgg
Ki87IH07CiAJCTc1NzhGOTIwMTFFNEUzMjgwMEQ5MzNDNSAvKiBTcGVlY2hJbnB1dExpc3RlbmVy
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3NTc4Rjkx
RTExRTRFMzI4MDBEOTMzQzUgLyogU3BlZWNoSW5wdXRMaXN0ZW5lci5oICovOyB9OwpAQCAtOTEz
MSw2ICs5MTMyLDcgQEAKIAkJNzU0MTVENTQxMjlBQjJEMjAwM0FENjY5IC8qIEpTU3BlZWNoSW5w
dXRSZXN1bHRMaXN0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTU3BlZWNo
SW5wdXRSZXN1bHRMaXN0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTc1NTNDRkU2
MTA4RjQ3M0YwMEVBMjgxRSAvKiBUaW1lbGluZVJlY29yZEZhY3RvcnkuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gVGltZWxpbmVSZWNvcmRGYWN0b3J5Lmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTc1NTNDRkU3MTA4RjQ3M0YwMEVBMjgxRSAvKiBUaW1lbGluZVJl
Y29yZEZhY3RvcnkuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gVGlt
ZWxpbmVSZWNvcmRGYWN0b3J5LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNzU2
NkY5Q0YxOEIzQ0YwNDAwMTRCRjc5IC8qIFNlc3Npb25JRC5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBTZXNzaW9uSUQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
NzU3OEY5MDkxMURERjI2OTAwRDkzM0M1IC8qIFNwZWVjaElucHV0LmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFNwZWVjaElucHV0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTc1NzhGOTBBMTFEREYyNjkwMEQ5MzNDNSAvKiBTcGVlY2hJbnB1dENsaWVudC5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTcGVlY2hJbnB1dENsaWVudC5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3NTc4RjkxRTExRTRFMzI4MDBEOTMzQzUgLyogU3Bl
ZWNoSW5wdXRMaXN0ZW5lci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTcGVl
Y2hJbnB1dExpc3RlbmVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xNjE0Niw2
ICsxNjE0OCw3IEBACiAJCQkJQkNEMEUwRjkwRTk3MkMzNTAwMjY1REVBIC8qIFNlY3VyaXR5T3Jp
Z2luSGFzaC5oICovLAogCQkJCTk3NEQyREEyMTQ2QTUzNUQwMEQ1MUY4QiAvKiBTZWN1cml0eVBv
bGljeS5jcHAgKi8sCiAJCQkJOTc0RDJEQTMxNDZBNTM1RDAwRDUxRjhCIC8qIFNlY3VyaXR5UG9s
aWN5LmggKi8sCisJCQkJNzU2NkY5Q0YxOEIzQ0YwNDAwMTRCRjc5IC8qIFNlc3Npb25JRC5oICov
LAogCQkJCTE0QzlBNUU5MEIzRDEwNUYwMDVBMDIzMiAvKiBTZXR0aW5ncy5jcHAgKi8sCiAJCQkJ
RjU4Nzg2M0EwMkRFM0ExNDAxRUE0MTIyIC8qIFNldHRpbmdzLmggKi8sCiAJCQkJQkM1OURFRjgx
NjlERURDMzAwMTZBQzM0IC8qIFNldHRpbmdzLmluICovLApAQCAtMjUyNTMsNiArMjUyNTYsNyBA
QAogCQkJCUM1MTYwRUVCMTAwNDU0M0EwMEE3Q0VFMiAvKiBTdG9yYWdlQXJlYUltcGwuaCBpbiBI
ZWFkZXJzICovLAogCQkJCUM1MTAyRUNGMEZEOUVGOEMwMEZBRkYwNCAvKiBTdG9yYWdlQXJlYVN5
bmMuaCBpbiBIZWFkZXJzICovLAogCQkJCUNENTU5NjkyMTQ3NUI2NzgwMDFEMEJEMCAvKiBBdWRp
b0ZpbGVSZWFkZXJJT1MuaCBpbiBIZWFkZXJzICovLAorCQkJCTc1NjZGOUQwMThCM0NGMkMwMDE0
QkY3OSAvKiBTZXNzaW9uSUQuaCBpbiBIZWFkZXJzICovLAogCQkJCTUxRTBCQUJCMERBNTU0NzEw
MEE5RTQxNyAvKiBTdG9yYWdlRXZlbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUI1NjU3NkU4MTdE
QTk0RTIwMEE1NkJEQyAvKiBET01Db25zdHJ1Y3RvcldpdGhEb2N1bWVudC5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJQzVFQkREODQxMDVFRERFQzAwNTY4MTZGIC8qIFN0b3JhZ2VFdmVudERpc3BhdGNo
ZXIuaCBpbiBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9E
ZWxldGVCdXR0b25Db250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGVsZXRl
QnV0dG9uQ29udHJvbGxlci5jcHAKaW5kZXggYTc4NzY5Yy4uMTUwNjRjNSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvZWRpdGluZy9EZWxldGVCdXR0b25Db250cm9sbGVyLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RlbGV0ZUJ1dHRvbkNvbnRyb2xsZXIuY3BwCkBAIC0yNTUs
NyArMjU1LDcgQEAgdm9pZCBEZWxldGVCdXR0b25Db250cm9sbGVyOjpjcmVhdGVEZWxldGlvblVJ
KCkKICAgICBpZiAoYnV0dG9uSW1hZ2UtPmlzTnVsbCgpKQogICAgICAgICByZXR1cm47CiAKLSAg
ICBidXR0b24tPnNldENhY2hlZEltYWdlKG5ldyBDYWNoZWRJbWFnZShidXR0b25JbWFnZS5nZXQo
KSkpOworICAgIGJ1dHRvbi0+c2V0Q2FjaGVkSW1hZ2UobmV3IENhY2hlZEltYWdlKGJ1dHRvbklt
YWdlLmdldCgpLCBtX2ZyYW1lLnBhZ2UoKS0+c2Vzc2lvbklEKCkpKTsKIAogICAgIGNvbnRhaW5l
ci0+YXBwZW5kQ2hpbGQoYnV0dG9uLmdldCgpLCBlYyk7CiAgICAgQVNTRVJUKCFlYyk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0RPTVVSTC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0RPTVVSTC5jcHAKaW5kZXggNGU0NDI1NC4uNWI0OWRjYyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaHRtbC9ET01VUkwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRE9NVVJM
LmNwcApAQCAtMTI0LDcgKzEyNCw3IEBAIHZvaWQgRE9NVVJMOjpyZXZva2VPYmplY3RVUkwoU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCogc2NyaXB0RXhlY3V0aW9uQ29udGV4dCwgY29uCiAjaWYgRU5B
QkxFKENBQ0hFX1BBUlRJVElPTklORykKICAgICByZXF1ZXN0LnNldENhY2hlUGFydGl0aW9uKHNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQtPnRvcE9yaWdpbigpLT5jYWNoZVBhcnRpdGlvbigpKTsKICNl
bmRpZgotICAgIE1lbW9yeUNhY2hlOjpyZW1vdmVSZXF1ZXN0RnJvbUNhY2hlKHNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQsIHJlcXVlc3QpOworICAgIE1lbW9yeUNhY2hlOjpyZW1vdmVSZXF1ZXN0RnJv
bVNlc3Npb25DYWNoZXMoc2NyaXB0RXhlY3V0aW9uQ29udGV4dCwgcmVxdWVzdCk7CiAKICAgICBz
Y3JpcHRFeGVjdXRpb25Db250ZXh0LT5wdWJsaWNVUkxNYW5hZ2VyKCkucmV2b2tlKHVybCk7CiB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUGFnZUFnZW50
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JQYWdlQWdlbnQuY3BwCmlu
ZGV4IGNmZWU1ZDguLjMwMTI5MDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9JbnNwZWN0b3JQYWdlQWdlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9J
bnNwZWN0b3JQYWdlQWdlbnQuY3BwCkBAIC0yODIsNyArMjgyLDcgQEAgQ2FjaGVkUmVzb3VyY2Uq
IEluc3BlY3RvclBhZ2VBZ2VudDo6Y2FjaGVkUmVzb3VyY2UoRnJhbWUqIGZyYW1lLCBjb25zdCBV
UkwmIHVybCkKICNpZiBFTkFCTEUoQ0FDSEVfUEFSVElUSU9OSU5HKQogICAgICAgICByZXF1ZXN0
LnNldENhY2hlUGFydGl0aW9uKGZyYW1lLT5kb2N1bWVudCgpLT50b3BPcmlnaW4oKS0+Y2FjaGVQ
YXJ0aXRpb24oKSk7CiAjZW5kaWYKLSAgICAgICAgY2FjaGVkUmVzb3VyY2UgPSBtZW1vcnlDYWNo
ZSgpLT5yZXNvdXJjZUZvclJlcXVlc3QocmVxdWVzdCk7CisgICAgICAgIGNhY2hlZFJlc291cmNl
ID0gbWVtb3J5Q2FjaGUoKS0+cmVzb3VyY2VGb3JSZXF1ZXN0KHJlcXVlc3QsIGZyYW1lLT5wYWdl
KCktPnNlc3Npb25JRCgpKTsKICAgICB9CiAKICAgICByZXR1cm4gY2FjaGVkUmVzb3VyY2U7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUmVzb3VyY2VBZ2Vu
dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUmVzb3VyY2VBZ2VudC5j
cHAKaW5kZXggODllNWNmNC4uYjFjZGNkMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL0luc3BlY3RvclJlc291cmNlQWdlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9JbnNwZWN0b3JSZXNvdXJjZUFnZW50LmNwcApAQCAtNTk0LDcgKzU5NCw3IEBAIHZv
aWQgSW5zcGVjdG9yUmVzb3VyY2VBZ2VudDo6cmVwbGF5WEhSKEVycm9yU3RyaW5nKiwgY29uc3Qg
U3RyaW5nJiByZXF1ZXN0SWQpCiAjaWYgRU5BQkxFKENBQ0hFX1BBUlRJVElPTklORykKICAgICBy
ZXF1ZXN0LnNldENhY2hlUGFydGl0aW9uKG1fcGFnZUFnZW50LT5tYWluRnJhbWUoKS0+ZG9jdW1l
bnQoKS0+dG9wT3JpZ2luKCktPmNhY2hlUGFydGl0aW9uKCkpOwogI2VuZGlmCi0gICAgQ2FjaGVk
UmVzb3VyY2UqIGNhY2hlZFJlc291cmNlID0gbWVtb3J5Q2FjaGUoKS0+cmVzb3VyY2VGb3JSZXF1
ZXN0KHJlcXVlc3QpOworICAgIENhY2hlZFJlc291cmNlKiBjYWNoZWRSZXNvdXJjZSA9IG1lbW9y
eUNhY2hlKCktPnJlc291cmNlRm9yUmVxdWVzdChyZXF1ZXN0LCBtX3BhZ2VBZ2VudC0+cGFnZSgp
LT5zZXNzaW9uSUQoKSk7CiAgICAgaWYgKGNhY2hlZFJlc291cmNlKQogICAgICAgICBtZW1vcnlD
YWNoZSgpLT5yZW1vdmUoY2FjaGVkUmVzb3VyY2UpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0Rv
Y3VtZW50TG9hZGVyLmNwcAppbmRleCA1MzlhNTVkLi40Y2ViMmI5IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9Eb2N1bWVudExvYWRlci5jcHAKQEAgLTEwNSw3ICsxMDUsMTAgQEAgc3RhdGljIGJv
b2wgYXJlQWxsTG9hZGVyc1BhZ2VDYWNoZUFjY2VwdGFibGUoY29uc3QgUmVzb3VyY2VMb2FkZXJT
ZXQmIGxvYWRlcnMpCiAgICAgICAgIGlmICghaGFuZGxlKQogICAgICAgICAgICAgcmV0dXJuIGZh
bHNlOwogCi0gICAgICAgIENhY2hlZFJlc291cmNlKiBjYWNoZWRSZXNvdXJjZSA9IG1lbW9yeUNh
Y2hlKCktPnJlc291cmNlRm9yVVJMKGhhbmRsZS0+Zmlyc3RSZXF1ZXN0KCkudXJsKCkpOworICAg
ICAgICBpZiAoIWxvYWRlci0+ZnJhbWVMb2FkZXIoKSkKKyAgICAgICAgICAgIHJldHVybiBmYWxz
ZTsKKworICAgICAgICBDYWNoZWRSZXNvdXJjZSogY2FjaGVkUmVzb3VyY2UgPSBtZW1vcnlDYWNo
ZSgpLT5yZXNvdXJjZUZvclVSTChoYW5kbGUtPmZpcnN0UmVxdWVzdCgpLnVybCgpLCBsb2FkZXIt
PmZyYW1lTG9hZGVyKCktPmZyYW1lKCkucGFnZSgpLT5zZXNzaW9uSUQoKSk7CiAgICAgICAgIGlm
ICghY2FjaGVkUmVzb3VyY2UpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwCmluZGV4IGI2NzJlMjUuLjVmN2I0ZTIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcApAQCAtMzM4Myw3ICszMzgzLDcgQEAgdm9pZCBG
cmFtZUxvYWRlcjo6dGVsbENsaWVudEFib3V0UGFzdE1lbW9yeUNhY2hlTG9hZHMoKQogCiAgICAg
c2l6ZV90IHNpemUgPSBwYXN0TG9hZHMuc2l6ZSgpOwogICAgIGZvciAoc2l6ZV90IGkgPSAwOyBp
IDwgc2l6ZTsgKytpKSB7Ci0gICAgICAgIENhY2hlZFJlc291cmNlKiByZXNvdXJjZSA9IG1lbW9y
eUNhY2hlKCktPnJlc291cmNlRm9yUmVxdWVzdChwYXN0TG9hZHNbaV0pOworICAgICAgICBDYWNo
ZWRSZXNvdXJjZSogcmVzb3VyY2UgPSBtZW1vcnlDYWNoZSgpLT5yZXNvdXJjZUZvclJlcXVlc3Qo
cGFzdExvYWRzW2ldLCBtX2ZyYW1lLnBhZ2UoKS0+c2Vzc2lvbklEKCkpOwogCiAgICAgICAgIC8v
IEZJWE1FOiBUaGVzZSBsb2FkcywgbG9hZGVkIGZyb20gY2FjaGUsIGJ1dCBub3cgZ29uZSBmcm9t
IHRoZSBjYWNoZSBieSB0aGUgdGltZQogICAgICAgICAvLyBQYWdlOjpzZXRNZW1vcnlDYWNoZUNs
aWVudENhbGxzRW5hYmxlZCh0cnVlKSBpcyBjYWxsZWQsIHdpbGwgbm90IGJlIHNlZW4gYnkgdGhl
IGNsaWVudC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9JbWFnZUxvYWRlci5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvSW1hZ2VMb2FkZXIuY3BwCmluZGV4IDMwNmExYjc2
Li5lNDhkNDdiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvSW1hZ2VMb2FkZXIu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9JbWFnZUxvYWRlci5jcHAKQEAgLTM0LDYg
KzM0LDcgQEAKICNpbmNsdWRlICJIVE1MTmFtZXMuaCIKICNpbmNsdWRlICJIVE1MT2JqZWN0RWxl
bWVudC5oIgogI2luY2x1ZGUgIkhUTUxQYXJzZXJJZGlvbXMuaCIKKyNpbmNsdWRlICJQYWdlLmgi
CiAjaW5jbHVkZSAiUmVuZGVySW1hZ2UuaCIKICNpbmNsdWRlICJSZW5kZXJTVkdJbWFnZS5oIgog
I2luY2x1ZGUgIlNlY3VyaXR5T3JpZ2luLmgiCkBAIC0xODgsNyArMTg5LDcgQEAgdm9pZCBJbWFn
ZUxvYWRlcjo6dXBkYXRlRnJvbUVsZW1lbnQoKQogICAgICAgICBpZiAobV9sb2FkTWFudWFsbHkp
IHsKICAgICAgICAgICAgIGJvb2wgYXV0b0xvYWRPdGhlckltYWdlcyA9IGRvY3VtZW50LmNhY2hl
ZFJlc291cmNlTG9hZGVyKCktPmF1dG9Mb2FkSW1hZ2VzKCk7CiAgICAgICAgICAgICBkb2N1bWVu
dC5jYWNoZWRSZXNvdXJjZUxvYWRlcigpLT5zZXRBdXRvTG9hZEltYWdlcyhmYWxzZSk7Ci0gICAg
ICAgICAgICBuZXdJbWFnZSA9IG5ldyBDYWNoZWRJbWFnZShyZXF1ZXN0LnJlc291cmNlUmVxdWVz
dCgpKTsKKyAgICAgICAgICAgIG5ld0ltYWdlID0gbmV3IENhY2hlZEltYWdlKHJlcXVlc3QucmVz
b3VyY2VSZXF1ZXN0KCksIG1fZWxlbWVudC5kb2N1bWVudCgpLnBhZ2UoKS0+c2Vzc2lvbklEKCkp
OwogICAgICAgICAgICAgbmV3SW1hZ2UtPnNldExvYWRpbmcodHJ1ZSk7CiAgICAgICAgICAgICBu
ZXdJbWFnZS0+c2V0T3duaW5nQ2FjaGVkUmVzb3VyY2VMb2FkZXIoZG9jdW1lbnQuY2FjaGVkUmVz
b3VyY2VMb2FkZXIoKSk7CiAgICAgICAgICAgICBkb2N1bWVudC5jYWNoZWRSZXNvdXJjZUxvYWRl
cigpLT5tX2RvY3VtZW50UmVzb3VyY2VzLnNldChuZXdJbWFnZS0+dXJsKCksIG5ld0ltYWdlLmdl
dCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9hcmNoaXZlL2NmL0xlZ2Fj
eVdlYkFyY2hpdmUuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2FyY2hpdmUvY2YvTGVnYWN5
V2ViQXJjaGl2ZS5jcHAKaW5kZXggMzFmMWExYi4uMDI0ZDI4ZiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvbG9hZGVyL2FyY2hpdmUvY2YvTGVnYWN5V2ViQXJjaGl2ZS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvbG9hZGVyL2FyY2hpdmUvY2YvTGVnYWN5V2ViQXJjaGl2ZS5jcHAKQEAgLTU1
NCw3ICs1NTQsNyBAQCBQYXNzUmVmUHRyPExlZ2FjeVdlYkFyY2hpdmU+IExlZ2FjeVdlYkFyY2hp
dmU6OmNyZWF0ZShjb25zdCBTdHJpbmcmIG1hcmt1cFN0cmluZwogI2lmIEVOQUJMRShDQUNIRV9Q
QVJUSVRJT05JTkcpCiAgICAgICAgICAgICAgICAgcmVxdWVzdC5zZXRDYWNoZVBhcnRpdGlvbihm
cmFtZS0+ZG9jdW1lbnQoKS0+dG9wT3JpZ2luKCktPmNhY2hlUGFydGl0aW9uKCkpOwogI2VuZGlm
Ci0gICAgICAgICAgICAgICAgQ2FjaGVkUmVzb3VyY2UqIGNhY2hlZFJlc291cmNlID0gbWVtb3J5
Q2FjaGUoKS0+cmVzb3VyY2VGb3JSZXF1ZXN0KHJlcXVlc3QpOworICAgICAgICAgICAgICAgIENh
Y2hlZFJlc291cmNlKiBjYWNoZWRSZXNvdXJjZSA9IG1lbW9yeUNhY2hlKCktPnJlc291cmNlRm9y
UmVxdWVzdChyZXF1ZXN0LCBmcmFtZS0+cGFnZSgpLT5zZXNzaW9uSUQoKSk7CiAgICAgICAgICAg
ICAgICAgaWYgKGNhY2hlZFJlc291cmNlKSB7CiAgICAgICAgICAgICAgICAgICAgIFJlc291cmNl
QnVmZmVyKiBkYXRhID0gY2FjaGVkUmVzb3VyY2UtPnJlc291cmNlQnVmZmVyKCk7CiAgICAgICAg
ICAgICAgICAgICAgIHJlc291cmNlID0gQXJjaGl2ZVJlc291cmNlOjpjcmVhdGUoZGF0YSA/IGRh
dGEtPnNoYXJlZEJ1ZmZlcigpIDogMCwgc3VicmVzb3VyY2VVUkwsIGNhY2hlZFJlc291cmNlLT5y
ZXNwb25zZSgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNo
ZWRDU1NTdHlsZVNoZWV0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRD
U1NTdHlsZVNoZWV0LmNwcAppbmRleCA2OWJjZThmLi4yMzVmNWJiIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkQ1NTU3R5bGVTaGVldC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZENTU1N0eWxlU2hlZXQuY3BwCkBAIC00MCw4
ICs0MCw4IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotQ2FjaGVkQ1NTU3R5bGVTaGVldDo6
Q2FjaGVkQ1NTU3R5bGVTaGVldChjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlc291cmNlUmVxdWVz
dCwgY29uc3QgU3RyaW5nJiBjaGFyc2V0KQotICAgIDogQ2FjaGVkUmVzb3VyY2UocmVzb3VyY2VS
ZXF1ZXN0LCBDU1NTdHlsZVNoZWV0KQorQ2FjaGVkQ1NTU3R5bGVTaGVldDo6Q2FjaGVkQ1NTU3R5
bGVTaGVldChjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlc291cmNlUmVxdWVzdCwgY29uc3QgU3Ry
aW5nJiBjaGFyc2V0LCB1aW50NjRfdCBzZXNzaW9uSUQpCisgICAgOiBDYWNoZWRSZXNvdXJjZShy
ZXNvdXJjZVJlcXVlc3QsIENTU1N0eWxlU2hlZXQsIHNlc3Npb25JRCkKICAgICAsIG1fZGVjb2Rl
cihUZXh0UmVzb3VyY2VEZWNvZGVyOjpjcmVhdGUoInRleHQvY3NzIiwgY2hhcnNldCkpCiB7CiAg
ICAgLy8gUHJlZmVyIHRleHQvY3NzIGJ1dCBhY2NlcHQgYW55IHR5cGUgKGRlbGwuY29tIHNlcnZl
cyBhIHN0eWxlc2hlZXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9D
YWNoZWRDU1NTdHlsZVNoZWV0LmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVk
Q1NTU3R5bGVTaGVldC5oCmluZGV4IGY4YmIwYzYuLmFkZWUxODcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRDU1NTdHlsZVNoZWV0LmgKKysrIGIvU291cmNl
L1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZENTU1N0eWxlU2hlZXQuaApAQCAtMzgsNyArMzgs
NyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICAgICBjbGFzcyBDYWNoZWRDU1NTdHlsZVNoZWV0
IGZpbmFsIDogcHVibGljIENhY2hlZFJlc291cmNlIHsKICAgICBwdWJsaWM6Ci0gICAgICAgIENh
Y2hlZENTU1N0eWxlU2hlZXQoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgU3RyaW5nJiBj
aGFyc2V0KTsKKyAgICAgICAgQ2FjaGVkQ1NTU3R5bGVTaGVldChjb25zdCBSZXNvdXJjZVJlcXVl
c3QmLCBjb25zdCBTdHJpbmcmIGNoYXJzZXQsIHVpbnQ2NF90IHNlc3Npb25JRCk7CiAgICAgICAg
IHZpcnR1YWwgfkNhY2hlZENTU1N0eWxlU2hlZXQoKTsKIAogICAgICAgICBjb25zdCBTdHJpbmcg
c2hlZXRUZXh0KGJvb2wgZW5mb3JjZU1JTUVUeXBlID0gdHJ1ZSwgYm9vbCogaGFzVmFsaWRNSU1F
VHlwZSA9IDApIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hl
L0NhY2hlZEZvbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZEZvbnQu
Y3BwCmluZGV4IGZiZjY1OGMuLjBmMDhkZWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9jYWNoZS9DYWNoZWRGb250LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2Fj
aGUvQ2FjaGVkRm9udC5jcHAKQEAgLTUwLDggKzUwLDggQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUg
ewogCi1DYWNoZWRGb250OjpDYWNoZWRGb250KGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVzb3Vy
Y2VSZXF1ZXN0KQotICAgIDogQ2FjaGVkUmVzb3VyY2UocmVzb3VyY2VSZXF1ZXN0LCBGb250UmVz
b3VyY2UpCitDYWNoZWRGb250OjpDYWNoZWRGb250KGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVz
b3VyY2VSZXF1ZXN0LCB1aW50NjRfdCBzZXNzaW9uSUQpCisgICAgOiBDYWNoZWRSZXNvdXJjZShy
ZXNvdXJjZVJlcXVlc3QsIEZvbnRSZXNvdXJjZSwgc2Vzc2lvbklEKQogICAgICwgbV9sb2FkSW5p
dGlhdGVkKGZhbHNlKQogICAgICwgbV9oYXNDcmVhdGVkRm9udERhdGFXcmFwcGluZ1Jlc291cmNl
KGZhbHNlKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hl
ZEZvbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRGb250LmgKaW5kZXgg
NzQ0YjYyZC4uMTAwYjljNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hl
L0NhY2hlZEZvbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkRm9u
dC5oCkBAIC00Miw3ICs0Miw3IEBAIHN0cnVjdCBGb250Q3VzdG9tUGxhdGZvcm1EYXRhOwogCiBj
bGFzcyBDYWNoZWRGb250IGZpbmFsIDogcHVibGljIENhY2hlZFJlc291cmNlIHsKIHB1YmxpYzoK
LSAgICBDYWNoZWRGb250KGNvbnN0IFJlc291cmNlUmVxdWVzdCYpOworICAgIENhY2hlZEZvbnQo
Y29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgdWludDY0X3Qgc2Vzc2lvbklEKTsKICAgICB2aXJ0dWFs
IH5DYWNoZWRGb250KCk7CiAKICAgICB2b2lkIGJlZ2luTG9hZElmTmVlZGVkKENhY2hlZFJlc291
cmNlTG9hZGVyKiBkbCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUv
Q2FjaGVkSW1hZ2UuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZEltYWdl
LmNwcAppbmRleCA0YzI2NjdiLi4wZTBkNmVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvY2FjaGUvQ2FjaGVkSW1hZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9j
YWNoZS9DYWNoZWRJbWFnZS5jcHAKQEAgLTYwLDggKzYwLDggQEAKIAogbmFtZXNwYWNlIFdlYkNv
cmUgewogCi1DYWNoZWRJbWFnZTo6Q2FjaGVkSW1hZ2UoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiBy
ZXNvdXJjZVJlcXVlc3QpCi0gICAgOiBDYWNoZWRSZXNvdXJjZShyZXNvdXJjZVJlcXVlc3QsIElt
YWdlUmVzb3VyY2UpCitDYWNoZWRJbWFnZTo6Q2FjaGVkSW1hZ2UoY29uc3QgUmVzb3VyY2VSZXF1
ZXN0JiByZXNvdXJjZVJlcXVlc3QsIHVpbnQ2NF90IHNlc3Npb25JRCkKKyAgICA6IENhY2hlZFJl
c291cmNlKHJlc291cmNlUmVxdWVzdCwgSW1hZ2VSZXNvdXJjZSwgc2Vzc2lvbklEKQogICAgICwg
bV9pbWFnZSgwKQogICAgICwgbV9pc01hbnVhbGx5Q2FjaGVkKGZhbHNlKQogICAgICwgbV9zaG91
bGRQYWludEJyb2tlbkltYWdlKHRydWUpCkBAIC02OSw4ICs2OSw4IEBAIENhY2hlZEltYWdlOjpD
YWNoZWRJbWFnZShjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlc291cmNlUmVxdWVzdCkKICAgICBz
ZXRTdGF0dXMoVW5rbm93bik7CiB9CiAKLUNhY2hlZEltYWdlOjpDYWNoZWRJbWFnZShJbWFnZSog
aW1hZ2UpCi0gICAgOiBDYWNoZWRSZXNvdXJjZShSZXNvdXJjZVJlcXVlc3QoKSwgSW1hZ2VSZXNv
dXJjZSkKK0NhY2hlZEltYWdlOjpDYWNoZWRJbWFnZShJbWFnZSogaW1hZ2UsIHVpbnQ2NF90IHNl
c3Npb25JRCkKKyAgICA6IENhY2hlZFJlc291cmNlKFJlc291cmNlUmVxdWVzdCgpLCBJbWFnZVJl
c291cmNlLCBzZXNzaW9uSUQpCiAgICAgLCBtX2ltYWdlKGltYWdlKQogICAgICwgbV9pc01hbnVh
bGx5Q2FjaGVkKGZhbHNlKQogICAgICwgbV9zaG91bGRQYWludEJyb2tlbkltYWdlKHRydWUpCkBA
IC03OSw4ICs3OSwxOCBAQCBDYWNoZWRJbWFnZTo6Q2FjaGVkSW1hZ2UoSW1hZ2UqIGltYWdlKQog
ICAgIHNldExvYWRpbmcoZmFsc2UpOwogfQogCi1DYWNoZWRJbWFnZTo6Q2FjaGVkSW1hZ2UoY29u
c3QgVVJMJiB1cmwsIEltYWdlKiBpbWFnZSwgQ2FjaGVkSW1hZ2U6OkNhY2hlQmVoYXZpb3JUeXBl
IHR5cGUpCi0gICAgOiBDYWNoZWRSZXNvdXJjZShSZXNvdXJjZVJlcXVlc3QodXJsKSwgSW1hZ2VS
ZXNvdXJjZSkKK0NhY2hlZEltYWdlOjpDYWNoZWRJbWFnZShjb25zdCBVUkwmIHVybCwgSW1hZ2Uq
IGltYWdlLCB1aW50NjRfdCBzZXNzaW9uSUQpCisgICAgOiBDYWNoZWRSZXNvdXJjZShSZXNvdXJj
ZVJlcXVlc3QodXJsKSwgSW1hZ2VSZXNvdXJjZSwgc2Vzc2lvbklEKQorICAgICwgbV9pbWFnZShp
bWFnZSkKKyAgICAsIG1faXNNYW51YWxseUNhY2hlZChmYWxzZSkKKyAgICAsIG1fc2hvdWxkUGFp
bnRCcm9rZW5JbWFnZSh0cnVlKQoreworICAgIHNldFN0YXR1cyhDYWNoZWQpOworICAgIHNldExv
YWRpbmcoZmFsc2UpOworfQorCitDYWNoZWRJbWFnZTo6Q2FjaGVkSW1hZ2UoY29uc3QgVVJMJiB1
cmwsIEltYWdlKiBpbWFnZSwgQ2FjaGVkSW1hZ2U6OkNhY2hlQmVoYXZpb3JUeXBlIHR5cGUsIHVp
bnQ2NF90IHNlc3Npb25JRCkKKyAgICA6IENhY2hlZFJlc291cmNlKFJlc291cmNlUmVxdWVzdCh1
cmwpLCBJbWFnZVJlc291cmNlLCBzZXNzaW9uSUQpCiAgICAgLCBtX2ltYWdlKGltYWdlKQogICAg
ICwgbV9pc01hbnVhbGx5Q2FjaGVkKHR5cGUgPT0gQ2FjaGVkSW1hZ2U6Ok1hbnVhbGx5Q2FjaGVk
KQogICAgICwgbV9zaG91bGRQYWludEJyb2tlbkltYWdlKHRydWUpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkSW1hZ2UuaCBiL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9jYWNoZS9DYWNoZWRJbWFnZS5oCmluZGV4IGI3ZDcyMTEuLjg4Y2UyMzkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRJbWFnZS5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRJbWFnZS5oCkBAIC01MCw5ICs1MCwxMCBAQCBj
bGFzcyBDYWNoZWRJbWFnZSBmaW5hbCA6IHB1YmxpYyBDYWNoZWRSZXNvdXJjZSwgcHVibGljIElt
YWdlT2JzZXJ2ZXIgewogcHVibGljOgogICAgIGVudW0gQ2FjaGVCZWhhdmlvclR5cGUgeyBBdXRv
bWF0aWNhbGx5Q2FjaGVkLCBNYW51YWxseUNhY2hlZCB9OwogCi0gICAgQ2FjaGVkSW1hZ2UoY29u
c3QgUmVzb3VyY2VSZXF1ZXN0Jik7Ci0gICAgQ2FjaGVkSW1hZ2UoSW1hZ2UqKTsKLSAgICBDYWNo
ZWRJbWFnZShjb25zdCBVUkwmLCBJbWFnZSosIENhY2hlQmVoYXZpb3JUeXBlID0gQXV0b21hdGlj
YWxseUNhY2hlZCk7CisgICAgQ2FjaGVkSW1hZ2UoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgdWlu
dDY0X3Qgc2Vzc2lvbklEKTsKKyAgICBDYWNoZWRJbWFnZShJbWFnZSosIHVpbnQ2NF90IHNlc3Np
b25JRCk7CisgICAgQ2FjaGVkSW1hZ2UoY29uc3QgVVJMJiwgSW1hZ2UqLCB1aW50NjRfdCBzZXNz
aW9uSUQpOworICAgIENhY2hlZEltYWdlKGNvbnN0IFVSTCYsIEltYWdlKiwgQ2FjaGVCZWhhdmlv
clR5cGUsIHVpbnQ2NF90IHNlc3Npb25JRCk7CiAgICAgdmlydHVhbCB+Q2FjaGVkSW1hZ2UoKTsK
IAogICAgIEltYWdlKiBpbWFnZSgpOyAvLyBSZXR1cm5zIHRoZSBudWxsSW1hZ2UoKSBpZiB0aGUg
aW1hZ2UgaXMgbm90IGF2YWlsYWJsZSB5ZXQuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvY2FjaGUvQ2FjaGVkUmF3UmVzb3VyY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVy
L2NhY2hlL0NhY2hlZFJhd1Jlc291cmNlLmNwcAppbmRleCA3MWQ4NmRhLi5jODBkNWUxIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmF3UmVzb3VyY2UuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSYXdSZXNvdXJjZS5jcHAK
QEAgLTM1LDggKzM1LDggQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1DYWNoZWRSYXdSZXNv
dXJjZTo6Q2FjaGVkUmF3UmVzb3VyY2UoUmVzb3VyY2VSZXF1ZXN0JiByZXNvdXJjZVJlcXVlc3Qs
IFR5cGUgdHlwZSkKLSAgICA6IENhY2hlZFJlc291cmNlKHJlc291cmNlUmVxdWVzdCwgdHlwZSkK
K0NhY2hlZFJhd1Jlc291cmNlOjpDYWNoZWRSYXdSZXNvdXJjZShSZXNvdXJjZVJlcXVlc3QmIHJl
c291cmNlUmVxdWVzdCwgVHlwZSB0eXBlLCB1aW50NjRfdCBzZXNzaW9uSUQpCisgICAgOiBDYWNo
ZWRSZXNvdXJjZShyZXNvdXJjZVJlcXVlc3QsIHR5cGUsIHNlc3Npb25JRCkKICAgICAsIG1faWRl
bnRpZmllcigwKQogewogICAgIC8vIEZJWE1FOiBUaGUgd3JvbmcgQ2FjaGVkUmVzb3VyY2U6OlR5
cGUgaGVyZSBtYXkgY2F1c2UgYSBiYWQgY2FzdCBlbHNld2hlcmUuCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmF3UmVzb3VyY2UuaCBiL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSYXdSZXNvdXJjZS5oCmluZGV4IGNjZGZlZTEuLmRmOTMy
OWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSYXdSZXNv
dXJjZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSYXdSZXNvdXJj
ZS5oCkBAIC0zMiw3ICszMiw3IEBAIGNsYXNzIFN1YnJlc291cmNlTG9hZGVyOwogCiBjbGFzcyBD
YWNoZWRSYXdSZXNvdXJjZSBmaW5hbCA6IHB1YmxpYyBDYWNoZWRSZXNvdXJjZSB7CiBwdWJsaWM6
Ci0gICAgQ2FjaGVkUmF3UmVzb3VyY2UoUmVzb3VyY2VSZXF1ZXN0JiwgVHlwZSk7CisgICAgQ2Fj
aGVkUmF3UmVzb3VyY2UoUmVzb3VyY2VSZXF1ZXN0JiwgVHlwZSwgdWludDY0X3Qgc2Vzc2lvbklE
KTsKIAogICAgIC8vIEZJWE1FOiBBc3NvY2lhdGVkVVJMTG9hZGVyIHNob3VsZG4ndCBiZSBhIERv
Y3VtZW50VGhyZWFkYWJsZUxvYWRlciBhbmQgdGhlcmVmb3JlIHNob3VsZG4ndAogICAgIC8vIHVz
ZSBDYWNoZWRSYXdSZXNvdXJjZS4gSG93ZXZlciwgaXQgaXMsIGFuZCBpdCBuZWVkcyB0byBiZSBh
YmxlIHRvIGRlZmVyIGxvYWRpbmcuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
Y2FjaGUvQ2FjaGVkUmVzb3VyY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0Nh
Y2hlZFJlc291cmNlLmNwcAppbmRleCA2OTdhNDk1Li5lODA1MWQ0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2UuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZS5jcHAKQEAgLTE0Nyw4ICsxNDcsOSBA
QCBzdGF0aWMgZG91YmxlIGRlYWREZWNvZGVkRGF0YURlbGV0aW9uSW50ZXJ2YWxGb3JSZXNvdXJj
ZVR5cGUoQ2FjaGVkUmVzb3VyY2U6OlR5cAogCiBERUZJTkVfREVCVUdfT05MWV9HTE9CQUwoUmVm
Q291bnRlZExlYWtDb3VudGVyLCBjYWNoZWRSZXNvdXJjZUxlYWtDb3VudGVyLCAoIkNhY2hlZFJl
c291cmNlIikpOwogCi1DYWNoZWRSZXNvdXJjZTo6Q2FjaGVkUmVzb3VyY2UoY29uc3QgUmVzb3Vy
Y2VSZXF1ZXN0JiByZXF1ZXN0LCBUeXBlIHR5cGUpCitDYWNoZWRSZXNvdXJjZTo6Q2FjaGVkUmVz
b3VyY2UoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBUeXBlIHR5cGUsIHVpbnQ2NF90
IHNlc3Npb25JRCkKICAgICA6IG1fcmVzb3VyY2VSZXF1ZXN0KHJlcXVlc3QpCisgICAgLCBtX3Nl
c3Npb25JRChzZXNzaW9uSUQpCiAgICAgLCBtX2xvYWRQcmlvcml0eShkZWZhdWx0UHJpb3JpdHlG
b3JSZXNvdXJjZVR5cGUodHlwZSkpCiAgICAgLCBtX3Jlc3BvbnNlVGltZXN0YW1wKGN1cnJlbnRU
aW1lKCkpCiAgICAgLCBtX2RlY29kZWREYXRhRGVsZXRpb25UaW1lcih0aGlzLCAmQ2FjaGVkUmVz
b3VyY2U6OmRlY29kZWREYXRhRGVsZXRpb25UaW1lckZpcmVkLCBkZWFkRGVjb2RlZERhdGFEZWxl
dGlvbkludGVydmFsRm9yUmVzb3VyY2VUeXBlKHR5cGUpKQpAQCAtMTgwLDYgKzE4MSw3IEBAIENh
Y2hlZFJlc291cmNlOjpDYWNoZWRSZXNvdXJjZShjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVl
c3QsIFR5cGUgdHlwZSkKICAgICAsIG1fcHJveHlSZXNvdXJjZSgwKQogewogICAgIEFTU0VSVCht
X3R5cGUgPT0gdW5zaWduZWQodHlwZSkpOyAvLyBtX3R5cGUgaXMgYSBiaXRmaWVsZCwgc28gdGhp
cyB0ZXN0cyBjYXJlbGVzcyB1cGRhdGVzIG9mIHRoZSBlbnVtLgorICAgIEFTU0VSVChzZXNzaW9u
SUQpOwogI2lmbmRlZiBOREVCVUcKICAgICBjYWNoZWRSZXNvdXJjZUxlYWtDb3VudGVyLmluY3Jl
bWVudCgpOwogI2VuZGlmCkBAIC0xOTksNyArMjAxLDcgQEAgQ2FjaGVkUmVzb3VyY2U6On5DYWNo
ZWRSZXNvdXJjZSgpCiAgICAgQVNTRVJUKGNhbkRlbGV0ZSgpKTsKICAgICBBU1NFUlQoIWluQ2Fj
aGUoKSk7CiAgICAgQVNTRVJUKCFtX2RlbGV0ZWQpOwotICAgIEFTU0VSVCh1cmwoKS5pc051bGwo
KSB8fCBtZW1vcnlDYWNoZSgpLT5yZXNvdXJjZUZvclJlcXVlc3QocmVzb3VyY2VSZXF1ZXN0KCkp
ICE9IHRoaXMpOworICAgIEFTU0VSVCh1cmwoKS5pc051bGwoKSB8fCBtZW1vcnlDYWNoZSgpLT5y
ZXNvdXJjZUZvclJlcXVlc3QocmVzb3VyY2VSZXF1ZXN0KCksIHNlc3Npb25JRCgpKSAhPSB0aGlz
KTsKIAogI2lmbmRlZiBOREVCVUcKICAgICBtX2RlbGV0ZWQgPSB0cnVlOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlLmggYi9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2UuaAppbmRleCBlZjBiYzY2Li4wNDUwOTg1
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2Uu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2UuaApAQCAt
ODksNyArODksNyBAQCBwdWJsaWM6CiAgICAgICAgIERlY29kZUVycm9yCiAgICAgfTsKIAotICAg
IENhY2hlZFJlc291cmNlKGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIFR5cGUpOworICAgIENhY2hl
ZFJlc291cmNlKGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIFR5cGUsIHVpbnQ2NF90IHNlc3Npb25J
RCk7CiAgICAgdmlydHVhbCB+Q2FjaGVkUmVzb3VyY2UoKTsKIAogICAgIHZpcnR1YWwgdm9pZCBs
b2FkKENhY2hlZFJlc291cmNlTG9hZGVyKiwgY29uc3QgUmVzb3VyY2VMb2FkZXJPcHRpb25zJik7
CkBAIC0xMTEsNiArMTExLDcgQEAgcHVibGljOgogI2lmIEVOQUJMRShDQUNIRV9QQVJUSVRJT05J
TkcpCiAgICAgY29uc3QgU3RyaW5nJiBjYWNoZVBhcnRpdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1f
cmVzb3VyY2VSZXF1ZXN0LmNhY2hlUGFydGl0aW9uKCk7IH0KICNlbmRpZgorICAgIHVpbnQ2NF90
IHNlc3Npb25JRCgpIGNvbnN0IHsgcmV0dXJuIG1fc2Vzc2lvbklEOyB9CiAgICAgVHlwZSB0eXBl
KCkgY29uc3QgeyByZXR1cm4gc3RhdGljX2Nhc3Q8VHlwZT4obV90eXBlKTsgfQogICAgIAogICAg
IFJlc291cmNlTG9hZFByaW9yaXR5IGxvYWRQcmlvcml0eSgpIGNvbnN0IHsgcmV0dXJuIG1fbG9h
ZFByaW9yaXR5OyB9CkBAIC0yOTAsNiArMjkxLDcgQEAgcHJvdGVjdGVkOgogICAgIEhhc2hNYXA8
Q2FjaGVkUmVzb3VyY2VDbGllbnQqLCBPd25QdHI8Q2FjaGVkUmVzb3VyY2VDYWxsYmFjaz4+IG1f
Y2xpZW50c0F3YWl0aW5nQ2FsbGJhY2s7CiAKICAgICBSZXNvdXJjZVJlcXVlc3QgbV9yZXNvdXJj
ZVJlcXVlc3Q7CisgICAgdWludDY0X3QgbV9zZXNzaW9uSUQ7CiAgICAgU3RyaW5nIG1fYWNjZXB0
OwogICAgIFJlZlB0cjxTdWJyZXNvdXJjZUxvYWRlcj4gbV9sb2FkZXI7CiAgICAgUmVzb3VyY2VM
b2FkZXJPcHRpb25zIG1fb3B0aW9uczsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9jYWNoZS9DYWNoZWRSZXNvdXJjZUxvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
Y2FjaGUvQ2FjaGVkUmVzb3VyY2VMb2FkZXIuY3BwCmluZGV4IDExZjE4YTguLjMyOTMzZTQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZUxvYWRl
ci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlTG9h
ZGVyLmNwcApAQCAtNDgsMTIgKzQ4LDE0IEBACiAjaW5jbHVkZSAiTG9hZGVyU3RyYXRlZ3kuaCIK
ICNpbmNsdWRlICJMb2dnaW5nLmgiCiAjaW5jbHVkZSAiTWVtb3J5Q2FjaGUuaCIKKyNpbmNsdWRl
ICJQYWdlLmgiCiAjaW5jbHVkZSAiUGluZ0xvYWRlci5oIgogI2luY2x1ZGUgIlBsYXRmb3JtU3Ry
YXRlZ2llcy5oIgogI2luY2x1ZGUgIlJlbmRlckVsZW1lbnQuaCIKICNpbmNsdWRlICJSZXNvdXJj
ZUxvYWRTY2hlZHVsZXIuaCIKICNpbmNsdWRlICJTY3JpcHRDb250cm9sbGVyLmgiCiAjaW5jbHVk
ZSAiU2VjdXJpdHlPcmlnaW4uaCIKKyNpbmNsdWRlICJTZXNzaW9uSUQuaCIKICNpbmNsdWRlICJT
ZXR0aW5ncy5oIgogI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KICNpbmNsdWRlIDx3dGYv
dGV4dC9XVEZTdHJpbmcuaD4KQEAgLTcwLDM1ICs3MiwzNSBAQAogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKLXN0YXRpYyBDYWNoZWRSZXNvdXJjZSogY3JlYXRlUmVzb3VyY2UoQ2FjaGVkUmVzb3Vy
Y2U6OlR5cGUgdHlwZSwgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBjb25zdCBTdHJpbmcmIGNo
YXJzZXQpCitzdGF0aWMgQ2FjaGVkUmVzb3VyY2UqIGNyZWF0ZVJlc291cmNlKENhY2hlZFJlc291
cmNlOjpUeXBlIHR5cGUsIFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgY29uc3QgU3RyaW5nJiBj
aGFyc2V0LCB1aW50NjRfdCBzZXNzaW9uSUQpCiB7CiAgICAgc3dpdGNoICh0eXBlKSB7CiAgICAg
Y2FzZSBDYWNoZWRSZXNvdXJjZTo6SW1hZ2VSZXNvdXJjZToKLSAgICAgICAgcmV0dXJuIG5ldyBD
YWNoZWRJbWFnZShyZXF1ZXN0KTsKKyAgICAgICAgcmV0dXJuIG5ldyBDYWNoZWRJbWFnZShyZXF1
ZXN0LCBzZXNzaW9uSUQpOwogICAgIGNhc2UgQ2FjaGVkUmVzb3VyY2U6OkNTU1N0eWxlU2hlZXQ6
Ci0gICAgICAgIHJldHVybiBuZXcgQ2FjaGVkQ1NTU3R5bGVTaGVldChyZXF1ZXN0LCBjaGFyc2V0
KTsKKyAgICAgICAgcmV0dXJuIG5ldyBDYWNoZWRDU1NTdHlsZVNoZWV0KHJlcXVlc3QsIGNoYXJz
ZXQsIHNlc3Npb25JRCk7CiAgICAgY2FzZSBDYWNoZWRSZXNvdXJjZTo6U2NyaXB0OgotICAgICAg
ICByZXR1cm4gbmV3IENhY2hlZFNjcmlwdChyZXF1ZXN0LCBjaGFyc2V0KTsKKyAgICAgICAgcmV0
dXJuIG5ldyBDYWNoZWRTY3JpcHQocmVxdWVzdCwgY2hhcnNldCwgc2Vzc2lvbklEKTsKICAgICBj
YXNlIENhY2hlZFJlc291cmNlOjpTVkdEb2N1bWVudFJlc291cmNlOgotICAgICAgICByZXR1cm4g
bmV3IENhY2hlZFNWR0RvY3VtZW50KHJlcXVlc3QpOworICAgICAgICByZXR1cm4gbmV3IENhY2hl
ZFNWR0RvY3VtZW50KHJlcXVlc3QsIHNlc3Npb25JRCk7CiAgICAgY2FzZSBDYWNoZWRSZXNvdXJj
ZTo6Rm9udFJlc291cmNlOgotICAgICAgICByZXR1cm4gbmV3IENhY2hlZEZvbnQocmVxdWVzdCk7
CisgICAgICAgIHJldHVybiBuZXcgQ2FjaGVkRm9udChyZXF1ZXN0LCBzZXNzaW9uSUQpOwogICAg
IGNhc2UgQ2FjaGVkUmVzb3VyY2U6OlJhd1Jlc291cmNlOgogICAgIGNhc2UgQ2FjaGVkUmVzb3Vy
Y2U6Ok1haW5SZXNvdXJjZToKLSAgICAgICAgcmV0dXJuIG5ldyBDYWNoZWRSYXdSZXNvdXJjZShy
ZXF1ZXN0LCB0eXBlKTsKKyAgICAgICAgcmV0dXJuIG5ldyBDYWNoZWRSYXdSZXNvdXJjZShyZXF1
ZXN0LCB0eXBlLCBzZXNzaW9uSUQpOwogI2lmIEVOQUJMRShYU0xUKQogICAgIGNhc2UgQ2FjaGVk
UmVzb3VyY2U6OlhTTFN0eWxlU2hlZXQ6Ci0gICAgICAgIHJldHVybiBuZXcgQ2FjaGVkWFNMU3R5
bGVTaGVldChyZXF1ZXN0KTsKKyAgICAgICAgcmV0dXJuIG5ldyBDYWNoZWRYU0xTdHlsZVNoZWV0
KHJlcXVlc3QsIHNlc3Npb25JRCk7CiAjZW5kaWYKICNpZiBFTkFCTEUoTElOS19QUkVGRVRDSCkK
ICAgICBjYXNlIENhY2hlZFJlc291cmNlOjpMaW5rUHJlZmV0Y2g6Ci0gICAgICAgIHJldHVybiBu
ZXcgQ2FjaGVkUmVzb3VyY2UocmVxdWVzdCwgQ2FjaGVkUmVzb3VyY2U6OkxpbmtQcmVmZXRjaCk7
CisgICAgICAgIHJldHVybiBuZXcgQ2FjaGVkUmVzb3VyY2UocmVxdWVzdCwgQ2FjaGVkUmVzb3Vy
Y2U6OkxpbmtQcmVmZXRjaCwgc2Vzc2lvbklEKTsKICAgICBjYXNlIENhY2hlZFJlc291cmNlOjpM
aW5rU3VicmVzb3VyY2U6Ci0gICAgICAgIHJldHVybiBuZXcgQ2FjaGVkUmVzb3VyY2UocmVxdWVz
dCwgQ2FjaGVkUmVzb3VyY2U6OkxpbmtTdWJyZXNvdXJjZSk7CisgICAgICAgIHJldHVybiBuZXcg
Q2FjaGVkUmVzb3VyY2UocmVxdWVzdCwgQ2FjaGVkUmVzb3VyY2U6OkxpbmtTdWJyZXNvdXJjZSwg
c2Vzc2lvbklEKTsKICNlbmRpZgogI2lmIEVOQUJMRShWSURFT19UUkFDSykKICAgICBjYXNlIENh
Y2hlZFJlc291cmNlOjpUZXh0VHJhY2tSZXNvdXJjZToKLSAgICAgICAgcmV0dXJuIG5ldyBDYWNo
ZWRUZXh0VHJhY2socmVxdWVzdCk7CisgICAgICAgIHJldHVybiBuZXcgQ2FjaGVkVGV4dFRyYWNr
KHJlcXVlc3QsIHNlc3Npb25JRCk7CiAjZW5kaWYKICAgICB9CiAgICAgQVNTRVJUX05PVF9SRUFD
SEVEKCk7CkBAIC0xNDcsNiArMTQ5LDE2IEBAIEZyYW1lKiBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6
ZnJhbWUoKSBjb25zdAogICAgIHJldHVybiBtX2RvY3VtZW50TG9hZGVyID8gbV9kb2N1bWVudExv
YWRlci0+ZnJhbWUoKSA6IDA7CiB9CiAKK3VpbnQ2NF90IENhY2hlZFJlc291cmNlTG9hZGVyOjpz
ZXNzaW9uSUQoKSBjb25zdAoreworICAgIHVpbnQ2NF90IHNlc3Npb25JRCA9IFNlc3Npb25JRDo6
ZGVmYXVsdFNlc3Npb25JRDsKKworICAgIGlmIChGcmFtZSogZiA9IGZyYW1lKCkpCisgICAgICAg
IHNlc3Npb25JRCA9IGYtPnBhZ2UoKS0+c2Vzc2lvbklEKCk7CisKKyAgICByZXR1cm4gc2Vzc2lv
bklEOworfQorCiBDYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRJbWFnZT4gQ2FjaGVkUmVzb3Vy
Y2VMb2FkZXI6OnJlcXVlc3RJbWFnZShDYWNoZWRSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QpCiB7
CiAgICAgaWYgKEZyYW1lKiBmcmFtZSA9IHRoaXMtPmZyYW1lKCkpIHsKQEAgLTE4Nyw3ICsxOTks
NyBAQCBDYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRDU1NTdHlsZVNoZWV0PiBDYWNoZWRSZXNv
dXJjZUxvYWRlcjo6cmVxdWVzdFVzZXJDU1NTdAogICAgIHJlcXVlc3QubXV0YWJsZVJlc291cmNl
UmVxdWVzdCgpLnNldENhY2hlUGFydGl0aW9uKGRvY3VtZW50KCktPnRvcE9yaWdpbigpLT5jYWNo
ZVBhcnRpdGlvbigpKTsKICNlbmRpZgogCi0gICAgaWYgKENhY2hlZFJlc291cmNlKiBleGlzdGlu
ZyA9IG1lbW9yeUNhY2hlKCktPnJlc291cmNlRm9yUmVxdWVzdChyZXF1ZXN0LnJlc291cmNlUmVx
dWVzdCgpKSkgeworICAgIGlmIChDYWNoZWRSZXNvdXJjZSogZXhpc3RpbmcgPSBtZW1vcnlDYWNo
ZSgpLT5yZXNvdXJjZUZvclJlcXVlc3QocmVxdWVzdC5yZXNvdXJjZVJlcXVlc3QoKSwgc2Vzc2lv
bklEKCkpKSB7CiAgICAgICAgIGlmIChleGlzdGluZy0+dHlwZSgpID09IENhY2hlZFJlc291cmNl
OjpDU1NTdHlsZVNoZWV0KQogICAgICAgICAgICAgcmV0dXJuIHRvQ2FjaGVkQ1NTU3R5bGVTaGVl
dChleGlzdGluZyk7CiAgICAgICAgIG1lbW9yeUNhY2hlKCktPnJlbW92ZShleGlzdGluZyk7CkBA
IC0xOTUsNyArMjA3LDcgQEAgQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkQ1NTU3R5bGVTaGVl
dD4gQ2FjaGVkUmVzb3VyY2VMb2FkZXI6OnJlcXVlc3RVc2VyQ1NTU3QKICAgICBpZiAodXJsLnN0
cmluZygpICE9IHJlcXVlc3QucmVzb3VyY2VSZXF1ZXN0KCkudXJsKCkpCiAgICAgICAgIHJlcXVl
c3QubXV0YWJsZVJlc291cmNlUmVxdWVzdCgpLnNldFVSTCh1cmwpOwogCi0gICAgQ2FjaGVkUmVz
b3VyY2VIYW5kbGU8Q2FjaGVkQ1NTU3R5bGVTaGVldD4gdXNlclNoZWV0ID0gbmV3IENhY2hlZENT
U1N0eWxlU2hlZXQocmVxdWVzdC5yZXNvdXJjZVJlcXVlc3QoKSwgcmVxdWVzdC5jaGFyc2V0KCkp
OworICAgIENhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZENTU1N0eWxlU2hlZXQ+IHVzZXJTaGVl
dCA9IG5ldyBDYWNoZWRDU1NTdHlsZVNoZWV0KHJlcXVlc3QucmVzb3VyY2VSZXF1ZXN0KCksIHJl
cXVlc3QuY2hhcnNldCgpLCBzZXNzaW9uSUQoKSk7CiAKICAgICBtZW1vcnlDYWNoZSgpLT5hZGQo
dXNlclNoZWV0LmdldCgpKTsKICAgICAvLyBGSVhNRTogbG9hZFJlc291cmNlIGNhbGxzIHNldE93
bmluZ0NhY2hlZFJlc291cmNlTG9hZGVyKCkgaWYgdGhlIHJlc291cmNlIGNvdWxkbid0IGJlIGFk
ZGVkIHRvIGNhY2hlLiBEb2VzIHRoaXMgZnVuY3Rpb24gbmVlZCB0byBjYWxsIGl0LCB0b28/CkBA
IC00MjgsNyArNDQwLDcgQEAgQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkUmVzb3VyY2U+IENh
Y2hlZFJlc291cmNlTG9hZGVyOjpyZXF1ZXN0UmVzb3VyY2UoQ2FjaGUKICAgICAgICAgcmVxdWVz
dC5tdXRhYmxlUmVzb3VyY2VSZXF1ZXN0KCkuc2V0Q2FjaGVQYXJ0aXRpb24oZG9jdW1lbnQoKS0+
dG9wT3JpZ2luKCktPmNhY2hlUGFydGl0aW9uKCkpOwogI2VuZGlmCiAKLSAgICByZXNvdXJjZSA9
IG1lbW9yeUNhY2hlKCktPnJlc291cmNlRm9yUmVxdWVzdChyZXF1ZXN0LnJlc291cmNlUmVxdWVz
dCgpKTsKKyAgICByZXNvdXJjZSA9IG1lbW9yeUNhY2hlKCktPnJlc291cmNlRm9yUmVxdWVzdChy
ZXF1ZXN0LnJlc291cmNlUmVxdWVzdCgpLCBzZXNzaW9uSUQoKSk7CiAKICAgICBjb25zdCBSZXZh
bGlkYXRpb25Qb2xpY3kgcG9saWN5ID0gZGV0ZXJtaW5lUmV2YWxpZGF0aW9uUG9saWN5KHR5cGUs
IHJlcXVlc3QubXV0YWJsZVJlc291cmNlUmVxdWVzdCgpLCByZXF1ZXN0LmZvclByZWxvYWQoKSwg
cmVzb3VyY2UuZ2V0KCksIHJlcXVlc3QuZGVmZXIoKSk7CiAgICAgc3dpdGNoIChwb2xpY3kpIHsK
QEAgLTQ4MCwxMCArNDkyLDExIEBAIENhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZFJlc291cmNl
PiBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6cmV2YWxpZGF0ZVJlc291cmNlKGNvCiAgICAgQVNTRVJU
KCFtZW1vcnlDYWNoZSgpLT5kaXNhYmxlZCgpKTsKICAgICBBU1NFUlQocmVzb3VyY2UtPmNhblVz
ZUNhY2hlVmFsaWRhdG9yKCkpOwogICAgIEFTU0VSVCghcmVzb3VyY2UtPnJlc291cmNlVG9SZXZh
bGlkYXRlKCkpOwotICAgIAorICAgIEFTU0VSVChyZXNvdXJjZS0+c2Vzc2lvbklEKCkgPT0gc2Vz
c2lvbklEKCkpOworCiAgICAgLy8gQ29weSB0aGUgVVJMIG91dCBvZiB0aGUgcmVzb3VyY2UgdG8g
YmUgcmV2YWxpZGF0ZWQgaW4gY2FzZSBpdCBnZXRzIGRlbGV0ZWQgYnkgdGhlIHJlbW92ZSgpIGNh
bGwgYmVsb3cuCiAgICAgU3RyaW5nIHVybCA9IHJlc291cmNlLT51cmwoKTsKLSAgICBDYWNoZWRS
ZXNvdXJjZUhhbmRsZTxDYWNoZWRSZXNvdXJjZT4gbmV3UmVzb3VyY2UgPSBjcmVhdGVSZXNvdXJj
ZShyZXNvdXJjZS0+dHlwZSgpLCByZXNvdXJjZS0+cmVzb3VyY2VSZXF1ZXN0KCksIHJlc291cmNl
LT5lbmNvZGluZygpKTsKKyAgICBDYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRSZXNvdXJjZT4g
bmV3UmVzb3VyY2UgPSBjcmVhdGVSZXNvdXJjZShyZXNvdXJjZS0+dHlwZSgpLCByZXNvdXJjZS0+
cmVzb3VyY2VSZXF1ZXN0KCksIHJlc291cmNlLT5lbmNvZGluZygpLCByZXNvdXJjZS0+c2Vzc2lv
bklEKCkpOwogICAgIAogICAgIExPRyhSZXNvdXJjZUxvYWRpbmcsICJSZXNvdXJjZSAlcCBjcmVh
dGVkIHRvIHJldmFsaWRhdGUgJXAiLCBuZXdSZXNvdXJjZS5nZXQoKSwgcmVzb3VyY2UpOwogICAg
IG5ld1Jlc291cmNlLT5zZXRSZXNvdXJjZVRvUmV2YWxpZGF0ZShyZXNvdXJjZSk7CkBAIC01MDAs
MTEgKzUxMywxMSBAQCBDYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRSZXNvdXJjZT4gQ2FjaGVk
UmVzb3VyY2VMb2FkZXI6OnJldmFsaWRhdGVSZXNvdXJjZShjbwogCiBDYWNoZWRSZXNvdXJjZUhh
bmRsZTxDYWNoZWRSZXNvdXJjZT4gQ2FjaGVkUmVzb3VyY2VMb2FkZXI6OmxvYWRSZXNvdXJjZShD
YWNoZWRSZXNvdXJjZTo6VHlwZSB0eXBlLCBDYWNoZWRSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3Qs
IGNvbnN0IFN0cmluZyYgY2hhcnNldCkKIHsKLSAgICBBU1NFUlQoIW1lbW9yeUNhY2hlKCktPnJl
c291cmNlRm9yUmVxdWVzdChyZXF1ZXN0LnJlc291cmNlUmVxdWVzdCgpKSk7CisgICAgQVNTRVJU
KCFtZW1vcnlDYWNoZSgpLT5yZXNvdXJjZUZvclJlcXVlc3QocmVxdWVzdC5yZXNvdXJjZVJlcXVl
c3QoKSwgc2Vzc2lvbklEKCkpKTsKIAogICAgIExPRyhSZXNvdXJjZUxvYWRpbmcsICJMb2FkaW5n
IENhY2hlZFJlc291cmNlIGZvciAnJXMnLiIsIHJlcXVlc3QucmVzb3VyY2VSZXF1ZXN0KCkudXJs
KCkuc3RyaW5nQ2VudGVyRWxsaXBzaXplZFRvTGVuZ3RoKCkubGF0aW4xKCkuZGF0YSgpKTsKIAot
ICAgIENhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZFJlc291cmNlPiByZXNvdXJjZSA9IGNyZWF0
ZVJlc291cmNlKHR5cGUsIHJlcXVlc3QubXV0YWJsZVJlc291cmNlUmVxdWVzdCgpLCBjaGFyc2V0
KTsKKyAgICBDYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRSZXNvdXJjZT4gcmVzb3VyY2UgPSBj
cmVhdGVSZXNvdXJjZSh0eXBlLCByZXF1ZXN0Lm11dGFibGVSZXNvdXJjZVJlcXVlc3QoKSwgY2hh
cnNldCwgc2Vzc2lvbklEKCkpOwogCiAgICAgaWYgKCFtZW1vcnlDYWNoZSgpLT5hZGQocmVzb3Vy
Y2UuZ2V0KCkpKQogICAgICAgICByZXNvdXJjZS0+c2V0T3duaW5nQ2FjaGVkUmVzb3VyY2VMb2Fk
ZXIodGhpcyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVk
UmVzb3VyY2VMb2FkZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNv
dXJjZUxvYWRlci5oCmluZGV4IGFhZDdlMjUuLjIwN2JmYWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZUxvYWRlci5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZUxvYWRlci5oCkBAIC0xMTEsNiArMTEx
LDcgQEAgcHVibGljOgogICAgIERvY3VtZW50KiBkb2N1bWVudCgpIGNvbnN0IHsgcmV0dXJuIG1f
ZG9jdW1lbnQ7IH0gLy8gQ2FuIGJlIG51bGwKICAgICB2b2lkIHNldERvY3VtZW50KERvY3VtZW50
KiBkb2N1bWVudCkgeyBtX2RvY3VtZW50ID0gZG9jdW1lbnQ7IH0KICAgICB2b2lkIGNsZWFyRG9j
dW1lbnRMb2FkZXIoKSB7IG1fZG9jdW1lbnRMb2FkZXIgPSAwOyB9CisgICAgdWludDY0X3Qgc2Vz
c2lvbklEKCkgY29uc3Q7CiAKICAgICB2b2lkIHJlbW92ZUNhY2hlZFJlc291cmNlKENhY2hlZFJl
c291cmNlKikgY29uc3Q7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNo
ZS9DYWNoZWRTVkdEb2N1bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2Fj
aGVkU1ZHRG9jdW1lbnQuY3BwCmluZGV4IGRkNWE0NzguLjIxYjEwMDUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRTVkdEb2N1bWVudC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFNWR0RvY3VtZW50LmNwcApAQCAtMzAsOCAr
MzAsOCBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLUNhY2hlZFNWR0RvY3VtZW50OjpDYWNo
ZWRTVkdEb2N1bWVudChjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QpCi0gICAgOiBDYWNo
ZWRSZXNvdXJjZShyZXF1ZXN0LCBTVkdEb2N1bWVudFJlc291cmNlKQorQ2FjaGVkU1ZHRG9jdW1l
bnQ6OkNhY2hlZFNWR0RvY3VtZW50KGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgdWlu
dDY0X3Qgc2Vzc2lvbklEKQorICAgIDogQ2FjaGVkUmVzb3VyY2UocmVxdWVzdCwgU1ZHRG9jdW1l
bnRSZXNvdXJjZSwgc2Vzc2lvbklEKQogICAgICwgbV9kZWNvZGVyKFRleHRSZXNvdXJjZURlY29k
ZXI6OmNyZWF0ZSgiYXBwbGljYXRpb24veG1sIikpCiB7CiAgICAgc2V0QWNjZXB0KCJpbWFnZS9z
dmcreG1sIik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVk
U1ZHRG9jdW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRTVkdEb2N1
bWVudC5oCmluZGV4IDZjMDhlMmUuLjRmNmU2M2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9jYWNoZS9DYWNoZWRTVkdEb2N1bWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9jYWNoZS9DYWNoZWRTVkdEb2N1bWVudC5oCkBAIC0zMiw3ICszMiw3IEBAIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAogY2xhc3MgQ2FjaGVkU1ZHRG9jdW1lbnQgZmluYWwgOiBwdWJsaWMgQ2Fj
aGVkUmVzb3VyY2UgewogcHVibGljOgotICAgIGV4cGxpY2l0IENhY2hlZFNWR0RvY3VtZW50KGNv
bnN0IFJlc291cmNlUmVxdWVzdCYpOworICAgIGV4cGxpY2l0IENhY2hlZFNWR0RvY3VtZW50KGNv
bnN0IFJlc291cmNlUmVxdWVzdCYsIHVpbnQ2NF90IHNlc3Npb25JRCk7CiAgICAgdmlydHVhbCB+
Q2FjaGVkU1ZHRG9jdW1lbnQoKTsKIAogICAgIFNWR0RvY3VtZW50KiBkb2N1bWVudCgpIGNvbnN0
IHsgcmV0dXJuIG1fZG9jdW1lbnQuZ2V0KCk7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9jYWNoZS9DYWNoZWRTY3JpcHQuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2Nh
Y2hlL0NhY2hlZFNjcmlwdC5jcHAKaW5kZXggNDhmYWNkNy4uODViMjgxOCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFNjcmlwdC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFNjcmlwdC5jcHAKQEAgLTM5LDggKzM5LDggQEAK
IAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1DYWNoZWRTY3JpcHQ6OkNhY2hlZFNjcmlwdChjb25z
dCBSZXNvdXJjZVJlcXVlc3QmIHJlc291cmNlUmVxdWVzdCwgY29uc3QgU3RyaW5nJiBjaGFyc2V0
KQotICAgIDogQ2FjaGVkUmVzb3VyY2UocmVzb3VyY2VSZXF1ZXN0LCBTY3JpcHQpCitDYWNoZWRT
Y3JpcHQ6OkNhY2hlZFNjcmlwdChjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlc291cmNlUmVxdWVz
dCwgY29uc3QgU3RyaW5nJiBjaGFyc2V0LCB1aW50NjRfdCBzZXNzaW9uSUQpCisgICAgOiBDYWNo
ZWRSZXNvdXJjZShyZXNvdXJjZVJlcXVlc3QsIFNjcmlwdCwgc2Vzc2lvbklEKQogICAgICwgbV9k
ZWNvZGVyKFRleHRSZXNvdXJjZURlY29kZXI6OmNyZWF0ZShBU0NJSUxpdGVyYWwoImFwcGxpY2F0
aW9uL2phdmFzY3JpcHQiKSwgY2hhcnNldCkpCiB7CiAgICAgLy8gSXQncyBqYXZhc2NyaXB0IHdl
IHdhbnQuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkU2Ny
aXB0LmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkU2NyaXB0LmgKaW5kZXgg
ZDQzOGIyNy4uMDQ0OGQzYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hl
L0NhY2hlZFNjcmlwdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRT
Y3JpcHQuaApAQCAtMzUsNyArMzUsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICAgICBjbGFz
cyBDYWNoZWRTY3JpcHQgZmluYWwgOiBwdWJsaWMgQ2FjaGVkUmVzb3VyY2UgewogICAgIHB1Ymxp
YzoKLSAgICAgICAgQ2FjaGVkU2NyaXB0KGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFN0
cmluZyYgY2hhcnNldCk7CisgICAgICAgIENhY2hlZFNjcmlwdChjb25zdCBSZXNvdXJjZVJlcXVl
c3QmLCBjb25zdCBTdHJpbmcmIGNoYXJzZXQsIHVpbnQ2NF90IHNlc3Npb25JRCk7CiAgICAgICAg
IHZpcnR1YWwgfkNhY2hlZFNjcmlwdCgpOwogCiAgICAgICAgIGNvbnN0IFN0cmluZyYgc2NyaXB0
KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkVGV4dFRy
YWNrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRUZXh0VHJhY2suY3Bw
CmluZGV4IDk0OTc0YTUuLjE5YWVlMjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9jYWNoZS9DYWNoZWRUZXh0VHJhY2suY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9j
YWNoZS9DYWNoZWRUZXh0VHJhY2suY3BwCkBAIC0zOSw4ICszOSw4IEBACiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAotQ2FjaGVkVGV4dFRyYWNrOjpDYWNoZWRUZXh0VHJhY2soY29uc3QgUmVzb3Vy
Y2VSZXF1ZXN0JiByZXNvdXJjZVJlcXVlc3QpCi0gICAgOiBDYWNoZWRSZXNvdXJjZShyZXNvdXJj
ZVJlcXVlc3QsIFRleHRUcmFja1Jlc291cmNlKQorQ2FjaGVkVGV4dFRyYWNrOjpDYWNoZWRUZXh0
VHJhY2soY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXNvdXJjZVJlcXVlc3QsIHVpbnQ2NF90IHNl
c3Npb25JRCkKKyAgICA6IENhY2hlZFJlc291cmNlKHJlc291cmNlUmVxdWVzdCwgVGV4dFRyYWNr
UmVzb3VyY2UsIHNlc3Npb25JRCkKIHsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
bG9hZGVyL2NhY2hlL0NhY2hlZFRleHRUcmFjay5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2Nh
Y2hlL0NhY2hlZFRleHRUcmFjay5oCmluZGV4IGIzZWVhN2EuLmZjYTllYTAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRUZXh0VHJhY2suaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkVGV4dFRyYWNrLmgKQEAgLTM1LDcgKzM1LDcg
QEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBDYWNoZWRUZXh0VHJhY2sgZmluYWwgOiBw
dWJsaWMgQ2FjaGVkUmVzb3VyY2UgewogcHVibGljOgotICAgIENhY2hlZFRleHRUcmFjayhjb25z
dCBSZXNvdXJjZVJlcXVlc3QmKTsKKyAgICBDYWNoZWRUZXh0VHJhY2soY29uc3QgUmVzb3VyY2VS
ZXF1ZXN0JiwgdWludDY0X3Qgc2Vzc2lvbklEKTsKICAgICB2aXJ0dWFsIH5DYWNoZWRUZXh0VHJh
Y2soKTsKIAogcHJpdmF0ZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNo
ZS9DYWNoZWRYU0xTdHlsZVNoZWV0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9D
YWNoZWRYU0xTdHlsZVNoZWV0LmNwcAppbmRleCBlYjZjOGUxLi5mMWNkZDE3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkWFNMU3R5bGVTaGVldC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFhTTFN0eWxlU2hlZXQuY3BwCkBA
IC0zNyw4ICszNyw4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogI2lmIEVOQUJMRShYU0xUKQog
Ci1DYWNoZWRYU0xTdHlsZVNoZWV0OjpDYWNoZWRYU0xTdHlsZVNoZWV0KGNvbnN0IFJlc291cmNl
UmVxdWVzdCYgcmVzb3VyY2VSZXF1ZXN0KQotICAgIDogQ2FjaGVkUmVzb3VyY2UocmVzb3VyY2VS
ZXF1ZXN0LCBYU0xTdHlsZVNoZWV0KQorQ2FjaGVkWFNMU3R5bGVTaGVldDo6Q2FjaGVkWFNMU3R5
bGVTaGVldChjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlc291cmNlUmVxdWVzdCwgdWludDY0X3Qg
c2Vzc2lvbklEKQorICAgIDogQ2FjaGVkUmVzb3VyY2UocmVzb3VyY2VSZXF1ZXN0LCBYU0xTdHls
ZVNoZWV0LCBzZXNzaW9uSUQpCiAgICAgLCBtX2RlY29kZXIoVGV4dFJlc291cmNlRGVjb2Rlcjo6
Y3JlYXRlKCJ0ZXh0L3hzbCIpKQogewogICAgIC8vIEl0J3MgWE1MIHdlIHdhbnQuCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkWFNMU3R5bGVTaGVldC5oIGIv
U291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFhTTFN0eWxlU2hlZXQuaAppbmRleCAw
Y2JmYjY1Li4yMzkzYjRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUv
Q2FjaGVkWFNMU3R5bGVTaGVldC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9D
YWNoZWRYU0xTdHlsZVNoZWV0LmgKQEAgLTM3LDcgKzM3LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUg
ewogI2lmIEVOQUJMRShYU0xUKQogICAgIGNsYXNzIENhY2hlZFhTTFN0eWxlU2hlZXQgZmluYWwg
OiBwdWJsaWMgQ2FjaGVkUmVzb3VyY2UgewogICAgIHB1YmxpYzoKLSAgICAgICAgQ2FjaGVkWFNM
U3R5bGVTaGVldChjb25zdCBSZXNvdXJjZVJlcXVlc3QmKTsKKyAgICAgICAgQ2FjaGVkWFNMU3R5
bGVTaGVldChjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCB1aW50NjRfdCBzZXNzaW9uSUQpOwogCiAg
ICAgICAgIGNvbnN0IFN0cmluZyYgc2hlZXQoKSBjb25zdCB7IHJldHVybiBtX3NoZWV0OyB9CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9NZW1vcnlDYWNoZS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvTWVtb3J5Q2FjaGUuY3BwCmluZGV4IGNjNmEy
MjUuLmYzZGFmMDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9NZW1v
cnlDYWNoZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL01lbW9yeUNhY2hl
LmNwcApAQCAtMzgsNiArMzgsNyBAQAogI2luY2x1ZGUgIlB1YmxpY1N1ZmZpeC5oIgogI2luY2x1
ZGUgIlNlY3VyaXR5T3JpZ2luLmgiCiAjaW5jbHVkZSAiU2VjdXJpdHlPcmlnaW5IYXNoLmgiCisj
aW5jbHVkZSAiU2Vzc2lvbklELmgiCiAjaW5jbHVkZSAiV29ya2VyR2xvYmFsU2NvcGUuaCIKICNp
bmNsdWRlICJXb3JrZXJMb2FkZXJQcm94eS5oIgogI2luY2x1ZGUgIldvcmtlclRocmVhZC5oIgpA
QCAtODAsNiArODEsMTcgQEAgTWVtb3J5Q2FjaGU6Ok1lbW9yeUNhY2hlKCkKIHsKIH0KIAorTWVt
b3J5Q2FjaGU6OkNhY2hlZFJlc291cmNlTWFwJiBNZW1vcnlDYWNoZTo6Z2V0U2Vzc2lvbk1hcCh1
aW50NjRfdCBzZXNzaW9uSUQpCit7CisgICAgQVNTRVJUKHNlc3Npb25JRCk7CisgICAgQ2FjaGVk
UmVzb3VyY2VNYXAqIG1hcCA9IG1fc2Vzc2lvblJlc291cmNlcy5nZXQoc2Vzc2lvbklEKTsKKyAg
ICBpZiAoIW1hcCkgeworICAgICAgICBtX3Nlc3Npb25SZXNvdXJjZXMuc2V0KHNlc3Npb25JRCwg
c3RkOjptYWtlX3VuaXF1ZTxDYWNoZWRSZXNvdXJjZU1hcD4oKSk7CisgICAgICAgIG1hcCA9IG1f
c2Vzc2lvblJlc291cmNlcy5nZXQoc2Vzc2lvbklEKTsKKyAgICB9CisgICAgcmV0dXJuICptYXA7
Cit9CisKIFVSTCBNZW1vcnlDYWNoZTo6cmVtb3ZlRnJhZ21lbnRJZGVudGlmaWVySWZOZWVkZWQo
Y29uc3QgVVJMJiBvcmlnaW5hbFVSTCkKIHsKICAgICBpZiAoIW9yaWdpbmFsVVJMLmhhc0ZyYWdt
ZW50SWRlbnRpZmllcigpKQpAQCAtMTAxLDE1ICsxMTMsMTYgQEAgYm9vbCBNZW1vcnlDYWNoZTo6
YWRkKENhY2hlZFJlc291cmNlKiByZXNvdXJjZSkKIAogICAgIEFTU0VSVChXVEY6OmlzTWFpblRo
cmVhZCgpKTsKIAorICAgIENhY2hlZFJlc291cmNlTWFwJiByZXNvdXJjZXMgPSBnZXRTZXNzaW9u
TWFwKHJlc291cmNlLT5zZXNzaW9uSUQoKSk7CiAjaWYgRU5BQkxFKENBQ0hFX1BBUlRJVElPTklO
RykKLSAgICBDYWNoZWRSZXNvdXJjZUl0ZW0qIG9yaWdpbk1hcCA9IG1fcmVzb3VyY2VzLmdldChy
ZXNvdXJjZS0+dXJsKCkpOworICAgIENhY2hlZFJlc291cmNlSXRlbSogb3JpZ2luTWFwID0gcmVz
b3VyY2VzLmdldChyZXNvdXJjZS0+dXJsKCkpOwogICAgIGlmICghb3JpZ2luTWFwKSB7CiAgICAg
ICAgIG9yaWdpbk1hcCA9IG5ldyBDYWNoZWRSZXNvdXJjZUl0ZW07Ci0gICAgICAgIG1fcmVzb3Vy
Y2VzLnNldChyZXNvdXJjZS0+dXJsKCksIGFkb3B0UHRyKG9yaWdpbk1hcCkpOworICAgICAgICBy
ZXNvdXJjZXMuc2V0KHJlc291cmNlLT51cmwoKSwgYWRvcHRQdHIob3JpZ2luTWFwKSk7CiAgICAg
fQogICAgIG9yaWdpbk1hcC0+c2V0KHJlc291cmNlLT5jYWNoZVBhcnRpdGlvbigpLCByZXNvdXJj
ZSk7CiAjZWxzZQotICAgIG1fcmVzb3VyY2VzLnNldChyZXNvdXJjZS0+dXJsKCksIHJlc291cmNl
KTsKKyAgICByZXNvdXJjZXMuc2V0KHJlc291cmNlLT51cmwoKSwgcmVzb3VyY2UpOwogI2VuZGlm
CiAgICAgcmVzb3VyY2UtPnNldEluQ2FjaGUodHJ1ZSk7CiAgICAgCkBAIC0xMzQsMTcgKzE0Nywx
OCBAQCB2b2lkIE1lbW9yeUNhY2hlOjpyZXZhbGlkYXRpb25TdWNjZWVkZWQoQ2FjaGVkUmVzb3Vy
Y2UqIHJldmFsaWRhdGluZ1Jlc291cmNlLCBjbwogCiAgICAgZXZpY3QocmV2YWxpZGF0aW5nUmVz
b3VyY2UpOwogCisgICAgQ2FjaGVkUmVzb3VyY2VNYXAmIHJlc291cmNlcyA9IGdldFNlc3Npb25N
YXAocmVzb3VyY2UtPnNlc3Npb25JRCgpKTsKICNpZiBFTkFCTEUoQ0FDSEVfUEFSVElUSU9OSU5H
KQotICAgIEFTU0VSVCghbV9yZXNvdXJjZXMuZ2V0KHJlc291cmNlLT51cmwoKSkgfHwgIW1fcmVz
b3VyY2VzLmdldChyZXNvdXJjZS0+dXJsKCkpLT5nZXQocmVzb3VyY2UtPmNhY2hlUGFydGl0aW9u
KCkpKTsKLSAgICBDYWNoZWRSZXNvdXJjZUl0ZW0qIG9yaWdpbk1hcCA9IG1fcmVzb3VyY2VzLmdl
dChyZXNvdXJjZS0+dXJsKCkpOworICAgIEFTU0VSVCghcmVzb3VyY2VzLmdldChyZXNvdXJjZS0+
dXJsKCkpIHx8ICFyZXNvdXJjZXMuZ2V0KHJlc291cmNlLT51cmwoKSktPmdldChyZXNvdXJjZS0+
Y2FjaGVQYXJ0aXRpb24oKSkpOworICAgIENhY2hlZFJlc291cmNlSXRlbSogb3JpZ2luTWFwID0g
cmVzb3VyY2VzLmdldChyZXNvdXJjZS0+dXJsKCkpOwogICAgIGlmICghb3JpZ2luTWFwKSB7CiAg
ICAgICAgIG9yaWdpbk1hcCA9IG5ldyBDYWNoZWRSZXNvdXJjZUl0ZW07Ci0gICAgICAgIG1fcmVz
b3VyY2VzLnNldChyZXNvdXJjZS0+dXJsKCksIGFkb3B0UHRyKG9yaWdpbk1hcCkpOworICAgICAg
ICByZXNvdXJjZXMuc2V0KHJlc291cmNlLT51cmwoKSwgYWRvcHRQdHIob3JpZ2luTWFwKSk7CiAg
ICAgfQogICAgIG9yaWdpbk1hcC0+c2V0KHJlc291cmNlLT5jYWNoZVBhcnRpdGlvbigpLCByZXNv
dXJjZSk7CiAjZWxzZQotICAgIEFTU0VSVCghbV9yZXNvdXJjZXMuZ2V0KHJlc291cmNlLT51cmwo
KSkpOwotICAgIG1fcmVzb3VyY2VzLnNldChyZXNvdXJjZS0+dXJsKCksIHJlc291cmNlKTsKKyAg
ICBBU1NFUlQoIXJlc291cmNlcy5nZXQocmVzb3VyY2UtPnVybCgpKSk7CisgICAgcmVzb3VyY2Vz
LnNldChyZXNvdXJjZS0+dXJsKCksIHJlc291cmNlKTsKICNlbmRpZgogICAgIHJlc291cmNlLT5z
ZXRJbkNhY2hlKHRydWUpOwogICAgIHJlc291cmNlLT51cGRhdGVSZXNwb25zZUFmdGVyUmV2YWxp
ZGF0aW9uKHJlc3BvbnNlKTsKQEAgLTE2OSwyMiArMTgzLDI4IEBAIHZvaWQgTWVtb3J5Q2FjaGU6
OnJldmFsaWRhdGlvbkZhaWxlZChDYWNoZWRSZXNvdXJjZSogcmV2YWxpZGF0aW5nUmVzb3VyY2Up
CiAgICAgcmV2YWxpZGF0aW5nUmVzb3VyY2UtPmNsZWFyUmVzb3VyY2VUb1JldmFsaWRhdGUoKTsK
IH0KIAotQ2FjaGVkUmVzb3VyY2UqIE1lbW9yeUNhY2hlOjpyZXNvdXJjZUZvclVSTChjb25zdCBV
UkwmIHJlc291cmNlVVJMKQorQ2FjaGVkUmVzb3VyY2UqIE1lbW9yeUNhY2hlOjpyZXNvdXJjZUZv
clVSTChjb25zdCBVUkwmIHJlc291cmNlVVJMLCB1aW50NjRfdCBzZXNzaW9uSUQpCiB7Ci0gICAg
cmV0dXJuIHJlc291cmNlRm9yUmVxdWVzdChSZXNvdXJjZVJlcXVlc3QocmVzb3VyY2VVUkwpKTsK
KyAgICByZXR1cm4gcmVzb3VyY2VGb3JSZXF1ZXN0KFJlc291cmNlUmVxdWVzdChyZXNvdXJjZVVS
TCksIHNlc3Npb25JRCk7CiB9CiAKLUNhY2hlZFJlc291cmNlKiBNZW1vcnlDYWNoZTo6cmVzb3Vy
Y2VGb3JSZXF1ZXN0KGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCkKK0NhY2hlZFJlc291
cmNlKiBNZW1vcnlDYWNoZTo6cmVzb3VyY2VGb3JSZXF1ZXN0KGNvbnN0IFJlc291cmNlUmVxdWVz
dCYgcmVxdWVzdCwgdWludDY0X3Qgc2Vzc2lvbklEKQoreworICAgIHJldHVybiByZXNvdXJjZUZv
clJlcXVlc3RJbXBsKHJlcXVlc3QsIGdldFNlc3Npb25NYXAoc2Vzc2lvbklEKSk7Cit9CisKK0Nh
Y2hlZFJlc291cmNlKiBNZW1vcnlDYWNoZTo6cmVzb3VyY2VGb3JSZXF1ZXN0SW1wbChjb25zdCBS
ZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIENhY2hlZFJlc291cmNlTWFwJiByZXNvdXJjZXMpCiB7
CiAgICAgQVNTRVJUKFdURjo6aXNNYWluVGhyZWFkKCkpOwogICAgIFVSTCB1cmwgPSByZW1vdmVG
cmFnbWVudElkZW50aWZpZXJJZk5lZWRlZChyZXF1ZXN0LnVybCgpKTsKKwogI2lmIEVOQUJMRShD
QUNIRV9QQVJUSVRJT05JTkcpCi0gICAgQ2FjaGVkUmVzb3VyY2VJdGVtKiBpdGVtID0gbV9yZXNv
dXJjZXMuZ2V0KHVybCk7CisgICAgQ2FjaGVkUmVzb3VyY2VJdGVtKiBpdGVtID0gcmVzb3VyY2Vz
LmdldCh1cmwpOwogICAgIENhY2hlZFJlc291cmNlKiByZXNvdXJjZSA9IDA7CiAgICAgaWYgKGl0
ZW0pCiAgICAgICAgIHJlc291cmNlID0gaXRlbS0+Z2V0KHJlcXVlc3QuY2FjaGVQYXJ0aXRpb24o
KSk7CiAjZWxzZQotICAgIENhY2hlZFJlc291cmNlKiByZXNvdXJjZSA9IG1fcmVzb3VyY2VzLmdl
dCh1cmwpOworICAgIENhY2hlZFJlc291cmNlKiByZXNvdXJjZSA9IHJlc291cmNlcy5nZXQodXJs
KTsKICNlbmRpZgogICAgIGJvb2wgd2FzUHVyZ2VhYmxlID0gTWVtb3J5Q2FjaGU6OnNob3VsZE1h
a2VSZXNvdXJjZVB1cmdlYWJsZU9uRXZpY3Rpb24oKSAmJiByZXNvdXJjZSAmJiByZXNvdXJjZS0+
aXNQdXJnZWFibGUoKTsKICAgICBpZiAocmVzb3VyY2UgJiYgIXJlc291cmNlLT5tYWtlUHVyZ2Vh
YmxlKGZhbHNlKSkgewpAQCAtMjI1LDEzICsyNDUsMTQgQEAgc3RhdGljIENhY2hlZEltYWdlQ2xp
ZW50JiBkdW1teUNhY2hlZEltYWdlQ2xpZW50KCkKIGJvb2wgTWVtb3J5Q2FjaGU6OmFkZEltYWdl
VG9DYWNoZShOYXRpdmVJbWFnZVB0ciBpbWFnZSwgY29uc3QgVVJMJiB1cmwsIGNvbnN0IFN0cmlu
ZyYgY2FjaGVQYXJ0aXRpb24pCiB7CiAgICAgQVNTRVJUKGltYWdlKTsKKyAgICB1aW50NjRfdCBz
ZXNzaW9uSUQgPSBTZXNzaW9uSUQ6OmRlZmF1bHRTZXNzaW9uSUQ7CiAgICAgcmVtb3ZlSW1hZ2VG
cm9tQ2FjaGUodXJsLCBjYWNoZVBhcnRpdGlvbik7IC8vIFJlbW92ZSBjYWNoZSBlbnRyeSBpZiBp
dCBhbHJlYWR5IGV4aXN0cy4KIAogICAgIFJlZlB0cjxCaXRtYXBJbWFnZT4gYml0bWFwSW1hZ2Ug
PSBCaXRtYXBJbWFnZTo6Y3JlYXRlKGltYWdlLCBudWxscHRyKTsKICAgICBpZiAoIWJpdG1hcElt
YWdlKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICBzdGQ6OnVuaXF1ZV9wdHI8Q2FjaGVk
SW1hZ2U+IGNhY2hlZEltYWdlID0gc3RkOjptYWtlX3VuaXF1ZTxDYWNoZWRJbWFnZT4odXJsLCBi
aXRtYXBJbWFnZS5nZXQoKSwgQ2FjaGVkSW1hZ2U6Ok1hbnVhbGx5Q2FjaGVkKTsKKyAgICBzdGQ6
OnVuaXF1ZV9wdHI8Q2FjaGVkSW1hZ2U+IGNhY2hlZEltYWdlID0gc3RkOjptYWtlX3VuaXF1ZTxD
YWNoZWRJbWFnZT4odXJsLCBiaXRtYXBJbWFnZS5nZXQoKSwgQ2FjaGVkSW1hZ2U6Ok1hbnVhbGx5
Q2FjaGVkLCBzZXNzaW9uSUQpOwogCiAgICAgLy8gQWN0dWFsIHJlbGVhc2Ugb2YgdGhlIENHSW1h
Z2VSZWYgaXMgZG9uZSBpbiBCaXRtYXBJbWFnZS4KICAgICBDRlJldGFpbihpbWFnZSk7CkBAIC0y
NDAsMjEgKzI2MSwyMSBAQCBib29sIE1lbW9yeUNhY2hlOjphZGRJbWFnZVRvQ2FjaGUoTmF0aXZl
SW1hZ2VQdHIgaW1hZ2UsIGNvbnN0IFVSTCYgdXJsLCBjb25zdCBTdAogI2lmIEVOQUJMRShDQUNI
RV9QQVJUSVRJT05JTkcpCiAgICAgY2FjaGVkSW1hZ2UtPnJlc291cmNlUmVxdWVzdCgpLnNldENh
Y2hlUGFydGl0aW9uKGNhY2hlUGFydGl0aW9uKTsKICNlbmRpZgotICAgIGFkZChjYWNoZWRJbWFn
ZS5yZWxlYXNlKCkpOwogICAgIHJldHVybiB0cnVlOwogfQogCiB2b2lkIE1lbW9yeUNhY2hlOjpy
ZW1vdmVJbWFnZUZyb21DYWNoZShjb25zdCBVUkwmIHVybCwgY29uc3QgU3RyaW5nJiBjYWNoZVBh
cnRpdGlvbikKIHsKKyAgICBDYWNoZWRSZXNvdXJjZU1hcCYgcmVzb3VyY2VzID0gZ2V0U2Vzc2lv
bk1hcChTZXNzaW9uSUQ6OmRlZmF1bHRTZXNzaW9uSUQpOwogI2lmIEVOQUJMRShDQUNIRV9QQVJU
SVRJT05JTkcpCiAgICAgQ2FjaGVkUmVzb3VyY2UqIHJlc291cmNlOwotICAgIGlmIChDYWNoZWRS
ZXNvdXJjZUl0ZW0qIGl0ZW0gPSBtX3Jlc291cmNlcy5nZXQodXJsKSkKKyAgICBpZiAoQ2FjaGVk
UmVzb3VyY2VJdGVtKiBpdGVtID0gcmVzb3VyY2VzLmdldCh1cmwpKQogICAgICAgICByZXNvdXJj
ZSA9IGl0ZW0tPmdldChSZXNvdXJjZVJlcXVlc3Q6OnBhcnRpdGlvbk5hbWUoY2FjaGVQYXJ0aXRp
b24pKTsKICAgICBlbHNlCiAgICAgICAgIHJlc291cmNlID0gbnVsbHB0cjsKICNlbHNlCiAgICAg
VU5VU0VEX1BBUkFNKGNhY2hlUGFydGl0aW9uKTsKLSAgICBDYWNoZWRSZXNvdXJjZSogcmVzb3Vy
Y2UgPSBtX3Jlc291cmNlcy5nZXQodXJsKTsKKyAgICBDYWNoZWRSZXNvdXJjZSogcmVzb3VyY2Ug
PSByZXNvdXJjZXMuZ2V0KHVybCk7CiAjZW5kaWYKICAgICBpZiAoIXJlc291cmNlKQogICAgICAg
ICByZXR1cm47CkBAIC01MjIsMTcgKzU0MywxOCBAQCB2b2lkIE1lbW9yeUNhY2hlOjpldmljdChD
YWNoZWRSZXNvdXJjZSogcmVzb3VyY2UpCiAgICAgTE9HKFJlc291cmNlTG9hZGluZywgIkV2aWN0
aW5nIHJlc291cmNlICVwIGZvciAnJXMnIGZyb20gY2FjaGUiLCByZXNvdXJjZSwgcmVzb3VyY2Ut
PnVybCgpLnN0cmluZygpLmxhdGluMSgpLmRhdGEoKSk7CiAgICAgLy8gVGhlIHJlc291cmNlIG1h
eSBoYXZlIGFscmVhZHkgYmVlbiByZW1vdmVkIGJ5IHNvbWVvbmUgb3RoZXIgdGhhbiBvdXIgY2Fs
bGVyLAogICAgIC8vIHdobyBuZWVkZWQgYSBmcmVzaCBjb3B5IGZvciBhIHJlbG9hZC4gU2VlIDxo
dHRwOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjQ3OSNjNj4uCisgICAgQ2Fj
aGVkUmVzb3VyY2VNYXAmIHJlc291cmNlcyA9IGdldFNlc3Npb25NYXAocmVzb3VyY2UtPnNlc3Np
b25JRCgpKTsKICAgICBpZiAocmVzb3VyY2UtPmluQ2FjaGUoKSkgewogICAgICAgICAvLyBSZW1v
dmUgZnJvbSB0aGUgcmVzb3VyY2UgbWFwLgogI2lmIEVOQUJMRShDQUNIRV9QQVJUSVRJT05JTkcp
Ci0gICAgICAgIENhY2hlZFJlc291cmNlSXRlbSogaXRlbSA9IG1fcmVzb3VyY2VzLmdldChyZXNv
dXJjZS0+dXJsKCkpOworICAgICAgICBDYWNoZWRSZXNvdXJjZUl0ZW0qIGl0ZW0gPSByZXNvdXJj
ZXMuZ2V0KHJlc291cmNlLT51cmwoKSk7CiAgICAgICAgIGlmIChpdGVtKSB7CiAgICAgICAgICAg
ICBpdGVtLT5yZW1vdmUocmVzb3VyY2UtPmNhY2hlUGFydGl0aW9uKCkpOwogICAgICAgICAgICAg
aWYgKCFpdGVtLT5zaXplKCkpCi0gICAgICAgICAgICAgICAgbV9yZXNvdXJjZXMucmVtb3ZlKHJl
c291cmNlLT51cmwoKSk7CisgICAgICAgICAgICAgICAgcmVzb3VyY2VzLnJlbW92ZShyZXNvdXJj
ZS0+dXJsKCkpOwogICAgICAgICB9CiAjZWxzZQotICAgICAgICBtX3Jlc291cmNlcy5yZW1vdmUo
cmVzb3VyY2UtPnVybCgpKTsKKyAgICAgICAgcmVzb3VyY2VzLnJlbW92ZShyZXNvdXJjZS0+dXJs
KCkpOwogI2VuZGlmCiAgICAgICAgIHJlc291cmNlLT5zZXRJbkNhY2hlKGZhbHNlKTsKIApAQCAt
NTQ3LDkgKzU2OSw5IEBAIHZvaWQgTWVtb3J5Q2FjaGU6OmV2aWN0KENhY2hlZFJlc291cmNlKiBy
ZXNvdXJjZSkKICAgICAgICAgICAgIGFkanVzdFNpemUocmVzb3VyY2UtPmhhc0NsaWVudHMoKSwg
LXN0YXRpY19jYXN0PGludD4ocmVzb3VyY2UtPnNpemUoKSkpOwogICAgIH0gZWxzZQogI2lmIEVO
QUJMRShDQUNIRV9QQVJUSVRJT05JTkcpCi0gICAgICAgIEFTU0VSVCghbV9yZXNvdXJjZXMuZ2V0
KHJlc291cmNlLT51cmwoKSkgfHwgbV9yZXNvdXJjZXMuZ2V0KHJlc291cmNlLT51cmwoKSktPmdl
dChyZXNvdXJjZS0+Y2FjaGVQYXJ0aXRpb24oKSkgIT0gcmVzb3VyY2UpOworICAgICAgICBBU1NF
UlQoIXJlc291cmNlcy5nZXQocmVzb3VyY2UtPnVybCgpKSB8fCByZXNvdXJjZXMuZ2V0KHJlc291
cmNlLT51cmwoKSktPmdldChyZXNvdXJjZS0+Y2FjaGVQYXJ0aXRpb24oKSkgIT0gcmVzb3VyY2Up
OwogI2Vsc2UKLSAgICAgICAgQVNTRVJUKG1fcmVzb3VyY2VzLmdldChyZXNvdXJjZS0+dXJsKCkp
ICE9IHJlc291cmNlKTsKKyAgICAgICAgQVNTRVJUKHJlc291cmNlcy5nZXQocmVzb3VyY2UtPnVy
bCgpKSAhPSByZXNvdXJjZSk7CiAjZW5kaWYKIAogICAgIHJlc291cmNlLT5kZWxldGVJZlBvc3Np
YmxlKCk7CkBAIC02NjksMzEgKzY5MSwzMyBAQCB2b2lkIE1lbW9yeUNhY2hlOjpyZW1vdmVSZXNv
dXJjZXNXaXRoT3JpZ2luKFNlY3VyaXR5T3JpZ2luKiBvcmlnaW4pCiB7CiAgICAgVmVjdG9yPENh
Y2hlZFJlc291cmNlKj4gcmVzb3VyY2VzV2l0aE9yaWdpbjsKIAotICAgIENhY2hlZFJlc291cmNl
TWFwOjppdGVyYXRvciBlID0gbV9yZXNvdXJjZXMuZW5kKCk7CisgICAgZm9yIChhdXRvJiByZXNv
dXJjZXMgOiBtX3Nlc3Npb25SZXNvdXJjZXMpIHsKKyAgICAgICAgQ2FjaGVkUmVzb3VyY2VNYXA6
Oml0ZXJhdG9yIGUgPSByZXNvdXJjZXMudmFsdWUtPmVuZCgpOwogI2lmIEVOQUJMRShDQUNIRV9Q
QVJUSVRJT05JTkcpCi0gICAgU3RyaW5nIG9yaWdpblBhcnRpdGlvbiA9IFJlc291cmNlUmVxdWVz
dDo6cGFydGl0aW9uTmFtZShvcmlnaW4tPmhvc3QoKSk7CisgICAgICAgIFN0cmluZyBvcmlnaW5Q
YXJ0aXRpb24gPSBSZXNvdXJjZVJlcXVlc3Q6OnBhcnRpdGlvbk5hbWUob3JpZ2luLT5ob3N0KCkp
OwogI2VuZGlmCiAKLSAgICBmb3IgKENhY2hlZFJlc291cmNlTWFwOjppdGVyYXRvciBpdCA9IG1f
cmVzb3VyY2VzLmJlZ2luKCk7IGl0ICE9IGU7ICsraXQpIHsKKyAgICAgICAgZm9yIChDYWNoZWRS
ZXNvdXJjZU1hcDo6aXRlcmF0b3IgaXQgPSByZXNvdXJjZXMudmFsdWUtPmJlZ2luKCk7IGl0ICE9
IGU7ICsraXQpIHsKICNpZiBFTkFCTEUoQ0FDSEVfUEFSVElUSU9OSU5HKQotICAgICAgICBmb3Ig
KENhY2hlZFJlc291cmNlSXRlbTo6aXRlcmF0b3IgaXRlbUl0ZXJhdG9yID0gaXQtPnZhbHVlLT5i
ZWdpbigpOyBpdGVtSXRlcmF0b3IgIT0gaXQtPnZhbHVlLT5lbmQoKTsgKytpdGVtSXRlcmF0b3Ip
IHsKLSAgICAgICAgICAgIENhY2hlZFJlc291cmNlKiByZXNvdXJjZSA9IGl0ZW1JdGVyYXRvci0+
dmFsdWU7Ci0gICAgICAgICAgICBTdHJpbmcgcGFydGl0aW9uID0gaXRlbUl0ZXJhdG9yLT5rZXk7
Ci0gICAgICAgICAgICBpZiAocGFydGl0aW9uID09IG9yaWdpblBhcnRpdGlvbikgewotICAgICAg
ICAgICAgICAgIHJlc291cmNlc1dpdGhPcmlnaW4uYXBwZW5kKHJlc291cmNlKTsKLSAgICAgICAg
ICAgICAgICBjb250aW51ZTsKLSAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGZvciAoQ2FjaGVk
UmVzb3VyY2VJdGVtOjppdGVyYXRvciBpdGVtSXRlcmF0b3IgPSBpdC0+dmFsdWUtPmJlZ2luKCk7
IGl0ZW1JdGVyYXRvciAhPSBpdC0+dmFsdWUtPmVuZCgpOyArK2l0ZW1JdGVyYXRvcikgeworICAg
ICAgICAgICAgICAgIENhY2hlZFJlc291cmNlKiByZXNvdXJjZSA9IGl0ZW1JdGVyYXRvci0+dmFs
dWU7CisgICAgICAgICAgICAgICAgU3RyaW5nIHBhcnRpdGlvbiA9IGl0ZW1JdGVyYXRvci0+a2V5
OworICAgICAgICAgICAgICAgIGlmIChwYXJ0aXRpb24gPT0gb3JpZ2luUGFydGl0aW9uKSB7Cisg
ICAgICAgICAgICAgICAgICAgIHJlc291cmNlc1dpdGhPcmlnaW4uYXBwZW5kKHJlc291cmNlKTsK
KyAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICAgICAgfQogI2Vsc2UK
LSAgICAgICAgICAgIENhY2hlZFJlc291cmNlKiByZXNvdXJjZSA9IGl0LT52YWx1ZTsKKyAgICAg
ICAgICAgICAgICBDYWNoZWRSZXNvdXJjZSogcmVzb3VyY2UgPSBpdC0+dmFsdWU7CiAjZW5kaWYK
LSAgICAgICAgICAgIFJlZlB0cjxTZWN1cml0eU9yaWdpbj4gcmVzb3VyY2VPcmlnaW4gPSBTZWN1
cml0eU9yaWdpbjo6Y3JlYXRlRnJvbVN0cmluZyhyZXNvdXJjZS0+dXJsKCkpOwotICAgICAgICAg
ICAgaWYgKCFyZXNvdXJjZU9yaWdpbikKLSAgICAgICAgICAgICAgICBjb250aW51ZTsKLSAgICAg
ICAgICAgIGlmIChyZXNvdXJjZU9yaWdpbi0+ZXF1YWwob3JpZ2luKSkKLSAgICAgICAgICAgICAg
ICByZXNvdXJjZXNXaXRoT3JpZ2luLmFwcGVuZChyZXNvdXJjZSk7CisgICAgICAgICAgICAgICAg
UmVmUHRyPFNlY3VyaXR5T3JpZ2luPiByZXNvdXJjZU9yaWdpbiA9IFNlY3VyaXR5T3JpZ2luOjpj
cmVhdGVGcm9tU3RyaW5nKHJlc291cmNlLT51cmwoKSk7CisgICAgICAgICAgICAgICAgaWYgKCFy
ZXNvdXJjZU9yaWdpbikKKyAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAg
ICAgICAgaWYgKHJlc291cmNlT3JpZ2luLT5lcXVhbChvcmlnaW4pKQorICAgICAgICAgICAgICAg
ICAgICByZXNvdXJjZXNXaXRoT3JpZ2luLmFwcGVuZChyZXNvdXJjZSk7CiAjaWYgRU5BQkxFKENB
Q0hFX1BBUlRJVElPTklORykKLSAgICAgICAgfQorICAgICAgICAgICAgfQogI2VuZGlmCisgICAg
ICAgIH0KICAgICB9CiAKICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHJlc291cmNlc1dpdGhP
cmlnaW4uc2l6ZSgpOyArK2kpCkBAIC03MDUsMTYgKzcyOSwxOCBAQCB2b2lkIE1lbW9yeUNhY2hl
OjpnZXRPcmlnaW5zV2l0aENhY2hlKFNlY3VyaXR5T3JpZ2luU2V0JiBvcmlnaW5zKQogI2lmIEVO
QUJMRShDQUNIRV9QQVJUSVRJT05JTkcpCiAgICAgREVGSU5FX1NUQVRJQ19MT0NBTChTdHJpbmcs
IGh0dHBTdHJpbmcsICgiaHR0cCIpKTsKICNlbmRpZgotICAgIENhY2hlZFJlc291cmNlTWFwOjpp
dGVyYXRvciBlID0gbV9yZXNvdXJjZXMuZW5kKCk7Ci0gICAgZm9yIChDYWNoZWRSZXNvdXJjZU1h
cDo6aXRlcmF0b3IgaXQgPSBtX3Jlc291cmNlcy5iZWdpbigpOyBpdCAhPSBlOyArK2l0KSB7Cisg
ICAgZm9yIChhdXRvJiByZXNvdXJjZXMgOiBtX3Nlc3Npb25SZXNvdXJjZXMpIHsKKyAgICAgICAg
Q2FjaGVkUmVzb3VyY2VNYXA6Oml0ZXJhdG9yIGUgPSByZXNvdXJjZXMudmFsdWUtPmVuZCgpOwor
ICAgICAgICBmb3IgKENhY2hlZFJlc291cmNlTWFwOjppdGVyYXRvciBpdCA9IHJlc291cmNlcy52
YWx1ZS0+YmVnaW4oKTsgaXQgIT0gZTsgKytpdCkgewogI2lmIEVOQUJMRShDQUNIRV9QQVJUSVRJ
T05JTkcpCi0gICAgICAgIGlmIChpdC0+dmFsdWUtPmJlZ2luKCktPmtleSA9PSBlbXB0eVN0cmlu
ZygpKQotICAgICAgICAgICAgb3JpZ2lucy5hZGQoU2VjdXJpdHlPcmlnaW46OmNyZWF0ZUZyb21T
dHJpbmcoaXQtPnZhbHVlLT5iZWdpbigpLT52YWx1ZS0+dXJsKCkpKTsKLSAgICAgICAgZWxzZQot
ICAgICAgICAgICAgb3JpZ2lucy5hZGQoU2VjdXJpdHlPcmlnaW46OmNyZWF0ZShodHRwU3RyaW5n
LCBpdC0+dmFsdWUtPmJlZ2luKCktPmtleSwgMCkpOworICAgICAgICAgICAgaWYgKGl0LT52YWx1
ZS0+YmVnaW4oKS0+a2V5ID09IGVtcHR5U3RyaW5nKCkpCisgICAgICAgICAgICAgICAgb3JpZ2lu
cy5hZGQoU2VjdXJpdHlPcmlnaW46OmNyZWF0ZUZyb21TdHJpbmcoaXQtPnZhbHVlLT5iZWdpbigp
LT52YWx1ZS0+dXJsKCkpKTsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBvcmln
aW5zLmFkZChTZWN1cml0eU9yaWdpbjo6Y3JlYXRlKGh0dHBTdHJpbmcsIGl0LT52YWx1ZS0+YmVn
aW4oKS0+a2V5LCAwKSk7CiAjZWxzZQotICAgICAgICBvcmlnaW5zLmFkZChTZWN1cml0eU9yaWdp
bjo6Y3JlYXRlRnJvbVN0cmluZyhpdC0+dmFsdWUtPnVybCgpKSk7CisgICAgICAgICAgICBvcmln
aW5zLmFkZChTZWN1cml0eU9yaWdpbjo6Y3JlYXRlRnJvbVN0cmluZyhpdC0+dmFsdWUtPnVybCgp
KSk7CiAjZW5kaWYKKyAgICAgICAgfQogICAgIH0KIH0KIApAQCAtODA4LDMxICs4MzQsMzkgQEAg
dm9pZCBNZW1vcnlDYWNoZTo6YWRqdXN0U2l6ZShib29sIGxpdmUsIGludCBkZWx0YSkKICAgICB9
CiB9CiAKLXZvaWQgTWVtb3J5Q2FjaGU6OnJlbW92ZVVybEZyb21DYWNoZShTY3JpcHRFeGVjdXRp
b25Db250ZXh0KiBjb250ZXh0LCBjb25zdCBTdHJpbmcmIHVybFN0cmluZykKK3ZvaWQgTWVtb3J5
Q2FjaGU6OnJlbW92ZVVybEZyb21DYWNoZShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0
LCBjb25zdCBTdHJpbmcmIHVybFN0cmluZywgdWludDY0X3Qgc2Vzc2lvbklEKQogewotICAgIHJl
bW92ZVJlcXVlc3RGcm9tQ2FjaGUoY29udGV4dCwgUmVzb3VyY2VSZXF1ZXN0KHVybFN0cmluZykp
OworICAgIHJlbW92ZVJlcXVlc3RGcm9tQ2FjaGUoY29udGV4dCwgUmVzb3VyY2VSZXF1ZXN0KHVy
bFN0cmluZyksIHNlc3Npb25JRCk7CiB9CiAKLXZvaWQgTWVtb3J5Q2FjaGU6OnJlbW92ZVJlcXVl
c3RGcm9tQ2FjaGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgY29uc3QgUmVzb3Vy
Y2VSZXF1ZXN0JiByZXF1ZXN0KQordm9pZCBNZW1vcnlDYWNoZTo6cmVtb3ZlUmVxdWVzdEZyb21D
YWNoZShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBjb25zdCBSZXNvdXJjZVJlcXVl
c3QmIHJlcXVlc3QsIHVpbnQ2NF90IHNlc3Npb25JRCkKIHsKICAgICBpZiAoY29udGV4dC0+aXNX
b3JrZXJHbG9iYWxTY29wZSgpKSB7Ci0gICAgICAgIHRvV29ya2VyR2xvYmFsU2NvcGUoY29udGV4
dCktPnRocmVhZCgpLndvcmtlckxvYWRlclByb3h5KCkucG9zdFRhc2tUb0xvYWRlcihjcmVhdGVD
YWxsYmFja1Rhc2soJmNyb3NzVGhyZWFkUmVtb3ZlUmVxdWVzdEZyb21DYWNoZSwgcmVxdWVzdCkp
OworICAgICAgICB0b1dvcmtlckdsb2JhbFNjb3BlKGNvbnRleHQpLT50aHJlYWQoKS53b3JrZXJM
b2FkZXJQcm94eSgpLnBvc3RUYXNrVG9Mb2FkZXIoY3JlYXRlQ2FsbGJhY2tUYXNrKCZjcm9zc1Ro
cmVhZFJlbW92ZVJlcXVlc3RGcm9tQ2FjaGUsIHJlcXVlc3QsIHNlc3Npb25JRCkpOwogICAgICAg
ICByZXR1cm47CiAgICAgfQogCi0gICAgcmVtb3ZlUmVxdWVzdEZyb21DYWNoZUltcGwoY29udGV4
dCwgcmVxdWVzdCk7CisgICAgcmVtb3ZlUmVxdWVzdEZyb21DYWNoZUltcGwoY29udGV4dCwgcmVx
dWVzdCwgc2Vzc2lvbklEKTsKK30KKwordm9pZCBNZW1vcnlDYWNoZTo6cmVtb3ZlUmVxdWVzdEZy
b21DYWNoZUltcGwoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIGNvbnN0IFJlc291cmNlUmVxdWVz
dCYgcmVxdWVzdCwgdWludDY0X3Qgc2Vzc2lvbklEKQoreworICAgIGlmIChDYWNoZWRSZXNvdXJj
ZSogcmVzb3VyY2UgPSBtZW1vcnlDYWNoZSgpLT5yZXNvdXJjZUZvclJlcXVlc3QocmVxdWVzdCwg
c2Vzc2lvbklEKSkKKyAgICAgICAgbWVtb3J5Q2FjaGUoKS0+cmVtb3ZlKHJlc291cmNlKTsKIH0K
IAotdm9pZCBNZW1vcnlDYWNoZTo6cmVtb3ZlUmVxdWVzdEZyb21DYWNoZUltcGwoU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCosIGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCkKK3ZvaWQgTWVt
b3J5Q2FjaGU6OnJlbW92ZVJlcXVlc3RGcm9tU2Vzc2lvbkNhY2hlcyhTY3JpcHRFeGVjdXRpb25D
b250ZXh0KiwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0KQogewotICAgIGlmIChDYWNo
ZWRSZXNvdXJjZSogcmVzb3VyY2UgPSBtZW1vcnlDYWNoZSgpLT5yZXNvdXJjZUZvclJlcXVlc3Qo
cmVxdWVzdCkpCisgICAgZm9yIChhdXRvJiByZXNvdXJjZXMgOiBtZW1vcnlDYWNoZSgpLT5tX3Nl
c3Npb25SZXNvdXJjZXMpIHsKKyAgICAgICAgaWYgKENhY2hlZFJlc291cmNlKiByZXNvdXJjZSA9
IG1lbW9yeUNhY2hlKCktPnJlc291cmNlRm9yUmVxdWVzdEltcGwocmVxdWVzdCwgKnJlc291cmNl
cy52YWx1ZSkpCiAgICAgICAgIG1lbW9yeUNhY2hlKCktPnJlbW92ZShyZXNvdXJjZSk7CisgICAg
fQogfQogCi12b2lkIE1lbW9yeUNhY2hlOjpjcm9zc1RocmVhZFJlbW92ZVJlcXVlc3RGcm9tQ2Fj
aGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgUGFzc093blB0cjxXZWJDb3JlOjpD
cm9zc1RocmVhZFJlc291cmNlUmVxdWVzdERhdGE+IHJlcXVlc3REYXRhKQordm9pZCBNZW1vcnlD
YWNoZTo6Y3Jvc3NUaHJlYWRSZW1vdmVSZXF1ZXN0RnJvbUNhY2hlKFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQqIGNvbnRleHQsIFBhc3NPd25QdHI8V2ViQ29yZTo6Q3Jvc3NUaHJlYWRSZXNvdXJjZVJl
cXVlc3REYXRhPiByZXF1ZXN0RGF0YSwgdWludDY0X3Qgc2Vzc2lvbklEKQogewogICAgIE93blB0
cjxSZXNvdXJjZVJlcXVlc3Q+IHJlcXVlc3QoUmVzb3VyY2VSZXF1ZXN0OjphZG9wdChyZXF1ZXN0
RGF0YSkpOwotICAgIE1lbW9yeUNhY2hlOjpyZW1vdmVSZXF1ZXN0RnJvbUNhY2hlSW1wbChjb250
ZXh0LCAqcmVxdWVzdCk7CisgICAgTWVtb3J5Q2FjaGU6OnJlbW92ZVJlcXVlc3RGcm9tQ2FjaGVJ
bXBsKGNvbnRleHQsICpyZXF1ZXN0LCBzZXNzaW9uSUQpOwogfQogCiB2b2lkIE1lbW9yeUNhY2hl
OjpUeXBlU3RhdGlzdGljOjphZGRSZXNvdXJjZShDYWNoZWRSZXNvdXJjZSogbykKQEAgLTg1NSwz
OCArODg5LDQxIEBAIHZvaWQgTWVtb3J5Q2FjaGU6OlR5cGVTdGF0aXN0aWM6OmFkZFJlc291cmNl
KENhY2hlZFJlc291cmNlKiBvKQogTWVtb3J5Q2FjaGU6OlN0YXRpc3RpY3MgTWVtb3J5Q2FjaGU6
OmdldFN0YXRpc3RpY3MoKQogewogICAgIFN0YXRpc3RpY3Mgc3RhdHM7Ci0gICAgQ2FjaGVkUmVz
b3VyY2VNYXA6Oml0ZXJhdG9yIGUgPSBtX3Jlc291cmNlcy5lbmQoKTsKLSAgICBmb3IgKENhY2hl
ZFJlc291cmNlTWFwOjppdGVyYXRvciBpID0gbV9yZXNvdXJjZXMuYmVnaW4oKTsgaSAhPSBlOyAr
K2kpIHsKKworICAgIGZvciAoYXV0byAmcmVzb3VyY2VzIDogbV9zZXNzaW9uUmVzb3VyY2VzKSB7
CisgICAgICAgIENhY2hlZFJlc291cmNlTWFwOjppdGVyYXRvciBlID0gcmVzb3VyY2VzLnZhbHVl
LT5lbmQoKTsKKyAgICAgICAgZm9yIChDYWNoZWRSZXNvdXJjZU1hcDo6aXRlcmF0b3IgaSA9IHJl
c291cmNlcy52YWx1ZS0+YmVnaW4oKTsgaSAhPSBlOyArK2kpIHsKICNpZiBFTkFCTEUoQ0FDSEVf
UEFSVElUSU9OSU5HKQotICAgICAgICBmb3IgKENhY2hlZFJlc291cmNlSXRlbTo6aXRlcmF0b3Ig
aXRlbUl0ZXJhdG9yID0gaS0+dmFsdWUtPmJlZ2luKCk7IGl0ZW1JdGVyYXRvciAhPSBpLT52YWx1
ZS0+ZW5kKCk7ICsraXRlbUl0ZXJhdG9yKSB7Ci0gICAgICAgICAgICBDYWNoZWRSZXNvdXJjZSog
cmVzb3VyY2UgPSBpdGVtSXRlcmF0b3ItPnZhbHVlOworICAgICAgICAgICAgZm9yIChDYWNoZWRS
ZXNvdXJjZUl0ZW06Oml0ZXJhdG9yIGl0ZW1JdGVyYXRvciA9IGktPnZhbHVlLT5iZWdpbigpOyBp
dGVtSXRlcmF0b3IgIT0gaS0+dmFsdWUtPmVuZCgpOyArK2l0ZW1JdGVyYXRvcikgeworICAgICAg
ICAgICAgICAgIENhY2hlZFJlc291cmNlKiByZXNvdXJjZSA9IGl0ZW1JdGVyYXRvci0+dmFsdWU7
CiAjZWxzZQotICAgICAgICAgICAgQ2FjaGVkUmVzb3VyY2UqIHJlc291cmNlID0gaS0+dmFsdWU7
CisgICAgICAgICAgICAgICAgQ2FjaGVkUmVzb3VyY2UqIHJlc291cmNlID0gaS0+dmFsdWU7CiAj
ZW5kaWYKLSAgICAgICAgICAgIHN3aXRjaCAocmVzb3VyY2UtPnR5cGUoKSkgewotICAgICAgICAg
ICAgY2FzZSBDYWNoZWRSZXNvdXJjZTo6SW1hZ2VSZXNvdXJjZToKLSAgICAgICAgICAgICAgICBz
dGF0cy5pbWFnZXMuYWRkUmVzb3VyY2UocmVzb3VyY2UpOwotICAgICAgICAgICAgICAgIGJyZWFr
OwotICAgICAgICAgICAgY2FzZSBDYWNoZWRSZXNvdXJjZTo6Q1NTU3R5bGVTaGVldDoKLSAgICAg
ICAgICAgICAgICBzdGF0cy5jc3NTdHlsZVNoZWV0cy5hZGRSZXNvdXJjZShyZXNvdXJjZSk7Ci0g
ICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICBjYXNlIENhY2hlZFJlc291cmNlOjpT
Y3JpcHQ6Ci0gICAgICAgICAgICAgICAgc3RhdHMuc2NyaXB0cy5hZGRSZXNvdXJjZShyZXNvdXJj
ZSk7Ci0gICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgc3dpdGNoIChyZXNv
dXJjZS0+dHlwZSgpKSB7CisgICAgICAgICAgICAgICAgY2FzZSBDYWNoZWRSZXNvdXJjZTo6SW1h
Z2VSZXNvdXJjZToKKyAgICAgICAgICAgICAgICAgICAgc3RhdHMuaW1hZ2VzLmFkZFJlc291cmNl
KHJlc291cmNlKTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAg
Y2FzZSBDYWNoZWRSZXNvdXJjZTo6Q1NTU3R5bGVTaGVldDoKKyAgICAgICAgICAgICAgICAgICAg
c3RhdHMuY3NzU3R5bGVTaGVldHMuYWRkUmVzb3VyY2UocmVzb3VyY2UpOworICAgICAgICAgICAg
ICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICBjYXNlIENhY2hlZFJlc291cmNlOjpTY3Jp
cHQ6CisgICAgICAgICAgICAgICAgICAgIHN0YXRzLnNjcmlwdHMuYWRkUmVzb3VyY2UocmVzb3Vy
Y2UpOworICAgICAgICAgICAgICAgICAgICBicmVhazsKICNpZiBFTkFCTEUoWFNMVCkKLSAgICAg
ICAgICAgIGNhc2UgQ2FjaGVkUmVzb3VyY2U6OlhTTFN0eWxlU2hlZXQ6Ci0gICAgICAgICAgICAg
ICAgc3RhdHMueHNsU3R5bGVTaGVldHMuYWRkUmVzb3VyY2UocmVzb3VyY2UpOwotICAgICAgICAg
ICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIGNhc2UgQ2FjaGVkUmVzb3VyY2U6OlhTTFN0
eWxlU2hlZXQ6CisgICAgICAgICAgICAgICAgICAgIHN0YXRzLnhzbFN0eWxlU2hlZXRzLmFkZFJl
c291cmNlKHJlc291cmNlKTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAjZW5kaWYKLSAg
ICAgICAgICAgIGNhc2UgQ2FjaGVkUmVzb3VyY2U6OkZvbnRSZXNvdXJjZToKLSAgICAgICAgICAg
ICAgICBzdGF0cy5mb250cy5hZGRSZXNvdXJjZShyZXNvdXJjZSk7Ci0gICAgICAgICAgICAgICAg
YnJlYWs7Ci0gICAgICAgICAgICBkZWZhdWx0OgotICAgICAgICAgICAgICAgIGJyZWFrOwotICAg
ICAgICAgICAgfQorICAgICAgICAgICAgICAgIGNhc2UgQ2FjaGVkUmVzb3VyY2U6OkZvbnRSZXNv
dXJjZToKKyAgICAgICAgICAgICAgICAgICAgc3RhdHMuZm9udHMuYWRkUmVzb3VyY2UocmVzb3Vy
Y2UpOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICBkZWZhdWx0
OgorICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9CiAjaWYgRU5B
QkxFKENBQ0hFX1BBUlRJVElPTklORykKLSAgICAgICAgfQorICAgICAgICAgICAgfQogI2VuZGlm
CisgICAgICAgIH0KICAgICB9CiAgICAgcmV0dXJuIHN0YXRzOwogfQpAQCAtODk4LDggKzkzNSwx
MSBAQCB2b2lkIE1lbW9yeUNhY2hlOjpzZXREaXNhYmxlZChib29sIGRpc2FibGVkKQogICAgICAg
ICByZXR1cm47CiAKICAgICBmb3IgKDs7KSB7Ci0gICAgICAgIENhY2hlZFJlc291cmNlTWFwOjpp
dGVyYXRvciBvdXRlckl0ZXJhdG9yID0gbV9yZXNvdXJjZXMuYmVnaW4oKTsKLSAgICAgICAgaWYg
KG91dGVySXRlcmF0b3IgPT0gbV9yZXNvdXJjZXMuZW5kKCkpCisgICAgICAgIFNlc3Npb25DYWNo
ZWRSZXNvdXJjZU1hcDo6aXRlcmF0b3Igc2Vzc2lvbkl0ZXJhdG9yID0gbV9zZXNzaW9uUmVzb3Vy
Y2VzLmJlZ2luKCk7CisgICAgICAgIGlmIChzZXNzaW9uSXRlcmF0b3IgPT0gbV9zZXNzaW9uUmVz
b3VyY2VzLmVuZCgpKQorICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIENhY2hlZFJlc291cmNl
TWFwOjppdGVyYXRvciBvdXRlckl0ZXJhdG9yID0gc2Vzc2lvbkl0ZXJhdG9yLT52YWx1ZS0+YmVn
aW4oKTsKKyAgICAgICAgaWYgKG91dGVySXRlcmF0b3IgPT0gc2Vzc2lvbkl0ZXJhdG9yLT52YWx1
ZS0+ZW5kKCkpCiAgICAgICAgICAgICBicmVhazsKICNpZiBFTkFCTEUoQ0FDSEVfUEFSVElUSU9O
SU5HKQogICAgICAgICBDYWNoZWRSZXNvdXJjZUl0ZW06Oml0ZXJhdG9yIGlubmVySXRlcmF0b3Ig
PSBvdXRlckl0ZXJhdG9yLT52YWx1ZS0+YmVnaW4oKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9jYWNoZS9NZW1vcnlDYWNoZS5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2Nh
Y2hlL01lbW9yeUNhY2hlLmgKaW5kZXggYzAyM2E5Ny4uMGRmZDM1ZCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL01lbW9yeUNhY2hlLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvbG9hZGVyL2NhY2hlL01lbW9yeUNhY2hlLmgKQEAgLTg3LDYgKzg3LDcgQEAgcHVibGljOgog
I2Vsc2UKICAgICB0eXBlZGVmIEhhc2hNYXA8U3RyaW5nLCBDYWNoZWRSZXNvdXJjZSo+IENhY2hl
ZFJlc291cmNlTWFwOwogI2VuZGlmCisgICAgdHlwZWRlZiBIYXNoTWFwPHVpbnQ2NF90LCBzdGQ6
OnVuaXF1ZV9wdHI8Q2FjaGVkUmVzb3VyY2VNYXA+PiBTZXNzaW9uQ2FjaGVkUmVzb3VyY2VNYXA7
CiAKICAgICBzdHJ1Y3QgTFJVTGlzdCB7CiAgICAgICAgIENhY2hlZFJlc291cmNlKiBtX2hlYWQ7
CkBAIC0xMTgsMTAgKzExOSwxMCBAQCBwdWJsaWM6CiAgICAgICAgIFR5cGVTdGF0aXN0aWMgZm9u
dHM7CiAgICAgfTsKIAotICAgIENhY2hlZFJlc291cmNlKiByZXNvdXJjZUZvclVSTChjb25zdCBV
UkwmKTsKLSAgICBDYWNoZWRSZXNvdXJjZSogcmVzb3VyY2VGb3JSZXF1ZXN0KGNvbnN0IFJlc291
cmNlUmVxdWVzdCYpOwotICAgIAotICAgIGJvb2wgYWRkKENhY2hlZFJlc291cmNlKiByZXNvdXJj
ZSk7CisgICAgQ2FjaGVkUmVzb3VyY2UqIHJlc291cmNlRm9yVVJMKGNvbnN0IFVSTCYsIHVpbnQ2
NF90IHNlc3Npb25JRCk7CisgICAgQ2FjaGVkUmVzb3VyY2UqIHJlc291cmNlRm9yUmVxdWVzdChj
b25zdCBSZXNvdXJjZVJlcXVlc3QmLCB1aW50NjRfdCBzZXNzaW9uSUQpOworCisgICAgYm9vbCBh
ZGQoQ2FjaGVkUmVzb3VyY2UqKTsKICAgICB2b2lkIHJlbW92ZShDYWNoZWRSZXNvdXJjZSogcmVz
b3VyY2UpIHsgZXZpY3QocmVzb3VyY2UpOyB9CiAKICAgICBzdGF0aWMgVVJMIHJlbW92ZUZyYWdt
ZW50SWRlbnRpZmllcklmTmVlZGVkKGNvbnN0IFVSTCYgb3JpZ2luYWxVUkwpOwpAQCAtMTcwLDgg
KzE3MSw5IEBAIHB1YmxpYzoKICAgICB2b2lkIGZsdXNoQ2FjaGVkSW1hZ2VzVG9EaXNrKCk7IC8v
IEZsdXNoIGVuY29kZWQgZGF0YSBmcm9tIHJlc291cmNlcyBzdGlsbCByZWZlcmVuY2VkIGJ5IHdl
YiBwYWdlcy4KICNlbmRpZgogCi0gICAgc3RhdGljIHZvaWQgcmVtb3ZlVXJsRnJvbUNhY2hlKFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBjb25zdCBTdHJpbmcmIHVybFN0cmluZyk7Ci0gICAgc3Rh
dGljIHZvaWQgcmVtb3ZlUmVxdWVzdEZyb21DYWNoZShTY3JpcHRFeGVjdXRpb25Db250ZXh0Kiwg
Y29uc3QgUmVzb3VyY2VSZXF1ZXN0Jik7CisgICAgc3RhdGljIHZvaWQgcmVtb3ZlVXJsRnJvbUNh
Y2hlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBjb25zdCBTdHJpbmcmIHVybFN0cmluZywgdWlu
dDY0X3Qgc2Vzc2lvbklEKTsKKyAgICBzdGF0aWMgdm9pZCByZW1vdmVSZXF1ZXN0RnJvbUNhY2hl
KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCB1aW50NjRf
dCBzZXNzaW9uSUQpOworICAgIHN0YXRpYyB2b2lkIHJlbW92ZVJlcXVlc3RGcm9tU2Vzc2lvbkNh
Y2hlcyhTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0Jik7CiAK
ICAgICAvLyBGdW5jdGlvbiB0byBjb2xsZWN0IGNhY2hlIHN0YXRpc3RpY3MgZm9yIHRoZSBjYWNo
ZXMgd2luZG93IGluIHRoZSBTYWZhcmkgRGVidWcgbWVudS4KICAgICBTdGF0aXN0aWNzIGdldFN0
YXRpc3RpY3MoKTsKQEAgLTIyMSw4ICsyMjMsMTEgQEAgcHJpdmF0ZToKICAgICBib29sIG1ha2VS
ZXNvdXJjZVB1cmdlYWJsZShDYWNoZWRSZXNvdXJjZSopOwogICAgIHZvaWQgZXZpY3QoQ2FjaGVk
UmVzb3VyY2UqKTsKIAotICAgIHN0YXRpYyB2b2lkIHJlbW92ZVJlcXVlc3RGcm9tQ2FjaGVJbXBs
KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmKTsKLSAgICBz
dGF0aWMgdm9pZCBjcm9zc1RocmVhZFJlbW92ZVJlcXVlc3RGcm9tQ2FjaGUoU2NyaXB0RXhlY3V0
aW9uQ29udGV4dCosIFBhc3NPd25QdHI8Q3Jvc3NUaHJlYWRSZXNvdXJjZVJlcXVlc3REYXRhPik7
CisgICAgQ2FjaGVkUmVzb3VyY2UqIHJlc291cmNlRm9yUmVxdWVzdEltcGwoY29uc3QgUmVzb3Vy
Y2VSZXF1ZXN0JiwgQ2FjaGVkUmVzb3VyY2VNYXAmKTsKKyAgICBzdGF0aWMgdm9pZCByZW1vdmVS
ZXF1ZXN0RnJvbUNhY2hlSW1wbChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgY29uc3QgUmVzb3Vy
Y2VSZXF1ZXN0JiwgdWludDY0X3Qgc2Vzc2lvbklEKTsKKyAgICBzdGF0aWMgdm9pZCBjcm9zc1Ro
cmVhZFJlbW92ZVJlcXVlc3RGcm9tQ2FjaGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIFBhc3NP
d25QdHI8Q3Jvc3NUaHJlYWRSZXNvdXJjZVJlcXVlc3REYXRhPiwgdWludDY0X3Qgc2Vzc2lvbklE
KTsKKworICAgIENhY2hlZFJlc291cmNlTWFwJiBnZXRTZXNzaW9uTWFwKHVpbnQ2NF90IHNlc3Np
b25JRCk7CiAKICAgICBib29sIG1fZGlzYWJsZWQ7ICAvLyBXaGV0aGVyIG9yIG5vdCB0aGUgY2Fj
aGUgaXMgZW5hYmxlZC4KICAgICBib29sIG1fcHJ1bmVFbmFibGVkOwpAQCAtMjQ2LDcgKzI1MSw3
IEBAIHByaXZhdGU6CiAgICAgCiAgICAgLy8gQSBVUkwtYmFzZWQgbWFwIG9mIGFsbCByZXNvdXJj
ZXMgdGhhdCBhcmUgaW4gdGhlIGNhY2hlIChpbmNsdWRpbmcgdGhlIGZyZXNoZXN0IHZlcnNpb24g
b2Ygb2JqZWN0cyB0aGF0IGFyZSBjdXJyZW50bHkgYmVpbmcgCiAgICAgLy8gcmVmZXJlbmNlZCBi
eSBhIFdlYiBwYWdlKS4KLSAgICBDYWNoZWRSZXNvdXJjZU1hcCBtX3Jlc291cmNlczsKKyAgICBT
ZXNzaW9uQ2FjaGVkUmVzb3VyY2VNYXAgbV9zZXNzaW9uUmVzb3VyY2VzOwogfTsKIAogaW5saW5l
IGJvb2wgTWVtb3J5Q2FjaGU6OnNob3VsZE1ha2VSZXNvdXJjZVB1cmdlYWJsZU9uRXZpY3Rpb24o
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvUGFnZS5jcHAKaW5kZXggY2E1MjU3OS4uZTVjMWI2MiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2Uu
Y3BwCkBAIC03NSw2ICs3NSw3IEBACiAjaW5jbHVkZSAiU2NoZW1lUmVnaXN0cnkuaCIKICNpbmNs
dWRlICJTY3JpcHRDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAiU2Nyb2xsaW5nQ29vcmRpbmF0b3Iu
aCIKKyNpbmNsdWRlICJTZXNzaW9uSUQuaCIKICNpbmNsdWRlICJTZXR0aW5ncy5oIgogI2luY2x1
ZGUgIlNoYXJlZEJ1ZmZlci5oIgogI2luY2x1ZGUgIlN0b3JhZ2VBcmVhLmgiCkBAIC0xOTEsNiAr
MTkyLDcgQEAgUGFnZTo6UGFnZShQYWdlQ2xpZW50cyYgcGFnZUNsaWVudHMpCiAjZW5kaWYKICAg
ICAsIG1fbGFzdFNwYXRpYWxOYXZpZ2F0aW9uQ2FuZGlkYXRlc0NvdW50KDApIC8vIE5PVEU6IE9u
bHkgY2FsbGVkIGZyb20gSW50ZXJuYWxzIGZvciBTcGF0aWFsIE5hdmlnYXRpb24gdGVzdGluZy4K
ICAgICAsIG1fZnJhbWVzSGFuZGxpbmdCZWZvcmVVbmxvYWRFdmVudCgwKQorICAgICwgbV9zZXNz
aW9uSUQoMCkKIHsKICAgICBBU1NFUlQobV9lZGl0b3JDbGllbnQpOwogCkBAIC0xNTAzLDYgKzE1
MDUsMTEgQEAgdm9pZCBQYWdlOjpzZXRVc2VyQ29udGVudENvbnRyb2xsZXIoVXNlckNvbnRlbnRD
b250cm9sbGVyKiB1c2VyQ29udGVudENvbnRyb2xsZXIKICAgICAgICAgbV91c2VyQ29udGVudENv
bnRyb2xsZXItPmFkZFBhZ2UoKnRoaXMpOwogfQogCit1aW50NjRfdCBQYWdlOjpzZXNzaW9uSUQo
KSBjb25zdAoreworICAgIHJldHVybiBtX3Nlc3Npb25JRCA/IG1fc2Vzc2lvbklEIDogc2V0dGlu
Z3MoKS5wcml2YXRlQnJvd3NpbmdFbmFibGVkKCkgPyBTZXNzaW9uSUQ6OmxlZ2FjeVByaXZhdGVT
ZXNzaW9uSUQgOiBTZXNzaW9uSUQ6OmRlZmF1bHRTZXNzaW9uSUQ7Cit9CisKIFBhZ2U6OlBhZ2VD
bGllbnRzOjpQYWdlQ2xpZW50cygpCiAgICAgOiBhbHRlcm5hdGl2ZVRleHRDbGllbnQobnVsbHB0
cikKICAgICAsIGNocm9tZUNsaWVudChudWxscHRyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGFnZS9QYWdlLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaAppbmRleCA5NmYxMThk
Li4zY2IzN2NmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaApAQCAtMzk5LDYgKzM5OSw5IEBAIHB1YmxpYzoKIAog
ICAgIHZvaWQgc2V0VXNlckNvbnRlbnRDb250cm9sbGVyKFVzZXJDb250ZW50Q29udHJvbGxlciop
OwogICAgIFVzZXJDb250ZW50Q29udHJvbGxlciogdXNlckNvbnRlbnRDb250cm9sbGVyKCkgeyBy
ZXR1cm4gbV91c2VyQ29udGVudENvbnRyb2xsZXIuZ2V0KCk7IH0KKyAgICB1aW50NjRfdCBzZXNz
aW9uSUQoKSBjb25zdDsKKyAgICBib29sIGlzU2Vzc2lvbklEU2V0KCkgY29uc3QgeyByZXR1cm4g
bV9zZXNzaW9uSUQ7IH0KKyAgICB2b2lkIHNldFNlc3Npb25JRCh1aW50NjRfdCBzZXNzaW9uSUQp
IHsgQVNTRVJUKHNlc3Npb25JRCk7IG1fc2Vzc2lvbklEID0gc2Vzc2lvbklEOyB9CiAKIHByaXZh
dGU6CiAgICAgdm9pZCBpbml0R3JvdXAoKTsKQEAgLTUzOSw2ICs1NDIsOCBAQCBwcml2YXRlOgog
ICAgIHVuc2lnbmVkIG1fZnJhbWVzSGFuZGxpbmdCZWZvcmVVbmxvYWRFdmVudDsKIAogICAgIFJl
ZlB0cjxVc2VyQ29udGVudENvbnRyb2xsZXI+IG1fdXNlckNvbnRlbnRDb250cm9sbGVyOworCisg
ICAgdWludDY0X3QgbV9zZXNzaW9uSUQ7CiB9OwogCiBpbmxpbmUgUGFnZUdyb3VwJiBQYWdlOjpn
cm91cCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1Nlc3Npb25JRC5oIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9TZXNzaW9uSUQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwLi5jNDYxNTFlCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9T
ZXNzaW9uSUQuaApAQCAtMCwwICsxLDQzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwor
ICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisg
KiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBTZXNzaW9u
SURfaAorI2RlZmluZSBTZXNzaW9uSURfaAorCisjaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+
CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgU2Vzc2lvbklEIHsKKyAgICBXVEZfTUFL
RV9OT05DT1BZQUJMRShTZXNzaW9uSUQpOworcHVibGljOgorICAgIHN0YXRpYyBjb25zdCB1aW50
NjRfdCBkZWZhdWx0U2Vzc2lvbklEID0gMTsKKyAgICBzdGF0aWMgY29uc3QgdWludDY0X3QgbGVn
YWN5UHJpdmF0ZVNlc3Npb25JRCA9IDI7CisgICAgc3RhdGljIGJvb2wgaXNFcGhlbWVyYWxJRCh1
aW50NjRfdCBzZXNzaW9uSUQpIHsgcmV0dXJuIHNlc3Npb25JRCAhPSBTZXNzaW9uSUQ6OmRlZmF1
bHRTZXNzaW9uSUQ7IH0KK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8v
IFNlc3Npb25JRF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3Jr
L2NmL1Jlc291cmNlUmVxdWVzdC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9j
Zi9SZXNvdXJjZVJlcXVlc3QuaAppbmRleCA0NzYxYWRlLi41YmE0YzM3IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL1Jlc291cmNlUmVxdWVzdC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvUmVzb3VyY2VSZXF1ZXN0LmgKQEAg
LTU3LDcgKzU3LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICB7CiAgICAgICAgIH0K
IAotICAgICAgICBSZXNvdXJjZVJlcXVlc3QoY29uc3QgVVJMJiB1cmwsIGNvbnN0IFN0cmluZyYg
cmVmZXJyZXIsIFJlc291cmNlUmVxdWVzdENhY2hlUG9saWN5IHBvbGljeSA9IFVzZVByb3RvY29s
Q2FjaGVQb2xpY3kpIAorICAgICAgICBSZXNvdXJjZVJlcXVlc3QoY29uc3QgVVJMJiB1cmwsIGNv
bnN0IFN0cmluZyYgcmVmZXJyZXIsIFJlc291cmNlUmVxdWVzdENhY2hlUG9saWN5IHBvbGljeSA9
IFVzZVByb3RvY29sQ2FjaGVQb2xpY3kpCiAgICAgICAgICAgICA6IFJlc291cmNlUmVxdWVzdEJh
c2UodXJsLCBwb2xpY3kpCiAjaWYgUExBVEZPUk0oSU9TKQogICAgICAgICAgICAgLCBtX21haW5S
ZXNvdXJjZVJlcXVlc3QoZmFsc2UpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyU25hcHNob3R0ZWRQbHVnSW4uY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlclNuYXBzaG90dGVkUGx1Z0luLmNwcAppbmRleCBhMTY0ZjZkLi43NGMzOWExIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU25hcHNob3R0ZWRQbHVnSW4u
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTbmFwc2hvdHRlZFBsdWdJ
bi5jcHAKQEAgLTMxLDYgKzMxLDcgQEAKICNpbmNsdWRlICJDaHJvbWVDbGllbnQuaCIKICNpbmNs
dWRlICJDdXJzb3IuaCIKICNpbmNsdWRlICJGaWx0ZXIuaCIKKyNpbmNsdWRlICJGcmFtZS5oIgog
I2luY2x1ZGUgIkZyYW1lTG9hZGVyQ2xpZW50LmgiCiAjaW5jbHVkZSAiRnJhbWVWaWV3LmgiCiAj
aW5jbHVkZSAiR3JhZGllbnQuaCIKQEAgLTg1LDcgKzg2LDcgQEAgdm9pZCBSZW5kZXJTbmFwc2hv
dHRlZFBsdWdJbjo6dXBkYXRlU25hcHNob3QoUGFzc1JlZlB0cjxJbWFnZT4gaW1hZ2UpCiAgICAg
aWYgKCFpbWFnZSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgbV9zbmFwc2hvdFJlc291cmNlLT5z
ZXRDYWNoZWRJbWFnZShuZXcgQ2FjaGVkSW1hZ2UoaW1hZ2UuZ2V0KCkpKTsKKyAgICBtX3NuYXBz
aG90UmVzb3VyY2UtPnNldENhY2hlZEltYWdlKG5ldyBDYWNoZWRJbWFnZShpbWFnZS5nZXQoKSwg
dmlldygpLmZyYW1lVmlldygpLmZyYW1lKCkucGFnZSgpLT5zZXNzaW9uSUQoKSkpOwogICAgIHJl
cGFpbnQoKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5h
bHMuY3BwIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCmluZGV4IDVlODE1
Y2UuLjhmYzliZjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxz
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKQEAgLTM1NCw5
ICszNTQsOSBAQCBib29sIEludGVybmFsczo6aXNQcmVsb2FkZWQoY29uc3QgU3RyaW5nJiB1cmwp
CiAKIGJvb2wgSW50ZXJuYWxzOjppc0xvYWRpbmdGcm9tTWVtb3J5Q2FjaGUoY29uc3QgU3RyaW5n
JiB1cmwpCiB7Ci0gICAgaWYgKCFjb250ZXh0RG9jdW1lbnQoKSkKKyAgICBpZiAoIWNvbnRleHRE
b2N1bWVudCgpIHx8ICFjb250ZXh0RG9jdW1lbnQoKS0+cGFnZSgpKQogICAgICAgICByZXR1cm4g
ZmFsc2U7Ci0gICAgQ2FjaGVkUmVzb3VyY2UqIHJlc291cmNlID0gbWVtb3J5Q2FjaGUoKS0+cmVz
b3VyY2VGb3JVUkwoY29udGV4dERvY3VtZW50KCktPmNvbXBsZXRlVVJMKHVybCkpOworICAgIENh
Y2hlZFJlc291cmNlKiByZXNvdXJjZSA9IG1lbW9yeUNhY2hlKCktPnJlc291cmNlRm9yVVJMKGNv
bnRleHREb2N1bWVudCgpLT5jb21wbGV0ZVVSTCh1cmwpLCBjb250ZXh0RG9jdW1lbnQoKS0+cGFn
ZSgpLT5zZXNzaW9uSUQoKSk7CiAgICAgcmV0dXJuIHJlc291cmNlICYmIHJlc291cmNlLT5zdGF0
dXMoKSA9PSBDYWNoZWRSZXNvdXJjZTo6Q2FjaGVkOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggNjYyNTk4
OC4uYjQzOGFmZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU5IEBACisyMDE0LTAyLTE5ICBNYXJ0
aW4gSG9jayAgPG1ob2NrQGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgc3VwcG9ydCBmb3Igc2Vz
c2lvbnMgdG8gTWVtb3J5Q2FjaGUuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xMjc3OTQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9j
ZXNzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6c3RvcmFnZVNlc3Npb24pOiBTd2l0Y2ggdG8gU2Vz
c2lvbklEIGNsYXNzLgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNw
cDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3M6OmluaXRpYWxpemVOZXR3b3JrUHJv
Y2Vzcyk6IERpdHRvLgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxv
YWRlci5oOiBBZGQgc2Vzc2lvbklEKCkgbWV0aG9kLgorICAgICAgICAoV2ViS2l0OjpOZXR3b3Jr
UmVzb3VyY2VMb2FkZXI6OnNlc3Npb25JRCk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvbWFj
L0Rpc2tDYWNoZU1vbml0b3IuaDogQWRkIHNlc3Npb25JRCBtZW1iZXIuCisgICAgICAgICogTmV0
d29ya1Byb2Nlc3MvbWFjL0Rpc2tDYWNoZU1vbml0b3IubW06CisgICAgICAgIChXZWJLaXQ6OkRp
c2tDYWNoZU1vbml0b3I6OkRpc2tDYWNoZU1vbml0b3IpOiBTZW5kIHNlc3Npb25JRCB0byBOZXR3
b3JrUHJvY2Vzc0Nvbm5lY3Rpb246OkRpZENhY2hlUmVzb3VyY2UuCisgICAgICAgICogTmV0d29y
a1Byb2Nlc3MvbWFjL1JlbW90ZU5ldHdvcmtpbmdDb250ZXh0Lm1tOgorICAgICAgICAoV2ViS2l0
OjpSZW1vdGVOZXR3b3JraW5nQ29udGV4dDo6ZW5zdXJlUHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbik6
IFN3aXRjaCB0byBTZXNzaW9uSUQgY2xhc3MuCisgICAgICAgICogU2hhcmVkL1Nlc3Npb25UcmFj
a2VyLmNwcDogRGl0dG8uCisgICAgICAgIChXZWJLaXQ6OlNlc3Npb25UcmFja2VyOjpzZXNzaW9u
KToKKyAgICAgICAgKFdlYktpdDo6U2Vzc2lvblRyYWNrZXI6OnNlc3Npb25JRCk6CisgICAgICAg
IChXZWJLaXQ6OlNlc3Npb25UcmFja2VyOjpzZXRTZXNzaW9uKToKKyAgICAgICAgKiBTaGFyZWQv
U2Vzc2lvblRyYWNrZXIuaDogTW92ZSBjb2RlIHRvIFNlc3Npb25JRCBjbGFzcy4KKyAgICAgICAg
KiBTaGFyZWQvbWFjL0Nvb2tpZVN0b3JhZ2VTaGltLm1tOiBTd2l0Y2ggdG8gU2Vzc2lvbklEIGNs
YXNzLgorICAgICAgICAoV2ViS2l0Ojp3ZWJLaXRDb29raWVTdG9yYWdlQ29weVJlcXVlc3RIZWFk
ZXJGaWVsZHNGb3JVUkwpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUElTZXNzaW9uLmNwcDogRGl0
dG8uCisgICAgICAgIChBUEk6OmdlbmVyYXRlSUQpOgorICAgICAgICAoQVBJOjpTZXNzaW9uOjpk
ZWZhdWx0U2Vzc2lvbik6CisgICAgICAgIChBUEk6OlNlc3Npb246OmxlZ2FjeVByaXZhdGVTZXNz
aW9uKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJU2Vzc2lvbi5oOiBEaXR0by4KKyAgICAgICAg
KiBVSVByb2Nlc3MvV2ViQ29udGV4dC5jcHA6IERpdHRvLgorICAgICAgICAoV2ViS2l0OjpXZWJD
b250ZXh0OjpzZXRBbnlQYWdlR3JvdXBNaWdodEhhdmVQcml2YXRlQnJvd3NpbmdFbmFibGVkKToK
KyAgICAgICAgKFdlYktpdDo6V2ViQ29udGV4dDo6Y3JlYXRlTmV3V2ViUHJvY2Vzcyk6CisgICAg
ICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5jcHA6IERpdHRv
LgorICAgICAgICAoV2ViS2l0OjpJbmplY3RlZEJ1bmRsZTo6c2V0UHJpdmF0ZUJyb3dzaW5nRW5h
YmxlZCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzQ29ubmVj
dGlvbi5jcHA6IEFkZCBzZXNzaW9uSUQgcGFyYW1ldGVyIHRvIGRpZENhY2hlUmVzb3VyY2UgYW5k
IHBhc3MgdG8gTWVtb3J5Q2FjaGUuCisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzQ29u
bmVjdGlvbjo6ZGlkQ2FjaGVSZXNvdXJjZSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9OZXR3b3Jr
L05ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbi5oOiBEaXR0by4KKyAgICAgICAgKiBXZWJQcm9jZXNz
L05ldHdvcmsvTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uLm1lc3NhZ2VzLmluOiBEaXR0by4KKyAg
ICAgICAgKiBXZWJQcm9jZXNzL05ldHdvcmsvV2ViUmVzb3VyY2VMb2FkU2NoZWR1bGVyLmNwcDog
U3dpdGNoIHRvIFNlc3Npb25JRCBjbGFzcy4KKyAgICAgICAgKFdlYktpdDo6V2ViUmVzb3VyY2VM
b2FkU2NoZWR1bGVyOjpzY2hlZHVsZUxvYWQpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmNwcDogRGl0dG8uCisgICAgICAgIChXZWJL
aXQ6OldlYlBsYXRmb3JtU3RyYXRlZ2llczo6bG9hZFJlc291cmNlU3luY2hyb25vdXNseSk6Cisg
ICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9tYWMvV2ViRnJhbWVOZXR3b3JraW5n
Q29udGV4dC5tbTogRGl0dG8uCisgICAgICAgIChXZWJLaXQ6OldlYkZyYW1lTmV0d29ya2luZ0Nv
bnRleHQ6OmVuc3VyZVByaXZhdGVCcm93c2luZ1Nlc3Npb24pOgorICAgICAgICAoV2ViS2l0OjpX
ZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0OjpzdG9yYWdlU2Vzc2lvbik6CisgICAgICAgICogV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9zb3VwL1dlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQuY3Bw
OiBEaXR0by4KKyAgICAgICAgKFdlYktpdDo6V2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dDo6c3Rv
cmFnZVNlc3Npb24pOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcDog
TW92ZSBzZXNzaW9uSUQgdG8gUGFnZSB0byBhbGxvdyBXZWJDb3JlIHRvIGFjY2VzcyBpdC4KKyAg
ICAgICAgKFdlYktpdDo6V2ViUGFnZTo6V2ViUGFnZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBh
Z2U6OnNlc3Npb25JRCk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OmlzVXNpbmdFcGhlbWVy
YWxTZXNzaW9uKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6c2V0U2Vzc2lvbklEKToKKyAg
ICAgICAgKFdlYktpdDo6V2ViUGFnZTo6dXBkYXRlUHJlZmVyZW5jZXMpOgorICAgICAgICAqIFdl
YlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmg6CisKIDIwMTQtMDItMjAgIENzYWJhIE9zenRyb2dv
bsOhYyAgPG9zc3lAd2Via2l0Lm9yZz4KIAogICAgICAgICBHZXQgcmlkIG9mIHJlZHVuZGFudCBQ
bGF0Zm9ybS5oIGluY2x1ZGVzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJv
Y2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9O
ZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAKaW5kZXggMWZl
ZTQ5OC4uOGU1MTU3NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3Mv
TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL05l
dHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcApAQCAtNDIsNiAr
NDIsNyBAQAogI2luY2x1ZGUgPFdlYkNvcmUvUGxhdGZvcm1Db29raWVKYXIuaD4KICNpbmNsdWRl
IDxXZWJDb3JlL1Jlc291cmNlTG9hZGVyT3B0aW9ucy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUmVz
b3VyY2VSZXF1ZXN0Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9TZXNzaW9uSUQuaD4KICNpbmNsdWRl
IDx3dGYvUnVuTG9vcC5oPgogCiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKQEAgLTE1MCw3ICsx
NTEsNyBAQCB2b2lkIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpzZXRTZXJpYWxMb2Fk
aW5nRW5hYmxlZChib29sIGVuYWJsZWQpCiAKIHN0YXRpYyBOZXR3b3JrU3RvcmFnZVNlc3Npb24m
IHN0b3JhZ2VTZXNzaW9uKHVpbnQ2NF90IHNlc3Npb25JRCkKIHsKLSAgICBpZiAoU2Vzc2lvblRy
YWNrZXI6OmlzRXBoZW1lcmFsSUQoc2Vzc2lvbklEKSkgeworICAgIGlmIChTZXNzaW9uSUQ6Omlz
RXBoZW1lcmFsSUQoc2Vzc2lvbklEKSkgewogICAgICAgICBOZXR3b3JrU3RvcmFnZVNlc3Npb24q
IHByaXZhdGVTZXNzaW9uID0gU2Vzc2lvblRyYWNrZXI6OnNlc3Npb24oc2Vzc2lvbklEKTsKICAg
ICAgICAgaWYgKHByaXZhdGVTZXNzaW9uKQogICAgICAgICAgICAgcmV0dXJuICpwcml2YXRlU2Vz
c2lvbjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtQ
cm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNz
LmNwcAppbmRleCA4YTEyYWI3Li41Y2UwYjYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9O
ZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvTmV0
d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwCkBAIC00NSw2ICs0NSw3IEBACiAjaW5jbHVk
ZSAiV2ViQ29va2llTWFuYWdlci5oIgogI2luY2x1ZGUgPFdlYkNvcmUvTG9nZ2luZy5oPgogI2lu
Y2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VSZXF1ZXN0Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9TZXNz
aW9uSUQuaD4KICNpbmNsdWRlIDx3dGYvUnVuTG9vcC5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L0NT
dHJpbmcuaD4KIApAQCAtMTYzLDcgKzE2NCw3IEBAIHZvaWQgTmV0d29ya1Byb2Nlc3M6OmluaXRp
YWxpemVOZXR3b3JrUHJvY2Vzcyhjb25zdCBOZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1lCiAK
ICAgICAvLyBGSVhNRTogaW5zdGVhZCBvZiBoYW5kbGluZyB0aGlzIGhlcmUsIGEgbWVzc2FnZSBz
aG91bGQgYmUgc2VudCBsYXRlciAoc2NhbGVzIHRvIG11bHRpcGxlIHNlc3Npb25zKQogICAgIGlm
IChwYXJhbWV0ZXJzLnByaXZhdGVCcm93c2luZ0VuYWJsZWQpCi0gICAgICAgIFJlbW90ZU5ldHdv
cmtpbmdDb250ZXh0OjplbnN1cmVQcml2YXRlQnJvd3NpbmdTZXNzaW9uKFNlc3Npb25UcmFja2Vy
OjpsZWdhY3lQcml2YXRlU2Vzc2lvbklEKTsKKyAgICAgICAgUmVtb3RlTmV0d29ya2luZ0NvbnRl
eHQ6OmVuc3VyZVByaXZhdGVCcm93c2luZ1Nlc3Npb24oU2Vzc2lvbklEOjpsZWdhY3lQcml2YXRl
U2Vzc2lvbklEKTsKIAogICAgIGlmIChwYXJhbWV0ZXJzLnNob3VsZFVzZVRlc3RpbmdOZXR3b3Jr
U2Vzc2lvbikKICAgICAgICAgTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpzd2l0Y2hUb05ld1Rlc3Rp
bmdTZXNzaW9uKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9O
ZXR3b3JrUmVzb3VyY2VMb2FkZXIuaCBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05l
dHdvcmtSZXNvdXJjZUxvYWRlci5oCmluZGV4IDI4YmNjOWIuLmIzZTQ0NGQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRlci5oCisr
KyBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRlci5o
CkBAIC03MSw2ICs3MSw3IEBAIHB1YmxpYzoKIAogICAgIFdlYkNvcmU6OlJlc291cmNlTG9hZFBy
aW9yaXR5IHByaW9yaXR5KCkgeyByZXR1cm4gbV9wcmlvcml0eTsgfQogICAgIFdlYkNvcmU6OlJl
c291cmNlUmVxdWVzdCYgcmVxdWVzdCgpIHsgcmV0dXJuIG1fcmVxdWVzdDsgfQorICAgIHVpbnQ2
NF90IHNlc3Npb25JRCgpIGNvbnN0IHsgcmV0dXJuIG1fc2Vzc2lvbklEOyB9CiAKICAgICBXZWJD
b3JlOjpSZXNvdXJjZUhhbmRsZSogaGFuZGxlKCkgY29uc3QgeyByZXR1cm4gbV9oYW5kbGUuZ2V0
KCk7IH0KICAgICB2b2lkIGRpZENvbnZlcnRIYW5kbGVUb0Rvd25sb2FkKCk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9tYWMvRGlza0NhY2hlTW9uaXRvci5oIGIv
U291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvbWFjL0Rpc2tDYWNoZU1vbml0b3IuaAppbmRl
eCAzMTg4M2M1Li4yMGNlODY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJv
Y2Vzcy9tYWMvRGlza0NhY2hlTW9uaXRvci5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQ
cm9jZXNzL21hYy9EaXNrQ2FjaGVNb25pdG9yLmgKQEAgLTUyLDYgKzUyLDcgQEAgcHJpdmF0ZToK
IAogICAgIFJlZlB0cjxOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcz4gbV9jb25uZWN0aW9u
VG9XZWJQcm9jZXNzOwogICAgIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCBtX3Jlc291cmNlUmVx
dWVzdDsKKyAgICB1aW50NjRfdCBtX3Nlc3Npb25JRDsKIH07CiAKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvbWFjL0Rpc2tDYWNoZU1vbml0b3IubW0gYi9Tb3Vy
Y2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9tYWMvRGlza0NhY2hlTW9uaXRvci5tbQppbmRleCAz
ODBkYTFmLi5lYjBhNzFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vz
cy9tYWMvRGlza0NhY2hlTW9uaXRvci5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJv
Y2Vzcy9tYWMvRGlza0NhY2hlTW9uaXRvci5tbQpAQCAtNjIsNiArNjIsNyBAQCB2b2lkIERpc2tD
YWNoZU1vbml0b3I6Om1vbml0b3JGaWxlQmFja2luZ1N0b3JlQ3JlYXRpb24oQ0ZDYWNoZWRVUkxS
ZXNwb25zZVJlZiBjYQogRGlza0NhY2hlTW9uaXRvcjo6RGlza0NhY2hlTW9uaXRvcihDRkNhY2hl
ZFVSTFJlc3BvbnNlUmVmIGNhY2hlZFJlc3BvbnNlLCBOZXR3b3JrUmVzb3VyY2VMb2FkZXIqIGxv
YWRlcikKICAgICA6IG1fY29ubmVjdGlvblRvV2ViUHJvY2Vzcyhsb2FkZXItPmNvbm5lY3Rpb25U
b1dlYlByb2Nlc3MoKSkKICAgICAsIG1fcmVzb3VyY2VSZXF1ZXN0KGxvYWRlci0+cmVxdWVzdCgp
KQorICAgICwgbV9zZXNzaW9uSUQobG9hZGVyLT5zZXNzaW9uSUQoKSkKIHsKICAgICBBU1NFUlQo
UnVuTG9vcDo6aXNNYWluKCkpOwogCkBAIC04OCw3ICs4OSw3IEBAIERpc2tDYWNoZU1vbml0b3I6
OkRpc2tDYWNoZU1vbml0b3IoQ0ZDYWNoZWRVUkxSZXNwb25zZVJlZiBjYWNoZWRSZXNwb25zZSwg
TmV0d29yCiAgICAgICAgIGlmIChoYW5kbGUuaXNOdWxsKCkpCiAgICAgICAgICAgICByZXR1cm47
CiAKLSAgICAgICAgbW9uaXRvci0+c2VuZChNZXNzYWdlczo6TmV0d29ya1Byb2Nlc3NDb25uZWN0
aW9uOjpEaWRDYWNoZVJlc291cmNlKG1vbml0b3ItPnJlc291cmNlUmVxdWVzdCgpLCBoYW5kbGUp
KTsKKyAgICAgICAgbW9uaXRvci0+c2VuZChNZXNzYWdlczo6TmV0d29ya1Byb2Nlc3NDb25uZWN0
aW9uOjpEaWRDYWNoZVJlc291cmNlKG1vbml0b3ItPnJlc291cmNlUmVxdWVzdCgpLCBoYW5kbGUs
IG1fc2Vzc2lvbklEKSk7CiAgICAgfTsKIAogICAgIF9DRkNhY2hlZFVSTFJlc3BvbnNlU2V0QmVj
YW1lRmlsZUJhY2tlZENhbGxCYWNrQmxvY2soY2FjaGVkUmVzcG9uc2UsIGJsb2NrLCBkaXNwYXRj
aF9nZXRfbWFpbl9xdWV1ZSgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQ
cm9jZXNzL21hYy9SZW1vdGVOZXR3b3JraW5nQ29udGV4dC5tbSBiL1NvdXJjZS9XZWJLaXQyL05l
dHdvcmtQcm9jZXNzL21hYy9SZW1vdGVOZXR3b3JraW5nQ29udGV4dC5tbQppbmRleCBhMGE4ZjY1
Li44MjgyOTYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9tYWMv
UmVtb3RlTmV0d29ya2luZ0NvbnRleHQubW0KKysrIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1By
b2Nlc3MvbWFjL1JlbW90ZU5ldHdvcmtpbmdDb250ZXh0Lm1tCkBAIC0yOSw2ICsyOSw3IEBACiAj
aW1wb3J0ICJTZXNzaW9uVHJhY2tlci5oIgogI2ltcG9ydCAiV2ViRXJyb3JzLmgiCiAjaW1wb3J0
IDxXZWJDb3JlL1Jlc291cmNlRXJyb3IuaD4KKyNpbXBvcnQgPFdlYkNvcmUvU2Vzc2lvbklELmg+
CiAjaW1wb3J0IDxXZWJLaXRTeXN0ZW1JbnRlcmZhY2UuaD4KICNpbXBvcnQgPHd0Zi9NYWluVGhy
ZWFkLmg+CiAjaW1wb3J0IDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KQEAgLTc5LDcgKzgwLDcgQEAg
UmVzb3VyY2VFcnJvciBSZW1vdGVOZXR3b3JraW5nQ29udGV4dDo6YmxvY2tlZEVycm9yKGNvbnN0
IFJlc291cmNlUmVxdWVzdCYgcmVxdWUKIAogdm9pZCBSZW1vdGVOZXR3b3JraW5nQ29udGV4dDo6
ZW5zdXJlUHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbih1aW50NjRfdCBzZXNzaW9uSUQpCiB7Ci0gICAg
QVNTRVJUKFNlc3Npb25UcmFja2VyOjppc0VwaGVtZXJhbElEKHNlc3Npb25JRCkpOworICAgIEFT
U0VSVChTZXNzaW9uSUQ6OmlzRXBoZW1lcmFsSUQoc2Vzc2lvbklEKSk7CiAKICAgICBpZiAoU2Vz
c2lvblRyYWNrZXI6OnNlc3Npb24oc2Vzc2lvbklEKSkKICAgICAgICAgcmV0dXJuOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1Nlc3Npb25UcmFja2VyLmNwcCBiL1NvdXJjZS9X
ZWJLaXQyL1NoYXJlZC9TZXNzaW9uVHJhY2tlci5jcHAKaW5kZXggNmU0ZDRmZi4uMWQ4YjM0OCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1Nlc3Npb25UcmFja2VyLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvU2Vzc2lvblRyYWNrZXIuY3BwCkBAIC0zMyw5ICszMyw2
IEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAotY29u
c3QgdWludDY0X3QgU2Vzc2lvblRyYWNrZXI6OmRlZmF1bHRTZXNzaW9uSUQ7Ci1jb25zdCB1aW50
NjRfdCBTZXNzaW9uVHJhY2tlcjo6bGVnYWN5UHJpdmF0ZVNlc3Npb25JRDsKLQogc3RhdGljIEhh
c2hNYXA8dWludDY0X3QsIHN0ZDo6dW5pcXVlX3B0cjxOZXR3b3JrU3RvcmFnZVNlc3Npb24+PiYg
c3RhdGljU2Vzc2lvbk1hcCgpCiB7CiAgICAgQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsKQEAg
LTcyLDcgKzY5LDcgQEAgY29uc3QgU3RyaW5nJiBTZXNzaW9uVHJhY2tlcjo6Z2V0SWRlbnRpZmll
ckJhc2UoKQogCiBOZXR3b3JrU3RvcmFnZVNlc3Npb24qIFNlc3Npb25UcmFja2VyOjpzZXNzaW9u
KHVpbnQ2NF90IHNlc3Npb25JRCkKIHsKLSAgICBpZiAoc2Vzc2lvbklEID09IGRlZmF1bHRTZXNz
aW9uSUQpCisgICAgaWYgKHNlc3Npb25JRCA9PSBTZXNzaW9uSUQ6OmRlZmF1bHRTZXNzaW9uSUQp
CiAgICAgICAgIHJldHVybiAmTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpkZWZhdWx0U3RvcmFnZVNl
c3Npb24oKTsKICAgICByZXR1cm4gc3RhdGljU2Vzc2lvbk1hcCgpLmdldChzZXNzaW9uSUQpOwog
fQpAQCAtODAsMTMgKzc3LDEzIEBAIE5ldHdvcmtTdG9yYWdlU2Vzc2lvbiogU2Vzc2lvblRyYWNr
ZXI6OnNlc3Npb24odWludDY0X3Qgc2Vzc2lvbklEKQogdWludDY0X3QgU2Vzc2lvblRyYWNrZXI6
OnNlc3Npb25JRChjb25zdCBOZXR3b3JrU3RvcmFnZVNlc3Npb24mIHNlc3Npb24pCiB7CiAgICAg
aWYgKCZzZXNzaW9uID09ICZOZXR3b3JrU3RvcmFnZVNlc3Npb246OmRlZmF1bHRTdG9yYWdlU2Vz
c2lvbigpKQotICAgICAgICByZXR1cm4gZGVmYXVsdFNlc3Npb25JRDsKKyAgICAgICAgcmV0dXJu
IFNlc3Npb25JRDo6ZGVmYXVsdFNlc3Npb25JRDsKICAgICByZXR1cm4gc3RvcmFnZVNlc3Npb25U
b0lEKCkuZ2V0KCZzZXNzaW9uKTsKIH0KIAogdm9pZCBTZXNzaW9uVHJhY2tlcjo6c2V0U2Vzc2lv
bih1aW50NjRfdCBzZXNzaW9uSUQsIHN0ZDo6dW5pcXVlX3B0cjxOZXR3b3JrU3RvcmFnZVNlc3Np
b24+IHNlc3Npb24pCiB7Ci0gICAgQVNTRVJUKHNlc3Npb25JRCAhPSBkZWZhdWx0U2Vzc2lvbklE
KTsKKyAgICBBU1NFUlQoc2Vzc2lvbklEICE9IFNlc3Npb25JRDo6ZGVmYXVsdFNlc3Npb25JRCk7
CiAgICAgc3RvcmFnZVNlc3Npb25Ub0lEKCkuc2V0KHNlc3Npb24uZ2V0KCksIHNlc3Npb25JRCk7
CiAgICAgc3RhdGljU2Vzc2lvbk1hcCgpLnNldChzZXNzaW9uSUQsIHN0ZDo6bW92ZShzZXNzaW9u
KSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvU2Vzc2lvblRyYWNrZXIu
aCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9TZXNzaW9uVHJhY2tlci5oCmluZGV4IDJlYjgxYzku
LjljZjQ5YzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9TZXNzaW9uVHJhY2tl
ci5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9TZXNzaW9uVHJhY2tlci5oCkBAIC0yNyw2
ICsyNyw3IEBACiAjZGVmaW5lIFNlc3Npb25UcmFja2VyX2gKIAogI2luY2x1ZGUgPFdlYkNvcmUv
TmV0d29ya1N0b3JhZ2VTZXNzaW9uLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9TZXNzaW9uSUQuaD4K
ICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgogI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgog
I2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KQEAgLTM2LDkgKzM3LDYgQEAgbmFtZXNwYWNl
IFdlYktpdCB7CiBjbGFzcyBTZXNzaW9uVHJhY2tlciB7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFC
TEUoU2Vzc2lvblRyYWNrZXIpOwogcHVibGljOgotICAgIHN0YXRpYyBjb25zdCB1aW50NjRfdCBk
ZWZhdWx0U2Vzc2lvbklEID0gMTsKLSAgICBzdGF0aWMgY29uc3QgdWludDY0X3QgbGVnYWN5UHJp
dmF0ZVNlc3Npb25JRCA9IDI7Ci0gICAgc3RhdGljIGJvb2wgaXNFcGhlbWVyYWxJRCh1aW50NjRf
dCBzZXNzaW9uSUQpIHsgcmV0dXJuIHNlc3Npb25JRCAhPSBTZXNzaW9uVHJhY2tlcjo6ZGVmYXVs
dFNlc3Npb25JRDsgfQogICAgIC8vIEZJWE1FOiBzZXNzaW9uTWFwKCkncyByZXR1cm5lZCBtYXAg
ZG9lcyBub3QgaW5jbHVkZSBkZWZhdWx0IHNlc3Npb24uCiAgICAgc3RhdGljIGNvbnN0IEhhc2hN
YXA8dWludDY0X3QsIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpOZXR3b3JrU3RvcmFnZVNlc3Np
b24+PiYgc2Vzc2lvbk1hcCgpOwogICAgIHN0YXRpYyBjb25zdCBTdHJpbmcmIGdldElkZW50aWZp
ZXJCYXNlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL0Nvb2tpZVN0
b3JhZ2VTaGltLm1tIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9Db29raWVTdG9yYWdlU2hp
bS5tbQppbmRleCBjNmQ3MDVmLi4yYjM3YjRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9T
aGFyZWQvbWFjL0Nvb2tpZVN0b3JhZ2VTaGltLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJl
ZC9tYWMvQ29va2llU3RvcmFnZVNoaW0ubW0KQEAgLTMxLDcgKzMxLDcgQEAKICNpbmNsdWRlICJD
b29raWVTdG9yYWdlU2hpbUxpYnJhcnkuaCIKICNpbmNsdWRlICJOZXR3b3JrQ29ubmVjdGlvblRv
V2ViUHJvY2Vzcy5oIgogI2luY2x1ZGUgIk5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbi5oIgotI2lu
Y2x1ZGUgIlNlc3Npb25UcmFja2VyLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9TZXNzaW9uSUQuaD4K
ICNpbmNsdWRlICJXZWJDb3JlQXJndW1lbnRDb2RlcnMuaCIKICNpbmNsdWRlICJXZWJQcm9jZXNz
LmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9VUkwuaD4KQEAgLTU4LDcgKzU4LDcgQEAgc3RhdGljIENG
RGljdGlvbmFyeVJlZiB3ZWJLaXRDb29raWVTdG9yYWdlQ29weVJlcXVlc3RIZWFkZXJGaWVsZHNG
b3JVUkwoQ0ZIVFRQQ28KIHsKICAgICBTdHJpbmcgY29va2llczsKICAgICBVUkwgZmlyc3RQYXJ0
eUZvckNvb2tpZXNVUkw7Ci0gICAgaWYgKCFXZWJQcm9jZXNzOjpzaGFyZWQoKS5uZXR3b3JrQ29u
bmVjdGlvbigpLT5jb25uZWN0aW9uKCktPnNlbmRTeW5jKE1lc3NhZ2VzOjpOZXR3b3JrQ29ubmVj
dGlvblRvV2ViUHJvY2Vzczo6Q29va2llUmVxdWVzdEhlYWRlckZpZWxkVmFsdWUoU2Vzc2lvblRy
YWNrZXI6OmRlZmF1bHRTZXNzaW9uSUQsIGZpcnN0UGFydHlGb3JDb29raWVzVVJMLCBpblJlcXVl
c3RVUkwpLCBNZXNzYWdlczo6TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OkNvb2tpZXNG
b3JET006OlJlcGx5KGNvb2tpZXMpLCAwKSkKKyAgICBpZiAoIVdlYlByb2Nlc3M6OnNoYXJlZCgp
Lm5ldHdvcmtDb25uZWN0aW9uKCktPmNvbm5lY3Rpb24oKS0+c2VuZFN5bmMoTWVzc2FnZXM6Ok5l
dHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpDb29raWVSZXF1ZXN0SGVhZGVyRmllbGRWYWx1
ZShTZXNzaW9uSUQ6OmRlZmF1bHRTZXNzaW9uSUQsIGZpcnN0UGFydHlGb3JDb29raWVzVVJMLCBp
blJlcXVlc3RVUkwpLCBNZXNzYWdlczo6TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OkNv
b2tpZXNGb3JET006OlJlcGx5KGNvb2tpZXMpLCAwKSkKICAgICAgICAgcmV0dXJuIDA7CiAKICAg
ICBpZiAoY29va2llcy5pc051bGwoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUElTZXNzaW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUElTZXNzaW9u
LmNwcAppbmRleCAwOGQ4NGFmLi4zODgyODFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJU2Vzc2lvbi5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SVNlc3Npb24uY3BwCkBAIC0yNiw2ICsyNiw3IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5j
bHVkZSAiQVBJU2Vzc2lvbi5oIgogCisjaW5jbHVkZSA8V2ViQ29yZS9TZXNzaW9uSUQuaD4KICNp
bmNsdWRlIDx3dGYvUnVuTG9vcC5oPgogCiBuYW1lc3BhY2UgQVBJIHsKQEAgLTM0LDcgKzM1LDcg
QEAgc3RhdGljIHVpbnQ2NF90IGdlbmVyYXRlSUQoYm9vbCBpc0VwaGVtZXJhbCkKIHsKICAgICBB
U1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOwogCi0gICAgc3RhdGljIHVpbnQ2NF90IHVuaXF1ZVNl
c3Npb25JRCA9IFdlYktpdDo6U2Vzc2lvblRyYWNrZXI6OmxlZ2FjeVByaXZhdGVTZXNzaW9uSUQ7
CisgICAgc3RhdGljIHVpbnQ2NF90IHVuaXF1ZVNlc3Npb25JRCA9IFdlYkNvcmU6OlNlc3Npb25J
RDo6bGVnYWN5UHJpdmF0ZVNlc3Npb25JRDsKICAgICBBU1NFUlQoaXNFcGhlbWVyYWwpOwogICAg
IHJldHVybiArK3VuaXF1ZVNlc3Npb25JRDsKIH0KQEAgLTQzLDcgKzQ0LDcgQEAgU2Vzc2lvbiYg
U2Vzc2lvbjo6ZGVmYXVsdFNlc3Npb24oKQogewogICAgIEFTU0VSVChSdW5Mb29wOjppc01haW4o
KSk7CiAKLSAgICBzdGF0aWMgU2Vzc2lvbiogZGVmYXVsdFNlc3Npb24gPSBuZXcgU2Vzc2lvbihm
YWxzZSwgV2ViS2l0OjpTZXNzaW9uVHJhY2tlcjo6ZGVmYXVsdFNlc3Npb25JRCk7CisgICAgc3Rh
dGljIFNlc3Npb24qIGRlZmF1bHRTZXNzaW9uID0gbmV3IFNlc3Npb24oZmFsc2UsIFdlYkNvcmU6
OlNlc3Npb25JRDo6ZGVmYXVsdFNlc3Npb25JRCk7CiAgICAgcmV0dXJuICpkZWZhdWx0U2Vzc2lv
bjsKIH0KIApAQCAtNTEsNyArNTIsNyBAQCBTZXNzaW9uJiBTZXNzaW9uOjpsZWdhY3lQcml2YXRl
U2Vzc2lvbigpCiB7CiAgICAgQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsKIAotICAgIHN0YXRp
YyBTZXNzaW9uKiBsZWdhY3lQcml2YXRlU2Vzc2lvbiA9IG5ldyBTZXNzaW9uKHRydWUsIFdlYktp
dDo6U2Vzc2lvblRyYWNrZXI6OmxlZ2FjeVByaXZhdGVTZXNzaW9uSUQpOworICAgIHN0YXRpYyBT
ZXNzaW9uKiBsZWdhY3lQcml2YXRlU2Vzc2lvbiA9IG5ldyBTZXNzaW9uKHRydWUsIFdlYkNvcmU6
OlNlc3Npb25JRDo6bGVnYWN5UHJpdmF0ZVNlc3Npb25JRCk7CiAgICAgcmV0dXJuICpsZWdhY3lQ
cml2YXRlU2Vzc2lvbjsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSVNlc3Npb24uaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUElTZXNzaW9uLmgKaW5k
ZXggYmQ2MDRiMi4uZTE1OTBiNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSVNlc3Npb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJU2Vzc2lvbi5o
CkBAIC0yNyw3ICsyNyw2IEBACiAjZGVmaW5lIEFQSVNlc3Npb25faAogCiAjaW5jbHVkZSAiQVBJ
T2JqZWN0LmgiCi0jaW5jbHVkZSAiU2Vzc2lvblRyYWNrZXIuaCIKICNpbmNsdWRlIDx3dGYvUGFz
c1JlZlB0ci5oPgogCiBuYW1lc3BhY2UgQVBJIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9XZWJDb250ZXh0LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJD
b250ZXh0LmNwcAppbmRleCAzNDUzNjQ4Li5kNWFkZGZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvV2ViQ29udGV4dC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL1dlYkNvbnRleHQuY3BwCkBAIC0zMyw3ICszMyw2IEBACiAjaW5jbHVkZSAiTG9nZ2luZy5o
IgogI2luY2x1ZGUgIk11dGFibGVEaWN0aW9uYXJ5LmgiCiAjaW5jbHVkZSAiU2FuZGJveEV4dGVu
c2lvbi5oIgotI2luY2x1ZGUgIlNlc3Npb25UcmFja2VyLmgiCiAjaW5jbHVkZSAiU3RhdGlzdGlj
c0RhdGEuaCIKICNpbmNsdWRlICJUZXh0Q2hlY2tlci5oIgogI2luY2x1ZGUgIldLQ29udGV4dFBy
aXZhdGUuaCIKQEAgLTYzLDYgKzYyLDcgQEAKICNpbmNsdWRlIDxXZWJDb3JlL0xpbmtIYXNoLmg+
CiAjaW5jbHVkZSA8V2ViQ29yZS9Mb2dnaW5nLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJj
ZVJlcXVlc3QuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1Nlc3Npb25JRC5oPgogI2luY2x1ZGUgPHJ1
bnRpbWUvSlNDSW5saW5lcy5oPgogI2luY2x1ZGUgPHd0Zi9DdXJyZW50VGltZS5oPgogI2luY2x1
ZGUgPHd0Zi9NYWluVGhyZWFkLmg+CkBAIC00ODYsMTYgKzQ4NiwxNiBAQCB2b2lkIFdlYkNvbnRl
eHQ6OnNldEFueVBhZ2VHcm91cE1pZ2h0SGF2ZVByaXZhdGVCcm93c2luZ0VuYWJsZWQoYm9vbCBw
cml2YXRlQnJvdwogI2lmIEVOQUJMRShORVRXT1JLX1BST0NFU1MpCiAgICAgaWYgKHVzZXNOZXR3
b3JrUHJvY2VzcygpICYmIG5ldHdvcmtQcm9jZXNzKCkpIHsKICAgICAgICAgaWYgKHByaXZhdGVC
cm93c2luZ0VuYWJsZWQpCi0gICAgICAgICAgICBuZXR3b3JrUHJvY2VzcygpLT5zZW5kKE1lc3Nh
Z2VzOjpOZXR3b3JrUHJvY2Vzczo6RW5zdXJlUHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbihTZXNzaW9u
VHJhY2tlcjo6bGVnYWN5UHJpdmF0ZVNlc3Npb25JRCksIDApOworICAgICAgICAgICAgbmV0d29y
a1Byb2Nlc3MoKS0+c2VuZChNZXNzYWdlczo6TmV0d29ya1Byb2Nlc3M6OkVuc3VyZVByaXZhdGVC
cm93c2luZ1Nlc3Npb24oU2Vzc2lvbklEOjpsZWdhY3lQcml2YXRlU2Vzc2lvbklEKSwgMCk7CiAg
ICAgICAgIGVsc2UKLSAgICAgICAgICAgIG5ldHdvcmtQcm9jZXNzKCktPnNlbmQoTWVzc2FnZXM6
Ok5ldHdvcmtQcm9jZXNzOjpEZXN0cm95UHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbihTZXNzaW9uVHJh
Y2tlcjo6bGVnYWN5UHJpdmF0ZVNlc3Npb25JRCksIDApOworICAgICAgICAgICAgbmV0d29ya1By
b2Nlc3MoKS0+c2VuZChNZXNzYWdlczo6TmV0d29ya1Byb2Nlc3M6OkRlc3Ryb3lQcml2YXRlQnJv
d3NpbmdTZXNzaW9uKFNlc3Npb25JRDo6bGVnYWN5UHJpdmF0ZVNlc3Npb25JRCksIDApOwogICAg
IH0KICNlbmRpZiAvLyBFTkFCTEVEKE5FVFdPUktfUFJPQ0VTUykKIAogICAgIGlmIChwcml2YXRl
QnJvd3NpbmdFbmFibGVkKQotICAgICAgICBzZW5kVG9BbGxQcm9jZXNzZXMoTWVzc2FnZXM6Oldl
YlByb2Nlc3M6OkVuc3VyZVByaXZhdGVCcm93c2luZ1Nlc3Npb24oU2Vzc2lvblRyYWNrZXI6Omxl
Z2FjeVByaXZhdGVTZXNzaW9uSUQpKTsKKyAgICAgICAgc2VuZFRvQWxsUHJvY2Vzc2VzKE1lc3Nh
Z2VzOjpXZWJQcm9jZXNzOjpFbnN1cmVQcml2YXRlQnJvd3NpbmdTZXNzaW9uKFNlc3Npb25JRDo6
bGVnYWN5UHJpdmF0ZVNlc3Npb25JRCkpOwogICAgIGVsc2UKLSAgICAgICAgc2VuZFRvQWxsUHJv
Y2Vzc2VzKE1lc3NhZ2VzOjpXZWJQcm9jZXNzOjpEZXN0cm95UHJpdmF0ZUJyb3dzaW5nU2Vzc2lv
bihTZXNzaW9uVHJhY2tlcjo6bGVnYWN5UHJpdmF0ZVNlc3Npb25JRCkpOworICAgICAgICBzZW5k
VG9BbGxQcm9jZXNzZXMoTWVzc2FnZXM6OldlYlByb2Nlc3M6OkRlc3Ryb3lQcml2YXRlQnJvd3Np
bmdTZXNzaW9uKFNlc3Npb25JRDo6bGVnYWN5UHJpdmF0ZVNlc3Npb25JRCkpOwogfQogCiB2b2lk
ICgqc19pbnZhbGlkTWVzc2FnZUNhbGxiYWNrKShXS1N0cmluZ1JlZiBtZXNzYWdlTmFtZSk7CkBA
IC02MjUsNyArNjI1LDcgQEAgV2ViUHJvY2Vzc1Byb3h5JiBXZWJDb250ZXh0OjpjcmVhdGVOZXdX
ZWJQcm9jZXNzKCkKICNlbmRpZgogCiAgICAgaWYgKFdlYlByZWZlcmVuY2VzOjphbnlQYWdlc0Fy
ZVVzaW5nUHJpdmF0ZUJyb3dzaW5nKCkpCi0gICAgICAgIHByb2Nlc3MtPnNlbmQoTWVzc2FnZXM6
OldlYlByb2Nlc3M6OkVuc3VyZVByaXZhdGVCcm93c2luZ1Nlc3Npb24oU2Vzc2lvblRyYWNrZXI6
OmxlZ2FjeVByaXZhdGVTZXNzaW9uSUQpLCAwKTsKKyAgICAgICAgcHJvY2Vzcy0+c2VuZChNZXNz
YWdlczo6V2ViUHJvY2Vzczo6RW5zdXJlUHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbihTZXNzaW9uSUQ6
OmxlZ2FjeVByaXZhdGVTZXNzaW9uSUQpLCAwKTsKIAogICAgIG1fcHJvY2Vzc2VzLmFwcGVuZChw
cm9jZXNzKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3Rl
ZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0lu
amVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlLmNwcAppbmRleCA1M2Y1ZjZlLi5mOGU4NmEzIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVj
dGVkQnVuZGxlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVu
ZGxlL0luamVjdGVkQnVuZGxlLmNwcApAQCAtNjcsNiArNjcsNyBAQAogI2luY2x1ZGUgPFdlYkNv
cmUvU2NyaXB0Q29udHJvbGxlci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU2VjdXJpdHlPcmlnaW4u
aD4KICNpbmNsdWRlIDxXZWJDb3JlL1NlY3VyaXR5UG9saWN5Lmg+CisjaW5jbHVkZSA8V2ViQ29y
ZS9TZXNzaW9uSUQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1NldHRpbmdzLmg+CiAjaW5jbHVkZSA8
V2ViQ29yZS9Vc2VyR2VzdHVyZUluZGljYXRvci5oPgogCkBAIC0yOTksOSArMzAwLDkgQEAgdm9p
ZCBJbmplY3RlZEJ1bmRsZTo6c2V0UHJpdmF0ZUJyb3dzaW5nRW5hYmxlZChXZWJQYWdlR3JvdXBQ
cm94eSogcGFnZUdyb3VwLCBib28KICAgICAvLyBGSVhNRSAoTmV0d29ya1Byb2Nlc3MpOiBUaGlz
IHRlc3Qtb25seSBmdW5jdGlvbiBkb2Vzbid0IHdvcmsgd2l0aCBOZXR3b3JrUHJvY2VzcywgPGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTUyNzQ+LgogI2lmIFBMQVRG
T1JNKENPQ09BKSB8fCBVU0UoQ0ZORVRXT1JLKSB8fCBVU0UoU09VUCkKICAgICBpZiAoZW5hYmxl
ZCkKLSAgICAgICAgV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dDo6ZW5zdXJlUHJpdmF0ZUJyb3dz
aW5nU2Vzc2lvbihTZXNzaW9uVHJhY2tlcjo6bGVnYWN5UHJpdmF0ZVNlc3Npb25JRCk7CisgICAg
ICAgIFdlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQ6OmVuc3VyZVByaXZhdGVCcm93c2luZ1Nlc3Np
b24oU2Vzc2lvbklEOjpsZWdhY3lQcml2YXRlU2Vzc2lvbklEKTsKICAgICBlbHNlCi0gICAgICAg
IFNlc3Npb25UcmFja2VyOjpkZXN0cm95U2Vzc2lvbihTZXNzaW9uVHJhY2tlcjo6bGVnYWN5UHJp
dmF0ZVNlc3Npb25JRCk7CisgICAgICAgIFNlc3Npb25UcmFja2VyOjpkZXN0cm95U2Vzc2lvbihT
ZXNzaW9uSUQ6OmxlZ2FjeVByaXZhdGVTZXNzaW9uSUQpOwogI2VuZGlmCiAgICAgY29uc3QgSGFz
aFNldDxQYWdlKj4mIHBhZ2VzID0gUGFnZUdyb3VwOjpwYWdlR3JvdXAocGFnZUdyb3VwLT5pZGVu
dGlmaWVyKCkpLT5wYWdlcygpOwogICAgIGZvciAoSGFzaFNldDxQYWdlKj46Oml0ZXJhdG9yIGl0
ZXIgPSBwYWdlcy5iZWdpbigpOyBpdGVyICE9IHBhZ2VzLmVuZCgpOyArK2l0ZXIpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NDb25u
ZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJv
Y2Vzc0Nvbm5lY3Rpb24uY3BwCmluZGV4IGIyMTZlMTIuLjUyMDU0MzUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24u
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vz
c0Nvbm5lY3Rpb24uY3BwCkBAIC04MSw5ICs4MSw5IEBAIHZvaWQgTmV0d29ya1Byb2Nlc3NDb25u
ZWN0aW9uOjpkaWRSZWNlaXZlSW52YWxpZE1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uKiwgSVBDOjpT
CiB9CiAKICNpZiBFTkFCTEUoU0hBUkVBQkxFX1JFU09VUkNFKQotdm9pZCBOZXR3b3JrUHJvY2Vz
c0Nvbm5lY3Rpb246OmRpZENhY2hlUmVzb3VyY2UoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1
ZXN0LCBjb25zdCBTaGFyZWFibGVSZXNvdXJjZTo6SGFuZGxlJiBoYW5kbGUpCit2b2lkIE5ldHdv
cmtQcm9jZXNzQ29ubmVjdGlvbjo6ZGlkQ2FjaGVSZXNvdXJjZShjb25zdCBSZXNvdXJjZVJlcXVl
c3QmIHJlcXVlc3QsIGNvbnN0IFNoYXJlYWJsZVJlc291cmNlOjpIYW5kbGUmIGhhbmRsZSwgdWlu
dDY0X3Qgc2Vzc2lvbklEKQogewotICAgIENhY2hlZFJlc291cmNlKiByZXNvdXJjZSA9IG1lbW9y
eUNhY2hlKCktPnJlc291cmNlRm9yUmVxdWVzdChyZXF1ZXN0KTsKKyAgICBDYWNoZWRSZXNvdXJj
ZSogcmVzb3VyY2UgPSBtZW1vcnlDYWNoZSgpLT5yZXNvdXJjZUZvclJlcXVlc3QocmVxdWVzdCwg
c2Vzc2lvbklEKTsKICAgICBpZiAoIXJlc291cmNlKQogICAgICAgICByZXR1cm47CiAgICAgCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nl
c3NDb25uZWN0aW9uLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05ldHdvcmsvTmV0d29y
a1Byb2Nlc3NDb25uZWN0aW9uLmgKaW5kZXggODQyZjZlYi4uMzU0YTMzOCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzQ29ubmVjdGlv
bi5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vz
c0Nvbm5lY3Rpb24uaApAQCAtNzAsNyArNzAsNyBAQCBwcml2YXRlOgogCiAjaWYgRU5BQkxFKFNI
QVJFQUJMRV9SRVNPVVJDRSkKICAgICAvLyBNZXNzYWdlIGhhbmRsZXJzLgotICAgIHZvaWQgZGlk
Q2FjaGVSZXNvdXJjZShjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBTaGFy
ZWFibGVSZXNvdXJjZTo6SGFuZGxlJik7CisgICAgdm9pZCBkaWRDYWNoZVJlc291cmNlKGNvbnN0
IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFNoYXJlYWJsZVJlc291cmNlOjpIYW5k
bGUmLCB1aW50NjRfdCBzZXNzaW9uSUQpOwogI2VuZGlmCiAKICAgICAvLyBUaGUgY29ubmVjdGlv
biBmcm9tIHRoZSB3ZWIgcHJvY2VzcyB0byB0aGUgbmV0d29yayBwcm9jZXNzLgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzQ29ubmVj
dGlvbi5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTmV0d29yay9OZXR3
b3JrUHJvY2Vzc0Nvbm5lY3Rpb24ubWVzc2FnZXMuaW4KaW5kZXggZTY5ODlkOS4uMWYzM2I1NyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9j
ZXNzQ29ubmVjdGlvbi5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L05ldHdvcmsvTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uLm1lc3NhZ2VzLmluCkBAIC0yNSw3ICsy
NSw3IEBACiBtZXNzYWdlcyAtPiBOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24gTGVnYWN5UmVjZWl2
ZXIgewogCiAjaWYgRU5BQkxFKFNIQVJFQUJMRV9SRVNPVVJDRSkKLSAgICBEaWRDYWNoZVJlc291
cmNlKFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCByZXF1ZXN0LCBXZWJLaXQ6OlNoYXJlYWJsZVJl
c291cmNlOjpIYW5kbGUgcmVzb3VyY2UpCisgICAgRGlkQ2FjaGVSZXNvdXJjZShXZWJDb3JlOjpS
ZXNvdXJjZVJlcXVlc3QgcmVxdWVzdCwgV2ViS2l0OjpTaGFyZWFibGVSZXNvdXJjZTo6SGFuZGxl
IHJlc291cmNlLCB1aW50NjRfdCBzZXNzaW9uSUQpCiAjZW5kaWYKIAogfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYlJlc291cmNlTG9hZFNjaGVkdWxl
ci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05ldHdvcmsvV2ViUmVzb3VyY2VMb2Fk
U2NoZWR1bGVyLmNwcAppbmRleCBlYWJkNjU0Li4yYmFjZGJiIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL05ldHdvcmsvV2ViUmVzb3VyY2VMb2FkU2NoZWR1bGVyLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05ldHdvcmsvV2ViUmVzb3VyY2VMb2FkU2No
ZWR1bGVyLmNwcApAQCAtNDcsNiArNDcsNyBAQAogI2luY2x1ZGUgPFdlYkNvcmUvUmVmZXJyZXJQ
b2xpY3kuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlQnVmZmVyLmg+CiAjaW5jbHVkZSA8
V2ViQ29yZS9SZXNvdXJjZUxvYWRlci5oPgorI2luY2x1ZGUgPFdlYkNvcmUvU2Vzc2lvbklELmg+
CiAjaW5jbHVkZSA8V2ViQ29yZS9TZXR0aW5ncy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU3VicmVz
b3VyY2VMb2FkZXIuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CkBAIC0xMTgsNyAr
MTE5LDcgQEAgdm9pZCBXZWJSZXNvdXJjZUxvYWRTY2hlZHVsZXI6OnNjaGVkdWxlTG9hZChSZXNv
dXJjZUxvYWRlciogcmVzb3VyY2VMb2FkZXIsIENhY2gKICAgICBsb2FkUGFyYW1ldGVycy5pZGVu
dGlmaWVyID0gaWRlbnRpZmllcjsKICAgICBsb2FkUGFyYW1ldGVycy53ZWJQYWdlSUQgPSB3ZWJQ
YWdlID8gd2ViUGFnZS0+cGFnZUlEKCkgOiAwOwogICAgIGxvYWRQYXJhbWV0ZXJzLndlYkZyYW1l
SUQgPSB3ZWJGcmFtZSA/IHdlYkZyYW1lLT5mcmFtZUlEKCkgOiAwOwotICAgIGxvYWRQYXJhbWV0
ZXJzLnNlc3Npb25JRCA9IHdlYlBhZ2UgPyB3ZWJQYWdlLT5zZXNzaW9uSUQoKSA6IFNlc3Npb25U
cmFja2VyOjpkZWZhdWx0U2Vzc2lvbklEOworICAgIGxvYWRQYXJhbWV0ZXJzLnNlc3Npb25JRCA9
IHdlYlBhZ2UgPyB3ZWJQYWdlLT5zZXNzaW9uSUQoKSA6IFNlc3Npb25JRDo6ZGVmYXVsdFNlc3Np
b25JRDsKICAgICBsb2FkUGFyYW1ldGVycy5yZXF1ZXN0ID0gcmVzb3VyY2VMb2FkZXItPnJlcXVl
c3QoKTsKICAgICBsb2FkUGFyYW1ldGVycy5wcmlvcml0eSA9IHByaW9yaXR5OwogICAgIGxvYWRQ
YXJhbWV0ZXJzLmNvbnRlbnRTbmlmZmluZ1BvbGljeSA9IGNvbnRlbnRTbmlmZmluZ1BvbGljeTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2Vi
UGxhdGZvcm1TdHJhdGVnaWVzLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmNwcAppbmRleCAzZTcwN2M3Li5jZTdkZDUy
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dl
YlBsYXRmb3JtU3RyYXRlZ2llcy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuY3BwCkBAIC01NCw2ICs1NCw3IEBA
CiAjaW5jbHVkZSA8V2ViQ29yZS9QbGF0Zm9ybUNvb2tpZUphci5oPgogI2luY2x1ZGUgPFdlYkNv
cmUvUGxhdGZvcm1QYXN0ZWJvYXJkLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJjZUVycm9y
Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9TZXNzaW9uSUQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1N0
b3JhZ2VOYW1lc3BhY2UuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1N1YmZyYW1lTG9hZGVyLmg+CiAj
aW5jbHVkZSA8V2ViQ29yZS9VUkwuaD4KQEAgLTI2Myw3ICsyNjQsNyBAQCB2b2lkIFdlYlBsYXRm
b3JtU3RyYXRlZ2llczo6bG9hZFJlc291cmNlU3luY2hyb25vdXNseShOZXR3b3JraW5nQ29udGV4
dCogY29udGV4dAogICAgIGxvYWRQYXJhbWV0ZXJzLmlkZW50aWZpZXIgPSByZXNvdXJjZUxvYWRJ
ZGVudGlmaWVyOwogICAgIGxvYWRQYXJhbWV0ZXJzLndlYlBhZ2VJRCA9IHdlYlBhZ2UgPyB3ZWJQ
YWdlLT5wYWdlSUQoKSA6IDA7CiAgICAgbG9hZFBhcmFtZXRlcnMud2ViRnJhbWVJRCA9IHdlYkZy
YW1lID8gd2ViRnJhbWUtPmZyYW1lSUQoKSA6IDA7Ci0gICAgbG9hZFBhcmFtZXRlcnMuc2Vzc2lv
bklEID0gd2ViUGFnZSA/IHdlYlBhZ2UtPnNlc3Npb25JRCgpIDogU2Vzc2lvblRyYWNrZXI6OmRl
ZmF1bHRTZXNzaW9uSUQ7CisgICAgbG9hZFBhcmFtZXRlcnMuc2Vzc2lvbklEID0gd2ViUGFnZSA/
IHdlYlBhZ2UtPnNlc3Npb25JRCgpIDogU2Vzc2lvbklEOjpkZWZhdWx0U2Vzc2lvbklEOwogICAg
IGxvYWRQYXJhbWV0ZXJzLnJlcXVlc3QgPSByZXF1ZXN0OwogICAgIGxvYWRQYXJhbWV0ZXJzLnBy
aW9yaXR5ID0gUmVzb3VyY2VMb2FkUHJpb3JpdHlIaWdoZXN0OwogICAgIGxvYWRQYXJhbWV0ZXJz
LmNvbnRlbnRTbmlmZmluZ1BvbGljeSA9IFNuaWZmQ29udGVudDsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvbWFjL1dlYkZyYW1lTmV0d29ya2lu
Z0NvbnRleHQubW0gYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L21h
Yy9XZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0Lm1tCmluZGV4IDNjNTI1MTYuLmY2NmY5MzcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvbWFjL1dl
YkZyYW1lTmV0d29ya2luZ0NvbnRleHQubW0KKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJDb3JlU3VwcG9ydC9tYWMvV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5tbQpAQCAtMzUs
NiArMzUsNyBAQAogI2luY2x1ZGUgPFdlYkNvcmUvTmV0d29ya1N0b3JhZ2VTZXNzaW9uLmg+CiAj
aW5jbHVkZSA8V2ViQ29yZS9QYWdlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJjZUVycm9y
Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9TZXNzaW9uSUQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Nl
dHRpbmdzLmg+CiAjaW5jbHVkZSA8V2ViS2l0U3lzdGVtSW50ZXJmYWNlLmg+CiAKQEAgLTQ0LDcg
KzQ1LDcgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiAgICAgCiB2b2lkIFdlYkZyYW1lTmV0d29ya2lu
Z0NvbnRleHQ6OmVuc3VyZVByaXZhdGVCcm93c2luZ1Nlc3Npb24odWludDY0X3Qgc2Vzc2lvbklE
KQogewotICAgIEFTU0VSVChTZXNzaW9uVHJhY2tlcjo6aXNFcGhlbWVyYWxJRChzZXNzaW9uSUQp
KTsKKyAgICBBU1NFUlQoU2Vzc2lvbklEOjppc0VwaGVtZXJhbElEKHNlc3Npb25JRCkpOwogCiAg
ICAgaWYgKFNlc3Npb25UcmFja2VyOjpzZXNzaW9uKHNlc3Npb25JRCkpCiAgICAgICAgIHJldHVy
bjsKQEAgLTEwMSwxMCArMTAyLDcgQEAgUmVzb3VyY2VFcnJvciBXZWJGcmFtZU5ldHdvcmtpbmdD
b250ZXh0OjpibG9ja2VkRXJyb3IoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXEKIE5ldHdvcmtT
dG9yYWdlU2Vzc2lvbiYgV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dDo6c3RvcmFnZVNlc3Npb24o
KSBjb25zdAogewogICAgIEFTU0VSVChSdW5Mb29wOjppc01haW4oKSk7Ci0KLSAgICBpZiAoZnJh
bWUoKSkKLSAgICAgICAgcmV0dXJuICpTZXNzaW9uVHJhY2tlcjo6c2Vzc2lvbih3ZWJGcmFtZUxv
YWRlckNsaWVudCgpLT53ZWJGcmFtZSgpLT5wYWdlKCktPnNlc3Npb25JRCgpKTsKLSAgICByZXR1
cm4gTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpkZWZhdWx0U3RvcmFnZVNlc3Npb24oKTsKKyAgICBy
ZXR1cm4gKlNlc3Npb25UcmFja2VyOjpzZXNzaW9uKGZyYW1lKCkgPyBmcmFtZSgpLT5wYWdlKCkt
PnNlc3Npb25JRCgpIDogU2Vzc2lvbklEOjpkZWZhdWx0U2Vzc2lvbklEKTsKIH0KIAogV2ViRnJh
bWVMb2FkZXJDbGllbnQqIFdlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQ6OndlYkZyYW1lTG9hZGVy
Q2xpZW50KCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvc291cC9XZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0LmNwcCBiL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvc291cC9XZWJGcmFtZU5ldHdvcmtpbmdD
b250ZXh0LmNwcAppbmRleCA0ZDEzZGMzLi5kZGIxNGU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L3NvdXAvV2ViRnJhbWVOZXR3b3JraW5nQ29u
dGV4dC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9z
b3VwL1dlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQuY3BwCkBAIC0zMCw2ICszMCw3IEBACiAjaW5j
bHVkZSAiU2Vzc2lvblRyYWNrZXIuaCIKICNpbmNsdWRlICJXZWJGcmFtZS5oIgogI2luY2x1ZGUg
IldlYlBhZ2UuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL1Nlc3Npb25JRC5oPgogI2luY2x1ZGUgPFdl
YkNvcmUvU2V0dGluZ3MuaD4KICNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KIApAQCAt
NTUsNyArNTYsNyBAQCBXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0OjpXZWJGcmFtZU5ldHdvcmtp
bmdDb250ZXh0KFdlYkZyYW1lKiBmcmFtZSkKIE5ldHdvcmtTdG9yYWdlU2Vzc2lvbiYgV2ViRnJh
bWVOZXR3b3JraW5nQ29udGV4dDo6c3RvcmFnZVNlc3Npb24oKSBjb25zdAogewogICAgIGlmIChm
cmFtZSgpICYmIGZyYW1lKCktPnNldHRpbmdzKCkucHJpdmF0ZUJyb3dzaW5nRW5hYmxlZCgpKQot
ICAgICAgICByZXR1cm4gKlNlc3Npb25UcmFja2VyOjpzZXNzaW9uKFNlc3Npb25UcmFja2VyOjps
ZWdhY3lQcml2YXRlU2Vzc2lvbklEKTsKKyAgICAgICAgcmV0dXJuICpTZXNzaW9uVHJhY2tlcjo6
c2Vzc2lvbihTZXNzaW9uSUQ6OmxlZ2FjeVByaXZhdGVTZXNzaW9uSUQpOwogCiAgICAgcmV0dXJu
IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6ZGVmYXVsdFN0b3JhZ2VTZXNzaW9uKCk7CiB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAgYi9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKaW5kZXggMGVlYTJi
Yi4uZjUxMGM5MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdl
L1dlYlBhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQ
YWdlLmNwcApAQCAtMTMzLDYgKzEzMyw3IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9TY2hlbWVSZWdp
c3RyeS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU2NyaXB0Q29udHJvbGxlci5oPgogI2luY2x1ZGUg
PFdlYkNvcmUvU2VyaWFsaXplZFNjcmlwdFZhbHVlLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9TZXNz
aW9uSUQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1NldHRpbmdzLmg+CiAjaW5jbHVkZSA8V2ViQ29y
ZS9TaGFkb3dSb290Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TaGFyZWRCdWZmZXIuaD4KQEAgLTIy
Niw3ICsyMjcsNiBAQCBQYXNzUmVmUHRyPFdlYlBhZ2U+IFdlYlBhZ2U6OmNyZWF0ZSh1aW50NjRf
dCBwYWdlSUQsIGNvbnN0IFdlYlBhZ2VDcmVhdGlvblBhcmFtZQogCiBXZWJQYWdlOjpXZWJQYWdl
KHVpbnQ2NF90IHBhZ2VJRCwgY29uc3QgV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycyYgcGFyYW1l
dGVycykKICAgICA6IG1fcGFnZUlEKHBhZ2VJRCkKLSAgICAsIG1fc2Vzc2lvbklEKDApCiAgICAg
LCBtX3ZpZXdTaXplKHBhcmFtZXRlcnMudmlld1NpemUpCiAgICAgLCBtX2hhc1NlZW5QbHVnaW4o
ZmFsc2UpCiAgICAgLCBtX3VzZUZpeGVkTGF5b3V0KGZhbHNlKQpAQCAtMjA5OCwyMSArMjA5OCwy
MSBAQCB2b2lkIFdlYlBhZ2U6OnNldExheWVySG9zdGluZ01vZGUodW5zaWduZWQgbGF5ZXJIb3N0
aW5nTW9kZSkKIAogdWludDY0X3QgV2ViUGFnZTo6c2Vzc2lvbklEKCkgY29uc3QKIHsKLSAgICBp
ZiAobV9zZXNzaW9uSUQpCi0gICAgICAgIHJldHVybiBtX3Nlc3Npb25JRDsKKyAgICBpZiAobV9w
YWdlLT5pc1Nlc3Npb25JRFNldCgpKQorICAgICAgICByZXR1cm4gbV9wYWdlLT5zZXNzaW9uSUQo
KTsKIAotICAgIHJldHVybiBtX3BhZ2UtPnNldHRpbmdzKCkucHJpdmF0ZUJyb3dzaW5nRW5hYmxl
ZCgpID8gU2Vzc2lvblRyYWNrZXI6OmxlZ2FjeVByaXZhdGVTZXNzaW9uSUQgOiBTZXNzaW9uVHJh
Y2tlcjo6ZGVmYXVsdFNlc3Npb25JRDsKKyAgICByZXR1cm4gbV9wYWdlLT5zZXR0aW5ncygpLnBy
aXZhdGVCcm93c2luZ0VuYWJsZWQoKSA/IFNlc3Npb25JRDo6bGVnYWN5UHJpdmF0ZVNlc3Npb25J
RCA6IFNlc3Npb25JRDo6ZGVmYXVsdFNlc3Npb25JRDsKIH0KIAogYm9vbCBXZWJQYWdlOjppc1Vz
aW5nRXBoZW1lcmFsU2Vzc2lvbigpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIFNlc3Npb25UcmFja2Vy
Ojppc0VwaGVtZXJhbElEKHNlc3Npb25JRCgpKTsKKyAgICByZXR1cm4gU2Vzc2lvbklEOjppc0Vw
aGVtZXJhbElEKHNlc3Npb25JRCgpKTsKIH0KIAogdm9pZCBXZWJQYWdlOjpzZXRTZXNzaW9uSUQo
dWludDY0X3Qgc2Vzc2lvbklEKQogewotICAgIG1fc2Vzc2lvbklEID0gc2Vzc2lvbklEOwotICAg
IGlmIChTZXNzaW9uVHJhY2tlcjo6aXNFcGhlbWVyYWxJRChzZXNzaW9uSUQpKQorICAgIG1fcGFn
ZS0+c2V0U2Vzc2lvbklEKHNlc3Npb25JRCk7CisgICAgaWYgKFNlc3Npb25JRDo6aXNFcGhlbWVy
YWxJRChzZXNzaW9uSUQpKQogICAgICAgICBXZWJQcm9jZXNzOjpzaGFyZWQoKS5lbnN1cmVQcml2
YXRlQnJvd3NpbmdTZXNzaW9uKHNlc3Npb25JRCk7CiB9CiAKQEAgLTI0MTgsOCArMjQxOCw4IEBA
IHZvaWQgV2ViUGFnZTo6dXBkYXRlUHJlZmVyZW5jZXMoY29uc3QgV2ViUHJlZmVyZW5jZXNTdG9y
ZSYgc3RvcmUpCiAgICAgc2V0dGluZ3Muc2V0TG9jYWxTdG9yYWdlRW5hYmxlZChzdG9yZS5nZXRC
b29sVmFsdWVGb3JLZXkoV2ViUHJlZmVyZW5jZXNLZXk6OmxvY2FsU3RvcmFnZUVuYWJsZWRLZXko
KSkpOwogICAgIHNldHRpbmdzLnNldFhTU0F1ZGl0b3JFbmFibGVkKHN0b3JlLmdldEJvb2xWYWx1
ZUZvcktleShXZWJQcmVmZXJlbmNlc0tleTo6eHNzQXVkaXRvckVuYWJsZWRLZXkoKSkpOwogICAg
IHNldHRpbmdzLnNldEZyYW1lRmxhdHRlbmluZ0VuYWJsZWQoc3RvcmUuZ2V0Qm9vbFZhbHVlRm9y
S2V5KFdlYlByZWZlcmVuY2VzS2V5OjpmcmFtZUZsYXR0ZW5pbmdFbmFibGVkS2V5KCkpKTsKLSAg
ICBpZiAobV9zZXNzaW9uSUQpCi0gICAgICAgIHNldHRpbmdzLnNldFByaXZhdGVCcm93c2luZ0Vu
YWJsZWQoU2Vzc2lvblRyYWNrZXI6OmlzRXBoZW1lcmFsSUQobV9zZXNzaW9uSUQpKTsKKyAgICBp
ZiAobV9wYWdlLT5pc1Nlc3Npb25JRFNldCgpKQorICAgICAgICBzZXR0aW5ncy5zZXRQcml2YXRl
QnJvd3NpbmdFbmFibGVkKFNlc3Npb25JRDo6aXNFcGhlbWVyYWxJRChtX3BhZ2UtPnNlc3Npb25J
RCgpKSk7CiAgICAgZWxzZQogICAgICAgICBzZXR0aW5ncy5zZXRQcml2YXRlQnJvd3NpbmdFbmFi
bGVkKHN0b3JlLmdldEJvb2xWYWx1ZUZvcktleShXZWJQcmVmZXJlbmNlc0tleTo6cHJpdmF0ZUJy
b3dzaW5nRW5hYmxlZEtleSgpKSk7CiAgICAgc2V0dGluZ3Muc2V0RGV2ZWxvcGVyRXh0cmFzRW5h
YmxlZChzdG9yZS5nZXRCb29sVmFsdWVGb3JLZXkoV2ViUHJlZmVyZW5jZXNLZXk6OmRldmVsb3Bl
ckV4dHJhc0VuYWJsZWRLZXkoKSkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFn
ZS9XZWJQYWdlLmgKaW5kZXggNTEzMTI0Yy4uNmZkMDYzNCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCkBAIC04OTksNyArODk5LDYgQEAgcHJpdmF0ZToK
ICAgICB2b2lkIHJlcG9ydFVzZWRGZWF0dXJlcygpOwogCiAgICAgdWludDY0X3QgbV9wYWdlSUQ7
Ci0gICAgdWludDY0X3QgbV9zZXNzaW9uSUQ7CiAKICAgICBPd25QdHI8V2ViQ29yZTo6UGFnZT4g
bV9wYWdlOwogICAgIFJlZlB0cjxXZWJGcmFtZT4gbV9tYWluRnJhbWU7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>225304</attachid>
            <date>2014-02-26 15:12:28 -0800</date>
            <delta_ts>2014-02-26 19:38:48 -0800</delta_ts>
            <desc>split out SessionID changes (129141)</desc>
            <filename>memcachesession.22.diff</filename>
            <type>text/plain</type>
            <size>66621</size>
            <attacher name="Martin Hock">mhock</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCAwNGJkYzE2Li41Njk1ZmIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsOTQg
QEAKKzIwMTQtMDItMjYgIE1hcnRpbiBIb2NrICA8bWhvY2tAYXBwbGUuY29tPgorCisgICAgICAg
IEFkZCBzdXBwb3J0IGZvciBzZXNzaW9ucyB0byBNZW1vcnlDYWNoZS4KKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyNzc5NAorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2ViQ29yZS5leHAuaW46CisgICAg
ICAgICogZWRpdGluZy9EZWxldGVCdXR0b25Db250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkRlbGV0ZUJ1dHRvbkNvbnRyb2xsZXI6OmNyZWF0ZURlbGV0aW9uVUkpOiBJbml0aWFsaXpl
IENhY2hlZEltYWdlIHdpdGggc2Vzc2lvbklELgorICAgICAgICAqIGh0bWwvRE9NVVJMLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkRPTVVSTDo6cmV2b2tlT2JqZWN0VVJMKTogUmVtb3ZlIFVSTCBm
cm9tIE1lbW9yeUNhY2hlIGZvciBhbGwgc2Vzc2lvbnMuCisgICAgICAgICogaW5zcGVjdG9yL0lu
c3BlY3RvclBhZ2VBZ2VudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JQYWdlQWdl
bnQ6OmNhY2hlZFJlc291cmNlKTogUGFzcyBzZXNzaW9uSUQgdG8gTWVtb3J5Q2FjaGUuCisgICAg
ICAgICogaW5zcGVjdG9yL0luc3BlY3RvclJlc291cmNlQWdlbnQuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6SW5zcGVjdG9yUmVzb3VyY2VBZ2VudDo6cmVwbGF5WEhSKTogRGl0dG8uCisgICAgICAg
ICogbG9hZGVyL0RvY3VtZW50TG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmFyZUFsbExv
YWRlcnNQYWdlQ2FjaGVBY2NlcHRhYmxlKTogRGl0dG8uCisgICAgICAgICogbG9hZGVyL0ZyYW1l
TG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyOjp0ZWxsQ2xpZW50QWJv
dXRQYXN0TWVtb3J5Q2FjaGVMb2Fkcyk6IERpdHRvLgorICAgICAgICAqIGxvYWRlci9JbWFnZUxv
YWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZUxvYWRlcjo6dXBkYXRlRnJvbUVsZW1l
bnQpOiBJbml0aWFsaXplIENhY2hlZEltYWdlIHdpdGggc2Vzc2lvbklELgorICAgICAgICAqIGxv
YWRlci9hcmNoaXZlL2NmL0xlZ2FjeVdlYkFyY2hpdmUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
TGVnYWN5V2ViQXJjaGl2ZTo6Y3JlYXRlKTogUGFzcyBzZXNzaW9uSUQgdG8gTWVtb3J5Q2FjaGUu
CisgICAgICAgICogbG9hZGVyL2NhY2hlL0NhY2hlZENTU1N0eWxlU2hlZXQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6Q2FjaGVkQ1NTU3R5bGVTaGVldDo6Q2FjaGVkQ1NTU3R5bGVTaGVldCk6IENv
bnN0cnVjdG9yIHRha2VzIHNlc3Npb25JRC4KKyAgICAgICAgKiBsb2FkZXIvY2FjaGUvQ2FjaGVk
Q1NTU3R5bGVTaGVldC5oOgorICAgICAgICAqIGxvYWRlci9jYWNoZS9DYWNoZWRGb250LmNwcDog
RGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRGb250OjpDYWNoZWRGb250KToKKyAgICAg
ICAgKiBsb2FkZXIvY2FjaGUvQ2FjaGVkRm9udC5oOgorICAgICAgICAqIGxvYWRlci9jYWNoZS9D
YWNoZWRJbWFnZS5jcHA6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkSW1hZ2U6OkNh
Y2hlZEltYWdlKToKKyAgICAgICAgKiBsb2FkZXIvY2FjaGUvQ2FjaGVkSW1hZ2UuaDoKKyAgICAg
ICAgKiBsb2FkZXIvY2FjaGUvQ2FjaGVkUmF3UmVzb3VyY2UuY3BwOiBEaXR0by4KKyAgICAgICAg
KFdlYkNvcmU6OkNhY2hlZFJhd1Jlc291cmNlOjpDYWNoZWRSYXdSZXNvdXJjZSk6CisgICAgICAg
ICogbG9hZGVyL2NhY2hlL0NhY2hlZFJhd1Jlc291cmNlLmg6CisgICAgICAgICogbG9hZGVyL2Nh
Y2hlL0NhY2hlZFJlc291cmNlLmNwcDogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRS
ZXNvdXJjZTo6Q2FjaGVkUmVzb3VyY2UpOgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkUmVzb3Vy
Y2U6On5DYWNoZWRSZXNvdXJjZSk6IFBhc3Mgc2Vzc2lvbklEIHRvIE1lbW9yeUNhY2hlLgorICAg
ICAgICAqIGxvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZS5oOgorICAgICAgICAoV2ViQ29yZTo6
Q2FjaGVkUmVzb3VyY2U6OnNlc3Npb25JRCk6CisgICAgICAgICogbG9hZGVyL2NhY2hlL0NhY2hl
ZFJlc291cmNlTG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZVJlc291cmNlKTog
Q29uc3RydWN0b3JzIHRha2Ugc2Vzc2lvbklELgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkUmVz
b3VyY2VMb2FkZXI6OnNlc3Npb25JRCk6IFJldHJpZXZlIHNlc3Npb25JRCBmcm9tIHBhZ2UuCisg
ICAgICAgIChXZWJDb3JlOjpDYWNoZWRSZXNvdXJjZUxvYWRlcjo6cmVxdWVzdFVzZXJDU1NTdHls
ZVNoZWV0KTogUGFzcyBzZXNzaW9uSUQgdG8gTWVtb3J5Q2FjaGUuCisgICAgICAgIChXZWJDb3Jl
OjpDYWNoZWRSZXNvdXJjZUxvYWRlcjo6cmVxdWVzdFJlc291cmNlKTogSW5pdGlhbGl6ZSBDYWNo
ZWRDU1NTdHlsZVNoZWV0IHdpdGggc2Vzc2lvbklELgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVk
UmVzb3VyY2VMb2FkZXI6OnJldmFsaWRhdGVSZXNvdXJjZSk6IEluaXRpYWxpemUgY2FjaGVkIHJl
c291cmNlIHdpdGggc2Vzc2lvbklELgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkUmVzb3VyY2VM
b2FkZXI6OmxvYWRSZXNvdXJjZSk6IFBhc3Mgc2Vzc2lvbklEIHRvIE1lbW9yeUNhY2hlIGFuZCBp
bml0aWFsaXplIGNhY2hlZCByZXNvdXJjZSB3aXRoIHNlc3Npb25JRC4KKyAgICAgICAgKiBsb2Fk
ZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VMb2FkZXIuaDoKKyAgICAgICAgKiBsb2FkZXIvY2FjaGUv
Q2FjaGVkU1ZHRG9jdW1lbnQuY3BwOiBDb25zdHJ1Y3RvciB0YWtlcyBzZXNzaW9uSUQuCisgICAg
ICAgIChXZWJDb3JlOjpDYWNoZWRTVkdEb2N1bWVudDo6Q2FjaGVkU1ZHRG9jdW1lbnQpOgorICAg
ICAgICAqIGxvYWRlci9jYWNoZS9DYWNoZWRTVkdEb2N1bWVudC5oOgorICAgICAgICAqIGxvYWRl
ci9jYWNoZS9DYWNoZWRTY3JpcHQuY3BwOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OkNhY2hl
ZFNjcmlwdDo6Q2FjaGVkU2NyaXB0KToKKyAgICAgICAgKiBsb2FkZXIvY2FjaGUvQ2FjaGVkU2Ny
aXB0Lmg6CisgICAgICAgICogbG9hZGVyL2NhY2hlL0NhY2hlZFRleHRUcmFjay5jcHA6IERpdHRv
LgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkVGV4dFRyYWNrOjpDYWNoZWRUZXh0VHJhY2spOgor
ICAgICAgICAqIGxvYWRlci9jYWNoZS9DYWNoZWRUZXh0VHJhY2suaDoKKyAgICAgICAgKiBsb2Fk
ZXIvY2FjaGUvQ2FjaGVkWFNMU3R5bGVTaGVldC5jcHA6IERpdHRvLgorICAgICAgICAoV2ViQ29y
ZTo6Q2FjaGVkWFNMU3R5bGVTaGVldDo6Q2FjaGVkWFNMU3R5bGVTaGVldCk6CisgICAgICAgICog
bG9hZGVyL2NhY2hlL0NhY2hlZFhTTFN0eWxlU2hlZXQuaDoKKyAgICAgICAgKiBsb2FkZXIvY2Fj
aGUvTWVtb3J5Q2FjaGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVtb3J5Q2FjaGU6OmdldFNl
c3Npb25NYXApOiBSZXRyaWV2ZSBDYWNoZWRSZXNvdXJjZU1hcCBiYXNlZCBvbiBzZXNzaW9uSUQu
CisgICAgICAgIChXZWJDb3JlOjpNZW1vcnlDYWNoZTo6YWRkKTogVXNlIHNlc3Npb25JRCBmcm9t
IENhY2hlZFJlc291cmNlIHBhcmFtZXRlci4KKyAgICAgICAgKFdlYkNvcmU6Ok1lbW9yeUNhY2hl
OjpyZXZhbGlkYXRpb25TdWNjZWVkZWQpOiBBZGQgc2Vzc2lvbklEIHBhcmFtZXRlci4KKyAgICAg
ICAgKFdlYkNvcmU6Ok1lbW9yeUNhY2hlOjpyZXNvdXJjZUZvclVSTCk6IERpdHRvLgorICAgICAg
ICAoV2ViQ29yZTo6TWVtb3J5Q2FjaGU6OnJlc291cmNlRm9yUmVxdWVzdCk6IERpdHRvLCBhbHNv
IG1vdmUgaW1wbCBpbnRvIGltcGwgbWV0aG9kLgorICAgICAgICAoV2ViQ29yZTo6TWVtb3J5Q2Fj
aGU6OnJlc291cmNlRm9yUmVxdWVzdEltcGwpOiBBZGQgQ2FjaGVkUmVzb3VyY2VNYXAgcGFyYW1l
dGVyLgorICAgICAgICAoV2ViQ29yZTo6TWVtb3J5Q2FjaGU6OmFkZEltYWdlVG9DYWNoZSk6IFVz
ZSBkZWZhdWx0IHNlc3Npb25JRC4KKyAgICAgICAgKFdlYkNvcmU6Ok1lbW9yeUNhY2hlOjpyZW1v
dmVJbWFnZUZyb21DYWNoZSk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6TWVtb3J5Q2FjaGU6
OmV2aWN0KTogVXNlIHNlc3Npb25JRCBmcm9tIENhY2hlZFJlc291cmNlIHBhcmFtZXRlci4KKyAg
ICAgICAgKFdlYkNvcmU6Ok1lbW9yeUNhY2hlOjpyZW1vdmVSZXNvdXJjZXNXaXRoT3JpZ2luKTog
SXRlcmF0ZSB0aHJvdWdoIGFsbCBDYWNoZWRSZXNvdXJjZU1hcHMuCisgICAgICAgIChXZWJDb3Jl
OjpNZW1vcnlDYWNoZTo6Z2V0T3JpZ2luc1dpdGhDYWNoZSk6IERpdHRvLgorICAgICAgICAoV2Vi
Q29yZTo6TWVtb3J5Q2FjaGU6OnJlbW92ZVVybEZyb21DYWNoZSk6IEFkZCBzZXNzaW9uSUQgcGFy
YW1ldGVyLgorICAgICAgICAoV2ViQ29yZTo6TWVtb3J5Q2FjaGU6OnJlbW92ZVJlcXVlc3RGcm9t
Q2FjaGUpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6Ok1lbW9yeUNhY2hlOjpyZW1vdmVSZXF1
ZXN0RnJvbUNhY2hlSW1wbCk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6TWVtb3J5Q2FjaGU6
OnJlbW92ZVJlcXVlc3RGcm9tU2Vzc2lvbkNhY2hlcyk6IEl0ZXJhdGUgdGhyb3VnaCBhbGwgQ2Fj
aGVkUmVzb3VyY2VNYXBzLgorICAgICAgICAoV2ViQ29yZTo6TWVtb3J5Q2FjaGU6OmNyb3NzVGhy
ZWFkUmVtb3ZlUmVxdWVzdEZyb21DYWNoZSk6IEFkZCBzZXNzaW9uSUQgcGFyYW1ldGVyLgorICAg
ICAgICAoV2ViQ29yZTo6TWVtb3J5Q2FjaGU6OmdldFN0YXRpc3RpY3MpOiBJdGVyYXRlIHRocm91
Z2ggYWxsIENhY2hlZFJlc291cmNlTWFwcy4KKyAgICAgICAgKFdlYkNvcmU6Ok1lbW9yeUNhY2hl
OjpzZXREaXNhYmxlZCk6IERpdHRvLgorICAgICAgICAqIGxvYWRlci9jYWNoZS9NZW1vcnlDYWNo
ZS5oOiBDcmVhdGUgYW5vdGhlciBsZXZlbCBmb3IgY2FjaGUuCisgICAgICAgICogcGxhdGZvcm0v
Q3Jvc3NUaHJlYWRDb3BpZXIuY3BwOiBBbGxvdyBjb3B5aW5nIFNlc3Npb25JRHMgYWNyb3NzIHRo
cmVhZHMuCisgICAgICAgIChXZWJDb3JlOjpTZXNzaW9uSUQ+Ojpjb3B5KToKKyAgICAgICAgKiBw
bGF0Zm9ybS9Dcm9zc1RocmVhZENvcGllci5oOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsv
Y2YvUmVzb3VyY2VSZXF1ZXN0Lmg6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3Q6
OlJlc291cmNlUmVxdWVzdCk6IFJlbW92ZSB0cmFpbGluZyB3aGl0ZXNwYWNlLgorICAgICAgICAq
IHJlbmRlcmluZy9SZW5kZXJTbmFwc2hvdHRlZFBsdWdJbi5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpSZW5kZXJTbmFwc2hvdHRlZFBsdWdJbjo6dXBkYXRlU25hcHNob3QpOiBJbml0aWFsaXplIENh
Y2hlZEltYWdlIHdpdGggc2Vzc2lvbklELgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxzLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkludGVybmFsczo6aXNMb2FkaW5nRnJvbU1lbW9yeUNhY2hl
KTogUGFzcyBzZXNzaW9uSUQgdG8gTWVtb3J5Q2FjaGUuCisKIDIwMTQtMDItMjYgIEpvc2VwaCBQ
ZWNvcmFybyAgPHBlY29yYXJvQGFwcGxlLmNvbT4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBS
ZW1vdmUgY29uc29sZS5wcm9maWxlcyBmcm9tIHdpbmRvdy5jb25zb2xlIEFQSQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4gYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
LmV4cC5pbgppbmRleCA2NzMxNTg1Li43M2IyNDljIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLmV4cC5pbgorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgpAQCAt
MTY5LDkgKzE2OSw5IEBAIF9fWk43V2ViQ29yZTExTWVtb3J5Q2FjaGUxMXNldERpc2FibGVkRWIK
IF9fWk43V2ViQ29yZTExTWVtb3J5Q2FjaGUxM2dldFN0YXRpc3RpY3NFdgogX19aTjdXZWJDb3Jl
MTFNZW1vcnlDYWNoZTEzc2V0Q2FwYWNpdGllc0VqamoKIF9fWk43V2ViQ29yZTExTWVtb3J5Q2Fj
aGUxNGV2aWN0UmVzb3VyY2VzRXYKLV9fWk43V2ViQ29yZTExTWVtb3J5Q2FjaGUxNHJlc291cmNl
Rm9yVVJMRVJLTlNfM1VSTEUKK19fWk43V2ViQ29yZTExTWVtb3J5Q2FjaGUxNHJlc291cmNlRm9y
VVJMRVJLTlNfM1VSTEVOU185U2Vzc2lvbklERQogX19aTjdXZWJDb3JlMTFNZW1vcnlDYWNoZTE1
YWRkSW1hZ2VUb0NhY2hlRVA3Q0dJbWFnZVJLTlNfM1VSTEVSS04zV1RGNlN0cmluZ0UKLV9fWk43
V2ViQ29yZTExTWVtb3J5Q2FjaGUxOHJlc291cmNlRm9yUmVxdWVzdEVSS05TXzE1UmVzb3VyY2VS
ZXF1ZXN0RQorX19aTjdXZWJDb3JlMTFNZW1vcnlDYWNoZTE4cmVzb3VyY2VGb3JSZXF1ZXN0RVJL
TlNfMTVSZXNvdXJjZVJlcXVlc3RFTlNfOVNlc3Npb25JREUKIF9fWk43V2ViQ29yZTExTWVtb3J5
Q2FjaGUxOWdldE9yaWdpbnNXaXRoQ2FjaGVFUk4zV1RGN0hhc2hTZXRJTlMxXzZSZWZQdHJJTlNf
MTRTZWN1cml0eU9yaWdpbkVFRU5TXzE4U2VjdXJpdHlPcmlnaW5IYXNoRU5TMV8xMEhhc2hUcmFp
dHNJUzVfRUVFRQogX19aTjdXZWJDb3JlMTFNZW1vcnlDYWNoZTIwcmVtb3ZlSW1hZ2VGcm9tQ2Fj
aGVFUktOU18zVVJMRVJLTjNXVEY2U3RyaW5nRQogX19aTjdXZWJDb3JlMTFNZW1vcnlDYWNoZTI1
cmVtb3ZlUmVzb3VyY2VzV2l0aE9yaWdpbkVQTlNfMTRTZWN1cml0eU9yaWdpbkUKQEAgLTIzNDIs
OCArMjM0MiwxMCBAQCBfX1pON1dlYkNvcmUxMUZpbGVDaG9vc2VyMTZjaG9vc2VNZWRpYUZpbGVz
RVJLTjNXVEY2VmVjdG9ySU5TMV82U3RyaW5nRUxtMEVOUzFfMQogX19aTjdXZWJDb3JlMTFHZW9s
b2NhdGlvbjI5cmVzZXRBbGxHZW9sb2NhdGlvblBlcm1pc3Npb25FdgogX19aTjdXZWJDb3JlMTFJ
bWFnZVNvdXJjZTI2c19hY2NlbGVyYXRlZEltYWdlRGVjb2RpbmdFCiBfX1pON1dlYkNvcmUxMU1h
dGhNTE5hbWVzNGluaXRFdgorX19aTjdXZWJDb3JlMTFNZW1vcnlDYWNoZTE0cmVzb3VyY2VGb3JV
UkxFUktOU18zVVJMRQogX19aTjdXZWJDb3JlMTFNZW1vcnlDYWNoZTE4cHJ1bmVEZWFkUmVzb3Vy
Y2VzRXYKIF9fWk43V2ViQ29yZTExTWVtb3J5Q2FjaGUxOHBydW5lTGl2ZVJlc291cmNlc0ViCitf
X1pON1dlYkNvcmUxMU1lbW9yeUNhY2hlMThyZXNvdXJjZUZvclJlcXVlc3RFUktOU18xNVJlc291
cmNlUmVxdWVzdEUKIF9fWk43V2ViQ29yZTExaXNFbmRPZkxpbmVFUktOU18xNVZpc2libGVQb3Np
dGlvbkUKIF9fWk43V2ViQ29yZTEyQXVkaW9TZXNzaW9uMTFzZXRDYXRlZ29yeUVOUzBfMTJDYXRl
Z29yeVR5cGVFCiBfX1pON1dlYkNvcmUxMkF1ZGlvU2Vzc2lvbjEzc2hhcmVkU2Vzc2lvbkV2CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RlbGV0ZUJ1dHRvbkNvbnRyb2xsZXIu
Y3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EZWxldGVCdXR0b25Db250cm9sbGVyLmNwcApp
bmRleCA4MjBiMGFjLi4xNWU2N2U2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L0RlbGV0ZUJ1dHRvbkNvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
RGVsZXRlQnV0dG9uQ29udHJvbGxlci5jcHAKQEAgLTI1NCw3ICsyNTQsNyBAQCB2b2lkIERlbGV0
ZUJ1dHRvbkNvbnRyb2xsZXI6OmNyZWF0ZURlbGV0aW9uVUkoKQogICAgIGlmIChidXR0b25JbWFn
ZS0+aXNOdWxsKCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIGJ1dHRvbi0+c2V0Q2FjaGVkSW1h
Z2UobmV3IENhY2hlZEltYWdlKGJ1dHRvbkltYWdlLmdldCgpKSk7CisgICAgYnV0dG9uLT5zZXRD
YWNoZWRJbWFnZShuZXcgQ2FjaGVkSW1hZ2UoYnV0dG9uSW1hZ2UuZ2V0KCksIG1fZnJhbWUucGFn
ZSgpLT5zZXNzaW9uSUQoKSkpOwogCiAgICAgY29udGFpbmVyLT5hcHBlbmRDaGlsZChidXR0b24u
Z2V0KCksIGVjKTsKICAgICBBU1NFUlQoIWVjKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvRE9NVVJMLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRE9NVVJMLmNwcAppbmRleCA0
ZTQ0MjU0Li41YjQ5ZGNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0RPTVVSTC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9ET01VUkwuY3BwCkBAIC0xMjQsNyArMTI0LDcg
QEAgdm9pZCBET01VUkw6OnJldm9rZU9iamVjdFVSTChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBz
Y3JpcHRFeGVjdXRpb25Db250ZXh0LCBjb24KICNpZiBFTkFCTEUoQ0FDSEVfUEFSVElUSU9OSU5H
KQogICAgIHJlcXVlc3Quc2V0Q2FjaGVQYXJ0aXRpb24oc2NyaXB0RXhlY3V0aW9uQ29udGV4dC0+
dG9wT3JpZ2luKCktPmNhY2hlUGFydGl0aW9uKCkpOwogI2VuZGlmCi0gICAgTWVtb3J5Q2FjaGU6
OnJlbW92ZVJlcXVlc3RGcm9tQ2FjaGUoc2NyaXB0RXhlY3V0aW9uQ29udGV4dCwgcmVxdWVzdCk7
CisgICAgTWVtb3J5Q2FjaGU6OnJlbW92ZVJlcXVlc3RGcm9tU2Vzc2lvbkNhY2hlcyhzY3JpcHRF
eGVjdXRpb25Db250ZXh0LCByZXF1ZXN0KTsKIAogICAgIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQt
PnB1YmxpY1VSTE1hbmFnZXIoKS5yZXZva2UodXJsKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JQYWdlQWdlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL0luc3BlY3RvclBhZ2VBZ2VudC5jcHAKaW5kZXggY2ZlZTVkOC4uMzAxMjkwNSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclBhZ2VBZ2VudC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclBhZ2VBZ2VudC5jcHAK
QEAgLTI4Miw3ICsyODIsNyBAQCBDYWNoZWRSZXNvdXJjZSogSW5zcGVjdG9yUGFnZUFnZW50Ojpj
YWNoZWRSZXNvdXJjZShGcmFtZSogZnJhbWUsIGNvbnN0IFVSTCYgdXJsKQogI2lmIEVOQUJMRShD
QUNIRV9QQVJUSVRJT05JTkcpCiAgICAgICAgIHJlcXVlc3Quc2V0Q2FjaGVQYXJ0aXRpb24oZnJh
bWUtPmRvY3VtZW50KCktPnRvcE9yaWdpbigpLT5jYWNoZVBhcnRpdGlvbigpKTsKICNlbmRpZgot
ICAgICAgICBjYWNoZWRSZXNvdXJjZSA9IG1lbW9yeUNhY2hlKCktPnJlc291cmNlRm9yUmVxdWVz
dChyZXF1ZXN0KTsKKyAgICAgICAgY2FjaGVkUmVzb3VyY2UgPSBtZW1vcnlDYWNoZSgpLT5yZXNv
dXJjZUZvclJlcXVlc3QocmVxdWVzdCwgZnJhbWUtPnBhZ2UoKS0+c2Vzc2lvbklEKCkpOwogICAg
IH0KIAogICAgIHJldHVybiBjYWNoZWRSZXNvdXJjZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9JbnNwZWN0b3JSZXNvdXJjZUFnZW50LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9JbnNwZWN0b3JSZXNvdXJjZUFnZW50LmNwcAppbmRleCA4OWU1Y2Y0Li5iMWNk
Y2QyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUmVzb3Vy
Y2VBZ2VudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclJlc291
cmNlQWdlbnQuY3BwCkBAIC01OTQsNyArNTk0LDcgQEAgdm9pZCBJbnNwZWN0b3JSZXNvdXJjZUFn
ZW50OjpyZXBsYXlYSFIoRXJyb3JTdHJpbmcqLCBjb25zdCBTdHJpbmcmIHJlcXVlc3RJZCkKICNp
ZiBFTkFCTEUoQ0FDSEVfUEFSVElUSU9OSU5HKQogICAgIHJlcXVlc3Quc2V0Q2FjaGVQYXJ0aXRp
b24obV9wYWdlQWdlbnQtPm1haW5GcmFtZSgpLT5kb2N1bWVudCgpLT50b3BPcmlnaW4oKS0+Y2Fj
aGVQYXJ0aXRpb24oKSk7CiAjZW5kaWYKLSAgICBDYWNoZWRSZXNvdXJjZSogY2FjaGVkUmVzb3Vy
Y2UgPSBtZW1vcnlDYWNoZSgpLT5yZXNvdXJjZUZvclJlcXVlc3QocmVxdWVzdCk7CisgICAgQ2Fj
aGVkUmVzb3VyY2UqIGNhY2hlZFJlc291cmNlID0gbWVtb3J5Q2FjaGUoKS0+cmVzb3VyY2VGb3JS
ZXF1ZXN0KHJlcXVlc3QsIG1fcGFnZUFnZW50LT5wYWdlKCktPnNlc3Npb25JRCgpKTsKICAgICBp
ZiAoY2FjaGVkUmVzb3VyY2UpCiAgICAgICAgIG1lbW9yeUNhY2hlKCktPnJlbW92ZShjYWNoZWRS
ZXNvdXJjZSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudExv
YWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkZXIuY3BwCmluZGV4
IDUzOWE1NWQuLjRjZWIyYjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1
bWVudExvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50TG9hZGVy
LmNwcApAQCAtMTA1LDcgKzEwNSwxMCBAQCBzdGF0aWMgYm9vbCBhcmVBbGxMb2FkZXJzUGFnZUNh
Y2hlQWNjZXB0YWJsZShjb25zdCBSZXNvdXJjZUxvYWRlclNldCYgbG9hZGVycykKICAgICAgICAg
aWYgKCFoYW5kbGUpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICAgICAgQ2FjaGVk
UmVzb3VyY2UqIGNhY2hlZFJlc291cmNlID0gbWVtb3J5Q2FjaGUoKS0+cmVzb3VyY2VGb3JVUkwo
aGFuZGxlLT5maXJzdFJlcXVlc3QoKS51cmwoKSk7CisgICAgICAgIGlmICghbG9hZGVyLT5mcmFt
ZUxvYWRlcigpKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgICAgIENhY2hlZFJl
c291cmNlKiBjYWNoZWRSZXNvdXJjZSA9IG1lbW9yeUNhY2hlKCktPnJlc291cmNlRm9yVVJMKGhh
bmRsZS0+Zmlyc3RSZXF1ZXN0KCkudXJsKCksIGxvYWRlci0+ZnJhbWVMb2FkZXIoKS0+ZnJhbWUo
KS5wYWdlKCktPnNlc3Npb25JRCgpKTsKICAgICAgICAgaWYgKCFjYWNoZWRSZXNvdXJjZSkKICAg
ICAgICAgICAgIHJldHVybiBmYWxzZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL0ZyYW1lTG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5j
cHAKaW5kZXggYjY3MmUyNS4uNWY3YjRlMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL0ZyYW1lTG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2Fk
ZXIuY3BwCkBAIC0zMzgzLDcgKzMzODMsNyBAQCB2b2lkIEZyYW1lTG9hZGVyOjp0ZWxsQ2xpZW50
QWJvdXRQYXN0TWVtb3J5Q2FjaGVMb2FkcygpCiAKICAgICBzaXplX3Qgc2l6ZSA9IHBhc3RMb2Fk
cy5zaXplKCk7CiAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBzaXplOyArK2kpIHsKLSAgICAg
ICAgQ2FjaGVkUmVzb3VyY2UqIHJlc291cmNlID0gbWVtb3J5Q2FjaGUoKS0+cmVzb3VyY2VGb3JS
ZXF1ZXN0KHBhc3RMb2Fkc1tpXSk7CisgICAgICAgIENhY2hlZFJlc291cmNlKiByZXNvdXJjZSA9
IG1lbW9yeUNhY2hlKCktPnJlc291cmNlRm9yUmVxdWVzdChwYXN0TG9hZHNbaV0sIG1fZnJhbWUu
cGFnZSgpLT5zZXNzaW9uSUQoKSk7CiAKICAgICAgICAgLy8gRklYTUU6IFRoZXNlIGxvYWRzLCBs
b2FkZWQgZnJvbSBjYWNoZSwgYnV0IG5vdyBnb25lIGZyb20gdGhlIGNhY2hlIGJ5IHRoZSB0aW1l
CiAgICAgICAgIC8vIFBhZ2U6OnNldE1lbW9yeUNhY2hlQ2xpZW50Q2FsbHNFbmFibGVkKHRydWUp
IGlzIGNhbGxlZCwgd2lsbCBub3QgYmUgc2VlbiBieSB0aGUgY2xpZW50LgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvbG9hZGVyL0ltYWdlTG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9JbWFnZUxvYWRlci5jcHAKaW5kZXggMzA2YTFiNzYuLmU0OGQ0N2IgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9JbWFnZUxvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvbG9hZGVyL0ltYWdlTG9hZGVyLmNwcApAQCAtMzQsNiArMzQsNyBAQAogI2luY2x1ZGUgIkhU
TUxOYW1lcy5oIgogI2luY2x1ZGUgIkhUTUxPYmplY3RFbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRN
TFBhcnNlcklkaW9tcy5oIgorI2luY2x1ZGUgIlBhZ2UuaCIKICNpbmNsdWRlICJSZW5kZXJJbWFn
ZS5oIgogI2luY2x1ZGUgIlJlbmRlclNWR0ltYWdlLmgiCiAjaW5jbHVkZSAiU2VjdXJpdHlPcmln
aW4uaCIKQEAgLTE4OCw3ICsxODksNyBAQCB2b2lkIEltYWdlTG9hZGVyOjp1cGRhdGVGcm9tRWxl
bWVudCgpCiAgICAgICAgIGlmIChtX2xvYWRNYW51YWxseSkgewogICAgICAgICAgICAgYm9vbCBh
dXRvTG9hZE90aGVySW1hZ2VzID0gZG9jdW1lbnQuY2FjaGVkUmVzb3VyY2VMb2FkZXIoKS0+YXV0
b0xvYWRJbWFnZXMoKTsKICAgICAgICAgICAgIGRvY3VtZW50LmNhY2hlZFJlc291cmNlTG9hZGVy
KCktPnNldEF1dG9Mb2FkSW1hZ2VzKGZhbHNlKTsKLSAgICAgICAgICAgIG5ld0ltYWdlID0gbmV3
IENhY2hlZEltYWdlKHJlcXVlc3QucmVzb3VyY2VSZXF1ZXN0KCkpOworICAgICAgICAgICAgbmV3
SW1hZ2UgPSBuZXcgQ2FjaGVkSW1hZ2UocmVxdWVzdC5yZXNvdXJjZVJlcXVlc3QoKSwgbV9lbGVt
ZW50LmRvY3VtZW50KCkucGFnZSgpLT5zZXNzaW9uSUQoKSk7CiAgICAgICAgICAgICBuZXdJbWFn
ZS0+c2V0TG9hZGluZyh0cnVlKTsKICAgICAgICAgICAgIG5ld0ltYWdlLT5zZXRPd25pbmdDYWNo
ZWRSZXNvdXJjZUxvYWRlcihkb2N1bWVudC5jYWNoZWRSZXNvdXJjZUxvYWRlcigpKTsKICAgICAg
ICAgICAgIGRvY3VtZW50LmNhY2hlZFJlc291cmNlTG9hZGVyKCktPm1fZG9jdW1lbnRSZXNvdXJj
ZXMuc2V0KG5ld0ltYWdlLT51cmwoKSwgbmV3SW1hZ2UuZ2V0KCkpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvbG9hZGVyL2FyY2hpdmUvY2YvTGVnYWN5V2ViQXJjaGl2ZS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvYXJjaGl2ZS9jZi9MZWdhY3lXZWJBcmNoaXZlLmNwcAppbmRleCAz
MWYxYTFiLi4wMjRkMjhmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvYXJjaGl2
ZS9jZi9MZWdhY3lXZWJBcmNoaXZlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvYXJj
aGl2ZS9jZi9MZWdhY3lXZWJBcmNoaXZlLmNwcApAQCAtNTU0LDcgKzU1NCw3IEBAIFBhc3NSZWZQ
dHI8TGVnYWN5V2ViQXJjaGl2ZT4gTGVnYWN5V2ViQXJjaGl2ZTo6Y3JlYXRlKGNvbnN0IFN0cmlu
ZyYgbWFya3VwU3RyaW5nCiAjaWYgRU5BQkxFKENBQ0hFX1BBUlRJVElPTklORykKICAgICAgICAg
ICAgICAgICByZXF1ZXN0LnNldENhY2hlUGFydGl0aW9uKGZyYW1lLT5kb2N1bWVudCgpLT50b3BP
cmlnaW4oKS0+Y2FjaGVQYXJ0aXRpb24oKSk7CiAjZW5kaWYKLSAgICAgICAgICAgICAgICBDYWNo
ZWRSZXNvdXJjZSogY2FjaGVkUmVzb3VyY2UgPSBtZW1vcnlDYWNoZSgpLT5yZXNvdXJjZUZvclJl
cXVlc3QocmVxdWVzdCk7CisgICAgICAgICAgICAgICAgQ2FjaGVkUmVzb3VyY2UqIGNhY2hlZFJl
c291cmNlID0gbWVtb3J5Q2FjaGUoKS0+cmVzb3VyY2VGb3JSZXF1ZXN0KHJlcXVlc3QsIGZyYW1l
LT5wYWdlKCktPnNlc3Npb25JRCgpKTsKICAgICAgICAgICAgICAgICBpZiAoY2FjaGVkUmVzb3Vy
Y2UpIHsKICAgICAgICAgICAgICAgICAgICAgUmVzb3VyY2VCdWZmZXIqIGRhdGEgPSBjYWNoZWRS
ZXNvdXJjZS0+cmVzb3VyY2VCdWZmZXIoKTsKICAgICAgICAgICAgICAgICAgICAgcmVzb3VyY2Ug
PSBBcmNoaXZlUmVzb3VyY2U6OmNyZWF0ZShkYXRhID8gZGF0YS0+c2hhcmVkQnVmZmVyKCkgOiAw
LCBzdWJyZXNvdXJjZVVSTCwgY2FjaGVkUmVzb3VyY2UtPnJlc3BvbnNlKCkpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZENTU1N0eWxlU2hlZXQuY3BwIGIv
U291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZENTU1N0eWxlU2hlZXQuY3BwCmluZGV4
IDY5YmNlOGYuLmU4YWFkNDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNo
ZS9DYWNoZWRDU1NTdHlsZVNoZWV0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2Fj
aGUvQ2FjaGVkQ1NTU3R5bGVTaGVldC5jcHAKQEAgLTQwLDggKzQwLDggQEAKIAogbmFtZXNwYWNl
IFdlYkNvcmUgewogCi1DYWNoZWRDU1NTdHlsZVNoZWV0OjpDYWNoZWRDU1NTdHlsZVNoZWV0KGNv
bnN0IFJlc291cmNlUmVxdWVzdCYgcmVzb3VyY2VSZXF1ZXN0LCBjb25zdCBTdHJpbmcmIGNoYXJz
ZXQpCi0gICAgOiBDYWNoZWRSZXNvdXJjZShyZXNvdXJjZVJlcXVlc3QsIENTU1N0eWxlU2hlZXQp
CitDYWNoZWRDU1NTdHlsZVNoZWV0OjpDYWNoZWRDU1NTdHlsZVNoZWV0KGNvbnN0IFJlc291cmNl
UmVxdWVzdCYgcmVzb3VyY2VSZXF1ZXN0LCBjb25zdCBTdHJpbmcmIGNoYXJzZXQsIFNlc3Npb25J
RCBzZXNzaW9uSUQpCisgICAgOiBDYWNoZWRSZXNvdXJjZShyZXNvdXJjZVJlcXVlc3QsIENTU1N0
eWxlU2hlZXQsIHNlc3Npb25JRCkKICAgICAsIG1fZGVjb2RlcihUZXh0UmVzb3VyY2VEZWNvZGVy
OjpjcmVhdGUoInRleHQvY3NzIiwgY2hhcnNldCkpCiB7CiAgICAgLy8gUHJlZmVyIHRleHQvY3Nz
IGJ1dCBhY2NlcHQgYW55IHR5cGUgKGRlbGwuY29tIHNlcnZlcyBhIHN0eWxlc2hlZXQKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRDU1NTdHlsZVNoZWV0Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkQ1NTU3R5bGVTaGVldC5oCmluZGV4
IGY4YmIwYzYuLjViN2I3NDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNo
ZS9DYWNoZWRDU1NTdHlsZVNoZWV0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hl
L0NhY2hlZENTU1N0eWxlU2hlZXQuaApAQCAtMzgsNyArMzgsNyBAQCBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKICAgICBjbGFzcyBDYWNoZWRDU1NTdHlsZVNoZWV0IGZpbmFsIDogcHVibGljIENhY2hl
ZFJlc291cmNlIHsKICAgICBwdWJsaWM6Ci0gICAgICAgIENhY2hlZENTU1N0eWxlU2hlZXQoY29u
c3QgUmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgU3RyaW5nJiBjaGFyc2V0KTsKKyAgICAgICAgQ2Fj
aGVkQ1NTU3R5bGVTaGVldChjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBTdHJpbmcmIGNo
YXJzZXQsIFNlc3Npb25JRCk7CiAgICAgICAgIHZpcnR1YWwgfkNhY2hlZENTU1N0eWxlU2hlZXQo
KTsKIAogICAgICAgICBjb25zdCBTdHJpbmcgc2hlZXRUZXh0KGJvb2wgZW5mb3JjZU1JTUVUeXBl
ID0gdHJ1ZSwgYm9vbCogaGFzVmFsaWRNSU1FVHlwZSA9IDApIGNvbnN0OwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZEZvbnQuY3BwIGIvU291cmNlL1dlYkNv
cmUvbG9hZGVyL2NhY2hlL0NhY2hlZEZvbnQuY3BwCmluZGV4IGZiZjY1OGMuLjJhMWExNDMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRGb250LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkRm9udC5jcHAKQEAgLTUwLDggKzUw
LDggQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1DYWNoZWRGb250OjpDYWNoZWRGb250KGNv
bnN0IFJlc291cmNlUmVxdWVzdCYgcmVzb3VyY2VSZXF1ZXN0KQotICAgIDogQ2FjaGVkUmVzb3Vy
Y2UocmVzb3VyY2VSZXF1ZXN0LCBGb250UmVzb3VyY2UpCitDYWNoZWRGb250OjpDYWNoZWRGb250
KGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVzb3VyY2VSZXF1ZXN0LCBTZXNzaW9uSUQgc2Vzc2lv
bklEKQorICAgIDogQ2FjaGVkUmVzb3VyY2UocmVzb3VyY2VSZXF1ZXN0LCBGb250UmVzb3VyY2Us
IHNlc3Npb25JRCkKICAgICAsIG1fbG9hZEluaXRpYXRlZChmYWxzZSkKICAgICAsIG1faGFzQ3Jl
YXRlZEZvbnREYXRhV3JhcHBpbmdSZXNvdXJjZShmYWxzZSkKIHsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRGb250LmggYi9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvY2FjaGUvQ2FjaGVkRm9udC5oCmluZGV4IDc0NGI2MmQuLmZiMjE2NTkzIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkRm9udC5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRGb250LmgKQEAgLTQyLDcgKzQyLDcgQEAgc3RydWN0
IEZvbnRDdXN0b21QbGF0Zm9ybURhdGE7CiAKIGNsYXNzIENhY2hlZEZvbnQgZmluYWwgOiBwdWJs
aWMgQ2FjaGVkUmVzb3VyY2UgewogcHVibGljOgotICAgIENhY2hlZEZvbnQoY29uc3QgUmVzb3Vy
Y2VSZXF1ZXN0Jik7CisgICAgQ2FjaGVkRm9udChjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBTZXNz
aW9uSUQpOwogICAgIHZpcnR1YWwgfkNhY2hlZEZvbnQoKTsKIAogICAgIHZvaWQgYmVnaW5Mb2Fk
SWZOZWVkZWQoQ2FjaGVkUmVzb3VyY2VMb2FkZXIqIGRsKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRJbWFnZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvY2FjaGUvQ2FjaGVkSW1hZ2UuY3BwCmluZGV4IDRjMjY2N2IuLmI5MmE5NzUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRJbWFnZS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZEltYWdlLmNwcApAQCAtNjAsOCArNjAsOCBA
QAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLUNhY2hlZEltYWdlOjpDYWNoZWRJbWFnZShjb25z
dCBSZXNvdXJjZVJlcXVlc3QmIHJlc291cmNlUmVxdWVzdCkKLSAgICA6IENhY2hlZFJlc291cmNl
KHJlc291cmNlUmVxdWVzdCwgSW1hZ2VSZXNvdXJjZSkKK0NhY2hlZEltYWdlOjpDYWNoZWRJbWFn
ZShjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlc291cmNlUmVxdWVzdCwgU2Vzc2lvbklEIHNlc3Np
b25JRCkKKyAgICA6IENhY2hlZFJlc291cmNlKHJlc291cmNlUmVxdWVzdCwgSW1hZ2VSZXNvdXJj
ZSwgc2Vzc2lvbklEKQogICAgICwgbV9pbWFnZSgwKQogICAgICwgbV9pc01hbnVhbGx5Q2FjaGVk
KGZhbHNlKQogICAgICwgbV9zaG91bGRQYWludEJyb2tlbkltYWdlKHRydWUpCkBAIC02OSw4ICs2
OSw4IEBAIENhY2hlZEltYWdlOjpDYWNoZWRJbWFnZShjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJl
c291cmNlUmVxdWVzdCkKICAgICBzZXRTdGF0dXMoVW5rbm93bik7CiB9CiAKLUNhY2hlZEltYWdl
OjpDYWNoZWRJbWFnZShJbWFnZSogaW1hZ2UpCi0gICAgOiBDYWNoZWRSZXNvdXJjZShSZXNvdXJj
ZVJlcXVlc3QoKSwgSW1hZ2VSZXNvdXJjZSkKK0NhY2hlZEltYWdlOjpDYWNoZWRJbWFnZShJbWFn
ZSogaW1hZ2UsIFNlc3Npb25JRCBzZXNzaW9uSUQpCisgICAgOiBDYWNoZWRSZXNvdXJjZShSZXNv
dXJjZVJlcXVlc3QoKSwgSW1hZ2VSZXNvdXJjZSwgc2Vzc2lvbklEKQogICAgICwgbV9pbWFnZShp
bWFnZSkKICAgICAsIG1faXNNYW51YWxseUNhY2hlZChmYWxzZSkKICAgICAsIG1fc2hvdWxkUGFp
bnRCcm9rZW5JbWFnZSh0cnVlKQpAQCAtNzksOCArNzksMTggQEAgQ2FjaGVkSW1hZ2U6OkNhY2hl
ZEltYWdlKEltYWdlKiBpbWFnZSkKICAgICBzZXRMb2FkaW5nKGZhbHNlKTsKIH0KIAotQ2FjaGVk
SW1hZ2U6OkNhY2hlZEltYWdlKGNvbnN0IFVSTCYgdXJsLCBJbWFnZSogaW1hZ2UsIENhY2hlZElt
YWdlOjpDYWNoZUJlaGF2aW9yVHlwZSB0eXBlKQotICAgIDogQ2FjaGVkUmVzb3VyY2UoUmVzb3Vy
Y2VSZXF1ZXN0KHVybCksIEltYWdlUmVzb3VyY2UpCitDYWNoZWRJbWFnZTo6Q2FjaGVkSW1hZ2Uo
Y29uc3QgVVJMJiB1cmwsIEltYWdlKiBpbWFnZSwgU2Vzc2lvbklEIHNlc3Npb25JRCkKKyAgICA6
IENhY2hlZFJlc291cmNlKFJlc291cmNlUmVxdWVzdCh1cmwpLCBJbWFnZVJlc291cmNlLCBzZXNz
aW9uSUQpCisgICAgLCBtX2ltYWdlKGltYWdlKQorICAgICwgbV9pc01hbnVhbGx5Q2FjaGVkKGZh
bHNlKQorICAgICwgbV9zaG91bGRQYWludEJyb2tlbkltYWdlKHRydWUpCit7CisgICAgc2V0U3Rh
dHVzKENhY2hlZCk7CisgICAgc2V0TG9hZGluZyhmYWxzZSk7Cit9CisKK0NhY2hlZEltYWdlOjpD
YWNoZWRJbWFnZShjb25zdCBVUkwmIHVybCwgSW1hZ2UqIGltYWdlLCBDYWNoZWRJbWFnZTo6Q2Fj
aGVCZWhhdmlvclR5cGUgdHlwZSwgU2Vzc2lvbklEIHNlc3Npb25JRCkKKyAgICA6IENhY2hlZFJl
c291cmNlKFJlc291cmNlUmVxdWVzdCh1cmwpLCBJbWFnZVJlc291cmNlLCBzZXNzaW9uSUQpCiAg
ICAgLCBtX2ltYWdlKGltYWdlKQogICAgICwgbV9pc01hbnVhbGx5Q2FjaGVkKHR5cGUgPT0gQ2Fj
aGVkSW1hZ2U6Ok1hbnVhbGx5Q2FjaGVkKQogICAgICwgbV9zaG91bGRQYWludEJyb2tlbkltYWdl
KHRydWUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkSW1h
Z2UuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRJbWFnZS5oCmluZGV4IGI3
ZDcyMTEuLjg2YWYwM2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9D
YWNoZWRJbWFnZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRJbWFn
ZS5oCkBAIC01MCw5ICs1MCwxMCBAQCBjbGFzcyBDYWNoZWRJbWFnZSBmaW5hbCA6IHB1YmxpYyBD
YWNoZWRSZXNvdXJjZSwgcHVibGljIEltYWdlT2JzZXJ2ZXIgewogcHVibGljOgogICAgIGVudW0g
Q2FjaGVCZWhhdmlvclR5cGUgeyBBdXRvbWF0aWNhbGx5Q2FjaGVkLCBNYW51YWxseUNhY2hlZCB9
OwogCi0gICAgQ2FjaGVkSW1hZ2UoY29uc3QgUmVzb3VyY2VSZXF1ZXN0Jik7Ci0gICAgQ2FjaGVk
SW1hZ2UoSW1hZ2UqKTsKLSAgICBDYWNoZWRJbWFnZShjb25zdCBVUkwmLCBJbWFnZSosIENhY2hl
QmVoYXZpb3JUeXBlID0gQXV0b21hdGljYWxseUNhY2hlZCk7CisgICAgQ2FjaGVkSW1hZ2UoY29u
c3QgUmVzb3VyY2VSZXF1ZXN0JiwgU2Vzc2lvbklEKTsKKyAgICBDYWNoZWRJbWFnZShJbWFnZSos
IFNlc3Npb25JRCk7CisgICAgQ2FjaGVkSW1hZ2UoY29uc3QgVVJMJiwgSW1hZ2UqLCBTZXNzaW9u
SUQpOworICAgIENhY2hlZEltYWdlKGNvbnN0IFVSTCYsIEltYWdlKiwgQ2FjaGVCZWhhdmlvclR5
cGUsIFNlc3Npb25JRCk7CiAgICAgdmlydHVhbCB+Q2FjaGVkSW1hZ2UoKTsKIAogICAgIEltYWdl
KiBpbWFnZSgpOyAvLyBSZXR1cm5zIHRoZSBudWxsSW1hZ2UoKSBpZiB0aGUgaW1hZ2UgaXMgbm90
IGF2YWlsYWJsZSB5ZXQuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUv
Q2FjaGVkUmF3UmVzb3VyY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hl
ZFJhd1Jlc291cmNlLmNwcAppbmRleCA3MWQ4NmRhLi5jNDY1ZDJmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmF3UmVzb3VyY2UuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSYXdSZXNvdXJjZS5jcHAKQEAgLTM1LDggKzM1
LDggQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1DYWNoZWRSYXdSZXNvdXJjZTo6Q2FjaGVk
UmF3UmVzb3VyY2UoUmVzb3VyY2VSZXF1ZXN0JiByZXNvdXJjZVJlcXVlc3QsIFR5cGUgdHlwZSkK
LSAgICA6IENhY2hlZFJlc291cmNlKHJlc291cmNlUmVxdWVzdCwgdHlwZSkKK0NhY2hlZFJhd1Jl
c291cmNlOjpDYWNoZWRSYXdSZXNvdXJjZShSZXNvdXJjZVJlcXVlc3QmIHJlc291cmNlUmVxdWVz
dCwgVHlwZSB0eXBlLCBTZXNzaW9uSUQgc2Vzc2lvbklEKQorICAgIDogQ2FjaGVkUmVzb3VyY2Uo
cmVzb3VyY2VSZXF1ZXN0LCB0eXBlLCBzZXNzaW9uSUQpCiAgICAgLCBtX2lkZW50aWZpZXIoMCkK
IHsKICAgICAvLyBGSVhNRTogVGhlIHdyb25nIENhY2hlZFJlc291cmNlOjpUeXBlIGhlcmUgbWF5
IGNhdXNlIGEgYmFkIGNhc3QgZWxzZXdoZXJlLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
bG9hZGVyL2NhY2hlL0NhY2hlZFJhd1Jlc291cmNlLmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
Y2FjaGUvQ2FjaGVkUmF3UmVzb3VyY2UuaAppbmRleCBjY2RmZWUxLi4zZDZiZmIyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmF3UmVzb3VyY2UuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmF3UmVzb3VyY2UuaApAQCAtMzIs
NyArMzIsNyBAQCBjbGFzcyBTdWJyZXNvdXJjZUxvYWRlcjsKIAogY2xhc3MgQ2FjaGVkUmF3UmVz
b3VyY2UgZmluYWwgOiBwdWJsaWMgQ2FjaGVkUmVzb3VyY2UgewogcHVibGljOgotICAgIENhY2hl
ZFJhd1Jlc291cmNlKFJlc291cmNlUmVxdWVzdCYsIFR5cGUpOworICAgIENhY2hlZFJhd1Jlc291
cmNlKFJlc291cmNlUmVxdWVzdCYsIFR5cGUsIFNlc3Npb25JRCk7CiAKICAgICAvLyBGSVhNRTog
QXNzb2NpYXRlZFVSTExvYWRlciBzaG91bGRuJ3QgYmUgYSBEb2N1bWVudFRocmVhZGFibGVMb2Fk
ZXIgYW5kIHRoZXJlZm9yZSBzaG91bGRuJ3QKICAgICAvLyB1c2UgQ2FjaGVkUmF3UmVzb3VyY2Uu
IEhvd2V2ZXIsIGl0IGlzLCBhbmQgaXQgbmVlZHMgdG8gYmUgYWJsZSB0byBkZWZlciBsb2FkaW5n
LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNl
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZS5jcHAKaW5k
ZXggNjk3YTQ5NS4uZjAzYTNlNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2Nh
Y2hlL0NhY2hlZFJlc291cmNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUv
Q2FjaGVkUmVzb3VyY2UuY3BwCkBAIC0xNDcsOCArMTQ3LDkgQEAgc3RhdGljIGRvdWJsZSBkZWFk
RGVjb2RlZERhdGFEZWxldGlvbkludGVydmFsRm9yUmVzb3VyY2VUeXBlKENhY2hlZFJlc291cmNl
OjpUeXAKIAogREVGSU5FX0RFQlVHX09OTFlfR0xPQkFMKFJlZkNvdW50ZWRMZWFrQ291bnRlciwg
Y2FjaGVkUmVzb3VyY2VMZWFrQ291bnRlciwgKCJDYWNoZWRSZXNvdXJjZSIpKTsKIAotQ2FjaGVk
UmVzb3VyY2U6OkNhY2hlZFJlc291cmNlKGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwg
VHlwZSB0eXBlKQorQ2FjaGVkUmVzb3VyY2U6OkNhY2hlZFJlc291cmNlKGNvbnN0IFJlc291cmNl
UmVxdWVzdCYgcmVxdWVzdCwgVHlwZSB0eXBlLCBTZXNzaW9uSUQgc2Vzc2lvbklEKQogICAgIDog
bV9yZXNvdXJjZVJlcXVlc3QocmVxdWVzdCkKKyAgICAsIG1fc2Vzc2lvbklEKHNlc3Npb25JRCkK
ICAgICAsIG1fbG9hZFByaW9yaXR5KGRlZmF1bHRQcmlvcml0eUZvclJlc291cmNlVHlwZSh0eXBl
KSkKICAgICAsIG1fcmVzcG9uc2VUaW1lc3RhbXAoY3VycmVudFRpbWUoKSkKICAgICAsIG1fZGVj
b2RlZERhdGFEZWxldGlvblRpbWVyKHRoaXMsICZDYWNoZWRSZXNvdXJjZTo6ZGVjb2RlZERhdGFE
ZWxldGlvblRpbWVyRmlyZWQsIGRlYWREZWNvZGVkRGF0YURlbGV0aW9uSW50ZXJ2YWxGb3JSZXNv
dXJjZVR5cGUodHlwZSkpCkBAIC0xODAsNiArMTgxLDcgQEAgQ2FjaGVkUmVzb3VyY2U6OkNhY2hl
ZFJlc291cmNlKGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgVHlwZSB0eXBlKQogICAg
ICwgbV9wcm94eVJlc291cmNlKDApCiB7CiAgICAgQVNTRVJUKG1fdHlwZSA9PSB1bnNpZ25lZCh0
eXBlKSk7IC8vIG1fdHlwZSBpcyBhIGJpdGZpZWxkLCBzbyB0aGlzIHRlc3RzIGNhcmVsZXNzIHVw
ZGF0ZXMgb2YgdGhlIGVudW0uCisgICAgQVNTRVJUKHNlc3Npb25JRC5pc1ZhbGlkKCkpOwogI2lm
bmRlZiBOREVCVUcKICAgICBjYWNoZWRSZXNvdXJjZUxlYWtDb3VudGVyLmluY3JlbWVudCgpOwog
I2VuZGlmCkBAIC0xOTksNyArMjAxLDcgQEAgQ2FjaGVkUmVzb3VyY2U6On5DYWNoZWRSZXNvdXJj
ZSgpCiAgICAgQVNTRVJUKGNhbkRlbGV0ZSgpKTsKICAgICBBU1NFUlQoIWluQ2FjaGUoKSk7CiAg
ICAgQVNTRVJUKCFtX2RlbGV0ZWQpOwotICAgIEFTU0VSVCh1cmwoKS5pc051bGwoKSB8fCBtZW1v
cnlDYWNoZSgpLT5yZXNvdXJjZUZvclJlcXVlc3QocmVzb3VyY2VSZXF1ZXN0KCkpICE9IHRoaXMp
OworICAgIEFTU0VSVCh1cmwoKS5pc051bGwoKSB8fCBtZW1vcnlDYWNoZSgpLT5yZXNvdXJjZUZv
clJlcXVlc3QocmVzb3VyY2VSZXF1ZXN0KCksIHNlc3Npb25JRCgpKSAhPSB0aGlzKTsKIAogI2lm
bmRlZiBOREVCVUcKICAgICBtX2RlbGV0ZWQgPSB0cnVlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlLmggYi9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2UuaAppbmRleCBlZjBiYzY2Li45ZjhkMWQ3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2UuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2UuaApAQCAtMzEsNiArMzEs
NyBAQAogI2luY2x1ZGUgIlJlc291cmNlTG9hZGVyT3B0aW9ucy5oIgogI2luY2x1ZGUgIlJlc291
cmNlUmVxdWVzdC5oIgogI2luY2x1ZGUgIlJlc291cmNlUmVzcG9uc2UuaCIKKyNpbmNsdWRlICJT
ZXNzaW9uSUQuaCIKICNpbmNsdWRlICJUaW1lci5oIgogI2luY2x1ZGUgPHRpbWUuaD4KICNpbmNs
dWRlIDx3dGYvSGFzaENvdW50ZWRTZXQuaD4KQEAgLTg5LDcgKzkwLDcgQEAgcHVibGljOgogICAg
ICAgICBEZWNvZGVFcnJvcgogICAgIH07CiAKLSAgICBDYWNoZWRSZXNvdXJjZShjb25zdCBSZXNv
dXJjZVJlcXVlc3QmLCBUeXBlKTsKKyAgICBDYWNoZWRSZXNvdXJjZShjb25zdCBSZXNvdXJjZVJl
cXVlc3QmLCBUeXBlLCBTZXNzaW9uSUQpOwogICAgIHZpcnR1YWwgfkNhY2hlZFJlc291cmNlKCk7
CiAKICAgICB2aXJ0dWFsIHZvaWQgbG9hZChDYWNoZWRSZXNvdXJjZUxvYWRlciosIGNvbnN0IFJl
c291cmNlTG9hZGVyT3B0aW9ucyYpOwpAQCAtMTExLDYgKzExMiw3IEBAIHB1YmxpYzoKICNpZiBF
TkFCTEUoQ0FDSEVfUEFSVElUSU9OSU5HKQogICAgIGNvbnN0IFN0cmluZyYgY2FjaGVQYXJ0aXRp
b24oKSBjb25zdCB7IHJldHVybiBtX3Jlc291cmNlUmVxdWVzdC5jYWNoZVBhcnRpdGlvbigpOyB9
CiAjZW5kaWYKKyAgICBTZXNzaW9uSUQgc2Vzc2lvbklEKCkgY29uc3QgeyByZXR1cm4gbV9zZXNz
aW9uSUQ7IH0KICAgICBUeXBlIHR5cGUoKSBjb25zdCB7IHJldHVybiBzdGF0aWNfY2FzdDxUeXBl
PihtX3R5cGUpOyB9CiAgICAgCiAgICAgUmVzb3VyY2VMb2FkUHJpb3JpdHkgbG9hZFByaW9yaXR5
KCkgY29uc3QgeyByZXR1cm4gbV9sb2FkUHJpb3JpdHk7IH0KQEAgLTI5MCw2ICsyOTIsNyBAQCBw
cm90ZWN0ZWQ6CiAgICAgSGFzaE1hcDxDYWNoZWRSZXNvdXJjZUNsaWVudCosIE93blB0cjxDYWNo
ZWRSZXNvdXJjZUNhbGxiYWNrPj4gbV9jbGllbnRzQXdhaXRpbmdDYWxsYmFjazsKIAogICAgIFJl
c291cmNlUmVxdWVzdCBtX3Jlc291cmNlUmVxdWVzdDsKKyAgICBTZXNzaW9uSUQgbV9zZXNzaW9u
SUQ7CiAgICAgU3RyaW5nIG1fYWNjZXB0OwogICAgIFJlZlB0cjxTdWJyZXNvdXJjZUxvYWRlcj4g
bV9sb2FkZXI7CiAgICAgUmVzb3VyY2VMb2FkZXJPcHRpb25zIG1fb3B0aW9uczsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZUxvYWRlci5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VMb2FkZXIuY3BwCmlu
ZGV4IDExZjE4YTguLjlkMjhkNzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9j
YWNoZS9DYWNoZWRSZXNvdXJjZUxvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVy
L2NhY2hlL0NhY2hlZFJlc291cmNlTG9hZGVyLmNwcApAQCAtNDgsMTIgKzQ4LDE0IEBACiAjaW5j
bHVkZSAiTG9hZGVyU3RyYXRlZ3kuaCIKICNpbmNsdWRlICJMb2dnaW5nLmgiCiAjaW5jbHVkZSAi
TWVtb3J5Q2FjaGUuaCIKKyNpbmNsdWRlICJQYWdlLmgiCiAjaW5jbHVkZSAiUGluZ0xvYWRlci5o
IgogI2luY2x1ZGUgIlBsYXRmb3JtU3RyYXRlZ2llcy5oIgogI2luY2x1ZGUgIlJlbmRlckVsZW1l
bnQuaCIKICNpbmNsdWRlICJSZXNvdXJjZUxvYWRTY2hlZHVsZXIuaCIKICNpbmNsdWRlICJTY3Jp
cHRDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAiU2VjdXJpdHlPcmlnaW4uaCIKKyNpbmNsdWRlICJT
ZXNzaW9uSUQuaCIKICNpbmNsdWRlICJTZXR0aW5ncy5oIgogI2luY2x1ZGUgPHd0Zi90ZXh0L0NT
dHJpbmcuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KQEAgLTcwLDM1ICs3Miwz
NSBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLXN0YXRpYyBDYWNoZWRSZXNvdXJjZSogY3Jl
YXRlUmVzb3VyY2UoQ2FjaGVkUmVzb3VyY2U6OlR5cGUgdHlwZSwgUmVzb3VyY2VSZXF1ZXN0JiBy
ZXF1ZXN0LCBjb25zdCBTdHJpbmcmIGNoYXJzZXQpCitzdGF0aWMgQ2FjaGVkUmVzb3VyY2UqIGNy
ZWF0ZVJlc291cmNlKENhY2hlZFJlc291cmNlOjpUeXBlIHR5cGUsIFJlc291cmNlUmVxdWVzdCYg
cmVxdWVzdCwgY29uc3QgU3RyaW5nJiBjaGFyc2V0LCBTZXNzaW9uSUQgc2Vzc2lvbklEKQogewog
ICAgIHN3aXRjaCAodHlwZSkgewogICAgIGNhc2UgQ2FjaGVkUmVzb3VyY2U6OkltYWdlUmVzb3Vy
Y2U6Ci0gICAgICAgIHJldHVybiBuZXcgQ2FjaGVkSW1hZ2UocmVxdWVzdCk7CisgICAgICAgIHJl
dHVybiBuZXcgQ2FjaGVkSW1hZ2UocmVxdWVzdCwgc2Vzc2lvbklEKTsKICAgICBjYXNlIENhY2hl
ZFJlc291cmNlOjpDU1NTdHlsZVNoZWV0OgotICAgICAgICByZXR1cm4gbmV3IENhY2hlZENTU1N0
eWxlU2hlZXQocmVxdWVzdCwgY2hhcnNldCk7CisgICAgICAgIHJldHVybiBuZXcgQ2FjaGVkQ1NT
U3R5bGVTaGVldChyZXF1ZXN0LCBjaGFyc2V0LCBzZXNzaW9uSUQpOwogICAgIGNhc2UgQ2FjaGVk
UmVzb3VyY2U6OlNjcmlwdDoKLSAgICAgICAgcmV0dXJuIG5ldyBDYWNoZWRTY3JpcHQocmVxdWVz
dCwgY2hhcnNldCk7CisgICAgICAgIHJldHVybiBuZXcgQ2FjaGVkU2NyaXB0KHJlcXVlc3QsIGNo
YXJzZXQsIHNlc3Npb25JRCk7CiAgICAgY2FzZSBDYWNoZWRSZXNvdXJjZTo6U1ZHRG9jdW1lbnRS
ZXNvdXJjZToKLSAgICAgICAgcmV0dXJuIG5ldyBDYWNoZWRTVkdEb2N1bWVudChyZXF1ZXN0KTsK
KyAgICAgICAgcmV0dXJuIG5ldyBDYWNoZWRTVkdEb2N1bWVudChyZXF1ZXN0LCBzZXNzaW9uSUQp
OwogICAgIGNhc2UgQ2FjaGVkUmVzb3VyY2U6OkZvbnRSZXNvdXJjZToKLSAgICAgICAgcmV0dXJu
IG5ldyBDYWNoZWRGb250KHJlcXVlc3QpOworICAgICAgICByZXR1cm4gbmV3IENhY2hlZEZvbnQo
cmVxdWVzdCwgc2Vzc2lvbklEKTsKICAgICBjYXNlIENhY2hlZFJlc291cmNlOjpSYXdSZXNvdXJj
ZToKICAgICBjYXNlIENhY2hlZFJlc291cmNlOjpNYWluUmVzb3VyY2U6Ci0gICAgICAgIHJldHVy
biBuZXcgQ2FjaGVkUmF3UmVzb3VyY2UocmVxdWVzdCwgdHlwZSk7CisgICAgICAgIHJldHVybiBu
ZXcgQ2FjaGVkUmF3UmVzb3VyY2UocmVxdWVzdCwgdHlwZSwgc2Vzc2lvbklEKTsKICNpZiBFTkFC
TEUoWFNMVCkKICAgICBjYXNlIENhY2hlZFJlc291cmNlOjpYU0xTdHlsZVNoZWV0OgotICAgICAg
ICByZXR1cm4gbmV3IENhY2hlZFhTTFN0eWxlU2hlZXQocmVxdWVzdCk7CisgICAgICAgIHJldHVy
biBuZXcgQ2FjaGVkWFNMU3R5bGVTaGVldChyZXF1ZXN0LCBzZXNzaW9uSUQpOwogI2VuZGlmCiAj
aWYgRU5BQkxFKExJTktfUFJFRkVUQ0gpCiAgICAgY2FzZSBDYWNoZWRSZXNvdXJjZTo6TGlua1By
ZWZldGNoOgotICAgICAgICByZXR1cm4gbmV3IENhY2hlZFJlc291cmNlKHJlcXVlc3QsIENhY2hl
ZFJlc291cmNlOjpMaW5rUHJlZmV0Y2gpOworICAgICAgICByZXR1cm4gbmV3IENhY2hlZFJlc291
cmNlKHJlcXVlc3QsIENhY2hlZFJlc291cmNlOjpMaW5rUHJlZmV0Y2gsIHNlc3Npb25JRCk7CiAg
ICAgY2FzZSBDYWNoZWRSZXNvdXJjZTo6TGlua1N1YnJlc291cmNlOgotICAgICAgICByZXR1cm4g
bmV3IENhY2hlZFJlc291cmNlKHJlcXVlc3QsIENhY2hlZFJlc291cmNlOjpMaW5rU3VicmVzb3Vy
Y2UpOworICAgICAgICByZXR1cm4gbmV3IENhY2hlZFJlc291cmNlKHJlcXVlc3QsIENhY2hlZFJl
c291cmNlOjpMaW5rU3VicmVzb3VyY2UsIHNlc3Npb25JRCk7CiAjZW5kaWYKICNpZiBFTkFCTEUo
VklERU9fVFJBQ0spCiAgICAgY2FzZSBDYWNoZWRSZXNvdXJjZTo6VGV4dFRyYWNrUmVzb3VyY2U6
Ci0gICAgICAgIHJldHVybiBuZXcgQ2FjaGVkVGV4dFRyYWNrKHJlcXVlc3QpOworICAgICAgICBy
ZXR1cm4gbmV3IENhY2hlZFRleHRUcmFjayhyZXF1ZXN0LCBzZXNzaW9uSUQpOwogI2VuZGlmCiAg
ICAgfQogICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwpAQCAtMTQ3LDYgKzE0OSwxNiBAQCBGcmFt
ZSogQ2FjaGVkUmVzb3VyY2VMb2FkZXI6OmZyYW1lKCkgY29uc3QKICAgICByZXR1cm4gbV9kb2N1
bWVudExvYWRlciA/IG1fZG9jdW1lbnRMb2FkZXItPmZyYW1lKCkgOiAwOwogfQogCitTZXNzaW9u
SUQgQ2FjaGVkUmVzb3VyY2VMb2FkZXI6OnNlc3Npb25JRCgpIGNvbnN0Cit7CisgICAgU2Vzc2lv
bklEIHNlc3Npb25JRCA9IFNlc3Npb25JRDo6ZGVmYXVsdFNlc3Npb25JRCgpOworCisgICAgaWYg
KEZyYW1lKiBmID0gZnJhbWUoKSkKKyAgICAgICAgc2Vzc2lvbklEID0gZi0+cGFnZSgpLT5zZXNz
aW9uSUQoKTsKKworICAgIHJldHVybiBzZXNzaW9uSUQ7Cit9CisKIENhY2hlZFJlc291cmNlSGFu
ZGxlPENhY2hlZEltYWdlPiBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6cmVxdWVzdEltYWdlKENhY2hl
ZFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCkKIHsKICAgICBpZiAoRnJhbWUqIGZyYW1lID0gdGhp
cy0+ZnJhbWUoKSkgewpAQCAtMTg3LDcgKzE5OSw3IEBAIENhY2hlZFJlc291cmNlSGFuZGxlPENh
Y2hlZENTU1N0eWxlU2hlZXQ+IENhY2hlZFJlc291cmNlTG9hZGVyOjpyZXF1ZXN0VXNlckNTU1N0
CiAgICAgcmVxdWVzdC5tdXRhYmxlUmVzb3VyY2VSZXF1ZXN0KCkuc2V0Q2FjaGVQYXJ0aXRpb24o
ZG9jdW1lbnQoKS0+dG9wT3JpZ2luKCktPmNhY2hlUGFydGl0aW9uKCkpOwogI2VuZGlmCiAKLSAg
ICBpZiAoQ2FjaGVkUmVzb3VyY2UqIGV4aXN0aW5nID0gbWVtb3J5Q2FjaGUoKS0+cmVzb3VyY2VG
b3JSZXF1ZXN0KHJlcXVlc3QucmVzb3VyY2VSZXF1ZXN0KCkpKSB7CisgICAgaWYgKENhY2hlZFJl
c291cmNlKiBleGlzdGluZyA9IG1lbW9yeUNhY2hlKCktPnJlc291cmNlRm9yUmVxdWVzdChyZXF1
ZXN0LnJlc291cmNlUmVxdWVzdCgpLCBzZXNzaW9uSUQoKSkpIHsKICAgICAgICAgaWYgKGV4aXN0
aW5nLT50eXBlKCkgPT0gQ2FjaGVkUmVzb3VyY2U6OkNTU1N0eWxlU2hlZXQpCiAgICAgICAgICAg
ICByZXR1cm4gdG9DYWNoZWRDU1NTdHlsZVNoZWV0KGV4aXN0aW5nKTsKICAgICAgICAgbWVtb3J5
Q2FjaGUoKS0+cmVtb3ZlKGV4aXN0aW5nKTsKQEAgLTE5NSw3ICsyMDcsNyBAQCBDYWNoZWRSZXNv
dXJjZUhhbmRsZTxDYWNoZWRDU1NTdHlsZVNoZWV0PiBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6cmVx
dWVzdFVzZXJDU1NTdAogICAgIGlmICh1cmwuc3RyaW5nKCkgIT0gcmVxdWVzdC5yZXNvdXJjZVJl
cXVlc3QoKS51cmwoKSkKICAgICAgICAgcmVxdWVzdC5tdXRhYmxlUmVzb3VyY2VSZXF1ZXN0KCku
c2V0VVJMKHVybCk7CiAKLSAgICBDYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRDU1NTdHlsZVNo
ZWV0PiB1c2VyU2hlZXQgPSBuZXcgQ2FjaGVkQ1NTU3R5bGVTaGVldChyZXF1ZXN0LnJlc291cmNl
UmVxdWVzdCgpLCByZXF1ZXN0LmNoYXJzZXQoKSk7CisgICAgQ2FjaGVkUmVzb3VyY2VIYW5kbGU8
Q2FjaGVkQ1NTU3R5bGVTaGVldD4gdXNlclNoZWV0ID0gbmV3IENhY2hlZENTU1N0eWxlU2hlZXQo
cmVxdWVzdC5yZXNvdXJjZVJlcXVlc3QoKSwgcmVxdWVzdC5jaGFyc2V0KCksIHNlc3Npb25JRCgp
KTsKIAogICAgIG1lbW9yeUNhY2hlKCktPmFkZCh1c2VyU2hlZXQuZ2V0KCkpOwogICAgIC8vIEZJ
WE1FOiBsb2FkUmVzb3VyY2UgY2FsbHMgc2V0T3duaW5nQ2FjaGVkUmVzb3VyY2VMb2FkZXIoKSBp
ZiB0aGUgcmVzb3VyY2UgY291bGRuJ3QgYmUgYWRkZWQgdG8gY2FjaGUuIERvZXMgdGhpcyBmdW5j
dGlvbiBuZWVkIHRvIGNhbGwgaXQsIHRvbz8KQEAgLTQyOCw3ICs0NDAsNyBAQCBDYWNoZWRSZXNv
dXJjZUhhbmRsZTxDYWNoZWRSZXNvdXJjZT4gQ2FjaGVkUmVzb3VyY2VMb2FkZXI6OnJlcXVlc3RS
ZXNvdXJjZShDYWNoZQogICAgICAgICByZXF1ZXN0Lm11dGFibGVSZXNvdXJjZVJlcXVlc3QoKS5z
ZXRDYWNoZVBhcnRpdGlvbihkb2N1bWVudCgpLT50b3BPcmlnaW4oKS0+Y2FjaGVQYXJ0aXRpb24o
KSk7CiAjZW5kaWYKIAotICAgIHJlc291cmNlID0gbWVtb3J5Q2FjaGUoKS0+cmVzb3VyY2VGb3JS
ZXF1ZXN0KHJlcXVlc3QucmVzb3VyY2VSZXF1ZXN0KCkpOworICAgIHJlc291cmNlID0gbWVtb3J5
Q2FjaGUoKS0+cmVzb3VyY2VGb3JSZXF1ZXN0KHJlcXVlc3QucmVzb3VyY2VSZXF1ZXN0KCksIHNl
c3Npb25JRCgpKTsKIAogICAgIGNvbnN0IFJldmFsaWRhdGlvblBvbGljeSBwb2xpY3kgPSBkZXRl
cm1pbmVSZXZhbGlkYXRpb25Qb2xpY3kodHlwZSwgcmVxdWVzdC5tdXRhYmxlUmVzb3VyY2VSZXF1
ZXN0KCksIHJlcXVlc3QuZm9yUHJlbG9hZCgpLCByZXNvdXJjZS5nZXQoKSwgcmVxdWVzdC5kZWZl
cigpKTsKICAgICBzd2l0Y2ggKHBvbGljeSkgewpAQCAtNDgwLDEwICs0OTIsMTEgQEAgQ2FjaGVk
UmVzb3VyY2VIYW5kbGU8Q2FjaGVkUmVzb3VyY2U+IENhY2hlZFJlc291cmNlTG9hZGVyOjpyZXZh
bGlkYXRlUmVzb3VyY2UoY28KICAgICBBU1NFUlQoIW1lbW9yeUNhY2hlKCktPmRpc2FibGVkKCkp
OwogICAgIEFTU0VSVChyZXNvdXJjZS0+Y2FuVXNlQ2FjaGVWYWxpZGF0b3IoKSk7CiAgICAgQVNT
RVJUKCFyZXNvdXJjZS0+cmVzb3VyY2VUb1JldmFsaWRhdGUoKSk7Ci0gICAgCisgICAgQVNTRVJU
KHJlc291cmNlLT5zZXNzaW9uSUQoKSA9PSBzZXNzaW9uSUQoKSk7CisKICAgICAvLyBDb3B5IHRo
ZSBVUkwgb3V0IG9mIHRoZSByZXNvdXJjZSB0byBiZSByZXZhbGlkYXRlZCBpbiBjYXNlIGl0IGdl
dHMgZGVsZXRlZCBieSB0aGUgcmVtb3ZlKCkgY2FsbCBiZWxvdy4KICAgICBTdHJpbmcgdXJsID0g
cmVzb3VyY2UtPnVybCgpOwotICAgIENhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZFJlc291cmNl
PiBuZXdSZXNvdXJjZSA9IGNyZWF0ZVJlc291cmNlKHJlc291cmNlLT50eXBlKCksIHJlc291cmNl
LT5yZXNvdXJjZVJlcXVlc3QoKSwgcmVzb3VyY2UtPmVuY29kaW5nKCkpOworICAgIENhY2hlZFJl
c291cmNlSGFuZGxlPENhY2hlZFJlc291cmNlPiBuZXdSZXNvdXJjZSA9IGNyZWF0ZVJlc291cmNl
KHJlc291cmNlLT50eXBlKCksIHJlc291cmNlLT5yZXNvdXJjZVJlcXVlc3QoKSwgcmVzb3VyY2Ut
PmVuY29kaW5nKCksIHJlc291cmNlLT5zZXNzaW9uSUQoKSk7CiAgICAgCiAgICAgTE9HKFJlc291
cmNlTG9hZGluZywgIlJlc291cmNlICVwIGNyZWF0ZWQgdG8gcmV2YWxpZGF0ZSAlcCIsIG5ld1Jl
c291cmNlLmdldCgpLCByZXNvdXJjZSk7CiAgICAgbmV3UmVzb3VyY2UtPnNldFJlc291cmNlVG9S
ZXZhbGlkYXRlKHJlc291cmNlKTsKQEAgLTUwMCwxMSArNTEzLDExIEBAIENhY2hlZFJlc291cmNl
SGFuZGxlPENhY2hlZFJlc291cmNlPiBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6cmV2YWxpZGF0ZVJl
c291cmNlKGNvCiAKIENhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZFJlc291cmNlPiBDYWNoZWRS
ZXNvdXJjZUxvYWRlcjo6bG9hZFJlc291cmNlKENhY2hlZFJlc291cmNlOjpUeXBlIHR5cGUsIENh
Y2hlZFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgY29uc3QgU3RyaW5nJiBjaGFyc2V0KQogewot
ICAgIEFTU0VSVCghbWVtb3J5Q2FjaGUoKS0+cmVzb3VyY2VGb3JSZXF1ZXN0KHJlcXVlc3QucmVz
b3VyY2VSZXF1ZXN0KCkpKTsKKyAgICBBU1NFUlQoIW1lbW9yeUNhY2hlKCktPnJlc291cmNlRm9y
UmVxdWVzdChyZXF1ZXN0LnJlc291cmNlUmVxdWVzdCgpLCBzZXNzaW9uSUQoKSkpOwogCiAgICAg
TE9HKFJlc291cmNlTG9hZGluZywgIkxvYWRpbmcgQ2FjaGVkUmVzb3VyY2UgZm9yICclcycuIiwg
cmVxdWVzdC5yZXNvdXJjZVJlcXVlc3QoKS51cmwoKS5zdHJpbmdDZW50ZXJFbGxpcHNpemVkVG9M
ZW5ndGgoKS5sYXRpbjEoKS5kYXRhKCkpOwogCi0gICAgQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2Fj
aGVkUmVzb3VyY2U+IHJlc291cmNlID0gY3JlYXRlUmVzb3VyY2UodHlwZSwgcmVxdWVzdC5tdXRh
YmxlUmVzb3VyY2VSZXF1ZXN0KCksIGNoYXJzZXQpOworICAgIENhY2hlZFJlc291cmNlSGFuZGxl
PENhY2hlZFJlc291cmNlPiByZXNvdXJjZSA9IGNyZWF0ZVJlc291cmNlKHR5cGUsIHJlcXVlc3Qu
bXV0YWJsZVJlc291cmNlUmVxdWVzdCgpLCBjaGFyc2V0LCBzZXNzaW9uSUQoKSk7CiAKICAgICBp
ZiAoIW1lbW9yeUNhY2hlKCktPmFkZChyZXNvdXJjZS5nZXQoKSkpCiAgICAgICAgIHJlc291cmNl
LT5zZXRPd25pbmdDYWNoZWRSZXNvdXJjZUxvYWRlcih0aGlzKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZUxvYWRlci5oIGIvU291cmNlL1dl
YkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlTG9hZGVyLmgKaW5kZXggYWFkN2UyNS4u
MDFiNjQ3YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJl
c291cmNlTG9hZGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJl
c291cmNlTG9hZGVyLmgKQEAgLTExMSw2ICsxMTEsNyBAQCBwdWJsaWM6CiAgICAgRG9jdW1lbnQq
IGRvY3VtZW50KCkgY29uc3QgeyByZXR1cm4gbV9kb2N1bWVudDsgfSAvLyBDYW4gYmUgbnVsbAog
ICAgIHZvaWQgc2V0RG9jdW1lbnQoRG9jdW1lbnQqIGRvY3VtZW50KSB7IG1fZG9jdW1lbnQgPSBk
b2N1bWVudDsgfQogICAgIHZvaWQgY2xlYXJEb2N1bWVudExvYWRlcigpIHsgbV9kb2N1bWVudExv
YWRlciA9IDA7IH0KKyAgICBTZXNzaW9uSUQgc2Vzc2lvbklEKCkgY29uc3Q7CiAKICAgICB2b2lk
IHJlbW92ZUNhY2hlZFJlc291cmNlKENhY2hlZFJlc291cmNlKikgY29uc3Q7CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRTVkdEb2N1bWVudC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkU1ZHRG9jdW1lbnQuY3BwCmluZGV4IGRk
NWE0NzguLmE0NDgwODYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9D
YWNoZWRTVkdEb2N1bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0Nh
Y2hlZFNWR0RvY3VtZW50LmNwcApAQCAtMzAsOCArMzAsOCBAQAogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKLUNhY2hlZFNWR0RvY3VtZW50OjpDYWNoZWRTVkdEb2N1bWVudChjb25zdCBSZXNvdXJj
ZVJlcXVlc3QmIHJlcXVlc3QpCi0gICAgOiBDYWNoZWRSZXNvdXJjZShyZXF1ZXN0LCBTVkdEb2N1
bWVudFJlc291cmNlKQorQ2FjaGVkU1ZHRG9jdW1lbnQ6OkNhY2hlZFNWR0RvY3VtZW50KGNvbnN0
IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgU2Vzc2lvbklEIHNlc3Npb25JRCkKKyAgICA6IENh
Y2hlZFJlc291cmNlKHJlcXVlc3QsIFNWR0RvY3VtZW50UmVzb3VyY2UsIHNlc3Npb25JRCkKICAg
ICAsIG1fZGVjb2RlcihUZXh0UmVzb3VyY2VEZWNvZGVyOjpjcmVhdGUoImFwcGxpY2F0aW9uL3ht
bCIpKQogewogICAgIHNldEFjY2VwdCgiaW1hZ2Uvc3ZnK3htbCIpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFNWR0RvY3VtZW50LmggYi9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkU1ZHRG9jdW1lbnQuaAppbmRleCA2YzA4ZTJlLi43ZDQ2
ZmE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkU1ZHRG9j
dW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkU1ZHRG9jdW1l
bnQuaApAQCAtMzIsNyArMzIsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIENhY2hl
ZFNWR0RvY3VtZW50IGZpbmFsIDogcHVibGljIENhY2hlZFJlc291cmNlIHsKIHB1YmxpYzoKLSAg
ICBleHBsaWNpdCBDYWNoZWRTVkdEb2N1bWVudChjb25zdCBSZXNvdXJjZVJlcXVlc3QmKTsKKyAg
ICBleHBsaWNpdCBDYWNoZWRTVkdEb2N1bWVudChjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBTZXNz
aW9uSUQpOwogICAgIHZpcnR1YWwgfkNhY2hlZFNWR0RvY3VtZW50KCk7CiAKICAgICBTVkdEb2N1
bWVudCogZG9jdW1lbnQoKSBjb25zdCB7IHJldHVybiBtX2RvY3VtZW50LmdldCgpOyB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkU2NyaXB0LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRTY3JpcHQuY3BwCmluZGV4IDQ4ZmFjZDcu
LmVkYzY4NWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRT
Y3JpcHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRTY3JpcHQu
Y3BwCkBAIC0zOSw4ICszOSw4IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotQ2FjaGVkU2Ny
aXB0OjpDYWNoZWRTY3JpcHQoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXNvdXJjZVJlcXVlc3Qs
IGNvbnN0IFN0cmluZyYgY2hhcnNldCkKLSAgICA6IENhY2hlZFJlc291cmNlKHJlc291cmNlUmVx
dWVzdCwgU2NyaXB0KQorQ2FjaGVkU2NyaXB0OjpDYWNoZWRTY3JpcHQoY29uc3QgUmVzb3VyY2VS
ZXF1ZXN0JiByZXNvdXJjZVJlcXVlc3QsIGNvbnN0IFN0cmluZyYgY2hhcnNldCwgU2Vzc2lvbklE
IHNlc3Npb25JRCkKKyAgICA6IENhY2hlZFJlc291cmNlKHJlc291cmNlUmVxdWVzdCwgU2NyaXB0
LCBzZXNzaW9uSUQpCiAgICAgLCBtX2RlY29kZXIoVGV4dFJlc291cmNlRGVjb2Rlcjo6Y3JlYXRl
KEFTQ0lJTGl0ZXJhbCgiYXBwbGljYXRpb24vamF2YXNjcmlwdCIpLCBjaGFyc2V0KSkKIHsKICAg
ICAvLyBJdCdzIGphdmFzY3JpcHQgd2Ugd2FudC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9jYWNoZS9DYWNoZWRTY3JpcHQuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNo
ZS9DYWNoZWRTY3JpcHQuaAppbmRleCBkNDM4YjI3Li5jOWM3M2QyIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkU2NyaXB0LmgKKysrIGIvU291cmNlL1dlYkNv
cmUvbG9hZGVyL2NhY2hlL0NhY2hlZFNjcmlwdC5oCkBAIC0zNSw3ICszNSw3IEBAIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAogICAgIGNsYXNzIENhY2hlZFNjcmlwdCBmaW5hbCA6IHB1YmxpYyBDYWNo
ZWRSZXNvdXJjZSB7CiAgICAgcHVibGljOgotICAgICAgICBDYWNoZWRTY3JpcHQoY29uc3QgUmVz
b3VyY2VSZXF1ZXN0JiwgY29uc3QgU3RyaW5nJiBjaGFyc2V0KTsKKyAgICAgICAgQ2FjaGVkU2Ny
aXB0KGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFN0cmluZyYgY2hhcnNldCwgU2Vzc2lv
bklEKTsKICAgICAgICAgdmlydHVhbCB+Q2FjaGVkU2NyaXB0KCk7CiAKICAgICAgICAgY29uc3Qg
U3RyaW5nJiBzY3JpcHQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNo
ZS9DYWNoZWRUZXh0VHJhY2suY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hl
ZFRleHRUcmFjay5jcHAKaW5kZXggOTQ5NzRhNS4uMjA1MDU0MSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFRleHRUcmFjay5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFRleHRUcmFjay5jcHAKQEAgLTM5LDggKzM5LDggQEAK
IAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1DYWNoZWRUZXh0VHJhY2s6OkNhY2hlZFRleHRUcmFj
ayhjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlc291cmNlUmVxdWVzdCkKLSAgICA6IENhY2hlZFJl
c291cmNlKHJlc291cmNlUmVxdWVzdCwgVGV4dFRyYWNrUmVzb3VyY2UpCitDYWNoZWRUZXh0VHJh
Y2s6OkNhY2hlZFRleHRUcmFjayhjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlc291cmNlUmVxdWVz
dCwgU2Vzc2lvbklEIHNlc3Npb25JRCkKKyAgICA6IENhY2hlZFJlc291cmNlKHJlc291cmNlUmVx
dWVzdCwgVGV4dFRyYWNrUmVzb3VyY2UsIHNlc3Npb25JRCkKIHsKIH0KIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFRleHRUcmFjay5oIGIvU291cmNlL1dl
YkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFRleHRUcmFjay5oCmluZGV4IGIzZWVhN2EuLjc5M2Fj
OTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRUZXh0VHJh
Y2suaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkVGV4dFRyYWNrLmgK
QEAgLTM1LDcgKzM1LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBDYWNoZWRUZXh0
VHJhY2sgZmluYWwgOiBwdWJsaWMgQ2FjaGVkUmVzb3VyY2UgewogcHVibGljOgotICAgIENhY2hl
ZFRleHRUcmFjayhjb25zdCBSZXNvdXJjZVJlcXVlc3QmKTsKKyAgICBDYWNoZWRUZXh0VHJhY2so
Y29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgU2Vzc2lvbklEKTsKICAgICB2aXJ0dWFsIH5DYWNoZWRU
ZXh0VHJhY2soKTsKIAogcHJpdmF0ZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9jYWNoZS9DYWNoZWRYU0xTdHlsZVNoZWV0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9j
YWNoZS9DYWNoZWRYU0xTdHlsZVNoZWV0LmNwcAppbmRleCBlYjZjOGUxLi43YTQ5YWMwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkWFNMU3R5bGVTaGVldC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFhTTFN0eWxlU2hlZXQu
Y3BwCkBAIC0zNyw4ICszNyw4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogI2lmIEVOQUJMRShY
U0xUKQogCi1DYWNoZWRYU0xTdHlsZVNoZWV0OjpDYWNoZWRYU0xTdHlsZVNoZWV0KGNvbnN0IFJl
c291cmNlUmVxdWVzdCYgcmVzb3VyY2VSZXF1ZXN0KQotICAgIDogQ2FjaGVkUmVzb3VyY2UocmVz
b3VyY2VSZXF1ZXN0LCBYU0xTdHlsZVNoZWV0KQorQ2FjaGVkWFNMU3R5bGVTaGVldDo6Q2FjaGVk
WFNMU3R5bGVTaGVldChjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlc291cmNlUmVxdWVzdCwgU2Vz
c2lvbklEIHNlc3Npb25JRCkKKyAgICA6IENhY2hlZFJlc291cmNlKHJlc291cmNlUmVxdWVzdCwg
WFNMU3R5bGVTaGVldCwgc2Vzc2lvbklEKQogICAgICwgbV9kZWNvZGVyKFRleHRSZXNvdXJjZURl
Y29kZXI6OmNyZWF0ZSgidGV4dC94c2wiKSkKIHsKICAgICAvLyBJdCdzIFhNTCB3ZSB3YW50Lgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFhTTFN0eWxlU2hl
ZXQuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRYU0xTdHlsZVNoZWV0LmgK
aW5kZXggMGNiZmI2NS4uMzY5OTIzYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVy
L2NhY2hlL0NhY2hlZFhTTFN0eWxlU2hlZXQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
Y2FjaGUvQ2FjaGVkWFNMU3R5bGVTaGVldC5oCkBAIC0zNyw3ICszNyw3IEBAIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKICNpZiBFTkFCTEUoWFNMVCkKICAgICBjbGFzcyBDYWNoZWRYU0xTdHlsZVNoZWV0
IGZpbmFsIDogcHVibGljIENhY2hlZFJlc291cmNlIHsKICAgICBwdWJsaWM6Ci0gICAgICAgIENh
Y2hlZFhTTFN0eWxlU2hlZXQoY29uc3QgUmVzb3VyY2VSZXF1ZXN0Jik7CisgICAgICAgIENhY2hl
ZFhTTFN0eWxlU2hlZXQoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgU2Vzc2lvbklEKTsKIAogICAg
ICAgICBjb25zdCBTdHJpbmcmIHNoZWV0KCkgY29uc3QgeyByZXR1cm4gbV9zaGVldDsgfQogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvTWVtb3J5Q2FjaGUuY3BwIGIv
U291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL01lbW9yeUNhY2hlLmNwcAppbmRleCBjYzZhMjI1
Li41MWNiMGI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvTWVtb3J5
Q2FjaGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9NZW1vcnlDYWNoZS5j
cHAKQEAgLTgwLDYgKzgwLDE3IEBAIE1lbW9yeUNhY2hlOjpNZW1vcnlDYWNoZSgpCiB7CiB9CiAK
K01lbW9yeUNhY2hlOjpDYWNoZWRSZXNvdXJjZU1hcCYgTWVtb3J5Q2FjaGU6OmdldFNlc3Npb25N
YXAoU2Vzc2lvbklEIHNlc3Npb25JRCkKK3sKKyAgICBBU1NFUlQoc2Vzc2lvbklELmlzVmFsaWQo
KSk7CisgICAgQ2FjaGVkUmVzb3VyY2VNYXAqIG1hcCA9IG1fc2Vzc2lvblJlc291cmNlcy5nZXQo
c2Vzc2lvbklEKTsKKyAgICBpZiAoIW1hcCkgeworICAgICAgICBtX3Nlc3Npb25SZXNvdXJjZXMu
c2V0KHNlc3Npb25JRCwgc3RkOjptYWtlX3VuaXF1ZTxDYWNoZWRSZXNvdXJjZU1hcD4oKSk7Cisg
ICAgICAgIG1hcCA9IG1fc2Vzc2lvblJlc291cmNlcy5nZXQoc2Vzc2lvbklEKTsKKyAgICB9Cisg
ICAgcmV0dXJuICptYXA7Cit9CisKIFVSTCBNZW1vcnlDYWNoZTo6cmVtb3ZlRnJhZ21lbnRJZGVu
dGlmaWVySWZOZWVkZWQoY29uc3QgVVJMJiBvcmlnaW5hbFVSTCkKIHsKICAgICBpZiAoIW9yaWdp
bmFsVVJMLmhhc0ZyYWdtZW50SWRlbnRpZmllcigpKQpAQCAtMTAxLDE1ICsxMTIsMTYgQEAgYm9v
bCBNZW1vcnlDYWNoZTo6YWRkKENhY2hlZFJlc291cmNlKiByZXNvdXJjZSkKIAogICAgIEFTU0VS
VChXVEY6OmlzTWFpblRocmVhZCgpKTsKIAorICAgIENhY2hlZFJlc291cmNlTWFwJiByZXNvdXJj
ZXMgPSBnZXRTZXNzaW9uTWFwKHJlc291cmNlLT5zZXNzaW9uSUQoKSk7CiAjaWYgRU5BQkxFKENB
Q0hFX1BBUlRJVElPTklORykKLSAgICBDYWNoZWRSZXNvdXJjZUl0ZW0qIG9yaWdpbk1hcCA9IG1f
cmVzb3VyY2VzLmdldChyZXNvdXJjZS0+dXJsKCkpOworICAgIENhY2hlZFJlc291cmNlSXRlbSog
b3JpZ2luTWFwID0gcmVzb3VyY2VzLmdldChyZXNvdXJjZS0+dXJsKCkpOwogICAgIGlmICghb3Jp
Z2luTWFwKSB7CiAgICAgICAgIG9yaWdpbk1hcCA9IG5ldyBDYWNoZWRSZXNvdXJjZUl0ZW07Ci0g
ICAgICAgIG1fcmVzb3VyY2VzLnNldChyZXNvdXJjZS0+dXJsKCksIGFkb3B0UHRyKG9yaWdpbk1h
cCkpOworICAgICAgICByZXNvdXJjZXMuc2V0KHJlc291cmNlLT51cmwoKSwgYWRvcHRQdHIob3Jp
Z2luTWFwKSk7CiAgICAgfQogICAgIG9yaWdpbk1hcC0+c2V0KHJlc291cmNlLT5jYWNoZVBhcnRp
dGlvbigpLCByZXNvdXJjZSk7CiAjZWxzZQotICAgIG1fcmVzb3VyY2VzLnNldChyZXNvdXJjZS0+
dXJsKCksIHJlc291cmNlKTsKKyAgICByZXNvdXJjZXMuc2V0KHJlc291cmNlLT51cmwoKSwgcmVz
b3VyY2UpOwogI2VuZGlmCiAgICAgcmVzb3VyY2UtPnNldEluQ2FjaGUodHJ1ZSk7CiAgICAgCkBA
IC0xMzQsMTcgKzE0NiwxOCBAQCB2b2lkIE1lbW9yeUNhY2hlOjpyZXZhbGlkYXRpb25TdWNjZWVk
ZWQoQ2FjaGVkUmVzb3VyY2UqIHJldmFsaWRhdGluZ1Jlc291cmNlLCBjbwogCiAgICAgZXZpY3Qo
cmV2YWxpZGF0aW5nUmVzb3VyY2UpOwogCisgICAgQ2FjaGVkUmVzb3VyY2VNYXAmIHJlc291cmNl
cyA9IGdldFNlc3Npb25NYXAocmVzb3VyY2UtPnNlc3Npb25JRCgpKTsKICNpZiBFTkFCTEUoQ0FD
SEVfUEFSVElUSU9OSU5HKQotICAgIEFTU0VSVCghbV9yZXNvdXJjZXMuZ2V0KHJlc291cmNlLT51
cmwoKSkgfHwgIW1fcmVzb3VyY2VzLmdldChyZXNvdXJjZS0+dXJsKCkpLT5nZXQocmVzb3VyY2Ut
PmNhY2hlUGFydGl0aW9uKCkpKTsKLSAgICBDYWNoZWRSZXNvdXJjZUl0ZW0qIG9yaWdpbk1hcCA9
IG1fcmVzb3VyY2VzLmdldChyZXNvdXJjZS0+dXJsKCkpOworICAgIEFTU0VSVCghcmVzb3VyY2Vz
LmdldChyZXNvdXJjZS0+dXJsKCkpIHx8ICFyZXNvdXJjZXMuZ2V0KHJlc291cmNlLT51cmwoKSkt
PmdldChyZXNvdXJjZS0+Y2FjaGVQYXJ0aXRpb24oKSkpOworICAgIENhY2hlZFJlc291cmNlSXRl
bSogb3JpZ2luTWFwID0gcmVzb3VyY2VzLmdldChyZXNvdXJjZS0+dXJsKCkpOwogICAgIGlmICgh
b3JpZ2luTWFwKSB7CiAgICAgICAgIG9yaWdpbk1hcCA9IG5ldyBDYWNoZWRSZXNvdXJjZUl0ZW07
Ci0gICAgICAgIG1fcmVzb3VyY2VzLnNldChyZXNvdXJjZS0+dXJsKCksIGFkb3B0UHRyKG9yaWdp
bk1hcCkpOworICAgICAgICByZXNvdXJjZXMuc2V0KHJlc291cmNlLT51cmwoKSwgYWRvcHRQdHIo
b3JpZ2luTWFwKSk7CiAgICAgfQogICAgIG9yaWdpbk1hcC0+c2V0KHJlc291cmNlLT5jYWNoZVBh
cnRpdGlvbigpLCByZXNvdXJjZSk7CiAjZWxzZQotICAgIEFTU0VSVCghbV9yZXNvdXJjZXMuZ2V0
KHJlc291cmNlLT51cmwoKSkpOwotICAgIG1fcmVzb3VyY2VzLnNldChyZXNvdXJjZS0+dXJsKCks
IHJlc291cmNlKTsKKyAgICBBU1NFUlQoIXJlc291cmNlcy5nZXQocmVzb3VyY2UtPnVybCgpKSk7
CisgICAgcmVzb3VyY2VzLnNldChyZXNvdXJjZS0+dXJsKCksIHJlc291cmNlKTsKICNlbmRpZgog
ICAgIHJlc291cmNlLT5zZXRJbkNhY2hlKHRydWUpOwogICAgIHJlc291cmNlLT51cGRhdGVSZXNw
b25zZUFmdGVyUmV2YWxpZGF0aW9uKHJlc3BvbnNlKTsKQEAgLTE2OSwyMiArMTgyLDI4IEBAIHZv
aWQgTWVtb3J5Q2FjaGU6OnJldmFsaWRhdGlvbkZhaWxlZChDYWNoZWRSZXNvdXJjZSogcmV2YWxp
ZGF0aW5nUmVzb3VyY2UpCiAgICAgcmV2YWxpZGF0aW5nUmVzb3VyY2UtPmNsZWFyUmVzb3VyY2VU
b1JldmFsaWRhdGUoKTsKIH0KIAotQ2FjaGVkUmVzb3VyY2UqIE1lbW9yeUNhY2hlOjpyZXNvdXJj
ZUZvclVSTChjb25zdCBVUkwmIHJlc291cmNlVVJMKQorQ2FjaGVkUmVzb3VyY2UqIE1lbW9yeUNh
Y2hlOjpyZXNvdXJjZUZvclVSTChjb25zdCBVUkwmIHJlc291cmNlVVJMLCBTZXNzaW9uSUQgc2Vz
c2lvbklEKQogewotICAgIHJldHVybiByZXNvdXJjZUZvclJlcXVlc3QoUmVzb3VyY2VSZXF1ZXN0
KHJlc291cmNlVVJMKSk7CisgICAgcmV0dXJuIHJlc291cmNlRm9yUmVxdWVzdChSZXNvdXJjZVJl
cXVlc3QocmVzb3VyY2VVUkwpLCBzZXNzaW9uSUQpOwogfQogCi1DYWNoZWRSZXNvdXJjZSogTWVt
b3J5Q2FjaGU6OnJlc291cmNlRm9yUmVxdWVzdChjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVl
c3QpCitDYWNoZWRSZXNvdXJjZSogTWVtb3J5Q2FjaGU6OnJlc291cmNlRm9yUmVxdWVzdChjb25z
dCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIFNlc3Npb25JRCBzZXNzaW9uSUQpCit7CisgICAg
cmV0dXJuIHJlc291cmNlRm9yUmVxdWVzdEltcGwocmVxdWVzdCwgZ2V0U2Vzc2lvbk1hcChzZXNz
aW9uSUQpKTsKK30KKworQ2FjaGVkUmVzb3VyY2UqIE1lbW9yeUNhY2hlOjpyZXNvdXJjZUZvclJl
cXVlc3RJbXBsKGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgQ2FjaGVkUmVzb3VyY2VN
YXAmIHJlc291cmNlcykKIHsKICAgICBBU1NFUlQoV1RGOjppc01haW5UaHJlYWQoKSk7CiAgICAg
VVJMIHVybCA9IHJlbW92ZUZyYWdtZW50SWRlbnRpZmllcklmTmVlZGVkKHJlcXVlc3QudXJsKCkp
OworCiAjaWYgRU5BQkxFKENBQ0hFX1BBUlRJVElPTklORykKLSAgICBDYWNoZWRSZXNvdXJjZUl0
ZW0qIGl0ZW0gPSBtX3Jlc291cmNlcy5nZXQodXJsKTsKKyAgICBDYWNoZWRSZXNvdXJjZUl0ZW0q
IGl0ZW0gPSByZXNvdXJjZXMuZ2V0KHVybCk7CiAgICAgQ2FjaGVkUmVzb3VyY2UqIHJlc291cmNl
ID0gMDsKICAgICBpZiAoaXRlbSkKICAgICAgICAgcmVzb3VyY2UgPSBpdGVtLT5nZXQocmVxdWVz
dC5jYWNoZVBhcnRpdGlvbigpKTsKICNlbHNlCi0gICAgQ2FjaGVkUmVzb3VyY2UqIHJlc291cmNl
ID0gbV9yZXNvdXJjZXMuZ2V0KHVybCk7CisgICAgQ2FjaGVkUmVzb3VyY2UqIHJlc291cmNlID0g
cmVzb3VyY2VzLmdldCh1cmwpOwogI2VuZGlmCiAgICAgYm9vbCB3YXNQdXJnZWFibGUgPSBNZW1v
cnlDYWNoZTo6c2hvdWxkTWFrZVJlc291cmNlUHVyZ2VhYmxlT25FdmljdGlvbigpICYmIHJlc291
cmNlICYmIHJlc291cmNlLT5pc1B1cmdlYWJsZSgpOwogICAgIGlmIChyZXNvdXJjZSAmJiAhcmVz
b3VyY2UtPm1ha2VQdXJnZWFibGUoZmFsc2UpKSB7CkBAIC0yMjUsMTMgKzI0NCwxNCBAQCBzdGF0
aWMgQ2FjaGVkSW1hZ2VDbGllbnQmIGR1bW15Q2FjaGVkSW1hZ2VDbGllbnQoKQogYm9vbCBNZW1v
cnlDYWNoZTo6YWRkSW1hZ2VUb0NhY2hlKE5hdGl2ZUltYWdlUHRyIGltYWdlLCBjb25zdCBVUkwm
IHVybCwgY29uc3QgU3RyaW5nJiBjYWNoZVBhcnRpdGlvbikKIHsKICAgICBBU1NFUlQoaW1hZ2Up
OworICAgIFNlc3Npb25JRCBzZXNzaW9uSUQgPSBTZXNzaW9uSUQ6OmRlZmF1bHRTZXNzaW9uSUQo
KTsKICAgICByZW1vdmVJbWFnZUZyb21DYWNoZSh1cmwsIGNhY2hlUGFydGl0aW9uKTsgLy8gUmVt
b3ZlIGNhY2hlIGVudHJ5IGlmIGl0IGFscmVhZHkgZXhpc3RzLgogCiAgICAgUmVmUHRyPEJpdG1h
cEltYWdlPiBiaXRtYXBJbWFnZSA9IEJpdG1hcEltYWdlOjpjcmVhdGUoaW1hZ2UsIG51bGxwdHIp
OwogICAgIGlmICghYml0bWFwSW1hZ2UpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIHN0
ZDo6dW5pcXVlX3B0cjxDYWNoZWRJbWFnZT4gY2FjaGVkSW1hZ2UgPSBzdGQ6Om1ha2VfdW5pcXVl
PENhY2hlZEltYWdlPih1cmwsIGJpdG1hcEltYWdlLmdldCgpLCBDYWNoZWRJbWFnZTo6TWFudWFs
bHlDYWNoZWQpOworICAgIHN0ZDo6dW5pcXVlX3B0cjxDYWNoZWRJbWFnZT4gY2FjaGVkSW1hZ2Ug
PSBzdGQ6Om1ha2VfdW5pcXVlPENhY2hlZEltYWdlPih1cmwsIGJpdG1hcEltYWdlLmdldCgpLCBD
YWNoZWRJbWFnZTo6TWFudWFsbHlDYWNoZWQsIHNlc3Npb25JRCk7CiAKICAgICAvLyBBY3R1YWwg
cmVsZWFzZSBvZiB0aGUgQ0dJbWFnZVJlZiBpcyBkb25lIGluIEJpdG1hcEltYWdlLgogICAgIENG
UmV0YWluKGltYWdlKTsKQEAgLTI0MCwyMSArMjYwLDIxIEBAIGJvb2wgTWVtb3J5Q2FjaGU6OmFk
ZEltYWdlVG9DYWNoZShOYXRpdmVJbWFnZVB0ciBpbWFnZSwgY29uc3QgVVJMJiB1cmwsIGNvbnN0
IFN0CiAjaWYgRU5BQkxFKENBQ0hFX1BBUlRJVElPTklORykKICAgICBjYWNoZWRJbWFnZS0+cmVz
b3VyY2VSZXF1ZXN0KCkuc2V0Q2FjaGVQYXJ0aXRpb24oY2FjaGVQYXJ0aXRpb24pOwogI2VuZGlm
Ci0gICAgYWRkKGNhY2hlZEltYWdlLnJlbGVhc2UoKSk7CiAgICAgcmV0dXJuIHRydWU7CiB9CiAK
IHZvaWQgTWVtb3J5Q2FjaGU6OnJlbW92ZUltYWdlRnJvbUNhY2hlKGNvbnN0IFVSTCYgdXJsLCBj
b25zdCBTdHJpbmcmIGNhY2hlUGFydGl0aW9uKQogeworICAgIENhY2hlZFJlc291cmNlTWFwJiBy
ZXNvdXJjZXMgPSBnZXRTZXNzaW9uTWFwKFNlc3Npb25JRDo6ZGVmYXVsdFNlc3Npb25JRCgpKTsK
ICNpZiBFTkFCTEUoQ0FDSEVfUEFSVElUSU9OSU5HKQogICAgIENhY2hlZFJlc291cmNlKiByZXNv
dXJjZTsKLSAgICBpZiAoQ2FjaGVkUmVzb3VyY2VJdGVtKiBpdGVtID0gbV9yZXNvdXJjZXMuZ2V0
KHVybCkpCisgICAgaWYgKENhY2hlZFJlc291cmNlSXRlbSogaXRlbSA9IHJlc291cmNlcy5nZXQo
dXJsKSkKICAgICAgICAgcmVzb3VyY2UgPSBpdGVtLT5nZXQoUmVzb3VyY2VSZXF1ZXN0OjpwYXJ0
aXRpb25OYW1lKGNhY2hlUGFydGl0aW9uKSk7CiAgICAgZWxzZQogICAgICAgICByZXNvdXJjZSA9
IG51bGxwdHI7CiAjZWxzZQogICAgIFVOVVNFRF9QQVJBTShjYWNoZVBhcnRpdGlvbik7Ci0gICAg
Q2FjaGVkUmVzb3VyY2UqIHJlc291cmNlID0gbV9yZXNvdXJjZXMuZ2V0KHVybCk7CisgICAgQ2Fj
aGVkUmVzb3VyY2UqIHJlc291cmNlID0gcmVzb3VyY2VzLmdldCh1cmwpOwogI2VuZGlmCiAgICAg
aWYgKCFyZXNvdXJjZSkKICAgICAgICAgcmV0dXJuOwpAQCAtNTIyLDE3ICs1NDIsMTggQEAgdm9p
ZCBNZW1vcnlDYWNoZTo6ZXZpY3QoQ2FjaGVkUmVzb3VyY2UqIHJlc291cmNlKQogICAgIExPRyhS
ZXNvdXJjZUxvYWRpbmcsICJFdmljdGluZyByZXNvdXJjZSAlcCBmb3IgJyVzJyBmcm9tIGNhY2hl
IiwgcmVzb3VyY2UsIHJlc291cmNlLT51cmwoKS5zdHJpbmcoKS5sYXRpbjEoKS5kYXRhKCkpOwog
ICAgIC8vIFRoZSByZXNvdXJjZSBtYXkgaGF2ZSBhbHJlYWR5IGJlZW4gcmVtb3ZlZCBieSBzb21l
b25lIG90aGVyIHRoYW4gb3VyIGNhbGxlciwKICAgICAvLyB3aG8gbmVlZGVkIGEgZnJlc2ggY29w
eSBmb3IgYSByZWxvYWQuIFNlZSA8aHR0cDovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTI0NzkjYzY+LgorICAgIENhY2hlZFJlc291cmNlTWFwJiByZXNvdXJjZXMgPSBnZXRTZXNz
aW9uTWFwKHJlc291cmNlLT5zZXNzaW9uSUQoKSk7CiAgICAgaWYgKHJlc291cmNlLT5pbkNhY2hl
KCkpIHsKICAgICAgICAgLy8gUmVtb3ZlIGZyb20gdGhlIHJlc291cmNlIG1hcC4KICNpZiBFTkFC
TEUoQ0FDSEVfUEFSVElUSU9OSU5HKQotICAgICAgICBDYWNoZWRSZXNvdXJjZUl0ZW0qIGl0ZW0g
PSBtX3Jlc291cmNlcy5nZXQocmVzb3VyY2UtPnVybCgpKTsKKyAgICAgICAgQ2FjaGVkUmVzb3Vy
Y2VJdGVtKiBpdGVtID0gcmVzb3VyY2VzLmdldChyZXNvdXJjZS0+dXJsKCkpOwogICAgICAgICBp
ZiAoaXRlbSkgewogICAgICAgICAgICAgaXRlbS0+cmVtb3ZlKHJlc291cmNlLT5jYWNoZVBhcnRp
dGlvbigpKTsKICAgICAgICAgICAgIGlmICghaXRlbS0+c2l6ZSgpKQotICAgICAgICAgICAgICAg
IG1fcmVzb3VyY2VzLnJlbW92ZShyZXNvdXJjZS0+dXJsKCkpOworICAgICAgICAgICAgICAgIHJl
c291cmNlcy5yZW1vdmUocmVzb3VyY2UtPnVybCgpKTsKICAgICAgICAgfQogI2Vsc2UKLSAgICAg
ICAgbV9yZXNvdXJjZXMucmVtb3ZlKHJlc291cmNlLT51cmwoKSk7CisgICAgICAgIHJlc291cmNl
cy5yZW1vdmUocmVzb3VyY2UtPnVybCgpKTsKICNlbmRpZgogICAgICAgICByZXNvdXJjZS0+c2V0
SW5DYWNoZShmYWxzZSk7CiAKQEAgLTU0Nyw5ICs1NjgsOSBAQCB2b2lkIE1lbW9yeUNhY2hlOjpl
dmljdChDYWNoZWRSZXNvdXJjZSogcmVzb3VyY2UpCiAgICAgICAgICAgICBhZGp1c3RTaXplKHJl
c291cmNlLT5oYXNDbGllbnRzKCksIC1zdGF0aWNfY2FzdDxpbnQ+KHJlc291cmNlLT5zaXplKCkp
KTsKICAgICB9IGVsc2UKICNpZiBFTkFCTEUoQ0FDSEVfUEFSVElUSU9OSU5HKQotICAgICAgICBB
U1NFUlQoIW1fcmVzb3VyY2VzLmdldChyZXNvdXJjZS0+dXJsKCkpIHx8IG1fcmVzb3VyY2VzLmdl
dChyZXNvdXJjZS0+dXJsKCkpLT5nZXQocmVzb3VyY2UtPmNhY2hlUGFydGl0aW9uKCkpICE9IHJl
c291cmNlKTsKKyAgICAgICAgQVNTRVJUKCFyZXNvdXJjZXMuZ2V0KHJlc291cmNlLT51cmwoKSkg
fHwgcmVzb3VyY2VzLmdldChyZXNvdXJjZS0+dXJsKCkpLT5nZXQocmVzb3VyY2UtPmNhY2hlUGFy
dGl0aW9uKCkpICE9IHJlc291cmNlKTsKICNlbHNlCi0gICAgICAgIEFTU0VSVChtX3Jlc291cmNl
cy5nZXQocmVzb3VyY2UtPnVybCgpKSAhPSByZXNvdXJjZSk7CisgICAgICAgIEFTU0VSVChyZXNv
dXJjZXMuZ2V0KHJlc291cmNlLT51cmwoKSkgIT0gcmVzb3VyY2UpOwogI2VuZGlmCiAKICAgICBy
ZXNvdXJjZS0+ZGVsZXRlSWZQb3NzaWJsZSgpOwpAQCAtNjY5LDMxICs2OTAsMzMgQEAgdm9pZCBN
ZW1vcnlDYWNoZTo6cmVtb3ZlUmVzb3VyY2VzV2l0aE9yaWdpbihTZWN1cml0eU9yaWdpbiogb3Jp
Z2luKQogewogICAgIFZlY3RvcjxDYWNoZWRSZXNvdXJjZSo+IHJlc291cmNlc1dpdGhPcmlnaW47
CiAKLSAgICBDYWNoZWRSZXNvdXJjZU1hcDo6aXRlcmF0b3IgZSA9IG1fcmVzb3VyY2VzLmVuZCgp
OworICAgIGZvciAoYXV0byYgcmVzb3VyY2VzIDogbV9zZXNzaW9uUmVzb3VyY2VzKSB7CisgICAg
ICAgIENhY2hlZFJlc291cmNlTWFwOjppdGVyYXRvciBlID0gcmVzb3VyY2VzLnZhbHVlLT5lbmQo
KTsKICNpZiBFTkFCTEUoQ0FDSEVfUEFSVElUSU9OSU5HKQotICAgIFN0cmluZyBvcmlnaW5QYXJ0
aXRpb24gPSBSZXNvdXJjZVJlcXVlc3Q6OnBhcnRpdGlvbk5hbWUob3JpZ2luLT5ob3N0KCkpOwor
ICAgICAgICBTdHJpbmcgb3JpZ2luUGFydGl0aW9uID0gUmVzb3VyY2VSZXF1ZXN0OjpwYXJ0aXRp
b25OYW1lKG9yaWdpbi0+aG9zdCgpKTsKICNlbmRpZgogCi0gICAgZm9yIChDYWNoZWRSZXNvdXJj
ZU1hcDo6aXRlcmF0b3IgaXQgPSBtX3Jlc291cmNlcy5iZWdpbigpOyBpdCAhPSBlOyArK2l0KSB7
CisgICAgICAgIGZvciAoQ2FjaGVkUmVzb3VyY2VNYXA6Oml0ZXJhdG9yIGl0ID0gcmVzb3VyY2Vz
LnZhbHVlLT5iZWdpbigpOyBpdCAhPSBlOyArK2l0KSB7CiAjaWYgRU5BQkxFKENBQ0hFX1BBUlRJ
VElPTklORykKLSAgICAgICAgZm9yIChDYWNoZWRSZXNvdXJjZUl0ZW06Oml0ZXJhdG9yIGl0ZW1J
dGVyYXRvciA9IGl0LT52YWx1ZS0+YmVnaW4oKTsgaXRlbUl0ZXJhdG9yICE9IGl0LT52YWx1ZS0+
ZW5kKCk7ICsraXRlbUl0ZXJhdG9yKSB7Ci0gICAgICAgICAgICBDYWNoZWRSZXNvdXJjZSogcmVz
b3VyY2UgPSBpdGVtSXRlcmF0b3ItPnZhbHVlOwotICAgICAgICAgICAgU3RyaW5nIHBhcnRpdGlv
biA9IGl0ZW1JdGVyYXRvci0+a2V5OwotICAgICAgICAgICAgaWYgKHBhcnRpdGlvbiA9PSBvcmln
aW5QYXJ0aXRpb24pIHsKLSAgICAgICAgICAgICAgICByZXNvdXJjZXNXaXRoT3JpZ2luLmFwcGVu
ZChyZXNvdXJjZSk7Ci0gICAgICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgICAgICB9Cisg
ICAgICAgICAgICBmb3IgKENhY2hlZFJlc291cmNlSXRlbTo6aXRlcmF0b3IgaXRlbUl0ZXJhdG9y
ID0gaXQtPnZhbHVlLT5iZWdpbigpOyBpdGVtSXRlcmF0b3IgIT0gaXQtPnZhbHVlLT5lbmQoKTsg
KytpdGVtSXRlcmF0b3IpIHsKKyAgICAgICAgICAgICAgICBDYWNoZWRSZXNvdXJjZSogcmVzb3Vy
Y2UgPSBpdGVtSXRlcmF0b3ItPnZhbHVlOworICAgICAgICAgICAgICAgIFN0cmluZyBwYXJ0aXRp
b24gPSBpdGVtSXRlcmF0b3ItPmtleTsKKyAgICAgICAgICAgICAgICBpZiAocGFydGl0aW9uID09
IG9yaWdpblBhcnRpdGlvbikgeworICAgICAgICAgICAgICAgICAgICByZXNvdXJjZXNXaXRoT3Jp
Z2luLmFwcGVuZChyZXNvdXJjZSk7CisgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAg
ICAgICAgICAgICAgIH0KICNlbHNlCi0gICAgICAgICAgICBDYWNoZWRSZXNvdXJjZSogcmVzb3Vy
Y2UgPSBpdC0+dmFsdWU7CisgICAgICAgICAgICAgICAgQ2FjaGVkUmVzb3VyY2UqIHJlc291cmNl
ID0gaXQtPnZhbHVlOwogI2VuZGlmCi0gICAgICAgICAgICBSZWZQdHI8U2VjdXJpdHlPcmlnaW4+
IHJlc291cmNlT3JpZ2luID0gU2VjdXJpdHlPcmlnaW46OmNyZWF0ZUZyb21TdHJpbmcocmVzb3Vy
Y2UtPnVybCgpKTsKLSAgICAgICAgICAgIGlmICghcmVzb3VyY2VPcmlnaW4pCi0gICAgICAgICAg
ICAgICAgY29udGludWU7Ci0gICAgICAgICAgICBpZiAocmVzb3VyY2VPcmlnaW4tPmVxdWFsKG9y
aWdpbikpCi0gICAgICAgICAgICAgICAgcmVzb3VyY2VzV2l0aE9yaWdpbi5hcHBlbmQocmVzb3Vy
Y2UpOworICAgICAgICAgICAgICAgIFJlZlB0cjxTZWN1cml0eU9yaWdpbj4gcmVzb3VyY2VPcmln
aW4gPSBTZWN1cml0eU9yaWdpbjo6Y3JlYXRlRnJvbVN0cmluZyhyZXNvdXJjZS0+dXJsKCkpOwor
ICAgICAgICAgICAgICAgIGlmICghcmVzb3VyY2VPcmlnaW4pCisgICAgICAgICAgICAgICAgICAg
IGNvbnRpbnVlOworICAgICAgICAgICAgICAgIGlmIChyZXNvdXJjZU9yaWdpbi0+ZXF1YWwob3Jp
Z2luKSkKKyAgICAgICAgICAgICAgICAgICAgcmVzb3VyY2VzV2l0aE9yaWdpbi5hcHBlbmQocmVz
b3VyY2UpOwogI2lmIEVOQUJMRShDQUNIRV9QQVJUSVRJT05JTkcpCi0gICAgICAgIH0KKyAgICAg
ICAgICAgIH0KICNlbmRpZgorICAgICAgICB9CiAgICAgfQogCiAgICAgZm9yIChzaXplX3QgaSA9
IDA7IGkgPCByZXNvdXJjZXNXaXRoT3JpZ2luLnNpemUoKTsgKytpKQpAQCAtNzA1LDE2ICs3Mjgs
MTggQEAgdm9pZCBNZW1vcnlDYWNoZTo6Z2V0T3JpZ2luc1dpdGhDYWNoZShTZWN1cml0eU9yaWdp
blNldCYgb3JpZ2lucykKICNpZiBFTkFCTEUoQ0FDSEVfUEFSVElUSU9OSU5HKQogICAgIERFRklO
RV9TVEFUSUNfTE9DQUwoU3RyaW5nLCBodHRwU3RyaW5nLCAoImh0dHAiKSk7CiAjZW5kaWYKLSAg
ICBDYWNoZWRSZXNvdXJjZU1hcDo6aXRlcmF0b3IgZSA9IG1fcmVzb3VyY2VzLmVuZCgpOwotICAg
IGZvciAoQ2FjaGVkUmVzb3VyY2VNYXA6Oml0ZXJhdG9yIGl0ID0gbV9yZXNvdXJjZXMuYmVnaW4o
KTsgaXQgIT0gZTsgKytpdCkgeworICAgIGZvciAoYXV0byYgcmVzb3VyY2VzIDogbV9zZXNzaW9u
UmVzb3VyY2VzKSB7CisgICAgICAgIENhY2hlZFJlc291cmNlTWFwOjppdGVyYXRvciBlID0gcmVz
b3VyY2VzLnZhbHVlLT5lbmQoKTsKKyAgICAgICAgZm9yIChDYWNoZWRSZXNvdXJjZU1hcDo6aXRl
cmF0b3IgaXQgPSByZXNvdXJjZXMudmFsdWUtPmJlZ2luKCk7IGl0ICE9IGU7ICsraXQpIHsKICNp
ZiBFTkFCTEUoQ0FDSEVfUEFSVElUSU9OSU5HKQotICAgICAgICBpZiAoaXQtPnZhbHVlLT5iZWdp
bigpLT5rZXkgPT0gZW1wdHlTdHJpbmcoKSkKLSAgICAgICAgICAgIG9yaWdpbnMuYWRkKFNlY3Vy
aXR5T3JpZ2luOjpjcmVhdGVGcm9tU3RyaW5nKGl0LT52YWx1ZS0+YmVnaW4oKS0+dmFsdWUtPnVy
bCgpKSk7Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIG9yaWdpbnMuYWRkKFNlY3VyaXR5T3Jp
Z2luOjpjcmVhdGUoaHR0cFN0cmluZywgaXQtPnZhbHVlLT5iZWdpbigpLT5rZXksIDApKTsKKyAg
ICAgICAgICAgIGlmIChpdC0+dmFsdWUtPmJlZ2luKCktPmtleSA9PSBlbXB0eVN0cmluZygpKQor
ICAgICAgICAgICAgICAgIG9yaWdpbnMuYWRkKFNlY3VyaXR5T3JpZ2luOjpjcmVhdGVGcm9tU3Ry
aW5nKGl0LT52YWx1ZS0+YmVnaW4oKS0+dmFsdWUtPnVybCgpKSk7CisgICAgICAgICAgICBlbHNl
CisgICAgICAgICAgICAgICAgb3JpZ2lucy5hZGQoU2VjdXJpdHlPcmlnaW46OmNyZWF0ZShodHRw
U3RyaW5nLCBpdC0+dmFsdWUtPmJlZ2luKCktPmtleSwgMCkpOwogI2Vsc2UKLSAgICAgICAgb3Jp
Z2lucy5hZGQoU2VjdXJpdHlPcmlnaW46OmNyZWF0ZUZyb21TdHJpbmcoaXQtPnZhbHVlLT51cmwo
KSkpOworICAgICAgICAgICAgb3JpZ2lucy5hZGQoU2VjdXJpdHlPcmlnaW46OmNyZWF0ZUZyb21T
dHJpbmcoaXQtPnZhbHVlLT51cmwoKSkpOwogI2VuZGlmCisgICAgICAgIH0KICAgICB9CiB9CiAK
QEAgLTgwOCwzMSArODMzLDM5IEBAIHZvaWQgTWVtb3J5Q2FjaGU6OmFkanVzdFNpemUoYm9vbCBs
aXZlLCBpbnQgZGVsdGEpCiAgICAgfQogfQogCi12b2lkIE1lbW9yeUNhY2hlOjpyZW1vdmVVcmxG
cm9tQ2FjaGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgY29uc3QgU3RyaW5nJiB1
cmxTdHJpbmcpCit2b2lkIE1lbW9yeUNhY2hlOjpyZW1vdmVVcmxGcm9tQ2FjaGUoU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCogY29udGV4dCwgY29uc3QgU3RyaW5nJiB1cmxTdHJpbmcsIFNlc3Npb25J
RCBzZXNzaW9uSUQpCiB7Ci0gICAgcmVtb3ZlUmVxdWVzdEZyb21DYWNoZShjb250ZXh0LCBSZXNv
dXJjZVJlcXVlc3QodXJsU3RyaW5nKSk7CisgICAgcmVtb3ZlUmVxdWVzdEZyb21DYWNoZShjb250
ZXh0LCBSZXNvdXJjZVJlcXVlc3QodXJsU3RyaW5nKSwgc2Vzc2lvbklEKTsKIH0KIAotdm9pZCBN
ZW1vcnlDYWNoZTo6cmVtb3ZlUmVxdWVzdEZyb21DYWNoZShTY3JpcHRFeGVjdXRpb25Db250ZXh0
KiBjb250ZXh0LCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QpCit2b2lkIE1lbW9yeUNh
Y2hlOjpyZW1vdmVSZXF1ZXN0RnJvbUNhY2hlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRl
eHQsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgU2Vzc2lvbklEIHNlc3Npb25JRCkK
IHsKICAgICBpZiAoY29udGV4dC0+aXNXb3JrZXJHbG9iYWxTY29wZSgpKSB7Ci0gICAgICAgIHRv
V29ya2VyR2xvYmFsU2NvcGUoY29udGV4dCktPnRocmVhZCgpLndvcmtlckxvYWRlclByb3h5KCku
cG9zdFRhc2tUb0xvYWRlcihjcmVhdGVDYWxsYmFja1Rhc2soJmNyb3NzVGhyZWFkUmVtb3ZlUmVx
dWVzdEZyb21DYWNoZSwgcmVxdWVzdCkpOworICAgICAgICB0b1dvcmtlckdsb2JhbFNjb3BlKGNv
bnRleHQpLT50aHJlYWQoKS53b3JrZXJMb2FkZXJQcm94eSgpLnBvc3RUYXNrVG9Mb2FkZXIoY3Jl
YXRlQ2FsbGJhY2tUYXNrKCZjcm9zc1RocmVhZFJlbW92ZVJlcXVlc3RGcm9tQ2FjaGUsIHJlcXVl
c3QsIHNlc3Npb25JRCkpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgcmVtb3ZlUmVx
dWVzdEZyb21DYWNoZUltcGwoY29udGV4dCwgcmVxdWVzdCk7CisgICAgcmVtb3ZlUmVxdWVzdEZy
b21DYWNoZUltcGwoY29udGV4dCwgcmVxdWVzdCwgc2Vzc2lvbklEKTsKK30KKwordm9pZCBNZW1v
cnlDYWNoZTo6cmVtb3ZlUmVxdWVzdEZyb21DYWNoZUltcGwoU2NyaXB0RXhlY3V0aW9uQ29udGV4
dCosIGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgU2Vzc2lvbklEIHNlc3Npb25JRCkK
K3sKKyAgICBpZiAoQ2FjaGVkUmVzb3VyY2UqIHJlc291cmNlID0gbWVtb3J5Q2FjaGUoKS0+cmVz
b3VyY2VGb3JSZXF1ZXN0KHJlcXVlc3QsIHNlc3Npb25JRCkpCisgICAgICAgIG1lbW9yeUNhY2hl
KCktPnJlbW92ZShyZXNvdXJjZSk7CiB9CiAKLXZvaWQgTWVtb3J5Q2FjaGU6OnJlbW92ZVJlcXVl
c3RGcm9tQ2FjaGVJbXBsKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBjb25zdCBSZXNvdXJjZVJl
cXVlc3QmIHJlcXVlc3QpCit2b2lkIE1lbW9yeUNhY2hlOjpyZW1vdmVSZXF1ZXN0RnJvbVNlc3Np
b25DYWNoZXMoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIGNvbnN0IFJlc291cmNlUmVxdWVzdCYg
cmVxdWVzdCkKIHsKLSAgICBpZiAoQ2FjaGVkUmVzb3VyY2UqIHJlc291cmNlID0gbWVtb3J5Q2Fj
aGUoKS0+cmVzb3VyY2VGb3JSZXF1ZXN0KHJlcXVlc3QpKQorICAgIGZvciAoYXV0byYgcmVzb3Vy
Y2VzIDogbWVtb3J5Q2FjaGUoKS0+bV9zZXNzaW9uUmVzb3VyY2VzKSB7CisgICAgICAgIGlmIChD
YWNoZWRSZXNvdXJjZSogcmVzb3VyY2UgPSBtZW1vcnlDYWNoZSgpLT5yZXNvdXJjZUZvclJlcXVl
c3RJbXBsKHJlcXVlc3QsICpyZXNvdXJjZXMudmFsdWUpKQogICAgICAgICBtZW1vcnlDYWNoZSgp
LT5yZW1vdmUocmVzb3VyY2UpOworICAgIH0KIH0KIAotdm9pZCBNZW1vcnlDYWNoZTo6Y3Jvc3NU
aHJlYWRSZW1vdmVSZXF1ZXN0RnJvbUNhY2hlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRl
eHQsIFBhc3NPd25QdHI8V2ViQ29yZTo6Q3Jvc3NUaHJlYWRSZXNvdXJjZVJlcXVlc3REYXRhPiBy
ZXF1ZXN0RGF0YSkKK3ZvaWQgTWVtb3J5Q2FjaGU6OmNyb3NzVGhyZWFkUmVtb3ZlUmVxdWVzdEZy
b21DYWNoZShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBQYXNzT3duUHRyPFdlYkNv
cmU6OkNyb3NzVGhyZWFkUmVzb3VyY2VSZXF1ZXN0RGF0YT4gcmVxdWVzdERhdGEsIFNlc3Npb25J
RCBzZXNzaW9uSUQpCiB7CiAgICAgT3duUHRyPFJlc291cmNlUmVxdWVzdD4gcmVxdWVzdChSZXNv
dXJjZVJlcXVlc3Q6OmFkb3B0KHJlcXVlc3REYXRhKSk7Ci0gICAgTWVtb3J5Q2FjaGU6OnJlbW92
ZVJlcXVlc3RGcm9tQ2FjaGVJbXBsKGNvbnRleHQsICpyZXF1ZXN0KTsKKyAgICBNZW1vcnlDYWNo
ZTo6cmVtb3ZlUmVxdWVzdEZyb21DYWNoZUltcGwoY29udGV4dCwgKnJlcXVlc3QsIHNlc3Npb25J
RCk7CiB9CiAKIHZvaWQgTWVtb3J5Q2FjaGU6OlR5cGVTdGF0aXN0aWM6OmFkZFJlc291cmNlKENh
Y2hlZFJlc291cmNlKiBvKQpAQCAtODU1LDM4ICs4ODgsNDEgQEAgdm9pZCBNZW1vcnlDYWNoZTo6
VHlwZVN0YXRpc3RpYzo6YWRkUmVzb3VyY2UoQ2FjaGVkUmVzb3VyY2UqIG8pCiBNZW1vcnlDYWNo
ZTo6U3RhdGlzdGljcyBNZW1vcnlDYWNoZTo6Z2V0U3RhdGlzdGljcygpCiB7CiAgICAgU3RhdGlz
dGljcyBzdGF0czsKLSAgICBDYWNoZWRSZXNvdXJjZU1hcDo6aXRlcmF0b3IgZSA9IG1fcmVzb3Vy
Y2VzLmVuZCgpOwotICAgIGZvciAoQ2FjaGVkUmVzb3VyY2VNYXA6Oml0ZXJhdG9yIGkgPSBtX3Jl
c291cmNlcy5iZWdpbigpOyBpICE9IGU7ICsraSkgeworCisgICAgZm9yIChhdXRvICZyZXNvdXJj
ZXMgOiBtX3Nlc3Npb25SZXNvdXJjZXMpIHsKKyAgICAgICAgQ2FjaGVkUmVzb3VyY2VNYXA6Oml0
ZXJhdG9yIGUgPSByZXNvdXJjZXMudmFsdWUtPmVuZCgpOworICAgICAgICBmb3IgKENhY2hlZFJl
c291cmNlTWFwOjppdGVyYXRvciBpID0gcmVzb3VyY2VzLnZhbHVlLT5iZWdpbigpOyBpICE9IGU7
ICsraSkgewogI2lmIEVOQUJMRShDQUNIRV9QQVJUSVRJT05JTkcpCi0gICAgICAgIGZvciAoQ2Fj
aGVkUmVzb3VyY2VJdGVtOjppdGVyYXRvciBpdGVtSXRlcmF0b3IgPSBpLT52YWx1ZS0+YmVnaW4o
KTsgaXRlbUl0ZXJhdG9yICE9IGktPnZhbHVlLT5lbmQoKTsgKytpdGVtSXRlcmF0b3IpIHsKLSAg
ICAgICAgICAgIENhY2hlZFJlc291cmNlKiByZXNvdXJjZSA9IGl0ZW1JdGVyYXRvci0+dmFsdWU7
CisgICAgICAgICAgICBmb3IgKENhY2hlZFJlc291cmNlSXRlbTo6aXRlcmF0b3IgaXRlbUl0ZXJh
dG9yID0gaS0+dmFsdWUtPmJlZ2luKCk7IGl0ZW1JdGVyYXRvciAhPSBpLT52YWx1ZS0+ZW5kKCk7
ICsraXRlbUl0ZXJhdG9yKSB7CisgICAgICAgICAgICAgICAgQ2FjaGVkUmVzb3VyY2UqIHJlc291
cmNlID0gaXRlbUl0ZXJhdG9yLT52YWx1ZTsKICNlbHNlCi0gICAgICAgICAgICBDYWNoZWRSZXNv
dXJjZSogcmVzb3VyY2UgPSBpLT52YWx1ZTsKKyAgICAgICAgICAgICAgICBDYWNoZWRSZXNvdXJj
ZSogcmVzb3VyY2UgPSBpLT52YWx1ZTsKICNlbmRpZgotICAgICAgICAgICAgc3dpdGNoIChyZXNv
dXJjZS0+dHlwZSgpKSB7Ci0gICAgICAgICAgICBjYXNlIENhY2hlZFJlc291cmNlOjpJbWFnZVJl
c291cmNlOgotICAgICAgICAgICAgICAgIHN0YXRzLmltYWdlcy5hZGRSZXNvdXJjZShyZXNvdXJj
ZSk7Ci0gICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICBjYXNlIENhY2hlZFJlc291
cmNlOjpDU1NTdHlsZVNoZWV0OgotICAgICAgICAgICAgICAgIHN0YXRzLmNzc1N0eWxlU2hlZXRz
LmFkZFJlc291cmNlKHJlc291cmNlKTsKLSAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAg
ICAgIGNhc2UgQ2FjaGVkUmVzb3VyY2U6OlNjcmlwdDoKLSAgICAgICAgICAgICAgICBzdGF0cy5z
Y3JpcHRzLmFkZFJlc291cmNlKHJlc291cmNlKTsKLSAgICAgICAgICAgICAgICBicmVhazsKKyAg
ICAgICAgICAgICAgICBzd2l0Y2ggKHJlc291cmNlLT50eXBlKCkpIHsKKyAgICAgICAgICAgICAg
ICBjYXNlIENhY2hlZFJlc291cmNlOjpJbWFnZVJlc291cmNlOgorICAgICAgICAgICAgICAgICAg
ICBzdGF0cy5pbWFnZXMuYWRkUmVzb3VyY2UocmVzb3VyY2UpOworICAgICAgICAgICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgICAgICAgICBjYXNlIENhY2hlZFJlc291cmNlOjpDU1NTdHlsZVNo
ZWV0OgorICAgICAgICAgICAgICAgICAgICBzdGF0cy5jc3NTdHlsZVNoZWV0cy5hZGRSZXNvdXJj
ZShyZXNvdXJjZSk7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAg
IGNhc2UgQ2FjaGVkUmVzb3VyY2U6OlNjcmlwdDoKKyAgICAgICAgICAgICAgICAgICAgc3RhdHMu
c2NyaXB0cy5hZGRSZXNvdXJjZShyZXNvdXJjZSk7CisgICAgICAgICAgICAgICAgICAgIGJyZWFr
OwogI2lmIEVOQUJMRShYU0xUKQotICAgICAgICAgICAgY2FzZSBDYWNoZWRSZXNvdXJjZTo6WFNM
U3R5bGVTaGVldDoKLSAgICAgICAgICAgICAgICBzdGF0cy54c2xTdHlsZVNoZWV0cy5hZGRSZXNv
dXJjZShyZXNvdXJjZSk7Ci0gICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAg
Y2FzZSBDYWNoZWRSZXNvdXJjZTo6WFNMU3R5bGVTaGVldDoKKyAgICAgICAgICAgICAgICAgICAg
c3RhdHMueHNsU3R5bGVTaGVldHMuYWRkUmVzb3VyY2UocmVzb3VyY2UpOworICAgICAgICAgICAg
ICAgICAgICBicmVhazsKICNlbmRpZgotICAgICAgICAgICAgY2FzZSBDYWNoZWRSZXNvdXJjZTo6
Rm9udFJlc291cmNlOgotICAgICAgICAgICAgICAgIHN0YXRzLmZvbnRzLmFkZFJlc291cmNlKHJl
c291cmNlKTsKLSAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgIGRlZmF1bHQ6Ci0g
ICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgY2Fz
ZSBDYWNoZWRSZXNvdXJjZTo6Rm9udFJlc291cmNlOgorICAgICAgICAgICAgICAgICAgICBzdGF0
cy5mb250cy5hZGRSZXNvdXJjZShyZXNvdXJjZSk7CisgICAgICAgICAgICAgICAgICAgIGJyZWFr
OworICAgICAgICAgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOwor
ICAgICAgICAgICAgICAgIH0KICNpZiBFTkFCTEUoQ0FDSEVfUEFSVElUSU9OSU5HKQotICAgICAg
ICB9CisgICAgICAgICAgICB9CiAjZW5kaWYKKyAgICAgICAgfQogICAgIH0KICAgICByZXR1cm4g
c3RhdHM7CiB9CkBAIC04OTgsOCArOTM0LDExIEBAIHZvaWQgTWVtb3J5Q2FjaGU6OnNldERpc2Fi
bGVkKGJvb2wgZGlzYWJsZWQpCiAgICAgICAgIHJldHVybjsKIAogICAgIGZvciAoOzspIHsKLSAg
ICAgICAgQ2FjaGVkUmVzb3VyY2VNYXA6Oml0ZXJhdG9yIG91dGVySXRlcmF0b3IgPSBtX3Jlc291
cmNlcy5iZWdpbigpOwotICAgICAgICBpZiAob3V0ZXJJdGVyYXRvciA9PSBtX3Jlc291cmNlcy5l
bmQoKSkKKyAgICAgICAgU2Vzc2lvbkNhY2hlZFJlc291cmNlTWFwOjppdGVyYXRvciBzZXNzaW9u
SXRlcmF0b3IgPSBtX3Nlc3Npb25SZXNvdXJjZXMuYmVnaW4oKTsKKyAgICAgICAgaWYgKHNlc3Np
b25JdGVyYXRvciA9PSBtX3Nlc3Npb25SZXNvdXJjZXMuZW5kKCkpCisgICAgICAgICAgICBicmVh
azsKKyAgICAgICAgQ2FjaGVkUmVzb3VyY2VNYXA6Oml0ZXJhdG9yIG91dGVySXRlcmF0b3IgPSBz
ZXNzaW9uSXRlcmF0b3ItPnZhbHVlLT5iZWdpbigpOworICAgICAgICBpZiAob3V0ZXJJdGVyYXRv
ciA9PSBzZXNzaW9uSXRlcmF0b3ItPnZhbHVlLT5lbmQoKSkKICAgICAgICAgICAgIGJyZWFrOwog
I2lmIEVOQUJMRShDQUNIRV9QQVJUSVRJT05JTkcpCiAgICAgICAgIENhY2hlZFJlc291cmNlSXRl
bTo6aXRlcmF0b3IgaW5uZXJJdGVyYXRvciA9IG91dGVySXRlcmF0b3ItPnZhbHVlLT5iZWdpbigp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL01lbW9yeUNhY2hlLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvTWVtb3J5Q2FjaGUuaAppbmRleCBjMDIzYTk3
Li40MzZlNTVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvTWVtb3J5
Q2FjaGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvTWVtb3J5Q2FjaGUuaApA
QCAtMjcsNiArMjcsNyBAQAogCiAjaW5jbHVkZSAiTmF0aXZlSW1hZ2VQdHIuaCIKICNpbmNsdWRl
ICJTZWN1cml0eU9yaWdpbkhhc2guaCIKKyNpbmNsdWRlICJTZXNzaW9uSURIYXNoLmgiCiAjaW5j
bHVkZSA8d3RmL0hhc2hNYXAuaD4KICNpbmNsdWRlIDx3dGYvSGFzaFNldC5oPgogI2luY2x1ZGUg
PHd0Zi9Ob25jb3B5YWJsZS5oPgpAQCAtODcsNiArODgsNyBAQCBwdWJsaWM6CiAjZWxzZQogICAg
IHR5cGVkZWYgSGFzaE1hcDxTdHJpbmcsIENhY2hlZFJlc291cmNlKj4gQ2FjaGVkUmVzb3VyY2VN
YXA7CiAjZW5kaWYKKyAgICB0eXBlZGVmIEhhc2hNYXA8U2Vzc2lvbklELCBzdGQ6OnVuaXF1ZV9w
dHI8Q2FjaGVkUmVzb3VyY2VNYXA+PiBTZXNzaW9uQ2FjaGVkUmVzb3VyY2VNYXA7CiAKICAgICBz
dHJ1Y3QgTFJVTGlzdCB7CiAgICAgICAgIENhY2hlZFJlc291cmNlKiBtX2hlYWQ7CkBAIC0xMTgs
MTAgKzEyMCwxMCBAQCBwdWJsaWM6CiAgICAgICAgIFR5cGVTdGF0aXN0aWMgZm9udHM7CiAgICAg
fTsKIAotICAgIENhY2hlZFJlc291cmNlKiByZXNvdXJjZUZvclVSTChjb25zdCBVUkwmKTsKLSAg
ICBDYWNoZWRSZXNvdXJjZSogcmVzb3VyY2VGb3JSZXF1ZXN0KGNvbnN0IFJlc291cmNlUmVxdWVz
dCYpOwotICAgIAotICAgIGJvb2wgYWRkKENhY2hlZFJlc291cmNlKiByZXNvdXJjZSk7CisgICAg
Q2FjaGVkUmVzb3VyY2UqIHJlc291cmNlRm9yVVJMKGNvbnN0IFVSTCYsIFNlc3Npb25JRCk7Cisg
ICAgQ2FjaGVkUmVzb3VyY2UqIHJlc291cmNlRm9yUmVxdWVzdChjb25zdCBSZXNvdXJjZVJlcXVl
c3QmLCBTZXNzaW9uSUQpOworCisgICAgYm9vbCBhZGQoQ2FjaGVkUmVzb3VyY2UqKTsKICAgICB2
b2lkIHJlbW92ZShDYWNoZWRSZXNvdXJjZSogcmVzb3VyY2UpIHsgZXZpY3QocmVzb3VyY2UpOyB9
CiAKICAgICBzdGF0aWMgVVJMIHJlbW92ZUZyYWdtZW50SWRlbnRpZmllcklmTmVlZGVkKGNvbnN0
IFVSTCYgb3JpZ2luYWxVUkwpOwpAQCAtMTcwLDggKzE3Miw5IEBAIHB1YmxpYzoKICAgICB2b2lk
IGZsdXNoQ2FjaGVkSW1hZ2VzVG9EaXNrKCk7IC8vIEZsdXNoIGVuY29kZWQgZGF0YSBmcm9tIHJl
c291cmNlcyBzdGlsbCByZWZlcmVuY2VkIGJ5IHdlYiBwYWdlcy4KICNlbmRpZgogCi0gICAgc3Rh
dGljIHZvaWQgcmVtb3ZlVXJsRnJvbUNhY2hlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBjb25z
dCBTdHJpbmcmIHVybFN0cmluZyk7Ci0gICAgc3RhdGljIHZvaWQgcmVtb3ZlUmVxdWVzdEZyb21D
YWNoZShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0Jik7Cisg
ICAgc3RhdGljIHZvaWQgcmVtb3ZlVXJsRnJvbUNhY2hlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQq
LCBjb25zdCBTdHJpbmcmIHVybFN0cmluZywgU2Vzc2lvbklEKTsKKyAgICBzdGF0aWMgdm9pZCBy
ZW1vdmVSZXF1ZXN0RnJvbUNhY2hlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBjb25zdCBSZXNv
dXJjZVJlcXVlc3QmLCBTZXNzaW9uSUQpOworICAgIHN0YXRpYyB2b2lkIHJlbW92ZVJlcXVlc3RG
cm9tU2Vzc2lvbkNhY2hlcyhTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgY29uc3QgUmVzb3VyY2VS
ZXF1ZXN0Jik7CiAKICAgICAvLyBGdW5jdGlvbiB0byBjb2xsZWN0IGNhY2hlIHN0YXRpc3RpY3Mg
Zm9yIHRoZSBjYWNoZXMgd2luZG93IGluIHRoZSBTYWZhcmkgRGVidWcgbWVudS4KICAgICBTdGF0
aXN0aWNzIGdldFN0YXRpc3RpY3MoKTsKQEAgLTIyMSw4ICsyMjQsMTEgQEAgcHJpdmF0ZToKICAg
ICBib29sIG1ha2VSZXNvdXJjZVB1cmdlYWJsZShDYWNoZWRSZXNvdXJjZSopOwogICAgIHZvaWQg
ZXZpY3QoQ2FjaGVkUmVzb3VyY2UqKTsKIAotICAgIHN0YXRpYyB2b2lkIHJlbW92ZVJlcXVlc3RG
cm9tQ2FjaGVJbXBsKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBjb25zdCBSZXNvdXJjZVJlcXVl
c3QmKTsKLSAgICBzdGF0aWMgdm9pZCBjcm9zc1RocmVhZFJlbW92ZVJlcXVlc3RGcm9tQ2FjaGUo
U2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIFBhc3NPd25QdHI8Q3Jvc3NUaHJlYWRSZXNvdXJjZVJl
cXVlc3REYXRhPik7CisgICAgQ2FjaGVkUmVzb3VyY2UqIHJlc291cmNlRm9yUmVxdWVzdEltcGwo
Y29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgQ2FjaGVkUmVzb3VyY2VNYXAmKTsKKyAgICBzdGF0aWMg
dm9pZCByZW1vdmVSZXF1ZXN0RnJvbUNhY2hlSW1wbChTY3JpcHRFeGVjdXRpb25Db250ZXh0Kiwg
Y29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgU2Vzc2lvbklEKTsKKyAgICBzdGF0aWMgdm9pZCBjcm9z
c1RocmVhZFJlbW92ZVJlcXVlc3RGcm9tQ2FjaGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIFBh
c3NPd25QdHI8Q3Jvc3NUaHJlYWRSZXNvdXJjZVJlcXVlc3REYXRhPiwgU2Vzc2lvbklEKTsKKwor
ICAgIENhY2hlZFJlc291cmNlTWFwJiBnZXRTZXNzaW9uTWFwKFNlc3Npb25JRCk7CiAKICAgICBi
b29sIG1fZGlzYWJsZWQ7ICAvLyBXaGV0aGVyIG9yIG5vdCB0aGUgY2FjaGUgaXMgZW5hYmxlZC4K
ICAgICBib29sIG1fcHJ1bmVFbmFibGVkOwpAQCAtMjQ2LDcgKzI1Miw3IEBAIHByaXZhdGU6CiAg
ICAgCiAgICAgLy8gQSBVUkwtYmFzZWQgbWFwIG9mIGFsbCByZXNvdXJjZXMgdGhhdCBhcmUgaW4g
dGhlIGNhY2hlIChpbmNsdWRpbmcgdGhlIGZyZXNoZXN0IHZlcnNpb24gb2Ygb2JqZWN0cyB0aGF0
IGFyZSBjdXJyZW50bHkgYmVpbmcgCiAgICAgLy8gcmVmZXJlbmNlZCBieSBhIFdlYiBwYWdlKS4K
LSAgICBDYWNoZWRSZXNvdXJjZU1hcCBtX3Jlc291cmNlczsKKyAgICBTZXNzaW9uQ2FjaGVkUmVz
b3VyY2VNYXAgbV9zZXNzaW9uUmVzb3VyY2VzOwogfTsKIAogaW5saW5lIGJvb2wgTWVtb3J5Q2Fj
aGU6OnNob3VsZE1ha2VSZXNvdXJjZVB1cmdlYWJsZU9uRXZpY3Rpb24oKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vQ3Jvc3NUaHJlYWRDb3BpZXIuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vQ3Jvc3NUaHJlYWRDb3BpZXIuY3BwCmluZGV4IDU3ZDA0ZTEuLjFiMWFj
MTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0Nyb3NzVGhyZWFkQ29waWVy
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Dcm9zc1RocmVhZENvcGllci5jcHAK
QEAgLTM3LDYgKzM3LDcgQEAKICNpbmNsdWRlICJSZXNvdXJjZVJlcXVlc3QuaCIKICNpbmNsdWRl
ICJSZXNvdXJjZVJlc3BvbnNlLmgiCiAjaW5jbHVkZSAiU2VyaWFsaXplZFNjcmlwdFZhbHVlLmgi
CisjaW5jbHVkZSAiU2Vzc2lvbklELmgiCiAjaW5jbHVkZSA8d3RmL0Fzc2VydGlvbnMuaD4KICNp
bmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIApAQCAtNzQsNiArNzUsMTEgQEAgQ3Jvc3NU
aHJlYWRDb3BpZXJCYXNlPGZhbHNlLCBmYWxzZSwgUmVzb3VyY2VSZXNwb25zZT46OlR5cGUgQ3Jv
c3NUaHJlYWRDb3BpZXJCYXMKICAgICByZXR1cm4gcmVzcG9uc2UuY29weURhdGEoKTsKIH0KIAor
Q3Jvc3NUaHJlYWRDb3BpZXJCYXNlPGZhbHNlLCBmYWxzZSwgU2Vzc2lvbklEPjo6VHlwZSBDcm9z
c1RocmVhZENvcGllckJhc2U8ZmFsc2UsIGZhbHNlLCBTZXNzaW9uSUQ+Ojpjb3B5KGNvbnN0IFNl
c3Npb25JRCYgc2Vzc2lvbklEKQoreworICAgIHJldHVybiBzZXNzaW9uSUQ7Cit9CisKICNpZiBF
TkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKIAogSW5kZXhlZERCOjpUcmFuc2FjdGlvbk1vZGUgQ3Jv
c3NUaHJlYWRDb3BpZXJCYXNlPGZhbHNlLCBmYWxzZSwgSW5kZXhlZERCOjpUcmFuc2FjdGlvbk1v
ZGU+Ojpjb3B5KGNvbnN0IEluZGV4ZWREQjo6VHJhbnNhY3Rpb25Nb2RlJiBtb2RlKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vQ3Jvc3NUaHJlYWRDb3BpZXIuaCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL0Nyb3NzVGhyZWFkQ29waWVyLmgKaW5kZXggY2FmMjc5Zi4uMzk4
ZTg0ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vQ3Jvc3NUaHJlYWRDb3Bp
ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Dcm9zc1RocmVhZENvcGllci5oCkBA
IC00Niw2ICs0Niw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICBjbGFzcyBSZXNvdXJjZUVy
cm9yOwogICAgIGNsYXNzIFJlc291cmNlUmVxdWVzdDsKICAgICBjbGFzcyBSZXNvdXJjZVJlc3Bv
bnNlOworICAgIGNsYXNzIFNlc3Npb25JRDsKICAgICBzdHJ1Y3QgQ3Jvc3NUaHJlYWRSZXNvdXJj
ZVJlc3BvbnNlRGF0YTsKICAgICBzdHJ1Y3QgQ3Jvc3NUaHJlYWRSZXNvdXJjZVJlcXVlc3REYXRh
OwogICAgIHN0cnVjdCBUaHJlYWRhYmxlTG9hZGVyT3B0aW9uczsKQEAgLTE0NSw2ICsxNDYsMTEg
QEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBzdGF0aWMgVHlwZSBjb3B5KGNvbnN0IFJl
c291cmNlUmVzcG9uc2UmKTsKICAgICB9OwogCisgICAgdGVtcGxhdGU8PiBzdHJ1Y3QgQ3Jvc3NU
aHJlYWRDb3BpZXJCYXNlPGZhbHNlLCBmYWxzZSwgU2Vzc2lvbklEPiB7CisgICAgICAgIHR5cGVk
ZWYgU2Vzc2lvbklEIFR5cGU7CisgICAgICAgIHN0YXRpYyBUeXBlIGNvcHkoY29uc3QgU2Vzc2lv
bklEJik7CisgICAgfTsKKwogI2lmIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQogICAgIG5hbWVz
cGFjZSBJbmRleGVkREIgewogICAgICAgICBlbnVtIGNsYXNzIFRyYW5zYWN0aW9uTW9kZTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvUmVzb3VyY2VSZXF1
ZXN0LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL1Jlc291cmNlUmVxdWVz
dC5oCmluZGV4IDQ3NjFhZGUuLjViYTRjMzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL25ldHdvcmsvY2YvUmVzb3VyY2VSZXF1ZXN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbmV0d29yay9jZi9SZXNvdXJjZVJlcXVlc3QuaApAQCAtNTcsNyArNTcsNyBAQCBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIHsKICAgICAgICAgfQogCi0gICAgICAgIFJlc291
cmNlUmVxdWVzdChjb25zdCBVUkwmIHVybCwgY29uc3QgU3RyaW5nJiByZWZlcnJlciwgUmVzb3Vy
Y2VSZXF1ZXN0Q2FjaGVQb2xpY3kgcG9saWN5ID0gVXNlUHJvdG9jb2xDYWNoZVBvbGljeSkgCisg
ICAgICAgIFJlc291cmNlUmVxdWVzdChjb25zdCBVUkwmIHVybCwgY29uc3QgU3RyaW5nJiByZWZl
cnJlciwgUmVzb3VyY2VSZXF1ZXN0Q2FjaGVQb2xpY3kgcG9saWN5ID0gVXNlUHJvdG9jb2xDYWNo
ZVBvbGljeSkKICAgICAgICAgICAgIDogUmVzb3VyY2VSZXF1ZXN0QmFzZSh1cmwsIHBvbGljeSkK
ICNpZiBQTEFURk9STShJT1MpCiAgICAgICAgICAgICAsIG1fbWFpblJlc291cmNlUmVxdWVzdChm
YWxzZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTbmFwc2hv
dHRlZFBsdWdJbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU25hcHNob3R0
ZWRQbHVnSW4uY3BwCmluZGV4IGExNjRmNmQuLjc0YzM5YTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTbmFwc2hvdHRlZFBsdWdJbi5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclNuYXBzaG90dGVkUGx1Z0luLmNwcApAQCAtMzEsNiAr
MzEsNyBAQAogI2luY2x1ZGUgIkNocm9tZUNsaWVudC5oIgogI2luY2x1ZGUgIkN1cnNvci5oIgog
I2luY2x1ZGUgIkZpbHRlci5oIgorI2luY2x1ZGUgIkZyYW1lLmgiCiAjaW5jbHVkZSAiRnJhbWVM
b2FkZXJDbGllbnQuaCIKICNpbmNsdWRlICJGcmFtZVZpZXcuaCIKICNpbmNsdWRlICJHcmFkaWVu
dC5oIgpAQCAtODUsNyArODYsNyBAQCB2b2lkIFJlbmRlclNuYXBzaG90dGVkUGx1Z0luOjp1cGRh
dGVTbmFwc2hvdChQYXNzUmVmUHRyPEltYWdlPiBpbWFnZSkKICAgICBpZiAoIWltYWdlKQogICAg
ICAgICByZXR1cm47CiAKLSAgICBtX3NuYXBzaG90UmVzb3VyY2UtPnNldENhY2hlZEltYWdlKG5l
dyBDYWNoZWRJbWFnZShpbWFnZS5nZXQoKSkpOworICAgIG1fc25hcHNob3RSZXNvdXJjZS0+c2V0
Q2FjaGVkSW1hZ2UobmV3IENhY2hlZEltYWdlKGltYWdlLmdldCgpLCB2aWV3KCkuZnJhbWVWaWV3
KCkuZnJhbWUoKS5wYWdlKCktPnNlc3Npb25JRCgpKSk7CiAgICAgcmVwYWludCgpOwogfQogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKaW5kZXggNTFkNGNjYy4uZWExODY5YSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcApAQCAtMzU3LDkgKzM1Nyw5IEBAIGJvb2wg
SW50ZXJuYWxzOjppc1ByZWxvYWRlZChjb25zdCBTdHJpbmcmIHVybCkKIAogYm9vbCBJbnRlcm5h
bHM6OmlzTG9hZGluZ0Zyb21NZW1vcnlDYWNoZShjb25zdCBTdHJpbmcmIHVybCkKIHsKLSAgICBp
ZiAoIWNvbnRleHREb2N1bWVudCgpKQorICAgIGlmICghY29udGV4dERvY3VtZW50KCkgfHwgIWNv
bnRleHREb2N1bWVudCgpLT5wYWdlKCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICBDYWNo
ZWRSZXNvdXJjZSogcmVzb3VyY2UgPSBtZW1vcnlDYWNoZSgpLT5yZXNvdXJjZUZvclVSTChjb250
ZXh0RG9jdW1lbnQoKS0+Y29tcGxldGVVUkwodXJsKSk7CisgICAgQ2FjaGVkUmVzb3VyY2UqIHJl
c291cmNlID0gbWVtb3J5Q2FjaGUoKS0+cmVzb3VyY2VGb3JVUkwoY29udGV4dERvY3VtZW50KCkt
PmNvbXBsZXRlVVJMKHVybCksIGNvbnRleHREb2N1bWVudCgpLT5wYWdlKCktPnNlc3Npb25JRCgp
KTsKICAgICByZXR1cm4gcmVzb3VyY2UgJiYgcmVzb3VyY2UtPnN0YXR1cygpID09IENhY2hlZFJl
c291cmNlOjpDYWNoZWQ7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxv
ZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCAzY2Q4MDAxLi5jNDdkM2NhIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAKKzIwMTQtMDItMjYgIE1hcnRpbiBIb2NrICA8bWhvY2tA
YXBwbGUuY29tPgorCisgICAgICAgIEFkZCBzdXBwb3J0IGZvciBzZXNzaW9ucyB0byBNZW1vcnlD
YWNoZS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEy
Nzc5NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICog
TmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZGVyLmg6IEFkZCBzZXNzaW9uSUQoKSBt
ZXRob2QuCisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6c2Vzc2lvbklE
KToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9tYWMvRGlza0NhY2hlTW9uaXRvci5oOiBBZGQg
c2Vzc2lvbklEIG1lbWJlci4KKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9tYWMvRGlza0NhY2hl
TW9uaXRvci5tbToKKyAgICAgICAgKFdlYktpdDo6RGlza0NhY2hlTW9uaXRvcjo6RGlza0NhY2hl
TW9uaXRvcik6IFNlbmQgc2Vzc2lvbklEIHRvIE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbjo6RGlk
Q2FjaGVSZXNvdXJjZS4KKyAgICAgICAgKiBXZWJQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nl
c3NDb25uZWN0aW9uLmNwcDogQWRkIHNlc3Npb25JRCBwYXJhbWV0ZXIgdG8gZGlkQ2FjaGVSZXNv
dXJjZSBhbmQgcGFzcyB0byBNZW1vcnlDYWNoZS4KKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1By
b2Nlc3NDb25uZWN0aW9uOjpkaWRDYWNoZVJlc291cmNlKToKKyAgICAgICAgKiBXZWJQcm9jZXNz
L05ldHdvcmsvTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uLmg6IERpdHRvLgorICAgICAgICAqIFdl
YlByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24ubWVzc2FnZXMuaW46IERp
dHRvLgorCiAyMDE0LTAyLTI2ICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29t
PgogCiAgICAgICAgIEJ1aWxkIGZpeDogQ29udGV4dE1lbnVDb250ZXh0RGF0YS4qIHNob3VsZCBu
b3QgYmUgaW4gdGhlIENvcHkgRmlsZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL05ldHdv
cmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRlci5oIGIvU291cmNlL1dlYktpdDIvTmV0d29y
a1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZGVyLmgKaW5kZXggNjljNTlmMy4uZWI3NjlmMyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNl
TG9hZGVyLmgKKysrIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291
cmNlTG9hZGVyLmgKQEAgLTcyLDYgKzcyLDcgQEAgcHVibGljOgogCiAgICAgV2ViQ29yZTo6UmVz
b3VyY2VMb2FkUHJpb3JpdHkgcHJpb3JpdHkoKSB7IHJldHVybiBtX3ByaW9yaXR5OyB9CiAgICAg
V2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0KCkgeyByZXR1cm4gbV9yZXF1ZXN0OyB9
CisgICAgV2ViQ29yZTo6U2Vzc2lvbklEIHNlc3Npb25JRCgpIGNvbnN0IHsgcmV0dXJuIG1fc2Vz
c2lvbklEOyB9CiAKICAgICBXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZSogaGFuZGxlKCkgY29uc3Qg
eyByZXR1cm4gbV9oYW5kbGUuZ2V0KCk7IH0KICAgICB2b2lkIGRpZENvbnZlcnRIYW5kbGVUb0Rv
d25sb2FkKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9tYWMv
RGlza0NhY2hlTW9uaXRvci5oIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvbWFjL0Rp
c2tDYWNoZU1vbml0b3IuaAppbmRleCAzMTg4M2M1Li4xZDA3MWQ0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9tYWMvRGlza0NhY2hlTW9uaXRvci5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL21hYy9EaXNrQ2FjaGVNb25pdG9yLmgKQEAgLTI4
LDYgKzI4LDcgQEAKIAogI2luY2x1ZGUgIk1lc3NhZ2VTZW5kZXIuaCIKICNpbmNsdWRlIDxXZWJD
b3JlL1Jlc291cmNlUmVxdWVzdC5oPgorI2luY2x1ZGUgPFdlYkNvcmUvU2Vzc2lvbklELmg+CiAj
aW5jbHVkZSA8d3RmL1J1bkxvb3AuaD4KIAogdHlwZWRlZiBjb25zdCBzdHJ1Y3QgX0NGQ2FjaGVk
VVJMUmVzcG9uc2UqIENGQ2FjaGVkVVJMUmVzcG9uc2VSZWY7CkBAIC01Miw2ICs1Myw3IEBAIHBy
aXZhdGU6CiAKICAgICBSZWZQdHI8TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M+IG1fY29u
bmVjdGlvblRvV2ViUHJvY2VzczsKICAgICBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QgbV9yZXNv
dXJjZVJlcXVlc3Q7CisgICAgV2ViQ29yZTo6U2Vzc2lvbklEIG1fc2Vzc2lvbklEOwogfTsKIAog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9tYWMvRGlza0NhY2hl
TW9uaXRvci5tbSBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL21hYy9EaXNrQ2FjaGVN
b25pdG9yLm1tCmluZGV4IDM4MGRhMWYuLmViMGE3MWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL05ldHdvcmtQcm9jZXNzL21hYy9EaXNrQ2FjaGVNb25pdG9yLm1tCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL05ldHdvcmtQcm9jZXNzL21hYy9EaXNrQ2FjaGVNb25pdG9yLm1tCkBAIC02Miw2ICs2
Miw3IEBAIHZvaWQgRGlza0NhY2hlTW9uaXRvcjo6bW9uaXRvckZpbGVCYWNraW5nU3RvcmVDcmVh
dGlvbihDRkNhY2hlZFVSTFJlc3BvbnNlUmVmIGNhCiBEaXNrQ2FjaGVNb25pdG9yOjpEaXNrQ2Fj
aGVNb25pdG9yKENGQ2FjaGVkVVJMUmVzcG9uc2VSZWYgY2FjaGVkUmVzcG9uc2UsIE5ldHdvcmtS
ZXNvdXJjZUxvYWRlciogbG9hZGVyKQogICAgIDogbV9jb25uZWN0aW9uVG9XZWJQcm9jZXNzKGxv
YWRlci0+Y29ubmVjdGlvblRvV2ViUHJvY2VzcygpKQogICAgICwgbV9yZXNvdXJjZVJlcXVlc3Qo
bG9hZGVyLT5yZXF1ZXN0KCkpCisgICAgLCBtX3Nlc3Npb25JRChsb2FkZXItPnNlc3Npb25JRCgp
KQogewogICAgIEFTU0VSVChSdW5Mb29wOjppc01haW4oKSk7CiAKQEAgLTg4LDcgKzg5LDcgQEAg
RGlza0NhY2hlTW9uaXRvcjo6RGlza0NhY2hlTW9uaXRvcihDRkNhY2hlZFVSTFJlc3BvbnNlUmVm
IGNhY2hlZFJlc3BvbnNlLCBOZXR3b3IKICAgICAgICAgaWYgKGhhbmRsZS5pc051bGwoKSkKICAg
ICAgICAgICAgIHJldHVybjsKIAotICAgICAgICBtb25pdG9yLT5zZW5kKE1lc3NhZ2VzOjpOZXR3
b3JrUHJvY2Vzc0Nvbm5lY3Rpb246OkRpZENhY2hlUmVzb3VyY2UobW9uaXRvci0+cmVzb3VyY2VS
ZXF1ZXN0KCksIGhhbmRsZSkpOworICAgICAgICBtb25pdG9yLT5zZW5kKE1lc3NhZ2VzOjpOZXR3
b3JrUHJvY2Vzc0Nvbm5lY3Rpb246OkRpZENhY2hlUmVzb3VyY2UobW9uaXRvci0+cmVzb3VyY2VS
ZXF1ZXN0KCksIGhhbmRsZSwgbV9zZXNzaW9uSUQpKTsKICAgICB9OwogCiAgICAgX0NGQ2FjaGVk
VVJMUmVzcG9uc2VTZXRCZWNhbWVGaWxlQmFja2VkQ2FsbEJhY2tCbG9jayhjYWNoZWRSZXNwb25z
ZSwgYmxvY2ssIGRpc3BhdGNoX2dldF9tYWluX3F1ZXVlKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbi5jcHAg
Yi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NDb25uZWN0
aW9uLmNwcAppbmRleCBiMjE2ZTEyLi42MzhiODk3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9u
LmNwcApAQCAtMzYsNiArMzYsNyBAQAogI2luY2x1ZGUgPFdlYkNvcmUvQ2FjaGVkUmVzb3VyY2Uu
aD4KICNpbmNsdWRlIDxXZWJDb3JlL01lbW9yeUNhY2hlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9S
ZXNvdXJjZUJ1ZmZlci5oPgorI2luY2x1ZGUgPFdlYkNvcmUvU2Vzc2lvbklELmg+CiAKICNpZiBF
TkFCTEUoTkVUV09SS19QUk9DRVNTKQogCkBAIC04MSw5ICs4Miw5IEBAIHZvaWQgTmV0d29ya1By
b2Nlc3NDb25uZWN0aW9uOjpkaWRSZWNlaXZlSW52YWxpZE1lc3NhZ2UoSVBDOjpDb25uZWN0aW9u
KiwgSVBDOjpTCiB9CiAKICNpZiBFTkFCTEUoU0hBUkVBQkxFX1JFU09VUkNFKQotdm9pZCBOZXR3
b3JrUHJvY2Vzc0Nvbm5lY3Rpb246OmRpZENhY2hlUmVzb3VyY2UoY29uc3QgUmVzb3VyY2VSZXF1
ZXN0JiByZXF1ZXN0LCBjb25zdCBTaGFyZWFibGVSZXNvdXJjZTo6SGFuZGxlJiBoYW5kbGUpCit2
b2lkIE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbjo6ZGlkQ2FjaGVSZXNvdXJjZShjb25zdCBSZXNv
dXJjZVJlcXVlc3QmIHJlcXVlc3QsIGNvbnN0IFNoYXJlYWJsZVJlc291cmNlOjpIYW5kbGUmIGhh
bmRsZSwgU2Vzc2lvbklEIHNlc3Npb25JRCkKIHsKLSAgICBDYWNoZWRSZXNvdXJjZSogcmVzb3Vy
Y2UgPSBtZW1vcnlDYWNoZSgpLT5yZXNvdXJjZUZvclJlcXVlc3QocmVxdWVzdCk7CisgICAgQ2Fj
aGVkUmVzb3VyY2UqIHJlc291cmNlID0gbWVtb3J5Q2FjaGUoKS0+cmVzb3VyY2VGb3JSZXF1ZXN0
KHJlcXVlc3QsIHNlc3Npb25JRCk7CiAgICAgaWYgKCFyZXNvdXJjZSkKICAgICAgICAgcmV0dXJu
OwogICAgIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9OZXR3b3JrL05l
dHdvcmtQcm9jZXNzQ29ubmVjdGlvbi5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9OZXR3
b3JrL05ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbi5oCmluZGV4IDg0MmY2ZWIuLjkzNmQ2NmUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vz
c0Nvbm5lY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05ldHdvcmsvTmV0
d29ya1Byb2Nlc3NDb25uZWN0aW9uLmgKQEAgLTQxLDYgKzQxLDcgQEAgbmFtZXNwYWNlIFdlYkNv
cmUgewogY2xhc3MgUmVzb3VyY2VFcnJvcjsKIGNsYXNzIFJlc291cmNlUmVxdWVzdDsKIGNsYXNz
IFJlc291cmNlUmVzcG9uc2U7CitjbGFzcyBTZXNzaW9uSUQ7CiB9CiAKIG5hbWVzcGFjZSBXZWJL
aXQgewpAQCAtNzAsNyArNzEsNyBAQCBwcml2YXRlOgogCiAjaWYgRU5BQkxFKFNIQVJFQUJMRV9S
RVNPVVJDRSkKICAgICAvLyBNZXNzYWdlIGhhbmRsZXJzLgotICAgIHZvaWQgZGlkQ2FjaGVSZXNv
dXJjZShjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBTaGFyZWFibGVSZXNv
dXJjZTo6SGFuZGxlJik7CisgICAgdm9pZCBkaWRDYWNoZVJlc291cmNlKGNvbnN0IFdlYkNvcmU6
OlJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFNoYXJlYWJsZVJlc291cmNlOjpIYW5kbGUmLCBXZWJD
b3JlOjpTZXNzaW9uSUQpOwogI2VuZGlmCiAKICAgICAvLyBUaGUgY29ubmVjdGlvbiBmcm9tIHRo
ZSB3ZWIgcHJvY2VzcyB0byB0aGUgbmV0d29yayBwcm9jZXNzLgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbi5tZXNz
YWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vz
c0Nvbm5lY3Rpb24ubWVzc2FnZXMuaW4KaW5kZXggZTY5ODlkOS4uYzFmNzhjNCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzQ29ubmVj
dGlvbi5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05ldHdvcmsv
TmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uLm1lc3NhZ2VzLmluCkBAIC0yNSw3ICsyNSw3IEBACiBt
ZXNzYWdlcyAtPiBOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24gTGVnYWN5UmVjZWl2ZXIgewogCiAj
aWYgRU5BQkxFKFNIQVJFQUJMRV9SRVNPVVJDRSkKLSAgICBEaWRDYWNoZVJlc291cmNlKFdlYkNv
cmU6OlJlc291cmNlUmVxdWVzdCByZXF1ZXN0LCBXZWJLaXQ6OlNoYXJlYWJsZVJlc291cmNlOjpI
YW5kbGUgcmVzb3VyY2UpCisgICAgRGlkQ2FjaGVSZXNvdXJjZShXZWJDb3JlOjpSZXNvdXJjZVJl
cXVlc3QgcmVxdWVzdCwgV2ViS2l0OjpTaGFyZWFibGVSZXNvdXJjZTo6SGFuZGxlIHJlc291cmNl
LCBXZWJDb3JlOjpTZXNzaW9uSUQgc2Vzc2lvbklEKQogI2VuZGlmCiAKIH0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>225338</attachid>
            <date>2014-02-26 19:38:48 -0800</date>
            <delta_ts>2014-02-27 17:25:38 -0800</delta_ts>
            <desc>fix WebCache.mm</desc>
            <filename>memcachesession.23.diff</filename>
            <type>text/plain</type>
            <size>67477</size>
            <attacher name="Martin Hock">mhock</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBjODQzNjgxLi4xODg3Y2NkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsOTQg
QEAKKzIwMTQtMDItMjYgIE1hcnRpbiBIb2NrICA8bWhvY2tAYXBwbGUuY29tPgorCisgICAgICAg
IEFkZCBzdXBwb3J0IGZvciBzZXNzaW9ucyB0byBNZW1vcnlDYWNoZS4KKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyNzc5NAorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2ViQ29yZS5leHAuaW46CisgICAg
ICAgICogZWRpdGluZy9EZWxldGVCdXR0b25Db250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkRlbGV0ZUJ1dHRvbkNvbnRyb2xsZXI6OmNyZWF0ZURlbGV0aW9uVUkpOiBJbml0aWFsaXpl
IENhY2hlZEltYWdlIHdpdGggc2Vzc2lvbklELgorICAgICAgICAqIGh0bWwvRE9NVVJMLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkRPTVVSTDo6cmV2b2tlT2JqZWN0VVJMKTogUmVtb3ZlIFVSTCBm
cm9tIE1lbW9yeUNhY2hlIGZvciBhbGwgc2Vzc2lvbnMuCisgICAgICAgICogaW5zcGVjdG9yL0lu
c3BlY3RvclBhZ2VBZ2VudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JQYWdlQWdl
bnQ6OmNhY2hlZFJlc291cmNlKTogUGFzcyBzZXNzaW9uSUQgdG8gTWVtb3J5Q2FjaGUuCisgICAg
ICAgICogaW5zcGVjdG9yL0luc3BlY3RvclJlc291cmNlQWdlbnQuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6SW5zcGVjdG9yUmVzb3VyY2VBZ2VudDo6cmVwbGF5WEhSKTogRGl0dG8uCisgICAgICAg
ICogbG9hZGVyL0RvY3VtZW50TG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmFyZUFsbExv
YWRlcnNQYWdlQ2FjaGVBY2NlcHRhYmxlKTogRGl0dG8uCisgICAgICAgICogbG9hZGVyL0ZyYW1l
TG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyOjp0ZWxsQ2xpZW50QWJv
dXRQYXN0TWVtb3J5Q2FjaGVMb2Fkcyk6IERpdHRvLgorICAgICAgICAqIGxvYWRlci9JbWFnZUxv
YWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZUxvYWRlcjo6dXBkYXRlRnJvbUVsZW1l
bnQpOiBJbml0aWFsaXplIENhY2hlZEltYWdlIHdpdGggc2Vzc2lvbklELgorICAgICAgICAqIGxv
YWRlci9hcmNoaXZlL2NmL0xlZ2FjeVdlYkFyY2hpdmUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
TGVnYWN5V2ViQXJjaGl2ZTo6Y3JlYXRlKTogUGFzcyBzZXNzaW9uSUQgdG8gTWVtb3J5Q2FjaGUu
CisgICAgICAgICogbG9hZGVyL2NhY2hlL0NhY2hlZENTU1N0eWxlU2hlZXQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6Q2FjaGVkQ1NTU3R5bGVTaGVldDo6Q2FjaGVkQ1NTU3R5bGVTaGVldCk6IENv
bnN0cnVjdG9yIHRha2VzIHNlc3Npb25JRC4KKyAgICAgICAgKiBsb2FkZXIvY2FjaGUvQ2FjaGVk
Q1NTU3R5bGVTaGVldC5oOgorICAgICAgICAqIGxvYWRlci9jYWNoZS9DYWNoZWRGb250LmNwcDog
RGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRGb250OjpDYWNoZWRGb250KToKKyAgICAg
ICAgKiBsb2FkZXIvY2FjaGUvQ2FjaGVkRm9udC5oOgorICAgICAgICAqIGxvYWRlci9jYWNoZS9D
YWNoZWRJbWFnZS5jcHA6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkSW1hZ2U6OkNh
Y2hlZEltYWdlKToKKyAgICAgICAgKiBsb2FkZXIvY2FjaGUvQ2FjaGVkSW1hZ2UuaDoKKyAgICAg
ICAgKiBsb2FkZXIvY2FjaGUvQ2FjaGVkUmF3UmVzb3VyY2UuY3BwOiBEaXR0by4KKyAgICAgICAg
KFdlYkNvcmU6OkNhY2hlZFJhd1Jlc291cmNlOjpDYWNoZWRSYXdSZXNvdXJjZSk6CisgICAgICAg
ICogbG9hZGVyL2NhY2hlL0NhY2hlZFJhd1Jlc291cmNlLmg6CisgICAgICAgICogbG9hZGVyL2Nh
Y2hlL0NhY2hlZFJlc291cmNlLmNwcDogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRS
ZXNvdXJjZTo6Q2FjaGVkUmVzb3VyY2UpOgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkUmVzb3Vy
Y2U6On5DYWNoZWRSZXNvdXJjZSk6IFBhc3Mgc2Vzc2lvbklEIHRvIE1lbW9yeUNhY2hlLgorICAg
ICAgICAqIGxvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZS5oOgorICAgICAgICAoV2ViQ29yZTo6
Q2FjaGVkUmVzb3VyY2U6OnNlc3Npb25JRCk6CisgICAgICAgICogbG9hZGVyL2NhY2hlL0NhY2hl
ZFJlc291cmNlTG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZVJlc291cmNlKTog
Q29uc3RydWN0b3JzIHRha2Ugc2Vzc2lvbklELgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkUmVz
b3VyY2VMb2FkZXI6OnNlc3Npb25JRCk6IFJldHJpZXZlIHNlc3Npb25JRCBmcm9tIHBhZ2UuCisg
ICAgICAgIChXZWJDb3JlOjpDYWNoZWRSZXNvdXJjZUxvYWRlcjo6cmVxdWVzdFVzZXJDU1NTdHls
ZVNoZWV0KTogUGFzcyBzZXNzaW9uSUQgdG8gTWVtb3J5Q2FjaGUuCisgICAgICAgIChXZWJDb3Jl
OjpDYWNoZWRSZXNvdXJjZUxvYWRlcjo6cmVxdWVzdFJlc291cmNlKTogSW5pdGlhbGl6ZSBDYWNo
ZWRDU1NTdHlsZVNoZWV0IHdpdGggc2Vzc2lvbklELgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVk
UmVzb3VyY2VMb2FkZXI6OnJldmFsaWRhdGVSZXNvdXJjZSk6IEluaXRpYWxpemUgY2FjaGVkIHJl
c291cmNlIHdpdGggc2Vzc2lvbklELgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkUmVzb3VyY2VM
b2FkZXI6OmxvYWRSZXNvdXJjZSk6IFBhc3Mgc2Vzc2lvbklEIHRvIE1lbW9yeUNhY2hlIGFuZCBp
bml0aWFsaXplIGNhY2hlZCByZXNvdXJjZSB3aXRoIHNlc3Npb25JRC4KKyAgICAgICAgKiBsb2Fk
ZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VMb2FkZXIuaDoKKyAgICAgICAgKiBsb2FkZXIvY2FjaGUv
Q2FjaGVkU1ZHRG9jdW1lbnQuY3BwOiBDb25zdHJ1Y3RvciB0YWtlcyBzZXNzaW9uSUQuCisgICAg
ICAgIChXZWJDb3JlOjpDYWNoZWRTVkdEb2N1bWVudDo6Q2FjaGVkU1ZHRG9jdW1lbnQpOgorICAg
ICAgICAqIGxvYWRlci9jYWNoZS9DYWNoZWRTVkdEb2N1bWVudC5oOgorICAgICAgICAqIGxvYWRl
ci9jYWNoZS9DYWNoZWRTY3JpcHQuY3BwOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OkNhY2hl
ZFNjcmlwdDo6Q2FjaGVkU2NyaXB0KToKKyAgICAgICAgKiBsb2FkZXIvY2FjaGUvQ2FjaGVkU2Ny
aXB0Lmg6CisgICAgICAgICogbG9hZGVyL2NhY2hlL0NhY2hlZFRleHRUcmFjay5jcHA6IERpdHRv
LgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkVGV4dFRyYWNrOjpDYWNoZWRUZXh0VHJhY2spOgor
ICAgICAgICAqIGxvYWRlci9jYWNoZS9DYWNoZWRUZXh0VHJhY2suaDoKKyAgICAgICAgKiBsb2Fk
ZXIvY2FjaGUvQ2FjaGVkWFNMU3R5bGVTaGVldC5jcHA6IERpdHRvLgorICAgICAgICAoV2ViQ29y
ZTo6Q2FjaGVkWFNMU3R5bGVTaGVldDo6Q2FjaGVkWFNMU3R5bGVTaGVldCk6CisgICAgICAgICog
bG9hZGVyL2NhY2hlL0NhY2hlZFhTTFN0eWxlU2hlZXQuaDoKKyAgICAgICAgKiBsb2FkZXIvY2Fj
aGUvTWVtb3J5Q2FjaGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVtb3J5Q2FjaGU6OmdldFNl
c3Npb25NYXApOiBSZXRyaWV2ZSBDYWNoZWRSZXNvdXJjZU1hcCBiYXNlZCBvbiBzZXNzaW9uSUQu
CisgICAgICAgIChXZWJDb3JlOjpNZW1vcnlDYWNoZTo6YWRkKTogVXNlIHNlc3Npb25JRCBmcm9t
IENhY2hlZFJlc291cmNlIHBhcmFtZXRlci4KKyAgICAgICAgKFdlYkNvcmU6Ok1lbW9yeUNhY2hl
OjpyZXZhbGlkYXRpb25TdWNjZWVkZWQpOiBBZGQgc2Vzc2lvbklEIHBhcmFtZXRlci4KKyAgICAg
ICAgKFdlYkNvcmU6Ok1lbW9yeUNhY2hlOjpyZXNvdXJjZUZvclVSTCk6IERpdHRvLgorICAgICAg
ICAoV2ViQ29yZTo6TWVtb3J5Q2FjaGU6OnJlc291cmNlRm9yUmVxdWVzdCk6IERpdHRvLCBhbHNv
IG1vdmUgaW1wbCBpbnRvIGltcGwgbWV0aG9kLgorICAgICAgICAoV2ViQ29yZTo6TWVtb3J5Q2Fj
aGU6OnJlc291cmNlRm9yUmVxdWVzdEltcGwpOiBBZGQgQ2FjaGVkUmVzb3VyY2VNYXAgcGFyYW1l
dGVyLgorICAgICAgICAoV2ViQ29yZTo6TWVtb3J5Q2FjaGU6OmFkZEltYWdlVG9DYWNoZSk6IFVz
ZSBkZWZhdWx0IHNlc3Npb25JRC4KKyAgICAgICAgKFdlYkNvcmU6Ok1lbW9yeUNhY2hlOjpyZW1v
dmVJbWFnZUZyb21DYWNoZSk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6TWVtb3J5Q2FjaGU6
OmV2aWN0KTogVXNlIHNlc3Npb25JRCBmcm9tIENhY2hlZFJlc291cmNlIHBhcmFtZXRlci4KKyAg
ICAgICAgKFdlYkNvcmU6Ok1lbW9yeUNhY2hlOjpyZW1vdmVSZXNvdXJjZXNXaXRoT3JpZ2luKTog
SXRlcmF0ZSB0aHJvdWdoIGFsbCBDYWNoZWRSZXNvdXJjZU1hcHMuCisgICAgICAgIChXZWJDb3Jl
OjpNZW1vcnlDYWNoZTo6Z2V0T3JpZ2luc1dpdGhDYWNoZSk6IERpdHRvLgorICAgICAgICAoV2Vi
Q29yZTo6TWVtb3J5Q2FjaGU6OnJlbW92ZVVybEZyb21DYWNoZSk6IEFkZCBzZXNzaW9uSUQgcGFy
YW1ldGVyLgorICAgICAgICAoV2ViQ29yZTo6TWVtb3J5Q2FjaGU6OnJlbW92ZVJlcXVlc3RGcm9t
Q2FjaGUpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6Ok1lbW9yeUNhY2hlOjpyZW1vdmVSZXF1
ZXN0RnJvbUNhY2hlSW1wbCk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6TWVtb3J5Q2FjaGU6
OnJlbW92ZVJlcXVlc3RGcm9tU2Vzc2lvbkNhY2hlcyk6IEl0ZXJhdGUgdGhyb3VnaCBhbGwgQ2Fj
aGVkUmVzb3VyY2VNYXBzLgorICAgICAgICAoV2ViQ29yZTo6TWVtb3J5Q2FjaGU6OmNyb3NzVGhy
ZWFkUmVtb3ZlUmVxdWVzdEZyb21DYWNoZSk6IEFkZCBzZXNzaW9uSUQgcGFyYW1ldGVyLgorICAg
ICAgICAoV2ViQ29yZTo6TWVtb3J5Q2FjaGU6OmdldFN0YXRpc3RpY3MpOiBJdGVyYXRlIHRocm91
Z2ggYWxsIENhY2hlZFJlc291cmNlTWFwcy4KKyAgICAgICAgKFdlYkNvcmU6Ok1lbW9yeUNhY2hl
OjpzZXREaXNhYmxlZCk6IERpdHRvLgorICAgICAgICAqIGxvYWRlci9jYWNoZS9NZW1vcnlDYWNo
ZS5oOiBDcmVhdGUgYW5vdGhlciBsZXZlbCBmb3IgY2FjaGUuCisgICAgICAgICogcGxhdGZvcm0v
Q3Jvc3NUaHJlYWRDb3BpZXIuY3BwOiBBbGxvdyBjb3B5aW5nIFNlc3Npb25JRHMgYWNyb3NzIHRo
cmVhZHMuCisgICAgICAgIChXZWJDb3JlOjpTZXNzaW9uSUQ+Ojpjb3B5KToKKyAgICAgICAgKiBw
bGF0Zm9ybS9Dcm9zc1RocmVhZENvcGllci5oOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsv
Y2YvUmVzb3VyY2VSZXF1ZXN0Lmg6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3Q6
OlJlc291cmNlUmVxdWVzdCk6IFJlbW92ZSB0cmFpbGluZyB3aGl0ZXNwYWNlLgorICAgICAgICAq
IHJlbmRlcmluZy9SZW5kZXJTbmFwc2hvdHRlZFBsdWdJbi5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpSZW5kZXJTbmFwc2hvdHRlZFBsdWdJbjo6dXBkYXRlU25hcHNob3QpOiBJbml0aWFsaXplIENh
Y2hlZEltYWdlIHdpdGggc2Vzc2lvbklELgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxzLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkludGVybmFsczo6aXNMb2FkaW5nRnJvbU1lbW9yeUNhY2hl
KTogUGFzcyBzZXNzaW9uSUQgdG8gTWVtb3J5Q2FjaGUuCisKIDIwMTQtMDItMjYgIFJ5b3N1a2Ug
Tml3YSAgPHJuaXdhQHdlYmtpdC5vcmc+CiAKICAgICAgICAgRXh0cmFjdCBuYW1lZCBpdGVtcyBj
YWNoZXMgaW4gSFRNTENvbGxlY3Rpb24gYXMgYSBjbGFzcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS5leHAuaW4gYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgppbmRl
eCBjNjBmODRhLi42NzU3NzFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4
cC5pbgorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgpAQCAtMTY5LDkgKzE2OSw5
IEBAIF9fWk43V2ViQ29yZTExTWVtb3J5Q2FjaGUxMXNldERpc2FibGVkRWIKIF9fWk43V2ViQ29y
ZTExTWVtb3J5Q2FjaGUxM2dldFN0YXRpc3RpY3NFdgogX19aTjdXZWJDb3JlMTFNZW1vcnlDYWNo
ZTEzc2V0Q2FwYWNpdGllc0VqamoKIF9fWk43V2ViQ29yZTExTWVtb3J5Q2FjaGUxNGV2aWN0UmVz
b3VyY2VzRXYKLV9fWk43V2ViQ29yZTExTWVtb3J5Q2FjaGUxNHJlc291cmNlRm9yVVJMRVJLTlNf
M1VSTEUKK19fWk43V2ViQ29yZTExTWVtb3J5Q2FjaGUxNHJlc291cmNlRm9yVVJMRVJLTlNfM1VS
TEVOU185U2Vzc2lvbklERQogX19aTjdXZWJDb3JlMTFNZW1vcnlDYWNoZTE1YWRkSW1hZ2VUb0Nh
Y2hlRVA3Q0dJbWFnZVJLTlNfM1VSTEVSS04zV1RGNlN0cmluZ0UKLV9fWk43V2ViQ29yZTExTWVt
b3J5Q2FjaGUxOHJlc291cmNlRm9yUmVxdWVzdEVSS05TXzE1UmVzb3VyY2VSZXF1ZXN0RQorX19a
TjdXZWJDb3JlMTFNZW1vcnlDYWNoZTE4cmVzb3VyY2VGb3JSZXF1ZXN0RVJLTlNfMTVSZXNvdXJj
ZVJlcXVlc3RFTlNfOVNlc3Npb25JREUKIF9fWk43V2ViQ29yZTExTWVtb3J5Q2FjaGUxOWdldE9y
aWdpbnNXaXRoQ2FjaGVFUk4zV1RGN0hhc2hTZXRJTlMxXzZSZWZQdHJJTlNfMTRTZWN1cml0eU9y
aWdpbkVFRU5TXzE4U2VjdXJpdHlPcmlnaW5IYXNoRU5TMV8xMEhhc2hUcmFpdHNJUzVfRUVFRQog
X19aTjdXZWJDb3JlMTFNZW1vcnlDYWNoZTIwcmVtb3ZlSW1hZ2VGcm9tQ2FjaGVFUktOU18zVVJM
RVJLTjNXVEY2U3RyaW5nRQogX19aTjdXZWJDb3JlMTFNZW1vcnlDYWNoZTI1cmVtb3ZlUmVzb3Vy
Y2VzV2l0aE9yaWdpbkVQTlNfMTRTZWN1cml0eU9yaWdpbkUKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvRGVsZXRlQnV0dG9uQ29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL0RlbGV0ZUJ1dHRvbkNvbnRyb2xsZXIuY3BwCmluZGV4IDgyMGIwYWMuLjE1ZTY3
ZTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGVsZXRlQnV0dG9uQ29udHJv
bGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EZWxldGVCdXR0b25Db250cm9s
bGVyLmNwcApAQCAtMjU0LDcgKzI1NCw3IEBAIHZvaWQgRGVsZXRlQnV0dG9uQ29udHJvbGxlcjo6
Y3JlYXRlRGVsZXRpb25VSSgpCiAgICAgaWYgKGJ1dHRvbkltYWdlLT5pc051bGwoKSkKICAgICAg
ICAgcmV0dXJuOwogCi0gICAgYnV0dG9uLT5zZXRDYWNoZWRJbWFnZShuZXcgQ2FjaGVkSW1hZ2Uo
YnV0dG9uSW1hZ2UuZ2V0KCkpKTsKKyAgICBidXR0b24tPnNldENhY2hlZEltYWdlKG5ldyBDYWNo
ZWRJbWFnZShidXR0b25JbWFnZS5nZXQoKSwgbV9mcmFtZS5wYWdlKCktPnNlc3Npb25JRCgpKSk7
CiAKICAgICBjb250YWluZXItPmFwcGVuZENoaWxkKGJ1dHRvbi5nZXQoKSwgZWMpOwogICAgIEFT
U0VSVCghZWMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9ET01VUkwuY3BwIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9ET01VUkwuY3BwCmluZGV4IDRlNDQyNTQuLjViNDlkY2MgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRE9NVVJMLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0RPTVVSTC5jcHAKQEAgLTEyNCw3ICsxMjQsNyBAQCB2b2lkIERPTVVSTDo6cmV2
b2tlT2JqZWN0VVJMKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIHNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQsIGNvbgogI2lmIEVOQUJMRShDQUNIRV9QQVJUSVRJT05JTkcpCiAgICAgcmVxdWVzdC5zZXRD
YWNoZVBhcnRpdGlvbihzY3JpcHRFeGVjdXRpb25Db250ZXh0LT50b3BPcmlnaW4oKS0+Y2FjaGVQ
YXJ0aXRpb24oKSk7CiAjZW5kaWYKLSAgICBNZW1vcnlDYWNoZTo6cmVtb3ZlUmVxdWVzdEZyb21D
YWNoZShzY3JpcHRFeGVjdXRpb25Db250ZXh0LCByZXF1ZXN0KTsKKyAgICBNZW1vcnlDYWNoZTo6
cmVtb3ZlUmVxdWVzdEZyb21TZXNzaW9uQ2FjaGVzKHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQsIHJl
cXVlc3QpOwogCiAgICAgc2NyaXB0RXhlY3V0aW9uQ29udGV4dC0+cHVibGljVVJMTWFuYWdlcigp
LnJldm9rZSh1cmwpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0lu
c3BlY3RvclBhZ2VBZ2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9y
UGFnZUFnZW50LmNwcAppbmRleCBjZmVlNWQ4Li4zMDEyOTA1IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUGFnZUFnZW50LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUGFnZUFnZW50LmNwcApAQCAtMjgyLDcgKzI4Miw3IEBA
IENhY2hlZFJlc291cmNlKiBJbnNwZWN0b3JQYWdlQWdlbnQ6OmNhY2hlZFJlc291cmNlKEZyYW1l
KiBmcmFtZSwgY29uc3QgVVJMJiB1cmwpCiAjaWYgRU5BQkxFKENBQ0hFX1BBUlRJVElPTklORykK
ICAgICAgICAgcmVxdWVzdC5zZXRDYWNoZVBhcnRpdGlvbihmcmFtZS0+ZG9jdW1lbnQoKS0+dG9w
T3JpZ2luKCktPmNhY2hlUGFydGl0aW9uKCkpOwogI2VuZGlmCi0gICAgICAgIGNhY2hlZFJlc291
cmNlID0gbWVtb3J5Q2FjaGUoKS0+cmVzb3VyY2VGb3JSZXF1ZXN0KHJlcXVlc3QpOworICAgICAg
ICBjYWNoZWRSZXNvdXJjZSA9IG1lbW9yeUNhY2hlKCktPnJlc291cmNlRm9yUmVxdWVzdChyZXF1
ZXN0LCBmcmFtZS0+cGFnZSgpLT5zZXNzaW9uSUQoKSk7CiAgICAgfQogCiAgICAgcmV0dXJuIGNh
Y2hlZFJlc291cmNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3Bl
Y3RvclJlc291cmNlQWdlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rv
clJlc291cmNlQWdlbnQuY3BwCmluZGV4IDg5ZTVjZjQuLmIxY2RjZDIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JSZXNvdXJjZUFnZW50LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUmVzb3VyY2VBZ2VudC5jcHAKQEAgLTU5
NCw3ICs1OTQsNyBAQCB2b2lkIEluc3BlY3RvclJlc291cmNlQWdlbnQ6OnJlcGxheVhIUihFcnJv
clN0cmluZyosIGNvbnN0IFN0cmluZyYgcmVxdWVzdElkKQogI2lmIEVOQUJMRShDQUNIRV9QQVJU
SVRJT05JTkcpCiAgICAgcmVxdWVzdC5zZXRDYWNoZVBhcnRpdGlvbihtX3BhZ2VBZ2VudC0+bWFp
bkZyYW1lKCktPmRvY3VtZW50KCktPnRvcE9yaWdpbigpLT5jYWNoZVBhcnRpdGlvbigpKTsKICNl
bmRpZgotICAgIENhY2hlZFJlc291cmNlKiBjYWNoZWRSZXNvdXJjZSA9IG1lbW9yeUNhY2hlKCkt
PnJlc291cmNlRm9yUmVxdWVzdChyZXF1ZXN0KTsKKyAgICBDYWNoZWRSZXNvdXJjZSogY2FjaGVk
UmVzb3VyY2UgPSBtZW1vcnlDYWNoZSgpLT5yZXNvdXJjZUZvclJlcXVlc3QocmVxdWVzdCwgbV9w
YWdlQWdlbnQtPnBhZ2UoKS0+c2Vzc2lvbklEKCkpOwogICAgIGlmIChjYWNoZWRSZXNvdXJjZSkK
ICAgICAgICAgbWVtb3J5Q2FjaGUoKS0+cmVtb3ZlKGNhY2hlZFJlc291cmNlKTsKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50TG9hZGVyLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9Eb2N1bWVudExvYWRlci5jcHAKaW5kZXggNTM5YTU1ZC4uNGNlYjJiOSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50TG9hZGVyLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkZXIuY3BwCkBAIC0xMDUsNyArMTA1
LDEwIEBAIHN0YXRpYyBib29sIGFyZUFsbExvYWRlcnNQYWdlQ2FjaGVBY2NlcHRhYmxlKGNvbnN0
IFJlc291cmNlTG9hZGVyU2V0JiBsb2FkZXJzKQogICAgICAgICBpZiAoIWhhbmRsZSkKICAgICAg
ICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgICAgICBDYWNoZWRSZXNvdXJjZSogY2FjaGVkUmVz
b3VyY2UgPSBtZW1vcnlDYWNoZSgpLT5yZXNvdXJjZUZvclVSTChoYW5kbGUtPmZpcnN0UmVxdWVz
dCgpLnVybCgpKTsKKyAgICAgICAgaWYgKCFsb2FkZXItPmZyYW1lTG9hZGVyKCkpCisgICAgICAg
ICAgICByZXR1cm4gZmFsc2U7CisKKyAgICAgICAgQ2FjaGVkUmVzb3VyY2UqIGNhY2hlZFJlc291
cmNlID0gbWVtb3J5Q2FjaGUoKS0+cmVzb3VyY2VGb3JVUkwoaGFuZGxlLT5maXJzdFJlcXVlc3Qo
KS51cmwoKSwgbG9hZGVyLT5mcmFtZUxvYWRlcigpLT5mcmFtZSgpLnBhZ2UoKS0+c2Vzc2lvbklE
KCkpOwogICAgICAgICBpZiAoIWNhY2hlZFJlc291cmNlKQogICAgICAgICAgICAgcmV0dXJuIGZh
bHNlOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3Bw
IGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcAppbmRleCBiNjcyZTI1Li41
ZjdiNGUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAKQEAgLTMzODMsNyAr
MzM4Myw3IEBAIHZvaWQgRnJhbWVMb2FkZXI6OnRlbGxDbGllbnRBYm91dFBhc3RNZW1vcnlDYWNo
ZUxvYWRzKCkKIAogICAgIHNpemVfdCBzaXplID0gcGFzdExvYWRzLnNpemUoKTsKICAgICBmb3Ig
KHNpemVfdCBpID0gMDsgaSA8IHNpemU7ICsraSkgewotICAgICAgICBDYWNoZWRSZXNvdXJjZSog
cmVzb3VyY2UgPSBtZW1vcnlDYWNoZSgpLT5yZXNvdXJjZUZvclJlcXVlc3QocGFzdExvYWRzW2ld
KTsKKyAgICAgICAgQ2FjaGVkUmVzb3VyY2UqIHJlc291cmNlID0gbWVtb3J5Q2FjaGUoKS0+cmVz
b3VyY2VGb3JSZXF1ZXN0KHBhc3RMb2Fkc1tpXSwgbV9mcmFtZS5wYWdlKCktPnNlc3Npb25JRCgp
KTsKIAogICAgICAgICAvLyBGSVhNRTogVGhlc2UgbG9hZHMsIGxvYWRlZCBmcm9tIGNhY2hlLCBi
dXQgbm93IGdvbmUgZnJvbSB0aGUgY2FjaGUgYnkgdGhlIHRpbWUKICAgICAgICAgLy8gUGFnZTo6
c2V0TWVtb3J5Q2FjaGVDbGllbnRDYWxsc0VuYWJsZWQodHJ1ZSkgaXMgY2FsbGVkLCB3aWxsIG5v
dCBiZSBzZWVuIGJ5IHRoZSBjbGllbnQuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvSW1hZ2VMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ltYWdlTG9hZGVyLmNw
cAppbmRleCAzMDZhMWI3Ni4uZTQ4ZDQ3YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL0ltYWdlTG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvSW1hZ2VMb2Fk
ZXIuY3BwCkBAIC0zNCw2ICszNCw3IEBACiAjaW5jbHVkZSAiSFRNTE5hbWVzLmgiCiAjaW5jbHVk
ZSAiSFRNTE9iamVjdEVsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MUGFyc2VySWRpb21zLmgiCisj
aW5jbHVkZSAiUGFnZS5oIgogI2luY2x1ZGUgIlJlbmRlckltYWdlLmgiCiAjaW5jbHVkZSAiUmVu
ZGVyU1ZHSW1hZ2UuaCIKICNpbmNsdWRlICJTZWN1cml0eU9yaWdpbi5oIgpAQCAtMTg4LDcgKzE4
OSw3IEBAIHZvaWQgSW1hZ2VMb2FkZXI6OnVwZGF0ZUZyb21FbGVtZW50KCkKICAgICAgICAgaWYg
KG1fbG9hZE1hbnVhbGx5KSB7CiAgICAgICAgICAgICBib29sIGF1dG9Mb2FkT3RoZXJJbWFnZXMg
PSBkb2N1bWVudC5jYWNoZWRSZXNvdXJjZUxvYWRlcigpLT5hdXRvTG9hZEltYWdlcygpOwogICAg
ICAgICAgICAgZG9jdW1lbnQuY2FjaGVkUmVzb3VyY2VMb2FkZXIoKS0+c2V0QXV0b0xvYWRJbWFn
ZXMoZmFsc2UpOwotICAgICAgICAgICAgbmV3SW1hZ2UgPSBuZXcgQ2FjaGVkSW1hZ2UocmVxdWVz
dC5yZXNvdXJjZVJlcXVlc3QoKSk7CisgICAgICAgICAgICBuZXdJbWFnZSA9IG5ldyBDYWNoZWRJ
bWFnZShyZXF1ZXN0LnJlc291cmNlUmVxdWVzdCgpLCBtX2VsZW1lbnQuZG9jdW1lbnQoKS5wYWdl
KCktPnNlc3Npb25JRCgpKTsKICAgICAgICAgICAgIG5ld0ltYWdlLT5zZXRMb2FkaW5nKHRydWUp
OwogICAgICAgICAgICAgbmV3SW1hZ2UtPnNldE93bmluZ0NhY2hlZFJlc291cmNlTG9hZGVyKGRv
Y3VtZW50LmNhY2hlZFJlc291cmNlTG9hZGVyKCkpOwogICAgICAgICAgICAgZG9jdW1lbnQuY2Fj
aGVkUmVzb3VyY2VMb2FkZXIoKS0+bV9kb2N1bWVudFJlc291cmNlcy5zZXQobmV3SW1hZ2UtPnVy
bCgpLCBuZXdJbWFnZS5nZXQoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
YXJjaGl2ZS9jZi9MZWdhY3lXZWJBcmNoaXZlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9h
cmNoaXZlL2NmL0xlZ2FjeVdlYkFyY2hpdmUuY3BwCmluZGV4IDMxZjFhMWIuLjAyNGQyOGYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9hcmNoaXZlL2NmL0xlZ2FjeVdlYkFyY2hp
dmUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9hcmNoaXZlL2NmL0xlZ2FjeVdlYkFy
Y2hpdmUuY3BwCkBAIC01NTQsNyArNTU0LDcgQEAgUGFzc1JlZlB0cjxMZWdhY3lXZWJBcmNoaXZl
PiBMZWdhY3lXZWJBcmNoaXZlOjpjcmVhdGUoY29uc3QgU3RyaW5nJiBtYXJrdXBTdHJpbmcKICNp
ZiBFTkFCTEUoQ0FDSEVfUEFSVElUSU9OSU5HKQogICAgICAgICAgICAgICAgIHJlcXVlc3Quc2V0
Q2FjaGVQYXJ0aXRpb24oZnJhbWUtPmRvY3VtZW50KCktPnRvcE9yaWdpbigpLT5jYWNoZVBhcnRp
dGlvbigpKTsKICNlbmRpZgotICAgICAgICAgICAgICAgIENhY2hlZFJlc291cmNlKiBjYWNoZWRS
ZXNvdXJjZSA9IG1lbW9yeUNhY2hlKCktPnJlc291cmNlRm9yUmVxdWVzdChyZXF1ZXN0KTsKKyAg
ICAgICAgICAgICAgICBDYWNoZWRSZXNvdXJjZSogY2FjaGVkUmVzb3VyY2UgPSBtZW1vcnlDYWNo
ZSgpLT5yZXNvdXJjZUZvclJlcXVlc3QocmVxdWVzdCwgZnJhbWUtPnBhZ2UoKS0+c2Vzc2lvbklE
KCkpOwogICAgICAgICAgICAgICAgIGlmIChjYWNoZWRSZXNvdXJjZSkgewogICAgICAgICAgICAg
ICAgICAgICBSZXNvdXJjZUJ1ZmZlciogZGF0YSA9IGNhY2hlZFJlc291cmNlLT5yZXNvdXJjZUJ1
ZmZlcigpOwogICAgICAgICAgICAgICAgICAgICByZXNvdXJjZSA9IEFyY2hpdmVSZXNvdXJjZTo6
Y3JlYXRlKGRhdGEgPyBkYXRhLT5zaGFyZWRCdWZmZXIoKSA6IDAsIHN1YnJlc291cmNlVVJMLCBj
YWNoZWRSZXNvdXJjZS0+cmVzcG9uc2UoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvY2FjaGUvQ2FjaGVkQ1NTU3R5bGVTaGVldC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvY2FjaGUvQ2FjaGVkQ1NTU3R5bGVTaGVldC5jcHAKaW5kZXggNjliY2U4Zi4uZThhYWQ0NyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZENTU1N0eWxlU2hl
ZXQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRDU1NTdHlsZVNo
ZWV0LmNwcApAQCAtNDAsOCArNDAsOCBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLUNhY2hl
ZENTU1N0eWxlU2hlZXQ6OkNhY2hlZENTU1N0eWxlU2hlZXQoY29uc3QgUmVzb3VyY2VSZXF1ZXN0
JiByZXNvdXJjZVJlcXVlc3QsIGNvbnN0IFN0cmluZyYgY2hhcnNldCkKLSAgICA6IENhY2hlZFJl
c291cmNlKHJlc291cmNlUmVxdWVzdCwgQ1NTU3R5bGVTaGVldCkKK0NhY2hlZENTU1N0eWxlU2hl
ZXQ6OkNhY2hlZENTU1N0eWxlU2hlZXQoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXNvdXJjZVJl
cXVlc3QsIGNvbnN0IFN0cmluZyYgY2hhcnNldCwgU2Vzc2lvbklEIHNlc3Npb25JRCkKKyAgICA6
IENhY2hlZFJlc291cmNlKHJlc291cmNlUmVxdWVzdCwgQ1NTU3R5bGVTaGVldCwgc2Vzc2lvbklE
KQogICAgICwgbV9kZWNvZGVyKFRleHRSZXNvdXJjZURlY29kZXI6OmNyZWF0ZSgidGV4dC9jc3Mi
LCBjaGFyc2V0KSkKIHsKICAgICAvLyBQcmVmZXIgdGV4dC9jc3MgYnV0IGFjY2VwdCBhbnkgdHlw
ZSAoZGVsbC5jb20gc2VydmVzIGEgc3R5bGVzaGVldApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvbG9hZGVyL2NhY2hlL0NhY2hlZENTU1N0eWxlU2hlZXQuaCBiL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9jYWNoZS9DYWNoZWRDU1NTdHlsZVNoZWV0LmgKaW5kZXggZjhiYjBjNi4uNWI3Yjc0OCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZENTU1N0eWxlU2hl
ZXQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkQ1NTU3R5bGVTaGVl
dC5oCkBAIC0zOCw3ICszOCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogICAgIGNsYXNzIENh
Y2hlZENTU1N0eWxlU2hlZXQgZmluYWwgOiBwdWJsaWMgQ2FjaGVkUmVzb3VyY2UgewogICAgIHB1
YmxpYzoKLSAgICAgICAgQ2FjaGVkQ1NTU3R5bGVTaGVldChjb25zdCBSZXNvdXJjZVJlcXVlc3Qm
LCBjb25zdCBTdHJpbmcmIGNoYXJzZXQpOworICAgICAgICBDYWNoZWRDU1NTdHlsZVNoZWV0KGNv
bnN0IFJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFN0cmluZyYgY2hhcnNldCwgU2Vzc2lvbklEKTsK
ICAgICAgICAgdmlydHVhbCB+Q2FjaGVkQ1NTU3R5bGVTaGVldCgpOwogCiAgICAgICAgIGNvbnN0
IFN0cmluZyBzaGVldFRleHQoYm9vbCBlbmZvcmNlTUlNRVR5cGUgPSB0cnVlLCBib29sKiBoYXNW
YWxpZE1JTUVUeXBlID0gMCkgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvY2FjaGUvQ2FjaGVkRm9udC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2Fj
aGVkRm9udC5jcHAKaW5kZXggZmJmNjU4Yy4uMmExYTE0MyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZEZvbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9jYWNoZS9DYWNoZWRGb250LmNwcApAQCAtNTAsOCArNTAsOCBAQAogCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKLUNhY2hlZEZvbnQ6OkNhY2hlZEZvbnQoY29uc3QgUmVzb3VyY2VSZXF1ZXN0
JiByZXNvdXJjZVJlcXVlc3QpCi0gICAgOiBDYWNoZWRSZXNvdXJjZShyZXNvdXJjZVJlcXVlc3Qs
IEZvbnRSZXNvdXJjZSkKK0NhY2hlZEZvbnQ6OkNhY2hlZEZvbnQoY29uc3QgUmVzb3VyY2VSZXF1
ZXN0JiByZXNvdXJjZVJlcXVlc3QsIFNlc3Npb25JRCBzZXNzaW9uSUQpCisgICAgOiBDYWNoZWRS
ZXNvdXJjZShyZXNvdXJjZVJlcXVlc3QsIEZvbnRSZXNvdXJjZSwgc2Vzc2lvbklEKQogICAgICwg
bV9sb2FkSW5pdGlhdGVkKGZhbHNlKQogICAgICwgbV9oYXNDcmVhdGVkRm9udERhdGFXcmFwcGlu
Z1Jlc291cmNlKGZhbHNlKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2Nh
Y2hlL0NhY2hlZEZvbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRGb250
LmgKaW5kZXggNzQ0YjYyZC4uZmIyMTY1OTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9jYWNoZS9DYWNoZWRGb250LmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hl
L0NhY2hlZEZvbnQuaApAQCAtNDIsNyArNDIsNyBAQCBzdHJ1Y3QgRm9udEN1c3RvbVBsYXRmb3Jt
RGF0YTsKIAogY2xhc3MgQ2FjaGVkRm9udCBmaW5hbCA6IHB1YmxpYyBDYWNoZWRSZXNvdXJjZSB7
CiBwdWJsaWM6Ci0gICAgQ2FjaGVkRm9udChjb25zdCBSZXNvdXJjZVJlcXVlc3QmKTsKKyAgICBD
YWNoZWRGb250KGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIFNlc3Npb25JRCk7CiAgICAgdmlydHVh
bCB+Q2FjaGVkRm9udCgpOwogCiAgICAgdm9pZCBiZWdpbkxvYWRJZk5lZWRlZChDYWNoZWRSZXNv
dXJjZUxvYWRlciogZGwpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hl
L0NhY2hlZEltYWdlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRJbWFn
ZS5jcHAKaW5kZXggNGMyNjY3Yi4uYjkyYTk3NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
bG9hZGVyL2NhY2hlL0NhY2hlZEltYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
Y2FjaGUvQ2FjaGVkSW1hZ2UuY3BwCkBAIC02MCw4ICs2MCw4IEBACiAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIAotQ2FjaGVkSW1hZ2U6OkNhY2hlZEltYWdlKGNvbnN0IFJlc291cmNlUmVxdWVzdCYg
cmVzb3VyY2VSZXF1ZXN0KQotICAgIDogQ2FjaGVkUmVzb3VyY2UocmVzb3VyY2VSZXF1ZXN0LCBJ
bWFnZVJlc291cmNlKQorQ2FjaGVkSW1hZ2U6OkNhY2hlZEltYWdlKGNvbnN0IFJlc291cmNlUmVx
dWVzdCYgcmVzb3VyY2VSZXF1ZXN0LCBTZXNzaW9uSUQgc2Vzc2lvbklEKQorICAgIDogQ2FjaGVk
UmVzb3VyY2UocmVzb3VyY2VSZXF1ZXN0LCBJbWFnZVJlc291cmNlLCBzZXNzaW9uSUQpCiAgICAg
LCBtX2ltYWdlKDApCiAgICAgLCBtX2lzTWFudWFsbHlDYWNoZWQoZmFsc2UpCiAgICAgLCBtX3No
b3VsZFBhaW50QnJva2VuSW1hZ2UodHJ1ZSkKQEAgLTY5LDggKzY5LDggQEAgQ2FjaGVkSW1hZ2U6
OkNhY2hlZEltYWdlKGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVzb3VyY2VSZXF1ZXN0KQogICAg
IHNldFN0YXR1cyhVbmtub3duKTsKIH0KIAotQ2FjaGVkSW1hZ2U6OkNhY2hlZEltYWdlKEltYWdl
KiBpbWFnZSkKLSAgICA6IENhY2hlZFJlc291cmNlKFJlc291cmNlUmVxdWVzdCgpLCBJbWFnZVJl
c291cmNlKQorQ2FjaGVkSW1hZ2U6OkNhY2hlZEltYWdlKEltYWdlKiBpbWFnZSwgU2Vzc2lvbklE
IHNlc3Npb25JRCkKKyAgICA6IENhY2hlZFJlc291cmNlKFJlc291cmNlUmVxdWVzdCgpLCBJbWFn
ZVJlc291cmNlLCBzZXNzaW9uSUQpCiAgICAgLCBtX2ltYWdlKGltYWdlKQogICAgICwgbV9pc01h
bnVhbGx5Q2FjaGVkKGZhbHNlKQogICAgICwgbV9zaG91bGRQYWludEJyb2tlbkltYWdlKHRydWUp
CkBAIC03OSw4ICs3OSwxOCBAQCBDYWNoZWRJbWFnZTo6Q2FjaGVkSW1hZ2UoSW1hZ2UqIGltYWdl
KQogICAgIHNldExvYWRpbmcoZmFsc2UpOwogfQogCi1DYWNoZWRJbWFnZTo6Q2FjaGVkSW1hZ2Uo
Y29uc3QgVVJMJiB1cmwsIEltYWdlKiBpbWFnZSwgQ2FjaGVkSW1hZ2U6OkNhY2hlQmVoYXZpb3JU
eXBlIHR5cGUpCi0gICAgOiBDYWNoZWRSZXNvdXJjZShSZXNvdXJjZVJlcXVlc3QodXJsKSwgSW1h
Z2VSZXNvdXJjZSkKK0NhY2hlZEltYWdlOjpDYWNoZWRJbWFnZShjb25zdCBVUkwmIHVybCwgSW1h
Z2UqIGltYWdlLCBTZXNzaW9uSUQgc2Vzc2lvbklEKQorICAgIDogQ2FjaGVkUmVzb3VyY2UoUmVz
b3VyY2VSZXF1ZXN0KHVybCksIEltYWdlUmVzb3VyY2UsIHNlc3Npb25JRCkKKyAgICAsIG1faW1h
Z2UoaW1hZ2UpCisgICAgLCBtX2lzTWFudWFsbHlDYWNoZWQoZmFsc2UpCisgICAgLCBtX3Nob3Vs
ZFBhaW50QnJva2VuSW1hZ2UodHJ1ZSkKK3sKKyAgICBzZXRTdGF0dXMoQ2FjaGVkKTsKKyAgICBz
ZXRMb2FkaW5nKGZhbHNlKTsKK30KKworQ2FjaGVkSW1hZ2U6OkNhY2hlZEltYWdlKGNvbnN0IFVS
TCYgdXJsLCBJbWFnZSogaW1hZ2UsIENhY2hlZEltYWdlOjpDYWNoZUJlaGF2aW9yVHlwZSB0eXBl
LCBTZXNzaW9uSUQgc2Vzc2lvbklEKQorICAgIDogQ2FjaGVkUmVzb3VyY2UoUmVzb3VyY2VSZXF1
ZXN0KHVybCksIEltYWdlUmVzb3VyY2UsIHNlc3Npb25JRCkKICAgICAsIG1faW1hZ2UoaW1hZ2Up
CiAgICAgLCBtX2lzTWFudWFsbHlDYWNoZWQodHlwZSA9PSBDYWNoZWRJbWFnZTo6TWFudWFsbHlD
YWNoZWQpCiAgICAgLCBtX3Nob3VsZFBhaW50QnJva2VuSW1hZ2UodHJ1ZSkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRJbWFnZS5oIGIvU291cmNlL1dlYkNv
cmUvbG9hZGVyL2NhY2hlL0NhY2hlZEltYWdlLmgKaW5kZXggYjdkNzIxMS4uODZhZjAzZiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZEltYWdlLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZEltYWdlLmgKQEAgLTUwLDkgKzUwLDEw
IEBAIGNsYXNzIENhY2hlZEltYWdlIGZpbmFsIDogcHVibGljIENhY2hlZFJlc291cmNlLCBwdWJs
aWMgSW1hZ2VPYnNlcnZlciB7CiBwdWJsaWM6CiAgICAgZW51bSBDYWNoZUJlaGF2aW9yVHlwZSB7
IEF1dG9tYXRpY2FsbHlDYWNoZWQsIE1hbnVhbGx5Q2FjaGVkIH07CiAKLSAgICBDYWNoZWRJbWFn
ZShjb25zdCBSZXNvdXJjZVJlcXVlc3QmKTsKLSAgICBDYWNoZWRJbWFnZShJbWFnZSopOwotICAg
IENhY2hlZEltYWdlKGNvbnN0IFVSTCYsIEltYWdlKiwgQ2FjaGVCZWhhdmlvclR5cGUgPSBBdXRv
bWF0aWNhbGx5Q2FjaGVkKTsKKyAgICBDYWNoZWRJbWFnZShjb25zdCBSZXNvdXJjZVJlcXVlc3Qm
LCBTZXNzaW9uSUQpOworICAgIENhY2hlZEltYWdlKEltYWdlKiwgU2Vzc2lvbklEKTsKKyAgICBD
YWNoZWRJbWFnZShjb25zdCBVUkwmLCBJbWFnZSosIFNlc3Npb25JRCk7CisgICAgQ2FjaGVkSW1h
Z2UoY29uc3QgVVJMJiwgSW1hZ2UqLCBDYWNoZUJlaGF2aW9yVHlwZSwgU2Vzc2lvbklEKTsKICAg
ICB2aXJ0dWFsIH5DYWNoZWRJbWFnZSgpOwogCiAgICAgSW1hZ2UqIGltYWdlKCk7IC8vIFJldHVy
bnMgdGhlIG51bGxJbWFnZSgpIGlmIHRoZSBpbWFnZSBpcyBub3QgYXZhaWxhYmxlIHlldC4KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSYXdSZXNvdXJjZS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmF3UmVzb3VyY2UuY3BwCmlu
ZGV4IDcxZDg2ZGEuLmM0NjVkMmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9j
YWNoZS9DYWNoZWRSYXdSZXNvdXJjZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2Nh
Y2hlL0NhY2hlZFJhd1Jlc291cmNlLmNwcApAQCAtMzUsOCArMzUsOCBAQAogCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKLUNhY2hlZFJhd1Jlc291cmNlOjpDYWNoZWRSYXdSZXNvdXJjZShSZXNvdXJj
ZVJlcXVlc3QmIHJlc291cmNlUmVxdWVzdCwgVHlwZSB0eXBlKQotICAgIDogQ2FjaGVkUmVzb3Vy
Y2UocmVzb3VyY2VSZXF1ZXN0LCB0eXBlKQorQ2FjaGVkUmF3UmVzb3VyY2U6OkNhY2hlZFJhd1Jl
c291cmNlKFJlc291cmNlUmVxdWVzdCYgcmVzb3VyY2VSZXF1ZXN0LCBUeXBlIHR5cGUsIFNlc3Np
b25JRCBzZXNzaW9uSUQpCisgICAgOiBDYWNoZWRSZXNvdXJjZShyZXNvdXJjZVJlcXVlc3QsIHR5
cGUsIHNlc3Npb25JRCkKICAgICAsIG1faWRlbnRpZmllcigwKQogewogICAgIC8vIEZJWE1FOiBU
aGUgd3JvbmcgQ2FjaGVkUmVzb3VyY2U6OlR5cGUgaGVyZSBtYXkgY2F1c2UgYSBiYWQgY2FzdCBl
bHNld2hlcmUuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVk
UmF3UmVzb3VyY2UuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSYXdSZXNv
dXJjZS5oCmluZGV4IGNjZGZlZTEuLjNkNmJmYjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9jYWNoZS9DYWNoZWRSYXdSZXNvdXJjZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9jYWNoZS9DYWNoZWRSYXdSZXNvdXJjZS5oCkBAIC0zMiw3ICszMiw3IEBAIGNsYXNzIFN1
YnJlc291cmNlTG9hZGVyOwogCiBjbGFzcyBDYWNoZWRSYXdSZXNvdXJjZSBmaW5hbCA6IHB1Ymxp
YyBDYWNoZWRSZXNvdXJjZSB7CiBwdWJsaWM6Ci0gICAgQ2FjaGVkUmF3UmVzb3VyY2UoUmVzb3Vy
Y2VSZXF1ZXN0JiwgVHlwZSk7CisgICAgQ2FjaGVkUmF3UmVzb3VyY2UoUmVzb3VyY2VSZXF1ZXN0
JiwgVHlwZSwgU2Vzc2lvbklEKTsKIAogICAgIC8vIEZJWE1FOiBBc3NvY2lhdGVkVVJMTG9hZGVy
IHNob3VsZG4ndCBiZSBhIERvY3VtZW50VGhyZWFkYWJsZUxvYWRlciBhbmQgdGhlcmVmb3JlIHNo
b3VsZG4ndAogICAgIC8vIHVzZSBDYWNoZWRSYXdSZXNvdXJjZS4gSG93ZXZlciwgaXQgaXMsIGFu
ZCBpdCBuZWVkcyB0byBiZSBhYmxlIHRvIGRlZmVyIGxvYWRpbmcuCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2UuY3BwIGIvU291cmNlL1dlYkNv
cmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlLmNwcAppbmRleCA2OTdhNDk1Li5mMDNhM2U1
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2Uu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZS5jcHAK
QEAgLTE0Nyw4ICsxNDcsOSBAQCBzdGF0aWMgZG91YmxlIGRlYWREZWNvZGVkRGF0YURlbGV0aW9u
SW50ZXJ2YWxGb3JSZXNvdXJjZVR5cGUoQ2FjaGVkUmVzb3VyY2U6OlR5cAogCiBERUZJTkVfREVC
VUdfT05MWV9HTE9CQUwoUmVmQ291bnRlZExlYWtDb3VudGVyLCBjYWNoZWRSZXNvdXJjZUxlYWtD
b3VudGVyLCAoIkNhY2hlZFJlc291cmNlIikpOwogCi1DYWNoZWRSZXNvdXJjZTo6Q2FjaGVkUmVz
b3VyY2UoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBUeXBlIHR5cGUpCitDYWNoZWRS
ZXNvdXJjZTo6Q2FjaGVkUmVzb3VyY2UoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBU
eXBlIHR5cGUsIFNlc3Npb25JRCBzZXNzaW9uSUQpCiAgICAgOiBtX3Jlc291cmNlUmVxdWVzdChy
ZXF1ZXN0KQorICAgICwgbV9zZXNzaW9uSUQoc2Vzc2lvbklEKQogICAgICwgbV9sb2FkUHJpb3Jp
dHkoZGVmYXVsdFByaW9yaXR5Rm9yUmVzb3VyY2VUeXBlKHR5cGUpKQogICAgICwgbV9yZXNwb25z
ZVRpbWVzdGFtcChjdXJyZW50VGltZSgpKQogICAgICwgbV9kZWNvZGVkRGF0YURlbGV0aW9uVGlt
ZXIodGhpcywgJkNhY2hlZFJlc291cmNlOjpkZWNvZGVkRGF0YURlbGV0aW9uVGltZXJGaXJlZCwg
ZGVhZERlY29kZWREYXRhRGVsZXRpb25JbnRlcnZhbEZvclJlc291cmNlVHlwZSh0eXBlKSkKQEAg
LTE4MCw2ICsxODEsNyBAQCBDYWNoZWRSZXNvdXJjZTo6Q2FjaGVkUmVzb3VyY2UoY29uc3QgUmVz
b3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBUeXBlIHR5cGUpCiAgICAgLCBtX3Byb3h5UmVzb3VyY2Uo
MCkKIHsKICAgICBBU1NFUlQobV90eXBlID09IHVuc2lnbmVkKHR5cGUpKTsgLy8gbV90eXBlIGlz
IGEgYml0ZmllbGQsIHNvIHRoaXMgdGVzdHMgY2FyZWxlc3MgdXBkYXRlcyBvZiB0aGUgZW51bS4K
KyAgICBBU1NFUlQoc2Vzc2lvbklELmlzVmFsaWQoKSk7CiAjaWZuZGVmIE5ERUJVRwogICAgIGNh
Y2hlZFJlc291cmNlTGVha0NvdW50ZXIuaW5jcmVtZW50KCk7CiAjZW5kaWYKQEAgLTE5OSw3ICsy
MDEsNyBAQCBDYWNoZWRSZXNvdXJjZTo6fkNhY2hlZFJlc291cmNlKCkKICAgICBBU1NFUlQoY2Fu
RGVsZXRlKCkpOwogICAgIEFTU0VSVCghaW5DYWNoZSgpKTsKICAgICBBU1NFUlQoIW1fZGVsZXRl
ZCk7Ci0gICAgQVNTRVJUKHVybCgpLmlzTnVsbCgpIHx8IG1lbW9yeUNhY2hlKCktPnJlc291cmNl
Rm9yUmVxdWVzdChyZXNvdXJjZVJlcXVlc3QoKSkgIT0gdGhpcyk7CisgICAgQVNTRVJUKHVybCgp
LmlzTnVsbCgpIHx8IG1lbW9yeUNhY2hlKCktPnJlc291cmNlRm9yUmVxdWVzdChyZXNvdXJjZVJl
cXVlc3QoKSwgc2Vzc2lvbklEKCkpICE9IHRoaXMpOwogCiAjaWZuZGVmIE5ERUJVRwogICAgIG1f
ZGVsZXRlZCA9IHRydWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUv
Q2FjaGVkUmVzb3VyY2UuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNv
dXJjZS5oCmluZGV4IGVmMGJjNjYuLjlmOGQxZDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9jYWNoZS9DYWNoZWRSZXNvdXJjZS5oCkBAIC0zMSw2ICszMSw3IEBACiAjaW5jbHVkZSAiUmVz
b3VyY2VMb2FkZXJPcHRpb25zLmgiCiAjaW5jbHVkZSAiUmVzb3VyY2VSZXF1ZXN0LmgiCiAjaW5j
bHVkZSAiUmVzb3VyY2VSZXNwb25zZS5oIgorI2luY2x1ZGUgIlNlc3Npb25JRC5oIgogI2luY2x1
ZGUgIlRpbWVyLmgiCiAjaW5jbHVkZSA8dGltZS5oPgogI2luY2x1ZGUgPHd0Zi9IYXNoQ291bnRl
ZFNldC5oPgpAQCAtODksNyArOTAsNyBAQCBwdWJsaWM6CiAgICAgICAgIERlY29kZUVycm9yCiAg
ICAgfTsKIAotICAgIENhY2hlZFJlc291cmNlKGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIFR5cGUp
OworICAgIENhY2hlZFJlc291cmNlKGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIFR5cGUsIFNlc3Np
b25JRCk7CiAgICAgdmlydHVhbCB+Q2FjaGVkUmVzb3VyY2UoKTsKIAogICAgIHZpcnR1YWwgdm9p
ZCBsb2FkKENhY2hlZFJlc291cmNlTG9hZGVyKiwgY29uc3QgUmVzb3VyY2VMb2FkZXJPcHRpb25z
Jik7CkBAIC0xMTEsNiArMTEyLDcgQEAgcHVibGljOgogI2lmIEVOQUJMRShDQUNIRV9QQVJUSVRJ
T05JTkcpCiAgICAgY29uc3QgU3RyaW5nJiBjYWNoZVBhcnRpdGlvbigpIGNvbnN0IHsgcmV0dXJu
IG1fcmVzb3VyY2VSZXF1ZXN0LmNhY2hlUGFydGl0aW9uKCk7IH0KICNlbmRpZgorICAgIFNlc3Np
b25JRCBzZXNzaW9uSUQoKSBjb25zdCB7IHJldHVybiBtX3Nlc3Npb25JRDsgfQogICAgIFR5cGUg
dHlwZSgpIGNvbnN0IHsgcmV0dXJuIHN0YXRpY19jYXN0PFR5cGU+KG1fdHlwZSk7IH0KICAgICAK
ICAgICBSZXNvdXJjZUxvYWRQcmlvcml0eSBsb2FkUHJpb3JpdHkoKSBjb25zdCB7IHJldHVybiBt
X2xvYWRQcmlvcml0eTsgfQpAQCAtMjkwLDYgKzI5Miw3IEBAIHByb3RlY3RlZDoKICAgICBIYXNo
TWFwPENhY2hlZFJlc291cmNlQ2xpZW50KiwgT3duUHRyPENhY2hlZFJlc291cmNlQ2FsbGJhY2s+
PiBtX2NsaWVudHNBd2FpdGluZ0NhbGxiYWNrOwogCiAgICAgUmVzb3VyY2VSZXF1ZXN0IG1fcmVz
b3VyY2VSZXF1ZXN0OworICAgIFNlc3Npb25JRCBtX3Nlc3Npb25JRDsKICAgICBTdHJpbmcgbV9h
Y2NlcHQ7CiAgICAgUmVmUHRyPFN1YnJlc291cmNlTG9hZGVyPiBtX2xvYWRlcjsKICAgICBSZXNv
dXJjZUxvYWRlck9wdGlvbnMgbV9vcHRpb25zOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
bG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlTG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZUxvYWRlci5jcHAKaW5kZXggMTFmMThhOC4uOWQyOGQ3
NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNl
TG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3Vy
Y2VMb2FkZXIuY3BwCkBAIC00OCwxMiArNDgsMTQgQEAKICNpbmNsdWRlICJMb2FkZXJTdHJhdGVn
eS5oIgogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKICNpbmNsdWRlICJNZW1vcnlDYWNoZS5oIgorI2lu
Y2x1ZGUgIlBhZ2UuaCIKICNpbmNsdWRlICJQaW5nTG9hZGVyLmgiCiAjaW5jbHVkZSAiUGxhdGZv
cm1TdHJhdGVnaWVzLmgiCiAjaW5jbHVkZSAiUmVuZGVyRWxlbWVudC5oIgogI2luY2x1ZGUgIlJl
c291cmNlTG9hZFNjaGVkdWxlci5oIgogI2luY2x1ZGUgIlNjcmlwdENvbnRyb2xsZXIuaCIKICNp
bmNsdWRlICJTZWN1cml0eU9yaWdpbi5oIgorI2luY2x1ZGUgIlNlc3Npb25JRC5oIgogI2luY2x1
ZGUgIlNldHRpbmdzLmgiCiAjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgogI2luY2x1ZGUg
PHd0Zi90ZXh0L1dURlN0cmluZy5oPgpAQCAtNzAsMzUgKzcyLDM1IEBACiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAotc3RhdGljIENhY2hlZFJlc291cmNlKiBjcmVhdGVSZXNvdXJjZShDYWNoZWRS
ZXNvdXJjZTo6VHlwZSB0eXBlLCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIGNvbnN0IFN0cmlu
ZyYgY2hhcnNldCkKK3N0YXRpYyBDYWNoZWRSZXNvdXJjZSogY3JlYXRlUmVzb3VyY2UoQ2FjaGVk
UmVzb3VyY2U6OlR5cGUgdHlwZSwgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBjb25zdCBTdHJp
bmcmIGNoYXJzZXQsIFNlc3Npb25JRCBzZXNzaW9uSUQpCiB7CiAgICAgc3dpdGNoICh0eXBlKSB7
CiAgICAgY2FzZSBDYWNoZWRSZXNvdXJjZTo6SW1hZ2VSZXNvdXJjZToKLSAgICAgICAgcmV0dXJu
IG5ldyBDYWNoZWRJbWFnZShyZXF1ZXN0KTsKKyAgICAgICAgcmV0dXJuIG5ldyBDYWNoZWRJbWFn
ZShyZXF1ZXN0LCBzZXNzaW9uSUQpOwogICAgIGNhc2UgQ2FjaGVkUmVzb3VyY2U6OkNTU1N0eWxl
U2hlZXQ6Ci0gICAgICAgIHJldHVybiBuZXcgQ2FjaGVkQ1NTU3R5bGVTaGVldChyZXF1ZXN0LCBj
aGFyc2V0KTsKKyAgICAgICAgcmV0dXJuIG5ldyBDYWNoZWRDU1NTdHlsZVNoZWV0KHJlcXVlc3Qs
IGNoYXJzZXQsIHNlc3Npb25JRCk7CiAgICAgY2FzZSBDYWNoZWRSZXNvdXJjZTo6U2NyaXB0Ogot
ICAgICAgICByZXR1cm4gbmV3IENhY2hlZFNjcmlwdChyZXF1ZXN0LCBjaGFyc2V0KTsKKyAgICAg
ICAgcmV0dXJuIG5ldyBDYWNoZWRTY3JpcHQocmVxdWVzdCwgY2hhcnNldCwgc2Vzc2lvbklEKTsK
ICAgICBjYXNlIENhY2hlZFJlc291cmNlOjpTVkdEb2N1bWVudFJlc291cmNlOgotICAgICAgICBy
ZXR1cm4gbmV3IENhY2hlZFNWR0RvY3VtZW50KHJlcXVlc3QpOworICAgICAgICByZXR1cm4gbmV3
IENhY2hlZFNWR0RvY3VtZW50KHJlcXVlc3QsIHNlc3Npb25JRCk7CiAgICAgY2FzZSBDYWNoZWRS
ZXNvdXJjZTo6Rm9udFJlc291cmNlOgotICAgICAgICByZXR1cm4gbmV3IENhY2hlZEZvbnQocmVx
dWVzdCk7CisgICAgICAgIHJldHVybiBuZXcgQ2FjaGVkRm9udChyZXF1ZXN0LCBzZXNzaW9uSUQp
OwogICAgIGNhc2UgQ2FjaGVkUmVzb3VyY2U6OlJhd1Jlc291cmNlOgogICAgIGNhc2UgQ2FjaGVk
UmVzb3VyY2U6Ok1haW5SZXNvdXJjZToKLSAgICAgICAgcmV0dXJuIG5ldyBDYWNoZWRSYXdSZXNv
dXJjZShyZXF1ZXN0LCB0eXBlKTsKKyAgICAgICAgcmV0dXJuIG5ldyBDYWNoZWRSYXdSZXNvdXJj
ZShyZXF1ZXN0LCB0eXBlLCBzZXNzaW9uSUQpOwogI2lmIEVOQUJMRShYU0xUKQogICAgIGNhc2Ug
Q2FjaGVkUmVzb3VyY2U6OlhTTFN0eWxlU2hlZXQ6Ci0gICAgICAgIHJldHVybiBuZXcgQ2FjaGVk
WFNMU3R5bGVTaGVldChyZXF1ZXN0KTsKKyAgICAgICAgcmV0dXJuIG5ldyBDYWNoZWRYU0xTdHls
ZVNoZWV0KHJlcXVlc3QsIHNlc3Npb25JRCk7CiAjZW5kaWYKICNpZiBFTkFCTEUoTElOS19QUkVG
RVRDSCkKICAgICBjYXNlIENhY2hlZFJlc291cmNlOjpMaW5rUHJlZmV0Y2g6Ci0gICAgICAgIHJl
dHVybiBuZXcgQ2FjaGVkUmVzb3VyY2UocmVxdWVzdCwgQ2FjaGVkUmVzb3VyY2U6OkxpbmtQcmVm
ZXRjaCk7CisgICAgICAgIHJldHVybiBuZXcgQ2FjaGVkUmVzb3VyY2UocmVxdWVzdCwgQ2FjaGVk
UmVzb3VyY2U6OkxpbmtQcmVmZXRjaCwgc2Vzc2lvbklEKTsKICAgICBjYXNlIENhY2hlZFJlc291
cmNlOjpMaW5rU3VicmVzb3VyY2U6Ci0gICAgICAgIHJldHVybiBuZXcgQ2FjaGVkUmVzb3VyY2Uo
cmVxdWVzdCwgQ2FjaGVkUmVzb3VyY2U6OkxpbmtTdWJyZXNvdXJjZSk7CisgICAgICAgIHJldHVy
biBuZXcgQ2FjaGVkUmVzb3VyY2UocmVxdWVzdCwgQ2FjaGVkUmVzb3VyY2U6OkxpbmtTdWJyZXNv
dXJjZSwgc2Vzc2lvbklEKTsKICNlbmRpZgogI2lmIEVOQUJMRShWSURFT19UUkFDSykKICAgICBj
YXNlIENhY2hlZFJlc291cmNlOjpUZXh0VHJhY2tSZXNvdXJjZToKLSAgICAgICAgcmV0dXJuIG5l
dyBDYWNoZWRUZXh0VHJhY2socmVxdWVzdCk7CisgICAgICAgIHJldHVybiBuZXcgQ2FjaGVkVGV4
dFRyYWNrKHJlcXVlc3QsIHNlc3Npb25JRCk7CiAjZW5kaWYKICAgICB9CiAgICAgQVNTRVJUX05P
VF9SRUFDSEVEKCk7CkBAIC0xNDcsNiArMTQ5LDE2IEBAIEZyYW1lKiBDYWNoZWRSZXNvdXJjZUxv
YWRlcjo6ZnJhbWUoKSBjb25zdAogICAgIHJldHVybiBtX2RvY3VtZW50TG9hZGVyID8gbV9kb2N1
bWVudExvYWRlci0+ZnJhbWUoKSA6IDA7CiB9CiAKK1Nlc3Npb25JRCBDYWNoZWRSZXNvdXJjZUxv
YWRlcjo6c2Vzc2lvbklEKCkgY29uc3QKK3sKKyAgICBTZXNzaW9uSUQgc2Vzc2lvbklEID0gU2Vz
c2lvbklEOjpkZWZhdWx0U2Vzc2lvbklEKCk7CisKKyAgICBpZiAoRnJhbWUqIGYgPSBmcmFtZSgp
KQorICAgICAgICBzZXNzaW9uSUQgPSBmLT5wYWdlKCktPnNlc3Npb25JRCgpOworCisgICAgcmV0
dXJuIHNlc3Npb25JRDsKK30KKwogQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkSW1hZ2U+IENh
Y2hlZFJlc291cmNlTG9hZGVyOjpyZXF1ZXN0SW1hZ2UoQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0JiBy
ZXF1ZXN0KQogewogICAgIGlmIChGcmFtZSogZnJhbWUgPSB0aGlzLT5mcmFtZSgpKSB7CkBAIC0x
ODcsNyArMTk5LDcgQEAgQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkQ1NTU3R5bGVTaGVldD4g
Q2FjaGVkUmVzb3VyY2VMb2FkZXI6OnJlcXVlc3RVc2VyQ1NTU3QKICAgICByZXF1ZXN0Lm11dGFi
bGVSZXNvdXJjZVJlcXVlc3QoKS5zZXRDYWNoZVBhcnRpdGlvbihkb2N1bWVudCgpLT50b3BPcmln
aW4oKS0+Y2FjaGVQYXJ0aXRpb24oKSk7CiAjZW5kaWYKIAotICAgIGlmIChDYWNoZWRSZXNvdXJj
ZSogZXhpc3RpbmcgPSBtZW1vcnlDYWNoZSgpLT5yZXNvdXJjZUZvclJlcXVlc3QocmVxdWVzdC5y
ZXNvdXJjZVJlcXVlc3QoKSkpIHsKKyAgICBpZiAoQ2FjaGVkUmVzb3VyY2UqIGV4aXN0aW5nID0g
bWVtb3J5Q2FjaGUoKS0+cmVzb3VyY2VGb3JSZXF1ZXN0KHJlcXVlc3QucmVzb3VyY2VSZXF1ZXN0
KCksIHNlc3Npb25JRCgpKSkgewogICAgICAgICBpZiAoZXhpc3RpbmctPnR5cGUoKSA9PSBDYWNo
ZWRSZXNvdXJjZTo6Q1NTU3R5bGVTaGVldCkKICAgICAgICAgICAgIHJldHVybiB0b0NhY2hlZENT
U1N0eWxlU2hlZXQoZXhpc3RpbmcpOwogICAgICAgICBtZW1vcnlDYWNoZSgpLT5yZW1vdmUoZXhp
c3RpbmcpOwpAQCAtMTk1LDcgKzIwNyw3IEBAIENhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZENT
U1N0eWxlU2hlZXQ+IENhY2hlZFJlc291cmNlTG9hZGVyOjpyZXF1ZXN0VXNlckNTU1N0CiAgICAg
aWYgKHVybC5zdHJpbmcoKSAhPSByZXF1ZXN0LnJlc291cmNlUmVxdWVzdCgpLnVybCgpKQogICAg
ICAgICByZXF1ZXN0Lm11dGFibGVSZXNvdXJjZVJlcXVlc3QoKS5zZXRVUkwodXJsKTsKIAotICAg
IENhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZENTU1N0eWxlU2hlZXQ+IHVzZXJTaGVldCA9IG5l
dyBDYWNoZWRDU1NTdHlsZVNoZWV0KHJlcXVlc3QucmVzb3VyY2VSZXF1ZXN0KCksIHJlcXVlc3Qu
Y2hhcnNldCgpKTsKKyAgICBDYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRDU1NTdHlsZVNoZWV0
PiB1c2VyU2hlZXQgPSBuZXcgQ2FjaGVkQ1NTU3R5bGVTaGVldChyZXF1ZXN0LnJlc291cmNlUmVx
dWVzdCgpLCByZXF1ZXN0LmNoYXJzZXQoKSwgc2Vzc2lvbklEKCkpOwogCiAgICAgbWVtb3J5Q2Fj
aGUoKS0+YWRkKHVzZXJTaGVldC5nZXQoKSk7CiAgICAgLy8gRklYTUU6IGxvYWRSZXNvdXJjZSBj
YWxscyBzZXRPd25pbmdDYWNoZWRSZXNvdXJjZUxvYWRlcigpIGlmIHRoZSByZXNvdXJjZSBjb3Vs
ZG4ndCBiZSBhZGRlZCB0byBjYWNoZS4gRG9lcyB0aGlzIGZ1bmN0aW9uIG5lZWQgdG8gY2FsbCBp
dCwgdG9vPwpAQCAtNDI4LDcgKzQ0MCw3IEBAIENhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZFJl
c291cmNlPiBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6cmVxdWVzdFJlc291cmNlKENhY2hlCiAgICAg
ICAgIHJlcXVlc3QubXV0YWJsZVJlc291cmNlUmVxdWVzdCgpLnNldENhY2hlUGFydGl0aW9uKGRv
Y3VtZW50KCktPnRvcE9yaWdpbigpLT5jYWNoZVBhcnRpdGlvbigpKTsKICNlbmRpZgogCi0gICAg
cmVzb3VyY2UgPSBtZW1vcnlDYWNoZSgpLT5yZXNvdXJjZUZvclJlcXVlc3QocmVxdWVzdC5yZXNv
dXJjZVJlcXVlc3QoKSk7CisgICAgcmVzb3VyY2UgPSBtZW1vcnlDYWNoZSgpLT5yZXNvdXJjZUZv
clJlcXVlc3QocmVxdWVzdC5yZXNvdXJjZVJlcXVlc3QoKSwgc2Vzc2lvbklEKCkpOwogCiAgICAg
Y29uc3QgUmV2YWxpZGF0aW9uUG9saWN5IHBvbGljeSA9IGRldGVybWluZVJldmFsaWRhdGlvblBv
bGljeSh0eXBlLCByZXF1ZXN0Lm11dGFibGVSZXNvdXJjZVJlcXVlc3QoKSwgcmVxdWVzdC5mb3JQ
cmVsb2FkKCksIHJlc291cmNlLmdldCgpLCByZXF1ZXN0LmRlZmVyKCkpOwogICAgIHN3aXRjaCAo
cG9saWN5KSB7CkBAIC00ODAsMTAgKzQ5MiwxMSBAQCBDYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNo
ZWRSZXNvdXJjZT4gQ2FjaGVkUmVzb3VyY2VMb2FkZXI6OnJldmFsaWRhdGVSZXNvdXJjZShjbwog
ICAgIEFTU0VSVCghbWVtb3J5Q2FjaGUoKS0+ZGlzYWJsZWQoKSk7CiAgICAgQVNTRVJUKHJlc291
cmNlLT5jYW5Vc2VDYWNoZVZhbGlkYXRvcigpKTsKICAgICBBU1NFUlQoIXJlc291cmNlLT5yZXNv
dXJjZVRvUmV2YWxpZGF0ZSgpKTsKLSAgICAKKyAgICBBU1NFUlQocmVzb3VyY2UtPnNlc3Npb25J
RCgpID09IHNlc3Npb25JRCgpKTsKKwogICAgIC8vIENvcHkgdGhlIFVSTCBvdXQgb2YgdGhlIHJl
c291cmNlIHRvIGJlIHJldmFsaWRhdGVkIGluIGNhc2UgaXQgZ2V0cyBkZWxldGVkIGJ5IHRoZSBy
ZW1vdmUoKSBjYWxsIGJlbG93LgogICAgIFN0cmluZyB1cmwgPSByZXNvdXJjZS0+dXJsKCk7Ci0g
ICAgQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkUmVzb3VyY2U+IG5ld1Jlc291cmNlID0gY3Jl
YXRlUmVzb3VyY2UocmVzb3VyY2UtPnR5cGUoKSwgcmVzb3VyY2UtPnJlc291cmNlUmVxdWVzdCgp
LCByZXNvdXJjZS0+ZW5jb2RpbmcoKSk7CisgICAgQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVk
UmVzb3VyY2U+IG5ld1Jlc291cmNlID0gY3JlYXRlUmVzb3VyY2UocmVzb3VyY2UtPnR5cGUoKSwg
cmVzb3VyY2UtPnJlc291cmNlUmVxdWVzdCgpLCByZXNvdXJjZS0+ZW5jb2RpbmcoKSwgcmVzb3Vy
Y2UtPnNlc3Npb25JRCgpKTsKICAgICAKICAgICBMT0coUmVzb3VyY2VMb2FkaW5nLCAiUmVzb3Vy
Y2UgJXAgY3JlYXRlZCB0byByZXZhbGlkYXRlICVwIiwgbmV3UmVzb3VyY2UuZ2V0KCksIHJlc291
cmNlKTsKICAgICBuZXdSZXNvdXJjZS0+c2V0UmVzb3VyY2VUb1JldmFsaWRhdGUocmVzb3VyY2Up
OwpAQCAtNTAwLDExICs1MTMsMTEgQEAgQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkUmVzb3Vy
Y2U+IENhY2hlZFJlc291cmNlTG9hZGVyOjpyZXZhbGlkYXRlUmVzb3VyY2UoY28KIAogQ2FjaGVk
UmVzb3VyY2VIYW5kbGU8Q2FjaGVkUmVzb3VyY2U+IENhY2hlZFJlc291cmNlTG9hZGVyOjpsb2Fk
UmVzb3VyY2UoQ2FjaGVkUmVzb3VyY2U6OlR5cGUgdHlwZSwgQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0
JiByZXF1ZXN0LCBjb25zdCBTdHJpbmcmIGNoYXJzZXQpCiB7Ci0gICAgQVNTRVJUKCFtZW1vcnlD
YWNoZSgpLT5yZXNvdXJjZUZvclJlcXVlc3QocmVxdWVzdC5yZXNvdXJjZVJlcXVlc3QoKSkpOwor
ICAgIEFTU0VSVCghbWVtb3J5Q2FjaGUoKS0+cmVzb3VyY2VGb3JSZXF1ZXN0KHJlcXVlc3QucmVz
b3VyY2VSZXF1ZXN0KCksIHNlc3Npb25JRCgpKSk7CiAKICAgICBMT0coUmVzb3VyY2VMb2FkaW5n
LCAiTG9hZGluZyBDYWNoZWRSZXNvdXJjZSBmb3IgJyVzJy4iLCByZXF1ZXN0LnJlc291cmNlUmVx
dWVzdCgpLnVybCgpLnN0cmluZ0NlbnRlckVsbGlwc2l6ZWRUb0xlbmd0aCgpLmxhdGluMSgpLmRh
dGEoKSk7CiAKLSAgICBDYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRSZXNvdXJjZT4gcmVzb3Vy
Y2UgPSBjcmVhdGVSZXNvdXJjZSh0eXBlLCByZXF1ZXN0Lm11dGFibGVSZXNvdXJjZVJlcXVlc3Qo
KSwgY2hhcnNldCk7CisgICAgQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkUmVzb3VyY2U+IHJl
c291cmNlID0gY3JlYXRlUmVzb3VyY2UodHlwZSwgcmVxdWVzdC5tdXRhYmxlUmVzb3VyY2VSZXF1
ZXN0KCksIGNoYXJzZXQsIHNlc3Npb25JRCgpKTsKIAogICAgIGlmICghbWVtb3J5Q2FjaGUoKS0+
YWRkKHJlc291cmNlLmdldCgpKSkKICAgICAgICAgcmVzb3VyY2UtPnNldE93bmluZ0NhY2hlZFJl
c291cmNlTG9hZGVyKHRoaXMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2Nh
Y2hlL0NhY2hlZFJlc291cmNlTG9hZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUv
Q2FjaGVkUmVzb3VyY2VMb2FkZXIuaAppbmRleCBhYWQ3ZTI1Li4wMWI2NDdjIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VMb2FkZXIuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VMb2FkZXIuaApAQCAt
MTExLDYgKzExMSw3IEBAIHB1YmxpYzoKICAgICBEb2N1bWVudCogZG9jdW1lbnQoKSBjb25zdCB7
IHJldHVybiBtX2RvY3VtZW50OyB9IC8vIENhbiBiZSBudWxsCiAgICAgdm9pZCBzZXREb2N1bWVu
dChEb2N1bWVudCogZG9jdW1lbnQpIHsgbV9kb2N1bWVudCA9IGRvY3VtZW50OyB9CiAgICAgdm9p
ZCBjbGVhckRvY3VtZW50TG9hZGVyKCkgeyBtX2RvY3VtZW50TG9hZGVyID0gMDsgfQorICAgIFNl
c3Npb25JRCBzZXNzaW9uSUQoKSBjb25zdDsKIAogICAgIHZvaWQgcmVtb3ZlQ2FjaGVkUmVzb3Vy
Y2UoQ2FjaGVkUmVzb3VyY2UqKSBjb25zdDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
bG9hZGVyL2NhY2hlL0NhY2hlZFNWR0RvY3VtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9jYWNoZS9DYWNoZWRTVkdEb2N1bWVudC5jcHAKaW5kZXggZGQ1YTQ3OC4uYTQ0ODA4NiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFNWR0RvY3VtZW50LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkU1ZHRG9jdW1lbnQuY3Bw
CkBAIC0zMCw4ICszMCw4IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotQ2FjaGVkU1ZHRG9j
dW1lbnQ6OkNhY2hlZFNWR0RvY3VtZW50KGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCkK
LSAgICA6IENhY2hlZFJlc291cmNlKHJlcXVlc3QsIFNWR0RvY3VtZW50UmVzb3VyY2UpCitDYWNo
ZWRTVkdEb2N1bWVudDo6Q2FjaGVkU1ZHRG9jdW1lbnQoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiBy
ZXF1ZXN0LCBTZXNzaW9uSUQgc2Vzc2lvbklEKQorICAgIDogQ2FjaGVkUmVzb3VyY2UocmVxdWVz
dCwgU1ZHRG9jdW1lbnRSZXNvdXJjZSwgc2Vzc2lvbklEKQogICAgICwgbV9kZWNvZGVyKFRleHRS
ZXNvdXJjZURlY29kZXI6OmNyZWF0ZSgiYXBwbGljYXRpb24veG1sIikpCiB7CiAgICAgc2V0QWNj
ZXB0KCJpbWFnZS9zdmcreG1sIik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
Y2FjaGUvQ2FjaGVkU1ZHRG9jdW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9D
YWNoZWRTVkdEb2N1bWVudC5oCmluZGV4IDZjMDhlMmUuLjdkNDZmYTQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRTVkdEb2N1bWVudC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRTVkdEb2N1bWVudC5oCkBAIC0zMiw3ICszMiw3
IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgQ2FjaGVkU1ZHRG9jdW1lbnQgZmluYWwg
OiBwdWJsaWMgQ2FjaGVkUmVzb3VyY2UgewogcHVibGljOgotICAgIGV4cGxpY2l0IENhY2hlZFNW
R0RvY3VtZW50KGNvbnN0IFJlc291cmNlUmVxdWVzdCYpOworICAgIGV4cGxpY2l0IENhY2hlZFNW
R0RvY3VtZW50KGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIFNlc3Npb25JRCk7CiAgICAgdmlydHVh
bCB+Q2FjaGVkU1ZHRG9jdW1lbnQoKTsKIAogICAgIFNWR0RvY3VtZW50KiBkb2N1bWVudCgpIGNv
bnN0IHsgcmV0dXJuIG1fZG9jdW1lbnQuZ2V0KCk7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9jYWNoZS9DYWNoZWRTY3JpcHQuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVy
L2NhY2hlL0NhY2hlZFNjcmlwdC5jcHAKaW5kZXggNDhmYWNkNy4uZWRjNjg1ZiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFNjcmlwdC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFNjcmlwdC5jcHAKQEAgLTM5LDggKzM5LDgg
QEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1DYWNoZWRTY3JpcHQ6OkNhY2hlZFNjcmlwdChj
b25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlc291cmNlUmVxdWVzdCwgY29uc3QgU3RyaW5nJiBjaGFy
c2V0KQotICAgIDogQ2FjaGVkUmVzb3VyY2UocmVzb3VyY2VSZXF1ZXN0LCBTY3JpcHQpCitDYWNo
ZWRTY3JpcHQ6OkNhY2hlZFNjcmlwdChjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlc291cmNlUmVx
dWVzdCwgY29uc3QgU3RyaW5nJiBjaGFyc2V0LCBTZXNzaW9uSUQgc2Vzc2lvbklEKQorICAgIDog
Q2FjaGVkUmVzb3VyY2UocmVzb3VyY2VSZXF1ZXN0LCBTY3JpcHQsIHNlc3Npb25JRCkKICAgICAs
IG1fZGVjb2RlcihUZXh0UmVzb3VyY2VEZWNvZGVyOjpjcmVhdGUoQVNDSUlMaXRlcmFsKCJhcHBs
aWNhdGlvbi9qYXZhc2NyaXB0IiksIGNoYXJzZXQpKQogewogICAgIC8vIEl0J3MgamF2YXNjcmlw
dCB3ZSB3YW50LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hl
ZFNjcmlwdC5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFNjcmlwdC5oCmlu
ZGV4IGQ0MzhiMjcuLmM5YzczZDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9j
YWNoZS9DYWNoZWRTY3JpcHQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2Fj
aGVkU2NyaXB0LmgKQEAgLTM1LDcgKzM1LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiAgICAg
Y2xhc3MgQ2FjaGVkU2NyaXB0IGZpbmFsIDogcHVibGljIENhY2hlZFJlc291cmNlIHsKICAgICBw
dWJsaWM6Ci0gICAgICAgIENhY2hlZFNjcmlwdChjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBjb25z
dCBTdHJpbmcmIGNoYXJzZXQpOworICAgICAgICBDYWNoZWRTY3JpcHQoY29uc3QgUmVzb3VyY2VS
ZXF1ZXN0JiwgY29uc3QgU3RyaW5nJiBjaGFyc2V0LCBTZXNzaW9uSUQpOwogICAgICAgICB2aXJ0
dWFsIH5DYWNoZWRTY3JpcHQoKTsKIAogICAgICAgICBjb25zdCBTdHJpbmcmIHNjcmlwdCgpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFRleHRUcmFjay5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkVGV4dFRyYWNrLmNwcAppbmRl
eCA5NDk3NGE1Li4yMDUwNTQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2Fj
aGUvQ2FjaGVkVGV4dFRyYWNrLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUv
Q2FjaGVkVGV4dFRyYWNrLmNwcApAQCAtMzksOCArMzksOCBAQAogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKLUNhY2hlZFRleHRUcmFjazo6Q2FjaGVkVGV4dFRyYWNrKGNvbnN0IFJlc291cmNlUmVx
dWVzdCYgcmVzb3VyY2VSZXF1ZXN0KQotICAgIDogQ2FjaGVkUmVzb3VyY2UocmVzb3VyY2VSZXF1
ZXN0LCBUZXh0VHJhY2tSZXNvdXJjZSkKK0NhY2hlZFRleHRUcmFjazo6Q2FjaGVkVGV4dFRyYWNr
KGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVzb3VyY2VSZXF1ZXN0LCBTZXNzaW9uSUQgc2Vzc2lv
bklEKQorICAgIDogQ2FjaGVkUmVzb3VyY2UocmVzb3VyY2VSZXF1ZXN0LCBUZXh0VHJhY2tSZXNv
dXJjZSwgc2Vzc2lvbklEKQogewogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvY2FjaGUvQ2FjaGVkVGV4dFRyYWNrLmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUv
Q2FjaGVkVGV4dFRyYWNrLmgKaW5kZXggYjNlZWE3YS4uNzkzYWM5OSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFRleHRUcmFjay5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRUZXh0VHJhY2suaApAQCAtMzUsNyArMzUsNyBAQCBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIENhY2hlZFRleHRUcmFjayBmaW5hbCA6IHB1Ymxp
YyBDYWNoZWRSZXNvdXJjZSB7CiBwdWJsaWM6Ci0gICAgQ2FjaGVkVGV4dFRyYWNrKGNvbnN0IFJl
c291cmNlUmVxdWVzdCYpOworICAgIENhY2hlZFRleHRUcmFjayhjb25zdCBSZXNvdXJjZVJlcXVl
c3QmLCBTZXNzaW9uSUQpOwogICAgIHZpcnR1YWwgfkNhY2hlZFRleHRUcmFjaygpOwogCiBwcml2
YXRlOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFhTTFN0
eWxlU2hlZXQuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFhTTFN0eWxl
U2hlZXQuY3BwCmluZGV4IGViNmM4ZTEuLjdhNDlhYzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9jYWNoZS9DYWNoZWRYU0xTdHlsZVNoZWV0LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkWFNMU3R5bGVTaGVldC5jcHAKQEAgLTM3LDggKzM3LDgg
QEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiAjaWYgRU5BQkxFKFhTTFQpCiAKLUNhY2hlZFhTTFN0
eWxlU2hlZXQ6OkNhY2hlZFhTTFN0eWxlU2hlZXQoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXNv
dXJjZVJlcXVlc3QpCi0gICAgOiBDYWNoZWRSZXNvdXJjZShyZXNvdXJjZVJlcXVlc3QsIFhTTFN0
eWxlU2hlZXQpCitDYWNoZWRYU0xTdHlsZVNoZWV0OjpDYWNoZWRYU0xTdHlsZVNoZWV0KGNvbnN0
IFJlc291cmNlUmVxdWVzdCYgcmVzb3VyY2VSZXF1ZXN0LCBTZXNzaW9uSUQgc2Vzc2lvbklEKQor
ICAgIDogQ2FjaGVkUmVzb3VyY2UocmVzb3VyY2VSZXF1ZXN0LCBYU0xTdHlsZVNoZWV0LCBzZXNz
aW9uSUQpCiAgICAgLCBtX2RlY29kZXIoVGV4dFJlc291cmNlRGVjb2Rlcjo6Y3JlYXRlKCJ0ZXh0
L3hzbCIpKQogewogICAgIC8vIEl0J3MgWE1MIHdlIHdhbnQuCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkWFNMU3R5bGVTaGVldC5oIGIvU291cmNlL1dlYkNv
cmUvbG9hZGVyL2NhY2hlL0NhY2hlZFhTTFN0eWxlU2hlZXQuaAppbmRleCAwY2JmYjY1Li4zNjk5
MjNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkWFNMU3R5
bGVTaGVldC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRYU0xTdHls
ZVNoZWV0LmgKQEAgLTM3LDcgKzM3LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogI2lmIEVOQUJM
RShYU0xUKQogICAgIGNsYXNzIENhY2hlZFhTTFN0eWxlU2hlZXQgZmluYWwgOiBwdWJsaWMgQ2Fj
aGVkUmVzb3VyY2UgewogICAgIHB1YmxpYzoKLSAgICAgICAgQ2FjaGVkWFNMU3R5bGVTaGVldChj
b25zdCBSZXNvdXJjZVJlcXVlc3QmKTsKKyAgICAgICAgQ2FjaGVkWFNMU3R5bGVTaGVldChjb25z
dCBSZXNvdXJjZVJlcXVlc3QmLCBTZXNzaW9uSUQpOwogCiAgICAgICAgIGNvbnN0IFN0cmluZyYg
c2hlZXQoKSBjb25zdCB7IHJldHVybiBtX3NoZWV0OyB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9jYWNoZS9NZW1vcnlDYWNoZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvY2FjaGUvTWVtb3J5Q2FjaGUuY3BwCmluZGV4IGNjNmEyMjUuLjUxY2IwYjUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9NZW1vcnlDYWNoZS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL01lbW9yeUNhY2hlLmNwcApAQCAtODAsNiArODAsMTcg
QEAgTWVtb3J5Q2FjaGU6Ok1lbW9yeUNhY2hlKCkKIHsKIH0KIAorTWVtb3J5Q2FjaGU6OkNhY2hl
ZFJlc291cmNlTWFwJiBNZW1vcnlDYWNoZTo6Z2V0U2Vzc2lvbk1hcChTZXNzaW9uSUQgc2Vzc2lv
bklEKQoreworICAgIEFTU0VSVChzZXNzaW9uSUQuaXNWYWxpZCgpKTsKKyAgICBDYWNoZWRSZXNv
dXJjZU1hcCogbWFwID0gbV9zZXNzaW9uUmVzb3VyY2VzLmdldChzZXNzaW9uSUQpOworICAgIGlm
ICghbWFwKSB7CisgICAgICAgIG1fc2Vzc2lvblJlc291cmNlcy5zZXQoc2Vzc2lvbklELCBzdGQ6
Om1ha2VfdW5pcXVlPENhY2hlZFJlc291cmNlTWFwPigpKTsKKyAgICAgICAgbWFwID0gbV9zZXNz
aW9uUmVzb3VyY2VzLmdldChzZXNzaW9uSUQpOworICAgIH0KKyAgICByZXR1cm4gKm1hcDsKK30K
KwogVVJMIE1lbW9yeUNhY2hlOjpyZW1vdmVGcmFnbWVudElkZW50aWZpZXJJZk5lZWRlZChjb25z
dCBVUkwmIG9yaWdpbmFsVVJMKQogewogICAgIGlmICghb3JpZ2luYWxVUkwuaGFzRnJhZ21lbnRJ
ZGVudGlmaWVyKCkpCkBAIC0xMDEsMTUgKzExMiwxNiBAQCBib29sIE1lbW9yeUNhY2hlOjphZGQo
Q2FjaGVkUmVzb3VyY2UqIHJlc291cmNlKQogCiAgICAgQVNTRVJUKFdURjo6aXNNYWluVGhyZWFk
KCkpOwogCisgICAgQ2FjaGVkUmVzb3VyY2VNYXAmIHJlc291cmNlcyA9IGdldFNlc3Npb25NYXAo
cmVzb3VyY2UtPnNlc3Npb25JRCgpKTsKICNpZiBFTkFCTEUoQ0FDSEVfUEFSVElUSU9OSU5HKQot
ICAgIENhY2hlZFJlc291cmNlSXRlbSogb3JpZ2luTWFwID0gbV9yZXNvdXJjZXMuZ2V0KHJlc291
cmNlLT51cmwoKSk7CisgICAgQ2FjaGVkUmVzb3VyY2VJdGVtKiBvcmlnaW5NYXAgPSByZXNvdXJj
ZXMuZ2V0KHJlc291cmNlLT51cmwoKSk7CiAgICAgaWYgKCFvcmlnaW5NYXApIHsKICAgICAgICAg
b3JpZ2luTWFwID0gbmV3IENhY2hlZFJlc291cmNlSXRlbTsKLSAgICAgICAgbV9yZXNvdXJjZXMu
c2V0KHJlc291cmNlLT51cmwoKSwgYWRvcHRQdHIob3JpZ2luTWFwKSk7CisgICAgICAgIHJlc291
cmNlcy5zZXQocmVzb3VyY2UtPnVybCgpLCBhZG9wdFB0cihvcmlnaW5NYXApKTsKICAgICB9CiAg
ICAgb3JpZ2luTWFwLT5zZXQocmVzb3VyY2UtPmNhY2hlUGFydGl0aW9uKCksIHJlc291cmNlKTsK
ICNlbHNlCi0gICAgbV9yZXNvdXJjZXMuc2V0KHJlc291cmNlLT51cmwoKSwgcmVzb3VyY2UpOwor
ICAgIHJlc291cmNlcy5zZXQocmVzb3VyY2UtPnVybCgpLCByZXNvdXJjZSk7CiAjZW5kaWYKICAg
ICByZXNvdXJjZS0+c2V0SW5DYWNoZSh0cnVlKTsKICAgICAKQEAgLTEzNCwxNyArMTQ2LDE4IEBA
IHZvaWQgTWVtb3J5Q2FjaGU6OnJldmFsaWRhdGlvblN1Y2NlZWRlZChDYWNoZWRSZXNvdXJjZSog
cmV2YWxpZGF0aW5nUmVzb3VyY2UsIGNvCiAKICAgICBldmljdChyZXZhbGlkYXRpbmdSZXNvdXJj
ZSk7CiAKKyAgICBDYWNoZWRSZXNvdXJjZU1hcCYgcmVzb3VyY2VzID0gZ2V0U2Vzc2lvbk1hcChy
ZXNvdXJjZS0+c2Vzc2lvbklEKCkpOwogI2lmIEVOQUJMRShDQUNIRV9QQVJUSVRJT05JTkcpCi0g
ICAgQVNTRVJUKCFtX3Jlc291cmNlcy5nZXQocmVzb3VyY2UtPnVybCgpKSB8fCAhbV9yZXNvdXJj
ZXMuZ2V0KHJlc291cmNlLT51cmwoKSktPmdldChyZXNvdXJjZS0+Y2FjaGVQYXJ0aXRpb24oKSkp
OwotICAgIENhY2hlZFJlc291cmNlSXRlbSogb3JpZ2luTWFwID0gbV9yZXNvdXJjZXMuZ2V0KHJl
c291cmNlLT51cmwoKSk7CisgICAgQVNTRVJUKCFyZXNvdXJjZXMuZ2V0KHJlc291cmNlLT51cmwo
KSkgfHwgIXJlc291cmNlcy5nZXQocmVzb3VyY2UtPnVybCgpKS0+Z2V0KHJlc291cmNlLT5jYWNo
ZVBhcnRpdGlvbigpKSk7CisgICAgQ2FjaGVkUmVzb3VyY2VJdGVtKiBvcmlnaW5NYXAgPSByZXNv
dXJjZXMuZ2V0KHJlc291cmNlLT51cmwoKSk7CiAgICAgaWYgKCFvcmlnaW5NYXApIHsKICAgICAg
ICAgb3JpZ2luTWFwID0gbmV3IENhY2hlZFJlc291cmNlSXRlbTsKLSAgICAgICAgbV9yZXNvdXJj
ZXMuc2V0KHJlc291cmNlLT51cmwoKSwgYWRvcHRQdHIob3JpZ2luTWFwKSk7CisgICAgICAgIHJl
c291cmNlcy5zZXQocmVzb3VyY2UtPnVybCgpLCBhZG9wdFB0cihvcmlnaW5NYXApKTsKICAgICB9
CiAgICAgb3JpZ2luTWFwLT5zZXQocmVzb3VyY2UtPmNhY2hlUGFydGl0aW9uKCksIHJlc291cmNl
KTsKICNlbHNlCi0gICAgQVNTRVJUKCFtX3Jlc291cmNlcy5nZXQocmVzb3VyY2UtPnVybCgpKSk7
Ci0gICAgbV9yZXNvdXJjZXMuc2V0KHJlc291cmNlLT51cmwoKSwgcmVzb3VyY2UpOworICAgIEFT
U0VSVCghcmVzb3VyY2VzLmdldChyZXNvdXJjZS0+dXJsKCkpKTsKKyAgICByZXNvdXJjZXMuc2V0
KHJlc291cmNlLT51cmwoKSwgcmVzb3VyY2UpOwogI2VuZGlmCiAgICAgcmVzb3VyY2UtPnNldElu
Q2FjaGUodHJ1ZSk7CiAgICAgcmVzb3VyY2UtPnVwZGF0ZVJlc3BvbnNlQWZ0ZXJSZXZhbGlkYXRp
b24ocmVzcG9uc2UpOwpAQCAtMTY5LDIyICsxODIsMjggQEAgdm9pZCBNZW1vcnlDYWNoZTo6cmV2
YWxpZGF0aW9uRmFpbGVkKENhY2hlZFJlc291cmNlKiByZXZhbGlkYXRpbmdSZXNvdXJjZSkKICAg
ICByZXZhbGlkYXRpbmdSZXNvdXJjZS0+Y2xlYXJSZXNvdXJjZVRvUmV2YWxpZGF0ZSgpOwogfQog
Ci1DYWNoZWRSZXNvdXJjZSogTWVtb3J5Q2FjaGU6OnJlc291cmNlRm9yVVJMKGNvbnN0IFVSTCYg
cmVzb3VyY2VVUkwpCitDYWNoZWRSZXNvdXJjZSogTWVtb3J5Q2FjaGU6OnJlc291cmNlRm9yVVJM
KGNvbnN0IFVSTCYgcmVzb3VyY2VVUkwsIFNlc3Npb25JRCBzZXNzaW9uSUQpCiB7Ci0gICAgcmV0
dXJuIHJlc291cmNlRm9yUmVxdWVzdChSZXNvdXJjZVJlcXVlc3QocmVzb3VyY2VVUkwpKTsKKyAg
ICByZXR1cm4gcmVzb3VyY2VGb3JSZXF1ZXN0KFJlc291cmNlUmVxdWVzdChyZXNvdXJjZVVSTCks
IHNlc3Npb25JRCk7CiB9CiAKLUNhY2hlZFJlc291cmNlKiBNZW1vcnlDYWNoZTo6cmVzb3VyY2VG
b3JSZXF1ZXN0KGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCkKK0NhY2hlZFJlc291cmNl
KiBNZW1vcnlDYWNoZTo6cmVzb3VyY2VGb3JSZXF1ZXN0KGNvbnN0IFJlc291cmNlUmVxdWVzdCYg
cmVxdWVzdCwgU2Vzc2lvbklEIHNlc3Npb25JRCkKK3sKKyAgICByZXR1cm4gcmVzb3VyY2VGb3JS
ZXF1ZXN0SW1wbChyZXF1ZXN0LCBnZXRTZXNzaW9uTWFwKHNlc3Npb25JRCkpOworfQorCitDYWNo
ZWRSZXNvdXJjZSogTWVtb3J5Q2FjaGU6OnJlc291cmNlRm9yUmVxdWVzdEltcGwoY29uc3QgUmVz
b3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBDYWNoZWRSZXNvdXJjZU1hcCYgcmVzb3VyY2VzKQogewog
ICAgIEFTU0VSVChXVEY6OmlzTWFpblRocmVhZCgpKTsKICAgICBVUkwgdXJsID0gcmVtb3ZlRnJh
Z21lbnRJZGVudGlmaWVySWZOZWVkZWQocmVxdWVzdC51cmwoKSk7CisKICNpZiBFTkFCTEUoQ0FD
SEVfUEFSVElUSU9OSU5HKQotICAgIENhY2hlZFJlc291cmNlSXRlbSogaXRlbSA9IG1fcmVzb3Vy
Y2VzLmdldCh1cmwpOworICAgIENhY2hlZFJlc291cmNlSXRlbSogaXRlbSA9IHJlc291cmNlcy5n
ZXQodXJsKTsKICAgICBDYWNoZWRSZXNvdXJjZSogcmVzb3VyY2UgPSAwOwogICAgIGlmIChpdGVt
KQogICAgICAgICByZXNvdXJjZSA9IGl0ZW0tPmdldChyZXF1ZXN0LmNhY2hlUGFydGl0aW9uKCkp
OwogI2Vsc2UKLSAgICBDYWNoZWRSZXNvdXJjZSogcmVzb3VyY2UgPSBtX3Jlc291cmNlcy5nZXQo
dXJsKTsKKyAgICBDYWNoZWRSZXNvdXJjZSogcmVzb3VyY2UgPSByZXNvdXJjZXMuZ2V0KHVybCk7
CiAjZW5kaWYKICAgICBib29sIHdhc1B1cmdlYWJsZSA9IE1lbW9yeUNhY2hlOjpzaG91bGRNYWtl
UmVzb3VyY2VQdXJnZWFibGVPbkV2aWN0aW9uKCkgJiYgcmVzb3VyY2UgJiYgcmVzb3VyY2UtPmlz
UHVyZ2VhYmxlKCk7CiAgICAgaWYgKHJlc291cmNlICYmICFyZXNvdXJjZS0+bWFrZVB1cmdlYWJs
ZShmYWxzZSkpIHsKQEAgLTIyNSwxMyArMjQ0LDE0IEBAIHN0YXRpYyBDYWNoZWRJbWFnZUNsaWVu
dCYgZHVtbXlDYWNoZWRJbWFnZUNsaWVudCgpCiBib29sIE1lbW9yeUNhY2hlOjphZGRJbWFnZVRv
Q2FjaGUoTmF0aXZlSW1hZ2VQdHIgaW1hZ2UsIGNvbnN0IFVSTCYgdXJsLCBjb25zdCBTdHJpbmcm
IGNhY2hlUGFydGl0aW9uKQogewogICAgIEFTU0VSVChpbWFnZSk7CisgICAgU2Vzc2lvbklEIHNl
c3Npb25JRCA9IFNlc3Npb25JRDo6ZGVmYXVsdFNlc3Npb25JRCgpOwogICAgIHJlbW92ZUltYWdl
RnJvbUNhY2hlKHVybCwgY2FjaGVQYXJ0aXRpb24pOyAvLyBSZW1vdmUgY2FjaGUgZW50cnkgaWYg
aXQgYWxyZWFkeSBleGlzdHMuCiAKICAgICBSZWZQdHI8Qml0bWFwSW1hZ2U+IGJpdG1hcEltYWdl
ID0gQml0bWFwSW1hZ2U6OmNyZWF0ZShpbWFnZSwgbnVsbHB0cik7CiAgICAgaWYgKCFiaXRtYXBJ
bWFnZSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgc3RkOjp1bmlxdWVfcHRyPENhY2hl
ZEltYWdlPiBjYWNoZWRJbWFnZSA9IHN0ZDo6bWFrZV91bmlxdWU8Q2FjaGVkSW1hZ2U+KHVybCwg
Yml0bWFwSW1hZ2UuZ2V0KCksIENhY2hlZEltYWdlOjpNYW51YWxseUNhY2hlZCk7CisgICAgc3Rk
Ojp1bmlxdWVfcHRyPENhY2hlZEltYWdlPiBjYWNoZWRJbWFnZSA9IHN0ZDo6bWFrZV91bmlxdWU8
Q2FjaGVkSW1hZ2U+KHVybCwgYml0bWFwSW1hZ2UuZ2V0KCksIENhY2hlZEltYWdlOjpNYW51YWxs
eUNhY2hlZCwgc2Vzc2lvbklEKTsKIAogICAgIC8vIEFjdHVhbCByZWxlYXNlIG9mIHRoZSBDR0lt
YWdlUmVmIGlzIGRvbmUgaW4gQml0bWFwSW1hZ2UuCiAgICAgQ0ZSZXRhaW4oaW1hZ2UpOwpAQCAt
MjQwLDIxICsyNjAsMjEgQEAgYm9vbCBNZW1vcnlDYWNoZTo6YWRkSW1hZ2VUb0NhY2hlKE5hdGl2
ZUltYWdlUHRyIGltYWdlLCBjb25zdCBVUkwmIHVybCwgY29uc3QgU3QKICNpZiBFTkFCTEUoQ0FD
SEVfUEFSVElUSU9OSU5HKQogICAgIGNhY2hlZEltYWdlLT5yZXNvdXJjZVJlcXVlc3QoKS5zZXRD
YWNoZVBhcnRpdGlvbihjYWNoZVBhcnRpdGlvbik7CiAjZW5kaWYKLSAgICBhZGQoY2FjaGVkSW1h
Z2UucmVsZWFzZSgpKTsKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAogdm9pZCBNZW1vcnlDYWNoZTo6
cmVtb3ZlSW1hZ2VGcm9tQ2FjaGUoY29uc3QgVVJMJiB1cmwsIGNvbnN0IFN0cmluZyYgY2FjaGVQ
YXJ0aXRpb24pCiB7CisgICAgQ2FjaGVkUmVzb3VyY2VNYXAmIHJlc291cmNlcyA9IGdldFNlc3Np
b25NYXAoU2Vzc2lvbklEOjpkZWZhdWx0U2Vzc2lvbklEKCkpOwogI2lmIEVOQUJMRShDQUNIRV9Q
QVJUSVRJT05JTkcpCiAgICAgQ2FjaGVkUmVzb3VyY2UqIHJlc291cmNlOwotICAgIGlmIChDYWNo
ZWRSZXNvdXJjZUl0ZW0qIGl0ZW0gPSBtX3Jlc291cmNlcy5nZXQodXJsKSkKKyAgICBpZiAoQ2Fj
aGVkUmVzb3VyY2VJdGVtKiBpdGVtID0gcmVzb3VyY2VzLmdldCh1cmwpKQogICAgICAgICByZXNv
dXJjZSA9IGl0ZW0tPmdldChSZXNvdXJjZVJlcXVlc3Q6OnBhcnRpdGlvbk5hbWUoY2FjaGVQYXJ0
aXRpb24pKTsKICAgICBlbHNlCiAgICAgICAgIHJlc291cmNlID0gbnVsbHB0cjsKICNlbHNlCiAg
ICAgVU5VU0VEX1BBUkFNKGNhY2hlUGFydGl0aW9uKTsKLSAgICBDYWNoZWRSZXNvdXJjZSogcmVz
b3VyY2UgPSBtX3Jlc291cmNlcy5nZXQodXJsKTsKKyAgICBDYWNoZWRSZXNvdXJjZSogcmVzb3Vy
Y2UgPSByZXNvdXJjZXMuZ2V0KHVybCk7CiAjZW5kaWYKICAgICBpZiAoIXJlc291cmNlKQogICAg
ICAgICByZXR1cm47CkBAIC01MjIsMTcgKzU0MiwxOCBAQCB2b2lkIE1lbW9yeUNhY2hlOjpldmlj
dChDYWNoZWRSZXNvdXJjZSogcmVzb3VyY2UpCiAgICAgTE9HKFJlc291cmNlTG9hZGluZywgIkV2
aWN0aW5nIHJlc291cmNlICVwIGZvciAnJXMnIGZyb20gY2FjaGUiLCByZXNvdXJjZSwgcmVzb3Vy
Y2UtPnVybCgpLnN0cmluZygpLmxhdGluMSgpLmRhdGEoKSk7CiAgICAgLy8gVGhlIHJlc291cmNl
IG1heSBoYXZlIGFscmVhZHkgYmVlbiByZW1vdmVkIGJ5IHNvbWVvbmUgb3RoZXIgdGhhbiBvdXIg
Y2FsbGVyLAogICAgIC8vIHdobyBuZWVkZWQgYSBmcmVzaCBjb3B5IGZvciBhIHJlbG9hZC4gU2Vl
IDxodHRwOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjQ3OSNjNj4uCisgICAg
Q2FjaGVkUmVzb3VyY2VNYXAmIHJlc291cmNlcyA9IGdldFNlc3Npb25NYXAocmVzb3VyY2UtPnNl
c3Npb25JRCgpKTsKICAgICBpZiAocmVzb3VyY2UtPmluQ2FjaGUoKSkgewogICAgICAgICAvLyBS
ZW1vdmUgZnJvbSB0aGUgcmVzb3VyY2UgbWFwLgogI2lmIEVOQUJMRShDQUNIRV9QQVJUSVRJT05J
TkcpCi0gICAgICAgIENhY2hlZFJlc291cmNlSXRlbSogaXRlbSA9IG1fcmVzb3VyY2VzLmdldChy
ZXNvdXJjZS0+dXJsKCkpOworICAgICAgICBDYWNoZWRSZXNvdXJjZUl0ZW0qIGl0ZW0gPSByZXNv
dXJjZXMuZ2V0KHJlc291cmNlLT51cmwoKSk7CiAgICAgICAgIGlmIChpdGVtKSB7CiAgICAgICAg
ICAgICBpdGVtLT5yZW1vdmUocmVzb3VyY2UtPmNhY2hlUGFydGl0aW9uKCkpOwogICAgICAgICAg
ICAgaWYgKCFpdGVtLT5zaXplKCkpCi0gICAgICAgICAgICAgICAgbV9yZXNvdXJjZXMucmVtb3Zl
KHJlc291cmNlLT51cmwoKSk7CisgICAgICAgICAgICAgICAgcmVzb3VyY2VzLnJlbW92ZShyZXNv
dXJjZS0+dXJsKCkpOwogICAgICAgICB9CiAjZWxzZQotICAgICAgICBtX3Jlc291cmNlcy5yZW1v
dmUocmVzb3VyY2UtPnVybCgpKTsKKyAgICAgICAgcmVzb3VyY2VzLnJlbW92ZShyZXNvdXJjZS0+
dXJsKCkpOwogI2VuZGlmCiAgICAgICAgIHJlc291cmNlLT5zZXRJbkNhY2hlKGZhbHNlKTsKIApA
QCAtNTQ3LDkgKzU2OCw5IEBAIHZvaWQgTWVtb3J5Q2FjaGU6OmV2aWN0KENhY2hlZFJlc291cmNl
KiByZXNvdXJjZSkKICAgICAgICAgICAgIGFkanVzdFNpemUocmVzb3VyY2UtPmhhc0NsaWVudHMo
KSwgLXN0YXRpY19jYXN0PGludD4ocmVzb3VyY2UtPnNpemUoKSkpOwogICAgIH0gZWxzZQogI2lm
IEVOQUJMRShDQUNIRV9QQVJUSVRJT05JTkcpCi0gICAgICAgIEFTU0VSVCghbV9yZXNvdXJjZXMu
Z2V0KHJlc291cmNlLT51cmwoKSkgfHwgbV9yZXNvdXJjZXMuZ2V0KHJlc291cmNlLT51cmwoKSkt
PmdldChyZXNvdXJjZS0+Y2FjaGVQYXJ0aXRpb24oKSkgIT0gcmVzb3VyY2UpOworICAgICAgICBB
U1NFUlQoIXJlc291cmNlcy5nZXQocmVzb3VyY2UtPnVybCgpKSB8fCByZXNvdXJjZXMuZ2V0KHJl
c291cmNlLT51cmwoKSktPmdldChyZXNvdXJjZS0+Y2FjaGVQYXJ0aXRpb24oKSkgIT0gcmVzb3Vy
Y2UpOwogI2Vsc2UKLSAgICAgICAgQVNTRVJUKG1fcmVzb3VyY2VzLmdldChyZXNvdXJjZS0+dXJs
KCkpICE9IHJlc291cmNlKTsKKyAgICAgICAgQVNTRVJUKHJlc291cmNlcy5nZXQocmVzb3VyY2Ut
PnVybCgpKSAhPSByZXNvdXJjZSk7CiAjZW5kaWYKIAogICAgIHJlc291cmNlLT5kZWxldGVJZlBv
c3NpYmxlKCk7CkBAIC02NjksMzEgKzY5MCwzMyBAQCB2b2lkIE1lbW9yeUNhY2hlOjpyZW1vdmVS
ZXNvdXJjZXNXaXRoT3JpZ2luKFNlY3VyaXR5T3JpZ2luKiBvcmlnaW4pCiB7CiAgICAgVmVjdG9y
PENhY2hlZFJlc291cmNlKj4gcmVzb3VyY2VzV2l0aE9yaWdpbjsKIAotICAgIENhY2hlZFJlc291
cmNlTWFwOjppdGVyYXRvciBlID0gbV9yZXNvdXJjZXMuZW5kKCk7CisgICAgZm9yIChhdXRvJiBy
ZXNvdXJjZXMgOiBtX3Nlc3Npb25SZXNvdXJjZXMpIHsKKyAgICAgICAgQ2FjaGVkUmVzb3VyY2VN
YXA6Oml0ZXJhdG9yIGUgPSByZXNvdXJjZXMudmFsdWUtPmVuZCgpOwogI2lmIEVOQUJMRShDQUNI
RV9QQVJUSVRJT05JTkcpCi0gICAgU3RyaW5nIG9yaWdpblBhcnRpdGlvbiA9IFJlc291cmNlUmVx
dWVzdDo6cGFydGl0aW9uTmFtZShvcmlnaW4tPmhvc3QoKSk7CisgICAgICAgIFN0cmluZyBvcmln
aW5QYXJ0aXRpb24gPSBSZXNvdXJjZVJlcXVlc3Q6OnBhcnRpdGlvbk5hbWUob3JpZ2luLT5ob3N0
KCkpOwogI2VuZGlmCiAKLSAgICBmb3IgKENhY2hlZFJlc291cmNlTWFwOjppdGVyYXRvciBpdCA9
IG1fcmVzb3VyY2VzLmJlZ2luKCk7IGl0ICE9IGU7ICsraXQpIHsKKyAgICAgICAgZm9yIChDYWNo
ZWRSZXNvdXJjZU1hcDo6aXRlcmF0b3IgaXQgPSByZXNvdXJjZXMudmFsdWUtPmJlZ2luKCk7IGl0
ICE9IGU7ICsraXQpIHsKICNpZiBFTkFCTEUoQ0FDSEVfUEFSVElUSU9OSU5HKQotICAgICAgICBm
b3IgKENhY2hlZFJlc291cmNlSXRlbTo6aXRlcmF0b3IgaXRlbUl0ZXJhdG9yID0gaXQtPnZhbHVl
LT5iZWdpbigpOyBpdGVtSXRlcmF0b3IgIT0gaXQtPnZhbHVlLT5lbmQoKTsgKytpdGVtSXRlcmF0
b3IpIHsKLSAgICAgICAgICAgIENhY2hlZFJlc291cmNlKiByZXNvdXJjZSA9IGl0ZW1JdGVyYXRv
ci0+dmFsdWU7Ci0gICAgICAgICAgICBTdHJpbmcgcGFydGl0aW9uID0gaXRlbUl0ZXJhdG9yLT5r
ZXk7Ci0gICAgICAgICAgICBpZiAocGFydGl0aW9uID09IG9yaWdpblBhcnRpdGlvbikgewotICAg
ICAgICAgICAgICAgIHJlc291cmNlc1dpdGhPcmlnaW4uYXBwZW5kKHJlc291cmNlKTsKLSAgICAg
ICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGZvciAoQ2Fj
aGVkUmVzb3VyY2VJdGVtOjppdGVyYXRvciBpdGVtSXRlcmF0b3IgPSBpdC0+dmFsdWUtPmJlZ2lu
KCk7IGl0ZW1JdGVyYXRvciAhPSBpdC0+dmFsdWUtPmVuZCgpOyArK2l0ZW1JdGVyYXRvcikgewor
ICAgICAgICAgICAgICAgIENhY2hlZFJlc291cmNlKiByZXNvdXJjZSA9IGl0ZW1JdGVyYXRvci0+
dmFsdWU7CisgICAgICAgICAgICAgICAgU3RyaW5nIHBhcnRpdGlvbiA9IGl0ZW1JdGVyYXRvci0+
a2V5OworICAgICAgICAgICAgICAgIGlmIChwYXJ0aXRpb24gPT0gb3JpZ2luUGFydGl0aW9uKSB7
CisgICAgICAgICAgICAgICAgICAgIHJlc291cmNlc1dpdGhPcmlnaW4uYXBwZW5kKHJlc291cmNl
KTsKKyAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICAgICAgfQogI2Vs
c2UKLSAgICAgICAgICAgIENhY2hlZFJlc291cmNlKiByZXNvdXJjZSA9IGl0LT52YWx1ZTsKKyAg
ICAgICAgICAgICAgICBDYWNoZWRSZXNvdXJjZSogcmVzb3VyY2UgPSBpdC0+dmFsdWU7CiAjZW5k
aWYKLSAgICAgICAgICAgIFJlZlB0cjxTZWN1cml0eU9yaWdpbj4gcmVzb3VyY2VPcmlnaW4gPSBT
ZWN1cml0eU9yaWdpbjo6Y3JlYXRlRnJvbVN0cmluZyhyZXNvdXJjZS0+dXJsKCkpOwotICAgICAg
ICAgICAgaWYgKCFyZXNvdXJjZU9yaWdpbikKLSAgICAgICAgICAgICAgICBjb250aW51ZTsKLSAg
ICAgICAgICAgIGlmIChyZXNvdXJjZU9yaWdpbi0+ZXF1YWwob3JpZ2luKSkKLSAgICAgICAgICAg
ICAgICByZXNvdXJjZXNXaXRoT3JpZ2luLmFwcGVuZChyZXNvdXJjZSk7CisgICAgICAgICAgICAg
ICAgUmVmUHRyPFNlY3VyaXR5T3JpZ2luPiByZXNvdXJjZU9yaWdpbiA9IFNlY3VyaXR5T3JpZ2lu
OjpjcmVhdGVGcm9tU3RyaW5nKHJlc291cmNlLT51cmwoKSk7CisgICAgICAgICAgICAgICAgaWYg
KCFyZXNvdXJjZU9yaWdpbikKKyAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAg
ICAgICAgICAgaWYgKHJlc291cmNlT3JpZ2luLT5lcXVhbChvcmlnaW4pKQorICAgICAgICAgICAg
ICAgICAgICByZXNvdXJjZXNXaXRoT3JpZ2luLmFwcGVuZChyZXNvdXJjZSk7CiAjaWYgRU5BQkxF
KENBQ0hFX1BBUlRJVElPTklORykKLSAgICAgICAgfQorICAgICAgICAgICAgfQogI2VuZGlmCisg
ICAgICAgIH0KICAgICB9CiAKICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHJlc291cmNlc1dp
dGhPcmlnaW4uc2l6ZSgpOyArK2kpCkBAIC03MDUsMTYgKzcyOCwxOCBAQCB2b2lkIE1lbW9yeUNh
Y2hlOjpnZXRPcmlnaW5zV2l0aENhY2hlKFNlY3VyaXR5T3JpZ2luU2V0JiBvcmlnaW5zKQogI2lm
IEVOQUJMRShDQUNIRV9QQVJUSVRJT05JTkcpCiAgICAgREVGSU5FX1NUQVRJQ19MT0NBTChTdHJp
bmcsIGh0dHBTdHJpbmcsICgiaHR0cCIpKTsKICNlbmRpZgotICAgIENhY2hlZFJlc291cmNlTWFw
OjppdGVyYXRvciBlID0gbV9yZXNvdXJjZXMuZW5kKCk7Ci0gICAgZm9yIChDYWNoZWRSZXNvdXJj
ZU1hcDo6aXRlcmF0b3IgaXQgPSBtX3Jlc291cmNlcy5iZWdpbigpOyBpdCAhPSBlOyArK2l0KSB7
CisgICAgZm9yIChhdXRvJiByZXNvdXJjZXMgOiBtX3Nlc3Npb25SZXNvdXJjZXMpIHsKKyAgICAg
ICAgQ2FjaGVkUmVzb3VyY2VNYXA6Oml0ZXJhdG9yIGUgPSByZXNvdXJjZXMudmFsdWUtPmVuZCgp
OworICAgICAgICBmb3IgKENhY2hlZFJlc291cmNlTWFwOjppdGVyYXRvciBpdCA9IHJlc291cmNl
cy52YWx1ZS0+YmVnaW4oKTsgaXQgIT0gZTsgKytpdCkgewogI2lmIEVOQUJMRShDQUNIRV9QQVJU
SVRJT05JTkcpCi0gICAgICAgIGlmIChpdC0+dmFsdWUtPmJlZ2luKCktPmtleSA9PSBlbXB0eVN0
cmluZygpKQotICAgICAgICAgICAgb3JpZ2lucy5hZGQoU2VjdXJpdHlPcmlnaW46OmNyZWF0ZUZy
b21TdHJpbmcoaXQtPnZhbHVlLT5iZWdpbigpLT52YWx1ZS0+dXJsKCkpKTsKLSAgICAgICAgZWxz
ZQotICAgICAgICAgICAgb3JpZ2lucy5hZGQoU2VjdXJpdHlPcmlnaW46OmNyZWF0ZShodHRwU3Ry
aW5nLCBpdC0+dmFsdWUtPmJlZ2luKCktPmtleSwgMCkpOworICAgICAgICAgICAgaWYgKGl0LT52
YWx1ZS0+YmVnaW4oKS0+a2V5ID09IGVtcHR5U3RyaW5nKCkpCisgICAgICAgICAgICAgICAgb3Jp
Z2lucy5hZGQoU2VjdXJpdHlPcmlnaW46OmNyZWF0ZUZyb21TdHJpbmcoaXQtPnZhbHVlLT5iZWdp
bigpLT52YWx1ZS0+dXJsKCkpKTsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBv
cmlnaW5zLmFkZChTZWN1cml0eU9yaWdpbjo6Y3JlYXRlKGh0dHBTdHJpbmcsIGl0LT52YWx1ZS0+
YmVnaW4oKS0+a2V5LCAwKSk7CiAjZWxzZQotICAgICAgICBvcmlnaW5zLmFkZChTZWN1cml0eU9y
aWdpbjo6Y3JlYXRlRnJvbVN0cmluZyhpdC0+dmFsdWUtPnVybCgpKSk7CisgICAgICAgICAgICBv
cmlnaW5zLmFkZChTZWN1cml0eU9yaWdpbjo6Y3JlYXRlRnJvbVN0cmluZyhpdC0+dmFsdWUtPnVy
bCgpKSk7CiAjZW5kaWYKKyAgICAgICAgfQogICAgIH0KIH0KIApAQCAtODA4LDMxICs4MzMsMzkg
QEAgdm9pZCBNZW1vcnlDYWNoZTo6YWRqdXN0U2l6ZShib29sIGxpdmUsIGludCBkZWx0YSkKICAg
ICB9CiB9CiAKLXZvaWQgTWVtb3J5Q2FjaGU6OnJlbW92ZVVybEZyb21DYWNoZShTY3JpcHRFeGVj
dXRpb25Db250ZXh0KiBjb250ZXh0LCBjb25zdCBTdHJpbmcmIHVybFN0cmluZykKK3ZvaWQgTWVt
b3J5Q2FjaGU6OnJlbW92ZVVybEZyb21DYWNoZShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250
ZXh0LCBjb25zdCBTdHJpbmcmIHVybFN0cmluZywgU2Vzc2lvbklEIHNlc3Npb25JRCkKIHsKLSAg
ICByZW1vdmVSZXF1ZXN0RnJvbUNhY2hlKGNvbnRleHQsIFJlc291cmNlUmVxdWVzdCh1cmxTdHJp
bmcpKTsKKyAgICByZW1vdmVSZXF1ZXN0RnJvbUNhY2hlKGNvbnRleHQsIFJlc291cmNlUmVxdWVz
dCh1cmxTdHJpbmcpLCBzZXNzaW9uSUQpOwogfQogCi12b2lkIE1lbW9yeUNhY2hlOjpyZW1vdmVS
ZXF1ZXN0RnJvbUNhY2hlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIGNvbnN0IFJl
c291cmNlUmVxdWVzdCYgcmVxdWVzdCkKK3ZvaWQgTWVtb3J5Q2FjaGU6OnJlbW92ZVJlcXVlc3RG
cm9tQ2FjaGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgY29uc3QgUmVzb3VyY2VS
ZXF1ZXN0JiByZXF1ZXN0LCBTZXNzaW9uSUQgc2Vzc2lvbklEKQogewogICAgIGlmIChjb250ZXh0
LT5pc1dvcmtlckdsb2JhbFNjb3BlKCkpIHsKLSAgICAgICAgdG9Xb3JrZXJHbG9iYWxTY29wZShj
b250ZXh0KS0+dGhyZWFkKCkud29ya2VyTG9hZGVyUHJveHkoKS5wb3N0VGFza1RvTG9hZGVyKGNy
ZWF0ZUNhbGxiYWNrVGFzaygmY3Jvc3NUaHJlYWRSZW1vdmVSZXF1ZXN0RnJvbUNhY2hlLCByZXF1
ZXN0KSk7CisgICAgICAgIHRvV29ya2VyR2xvYmFsU2NvcGUoY29udGV4dCktPnRocmVhZCgpLndv
cmtlckxvYWRlclByb3h5KCkucG9zdFRhc2tUb0xvYWRlcihjcmVhdGVDYWxsYmFja1Rhc2soJmNy
b3NzVGhyZWFkUmVtb3ZlUmVxdWVzdEZyb21DYWNoZSwgcmVxdWVzdCwgc2Vzc2lvbklEKSk7CiAg
ICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICByZW1vdmVSZXF1ZXN0RnJvbUNhY2hlSW1wbChj
b250ZXh0LCByZXF1ZXN0KTsKKyAgICByZW1vdmVSZXF1ZXN0RnJvbUNhY2hlSW1wbChjb250ZXh0
LCByZXF1ZXN0LCBzZXNzaW9uSUQpOworfQorCit2b2lkIE1lbW9yeUNhY2hlOjpyZW1vdmVSZXF1
ZXN0RnJvbUNhY2hlSW1wbChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgY29uc3QgUmVzb3VyY2VS
ZXF1ZXN0JiByZXF1ZXN0LCBTZXNzaW9uSUQgc2Vzc2lvbklEKQoreworICAgIGlmIChDYWNoZWRS
ZXNvdXJjZSogcmVzb3VyY2UgPSBtZW1vcnlDYWNoZSgpLT5yZXNvdXJjZUZvclJlcXVlc3QocmVx
dWVzdCwgc2Vzc2lvbklEKSkKKyAgICAgICAgbWVtb3J5Q2FjaGUoKS0+cmVtb3ZlKHJlc291cmNl
KTsKIH0KIAotdm9pZCBNZW1vcnlDYWNoZTo6cmVtb3ZlUmVxdWVzdEZyb21DYWNoZUltcGwoU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCosIGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCkKK3Zv
aWQgTWVtb3J5Q2FjaGU6OnJlbW92ZVJlcXVlc3RGcm9tU2Vzc2lvbkNhY2hlcyhTY3JpcHRFeGVj
dXRpb25Db250ZXh0KiwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0KQogewotICAgIGlm
IChDYWNoZWRSZXNvdXJjZSogcmVzb3VyY2UgPSBtZW1vcnlDYWNoZSgpLT5yZXNvdXJjZUZvclJl
cXVlc3QocmVxdWVzdCkpCisgICAgZm9yIChhdXRvJiByZXNvdXJjZXMgOiBtZW1vcnlDYWNoZSgp
LT5tX3Nlc3Npb25SZXNvdXJjZXMpIHsKKyAgICAgICAgaWYgKENhY2hlZFJlc291cmNlKiByZXNv
dXJjZSA9IG1lbW9yeUNhY2hlKCktPnJlc291cmNlRm9yUmVxdWVzdEltcGwocmVxdWVzdCwgKnJl
c291cmNlcy52YWx1ZSkpCiAgICAgICAgIG1lbW9yeUNhY2hlKCktPnJlbW92ZShyZXNvdXJjZSk7
CisgICAgfQogfQogCi12b2lkIE1lbW9yeUNhY2hlOjpjcm9zc1RocmVhZFJlbW92ZVJlcXVlc3RG
cm9tQ2FjaGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgUGFzc093blB0cjxXZWJD
b3JlOjpDcm9zc1RocmVhZFJlc291cmNlUmVxdWVzdERhdGE+IHJlcXVlc3REYXRhKQordm9pZCBN
ZW1vcnlDYWNoZTo6Y3Jvc3NUaHJlYWRSZW1vdmVSZXF1ZXN0RnJvbUNhY2hlKFNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQqIGNvbnRleHQsIFBhc3NPd25QdHI8V2ViQ29yZTo6Q3Jvc3NUaHJlYWRSZXNv
dXJjZVJlcXVlc3REYXRhPiByZXF1ZXN0RGF0YSwgU2Vzc2lvbklEIHNlc3Npb25JRCkKIHsKICAg
ICBPd25QdHI8UmVzb3VyY2VSZXF1ZXN0PiByZXF1ZXN0KFJlc291cmNlUmVxdWVzdDo6YWRvcHQo
cmVxdWVzdERhdGEpKTsKLSAgICBNZW1vcnlDYWNoZTo6cmVtb3ZlUmVxdWVzdEZyb21DYWNoZUlt
cGwoY29udGV4dCwgKnJlcXVlc3QpOworICAgIE1lbW9yeUNhY2hlOjpyZW1vdmVSZXF1ZXN0RnJv
bUNhY2hlSW1wbChjb250ZXh0LCAqcmVxdWVzdCwgc2Vzc2lvbklEKTsKIH0KIAogdm9pZCBNZW1v
cnlDYWNoZTo6VHlwZVN0YXRpc3RpYzo6YWRkUmVzb3VyY2UoQ2FjaGVkUmVzb3VyY2UqIG8pCkBA
IC04NTUsMzggKzg4OCw0MSBAQCB2b2lkIE1lbW9yeUNhY2hlOjpUeXBlU3RhdGlzdGljOjphZGRS
ZXNvdXJjZShDYWNoZWRSZXNvdXJjZSogbykKIE1lbW9yeUNhY2hlOjpTdGF0aXN0aWNzIE1lbW9y
eUNhY2hlOjpnZXRTdGF0aXN0aWNzKCkKIHsKICAgICBTdGF0aXN0aWNzIHN0YXRzOwotICAgIENh
Y2hlZFJlc291cmNlTWFwOjppdGVyYXRvciBlID0gbV9yZXNvdXJjZXMuZW5kKCk7Ci0gICAgZm9y
IChDYWNoZWRSZXNvdXJjZU1hcDo6aXRlcmF0b3IgaSA9IG1fcmVzb3VyY2VzLmJlZ2luKCk7IGkg
IT0gZTsgKytpKSB7CisKKyAgICBmb3IgKGF1dG8gJnJlc291cmNlcyA6IG1fc2Vzc2lvblJlc291
cmNlcykgeworICAgICAgICBDYWNoZWRSZXNvdXJjZU1hcDo6aXRlcmF0b3IgZSA9IHJlc291cmNl
cy52YWx1ZS0+ZW5kKCk7CisgICAgICAgIGZvciAoQ2FjaGVkUmVzb3VyY2VNYXA6Oml0ZXJhdG9y
IGkgPSByZXNvdXJjZXMudmFsdWUtPmJlZ2luKCk7IGkgIT0gZTsgKytpKSB7CiAjaWYgRU5BQkxF
KENBQ0hFX1BBUlRJVElPTklORykKLSAgICAgICAgZm9yIChDYWNoZWRSZXNvdXJjZUl0ZW06Oml0
ZXJhdG9yIGl0ZW1JdGVyYXRvciA9IGktPnZhbHVlLT5iZWdpbigpOyBpdGVtSXRlcmF0b3IgIT0g
aS0+dmFsdWUtPmVuZCgpOyArK2l0ZW1JdGVyYXRvcikgewotICAgICAgICAgICAgQ2FjaGVkUmVz
b3VyY2UqIHJlc291cmNlID0gaXRlbUl0ZXJhdG9yLT52YWx1ZTsKKyAgICAgICAgICAgIGZvciAo
Q2FjaGVkUmVzb3VyY2VJdGVtOjppdGVyYXRvciBpdGVtSXRlcmF0b3IgPSBpLT52YWx1ZS0+YmVn
aW4oKTsgaXRlbUl0ZXJhdG9yICE9IGktPnZhbHVlLT5lbmQoKTsgKytpdGVtSXRlcmF0b3IpIHsK
KyAgICAgICAgICAgICAgICBDYWNoZWRSZXNvdXJjZSogcmVzb3VyY2UgPSBpdGVtSXRlcmF0b3It
PnZhbHVlOwogI2Vsc2UKLSAgICAgICAgICAgIENhY2hlZFJlc291cmNlKiByZXNvdXJjZSA9IGkt
PnZhbHVlOworICAgICAgICAgICAgICAgIENhY2hlZFJlc291cmNlKiByZXNvdXJjZSA9IGktPnZh
bHVlOwogI2VuZGlmCi0gICAgICAgICAgICBzd2l0Y2ggKHJlc291cmNlLT50eXBlKCkpIHsKLSAg
ICAgICAgICAgIGNhc2UgQ2FjaGVkUmVzb3VyY2U6OkltYWdlUmVzb3VyY2U6Ci0gICAgICAgICAg
ICAgICAgc3RhdHMuaW1hZ2VzLmFkZFJlc291cmNlKHJlc291cmNlKTsKLSAgICAgICAgICAgICAg
ICBicmVhazsKLSAgICAgICAgICAgIGNhc2UgQ2FjaGVkUmVzb3VyY2U6OkNTU1N0eWxlU2hlZXQ6
Ci0gICAgICAgICAgICAgICAgc3RhdHMuY3NzU3R5bGVTaGVldHMuYWRkUmVzb3VyY2UocmVzb3Vy
Y2UpOwotICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgY2FzZSBDYWNoZWRSZXNv
dXJjZTo6U2NyaXB0OgotICAgICAgICAgICAgICAgIHN0YXRzLnNjcmlwdHMuYWRkUmVzb3VyY2Uo
cmVzb3VyY2UpOwotICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIHN3aXRj
aCAocmVzb3VyY2UtPnR5cGUoKSkgeworICAgICAgICAgICAgICAgIGNhc2UgQ2FjaGVkUmVzb3Vy
Y2U6OkltYWdlUmVzb3VyY2U6CisgICAgICAgICAgICAgICAgICAgIHN0YXRzLmltYWdlcy5hZGRS
ZXNvdXJjZShyZXNvdXJjZSk7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAg
ICAgICAgIGNhc2UgQ2FjaGVkUmVzb3VyY2U6OkNTU1N0eWxlU2hlZXQ6CisgICAgICAgICAgICAg
ICAgICAgIHN0YXRzLmNzc1N0eWxlU2hlZXRzLmFkZFJlc291cmNlKHJlc291cmNlKTsKKyAgICAg
ICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgY2FzZSBDYWNoZWRSZXNvdXJj
ZTo6U2NyaXB0OgorICAgICAgICAgICAgICAgICAgICBzdGF0cy5zY3JpcHRzLmFkZFJlc291cmNl
KHJlc291cmNlKTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAjaWYgRU5BQkxFKFhTTFQp
Ci0gICAgICAgICAgICBjYXNlIENhY2hlZFJlc291cmNlOjpYU0xTdHlsZVNoZWV0OgotICAgICAg
ICAgICAgICAgIHN0YXRzLnhzbFN0eWxlU2hlZXRzLmFkZFJlc291cmNlKHJlc291cmNlKTsKLSAg
ICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICBjYXNlIENhY2hlZFJlc291cmNl
OjpYU0xTdHlsZVNoZWV0OgorICAgICAgICAgICAgICAgICAgICBzdGF0cy54c2xTdHlsZVNoZWV0
cy5hZGRSZXNvdXJjZShyZXNvdXJjZSk7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogI2Vu
ZGlmCi0gICAgICAgICAgICBjYXNlIENhY2hlZFJlc291cmNlOjpGb250UmVzb3VyY2U6Ci0gICAg
ICAgICAgICAgICAgc3RhdHMuZm9udHMuYWRkUmVzb3VyY2UocmVzb3VyY2UpOwotICAgICAgICAg
ICAgICAgIGJyZWFrOwotICAgICAgICAgICAgZGVmYXVsdDoKLSAgICAgICAgICAgICAgICBicmVh
azsKLSAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBjYXNlIENhY2hlZFJlc291cmNlOjpG
b250UmVzb3VyY2U6CisgICAgICAgICAgICAgICAgICAgIHN0YXRzLmZvbnRzLmFkZFJlc291cmNl
KHJlc291cmNlKTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAg
ZGVmYXVsdDoKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQog
I2lmIEVOQUJMRShDQUNIRV9QQVJUSVRJT05JTkcpCi0gICAgICAgIH0KKyAgICAgICAgICAgIH0K
ICNlbmRpZgorICAgICAgICB9CiAgICAgfQogICAgIHJldHVybiBzdGF0czsKIH0KQEAgLTg5OCw4
ICs5MzQsMTEgQEAgdm9pZCBNZW1vcnlDYWNoZTo6c2V0RGlzYWJsZWQoYm9vbCBkaXNhYmxlZCkK
ICAgICAgICAgcmV0dXJuOwogCiAgICAgZm9yICg7OykgewotICAgICAgICBDYWNoZWRSZXNvdXJj
ZU1hcDo6aXRlcmF0b3Igb3V0ZXJJdGVyYXRvciA9IG1fcmVzb3VyY2VzLmJlZ2luKCk7Ci0gICAg
ICAgIGlmIChvdXRlckl0ZXJhdG9yID09IG1fcmVzb3VyY2VzLmVuZCgpKQorICAgICAgICBTZXNz
aW9uQ2FjaGVkUmVzb3VyY2VNYXA6Oml0ZXJhdG9yIHNlc3Npb25JdGVyYXRvciA9IG1fc2Vzc2lv
blJlc291cmNlcy5iZWdpbigpOworICAgICAgICBpZiAoc2Vzc2lvbkl0ZXJhdG9yID09IG1fc2Vz
c2lvblJlc291cmNlcy5lbmQoKSkKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBDYWNoZWRS
ZXNvdXJjZU1hcDo6aXRlcmF0b3Igb3V0ZXJJdGVyYXRvciA9IHNlc3Npb25JdGVyYXRvci0+dmFs
dWUtPmJlZ2luKCk7CisgICAgICAgIGlmIChvdXRlckl0ZXJhdG9yID09IHNlc3Npb25JdGVyYXRv
ci0+dmFsdWUtPmVuZCgpKQogICAgICAgICAgICAgYnJlYWs7CiAjaWYgRU5BQkxFKENBQ0hFX1BB
UlRJVElPTklORykKICAgICAgICAgQ2FjaGVkUmVzb3VyY2VJdGVtOjppdGVyYXRvciBpbm5lckl0
ZXJhdG9yID0gb3V0ZXJJdGVyYXRvci0+dmFsdWUtPmJlZ2luKCk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvTWVtb3J5Q2FjaGUuaCBiL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9jYWNoZS9NZW1vcnlDYWNoZS5oCmluZGV4IGMwMjNhOTcuLjQzNmU1NWMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9NZW1vcnlDYWNoZS5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9NZW1vcnlDYWNoZS5oCkBAIC0yNyw2ICsyNyw3IEBACiAK
ICNpbmNsdWRlICJOYXRpdmVJbWFnZVB0ci5oIgogI2luY2x1ZGUgIlNlY3VyaXR5T3JpZ2luSGFz
aC5oIgorI2luY2x1ZGUgIlNlc3Npb25JREhhc2guaCIKICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5o
PgogI2luY2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+CiAjaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+
CkBAIC04Nyw2ICs4OCw3IEBAIHB1YmxpYzoKICNlbHNlCiAgICAgdHlwZWRlZiBIYXNoTWFwPFN0
cmluZywgQ2FjaGVkUmVzb3VyY2UqPiBDYWNoZWRSZXNvdXJjZU1hcDsKICNlbmRpZgorICAgIHR5
cGVkZWYgSGFzaE1hcDxTZXNzaW9uSUQsIHN0ZDo6dW5pcXVlX3B0cjxDYWNoZWRSZXNvdXJjZU1h
cD4+IFNlc3Npb25DYWNoZWRSZXNvdXJjZU1hcDsKIAogICAgIHN0cnVjdCBMUlVMaXN0IHsKICAg
ICAgICAgQ2FjaGVkUmVzb3VyY2UqIG1faGVhZDsKQEAgLTExOCwxMCArMTIwLDEwIEBAIHB1Ymxp
YzoKICAgICAgICAgVHlwZVN0YXRpc3RpYyBmb250czsKICAgICB9OwogCi0gICAgQ2FjaGVkUmVz
b3VyY2UqIHJlc291cmNlRm9yVVJMKGNvbnN0IFVSTCYpOwotICAgIENhY2hlZFJlc291cmNlKiBy
ZXNvdXJjZUZvclJlcXVlc3QoY29uc3QgUmVzb3VyY2VSZXF1ZXN0Jik7Ci0gICAgCi0gICAgYm9v
bCBhZGQoQ2FjaGVkUmVzb3VyY2UqIHJlc291cmNlKTsKKyAgICBDYWNoZWRSZXNvdXJjZSogcmVz
b3VyY2VGb3JVUkwoY29uc3QgVVJMJiwgU2Vzc2lvbklEKTsKKyAgICBDYWNoZWRSZXNvdXJjZSog
cmVzb3VyY2VGb3JSZXF1ZXN0KGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIFNlc3Npb25JRCk7CisK
KyAgICBib29sIGFkZChDYWNoZWRSZXNvdXJjZSopOwogICAgIHZvaWQgcmVtb3ZlKENhY2hlZFJl
c291cmNlKiByZXNvdXJjZSkgeyBldmljdChyZXNvdXJjZSk7IH0KIAogICAgIHN0YXRpYyBVUkwg
cmVtb3ZlRnJhZ21lbnRJZGVudGlmaWVySWZOZWVkZWQoY29uc3QgVVJMJiBvcmlnaW5hbFVSTCk7
CkBAIC0xNzAsOCArMTcyLDkgQEAgcHVibGljOgogICAgIHZvaWQgZmx1c2hDYWNoZWRJbWFnZXNU
b0Rpc2soKTsgLy8gRmx1c2ggZW5jb2RlZCBkYXRhIGZyb20gcmVzb3VyY2VzIHN0aWxsIHJlZmVy
ZW5jZWQgYnkgd2ViIHBhZ2VzLgogI2VuZGlmCiAKLSAgICBzdGF0aWMgdm9pZCByZW1vdmVVcmxG
cm9tQ2FjaGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIGNvbnN0IFN0cmluZyYgdXJsU3RyaW5n
KTsKLSAgICBzdGF0aWMgdm9pZCByZW1vdmVSZXF1ZXN0RnJvbUNhY2hlKFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQqLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmKTsKKyAgICBzdGF0aWMgdm9pZCByZW1v
dmVVcmxGcm9tQ2FjaGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIGNvbnN0IFN0cmluZyYgdXJs
U3RyaW5nLCBTZXNzaW9uSUQpOworICAgIHN0YXRpYyB2b2lkIHJlbW92ZVJlcXVlc3RGcm9tQ2Fj
aGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIFNlc3Np
b25JRCk7CisgICAgc3RhdGljIHZvaWQgcmVtb3ZlUmVxdWVzdEZyb21TZXNzaW9uQ2FjaGVzKFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmKTsKIAogICAgIC8v
IEZ1bmN0aW9uIHRvIGNvbGxlY3QgY2FjaGUgc3RhdGlzdGljcyBmb3IgdGhlIGNhY2hlcyB3aW5k
b3cgaW4gdGhlIFNhZmFyaSBEZWJ1ZyBtZW51LgogICAgIFN0YXRpc3RpY3MgZ2V0U3RhdGlzdGlj
cygpOwpAQCAtMjIxLDggKzIyNCwxMSBAQCBwcml2YXRlOgogICAgIGJvb2wgbWFrZVJlc291cmNl
UHVyZ2VhYmxlKENhY2hlZFJlc291cmNlKik7CiAgICAgdm9pZCBldmljdChDYWNoZWRSZXNvdXJj
ZSopOwogCi0gICAgc3RhdGljIHZvaWQgcmVtb3ZlUmVxdWVzdEZyb21DYWNoZUltcGwoU2NyaXB0
RXhlY3V0aW9uQ29udGV4dCosIGNvbnN0IFJlc291cmNlUmVxdWVzdCYpOwotICAgIHN0YXRpYyB2
b2lkIGNyb3NzVGhyZWFkUmVtb3ZlUmVxdWVzdEZyb21DYWNoZShTY3JpcHRFeGVjdXRpb25Db250
ZXh0KiwgUGFzc093blB0cjxDcm9zc1RocmVhZFJlc291cmNlUmVxdWVzdERhdGE+KTsKKyAgICBD
YWNoZWRSZXNvdXJjZSogcmVzb3VyY2VGb3JSZXF1ZXN0SW1wbChjb25zdCBSZXNvdXJjZVJlcXVl
c3QmLCBDYWNoZWRSZXNvdXJjZU1hcCYpOworICAgIHN0YXRpYyB2b2lkIHJlbW92ZVJlcXVlc3RG
cm9tQ2FjaGVJbXBsKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBjb25zdCBSZXNvdXJjZVJlcXVl
c3QmLCBTZXNzaW9uSUQpOworICAgIHN0YXRpYyB2b2lkIGNyb3NzVGhyZWFkUmVtb3ZlUmVxdWVz
dEZyb21DYWNoZShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgUGFzc093blB0cjxDcm9zc1RocmVh
ZFJlc291cmNlUmVxdWVzdERhdGE+LCBTZXNzaW9uSUQpOworCisgICAgQ2FjaGVkUmVzb3VyY2VN
YXAmIGdldFNlc3Npb25NYXAoU2Vzc2lvbklEKTsKIAogICAgIGJvb2wgbV9kaXNhYmxlZDsgIC8v
IFdoZXRoZXIgb3Igbm90IHRoZSBjYWNoZSBpcyBlbmFibGVkLgogICAgIGJvb2wgbV9wcnVuZUVu
YWJsZWQ7CkBAIC0yNDYsNyArMjUyLDcgQEAgcHJpdmF0ZToKICAgICAKICAgICAvLyBBIFVSTC1i
YXNlZCBtYXAgb2YgYWxsIHJlc291cmNlcyB0aGF0IGFyZSBpbiB0aGUgY2FjaGUgKGluY2x1ZGlu
ZyB0aGUgZnJlc2hlc3QgdmVyc2lvbiBvZiBvYmplY3RzIHRoYXQgYXJlIGN1cnJlbnRseSBiZWlu
ZyAKICAgICAvLyByZWZlcmVuY2VkIGJ5IGEgV2ViIHBhZ2UpLgotICAgIENhY2hlZFJlc291cmNl
TWFwIG1fcmVzb3VyY2VzOworICAgIFNlc3Npb25DYWNoZWRSZXNvdXJjZU1hcCBtX3Nlc3Npb25S
ZXNvdXJjZXM7CiB9OwogCiBpbmxpbmUgYm9vbCBNZW1vcnlDYWNoZTo6c2hvdWxkTWFrZVJlc291
cmNlUHVyZ2VhYmxlT25FdmljdGlvbigpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9Dcm9zc1RocmVhZENvcGllci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Dcm9z
c1RocmVhZENvcGllci5jcHAKaW5kZXggNTdkMDRlMS4uMWIxYWMxMyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vQ3Jvc3NUaHJlYWRDb3BpZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL0Nyb3NzVGhyZWFkQ29waWVyLmNwcApAQCAtMzcsNiArMzcsNyBAQAog
I2luY2x1ZGUgIlJlc291cmNlUmVxdWVzdC5oIgogI2luY2x1ZGUgIlJlc291cmNlUmVzcG9uc2Uu
aCIKICNpbmNsdWRlICJTZXJpYWxpemVkU2NyaXB0VmFsdWUuaCIKKyNpbmNsdWRlICJTZXNzaW9u
SUQuaCIKICNpbmNsdWRlIDx3dGYvQXNzZXJ0aW9ucy5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dU
RlN0cmluZy5oPgogCkBAIC03NCw2ICs3NSwxMSBAQCBDcm9zc1RocmVhZENvcGllckJhc2U8ZmFs
c2UsIGZhbHNlLCBSZXNvdXJjZVJlc3BvbnNlPjo6VHlwZSBDcm9zc1RocmVhZENvcGllckJhcwog
ICAgIHJldHVybiByZXNwb25zZS5jb3B5RGF0YSgpOwogfQogCitDcm9zc1RocmVhZENvcGllckJh
c2U8ZmFsc2UsIGZhbHNlLCBTZXNzaW9uSUQ+OjpUeXBlIENyb3NzVGhyZWFkQ29waWVyQmFzZTxm
YWxzZSwgZmFsc2UsIFNlc3Npb25JRD46OmNvcHkoY29uc3QgU2Vzc2lvbklEJiBzZXNzaW9uSUQp
Cit7CisgICAgcmV0dXJuIHNlc3Npb25JRDsKK30KKwogI2lmIEVOQUJMRShJTkRFWEVEX0RBVEFC
QVNFKQogCiBJbmRleGVkREI6OlRyYW5zYWN0aW9uTW9kZSBDcm9zc1RocmVhZENvcGllckJhc2U8
ZmFsc2UsIGZhbHNlLCBJbmRleGVkREI6OlRyYW5zYWN0aW9uTW9kZT46OmNvcHkoY29uc3QgSW5k
ZXhlZERCOjpUcmFuc2FjdGlvbk1vZGUmIG1vZGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9Dcm9zc1RocmVhZENvcGllci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Q3Jvc3NUaHJlYWRDb3BpZXIuaAppbmRleCBjYWYyNzlmLi4zOThlODRlIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Dcm9zc1RocmVhZENvcGllci5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL0Nyb3NzVGhyZWFkQ29waWVyLmgKQEAgLTQ2LDYgKzQ2LDcgQEAgbmFt
ZXNwYWNlIFdlYkNvcmUgewogICAgIGNsYXNzIFJlc291cmNlRXJyb3I7CiAgICAgY2xhc3MgUmVz
b3VyY2VSZXF1ZXN0OwogICAgIGNsYXNzIFJlc291cmNlUmVzcG9uc2U7CisgICAgY2xhc3MgU2Vz
c2lvbklEOwogICAgIHN0cnVjdCBDcm9zc1RocmVhZFJlc291cmNlUmVzcG9uc2VEYXRhOwogICAg
IHN0cnVjdCBDcm9zc1RocmVhZFJlc291cmNlUmVxdWVzdERhdGE7CiAgICAgc3RydWN0IFRocmVh
ZGFibGVMb2FkZXJPcHRpb25zOwpAQCAtMTQ1LDYgKzE0NiwxMSBAQCBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAgICAgICAgIHN0YXRpYyBUeXBlIGNvcHkoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYpOwog
ICAgIH07CiAKKyAgICB0ZW1wbGF0ZTw+IHN0cnVjdCBDcm9zc1RocmVhZENvcGllckJhc2U8ZmFs
c2UsIGZhbHNlLCBTZXNzaW9uSUQ+IHsKKyAgICAgICAgdHlwZWRlZiBTZXNzaW9uSUQgVHlwZTsK
KyAgICAgICAgc3RhdGljIFR5cGUgY29weShjb25zdCBTZXNzaW9uSUQmKTsKKyAgICB9OworCiAj
aWYgRU5BQkxFKElOREVYRURfREFUQUJBU0UpCiAgICAgbmFtZXNwYWNlIEluZGV4ZWREQiB7CiAg
ICAgICAgIGVudW0gY2xhc3MgVHJhbnNhY3Rpb25Nb2RlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9SZXNvdXJjZVJlcXVlc3QuaCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvUmVzb3VyY2VSZXF1ZXN0LmgKaW5kZXggNDc2MWFkZS4u
NWJhNGMzNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9S
ZXNvdXJjZVJlcXVlc3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2Nm
L1Jlc291cmNlUmVxdWVzdC5oCkBAIC01Nyw3ICs1Nyw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsK
ICAgICAgICAgewogICAgICAgICB9CiAKLSAgICAgICAgUmVzb3VyY2VSZXF1ZXN0KGNvbnN0IFVS
TCYgdXJsLCBjb25zdCBTdHJpbmcmIHJlZmVycmVyLCBSZXNvdXJjZVJlcXVlc3RDYWNoZVBvbGlj
eSBwb2xpY3kgPSBVc2VQcm90b2NvbENhY2hlUG9saWN5KSAKKyAgICAgICAgUmVzb3VyY2VSZXF1
ZXN0KGNvbnN0IFVSTCYgdXJsLCBjb25zdCBTdHJpbmcmIHJlZmVycmVyLCBSZXNvdXJjZVJlcXVl
c3RDYWNoZVBvbGljeSBwb2xpY3kgPSBVc2VQcm90b2NvbENhY2hlUG9saWN5KQogICAgICAgICAg
ICAgOiBSZXNvdXJjZVJlcXVlc3RCYXNlKHVybCwgcG9saWN5KQogI2lmIFBMQVRGT1JNKElPUykK
ICAgICAgICAgICAgICwgbV9tYWluUmVzb3VyY2VSZXF1ZXN0KGZhbHNlKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclNuYXBzaG90dGVkUGx1Z0luLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTbmFwc2hvdHRlZFBsdWdJbi5jcHAKaW5kZXgg
YTE2NGY2ZC4uNzRjMzlhMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlclNuYXBzaG90dGVkUGx1Z0luLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyU25hcHNob3R0ZWRQbHVnSW4uY3BwCkBAIC0zMSw2ICszMSw3IEBACiAjaW5jbHVkZSAi
Q2hyb21lQ2xpZW50LmgiCiAjaW5jbHVkZSAiQ3Vyc29yLmgiCiAjaW5jbHVkZSAiRmlsdGVyLmgi
CisjaW5jbHVkZSAiRnJhbWUuaCIKICNpbmNsdWRlICJGcmFtZUxvYWRlckNsaWVudC5oIgogI2lu
Y2x1ZGUgIkZyYW1lVmlldy5oIgogI2luY2x1ZGUgIkdyYWRpZW50LmgiCkBAIC04NSw3ICs4Niw3
IEBAIHZvaWQgUmVuZGVyU25hcHNob3R0ZWRQbHVnSW46OnVwZGF0ZVNuYXBzaG90KFBhc3NSZWZQ
dHI8SW1hZ2U+IGltYWdlKQogICAgIGlmICghaW1hZ2UpCiAgICAgICAgIHJldHVybjsKIAotICAg
IG1fc25hcHNob3RSZXNvdXJjZS0+c2V0Q2FjaGVkSW1hZ2UobmV3IENhY2hlZEltYWdlKGltYWdl
LmdldCgpKSk7CisgICAgbV9zbmFwc2hvdFJlc291cmNlLT5zZXRDYWNoZWRJbWFnZShuZXcgQ2Fj
aGVkSW1hZ2UoaW1hZ2UuZ2V0KCksIHZpZXcoKS5mcmFtZVZpZXcoKS5mcmFtZSgpLnBhZ2UoKS0+
c2Vzc2lvbklEKCkpKTsKICAgICByZXBhaW50KCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50
ZXJuYWxzLmNwcAppbmRleCA2NmI5ZDVlLi5kNTk0MzI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9J
bnRlcm5hbHMuY3BwCkBAIC0zNTYsOSArMzU2LDkgQEAgYm9vbCBJbnRlcm5hbHM6OmlzUHJlbG9h
ZGVkKGNvbnN0IFN0cmluZyYgdXJsKQogCiBib29sIEludGVybmFsczo6aXNMb2FkaW5nRnJvbU1l
bW9yeUNhY2hlKGNvbnN0IFN0cmluZyYgdXJsKQogewotICAgIGlmICghY29udGV4dERvY3VtZW50
KCkpCisgICAgaWYgKCFjb250ZXh0RG9jdW1lbnQoKSB8fCAhY29udGV4dERvY3VtZW50KCktPnBh
Z2UoKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIENhY2hlZFJlc291cmNlKiByZXNvdXJj
ZSA9IG1lbW9yeUNhY2hlKCktPnJlc291cmNlRm9yVVJMKGNvbnRleHREb2N1bWVudCgpLT5jb21w
bGV0ZVVSTCh1cmwpKTsKKyAgICBDYWNoZWRSZXNvdXJjZSogcmVzb3VyY2UgPSBtZW1vcnlDYWNo
ZSgpLT5yZXNvdXJjZUZvclVSTChjb250ZXh0RG9jdW1lbnQoKS0+Y29tcGxldGVVUkwodXJsKSwg
Y29udGV4dERvY3VtZW50KCktPnBhZ2UoKS0+c2Vzc2lvbklEKCkpOwogICAgIHJldHVybiByZXNv
dXJjZSAmJiByZXNvdXJjZS0+c3RhdHVzKCkgPT0gQ2FjaGVkUmVzb3VyY2U6OkNhY2hlZDsKIH0K
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktp
dC9tYWMvQ2hhbmdlTG9nCmluZGV4IGM2MmRmYjQuLjE5MjFmNGYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvbWFjL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwxMyBAQAorMjAxNC0wMi0yNiAgTWFydGluIEhvY2sgIDxtaG9ja0BhcHBsZS5j
b20+CisKKyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIHNlc3Npb25zIHRvIE1lbW9yeUNhY2hlLgor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI3Nzk0CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBNaXNjL1dl
YkNhY2hlLm1tOgorICAgICAgICAoK1tXZWJDYWNoZSBpbWFnZUZvclVSTDpdKTogVXNlIGRlZmF1
bHQgc2Vzc2lvbklELgorCiAyMDE0LTAyLTI2ICBBbmR5IEVzdGVzICA8YWVzdGVzQGFwcGxlLmNv
bT4KIAogICAgICAgICBbaU9TXSBTdXBwb3J0IG5ldHdvcmsgc3RhdGUgbm90aWZpY2F0aW9uIHVz
aW5nIENQTmV0d29ya09ic2VydmVyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9NaXNj
L1dlYkNhY2hlLm1tIGIvU291cmNlL1dlYktpdC9tYWMvTWlzYy9XZWJDYWNoZS5tbQppbmRleCAw
NjFjYTViLi45MTA3MTQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9NaXNjL1dlYkNh
Y2hlLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL01pc2MvV2ViQ2FjaGUubW0KQEAgLTMzLDYg
KzMzLDcgQEAKICNpbXBvcnQgPFdlYkNvcmUvQXBwbGljYXRpb25DYWNoZVN0b3JhZ2UuaD4KICNp
bXBvcnQgPFdlYkNvcmUvQ3Jvc3NPcmlnaW5QcmVmbGlnaHRSZXN1bHRDYWNoZS5oPgogI2ltcG9y
dCA8V2ViQ29yZS9NZW1vcnlDYWNoZS5oPgorI2ltcG9ydCA8V2ViQ29yZS9TZXNzaW9uSUQuaD4K
ICNpbXBvcnQgPHJ1bnRpbWUvSW5pdGlhbGl6ZVRocmVhZGluZy5oPgogI2ltcG9ydCA8d3RmL01h
aW5UaHJlYWQuaD4KICNpbXBvcnQgPHd0Zi9SdW5Mb29wLmg+CkBAIC0yMzMsNyArMjM0LDcgQEAK
ICAgICBpZiAoIXVybCkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgCi0gICAgV2ViQ29y
ZTo6Q2FjaGVkUmVzb3VyY2UqIGNhY2hlZFJlc291cmNlID0gV2ViQ29yZTo6bWVtb3J5Q2FjaGUo
KS0+cmVzb3VyY2VGb3JVUkwodXJsKTsKKyAgICBXZWJDb3JlOjpDYWNoZWRSZXNvdXJjZSogY2Fj
aGVkUmVzb3VyY2UgPSBXZWJDb3JlOjptZW1vcnlDYWNoZSgpLT5yZXNvdXJjZUZvclVSTCh1cmws
IFdlYkNvcmU6OlNlc3Npb25JRDo6ZGVmYXVsdFNlc3Npb25JRCgpKTsKICAgICBpZiAoIWNhY2hl
ZFJlc291cmNlIHx8ICFjYWNoZWRSZXNvdXJjZS0+aXNJbWFnZSgpKQogICAgICAgICByZXR1cm4g
bnVsbHB0cjsKICAgICBXZWJDb3JlOjpDYWNoZWRJbWFnZSogY2FjaGVkSW1hZ2UgPSBXZWJDb3Jl
Ojp0b0NhY2hlZEltYWdlKGNhY2hlZFJlc291cmNlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCBjMDI2MWJlLi44
NzRlODI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNl
L1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAKKzIwMTQtMDItMjYgIE1hcnRpbiBI
b2NrICA8bWhvY2tAYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBzdXBwb3J0IGZvciBzZXNzaW9u
cyB0byBNZW1vcnlDYWNoZS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTEyNzc5NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZGVyLmg6IEFkZCBz
ZXNzaW9uSUQoKSBtZXRob2QuCisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtSZXNvdXJjZUxvYWRl
cjo6c2Vzc2lvbklEKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9tYWMvRGlza0NhY2hlTW9u
aXRvci5oOiBBZGQgc2Vzc2lvbklEIG1lbWJlci4KKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9t
YWMvRGlza0NhY2hlTW9uaXRvci5tbToKKyAgICAgICAgKFdlYktpdDo6RGlza0NhY2hlTW9uaXRv
cjo6RGlza0NhY2hlTW9uaXRvcik6IFNlbmQgc2Vzc2lvbklEIHRvIE5ldHdvcmtQcm9jZXNzQ29u
bmVjdGlvbjo6RGlkQ2FjaGVSZXNvdXJjZS4KKyAgICAgICAgKiBXZWJQcm9jZXNzL05ldHdvcmsv
TmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uLmNwcDogQWRkIHNlc3Npb25JRCBwYXJhbWV0ZXIgdG8g
ZGlkQ2FjaGVSZXNvdXJjZSBhbmQgcGFzcyB0byBNZW1vcnlDYWNoZS4KKyAgICAgICAgKFdlYktp
dDo6TmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uOjpkaWRDYWNoZVJlc291cmNlKToKKyAgICAgICAg
KiBXZWJQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uLmg6IERpdHRvLgor
ICAgICAgICAqIFdlYlByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24ubWVz
c2FnZXMuaW46IERpdHRvLgorCiAyMDE0LTAyLTI2ICBBbmRlcnMgQ2FybHNzb24gIDxhbmRlcnNj
YUBhcHBsZS5jb20+CiAKICAgICAgICAgVmlzaXRlZExpbmtQcm92aWRlciBzaG91bGQga25vdyB3
aGljaCBwYWdlcyBpdCBiZWxvbmdzIHRvCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3
b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkZXIuaCBiL1NvdXJjZS9XZWJLaXQyL05ldHdv
cmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRlci5oCmluZGV4IDY5YzU5ZjMuLmViNzY5ZjMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJj
ZUxvYWRlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNv
dXJjZUxvYWRlci5oCkBAIC03Miw2ICs3Miw3IEBAIHB1YmxpYzoKIAogICAgIFdlYkNvcmU6OlJl
c291cmNlTG9hZFByaW9yaXR5IHByaW9yaXR5KCkgeyByZXR1cm4gbV9wcmlvcml0eTsgfQogICAg
IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCgpIHsgcmV0dXJuIG1fcmVxdWVzdDsg
fQorICAgIFdlYkNvcmU6OlNlc3Npb25JRCBzZXNzaW9uSUQoKSBjb25zdCB7IHJldHVybiBtX3Nl
c3Npb25JRDsgfQogCiAgICAgV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGUqIGhhbmRsZSgpIGNvbnN0
IHsgcmV0dXJuIG1faGFuZGxlLmdldCgpOyB9CiAgICAgdm9pZCBkaWRDb252ZXJ0SGFuZGxlVG9E
b3dubG9hZCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvbWFj
L0Rpc2tDYWNoZU1vbml0b3IuaCBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL21hYy9E
aXNrQ2FjaGVNb25pdG9yLmgKaW5kZXggMzE4ODNjNS4uMWQwNzFkNCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvbWFjL0Rpc2tDYWNoZU1vbml0b3IuaAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9tYWMvRGlza0NhY2hlTW9uaXRvci5oCkBAIC0y
OCw2ICsyOCw3IEBACiAKICNpbmNsdWRlICJNZXNzYWdlU2VuZGVyLmgiCiAjaW5jbHVkZSA8V2Vi
Q29yZS9SZXNvdXJjZVJlcXVlc3QuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1Nlc3Npb25JRC5oPgog
I2luY2x1ZGUgPHd0Zi9SdW5Mb29wLmg+CiAKIHR5cGVkZWYgY29uc3Qgc3RydWN0IF9DRkNhY2hl
ZFVSTFJlc3BvbnNlKiBDRkNhY2hlZFVSTFJlc3BvbnNlUmVmOwpAQCAtNTIsNiArNTMsNyBAQCBw
cml2YXRlOgogCiAgICAgUmVmUHRyPE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzPiBtX2Nv
bm5lY3Rpb25Ub1dlYlByb2Nlc3M7CiAgICAgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0IG1fcmVz
b3VyY2VSZXF1ZXN0OworICAgIFdlYkNvcmU6OlNlc3Npb25JRCBtX3Nlc3Npb25JRDsKIH07CiAK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvbWFjL0Rpc2tDYWNo
ZU1vbml0b3IubW0gYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9tYWMvRGlza0NhY2hl
TW9uaXRvci5tbQppbmRleCAzODBkYTFmLi5lYjBhNzFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9OZXR3b3JrUHJvY2Vzcy9tYWMvRGlza0NhY2hlTW9uaXRvci5tbQorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9tYWMvRGlza0NhY2hlTW9uaXRvci5tbQpAQCAtNjIsNiAr
NjIsNyBAQCB2b2lkIERpc2tDYWNoZU1vbml0b3I6Om1vbml0b3JGaWxlQmFja2luZ1N0b3JlQ3Jl
YXRpb24oQ0ZDYWNoZWRVUkxSZXNwb25zZVJlZiBjYQogRGlza0NhY2hlTW9uaXRvcjo6RGlza0Nh
Y2hlTW9uaXRvcihDRkNhY2hlZFVSTFJlc3BvbnNlUmVmIGNhY2hlZFJlc3BvbnNlLCBOZXR3b3Jr
UmVzb3VyY2VMb2FkZXIqIGxvYWRlcikKICAgICA6IG1fY29ubmVjdGlvblRvV2ViUHJvY2Vzcyhs
b2FkZXItPmNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MoKSkKICAgICAsIG1fcmVzb3VyY2VSZXF1ZXN0
KGxvYWRlci0+cmVxdWVzdCgpKQorICAgICwgbV9zZXNzaW9uSUQobG9hZGVyLT5zZXNzaW9uSUQo
KSkKIHsKICAgICBBU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOwogCkBAIC04OCw3ICs4OSw3IEBA
IERpc2tDYWNoZU1vbml0b3I6OkRpc2tDYWNoZU1vbml0b3IoQ0ZDYWNoZWRVUkxSZXNwb25zZVJl
ZiBjYWNoZWRSZXNwb25zZSwgTmV0d29yCiAgICAgICAgIGlmIChoYW5kbGUuaXNOdWxsKCkpCiAg
ICAgICAgICAgICByZXR1cm47CiAKLSAgICAgICAgbW9uaXRvci0+c2VuZChNZXNzYWdlczo6TmV0
d29ya1Byb2Nlc3NDb25uZWN0aW9uOjpEaWRDYWNoZVJlc291cmNlKG1vbml0b3ItPnJlc291cmNl
UmVxdWVzdCgpLCBoYW5kbGUpKTsKKyAgICAgICAgbW9uaXRvci0+c2VuZChNZXNzYWdlczo6TmV0
d29ya1Byb2Nlc3NDb25uZWN0aW9uOjpEaWRDYWNoZVJlc291cmNlKG1vbml0b3ItPnJlc291cmNl
UmVxdWVzdCgpLCBoYW5kbGUsIG1fc2Vzc2lvbklEKSk7CiAgICAgfTsKIAogICAgIF9DRkNhY2hl
ZFVSTFJlc3BvbnNlU2V0QmVjYW1lRmlsZUJhY2tlZENhbGxCYWNrQmxvY2soY2FjaGVkUmVzcG9u
c2UsIGJsb2NrLCBkaXNwYXRjaF9nZXRfbWFpbl9xdWV1ZSgpKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24uY3Bw
IGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzQ29ubmVj
dGlvbi5jcHAKaW5kZXggYjIxNmUxMi4uNjM4Yjg5NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbi5jcHAKKysrIGIv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzQ29ubmVjdGlv
bi5jcHAKQEAgLTM2LDYgKzM2LDcgQEAKICNpbmNsdWRlIDxXZWJDb3JlL0NhY2hlZFJlc291cmNl
Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9NZW1vcnlDYWNoZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUv
UmVzb3VyY2VCdWZmZXIuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1Nlc3Npb25JRC5oPgogCiAjaWYg
RU5BQkxFKE5FVFdPUktfUFJPQ0VTUykKIApAQCAtODEsOSArODIsOSBAQCB2b2lkIE5ldHdvcmtQ
cm9jZXNzQ29ubmVjdGlvbjo6ZGlkUmVjZWl2ZUludmFsaWRNZXNzYWdlKElQQzo6Q29ubmVjdGlv
biosIElQQzo6UwogfQogCiAjaWYgRU5BQkxFKFNIQVJFQUJMRV9SRVNPVVJDRSkKLXZvaWQgTmV0
d29ya1Byb2Nlc3NDb25uZWN0aW9uOjpkaWRDYWNoZVJlc291cmNlKGNvbnN0IFJlc291cmNlUmVx
dWVzdCYgcmVxdWVzdCwgY29uc3QgU2hhcmVhYmxlUmVzb3VyY2U6OkhhbmRsZSYgaGFuZGxlKQor
dm9pZCBOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb246OmRpZENhY2hlUmVzb3VyY2UoY29uc3QgUmVz
b3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBjb25zdCBTaGFyZWFibGVSZXNvdXJjZTo6SGFuZGxlJiBo
YW5kbGUsIFNlc3Npb25JRCBzZXNzaW9uSUQpCiB7Ci0gICAgQ2FjaGVkUmVzb3VyY2UqIHJlc291
cmNlID0gbWVtb3J5Q2FjaGUoKS0+cmVzb3VyY2VGb3JSZXF1ZXN0KHJlcXVlc3QpOworICAgIENh
Y2hlZFJlc291cmNlKiByZXNvdXJjZSA9IG1lbW9yeUNhY2hlKCktPnJlc291cmNlRm9yUmVxdWVz
dChyZXF1ZXN0LCBzZXNzaW9uSUQpOwogICAgIGlmICghcmVzb3VyY2UpCiAgICAgICAgIHJldHVy
bjsKICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTmV0d29yay9O
ZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24uaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTmV0
d29yay9OZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24uaAppbmRleCA4NDJmNmViLi45MzZkNjZlIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nl
c3NDb25uZWN0aW9uLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9OZXR3b3JrL05l
dHdvcmtQcm9jZXNzQ29ubmVjdGlvbi5oCkBAIC00MSw2ICs0MSw3IEBAIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIGNsYXNzIFJlc291cmNlRXJyb3I7CiBjbGFzcyBSZXNvdXJjZVJlcXVlc3Q7CiBjbGFz
cyBSZXNvdXJjZVJlc3BvbnNlOworY2xhc3MgU2Vzc2lvbklEOwogfQogCiBuYW1lc3BhY2UgV2Vi
S2l0IHsKQEAgLTcwLDcgKzcxLDcgQEAgcHJpdmF0ZToKIAogI2lmIEVOQUJMRShTSEFSRUFCTEVf
UkVTT1VSQ0UpCiAgICAgLy8gTWVzc2FnZSBoYW5kbGVycy4KLSAgICB2b2lkIGRpZENhY2hlUmVz
b3VyY2UoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgU2hhcmVhYmxlUmVz
b3VyY2U6OkhhbmRsZSYpOworICAgIHZvaWQgZGlkQ2FjaGVSZXNvdXJjZShjb25zdCBXZWJDb3Jl
OjpSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBTaGFyZWFibGVSZXNvdXJjZTo6SGFuZGxlJiwgV2Vi
Q29yZTo6U2Vzc2lvbklEKTsKICNlbmRpZgogCiAgICAgLy8gVGhlIGNvbm5lY3Rpb24gZnJvbSB0
aGUgd2ViIHByb2Nlc3MgdG8gdGhlIG5ldHdvcmsgcHJvY2Vzcy4KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24ubWVz
c2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nl
c3NDb25uZWN0aW9uLm1lc3NhZ2VzLmluCmluZGV4IGU2OTg5ZDkuLmMxZjc4YzQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc0Nvbm5l
Y3Rpb24ubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9OZXR3b3Jr
L05ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbi5tZXNzYWdlcy5pbgpAQCAtMjUsNyArMjUsNyBAQAog
bWVzc2FnZXMgLT4gTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uIExlZ2FjeVJlY2VpdmVyIHsKIAog
I2lmIEVOQUJMRShTSEFSRUFCTEVfUkVTT1VSQ0UpCi0gICAgRGlkQ2FjaGVSZXNvdXJjZShXZWJD
b3JlOjpSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdCwgV2ViS2l0OjpTaGFyZWFibGVSZXNvdXJjZTo6
SGFuZGxlIHJlc291cmNlKQorICAgIERpZENhY2hlUmVzb3VyY2UoV2ViQ29yZTo6UmVzb3VyY2VS
ZXF1ZXN0IHJlcXVlc3QsIFdlYktpdDo6U2hhcmVhYmxlUmVzb3VyY2U6OkhhbmRsZSByZXNvdXJj
ZSwgV2ViQ29yZTo6U2Vzc2lvbklEIHNlc3Npb25JRCkKICNlbmRpZgogCiB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>225432</attachid>
            <date>2014-02-27 17:25:38 -0800</date>
            <delta_ts>2014-02-27 20:53:32 -0800</delta_ts>
            <desc>restore MemoryCache::resourceForURL(const URL&amp;)</desc>
            <filename>memcachesession.25.diff</filename>
            <type>text/plain</type>
            <size>65887</size>
            <attacher name="Martin Hock">mhock</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBkNWY0YWMyLi4zM2I4MTQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsOTQg
QEAKKzIwMTQtMDItMjYgIE1hcnRpbiBIb2NrICA8bWhvY2tAYXBwbGUuY29tPgorCisgICAgICAg
IEFkZCBzdXBwb3J0IGZvciBzZXNzaW9ucyB0byBNZW1vcnlDYWNoZS4KKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyNzc5NAorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2ViQ29yZS5leHAuaW46CisgICAg
ICAgICogZWRpdGluZy9EZWxldGVCdXR0b25Db250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkRlbGV0ZUJ1dHRvbkNvbnRyb2xsZXI6OmNyZWF0ZURlbGV0aW9uVUkpOiBJbml0aWFsaXpl
IENhY2hlZEltYWdlIHdpdGggc2Vzc2lvbklELgorICAgICAgICAqIGh0bWwvRE9NVVJMLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkRPTVVSTDo6cmV2b2tlT2JqZWN0VVJMKTogUmVtb3ZlIFVSTCBm
cm9tIE1lbW9yeUNhY2hlIGZvciBhbGwgc2Vzc2lvbnMuCisgICAgICAgICogaW5zcGVjdG9yL0lu
c3BlY3RvclBhZ2VBZ2VudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JQYWdlQWdl
bnQ6OmNhY2hlZFJlc291cmNlKTogUGFzcyBzZXNzaW9uSUQgdG8gTWVtb3J5Q2FjaGUuCisgICAg
ICAgICogaW5zcGVjdG9yL0luc3BlY3RvclJlc291cmNlQWdlbnQuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6SW5zcGVjdG9yUmVzb3VyY2VBZ2VudDo6cmVwbGF5WEhSKTogRGl0dG8uCisgICAgICAg
ICogbG9hZGVyL0RvY3VtZW50TG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmFyZUFsbExv
YWRlcnNQYWdlQ2FjaGVBY2NlcHRhYmxlKTogRGl0dG8uCisgICAgICAgICogbG9hZGVyL0ZyYW1l
TG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyOjp0ZWxsQ2xpZW50QWJv
dXRQYXN0TWVtb3J5Q2FjaGVMb2Fkcyk6IERpdHRvLgorICAgICAgICAqIGxvYWRlci9JbWFnZUxv
YWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZUxvYWRlcjo6dXBkYXRlRnJvbUVsZW1l
bnQpOiBJbml0aWFsaXplIENhY2hlZEltYWdlIHdpdGggc2Vzc2lvbklELgorICAgICAgICAqIGxv
YWRlci9hcmNoaXZlL2NmL0xlZ2FjeVdlYkFyY2hpdmUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
TGVnYWN5V2ViQXJjaGl2ZTo6Y3JlYXRlKTogUGFzcyBzZXNzaW9uSUQgdG8gTWVtb3J5Q2FjaGUu
CisgICAgICAgICogbG9hZGVyL2NhY2hlL0NhY2hlZENTU1N0eWxlU2hlZXQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6Q2FjaGVkQ1NTU3R5bGVTaGVldDo6Q2FjaGVkQ1NTU3R5bGVTaGVldCk6IENv
bnN0cnVjdG9yIHRha2VzIHNlc3Npb25JRC4KKyAgICAgICAgKiBsb2FkZXIvY2FjaGUvQ2FjaGVk
Q1NTU3R5bGVTaGVldC5oOgorICAgICAgICAqIGxvYWRlci9jYWNoZS9DYWNoZWRGb250LmNwcDog
RGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRGb250OjpDYWNoZWRGb250KToKKyAgICAg
ICAgKiBsb2FkZXIvY2FjaGUvQ2FjaGVkRm9udC5oOgorICAgICAgICAqIGxvYWRlci9jYWNoZS9D
YWNoZWRJbWFnZS5jcHA6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkSW1hZ2U6OkNh
Y2hlZEltYWdlKToKKyAgICAgICAgKiBsb2FkZXIvY2FjaGUvQ2FjaGVkSW1hZ2UuaDoKKyAgICAg
ICAgKiBsb2FkZXIvY2FjaGUvQ2FjaGVkUmF3UmVzb3VyY2UuY3BwOiBEaXR0by4KKyAgICAgICAg
KFdlYkNvcmU6OkNhY2hlZFJhd1Jlc291cmNlOjpDYWNoZWRSYXdSZXNvdXJjZSk6CisgICAgICAg
ICogbG9hZGVyL2NhY2hlL0NhY2hlZFJhd1Jlc291cmNlLmg6CisgICAgICAgICogbG9hZGVyL2Nh
Y2hlL0NhY2hlZFJlc291cmNlLmNwcDogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRS
ZXNvdXJjZTo6Q2FjaGVkUmVzb3VyY2UpOgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkUmVzb3Vy
Y2U6On5DYWNoZWRSZXNvdXJjZSk6IFBhc3Mgc2Vzc2lvbklEIHRvIE1lbW9yeUNhY2hlLgorICAg
ICAgICAqIGxvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZS5oOgorICAgICAgICAoV2ViQ29yZTo6
Q2FjaGVkUmVzb3VyY2U6OnNlc3Npb25JRCk6CisgICAgICAgICogbG9hZGVyL2NhY2hlL0NhY2hl
ZFJlc291cmNlTG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZVJlc291cmNlKTog
Q29uc3RydWN0b3JzIHRha2Ugc2Vzc2lvbklELgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkUmVz
b3VyY2VMb2FkZXI6OnNlc3Npb25JRCk6IFJldHJpZXZlIHNlc3Npb25JRCBmcm9tIHBhZ2UuCisg
ICAgICAgIChXZWJDb3JlOjpDYWNoZWRSZXNvdXJjZUxvYWRlcjo6cmVxdWVzdFVzZXJDU1NTdHls
ZVNoZWV0KTogUGFzcyBzZXNzaW9uSUQgdG8gTWVtb3J5Q2FjaGUuCisgICAgICAgIChXZWJDb3Jl
OjpDYWNoZWRSZXNvdXJjZUxvYWRlcjo6cmVxdWVzdFJlc291cmNlKTogSW5pdGlhbGl6ZSBDYWNo
ZWRDU1NTdHlsZVNoZWV0IHdpdGggc2Vzc2lvbklELgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVk
UmVzb3VyY2VMb2FkZXI6OnJldmFsaWRhdGVSZXNvdXJjZSk6IEluaXRpYWxpemUgY2FjaGVkIHJl
c291cmNlIHdpdGggc2Vzc2lvbklELgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkUmVzb3VyY2VM
b2FkZXI6OmxvYWRSZXNvdXJjZSk6IFBhc3Mgc2Vzc2lvbklEIHRvIE1lbW9yeUNhY2hlIGFuZCBp
bml0aWFsaXplIGNhY2hlZCByZXNvdXJjZSB3aXRoIHNlc3Npb25JRC4KKyAgICAgICAgKiBsb2Fk
ZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VMb2FkZXIuaDoKKyAgICAgICAgKiBsb2FkZXIvY2FjaGUv
Q2FjaGVkU1ZHRG9jdW1lbnQuY3BwOiBDb25zdHJ1Y3RvciB0YWtlcyBzZXNzaW9uSUQuCisgICAg
ICAgIChXZWJDb3JlOjpDYWNoZWRTVkdEb2N1bWVudDo6Q2FjaGVkU1ZHRG9jdW1lbnQpOgorICAg
ICAgICAqIGxvYWRlci9jYWNoZS9DYWNoZWRTVkdEb2N1bWVudC5oOgorICAgICAgICAqIGxvYWRl
ci9jYWNoZS9DYWNoZWRTY3JpcHQuY3BwOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OkNhY2hl
ZFNjcmlwdDo6Q2FjaGVkU2NyaXB0KToKKyAgICAgICAgKiBsb2FkZXIvY2FjaGUvQ2FjaGVkU2Ny
aXB0Lmg6CisgICAgICAgICogbG9hZGVyL2NhY2hlL0NhY2hlZFRleHRUcmFjay5jcHA6IERpdHRv
LgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkVGV4dFRyYWNrOjpDYWNoZWRUZXh0VHJhY2spOgor
ICAgICAgICAqIGxvYWRlci9jYWNoZS9DYWNoZWRUZXh0VHJhY2suaDoKKyAgICAgICAgKiBsb2Fk
ZXIvY2FjaGUvQ2FjaGVkWFNMU3R5bGVTaGVldC5jcHA6IERpdHRvLgorICAgICAgICAoV2ViQ29y
ZTo6Q2FjaGVkWFNMU3R5bGVTaGVldDo6Q2FjaGVkWFNMU3R5bGVTaGVldCk6CisgICAgICAgICog
bG9hZGVyL2NhY2hlL0NhY2hlZFhTTFN0eWxlU2hlZXQuaDoKKyAgICAgICAgKiBsb2FkZXIvY2Fj
aGUvTWVtb3J5Q2FjaGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVtb3J5Q2FjaGU6OmdldFNl
c3Npb25NYXApOiBSZXRyaWV2ZSBDYWNoZWRSZXNvdXJjZU1hcCBiYXNlZCBvbiBzZXNzaW9uSUQu
CisgICAgICAgIChXZWJDb3JlOjpNZW1vcnlDYWNoZTo6YWRkKTogVXNlIHNlc3Npb25JRCBmcm9t
IENhY2hlZFJlc291cmNlIHBhcmFtZXRlci4KKyAgICAgICAgKFdlYkNvcmU6Ok1lbW9yeUNhY2hl
OjpyZXZhbGlkYXRpb25TdWNjZWVkZWQpOiBBZGQgc2Vzc2lvbklEIHBhcmFtZXRlci4KKyAgICAg
ICAgKFdlYkNvcmU6Ok1lbW9yeUNhY2hlOjpyZXNvdXJjZUZvclVSTCk6IERpdHRvLgorICAgICAg
ICAoV2ViQ29yZTo6TWVtb3J5Q2FjaGU6OnJlc291cmNlRm9yUmVxdWVzdCk6IERpdHRvLCBhbHNv
IG1vdmUgaW1wbCBpbnRvIGltcGwgbWV0aG9kLgorICAgICAgICAoV2ViQ29yZTo6TWVtb3J5Q2Fj
aGU6OnJlc291cmNlRm9yUmVxdWVzdEltcGwpOiBBZGQgQ2FjaGVkUmVzb3VyY2VNYXAgcGFyYW1l
dGVyLgorICAgICAgICAoV2ViQ29yZTo6TWVtb3J5Q2FjaGU6OmFkZEltYWdlVG9DYWNoZSk6IFVz
ZSBkZWZhdWx0IHNlc3Npb25JRC4KKyAgICAgICAgKFdlYkNvcmU6Ok1lbW9yeUNhY2hlOjpyZW1v
dmVJbWFnZUZyb21DYWNoZSk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6TWVtb3J5Q2FjaGU6
OmV2aWN0KTogVXNlIHNlc3Npb25JRCBmcm9tIENhY2hlZFJlc291cmNlIHBhcmFtZXRlci4KKyAg
ICAgICAgKFdlYkNvcmU6Ok1lbW9yeUNhY2hlOjpyZW1vdmVSZXNvdXJjZXNXaXRoT3JpZ2luKTog
SXRlcmF0ZSB0aHJvdWdoIGFsbCBDYWNoZWRSZXNvdXJjZU1hcHMuCisgICAgICAgIChXZWJDb3Jl
OjpNZW1vcnlDYWNoZTo6Z2V0T3JpZ2luc1dpdGhDYWNoZSk6IERpdHRvLgorICAgICAgICAoV2Vi
Q29yZTo6TWVtb3J5Q2FjaGU6OnJlbW92ZVVybEZyb21DYWNoZSk6IEFkZCBzZXNzaW9uSUQgcGFy
YW1ldGVyLgorICAgICAgICAoV2ViQ29yZTo6TWVtb3J5Q2FjaGU6OnJlbW92ZVJlcXVlc3RGcm9t
Q2FjaGUpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6Ok1lbW9yeUNhY2hlOjpyZW1vdmVSZXF1
ZXN0RnJvbUNhY2hlSW1wbCk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6TWVtb3J5Q2FjaGU6
OnJlbW92ZVJlcXVlc3RGcm9tU2Vzc2lvbkNhY2hlcyk6IEl0ZXJhdGUgdGhyb3VnaCBhbGwgQ2Fj
aGVkUmVzb3VyY2VNYXBzLgorICAgICAgICAoV2ViQ29yZTo6TWVtb3J5Q2FjaGU6OmNyb3NzVGhy
ZWFkUmVtb3ZlUmVxdWVzdEZyb21DYWNoZSk6IEFkZCBzZXNzaW9uSUQgcGFyYW1ldGVyLgorICAg
ICAgICAoV2ViQ29yZTo6TWVtb3J5Q2FjaGU6OmdldFN0YXRpc3RpY3MpOiBJdGVyYXRlIHRocm91
Z2ggYWxsIENhY2hlZFJlc291cmNlTWFwcy4KKyAgICAgICAgKFdlYkNvcmU6Ok1lbW9yeUNhY2hl
OjpzZXREaXNhYmxlZCk6IERpdHRvLgorICAgICAgICAqIGxvYWRlci9jYWNoZS9NZW1vcnlDYWNo
ZS5oOiBDcmVhdGUgYW5vdGhlciBsZXZlbCBmb3IgY2FjaGUuCisgICAgICAgICogcGxhdGZvcm0v
Q3Jvc3NUaHJlYWRDb3BpZXIuY3BwOiBBbGxvdyBjb3B5aW5nIFNlc3Npb25JRHMgYWNyb3NzIHRo
cmVhZHMuCisgICAgICAgIChXZWJDb3JlOjpTZXNzaW9uSUQ+Ojpjb3B5KToKKyAgICAgICAgKiBw
bGF0Zm9ybS9Dcm9zc1RocmVhZENvcGllci5oOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsv
Y2YvUmVzb3VyY2VSZXF1ZXN0Lmg6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3Q6
OlJlc291cmNlUmVxdWVzdCk6IFJlbW92ZSB0cmFpbGluZyB3aGl0ZXNwYWNlLgorICAgICAgICAq
IHJlbmRlcmluZy9SZW5kZXJTbmFwc2hvdHRlZFBsdWdJbi5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpSZW5kZXJTbmFwc2hvdHRlZFBsdWdJbjo6dXBkYXRlU25hcHNob3QpOiBJbml0aWFsaXplIENh
Y2hlZEltYWdlIHdpdGggc2Vzc2lvbklELgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxzLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkludGVybmFsczo6aXNMb2FkaW5nRnJvbU1lbW9yeUNhY2hl
KTogUGFzcyBzZXNzaW9uSUQgdG8gTWVtb3J5Q2FjaGUuCisKIDIwMTQtMDItMTcgIE15bGVzIEMu
IE1heGZpZWxkICA8bW1heGZpZWxkQGFwcGxlLmNvbT4KIAogICAgICAgICB0ZXh0LWRlY29yYXRp
b24tc2tpcDogaW5rIGRvZXMgbm90IHNraXAgb3ZlciBTVkcgZm9udHMKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAu
aW4KaW5kZXggYzYwZjg0YS4uZTk1MzdiZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS5leHAuaW4KKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KQEAgLTE3MCw4
ICsxNzAsOSBAQCBfX1pON1dlYkNvcmUxMU1lbW9yeUNhY2hlMTNnZXRTdGF0aXN0aWNzRXYKIF9f
Wk43V2ViQ29yZTExTWVtb3J5Q2FjaGUxM3NldENhcGFjaXRpZXNFampqCiBfX1pON1dlYkNvcmUx
MU1lbW9yeUNhY2hlMTRldmljdFJlc291cmNlc0V2CiBfX1pON1dlYkNvcmUxMU1lbW9yeUNhY2hl
MTRyZXNvdXJjZUZvclVSTEVSS05TXzNVUkxFCitfX1pON1dlYkNvcmUxMU1lbW9yeUNhY2hlMTRy
ZXNvdXJjZUZvclVSTEVSS05TXzNVUkxFTlNfOVNlc3Npb25JREUKIF9fWk43V2ViQ29yZTExTWVt
b3J5Q2FjaGUxNWFkZEltYWdlVG9DYWNoZUVQN0NHSW1hZ2VSS05TXzNVUkxFUktOM1dURjZTdHJp
bmdFCi1fX1pON1dlYkNvcmUxMU1lbW9yeUNhY2hlMThyZXNvdXJjZUZvclJlcXVlc3RFUktOU18x
NVJlc291cmNlUmVxdWVzdEUKK19fWk43V2ViQ29yZTExTWVtb3J5Q2FjaGUxOHJlc291cmNlRm9y
UmVxdWVzdEVSS05TXzE1UmVzb3VyY2VSZXF1ZXN0RU5TXzlTZXNzaW9uSURFCiBfX1pON1dlYkNv
cmUxMU1lbW9yeUNhY2hlMTlnZXRPcmlnaW5zV2l0aENhY2hlRVJOM1dURjdIYXNoU2V0SU5TMV82
UmVmUHRySU5TXzE0U2VjdXJpdHlPcmlnaW5FRUVOU18xOFNlY3VyaXR5T3JpZ2luSGFzaEVOUzFf
MTBIYXNoVHJhaXRzSVM1X0VFRUUKIF9fWk43V2ViQ29yZTExTWVtb3J5Q2FjaGUyMHJlbW92ZUlt
YWdlRnJvbUNhY2hlRVJLTlNfM1VSTEVSS04zV1RGNlN0cmluZ0UKIF9fWk43V2ViQ29yZTExTWVt
b3J5Q2FjaGUyNXJlbW92ZVJlc291cmNlc1dpdGhPcmlnaW5FUE5TXzE0U2VjdXJpdHlPcmlnaW5F
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RlbGV0ZUJ1dHRvbkNvbnRyb2xs
ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EZWxldGVCdXR0b25Db250cm9sbGVyLmNw
cAppbmRleCA4MjBiMGFjLi4xNWU2N2U2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL0RlbGV0ZUJ1dHRvbkNvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvRGVsZXRlQnV0dG9uQ29udHJvbGxlci5jcHAKQEAgLTI1NCw3ICsyNTQsNyBAQCB2b2lkIERl
bGV0ZUJ1dHRvbkNvbnRyb2xsZXI6OmNyZWF0ZURlbGV0aW9uVUkoKQogICAgIGlmIChidXR0b25J
bWFnZS0+aXNOdWxsKCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIGJ1dHRvbi0+c2V0Q2FjaGVk
SW1hZ2UobmV3IENhY2hlZEltYWdlKGJ1dHRvbkltYWdlLmdldCgpKSk7CisgICAgYnV0dG9uLT5z
ZXRDYWNoZWRJbWFnZShuZXcgQ2FjaGVkSW1hZ2UoYnV0dG9uSW1hZ2UuZ2V0KCksIG1fZnJhbWUu
cGFnZSgpLT5zZXNzaW9uSUQoKSkpOwogCiAgICAgY29udGFpbmVyLT5hcHBlbmRDaGlsZChidXR0
b24uZ2V0KCksIGVjKTsKICAgICBBU1NFUlQoIWVjKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvRE9NVVJMLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRE9NVVJMLmNwcAppbmRl
eCA0ZTQ0MjU0Li41YjQ5ZGNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0RPTVVS
TC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9ET01VUkwuY3BwCkBAIC0xMjQsNyArMTI0
LDcgQEAgdm9pZCBET01VUkw6OnJldm9rZU9iamVjdFVSTChTY3JpcHRFeGVjdXRpb25Db250ZXh0
KiBzY3JpcHRFeGVjdXRpb25Db250ZXh0LCBjb24KICNpZiBFTkFCTEUoQ0FDSEVfUEFSVElUSU9O
SU5HKQogICAgIHJlcXVlc3Quc2V0Q2FjaGVQYXJ0aXRpb24oc2NyaXB0RXhlY3V0aW9uQ29udGV4
dC0+dG9wT3JpZ2luKCktPmNhY2hlUGFydGl0aW9uKCkpOwogI2VuZGlmCi0gICAgTWVtb3J5Q2Fj
aGU6OnJlbW92ZVJlcXVlc3RGcm9tQ2FjaGUoc2NyaXB0RXhlY3V0aW9uQ29udGV4dCwgcmVxdWVz
dCk7CisgICAgTWVtb3J5Q2FjaGU6OnJlbW92ZVJlcXVlc3RGcm9tU2Vzc2lvbkNhY2hlcyhzY3Jp
cHRFeGVjdXRpb25Db250ZXh0LCByZXF1ZXN0KTsKIAogICAgIHNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQtPnB1YmxpY1VSTE1hbmFnZXIoKS5yZXZva2UodXJsKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JQYWdlQWdlbnQuY3BwIGIvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL0luc3BlY3RvclBhZ2VBZ2VudC5jcHAKaW5kZXggY2ZlZTVkOC4uMzAxMjkw
NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclBhZ2VBZ2Vu
dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclBhZ2VBZ2VudC5j
cHAKQEAgLTI4Miw3ICsyODIsNyBAQCBDYWNoZWRSZXNvdXJjZSogSW5zcGVjdG9yUGFnZUFnZW50
OjpjYWNoZWRSZXNvdXJjZShGcmFtZSogZnJhbWUsIGNvbnN0IFVSTCYgdXJsKQogI2lmIEVOQUJM
RShDQUNIRV9QQVJUSVRJT05JTkcpCiAgICAgICAgIHJlcXVlc3Quc2V0Q2FjaGVQYXJ0aXRpb24o
ZnJhbWUtPmRvY3VtZW50KCktPnRvcE9yaWdpbigpLT5jYWNoZVBhcnRpdGlvbigpKTsKICNlbmRp
ZgotICAgICAgICBjYWNoZWRSZXNvdXJjZSA9IG1lbW9yeUNhY2hlKCktPnJlc291cmNlRm9yUmVx
dWVzdChyZXF1ZXN0KTsKKyAgICAgICAgY2FjaGVkUmVzb3VyY2UgPSBtZW1vcnlDYWNoZSgpLT5y
ZXNvdXJjZUZvclJlcXVlc3QocmVxdWVzdCwgZnJhbWUtPnBhZ2UoKS0+c2Vzc2lvbklEKCkpOwog
ICAgIH0KIAogICAgIHJldHVybiBjYWNoZWRSZXNvdXJjZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JSZXNvdXJjZUFnZW50LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9JbnNwZWN0b3JSZXNvdXJjZUFnZW50LmNwcAppbmRleCBhNjU0OGI2Li5m
N2JlMzNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUmVz
b3VyY2VBZ2VudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclJl
c291cmNlQWdlbnQuY3BwCkBAIC01OTQsNyArNTk0LDcgQEAgdm9pZCBJbnNwZWN0b3JSZXNvdXJj
ZUFnZW50OjpyZXBsYXlYSFIoRXJyb3JTdHJpbmcqLCBjb25zdCBTdHJpbmcmIHJlcXVlc3RJZCkK
ICNpZiBFTkFCTEUoQ0FDSEVfUEFSVElUSU9OSU5HKQogICAgIHJlcXVlc3Quc2V0Q2FjaGVQYXJ0
aXRpb24obV9wYWdlQWdlbnQtPm1haW5GcmFtZSgpLT5kb2N1bWVudCgpLT50b3BPcmlnaW4oKS0+
Y2FjaGVQYXJ0aXRpb24oKSk7CiAjZW5kaWYKLSAgICBDYWNoZWRSZXNvdXJjZSogY2FjaGVkUmVz
b3VyY2UgPSBtZW1vcnlDYWNoZSgpLT5yZXNvdXJjZUZvclJlcXVlc3QocmVxdWVzdCk7CisgICAg
Q2FjaGVkUmVzb3VyY2UqIGNhY2hlZFJlc291cmNlID0gbWVtb3J5Q2FjaGUoKS0+cmVzb3VyY2VG
b3JSZXF1ZXN0KHJlcXVlc3QsIG1fcGFnZUFnZW50LT5wYWdlKCktPnNlc3Npb25JRCgpKTsKICAg
ICBpZiAoY2FjaGVkUmVzb3VyY2UpCiAgICAgICAgIG1lbW9yeUNhY2hlKCktPnJlbW92ZShjYWNo
ZWRSZXNvdXJjZSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVu
dExvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkZXIuY3BwCmlu
ZGV4IDU5MDg5YWMuLmU0ZTU0YWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9E
b2N1bWVudExvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50TG9h
ZGVyLmNwcApAQCAtMTA1LDcgKzEwNSwxMCBAQCBzdGF0aWMgYm9vbCBhcmVBbGxMb2FkZXJzUGFn
ZUNhY2hlQWNjZXB0YWJsZShjb25zdCBSZXNvdXJjZUxvYWRlclNldCYgbG9hZGVycykKICAgICAg
ICAgaWYgKCFoYW5kbGUpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICAgICAgQ2Fj
aGVkUmVzb3VyY2UqIGNhY2hlZFJlc291cmNlID0gbWVtb3J5Q2FjaGUoKS0+cmVzb3VyY2VGb3JV
UkwoaGFuZGxlLT5maXJzdFJlcXVlc3QoKS51cmwoKSk7CisgICAgICAgIGlmICghbG9hZGVyLT5m
cmFtZUxvYWRlcigpKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgICAgIENhY2hl
ZFJlc291cmNlKiBjYWNoZWRSZXNvdXJjZSA9IG1lbW9yeUNhY2hlKCktPnJlc291cmNlRm9yVVJM
KGhhbmRsZS0+Zmlyc3RSZXF1ZXN0KCkudXJsKCksIGxvYWRlci0+ZnJhbWVMb2FkZXIoKS0+ZnJh
bWUoKS5wYWdlKCktPnNlc3Npb25JRCgpKTsKICAgICAgICAgaWYgKCFjYWNoZWRSZXNvdXJjZSkK
ICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
bG9hZGVyL0ZyYW1lTG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRl
ci5jcHAKaW5kZXggZmZmNjIyZS4uMTQ5NmFhMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
bG9hZGVyL0ZyYW1lTG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVM
b2FkZXIuY3BwCkBAIC0zMzc2LDcgKzMzNzYsNyBAQCB2b2lkIEZyYW1lTG9hZGVyOjp0ZWxsQ2xp
ZW50QWJvdXRQYXN0TWVtb3J5Q2FjaGVMb2FkcygpCiAKICAgICBzaXplX3Qgc2l6ZSA9IHBhc3RM
b2Fkcy5zaXplKCk7CiAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBzaXplOyArK2kpIHsKLSAg
ICAgICAgQ2FjaGVkUmVzb3VyY2UqIHJlc291cmNlID0gbWVtb3J5Q2FjaGUoKS0+cmVzb3VyY2VG
b3JSZXF1ZXN0KHBhc3RMb2Fkc1tpXSk7CisgICAgICAgIENhY2hlZFJlc291cmNlKiByZXNvdXJj
ZSA9IG1lbW9yeUNhY2hlKCktPnJlc291cmNlRm9yUmVxdWVzdChwYXN0TG9hZHNbaV0sIG1fZnJh
bWUucGFnZSgpLT5zZXNzaW9uSUQoKSk7CiAKICAgICAgICAgLy8gRklYTUU6IFRoZXNlIGxvYWRz
LCBsb2FkZWQgZnJvbSBjYWNoZSwgYnV0IG5vdyBnb25lIGZyb20gdGhlIGNhY2hlIGJ5IHRoZSB0
aW1lCiAgICAgICAgIC8vIFBhZ2U6OnNldE1lbW9yeUNhY2hlQ2xpZW50Q2FsbHNFbmFibGVkKHRy
dWUpIGlzIGNhbGxlZCwgd2lsbCBub3QgYmUgc2VlbiBieSB0aGUgY2xpZW50LgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ltYWdlTG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9JbWFnZUxvYWRlci5jcHAKaW5kZXggMzA2YTFiNzYuLmU0OGQ0N2IgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9JbWFnZUxvYWRlci5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvbG9hZGVyL0ltYWdlTG9hZGVyLmNwcApAQCAtMzQsNiArMzQsNyBAQAogI2luY2x1ZGUg
IkhUTUxOYW1lcy5oIgogI2luY2x1ZGUgIkhUTUxPYmplY3RFbGVtZW50LmgiCiAjaW5jbHVkZSAi
SFRNTFBhcnNlcklkaW9tcy5oIgorI2luY2x1ZGUgIlBhZ2UuaCIKICNpbmNsdWRlICJSZW5kZXJJ
bWFnZS5oIgogI2luY2x1ZGUgIlJlbmRlclNWR0ltYWdlLmgiCiAjaW5jbHVkZSAiU2VjdXJpdHlP
cmlnaW4uaCIKQEAgLTE4OCw3ICsxODksNyBAQCB2b2lkIEltYWdlTG9hZGVyOjp1cGRhdGVGcm9t
RWxlbWVudCgpCiAgICAgICAgIGlmIChtX2xvYWRNYW51YWxseSkgewogICAgICAgICAgICAgYm9v
bCBhdXRvTG9hZE90aGVySW1hZ2VzID0gZG9jdW1lbnQuY2FjaGVkUmVzb3VyY2VMb2FkZXIoKS0+
YXV0b0xvYWRJbWFnZXMoKTsKICAgICAgICAgICAgIGRvY3VtZW50LmNhY2hlZFJlc291cmNlTG9h
ZGVyKCktPnNldEF1dG9Mb2FkSW1hZ2VzKGZhbHNlKTsKLSAgICAgICAgICAgIG5ld0ltYWdlID0g
bmV3IENhY2hlZEltYWdlKHJlcXVlc3QucmVzb3VyY2VSZXF1ZXN0KCkpOworICAgICAgICAgICAg
bmV3SW1hZ2UgPSBuZXcgQ2FjaGVkSW1hZ2UocmVxdWVzdC5yZXNvdXJjZVJlcXVlc3QoKSwgbV9l
bGVtZW50LmRvY3VtZW50KCkucGFnZSgpLT5zZXNzaW9uSUQoKSk7CiAgICAgICAgICAgICBuZXdJ
bWFnZS0+c2V0TG9hZGluZyh0cnVlKTsKICAgICAgICAgICAgIG5ld0ltYWdlLT5zZXRPd25pbmdD
YWNoZWRSZXNvdXJjZUxvYWRlcihkb2N1bWVudC5jYWNoZWRSZXNvdXJjZUxvYWRlcigpKTsKICAg
ICAgICAgICAgIGRvY3VtZW50LmNhY2hlZFJlc291cmNlTG9hZGVyKCktPm1fZG9jdW1lbnRSZXNv
dXJjZXMuc2V0KG5ld0ltYWdlLT51cmwoKSwgbmV3SW1hZ2UuZ2V0KCkpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvbG9hZGVyL2FyY2hpdmUvY2YvTGVnYWN5V2ViQXJjaGl2ZS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvYXJjaGl2ZS9jZi9MZWdhY3lXZWJBcmNoaXZlLmNwcAppbmRl
eCAzMWYxYTFiLi4wMjRkMjhmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvYXJj
aGl2ZS9jZi9MZWdhY3lXZWJBcmNoaXZlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
YXJjaGl2ZS9jZi9MZWdhY3lXZWJBcmNoaXZlLmNwcApAQCAtNTU0LDcgKzU1NCw3IEBAIFBhc3NS
ZWZQdHI8TGVnYWN5V2ViQXJjaGl2ZT4gTGVnYWN5V2ViQXJjaGl2ZTo6Y3JlYXRlKGNvbnN0IFN0
cmluZyYgbWFya3VwU3RyaW5nCiAjaWYgRU5BQkxFKENBQ0hFX1BBUlRJVElPTklORykKICAgICAg
ICAgICAgICAgICByZXF1ZXN0LnNldENhY2hlUGFydGl0aW9uKGZyYW1lLT5kb2N1bWVudCgpLT50
b3BPcmlnaW4oKS0+Y2FjaGVQYXJ0aXRpb24oKSk7CiAjZW5kaWYKLSAgICAgICAgICAgICAgICBD
YWNoZWRSZXNvdXJjZSogY2FjaGVkUmVzb3VyY2UgPSBtZW1vcnlDYWNoZSgpLT5yZXNvdXJjZUZv
clJlcXVlc3QocmVxdWVzdCk7CisgICAgICAgICAgICAgICAgQ2FjaGVkUmVzb3VyY2UqIGNhY2hl
ZFJlc291cmNlID0gbWVtb3J5Q2FjaGUoKS0+cmVzb3VyY2VGb3JSZXF1ZXN0KHJlcXVlc3QsIGZy
YW1lLT5wYWdlKCktPnNlc3Npb25JRCgpKTsKICAgICAgICAgICAgICAgICBpZiAoY2FjaGVkUmVz
b3VyY2UpIHsKICAgICAgICAgICAgICAgICAgICAgUmVzb3VyY2VCdWZmZXIqIGRhdGEgPSBjYWNo
ZWRSZXNvdXJjZS0+cmVzb3VyY2VCdWZmZXIoKTsKICAgICAgICAgICAgICAgICAgICAgcmVzb3Vy
Y2UgPSBBcmNoaXZlUmVzb3VyY2U6OmNyZWF0ZShkYXRhID8gZGF0YS0+c2hhcmVkQnVmZmVyKCkg
OiAwLCBzdWJyZXNvdXJjZVVSTCwgY2FjaGVkUmVzb3VyY2UtPnJlc3BvbnNlKCkpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZENTU1N0eWxlU2hlZXQuY3Bw
IGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZENTU1N0eWxlU2hlZXQuY3BwCmlu
ZGV4IDY5YmNlOGYuLmU4YWFkNDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9j
YWNoZS9DYWNoZWRDU1NTdHlsZVNoZWV0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
Y2FjaGUvQ2FjaGVkQ1NTU3R5bGVTaGVldC5jcHAKQEAgLTQwLDggKzQwLDggQEAKIAogbmFtZXNw
YWNlIFdlYkNvcmUgewogCi1DYWNoZWRDU1NTdHlsZVNoZWV0OjpDYWNoZWRDU1NTdHlsZVNoZWV0
KGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVzb3VyY2VSZXF1ZXN0LCBjb25zdCBTdHJpbmcmIGNo
YXJzZXQpCi0gICAgOiBDYWNoZWRSZXNvdXJjZShyZXNvdXJjZVJlcXVlc3QsIENTU1N0eWxlU2hl
ZXQpCitDYWNoZWRDU1NTdHlsZVNoZWV0OjpDYWNoZWRDU1NTdHlsZVNoZWV0KGNvbnN0IFJlc291
cmNlUmVxdWVzdCYgcmVzb3VyY2VSZXF1ZXN0LCBjb25zdCBTdHJpbmcmIGNoYXJzZXQsIFNlc3Np
b25JRCBzZXNzaW9uSUQpCisgICAgOiBDYWNoZWRSZXNvdXJjZShyZXNvdXJjZVJlcXVlc3QsIENT
U1N0eWxlU2hlZXQsIHNlc3Npb25JRCkKICAgICAsIG1fZGVjb2RlcihUZXh0UmVzb3VyY2VEZWNv
ZGVyOjpjcmVhdGUoInRleHQvY3NzIiwgY2hhcnNldCkpCiB7CiAgICAgLy8gUHJlZmVyIHRleHQv
Y3NzIGJ1dCBhY2NlcHQgYW55IHR5cGUgKGRlbGwuY29tIHNlcnZlcyBhIHN0eWxlc2hlZXQKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRDU1NTdHlsZVNoZWV0
LmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkQ1NTU3R5bGVTaGVldC5oCmlu
ZGV4IGY4YmIwYzYuLjViN2I3NDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9j
YWNoZS9DYWNoZWRDU1NTdHlsZVNoZWV0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2Nh
Y2hlL0NhY2hlZENTU1N0eWxlU2hlZXQuaApAQCAtMzgsNyArMzgsNyBAQCBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKICAgICBjbGFzcyBDYWNoZWRDU1NTdHlsZVNoZWV0IGZpbmFsIDogcHVibGljIENh
Y2hlZFJlc291cmNlIHsKICAgICBwdWJsaWM6Ci0gICAgICAgIENhY2hlZENTU1N0eWxlU2hlZXQo
Y29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgU3RyaW5nJiBjaGFyc2V0KTsKKyAgICAgICAg
Q2FjaGVkQ1NTU3R5bGVTaGVldChjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBTdHJpbmcm
IGNoYXJzZXQsIFNlc3Npb25JRCk7CiAgICAgICAgIHZpcnR1YWwgfkNhY2hlZENTU1N0eWxlU2hl
ZXQoKTsKIAogICAgICAgICBjb25zdCBTdHJpbmcgc2hlZXRUZXh0KGJvb2wgZW5mb3JjZU1JTUVU
eXBlID0gdHJ1ZSwgYm9vbCogaGFzVmFsaWRNSU1FVHlwZSA9IDApIGNvbnN0OwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZEZvbnQuY3BwIGIvU291cmNlL1dl
YkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZEZvbnQuY3BwCmluZGV4IGZiZjY1OGMuLjJhMWExNDMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRGb250LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkRm9udC5jcHAKQEAgLTUwLDgg
KzUwLDggQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1DYWNoZWRGb250OjpDYWNoZWRGb250
KGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVzb3VyY2VSZXF1ZXN0KQotICAgIDogQ2FjaGVkUmVz
b3VyY2UocmVzb3VyY2VSZXF1ZXN0LCBGb250UmVzb3VyY2UpCitDYWNoZWRGb250OjpDYWNoZWRG
b250KGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVzb3VyY2VSZXF1ZXN0LCBTZXNzaW9uSUQgc2Vz
c2lvbklEKQorICAgIDogQ2FjaGVkUmVzb3VyY2UocmVzb3VyY2VSZXF1ZXN0LCBGb250UmVzb3Vy
Y2UsIHNlc3Npb25JRCkKICAgICAsIG1fbG9hZEluaXRpYXRlZChmYWxzZSkKICAgICAsIG1faGFz
Q3JlYXRlZEZvbnREYXRhV3JhcHBpbmdSZXNvdXJjZShmYWxzZSkKIHsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRGb250LmggYi9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvY2FjaGUvQ2FjaGVkRm9udC5oCmluZGV4IDc0NGI2MmQuLmZiMjE2NTkzIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkRm9udC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRGb250LmgKQEAgLTQyLDcgKzQyLDcgQEAgc3Ry
dWN0IEZvbnRDdXN0b21QbGF0Zm9ybURhdGE7CiAKIGNsYXNzIENhY2hlZEZvbnQgZmluYWwgOiBw
dWJsaWMgQ2FjaGVkUmVzb3VyY2UgewogcHVibGljOgotICAgIENhY2hlZEZvbnQoY29uc3QgUmVz
b3VyY2VSZXF1ZXN0Jik7CisgICAgQ2FjaGVkRm9udChjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBT
ZXNzaW9uSUQpOwogICAgIHZpcnR1YWwgfkNhY2hlZEZvbnQoKTsKIAogICAgIHZvaWQgYmVnaW5M
b2FkSWZOZWVkZWQoQ2FjaGVkUmVzb3VyY2VMb2FkZXIqIGRsKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRJbWFnZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvY2FjaGUvQ2FjaGVkSW1hZ2UuY3BwCmluZGV4IDRjMjY2N2IuLmI5MmE5NzUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRJbWFnZS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZEltYWdlLmNwcApAQCAtNjAsOCArNjAs
OCBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLUNhY2hlZEltYWdlOjpDYWNoZWRJbWFnZShj
b25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlc291cmNlUmVxdWVzdCkKLSAgICA6IENhY2hlZFJlc291
cmNlKHJlc291cmNlUmVxdWVzdCwgSW1hZ2VSZXNvdXJjZSkKK0NhY2hlZEltYWdlOjpDYWNoZWRJ
bWFnZShjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlc291cmNlUmVxdWVzdCwgU2Vzc2lvbklEIHNl
c3Npb25JRCkKKyAgICA6IENhY2hlZFJlc291cmNlKHJlc291cmNlUmVxdWVzdCwgSW1hZ2VSZXNv
dXJjZSwgc2Vzc2lvbklEKQogICAgICwgbV9pbWFnZSgwKQogICAgICwgbV9pc01hbnVhbGx5Q2Fj
aGVkKGZhbHNlKQogICAgICwgbV9zaG91bGRQYWludEJyb2tlbkltYWdlKHRydWUpCkBAIC02OSw4
ICs2OSw4IEBAIENhY2hlZEltYWdlOjpDYWNoZWRJbWFnZShjb25zdCBSZXNvdXJjZVJlcXVlc3Qm
IHJlc291cmNlUmVxdWVzdCkKICAgICBzZXRTdGF0dXMoVW5rbm93bik7CiB9CiAKLUNhY2hlZElt
YWdlOjpDYWNoZWRJbWFnZShJbWFnZSogaW1hZ2UpCi0gICAgOiBDYWNoZWRSZXNvdXJjZShSZXNv
dXJjZVJlcXVlc3QoKSwgSW1hZ2VSZXNvdXJjZSkKK0NhY2hlZEltYWdlOjpDYWNoZWRJbWFnZShJ
bWFnZSogaW1hZ2UsIFNlc3Npb25JRCBzZXNzaW9uSUQpCisgICAgOiBDYWNoZWRSZXNvdXJjZShS
ZXNvdXJjZVJlcXVlc3QoKSwgSW1hZ2VSZXNvdXJjZSwgc2Vzc2lvbklEKQogICAgICwgbV9pbWFn
ZShpbWFnZSkKICAgICAsIG1faXNNYW51YWxseUNhY2hlZChmYWxzZSkKICAgICAsIG1fc2hvdWxk
UGFpbnRCcm9rZW5JbWFnZSh0cnVlKQpAQCAtNzksOCArNzksMTggQEAgQ2FjaGVkSW1hZ2U6OkNh
Y2hlZEltYWdlKEltYWdlKiBpbWFnZSkKICAgICBzZXRMb2FkaW5nKGZhbHNlKTsKIH0KIAotQ2Fj
aGVkSW1hZ2U6OkNhY2hlZEltYWdlKGNvbnN0IFVSTCYgdXJsLCBJbWFnZSogaW1hZ2UsIENhY2hl
ZEltYWdlOjpDYWNoZUJlaGF2aW9yVHlwZSB0eXBlKQotICAgIDogQ2FjaGVkUmVzb3VyY2UoUmVz
b3VyY2VSZXF1ZXN0KHVybCksIEltYWdlUmVzb3VyY2UpCitDYWNoZWRJbWFnZTo6Q2FjaGVkSW1h
Z2UoY29uc3QgVVJMJiB1cmwsIEltYWdlKiBpbWFnZSwgU2Vzc2lvbklEIHNlc3Npb25JRCkKKyAg
ICA6IENhY2hlZFJlc291cmNlKFJlc291cmNlUmVxdWVzdCh1cmwpLCBJbWFnZVJlc291cmNlLCBz
ZXNzaW9uSUQpCisgICAgLCBtX2ltYWdlKGltYWdlKQorICAgICwgbV9pc01hbnVhbGx5Q2FjaGVk
KGZhbHNlKQorICAgICwgbV9zaG91bGRQYWludEJyb2tlbkltYWdlKHRydWUpCit7CisgICAgc2V0
U3RhdHVzKENhY2hlZCk7CisgICAgc2V0TG9hZGluZyhmYWxzZSk7Cit9CisKK0NhY2hlZEltYWdl
OjpDYWNoZWRJbWFnZShjb25zdCBVUkwmIHVybCwgSW1hZ2UqIGltYWdlLCBDYWNoZWRJbWFnZTo6
Q2FjaGVCZWhhdmlvclR5cGUgdHlwZSwgU2Vzc2lvbklEIHNlc3Npb25JRCkKKyAgICA6IENhY2hl
ZFJlc291cmNlKFJlc291cmNlUmVxdWVzdCh1cmwpLCBJbWFnZVJlc291cmNlLCBzZXNzaW9uSUQp
CiAgICAgLCBtX2ltYWdlKGltYWdlKQogICAgICwgbV9pc01hbnVhbGx5Q2FjaGVkKHR5cGUgPT0g
Q2FjaGVkSW1hZ2U6Ok1hbnVhbGx5Q2FjaGVkKQogICAgICwgbV9zaG91bGRQYWludEJyb2tlbklt
YWdlKHRydWUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVk
SW1hZ2UuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRJbWFnZS5oCmluZGV4
IGI3ZDcyMTEuLjg2YWYwM2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNo
ZS9DYWNoZWRJbWFnZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRJ
bWFnZS5oCkBAIC01MCw5ICs1MCwxMCBAQCBjbGFzcyBDYWNoZWRJbWFnZSBmaW5hbCA6IHB1Ymxp
YyBDYWNoZWRSZXNvdXJjZSwgcHVibGljIEltYWdlT2JzZXJ2ZXIgewogcHVibGljOgogICAgIGVu
dW0gQ2FjaGVCZWhhdmlvclR5cGUgeyBBdXRvbWF0aWNhbGx5Q2FjaGVkLCBNYW51YWxseUNhY2hl
ZCB9OwogCi0gICAgQ2FjaGVkSW1hZ2UoY29uc3QgUmVzb3VyY2VSZXF1ZXN0Jik7Ci0gICAgQ2Fj
aGVkSW1hZ2UoSW1hZ2UqKTsKLSAgICBDYWNoZWRJbWFnZShjb25zdCBVUkwmLCBJbWFnZSosIENh
Y2hlQmVoYXZpb3JUeXBlID0gQXV0b21hdGljYWxseUNhY2hlZCk7CisgICAgQ2FjaGVkSW1hZ2Uo
Y29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgU2Vzc2lvbklEKTsKKyAgICBDYWNoZWRJbWFnZShJbWFn
ZSosIFNlc3Npb25JRCk7CisgICAgQ2FjaGVkSW1hZ2UoY29uc3QgVVJMJiwgSW1hZ2UqLCBTZXNz
aW9uSUQpOworICAgIENhY2hlZEltYWdlKGNvbnN0IFVSTCYsIEltYWdlKiwgQ2FjaGVCZWhhdmlv
clR5cGUsIFNlc3Npb25JRCk7CiAgICAgdmlydHVhbCB+Q2FjaGVkSW1hZ2UoKTsKIAogICAgIElt
YWdlKiBpbWFnZSgpOyAvLyBSZXR1cm5zIHRoZSBudWxsSW1hZ2UoKSBpZiB0aGUgaW1hZ2UgaXMg
bm90IGF2YWlsYWJsZSB5ZXQuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2Fj
aGUvQ2FjaGVkUmF3UmVzb3VyY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0Nh
Y2hlZFJhd1Jlc291cmNlLmNwcAppbmRleCA3MWQ4NmRhLi5jNDY1ZDJmIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmF3UmVzb3VyY2UuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSYXdSZXNvdXJjZS5jcHAKQEAgLTM1LDgg
KzM1LDggQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1DYWNoZWRSYXdSZXNvdXJjZTo6Q2Fj
aGVkUmF3UmVzb3VyY2UoUmVzb3VyY2VSZXF1ZXN0JiByZXNvdXJjZVJlcXVlc3QsIFR5cGUgdHlw
ZSkKLSAgICA6IENhY2hlZFJlc291cmNlKHJlc291cmNlUmVxdWVzdCwgdHlwZSkKK0NhY2hlZFJh
d1Jlc291cmNlOjpDYWNoZWRSYXdSZXNvdXJjZShSZXNvdXJjZVJlcXVlc3QmIHJlc291cmNlUmVx
dWVzdCwgVHlwZSB0eXBlLCBTZXNzaW9uSUQgc2Vzc2lvbklEKQorICAgIDogQ2FjaGVkUmVzb3Vy
Y2UocmVzb3VyY2VSZXF1ZXN0LCB0eXBlLCBzZXNzaW9uSUQpCiAgICAgLCBtX2lkZW50aWZpZXIo
MCkKIHsKICAgICAvLyBGSVhNRTogVGhlIHdyb25nIENhY2hlZFJlc291cmNlOjpUeXBlIGhlcmUg
bWF5IGNhdXNlIGEgYmFkIGNhc3QgZWxzZXdoZXJlLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJhd1Jlc291cmNlLmggYi9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvY2FjaGUvQ2FjaGVkUmF3UmVzb3VyY2UuaAppbmRleCBjY2RmZWUxLi4zZDZiZmIyIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmF3UmVzb3VyY2UuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmF3UmVzb3VyY2UuaApAQCAt
MzIsNyArMzIsNyBAQCBjbGFzcyBTdWJyZXNvdXJjZUxvYWRlcjsKIAogY2xhc3MgQ2FjaGVkUmF3
UmVzb3VyY2UgZmluYWwgOiBwdWJsaWMgQ2FjaGVkUmVzb3VyY2UgewogcHVibGljOgotICAgIENh
Y2hlZFJhd1Jlc291cmNlKFJlc291cmNlUmVxdWVzdCYsIFR5cGUpOworICAgIENhY2hlZFJhd1Jl
c291cmNlKFJlc291cmNlUmVxdWVzdCYsIFR5cGUsIFNlc3Npb25JRCk7CiAKICAgICAvLyBGSVhN
RTogQXNzb2NpYXRlZFVSTExvYWRlciBzaG91bGRuJ3QgYmUgYSBEb2N1bWVudFRocmVhZGFibGVM
b2FkZXIgYW5kIHRoZXJlZm9yZSBzaG91bGRuJ3QKICAgICAvLyB1c2UgQ2FjaGVkUmF3UmVzb3Vy
Y2UuIEhvd2V2ZXIsIGl0IGlzLCBhbmQgaXQgbmVlZHMgdG8gYmUgYWJsZSB0byBkZWZlciBsb2Fk
aW5nLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291
cmNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZS5jcHAK
aW5kZXggNjk3YTQ5NS4uZjAzYTNlNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVy
L2NhY2hlL0NhY2hlZFJlc291cmNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2Fj
aGUvQ2FjaGVkUmVzb3VyY2UuY3BwCkBAIC0xNDcsOCArMTQ3LDkgQEAgc3RhdGljIGRvdWJsZSBk
ZWFkRGVjb2RlZERhdGFEZWxldGlvbkludGVydmFsRm9yUmVzb3VyY2VUeXBlKENhY2hlZFJlc291
cmNlOjpUeXAKIAogREVGSU5FX0RFQlVHX09OTFlfR0xPQkFMKFJlZkNvdW50ZWRMZWFrQ291bnRl
ciwgY2FjaGVkUmVzb3VyY2VMZWFrQ291bnRlciwgKCJDYWNoZWRSZXNvdXJjZSIpKTsKIAotQ2Fj
aGVkUmVzb3VyY2U6OkNhY2hlZFJlc291cmNlKGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVz
dCwgVHlwZSB0eXBlKQorQ2FjaGVkUmVzb3VyY2U6OkNhY2hlZFJlc291cmNlKGNvbnN0IFJlc291
cmNlUmVxdWVzdCYgcmVxdWVzdCwgVHlwZSB0eXBlLCBTZXNzaW9uSUQgc2Vzc2lvbklEKQogICAg
IDogbV9yZXNvdXJjZVJlcXVlc3QocmVxdWVzdCkKKyAgICAsIG1fc2Vzc2lvbklEKHNlc3Npb25J
RCkKICAgICAsIG1fbG9hZFByaW9yaXR5KGRlZmF1bHRQcmlvcml0eUZvclJlc291cmNlVHlwZSh0
eXBlKSkKICAgICAsIG1fcmVzcG9uc2VUaW1lc3RhbXAoY3VycmVudFRpbWUoKSkKICAgICAsIG1f
ZGVjb2RlZERhdGFEZWxldGlvblRpbWVyKHRoaXMsICZDYWNoZWRSZXNvdXJjZTo6ZGVjb2RlZERh
dGFEZWxldGlvblRpbWVyRmlyZWQsIGRlYWREZWNvZGVkRGF0YURlbGV0aW9uSW50ZXJ2YWxGb3JS
ZXNvdXJjZVR5cGUodHlwZSkpCkBAIC0xODAsNiArMTgxLDcgQEAgQ2FjaGVkUmVzb3VyY2U6OkNh
Y2hlZFJlc291cmNlKGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgVHlwZSB0eXBlKQog
ICAgICwgbV9wcm94eVJlc291cmNlKDApCiB7CiAgICAgQVNTRVJUKG1fdHlwZSA9PSB1bnNpZ25l
ZCh0eXBlKSk7IC8vIG1fdHlwZSBpcyBhIGJpdGZpZWxkLCBzbyB0aGlzIHRlc3RzIGNhcmVsZXNz
IHVwZGF0ZXMgb2YgdGhlIGVudW0uCisgICAgQVNTRVJUKHNlc3Npb25JRC5pc1ZhbGlkKCkpOwog
I2lmbmRlZiBOREVCVUcKICAgICBjYWNoZWRSZXNvdXJjZUxlYWtDb3VudGVyLmluY3JlbWVudCgp
OwogI2VuZGlmCkBAIC0xOTksNyArMjAxLDcgQEAgQ2FjaGVkUmVzb3VyY2U6On5DYWNoZWRSZXNv
dXJjZSgpCiAgICAgQVNTRVJUKGNhbkRlbGV0ZSgpKTsKICAgICBBU1NFUlQoIWluQ2FjaGUoKSk7
CiAgICAgQVNTRVJUKCFtX2RlbGV0ZWQpOwotICAgIEFTU0VSVCh1cmwoKS5pc051bGwoKSB8fCBt
ZW1vcnlDYWNoZSgpLT5yZXNvdXJjZUZvclJlcXVlc3QocmVzb3VyY2VSZXF1ZXN0KCkpICE9IHRo
aXMpOworICAgIEFTU0VSVCh1cmwoKS5pc051bGwoKSB8fCBtZW1vcnlDYWNoZSgpLT5yZXNvdXJj
ZUZvclJlcXVlc3QocmVzb3VyY2VSZXF1ZXN0KCksIHNlc3Npb25JRCgpKSAhPSB0aGlzKTsKIAog
I2lmbmRlZiBOREVCVUcKICAgICBtX2RlbGV0ZWQgPSB0cnVlOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlLmggYi9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2UuaAppbmRleCBlZjBiYzY2Li45ZjhkMWQ3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2UuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2UuaApAQCAtMzEsNiAr
MzEsNyBAQAogI2luY2x1ZGUgIlJlc291cmNlTG9hZGVyT3B0aW9ucy5oIgogI2luY2x1ZGUgIlJl
c291cmNlUmVxdWVzdC5oIgogI2luY2x1ZGUgIlJlc291cmNlUmVzcG9uc2UuaCIKKyNpbmNsdWRl
ICJTZXNzaW9uSUQuaCIKICNpbmNsdWRlICJUaW1lci5oIgogI2luY2x1ZGUgPHRpbWUuaD4KICNp
bmNsdWRlIDx3dGYvSGFzaENvdW50ZWRTZXQuaD4KQEAgLTg5LDcgKzkwLDcgQEAgcHVibGljOgog
ICAgICAgICBEZWNvZGVFcnJvcgogICAgIH07CiAKLSAgICBDYWNoZWRSZXNvdXJjZShjb25zdCBS
ZXNvdXJjZVJlcXVlc3QmLCBUeXBlKTsKKyAgICBDYWNoZWRSZXNvdXJjZShjb25zdCBSZXNvdXJj
ZVJlcXVlc3QmLCBUeXBlLCBTZXNzaW9uSUQpOwogICAgIHZpcnR1YWwgfkNhY2hlZFJlc291cmNl
KCk7CiAKICAgICB2aXJ0dWFsIHZvaWQgbG9hZChDYWNoZWRSZXNvdXJjZUxvYWRlciosIGNvbnN0
IFJlc291cmNlTG9hZGVyT3B0aW9ucyYpOwpAQCAtMTExLDYgKzExMiw3IEBAIHB1YmxpYzoKICNp
ZiBFTkFCTEUoQ0FDSEVfUEFSVElUSU9OSU5HKQogICAgIGNvbnN0IFN0cmluZyYgY2FjaGVQYXJ0
aXRpb24oKSBjb25zdCB7IHJldHVybiBtX3Jlc291cmNlUmVxdWVzdC5jYWNoZVBhcnRpdGlvbigp
OyB9CiAjZW5kaWYKKyAgICBTZXNzaW9uSUQgc2Vzc2lvbklEKCkgY29uc3QgeyByZXR1cm4gbV9z
ZXNzaW9uSUQ7IH0KICAgICBUeXBlIHR5cGUoKSBjb25zdCB7IHJldHVybiBzdGF0aWNfY2FzdDxU
eXBlPihtX3R5cGUpOyB9CiAgICAgCiAgICAgUmVzb3VyY2VMb2FkUHJpb3JpdHkgbG9hZFByaW9y
aXR5KCkgY29uc3QgeyByZXR1cm4gbV9sb2FkUHJpb3JpdHk7IH0KQEAgLTI5MCw2ICsyOTIsNyBA
QCBwcm90ZWN0ZWQ6CiAgICAgSGFzaE1hcDxDYWNoZWRSZXNvdXJjZUNsaWVudCosIE93blB0cjxD
YWNoZWRSZXNvdXJjZUNhbGxiYWNrPj4gbV9jbGllbnRzQXdhaXRpbmdDYWxsYmFjazsKIAogICAg
IFJlc291cmNlUmVxdWVzdCBtX3Jlc291cmNlUmVxdWVzdDsKKyAgICBTZXNzaW9uSUQgbV9zZXNz
aW9uSUQ7CiAgICAgU3RyaW5nIG1fYWNjZXB0OwogICAgIFJlZlB0cjxTdWJyZXNvdXJjZUxvYWRl
cj4gbV9sb2FkZXI7CiAgICAgUmVzb3VyY2VMb2FkZXJPcHRpb25zIG1fb3B0aW9uczsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZUxvYWRlci5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VMb2FkZXIuY3Bw
CmluZGV4IDExZjE4YTguLjlkMjhkNzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9jYWNoZS9DYWNoZWRSZXNvdXJjZUxvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlTG9hZGVyLmNwcApAQCAtNDgsMTIgKzQ4LDE0IEBACiAj
aW5jbHVkZSAiTG9hZGVyU3RyYXRlZ3kuaCIKICNpbmNsdWRlICJMb2dnaW5nLmgiCiAjaW5jbHVk
ZSAiTWVtb3J5Q2FjaGUuaCIKKyNpbmNsdWRlICJQYWdlLmgiCiAjaW5jbHVkZSAiUGluZ0xvYWRl
ci5oIgogI2luY2x1ZGUgIlBsYXRmb3JtU3RyYXRlZ2llcy5oIgogI2luY2x1ZGUgIlJlbmRlckVs
ZW1lbnQuaCIKICNpbmNsdWRlICJSZXNvdXJjZUxvYWRTY2hlZHVsZXIuaCIKICNpbmNsdWRlICJT
Y3JpcHRDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAiU2VjdXJpdHlPcmlnaW4uaCIKKyNpbmNsdWRl
ICJTZXNzaW9uSUQuaCIKICNpbmNsdWRlICJTZXR0aW5ncy5oIgogI2luY2x1ZGUgPHd0Zi90ZXh0
L0NTdHJpbmcuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KQEAgLTcwLDM1ICs3
MiwzNSBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLXN0YXRpYyBDYWNoZWRSZXNvdXJjZSog
Y3JlYXRlUmVzb3VyY2UoQ2FjaGVkUmVzb3VyY2U6OlR5cGUgdHlwZSwgUmVzb3VyY2VSZXF1ZXN0
JiByZXF1ZXN0LCBjb25zdCBTdHJpbmcmIGNoYXJzZXQpCitzdGF0aWMgQ2FjaGVkUmVzb3VyY2Uq
IGNyZWF0ZVJlc291cmNlKENhY2hlZFJlc291cmNlOjpUeXBlIHR5cGUsIFJlc291cmNlUmVxdWVz
dCYgcmVxdWVzdCwgY29uc3QgU3RyaW5nJiBjaGFyc2V0LCBTZXNzaW9uSUQgc2Vzc2lvbklEKQog
ewogICAgIHN3aXRjaCAodHlwZSkgewogICAgIGNhc2UgQ2FjaGVkUmVzb3VyY2U6OkltYWdlUmVz
b3VyY2U6Ci0gICAgICAgIHJldHVybiBuZXcgQ2FjaGVkSW1hZ2UocmVxdWVzdCk7CisgICAgICAg
IHJldHVybiBuZXcgQ2FjaGVkSW1hZ2UocmVxdWVzdCwgc2Vzc2lvbklEKTsKICAgICBjYXNlIENh
Y2hlZFJlc291cmNlOjpDU1NTdHlsZVNoZWV0OgotICAgICAgICByZXR1cm4gbmV3IENhY2hlZENT
U1N0eWxlU2hlZXQocmVxdWVzdCwgY2hhcnNldCk7CisgICAgICAgIHJldHVybiBuZXcgQ2FjaGVk
Q1NTU3R5bGVTaGVldChyZXF1ZXN0LCBjaGFyc2V0LCBzZXNzaW9uSUQpOwogICAgIGNhc2UgQ2Fj
aGVkUmVzb3VyY2U6OlNjcmlwdDoKLSAgICAgICAgcmV0dXJuIG5ldyBDYWNoZWRTY3JpcHQocmVx
dWVzdCwgY2hhcnNldCk7CisgICAgICAgIHJldHVybiBuZXcgQ2FjaGVkU2NyaXB0KHJlcXVlc3Qs
IGNoYXJzZXQsIHNlc3Npb25JRCk7CiAgICAgY2FzZSBDYWNoZWRSZXNvdXJjZTo6U1ZHRG9jdW1l
bnRSZXNvdXJjZToKLSAgICAgICAgcmV0dXJuIG5ldyBDYWNoZWRTVkdEb2N1bWVudChyZXF1ZXN0
KTsKKyAgICAgICAgcmV0dXJuIG5ldyBDYWNoZWRTVkdEb2N1bWVudChyZXF1ZXN0LCBzZXNzaW9u
SUQpOwogICAgIGNhc2UgQ2FjaGVkUmVzb3VyY2U6OkZvbnRSZXNvdXJjZToKLSAgICAgICAgcmV0
dXJuIG5ldyBDYWNoZWRGb250KHJlcXVlc3QpOworICAgICAgICByZXR1cm4gbmV3IENhY2hlZEZv
bnQocmVxdWVzdCwgc2Vzc2lvbklEKTsKICAgICBjYXNlIENhY2hlZFJlc291cmNlOjpSYXdSZXNv
dXJjZToKICAgICBjYXNlIENhY2hlZFJlc291cmNlOjpNYWluUmVzb3VyY2U6Ci0gICAgICAgIHJl
dHVybiBuZXcgQ2FjaGVkUmF3UmVzb3VyY2UocmVxdWVzdCwgdHlwZSk7CisgICAgICAgIHJldHVy
biBuZXcgQ2FjaGVkUmF3UmVzb3VyY2UocmVxdWVzdCwgdHlwZSwgc2Vzc2lvbklEKTsKICNpZiBF
TkFCTEUoWFNMVCkKICAgICBjYXNlIENhY2hlZFJlc291cmNlOjpYU0xTdHlsZVNoZWV0OgotICAg
ICAgICByZXR1cm4gbmV3IENhY2hlZFhTTFN0eWxlU2hlZXQocmVxdWVzdCk7CisgICAgICAgIHJl
dHVybiBuZXcgQ2FjaGVkWFNMU3R5bGVTaGVldChyZXF1ZXN0LCBzZXNzaW9uSUQpOwogI2VuZGlm
CiAjaWYgRU5BQkxFKExJTktfUFJFRkVUQ0gpCiAgICAgY2FzZSBDYWNoZWRSZXNvdXJjZTo6TGlu
a1ByZWZldGNoOgotICAgICAgICByZXR1cm4gbmV3IENhY2hlZFJlc291cmNlKHJlcXVlc3QsIENh
Y2hlZFJlc291cmNlOjpMaW5rUHJlZmV0Y2gpOworICAgICAgICByZXR1cm4gbmV3IENhY2hlZFJl
c291cmNlKHJlcXVlc3QsIENhY2hlZFJlc291cmNlOjpMaW5rUHJlZmV0Y2gsIHNlc3Npb25JRCk7
CiAgICAgY2FzZSBDYWNoZWRSZXNvdXJjZTo6TGlua1N1YnJlc291cmNlOgotICAgICAgICByZXR1
cm4gbmV3IENhY2hlZFJlc291cmNlKHJlcXVlc3QsIENhY2hlZFJlc291cmNlOjpMaW5rU3VicmVz
b3VyY2UpOworICAgICAgICByZXR1cm4gbmV3IENhY2hlZFJlc291cmNlKHJlcXVlc3QsIENhY2hl
ZFJlc291cmNlOjpMaW5rU3VicmVzb3VyY2UsIHNlc3Npb25JRCk7CiAjZW5kaWYKICNpZiBFTkFC
TEUoVklERU9fVFJBQ0spCiAgICAgY2FzZSBDYWNoZWRSZXNvdXJjZTo6VGV4dFRyYWNrUmVzb3Vy
Y2U6Ci0gICAgICAgIHJldHVybiBuZXcgQ2FjaGVkVGV4dFRyYWNrKHJlcXVlc3QpOworICAgICAg
ICByZXR1cm4gbmV3IENhY2hlZFRleHRUcmFjayhyZXF1ZXN0LCBzZXNzaW9uSUQpOwogI2VuZGlm
CiAgICAgfQogICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwpAQCAtMTQ3LDYgKzE0OSwxNiBAQCBG
cmFtZSogQ2FjaGVkUmVzb3VyY2VMb2FkZXI6OmZyYW1lKCkgY29uc3QKICAgICByZXR1cm4gbV9k
b2N1bWVudExvYWRlciA/IG1fZG9jdW1lbnRMb2FkZXItPmZyYW1lKCkgOiAwOwogfQogCitTZXNz
aW9uSUQgQ2FjaGVkUmVzb3VyY2VMb2FkZXI6OnNlc3Npb25JRCgpIGNvbnN0Cit7CisgICAgU2Vz
c2lvbklEIHNlc3Npb25JRCA9IFNlc3Npb25JRDo6ZGVmYXVsdFNlc3Npb25JRCgpOworCisgICAg
aWYgKEZyYW1lKiBmID0gZnJhbWUoKSkKKyAgICAgICAgc2Vzc2lvbklEID0gZi0+cGFnZSgpLT5z
ZXNzaW9uSUQoKTsKKworICAgIHJldHVybiBzZXNzaW9uSUQ7Cit9CisKIENhY2hlZFJlc291cmNl
SGFuZGxlPENhY2hlZEltYWdlPiBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6cmVxdWVzdEltYWdlKENh
Y2hlZFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCkKIHsKICAgICBpZiAoRnJhbWUqIGZyYW1lID0g
dGhpcy0+ZnJhbWUoKSkgewpAQCAtMTg3LDcgKzE5OSw3IEBAIENhY2hlZFJlc291cmNlSGFuZGxl
PENhY2hlZENTU1N0eWxlU2hlZXQ+IENhY2hlZFJlc291cmNlTG9hZGVyOjpyZXF1ZXN0VXNlckNT
U1N0CiAgICAgcmVxdWVzdC5tdXRhYmxlUmVzb3VyY2VSZXF1ZXN0KCkuc2V0Q2FjaGVQYXJ0aXRp
b24oZG9jdW1lbnQoKS0+dG9wT3JpZ2luKCktPmNhY2hlUGFydGl0aW9uKCkpOwogI2VuZGlmCiAK
LSAgICBpZiAoQ2FjaGVkUmVzb3VyY2UqIGV4aXN0aW5nID0gbWVtb3J5Q2FjaGUoKS0+cmVzb3Vy
Y2VGb3JSZXF1ZXN0KHJlcXVlc3QucmVzb3VyY2VSZXF1ZXN0KCkpKSB7CisgICAgaWYgKENhY2hl
ZFJlc291cmNlKiBleGlzdGluZyA9IG1lbW9yeUNhY2hlKCktPnJlc291cmNlRm9yUmVxdWVzdChy
ZXF1ZXN0LnJlc291cmNlUmVxdWVzdCgpLCBzZXNzaW9uSUQoKSkpIHsKICAgICAgICAgaWYgKGV4
aXN0aW5nLT50eXBlKCkgPT0gQ2FjaGVkUmVzb3VyY2U6OkNTU1N0eWxlU2hlZXQpCiAgICAgICAg
ICAgICByZXR1cm4gdG9DYWNoZWRDU1NTdHlsZVNoZWV0KGV4aXN0aW5nKTsKICAgICAgICAgbWVt
b3J5Q2FjaGUoKS0+cmVtb3ZlKGV4aXN0aW5nKTsKQEAgLTE5NSw3ICsyMDcsNyBAQCBDYWNoZWRS
ZXNvdXJjZUhhbmRsZTxDYWNoZWRDU1NTdHlsZVNoZWV0PiBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6
cmVxdWVzdFVzZXJDU1NTdAogICAgIGlmICh1cmwuc3RyaW5nKCkgIT0gcmVxdWVzdC5yZXNvdXJj
ZVJlcXVlc3QoKS51cmwoKSkKICAgICAgICAgcmVxdWVzdC5tdXRhYmxlUmVzb3VyY2VSZXF1ZXN0
KCkuc2V0VVJMKHVybCk7CiAKLSAgICBDYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRDU1NTdHls
ZVNoZWV0PiB1c2VyU2hlZXQgPSBuZXcgQ2FjaGVkQ1NTU3R5bGVTaGVldChyZXF1ZXN0LnJlc291
cmNlUmVxdWVzdCgpLCByZXF1ZXN0LmNoYXJzZXQoKSk7CisgICAgQ2FjaGVkUmVzb3VyY2VIYW5k
bGU8Q2FjaGVkQ1NTU3R5bGVTaGVldD4gdXNlclNoZWV0ID0gbmV3IENhY2hlZENTU1N0eWxlU2hl
ZXQocmVxdWVzdC5yZXNvdXJjZVJlcXVlc3QoKSwgcmVxdWVzdC5jaGFyc2V0KCksIHNlc3Npb25J
RCgpKTsKIAogICAgIG1lbW9yeUNhY2hlKCktPmFkZCh1c2VyU2hlZXQuZ2V0KCkpOwogICAgIC8v
IEZJWE1FOiBsb2FkUmVzb3VyY2UgY2FsbHMgc2V0T3duaW5nQ2FjaGVkUmVzb3VyY2VMb2FkZXIo
KSBpZiB0aGUgcmVzb3VyY2UgY291bGRuJ3QgYmUgYWRkZWQgdG8gY2FjaGUuIERvZXMgdGhpcyBm
dW5jdGlvbiBuZWVkIHRvIGNhbGwgaXQsIHRvbz8KQEAgLTQyOCw3ICs0NDAsNyBAQCBDYWNoZWRS
ZXNvdXJjZUhhbmRsZTxDYWNoZWRSZXNvdXJjZT4gQ2FjaGVkUmVzb3VyY2VMb2FkZXI6OnJlcXVl
c3RSZXNvdXJjZShDYWNoZQogICAgICAgICByZXF1ZXN0Lm11dGFibGVSZXNvdXJjZVJlcXVlc3Qo
KS5zZXRDYWNoZVBhcnRpdGlvbihkb2N1bWVudCgpLT50b3BPcmlnaW4oKS0+Y2FjaGVQYXJ0aXRp
b24oKSk7CiAjZW5kaWYKIAotICAgIHJlc291cmNlID0gbWVtb3J5Q2FjaGUoKS0+cmVzb3VyY2VG
b3JSZXF1ZXN0KHJlcXVlc3QucmVzb3VyY2VSZXF1ZXN0KCkpOworICAgIHJlc291cmNlID0gbWVt
b3J5Q2FjaGUoKS0+cmVzb3VyY2VGb3JSZXF1ZXN0KHJlcXVlc3QucmVzb3VyY2VSZXF1ZXN0KCks
IHNlc3Npb25JRCgpKTsKIAogICAgIGNvbnN0IFJldmFsaWRhdGlvblBvbGljeSBwb2xpY3kgPSBk
ZXRlcm1pbmVSZXZhbGlkYXRpb25Qb2xpY3kodHlwZSwgcmVxdWVzdC5tdXRhYmxlUmVzb3VyY2VS
ZXF1ZXN0KCksIHJlcXVlc3QuZm9yUHJlbG9hZCgpLCByZXNvdXJjZS5nZXQoKSwgcmVxdWVzdC5k
ZWZlcigpKTsKICAgICBzd2l0Y2ggKHBvbGljeSkgewpAQCAtNDgwLDEwICs0OTIsMTEgQEAgQ2Fj
aGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkUmVzb3VyY2U+IENhY2hlZFJlc291cmNlTG9hZGVyOjpy
ZXZhbGlkYXRlUmVzb3VyY2UoY28KICAgICBBU1NFUlQoIW1lbW9yeUNhY2hlKCktPmRpc2FibGVk
KCkpOwogICAgIEFTU0VSVChyZXNvdXJjZS0+Y2FuVXNlQ2FjaGVWYWxpZGF0b3IoKSk7CiAgICAg
QVNTRVJUKCFyZXNvdXJjZS0+cmVzb3VyY2VUb1JldmFsaWRhdGUoKSk7Ci0gICAgCisgICAgQVNT
RVJUKHJlc291cmNlLT5zZXNzaW9uSUQoKSA9PSBzZXNzaW9uSUQoKSk7CisKICAgICAvLyBDb3B5
IHRoZSBVUkwgb3V0IG9mIHRoZSByZXNvdXJjZSB0byBiZSByZXZhbGlkYXRlZCBpbiBjYXNlIGl0
IGdldHMgZGVsZXRlZCBieSB0aGUgcmVtb3ZlKCkgY2FsbCBiZWxvdy4KICAgICBTdHJpbmcgdXJs
ID0gcmVzb3VyY2UtPnVybCgpOwotICAgIENhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZFJlc291
cmNlPiBuZXdSZXNvdXJjZSA9IGNyZWF0ZVJlc291cmNlKHJlc291cmNlLT50eXBlKCksIHJlc291
cmNlLT5yZXNvdXJjZVJlcXVlc3QoKSwgcmVzb3VyY2UtPmVuY29kaW5nKCkpOworICAgIENhY2hl
ZFJlc291cmNlSGFuZGxlPENhY2hlZFJlc291cmNlPiBuZXdSZXNvdXJjZSA9IGNyZWF0ZVJlc291
cmNlKHJlc291cmNlLT50eXBlKCksIHJlc291cmNlLT5yZXNvdXJjZVJlcXVlc3QoKSwgcmVzb3Vy
Y2UtPmVuY29kaW5nKCksIHJlc291cmNlLT5zZXNzaW9uSUQoKSk7CiAgICAgCiAgICAgTE9HKFJl
c291cmNlTG9hZGluZywgIlJlc291cmNlICVwIGNyZWF0ZWQgdG8gcmV2YWxpZGF0ZSAlcCIsIG5l
d1Jlc291cmNlLmdldCgpLCByZXNvdXJjZSk7CiAgICAgbmV3UmVzb3VyY2UtPnNldFJlc291cmNl
VG9SZXZhbGlkYXRlKHJlc291cmNlKTsKQEAgLTUwMCwxMSArNTEzLDExIEBAIENhY2hlZFJlc291
cmNlSGFuZGxlPENhY2hlZFJlc291cmNlPiBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6cmV2YWxpZGF0
ZVJlc291cmNlKGNvCiAKIENhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZFJlc291cmNlPiBDYWNo
ZWRSZXNvdXJjZUxvYWRlcjo6bG9hZFJlc291cmNlKENhY2hlZFJlc291cmNlOjpUeXBlIHR5cGUs
IENhY2hlZFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgY29uc3QgU3RyaW5nJiBjaGFyc2V0KQog
ewotICAgIEFTU0VSVCghbWVtb3J5Q2FjaGUoKS0+cmVzb3VyY2VGb3JSZXF1ZXN0KHJlcXVlc3Qu
cmVzb3VyY2VSZXF1ZXN0KCkpKTsKKyAgICBBU1NFUlQoIW1lbW9yeUNhY2hlKCktPnJlc291cmNl
Rm9yUmVxdWVzdChyZXF1ZXN0LnJlc291cmNlUmVxdWVzdCgpLCBzZXNzaW9uSUQoKSkpOwogCiAg
ICAgTE9HKFJlc291cmNlTG9hZGluZywgIkxvYWRpbmcgQ2FjaGVkUmVzb3VyY2UgZm9yICclcycu
IiwgcmVxdWVzdC5yZXNvdXJjZVJlcXVlc3QoKS51cmwoKS5zdHJpbmdDZW50ZXJFbGxpcHNpemVk
VG9MZW5ndGgoKS5sYXRpbjEoKS5kYXRhKCkpOwogCi0gICAgQ2FjaGVkUmVzb3VyY2VIYW5kbGU8
Q2FjaGVkUmVzb3VyY2U+IHJlc291cmNlID0gY3JlYXRlUmVzb3VyY2UodHlwZSwgcmVxdWVzdC5t
dXRhYmxlUmVzb3VyY2VSZXF1ZXN0KCksIGNoYXJzZXQpOworICAgIENhY2hlZFJlc291cmNlSGFu
ZGxlPENhY2hlZFJlc291cmNlPiByZXNvdXJjZSA9IGNyZWF0ZVJlc291cmNlKHR5cGUsIHJlcXVl
c3QubXV0YWJsZVJlc291cmNlUmVxdWVzdCgpLCBjaGFyc2V0LCBzZXNzaW9uSUQoKSk7CiAKICAg
ICBpZiAoIW1lbW9yeUNhY2hlKCktPmFkZChyZXNvdXJjZS5nZXQoKSkpCiAgICAgICAgIHJlc291
cmNlLT5zZXRPd25pbmdDYWNoZWRSZXNvdXJjZUxvYWRlcih0aGlzKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZUxvYWRlci5oIGIvU291cmNl
L1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlTG9hZGVyLmgKaW5kZXggYWFkN2Uy
NS4uMDFiNjQ3YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hl
ZFJlc291cmNlTG9hZGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hl
ZFJlc291cmNlTG9hZGVyLmgKQEAgLTExMSw2ICsxMTEsNyBAQCBwdWJsaWM6CiAgICAgRG9jdW1l
bnQqIGRvY3VtZW50KCkgY29uc3QgeyByZXR1cm4gbV9kb2N1bWVudDsgfSAvLyBDYW4gYmUgbnVs
bAogICAgIHZvaWQgc2V0RG9jdW1lbnQoRG9jdW1lbnQqIGRvY3VtZW50KSB7IG1fZG9jdW1lbnQg
PSBkb2N1bWVudDsgfQogICAgIHZvaWQgY2xlYXJEb2N1bWVudExvYWRlcigpIHsgbV9kb2N1bWVu
dExvYWRlciA9IDA7IH0KKyAgICBTZXNzaW9uSUQgc2Vzc2lvbklEKCkgY29uc3Q7CiAKICAgICB2
b2lkIHJlbW92ZUNhY2hlZFJlc291cmNlKENhY2hlZFJlc291cmNlKikgY29uc3Q7CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRTVkdEb2N1bWVudC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkU1ZHRG9jdW1lbnQuY3BwCmluZGV4
IGRkNWE0NzguLmE0NDgwODYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNo
ZS9DYWNoZWRTVkdEb2N1bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hl
L0NhY2hlZFNWR0RvY3VtZW50LmNwcApAQCAtMzAsOCArMzAsOCBAQAogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKLUNhY2hlZFNWR0RvY3VtZW50OjpDYWNoZWRTVkdEb2N1bWVudChjb25zdCBSZXNv
dXJjZVJlcXVlc3QmIHJlcXVlc3QpCi0gICAgOiBDYWNoZWRSZXNvdXJjZShyZXF1ZXN0LCBTVkdE
b2N1bWVudFJlc291cmNlKQorQ2FjaGVkU1ZHRG9jdW1lbnQ6OkNhY2hlZFNWR0RvY3VtZW50KGNv
bnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgU2Vzc2lvbklEIHNlc3Npb25JRCkKKyAgICA6
IENhY2hlZFJlc291cmNlKHJlcXVlc3QsIFNWR0RvY3VtZW50UmVzb3VyY2UsIHNlc3Npb25JRCkK
ICAgICAsIG1fZGVjb2RlcihUZXh0UmVzb3VyY2VEZWNvZGVyOjpjcmVhdGUoImFwcGxpY2F0aW9u
L3htbCIpKQogewogICAgIHNldEFjY2VwdCgiaW1hZ2Uvc3ZnK3htbCIpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFNWR0RvY3VtZW50LmggYi9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkU1ZHRG9jdW1lbnQuaAppbmRleCA2YzA4ZTJlLi43
ZDQ2ZmE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkU1ZH
RG9jdW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkU1ZHRG9j
dW1lbnQuaApAQCAtMzIsNyArMzIsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIENh
Y2hlZFNWR0RvY3VtZW50IGZpbmFsIDogcHVibGljIENhY2hlZFJlc291cmNlIHsKIHB1YmxpYzoK
LSAgICBleHBsaWNpdCBDYWNoZWRTVkdEb2N1bWVudChjb25zdCBSZXNvdXJjZVJlcXVlc3QmKTsK
KyAgICBleHBsaWNpdCBDYWNoZWRTVkdEb2N1bWVudChjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBT
ZXNzaW9uSUQpOwogICAgIHZpcnR1YWwgfkNhY2hlZFNWR0RvY3VtZW50KCk7CiAKICAgICBTVkdE
b2N1bWVudCogZG9jdW1lbnQoKSBjb25zdCB7IHJldHVybiBtX2RvY3VtZW50LmdldCgpOyB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkU2NyaXB0LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRTY3JpcHQuY3BwCmluZGV4IDQ4ZmFj
ZDcuLmVkYzY4NWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNo
ZWRTY3JpcHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRTY3Jp
cHQuY3BwCkBAIC0zOSw4ICszOSw4IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotQ2FjaGVk
U2NyaXB0OjpDYWNoZWRTY3JpcHQoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXNvdXJjZVJlcXVl
c3QsIGNvbnN0IFN0cmluZyYgY2hhcnNldCkKLSAgICA6IENhY2hlZFJlc291cmNlKHJlc291cmNl
UmVxdWVzdCwgU2NyaXB0KQorQ2FjaGVkU2NyaXB0OjpDYWNoZWRTY3JpcHQoY29uc3QgUmVzb3Vy
Y2VSZXF1ZXN0JiByZXNvdXJjZVJlcXVlc3QsIGNvbnN0IFN0cmluZyYgY2hhcnNldCwgU2Vzc2lv
bklEIHNlc3Npb25JRCkKKyAgICA6IENhY2hlZFJlc291cmNlKHJlc291cmNlUmVxdWVzdCwgU2Ny
aXB0LCBzZXNzaW9uSUQpCiAgICAgLCBtX2RlY29kZXIoVGV4dFJlc291cmNlRGVjb2Rlcjo6Y3Jl
YXRlKEFTQ0lJTGl0ZXJhbCgiYXBwbGljYXRpb24vamF2YXNjcmlwdCIpLCBjaGFyc2V0KSkKIHsK
ICAgICAvLyBJdCdzIGphdmFzY3JpcHQgd2Ugd2FudC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9jYWNoZS9DYWNoZWRTY3JpcHQuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9j
YWNoZS9DYWNoZWRTY3JpcHQuaAppbmRleCBkNDM4YjI3Li5jOWM3M2QyIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkU2NyaXB0LmgKKysrIGIvU291cmNlL1dl
YkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFNjcmlwdC5oCkBAIC0zNSw3ICszNSw3IEBAIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAogICAgIGNsYXNzIENhY2hlZFNjcmlwdCBmaW5hbCA6IHB1YmxpYyBD
YWNoZWRSZXNvdXJjZSB7CiAgICAgcHVibGljOgotICAgICAgICBDYWNoZWRTY3JpcHQoY29uc3Qg
UmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgU3RyaW5nJiBjaGFyc2V0KTsKKyAgICAgICAgQ2FjaGVk
U2NyaXB0KGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFN0cmluZyYgY2hhcnNldCwgU2Vz
c2lvbklEKTsKICAgICAgICAgdmlydHVhbCB+Q2FjaGVkU2NyaXB0KCk7CiAKICAgICAgICAgY29u
c3QgU3RyaW5nJiBzY3JpcHQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9j
YWNoZS9DYWNoZWRUZXh0VHJhY2suY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0Nh
Y2hlZFRleHRUcmFjay5jcHAKaW5kZXggOTQ5NzRhNS4uMjA1MDU0MSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFRleHRUcmFjay5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFRleHRUcmFjay5jcHAKQEAgLTM5LDggKzM5LDgg
QEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1DYWNoZWRUZXh0VHJhY2s6OkNhY2hlZFRleHRU
cmFjayhjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlc291cmNlUmVxdWVzdCkKLSAgICA6IENhY2hl
ZFJlc291cmNlKHJlc291cmNlUmVxdWVzdCwgVGV4dFRyYWNrUmVzb3VyY2UpCitDYWNoZWRUZXh0
VHJhY2s6OkNhY2hlZFRleHRUcmFjayhjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlc291cmNlUmVx
dWVzdCwgU2Vzc2lvbklEIHNlc3Npb25JRCkKKyAgICA6IENhY2hlZFJlc291cmNlKHJlc291cmNl
UmVxdWVzdCwgVGV4dFRyYWNrUmVzb3VyY2UsIHNlc3Npb25JRCkKIHsKIH0KIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFRleHRUcmFjay5oIGIvU291cmNl
L1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFRleHRUcmFjay5oCmluZGV4IGIzZWVhN2EuLjc5
M2FjOTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRUZXh0
VHJhY2suaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkVGV4dFRyYWNr
LmgKQEAgLTM1LDcgKzM1LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBDYWNoZWRU
ZXh0VHJhY2sgZmluYWwgOiBwdWJsaWMgQ2FjaGVkUmVzb3VyY2UgewogcHVibGljOgotICAgIENh
Y2hlZFRleHRUcmFjayhjb25zdCBSZXNvdXJjZVJlcXVlc3QmKTsKKyAgICBDYWNoZWRUZXh0VHJh
Y2soY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgU2Vzc2lvbklEKTsKICAgICB2aXJ0dWFsIH5DYWNo
ZWRUZXh0VHJhY2soKTsKIAogcHJpdmF0ZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9jYWNoZS9DYWNoZWRYU0xTdHlsZVNoZWV0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9jYWNoZS9DYWNoZWRYU0xTdHlsZVNoZWV0LmNwcAppbmRleCBlYjZjOGUxLi43YTQ5YWMwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkWFNMU3R5bGVTaGVl
dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFhTTFN0eWxlU2hl
ZXQuY3BwCkBAIC0zNyw4ICszNyw4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogI2lmIEVOQUJM
RShYU0xUKQogCi1DYWNoZWRYU0xTdHlsZVNoZWV0OjpDYWNoZWRYU0xTdHlsZVNoZWV0KGNvbnN0
IFJlc291cmNlUmVxdWVzdCYgcmVzb3VyY2VSZXF1ZXN0KQotICAgIDogQ2FjaGVkUmVzb3VyY2Uo
cmVzb3VyY2VSZXF1ZXN0LCBYU0xTdHlsZVNoZWV0KQorQ2FjaGVkWFNMU3R5bGVTaGVldDo6Q2Fj
aGVkWFNMU3R5bGVTaGVldChjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlc291cmNlUmVxdWVzdCwg
U2Vzc2lvbklEIHNlc3Npb25JRCkKKyAgICA6IENhY2hlZFJlc291cmNlKHJlc291cmNlUmVxdWVz
dCwgWFNMU3R5bGVTaGVldCwgc2Vzc2lvbklEKQogICAgICwgbV9kZWNvZGVyKFRleHRSZXNvdXJj
ZURlY29kZXI6OmNyZWF0ZSgidGV4dC94c2wiKSkKIHsKICAgICAvLyBJdCdzIFhNTCB3ZSB3YW50
LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFhTTFN0eWxl
U2hlZXQuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRYU0xTdHlsZVNoZWV0
LmgKaW5kZXggMGNiZmI2NS4uMzY5OTIzYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL2NhY2hlL0NhY2hlZFhTTFN0eWxlU2hlZXQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvY2FjaGUvQ2FjaGVkWFNMU3R5bGVTaGVldC5oCkBAIC0zNyw3ICszNyw3IEBAIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKICNpZiBFTkFCTEUoWFNMVCkKICAgICBjbGFzcyBDYWNoZWRYU0xTdHlsZVNo
ZWV0IGZpbmFsIDogcHVibGljIENhY2hlZFJlc291cmNlIHsKICAgICBwdWJsaWM6Ci0gICAgICAg
IENhY2hlZFhTTFN0eWxlU2hlZXQoY29uc3QgUmVzb3VyY2VSZXF1ZXN0Jik7CisgICAgICAgIENh
Y2hlZFhTTFN0eWxlU2hlZXQoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgU2Vzc2lvbklEKTsKIAog
ICAgICAgICBjb25zdCBTdHJpbmcmIHNoZWV0KCkgY29uc3QgeyByZXR1cm4gbV9zaGVldDsgfQog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvTWVtb3J5Q2FjaGUuY3Bw
IGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL01lbW9yeUNhY2hlLmNwcAppbmRleCBjYzZh
MjI1Li45NmNkYmMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvTWVt
b3J5Q2FjaGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9NZW1vcnlDYWNo
ZS5jcHAKQEAgLTgwLDYgKzgwLDE3IEBAIE1lbW9yeUNhY2hlOjpNZW1vcnlDYWNoZSgpCiB7CiB9
CiAKK01lbW9yeUNhY2hlOjpDYWNoZWRSZXNvdXJjZU1hcCYgTWVtb3J5Q2FjaGU6OmdldFNlc3Np
b25NYXAoU2Vzc2lvbklEIHNlc3Npb25JRCkKK3sKKyAgICBBU1NFUlQoc2Vzc2lvbklELmlzVmFs
aWQoKSk7CisgICAgQ2FjaGVkUmVzb3VyY2VNYXAqIG1hcCA9IG1fc2Vzc2lvblJlc291cmNlcy5n
ZXQoc2Vzc2lvbklEKTsKKyAgICBpZiAoIW1hcCkgeworICAgICAgICBtX3Nlc3Npb25SZXNvdXJj
ZXMuc2V0KHNlc3Npb25JRCwgc3RkOjptYWtlX3VuaXF1ZTxDYWNoZWRSZXNvdXJjZU1hcD4oKSk7
CisgICAgICAgIG1hcCA9IG1fc2Vzc2lvblJlc291cmNlcy5nZXQoc2Vzc2lvbklEKTsKKyAgICB9
CisgICAgcmV0dXJuICptYXA7Cit9CisKIFVSTCBNZW1vcnlDYWNoZTo6cmVtb3ZlRnJhZ21lbnRJ
ZGVudGlmaWVySWZOZWVkZWQoY29uc3QgVVJMJiBvcmlnaW5hbFVSTCkKIHsKICAgICBpZiAoIW9y
aWdpbmFsVVJMLmhhc0ZyYWdtZW50SWRlbnRpZmllcigpKQpAQCAtMTAxLDE1ICsxMTIsMTYgQEAg
Ym9vbCBNZW1vcnlDYWNoZTo6YWRkKENhY2hlZFJlc291cmNlKiByZXNvdXJjZSkKIAogICAgIEFT
U0VSVChXVEY6OmlzTWFpblRocmVhZCgpKTsKIAorICAgIENhY2hlZFJlc291cmNlTWFwJiByZXNv
dXJjZXMgPSBnZXRTZXNzaW9uTWFwKHJlc291cmNlLT5zZXNzaW9uSUQoKSk7CiAjaWYgRU5BQkxF
KENBQ0hFX1BBUlRJVElPTklORykKLSAgICBDYWNoZWRSZXNvdXJjZUl0ZW0qIG9yaWdpbk1hcCA9
IG1fcmVzb3VyY2VzLmdldChyZXNvdXJjZS0+dXJsKCkpOworICAgIENhY2hlZFJlc291cmNlSXRl
bSogb3JpZ2luTWFwID0gcmVzb3VyY2VzLmdldChyZXNvdXJjZS0+dXJsKCkpOwogICAgIGlmICgh
b3JpZ2luTWFwKSB7CiAgICAgICAgIG9yaWdpbk1hcCA9IG5ldyBDYWNoZWRSZXNvdXJjZUl0ZW07
Ci0gICAgICAgIG1fcmVzb3VyY2VzLnNldChyZXNvdXJjZS0+dXJsKCksIGFkb3B0UHRyKG9yaWdp
bk1hcCkpOworICAgICAgICByZXNvdXJjZXMuc2V0KHJlc291cmNlLT51cmwoKSwgYWRvcHRQdHIo
b3JpZ2luTWFwKSk7CiAgICAgfQogICAgIG9yaWdpbk1hcC0+c2V0KHJlc291cmNlLT5jYWNoZVBh
cnRpdGlvbigpLCByZXNvdXJjZSk7CiAjZWxzZQotICAgIG1fcmVzb3VyY2VzLnNldChyZXNvdXJj
ZS0+dXJsKCksIHJlc291cmNlKTsKKyAgICByZXNvdXJjZXMuc2V0KHJlc291cmNlLT51cmwoKSwg
cmVzb3VyY2UpOwogI2VuZGlmCiAgICAgcmVzb3VyY2UtPnNldEluQ2FjaGUodHJ1ZSk7CiAgICAg
CkBAIC0xMzQsMTcgKzE0NiwxOCBAQCB2b2lkIE1lbW9yeUNhY2hlOjpyZXZhbGlkYXRpb25TdWNj
ZWVkZWQoQ2FjaGVkUmVzb3VyY2UqIHJldmFsaWRhdGluZ1Jlc291cmNlLCBjbwogCiAgICAgZXZp
Y3QocmV2YWxpZGF0aW5nUmVzb3VyY2UpOwogCisgICAgQ2FjaGVkUmVzb3VyY2VNYXAmIHJlc291
cmNlcyA9IGdldFNlc3Npb25NYXAocmVzb3VyY2UtPnNlc3Npb25JRCgpKTsKICNpZiBFTkFCTEUo
Q0FDSEVfUEFSVElUSU9OSU5HKQotICAgIEFTU0VSVCghbV9yZXNvdXJjZXMuZ2V0KHJlc291cmNl
LT51cmwoKSkgfHwgIW1fcmVzb3VyY2VzLmdldChyZXNvdXJjZS0+dXJsKCkpLT5nZXQocmVzb3Vy
Y2UtPmNhY2hlUGFydGl0aW9uKCkpKTsKLSAgICBDYWNoZWRSZXNvdXJjZUl0ZW0qIG9yaWdpbk1h
cCA9IG1fcmVzb3VyY2VzLmdldChyZXNvdXJjZS0+dXJsKCkpOworICAgIEFTU0VSVCghcmVzb3Vy
Y2VzLmdldChyZXNvdXJjZS0+dXJsKCkpIHx8ICFyZXNvdXJjZXMuZ2V0KHJlc291cmNlLT51cmwo
KSktPmdldChyZXNvdXJjZS0+Y2FjaGVQYXJ0aXRpb24oKSkpOworICAgIENhY2hlZFJlc291cmNl
SXRlbSogb3JpZ2luTWFwID0gcmVzb3VyY2VzLmdldChyZXNvdXJjZS0+dXJsKCkpOwogICAgIGlm
ICghb3JpZ2luTWFwKSB7CiAgICAgICAgIG9yaWdpbk1hcCA9IG5ldyBDYWNoZWRSZXNvdXJjZUl0
ZW07Ci0gICAgICAgIG1fcmVzb3VyY2VzLnNldChyZXNvdXJjZS0+dXJsKCksIGFkb3B0UHRyKG9y
aWdpbk1hcCkpOworICAgICAgICByZXNvdXJjZXMuc2V0KHJlc291cmNlLT51cmwoKSwgYWRvcHRQ
dHIob3JpZ2luTWFwKSk7CiAgICAgfQogICAgIG9yaWdpbk1hcC0+c2V0KHJlc291cmNlLT5jYWNo
ZVBhcnRpdGlvbigpLCByZXNvdXJjZSk7CiAjZWxzZQotICAgIEFTU0VSVCghbV9yZXNvdXJjZXMu
Z2V0KHJlc291cmNlLT51cmwoKSkpOwotICAgIG1fcmVzb3VyY2VzLnNldChyZXNvdXJjZS0+dXJs
KCksIHJlc291cmNlKTsKKyAgICBBU1NFUlQoIXJlc291cmNlcy5nZXQocmVzb3VyY2UtPnVybCgp
KSk7CisgICAgcmVzb3VyY2VzLnNldChyZXNvdXJjZS0+dXJsKCksIHJlc291cmNlKTsKICNlbmRp
ZgogICAgIHJlc291cmNlLT5zZXRJbkNhY2hlKHRydWUpOwogICAgIHJlc291cmNlLT51cGRhdGVS
ZXNwb25zZUFmdGVyUmV2YWxpZGF0aW9uKHJlc3BvbnNlKTsKQEAgLTE3MSwyMCArMTg0LDMxIEBA
IHZvaWQgTWVtb3J5Q2FjaGU6OnJldmFsaWRhdGlvbkZhaWxlZChDYWNoZWRSZXNvdXJjZSogcmV2
YWxpZGF0aW5nUmVzb3VyY2UpCiAKIENhY2hlZFJlc291cmNlKiBNZW1vcnlDYWNoZTo6cmVzb3Vy
Y2VGb3JVUkwoY29uc3QgVVJMJiByZXNvdXJjZVVSTCkKIHsKLSAgICByZXR1cm4gcmVzb3VyY2VG
b3JSZXF1ZXN0KFJlc291cmNlUmVxdWVzdChyZXNvdXJjZVVSTCkpOworICAgIHJldHVybiByZXNv
dXJjZUZvclVSTChyZXNvdXJjZVVSTCwgU2Vzc2lvbklEOjpkZWZhdWx0U2Vzc2lvbklEKCkpOwog
fQogCi1DYWNoZWRSZXNvdXJjZSogTWVtb3J5Q2FjaGU6OnJlc291cmNlRm9yUmVxdWVzdChjb25z
dCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QpCitDYWNoZWRSZXNvdXJjZSogTWVtb3J5Q2FjaGU6
OnJlc291cmNlRm9yVVJMKGNvbnN0IFVSTCYgcmVzb3VyY2VVUkwsIFNlc3Npb25JRCBzZXNzaW9u
SUQpCit7CisgICAgcmV0dXJuIHJlc291cmNlRm9yUmVxdWVzdChSZXNvdXJjZVJlcXVlc3QocmVz
b3VyY2VVUkwpLCBzZXNzaW9uSUQpOworfQorCitDYWNoZWRSZXNvdXJjZSogTWVtb3J5Q2FjaGU6
OnJlc291cmNlRm9yUmVxdWVzdChjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIFNlc3Np
b25JRCBzZXNzaW9uSUQpCit7CisgICAgcmV0dXJuIHJlc291cmNlRm9yUmVxdWVzdEltcGwocmVx
dWVzdCwgZ2V0U2Vzc2lvbk1hcChzZXNzaW9uSUQpKTsKK30KKworQ2FjaGVkUmVzb3VyY2UqIE1l
bW9yeUNhY2hlOjpyZXNvdXJjZUZvclJlcXVlc3RJbXBsKGNvbnN0IFJlc291cmNlUmVxdWVzdCYg
cmVxdWVzdCwgQ2FjaGVkUmVzb3VyY2VNYXAmIHJlc291cmNlcykKIHsKICAgICBBU1NFUlQoV1RG
Ojppc01haW5UaHJlYWQoKSk7CiAgICAgVVJMIHVybCA9IHJlbW92ZUZyYWdtZW50SWRlbnRpZmll
cklmTmVlZGVkKHJlcXVlc3QudXJsKCkpOworCiAjaWYgRU5BQkxFKENBQ0hFX1BBUlRJVElPTklO
RykKLSAgICBDYWNoZWRSZXNvdXJjZUl0ZW0qIGl0ZW0gPSBtX3Jlc291cmNlcy5nZXQodXJsKTsK
KyAgICBDYWNoZWRSZXNvdXJjZUl0ZW0qIGl0ZW0gPSByZXNvdXJjZXMuZ2V0KHVybCk7CiAgICAg
Q2FjaGVkUmVzb3VyY2UqIHJlc291cmNlID0gMDsKICAgICBpZiAoaXRlbSkKICAgICAgICAgcmVz
b3VyY2UgPSBpdGVtLT5nZXQocmVxdWVzdC5jYWNoZVBhcnRpdGlvbigpKTsKICNlbHNlCi0gICAg
Q2FjaGVkUmVzb3VyY2UqIHJlc291cmNlID0gbV9yZXNvdXJjZXMuZ2V0KHVybCk7CisgICAgQ2Fj
aGVkUmVzb3VyY2UqIHJlc291cmNlID0gcmVzb3VyY2VzLmdldCh1cmwpOwogI2VuZGlmCiAgICAg
Ym9vbCB3YXNQdXJnZWFibGUgPSBNZW1vcnlDYWNoZTo6c2hvdWxkTWFrZVJlc291cmNlUHVyZ2Vh
YmxlT25FdmljdGlvbigpICYmIHJlc291cmNlICYmIHJlc291cmNlLT5pc1B1cmdlYWJsZSgpOwog
ICAgIGlmIChyZXNvdXJjZSAmJiAhcmVzb3VyY2UtPm1ha2VQdXJnZWFibGUoZmFsc2UpKSB7CkBA
IC0yMjUsMTMgKzI0OSwxNCBAQCBzdGF0aWMgQ2FjaGVkSW1hZ2VDbGllbnQmIGR1bW15Q2FjaGVk
SW1hZ2VDbGllbnQoKQogYm9vbCBNZW1vcnlDYWNoZTo6YWRkSW1hZ2VUb0NhY2hlKE5hdGl2ZUlt
YWdlUHRyIGltYWdlLCBjb25zdCBVUkwmIHVybCwgY29uc3QgU3RyaW5nJiBjYWNoZVBhcnRpdGlv
bikKIHsKICAgICBBU1NFUlQoaW1hZ2UpOworICAgIFNlc3Npb25JRCBzZXNzaW9uSUQgPSBTZXNz
aW9uSUQ6OmRlZmF1bHRTZXNzaW9uSUQoKTsKICAgICByZW1vdmVJbWFnZUZyb21DYWNoZSh1cmws
IGNhY2hlUGFydGl0aW9uKTsgLy8gUmVtb3ZlIGNhY2hlIGVudHJ5IGlmIGl0IGFscmVhZHkgZXhp
c3RzLgogCiAgICAgUmVmUHRyPEJpdG1hcEltYWdlPiBiaXRtYXBJbWFnZSA9IEJpdG1hcEltYWdl
OjpjcmVhdGUoaW1hZ2UsIG51bGxwdHIpOwogICAgIGlmICghYml0bWFwSW1hZ2UpCiAgICAgICAg
IHJldHVybiBmYWxzZTsKIAotICAgIHN0ZDo6dW5pcXVlX3B0cjxDYWNoZWRJbWFnZT4gY2FjaGVk
SW1hZ2UgPSBzdGQ6Om1ha2VfdW5pcXVlPENhY2hlZEltYWdlPih1cmwsIGJpdG1hcEltYWdlLmdl
dCgpLCBDYWNoZWRJbWFnZTo6TWFudWFsbHlDYWNoZWQpOworICAgIHN0ZDo6dW5pcXVlX3B0cjxD
YWNoZWRJbWFnZT4gY2FjaGVkSW1hZ2UgPSBzdGQ6Om1ha2VfdW5pcXVlPENhY2hlZEltYWdlPih1
cmwsIGJpdG1hcEltYWdlLmdldCgpLCBDYWNoZWRJbWFnZTo6TWFudWFsbHlDYWNoZWQsIHNlc3Np
b25JRCk7CiAKICAgICAvLyBBY3R1YWwgcmVsZWFzZSBvZiB0aGUgQ0dJbWFnZVJlZiBpcyBkb25l
IGluIEJpdG1hcEltYWdlLgogICAgIENGUmV0YWluKGltYWdlKTsKQEAgLTI0MCwyMSArMjY1LDIx
IEBAIGJvb2wgTWVtb3J5Q2FjaGU6OmFkZEltYWdlVG9DYWNoZShOYXRpdmVJbWFnZVB0ciBpbWFn
ZSwgY29uc3QgVVJMJiB1cmwsIGNvbnN0IFN0CiAjaWYgRU5BQkxFKENBQ0hFX1BBUlRJVElPTklO
RykKICAgICBjYWNoZWRJbWFnZS0+cmVzb3VyY2VSZXF1ZXN0KCkuc2V0Q2FjaGVQYXJ0aXRpb24o
Y2FjaGVQYXJ0aXRpb24pOwogI2VuZGlmCi0gICAgYWRkKGNhY2hlZEltYWdlLnJlbGVhc2UoKSk7
CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKIHZvaWQgTWVtb3J5Q2FjaGU6OnJlbW92ZUltYWdlRnJv
bUNhY2hlKGNvbnN0IFVSTCYgdXJsLCBjb25zdCBTdHJpbmcmIGNhY2hlUGFydGl0aW9uKQogewor
ICAgIENhY2hlZFJlc291cmNlTWFwJiByZXNvdXJjZXMgPSBnZXRTZXNzaW9uTWFwKFNlc3Npb25J
RDo6ZGVmYXVsdFNlc3Npb25JRCgpKTsKICNpZiBFTkFCTEUoQ0FDSEVfUEFSVElUSU9OSU5HKQog
ICAgIENhY2hlZFJlc291cmNlKiByZXNvdXJjZTsKLSAgICBpZiAoQ2FjaGVkUmVzb3VyY2VJdGVt
KiBpdGVtID0gbV9yZXNvdXJjZXMuZ2V0KHVybCkpCisgICAgaWYgKENhY2hlZFJlc291cmNlSXRl
bSogaXRlbSA9IHJlc291cmNlcy5nZXQodXJsKSkKICAgICAgICAgcmVzb3VyY2UgPSBpdGVtLT5n
ZXQoUmVzb3VyY2VSZXF1ZXN0OjpwYXJ0aXRpb25OYW1lKGNhY2hlUGFydGl0aW9uKSk7CiAgICAg
ZWxzZQogICAgICAgICByZXNvdXJjZSA9IG51bGxwdHI7CiAjZWxzZQogICAgIFVOVVNFRF9QQVJB
TShjYWNoZVBhcnRpdGlvbik7Ci0gICAgQ2FjaGVkUmVzb3VyY2UqIHJlc291cmNlID0gbV9yZXNv
dXJjZXMuZ2V0KHVybCk7CisgICAgQ2FjaGVkUmVzb3VyY2UqIHJlc291cmNlID0gcmVzb3VyY2Vz
LmdldCh1cmwpOwogI2VuZGlmCiAgICAgaWYgKCFyZXNvdXJjZSkKICAgICAgICAgcmV0dXJuOwpA
QCAtNTIyLDE3ICs1NDcsMTggQEAgdm9pZCBNZW1vcnlDYWNoZTo6ZXZpY3QoQ2FjaGVkUmVzb3Vy
Y2UqIHJlc291cmNlKQogICAgIExPRyhSZXNvdXJjZUxvYWRpbmcsICJFdmljdGluZyByZXNvdXJj
ZSAlcCBmb3IgJyVzJyBmcm9tIGNhY2hlIiwgcmVzb3VyY2UsIHJlc291cmNlLT51cmwoKS5zdHJp
bmcoKS5sYXRpbjEoKS5kYXRhKCkpOwogICAgIC8vIFRoZSByZXNvdXJjZSBtYXkgaGF2ZSBhbHJl
YWR5IGJlZW4gcmVtb3ZlZCBieSBzb21lb25lIG90aGVyIHRoYW4gb3VyIGNhbGxlciwKICAgICAv
LyB3aG8gbmVlZGVkIGEgZnJlc2ggY29weSBmb3IgYSByZWxvYWQuIFNlZSA8aHR0cDovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI0NzkjYzY+LgorICAgIENhY2hlZFJlc291cmNl
TWFwJiByZXNvdXJjZXMgPSBnZXRTZXNzaW9uTWFwKHJlc291cmNlLT5zZXNzaW9uSUQoKSk7CiAg
ICAgaWYgKHJlc291cmNlLT5pbkNhY2hlKCkpIHsKICAgICAgICAgLy8gUmVtb3ZlIGZyb20gdGhl
IHJlc291cmNlIG1hcC4KICNpZiBFTkFCTEUoQ0FDSEVfUEFSVElUSU9OSU5HKQotICAgICAgICBD
YWNoZWRSZXNvdXJjZUl0ZW0qIGl0ZW0gPSBtX3Jlc291cmNlcy5nZXQocmVzb3VyY2UtPnVybCgp
KTsKKyAgICAgICAgQ2FjaGVkUmVzb3VyY2VJdGVtKiBpdGVtID0gcmVzb3VyY2VzLmdldChyZXNv
dXJjZS0+dXJsKCkpOwogICAgICAgICBpZiAoaXRlbSkgewogICAgICAgICAgICAgaXRlbS0+cmVt
b3ZlKHJlc291cmNlLT5jYWNoZVBhcnRpdGlvbigpKTsKICAgICAgICAgICAgIGlmICghaXRlbS0+
c2l6ZSgpKQotICAgICAgICAgICAgICAgIG1fcmVzb3VyY2VzLnJlbW92ZShyZXNvdXJjZS0+dXJs
KCkpOworICAgICAgICAgICAgICAgIHJlc291cmNlcy5yZW1vdmUocmVzb3VyY2UtPnVybCgpKTsK
ICAgICAgICAgfQogI2Vsc2UKLSAgICAgICAgbV9yZXNvdXJjZXMucmVtb3ZlKHJlc291cmNlLT51
cmwoKSk7CisgICAgICAgIHJlc291cmNlcy5yZW1vdmUocmVzb3VyY2UtPnVybCgpKTsKICNlbmRp
ZgogICAgICAgICByZXNvdXJjZS0+c2V0SW5DYWNoZShmYWxzZSk7CiAKQEAgLTU0Nyw5ICs1NzMs
OSBAQCB2b2lkIE1lbW9yeUNhY2hlOjpldmljdChDYWNoZWRSZXNvdXJjZSogcmVzb3VyY2UpCiAg
ICAgICAgICAgICBhZGp1c3RTaXplKHJlc291cmNlLT5oYXNDbGllbnRzKCksIC1zdGF0aWNfY2Fz
dDxpbnQ+KHJlc291cmNlLT5zaXplKCkpKTsKICAgICB9IGVsc2UKICNpZiBFTkFCTEUoQ0FDSEVf
UEFSVElUSU9OSU5HKQotICAgICAgICBBU1NFUlQoIW1fcmVzb3VyY2VzLmdldChyZXNvdXJjZS0+
dXJsKCkpIHx8IG1fcmVzb3VyY2VzLmdldChyZXNvdXJjZS0+dXJsKCkpLT5nZXQocmVzb3VyY2Ut
PmNhY2hlUGFydGl0aW9uKCkpICE9IHJlc291cmNlKTsKKyAgICAgICAgQVNTRVJUKCFyZXNvdXJj
ZXMuZ2V0KHJlc291cmNlLT51cmwoKSkgfHwgcmVzb3VyY2VzLmdldChyZXNvdXJjZS0+dXJsKCkp
LT5nZXQocmVzb3VyY2UtPmNhY2hlUGFydGl0aW9uKCkpICE9IHJlc291cmNlKTsKICNlbHNlCi0g
ICAgICAgIEFTU0VSVChtX3Jlc291cmNlcy5nZXQocmVzb3VyY2UtPnVybCgpKSAhPSByZXNvdXJj
ZSk7CisgICAgICAgIEFTU0VSVChyZXNvdXJjZXMuZ2V0KHJlc291cmNlLT51cmwoKSkgIT0gcmVz
b3VyY2UpOwogI2VuZGlmCiAKICAgICByZXNvdXJjZS0+ZGVsZXRlSWZQb3NzaWJsZSgpOwpAQCAt
NjY5LDMxICs2OTUsMzMgQEAgdm9pZCBNZW1vcnlDYWNoZTo6cmVtb3ZlUmVzb3VyY2VzV2l0aE9y
aWdpbihTZWN1cml0eU9yaWdpbiogb3JpZ2luKQogewogICAgIFZlY3RvcjxDYWNoZWRSZXNvdXJj
ZSo+IHJlc291cmNlc1dpdGhPcmlnaW47CiAKLSAgICBDYWNoZWRSZXNvdXJjZU1hcDo6aXRlcmF0
b3IgZSA9IG1fcmVzb3VyY2VzLmVuZCgpOworICAgIGZvciAoYXV0byYgcmVzb3VyY2VzIDogbV9z
ZXNzaW9uUmVzb3VyY2VzKSB7CisgICAgICAgIENhY2hlZFJlc291cmNlTWFwOjppdGVyYXRvciBl
ID0gcmVzb3VyY2VzLnZhbHVlLT5lbmQoKTsKICNpZiBFTkFCTEUoQ0FDSEVfUEFSVElUSU9OSU5H
KQotICAgIFN0cmluZyBvcmlnaW5QYXJ0aXRpb24gPSBSZXNvdXJjZVJlcXVlc3Q6OnBhcnRpdGlv
bk5hbWUob3JpZ2luLT5ob3N0KCkpOworICAgICAgICBTdHJpbmcgb3JpZ2luUGFydGl0aW9uID0g
UmVzb3VyY2VSZXF1ZXN0OjpwYXJ0aXRpb25OYW1lKG9yaWdpbi0+aG9zdCgpKTsKICNlbmRpZgog
Ci0gICAgZm9yIChDYWNoZWRSZXNvdXJjZU1hcDo6aXRlcmF0b3IgaXQgPSBtX3Jlc291cmNlcy5i
ZWdpbigpOyBpdCAhPSBlOyArK2l0KSB7CisgICAgICAgIGZvciAoQ2FjaGVkUmVzb3VyY2VNYXA6
Oml0ZXJhdG9yIGl0ID0gcmVzb3VyY2VzLnZhbHVlLT5iZWdpbigpOyBpdCAhPSBlOyArK2l0KSB7
CiAjaWYgRU5BQkxFKENBQ0hFX1BBUlRJVElPTklORykKLSAgICAgICAgZm9yIChDYWNoZWRSZXNv
dXJjZUl0ZW06Oml0ZXJhdG9yIGl0ZW1JdGVyYXRvciA9IGl0LT52YWx1ZS0+YmVnaW4oKTsgaXRl
bUl0ZXJhdG9yICE9IGl0LT52YWx1ZS0+ZW5kKCk7ICsraXRlbUl0ZXJhdG9yKSB7Ci0gICAgICAg
ICAgICBDYWNoZWRSZXNvdXJjZSogcmVzb3VyY2UgPSBpdGVtSXRlcmF0b3ItPnZhbHVlOwotICAg
ICAgICAgICAgU3RyaW5nIHBhcnRpdGlvbiA9IGl0ZW1JdGVyYXRvci0+a2V5OwotICAgICAgICAg
ICAgaWYgKHBhcnRpdGlvbiA9PSBvcmlnaW5QYXJ0aXRpb24pIHsKLSAgICAgICAgICAgICAgICBy
ZXNvdXJjZXNXaXRoT3JpZ2luLmFwcGVuZChyZXNvdXJjZSk7Ci0gICAgICAgICAgICAgICAgY29u
dGludWU7Ci0gICAgICAgICAgICB9CisgICAgICAgICAgICBmb3IgKENhY2hlZFJlc291cmNlSXRl
bTo6aXRlcmF0b3IgaXRlbUl0ZXJhdG9yID0gaXQtPnZhbHVlLT5iZWdpbigpOyBpdGVtSXRlcmF0
b3IgIT0gaXQtPnZhbHVlLT5lbmQoKTsgKytpdGVtSXRlcmF0b3IpIHsKKyAgICAgICAgICAgICAg
ICBDYWNoZWRSZXNvdXJjZSogcmVzb3VyY2UgPSBpdGVtSXRlcmF0b3ItPnZhbHVlOworICAgICAg
ICAgICAgICAgIFN0cmluZyBwYXJ0aXRpb24gPSBpdGVtSXRlcmF0b3ItPmtleTsKKyAgICAgICAg
ICAgICAgICBpZiAocGFydGl0aW9uID09IG9yaWdpblBhcnRpdGlvbikgeworICAgICAgICAgICAg
ICAgICAgICByZXNvdXJjZXNXaXRoT3JpZ2luLmFwcGVuZChyZXNvdXJjZSk7CisgICAgICAgICAg
ICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgICAgIH0KICNlbHNlCi0gICAgICAgICAg
ICBDYWNoZWRSZXNvdXJjZSogcmVzb3VyY2UgPSBpdC0+dmFsdWU7CisgICAgICAgICAgICAgICAg
Q2FjaGVkUmVzb3VyY2UqIHJlc291cmNlID0gaXQtPnZhbHVlOwogI2VuZGlmCi0gICAgICAgICAg
ICBSZWZQdHI8U2VjdXJpdHlPcmlnaW4+IHJlc291cmNlT3JpZ2luID0gU2VjdXJpdHlPcmlnaW46
OmNyZWF0ZUZyb21TdHJpbmcocmVzb3VyY2UtPnVybCgpKTsKLSAgICAgICAgICAgIGlmICghcmVz
b3VyY2VPcmlnaW4pCi0gICAgICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgICAgICBpZiAo
cmVzb3VyY2VPcmlnaW4tPmVxdWFsKG9yaWdpbikpCi0gICAgICAgICAgICAgICAgcmVzb3VyY2Vz
V2l0aE9yaWdpbi5hcHBlbmQocmVzb3VyY2UpOworICAgICAgICAgICAgICAgIFJlZlB0cjxTZWN1
cml0eU9yaWdpbj4gcmVzb3VyY2VPcmlnaW4gPSBTZWN1cml0eU9yaWdpbjo6Y3JlYXRlRnJvbVN0
cmluZyhyZXNvdXJjZS0+dXJsKCkpOworICAgICAgICAgICAgICAgIGlmICghcmVzb3VyY2VPcmln
aW4pCisgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgICAgIGlmIChy
ZXNvdXJjZU9yaWdpbi0+ZXF1YWwob3JpZ2luKSkKKyAgICAgICAgICAgICAgICAgICAgcmVzb3Vy
Y2VzV2l0aE9yaWdpbi5hcHBlbmQocmVzb3VyY2UpOwogI2lmIEVOQUJMRShDQUNIRV9QQVJUSVRJ
T05JTkcpCi0gICAgICAgIH0KKyAgICAgICAgICAgIH0KICNlbmRpZgorICAgICAgICB9CiAgICAg
fQogCiAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCByZXNvdXJjZXNXaXRoT3JpZ2luLnNpemUo
KTsgKytpKQpAQCAtNzA1LDE2ICs3MzMsMTggQEAgdm9pZCBNZW1vcnlDYWNoZTo6Z2V0T3JpZ2lu
c1dpdGhDYWNoZShTZWN1cml0eU9yaWdpblNldCYgb3JpZ2lucykKICNpZiBFTkFCTEUoQ0FDSEVf
UEFSVElUSU9OSU5HKQogICAgIERFRklORV9TVEFUSUNfTE9DQUwoU3RyaW5nLCBodHRwU3RyaW5n
LCAoImh0dHAiKSk7CiAjZW5kaWYKLSAgICBDYWNoZWRSZXNvdXJjZU1hcDo6aXRlcmF0b3IgZSA9
IG1fcmVzb3VyY2VzLmVuZCgpOwotICAgIGZvciAoQ2FjaGVkUmVzb3VyY2VNYXA6Oml0ZXJhdG9y
IGl0ID0gbV9yZXNvdXJjZXMuYmVnaW4oKTsgaXQgIT0gZTsgKytpdCkgeworICAgIGZvciAoYXV0
byYgcmVzb3VyY2VzIDogbV9zZXNzaW9uUmVzb3VyY2VzKSB7CisgICAgICAgIENhY2hlZFJlc291
cmNlTWFwOjppdGVyYXRvciBlID0gcmVzb3VyY2VzLnZhbHVlLT5lbmQoKTsKKyAgICAgICAgZm9y
IChDYWNoZWRSZXNvdXJjZU1hcDo6aXRlcmF0b3IgaXQgPSByZXNvdXJjZXMudmFsdWUtPmJlZ2lu
KCk7IGl0ICE9IGU7ICsraXQpIHsKICNpZiBFTkFCTEUoQ0FDSEVfUEFSVElUSU9OSU5HKQotICAg
ICAgICBpZiAoaXQtPnZhbHVlLT5iZWdpbigpLT5rZXkgPT0gZW1wdHlTdHJpbmcoKSkKLSAgICAg
ICAgICAgIG9yaWdpbnMuYWRkKFNlY3VyaXR5T3JpZ2luOjpjcmVhdGVGcm9tU3RyaW5nKGl0LT52
YWx1ZS0+YmVnaW4oKS0+dmFsdWUtPnVybCgpKSk7Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAg
IG9yaWdpbnMuYWRkKFNlY3VyaXR5T3JpZ2luOjpjcmVhdGUoaHR0cFN0cmluZywgaXQtPnZhbHVl
LT5iZWdpbigpLT5rZXksIDApKTsKKyAgICAgICAgICAgIGlmIChpdC0+dmFsdWUtPmJlZ2luKCkt
PmtleSA9PSBlbXB0eVN0cmluZygpKQorICAgICAgICAgICAgICAgIG9yaWdpbnMuYWRkKFNlY3Vy
aXR5T3JpZ2luOjpjcmVhdGVGcm9tU3RyaW5nKGl0LT52YWx1ZS0+YmVnaW4oKS0+dmFsdWUtPnVy
bCgpKSk7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgb3JpZ2lucy5hZGQoU2Vj
dXJpdHlPcmlnaW46OmNyZWF0ZShodHRwU3RyaW5nLCBpdC0+dmFsdWUtPmJlZ2luKCktPmtleSwg
MCkpOwogI2Vsc2UKLSAgICAgICAgb3JpZ2lucy5hZGQoU2VjdXJpdHlPcmlnaW46OmNyZWF0ZUZy
b21TdHJpbmcoaXQtPnZhbHVlLT51cmwoKSkpOworICAgICAgICAgICAgb3JpZ2lucy5hZGQoU2Vj
dXJpdHlPcmlnaW46OmNyZWF0ZUZyb21TdHJpbmcoaXQtPnZhbHVlLT51cmwoKSkpOwogI2VuZGlm
CisgICAgICAgIH0KICAgICB9CiB9CiAKQEAgLTgwOCwzMSArODM4LDM5IEBAIHZvaWQgTWVtb3J5
Q2FjaGU6OmFkanVzdFNpemUoYm9vbCBsaXZlLCBpbnQgZGVsdGEpCiAgICAgfQogfQogCi12b2lk
IE1lbW9yeUNhY2hlOjpyZW1vdmVVcmxGcm9tQ2FjaGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCog
Y29udGV4dCwgY29uc3QgU3RyaW5nJiB1cmxTdHJpbmcpCit2b2lkIE1lbW9yeUNhY2hlOjpyZW1v
dmVVcmxGcm9tQ2FjaGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgY29uc3QgU3Ry
aW5nJiB1cmxTdHJpbmcsIFNlc3Npb25JRCBzZXNzaW9uSUQpCiB7Ci0gICAgcmVtb3ZlUmVxdWVz
dEZyb21DYWNoZShjb250ZXh0LCBSZXNvdXJjZVJlcXVlc3QodXJsU3RyaW5nKSk7CisgICAgcmVt
b3ZlUmVxdWVzdEZyb21DYWNoZShjb250ZXh0LCBSZXNvdXJjZVJlcXVlc3QodXJsU3RyaW5nKSwg
c2Vzc2lvbklEKTsKIH0KIAotdm9pZCBNZW1vcnlDYWNoZTo6cmVtb3ZlUmVxdWVzdEZyb21DYWNo
ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBjb25zdCBSZXNvdXJjZVJlcXVlc3Qm
IHJlcXVlc3QpCit2b2lkIE1lbW9yeUNhY2hlOjpyZW1vdmVSZXF1ZXN0RnJvbUNhY2hlKFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVz
dCwgU2Vzc2lvbklEIHNlc3Npb25JRCkKIHsKICAgICBpZiAoY29udGV4dC0+aXNXb3JrZXJHbG9i
YWxTY29wZSgpKSB7Ci0gICAgICAgIHRvV29ya2VyR2xvYmFsU2NvcGUoY29udGV4dCktPnRocmVh
ZCgpLndvcmtlckxvYWRlclByb3h5KCkucG9zdFRhc2tUb0xvYWRlcihjcmVhdGVDYWxsYmFja1Rh
c2soJmNyb3NzVGhyZWFkUmVtb3ZlUmVxdWVzdEZyb21DYWNoZSwgcmVxdWVzdCkpOworICAgICAg
ICB0b1dvcmtlckdsb2JhbFNjb3BlKGNvbnRleHQpLT50aHJlYWQoKS53b3JrZXJMb2FkZXJQcm94
eSgpLnBvc3RUYXNrVG9Mb2FkZXIoY3JlYXRlQ2FsbGJhY2tUYXNrKCZjcm9zc1RocmVhZFJlbW92
ZVJlcXVlc3RGcm9tQ2FjaGUsIHJlcXVlc3QsIHNlc3Npb25JRCkpOwogICAgICAgICByZXR1cm47
CiAgICAgfQogCi0gICAgcmVtb3ZlUmVxdWVzdEZyb21DYWNoZUltcGwoY29udGV4dCwgcmVxdWVz
dCk7CisgICAgcmVtb3ZlUmVxdWVzdEZyb21DYWNoZUltcGwoY29udGV4dCwgcmVxdWVzdCwgc2Vz
c2lvbklEKTsKIH0KIAotdm9pZCBNZW1vcnlDYWNoZTo6cmVtb3ZlUmVxdWVzdEZyb21DYWNoZUlt
cGwoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVz
dCkKK3ZvaWQgTWVtb3J5Q2FjaGU6OnJlbW92ZVJlcXVlc3RGcm9tQ2FjaGVJbXBsKFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQqLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIFNlc3Npb25J
RCBzZXNzaW9uSUQpCiB7Ci0gICAgaWYgKENhY2hlZFJlc291cmNlKiByZXNvdXJjZSA9IG1lbW9y
eUNhY2hlKCktPnJlc291cmNlRm9yUmVxdWVzdChyZXF1ZXN0KSkKKyAgICBpZiAoQ2FjaGVkUmVz
b3VyY2UqIHJlc291cmNlID0gbWVtb3J5Q2FjaGUoKS0+cmVzb3VyY2VGb3JSZXF1ZXN0KHJlcXVl
c3QsIHNlc3Npb25JRCkpCiAgICAgICAgIG1lbW9yeUNhY2hlKCktPnJlbW92ZShyZXNvdXJjZSk7
CiB9CiAKLXZvaWQgTWVtb3J5Q2FjaGU6OmNyb3NzVGhyZWFkUmVtb3ZlUmVxdWVzdEZyb21DYWNo
ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBQYXNzT3duUHRyPFdlYkNvcmU6OkNy
b3NzVGhyZWFkUmVzb3VyY2VSZXF1ZXN0RGF0YT4gcmVxdWVzdERhdGEpCit2b2lkIE1lbW9yeUNh
Y2hlOjpyZW1vdmVSZXF1ZXN0RnJvbVNlc3Npb25DYWNoZXMoU2NyaXB0RXhlY3V0aW9uQ29udGV4
dCosIGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCkKK3sKKyAgICBmb3IgKGF1dG8mIHJl
c291cmNlcyA6IG1lbW9yeUNhY2hlKCktPm1fc2Vzc2lvblJlc291cmNlcykgeworICAgICAgICBp
ZiAoQ2FjaGVkUmVzb3VyY2UqIHJlc291cmNlID0gbWVtb3J5Q2FjaGUoKS0+cmVzb3VyY2VGb3JS
ZXF1ZXN0SW1wbChyZXF1ZXN0LCAqcmVzb3VyY2VzLnZhbHVlKSkKKyAgICAgICAgbWVtb3J5Q2Fj
aGUoKS0+cmVtb3ZlKHJlc291cmNlKTsKKyAgICB9Cit9CisKK3ZvaWQgTWVtb3J5Q2FjaGU6OmNy
b3NzVGhyZWFkUmVtb3ZlUmVxdWVzdEZyb21DYWNoZShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBj
b250ZXh0LCBQYXNzT3duUHRyPFdlYkNvcmU6OkNyb3NzVGhyZWFkUmVzb3VyY2VSZXF1ZXN0RGF0
YT4gcmVxdWVzdERhdGEsIFNlc3Npb25JRCBzZXNzaW9uSUQpCiB7CiAgICAgT3duUHRyPFJlc291
cmNlUmVxdWVzdD4gcmVxdWVzdChSZXNvdXJjZVJlcXVlc3Q6OmFkb3B0KHJlcXVlc3REYXRhKSk7
Ci0gICAgTWVtb3J5Q2FjaGU6OnJlbW92ZVJlcXVlc3RGcm9tQ2FjaGVJbXBsKGNvbnRleHQsICpy
ZXF1ZXN0KTsKKyAgICBNZW1vcnlDYWNoZTo6cmVtb3ZlUmVxdWVzdEZyb21DYWNoZUltcGwoY29u
dGV4dCwgKnJlcXVlc3QsIHNlc3Npb25JRCk7CiB9CiAKIHZvaWQgTWVtb3J5Q2FjaGU6OlR5cGVT
dGF0aXN0aWM6OmFkZFJlc291cmNlKENhY2hlZFJlc291cmNlKiBvKQpAQCAtODU1LDM4ICs4OTMs
NDEgQEAgdm9pZCBNZW1vcnlDYWNoZTo6VHlwZVN0YXRpc3RpYzo6YWRkUmVzb3VyY2UoQ2FjaGVk
UmVzb3VyY2UqIG8pCiBNZW1vcnlDYWNoZTo6U3RhdGlzdGljcyBNZW1vcnlDYWNoZTo6Z2V0U3Rh
dGlzdGljcygpCiB7CiAgICAgU3RhdGlzdGljcyBzdGF0czsKLSAgICBDYWNoZWRSZXNvdXJjZU1h
cDo6aXRlcmF0b3IgZSA9IG1fcmVzb3VyY2VzLmVuZCgpOwotICAgIGZvciAoQ2FjaGVkUmVzb3Vy
Y2VNYXA6Oml0ZXJhdG9yIGkgPSBtX3Jlc291cmNlcy5iZWdpbigpOyBpICE9IGU7ICsraSkgewor
CisgICAgZm9yIChhdXRvICZyZXNvdXJjZXMgOiBtX3Nlc3Npb25SZXNvdXJjZXMpIHsKKyAgICAg
ICAgQ2FjaGVkUmVzb3VyY2VNYXA6Oml0ZXJhdG9yIGUgPSByZXNvdXJjZXMudmFsdWUtPmVuZCgp
OworICAgICAgICBmb3IgKENhY2hlZFJlc291cmNlTWFwOjppdGVyYXRvciBpID0gcmVzb3VyY2Vz
LnZhbHVlLT5iZWdpbigpOyBpICE9IGU7ICsraSkgewogI2lmIEVOQUJMRShDQUNIRV9QQVJUSVRJ
T05JTkcpCi0gICAgICAgIGZvciAoQ2FjaGVkUmVzb3VyY2VJdGVtOjppdGVyYXRvciBpdGVtSXRl
cmF0b3IgPSBpLT52YWx1ZS0+YmVnaW4oKTsgaXRlbUl0ZXJhdG9yICE9IGktPnZhbHVlLT5lbmQo
KTsgKytpdGVtSXRlcmF0b3IpIHsKLSAgICAgICAgICAgIENhY2hlZFJlc291cmNlKiByZXNvdXJj
ZSA9IGl0ZW1JdGVyYXRvci0+dmFsdWU7CisgICAgICAgICAgICBmb3IgKENhY2hlZFJlc291cmNl
SXRlbTo6aXRlcmF0b3IgaXRlbUl0ZXJhdG9yID0gaS0+dmFsdWUtPmJlZ2luKCk7IGl0ZW1JdGVy
YXRvciAhPSBpLT52YWx1ZS0+ZW5kKCk7ICsraXRlbUl0ZXJhdG9yKSB7CisgICAgICAgICAgICAg
ICAgQ2FjaGVkUmVzb3VyY2UqIHJlc291cmNlID0gaXRlbUl0ZXJhdG9yLT52YWx1ZTsKICNlbHNl
Ci0gICAgICAgICAgICBDYWNoZWRSZXNvdXJjZSogcmVzb3VyY2UgPSBpLT52YWx1ZTsKKyAgICAg
ICAgICAgICAgICBDYWNoZWRSZXNvdXJjZSogcmVzb3VyY2UgPSBpLT52YWx1ZTsKICNlbmRpZgot
ICAgICAgICAgICAgc3dpdGNoIChyZXNvdXJjZS0+dHlwZSgpKSB7Ci0gICAgICAgICAgICBjYXNl
IENhY2hlZFJlc291cmNlOjpJbWFnZVJlc291cmNlOgotICAgICAgICAgICAgICAgIHN0YXRzLmlt
YWdlcy5hZGRSZXNvdXJjZShyZXNvdXJjZSk7Ci0gICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAg
ICAgICAgICBjYXNlIENhY2hlZFJlc291cmNlOjpDU1NTdHlsZVNoZWV0OgotICAgICAgICAgICAg
ICAgIHN0YXRzLmNzc1N0eWxlU2hlZXRzLmFkZFJlc291cmNlKHJlc291cmNlKTsKLSAgICAgICAg
ICAgICAgICBicmVhazsKLSAgICAgICAgICAgIGNhc2UgQ2FjaGVkUmVzb3VyY2U6OlNjcmlwdDoK
LSAgICAgICAgICAgICAgICBzdGF0cy5zY3JpcHRzLmFkZFJlc291cmNlKHJlc291cmNlKTsKLSAg
ICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICBzd2l0Y2ggKHJlc291cmNlLT50
eXBlKCkpIHsKKyAgICAgICAgICAgICAgICBjYXNlIENhY2hlZFJlc291cmNlOjpJbWFnZVJlc291
cmNlOgorICAgICAgICAgICAgICAgICAgICBzdGF0cy5pbWFnZXMuYWRkUmVzb3VyY2UocmVzb3Vy
Y2UpOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICBjYXNlIENh
Y2hlZFJlc291cmNlOjpDU1NTdHlsZVNoZWV0OgorICAgICAgICAgICAgICAgICAgICBzdGF0cy5j
c3NTdHlsZVNoZWV0cy5hZGRSZXNvdXJjZShyZXNvdXJjZSk7CisgICAgICAgICAgICAgICAgICAg
IGJyZWFrOworICAgICAgICAgICAgICAgIGNhc2UgQ2FjaGVkUmVzb3VyY2U6OlNjcmlwdDoKKyAg
ICAgICAgICAgICAgICAgICAgc3RhdHMuc2NyaXB0cy5hZGRSZXNvdXJjZShyZXNvdXJjZSk7Cisg
ICAgICAgICAgICAgICAgICAgIGJyZWFrOwogI2lmIEVOQUJMRShYU0xUKQotICAgICAgICAgICAg
Y2FzZSBDYWNoZWRSZXNvdXJjZTo6WFNMU3R5bGVTaGVldDoKLSAgICAgICAgICAgICAgICBzdGF0
cy54c2xTdHlsZVNoZWV0cy5hZGRSZXNvdXJjZShyZXNvdXJjZSk7Ci0gICAgICAgICAgICAgICAg
YnJlYWs7CisgICAgICAgICAgICAgICAgY2FzZSBDYWNoZWRSZXNvdXJjZTo6WFNMU3R5bGVTaGVl
dDoKKyAgICAgICAgICAgICAgICAgICAgc3RhdHMueHNsU3R5bGVTaGVldHMuYWRkUmVzb3VyY2Uo
cmVzb3VyY2UpOworICAgICAgICAgICAgICAgICAgICBicmVhazsKICNlbmRpZgotICAgICAgICAg
ICAgY2FzZSBDYWNoZWRSZXNvdXJjZTo6Rm9udFJlc291cmNlOgotICAgICAgICAgICAgICAgIHN0
YXRzLmZvbnRzLmFkZFJlc291cmNlKHJlc291cmNlKTsKLSAgICAgICAgICAgICAgICBicmVhazsK
LSAgICAgICAgICAgIGRlZmF1bHQ6Ci0gICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAg
ICB9CisgICAgICAgICAgICAgICAgY2FzZSBDYWNoZWRSZXNvdXJjZTo6Rm9udFJlc291cmNlOgor
ICAgICAgICAgICAgICAgICAgICBzdGF0cy5mb250cy5hZGRSZXNvdXJjZShyZXNvdXJjZSk7Cisg
ICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIGRlZmF1bHQ6CisgICAg
ICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KICNpZiBFTkFCTEUoQ0FD
SEVfUEFSVElUSU9OSU5HKQotICAgICAgICB9CisgICAgICAgICAgICB9CiAjZW5kaWYKKyAgICAg
ICAgfQogICAgIH0KICAgICByZXR1cm4gc3RhdHM7CiB9CkBAIC04OTgsOCArOTM5LDExIEBAIHZv
aWQgTWVtb3J5Q2FjaGU6OnNldERpc2FibGVkKGJvb2wgZGlzYWJsZWQpCiAgICAgICAgIHJldHVy
bjsKIAogICAgIGZvciAoOzspIHsKLSAgICAgICAgQ2FjaGVkUmVzb3VyY2VNYXA6Oml0ZXJhdG9y
IG91dGVySXRlcmF0b3IgPSBtX3Jlc291cmNlcy5iZWdpbigpOwotICAgICAgICBpZiAob3V0ZXJJ
dGVyYXRvciA9PSBtX3Jlc291cmNlcy5lbmQoKSkKKyAgICAgICAgU2Vzc2lvbkNhY2hlZFJlc291
cmNlTWFwOjppdGVyYXRvciBzZXNzaW9uSXRlcmF0b3IgPSBtX3Nlc3Npb25SZXNvdXJjZXMuYmVn
aW4oKTsKKyAgICAgICAgaWYgKHNlc3Npb25JdGVyYXRvciA9PSBtX3Nlc3Npb25SZXNvdXJjZXMu
ZW5kKCkpCisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgQ2FjaGVkUmVzb3VyY2VNYXA6Oml0
ZXJhdG9yIG91dGVySXRlcmF0b3IgPSBzZXNzaW9uSXRlcmF0b3ItPnZhbHVlLT5iZWdpbigpOwor
ICAgICAgICBpZiAob3V0ZXJJdGVyYXRvciA9PSBzZXNzaW9uSXRlcmF0b3ItPnZhbHVlLT5lbmQo
KSkKICAgICAgICAgICAgIGJyZWFrOwogI2lmIEVOQUJMRShDQUNIRV9QQVJUSVRJT05JTkcpCiAg
ICAgICAgIENhY2hlZFJlc291cmNlSXRlbTo6aXRlcmF0b3IgaW5uZXJJdGVyYXRvciA9IG91dGVy
SXRlcmF0b3ItPnZhbHVlLT5iZWdpbigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL2NhY2hlL01lbW9yeUNhY2hlLmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvTWVt
b3J5Q2FjaGUuaAppbmRleCBjMDIzYTk3Li5iYWJiNzdjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvY2FjaGUvTWVtb3J5Q2FjaGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvY2FjaGUvTWVtb3J5Q2FjaGUuaApAQCAtMjcsNiArMjcsNyBAQAogCiAjaW5jbHVkZSAiTmF0
aXZlSW1hZ2VQdHIuaCIKICNpbmNsdWRlICJTZWN1cml0eU9yaWdpbkhhc2guaCIKKyNpbmNsdWRl
ICJTZXNzaW9uSURIYXNoLmgiCiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KICNpbmNsdWRlIDx3
dGYvSGFzaFNldC5oPgogI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgpAQCAtODcsNiArODgs
NyBAQCBwdWJsaWM6CiAjZWxzZQogICAgIHR5cGVkZWYgSGFzaE1hcDxTdHJpbmcsIENhY2hlZFJl
c291cmNlKj4gQ2FjaGVkUmVzb3VyY2VNYXA7CiAjZW5kaWYKKyAgICB0eXBlZGVmIEhhc2hNYXA8
U2Vzc2lvbklELCBzdGQ6OnVuaXF1ZV9wdHI8Q2FjaGVkUmVzb3VyY2VNYXA+PiBTZXNzaW9uQ2Fj
aGVkUmVzb3VyY2VNYXA7CiAKICAgICBzdHJ1Y3QgTFJVTGlzdCB7CiAgICAgICAgIENhY2hlZFJl
c291cmNlKiBtX2hlYWQ7CkBAIC0xMTksOSArMTIxLDEwIEBAIHB1YmxpYzoKICAgICB9OwogCiAg
ICAgQ2FjaGVkUmVzb3VyY2UqIHJlc291cmNlRm9yVVJMKGNvbnN0IFVSTCYpOwotICAgIENhY2hl
ZFJlc291cmNlKiByZXNvdXJjZUZvclJlcXVlc3QoY29uc3QgUmVzb3VyY2VSZXF1ZXN0Jik7Ci0g
ICAgCi0gICAgYm9vbCBhZGQoQ2FjaGVkUmVzb3VyY2UqIHJlc291cmNlKTsKKyAgICBDYWNoZWRS
ZXNvdXJjZSogcmVzb3VyY2VGb3JVUkwoY29uc3QgVVJMJiwgU2Vzc2lvbklEKTsKKyAgICBDYWNo
ZWRSZXNvdXJjZSogcmVzb3VyY2VGb3JSZXF1ZXN0KGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIFNl
c3Npb25JRCk7CisKKyAgICBib29sIGFkZChDYWNoZWRSZXNvdXJjZSopOwogICAgIHZvaWQgcmVt
b3ZlKENhY2hlZFJlc291cmNlKiByZXNvdXJjZSkgeyBldmljdChyZXNvdXJjZSk7IH0KIAogICAg
IHN0YXRpYyBVUkwgcmVtb3ZlRnJhZ21lbnRJZGVudGlmaWVySWZOZWVkZWQoY29uc3QgVVJMJiBv
cmlnaW5hbFVSTCk7CkBAIC0xNzAsOCArMTczLDkgQEAgcHVibGljOgogICAgIHZvaWQgZmx1c2hD
YWNoZWRJbWFnZXNUb0Rpc2soKTsgLy8gRmx1c2ggZW5jb2RlZCBkYXRhIGZyb20gcmVzb3VyY2Vz
IHN0aWxsIHJlZmVyZW5jZWQgYnkgd2ViIHBhZ2VzLgogI2VuZGlmCiAKLSAgICBzdGF0aWMgdm9p
ZCByZW1vdmVVcmxGcm9tQ2FjaGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIGNvbnN0IFN0cmlu
ZyYgdXJsU3RyaW5nKTsKLSAgICBzdGF0aWMgdm9pZCByZW1vdmVSZXF1ZXN0RnJvbUNhY2hlKFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmKTsKKyAgICBzdGF0
aWMgdm9pZCByZW1vdmVVcmxGcm9tQ2FjaGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIGNvbnN0
IFN0cmluZyYgdXJsU3RyaW5nLCBTZXNzaW9uSUQpOworICAgIHN0YXRpYyB2b2lkIHJlbW92ZVJl
cXVlc3RGcm9tQ2FjaGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIGNvbnN0IFJlc291cmNlUmVx
dWVzdCYsIFNlc3Npb25JRCk7CisgICAgc3RhdGljIHZvaWQgcmVtb3ZlUmVxdWVzdEZyb21TZXNz
aW9uQ2FjaGVzKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBjb25zdCBSZXNvdXJjZVJlcXVlc3Qm
KTsKIAogICAgIC8vIEZ1bmN0aW9uIHRvIGNvbGxlY3QgY2FjaGUgc3RhdGlzdGljcyBmb3IgdGhl
IGNhY2hlcyB3aW5kb3cgaW4gdGhlIFNhZmFyaSBEZWJ1ZyBtZW51LgogICAgIFN0YXRpc3RpY3Mg
Z2V0U3RhdGlzdGljcygpOwpAQCAtMjIxLDggKzIyNSwxMSBAQCBwcml2YXRlOgogICAgIGJvb2wg
bWFrZVJlc291cmNlUHVyZ2VhYmxlKENhY2hlZFJlc291cmNlKik7CiAgICAgdm9pZCBldmljdChD
YWNoZWRSZXNvdXJjZSopOwogCi0gICAgc3RhdGljIHZvaWQgcmVtb3ZlUmVxdWVzdEZyb21DYWNo
ZUltcGwoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIGNvbnN0IFJlc291cmNlUmVxdWVzdCYpOwot
ICAgIHN0YXRpYyB2b2lkIGNyb3NzVGhyZWFkUmVtb3ZlUmVxdWVzdEZyb21DYWNoZShTY3JpcHRF
eGVjdXRpb25Db250ZXh0KiwgUGFzc093blB0cjxDcm9zc1RocmVhZFJlc291cmNlUmVxdWVzdERh
dGE+KTsKKyAgICBDYWNoZWRSZXNvdXJjZSogcmVzb3VyY2VGb3JSZXF1ZXN0SW1wbChjb25zdCBS
ZXNvdXJjZVJlcXVlc3QmLCBDYWNoZWRSZXNvdXJjZU1hcCYpOworICAgIHN0YXRpYyB2b2lkIHJl
bW92ZVJlcXVlc3RGcm9tQ2FjaGVJbXBsKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBjb25zdCBS
ZXNvdXJjZVJlcXVlc3QmLCBTZXNzaW9uSUQpOworICAgIHN0YXRpYyB2b2lkIGNyb3NzVGhyZWFk
UmVtb3ZlUmVxdWVzdEZyb21DYWNoZShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgUGFzc093blB0
cjxDcm9zc1RocmVhZFJlc291cmNlUmVxdWVzdERhdGE+LCBTZXNzaW9uSUQpOworCisgICAgQ2Fj
aGVkUmVzb3VyY2VNYXAmIGdldFNlc3Npb25NYXAoU2Vzc2lvbklEKTsKIAogICAgIGJvb2wgbV9k
aXNhYmxlZDsgIC8vIFdoZXRoZXIgb3Igbm90IHRoZSBjYWNoZSBpcyBlbmFibGVkLgogICAgIGJv
b2wgbV9wcnVuZUVuYWJsZWQ7CkBAIC0yNDYsNyArMjUzLDcgQEAgcHJpdmF0ZToKICAgICAKICAg
ICAvLyBBIFVSTC1iYXNlZCBtYXAgb2YgYWxsIHJlc291cmNlcyB0aGF0IGFyZSBpbiB0aGUgY2Fj
aGUgKGluY2x1ZGluZyB0aGUgZnJlc2hlc3QgdmVyc2lvbiBvZiBvYmplY3RzIHRoYXQgYXJlIGN1
cnJlbnRseSBiZWluZyAKICAgICAvLyByZWZlcmVuY2VkIGJ5IGEgV2ViIHBhZ2UpLgotICAgIENh
Y2hlZFJlc291cmNlTWFwIG1fcmVzb3VyY2VzOworICAgIFNlc3Npb25DYWNoZWRSZXNvdXJjZU1h
cCBtX3Nlc3Npb25SZXNvdXJjZXM7CiB9OwogCiBpbmxpbmUgYm9vbCBNZW1vcnlDYWNoZTo6c2hv
dWxkTWFrZVJlc291cmNlUHVyZ2VhYmxlT25FdmljdGlvbigpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9Dcm9zc1RocmVhZENvcGllci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9Dcm9zc1RocmVhZENvcGllci5jcHAKaW5kZXggNTdkMDRlMS4uMWIxYWMxMyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vQ3Jvc3NUaHJlYWRDb3BpZXIuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0Nyb3NzVGhyZWFkQ29waWVyLmNwcApAQCAtMzcs
NiArMzcsNyBAQAogI2luY2x1ZGUgIlJlc291cmNlUmVxdWVzdC5oIgogI2luY2x1ZGUgIlJlc291
cmNlUmVzcG9uc2UuaCIKICNpbmNsdWRlICJTZXJpYWxpemVkU2NyaXB0VmFsdWUuaCIKKyNpbmNs
dWRlICJTZXNzaW9uSUQuaCIKICNpbmNsdWRlIDx3dGYvQXNzZXJ0aW9ucy5oPgogI2luY2x1ZGUg
PHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCkBAIC03NCw2ICs3NSwxMSBAQCBDcm9zc1RocmVhZENv
cGllckJhc2U8ZmFsc2UsIGZhbHNlLCBSZXNvdXJjZVJlc3BvbnNlPjo6VHlwZSBDcm9zc1RocmVh
ZENvcGllckJhcwogICAgIHJldHVybiByZXNwb25zZS5jb3B5RGF0YSgpOwogfQogCitDcm9zc1Ro
cmVhZENvcGllckJhc2U8ZmFsc2UsIGZhbHNlLCBTZXNzaW9uSUQ+OjpUeXBlIENyb3NzVGhyZWFk
Q29waWVyQmFzZTxmYWxzZSwgZmFsc2UsIFNlc3Npb25JRD46OmNvcHkoY29uc3QgU2Vzc2lvbklE
JiBzZXNzaW9uSUQpCit7CisgICAgcmV0dXJuIHNlc3Npb25JRDsKK30KKwogI2lmIEVOQUJMRShJ
TkRFWEVEX0RBVEFCQVNFKQogCiBJbmRleGVkREI6OlRyYW5zYWN0aW9uTW9kZSBDcm9zc1RocmVh
ZENvcGllckJhc2U8ZmFsc2UsIGZhbHNlLCBJbmRleGVkREI6OlRyYW5zYWN0aW9uTW9kZT46OmNv
cHkoY29uc3QgSW5kZXhlZERCOjpUcmFuc2FjdGlvbk1vZGUmIG1vZGUpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Dcm9zc1RocmVhZENvcGllci5oIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vQ3Jvc3NUaHJlYWRDb3BpZXIuaAppbmRleCBjYWYyNzlmLi4zOThlODRlIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Dcm9zc1RocmVhZENvcGllci5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0Nyb3NzVGhyZWFkQ29waWVyLmgKQEAgLTQ2LDYg
KzQ2LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIGNsYXNzIFJlc291cmNlRXJyb3I7CiAg
ICAgY2xhc3MgUmVzb3VyY2VSZXF1ZXN0OwogICAgIGNsYXNzIFJlc291cmNlUmVzcG9uc2U7Cisg
ICAgY2xhc3MgU2Vzc2lvbklEOwogICAgIHN0cnVjdCBDcm9zc1RocmVhZFJlc291cmNlUmVzcG9u
c2VEYXRhOwogICAgIHN0cnVjdCBDcm9zc1RocmVhZFJlc291cmNlUmVxdWVzdERhdGE7CiAgICAg
c3RydWN0IFRocmVhZGFibGVMb2FkZXJPcHRpb25zOwpAQCAtMTQ1LDYgKzE0NiwxMSBAQCBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIHN0YXRpYyBUeXBlIGNvcHkoY29uc3QgUmVzb3VyY2VS
ZXNwb25zZSYpOwogICAgIH07CiAKKyAgICB0ZW1wbGF0ZTw+IHN0cnVjdCBDcm9zc1RocmVhZENv
cGllckJhc2U8ZmFsc2UsIGZhbHNlLCBTZXNzaW9uSUQ+IHsKKyAgICAgICAgdHlwZWRlZiBTZXNz
aW9uSUQgVHlwZTsKKyAgICAgICAgc3RhdGljIFR5cGUgY29weShjb25zdCBTZXNzaW9uSUQmKTsK
KyAgICB9OworCiAjaWYgRU5BQkxFKElOREVYRURfREFUQUJBU0UpCiAgICAgbmFtZXNwYWNlIElu
ZGV4ZWREQiB7CiAgICAgICAgIGVudW0gY2xhc3MgVHJhbnNhY3Rpb25Nb2RlOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9SZXNvdXJjZVJlcXVlc3QuaCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvUmVzb3VyY2VSZXF1ZXN0LmgKaW5k
ZXggNDc2MWFkZS4uNWJhNGMzNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bmV0d29yay9jZi9SZXNvdXJjZVJlcXVlc3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9uZXR3b3JrL2NmL1Jlc291cmNlUmVxdWVzdC5oCkBAIC01Nyw3ICs1Nyw3IEBAIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKICAgICAgICAgewogICAgICAgICB9CiAKLSAgICAgICAgUmVzb3VyY2VSZXF1
ZXN0KGNvbnN0IFVSTCYgdXJsLCBjb25zdCBTdHJpbmcmIHJlZmVycmVyLCBSZXNvdXJjZVJlcXVl
c3RDYWNoZVBvbGljeSBwb2xpY3kgPSBVc2VQcm90b2NvbENhY2hlUG9saWN5KSAKKyAgICAgICAg
UmVzb3VyY2VSZXF1ZXN0KGNvbnN0IFVSTCYgdXJsLCBjb25zdCBTdHJpbmcmIHJlZmVycmVyLCBS
ZXNvdXJjZVJlcXVlc3RDYWNoZVBvbGljeSBwb2xpY3kgPSBVc2VQcm90b2NvbENhY2hlUG9saWN5
KQogICAgICAgICAgICAgOiBSZXNvdXJjZVJlcXVlc3RCYXNlKHVybCwgcG9saWN5KQogI2lmIFBM
QVRGT1JNKElPUykKICAgICAgICAgICAgICwgbV9tYWluUmVzb3VyY2VSZXF1ZXN0KGZhbHNlKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclNuYXBzaG90dGVkUGx1
Z0luLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTbmFwc2hvdHRlZFBsdWdJ
bi5jcHAKaW5kZXggYTE2NGY2ZC4uNzRjMzlhMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlclNuYXBzaG90dGVkUGx1Z0luLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyU25hcHNob3R0ZWRQbHVnSW4uY3BwCkBAIC0zMSw2ICszMSw3IEBA
CiAjaW5jbHVkZSAiQ2hyb21lQ2xpZW50LmgiCiAjaW5jbHVkZSAiQ3Vyc29yLmgiCiAjaW5jbHVk
ZSAiRmlsdGVyLmgiCisjaW5jbHVkZSAiRnJhbWUuaCIKICNpbmNsdWRlICJGcmFtZUxvYWRlckNs
aWVudC5oIgogI2luY2x1ZGUgIkZyYW1lVmlldy5oIgogI2luY2x1ZGUgIkdyYWRpZW50LmgiCkBA
IC04NSw3ICs4Niw3IEBAIHZvaWQgUmVuZGVyU25hcHNob3R0ZWRQbHVnSW46OnVwZGF0ZVNuYXBz
aG90KFBhc3NSZWZQdHI8SW1hZ2U+IGltYWdlKQogICAgIGlmICghaW1hZ2UpCiAgICAgICAgIHJl
dHVybjsKIAotICAgIG1fc25hcHNob3RSZXNvdXJjZS0+c2V0Q2FjaGVkSW1hZ2UobmV3IENhY2hl
ZEltYWdlKGltYWdlLmdldCgpKSk7CisgICAgbV9zbmFwc2hvdFJlc291cmNlLT5zZXRDYWNoZWRJ
bWFnZShuZXcgQ2FjaGVkSW1hZ2UoaW1hZ2UuZ2V0KCksIHZpZXcoKS5mcmFtZVZpZXcoKS5mcmFt
ZSgpLnBhZ2UoKS0+c2Vzc2lvbklEKCkpKTsKICAgICByZXBhaW50KCk7CiB9CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAppbmRleCAyYWYwYTIyLi5iN2FhNDM0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCkBAIC0zNTYsOSArMzU2LDkgQEAgYm9vbCBJbnRlcm5h
bHM6OmlzUHJlbG9hZGVkKGNvbnN0IFN0cmluZyYgdXJsKQogCiBib29sIEludGVybmFsczo6aXNM
b2FkaW5nRnJvbU1lbW9yeUNhY2hlKGNvbnN0IFN0cmluZyYgdXJsKQogewotICAgIGlmICghY29u
dGV4dERvY3VtZW50KCkpCisgICAgaWYgKCFjb250ZXh0RG9jdW1lbnQoKSB8fCAhY29udGV4dERv
Y3VtZW50KCktPnBhZ2UoKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIENhY2hlZFJlc291
cmNlKiByZXNvdXJjZSA9IG1lbW9yeUNhY2hlKCktPnJlc291cmNlRm9yVVJMKGNvbnRleHREb2N1
bWVudCgpLT5jb21wbGV0ZVVSTCh1cmwpKTsKKyAgICBDYWNoZWRSZXNvdXJjZSogcmVzb3VyY2Ug
PSBtZW1vcnlDYWNoZSgpLT5yZXNvdXJjZUZvclVSTChjb250ZXh0RG9jdW1lbnQoKS0+Y29tcGxl
dGVVUkwodXJsKSwgY29udGV4dERvY3VtZW50KCktPnBhZ2UoKS0+c2Vzc2lvbklEKCkpOwogICAg
IHJldHVybiByZXNvdXJjZSAmJiByZXNvdXJjZS0+c3RhdHVzKCkgPT0gQ2FjaGVkUmVzb3VyY2U6
OkNhY2hlZDsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIvU291
cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IDdiNzY3ODYuLjY5NDE4YWEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwyMCBAQAorMjAxNC0wMi0yNiAgTWFydGluIEhvY2sgIDxtaG9ja0BhcHBsZS5j
b20+CisKKyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIHNlc3Npb25zIHRvIE1lbW9yeUNhY2hlLgor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI3Nzk0CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBOZXR3b3Jr
UHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkZXIuaDogQWRkIHNlc3Npb25JRCgpIG1ldGhvZC4K
KyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Jlc291cmNlTG9hZGVyOjpzZXNzaW9uSUQpOgorICAg
ICAgICAqIE5ldHdvcmtQcm9jZXNzL21hYy9EaXNrQ2FjaGVNb25pdG9yLmg6IEFkZCBzZXNzaW9u
SUQgbWVtYmVyLgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL21hYy9EaXNrQ2FjaGVNb25pdG9y
Lm1tOgorICAgICAgICAoV2ViS2l0OjpEaXNrQ2FjaGVNb25pdG9yOjpEaXNrQ2FjaGVNb25pdG9y
KTogU2VuZCBzZXNzaW9uSUQgdG8gTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uOjpEaWRDYWNoZVJl
c291cmNlLgorICAgICAgICAqIFdlYlByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc0Nvbm5l
Y3Rpb24uY3BwOiBBZGQgc2Vzc2lvbklEIHBhcmFtZXRlciB0byBkaWRDYWNoZVJlc291cmNlIGFu
ZCBwYXNzIHRvIE1lbW9yeUNhY2hlLgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzc0Nv
bm5lY3Rpb246OmRpZENhY2hlUmVzb3VyY2UpOgorICAgICAgICAqIFdlYlByb2Nlc3MvTmV0d29y
ay9OZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24uaDogRGl0dG8uCisgICAgICAgICogV2ViUHJvY2Vz
cy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbi5tZXNzYWdlcy5pbjogRGl0dG8uCisK
IDIwMTQtMDItMjcgIE1hcnRpbiBSb2JpbnNvbiAgPG1yb2JpbnNvbkBpZ2FsaWEuY29tPgogCiAg
ICAgICAgIEZpeCBidWlsZCBhZnRlciByMTY0ODMyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkZXIuaCBiL1NvdXJjZS9XZWJLaXQy
L05ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRlci5oCmluZGV4IDY5YzU5ZjMuLmVi
NzY5ZjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtS
ZXNvdXJjZUxvYWRlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdv
cmtSZXNvdXJjZUxvYWRlci5oCkBAIC03Miw2ICs3Miw3IEBAIHB1YmxpYzoKIAogICAgIFdlYkNv
cmU6OlJlc291cmNlTG9hZFByaW9yaXR5IHByaW9yaXR5KCkgeyByZXR1cm4gbV9wcmlvcml0eTsg
fQogICAgIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCgpIHsgcmV0dXJuIG1fcmVx
dWVzdDsgfQorICAgIFdlYkNvcmU6OlNlc3Npb25JRCBzZXNzaW9uSUQoKSBjb25zdCB7IHJldHVy
biBtX3Nlc3Npb25JRDsgfQogCiAgICAgV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGUqIGhhbmRsZSgp
IGNvbnN0IHsgcmV0dXJuIG1faGFuZGxlLmdldCgpOyB9CiAgICAgdm9pZCBkaWRDb252ZXJ0SGFu
ZGxlVG9Eb3dubG9hZCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nl
c3MvbWFjL0Rpc2tDYWNoZU1vbml0b3IuaCBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNz
L21hYy9EaXNrQ2FjaGVNb25pdG9yLmgKaW5kZXggMzE4ODNjNS4uMWQwNzFkNCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvbWFjL0Rpc2tDYWNoZU1vbml0b3IuaAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9tYWMvRGlza0NhY2hlTW9uaXRvci5o
CkBAIC0yOCw2ICsyOCw3IEBACiAKICNpbmNsdWRlICJNZXNzYWdlU2VuZGVyLmgiCiAjaW5jbHVk
ZSA8V2ViQ29yZS9SZXNvdXJjZVJlcXVlc3QuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1Nlc3Npb25J
RC5oPgogI2luY2x1ZGUgPHd0Zi9SdW5Mb29wLmg+CiAKIHR5cGVkZWYgY29uc3Qgc3RydWN0IF9D
RkNhY2hlZFVSTFJlc3BvbnNlKiBDRkNhY2hlZFVSTFJlc3BvbnNlUmVmOwpAQCAtNTIsNiArNTMs
NyBAQCBwcml2YXRlOgogCiAgICAgUmVmUHRyPE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNz
PiBtX2Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M7CiAgICAgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0
IG1fcmVzb3VyY2VSZXF1ZXN0OworICAgIFdlYkNvcmU6OlNlc3Npb25JRCBtX3Nlc3Npb25JRDsK
IH07CiAKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvbWFjL0Rp
c2tDYWNoZU1vbml0b3IubW0gYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9tYWMvRGlz
a0NhY2hlTW9uaXRvci5tbQppbmRleCAzODBkYTFmLi5lYjBhNzFkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9tYWMvRGlza0NhY2hlTW9uaXRvci5tbQorKysgYi9T
b3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9tYWMvRGlza0NhY2hlTW9uaXRvci5tbQpAQCAt
NjIsNiArNjIsNyBAQCB2b2lkIERpc2tDYWNoZU1vbml0b3I6Om1vbml0b3JGaWxlQmFja2luZ1N0
b3JlQ3JlYXRpb24oQ0ZDYWNoZWRVUkxSZXNwb25zZVJlZiBjYQogRGlza0NhY2hlTW9uaXRvcjo6
RGlza0NhY2hlTW9uaXRvcihDRkNhY2hlZFVSTFJlc3BvbnNlUmVmIGNhY2hlZFJlc3BvbnNlLCBO
ZXR3b3JrUmVzb3VyY2VMb2FkZXIqIGxvYWRlcikKICAgICA6IG1fY29ubmVjdGlvblRvV2ViUHJv
Y2Vzcyhsb2FkZXItPmNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MoKSkKICAgICAsIG1fcmVzb3VyY2VS
ZXF1ZXN0KGxvYWRlci0+cmVxdWVzdCgpKQorICAgICwgbV9zZXNzaW9uSUQobG9hZGVyLT5zZXNz
aW9uSUQoKSkKIHsKICAgICBBU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOwogCkBAIC04OCw3ICs4
OSw3IEBAIERpc2tDYWNoZU1vbml0b3I6OkRpc2tDYWNoZU1vbml0b3IoQ0ZDYWNoZWRVUkxSZXNw
b25zZVJlZiBjYWNoZWRSZXNwb25zZSwgTmV0d29yCiAgICAgICAgIGlmIChoYW5kbGUuaXNOdWxs
KCkpCiAgICAgICAgICAgICByZXR1cm47CiAKLSAgICAgICAgbW9uaXRvci0+c2VuZChNZXNzYWdl
czo6TmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uOjpEaWRDYWNoZVJlc291cmNlKG1vbml0b3ItPnJl
c291cmNlUmVxdWVzdCgpLCBoYW5kbGUpKTsKKyAgICAgICAgbW9uaXRvci0+c2VuZChNZXNzYWdl
czo6TmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uOjpEaWRDYWNoZVJlc291cmNlKG1vbml0b3ItPnJl
c291cmNlUmVxdWVzdCgpLCBoYW5kbGUsIG1fc2Vzc2lvbklEKSk7CiAgICAgfTsKIAogICAgIF9D
RkNhY2hlZFVSTFJlc3BvbnNlU2V0QmVjYW1lRmlsZUJhY2tlZENhbGxCYWNrQmxvY2soY2FjaGVk
UmVzcG9uc2UsIGJsb2NrLCBkaXNwYXRjaF9nZXRfbWFpbl9xdWV1ZSgpKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rp
b24uY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNz
Q29ubmVjdGlvbi5jcHAKaW5kZXggYjIxNmUxMi4uNjM4Yjg5NyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbi5jcHAK
KysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzQ29u
bmVjdGlvbi5jcHAKQEAgLTM2LDYgKzM2LDcgQEAKICNpbmNsdWRlIDxXZWJDb3JlL0NhY2hlZFJl
c291cmNlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9NZW1vcnlDYWNoZS5oPgogI2luY2x1ZGUgPFdl
YkNvcmUvUmVzb3VyY2VCdWZmZXIuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1Nlc3Npb25JRC5oPgog
CiAjaWYgRU5BQkxFKE5FVFdPUktfUFJPQ0VTUykKIApAQCAtODEsOSArODIsOSBAQCB2b2lkIE5l
dHdvcmtQcm9jZXNzQ29ubmVjdGlvbjo6ZGlkUmVjZWl2ZUludmFsaWRNZXNzYWdlKElQQzo6Q29u
bmVjdGlvbiosIElQQzo6UwogfQogCiAjaWYgRU5BQkxFKFNIQVJFQUJMRV9SRVNPVVJDRSkKLXZv
aWQgTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uOjpkaWRDYWNoZVJlc291cmNlKGNvbnN0IFJlc291
cmNlUmVxdWVzdCYgcmVxdWVzdCwgY29uc3QgU2hhcmVhYmxlUmVzb3VyY2U6OkhhbmRsZSYgaGFu
ZGxlKQordm9pZCBOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb246OmRpZENhY2hlUmVzb3VyY2UoY29u
c3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBjb25zdCBTaGFyZWFibGVSZXNvdXJjZTo6SGFu
ZGxlJiBoYW5kbGUsIFNlc3Npb25JRCBzZXNzaW9uSUQpCiB7Ci0gICAgQ2FjaGVkUmVzb3VyY2Uq
IHJlc291cmNlID0gbWVtb3J5Q2FjaGUoKS0+cmVzb3VyY2VGb3JSZXF1ZXN0KHJlcXVlc3QpOwor
ICAgIENhY2hlZFJlc291cmNlKiByZXNvdXJjZSA9IG1lbW9yeUNhY2hlKCktPnJlc291cmNlRm9y
UmVxdWVzdChyZXF1ZXN0LCBzZXNzaW9uSUQpOwogICAgIGlmICghcmVzb3VyY2UpCiAgICAgICAg
IHJldHVybjsKICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTmV0
d29yay9OZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24uaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24uaAppbmRleCA4NDJmNmViLi45MzZk
NjZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05ldHdvcmsvTmV0d29y
a1Byb2Nlc3NDb25uZWN0aW9uLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9OZXR3
b3JrL05ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbi5oCkBAIC00MSw2ICs0MSw3IEBAIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIGNsYXNzIFJlc291cmNlRXJyb3I7CiBjbGFzcyBSZXNvdXJjZVJlcXVlc3Q7
CiBjbGFzcyBSZXNvdXJjZVJlc3BvbnNlOworY2xhc3MgU2Vzc2lvbklEOwogfQogCiBuYW1lc3Bh
Y2UgV2ViS2l0IHsKQEAgLTcwLDcgKzcxLDcgQEAgcHJpdmF0ZToKIAogI2lmIEVOQUJMRShTSEFS
RUFCTEVfUkVTT1VSQ0UpCiAgICAgLy8gTWVzc2FnZSBoYW5kbGVycy4KLSAgICB2b2lkIGRpZENh
Y2hlUmVzb3VyY2UoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgU2hhcmVh
YmxlUmVzb3VyY2U6OkhhbmRsZSYpOworICAgIHZvaWQgZGlkQ2FjaGVSZXNvdXJjZShjb25zdCBX
ZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBTaGFyZWFibGVSZXNvdXJjZTo6SGFuZGxl
JiwgV2ViQ29yZTo6U2Vzc2lvbklEKTsKICNlbmRpZgogCiAgICAgLy8gVGhlIGNvbm5lY3Rpb24g
ZnJvbSB0aGUgd2ViIHByb2Nlc3MgdG8gdGhlIG5ldHdvcmsgcHJvY2Vzcy4KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rp
b24ubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05ldHdvcmsvTmV0d29y
a1Byb2Nlc3NDb25uZWN0aW9uLm1lc3NhZ2VzLmluCmluZGV4IGU2OTg5ZDkuLmMxZjc4YzQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vz
c0Nvbm5lY3Rpb24ubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9O
ZXR3b3JrL05ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbi5tZXNzYWdlcy5pbgpAQCAtMjUsNyArMjUs
NyBAQAogbWVzc2FnZXMgLT4gTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uIExlZ2FjeVJlY2VpdmVy
IHsKIAogI2lmIEVOQUJMRShTSEFSRUFCTEVfUkVTT1VSQ0UpCi0gICAgRGlkQ2FjaGVSZXNvdXJj
ZShXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdCwgV2ViS2l0OjpTaGFyZWFibGVSZXNv
dXJjZTo6SGFuZGxlIHJlc291cmNlKQorICAgIERpZENhY2hlUmVzb3VyY2UoV2ViQ29yZTo6UmVz
b3VyY2VSZXF1ZXN0IHJlcXVlc3QsIFdlYktpdDo6U2hhcmVhYmxlUmVzb3VyY2U6OkhhbmRsZSBy
ZXNvdXJjZSwgV2ViQ29yZTo6U2Vzc2lvbklEIHNlc3Npb25JRCkKICNlbmRpZgogCiB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>225435</attachid>
            <date>2014-02-27 20:53:32 -0800</date>
            <delta_ts>2014-03-03 14:14:56 -0800</delta_ts>
            <desc>build fix</desc>
            <filename>memcachesession.26.diff</filename>
            <type>text/plain</type>
            <size>67581</size>
            <attacher name="Martin Hock">mhock</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBkNWY0YWMyLi4zM2I4MTQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsOTQg
QEAKKzIwMTQtMDItMjYgIE1hcnRpbiBIb2NrICA8bWhvY2tAYXBwbGUuY29tPgorCisgICAgICAg
IEFkZCBzdXBwb3J0IGZvciBzZXNzaW9ucyB0byBNZW1vcnlDYWNoZS4KKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyNzc5NAorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2ViQ29yZS5leHAuaW46CisgICAg
ICAgICogZWRpdGluZy9EZWxldGVCdXR0b25Db250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkRlbGV0ZUJ1dHRvbkNvbnRyb2xsZXI6OmNyZWF0ZURlbGV0aW9uVUkpOiBJbml0aWFsaXpl
IENhY2hlZEltYWdlIHdpdGggc2Vzc2lvbklELgorICAgICAgICAqIGh0bWwvRE9NVVJMLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkRPTVVSTDo6cmV2b2tlT2JqZWN0VVJMKTogUmVtb3ZlIFVSTCBm
cm9tIE1lbW9yeUNhY2hlIGZvciBhbGwgc2Vzc2lvbnMuCisgICAgICAgICogaW5zcGVjdG9yL0lu
c3BlY3RvclBhZ2VBZ2VudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JQYWdlQWdl
bnQ6OmNhY2hlZFJlc291cmNlKTogUGFzcyBzZXNzaW9uSUQgdG8gTWVtb3J5Q2FjaGUuCisgICAg
ICAgICogaW5zcGVjdG9yL0luc3BlY3RvclJlc291cmNlQWdlbnQuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6SW5zcGVjdG9yUmVzb3VyY2VBZ2VudDo6cmVwbGF5WEhSKTogRGl0dG8uCisgICAgICAg
ICogbG9hZGVyL0RvY3VtZW50TG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmFyZUFsbExv
YWRlcnNQYWdlQ2FjaGVBY2NlcHRhYmxlKTogRGl0dG8uCisgICAgICAgICogbG9hZGVyL0ZyYW1l
TG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyOjp0ZWxsQ2xpZW50QWJv
dXRQYXN0TWVtb3J5Q2FjaGVMb2Fkcyk6IERpdHRvLgorICAgICAgICAqIGxvYWRlci9JbWFnZUxv
YWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZUxvYWRlcjo6dXBkYXRlRnJvbUVsZW1l
bnQpOiBJbml0aWFsaXplIENhY2hlZEltYWdlIHdpdGggc2Vzc2lvbklELgorICAgICAgICAqIGxv
YWRlci9hcmNoaXZlL2NmL0xlZ2FjeVdlYkFyY2hpdmUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
TGVnYWN5V2ViQXJjaGl2ZTo6Y3JlYXRlKTogUGFzcyBzZXNzaW9uSUQgdG8gTWVtb3J5Q2FjaGUu
CisgICAgICAgICogbG9hZGVyL2NhY2hlL0NhY2hlZENTU1N0eWxlU2hlZXQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6Q2FjaGVkQ1NTU3R5bGVTaGVldDo6Q2FjaGVkQ1NTU3R5bGVTaGVldCk6IENv
bnN0cnVjdG9yIHRha2VzIHNlc3Npb25JRC4KKyAgICAgICAgKiBsb2FkZXIvY2FjaGUvQ2FjaGVk
Q1NTU3R5bGVTaGVldC5oOgorICAgICAgICAqIGxvYWRlci9jYWNoZS9DYWNoZWRGb250LmNwcDog
RGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRGb250OjpDYWNoZWRGb250KToKKyAgICAg
ICAgKiBsb2FkZXIvY2FjaGUvQ2FjaGVkRm9udC5oOgorICAgICAgICAqIGxvYWRlci9jYWNoZS9D
YWNoZWRJbWFnZS5jcHA6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkSW1hZ2U6OkNh
Y2hlZEltYWdlKToKKyAgICAgICAgKiBsb2FkZXIvY2FjaGUvQ2FjaGVkSW1hZ2UuaDoKKyAgICAg
ICAgKiBsb2FkZXIvY2FjaGUvQ2FjaGVkUmF3UmVzb3VyY2UuY3BwOiBEaXR0by4KKyAgICAgICAg
KFdlYkNvcmU6OkNhY2hlZFJhd1Jlc291cmNlOjpDYWNoZWRSYXdSZXNvdXJjZSk6CisgICAgICAg
ICogbG9hZGVyL2NhY2hlL0NhY2hlZFJhd1Jlc291cmNlLmg6CisgICAgICAgICogbG9hZGVyL2Nh
Y2hlL0NhY2hlZFJlc291cmNlLmNwcDogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRS
ZXNvdXJjZTo6Q2FjaGVkUmVzb3VyY2UpOgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkUmVzb3Vy
Y2U6On5DYWNoZWRSZXNvdXJjZSk6IFBhc3Mgc2Vzc2lvbklEIHRvIE1lbW9yeUNhY2hlLgorICAg
ICAgICAqIGxvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZS5oOgorICAgICAgICAoV2ViQ29yZTo6
Q2FjaGVkUmVzb3VyY2U6OnNlc3Npb25JRCk6CisgICAgICAgICogbG9hZGVyL2NhY2hlL0NhY2hl
ZFJlc291cmNlTG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZVJlc291cmNlKTog
Q29uc3RydWN0b3JzIHRha2Ugc2Vzc2lvbklELgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkUmVz
b3VyY2VMb2FkZXI6OnNlc3Npb25JRCk6IFJldHJpZXZlIHNlc3Npb25JRCBmcm9tIHBhZ2UuCisg
ICAgICAgIChXZWJDb3JlOjpDYWNoZWRSZXNvdXJjZUxvYWRlcjo6cmVxdWVzdFVzZXJDU1NTdHls
ZVNoZWV0KTogUGFzcyBzZXNzaW9uSUQgdG8gTWVtb3J5Q2FjaGUuCisgICAgICAgIChXZWJDb3Jl
OjpDYWNoZWRSZXNvdXJjZUxvYWRlcjo6cmVxdWVzdFJlc291cmNlKTogSW5pdGlhbGl6ZSBDYWNo
ZWRDU1NTdHlsZVNoZWV0IHdpdGggc2Vzc2lvbklELgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVk
UmVzb3VyY2VMb2FkZXI6OnJldmFsaWRhdGVSZXNvdXJjZSk6IEluaXRpYWxpemUgY2FjaGVkIHJl
c291cmNlIHdpdGggc2Vzc2lvbklELgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkUmVzb3VyY2VM
b2FkZXI6OmxvYWRSZXNvdXJjZSk6IFBhc3Mgc2Vzc2lvbklEIHRvIE1lbW9yeUNhY2hlIGFuZCBp
bml0aWFsaXplIGNhY2hlZCByZXNvdXJjZSB3aXRoIHNlc3Npb25JRC4KKyAgICAgICAgKiBsb2Fk
ZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VMb2FkZXIuaDoKKyAgICAgICAgKiBsb2FkZXIvY2FjaGUv
Q2FjaGVkU1ZHRG9jdW1lbnQuY3BwOiBDb25zdHJ1Y3RvciB0YWtlcyBzZXNzaW9uSUQuCisgICAg
ICAgIChXZWJDb3JlOjpDYWNoZWRTVkdEb2N1bWVudDo6Q2FjaGVkU1ZHRG9jdW1lbnQpOgorICAg
ICAgICAqIGxvYWRlci9jYWNoZS9DYWNoZWRTVkdEb2N1bWVudC5oOgorICAgICAgICAqIGxvYWRl
ci9jYWNoZS9DYWNoZWRTY3JpcHQuY3BwOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OkNhY2hl
ZFNjcmlwdDo6Q2FjaGVkU2NyaXB0KToKKyAgICAgICAgKiBsb2FkZXIvY2FjaGUvQ2FjaGVkU2Ny
aXB0Lmg6CisgICAgICAgICogbG9hZGVyL2NhY2hlL0NhY2hlZFRleHRUcmFjay5jcHA6IERpdHRv
LgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkVGV4dFRyYWNrOjpDYWNoZWRUZXh0VHJhY2spOgor
ICAgICAgICAqIGxvYWRlci9jYWNoZS9DYWNoZWRUZXh0VHJhY2suaDoKKyAgICAgICAgKiBsb2Fk
ZXIvY2FjaGUvQ2FjaGVkWFNMU3R5bGVTaGVldC5jcHA6IERpdHRvLgorICAgICAgICAoV2ViQ29y
ZTo6Q2FjaGVkWFNMU3R5bGVTaGVldDo6Q2FjaGVkWFNMU3R5bGVTaGVldCk6CisgICAgICAgICog
bG9hZGVyL2NhY2hlL0NhY2hlZFhTTFN0eWxlU2hlZXQuaDoKKyAgICAgICAgKiBsb2FkZXIvY2Fj
aGUvTWVtb3J5Q2FjaGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVtb3J5Q2FjaGU6OmdldFNl
c3Npb25NYXApOiBSZXRyaWV2ZSBDYWNoZWRSZXNvdXJjZU1hcCBiYXNlZCBvbiBzZXNzaW9uSUQu
CisgICAgICAgIChXZWJDb3JlOjpNZW1vcnlDYWNoZTo6YWRkKTogVXNlIHNlc3Npb25JRCBmcm9t
IENhY2hlZFJlc291cmNlIHBhcmFtZXRlci4KKyAgICAgICAgKFdlYkNvcmU6Ok1lbW9yeUNhY2hl
OjpyZXZhbGlkYXRpb25TdWNjZWVkZWQpOiBBZGQgc2Vzc2lvbklEIHBhcmFtZXRlci4KKyAgICAg
ICAgKFdlYkNvcmU6Ok1lbW9yeUNhY2hlOjpyZXNvdXJjZUZvclVSTCk6IERpdHRvLgorICAgICAg
ICAoV2ViQ29yZTo6TWVtb3J5Q2FjaGU6OnJlc291cmNlRm9yUmVxdWVzdCk6IERpdHRvLCBhbHNv
IG1vdmUgaW1wbCBpbnRvIGltcGwgbWV0aG9kLgorICAgICAgICAoV2ViQ29yZTo6TWVtb3J5Q2Fj
aGU6OnJlc291cmNlRm9yUmVxdWVzdEltcGwpOiBBZGQgQ2FjaGVkUmVzb3VyY2VNYXAgcGFyYW1l
dGVyLgorICAgICAgICAoV2ViQ29yZTo6TWVtb3J5Q2FjaGU6OmFkZEltYWdlVG9DYWNoZSk6IFVz
ZSBkZWZhdWx0IHNlc3Npb25JRC4KKyAgICAgICAgKFdlYkNvcmU6Ok1lbW9yeUNhY2hlOjpyZW1v
dmVJbWFnZUZyb21DYWNoZSk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6TWVtb3J5Q2FjaGU6
OmV2aWN0KTogVXNlIHNlc3Npb25JRCBmcm9tIENhY2hlZFJlc291cmNlIHBhcmFtZXRlci4KKyAg
ICAgICAgKFdlYkNvcmU6Ok1lbW9yeUNhY2hlOjpyZW1vdmVSZXNvdXJjZXNXaXRoT3JpZ2luKTog
SXRlcmF0ZSB0aHJvdWdoIGFsbCBDYWNoZWRSZXNvdXJjZU1hcHMuCisgICAgICAgIChXZWJDb3Jl
OjpNZW1vcnlDYWNoZTo6Z2V0T3JpZ2luc1dpdGhDYWNoZSk6IERpdHRvLgorICAgICAgICAoV2Vi
Q29yZTo6TWVtb3J5Q2FjaGU6OnJlbW92ZVVybEZyb21DYWNoZSk6IEFkZCBzZXNzaW9uSUQgcGFy
YW1ldGVyLgorICAgICAgICAoV2ViQ29yZTo6TWVtb3J5Q2FjaGU6OnJlbW92ZVJlcXVlc3RGcm9t
Q2FjaGUpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6Ok1lbW9yeUNhY2hlOjpyZW1vdmVSZXF1
ZXN0RnJvbUNhY2hlSW1wbCk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6TWVtb3J5Q2FjaGU6
OnJlbW92ZVJlcXVlc3RGcm9tU2Vzc2lvbkNhY2hlcyk6IEl0ZXJhdGUgdGhyb3VnaCBhbGwgQ2Fj
aGVkUmVzb3VyY2VNYXBzLgorICAgICAgICAoV2ViQ29yZTo6TWVtb3J5Q2FjaGU6OmNyb3NzVGhy
ZWFkUmVtb3ZlUmVxdWVzdEZyb21DYWNoZSk6IEFkZCBzZXNzaW9uSUQgcGFyYW1ldGVyLgorICAg
ICAgICAoV2ViQ29yZTo6TWVtb3J5Q2FjaGU6OmdldFN0YXRpc3RpY3MpOiBJdGVyYXRlIHRocm91
Z2ggYWxsIENhY2hlZFJlc291cmNlTWFwcy4KKyAgICAgICAgKFdlYkNvcmU6Ok1lbW9yeUNhY2hl
OjpzZXREaXNhYmxlZCk6IERpdHRvLgorICAgICAgICAqIGxvYWRlci9jYWNoZS9NZW1vcnlDYWNo
ZS5oOiBDcmVhdGUgYW5vdGhlciBsZXZlbCBmb3IgY2FjaGUuCisgICAgICAgICogcGxhdGZvcm0v
Q3Jvc3NUaHJlYWRDb3BpZXIuY3BwOiBBbGxvdyBjb3B5aW5nIFNlc3Npb25JRHMgYWNyb3NzIHRo
cmVhZHMuCisgICAgICAgIChXZWJDb3JlOjpTZXNzaW9uSUQ+Ojpjb3B5KToKKyAgICAgICAgKiBw
bGF0Zm9ybS9Dcm9zc1RocmVhZENvcGllci5oOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsv
Y2YvUmVzb3VyY2VSZXF1ZXN0Lmg6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3Q6
OlJlc291cmNlUmVxdWVzdCk6IFJlbW92ZSB0cmFpbGluZyB3aGl0ZXNwYWNlLgorICAgICAgICAq
IHJlbmRlcmluZy9SZW5kZXJTbmFwc2hvdHRlZFBsdWdJbi5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpSZW5kZXJTbmFwc2hvdHRlZFBsdWdJbjo6dXBkYXRlU25hcHNob3QpOiBJbml0aWFsaXplIENh
Y2hlZEltYWdlIHdpdGggc2Vzc2lvbklELgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxzLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkludGVybmFsczo6aXNMb2FkaW5nRnJvbU1lbW9yeUNhY2hl
KTogUGFzcyBzZXNzaW9uSUQgdG8gTWVtb3J5Q2FjaGUuCisKIDIwMTQtMDItMTcgIE15bGVzIEMu
IE1heGZpZWxkICA8bW1heGZpZWxkQGFwcGxlLmNvbT4KIAogICAgICAgICB0ZXh0LWRlY29yYXRp
b24tc2tpcDogaW5rIGRvZXMgbm90IHNraXAgb3ZlciBTVkcgZm9udHMKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAu
aW4KaW5kZXggYzYwZjg0YS4uZTk1MzdiZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS5leHAuaW4KKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KQEAgLTE3MCw4
ICsxNzAsOSBAQCBfX1pON1dlYkNvcmUxMU1lbW9yeUNhY2hlMTNnZXRTdGF0aXN0aWNzRXYKIF9f
Wk43V2ViQ29yZTExTWVtb3J5Q2FjaGUxM3NldENhcGFjaXRpZXNFampqCiBfX1pON1dlYkNvcmUx
MU1lbW9yeUNhY2hlMTRldmljdFJlc291cmNlc0V2CiBfX1pON1dlYkNvcmUxMU1lbW9yeUNhY2hl
MTRyZXNvdXJjZUZvclVSTEVSS05TXzNVUkxFCitfX1pON1dlYkNvcmUxMU1lbW9yeUNhY2hlMTRy
ZXNvdXJjZUZvclVSTEVSS05TXzNVUkxFTlNfOVNlc3Npb25JREUKIF9fWk43V2ViQ29yZTExTWVt
b3J5Q2FjaGUxNWFkZEltYWdlVG9DYWNoZUVQN0NHSW1hZ2VSS05TXzNVUkxFUktOM1dURjZTdHJp
bmdFCi1fX1pON1dlYkNvcmUxMU1lbW9yeUNhY2hlMThyZXNvdXJjZUZvclJlcXVlc3RFUktOU18x
NVJlc291cmNlUmVxdWVzdEUKK19fWk43V2ViQ29yZTExTWVtb3J5Q2FjaGUxOHJlc291cmNlRm9y
UmVxdWVzdEVSS05TXzE1UmVzb3VyY2VSZXF1ZXN0RU5TXzlTZXNzaW9uSURFCiBfX1pON1dlYkNv
cmUxMU1lbW9yeUNhY2hlMTlnZXRPcmlnaW5zV2l0aENhY2hlRVJOM1dURjdIYXNoU2V0SU5TMV82
UmVmUHRySU5TXzE0U2VjdXJpdHlPcmlnaW5FRUVOU18xOFNlY3VyaXR5T3JpZ2luSGFzaEVOUzFf
MTBIYXNoVHJhaXRzSVM1X0VFRUUKIF9fWk43V2ViQ29yZTExTWVtb3J5Q2FjaGUyMHJlbW92ZUlt
YWdlRnJvbUNhY2hlRVJLTlNfM1VSTEVSS04zV1RGNlN0cmluZ0UKIF9fWk43V2ViQ29yZTExTWVt
b3J5Q2FjaGUyNXJlbW92ZVJlc291cmNlc1dpdGhPcmlnaW5FUE5TXzE0U2VjdXJpdHlPcmlnaW5F
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RlbGV0ZUJ1dHRvbkNvbnRyb2xs
ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EZWxldGVCdXR0b25Db250cm9sbGVyLmNw
cAppbmRleCA4MjBiMGFjLi4xNWU2N2U2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL0RlbGV0ZUJ1dHRvbkNvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvRGVsZXRlQnV0dG9uQ29udHJvbGxlci5jcHAKQEAgLTI1NCw3ICsyNTQsNyBAQCB2b2lkIERl
bGV0ZUJ1dHRvbkNvbnRyb2xsZXI6OmNyZWF0ZURlbGV0aW9uVUkoKQogICAgIGlmIChidXR0b25J
bWFnZS0+aXNOdWxsKCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIGJ1dHRvbi0+c2V0Q2FjaGVk
SW1hZ2UobmV3IENhY2hlZEltYWdlKGJ1dHRvbkltYWdlLmdldCgpKSk7CisgICAgYnV0dG9uLT5z
ZXRDYWNoZWRJbWFnZShuZXcgQ2FjaGVkSW1hZ2UoYnV0dG9uSW1hZ2UuZ2V0KCksIG1fZnJhbWUu
cGFnZSgpLT5zZXNzaW9uSUQoKSkpOwogCiAgICAgY29udGFpbmVyLT5hcHBlbmRDaGlsZChidXR0
b24uZ2V0KCksIGVjKTsKICAgICBBU1NFUlQoIWVjKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvRE9NVVJMLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRE9NVVJMLmNwcAppbmRl
eCA0ZTQ0MjU0Li41YjQ5ZGNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0RPTVVS
TC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9ET01VUkwuY3BwCkBAIC0xMjQsNyArMTI0
LDcgQEAgdm9pZCBET01VUkw6OnJldm9rZU9iamVjdFVSTChTY3JpcHRFeGVjdXRpb25Db250ZXh0
KiBzY3JpcHRFeGVjdXRpb25Db250ZXh0LCBjb24KICNpZiBFTkFCTEUoQ0FDSEVfUEFSVElUSU9O
SU5HKQogICAgIHJlcXVlc3Quc2V0Q2FjaGVQYXJ0aXRpb24oc2NyaXB0RXhlY3V0aW9uQ29udGV4
dC0+dG9wT3JpZ2luKCktPmNhY2hlUGFydGl0aW9uKCkpOwogI2VuZGlmCi0gICAgTWVtb3J5Q2Fj
aGU6OnJlbW92ZVJlcXVlc3RGcm9tQ2FjaGUoc2NyaXB0RXhlY3V0aW9uQ29udGV4dCwgcmVxdWVz
dCk7CisgICAgTWVtb3J5Q2FjaGU6OnJlbW92ZVJlcXVlc3RGcm9tU2Vzc2lvbkNhY2hlcyhzY3Jp
cHRFeGVjdXRpb25Db250ZXh0LCByZXF1ZXN0KTsKIAogICAgIHNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQtPnB1YmxpY1VSTE1hbmFnZXIoKS5yZXZva2UodXJsKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JQYWdlQWdlbnQuY3BwIGIvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL0luc3BlY3RvclBhZ2VBZ2VudC5jcHAKaW5kZXggY2ZlZTVkOC4uMzAxMjkw
NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclBhZ2VBZ2Vu
dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclBhZ2VBZ2VudC5j
cHAKQEAgLTI4Miw3ICsyODIsNyBAQCBDYWNoZWRSZXNvdXJjZSogSW5zcGVjdG9yUGFnZUFnZW50
OjpjYWNoZWRSZXNvdXJjZShGcmFtZSogZnJhbWUsIGNvbnN0IFVSTCYgdXJsKQogI2lmIEVOQUJM
RShDQUNIRV9QQVJUSVRJT05JTkcpCiAgICAgICAgIHJlcXVlc3Quc2V0Q2FjaGVQYXJ0aXRpb24o
ZnJhbWUtPmRvY3VtZW50KCktPnRvcE9yaWdpbigpLT5jYWNoZVBhcnRpdGlvbigpKTsKICNlbmRp
ZgotICAgICAgICBjYWNoZWRSZXNvdXJjZSA9IG1lbW9yeUNhY2hlKCktPnJlc291cmNlRm9yUmVx
dWVzdChyZXF1ZXN0KTsKKyAgICAgICAgY2FjaGVkUmVzb3VyY2UgPSBtZW1vcnlDYWNoZSgpLT5y
ZXNvdXJjZUZvclJlcXVlc3QocmVxdWVzdCwgZnJhbWUtPnBhZ2UoKS0+c2Vzc2lvbklEKCkpOwog
ICAgIH0KIAogICAgIHJldHVybiBjYWNoZWRSZXNvdXJjZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JSZXNvdXJjZUFnZW50LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9JbnNwZWN0b3JSZXNvdXJjZUFnZW50LmNwcAppbmRleCBhNjU0OGI2Li5m
N2JlMzNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUmVz
b3VyY2VBZ2VudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclJl
c291cmNlQWdlbnQuY3BwCkBAIC01OTQsNyArNTk0LDcgQEAgdm9pZCBJbnNwZWN0b3JSZXNvdXJj
ZUFnZW50OjpyZXBsYXlYSFIoRXJyb3JTdHJpbmcqLCBjb25zdCBTdHJpbmcmIHJlcXVlc3RJZCkK
ICNpZiBFTkFCTEUoQ0FDSEVfUEFSVElUSU9OSU5HKQogICAgIHJlcXVlc3Quc2V0Q2FjaGVQYXJ0
aXRpb24obV9wYWdlQWdlbnQtPm1haW5GcmFtZSgpLT5kb2N1bWVudCgpLT50b3BPcmlnaW4oKS0+
Y2FjaGVQYXJ0aXRpb24oKSk7CiAjZW5kaWYKLSAgICBDYWNoZWRSZXNvdXJjZSogY2FjaGVkUmVz
b3VyY2UgPSBtZW1vcnlDYWNoZSgpLT5yZXNvdXJjZUZvclJlcXVlc3QocmVxdWVzdCk7CisgICAg
Q2FjaGVkUmVzb3VyY2UqIGNhY2hlZFJlc291cmNlID0gbWVtb3J5Q2FjaGUoKS0+cmVzb3VyY2VG
b3JSZXF1ZXN0KHJlcXVlc3QsIG1fcGFnZUFnZW50LT5wYWdlKCktPnNlc3Npb25JRCgpKTsKICAg
ICBpZiAoY2FjaGVkUmVzb3VyY2UpCiAgICAgICAgIG1lbW9yeUNhY2hlKCktPnJlbW92ZShjYWNo
ZWRSZXNvdXJjZSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVu
dExvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkZXIuY3BwCmlu
ZGV4IDU5MDg5YWMuLmU0ZTU0YWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9E
b2N1bWVudExvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50TG9h
ZGVyLmNwcApAQCAtMTA1LDcgKzEwNSwxMCBAQCBzdGF0aWMgYm9vbCBhcmVBbGxMb2FkZXJzUGFn
ZUNhY2hlQWNjZXB0YWJsZShjb25zdCBSZXNvdXJjZUxvYWRlclNldCYgbG9hZGVycykKICAgICAg
ICAgaWYgKCFoYW5kbGUpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICAgICAgQ2Fj
aGVkUmVzb3VyY2UqIGNhY2hlZFJlc291cmNlID0gbWVtb3J5Q2FjaGUoKS0+cmVzb3VyY2VGb3JV
UkwoaGFuZGxlLT5maXJzdFJlcXVlc3QoKS51cmwoKSk7CisgICAgICAgIGlmICghbG9hZGVyLT5m
cmFtZUxvYWRlcigpKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgICAgIENhY2hl
ZFJlc291cmNlKiBjYWNoZWRSZXNvdXJjZSA9IG1lbW9yeUNhY2hlKCktPnJlc291cmNlRm9yVVJM
KGhhbmRsZS0+Zmlyc3RSZXF1ZXN0KCkudXJsKCksIGxvYWRlci0+ZnJhbWVMb2FkZXIoKS0+ZnJh
bWUoKS5wYWdlKCktPnNlc3Npb25JRCgpKTsKICAgICAgICAgaWYgKCFjYWNoZWRSZXNvdXJjZSkK
ICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
bG9hZGVyL0ZyYW1lTG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRl
ci5jcHAKaW5kZXggZmZmNjIyZS4uMTQ5NmFhMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
bG9hZGVyL0ZyYW1lTG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVM
b2FkZXIuY3BwCkBAIC0zMzc2LDcgKzMzNzYsNyBAQCB2b2lkIEZyYW1lTG9hZGVyOjp0ZWxsQ2xp
ZW50QWJvdXRQYXN0TWVtb3J5Q2FjaGVMb2FkcygpCiAKICAgICBzaXplX3Qgc2l6ZSA9IHBhc3RM
b2Fkcy5zaXplKCk7CiAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBzaXplOyArK2kpIHsKLSAg
ICAgICAgQ2FjaGVkUmVzb3VyY2UqIHJlc291cmNlID0gbWVtb3J5Q2FjaGUoKS0+cmVzb3VyY2VG
b3JSZXF1ZXN0KHBhc3RMb2Fkc1tpXSk7CisgICAgICAgIENhY2hlZFJlc291cmNlKiByZXNvdXJj
ZSA9IG1lbW9yeUNhY2hlKCktPnJlc291cmNlRm9yUmVxdWVzdChwYXN0TG9hZHNbaV0sIG1fZnJh
bWUucGFnZSgpLT5zZXNzaW9uSUQoKSk7CiAKICAgICAgICAgLy8gRklYTUU6IFRoZXNlIGxvYWRz
LCBsb2FkZWQgZnJvbSBjYWNoZSwgYnV0IG5vdyBnb25lIGZyb20gdGhlIGNhY2hlIGJ5IHRoZSB0
aW1lCiAgICAgICAgIC8vIFBhZ2U6OnNldE1lbW9yeUNhY2hlQ2xpZW50Q2FsbHNFbmFibGVkKHRy
dWUpIGlzIGNhbGxlZCwgd2lsbCBub3QgYmUgc2VlbiBieSB0aGUgY2xpZW50LgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ltYWdlTG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9JbWFnZUxvYWRlci5jcHAKaW5kZXggMzA2YTFiNzYuLmU0OGQ0N2IgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9JbWFnZUxvYWRlci5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvbG9hZGVyL0ltYWdlTG9hZGVyLmNwcApAQCAtMzQsNiArMzQsNyBAQAogI2luY2x1ZGUg
IkhUTUxOYW1lcy5oIgogI2luY2x1ZGUgIkhUTUxPYmplY3RFbGVtZW50LmgiCiAjaW5jbHVkZSAi
SFRNTFBhcnNlcklkaW9tcy5oIgorI2luY2x1ZGUgIlBhZ2UuaCIKICNpbmNsdWRlICJSZW5kZXJJ
bWFnZS5oIgogI2luY2x1ZGUgIlJlbmRlclNWR0ltYWdlLmgiCiAjaW5jbHVkZSAiU2VjdXJpdHlP
cmlnaW4uaCIKQEAgLTE4OCw3ICsxODksNyBAQCB2b2lkIEltYWdlTG9hZGVyOjp1cGRhdGVGcm9t
RWxlbWVudCgpCiAgICAgICAgIGlmIChtX2xvYWRNYW51YWxseSkgewogICAgICAgICAgICAgYm9v
bCBhdXRvTG9hZE90aGVySW1hZ2VzID0gZG9jdW1lbnQuY2FjaGVkUmVzb3VyY2VMb2FkZXIoKS0+
YXV0b0xvYWRJbWFnZXMoKTsKICAgICAgICAgICAgIGRvY3VtZW50LmNhY2hlZFJlc291cmNlTG9h
ZGVyKCktPnNldEF1dG9Mb2FkSW1hZ2VzKGZhbHNlKTsKLSAgICAgICAgICAgIG5ld0ltYWdlID0g
bmV3IENhY2hlZEltYWdlKHJlcXVlc3QucmVzb3VyY2VSZXF1ZXN0KCkpOworICAgICAgICAgICAg
bmV3SW1hZ2UgPSBuZXcgQ2FjaGVkSW1hZ2UocmVxdWVzdC5yZXNvdXJjZVJlcXVlc3QoKSwgbV9l
bGVtZW50LmRvY3VtZW50KCkucGFnZSgpLT5zZXNzaW9uSUQoKSk7CiAgICAgICAgICAgICBuZXdJ
bWFnZS0+c2V0TG9hZGluZyh0cnVlKTsKICAgICAgICAgICAgIG5ld0ltYWdlLT5zZXRPd25pbmdD
YWNoZWRSZXNvdXJjZUxvYWRlcihkb2N1bWVudC5jYWNoZWRSZXNvdXJjZUxvYWRlcigpKTsKICAg
ICAgICAgICAgIGRvY3VtZW50LmNhY2hlZFJlc291cmNlTG9hZGVyKCktPm1fZG9jdW1lbnRSZXNv
dXJjZXMuc2V0KG5ld0ltYWdlLT51cmwoKSwgbmV3SW1hZ2UuZ2V0KCkpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvbG9hZGVyL2FyY2hpdmUvY2YvTGVnYWN5V2ViQXJjaGl2ZS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvYXJjaGl2ZS9jZi9MZWdhY3lXZWJBcmNoaXZlLmNwcAppbmRl
eCAzMWYxYTFiLi4wMjRkMjhmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvYXJj
aGl2ZS9jZi9MZWdhY3lXZWJBcmNoaXZlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
YXJjaGl2ZS9jZi9MZWdhY3lXZWJBcmNoaXZlLmNwcApAQCAtNTU0LDcgKzU1NCw3IEBAIFBhc3NS
ZWZQdHI8TGVnYWN5V2ViQXJjaGl2ZT4gTGVnYWN5V2ViQXJjaGl2ZTo6Y3JlYXRlKGNvbnN0IFN0
cmluZyYgbWFya3VwU3RyaW5nCiAjaWYgRU5BQkxFKENBQ0hFX1BBUlRJVElPTklORykKICAgICAg
ICAgICAgICAgICByZXF1ZXN0LnNldENhY2hlUGFydGl0aW9uKGZyYW1lLT5kb2N1bWVudCgpLT50
b3BPcmlnaW4oKS0+Y2FjaGVQYXJ0aXRpb24oKSk7CiAjZW5kaWYKLSAgICAgICAgICAgICAgICBD
YWNoZWRSZXNvdXJjZSogY2FjaGVkUmVzb3VyY2UgPSBtZW1vcnlDYWNoZSgpLT5yZXNvdXJjZUZv
clJlcXVlc3QocmVxdWVzdCk7CisgICAgICAgICAgICAgICAgQ2FjaGVkUmVzb3VyY2UqIGNhY2hl
ZFJlc291cmNlID0gbWVtb3J5Q2FjaGUoKS0+cmVzb3VyY2VGb3JSZXF1ZXN0KHJlcXVlc3QsIGZy
YW1lLT5wYWdlKCktPnNlc3Npb25JRCgpKTsKICAgICAgICAgICAgICAgICBpZiAoY2FjaGVkUmVz
b3VyY2UpIHsKICAgICAgICAgICAgICAgICAgICAgUmVzb3VyY2VCdWZmZXIqIGRhdGEgPSBjYWNo
ZWRSZXNvdXJjZS0+cmVzb3VyY2VCdWZmZXIoKTsKICAgICAgICAgICAgICAgICAgICAgcmVzb3Vy
Y2UgPSBBcmNoaXZlUmVzb3VyY2U6OmNyZWF0ZShkYXRhID8gZGF0YS0+c2hhcmVkQnVmZmVyKCkg
OiAwLCBzdWJyZXNvdXJjZVVSTCwgY2FjaGVkUmVzb3VyY2UtPnJlc3BvbnNlKCkpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZENTU1N0eWxlU2hlZXQuY3Bw
IGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZENTU1N0eWxlU2hlZXQuY3BwCmlu
ZGV4IDY5YmNlOGYuLmU4YWFkNDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9j
YWNoZS9DYWNoZWRDU1NTdHlsZVNoZWV0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
Y2FjaGUvQ2FjaGVkQ1NTU3R5bGVTaGVldC5jcHAKQEAgLTQwLDggKzQwLDggQEAKIAogbmFtZXNw
YWNlIFdlYkNvcmUgewogCi1DYWNoZWRDU1NTdHlsZVNoZWV0OjpDYWNoZWRDU1NTdHlsZVNoZWV0
KGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVzb3VyY2VSZXF1ZXN0LCBjb25zdCBTdHJpbmcmIGNo
YXJzZXQpCi0gICAgOiBDYWNoZWRSZXNvdXJjZShyZXNvdXJjZVJlcXVlc3QsIENTU1N0eWxlU2hl
ZXQpCitDYWNoZWRDU1NTdHlsZVNoZWV0OjpDYWNoZWRDU1NTdHlsZVNoZWV0KGNvbnN0IFJlc291
cmNlUmVxdWVzdCYgcmVzb3VyY2VSZXF1ZXN0LCBjb25zdCBTdHJpbmcmIGNoYXJzZXQsIFNlc3Np
b25JRCBzZXNzaW9uSUQpCisgICAgOiBDYWNoZWRSZXNvdXJjZShyZXNvdXJjZVJlcXVlc3QsIENT
U1N0eWxlU2hlZXQsIHNlc3Npb25JRCkKICAgICAsIG1fZGVjb2RlcihUZXh0UmVzb3VyY2VEZWNv
ZGVyOjpjcmVhdGUoInRleHQvY3NzIiwgY2hhcnNldCkpCiB7CiAgICAgLy8gUHJlZmVyIHRleHQv
Y3NzIGJ1dCBhY2NlcHQgYW55IHR5cGUgKGRlbGwuY29tIHNlcnZlcyBhIHN0eWxlc2hlZXQKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRDU1NTdHlsZVNoZWV0
LmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkQ1NTU3R5bGVTaGVldC5oCmlu
ZGV4IGY4YmIwYzYuLjViN2I3NDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9j
YWNoZS9DYWNoZWRDU1NTdHlsZVNoZWV0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2Nh
Y2hlL0NhY2hlZENTU1N0eWxlU2hlZXQuaApAQCAtMzgsNyArMzgsNyBAQCBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKICAgICBjbGFzcyBDYWNoZWRDU1NTdHlsZVNoZWV0IGZpbmFsIDogcHVibGljIENh
Y2hlZFJlc291cmNlIHsKICAgICBwdWJsaWM6Ci0gICAgICAgIENhY2hlZENTU1N0eWxlU2hlZXQo
Y29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgU3RyaW5nJiBjaGFyc2V0KTsKKyAgICAgICAg
Q2FjaGVkQ1NTU3R5bGVTaGVldChjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBTdHJpbmcm
IGNoYXJzZXQsIFNlc3Npb25JRCk7CiAgICAgICAgIHZpcnR1YWwgfkNhY2hlZENTU1N0eWxlU2hl
ZXQoKTsKIAogICAgICAgICBjb25zdCBTdHJpbmcgc2hlZXRUZXh0KGJvb2wgZW5mb3JjZU1JTUVU
eXBlID0gdHJ1ZSwgYm9vbCogaGFzVmFsaWRNSU1FVHlwZSA9IDApIGNvbnN0OwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZEZvbnQuY3BwIGIvU291cmNlL1dl
YkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZEZvbnQuY3BwCmluZGV4IGZiZjY1OGMuLjJhMWExNDMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRGb250LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkRm9udC5jcHAKQEAgLTUwLDgg
KzUwLDggQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1DYWNoZWRGb250OjpDYWNoZWRGb250
KGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVzb3VyY2VSZXF1ZXN0KQotICAgIDogQ2FjaGVkUmVz
b3VyY2UocmVzb3VyY2VSZXF1ZXN0LCBGb250UmVzb3VyY2UpCitDYWNoZWRGb250OjpDYWNoZWRG
b250KGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVzb3VyY2VSZXF1ZXN0LCBTZXNzaW9uSUQgc2Vz
c2lvbklEKQorICAgIDogQ2FjaGVkUmVzb3VyY2UocmVzb3VyY2VSZXF1ZXN0LCBGb250UmVzb3Vy
Y2UsIHNlc3Npb25JRCkKICAgICAsIG1fbG9hZEluaXRpYXRlZChmYWxzZSkKICAgICAsIG1faGFz
Q3JlYXRlZEZvbnREYXRhV3JhcHBpbmdSZXNvdXJjZShmYWxzZSkKIHsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRGb250LmggYi9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvY2FjaGUvQ2FjaGVkRm9udC5oCmluZGV4IDc0NGI2MmQuLmZiMjE2NTkzIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkRm9udC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRGb250LmgKQEAgLTQyLDcgKzQyLDcgQEAgc3Ry
dWN0IEZvbnRDdXN0b21QbGF0Zm9ybURhdGE7CiAKIGNsYXNzIENhY2hlZEZvbnQgZmluYWwgOiBw
dWJsaWMgQ2FjaGVkUmVzb3VyY2UgewogcHVibGljOgotICAgIENhY2hlZEZvbnQoY29uc3QgUmVz
b3VyY2VSZXF1ZXN0Jik7CisgICAgQ2FjaGVkRm9udChjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBT
ZXNzaW9uSUQpOwogICAgIHZpcnR1YWwgfkNhY2hlZEZvbnQoKTsKIAogICAgIHZvaWQgYmVnaW5M
b2FkSWZOZWVkZWQoQ2FjaGVkUmVzb3VyY2VMb2FkZXIqIGRsKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRJbWFnZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvY2FjaGUvQ2FjaGVkSW1hZ2UuY3BwCmluZGV4IDRjMjY2N2IuLmI5MmE5NzUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRJbWFnZS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZEltYWdlLmNwcApAQCAtNjAsOCArNjAs
OCBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLUNhY2hlZEltYWdlOjpDYWNoZWRJbWFnZShj
b25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlc291cmNlUmVxdWVzdCkKLSAgICA6IENhY2hlZFJlc291
cmNlKHJlc291cmNlUmVxdWVzdCwgSW1hZ2VSZXNvdXJjZSkKK0NhY2hlZEltYWdlOjpDYWNoZWRJ
bWFnZShjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlc291cmNlUmVxdWVzdCwgU2Vzc2lvbklEIHNl
c3Npb25JRCkKKyAgICA6IENhY2hlZFJlc291cmNlKHJlc291cmNlUmVxdWVzdCwgSW1hZ2VSZXNv
dXJjZSwgc2Vzc2lvbklEKQogICAgICwgbV9pbWFnZSgwKQogICAgICwgbV9pc01hbnVhbGx5Q2Fj
aGVkKGZhbHNlKQogICAgICwgbV9zaG91bGRQYWludEJyb2tlbkltYWdlKHRydWUpCkBAIC02OSw4
ICs2OSw4IEBAIENhY2hlZEltYWdlOjpDYWNoZWRJbWFnZShjb25zdCBSZXNvdXJjZVJlcXVlc3Qm
IHJlc291cmNlUmVxdWVzdCkKICAgICBzZXRTdGF0dXMoVW5rbm93bik7CiB9CiAKLUNhY2hlZElt
YWdlOjpDYWNoZWRJbWFnZShJbWFnZSogaW1hZ2UpCi0gICAgOiBDYWNoZWRSZXNvdXJjZShSZXNv
dXJjZVJlcXVlc3QoKSwgSW1hZ2VSZXNvdXJjZSkKK0NhY2hlZEltYWdlOjpDYWNoZWRJbWFnZShJ
bWFnZSogaW1hZ2UsIFNlc3Npb25JRCBzZXNzaW9uSUQpCisgICAgOiBDYWNoZWRSZXNvdXJjZShS
ZXNvdXJjZVJlcXVlc3QoKSwgSW1hZ2VSZXNvdXJjZSwgc2Vzc2lvbklEKQogICAgICwgbV9pbWFn
ZShpbWFnZSkKICAgICAsIG1faXNNYW51YWxseUNhY2hlZChmYWxzZSkKICAgICAsIG1fc2hvdWxk
UGFpbnRCcm9rZW5JbWFnZSh0cnVlKQpAQCAtNzksOCArNzksMTggQEAgQ2FjaGVkSW1hZ2U6OkNh
Y2hlZEltYWdlKEltYWdlKiBpbWFnZSkKICAgICBzZXRMb2FkaW5nKGZhbHNlKTsKIH0KIAotQ2Fj
aGVkSW1hZ2U6OkNhY2hlZEltYWdlKGNvbnN0IFVSTCYgdXJsLCBJbWFnZSogaW1hZ2UsIENhY2hl
ZEltYWdlOjpDYWNoZUJlaGF2aW9yVHlwZSB0eXBlKQotICAgIDogQ2FjaGVkUmVzb3VyY2UoUmVz
b3VyY2VSZXF1ZXN0KHVybCksIEltYWdlUmVzb3VyY2UpCitDYWNoZWRJbWFnZTo6Q2FjaGVkSW1h
Z2UoY29uc3QgVVJMJiB1cmwsIEltYWdlKiBpbWFnZSwgU2Vzc2lvbklEIHNlc3Npb25JRCkKKyAg
ICA6IENhY2hlZFJlc291cmNlKFJlc291cmNlUmVxdWVzdCh1cmwpLCBJbWFnZVJlc291cmNlLCBz
ZXNzaW9uSUQpCisgICAgLCBtX2ltYWdlKGltYWdlKQorICAgICwgbV9pc01hbnVhbGx5Q2FjaGVk
KGZhbHNlKQorICAgICwgbV9zaG91bGRQYWludEJyb2tlbkltYWdlKHRydWUpCit7CisgICAgc2V0
U3RhdHVzKENhY2hlZCk7CisgICAgc2V0TG9hZGluZyhmYWxzZSk7Cit9CisKK0NhY2hlZEltYWdl
OjpDYWNoZWRJbWFnZShjb25zdCBVUkwmIHVybCwgSW1hZ2UqIGltYWdlLCBDYWNoZWRJbWFnZTo6
Q2FjaGVCZWhhdmlvclR5cGUgdHlwZSwgU2Vzc2lvbklEIHNlc3Npb25JRCkKKyAgICA6IENhY2hl
ZFJlc291cmNlKFJlc291cmNlUmVxdWVzdCh1cmwpLCBJbWFnZVJlc291cmNlLCBzZXNzaW9uSUQp
CiAgICAgLCBtX2ltYWdlKGltYWdlKQogICAgICwgbV9pc01hbnVhbGx5Q2FjaGVkKHR5cGUgPT0g
Q2FjaGVkSW1hZ2U6Ok1hbnVhbGx5Q2FjaGVkKQogICAgICwgbV9zaG91bGRQYWludEJyb2tlbklt
YWdlKHRydWUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVk
SW1hZ2UuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRJbWFnZS5oCmluZGV4
IGI3ZDcyMTEuLjg2YWYwM2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNo
ZS9DYWNoZWRJbWFnZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRJ
bWFnZS5oCkBAIC01MCw5ICs1MCwxMCBAQCBjbGFzcyBDYWNoZWRJbWFnZSBmaW5hbCA6IHB1Ymxp
YyBDYWNoZWRSZXNvdXJjZSwgcHVibGljIEltYWdlT2JzZXJ2ZXIgewogcHVibGljOgogICAgIGVu
dW0gQ2FjaGVCZWhhdmlvclR5cGUgeyBBdXRvbWF0aWNhbGx5Q2FjaGVkLCBNYW51YWxseUNhY2hl
ZCB9OwogCi0gICAgQ2FjaGVkSW1hZ2UoY29uc3QgUmVzb3VyY2VSZXF1ZXN0Jik7Ci0gICAgQ2Fj
aGVkSW1hZ2UoSW1hZ2UqKTsKLSAgICBDYWNoZWRJbWFnZShjb25zdCBVUkwmLCBJbWFnZSosIENh
Y2hlQmVoYXZpb3JUeXBlID0gQXV0b21hdGljYWxseUNhY2hlZCk7CisgICAgQ2FjaGVkSW1hZ2Uo
Y29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgU2Vzc2lvbklEKTsKKyAgICBDYWNoZWRJbWFnZShJbWFn
ZSosIFNlc3Npb25JRCk7CisgICAgQ2FjaGVkSW1hZ2UoY29uc3QgVVJMJiwgSW1hZ2UqLCBTZXNz
aW9uSUQpOworICAgIENhY2hlZEltYWdlKGNvbnN0IFVSTCYsIEltYWdlKiwgQ2FjaGVCZWhhdmlv
clR5cGUsIFNlc3Npb25JRCk7CiAgICAgdmlydHVhbCB+Q2FjaGVkSW1hZ2UoKTsKIAogICAgIElt
YWdlKiBpbWFnZSgpOyAvLyBSZXR1cm5zIHRoZSBudWxsSW1hZ2UoKSBpZiB0aGUgaW1hZ2UgaXMg
bm90IGF2YWlsYWJsZSB5ZXQuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2Fj
aGUvQ2FjaGVkUmF3UmVzb3VyY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0Nh
Y2hlZFJhd1Jlc291cmNlLmNwcAppbmRleCA3MWQ4NmRhLi5jNDY1ZDJmIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmF3UmVzb3VyY2UuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSYXdSZXNvdXJjZS5jcHAKQEAgLTM1LDgg
KzM1LDggQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1DYWNoZWRSYXdSZXNvdXJjZTo6Q2Fj
aGVkUmF3UmVzb3VyY2UoUmVzb3VyY2VSZXF1ZXN0JiByZXNvdXJjZVJlcXVlc3QsIFR5cGUgdHlw
ZSkKLSAgICA6IENhY2hlZFJlc291cmNlKHJlc291cmNlUmVxdWVzdCwgdHlwZSkKK0NhY2hlZFJh
d1Jlc291cmNlOjpDYWNoZWRSYXdSZXNvdXJjZShSZXNvdXJjZVJlcXVlc3QmIHJlc291cmNlUmVx
dWVzdCwgVHlwZSB0eXBlLCBTZXNzaW9uSUQgc2Vzc2lvbklEKQorICAgIDogQ2FjaGVkUmVzb3Vy
Y2UocmVzb3VyY2VSZXF1ZXN0LCB0eXBlLCBzZXNzaW9uSUQpCiAgICAgLCBtX2lkZW50aWZpZXIo
MCkKIHsKICAgICAvLyBGSVhNRTogVGhlIHdyb25nIENhY2hlZFJlc291cmNlOjpUeXBlIGhlcmUg
bWF5IGNhdXNlIGEgYmFkIGNhc3QgZWxzZXdoZXJlLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJhd1Jlc291cmNlLmggYi9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvY2FjaGUvQ2FjaGVkUmF3UmVzb3VyY2UuaAppbmRleCBjY2RmZWUxLi4zZDZiZmIyIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmF3UmVzb3VyY2UuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmF3UmVzb3VyY2UuaApAQCAt
MzIsNyArMzIsNyBAQCBjbGFzcyBTdWJyZXNvdXJjZUxvYWRlcjsKIAogY2xhc3MgQ2FjaGVkUmF3
UmVzb3VyY2UgZmluYWwgOiBwdWJsaWMgQ2FjaGVkUmVzb3VyY2UgewogcHVibGljOgotICAgIENh
Y2hlZFJhd1Jlc291cmNlKFJlc291cmNlUmVxdWVzdCYsIFR5cGUpOworICAgIENhY2hlZFJhd1Jl
c291cmNlKFJlc291cmNlUmVxdWVzdCYsIFR5cGUsIFNlc3Npb25JRCk7CiAKICAgICAvLyBGSVhN
RTogQXNzb2NpYXRlZFVSTExvYWRlciBzaG91bGRuJ3QgYmUgYSBEb2N1bWVudFRocmVhZGFibGVM
b2FkZXIgYW5kIHRoZXJlZm9yZSBzaG91bGRuJ3QKICAgICAvLyB1c2UgQ2FjaGVkUmF3UmVzb3Vy
Y2UuIEhvd2V2ZXIsIGl0IGlzLCBhbmQgaXQgbmVlZHMgdG8gYmUgYWJsZSB0byBkZWZlciBsb2Fk
aW5nLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291
cmNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZS5jcHAK
aW5kZXggNjk3YTQ5NS4uZjAzYTNlNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVy
L2NhY2hlL0NhY2hlZFJlc291cmNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2Fj
aGUvQ2FjaGVkUmVzb3VyY2UuY3BwCkBAIC0xNDcsOCArMTQ3LDkgQEAgc3RhdGljIGRvdWJsZSBk
ZWFkRGVjb2RlZERhdGFEZWxldGlvbkludGVydmFsRm9yUmVzb3VyY2VUeXBlKENhY2hlZFJlc291
cmNlOjpUeXAKIAogREVGSU5FX0RFQlVHX09OTFlfR0xPQkFMKFJlZkNvdW50ZWRMZWFrQ291bnRl
ciwgY2FjaGVkUmVzb3VyY2VMZWFrQ291bnRlciwgKCJDYWNoZWRSZXNvdXJjZSIpKTsKIAotQ2Fj
aGVkUmVzb3VyY2U6OkNhY2hlZFJlc291cmNlKGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVz
dCwgVHlwZSB0eXBlKQorQ2FjaGVkUmVzb3VyY2U6OkNhY2hlZFJlc291cmNlKGNvbnN0IFJlc291
cmNlUmVxdWVzdCYgcmVxdWVzdCwgVHlwZSB0eXBlLCBTZXNzaW9uSUQgc2Vzc2lvbklEKQogICAg
IDogbV9yZXNvdXJjZVJlcXVlc3QocmVxdWVzdCkKKyAgICAsIG1fc2Vzc2lvbklEKHNlc3Npb25J
RCkKICAgICAsIG1fbG9hZFByaW9yaXR5KGRlZmF1bHRQcmlvcml0eUZvclJlc291cmNlVHlwZSh0
eXBlKSkKICAgICAsIG1fcmVzcG9uc2VUaW1lc3RhbXAoY3VycmVudFRpbWUoKSkKICAgICAsIG1f
ZGVjb2RlZERhdGFEZWxldGlvblRpbWVyKHRoaXMsICZDYWNoZWRSZXNvdXJjZTo6ZGVjb2RlZERh
dGFEZWxldGlvblRpbWVyRmlyZWQsIGRlYWREZWNvZGVkRGF0YURlbGV0aW9uSW50ZXJ2YWxGb3JS
ZXNvdXJjZVR5cGUodHlwZSkpCkBAIC0xODAsNiArMTgxLDcgQEAgQ2FjaGVkUmVzb3VyY2U6OkNh
Y2hlZFJlc291cmNlKGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgVHlwZSB0eXBlKQog
ICAgICwgbV9wcm94eVJlc291cmNlKDApCiB7CiAgICAgQVNTRVJUKG1fdHlwZSA9PSB1bnNpZ25l
ZCh0eXBlKSk7IC8vIG1fdHlwZSBpcyBhIGJpdGZpZWxkLCBzbyB0aGlzIHRlc3RzIGNhcmVsZXNz
IHVwZGF0ZXMgb2YgdGhlIGVudW0uCisgICAgQVNTRVJUKHNlc3Npb25JRC5pc1ZhbGlkKCkpOwog
I2lmbmRlZiBOREVCVUcKICAgICBjYWNoZWRSZXNvdXJjZUxlYWtDb3VudGVyLmluY3JlbWVudCgp
OwogI2VuZGlmCkBAIC0xOTksNyArMjAxLDcgQEAgQ2FjaGVkUmVzb3VyY2U6On5DYWNoZWRSZXNv
dXJjZSgpCiAgICAgQVNTRVJUKGNhbkRlbGV0ZSgpKTsKICAgICBBU1NFUlQoIWluQ2FjaGUoKSk7
CiAgICAgQVNTRVJUKCFtX2RlbGV0ZWQpOwotICAgIEFTU0VSVCh1cmwoKS5pc051bGwoKSB8fCBt
ZW1vcnlDYWNoZSgpLT5yZXNvdXJjZUZvclJlcXVlc3QocmVzb3VyY2VSZXF1ZXN0KCkpICE9IHRo
aXMpOworICAgIEFTU0VSVCh1cmwoKS5pc051bGwoKSB8fCBtZW1vcnlDYWNoZSgpLT5yZXNvdXJj
ZUZvclJlcXVlc3QocmVzb3VyY2VSZXF1ZXN0KCksIHNlc3Npb25JRCgpKSAhPSB0aGlzKTsKIAog
I2lmbmRlZiBOREVCVUcKICAgICBtX2RlbGV0ZWQgPSB0cnVlOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlLmggYi9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2UuaAppbmRleCBlZjBiYzY2Li45ZjhkMWQ3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2UuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2UuaApAQCAtMzEsNiAr
MzEsNyBAQAogI2luY2x1ZGUgIlJlc291cmNlTG9hZGVyT3B0aW9ucy5oIgogI2luY2x1ZGUgIlJl
c291cmNlUmVxdWVzdC5oIgogI2luY2x1ZGUgIlJlc291cmNlUmVzcG9uc2UuaCIKKyNpbmNsdWRl
ICJTZXNzaW9uSUQuaCIKICNpbmNsdWRlICJUaW1lci5oIgogI2luY2x1ZGUgPHRpbWUuaD4KICNp
bmNsdWRlIDx3dGYvSGFzaENvdW50ZWRTZXQuaD4KQEAgLTg5LDcgKzkwLDcgQEAgcHVibGljOgog
ICAgICAgICBEZWNvZGVFcnJvcgogICAgIH07CiAKLSAgICBDYWNoZWRSZXNvdXJjZShjb25zdCBS
ZXNvdXJjZVJlcXVlc3QmLCBUeXBlKTsKKyAgICBDYWNoZWRSZXNvdXJjZShjb25zdCBSZXNvdXJj
ZVJlcXVlc3QmLCBUeXBlLCBTZXNzaW9uSUQpOwogICAgIHZpcnR1YWwgfkNhY2hlZFJlc291cmNl
KCk7CiAKICAgICB2aXJ0dWFsIHZvaWQgbG9hZChDYWNoZWRSZXNvdXJjZUxvYWRlciosIGNvbnN0
IFJlc291cmNlTG9hZGVyT3B0aW9ucyYpOwpAQCAtMTExLDYgKzExMiw3IEBAIHB1YmxpYzoKICNp
ZiBFTkFCTEUoQ0FDSEVfUEFSVElUSU9OSU5HKQogICAgIGNvbnN0IFN0cmluZyYgY2FjaGVQYXJ0
aXRpb24oKSBjb25zdCB7IHJldHVybiBtX3Jlc291cmNlUmVxdWVzdC5jYWNoZVBhcnRpdGlvbigp
OyB9CiAjZW5kaWYKKyAgICBTZXNzaW9uSUQgc2Vzc2lvbklEKCkgY29uc3QgeyByZXR1cm4gbV9z
ZXNzaW9uSUQ7IH0KICAgICBUeXBlIHR5cGUoKSBjb25zdCB7IHJldHVybiBzdGF0aWNfY2FzdDxU
eXBlPihtX3R5cGUpOyB9CiAgICAgCiAgICAgUmVzb3VyY2VMb2FkUHJpb3JpdHkgbG9hZFByaW9y
aXR5KCkgY29uc3QgeyByZXR1cm4gbV9sb2FkUHJpb3JpdHk7IH0KQEAgLTI5MCw2ICsyOTIsNyBA
QCBwcm90ZWN0ZWQ6CiAgICAgSGFzaE1hcDxDYWNoZWRSZXNvdXJjZUNsaWVudCosIE93blB0cjxD
YWNoZWRSZXNvdXJjZUNhbGxiYWNrPj4gbV9jbGllbnRzQXdhaXRpbmdDYWxsYmFjazsKIAogICAg
IFJlc291cmNlUmVxdWVzdCBtX3Jlc291cmNlUmVxdWVzdDsKKyAgICBTZXNzaW9uSUQgbV9zZXNz
aW9uSUQ7CiAgICAgU3RyaW5nIG1fYWNjZXB0OwogICAgIFJlZlB0cjxTdWJyZXNvdXJjZUxvYWRl
cj4gbV9sb2FkZXI7CiAgICAgUmVzb3VyY2VMb2FkZXJPcHRpb25zIG1fb3B0aW9uczsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZUxvYWRlci5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VMb2FkZXIuY3Bw
CmluZGV4IDExZjE4YTguLjlkMjhkNzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9jYWNoZS9DYWNoZWRSZXNvdXJjZUxvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlTG9hZGVyLmNwcApAQCAtNDgsMTIgKzQ4LDE0IEBACiAj
aW5jbHVkZSAiTG9hZGVyU3RyYXRlZ3kuaCIKICNpbmNsdWRlICJMb2dnaW5nLmgiCiAjaW5jbHVk
ZSAiTWVtb3J5Q2FjaGUuaCIKKyNpbmNsdWRlICJQYWdlLmgiCiAjaW5jbHVkZSAiUGluZ0xvYWRl
ci5oIgogI2luY2x1ZGUgIlBsYXRmb3JtU3RyYXRlZ2llcy5oIgogI2luY2x1ZGUgIlJlbmRlckVs
ZW1lbnQuaCIKICNpbmNsdWRlICJSZXNvdXJjZUxvYWRTY2hlZHVsZXIuaCIKICNpbmNsdWRlICJT
Y3JpcHRDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAiU2VjdXJpdHlPcmlnaW4uaCIKKyNpbmNsdWRl
ICJTZXNzaW9uSUQuaCIKICNpbmNsdWRlICJTZXR0aW5ncy5oIgogI2luY2x1ZGUgPHd0Zi90ZXh0
L0NTdHJpbmcuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KQEAgLTcwLDM1ICs3
MiwzNSBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLXN0YXRpYyBDYWNoZWRSZXNvdXJjZSog
Y3JlYXRlUmVzb3VyY2UoQ2FjaGVkUmVzb3VyY2U6OlR5cGUgdHlwZSwgUmVzb3VyY2VSZXF1ZXN0
JiByZXF1ZXN0LCBjb25zdCBTdHJpbmcmIGNoYXJzZXQpCitzdGF0aWMgQ2FjaGVkUmVzb3VyY2Uq
IGNyZWF0ZVJlc291cmNlKENhY2hlZFJlc291cmNlOjpUeXBlIHR5cGUsIFJlc291cmNlUmVxdWVz
dCYgcmVxdWVzdCwgY29uc3QgU3RyaW5nJiBjaGFyc2V0LCBTZXNzaW9uSUQgc2Vzc2lvbklEKQog
ewogICAgIHN3aXRjaCAodHlwZSkgewogICAgIGNhc2UgQ2FjaGVkUmVzb3VyY2U6OkltYWdlUmVz
b3VyY2U6Ci0gICAgICAgIHJldHVybiBuZXcgQ2FjaGVkSW1hZ2UocmVxdWVzdCk7CisgICAgICAg
IHJldHVybiBuZXcgQ2FjaGVkSW1hZ2UocmVxdWVzdCwgc2Vzc2lvbklEKTsKICAgICBjYXNlIENh
Y2hlZFJlc291cmNlOjpDU1NTdHlsZVNoZWV0OgotICAgICAgICByZXR1cm4gbmV3IENhY2hlZENT
U1N0eWxlU2hlZXQocmVxdWVzdCwgY2hhcnNldCk7CisgICAgICAgIHJldHVybiBuZXcgQ2FjaGVk
Q1NTU3R5bGVTaGVldChyZXF1ZXN0LCBjaGFyc2V0LCBzZXNzaW9uSUQpOwogICAgIGNhc2UgQ2Fj
aGVkUmVzb3VyY2U6OlNjcmlwdDoKLSAgICAgICAgcmV0dXJuIG5ldyBDYWNoZWRTY3JpcHQocmVx
dWVzdCwgY2hhcnNldCk7CisgICAgICAgIHJldHVybiBuZXcgQ2FjaGVkU2NyaXB0KHJlcXVlc3Qs
IGNoYXJzZXQsIHNlc3Npb25JRCk7CiAgICAgY2FzZSBDYWNoZWRSZXNvdXJjZTo6U1ZHRG9jdW1l
bnRSZXNvdXJjZToKLSAgICAgICAgcmV0dXJuIG5ldyBDYWNoZWRTVkdEb2N1bWVudChyZXF1ZXN0
KTsKKyAgICAgICAgcmV0dXJuIG5ldyBDYWNoZWRTVkdEb2N1bWVudChyZXF1ZXN0LCBzZXNzaW9u
SUQpOwogICAgIGNhc2UgQ2FjaGVkUmVzb3VyY2U6OkZvbnRSZXNvdXJjZToKLSAgICAgICAgcmV0
dXJuIG5ldyBDYWNoZWRGb250KHJlcXVlc3QpOworICAgICAgICByZXR1cm4gbmV3IENhY2hlZEZv
bnQocmVxdWVzdCwgc2Vzc2lvbklEKTsKICAgICBjYXNlIENhY2hlZFJlc291cmNlOjpSYXdSZXNv
dXJjZToKICAgICBjYXNlIENhY2hlZFJlc291cmNlOjpNYWluUmVzb3VyY2U6Ci0gICAgICAgIHJl
dHVybiBuZXcgQ2FjaGVkUmF3UmVzb3VyY2UocmVxdWVzdCwgdHlwZSk7CisgICAgICAgIHJldHVy
biBuZXcgQ2FjaGVkUmF3UmVzb3VyY2UocmVxdWVzdCwgdHlwZSwgc2Vzc2lvbklEKTsKICNpZiBF
TkFCTEUoWFNMVCkKICAgICBjYXNlIENhY2hlZFJlc291cmNlOjpYU0xTdHlsZVNoZWV0OgotICAg
ICAgICByZXR1cm4gbmV3IENhY2hlZFhTTFN0eWxlU2hlZXQocmVxdWVzdCk7CisgICAgICAgIHJl
dHVybiBuZXcgQ2FjaGVkWFNMU3R5bGVTaGVldChyZXF1ZXN0LCBzZXNzaW9uSUQpOwogI2VuZGlm
CiAjaWYgRU5BQkxFKExJTktfUFJFRkVUQ0gpCiAgICAgY2FzZSBDYWNoZWRSZXNvdXJjZTo6TGlu
a1ByZWZldGNoOgotICAgICAgICByZXR1cm4gbmV3IENhY2hlZFJlc291cmNlKHJlcXVlc3QsIENh
Y2hlZFJlc291cmNlOjpMaW5rUHJlZmV0Y2gpOworICAgICAgICByZXR1cm4gbmV3IENhY2hlZFJl
c291cmNlKHJlcXVlc3QsIENhY2hlZFJlc291cmNlOjpMaW5rUHJlZmV0Y2gsIHNlc3Npb25JRCk7
CiAgICAgY2FzZSBDYWNoZWRSZXNvdXJjZTo6TGlua1N1YnJlc291cmNlOgotICAgICAgICByZXR1
cm4gbmV3IENhY2hlZFJlc291cmNlKHJlcXVlc3QsIENhY2hlZFJlc291cmNlOjpMaW5rU3VicmVz
b3VyY2UpOworICAgICAgICByZXR1cm4gbmV3IENhY2hlZFJlc291cmNlKHJlcXVlc3QsIENhY2hl
ZFJlc291cmNlOjpMaW5rU3VicmVzb3VyY2UsIHNlc3Npb25JRCk7CiAjZW5kaWYKICNpZiBFTkFC
TEUoVklERU9fVFJBQ0spCiAgICAgY2FzZSBDYWNoZWRSZXNvdXJjZTo6VGV4dFRyYWNrUmVzb3Vy
Y2U6Ci0gICAgICAgIHJldHVybiBuZXcgQ2FjaGVkVGV4dFRyYWNrKHJlcXVlc3QpOworICAgICAg
ICByZXR1cm4gbmV3IENhY2hlZFRleHRUcmFjayhyZXF1ZXN0LCBzZXNzaW9uSUQpOwogI2VuZGlm
CiAgICAgfQogICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwpAQCAtMTQ3LDYgKzE0OSwxNiBAQCBG
cmFtZSogQ2FjaGVkUmVzb3VyY2VMb2FkZXI6OmZyYW1lKCkgY29uc3QKICAgICByZXR1cm4gbV9k
b2N1bWVudExvYWRlciA/IG1fZG9jdW1lbnRMb2FkZXItPmZyYW1lKCkgOiAwOwogfQogCitTZXNz
aW9uSUQgQ2FjaGVkUmVzb3VyY2VMb2FkZXI6OnNlc3Npb25JRCgpIGNvbnN0Cit7CisgICAgU2Vz
c2lvbklEIHNlc3Npb25JRCA9IFNlc3Npb25JRDo6ZGVmYXVsdFNlc3Npb25JRCgpOworCisgICAg
aWYgKEZyYW1lKiBmID0gZnJhbWUoKSkKKyAgICAgICAgc2Vzc2lvbklEID0gZi0+cGFnZSgpLT5z
ZXNzaW9uSUQoKTsKKworICAgIHJldHVybiBzZXNzaW9uSUQ7Cit9CisKIENhY2hlZFJlc291cmNl
SGFuZGxlPENhY2hlZEltYWdlPiBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6cmVxdWVzdEltYWdlKENh
Y2hlZFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCkKIHsKICAgICBpZiAoRnJhbWUqIGZyYW1lID0g
dGhpcy0+ZnJhbWUoKSkgewpAQCAtMTg3LDcgKzE5OSw3IEBAIENhY2hlZFJlc291cmNlSGFuZGxl
PENhY2hlZENTU1N0eWxlU2hlZXQ+IENhY2hlZFJlc291cmNlTG9hZGVyOjpyZXF1ZXN0VXNlckNT
U1N0CiAgICAgcmVxdWVzdC5tdXRhYmxlUmVzb3VyY2VSZXF1ZXN0KCkuc2V0Q2FjaGVQYXJ0aXRp
b24oZG9jdW1lbnQoKS0+dG9wT3JpZ2luKCktPmNhY2hlUGFydGl0aW9uKCkpOwogI2VuZGlmCiAK
LSAgICBpZiAoQ2FjaGVkUmVzb3VyY2UqIGV4aXN0aW5nID0gbWVtb3J5Q2FjaGUoKS0+cmVzb3Vy
Y2VGb3JSZXF1ZXN0KHJlcXVlc3QucmVzb3VyY2VSZXF1ZXN0KCkpKSB7CisgICAgaWYgKENhY2hl
ZFJlc291cmNlKiBleGlzdGluZyA9IG1lbW9yeUNhY2hlKCktPnJlc291cmNlRm9yUmVxdWVzdChy
ZXF1ZXN0LnJlc291cmNlUmVxdWVzdCgpLCBzZXNzaW9uSUQoKSkpIHsKICAgICAgICAgaWYgKGV4
aXN0aW5nLT50eXBlKCkgPT0gQ2FjaGVkUmVzb3VyY2U6OkNTU1N0eWxlU2hlZXQpCiAgICAgICAg
ICAgICByZXR1cm4gdG9DYWNoZWRDU1NTdHlsZVNoZWV0KGV4aXN0aW5nKTsKICAgICAgICAgbWVt
b3J5Q2FjaGUoKS0+cmVtb3ZlKGV4aXN0aW5nKTsKQEAgLTE5NSw3ICsyMDcsNyBAQCBDYWNoZWRS
ZXNvdXJjZUhhbmRsZTxDYWNoZWRDU1NTdHlsZVNoZWV0PiBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6
cmVxdWVzdFVzZXJDU1NTdAogICAgIGlmICh1cmwuc3RyaW5nKCkgIT0gcmVxdWVzdC5yZXNvdXJj
ZVJlcXVlc3QoKS51cmwoKSkKICAgICAgICAgcmVxdWVzdC5tdXRhYmxlUmVzb3VyY2VSZXF1ZXN0
KCkuc2V0VVJMKHVybCk7CiAKLSAgICBDYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRDU1NTdHls
ZVNoZWV0PiB1c2VyU2hlZXQgPSBuZXcgQ2FjaGVkQ1NTU3R5bGVTaGVldChyZXF1ZXN0LnJlc291
cmNlUmVxdWVzdCgpLCByZXF1ZXN0LmNoYXJzZXQoKSk7CisgICAgQ2FjaGVkUmVzb3VyY2VIYW5k
bGU8Q2FjaGVkQ1NTU3R5bGVTaGVldD4gdXNlclNoZWV0ID0gbmV3IENhY2hlZENTU1N0eWxlU2hl
ZXQocmVxdWVzdC5yZXNvdXJjZVJlcXVlc3QoKSwgcmVxdWVzdC5jaGFyc2V0KCksIHNlc3Npb25J
RCgpKTsKIAogICAgIG1lbW9yeUNhY2hlKCktPmFkZCh1c2VyU2hlZXQuZ2V0KCkpOwogICAgIC8v
IEZJWE1FOiBsb2FkUmVzb3VyY2UgY2FsbHMgc2V0T3duaW5nQ2FjaGVkUmVzb3VyY2VMb2FkZXIo
KSBpZiB0aGUgcmVzb3VyY2UgY291bGRuJ3QgYmUgYWRkZWQgdG8gY2FjaGUuIERvZXMgdGhpcyBm
dW5jdGlvbiBuZWVkIHRvIGNhbGwgaXQsIHRvbz8KQEAgLTQyOCw3ICs0NDAsNyBAQCBDYWNoZWRS
ZXNvdXJjZUhhbmRsZTxDYWNoZWRSZXNvdXJjZT4gQ2FjaGVkUmVzb3VyY2VMb2FkZXI6OnJlcXVl
c3RSZXNvdXJjZShDYWNoZQogICAgICAgICByZXF1ZXN0Lm11dGFibGVSZXNvdXJjZVJlcXVlc3Qo
KS5zZXRDYWNoZVBhcnRpdGlvbihkb2N1bWVudCgpLT50b3BPcmlnaW4oKS0+Y2FjaGVQYXJ0aXRp
b24oKSk7CiAjZW5kaWYKIAotICAgIHJlc291cmNlID0gbWVtb3J5Q2FjaGUoKS0+cmVzb3VyY2VG
b3JSZXF1ZXN0KHJlcXVlc3QucmVzb3VyY2VSZXF1ZXN0KCkpOworICAgIHJlc291cmNlID0gbWVt
b3J5Q2FjaGUoKS0+cmVzb3VyY2VGb3JSZXF1ZXN0KHJlcXVlc3QucmVzb3VyY2VSZXF1ZXN0KCks
IHNlc3Npb25JRCgpKTsKIAogICAgIGNvbnN0IFJldmFsaWRhdGlvblBvbGljeSBwb2xpY3kgPSBk
ZXRlcm1pbmVSZXZhbGlkYXRpb25Qb2xpY3kodHlwZSwgcmVxdWVzdC5tdXRhYmxlUmVzb3VyY2VS
ZXF1ZXN0KCksIHJlcXVlc3QuZm9yUHJlbG9hZCgpLCByZXNvdXJjZS5nZXQoKSwgcmVxdWVzdC5k
ZWZlcigpKTsKICAgICBzd2l0Y2ggKHBvbGljeSkgewpAQCAtNDgwLDEwICs0OTIsMTEgQEAgQ2Fj
aGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkUmVzb3VyY2U+IENhY2hlZFJlc291cmNlTG9hZGVyOjpy
ZXZhbGlkYXRlUmVzb3VyY2UoY28KICAgICBBU1NFUlQoIW1lbW9yeUNhY2hlKCktPmRpc2FibGVk
KCkpOwogICAgIEFTU0VSVChyZXNvdXJjZS0+Y2FuVXNlQ2FjaGVWYWxpZGF0b3IoKSk7CiAgICAg
QVNTRVJUKCFyZXNvdXJjZS0+cmVzb3VyY2VUb1JldmFsaWRhdGUoKSk7Ci0gICAgCisgICAgQVNT
RVJUKHJlc291cmNlLT5zZXNzaW9uSUQoKSA9PSBzZXNzaW9uSUQoKSk7CisKICAgICAvLyBDb3B5
IHRoZSBVUkwgb3V0IG9mIHRoZSByZXNvdXJjZSB0byBiZSByZXZhbGlkYXRlZCBpbiBjYXNlIGl0
IGdldHMgZGVsZXRlZCBieSB0aGUgcmVtb3ZlKCkgY2FsbCBiZWxvdy4KICAgICBTdHJpbmcgdXJs
ID0gcmVzb3VyY2UtPnVybCgpOwotICAgIENhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZFJlc291
cmNlPiBuZXdSZXNvdXJjZSA9IGNyZWF0ZVJlc291cmNlKHJlc291cmNlLT50eXBlKCksIHJlc291
cmNlLT5yZXNvdXJjZVJlcXVlc3QoKSwgcmVzb3VyY2UtPmVuY29kaW5nKCkpOworICAgIENhY2hl
ZFJlc291cmNlSGFuZGxlPENhY2hlZFJlc291cmNlPiBuZXdSZXNvdXJjZSA9IGNyZWF0ZVJlc291
cmNlKHJlc291cmNlLT50eXBlKCksIHJlc291cmNlLT5yZXNvdXJjZVJlcXVlc3QoKSwgcmVzb3Vy
Y2UtPmVuY29kaW5nKCksIHJlc291cmNlLT5zZXNzaW9uSUQoKSk7CiAgICAgCiAgICAgTE9HKFJl
c291cmNlTG9hZGluZywgIlJlc291cmNlICVwIGNyZWF0ZWQgdG8gcmV2YWxpZGF0ZSAlcCIsIG5l
d1Jlc291cmNlLmdldCgpLCByZXNvdXJjZSk7CiAgICAgbmV3UmVzb3VyY2UtPnNldFJlc291cmNl
VG9SZXZhbGlkYXRlKHJlc291cmNlKTsKQEAgLTUwMCwxMSArNTEzLDExIEBAIENhY2hlZFJlc291
cmNlSGFuZGxlPENhY2hlZFJlc291cmNlPiBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6cmV2YWxpZGF0
ZVJlc291cmNlKGNvCiAKIENhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZFJlc291cmNlPiBDYWNo
ZWRSZXNvdXJjZUxvYWRlcjo6bG9hZFJlc291cmNlKENhY2hlZFJlc291cmNlOjpUeXBlIHR5cGUs
IENhY2hlZFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgY29uc3QgU3RyaW5nJiBjaGFyc2V0KQog
ewotICAgIEFTU0VSVCghbWVtb3J5Q2FjaGUoKS0+cmVzb3VyY2VGb3JSZXF1ZXN0KHJlcXVlc3Qu
cmVzb3VyY2VSZXF1ZXN0KCkpKTsKKyAgICBBU1NFUlQoIW1lbW9yeUNhY2hlKCktPnJlc291cmNl
Rm9yUmVxdWVzdChyZXF1ZXN0LnJlc291cmNlUmVxdWVzdCgpLCBzZXNzaW9uSUQoKSkpOwogCiAg
ICAgTE9HKFJlc291cmNlTG9hZGluZywgIkxvYWRpbmcgQ2FjaGVkUmVzb3VyY2UgZm9yICclcycu
IiwgcmVxdWVzdC5yZXNvdXJjZVJlcXVlc3QoKS51cmwoKS5zdHJpbmdDZW50ZXJFbGxpcHNpemVk
VG9MZW5ndGgoKS5sYXRpbjEoKS5kYXRhKCkpOwogCi0gICAgQ2FjaGVkUmVzb3VyY2VIYW5kbGU8
Q2FjaGVkUmVzb3VyY2U+IHJlc291cmNlID0gY3JlYXRlUmVzb3VyY2UodHlwZSwgcmVxdWVzdC5t
dXRhYmxlUmVzb3VyY2VSZXF1ZXN0KCksIGNoYXJzZXQpOworICAgIENhY2hlZFJlc291cmNlSGFu
ZGxlPENhY2hlZFJlc291cmNlPiByZXNvdXJjZSA9IGNyZWF0ZVJlc291cmNlKHR5cGUsIHJlcXVl
c3QubXV0YWJsZVJlc291cmNlUmVxdWVzdCgpLCBjaGFyc2V0LCBzZXNzaW9uSUQoKSk7CiAKICAg
ICBpZiAoIW1lbW9yeUNhY2hlKCktPmFkZChyZXNvdXJjZS5nZXQoKSkpCiAgICAgICAgIHJlc291
cmNlLT5zZXRPd25pbmdDYWNoZWRSZXNvdXJjZUxvYWRlcih0aGlzKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZUxvYWRlci5oIGIvU291cmNl
L1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlTG9hZGVyLmgKaW5kZXggYWFkN2Uy
NS4uMDFiNjQ3YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hl
ZFJlc291cmNlTG9hZGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hl
ZFJlc291cmNlTG9hZGVyLmgKQEAgLTExMSw2ICsxMTEsNyBAQCBwdWJsaWM6CiAgICAgRG9jdW1l
bnQqIGRvY3VtZW50KCkgY29uc3QgeyByZXR1cm4gbV9kb2N1bWVudDsgfSAvLyBDYW4gYmUgbnVs
bAogICAgIHZvaWQgc2V0RG9jdW1lbnQoRG9jdW1lbnQqIGRvY3VtZW50KSB7IG1fZG9jdW1lbnQg
PSBkb2N1bWVudDsgfQogICAgIHZvaWQgY2xlYXJEb2N1bWVudExvYWRlcigpIHsgbV9kb2N1bWVu
dExvYWRlciA9IDA7IH0KKyAgICBTZXNzaW9uSUQgc2Vzc2lvbklEKCkgY29uc3Q7CiAKICAgICB2
b2lkIHJlbW92ZUNhY2hlZFJlc291cmNlKENhY2hlZFJlc291cmNlKikgY29uc3Q7CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRTVkdEb2N1bWVudC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkU1ZHRG9jdW1lbnQuY3BwCmluZGV4
IGRkNWE0NzguLmE0NDgwODYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNo
ZS9DYWNoZWRTVkdEb2N1bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hl
L0NhY2hlZFNWR0RvY3VtZW50LmNwcApAQCAtMzAsOCArMzAsOCBAQAogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKLUNhY2hlZFNWR0RvY3VtZW50OjpDYWNoZWRTVkdEb2N1bWVudChjb25zdCBSZXNv
dXJjZVJlcXVlc3QmIHJlcXVlc3QpCi0gICAgOiBDYWNoZWRSZXNvdXJjZShyZXF1ZXN0LCBTVkdE
b2N1bWVudFJlc291cmNlKQorQ2FjaGVkU1ZHRG9jdW1lbnQ6OkNhY2hlZFNWR0RvY3VtZW50KGNv
bnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgU2Vzc2lvbklEIHNlc3Npb25JRCkKKyAgICA6
IENhY2hlZFJlc291cmNlKHJlcXVlc3QsIFNWR0RvY3VtZW50UmVzb3VyY2UsIHNlc3Npb25JRCkK
ICAgICAsIG1fZGVjb2RlcihUZXh0UmVzb3VyY2VEZWNvZGVyOjpjcmVhdGUoImFwcGxpY2F0aW9u
L3htbCIpKQogewogICAgIHNldEFjY2VwdCgiaW1hZ2Uvc3ZnK3htbCIpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFNWR0RvY3VtZW50LmggYi9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkU1ZHRG9jdW1lbnQuaAppbmRleCA2YzA4ZTJlLi43
ZDQ2ZmE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkU1ZH
RG9jdW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkU1ZHRG9j
dW1lbnQuaApAQCAtMzIsNyArMzIsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIENh
Y2hlZFNWR0RvY3VtZW50IGZpbmFsIDogcHVibGljIENhY2hlZFJlc291cmNlIHsKIHB1YmxpYzoK
LSAgICBleHBsaWNpdCBDYWNoZWRTVkdEb2N1bWVudChjb25zdCBSZXNvdXJjZVJlcXVlc3QmKTsK
KyAgICBleHBsaWNpdCBDYWNoZWRTVkdEb2N1bWVudChjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBT
ZXNzaW9uSUQpOwogICAgIHZpcnR1YWwgfkNhY2hlZFNWR0RvY3VtZW50KCk7CiAKICAgICBTVkdE
b2N1bWVudCogZG9jdW1lbnQoKSBjb25zdCB7IHJldHVybiBtX2RvY3VtZW50LmdldCgpOyB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkU2NyaXB0LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRTY3JpcHQuY3BwCmluZGV4IDQ4ZmFj
ZDcuLmVkYzY4NWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNo
ZWRTY3JpcHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRTY3Jp
cHQuY3BwCkBAIC0zOSw4ICszOSw4IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotQ2FjaGVk
U2NyaXB0OjpDYWNoZWRTY3JpcHQoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXNvdXJjZVJlcXVl
c3QsIGNvbnN0IFN0cmluZyYgY2hhcnNldCkKLSAgICA6IENhY2hlZFJlc291cmNlKHJlc291cmNl
UmVxdWVzdCwgU2NyaXB0KQorQ2FjaGVkU2NyaXB0OjpDYWNoZWRTY3JpcHQoY29uc3QgUmVzb3Vy
Y2VSZXF1ZXN0JiByZXNvdXJjZVJlcXVlc3QsIGNvbnN0IFN0cmluZyYgY2hhcnNldCwgU2Vzc2lv
bklEIHNlc3Npb25JRCkKKyAgICA6IENhY2hlZFJlc291cmNlKHJlc291cmNlUmVxdWVzdCwgU2Ny
aXB0LCBzZXNzaW9uSUQpCiAgICAgLCBtX2RlY29kZXIoVGV4dFJlc291cmNlRGVjb2Rlcjo6Y3Jl
YXRlKEFTQ0lJTGl0ZXJhbCgiYXBwbGljYXRpb24vamF2YXNjcmlwdCIpLCBjaGFyc2V0KSkKIHsK
ICAgICAvLyBJdCdzIGphdmFzY3JpcHQgd2Ugd2FudC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9jYWNoZS9DYWNoZWRTY3JpcHQuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9j
YWNoZS9DYWNoZWRTY3JpcHQuaAppbmRleCBkNDM4YjI3Li5jOWM3M2QyIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkU2NyaXB0LmgKKysrIGIvU291cmNlL1dl
YkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFNjcmlwdC5oCkBAIC0zNSw3ICszNSw3IEBAIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAogICAgIGNsYXNzIENhY2hlZFNjcmlwdCBmaW5hbCA6IHB1YmxpYyBD
YWNoZWRSZXNvdXJjZSB7CiAgICAgcHVibGljOgotICAgICAgICBDYWNoZWRTY3JpcHQoY29uc3Qg
UmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgU3RyaW5nJiBjaGFyc2V0KTsKKyAgICAgICAgQ2FjaGVk
U2NyaXB0KGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFN0cmluZyYgY2hhcnNldCwgU2Vz
c2lvbklEKTsKICAgICAgICAgdmlydHVhbCB+Q2FjaGVkU2NyaXB0KCk7CiAKICAgICAgICAgY29u
c3QgU3RyaW5nJiBzY3JpcHQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9j
YWNoZS9DYWNoZWRUZXh0VHJhY2suY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0Nh
Y2hlZFRleHRUcmFjay5jcHAKaW5kZXggOTQ5NzRhNS4uMjA1MDU0MSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFRleHRUcmFjay5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFRleHRUcmFjay5jcHAKQEAgLTM5LDggKzM5LDgg
QEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1DYWNoZWRUZXh0VHJhY2s6OkNhY2hlZFRleHRU
cmFjayhjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlc291cmNlUmVxdWVzdCkKLSAgICA6IENhY2hl
ZFJlc291cmNlKHJlc291cmNlUmVxdWVzdCwgVGV4dFRyYWNrUmVzb3VyY2UpCitDYWNoZWRUZXh0
VHJhY2s6OkNhY2hlZFRleHRUcmFjayhjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlc291cmNlUmVx
dWVzdCwgU2Vzc2lvbklEIHNlc3Npb25JRCkKKyAgICA6IENhY2hlZFJlc291cmNlKHJlc291cmNl
UmVxdWVzdCwgVGV4dFRyYWNrUmVzb3VyY2UsIHNlc3Npb25JRCkKIHsKIH0KIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFRleHRUcmFjay5oIGIvU291cmNl
L1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFRleHRUcmFjay5oCmluZGV4IGIzZWVhN2EuLjc5
M2FjOTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRUZXh0
VHJhY2suaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkVGV4dFRyYWNr
LmgKQEAgLTM1LDcgKzM1LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBDYWNoZWRU
ZXh0VHJhY2sgZmluYWwgOiBwdWJsaWMgQ2FjaGVkUmVzb3VyY2UgewogcHVibGljOgotICAgIENh
Y2hlZFRleHRUcmFjayhjb25zdCBSZXNvdXJjZVJlcXVlc3QmKTsKKyAgICBDYWNoZWRUZXh0VHJh
Y2soY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgU2Vzc2lvbklEKTsKICAgICB2aXJ0dWFsIH5DYWNo
ZWRUZXh0VHJhY2soKTsKIAogcHJpdmF0ZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9jYWNoZS9DYWNoZWRYU0xTdHlsZVNoZWV0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9jYWNoZS9DYWNoZWRYU0xTdHlsZVNoZWV0LmNwcAppbmRleCBlYjZjOGUxLi43YTQ5YWMwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkWFNMU3R5bGVTaGVl
dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFhTTFN0eWxlU2hl
ZXQuY3BwCkBAIC0zNyw4ICszNyw4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogI2lmIEVOQUJM
RShYU0xUKQogCi1DYWNoZWRYU0xTdHlsZVNoZWV0OjpDYWNoZWRYU0xTdHlsZVNoZWV0KGNvbnN0
IFJlc291cmNlUmVxdWVzdCYgcmVzb3VyY2VSZXF1ZXN0KQotICAgIDogQ2FjaGVkUmVzb3VyY2Uo
cmVzb3VyY2VSZXF1ZXN0LCBYU0xTdHlsZVNoZWV0KQorQ2FjaGVkWFNMU3R5bGVTaGVldDo6Q2Fj
aGVkWFNMU3R5bGVTaGVldChjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlc291cmNlUmVxdWVzdCwg
U2Vzc2lvbklEIHNlc3Npb25JRCkKKyAgICA6IENhY2hlZFJlc291cmNlKHJlc291cmNlUmVxdWVz
dCwgWFNMU3R5bGVTaGVldCwgc2Vzc2lvbklEKQogICAgICwgbV9kZWNvZGVyKFRleHRSZXNvdXJj
ZURlY29kZXI6OmNyZWF0ZSgidGV4dC94c2wiKSkKIHsKICAgICAvLyBJdCdzIFhNTCB3ZSB3YW50
LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFhTTFN0eWxl
U2hlZXQuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRYU0xTdHlsZVNoZWV0
LmgKaW5kZXggMGNiZmI2NS4uMzY5OTIzYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL2NhY2hlL0NhY2hlZFhTTFN0eWxlU2hlZXQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvY2FjaGUvQ2FjaGVkWFNMU3R5bGVTaGVldC5oCkBAIC0zNyw3ICszNyw3IEBAIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKICNpZiBFTkFCTEUoWFNMVCkKICAgICBjbGFzcyBDYWNoZWRYU0xTdHlsZVNo
ZWV0IGZpbmFsIDogcHVibGljIENhY2hlZFJlc291cmNlIHsKICAgICBwdWJsaWM6Ci0gICAgICAg
IENhY2hlZFhTTFN0eWxlU2hlZXQoY29uc3QgUmVzb3VyY2VSZXF1ZXN0Jik7CisgICAgICAgIENh
Y2hlZFhTTFN0eWxlU2hlZXQoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgU2Vzc2lvbklEKTsKIAog
ICAgICAgICBjb25zdCBTdHJpbmcmIHNoZWV0KCkgY29uc3QgeyByZXR1cm4gbV9zaGVldDsgfQog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvTWVtb3J5Q2FjaGUuY3Bw
IGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL01lbW9yeUNhY2hlLmNwcAppbmRleCBjYzZh
MjI1Li45NmNkYmMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvTWVt
b3J5Q2FjaGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9NZW1vcnlDYWNo
ZS5jcHAKQEAgLTgwLDYgKzgwLDE3IEBAIE1lbW9yeUNhY2hlOjpNZW1vcnlDYWNoZSgpCiB7CiB9
CiAKK01lbW9yeUNhY2hlOjpDYWNoZWRSZXNvdXJjZU1hcCYgTWVtb3J5Q2FjaGU6OmdldFNlc3Np
b25NYXAoU2Vzc2lvbklEIHNlc3Npb25JRCkKK3sKKyAgICBBU1NFUlQoc2Vzc2lvbklELmlzVmFs
aWQoKSk7CisgICAgQ2FjaGVkUmVzb3VyY2VNYXAqIG1hcCA9IG1fc2Vzc2lvblJlc291cmNlcy5n
ZXQoc2Vzc2lvbklEKTsKKyAgICBpZiAoIW1hcCkgeworICAgICAgICBtX3Nlc3Npb25SZXNvdXJj
ZXMuc2V0KHNlc3Npb25JRCwgc3RkOjptYWtlX3VuaXF1ZTxDYWNoZWRSZXNvdXJjZU1hcD4oKSk7
CisgICAgICAgIG1hcCA9IG1fc2Vzc2lvblJlc291cmNlcy5nZXQoc2Vzc2lvbklEKTsKKyAgICB9
CisgICAgcmV0dXJuICptYXA7Cit9CisKIFVSTCBNZW1vcnlDYWNoZTo6cmVtb3ZlRnJhZ21lbnRJ
ZGVudGlmaWVySWZOZWVkZWQoY29uc3QgVVJMJiBvcmlnaW5hbFVSTCkKIHsKICAgICBpZiAoIW9y
aWdpbmFsVVJMLmhhc0ZyYWdtZW50SWRlbnRpZmllcigpKQpAQCAtMTAxLDE1ICsxMTIsMTYgQEAg
Ym9vbCBNZW1vcnlDYWNoZTo6YWRkKENhY2hlZFJlc291cmNlKiByZXNvdXJjZSkKIAogICAgIEFT
U0VSVChXVEY6OmlzTWFpblRocmVhZCgpKTsKIAorICAgIENhY2hlZFJlc291cmNlTWFwJiByZXNv
dXJjZXMgPSBnZXRTZXNzaW9uTWFwKHJlc291cmNlLT5zZXNzaW9uSUQoKSk7CiAjaWYgRU5BQkxF
KENBQ0hFX1BBUlRJVElPTklORykKLSAgICBDYWNoZWRSZXNvdXJjZUl0ZW0qIG9yaWdpbk1hcCA9
IG1fcmVzb3VyY2VzLmdldChyZXNvdXJjZS0+dXJsKCkpOworICAgIENhY2hlZFJlc291cmNlSXRl
bSogb3JpZ2luTWFwID0gcmVzb3VyY2VzLmdldChyZXNvdXJjZS0+dXJsKCkpOwogICAgIGlmICgh
b3JpZ2luTWFwKSB7CiAgICAgICAgIG9yaWdpbk1hcCA9IG5ldyBDYWNoZWRSZXNvdXJjZUl0ZW07
Ci0gICAgICAgIG1fcmVzb3VyY2VzLnNldChyZXNvdXJjZS0+dXJsKCksIGFkb3B0UHRyKG9yaWdp
bk1hcCkpOworICAgICAgICByZXNvdXJjZXMuc2V0KHJlc291cmNlLT51cmwoKSwgYWRvcHRQdHIo
b3JpZ2luTWFwKSk7CiAgICAgfQogICAgIG9yaWdpbk1hcC0+c2V0KHJlc291cmNlLT5jYWNoZVBh
cnRpdGlvbigpLCByZXNvdXJjZSk7CiAjZWxzZQotICAgIG1fcmVzb3VyY2VzLnNldChyZXNvdXJj
ZS0+dXJsKCksIHJlc291cmNlKTsKKyAgICByZXNvdXJjZXMuc2V0KHJlc291cmNlLT51cmwoKSwg
cmVzb3VyY2UpOwogI2VuZGlmCiAgICAgcmVzb3VyY2UtPnNldEluQ2FjaGUodHJ1ZSk7CiAgICAg
CkBAIC0xMzQsMTcgKzE0NiwxOCBAQCB2b2lkIE1lbW9yeUNhY2hlOjpyZXZhbGlkYXRpb25TdWNj
ZWVkZWQoQ2FjaGVkUmVzb3VyY2UqIHJldmFsaWRhdGluZ1Jlc291cmNlLCBjbwogCiAgICAgZXZp
Y3QocmV2YWxpZGF0aW5nUmVzb3VyY2UpOwogCisgICAgQ2FjaGVkUmVzb3VyY2VNYXAmIHJlc291
cmNlcyA9IGdldFNlc3Npb25NYXAocmVzb3VyY2UtPnNlc3Npb25JRCgpKTsKICNpZiBFTkFCTEUo
Q0FDSEVfUEFSVElUSU9OSU5HKQotICAgIEFTU0VSVCghbV9yZXNvdXJjZXMuZ2V0KHJlc291cmNl
LT51cmwoKSkgfHwgIW1fcmVzb3VyY2VzLmdldChyZXNvdXJjZS0+dXJsKCkpLT5nZXQocmVzb3Vy
Y2UtPmNhY2hlUGFydGl0aW9uKCkpKTsKLSAgICBDYWNoZWRSZXNvdXJjZUl0ZW0qIG9yaWdpbk1h
cCA9IG1fcmVzb3VyY2VzLmdldChyZXNvdXJjZS0+dXJsKCkpOworICAgIEFTU0VSVCghcmVzb3Vy
Y2VzLmdldChyZXNvdXJjZS0+dXJsKCkpIHx8ICFyZXNvdXJjZXMuZ2V0KHJlc291cmNlLT51cmwo
KSktPmdldChyZXNvdXJjZS0+Y2FjaGVQYXJ0aXRpb24oKSkpOworICAgIENhY2hlZFJlc291cmNl
SXRlbSogb3JpZ2luTWFwID0gcmVzb3VyY2VzLmdldChyZXNvdXJjZS0+dXJsKCkpOwogICAgIGlm
ICghb3JpZ2luTWFwKSB7CiAgICAgICAgIG9yaWdpbk1hcCA9IG5ldyBDYWNoZWRSZXNvdXJjZUl0
ZW07Ci0gICAgICAgIG1fcmVzb3VyY2VzLnNldChyZXNvdXJjZS0+dXJsKCksIGFkb3B0UHRyKG9y
aWdpbk1hcCkpOworICAgICAgICByZXNvdXJjZXMuc2V0KHJlc291cmNlLT51cmwoKSwgYWRvcHRQ
dHIob3JpZ2luTWFwKSk7CiAgICAgfQogICAgIG9yaWdpbk1hcC0+c2V0KHJlc291cmNlLT5jYWNo
ZVBhcnRpdGlvbigpLCByZXNvdXJjZSk7CiAjZWxzZQotICAgIEFTU0VSVCghbV9yZXNvdXJjZXMu
Z2V0KHJlc291cmNlLT51cmwoKSkpOwotICAgIG1fcmVzb3VyY2VzLnNldChyZXNvdXJjZS0+dXJs
KCksIHJlc291cmNlKTsKKyAgICBBU1NFUlQoIXJlc291cmNlcy5nZXQocmVzb3VyY2UtPnVybCgp
KSk7CisgICAgcmVzb3VyY2VzLnNldChyZXNvdXJjZS0+dXJsKCksIHJlc291cmNlKTsKICNlbmRp
ZgogICAgIHJlc291cmNlLT5zZXRJbkNhY2hlKHRydWUpOwogICAgIHJlc291cmNlLT51cGRhdGVS
ZXNwb25zZUFmdGVyUmV2YWxpZGF0aW9uKHJlc3BvbnNlKTsKQEAgLTE3MSwyMCArMTg0LDMxIEBA
IHZvaWQgTWVtb3J5Q2FjaGU6OnJldmFsaWRhdGlvbkZhaWxlZChDYWNoZWRSZXNvdXJjZSogcmV2
YWxpZGF0aW5nUmVzb3VyY2UpCiAKIENhY2hlZFJlc291cmNlKiBNZW1vcnlDYWNoZTo6cmVzb3Vy
Y2VGb3JVUkwoY29uc3QgVVJMJiByZXNvdXJjZVVSTCkKIHsKLSAgICByZXR1cm4gcmVzb3VyY2VG
b3JSZXF1ZXN0KFJlc291cmNlUmVxdWVzdChyZXNvdXJjZVVSTCkpOworICAgIHJldHVybiByZXNv
dXJjZUZvclVSTChyZXNvdXJjZVVSTCwgU2Vzc2lvbklEOjpkZWZhdWx0U2Vzc2lvbklEKCkpOwog
fQogCi1DYWNoZWRSZXNvdXJjZSogTWVtb3J5Q2FjaGU6OnJlc291cmNlRm9yUmVxdWVzdChjb25z
dCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QpCitDYWNoZWRSZXNvdXJjZSogTWVtb3J5Q2FjaGU6
OnJlc291cmNlRm9yVVJMKGNvbnN0IFVSTCYgcmVzb3VyY2VVUkwsIFNlc3Npb25JRCBzZXNzaW9u
SUQpCit7CisgICAgcmV0dXJuIHJlc291cmNlRm9yUmVxdWVzdChSZXNvdXJjZVJlcXVlc3QocmVz
b3VyY2VVUkwpLCBzZXNzaW9uSUQpOworfQorCitDYWNoZWRSZXNvdXJjZSogTWVtb3J5Q2FjaGU6
OnJlc291cmNlRm9yUmVxdWVzdChjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIFNlc3Np
b25JRCBzZXNzaW9uSUQpCit7CisgICAgcmV0dXJuIHJlc291cmNlRm9yUmVxdWVzdEltcGwocmVx
dWVzdCwgZ2V0U2Vzc2lvbk1hcChzZXNzaW9uSUQpKTsKK30KKworQ2FjaGVkUmVzb3VyY2UqIE1l
bW9yeUNhY2hlOjpyZXNvdXJjZUZvclJlcXVlc3RJbXBsKGNvbnN0IFJlc291cmNlUmVxdWVzdCYg
cmVxdWVzdCwgQ2FjaGVkUmVzb3VyY2VNYXAmIHJlc291cmNlcykKIHsKICAgICBBU1NFUlQoV1RG
Ojppc01haW5UaHJlYWQoKSk7CiAgICAgVVJMIHVybCA9IHJlbW92ZUZyYWdtZW50SWRlbnRpZmll
cklmTmVlZGVkKHJlcXVlc3QudXJsKCkpOworCiAjaWYgRU5BQkxFKENBQ0hFX1BBUlRJVElPTklO
RykKLSAgICBDYWNoZWRSZXNvdXJjZUl0ZW0qIGl0ZW0gPSBtX3Jlc291cmNlcy5nZXQodXJsKTsK
KyAgICBDYWNoZWRSZXNvdXJjZUl0ZW0qIGl0ZW0gPSByZXNvdXJjZXMuZ2V0KHVybCk7CiAgICAg
Q2FjaGVkUmVzb3VyY2UqIHJlc291cmNlID0gMDsKICAgICBpZiAoaXRlbSkKICAgICAgICAgcmVz
b3VyY2UgPSBpdGVtLT5nZXQocmVxdWVzdC5jYWNoZVBhcnRpdGlvbigpKTsKICNlbHNlCi0gICAg
Q2FjaGVkUmVzb3VyY2UqIHJlc291cmNlID0gbV9yZXNvdXJjZXMuZ2V0KHVybCk7CisgICAgQ2Fj
aGVkUmVzb3VyY2UqIHJlc291cmNlID0gcmVzb3VyY2VzLmdldCh1cmwpOwogI2VuZGlmCiAgICAg
Ym9vbCB3YXNQdXJnZWFibGUgPSBNZW1vcnlDYWNoZTo6c2hvdWxkTWFrZVJlc291cmNlUHVyZ2Vh
YmxlT25FdmljdGlvbigpICYmIHJlc291cmNlICYmIHJlc291cmNlLT5pc1B1cmdlYWJsZSgpOwog
ICAgIGlmIChyZXNvdXJjZSAmJiAhcmVzb3VyY2UtPm1ha2VQdXJnZWFibGUoZmFsc2UpKSB7CkBA
IC0yMjUsMTMgKzI0OSwxNCBAQCBzdGF0aWMgQ2FjaGVkSW1hZ2VDbGllbnQmIGR1bW15Q2FjaGVk
SW1hZ2VDbGllbnQoKQogYm9vbCBNZW1vcnlDYWNoZTo6YWRkSW1hZ2VUb0NhY2hlKE5hdGl2ZUlt
YWdlUHRyIGltYWdlLCBjb25zdCBVUkwmIHVybCwgY29uc3QgU3RyaW5nJiBjYWNoZVBhcnRpdGlv
bikKIHsKICAgICBBU1NFUlQoaW1hZ2UpOworICAgIFNlc3Npb25JRCBzZXNzaW9uSUQgPSBTZXNz
aW9uSUQ6OmRlZmF1bHRTZXNzaW9uSUQoKTsKICAgICByZW1vdmVJbWFnZUZyb21DYWNoZSh1cmws
IGNhY2hlUGFydGl0aW9uKTsgLy8gUmVtb3ZlIGNhY2hlIGVudHJ5IGlmIGl0IGFscmVhZHkgZXhp
c3RzLgogCiAgICAgUmVmUHRyPEJpdG1hcEltYWdlPiBiaXRtYXBJbWFnZSA9IEJpdG1hcEltYWdl
OjpjcmVhdGUoaW1hZ2UsIG51bGxwdHIpOwogICAgIGlmICghYml0bWFwSW1hZ2UpCiAgICAgICAg
IHJldHVybiBmYWxzZTsKIAotICAgIHN0ZDo6dW5pcXVlX3B0cjxDYWNoZWRJbWFnZT4gY2FjaGVk
SW1hZ2UgPSBzdGQ6Om1ha2VfdW5pcXVlPENhY2hlZEltYWdlPih1cmwsIGJpdG1hcEltYWdlLmdl
dCgpLCBDYWNoZWRJbWFnZTo6TWFudWFsbHlDYWNoZWQpOworICAgIHN0ZDo6dW5pcXVlX3B0cjxD
YWNoZWRJbWFnZT4gY2FjaGVkSW1hZ2UgPSBzdGQ6Om1ha2VfdW5pcXVlPENhY2hlZEltYWdlPih1
cmwsIGJpdG1hcEltYWdlLmdldCgpLCBDYWNoZWRJbWFnZTo6TWFudWFsbHlDYWNoZWQsIHNlc3Np
b25JRCk7CiAKICAgICAvLyBBY3R1YWwgcmVsZWFzZSBvZiB0aGUgQ0dJbWFnZVJlZiBpcyBkb25l
IGluIEJpdG1hcEltYWdlLgogICAgIENGUmV0YWluKGltYWdlKTsKQEAgLTI0MCwyMSArMjY1LDIx
IEBAIGJvb2wgTWVtb3J5Q2FjaGU6OmFkZEltYWdlVG9DYWNoZShOYXRpdmVJbWFnZVB0ciBpbWFn
ZSwgY29uc3QgVVJMJiB1cmwsIGNvbnN0IFN0CiAjaWYgRU5BQkxFKENBQ0hFX1BBUlRJVElPTklO
RykKICAgICBjYWNoZWRJbWFnZS0+cmVzb3VyY2VSZXF1ZXN0KCkuc2V0Q2FjaGVQYXJ0aXRpb24o
Y2FjaGVQYXJ0aXRpb24pOwogI2VuZGlmCi0gICAgYWRkKGNhY2hlZEltYWdlLnJlbGVhc2UoKSk7
CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKIHZvaWQgTWVtb3J5Q2FjaGU6OnJlbW92ZUltYWdlRnJv
bUNhY2hlKGNvbnN0IFVSTCYgdXJsLCBjb25zdCBTdHJpbmcmIGNhY2hlUGFydGl0aW9uKQogewor
ICAgIENhY2hlZFJlc291cmNlTWFwJiByZXNvdXJjZXMgPSBnZXRTZXNzaW9uTWFwKFNlc3Npb25J
RDo6ZGVmYXVsdFNlc3Npb25JRCgpKTsKICNpZiBFTkFCTEUoQ0FDSEVfUEFSVElUSU9OSU5HKQog
ICAgIENhY2hlZFJlc291cmNlKiByZXNvdXJjZTsKLSAgICBpZiAoQ2FjaGVkUmVzb3VyY2VJdGVt
KiBpdGVtID0gbV9yZXNvdXJjZXMuZ2V0KHVybCkpCisgICAgaWYgKENhY2hlZFJlc291cmNlSXRl
bSogaXRlbSA9IHJlc291cmNlcy5nZXQodXJsKSkKICAgICAgICAgcmVzb3VyY2UgPSBpdGVtLT5n
ZXQoUmVzb3VyY2VSZXF1ZXN0OjpwYXJ0aXRpb25OYW1lKGNhY2hlUGFydGl0aW9uKSk7CiAgICAg
ZWxzZQogICAgICAgICByZXNvdXJjZSA9IG51bGxwdHI7CiAjZWxzZQogICAgIFVOVVNFRF9QQVJB
TShjYWNoZVBhcnRpdGlvbik7Ci0gICAgQ2FjaGVkUmVzb3VyY2UqIHJlc291cmNlID0gbV9yZXNv
dXJjZXMuZ2V0KHVybCk7CisgICAgQ2FjaGVkUmVzb3VyY2UqIHJlc291cmNlID0gcmVzb3VyY2Vz
LmdldCh1cmwpOwogI2VuZGlmCiAgICAgaWYgKCFyZXNvdXJjZSkKICAgICAgICAgcmV0dXJuOwpA
QCAtNTIyLDE3ICs1NDcsMTggQEAgdm9pZCBNZW1vcnlDYWNoZTo6ZXZpY3QoQ2FjaGVkUmVzb3Vy
Y2UqIHJlc291cmNlKQogICAgIExPRyhSZXNvdXJjZUxvYWRpbmcsICJFdmljdGluZyByZXNvdXJj
ZSAlcCBmb3IgJyVzJyBmcm9tIGNhY2hlIiwgcmVzb3VyY2UsIHJlc291cmNlLT51cmwoKS5zdHJp
bmcoKS5sYXRpbjEoKS5kYXRhKCkpOwogICAgIC8vIFRoZSByZXNvdXJjZSBtYXkgaGF2ZSBhbHJl
YWR5IGJlZW4gcmVtb3ZlZCBieSBzb21lb25lIG90aGVyIHRoYW4gb3VyIGNhbGxlciwKICAgICAv
LyB3aG8gbmVlZGVkIGEgZnJlc2ggY29weSBmb3IgYSByZWxvYWQuIFNlZSA8aHR0cDovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI0NzkjYzY+LgorICAgIENhY2hlZFJlc291cmNl
TWFwJiByZXNvdXJjZXMgPSBnZXRTZXNzaW9uTWFwKHJlc291cmNlLT5zZXNzaW9uSUQoKSk7CiAg
ICAgaWYgKHJlc291cmNlLT5pbkNhY2hlKCkpIHsKICAgICAgICAgLy8gUmVtb3ZlIGZyb20gdGhl
IHJlc291cmNlIG1hcC4KICNpZiBFTkFCTEUoQ0FDSEVfUEFSVElUSU9OSU5HKQotICAgICAgICBD
YWNoZWRSZXNvdXJjZUl0ZW0qIGl0ZW0gPSBtX3Jlc291cmNlcy5nZXQocmVzb3VyY2UtPnVybCgp
KTsKKyAgICAgICAgQ2FjaGVkUmVzb3VyY2VJdGVtKiBpdGVtID0gcmVzb3VyY2VzLmdldChyZXNv
dXJjZS0+dXJsKCkpOwogICAgICAgICBpZiAoaXRlbSkgewogICAgICAgICAgICAgaXRlbS0+cmVt
b3ZlKHJlc291cmNlLT5jYWNoZVBhcnRpdGlvbigpKTsKICAgICAgICAgICAgIGlmICghaXRlbS0+
c2l6ZSgpKQotICAgICAgICAgICAgICAgIG1fcmVzb3VyY2VzLnJlbW92ZShyZXNvdXJjZS0+dXJs
KCkpOworICAgICAgICAgICAgICAgIHJlc291cmNlcy5yZW1vdmUocmVzb3VyY2UtPnVybCgpKTsK
ICAgICAgICAgfQogI2Vsc2UKLSAgICAgICAgbV9yZXNvdXJjZXMucmVtb3ZlKHJlc291cmNlLT51
cmwoKSk7CisgICAgICAgIHJlc291cmNlcy5yZW1vdmUocmVzb3VyY2UtPnVybCgpKTsKICNlbmRp
ZgogICAgICAgICByZXNvdXJjZS0+c2V0SW5DYWNoZShmYWxzZSk7CiAKQEAgLTU0Nyw5ICs1NzMs
OSBAQCB2b2lkIE1lbW9yeUNhY2hlOjpldmljdChDYWNoZWRSZXNvdXJjZSogcmVzb3VyY2UpCiAg
ICAgICAgICAgICBhZGp1c3RTaXplKHJlc291cmNlLT5oYXNDbGllbnRzKCksIC1zdGF0aWNfY2Fz
dDxpbnQ+KHJlc291cmNlLT5zaXplKCkpKTsKICAgICB9IGVsc2UKICNpZiBFTkFCTEUoQ0FDSEVf
UEFSVElUSU9OSU5HKQotICAgICAgICBBU1NFUlQoIW1fcmVzb3VyY2VzLmdldChyZXNvdXJjZS0+
dXJsKCkpIHx8IG1fcmVzb3VyY2VzLmdldChyZXNvdXJjZS0+dXJsKCkpLT5nZXQocmVzb3VyY2Ut
PmNhY2hlUGFydGl0aW9uKCkpICE9IHJlc291cmNlKTsKKyAgICAgICAgQVNTRVJUKCFyZXNvdXJj
ZXMuZ2V0KHJlc291cmNlLT51cmwoKSkgfHwgcmVzb3VyY2VzLmdldChyZXNvdXJjZS0+dXJsKCkp
LT5nZXQocmVzb3VyY2UtPmNhY2hlUGFydGl0aW9uKCkpICE9IHJlc291cmNlKTsKICNlbHNlCi0g
ICAgICAgIEFTU0VSVChtX3Jlc291cmNlcy5nZXQocmVzb3VyY2UtPnVybCgpKSAhPSByZXNvdXJj
ZSk7CisgICAgICAgIEFTU0VSVChyZXNvdXJjZXMuZ2V0KHJlc291cmNlLT51cmwoKSkgIT0gcmVz
b3VyY2UpOwogI2VuZGlmCiAKICAgICByZXNvdXJjZS0+ZGVsZXRlSWZQb3NzaWJsZSgpOwpAQCAt
NjY5LDMxICs2OTUsMzMgQEAgdm9pZCBNZW1vcnlDYWNoZTo6cmVtb3ZlUmVzb3VyY2VzV2l0aE9y
aWdpbihTZWN1cml0eU9yaWdpbiogb3JpZ2luKQogewogICAgIFZlY3RvcjxDYWNoZWRSZXNvdXJj
ZSo+IHJlc291cmNlc1dpdGhPcmlnaW47CiAKLSAgICBDYWNoZWRSZXNvdXJjZU1hcDo6aXRlcmF0
b3IgZSA9IG1fcmVzb3VyY2VzLmVuZCgpOworICAgIGZvciAoYXV0byYgcmVzb3VyY2VzIDogbV9z
ZXNzaW9uUmVzb3VyY2VzKSB7CisgICAgICAgIENhY2hlZFJlc291cmNlTWFwOjppdGVyYXRvciBl
ID0gcmVzb3VyY2VzLnZhbHVlLT5lbmQoKTsKICNpZiBFTkFCTEUoQ0FDSEVfUEFSVElUSU9OSU5H
KQotICAgIFN0cmluZyBvcmlnaW5QYXJ0aXRpb24gPSBSZXNvdXJjZVJlcXVlc3Q6OnBhcnRpdGlv
bk5hbWUob3JpZ2luLT5ob3N0KCkpOworICAgICAgICBTdHJpbmcgb3JpZ2luUGFydGl0aW9uID0g
UmVzb3VyY2VSZXF1ZXN0OjpwYXJ0aXRpb25OYW1lKG9yaWdpbi0+aG9zdCgpKTsKICNlbmRpZgog
Ci0gICAgZm9yIChDYWNoZWRSZXNvdXJjZU1hcDo6aXRlcmF0b3IgaXQgPSBtX3Jlc291cmNlcy5i
ZWdpbigpOyBpdCAhPSBlOyArK2l0KSB7CisgICAgICAgIGZvciAoQ2FjaGVkUmVzb3VyY2VNYXA6
Oml0ZXJhdG9yIGl0ID0gcmVzb3VyY2VzLnZhbHVlLT5iZWdpbigpOyBpdCAhPSBlOyArK2l0KSB7
CiAjaWYgRU5BQkxFKENBQ0hFX1BBUlRJVElPTklORykKLSAgICAgICAgZm9yIChDYWNoZWRSZXNv
dXJjZUl0ZW06Oml0ZXJhdG9yIGl0ZW1JdGVyYXRvciA9IGl0LT52YWx1ZS0+YmVnaW4oKTsgaXRl
bUl0ZXJhdG9yICE9IGl0LT52YWx1ZS0+ZW5kKCk7ICsraXRlbUl0ZXJhdG9yKSB7Ci0gICAgICAg
ICAgICBDYWNoZWRSZXNvdXJjZSogcmVzb3VyY2UgPSBpdGVtSXRlcmF0b3ItPnZhbHVlOwotICAg
ICAgICAgICAgU3RyaW5nIHBhcnRpdGlvbiA9IGl0ZW1JdGVyYXRvci0+a2V5OwotICAgICAgICAg
ICAgaWYgKHBhcnRpdGlvbiA9PSBvcmlnaW5QYXJ0aXRpb24pIHsKLSAgICAgICAgICAgICAgICBy
ZXNvdXJjZXNXaXRoT3JpZ2luLmFwcGVuZChyZXNvdXJjZSk7Ci0gICAgICAgICAgICAgICAgY29u
dGludWU7Ci0gICAgICAgICAgICB9CisgICAgICAgICAgICBmb3IgKENhY2hlZFJlc291cmNlSXRl
bTo6aXRlcmF0b3IgaXRlbUl0ZXJhdG9yID0gaXQtPnZhbHVlLT5iZWdpbigpOyBpdGVtSXRlcmF0
b3IgIT0gaXQtPnZhbHVlLT5lbmQoKTsgKytpdGVtSXRlcmF0b3IpIHsKKyAgICAgICAgICAgICAg
ICBDYWNoZWRSZXNvdXJjZSogcmVzb3VyY2UgPSBpdGVtSXRlcmF0b3ItPnZhbHVlOworICAgICAg
ICAgICAgICAgIFN0cmluZyBwYXJ0aXRpb24gPSBpdGVtSXRlcmF0b3ItPmtleTsKKyAgICAgICAg
ICAgICAgICBpZiAocGFydGl0aW9uID09IG9yaWdpblBhcnRpdGlvbikgeworICAgICAgICAgICAg
ICAgICAgICByZXNvdXJjZXNXaXRoT3JpZ2luLmFwcGVuZChyZXNvdXJjZSk7CisgICAgICAgICAg
ICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgICAgIH0KICNlbHNlCi0gICAgICAgICAg
ICBDYWNoZWRSZXNvdXJjZSogcmVzb3VyY2UgPSBpdC0+dmFsdWU7CisgICAgICAgICAgICAgICAg
Q2FjaGVkUmVzb3VyY2UqIHJlc291cmNlID0gaXQtPnZhbHVlOwogI2VuZGlmCi0gICAgICAgICAg
ICBSZWZQdHI8U2VjdXJpdHlPcmlnaW4+IHJlc291cmNlT3JpZ2luID0gU2VjdXJpdHlPcmlnaW46
OmNyZWF0ZUZyb21TdHJpbmcocmVzb3VyY2UtPnVybCgpKTsKLSAgICAgICAgICAgIGlmICghcmVz
b3VyY2VPcmlnaW4pCi0gICAgICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgICAgICBpZiAo
cmVzb3VyY2VPcmlnaW4tPmVxdWFsKG9yaWdpbikpCi0gICAgICAgICAgICAgICAgcmVzb3VyY2Vz
V2l0aE9yaWdpbi5hcHBlbmQocmVzb3VyY2UpOworICAgICAgICAgICAgICAgIFJlZlB0cjxTZWN1
cml0eU9yaWdpbj4gcmVzb3VyY2VPcmlnaW4gPSBTZWN1cml0eU9yaWdpbjo6Y3JlYXRlRnJvbVN0
cmluZyhyZXNvdXJjZS0+dXJsKCkpOworICAgICAgICAgICAgICAgIGlmICghcmVzb3VyY2VPcmln
aW4pCisgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgICAgIGlmIChy
ZXNvdXJjZU9yaWdpbi0+ZXF1YWwob3JpZ2luKSkKKyAgICAgICAgICAgICAgICAgICAgcmVzb3Vy
Y2VzV2l0aE9yaWdpbi5hcHBlbmQocmVzb3VyY2UpOwogI2lmIEVOQUJMRShDQUNIRV9QQVJUSVRJ
T05JTkcpCi0gICAgICAgIH0KKyAgICAgICAgICAgIH0KICNlbmRpZgorICAgICAgICB9CiAgICAg
fQogCiAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCByZXNvdXJjZXNXaXRoT3JpZ2luLnNpemUo
KTsgKytpKQpAQCAtNzA1LDE2ICs3MzMsMTggQEAgdm9pZCBNZW1vcnlDYWNoZTo6Z2V0T3JpZ2lu
c1dpdGhDYWNoZShTZWN1cml0eU9yaWdpblNldCYgb3JpZ2lucykKICNpZiBFTkFCTEUoQ0FDSEVf
UEFSVElUSU9OSU5HKQogICAgIERFRklORV9TVEFUSUNfTE9DQUwoU3RyaW5nLCBodHRwU3RyaW5n
LCAoImh0dHAiKSk7CiAjZW5kaWYKLSAgICBDYWNoZWRSZXNvdXJjZU1hcDo6aXRlcmF0b3IgZSA9
IG1fcmVzb3VyY2VzLmVuZCgpOwotICAgIGZvciAoQ2FjaGVkUmVzb3VyY2VNYXA6Oml0ZXJhdG9y
IGl0ID0gbV9yZXNvdXJjZXMuYmVnaW4oKTsgaXQgIT0gZTsgKytpdCkgeworICAgIGZvciAoYXV0
byYgcmVzb3VyY2VzIDogbV9zZXNzaW9uUmVzb3VyY2VzKSB7CisgICAgICAgIENhY2hlZFJlc291
cmNlTWFwOjppdGVyYXRvciBlID0gcmVzb3VyY2VzLnZhbHVlLT5lbmQoKTsKKyAgICAgICAgZm9y
IChDYWNoZWRSZXNvdXJjZU1hcDo6aXRlcmF0b3IgaXQgPSByZXNvdXJjZXMudmFsdWUtPmJlZ2lu
KCk7IGl0ICE9IGU7ICsraXQpIHsKICNpZiBFTkFCTEUoQ0FDSEVfUEFSVElUSU9OSU5HKQotICAg
ICAgICBpZiAoaXQtPnZhbHVlLT5iZWdpbigpLT5rZXkgPT0gZW1wdHlTdHJpbmcoKSkKLSAgICAg
ICAgICAgIG9yaWdpbnMuYWRkKFNlY3VyaXR5T3JpZ2luOjpjcmVhdGVGcm9tU3RyaW5nKGl0LT52
YWx1ZS0+YmVnaW4oKS0+dmFsdWUtPnVybCgpKSk7Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAg
IG9yaWdpbnMuYWRkKFNlY3VyaXR5T3JpZ2luOjpjcmVhdGUoaHR0cFN0cmluZywgaXQtPnZhbHVl
LT5iZWdpbigpLT5rZXksIDApKTsKKyAgICAgICAgICAgIGlmIChpdC0+dmFsdWUtPmJlZ2luKCkt
PmtleSA9PSBlbXB0eVN0cmluZygpKQorICAgICAgICAgICAgICAgIG9yaWdpbnMuYWRkKFNlY3Vy
aXR5T3JpZ2luOjpjcmVhdGVGcm9tU3RyaW5nKGl0LT52YWx1ZS0+YmVnaW4oKS0+dmFsdWUtPnVy
bCgpKSk7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgb3JpZ2lucy5hZGQoU2Vj
dXJpdHlPcmlnaW46OmNyZWF0ZShodHRwU3RyaW5nLCBpdC0+dmFsdWUtPmJlZ2luKCktPmtleSwg
MCkpOwogI2Vsc2UKLSAgICAgICAgb3JpZ2lucy5hZGQoU2VjdXJpdHlPcmlnaW46OmNyZWF0ZUZy
b21TdHJpbmcoaXQtPnZhbHVlLT51cmwoKSkpOworICAgICAgICAgICAgb3JpZ2lucy5hZGQoU2Vj
dXJpdHlPcmlnaW46OmNyZWF0ZUZyb21TdHJpbmcoaXQtPnZhbHVlLT51cmwoKSkpOwogI2VuZGlm
CisgICAgICAgIH0KICAgICB9CiB9CiAKQEAgLTgwOCwzMSArODM4LDM5IEBAIHZvaWQgTWVtb3J5
Q2FjaGU6OmFkanVzdFNpemUoYm9vbCBsaXZlLCBpbnQgZGVsdGEpCiAgICAgfQogfQogCi12b2lk
IE1lbW9yeUNhY2hlOjpyZW1vdmVVcmxGcm9tQ2FjaGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCog
Y29udGV4dCwgY29uc3QgU3RyaW5nJiB1cmxTdHJpbmcpCit2b2lkIE1lbW9yeUNhY2hlOjpyZW1v
dmVVcmxGcm9tQ2FjaGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgY29uc3QgU3Ry
aW5nJiB1cmxTdHJpbmcsIFNlc3Npb25JRCBzZXNzaW9uSUQpCiB7Ci0gICAgcmVtb3ZlUmVxdWVz
dEZyb21DYWNoZShjb250ZXh0LCBSZXNvdXJjZVJlcXVlc3QodXJsU3RyaW5nKSk7CisgICAgcmVt
b3ZlUmVxdWVzdEZyb21DYWNoZShjb250ZXh0LCBSZXNvdXJjZVJlcXVlc3QodXJsU3RyaW5nKSwg
c2Vzc2lvbklEKTsKIH0KIAotdm9pZCBNZW1vcnlDYWNoZTo6cmVtb3ZlUmVxdWVzdEZyb21DYWNo
ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBjb25zdCBSZXNvdXJjZVJlcXVlc3Qm
IHJlcXVlc3QpCit2b2lkIE1lbW9yeUNhY2hlOjpyZW1vdmVSZXF1ZXN0RnJvbUNhY2hlKFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVz
dCwgU2Vzc2lvbklEIHNlc3Npb25JRCkKIHsKICAgICBpZiAoY29udGV4dC0+aXNXb3JrZXJHbG9i
YWxTY29wZSgpKSB7Ci0gICAgICAgIHRvV29ya2VyR2xvYmFsU2NvcGUoY29udGV4dCktPnRocmVh
ZCgpLndvcmtlckxvYWRlclByb3h5KCkucG9zdFRhc2tUb0xvYWRlcihjcmVhdGVDYWxsYmFja1Rh
c2soJmNyb3NzVGhyZWFkUmVtb3ZlUmVxdWVzdEZyb21DYWNoZSwgcmVxdWVzdCkpOworICAgICAg
ICB0b1dvcmtlckdsb2JhbFNjb3BlKGNvbnRleHQpLT50aHJlYWQoKS53b3JrZXJMb2FkZXJQcm94
eSgpLnBvc3RUYXNrVG9Mb2FkZXIoY3JlYXRlQ2FsbGJhY2tUYXNrKCZjcm9zc1RocmVhZFJlbW92
ZVJlcXVlc3RGcm9tQ2FjaGUsIHJlcXVlc3QsIHNlc3Npb25JRCkpOwogICAgICAgICByZXR1cm47
CiAgICAgfQogCi0gICAgcmVtb3ZlUmVxdWVzdEZyb21DYWNoZUltcGwoY29udGV4dCwgcmVxdWVz
dCk7CisgICAgcmVtb3ZlUmVxdWVzdEZyb21DYWNoZUltcGwoY29udGV4dCwgcmVxdWVzdCwgc2Vz
c2lvbklEKTsKIH0KIAotdm9pZCBNZW1vcnlDYWNoZTo6cmVtb3ZlUmVxdWVzdEZyb21DYWNoZUlt
cGwoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVz
dCkKK3ZvaWQgTWVtb3J5Q2FjaGU6OnJlbW92ZVJlcXVlc3RGcm9tQ2FjaGVJbXBsKFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQqLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIFNlc3Npb25J
RCBzZXNzaW9uSUQpCiB7Ci0gICAgaWYgKENhY2hlZFJlc291cmNlKiByZXNvdXJjZSA9IG1lbW9y
eUNhY2hlKCktPnJlc291cmNlRm9yUmVxdWVzdChyZXF1ZXN0KSkKKyAgICBpZiAoQ2FjaGVkUmVz
b3VyY2UqIHJlc291cmNlID0gbWVtb3J5Q2FjaGUoKS0+cmVzb3VyY2VGb3JSZXF1ZXN0KHJlcXVl
c3QsIHNlc3Npb25JRCkpCiAgICAgICAgIG1lbW9yeUNhY2hlKCktPnJlbW92ZShyZXNvdXJjZSk7
CiB9CiAKLXZvaWQgTWVtb3J5Q2FjaGU6OmNyb3NzVGhyZWFkUmVtb3ZlUmVxdWVzdEZyb21DYWNo
ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBQYXNzT3duUHRyPFdlYkNvcmU6OkNy
b3NzVGhyZWFkUmVzb3VyY2VSZXF1ZXN0RGF0YT4gcmVxdWVzdERhdGEpCit2b2lkIE1lbW9yeUNh
Y2hlOjpyZW1vdmVSZXF1ZXN0RnJvbVNlc3Npb25DYWNoZXMoU2NyaXB0RXhlY3V0aW9uQ29udGV4
dCosIGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCkKK3sKKyAgICBmb3IgKGF1dG8mIHJl
c291cmNlcyA6IG1lbW9yeUNhY2hlKCktPm1fc2Vzc2lvblJlc291cmNlcykgeworICAgICAgICBp
ZiAoQ2FjaGVkUmVzb3VyY2UqIHJlc291cmNlID0gbWVtb3J5Q2FjaGUoKS0+cmVzb3VyY2VGb3JS
ZXF1ZXN0SW1wbChyZXF1ZXN0LCAqcmVzb3VyY2VzLnZhbHVlKSkKKyAgICAgICAgbWVtb3J5Q2Fj
aGUoKS0+cmVtb3ZlKHJlc291cmNlKTsKKyAgICB9Cit9CisKK3ZvaWQgTWVtb3J5Q2FjaGU6OmNy
b3NzVGhyZWFkUmVtb3ZlUmVxdWVzdEZyb21DYWNoZShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBj
b250ZXh0LCBQYXNzT3duUHRyPFdlYkNvcmU6OkNyb3NzVGhyZWFkUmVzb3VyY2VSZXF1ZXN0RGF0
YT4gcmVxdWVzdERhdGEsIFNlc3Npb25JRCBzZXNzaW9uSUQpCiB7CiAgICAgT3duUHRyPFJlc291
cmNlUmVxdWVzdD4gcmVxdWVzdChSZXNvdXJjZVJlcXVlc3Q6OmFkb3B0KHJlcXVlc3REYXRhKSk7
Ci0gICAgTWVtb3J5Q2FjaGU6OnJlbW92ZVJlcXVlc3RGcm9tQ2FjaGVJbXBsKGNvbnRleHQsICpy
ZXF1ZXN0KTsKKyAgICBNZW1vcnlDYWNoZTo6cmVtb3ZlUmVxdWVzdEZyb21DYWNoZUltcGwoY29u
dGV4dCwgKnJlcXVlc3QsIHNlc3Npb25JRCk7CiB9CiAKIHZvaWQgTWVtb3J5Q2FjaGU6OlR5cGVT
dGF0aXN0aWM6OmFkZFJlc291cmNlKENhY2hlZFJlc291cmNlKiBvKQpAQCAtODU1LDM4ICs4OTMs
NDEgQEAgdm9pZCBNZW1vcnlDYWNoZTo6VHlwZVN0YXRpc3RpYzo6YWRkUmVzb3VyY2UoQ2FjaGVk
UmVzb3VyY2UqIG8pCiBNZW1vcnlDYWNoZTo6U3RhdGlzdGljcyBNZW1vcnlDYWNoZTo6Z2V0U3Rh
dGlzdGljcygpCiB7CiAgICAgU3RhdGlzdGljcyBzdGF0czsKLSAgICBDYWNoZWRSZXNvdXJjZU1h
cDo6aXRlcmF0b3IgZSA9IG1fcmVzb3VyY2VzLmVuZCgpOwotICAgIGZvciAoQ2FjaGVkUmVzb3Vy
Y2VNYXA6Oml0ZXJhdG9yIGkgPSBtX3Jlc291cmNlcy5iZWdpbigpOyBpICE9IGU7ICsraSkgewor
CisgICAgZm9yIChhdXRvICZyZXNvdXJjZXMgOiBtX3Nlc3Npb25SZXNvdXJjZXMpIHsKKyAgICAg
ICAgQ2FjaGVkUmVzb3VyY2VNYXA6Oml0ZXJhdG9yIGUgPSByZXNvdXJjZXMudmFsdWUtPmVuZCgp
OworICAgICAgICBmb3IgKENhY2hlZFJlc291cmNlTWFwOjppdGVyYXRvciBpID0gcmVzb3VyY2Vz
LnZhbHVlLT5iZWdpbigpOyBpICE9IGU7ICsraSkgewogI2lmIEVOQUJMRShDQUNIRV9QQVJUSVRJ
T05JTkcpCi0gICAgICAgIGZvciAoQ2FjaGVkUmVzb3VyY2VJdGVtOjppdGVyYXRvciBpdGVtSXRl
cmF0b3IgPSBpLT52YWx1ZS0+YmVnaW4oKTsgaXRlbUl0ZXJhdG9yICE9IGktPnZhbHVlLT5lbmQo
KTsgKytpdGVtSXRlcmF0b3IpIHsKLSAgICAgICAgICAgIENhY2hlZFJlc291cmNlKiByZXNvdXJj
ZSA9IGl0ZW1JdGVyYXRvci0+dmFsdWU7CisgICAgICAgICAgICBmb3IgKENhY2hlZFJlc291cmNl
SXRlbTo6aXRlcmF0b3IgaXRlbUl0ZXJhdG9yID0gaS0+dmFsdWUtPmJlZ2luKCk7IGl0ZW1JdGVy
YXRvciAhPSBpLT52YWx1ZS0+ZW5kKCk7ICsraXRlbUl0ZXJhdG9yKSB7CisgICAgICAgICAgICAg
ICAgQ2FjaGVkUmVzb3VyY2UqIHJlc291cmNlID0gaXRlbUl0ZXJhdG9yLT52YWx1ZTsKICNlbHNl
Ci0gICAgICAgICAgICBDYWNoZWRSZXNvdXJjZSogcmVzb3VyY2UgPSBpLT52YWx1ZTsKKyAgICAg
ICAgICAgICAgICBDYWNoZWRSZXNvdXJjZSogcmVzb3VyY2UgPSBpLT52YWx1ZTsKICNlbmRpZgot
ICAgICAgICAgICAgc3dpdGNoIChyZXNvdXJjZS0+dHlwZSgpKSB7Ci0gICAgICAgICAgICBjYXNl
IENhY2hlZFJlc291cmNlOjpJbWFnZVJlc291cmNlOgotICAgICAgICAgICAgICAgIHN0YXRzLmlt
YWdlcy5hZGRSZXNvdXJjZShyZXNvdXJjZSk7Ci0gICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAg
ICAgICAgICBjYXNlIENhY2hlZFJlc291cmNlOjpDU1NTdHlsZVNoZWV0OgotICAgICAgICAgICAg
ICAgIHN0YXRzLmNzc1N0eWxlU2hlZXRzLmFkZFJlc291cmNlKHJlc291cmNlKTsKLSAgICAgICAg
ICAgICAgICBicmVhazsKLSAgICAgICAgICAgIGNhc2UgQ2FjaGVkUmVzb3VyY2U6OlNjcmlwdDoK
LSAgICAgICAgICAgICAgICBzdGF0cy5zY3JpcHRzLmFkZFJlc291cmNlKHJlc291cmNlKTsKLSAg
ICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICBzd2l0Y2ggKHJlc291cmNlLT50
eXBlKCkpIHsKKyAgICAgICAgICAgICAgICBjYXNlIENhY2hlZFJlc291cmNlOjpJbWFnZVJlc291
cmNlOgorICAgICAgICAgICAgICAgICAgICBzdGF0cy5pbWFnZXMuYWRkUmVzb3VyY2UocmVzb3Vy
Y2UpOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICBjYXNlIENh
Y2hlZFJlc291cmNlOjpDU1NTdHlsZVNoZWV0OgorICAgICAgICAgICAgICAgICAgICBzdGF0cy5j
c3NTdHlsZVNoZWV0cy5hZGRSZXNvdXJjZShyZXNvdXJjZSk7CisgICAgICAgICAgICAgICAgICAg
IGJyZWFrOworICAgICAgICAgICAgICAgIGNhc2UgQ2FjaGVkUmVzb3VyY2U6OlNjcmlwdDoKKyAg
ICAgICAgICAgICAgICAgICAgc3RhdHMuc2NyaXB0cy5hZGRSZXNvdXJjZShyZXNvdXJjZSk7Cisg
ICAgICAgICAgICAgICAgICAgIGJyZWFrOwogI2lmIEVOQUJMRShYU0xUKQotICAgICAgICAgICAg
Y2FzZSBDYWNoZWRSZXNvdXJjZTo6WFNMU3R5bGVTaGVldDoKLSAgICAgICAgICAgICAgICBzdGF0
cy54c2xTdHlsZVNoZWV0cy5hZGRSZXNvdXJjZShyZXNvdXJjZSk7Ci0gICAgICAgICAgICAgICAg
YnJlYWs7CisgICAgICAgICAgICAgICAgY2FzZSBDYWNoZWRSZXNvdXJjZTo6WFNMU3R5bGVTaGVl
dDoKKyAgICAgICAgICAgICAgICAgICAgc3RhdHMueHNsU3R5bGVTaGVldHMuYWRkUmVzb3VyY2Uo
cmVzb3VyY2UpOworICAgICAgICAgICAgICAgICAgICBicmVhazsKICNlbmRpZgotICAgICAgICAg
ICAgY2FzZSBDYWNoZWRSZXNvdXJjZTo6Rm9udFJlc291cmNlOgotICAgICAgICAgICAgICAgIHN0
YXRzLmZvbnRzLmFkZFJlc291cmNlKHJlc291cmNlKTsKLSAgICAgICAgICAgICAgICBicmVhazsK
LSAgICAgICAgICAgIGRlZmF1bHQ6Ci0gICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAg
ICB9CisgICAgICAgICAgICAgICAgY2FzZSBDYWNoZWRSZXNvdXJjZTo6Rm9udFJlc291cmNlOgor
ICAgICAgICAgICAgICAgICAgICBzdGF0cy5mb250cy5hZGRSZXNvdXJjZShyZXNvdXJjZSk7Cisg
ICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIGRlZmF1bHQ6CisgICAg
ICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KICNpZiBFTkFCTEUoQ0FD
SEVfUEFSVElUSU9OSU5HKQotICAgICAgICB9CisgICAgICAgICAgICB9CiAjZW5kaWYKKyAgICAg
ICAgfQogICAgIH0KICAgICByZXR1cm4gc3RhdHM7CiB9CkBAIC04OTgsOCArOTM5LDExIEBAIHZv
aWQgTWVtb3J5Q2FjaGU6OnNldERpc2FibGVkKGJvb2wgZGlzYWJsZWQpCiAgICAgICAgIHJldHVy
bjsKIAogICAgIGZvciAoOzspIHsKLSAgICAgICAgQ2FjaGVkUmVzb3VyY2VNYXA6Oml0ZXJhdG9y
IG91dGVySXRlcmF0b3IgPSBtX3Jlc291cmNlcy5iZWdpbigpOwotICAgICAgICBpZiAob3V0ZXJJ
dGVyYXRvciA9PSBtX3Jlc291cmNlcy5lbmQoKSkKKyAgICAgICAgU2Vzc2lvbkNhY2hlZFJlc291
cmNlTWFwOjppdGVyYXRvciBzZXNzaW9uSXRlcmF0b3IgPSBtX3Nlc3Npb25SZXNvdXJjZXMuYmVn
aW4oKTsKKyAgICAgICAgaWYgKHNlc3Npb25JdGVyYXRvciA9PSBtX3Nlc3Npb25SZXNvdXJjZXMu
ZW5kKCkpCisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgQ2FjaGVkUmVzb3VyY2VNYXA6Oml0
ZXJhdG9yIG91dGVySXRlcmF0b3IgPSBzZXNzaW9uSXRlcmF0b3ItPnZhbHVlLT5iZWdpbigpOwor
ICAgICAgICBpZiAob3V0ZXJJdGVyYXRvciA9PSBzZXNzaW9uSXRlcmF0b3ItPnZhbHVlLT5lbmQo
KSkKICAgICAgICAgICAgIGJyZWFrOwogI2lmIEVOQUJMRShDQUNIRV9QQVJUSVRJT05JTkcpCiAg
ICAgICAgIENhY2hlZFJlc291cmNlSXRlbTo6aXRlcmF0b3IgaW5uZXJJdGVyYXRvciA9IG91dGVy
SXRlcmF0b3ItPnZhbHVlLT5iZWdpbigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL2NhY2hlL01lbW9yeUNhY2hlLmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvTWVt
b3J5Q2FjaGUuaAppbmRleCBjMDIzYTk3Li5iYWJiNzdjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvY2FjaGUvTWVtb3J5Q2FjaGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvY2FjaGUvTWVtb3J5Q2FjaGUuaApAQCAtMjcsNiArMjcsNyBAQAogCiAjaW5jbHVkZSAiTmF0
aXZlSW1hZ2VQdHIuaCIKICNpbmNsdWRlICJTZWN1cml0eU9yaWdpbkhhc2guaCIKKyNpbmNsdWRl
ICJTZXNzaW9uSURIYXNoLmgiCiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KICNpbmNsdWRlIDx3
dGYvSGFzaFNldC5oPgogI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgpAQCAtODcsNiArODgs
NyBAQCBwdWJsaWM6CiAjZWxzZQogICAgIHR5cGVkZWYgSGFzaE1hcDxTdHJpbmcsIENhY2hlZFJl
c291cmNlKj4gQ2FjaGVkUmVzb3VyY2VNYXA7CiAjZW5kaWYKKyAgICB0eXBlZGVmIEhhc2hNYXA8
U2Vzc2lvbklELCBzdGQ6OnVuaXF1ZV9wdHI8Q2FjaGVkUmVzb3VyY2VNYXA+PiBTZXNzaW9uQ2Fj
aGVkUmVzb3VyY2VNYXA7CiAKICAgICBzdHJ1Y3QgTFJVTGlzdCB7CiAgICAgICAgIENhY2hlZFJl
c291cmNlKiBtX2hlYWQ7CkBAIC0xMTksOSArMTIxLDEwIEBAIHB1YmxpYzoKICAgICB9OwogCiAg
ICAgQ2FjaGVkUmVzb3VyY2UqIHJlc291cmNlRm9yVVJMKGNvbnN0IFVSTCYpOwotICAgIENhY2hl
ZFJlc291cmNlKiByZXNvdXJjZUZvclJlcXVlc3QoY29uc3QgUmVzb3VyY2VSZXF1ZXN0Jik7Ci0g
ICAgCi0gICAgYm9vbCBhZGQoQ2FjaGVkUmVzb3VyY2UqIHJlc291cmNlKTsKKyAgICBDYWNoZWRS
ZXNvdXJjZSogcmVzb3VyY2VGb3JVUkwoY29uc3QgVVJMJiwgU2Vzc2lvbklEKTsKKyAgICBDYWNo
ZWRSZXNvdXJjZSogcmVzb3VyY2VGb3JSZXF1ZXN0KGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIFNl
c3Npb25JRCk7CisKKyAgICBib29sIGFkZChDYWNoZWRSZXNvdXJjZSopOwogICAgIHZvaWQgcmVt
b3ZlKENhY2hlZFJlc291cmNlKiByZXNvdXJjZSkgeyBldmljdChyZXNvdXJjZSk7IH0KIAogICAg
IHN0YXRpYyBVUkwgcmVtb3ZlRnJhZ21lbnRJZGVudGlmaWVySWZOZWVkZWQoY29uc3QgVVJMJiBv
cmlnaW5hbFVSTCk7CkBAIC0xNzAsOCArMTczLDkgQEAgcHVibGljOgogICAgIHZvaWQgZmx1c2hD
YWNoZWRJbWFnZXNUb0Rpc2soKTsgLy8gRmx1c2ggZW5jb2RlZCBkYXRhIGZyb20gcmVzb3VyY2Vz
IHN0aWxsIHJlZmVyZW5jZWQgYnkgd2ViIHBhZ2VzLgogI2VuZGlmCiAKLSAgICBzdGF0aWMgdm9p
ZCByZW1vdmVVcmxGcm9tQ2FjaGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIGNvbnN0IFN0cmlu
ZyYgdXJsU3RyaW5nKTsKLSAgICBzdGF0aWMgdm9pZCByZW1vdmVSZXF1ZXN0RnJvbUNhY2hlKFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmKTsKKyAgICBzdGF0
aWMgdm9pZCByZW1vdmVVcmxGcm9tQ2FjaGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIGNvbnN0
IFN0cmluZyYgdXJsU3RyaW5nLCBTZXNzaW9uSUQpOworICAgIHN0YXRpYyB2b2lkIHJlbW92ZVJl
cXVlc3RGcm9tQ2FjaGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIGNvbnN0IFJlc291cmNlUmVx
dWVzdCYsIFNlc3Npb25JRCk7CisgICAgc3RhdGljIHZvaWQgcmVtb3ZlUmVxdWVzdEZyb21TZXNz
aW9uQ2FjaGVzKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBjb25zdCBSZXNvdXJjZVJlcXVlc3Qm
KTsKIAogICAgIC8vIEZ1bmN0aW9uIHRvIGNvbGxlY3QgY2FjaGUgc3RhdGlzdGljcyBmb3IgdGhl
IGNhY2hlcyB3aW5kb3cgaW4gdGhlIFNhZmFyaSBEZWJ1ZyBtZW51LgogICAgIFN0YXRpc3RpY3Mg
Z2V0U3RhdGlzdGljcygpOwpAQCAtMjIxLDggKzIyNSwxMSBAQCBwcml2YXRlOgogICAgIGJvb2wg
bWFrZVJlc291cmNlUHVyZ2VhYmxlKENhY2hlZFJlc291cmNlKik7CiAgICAgdm9pZCBldmljdChD
YWNoZWRSZXNvdXJjZSopOwogCi0gICAgc3RhdGljIHZvaWQgcmVtb3ZlUmVxdWVzdEZyb21DYWNo
ZUltcGwoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIGNvbnN0IFJlc291cmNlUmVxdWVzdCYpOwot
ICAgIHN0YXRpYyB2b2lkIGNyb3NzVGhyZWFkUmVtb3ZlUmVxdWVzdEZyb21DYWNoZShTY3JpcHRF
eGVjdXRpb25Db250ZXh0KiwgUGFzc093blB0cjxDcm9zc1RocmVhZFJlc291cmNlUmVxdWVzdERh
dGE+KTsKKyAgICBDYWNoZWRSZXNvdXJjZSogcmVzb3VyY2VGb3JSZXF1ZXN0SW1wbChjb25zdCBS
ZXNvdXJjZVJlcXVlc3QmLCBDYWNoZWRSZXNvdXJjZU1hcCYpOworICAgIHN0YXRpYyB2b2lkIHJl
bW92ZVJlcXVlc3RGcm9tQ2FjaGVJbXBsKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBjb25zdCBS
ZXNvdXJjZVJlcXVlc3QmLCBTZXNzaW9uSUQpOworICAgIHN0YXRpYyB2b2lkIGNyb3NzVGhyZWFk
UmVtb3ZlUmVxdWVzdEZyb21DYWNoZShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgUGFzc093blB0
cjxDcm9zc1RocmVhZFJlc291cmNlUmVxdWVzdERhdGE+LCBTZXNzaW9uSUQpOworCisgICAgQ2Fj
aGVkUmVzb3VyY2VNYXAmIGdldFNlc3Npb25NYXAoU2Vzc2lvbklEKTsKIAogICAgIGJvb2wgbV9k
aXNhYmxlZDsgIC8vIFdoZXRoZXIgb3Igbm90IHRoZSBjYWNoZSBpcyBlbmFibGVkLgogICAgIGJv
b2wgbV9wcnVuZUVuYWJsZWQ7CkBAIC0yNDYsNyArMjUzLDcgQEAgcHJpdmF0ZToKICAgICAKICAg
ICAvLyBBIFVSTC1iYXNlZCBtYXAgb2YgYWxsIHJlc291cmNlcyB0aGF0IGFyZSBpbiB0aGUgY2Fj
aGUgKGluY2x1ZGluZyB0aGUgZnJlc2hlc3QgdmVyc2lvbiBvZiBvYmplY3RzIHRoYXQgYXJlIGN1
cnJlbnRseSBiZWluZyAKICAgICAvLyByZWZlcmVuY2VkIGJ5IGEgV2ViIHBhZ2UpLgotICAgIENh
Y2hlZFJlc291cmNlTWFwIG1fcmVzb3VyY2VzOworICAgIFNlc3Npb25DYWNoZWRSZXNvdXJjZU1h
cCBtX3Nlc3Npb25SZXNvdXJjZXM7CiB9OwogCiBpbmxpbmUgYm9vbCBNZW1vcnlDYWNoZTo6c2hv
dWxkTWFrZVJlc291cmNlUHVyZ2VhYmxlT25FdmljdGlvbigpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9Dcm9zc1RocmVhZENvcGllci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9Dcm9zc1RocmVhZENvcGllci5jcHAKaW5kZXggNTdkMDRlMS4uMWIxYWMxMyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vQ3Jvc3NUaHJlYWRDb3BpZXIuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0Nyb3NzVGhyZWFkQ29waWVyLmNwcApAQCAtMzcs
NiArMzcsNyBAQAogI2luY2x1ZGUgIlJlc291cmNlUmVxdWVzdC5oIgogI2luY2x1ZGUgIlJlc291
cmNlUmVzcG9uc2UuaCIKICNpbmNsdWRlICJTZXJpYWxpemVkU2NyaXB0VmFsdWUuaCIKKyNpbmNs
dWRlICJTZXNzaW9uSUQuaCIKICNpbmNsdWRlIDx3dGYvQXNzZXJ0aW9ucy5oPgogI2luY2x1ZGUg
PHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCkBAIC03NCw2ICs3NSwxMSBAQCBDcm9zc1RocmVhZENv
cGllckJhc2U8ZmFsc2UsIGZhbHNlLCBSZXNvdXJjZVJlc3BvbnNlPjo6VHlwZSBDcm9zc1RocmVh
ZENvcGllckJhcwogICAgIHJldHVybiByZXNwb25zZS5jb3B5RGF0YSgpOwogfQogCitDcm9zc1Ro
cmVhZENvcGllckJhc2U8ZmFsc2UsIGZhbHNlLCBTZXNzaW9uSUQ+OjpUeXBlIENyb3NzVGhyZWFk
Q29waWVyQmFzZTxmYWxzZSwgZmFsc2UsIFNlc3Npb25JRD46OmNvcHkoY29uc3QgU2Vzc2lvbklE
JiBzZXNzaW9uSUQpCit7CisgICAgcmV0dXJuIHNlc3Npb25JRDsKK30KKwogI2lmIEVOQUJMRShJ
TkRFWEVEX0RBVEFCQVNFKQogCiBJbmRleGVkREI6OlRyYW5zYWN0aW9uTW9kZSBDcm9zc1RocmVh
ZENvcGllckJhc2U8ZmFsc2UsIGZhbHNlLCBJbmRleGVkREI6OlRyYW5zYWN0aW9uTW9kZT46OmNv
cHkoY29uc3QgSW5kZXhlZERCOjpUcmFuc2FjdGlvbk1vZGUmIG1vZGUpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Dcm9zc1RocmVhZENvcGllci5oIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vQ3Jvc3NUaHJlYWRDb3BpZXIuaAppbmRleCBjYWYyNzlmLi4zOThlODRlIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Dcm9zc1RocmVhZENvcGllci5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0Nyb3NzVGhyZWFkQ29waWVyLmgKQEAgLTQ2LDYg
KzQ2LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIGNsYXNzIFJlc291cmNlRXJyb3I7CiAg
ICAgY2xhc3MgUmVzb3VyY2VSZXF1ZXN0OwogICAgIGNsYXNzIFJlc291cmNlUmVzcG9uc2U7Cisg
ICAgY2xhc3MgU2Vzc2lvbklEOwogICAgIHN0cnVjdCBDcm9zc1RocmVhZFJlc291cmNlUmVzcG9u
c2VEYXRhOwogICAgIHN0cnVjdCBDcm9zc1RocmVhZFJlc291cmNlUmVxdWVzdERhdGE7CiAgICAg
c3RydWN0IFRocmVhZGFibGVMb2FkZXJPcHRpb25zOwpAQCAtMTQ1LDYgKzE0NiwxMSBAQCBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIHN0YXRpYyBUeXBlIGNvcHkoY29uc3QgUmVzb3VyY2VS
ZXNwb25zZSYpOwogICAgIH07CiAKKyAgICB0ZW1wbGF0ZTw+IHN0cnVjdCBDcm9zc1RocmVhZENv
cGllckJhc2U8ZmFsc2UsIGZhbHNlLCBTZXNzaW9uSUQ+IHsKKyAgICAgICAgdHlwZWRlZiBTZXNz
aW9uSUQgVHlwZTsKKyAgICAgICAgc3RhdGljIFR5cGUgY29weShjb25zdCBTZXNzaW9uSUQmKTsK
KyAgICB9OworCiAjaWYgRU5BQkxFKElOREVYRURfREFUQUJBU0UpCiAgICAgbmFtZXNwYWNlIElu
ZGV4ZWREQiB7CiAgICAgICAgIGVudW0gY2xhc3MgVHJhbnNhY3Rpb25Nb2RlOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9SZXNvdXJjZVJlcXVlc3QuaCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvUmVzb3VyY2VSZXF1ZXN0LmgKaW5k
ZXggNDc2MWFkZS4uNWJhNGMzNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bmV0d29yay9jZi9SZXNvdXJjZVJlcXVlc3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9uZXR3b3JrL2NmL1Jlc291cmNlUmVxdWVzdC5oCkBAIC01Nyw3ICs1Nyw3IEBAIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKICAgICAgICAgewogICAgICAgICB9CiAKLSAgICAgICAgUmVzb3VyY2VSZXF1
ZXN0KGNvbnN0IFVSTCYgdXJsLCBjb25zdCBTdHJpbmcmIHJlZmVycmVyLCBSZXNvdXJjZVJlcXVl
c3RDYWNoZVBvbGljeSBwb2xpY3kgPSBVc2VQcm90b2NvbENhY2hlUG9saWN5KSAKKyAgICAgICAg
UmVzb3VyY2VSZXF1ZXN0KGNvbnN0IFVSTCYgdXJsLCBjb25zdCBTdHJpbmcmIHJlZmVycmVyLCBS
ZXNvdXJjZVJlcXVlc3RDYWNoZVBvbGljeSBwb2xpY3kgPSBVc2VQcm90b2NvbENhY2hlUG9saWN5
KQogICAgICAgICAgICAgOiBSZXNvdXJjZVJlcXVlc3RCYXNlKHVybCwgcG9saWN5KQogI2lmIFBM
QVRGT1JNKElPUykKICAgICAgICAgICAgICwgbV9tYWluUmVzb3VyY2VSZXF1ZXN0KGZhbHNlKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclNuYXBzaG90dGVkUGx1
Z0luLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTbmFwc2hvdHRlZFBsdWdJ
bi5jcHAKaW5kZXggYTE2NGY2ZC4uNzRjMzlhMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlclNuYXBzaG90dGVkUGx1Z0luLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyU25hcHNob3R0ZWRQbHVnSW4uY3BwCkBAIC0zMSw2ICszMSw3IEBA
CiAjaW5jbHVkZSAiQ2hyb21lQ2xpZW50LmgiCiAjaW5jbHVkZSAiQ3Vyc29yLmgiCiAjaW5jbHVk
ZSAiRmlsdGVyLmgiCisjaW5jbHVkZSAiRnJhbWUuaCIKICNpbmNsdWRlICJGcmFtZUxvYWRlckNs
aWVudC5oIgogI2luY2x1ZGUgIkZyYW1lVmlldy5oIgogI2luY2x1ZGUgIkdyYWRpZW50LmgiCkBA
IC04NSw3ICs4Niw3IEBAIHZvaWQgUmVuZGVyU25hcHNob3R0ZWRQbHVnSW46OnVwZGF0ZVNuYXBz
aG90KFBhc3NSZWZQdHI8SW1hZ2U+IGltYWdlKQogICAgIGlmICghaW1hZ2UpCiAgICAgICAgIHJl
dHVybjsKIAotICAgIG1fc25hcHNob3RSZXNvdXJjZS0+c2V0Q2FjaGVkSW1hZ2UobmV3IENhY2hl
ZEltYWdlKGltYWdlLmdldCgpKSk7CisgICAgbV9zbmFwc2hvdFJlc291cmNlLT5zZXRDYWNoZWRJ
bWFnZShuZXcgQ2FjaGVkSW1hZ2UoaW1hZ2UuZ2V0KCksIHZpZXcoKS5mcmFtZVZpZXcoKS5mcmFt
ZSgpLnBhZ2UoKS0+c2Vzc2lvbklEKCkpKTsKICAgICByZXBhaW50KCk7CiB9CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAppbmRleCAyYWYwYTIyLi5iN2FhNDM0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCkBAIC0zNTYsOSArMzU2LDkgQEAgYm9vbCBJbnRlcm5h
bHM6OmlzUHJlbG9hZGVkKGNvbnN0IFN0cmluZyYgdXJsKQogCiBib29sIEludGVybmFsczo6aXNM
b2FkaW5nRnJvbU1lbW9yeUNhY2hlKGNvbnN0IFN0cmluZyYgdXJsKQogewotICAgIGlmICghY29u
dGV4dERvY3VtZW50KCkpCisgICAgaWYgKCFjb250ZXh0RG9jdW1lbnQoKSB8fCAhY29udGV4dERv
Y3VtZW50KCktPnBhZ2UoKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIENhY2hlZFJlc291
cmNlKiByZXNvdXJjZSA9IG1lbW9yeUNhY2hlKCktPnJlc291cmNlRm9yVVJMKGNvbnRleHREb2N1
bWVudCgpLT5jb21wbGV0ZVVSTCh1cmwpKTsKKyAgICBDYWNoZWRSZXNvdXJjZSogcmVzb3VyY2Ug
PSBtZW1vcnlDYWNoZSgpLT5yZXNvdXJjZUZvclVSTChjb250ZXh0RG9jdW1lbnQoKS0+Y29tcGxl
dGVVUkwodXJsKSwgY29udGV4dERvY3VtZW50KCktPnBhZ2UoKS0+c2Vzc2lvbklEKCkpOwogICAg
IHJldHVybiByZXNvdXJjZSAmJiByZXNvdXJjZS0+c3RhdHVzKCkgPT0gQ2FjaGVkUmVzb3VyY2U6
OkNhY2hlZDsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3Vy
Y2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCBlODQxZGZlLi44YjdiYzg4IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAt
MSwzICsxLDEyIEBACisyMDE0LTAyLTI3ICBNYXJ0aW4gSG9jayAgPG1ob2NrQGFwcGxlLmNvbT4K
KworICAgICAgICBBZGQgc3VwcG9ydCBmb3Igc2Vzc2lvbnMgdG8gTWVtb3J5Q2FjaGUuCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjc3OTQKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYktpdC52Y3hw
cm9qL1dlYktpdEV4cG9ydEdlbmVyYXRvci9XZWJLaXRFeHBvcnRzLmRlZi5pbjoKKwogMjAxNC0w
Mi0yNiAgTWljaGFlbCBTYWJvZmYgIDxtc2Fib2ZmQGFwcGxlLmNvbT4KIAogICAgICAgICBBdXRv
IGdlbmVyYXRlIGJ5dGVjb2RlIGluZm9ybWF0aW9uIGZvciBieXRlY29kZSBwYXJzZXIgYW5kIExM
SW50CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC52Y3hwcm9qL1dlYktpdEV4cG9y
dEdlbmVyYXRvci9XZWJLaXRFeHBvcnRzLmRlZi5pbiBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0LnZj
eHByb2ovV2ViS2l0RXhwb3J0R2VuZXJhdG9yL1dlYktpdEV4cG9ydHMuZGVmLmluCmluZGV4IDAy
ZjkzNzYuLmZlMTYyY2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0LnZjeHByb2ov
V2ViS2l0RXhwb3J0R2VuZXJhdG9yL1dlYktpdEV4cG9ydHMuZGVmLmluCisrKyBiL1NvdXJjZS9X
ZWJLaXQvV2ViS2l0LnZjeHByb2ovV2ViS2l0RXhwb3J0R2VuZXJhdG9yL1dlYktpdEV4cG9ydHMu
ZGVmLmluCkBAIC00NzYsMyArNDc2LDUgQEAgRVhQT1JUUwogICAgICAgICBzeW1ib2xXaXRoUG9p
bnRlcig/PzFET01XaW5kb3dAV2ViQ29yZUBAVUFFQFhaLCA/PzFET01XaW5kb3dAV2ViQ29yZUBA
VUVBQUBYWikKICAgICAgICAgc3ltYm9sV2l0aFBvaW50ZXIoP3Zpc2libGVDb250ZW50UmVjdEBT
Y3JvbGxhYmxlQXJlYUBXZWJDb3JlQEBRQkU/QVZJbnRSZWN0QDJAVzRWaXNpYmxlQ29udGVudFJl
Y3RCZWhhdmlvckAxMkBAWiwgP3Zpc2libGVDb250ZW50UmVjdEBTY3JvbGxhYmxlQXJlYUBXZWJD
b3JlQEBRRUJBP0FWSW50UmVjdEAyQFc0VmlzaWJsZUNvbnRlbnRSZWN0QmVoYXZpb3JAMTJAQFop
CiAgICAgICAgIHN5bWJvbFdpdGhQb2ludGVyKD9kaXNhYmxlQWNjZXNzaWJpbGl0eUBBWE9iamVj
dENhY2hlQFdlYkNvcmVAQFNBWFhaLCA/ZGlzYWJsZUFjY2Vzc2liaWxpdHlAQVhPYmplY3RDYWNo
ZUBXZWJDb3JlQEBTQVhYWikKKyAgICAgICAgc3ltYm9sV2l0aFBvaW50ZXIoP3Nlc3Npb25JREBQ
YWdlQFdlYkNvcmVAQFFCRT9BVlNlc3Npb25JREAyQFhaLCA/c2Vzc2lvbklEQFBhZ2VAV2ViQ29y
ZUBAUUVCQT9BVlNlc3Npb25JREAyQFhaKQorICAgICAgICBzeW1ib2xXaXRoUG9pbnRlcig/cmVz
b3VyY2VGb3JVUkxATWVtb3J5Q2FjaGVAV2ViQ29yZUBAUUFFUEFWQ2FjaGVkUmVzb3VyY2VAMkBB
QlZVUkxAMkBWU2Vzc2lvbklEQDJAQFosID9yZXNvdXJjZUZvclVSTEBNZW1vcnlDYWNoZUBXZWJD
b3JlQEBRRUFBUEFWQ2FjaGVkUmVzb3VyY2VAMkBBQlZVUkxAMkBWU2Vzc2lvbklEQDJAQFopCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFu
Z2VMb2cKaW5kZXggN2I3Njc4Ni4uNjk0MThhYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
Q2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBA
CisyMDE0LTAyLTI2ICBNYXJ0aW4gSG9jayAgPG1ob2NrQGFwcGxlLmNvbT4KKworICAgICAgICBB
ZGQgc3VwcG9ydCBmb3Igc2Vzc2lvbnMgdG8gTWVtb3J5Q2FjaGUuCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjc3OTQKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtS
ZXNvdXJjZUxvYWRlci5oOiBBZGQgc2Vzc2lvbklEKCkgbWV0aG9kLgorICAgICAgICAoV2ViS2l0
OjpOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OnNlc3Npb25JRCk6CisgICAgICAgICogTmV0d29ya1By
b2Nlc3MvbWFjL0Rpc2tDYWNoZU1vbml0b3IuaDogQWRkIHNlc3Npb25JRCBtZW1iZXIuCisgICAg
ICAgICogTmV0d29ya1Byb2Nlc3MvbWFjL0Rpc2tDYWNoZU1vbml0b3IubW06CisgICAgICAgIChX
ZWJLaXQ6OkRpc2tDYWNoZU1vbml0b3I6OkRpc2tDYWNoZU1vbml0b3IpOiBTZW5kIHNlc3Npb25J
RCB0byBOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb246OkRpZENhY2hlUmVzb3VyY2UuCisgICAgICAg
ICogV2ViUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbi5jcHA6IEFkZCBz
ZXNzaW9uSUQgcGFyYW1ldGVyIHRvIGRpZENhY2hlUmVzb3VyY2UgYW5kIHBhc3MgdG8gTWVtb3J5
Q2FjaGUuCisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbjo6ZGlkQ2Fj
aGVSZXNvdXJjZSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNz
Q29ubmVjdGlvbi5oOiBEaXR0by4KKyAgICAgICAgKiBXZWJQcm9jZXNzL05ldHdvcmsvTmV0d29y
a1Byb2Nlc3NDb25uZWN0aW9uLm1lc3NhZ2VzLmluOiBEaXR0by4KKwogMjAxNC0wMi0yNyAgTWFy
dGluIFJvYmluc29uICA8bXJvYmluc29uQGlnYWxpYS5jb20+CiAKICAgICAgICAgRml4IGJ1aWxk
IGFmdGVyIHIxNjQ4MzIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNz
L05ldHdvcmtSZXNvdXJjZUxvYWRlci5oIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3Mv
TmV0d29ya1Jlc291cmNlTG9hZGVyLmgKaW5kZXggNjljNTlmMy4uZWI3NjlmMyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZGVyLmgK
KysrIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZGVy
LmgKQEAgLTcyLDYgKzcyLDcgQEAgcHVibGljOgogCiAgICAgV2ViQ29yZTo6UmVzb3VyY2VMb2Fk
UHJpb3JpdHkgcHJpb3JpdHkoKSB7IHJldHVybiBtX3ByaW9yaXR5OyB9CiAgICAgV2ViQ29yZTo6
UmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0KCkgeyByZXR1cm4gbV9yZXF1ZXN0OyB9CisgICAgV2Vi
Q29yZTo6U2Vzc2lvbklEIHNlc3Npb25JRCgpIGNvbnN0IHsgcmV0dXJuIG1fc2Vzc2lvbklEOyB9
CiAKICAgICBXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZSogaGFuZGxlKCkgY29uc3QgeyByZXR1cm4g
bV9oYW5kbGUuZ2V0KCk7IH0KICAgICB2b2lkIGRpZENvbnZlcnRIYW5kbGVUb0Rvd25sb2FkKCk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9tYWMvRGlza0NhY2hl
TW9uaXRvci5oIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvbWFjL0Rpc2tDYWNoZU1v
bml0b3IuaAppbmRleCAzMTg4M2M1Li4xZDA3MWQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9OZXR3b3JrUHJvY2Vzcy9tYWMvRGlza0NhY2hlTW9uaXRvci5oCisrKyBiL1NvdXJjZS9XZWJL
aXQyL05ldHdvcmtQcm9jZXNzL21hYy9EaXNrQ2FjaGVNb25pdG9yLmgKQEAgLTI4LDYgKzI4LDcg
QEAKIAogI2luY2x1ZGUgIk1lc3NhZ2VTZW5kZXIuaCIKICNpbmNsdWRlIDxXZWJDb3JlL1Jlc291
cmNlUmVxdWVzdC5oPgorI2luY2x1ZGUgPFdlYkNvcmUvU2Vzc2lvbklELmg+CiAjaW5jbHVkZSA8
d3RmL1J1bkxvb3AuaD4KIAogdHlwZWRlZiBjb25zdCBzdHJ1Y3QgX0NGQ2FjaGVkVVJMUmVzcG9u
c2UqIENGQ2FjaGVkVVJMUmVzcG9uc2VSZWY7CkBAIC01Miw2ICs1Myw3IEBAIHByaXZhdGU6CiAK
ICAgICBSZWZQdHI8TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M+IG1fY29ubmVjdGlvblRv
V2ViUHJvY2VzczsKICAgICBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QgbV9yZXNvdXJjZVJlcXVl
c3Q7CisgICAgV2ViQ29yZTo6U2Vzc2lvbklEIG1fc2Vzc2lvbklEOwogfTsKIAogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9tYWMvRGlza0NhY2hlTW9uaXRvci5t
bSBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL21hYy9EaXNrQ2FjaGVNb25pdG9yLm1t
CmluZGV4IDM4MGRhMWYuLmViMGE3MWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL05ldHdv
cmtQcm9jZXNzL21hYy9EaXNrQ2FjaGVNb25pdG9yLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL05l
dHdvcmtQcm9jZXNzL21hYy9EaXNrQ2FjaGVNb25pdG9yLm1tCkBAIC02Miw2ICs2Miw3IEBAIHZv
aWQgRGlza0NhY2hlTW9uaXRvcjo6bW9uaXRvckZpbGVCYWNraW5nU3RvcmVDcmVhdGlvbihDRkNh
Y2hlZFVSTFJlc3BvbnNlUmVmIGNhCiBEaXNrQ2FjaGVNb25pdG9yOjpEaXNrQ2FjaGVNb25pdG9y
KENGQ2FjaGVkVVJMUmVzcG9uc2VSZWYgY2FjaGVkUmVzcG9uc2UsIE5ldHdvcmtSZXNvdXJjZUxv
YWRlciogbG9hZGVyKQogICAgIDogbV9jb25uZWN0aW9uVG9XZWJQcm9jZXNzKGxvYWRlci0+Y29u
bmVjdGlvblRvV2ViUHJvY2VzcygpKQogICAgICwgbV9yZXNvdXJjZVJlcXVlc3QobG9hZGVyLT5y
ZXF1ZXN0KCkpCisgICAgLCBtX3Nlc3Npb25JRChsb2FkZXItPnNlc3Npb25JRCgpKQogewogICAg
IEFTU0VSVChSdW5Mb29wOjppc01haW4oKSk7CiAKQEAgLTg4LDcgKzg5LDcgQEAgRGlza0NhY2hl
TW9uaXRvcjo6RGlza0NhY2hlTW9uaXRvcihDRkNhY2hlZFVSTFJlc3BvbnNlUmVmIGNhY2hlZFJl
c3BvbnNlLCBOZXR3b3IKICAgICAgICAgaWYgKGhhbmRsZS5pc051bGwoKSkKICAgICAgICAgICAg
IHJldHVybjsKIAotICAgICAgICBtb25pdG9yLT5zZW5kKE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vz
c0Nvbm5lY3Rpb246OkRpZENhY2hlUmVzb3VyY2UobW9uaXRvci0+cmVzb3VyY2VSZXF1ZXN0KCks
IGhhbmRsZSkpOworICAgICAgICBtb25pdG9yLT5zZW5kKE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vz
c0Nvbm5lY3Rpb246OkRpZENhY2hlUmVzb3VyY2UobW9uaXRvci0+cmVzb3VyY2VSZXF1ZXN0KCks
IGhhbmRsZSwgbV9zZXNzaW9uSUQpKTsKICAgICB9OwogCiAgICAgX0NGQ2FjaGVkVVJMUmVzcG9u
c2VTZXRCZWNhbWVGaWxlQmFja2VkQ2FsbEJhY2tCbG9jayhjYWNoZWRSZXNwb25zZSwgYmxvY2ss
IGRpc3BhdGNoX2dldF9tYWluX3F1ZXVlKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbi5jcHAgYi9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uLmNwcApp
bmRleCBiMjE2ZTEyLi42MzhiODk3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uLmNwcApAQCAt
MzYsNiArMzYsNyBAQAogI2luY2x1ZGUgPFdlYkNvcmUvQ2FjaGVkUmVzb3VyY2UuaD4KICNpbmNs
dWRlIDxXZWJDb3JlL01lbW9yeUNhY2hlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJjZUJ1
ZmZlci5oPgorI2luY2x1ZGUgPFdlYkNvcmUvU2Vzc2lvbklELmg+CiAKICNpZiBFTkFCTEUoTkVU
V09SS19QUk9DRVNTKQogCkBAIC04MSw5ICs4Miw5IEBAIHZvaWQgTmV0d29ya1Byb2Nlc3NDb25u
ZWN0aW9uOjpkaWRSZWNlaXZlSW52YWxpZE1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uKiwgSVBDOjpT
CiB9CiAKICNpZiBFTkFCTEUoU0hBUkVBQkxFX1JFU09VUkNFKQotdm9pZCBOZXR3b3JrUHJvY2Vz
c0Nvbm5lY3Rpb246OmRpZENhY2hlUmVzb3VyY2UoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1
ZXN0LCBjb25zdCBTaGFyZWFibGVSZXNvdXJjZTo6SGFuZGxlJiBoYW5kbGUpCit2b2lkIE5ldHdv
cmtQcm9jZXNzQ29ubmVjdGlvbjo6ZGlkQ2FjaGVSZXNvdXJjZShjb25zdCBSZXNvdXJjZVJlcXVl
c3QmIHJlcXVlc3QsIGNvbnN0IFNoYXJlYWJsZVJlc291cmNlOjpIYW5kbGUmIGhhbmRsZSwgU2Vz
c2lvbklEIHNlc3Npb25JRCkKIHsKLSAgICBDYWNoZWRSZXNvdXJjZSogcmVzb3VyY2UgPSBtZW1v
cnlDYWNoZSgpLT5yZXNvdXJjZUZvclJlcXVlc3QocmVxdWVzdCk7CisgICAgQ2FjaGVkUmVzb3Vy
Y2UqIHJlc291cmNlID0gbWVtb3J5Q2FjaGUoKS0+cmVzb3VyY2VGb3JSZXF1ZXN0KHJlcXVlc3Qs
IHNlc3Npb25JRCk7CiAgICAgaWYgKCFyZXNvdXJjZSkKICAgICAgICAgcmV0dXJuOwogICAgIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9j
ZXNzQ29ubmVjdGlvbi5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9OZXR3b3JrL05ldHdv
cmtQcm9jZXNzQ29ubmVjdGlvbi5oCmluZGV4IDg0MmY2ZWIuLjkzNmQ2NmUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rp
b24uaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nl
c3NDb25uZWN0aW9uLmgKQEAgLTQxLDYgKzQxLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogY2xh
c3MgUmVzb3VyY2VFcnJvcjsKIGNsYXNzIFJlc291cmNlUmVxdWVzdDsKIGNsYXNzIFJlc291cmNl
UmVzcG9uc2U7CitjbGFzcyBTZXNzaW9uSUQ7CiB9CiAKIG5hbWVzcGFjZSBXZWJLaXQgewpAQCAt
NzAsNyArNzEsNyBAQCBwcml2YXRlOgogCiAjaWYgRU5BQkxFKFNIQVJFQUJMRV9SRVNPVVJDRSkK
ICAgICAvLyBNZXNzYWdlIGhhbmRsZXJzLgotICAgIHZvaWQgZGlkQ2FjaGVSZXNvdXJjZShjb25z
dCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBTaGFyZWFibGVSZXNvdXJjZTo6SGFu
ZGxlJik7CisgICAgdm9pZCBkaWRDYWNoZVJlc291cmNlKGNvbnN0IFdlYkNvcmU6OlJlc291cmNl
UmVxdWVzdCYsIGNvbnN0IFNoYXJlYWJsZVJlc291cmNlOjpIYW5kbGUmLCBXZWJDb3JlOjpTZXNz
aW9uSUQpOwogI2VuZGlmCiAKICAgICAvLyBUaGUgY29ubmVjdGlvbiBmcm9tIHRoZSB3ZWIgcHJv
Y2VzcyB0byB0aGUgbmV0d29yayBwcm9jZXNzLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbi5tZXNzYWdlcy5pbiBi
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rp
b24ubWVzc2FnZXMuaW4KaW5kZXggZTY5ODlkOS4uYzFmNzhjNCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbi5tZXNz
YWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05ldHdvcmsvTmV0d29ya1By
b2Nlc3NDb25uZWN0aW9uLm1lc3NhZ2VzLmluCkBAIC0yNSw3ICsyNSw3IEBACiBtZXNzYWdlcyAt
PiBOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24gTGVnYWN5UmVjZWl2ZXIgewogCiAjaWYgRU5BQkxF
KFNIQVJFQUJMRV9SRVNPVVJDRSkKLSAgICBEaWRDYWNoZVJlc291cmNlKFdlYkNvcmU6OlJlc291
cmNlUmVxdWVzdCByZXF1ZXN0LCBXZWJLaXQ6OlNoYXJlYWJsZVJlc291cmNlOjpIYW5kbGUgcmVz
b3VyY2UpCisgICAgRGlkQ2FjaGVSZXNvdXJjZShXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QgcmVx
dWVzdCwgV2ViS2l0OjpTaGFyZWFibGVSZXNvdXJjZTo6SGFuZGxlIHJlc291cmNlLCBXZWJDb3Jl
OjpTZXNzaW9uSUQgc2Vzc2lvbklEKQogI2VuZGlmCiAKIH0K
</data>
<flag name="review"
          id="249573"
          type_id="1"
          status="+"
          setter="sam"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>225691</attachid>
            <date>2014-03-03 14:14:56 -0800</date>
            <delta_ts>2014-03-04 13:11:36 -0800</delta_ts>
            <desc>rebase</desc>
            <filename>memcachesession.27.diff</filename>
            <type>text/plain</type>
            <size>67601</size>
            <attacher name="Martin Hock">mhock</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA1MDA1Yzc1Li5hOTQ5Zjc1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsOTQg
QEAKKzIwMTQtMDMtMDMgIE1hcnRpbiBIb2NrICA8bWhvY2tAYXBwbGUuY29tPgorCisgICAgICAg
IEFkZCBzdXBwb3J0IGZvciBzZXNzaW9ucyB0byBNZW1vcnlDYWNoZS4KKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyNzc5NAorCisgICAgICAgIFJldmll
d2VkIGJ5IFNhbSBXZWluaWcuCisKKyAgICAgICAgKiBXZWJDb3JlLmV4cC5pbjoKKyAgICAgICAg
KiBlZGl0aW5nL0RlbGV0ZUJ1dHRvbkNvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
RGVsZXRlQnV0dG9uQ29udHJvbGxlcjo6Y3JlYXRlRGVsZXRpb25VSSk6IEluaXRpYWxpemUgQ2Fj
aGVkSW1hZ2Ugd2l0aCBzZXNzaW9uSUQuCisgICAgICAgICogaHRtbC9ET01VUkwuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6RE9NVVJMOjpyZXZva2VPYmplY3RVUkwpOiBSZW1vdmUgVVJMIGZyb20g
TWVtb3J5Q2FjaGUgZm9yIGFsbCBzZXNzaW9ucy4KKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVj
dG9yUGFnZUFnZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclBhZ2VBZ2VudDo6
Y2FjaGVkUmVzb3VyY2UpOiBQYXNzIHNlc3Npb25JRCB0byBNZW1vcnlDYWNoZS4KKyAgICAgICAg
KiBpbnNwZWN0b3IvSW5zcGVjdG9yUmVzb3VyY2VBZ2VudC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpJbnNwZWN0b3JSZXNvdXJjZUFnZW50OjpyZXBsYXlYSFIpOiBEaXR0by4KKyAgICAgICAgKiBs
b2FkZXIvRG9jdW1lbnRMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6YXJlQWxsTG9hZGVy
c1BhZ2VDYWNoZUFjY2VwdGFibGUpOiBEaXR0by4KKyAgICAgICAgKiBsb2FkZXIvRnJhbWVMb2Fk
ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXI6OnRlbGxDbGllbnRBYm91dFBh
c3RNZW1vcnlDYWNoZUxvYWRzKTogRGl0dG8uCisgICAgICAgICogbG9hZGVyL0ltYWdlTG9hZGVy
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkltYWdlTG9hZGVyOjp1cGRhdGVGcm9tRWxlbWVudCk6
IEluaXRpYWxpemUgQ2FjaGVkSW1hZ2Ugd2l0aCBzZXNzaW9uSUQuCisgICAgICAgICogbG9hZGVy
L2FyY2hpdmUvY2YvTGVnYWN5V2ViQXJjaGl2ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpMZWdh
Y3lXZWJBcmNoaXZlOjpjcmVhdGUpOiBQYXNzIHNlc3Npb25JRCB0byBNZW1vcnlDYWNoZS4KKyAg
ICAgICAgKiBsb2FkZXIvY2FjaGUvQ2FjaGVkQ1NTU3R5bGVTaGVldC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpDYWNoZWRDU1NTdHlsZVNoZWV0OjpDYWNoZWRDU1NTdHlsZVNoZWV0KTogQ29uc3Ry
dWN0b3IgdGFrZXMgc2Vzc2lvbklELgorICAgICAgICAqIGxvYWRlci9jYWNoZS9DYWNoZWRDU1NT
dHlsZVNoZWV0Lmg6CisgICAgICAgICogbG9hZGVyL2NhY2hlL0NhY2hlZEZvbnQuY3BwOiBEaXR0
by4KKyAgICAgICAgKFdlYkNvcmU6OkNhY2hlZEZvbnQ6OkNhY2hlZEZvbnQpOgorICAgICAgICAq
IGxvYWRlci9jYWNoZS9DYWNoZWRGb250Lmg6CisgICAgICAgICogbG9hZGVyL2NhY2hlL0NhY2hl
ZEltYWdlLmNwcDogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRJbWFnZTo6Q2FjaGVk
SW1hZ2UpOgorICAgICAgICAqIGxvYWRlci9jYWNoZS9DYWNoZWRJbWFnZS5oOgorICAgICAgICAq
IGxvYWRlci9jYWNoZS9DYWNoZWRSYXdSZXNvdXJjZS5jcHA6IERpdHRvLgorICAgICAgICAoV2Vi
Q29yZTo6Q2FjaGVkUmF3UmVzb3VyY2U6OkNhY2hlZFJhd1Jlc291cmNlKToKKyAgICAgICAgKiBs
b2FkZXIvY2FjaGUvQ2FjaGVkUmF3UmVzb3VyY2UuaDoKKyAgICAgICAgKiBsb2FkZXIvY2FjaGUv
Q2FjaGVkUmVzb3VyY2UuY3BwOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OkNhY2hlZFJlc291
cmNlOjpDYWNoZWRSZXNvdXJjZSk6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRSZXNvdXJjZTo6
fkNhY2hlZFJlc291cmNlKTogUGFzcyBzZXNzaW9uSUQgdG8gTWVtb3J5Q2FjaGUuCisgICAgICAg
ICogbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlLmg6CisgICAgICAgIChXZWJDb3JlOjpDYWNo
ZWRSZXNvdXJjZTo6c2Vzc2lvbklEKToKKyAgICAgICAgKiBsb2FkZXIvY2FjaGUvQ2FjaGVkUmVz
b3VyY2VMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlUmVzb3VyY2UpOiBDb25z
dHJ1Y3RvcnMgdGFrZSBzZXNzaW9uSUQuCisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRSZXNvdXJj
ZUxvYWRlcjo6c2Vzc2lvbklEKTogUmV0cmlldmUgc2Vzc2lvbklEIGZyb20gcGFnZS4KKyAgICAg
ICAgKFdlYkNvcmU6OkNhY2hlZFJlc291cmNlTG9hZGVyOjpyZXF1ZXN0VXNlckNTU1N0eWxlU2hl
ZXQpOiBQYXNzIHNlc3Npb25JRCB0byBNZW1vcnlDYWNoZS4KKyAgICAgICAgKFdlYkNvcmU6OkNh
Y2hlZFJlc291cmNlTG9hZGVyOjpyZXF1ZXN0UmVzb3VyY2UpOiBJbml0aWFsaXplIENhY2hlZENT
U1N0eWxlU2hlZXQgd2l0aCBzZXNzaW9uSUQuCisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRSZXNv
dXJjZUxvYWRlcjo6cmV2YWxpZGF0ZVJlc291cmNlKTogSW5pdGlhbGl6ZSBjYWNoZWQgcmVzb3Vy
Y2Ugd2l0aCBzZXNzaW9uSUQuCisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRSZXNvdXJjZUxvYWRl
cjo6bG9hZFJlc291cmNlKTogUGFzcyBzZXNzaW9uSUQgdG8gTWVtb3J5Q2FjaGUgYW5kIGluaXRp
YWxpemUgY2FjaGVkIHJlc291cmNlIHdpdGggc2Vzc2lvbklELgorICAgICAgICAqIGxvYWRlci9j
YWNoZS9DYWNoZWRSZXNvdXJjZUxvYWRlci5oOgorICAgICAgICAqIGxvYWRlci9jYWNoZS9DYWNo
ZWRTVkdEb2N1bWVudC5jcHA6IENvbnN0cnVjdG9yIHRha2VzIHNlc3Npb25JRC4KKyAgICAgICAg
KFdlYkNvcmU6OkNhY2hlZFNWR0RvY3VtZW50OjpDYWNoZWRTVkdEb2N1bWVudCk6CisgICAgICAg
ICogbG9hZGVyL2NhY2hlL0NhY2hlZFNWR0RvY3VtZW50Lmg6CisgICAgICAgICogbG9hZGVyL2Nh
Y2hlL0NhY2hlZFNjcmlwdC5jcHA6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkU2Ny
aXB0OjpDYWNoZWRTY3JpcHQpOgorICAgICAgICAqIGxvYWRlci9jYWNoZS9DYWNoZWRTY3JpcHQu
aDoKKyAgICAgICAgKiBsb2FkZXIvY2FjaGUvQ2FjaGVkVGV4dFRyYWNrLmNwcDogRGl0dG8uCisg
ICAgICAgIChXZWJDb3JlOjpDYWNoZWRUZXh0VHJhY2s6OkNhY2hlZFRleHRUcmFjayk6CisgICAg
ICAgICogbG9hZGVyL2NhY2hlL0NhY2hlZFRleHRUcmFjay5oOgorICAgICAgICAqIGxvYWRlci9j
YWNoZS9DYWNoZWRYU0xTdHlsZVNoZWV0LmNwcDogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpD
YWNoZWRYU0xTdHlsZVNoZWV0OjpDYWNoZWRYU0xTdHlsZVNoZWV0KToKKyAgICAgICAgKiBsb2Fk
ZXIvY2FjaGUvQ2FjaGVkWFNMU3R5bGVTaGVldC5oOgorICAgICAgICAqIGxvYWRlci9jYWNoZS9N
ZW1vcnlDYWNoZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZW1vcnlDYWNoZTo6Z2V0U2Vzc2lv
bk1hcCk6IFJldHJpZXZlIENhY2hlZFJlc291cmNlTWFwIGJhc2VkIG9uIHNlc3Npb25JRC4KKyAg
ICAgICAgKFdlYkNvcmU6Ok1lbW9yeUNhY2hlOjphZGQpOiBVc2Ugc2Vzc2lvbklEIGZyb20gQ2Fj
aGVkUmVzb3VyY2UgcGFyYW1ldGVyLgorICAgICAgICAoV2ViQ29yZTo6TWVtb3J5Q2FjaGU6OnJl
dmFsaWRhdGlvblN1Y2NlZWRlZCk6IEFkZCBzZXNzaW9uSUQgcGFyYW1ldGVyLgorICAgICAgICAo
V2ViQ29yZTo6TWVtb3J5Q2FjaGU6OnJlc291cmNlRm9yVVJMKTogRGl0dG8uCisgICAgICAgIChX
ZWJDb3JlOjpNZW1vcnlDYWNoZTo6cmVzb3VyY2VGb3JSZXF1ZXN0KTogRGl0dG8sIGFsc28gbW92
ZSBpbXBsIGludG8gaW1wbCBtZXRob2QuCisgICAgICAgIChXZWJDb3JlOjpNZW1vcnlDYWNoZTo6
cmVzb3VyY2VGb3JSZXF1ZXN0SW1wbCk6IEFkZCBDYWNoZWRSZXNvdXJjZU1hcCBwYXJhbWV0ZXIu
CisgICAgICAgIChXZWJDb3JlOjpNZW1vcnlDYWNoZTo6YWRkSW1hZ2VUb0NhY2hlKTogVXNlIGRl
ZmF1bHQgc2Vzc2lvbklELgorICAgICAgICAoV2ViQ29yZTo6TWVtb3J5Q2FjaGU6OnJlbW92ZUlt
YWdlRnJvbUNhY2hlKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpNZW1vcnlDYWNoZTo6ZXZp
Y3QpOiBVc2Ugc2Vzc2lvbklEIGZyb20gQ2FjaGVkUmVzb3VyY2UgcGFyYW1ldGVyLgorICAgICAg
ICAoV2ViQ29yZTo6TWVtb3J5Q2FjaGU6OnJlbW92ZVJlc291cmNlc1dpdGhPcmlnaW4pOiBJdGVy
YXRlIHRocm91Z2ggYWxsIENhY2hlZFJlc291cmNlTWFwcy4KKyAgICAgICAgKFdlYkNvcmU6Ok1l
bW9yeUNhY2hlOjpnZXRPcmlnaW5zV2l0aENhY2hlKTogRGl0dG8uCisgICAgICAgIChXZWJDb3Jl
OjpNZW1vcnlDYWNoZTo6cmVtb3ZlVXJsRnJvbUNhY2hlKTogQWRkIHNlc3Npb25JRCBwYXJhbWV0
ZXIuCisgICAgICAgIChXZWJDb3JlOjpNZW1vcnlDYWNoZTo6cmVtb3ZlUmVxdWVzdEZyb21DYWNo
ZSk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6TWVtb3J5Q2FjaGU6OnJlbW92ZVJlcXVlc3RG
cm9tQ2FjaGVJbXBsKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpNZW1vcnlDYWNoZTo6cmVt
b3ZlUmVxdWVzdEZyb21TZXNzaW9uQ2FjaGVzKTogSXRlcmF0ZSB0aHJvdWdoIGFsbCBDYWNoZWRS
ZXNvdXJjZU1hcHMuCisgICAgICAgIChXZWJDb3JlOjpNZW1vcnlDYWNoZTo6Y3Jvc3NUaHJlYWRS
ZW1vdmVSZXF1ZXN0RnJvbUNhY2hlKTogQWRkIHNlc3Npb25JRCBwYXJhbWV0ZXIuCisgICAgICAg
IChXZWJDb3JlOjpNZW1vcnlDYWNoZTo6Z2V0U3RhdGlzdGljcyk6IEl0ZXJhdGUgdGhyb3VnaCBh
bGwgQ2FjaGVkUmVzb3VyY2VNYXBzLgorICAgICAgICAoV2ViQ29yZTo6TWVtb3J5Q2FjaGU6OnNl
dERpc2FibGVkKTogRGl0dG8uCisgICAgICAgICogbG9hZGVyL2NhY2hlL01lbW9yeUNhY2hlLmg6
IENyZWF0ZSBhbm90aGVyIGxldmVsIGZvciBjYWNoZS4KKyAgICAgICAgKiBwbGF0Zm9ybS9Dcm9z
c1RocmVhZENvcGllci5jcHA6IEFsbG93IGNvcHlpbmcgU2Vzc2lvbklEcyBhY3Jvc3MgdGhyZWFk
cy4KKyAgICAgICAgKFdlYkNvcmU6OlNlc3Npb25JRD46OmNvcHkpOgorICAgICAgICAqIHBsYXRm
b3JtL0Nyb3NzVGhyZWFkQ29waWVyLmg6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9jZi9S
ZXNvdXJjZVJlcXVlc3QuaDoKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdDo6UmVz
b3VyY2VSZXF1ZXN0KTogUmVtb3ZlIHRyYWlsaW5nIHdoaXRlc3BhY2UuCisgICAgICAgICogcmVu
ZGVyaW5nL1JlbmRlclNuYXBzaG90dGVkUGx1Z0luLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJl
bmRlclNuYXBzaG90dGVkUGx1Z0luOjp1cGRhdGVTbmFwc2hvdCk6IEluaXRpYWxpemUgQ2FjaGVk
SW1hZ2Ugd2l0aCBzZXNzaW9uSUQuCisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6SW50ZXJuYWxzOjppc0xvYWRpbmdGcm9tTWVtb3J5Q2FjaGUpOiBQ
YXNzIHNlc3Npb25JRCB0byBNZW1vcnlDYWNoZS4KKwogMjAxNC0wMy0wMyAgU2ltb24gRnJhc2Vy
ICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4KIAogICAgICAgICBBbGxvdyBvdmVyZmxvdy1zY3Jv
bGwgdG8gYmUgb25lLWZpbmdlciBzY3JvbGxlZCB1bnRpbCB3ZSBob29rIHVwIFVJU2Nyb2xsVmll
d3MKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluIGIvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS5leHAuaW4KaW5kZXggZmQ4MmIxYy4uNDA2OTdiNSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS5leHAuaW4KQEAgLTE2OSw4ICsxNjksOSBAQCBfX1pON1dlYkNvcmUxMU1lbW9yeUNhY2hlMTNn
ZXRTdGF0aXN0aWNzRXYKIF9fWk43V2ViQ29yZTExTWVtb3J5Q2FjaGUxM3NldENhcGFjaXRpZXNF
ampqCiBfX1pON1dlYkNvcmUxMU1lbW9yeUNhY2hlMTRldmljdFJlc291cmNlc0V2CiBfX1pON1dl
YkNvcmUxMU1lbW9yeUNhY2hlMTRyZXNvdXJjZUZvclVSTEVSS05TXzNVUkxFCitfX1pON1dlYkNv
cmUxMU1lbW9yeUNhY2hlMTRyZXNvdXJjZUZvclVSTEVSS05TXzNVUkxFTlNfOVNlc3Npb25JREUK
IF9fWk43V2ViQ29yZTExTWVtb3J5Q2FjaGUxNWFkZEltYWdlVG9DYWNoZUVQN0NHSW1hZ2VSS05T
XzNVUkxFUktOM1dURjZTdHJpbmdFCi1fX1pON1dlYkNvcmUxMU1lbW9yeUNhY2hlMThyZXNvdXJj
ZUZvclJlcXVlc3RFUktOU18xNVJlc291cmNlUmVxdWVzdEUKK19fWk43V2ViQ29yZTExTWVtb3J5
Q2FjaGUxOHJlc291cmNlRm9yUmVxdWVzdEVSS05TXzE1UmVzb3VyY2VSZXF1ZXN0RU5TXzlTZXNz
aW9uSURFCiBfX1pON1dlYkNvcmUxMU1lbW9yeUNhY2hlMTlnZXRPcmlnaW5zV2l0aENhY2hlRVJO
M1dURjdIYXNoU2V0SU5TMV82UmVmUHRySU5TXzE0U2VjdXJpdHlPcmlnaW5FRUVOU18xOFNlY3Vy
aXR5T3JpZ2luSGFzaEVOUzFfMTBIYXNoVHJhaXRzSVM1X0VFRUUKIF9fWk43V2ViQ29yZTExTWVt
b3J5Q2FjaGUyMHJlbW92ZUltYWdlRnJvbUNhY2hlRVJLTlNfM1VSTEVSS04zV1RGNlN0cmluZ0UK
IF9fWk43V2ViQ29yZTExTWVtb3J5Q2FjaGUyNXJlbW92ZVJlc291cmNlc1dpdGhPcmlnaW5FUE5T
XzE0U2VjdXJpdHlPcmlnaW5FCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0Rl
bGV0ZUJ1dHRvbkNvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EZWxldGVC
dXR0b25Db250cm9sbGVyLmNwcAppbmRleCA4MjBiMGFjLi4xNWU2N2U2IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RlbGV0ZUJ1dHRvbkNvbnRyb2xsZXIuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvRGVsZXRlQnV0dG9uQ29udHJvbGxlci5jcHAKQEAgLTI1NCw3
ICsyNTQsNyBAQCB2b2lkIERlbGV0ZUJ1dHRvbkNvbnRyb2xsZXI6OmNyZWF0ZURlbGV0aW9uVUko
KQogICAgIGlmIChidXR0b25JbWFnZS0+aXNOdWxsKCkpCiAgICAgICAgIHJldHVybjsKIAotICAg
IGJ1dHRvbi0+c2V0Q2FjaGVkSW1hZ2UobmV3IENhY2hlZEltYWdlKGJ1dHRvbkltYWdlLmdldCgp
KSk7CisgICAgYnV0dG9uLT5zZXRDYWNoZWRJbWFnZShuZXcgQ2FjaGVkSW1hZ2UoYnV0dG9uSW1h
Z2UuZ2V0KCksIG1fZnJhbWUucGFnZSgpLT5zZXNzaW9uSUQoKSkpOwogCiAgICAgY29udGFpbmVy
LT5hcHBlbmRDaGlsZChidXR0b24uZ2V0KCksIGVjKTsKICAgICBBU1NFUlQoIWVjKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRE9NVVJMLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvRE9NVVJMLmNwcAppbmRleCA0ZTQ0MjU0Li41YjQ5ZGNjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0RPTVVSTC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9ET01VUkwu
Y3BwCkBAIC0xMjQsNyArMTI0LDcgQEAgdm9pZCBET01VUkw6OnJldm9rZU9iamVjdFVSTChTY3Jp
cHRFeGVjdXRpb25Db250ZXh0KiBzY3JpcHRFeGVjdXRpb25Db250ZXh0LCBjb24KICNpZiBFTkFC
TEUoQ0FDSEVfUEFSVElUSU9OSU5HKQogICAgIHJlcXVlc3Quc2V0Q2FjaGVQYXJ0aXRpb24oc2Ny
aXB0RXhlY3V0aW9uQ29udGV4dC0+dG9wT3JpZ2luKCktPmNhY2hlUGFydGl0aW9uKCkpOwogI2Vu
ZGlmCi0gICAgTWVtb3J5Q2FjaGU6OnJlbW92ZVJlcXVlc3RGcm9tQ2FjaGUoc2NyaXB0RXhlY3V0
aW9uQ29udGV4dCwgcmVxdWVzdCk7CisgICAgTWVtb3J5Q2FjaGU6OnJlbW92ZVJlcXVlc3RGcm9t
U2Vzc2lvbkNhY2hlcyhzY3JpcHRFeGVjdXRpb25Db250ZXh0LCByZXF1ZXN0KTsKIAogICAgIHNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQtPnB1YmxpY1VSTE1hbmFnZXIoKS5yZXZva2UodXJsKTsKIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JQYWdlQWdlbnQu
Y3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclBhZ2VBZ2VudC5jcHAKaW5k
ZXggY2ZlZTVkOC4uMzAxMjkwNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L0luc3BlY3RvclBhZ2VBZ2VudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0lu
c3BlY3RvclBhZ2VBZ2VudC5jcHAKQEAgLTI4Miw3ICsyODIsNyBAQCBDYWNoZWRSZXNvdXJjZSog
SW5zcGVjdG9yUGFnZUFnZW50OjpjYWNoZWRSZXNvdXJjZShGcmFtZSogZnJhbWUsIGNvbnN0IFVS
TCYgdXJsKQogI2lmIEVOQUJMRShDQUNIRV9QQVJUSVRJT05JTkcpCiAgICAgICAgIHJlcXVlc3Qu
c2V0Q2FjaGVQYXJ0aXRpb24oZnJhbWUtPmRvY3VtZW50KCktPnRvcE9yaWdpbigpLT5jYWNoZVBh
cnRpdGlvbigpKTsKICNlbmRpZgotICAgICAgICBjYWNoZWRSZXNvdXJjZSA9IG1lbW9yeUNhY2hl
KCktPnJlc291cmNlRm9yUmVxdWVzdChyZXF1ZXN0KTsKKyAgICAgICAgY2FjaGVkUmVzb3VyY2Ug
PSBtZW1vcnlDYWNoZSgpLT5yZXNvdXJjZUZvclJlcXVlc3QocmVxdWVzdCwgZnJhbWUtPnBhZ2Uo
KS0+c2Vzc2lvbklEKCkpOwogICAgIH0KIAogICAgIHJldHVybiBjYWNoZWRSZXNvdXJjZTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JSZXNvdXJjZUFnZW50
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JSZXNvdXJjZUFnZW50LmNw
cAppbmRleCBhNjU0OGI2Li5mN2JlMzNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvSW5zcGVjdG9yUmVzb3VyY2VBZ2VudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL0luc3BlY3RvclJlc291cmNlQWdlbnQuY3BwCkBAIC01OTQsNyArNTk0LDcgQEAgdm9p
ZCBJbnNwZWN0b3JSZXNvdXJjZUFnZW50OjpyZXBsYXlYSFIoRXJyb3JTdHJpbmcqLCBjb25zdCBT
dHJpbmcmIHJlcXVlc3RJZCkKICNpZiBFTkFCTEUoQ0FDSEVfUEFSVElUSU9OSU5HKQogICAgIHJl
cXVlc3Quc2V0Q2FjaGVQYXJ0aXRpb24obV9wYWdlQWdlbnQtPm1haW5GcmFtZSgpLT5kb2N1bWVu
dCgpLT50b3BPcmlnaW4oKS0+Y2FjaGVQYXJ0aXRpb24oKSk7CiAjZW5kaWYKLSAgICBDYWNoZWRS
ZXNvdXJjZSogY2FjaGVkUmVzb3VyY2UgPSBtZW1vcnlDYWNoZSgpLT5yZXNvdXJjZUZvclJlcXVl
c3QocmVxdWVzdCk7CisgICAgQ2FjaGVkUmVzb3VyY2UqIGNhY2hlZFJlc291cmNlID0gbWVtb3J5
Q2FjaGUoKS0+cmVzb3VyY2VGb3JSZXF1ZXN0KHJlcXVlc3QsIG1fcGFnZUFnZW50LT5wYWdlKCkt
PnNlc3Npb25JRCgpKTsKICAgICBpZiAoY2FjaGVkUmVzb3VyY2UpCiAgICAgICAgIG1lbW9yeUNh
Y2hlKCktPnJlbW92ZShjYWNoZWRSZXNvdXJjZSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9Eb2N1bWVudExvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9j
dW1lbnRMb2FkZXIuY3BwCmluZGV4IDQ1NTk1NjMuLjA1OWExMjAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudExvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
bG9hZGVyL0RvY3VtZW50TG9hZGVyLmNwcApAQCAtMTAzLDcgKzEwMywxMCBAQCBzdGF0aWMgYm9v
bCBhcmVBbGxMb2FkZXJzUGFnZUNhY2hlQWNjZXB0YWJsZShjb25zdCBSZXNvdXJjZUxvYWRlck1h
cCYgbG9hZGVycykKICAgICAgICAgaWYgKCFoYW5kbGUpCiAgICAgICAgICAgICByZXR1cm4gZmFs
c2U7CiAKLSAgICAgICAgQ2FjaGVkUmVzb3VyY2UqIGNhY2hlZFJlc291cmNlID0gbWVtb3J5Q2Fj
aGUoKS0+cmVzb3VyY2VGb3JVUkwoaGFuZGxlLT5maXJzdFJlcXVlc3QoKS51cmwoKSk7CisgICAg
ICAgIGlmICghbG9hZGVyLT5mcmFtZUxvYWRlcigpKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNl
OworCisgICAgICAgIENhY2hlZFJlc291cmNlKiBjYWNoZWRSZXNvdXJjZSA9IG1lbW9yeUNhY2hl
KCktPnJlc291cmNlRm9yVVJMKGhhbmRsZS0+Zmlyc3RSZXF1ZXN0KCkudXJsKCksIGxvYWRlci0+
ZnJhbWVMb2FkZXIoKS0+ZnJhbWUoKS5wYWdlKCktPnNlc3Npb25JRCgpKTsKICAgICAgICAgaWYg
KCFjYWNoZWRSZXNvdXJjZSkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9GcmFtZUxvYWRlci5jcHAKaW5kZXggOTRlMDUxOS4uMjk0YTIzYyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwCkBAIC0zMzc3LDcgKzMzNzcsNyBAQCB2b2lkIEZy
YW1lTG9hZGVyOjp0ZWxsQ2xpZW50QWJvdXRQYXN0TWVtb3J5Q2FjaGVMb2FkcygpCiAKICAgICBz
aXplX3Qgc2l6ZSA9IHBhc3RMb2Fkcy5zaXplKCk7CiAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkg
PCBzaXplOyArK2kpIHsKLSAgICAgICAgQ2FjaGVkUmVzb3VyY2UqIHJlc291cmNlID0gbWVtb3J5
Q2FjaGUoKS0+cmVzb3VyY2VGb3JSZXF1ZXN0KHBhc3RMb2Fkc1tpXSk7CisgICAgICAgIENhY2hl
ZFJlc291cmNlKiByZXNvdXJjZSA9IG1lbW9yeUNhY2hlKCktPnJlc291cmNlRm9yUmVxdWVzdChw
YXN0TG9hZHNbaV0sIG1fZnJhbWUucGFnZSgpLT5zZXNzaW9uSUQoKSk7CiAKICAgICAgICAgLy8g
RklYTUU6IFRoZXNlIGxvYWRzLCBsb2FkZWQgZnJvbSBjYWNoZSwgYnV0IG5vdyBnb25lIGZyb20g
dGhlIGNhY2hlIGJ5IHRoZSB0aW1lCiAgICAgICAgIC8vIFBhZ2U6OnNldE1lbW9yeUNhY2hlQ2xp
ZW50Q2FsbHNFbmFibGVkKHRydWUpIGlzIGNhbGxlZCwgd2lsbCBub3QgYmUgc2VlbiBieSB0aGUg
Y2xpZW50LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ltYWdlTG9hZGVyLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9JbWFnZUxvYWRlci5jcHAKaW5kZXggMzA2YTFiNzYu
LmU0OGQ0N2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9JbWFnZUxvYWRlci5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ltYWdlTG9hZGVyLmNwcApAQCAtMzQsNiAr
MzQsNyBAQAogI2luY2x1ZGUgIkhUTUxOYW1lcy5oIgogI2luY2x1ZGUgIkhUTUxPYmplY3RFbGVt
ZW50LmgiCiAjaW5jbHVkZSAiSFRNTFBhcnNlcklkaW9tcy5oIgorI2luY2x1ZGUgIlBhZ2UuaCIK
ICNpbmNsdWRlICJSZW5kZXJJbWFnZS5oIgogI2luY2x1ZGUgIlJlbmRlclNWR0ltYWdlLmgiCiAj
aW5jbHVkZSAiU2VjdXJpdHlPcmlnaW4uaCIKQEAgLTE4OCw3ICsxODksNyBAQCB2b2lkIEltYWdl
TG9hZGVyOjp1cGRhdGVGcm9tRWxlbWVudCgpCiAgICAgICAgIGlmIChtX2xvYWRNYW51YWxseSkg
ewogICAgICAgICAgICAgYm9vbCBhdXRvTG9hZE90aGVySW1hZ2VzID0gZG9jdW1lbnQuY2FjaGVk
UmVzb3VyY2VMb2FkZXIoKS0+YXV0b0xvYWRJbWFnZXMoKTsKICAgICAgICAgICAgIGRvY3VtZW50
LmNhY2hlZFJlc291cmNlTG9hZGVyKCktPnNldEF1dG9Mb2FkSW1hZ2VzKGZhbHNlKTsKLSAgICAg
ICAgICAgIG5ld0ltYWdlID0gbmV3IENhY2hlZEltYWdlKHJlcXVlc3QucmVzb3VyY2VSZXF1ZXN0
KCkpOworICAgICAgICAgICAgbmV3SW1hZ2UgPSBuZXcgQ2FjaGVkSW1hZ2UocmVxdWVzdC5yZXNv
dXJjZVJlcXVlc3QoKSwgbV9lbGVtZW50LmRvY3VtZW50KCkucGFnZSgpLT5zZXNzaW9uSUQoKSk7
CiAgICAgICAgICAgICBuZXdJbWFnZS0+c2V0TG9hZGluZyh0cnVlKTsKICAgICAgICAgICAgIG5l
d0ltYWdlLT5zZXRPd25pbmdDYWNoZWRSZXNvdXJjZUxvYWRlcihkb2N1bWVudC5jYWNoZWRSZXNv
dXJjZUxvYWRlcigpKTsKICAgICAgICAgICAgIGRvY3VtZW50LmNhY2hlZFJlc291cmNlTG9hZGVy
KCktPm1fZG9jdW1lbnRSZXNvdXJjZXMuc2V0KG5ld0ltYWdlLT51cmwoKSwgbmV3SW1hZ2UuZ2V0
KCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2FyY2hpdmUvY2YvTGVnYWN5
V2ViQXJjaGl2ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvYXJjaGl2ZS9jZi9MZWdhY3lX
ZWJBcmNoaXZlLmNwcAppbmRleCAzMWYxYTFiLi4wMjRkMjhmIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvYXJjaGl2ZS9jZi9MZWdhY3lXZWJBcmNoaXZlLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvYXJjaGl2ZS9jZi9MZWdhY3lXZWJBcmNoaXZlLmNwcApAQCAtNTU0
LDcgKzU1NCw3IEBAIFBhc3NSZWZQdHI8TGVnYWN5V2ViQXJjaGl2ZT4gTGVnYWN5V2ViQXJjaGl2
ZTo6Y3JlYXRlKGNvbnN0IFN0cmluZyYgbWFya3VwU3RyaW5nCiAjaWYgRU5BQkxFKENBQ0hFX1BB
UlRJVElPTklORykKICAgICAgICAgICAgICAgICByZXF1ZXN0LnNldENhY2hlUGFydGl0aW9uKGZy
YW1lLT5kb2N1bWVudCgpLT50b3BPcmlnaW4oKS0+Y2FjaGVQYXJ0aXRpb24oKSk7CiAjZW5kaWYK
LSAgICAgICAgICAgICAgICBDYWNoZWRSZXNvdXJjZSogY2FjaGVkUmVzb3VyY2UgPSBtZW1vcnlD
YWNoZSgpLT5yZXNvdXJjZUZvclJlcXVlc3QocmVxdWVzdCk7CisgICAgICAgICAgICAgICAgQ2Fj
aGVkUmVzb3VyY2UqIGNhY2hlZFJlc291cmNlID0gbWVtb3J5Q2FjaGUoKS0+cmVzb3VyY2VGb3JS
ZXF1ZXN0KHJlcXVlc3QsIGZyYW1lLT5wYWdlKCktPnNlc3Npb25JRCgpKTsKICAgICAgICAgICAg
ICAgICBpZiAoY2FjaGVkUmVzb3VyY2UpIHsKICAgICAgICAgICAgICAgICAgICAgUmVzb3VyY2VC
dWZmZXIqIGRhdGEgPSBjYWNoZWRSZXNvdXJjZS0+cmVzb3VyY2VCdWZmZXIoKTsKICAgICAgICAg
ICAgICAgICAgICAgcmVzb3VyY2UgPSBBcmNoaXZlUmVzb3VyY2U6OmNyZWF0ZShkYXRhID8gZGF0
YS0+c2hhcmVkQnVmZmVyKCkgOiAwLCBzdWJyZXNvdXJjZVVSTCwgY2FjaGVkUmVzb3VyY2UtPnJl
c3BvbnNlKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hl
ZENTU1N0eWxlU2hlZXQuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZENT
U1N0eWxlU2hlZXQuY3BwCmluZGV4IDY5YmNlOGYuLmU4YWFkNDcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRDU1NTdHlsZVNoZWV0LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkQ1NTU3R5bGVTaGVldC5jcHAKQEAgLTQwLDgg
KzQwLDggQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1DYWNoZWRDU1NTdHlsZVNoZWV0OjpD
YWNoZWRDU1NTdHlsZVNoZWV0KGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVzb3VyY2VSZXF1ZXN0
LCBjb25zdCBTdHJpbmcmIGNoYXJzZXQpCi0gICAgOiBDYWNoZWRSZXNvdXJjZShyZXNvdXJjZVJl
cXVlc3QsIENTU1N0eWxlU2hlZXQpCitDYWNoZWRDU1NTdHlsZVNoZWV0OjpDYWNoZWRDU1NTdHls
ZVNoZWV0KGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVzb3VyY2VSZXF1ZXN0LCBjb25zdCBTdHJp
bmcmIGNoYXJzZXQsIFNlc3Npb25JRCBzZXNzaW9uSUQpCisgICAgOiBDYWNoZWRSZXNvdXJjZShy
ZXNvdXJjZVJlcXVlc3QsIENTU1N0eWxlU2hlZXQsIHNlc3Npb25JRCkKICAgICAsIG1fZGVjb2Rl
cihUZXh0UmVzb3VyY2VEZWNvZGVyOjpjcmVhdGUoInRleHQvY3NzIiwgY2hhcnNldCkpCiB7CiAg
ICAgLy8gUHJlZmVyIHRleHQvY3NzIGJ1dCBhY2NlcHQgYW55IHR5cGUgKGRlbGwuY29tIHNlcnZl
cyBhIHN0eWxlc2hlZXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9D
YWNoZWRDU1NTdHlsZVNoZWV0LmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVk
Q1NTU3R5bGVTaGVldC5oCmluZGV4IGY4YmIwYzYuLjViN2I3NDggMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRDU1NTdHlsZVNoZWV0LmgKKysrIGIvU291cmNl
L1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZENTU1N0eWxlU2hlZXQuaApAQCAtMzgsNyArMzgs
NyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICAgICBjbGFzcyBDYWNoZWRDU1NTdHlsZVNoZWV0
IGZpbmFsIDogcHVibGljIENhY2hlZFJlc291cmNlIHsKICAgICBwdWJsaWM6Ci0gICAgICAgIENh
Y2hlZENTU1N0eWxlU2hlZXQoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgU3RyaW5nJiBj
aGFyc2V0KTsKKyAgICAgICAgQ2FjaGVkQ1NTU3R5bGVTaGVldChjb25zdCBSZXNvdXJjZVJlcXVl
c3QmLCBjb25zdCBTdHJpbmcmIGNoYXJzZXQsIFNlc3Npb25JRCk7CiAgICAgICAgIHZpcnR1YWwg
fkNhY2hlZENTU1N0eWxlU2hlZXQoKTsKIAogICAgICAgICBjb25zdCBTdHJpbmcgc2hlZXRUZXh0
KGJvb2wgZW5mb3JjZU1JTUVUeXBlID0gdHJ1ZSwgYm9vbCogaGFzVmFsaWRNSU1FVHlwZSA9IDAp
IGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZEZv
bnQuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZEZvbnQuY3BwCmluZGV4
IGZiZjY1OGMuLjJhMWExNDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNo
ZS9DYWNoZWRGb250LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVk
Rm9udC5jcHAKQEAgLTUwLDggKzUwLDggQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1DYWNo
ZWRGb250OjpDYWNoZWRGb250KGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVzb3VyY2VSZXF1ZXN0
KQotICAgIDogQ2FjaGVkUmVzb3VyY2UocmVzb3VyY2VSZXF1ZXN0LCBGb250UmVzb3VyY2UpCitD
YWNoZWRGb250OjpDYWNoZWRGb250KGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVzb3VyY2VSZXF1
ZXN0LCBTZXNzaW9uSUQgc2Vzc2lvbklEKQorICAgIDogQ2FjaGVkUmVzb3VyY2UocmVzb3VyY2VS
ZXF1ZXN0LCBGb250UmVzb3VyY2UsIHNlc3Npb25JRCkKICAgICAsIG1fbG9hZEluaXRpYXRlZChm
YWxzZSkKICAgICAsIG1faGFzQ3JlYXRlZEZvbnREYXRhV3JhcHBpbmdSZXNvdXJjZShmYWxzZSkK
IHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRGb250Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkRm9udC5oCmluZGV4IDc0NGI2MmQu
LmZiMjE2NTkzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVk
Rm9udC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRGb250LmgKQEAg
LTQyLDcgKzQyLDcgQEAgc3RydWN0IEZvbnRDdXN0b21QbGF0Zm9ybURhdGE7CiAKIGNsYXNzIENh
Y2hlZEZvbnQgZmluYWwgOiBwdWJsaWMgQ2FjaGVkUmVzb3VyY2UgewogcHVibGljOgotICAgIENh
Y2hlZEZvbnQoY29uc3QgUmVzb3VyY2VSZXF1ZXN0Jik7CisgICAgQ2FjaGVkRm9udChjb25zdCBS
ZXNvdXJjZVJlcXVlc3QmLCBTZXNzaW9uSUQpOwogICAgIHZpcnR1YWwgfkNhY2hlZEZvbnQoKTsK
IAogICAgIHZvaWQgYmVnaW5Mb2FkSWZOZWVkZWQoQ2FjaGVkUmVzb3VyY2VMb2FkZXIqIGRsKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRJbWFnZS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkSW1hZ2UuY3BwCmluZGV4IDRjMjY2
N2IuLmI5MmE5NzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNo
ZWRJbWFnZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZEltYWdl
LmNwcApAQCAtNjAsOCArNjAsOCBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLUNhY2hlZElt
YWdlOjpDYWNoZWRJbWFnZShjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlc291cmNlUmVxdWVzdCkK
LSAgICA6IENhY2hlZFJlc291cmNlKHJlc291cmNlUmVxdWVzdCwgSW1hZ2VSZXNvdXJjZSkKK0Nh
Y2hlZEltYWdlOjpDYWNoZWRJbWFnZShjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlc291cmNlUmVx
dWVzdCwgU2Vzc2lvbklEIHNlc3Npb25JRCkKKyAgICA6IENhY2hlZFJlc291cmNlKHJlc291cmNl
UmVxdWVzdCwgSW1hZ2VSZXNvdXJjZSwgc2Vzc2lvbklEKQogICAgICwgbV9pbWFnZSgwKQogICAg
ICwgbV9pc01hbnVhbGx5Q2FjaGVkKGZhbHNlKQogICAgICwgbV9zaG91bGRQYWludEJyb2tlbklt
YWdlKHRydWUpCkBAIC02OSw4ICs2OSw4IEBAIENhY2hlZEltYWdlOjpDYWNoZWRJbWFnZShjb25z
dCBSZXNvdXJjZVJlcXVlc3QmIHJlc291cmNlUmVxdWVzdCkKICAgICBzZXRTdGF0dXMoVW5rbm93
bik7CiB9CiAKLUNhY2hlZEltYWdlOjpDYWNoZWRJbWFnZShJbWFnZSogaW1hZ2UpCi0gICAgOiBD
YWNoZWRSZXNvdXJjZShSZXNvdXJjZVJlcXVlc3QoKSwgSW1hZ2VSZXNvdXJjZSkKK0NhY2hlZElt
YWdlOjpDYWNoZWRJbWFnZShJbWFnZSogaW1hZ2UsIFNlc3Npb25JRCBzZXNzaW9uSUQpCisgICAg
OiBDYWNoZWRSZXNvdXJjZShSZXNvdXJjZVJlcXVlc3QoKSwgSW1hZ2VSZXNvdXJjZSwgc2Vzc2lv
bklEKQogICAgICwgbV9pbWFnZShpbWFnZSkKICAgICAsIG1faXNNYW51YWxseUNhY2hlZChmYWxz
ZSkKICAgICAsIG1fc2hvdWxkUGFpbnRCcm9rZW5JbWFnZSh0cnVlKQpAQCAtNzksOCArNzksMTgg
QEAgQ2FjaGVkSW1hZ2U6OkNhY2hlZEltYWdlKEltYWdlKiBpbWFnZSkKICAgICBzZXRMb2FkaW5n
KGZhbHNlKTsKIH0KIAotQ2FjaGVkSW1hZ2U6OkNhY2hlZEltYWdlKGNvbnN0IFVSTCYgdXJsLCBJ
bWFnZSogaW1hZ2UsIENhY2hlZEltYWdlOjpDYWNoZUJlaGF2aW9yVHlwZSB0eXBlKQotICAgIDog
Q2FjaGVkUmVzb3VyY2UoUmVzb3VyY2VSZXF1ZXN0KHVybCksIEltYWdlUmVzb3VyY2UpCitDYWNo
ZWRJbWFnZTo6Q2FjaGVkSW1hZ2UoY29uc3QgVVJMJiB1cmwsIEltYWdlKiBpbWFnZSwgU2Vzc2lv
bklEIHNlc3Npb25JRCkKKyAgICA6IENhY2hlZFJlc291cmNlKFJlc291cmNlUmVxdWVzdCh1cmwp
LCBJbWFnZVJlc291cmNlLCBzZXNzaW9uSUQpCisgICAgLCBtX2ltYWdlKGltYWdlKQorICAgICwg
bV9pc01hbnVhbGx5Q2FjaGVkKGZhbHNlKQorICAgICwgbV9zaG91bGRQYWludEJyb2tlbkltYWdl
KHRydWUpCit7CisgICAgc2V0U3RhdHVzKENhY2hlZCk7CisgICAgc2V0TG9hZGluZyhmYWxzZSk7
Cit9CisKK0NhY2hlZEltYWdlOjpDYWNoZWRJbWFnZShjb25zdCBVUkwmIHVybCwgSW1hZ2UqIGlt
YWdlLCBDYWNoZWRJbWFnZTo6Q2FjaGVCZWhhdmlvclR5cGUgdHlwZSwgU2Vzc2lvbklEIHNlc3Np
b25JRCkKKyAgICA6IENhY2hlZFJlc291cmNlKFJlc291cmNlUmVxdWVzdCh1cmwpLCBJbWFnZVJl
c291cmNlLCBzZXNzaW9uSUQpCiAgICAgLCBtX2ltYWdlKGltYWdlKQogICAgICwgbV9pc01hbnVh
bGx5Q2FjaGVkKHR5cGUgPT0gQ2FjaGVkSW1hZ2U6Ok1hbnVhbGx5Q2FjaGVkKQogICAgICwgbV9z
aG91bGRQYWludEJyb2tlbkltYWdlKHRydWUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvY2FjaGUvQ2FjaGVkSW1hZ2UuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9D
YWNoZWRJbWFnZS5oCmluZGV4IGI3ZDcyMTEuLjg2YWYwM2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRJbWFnZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9jYWNoZS9DYWNoZWRJbWFnZS5oCkBAIC01MCw5ICs1MCwxMCBAQCBjbGFzcyBDYWNoZWRJ
bWFnZSBmaW5hbCA6IHB1YmxpYyBDYWNoZWRSZXNvdXJjZSwgcHVibGljIEltYWdlT2JzZXJ2ZXIg
ewogcHVibGljOgogICAgIGVudW0gQ2FjaGVCZWhhdmlvclR5cGUgeyBBdXRvbWF0aWNhbGx5Q2Fj
aGVkLCBNYW51YWxseUNhY2hlZCB9OwogCi0gICAgQ2FjaGVkSW1hZ2UoY29uc3QgUmVzb3VyY2VS
ZXF1ZXN0Jik7Ci0gICAgQ2FjaGVkSW1hZ2UoSW1hZ2UqKTsKLSAgICBDYWNoZWRJbWFnZShjb25z
dCBVUkwmLCBJbWFnZSosIENhY2hlQmVoYXZpb3JUeXBlID0gQXV0b21hdGljYWxseUNhY2hlZCk7
CisgICAgQ2FjaGVkSW1hZ2UoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgU2Vzc2lvbklEKTsKKyAg
ICBDYWNoZWRJbWFnZShJbWFnZSosIFNlc3Npb25JRCk7CisgICAgQ2FjaGVkSW1hZ2UoY29uc3Qg
VVJMJiwgSW1hZ2UqLCBTZXNzaW9uSUQpOworICAgIENhY2hlZEltYWdlKGNvbnN0IFVSTCYsIElt
YWdlKiwgQ2FjaGVCZWhhdmlvclR5cGUsIFNlc3Npb25JRCk7CiAgICAgdmlydHVhbCB+Q2FjaGVk
SW1hZ2UoKTsKIAogICAgIEltYWdlKiBpbWFnZSgpOyAvLyBSZXR1cm5zIHRoZSBudWxsSW1hZ2Uo
KSBpZiB0aGUgaW1hZ2UgaXMgbm90IGF2YWlsYWJsZSB5ZXQuCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmF3UmVzb3VyY2UuY3BwIGIvU291cmNlL1dlYkNv
cmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJhd1Jlc291cmNlLmNwcAppbmRleCA3MWQ4NmRhLi5jNDY1
ZDJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmF3UmVz
b3VyY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSYXdSZXNv
dXJjZS5jcHAKQEAgLTM1LDggKzM1LDggQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1DYWNo
ZWRSYXdSZXNvdXJjZTo6Q2FjaGVkUmF3UmVzb3VyY2UoUmVzb3VyY2VSZXF1ZXN0JiByZXNvdXJj
ZVJlcXVlc3QsIFR5cGUgdHlwZSkKLSAgICA6IENhY2hlZFJlc291cmNlKHJlc291cmNlUmVxdWVz
dCwgdHlwZSkKK0NhY2hlZFJhd1Jlc291cmNlOjpDYWNoZWRSYXdSZXNvdXJjZShSZXNvdXJjZVJl
cXVlc3QmIHJlc291cmNlUmVxdWVzdCwgVHlwZSB0eXBlLCBTZXNzaW9uSUQgc2Vzc2lvbklEKQor
ICAgIDogQ2FjaGVkUmVzb3VyY2UocmVzb3VyY2VSZXF1ZXN0LCB0eXBlLCBzZXNzaW9uSUQpCiAg
ICAgLCBtX2lkZW50aWZpZXIoMCkKIHsKICAgICAvLyBGSVhNRTogVGhlIHdyb25nIENhY2hlZFJl
c291cmNlOjpUeXBlIGhlcmUgbWF5IGNhdXNlIGEgYmFkIGNhc3QgZWxzZXdoZXJlLgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJhd1Jlc291cmNlLmggYi9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmF3UmVzb3VyY2UuaAppbmRleCBjY2Rm
ZWUxLi4zZDZiZmIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2Fj
aGVkUmF3UmVzb3VyY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVk
UmF3UmVzb3VyY2UuaApAQCAtMzIsNyArMzIsNyBAQCBjbGFzcyBTdWJyZXNvdXJjZUxvYWRlcjsK
IAogY2xhc3MgQ2FjaGVkUmF3UmVzb3VyY2UgZmluYWwgOiBwdWJsaWMgQ2FjaGVkUmVzb3VyY2Ug
ewogcHVibGljOgotICAgIENhY2hlZFJhd1Jlc291cmNlKFJlc291cmNlUmVxdWVzdCYsIFR5cGUp
OworICAgIENhY2hlZFJhd1Jlc291cmNlKFJlc291cmNlUmVxdWVzdCYsIFR5cGUsIFNlc3Npb25J
RCk7CiAKICAgICAvLyBGSVhNRTogQXNzb2NpYXRlZFVSTExvYWRlciBzaG91bGRuJ3QgYmUgYSBE
b2N1bWVudFRocmVhZGFibGVMb2FkZXIgYW5kIHRoZXJlZm9yZSBzaG91bGRuJ3QKICAgICAvLyB1
c2UgQ2FjaGVkUmF3UmVzb3VyY2UuIEhvd2V2ZXIsIGl0IGlzLCBhbmQgaXQgbmVlZHMgdG8gYmUg
YWJsZSB0byBkZWZlciBsb2FkaW5nLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVy
L2NhY2hlL0NhY2hlZFJlc291cmNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9D
YWNoZWRSZXNvdXJjZS5jcHAKaW5kZXggNjk3YTQ5NS4uZjAzYTNlNSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2UuY3BwCkBAIC0xNDcsOCArMTQ3LDkg
QEAgc3RhdGljIGRvdWJsZSBkZWFkRGVjb2RlZERhdGFEZWxldGlvbkludGVydmFsRm9yUmVzb3Vy
Y2VUeXBlKENhY2hlZFJlc291cmNlOjpUeXAKIAogREVGSU5FX0RFQlVHX09OTFlfR0xPQkFMKFJl
ZkNvdW50ZWRMZWFrQ291bnRlciwgY2FjaGVkUmVzb3VyY2VMZWFrQ291bnRlciwgKCJDYWNoZWRS
ZXNvdXJjZSIpKTsKIAotQ2FjaGVkUmVzb3VyY2U6OkNhY2hlZFJlc291cmNlKGNvbnN0IFJlc291
cmNlUmVxdWVzdCYgcmVxdWVzdCwgVHlwZSB0eXBlKQorQ2FjaGVkUmVzb3VyY2U6OkNhY2hlZFJl
c291cmNlKGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgVHlwZSB0eXBlLCBTZXNzaW9u
SUQgc2Vzc2lvbklEKQogICAgIDogbV9yZXNvdXJjZVJlcXVlc3QocmVxdWVzdCkKKyAgICAsIG1f
c2Vzc2lvbklEKHNlc3Npb25JRCkKICAgICAsIG1fbG9hZFByaW9yaXR5KGRlZmF1bHRQcmlvcml0
eUZvclJlc291cmNlVHlwZSh0eXBlKSkKICAgICAsIG1fcmVzcG9uc2VUaW1lc3RhbXAoY3VycmVu
dFRpbWUoKSkKICAgICAsIG1fZGVjb2RlZERhdGFEZWxldGlvblRpbWVyKHRoaXMsICZDYWNoZWRS
ZXNvdXJjZTo6ZGVjb2RlZERhdGFEZWxldGlvblRpbWVyRmlyZWQsIGRlYWREZWNvZGVkRGF0YURl
bGV0aW9uSW50ZXJ2YWxGb3JSZXNvdXJjZVR5cGUodHlwZSkpCkBAIC0xODAsNiArMTgxLDcgQEAg
Q2FjaGVkUmVzb3VyY2U6OkNhY2hlZFJlc291cmNlKGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVx
dWVzdCwgVHlwZSB0eXBlKQogICAgICwgbV9wcm94eVJlc291cmNlKDApCiB7CiAgICAgQVNTRVJU
KG1fdHlwZSA9PSB1bnNpZ25lZCh0eXBlKSk7IC8vIG1fdHlwZSBpcyBhIGJpdGZpZWxkLCBzbyB0
aGlzIHRlc3RzIGNhcmVsZXNzIHVwZGF0ZXMgb2YgdGhlIGVudW0uCisgICAgQVNTRVJUKHNlc3Np
b25JRC5pc1ZhbGlkKCkpOwogI2lmbmRlZiBOREVCVUcKICAgICBjYWNoZWRSZXNvdXJjZUxlYWtD
b3VudGVyLmluY3JlbWVudCgpOwogI2VuZGlmCkBAIC0xOTksNyArMjAxLDcgQEAgQ2FjaGVkUmVz
b3VyY2U6On5DYWNoZWRSZXNvdXJjZSgpCiAgICAgQVNTRVJUKGNhbkRlbGV0ZSgpKTsKICAgICBB
U1NFUlQoIWluQ2FjaGUoKSk7CiAgICAgQVNTRVJUKCFtX2RlbGV0ZWQpOwotICAgIEFTU0VSVCh1
cmwoKS5pc051bGwoKSB8fCBtZW1vcnlDYWNoZSgpLT5yZXNvdXJjZUZvclJlcXVlc3QocmVzb3Vy
Y2VSZXF1ZXN0KCkpICE9IHRoaXMpOworICAgIEFTU0VSVCh1cmwoKS5pc051bGwoKSB8fCBtZW1v
cnlDYWNoZSgpLT5yZXNvdXJjZUZvclJlcXVlc3QocmVzb3VyY2VSZXF1ZXN0KCksIHNlc3Npb25J
RCgpKSAhPSB0aGlzKTsKIAogI2lmbmRlZiBOREVCVUcKICAgICBtX2RlbGV0ZWQgPSB0cnVlOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2UuaAppbmRleCBlZjBi
YzY2Li45ZjhkMWQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2Fj
aGVkUmVzb3VyY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVz
b3VyY2UuaApAQCAtMzEsNiArMzEsNyBAQAogI2luY2x1ZGUgIlJlc291cmNlTG9hZGVyT3B0aW9u
cy5oIgogI2luY2x1ZGUgIlJlc291cmNlUmVxdWVzdC5oIgogI2luY2x1ZGUgIlJlc291cmNlUmVz
cG9uc2UuaCIKKyNpbmNsdWRlICJTZXNzaW9uSUQuaCIKICNpbmNsdWRlICJUaW1lci5oIgogI2lu
Y2x1ZGUgPHRpbWUuaD4KICNpbmNsdWRlIDx3dGYvSGFzaENvdW50ZWRTZXQuaD4KQEAgLTg5LDcg
KzkwLDcgQEAgcHVibGljOgogICAgICAgICBEZWNvZGVFcnJvcgogICAgIH07CiAKLSAgICBDYWNo
ZWRSZXNvdXJjZShjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBUeXBlKTsKKyAgICBDYWNoZWRSZXNv
dXJjZShjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBUeXBlLCBTZXNzaW9uSUQpOwogICAgIHZpcnR1
YWwgfkNhY2hlZFJlc291cmNlKCk7CiAKICAgICB2aXJ0dWFsIHZvaWQgbG9hZChDYWNoZWRSZXNv
dXJjZUxvYWRlciosIGNvbnN0IFJlc291cmNlTG9hZGVyT3B0aW9ucyYpOwpAQCAtMTExLDYgKzEx
Miw3IEBAIHB1YmxpYzoKICNpZiBFTkFCTEUoQ0FDSEVfUEFSVElUSU9OSU5HKQogICAgIGNvbnN0
IFN0cmluZyYgY2FjaGVQYXJ0aXRpb24oKSBjb25zdCB7IHJldHVybiBtX3Jlc291cmNlUmVxdWVz
dC5jYWNoZVBhcnRpdGlvbigpOyB9CiAjZW5kaWYKKyAgICBTZXNzaW9uSUQgc2Vzc2lvbklEKCkg
Y29uc3QgeyByZXR1cm4gbV9zZXNzaW9uSUQ7IH0KICAgICBUeXBlIHR5cGUoKSBjb25zdCB7IHJl
dHVybiBzdGF0aWNfY2FzdDxUeXBlPihtX3R5cGUpOyB9CiAgICAgCiAgICAgUmVzb3VyY2VMb2Fk
UHJpb3JpdHkgbG9hZFByaW9yaXR5KCkgY29uc3QgeyByZXR1cm4gbV9sb2FkUHJpb3JpdHk7IH0K
QEAgLTI5MCw2ICsyOTIsNyBAQCBwcm90ZWN0ZWQ6CiAgICAgSGFzaE1hcDxDYWNoZWRSZXNvdXJj
ZUNsaWVudCosIE93blB0cjxDYWNoZWRSZXNvdXJjZUNhbGxiYWNrPj4gbV9jbGllbnRzQXdhaXRp
bmdDYWxsYmFjazsKIAogICAgIFJlc291cmNlUmVxdWVzdCBtX3Jlc291cmNlUmVxdWVzdDsKKyAg
ICBTZXNzaW9uSUQgbV9zZXNzaW9uSUQ7CiAgICAgU3RyaW5nIG1fYWNjZXB0OwogICAgIFJlZlB0
cjxTdWJyZXNvdXJjZUxvYWRlcj4gbV9sb2FkZXI7CiAgICAgUmVzb3VyY2VMb2FkZXJPcHRpb25z
IG1fb3B0aW9uczsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNo
ZWRSZXNvdXJjZUxvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVk
UmVzb3VyY2VMb2FkZXIuY3BwCmluZGV4IDExZjE4YTguLjlkMjhkNzUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZUxvYWRlci5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlTG9hZGVyLmNwcApAQCAt
NDgsMTIgKzQ4LDE0IEBACiAjaW5jbHVkZSAiTG9hZGVyU3RyYXRlZ3kuaCIKICNpbmNsdWRlICJM
b2dnaW5nLmgiCiAjaW5jbHVkZSAiTWVtb3J5Q2FjaGUuaCIKKyNpbmNsdWRlICJQYWdlLmgiCiAj
aW5jbHVkZSAiUGluZ0xvYWRlci5oIgogI2luY2x1ZGUgIlBsYXRmb3JtU3RyYXRlZ2llcy5oIgog
I2luY2x1ZGUgIlJlbmRlckVsZW1lbnQuaCIKICNpbmNsdWRlICJSZXNvdXJjZUxvYWRTY2hlZHVs
ZXIuaCIKICNpbmNsdWRlICJTY3JpcHRDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAiU2VjdXJpdHlP
cmlnaW4uaCIKKyNpbmNsdWRlICJTZXNzaW9uSUQuaCIKICNpbmNsdWRlICJTZXR0aW5ncy5oIgog
I2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJp
bmcuaD4KQEAgLTcwLDM1ICs3MiwzNSBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLXN0YXRp
YyBDYWNoZWRSZXNvdXJjZSogY3JlYXRlUmVzb3VyY2UoQ2FjaGVkUmVzb3VyY2U6OlR5cGUgdHlw
ZSwgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBjb25zdCBTdHJpbmcmIGNoYXJzZXQpCitzdGF0
aWMgQ2FjaGVkUmVzb3VyY2UqIGNyZWF0ZVJlc291cmNlKENhY2hlZFJlc291cmNlOjpUeXBlIHR5
cGUsIFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgY29uc3QgU3RyaW5nJiBjaGFyc2V0LCBTZXNz
aW9uSUQgc2Vzc2lvbklEKQogewogICAgIHN3aXRjaCAodHlwZSkgewogICAgIGNhc2UgQ2FjaGVk
UmVzb3VyY2U6OkltYWdlUmVzb3VyY2U6Ci0gICAgICAgIHJldHVybiBuZXcgQ2FjaGVkSW1hZ2Uo
cmVxdWVzdCk7CisgICAgICAgIHJldHVybiBuZXcgQ2FjaGVkSW1hZ2UocmVxdWVzdCwgc2Vzc2lv
bklEKTsKICAgICBjYXNlIENhY2hlZFJlc291cmNlOjpDU1NTdHlsZVNoZWV0OgotICAgICAgICBy
ZXR1cm4gbmV3IENhY2hlZENTU1N0eWxlU2hlZXQocmVxdWVzdCwgY2hhcnNldCk7CisgICAgICAg
IHJldHVybiBuZXcgQ2FjaGVkQ1NTU3R5bGVTaGVldChyZXF1ZXN0LCBjaGFyc2V0LCBzZXNzaW9u
SUQpOwogICAgIGNhc2UgQ2FjaGVkUmVzb3VyY2U6OlNjcmlwdDoKLSAgICAgICAgcmV0dXJuIG5l
dyBDYWNoZWRTY3JpcHQocmVxdWVzdCwgY2hhcnNldCk7CisgICAgICAgIHJldHVybiBuZXcgQ2Fj
aGVkU2NyaXB0KHJlcXVlc3QsIGNoYXJzZXQsIHNlc3Npb25JRCk7CiAgICAgY2FzZSBDYWNoZWRS
ZXNvdXJjZTo6U1ZHRG9jdW1lbnRSZXNvdXJjZToKLSAgICAgICAgcmV0dXJuIG5ldyBDYWNoZWRT
VkdEb2N1bWVudChyZXF1ZXN0KTsKKyAgICAgICAgcmV0dXJuIG5ldyBDYWNoZWRTVkdEb2N1bWVu
dChyZXF1ZXN0LCBzZXNzaW9uSUQpOwogICAgIGNhc2UgQ2FjaGVkUmVzb3VyY2U6OkZvbnRSZXNv
dXJjZToKLSAgICAgICAgcmV0dXJuIG5ldyBDYWNoZWRGb250KHJlcXVlc3QpOworICAgICAgICBy
ZXR1cm4gbmV3IENhY2hlZEZvbnQocmVxdWVzdCwgc2Vzc2lvbklEKTsKICAgICBjYXNlIENhY2hl
ZFJlc291cmNlOjpSYXdSZXNvdXJjZToKICAgICBjYXNlIENhY2hlZFJlc291cmNlOjpNYWluUmVz
b3VyY2U6Ci0gICAgICAgIHJldHVybiBuZXcgQ2FjaGVkUmF3UmVzb3VyY2UocmVxdWVzdCwgdHlw
ZSk7CisgICAgICAgIHJldHVybiBuZXcgQ2FjaGVkUmF3UmVzb3VyY2UocmVxdWVzdCwgdHlwZSwg
c2Vzc2lvbklEKTsKICNpZiBFTkFCTEUoWFNMVCkKICAgICBjYXNlIENhY2hlZFJlc291cmNlOjpY
U0xTdHlsZVNoZWV0OgotICAgICAgICByZXR1cm4gbmV3IENhY2hlZFhTTFN0eWxlU2hlZXQocmVx
dWVzdCk7CisgICAgICAgIHJldHVybiBuZXcgQ2FjaGVkWFNMU3R5bGVTaGVldChyZXF1ZXN0LCBz
ZXNzaW9uSUQpOwogI2VuZGlmCiAjaWYgRU5BQkxFKExJTktfUFJFRkVUQ0gpCiAgICAgY2FzZSBD
YWNoZWRSZXNvdXJjZTo6TGlua1ByZWZldGNoOgotICAgICAgICByZXR1cm4gbmV3IENhY2hlZFJl
c291cmNlKHJlcXVlc3QsIENhY2hlZFJlc291cmNlOjpMaW5rUHJlZmV0Y2gpOworICAgICAgICBy
ZXR1cm4gbmV3IENhY2hlZFJlc291cmNlKHJlcXVlc3QsIENhY2hlZFJlc291cmNlOjpMaW5rUHJl
ZmV0Y2gsIHNlc3Npb25JRCk7CiAgICAgY2FzZSBDYWNoZWRSZXNvdXJjZTo6TGlua1N1YnJlc291
cmNlOgotICAgICAgICByZXR1cm4gbmV3IENhY2hlZFJlc291cmNlKHJlcXVlc3QsIENhY2hlZFJl
c291cmNlOjpMaW5rU3VicmVzb3VyY2UpOworICAgICAgICByZXR1cm4gbmV3IENhY2hlZFJlc291
cmNlKHJlcXVlc3QsIENhY2hlZFJlc291cmNlOjpMaW5rU3VicmVzb3VyY2UsIHNlc3Npb25JRCk7
CiAjZW5kaWYKICNpZiBFTkFCTEUoVklERU9fVFJBQ0spCiAgICAgY2FzZSBDYWNoZWRSZXNvdXJj
ZTo6VGV4dFRyYWNrUmVzb3VyY2U6Ci0gICAgICAgIHJldHVybiBuZXcgQ2FjaGVkVGV4dFRyYWNr
KHJlcXVlc3QpOworICAgICAgICByZXR1cm4gbmV3IENhY2hlZFRleHRUcmFjayhyZXF1ZXN0LCBz
ZXNzaW9uSUQpOwogI2VuZGlmCiAgICAgfQogICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwpAQCAt
MTQ3LDYgKzE0OSwxNiBAQCBGcmFtZSogQ2FjaGVkUmVzb3VyY2VMb2FkZXI6OmZyYW1lKCkgY29u
c3QKICAgICByZXR1cm4gbV9kb2N1bWVudExvYWRlciA/IG1fZG9jdW1lbnRMb2FkZXItPmZyYW1l
KCkgOiAwOwogfQogCitTZXNzaW9uSUQgQ2FjaGVkUmVzb3VyY2VMb2FkZXI6OnNlc3Npb25JRCgp
IGNvbnN0Cit7CisgICAgU2Vzc2lvbklEIHNlc3Npb25JRCA9IFNlc3Npb25JRDo6ZGVmYXVsdFNl
c3Npb25JRCgpOworCisgICAgaWYgKEZyYW1lKiBmID0gZnJhbWUoKSkKKyAgICAgICAgc2Vzc2lv
bklEID0gZi0+cGFnZSgpLT5zZXNzaW9uSUQoKTsKKworICAgIHJldHVybiBzZXNzaW9uSUQ7Cit9
CisKIENhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZEltYWdlPiBDYWNoZWRSZXNvdXJjZUxvYWRl
cjo6cmVxdWVzdEltYWdlKENhY2hlZFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCkKIHsKICAgICBp
ZiAoRnJhbWUqIGZyYW1lID0gdGhpcy0+ZnJhbWUoKSkgewpAQCAtMTg3LDcgKzE5OSw3IEBAIENh
Y2hlZFJlc291cmNlSGFuZGxlPENhY2hlZENTU1N0eWxlU2hlZXQ+IENhY2hlZFJlc291cmNlTG9h
ZGVyOjpyZXF1ZXN0VXNlckNTU1N0CiAgICAgcmVxdWVzdC5tdXRhYmxlUmVzb3VyY2VSZXF1ZXN0
KCkuc2V0Q2FjaGVQYXJ0aXRpb24oZG9jdW1lbnQoKS0+dG9wT3JpZ2luKCktPmNhY2hlUGFydGl0
aW9uKCkpOwogI2VuZGlmCiAKLSAgICBpZiAoQ2FjaGVkUmVzb3VyY2UqIGV4aXN0aW5nID0gbWVt
b3J5Q2FjaGUoKS0+cmVzb3VyY2VGb3JSZXF1ZXN0KHJlcXVlc3QucmVzb3VyY2VSZXF1ZXN0KCkp
KSB7CisgICAgaWYgKENhY2hlZFJlc291cmNlKiBleGlzdGluZyA9IG1lbW9yeUNhY2hlKCktPnJl
c291cmNlRm9yUmVxdWVzdChyZXF1ZXN0LnJlc291cmNlUmVxdWVzdCgpLCBzZXNzaW9uSUQoKSkp
IHsKICAgICAgICAgaWYgKGV4aXN0aW5nLT50eXBlKCkgPT0gQ2FjaGVkUmVzb3VyY2U6OkNTU1N0
eWxlU2hlZXQpCiAgICAgICAgICAgICByZXR1cm4gdG9DYWNoZWRDU1NTdHlsZVNoZWV0KGV4aXN0
aW5nKTsKICAgICAgICAgbWVtb3J5Q2FjaGUoKS0+cmVtb3ZlKGV4aXN0aW5nKTsKQEAgLTE5NSw3
ICsyMDcsNyBAQCBDYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRDU1NTdHlsZVNoZWV0PiBDYWNo
ZWRSZXNvdXJjZUxvYWRlcjo6cmVxdWVzdFVzZXJDU1NTdAogICAgIGlmICh1cmwuc3RyaW5nKCkg
IT0gcmVxdWVzdC5yZXNvdXJjZVJlcXVlc3QoKS51cmwoKSkKICAgICAgICAgcmVxdWVzdC5tdXRh
YmxlUmVzb3VyY2VSZXF1ZXN0KCkuc2V0VVJMKHVybCk7CiAKLSAgICBDYWNoZWRSZXNvdXJjZUhh
bmRsZTxDYWNoZWRDU1NTdHlsZVNoZWV0PiB1c2VyU2hlZXQgPSBuZXcgQ2FjaGVkQ1NTU3R5bGVT
aGVldChyZXF1ZXN0LnJlc291cmNlUmVxdWVzdCgpLCByZXF1ZXN0LmNoYXJzZXQoKSk7CisgICAg
Q2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkQ1NTU3R5bGVTaGVldD4gdXNlclNoZWV0ID0gbmV3
IENhY2hlZENTU1N0eWxlU2hlZXQocmVxdWVzdC5yZXNvdXJjZVJlcXVlc3QoKSwgcmVxdWVzdC5j
aGFyc2V0KCksIHNlc3Npb25JRCgpKTsKIAogICAgIG1lbW9yeUNhY2hlKCktPmFkZCh1c2VyU2hl
ZXQuZ2V0KCkpOwogICAgIC8vIEZJWE1FOiBsb2FkUmVzb3VyY2UgY2FsbHMgc2V0T3duaW5nQ2Fj
aGVkUmVzb3VyY2VMb2FkZXIoKSBpZiB0aGUgcmVzb3VyY2UgY291bGRuJ3QgYmUgYWRkZWQgdG8g
Y2FjaGUuIERvZXMgdGhpcyBmdW5jdGlvbiBuZWVkIHRvIGNhbGwgaXQsIHRvbz8KQEAgLTQyOCw3
ICs0NDAsNyBAQCBDYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRSZXNvdXJjZT4gQ2FjaGVkUmVz
b3VyY2VMb2FkZXI6OnJlcXVlc3RSZXNvdXJjZShDYWNoZQogICAgICAgICByZXF1ZXN0Lm11dGFi
bGVSZXNvdXJjZVJlcXVlc3QoKS5zZXRDYWNoZVBhcnRpdGlvbihkb2N1bWVudCgpLT50b3BPcmln
aW4oKS0+Y2FjaGVQYXJ0aXRpb24oKSk7CiAjZW5kaWYKIAotICAgIHJlc291cmNlID0gbWVtb3J5
Q2FjaGUoKS0+cmVzb3VyY2VGb3JSZXF1ZXN0KHJlcXVlc3QucmVzb3VyY2VSZXF1ZXN0KCkpOwor
ICAgIHJlc291cmNlID0gbWVtb3J5Q2FjaGUoKS0+cmVzb3VyY2VGb3JSZXF1ZXN0KHJlcXVlc3Qu
cmVzb3VyY2VSZXF1ZXN0KCksIHNlc3Npb25JRCgpKTsKIAogICAgIGNvbnN0IFJldmFsaWRhdGlv
blBvbGljeSBwb2xpY3kgPSBkZXRlcm1pbmVSZXZhbGlkYXRpb25Qb2xpY3kodHlwZSwgcmVxdWVz
dC5tdXRhYmxlUmVzb3VyY2VSZXF1ZXN0KCksIHJlcXVlc3QuZm9yUHJlbG9hZCgpLCByZXNvdXJj
ZS5nZXQoKSwgcmVxdWVzdC5kZWZlcigpKTsKICAgICBzd2l0Y2ggKHBvbGljeSkgewpAQCAtNDgw
LDEwICs0OTIsMTEgQEAgQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkUmVzb3VyY2U+IENhY2hl
ZFJlc291cmNlTG9hZGVyOjpyZXZhbGlkYXRlUmVzb3VyY2UoY28KICAgICBBU1NFUlQoIW1lbW9y
eUNhY2hlKCktPmRpc2FibGVkKCkpOwogICAgIEFTU0VSVChyZXNvdXJjZS0+Y2FuVXNlQ2FjaGVW
YWxpZGF0b3IoKSk7CiAgICAgQVNTRVJUKCFyZXNvdXJjZS0+cmVzb3VyY2VUb1JldmFsaWRhdGUo
KSk7Ci0gICAgCisgICAgQVNTRVJUKHJlc291cmNlLT5zZXNzaW9uSUQoKSA9PSBzZXNzaW9uSUQo
KSk7CisKICAgICAvLyBDb3B5IHRoZSBVUkwgb3V0IG9mIHRoZSByZXNvdXJjZSB0byBiZSByZXZh
bGlkYXRlZCBpbiBjYXNlIGl0IGdldHMgZGVsZXRlZCBieSB0aGUgcmVtb3ZlKCkgY2FsbCBiZWxv
dy4KICAgICBTdHJpbmcgdXJsID0gcmVzb3VyY2UtPnVybCgpOwotICAgIENhY2hlZFJlc291cmNl
SGFuZGxlPENhY2hlZFJlc291cmNlPiBuZXdSZXNvdXJjZSA9IGNyZWF0ZVJlc291cmNlKHJlc291
cmNlLT50eXBlKCksIHJlc291cmNlLT5yZXNvdXJjZVJlcXVlc3QoKSwgcmVzb3VyY2UtPmVuY29k
aW5nKCkpOworICAgIENhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZFJlc291cmNlPiBuZXdSZXNv
dXJjZSA9IGNyZWF0ZVJlc291cmNlKHJlc291cmNlLT50eXBlKCksIHJlc291cmNlLT5yZXNvdXJj
ZVJlcXVlc3QoKSwgcmVzb3VyY2UtPmVuY29kaW5nKCksIHJlc291cmNlLT5zZXNzaW9uSUQoKSk7
CiAgICAgCiAgICAgTE9HKFJlc291cmNlTG9hZGluZywgIlJlc291cmNlICVwIGNyZWF0ZWQgdG8g
cmV2YWxpZGF0ZSAlcCIsIG5ld1Jlc291cmNlLmdldCgpLCByZXNvdXJjZSk7CiAgICAgbmV3UmVz
b3VyY2UtPnNldFJlc291cmNlVG9SZXZhbGlkYXRlKHJlc291cmNlKTsKQEAgLTUwMCwxMSArNTEz
LDExIEBAIENhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZFJlc291cmNlPiBDYWNoZWRSZXNvdXJj
ZUxvYWRlcjo6cmV2YWxpZGF0ZVJlc291cmNlKGNvCiAKIENhY2hlZFJlc291cmNlSGFuZGxlPENh
Y2hlZFJlc291cmNlPiBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6bG9hZFJlc291cmNlKENhY2hlZFJl
c291cmNlOjpUeXBlIHR5cGUsIENhY2hlZFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgY29uc3Qg
U3RyaW5nJiBjaGFyc2V0KQogewotICAgIEFTU0VSVCghbWVtb3J5Q2FjaGUoKS0+cmVzb3VyY2VG
b3JSZXF1ZXN0KHJlcXVlc3QucmVzb3VyY2VSZXF1ZXN0KCkpKTsKKyAgICBBU1NFUlQoIW1lbW9y
eUNhY2hlKCktPnJlc291cmNlRm9yUmVxdWVzdChyZXF1ZXN0LnJlc291cmNlUmVxdWVzdCgpLCBz
ZXNzaW9uSUQoKSkpOwogCiAgICAgTE9HKFJlc291cmNlTG9hZGluZywgIkxvYWRpbmcgQ2FjaGVk
UmVzb3VyY2UgZm9yICclcycuIiwgcmVxdWVzdC5yZXNvdXJjZVJlcXVlc3QoKS51cmwoKS5zdHJp
bmdDZW50ZXJFbGxpcHNpemVkVG9MZW5ndGgoKS5sYXRpbjEoKS5kYXRhKCkpOwogCi0gICAgQ2Fj
aGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkUmVzb3VyY2U+IHJlc291cmNlID0gY3JlYXRlUmVzb3Vy
Y2UodHlwZSwgcmVxdWVzdC5tdXRhYmxlUmVzb3VyY2VSZXF1ZXN0KCksIGNoYXJzZXQpOworICAg
IENhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZFJlc291cmNlPiByZXNvdXJjZSA9IGNyZWF0ZVJl
c291cmNlKHR5cGUsIHJlcXVlc3QubXV0YWJsZVJlc291cmNlUmVxdWVzdCgpLCBjaGFyc2V0LCBz
ZXNzaW9uSUQoKSk7CiAKICAgICBpZiAoIW1lbW9yeUNhY2hlKCktPmFkZChyZXNvdXJjZS5nZXQo
KSkpCiAgICAgICAgIHJlc291cmNlLT5zZXRPd25pbmdDYWNoZWRSZXNvdXJjZUxvYWRlcih0aGlz
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJj
ZUxvYWRlci5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlTG9h
ZGVyLmgKaW5kZXggYWFkN2UyNS4uMDFiNjQ3YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
bG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlTG9hZGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
bG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlTG9hZGVyLmgKQEAgLTExMSw2ICsxMTEsNyBAQCBw
dWJsaWM6CiAgICAgRG9jdW1lbnQqIGRvY3VtZW50KCkgY29uc3QgeyByZXR1cm4gbV9kb2N1bWVu
dDsgfSAvLyBDYW4gYmUgbnVsbAogICAgIHZvaWQgc2V0RG9jdW1lbnQoRG9jdW1lbnQqIGRvY3Vt
ZW50KSB7IG1fZG9jdW1lbnQgPSBkb2N1bWVudDsgfQogICAgIHZvaWQgY2xlYXJEb2N1bWVudExv
YWRlcigpIHsgbV9kb2N1bWVudExvYWRlciA9IDA7IH0KKyAgICBTZXNzaW9uSUQgc2Vzc2lvbklE
KCkgY29uc3Q7CiAKICAgICB2b2lkIHJlbW92ZUNhY2hlZFJlc291cmNlKENhY2hlZFJlc291cmNl
KikgY29uc3Q7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNo
ZWRTVkdEb2N1bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkU1ZH
RG9jdW1lbnQuY3BwCmluZGV4IGRkNWE0NzguLmE0NDgwODYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRTVkdEb2N1bWVudC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFNWR0RvY3VtZW50LmNwcApAQCAtMzAsOCArMzAsOCBA
QAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLUNhY2hlZFNWR0RvY3VtZW50OjpDYWNoZWRTVkdE
b2N1bWVudChjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QpCi0gICAgOiBDYWNoZWRSZXNv
dXJjZShyZXF1ZXN0LCBTVkdEb2N1bWVudFJlc291cmNlKQorQ2FjaGVkU1ZHRG9jdW1lbnQ6OkNh
Y2hlZFNWR0RvY3VtZW50KGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgU2Vzc2lvbklE
IHNlc3Npb25JRCkKKyAgICA6IENhY2hlZFJlc291cmNlKHJlcXVlc3QsIFNWR0RvY3VtZW50UmVz
b3VyY2UsIHNlc3Npb25JRCkKICAgICAsIG1fZGVjb2RlcihUZXh0UmVzb3VyY2VEZWNvZGVyOjpj
cmVhdGUoImFwcGxpY2F0aW9uL3htbCIpKQogewogICAgIHNldEFjY2VwdCgiaW1hZ2Uvc3ZnK3ht
bCIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFNWR0Rv
Y3VtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkU1ZHRG9jdW1lbnQu
aAppbmRleCA2YzA4ZTJlLi43ZDQ2ZmE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvY2FjaGUvQ2FjaGVkU1ZHRG9jdW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
Y2FjaGUvQ2FjaGVkU1ZHRG9jdW1lbnQuaApAQCAtMzIsNyArMzIsNyBAQCBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKIGNsYXNzIENhY2hlZFNWR0RvY3VtZW50IGZpbmFsIDogcHVibGljIENhY2hlZFJl
c291cmNlIHsKIHB1YmxpYzoKLSAgICBleHBsaWNpdCBDYWNoZWRTVkdEb2N1bWVudChjb25zdCBS
ZXNvdXJjZVJlcXVlc3QmKTsKKyAgICBleHBsaWNpdCBDYWNoZWRTVkdEb2N1bWVudChjb25zdCBS
ZXNvdXJjZVJlcXVlc3QmLCBTZXNzaW9uSUQpOwogICAgIHZpcnR1YWwgfkNhY2hlZFNWR0RvY3Vt
ZW50KCk7CiAKICAgICBTVkdEb2N1bWVudCogZG9jdW1lbnQoKSBjb25zdCB7IHJldHVybiBtX2Rv
Y3VtZW50LmdldCgpOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUv
Q2FjaGVkU2NyaXB0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRTY3Jp
cHQuY3BwCmluZGV4IDQ4ZmFjZDcuLmVkYzY4NWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9jYWNoZS9DYWNoZWRTY3JpcHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9jYWNoZS9DYWNoZWRTY3JpcHQuY3BwCkBAIC0zOSw4ICszOSw4IEBACiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAotQ2FjaGVkU2NyaXB0OjpDYWNoZWRTY3JpcHQoY29uc3QgUmVzb3VyY2VSZXF1
ZXN0JiByZXNvdXJjZVJlcXVlc3QsIGNvbnN0IFN0cmluZyYgY2hhcnNldCkKLSAgICA6IENhY2hl
ZFJlc291cmNlKHJlc291cmNlUmVxdWVzdCwgU2NyaXB0KQorQ2FjaGVkU2NyaXB0OjpDYWNoZWRT
Y3JpcHQoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXNvdXJjZVJlcXVlc3QsIGNvbnN0IFN0cmlu
ZyYgY2hhcnNldCwgU2Vzc2lvbklEIHNlc3Npb25JRCkKKyAgICA6IENhY2hlZFJlc291cmNlKHJl
c291cmNlUmVxdWVzdCwgU2NyaXB0LCBzZXNzaW9uSUQpCiAgICAgLCBtX2RlY29kZXIoVGV4dFJl
c291cmNlRGVjb2Rlcjo6Y3JlYXRlKEFTQ0lJTGl0ZXJhbCgiYXBwbGljYXRpb24vamF2YXNjcmlw
dCIpLCBjaGFyc2V0KSkKIHsKICAgICAvLyBJdCdzIGphdmFzY3JpcHQgd2Ugd2FudC4KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRTY3JpcHQuaCBiL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRTY3JpcHQuaAppbmRleCBkNDM4YjI3Li5jOWM3
M2QyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkU2NyaXB0
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFNjcmlwdC5oCkBAIC0z
NSw3ICszNSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogICAgIGNsYXNzIENhY2hlZFNjcmlw
dCBmaW5hbCA6IHB1YmxpYyBDYWNoZWRSZXNvdXJjZSB7CiAgICAgcHVibGljOgotICAgICAgICBD
YWNoZWRTY3JpcHQoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgU3RyaW5nJiBjaGFyc2V0
KTsKKyAgICAgICAgQ2FjaGVkU2NyaXB0KGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFN0
cmluZyYgY2hhcnNldCwgU2Vzc2lvbklEKTsKICAgICAgICAgdmlydHVhbCB+Q2FjaGVkU2NyaXB0
KCk7CiAKICAgICAgICAgY29uc3QgU3RyaW5nJiBzY3JpcHQoKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRUZXh0VHJhY2suY3BwIGIvU291cmNlL1dlYkNv
cmUvbG9hZGVyL2NhY2hlL0NhY2hlZFRleHRUcmFjay5jcHAKaW5kZXggOTQ5NzRhNS4uMjA1MDU0
MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFRleHRUcmFj
ay5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFRleHRUcmFjay5j
cHAKQEAgLTM5LDggKzM5LDggQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1DYWNoZWRUZXh0
VHJhY2s6OkNhY2hlZFRleHRUcmFjayhjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlc291cmNlUmVx
dWVzdCkKLSAgICA6IENhY2hlZFJlc291cmNlKHJlc291cmNlUmVxdWVzdCwgVGV4dFRyYWNrUmVz
b3VyY2UpCitDYWNoZWRUZXh0VHJhY2s6OkNhY2hlZFRleHRUcmFjayhjb25zdCBSZXNvdXJjZVJl
cXVlc3QmIHJlc291cmNlUmVxdWVzdCwgU2Vzc2lvbklEIHNlc3Npb25JRCkKKyAgICA6IENhY2hl
ZFJlc291cmNlKHJlc291cmNlUmVxdWVzdCwgVGV4dFRyYWNrUmVzb3VyY2UsIHNlc3Npb25JRCkK
IHsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFRl
eHRUcmFjay5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFRleHRUcmFjay5o
CmluZGV4IGIzZWVhN2EuLjc5M2FjOTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9jYWNoZS9DYWNoZWRUZXh0VHJhY2suaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2Fj
aGUvQ2FjaGVkVGV4dFRyYWNrLmgKQEAgLTM1LDcgKzM1LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUg
ewogCiBjbGFzcyBDYWNoZWRUZXh0VHJhY2sgZmluYWwgOiBwdWJsaWMgQ2FjaGVkUmVzb3VyY2Ug
ewogcHVibGljOgotICAgIENhY2hlZFRleHRUcmFjayhjb25zdCBSZXNvdXJjZVJlcXVlc3QmKTsK
KyAgICBDYWNoZWRUZXh0VHJhY2soY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgU2Vzc2lvbklEKTsK
ICAgICB2aXJ0dWFsIH5DYWNoZWRUZXh0VHJhY2soKTsKIAogcHJpdmF0ZToKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRYU0xTdHlsZVNoZWV0LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRYU0xTdHlsZVNoZWV0LmNwcAppbmRleCBl
YjZjOGUxLi43YTQ5YWMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUv
Q2FjaGVkWFNMU3R5bGVTaGVldC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hl
L0NhY2hlZFhTTFN0eWxlU2hlZXQuY3BwCkBAIC0zNyw4ICszNyw4IEBAIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIAogI2lmIEVOQUJMRShYU0xUKQogCi1DYWNoZWRYU0xTdHlsZVNoZWV0OjpDYWNoZWRY
U0xTdHlsZVNoZWV0KGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVzb3VyY2VSZXF1ZXN0KQotICAg
IDogQ2FjaGVkUmVzb3VyY2UocmVzb3VyY2VSZXF1ZXN0LCBYU0xTdHlsZVNoZWV0KQorQ2FjaGVk
WFNMU3R5bGVTaGVldDo6Q2FjaGVkWFNMU3R5bGVTaGVldChjb25zdCBSZXNvdXJjZVJlcXVlc3Qm
IHJlc291cmNlUmVxdWVzdCwgU2Vzc2lvbklEIHNlc3Npb25JRCkKKyAgICA6IENhY2hlZFJlc291
cmNlKHJlc291cmNlUmVxdWVzdCwgWFNMU3R5bGVTaGVldCwgc2Vzc2lvbklEKQogICAgICwgbV9k
ZWNvZGVyKFRleHRSZXNvdXJjZURlY29kZXI6OmNyZWF0ZSgidGV4dC94c2wiKSkKIHsKICAgICAv
LyBJdCdzIFhNTCB3ZSB3YW50LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2Nh
Y2hlL0NhY2hlZFhTTFN0eWxlU2hlZXQuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9D
YWNoZWRYU0xTdHlsZVNoZWV0LmgKaW5kZXggMGNiZmI2NS4uMzY5OTIzYSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFhTTFN0eWxlU2hlZXQuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkWFNMU3R5bGVTaGVldC5oCkBAIC0zNyw3
ICszNyw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICNpZiBFTkFCTEUoWFNMVCkKICAgICBjbGFz
cyBDYWNoZWRYU0xTdHlsZVNoZWV0IGZpbmFsIDogcHVibGljIENhY2hlZFJlc291cmNlIHsKICAg
ICBwdWJsaWM6Ci0gICAgICAgIENhY2hlZFhTTFN0eWxlU2hlZXQoY29uc3QgUmVzb3VyY2VSZXF1
ZXN0Jik7CisgICAgICAgIENhY2hlZFhTTFN0eWxlU2hlZXQoY29uc3QgUmVzb3VyY2VSZXF1ZXN0
JiwgU2Vzc2lvbklEKTsKIAogICAgICAgICBjb25zdCBTdHJpbmcmIHNoZWV0KCkgY29uc3QgeyBy
ZXR1cm4gbV9zaGVldDsgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2Fj
aGUvTWVtb3J5Q2FjaGUuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL01lbW9yeUNh
Y2hlLmNwcAppbmRleCBjYzZhMjI1Li45NmNkYmMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvY2FjaGUvTWVtb3J5Q2FjaGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9jYWNoZS9NZW1vcnlDYWNoZS5jcHAKQEAgLTgwLDYgKzgwLDE3IEBAIE1lbW9yeUNhY2hlOjpN
ZW1vcnlDYWNoZSgpCiB7CiB9CiAKK01lbW9yeUNhY2hlOjpDYWNoZWRSZXNvdXJjZU1hcCYgTWVt
b3J5Q2FjaGU6OmdldFNlc3Npb25NYXAoU2Vzc2lvbklEIHNlc3Npb25JRCkKK3sKKyAgICBBU1NF
UlQoc2Vzc2lvbklELmlzVmFsaWQoKSk7CisgICAgQ2FjaGVkUmVzb3VyY2VNYXAqIG1hcCA9IG1f
c2Vzc2lvblJlc291cmNlcy5nZXQoc2Vzc2lvbklEKTsKKyAgICBpZiAoIW1hcCkgeworICAgICAg
ICBtX3Nlc3Npb25SZXNvdXJjZXMuc2V0KHNlc3Npb25JRCwgc3RkOjptYWtlX3VuaXF1ZTxDYWNo
ZWRSZXNvdXJjZU1hcD4oKSk7CisgICAgICAgIG1hcCA9IG1fc2Vzc2lvblJlc291cmNlcy5nZXQo
c2Vzc2lvbklEKTsKKyAgICB9CisgICAgcmV0dXJuICptYXA7Cit9CisKIFVSTCBNZW1vcnlDYWNo
ZTo6cmVtb3ZlRnJhZ21lbnRJZGVudGlmaWVySWZOZWVkZWQoY29uc3QgVVJMJiBvcmlnaW5hbFVS
TCkKIHsKICAgICBpZiAoIW9yaWdpbmFsVVJMLmhhc0ZyYWdtZW50SWRlbnRpZmllcigpKQpAQCAt
MTAxLDE1ICsxMTIsMTYgQEAgYm9vbCBNZW1vcnlDYWNoZTo6YWRkKENhY2hlZFJlc291cmNlKiBy
ZXNvdXJjZSkKIAogICAgIEFTU0VSVChXVEY6OmlzTWFpblRocmVhZCgpKTsKIAorICAgIENhY2hl
ZFJlc291cmNlTWFwJiByZXNvdXJjZXMgPSBnZXRTZXNzaW9uTWFwKHJlc291cmNlLT5zZXNzaW9u
SUQoKSk7CiAjaWYgRU5BQkxFKENBQ0hFX1BBUlRJVElPTklORykKLSAgICBDYWNoZWRSZXNvdXJj
ZUl0ZW0qIG9yaWdpbk1hcCA9IG1fcmVzb3VyY2VzLmdldChyZXNvdXJjZS0+dXJsKCkpOworICAg
IENhY2hlZFJlc291cmNlSXRlbSogb3JpZ2luTWFwID0gcmVzb3VyY2VzLmdldChyZXNvdXJjZS0+
dXJsKCkpOwogICAgIGlmICghb3JpZ2luTWFwKSB7CiAgICAgICAgIG9yaWdpbk1hcCA9IG5ldyBD
YWNoZWRSZXNvdXJjZUl0ZW07Ci0gICAgICAgIG1fcmVzb3VyY2VzLnNldChyZXNvdXJjZS0+dXJs
KCksIGFkb3B0UHRyKG9yaWdpbk1hcCkpOworICAgICAgICByZXNvdXJjZXMuc2V0KHJlc291cmNl
LT51cmwoKSwgYWRvcHRQdHIob3JpZ2luTWFwKSk7CiAgICAgfQogICAgIG9yaWdpbk1hcC0+c2V0
KHJlc291cmNlLT5jYWNoZVBhcnRpdGlvbigpLCByZXNvdXJjZSk7CiAjZWxzZQotICAgIG1fcmVz
b3VyY2VzLnNldChyZXNvdXJjZS0+dXJsKCksIHJlc291cmNlKTsKKyAgICByZXNvdXJjZXMuc2V0
KHJlc291cmNlLT51cmwoKSwgcmVzb3VyY2UpOwogI2VuZGlmCiAgICAgcmVzb3VyY2UtPnNldElu
Q2FjaGUodHJ1ZSk7CiAgICAgCkBAIC0xMzQsMTcgKzE0NiwxOCBAQCB2b2lkIE1lbW9yeUNhY2hl
OjpyZXZhbGlkYXRpb25TdWNjZWVkZWQoQ2FjaGVkUmVzb3VyY2UqIHJldmFsaWRhdGluZ1Jlc291
cmNlLCBjbwogCiAgICAgZXZpY3QocmV2YWxpZGF0aW5nUmVzb3VyY2UpOwogCisgICAgQ2FjaGVk
UmVzb3VyY2VNYXAmIHJlc291cmNlcyA9IGdldFNlc3Npb25NYXAocmVzb3VyY2UtPnNlc3Npb25J
RCgpKTsKICNpZiBFTkFCTEUoQ0FDSEVfUEFSVElUSU9OSU5HKQotICAgIEFTU0VSVCghbV9yZXNv
dXJjZXMuZ2V0KHJlc291cmNlLT51cmwoKSkgfHwgIW1fcmVzb3VyY2VzLmdldChyZXNvdXJjZS0+
dXJsKCkpLT5nZXQocmVzb3VyY2UtPmNhY2hlUGFydGl0aW9uKCkpKTsKLSAgICBDYWNoZWRSZXNv
dXJjZUl0ZW0qIG9yaWdpbk1hcCA9IG1fcmVzb3VyY2VzLmdldChyZXNvdXJjZS0+dXJsKCkpOwor
ICAgIEFTU0VSVCghcmVzb3VyY2VzLmdldChyZXNvdXJjZS0+dXJsKCkpIHx8ICFyZXNvdXJjZXMu
Z2V0KHJlc291cmNlLT51cmwoKSktPmdldChyZXNvdXJjZS0+Y2FjaGVQYXJ0aXRpb24oKSkpOwor
ICAgIENhY2hlZFJlc291cmNlSXRlbSogb3JpZ2luTWFwID0gcmVzb3VyY2VzLmdldChyZXNvdXJj
ZS0+dXJsKCkpOwogICAgIGlmICghb3JpZ2luTWFwKSB7CiAgICAgICAgIG9yaWdpbk1hcCA9IG5l
dyBDYWNoZWRSZXNvdXJjZUl0ZW07Ci0gICAgICAgIG1fcmVzb3VyY2VzLnNldChyZXNvdXJjZS0+
dXJsKCksIGFkb3B0UHRyKG9yaWdpbk1hcCkpOworICAgICAgICByZXNvdXJjZXMuc2V0KHJlc291
cmNlLT51cmwoKSwgYWRvcHRQdHIob3JpZ2luTWFwKSk7CiAgICAgfQogICAgIG9yaWdpbk1hcC0+
c2V0KHJlc291cmNlLT5jYWNoZVBhcnRpdGlvbigpLCByZXNvdXJjZSk7CiAjZWxzZQotICAgIEFT
U0VSVCghbV9yZXNvdXJjZXMuZ2V0KHJlc291cmNlLT51cmwoKSkpOwotICAgIG1fcmVzb3VyY2Vz
LnNldChyZXNvdXJjZS0+dXJsKCksIHJlc291cmNlKTsKKyAgICBBU1NFUlQoIXJlc291cmNlcy5n
ZXQocmVzb3VyY2UtPnVybCgpKSk7CisgICAgcmVzb3VyY2VzLnNldChyZXNvdXJjZS0+dXJsKCks
IHJlc291cmNlKTsKICNlbmRpZgogICAgIHJlc291cmNlLT5zZXRJbkNhY2hlKHRydWUpOwogICAg
IHJlc291cmNlLT51cGRhdGVSZXNwb25zZUFmdGVyUmV2YWxpZGF0aW9uKHJlc3BvbnNlKTsKQEAg
LTE3MSwyMCArMTg0LDMxIEBAIHZvaWQgTWVtb3J5Q2FjaGU6OnJldmFsaWRhdGlvbkZhaWxlZChD
YWNoZWRSZXNvdXJjZSogcmV2YWxpZGF0aW5nUmVzb3VyY2UpCiAKIENhY2hlZFJlc291cmNlKiBN
ZW1vcnlDYWNoZTo6cmVzb3VyY2VGb3JVUkwoY29uc3QgVVJMJiByZXNvdXJjZVVSTCkKIHsKLSAg
ICByZXR1cm4gcmVzb3VyY2VGb3JSZXF1ZXN0KFJlc291cmNlUmVxdWVzdChyZXNvdXJjZVVSTCkp
OworICAgIHJldHVybiByZXNvdXJjZUZvclVSTChyZXNvdXJjZVVSTCwgU2Vzc2lvbklEOjpkZWZh
dWx0U2Vzc2lvbklEKCkpOwogfQogCi1DYWNoZWRSZXNvdXJjZSogTWVtb3J5Q2FjaGU6OnJlc291
cmNlRm9yUmVxdWVzdChjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QpCitDYWNoZWRSZXNv
dXJjZSogTWVtb3J5Q2FjaGU6OnJlc291cmNlRm9yVVJMKGNvbnN0IFVSTCYgcmVzb3VyY2VVUkws
IFNlc3Npb25JRCBzZXNzaW9uSUQpCit7CisgICAgcmV0dXJuIHJlc291cmNlRm9yUmVxdWVzdChS
ZXNvdXJjZVJlcXVlc3QocmVzb3VyY2VVUkwpLCBzZXNzaW9uSUQpOworfQorCitDYWNoZWRSZXNv
dXJjZSogTWVtb3J5Q2FjaGU6OnJlc291cmNlRm9yUmVxdWVzdChjb25zdCBSZXNvdXJjZVJlcXVl
c3QmIHJlcXVlc3QsIFNlc3Npb25JRCBzZXNzaW9uSUQpCit7CisgICAgcmV0dXJuIHJlc291cmNl
Rm9yUmVxdWVzdEltcGwocmVxdWVzdCwgZ2V0U2Vzc2lvbk1hcChzZXNzaW9uSUQpKTsKK30KKwor
Q2FjaGVkUmVzb3VyY2UqIE1lbW9yeUNhY2hlOjpyZXNvdXJjZUZvclJlcXVlc3RJbXBsKGNvbnN0
IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgQ2FjaGVkUmVzb3VyY2VNYXAmIHJlc291cmNlcykK
IHsKICAgICBBU1NFUlQoV1RGOjppc01haW5UaHJlYWQoKSk7CiAgICAgVVJMIHVybCA9IHJlbW92
ZUZyYWdtZW50SWRlbnRpZmllcklmTmVlZGVkKHJlcXVlc3QudXJsKCkpOworCiAjaWYgRU5BQkxF
KENBQ0hFX1BBUlRJVElPTklORykKLSAgICBDYWNoZWRSZXNvdXJjZUl0ZW0qIGl0ZW0gPSBtX3Jl
c291cmNlcy5nZXQodXJsKTsKKyAgICBDYWNoZWRSZXNvdXJjZUl0ZW0qIGl0ZW0gPSByZXNvdXJj
ZXMuZ2V0KHVybCk7CiAgICAgQ2FjaGVkUmVzb3VyY2UqIHJlc291cmNlID0gMDsKICAgICBpZiAo
aXRlbSkKICAgICAgICAgcmVzb3VyY2UgPSBpdGVtLT5nZXQocmVxdWVzdC5jYWNoZVBhcnRpdGlv
bigpKTsKICNlbHNlCi0gICAgQ2FjaGVkUmVzb3VyY2UqIHJlc291cmNlID0gbV9yZXNvdXJjZXMu
Z2V0KHVybCk7CisgICAgQ2FjaGVkUmVzb3VyY2UqIHJlc291cmNlID0gcmVzb3VyY2VzLmdldCh1
cmwpOwogI2VuZGlmCiAgICAgYm9vbCB3YXNQdXJnZWFibGUgPSBNZW1vcnlDYWNoZTo6c2hvdWxk
TWFrZVJlc291cmNlUHVyZ2VhYmxlT25FdmljdGlvbigpICYmIHJlc291cmNlICYmIHJlc291cmNl
LT5pc1B1cmdlYWJsZSgpOwogICAgIGlmIChyZXNvdXJjZSAmJiAhcmVzb3VyY2UtPm1ha2VQdXJn
ZWFibGUoZmFsc2UpKSB7CkBAIC0yMjUsMTMgKzI0OSwxNCBAQCBzdGF0aWMgQ2FjaGVkSW1hZ2VD
bGllbnQmIGR1bW15Q2FjaGVkSW1hZ2VDbGllbnQoKQogYm9vbCBNZW1vcnlDYWNoZTo6YWRkSW1h
Z2VUb0NhY2hlKE5hdGl2ZUltYWdlUHRyIGltYWdlLCBjb25zdCBVUkwmIHVybCwgY29uc3QgU3Ry
aW5nJiBjYWNoZVBhcnRpdGlvbikKIHsKICAgICBBU1NFUlQoaW1hZ2UpOworICAgIFNlc3Npb25J
RCBzZXNzaW9uSUQgPSBTZXNzaW9uSUQ6OmRlZmF1bHRTZXNzaW9uSUQoKTsKICAgICByZW1vdmVJ
bWFnZUZyb21DYWNoZSh1cmwsIGNhY2hlUGFydGl0aW9uKTsgLy8gUmVtb3ZlIGNhY2hlIGVudHJ5
IGlmIGl0IGFscmVhZHkgZXhpc3RzLgogCiAgICAgUmVmUHRyPEJpdG1hcEltYWdlPiBiaXRtYXBJ
bWFnZSA9IEJpdG1hcEltYWdlOjpjcmVhdGUoaW1hZ2UsIG51bGxwdHIpOwogICAgIGlmICghYml0
bWFwSW1hZ2UpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIHN0ZDo6dW5pcXVlX3B0cjxD
YWNoZWRJbWFnZT4gY2FjaGVkSW1hZ2UgPSBzdGQ6Om1ha2VfdW5pcXVlPENhY2hlZEltYWdlPih1
cmwsIGJpdG1hcEltYWdlLmdldCgpLCBDYWNoZWRJbWFnZTo6TWFudWFsbHlDYWNoZWQpOworICAg
IHN0ZDo6dW5pcXVlX3B0cjxDYWNoZWRJbWFnZT4gY2FjaGVkSW1hZ2UgPSBzdGQ6Om1ha2VfdW5p
cXVlPENhY2hlZEltYWdlPih1cmwsIGJpdG1hcEltYWdlLmdldCgpLCBDYWNoZWRJbWFnZTo6TWFu
dWFsbHlDYWNoZWQsIHNlc3Npb25JRCk7CiAKICAgICAvLyBBY3R1YWwgcmVsZWFzZSBvZiB0aGUg
Q0dJbWFnZVJlZiBpcyBkb25lIGluIEJpdG1hcEltYWdlLgogICAgIENGUmV0YWluKGltYWdlKTsK
QEAgLTI0MCwyMSArMjY1LDIxIEBAIGJvb2wgTWVtb3J5Q2FjaGU6OmFkZEltYWdlVG9DYWNoZShO
YXRpdmVJbWFnZVB0ciBpbWFnZSwgY29uc3QgVVJMJiB1cmwsIGNvbnN0IFN0CiAjaWYgRU5BQkxF
KENBQ0hFX1BBUlRJVElPTklORykKICAgICBjYWNoZWRJbWFnZS0+cmVzb3VyY2VSZXF1ZXN0KCku
c2V0Q2FjaGVQYXJ0aXRpb24oY2FjaGVQYXJ0aXRpb24pOwogI2VuZGlmCi0gICAgYWRkKGNhY2hl
ZEltYWdlLnJlbGVhc2UoKSk7CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKIHZvaWQgTWVtb3J5Q2Fj
aGU6OnJlbW92ZUltYWdlRnJvbUNhY2hlKGNvbnN0IFVSTCYgdXJsLCBjb25zdCBTdHJpbmcmIGNh
Y2hlUGFydGl0aW9uKQogeworICAgIENhY2hlZFJlc291cmNlTWFwJiByZXNvdXJjZXMgPSBnZXRT
ZXNzaW9uTWFwKFNlc3Npb25JRDo6ZGVmYXVsdFNlc3Npb25JRCgpKTsKICNpZiBFTkFCTEUoQ0FD
SEVfUEFSVElUSU9OSU5HKQogICAgIENhY2hlZFJlc291cmNlKiByZXNvdXJjZTsKLSAgICBpZiAo
Q2FjaGVkUmVzb3VyY2VJdGVtKiBpdGVtID0gbV9yZXNvdXJjZXMuZ2V0KHVybCkpCisgICAgaWYg
KENhY2hlZFJlc291cmNlSXRlbSogaXRlbSA9IHJlc291cmNlcy5nZXQodXJsKSkKICAgICAgICAg
cmVzb3VyY2UgPSBpdGVtLT5nZXQoUmVzb3VyY2VSZXF1ZXN0OjpwYXJ0aXRpb25OYW1lKGNhY2hl
UGFydGl0aW9uKSk7CiAgICAgZWxzZQogICAgICAgICByZXNvdXJjZSA9IG51bGxwdHI7CiAjZWxz
ZQogICAgIFVOVVNFRF9QQVJBTShjYWNoZVBhcnRpdGlvbik7Ci0gICAgQ2FjaGVkUmVzb3VyY2Uq
IHJlc291cmNlID0gbV9yZXNvdXJjZXMuZ2V0KHVybCk7CisgICAgQ2FjaGVkUmVzb3VyY2UqIHJl
c291cmNlID0gcmVzb3VyY2VzLmdldCh1cmwpOwogI2VuZGlmCiAgICAgaWYgKCFyZXNvdXJjZSkK
ICAgICAgICAgcmV0dXJuOwpAQCAtNTIyLDE3ICs1NDcsMTggQEAgdm9pZCBNZW1vcnlDYWNoZTo6
ZXZpY3QoQ2FjaGVkUmVzb3VyY2UqIHJlc291cmNlKQogICAgIExPRyhSZXNvdXJjZUxvYWRpbmcs
ICJFdmljdGluZyByZXNvdXJjZSAlcCBmb3IgJyVzJyBmcm9tIGNhY2hlIiwgcmVzb3VyY2UsIHJl
c291cmNlLT51cmwoKS5zdHJpbmcoKS5sYXRpbjEoKS5kYXRhKCkpOwogICAgIC8vIFRoZSByZXNv
dXJjZSBtYXkgaGF2ZSBhbHJlYWR5IGJlZW4gcmVtb3ZlZCBieSBzb21lb25lIG90aGVyIHRoYW4g
b3VyIGNhbGxlciwKICAgICAvLyB3aG8gbmVlZGVkIGEgZnJlc2ggY29weSBmb3IgYSByZWxvYWQu
IFNlZSA8aHR0cDovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI0NzkjYzY+Lgor
ICAgIENhY2hlZFJlc291cmNlTWFwJiByZXNvdXJjZXMgPSBnZXRTZXNzaW9uTWFwKHJlc291cmNl
LT5zZXNzaW9uSUQoKSk7CiAgICAgaWYgKHJlc291cmNlLT5pbkNhY2hlKCkpIHsKICAgICAgICAg
Ly8gUmVtb3ZlIGZyb20gdGhlIHJlc291cmNlIG1hcC4KICNpZiBFTkFCTEUoQ0FDSEVfUEFSVElU
SU9OSU5HKQotICAgICAgICBDYWNoZWRSZXNvdXJjZUl0ZW0qIGl0ZW0gPSBtX3Jlc291cmNlcy5n
ZXQocmVzb3VyY2UtPnVybCgpKTsKKyAgICAgICAgQ2FjaGVkUmVzb3VyY2VJdGVtKiBpdGVtID0g
cmVzb3VyY2VzLmdldChyZXNvdXJjZS0+dXJsKCkpOwogICAgICAgICBpZiAoaXRlbSkgewogICAg
ICAgICAgICAgaXRlbS0+cmVtb3ZlKHJlc291cmNlLT5jYWNoZVBhcnRpdGlvbigpKTsKICAgICAg
ICAgICAgIGlmICghaXRlbS0+c2l6ZSgpKQotICAgICAgICAgICAgICAgIG1fcmVzb3VyY2VzLnJl
bW92ZShyZXNvdXJjZS0+dXJsKCkpOworICAgICAgICAgICAgICAgIHJlc291cmNlcy5yZW1vdmUo
cmVzb3VyY2UtPnVybCgpKTsKICAgICAgICAgfQogI2Vsc2UKLSAgICAgICAgbV9yZXNvdXJjZXMu
cmVtb3ZlKHJlc291cmNlLT51cmwoKSk7CisgICAgICAgIHJlc291cmNlcy5yZW1vdmUocmVzb3Vy
Y2UtPnVybCgpKTsKICNlbmRpZgogICAgICAgICByZXNvdXJjZS0+c2V0SW5DYWNoZShmYWxzZSk7
CiAKQEAgLTU0Nyw5ICs1NzMsOSBAQCB2b2lkIE1lbW9yeUNhY2hlOjpldmljdChDYWNoZWRSZXNv
dXJjZSogcmVzb3VyY2UpCiAgICAgICAgICAgICBhZGp1c3RTaXplKHJlc291cmNlLT5oYXNDbGll
bnRzKCksIC1zdGF0aWNfY2FzdDxpbnQ+KHJlc291cmNlLT5zaXplKCkpKTsKICAgICB9IGVsc2UK
ICNpZiBFTkFCTEUoQ0FDSEVfUEFSVElUSU9OSU5HKQotICAgICAgICBBU1NFUlQoIW1fcmVzb3Vy
Y2VzLmdldChyZXNvdXJjZS0+dXJsKCkpIHx8IG1fcmVzb3VyY2VzLmdldChyZXNvdXJjZS0+dXJs
KCkpLT5nZXQocmVzb3VyY2UtPmNhY2hlUGFydGl0aW9uKCkpICE9IHJlc291cmNlKTsKKyAgICAg
ICAgQVNTRVJUKCFyZXNvdXJjZXMuZ2V0KHJlc291cmNlLT51cmwoKSkgfHwgcmVzb3VyY2VzLmdl
dChyZXNvdXJjZS0+dXJsKCkpLT5nZXQocmVzb3VyY2UtPmNhY2hlUGFydGl0aW9uKCkpICE9IHJl
c291cmNlKTsKICNlbHNlCi0gICAgICAgIEFTU0VSVChtX3Jlc291cmNlcy5nZXQocmVzb3VyY2Ut
PnVybCgpKSAhPSByZXNvdXJjZSk7CisgICAgICAgIEFTU0VSVChyZXNvdXJjZXMuZ2V0KHJlc291
cmNlLT51cmwoKSkgIT0gcmVzb3VyY2UpOwogI2VuZGlmCiAKICAgICByZXNvdXJjZS0+ZGVsZXRl
SWZQb3NzaWJsZSgpOwpAQCAtNjY5LDMxICs2OTUsMzMgQEAgdm9pZCBNZW1vcnlDYWNoZTo6cmVt
b3ZlUmVzb3VyY2VzV2l0aE9yaWdpbihTZWN1cml0eU9yaWdpbiogb3JpZ2luKQogewogICAgIFZl
Y3RvcjxDYWNoZWRSZXNvdXJjZSo+IHJlc291cmNlc1dpdGhPcmlnaW47CiAKLSAgICBDYWNoZWRS
ZXNvdXJjZU1hcDo6aXRlcmF0b3IgZSA9IG1fcmVzb3VyY2VzLmVuZCgpOworICAgIGZvciAoYXV0
byYgcmVzb3VyY2VzIDogbV9zZXNzaW9uUmVzb3VyY2VzKSB7CisgICAgICAgIENhY2hlZFJlc291
cmNlTWFwOjppdGVyYXRvciBlID0gcmVzb3VyY2VzLnZhbHVlLT5lbmQoKTsKICNpZiBFTkFCTEUo
Q0FDSEVfUEFSVElUSU9OSU5HKQotICAgIFN0cmluZyBvcmlnaW5QYXJ0aXRpb24gPSBSZXNvdXJj
ZVJlcXVlc3Q6OnBhcnRpdGlvbk5hbWUob3JpZ2luLT5ob3N0KCkpOworICAgICAgICBTdHJpbmcg
b3JpZ2luUGFydGl0aW9uID0gUmVzb3VyY2VSZXF1ZXN0OjpwYXJ0aXRpb25OYW1lKG9yaWdpbi0+
aG9zdCgpKTsKICNlbmRpZgogCi0gICAgZm9yIChDYWNoZWRSZXNvdXJjZU1hcDo6aXRlcmF0b3Ig
aXQgPSBtX3Jlc291cmNlcy5iZWdpbigpOyBpdCAhPSBlOyArK2l0KSB7CisgICAgICAgIGZvciAo
Q2FjaGVkUmVzb3VyY2VNYXA6Oml0ZXJhdG9yIGl0ID0gcmVzb3VyY2VzLnZhbHVlLT5iZWdpbigp
OyBpdCAhPSBlOyArK2l0KSB7CiAjaWYgRU5BQkxFKENBQ0hFX1BBUlRJVElPTklORykKLSAgICAg
ICAgZm9yIChDYWNoZWRSZXNvdXJjZUl0ZW06Oml0ZXJhdG9yIGl0ZW1JdGVyYXRvciA9IGl0LT52
YWx1ZS0+YmVnaW4oKTsgaXRlbUl0ZXJhdG9yICE9IGl0LT52YWx1ZS0+ZW5kKCk7ICsraXRlbUl0
ZXJhdG9yKSB7Ci0gICAgICAgICAgICBDYWNoZWRSZXNvdXJjZSogcmVzb3VyY2UgPSBpdGVtSXRl
cmF0b3ItPnZhbHVlOwotICAgICAgICAgICAgU3RyaW5nIHBhcnRpdGlvbiA9IGl0ZW1JdGVyYXRv
ci0+a2V5OwotICAgICAgICAgICAgaWYgKHBhcnRpdGlvbiA9PSBvcmlnaW5QYXJ0aXRpb24pIHsK
LSAgICAgICAgICAgICAgICByZXNvdXJjZXNXaXRoT3JpZ2luLmFwcGVuZChyZXNvdXJjZSk7Ci0g
ICAgICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgICAgICB9CisgICAgICAgICAgICBmb3Ig
KENhY2hlZFJlc291cmNlSXRlbTo6aXRlcmF0b3IgaXRlbUl0ZXJhdG9yID0gaXQtPnZhbHVlLT5i
ZWdpbigpOyBpdGVtSXRlcmF0b3IgIT0gaXQtPnZhbHVlLT5lbmQoKTsgKytpdGVtSXRlcmF0b3Ip
IHsKKyAgICAgICAgICAgICAgICBDYWNoZWRSZXNvdXJjZSogcmVzb3VyY2UgPSBpdGVtSXRlcmF0
b3ItPnZhbHVlOworICAgICAgICAgICAgICAgIFN0cmluZyBwYXJ0aXRpb24gPSBpdGVtSXRlcmF0
b3ItPmtleTsKKyAgICAgICAgICAgICAgICBpZiAocGFydGl0aW9uID09IG9yaWdpblBhcnRpdGlv
bikgeworICAgICAgICAgICAgICAgICAgICByZXNvdXJjZXNXaXRoT3JpZ2luLmFwcGVuZChyZXNv
dXJjZSk7CisgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgICAgIH0K
ICNlbHNlCi0gICAgICAgICAgICBDYWNoZWRSZXNvdXJjZSogcmVzb3VyY2UgPSBpdC0+dmFsdWU7
CisgICAgICAgICAgICAgICAgQ2FjaGVkUmVzb3VyY2UqIHJlc291cmNlID0gaXQtPnZhbHVlOwog
I2VuZGlmCi0gICAgICAgICAgICBSZWZQdHI8U2VjdXJpdHlPcmlnaW4+IHJlc291cmNlT3JpZ2lu
ID0gU2VjdXJpdHlPcmlnaW46OmNyZWF0ZUZyb21TdHJpbmcocmVzb3VyY2UtPnVybCgpKTsKLSAg
ICAgICAgICAgIGlmICghcmVzb3VyY2VPcmlnaW4pCi0gICAgICAgICAgICAgICAgY29udGludWU7
Ci0gICAgICAgICAgICBpZiAocmVzb3VyY2VPcmlnaW4tPmVxdWFsKG9yaWdpbikpCi0gICAgICAg
ICAgICAgICAgcmVzb3VyY2VzV2l0aE9yaWdpbi5hcHBlbmQocmVzb3VyY2UpOworICAgICAgICAg
ICAgICAgIFJlZlB0cjxTZWN1cml0eU9yaWdpbj4gcmVzb3VyY2VPcmlnaW4gPSBTZWN1cml0eU9y
aWdpbjo6Y3JlYXRlRnJvbVN0cmluZyhyZXNvdXJjZS0+dXJsKCkpOworICAgICAgICAgICAgICAg
IGlmICghcmVzb3VyY2VPcmlnaW4pCisgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAg
ICAgICAgICAgICAgIGlmIChyZXNvdXJjZU9yaWdpbi0+ZXF1YWwob3JpZ2luKSkKKyAgICAgICAg
ICAgICAgICAgICAgcmVzb3VyY2VzV2l0aE9yaWdpbi5hcHBlbmQocmVzb3VyY2UpOwogI2lmIEVO
QUJMRShDQUNIRV9QQVJUSVRJT05JTkcpCi0gICAgICAgIH0KKyAgICAgICAgICAgIH0KICNlbmRp
ZgorICAgICAgICB9CiAgICAgfQogCiAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCByZXNvdXJj
ZXNXaXRoT3JpZ2luLnNpemUoKTsgKytpKQpAQCAtNzA1LDE2ICs3MzMsMTggQEAgdm9pZCBNZW1v
cnlDYWNoZTo6Z2V0T3JpZ2luc1dpdGhDYWNoZShTZWN1cml0eU9yaWdpblNldCYgb3JpZ2lucykK
ICNpZiBFTkFCTEUoQ0FDSEVfUEFSVElUSU9OSU5HKQogICAgIERFRklORV9TVEFUSUNfTE9DQUwo
U3RyaW5nLCBodHRwU3RyaW5nLCAoImh0dHAiKSk7CiAjZW5kaWYKLSAgICBDYWNoZWRSZXNvdXJj
ZU1hcDo6aXRlcmF0b3IgZSA9IG1fcmVzb3VyY2VzLmVuZCgpOwotICAgIGZvciAoQ2FjaGVkUmVz
b3VyY2VNYXA6Oml0ZXJhdG9yIGl0ID0gbV9yZXNvdXJjZXMuYmVnaW4oKTsgaXQgIT0gZTsgKytp
dCkgeworICAgIGZvciAoYXV0byYgcmVzb3VyY2VzIDogbV9zZXNzaW9uUmVzb3VyY2VzKSB7Cisg
ICAgICAgIENhY2hlZFJlc291cmNlTWFwOjppdGVyYXRvciBlID0gcmVzb3VyY2VzLnZhbHVlLT5l
bmQoKTsKKyAgICAgICAgZm9yIChDYWNoZWRSZXNvdXJjZU1hcDo6aXRlcmF0b3IgaXQgPSByZXNv
dXJjZXMudmFsdWUtPmJlZ2luKCk7IGl0ICE9IGU7ICsraXQpIHsKICNpZiBFTkFCTEUoQ0FDSEVf
UEFSVElUSU9OSU5HKQotICAgICAgICBpZiAoaXQtPnZhbHVlLT5iZWdpbigpLT5rZXkgPT0gZW1w
dHlTdHJpbmcoKSkKLSAgICAgICAgICAgIG9yaWdpbnMuYWRkKFNlY3VyaXR5T3JpZ2luOjpjcmVh
dGVGcm9tU3RyaW5nKGl0LT52YWx1ZS0+YmVnaW4oKS0+dmFsdWUtPnVybCgpKSk7Ci0gICAgICAg
IGVsc2UKLSAgICAgICAgICAgIG9yaWdpbnMuYWRkKFNlY3VyaXR5T3JpZ2luOjpjcmVhdGUoaHR0
cFN0cmluZywgaXQtPnZhbHVlLT5iZWdpbigpLT5rZXksIDApKTsKKyAgICAgICAgICAgIGlmIChp
dC0+dmFsdWUtPmJlZ2luKCktPmtleSA9PSBlbXB0eVN0cmluZygpKQorICAgICAgICAgICAgICAg
IG9yaWdpbnMuYWRkKFNlY3VyaXR5T3JpZ2luOjpjcmVhdGVGcm9tU3RyaW5nKGl0LT52YWx1ZS0+
YmVnaW4oKS0+dmFsdWUtPnVybCgpKSk7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAg
ICAgb3JpZ2lucy5hZGQoU2VjdXJpdHlPcmlnaW46OmNyZWF0ZShodHRwU3RyaW5nLCBpdC0+dmFs
dWUtPmJlZ2luKCktPmtleSwgMCkpOwogI2Vsc2UKLSAgICAgICAgb3JpZ2lucy5hZGQoU2VjdXJp
dHlPcmlnaW46OmNyZWF0ZUZyb21TdHJpbmcoaXQtPnZhbHVlLT51cmwoKSkpOworICAgICAgICAg
ICAgb3JpZ2lucy5hZGQoU2VjdXJpdHlPcmlnaW46OmNyZWF0ZUZyb21TdHJpbmcoaXQtPnZhbHVl
LT51cmwoKSkpOwogI2VuZGlmCisgICAgICAgIH0KICAgICB9CiB9CiAKQEAgLTgwOCwzMSArODM4
LDM5IEBAIHZvaWQgTWVtb3J5Q2FjaGU6OmFkanVzdFNpemUoYm9vbCBsaXZlLCBpbnQgZGVsdGEp
CiAgICAgfQogfQogCi12b2lkIE1lbW9yeUNhY2hlOjpyZW1vdmVVcmxGcm9tQ2FjaGUoU2NyaXB0
RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgY29uc3QgU3RyaW5nJiB1cmxTdHJpbmcpCit2b2lk
IE1lbW9yeUNhY2hlOjpyZW1vdmVVcmxGcm9tQ2FjaGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCog
Y29udGV4dCwgY29uc3QgU3RyaW5nJiB1cmxTdHJpbmcsIFNlc3Npb25JRCBzZXNzaW9uSUQpCiB7
Ci0gICAgcmVtb3ZlUmVxdWVzdEZyb21DYWNoZShjb250ZXh0LCBSZXNvdXJjZVJlcXVlc3QodXJs
U3RyaW5nKSk7CisgICAgcmVtb3ZlUmVxdWVzdEZyb21DYWNoZShjb250ZXh0LCBSZXNvdXJjZVJl
cXVlc3QodXJsU3RyaW5nKSwgc2Vzc2lvbklEKTsKIH0KIAotdm9pZCBNZW1vcnlDYWNoZTo6cmVt
b3ZlUmVxdWVzdEZyb21DYWNoZShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBjb25z
dCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QpCit2b2lkIE1lbW9yeUNhY2hlOjpyZW1vdmVSZXF1
ZXN0RnJvbUNhY2hlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIGNvbnN0IFJlc291
cmNlUmVxdWVzdCYgcmVxdWVzdCwgU2Vzc2lvbklEIHNlc3Npb25JRCkKIHsKICAgICBpZiAoY29u
dGV4dC0+aXNXb3JrZXJHbG9iYWxTY29wZSgpKSB7Ci0gICAgICAgIHRvV29ya2VyR2xvYmFsU2Nv
cGUoY29udGV4dCktPnRocmVhZCgpLndvcmtlckxvYWRlclByb3h5KCkucG9zdFRhc2tUb0xvYWRl
cihjcmVhdGVDYWxsYmFja1Rhc2soJmNyb3NzVGhyZWFkUmVtb3ZlUmVxdWVzdEZyb21DYWNoZSwg
cmVxdWVzdCkpOworICAgICAgICB0b1dvcmtlckdsb2JhbFNjb3BlKGNvbnRleHQpLT50aHJlYWQo
KS53b3JrZXJMb2FkZXJQcm94eSgpLnBvc3RUYXNrVG9Mb2FkZXIoY3JlYXRlQ2FsbGJhY2tUYXNr
KCZjcm9zc1RocmVhZFJlbW92ZVJlcXVlc3RGcm9tQ2FjaGUsIHJlcXVlc3QsIHNlc3Npb25JRCkp
OwogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgcmVtb3ZlUmVxdWVzdEZyb21DYWNoZUlt
cGwoY29udGV4dCwgcmVxdWVzdCk7CisgICAgcmVtb3ZlUmVxdWVzdEZyb21DYWNoZUltcGwoY29u
dGV4dCwgcmVxdWVzdCwgc2Vzc2lvbklEKTsKIH0KIAotdm9pZCBNZW1vcnlDYWNoZTo6cmVtb3Zl
UmVxdWVzdEZyb21DYWNoZUltcGwoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIGNvbnN0IFJlc291
cmNlUmVxdWVzdCYgcmVxdWVzdCkKK3ZvaWQgTWVtb3J5Q2FjaGU6OnJlbW92ZVJlcXVlc3RGcm9t
Q2FjaGVJbXBsKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBjb25zdCBSZXNvdXJjZVJlcXVlc3Qm
IHJlcXVlc3QsIFNlc3Npb25JRCBzZXNzaW9uSUQpCiB7Ci0gICAgaWYgKENhY2hlZFJlc291cmNl
KiByZXNvdXJjZSA9IG1lbW9yeUNhY2hlKCktPnJlc291cmNlRm9yUmVxdWVzdChyZXF1ZXN0KSkK
KyAgICBpZiAoQ2FjaGVkUmVzb3VyY2UqIHJlc291cmNlID0gbWVtb3J5Q2FjaGUoKS0+cmVzb3Vy
Y2VGb3JSZXF1ZXN0KHJlcXVlc3QsIHNlc3Npb25JRCkpCiAgICAgICAgIG1lbW9yeUNhY2hlKCkt
PnJlbW92ZShyZXNvdXJjZSk7CiB9CiAKLXZvaWQgTWVtb3J5Q2FjaGU6OmNyb3NzVGhyZWFkUmVt
b3ZlUmVxdWVzdEZyb21DYWNoZShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBQYXNz
T3duUHRyPFdlYkNvcmU6OkNyb3NzVGhyZWFkUmVzb3VyY2VSZXF1ZXN0RGF0YT4gcmVxdWVzdERh
dGEpCit2b2lkIE1lbW9yeUNhY2hlOjpyZW1vdmVSZXF1ZXN0RnJvbVNlc3Npb25DYWNoZXMoU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCosIGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCkKK3sK
KyAgICBmb3IgKGF1dG8mIHJlc291cmNlcyA6IG1lbW9yeUNhY2hlKCktPm1fc2Vzc2lvblJlc291
cmNlcykgeworICAgICAgICBpZiAoQ2FjaGVkUmVzb3VyY2UqIHJlc291cmNlID0gbWVtb3J5Q2Fj
aGUoKS0+cmVzb3VyY2VGb3JSZXF1ZXN0SW1wbChyZXF1ZXN0LCAqcmVzb3VyY2VzLnZhbHVlKSkK
KyAgICAgICAgbWVtb3J5Q2FjaGUoKS0+cmVtb3ZlKHJlc291cmNlKTsKKyAgICB9Cit9CisKK3Zv
aWQgTWVtb3J5Q2FjaGU6OmNyb3NzVGhyZWFkUmVtb3ZlUmVxdWVzdEZyb21DYWNoZShTY3JpcHRF
eGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBQYXNzT3duUHRyPFdlYkNvcmU6OkNyb3NzVGhyZWFk
UmVzb3VyY2VSZXF1ZXN0RGF0YT4gcmVxdWVzdERhdGEsIFNlc3Npb25JRCBzZXNzaW9uSUQpCiB7
CiAgICAgT3duUHRyPFJlc291cmNlUmVxdWVzdD4gcmVxdWVzdChSZXNvdXJjZVJlcXVlc3Q6OmFk
b3B0KHJlcXVlc3REYXRhKSk7Ci0gICAgTWVtb3J5Q2FjaGU6OnJlbW92ZVJlcXVlc3RGcm9tQ2Fj
aGVJbXBsKGNvbnRleHQsICpyZXF1ZXN0KTsKKyAgICBNZW1vcnlDYWNoZTo6cmVtb3ZlUmVxdWVz
dEZyb21DYWNoZUltcGwoY29udGV4dCwgKnJlcXVlc3QsIHNlc3Npb25JRCk7CiB9CiAKIHZvaWQg
TWVtb3J5Q2FjaGU6OlR5cGVTdGF0aXN0aWM6OmFkZFJlc291cmNlKENhY2hlZFJlc291cmNlKiBv
KQpAQCAtODU1LDM4ICs4OTMsNDEgQEAgdm9pZCBNZW1vcnlDYWNoZTo6VHlwZVN0YXRpc3RpYzo6
YWRkUmVzb3VyY2UoQ2FjaGVkUmVzb3VyY2UqIG8pCiBNZW1vcnlDYWNoZTo6U3RhdGlzdGljcyBN
ZW1vcnlDYWNoZTo6Z2V0U3RhdGlzdGljcygpCiB7CiAgICAgU3RhdGlzdGljcyBzdGF0czsKLSAg
ICBDYWNoZWRSZXNvdXJjZU1hcDo6aXRlcmF0b3IgZSA9IG1fcmVzb3VyY2VzLmVuZCgpOwotICAg
IGZvciAoQ2FjaGVkUmVzb3VyY2VNYXA6Oml0ZXJhdG9yIGkgPSBtX3Jlc291cmNlcy5iZWdpbigp
OyBpICE9IGU7ICsraSkgeworCisgICAgZm9yIChhdXRvICZyZXNvdXJjZXMgOiBtX3Nlc3Npb25S
ZXNvdXJjZXMpIHsKKyAgICAgICAgQ2FjaGVkUmVzb3VyY2VNYXA6Oml0ZXJhdG9yIGUgPSByZXNv
dXJjZXMudmFsdWUtPmVuZCgpOworICAgICAgICBmb3IgKENhY2hlZFJlc291cmNlTWFwOjppdGVy
YXRvciBpID0gcmVzb3VyY2VzLnZhbHVlLT5iZWdpbigpOyBpICE9IGU7ICsraSkgewogI2lmIEVO
QUJMRShDQUNIRV9QQVJUSVRJT05JTkcpCi0gICAgICAgIGZvciAoQ2FjaGVkUmVzb3VyY2VJdGVt
OjppdGVyYXRvciBpdGVtSXRlcmF0b3IgPSBpLT52YWx1ZS0+YmVnaW4oKTsgaXRlbUl0ZXJhdG9y
ICE9IGktPnZhbHVlLT5lbmQoKTsgKytpdGVtSXRlcmF0b3IpIHsKLSAgICAgICAgICAgIENhY2hl
ZFJlc291cmNlKiByZXNvdXJjZSA9IGl0ZW1JdGVyYXRvci0+dmFsdWU7CisgICAgICAgICAgICBm
b3IgKENhY2hlZFJlc291cmNlSXRlbTo6aXRlcmF0b3IgaXRlbUl0ZXJhdG9yID0gaS0+dmFsdWUt
PmJlZ2luKCk7IGl0ZW1JdGVyYXRvciAhPSBpLT52YWx1ZS0+ZW5kKCk7ICsraXRlbUl0ZXJhdG9y
KSB7CisgICAgICAgICAgICAgICAgQ2FjaGVkUmVzb3VyY2UqIHJlc291cmNlID0gaXRlbUl0ZXJh
dG9yLT52YWx1ZTsKICNlbHNlCi0gICAgICAgICAgICBDYWNoZWRSZXNvdXJjZSogcmVzb3VyY2Ug
PSBpLT52YWx1ZTsKKyAgICAgICAgICAgICAgICBDYWNoZWRSZXNvdXJjZSogcmVzb3VyY2UgPSBp
LT52YWx1ZTsKICNlbmRpZgotICAgICAgICAgICAgc3dpdGNoIChyZXNvdXJjZS0+dHlwZSgpKSB7
Ci0gICAgICAgICAgICBjYXNlIENhY2hlZFJlc291cmNlOjpJbWFnZVJlc291cmNlOgotICAgICAg
ICAgICAgICAgIHN0YXRzLmltYWdlcy5hZGRSZXNvdXJjZShyZXNvdXJjZSk7Ci0gICAgICAgICAg
ICAgICAgYnJlYWs7Ci0gICAgICAgICAgICBjYXNlIENhY2hlZFJlc291cmNlOjpDU1NTdHlsZVNo
ZWV0OgotICAgICAgICAgICAgICAgIHN0YXRzLmNzc1N0eWxlU2hlZXRzLmFkZFJlc291cmNlKHJl
c291cmNlKTsKLSAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgIGNhc2UgQ2FjaGVk
UmVzb3VyY2U6OlNjcmlwdDoKLSAgICAgICAgICAgICAgICBzdGF0cy5zY3JpcHRzLmFkZFJlc291
cmNlKHJlc291cmNlKTsKLSAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICBz
d2l0Y2ggKHJlc291cmNlLT50eXBlKCkpIHsKKyAgICAgICAgICAgICAgICBjYXNlIENhY2hlZFJl
c291cmNlOjpJbWFnZVJlc291cmNlOgorICAgICAgICAgICAgICAgICAgICBzdGF0cy5pbWFnZXMu
YWRkUmVzb3VyY2UocmVzb3VyY2UpOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAg
ICAgICAgICAgICBjYXNlIENhY2hlZFJlc291cmNlOjpDU1NTdHlsZVNoZWV0OgorICAgICAgICAg
ICAgICAgICAgICBzdGF0cy5jc3NTdHlsZVNoZWV0cy5hZGRSZXNvdXJjZShyZXNvdXJjZSk7Cisg
ICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIGNhc2UgQ2FjaGVkUmVz
b3VyY2U6OlNjcmlwdDoKKyAgICAgICAgICAgICAgICAgICAgc3RhdHMuc2NyaXB0cy5hZGRSZXNv
dXJjZShyZXNvdXJjZSk7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogI2lmIEVOQUJMRShY
U0xUKQotICAgICAgICAgICAgY2FzZSBDYWNoZWRSZXNvdXJjZTo6WFNMU3R5bGVTaGVldDoKLSAg
ICAgICAgICAgICAgICBzdGF0cy54c2xTdHlsZVNoZWV0cy5hZGRSZXNvdXJjZShyZXNvdXJjZSk7
Ci0gICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgY2FzZSBDYWNoZWRSZXNv
dXJjZTo6WFNMU3R5bGVTaGVldDoKKyAgICAgICAgICAgICAgICAgICAgc3RhdHMueHNsU3R5bGVT
aGVldHMuYWRkUmVzb3VyY2UocmVzb3VyY2UpOworICAgICAgICAgICAgICAgICAgICBicmVhazsK
ICNlbmRpZgotICAgICAgICAgICAgY2FzZSBDYWNoZWRSZXNvdXJjZTo6Rm9udFJlc291cmNlOgot
ICAgICAgICAgICAgICAgIHN0YXRzLmZvbnRzLmFkZFJlc291cmNlKHJlc291cmNlKTsKLSAgICAg
ICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgIGRlZmF1bHQ6Ci0gICAgICAgICAgICAgICAg
YnJlYWs7Ci0gICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgY2FzZSBDYWNoZWRSZXNvdXJj
ZTo6Rm9udFJlc291cmNlOgorICAgICAgICAgICAgICAgICAgICBzdGF0cy5mb250cy5hZGRSZXNv
dXJjZShyZXNvdXJjZSk7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAg
ICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAg
IH0KICNpZiBFTkFCTEUoQ0FDSEVfUEFSVElUSU9OSU5HKQotICAgICAgICB9CisgICAgICAgICAg
ICB9CiAjZW5kaWYKKyAgICAgICAgfQogICAgIH0KICAgICByZXR1cm4gc3RhdHM7CiB9CkBAIC04
OTgsOCArOTM5LDExIEBAIHZvaWQgTWVtb3J5Q2FjaGU6OnNldERpc2FibGVkKGJvb2wgZGlzYWJs
ZWQpCiAgICAgICAgIHJldHVybjsKIAogICAgIGZvciAoOzspIHsKLSAgICAgICAgQ2FjaGVkUmVz
b3VyY2VNYXA6Oml0ZXJhdG9yIG91dGVySXRlcmF0b3IgPSBtX3Jlc291cmNlcy5iZWdpbigpOwot
ICAgICAgICBpZiAob3V0ZXJJdGVyYXRvciA9PSBtX3Jlc291cmNlcy5lbmQoKSkKKyAgICAgICAg
U2Vzc2lvbkNhY2hlZFJlc291cmNlTWFwOjppdGVyYXRvciBzZXNzaW9uSXRlcmF0b3IgPSBtX3Nl
c3Npb25SZXNvdXJjZXMuYmVnaW4oKTsKKyAgICAgICAgaWYgKHNlc3Npb25JdGVyYXRvciA9PSBt
X3Nlc3Npb25SZXNvdXJjZXMuZW5kKCkpCisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgQ2Fj
aGVkUmVzb3VyY2VNYXA6Oml0ZXJhdG9yIG91dGVySXRlcmF0b3IgPSBzZXNzaW9uSXRlcmF0b3It
PnZhbHVlLT5iZWdpbigpOworICAgICAgICBpZiAob3V0ZXJJdGVyYXRvciA9PSBzZXNzaW9uSXRl
cmF0b3ItPnZhbHVlLT5lbmQoKSkKICAgICAgICAgICAgIGJyZWFrOwogI2lmIEVOQUJMRShDQUNI
RV9QQVJUSVRJT05JTkcpCiAgICAgICAgIENhY2hlZFJlc291cmNlSXRlbTo6aXRlcmF0b3IgaW5u
ZXJJdGVyYXRvciA9IG91dGVySXRlcmF0b3ItPnZhbHVlLT5iZWdpbigpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL01lbW9yeUNhY2hlLmggYi9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvY2FjaGUvTWVtb3J5Q2FjaGUuaAppbmRleCBjMDIzYTk3Li5iYWJiNzdjIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvTWVtb3J5Q2FjaGUuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvTWVtb3J5Q2FjaGUuaApAQCAtMjcsNiArMjcsNyBA
QAogCiAjaW5jbHVkZSAiTmF0aXZlSW1hZ2VQdHIuaCIKICNpbmNsdWRlICJTZWN1cml0eU9yaWdp
bkhhc2guaCIKKyNpbmNsdWRlICJTZXNzaW9uSURIYXNoLmgiCiAjaW5jbHVkZSA8d3RmL0hhc2hN
YXAuaD4KICNpbmNsdWRlIDx3dGYvSGFzaFNldC5oPgogI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJs
ZS5oPgpAQCAtODcsNiArODgsNyBAQCBwdWJsaWM6CiAjZWxzZQogICAgIHR5cGVkZWYgSGFzaE1h
cDxTdHJpbmcsIENhY2hlZFJlc291cmNlKj4gQ2FjaGVkUmVzb3VyY2VNYXA7CiAjZW5kaWYKKyAg
ICB0eXBlZGVmIEhhc2hNYXA8U2Vzc2lvbklELCBzdGQ6OnVuaXF1ZV9wdHI8Q2FjaGVkUmVzb3Vy
Y2VNYXA+PiBTZXNzaW9uQ2FjaGVkUmVzb3VyY2VNYXA7CiAKICAgICBzdHJ1Y3QgTFJVTGlzdCB7
CiAgICAgICAgIENhY2hlZFJlc291cmNlKiBtX2hlYWQ7CkBAIC0xMTksOSArMTIxLDEwIEBAIHB1
YmxpYzoKICAgICB9OwogCiAgICAgQ2FjaGVkUmVzb3VyY2UqIHJlc291cmNlRm9yVVJMKGNvbnN0
IFVSTCYpOwotICAgIENhY2hlZFJlc291cmNlKiByZXNvdXJjZUZvclJlcXVlc3QoY29uc3QgUmVz
b3VyY2VSZXF1ZXN0Jik7Ci0gICAgCi0gICAgYm9vbCBhZGQoQ2FjaGVkUmVzb3VyY2UqIHJlc291
cmNlKTsKKyAgICBDYWNoZWRSZXNvdXJjZSogcmVzb3VyY2VGb3JVUkwoY29uc3QgVVJMJiwgU2Vz
c2lvbklEKTsKKyAgICBDYWNoZWRSZXNvdXJjZSogcmVzb3VyY2VGb3JSZXF1ZXN0KGNvbnN0IFJl
c291cmNlUmVxdWVzdCYsIFNlc3Npb25JRCk7CisKKyAgICBib29sIGFkZChDYWNoZWRSZXNvdXJj
ZSopOwogICAgIHZvaWQgcmVtb3ZlKENhY2hlZFJlc291cmNlKiByZXNvdXJjZSkgeyBldmljdChy
ZXNvdXJjZSk7IH0KIAogICAgIHN0YXRpYyBVUkwgcmVtb3ZlRnJhZ21lbnRJZGVudGlmaWVySWZO
ZWVkZWQoY29uc3QgVVJMJiBvcmlnaW5hbFVSTCk7CkBAIC0xNzAsOCArMTczLDkgQEAgcHVibGlj
OgogICAgIHZvaWQgZmx1c2hDYWNoZWRJbWFnZXNUb0Rpc2soKTsgLy8gRmx1c2ggZW5jb2RlZCBk
YXRhIGZyb20gcmVzb3VyY2VzIHN0aWxsIHJlZmVyZW5jZWQgYnkgd2ViIHBhZ2VzLgogI2VuZGlm
CiAKLSAgICBzdGF0aWMgdm9pZCByZW1vdmVVcmxGcm9tQ2FjaGUoU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCosIGNvbnN0IFN0cmluZyYgdXJsU3RyaW5nKTsKLSAgICBzdGF0aWMgdm9pZCByZW1vdmVS
ZXF1ZXN0RnJvbUNhY2hlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBjb25zdCBSZXNvdXJjZVJl
cXVlc3QmKTsKKyAgICBzdGF0aWMgdm9pZCByZW1vdmVVcmxGcm9tQ2FjaGUoU2NyaXB0RXhlY3V0
aW9uQ29udGV4dCosIGNvbnN0IFN0cmluZyYgdXJsU3RyaW5nLCBTZXNzaW9uSUQpOworICAgIHN0
YXRpYyB2b2lkIHJlbW92ZVJlcXVlc3RGcm9tQ2FjaGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCos
IGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIFNlc3Npb25JRCk7CisgICAgc3RhdGljIHZvaWQgcmVt
b3ZlUmVxdWVzdEZyb21TZXNzaW9uQ2FjaGVzKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBjb25z
dCBSZXNvdXJjZVJlcXVlc3QmKTsKIAogICAgIC8vIEZ1bmN0aW9uIHRvIGNvbGxlY3QgY2FjaGUg
c3RhdGlzdGljcyBmb3IgdGhlIGNhY2hlcyB3aW5kb3cgaW4gdGhlIFNhZmFyaSBEZWJ1ZyBtZW51
LgogICAgIFN0YXRpc3RpY3MgZ2V0U3RhdGlzdGljcygpOwpAQCAtMjIxLDggKzIyNSwxMSBAQCBw
cml2YXRlOgogICAgIGJvb2wgbWFrZVJlc291cmNlUHVyZ2VhYmxlKENhY2hlZFJlc291cmNlKik7
CiAgICAgdm9pZCBldmljdChDYWNoZWRSZXNvdXJjZSopOwogCi0gICAgc3RhdGljIHZvaWQgcmVt
b3ZlUmVxdWVzdEZyb21DYWNoZUltcGwoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIGNvbnN0IFJl
c291cmNlUmVxdWVzdCYpOwotICAgIHN0YXRpYyB2b2lkIGNyb3NzVGhyZWFkUmVtb3ZlUmVxdWVz
dEZyb21DYWNoZShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgUGFzc093blB0cjxDcm9zc1RocmVh
ZFJlc291cmNlUmVxdWVzdERhdGE+KTsKKyAgICBDYWNoZWRSZXNvdXJjZSogcmVzb3VyY2VGb3JS
ZXF1ZXN0SW1wbChjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBDYWNoZWRSZXNvdXJjZU1hcCYpOwor
ICAgIHN0YXRpYyB2b2lkIHJlbW92ZVJlcXVlc3RGcm9tQ2FjaGVJbXBsKFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQqLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBTZXNzaW9uSUQpOworICAgIHN0YXRp
YyB2b2lkIGNyb3NzVGhyZWFkUmVtb3ZlUmVxdWVzdEZyb21DYWNoZShTY3JpcHRFeGVjdXRpb25D
b250ZXh0KiwgUGFzc093blB0cjxDcm9zc1RocmVhZFJlc291cmNlUmVxdWVzdERhdGE+LCBTZXNz
aW9uSUQpOworCisgICAgQ2FjaGVkUmVzb3VyY2VNYXAmIGdldFNlc3Npb25NYXAoU2Vzc2lvbklE
KTsKIAogICAgIGJvb2wgbV9kaXNhYmxlZDsgIC8vIFdoZXRoZXIgb3Igbm90IHRoZSBjYWNoZSBp
cyBlbmFibGVkLgogICAgIGJvb2wgbV9wcnVuZUVuYWJsZWQ7CkBAIC0yNDYsNyArMjUzLDcgQEAg
cHJpdmF0ZToKICAgICAKICAgICAvLyBBIFVSTC1iYXNlZCBtYXAgb2YgYWxsIHJlc291cmNlcyB0
aGF0IGFyZSBpbiB0aGUgY2FjaGUgKGluY2x1ZGluZyB0aGUgZnJlc2hlc3QgdmVyc2lvbiBvZiBv
YmplY3RzIHRoYXQgYXJlIGN1cnJlbnRseSBiZWluZyAKICAgICAvLyByZWZlcmVuY2VkIGJ5IGEg
V2ViIHBhZ2UpLgotICAgIENhY2hlZFJlc291cmNlTWFwIG1fcmVzb3VyY2VzOworICAgIFNlc3Np
b25DYWNoZWRSZXNvdXJjZU1hcCBtX3Nlc3Npb25SZXNvdXJjZXM7CiB9OwogCiBpbmxpbmUgYm9v
bCBNZW1vcnlDYWNoZTo6c2hvdWxkTWFrZVJlc291cmNlUHVyZ2VhYmxlT25FdmljdGlvbigpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Dcm9zc1RocmVhZENvcGllci5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Dcm9zc1RocmVhZENvcGllci5jcHAKaW5kZXggNTdk
MDRlMS4uMWIxYWMxMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vQ3Jvc3NU
aHJlYWRDb3BpZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0Nyb3NzVGhyZWFk
Q29waWVyLmNwcApAQCAtMzcsNiArMzcsNyBAQAogI2luY2x1ZGUgIlJlc291cmNlUmVxdWVzdC5o
IgogI2luY2x1ZGUgIlJlc291cmNlUmVzcG9uc2UuaCIKICNpbmNsdWRlICJTZXJpYWxpemVkU2Ny
aXB0VmFsdWUuaCIKKyNpbmNsdWRlICJTZXNzaW9uSUQuaCIKICNpbmNsdWRlIDx3dGYvQXNzZXJ0
aW9ucy5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCkBAIC03NCw2ICs3NSwx
MSBAQCBDcm9zc1RocmVhZENvcGllckJhc2U8ZmFsc2UsIGZhbHNlLCBSZXNvdXJjZVJlc3BvbnNl
Pjo6VHlwZSBDcm9zc1RocmVhZENvcGllckJhcwogICAgIHJldHVybiByZXNwb25zZS5jb3B5RGF0
YSgpOwogfQogCitDcm9zc1RocmVhZENvcGllckJhc2U8ZmFsc2UsIGZhbHNlLCBTZXNzaW9uSUQ+
OjpUeXBlIENyb3NzVGhyZWFkQ29waWVyQmFzZTxmYWxzZSwgZmFsc2UsIFNlc3Npb25JRD46OmNv
cHkoY29uc3QgU2Vzc2lvbklEJiBzZXNzaW9uSUQpCit7CisgICAgcmV0dXJuIHNlc3Npb25JRDsK
K30KKwogI2lmIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQogCiBJbmRleGVkREI6OlRyYW5zYWN0
aW9uTW9kZSBDcm9zc1RocmVhZENvcGllckJhc2U8ZmFsc2UsIGZhbHNlLCBJbmRleGVkREI6OlRy
YW5zYWN0aW9uTW9kZT46OmNvcHkoY29uc3QgSW5kZXhlZERCOjpUcmFuc2FjdGlvbk1vZGUmIG1v
ZGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Dcm9zc1RocmVhZENvcGll
ci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vQ3Jvc3NUaHJlYWRDb3BpZXIuaAppbmRleCBj
YWYyNzlmLi4zOThlODRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Dcm9z
c1RocmVhZENvcGllci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0Nyb3NzVGhyZWFk
Q29waWVyLmgKQEAgLTQ2LDYgKzQ2LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIGNsYXNz
IFJlc291cmNlRXJyb3I7CiAgICAgY2xhc3MgUmVzb3VyY2VSZXF1ZXN0OwogICAgIGNsYXNzIFJl
c291cmNlUmVzcG9uc2U7CisgICAgY2xhc3MgU2Vzc2lvbklEOwogICAgIHN0cnVjdCBDcm9zc1Ro
cmVhZFJlc291cmNlUmVzcG9uc2VEYXRhOwogICAgIHN0cnVjdCBDcm9zc1RocmVhZFJlc291cmNl
UmVxdWVzdERhdGE7CiAgICAgc3RydWN0IFRocmVhZGFibGVMb2FkZXJPcHRpb25zOwpAQCAtMTQ1
LDYgKzE0NiwxMSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIHN0YXRpYyBUeXBlIGNv
cHkoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYpOwogICAgIH07CiAKKyAgICB0ZW1wbGF0ZTw+IHN0
cnVjdCBDcm9zc1RocmVhZENvcGllckJhc2U8ZmFsc2UsIGZhbHNlLCBTZXNzaW9uSUQ+IHsKKyAg
ICAgICAgdHlwZWRlZiBTZXNzaW9uSUQgVHlwZTsKKyAgICAgICAgc3RhdGljIFR5cGUgY29weShj
b25zdCBTZXNzaW9uSUQmKTsKKyAgICB9OworCiAjaWYgRU5BQkxFKElOREVYRURfREFUQUJBU0Up
CiAgICAgbmFtZXNwYWNlIEluZGV4ZWREQiB7CiAgICAgICAgIGVudW0gY2xhc3MgVHJhbnNhY3Rp
b25Nb2RlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9S
ZXNvdXJjZVJlcXVlc3QuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvUmVz
b3VyY2VSZXF1ZXN0LmgKaW5kZXggNDc2MWFkZS4uNWJhNGMzNyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9SZXNvdXJjZVJlcXVlc3QuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL1Jlc291cmNlUmVxdWVzdC5oCkBAIC01Nyw3
ICs1Nyw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgewogICAgICAgICB9CiAKLSAg
ICAgICAgUmVzb3VyY2VSZXF1ZXN0KGNvbnN0IFVSTCYgdXJsLCBjb25zdCBTdHJpbmcmIHJlZmVy
cmVyLCBSZXNvdXJjZVJlcXVlc3RDYWNoZVBvbGljeSBwb2xpY3kgPSBVc2VQcm90b2NvbENhY2hl
UG9saWN5KSAKKyAgICAgICAgUmVzb3VyY2VSZXF1ZXN0KGNvbnN0IFVSTCYgdXJsLCBjb25zdCBT
dHJpbmcmIHJlZmVycmVyLCBSZXNvdXJjZVJlcXVlc3RDYWNoZVBvbGljeSBwb2xpY3kgPSBVc2VQ
cm90b2NvbENhY2hlUG9saWN5KQogICAgICAgICAgICAgOiBSZXNvdXJjZVJlcXVlc3RCYXNlKHVy
bCwgcG9saWN5KQogI2lmIFBMQVRGT1JNKElPUykKICAgICAgICAgICAgICwgbV9tYWluUmVzb3Vy
Y2VSZXF1ZXN0KGZhbHNlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlclNuYXBzaG90dGVkUGx1Z0luLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJTbmFwc2hvdHRlZFBsdWdJbi5jcHAKaW5kZXggYTE2NGY2ZC4uNzRjMzlhMSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclNuYXBzaG90dGVkUGx1Z0luLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU25hcHNob3R0ZWRQbHVnSW4uY3Bw
CkBAIC0zMSw2ICszMSw3IEBACiAjaW5jbHVkZSAiQ2hyb21lQ2xpZW50LmgiCiAjaW5jbHVkZSAi
Q3Vyc29yLmgiCiAjaW5jbHVkZSAiRmlsdGVyLmgiCisjaW5jbHVkZSAiRnJhbWUuaCIKICNpbmNs
dWRlICJGcmFtZUxvYWRlckNsaWVudC5oIgogI2luY2x1ZGUgIkZyYW1lVmlldy5oIgogI2luY2x1
ZGUgIkdyYWRpZW50LmgiCkBAIC04NSw3ICs4Niw3IEBAIHZvaWQgUmVuZGVyU25hcHNob3R0ZWRQ
bHVnSW46OnVwZGF0ZVNuYXBzaG90KFBhc3NSZWZQdHI8SW1hZ2U+IGltYWdlKQogICAgIGlmICgh
aW1hZ2UpCiAgICAgICAgIHJldHVybjsKIAotICAgIG1fc25hcHNob3RSZXNvdXJjZS0+c2V0Q2Fj
aGVkSW1hZ2UobmV3IENhY2hlZEltYWdlKGltYWdlLmdldCgpKSk7CisgICAgbV9zbmFwc2hvdFJl
c291cmNlLT5zZXRDYWNoZWRJbWFnZShuZXcgQ2FjaGVkSW1hZ2UoaW1hZ2UuZ2V0KCksIHZpZXco
KS5mcmFtZVZpZXcoKS5mcmFtZSgpLnBhZ2UoKS0+c2Vzc2lvbklEKCkpKTsKICAgICByZXBhaW50
KCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAppbmRleCAyNTQwYjI4Li42
MDg0NmI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCkBAIC0zNTYsOSArMzU2
LDkgQEAgYm9vbCBJbnRlcm5hbHM6OmlzUHJlbG9hZGVkKGNvbnN0IFN0cmluZyYgdXJsKQogCiBi
b29sIEludGVybmFsczo6aXNMb2FkaW5nRnJvbU1lbW9yeUNhY2hlKGNvbnN0IFN0cmluZyYgdXJs
KQogewotICAgIGlmICghY29udGV4dERvY3VtZW50KCkpCisgICAgaWYgKCFjb250ZXh0RG9jdW1l
bnQoKSB8fCAhY29udGV4dERvY3VtZW50KCktPnBhZ2UoKSkKICAgICAgICAgcmV0dXJuIGZhbHNl
OwotICAgIENhY2hlZFJlc291cmNlKiByZXNvdXJjZSA9IG1lbW9yeUNhY2hlKCktPnJlc291cmNl
Rm9yVVJMKGNvbnRleHREb2N1bWVudCgpLT5jb21wbGV0ZVVSTCh1cmwpKTsKKyAgICBDYWNoZWRS
ZXNvdXJjZSogcmVzb3VyY2UgPSBtZW1vcnlDYWNoZSgpLT5yZXNvdXJjZUZvclVSTChjb250ZXh0
RG9jdW1lbnQoKS0+Y29tcGxldGVVUkwodXJsKSwgY29udGV4dERvY3VtZW50KCktPnBhZ2UoKS0+
c2Vzc2lvbklEKCkpOwogICAgIHJldHVybiByZXNvdXJjZSAmJiByZXNvdXJjZS0+c3RhdHVzKCkg
PT0gQ2FjaGVkUmVzb3VyY2U6OkNhY2hlZDsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCBhYWVkN2VkLi5iM2M2
ZjBmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2Vi
S2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyIEBACisyMDE0LTAzLTAzICBNYXJ0aW4gSG9jayAg
PG1ob2NrQGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgc3VwcG9ydCBmb3Igc2Vzc2lvbnMgdG8g
TWVtb3J5Q2FjaGUuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xMjc3OTQKKworICAgICAgICBSZXZpZXdlZCBieSBTYW0gV2VpbmlnLgorCisgICAgICAg
ICogV2ViS2l0LnZjeHByb2ovV2ViS2l0RXhwb3J0R2VuZXJhdG9yL1dlYktpdEV4cG9ydHMuZGVm
LmluOgorCiAyMDE0LTAzLTAyICBBbmRyZWFzIEtsaW5nICA8YWtsaW5nQGFwcGxlLmNvbT4KIAog
ICAgICAgICBCbGluZCBXaW5kb3dzIGJ1aWxkIGZpeC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvV2ViS2l0LnZjeHByb2ovV2ViS2l0RXhwb3J0R2VuZXJhdG9yL1dlYktpdEV4cG9ydHMuZGVm
LmluIGIvU291cmNlL1dlYktpdC9XZWJLaXQudmN4cHJvai9XZWJLaXRFeHBvcnRHZW5lcmF0b3Iv
V2ViS2l0RXhwb3J0cy5kZWYuaW4KaW5kZXggZTFjMWQxYS4uYzQ4MTZhYSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9XZWJLaXQudmN4cHJvai9XZWJLaXRFeHBvcnRHZW5lcmF0b3IvV2ViS2l0
RXhwb3J0cy5kZWYuaW4KKysrIGIvU291cmNlL1dlYktpdC9XZWJLaXQudmN4cHJvai9XZWJLaXRF
eHBvcnRHZW5lcmF0b3IvV2ViS2l0RXhwb3J0cy5kZWYuaW4KQEAgLTQ3NywzICs0NzcsNSBAQCBF
WFBPUlRTCiAgICAgICAgIHN5bWJvbFdpdGhQb2ludGVyKD8/MURPTVdpbmRvd0BXZWJDb3JlQEBV
QUVAWFosID8/MURPTVdpbmRvd0BXZWJDb3JlQEBVRUFBQFhaKQogICAgICAgICBzeW1ib2xXaXRo
UG9pbnRlcig/dmlzaWJsZUNvbnRlbnRSZWN0QFNjcm9sbGFibGVBcmVhQFdlYkNvcmVAQFFCRT9B
VkludFJlY3RAMkBXNFZpc2libGVDb250ZW50UmVjdEJlaGF2aW9yQDEyQEBaLCA/dmlzaWJsZUNv
bnRlbnRSZWN0QFNjcm9sbGFibGVBcmVhQFdlYkNvcmVAQFFFQkE/QVZJbnRSZWN0QDJAVzRWaXNp
YmxlQ29udGVudFJlY3RCZWhhdmlvckAxMkBAWikKICAgICAgICAgc3ltYm9sV2l0aFBvaW50ZXIo
P2Rpc2FibGVBY2Nlc3NpYmlsaXR5QEFYT2JqZWN0Q2FjaGVAV2ViQ29yZUBAU0FYWFosID9kaXNh
YmxlQWNjZXNzaWJpbGl0eUBBWE9iamVjdENhY2hlQFdlYkNvcmVAQFNBWFhaKQorICAgICAgICBz
eW1ib2xXaXRoUG9pbnRlcig/c2Vzc2lvbklEQFBhZ2VAV2ViQ29yZUBAUUJFP0FWU2Vzc2lvbklE
QDJAWFosID9zZXNzaW9uSURAUGFnZUBXZWJDb3JlQEBRRUJBP0FWU2Vzc2lvbklEQDJAWFopCisg
ICAgICAgIHN5bWJvbFdpdGhQb2ludGVyKD9yZXNvdXJjZUZvclVSTEBNZW1vcnlDYWNoZUBXZWJD
b3JlQEBRQUVQQVZDYWNoZWRSZXNvdXJjZUAyQEFCVlVSTEAyQFZTZXNzaW9uSURAMkBAWiwgP3Jl
c291cmNlRm9yVVJMQE1lbW9yeUNhY2hlQFdlYkNvcmVAQFFFQUFQQVZDYWNoZWRSZXNvdXJjZUAy
QEFCVlVSTEAyQFZTZXNzaW9uSURAMkBAWikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCA1MDc1NDFiLi4wM2U0MmM0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktp
dDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAKKzIwMTQtMDMtMDMgIE1hcnRpbiBIb2NrICA8
bWhvY2tAYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBzdXBwb3J0IGZvciBzZXNzaW9ucyB0byBN
ZW1vcnlDYWNoZS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTEyNzc5NAorCisgICAgICAgIFJldmlld2VkIGJ5IFNhbSBXZWluaWcuCisKKyAgICAgICAg
KiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkZXIuaDogQWRkIHNlc3Npb25JRCgp
IG1ldGhvZC4KKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Jlc291cmNlTG9hZGVyOjpzZXNzaW9u
SUQpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL21hYy9EaXNrQ2FjaGVNb25pdG9yLmg6IEFk
ZCBzZXNzaW9uSUQgbWVtYmVyLgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL21hYy9EaXNrQ2Fj
aGVNb25pdG9yLm1tOgorICAgICAgICAoV2ViS2l0OjpEaXNrQ2FjaGVNb25pdG9yOjpEaXNrQ2Fj
aGVNb25pdG9yKTogU2VuZCBzZXNzaW9uSUQgdG8gTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uOjpE
aWRDYWNoZVJlc291cmNlLgorICAgICAgICAqIFdlYlByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJv
Y2Vzc0Nvbm5lY3Rpb24uY3BwOiBBZGQgc2Vzc2lvbklEIHBhcmFtZXRlciB0byBkaWRDYWNoZVJl
c291cmNlIGFuZCBwYXNzIHRvIE1lbW9yeUNhY2hlLgorICAgICAgICAoV2ViS2l0OjpOZXR3b3Jr
UHJvY2Vzc0Nvbm5lY3Rpb246OmRpZENhY2hlUmVzb3VyY2UpOgorICAgICAgICAqIFdlYlByb2Nl
c3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24uaDogRGl0dG8uCisgICAgICAgICog
V2ViUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbi5tZXNzYWdlcy5pbjog
RGl0dG8uCisKIDIwMTQtMDMtMDMgIEJlbmphbWluIFBvdWxhaW4gIDxicG91bGFpbkBhcHBsZS5j
b20+CiAKICAgICAgICAgW2lPU11bV0syXSBSZWdyZXNzaW9uOiBTY3JvbGxWaWV3J3Mgc2Nyb2xs
IG9mZnNldCBpcyBuZXZlciBzZXQgYWZ0ZXIgcjE2NDcwMgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZGVyLmggYi9Tb3VyY2UvV2Vi
S2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkZXIuaAppbmRleCA2OWM1OWYz
Li5lYjc2OWYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3
b3JrUmVzb3VyY2VMb2FkZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9O
ZXR3b3JrUmVzb3VyY2VMb2FkZXIuaApAQCAtNzIsNiArNzIsNyBAQCBwdWJsaWM6CiAKICAgICBX
ZWJDb3JlOjpSZXNvdXJjZUxvYWRQcmlvcml0eSBwcmlvcml0eSgpIHsgcmV0dXJuIG1fcHJpb3Jp
dHk7IH0KICAgICBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QoKSB7IHJldHVybiBt
X3JlcXVlc3Q7IH0KKyAgICBXZWJDb3JlOjpTZXNzaW9uSUQgc2Vzc2lvbklEKCkgY29uc3QgeyBy
ZXR1cm4gbV9zZXNzaW9uSUQ7IH0KIAogICAgIFdlYkNvcmU6OlJlc291cmNlSGFuZGxlKiBoYW5k
bGUoKSBjb25zdCB7IHJldHVybiBtX2hhbmRsZS5nZXQoKTsgfQogICAgIHZvaWQgZGlkQ29udmVy
dEhhbmRsZVRvRG93bmxvYWQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQ
cm9jZXNzL21hYy9EaXNrQ2FjaGVNb25pdG9yLmggYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJv
Y2Vzcy9tYWMvRGlza0NhY2hlTW9uaXRvci5oCmluZGV4IDMxODgzYzUuLjFkMDcxZDQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL21hYy9EaXNrQ2FjaGVNb25pdG9y
LmgKKysrIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvbWFjL0Rpc2tDYWNoZU1vbml0
b3IuaApAQCAtMjgsNiArMjgsNyBAQAogCiAjaW5jbHVkZSAiTWVzc2FnZVNlbmRlci5oIgogI2lu
Y2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VSZXF1ZXN0Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9TZXNz
aW9uSUQuaD4KICNpbmNsdWRlIDx3dGYvUnVuTG9vcC5oPgogCiB0eXBlZGVmIGNvbnN0IHN0cnVj
dCBfQ0ZDYWNoZWRVUkxSZXNwb25zZSogQ0ZDYWNoZWRVUkxSZXNwb25zZVJlZjsKQEAgLTUyLDYg
KzUzLDcgQEAgcHJpdmF0ZToKIAogICAgIFJlZlB0cjxOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJv
Y2Vzcz4gbV9jb25uZWN0aW9uVG9XZWJQcm9jZXNzOwogICAgIFdlYkNvcmU6OlJlc291cmNlUmVx
dWVzdCBtX3Jlc291cmNlUmVxdWVzdDsKKyAgICBXZWJDb3JlOjpTZXNzaW9uSUQgbV9zZXNzaW9u
SUQ7CiB9OwogCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL21h
Yy9EaXNrQ2FjaGVNb25pdG9yLm1tIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvbWFj
L0Rpc2tDYWNoZU1vbml0b3IubW0KaW5kZXggMzgwZGExZi4uZWIwYTcxZCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvbWFjL0Rpc2tDYWNoZU1vbml0b3IubW0KKysr
IGIvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvbWFjL0Rpc2tDYWNoZU1vbml0b3IubW0K
QEAgLTYyLDYgKzYyLDcgQEAgdm9pZCBEaXNrQ2FjaGVNb25pdG9yOjptb25pdG9yRmlsZUJhY2tp
bmdTdG9yZUNyZWF0aW9uKENGQ2FjaGVkVVJMUmVzcG9uc2VSZWYgY2EKIERpc2tDYWNoZU1vbml0
b3I6OkRpc2tDYWNoZU1vbml0b3IoQ0ZDYWNoZWRVUkxSZXNwb25zZVJlZiBjYWNoZWRSZXNwb25z
ZSwgTmV0d29ya1Jlc291cmNlTG9hZGVyKiBsb2FkZXIpCiAgICAgOiBtX2Nvbm5lY3Rpb25Ub1dl
YlByb2Nlc3MobG9hZGVyLT5jb25uZWN0aW9uVG9XZWJQcm9jZXNzKCkpCiAgICAgLCBtX3Jlc291
cmNlUmVxdWVzdChsb2FkZXItPnJlcXVlc3QoKSkKKyAgICAsIG1fc2Vzc2lvbklEKGxvYWRlci0+
c2Vzc2lvbklEKCkpCiB7CiAgICAgQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsKIApAQCAtODgs
NyArODksNyBAQCBEaXNrQ2FjaGVNb25pdG9yOjpEaXNrQ2FjaGVNb25pdG9yKENGQ2FjaGVkVVJM
UmVzcG9uc2VSZWYgY2FjaGVkUmVzcG9uc2UsIE5ldHdvcgogICAgICAgICBpZiAoaGFuZGxlLmlz
TnVsbCgpKQogICAgICAgICAgICAgcmV0dXJuOwogCi0gICAgICAgIG1vbml0b3ItPnNlbmQoTWVz
c2FnZXM6Ok5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbjo6RGlkQ2FjaGVSZXNvdXJjZShtb25pdG9y
LT5yZXNvdXJjZVJlcXVlc3QoKSwgaGFuZGxlKSk7CisgICAgICAgIG1vbml0b3ItPnNlbmQoTWVz
c2FnZXM6Ok5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbjo6RGlkQ2FjaGVSZXNvdXJjZShtb25pdG9y
LT5yZXNvdXJjZVJlcXVlc3QoKSwgaGFuZGxlLCBtX3Nlc3Npb25JRCkpOwogICAgIH07CiAKICAg
ICBfQ0ZDYWNoZWRVUkxSZXNwb25zZVNldEJlY2FtZUZpbGVCYWNrZWRDYWxsQmFja0Jsb2NrKGNh
Y2hlZFJlc3BvbnNlLCBibG9jaywgZGlzcGF0Y2hfZ2V0X21haW5fcXVldWUoKSk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NDb25u
ZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJv
Y2Vzc0Nvbm5lY3Rpb24uY3BwCmluZGV4IGIyMTZlMTIuLjYzOGI4OTcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24u
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vz
c0Nvbm5lY3Rpb24uY3BwCkBAIC0zNiw2ICszNiw3IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9DYWNo
ZWRSZXNvdXJjZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvTWVtb3J5Q2FjaGUuaD4KICNpbmNsdWRl
IDxXZWJDb3JlL1Jlc291cmNlQnVmZmVyLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9TZXNzaW9uSUQu
aD4KIAogI2lmIEVOQUJMRShORVRXT1JLX1BST0NFU1MpCiAKQEAgLTgxLDkgKzgyLDkgQEAgdm9p
ZCBOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb246OmRpZFJlY2VpdmVJbnZhbGlkTWVzc2FnZShJUEM6
OkNvbm5lY3Rpb24qLCBJUEM6OlMKIH0KIAogI2lmIEVOQUJMRShTSEFSRUFCTEVfUkVTT1VSQ0Up
Ci12b2lkIE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbjo6ZGlkQ2FjaGVSZXNvdXJjZShjb25zdCBS
ZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIGNvbnN0IFNoYXJlYWJsZVJlc291cmNlOjpIYW5kbGUm
IGhhbmRsZSkKK3ZvaWQgTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uOjpkaWRDYWNoZVJlc291cmNl
KGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgY29uc3QgU2hhcmVhYmxlUmVzb3VyY2U6
OkhhbmRsZSYgaGFuZGxlLCBTZXNzaW9uSUQgc2Vzc2lvbklEKQogewotICAgIENhY2hlZFJlc291
cmNlKiByZXNvdXJjZSA9IG1lbW9yeUNhY2hlKCktPnJlc291cmNlRm9yUmVxdWVzdChyZXF1ZXN0
KTsKKyAgICBDYWNoZWRSZXNvdXJjZSogcmVzb3VyY2UgPSBtZW1vcnlDYWNoZSgpLT5yZXNvdXJj
ZUZvclJlcXVlc3QocmVxdWVzdCwgc2Vzc2lvbklEKTsKICAgICBpZiAoIXJlc291cmNlKQogICAg
ICAgICByZXR1cm47CiAgICAgCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L05ldHdvcmsvTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uLmgKaW5kZXggODQyZjZlYi4u
OTM2ZDY2ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9OZXR3b3JrL05l
dHdvcmtQcm9jZXNzQ29ubmVjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
TmV0d29yay9OZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24uaApAQCAtNDEsNiArNDEsNyBAQCBuYW1l
c3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBSZXNvdXJjZUVycm9yOwogY2xhc3MgUmVzb3VyY2VSZXF1
ZXN0OwogY2xhc3MgUmVzb3VyY2VSZXNwb25zZTsKK2NsYXNzIFNlc3Npb25JRDsKIH0KIAogbmFt
ZXNwYWNlIFdlYktpdCB7CkBAIC03MCw3ICs3MSw3IEBAIHByaXZhdGU6CiAKICNpZiBFTkFCTEUo
U0hBUkVBQkxFX1JFU09VUkNFKQogICAgIC8vIE1lc3NhZ2UgaGFuZGxlcnMuCi0gICAgdm9pZCBk
aWRDYWNoZVJlc291cmNlKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFNo
YXJlYWJsZVJlc291cmNlOjpIYW5kbGUmKTsKKyAgICB2b2lkIGRpZENhY2hlUmVzb3VyY2UoY29u
c3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgU2hhcmVhYmxlUmVzb3VyY2U6Okhh
bmRsZSYsIFdlYkNvcmU6OlNlc3Npb25JRCk7CiAjZW5kaWYKIAogICAgIC8vIFRoZSBjb25uZWN0
aW9uIGZyb20gdGhlIHdlYiBwcm9jZXNzIHRvIHRoZSBuZXR3b3JrIHByb2Nlc3MuCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NDb25u
ZWN0aW9uLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9OZXR3b3JrL05l
dHdvcmtQcm9jZXNzQ29ubmVjdGlvbi5tZXNzYWdlcy5pbgppbmRleCBlNjk4OWQ5Li5jMWY3OGM0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05ldHdvcmsvTmV0d29ya1By
b2Nlc3NDb25uZWN0aW9uLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24ubWVzc2FnZXMuaW4KQEAgLTI1LDcg
KzI1LDcgQEAKIG1lc3NhZ2VzIC0+IE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbiBMZWdhY3lSZWNl
aXZlciB7CiAKICNpZiBFTkFCTEUoU0hBUkVBQkxFX1JFU09VUkNFKQotICAgIERpZENhY2hlUmVz
b3VyY2UoV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QsIFdlYktpdDo6U2hhcmVhYmxl
UmVzb3VyY2U6OkhhbmRsZSByZXNvdXJjZSkKKyAgICBEaWRDYWNoZVJlc291cmNlKFdlYkNvcmU6
OlJlc291cmNlUmVxdWVzdCByZXF1ZXN0LCBXZWJLaXQ6OlNoYXJlYWJsZVJlc291cmNlOjpIYW5k
bGUgcmVzb3VyY2UsIFdlYkNvcmU6OlNlc3Npb25JRCBzZXNzaW9uSUQpCiAjZW5kaWYKIAogfQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>225806</attachid>
            <date>2014-03-04 13:11:36 -0800</date>
            <delta_ts>2014-03-04 13:15:58 -0800</delta_ts>
            <desc>support multithreading in removeRequestFromSessionCaches</desc>
            <filename>memcachesession.28.diff</filename>
            <type>text/plain</type>
            <size>68748</size>
            <attacher name="Martin Hock">mhock</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBjZTM3NjNmLi5hMThkMjczIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsOTYg
QEAKKzIwMTQtMDMtMDQgIE1hcnRpbiBIb2NrICA8bWhvY2tAYXBwbGUuY29tPgorCisgICAgICAg
IEFkZCBzdXBwb3J0IGZvciBzZXNzaW9ucyB0byBNZW1vcnlDYWNoZS4KKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyNzc5NAorCisgICAgICAgIFJldmll
d2VkIGJ5IFNhbSBXZWluaWcuCisKKyAgICAgICAgKiBXZWJDb3JlLmV4cC5pbjoKKyAgICAgICAg
KiBlZGl0aW5nL0RlbGV0ZUJ1dHRvbkNvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
RGVsZXRlQnV0dG9uQ29udHJvbGxlcjo6Y3JlYXRlRGVsZXRpb25VSSk6IEluaXRpYWxpemUgQ2Fj
aGVkSW1hZ2Ugd2l0aCBzZXNzaW9uSUQuCisgICAgICAgICogaHRtbC9ET01VUkwuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6RE9NVVJMOjpyZXZva2VPYmplY3RVUkwpOiBSZW1vdmUgVVJMIGZyb20g
TWVtb3J5Q2FjaGUgZm9yIGFsbCBzZXNzaW9ucy4KKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVj
dG9yUGFnZUFnZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclBhZ2VBZ2VudDo6
Y2FjaGVkUmVzb3VyY2UpOiBQYXNzIHNlc3Npb25JRCB0byBNZW1vcnlDYWNoZS4KKyAgICAgICAg
KiBpbnNwZWN0b3IvSW5zcGVjdG9yUmVzb3VyY2VBZ2VudC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpJbnNwZWN0b3JSZXNvdXJjZUFnZW50OjpyZXBsYXlYSFIpOiBEaXR0by4KKyAgICAgICAgKiBs
b2FkZXIvRG9jdW1lbnRMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6YXJlQWxsTG9hZGVy
c1BhZ2VDYWNoZUFjY2VwdGFibGUpOiBEaXR0by4KKyAgICAgICAgKiBsb2FkZXIvRnJhbWVMb2Fk
ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXI6OnRlbGxDbGllbnRBYm91dFBh
c3RNZW1vcnlDYWNoZUxvYWRzKTogRGl0dG8uCisgICAgICAgICogbG9hZGVyL0ltYWdlTG9hZGVy
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkltYWdlTG9hZGVyOjp1cGRhdGVGcm9tRWxlbWVudCk6
IEluaXRpYWxpemUgQ2FjaGVkSW1hZ2Ugd2l0aCBzZXNzaW9uSUQuCisgICAgICAgICogbG9hZGVy
L2FyY2hpdmUvY2YvTGVnYWN5V2ViQXJjaGl2ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpMZWdh
Y3lXZWJBcmNoaXZlOjpjcmVhdGUpOiBQYXNzIHNlc3Npb25JRCB0byBNZW1vcnlDYWNoZS4KKyAg
ICAgICAgKiBsb2FkZXIvY2FjaGUvQ2FjaGVkQ1NTU3R5bGVTaGVldC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpDYWNoZWRDU1NTdHlsZVNoZWV0OjpDYWNoZWRDU1NTdHlsZVNoZWV0KTogQ29uc3Ry
dWN0b3IgdGFrZXMgc2Vzc2lvbklELgorICAgICAgICAqIGxvYWRlci9jYWNoZS9DYWNoZWRDU1NT
dHlsZVNoZWV0Lmg6CisgICAgICAgICogbG9hZGVyL2NhY2hlL0NhY2hlZEZvbnQuY3BwOiBEaXR0
by4KKyAgICAgICAgKFdlYkNvcmU6OkNhY2hlZEZvbnQ6OkNhY2hlZEZvbnQpOgorICAgICAgICAq
IGxvYWRlci9jYWNoZS9DYWNoZWRGb250Lmg6CisgICAgICAgICogbG9hZGVyL2NhY2hlL0NhY2hl
ZEltYWdlLmNwcDogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRJbWFnZTo6Q2FjaGVk
SW1hZ2UpOgorICAgICAgICAqIGxvYWRlci9jYWNoZS9DYWNoZWRJbWFnZS5oOgorICAgICAgICAq
IGxvYWRlci9jYWNoZS9DYWNoZWRSYXdSZXNvdXJjZS5jcHA6IERpdHRvLgorICAgICAgICAoV2Vi
Q29yZTo6Q2FjaGVkUmF3UmVzb3VyY2U6OkNhY2hlZFJhd1Jlc291cmNlKToKKyAgICAgICAgKiBs
b2FkZXIvY2FjaGUvQ2FjaGVkUmF3UmVzb3VyY2UuaDoKKyAgICAgICAgKiBsb2FkZXIvY2FjaGUv
Q2FjaGVkUmVzb3VyY2UuY3BwOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OkNhY2hlZFJlc291
cmNlOjpDYWNoZWRSZXNvdXJjZSk6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRSZXNvdXJjZTo6
fkNhY2hlZFJlc291cmNlKTogUGFzcyBzZXNzaW9uSUQgdG8gTWVtb3J5Q2FjaGUuCisgICAgICAg
ICogbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlLmg6CisgICAgICAgIChXZWJDb3JlOjpDYWNo
ZWRSZXNvdXJjZTo6c2Vzc2lvbklEKToKKyAgICAgICAgKiBsb2FkZXIvY2FjaGUvQ2FjaGVkUmVz
b3VyY2VMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlUmVzb3VyY2UpOiBDb25z
dHJ1Y3RvcnMgdGFrZSBzZXNzaW9uSUQuCisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRSZXNvdXJj
ZUxvYWRlcjo6c2Vzc2lvbklEKTogUmV0cmlldmUgc2Vzc2lvbklEIGZyb20gcGFnZS4KKyAgICAg
ICAgKFdlYkNvcmU6OkNhY2hlZFJlc291cmNlTG9hZGVyOjpyZXF1ZXN0VXNlckNTU1N0eWxlU2hl
ZXQpOiBQYXNzIHNlc3Npb25JRCB0byBNZW1vcnlDYWNoZS4KKyAgICAgICAgKFdlYkNvcmU6OkNh
Y2hlZFJlc291cmNlTG9hZGVyOjpyZXF1ZXN0UmVzb3VyY2UpOiBJbml0aWFsaXplIENhY2hlZENT
U1N0eWxlU2hlZXQgd2l0aCBzZXNzaW9uSUQuCisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRSZXNv
dXJjZUxvYWRlcjo6cmV2YWxpZGF0ZVJlc291cmNlKTogSW5pdGlhbGl6ZSBjYWNoZWQgcmVzb3Vy
Y2Ugd2l0aCBzZXNzaW9uSUQuCisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRSZXNvdXJjZUxvYWRl
cjo6bG9hZFJlc291cmNlKTogUGFzcyBzZXNzaW9uSUQgdG8gTWVtb3J5Q2FjaGUgYW5kIGluaXRp
YWxpemUgY2FjaGVkIHJlc291cmNlIHdpdGggc2Vzc2lvbklELgorICAgICAgICAqIGxvYWRlci9j
YWNoZS9DYWNoZWRSZXNvdXJjZUxvYWRlci5oOgorICAgICAgICAqIGxvYWRlci9jYWNoZS9DYWNo
ZWRTVkdEb2N1bWVudC5jcHA6IENvbnN0cnVjdG9yIHRha2VzIHNlc3Npb25JRC4KKyAgICAgICAg
KFdlYkNvcmU6OkNhY2hlZFNWR0RvY3VtZW50OjpDYWNoZWRTVkdEb2N1bWVudCk6CisgICAgICAg
ICogbG9hZGVyL2NhY2hlL0NhY2hlZFNWR0RvY3VtZW50Lmg6CisgICAgICAgICogbG9hZGVyL2Nh
Y2hlL0NhY2hlZFNjcmlwdC5jcHA6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkU2Ny
aXB0OjpDYWNoZWRTY3JpcHQpOgorICAgICAgICAqIGxvYWRlci9jYWNoZS9DYWNoZWRTY3JpcHQu
aDoKKyAgICAgICAgKiBsb2FkZXIvY2FjaGUvQ2FjaGVkVGV4dFRyYWNrLmNwcDogRGl0dG8uCisg
ICAgICAgIChXZWJDb3JlOjpDYWNoZWRUZXh0VHJhY2s6OkNhY2hlZFRleHRUcmFjayk6CisgICAg
ICAgICogbG9hZGVyL2NhY2hlL0NhY2hlZFRleHRUcmFjay5oOgorICAgICAgICAqIGxvYWRlci9j
YWNoZS9DYWNoZWRYU0xTdHlsZVNoZWV0LmNwcDogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpD
YWNoZWRYU0xTdHlsZVNoZWV0OjpDYWNoZWRYU0xTdHlsZVNoZWV0KToKKyAgICAgICAgKiBsb2Fk
ZXIvY2FjaGUvQ2FjaGVkWFNMU3R5bGVTaGVldC5oOgorICAgICAgICAqIGxvYWRlci9jYWNoZS9N
ZW1vcnlDYWNoZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZW1vcnlDYWNoZTo6Z2V0U2Vzc2lv
bk1hcCk6IFJldHJpZXZlIENhY2hlZFJlc291cmNlTWFwIGJhc2VkIG9uIHNlc3Npb25JRC4KKyAg
ICAgICAgKFdlYkNvcmU6Ok1lbW9yeUNhY2hlOjphZGQpOiBVc2Ugc2Vzc2lvbklEIGZyb20gQ2Fj
aGVkUmVzb3VyY2UgcGFyYW1ldGVyLgorICAgICAgICAoV2ViQ29yZTo6TWVtb3J5Q2FjaGU6OnJl
dmFsaWRhdGlvblN1Y2NlZWRlZCk6IEFkZCBzZXNzaW9uSUQgcGFyYW1ldGVyLgorICAgICAgICAo
V2ViQ29yZTo6TWVtb3J5Q2FjaGU6OnJlc291cmNlRm9yVVJMKTogRGl0dG8uCisgICAgICAgIChX
ZWJDb3JlOjpNZW1vcnlDYWNoZTo6cmVzb3VyY2VGb3JSZXF1ZXN0KTogRGl0dG8sIGFsc28gbW92
ZSBpbXBsIGludG8gaW1wbCBtZXRob2QuCisgICAgICAgIChXZWJDb3JlOjpNZW1vcnlDYWNoZTo6
cmVzb3VyY2VGb3JSZXF1ZXN0SW1wbCk6IEFkZCBDYWNoZWRSZXNvdXJjZU1hcCBwYXJhbWV0ZXIu
CisgICAgICAgIChXZWJDb3JlOjpNZW1vcnlDYWNoZTo6YWRkSW1hZ2VUb0NhY2hlKTogVXNlIGRl
ZmF1bHQgc2Vzc2lvbklELgorICAgICAgICAoV2ViQ29yZTo6TWVtb3J5Q2FjaGU6OnJlbW92ZUlt
YWdlRnJvbUNhY2hlKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpNZW1vcnlDYWNoZTo6ZXZp
Y3QpOiBVc2Ugc2Vzc2lvbklEIGZyb20gQ2FjaGVkUmVzb3VyY2UgcGFyYW1ldGVyLgorICAgICAg
ICAoV2ViQ29yZTo6TWVtb3J5Q2FjaGU6OnJlbW92ZVJlc291cmNlc1dpdGhPcmlnaW4pOiBJdGVy
YXRlIHRocm91Z2ggYWxsIENhY2hlZFJlc291cmNlTWFwcy4KKyAgICAgICAgKFdlYkNvcmU6Ok1l
bW9yeUNhY2hlOjpnZXRPcmlnaW5zV2l0aENhY2hlKTogRGl0dG8uCisgICAgICAgIChXZWJDb3Jl
OjpNZW1vcnlDYWNoZTo6cmVtb3ZlVXJsRnJvbUNhY2hlKTogQWRkIHNlc3Npb25JRCBwYXJhbWV0
ZXIuCisgICAgICAgIChXZWJDb3JlOjpNZW1vcnlDYWNoZTo6cmVtb3ZlUmVxdWVzdEZyb21DYWNo
ZSk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6TWVtb3J5Q2FjaGU6OnJlbW92ZVJlcXVlc3RG
cm9tU2Vzc2lvbkNhY2hlcyk6IFJlbW92ZSByZXF1ZXN0IGZyb20gYWxsIENhY2hlZFJlc291cmNl
TWFwcywgd2l0aCBtdWx0aXRocmVhZCBzdXBwb3J0LgorICAgICAgICAoV2ViQ29yZTo6TWVtb3J5
Q2FjaGU6OnJlbW92ZVJlcXVlc3RGcm9tQ2FjaGVJbXBsKTogQWRkIHNlc3Npb25JRCBwYXJhbWV0
ZXIuCisgICAgICAgIChXZWJDb3JlOjpNZW1vcnlDYWNoZTo6cmVtb3ZlUmVxdWVzdEZyb21TZXNz
aW9uQ2FjaGVzSW1wbCk6IEl0ZXJhdGUgdGhyb3VnaCBhbGwgQ2FjaGVkUmVzb3VyY2VNYXBzLgor
ICAgICAgICAoV2ViQ29yZTo6TWVtb3J5Q2FjaGU6OmNyb3NzVGhyZWFkUmVtb3ZlUmVxdWVzdEZy
b21DYWNoZSk6IEFkZCBzZXNzaW9uSUQgcGFyYW1ldGVyLgorICAgICAgICAoV2ViQ29yZTo6TWVt
b3J5Q2FjaGU6OmNyb3NzVGhyZWFkUmVtb3ZlUmVxdWVzdEZyb21TZXNzaW9uQ2FjaGVzKTogUGFz
cyBvbiByZXF1ZXN0IHRvIHJlbW92ZVJlcXVlc3RGcm9tU2Vzc2lvbkNhY2hlc0ltcGwuCisgICAg
ICAgIChXZWJDb3JlOjpNZW1vcnlDYWNoZTo6Z2V0U3RhdGlzdGljcyk6IEl0ZXJhdGUgdGhyb3Vn
aCBhbGwgQ2FjaGVkUmVzb3VyY2VNYXBzLgorICAgICAgICAoV2ViQ29yZTo6TWVtb3J5Q2FjaGU6
OnNldERpc2FibGVkKTogRGl0dG8uCisgICAgICAgICogbG9hZGVyL2NhY2hlL01lbW9yeUNhY2hl
Lmg6IENyZWF0ZSBhbm90aGVyIGxldmVsIGZvciBjYWNoZS4KKyAgICAgICAgKiBwbGF0Zm9ybS9D
cm9zc1RocmVhZENvcGllci5jcHA6IEFsbG93IGNvcHlpbmcgU2Vzc2lvbklEcyBhY3Jvc3MgdGhy
ZWFkcy4KKyAgICAgICAgKFdlYkNvcmU6OlNlc3Npb25JRD46OmNvcHkpOgorICAgICAgICAqIHBs
YXRmb3JtL0Nyb3NzVGhyZWFkQ29waWVyLmg6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9j
Zi9SZXNvdXJjZVJlcXVlc3QuaDoKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdDo6
UmVzb3VyY2VSZXF1ZXN0KTogUmVtb3ZlIHRyYWlsaW5nIHdoaXRlc3BhY2UuCisgICAgICAgICog
cmVuZGVyaW5nL1JlbmRlclNuYXBzaG90dGVkUGx1Z0luLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlJlbmRlclNuYXBzaG90dGVkUGx1Z0luOjp1cGRhdGVTbmFwc2hvdCk6IEluaXRpYWxpemUgQ2Fj
aGVkSW1hZ2Ugd2l0aCBzZXNzaW9uSUQuCisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJuYWxzOjppc0xvYWRpbmdGcm9tTWVtb3J5Q2FjaGUp
OiBQYXNzIHNlc3Npb25JRCB0byBNZW1vcnlDYWNoZS4KKwogMjAxNC0wMy0wNCAgWmFsYW4gQnVq
dGFzICA8emFsYW5AYXBwbGUuY29tPgogCiAgICAgICAgIEJ1aWxkIGZpeCBmb3IgaU9TLgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4gYi9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLmV4cC5pbgppbmRleCAxODVkODQ3Li5kNDMwYTUyYSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAu
aW4KQEAgLTE2OSw4ICsxNjksOSBAQCBfX1pON1dlYkNvcmUxMU1lbW9yeUNhY2hlMTNnZXRTdGF0
aXN0aWNzRXYKIF9fWk43V2ViQ29yZTExTWVtb3J5Q2FjaGUxM3NldENhcGFjaXRpZXNFampqCiBf
X1pON1dlYkNvcmUxMU1lbW9yeUNhY2hlMTRldmljdFJlc291cmNlc0V2CiBfX1pON1dlYkNvcmUx
MU1lbW9yeUNhY2hlMTRyZXNvdXJjZUZvclVSTEVSS05TXzNVUkxFCitfX1pON1dlYkNvcmUxMU1l
bW9yeUNhY2hlMTRyZXNvdXJjZUZvclVSTEVSS05TXzNVUkxFTlNfOVNlc3Npb25JREUKIF9fWk43
V2ViQ29yZTExTWVtb3J5Q2FjaGUxNWFkZEltYWdlVG9DYWNoZUVQN0NHSW1hZ2VSS05TXzNVUkxF
UktOM1dURjZTdHJpbmdFCi1fX1pON1dlYkNvcmUxMU1lbW9yeUNhY2hlMThyZXNvdXJjZUZvclJl
cXVlc3RFUktOU18xNVJlc291cmNlUmVxdWVzdEUKK19fWk43V2ViQ29yZTExTWVtb3J5Q2FjaGUx
OHJlc291cmNlRm9yUmVxdWVzdEVSS05TXzE1UmVzb3VyY2VSZXF1ZXN0RU5TXzlTZXNzaW9uSURF
CiBfX1pON1dlYkNvcmUxMU1lbW9yeUNhY2hlMTlnZXRPcmlnaW5zV2l0aENhY2hlRVJOM1dURjdI
YXNoU2V0SU5TMV82UmVmUHRySU5TXzE0U2VjdXJpdHlPcmlnaW5FRUVOU18xOFNlY3VyaXR5T3Jp
Z2luSGFzaEVOUzFfMTBIYXNoVHJhaXRzSVM1X0VFRUUKIF9fWk43V2ViQ29yZTExTWVtb3J5Q2Fj
aGUyMHJlbW92ZUltYWdlRnJvbUNhY2hlRVJLTlNfM1VSTEVSS04zV1RGNlN0cmluZ0UKIF9fWk43
V2ViQ29yZTExTWVtb3J5Q2FjaGUyNXJlbW92ZVJlc291cmNlc1dpdGhPcmlnaW5FUE5TXzE0U2Vj
dXJpdHlPcmlnaW5FCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RlbGV0ZUJ1
dHRvbkNvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EZWxldGVCdXR0b25D
b250cm9sbGVyLmNwcAppbmRleCA4MjBiMGFjLi4xNWU2N2U2IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL0RlbGV0ZUJ1dHRvbkNvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvRGVsZXRlQnV0dG9uQ29udHJvbGxlci5jcHAKQEAgLTI1NCw3ICsyNTQs
NyBAQCB2b2lkIERlbGV0ZUJ1dHRvbkNvbnRyb2xsZXI6OmNyZWF0ZURlbGV0aW9uVUkoKQogICAg
IGlmIChidXR0b25JbWFnZS0+aXNOdWxsKCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIGJ1dHRv
bi0+c2V0Q2FjaGVkSW1hZ2UobmV3IENhY2hlZEltYWdlKGJ1dHRvbkltYWdlLmdldCgpKSk7Cisg
ICAgYnV0dG9uLT5zZXRDYWNoZWRJbWFnZShuZXcgQ2FjaGVkSW1hZ2UoYnV0dG9uSW1hZ2UuZ2V0
KCksIG1fZnJhbWUucGFnZSgpLT5zZXNzaW9uSUQoKSkpOwogCiAgICAgY29udGFpbmVyLT5hcHBl
bmRDaGlsZChidXR0b24uZ2V0KCksIGVjKTsKICAgICBBU1NFUlQoIWVjKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvRE9NVVJMLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRE9N
VVJMLmNwcAppbmRleCA0ZTQ0MjU0Li41YjQ5ZGNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0RPTVVSTC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9ET01VUkwuY3BwCkBA
IC0xMjQsNyArMTI0LDcgQEAgdm9pZCBET01VUkw6OnJldm9rZU9iamVjdFVSTChTY3JpcHRFeGVj
dXRpb25Db250ZXh0KiBzY3JpcHRFeGVjdXRpb25Db250ZXh0LCBjb24KICNpZiBFTkFCTEUoQ0FD
SEVfUEFSVElUSU9OSU5HKQogICAgIHJlcXVlc3Quc2V0Q2FjaGVQYXJ0aXRpb24oc2NyaXB0RXhl
Y3V0aW9uQ29udGV4dC0+dG9wT3JpZ2luKCktPmNhY2hlUGFydGl0aW9uKCkpOwogI2VuZGlmCi0g
ICAgTWVtb3J5Q2FjaGU6OnJlbW92ZVJlcXVlc3RGcm9tQ2FjaGUoc2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCwgcmVxdWVzdCk7CisgICAgTWVtb3J5Q2FjaGU6OnJlbW92ZVJlcXVlc3RGcm9tU2Vzc2lv
bkNhY2hlcyhzY3JpcHRFeGVjdXRpb25Db250ZXh0LCByZXF1ZXN0KTsKIAogICAgIHNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQtPnB1YmxpY1VSTE1hbmFnZXIoKS5yZXZva2UodXJsKTsKIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JQYWdlQWdlbnQuY3BwIGIv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclBhZ2VBZ2VudC5jcHAKaW5kZXggY2Zl
ZTVkOC4uMzAxMjkwNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3Bl
Y3RvclBhZ2VBZ2VudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rv
clBhZ2VBZ2VudC5jcHAKQEAgLTI4Miw3ICsyODIsNyBAQCBDYWNoZWRSZXNvdXJjZSogSW5zcGVj
dG9yUGFnZUFnZW50OjpjYWNoZWRSZXNvdXJjZShGcmFtZSogZnJhbWUsIGNvbnN0IFVSTCYgdXJs
KQogI2lmIEVOQUJMRShDQUNIRV9QQVJUSVRJT05JTkcpCiAgICAgICAgIHJlcXVlc3Quc2V0Q2Fj
aGVQYXJ0aXRpb24oZnJhbWUtPmRvY3VtZW50KCktPnRvcE9yaWdpbigpLT5jYWNoZVBhcnRpdGlv
bigpKTsKICNlbmRpZgotICAgICAgICBjYWNoZWRSZXNvdXJjZSA9IG1lbW9yeUNhY2hlKCktPnJl
c291cmNlRm9yUmVxdWVzdChyZXF1ZXN0KTsKKyAgICAgICAgY2FjaGVkUmVzb3VyY2UgPSBtZW1v
cnlDYWNoZSgpLT5yZXNvdXJjZUZvclJlcXVlc3QocmVxdWVzdCwgZnJhbWUtPnBhZ2UoKS0+c2Vz
c2lvbklEKCkpOwogICAgIH0KIAogICAgIHJldHVybiBjYWNoZWRSZXNvdXJjZTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JSZXNvdXJjZUFnZW50LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JSZXNvdXJjZUFnZW50LmNwcAppbmRl
eCBhNjU0OGI2Li5mN2JlMzNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
SW5zcGVjdG9yUmVzb3VyY2VBZ2VudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L0luc3BlY3RvclJlc291cmNlQWdlbnQuY3BwCkBAIC01OTQsNyArNTk0LDcgQEAgdm9pZCBJbnNw
ZWN0b3JSZXNvdXJjZUFnZW50OjpyZXBsYXlYSFIoRXJyb3JTdHJpbmcqLCBjb25zdCBTdHJpbmcm
IHJlcXVlc3RJZCkKICNpZiBFTkFCTEUoQ0FDSEVfUEFSVElUSU9OSU5HKQogICAgIHJlcXVlc3Qu
c2V0Q2FjaGVQYXJ0aXRpb24obV9wYWdlQWdlbnQtPm1haW5GcmFtZSgpLT5kb2N1bWVudCgpLT50
b3BPcmlnaW4oKS0+Y2FjaGVQYXJ0aXRpb24oKSk7CiAjZW5kaWYKLSAgICBDYWNoZWRSZXNvdXJj
ZSogY2FjaGVkUmVzb3VyY2UgPSBtZW1vcnlDYWNoZSgpLT5yZXNvdXJjZUZvclJlcXVlc3QocmVx
dWVzdCk7CisgICAgQ2FjaGVkUmVzb3VyY2UqIGNhY2hlZFJlc291cmNlID0gbWVtb3J5Q2FjaGUo
KS0+cmVzb3VyY2VGb3JSZXF1ZXN0KHJlcXVlc3QsIG1fcGFnZUFnZW50LT5wYWdlKCktPnNlc3Np
b25JRCgpKTsKICAgICBpZiAoY2FjaGVkUmVzb3VyY2UpCiAgICAgICAgIG1lbW9yeUNhY2hlKCkt
PnJlbW92ZShjYWNoZWRSZXNvdXJjZSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9Eb2N1bWVudExvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRM
b2FkZXIuY3BwCmluZGV4IDQ1NTk1NjMuLjA1OWExMjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9Eb2N1bWVudExvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVy
L0RvY3VtZW50TG9hZGVyLmNwcApAQCAtMTAzLDcgKzEwMywxMCBAQCBzdGF0aWMgYm9vbCBhcmVB
bGxMb2FkZXJzUGFnZUNhY2hlQWNjZXB0YWJsZShjb25zdCBSZXNvdXJjZUxvYWRlck1hcCYgbG9h
ZGVycykKICAgICAgICAgaWYgKCFoYW5kbGUpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAK
LSAgICAgICAgQ2FjaGVkUmVzb3VyY2UqIGNhY2hlZFJlc291cmNlID0gbWVtb3J5Q2FjaGUoKS0+
cmVzb3VyY2VGb3JVUkwoaGFuZGxlLT5maXJzdFJlcXVlc3QoKS51cmwoKSk7CisgICAgICAgIGlm
ICghbG9hZGVyLT5mcmFtZUxvYWRlcigpKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworCisg
ICAgICAgIENhY2hlZFJlc291cmNlKiBjYWNoZWRSZXNvdXJjZSA9IG1lbW9yeUNhY2hlKCktPnJl
c291cmNlRm9yVVJMKGhhbmRsZS0+Zmlyc3RSZXF1ZXN0KCkudXJsKCksIGxvYWRlci0+ZnJhbWVM
b2FkZXIoKS0+ZnJhbWUoKS5wYWdlKCktPnNlc3Npb25JRCgpKTsKICAgICAgICAgaWYgKCFjYWNo
ZWRSZXNvdXJjZSkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9GcmFtZUxvYWRlci5jcHAKaW5kZXggOTRlMDUxOS4uMjk0YTIzYyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvRnJhbWVMb2FkZXIuY3BwCkBAIC0zMzc3LDcgKzMzNzcsNyBAQCB2b2lkIEZyYW1lTG9h
ZGVyOjp0ZWxsQ2xpZW50QWJvdXRQYXN0TWVtb3J5Q2FjaGVMb2FkcygpCiAKICAgICBzaXplX3Qg
c2l6ZSA9IHBhc3RMb2Fkcy5zaXplKCk7CiAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBzaXpl
OyArK2kpIHsKLSAgICAgICAgQ2FjaGVkUmVzb3VyY2UqIHJlc291cmNlID0gbWVtb3J5Q2FjaGUo
KS0+cmVzb3VyY2VGb3JSZXF1ZXN0KHBhc3RMb2Fkc1tpXSk7CisgICAgICAgIENhY2hlZFJlc291
cmNlKiByZXNvdXJjZSA9IG1lbW9yeUNhY2hlKCktPnJlc291cmNlRm9yUmVxdWVzdChwYXN0TG9h
ZHNbaV0sIG1fZnJhbWUucGFnZSgpLT5zZXNzaW9uSUQoKSk7CiAKICAgICAgICAgLy8gRklYTUU6
IFRoZXNlIGxvYWRzLCBsb2FkZWQgZnJvbSBjYWNoZSwgYnV0IG5vdyBnb25lIGZyb20gdGhlIGNh
Y2hlIGJ5IHRoZSB0aW1lCiAgICAgICAgIC8vIFBhZ2U6OnNldE1lbW9yeUNhY2hlQ2xpZW50Q2Fs
bHNFbmFibGVkKHRydWUpIGlzIGNhbGxlZCwgd2lsbCBub3QgYmUgc2VlbiBieSB0aGUgY2xpZW50
LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ltYWdlTG9hZGVyLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9JbWFnZUxvYWRlci5jcHAKaW5kZXggMzA2YTFiNzYuLmU0OGQ0
N2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9JbWFnZUxvYWRlci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ltYWdlTG9hZGVyLmNwcApAQCAtMzQsNiArMzQsNyBA
QAogI2luY2x1ZGUgIkhUTUxOYW1lcy5oIgogI2luY2x1ZGUgIkhUTUxPYmplY3RFbGVtZW50Lmgi
CiAjaW5jbHVkZSAiSFRNTFBhcnNlcklkaW9tcy5oIgorI2luY2x1ZGUgIlBhZ2UuaCIKICNpbmNs
dWRlICJSZW5kZXJJbWFnZS5oIgogI2luY2x1ZGUgIlJlbmRlclNWR0ltYWdlLmgiCiAjaW5jbHVk
ZSAiU2VjdXJpdHlPcmlnaW4uaCIKQEAgLTE4OCw3ICsxODksNyBAQCB2b2lkIEltYWdlTG9hZGVy
Ojp1cGRhdGVGcm9tRWxlbWVudCgpCiAgICAgICAgIGlmIChtX2xvYWRNYW51YWxseSkgewogICAg
ICAgICAgICAgYm9vbCBhdXRvTG9hZE90aGVySW1hZ2VzID0gZG9jdW1lbnQuY2FjaGVkUmVzb3Vy
Y2VMb2FkZXIoKS0+YXV0b0xvYWRJbWFnZXMoKTsKICAgICAgICAgICAgIGRvY3VtZW50LmNhY2hl
ZFJlc291cmNlTG9hZGVyKCktPnNldEF1dG9Mb2FkSW1hZ2VzKGZhbHNlKTsKLSAgICAgICAgICAg
IG5ld0ltYWdlID0gbmV3IENhY2hlZEltYWdlKHJlcXVlc3QucmVzb3VyY2VSZXF1ZXN0KCkpOwor
ICAgICAgICAgICAgbmV3SW1hZ2UgPSBuZXcgQ2FjaGVkSW1hZ2UocmVxdWVzdC5yZXNvdXJjZVJl
cXVlc3QoKSwgbV9lbGVtZW50LmRvY3VtZW50KCkucGFnZSgpLT5zZXNzaW9uSUQoKSk7CiAgICAg
ICAgICAgICBuZXdJbWFnZS0+c2V0TG9hZGluZyh0cnVlKTsKICAgICAgICAgICAgIG5ld0ltYWdl
LT5zZXRPd25pbmdDYWNoZWRSZXNvdXJjZUxvYWRlcihkb2N1bWVudC5jYWNoZWRSZXNvdXJjZUxv
YWRlcigpKTsKICAgICAgICAgICAgIGRvY3VtZW50LmNhY2hlZFJlc291cmNlTG9hZGVyKCktPm1f
ZG9jdW1lbnRSZXNvdXJjZXMuc2V0KG5ld0ltYWdlLT51cmwoKSwgbmV3SW1hZ2UuZ2V0KCkpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2FyY2hpdmUvY2YvTGVnYWN5V2ViQXJj
aGl2ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvYXJjaGl2ZS9jZi9MZWdhY3lXZWJBcmNo
aXZlLmNwcAppbmRleCAzMWYxYTFiLi4wMjRkMjhmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvYXJjaGl2ZS9jZi9MZWdhY3lXZWJBcmNoaXZlLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvYXJjaGl2ZS9jZi9MZWdhY3lXZWJBcmNoaXZlLmNwcApAQCAtNTU0LDcgKzU1
NCw3IEBAIFBhc3NSZWZQdHI8TGVnYWN5V2ViQXJjaGl2ZT4gTGVnYWN5V2ViQXJjaGl2ZTo6Y3Jl
YXRlKGNvbnN0IFN0cmluZyYgbWFya3VwU3RyaW5nCiAjaWYgRU5BQkxFKENBQ0hFX1BBUlRJVElP
TklORykKICAgICAgICAgICAgICAgICByZXF1ZXN0LnNldENhY2hlUGFydGl0aW9uKGZyYW1lLT5k
b2N1bWVudCgpLT50b3BPcmlnaW4oKS0+Y2FjaGVQYXJ0aXRpb24oKSk7CiAjZW5kaWYKLSAgICAg
ICAgICAgICAgICBDYWNoZWRSZXNvdXJjZSogY2FjaGVkUmVzb3VyY2UgPSBtZW1vcnlDYWNoZSgp
LT5yZXNvdXJjZUZvclJlcXVlc3QocmVxdWVzdCk7CisgICAgICAgICAgICAgICAgQ2FjaGVkUmVz
b3VyY2UqIGNhY2hlZFJlc291cmNlID0gbWVtb3J5Q2FjaGUoKS0+cmVzb3VyY2VGb3JSZXF1ZXN0
KHJlcXVlc3QsIGZyYW1lLT5wYWdlKCktPnNlc3Npb25JRCgpKTsKICAgICAgICAgICAgICAgICBp
ZiAoY2FjaGVkUmVzb3VyY2UpIHsKICAgICAgICAgICAgICAgICAgICAgUmVzb3VyY2VCdWZmZXIq
IGRhdGEgPSBjYWNoZWRSZXNvdXJjZS0+cmVzb3VyY2VCdWZmZXIoKTsKICAgICAgICAgICAgICAg
ICAgICAgcmVzb3VyY2UgPSBBcmNoaXZlUmVzb3VyY2U6OmNyZWF0ZShkYXRhID8gZGF0YS0+c2hh
cmVkQnVmZmVyKCkgOiAwLCBzdWJyZXNvdXJjZVVSTCwgY2FjaGVkUmVzb3VyY2UtPnJlc3BvbnNl
KCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZENTU1N0
eWxlU2hlZXQuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZENTU1N0eWxl
U2hlZXQuY3BwCmluZGV4IDY5YmNlOGYuLmU4YWFkNDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9jYWNoZS9DYWNoZWRDU1NTdHlsZVNoZWV0LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkQ1NTU3R5bGVTaGVldC5jcHAKQEAgLTQwLDggKzQwLDgg
QEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1DYWNoZWRDU1NTdHlsZVNoZWV0OjpDYWNoZWRD
U1NTdHlsZVNoZWV0KGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVzb3VyY2VSZXF1ZXN0LCBjb25z
dCBTdHJpbmcmIGNoYXJzZXQpCi0gICAgOiBDYWNoZWRSZXNvdXJjZShyZXNvdXJjZVJlcXVlc3Qs
IENTU1N0eWxlU2hlZXQpCitDYWNoZWRDU1NTdHlsZVNoZWV0OjpDYWNoZWRDU1NTdHlsZVNoZWV0
KGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVzb3VyY2VSZXF1ZXN0LCBjb25zdCBTdHJpbmcmIGNo
YXJzZXQsIFNlc3Npb25JRCBzZXNzaW9uSUQpCisgICAgOiBDYWNoZWRSZXNvdXJjZShyZXNvdXJj
ZVJlcXVlc3QsIENTU1N0eWxlU2hlZXQsIHNlc3Npb25JRCkKICAgICAsIG1fZGVjb2RlcihUZXh0
UmVzb3VyY2VEZWNvZGVyOjpjcmVhdGUoInRleHQvY3NzIiwgY2hhcnNldCkpCiB7CiAgICAgLy8g
UHJlZmVyIHRleHQvY3NzIGJ1dCBhY2NlcHQgYW55IHR5cGUgKGRlbGwuY29tIHNlcnZlcyBhIHN0
eWxlc2hlZXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRD
U1NTdHlsZVNoZWV0LmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkQ1NTU3R5
bGVTaGVldC5oCmluZGV4IGY4YmIwYzYuLjViN2I3NDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9jYWNoZS9DYWNoZWRDU1NTdHlsZVNoZWV0LmgKKysrIGIvU291cmNlL1dlYkNv
cmUvbG9hZGVyL2NhY2hlL0NhY2hlZENTU1N0eWxlU2hlZXQuaApAQCAtMzgsNyArMzgsNyBAQCBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKICAgICBjbGFzcyBDYWNoZWRDU1NTdHlsZVNoZWV0IGZpbmFs
IDogcHVibGljIENhY2hlZFJlc291cmNlIHsKICAgICBwdWJsaWM6Ci0gICAgICAgIENhY2hlZENT
U1N0eWxlU2hlZXQoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgU3RyaW5nJiBjaGFyc2V0
KTsKKyAgICAgICAgQ2FjaGVkQ1NTU3R5bGVTaGVldChjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBj
b25zdCBTdHJpbmcmIGNoYXJzZXQsIFNlc3Npb25JRCk7CiAgICAgICAgIHZpcnR1YWwgfkNhY2hl
ZENTU1N0eWxlU2hlZXQoKTsKIAogICAgICAgICBjb25zdCBTdHJpbmcgc2hlZXRUZXh0KGJvb2wg
ZW5mb3JjZU1JTUVUeXBlID0gdHJ1ZSwgYm9vbCogaGFzVmFsaWRNSU1FVHlwZSA9IDApIGNvbnN0
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZEZvbnQuY3Bw
IGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZEZvbnQuY3BwCmluZGV4IGZiZjY1
OGMuLjJhMWExNDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNo
ZWRGb250LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkRm9udC5j
cHAKQEAgLTUwLDggKzUwLDggQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1DYWNoZWRGb250
OjpDYWNoZWRGb250KGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVzb3VyY2VSZXF1ZXN0KQotICAg
IDogQ2FjaGVkUmVzb3VyY2UocmVzb3VyY2VSZXF1ZXN0LCBGb250UmVzb3VyY2UpCitDYWNoZWRG
b250OjpDYWNoZWRGb250KGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVzb3VyY2VSZXF1ZXN0LCBT
ZXNzaW9uSUQgc2Vzc2lvbklEKQorICAgIDogQ2FjaGVkUmVzb3VyY2UocmVzb3VyY2VSZXF1ZXN0
LCBGb250UmVzb3VyY2UsIHNlc3Npb25JRCkKICAgICAsIG1fbG9hZEluaXRpYXRlZChmYWxzZSkK
ICAgICAsIG1faGFzQ3JlYXRlZEZvbnREYXRhV3JhcHBpbmdSZXNvdXJjZShmYWxzZSkKIHsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRGb250LmggYi9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkRm9udC5oCmluZGV4IDc0NGI2MmQuLmZiMjE2
NTkzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkRm9udC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRGb250LmgKQEAgLTQyLDcg
KzQyLDcgQEAgc3RydWN0IEZvbnRDdXN0b21QbGF0Zm9ybURhdGE7CiAKIGNsYXNzIENhY2hlZEZv
bnQgZmluYWwgOiBwdWJsaWMgQ2FjaGVkUmVzb3VyY2UgewogcHVibGljOgotICAgIENhY2hlZEZv
bnQoY29uc3QgUmVzb3VyY2VSZXF1ZXN0Jik7CisgICAgQ2FjaGVkRm9udChjb25zdCBSZXNvdXJj
ZVJlcXVlc3QmLCBTZXNzaW9uSUQpOwogICAgIHZpcnR1YWwgfkNhY2hlZEZvbnQoKTsKIAogICAg
IHZvaWQgYmVnaW5Mb2FkSWZOZWVkZWQoQ2FjaGVkUmVzb3VyY2VMb2FkZXIqIGRsKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRJbWFnZS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkSW1hZ2UuY3BwCmluZGV4IDRjMjY2N2IuLmI5
MmE5NzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRJbWFn
ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZEltYWdlLmNwcApA
QCAtNjAsOCArNjAsOCBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLUNhY2hlZEltYWdlOjpD
YWNoZWRJbWFnZShjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlc291cmNlUmVxdWVzdCkKLSAgICA6
IENhY2hlZFJlc291cmNlKHJlc291cmNlUmVxdWVzdCwgSW1hZ2VSZXNvdXJjZSkKK0NhY2hlZElt
YWdlOjpDYWNoZWRJbWFnZShjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlc291cmNlUmVxdWVzdCwg
U2Vzc2lvbklEIHNlc3Npb25JRCkKKyAgICA6IENhY2hlZFJlc291cmNlKHJlc291cmNlUmVxdWVz
dCwgSW1hZ2VSZXNvdXJjZSwgc2Vzc2lvbklEKQogICAgICwgbV9pbWFnZSgwKQogICAgICwgbV9p
c01hbnVhbGx5Q2FjaGVkKGZhbHNlKQogICAgICwgbV9zaG91bGRQYWludEJyb2tlbkltYWdlKHRy
dWUpCkBAIC02OSw4ICs2OSw4IEBAIENhY2hlZEltYWdlOjpDYWNoZWRJbWFnZShjb25zdCBSZXNv
dXJjZVJlcXVlc3QmIHJlc291cmNlUmVxdWVzdCkKICAgICBzZXRTdGF0dXMoVW5rbm93bik7CiB9
CiAKLUNhY2hlZEltYWdlOjpDYWNoZWRJbWFnZShJbWFnZSogaW1hZ2UpCi0gICAgOiBDYWNoZWRS
ZXNvdXJjZShSZXNvdXJjZVJlcXVlc3QoKSwgSW1hZ2VSZXNvdXJjZSkKK0NhY2hlZEltYWdlOjpD
YWNoZWRJbWFnZShJbWFnZSogaW1hZ2UsIFNlc3Npb25JRCBzZXNzaW9uSUQpCisgICAgOiBDYWNo
ZWRSZXNvdXJjZShSZXNvdXJjZVJlcXVlc3QoKSwgSW1hZ2VSZXNvdXJjZSwgc2Vzc2lvbklEKQog
ICAgICwgbV9pbWFnZShpbWFnZSkKICAgICAsIG1faXNNYW51YWxseUNhY2hlZChmYWxzZSkKICAg
ICAsIG1fc2hvdWxkUGFpbnRCcm9rZW5JbWFnZSh0cnVlKQpAQCAtNzksOCArNzksMTggQEAgQ2Fj
aGVkSW1hZ2U6OkNhY2hlZEltYWdlKEltYWdlKiBpbWFnZSkKICAgICBzZXRMb2FkaW5nKGZhbHNl
KTsKIH0KIAotQ2FjaGVkSW1hZ2U6OkNhY2hlZEltYWdlKGNvbnN0IFVSTCYgdXJsLCBJbWFnZSog
aW1hZ2UsIENhY2hlZEltYWdlOjpDYWNoZUJlaGF2aW9yVHlwZSB0eXBlKQotICAgIDogQ2FjaGVk
UmVzb3VyY2UoUmVzb3VyY2VSZXF1ZXN0KHVybCksIEltYWdlUmVzb3VyY2UpCitDYWNoZWRJbWFn
ZTo6Q2FjaGVkSW1hZ2UoY29uc3QgVVJMJiB1cmwsIEltYWdlKiBpbWFnZSwgU2Vzc2lvbklEIHNl
c3Npb25JRCkKKyAgICA6IENhY2hlZFJlc291cmNlKFJlc291cmNlUmVxdWVzdCh1cmwpLCBJbWFn
ZVJlc291cmNlLCBzZXNzaW9uSUQpCisgICAgLCBtX2ltYWdlKGltYWdlKQorICAgICwgbV9pc01h
bnVhbGx5Q2FjaGVkKGZhbHNlKQorICAgICwgbV9zaG91bGRQYWludEJyb2tlbkltYWdlKHRydWUp
Cit7CisgICAgc2V0U3RhdHVzKENhY2hlZCk7CisgICAgc2V0TG9hZGluZyhmYWxzZSk7Cit9CisK
K0NhY2hlZEltYWdlOjpDYWNoZWRJbWFnZShjb25zdCBVUkwmIHVybCwgSW1hZ2UqIGltYWdlLCBD
YWNoZWRJbWFnZTo6Q2FjaGVCZWhhdmlvclR5cGUgdHlwZSwgU2Vzc2lvbklEIHNlc3Npb25JRCkK
KyAgICA6IENhY2hlZFJlc291cmNlKFJlc291cmNlUmVxdWVzdCh1cmwpLCBJbWFnZVJlc291cmNl
LCBzZXNzaW9uSUQpCiAgICAgLCBtX2ltYWdlKGltYWdlKQogICAgICwgbV9pc01hbnVhbGx5Q2Fj
aGVkKHR5cGUgPT0gQ2FjaGVkSW1hZ2U6Ok1hbnVhbGx5Q2FjaGVkKQogICAgICwgbV9zaG91bGRQ
YWludEJyb2tlbkltYWdlKHRydWUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
Y2FjaGUvQ2FjaGVkSW1hZ2UuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRJ
bWFnZS5oCmluZGV4IGI3ZDcyMTEuLjg2YWYwM2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9jYWNoZS9DYWNoZWRJbWFnZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9j
YWNoZS9DYWNoZWRJbWFnZS5oCkBAIC01MCw5ICs1MCwxMCBAQCBjbGFzcyBDYWNoZWRJbWFnZSBm
aW5hbCA6IHB1YmxpYyBDYWNoZWRSZXNvdXJjZSwgcHVibGljIEltYWdlT2JzZXJ2ZXIgewogcHVi
bGljOgogICAgIGVudW0gQ2FjaGVCZWhhdmlvclR5cGUgeyBBdXRvbWF0aWNhbGx5Q2FjaGVkLCBN
YW51YWxseUNhY2hlZCB9OwogCi0gICAgQ2FjaGVkSW1hZ2UoY29uc3QgUmVzb3VyY2VSZXF1ZXN0
Jik7Ci0gICAgQ2FjaGVkSW1hZ2UoSW1hZ2UqKTsKLSAgICBDYWNoZWRJbWFnZShjb25zdCBVUkwm
LCBJbWFnZSosIENhY2hlQmVoYXZpb3JUeXBlID0gQXV0b21hdGljYWxseUNhY2hlZCk7CisgICAg
Q2FjaGVkSW1hZ2UoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgU2Vzc2lvbklEKTsKKyAgICBDYWNo
ZWRJbWFnZShJbWFnZSosIFNlc3Npb25JRCk7CisgICAgQ2FjaGVkSW1hZ2UoY29uc3QgVVJMJiwg
SW1hZ2UqLCBTZXNzaW9uSUQpOworICAgIENhY2hlZEltYWdlKGNvbnN0IFVSTCYsIEltYWdlKiwg
Q2FjaGVCZWhhdmlvclR5cGUsIFNlc3Npb25JRCk7CiAgICAgdmlydHVhbCB+Q2FjaGVkSW1hZ2Uo
KTsKIAogICAgIEltYWdlKiBpbWFnZSgpOyAvLyBSZXR1cm5zIHRoZSBudWxsSW1hZ2UoKSBpZiB0
aGUgaW1hZ2UgaXMgbm90IGF2YWlsYWJsZSB5ZXQuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmF3UmVzb3VyY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL2NhY2hlL0NhY2hlZFJhd1Jlc291cmNlLmNwcAppbmRleCA3MWQ4NmRhLi5jNDY1ZDJmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmF3UmVzb3VyY2Uu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSYXdSZXNvdXJjZS5j
cHAKQEAgLTM1LDggKzM1LDggQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1DYWNoZWRSYXdS
ZXNvdXJjZTo6Q2FjaGVkUmF3UmVzb3VyY2UoUmVzb3VyY2VSZXF1ZXN0JiByZXNvdXJjZVJlcXVl
c3QsIFR5cGUgdHlwZSkKLSAgICA6IENhY2hlZFJlc291cmNlKHJlc291cmNlUmVxdWVzdCwgdHlw
ZSkKK0NhY2hlZFJhd1Jlc291cmNlOjpDYWNoZWRSYXdSZXNvdXJjZShSZXNvdXJjZVJlcXVlc3Qm
IHJlc291cmNlUmVxdWVzdCwgVHlwZSB0eXBlLCBTZXNzaW9uSUQgc2Vzc2lvbklEKQorICAgIDog
Q2FjaGVkUmVzb3VyY2UocmVzb3VyY2VSZXF1ZXN0LCB0eXBlLCBzZXNzaW9uSUQpCiAgICAgLCBt
X2lkZW50aWZpZXIoMCkKIHsKICAgICAvLyBGSVhNRTogVGhlIHdyb25nIENhY2hlZFJlc291cmNl
OjpUeXBlIGhlcmUgbWF5IGNhdXNlIGEgYmFkIGNhc3QgZWxzZXdoZXJlLgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJhd1Jlc291cmNlLmggYi9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmF3UmVzb3VyY2UuaAppbmRleCBjY2RmZWUxLi4z
ZDZiZmIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmF3
UmVzb3VyY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmF3UmVz
b3VyY2UuaApAQCAtMzIsNyArMzIsNyBAQCBjbGFzcyBTdWJyZXNvdXJjZUxvYWRlcjsKIAogY2xh
c3MgQ2FjaGVkUmF3UmVzb3VyY2UgZmluYWwgOiBwdWJsaWMgQ2FjaGVkUmVzb3VyY2UgewogcHVi
bGljOgotICAgIENhY2hlZFJhd1Jlc291cmNlKFJlc291cmNlUmVxdWVzdCYsIFR5cGUpOworICAg
IENhY2hlZFJhd1Jlc291cmNlKFJlc291cmNlUmVxdWVzdCYsIFR5cGUsIFNlc3Npb25JRCk7CiAK
ICAgICAvLyBGSVhNRTogQXNzb2NpYXRlZFVSTExvYWRlciBzaG91bGRuJ3QgYmUgYSBEb2N1bWVu
dFRocmVhZGFibGVMb2FkZXIgYW5kIHRoZXJlZm9yZSBzaG91bGRuJ3QKICAgICAvLyB1c2UgQ2Fj
aGVkUmF3UmVzb3VyY2UuIEhvd2V2ZXIsIGl0IGlzLCBhbmQgaXQgbmVlZHMgdG8gYmUgYWJsZSB0
byBkZWZlciBsb2FkaW5nLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hl
L0NhY2hlZFJlc291cmNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRS
ZXNvdXJjZS5jcHAKaW5kZXggNjk3YTQ5NS4uZjAzYTNlNSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2UuY3BwCkBAIC0xNDcsOCArMTQ3LDkgQEAgc3Rh
dGljIGRvdWJsZSBkZWFkRGVjb2RlZERhdGFEZWxldGlvbkludGVydmFsRm9yUmVzb3VyY2VUeXBl
KENhY2hlZFJlc291cmNlOjpUeXAKIAogREVGSU5FX0RFQlVHX09OTFlfR0xPQkFMKFJlZkNvdW50
ZWRMZWFrQ291bnRlciwgY2FjaGVkUmVzb3VyY2VMZWFrQ291bnRlciwgKCJDYWNoZWRSZXNvdXJj
ZSIpKTsKIAotQ2FjaGVkUmVzb3VyY2U6OkNhY2hlZFJlc291cmNlKGNvbnN0IFJlc291cmNlUmVx
dWVzdCYgcmVxdWVzdCwgVHlwZSB0eXBlKQorQ2FjaGVkUmVzb3VyY2U6OkNhY2hlZFJlc291cmNl
KGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgVHlwZSB0eXBlLCBTZXNzaW9uSUQgc2Vz
c2lvbklEKQogICAgIDogbV9yZXNvdXJjZVJlcXVlc3QocmVxdWVzdCkKKyAgICAsIG1fc2Vzc2lv
bklEKHNlc3Npb25JRCkKICAgICAsIG1fbG9hZFByaW9yaXR5KGRlZmF1bHRQcmlvcml0eUZvclJl
c291cmNlVHlwZSh0eXBlKSkKICAgICAsIG1fcmVzcG9uc2VUaW1lc3RhbXAoY3VycmVudFRpbWUo
KSkKICAgICAsIG1fZGVjb2RlZERhdGFEZWxldGlvblRpbWVyKHRoaXMsICZDYWNoZWRSZXNvdXJj
ZTo6ZGVjb2RlZERhdGFEZWxldGlvblRpbWVyRmlyZWQsIGRlYWREZWNvZGVkRGF0YURlbGV0aW9u
SW50ZXJ2YWxGb3JSZXNvdXJjZVR5cGUodHlwZSkpCkBAIC0xODAsNiArMTgxLDcgQEAgQ2FjaGVk
UmVzb3VyY2U6OkNhY2hlZFJlc291cmNlKGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwg
VHlwZSB0eXBlKQogICAgICwgbV9wcm94eVJlc291cmNlKDApCiB7CiAgICAgQVNTRVJUKG1fdHlw
ZSA9PSB1bnNpZ25lZCh0eXBlKSk7IC8vIG1fdHlwZSBpcyBhIGJpdGZpZWxkLCBzbyB0aGlzIHRl
c3RzIGNhcmVsZXNzIHVwZGF0ZXMgb2YgdGhlIGVudW0uCisgICAgQVNTRVJUKHNlc3Npb25JRC5p
c1ZhbGlkKCkpOwogI2lmbmRlZiBOREVCVUcKICAgICBjYWNoZWRSZXNvdXJjZUxlYWtDb3VudGVy
LmluY3JlbWVudCgpOwogI2VuZGlmCkBAIC0xOTksNyArMjAxLDcgQEAgQ2FjaGVkUmVzb3VyY2U6
On5DYWNoZWRSZXNvdXJjZSgpCiAgICAgQVNTRVJUKGNhbkRlbGV0ZSgpKTsKICAgICBBU1NFUlQo
IWluQ2FjaGUoKSk7CiAgICAgQVNTRVJUKCFtX2RlbGV0ZWQpOwotICAgIEFTU0VSVCh1cmwoKS5p
c051bGwoKSB8fCBtZW1vcnlDYWNoZSgpLT5yZXNvdXJjZUZvclJlcXVlc3QocmVzb3VyY2VSZXF1
ZXN0KCkpICE9IHRoaXMpOworICAgIEFTU0VSVCh1cmwoKS5pc051bGwoKSB8fCBtZW1vcnlDYWNo
ZSgpLT5yZXNvdXJjZUZvclJlcXVlc3QocmVzb3VyY2VSZXF1ZXN0KCksIHNlc3Npb25JRCgpKSAh
PSB0aGlzKTsKIAogI2lmbmRlZiBOREVCVUcKICAgICBtX2RlbGV0ZWQgPSB0cnVlOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2UuaAppbmRleCBlZjBiYzY2Li45
ZjhkMWQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVz
b3VyY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2Uu
aApAQCAtMzEsNiArMzEsNyBAQAogI2luY2x1ZGUgIlJlc291cmNlTG9hZGVyT3B0aW9ucy5oIgog
I2luY2x1ZGUgIlJlc291cmNlUmVxdWVzdC5oIgogI2luY2x1ZGUgIlJlc291cmNlUmVzcG9uc2Uu
aCIKKyNpbmNsdWRlICJTZXNzaW9uSUQuaCIKICNpbmNsdWRlICJUaW1lci5oIgogI2luY2x1ZGUg
PHRpbWUuaD4KICNpbmNsdWRlIDx3dGYvSGFzaENvdW50ZWRTZXQuaD4KQEAgLTg5LDcgKzkwLDcg
QEAgcHVibGljOgogICAgICAgICBEZWNvZGVFcnJvcgogICAgIH07CiAKLSAgICBDYWNoZWRSZXNv
dXJjZShjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBUeXBlKTsKKyAgICBDYWNoZWRSZXNvdXJjZShj
b25zdCBSZXNvdXJjZVJlcXVlc3QmLCBUeXBlLCBTZXNzaW9uSUQpOwogICAgIHZpcnR1YWwgfkNh
Y2hlZFJlc291cmNlKCk7CiAKICAgICB2aXJ0dWFsIHZvaWQgbG9hZChDYWNoZWRSZXNvdXJjZUxv
YWRlciosIGNvbnN0IFJlc291cmNlTG9hZGVyT3B0aW9ucyYpOwpAQCAtMTExLDYgKzExMiw3IEBA
IHB1YmxpYzoKICNpZiBFTkFCTEUoQ0FDSEVfUEFSVElUSU9OSU5HKQogICAgIGNvbnN0IFN0cmlu
ZyYgY2FjaGVQYXJ0aXRpb24oKSBjb25zdCB7IHJldHVybiBtX3Jlc291cmNlUmVxdWVzdC5jYWNo
ZVBhcnRpdGlvbigpOyB9CiAjZW5kaWYKKyAgICBTZXNzaW9uSUQgc2Vzc2lvbklEKCkgY29uc3Qg
eyByZXR1cm4gbV9zZXNzaW9uSUQ7IH0KICAgICBUeXBlIHR5cGUoKSBjb25zdCB7IHJldHVybiBz
dGF0aWNfY2FzdDxUeXBlPihtX3R5cGUpOyB9CiAgICAgCiAgICAgUmVzb3VyY2VMb2FkUHJpb3Jp
dHkgbG9hZFByaW9yaXR5KCkgY29uc3QgeyByZXR1cm4gbV9sb2FkUHJpb3JpdHk7IH0KQEAgLTI5
MCw2ICsyOTIsNyBAQCBwcm90ZWN0ZWQ6CiAgICAgSGFzaE1hcDxDYWNoZWRSZXNvdXJjZUNsaWVu
dCosIE93blB0cjxDYWNoZWRSZXNvdXJjZUNhbGxiYWNrPj4gbV9jbGllbnRzQXdhaXRpbmdDYWxs
YmFjazsKIAogICAgIFJlc291cmNlUmVxdWVzdCBtX3Jlc291cmNlUmVxdWVzdDsKKyAgICBTZXNz
aW9uSUQgbV9zZXNzaW9uSUQ7CiAgICAgU3RyaW5nIG1fYWNjZXB0OwogICAgIFJlZlB0cjxTdWJy
ZXNvdXJjZUxvYWRlcj4gbV9sb2FkZXI7CiAgICAgUmVzb3VyY2VMb2FkZXJPcHRpb25zIG1fb3B0
aW9uczsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNv
dXJjZUxvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3Vy
Y2VMb2FkZXIuY3BwCmluZGV4IDExZjE4YTguLjlkMjhkNzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZUxvYWRlci5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlTG9hZGVyLmNwcApAQCAtNDgsMTIg
KzQ4LDE0IEBACiAjaW5jbHVkZSAiTG9hZGVyU3RyYXRlZ3kuaCIKICNpbmNsdWRlICJMb2dnaW5n
LmgiCiAjaW5jbHVkZSAiTWVtb3J5Q2FjaGUuaCIKKyNpbmNsdWRlICJQYWdlLmgiCiAjaW5jbHVk
ZSAiUGluZ0xvYWRlci5oIgogI2luY2x1ZGUgIlBsYXRmb3JtU3RyYXRlZ2llcy5oIgogI2luY2x1
ZGUgIlJlbmRlckVsZW1lbnQuaCIKICNpbmNsdWRlICJSZXNvdXJjZUxvYWRTY2hlZHVsZXIuaCIK
ICNpbmNsdWRlICJTY3JpcHRDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAiU2VjdXJpdHlPcmlnaW4u
aCIKKyNpbmNsdWRlICJTZXNzaW9uSUQuaCIKICNpbmNsdWRlICJTZXR0aW5ncy5oIgogI2luY2x1
ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4K
QEAgLTcwLDM1ICs3MiwzNSBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLXN0YXRpYyBDYWNo
ZWRSZXNvdXJjZSogY3JlYXRlUmVzb3VyY2UoQ2FjaGVkUmVzb3VyY2U6OlR5cGUgdHlwZSwgUmVz
b3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBjb25zdCBTdHJpbmcmIGNoYXJzZXQpCitzdGF0aWMgQ2Fj
aGVkUmVzb3VyY2UqIGNyZWF0ZVJlc291cmNlKENhY2hlZFJlc291cmNlOjpUeXBlIHR5cGUsIFJl
c291cmNlUmVxdWVzdCYgcmVxdWVzdCwgY29uc3QgU3RyaW5nJiBjaGFyc2V0LCBTZXNzaW9uSUQg
c2Vzc2lvbklEKQogewogICAgIHN3aXRjaCAodHlwZSkgewogICAgIGNhc2UgQ2FjaGVkUmVzb3Vy
Y2U6OkltYWdlUmVzb3VyY2U6Ci0gICAgICAgIHJldHVybiBuZXcgQ2FjaGVkSW1hZ2UocmVxdWVz
dCk7CisgICAgICAgIHJldHVybiBuZXcgQ2FjaGVkSW1hZ2UocmVxdWVzdCwgc2Vzc2lvbklEKTsK
ICAgICBjYXNlIENhY2hlZFJlc291cmNlOjpDU1NTdHlsZVNoZWV0OgotICAgICAgICByZXR1cm4g
bmV3IENhY2hlZENTU1N0eWxlU2hlZXQocmVxdWVzdCwgY2hhcnNldCk7CisgICAgICAgIHJldHVy
biBuZXcgQ2FjaGVkQ1NTU3R5bGVTaGVldChyZXF1ZXN0LCBjaGFyc2V0LCBzZXNzaW9uSUQpOwog
ICAgIGNhc2UgQ2FjaGVkUmVzb3VyY2U6OlNjcmlwdDoKLSAgICAgICAgcmV0dXJuIG5ldyBDYWNo
ZWRTY3JpcHQocmVxdWVzdCwgY2hhcnNldCk7CisgICAgICAgIHJldHVybiBuZXcgQ2FjaGVkU2Ny
aXB0KHJlcXVlc3QsIGNoYXJzZXQsIHNlc3Npb25JRCk7CiAgICAgY2FzZSBDYWNoZWRSZXNvdXJj
ZTo6U1ZHRG9jdW1lbnRSZXNvdXJjZToKLSAgICAgICAgcmV0dXJuIG5ldyBDYWNoZWRTVkdEb2N1
bWVudChyZXF1ZXN0KTsKKyAgICAgICAgcmV0dXJuIG5ldyBDYWNoZWRTVkdEb2N1bWVudChyZXF1
ZXN0LCBzZXNzaW9uSUQpOwogICAgIGNhc2UgQ2FjaGVkUmVzb3VyY2U6OkZvbnRSZXNvdXJjZToK
LSAgICAgICAgcmV0dXJuIG5ldyBDYWNoZWRGb250KHJlcXVlc3QpOworICAgICAgICByZXR1cm4g
bmV3IENhY2hlZEZvbnQocmVxdWVzdCwgc2Vzc2lvbklEKTsKICAgICBjYXNlIENhY2hlZFJlc291
cmNlOjpSYXdSZXNvdXJjZToKICAgICBjYXNlIENhY2hlZFJlc291cmNlOjpNYWluUmVzb3VyY2U6
Ci0gICAgICAgIHJldHVybiBuZXcgQ2FjaGVkUmF3UmVzb3VyY2UocmVxdWVzdCwgdHlwZSk7Cisg
ICAgICAgIHJldHVybiBuZXcgQ2FjaGVkUmF3UmVzb3VyY2UocmVxdWVzdCwgdHlwZSwgc2Vzc2lv
bklEKTsKICNpZiBFTkFCTEUoWFNMVCkKICAgICBjYXNlIENhY2hlZFJlc291cmNlOjpYU0xTdHls
ZVNoZWV0OgotICAgICAgICByZXR1cm4gbmV3IENhY2hlZFhTTFN0eWxlU2hlZXQocmVxdWVzdCk7
CisgICAgICAgIHJldHVybiBuZXcgQ2FjaGVkWFNMU3R5bGVTaGVldChyZXF1ZXN0LCBzZXNzaW9u
SUQpOwogI2VuZGlmCiAjaWYgRU5BQkxFKExJTktfUFJFRkVUQ0gpCiAgICAgY2FzZSBDYWNoZWRS
ZXNvdXJjZTo6TGlua1ByZWZldGNoOgotICAgICAgICByZXR1cm4gbmV3IENhY2hlZFJlc291cmNl
KHJlcXVlc3QsIENhY2hlZFJlc291cmNlOjpMaW5rUHJlZmV0Y2gpOworICAgICAgICByZXR1cm4g
bmV3IENhY2hlZFJlc291cmNlKHJlcXVlc3QsIENhY2hlZFJlc291cmNlOjpMaW5rUHJlZmV0Y2gs
IHNlc3Npb25JRCk7CiAgICAgY2FzZSBDYWNoZWRSZXNvdXJjZTo6TGlua1N1YnJlc291cmNlOgot
ICAgICAgICByZXR1cm4gbmV3IENhY2hlZFJlc291cmNlKHJlcXVlc3QsIENhY2hlZFJlc291cmNl
OjpMaW5rU3VicmVzb3VyY2UpOworICAgICAgICByZXR1cm4gbmV3IENhY2hlZFJlc291cmNlKHJl
cXVlc3QsIENhY2hlZFJlc291cmNlOjpMaW5rU3VicmVzb3VyY2UsIHNlc3Npb25JRCk7CiAjZW5k
aWYKICNpZiBFTkFCTEUoVklERU9fVFJBQ0spCiAgICAgY2FzZSBDYWNoZWRSZXNvdXJjZTo6VGV4
dFRyYWNrUmVzb3VyY2U6Ci0gICAgICAgIHJldHVybiBuZXcgQ2FjaGVkVGV4dFRyYWNrKHJlcXVl
c3QpOworICAgICAgICByZXR1cm4gbmV3IENhY2hlZFRleHRUcmFjayhyZXF1ZXN0LCBzZXNzaW9u
SUQpOwogI2VuZGlmCiAgICAgfQogICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwpAQCAtMTQ3LDYg
KzE0OSwxNiBAQCBGcmFtZSogQ2FjaGVkUmVzb3VyY2VMb2FkZXI6OmZyYW1lKCkgY29uc3QKICAg
ICByZXR1cm4gbV9kb2N1bWVudExvYWRlciA/IG1fZG9jdW1lbnRMb2FkZXItPmZyYW1lKCkgOiAw
OwogfQogCitTZXNzaW9uSUQgQ2FjaGVkUmVzb3VyY2VMb2FkZXI6OnNlc3Npb25JRCgpIGNvbnN0
Cit7CisgICAgU2Vzc2lvbklEIHNlc3Npb25JRCA9IFNlc3Npb25JRDo6ZGVmYXVsdFNlc3Npb25J
RCgpOworCisgICAgaWYgKEZyYW1lKiBmID0gZnJhbWUoKSkKKyAgICAgICAgc2Vzc2lvbklEID0g
Zi0+cGFnZSgpLT5zZXNzaW9uSUQoKTsKKworICAgIHJldHVybiBzZXNzaW9uSUQ7Cit9CisKIENh
Y2hlZFJlc291cmNlSGFuZGxlPENhY2hlZEltYWdlPiBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6cmVx
dWVzdEltYWdlKENhY2hlZFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCkKIHsKICAgICBpZiAoRnJh
bWUqIGZyYW1lID0gdGhpcy0+ZnJhbWUoKSkgewpAQCAtMTg3LDcgKzE5OSw3IEBAIENhY2hlZFJl
c291cmNlSGFuZGxlPENhY2hlZENTU1N0eWxlU2hlZXQ+IENhY2hlZFJlc291cmNlTG9hZGVyOjpy
ZXF1ZXN0VXNlckNTU1N0CiAgICAgcmVxdWVzdC5tdXRhYmxlUmVzb3VyY2VSZXF1ZXN0KCkuc2V0
Q2FjaGVQYXJ0aXRpb24oZG9jdW1lbnQoKS0+dG9wT3JpZ2luKCktPmNhY2hlUGFydGl0aW9uKCkp
OwogI2VuZGlmCiAKLSAgICBpZiAoQ2FjaGVkUmVzb3VyY2UqIGV4aXN0aW5nID0gbWVtb3J5Q2Fj
aGUoKS0+cmVzb3VyY2VGb3JSZXF1ZXN0KHJlcXVlc3QucmVzb3VyY2VSZXF1ZXN0KCkpKSB7Cisg
ICAgaWYgKENhY2hlZFJlc291cmNlKiBleGlzdGluZyA9IG1lbW9yeUNhY2hlKCktPnJlc291cmNl
Rm9yUmVxdWVzdChyZXF1ZXN0LnJlc291cmNlUmVxdWVzdCgpLCBzZXNzaW9uSUQoKSkpIHsKICAg
ICAgICAgaWYgKGV4aXN0aW5nLT50eXBlKCkgPT0gQ2FjaGVkUmVzb3VyY2U6OkNTU1N0eWxlU2hl
ZXQpCiAgICAgICAgICAgICByZXR1cm4gdG9DYWNoZWRDU1NTdHlsZVNoZWV0KGV4aXN0aW5nKTsK
ICAgICAgICAgbWVtb3J5Q2FjaGUoKS0+cmVtb3ZlKGV4aXN0aW5nKTsKQEAgLTE5NSw3ICsyMDcs
NyBAQCBDYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRDU1NTdHlsZVNoZWV0PiBDYWNoZWRSZXNv
dXJjZUxvYWRlcjo6cmVxdWVzdFVzZXJDU1NTdAogICAgIGlmICh1cmwuc3RyaW5nKCkgIT0gcmVx
dWVzdC5yZXNvdXJjZVJlcXVlc3QoKS51cmwoKSkKICAgICAgICAgcmVxdWVzdC5tdXRhYmxlUmVz
b3VyY2VSZXF1ZXN0KCkuc2V0VVJMKHVybCk7CiAKLSAgICBDYWNoZWRSZXNvdXJjZUhhbmRsZTxD
YWNoZWRDU1NTdHlsZVNoZWV0PiB1c2VyU2hlZXQgPSBuZXcgQ2FjaGVkQ1NTU3R5bGVTaGVldChy
ZXF1ZXN0LnJlc291cmNlUmVxdWVzdCgpLCByZXF1ZXN0LmNoYXJzZXQoKSk7CisgICAgQ2FjaGVk
UmVzb3VyY2VIYW5kbGU8Q2FjaGVkQ1NTU3R5bGVTaGVldD4gdXNlclNoZWV0ID0gbmV3IENhY2hl
ZENTU1N0eWxlU2hlZXQocmVxdWVzdC5yZXNvdXJjZVJlcXVlc3QoKSwgcmVxdWVzdC5jaGFyc2V0
KCksIHNlc3Npb25JRCgpKTsKIAogICAgIG1lbW9yeUNhY2hlKCktPmFkZCh1c2VyU2hlZXQuZ2V0
KCkpOwogICAgIC8vIEZJWE1FOiBsb2FkUmVzb3VyY2UgY2FsbHMgc2V0T3duaW5nQ2FjaGVkUmVz
b3VyY2VMb2FkZXIoKSBpZiB0aGUgcmVzb3VyY2UgY291bGRuJ3QgYmUgYWRkZWQgdG8gY2FjaGUu
IERvZXMgdGhpcyBmdW5jdGlvbiBuZWVkIHRvIGNhbGwgaXQsIHRvbz8KQEAgLTQyOCw3ICs0NDAs
NyBAQCBDYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRSZXNvdXJjZT4gQ2FjaGVkUmVzb3VyY2VM
b2FkZXI6OnJlcXVlc3RSZXNvdXJjZShDYWNoZQogICAgICAgICByZXF1ZXN0Lm11dGFibGVSZXNv
dXJjZVJlcXVlc3QoKS5zZXRDYWNoZVBhcnRpdGlvbihkb2N1bWVudCgpLT50b3BPcmlnaW4oKS0+
Y2FjaGVQYXJ0aXRpb24oKSk7CiAjZW5kaWYKIAotICAgIHJlc291cmNlID0gbWVtb3J5Q2FjaGUo
KS0+cmVzb3VyY2VGb3JSZXF1ZXN0KHJlcXVlc3QucmVzb3VyY2VSZXF1ZXN0KCkpOworICAgIHJl
c291cmNlID0gbWVtb3J5Q2FjaGUoKS0+cmVzb3VyY2VGb3JSZXF1ZXN0KHJlcXVlc3QucmVzb3Vy
Y2VSZXF1ZXN0KCksIHNlc3Npb25JRCgpKTsKIAogICAgIGNvbnN0IFJldmFsaWRhdGlvblBvbGlj
eSBwb2xpY3kgPSBkZXRlcm1pbmVSZXZhbGlkYXRpb25Qb2xpY3kodHlwZSwgcmVxdWVzdC5tdXRh
YmxlUmVzb3VyY2VSZXF1ZXN0KCksIHJlcXVlc3QuZm9yUHJlbG9hZCgpLCByZXNvdXJjZS5nZXQo
KSwgcmVxdWVzdC5kZWZlcigpKTsKICAgICBzd2l0Y2ggKHBvbGljeSkgewpAQCAtNDgwLDEwICs0
OTIsMTEgQEAgQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkUmVzb3VyY2U+IENhY2hlZFJlc291
cmNlTG9hZGVyOjpyZXZhbGlkYXRlUmVzb3VyY2UoY28KICAgICBBU1NFUlQoIW1lbW9yeUNhY2hl
KCktPmRpc2FibGVkKCkpOwogICAgIEFTU0VSVChyZXNvdXJjZS0+Y2FuVXNlQ2FjaGVWYWxpZGF0
b3IoKSk7CiAgICAgQVNTRVJUKCFyZXNvdXJjZS0+cmVzb3VyY2VUb1JldmFsaWRhdGUoKSk7Ci0g
ICAgCisgICAgQVNTRVJUKHJlc291cmNlLT5zZXNzaW9uSUQoKSA9PSBzZXNzaW9uSUQoKSk7CisK
ICAgICAvLyBDb3B5IHRoZSBVUkwgb3V0IG9mIHRoZSByZXNvdXJjZSB0byBiZSByZXZhbGlkYXRl
ZCBpbiBjYXNlIGl0IGdldHMgZGVsZXRlZCBieSB0aGUgcmVtb3ZlKCkgY2FsbCBiZWxvdy4KICAg
ICBTdHJpbmcgdXJsID0gcmVzb3VyY2UtPnVybCgpOwotICAgIENhY2hlZFJlc291cmNlSGFuZGxl
PENhY2hlZFJlc291cmNlPiBuZXdSZXNvdXJjZSA9IGNyZWF0ZVJlc291cmNlKHJlc291cmNlLT50
eXBlKCksIHJlc291cmNlLT5yZXNvdXJjZVJlcXVlc3QoKSwgcmVzb3VyY2UtPmVuY29kaW5nKCkp
OworICAgIENhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZFJlc291cmNlPiBuZXdSZXNvdXJjZSA9
IGNyZWF0ZVJlc291cmNlKHJlc291cmNlLT50eXBlKCksIHJlc291cmNlLT5yZXNvdXJjZVJlcXVl
c3QoKSwgcmVzb3VyY2UtPmVuY29kaW5nKCksIHJlc291cmNlLT5zZXNzaW9uSUQoKSk7CiAgICAg
CiAgICAgTE9HKFJlc291cmNlTG9hZGluZywgIlJlc291cmNlICVwIGNyZWF0ZWQgdG8gcmV2YWxp
ZGF0ZSAlcCIsIG5ld1Jlc291cmNlLmdldCgpLCByZXNvdXJjZSk7CiAgICAgbmV3UmVzb3VyY2Ut
PnNldFJlc291cmNlVG9SZXZhbGlkYXRlKHJlc291cmNlKTsKQEAgLTUwMCwxMSArNTEzLDExIEBA
IENhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZFJlc291cmNlPiBDYWNoZWRSZXNvdXJjZUxvYWRl
cjo6cmV2YWxpZGF0ZVJlc291cmNlKGNvCiAKIENhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZFJl
c291cmNlPiBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6bG9hZFJlc291cmNlKENhY2hlZFJlc291cmNl
OjpUeXBlIHR5cGUsIENhY2hlZFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgY29uc3QgU3RyaW5n
JiBjaGFyc2V0KQogewotICAgIEFTU0VSVCghbWVtb3J5Q2FjaGUoKS0+cmVzb3VyY2VGb3JSZXF1
ZXN0KHJlcXVlc3QucmVzb3VyY2VSZXF1ZXN0KCkpKTsKKyAgICBBU1NFUlQoIW1lbW9yeUNhY2hl
KCktPnJlc291cmNlRm9yUmVxdWVzdChyZXF1ZXN0LnJlc291cmNlUmVxdWVzdCgpLCBzZXNzaW9u
SUQoKSkpOwogCiAgICAgTE9HKFJlc291cmNlTG9hZGluZywgIkxvYWRpbmcgQ2FjaGVkUmVzb3Vy
Y2UgZm9yICclcycuIiwgcmVxdWVzdC5yZXNvdXJjZVJlcXVlc3QoKS51cmwoKS5zdHJpbmdDZW50
ZXJFbGxpcHNpemVkVG9MZW5ndGgoKS5sYXRpbjEoKS5kYXRhKCkpOwogCi0gICAgQ2FjaGVkUmVz
b3VyY2VIYW5kbGU8Q2FjaGVkUmVzb3VyY2U+IHJlc291cmNlID0gY3JlYXRlUmVzb3VyY2UodHlw
ZSwgcmVxdWVzdC5tdXRhYmxlUmVzb3VyY2VSZXF1ZXN0KCksIGNoYXJzZXQpOworICAgIENhY2hl
ZFJlc291cmNlSGFuZGxlPENhY2hlZFJlc291cmNlPiByZXNvdXJjZSA9IGNyZWF0ZVJlc291cmNl
KHR5cGUsIHJlcXVlc3QubXV0YWJsZVJlc291cmNlUmVxdWVzdCgpLCBjaGFyc2V0LCBzZXNzaW9u
SUQoKSk7CiAKICAgICBpZiAoIW1lbW9yeUNhY2hlKCktPmFkZChyZXNvdXJjZS5nZXQoKSkpCiAg
ICAgICAgIHJlc291cmNlLT5zZXRPd25pbmdDYWNoZWRSZXNvdXJjZUxvYWRlcih0aGlzKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZUxvYWRl
ci5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlTG9hZGVyLmgK
aW5kZXggYWFkN2UyNS4uMDFiNjQ3YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVy
L2NhY2hlL0NhY2hlZFJlc291cmNlTG9hZGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVy
L2NhY2hlL0NhY2hlZFJlc291cmNlTG9hZGVyLmgKQEAgLTExMSw2ICsxMTEsNyBAQCBwdWJsaWM6
CiAgICAgRG9jdW1lbnQqIGRvY3VtZW50KCkgY29uc3QgeyByZXR1cm4gbV9kb2N1bWVudDsgfSAv
LyBDYW4gYmUgbnVsbAogICAgIHZvaWQgc2V0RG9jdW1lbnQoRG9jdW1lbnQqIGRvY3VtZW50KSB7
IG1fZG9jdW1lbnQgPSBkb2N1bWVudDsgfQogICAgIHZvaWQgY2xlYXJEb2N1bWVudExvYWRlcigp
IHsgbV9kb2N1bWVudExvYWRlciA9IDA7IH0KKyAgICBTZXNzaW9uSUQgc2Vzc2lvbklEKCkgY29u
c3Q7CiAKICAgICB2b2lkIHJlbW92ZUNhY2hlZFJlc291cmNlKENhY2hlZFJlc291cmNlKikgY29u
c3Q7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRTVkdE
b2N1bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkU1ZHRG9jdW1l
bnQuY3BwCmluZGV4IGRkNWE0NzguLmE0NDgwODYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9jYWNoZS9DYWNoZWRTVkdEb2N1bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
bG9hZGVyL2NhY2hlL0NhY2hlZFNWR0RvY3VtZW50LmNwcApAQCAtMzAsOCArMzAsOCBAQAogCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKLUNhY2hlZFNWR0RvY3VtZW50OjpDYWNoZWRTVkdEb2N1bWVu
dChjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QpCi0gICAgOiBDYWNoZWRSZXNvdXJjZShy
ZXF1ZXN0LCBTVkdEb2N1bWVudFJlc291cmNlKQorQ2FjaGVkU1ZHRG9jdW1lbnQ6OkNhY2hlZFNW
R0RvY3VtZW50KGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgU2Vzc2lvbklEIHNlc3Np
b25JRCkKKyAgICA6IENhY2hlZFJlc291cmNlKHJlcXVlc3QsIFNWR0RvY3VtZW50UmVzb3VyY2Us
IHNlc3Npb25JRCkKICAgICAsIG1fZGVjb2RlcihUZXh0UmVzb3VyY2VEZWNvZGVyOjpjcmVhdGUo
ImFwcGxpY2F0aW9uL3htbCIpKQogewogICAgIHNldEFjY2VwdCgiaW1hZ2Uvc3ZnK3htbCIpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFNWR0RvY3VtZW50
LmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkU1ZHRG9jdW1lbnQuaAppbmRl
eCA2YzA4ZTJlLi43ZDQ2ZmE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2Fj
aGUvQ2FjaGVkU1ZHRG9jdW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUv
Q2FjaGVkU1ZHRG9jdW1lbnQuaApAQCAtMzIsNyArMzIsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKIGNsYXNzIENhY2hlZFNWR0RvY3VtZW50IGZpbmFsIDogcHVibGljIENhY2hlZFJlc291cmNl
IHsKIHB1YmxpYzoKLSAgICBleHBsaWNpdCBDYWNoZWRTVkdEb2N1bWVudChjb25zdCBSZXNvdXJj
ZVJlcXVlc3QmKTsKKyAgICBleHBsaWNpdCBDYWNoZWRTVkdEb2N1bWVudChjb25zdCBSZXNvdXJj
ZVJlcXVlc3QmLCBTZXNzaW9uSUQpOwogICAgIHZpcnR1YWwgfkNhY2hlZFNWR0RvY3VtZW50KCk7
CiAKICAgICBTVkdEb2N1bWVudCogZG9jdW1lbnQoKSBjb25zdCB7IHJldHVybiBtX2RvY3VtZW50
LmdldCgpOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVk
U2NyaXB0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRTY3JpcHQuY3Bw
CmluZGV4IDQ4ZmFjZDcuLmVkYzY4NWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9jYWNoZS9DYWNoZWRTY3JpcHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNo
ZS9DYWNoZWRTY3JpcHQuY3BwCkBAIC0zOSw4ICszOSw4IEBACiAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAotQ2FjaGVkU2NyaXB0OjpDYWNoZWRTY3JpcHQoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiBy
ZXNvdXJjZVJlcXVlc3QsIGNvbnN0IFN0cmluZyYgY2hhcnNldCkKLSAgICA6IENhY2hlZFJlc291
cmNlKHJlc291cmNlUmVxdWVzdCwgU2NyaXB0KQorQ2FjaGVkU2NyaXB0OjpDYWNoZWRTY3JpcHQo
Y29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXNvdXJjZVJlcXVlc3QsIGNvbnN0IFN0cmluZyYgY2hh
cnNldCwgU2Vzc2lvbklEIHNlc3Npb25JRCkKKyAgICA6IENhY2hlZFJlc291cmNlKHJlc291cmNl
UmVxdWVzdCwgU2NyaXB0LCBzZXNzaW9uSUQpCiAgICAgLCBtX2RlY29kZXIoVGV4dFJlc291cmNl
RGVjb2Rlcjo6Y3JlYXRlKEFTQ0lJTGl0ZXJhbCgiYXBwbGljYXRpb24vamF2YXNjcmlwdCIpLCBj
aGFyc2V0KSkKIHsKICAgICAvLyBJdCdzIGphdmFzY3JpcHQgd2Ugd2FudC4KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRTY3JpcHQuaCBiL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9jYWNoZS9DYWNoZWRTY3JpcHQuaAppbmRleCBkNDM4YjI3Li5jOWM3M2QyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkU2NyaXB0LmgKKysr
IGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFNjcmlwdC5oCkBAIC0zNSw3ICsz
NSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogICAgIGNsYXNzIENhY2hlZFNjcmlwdCBmaW5h
bCA6IHB1YmxpYyBDYWNoZWRSZXNvdXJjZSB7CiAgICAgcHVibGljOgotICAgICAgICBDYWNoZWRT
Y3JpcHQoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgU3RyaW5nJiBjaGFyc2V0KTsKKyAg
ICAgICAgQ2FjaGVkU2NyaXB0KGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFN0cmluZyYg
Y2hhcnNldCwgU2Vzc2lvbklEKTsKICAgICAgICAgdmlydHVhbCB+Q2FjaGVkU2NyaXB0KCk7CiAK
ICAgICAgICAgY29uc3QgU3RyaW5nJiBzY3JpcHQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9jYWNoZS9DYWNoZWRUZXh0VHJhY2suY3BwIGIvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL2NhY2hlL0NhY2hlZFRleHRUcmFjay5jcHAKaW5kZXggOTQ5NzRhNS4uMjA1MDU0MSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFRleHRUcmFjay5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFRleHRUcmFjay5jcHAKQEAg
LTM5LDggKzM5LDggQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1DYWNoZWRUZXh0VHJhY2s6
OkNhY2hlZFRleHRUcmFjayhjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlc291cmNlUmVxdWVzdCkK
LSAgICA6IENhY2hlZFJlc291cmNlKHJlc291cmNlUmVxdWVzdCwgVGV4dFRyYWNrUmVzb3VyY2Up
CitDYWNoZWRUZXh0VHJhY2s6OkNhY2hlZFRleHRUcmFjayhjb25zdCBSZXNvdXJjZVJlcXVlc3Qm
IHJlc291cmNlUmVxdWVzdCwgU2Vzc2lvbklEIHNlc3Npb25JRCkKKyAgICA6IENhY2hlZFJlc291
cmNlKHJlc291cmNlUmVxdWVzdCwgVGV4dFRyYWNrUmVzb3VyY2UsIHNlc3Npb25JRCkKIHsKIH0K
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFRleHRUcmFj
ay5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFRleHRUcmFjay5oCmluZGV4
IGIzZWVhN2EuLjc5M2FjOTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNo
ZS9DYWNoZWRUZXh0VHJhY2suaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2Fj
aGVkVGV4dFRyYWNrLmgKQEAgLTM1LDcgKzM1LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBj
bGFzcyBDYWNoZWRUZXh0VHJhY2sgZmluYWwgOiBwdWJsaWMgQ2FjaGVkUmVzb3VyY2UgewogcHVi
bGljOgotICAgIENhY2hlZFRleHRUcmFjayhjb25zdCBSZXNvdXJjZVJlcXVlc3QmKTsKKyAgICBD
YWNoZWRUZXh0VHJhY2soY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgU2Vzc2lvbklEKTsKICAgICB2
aXJ0dWFsIH5DYWNoZWRUZXh0VHJhY2soKTsKIAogcHJpdmF0ZToKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRYU0xTdHlsZVNoZWV0LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRYU0xTdHlsZVNoZWV0LmNwcAppbmRleCBlYjZjOGUx
Li43YTQ5YWMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVk
WFNMU3R5bGVTaGVldC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hl
ZFhTTFN0eWxlU2hlZXQuY3BwCkBAIC0zNyw4ICszNyw4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IAogI2lmIEVOQUJMRShYU0xUKQogCi1DYWNoZWRYU0xTdHlsZVNoZWV0OjpDYWNoZWRYU0xTdHls
ZVNoZWV0KGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVzb3VyY2VSZXF1ZXN0KQotICAgIDogQ2Fj
aGVkUmVzb3VyY2UocmVzb3VyY2VSZXF1ZXN0LCBYU0xTdHlsZVNoZWV0KQorQ2FjaGVkWFNMU3R5
bGVTaGVldDo6Q2FjaGVkWFNMU3R5bGVTaGVldChjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlc291
cmNlUmVxdWVzdCwgU2Vzc2lvbklEIHNlc3Npb25JRCkKKyAgICA6IENhY2hlZFJlc291cmNlKHJl
c291cmNlUmVxdWVzdCwgWFNMU3R5bGVTaGVldCwgc2Vzc2lvbklEKQogICAgICwgbV9kZWNvZGVy
KFRleHRSZXNvdXJjZURlY29kZXI6OmNyZWF0ZSgidGV4dC94c2wiKSkKIHsKICAgICAvLyBJdCdz
IFhNTCB3ZSB3YW50LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0Nh
Y2hlZFhTTFN0eWxlU2hlZXQuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRY
U0xTdHlsZVNoZWV0LmgKaW5kZXggMGNiZmI2NS4uMzY5OTIzYSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFhTTFN0eWxlU2hlZXQuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkWFNMU3R5bGVTaGVldC5oCkBAIC0zNyw3ICszNyw3
IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICNpZiBFTkFCTEUoWFNMVCkKICAgICBjbGFzcyBDYWNo
ZWRYU0xTdHlsZVNoZWV0IGZpbmFsIDogcHVibGljIENhY2hlZFJlc291cmNlIHsKICAgICBwdWJs
aWM6Ci0gICAgICAgIENhY2hlZFhTTFN0eWxlU2hlZXQoY29uc3QgUmVzb3VyY2VSZXF1ZXN0Jik7
CisgICAgICAgIENhY2hlZFhTTFN0eWxlU2hlZXQoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgU2Vz
c2lvbklEKTsKIAogICAgICAgICBjb25zdCBTdHJpbmcmIHNoZWV0KCkgY29uc3QgeyByZXR1cm4g
bV9zaGVldDsgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvTWVt
b3J5Q2FjaGUuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL01lbW9yeUNhY2hlLmNw
cAppbmRleCBjYzZhMjI1Li42MjY1ZGYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvY2FjaGUvTWVtb3J5Q2FjaGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNo
ZS9NZW1vcnlDYWNoZS5jcHAKQEAgLTgwLDYgKzgwLDE3IEBAIE1lbW9yeUNhY2hlOjpNZW1vcnlD
YWNoZSgpCiB7CiB9CiAKK01lbW9yeUNhY2hlOjpDYWNoZWRSZXNvdXJjZU1hcCYgTWVtb3J5Q2Fj
aGU6OmdldFNlc3Npb25NYXAoU2Vzc2lvbklEIHNlc3Npb25JRCkKK3sKKyAgICBBU1NFUlQoc2Vz
c2lvbklELmlzVmFsaWQoKSk7CisgICAgQ2FjaGVkUmVzb3VyY2VNYXAqIG1hcCA9IG1fc2Vzc2lv
blJlc291cmNlcy5nZXQoc2Vzc2lvbklEKTsKKyAgICBpZiAoIW1hcCkgeworICAgICAgICBtX3Nl
c3Npb25SZXNvdXJjZXMuc2V0KHNlc3Npb25JRCwgc3RkOjptYWtlX3VuaXF1ZTxDYWNoZWRSZXNv
dXJjZU1hcD4oKSk7CisgICAgICAgIG1hcCA9IG1fc2Vzc2lvblJlc291cmNlcy5nZXQoc2Vzc2lv
bklEKTsKKyAgICB9CisgICAgcmV0dXJuICptYXA7Cit9CisKIFVSTCBNZW1vcnlDYWNoZTo6cmVt
b3ZlRnJhZ21lbnRJZGVudGlmaWVySWZOZWVkZWQoY29uc3QgVVJMJiBvcmlnaW5hbFVSTCkKIHsK
ICAgICBpZiAoIW9yaWdpbmFsVVJMLmhhc0ZyYWdtZW50SWRlbnRpZmllcigpKQpAQCAtMTAxLDE1
ICsxMTIsMTYgQEAgYm9vbCBNZW1vcnlDYWNoZTo6YWRkKENhY2hlZFJlc291cmNlKiByZXNvdXJj
ZSkKIAogICAgIEFTU0VSVChXVEY6OmlzTWFpblRocmVhZCgpKTsKIAorICAgIENhY2hlZFJlc291
cmNlTWFwJiByZXNvdXJjZXMgPSBnZXRTZXNzaW9uTWFwKHJlc291cmNlLT5zZXNzaW9uSUQoKSk7
CiAjaWYgRU5BQkxFKENBQ0hFX1BBUlRJVElPTklORykKLSAgICBDYWNoZWRSZXNvdXJjZUl0ZW0q
IG9yaWdpbk1hcCA9IG1fcmVzb3VyY2VzLmdldChyZXNvdXJjZS0+dXJsKCkpOworICAgIENhY2hl
ZFJlc291cmNlSXRlbSogb3JpZ2luTWFwID0gcmVzb3VyY2VzLmdldChyZXNvdXJjZS0+dXJsKCkp
OwogICAgIGlmICghb3JpZ2luTWFwKSB7CiAgICAgICAgIG9yaWdpbk1hcCA9IG5ldyBDYWNoZWRS
ZXNvdXJjZUl0ZW07Ci0gICAgICAgIG1fcmVzb3VyY2VzLnNldChyZXNvdXJjZS0+dXJsKCksIGFk
b3B0UHRyKG9yaWdpbk1hcCkpOworICAgICAgICByZXNvdXJjZXMuc2V0KHJlc291cmNlLT51cmwo
KSwgYWRvcHRQdHIob3JpZ2luTWFwKSk7CiAgICAgfQogICAgIG9yaWdpbk1hcC0+c2V0KHJlc291
cmNlLT5jYWNoZVBhcnRpdGlvbigpLCByZXNvdXJjZSk7CiAjZWxzZQotICAgIG1fcmVzb3VyY2Vz
LnNldChyZXNvdXJjZS0+dXJsKCksIHJlc291cmNlKTsKKyAgICByZXNvdXJjZXMuc2V0KHJlc291
cmNlLT51cmwoKSwgcmVzb3VyY2UpOwogI2VuZGlmCiAgICAgcmVzb3VyY2UtPnNldEluQ2FjaGUo
dHJ1ZSk7CiAgICAgCkBAIC0xMzQsMTcgKzE0NiwxOCBAQCB2b2lkIE1lbW9yeUNhY2hlOjpyZXZh
bGlkYXRpb25TdWNjZWVkZWQoQ2FjaGVkUmVzb3VyY2UqIHJldmFsaWRhdGluZ1Jlc291cmNlLCBj
bwogCiAgICAgZXZpY3QocmV2YWxpZGF0aW5nUmVzb3VyY2UpOwogCisgICAgQ2FjaGVkUmVzb3Vy
Y2VNYXAmIHJlc291cmNlcyA9IGdldFNlc3Npb25NYXAocmVzb3VyY2UtPnNlc3Npb25JRCgpKTsK
ICNpZiBFTkFCTEUoQ0FDSEVfUEFSVElUSU9OSU5HKQotICAgIEFTU0VSVCghbV9yZXNvdXJjZXMu
Z2V0KHJlc291cmNlLT51cmwoKSkgfHwgIW1fcmVzb3VyY2VzLmdldChyZXNvdXJjZS0+dXJsKCkp
LT5nZXQocmVzb3VyY2UtPmNhY2hlUGFydGl0aW9uKCkpKTsKLSAgICBDYWNoZWRSZXNvdXJjZUl0
ZW0qIG9yaWdpbk1hcCA9IG1fcmVzb3VyY2VzLmdldChyZXNvdXJjZS0+dXJsKCkpOworICAgIEFT
U0VSVCghcmVzb3VyY2VzLmdldChyZXNvdXJjZS0+dXJsKCkpIHx8ICFyZXNvdXJjZXMuZ2V0KHJl
c291cmNlLT51cmwoKSktPmdldChyZXNvdXJjZS0+Y2FjaGVQYXJ0aXRpb24oKSkpOworICAgIENh
Y2hlZFJlc291cmNlSXRlbSogb3JpZ2luTWFwID0gcmVzb3VyY2VzLmdldChyZXNvdXJjZS0+dXJs
KCkpOwogICAgIGlmICghb3JpZ2luTWFwKSB7CiAgICAgICAgIG9yaWdpbk1hcCA9IG5ldyBDYWNo
ZWRSZXNvdXJjZUl0ZW07Ci0gICAgICAgIG1fcmVzb3VyY2VzLnNldChyZXNvdXJjZS0+dXJsKCks
IGFkb3B0UHRyKG9yaWdpbk1hcCkpOworICAgICAgICByZXNvdXJjZXMuc2V0KHJlc291cmNlLT51
cmwoKSwgYWRvcHRQdHIob3JpZ2luTWFwKSk7CiAgICAgfQogICAgIG9yaWdpbk1hcC0+c2V0KHJl
c291cmNlLT5jYWNoZVBhcnRpdGlvbigpLCByZXNvdXJjZSk7CiAjZWxzZQotICAgIEFTU0VSVCgh
bV9yZXNvdXJjZXMuZ2V0KHJlc291cmNlLT51cmwoKSkpOwotICAgIG1fcmVzb3VyY2VzLnNldChy
ZXNvdXJjZS0+dXJsKCksIHJlc291cmNlKTsKKyAgICBBU1NFUlQoIXJlc291cmNlcy5nZXQocmVz
b3VyY2UtPnVybCgpKSk7CisgICAgcmVzb3VyY2VzLnNldChyZXNvdXJjZS0+dXJsKCksIHJlc291
cmNlKTsKICNlbmRpZgogICAgIHJlc291cmNlLT5zZXRJbkNhY2hlKHRydWUpOwogICAgIHJlc291
cmNlLT51cGRhdGVSZXNwb25zZUFmdGVyUmV2YWxpZGF0aW9uKHJlc3BvbnNlKTsKQEAgLTE3MSwy
MCArMTg0LDMxIEBAIHZvaWQgTWVtb3J5Q2FjaGU6OnJldmFsaWRhdGlvbkZhaWxlZChDYWNoZWRS
ZXNvdXJjZSogcmV2YWxpZGF0aW5nUmVzb3VyY2UpCiAKIENhY2hlZFJlc291cmNlKiBNZW1vcnlD
YWNoZTo6cmVzb3VyY2VGb3JVUkwoY29uc3QgVVJMJiByZXNvdXJjZVVSTCkKIHsKLSAgICByZXR1
cm4gcmVzb3VyY2VGb3JSZXF1ZXN0KFJlc291cmNlUmVxdWVzdChyZXNvdXJjZVVSTCkpOworICAg
IHJldHVybiByZXNvdXJjZUZvclVSTChyZXNvdXJjZVVSTCwgU2Vzc2lvbklEOjpkZWZhdWx0U2Vz
c2lvbklEKCkpOwogfQogCi1DYWNoZWRSZXNvdXJjZSogTWVtb3J5Q2FjaGU6OnJlc291cmNlRm9y
UmVxdWVzdChjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QpCitDYWNoZWRSZXNvdXJjZSog
TWVtb3J5Q2FjaGU6OnJlc291cmNlRm9yVVJMKGNvbnN0IFVSTCYgcmVzb3VyY2VVUkwsIFNlc3Np
b25JRCBzZXNzaW9uSUQpCit7CisgICAgcmV0dXJuIHJlc291cmNlRm9yUmVxdWVzdChSZXNvdXJj
ZVJlcXVlc3QocmVzb3VyY2VVUkwpLCBzZXNzaW9uSUQpOworfQorCitDYWNoZWRSZXNvdXJjZSog
TWVtb3J5Q2FjaGU6OnJlc291cmNlRm9yUmVxdWVzdChjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJl
cXVlc3QsIFNlc3Npb25JRCBzZXNzaW9uSUQpCit7CisgICAgcmV0dXJuIHJlc291cmNlRm9yUmVx
dWVzdEltcGwocmVxdWVzdCwgZ2V0U2Vzc2lvbk1hcChzZXNzaW9uSUQpKTsKK30KKworQ2FjaGVk
UmVzb3VyY2UqIE1lbW9yeUNhY2hlOjpyZXNvdXJjZUZvclJlcXVlc3RJbXBsKGNvbnN0IFJlc291
cmNlUmVxdWVzdCYgcmVxdWVzdCwgQ2FjaGVkUmVzb3VyY2VNYXAmIHJlc291cmNlcykKIHsKICAg
ICBBU1NFUlQoV1RGOjppc01haW5UaHJlYWQoKSk7CiAgICAgVVJMIHVybCA9IHJlbW92ZUZyYWdt
ZW50SWRlbnRpZmllcklmTmVlZGVkKHJlcXVlc3QudXJsKCkpOworCiAjaWYgRU5BQkxFKENBQ0hF
X1BBUlRJVElPTklORykKLSAgICBDYWNoZWRSZXNvdXJjZUl0ZW0qIGl0ZW0gPSBtX3Jlc291cmNl
cy5nZXQodXJsKTsKKyAgICBDYWNoZWRSZXNvdXJjZUl0ZW0qIGl0ZW0gPSByZXNvdXJjZXMuZ2V0
KHVybCk7CiAgICAgQ2FjaGVkUmVzb3VyY2UqIHJlc291cmNlID0gMDsKICAgICBpZiAoaXRlbSkK
ICAgICAgICAgcmVzb3VyY2UgPSBpdGVtLT5nZXQocmVxdWVzdC5jYWNoZVBhcnRpdGlvbigpKTsK
ICNlbHNlCi0gICAgQ2FjaGVkUmVzb3VyY2UqIHJlc291cmNlID0gbV9yZXNvdXJjZXMuZ2V0KHVy
bCk7CisgICAgQ2FjaGVkUmVzb3VyY2UqIHJlc291cmNlID0gcmVzb3VyY2VzLmdldCh1cmwpOwog
I2VuZGlmCiAgICAgYm9vbCB3YXNQdXJnZWFibGUgPSBNZW1vcnlDYWNoZTo6c2hvdWxkTWFrZVJl
c291cmNlUHVyZ2VhYmxlT25FdmljdGlvbigpICYmIHJlc291cmNlICYmIHJlc291cmNlLT5pc1B1
cmdlYWJsZSgpOwogICAgIGlmIChyZXNvdXJjZSAmJiAhcmVzb3VyY2UtPm1ha2VQdXJnZWFibGUo
ZmFsc2UpKSB7CkBAIC0yMjUsMTMgKzI0OSwxNCBAQCBzdGF0aWMgQ2FjaGVkSW1hZ2VDbGllbnQm
IGR1bW15Q2FjaGVkSW1hZ2VDbGllbnQoKQogYm9vbCBNZW1vcnlDYWNoZTo6YWRkSW1hZ2VUb0Nh
Y2hlKE5hdGl2ZUltYWdlUHRyIGltYWdlLCBjb25zdCBVUkwmIHVybCwgY29uc3QgU3RyaW5nJiBj
YWNoZVBhcnRpdGlvbikKIHsKICAgICBBU1NFUlQoaW1hZ2UpOworICAgIFNlc3Npb25JRCBzZXNz
aW9uSUQgPSBTZXNzaW9uSUQ6OmRlZmF1bHRTZXNzaW9uSUQoKTsKICAgICByZW1vdmVJbWFnZUZy
b21DYWNoZSh1cmwsIGNhY2hlUGFydGl0aW9uKTsgLy8gUmVtb3ZlIGNhY2hlIGVudHJ5IGlmIGl0
IGFscmVhZHkgZXhpc3RzLgogCiAgICAgUmVmUHRyPEJpdG1hcEltYWdlPiBiaXRtYXBJbWFnZSA9
IEJpdG1hcEltYWdlOjpjcmVhdGUoaW1hZ2UsIG51bGxwdHIpOwogICAgIGlmICghYml0bWFwSW1h
Z2UpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIHN0ZDo6dW5pcXVlX3B0cjxDYWNoZWRJ
bWFnZT4gY2FjaGVkSW1hZ2UgPSBzdGQ6Om1ha2VfdW5pcXVlPENhY2hlZEltYWdlPih1cmwsIGJp
dG1hcEltYWdlLmdldCgpLCBDYWNoZWRJbWFnZTo6TWFudWFsbHlDYWNoZWQpOworICAgIHN0ZDo6
dW5pcXVlX3B0cjxDYWNoZWRJbWFnZT4gY2FjaGVkSW1hZ2UgPSBzdGQ6Om1ha2VfdW5pcXVlPENh
Y2hlZEltYWdlPih1cmwsIGJpdG1hcEltYWdlLmdldCgpLCBDYWNoZWRJbWFnZTo6TWFudWFsbHlD
YWNoZWQsIHNlc3Npb25JRCk7CiAKICAgICAvLyBBY3R1YWwgcmVsZWFzZSBvZiB0aGUgQ0dJbWFn
ZVJlZiBpcyBkb25lIGluIEJpdG1hcEltYWdlLgogICAgIENGUmV0YWluKGltYWdlKTsKQEAgLTI0
MCwyMSArMjY1LDIxIEBAIGJvb2wgTWVtb3J5Q2FjaGU6OmFkZEltYWdlVG9DYWNoZShOYXRpdmVJ
bWFnZVB0ciBpbWFnZSwgY29uc3QgVVJMJiB1cmwsIGNvbnN0IFN0CiAjaWYgRU5BQkxFKENBQ0hF
X1BBUlRJVElPTklORykKICAgICBjYWNoZWRJbWFnZS0+cmVzb3VyY2VSZXF1ZXN0KCkuc2V0Q2Fj
aGVQYXJ0aXRpb24oY2FjaGVQYXJ0aXRpb24pOwogI2VuZGlmCi0gICAgYWRkKGNhY2hlZEltYWdl
LnJlbGVhc2UoKSk7CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKIHZvaWQgTWVtb3J5Q2FjaGU6OnJl
bW92ZUltYWdlRnJvbUNhY2hlKGNvbnN0IFVSTCYgdXJsLCBjb25zdCBTdHJpbmcmIGNhY2hlUGFy
dGl0aW9uKQogeworICAgIENhY2hlZFJlc291cmNlTWFwJiByZXNvdXJjZXMgPSBnZXRTZXNzaW9u
TWFwKFNlc3Npb25JRDo6ZGVmYXVsdFNlc3Npb25JRCgpKTsKICNpZiBFTkFCTEUoQ0FDSEVfUEFS
VElUSU9OSU5HKQogICAgIENhY2hlZFJlc291cmNlKiByZXNvdXJjZTsKLSAgICBpZiAoQ2FjaGVk
UmVzb3VyY2VJdGVtKiBpdGVtID0gbV9yZXNvdXJjZXMuZ2V0KHVybCkpCisgICAgaWYgKENhY2hl
ZFJlc291cmNlSXRlbSogaXRlbSA9IHJlc291cmNlcy5nZXQodXJsKSkKICAgICAgICAgcmVzb3Vy
Y2UgPSBpdGVtLT5nZXQoUmVzb3VyY2VSZXF1ZXN0OjpwYXJ0aXRpb25OYW1lKGNhY2hlUGFydGl0
aW9uKSk7CiAgICAgZWxzZQogICAgICAgICByZXNvdXJjZSA9IG51bGxwdHI7CiAjZWxzZQogICAg
IFVOVVNFRF9QQVJBTShjYWNoZVBhcnRpdGlvbik7Ci0gICAgQ2FjaGVkUmVzb3VyY2UqIHJlc291
cmNlID0gbV9yZXNvdXJjZXMuZ2V0KHVybCk7CisgICAgQ2FjaGVkUmVzb3VyY2UqIHJlc291cmNl
ID0gcmVzb3VyY2VzLmdldCh1cmwpOwogI2VuZGlmCiAgICAgaWYgKCFyZXNvdXJjZSkKICAgICAg
ICAgcmV0dXJuOwpAQCAtNTIyLDE3ICs1NDcsMTggQEAgdm9pZCBNZW1vcnlDYWNoZTo6ZXZpY3Qo
Q2FjaGVkUmVzb3VyY2UqIHJlc291cmNlKQogICAgIExPRyhSZXNvdXJjZUxvYWRpbmcsICJFdmlj
dGluZyByZXNvdXJjZSAlcCBmb3IgJyVzJyBmcm9tIGNhY2hlIiwgcmVzb3VyY2UsIHJlc291cmNl
LT51cmwoKS5zdHJpbmcoKS5sYXRpbjEoKS5kYXRhKCkpOwogICAgIC8vIFRoZSByZXNvdXJjZSBt
YXkgaGF2ZSBhbHJlYWR5IGJlZW4gcmVtb3ZlZCBieSBzb21lb25lIG90aGVyIHRoYW4gb3VyIGNh
bGxlciwKICAgICAvLyB3aG8gbmVlZGVkIGEgZnJlc2ggY29weSBmb3IgYSByZWxvYWQuIFNlZSA8
aHR0cDovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI0NzkjYzY+LgorICAgIENh
Y2hlZFJlc291cmNlTWFwJiByZXNvdXJjZXMgPSBnZXRTZXNzaW9uTWFwKHJlc291cmNlLT5zZXNz
aW9uSUQoKSk7CiAgICAgaWYgKHJlc291cmNlLT5pbkNhY2hlKCkpIHsKICAgICAgICAgLy8gUmVt
b3ZlIGZyb20gdGhlIHJlc291cmNlIG1hcC4KICNpZiBFTkFCTEUoQ0FDSEVfUEFSVElUSU9OSU5H
KQotICAgICAgICBDYWNoZWRSZXNvdXJjZUl0ZW0qIGl0ZW0gPSBtX3Jlc291cmNlcy5nZXQocmVz
b3VyY2UtPnVybCgpKTsKKyAgICAgICAgQ2FjaGVkUmVzb3VyY2VJdGVtKiBpdGVtID0gcmVzb3Vy
Y2VzLmdldChyZXNvdXJjZS0+dXJsKCkpOwogICAgICAgICBpZiAoaXRlbSkgewogICAgICAgICAg
ICAgaXRlbS0+cmVtb3ZlKHJlc291cmNlLT5jYWNoZVBhcnRpdGlvbigpKTsKICAgICAgICAgICAg
IGlmICghaXRlbS0+c2l6ZSgpKQotICAgICAgICAgICAgICAgIG1fcmVzb3VyY2VzLnJlbW92ZShy
ZXNvdXJjZS0+dXJsKCkpOworICAgICAgICAgICAgICAgIHJlc291cmNlcy5yZW1vdmUocmVzb3Vy
Y2UtPnVybCgpKTsKICAgICAgICAgfQogI2Vsc2UKLSAgICAgICAgbV9yZXNvdXJjZXMucmVtb3Zl
KHJlc291cmNlLT51cmwoKSk7CisgICAgICAgIHJlc291cmNlcy5yZW1vdmUocmVzb3VyY2UtPnVy
bCgpKTsKICNlbmRpZgogICAgICAgICByZXNvdXJjZS0+c2V0SW5DYWNoZShmYWxzZSk7CiAKQEAg
LTU0Nyw5ICs1NzMsOSBAQCB2b2lkIE1lbW9yeUNhY2hlOjpldmljdChDYWNoZWRSZXNvdXJjZSog
cmVzb3VyY2UpCiAgICAgICAgICAgICBhZGp1c3RTaXplKHJlc291cmNlLT5oYXNDbGllbnRzKCks
IC1zdGF0aWNfY2FzdDxpbnQ+KHJlc291cmNlLT5zaXplKCkpKTsKICAgICB9IGVsc2UKICNpZiBF
TkFCTEUoQ0FDSEVfUEFSVElUSU9OSU5HKQotICAgICAgICBBU1NFUlQoIW1fcmVzb3VyY2VzLmdl
dChyZXNvdXJjZS0+dXJsKCkpIHx8IG1fcmVzb3VyY2VzLmdldChyZXNvdXJjZS0+dXJsKCkpLT5n
ZXQocmVzb3VyY2UtPmNhY2hlUGFydGl0aW9uKCkpICE9IHJlc291cmNlKTsKKyAgICAgICAgQVNT
RVJUKCFyZXNvdXJjZXMuZ2V0KHJlc291cmNlLT51cmwoKSkgfHwgcmVzb3VyY2VzLmdldChyZXNv
dXJjZS0+dXJsKCkpLT5nZXQocmVzb3VyY2UtPmNhY2hlUGFydGl0aW9uKCkpICE9IHJlc291cmNl
KTsKICNlbHNlCi0gICAgICAgIEFTU0VSVChtX3Jlc291cmNlcy5nZXQocmVzb3VyY2UtPnVybCgp
KSAhPSByZXNvdXJjZSk7CisgICAgICAgIEFTU0VSVChyZXNvdXJjZXMuZ2V0KHJlc291cmNlLT51
cmwoKSkgIT0gcmVzb3VyY2UpOwogI2VuZGlmCiAKICAgICByZXNvdXJjZS0+ZGVsZXRlSWZQb3Nz
aWJsZSgpOwpAQCAtNjY5LDMxICs2OTUsMzMgQEAgdm9pZCBNZW1vcnlDYWNoZTo6cmVtb3ZlUmVz
b3VyY2VzV2l0aE9yaWdpbihTZWN1cml0eU9yaWdpbiogb3JpZ2luKQogewogICAgIFZlY3RvcjxD
YWNoZWRSZXNvdXJjZSo+IHJlc291cmNlc1dpdGhPcmlnaW47CiAKLSAgICBDYWNoZWRSZXNvdXJj
ZU1hcDo6aXRlcmF0b3IgZSA9IG1fcmVzb3VyY2VzLmVuZCgpOworICAgIGZvciAoYXV0byYgcmVz
b3VyY2VzIDogbV9zZXNzaW9uUmVzb3VyY2VzKSB7CisgICAgICAgIENhY2hlZFJlc291cmNlTWFw
OjppdGVyYXRvciBlID0gcmVzb3VyY2VzLnZhbHVlLT5lbmQoKTsKICNpZiBFTkFCTEUoQ0FDSEVf
UEFSVElUSU9OSU5HKQotICAgIFN0cmluZyBvcmlnaW5QYXJ0aXRpb24gPSBSZXNvdXJjZVJlcXVl
c3Q6OnBhcnRpdGlvbk5hbWUob3JpZ2luLT5ob3N0KCkpOworICAgICAgICBTdHJpbmcgb3JpZ2lu
UGFydGl0aW9uID0gUmVzb3VyY2VSZXF1ZXN0OjpwYXJ0aXRpb25OYW1lKG9yaWdpbi0+aG9zdCgp
KTsKICNlbmRpZgogCi0gICAgZm9yIChDYWNoZWRSZXNvdXJjZU1hcDo6aXRlcmF0b3IgaXQgPSBt
X3Jlc291cmNlcy5iZWdpbigpOyBpdCAhPSBlOyArK2l0KSB7CisgICAgICAgIGZvciAoQ2FjaGVk
UmVzb3VyY2VNYXA6Oml0ZXJhdG9yIGl0ID0gcmVzb3VyY2VzLnZhbHVlLT5iZWdpbigpOyBpdCAh
PSBlOyArK2l0KSB7CiAjaWYgRU5BQkxFKENBQ0hFX1BBUlRJVElPTklORykKLSAgICAgICAgZm9y
IChDYWNoZWRSZXNvdXJjZUl0ZW06Oml0ZXJhdG9yIGl0ZW1JdGVyYXRvciA9IGl0LT52YWx1ZS0+
YmVnaW4oKTsgaXRlbUl0ZXJhdG9yICE9IGl0LT52YWx1ZS0+ZW5kKCk7ICsraXRlbUl0ZXJhdG9y
KSB7Ci0gICAgICAgICAgICBDYWNoZWRSZXNvdXJjZSogcmVzb3VyY2UgPSBpdGVtSXRlcmF0b3It
PnZhbHVlOwotICAgICAgICAgICAgU3RyaW5nIHBhcnRpdGlvbiA9IGl0ZW1JdGVyYXRvci0+a2V5
OwotICAgICAgICAgICAgaWYgKHBhcnRpdGlvbiA9PSBvcmlnaW5QYXJ0aXRpb24pIHsKLSAgICAg
ICAgICAgICAgICByZXNvdXJjZXNXaXRoT3JpZ2luLmFwcGVuZChyZXNvdXJjZSk7Ci0gICAgICAg
ICAgICAgICAgY29udGludWU7Ci0gICAgICAgICAgICB9CisgICAgICAgICAgICBmb3IgKENhY2hl
ZFJlc291cmNlSXRlbTo6aXRlcmF0b3IgaXRlbUl0ZXJhdG9yID0gaXQtPnZhbHVlLT5iZWdpbigp
OyBpdGVtSXRlcmF0b3IgIT0gaXQtPnZhbHVlLT5lbmQoKTsgKytpdGVtSXRlcmF0b3IpIHsKKyAg
ICAgICAgICAgICAgICBDYWNoZWRSZXNvdXJjZSogcmVzb3VyY2UgPSBpdGVtSXRlcmF0b3ItPnZh
bHVlOworICAgICAgICAgICAgICAgIFN0cmluZyBwYXJ0aXRpb24gPSBpdGVtSXRlcmF0b3ItPmtl
eTsKKyAgICAgICAgICAgICAgICBpZiAocGFydGl0aW9uID09IG9yaWdpblBhcnRpdGlvbikgewor
ICAgICAgICAgICAgICAgICAgICByZXNvdXJjZXNXaXRoT3JpZ2luLmFwcGVuZChyZXNvdXJjZSk7
CisgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgICAgIH0KICNlbHNl
Ci0gICAgICAgICAgICBDYWNoZWRSZXNvdXJjZSogcmVzb3VyY2UgPSBpdC0+dmFsdWU7CisgICAg
ICAgICAgICAgICAgQ2FjaGVkUmVzb3VyY2UqIHJlc291cmNlID0gaXQtPnZhbHVlOwogI2VuZGlm
Ci0gICAgICAgICAgICBSZWZQdHI8U2VjdXJpdHlPcmlnaW4+IHJlc291cmNlT3JpZ2luID0gU2Vj
dXJpdHlPcmlnaW46OmNyZWF0ZUZyb21TdHJpbmcocmVzb3VyY2UtPnVybCgpKTsKLSAgICAgICAg
ICAgIGlmICghcmVzb3VyY2VPcmlnaW4pCi0gICAgICAgICAgICAgICAgY29udGludWU7Ci0gICAg
ICAgICAgICBpZiAocmVzb3VyY2VPcmlnaW4tPmVxdWFsKG9yaWdpbikpCi0gICAgICAgICAgICAg
ICAgcmVzb3VyY2VzV2l0aE9yaWdpbi5hcHBlbmQocmVzb3VyY2UpOworICAgICAgICAgICAgICAg
IFJlZlB0cjxTZWN1cml0eU9yaWdpbj4gcmVzb3VyY2VPcmlnaW4gPSBTZWN1cml0eU9yaWdpbjo6
Y3JlYXRlRnJvbVN0cmluZyhyZXNvdXJjZS0+dXJsKCkpOworICAgICAgICAgICAgICAgIGlmICgh
cmVzb3VyY2VPcmlnaW4pCisgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAg
ICAgICAgIGlmIChyZXNvdXJjZU9yaWdpbi0+ZXF1YWwob3JpZ2luKSkKKyAgICAgICAgICAgICAg
ICAgICAgcmVzb3VyY2VzV2l0aE9yaWdpbi5hcHBlbmQocmVzb3VyY2UpOwogI2lmIEVOQUJMRShD
QUNIRV9QQVJUSVRJT05JTkcpCi0gICAgICAgIH0KKyAgICAgICAgICAgIH0KICNlbmRpZgorICAg
ICAgICB9CiAgICAgfQogCiAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCByZXNvdXJjZXNXaXRo
T3JpZ2luLnNpemUoKTsgKytpKQpAQCAtNzA1LDE2ICs3MzMsMTggQEAgdm9pZCBNZW1vcnlDYWNo
ZTo6Z2V0T3JpZ2luc1dpdGhDYWNoZShTZWN1cml0eU9yaWdpblNldCYgb3JpZ2lucykKICNpZiBF
TkFCTEUoQ0FDSEVfUEFSVElUSU9OSU5HKQogICAgIERFRklORV9TVEFUSUNfTE9DQUwoU3RyaW5n
LCBodHRwU3RyaW5nLCAoImh0dHAiKSk7CiAjZW5kaWYKLSAgICBDYWNoZWRSZXNvdXJjZU1hcDo6
aXRlcmF0b3IgZSA9IG1fcmVzb3VyY2VzLmVuZCgpOwotICAgIGZvciAoQ2FjaGVkUmVzb3VyY2VN
YXA6Oml0ZXJhdG9yIGl0ID0gbV9yZXNvdXJjZXMuYmVnaW4oKTsgaXQgIT0gZTsgKytpdCkgewor
ICAgIGZvciAoYXV0byYgcmVzb3VyY2VzIDogbV9zZXNzaW9uUmVzb3VyY2VzKSB7CisgICAgICAg
IENhY2hlZFJlc291cmNlTWFwOjppdGVyYXRvciBlID0gcmVzb3VyY2VzLnZhbHVlLT5lbmQoKTsK
KyAgICAgICAgZm9yIChDYWNoZWRSZXNvdXJjZU1hcDo6aXRlcmF0b3IgaXQgPSByZXNvdXJjZXMu
dmFsdWUtPmJlZ2luKCk7IGl0ICE9IGU7ICsraXQpIHsKICNpZiBFTkFCTEUoQ0FDSEVfUEFSVElU
SU9OSU5HKQotICAgICAgICBpZiAoaXQtPnZhbHVlLT5iZWdpbigpLT5rZXkgPT0gZW1wdHlTdHJp
bmcoKSkKLSAgICAgICAgICAgIG9yaWdpbnMuYWRkKFNlY3VyaXR5T3JpZ2luOjpjcmVhdGVGcm9t
U3RyaW5nKGl0LT52YWx1ZS0+YmVnaW4oKS0+dmFsdWUtPnVybCgpKSk7Ci0gICAgICAgIGVsc2UK
LSAgICAgICAgICAgIG9yaWdpbnMuYWRkKFNlY3VyaXR5T3JpZ2luOjpjcmVhdGUoaHR0cFN0cmlu
ZywgaXQtPnZhbHVlLT5iZWdpbigpLT5rZXksIDApKTsKKyAgICAgICAgICAgIGlmIChpdC0+dmFs
dWUtPmJlZ2luKCktPmtleSA9PSBlbXB0eVN0cmluZygpKQorICAgICAgICAgICAgICAgIG9yaWdp
bnMuYWRkKFNlY3VyaXR5T3JpZ2luOjpjcmVhdGVGcm9tU3RyaW5nKGl0LT52YWx1ZS0+YmVnaW4o
KS0+dmFsdWUtPnVybCgpKSk7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgb3Jp
Z2lucy5hZGQoU2VjdXJpdHlPcmlnaW46OmNyZWF0ZShodHRwU3RyaW5nLCBpdC0+dmFsdWUtPmJl
Z2luKCktPmtleSwgMCkpOwogI2Vsc2UKLSAgICAgICAgb3JpZ2lucy5hZGQoU2VjdXJpdHlPcmln
aW46OmNyZWF0ZUZyb21TdHJpbmcoaXQtPnZhbHVlLT51cmwoKSkpOworICAgICAgICAgICAgb3Jp
Z2lucy5hZGQoU2VjdXJpdHlPcmlnaW46OmNyZWF0ZUZyb21TdHJpbmcoaXQtPnZhbHVlLT51cmwo
KSkpOwogI2VuZGlmCisgICAgICAgIH0KICAgICB9CiB9CiAKQEAgLTgwOCwzMSArODM4LDU0IEBA
IHZvaWQgTWVtb3J5Q2FjaGU6OmFkanVzdFNpemUoYm9vbCBsaXZlLCBpbnQgZGVsdGEpCiAgICAg
fQogfQogCi12b2lkIE1lbW9yeUNhY2hlOjpyZW1vdmVVcmxGcm9tQ2FjaGUoU2NyaXB0RXhlY3V0
aW9uQ29udGV4dCogY29udGV4dCwgY29uc3QgU3RyaW5nJiB1cmxTdHJpbmcpCit2b2lkIE1lbW9y
eUNhY2hlOjpyZW1vdmVVcmxGcm9tQ2FjaGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4
dCwgY29uc3QgU3RyaW5nJiB1cmxTdHJpbmcsIFNlc3Npb25JRCBzZXNzaW9uSUQpCiB7Ci0gICAg
cmVtb3ZlUmVxdWVzdEZyb21DYWNoZShjb250ZXh0LCBSZXNvdXJjZVJlcXVlc3QodXJsU3RyaW5n
KSk7CisgICAgcmVtb3ZlUmVxdWVzdEZyb21DYWNoZShjb250ZXh0LCBSZXNvdXJjZVJlcXVlc3Qo
dXJsU3RyaW5nKSwgc2Vzc2lvbklEKTsKIH0KIAotdm9pZCBNZW1vcnlDYWNoZTo6cmVtb3ZlUmVx
dWVzdEZyb21DYWNoZShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBjb25zdCBSZXNv
dXJjZVJlcXVlc3QmIHJlcXVlc3QpCit2b2lkIE1lbW9yeUNhY2hlOjpyZW1vdmVSZXF1ZXN0RnJv
bUNhY2hlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIGNvbnN0IFJlc291cmNlUmVx
dWVzdCYgcmVxdWVzdCwgU2Vzc2lvbklEIHNlc3Npb25JRCkKIHsKICAgICBpZiAoY29udGV4dC0+
aXNXb3JrZXJHbG9iYWxTY29wZSgpKSB7Ci0gICAgICAgIHRvV29ya2VyR2xvYmFsU2NvcGUoY29u
dGV4dCktPnRocmVhZCgpLndvcmtlckxvYWRlclByb3h5KCkucG9zdFRhc2tUb0xvYWRlcihjcmVh
dGVDYWxsYmFja1Rhc2soJmNyb3NzVGhyZWFkUmVtb3ZlUmVxdWVzdEZyb21DYWNoZSwgcmVxdWVz
dCkpOworICAgICAgICB0b1dvcmtlckdsb2JhbFNjb3BlKGNvbnRleHQpLT50aHJlYWQoKS53b3Jr
ZXJMb2FkZXJQcm94eSgpLnBvc3RUYXNrVG9Mb2FkZXIoY3JlYXRlQ2FsbGJhY2tUYXNrKCZjcm9z
c1RocmVhZFJlbW92ZVJlcXVlc3RGcm9tQ2FjaGUsIHJlcXVlc3QsIHNlc3Npb25JRCkpOwogICAg
ICAgICByZXR1cm47CiAgICAgfQogCi0gICAgcmVtb3ZlUmVxdWVzdEZyb21DYWNoZUltcGwoY29u
dGV4dCwgcmVxdWVzdCk7CisgICAgcmVtb3ZlUmVxdWVzdEZyb21DYWNoZUltcGwoY29udGV4dCwg
cmVxdWVzdCwgc2Vzc2lvbklEKTsKIH0KIAotdm9pZCBNZW1vcnlDYWNoZTo6cmVtb3ZlUmVxdWVz
dEZyb21DYWNoZUltcGwoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIGNvbnN0IFJlc291cmNlUmVx
dWVzdCYgcmVxdWVzdCkKK3ZvaWQgTWVtb3J5Q2FjaGU6OnJlbW92ZVJlcXVlc3RGcm9tQ2FjaGVJ
bXBsKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVl
c3QsIFNlc3Npb25JRCBzZXNzaW9uSUQpCiB7Ci0gICAgaWYgKENhY2hlZFJlc291cmNlKiByZXNv
dXJjZSA9IG1lbW9yeUNhY2hlKCktPnJlc291cmNlRm9yUmVxdWVzdChyZXF1ZXN0KSkKKyAgICBp
ZiAoQ2FjaGVkUmVzb3VyY2UqIHJlc291cmNlID0gbWVtb3J5Q2FjaGUoKS0+cmVzb3VyY2VGb3JS
ZXF1ZXN0KHJlcXVlc3QsIHNlc3Npb25JRCkpCiAgICAgICAgIG1lbW9yeUNhY2hlKCktPnJlbW92
ZShyZXNvdXJjZSk7CiB9CiAKLXZvaWQgTWVtb3J5Q2FjaGU6OmNyb3NzVGhyZWFkUmVtb3ZlUmVx
dWVzdEZyb21DYWNoZShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBQYXNzT3duUHRy
PFdlYkNvcmU6OkNyb3NzVGhyZWFkUmVzb3VyY2VSZXF1ZXN0RGF0YT4gcmVxdWVzdERhdGEpCit2
b2lkIE1lbW9yeUNhY2hlOjpyZW1vdmVSZXF1ZXN0RnJvbVNlc3Npb25DYWNoZXMoU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCogY29udGV4dCwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0KQor
eworICAgIGlmIChjb250ZXh0LT5pc1dvcmtlckdsb2JhbFNjb3BlKCkpIHsKKyAgICAgICAgdG9X
b3JrZXJHbG9iYWxTY29wZShjb250ZXh0KS0+dGhyZWFkKCkud29ya2VyTG9hZGVyUHJveHkoKS5w
b3N0VGFza1RvTG9hZGVyKGNyZWF0ZUNhbGxiYWNrVGFzaygmY3Jvc3NUaHJlYWRSZW1vdmVSZXF1
ZXN0RnJvbVNlc3Npb25DYWNoZXMsIHJlcXVlc3QpKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0K
KyAgICByZW1vdmVSZXF1ZXN0RnJvbVNlc3Npb25DYWNoZXNJbXBsKGNvbnRleHQsIHJlcXVlc3Qp
OworfQorCit2b2lkIE1lbW9yeUNhY2hlOjpyZW1vdmVSZXF1ZXN0RnJvbVNlc3Npb25DYWNoZXNJ
bXBsKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVl
c3QpCit7CisgICAgZm9yIChhdXRvJiByZXNvdXJjZXMgOiBtZW1vcnlDYWNoZSgpLT5tX3Nlc3Np
b25SZXNvdXJjZXMpIHsKKyAgICAgICAgaWYgKENhY2hlZFJlc291cmNlKiByZXNvdXJjZSA9IG1l
bW9yeUNhY2hlKCktPnJlc291cmNlRm9yUmVxdWVzdEltcGwocmVxdWVzdCwgKnJlc291cmNlcy52
YWx1ZSkpCisgICAgICAgIG1lbW9yeUNhY2hlKCktPnJlbW92ZShyZXNvdXJjZSk7CisgICAgfQor
fQorCit2b2lkIE1lbW9yeUNhY2hlOjpjcm9zc1RocmVhZFJlbW92ZVJlcXVlc3RGcm9tQ2FjaGUo
U2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgUGFzc093blB0cjxXZWJDb3JlOjpDcm9z
c1RocmVhZFJlc291cmNlUmVxdWVzdERhdGE+IHJlcXVlc3REYXRhLCBTZXNzaW9uSUQgc2Vzc2lv
bklEKQogewogICAgIE93blB0cjxSZXNvdXJjZVJlcXVlc3Q+IHJlcXVlc3QoUmVzb3VyY2VSZXF1
ZXN0OjphZG9wdChyZXF1ZXN0RGF0YSkpOwotICAgIE1lbW9yeUNhY2hlOjpyZW1vdmVSZXF1ZXN0
RnJvbUNhY2hlSW1wbChjb250ZXh0LCAqcmVxdWVzdCk7CisgICAgTWVtb3J5Q2FjaGU6OnJlbW92
ZVJlcXVlc3RGcm9tQ2FjaGVJbXBsKGNvbnRleHQsICpyZXF1ZXN0LCBzZXNzaW9uSUQpOworfQor
Cit2b2lkIE1lbW9yeUNhY2hlOjpjcm9zc1RocmVhZFJlbW92ZVJlcXVlc3RGcm9tU2Vzc2lvbkNh
Y2hlcyhTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBQYXNzT3duUHRyPFdlYkNvcmU6
OkNyb3NzVGhyZWFkUmVzb3VyY2VSZXF1ZXN0RGF0YT4gcmVxdWVzdERhdGEpCit7CisgICAgT3du
UHRyPFJlc291cmNlUmVxdWVzdD4gcmVxdWVzdChSZXNvdXJjZVJlcXVlc3Q6OmFkb3B0KHJlcXVl
c3REYXRhKSk7CisgICAgTWVtb3J5Q2FjaGU6OnJlbW92ZVJlcXVlc3RGcm9tU2Vzc2lvbkNhY2hl
cyhjb250ZXh0LCAqcmVxdWVzdCk7CiB9CiAKIHZvaWQgTWVtb3J5Q2FjaGU6OlR5cGVTdGF0aXN0
aWM6OmFkZFJlc291cmNlKENhY2hlZFJlc291cmNlKiBvKQpAQCAtODU1LDM4ICs5MDgsNDEgQEAg
dm9pZCBNZW1vcnlDYWNoZTo6VHlwZVN0YXRpc3RpYzo6YWRkUmVzb3VyY2UoQ2FjaGVkUmVzb3Vy
Y2UqIG8pCiBNZW1vcnlDYWNoZTo6U3RhdGlzdGljcyBNZW1vcnlDYWNoZTo6Z2V0U3RhdGlzdGlj
cygpCiB7CiAgICAgU3RhdGlzdGljcyBzdGF0czsKLSAgICBDYWNoZWRSZXNvdXJjZU1hcDo6aXRl
cmF0b3IgZSA9IG1fcmVzb3VyY2VzLmVuZCgpOwotICAgIGZvciAoQ2FjaGVkUmVzb3VyY2VNYXA6
Oml0ZXJhdG9yIGkgPSBtX3Jlc291cmNlcy5iZWdpbigpOyBpICE9IGU7ICsraSkgeworCisgICAg
Zm9yIChhdXRvICZyZXNvdXJjZXMgOiBtX3Nlc3Npb25SZXNvdXJjZXMpIHsKKyAgICAgICAgQ2Fj
aGVkUmVzb3VyY2VNYXA6Oml0ZXJhdG9yIGUgPSByZXNvdXJjZXMudmFsdWUtPmVuZCgpOworICAg
ICAgICBmb3IgKENhY2hlZFJlc291cmNlTWFwOjppdGVyYXRvciBpID0gcmVzb3VyY2VzLnZhbHVl
LT5iZWdpbigpOyBpICE9IGU7ICsraSkgewogI2lmIEVOQUJMRShDQUNIRV9QQVJUSVRJT05JTkcp
Ci0gICAgICAgIGZvciAoQ2FjaGVkUmVzb3VyY2VJdGVtOjppdGVyYXRvciBpdGVtSXRlcmF0b3Ig
PSBpLT52YWx1ZS0+YmVnaW4oKTsgaXRlbUl0ZXJhdG9yICE9IGktPnZhbHVlLT5lbmQoKTsgKytp
dGVtSXRlcmF0b3IpIHsKLSAgICAgICAgICAgIENhY2hlZFJlc291cmNlKiByZXNvdXJjZSA9IGl0
ZW1JdGVyYXRvci0+dmFsdWU7CisgICAgICAgICAgICBmb3IgKENhY2hlZFJlc291cmNlSXRlbTo6
aXRlcmF0b3IgaXRlbUl0ZXJhdG9yID0gaS0+dmFsdWUtPmJlZ2luKCk7IGl0ZW1JdGVyYXRvciAh
PSBpLT52YWx1ZS0+ZW5kKCk7ICsraXRlbUl0ZXJhdG9yKSB7CisgICAgICAgICAgICAgICAgQ2Fj
aGVkUmVzb3VyY2UqIHJlc291cmNlID0gaXRlbUl0ZXJhdG9yLT52YWx1ZTsKICNlbHNlCi0gICAg
ICAgICAgICBDYWNoZWRSZXNvdXJjZSogcmVzb3VyY2UgPSBpLT52YWx1ZTsKKyAgICAgICAgICAg
ICAgICBDYWNoZWRSZXNvdXJjZSogcmVzb3VyY2UgPSBpLT52YWx1ZTsKICNlbmRpZgotICAgICAg
ICAgICAgc3dpdGNoIChyZXNvdXJjZS0+dHlwZSgpKSB7Ci0gICAgICAgICAgICBjYXNlIENhY2hl
ZFJlc291cmNlOjpJbWFnZVJlc291cmNlOgotICAgICAgICAgICAgICAgIHN0YXRzLmltYWdlcy5h
ZGRSZXNvdXJjZShyZXNvdXJjZSk7Ci0gICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAg
ICBjYXNlIENhY2hlZFJlc291cmNlOjpDU1NTdHlsZVNoZWV0OgotICAgICAgICAgICAgICAgIHN0
YXRzLmNzc1N0eWxlU2hlZXRzLmFkZFJlc291cmNlKHJlc291cmNlKTsKLSAgICAgICAgICAgICAg
ICBicmVhazsKLSAgICAgICAgICAgIGNhc2UgQ2FjaGVkUmVzb3VyY2U6OlNjcmlwdDoKLSAgICAg
ICAgICAgICAgICBzdGF0cy5zY3JpcHRzLmFkZFJlc291cmNlKHJlc291cmNlKTsKLSAgICAgICAg
ICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICBzd2l0Y2ggKHJlc291cmNlLT50eXBlKCkp
IHsKKyAgICAgICAgICAgICAgICBjYXNlIENhY2hlZFJlc291cmNlOjpJbWFnZVJlc291cmNlOgor
ICAgICAgICAgICAgICAgICAgICBzdGF0cy5pbWFnZXMuYWRkUmVzb3VyY2UocmVzb3VyY2UpOwor
ICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICBjYXNlIENhY2hlZFJl
c291cmNlOjpDU1NTdHlsZVNoZWV0OgorICAgICAgICAgICAgICAgICAgICBzdGF0cy5jc3NTdHls
ZVNoZWV0cy5hZGRSZXNvdXJjZShyZXNvdXJjZSk7CisgICAgICAgICAgICAgICAgICAgIGJyZWFr
OworICAgICAgICAgICAgICAgIGNhc2UgQ2FjaGVkUmVzb3VyY2U6OlNjcmlwdDoKKyAgICAgICAg
ICAgICAgICAgICAgc3RhdHMuc2NyaXB0cy5hZGRSZXNvdXJjZShyZXNvdXJjZSk7CisgICAgICAg
ICAgICAgICAgICAgIGJyZWFrOwogI2lmIEVOQUJMRShYU0xUKQotICAgICAgICAgICAgY2FzZSBD
YWNoZWRSZXNvdXJjZTo6WFNMU3R5bGVTaGVldDoKLSAgICAgICAgICAgICAgICBzdGF0cy54c2xT
dHlsZVNoZWV0cy5hZGRSZXNvdXJjZShyZXNvdXJjZSk7Ci0gICAgICAgICAgICAgICAgYnJlYWs7
CisgICAgICAgICAgICAgICAgY2FzZSBDYWNoZWRSZXNvdXJjZTo6WFNMU3R5bGVTaGVldDoKKyAg
ICAgICAgICAgICAgICAgICAgc3RhdHMueHNsU3R5bGVTaGVldHMuYWRkUmVzb3VyY2UocmVzb3Vy
Y2UpOworICAgICAgICAgICAgICAgICAgICBicmVhazsKICNlbmRpZgotICAgICAgICAgICAgY2Fz
ZSBDYWNoZWRSZXNvdXJjZTo6Rm9udFJlc291cmNlOgotICAgICAgICAgICAgICAgIHN0YXRzLmZv
bnRzLmFkZFJlc291cmNlKHJlc291cmNlKTsKLSAgICAgICAgICAgICAgICBicmVhazsKLSAgICAg
ICAgICAgIGRlZmF1bHQ6Ci0gICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICB9Cisg
ICAgICAgICAgICAgICAgY2FzZSBDYWNoZWRSZXNvdXJjZTo6Rm9udFJlc291cmNlOgorICAgICAg
ICAgICAgICAgICAgICBzdGF0cy5mb250cy5hZGRSZXNvdXJjZShyZXNvdXJjZSk7CisgICAgICAg
ICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAg
ICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KICNpZiBFTkFCTEUoQ0FDSEVfUEFS
VElUSU9OSU5HKQotICAgICAgICB9CisgICAgICAgICAgICB9CiAjZW5kaWYKKyAgICAgICAgfQog
ICAgIH0KICAgICByZXR1cm4gc3RhdHM7CiB9CkBAIC04OTgsOCArOTU0LDExIEBAIHZvaWQgTWVt
b3J5Q2FjaGU6OnNldERpc2FibGVkKGJvb2wgZGlzYWJsZWQpCiAgICAgICAgIHJldHVybjsKIAog
ICAgIGZvciAoOzspIHsKLSAgICAgICAgQ2FjaGVkUmVzb3VyY2VNYXA6Oml0ZXJhdG9yIG91dGVy
SXRlcmF0b3IgPSBtX3Jlc291cmNlcy5iZWdpbigpOwotICAgICAgICBpZiAob3V0ZXJJdGVyYXRv
ciA9PSBtX3Jlc291cmNlcy5lbmQoKSkKKyAgICAgICAgU2Vzc2lvbkNhY2hlZFJlc291cmNlTWFw
OjppdGVyYXRvciBzZXNzaW9uSXRlcmF0b3IgPSBtX3Nlc3Npb25SZXNvdXJjZXMuYmVnaW4oKTsK
KyAgICAgICAgaWYgKHNlc3Npb25JdGVyYXRvciA9PSBtX3Nlc3Npb25SZXNvdXJjZXMuZW5kKCkp
CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgQ2FjaGVkUmVzb3VyY2VNYXA6Oml0ZXJhdG9y
IG91dGVySXRlcmF0b3IgPSBzZXNzaW9uSXRlcmF0b3ItPnZhbHVlLT5iZWdpbigpOworICAgICAg
ICBpZiAob3V0ZXJJdGVyYXRvciA9PSBzZXNzaW9uSXRlcmF0b3ItPnZhbHVlLT5lbmQoKSkKICAg
ICAgICAgICAgIGJyZWFrOwogI2lmIEVOQUJMRShDQUNIRV9QQVJUSVRJT05JTkcpCiAgICAgICAg
IENhY2hlZFJlc291cmNlSXRlbTo6aXRlcmF0b3IgaW5uZXJJdGVyYXRvciA9IG91dGVySXRlcmF0
b3ItPnZhbHVlLT5iZWdpbigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2Nh
Y2hlL01lbW9yeUNhY2hlLmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvTWVtb3J5Q2Fj
aGUuaAppbmRleCBjMDIzYTk3Li5jMjE4ZmU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvY2FjaGUvTWVtb3J5Q2FjaGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2Fj
aGUvTWVtb3J5Q2FjaGUuaApAQCAtMjcsNiArMjcsNyBAQAogCiAjaW5jbHVkZSAiTmF0aXZlSW1h
Z2VQdHIuaCIKICNpbmNsdWRlICJTZWN1cml0eU9yaWdpbkhhc2guaCIKKyNpbmNsdWRlICJTZXNz
aW9uSURIYXNoLmgiCiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KICNpbmNsdWRlIDx3dGYvSGFz
aFNldC5oPgogI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgpAQCAtODcsNiArODgsNyBAQCBw
dWJsaWM6CiAjZWxzZQogICAgIHR5cGVkZWYgSGFzaE1hcDxTdHJpbmcsIENhY2hlZFJlc291cmNl
Kj4gQ2FjaGVkUmVzb3VyY2VNYXA7CiAjZW5kaWYKKyAgICB0eXBlZGVmIEhhc2hNYXA8U2Vzc2lv
bklELCBzdGQ6OnVuaXF1ZV9wdHI8Q2FjaGVkUmVzb3VyY2VNYXA+PiBTZXNzaW9uQ2FjaGVkUmVz
b3VyY2VNYXA7CiAKICAgICBzdHJ1Y3QgTFJVTGlzdCB7CiAgICAgICAgIENhY2hlZFJlc291cmNl
KiBtX2hlYWQ7CkBAIC0xMTksOSArMTIxLDEwIEBAIHB1YmxpYzoKICAgICB9OwogCiAgICAgQ2Fj
aGVkUmVzb3VyY2UqIHJlc291cmNlRm9yVVJMKGNvbnN0IFVSTCYpOwotICAgIENhY2hlZFJlc291
cmNlKiByZXNvdXJjZUZvclJlcXVlc3QoY29uc3QgUmVzb3VyY2VSZXF1ZXN0Jik7Ci0gICAgCi0g
ICAgYm9vbCBhZGQoQ2FjaGVkUmVzb3VyY2UqIHJlc291cmNlKTsKKyAgICBDYWNoZWRSZXNvdXJj
ZSogcmVzb3VyY2VGb3JVUkwoY29uc3QgVVJMJiwgU2Vzc2lvbklEKTsKKyAgICBDYWNoZWRSZXNv
dXJjZSogcmVzb3VyY2VGb3JSZXF1ZXN0KGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIFNlc3Npb25J
RCk7CisKKyAgICBib29sIGFkZChDYWNoZWRSZXNvdXJjZSopOwogICAgIHZvaWQgcmVtb3ZlKENh
Y2hlZFJlc291cmNlKiByZXNvdXJjZSkgeyBldmljdChyZXNvdXJjZSk7IH0KIAogICAgIHN0YXRp
YyBVUkwgcmVtb3ZlRnJhZ21lbnRJZGVudGlmaWVySWZOZWVkZWQoY29uc3QgVVJMJiBvcmlnaW5h
bFVSTCk7CkBAIC0xNzAsOCArMTczLDkgQEAgcHVibGljOgogICAgIHZvaWQgZmx1c2hDYWNoZWRJ
bWFnZXNUb0Rpc2soKTsgLy8gRmx1c2ggZW5jb2RlZCBkYXRhIGZyb20gcmVzb3VyY2VzIHN0aWxs
IHJlZmVyZW5jZWQgYnkgd2ViIHBhZ2VzLgogI2VuZGlmCiAKLSAgICBzdGF0aWMgdm9pZCByZW1v
dmVVcmxGcm9tQ2FjaGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIGNvbnN0IFN0cmluZyYgdXJs
U3RyaW5nKTsKLSAgICBzdGF0aWMgdm9pZCByZW1vdmVSZXF1ZXN0RnJvbUNhY2hlKFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQqLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmKTsKKyAgICBzdGF0aWMgdm9p
ZCByZW1vdmVVcmxGcm9tQ2FjaGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIGNvbnN0IFN0cmlu
ZyYgdXJsU3RyaW5nLCBTZXNzaW9uSUQpOworICAgIHN0YXRpYyB2b2lkIHJlbW92ZVJlcXVlc3RG
cm9tQ2FjaGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIGNvbnN0IFJlc291cmNlUmVxdWVzdCYs
IFNlc3Npb25JRCk7CisgICAgc3RhdGljIHZvaWQgcmVtb3ZlUmVxdWVzdEZyb21TZXNzaW9uQ2Fj
aGVzKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmKTsKIAog
ICAgIC8vIEZ1bmN0aW9uIHRvIGNvbGxlY3QgY2FjaGUgc3RhdGlzdGljcyBmb3IgdGhlIGNhY2hl
cyB3aW5kb3cgaW4gdGhlIFNhZmFyaSBEZWJ1ZyBtZW51LgogICAgIFN0YXRpc3RpY3MgZ2V0U3Rh
dGlzdGljcygpOwpAQCAtMjIxLDggKzIyNSwxMyBAQCBwcml2YXRlOgogICAgIGJvb2wgbWFrZVJl
c291cmNlUHVyZ2VhYmxlKENhY2hlZFJlc291cmNlKik7CiAgICAgdm9pZCBldmljdChDYWNoZWRS
ZXNvdXJjZSopOwogCi0gICAgc3RhdGljIHZvaWQgcmVtb3ZlUmVxdWVzdEZyb21DYWNoZUltcGwo
U2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIGNvbnN0IFJlc291cmNlUmVxdWVzdCYpOwotICAgIHN0
YXRpYyB2b2lkIGNyb3NzVGhyZWFkUmVtb3ZlUmVxdWVzdEZyb21DYWNoZShTY3JpcHRFeGVjdXRp
b25Db250ZXh0KiwgUGFzc093blB0cjxDcm9zc1RocmVhZFJlc291cmNlUmVxdWVzdERhdGE+KTsK
KyAgICBDYWNoZWRSZXNvdXJjZSogcmVzb3VyY2VGb3JSZXF1ZXN0SW1wbChjb25zdCBSZXNvdXJj
ZVJlcXVlc3QmLCBDYWNoZWRSZXNvdXJjZU1hcCYpOworICAgIHN0YXRpYyB2b2lkIHJlbW92ZVJl
cXVlc3RGcm9tQ2FjaGVJbXBsKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBjb25zdCBSZXNvdXJj
ZVJlcXVlc3QmLCBTZXNzaW9uSUQpOworICAgIHN0YXRpYyB2b2lkIHJlbW92ZVJlcXVlc3RGcm9t
U2Vzc2lvbkNhY2hlc0ltcGwoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIGNvbnN0IFJlc291cmNl
UmVxdWVzdCYpOworICAgIHN0YXRpYyB2b2lkIGNyb3NzVGhyZWFkUmVtb3ZlUmVxdWVzdEZyb21D
YWNoZShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgUGFzc093blB0cjxDcm9zc1RocmVhZFJlc291
cmNlUmVxdWVzdERhdGE+LCBTZXNzaW9uSUQpOworICAgIHN0YXRpYyB2b2lkIGNyb3NzVGhyZWFk
UmVtb3ZlUmVxdWVzdEZyb21TZXNzaW9uQ2FjaGVzKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBQ
YXNzT3duUHRyPENyb3NzVGhyZWFkUmVzb3VyY2VSZXF1ZXN0RGF0YT4pOworCisgICAgQ2FjaGVk
UmVzb3VyY2VNYXAmIGdldFNlc3Npb25NYXAoU2Vzc2lvbklEKTsKIAogICAgIGJvb2wgbV9kaXNh
YmxlZDsgIC8vIFdoZXRoZXIgb3Igbm90IHRoZSBjYWNoZSBpcyBlbmFibGVkLgogICAgIGJvb2wg
bV9wcnVuZUVuYWJsZWQ7CkBAIC0yNDYsNyArMjU1LDcgQEAgcHJpdmF0ZToKICAgICAKICAgICAv
LyBBIFVSTC1iYXNlZCBtYXAgb2YgYWxsIHJlc291cmNlcyB0aGF0IGFyZSBpbiB0aGUgY2FjaGUg
KGluY2x1ZGluZyB0aGUgZnJlc2hlc3QgdmVyc2lvbiBvZiBvYmplY3RzIHRoYXQgYXJlIGN1cnJl
bnRseSBiZWluZyAKICAgICAvLyByZWZlcmVuY2VkIGJ5IGEgV2ViIHBhZ2UpLgotICAgIENhY2hl
ZFJlc291cmNlTWFwIG1fcmVzb3VyY2VzOworICAgIFNlc3Npb25DYWNoZWRSZXNvdXJjZU1hcCBt
X3Nlc3Npb25SZXNvdXJjZXM7CiB9OwogCiBpbmxpbmUgYm9vbCBNZW1vcnlDYWNoZTo6c2hvdWxk
TWFrZVJlc291cmNlUHVyZ2VhYmxlT25FdmljdGlvbigpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9Dcm9zc1RocmVhZENvcGllci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9Dcm9zc1RocmVhZENvcGllci5jcHAKaW5kZXggNTdkMDRlMS4uMWIxYWMxMyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vQ3Jvc3NUaHJlYWRDb3BpZXIuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0Nyb3NzVGhyZWFkQ29waWVyLmNwcApAQCAtMzcsNiAr
MzcsNyBAQAogI2luY2x1ZGUgIlJlc291cmNlUmVxdWVzdC5oIgogI2luY2x1ZGUgIlJlc291cmNl
UmVzcG9uc2UuaCIKICNpbmNsdWRlICJTZXJpYWxpemVkU2NyaXB0VmFsdWUuaCIKKyNpbmNsdWRl
ICJTZXNzaW9uSUQuaCIKICNpbmNsdWRlIDx3dGYvQXNzZXJ0aW9ucy5oPgogI2luY2x1ZGUgPHd0
Zi90ZXh0L1dURlN0cmluZy5oPgogCkBAIC03NCw2ICs3NSwxMSBAQCBDcm9zc1RocmVhZENvcGll
ckJhc2U8ZmFsc2UsIGZhbHNlLCBSZXNvdXJjZVJlc3BvbnNlPjo6VHlwZSBDcm9zc1RocmVhZENv
cGllckJhcwogICAgIHJldHVybiByZXNwb25zZS5jb3B5RGF0YSgpOwogfQogCitDcm9zc1RocmVh
ZENvcGllckJhc2U8ZmFsc2UsIGZhbHNlLCBTZXNzaW9uSUQ+OjpUeXBlIENyb3NzVGhyZWFkQ29w
aWVyQmFzZTxmYWxzZSwgZmFsc2UsIFNlc3Npb25JRD46OmNvcHkoY29uc3QgU2Vzc2lvbklEJiBz
ZXNzaW9uSUQpCit7CisgICAgcmV0dXJuIHNlc3Npb25JRDsKK30KKwogI2lmIEVOQUJMRShJTkRF
WEVEX0RBVEFCQVNFKQogCiBJbmRleGVkREI6OlRyYW5zYWN0aW9uTW9kZSBDcm9zc1RocmVhZENv
cGllckJhc2U8ZmFsc2UsIGZhbHNlLCBJbmRleGVkREI6OlRyYW5zYWN0aW9uTW9kZT46OmNvcHko
Y29uc3QgSW5kZXhlZERCOjpUcmFuc2FjdGlvbk1vZGUmIG1vZGUpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9Dcm9zc1RocmVhZENvcGllci5oIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vQ3Jvc3NUaHJlYWRDb3BpZXIuaAppbmRleCBjYWYyNzlmLi4zOThlODRlIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Dcm9zc1RocmVhZENvcGllci5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0Nyb3NzVGhyZWFkQ29waWVyLmgKQEAgLTQ2LDYgKzQ2
LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIGNsYXNzIFJlc291cmNlRXJyb3I7CiAgICAg
Y2xhc3MgUmVzb3VyY2VSZXF1ZXN0OwogICAgIGNsYXNzIFJlc291cmNlUmVzcG9uc2U7CisgICAg
Y2xhc3MgU2Vzc2lvbklEOwogICAgIHN0cnVjdCBDcm9zc1RocmVhZFJlc291cmNlUmVzcG9uc2VE
YXRhOwogICAgIHN0cnVjdCBDcm9zc1RocmVhZFJlc291cmNlUmVxdWVzdERhdGE7CiAgICAgc3Ry
dWN0IFRocmVhZGFibGVMb2FkZXJPcHRpb25zOwpAQCAtMTQ1LDYgKzE0NiwxMSBAQCBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAgICAgICAgIHN0YXRpYyBUeXBlIGNvcHkoY29uc3QgUmVzb3VyY2VSZXNw
b25zZSYpOwogICAgIH07CiAKKyAgICB0ZW1wbGF0ZTw+IHN0cnVjdCBDcm9zc1RocmVhZENvcGll
ckJhc2U8ZmFsc2UsIGZhbHNlLCBTZXNzaW9uSUQ+IHsKKyAgICAgICAgdHlwZWRlZiBTZXNzaW9u
SUQgVHlwZTsKKyAgICAgICAgc3RhdGljIFR5cGUgY29weShjb25zdCBTZXNzaW9uSUQmKTsKKyAg
ICB9OworCiAjaWYgRU5BQkxFKElOREVYRURfREFUQUJBU0UpCiAgICAgbmFtZXNwYWNlIEluZGV4
ZWREQiB7CiAgICAgICAgIGVudW0gY2xhc3MgVHJhbnNhY3Rpb25Nb2RlOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9SZXNvdXJjZVJlcXVlc3QuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvUmVzb3VyY2VSZXF1ZXN0LmgKaW5kZXgg
NDc2MWFkZS4uNWJhNGMzNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0
d29yay9jZi9SZXNvdXJjZVJlcXVlc3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9u
ZXR3b3JrL2NmL1Jlc291cmNlUmVxdWVzdC5oCkBAIC01Nyw3ICs1Nyw3IEBAIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKICAgICAgICAgewogICAgICAgICB9CiAKLSAgICAgICAgUmVzb3VyY2VSZXF1ZXN0
KGNvbnN0IFVSTCYgdXJsLCBjb25zdCBTdHJpbmcmIHJlZmVycmVyLCBSZXNvdXJjZVJlcXVlc3RD
YWNoZVBvbGljeSBwb2xpY3kgPSBVc2VQcm90b2NvbENhY2hlUG9saWN5KSAKKyAgICAgICAgUmVz
b3VyY2VSZXF1ZXN0KGNvbnN0IFVSTCYgdXJsLCBjb25zdCBTdHJpbmcmIHJlZmVycmVyLCBSZXNv
dXJjZVJlcXVlc3RDYWNoZVBvbGljeSBwb2xpY3kgPSBVc2VQcm90b2NvbENhY2hlUG9saWN5KQog
ICAgICAgICAgICAgOiBSZXNvdXJjZVJlcXVlc3RCYXNlKHVybCwgcG9saWN5KQogI2lmIFBMQVRG
T1JNKElPUykKICAgICAgICAgICAgICwgbV9tYWluUmVzb3VyY2VSZXF1ZXN0KGZhbHNlKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclNuYXBzaG90dGVkUGx1Z0lu
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTbmFwc2hvdHRlZFBsdWdJbi5j
cHAKaW5kZXggYTE2NGY2ZC4uNzRjMzlhMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlclNuYXBzaG90dGVkUGx1Z0luLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyU25hcHNob3R0ZWRQbHVnSW4uY3BwCkBAIC0zMSw2ICszMSw3IEBACiAj
aW5jbHVkZSAiQ2hyb21lQ2xpZW50LmgiCiAjaW5jbHVkZSAiQ3Vyc29yLmgiCiAjaW5jbHVkZSAi
RmlsdGVyLmgiCisjaW5jbHVkZSAiRnJhbWUuaCIKICNpbmNsdWRlICJGcmFtZUxvYWRlckNsaWVu
dC5oIgogI2luY2x1ZGUgIkZyYW1lVmlldy5oIgogI2luY2x1ZGUgIkdyYWRpZW50LmgiCkBAIC04
NSw3ICs4Niw3IEBAIHZvaWQgUmVuZGVyU25hcHNob3R0ZWRQbHVnSW46OnVwZGF0ZVNuYXBzaG90
KFBhc3NSZWZQdHI8SW1hZ2U+IGltYWdlKQogICAgIGlmICghaW1hZ2UpCiAgICAgICAgIHJldHVy
bjsKIAotICAgIG1fc25hcHNob3RSZXNvdXJjZS0+c2V0Q2FjaGVkSW1hZ2UobmV3IENhY2hlZElt
YWdlKGltYWdlLmdldCgpKSk7CisgICAgbV9zbmFwc2hvdFJlc291cmNlLT5zZXRDYWNoZWRJbWFn
ZShuZXcgQ2FjaGVkSW1hZ2UoaW1hZ2UuZ2V0KCksIHZpZXcoKS5mcmFtZVZpZXcoKS5mcmFtZSgp
LnBhZ2UoKS0+c2Vzc2lvbklEKCkpKTsKICAgICByZXBhaW50KCk7CiB9CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Rl
c3RpbmcvSW50ZXJuYWxzLmNwcAppbmRleCAyNTQwYjI4Li42MDg0NmI2IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
dGVzdGluZy9JbnRlcm5hbHMuY3BwCkBAIC0zNTYsOSArMzU2LDkgQEAgYm9vbCBJbnRlcm5hbHM6
OmlzUHJlbG9hZGVkKGNvbnN0IFN0cmluZyYgdXJsKQogCiBib29sIEludGVybmFsczo6aXNMb2Fk
aW5nRnJvbU1lbW9yeUNhY2hlKGNvbnN0IFN0cmluZyYgdXJsKQogewotICAgIGlmICghY29udGV4
dERvY3VtZW50KCkpCisgICAgaWYgKCFjb250ZXh0RG9jdW1lbnQoKSB8fCAhY29udGV4dERvY3Vt
ZW50KCktPnBhZ2UoKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIENhY2hlZFJlc291cmNl
KiByZXNvdXJjZSA9IG1lbW9yeUNhY2hlKCktPnJlc291cmNlRm9yVVJMKGNvbnRleHREb2N1bWVu
dCgpLT5jb21wbGV0ZVVSTCh1cmwpKTsKKyAgICBDYWNoZWRSZXNvdXJjZSogcmVzb3VyY2UgPSBt
ZW1vcnlDYWNoZSgpLT5yZXNvdXJjZUZvclVSTChjb250ZXh0RG9jdW1lbnQoKS0+Y29tcGxldGVV
UkwodXJsKSwgY29udGV4dERvY3VtZW50KCktPnBhZ2UoKS0+c2Vzc2lvbklEKCkpOwogICAgIHJl
dHVybiByZXNvdXJjZSAmJiByZXNvdXJjZS0+c3RhdHVzKCkgPT0gQ2FjaGVkUmVzb3VyY2U6OkNh
Y2hlZDsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2Uv
V2ViS2l0L0NoYW5nZUxvZwppbmRleCBjNzEwMjJjLi4yNTgwOGUyIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDEyIEBACisyMDE0LTAzLTA0ICBNYXJ0aW4gSG9jayAgPG1ob2NrQGFwcGxlLmNvbT4KKwor
ICAgICAgICBBZGQgc3VwcG9ydCBmb3Igc2Vzc2lvbnMgdG8gTWVtb3J5Q2FjaGUuCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjc3OTQKKworICAgICAg
ICBSZXZpZXdlZCBieSBTYW0gV2VpbmlnLgorCisgICAgICAgICogV2ViS2l0LnZjeHByb2ovV2Vi
S2l0RXhwb3J0R2VuZXJhdG9yL1dlYktpdEV4cG9ydHMuZGVmLmluOgorCiAyMDE0LTAzLTAzICBD
b21taXQgUXVldWUgIDxjb21taXQtcXVldWVAd2Via2l0Lm9yZz4KIAogICAgICAgICBVbnJldmll
d2VkLCByb2xsaW5nIG91dCByMTY1MDEzLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJL
aXQudmN4cHJvai9XZWJLaXRFeHBvcnRHZW5lcmF0b3IvV2ViS2l0RXhwb3J0cy5kZWYuaW4gYi9T
b3VyY2UvV2ViS2l0L1dlYktpdC52Y3hwcm9qL1dlYktpdEV4cG9ydEdlbmVyYXRvci9XZWJLaXRF
eHBvcnRzLmRlZi5pbgppbmRleCBlMWMxZDFhLi5jNDgxNmFhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1dlYktpdC52Y3hwcm9qL1dlYktpdEV4cG9ydEdlbmVyYXRvci9XZWJLaXRFeHBvcnRz
LmRlZi5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC52Y3hwcm9qL1dlYktpdEV4cG9ydEdl
bmVyYXRvci9XZWJLaXRFeHBvcnRzLmRlZi5pbgpAQCAtNDc3LDMgKzQ3Nyw1IEBAIEVYUE9SVFMK
ICAgICAgICAgc3ltYm9sV2l0aFBvaW50ZXIoPz8xRE9NV2luZG93QFdlYkNvcmVAQFVBRUBYWiwg
Pz8xRE9NV2luZG93QFdlYkNvcmVAQFVFQUFAWFopCiAgICAgICAgIHN5bWJvbFdpdGhQb2ludGVy
KD92aXNpYmxlQ29udGVudFJlY3RAU2Nyb2xsYWJsZUFyZWFAV2ViQ29yZUBAUUJFP0FWSW50UmVj
dEAyQFc0VmlzaWJsZUNvbnRlbnRSZWN0QmVoYXZpb3JAMTJAQFosID92aXNpYmxlQ29udGVudFJl
Y3RAU2Nyb2xsYWJsZUFyZWFAV2ViQ29yZUBAUUVCQT9BVkludFJlY3RAMkBXNFZpc2libGVDb250
ZW50UmVjdEJlaGF2aW9yQDEyQEBaKQogICAgICAgICBzeW1ib2xXaXRoUG9pbnRlcig/ZGlzYWJs
ZUFjY2Vzc2liaWxpdHlAQVhPYmplY3RDYWNoZUBXZWJDb3JlQEBTQVhYWiwgP2Rpc2FibGVBY2Nl
c3NpYmlsaXR5QEFYT2JqZWN0Q2FjaGVAV2ViQ29yZUBAU0FYWFopCisgICAgICAgIHN5bWJvbFdp
dGhQb2ludGVyKD9zZXNzaW9uSURAUGFnZUBXZWJDb3JlQEBRQkU/QVZTZXNzaW9uSURAMkBYWiwg
P3Nlc3Npb25JREBQYWdlQFdlYkNvcmVAQFFFQkE/QVZTZXNzaW9uSURAMkBYWikKKyAgICAgICAg
c3ltYm9sV2l0aFBvaW50ZXIoP3Jlc291cmNlRm9yVVJMQE1lbW9yeUNhY2hlQFdlYkNvcmVAQFFB
RVBBVkNhY2hlZFJlc291cmNlQDJAQUJWVVJMQDJAVlNlc3Npb25JREAyQEBaLCA/cmVzb3VyY2VG
b3JVUkxATWVtb3J5Q2FjaGVAV2ViQ29yZUBAUUVBQVBBVkNhY2hlZFJlc291cmNlQDJAQUJWVVJM
QDJAVlNlc3Npb25JREAyQEBaKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9n
IGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IGZiN2I1YzQuLmExZWM5NDggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwyMCBAQAorMjAxNC0wMy0wNCAgTWFydGluIEhvY2sgIDxtaG9ja0Bh
cHBsZS5jb20+CisKKyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIHNlc3Npb25zIHRvIE1lbW9yeUNh
Y2hlLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI3
Nzk0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgU2FtIFdlaW5pZy4KKworICAgICAgICAqIE5ldHdv
cmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRlci5oOiBBZGQgc2Vzc2lvbklEKCkgbWV0aG9k
LgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OnNlc3Npb25JRCk6Cisg
ICAgICAgICogTmV0d29ya1Byb2Nlc3MvbWFjL0Rpc2tDYWNoZU1vbml0b3IuaDogQWRkIHNlc3Np
b25JRCBtZW1iZXIuCisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvbWFjL0Rpc2tDYWNoZU1vbml0
b3IubW06CisgICAgICAgIChXZWJLaXQ6OkRpc2tDYWNoZU1vbml0b3I6OkRpc2tDYWNoZU1vbml0
b3IpOiBTZW5kIHNlc3Npb25JRCB0byBOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb246OkRpZENhY2hl
UmVzb3VyY2UuCisgICAgICAgICogV2ViUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzQ29u
bmVjdGlvbi5jcHA6IEFkZCBzZXNzaW9uSUQgcGFyYW1ldGVyIHRvIGRpZENhY2hlUmVzb3VyY2Ug
YW5kIHBhc3MgdG8gTWVtb3J5Q2FjaGUuCisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNz
Q29ubmVjdGlvbjo6ZGlkQ2FjaGVSZXNvdXJjZSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9OZXR3
b3JrL05ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbi5oOiBEaXR0by4KKyAgICAgICAgKiBXZWJQcm9j
ZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uLm1lc3NhZ2VzLmluOiBEaXR0by4K
KwogMjAxNC0wMy0wMyAgRW5yaWNhIENhc3VjY2kgIDxlbnJpY2FAYXBwbGUuY29tPgogCiAgICAg
ICAgIFtXSzJdIFNlbGVjdGlvbiByZW1haW5zIGFmdGVyIHJlbG9hZC4KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRlci5oIGIvU291
cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZGVyLmgKaW5kZXgg
NjljNTlmMy4uZWI3NjlmMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nl
c3MvTmV0d29ya1Jlc291cmNlTG9hZGVyLmgKKysrIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1By
b2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZGVyLmgKQEAgLTcyLDYgKzcyLDcgQEAgcHVibGljOgog
CiAgICAgV2ViQ29yZTo6UmVzb3VyY2VMb2FkUHJpb3JpdHkgcHJpb3JpdHkoKSB7IHJldHVybiBt
X3ByaW9yaXR5OyB9CiAgICAgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0KCkgeyBy
ZXR1cm4gbV9yZXF1ZXN0OyB9CisgICAgV2ViQ29yZTo6U2Vzc2lvbklEIHNlc3Npb25JRCgpIGNv
bnN0IHsgcmV0dXJuIG1fc2Vzc2lvbklEOyB9CiAKICAgICBXZWJDb3JlOjpSZXNvdXJjZUhhbmRs
ZSogaGFuZGxlKCkgY29uc3QgeyByZXR1cm4gbV9oYW5kbGUuZ2V0KCk7IH0KICAgICB2b2lkIGRp
ZENvbnZlcnRIYW5kbGVUb0Rvd25sb2FkKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9O
ZXR3b3JrUHJvY2Vzcy9tYWMvRGlza0NhY2hlTW9uaXRvci5oIGIvU291cmNlL1dlYktpdDIvTmV0
d29ya1Byb2Nlc3MvbWFjL0Rpc2tDYWNoZU1vbml0b3IuaAppbmRleCAzMTg4M2M1Li4xZDA3MWQ0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9tYWMvRGlza0NhY2hl
TW9uaXRvci5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL21hYy9EaXNrQ2Fj
aGVNb25pdG9yLmgKQEAgLTI4LDYgKzI4LDcgQEAKIAogI2luY2x1ZGUgIk1lc3NhZ2VTZW5kZXIu
aCIKICNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlUmVxdWVzdC5oPgorI2luY2x1ZGUgPFdlYkNv
cmUvU2Vzc2lvbklELmg+CiAjaW5jbHVkZSA8d3RmL1J1bkxvb3AuaD4KIAogdHlwZWRlZiBjb25z
dCBzdHJ1Y3QgX0NGQ2FjaGVkVVJMUmVzcG9uc2UqIENGQ2FjaGVkVVJMUmVzcG9uc2VSZWY7CkBA
IC01Miw2ICs1Myw3IEBAIHByaXZhdGU6CiAKICAgICBSZWZQdHI8TmV0d29ya0Nvbm5lY3Rpb25U
b1dlYlByb2Nlc3M+IG1fY29ubmVjdGlvblRvV2ViUHJvY2VzczsKICAgICBXZWJDb3JlOjpSZXNv
dXJjZVJlcXVlc3QgbV9yZXNvdXJjZVJlcXVlc3Q7CisgICAgV2ViQ29yZTo6U2Vzc2lvbklEIG1f
c2Vzc2lvbklEOwogfTsKIAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJv
Y2Vzcy9tYWMvRGlza0NhY2hlTW9uaXRvci5tbSBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9j
ZXNzL21hYy9EaXNrQ2FjaGVNb25pdG9yLm1tCmluZGV4IDM4MGRhMWYuLmViMGE3MWQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL21hYy9EaXNrQ2FjaGVNb25pdG9y
Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL21hYy9EaXNrQ2FjaGVNb25p
dG9yLm1tCkBAIC02Miw2ICs2Miw3IEBAIHZvaWQgRGlza0NhY2hlTW9uaXRvcjo6bW9uaXRvckZp
bGVCYWNraW5nU3RvcmVDcmVhdGlvbihDRkNhY2hlZFVSTFJlc3BvbnNlUmVmIGNhCiBEaXNrQ2Fj
aGVNb25pdG9yOjpEaXNrQ2FjaGVNb25pdG9yKENGQ2FjaGVkVVJMUmVzcG9uc2VSZWYgY2FjaGVk
UmVzcG9uc2UsIE5ldHdvcmtSZXNvdXJjZUxvYWRlciogbG9hZGVyKQogICAgIDogbV9jb25uZWN0
aW9uVG9XZWJQcm9jZXNzKGxvYWRlci0+Y29ubmVjdGlvblRvV2ViUHJvY2VzcygpKQogICAgICwg
bV9yZXNvdXJjZVJlcXVlc3QobG9hZGVyLT5yZXF1ZXN0KCkpCisgICAgLCBtX3Nlc3Npb25JRChs
b2FkZXItPnNlc3Npb25JRCgpKQogewogICAgIEFTU0VSVChSdW5Mb29wOjppc01haW4oKSk7CiAK
QEAgLTg4LDcgKzg5LDcgQEAgRGlza0NhY2hlTW9uaXRvcjo6RGlza0NhY2hlTW9uaXRvcihDRkNh
Y2hlZFVSTFJlc3BvbnNlUmVmIGNhY2hlZFJlc3BvbnNlLCBOZXR3b3IKICAgICAgICAgaWYgKGhh
bmRsZS5pc051bGwoKSkKICAgICAgICAgICAgIHJldHVybjsKIAotICAgICAgICBtb25pdG9yLT5z
ZW5kKE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb246OkRpZENhY2hlUmVzb3VyY2Uo
bW9uaXRvci0+cmVzb3VyY2VSZXF1ZXN0KCksIGhhbmRsZSkpOworICAgICAgICBtb25pdG9yLT5z
ZW5kKE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb246OkRpZENhY2hlUmVzb3VyY2Uo
bW9uaXRvci0+cmVzb3VyY2VSZXF1ZXN0KCksIGhhbmRsZSwgbV9zZXNzaW9uSUQpKTsKICAgICB9
OwogCiAgICAgX0NGQ2FjaGVkVVJMUmVzcG9uc2VTZXRCZWNhbWVGaWxlQmFja2VkQ2FsbEJhY2tC
bG9jayhjYWNoZWRSZXNwb25zZSwgYmxvY2ssIGRpc3BhdGNoX2dldF9tYWluX3F1ZXVlKCkpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9j
ZXNzQ29ubmVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05ldHdvcmsvTmV0
d29ya1Byb2Nlc3NDb25uZWN0aW9uLmNwcAppbmRleCBiMjE2ZTEyLi42MzhiODk3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NDb25u
ZWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05ldHdvcmsvTmV0d29y
a1Byb2Nlc3NDb25uZWN0aW9uLmNwcApAQCAtMzYsNiArMzYsNyBAQAogI2luY2x1ZGUgPFdlYkNv
cmUvQ2FjaGVkUmVzb3VyY2UuaD4KICNpbmNsdWRlIDxXZWJDb3JlL01lbW9yeUNhY2hlLmg+CiAj
aW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJjZUJ1ZmZlci5oPgorI2luY2x1ZGUgPFdlYkNvcmUvU2Vz
c2lvbklELmg+CiAKICNpZiBFTkFCTEUoTkVUV09SS19QUk9DRVNTKQogCkBAIC04MSw5ICs4Miw5
IEBAIHZvaWQgTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uOjpkaWRSZWNlaXZlSW52YWxpZE1lc3Nh
Z2UoSVBDOjpDb25uZWN0aW9uKiwgSVBDOjpTCiB9CiAKICNpZiBFTkFCTEUoU0hBUkVBQkxFX1JF
U09VUkNFKQotdm9pZCBOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb246OmRpZENhY2hlUmVzb3VyY2Uo
Y29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBjb25zdCBTaGFyZWFibGVSZXNvdXJjZTo6
SGFuZGxlJiBoYW5kbGUpCit2b2lkIE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbjo6ZGlkQ2FjaGVS
ZXNvdXJjZShjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIGNvbnN0IFNoYXJlYWJsZVJl
c291cmNlOjpIYW5kbGUmIGhhbmRsZSwgU2Vzc2lvbklEIHNlc3Npb25JRCkKIHsKLSAgICBDYWNo
ZWRSZXNvdXJjZSogcmVzb3VyY2UgPSBtZW1vcnlDYWNoZSgpLT5yZXNvdXJjZUZvclJlcXVlc3Qo
cmVxdWVzdCk7CisgICAgQ2FjaGVkUmVzb3VyY2UqIHJlc291cmNlID0gbWVtb3J5Q2FjaGUoKS0+
cmVzb3VyY2VGb3JSZXF1ZXN0KHJlcXVlc3QsIHNlc3Npb25JRCk7CiAgICAgaWYgKCFyZXNvdXJj
ZSkKICAgICAgICAgcmV0dXJuOwogICAgIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbi5oIGIvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbi5oCmluZGV4IDg0
MmY2ZWIuLjkzNmQ2NmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTmV0
d29yay9OZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uLmgKQEAgLTQxLDYgKzQxLDcg
QEAgbmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgUmVzb3VyY2VFcnJvcjsKIGNsYXNzIFJlc291
cmNlUmVxdWVzdDsKIGNsYXNzIFJlc291cmNlUmVzcG9uc2U7CitjbGFzcyBTZXNzaW9uSUQ7CiB9
CiAKIG5hbWVzcGFjZSBXZWJLaXQgewpAQCAtNzAsNyArNzEsNyBAQCBwcml2YXRlOgogCiAjaWYg
RU5BQkxFKFNIQVJFQUJMRV9SRVNPVVJDRSkKICAgICAvLyBNZXNzYWdlIGhhbmRsZXJzLgotICAg
IHZvaWQgZGlkQ2FjaGVSZXNvdXJjZShjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBj
b25zdCBTaGFyZWFibGVSZXNvdXJjZTo6SGFuZGxlJik7CisgICAgdm9pZCBkaWRDYWNoZVJlc291
cmNlKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFNoYXJlYWJsZVJlc291
cmNlOjpIYW5kbGUmLCBXZWJDb3JlOjpTZXNzaW9uSUQpOwogI2VuZGlmCiAKICAgICAvLyBUaGUg
Y29ubmVjdGlvbiBmcm9tIHRoZSB3ZWIgcHJvY2VzcyB0byB0aGUgbmV0d29yayBwcm9jZXNzLgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9j
ZXNzQ29ubmVjdGlvbi5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTmV0
d29yay9OZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24ubWVzc2FnZXMuaW4KaW5kZXggZTY5ODlkOS4u
YzFmNzhjNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9OZXR3b3JrL05l
dHdvcmtQcm9jZXNzQ29ubmVjdGlvbi5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uLm1lc3NhZ2VzLmluCkBA
IC0yNSw3ICsyNSw3IEBACiBtZXNzYWdlcyAtPiBOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24gTGVn
YWN5UmVjZWl2ZXIgewogCiAjaWYgRU5BQkxFKFNIQVJFQUJMRV9SRVNPVVJDRSkKLSAgICBEaWRD
YWNoZVJlc291cmNlKFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCByZXF1ZXN0LCBXZWJLaXQ6OlNo
YXJlYWJsZVJlc291cmNlOjpIYW5kbGUgcmVzb3VyY2UpCisgICAgRGlkQ2FjaGVSZXNvdXJjZShX
ZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdCwgV2ViS2l0OjpTaGFyZWFibGVSZXNvdXJj
ZTo6SGFuZGxlIHJlc291cmNlLCBXZWJDb3JlOjpTZXNzaW9uSUQgc2Vzc2lvbklEKQogI2VuZGlm
CiAKIH0K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>225807</attachid>
            <date>2014-03-04 13:15:58 -0800</date>
            <delta_ts>2014-03-05 12:05:22 -0800</delta_ts>
            <desc>misplaced &amp;</desc>
            <filename>memcachesession.28.diff</filename>
            <type>text/plain</type>
            <size>68748</size>
            <attacher name="Martin Hock">mhock</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBjZTM3NjNmLi5hMThkMjczIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsOTYg
QEAKKzIwMTQtMDMtMDQgIE1hcnRpbiBIb2NrICA8bWhvY2tAYXBwbGUuY29tPgorCisgICAgICAg
IEFkZCBzdXBwb3J0IGZvciBzZXNzaW9ucyB0byBNZW1vcnlDYWNoZS4KKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyNzc5NAorCisgICAgICAgIFJldmll
d2VkIGJ5IFNhbSBXZWluaWcuCisKKyAgICAgICAgKiBXZWJDb3JlLmV4cC5pbjoKKyAgICAgICAg
KiBlZGl0aW5nL0RlbGV0ZUJ1dHRvbkNvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
RGVsZXRlQnV0dG9uQ29udHJvbGxlcjo6Y3JlYXRlRGVsZXRpb25VSSk6IEluaXRpYWxpemUgQ2Fj
aGVkSW1hZ2Ugd2l0aCBzZXNzaW9uSUQuCisgICAgICAgICogaHRtbC9ET01VUkwuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6RE9NVVJMOjpyZXZva2VPYmplY3RVUkwpOiBSZW1vdmUgVVJMIGZyb20g
TWVtb3J5Q2FjaGUgZm9yIGFsbCBzZXNzaW9ucy4KKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVj
dG9yUGFnZUFnZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclBhZ2VBZ2VudDo6
Y2FjaGVkUmVzb3VyY2UpOiBQYXNzIHNlc3Npb25JRCB0byBNZW1vcnlDYWNoZS4KKyAgICAgICAg
KiBpbnNwZWN0b3IvSW5zcGVjdG9yUmVzb3VyY2VBZ2VudC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpJbnNwZWN0b3JSZXNvdXJjZUFnZW50OjpyZXBsYXlYSFIpOiBEaXR0by4KKyAgICAgICAgKiBs
b2FkZXIvRG9jdW1lbnRMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6YXJlQWxsTG9hZGVy
c1BhZ2VDYWNoZUFjY2VwdGFibGUpOiBEaXR0by4KKyAgICAgICAgKiBsb2FkZXIvRnJhbWVMb2Fk
ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXI6OnRlbGxDbGllbnRBYm91dFBh
c3RNZW1vcnlDYWNoZUxvYWRzKTogRGl0dG8uCisgICAgICAgICogbG9hZGVyL0ltYWdlTG9hZGVy
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkltYWdlTG9hZGVyOjp1cGRhdGVGcm9tRWxlbWVudCk6
IEluaXRpYWxpemUgQ2FjaGVkSW1hZ2Ugd2l0aCBzZXNzaW9uSUQuCisgICAgICAgICogbG9hZGVy
L2FyY2hpdmUvY2YvTGVnYWN5V2ViQXJjaGl2ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpMZWdh
Y3lXZWJBcmNoaXZlOjpjcmVhdGUpOiBQYXNzIHNlc3Npb25JRCB0byBNZW1vcnlDYWNoZS4KKyAg
ICAgICAgKiBsb2FkZXIvY2FjaGUvQ2FjaGVkQ1NTU3R5bGVTaGVldC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpDYWNoZWRDU1NTdHlsZVNoZWV0OjpDYWNoZWRDU1NTdHlsZVNoZWV0KTogQ29uc3Ry
dWN0b3IgdGFrZXMgc2Vzc2lvbklELgorICAgICAgICAqIGxvYWRlci9jYWNoZS9DYWNoZWRDU1NT
dHlsZVNoZWV0Lmg6CisgICAgICAgICogbG9hZGVyL2NhY2hlL0NhY2hlZEZvbnQuY3BwOiBEaXR0
by4KKyAgICAgICAgKFdlYkNvcmU6OkNhY2hlZEZvbnQ6OkNhY2hlZEZvbnQpOgorICAgICAgICAq
IGxvYWRlci9jYWNoZS9DYWNoZWRGb250Lmg6CisgICAgICAgICogbG9hZGVyL2NhY2hlL0NhY2hl
ZEltYWdlLmNwcDogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRJbWFnZTo6Q2FjaGVk
SW1hZ2UpOgorICAgICAgICAqIGxvYWRlci9jYWNoZS9DYWNoZWRJbWFnZS5oOgorICAgICAgICAq
IGxvYWRlci9jYWNoZS9DYWNoZWRSYXdSZXNvdXJjZS5jcHA6IERpdHRvLgorICAgICAgICAoV2Vi
Q29yZTo6Q2FjaGVkUmF3UmVzb3VyY2U6OkNhY2hlZFJhd1Jlc291cmNlKToKKyAgICAgICAgKiBs
b2FkZXIvY2FjaGUvQ2FjaGVkUmF3UmVzb3VyY2UuaDoKKyAgICAgICAgKiBsb2FkZXIvY2FjaGUv
Q2FjaGVkUmVzb3VyY2UuY3BwOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OkNhY2hlZFJlc291
cmNlOjpDYWNoZWRSZXNvdXJjZSk6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRSZXNvdXJjZTo6
fkNhY2hlZFJlc291cmNlKTogUGFzcyBzZXNzaW9uSUQgdG8gTWVtb3J5Q2FjaGUuCisgICAgICAg
ICogbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlLmg6CisgICAgICAgIChXZWJDb3JlOjpDYWNo
ZWRSZXNvdXJjZTo6c2Vzc2lvbklEKToKKyAgICAgICAgKiBsb2FkZXIvY2FjaGUvQ2FjaGVkUmVz
b3VyY2VMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlUmVzb3VyY2UpOiBDb25z
dHJ1Y3RvcnMgdGFrZSBzZXNzaW9uSUQuCisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRSZXNvdXJj
ZUxvYWRlcjo6c2Vzc2lvbklEKTogUmV0cmlldmUgc2Vzc2lvbklEIGZyb20gcGFnZS4KKyAgICAg
ICAgKFdlYkNvcmU6OkNhY2hlZFJlc291cmNlTG9hZGVyOjpyZXF1ZXN0VXNlckNTU1N0eWxlU2hl
ZXQpOiBQYXNzIHNlc3Npb25JRCB0byBNZW1vcnlDYWNoZS4KKyAgICAgICAgKFdlYkNvcmU6OkNh
Y2hlZFJlc291cmNlTG9hZGVyOjpyZXF1ZXN0UmVzb3VyY2UpOiBJbml0aWFsaXplIENhY2hlZENT
U1N0eWxlU2hlZXQgd2l0aCBzZXNzaW9uSUQuCisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRSZXNv
dXJjZUxvYWRlcjo6cmV2YWxpZGF0ZVJlc291cmNlKTogSW5pdGlhbGl6ZSBjYWNoZWQgcmVzb3Vy
Y2Ugd2l0aCBzZXNzaW9uSUQuCisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRSZXNvdXJjZUxvYWRl
cjo6bG9hZFJlc291cmNlKTogUGFzcyBzZXNzaW9uSUQgdG8gTWVtb3J5Q2FjaGUgYW5kIGluaXRp
YWxpemUgY2FjaGVkIHJlc291cmNlIHdpdGggc2Vzc2lvbklELgorICAgICAgICAqIGxvYWRlci9j
YWNoZS9DYWNoZWRSZXNvdXJjZUxvYWRlci5oOgorICAgICAgICAqIGxvYWRlci9jYWNoZS9DYWNo
ZWRTVkdEb2N1bWVudC5jcHA6IENvbnN0cnVjdG9yIHRha2VzIHNlc3Npb25JRC4KKyAgICAgICAg
KFdlYkNvcmU6OkNhY2hlZFNWR0RvY3VtZW50OjpDYWNoZWRTVkdEb2N1bWVudCk6CisgICAgICAg
ICogbG9hZGVyL2NhY2hlL0NhY2hlZFNWR0RvY3VtZW50Lmg6CisgICAgICAgICogbG9hZGVyL2Nh
Y2hlL0NhY2hlZFNjcmlwdC5jcHA6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkU2Ny
aXB0OjpDYWNoZWRTY3JpcHQpOgorICAgICAgICAqIGxvYWRlci9jYWNoZS9DYWNoZWRTY3JpcHQu
aDoKKyAgICAgICAgKiBsb2FkZXIvY2FjaGUvQ2FjaGVkVGV4dFRyYWNrLmNwcDogRGl0dG8uCisg
ICAgICAgIChXZWJDb3JlOjpDYWNoZWRUZXh0VHJhY2s6OkNhY2hlZFRleHRUcmFjayk6CisgICAg
ICAgICogbG9hZGVyL2NhY2hlL0NhY2hlZFRleHRUcmFjay5oOgorICAgICAgICAqIGxvYWRlci9j
YWNoZS9DYWNoZWRYU0xTdHlsZVNoZWV0LmNwcDogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpD
YWNoZWRYU0xTdHlsZVNoZWV0OjpDYWNoZWRYU0xTdHlsZVNoZWV0KToKKyAgICAgICAgKiBsb2Fk
ZXIvY2FjaGUvQ2FjaGVkWFNMU3R5bGVTaGVldC5oOgorICAgICAgICAqIGxvYWRlci9jYWNoZS9N
ZW1vcnlDYWNoZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZW1vcnlDYWNoZTo6Z2V0U2Vzc2lv
bk1hcCk6IFJldHJpZXZlIENhY2hlZFJlc291cmNlTWFwIGJhc2VkIG9uIHNlc3Npb25JRC4KKyAg
ICAgICAgKFdlYkNvcmU6Ok1lbW9yeUNhY2hlOjphZGQpOiBVc2Ugc2Vzc2lvbklEIGZyb20gQ2Fj
aGVkUmVzb3VyY2UgcGFyYW1ldGVyLgorICAgICAgICAoV2ViQ29yZTo6TWVtb3J5Q2FjaGU6OnJl
dmFsaWRhdGlvblN1Y2NlZWRlZCk6IEFkZCBzZXNzaW9uSUQgcGFyYW1ldGVyLgorICAgICAgICAo
V2ViQ29yZTo6TWVtb3J5Q2FjaGU6OnJlc291cmNlRm9yVVJMKTogRGl0dG8uCisgICAgICAgIChX
ZWJDb3JlOjpNZW1vcnlDYWNoZTo6cmVzb3VyY2VGb3JSZXF1ZXN0KTogRGl0dG8sIGFsc28gbW92
ZSBpbXBsIGludG8gaW1wbCBtZXRob2QuCisgICAgICAgIChXZWJDb3JlOjpNZW1vcnlDYWNoZTo6
cmVzb3VyY2VGb3JSZXF1ZXN0SW1wbCk6IEFkZCBDYWNoZWRSZXNvdXJjZU1hcCBwYXJhbWV0ZXIu
CisgICAgICAgIChXZWJDb3JlOjpNZW1vcnlDYWNoZTo6YWRkSW1hZ2VUb0NhY2hlKTogVXNlIGRl
ZmF1bHQgc2Vzc2lvbklELgorICAgICAgICAoV2ViQ29yZTo6TWVtb3J5Q2FjaGU6OnJlbW92ZUlt
YWdlRnJvbUNhY2hlKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpNZW1vcnlDYWNoZTo6ZXZp
Y3QpOiBVc2Ugc2Vzc2lvbklEIGZyb20gQ2FjaGVkUmVzb3VyY2UgcGFyYW1ldGVyLgorICAgICAg
ICAoV2ViQ29yZTo6TWVtb3J5Q2FjaGU6OnJlbW92ZVJlc291cmNlc1dpdGhPcmlnaW4pOiBJdGVy
YXRlIHRocm91Z2ggYWxsIENhY2hlZFJlc291cmNlTWFwcy4KKyAgICAgICAgKFdlYkNvcmU6Ok1l
bW9yeUNhY2hlOjpnZXRPcmlnaW5zV2l0aENhY2hlKTogRGl0dG8uCisgICAgICAgIChXZWJDb3Jl
OjpNZW1vcnlDYWNoZTo6cmVtb3ZlVXJsRnJvbUNhY2hlKTogQWRkIHNlc3Npb25JRCBwYXJhbWV0
ZXIuCisgICAgICAgIChXZWJDb3JlOjpNZW1vcnlDYWNoZTo6cmVtb3ZlUmVxdWVzdEZyb21DYWNo
ZSk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6TWVtb3J5Q2FjaGU6OnJlbW92ZVJlcXVlc3RG
cm9tU2Vzc2lvbkNhY2hlcyk6IFJlbW92ZSByZXF1ZXN0IGZyb20gYWxsIENhY2hlZFJlc291cmNl
TWFwcywgd2l0aCBtdWx0aXRocmVhZCBzdXBwb3J0LgorICAgICAgICAoV2ViQ29yZTo6TWVtb3J5
Q2FjaGU6OnJlbW92ZVJlcXVlc3RGcm9tQ2FjaGVJbXBsKTogQWRkIHNlc3Npb25JRCBwYXJhbWV0
ZXIuCisgICAgICAgIChXZWJDb3JlOjpNZW1vcnlDYWNoZTo6cmVtb3ZlUmVxdWVzdEZyb21TZXNz
aW9uQ2FjaGVzSW1wbCk6IEl0ZXJhdGUgdGhyb3VnaCBhbGwgQ2FjaGVkUmVzb3VyY2VNYXBzLgor
ICAgICAgICAoV2ViQ29yZTo6TWVtb3J5Q2FjaGU6OmNyb3NzVGhyZWFkUmVtb3ZlUmVxdWVzdEZy
b21DYWNoZSk6IEFkZCBzZXNzaW9uSUQgcGFyYW1ldGVyLgorICAgICAgICAoV2ViQ29yZTo6TWVt
b3J5Q2FjaGU6OmNyb3NzVGhyZWFkUmVtb3ZlUmVxdWVzdEZyb21TZXNzaW9uQ2FjaGVzKTogUGFz
cyBvbiByZXF1ZXN0IHRvIHJlbW92ZVJlcXVlc3RGcm9tU2Vzc2lvbkNhY2hlc0ltcGwuCisgICAg
ICAgIChXZWJDb3JlOjpNZW1vcnlDYWNoZTo6Z2V0U3RhdGlzdGljcyk6IEl0ZXJhdGUgdGhyb3Vn
aCBhbGwgQ2FjaGVkUmVzb3VyY2VNYXBzLgorICAgICAgICAoV2ViQ29yZTo6TWVtb3J5Q2FjaGU6
OnNldERpc2FibGVkKTogRGl0dG8uCisgICAgICAgICogbG9hZGVyL2NhY2hlL01lbW9yeUNhY2hl
Lmg6IENyZWF0ZSBhbm90aGVyIGxldmVsIGZvciBjYWNoZS4KKyAgICAgICAgKiBwbGF0Zm9ybS9D
cm9zc1RocmVhZENvcGllci5jcHA6IEFsbG93IGNvcHlpbmcgU2Vzc2lvbklEcyBhY3Jvc3MgdGhy
ZWFkcy4KKyAgICAgICAgKFdlYkNvcmU6OlNlc3Npb25JRD46OmNvcHkpOgorICAgICAgICAqIHBs
YXRmb3JtL0Nyb3NzVGhyZWFkQ29waWVyLmg6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9j
Zi9SZXNvdXJjZVJlcXVlc3QuaDoKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdDo6
UmVzb3VyY2VSZXF1ZXN0KTogUmVtb3ZlIHRyYWlsaW5nIHdoaXRlc3BhY2UuCisgICAgICAgICog
cmVuZGVyaW5nL1JlbmRlclNuYXBzaG90dGVkUGx1Z0luLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlJlbmRlclNuYXBzaG90dGVkUGx1Z0luOjp1cGRhdGVTbmFwc2hvdCk6IEluaXRpYWxpemUgQ2Fj
aGVkSW1hZ2Ugd2l0aCBzZXNzaW9uSUQuCisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJuYWxzOjppc0xvYWRpbmdGcm9tTWVtb3J5Q2FjaGUp
OiBQYXNzIHNlc3Npb25JRCB0byBNZW1vcnlDYWNoZS4KKwogMjAxNC0wMy0wNCAgWmFsYW4gQnVq
dGFzICA8emFsYW5AYXBwbGUuY29tPgogCiAgICAgICAgIEJ1aWxkIGZpeCBmb3IgaU9TLgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4gYi9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLmV4cC5pbgppbmRleCAxODVkODQ3Li5kNDMwYTUyYSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAu
aW4KQEAgLTE2OSw4ICsxNjksOSBAQCBfX1pON1dlYkNvcmUxMU1lbW9yeUNhY2hlMTNnZXRTdGF0
aXN0aWNzRXYKIF9fWk43V2ViQ29yZTExTWVtb3J5Q2FjaGUxM3NldENhcGFjaXRpZXNFampqCiBf
X1pON1dlYkNvcmUxMU1lbW9yeUNhY2hlMTRldmljdFJlc291cmNlc0V2CiBfX1pON1dlYkNvcmUx
MU1lbW9yeUNhY2hlMTRyZXNvdXJjZUZvclVSTEVSS05TXzNVUkxFCitfX1pON1dlYkNvcmUxMU1l
bW9yeUNhY2hlMTRyZXNvdXJjZUZvclVSTEVSS05TXzNVUkxFTlNfOVNlc3Npb25JREUKIF9fWk43
V2ViQ29yZTExTWVtb3J5Q2FjaGUxNWFkZEltYWdlVG9DYWNoZUVQN0NHSW1hZ2VSS05TXzNVUkxF
UktOM1dURjZTdHJpbmdFCi1fX1pON1dlYkNvcmUxMU1lbW9yeUNhY2hlMThyZXNvdXJjZUZvclJl
cXVlc3RFUktOU18xNVJlc291cmNlUmVxdWVzdEUKK19fWk43V2ViQ29yZTExTWVtb3J5Q2FjaGUx
OHJlc291cmNlRm9yUmVxdWVzdEVSS05TXzE1UmVzb3VyY2VSZXF1ZXN0RU5TXzlTZXNzaW9uSURF
CiBfX1pON1dlYkNvcmUxMU1lbW9yeUNhY2hlMTlnZXRPcmlnaW5zV2l0aENhY2hlRVJOM1dURjdI
YXNoU2V0SU5TMV82UmVmUHRySU5TXzE0U2VjdXJpdHlPcmlnaW5FRUVOU18xOFNlY3VyaXR5T3Jp
Z2luSGFzaEVOUzFfMTBIYXNoVHJhaXRzSVM1X0VFRUUKIF9fWk43V2ViQ29yZTExTWVtb3J5Q2Fj
aGUyMHJlbW92ZUltYWdlRnJvbUNhY2hlRVJLTlNfM1VSTEVSS04zV1RGNlN0cmluZ0UKIF9fWk43
V2ViQ29yZTExTWVtb3J5Q2FjaGUyNXJlbW92ZVJlc291cmNlc1dpdGhPcmlnaW5FUE5TXzE0U2Vj
dXJpdHlPcmlnaW5FCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RlbGV0ZUJ1
dHRvbkNvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EZWxldGVCdXR0b25D
b250cm9sbGVyLmNwcAppbmRleCA4MjBiMGFjLi4xNWU2N2U2IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL0RlbGV0ZUJ1dHRvbkNvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvRGVsZXRlQnV0dG9uQ29udHJvbGxlci5jcHAKQEAgLTI1NCw3ICsyNTQs
NyBAQCB2b2lkIERlbGV0ZUJ1dHRvbkNvbnRyb2xsZXI6OmNyZWF0ZURlbGV0aW9uVUkoKQogICAg
IGlmIChidXR0b25JbWFnZS0+aXNOdWxsKCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIGJ1dHRv
bi0+c2V0Q2FjaGVkSW1hZ2UobmV3IENhY2hlZEltYWdlKGJ1dHRvbkltYWdlLmdldCgpKSk7Cisg
ICAgYnV0dG9uLT5zZXRDYWNoZWRJbWFnZShuZXcgQ2FjaGVkSW1hZ2UoYnV0dG9uSW1hZ2UuZ2V0
KCksIG1fZnJhbWUucGFnZSgpLT5zZXNzaW9uSUQoKSkpOwogCiAgICAgY29udGFpbmVyLT5hcHBl
bmRDaGlsZChidXR0b24uZ2V0KCksIGVjKTsKICAgICBBU1NFUlQoIWVjKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvRE9NVVJMLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRE9N
VVJMLmNwcAppbmRleCA0ZTQ0MjU0Li41YjQ5ZGNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0RPTVVSTC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9ET01VUkwuY3BwCkBA
IC0xMjQsNyArMTI0LDcgQEAgdm9pZCBET01VUkw6OnJldm9rZU9iamVjdFVSTChTY3JpcHRFeGVj
dXRpb25Db250ZXh0KiBzY3JpcHRFeGVjdXRpb25Db250ZXh0LCBjb24KICNpZiBFTkFCTEUoQ0FD
SEVfUEFSVElUSU9OSU5HKQogICAgIHJlcXVlc3Quc2V0Q2FjaGVQYXJ0aXRpb24oc2NyaXB0RXhl
Y3V0aW9uQ29udGV4dC0+dG9wT3JpZ2luKCktPmNhY2hlUGFydGl0aW9uKCkpOwogI2VuZGlmCi0g
ICAgTWVtb3J5Q2FjaGU6OnJlbW92ZVJlcXVlc3RGcm9tQ2FjaGUoc2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCwgcmVxdWVzdCk7CisgICAgTWVtb3J5Q2FjaGU6OnJlbW92ZVJlcXVlc3RGcm9tU2Vzc2lv
bkNhY2hlcyhzY3JpcHRFeGVjdXRpb25Db250ZXh0LCByZXF1ZXN0KTsKIAogICAgIHNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQtPnB1YmxpY1VSTE1hbmFnZXIoKS5yZXZva2UodXJsKTsKIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JQYWdlQWdlbnQuY3BwIGIv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclBhZ2VBZ2VudC5jcHAKaW5kZXggY2Zl
ZTVkOC4uMzAxMjkwNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3Bl
Y3RvclBhZ2VBZ2VudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rv
clBhZ2VBZ2VudC5jcHAKQEAgLTI4Miw3ICsyODIsNyBAQCBDYWNoZWRSZXNvdXJjZSogSW5zcGVj
dG9yUGFnZUFnZW50OjpjYWNoZWRSZXNvdXJjZShGcmFtZSogZnJhbWUsIGNvbnN0IFVSTCYgdXJs
KQogI2lmIEVOQUJMRShDQUNIRV9QQVJUSVRJT05JTkcpCiAgICAgICAgIHJlcXVlc3Quc2V0Q2Fj
aGVQYXJ0aXRpb24oZnJhbWUtPmRvY3VtZW50KCktPnRvcE9yaWdpbigpLT5jYWNoZVBhcnRpdGlv
bigpKTsKICNlbmRpZgotICAgICAgICBjYWNoZWRSZXNvdXJjZSA9IG1lbW9yeUNhY2hlKCktPnJl
c291cmNlRm9yUmVxdWVzdChyZXF1ZXN0KTsKKyAgICAgICAgY2FjaGVkUmVzb3VyY2UgPSBtZW1v
cnlDYWNoZSgpLT5yZXNvdXJjZUZvclJlcXVlc3QocmVxdWVzdCwgZnJhbWUtPnBhZ2UoKS0+c2Vz
c2lvbklEKCkpOwogICAgIH0KIAogICAgIHJldHVybiBjYWNoZWRSZXNvdXJjZTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JSZXNvdXJjZUFnZW50LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JSZXNvdXJjZUFnZW50LmNwcAppbmRl
eCBhNjU0OGI2Li5mN2JlMzNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
SW5zcGVjdG9yUmVzb3VyY2VBZ2VudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L0luc3BlY3RvclJlc291cmNlQWdlbnQuY3BwCkBAIC01OTQsNyArNTk0LDcgQEAgdm9pZCBJbnNw
ZWN0b3JSZXNvdXJjZUFnZW50OjpyZXBsYXlYSFIoRXJyb3JTdHJpbmcqLCBjb25zdCBTdHJpbmcm
IHJlcXVlc3RJZCkKICNpZiBFTkFCTEUoQ0FDSEVfUEFSVElUSU9OSU5HKQogICAgIHJlcXVlc3Qu
c2V0Q2FjaGVQYXJ0aXRpb24obV9wYWdlQWdlbnQtPm1haW5GcmFtZSgpLT5kb2N1bWVudCgpLT50
b3BPcmlnaW4oKS0+Y2FjaGVQYXJ0aXRpb24oKSk7CiAjZW5kaWYKLSAgICBDYWNoZWRSZXNvdXJj
ZSogY2FjaGVkUmVzb3VyY2UgPSBtZW1vcnlDYWNoZSgpLT5yZXNvdXJjZUZvclJlcXVlc3QocmVx
dWVzdCk7CisgICAgQ2FjaGVkUmVzb3VyY2UqIGNhY2hlZFJlc291cmNlID0gbWVtb3J5Q2FjaGUo
KS0+cmVzb3VyY2VGb3JSZXF1ZXN0KHJlcXVlc3QsIG1fcGFnZUFnZW50LT5wYWdlKCktPnNlc3Np
b25JRCgpKTsKICAgICBpZiAoY2FjaGVkUmVzb3VyY2UpCiAgICAgICAgIG1lbW9yeUNhY2hlKCkt
PnJlbW92ZShjYWNoZWRSZXNvdXJjZSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9Eb2N1bWVudExvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRM
b2FkZXIuY3BwCmluZGV4IDQ1NTk1NjMuLjA1OWExMjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9Eb2N1bWVudExvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVy
L0RvY3VtZW50TG9hZGVyLmNwcApAQCAtMTAzLDcgKzEwMywxMCBAQCBzdGF0aWMgYm9vbCBhcmVB
bGxMb2FkZXJzUGFnZUNhY2hlQWNjZXB0YWJsZShjb25zdCBSZXNvdXJjZUxvYWRlck1hcCYgbG9h
ZGVycykKICAgICAgICAgaWYgKCFoYW5kbGUpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAK
LSAgICAgICAgQ2FjaGVkUmVzb3VyY2UqIGNhY2hlZFJlc291cmNlID0gbWVtb3J5Q2FjaGUoKS0+
cmVzb3VyY2VGb3JVUkwoaGFuZGxlLT5maXJzdFJlcXVlc3QoKS51cmwoKSk7CisgICAgICAgIGlm
ICghbG9hZGVyLT5mcmFtZUxvYWRlcigpKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworCisg
ICAgICAgIENhY2hlZFJlc291cmNlKiBjYWNoZWRSZXNvdXJjZSA9IG1lbW9yeUNhY2hlKCktPnJl
c291cmNlRm9yVVJMKGhhbmRsZS0+Zmlyc3RSZXF1ZXN0KCkudXJsKCksIGxvYWRlci0+ZnJhbWVM
b2FkZXIoKS0+ZnJhbWUoKS5wYWdlKCktPnNlc3Npb25JRCgpKTsKICAgICAgICAgaWYgKCFjYWNo
ZWRSZXNvdXJjZSkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9GcmFtZUxvYWRlci5jcHAKaW5kZXggOTRlMDUxOS4uMjk0YTIzYyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvRnJhbWVMb2FkZXIuY3BwCkBAIC0zMzc3LDcgKzMzNzcsNyBAQCB2b2lkIEZyYW1lTG9h
ZGVyOjp0ZWxsQ2xpZW50QWJvdXRQYXN0TWVtb3J5Q2FjaGVMb2FkcygpCiAKICAgICBzaXplX3Qg
c2l6ZSA9IHBhc3RMb2Fkcy5zaXplKCk7CiAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBzaXpl
OyArK2kpIHsKLSAgICAgICAgQ2FjaGVkUmVzb3VyY2UqIHJlc291cmNlID0gbWVtb3J5Q2FjaGUo
KS0+cmVzb3VyY2VGb3JSZXF1ZXN0KHBhc3RMb2Fkc1tpXSk7CisgICAgICAgIENhY2hlZFJlc291
cmNlKiByZXNvdXJjZSA9IG1lbW9yeUNhY2hlKCktPnJlc291cmNlRm9yUmVxdWVzdChwYXN0TG9h
ZHNbaV0sIG1fZnJhbWUucGFnZSgpLT5zZXNzaW9uSUQoKSk7CiAKICAgICAgICAgLy8gRklYTUU6
IFRoZXNlIGxvYWRzLCBsb2FkZWQgZnJvbSBjYWNoZSwgYnV0IG5vdyBnb25lIGZyb20gdGhlIGNh
Y2hlIGJ5IHRoZSB0aW1lCiAgICAgICAgIC8vIFBhZ2U6OnNldE1lbW9yeUNhY2hlQ2xpZW50Q2Fs
bHNFbmFibGVkKHRydWUpIGlzIGNhbGxlZCwgd2lsbCBub3QgYmUgc2VlbiBieSB0aGUgY2xpZW50
LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ltYWdlTG9hZGVyLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9JbWFnZUxvYWRlci5jcHAKaW5kZXggMzA2YTFiNzYuLmU0OGQ0
N2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9JbWFnZUxvYWRlci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ltYWdlTG9hZGVyLmNwcApAQCAtMzQsNiArMzQsNyBA
QAogI2luY2x1ZGUgIkhUTUxOYW1lcy5oIgogI2luY2x1ZGUgIkhUTUxPYmplY3RFbGVtZW50Lmgi
CiAjaW5jbHVkZSAiSFRNTFBhcnNlcklkaW9tcy5oIgorI2luY2x1ZGUgIlBhZ2UuaCIKICNpbmNs
dWRlICJSZW5kZXJJbWFnZS5oIgogI2luY2x1ZGUgIlJlbmRlclNWR0ltYWdlLmgiCiAjaW5jbHVk
ZSAiU2VjdXJpdHlPcmlnaW4uaCIKQEAgLTE4OCw3ICsxODksNyBAQCB2b2lkIEltYWdlTG9hZGVy
Ojp1cGRhdGVGcm9tRWxlbWVudCgpCiAgICAgICAgIGlmIChtX2xvYWRNYW51YWxseSkgewogICAg
ICAgICAgICAgYm9vbCBhdXRvTG9hZE90aGVySW1hZ2VzID0gZG9jdW1lbnQuY2FjaGVkUmVzb3Vy
Y2VMb2FkZXIoKS0+YXV0b0xvYWRJbWFnZXMoKTsKICAgICAgICAgICAgIGRvY3VtZW50LmNhY2hl
ZFJlc291cmNlTG9hZGVyKCktPnNldEF1dG9Mb2FkSW1hZ2VzKGZhbHNlKTsKLSAgICAgICAgICAg
IG5ld0ltYWdlID0gbmV3IENhY2hlZEltYWdlKHJlcXVlc3QucmVzb3VyY2VSZXF1ZXN0KCkpOwor
ICAgICAgICAgICAgbmV3SW1hZ2UgPSBuZXcgQ2FjaGVkSW1hZ2UocmVxdWVzdC5yZXNvdXJjZVJl
cXVlc3QoKSwgbV9lbGVtZW50LmRvY3VtZW50KCkucGFnZSgpLT5zZXNzaW9uSUQoKSk7CiAgICAg
ICAgICAgICBuZXdJbWFnZS0+c2V0TG9hZGluZyh0cnVlKTsKICAgICAgICAgICAgIG5ld0ltYWdl
LT5zZXRPd25pbmdDYWNoZWRSZXNvdXJjZUxvYWRlcihkb2N1bWVudC5jYWNoZWRSZXNvdXJjZUxv
YWRlcigpKTsKICAgICAgICAgICAgIGRvY3VtZW50LmNhY2hlZFJlc291cmNlTG9hZGVyKCktPm1f
ZG9jdW1lbnRSZXNvdXJjZXMuc2V0KG5ld0ltYWdlLT51cmwoKSwgbmV3SW1hZ2UuZ2V0KCkpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2FyY2hpdmUvY2YvTGVnYWN5V2ViQXJj
aGl2ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvYXJjaGl2ZS9jZi9MZWdhY3lXZWJBcmNo
aXZlLmNwcAppbmRleCAzMWYxYTFiLi4wMjRkMjhmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvYXJjaGl2ZS9jZi9MZWdhY3lXZWJBcmNoaXZlLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvYXJjaGl2ZS9jZi9MZWdhY3lXZWJBcmNoaXZlLmNwcApAQCAtNTU0LDcgKzU1
NCw3IEBAIFBhc3NSZWZQdHI8TGVnYWN5V2ViQXJjaGl2ZT4gTGVnYWN5V2ViQXJjaGl2ZTo6Y3Jl
YXRlKGNvbnN0IFN0cmluZyYgbWFya3VwU3RyaW5nCiAjaWYgRU5BQkxFKENBQ0hFX1BBUlRJVElP
TklORykKICAgICAgICAgICAgICAgICByZXF1ZXN0LnNldENhY2hlUGFydGl0aW9uKGZyYW1lLT5k
b2N1bWVudCgpLT50b3BPcmlnaW4oKS0+Y2FjaGVQYXJ0aXRpb24oKSk7CiAjZW5kaWYKLSAgICAg
ICAgICAgICAgICBDYWNoZWRSZXNvdXJjZSogY2FjaGVkUmVzb3VyY2UgPSBtZW1vcnlDYWNoZSgp
LT5yZXNvdXJjZUZvclJlcXVlc3QocmVxdWVzdCk7CisgICAgICAgICAgICAgICAgQ2FjaGVkUmVz
b3VyY2UqIGNhY2hlZFJlc291cmNlID0gbWVtb3J5Q2FjaGUoKS0+cmVzb3VyY2VGb3JSZXF1ZXN0
KHJlcXVlc3QsIGZyYW1lLT5wYWdlKCktPnNlc3Npb25JRCgpKTsKICAgICAgICAgICAgICAgICBp
ZiAoY2FjaGVkUmVzb3VyY2UpIHsKICAgICAgICAgICAgICAgICAgICAgUmVzb3VyY2VCdWZmZXIq
IGRhdGEgPSBjYWNoZWRSZXNvdXJjZS0+cmVzb3VyY2VCdWZmZXIoKTsKICAgICAgICAgICAgICAg
ICAgICAgcmVzb3VyY2UgPSBBcmNoaXZlUmVzb3VyY2U6OmNyZWF0ZShkYXRhID8gZGF0YS0+c2hh
cmVkQnVmZmVyKCkgOiAwLCBzdWJyZXNvdXJjZVVSTCwgY2FjaGVkUmVzb3VyY2UtPnJlc3BvbnNl
KCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZENTU1N0
eWxlU2hlZXQuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZENTU1N0eWxl
U2hlZXQuY3BwCmluZGV4IDY5YmNlOGYuLmU4YWFkNDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9jYWNoZS9DYWNoZWRDU1NTdHlsZVNoZWV0LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkQ1NTU3R5bGVTaGVldC5jcHAKQEAgLTQwLDggKzQwLDgg
QEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1DYWNoZWRDU1NTdHlsZVNoZWV0OjpDYWNoZWRD
U1NTdHlsZVNoZWV0KGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVzb3VyY2VSZXF1ZXN0LCBjb25z
dCBTdHJpbmcmIGNoYXJzZXQpCi0gICAgOiBDYWNoZWRSZXNvdXJjZShyZXNvdXJjZVJlcXVlc3Qs
IENTU1N0eWxlU2hlZXQpCitDYWNoZWRDU1NTdHlsZVNoZWV0OjpDYWNoZWRDU1NTdHlsZVNoZWV0
KGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVzb3VyY2VSZXF1ZXN0LCBjb25zdCBTdHJpbmcmIGNo
YXJzZXQsIFNlc3Npb25JRCBzZXNzaW9uSUQpCisgICAgOiBDYWNoZWRSZXNvdXJjZShyZXNvdXJj
ZVJlcXVlc3QsIENTU1N0eWxlU2hlZXQsIHNlc3Npb25JRCkKICAgICAsIG1fZGVjb2RlcihUZXh0
UmVzb3VyY2VEZWNvZGVyOjpjcmVhdGUoInRleHQvY3NzIiwgY2hhcnNldCkpCiB7CiAgICAgLy8g
UHJlZmVyIHRleHQvY3NzIGJ1dCBhY2NlcHQgYW55IHR5cGUgKGRlbGwuY29tIHNlcnZlcyBhIHN0
eWxlc2hlZXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRD
U1NTdHlsZVNoZWV0LmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkQ1NTU3R5
bGVTaGVldC5oCmluZGV4IGY4YmIwYzYuLjViN2I3NDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9jYWNoZS9DYWNoZWRDU1NTdHlsZVNoZWV0LmgKKysrIGIvU291cmNlL1dlYkNv
cmUvbG9hZGVyL2NhY2hlL0NhY2hlZENTU1N0eWxlU2hlZXQuaApAQCAtMzgsNyArMzgsNyBAQCBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKICAgICBjbGFzcyBDYWNoZWRDU1NTdHlsZVNoZWV0IGZpbmFs
IDogcHVibGljIENhY2hlZFJlc291cmNlIHsKICAgICBwdWJsaWM6Ci0gICAgICAgIENhY2hlZENT
U1N0eWxlU2hlZXQoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgU3RyaW5nJiBjaGFyc2V0
KTsKKyAgICAgICAgQ2FjaGVkQ1NTU3R5bGVTaGVldChjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBj
b25zdCBTdHJpbmcmIGNoYXJzZXQsIFNlc3Npb25JRCk7CiAgICAgICAgIHZpcnR1YWwgfkNhY2hl
ZENTU1N0eWxlU2hlZXQoKTsKIAogICAgICAgICBjb25zdCBTdHJpbmcgc2hlZXRUZXh0KGJvb2wg
ZW5mb3JjZU1JTUVUeXBlID0gdHJ1ZSwgYm9vbCogaGFzVmFsaWRNSU1FVHlwZSA9IDApIGNvbnN0
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZEZvbnQuY3Bw
IGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZEZvbnQuY3BwCmluZGV4IGZiZjY1
OGMuLjJhMWExNDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNo
ZWRGb250LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkRm9udC5j
cHAKQEAgLTUwLDggKzUwLDggQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1DYWNoZWRGb250
OjpDYWNoZWRGb250KGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVzb3VyY2VSZXF1ZXN0KQotICAg
IDogQ2FjaGVkUmVzb3VyY2UocmVzb3VyY2VSZXF1ZXN0LCBGb250UmVzb3VyY2UpCitDYWNoZWRG
b250OjpDYWNoZWRGb250KGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVzb3VyY2VSZXF1ZXN0LCBT
ZXNzaW9uSUQgc2Vzc2lvbklEKQorICAgIDogQ2FjaGVkUmVzb3VyY2UocmVzb3VyY2VSZXF1ZXN0
LCBGb250UmVzb3VyY2UsIHNlc3Npb25JRCkKICAgICAsIG1fbG9hZEluaXRpYXRlZChmYWxzZSkK
ICAgICAsIG1faGFzQ3JlYXRlZEZvbnREYXRhV3JhcHBpbmdSZXNvdXJjZShmYWxzZSkKIHsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRGb250LmggYi9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkRm9udC5oCmluZGV4IDc0NGI2MmQuLmZiMjE2
NTkzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkRm9udC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRGb250LmgKQEAgLTQyLDcg
KzQyLDcgQEAgc3RydWN0IEZvbnRDdXN0b21QbGF0Zm9ybURhdGE7CiAKIGNsYXNzIENhY2hlZEZv
bnQgZmluYWwgOiBwdWJsaWMgQ2FjaGVkUmVzb3VyY2UgewogcHVibGljOgotICAgIENhY2hlZEZv
bnQoY29uc3QgUmVzb3VyY2VSZXF1ZXN0Jik7CisgICAgQ2FjaGVkRm9udChjb25zdCBSZXNvdXJj
ZVJlcXVlc3QmLCBTZXNzaW9uSUQpOwogICAgIHZpcnR1YWwgfkNhY2hlZEZvbnQoKTsKIAogICAg
IHZvaWQgYmVnaW5Mb2FkSWZOZWVkZWQoQ2FjaGVkUmVzb3VyY2VMb2FkZXIqIGRsKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRJbWFnZS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkSW1hZ2UuY3BwCmluZGV4IDRjMjY2N2IuLmI5
MmE5NzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRJbWFn
ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZEltYWdlLmNwcApA
QCAtNjAsOCArNjAsOCBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLUNhY2hlZEltYWdlOjpD
YWNoZWRJbWFnZShjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlc291cmNlUmVxdWVzdCkKLSAgICA6
IENhY2hlZFJlc291cmNlKHJlc291cmNlUmVxdWVzdCwgSW1hZ2VSZXNvdXJjZSkKK0NhY2hlZElt
YWdlOjpDYWNoZWRJbWFnZShjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlc291cmNlUmVxdWVzdCwg
U2Vzc2lvbklEIHNlc3Npb25JRCkKKyAgICA6IENhY2hlZFJlc291cmNlKHJlc291cmNlUmVxdWVz
dCwgSW1hZ2VSZXNvdXJjZSwgc2Vzc2lvbklEKQogICAgICwgbV9pbWFnZSgwKQogICAgICwgbV9p
c01hbnVhbGx5Q2FjaGVkKGZhbHNlKQogICAgICwgbV9zaG91bGRQYWludEJyb2tlbkltYWdlKHRy
dWUpCkBAIC02OSw4ICs2OSw4IEBAIENhY2hlZEltYWdlOjpDYWNoZWRJbWFnZShjb25zdCBSZXNv
dXJjZVJlcXVlc3QmIHJlc291cmNlUmVxdWVzdCkKICAgICBzZXRTdGF0dXMoVW5rbm93bik7CiB9
CiAKLUNhY2hlZEltYWdlOjpDYWNoZWRJbWFnZShJbWFnZSogaW1hZ2UpCi0gICAgOiBDYWNoZWRS
ZXNvdXJjZShSZXNvdXJjZVJlcXVlc3QoKSwgSW1hZ2VSZXNvdXJjZSkKK0NhY2hlZEltYWdlOjpD
YWNoZWRJbWFnZShJbWFnZSogaW1hZ2UsIFNlc3Npb25JRCBzZXNzaW9uSUQpCisgICAgOiBDYWNo
ZWRSZXNvdXJjZShSZXNvdXJjZVJlcXVlc3QoKSwgSW1hZ2VSZXNvdXJjZSwgc2Vzc2lvbklEKQog
ICAgICwgbV9pbWFnZShpbWFnZSkKICAgICAsIG1faXNNYW51YWxseUNhY2hlZChmYWxzZSkKICAg
ICAsIG1fc2hvdWxkUGFpbnRCcm9rZW5JbWFnZSh0cnVlKQpAQCAtNzksOCArNzksMTggQEAgQ2Fj
aGVkSW1hZ2U6OkNhY2hlZEltYWdlKEltYWdlKiBpbWFnZSkKICAgICBzZXRMb2FkaW5nKGZhbHNl
KTsKIH0KIAotQ2FjaGVkSW1hZ2U6OkNhY2hlZEltYWdlKGNvbnN0IFVSTCYgdXJsLCBJbWFnZSog
aW1hZ2UsIENhY2hlZEltYWdlOjpDYWNoZUJlaGF2aW9yVHlwZSB0eXBlKQotICAgIDogQ2FjaGVk
UmVzb3VyY2UoUmVzb3VyY2VSZXF1ZXN0KHVybCksIEltYWdlUmVzb3VyY2UpCitDYWNoZWRJbWFn
ZTo6Q2FjaGVkSW1hZ2UoY29uc3QgVVJMJiB1cmwsIEltYWdlKiBpbWFnZSwgU2Vzc2lvbklEIHNl
c3Npb25JRCkKKyAgICA6IENhY2hlZFJlc291cmNlKFJlc291cmNlUmVxdWVzdCh1cmwpLCBJbWFn
ZVJlc291cmNlLCBzZXNzaW9uSUQpCisgICAgLCBtX2ltYWdlKGltYWdlKQorICAgICwgbV9pc01h
bnVhbGx5Q2FjaGVkKGZhbHNlKQorICAgICwgbV9zaG91bGRQYWludEJyb2tlbkltYWdlKHRydWUp
Cit7CisgICAgc2V0U3RhdHVzKENhY2hlZCk7CisgICAgc2V0TG9hZGluZyhmYWxzZSk7Cit9CisK
K0NhY2hlZEltYWdlOjpDYWNoZWRJbWFnZShjb25zdCBVUkwmIHVybCwgSW1hZ2UqIGltYWdlLCBD
YWNoZWRJbWFnZTo6Q2FjaGVCZWhhdmlvclR5cGUgdHlwZSwgU2Vzc2lvbklEIHNlc3Npb25JRCkK
KyAgICA6IENhY2hlZFJlc291cmNlKFJlc291cmNlUmVxdWVzdCh1cmwpLCBJbWFnZVJlc291cmNl
LCBzZXNzaW9uSUQpCiAgICAgLCBtX2ltYWdlKGltYWdlKQogICAgICwgbV9pc01hbnVhbGx5Q2Fj
aGVkKHR5cGUgPT0gQ2FjaGVkSW1hZ2U6Ok1hbnVhbGx5Q2FjaGVkKQogICAgICwgbV9zaG91bGRQ
YWludEJyb2tlbkltYWdlKHRydWUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
Y2FjaGUvQ2FjaGVkSW1hZ2UuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRJ
bWFnZS5oCmluZGV4IGI3ZDcyMTEuLjg2YWYwM2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9jYWNoZS9DYWNoZWRJbWFnZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9j
YWNoZS9DYWNoZWRJbWFnZS5oCkBAIC01MCw5ICs1MCwxMCBAQCBjbGFzcyBDYWNoZWRJbWFnZSBm
aW5hbCA6IHB1YmxpYyBDYWNoZWRSZXNvdXJjZSwgcHVibGljIEltYWdlT2JzZXJ2ZXIgewogcHVi
bGljOgogICAgIGVudW0gQ2FjaGVCZWhhdmlvclR5cGUgeyBBdXRvbWF0aWNhbGx5Q2FjaGVkLCBN
YW51YWxseUNhY2hlZCB9OwogCi0gICAgQ2FjaGVkSW1hZ2UoY29uc3QgUmVzb3VyY2VSZXF1ZXN0
Jik7Ci0gICAgQ2FjaGVkSW1hZ2UoSW1hZ2UqKTsKLSAgICBDYWNoZWRJbWFnZShjb25zdCBVUkwm
LCBJbWFnZSosIENhY2hlQmVoYXZpb3JUeXBlID0gQXV0b21hdGljYWxseUNhY2hlZCk7CisgICAg
Q2FjaGVkSW1hZ2UoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgU2Vzc2lvbklEKTsKKyAgICBDYWNo
ZWRJbWFnZShJbWFnZSosIFNlc3Npb25JRCk7CisgICAgQ2FjaGVkSW1hZ2UoY29uc3QgVVJMJiwg
SW1hZ2UqLCBTZXNzaW9uSUQpOworICAgIENhY2hlZEltYWdlKGNvbnN0IFVSTCYsIEltYWdlKiwg
Q2FjaGVCZWhhdmlvclR5cGUsIFNlc3Npb25JRCk7CiAgICAgdmlydHVhbCB+Q2FjaGVkSW1hZ2Uo
KTsKIAogICAgIEltYWdlKiBpbWFnZSgpOyAvLyBSZXR1cm5zIHRoZSBudWxsSW1hZ2UoKSBpZiB0
aGUgaW1hZ2UgaXMgbm90IGF2YWlsYWJsZSB5ZXQuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmF3UmVzb3VyY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL2NhY2hlL0NhY2hlZFJhd1Jlc291cmNlLmNwcAppbmRleCA3MWQ4NmRhLi5jNDY1ZDJmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmF3UmVzb3VyY2Uu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSYXdSZXNvdXJjZS5j
cHAKQEAgLTM1LDggKzM1LDggQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1DYWNoZWRSYXdS
ZXNvdXJjZTo6Q2FjaGVkUmF3UmVzb3VyY2UoUmVzb3VyY2VSZXF1ZXN0JiByZXNvdXJjZVJlcXVl
c3QsIFR5cGUgdHlwZSkKLSAgICA6IENhY2hlZFJlc291cmNlKHJlc291cmNlUmVxdWVzdCwgdHlw
ZSkKK0NhY2hlZFJhd1Jlc291cmNlOjpDYWNoZWRSYXdSZXNvdXJjZShSZXNvdXJjZVJlcXVlc3Qm
IHJlc291cmNlUmVxdWVzdCwgVHlwZSB0eXBlLCBTZXNzaW9uSUQgc2Vzc2lvbklEKQorICAgIDog
Q2FjaGVkUmVzb3VyY2UocmVzb3VyY2VSZXF1ZXN0LCB0eXBlLCBzZXNzaW9uSUQpCiAgICAgLCBt
X2lkZW50aWZpZXIoMCkKIHsKICAgICAvLyBGSVhNRTogVGhlIHdyb25nIENhY2hlZFJlc291cmNl
OjpUeXBlIGhlcmUgbWF5IGNhdXNlIGEgYmFkIGNhc3QgZWxzZXdoZXJlLgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJhd1Jlc291cmNlLmggYi9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmF3UmVzb3VyY2UuaAppbmRleCBjY2RmZWUxLi4z
ZDZiZmIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmF3
UmVzb3VyY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmF3UmVz
b3VyY2UuaApAQCAtMzIsNyArMzIsNyBAQCBjbGFzcyBTdWJyZXNvdXJjZUxvYWRlcjsKIAogY2xh
c3MgQ2FjaGVkUmF3UmVzb3VyY2UgZmluYWwgOiBwdWJsaWMgQ2FjaGVkUmVzb3VyY2UgewogcHVi
bGljOgotICAgIENhY2hlZFJhd1Jlc291cmNlKFJlc291cmNlUmVxdWVzdCYsIFR5cGUpOworICAg
IENhY2hlZFJhd1Jlc291cmNlKFJlc291cmNlUmVxdWVzdCYsIFR5cGUsIFNlc3Npb25JRCk7CiAK
ICAgICAvLyBGSVhNRTogQXNzb2NpYXRlZFVSTExvYWRlciBzaG91bGRuJ3QgYmUgYSBEb2N1bWVu
dFRocmVhZGFibGVMb2FkZXIgYW5kIHRoZXJlZm9yZSBzaG91bGRuJ3QKICAgICAvLyB1c2UgQ2Fj
aGVkUmF3UmVzb3VyY2UuIEhvd2V2ZXIsIGl0IGlzLCBhbmQgaXQgbmVlZHMgdG8gYmUgYWJsZSB0
byBkZWZlciBsb2FkaW5nLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hl
L0NhY2hlZFJlc291cmNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRS
ZXNvdXJjZS5jcHAKaW5kZXggNjk3YTQ5NS4uZjAzYTNlNSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2UuY3BwCkBAIC0xNDcsOCArMTQ3LDkgQEAgc3Rh
dGljIGRvdWJsZSBkZWFkRGVjb2RlZERhdGFEZWxldGlvbkludGVydmFsRm9yUmVzb3VyY2VUeXBl
KENhY2hlZFJlc291cmNlOjpUeXAKIAogREVGSU5FX0RFQlVHX09OTFlfR0xPQkFMKFJlZkNvdW50
ZWRMZWFrQ291bnRlciwgY2FjaGVkUmVzb3VyY2VMZWFrQ291bnRlciwgKCJDYWNoZWRSZXNvdXJj
ZSIpKTsKIAotQ2FjaGVkUmVzb3VyY2U6OkNhY2hlZFJlc291cmNlKGNvbnN0IFJlc291cmNlUmVx
dWVzdCYgcmVxdWVzdCwgVHlwZSB0eXBlKQorQ2FjaGVkUmVzb3VyY2U6OkNhY2hlZFJlc291cmNl
KGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgVHlwZSB0eXBlLCBTZXNzaW9uSUQgc2Vz
c2lvbklEKQogICAgIDogbV9yZXNvdXJjZVJlcXVlc3QocmVxdWVzdCkKKyAgICAsIG1fc2Vzc2lv
bklEKHNlc3Npb25JRCkKICAgICAsIG1fbG9hZFByaW9yaXR5KGRlZmF1bHRQcmlvcml0eUZvclJl
c291cmNlVHlwZSh0eXBlKSkKICAgICAsIG1fcmVzcG9uc2VUaW1lc3RhbXAoY3VycmVudFRpbWUo
KSkKICAgICAsIG1fZGVjb2RlZERhdGFEZWxldGlvblRpbWVyKHRoaXMsICZDYWNoZWRSZXNvdXJj
ZTo6ZGVjb2RlZERhdGFEZWxldGlvblRpbWVyRmlyZWQsIGRlYWREZWNvZGVkRGF0YURlbGV0aW9u
SW50ZXJ2YWxGb3JSZXNvdXJjZVR5cGUodHlwZSkpCkBAIC0xODAsNiArMTgxLDcgQEAgQ2FjaGVk
UmVzb3VyY2U6OkNhY2hlZFJlc291cmNlKGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwg
VHlwZSB0eXBlKQogICAgICwgbV9wcm94eVJlc291cmNlKDApCiB7CiAgICAgQVNTRVJUKG1fdHlw
ZSA9PSB1bnNpZ25lZCh0eXBlKSk7IC8vIG1fdHlwZSBpcyBhIGJpdGZpZWxkLCBzbyB0aGlzIHRl
c3RzIGNhcmVsZXNzIHVwZGF0ZXMgb2YgdGhlIGVudW0uCisgICAgQVNTRVJUKHNlc3Npb25JRC5p
c1ZhbGlkKCkpOwogI2lmbmRlZiBOREVCVUcKICAgICBjYWNoZWRSZXNvdXJjZUxlYWtDb3VudGVy
LmluY3JlbWVudCgpOwogI2VuZGlmCkBAIC0xOTksNyArMjAxLDcgQEAgQ2FjaGVkUmVzb3VyY2U6
On5DYWNoZWRSZXNvdXJjZSgpCiAgICAgQVNTRVJUKGNhbkRlbGV0ZSgpKTsKICAgICBBU1NFUlQo
IWluQ2FjaGUoKSk7CiAgICAgQVNTRVJUKCFtX2RlbGV0ZWQpOwotICAgIEFTU0VSVCh1cmwoKS5p
c051bGwoKSB8fCBtZW1vcnlDYWNoZSgpLT5yZXNvdXJjZUZvclJlcXVlc3QocmVzb3VyY2VSZXF1
ZXN0KCkpICE9IHRoaXMpOworICAgIEFTU0VSVCh1cmwoKS5pc051bGwoKSB8fCBtZW1vcnlDYWNo
ZSgpLT5yZXNvdXJjZUZvclJlcXVlc3QocmVzb3VyY2VSZXF1ZXN0KCksIHNlc3Npb25JRCgpKSAh
PSB0aGlzKTsKIAogI2lmbmRlZiBOREVCVUcKICAgICBtX2RlbGV0ZWQgPSB0cnVlOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2UuaAppbmRleCBlZjBiYzY2Li45
ZjhkMWQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVz
b3VyY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2Uu
aApAQCAtMzEsNiArMzEsNyBAQAogI2luY2x1ZGUgIlJlc291cmNlTG9hZGVyT3B0aW9ucy5oIgog
I2luY2x1ZGUgIlJlc291cmNlUmVxdWVzdC5oIgogI2luY2x1ZGUgIlJlc291cmNlUmVzcG9uc2Uu
aCIKKyNpbmNsdWRlICJTZXNzaW9uSUQuaCIKICNpbmNsdWRlICJUaW1lci5oIgogI2luY2x1ZGUg
PHRpbWUuaD4KICNpbmNsdWRlIDx3dGYvSGFzaENvdW50ZWRTZXQuaD4KQEAgLTg5LDcgKzkwLDcg
QEAgcHVibGljOgogICAgICAgICBEZWNvZGVFcnJvcgogICAgIH07CiAKLSAgICBDYWNoZWRSZXNv
dXJjZShjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBUeXBlKTsKKyAgICBDYWNoZWRSZXNvdXJjZShj
b25zdCBSZXNvdXJjZVJlcXVlc3QmLCBUeXBlLCBTZXNzaW9uSUQpOwogICAgIHZpcnR1YWwgfkNh
Y2hlZFJlc291cmNlKCk7CiAKICAgICB2aXJ0dWFsIHZvaWQgbG9hZChDYWNoZWRSZXNvdXJjZUxv
YWRlciosIGNvbnN0IFJlc291cmNlTG9hZGVyT3B0aW9ucyYpOwpAQCAtMTExLDYgKzExMiw3IEBA
IHB1YmxpYzoKICNpZiBFTkFCTEUoQ0FDSEVfUEFSVElUSU9OSU5HKQogICAgIGNvbnN0IFN0cmlu
ZyYgY2FjaGVQYXJ0aXRpb24oKSBjb25zdCB7IHJldHVybiBtX3Jlc291cmNlUmVxdWVzdC5jYWNo
ZVBhcnRpdGlvbigpOyB9CiAjZW5kaWYKKyAgICBTZXNzaW9uSUQgc2Vzc2lvbklEKCkgY29uc3Qg
eyByZXR1cm4gbV9zZXNzaW9uSUQ7IH0KICAgICBUeXBlIHR5cGUoKSBjb25zdCB7IHJldHVybiBz
dGF0aWNfY2FzdDxUeXBlPihtX3R5cGUpOyB9CiAgICAgCiAgICAgUmVzb3VyY2VMb2FkUHJpb3Jp
dHkgbG9hZFByaW9yaXR5KCkgY29uc3QgeyByZXR1cm4gbV9sb2FkUHJpb3JpdHk7IH0KQEAgLTI5
MCw2ICsyOTIsNyBAQCBwcm90ZWN0ZWQ6CiAgICAgSGFzaE1hcDxDYWNoZWRSZXNvdXJjZUNsaWVu
dCosIE93blB0cjxDYWNoZWRSZXNvdXJjZUNhbGxiYWNrPj4gbV9jbGllbnRzQXdhaXRpbmdDYWxs
YmFjazsKIAogICAgIFJlc291cmNlUmVxdWVzdCBtX3Jlc291cmNlUmVxdWVzdDsKKyAgICBTZXNz
aW9uSUQgbV9zZXNzaW9uSUQ7CiAgICAgU3RyaW5nIG1fYWNjZXB0OwogICAgIFJlZlB0cjxTdWJy
ZXNvdXJjZUxvYWRlcj4gbV9sb2FkZXI7CiAgICAgUmVzb3VyY2VMb2FkZXJPcHRpb25zIG1fb3B0
aW9uczsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNv
dXJjZUxvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3Vy
Y2VMb2FkZXIuY3BwCmluZGV4IDExZjE4YTguLjlkMjhkNzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZUxvYWRlci5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlTG9hZGVyLmNwcApAQCAtNDgsMTIg
KzQ4LDE0IEBACiAjaW5jbHVkZSAiTG9hZGVyU3RyYXRlZ3kuaCIKICNpbmNsdWRlICJMb2dnaW5n
LmgiCiAjaW5jbHVkZSAiTWVtb3J5Q2FjaGUuaCIKKyNpbmNsdWRlICJQYWdlLmgiCiAjaW5jbHVk
ZSAiUGluZ0xvYWRlci5oIgogI2luY2x1ZGUgIlBsYXRmb3JtU3RyYXRlZ2llcy5oIgogI2luY2x1
ZGUgIlJlbmRlckVsZW1lbnQuaCIKICNpbmNsdWRlICJSZXNvdXJjZUxvYWRTY2hlZHVsZXIuaCIK
ICNpbmNsdWRlICJTY3JpcHRDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAiU2VjdXJpdHlPcmlnaW4u
aCIKKyNpbmNsdWRlICJTZXNzaW9uSUQuaCIKICNpbmNsdWRlICJTZXR0aW5ncy5oIgogI2luY2x1
ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4K
QEAgLTcwLDM1ICs3MiwzNSBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLXN0YXRpYyBDYWNo
ZWRSZXNvdXJjZSogY3JlYXRlUmVzb3VyY2UoQ2FjaGVkUmVzb3VyY2U6OlR5cGUgdHlwZSwgUmVz
b3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBjb25zdCBTdHJpbmcmIGNoYXJzZXQpCitzdGF0aWMgQ2Fj
aGVkUmVzb3VyY2UqIGNyZWF0ZVJlc291cmNlKENhY2hlZFJlc291cmNlOjpUeXBlIHR5cGUsIFJl
c291cmNlUmVxdWVzdCYgcmVxdWVzdCwgY29uc3QgU3RyaW5nJiBjaGFyc2V0LCBTZXNzaW9uSUQg
c2Vzc2lvbklEKQogewogICAgIHN3aXRjaCAodHlwZSkgewogICAgIGNhc2UgQ2FjaGVkUmVzb3Vy
Y2U6OkltYWdlUmVzb3VyY2U6Ci0gICAgICAgIHJldHVybiBuZXcgQ2FjaGVkSW1hZ2UocmVxdWVz
dCk7CisgICAgICAgIHJldHVybiBuZXcgQ2FjaGVkSW1hZ2UocmVxdWVzdCwgc2Vzc2lvbklEKTsK
ICAgICBjYXNlIENhY2hlZFJlc291cmNlOjpDU1NTdHlsZVNoZWV0OgotICAgICAgICByZXR1cm4g
bmV3IENhY2hlZENTU1N0eWxlU2hlZXQocmVxdWVzdCwgY2hhcnNldCk7CisgICAgICAgIHJldHVy
biBuZXcgQ2FjaGVkQ1NTU3R5bGVTaGVldChyZXF1ZXN0LCBjaGFyc2V0LCBzZXNzaW9uSUQpOwog
ICAgIGNhc2UgQ2FjaGVkUmVzb3VyY2U6OlNjcmlwdDoKLSAgICAgICAgcmV0dXJuIG5ldyBDYWNo
ZWRTY3JpcHQocmVxdWVzdCwgY2hhcnNldCk7CisgICAgICAgIHJldHVybiBuZXcgQ2FjaGVkU2Ny
aXB0KHJlcXVlc3QsIGNoYXJzZXQsIHNlc3Npb25JRCk7CiAgICAgY2FzZSBDYWNoZWRSZXNvdXJj
ZTo6U1ZHRG9jdW1lbnRSZXNvdXJjZToKLSAgICAgICAgcmV0dXJuIG5ldyBDYWNoZWRTVkdEb2N1
bWVudChyZXF1ZXN0KTsKKyAgICAgICAgcmV0dXJuIG5ldyBDYWNoZWRTVkdEb2N1bWVudChyZXF1
ZXN0LCBzZXNzaW9uSUQpOwogICAgIGNhc2UgQ2FjaGVkUmVzb3VyY2U6OkZvbnRSZXNvdXJjZToK
LSAgICAgICAgcmV0dXJuIG5ldyBDYWNoZWRGb250KHJlcXVlc3QpOworICAgICAgICByZXR1cm4g
bmV3IENhY2hlZEZvbnQocmVxdWVzdCwgc2Vzc2lvbklEKTsKICAgICBjYXNlIENhY2hlZFJlc291
cmNlOjpSYXdSZXNvdXJjZToKICAgICBjYXNlIENhY2hlZFJlc291cmNlOjpNYWluUmVzb3VyY2U6
Ci0gICAgICAgIHJldHVybiBuZXcgQ2FjaGVkUmF3UmVzb3VyY2UocmVxdWVzdCwgdHlwZSk7Cisg
ICAgICAgIHJldHVybiBuZXcgQ2FjaGVkUmF3UmVzb3VyY2UocmVxdWVzdCwgdHlwZSwgc2Vzc2lv
bklEKTsKICNpZiBFTkFCTEUoWFNMVCkKICAgICBjYXNlIENhY2hlZFJlc291cmNlOjpYU0xTdHls
ZVNoZWV0OgotICAgICAgICByZXR1cm4gbmV3IENhY2hlZFhTTFN0eWxlU2hlZXQocmVxdWVzdCk7
CisgICAgICAgIHJldHVybiBuZXcgQ2FjaGVkWFNMU3R5bGVTaGVldChyZXF1ZXN0LCBzZXNzaW9u
SUQpOwogI2VuZGlmCiAjaWYgRU5BQkxFKExJTktfUFJFRkVUQ0gpCiAgICAgY2FzZSBDYWNoZWRS
ZXNvdXJjZTo6TGlua1ByZWZldGNoOgotICAgICAgICByZXR1cm4gbmV3IENhY2hlZFJlc291cmNl
KHJlcXVlc3QsIENhY2hlZFJlc291cmNlOjpMaW5rUHJlZmV0Y2gpOworICAgICAgICByZXR1cm4g
bmV3IENhY2hlZFJlc291cmNlKHJlcXVlc3QsIENhY2hlZFJlc291cmNlOjpMaW5rUHJlZmV0Y2gs
IHNlc3Npb25JRCk7CiAgICAgY2FzZSBDYWNoZWRSZXNvdXJjZTo6TGlua1N1YnJlc291cmNlOgot
ICAgICAgICByZXR1cm4gbmV3IENhY2hlZFJlc291cmNlKHJlcXVlc3QsIENhY2hlZFJlc291cmNl
OjpMaW5rU3VicmVzb3VyY2UpOworICAgICAgICByZXR1cm4gbmV3IENhY2hlZFJlc291cmNlKHJl
cXVlc3QsIENhY2hlZFJlc291cmNlOjpMaW5rU3VicmVzb3VyY2UsIHNlc3Npb25JRCk7CiAjZW5k
aWYKICNpZiBFTkFCTEUoVklERU9fVFJBQ0spCiAgICAgY2FzZSBDYWNoZWRSZXNvdXJjZTo6VGV4
dFRyYWNrUmVzb3VyY2U6Ci0gICAgICAgIHJldHVybiBuZXcgQ2FjaGVkVGV4dFRyYWNrKHJlcXVl
c3QpOworICAgICAgICByZXR1cm4gbmV3IENhY2hlZFRleHRUcmFjayhyZXF1ZXN0LCBzZXNzaW9u
SUQpOwogI2VuZGlmCiAgICAgfQogICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwpAQCAtMTQ3LDYg
KzE0OSwxNiBAQCBGcmFtZSogQ2FjaGVkUmVzb3VyY2VMb2FkZXI6OmZyYW1lKCkgY29uc3QKICAg
ICByZXR1cm4gbV9kb2N1bWVudExvYWRlciA/IG1fZG9jdW1lbnRMb2FkZXItPmZyYW1lKCkgOiAw
OwogfQogCitTZXNzaW9uSUQgQ2FjaGVkUmVzb3VyY2VMb2FkZXI6OnNlc3Npb25JRCgpIGNvbnN0
Cit7CisgICAgU2Vzc2lvbklEIHNlc3Npb25JRCA9IFNlc3Npb25JRDo6ZGVmYXVsdFNlc3Npb25J
RCgpOworCisgICAgaWYgKEZyYW1lKiBmID0gZnJhbWUoKSkKKyAgICAgICAgc2Vzc2lvbklEID0g
Zi0+cGFnZSgpLT5zZXNzaW9uSUQoKTsKKworICAgIHJldHVybiBzZXNzaW9uSUQ7Cit9CisKIENh
Y2hlZFJlc291cmNlSGFuZGxlPENhY2hlZEltYWdlPiBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6cmVx
dWVzdEltYWdlKENhY2hlZFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCkKIHsKICAgICBpZiAoRnJh
bWUqIGZyYW1lID0gdGhpcy0+ZnJhbWUoKSkgewpAQCAtMTg3LDcgKzE5OSw3IEBAIENhY2hlZFJl
c291cmNlSGFuZGxlPENhY2hlZENTU1N0eWxlU2hlZXQ+IENhY2hlZFJlc291cmNlTG9hZGVyOjpy
ZXF1ZXN0VXNlckNTU1N0CiAgICAgcmVxdWVzdC5tdXRhYmxlUmVzb3VyY2VSZXF1ZXN0KCkuc2V0
Q2FjaGVQYXJ0aXRpb24oZG9jdW1lbnQoKS0+dG9wT3JpZ2luKCktPmNhY2hlUGFydGl0aW9uKCkp
OwogI2VuZGlmCiAKLSAgICBpZiAoQ2FjaGVkUmVzb3VyY2UqIGV4aXN0aW5nID0gbWVtb3J5Q2Fj
aGUoKS0+cmVzb3VyY2VGb3JSZXF1ZXN0KHJlcXVlc3QucmVzb3VyY2VSZXF1ZXN0KCkpKSB7Cisg
ICAgaWYgKENhY2hlZFJlc291cmNlKiBleGlzdGluZyA9IG1lbW9yeUNhY2hlKCktPnJlc291cmNl
Rm9yUmVxdWVzdChyZXF1ZXN0LnJlc291cmNlUmVxdWVzdCgpLCBzZXNzaW9uSUQoKSkpIHsKICAg
ICAgICAgaWYgKGV4aXN0aW5nLT50eXBlKCkgPT0gQ2FjaGVkUmVzb3VyY2U6OkNTU1N0eWxlU2hl
ZXQpCiAgICAgICAgICAgICByZXR1cm4gdG9DYWNoZWRDU1NTdHlsZVNoZWV0KGV4aXN0aW5nKTsK
ICAgICAgICAgbWVtb3J5Q2FjaGUoKS0+cmVtb3ZlKGV4aXN0aW5nKTsKQEAgLTE5NSw3ICsyMDcs
NyBAQCBDYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRDU1NTdHlsZVNoZWV0PiBDYWNoZWRSZXNv
dXJjZUxvYWRlcjo6cmVxdWVzdFVzZXJDU1NTdAogICAgIGlmICh1cmwuc3RyaW5nKCkgIT0gcmVx
dWVzdC5yZXNvdXJjZVJlcXVlc3QoKS51cmwoKSkKICAgICAgICAgcmVxdWVzdC5tdXRhYmxlUmVz
b3VyY2VSZXF1ZXN0KCkuc2V0VVJMKHVybCk7CiAKLSAgICBDYWNoZWRSZXNvdXJjZUhhbmRsZTxD
YWNoZWRDU1NTdHlsZVNoZWV0PiB1c2VyU2hlZXQgPSBuZXcgQ2FjaGVkQ1NTU3R5bGVTaGVldChy
ZXF1ZXN0LnJlc291cmNlUmVxdWVzdCgpLCByZXF1ZXN0LmNoYXJzZXQoKSk7CisgICAgQ2FjaGVk
UmVzb3VyY2VIYW5kbGU8Q2FjaGVkQ1NTU3R5bGVTaGVldD4gdXNlclNoZWV0ID0gbmV3IENhY2hl
ZENTU1N0eWxlU2hlZXQocmVxdWVzdC5yZXNvdXJjZVJlcXVlc3QoKSwgcmVxdWVzdC5jaGFyc2V0
KCksIHNlc3Npb25JRCgpKTsKIAogICAgIG1lbW9yeUNhY2hlKCktPmFkZCh1c2VyU2hlZXQuZ2V0
KCkpOwogICAgIC8vIEZJWE1FOiBsb2FkUmVzb3VyY2UgY2FsbHMgc2V0T3duaW5nQ2FjaGVkUmVz
b3VyY2VMb2FkZXIoKSBpZiB0aGUgcmVzb3VyY2UgY291bGRuJ3QgYmUgYWRkZWQgdG8gY2FjaGUu
IERvZXMgdGhpcyBmdW5jdGlvbiBuZWVkIHRvIGNhbGwgaXQsIHRvbz8KQEAgLTQyOCw3ICs0NDAs
NyBAQCBDYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRSZXNvdXJjZT4gQ2FjaGVkUmVzb3VyY2VM
b2FkZXI6OnJlcXVlc3RSZXNvdXJjZShDYWNoZQogICAgICAgICByZXF1ZXN0Lm11dGFibGVSZXNv
dXJjZVJlcXVlc3QoKS5zZXRDYWNoZVBhcnRpdGlvbihkb2N1bWVudCgpLT50b3BPcmlnaW4oKS0+
Y2FjaGVQYXJ0aXRpb24oKSk7CiAjZW5kaWYKIAotICAgIHJlc291cmNlID0gbWVtb3J5Q2FjaGUo
KS0+cmVzb3VyY2VGb3JSZXF1ZXN0KHJlcXVlc3QucmVzb3VyY2VSZXF1ZXN0KCkpOworICAgIHJl
c291cmNlID0gbWVtb3J5Q2FjaGUoKS0+cmVzb3VyY2VGb3JSZXF1ZXN0KHJlcXVlc3QucmVzb3Vy
Y2VSZXF1ZXN0KCksIHNlc3Npb25JRCgpKTsKIAogICAgIGNvbnN0IFJldmFsaWRhdGlvblBvbGlj
eSBwb2xpY3kgPSBkZXRlcm1pbmVSZXZhbGlkYXRpb25Qb2xpY3kodHlwZSwgcmVxdWVzdC5tdXRh
YmxlUmVzb3VyY2VSZXF1ZXN0KCksIHJlcXVlc3QuZm9yUHJlbG9hZCgpLCByZXNvdXJjZS5nZXQo
KSwgcmVxdWVzdC5kZWZlcigpKTsKICAgICBzd2l0Y2ggKHBvbGljeSkgewpAQCAtNDgwLDEwICs0
OTIsMTEgQEAgQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkUmVzb3VyY2U+IENhY2hlZFJlc291
cmNlTG9hZGVyOjpyZXZhbGlkYXRlUmVzb3VyY2UoY28KICAgICBBU1NFUlQoIW1lbW9yeUNhY2hl
KCktPmRpc2FibGVkKCkpOwogICAgIEFTU0VSVChyZXNvdXJjZS0+Y2FuVXNlQ2FjaGVWYWxpZGF0
b3IoKSk7CiAgICAgQVNTRVJUKCFyZXNvdXJjZS0+cmVzb3VyY2VUb1JldmFsaWRhdGUoKSk7Ci0g
ICAgCisgICAgQVNTRVJUKHJlc291cmNlLT5zZXNzaW9uSUQoKSA9PSBzZXNzaW9uSUQoKSk7CisK
ICAgICAvLyBDb3B5IHRoZSBVUkwgb3V0IG9mIHRoZSByZXNvdXJjZSB0byBiZSByZXZhbGlkYXRl
ZCBpbiBjYXNlIGl0IGdldHMgZGVsZXRlZCBieSB0aGUgcmVtb3ZlKCkgY2FsbCBiZWxvdy4KICAg
ICBTdHJpbmcgdXJsID0gcmVzb3VyY2UtPnVybCgpOwotICAgIENhY2hlZFJlc291cmNlSGFuZGxl
PENhY2hlZFJlc291cmNlPiBuZXdSZXNvdXJjZSA9IGNyZWF0ZVJlc291cmNlKHJlc291cmNlLT50
eXBlKCksIHJlc291cmNlLT5yZXNvdXJjZVJlcXVlc3QoKSwgcmVzb3VyY2UtPmVuY29kaW5nKCkp
OworICAgIENhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZFJlc291cmNlPiBuZXdSZXNvdXJjZSA9
IGNyZWF0ZVJlc291cmNlKHJlc291cmNlLT50eXBlKCksIHJlc291cmNlLT5yZXNvdXJjZVJlcXVl
c3QoKSwgcmVzb3VyY2UtPmVuY29kaW5nKCksIHJlc291cmNlLT5zZXNzaW9uSUQoKSk7CiAgICAg
CiAgICAgTE9HKFJlc291cmNlTG9hZGluZywgIlJlc291cmNlICVwIGNyZWF0ZWQgdG8gcmV2YWxp
ZGF0ZSAlcCIsIG5ld1Jlc291cmNlLmdldCgpLCByZXNvdXJjZSk7CiAgICAgbmV3UmVzb3VyY2Ut
PnNldFJlc291cmNlVG9SZXZhbGlkYXRlKHJlc291cmNlKTsKQEAgLTUwMCwxMSArNTEzLDExIEBA
IENhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZFJlc291cmNlPiBDYWNoZWRSZXNvdXJjZUxvYWRl
cjo6cmV2YWxpZGF0ZVJlc291cmNlKGNvCiAKIENhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZFJl
c291cmNlPiBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6bG9hZFJlc291cmNlKENhY2hlZFJlc291cmNl
OjpUeXBlIHR5cGUsIENhY2hlZFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgY29uc3QgU3RyaW5n
JiBjaGFyc2V0KQogewotICAgIEFTU0VSVCghbWVtb3J5Q2FjaGUoKS0+cmVzb3VyY2VGb3JSZXF1
ZXN0KHJlcXVlc3QucmVzb3VyY2VSZXF1ZXN0KCkpKTsKKyAgICBBU1NFUlQoIW1lbW9yeUNhY2hl
KCktPnJlc291cmNlRm9yUmVxdWVzdChyZXF1ZXN0LnJlc291cmNlUmVxdWVzdCgpLCBzZXNzaW9u
SUQoKSkpOwogCiAgICAgTE9HKFJlc291cmNlTG9hZGluZywgIkxvYWRpbmcgQ2FjaGVkUmVzb3Vy
Y2UgZm9yICclcycuIiwgcmVxdWVzdC5yZXNvdXJjZVJlcXVlc3QoKS51cmwoKS5zdHJpbmdDZW50
ZXJFbGxpcHNpemVkVG9MZW5ndGgoKS5sYXRpbjEoKS5kYXRhKCkpOwogCi0gICAgQ2FjaGVkUmVz
b3VyY2VIYW5kbGU8Q2FjaGVkUmVzb3VyY2U+IHJlc291cmNlID0gY3JlYXRlUmVzb3VyY2UodHlw
ZSwgcmVxdWVzdC5tdXRhYmxlUmVzb3VyY2VSZXF1ZXN0KCksIGNoYXJzZXQpOworICAgIENhY2hl
ZFJlc291cmNlSGFuZGxlPENhY2hlZFJlc291cmNlPiByZXNvdXJjZSA9IGNyZWF0ZVJlc291cmNl
KHR5cGUsIHJlcXVlc3QubXV0YWJsZVJlc291cmNlUmVxdWVzdCgpLCBjaGFyc2V0LCBzZXNzaW9u
SUQoKSk7CiAKICAgICBpZiAoIW1lbW9yeUNhY2hlKCktPmFkZChyZXNvdXJjZS5nZXQoKSkpCiAg
ICAgICAgIHJlc291cmNlLT5zZXRPd25pbmdDYWNoZWRSZXNvdXJjZUxvYWRlcih0aGlzKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZUxvYWRl
ci5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlTG9hZGVyLmgK
aW5kZXggYWFkN2UyNS4uMDFiNjQ3YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVy
L2NhY2hlL0NhY2hlZFJlc291cmNlTG9hZGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVy
L2NhY2hlL0NhY2hlZFJlc291cmNlTG9hZGVyLmgKQEAgLTExMSw2ICsxMTEsNyBAQCBwdWJsaWM6
CiAgICAgRG9jdW1lbnQqIGRvY3VtZW50KCkgY29uc3QgeyByZXR1cm4gbV9kb2N1bWVudDsgfSAv
LyBDYW4gYmUgbnVsbAogICAgIHZvaWQgc2V0RG9jdW1lbnQoRG9jdW1lbnQqIGRvY3VtZW50KSB7
IG1fZG9jdW1lbnQgPSBkb2N1bWVudDsgfQogICAgIHZvaWQgY2xlYXJEb2N1bWVudExvYWRlcigp
IHsgbV9kb2N1bWVudExvYWRlciA9IDA7IH0KKyAgICBTZXNzaW9uSUQgc2Vzc2lvbklEKCkgY29u
c3Q7CiAKICAgICB2b2lkIHJlbW92ZUNhY2hlZFJlc291cmNlKENhY2hlZFJlc291cmNlKikgY29u
c3Q7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRTVkdE
b2N1bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkU1ZHRG9jdW1l
bnQuY3BwCmluZGV4IGRkNWE0NzguLmE0NDgwODYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9jYWNoZS9DYWNoZWRTVkdEb2N1bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
bG9hZGVyL2NhY2hlL0NhY2hlZFNWR0RvY3VtZW50LmNwcApAQCAtMzAsOCArMzAsOCBAQAogCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKLUNhY2hlZFNWR0RvY3VtZW50OjpDYWNoZWRTVkdEb2N1bWVu
dChjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QpCi0gICAgOiBDYWNoZWRSZXNvdXJjZShy
ZXF1ZXN0LCBTVkdEb2N1bWVudFJlc291cmNlKQorQ2FjaGVkU1ZHRG9jdW1lbnQ6OkNhY2hlZFNW
R0RvY3VtZW50KGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgU2Vzc2lvbklEIHNlc3Np
b25JRCkKKyAgICA6IENhY2hlZFJlc291cmNlKHJlcXVlc3QsIFNWR0RvY3VtZW50UmVzb3VyY2Us
IHNlc3Npb25JRCkKICAgICAsIG1fZGVjb2RlcihUZXh0UmVzb3VyY2VEZWNvZGVyOjpjcmVhdGUo
ImFwcGxpY2F0aW9uL3htbCIpKQogewogICAgIHNldEFjY2VwdCgiaW1hZ2Uvc3ZnK3htbCIpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFNWR0RvY3VtZW50
LmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkU1ZHRG9jdW1lbnQuaAppbmRl
eCA2YzA4ZTJlLi43ZDQ2ZmE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2Fj
aGUvQ2FjaGVkU1ZHRG9jdW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUv
Q2FjaGVkU1ZHRG9jdW1lbnQuaApAQCAtMzIsNyArMzIsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKIGNsYXNzIENhY2hlZFNWR0RvY3VtZW50IGZpbmFsIDogcHVibGljIENhY2hlZFJlc291cmNl
IHsKIHB1YmxpYzoKLSAgICBleHBsaWNpdCBDYWNoZWRTVkdEb2N1bWVudChjb25zdCBSZXNvdXJj
ZVJlcXVlc3QmKTsKKyAgICBleHBsaWNpdCBDYWNoZWRTVkdEb2N1bWVudChjb25zdCBSZXNvdXJj
ZVJlcXVlc3QmLCBTZXNzaW9uSUQpOwogICAgIHZpcnR1YWwgfkNhY2hlZFNWR0RvY3VtZW50KCk7
CiAKICAgICBTVkdEb2N1bWVudCogZG9jdW1lbnQoKSBjb25zdCB7IHJldHVybiBtX2RvY3VtZW50
LmdldCgpOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVk
U2NyaXB0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRTY3JpcHQuY3Bw
CmluZGV4IDQ4ZmFjZDcuLmVkYzY4NWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9jYWNoZS9DYWNoZWRTY3JpcHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNo
ZS9DYWNoZWRTY3JpcHQuY3BwCkBAIC0zOSw4ICszOSw4IEBACiAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAotQ2FjaGVkU2NyaXB0OjpDYWNoZWRTY3JpcHQoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiBy
ZXNvdXJjZVJlcXVlc3QsIGNvbnN0IFN0cmluZyYgY2hhcnNldCkKLSAgICA6IENhY2hlZFJlc291
cmNlKHJlc291cmNlUmVxdWVzdCwgU2NyaXB0KQorQ2FjaGVkU2NyaXB0OjpDYWNoZWRTY3JpcHQo
Y29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXNvdXJjZVJlcXVlc3QsIGNvbnN0IFN0cmluZyYgY2hh
cnNldCwgU2Vzc2lvbklEIHNlc3Npb25JRCkKKyAgICA6IENhY2hlZFJlc291cmNlKHJlc291cmNl
UmVxdWVzdCwgU2NyaXB0LCBzZXNzaW9uSUQpCiAgICAgLCBtX2RlY29kZXIoVGV4dFJlc291cmNl
RGVjb2Rlcjo6Y3JlYXRlKEFTQ0lJTGl0ZXJhbCgiYXBwbGljYXRpb24vamF2YXNjcmlwdCIpLCBj
aGFyc2V0KSkKIHsKICAgICAvLyBJdCdzIGphdmFzY3JpcHQgd2Ugd2FudC4KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRTY3JpcHQuaCBiL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9jYWNoZS9DYWNoZWRTY3JpcHQuaAppbmRleCBkNDM4YjI3Li5jOWM3M2QyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkU2NyaXB0LmgKKysr
IGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFNjcmlwdC5oCkBAIC0zNSw3ICsz
NSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogICAgIGNsYXNzIENhY2hlZFNjcmlwdCBmaW5h
bCA6IHB1YmxpYyBDYWNoZWRSZXNvdXJjZSB7CiAgICAgcHVibGljOgotICAgICAgICBDYWNoZWRT
Y3JpcHQoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgU3RyaW5nJiBjaGFyc2V0KTsKKyAg
ICAgICAgQ2FjaGVkU2NyaXB0KGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFN0cmluZyYg
Y2hhcnNldCwgU2Vzc2lvbklEKTsKICAgICAgICAgdmlydHVhbCB+Q2FjaGVkU2NyaXB0KCk7CiAK
ICAgICAgICAgY29uc3QgU3RyaW5nJiBzY3JpcHQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9jYWNoZS9DYWNoZWRUZXh0VHJhY2suY3BwIGIvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL2NhY2hlL0NhY2hlZFRleHRUcmFjay5jcHAKaW5kZXggOTQ5NzRhNS4uMjA1MDU0MSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFRleHRUcmFjay5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFRleHRUcmFjay5jcHAKQEAg
LTM5LDggKzM5LDggQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1DYWNoZWRUZXh0VHJhY2s6
OkNhY2hlZFRleHRUcmFjayhjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlc291cmNlUmVxdWVzdCkK
LSAgICA6IENhY2hlZFJlc291cmNlKHJlc291cmNlUmVxdWVzdCwgVGV4dFRyYWNrUmVzb3VyY2Up
CitDYWNoZWRUZXh0VHJhY2s6OkNhY2hlZFRleHRUcmFjayhjb25zdCBSZXNvdXJjZVJlcXVlc3Qm
IHJlc291cmNlUmVxdWVzdCwgU2Vzc2lvbklEIHNlc3Npb25JRCkKKyAgICA6IENhY2hlZFJlc291
cmNlKHJlc291cmNlUmVxdWVzdCwgVGV4dFRyYWNrUmVzb3VyY2UsIHNlc3Npb25JRCkKIHsKIH0K
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFRleHRUcmFj
ay5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFRleHRUcmFjay5oCmluZGV4
IGIzZWVhN2EuLjc5M2FjOTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNo
ZS9DYWNoZWRUZXh0VHJhY2suaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2Fj
aGVkVGV4dFRyYWNrLmgKQEAgLTM1LDcgKzM1LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBj
bGFzcyBDYWNoZWRUZXh0VHJhY2sgZmluYWwgOiBwdWJsaWMgQ2FjaGVkUmVzb3VyY2UgewogcHVi
bGljOgotICAgIENhY2hlZFRleHRUcmFjayhjb25zdCBSZXNvdXJjZVJlcXVlc3QmKTsKKyAgICBD
YWNoZWRUZXh0VHJhY2soY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgU2Vzc2lvbklEKTsKICAgICB2
aXJ0dWFsIH5DYWNoZWRUZXh0VHJhY2soKTsKIAogcHJpdmF0ZToKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRYU0xTdHlsZVNoZWV0LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRYU0xTdHlsZVNoZWV0LmNwcAppbmRleCBlYjZjOGUx
Li43YTQ5YWMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVk
WFNMU3R5bGVTaGVldC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hl
ZFhTTFN0eWxlU2hlZXQuY3BwCkBAIC0zNyw4ICszNyw4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IAogI2lmIEVOQUJMRShYU0xUKQogCi1DYWNoZWRYU0xTdHlsZVNoZWV0OjpDYWNoZWRYU0xTdHls
ZVNoZWV0KGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVzb3VyY2VSZXF1ZXN0KQotICAgIDogQ2Fj
aGVkUmVzb3VyY2UocmVzb3VyY2VSZXF1ZXN0LCBYU0xTdHlsZVNoZWV0KQorQ2FjaGVkWFNMU3R5
bGVTaGVldDo6Q2FjaGVkWFNMU3R5bGVTaGVldChjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlc291
cmNlUmVxdWVzdCwgU2Vzc2lvbklEIHNlc3Npb25JRCkKKyAgICA6IENhY2hlZFJlc291cmNlKHJl
c291cmNlUmVxdWVzdCwgWFNMU3R5bGVTaGVldCwgc2Vzc2lvbklEKQogICAgICwgbV9kZWNvZGVy
KFRleHRSZXNvdXJjZURlY29kZXI6OmNyZWF0ZSgidGV4dC94c2wiKSkKIHsKICAgICAvLyBJdCdz
IFhNTCB3ZSB3YW50LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0Nh
Y2hlZFhTTFN0eWxlU2hlZXQuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRY
U0xTdHlsZVNoZWV0LmgKaW5kZXggMGNiZmI2NS4uMzY5OTIzYSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFhTTFN0eWxlU2hlZXQuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkWFNMU3R5bGVTaGVldC5oCkBAIC0zNyw3ICszNyw3
IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICNpZiBFTkFCTEUoWFNMVCkKICAgICBjbGFzcyBDYWNo
ZWRYU0xTdHlsZVNoZWV0IGZpbmFsIDogcHVibGljIENhY2hlZFJlc291cmNlIHsKICAgICBwdWJs
aWM6Ci0gICAgICAgIENhY2hlZFhTTFN0eWxlU2hlZXQoY29uc3QgUmVzb3VyY2VSZXF1ZXN0Jik7
CisgICAgICAgIENhY2hlZFhTTFN0eWxlU2hlZXQoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgU2Vz
c2lvbklEKTsKIAogICAgICAgICBjb25zdCBTdHJpbmcmIHNoZWV0KCkgY29uc3QgeyByZXR1cm4g
bV9zaGVldDsgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvTWVt
b3J5Q2FjaGUuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL01lbW9yeUNhY2hlLmNw
cAppbmRleCBjYzZhMjI1Li42MjY1ZGYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvY2FjaGUvTWVtb3J5Q2FjaGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNo
ZS9NZW1vcnlDYWNoZS5jcHAKQEAgLTgwLDYgKzgwLDE3IEBAIE1lbW9yeUNhY2hlOjpNZW1vcnlD
YWNoZSgpCiB7CiB9CiAKK01lbW9yeUNhY2hlOjpDYWNoZWRSZXNvdXJjZU1hcCYgTWVtb3J5Q2Fj
aGU6OmdldFNlc3Npb25NYXAoU2Vzc2lvbklEIHNlc3Npb25JRCkKK3sKKyAgICBBU1NFUlQoc2Vz
c2lvbklELmlzVmFsaWQoKSk7CisgICAgQ2FjaGVkUmVzb3VyY2VNYXAqIG1hcCA9IG1fc2Vzc2lv
blJlc291cmNlcy5nZXQoc2Vzc2lvbklEKTsKKyAgICBpZiAoIW1hcCkgeworICAgICAgICBtX3Nl
c3Npb25SZXNvdXJjZXMuc2V0KHNlc3Npb25JRCwgc3RkOjptYWtlX3VuaXF1ZTxDYWNoZWRSZXNv
dXJjZU1hcD4oKSk7CisgICAgICAgIG1hcCA9IG1fc2Vzc2lvblJlc291cmNlcy5nZXQoc2Vzc2lv
bklEKTsKKyAgICB9CisgICAgcmV0dXJuICptYXA7Cit9CisKIFVSTCBNZW1vcnlDYWNoZTo6cmVt
b3ZlRnJhZ21lbnRJZGVudGlmaWVySWZOZWVkZWQoY29uc3QgVVJMJiBvcmlnaW5hbFVSTCkKIHsK
ICAgICBpZiAoIW9yaWdpbmFsVVJMLmhhc0ZyYWdtZW50SWRlbnRpZmllcigpKQpAQCAtMTAxLDE1
ICsxMTIsMTYgQEAgYm9vbCBNZW1vcnlDYWNoZTo6YWRkKENhY2hlZFJlc291cmNlKiByZXNvdXJj
ZSkKIAogICAgIEFTU0VSVChXVEY6OmlzTWFpblRocmVhZCgpKTsKIAorICAgIENhY2hlZFJlc291
cmNlTWFwJiByZXNvdXJjZXMgPSBnZXRTZXNzaW9uTWFwKHJlc291cmNlLT5zZXNzaW9uSUQoKSk7
CiAjaWYgRU5BQkxFKENBQ0hFX1BBUlRJVElPTklORykKLSAgICBDYWNoZWRSZXNvdXJjZUl0ZW0q
IG9yaWdpbk1hcCA9IG1fcmVzb3VyY2VzLmdldChyZXNvdXJjZS0+dXJsKCkpOworICAgIENhY2hl
ZFJlc291cmNlSXRlbSogb3JpZ2luTWFwID0gcmVzb3VyY2VzLmdldChyZXNvdXJjZS0+dXJsKCkp
OwogICAgIGlmICghb3JpZ2luTWFwKSB7CiAgICAgICAgIG9yaWdpbk1hcCA9IG5ldyBDYWNoZWRS
ZXNvdXJjZUl0ZW07Ci0gICAgICAgIG1fcmVzb3VyY2VzLnNldChyZXNvdXJjZS0+dXJsKCksIGFk
b3B0UHRyKG9yaWdpbk1hcCkpOworICAgICAgICByZXNvdXJjZXMuc2V0KHJlc291cmNlLT51cmwo
KSwgYWRvcHRQdHIob3JpZ2luTWFwKSk7CiAgICAgfQogICAgIG9yaWdpbk1hcC0+c2V0KHJlc291
cmNlLT5jYWNoZVBhcnRpdGlvbigpLCByZXNvdXJjZSk7CiAjZWxzZQotICAgIG1fcmVzb3VyY2Vz
LnNldChyZXNvdXJjZS0+dXJsKCksIHJlc291cmNlKTsKKyAgICByZXNvdXJjZXMuc2V0KHJlc291
cmNlLT51cmwoKSwgcmVzb3VyY2UpOwogI2VuZGlmCiAgICAgcmVzb3VyY2UtPnNldEluQ2FjaGUo
dHJ1ZSk7CiAgICAgCkBAIC0xMzQsMTcgKzE0NiwxOCBAQCB2b2lkIE1lbW9yeUNhY2hlOjpyZXZh
bGlkYXRpb25TdWNjZWVkZWQoQ2FjaGVkUmVzb3VyY2UqIHJldmFsaWRhdGluZ1Jlc291cmNlLCBj
bwogCiAgICAgZXZpY3QocmV2YWxpZGF0aW5nUmVzb3VyY2UpOwogCisgICAgQ2FjaGVkUmVzb3Vy
Y2VNYXAmIHJlc291cmNlcyA9IGdldFNlc3Npb25NYXAocmVzb3VyY2UtPnNlc3Npb25JRCgpKTsK
ICNpZiBFTkFCTEUoQ0FDSEVfUEFSVElUSU9OSU5HKQotICAgIEFTU0VSVCghbV9yZXNvdXJjZXMu
Z2V0KHJlc291cmNlLT51cmwoKSkgfHwgIW1fcmVzb3VyY2VzLmdldChyZXNvdXJjZS0+dXJsKCkp
LT5nZXQocmVzb3VyY2UtPmNhY2hlUGFydGl0aW9uKCkpKTsKLSAgICBDYWNoZWRSZXNvdXJjZUl0
ZW0qIG9yaWdpbk1hcCA9IG1fcmVzb3VyY2VzLmdldChyZXNvdXJjZS0+dXJsKCkpOworICAgIEFT
U0VSVCghcmVzb3VyY2VzLmdldChyZXNvdXJjZS0+dXJsKCkpIHx8ICFyZXNvdXJjZXMuZ2V0KHJl
c291cmNlLT51cmwoKSktPmdldChyZXNvdXJjZS0+Y2FjaGVQYXJ0aXRpb24oKSkpOworICAgIENh
Y2hlZFJlc291cmNlSXRlbSogb3JpZ2luTWFwID0gcmVzb3VyY2VzLmdldChyZXNvdXJjZS0+dXJs
KCkpOwogICAgIGlmICghb3JpZ2luTWFwKSB7CiAgICAgICAgIG9yaWdpbk1hcCA9IG5ldyBDYWNo
ZWRSZXNvdXJjZUl0ZW07Ci0gICAgICAgIG1fcmVzb3VyY2VzLnNldChyZXNvdXJjZS0+dXJsKCks
IGFkb3B0UHRyKG9yaWdpbk1hcCkpOworICAgICAgICByZXNvdXJjZXMuc2V0KHJlc291cmNlLT51
cmwoKSwgYWRvcHRQdHIob3JpZ2luTWFwKSk7CiAgICAgfQogICAgIG9yaWdpbk1hcC0+c2V0KHJl
c291cmNlLT5jYWNoZVBhcnRpdGlvbigpLCByZXNvdXJjZSk7CiAjZWxzZQotICAgIEFTU0VSVCgh
bV9yZXNvdXJjZXMuZ2V0KHJlc291cmNlLT51cmwoKSkpOwotICAgIG1fcmVzb3VyY2VzLnNldChy
ZXNvdXJjZS0+dXJsKCksIHJlc291cmNlKTsKKyAgICBBU1NFUlQoIXJlc291cmNlcy5nZXQocmVz
b3VyY2UtPnVybCgpKSk7CisgICAgcmVzb3VyY2VzLnNldChyZXNvdXJjZS0+dXJsKCksIHJlc291
cmNlKTsKICNlbmRpZgogICAgIHJlc291cmNlLT5zZXRJbkNhY2hlKHRydWUpOwogICAgIHJlc291
cmNlLT51cGRhdGVSZXNwb25zZUFmdGVyUmV2YWxpZGF0aW9uKHJlc3BvbnNlKTsKQEAgLTE3MSwy
MCArMTg0LDMxIEBAIHZvaWQgTWVtb3J5Q2FjaGU6OnJldmFsaWRhdGlvbkZhaWxlZChDYWNoZWRS
ZXNvdXJjZSogcmV2YWxpZGF0aW5nUmVzb3VyY2UpCiAKIENhY2hlZFJlc291cmNlKiBNZW1vcnlD
YWNoZTo6cmVzb3VyY2VGb3JVUkwoY29uc3QgVVJMJiByZXNvdXJjZVVSTCkKIHsKLSAgICByZXR1
cm4gcmVzb3VyY2VGb3JSZXF1ZXN0KFJlc291cmNlUmVxdWVzdChyZXNvdXJjZVVSTCkpOworICAg
IHJldHVybiByZXNvdXJjZUZvclVSTChyZXNvdXJjZVVSTCwgU2Vzc2lvbklEOjpkZWZhdWx0U2Vz
c2lvbklEKCkpOwogfQogCi1DYWNoZWRSZXNvdXJjZSogTWVtb3J5Q2FjaGU6OnJlc291cmNlRm9y
UmVxdWVzdChjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QpCitDYWNoZWRSZXNvdXJjZSog
TWVtb3J5Q2FjaGU6OnJlc291cmNlRm9yVVJMKGNvbnN0IFVSTCYgcmVzb3VyY2VVUkwsIFNlc3Np
b25JRCBzZXNzaW9uSUQpCit7CisgICAgcmV0dXJuIHJlc291cmNlRm9yUmVxdWVzdChSZXNvdXJj
ZVJlcXVlc3QocmVzb3VyY2VVUkwpLCBzZXNzaW9uSUQpOworfQorCitDYWNoZWRSZXNvdXJjZSog
TWVtb3J5Q2FjaGU6OnJlc291cmNlRm9yUmVxdWVzdChjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJl
cXVlc3QsIFNlc3Npb25JRCBzZXNzaW9uSUQpCit7CisgICAgcmV0dXJuIHJlc291cmNlRm9yUmVx
dWVzdEltcGwocmVxdWVzdCwgZ2V0U2Vzc2lvbk1hcChzZXNzaW9uSUQpKTsKK30KKworQ2FjaGVk
UmVzb3VyY2UqIE1lbW9yeUNhY2hlOjpyZXNvdXJjZUZvclJlcXVlc3RJbXBsKGNvbnN0IFJlc291
cmNlUmVxdWVzdCYgcmVxdWVzdCwgQ2FjaGVkUmVzb3VyY2VNYXAmIHJlc291cmNlcykKIHsKICAg
ICBBU1NFUlQoV1RGOjppc01haW5UaHJlYWQoKSk7CiAgICAgVVJMIHVybCA9IHJlbW92ZUZyYWdt
ZW50SWRlbnRpZmllcklmTmVlZGVkKHJlcXVlc3QudXJsKCkpOworCiAjaWYgRU5BQkxFKENBQ0hF
X1BBUlRJVElPTklORykKLSAgICBDYWNoZWRSZXNvdXJjZUl0ZW0qIGl0ZW0gPSBtX3Jlc291cmNl
cy5nZXQodXJsKTsKKyAgICBDYWNoZWRSZXNvdXJjZUl0ZW0qIGl0ZW0gPSByZXNvdXJjZXMuZ2V0
KHVybCk7CiAgICAgQ2FjaGVkUmVzb3VyY2UqIHJlc291cmNlID0gMDsKICAgICBpZiAoaXRlbSkK
ICAgICAgICAgcmVzb3VyY2UgPSBpdGVtLT5nZXQocmVxdWVzdC5jYWNoZVBhcnRpdGlvbigpKTsK
ICNlbHNlCi0gICAgQ2FjaGVkUmVzb3VyY2UqIHJlc291cmNlID0gbV9yZXNvdXJjZXMuZ2V0KHVy
bCk7CisgICAgQ2FjaGVkUmVzb3VyY2UqIHJlc291cmNlID0gcmVzb3VyY2VzLmdldCh1cmwpOwog
I2VuZGlmCiAgICAgYm9vbCB3YXNQdXJnZWFibGUgPSBNZW1vcnlDYWNoZTo6c2hvdWxkTWFrZVJl
c291cmNlUHVyZ2VhYmxlT25FdmljdGlvbigpICYmIHJlc291cmNlICYmIHJlc291cmNlLT5pc1B1
cmdlYWJsZSgpOwogICAgIGlmIChyZXNvdXJjZSAmJiAhcmVzb3VyY2UtPm1ha2VQdXJnZWFibGUo
ZmFsc2UpKSB7CkBAIC0yMjUsMTMgKzI0OSwxNCBAQCBzdGF0aWMgQ2FjaGVkSW1hZ2VDbGllbnQm
IGR1bW15Q2FjaGVkSW1hZ2VDbGllbnQoKQogYm9vbCBNZW1vcnlDYWNoZTo6YWRkSW1hZ2VUb0Nh
Y2hlKE5hdGl2ZUltYWdlUHRyIGltYWdlLCBjb25zdCBVUkwmIHVybCwgY29uc3QgU3RyaW5nJiBj
YWNoZVBhcnRpdGlvbikKIHsKICAgICBBU1NFUlQoaW1hZ2UpOworICAgIFNlc3Npb25JRCBzZXNz
aW9uSUQgPSBTZXNzaW9uSUQ6OmRlZmF1bHRTZXNzaW9uSUQoKTsKICAgICByZW1vdmVJbWFnZUZy
b21DYWNoZSh1cmwsIGNhY2hlUGFydGl0aW9uKTsgLy8gUmVtb3ZlIGNhY2hlIGVudHJ5IGlmIGl0
IGFscmVhZHkgZXhpc3RzLgogCiAgICAgUmVmUHRyPEJpdG1hcEltYWdlPiBiaXRtYXBJbWFnZSA9
IEJpdG1hcEltYWdlOjpjcmVhdGUoaW1hZ2UsIG51bGxwdHIpOwogICAgIGlmICghYml0bWFwSW1h
Z2UpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIHN0ZDo6dW5pcXVlX3B0cjxDYWNoZWRJ
bWFnZT4gY2FjaGVkSW1hZ2UgPSBzdGQ6Om1ha2VfdW5pcXVlPENhY2hlZEltYWdlPih1cmwsIGJp
dG1hcEltYWdlLmdldCgpLCBDYWNoZWRJbWFnZTo6TWFudWFsbHlDYWNoZWQpOworICAgIHN0ZDo6
dW5pcXVlX3B0cjxDYWNoZWRJbWFnZT4gY2FjaGVkSW1hZ2UgPSBzdGQ6Om1ha2VfdW5pcXVlPENh
Y2hlZEltYWdlPih1cmwsIGJpdG1hcEltYWdlLmdldCgpLCBDYWNoZWRJbWFnZTo6TWFudWFsbHlD
YWNoZWQsIHNlc3Npb25JRCk7CiAKICAgICAvLyBBY3R1YWwgcmVsZWFzZSBvZiB0aGUgQ0dJbWFn
ZVJlZiBpcyBkb25lIGluIEJpdG1hcEltYWdlLgogICAgIENGUmV0YWluKGltYWdlKTsKQEAgLTI0
MCwyMSArMjY1LDIxIEBAIGJvb2wgTWVtb3J5Q2FjaGU6OmFkZEltYWdlVG9DYWNoZShOYXRpdmVJ
bWFnZVB0ciBpbWFnZSwgY29uc3QgVVJMJiB1cmwsIGNvbnN0IFN0CiAjaWYgRU5BQkxFKENBQ0hF
X1BBUlRJVElPTklORykKICAgICBjYWNoZWRJbWFnZS0+cmVzb3VyY2VSZXF1ZXN0KCkuc2V0Q2Fj
aGVQYXJ0aXRpb24oY2FjaGVQYXJ0aXRpb24pOwogI2VuZGlmCi0gICAgYWRkKGNhY2hlZEltYWdl
LnJlbGVhc2UoKSk7CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKIHZvaWQgTWVtb3J5Q2FjaGU6OnJl
bW92ZUltYWdlRnJvbUNhY2hlKGNvbnN0IFVSTCYgdXJsLCBjb25zdCBTdHJpbmcmIGNhY2hlUGFy
dGl0aW9uKQogeworICAgIENhY2hlZFJlc291cmNlTWFwJiByZXNvdXJjZXMgPSBnZXRTZXNzaW9u
TWFwKFNlc3Npb25JRDo6ZGVmYXVsdFNlc3Npb25JRCgpKTsKICNpZiBFTkFCTEUoQ0FDSEVfUEFS
VElUSU9OSU5HKQogICAgIENhY2hlZFJlc291cmNlKiByZXNvdXJjZTsKLSAgICBpZiAoQ2FjaGVk
UmVzb3VyY2VJdGVtKiBpdGVtID0gbV9yZXNvdXJjZXMuZ2V0KHVybCkpCisgICAgaWYgKENhY2hl
ZFJlc291cmNlSXRlbSogaXRlbSA9IHJlc291cmNlcy5nZXQodXJsKSkKICAgICAgICAgcmVzb3Vy
Y2UgPSBpdGVtLT5nZXQoUmVzb3VyY2VSZXF1ZXN0OjpwYXJ0aXRpb25OYW1lKGNhY2hlUGFydGl0
aW9uKSk7CiAgICAgZWxzZQogICAgICAgICByZXNvdXJjZSA9IG51bGxwdHI7CiAjZWxzZQogICAg
IFVOVVNFRF9QQVJBTShjYWNoZVBhcnRpdGlvbik7Ci0gICAgQ2FjaGVkUmVzb3VyY2UqIHJlc291
cmNlID0gbV9yZXNvdXJjZXMuZ2V0KHVybCk7CisgICAgQ2FjaGVkUmVzb3VyY2UqIHJlc291cmNl
ID0gcmVzb3VyY2VzLmdldCh1cmwpOwogI2VuZGlmCiAgICAgaWYgKCFyZXNvdXJjZSkKICAgICAg
ICAgcmV0dXJuOwpAQCAtNTIyLDE3ICs1NDcsMTggQEAgdm9pZCBNZW1vcnlDYWNoZTo6ZXZpY3Qo
Q2FjaGVkUmVzb3VyY2UqIHJlc291cmNlKQogICAgIExPRyhSZXNvdXJjZUxvYWRpbmcsICJFdmlj
dGluZyByZXNvdXJjZSAlcCBmb3IgJyVzJyBmcm9tIGNhY2hlIiwgcmVzb3VyY2UsIHJlc291cmNl
LT51cmwoKS5zdHJpbmcoKS5sYXRpbjEoKS5kYXRhKCkpOwogICAgIC8vIFRoZSByZXNvdXJjZSBt
YXkgaGF2ZSBhbHJlYWR5IGJlZW4gcmVtb3ZlZCBieSBzb21lb25lIG90aGVyIHRoYW4gb3VyIGNh
bGxlciwKICAgICAvLyB3aG8gbmVlZGVkIGEgZnJlc2ggY29weSBmb3IgYSByZWxvYWQuIFNlZSA8
aHR0cDovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI0NzkjYzY+LgorICAgIENh
Y2hlZFJlc291cmNlTWFwJiByZXNvdXJjZXMgPSBnZXRTZXNzaW9uTWFwKHJlc291cmNlLT5zZXNz
aW9uSUQoKSk7CiAgICAgaWYgKHJlc291cmNlLT5pbkNhY2hlKCkpIHsKICAgICAgICAgLy8gUmVt
b3ZlIGZyb20gdGhlIHJlc291cmNlIG1hcC4KICNpZiBFTkFCTEUoQ0FDSEVfUEFSVElUSU9OSU5H
KQotICAgICAgICBDYWNoZWRSZXNvdXJjZUl0ZW0qIGl0ZW0gPSBtX3Jlc291cmNlcy5nZXQocmVz
b3VyY2UtPnVybCgpKTsKKyAgICAgICAgQ2FjaGVkUmVzb3VyY2VJdGVtKiBpdGVtID0gcmVzb3Vy
Y2VzLmdldChyZXNvdXJjZS0+dXJsKCkpOwogICAgICAgICBpZiAoaXRlbSkgewogICAgICAgICAg
ICAgaXRlbS0+cmVtb3ZlKHJlc291cmNlLT5jYWNoZVBhcnRpdGlvbigpKTsKICAgICAgICAgICAg
IGlmICghaXRlbS0+c2l6ZSgpKQotICAgICAgICAgICAgICAgIG1fcmVzb3VyY2VzLnJlbW92ZShy
ZXNvdXJjZS0+dXJsKCkpOworICAgICAgICAgICAgICAgIHJlc291cmNlcy5yZW1vdmUocmVzb3Vy
Y2UtPnVybCgpKTsKICAgICAgICAgfQogI2Vsc2UKLSAgICAgICAgbV9yZXNvdXJjZXMucmVtb3Zl
KHJlc291cmNlLT51cmwoKSk7CisgICAgICAgIHJlc291cmNlcy5yZW1vdmUocmVzb3VyY2UtPnVy
bCgpKTsKICNlbmRpZgogICAgICAgICByZXNvdXJjZS0+c2V0SW5DYWNoZShmYWxzZSk7CiAKQEAg
LTU0Nyw5ICs1NzMsOSBAQCB2b2lkIE1lbW9yeUNhY2hlOjpldmljdChDYWNoZWRSZXNvdXJjZSog
cmVzb3VyY2UpCiAgICAgICAgICAgICBhZGp1c3RTaXplKHJlc291cmNlLT5oYXNDbGllbnRzKCks
IC1zdGF0aWNfY2FzdDxpbnQ+KHJlc291cmNlLT5zaXplKCkpKTsKICAgICB9IGVsc2UKICNpZiBF
TkFCTEUoQ0FDSEVfUEFSVElUSU9OSU5HKQotICAgICAgICBBU1NFUlQoIW1fcmVzb3VyY2VzLmdl
dChyZXNvdXJjZS0+dXJsKCkpIHx8IG1fcmVzb3VyY2VzLmdldChyZXNvdXJjZS0+dXJsKCkpLT5n
ZXQocmVzb3VyY2UtPmNhY2hlUGFydGl0aW9uKCkpICE9IHJlc291cmNlKTsKKyAgICAgICAgQVNT
RVJUKCFyZXNvdXJjZXMuZ2V0KHJlc291cmNlLT51cmwoKSkgfHwgcmVzb3VyY2VzLmdldChyZXNv
dXJjZS0+dXJsKCkpLT5nZXQocmVzb3VyY2UtPmNhY2hlUGFydGl0aW9uKCkpICE9IHJlc291cmNl
KTsKICNlbHNlCi0gICAgICAgIEFTU0VSVChtX3Jlc291cmNlcy5nZXQocmVzb3VyY2UtPnVybCgp
KSAhPSByZXNvdXJjZSk7CisgICAgICAgIEFTU0VSVChyZXNvdXJjZXMuZ2V0KHJlc291cmNlLT51
cmwoKSkgIT0gcmVzb3VyY2UpOwogI2VuZGlmCiAKICAgICByZXNvdXJjZS0+ZGVsZXRlSWZQb3Nz
aWJsZSgpOwpAQCAtNjY5LDMxICs2OTUsMzMgQEAgdm9pZCBNZW1vcnlDYWNoZTo6cmVtb3ZlUmVz
b3VyY2VzV2l0aE9yaWdpbihTZWN1cml0eU9yaWdpbiogb3JpZ2luKQogewogICAgIFZlY3RvcjxD
YWNoZWRSZXNvdXJjZSo+IHJlc291cmNlc1dpdGhPcmlnaW47CiAKLSAgICBDYWNoZWRSZXNvdXJj
ZU1hcDo6aXRlcmF0b3IgZSA9IG1fcmVzb3VyY2VzLmVuZCgpOworICAgIGZvciAoYXV0byYgcmVz
b3VyY2VzIDogbV9zZXNzaW9uUmVzb3VyY2VzKSB7CisgICAgICAgIENhY2hlZFJlc291cmNlTWFw
OjppdGVyYXRvciBlID0gcmVzb3VyY2VzLnZhbHVlLT5lbmQoKTsKICNpZiBFTkFCTEUoQ0FDSEVf
UEFSVElUSU9OSU5HKQotICAgIFN0cmluZyBvcmlnaW5QYXJ0aXRpb24gPSBSZXNvdXJjZVJlcXVl
c3Q6OnBhcnRpdGlvbk5hbWUob3JpZ2luLT5ob3N0KCkpOworICAgICAgICBTdHJpbmcgb3JpZ2lu
UGFydGl0aW9uID0gUmVzb3VyY2VSZXF1ZXN0OjpwYXJ0aXRpb25OYW1lKG9yaWdpbi0+aG9zdCgp
KTsKICNlbmRpZgogCi0gICAgZm9yIChDYWNoZWRSZXNvdXJjZU1hcDo6aXRlcmF0b3IgaXQgPSBt
X3Jlc291cmNlcy5iZWdpbigpOyBpdCAhPSBlOyArK2l0KSB7CisgICAgICAgIGZvciAoQ2FjaGVk
UmVzb3VyY2VNYXA6Oml0ZXJhdG9yIGl0ID0gcmVzb3VyY2VzLnZhbHVlLT5iZWdpbigpOyBpdCAh
PSBlOyArK2l0KSB7CiAjaWYgRU5BQkxFKENBQ0hFX1BBUlRJVElPTklORykKLSAgICAgICAgZm9y
IChDYWNoZWRSZXNvdXJjZUl0ZW06Oml0ZXJhdG9yIGl0ZW1JdGVyYXRvciA9IGl0LT52YWx1ZS0+
YmVnaW4oKTsgaXRlbUl0ZXJhdG9yICE9IGl0LT52YWx1ZS0+ZW5kKCk7ICsraXRlbUl0ZXJhdG9y
KSB7Ci0gICAgICAgICAgICBDYWNoZWRSZXNvdXJjZSogcmVzb3VyY2UgPSBpdGVtSXRlcmF0b3It
PnZhbHVlOwotICAgICAgICAgICAgU3RyaW5nIHBhcnRpdGlvbiA9IGl0ZW1JdGVyYXRvci0+a2V5
OwotICAgICAgICAgICAgaWYgKHBhcnRpdGlvbiA9PSBvcmlnaW5QYXJ0aXRpb24pIHsKLSAgICAg
ICAgICAgICAgICByZXNvdXJjZXNXaXRoT3JpZ2luLmFwcGVuZChyZXNvdXJjZSk7Ci0gICAgICAg
ICAgICAgICAgY29udGludWU7Ci0gICAgICAgICAgICB9CisgICAgICAgICAgICBmb3IgKENhY2hl
ZFJlc291cmNlSXRlbTo6aXRlcmF0b3IgaXRlbUl0ZXJhdG9yID0gaXQtPnZhbHVlLT5iZWdpbigp
OyBpdGVtSXRlcmF0b3IgIT0gaXQtPnZhbHVlLT5lbmQoKTsgKytpdGVtSXRlcmF0b3IpIHsKKyAg
ICAgICAgICAgICAgICBDYWNoZWRSZXNvdXJjZSogcmVzb3VyY2UgPSBpdGVtSXRlcmF0b3ItPnZh
bHVlOworICAgICAgICAgICAgICAgIFN0cmluZyBwYXJ0aXRpb24gPSBpdGVtSXRlcmF0b3ItPmtl
eTsKKyAgICAgICAgICAgICAgICBpZiAocGFydGl0aW9uID09IG9yaWdpblBhcnRpdGlvbikgewor
ICAgICAgICAgICAgICAgICAgICByZXNvdXJjZXNXaXRoT3JpZ2luLmFwcGVuZChyZXNvdXJjZSk7
CisgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgICAgIH0KICNlbHNl
Ci0gICAgICAgICAgICBDYWNoZWRSZXNvdXJjZSogcmVzb3VyY2UgPSBpdC0+dmFsdWU7CisgICAg
ICAgICAgICAgICAgQ2FjaGVkUmVzb3VyY2UqIHJlc291cmNlID0gaXQtPnZhbHVlOwogI2VuZGlm
Ci0gICAgICAgICAgICBSZWZQdHI8U2VjdXJpdHlPcmlnaW4+IHJlc291cmNlT3JpZ2luID0gU2Vj
dXJpdHlPcmlnaW46OmNyZWF0ZUZyb21TdHJpbmcocmVzb3VyY2UtPnVybCgpKTsKLSAgICAgICAg
ICAgIGlmICghcmVzb3VyY2VPcmlnaW4pCi0gICAgICAgICAgICAgICAgY29udGludWU7Ci0gICAg
ICAgICAgICBpZiAocmVzb3VyY2VPcmlnaW4tPmVxdWFsKG9yaWdpbikpCi0gICAgICAgICAgICAg
ICAgcmVzb3VyY2VzV2l0aE9yaWdpbi5hcHBlbmQocmVzb3VyY2UpOworICAgICAgICAgICAgICAg
IFJlZlB0cjxTZWN1cml0eU9yaWdpbj4gcmVzb3VyY2VPcmlnaW4gPSBTZWN1cml0eU9yaWdpbjo6
Y3JlYXRlRnJvbVN0cmluZyhyZXNvdXJjZS0+dXJsKCkpOworICAgICAgICAgICAgICAgIGlmICgh
cmVzb3VyY2VPcmlnaW4pCisgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAg
ICAgICAgIGlmIChyZXNvdXJjZU9yaWdpbi0+ZXF1YWwob3JpZ2luKSkKKyAgICAgICAgICAgICAg
ICAgICAgcmVzb3VyY2VzV2l0aE9yaWdpbi5hcHBlbmQocmVzb3VyY2UpOwogI2lmIEVOQUJMRShD
QUNIRV9QQVJUSVRJT05JTkcpCi0gICAgICAgIH0KKyAgICAgICAgICAgIH0KICNlbmRpZgorICAg
ICAgICB9CiAgICAgfQogCiAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCByZXNvdXJjZXNXaXRo
T3JpZ2luLnNpemUoKTsgKytpKQpAQCAtNzA1LDE2ICs3MzMsMTggQEAgdm9pZCBNZW1vcnlDYWNo
ZTo6Z2V0T3JpZ2luc1dpdGhDYWNoZShTZWN1cml0eU9yaWdpblNldCYgb3JpZ2lucykKICNpZiBF
TkFCTEUoQ0FDSEVfUEFSVElUSU9OSU5HKQogICAgIERFRklORV9TVEFUSUNfTE9DQUwoU3RyaW5n
LCBodHRwU3RyaW5nLCAoImh0dHAiKSk7CiAjZW5kaWYKLSAgICBDYWNoZWRSZXNvdXJjZU1hcDo6
aXRlcmF0b3IgZSA9IG1fcmVzb3VyY2VzLmVuZCgpOwotICAgIGZvciAoQ2FjaGVkUmVzb3VyY2VN
YXA6Oml0ZXJhdG9yIGl0ID0gbV9yZXNvdXJjZXMuYmVnaW4oKTsgaXQgIT0gZTsgKytpdCkgewor
ICAgIGZvciAoYXV0byYgcmVzb3VyY2VzIDogbV9zZXNzaW9uUmVzb3VyY2VzKSB7CisgICAgICAg
IENhY2hlZFJlc291cmNlTWFwOjppdGVyYXRvciBlID0gcmVzb3VyY2VzLnZhbHVlLT5lbmQoKTsK
KyAgICAgICAgZm9yIChDYWNoZWRSZXNvdXJjZU1hcDo6aXRlcmF0b3IgaXQgPSByZXNvdXJjZXMu
dmFsdWUtPmJlZ2luKCk7IGl0ICE9IGU7ICsraXQpIHsKICNpZiBFTkFCTEUoQ0FDSEVfUEFSVElU
SU9OSU5HKQotICAgICAgICBpZiAoaXQtPnZhbHVlLT5iZWdpbigpLT5rZXkgPT0gZW1wdHlTdHJp
bmcoKSkKLSAgICAgICAgICAgIG9yaWdpbnMuYWRkKFNlY3VyaXR5T3JpZ2luOjpjcmVhdGVGcm9t
U3RyaW5nKGl0LT52YWx1ZS0+YmVnaW4oKS0+dmFsdWUtPnVybCgpKSk7Ci0gICAgICAgIGVsc2UK
LSAgICAgICAgICAgIG9yaWdpbnMuYWRkKFNlY3VyaXR5T3JpZ2luOjpjcmVhdGUoaHR0cFN0cmlu
ZywgaXQtPnZhbHVlLT5iZWdpbigpLT5rZXksIDApKTsKKyAgICAgICAgICAgIGlmIChpdC0+dmFs
dWUtPmJlZ2luKCktPmtleSA9PSBlbXB0eVN0cmluZygpKQorICAgICAgICAgICAgICAgIG9yaWdp
bnMuYWRkKFNlY3VyaXR5T3JpZ2luOjpjcmVhdGVGcm9tU3RyaW5nKGl0LT52YWx1ZS0+YmVnaW4o
KS0+dmFsdWUtPnVybCgpKSk7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgb3Jp
Z2lucy5hZGQoU2VjdXJpdHlPcmlnaW46OmNyZWF0ZShodHRwU3RyaW5nLCBpdC0+dmFsdWUtPmJl
Z2luKCktPmtleSwgMCkpOwogI2Vsc2UKLSAgICAgICAgb3JpZ2lucy5hZGQoU2VjdXJpdHlPcmln
aW46OmNyZWF0ZUZyb21TdHJpbmcoaXQtPnZhbHVlLT51cmwoKSkpOworICAgICAgICAgICAgb3Jp
Z2lucy5hZGQoU2VjdXJpdHlPcmlnaW46OmNyZWF0ZUZyb21TdHJpbmcoaXQtPnZhbHVlLT51cmwo
KSkpOwogI2VuZGlmCisgICAgICAgIH0KICAgICB9CiB9CiAKQEAgLTgwOCwzMSArODM4LDU0IEBA
IHZvaWQgTWVtb3J5Q2FjaGU6OmFkanVzdFNpemUoYm9vbCBsaXZlLCBpbnQgZGVsdGEpCiAgICAg
fQogfQogCi12b2lkIE1lbW9yeUNhY2hlOjpyZW1vdmVVcmxGcm9tQ2FjaGUoU2NyaXB0RXhlY3V0
aW9uQ29udGV4dCogY29udGV4dCwgY29uc3QgU3RyaW5nJiB1cmxTdHJpbmcpCit2b2lkIE1lbW9y
eUNhY2hlOjpyZW1vdmVVcmxGcm9tQ2FjaGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4
dCwgY29uc3QgU3RyaW5nJiB1cmxTdHJpbmcsIFNlc3Npb25JRCBzZXNzaW9uSUQpCiB7Ci0gICAg
cmVtb3ZlUmVxdWVzdEZyb21DYWNoZShjb250ZXh0LCBSZXNvdXJjZVJlcXVlc3QodXJsU3RyaW5n
KSk7CisgICAgcmVtb3ZlUmVxdWVzdEZyb21DYWNoZShjb250ZXh0LCBSZXNvdXJjZVJlcXVlc3Qo
dXJsU3RyaW5nKSwgc2Vzc2lvbklEKTsKIH0KIAotdm9pZCBNZW1vcnlDYWNoZTo6cmVtb3ZlUmVx
dWVzdEZyb21DYWNoZShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBjb25zdCBSZXNv
dXJjZVJlcXVlc3QmIHJlcXVlc3QpCit2b2lkIE1lbW9yeUNhY2hlOjpyZW1vdmVSZXF1ZXN0RnJv
bUNhY2hlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIGNvbnN0IFJlc291cmNlUmVx
dWVzdCYgcmVxdWVzdCwgU2Vzc2lvbklEIHNlc3Npb25JRCkKIHsKICAgICBpZiAoY29udGV4dC0+
aXNXb3JrZXJHbG9iYWxTY29wZSgpKSB7Ci0gICAgICAgIHRvV29ya2VyR2xvYmFsU2NvcGUoY29u
dGV4dCktPnRocmVhZCgpLndvcmtlckxvYWRlclByb3h5KCkucG9zdFRhc2tUb0xvYWRlcihjcmVh
dGVDYWxsYmFja1Rhc2soJmNyb3NzVGhyZWFkUmVtb3ZlUmVxdWVzdEZyb21DYWNoZSwgcmVxdWVz
dCkpOworICAgICAgICB0b1dvcmtlckdsb2JhbFNjb3BlKGNvbnRleHQpLT50aHJlYWQoKS53b3Jr
ZXJMb2FkZXJQcm94eSgpLnBvc3RUYXNrVG9Mb2FkZXIoY3JlYXRlQ2FsbGJhY2tUYXNrKCZjcm9z
c1RocmVhZFJlbW92ZVJlcXVlc3RGcm9tQ2FjaGUsIHJlcXVlc3QsIHNlc3Npb25JRCkpOwogICAg
ICAgICByZXR1cm47CiAgICAgfQogCi0gICAgcmVtb3ZlUmVxdWVzdEZyb21DYWNoZUltcGwoY29u
dGV4dCwgcmVxdWVzdCk7CisgICAgcmVtb3ZlUmVxdWVzdEZyb21DYWNoZUltcGwoY29udGV4dCwg
cmVxdWVzdCwgc2Vzc2lvbklEKTsKIH0KIAotdm9pZCBNZW1vcnlDYWNoZTo6cmVtb3ZlUmVxdWVz
dEZyb21DYWNoZUltcGwoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIGNvbnN0IFJlc291cmNlUmVx
dWVzdCYgcmVxdWVzdCkKK3ZvaWQgTWVtb3J5Q2FjaGU6OnJlbW92ZVJlcXVlc3RGcm9tQ2FjaGVJ
bXBsKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVl
c3QsIFNlc3Npb25JRCBzZXNzaW9uSUQpCiB7Ci0gICAgaWYgKENhY2hlZFJlc291cmNlKiByZXNv
dXJjZSA9IG1lbW9yeUNhY2hlKCktPnJlc291cmNlRm9yUmVxdWVzdChyZXF1ZXN0KSkKKyAgICBp
ZiAoQ2FjaGVkUmVzb3VyY2UqIHJlc291cmNlID0gbWVtb3J5Q2FjaGUoKS0+cmVzb3VyY2VGb3JS
ZXF1ZXN0KHJlcXVlc3QsIHNlc3Npb25JRCkpCiAgICAgICAgIG1lbW9yeUNhY2hlKCktPnJlbW92
ZShyZXNvdXJjZSk7CiB9CiAKLXZvaWQgTWVtb3J5Q2FjaGU6OmNyb3NzVGhyZWFkUmVtb3ZlUmVx
dWVzdEZyb21DYWNoZShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBQYXNzT3duUHRy
PFdlYkNvcmU6OkNyb3NzVGhyZWFkUmVzb3VyY2VSZXF1ZXN0RGF0YT4gcmVxdWVzdERhdGEpCit2
b2lkIE1lbW9yeUNhY2hlOjpyZW1vdmVSZXF1ZXN0RnJvbVNlc3Npb25DYWNoZXMoU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCogY29udGV4dCwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0KQor
eworICAgIGlmIChjb250ZXh0LT5pc1dvcmtlckdsb2JhbFNjb3BlKCkpIHsKKyAgICAgICAgdG9X
b3JrZXJHbG9iYWxTY29wZShjb250ZXh0KS0+dGhyZWFkKCkud29ya2VyTG9hZGVyUHJveHkoKS5w
b3N0VGFza1RvTG9hZGVyKGNyZWF0ZUNhbGxiYWNrVGFzaygmY3Jvc3NUaHJlYWRSZW1vdmVSZXF1
ZXN0RnJvbVNlc3Npb25DYWNoZXMsIHJlcXVlc3QpKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0K
KyAgICByZW1vdmVSZXF1ZXN0RnJvbVNlc3Npb25DYWNoZXNJbXBsKGNvbnRleHQsIHJlcXVlc3Qp
OworfQorCit2b2lkIE1lbW9yeUNhY2hlOjpyZW1vdmVSZXF1ZXN0RnJvbVNlc3Npb25DYWNoZXNJ
bXBsKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVl
c3QpCit7CisgICAgZm9yIChhdXRvJiByZXNvdXJjZXMgOiBtZW1vcnlDYWNoZSgpLT5tX3Nlc3Np
b25SZXNvdXJjZXMpIHsKKyAgICAgICAgaWYgKENhY2hlZFJlc291cmNlKiByZXNvdXJjZSA9IG1l
bW9yeUNhY2hlKCktPnJlc291cmNlRm9yUmVxdWVzdEltcGwocmVxdWVzdCwgKnJlc291cmNlcy52
YWx1ZSkpCisgICAgICAgIG1lbW9yeUNhY2hlKCktPnJlbW92ZShyZXNvdXJjZSk7CisgICAgfQor
fQorCit2b2lkIE1lbW9yeUNhY2hlOjpjcm9zc1RocmVhZFJlbW92ZVJlcXVlc3RGcm9tQ2FjaGUo
U2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgUGFzc093blB0cjxXZWJDb3JlOjpDcm9z
c1RocmVhZFJlc291cmNlUmVxdWVzdERhdGE+IHJlcXVlc3REYXRhLCBTZXNzaW9uSUQgc2Vzc2lv
bklEKQogewogICAgIE93blB0cjxSZXNvdXJjZVJlcXVlc3Q+IHJlcXVlc3QoUmVzb3VyY2VSZXF1
ZXN0OjphZG9wdChyZXF1ZXN0RGF0YSkpOwotICAgIE1lbW9yeUNhY2hlOjpyZW1vdmVSZXF1ZXN0
RnJvbUNhY2hlSW1wbChjb250ZXh0LCAqcmVxdWVzdCk7CisgICAgTWVtb3J5Q2FjaGU6OnJlbW92
ZVJlcXVlc3RGcm9tQ2FjaGVJbXBsKGNvbnRleHQsICpyZXF1ZXN0LCBzZXNzaW9uSUQpOworfQor
Cit2b2lkIE1lbW9yeUNhY2hlOjpjcm9zc1RocmVhZFJlbW92ZVJlcXVlc3RGcm9tU2Vzc2lvbkNh
Y2hlcyhTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBQYXNzT3duUHRyPFdlYkNvcmU6
OkNyb3NzVGhyZWFkUmVzb3VyY2VSZXF1ZXN0RGF0YT4gcmVxdWVzdERhdGEpCit7CisgICAgT3du
UHRyPFJlc291cmNlUmVxdWVzdD4gcmVxdWVzdChSZXNvdXJjZVJlcXVlc3Q6OmFkb3B0KHJlcXVl
c3REYXRhKSk7CisgICAgTWVtb3J5Q2FjaGU6OnJlbW92ZVJlcXVlc3RGcm9tU2Vzc2lvbkNhY2hl
cyhjb250ZXh0LCAqcmVxdWVzdCk7CiB9CiAKIHZvaWQgTWVtb3J5Q2FjaGU6OlR5cGVTdGF0aXN0
aWM6OmFkZFJlc291cmNlKENhY2hlZFJlc291cmNlKiBvKQpAQCAtODU1LDM4ICs5MDgsNDEgQEAg
dm9pZCBNZW1vcnlDYWNoZTo6VHlwZVN0YXRpc3RpYzo6YWRkUmVzb3VyY2UoQ2FjaGVkUmVzb3Vy
Y2UqIG8pCiBNZW1vcnlDYWNoZTo6U3RhdGlzdGljcyBNZW1vcnlDYWNoZTo6Z2V0U3RhdGlzdGlj
cygpCiB7CiAgICAgU3RhdGlzdGljcyBzdGF0czsKLSAgICBDYWNoZWRSZXNvdXJjZU1hcDo6aXRl
cmF0b3IgZSA9IG1fcmVzb3VyY2VzLmVuZCgpOwotICAgIGZvciAoQ2FjaGVkUmVzb3VyY2VNYXA6
Oml0ZXJhdG9yIGkgPSBtX3Jlc291cmNlcy5iZWdpbigpOyBpICE9IGU7ICsraSkgeworCisgICAg
Zm9yIChhdXRvJiByZXNvdXJjZXMgOiBtX3Nlc3Npb25SZXNvdXJjZXMpIHsKKyAgICAgICAgQ2Fj
aGVkUmVzb3VyY2VNYXA6Oml0ZXJhdG9yIGUgPSByZXNvdXJjZXMudmFsdWUtPmVuZCgpOworICAg
ICAgICBmb3IgKENhY2hlZFJlc291cmNlTWFwOjppdGVyYXRvciBpID0gcmVzb3VyY2VzLnZhbHVl
LT5iZWdpbigpOyBpICE9IGU7ICsraSkgewogI2lmIEVOQUJMRShDQUNIRV9QQVJUSVRJT05JTkcp
Ci0gICAgICAgIGZvciAoQ2FjaGVkUmVzb3VyY2VJdGVtOjppdGVyYXRvciBpdGVtSXRlcmF0b3Ig
PSBpLT52YWx1ZS0+YmVnaW4oKTsgaXRlbUl0ZXJhdG9yICE9IGktPnZhbHVlLT5lbmQoKTsgKytp
dGVtSXRlcmF0b3IpIHsKLSAgICAgICAgICAgIENhY2hlZFJlc291cmNlKiByZXNvdXJjZSA9IGl0
ZW1JdGVyYXRvci0+dmFsdWU7CisgICAgICAgICAgICBmb3IgKENhY2hlZFJlc291cmNlSXRlbTo6
aXRlcmF0b3IgaXRlbUl0ZXJhdG9yID0gaS0+dmFsdWUtPmJlZ2luKCk7IGl0ZW1JdGVyYXRvciAh
PSBpLT52YWx1ZS0+ZW5kKCk7ICsraXRlbUl0ZXJhdG9yKSB7CisgICAgICAgICAgICAgICAgQ2Fj
aGVkUmVzb3VyY2UqIHJlc291cmNlID0gaXRlbUl0ZXJhdG9yLT52YWx1ZTsKICNlbHNlCi0gICAg
ICAgICAgICBDYWNoZWRSZXNvdXJjZSogcmVzb3VyY2UgPSBpLT52YWx1ZTsKKyAgICAgICAgICAg
ICAgICBDYWNoZWRSZXNvdXJjZSogcmVzb3VyY2UgPSBpLT52YWx1ZTsKICNlbmRpZgotICAgICAg
ICAgICAgc3dpdGNoIChyZXNvdXJjZS0+dHlwZSgpKSB7Ci0gICAgICAgICAgICBjYXNlIENhY2hl
ZFJlc291cmNlOjpJbWFnZVJlc291cmNlOgotICAgICAgICAgICAgICAgIHN0YXRzLmltYWdlcy5h
ZGRSZXNvdXJjZShyZXNvdXJjZSk7Ci0gICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAg
ICBjYXNlIENhY2hlZFJlc291cmNlOjpDU1NTdHlsZVNoZWV0OgotICAgICAgICAgICAgICAgIHN0
YXRzLmNzc1N0eWxlU2hlZXRzLmFkZFJlc291cmNlKHJlc291cmNlKTsKLSAgICAgICAgICAgICAg
ICBicmVhazsKLSAgICAgICAgICAgIGNhc2UgQ2FjaGVkUmVzb3VyY2U6OlNjcmlwdDoKLSAgICAg
ICAgICAgICAgICBzdGF0cy5zY3JpcHRzLmFkZFJlc291cmNlKHJlc291cmNlKTsKLSAgICAgICAg
ICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICBzd2l0Y2ggKHJlc291cmNlLT50eXBlKCkp
IHsKKyAgICAgICAgICAgICAgICBjYXNlIENhY2hlZFJlc291cmNlOjpJbWFnZVJlc291cmNlOgor
ICAgICAgICAgICAgICAgICAgICBzdGF0cy5pbWFnZXMuYWRkUmVzb3VyY2UocmVzb3VyY2UpOwor
ICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICBjYXNlIENhY2hlZFJl
c291cmNlOjpDU1NTdHlsZVNoZWV0OgorICAgICAgICAgICAgICAgICAgICBzdGF0cy5jc3NTdHls
ZVNoZWV0cy5hZGRSZXNvdXJjZShyZXNvdXJjZSk7CisgICAgICAgICAgICAgICAgICAgIGJyZWFr
OworICAgICAgICAgICAgICAgIGNhc2UgQ2FjaGVkUmVzb3VyY2U6OlNjcmlwdDoKKyAgICAgICAg
ICAgICAgICAgICAgc3RhdHMuc2NyaXB0cy5hZGRSZXNvdXJjZShyZXNvdXJjZSk7CisgICAgICAg
ICAgICAgICAgICAgIGJyZWFrOwogI2lmIEVOQUJMRShYU0xUKQotICAgICAgICAgICAgY2FzZSBD
YWNoZWRSZXNvdXJjZTo6WFNMU3R5bGVTaGVldDoKLSAgICAgICAgICAgICAgICBzdGF0cy54c2xT
dHlsZVNoZWV0cy5hZGRSZXNvdXJjZShyZXNvdXJjZSk7Ci0gICAgICAgICAgICAgICAgYnJlYWs7
CisgICAgICAgICAgICAgICAgY2FzZSBDYWNoZWRSZXNvdXJjZTo6WFNMU3R5bGVTaGVldDoKKyAg
ICAgICAgICAgICAgICAgICAgc3RhdHMueHNsU3R5bGVTaGVldHMuYWRkUmVzb3VyY2UocmVzb3Vy
Y2UpOworICAgICAgICAgICAgICAgICAgICBicmVhazsKICNlbmRpZgotICAgICAgICAgICAgY2Fz
ZSBDYWNoZWRSZXNvdXJjZTo6Rm9udFJlc291cmNlOgotICAgICAgICAgICAgICAgIHN0YXRzLmZv
bnRzLmFkZFJlc291cmNlKHJlc291cmNlKTsKLSAgICAgICAgICAgICAgICBicmVhazsKLSAgICAg
ICAgICAgIGRlZmF1bHQ6Ci0gICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICB9Cisg
ICAgICAgICAgICAgICAgY2FzZSBDYWNoZWRSZXNvdXJjZTo6Rm9udFJlc291cmNlOgorICAgICAg
ICAgICAgICAgICAgICBzdGF0cy5mb250cy5hZGRSZXNvdXJjZShyZXNvdXJjZSk7CisgICAgICAg
ICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAg
ICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KICNpZiBFTkFCTEUoQ0FDSEVfUEFS
VElUSU9OSU5HKQotICAgICAgICB9CisgICAgICAgICAgICB9CiAjZW5kaWYKKyAgICAgICAgfQog
ICAgIH0KICAgICByZXR1cm4gc3RhdHM7CiB9CkBAIC04OTgsOCArOTU0LDExIEBAIHZvaWQgTWVt
b3J5Q2FjaGU6OnNldERpc2FibGVkKGJvb2wgZGlzYWJsZWQpCiAgICAgICAgIHJldHVybjsKIAog
ICAgIGZvciAoOzspIHsKLSAgICAgICAgQ2FjaGVkUmVzb3VyY2VNYXA6Oml0ZXJhdG9yIG91dGVy
SXRlcmF0b3IgPSBtX3Jlc291cmNlcy5iZWdpbigpOwotICAgICAgICBpZiAob3V0ZXJJdGVyYXRv
ciA9PSBtX3Jlc291cmNlcy5lbmQoKSkKKyAgICAgICAgU2Vzc2lvbkNhY2hlZFJlc291cmNlTWFw
OjppdGVyYXRvciBzZXNzaW9uSXRlcmF0b3IgPSBtX3Nlc3Npb25SZXNvdXJjZXMuYmVnaW4oKTsK
KyAgICAgICAgaWYgKHNlc3Npb25JdGVyYXRvciA9PSBtX3Nlc3Npb25SZXNvdXJjZXMuZW5kKCkp
CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgQ2FjaGVkUmVzb3VyY2VNYXA6Oml0ZXJhdG9y
IG91dGVySXRlcmF0b3IgPSBzZXNzaW9uSXRlcmF0b3ItPnZhbHVlLT5iZWdpbigpOworICAgICAg
ICBpZiAob3V0ZXJJdGVyYXRvciA9PSBzZXNzaW9uSXRlcmF0b3ItPnZhbHVlLT5lbmQoKSkKICAg
ICAgICAgICAgIGJyZWFrOwogI2lmIEVOQUJMRShDQUNIRV9QQVJUSVRJT05JTkcpCiAgICAgICAg
IENhY2hlZFJlc291cmNlSXRlbTo6aXRlcmF0b3IgaW5uZXJJdGVyYXRvciA9IG91dGVySXRlcmF0
b3ItPnZhbHVlLT5iZWdpbigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2Nh
Y2hlL01lbW9yeUNhY2hlLmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvTWVtb3J5Q2Fj
aGUuaAppbmRleCBjMDIzYTk3Li5jMjE4ZmU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvY2FjaGUvTWVtb3J5Q2FjaGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2Fj
aGUvTWVtb3J5Q2FjaGUuaApAQCAtMjcsNiArMjcsNyBAQAogCiAjaW5jbHVkZSAiTmF0aXZlSW1h
Z2VQdHIuaCIKICNpbmNsdWRlICJTZWN1cml0eU9yaWdpbkhhc2guaCIKKyNpbmNsdWRlICJTZXNz
aW9uSURIYXNoLmgiCiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KICNpbmNsdWRlIDx3dGYvSGFz
aFNldC5oPgogI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgpAQCAtODcsNiArODgsNyBAQCBw
dWJsaWM6CiAjZWxzZQogICAgIHR5cGVkZWYgSGFzaE1hcDxTdHJpbmcsIENhY2hlZFJlc291cmNl
Kj4gQ2FjaGVkUmVzb3VyY2VNYXA7CiAjZW5kaWYKKyAgICB0eXBlZGVmIEhhc2hNYXA8U2Vzc2lv
bklELCBzdGQ6OnVuaXF1ZV9wdHI8Q2FjaGVkUmVzb3VyY2VNYXA+PiBTZXNzaW9uQ2FjaGVkUmVz
b3VyY2VNYXA7CiAKICAgICBzdHJ1Y3QgTFJVTGlzdCB7CiAgICAgICAgIENhY2hlZFJlc291cmNl
KiBtX2hlYWQ7CkBAIC0xMTksOSArMTIxLDEwIEBAIHB1YmxpYzoKICAgICB9OwogCiAgICAgQ2Fj
aGVkUmVzb3VyY2UqIHJlc291cmNlRm9yVVJMKGNvbnN0IFVSTCYpOwotICAgIENhY2hlZFJlc291
cmNlKiByZXNvdXJjZUZvclJlcXVlc3QoY29uc3QgUmVzb3VyY2VSZXF1ZXN0Jik7Ci0gICAgCi0g
ICAgYm9vbCBhZGQoQ2FjaGVkUmVzb3VyY2UqIHJlc291cmNlKTsKKyAgICBDYWNoZWRSZXNvdXJj
ZSogcmVzb3VyY2VGb3JVUkwoY29uc3QgVVJMJiwgU2Vzc2lvbklEKTsKKyAgICBDYWNoZWRSZXNv
dXJjZSogcmVzb3VyY2VGb3JSZXF1ZXN0KGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIFNlc3Npb25J
RCk7CisKKyAgICBib29sIGFkZChDYWNoZWRSZXNvdXJjZSopOwogICAgIHZvaWQgcmVtb3ZlKENh
Y2hlZFJlc291cmNlKiByZXNvdXJjZSkgeyBldmljdChyZXNvdXJjZSk7IH0KIAogICAgIHN0YXRp
YyBVUkwgcmVtb3ZlRnJhZ21lbnRJZGVudGlmaWVySWZOZWVkZWQoY29uc3QgVVJMJiBvcmlnaW5h
bFVSTCk7CkBAIC0xNzAsOCArMTczLDkgQEAgcHVibGljOgogICAgIHZvaWQgZmx1c2hDYWNoZWRJ
bWFnZXNUb0Rpc2soKTsgLy8gRmx1c2ggZW5jb2RlZCBkYXRhIGZyb20gcmVzb3VyY2VzIHN0aWxs
IHJlZmVyZW5jZWQgYnkgd2ViIHBhZ2VzLgogI2VuZGlmCiAKLSAgICBzdGF0aWMgdm9pZCByZW1v
dmVVcmxGcm9tQ2FjaGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIGNvbnN0IFN0cmluZyYgdXJs
U3RyaW5nKTsKLSAgICBzdGF0aWMgdm9pZCByZW1vdmVSZXF1ZXN0RnJvbUNhY2hlKFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQqLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmKTsKKyAgICBzdGF0aWMgdm9p
ZCByZW1vdmVVcmxGcm9tQ2FjaGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIGNvbnN0IFN0cmlu
ZyYgdXJsU3RyaW5nLCBTZXNzaW9uSUQpOworICAgIHN0YXRpYyB2b2lkIHJlbW92ZVJlcXVlc3RG
cm9tQ2FjaGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIGNvbnN0IFJlc291cmNlUmVxdWVzdCYs
IFNlc3Npb25JRCk7CisgICAgc3RhdGljIHZvaWQgcmVtb3ZlUmVxdWVzdEZyb21TZXNzaW9uQ2Fj
aGVzKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmKTsKIAog
ICAgIC8vIEZ1bmN0aW9uIHRvIGNvbGxlY3QgY2FjaGUgc3RhdGlzdGljcyBmb3IgdGhlIGNhY2hl
cyB3aW5kb3cgaW4gdGhlIFNhZmFyaSBEZWJ1ZyBtZW51LgogICAgIFN0YXRpc3RpY3MgZ2V0U3Rh
dGlzdGljcygpOwpAQCAtMjIxLDggKzIyNSwxMyBAQCBwcml2YXRlOgogICAgIGJvb2wgbWFrZVJl
c291cmNlUHVyZ2VhYmxlKENhY2hlZFJlc291cmNlKik7CiAgICAgdm9pZCBldmljdChDYWNoZWRS
ZXNvdXJjZSopOwogCi0gICAgc3RhdGljIHZvaWQgcmVtb3ZlUmVxdWVzdEZyb21DYWNoZUltcGwo
U2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIGNvbnN0IFJlc291cmNlUmVxdWVzdCYpOwotICAgIHN0
YXRpYyB2b2lkIGNyb3NzVGhyZWFkUmVtb3ZlUmVxdWVzdEZyb21DYWNoZShTY3JpcHRFeGVjdXRp
b25Db250ZXh0KiwgUGFzc093blB0cjxDcm9zc1RocmVhZFJlc291cmNlUmVxdWVzdERhdGE+KTsK
KyAgICBDYWNoZWRSZXNvdXJjZSogcmVzb3VyY2VGb3JSZXF1ZXN0SW1wbChjb25zdCBSZXNvdXJj
ZVJlcXVlc3QmLCBDYWNoZWRSZXNvdXJjZU1hcCYpOworICAgIHN0YXRpYyB2b2lkIHJlbW92ZVJl
cXVlc3RGcm9tQ2FjaGVJbXBsKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBjb25zdCBSZXNvdXJj
ZVJlcXVlc3QmLCBTZXNzaW9uSUQpOworICAgIHN0YXRpYyB2b2lkIHJlbW92ZVJlcXVlc3RGcm9t
U2Vzc2lvbkNhY2hlc0ltcGwoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIGNvbnN0IFJlc291cmNl
UmVxdWVzdCYpOworICAgIHN0YXRpYyB2b2lkIGNyb3NzVGhyZWFkUmVtb3ZlUmVxdWVzdEZyb21D
YWNoZShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgUGFzc093blB0cjxDcm9zc1RocmVhZFJlc291
cmNlUmVxdWVzdERhdGE+LCBTZXNzaW9uSUQpOworICAgIHN0YXRpYyB2b2lkIGNyb3NzVGhyZWFk
UmVtb3ZlUmVxdWVzdEZyb21TZXNzaW9uQ2FjaGVzKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBQ
YXNzT3duUHRyPENyb3NzVGhyZWFkUmVzb3VyY2VSZXF1ZXN0RGF0YT4pOworCisgICAgQ2FjaGVk
UmVzb3VyY2VNYXAmIGdldFNlc3Npb25NYXAoU2Vzc2lvbklEKTsKIAogICAgIGJvb2wgbV9kaXNh
YmxlZDsgIC8vIFdoZXRoZXIgb3Igbm90IHRoZSBjYWNoZSBpcyBlbmFibGVkLgogICAgIGJvb2wg
bV9wcnVuZUVuYWJsZWQ7CkBAIC0yNDYsNyArMjU1LDcgQEAgcHJpdmF0ZToKICAgICAKICAgICAv
LyBBIFVSTC1iYXNlZCBtYXAgb2YgYWxsIHJlc291cmNlcyB0aGF0IGFyZSBpbiB0aGUgY2FjaGUg
KGluY2x1ZGluZyB0aGUgZnJlc2hlc3QgdmVyc2lvbiBvZiBvYmplY3RzIHRoYXQgYXJlIGN1cnJl
bnRseSBiZWluZyAKICAgICAvLyByZWZlcmVuY2VkIGJ5IGEgV2ViIHBhZ2UpLgotICAgIENhY2hl
ZFJlc291cmNlTWFwIG1fcmVzb3VyY2VzOworICAgIFNlc3Npb25DYWNoZWRSZXNvdXJjZU1hcCBt
X3Nlc3Npb25SZXNvdXJjZXM7CiB9OwogCiBpbmxpbmUgYm9vbCBNZW1vcnlDYWNoZTo6c2hvdWxk
TWFrZVJlc291cmNlUHVyZ2VhYmxlT25FdmljdGlvbigpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9Dcm9zc1RocmVhZENvcGllci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9Dcm9zc1RocmVhZENvcGllci5jcHAKaW5kZXggNTdkMDRlMS4uMWIxYWMxMyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vQ3Jvc3NUaHJlYWRDb3BpZXIuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0Nyb3NzVGhyZWFkQ29waWVyLmNwcApAQCAtMzcsNiAr
MzcsNyBAQAogI2luY2x1ZGUgIlJlc291cmNlUmVxdWVzdC5oIgogI2luY2x1ZGUgIlJlc291cmNl
UmVzcG9uc2UuaCIKICNpbmNsdWRlICJTZXJpYWxpemVkU2NyaXB0VmFsdWUuaCIKKyNpbmNsdWRl
ICJTZXNzaW9uSUQuaCIKICNpbmNsdWRlIDx3dGYvQXNzZXJ0aW9ucy5oPgogI2luY2x1ZGUgPHd0
Zi90ZXh0L1dURlN0cmluZy5oPgogCkBAIC03NCw2ICs3NSwxMSBAQCBDcm9zc1RocmVhZENvcGll
ckJhc2U8ZmFsc2UsIGZhbHNlLCBSZXNvdXJjZVJlc3BvbnNlPjo6VHlwZSBDcm9zc1RocmVhZENv
cGllckJhcwogICAgIHJldHVybiByZXNwb25zZS5jb3B5RGF0YSgpOwogfQogCitDcm9zc1RocmVh
ZENvcGllckJhc2U8ZmFsc2UsIGZhbHNlLCBTZXNzaW9uSUQ+OjpUeXBlIENyb3NzVGhyZWFkQ29w
aWVyQmFzZTxmYWxzZSwgZmFsc2UsIFNlc3Npb25JRD46OmNvcHkoY29uc3QgU2Vzc2lvbklEJiBz
ZXNzaW9uSUQpCit7CisgICAgcmV0dXJuIHNlc3Npb25JRDsKK30KKwogI2lmIEVOQUJMRShJTkRF
WEVEX0RBVEFCQVNFKQogCiBJbmRleGVkREI6OlRyYW5zYWN0aW9uTW9kZSBDcm9zc1RocmVhZENv
cGllckJhc2U8ZmFsc2UsIGZhbHNlLCBJbmRleGVkREI6OlRyYW5zYWN0aW9uTW9kZT46OmNvcHko
Y29uc3QgSW5kZXhlZERCOjpUcmFuc2FjdGlvbk1vZGUmIG1vZGUpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9Dcm9zc1RocmVhZENvcGllci5oIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vQ3Jvc3NUaHJlYWRDb3BpZXIuaAppbmRleCBjYWYyNzlmLi4zOThlODRlIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Dcm9zc1RocmVhZENvcGllci5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0Nyb3NzVGhyZWFkQ29waWVyLmgKQEAgLTQ2LDYgKzQ2
LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIGNsYXNzIFJlc291cmNlRXJyb3I7CiAgICAg
Y2xhc3MgUmVzb3VyY2VSZXF1ZXN0OwogICAgIGNsYXNzIFJlc291cmNlUmVzcG9uc2U7CisgICAg
Y2xhc3MgU2Vzc2lvbklEOwogICAgIHN0cnVjdCBDcm9zc1RocmVhZFJlc291cmNlUmVzcG9uc2VE
YXRhOwogICAgIHN0cnVjdCBDcm9zc1RocmVhZFJlc291cmNlUmVxdWVzdERhdGE7CiAgICAgc3Ry
dWN0IFRocmVhZGFibGVMb2FkZXJPcHRpb25zOwpAQCAtMTQ1LDYgKzE0NiwxMSBAQCBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAgICAgICAgIHN0YXRpYyBUeXBlIGNvcHkoY29uc3QgUmVzb3VyY2VSZXNw
b25zZSYpOwogICAgIH07CiAKKyAgICB0ZW1wbGF0ZTw+IHN0cnVjdCBDcm9zc1RocmVhZENvcGll
ckJhc2U8ZmFsc2UsIGZhbHNlLCBTZXNzaW9uSUQ+IHsKKyAgICAgICAgdHlwZWRlZiBTZXNzaW9u
SUQgVHlwZTsKKyAgICAgICAgc3RhdGljIFR5cGUgY29weShjb25zdCBTZXNzaW9uSUQmKTsKKyAg
ICB9OworCiAjaWYgRU5BQkxFKElOREVYRURfREFUQUJBU0UpCiAgICAgbmFtZXNwYWNlIEluZGV4
ZWREQiB7CiAgICAgICAgIGVudW0gY2xhc3MgVHJhbnNhY3Rpb25Nb2RlOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9SZXNvdXJjZVJlcXVlc3QuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvUmVzb3VyY2VSZXF1ZXN0LmgKaW5kZXgg
NDc2MWFkZS4uNWJhNGMzNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0
d29yay9jZi9SZXNvdXJjZVJlcXVlc3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9u
ZXR3b3JrL2NmL1Jlc291cmNlUmVxdWVzdC5oCkBAIC01Nyw3ICs1Nyw3IEBAIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKICAgICAgICAgewogICAgICAgICB9CiAKLSAgICAgICAgUmVzb3VyY2VSZXF1ZXN0
KGNvbnN0IFVSTCYgdXJsLCBjb25zdCBTdHJpbmcmIHJlZmVycmVyLCBSZXNvdXJjZVJlcXVlc3RD
YWNoZVBvbGljeSBwb2xpY3kgPSBVc2VQcm90b2NvbENhY2hlUG9saWN5KSAKKyAgICAgICAgUmVz
b3VyY2VSZXF1ZXN0KGNvbnN0IFVSTCYgdXJsLCBjb25zdCBTdHJpbmcmIHJlZmVycmVyLCBSZXNv
dXJjZVJlcXVlc3RDYWNoZVBvbGljeSBwb2xpY3kgPSBVc2VQcm90b2NvbENhY2hlUG9saWN5KQog
ICAgICAgICAgICAgOiBSZXNvdXJjZVJlcXVlc3RCYXNlKHVybCwgcG9saWN5KQogI2lmIFBMQVRG
T1JNKElPUykKICAgICAgICAgICAgICwgbV9tYWluUmVzb3VyY2VSZXF1ZXN0KGZhbHNlKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclNuYXBzaG90dGVkUGx1Z0lu
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTbmFwc2hvdHRlZFBsdWdJbi5j
cHAKaW5kZXggYTE2NGY2ZC4uNzRjMzlhMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlclNuYXBzaG90dGVkUGx1Z0luLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyU25hcHNob3R0ZWRQbHVnSW4uY3BwCkBAIC0zMSw2ICszMSw3IEBACiAj
aW5jbHVkZSAiQ2hyb21lQ2xpZW50LmgiCiAjaW5jbHVkZSAiQ3Vyc29yLmgiCiAjaW5jbHVkZSAi
RmlsdGVyLmgiCisjaW5jbHVkZSAiRnJhbWUuaCIKICNpbmNsdWRlICJGcmFtZUxvYWRlckNsaWVu
dC5oIgogI2luY2x1ZGUgIkZyYW1lVmlldy5oIgogI2luY2x1ZGUgIkdyYWRpZW50LmgiCkBAIC04
NSw3ICs4Niw3IEBAIHZvaWQgUmVuZGVyU25hcHNob3R0ZWRQbHVnSW46OnVwZGF0ZVNuYXBzaG90
KFBhc3NSZWZQdHI8SW1hZ2U+IGltYWdlKQogICAgIGlmICghaW1hZ2UpCiAgICAgICAgIHJldHVy
bjsKIAotICAgIG1fc25hcHNob3RSZXNvdXJjZS0+c2V0Q2FjaGVkSW1hZ2UobmV3IENhY2hlZElt
YWdlKGltYWdlLmdldCgpKSk7CisgICAgbV9zbmFwc2hvdFJlc291cmNlLT5zZXRDYWNoZWRJbWFn
ZShuZXcgQ2FjaGVkSW1hZ2UoaW1hZ2UuZ2V0KCksIHZpZXcoKS5mcmFtZVZpZXcoKS5mcmFtZSgp
LnBhZ2UoKS0+c2Vzc2lvbklEKCkpKTsKICAgICByZXBhaW50KCk7CiB9CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Rl
c3RpbmcvSW50ZXJuYWxzLmNwcAppbmRleCAyNTQwYjI4Li42MDg0NmI2IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
dGVzdGluZy9JbnRlcm5hbHMuY3BwCkBAIC0zNTYsOSArMzU2LDkgQEAgYm9vbCBJbnRlcm5hbHM6
OmlzUHJlbG9hZGVkKGNvbnN0IFN0cmluZyYgdXJsKQogCiBib29sIEludGVybmFsczo6aXNMb2Fk
aW5nRnJvbU1lbW9yeUNhY2hlKGNvbnN0IFN0cmluZyYgdXJsKQogewotICAgIGlmICghY29udGV4
dERvY3VtZW50KCkpCisgICAgaWYgKCFjb250ZXh0RG9jdW1lbnQoKSB8fCAhY29udGV4dERvY3Vt
ZW50KCktPnBhZ2UoKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIENhY2hlZFJlc291cmNl
KiByZXNvdXJjZSA9IG1lbW9yeUNhY2hlKCktPnJlc291cmNlRm9yVVJMKGNvbnRleHREb2N1bWVu
dCgpLT5jb21wbGV0ZVVSTCh1cmwpKTsKKyAgICBDYWNoZWRSZXNvdXJjZSogcmVzb3VyY2UgPSBt
ZW1vcnlDYWNoZSgpLT5yZXNvdXJjZUZvclVSTChjb250ZXh0RG9jdW1lbnQoKS0+Y29tcGxldGVV
UkwodXJsKSwgY29udGV4dERvY3VtZW50KCktPnBhZ2UoKS0+c2Vzc2lvbklEKCkpOwogICAgIHJl
dHVybiByZXNvdXJjZSAmJiByZXNvdXJjZS0+c3RhdHVzKCkgPT0gQ2FjaGVkUmVzb3VyY2U6OkNh
Y2hlZDsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2Uv
V2ViS2l0L0NoYW5nZUxvZwppbmRleCBjNzEwMjJjLi4yNTgwOGUyIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDEyIEBACisyMDE0LTAzLTA0ICBNYXJ0aW4gSG9jayAgPG1ob2NrQGFwcGxlLmNvbT4KKwor
ICAgICAgICBBZGQgc3VwcG9ydCBmb3Igc2Vzc2lvbnMgdG8gTWVtb3J5Q2FjaGUuCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjc3OTQKKworICAgICAg
ICBSZXZpZXdlZCBieSBTYW0gV2VpbmlnLgorCisgICAgICAgICogV2ViS2l0LnZjeHByb2ovV2Vi
S2l0RXhwb3J0R2VuZXJhdG9yL1dlYktpdEV4cG9ydHMuZGVmLmluOgorCiAyMDE0LTAzLTAzICBD
b21taXQgUXVldWUgIDxjb21taXQtcXVldWVAd2Via2l0Lm9yZz4KIAogICAgICAgICBVbnJldmll
d2VkLCByb2xsaW5nIG91dCByMTY1MDEzLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJL
aXQudmN4cHJvai9XZWJLaXRFeHBvcnRHZW5lcmF0b3IvV2ViS2l0RXhwb3J0cy5kZWYuaW4gYi9T
b3VyY2UvV2ViS2l0L1dlYktpdC52Y3hwcm9qL1dlYktpdEV4cG9ydEdlbmVyYXRvci9XZWJLaXRF
eHBvcnRzLmRlZi5pbgppbmRleCBlMWMxZDFhLi5jNDgxNmFhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1dlYktpdC52Y3hwcm9qL1dlYktpdEV4cG9ydEdlbmVyYXRvci9XZWJLaXRFeHBvcnRz
LmRlZi5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC52Y3hwcm9qL1dlYktpdEV4cG9ydEdl
bmVyYXRvci9XZWJLaXRFeHBvcnRzLmRlZi5pbgpAQCAtNDc3LDMgKzQ3Nyw1IEBAIEVYUE9SVFMK
ICAgICAgICAgc3ltYm9sV2l0aFBvaW50ZXIoPz8xRE9NV2luZG93QFdlYkNvcmVAQFVBRUBYWiwg
Pz8xRE9NV2luZG93QFdlYkNvcmVAQFVFQUFAWFopCiAgICAgICAgIHN5bWJvbFdpdGhQb2ludGVy
KD92aXNpYmxlQ29udGVudFJlY3RAU2Nyb2xsYWJsZUFyZWFAV2ViQ29yZUBAUUJFP0FWSW50UmVj
dEAyQFc0VmlzaWJsZUNvbnRlbnRSZWN0QmVoYXZpb3JAMTJAQFosID92aXNpYmxlQ29udGVudFJl
Y3RAU2Nyb2xsYWJsZUFyZWFAV2ViQ29yZUBAUUVCQT9BVkludFJlY3RAMkBXNFZpc2libGVDb250
ZW50UmVjdEJlaGF2aW9yQDEyQEBaKQogICAgICAgICBzeW1ib2xXaXRoUG9pbnRlcig/ZGlzYWJs
ZUFjY2Vzc2liaWxpdHlAQVhPYmplY3RDYWNoZUBXZWJDb3JlQEBTQVhYWiwgP2Rpc2FibGVBY2Nl
c3NpYmlsaXR5QEFYT2JqZWN0Q2FjaGVAV2ViQ29yZUBAU0FYWFopCisgICAgICAgIHN5bWJvbFdp
dGhQb2ludGVyKD9zZXNzaW9uSURAUGFnZUBXZWJDb3JlQEBRQkU/QVZTZXNzaW9uSURAMkBYWiwg
P3Nlc3Npb25JREBQYWdlQFdlYkNvcmVAQFFFQkE/QVZTZXNzaW9uSURAMkBYWikKKyAgICAgICAg
c3ltYm9sV2l0aFBvaW50ZXIoP3Jlc291cmNlRm9yVVJMQE1lbW9yeUNhY2hlQFdlYkNvcmVAQFFB
RVBBVkNhY2hlZFJlc291cmNlQDJAQUJWVVJMQDJAVlNlc3Npb25JREAyQEBaLCA/cmVzb3VyY2VG
b3JVUkxATWVtb3J5Q2FjaGVAV2ViQ29yZUBAUUVBQVBBVkNhY2hlZFJlc291cmNlQDJAQUJWVVJM
QDJAVlNlc3Npb25JREAyQEBaKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9n
IGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IGZiN2I1YzQuLmExZWM5NDggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwyMCBAQAorMjAxNC0wMy0wNCAgTWFydGluIEhvY2sgIDxtaG9ja0Bh
cHBsZS5jb20+CisKKyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIHNlc3Npb25zIHRvIE1lbW9yeUNh
Y2hlLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI3
Nzk0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgU2FtIFdlaW5pZy4KKworICAgICAgICAqIE5ldHdv
cmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRlci5oOiBBZGQgc2Vzc2lvbklEKCkgbWV0aG9k
LgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OnNlc3Npb25JRCk6Cisg
ICAgICAgICogTmV0d29ya1Byb2Nlc3MvbWFjL0Rpc2tDYWNoZU1vbml0b3IuaDogQWRkIHNlc3Np
b25JRCBtZW1iZXIuCisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvbWFjL0Rpc2tDYWNoZU1vbml0
b3IubW06CisgICAgICAgIChXZWJLaXQ6OkRpc2tDYWNoZU1vbml0b3I6OkRpc2tDYWNoZU1vbml0
b3IpOiBTZW5kIHNlc3Npb25JRCB0byBOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb246OkRpZENhY2hl
UmVzb3VyY2UuCisgICAgICAgICogV2ViUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzQ29u
bmVjdGlvbi5jcHA6IEFkZCBzZXNzaW9uSUQgcGFyYW1ldGVyIHRvIGRpZENhY2hlUmVzb3VyY2Ug
YW5kIHBhc3MgdG8gTWVtb3J5Q2FjaGUuCisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNz
Q29ubmVjdGlvbjo6ZGlkQ2FjaGVSZXNvdXJjZSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9OZXR3
b3JrL05ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbi5oOiBEaXR0by4KKyAgICAgICAgKiBXZWJQcm9j
ZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uLm1lc3NhZ2VzLmluOiBEaXR0by4K
KwogMjAxNC0wMy0wMyAgRW5yaWNhIENhc3VjY2kgIDxlbnJpY2FAYXBwbGUuY29tPgogCiAgICAg
ICAgIFtXSzJdIFNlbGVjdGlvbiByZW1haW5zIGFmdGVyIHJlbG9hZC4KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRlci5oIGIvU291
cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZGVyLmgKaW5kZXgg
NjljNTlmMy4uZWI3NjlmMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nl
c3MvTmV0d29ya1Jlc291cmNlTG9hZGVyLmgKKysrIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1By
b2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZGVyLmgKQEAgLTcyLDYgKzcyLDcgQEAgcHVibGljOgog
CiAgICAgV2ViQ29yZTo6UmVzb3VyY2VMb2FkUHJpb3JpdHkgcHJpb3JpdHkoKSB7IHJldHVybiBt
X3ByaW9yaXR5OyB9CiAgICAgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0KCkgeyBy
ZXR1cm4gbV9yZXF1ZXN0OyB9CisgICAgV2ViQ29yZTo6U2Vzc2lvbklEIHNlc3Npb25JRCgpIGNv
bnN0IHsgcmV0dXJuIG1fc2Vzc2lvbklEOyB9CiAKICAgICBXZWJDb3JlOjpSZXNvdXJjZUhhbmRs
ZSogaGFuZGxlKCkgY29uc3QgeyByZXR1cm4gbV9oYW5kbGUuZ2V0KCk7IH0KICAgICB2b2lkIGRp
ZENvbnZlcnRIYW5kbGVUb0Rvd25sb2FkKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9O
ZXR3b3JrUHJvY2Vzcy9tYWMvRGlza0NhY2hlTW9uaXRvci5oIGIvU291cmNlL1dlYktpdDIvTmV0
d29ya1Byb2Nlc3MvbWFjL0Rpc2tDYWNoZU1vbml0b3IuaAppbmRleCAzMTg4M2M1Li4xZDA3MWQ0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9tYWMvRGlza0NhY2hl
TW9uaXRvci5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL21hYy9EaXNrQ2Fj
aGVNb25pdG9yLmgKQEAgLTI4LDYgKzI4LDcgQEAKIAogI2luY2x1ZGUgIk1lc3NhZ2VTZW5kZXIu
aCIKICNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlUmVxdWVzdC5oPgorI2luY2x1ZGUgPFdlYkNv
cmUvU2Vzc2lvbklELmg+CiAjaW5jbHVkZSA8d3RmL1J1bkxvb3AuaD4KIAogdHlwZWRlZiBjb25z
dCBzdHJ1Y3QgX0NGQ2FjaGVkVVJMUmVzcG9uc2UqIENGQ2FjaGVkVVJMUmVzcG9uc2VSZWY7CkBA
IC01Miw2ICs1Myw3IEBAIHByaXZhdGU6CiAKICAgICBSZWZQdHI8TmV0d29ya0Nvbm5lY3Rpb25U
b1dlYlByb2Nlc3M+IG1fY29ubmVjdGlvblRvV2ViUHJvY2VzczsKICAgICBXZWJDb3JlOjpSZXNv
dXJjZVJlcXVlc3QgbV9yZXNvdXJjZVJlcXVlc3Q7CisgICAgV2ViQ29yZTo6U2Vzc2lvbklEIG1f
c2Vzc2lvbklEOwogfTsKIAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJv
Y2Vzcy9tYWMvRGlza0NhY2hlTW9uaXRvci5tbSBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9j
ZXNzL21hYy9EaXNrQ2FjaGVNb25pdG9yLm1tCmluZGV4IDM4MGRhMWYuLmViMGE3MWQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL21hYy9EaXNrQ2FjaGVNb25pdG9y
Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL21hYy9EaXNrQ2FjaGVNb25p
dG9yLm1tCkBAIC02Miw2ICs2Miw3IEBAIHZvaWQgRGlza0NhY2hlTW9uaXRvcjo6bW9uaXRvckZp
bGVCYWNraW5nU3RvcmVDcmVhdGlvbihDRkNhY2hlZFVSTFJlc3BvbnNlUmVmIGNhCiBEaXNrQ2Fj
aGVNb25pdG9yOjpEaXNrQ2FjaGVNb25pdG9yKENGQ2FjaGVkVVJMUmVzcG9uc2VSZWYgY2FjaGVk
UmVzcG9uc2UsIE5ldHdvcmtSZXNvdXJjZUxvYWRlciogbG9hZGVyKQogICAgIDogbV9jb25uZWN0
aW9uVG9XZWJQcm9jZXNzKGxvYWRlci0+Y29ubmVjdGlvblRvV2ViUHJvY2VzcygpKQogICAgICwg
bV9yZXNvdXJjZVJlcXVlc3QobG9hZGVyLT5yZXF1ZXN0KCkpCisgICAgLCBtX3Nlc3Npb25JRChs
b2FkZXItPnNlc3Npb25JRCgpKQogewogICAgIEFTU0VSVChSdW5Mb29wOjppc01haW4oKSk7CiAK
QEAgLTg4LDcgKzg5LDcgQEAgRGlza0NhY2hlTW9uaXRvcjo6RGlza0NhY2hlTW9uaXRvcihDRkNh
Y2hlZFVSTFJlc3BvbnNlUmVmIGNhY2hlZFJlc3BvbnNlLCBOZXR3b3IKICAgICAgICAgaWYgKGhh
bmRsZS5pc051bGwoKSkKICAgICAgICAgICAgIHJldHVybjsKIAotICAgICAgICBtb25pdG9yLT5z
ZW5kKE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb246OkRpZENhY2hlUmVzb3VyY2Uo
bW9uaXRvci0+cmVzb3VyY2VSZXF1ZXN0KCksIGhhbmRsZSkpOworICAgICAgICBtb25pdG9yLT5z
ZW5kKE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb246OkRpZENhY2hlUmVzb3VyY2Uo
bW9uaXRvci0+cmVzb3VyY2VSZXF1ZXN0KCksIGhhbmRsZSwgbV9zZXNzaW9uSUQpKTsKICAgICB9
OwogCiAgICAgX0NGQ2FjaGVkVVJMUmVzcG9uc2VTZXRCZWNhbWVGaWxlQmFja2VkQ2FsbEJhY2tC
bG9jayhjYWNoZWRSZXNwb25zZSwgYmxvY2ssIGRpc3BhdGNoX2dldF9tYWluX3F1ZXVlKCkpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9j
ZXNzQ29ubmVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05ldHdvcmsvTmV0
d29ya1Byb2Nlc3NDb25uZWN0aW9uLmNwcAppbmRleCBiMjE2ZTEyLi42MzhiODk3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NDb25u
ZWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05ldHdvcmsvTmV0d29y
a1Byb2Nlc3NDb25uZWN0aW9uLmNwcApAQCAtMzYsNiArMzYsNyBAQAogI2luY2x1ZGUgPFdlYkNv
cmUvQ2FjaGVkUmVzb3VyY2UuaD4KICNpbmNsdWRlIDxXZWJDb3JlL01lbW9yeUNhY2hlLmg+CiAj
aW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJjZUJ1ZmZlci5oPgorI2luY2x1ZGUgPFdlYkNvcmUvU2Vz
c2lvbklELmg+CiAKICNpZiBFTkFCTEUoTkVUV09SS19QUk9DRVNTKQogCkBAIC04MSw5ICs4Miw5
IEBAIHZvaWQgTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uOjpkaWRSZWNlaXZlSW52YWxpZE1lc3Nh
Z2UoSVBDOjpDb25uZWN0aW9uKiwgSVBDOjpTCiB9CiAKICNpZiBFTkFCTEUoU0hBUkVBQkxFX1JF
U09VUkNFKQotdm9pZCBOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb246OmRpZENhY2hlUmVzb3VyY2Uo
Y29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBjb25zdCBTaGFyZWFibGVSZXNvdXJjZTo6
SGFuZGxlJiBoYW5kbGUpCit2b2lkIE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbjo6ZGlkQ2FjaGVS
ZXNvdXJjZShjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIGNvbnN0IFNoYXJlYWJsZVJl
c291cmNlOjpIYW5kbGUmIGhhbmRsZSwgU2Vzc2lvbklEIHNlc3Npb25JRCkKIHsKLSAgICBDYWNo
ZWRSZXNvdXJjZSogcmVzb3VyY2UgPSBtZW1vcnlDYWNoZSgpLT5yZXNvdXJjZUZvclJlcXVlc3Qo
cmVxdWVzdCk7CisgICAgQ2FjaGVkUmVzb3VyY2UqIHJlc291cmNlID0gbWVtb3J5Q2FjaGUoKS0+
cmVzb3VyY2VGb3JSZXF1ZXN0KHJlcXVlc3QsIHNlc3Npb25JRCk7CiAgICAgaWYgKCFyZXNvdXJj
ZSkKICAgICAgICAgcmV0dXJuOwogICAgIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbi5oIGIvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbi5oCmluZGV4IDg0
MmY2ZWIuLjkzNmQ2NmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTmV0
d29yay9OZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uLmgKQEAgLTQxLDYgKzQxLDcg
QEAgbmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgUmVzb3VyY2VFcnJvcjsKIGNsYXNzIFJlc291
cmNlUmVxdWVzdDsKIGNsYXNzIFJlc291cmNlUmVzcG9uc2U7CitjbGFzcyBTZXNzaW9uSUQ7CiB9
CiAKIG5hbWVzcGFjZSBXZWJLaXQgewpAQCAtNzAsNyArNzEsNyBAQCBwcml2YXRlOgogCiAjaWYg
RU5BQkxFKFNIQVJFQUJMRV9SRVNPVVJDRSkKICAgICAvLyBNZXNzYWdlIGhhbmRsZXJzLgotICAg
IHZvaWQgZGlkQ2FjaGVSZXNvdXJjZShjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBj
b25zdCBTaGFyZWFibGVSZXNvdXJjZTo6SGFuZGxlJik7CisgICAgdm9pZCBkaWRDYWNoZVJlc291
cmNlKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFNoYXJlYWJsZVJlc291
cmNlOjpIYW5kbGUmLCBXZWJDb3JlOjpTZXNzaW9uSUQpOwogI2VuZGlmCiAKICAgICAvLyBUaGUg
Y29ubmVjdGlvbiBmcm9tIHRoZSB3ZWIgcHJvY2VzcyB0byB0aGUgbmV0d29yayBwcm9jZXNzLgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9j
ZXNzQ29ubmVjdGlvbi5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTmV0
d29yay9OZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24ubWVzc2FnZXMuaW4KaW5kZXggZTY5ODlkOS4u
YzFmNzhjNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9OZXR3b3JrL05l
dHdvcmtQcm9jZXNzQ29ubmVjdGlvbi5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uLm1lc3NhZ2VzLmluCkBA
IC0yNSw3ICsyNSw3IEBACiBtZXNzYWdlcyAtPiBOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24gTGVn
YWN5UmVjZWl2ZXIgewogCiAjaWYgRU5BQkxFKFNIQVJFQUJMRV9SRVNPVVJDRSkKLSAgICBEaWRD
YWNoZVJlc291cmNlKFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCByZXF1ZXN0LCBXZWJLaXQ6OlNo
YXJlYWJsZVJlc291cmNlOjpIYW5kbGUgcmVzb3VyY2UpCisgICAgRGlkQ2FjaGVSZXNvdXJjZShX
ZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdCwgV2ViS2l0OjpTaGFyZWFibGVSZXNvdXJj
ZTo6SGFuZGxlIHJlc291cmNlLCBXZWJDb3JlOjpTZXNzaW9uSUQgc2Vzc2lvbklEKQogI2VuZGlm
CiAKIH0K
</data>

          </attachment>
      

    </bug>

</bugzilla>