<?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>97198</bug_id>
          
          <creation_ts>2012-09-20 04:50:11 -0700</creation_ts>
          <short_desc>Web Inspector: extract HashSet instrumentation from core NMI code and put it into MemoryInstrumentationHashSet.h</short_desc>
          <delta_ts>2012-09-27 08:09:00 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Web Inspector (Deprecated)</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</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>96650</dependson>
          
          <everconfirmed>0</everconfirmed>
          <reporter name="Ilya Tikhonovsky">loislo</reporter>
          <assigned_to name="Ilya Tikhonovsky">loislo</assigned_to>
          <cc>abarth</cc>
    
    <cc>alph</cc>
    
    <cc>apavlov</cc>
    
    <cc>benjamin</cc>
    
    <cc>bweinstein</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>feature-media-reviews</cc>
    
    <cc>japhet</cc>
    
    <cc>joepeck</cc>
    
    <cc>keishi</cc>
    
    <cc>loislo</cc>
    
    <cc>macpherson</cc>
    
    <cc>menard</cc>
    
    <cc>pfeldman</cc>
    
    <cc>pmuellr</cc>
    
    <cc>rik</cc>
    
    <cc>timothy</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>yurys</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>724422</commentid>
    <comment_count>0</comment_count>
    <who name="Ilya Tikhonovsky">loislo</who>
    <bug_when>2012-09-20 04:50:11 -0700</bug_when>
    <thetext>Current implementation has overloads for HashSet.
This prevents us from instrumenting complex cases like Vector&lt;HashSet&lt;...&gt; &gt;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>725263</commentid>
    <comment_count>1</comment_count>
      <attachid>165077</attachid>
    <who name="Ilya Tikhonovsky">loislo</who>
    <bug_when>2012-09-21 01:28:55 -0700</bug_when>
    <thetext>Created attachment 165077
patch for try bots. HashSet + Vector.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>727319</commentid>
    <comment_count>2</comment_count>
      <attachid>165077</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2012-09-24 23:22:31 -0700</bug_when>
    <thetext>Comment on attachment 165077
patch for try bots. HashSet + Vector.

Clearing r?. Please remove changes to vector.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>727416</commentid>
    <comment_count>3</comment_count>
      <attachid>165558</attachid>
    <who name="Ilya Tikhonovsky">loislo</who>
    <bug_when>2012-09-25 01:55:48 -0700</bug_when>
    <thetext>Created attachment 165558
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>727424</commentid>
    <comment_count>4</comment_count>
      <attachid>165558</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2012-09-25 02:16:50 -0700</bug_when>
    <thetext>Comment on attachment 165558
Patch

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

&gt; Source/WTF/wtf/MemoryInstrumentationHashSet.h:57
&gt; +void reportMemoryUsage(const HashTable&lt;Key, Value, Extractor, HashFunctions, Traits, KeyTraits&gt;* const&amp; hashTable, MemoryObjectInfo* memoryObjectInfo)

Please put HashTable memory instrumentation into a separate file as it is going to be reused by HashMap and LinkedHashSet instrumentations.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>727428</commentid>
    <comment_count>5</comment_count>
      <attachid>165558</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2012-09-25 02:20:26 -0700</bug_when>
    <thetext>Comment on attachment 165558
Patch

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

&gt; Source/WebKit/chromium/tests/MemoryInstrumentationTest.cpp:446
&gt; +    VisitedObjects visitedObjects;

Please add a test for HashTable instrumentation and a test for HashSet owned by value.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>727531</commentid>
    <comment_count>6</comment_count>
      <attachid>165587</attachid>
    <who name="Ilya Tikhonovsky">loislo</who>
    <bug_when>2012-09-25 05:21:23 -0700</bug_when>
    <thetext>Created attachment 165587
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>727536</commentid>
    <comment_count>7</comment_count>
    <who name="Ilya Tikhonovsky">loislo</who>
    <bug_when>2012-09-25 05:28:09 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; (From update of attachment 165558 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=165558&amp;action=review
&gt; 
&gt; &gt; Source/WTF/wtf/MemoryInstrumentationHashSet.h:57
&gt; &gt; +void reportMemoryUsage(const HashTable&lt;Key, Value, Extractor, HashFunctions, Traits, KeyTraits&gt;* const&amp; hashTable, MemoryObjectInfo* memoryObjectInfo)
&gt; 
&gt; Please put HashTable memory instrumentation into a separate file as it is going to be reused by HashMap and LinkedHashSet instrumentations.

done.

&gt; &gt; Source/WebKit/chromium/tests/MemoryInstrumentationTest.cpp:446
&gt; &gt; +    VisitedObjects visitedObjects;
&gt; 
&gt; Please add a test for HashTable instrumentation and a test for HashSet owned by value.

HashTable is a wtf internal class which is used by HashSet, HashMap, etc and is never used directly in WebCore. Also it knows nothing about the internal structure of the values inside it. Thus it is not necessary to test its instrumentation directly.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>728202</commentid>
    <comment_count>8</comment_count>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2012-09-25 22:39:53 -0700</bug_when>
    <thetext>(In reply to comment #7)
&gt; &gt; Please add a test for HashTable instrumentation and a test for HashSet owned by value.
&gt; 
&gt; HashTable is a wtf internal class which is used by HashSet, HashMap, etc and is never used directly in WebCore. Also it knows nothing about the internal structure of the values inside it. Thus it is not necessary to test its instrumentation directly.

What about the second part of the commentary?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>728268</commentid>
    <comment_count>9</comment_count>
    <who name="Ilya Tikhonovsky">loislo</who>
    <bug_when>2012-09-26 00:21:35 -0700</bug_when>
    <thetext>(In reply to comment #8)
&gt; (In reply to comment #7)
&gt; &gt; &gt; Please add a test for HashTable instrumentation and a test for HashSet owned by value.
&gt; &gt; 
&gt; &gt; HashTable is a wtf internal class which is used by HashSet, HashMap, etc and is never used directly in WebCore. Also it knows nothing about the internal structure of the values inside it. Thus it is not necessary to test its instrumentation directly.
&gt; 
&gt; What about the second part of the commentary?

addMember function has its own mechanic for pointer vs reference instrumentation. And it is covered by ptrVsRef test.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>728440</commentid>
    <comment_count>10</comment_count>
      <attachid>165587</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2012-09-26 05:31:40 -0700</bug_when>
    <thetext>Comment on attachment 165587
Patch

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

&gt; Source/WTF/wtf/MemoryInstrumentation.h:193
&gt; +    template&lt;typename I&gt; void addMembers(I iterator, I end)

Can you change this to addCollectionElements(const T&amp; collection) so that we don&apos;t need to .begin() and .end() in all call sites?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>728522</commentid>
    <comment_count>11</comment_count>
    <who name="Ilya Tikhonovsky">loislo</who>
    <bug_when>2012-09-26 07:10:37 -0700</bug_when>
    <thetext>Committed r129637: &lt;http://trac.webkit.org/changeset/129637&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>729541</commentid>
    <comment_count>12</comment_count>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2012-09-27 08:08:07 -0700</bug_when>
    <thetext>Reopening to attach new patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>729543</commentid>
    <comment_count>13</comment_count>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2012-09-27 08:09:00 -0700</bug_when>
    <thetext>(In reply to comment #12)
&gt; Reopening to attach new patch.

Sorry, wrong bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>165077</attachid>
            <date>2012-09-21 01:28:55 -0700</date>
            <delta_ts>2012-09-25 01:55:39 -0700</delta_ts>
            <desc>patch for try bots. HashSet + Vector.</desc>
            <filename>bug-97198-20120921122819.patch</filename>
            <type>text/plain</type>
            <size>54251</size>
            <attacher name="Ilya Tikhonovsky">loislo</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI5MjAyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGM1NzdlYTYyZjRjYTExZGI2YjU1YTM0
NTM2Zjk5MDNlMzdiZThmN2IuLjRkOGYyOGJlOGYzMDhmODY5NzI3OWQyZjQ5MWQ4YThhNTcwYWRk
YTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsNDggQEAKKzIwMTItMDktMjAgIElseWEgVGlraG9ub3Zza3kgIDxs
b2lzbG9AY2hyb21pdW0ub3JnPgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IGV4dHJhY3QgSGFz
aFNldCBpbnN0cnVtZW50YXRpb24gZnJvbSBjb3JlIE5NSSBjb2RlIGFuZCBwdXQgaXQgaW50byBN
ZW1vcnlJbnN0cnVtZW50YXRpb25IYXNoU2V0LmgKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTk3MTk4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgQ3VycmVudCBpbXBsZW1lbnRhdGlvbiBoYXMgb3ZlcmxvYWRz
IGZvciBIYXNoU2V0LgorICAgICAgICBUaGlzIHByZXZlbnRzIHVzIGZyb20gaW5zdHJ1bWVudGlu
ZyBjb21wbGV4IGNhc2VzIGxpa2UgVmVjdG9yPEhhc2hTZXQ8Li4uPiA+LgorCisgICAgICAgICog
d3RmL0hhc2hTZXQuaDoKKyAgICAgICAgKFdURik6CisgICAgICAgIChIYXNoU2V0KToKKyAgICAg
ICAgKiB3dGYvSGFzaFRhYmxlLmg6CisgICAgICAgIChXVEYpOgorICAgICAgICAoSGFzaFRhYmxl
KToKKyAgICAgICAgKiB3dGYvTWVtb3J5SW5zdHJ1bWVudGF0aW9uLmg6CisKKzIwMTItMDktMTkg
IElseWEgVGlraG9ub3Zza3kgIDxsb2lzbG9AY2hyb21pdW0ub3JnPgorCisgICAgICAgIFdlYiBJ
bnNwZWN0b3I6IGV4dHJhY3QgVmVjdG9yIGluc3RydW1lbnRhdGlvbiBmcm9tIGNvcmUgTk1JIGNv
ZGUgaW50byBNZW1vcnlJbnN0cnVtZW50YXRpb25WZWN0b3IuaCBoZWFkZXIuCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05NjY1MAorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZGVkIHJlcG9ydE1lbW9yeVVz
YWdlIGZyZWUgdGVtcGxhdGUgZnVuY3Rpb24gd2l0aCBkZWZhdWx0IGJvZHkgdG8gY29yZSBOTUkg
Y29kZQorICAgICAgICBhbmQgYWRkIGN1c3RvbSB2ZXJzaW9uIG9mIHJlcG9ydE1lbW9yeVVzYWdl
IGZ1bmN0aW9uIGZvciBWZWN0b3JzLgorCisgICAgICAgICogR05VbWFrZWZpbGUubGlzdC5hbToK
KyAgICAgICAgKiBXVEYuZ3lwaToKKyAgICAgICAgKiBXVEYucHJvOgorICAgICAgICAqIFdURi52
Y3Byb2ovV1RGLnZjcHJvajoKKyAgICAgICAgKiBXVEYueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
ajoKKyAgICAgICAgKiB3dGYvTWVtb3J5SW5zdHJ1bWVudGF0aW9uLmg6CisgICAgICAgIChXVEYp
OgorICAgICAgICAoV1RGOjpNZW1vcnlJbnN0cnVtZW50YXRpb246OnNlbGVjdEluc3RydW1lbnRh
dGlvbk1ldGhvZCk6CisgICAgICAgIChNZW1vcnlJbnN0cnVtZW50YXRpb24pOgorICAgICAgICAo
V1RGOjpyZXBvcnRNZW1vcnlVc2FnZSk6CisgICAgICAgIChXVEY6Ok1lbW9yeUluc3RydW1lbnRh
dGlvbjo6YWRkT2JqZWN0SW1wbCk6CisgICAgICAgIChXVEY6Ojo6cHJvY2Vzcyk6CisgICAgICAg
ICogd3RmL01lbW9yeUluc3RydW1lbnRhdGlvblZlY3Rvci5oOiBBZGRlZC4KKyAgICAgICAgKFdU
Rik6CisgICAgICAgIChXVEY6Omluc3RydW1lbnRWZWN0b3JWYWx1ZXMpOgorICAgICAgICAoV1RG
OjpyZXBvcnRNZW1vcnlVc2FnZSk6CisKIDIwMTItMDktMjAgIFBhdHJpY2sgR2Fuc3RlcmVyICA8
cGFyb2dhQHdlYmtpdC5vcmc+CiAKICAgICAgICAgQWRkIFN0cmluZzo6bnVtYmVyVG9TdHJpbmdG
aXhlZFdpZHRoKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBiOGJiM2M4ZWQzMjJhODUyNDBlMmQxZTNiNjY1OTBj
Mzg3ZjMxMzQyLi5iNDMwZWZlNDEyOGQ1MGZmMjY0ODExNzFiMjcyNzU5Zjc3MzYyN2VkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsNzUgQEAKKzIwMTItMDktMjAgIElseWEgVGlraG9ub3Zza3kgIDxs
b2lzbG9AY2hyb21pdW0ub3JnPgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IGV4dHJhY3QgSGFz
aFNldCBpbnN0cnVtZW50YXRpb24gZnJvbSBjb3JlIE5NSSBjb2RlIGFuZCBwdXQgaXQgaW50byBN
ZW1vcnlJbnN0cnVtZW50YXRpb25IYXNoU2V0LmgKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTk3MTk4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgQWRkaXRpb25hbCBpbmZvcm1hdGlvbiBvZiB0aGUgY2hhbmdl
IHN1Y2ggYXMgYXBwcm9hY2gsIHJhdGlvbmFsZS4gUGxlYXNlIGFkZCBwZXItZnVuY3Rpb24gZGVz
Y3JpcHRpb25zIGJlbG93IChPT1BTISkuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzIChPT1BTISku
CisKKyAgICAgICAgKiBjc3MvQ1NTQ3Vyc29ySW1hZ2VWYWx1ZS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpDU1NDdXJzb3JJbWFnZVZhbHVlOjpyZXBvcnREZXNjZW5kYW50TWVtb3J5VXNhZ2UpOgor
ICAgICAgICAqIGNzcy9TdHlsZVJlc29sdmVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxl
UmVzb2x2ZXI6OkZlYXR1cmVzOjpyZXBvcnRNZW1vcnlVc2FnZSk6CisgICAgICAgIChXZWJDb3Jl
OjpTdHlsZVJlc29sdmVyOjpjb2xsZWN0TWF0Y2hpbmdSdWxlc0Zvckxpc3QpOgorICAgICAgICAq
IGRvbS9Eb2N1bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6cmVwb3J0TWVt
b3J5VXNhZ2UpOgorICAgICAgICAqIGRvbS9Eb2N1bWVudEV2ZW50UXVldWUuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6RG9jdW1lbnRFdmVudFF1ZXVlOjpyZXBvcnRNZW1vcnlVc2FnZSk6CisgICAg
ICAgICogbG9hZGVyL0RvY3VtZW50TG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3Vt
ZW50TG9hZGVyOjpyZXBvcnRNZW1vcnlVc2FnZSk6CisgICAgICAgICogbG9hZGVyL0ZyYW1lTG9h
ZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyOjpyZXBvcnRNZW1vcnlVc2Fn
ZSk6CisgICAgICAgICogbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkNhY2hlZFJlc291cmNlOjpyZXBvcnRNZW1vcnlVc2FnZSk6CisgICAgICAgICog
bG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlTG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkNhY2hlZFJlc291cmNlTG9hZGVyOjpyZXBvcnRNZW1vcnlVc2FnZSk6CisKKzIwMTItMDktMTkg
IElseWEgVGlraG9ub3Zza3kgIDxsb2lzbG9AY2hyb21pdW0ub3JnPgorCisgICAgICAgIFdlYiBJ
bnNwZWN0b3I6IGV4dHJhY3QgVmVjdG9yIGluc3RydW1lbnRhdGlvbiBmcm9tIGNvcmUgTk1JIGNv
ZGUgaW50byBNZW1vcnlJbnN0cnVtZW50YXRpb25WZWN0b3IuaCBoZWFkZXIuCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05NjY1MAorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIGFkZEluc3RydW1lbnRlZFZlY3Rv
ciBhbmQgYWRkSW5zdHJ1bWVudGVkVmVjdG9yUHRyIHdlcmUgcmVwbGFjZWQgd2l0aCBhZGRNZW1i
ZXIuCisKKyAgICAgICAgKiBjc3MvQ1NTR3JhZGllbnRWYWx1ZS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpDU1NHcmFkaWVudFZhbHVlOjpyZXBvcnRCYXNlQ2xhc3NNZW1vcnlVc2FnZSk6CisgICAg
ICAgICogY3NzL0NTU0ltYWdlU2V0VmFsdWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTSW1h
Z2VTZXRWYWx1ZTo6cmVwb3J0RGVzY2VuZGFudE1lbW9yeVVzYWdlKToKKyAgICAgICAgKiBjc3Mv
Q1NTTWVkaWFSdWxlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU01lZGlhUnVsZTo6cmVwb3J0
RGVzY2VuZGFudE1lbW9yeVVzYWdlKToKKyAgICAgICAgKiBjc3MvQ1NTUnVsZUxpc3QuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6U3RhdGljQ1NTUnVsZUxpc3Q6OnJlcG9ydE1lbW9yeVVzYWdlKToK
KyAgICAgICAgKiBjc3MvQ1NTU3R5bGVTaGVldC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NT
dHlsZVNoZWV0OjpyZXBvcnRNZW1vcnlVc2FnZSk6CisgICAgICAgICogY3NzL0NTU1ZhbHVlTGlz
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NWYWx1ZUxpc3Q6OnJlcG9ydERlc2NlbmRhbnRN
ZW1vcnlVc2FnZSk6CisgICAgICAgICogY3NzL01lZGlhTGlzdC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpNZWRpYVF1ZXJ5U2V0OjpyZXBvcnRNZW1vcnlVc2FnZSk6CisgICAgICAgICogY3NzL01l
ZGlhUXVlcnkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFRdWVyeTo6cmVwb3J0TWVtb3J5
VXNhZ2UpOgorICAgICAgICAqIGNzcy9TdHlsZVJlc29sdmVyLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlN0eWxlUmVzb2x2ZXI6OmNvbGxlY3RNYXRjaGluZ1J1bGVzRm9yTGlzdCk6CisgICAgICAg
ICogY3NzL1N0eWxlUnVsZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZVJ1bGVCbG9jazo6
cmVwb3J0RGVzY2VuZGFudE1lbW9yeVVzYWdlKToKKyAgICAgICAgKiBjc3MvU3R5bGVTaGVldENv
bnRlbnRzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlU2hlZXRDb250ZW50czo6cmVwb3J0
TWVtb3J5VXNhZ2UpOgorICAgICAgICAqIGNzcy9XZWJLaXRDU1NLZXlmcmFtZXNSdWxlLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlN0eWxlUnVsZUtleWZyYW1lczo6cmVwb3J0RGVzY2VuZGFudE1l
bW9yeVVzYWdlKToKKyAgICAgICAgKFdlYkNvcmU6OldlYktpdENTU0tleWZyYW1lc1J1bGU6OnJl
cG9ydERlc2NlbmRhbnRNZW1vcnlVc2FnZSk6CisgICAgICAgICogY3NzL1dlYktpdENTU1JlZ2lv
blJ1bGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V2ViS2l0Q1NTUmVnaW9uUnVsZTo6cmVwb3J0
RGVzY2VuZGFudE1lbW9yeVVzYWdlKToKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OnJlcG9ydE1lbW9yeVVzYWdlKToKKyAgICAgICAgKiBs
b2FkZXIvRG9jdW1lbnRMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnRMb2Fk
ZXI6OnJlcG9ydE1lbW9yeVVzYWdlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL1Jlc291
cmNlUmVxdWVzdEJhc2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0QmFz
ZTo6cmVwb3J0TWVtb3J5VXNhZ2UpOgorCiAyMDEyLTA5LTIxICBLZWlzaGkgSGF0dG9yaSAgPGtl
aXNoaUB3ZWJraXQub3JnPgogCiAgICAgICAgIFByZXBhcmUgQ2FsZW5kYXJQaWNrZXIgc28gd2Ug
Y2FuIGFkZCBhbm90aGVyIHBpY2tlciwgU3VnZ2V0aW9uUGlja2VyCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hh
bmdlTG9nCmluZGV4IDc2NDZlYzQxNDYyYjQxYjczY2Q2NGIyMGRjZDU3ZmQ1Y2U5MDFjMjQuLjdm
YzE0ZDY3M2UyNmVhMmM2ZjFhMzhkZjBkNjEzZWFlZDE4MWZmZWIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMzEgQEAKKzIwMTItMDktMjAgIElseWEgVGlraG9ub3Zza3kg
IDxsb2lzbG9AY2hyb21pdW0ub3JnPgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IGV4dHJhY3Qg
SGFzaFNldCBpbnN0cnVtZW50YXRpb24gZnJvbSBjb3JlIE5NSSBjb2RlIGFuZCBwdXQgaXQgaW50
byBNZW1vcnlJbnN0cnVtZW50YXRpb25IYXNoU2V0LmgKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk3MTk4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgQ3VycmVudCBpbXBsZW1lbnRhdGlvbiBoYXMgb3Zlcmxv
YWRzIGZvciBIYXNoU2V0LgorICAgICAgICBUaGlzIHByZXZlbnRzIHVzIGZyb20gaW5zdHJ1bWVu
dGluZyBjb21wbGV4IGNhc2VzIGxpa2UgVmVjdG9yPEhhc2hTZXQ8Li4uPiA+LgorCisgICAgICAg
ICogdGVzdHMvTWVtb3J5SW5zdHJ1bWVudGF0aW9uVGVzdC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpURVNUKToKKyAgICAgICAgKFdlYkNvcmUpOgorCisyMDEyLTA5LTE5ICBJbHlhIFRpa2hvbm92
c2t5ICA8bG9pc2xvQGNocm9taXVtLm9yZz4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBleHRy
YWN0IFZlY3RvciBpbnN0cnVtZW50YXRpb24gZnJvbSBjb3JlIE5NSSBjb2RlIGludG8gTWVtb3J5
SW5zdHJ1bWVudGF0aW9uVmVjdG9yLmggaGVhZGVyLgorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTY2NTAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBUZXN0IGZvciBpbnN0cnVtZW50ZWQgdmVjdG9yLgorCisg
ICAgICAgICogdGVzdHMvTWVtb3J5SW5zdHJ1bWVudGF0aW9uVGVzdC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpJbnN0cnVtZW50ZWRPd25lcjo6SW5zdHJ1bWVudGVkT3duZXIpOgorICAgICAgICAo
V2ViQ29yZTo6VEVTVCk6CisgICAgICAgIChXZWJDb3JlKToKKwogMjAxMi0wOS0yMCAgVG9ueSBD
aGFuZyAgPHRvbnlAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFtjaHJvbWl1bV0gVW5yZXZpZXdl
ZCBidWlsZCBmaXguIHdlYmtpdF91bml0X3Rlc3RzIGhhdmUgZ2xvYmFsIGNvbnN0cnVjdG9ycy4K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvR05VbWFrZWZpbGUubGlzdC5hbSBiL1NvdXJjZS9XVEYv
R05VbWFrZWZpbGUubGlzdC5hbQppbmRleCBlOGU0MmVkZDM1NTJlZGU1NWFmMTg0MjExNTFmMGVi
YjkzMzk2Yjg1Li41MmIzNzQ4YTc1ZTc3ZTk5MDcyODVmYzdjZGYwNGM2M2E2NjdiZDQxIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV1RGL0dOVW1ha2VmaWxlLmxpc3QuYW0KKysrIGIvU291cmNlL1dURi9H
TlVtYWtlZmlsZS5saXN0LmFtCkBAIC04MCw2ICs4MCw4IEBAIHd0Zl9zb3VyY2VzICs9IFwKICAg
ICBTb3VyY2UvV1RGL3d0Zi9NZWRpYVRpbWUuaCBcCiAgICAgU291cmNlL1dURi93dGYvTWVkaWFU
aW1lLmNwcCBcCiAgICAgU291cmNlL1dURi93dGYvTWVtb3J5SW5zdHJ1bWVudGF0aW9uLmggXAor
ICAgIFNvdXJjZS9XVEYvd3RmL01lbW9yeUluc3RydW1lbnRhdGlvbkhhc2hTZXQuaCBcCisgICAg
U291cmNlL1dURi93dGYvTWVtb3J5SW5zdHJ1bWVudGF0aW9uVmVjdG9yLmggXAogICAgIFNvdXJj
ZS9XVEYvd3RmL01lc3NhZ2VRdWV1ZS5oIFwKICAgICBTb3VyY2UvV1RGL3d0Zi9NZXRhQWxsb2Nh
dG9yLmNwcCBcCiAgICAgU291cmNlL1dURi93dGYvTWV0YUFsbG9jYXRvci5oIFwKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XVEYvV1RGLmd5cGkgYi9Tb3VyY2UvV1RGL1dURi5neXBpCmluZGV4IDVkY2Qw
MWVkN2QzYTRiN2E5YzMxODFiNTRhMWFhNGM1YTlmMjEzODEuLjA0MjBlNTA0NzJmYmI2YjE4MzM4
OTU1ZjYyNjNlZWEzOTIxNjI1YWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvV1RGLmd5cGkKKysr
IGIvU291cmNlL1dURi9XVEYuZ3lwaQpAQCAtNTAsNiArNTAsOCBAQAogICAgICAgICAgICAgJ3d0
Zi9NYWluVGhyZWFkLmgnLAogICAgICAgICAgICAgJ3d0Zi9NYXRoRXh0cmFzLmgnLAogICAgICAg
ICAgICAgJ3d0Zi9NZW1vcnlJbnN0cnVtZW50YXRpb24uaCcsCisgICAgICAgICAgICAnd3RmL01l
bW9yeUluc3RydW1lbnRhdGlvbkhhc2hTZXQuaCcsCisgICAgICAgICAgICAnd3RmL01lbW9yeUlu
c3RydW1lbnRhdGlvblZlY3Rvci5oJywKICAgICAgICAgICAgICd3dGYvTWVzc2FnZVF1ZXVlLmgn
LAogICAgICAgICAgICAgJ3d0Zi9Ob25Db3B5aW5nU29ydC5oJywKICAgICAgICAgICAgICd3dGYv
Tm9uY29weWFibGUuaCcsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL1dURi5wcm8gYi9Tb3VyY2Uv
V1RGL1dURi5wcm8KaW5kZXggYmMwYTg3NzBlZjFhNjdiZjc1YjliMjVlNTQ2MWJkNDM5NWEyZGQz
OC4uMjRmNzMzNTUxZDZlZGZhNjRkMmY2MTVkYzFhOWZmNjczZWE4NTAyNSAxMDA2NDQKLS0tIGEv
U291cmNlL1dURi9XVEYucHJvCisrKyBiL1NvdXJjZS9XVEYvV1RGLnBybwpAQCAtODcsNiArODcs
OCBAQCBIRUFERVJTICs9IFwKICAgICBNRDUuaCBcCiAgICAgTWVkaWFUaW1lLmggXAogICAgIE1l
bW9yeUluc3RydW1lbnRhdGlvbi5oIFwKKyAgICBNZW1vcnlJbnN0cnVtZW50YXRpb25IYXNoU2V0
LmggXAorICAgIE1lbW9yeUluc3RydW1lbnRhdGlvblZlY3Rvci5oIFwKICAgICBNZXNzYWdlUXVl
dWUuaCBcCiAgICAgTWV0YUFsbG9jYXRvci5oIFwKICAgICBNZXRhQWxsb2NhdG9ySGFuZGxlLmgg
XApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi9XVEYudmNwcm9qL1dURi52Y3Byb2ogYi9Tb3VyY2Uv
V1RGL1dURi52Y3Byb2ovV1RGLnZjcHJvagppbmRleCA0YjJjYzYyMWFlMTAwN2QzY2IxM2E1YzZk
YTJhMjU3MWUxMTZkZGE1Li42MzVmODljYTJiZWZiZGUzYmY0NTA3NzQzMWNmNzBhNjlhZGRjYTVh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL1dURi52Y3Byb2ovV1RGLnZjcHJvagorKysgYi9Tb3Vy
Y2UvV1RGL1dURi52Y3Byb2ovV1RGLnZjcHJvagpAQCAtOTA1LDYgKzkwNSwxNCBAQAogCQkJPgog
CQk8L0ZpbGU+CiAJCTxGaWxlCisJCSAgICAgICAgUmVsYXRpdmVQYXRoPSIuLlx3dGZcTWVtb3J5
SW5zdHJ1bWVudGF0aW9uSGFzaFNldC5oIgorCQkJPgorCQk8L0ZpbGU+CisJCTxGaWxlCisJCSAg
ICAgICAgUmVsYXRpdmVQYXRoPSIuLlx3dGZcTWVtb3J5SW5zdHJ1bWVudGF0aW9uVmVjdG9yLmgi
CisJCQk+CisJCTwvRmlsZT4KKwkJPEZpbGUKIAkJCVJlbGF0aXZlUGF0aD0iLi5cd3RmXE1lc3Nh
Z2VRdWV1ZS5oIgogCQkJPgogCQk8L0ZpbGU+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL1dURi54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dURi9XVEYueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagppbmRleCA1MmFmN2I5Y2VjYzVkMWE1MmFlMDhkOTdiNDIyYjNlNWFhYmQwMDc2
Li41YTk4MDU5NGUwNTQ4YjVhM2ZkNWY2ZDkzMTU5MWRiYWNiMGI0ZDI3IDEwMDY0NAotLS0gYS9T
b3VyY2UvV1RGL1dURi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XVEYv
V1RGLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTE2LDcgKzE2LDkgQEAKIAkJMkNDRDg5
MkExNUMwMzkwMjAwMjg1MDgzIC8qIEdyZWdvcmlhbkRhdGVUaW1lLmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJDQ0Q4OTI5MTVDMDM5MDIwMDI4NTA4
MyAvKiBHcmVnb3JpYW5EYXRlVGltZS5jcHAgKi87IH07CiAJCTQzMzBGMzhGMTU3NDVCMDUwMEFB
RkE4RiAvKiBVUkxTdHJpbmcuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gNDMzMEYzOEUxNTc0NUIwNTAwQUFGQThGIC8qIFVSTFN0cmluZy5jcHAgKi87
IH07CiAJCTRGMDMyMUJDMTU2QUE4RDEwMDZFQkFGNiAvKiBCaXRBcnJheS5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNEYwMzIxQkIxNTZBQThEMTAwNkVC
QUY2IC8qIEJpdEFycmF5LmggKi87IH07CisJCTRGMUIyREI2MTYwQjQ0QUEwMDU4NjU1OSAvKiBN
ZW1vcnlJbnN0cnVtZW50YXRpb25IYXNoU2V0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA0RjFCMkRCNTE2MEI0NEFBMDA1ODY1NTkgLyogTWVtb3J5SW5z
dHJ1bWVudGF0aW9uSGFzaFNldC5oICovOyB9OwogCQk0RjFEMTE1NDE1RkYxMUJFMDAyNkU5MDgg
LyogTWVtb3J5SW5zdHJ1bWVudGF0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA0RjFEMTE1MzE1RkYxMUJFMDAyNkU5MDggLyogTWVtb3J5SW5zdHJ1
bWVudGF0aW9uLmggKi87IH07CisJCTRGQ0I3MTBBMTYwQTFBMDcwMDg0MjVFQyAvKiBNZW1vcnlJ
bnN0cnVtZW50YXRpb25WZWN0b3IuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDRGQ0I3MTA5MTYwQTFBMDcwMDg0MjVFQyAvKiBNZW1vcnlJbnN0cnVtZW50
YXRpb25WZWN0b3IuaCAqLzsgfTsKIAkJN0UyOUMzM0UxNUZGRDc5QjAwNTE2RDYxIC8qIE9iamNS
dW50aW1lRXh0cmFzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA3RTI5QzMzRDE1RkZENzlCMDA1MTZENjEgLyogT2JqY1J1bnRpbWVFeHRyYXMuaCAqLzsg
fTsKIAkJODEzNDAxMzgxNUIwOTJGRDAwMUZGMEI4IC8qIEJhc2U2NC5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4MTM0MDEzNjE1QjA5MkZEMDAxRkYw
QjggLyogQmFzZTY0LmNwcCAqLzsgfTsKIAkJODEzNDAxMzkxNUIwOTJGRDAwMUZGMEI4IC8qIEJh
c2U2NC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODEz
NDAxMzcxNUIwOTJGRDAwMUZGMEI4IC8qIEJhc2U2NC5oICovOyB9OwpAQCAtMjY0LDcgKzI2Niw5
IEBACiAJCTJDQ0Q4OTI5MTVDMDM5MDIwMDI4NTA4MyAvKiBHcmVnb3JpYW5EYXRlVGltZS5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBHcmVnb3JpYW5EYXRlVGltZS5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQzMzBGMzhFMTU3NDVCMDUwMEFBRkE4
RiAvKiBVUkxTdHJpbmcuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
VVJMU3RyaW5nLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNEYwMzIxQkIxNTZB
QThEMTAwNkVCQUY2IC8qIEJpdEFycmF5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IEJpdEFycmF5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTRGMUIyREI1MTYw
QjQ0QUEwMDU4NjU1OSAvKiBNZW1vcnlJbnN0cnVtZW50YXRpb25IYXNoU2V0LmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1lbW9yeUluc3RydW1lbnRhdGlvbkhhc2hTZXQuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNEYxRDExNTMxNUZGMTFCRTAwMjZFOTA4IC8q
IE1lbW9yeUluc3RydW1lbnRhdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBNZW1vcnlJbnN0cnVtZW50YXRpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
NEZDQjcxMDkxNjBBMUEwNzAwODQyNUVDIC8qIE1lbW9yeUluc3RydW1lbnRhdGlvblZlY3Rvci5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBNZW1vcnlJbnN0cnVtZW50YXRpb25W
ZWN0b3IuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNUQyNDdCNjIxNDY4OUI4NjAw
RTc4Qjc2IC8qIGxpYldURi5hICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGV4cGxpY2l0
RmlsZVR5cGUgPSBhcmNoaXZlLmFyOyBpbmNsdWRlSW5JbmRleCA9IDA7IHBhdGggPSBsaWJXVEYu
YTsgc291cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsKIAkJNUQyNDdCNkUxNDY4OUM0
NzAwRTc4Qjc2IC8qIEJhc2UueGNjb25maWcgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
bGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0LnhjY29uZmlnOyBwYXRoID0gQmFzZS54Y2NvbmZpZzsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNUQyNDdCNkYxNDY4OUM0NzAwRTc4Qjc2IC8q
IENvbXBpbGVyVmVyc2lvbi54Y2NvbmZpZyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBs
YXN0S25vd25GaWxlVHlwZSA9IHRleHQueGNjb25maWc7IHBhdGggPSBDb21waWxlclZlcnNpb24u
eGNjb25maWc7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC02NTAsNiArNjU0LDggQEAK
IAkJCQlDRDU0OTdBQTE1ODU3RDAzMDBCNUJDMzAgLyogTWVkaWFUaW1lLmNwcCAqLywKIAkJCQlD
RDU0OTdBQjE1ODU3RDAzMDBCNUJDMzAgLyogTWVkaWFUaW1lLmggKi8sCiAJCQkJNEYxRDExNTMx
NUZGMTFCRTAwMjZFOTA4IC8qIE1lbW9yeUluc3RydW1lbnRhdGlvbi5oICovLAorCQkJCTRGQ0I3
MTA5MTYwQTFBMDcwMDg0MjVFQyAvKiBNZW1vcnlJbnN0cnVtZW50YXRpb25WZWN0b3IuaCAqLywK
KwkJCQk0RjFCMkRCNTE2MEI0NEFBMDA1ODY1NTkgLyogTWVtb3J5SW5zdHJ1bWVudGF0aW9uSGFz
aFNldC5oICovLAogCQkJCUE4QTQ3MkNDMTUxQTgyNUIwMDQxMjNGRiAvKiBNZXNzYWdlUXVldWUu
aCAqLywKIAkJCQlBOEE0NzJDRDE1MUE4MjVCMDA0MTIzRkYgLyogTWV0YUFsbG9jYXRvci5jcHAg
Ki8sCiAJCQkJQThBNDcyQ0UxNTFBODI1QjAwNDEyM0ZGIC8qIE1ldGFBbGxvY2F0b3IuaCAqLywK
QEAgLTEwNzYsNiArMTA4Miw4IEBACiAJCQkJQThBNDc0NDYxNTFBODI1QjAwNDEyM0ZGIC8qIFdU
RlN0cmluZy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQThBNDc0ODcxNTFBODI1QjAwNDEyM0ZGIC8q
IFdURlRocmVhZERhdGEuaCBpbiBIZWFkZXJzICovLAogCQkJCTRGMUQxMTU0MTVGRjExQkUwMDI2
RTkwOCAvKiBNZW1vcnlJbnN0cnVtZW50YXRpb24uaCBpbiBIZWFkZXJzICovLAorCQkJCTRGQ0I3
MTBBMTYwQTFBMDcwMDg0MjVFQyAvKiBNZW1vcnlJbnN0cnVtZW50YXRpb25WZWN0b3IuaCBpbiBI
ZWFkZXJzICovLAorCQkJCTRGMUIyREI2MTYwQjQ0QUEwMDU4NjU1OSAvKiBNZW1vcnlJbnN0cnVt
ZW50YXRpb25IYXNoU2V0LmggaW4gSGVhZGVycyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVw
bG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYv
d3RmL0hhc2hTZXQuaCBiL1NvdXJjZS9XVEYvd3RmL0hhc2hTZXQuaAppbmRleCAxYjNiMmUyODcz
MzQzOWIxMGJiNzUzYzkwNGQ1NGZmZWM1NWYyNWNiLi5lNmVlNTkyOWFmYWEzNTQzY2VlZTM5ZDY5
NzU0MGY3OTRmZTIxOTdiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9IYXNoU2V0LmgKKysr
IGIvU291cmNlL1dURi93dGYvSGFzaFNldC5oCkBAIC0yNyw2ICsyNyw3IEBACiBuYW1lc3BhY2Ug
V1RGIHsKIAogICAgIHN0cnVjdCBJZGVudGl0eUV4dHJhY3RvcjsKKyAgICBjbGFzcyBNZW1vcnlP
YmplY3RJbmZvOwogICAgIAogICAgIHRlbXBsYXRlPHR5cGVuYW1lIFZhbHVlLCB0eXBlbmFtZSBI
YXNoRnVuY3Rpb25zLCB0eXBlbmFtZSBUcmFpdHM+IGNsYXNzIEhhc2hTZXQ7CiAgICAgdGVtcGxh
dGU8dHlwZW5hbWUgVmFsdWUsIHR5cGVuYW1lIEhhc2hGdW5jdGlvbnMsIHR5cGVuYW1lIFRyYWl0
cz4KQEAgLTk2LDYgKzk3LDcgQEAgbmFtZXNwYWNlIFdURiB7CiAgICAgcHJpdmF0ZToKICAgICAg
ICAgZnJpZW5kIHZvaWQgZGVsZXRlQWxsVmFsdWVzPD4oY29uc3QgSGFzaFNldCYpOwogICAgICAg
ICBmcmllbmQgdm9pZCBmYXN0RGVsZXRlQWxsVmFsdWVzPD4oY29uc3QgSGFzaFNldCYpOworICAg
ICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBWLCB0eXBlbmFtZSBILCB0eXBlbmFtZSBUPiBmcmllbmQg
dm9pZCByZXBvcnRNZW1vcnlVc2FnZShjb25zdCBIYXNoU2V0PFYsIEgsIFQ+KiBjb25zdCYsIE1l
bW9yeU9iamVjdEluZm8qKTsKIAogICAgICAgICBIYXNoVGFibGVUeXBlIG1faW1wbDsKICAgICB9
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvSGFzaFRhYmxlLmggYi9Tb3VyY2UvV1RGL3d0
Zi9IYXNoVGFibGUuaAppbmRleCAxY2UzYzVjZjY4OGVmMGE4MWUxMDYxYmM2Y2UyNjIwYmUzZDk4
MDBlLi5jYzFmNmZlYzQwYzdkNGYwNDk2MmE0MmRjNDZlOGIzZjc3M2EyNmRlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV1RGL3d0Zi9IYXNoVGFibGUuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9IYXNoVGFi
bGUuaApAQCAtMzA3LDYgKzMwNyw4IEBAIG5hbWVzcGFjZSBXVEYgewogICAgICAgICBib29sIGlz
TmV3RW50cnk7CiAgICAgfTsKIAorICAgIGNsYXNzIE1lbW9yeU9iamVjdEluZm87CisKICAgICB0
ZW1wbGF0ZTx0eXBlbmFtZSBLZXksIHR5cGVuYW1lIFZhbHVlLCB0eXBlbmFtZSBFeHRyYWN0b3Is
IHR5cGVuYW1lIEhhc2hGdW5jdGlvbnMsIHR5cGVuYW1lIFRyYWl0cywgdHlwZW5hbWUgS2V5VHJh
aXRzPgogICAgIGNsYXNzIEhhc2hUYWJsZSB7CiAgICAgcHVibGljOgpAQCAtNDg0LDYgKzQ4Niw4
IEBAIG5hbWVzcGFjZSBXVEYgewogICAgICAgICBzdGF0aWMgY29uc3QgaW50IG1fbWF4TG9hZCA9
IDI7CiAgICAgICAgIHN0YXRpYyBjb25zdCBpbnQgbV9taW5Mb2FkID0gNjsKIAorICAgICAgICB0
ZW1wbGF0ZTx0eXBlbmFtZSBLLCB0eXBlbmFtZSBWLCB0eXBlbmFtZSBFLCB0eXBlbmFtZSBILCB0
eXBlbmFtZSBULCB0eXBlbmFtZSBLVD4gZnJpZW5kIHZvaWQgcmVwb3J0TWVtb3J5VXNhZ2UoY29u
c3QgSGFzaFRhYmxlPEssIFYsIEUsIEgsIFQsIEtUPiogY29uc3QmLCBNZW1vcnlPYmplY3RJbmZv
Kik7CisKICAgICAgICAgVmFsdWVUeXBlKiBtX3RhYmxlOwogICAgICAgICBpbnQgbV90YWJsZVNp
emU7CiAgICAgICAgIGludCBtX3RhYmxlU2l6ZU1hc2s7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RG
L3d0Zi9NZW1vcnlJbnN0cnVtZW50YXRpb24uaCBiL1NvdXJjZS9XVEYvd3RmL01lbW9yeUluc3Ry
dW1lbnRhdGlvbi5oCmluZGV4IDEzMWFmODQ5N2FjZWFkM2E5YjljYWMyZGVlMTc0N2M4MmU5MGI2
MTMuLmI2YTM5ODYwOGRhY2ZhOGUyZDRlYzdkMmNhYzNkZmQzZTYwMWNjNjIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XVEYvd3RmL01lbW9yeUluc3RydW1lbnRhdGlvbi5oCisrKyBiL1NvdXJjZS9XVEYv
d3RmL01lbW9yeUluc3RydW1lbnRhdGlvbi5oCkBAIC04MSw2ICs4MSw4IEBAIHByaXZhdGU6CiAg
ICAgc2l6ZV90IG1fb2JqZWN0U2l6ZTsKIH07CiAKK3RlbXBsYXRlPHR5cGVuYW1lIFQ+IHZvaWQg
cmVwb3J0TWVtb3J5VXNhZ2UoY29uc3QgVCogY29uc3QmLCBNZW1vcnlPYmplY3RJbmZvKik7CisK
IGNsYXNzIE1lbW9yeUluc3RydW1lbnRhdGlvbiB7CiBwdWJsaWM6CiAgICAgdmlydHVhbCB+TWVt
b3J5SW5zdHJ1bWVudGF0aW9uKCkgeyB9CkBAIC0xMDcsNiArMTA5LDcgQEAgcHJpdmF0ZToKICAg
ICB2aXJ0dWFsIHZvaWQgcHJvY2Vzc0RlZmVycmVkSW5zdHJ1bWVudGVkUG9pbnRlcnMoKSA9IDA7
CiAKICAgICBmcmllbmQgY2xhc3MgTWVtb3J5Q2xhc3NJbmZvOworICAgIHRlbXBsYXRlPHR5cGVu
YW1lIFQ+IGZyaWVuZCB2b2lkIHJlcG9ydE1lbW9yeVVzYWdlKGNvbnN0IFQqIGNvbnN0JiwgTWVt
b3J5T2JqZWN0SW5mbyopOwogCiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4gc3RhdGljIHZvaWQg
c2VsZWN0SW5zdHJ1bWVudGF0aW9uTWV0aG9kKGNvbnN0IFQqIGNvbnN0JiBvYmplY3QsIE1lbW9y
eU9iamVjdEluZm8qIG1lbW9yeU9iamVjdEluZm8pCiAgICAgewpAQCAtMTkxLDEyICsxOTQsNyBA
QCBwdWJsaWM6CiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgTT4gdm9pZCBhZGRNZW1iZXIoY29uc3Qg
TSYgbWVtYmVyKSB7IG1fbWVtb3J5SW5zdHJ1bWVudGF0aW9uLT5hZGRPYmplY3QobWVtYmVyLCBt
X29iamVjdFR5cGUpOyB9CiAKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBIYXNoTWFwVHlwZT4gdm9p
ZCBhZGRIYXNoTWFwKGNvbnN0IEhhc2hNYXBUeXBlJiBtYXApIHsgbV9tZW1vcnlJbnN0cnVtZW50
YXRpb24tPmFkZEhhc2hNYXAobWFwLCBtX29iamVjdFR5cGUsIHRydWUpOyB9Ci0gICAgdGVtcGxh
dGU8dHlwZW5hbWUgSGFzaFNldFR5cGU+IHZvaWQgYWRkSGFzaFNldChjb25zdCBIYXNoU2V0VHlw
ZSYgc2V0KSB7IG1fbWVtb3J5SW5zdHJ1bWVudGF0aW9uLT5hZGRIYXNoU2V0KHNldCwgbV9vYmpl
Y3RUeXBlLCB0cnVlKTsgfQogICAgIHRlbXBsYXRlPHR5cGVuYW1lIEhhc2hTZXRUeXBlPiB2b2lk
IGFkZEhhc2hDb3VudGVkU2V0KGNvbnN0IEhhc2hTZXRUeXBlJiBzZXQpIHsgbV9tZW1vcnlJbnN0
cnVtZW50YXRpb24tPmFkZEhhc2hTZXQoc2V0LCBtX29iamVjdFR5cGUsIHRydWUpOyB9Ci0gICAg
dGVtcGxhdGU8dHlwZW5hbWUgSGFzaFNldFR5cGU+IHZvaWQgYWRkSW5zdHJ1bWVudGVkSGFzaFNl
dChjb25zdCBIYXNoU2V0VHlwZSYgc2V0KSB7IG1fbWVtb3J5SW5zdHJ1bWVudGF0aW9uLT5hZGRJ
bnN0cnVtZW50ZWRDb2xsZWN0aW9uKHNldCwgbV9vYmplY3RUeXBlLCB0cnVlKTsgfQotICAgIHRl
bXBsYXRlPHR5cGVuYW1lIFZlY3RvclR5cGU+IHZvaWQgYWRkSW5zdHJ1bWVudGVkVmVjdG9yKGNv
bnN0IFZlY3RvclR5cGUmIHZlY3RvcikgeyBtX21lbW9yeUluc3RydW1lbnRhdGlvbi0+YWRkSW5z
dHJ1bWVudGVkQ29sbGVjdGlvbih2ZWN0b3IsIG1fb2JqZWN0VHlwZSwgdHJ1ZSk7IH0KLSAgICB0
ZW1wbGF0ZTx0eXBlbmFtZSBWZWN0b3JUeXBlPiB2b2lkIGFkZEluc3RydW1lbnRlZFZlY3RvclB0
cihjb25zdCBPd25QdHI8VmVjdG9yVHlwZT4mIHZlY3RvcikgeyBtX21lbW9yeUluc3RydW1lbnRh
dGlvbi0+YWRkSW5zdHJ1bWVudGVkQ29sbGVjdGlvbigqdmVjdG9yLCBtX29iamVjdFR5cGUsIGZh
bHNlKTsgfQotICAgIHRlbXBsYXRlPHR5cGVuYW1lIFZlY3RvclR5cGU+IHZvaWQgYWRkSW5zdHJ1
bWVudGVkVmVjdG9yUHRyKGNvbnN0IFZlY3RvclR5cGUqIGNvbnN0JiB2ZWN0b3IpIHsgbV9tZW1v
cnlJbnN0cnVtZW50YXRpb24tPmFkZEluc3RydW1lbnRlZENvbGxlY3Rpb24oKnZlY3RvciwgbV9v
YmplY3RUeXBlLCBmYWxzZSk7IH0KICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBNYXBUeXBlPiB2b2lk
IGFkZEluc3RydW1lbnRlZE1hcEVudHJpZXMoY29uc3QgTWFwVHlwZSYgbWFwKSB7IG1fbWVtb3J5
SW5zdHJ1bWVudGF0aW9uLT5hZGRJbnN0cnVtZW50ZWRNYXBFbnRyaWVzKG1hcCwgbV9vYmplY3RU
eXBlKTsgfQogICAgIHRlbXBsYXRlPHR5cGVuYW1lIE1hcFR5cGU+IHZvaWQgYWRkSW5zdHJ1bWVu
dGVkTWFwVmFsdWVzKGNvbnN0IE1hcFR5cGUmIG1hcCkgeyBtX21lbW9yeUluc3RydW1lbnRhdGlv
bi0+YWRkSW5zdHJ1bWVudGVkTWFwVmFsdWVzKG1hcCwgbV9vYmplY3RUeXBlKTsgfQogICAgIHRl
bXBsYXRlPHR5cGVuYW1lIExpc3RIYXNoU2V0VHlwZT4gdm9pZCBhZGRMaXN0SGFzaFNldChjb25z
dCBMaXN0SGFzaFNldFR5cGUmIHNldCkgeyBtX21lbW9yeUluc3RydW1lbnRhdGlvbi0+YWRkTGlz
dEhhc2hTZXQoc2V0LCBtX29iamVjdFR5cGUsIHRydWUpOyB9CkBAIC0yMTMsMTEgKzIxMSwxNyBA
QCBwcml2YXRlOgogfTsKIAogdGVtcGxhdGU8dHlwZW5hbWUgVD4KK3ZvaWQgcmVwb3J0TWVtb3J5
VXNhZ2UoY29uc3QgVCogY29uc3QmIG9iamVjdCwgTWVtb3J5T2JqZWN0SW5mbyogbWVtb3J5T2Jq
ZWN0SW5mbykKK3sKKyAgICBNZW1vcnlJbnN0cnVtZW50YXRpb246OnNlbGVjdEluc3RydW1lbnRh
dGlvbk1ldGhvZDxUPihvYmplY3QsIG1lbW9yeU9iamVjdEluZm8pOworfQorCit0ZW1wbGF0ZTx0
eXBlbmFtZSBUPgogdm9pZCBNZW1vcnlJbnN0cnVtZW50YXRpb246OmFkZE9iamVjdEltcGwoY29u
c3QgVCogY29uc3QmIG9iamVjdCwgTWVtb3J5T2JqZWN0VHlwZSBvd25lck9iamVjdFR5cGUsIE1l
bW9yeU93bmluZ1R5cGUgb3duaW5nVHlwZSkKIHsKICAgICBpZiAob3duaW5nVHlwZSA9PSBieVJl
ZmVyZW5jZSkgewogICAgICAgICBNZW1vcnlPYmplY3RJbmZvIG1lbW9yeU9iamVjdEluZm8odGhp
cywgb3duZXJPYmplY3RUeXBlKTsKLSAgICAgICAgc2VsZWN0SW5zdHJ1bWVudGF0aW9uTWV0aG9k
PFQ+KG9iamVjdCwgJm1lbW9yeU9iamVjdEluZm8pOworICAgICAgICByZXBvcnRNZW1vcnlVc2Fn
ZShvYmplY3QsICZtZW1vcnlPYmplY3RJbmZvKTsKICAgICB9IGVsc2UgewogICAgICAgICBpZiAo
IW9iamVjdCB8fCB2aXNpdGVkKG9iamVjdCkpCiAgICAgICAgICAgICByZXR1cm47CkBAIC0zMTMs
MTAgKzMxNywxNCBAQCB0ZW1wbGF0ZTx0eXBlbmFtZSBUPgogdm9pZCBNZW1vcnlJbnN0cnVtZW50
YXRpb246Okluc3RydW1lbnRlZFBvaW50ZXI8VD46OnByb2Nlc3MoTWVtb3J5SW5zdHJ1bWVudGF0
aW9uKiBtZW1vcnlJbnN0cnVtZW50YXRpb24pCiB7CiAgICAgTWVtb3J5T2JqZWN0SW5mbyBtZW1v
cnlPYmplY3RJbmZvKG1lbW9yeUluc3RydW1lbnRhdGlvbiwgbV9vd25lck9iamVjdFR5cGUpOwot
ICAgIHNlbGVjdEluc3RydW1lbnRhdGlvbk1ldGhvZDxUPihtX3BvaW50ZXIsICZtZW1vcnlPYmpl
Y3RJbmZvKTsKKyAgICByZXBvcnRNZW1vcnlVc2FnZShtX3BvaW50ZXIsICZtZW1vcnlPYmplY3RJ
bmZvKTsKICAgICBtZW1vcnlJbnN0cnVtZW50YXRpb24tPmNvdW50T2JqZWN0U2l6ZShtZW1vcnlP
YmplY3RJbmZvLm9iamVjdFR5cGUoKSwgbWVtb3J5T2JqZWN0SW5mby5vYmplY3RTaXplKCkpOwog
fQogCisvLyBMaW5rIHRpbWUgZ3VhcmQgZm9yIHZlY3RvciBtZW1vcnkgaW5zdHJ1bWVudGF0aW9u
LgordGVtcGxhdGU8dHlwZW5hbWUgVCwgc2l6ZV90IGlubGluZUNhcGFjaXR5PiBjbGFzcyBWZWN0
b3I7Cit0ZW1wbGF0ZTx0eXBlbmFtZSBULCBzaXplX3QgaW5saW5lQ2FwYWNpdHk+IHZvaWQgcmVw
b3J0TWVtb3J5VXNhZ2UoY29uc3QgVmVjdG9yPFQsIGlubGluZUNhcGFjaXR5PiogY29uc3QmLCBN
ZW1vcnlPYmplY3RJbmZvKik7CisKIH0gLy8gbmFtZXNwYWNlIFdURgogCiAjZW5kaWYgLy8gIWRl
ZmluZWQoTWVtb3J5SW5zdHJ1bWVudGF0aW9uX2gpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0
Zi9NZW1vcnlJbnN0cnVtZW50YXRpb25IYXNoU2V0LmggYi9Tb3VyY2UvV1RGL3d0Zi9NZW1vcnlJ
bnN0cnVtZW50YXRpb25IYXNoU2V0LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOGZmNDcxZDY2YWNhMjQzMzM3M2E1
MGM3MTY1OGMwZDA0NTA3NjVmNgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XVEYvd3RmL01l
bW9yeUluc3RydW1lbnRhdGlvbkhhc2hTZXQuaApAQCAtMCwwICsxLDY1IEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDEyIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1
dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBu
YW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHBy
b21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3Bl
Y2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJB
UyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05U
UklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwK
KyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBNZW1v
cnlJbnN0cnVtZW50YXRpb25IYXNoU2V0X2gKKyNkZWZpbmUgTWVtb3J5SW5zdHJ1bWVudGF0aW9u
SGFzaFNldF9oCisKKyNpbmNsdWRlIDx3dGYvTWVtb3J5SW5zdHJ1bWVudGF0aW9uLmg+CisjaW5j
bHVkZSA8d3RmL3RleHQvU3RyaW5nSGFzaC5oPgorCituYW1lc3BhY2UgV1RGIHsKKwordGVtcGxh
dGU8dHlwZW5hbWUgST4KK3ZvaWQgaW5zdHJ1bWVudFZhbHVlcyhNZW1vcnlDbGFzc0luZm8mIGlu
Zm8sIEkgaXRlcmF0b3IsIEkgZW5kKQoreworICAgIHdoaWxlIChpdGVyYXRvciAhPSBlbmQpIHsK
KyAgICAgICAgaW5mby5hZGRNZW1iZXIoKml0ZXJhdG9yKTsKKyAgICAgICAgKytpdGVyYXRvcjsK
KyAgICB9Cit9CisKK3RlbXBsYXRlPHR5cGVuYW1lIFZhbHVlQXJnLCB0eXBlbmFtZSBIYXNoQXJn
LCB0eXBlbmFtZSBUcmFpdHNBcmc+Cit2b2lkIHJlcG9ydE1lbW9yeVVzYWdlKGNvbnN0IEhhc2hT
ZXQ8VmFsdWVBcmcsIEhhc2hBcmcsIFRyYWl0c0FyZz4qIGNvbnN0JiBoYXNoU2V0LCBNZW1vcnlP
YmplY3RJbmZvKiBtZW1vcnlPYmplY3RJbmZvKQoreworICAgIE1lbW9yeUNsYXNzSW5mbyBpbmZv
KG1lbW9yeU9iamVjdEluZm8sIGhhc2hTZXQpOworICAgIGluZm8uYWRkTWVtYmVyKGhhc2hTZXQt
Pm1faW1wbCk7CisgICAgaW5zdHJ1bWVudFZhbHVlcyhpbmZvLCBoYXNoU2V0LT5iZWdpbigpLCBo
YXNoU2V0LT5lbmQoKSk7Cit9CisKK3RlbXBsYXRlPHR5cGVuYW1lIEtleSwgdHlwZW5hbWUgVmFs
dWUsIHR5cGVuYW1lIEV4dHJhY3RvciwgdHlwZW5hbWUgSGFzaEZ1bmN0aW9ucywgdHlwZW5hbWUg
VHJhaXRzLCB0eXBlbmFtZSBLZXlUcmFpdHM+Cit2b2lkIHJlcG9ydE1lbW9yeVVzYWdlKGNvbnN0
IEhhc2hUYWJsZTxLZXksIFZhbHVlLCBFeHRyYWN0b3IsIEhhc2hGdW5jdGlvbnMsIFRyYWl0cywg
S2V5VHJhaXRzPiogY29uc3QmIGhhc2hUYWJsZSwgTWVtb3J5T2JqZWN0SW5mbyogbWVtb3J5T2Jq
ZWN0SW5mbykKK3sKKyAgICBNZW1vcnlDbGFzc0luZm8gaW5mbyhtZW1vcnlPYmplY3RJbmZvLCBo
YXNoVGFibGUpOworICAgIGluZm8uYWRkUmF3QnVmZmVyKGhhc2hUYWJsZS0+bV90YWJsZSwgc2l6
ZW9mKHR5cGVuYW1lIEhhc2hUYWJsZTxLZXksIFZhbHVlLCBFeHRyYWN0b3IsIEhhc2hGdW5jdGlv
bnMsIFRyYWl0cywgS2V5VHJhaXRzPjo6VmFsdWVUeXBlKSAqIGhhc2hUYWJsZS0+Y2FwYWNpdHko
KSk7Cit9CisKK30KKworI2VuZGlmIC8vICFkZWZpbmVkKE1lbW9yeUluc3RydW1lbnRhdGlvbkhh
c2hTZXRfaCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL01lbW9yeUluc3RydW1lbnRhdGlv
blZlY3Rvci5oIGIvU291cmNlL1dURi93dGYvTWVtb3J5SW5zdHJ1bWVudGF0aW9uVmVjdG9yLmgK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uY2MzNDNhMDY5YmRmMTRjNmQ4ZjFhY2FiYzc0Y2M1YzM2MGZkNzM1MgotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XVEYvd3RmL01lbW9yeUluc3RydW1lbnRhdGlvblZlY3Rv
ci5oCkBAIC0wLDAgKzEsNTkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBh
cmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgICogUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29w
eXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgorICogICAgICogTmVpdGhlciB0
aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworICogY29udHJpYnV0
b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZy
b20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1p
c3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hU
IEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgor
ICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICog
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIE1lbW9yeUluc3RydW1lbnRhdGlvblZlY3Rvcl9o
CisjZGVmaW5lIE1lbW9yeUluc3RydW1lbnRhdGlvblZlY3Rvcl9oCisKKyNpbmNsdWRlIDx3dGYv
TWVtb3J5SW5zdHJ1bWVudGF0aW9uLmg+CisjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgorCituYW1l
c3BhY2UgV1RGIHsKKwordGVtcGxhdGU8dHlwZW5hbWUgVCwgc2l6ZV90IGlubGluZUNhcGFjaXR5
Pgordm9pZCBpbnN0cnVtZW50VmVjdG9yVmFsdWVzKE1lbW9yeUNsYXNzSW5mbyYgaW5mbywgY29u
c3QgVmVjdG9yPFQsIGlubGluZUNhcGFjaXR5PiogY29uc3QmIHZlY3RvcikKK3sKKyAgICBmb3Ig
KHNpemVfdCBpID0gMDsgaSA8IHZlY3Rvci0+c2l6ZSgpOyArK2kpCisgICAgICAgIGluZm8uYWRk
TWVtYmVyKHZlY3Rvci0+YXQoaSkpOworfQorCit0ZW1wbGF0ZTxzaXplX3QgaW5saW5lQ2FwYWNp
dHk+IHZvaWQgaW5zdHJ1bWVudFZlY3RvclZhbHVlcyhNZW1vcnlDbGFzc0luZm8mLCBjb25zdCBW
ZWN0b3I8aW50LCBpbmxpbmVDYXBhY2l0eT4qIGNvbnN0JikgeyB9CisKK3RlbXBsYXRlPHR5cGVu
YW1lIFQsIHNpemVfdCBpbmxpbmVDYXBhY2l0eT4KK3ZvaWQgcmVwb3J0TWVtb3J5VXNhZ2UoY29u
c3QgVmVjdG9yPFQsIGlubGluZUNhcGFjaXR5PiogY29uc3QmIHZlY3RvciwgTWVtb3J5T2JqZWN0
SW5mbyogbWVtb3J5T2JqZWN0SW5mbykKK3sKKyAgICBNZW1vcnlDbGFzc0luZm8gaW5mbyhtZW1v
cnlPYmplY3RJbmZvLCB2ZWN0b3IpOworICAgIGlmIChpbmxpbmVDYXBhY2l0eSA8IHZlY3Rvci0+
Y2FwYWNpdHkoKSkKKyAgICAgICAgaW5mby5hZGRSYXdCdWZmZXIodmVjdG9yLT5kYXRhKCksIHZl
Y3Rvci0+Y2FwYWNpdHkoKSAqIHNpemVvZihUKSk7CisgICAgaW5zdHJ1bWVudFZlY3RvclZhbHVl
cyhpbmZvLCB2ZWN0b3IpOworfQorCit9CisKKyNlbmRpZiAvLyAhZGVmaW5lZChNZW1vcnlJbnN0
cnVtZW50YXRpb25WZWN0b3JfaCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1ND
dXJzb3JJbWFnZVZhbHVlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDdXJzb3JJbWFnZVZh
bHVlLmNwcAppbmRleCA2OGZmYTljMTE2NDc0YTQwYmNkNmQ3ZjJlOWM3ZWExYmU1NTM3Y2U4Li4w
NmQ5M2VhNjAxNDdkMmI3MDZlZjJhOGQ1ODJiMDRmYmJjMmFhNjc4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvQ1NTQ3Vyc29ySW1hZ2VWYWx1ZS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvY3NzL0NTU0N1cnNvckltYWdlVmFsdWUuY3BwCkBAIC0yNiw2ICsyNiw3IEBACiAjaW5jbHVk
ZSAiVHJlZVNjb3BlLmgiCiAjaW5jbHVkZSAiV2ViQ29yZU1lbW9yeUluc3RydW1lbnRhdGlvbi5o
IgogI2luY2x1ZGUgPHd0Zi9NYXRoRXh0cmFzLmg+CisjaW5jbHVkZSA8d3RmL01lbW9yeUluc3Ry
dW1lbnRhdGlvbkhhc2hTZXQuaD4KICNpbmNsdWRlIDx3dGYvVW51c2VkUGFyYW0uaD4KICNpbmNs
dWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIApAQCAtMTM4LDcgKzEzOSw3IEBAIHZvaWQgQ1NT
Q3Vyc29ySW1hZ2VWYWx1ZTo6cmVwb3J0RGVzY2VuZGFudE1lbW9yeVVzYWdlKE1lbW9yeU9iamVj
dEluZm8qIG1lbW9yeU9iCiAgICAgTWVtb3J5Q2xhc3NJbmZvIGluZm8obWVtb3J5T2JqZWN0SW5m
bywgdGhpcywgV2ViQ29yZU1lbW9yeVR5cGVzOjpDU1MpOwogICAgIENTU0ltYWdlVmFsdWU6OnJl
cG9ydERlc2NlbmRhbnRNZW1vcnlVc2FnZShtZW1vcnlPYmplY3RJbmZvKTsKICNpZiBFTkFCTEUo
U1ZHKQotICAgIGluZm8uYWRkSW5zdHJ1bWVudGVkSGFzaFNldChtX3JlZmVyZW5jZWRFbGVtZW50
cyk7CisgICAgaW5mby5hZGRNZW1iZXIobV9yZWZlcmVuY2VkRWxlbWVudHMpOwogI2VuZGlmCiB9
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NHcmFkaWVudFZhbHVlLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NHcmFkaWVudFZhbHVlLmNwcAppbmRleCBmOTcxNWYyN2Y1
ODUxYzkyYTE4NTNkYjQ2YmE3MGJkYWRlMWFlYTI3Li5kMDBjMTMwOGU1MTBiMzBkYmRiNzMzOWRh
ZmFhODc3YmE1MjRjN2VkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTR3JhZGll
bnRWYWx1ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0dyYWRpZW50VmFsdWUuY3Bw
CkBAIC0zNyw2ICszNyw3IEBACiAjaW5jbHVkZSAiUmVuZGVyT2JqZWN0LmgiCiAjaW5jbHVkZSAi
U3R5bGVSZXNvbHZlci5oIgogI2luY2x1ZGUgIldlYkNvcmVNZW1vcnlJbnN0cnVtZW50YXRpb24u
aCIKKyNpbmNsdWRlIDx3dGYvTWVtb3J5SW5zdHJ1bWVudGF0aW9uVmVjdG9yLmg+CiAjaW5jbHVk
ZSA8d3RmL3RleHQvU3RyaW5nQnVpbGRlci5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmlu
Zy5oPgogCkBAIC00NjksNyArNDcwLDcgQEAgdm9pZCBDU1NHcmFkaWVudFZhbHVlOjpyZXBvcnRC
YXNlQ2xhc3NNZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJbmZvKiBtZW1vcnlPYmplY3QKICAgICBp
bmZvLmFkZE1lbWJlcihtX2ZpcnN0WSk7CiAgICAgaW5mby5hZGRNZW1iZXIobV9zZWNvbmRYKTsK
ICAgICBpbmZvLmFkZE1lbWJlcihtX3NlY29uZFkpOwotICAgIGluZm8uYWRkSW5zdHJ1bWVudGVk
VmVjdG9yKG1fc3RvcHMpOworICAgIGluZm8uYWRkTWVtYmVyKG1fc3RvcHMpOwogfQogCiBTdHJp
bmcgQ1NTTGluZWFyR3JhZGllbnRWYWx1ZTo6Y3VzdG9tQ3NzVGV4dCgpIGNvbnN0CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTSW1hZ2VTZXRWYWx1ZS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9jc3MvQ1NTSW1hZ2VTZXRWYWx1ZS5jcHAKaW5kZXggNWU2YmVlNWE2M2NhMzAzNjU3MjRk
YWRhOTY4MGQyMDZmZDFjYjBhOC4uNmUwMmEyMGY5NWFjM2YxNGY0NjFhMWM1MTAwYjRhZDYyYmQ5
ZWYwYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ltYWdlU2V0VmFsdWUuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NJbWFnZVNldFZhbHVlLmNwcApAQCAtMzcsNiAr
MzcsNyBAQAogI2luY2x1ZGUgIlN0eWxlQ2FjaGVkSW1hZ2VTZXQuaCIKICNpbmNsdWRlICJTdHls
ZVBlbmRpbmdJbWFnZS5oIgogI2luY2x1ZGUgIldlYkNvcmVNZW1vcnlJbnN0cnVtZW50YXRpb24u
aCIKKyNpbmNsdWRlIDx3dGYvTWVtb3J5SW5zdHJ1bWVudGF0aW9uVmVjdG9yLmg+CiAKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIApAQCAtMTY4LDcgKzE2OSw3IEBAIHZvaWQgQ1NTSW1hZ2VTZXRWYWx1
ZTo6cmVwb3J0RGVzY2VuZGFudE1lbW9yeVVzYWdlKE1lbW9yeU9iamVjdEluZm8qIG1lbW9yeU9i
amVjCiB7CiAgICAgTWVtb3J5Q2xhc3NJbmZvIGluZm8obWVtb3J5T2JqZWN0SW5mbywgdGhpcywg
V2ViQ29yZU1lbW9yeVR5cGVzOjpDU1MpOwogICAgIENTU1ZhbHVlTGlzdDo6cmVwb3J0RGVzY2Vu
ZGFudE1lbW9yeVVzYWdlKG1lbW9yeU9iamVjdEluZm8pOwotICAgIGluZm8uYWRkSW5zdHJ1bWVu
dGVkVmVjdG9yKG1faW1hZ2VzSW5TZXQpOworICAgIGluZm8uYWRkTWVtYmVyKG1faW1hZ2VzSW5T
ZXQpOwogfQogCiB2b2lkIENTU0ltYWdlU2V0VmFsdWU6OkltYWdlV2l0aFNjYWxlOjpyZXBvcnRN
ZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJbmZvKiBtZW1vcnlPYmplY3RJbmZvKSBjb25zdApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU01lZGlhUnVsZS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9jc3MvQ1NTTWVkaWFSdWxlLmNwcAppbmRleCBmMGU5Yzc5YzNmMTJlZTM3NjQ3ZWUwNzU5
MGJiZjk3MDk3MGViYWJlLi44YzJjOTczYzIxMDYzNmE2MWVkNjJlNzk0YWM3MDFkZTM5NWFlYzY5
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTTWVkaWFSdWxlLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9jc3MvQ1NTTWVkaWFSdWxlLmNwcApAQCAtMjksNiArMjksNyBAQAogI2lu
Y2x1ZGUgIkV4Y2VwdGlvbkNvZGUuaCIKICNpbmNsdWRlICJTdHlsZVJ1bGUuaCIKICNpbmNsdWRl
ICJXZWJDb3JlTWVtb3J5SW5zdHJ1bWVudGF0aW9uLmgiCisjaW5jbHVkZSA8d3RmL01lbW9yeUlu
c3RydW1lbnRhdGlvblZlY3Rvci5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0J1aWxkZXIu
aD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtMTgwLDcgKzE4MSw3IEBAIHZvaWQgQ1NTTWVk
aWFSdWxlOjpyZXBvcnREZXNjZW5kYW50TWVtb3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyogbWVt
b3J5T2JqZWN0SW5mCiAgICAgTWVtb3J5Q2xhc3NJbmZvIGluZm8obWVtb3J5T2JqZWN0SW5mbywg
dGhpcywgV2ViQ29yZU1lbW9yeVR5cGVzOjpDU1MpOwogICAgIENTU1J1bGU6OnJlcG9ydEJhc2VD
bGFzc01lbW9yeVVzYWdlKG1lbW9yeU9iamVjdEluZm8pOwogICAgIGluZm8uYWRkTWVtYmVyKG1f
bWVkaWFDU1NPTVdyYXBwZXIpOwotICAgIGluZm8uYWRkSW5zdHJ1bWVudGVkVmVjdG9yKG1fY2hp
bGRSdWxlQ1NTT01XcmFwcGVycyk7CisgICAgaW5mby5hZGRNZW1iZXIobV9jaGlsZFJ1bGVDU1NP
TVdyYXBwZXJzKTsKICAgICBpbmZvLmFkZE1lbWJlcihtX3J1bGVMaXN0Q1NTT01XcmFwcGVyKTsK
IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1J1bGVMaXN0LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9DU1NSdWxlTGlzdC5jcHAKaW5kZXggNDcyYjNkZDYwZDAwOTRmNzUw
NWNhYmExNjM5YTY4YmNiZmI0OGNkZS4uZGFkYzkzYjE1NDdiNDE0OWRlYzBkOTZlYTRlMTU2NTNi
MDc2NzFlYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1J1bGVMaXN0LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUnVsZUxpc3QuY3BwCkBAIC0yNCw2ICsyNCw3IEBA
CiAKICNpbmNsdWRlICJDU1NSdWxlLmgiCiAjaW5jbHVkZSAiQ1NTU3R5bGVTaGVldC5oIgorI2lu
Y2x1ZGUgPHd0Zi9NZW1vcnlJbnN0cnVtZW50YXRpb25WZWN0b3IuaD4KIAogbmFtZXNwYWNlIFdl
YkNvcmUgewogCkBAIC01NCw3ICs1NSw3IEBAIHZvaWQgU3RhdGljQ1NTUnVsZUxpc3Q6OmRlcmVm
KCkKIHZvaWQgU3RhdGljQ1NTUnVsZUxpc3Q6OnJlcG9ydE1lbW9yeVVzYWdlKE1lbW9yeU9iamVj
dEluZm8qIG1lbW9yeU9iamVjdEluZm8pIGNvbnN0CiB7CiAgICAgTWVtb3J5Q2xhc3NJbmZvIGlu
Zm8obWVtb3J5T2JqZWN0SW5mbywgdGhpcywgV2ViQ29yZU1lbW9yeVR5cGVzOjpDU1MpOwotICAg
IGluZm8uYWRkSW5zdHJ1bWVudGVkVmVjdG9yKG1fcnVsZXMpOworICAgIGluZm8uYWRkTWVtYmVy
KG1fcnVsZXMpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvQ1NTU3R5bGVTaGVldC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NT
U3R5bGVTaGVldC5jcHAKaW5kZXggMGUxMDIwMmM3ZmViYmYyYmU2ZDg5YWZjY2Q1N2RiMmQwM2E2
MmNlMi4uZGNmYzIyMDA2ZmYyNjUzZDExMGMyOWMzMzVhZWI2ZDI3MTcxNDVlZCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1N0eWxlU2hlZXQuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2Nzcy9DU1NTdHlsZVNoZWV0LmNwcApAQCAtMzgsNiArMzgsNyBAQAogI2luY2x1ZGUgIlN0
eWxlUnVsZS5oIgogI2luY2x1ZGUgIlN0eWxlU2hlZXRDb250ZW50cy5oIgogI2luY2x1ZGUgIldl
YkNvcmVNZW1vcnlJbnN0cnVtZW50YXRpb24uaCIKKyNpbmNsdWRlIDx3dGYvTWVtb3J5SW5zdHJ1
bWVudGF0aW9uVmVjdG9yLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nQnVpbGRlci5oPgog
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC0xODcsNyArMTg4LDcgQEAgdm9pZCBDU1NTdHlsZVNo
ZWV0OjpyZXBvcnRNZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJbmZvKiBtZW1vcnlPYmplY3RJbmZv
KSBjb25zdAogICAgIGluZm8uYWRkTWVtYmVyKG1fb3duZXJOb2RlKTsKICAgICBpbmZvLmFkZE1l
bWJlcihtX293bmVyUnVsZSk7CiAgICAgaW5mby5hZGRNZW1iZXIobV9tZWRpYUNTU09NV3JhcHBl
cik7Ci0gICAgaW5mby5hZGRJbnN0cnVtZW50ZWRWZWN0b3IobV9jaGlsZFJ1bGVDU1NPTVdyYXBw
ZXJzKTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX2NoaWxkUnVsZUNTU09NV3JhcHBlcnMpOwogfQog
CiB2b2lkIENTU1N0eWxlU2hlZXQ6OnNldERpc2FibGVkKGJvb2wgZGlzYWJsZWQpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVmFsdWVMaXN0LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9DU1NWYWx1ZUxpc3QuY3BwCmluZGV4IDIxZTRmYTcwMzVlMDYwNzAyMDY1ZjM5ZjlhYWM1
OGQwYjZmYTY2YzMuLjllYzJkNTA4NWZiOWQ2ZDM4ZGQ0Y2ViMjE4M2I5MTQ4YmI5NDJlOTUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZUxpc3QuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZUxpc3QuY3BwCkBAIC0yMyw2ICsyMyw3IEBACiAKICNpbmNs
dWRlICJDU1NQYXJzZXJWYWx1ZXMuaCIKICNpbmNsdWRlICJXZWJDb3JlTWVtb3J5SW5zdHJ1bWVu
dGF0aW9uLmgiCisjaW5jbHVkZSA8d3RmL01lbW9yeUluc3RydW1lbnRhdGlvblZlY3Rvci5oPgog
I2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nQnVp
bGRlci5oPgogCkBAIC0xODksNyArMTkwLDcgQEAgUGFzc1JlZlB0cjxDU1NWYWx1ZUxpc3Q+IENT
U1ZhbHVlTGlzdDo6Y2xvbmVGb3JDU1NPTSgpIGNvbnN0CiB2b2lkIENTU1ZhbHVlTGlzdDo6cmVw
b3J0RGVzY2VuZGFudE1lbW9yeVVzYWdlKE1lbW9yeU9iamVjdEluZm8qIG1lbW9yeU9iamVjdElu
Zm8pIGNvbnN0CiB7CiAgICAgTWVtb3J5Q2xhc3NJbmZvIGluZm8obWVtb3J5T2JqZWN0SW5mbywg
dGhpcywgV2ViQ29yZU1lbW9yeVR5cGVzOjpDU1MpOwotICAgIGluZm8uYWRkSW5zdHJ1bWVudGVk
VmVjdG9yKG1fdmFsdWVzKTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX3ZhbHVlcyk7CiB9CiAKIH0g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9NZWRp
YUxpc3QuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL01lZGlhTGlzdC5jcHAKaW5kZXggNjI5MDNk
NmIxNmU0NDAyOWMxMjg3M2M5N2E5N2EzZjEwOGY1NWQ3ZC4uYmRiYzU3MTc0ODM0YjIwYjgwY2Qz
MWZkMmViZTllMjVhYzM0YzYwNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL01lZGlh
TGlzdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL01lZGlhTGlzdC5jcHAKQEAgLTI3LDYg
KzI3LDcgQEAKICNpbmNsdWRlICJNZWRpYVF1ZXJ5LmgiCiAjaW5jbHVkZSAiTWVkaWFRdWVyeUV4
cC5oIgogI2luY2x1ZGUgIldlYkNvcmVNZW1vcnlJbnN0cnVtZW50YXRpb24uaCIKKyNpbmNsdWRl
IDx3dGYvTWVtb3J5SW5zdHJ1bWVudGF0aW9uVmVjdG9yLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQv
U3RyaW5nQnVpbGRlci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC0yMTUsNyArMjE2LDcg
QEAgU3RyaW5nIE1lZGlhUXVlcnlTZXQ6Om1lZGlhVGV4dCgpIGNvbnN0CiB2b2lkIE1lZGlhUXVl
cnlTZXQ6OnJlcG9ydE1lbW9yeVVzYWdlKE1lbW9yeU9iamVjdEluZm8qIG1lbW9yeU9iamVjdElu
Zm8pIGNvbnN0CiB7CiAgICAgTWVtb3J5Q2xhc3NJbmZvIGluZm8obWVtb3J5T2JqZWN0SW5mbywg
dGhpcywgV2ViQ29yZU1lbW9yeVR5cGVzOjpDU1MpOwotICAgIGluZm8uYWRkSW5zdHJ1bWVudGVk
VmVjdG9yKG1fcXVlcmllcyk7CisgICAgaW5mby5hZGRNZW1iZXIobV9xdWVyaWVzKTsKIH0KICAg
ICAKIE1lZGlhTGlzdDo6TWVkaWFMaXN0KE1lZGlhUXVlcnlTZXQqIG1lZGlhUXVlcmllcywgQ1NT
U3R5bGVTaGVldCogcGFyZW50U2hlZXQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3Mv
TWVkaWFRdWVyeS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvTWVkaWFRdWVyeS5jcHAKaW5kZXgg
YTNmMjVkNzEyZDViMTAzNDAyNzFiYzIwMDI1Yjk2NjczMTQ2MmQ2NC4uZmM0NTUxZmZiMTgzNzk5
ZTM0MDI4YTI1YjJiZmU3Mzg0MzUzMmIyYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3Nz
L01lZGlhUXVlcnkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5LmNwcApA
QCAtMzEsNiArMzEsNyBAQAogCiAjaW5jbHVkZSAiTWVkaWFRdWVyeUV4cC5oIgogI2luY2x1ZGUg
IldlYkNvcmVNZW1vcnlJbnN0cnVtZW50YXRpb24uaCIKKyNpbmNsdWRlIDx3dGYvTWVtb3J5SW5z
dHJ1bWVudGF0aW9uVmVjdG9yLmg+CiAjaW5jbHVkZSA8d3RmL05vbkNvcHlpbmdTb3J0Lmg+CiAj
aW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nQnVpbGRlci5oPgogCkBAIC0xMzgsNyArMTM5LDcgQEAg
dm9pZCBNZWRpYVF1ZXJ5OjpyZXBvcnRNZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJbmZvKiBtZW1v
cnlPYmplY3RJbmZvKSBjb25zdAogewogICAgIE1lbW9yeUNsYXNzSW5mbyBpbmZvKG1lbW9yeU9i
amVjdEluZm8sIHRoaXMsIFdlYkNvcmVNZW1vcnlUeXBlczo6Q1NTKTsKICAgICBpbmZvLmFkZE1l
bWJlcihtX21lZGlhVHlwZSk7Ci0gICAgaW5mby5hZGRJbnN0cnVtZW50ZWRWZWN0b3JQdHIobV9l
eHByZXNzaW9ucyk7CisgICAgaW5mby5hZGRNZW1iZXIobV9leHByZXNzaW9ucyk7CiAgICAgaW5m
by5hZGRNZW1iZXIobV9zZXJpYWxpemF0aW9uQ2FjaGUpOwogfQogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvU3R5bGVSZXNvbHZlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5
bGVSZXNvbHZlci5jcHAKaW5kZXggNjU3NzllYWEwNzQwYzMzMGQ2ODViZTdiNWNhNTU4ZWNkOWU2
OTU0NC4uNjczOTU5OTRjNjE5MmFlMmFiNzVlZjBiYjE2Nzk1ZmM1ZTllYmYxYiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUmVzb2x2ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2Nzcy9TdHlsZVJlc29sdmVyLmNwcApAQCAtMTI1LDYgKzEyNSw4IEBACiAjaW5jbHVkZSAi
V2ViS2l0Q1NTVHJhbnNmb3JtVmFsdWUuaCIKICNpbmNsdWRlICJXZWJLaXRGb250RmFtaWx5TmFt
ZXMuaCIKICNpbmNsdWRlICJYTUxOYW1lcy5oIgorI2luY2x1ZGUgPHd0Zi9NZW1vcnlJbnN0cnVt
ZW50YXRpb25IYXNoU2V0Lmg+CisjaW5jbHVkZSA8d3RmL01lbW9yeUluc3RydW1lbnRhdGlvblZl
Y3Rvci5oPgogI2luY2x1ZGUgPHd0Zi9TdGRMaWJFeHRyYXMuaD4KICNpbmNsdWRlIDx3dGYvVmVj
dG9yLmg+CiAKQEAgLTc0NSw4ICs3NDcsOCBAQCB2b2lkIFN0eWxlUmVzb2x2ZXI6OkZlYXR1cmVz
OjpjbGVhcigpCiB2b2lkIFN0eWxlUmVzb2x2ZXI6OkZlYXR1cmVzOjpyZXBvcnRNZW1vcnlVc2Fn
ZShNZW1vcnlPYmplY3RJbmZvKiBtZW1vcnlPYmplY3RJbmZvKSBjb25zdAogewogICAgIE1lbW9y
eUNsYXNzSW5mbyBpbmZvKG1lbW9yeU9iamVjdEluZm8sIHRoaXMsIFdlYkNvcmVNZW1vcnlUeXBl
czo6Q1NTKTsKLSAgICBpbmZvLmFkZEhhc2hTZXQoaWRzSW5SdWxlcyk7Ci0gICAgaW5mby5hZGRI
YXNoU2V0KGF0dHJzSW5SdWxlcyk7CisgICAgaW5mby5hZGRNZW1iZXIoaWRzSW5SdWxlcyk7Cisg
ICAgaW5mby5hZGRNZW1iZXIoYXR0cnNJblJ1bGVzKTsKICAgICBpbmZvLmFkZFZlY3RvcihzaWJs
aW5nUnVsZXMpOwogICAgIGluZm8uYWRkVmVjdG9yKHVuY29tbW9uQXR0cmlidXRlUnVsZXMpOwog
fQpAQCAtMjU2Nyw3ICsyNTY5LDcgQEAgc3RhdGljIHZvaWQgcmVwb3J0QXRvbVJ1bGVNYXAoTWVt
b3J5Q2xhc3NJbmZvKiBpbmZvLCBjb25zdCBSdWxlU2V0OjpBdG9tUnVsZU1hcCYKIHsKICAgICBp
bmZvLT5hZGRIYXNoTWFwKGF0b21pY1J1bGVNYXApOwogICAgIGZvciAoUnVsZVNldDo6QXRvbVJ1
bGVNYXA6OmNvbnN0X2l0ZXJhdG9yIGl0ID0gYXRvbWljUnVsZU1hcC5iZWdpbigpOyBpdCAhPSBh
dG9taWNSdWxlTWFwLmVuZCgpOyArK2l0KQotICAgICAgICBpbmZvLT5hZGRJbnN0cnVtZW50ZWRW
ZWN0b3IoKml0LT5zZWNvbmQpOworICAgICAgICBpbmZvLT5hZGRNZW1iZXIoKml0LT5zZWNvbmQp
OwogfQogCiB2b2lkIFJ1bGVTZXQ6OnJlcG9ydE1lbW9yeVVzYWdlKE1lbW9yeU9iamVjdEluZm8q
IG1lbW9yeU9iamVjdEluZm8pIGNvbnN0CkBAIC0yNTc3LDExICsyNTc5LDExIEBAIHZvaWQgUnVs
ZVNldDo6cmVwb3J0TWVtb3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyogbWVtb3J5T2JqZWN0SW5m
bykgY29uc3QKICAgICByZXBvcnRBdG9tUnVsZU1hcCgmaW5mbywgbV9jbGFzc1J1bGVzKTsKICAg
ICByZXBvcnRBdG9tUnVsZU1hcCgmaW5mbywgbV90YWdSdWxlcyk7CiAgICAgcmVwb3J0QXRvbVJ1
bGVNYXAoJmluZm8sIG1fc2hhZG93UHNldWRvRWxlbWVudFJ1bGVzKTsKLSAgICBpbmZvLmFkZElu
c3RydW1lbnRlZFZlY3RvcihtX2xpbmtQc2V1ZG9DbGFzc1J1bGVzKTsKLSAgICBpbmZvLmFkZElu
c3RydW1lbnRlZFZlY3RvcihtX2ZvY3VzUHNldWRvQ2xhc3NSdWxlcyk7Ci0gICAgaW5mby5hZGRJ
bnN0cnVtZW50ZWRWZWN0b3IobV91bml2ZXJzYWxSdWxlcyk7CisgICAgaW5mby5hZGRNZW1iZXIo
bV9saW5rUHNldWRvQ2xhc3NSdWxlcyk7CisgICAgaW5mby5hZGRNZW1iZXIobV9mb2N1c1BzZXVk
b0NsYXNzUnVsZXMpOworICAgIGluZm8uYWRkTWVtYmVyKG1fdW5pdmVyc2FsUnVsZXMpOwogICAg
IGluZm8uYWRkVmVjdG9yKG1fcGFnZVJ1bGVzKTsKLSAgICBpbmZvLmFkZEluc3RydW1lbnRlZFZl
Y3RvcihtX3JlZ2lvblNlbGVjdG9yc0FuZFJ1bGVTZXRzKTsKKyAgICBpbmZvLmFkZE1lbWJlciht
X3JlZ2lvblNlbGVjdG9yc0FuZFJ1bGVTZXRzKTsKIH0KIAogdm9pZCBSdWxlU2V0OjpSdWxlU2V0
U2VsZWN0b3JQYWlyOjpyZXBvcnRNZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJbmZvKiBtZW1vcnlP
YmplY3RJbmZvKSBjb25zdApAQCAtNTc2Niw3ICs1NzY4LDcgQEAgdm9pZCBTdHlsZVJlc29sdmVy
OjpNYXRjaGVkUHJvcGVydGllczo6cmVwb3J0TWVtb3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyog
bWVtb3IKIHZvaWQgU3R5bGVSZXNvbHZlcjo6TWF0Y2hlZFByb3BlcnRpZXNDYWNoZUl0ZW06OnJl
cG9ydE1lbW9yeVVzYWdlKE1lbW9yeU9iamVjdEluZm8qIG1lbW9yeU9iamVjdEluZm8pIGNvbnN0
CiB7CiAgICAgTWVtb3J5Q2xhc3NJbmZvIGluZm8obWVtb3J5T2JqZWN0SW5mbywgdGhpcywgV2Vi
Q29yZU1lbW9yeVR5cGVzOjpDU1MpOwotICAgIGluZm8uYWRkSW5zdHJ1bWVudGVkVmVjdG9yKG1h
dGNoZWRQcm9wZXJ0aWVzKTsKKyAgICBpbmZvLmFkZE1lbWJlcihtYXRjaGVkUHJvcGVydGllcyk7
CiB9CiAKIHZvaWQgTWVkaWFRdWVyeVJlc3VsdDo6cmVwb3J0TWVtb3J5VXNhZ2UoTWVtb3J5T2Jq
ZWN0SW5mbyogbWVtb3J5T2JqZWN0SW5mbykgY29uc3QKQEAgLTU3OTIsMTAgKzU3OTQsMTAgQEAg
dm9pZCBTdHlsZVJlc29sdmVyOjpyZXBvcnRNZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJbmZvKiBt
ZW1vcnlPYmplY3RJbmZvKSBjb25zdAogICAgIGluZm8uYWRkSGFzaE1hcChtX3BlbmRpbmdJbWFn
ZVByb3BlcnRpZXMpOwogICAgIGluZm8uYWRkSW5zdHJ1bWVudGVkTWFwVmFsdWVzKG1fcGVuZGlu
Z0ltYWdlUHJvcGVydGllcyk7CiAgICAgaW5mby5hZGRNZW1iZXIobV9saW5lSGVpZ2h0VmFsdWUp
OwotICAgIGluZm8uYWRkSW5zdHJ1bWVudGVkVmVjdG9yKG1fdmlld3BvcnREZXBlbmRlbnRNZWRp
YVF1ZXJ5UmVzdWx0cyk7CisgICAgaW5mby5hZGRNZW1iZXIobV92aWV3cG9ydERlcGVuZGVudE1l
ZGlhUXVlcnlSZXN1bHRzKTsKICAgICBpbmZvLmFkZEhhc2hNYXAobV9zdHlsZVJ1bGVUb0NTU09N
V3JhcHBlck1hcCk7CiAgICAgaW5mby5hZGRJbnN0cnVtZW50ZWRNYXBFbnRyaWVzKG1fc3R5bGVS
dWxlVG9DU1NPTVdyYXBwZXJNYXApOwotICAgIGluZm8uYWRkSW5zdHJ1bWVudGVkSGFzaFNldCht
X3N0eWxlU2hlZXRDU1NPTVdyYXBwZXJTZXQpOworICAgIGluZm8uYWRkTWVtYmVyKG1fc3R5bGVT
aGVldENTU09NV3JhcHBlclNldCk7CiAjaWYgRU5BQkxFKENTU19GSUxURVJTKSAmJiBFTkFCTEUo
U1ZHKQogICAgIGluZm8uYWRkSGFzaE1hcChtX3BlbmRpbmdTVkdEb2N1bWVudHMpOwogI2VuZGlm
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSdWxlLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9TdHlsZVJ1bGUuY3BwCmluZGV4IDVlY2UxYjRhMjE0MWVjYmUwYmViZjIyZDll
OGVkNzZhZDg1NDcwZjMuLjczYjBhZjI2Y2U0MmFhNDU5NGQ5Yjc2MTc5NmIxOWQ2YTZiYjY2NWMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJ1bGUuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9TdHlsZVJ1bGUuY3BwCkBAIC0zMyw2ICszMyw3IEBACiAjaW5jbHVkZSAi
V2ViS2l0Q1NTS2V5ZnJhbWVSdWxlLmgiCiAjaW5jbHVkZSAiV2ViS2l0Q1NTS2V5ZnJhbWVzUnVs
ZS5oIgogI2luY2x1ZGUgIldlYktpdENTU1JlZ2lvblJ1bGUuaCIKKyNpbmNsdWRlIDx3dGYvTWVt
b3J5SW5zdHJ1bWVudGF0aW9uVmVjdG9yLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAt
MzQwLDcgKzM0MSw3IEBAIHZvaWQgU3R5bGVSdWxlQmxvY2s6OndyYXBwZXJSZW1vdmVSdWxlKHVu
c2lnbmVkIGluZGV4KQogdm9pZCBTdHlsZVJ1bGVCbG9jazo6cmVwb3J0RGVzY2VuZGFudE1lbW9y
eVVzYWdlKE1lbW9yeU9iamVjdEluZm8qIG1lbW9yeU9iamVjdEluZm8pIGNvbnN0CiB7CiAgICAg
TWVtb3J5Q2xhc3NJbmZvIGluZm8obWVtb3J5T2JqZWN0SW5mbywgdGhpcywgV2ViQ29yZU1lbW9y
eVR5cGVzOjpDU1MpOwotICAgIGluZm8uYWRkSW5zdHJ1bWVudGVkVmVjdG9yKG1fY2hpbGRSdWxl
cyk7CisgICAgaW5mby5hZGRNZW1iZXIobV9jaGlsZFJ1bGVzKTsKIH0KIAogU3R5bGVSdWxlTWVk
aWE6OlN0eWxlUnVsZU1lZGlhKFBhc3NSZWZQdHI8TWVkaWFRdWVyeVNldD4gbWVkaWEsIFZlY3Rv
cjxSZWZQdHI8U3R5bGVSdWxlQmFzZT4gPiYgYWRvcHRSdWxlcykKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9TdHlsZVNoZWV0Q29udGVudHMuY3BwIGIvU291cmNlL1dlYkNvcmUvY3Nz
L1N0eWxlU2hlZXRDb250ZW50cy5jcHAKaW5kZXggMDQ4MjczYmVjMTc4M2RiMjUyNzdiMjJlMmVm
NDNkYzY4OTYxN2FkZC4uNWRlOGE2MWE1MTQ3ODQ0YjFkOTNiZDU4NjIyYmVlNTI5ZjE1NjkyMCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlU2hlZXRDb250ZW50cy5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlU2hlZXRDb250ZW50cy5jcHAKQEAgLTMzLDYgKzMz
LDcgQEAKICNpbmNsdWRlICJTdHlsZVJ1bGVJbXBvcnQuaCIKICNpbmNsdWRlICJXZWJDb3JlTWVt
b3J5SW5zdHJ1bWVudGF0aW9uLmgiCiAjaW5jbHVkZSA8d3RmL0RlcXVlLmg+CisjaW5jbHVkZSA8
d3RmL01lbW9yeUluc3RydW1lbnRhdGlvblZlY3Rvci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKQEAgLTQ5MCw3ICs0OTEsNyBAQCB2b2lkIFN0eWxlU2hlZXRDb250ZW50czo6cmVwb3J0TWVt
b3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyogbWVtb3J5T2JqZWN0SW5mbykgYwogICAgIGluZm8u
YWRkTWVtYmVyKG1fb3JpZ2luYWxVUkwpOwogICAgIGluZm8uYWRkTWVtYmVyKG1fZW5jb2RpbmdG
cm9tQ2hhcnNldFJ1bGUpOwogICAgIGluZm8uYWRkVmVjdG9yKG1faW1wb3J0UnVsZXMpOwotICAg
IGluZm8uYWRkSW5zdHJ1bWVudGVkVmVjdG9yKG1fY2hpbGRSdWxlcyk7CisgICAgaW5mby5hZGRN
ZW1iZXIobV9jaGlsZFJ1bGVzKTsKICAgICBpbmZvLmFkZEhhc2hNYXAobV9uYW1lc3BhY2VzKTsK
ICAgICBpbmZvLmFkZFZlY3RvcihtX2NsaWVudHMpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvY3NzL1dlYktpdENTU0tleWZyYW1lc1J1bGUuY3BwIGIvU291cmNlL1dlYkNvcmUvY3Nz
L1dlYktpdENTU0tleWZyYW1lc1J1bGUuY3BwCmluZGV4IGEyOTkxYTgxOGY1MGZmZjRkNWI0ZTA5
YmQ0MzI5YjhhMzFiODUwMWUuLjA4ZmJiMGE1NTg1ZDdiNmY4NmJiOTUyOGU3OTE3ZDg2OTQ3NTRl
NjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9XZWJLaXRDU1NLZXlmcmFtZXNSdWxl
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvV2ViS2l0Q1NTS2V5ZnJhbWVzUnVsZS5jcHAK
QEAgLTMzLDYgKzMzLDcgQEAKICNpbmNsdWRlICJTdHlsZVNoZWV0LmgiCiAjaW5jbHVkZSAiV2Vi
Q29yZU1lbW9yeUluc3RydW1lbnRhdGlvbi5oIgogI2luY2x1ZGUgIldlYktpdENTU0tleWZyYW1l
UnVsZS5oIgorI2luY2x1ZGUgPHd0Zi9NZW1vcnlJbnN0cnVtZW50YXRpb25WZWN0b3IuaD4KICNp
bmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdCdWlsZGVyLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
QEAgLTkwLDcgKzkxLDcgQEAgaW50IFN0eWxlUnVsZUtleWZyYW1lczo6ZmluZEtleWZyYW1lSW5k
ZXgoY29uc3QgU3RyaW5nJiBrZXkpIGNvbnN0CiB2b2lkIFN0eWxlUnVsZUtleWZyYW1lczo6cmVw
b3J0RGVzY2VuZGFudE1lbW9yeVVzYWdlKE1lbW9yeU9iamVjdEluZm8qIG1lbW9yeU9iamVjdElu
Zm8pIGNvbnN0CiB7CiAgICAgTWVtb3J5Q2xhc3NJbmZvIGluZm8obWVtb3J5T2JqZWN0SW5mbywg
dGhpcywgV2ViQ29yZU1lbW9yeVR5cGVzOjpDU1MpOwotICAgIGluZm8uYWRkSW5zdHJ1bWVudGVk
VmVjdG9yKG1fa2V5ZnJhbWVzKTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX2tleWZyYW1lcyk7CiAg
ICAgaW5mby5hZGRNZW1iZXIobV9uYW1lKTsKIH0KIApAQCAtMjExLDcgKzIxMiw3IEBAIHZvaWQg
V2ViS2l0Q1NTS2V5ZnJhbWVzUnVsZTo6cmVwb3J0RGVzY2VuZGFudE1lbW9yeVVzYWdlKE1lbW9y
eU9iamVjdEluZm8qIG1lbW9yCiAgICAgTWVtb3J5Q2xhc3NJbmZvIGluZm8obWVtb3J5T2JqZWN0
SW5mbywgdGhpcywgV2ViQ29yZU1lbW9yeVR5cGVzOjpDU1MpOwogICAgIENTU1J1bGU6OnJlcG9y
dEJhc2VDbGFzc01lbW9yeVVzYWdlKG1lbW9yeU9iamVjdEluZm8pOwogICAgIGluZm8uYWRkTWVt
YmVyKG1fa2V5ZnJhbWVzUnVsZSk7Ci0gICAgaW5mby5hZGRJbnN0cnVtZW50ZWRWZWN0b3IobV9j
aGlsZFJ1bGVDU1NPTVdyYXBwZXJzKTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX2NoaWxkUnVsZUNT
U09NV3JhcHBlcnMpOwogICAgIGluZm8uYWRkTWVtYmVyKG1fcnVsZUxpc3RDU1NPTVdyYXBwZXIp
OwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvV2ViS2l0Q1NTUmVnaW9uUnVs
ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvV2ViS2l0Q1NTUmVnaW9uUnVsZS5jcHAKaW5kZXgg
NWMyYzcyMWNkNjg1NGFkMzkyMWFjNTYzOTE4NWY2YTk2ODkxM2MzMS4uY2UxMjA3Y2FiZGY5YmY4
NTYwNTllODZkNmIyMGYxZmIyMjg0M2RlMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3Nz
L1dlYktpdENTU1JlZ2lvblJ1bGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9XZWJLaXRD
U1NSZWdpb25SdWxlLmNwcApAQCAtMzQsNiArMzQsNyBAQAogI2luY2x1ZGUgIkNTU1BhcnNlci5o
IgogI2luY2x1ZGUgIkNTU1J1bGVMaXN0LmgiCiAjaW5jbHVkZSAiU3R5bGVSdWxlLmgiCisjaW5j
bHVkZSA8d3RmL01lbW9yeUluc3RydW1lbnRhdGlvblZlY3Rvci5oPgogI2luY2x1ZGUgPHd0Zi90
ZXh0L1N0cmluZ0J1aWxkZXIuaD4KIAogI2lmIEVOQUJMRShDU1NfUkVHSU9OUykKQEAgLTExMyw3
ICsxMTQsNyBAQCB2b2lkIFdlYktpdENTU1JlZ2lvblJ1bGU6OnJlcG9ydERlc2NlbmRhbnRNZW1v
cnlVc2FnZShNZW1vcnlPYmplY3RJbmZvKiBtZW1vcnlPYgogICAgIE1lbW9yeUNsYXNzSW5mbyBp
bmZvKG1lbW9yeU9iamVjdEluZm8sIHRoaXMsIFdlYkNvcmVNZW1vcnlUeXBlczo6Q1NTKTsKICAg
ICBDU1NSdWxlOjpyZXBvcnRCYXNlQ2xhc3NNZW1vcnlVc2FnZShtZW1vcnlPYmplY3RJbmZvKTsK
ICAgICBpbmZvLmFkZE1lbWJlcihtX3JlZ2lvblJ1bGUpOwotICAgIGluZm8uYWRkSW5zdHJ1bWVu
dGVkVmVjdG9yKG1fY2hpbGRSdWxlQ1NTT01XcmFwcGVycyk7CisgICAgaW5mby5hZGRNZW1iZXIo
bV9jaGlsZFJ1bGVDU1NPTVdyYXBwZXJzKTsKICAgICBpbmZvLmFkZE1lbWJlcihtX3J1bGVMaXN0
Q1NTT01XcmFwcGVyKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3Vt
ZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKaW5kZXggYWI0OGNhMzgy
YmIyNTliNzY5ZmU3YTM1ZmQyYzQzNjU0MTNmN2QxZS4uM2Q4NmQ4NmRiNGM5OWZiMWI2ZWFhNTZj
NDVjNzRjY2I4MTYyYTc2MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCkBAIC0xMDgsNiArMTA4
LDcgQEAKICNpbmNsdWRlICJMYW5ndWFnZS5oIgogI2luY2x1ZGUgIkxvY2FsaXplci5oIgogI2lu
Y2x1ZGUgIkxvZ2dpbmcuaCIKKyNpbmNsdWRlICJNZWRpYUNhblN0YXJ0TGlzdGVuZXIuaCIKICNp
bmNsdWRlICJNZWRpYVF1ZXJ5TGlzdC5oIgogI2luY2x1ZGUgIk1lZGlhUXVlcnlNYXRjaGVyLmgi
CiAjaW5jbHVkZSAiTW91c2VFdmVudFdpdGhIaXRUZXN0UmVzdWx0cy5oIgpAQCAtMTcyLDYgKzE3
Myw4IEBACiAjaW5jbHVkZSA8d3RmL0N1cnJlbnRUaW1lLmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hG
dW5jdGlvbnMuaD4KICNpbmNsdWRlIDx3dGYvTWFpblRocmVhZC5oPgorI2luY2x1ZGUgPHd0Zi9N
ZW1vcnlJbnN0cnVtZW50YXRpb25IYXNoU2V0Lmg+CisjaW5jbHVkZSA8d3RmL01lbW9yeUluc3Ry
dW1lbnRhdGlvblZlY3Rvci5oPgogI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CiAjaW5jbHVk
ZSA8d3RmL1N0ZExpYkV4dHJhcy5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0J1ZmZlci5o
PgpAQCAtNjI2NCwxMiArNjI2NywxMCBAQCB2b2lkIERvY3VtZW50OjpyZXBvcnRNZW1vcnlVc2Fn
ZShNZW1vcnlPYmplY3RJbmZvKiBtZW1vcnlPYmplY3RJbmZvKSBjb25zdAogICAgIGluZm8uYWRk
TWVtYmVyKG1fY2FjaGVkUmVzb3VyY2VMb2FkZXIpOwogICAgIGluZm8uYWRkTWVtYmVyKG1fZWxl
bVNoZWV0KTsKICAgICBpbmZvLmFkZE1lbWJlcihtX3BhZ2VVc2VyU2hlZXQpOwotICAgIGlmICht
X3BhZ2VHcm91cFVzZXJTaGVldHMpCi0gICAgICAgIGluZm8uYWRkSW5zdHJ1bWVudGVkVmVjdG9y
UHRyKG1fcGFnZUdyb3VwVXNlclNoZWV0cyk7Ci0gICAgaWYgKG1fdXNlclNoZWV0cykKLSAgICAg
ICAgaW5mby5hZGRJbnN0cnVtZW50ZWRWZWN0b3JQdHIobV91c2VyU2hlZXRzKTsKLSAgICBpbmZv
LmFkZEhhc2hTZXQobV9ub2RlSXRlcmF0b3JzKTsKLSAgICBpbmZvLmFkZEhhc2hTZXQobV9yYW5n
ZXMpOworICAgIGluZm8uYWRkTWVtYmVyKG1fcGFnZUdyb3VwVXNlclNoZWV0cyk7CisgICAgaW5m
by5hZGRNZW1iZXIobV91c2VyU2hlZXRzKTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX25vZGVJdGVy
YXRvcnMpOworICAgIGluZm8uYWRkTWVtYmVyKG1fcmFuZ2VzKTsKICAgICBpbmZvLmFkZExpc3RI
YXNoU2V0KG1fc3R5bGVTaGVldENhbmRpZGF0ZU5vZGVzKTsKICAgICBpbmZvLmFkZE1lbWJlciht
X3ByZWZlcnJlZFN0eWxlc2hlZXRTZXQpOwogICAgIGluZm8uYWRkTWVtYmVyKG1fc2VsZWN0ZWRT
dHlsZXNoZWV0U2V0KTsKQEAgLTYyODUsMTIgKzYyODYsMTIgQEAgdm9pZCBEb2N1bWVudDo6cmVw
b3J0TWVtb3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyogbWVtb3J5T2JqZWN0SW5mbykgY29uc3QK
ICNlbmRpZgogICAgIGluZm8uYWRkSGFzaE1hcChtX2Nzc0NhbnZhc0VsZW1lbnRzKTsKICAgICBp
bmZvLmFkZFZlY3RvcihtX2ljb25VUkxzKTsKLSAgICBpbmZvLmFkZEhhc2hTZXQobV9kb2N1bWVu
dFN1c3BlbnNpb25DYWxsYmFja0VsZW1lbnRzKTsKLSAgICBpbmZvLmFkZEhhc2hTZXQobV9tZWRp
YVZvbHVtZUNhbGxiYWNrRWxlbWVudHMpOwotICAgIGluZm8uYWRkSGFzaFNldChtX3ByaXZhdGVC
cm93c2luZ1N0YXRlQ2hhbmdlZEVsZW1lbnRzKTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX2RvY3Vt
ZW50U3VzcGVuc2lvbkNhbGxiYWNrRWxlbWVudHMpOworICAgIGluZm8uYWRkTWVtYmVyKG1fbWVk
aWFWb2x1bWVDYWxsYmFja0VsZW1lbnRzKTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX3ByaXZhdGVC
cm93c2luZ1N0YXRlQ2hhbmdlZEVsZW1lbnRzKTsKICAgICBpbmZvLmFkZEhhc2hNYXAobV9lbGVt
ZW50c0J5QWNjZXNzS2V5KTsKICAgICBpbmZvLmFkZE1lbWJlcihtX2V2ZW50UXVldWUpOwotICAg
IGluZm8uYWRkSGFzaFNldChtX21lZGlhQ2FuU3RhcnRMaXN0ZW5lcnMpOworICAgIGluZm8uYWRk
TWVtYmVyKG1fbWVkaWFDYW5TdGFydExpc3RlbmVycyk7CiAgICAgaW5mby5hZGRWZWN0b3IobV9w
ZW5kaW5nVGFza3MpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1l
bnRFdmVudFF1ZXVlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudEV2ZW50UXVldWUu
Y3BwCmluZGV4IDYzOTZmMDEyNGU1YTU3YTQ2YTA2Nzg4MDYzYjk3NmY2YTFmZTZhNTIuLmYzNjAx
Y2ZlNjgyMjgxM2YyODM3OTVmYTNjY2Q0ZjhkOTFkODlmMGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9Eb2N1bWVudEV2ZW50UXVldWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Rv
bS9Eb2N1bWVudEV2ZW50UXVldWUuY3BwCkBAIC0zNSw2ICszNSw3IEBACiAjaW5jbHVkZSAiU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dC5oIgogI2luY2x1ZGUgIlN1c3BlbmRhYmxlVGltZXIuaCIKICNp
bmNsdWRlICJXZWJDb3JlTWVtb3J5SW5zdHJ1bWVudGF0aW9uLmgiCisjaW5jbHVkZSA8d3RmL01l
bW9yeUluc3RydW1lbnRhdGlvbkhhc2hTZXQuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogICAg
IApAQCAtMTEyLDggKzExMyw4IEBAIHZvaWQgRG9jdW1lbnRFdmVudFF1ZXVlOjpyZXBvcnRNZW1v
cnlVc2FnZShNZW1vcnlPYmplY3RJbmZvKiBtZW1vcnlPYmplY3RJbmZvKSBjCiB7CiAgICAgTWVt
b3J5Q2xhc3NJbmZvIGluZm8obWVtb3J5T2JqZWN0SW5mbywgdGhpcywgV2ViQ29yZU1lbW9yeVR5
cGVzOjpET00pOwogICAgIGluZm8uYWRkTWVtYmVyKG1fcGVuZGluZ0V2ZW50VGltZXIpOwotICAg
IGluZm8uYWRkSW5zdHJ1bWVudGVkSGFzaFNldChtX3F1ZXVlZEV2ZW50cyk7Ci0gICAgaW5mby5h
ZGRJbnN0cnVtZW50ZWRIYXNoU2V0KG1fbm9kZXNXaXRoUXVldWVkU2Nyb2xsRXZlbnRzKTsKKyAg
ICBpbmZvLmFkZE1lbWJlcihtX3F1ZXVlZEV2ZW50cyk7CisgICAgaW5mby5hZGRNZW1iZXIobV9u
b2Rlc1dpdGhRdWV1ZWRTY3JvbGxFdmVudHMpOwogfQogCiBib29sIERvY3VtZW50RXZlbnRRdWV1
ZTo6Y2FuY2VsRXZlbnQoRXZlbnQqIGV2ZW50KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
bG9hZGVyL0RvY3VtZW50TG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVu
dExvYWRlci5jcHAKaW5kZXggODM2ODA0MWNmODBhM2Q2NDE1MWE5YjBiMGNhNTYyMzZlNGM0NDg5
Mi4uYjg4MzkxNzI4OWRkN2I2ZTA3ZDA0MzY1NTczYzQ3MTIxZGU4MTRiNCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50TG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkZXIuY3BwCkBAIC01Myw2ICs1Myw4IEBACiAjaW5jbHVk
ZSAiVGV4dFJlc291cmNlRGVjb2Rlci5oIgogI2luY2x1ZGUgIldlYkNvcmVNZW1vcnlJbnN0cnVt
ZW50YXRpb24uaCIKICNpbmNsdWRlIDx3dGYvQXNzZXJ0aW9ucy5oPgorI2luY2x1ZGUgPHd0Zi9N
ZW1vcnlJbnN0cnVtZW50YXRpb25IYXNoU2V0Lmg+CisjaW5jbHVkZSA8d3RmL01lbW9yeUluc3Ry
dW1lbnRhdGlvblZlY3Rvci5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KICNpbmNs
dWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KICNpbmNsdWRlIDx3dGYvdW5pY29kZS9Vbmljb2Rl
Lmg+CkBAIC0zNjIsOSArMzY0LDkgQEAgdm9pZCBEb2N1bWVudExvYWRlcjo6cmVwb3J0TWVtb3J5
VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyogbWVtb3J5T2JqZWN0SW5mbykgY29uc3QKICAgICBNZW1v
cnlDbGFzc0luZm8gaW5mbyhtZW1vcnlPYmplY3RJbmZvLCB0aGlzLCBXZWJDb3JlTWVtb3J5VHlw
ZXM6OkxvYWRlcik7CiAgICAgaW5mby5hZGRNZW1iZXIobV9mcmFtZSk7CiAgICAgaW5mby5hZGRN
ZW1iZXIobV9tYWluUmVzb3VyY2VMb2FkZXIpOwotICAgIGluZm8uYWRkSW5zdHJ1bWVudGVkSGFz
aFNldChtX3N1YnJlc291cmNlTG9hZGVycyk7Ci0gICAgaW5mby5hZGRJbnN0cnVtZW50ZWRIYXNo
U2V0KG1fbXVsdGlwYXJ0U3VicmVzb3VyY2VMb2FkZXJzKTsKLSAgICBpbmZvLmFkZEluc3RydW1l
bnRlZEhhc2hTZXQobV9wbHVnSW5TdHJlYW1Mb2FkZXJzKTsKKyAgICBpbmZvLmFkZE1lbWJlciht
X3N1YnJlc291cmNlTG9hZGVycyk7CisgICAgaW5mby5hZGRNZW1iZXIobV9tdWx0aXBhcnRTdWJy
ZXNvdXJjZUxvYWRlcnMpOworICAgIGluZm8uYWRkTWVtYmVyKG1fcGx1Z0luU3RyZWFtTG9hZGVy
cyk7CiAgICAgaW5mby5hZGRNZW1iZXIobV9zdWJzdGl0dXRlRGF0YSk7CiAgICAgaW5mby5hZGRN
ZW1iZXIobV9wYWdlVGl0bGUuc3RyaW5nKCkpOwogICAgIGluZm8uYWRkTWVtYmVyKG1fb3ZlcnJp
ZGVFbmNvZGluZyk7CkBAIC0zNzQsOSArMzc2LDkgQEAgdm9pZCBEb2N1bWVudExvYWRlcjo6cmVw
b3J0TWVtb3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyogbWVtb3J5T2JqZWN0SW5mbykgY29uc3QK
ICAgICBpbmZvLmFkZE1lbWJlcihtX3JlcXVlc3QpOwogICAgIGluZm8uYWRkTWVtYmVyKG1fcmVz
cG9uc2UpOwogICAgIGluZm8uYWRkTWVtYmVyKG1fbGFzdENoZWNrZWRSZXF1ZXN0KTsKLSAgICBp
bmZvLmFkZEluc3RydW1lbnRlZFZlY3RvcihtX3Jlc3BvbnNlcyk7CisgICAgaW5mby5hZGRNZW1i
ZXIobV9yZXNwb25zZXMpOwogICAgIGluZm8uYWRkSGFzaE1hcChtX3BlbmRpbmdTdWJzdGl0dXRl
UmVzb3VyY2VzKTsKLSAgICBpbmZvLmFkZEluc3RydW1lbnRlZEhhc2hTZXQobV9yZXNvdXJjZXND
bGllbnRLbm93c0Fib3V0KTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX3Jlc291cmNlc0NsaWVudEtu
b3dzQWJvdXQpOwogICAgIGluZm8uYWRkVmVjdG9yKG1fcmVzb3VyY2VzTG9hZGVkRnJvbU1lbW9y
eUNhY2hlRm9yQ2xpZW50Tm90aWZpY2F0aW9uKTsKICAgICBpbmZvLmFkZE1lbWJlcihtX2NsaWVu
dFJlZGlyZWN0U291cmNlRm9ySGlzdG9yeSk7CiAgICAgaW5mby5hZGRNZW1iZXIobV9tYWluUmVz
b3VyY2VEYXRhKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRl
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwCmluZGV4IGIyNmI2
ZDRjYzIyZmFlNzU3OGQwNDRmNjEwNTE2MTkyNGIwNmZjNWYuLmMwYjlmYzNjZTY5OGYyMThiMmY5
NDVmNjg3MDkzZmM4M2YwMzllNWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9G
cmFtZUxvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNw
cApAQCAtMTAyLDYgKzEwMiw3IEBACiAjaW5jbHVkZSAiV2luZG93RmVhdHVyZXMuaCIKICNpbmNs
dWRlICJYTUxEb2N1bWVudFBhcnNlci5oIgogI2luY2x1ZGUgPHd0Zi9DdXJyZW50VGltZS5oPgor
I2luY2x1ZGUgPHd0Zi9NZW1vcnlJbnN0cnVtZW50YXRpb25IYXNoU2V0Lmg+CiAjaW5jbHVkZSA8
d3RmL1N0ZExpYkV4dHJhcy5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KICNpbmNs
dWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KQEAgLTMyODMsNyArMzI4NCw3IEBAIHZvaWQgRnJh
bWVMb2FkZXI6OnJlcG9ydE1lbW9yeVVzYWdlKE1lbW9yeU9iamVjdEluZm8qIG1lbW9yeU9iamVj
dEluZm8pIGNvbnN0CiAgICAgaW5mby5hZGRNZW1iZXIobV9wcm92aXNpb25hbERvY3VtZW50TG9h
ZGVyKTsKICAgICBpbmZvLmFkZE1lbWJlcihtX3BvbGljeURvY3VtZW50TG9hZGVyKTsKICAgICBp
bmZvLmFkZE1lbWJlcihtX291dGdvaW5nUmVmZXJyZXIpOwotICAgIGluZm8uYWRkSW5zdHJ1bWVu
dGVkSGFzaFNldChtX29wZW5lZEZyYW1lcyk7CisgICAgaW5mby5hZGRNZW1iZXIobV9vcGVuZWRG
cmFtZXMpOwogfQogCiBib29sIEZyYW1lTG9hZGVyQ2xpZW50OjpoYXNIVE1MVmlldygpIGNvbnN0
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2Uu
Y3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlLmNwcAppbmRl
eCA0M2MzZDE0NGY4MmYxNTY4OGNmNjZjMDU0YTA0ZGE5NjAxOWI5ZDExLi4zMWQyYzRkYjQyNDVl
OWQ1YjZjZTEwZTgxOTMzYjdiMzY3YjE1MjU4IDEwMDc1NQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9jYWNoZS9DYWNoZWRSZXNvdXJjZS5jcHAKQEAgLTQ1LDYgKzQ1LDcgQEAKICNpbmNsdWRlICJX
ZWJDb3JlTWVtb3J5SW5zdHJ1bWVudGF0aW9uLmgiCiAjaW5jbHVkZSA8d3RmL0N1cnJlbnRUaW1l
Lmg+CiAjaW5jbHVkZSA8d3RmL01hdGhFeHRyYXMuaD4KKyNpbmNsdWRlIDx3dGYvTWVtb3J5SW5z
dHJ1bWVudGF0aW9uSGFzaFNldC5oPgogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkTGVha0NvdW50
ZXIuaD4KICNpbmNsdWRlIDx3dGYvU3RkTGliRXh0cmFzLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQv
Q1N0cmluZy5oPgpAQCAtODA1LDcgKzgwNiw3IEBAIHZvaWQgQ2FjaGVkUmVzb3VyY2U6OnJlcG9y
dE1lbW9yeVVzYWdlKE1lbW9yeU9iamVjdEluZm8qIG1lbW9yeU9iamVjdEluZm8pIGNvbnN0CiB7
CiAgICAgTWVtb3J5Q2xhc3NJbmZvIGluZm8obWVtb3J5T2JqZWN0SW5mbywgdGhpcywgV2ViQ29y
ZU1lbW9yeVR5cGVzOjpDYWNoZWRSZXNvdXJjZSk7CiAgICAgaW5mby5hZGRNZW1iZXIobV9yZXNv
dXJjZVJlcXVlc3QpOwotICAgIGluZm8uYWRkSGFzaFNldChtX2NsaWVudHMpOworICAgIGluZm8u
YWRkTWVtYmVyKG1fY2xpZW50cyk7CiAgICAgaW5mby5hZGRNZW1iZXIobV9hY2NlcHQpOwogICAg
IGluZm8uYWRkTWVtYmVyKG1fbG9hZGVyKTsKICAgICBpbmZvLmFkZE1lbWJlcihtX3Jlc3BvbnNl
KTsKQEAgLTgxOCw3ICs4MTksNyBAQCB2b2lkIENhY2hlZFJlc291cmNlOjpyZXBvcnRNZW1vcnlV
c2FnZShNZW1vcnlPYmplY3RJbmZvKiBtZW1vcnlPYmplY3RJbmZvKSBjb25zdAogICAgIGluZm8u
YWRkTWVtYmVyKG1fb3duaW5nQ2FjaGVkUmVzb3VyY2VMb2FkZXIpOwogICAgIGluZm8uYWRkTWVt
YmVyKG1fcmVzb3VyY2VUb1JldmFsaWRhdGUpOwogICAgIGluZm8uYWRkTWVtYmVyKG1fcHJveHlS
ZXNvdXJjZSk7Ci0gICAgaW5mby5hZGRJbnN0cnVtZW50ZWRIYXNoU2V0KG1faGFuZGxlc1RvUmV2
YWxpZGF0ZSk7CisgICAgaW5mby5hZGRNZW1iZXIobV9oYW5kbGVzVG9SZXZhbGlkYXRlKTsKIAog
ICAgIGlmIChtX3B1cmdlYWJsZURhdGEgJiYgIW1fcHVyZ2VhYmxlRGF0YS0+d2FzUHVyZ2VkKCkp
CiAgICAgICAgIGluZm8uYWRkUmF3QnVmZmVyKG1fcHVyZ2VhYmxlRGF0YS5nZXQoKSwgbV9wdXJn
ZWFibGVEYXRhLT5zaXplKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2Nh
Y2hlL0NhY2hlZFJlc291cmNlTG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNo
ZS9DYWNoZWRSZXNvdXJjZUxvYWRlci5jcHAKaW5kZXggMzUzYTYyYWE2NDBkYmRkNWU1MTI3ZDkw
YjEwODQ1NmQ0YWM3Y2VkYi4uN2I1ZGMzNTFlZDY4M2E3YTc2M2ZmOTkwNzI1NjUwNTk4MWRkMmM2
YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNl
TG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3Vy
Y2VMb2FkZXIuY3BwCkBAIC00OCw2ICs0OCw3IEBACiAjaW5jbHVkZSAiUmVzb3VyY2VMb2FkU2No
ZWR1bGVyLmgiCiAjaW5jbHVkZSAiU2VjdXJpdHlPcmlnaW4uaCIKICNpbmNsdWRlICJTZXR0aW5n
cy5oIgorI2luY2x1ZGUgPHd0Zi9NZW1vcnlJbnN0cnVtZW50YXRpb25IYXNoU2V0Lmg+CiAjaW5j
bHVkZSA8d3RmL1VudXNlZFBhcmFtLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgog
I2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgpAQCAtODg2LDcgKzg4Nyw3IEBAIHZvaWQg
Q2FjaGVkUmVzb3VyY2VMb2FkZXI6OnJlcG9ydE1lbW9yeVVzYWdlKE1lbW9yeU9iamVjdEluZm8q
IG1lbW9yeU9iamVjdEluZm8pCiAgICAgICAgIGluZm8uYWRkTWVtYmVyKGktPmZpcnN0KTsKICAg
ICAgICAgaW5mby5hZGRNZW1iZXIoaS0+c2Vjb25kKTsKICAgICB9Ci0gICAgaW5mby5hZGRIYXNo
U2V0KG1fdmFsaWRhdGVkVVJMcyk7CisgICAgaW5mby5hZGRNZW1iZXIobV92YWxpZGF0ZWRVUkxz
KTsKICAgICBpZiAobV9wcmVsb2FkcykKICAgICAgICAgaW5mby5hZGRMaXN0SGFzaFNldCgqbV9w
cmVsb2Fkcyk7CiAgICAgaW5mby5hZGRNZW1iZXIobV9wZW5kaW5nUHJlbG9hZHMpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZVJlcXVlc3RCYXNl
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VSZXF1ZXN0QmFz
ZS5jcHAKaW5kZXggMDBmNTgzOTA1NTk0NzFlYjdlNGY2M2Q1YWRjYWFmNmVhYWVkNWI2Yy4uMzAz
ZGVhYTljYmRhNzZhZmJmYzZjNTYyMmMwNTQ3NDE0OTkwZmM0NSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZVJlcXVlc3RCYXNlLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlUmVxdWVzdEJhc2UuY3BwCkBA
IC0yOCw2ICsyOCw3IEBACiAKICNpbmNsdWRlICJQbGF0Zm9ybU1lbW9yeUluc3RydW1lbnRhdGlv
bi5oIgogI2luY2x1ZGUgIlJlc291cmNlUmVxdWVzdC5oIgorI2luY2x1ZGUgPHd0Zi9NZW1vcnlJ
bnN0cnVtZW50YXRpb25WZWN0b3IuaD4KIAogdXNpbmcgbmFtZXNwYWNlIHN0ZDsKIApAQCAtNDUy
LDcgKzQ1Myw3IEBAIHZvaWQgUmVzb3VyY2VSZXF1ZXN0QmFzZTo6cmVwb3J0TWVtb3J5VXNhZ2Uo
TWVtb3J5T2JqZWN0SW5mbyogbWVtb3J5T2JqZWN0SW5mbykKICAgICBpbmZvLmFkZE1lbWJlciht
X2h0dHBNZXRob2QpOwogICAgIGluZm8uYWRkSGFzaE1hcChtX2h0dHBIZWFkZXJGaWVsZHMpOwog
ICAgIGluZm8uYWRkSW5zdHJ1bWVudGVkTWFwRW50cmllcyhtX2h0dHBIZWFkZXJGaWVsZHMpOwot
ICAgIGluZm8uYWRkSW5zdHJ1bWVudGVkVmVjdG9yKG1fcmVzcG9uc2VDb250ZW50RGlzcG9zaXRp
b25FbmNvZGluZ0ZhbGxiYWNrQXJyYXkpOworICAgIGluZm8uYWRkTWVtYmVyKG1fcmVzcG9uc2VD
b250ZW50RGlzcG9zaXRpb25FbmNvZGluZ0ZhbGxiYWNrQXJyYXkpOwogICAgIGluZm8uYWRkTWVt
YmVyKG1faHR0cEJvZHkpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3Rlc3RzL01lbW9yeUluc3RydW1lbnRhdGlvblRlc3QuY3BwIGIvU291cmNlL1dlYktpdC9jaHJv
bWl1bS90ZXN0cy9NZW1vcnlJbnN0cnVtZW50YXRpb25UZXN0LmNwcAppbmRleCA0YWNmNDk2YWQ4
N2QyZDgzYTk4N2Q3OTQ2ZjUzNzZlYTc1NmE0MmYwLi5hZWI1ZDk2NmE2ZmI4MzUxN2I5MzZmMjY3
ZmM2ZDQ0MWJlMGIxMmU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3Rz
L01lbW9yeUluc3RydW1lbnRhdGlvblRlc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vdGVzdHMvTWVtb3J5SW5zdHJ1bWVudGF0aW9uVGVzdC5jcHAKQEAgLTM3LDEwICszNywxMyBA
QAogI2luY2x1ZGUgPGd0ZXN0L2d0ZXN0Lmg+CiAKICNpbmNsdWRlIDx3dGYvSGFzaFNldC5oPgor
I2luY2x1ZGUgPHd0Zi9NZW1vcnlJbnN0cnVtZW50YXRpb25IYXNoU2V0Lmg+CisjaW5jbHVkZSA8
d3RmL01lbW9yeUluc3RydW1lbnRhdGlvblZlY3Rvci5oPgogI2luY2x1ZGUgPHd0Zi9SZWZDb3Vu
dGVkLmg+CiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L0F0b21p
Y1N0cmluZy5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KKyNpbmNsdWRlIDx3dGYv
dGV4dC9TdHJpbmdIYXNoLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nSW1wbC5oPgogI2lu
Y2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCkBAIC0yMzUsNiArMjM4LDcgQEAgY2xhc3Mg
SW5zdHJ1bWVudGVkT3duZXIgewogcHVibGljOgogICAgIHRlbXBsYXRlPHR5cGVuYW1lIFY+CiAg
ICAgSW5zdHJ1bWVudGVkT3duZXIoY29uc3QgViYgdmFsdWUpIDogbV92YWx1ZSh2YWx1ZSkgeyB9
CisgICAgSW5zdHJ1bWVudGVkT3duZXIoKSB7IH0KICAgICB2b2lkIHJlcG9ydE1lbW9yeVVzYWdl
KE1lbW9yeU9iamVjdEluZm8qIG1lbW9yeU9iamVjdEluZm8pIGNvbnN0CiAgICAgewogICAgICAg
ICBNZW1vcnlDbGFzc0luZm8gaW5mbyhtZW1vcnlPYmplY3RJbmZvLCB0aGlzLCBXZWJDb3JlTWVt
b3J5VHlwZXM6OkRPTSk7CkBAIC0zNjcsNSArMzcxLDkxIEBAIFRFU1QoTWVtb3J5SW5zdHJ1bWVu
dGF0aW9uVGVzdCwgZGV0ZWN0UmVwb3J0TWVtb3J5VXNhZ2VNZXRob2QpCiAgICAgfQogfQogCitU
RVNUKE1lbW9yeUluc3RydW1lbnRhdGlvblRlc3QsIHZlY3Rvclplcm9JbmxpbmVDYXBhY2l0eSkK
K3sKKyAgICBWaXNpdGVkT2JqZWN0cyB2aXNpdGVkT2JqZWN0czsKKyAgICBNZW1vcnlJbnN0cnVt
ZW50YXRpb25JbXBsIGltcGwodmlzaXRlZE9iamVjdHMpOworICAgIEluc3RydW1lbnRlZE93bmVy
PFZlY3RvcjxpbnQ+ID4gdmVjdG9yT3duZXIoMTYpOworICAgIGltcGwuYWRkUm9vdE9iamVjdCh2
ZWN0b3JPd25lcik7CisgICAgRVhQRUNUX0VRKDE2ICogc2l6ZW9mKGludCksIGltcGwucmVwb3J0
ZWRTaXplRm9yQWxsVHlwZXMoKSk7CisgICAgRVhQRUNUX0VRKDEsIHZpc2l0ZWRPYmplY3RzLnNp
emUoKSk7Cit9CisKK1RFU1QoTWVtb3J5SW5zdHJ1bWVudGF0aW9uVGVzdCwgdmVjdG9yRmllbGRX
aXRoSW5saW5lQ2FwYWNpdHkpCit7CisgICAgVmlzaXRlZE9iamVjdHMgdmlzaXRlZE9iamVjdHM7
CisgICAgTWVtb3J5SW5zdHJ1bWVudGF0aW9uSW1wbCBpbXBsKHZpc2l0ZWRPYmplY3RzKTsKKyAg
ICBJbnN0cnVtZW50ZWRPd25lcjxWZWN0b3I8aW50LCA0PiA+IHZlY3Rvck93bmVyOworICAgIGlt
cGwuYWRkUm9vdE9iamVjdCh2ZWN0b3JPd25lcik7CisgICAgRVhQRUNUX0VRKHN0YXRpY19jYXN0
PHNpemVfdD4oMCksIGltcGwucmVwb3J0ZWRTaXplRm9yQWxsVHlwZXMoKSk7CisgICAgRVhQRUNU
X0VRKDAsIHZpc2l0ZWRPYmplY3RzLnNpemUoKSk7Cit9CisKK1RFU1QoTWVtb3J5SW5zdHJ1bWVu
dGF0aW9uVGVzdCwgdmVjdG9yRmllbGRXaXRoSW5saW5lQ2FwYWNpdHlSZXNpemVkKQoreworICAg
IFZpc2l0ZWRPYmplY3RzIHZpc2l0ZWRPYmplY3RzOworICAgIE1lbW9yeUluc3RydW1lbnRhdGlv
bkltcGwgaW1wbCh2aXNpdGVkT2JqZWN0cyk7CisgICAgSW5zdHJ1bWVudGVkT3duZXI8VmVjdG9y
PGludCwgND4gPiB2ZWN0b3JPd25lcjsKKyAgICB2ZWN0b3JPd25lci5tX3ZhbHVlLnJlc2VydmVD
YXBhY2l0eSg4KTsKKyAgICBpbXBsLmFkZFJvb3RPYmplY3QodmVjdG9yT3duZXIpOworICAgIEVY
UEVDVF9FUSg4ICogc2l6ZW9mKGludCksIGltcGwucmVwb3J0ZWRTaXplRm9yQWxsVHlwZXMoKSk7
CisgICAgRVhQRUNUX0VRKDEsIHZpc2l0ZWRPYmplY3RzLnNpemUoKSk7Cit9CisKK1RFU1QoTWVt
b3J5SW5zdHJ1bWVudGF0aW9uVGVzdCwgaGVhcEFsbG9jYXRlZFZlY3RvcldpdGhJbmxpbmVDYXBh
Y2l0eSkKK3sKKyAgICBWaXNpdGVkT2JqZWN0cyB2aXNpdGVkT2JqZWN0czsKKyAgICBNZW1vcnlJ
bnN0cnVtZW50YXRpb25JbXBsIGltcGwodmlzaXRlZE9iamVjdHMpOworICAgIEluc3RydW1lbnRl
ZE93bmVyPE93blB0cjxWZWN0b3I8aW50LCA0PiA+ID4gdmVjdG9yT3duZXI7CisgICAgdmVjdG9y
T3duZXIubV92YWx1ZSA9IGFkb3B0UHRyKG5ldyBWZWN0b3I8aW50LCA0PigpKTsKKyAgICBpbXBs
LmFkZFJvb3RPYmplY3QodmVjdG9yT3duZXIpOworICAgIEVYUEVDVF9FUShzaXplb2YoVmVjdG9y
PGludCwgND4pLCBpbXBsLnJlcG9ydGVkU2l6ZUZvckFsbFR5cGVzKCkpOworICAgIEVYUEVDVF9F
USgxLCB2aXNpdGVkT2JqZWN0cy5zaXplKCkpOworfQorCitURVNUKE1lbW9yeUluc3RydW1lbnRh
dGlvblRlc3QsIGhlYXBBbGxvY2F0ZWRWZWN0b3JXaXRoSW5saW5lQ2FwYWNpdHlSZXNpemVkKQor
eworICAgIFZpc2l0ZWRPYmplY3RzIHZpc2l0ZWRPYmplY3RzOworICAgIE1lbW9yeUluc3RydW1l
bnRhdGlvbkltcGwgaW1wbCh2aXNpdGVkT2JqZWN0cyk7CisgICAgSW5zdHJ1bWVudGVkT3duZXI8
T3duUHRyPFZlY3RvcjxpbnQsIDQ+ID4gPiB2ZWN0b3JPd25lcjsKKyAgICB2ZWN0b3JPd25lci5t
X3ZhbHVlID0gYWRvcHRQdHIobmV3IFZlY3RvcjxpbnQsIDQ+KCkpOworICAgIHZlY3Rvck93bmVy
Lm1fdmFsdWUtPnJlc2VydmVDYXBhY2l0eSg4KTsKKyAgICBpbXBsLmFkZFJvb3RPYmplY3QodmVj
dG9yT3duZXIpOworICAgIEVYUEVDVF9FUSg4ICogc2l6ZW9mKGludCkgKyBzaXplb2YoVmVjdG9y
PGludCwgND4pLCBpbXBsLnJlcG9ydGVkU2l6ZUZvckFsbFR5cGVzKCkpOworICAgIEVYUEVDVF9F
USgyLCB2aXNpdGVkT2JqZWN0cy5zaXplKCkpOworfQorCitURVNUKE1lbW9yeUluc3RydW1lbnRh
dGlvblRlc3QsIHZlY3RvcldpdGhJbnN0cnVtZW50ZWRUeXBlKQoreworICAgIFZpc2l0ZWRPYmpl
Y3RzIHZpc2l0ZWRPYmplY3RzOworICAgIE1lbW9yeUluc3RydW1lbnRhdGlvbkltcGwgaW1wbCh2
aXNpdGVkT2JqZWN0cyk7CisKKyAgICB0eXBlZGVmIFZlY3RvcjxTdHJpbmc+IFN0cmluZ1ZlY3Rv
cjsKKyAgICBPd25QdHI8U3RyaW5nVmVjdG9yPiB2YWx1ZSA9IGFkb3B0UHRyKG5ldyBTdHJpbmdW
ZWN0b3IoKSk7CisgICAgc2l6ZV90IGNvdW50ID0gMTA7CisgICAgZm9yIChzaXplX3QgaSA9IDA7
IGkgPCBjb3VudDsgKytpKQorICAgICAgICB2YWx1ZS0+YXBwZW5kKCJzdHJpbmciKTsKKyAgICBJ
bnN0cnVtZW50ZWRPd25lcjxTdHJpbmdWZWN0b3IqID4gcm9vdCh2YWx1ZS5nZXQoKSk7CisgICAg
aW1wbC5hZGRSb290T2JqZWN0KHJvb3QpOworICAgIEVYUEVDVF9FUShzaXplb2YoU3RyaW5nVmVj
dG9yKSArIHNpemVvZihTdHJpbmcpICogdmFsdWUtPmNhcGFjaXR5KCkgKyBzaXplb2YoU3RyaW5n
SW1wbCkgKiB2YWx1ZS0+c2l6ZSgpLCBpbXBsLnJlcG9ydGVkU2l6ZUZvckFsbFR5cGVzKCkpOwor
ICAgIEVYUEVDVF9FUShjb3VudCArIDIsIChzaXplX3QpdmlzaXRlZE9iamVjdHMuc2l6ZSgpKTsK
K30KKworVEVTVChNZW1vcnlJbnN0cnVtZW50YXRpb25UZXN0LCBoYXNoU2V0V2l0aEluc3RydW1l
bnRlZFR5cGUpCit7CisgICAgVmlzaXRlZE9iamVjdHMgdmlzaXRlZE9iamVjdHM7CisgICAgTWVt
b3J5SW5zdHJ1bWVudGF0aW9uSW1wbCBpbXBsKHZpc2l0ZWRPYmplY3RzKTsKKworICAgIHR5cGVk
ZWYgSGFzaFNldDxTdHJpbmc+IFZhbHVlVHlwZTsKKyAgICBPd25QdHI8VmFsdWVUeXBlPiB2YWx1
ZSA9IGFkb3B0UHRyKG5ldyBWYWx1ZVR5cGUoKSk7CisgICAgc2l6ZV90IGNvdW50ID0gMTA7Cisg
ICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBjb3VudDsgKytpKQorICAgICAgICB2YWx1ZS0+YWRk
KFN0cmluZzo6bnVtYmVyKGkpKTsKKyAgICBJbnN0cnVtZW50ZWRPd25lcjxWYWx1ZVR5cGUqID4g
cm9vdCh2YWx1ZS5nZXQoKSk7CisgICAgaW1wbC5hZGRSb290T2JqZWN0KHJvb3QpOworICAgIEVY
UEVDVF9FUShzaXplb2YoVmFsdWVUeXBlKSArIHNpemVvZihTdHJpbmcpICogdmFsdWUtPmNhcGFj
aXR5KCkgKyBzaXplb2YoU3RyaW5nSW1wbCkgKiB2YWx1ZS0+c2l6ZSgpLCBpbXBsLnJlcG9ydGVk
U2l6ZUZvckFsbFR5cGVzKCkpOworICAgIEVYUEVDVF9FUShjb3VudCArIDIsIChzaXplX3Qpdmlz
aXRlZE9iamVjdHMuc2l6ZSgpKTsKK30KKwogfSAvLyBuYW1lc3BhY2UKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>165558</attachid>
            <date>2012-09-25 01:55:48 -0700</date>
            <delta_ts>2012-09-25 05:21:16 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-97198-20120925125507.patch</filename>
            <type>text/plain</type>
            <size>29865</size>
            <attacher name="Ilya Tikhonovsky">loislo</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI5NDc2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDUxZjU2ZDE3N2QyNmEzNjg2MDI1M2I5
NjI2ODU2MTg2NzA1YTY2OGEuLjBkZjU1ZDAzYjEwODQ0ZmJkYWUwZThiOTI1MTRlNDEyOTI5M2Yy
NmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMjEgQEAKKzIwMTItMDktMjAgIElseWEgVGlraG9ub3Zza3kgIDxs
b2lzbG9AY2hyb21pdW0ub3JnPgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IGV4dHJhY3QgSGFz
aFNldCBpbnN0cnVtZW50YXRpb24gZnJvbSBjb3JlIE5NSSBjb2RlIGFuZCBwdXQgaXQgaW50byBN
ZW1vcnlJbnN0cnVtZW50YXRpb25IYXNoU2V0LmgKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTk3MTk4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgQ3VycmVudCBpbXBsZW1lbnRhdGlvbiBoYXMgb3ZlcmxvYWRz
IGZvciBIYXNoU2V0LgorICAgICAgICBUaGlzIHByZXZlbnRzIHVzIGZyb20gaW5zdHJ1bWVudGlu
ZyBjb21wbGV4IGNhc2VzIGxpa2UgVmVjdG9yPEhhc2hTZXQ8Li4uPiA+LgorCisgICAgICAgICog
d3RmL0hhc2hTZXQuaDoKKyAgICAgICAgKFdURik6CisgICAgICAgIChIYXNoU2V0KToKKyAgICAg
ICAgKiB3dGYvSGFzaFRhYmxlLmg6CisgICAgICAgIChXVEYpOgorICAgICAgICAoSGFzaFRhYmxl
KToKKyAgICAgICAgKiB3dGYvTWVtb3J5SW5zdHJ1bWVudGF0aW9uLmg6CisKIDIwMTItMDktMjEg
IElseWEgVGlraG9ub3Zza3kgIDxsb2lzbG9AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFdlYiBJ
bnNwZWN0b3I6IGV4dHJhY3QgVmVjdG9yIGluc3RydW1lbnRhdGlvbiBmcm9tIGNvcmUgTk1JIGNv
ZGUgaW50byBNZW1vcnlJbnN0cnVtZW50YXRpb25WZWN0b3IuaCBoZWFkZXIuCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5k
ZXggNWU4ODY0ODAxYTQ1YjQ1NmQxOTFkYjgxMWU2NzVjMjM3YjI1NWFjYy4uYWFhNDE0ZDNlYmVl
MzY4OGExYmZiZmFjMzE3ZTUxZDRjMThhNGJhMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
Q2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMxIEBA
CisyMDEyLTA5LTIwICBJbHlhIFRpa2hvbm92c2t5ICA8bG9pc2xvQGNocm9taXVtLm9yZz4KKwor
ICAgICAgICBXZWIgSW5zcGVjdG9yOiBleHRyYWN0IEhhc2hTZXQgaW5zdHJ1bWVudGF0aW9uIGZy
b20gY29yZSBOTUkgY29kZSBhbmQgcHV0IGl0IGludG8gTWVtb3J5SW5zdHJ1bWVudGF0aW9uSGFz
aFNldC5oCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05
NzE5OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEN1
cnJlbnQgaW1wbGVtZW50YXRpb24gaGFzIG92ZXJsb2FkcyBmb3IgSGFzaFNldC4KKyAgICAgICAg
VGhpcyBwcmV2ZW50cyB1cyBmcm9tIGluc3RydW1lbnRpbmcgY29tcGxleCBjYXNlcyBsaWtlIFZl
Y3RvcjxIYXNoU2V0PC4uLj4gPi4KKworICAgICAgICAqIGNzcy9DU1NDdXJzb3JJbWFnZVZhbHVl
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU0N1cnNvckltYWdlVmFsdWU6OnJlcG9ydERlc2Nl
bmRhbnRNZW1vcnlVc2FnZSk6CisgICAgICAgICogY3NzL1N0eWxlUmVzb2x2ZXIuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6U3R5bGVSZXNvbHZlcjo6RmVhdHVyZXM6OnJlcG9ydE1lbW9yeVVzYWdl
KToKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlUmVzb2x2ZXI6OmNvbGxlY3RNYXRjaGluZ1J1bGVz
Rm9yTGlzdCk6CisgICAgICAgICogZG9tL0RvY3VtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkRvY3VtZW50OjpyZXBvcnRNZW1vcnlVc2FnZSk6CisgICAgICAgICogZG9tL0RvY3VtZW50RXZl
bnRRdWV1ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudEV2ZW50UXVldWU6OnJlcG9y
dE1lbW9yeVVzYWdlKToKKyAgICAgICAgKiBsb2FkZXIvRG9jdW1lbnRMb2FkZXIuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6RG9jdW1lbnRMb2FkZXI6OnJlcG9ydE1lbW9yeVVzYWdlKToKKyAgICAg
ICAgKiBsb2FkZXIvRnJhbWVMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2Fk
ZXI6OnJlcG9ydE1lbW9yeVVzYWdlKToKKyAgICAgICAgKiBsb2FkZXIvY2FjaGUvQ2FjaGVkUmVz
b3VyY2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkUmVzb3VyY2U6OnJlcG9ydE1lbW9y
eVVzYWdlKToKKyAgICAgICAgKiBsb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VMb2FkZXIuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkUmVzb3VyY2VMb2FkZXI6OnJlcG9ydE1lbW9yeVVz
YWdlKToKKwogMjAxMi0wOS0yNSAgUGV0ZXIgV2FuZyAgPHBldGVyLndhbmdAdG9yY2htb2JpbGUu
Y29tLmNuPgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6ICBUaGUgSlMgY29kZSBpbmplY3RlZCBi
eSB3b3JrZXIgaW5zcGVjdG9yIHNob3VsZG4ndCBiZSBldmFsdWF0ZWQgdGhyb3VnaCBKU01haW5U
aHJlYWRFeGVjU3RhdGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdl
TG9nIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXggYjIxNmRmOTFhZDFk
NzhlODFhYTZlMWUwOTdmZjU2ZmU5NjVhOGY3OC4uNTFhNDJmZWQ5ZjlkMWMzZGEwOTU3Nzg3ODMz
ZjFhNTc4NDQ0MDhmMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VM
b2cKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBA
QAorMjAxMi0wOS0yMCAgSWx5YSBUaWtob25vdnNreSAgPGxvaXNsb0BjaHJvbWl1bS5vcmc+CisK
KyAgICAgICAgV2ViIEluc3BlY3RvcjogZXh0cmFjdCBIYXNoU2V0IGluc3RydW1lbnRhdGlvbiBm
cm9tIGNvcmUgTk1JIGNvZGUgYW5kIHB1dCBpdCBpbnRvIE1lbW9yeUluc3RydW1lbnRhdGlvbkhh
c2hTZXQuaAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
OTcxOTgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBD
dXJyZW50IGltcGxlbWVudGF0aW9uIGhhcyBvdmVybG9hZHMgZm9yIEhhc2hTZXQuCisgICAgICAg
IFRoaXMgcHJldmVudHMgdXMgZnJvbSBpbnN0cnVtZW50aW5nIGNvbXBsZXggY2FzZXMgbGlrZSBW
ZWN0b3I8SGFzaFNldDwuLi4+ID4uCisKKyAgICAgICAgKiB0ZXN0cy9NZW1vcnlJbnN0cnVtZW50
YXRpb25UZXN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRFU1QpOgorICAgICAgICAoV2ViQ29y
ZSk6CisKIDIwMTItMDktMjEgIElseWEgVGlraG9ub3Zza3kgIDxsb2lzbG9AY2hyb21pdW0ub3Jn
PgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IGV4dHJhY3QgVmVjdG9yIGluc3RydW1lbnRhdGlv
biBmcm9tIGNvcmUgTk1JIGNvZGUgaW50byBNZW1vcnlJbnN0cnVtZW50YXRpb25WZWN0b3IuaCBo
ZWFkZXIuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0dOVW1ha2VmaWxlLmxpc3QuYW0gYi9Tb3Vy
Y2UvV1RGL0dOVW1ha2VmaWxlLmxpc3QuYW0KaW5kZXggMGVkMTBkZGFlMTQ4YTA3MzNhODM1MjY5
NTRiNzgxOWZkYmNiZGZmMi4uNTJiMzc0OGE3NWU3N2U5OTA3Mjg1ZmM3Y2RmMDRjNjNhNjY3YmQ0
MSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi9HTlVtYWtlZmlsZS5saXN0LmFtCisrKyBiL1NvdXJj
ZS9XVEYvR05VbWFrZWZpbGUubGlzdC5hbQpAQCAtODAsNiArODAsNyBAQCB3dGZfc291cmNlcyAr
PSBcCiAgICAgU291cmNlL1dURi93dGYvTWVkaWFUaW1lLmggXAogICAgIFNvdXJjZS9XVEYvd3Rm
L01lZGlhVGltZS5jcHAgXAogICAgIFNvdXJjZS9XVEYvd3RmL01lbW9yeUluc3RydW1lbnRhdGlv
bi5oIFwKKyAgICBTb3VyY2UvV1RGL3d0Zi9NZW1vcnlJbnN0cnVtZW50YXRpb25IYXNoU2V0Lmgg
XAogICAgIFNvdXJjZS9XVEYvd3RmL01lbW9yeUluc3RydW1lbnRhdGlvblZlY3Rvci5oIFwKICAg
ICBTb3VyY2UvV1RGL3d0Zi9NZXNzYWdlUXVldWUuaCBcCiAgICAgU291cmNlL1dURi93dGYvTWV0
YUFsbG9jYXRvci5jcHAgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi9XVEYuZ3lwaSBiL1NvdXJj
ZS9XVEYvV1RGLmd5cGkKaW5kZXggZmRjMjhkNmJiNTVlN2U1NjVkYWYwOTViNzNjYjUzYTczZTA5
NDhmYy4uMDQyMGU1MDQ3MmZiYjZiMTgzMzg5NTVmNjI2M2VlYTM5MjE2MjVhZSAxMDA2NDQKLS0t
IGEvU291cmNlL1dURi9XVEYuZ3lwaQorKysgYi9Tb3VyY2UvV1RGL1dURi5neXBpCkBAIC01MCw2
ICs1MCw3IEBACiAgICAgICAgICAgICAnd3RmL01haW5UaHJlYWQuaCcsCiAgICAgICAgICAgICAn
d3RmL01hdGhFeHRyYXMuaCcsCiAgICAgICAgICAgICAnd3RmL01lbW9yeUluc3RydW1lbnRhdGlv
bi5oJywKKyAgICAgICAgICAgICd3dGYvTWVtb3J5SW5zdHJ1bWVudGF0aW9uSGFzaFNldC5oJywK
ICAgICAgICAgICAgICd3dGYvTWVtb3J5SW5zdHJ1bWVudGF0aW9uVmVjdG9yLmgnLAogICAgICAg
ICAgICAgJ3d0Zi9NZXNzYWdlUXVldWUuaCcsCiAgICAgICAgICAgICAnd3RmL05vbkNvcHlpbmdT
b3J0LmgnLApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi9XVEYucHJvIGIvU291cmNlL1dURi9XVEYu
cHJvCmluZGV4IGU4ZGE0YzBjNmIyNDY3MGNkMGI1ODI3NTYwMzEzYjAwYzlmOTg5OGUuLjI0Zjcz
MzU1MWQ2ZWRmYTY0ZDJmNjE1ZGMxYTlmZjY3M2VhODUwMjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
VEYvV1RGLnBybworKysgYi9Tb3VyY2UvV1RGL1dURi5wcm8KQEAgLTg3LDYgKzg3LDcgQEAgSEVB
REVSUyArPSBcCiAgICAgTUQ1LmggXAogICAgIE1lZGlhVGltZS5oIFwKICAgICBNZW1vcnlJbnN0
cnVtZW50YXRpb24uaCBcCisgICAgTWVtb3J5SW5zdHJ1bWVudGF0aW9uSGFzaFNldC5oIFwKICAg
ICBNZW1vcnlJbnN0cnVtZW50YXRpb25WZWN0b3IuaCBcCiAgICAgTWVzc2FnZVF1ZXVlLmggXAog
ICAgIE1ldGFBbGxvY2F0b3IuaCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL1dURi52Y3Byb2ov
V1RGLnZjcHJvaiBiL1NvdXJjZS9XVEYvV1RGLnZjcHJvai9XVEYudmNwcm9qCmluZGV4IGY5MTA4
Yzg5MzVlMmY1ODRhZWE4Yjg3MmEzYWUzNGMxMjQzNGU4NDMuLjYzNWY4OWNhMmJlZmJkZTNiZjQ1
MDc3NDMxY2Y3MGE2OWFkZGNhNWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvV1RGLnZjcHJvai9X
VEYudmNwcm9qCisrKyBiL1NvdXJjZS9XVEYvV1RGLnZjcHJvai9XVEYudmNwcm9qCkBAIC05MDUs
NiArOTA1LDEwIEBACiAJCQk+CiAJCTwvRmlsZT4KIAkJPEZpbGUKKwkJICAgICAgICBSZWxhdGl2
ZVBhdGg9Ii4uXHd0ZlxNZW1vcnlJbnN0cnVtZW50YXRpb25IYXNoU2V0LmgiCisJCQk+CisJCTwv
RmlsZT4KKwkJPEZpbGUKIAkJICAgICAgICBSZWxhdGl2ZVBhdGg9Ii4uXHd0ZlxNZW1vcnlJbnN0
cnVtZW50YXRpb25WZWN0b3IuaCIKIAkJCT4KIAkJPC9GaWxlPgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dURi9XVEYueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XVEYvV1RGLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggM2E4OWVkZmExYTQ2M2M3MWZmNTM1N2M1MTE5MDU0
MDA5MWRmNDVlMi4uN2I3MzRkNDY3MTViNjhkYmI5OTNhZmRmZmUyZjRiYzZkM2FhODNlMyAxMDA2
NDQKLS0tIGEvU291cmNlL1dURi9XVEYueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9T
b3VyY2UvV1RGL1dURi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC00MCw2ICs0MCw3IEBA
CiAJCTJDQ0Q4OTJBMTVDMDM5MDIwMDI4NTA4MyAvKiBHcmVnb3JpYW5EYXRlVGltZS5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyQ0NEODkyOTE1QzAz
OTAyMDAyODUwODMgLyogR3JlZ29yaWFuRGF0ZVRpbWUuY3BwICovOyB9OwogCQk0MzMwRjM4RjE1
NzQ1QjA1MDBBQUZBOEYgLyogVVJMU3RyaW5nLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQzMzBGMzhFMTU3NDVCMDUwMEFBRkE4RiAvKiBVUkxTdHJp
bmcuY3BwICovOyB9OwogCQk0RjAzMjFCQzE1NkFBOEQxMDA2RUJBRjYgLyogQml0QXJyYXkuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDRGMDMyMUJCMTU2
QUE4RDEwMDZFQkFGNiAvKiBCaXRBcnJheS5oICovOyB9OworCQk0RjFCMkRCNjE2MEI0NEFBMDA1
ODY1NTkgLyogTWVtb3J5SW5zdHJ1bWVudGF0aW9uSGFzaFNldC5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNEYxQjJEQjUxNjBCNDRBQTAwNTg2NTU5IC8q
IE1lbW9yeUluc3RydW1lbnRhdGlvbkhhc2hTZXQuaCAqLzsgfTsKIAkJNEYxRDExNTQxNUZGMTFC
RTAwMjZFOTA4IC8qIE1lbW9yeUluc3RydW1lbnRhdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNEYxRDExNTMxNUZGMTFCRTAwMjZFOTA4IC8qIE1l
bW9yeUluc3RydW1lbnRhdGlvbi5oICovOyB9OwogCQk0RkNCNzEwQTE2MEExQTA3MDA4NDI1RUMg
LyogTWVtb3J5SW5zdHJ1bWVudGF0aW9uVmVjdG9yLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0RkNCNzEwOTE2MEExQTA3MDA4NDI1RUMgLyogTWVtb3J5
SW5zdHJ1bWVudGF0aW9uVmVjdG9yLmggKi87IH07CiAJCTdFMjlDMzNFMTVGRkQ3OUIwMDUxNkQ2
MSAvKiBPYmpjUnVudGltZUV4dHJhcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gN0UyOUMzM0QxNUZGRDc5QjAwNTE2RDYxIC8qIE9iamNSdW50aW1lRXh0
cmFzLmggKi87IH07CkBAIC0zMDksNiArMzEwLDcgQEAKIAkJMkNDRDg5MjkxNUMwMzkwMjAwMjg1
MDgzIC8qIEdyZWdvcmlhbkRhdGVUaW1lLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IEdyZWdvcmlhbkRhdGVUaW1lLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJNDMzMEYzOEUxNTc0NUIwNTAwQUFGQThGIC8qIFVSTFN0cmluZy5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBVUkxTdHJpbmcuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk0RjAzMjFCQjE1NkFBOEQxMDA2RUJBRjYgLyogQml0QXJyYXkuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQml0QXJyYXkuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJNEYxQjJEQjUxNjBCNDRBQTAwNTg2NTU5IC8qIE1lbW9yeUluc3Ry
dW1lbnRhdGlvbkhhc2hTZXQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWVt
b3J5SW5zdHJ1bWVudGF0aW9uSGFzaFNldC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk0RjFEMTE1MzE1RkYxMUJFMDAyNkU5MDggLyogTWVtb3J5SW5zdHJ1bWVudGF0aW9uLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1lbW9yeUluc3RydW1lbnRhdGlvbi5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0RkNCNzEwOTE2MEExQTA3MDA4NDI1RUMgLyog
TWVtb3J5SW5zdHJ1bWVudGF0aW9uVmVjdG9yLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IE1lbW9yeUluc3RydW1lbnRhdGlvblZlY3Rvci5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk1RDI0N0I2MjE0Njg5Qjg2MDBFNzhCNzYgLyogbGliV1RGLmEgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZXhwbGljaXRGaWxlVHlwZSA9IGFyY2hpdmUuYXI7IGluY2x1
ZGVJbkluZGV4ID0gMDsgcGF0aCA9IGxpYldURi5hOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVD
VFNfRElSOyB9OwpAQCAtNjkzLDYgKzY5NSw3IEBACiAJCQkJQ0Q1NDk3QUIxNTg1N0QwMzAwQjVC
QzMwIC8qIE1lZGlhVGltZS5oICovLAogCQkJCTRGMUQxMTUzMTVGRjExQkUwMDI2RTkwOCAvKiBN
ZW1vcnlJbnN0cnVtZW50YXRpb24uaCAqLywKIAkJCQk0RkNCNzEwOTE2MEExQTA3MDA4NDI1RUMg
LyogTWVtb3J5SW5zdHJ1bWVudGF0aW9uVmVjdG9yLmggKi8sCisJCQkJNEYxQjJEQjUxNjBCNDRB
QTAwNTg2NTU5IC8qIE1lbW9yeUluc3RydW1lbnRhdGlvbkhhc2hTZXQuaCAqLywKIAkJCQlBOEE0
NzJDQzE1MUE4MjVCMDA0MTIzRkYgLyogTWVzc2FnZVF1ZXVlLmggKi8sCiAJCQkJQThBNDcyQ0Qx
NTFBODI1QjAwNDEyM0ZGIC8qIE1ldGFBbGxvY2F0b3IuY3BwICovLAogCQkJCUE4QTQ3MkNFMTUx
QTgyNUIwMDQxMjNGRiAvKiBNZXRhQWxsb2NhdG9yLmggKi8sCkBAIC0xMTQ1LDYgKzExNDgsNyBA
QAogCQkJCTI2RTZDMjBBMTYwOTAzNzMwMENBNkFGNCAvKiBVUkxVdGlsSW50ZXJuYWwuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTI2RTZDMjBEMTYwOTAzNzMwMENBNkFGNCAvKiBVUkxVdGlsLmggaW4g
SGVhZGVycyAqLywKIAkJCQk0RkNCNzEwQTE2MEExQTA3MDA4NDI1RUMgLyogTWVtb3J5SW5zdHJ1
bWVudGF0aW9uVmVjdG9yLmggaW4gSGVhZGVycyAqLywKKwkJCQk0RjFCMkRCNjE2MEI0NEFBMDA1
ODY1NTkgLyogTWVtb3J5SW5zdHJ1bWVudGF0aW9uSGFzaFNldC5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9IYXNoU2V0LmggYi9Tb3VyY2UvV1RGL3d0Zi9IYXNo
U2V0LmgKaW5kZXggMWIzYjJlMjg3MzM0MzliMTBiYjc1M2M5MDRkNTRmZmVjNTVmMjVjYi4uZTZl
ZTU5MjlhZmFhMzU0M2NlZWUzOWQ2OTc1NDBmNzk0ZmUyMTk3YiAxMDA2NDQKLS0tIGEvU291cmNl
L1dURi93dGYvSGFzaFNldC5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL0hhc2hTZXQuaApAQCAtMjcs
NiArMjcsNyBAQAogbmFtZXNwYWNlIFdURiB7CiAKICAgICBzdHJ1Y3QgSWRlbnRpdHlFeHRyYWN0
b3I7CisgICAgY2xhc3MgTWVtb3J5T2JqZWN0SW5mbzsKICAgICAKICAgICB0ZW1wbGF0ZTx0eXBl
bmFtZSBWYWx1ZSwgdHlwZW5hbWUgSGFzaEZ1bmN0aW9ucywgdHlwZW5hbWUgVHJhaXRzPiBjbGFz
cyBIYXNoU2V0OwogICAgIHRlbXBsYXRlPHR5cGVuYW1lIFZhbHVlLCB0eXBlbmFtZSBIYXNoRnVu
Y3Rpb25zLCB0eXBlbmFtZSBUcmFpdHM+CkBAIC05Niw2ICs5Nyw3IEBAIG5hbWVzcGFjZSBXVEYg
ewogICAgIHByaXZhdGU6CiAgICAgICAgIGZyaWVuZCB2b2lkIGRlbGV0ZUFsbFZhbHVlczw+KGNv
bnN0IEhhc2hTZXQmKTsKICAgICAgICAgZnJpZW5kIHZvaWQgZmFzdERlbGV0ZUFsbFZhbHVlczw+
KGNvbnN0IEhhc2hTZXQmKTsKKyAgICAgICAgdGVtcGxhdGU8dHlwZW5hbWUgViwgdHlwZW5hbWUg
SCwgdHlwZW5hbWUgVD4gZnJpZW5kIHZvaWQgcmVwb3J0TWVtb3J5VXNhZ2UoY29uc3QgSGFzaFNl
dDxWLCBILCBUPiogY29uc3QmLCBNZW1vcnlPYmplY3RJbmZvKik7CiAKICAgICAgICAgSGFzaFRh
YmxlVHlwZSBtX2ltcGw7CiAgICAgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL0hhc2hU
YWJsZS5oIGIvU291cmNlL1dURi93dGYvSGFzaFRhYmxlLmgKaW5kZXggMWNlM2M1Y2Y2ODhlZjBh
ODFlMTA2MWJjNmNlMjYyMGJlM2Q5ODAwZS4uY2MxZjZmZWM0MGM3ZDRmMDQ5NjJhNDJkYzQ2ZThi
M2Y3NzNhMjZkZSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvSGFzaFRhYmxlLmgKKysrIGIv
U291cmNlL1dURi93dGYvSGFzaFRhYmxlLmgKQEAgLTMwNyw2ICszMDcsOCBAQCBuYW1lc3BhY2Ug
V1RGIHsKICAgICAgICAgYm9vbCBpc05ld0VudHJ5OwogICAgIH07CiAKKyAgICBjbGFzcyBNZW1v
cnlPYmplY3RJbmZvOworCiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgS2V5LCB0eXBlbmFtZSBWYWx1
ZSwgdHlwZW5hbWUgRXh0cmFjdG9yLCB0eXBlbmFtZSBIYXNoRnVuY3Rpb25zLCB0eXBlbmFtZSBU
cmFpdHMsIHR5cGVuYW1lIEtleVRyYWl0cz4KICAgICBjbGFzcyBIYXNoVGFibGUgewogICAgIHB1
YmxpYzoKQEAgLTQ4NCw2ICs0ODYsOCBAQCBuYW1lc3BhY2UgV1RGIHsKICAgICAgICAgc3RhdGlj
IGNvbnN0IGludCBtX21heExvYWQgPSAyOwogICAgICAgICBzdGF0aWMgY29uc3QgaW50IG1fbWlu
TG9hZCA9IDY7CiAKKyAgICAgICAgdGVtcGxhdGU8dHlwZW5hbWUgSywgdHlwZW5hbWUgViwgdHlw
ZW5hbWUgRSwgdHlwZW5hbWUgSCwgdHlwZW5hbWUgVCwgdHlwZW5hbWUgS1Q+IGZyaWVuZCB2b2lk
IHJlcG9ydE1lbW9yeVVzYWdlKGNvbnN0IEhhc2hUYWJsZTxLLCBWLCBFLCBILCBULCBLVD4qIGNv
bnN0JiwgTWVtb3J5T2JqZWN0SW5mbyopOworCiAgICAgICAgIFZhbHVlVHlwZSogbV90YWJsZTsK
ICAgICAgICAgaW50IG1fdGFibGVTaXplOwogICAgICAgICBpbnQgbV90YWJsZVNpemVNYXNrOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvTWVtb3J5SW5zdHJ1bWVudGF0aW9uLmggYi9Tb3Vy
Y2UvV1RGL3d0Zi9NZW1vcnlJbnN0cnVtZW50YXRpb24uaAppbmRleCBiMWYyZTI5NGE1OTIzMmJj
NDVjYjA4YTgzZDJhOGZlY2NlYjI5NmFkLi5mYzI1OTNlYzMwN2U4Y2ZmYTIyZmI5YWVkOTY1NzI5
ZTFhZjgzZDZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9NZW1vcnlJbnN0cnVtZW50YXRp
b24uaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9NZW1vcnlJbnN0cnVtZW50YXRpb24uaApAQCAtMTQ2
LDcgKzE0Niw2IEBAIHByaXZhdGU6CiAKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiB2b2lkIGFk
ZE9iamVjdChjb25zdCBUJiB0LCBNZW1vcnlPYmplY3RUeXBlIG93bmVyT2JqZWN0VHlwZSkgeyBP
d25pbmdUcmFpdHM8VD46OmFkZE9iamVjdCh0aGlzLCB0LCBvd25lck9iamVjdFR5cGUpOyB9CiAg
ICAgdGVtcGxhdGU8dHlwZW5hbWUgSGFzaE1hcFR5cGU+IHZvaWQgYWRkSGFzaE1hcChjb25zdCBI
YXNoTWFwVHlwZSYsIE1lbW9yeU9iamVjdFR5cGUsIGJvb2wgY29udGVudE9ubHkgPSBmYWxzZSk7
Ci0gICAgdGVtcGxhdGU8dHlwZW5hbWUgSGFzaFNldFR5cGU+IHZvaWQgYWRkSGFzaFNldChjb25z
dCBIYXNoU2V0VHlwZSYsIE1lbW9yeU9iamVjdFR5cGUsIGJvb2wgY29udGVudE9ubHkgPSBmYWxz
ZSk7CiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgQ29sbGVjdGlvblR5cGU+IHZvaWQgYWRkSW5zdHJ1
bWVudGVkQ29sbGVjdGlvbihjb25zdCBDb2xsZWN0aW9uVHlwZSYsIE1lbW9yeU9iamVjdFR5cGUs
IGJvb2wgY29udGVudE9ubHkgPSBmYWxzZSk7CiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgTWFwVHlw
ZT4gdm9pZCBhZGRJbnN0cnVtZW50ZWRNYXBFbnRyaWVzKGNvbnN0IE1hcFR5cGUmLCBNZW1vcnlP
YmplY3RUeXBlKTsKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBNYXBUeXBlPiB2b2lkIGFkZEluc3Ry
dW1lbnRlZE1hcFZhbHVlcyhjb25zdCBNYXBUeXBlJiwgTWVtb3J5T2JqZWN0VHlwZSk7CkBAIC0x
OTMsOSArMTkyLDcgQEAgcHVibGljOgogICAgIHRlbXBsYXRlPHR5cGVuYW1lIE0+IHZvaWQgYWRk
TWVtYmVyKGNvbnN0IE0mIG1lbWJlcikgeyBtX21lbW9yeUluc3RydW1lbnRhdGlvbi0+YWRkT2Jq
ZWN0KG1lbWJlciwgbV9vYmplY3RUeXBlKTsgfQogCiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgSGFz
aE1hcFR5cGU+IHZvaWQgYWRkSGFzaE1hcChjb25zdCBIYXNoTWFwVHlwZSYgbWFwKSB7IG1fbWVt
b3J5SW5zdHJ1bWVudGF0aW9uLT5hZGRIYXNoTWFwKG1hcCwgbV9vYmplY3RUeXBlLCB0cnVlKTsg
fQotICAgIHRlbXBsYXRlPHR5cGVuYW1lIEhhc2hTZXRUeXBlPiB2b2lkIGFkZEhhc2hTZXQoY29u
c3QgSGFzaFNldFR5cGUmIHNldCkgeyBtX21lbW9yeUluc3RydW1lbnRhdGlvbi0+YWRkSGFzaFNl
dChzZXQsIG1fb2JqZWN0VHlwZSwgdHJ1ZSk7IH0KLSAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBIYXNo
U2V0VHlwZT4gdm9pZCBhZGRIYXNoQ291bnRlZFNldChjb25zdCBIYXNoU2V0VHlwZSYgc2V0KSB7
IG1fbWVtb3J5SW5zdHJ1bWVudGF0aW9uLT5hZGRIYXNoU2V0KHNldCwgbV9vYmplY3RUeXBlLCB0
cnVlKTsgfQotICAgIHRlbXBsYXRlPHR5cGVuYW1lIEhhc2hTZXRUeXBlPiB2b2lkIGFkZEluc3Ry
dW1lbnRlZEhhc2hTZXQoY29uc3QgSGFzaFNldFR5cGUmIHNldCkgeyBtX21lbW9yeUluc3RydW1l
bnRhdGlvbi0+YWRkSW5zdHJ1bWVudGVkQ29sbGVjdGlvbihzZXQsIG1fb2JqZWN0VHlwZSwgdHJ1
ZSk7IH0KKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBIYXNoU2V0VHlwZT4gdm9pZCBhZGRIYXNoQ291
bnRlZFNldChjb25zdCBIYXNoU2V0VHlwZSYgc2V0KSB7IG1fbWVtb3J5SW5zdHJ1bWVudGF0aW9u
LT5hZGRIYXNoTWFwKHNldCwgbV9vYmplY3RUeXBlLCB0cnVlKTsgfQogICAgIHRlbXBsYXRlPHR5
cGVuYW1lIE1hcFR5cGU+IHZvaWQgYWRkSW5zdHJ1bWVudGVkTWFwRW50cmllcyhjb25zdCBNYXBU
eXBlJiBtYXApIHsgbV9tZW1vcnlJbnN0cnVtZW50YXRpb24tPmFkZEluc3RydW1lbnRlZE1hcEVu
dHJpZXMobWFwLCBtX29iamVjdFR5cGUpOyB9CiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgTWFwVHlw
ZT4gdm9pZCBhZGRJbnN0cnVtZW50ZWRNYXBWYWx1ZXMoY29uc3QgTWFwVHlwZSYgbWFwKSB7IG1f
bWVtb3J5SW5zdHJ1bWVudGF0aW9uLT5hZGRJbnN0cnVtZW50ZWRNYXBWYWx1ZXMobWFwLCBtX29i
amVjdFR5cGUpOyB9CiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgTGlzdEhhc2hTZXRUeXBlPiB2b2lk
IGFkZExpc3RIYXNoU2V0KGNvbnN0IExpc3RIYXNoU2V0VHlwZSYgc2V0KSB7IG1fbWVtb3J5SW5z
dHJ1bWVudGF0aW9uLT5hZGRMaXN0SGFzaFNldChzZXQsIG1fb2JqZWN0VHlwZSwgdHJ1ZSk7IH0K
QEAgLTI1MiwxNCArMjQ5LDYgQEAgdm9pZCBNZW1vcnlJbnN0cnVtZW50YXRpb246OmFkZEhhc2hN
YXAoY29uc3QgSGFzaE1hcFR5cGUmIGhhc2hNYXAsIE1lbW9yeU9iamVjdFQKICAgICBjb3VudE9i
amVjdFNpemUob3duZXJPYmplY3RUeXBlLCBjYWxjdWxhdGVDb250YWluZXJTaXplKGhhc2hNYXAs
IGNvbnRlbnRPbmx5KSk7CiB9CiAKLXRlbXBsYXRlPHR5cGVuYW1lIEhhc2hTZXRUeXBlPgotdm9p
ZCBNZW1vcnlJbnN0cnVtZW50YXRpb246OmFkZEhhc2hTZXQoY29uc3QgSGFzaFNldFR5cGUmIGhh
c2hTZXQsIE1lbW9yeU9iamVjdFR5cGUgb3duZXJPYmplY3RUeXBlLCBib29sIGNvbnRlbnRPbmx5
KQotewotICAgIGlmICh2aXNpdGVkKCZoYXNoU2V0KSkKLSAgICAgICAgcmV0dXJuOwotICAgIGNv
dW50T2JqZWN0U2l6ZShvd25lck9iamVjdFR5cGUsIGNhbGN1bGF0ZUNvbnRhaW5lclNpemUoaGFz
aFNldCwgY29udGVudE9ubHkpKTsKLX0KLQogdGVtcGxhdGU8dHlwZW5hbWUgQ29sbGVjdGlvblR5
cGU+CiB2b2lkIE1lbW9yeUluc3RydW1lbnRhdGlvbjo6YWRkSW5zdHJ1bWVudGVkQ29sbGVjdGlv
bihjb25zdCBDb2xsZWN0aW9uVHlwZSYgY29sbGVjdGlvbiwgTWVtb3J5T2JqZWN0VHlwZSBvd25l
ck9iamVjdFR5cGUsIGJvb2wgY29udGVudE9ubHkpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RG
L3d0Zi9NZW1vcnlJbnN0cnVtZW50YXRpb25IYXNoU2V0LmggYi9Tb3VyY2UvV1RGL3d0Zi9NZW1v
cnlJbnN0cnVtZW50YXRpb25IYXNoU2V0LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOGZmNDcxZDY2YWNhMjQzMzM3
M2E1MGM3MTY1OGMwZDA0NTA3NjVmNgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XVEYvd3Rm
L01lbW9yeUluc3RydW1lbnRhdGlvbkhhc2hTZXQuaApAQCAtMCwwICsxLDY1IEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDEyIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3Ry
aWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRo
ZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9y
IHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQg
c3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAq
ICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBD
T05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBN
ZW1vcnlJbnN0cnVtZW50YXRpb25IYXNoU2V0X2gKKyNkZWZpbmUgTWVtb3J5SW5zdHJ1bWVudGF0
aW9uSGFzaFNldF9oCisKKyNpbmNsdWRlIDx3dGYvTWVtb3J5SW5zdHJ1bWVudGF0aW9uLmg+Cisj
aW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nSGFzaC5oPgorCituYW1lc3BhY2UgV1RGIHsKKwordGVt
cGxhdGU8dHlwZW5hbWUgST4KK3ZvaWQgaW5zdHJ1bWVudFZhbHVlcyhNZW1vcnlDbGFzc0luZm8m
IGluZm8sIEkgaXRlcmF0b3IsIEkgZW5kKQoreworICAgIHdoaWxlIChpdGVyYXRvciAhPSBlbmQp
IHsKKyAgICAgICAgaW5mby5hZGRNZW1iZXIoKml0ZXJhdG9yKTsKKyAgICAgICAgKytpdGVyYXRv
cjsKKyAgICB9Cit9CisKK3RlbXBsYXRlPHR5cGVuYW1lIFZhbHVlQXJnLCB0eXBlbmFtZSBIYXNo
QXJnLCB0eXBlbmFtZSBUcmFpdHNBcmc+Cit2b2lkIHJlcG9ydE1lbW9yeVVzYWdlKGNvbnN0IEhh
c2hTZXQ8VmFsdWVBcmcsIEhhc2hBcmcsIFRyYWl0c0FyZz4qIGNvbnN0JiBoYXNoU2V0LCBNZW1v
cnlPYmplY3RJbmZvKiBtZW1vcnlPYmplY3RJbmZvKQoreworICAgIE1lbW9yeUNsYXNzSW5mbyBp
bmZvKG1lbW9yeU9iamVjdEluZm8sIGhhc2hTZXQpOworICAgIGluZm8uYWRkTWVtYmVyKGhhc2hT
ZXQtPm1faW1wbCk7CisgICAgaW5zdHJ1bWVudFZhbHVlcyhpbmZvLCBoYXNoU2V0LT5iZWdpbigp
LCBoYXNoU2V0LT5lbmQoKSk7Cit9CisKK3RlbXBsYXRlPHR5cGVuYW1lIEtleSwgdHlwZW5hbWUg
VmFsdWUsIHR5cGVuYW1lIEV4dHJhY3RvciwgdHlwZW5hbWUgSGFzaEZ1bmN0aW9ucywgdHlwZW5h
bWUgVHJhaXRzLCB0eXBlbmFtZSBLZXlUcmFpdHM+Cit2b2lkIHJlcG9ydE1lbW9yeVVzYWdlKGNv
bnN0IEhhc2hUYWJsZTxLZXksIFZhbHVlLCBFeHRyYWN0b3IsIEhhc2hGdW5jdGlvbnMsIFRyYWl0
cywgS2V5VHJhaXRzPiogY29uc3QmIGhhc2hUYWJsZSwgTWVtb3J5T2JqZWN0SW5mbyogbWVtb3J5
T2JqZWN0SW5mbykKK3sKKyAgICBNZW1vcnlDbGFzc0luZm8gaW5mbyhtZW1vcnlPYmplY3RJbmZv
LCBoYXNoVGFibGUpOworICAgIGluZm8uYWRkUmF3QnVmZmVyKGhhc2hUYWJsZS0+bV90YWJsZSwg
c2l6ZW9mKHR5cGVuYW1lIEhhc2hUYWJsZTxLZXksIFZhbHVlLCBFeHRyYWN0b3IsIEhhc2hGdW5j
dGlvbnMsIFRyYWl0cywgS2V5VHJhaXRzPjo6VmFsdWVUeXBlKSAqIGhhc2hUYWJsZS0+Y2FwYWNp
dHkoKSk7Cit9CisKK30KKworI2VuZGlmIC8vICFkZWZpbmVkKE1lbW9yeUluc3RydW1lbnRhdGlv
bkhhc2hTZXRfaCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDdXJzb3JJbWFn
ZVZhbHVlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDdXJzb3JJbWFnZVZhbHVlLmNwcApp
bmRleCA2OGZmYTljMTE2NDc0YTQwYmNkNmQ3ZjJlOWM3ZWExYmU1NTM3Y2U4Li4wNmQ5M2VhNjAx
NDdkMmI3MDZlZjJhOGQ1ODJiMDRmYmJjMmFhNjc4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9jc3MvQ1NTQ3Vyc29ySW1hZ2VWYWx1ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NT
U0N1cnNvckltYWdlVmFsdWUuY3BwCkBAIC0yNiw2ICsyNiw3IEBACiAjaW5jbHVkZSAiVHJlZVNj
b3BlLmgiCiAjaW5jbHVkZSAiV2ViQ29yZU1lbW9yeUluc3RydW1lbnRhdGlvbi5oIgogI2luY2x1
ZGUgPHd0Zi9NYXRoRXh0cmFzLmg+CisjaW5jbHVkZSA8d3RmL01lbW9yeUluc3RydW1lbnRhdGlv
bkhhc2hTZXQuaD4KICNpbmNsdWRlIDx3dGYvVW51c2VkUGFyYW0uaD4KICNpbmNsdWRlIDx3dGYv
dGV4dC9XVEZTdHJpbmcuaD4KIApAQCAtMTM4LDcgKzEzOSw3IEBAIHZvaWQgQ1NTQ3Vyc29ySW1h
Z2VWYWx1ZTo6cmVwb3J0RGVzY2VuZGFudE1lbW9yeVVzYWdlKE1lbW9yeU9iamVjdEluZm8qIG1l
bW9yeU9iCiAgICAgTWVtb3J5Q2xhc3NJbmZvIGluZm8obWVtb3J5T2JqZWN0SW5mbywgdGhpcywg
V2ViQ29yZU1lbW9yeVR5cGVzOjpDU1MpOwogICAgIENTU0ltYWdlVmFsdWU6OnJlcG9ydERlc2Nl
bmRhbnRNZW1vcnlVc2FnZShtZW1vcnlPYmplY3RJbmZvKTsKICNpZiBFTkFCTEUoU1ZHKQotICAg
IGluZm8uYWRkSW5zdHJ1bWVudGVkSGFzaFNldChtX3JlZmVyZW5jZWRFbGVtZW50cyk7CisgICAg
aW5mby5hZGRNZW1iZXIobV9yZWZlcmVuY2VkRWxlbWVudHMpOwogI2VuZGlmCiB9CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJlc29sdmVyLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2Nzcy9TdHlsZVJlc29sdmVyLmNwcAppbmRleCA2YWUzNWFjZjhjMzNjYzgyODBlMmRlMzEz
MGQyOGI5YTk0ZTI1NjA0Li45OWUwZmRmNjg3NGQ3MWM2NWJhZWQ1MTZmOWZmMjg3MzRlNGRlYzNh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSZXNvbHZlci5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUmVzb2x2ZXIuY3BwCkBAIC0xMjYsNiArMTI2LDcgQEAK
ICNpbmNsdWRlICJXZWJLaXRDU1NUcmFuc2Zvcm1WYWx1ZS5oIgogI2luY2x1ZGUgIldlYktpdEZv
bnRGYW1pbHlOYW1lcy5oIgogI2luY2x1ZGUgIlhNTE5hbWVzLmgiCisjaW5jbHVkZSA8d3RmL01l
bW9yeUluc3RydW1lbnRhdGlvbkhhc2hTZXQuaD4KICNpbmNsdWRlIDx3dGYvTWVtb3J5SW5zdHJ1
bWVudGF0aW9uVmVjdG9yLmg+CiAjaW5jbHVkZSA8d3RmL1N0ZExpYkV4dHJhcy5oPgogI2luY2x1
ZGUgPHd0Zi9WZWN0b3IuaD4KQEAgLTc0NSw4ICs3NDYsOCBAQCB2b2lkIFN0eWxlUmVzb2x2ZXI6
OkZlYXR1cmVzOjpjbGVhcigpCiB2b2lkIFN0eWxlUmVzb2x2ZXI6OkZlYXR1cmVzOjpyZXBvcnRN
ZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJbmZvKiBtZW1vcnlPYmplY3RJbmZvKSBjb25zdAogewog
ICAgIE1lbW9yeUNsYXNzSW5mbyBpbmZvKG1lbW9yeU9iamVjdEluZm8sIHRoaXMsIFdlYkNvcmVN
ZW1vcnlUeXBlczo6Q1NTKTsKLSAgICBpbmZvLmFkZEhhc2hTZXQoaWRzSW5SdWxlcyk7Ci0gICAg
aW5mby5hZGRIYXNoU2V0KGF0dHJzSW5SdWxlcyk7CisgICAgaW5mby5hZGRNZW1iZXIoaWRzSW5S
dWxlcyk7CisgICAgaW5mby5hZGRNZW1iZXIoYXR0cnNJblJ1bGVzKTsKICAgICBpbmZvLmFkZE1l
bWJlcihzaWJsaW5nUnVsZXMpOwogICAgIGluZm8uYWRkTWVtYmVyKHVuY29tbW9uQXR0cmlidXRl
UnVsZXMpOwogfQpAQCAtNTc5Miw3ICs1NzkzLDcgQEAgdm9pZCBTdHlsZVJlc29sdmVyOjpyZXBv
cnRNZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJbmZvKiBtZW1vcnlPYmplY3RJbmZvKSBjb25zdAog
ICAgIGluZm8uYWRkTWVtYmVyKG1fdmlld3BvcnREZXBlbmRlbnRNZWRpYVF1ZXJ5UmVzdWx0cyk7
CiAgICAgaW5mby5hZGRIYXNoTWFwKG1fc3R5bGVSdWxlVG9DU1NPTVdyYXBwZXJNYXApOwogICAg
IGluZm8uYWRkSW5zdHJ1bWVudGVkTWFwRW50cmllcyhtX3N0eWxlUnVsZVRvQ1NTT01XcmFwcGVy
TWFwKTsKLSAgICBpbmZvLmFkZEluc3RydW1lbnRlZEhhc2hTZXQobV9zdHlsZVNoZWV0Q1NTT01X
cmFwcGVyU2V0KTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX3N0eWxlU2hlZXRDU1NPTVdyYXBwZXJT
ZXQpOwogI2lmIEVOQUJMRShDU1NfRklMVEVSUykgJiYgRU5BQkxFKFNWRykKICAgICBpbmZvLmFk
ZEhhc2hNYXAobV9wZW5kaW5nU1ZHRG9jdW1lbnRzKTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVu
dC5jcHAKaW5kZXggMDA5Yzg0NTkyZjczOGRhNTllNWI4NjY3MzQ5OTBlZGVkNDRkNzc5Yy4uMTZi
MWU1MzVhMDczZGMzOTYxNjY1MTZmMTBlODUxZjdhMzFkYmNhMCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1l
bnQuY3BwCkBAIC0xMDksNiArMTA5LDcgQEAKICNpbmNsdWRlICJMYW5ndWFnZS5oIgogI2luY2x1
ZGUgIkxvY2FsaXplci5oIgogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKKyNpbmNsdWRlICJNZWRpYUNh
blN0YXJ0TGlzdGVuZXIuaCIKICNpbmNsdWRlICJNZWRpYVF1ZXJ5TGlzdC5oIgogI2luY2x1ZGUg
Ik1lZGlhUXVlcnlNYXRjaGVyLmgiCiAjaW5jbHVkZSAiTW91c2VFdmVudFdpdGhIaXRUZXN0UmVz
dWx0cy5oIgpAQCAtMTc0LDYgKzE3NSw3IEBACiAjaW5jbHVkZSA8d3RmL0N1cnJlbnRUaW1lLmg+
CiAjaW5jbHVkZSA8d3RmL0hhc2hGdW5jdGlvbnMuaD4KICNpbmNsdWRlIDx3dGYvTWFpblRocmVh
ZC5oPgorI2luY2x1ZGUgPHd0Zi9NZW1vcnlJbnN0cnVtZW50YXRpb25IYXNoU2V0Lmg+CiAjaW5j
bHVkZSA8d3RmL01lbW9yeUluc3RydW1lbnRhdGlvblZlY3Rvci5oPgogI2luY2x1ZGUgPHd0Zi9Q
YXNzUmVmUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1N0ZExpYkV4dHJhcy5oPgpAQCAtNTg2Nyw4ICs1
ODY5LDggQEAgdm9pZCBEb2N1bWVudDo6dXBkYXRlSG92ZXJBY3RpdmVTdGF0ZShjb25zdCBIaXRU
ZXN0UmVxdWVzdCYgcmVxdWVzdCwgSGl0VGVzdFJlc3UKIHZvaWQgRG9jdW1lbnQ6OnJlcG9ydE1l
bW9yeVVzYWdlKE1lbW9yeU9iamVjdEluZm8qIG1lbW9yeU9iamVjdEluZm8pIGNvbnN0CiB7CiAg
ICAgTWVtb3J5Q2xhc3NJbmZvIGluZm8obWVtb3J5T2JqZWN0SW5mbywgdGhpcywgV2ViQ29yZU1l
bW9yeVR5cGVzOjpET00pOwotICAgIGluZm8uYWRkTWVtYmVyKG1fc3R5bGVSZXNvbHZlcik7CiAg
ICAgQ29udGFpbmVyTm9kZTo6cmVwb3J0TWVtb3J5VXNhZ2UobWVtb3J5T2JqZWN0SW5mbyk7Cisg
ICAgaW5mby5hZGRNZW1iZXIobV9zdHlsZVJlc29sdmVyKTsKICAgICBpbmZvLmFkZE1lbWJlciht
X2N1c3RvbUZvbnRzKTsKICAgICBpbmZvLmFkZE1lbWJlcihtX3VybCk7CiAgICAgaW5mby5hZGRN
ZW1iZXIobV9iYXNlVVJMKTsKQEAgLTU4NzgsMTIgKzU4ODAsMTYgQEAgdm9pZCBEb2N1bWVudDo6
cmVwb3J0TWVtb3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyogbWVtb3J5T2JqZWN0SW5mbykgY29u
c3QKICAgICBpbmZvLmFkZE1lbWJlcihtX2ZpcnN0UGFydHlGb3JDb29raWVzKTsKICAgICBpbmZv
LmFkZE1lbWJlcihtX2RvY3VtZW50VVJJKTsKICAgICBpbmZvLmFkZE1lbWJlcihtX2Jhc2VUYXJn
ZXQpOworICAgIGluZm8uYWRkTWVtYmVyKG1fZG9jVHlwZSk7CisgICAgaW5mby5hZGRNZW1iZXIo
bV9pbXBsZW1lbnRhdGlvbik7CisgICAgaW5mby5hZGRNZW1iZXIobV9lbGVtU2hlZXQpOwogICAg
IGluZm8uYWRkTWVtYmVyKG1fZnJhbWUpOwogICAgIGluZm8uYWRkTWVtYmVyKG1fY2FjaGVkUmVz
b3VyY2VMb2FkZXIpOwotICAgIGluZm8uYWRkTWVtYmVyKG1fZWxlbVNoZWV0KTsKICAgICBpbmZv
LmFkZE1lbWJlcihtX3N0eWxlU2hlZXRDb2xsZWN0aW9uKTsKLSAgICBpbmZvLmFkZEhhc2hTZXQo
bV9ub2RlSXRlcmF0b3JzKTsKLSAgICBpbmZvLmFkZEhhc2hTZXQobV9yYW5nZXMpOworICAgIGlu
Zm8uYWRkTWVtYmVyKG1fc3R5bGVTaGVldExpc3QpOworICAgIGluZm8uYWRkTWVtYmVyKG1fZm9y
bUNvbnRyb2xsZXIpOworICAgIGluZm8uYWRkTWVtYmVyKG1fbm9kZUl0ZXJhdG9ycyk7CisgICAg
aW5mby5hZGRNZW1iZXIobV9yYW5nZXMpOwogICAgIGluZm8uYWRkTWVtYmVyKG1fdGl0bGUuc3Ry
aW5nKCkpOwogICAgIGluZm8uYWRkTWVtYmVyKG1fcmF3VGl0bGUuc3RyaW5nKCkpOwogICAgIGlu
Zm8uYWRkTWVtYmVyKG1feG1sRW5jb2RpbmcpOwpAQCAtNTg5NiwxMiArNTkwMiwxMiBAQCB2b2lk
IERvY3VtZW50OjpyZXBvcnRNZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJbmZvKiBtZW1vcnlPYmpl
Y3RJbmZvKSBjb25zdAogI2VuZGlmCiAgICAgaW5mby5hZGRIYXNoTWFwKG1fY3NzQ2FudmFzRWxl
bWVudHMpOwogICAgIGluZm8uYWRkTWVtYmVyKG1faWNvblVSTHMpOwotICAgIGluZm8uYWRkSGFz
aFNldChtX2RvY3VtZW50U3VzcGVuc2lvbkNhbGxiYWNrRWxlbWVudHMpOwotICAgIGluZm8uYWRk
SGFzaFNldChtX21lZGlhVm9sdW1lQ2FsbGJhY2tFbGVtZW50cyk7Ci0gICAgaW5mby5hZGRIYXNo
U2V0KG1fcHJpdmF0ZUJyb3dzaW5nU3RhdGVDaGFuZ2VkRWxlbWVudHMpOworICAgIGluZm8uYWRk
TWVtYmVyKG1fZG9jdW1lbnRTdXNwZW5zaW9uQ2FsbGJhY2tFbGVtZW50cyk7CisgICAgaW5mby5h
ZGRNZW1iZXIobV9tZWRpYVZvbHVtZUNhbGxiYWNrRWxlbWVudHMpOworICAgIGluZm8uYWRkTWVt
YmVyKG1fcHJpdmF0ZUJyb3dzaW5nU3RhdGVDaGFuZ2VkRWxlbWVudHMpOwogICAgIGluZm8uYWRk
SGFzaE1hcChtX2VsZW1lbnRzQnlBY2Nlc3NLZXkpOwogICAgIGluZm8uYWRkTWVtYmVyKG1fZXZl
bnRRdWV1ZSk7Ci0gICAgaW5mby5hZGRIYXNoU2V0KG1fbWVkaWFDYW5TdGFydExpc3RlbmVycyk7
CisgICAgaW5mby5hZGRNZW1iZXIobV9tZWRpYUNhblN0YXJ0TGlzdGVuZXJzKTsKICAgICBpbmZv
LmFkZE1lbWJlcihtX3BlbmRpbmdUYXNrcyk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9Eb2N1bWVudEV2ZW50UXVldWUuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3Vt
ZW50RXZlbnRRdWV1ZS5jcHAKaW5kZXggNjM5NmYwMTI0ZTVhNTdhNDZhMDY3ODgwNjNiOTc2ZjZh
MWZlNmE1Mi4uZjM2MDFjZmU2ODIyODEzZjI4Mzc5NWZhM2NjZDRmOGQ5MWQ4OWYwZCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50RXZlbnRRdWV1ZS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50RXZlbnRRdWV1ZS5jcHAKQEAgLTM1LDYgKzM1LDcgQEAK
ICNpbmNsdWRlICJTY3JpcHRFeGVjdXRpb25Db250ZXh0LmgiCiAjaW5jbHVkZSAiU3VzcGVuZGFi
bGVUaW1lci5oIgogI2luY2x1ZGUgIldlYkNvcmVNZW1vcnlJbnN0cnVtZW50YXRpb24uaCIKKyNp
bmNsdWRlIDx3dGYvTWVtb3J5SW5zdHJ1bWVudGF0aW9uSGFzaFNldC5oPgogCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAgICAgCkBAIC0xMTIsOCArMTEzLDggQEAgdm9pZCBEb2N1bWVudEV2ZW50UXVl
dWU6OnJlcG9ydE1lbW9yeVVzYWdlKE1lbW9yeU9iamVjdEluZm8qIG1lbW9yeU9iamVjdEluZm8p
IGMKIHsKICAgICBNZW1vcnlDbGFzc0luZm8gaW5mbyhtZW1vcnlPYmplY3RJbmZvLCB0aGlzLCBX
ZWJDb3JlTWVtb3J5VHlwZXM6OkRPTSk7CiAgICAgaW5mby5hZGRNZW1iZXIobV9wZW5kaW5nRXZl
bnRUaW1lcik7Ci0gICAgaW5mby5hZGRJbnN0cnVtZW50ZWRIYXNoU2V0KG1fcXVldWVkRXZlbnRz
KTsKLSAgICBpbmZvLmFkZEluc3RydW1lbnRlZEhhc2hTZXQobV9ub2Rlc1dpdGhRdWV1ZWRTY3Jv
bGxFdmVudHMpOworICAgIGluZm8uYWRkTWVtYmVyKG1fcXVldWVkRXZlbnRzKTsKKyAgICBpbmZv
LmFkZE1lbWJlcihtX25vZGVzV2l0aFF1ZXVlZFNjcm9sbEV2ZW50cyk7CiB9CiAKIGJvb2wgRG9j
dW1lbnRFdmVudFF1ZXVlOjpjYW5jZWxFdmVudChFdmVudCogZXZlbnQpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUv
bG9hZGVyL0RvY3VtZW50TG9hZGVyLmNwcAppbmRleCA5MDBhZjk3OGFhNjExZmEyYzU1NDkyNzM1
YjQwMzM2YTRlODYzYjhiLi40Y2M4MzYxNGZkY2FmNWI5NTUwMWJiMjY4NmYzZWJlM2E0NDdiYjg4
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkZXIuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudExvYWRlci5jcHAKQEAgLTUzLDYgKzUz
LDcgQEAKICNpbmNsdWRlICJUZXh0UmVzb3VyY2VEZWNvZGVyLmgiCiAjaW5jbHVkZSAiV2ViQ29y
ZU1lbW9yeUluc3RydW1lbnRhdGlvbi5oIgogI2luY2x1ZGUgPHd0Zi9Bc3NlcnRpb25zLmg+Cisj
aW5jbHVkZSA8d3RmL01lbW9yeUluc3RydW1lbnRhdGlvbkhhc2hTZXQuaD4KICNpbmNsdWRlIDx3
dGYvTWVtb3J5SW5zdHJ1bWVudGF0aW9uVmVjdG9yLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvQ1N0
cmluZy5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgpAQCAtMzYzLDkgKzM2NCw5
IEBAIHZvaWQgRG9jdW1lbnRMb2FkZXI6OnJlcG9ydE1lbW9yeVVzYWdlKE1lbW9yeU9iamVjdElu
Zm8qIG1lbW9yeU9iamVjdEluZm8pIGNvbnN0CiAgICAgTWVtb3J5Q2xhc3NJbmZvIGluZm8obWVt
b3J5T2JqZWN0SW5mbywgdGhpcywgV2ViQ29yZU1lbW9yeVR5cGVzOjpMb2FkZXIpOwogICAgIGlu
Zm8uYWRkTWVtYmVyKG1fZnJhbWUpOwogICAgIGluZm8uYWRkTWVtYmVyKG1fbWFpblJlc291cmNl
TG9hZGVyKTsKLSAgICBpbmZvLmFkZEluc3RydW1lbnRlZEhhc2hTZXQobV9zdWJyZXNvdXJjZUxv
YWRlcnMpOwotICAgIGluZm8uYWRkSW5zdHJ1bWVudGVkSGFzaFNldChtX211bHRpcGFydFN1YnJl
c291cmNlTG9hZGVycyk7Ci0gICAgaW5mby5hZGRJbnN0cnVtZW50ZWRIYXNoU2V0KG1fcGx1Z0lu
U3RyZWFtTG9hZGVycyk7CisgICAgaW5mby5hZGRNZW1iZXIobV9zdWJyZXNvdXJjZUxvYWRlcnMp
OworICAgIGluZm8uYWRkTWVtYmVyKG1fbXVsdGlwYXJ0U3VicmVzb3VyY2VMb2FkZXJzKTsKKyAg
ICBpbmZvLmFkZE1lbWJlcihtX3BsdWdJblN0cmVhbUxvYWRlcnMpOwogICAgIGluZm8uYWRkTWVt
YmVyKG1fc3Vic3RpdHV0ZURhdGEpOwogICAgIGluZm8uYWRkTWVtYmVyKG1fcGFnZVRpdGxlLnN0
cmluZygpKTsKICAgICBpbmZvLmFkZE1lbWJlcihtX292ZXJyaWRlRW5jb2RpbmcpOwpAQCAtMzc3
LDcgKzM3OCw3IEBAIHZvaWQgRG9jdW1lbnRMb2FkZXI6OnJlcG9ydE1lbW9yeVVzYWdlKE1lbW9y
eU9iamVjdEluZm8qIG1lbW9yeU9iamVjdEluZm8pIGNvbnN0CiAgICAgaW5mby5hZGRNZW1iZXIo
bV9sYXN0Q2hlY2tlZFJlcXVlc3QpOwogICAgIGluZm8uYWRkTWVtYmVyKG1fcmVzcG9uc2VzKTsK
ICAgICBpbmZvLmFkZEhhc2hNYXAobV9wZW5kaW5nU3Vic3RpdHV0ZVJlc291cmNlcyk7Ci0gICAg
aW5mby5hZGRJbnN0cnVtZW50ZWRIYXNoU2V0KG1fcmVzb3VyY2VzQ2xpZW50S25vd3NBYm91dCk7
CisgICAgaW5mby5hZGRNZW1iZXIobV9yZXNvdXJjZXNDbGllbnRLbm93c0Fib3V0KTsKICAgICBp
bmZvLmFkZE1lbWJlcihtX3Jlc291cmNlc0xvYWRlZEZyb21NZW1vcnlDYWNoZUZvckNsaWVudE5v
dGlmaWNhdGlvbik7CiAgICAgaW5mby5hZGRNZW1iZXIobV9jbGllbnRSZWRpcmVjdFNvdXJjZUZv
ckhpc3RvcnkpOwogICAgIGluZm8uYWRkTWVtYmVyKG1fbWFpblJlc291cmNlRGF0YSk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwIGIvU291cmNlL1dl
YkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcAppbmRleCA4OWY4NzYyNDI5YjFiZTdiYjZmMzc4
NjQzYzBkMTk4NzA4YzMyZWI1Li44ZGFjODEwMWI3MTQxMDI4NGNlZTIyYTJmMzg3MDQyNmM5MzM5
ZjhiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAKQEAgLTEwMiw2ICsxMDIs
NyBAQAogI2luY2x1ZGUgIldpbmRvd0ZlYXR1cmVzLmgiCiAjaW5jbHVkZSAiWE1MRG9jdW1lbnRQ
YXJzZXIuaCIKICNpbmNsdWRlIDx3dGYvQ3VycmVudFRpbWUuaD4KKyNpbmNsdWRlIDx3dGYvTWVt
b3J5SW5zdHJ1bWVudGF0aW9uSGFzaFNldC5oPgogI2luY2x1ZGUgPHd0Zi9TdGRMaWJFeHRyYXMu
aD4KICNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RG
U3RyaW5nLmg+CkBAIC0zMjg2LDcgKzMyODcsNyBAQCB2b2lkIEZyYW1lTG9hZGVyOjpyZXBvcnRN
ZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJbmZvKiBtZW1vcnlPYmplY3RJbmZvKSBjb25zdAogICAg
IGluZm8uYWRkTWVtYmVyKG1fcHJvdmlzaW9uYWxEb2N1bWVudExvYWRlcik7CiAgICAgaW5mby5h
ZGRNZW1iZXIobV9wb2xpY3lEb2N1bWVudExvYWRlcik7CiAgICAgaW5mby5hZGRNZW1iZXIobV9v
dXRnb2luZ1JlZmVycmVyKTsKLSAgICBpbmZvLmFkZEluc3RydW1lbnRlZEhhc2hTZXQobV9vcGVu
ZWRGcmFtZXMpOworICAgIGluZm8uYWRkTWVtYmVyKG1fb3BlbmVkRnJhbWVzKTsKIH0KIAogYm9v
bCBGcmFtZUxvYWRlckNsaWVudDo6aGFzSFRNTFZpZXcoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZS5jcHAKaW5kZXggMzNkMWJhODIzYmM2ZmQ4
NjU3MmU2YTk0NjFhYzViZDc1NjNhMDZiYi4uZDI5MWQxNDNiMTNiYTFhMTkzZGJlMzA4MzVlN2M3
OWZhNDgyOTQyZSAxMDA3NTUKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hl
ZFJlc291cmNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVz
b3VyY2UuY3BwCkBAIC00NCw2ICs0NCw3IEBACiAjaW5jbHVkZSAiV2ViQ29yZU1lbW9yeUluc3Ry
dW1lbnRhdGlvbi5oIgogI2luY2x1ZGUgPHd0Zi9DdXJyZW50VGltZS5oPgogI2luY2x1ZGUgPHd0
Zi9NYXRoRXh0cmFzLmg+CisjaW5jbHVkZSA8d3RmL01lbW9yeUluc3RydW1lbnRhdGlvbkhhc2hT
ZXQuaD4KICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZExlYWtDb3VudGVyLmg+CiAjaW5jbHVkZSA8
d3RmL1N0ZExpYkV4dHJhcy5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KQEAgLTgw
NCw3ICs4MDUsNyBAQCB2b2lkIENhY2hlZFJlc291cmNlOjpyZXBvcnRNZW1vcnlVc2FnZShNZW1v
cnlPYmplY3RJbmZvKiBtZW1vcnlPYmplY3RJbmZvKSBjb25zdAogewogICAgIE1lbW9yeUNsYXNz
SW5mbyBpbmZvKG1lbW9yeU9iamVjdEluZm8sIHRoaXMsIFdlYkNvcmVNZW1vcnlUeXBlczo6Q2Fj
aGVkUmVzb3VyY2UpOwogICAgIGluZm8uYWRkTWVtYmVyKG1fcmVzb3VyY2VSZXF1ZXN0KTsKLSAg
ICBpbmZvLmFkZEhhc2hTZXQobV9jbGllbnRzKTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX2NsaWVu
dHMpOwogICAgIGluZm8uYWRkTWVtYmVyKG1fYWNjZXB0KTsKICAgICBpbmZvLmFkZE1lbWJlciht
X2xvYWRlcik7CiAgICAgaW5mby5hZGRNZW1iZXIobV9yZXNwb25zZSk7CkBAIC04MTcsNyArODE4
LDcgQEAgdm9pZCBDYWNoZWRSZXNvdXJjZTo6cmVwb3J0TWVtb3J5VXNhZ2UoTWVtb3J5T2JqZWN0
SW5mbyogbWVtb3J5T2JqZWN0SW5mbykgY29uc3QKICAgICBpbmZvLmFkZE1lbWJlcihtX293bmlu
Z0NhY2hlZFJlc291cmNlTG9hZGVyKTsKICAgICBpbmZvLmFkZE1lbWJlcihtX3Jlc291cmNlVG9S
ZXZhbGlkYXRlKTsKICAgICBpbmZvLmFkZE1lbWJlcihtX3Byb3h5UmVzb3VyY2UpOwotICAgIGlu
Zm8uYWRkSW5zdHJ1bWVudGVkSGFzaFNldChtX2hhbmRsZXNUb1JldmFsaWRhdGUpOworICAgIGlu
Zm8uYWRkTWVtYmVyKG1faGFuZGxlc1RvUmV2YWxpZGF0ZSk7CiAKICAgICBpZiAobV9wdXJnZWFi
bGVEYXRhICYmICFtX3B1cmdlYWJsZURhdGEtPndhc1B1cmdlZCgpKQogICAgICAgICBpbmZvLmFk
ZFJhd0J1ZmZlcihtX3B1cmdlYWJsZURhdGEuZ2V0KCksIG1fcHVyZ2VhYmxlRGF0YS0+c2l6ZSgp
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJj
ZUxvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VM
b2FkZXIuY3BwCmluZGV4IDU5M2Q1MzJhMTVhYTgyY2EwODdjYjZjM2NkNTE3YzhlZGY5MDI2YjMu
LmJiNjg3NDA1MWJjYjk0ODFkZTRkMGZiNGFhZTQ2YzYyMTAyMjEzZjIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZUxvYWRlci5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlTG9hZGVyLmNwcApAQCAt
NDgsNiArNDgsNyBAQAogI2luY2x1ZGUgIlJlc291cmNlTG9hZFNjaGVkdWxlci5oIgogI2luY2x1
ZGUgIlNlY3VyaXR5T3JpZ2luLmgiCiAjaW5jbHVkZSAiU2V0dGluZ3MuaCIKKyNpbmNsdWRlIDx3
dGYvTWVtb3J5SW5zdHJ1bWVudGF0aW9uSGFzaFNldC5oPgogI2luY2x1ZGUgPHd0Zi9VbnVzZWRQ
YXJhbS5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KICNpbmNsdWRlIDx3dGYvdGV4
dC9XVEZTdHJpbmcuaD4KQEAgLTkwMCw3ICs5MDEsNyBAQCB2b2lkIENhY2hlZFJlc291cmNlTG9h
ZGVyOjpyZXBvcnRNZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJbmZvKiBtZW1vcnlPYmplY3RJbmZv
KQogICAgICAgICBpbmZvLmFkZE1lbWJlcihpLT5maXJzdCk7CiAgICAgICAgIGluZm8uYWRkTWVt
YmVyKGktPnNlY29uZCk7CiAgICAgfQotICAgIGluZm8uYWRkSGFzaFNldChtX3ZhbGlkYXRlZFVS
THMpOworICAgIGluZm8uYWRkTWVtYmVyKG1fdmFsaWRhdGVkVVJMcyk7CiAgICAgaWYgKG1fcHJl
bG9hZHMpCiAgICAgICAgIGluZm8uYWRkTGlzdEhhc2hTZXQoKm1fcHJlbG9hZHMpOwogICAgIGlu
Zm8uYWRkTWVtYmVyKG1fcGVuZGluZ1ByZWxvYWRzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vdGVzdHMvTWVtb3J5SW5zdHJ1bWVudGF0aW9uVGVzdC5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3Rlc3RzL01lbW9yeUluc3RydW1lbnRhdGlvblRlc3QuY3BwCmluZGV4
IDIxY2U5NjMxNjljZGNiMzkxZmQ3YTI5ZGYzNWY1NjBmZGJkODQ0NmYuLmFlYjVkOTY2YTZmYjgz
NTE3YjkzNmYyNjdmYzZkNDQxYmUwYjEyZTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vdGVzdHMvTWVtb3J5SW5zdHJ1bWVudGF0aW9uVGVzdC5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9jaHJvbWl1bS90ZXN0cy9NZW1vcnlJbnN0cnVtZW50YXRpb25UZXN0LmNwcApAQCAtMzcs
MTEgKzM3LDEzIEBACiAjaW5jbHVkZSA8Z3Rlc3QvZ3Rlc3QuaD4KIAogI2luY2x1ZGUgPHd0Zi9I
YXNoU2V0Lmg+CisjaW5jbHVkZSA8d3RmL01lbW9yeUluc3RydW1lbnRhdGlvbkhhc2hTZXQuaD4K
ICNpbmNsdWRlIDx3dGYvTWVtb3J5SW5zdHJ1bWVudGF0aW9uVmVjdG9yLmg+CiAjaW5jbHVkZSA8
d3RmL1JlZkNvdW50ZWQuaD4KICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAjaW5jbHVkZSA8d3Rm
L3RleHQvQXRvbWljU3RyaW5nLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgorI2lu
Y2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0hhc2guaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdJ
bXBsLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKQEAgLTQzOSw1ICs0NDEs
MjEgQEAgVEVTVChNZW1vcnlJbnN0cnVtZW50YXRpb25UZXN0LCB2ZWN0b3JXaXRoSW5zdHJ1bWVu
dGVkVHlwZSkKICAgICBFWFBFQ1RfRVEoY291bnQgKyAyLCAoc2l6ZV90KXZpc2l0ZWRPYmplY3Rz
LnNpemUoKSk7CiB9CiAKK1RFU1QoTWVtb3J5SW5zdHJ1bWVudGF0aW9uVGVzdCwgaGFzaFNldFdp
dGhJbnN0cnVtZW50ZWRUeXBlKQoreworICAgIFZpc2l0ZWRPYmplY3RzIHZpc2l0ZWRPYmplY3Rz
OworICAgIE1lbW9yeUluc3RydW1lbnRhdGlvbkltcGwgaW1wbCh2aXNpdGVkT2JqZWN0cyk7CisK
KyAgICB0eXBlZGVmIEhhc2hTZXQ8U3RyaW5nPiBWYWx1ZVR5cGU7CisgICAgT3duUHRyPFZhbHVl
VHlwZT4gdmFsdWUgPSBhZG9wdFB0cihuZXcgVmFsdWVUeXBlKCkpOworICAgIHNpemVfdCBjb3Vu
dCA9IDEwOworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgY291bnQ7ICsraSkKKyAgICAgICAg
dmFsdWUtPmFkZChTdHJpbmc6Om51bWJlcihpKSk7CisgICAgSW5zdHJ1bWVudGVkT3duZXI8VmFs
dWVUeXBlKiA+IHJvb3QodmFsdWUuZ2V0KCkpOworICAgIGltcGwuYWRkUm9vdE9iamVjdChyb290
KTsKKyAgICBFWFBFQ1RfRVEoc2l6ZW9mKFZhbHVlVHlwZSkgKyBzaXplb2YoU3RyaW5nKSAqIHZh
bHVlLT5jYXBhY2l0eSgpICsgc2l6ZW9mKFN0cmluZ0ltcGwpICogdmFsdWUtPnNpemUoKSwgaW1w
bC5yZXBvcnRlZFNpemVGb3JBbGxUeXBlcygpKTsKKyAgICBFWFBFQ1RfRVEoY291bnQgKyAyLCAo
c2l6ZV90KXZpc2l0ZWRPYmplY3RzLnNpemUoKSk7Cit9CisKIH0gLy8gbmFtZXNwYWNlCiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>165587</attachid>
            <date>2012-09-25 05:21:23 -0700</date>
            <delta_ts>2012-09-27 08:08:00 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-97198-20120925162042.patch</filename>
            <type>text/plain</type>
            <size>33184</size>
            <attacher name="Ilya Tikhonovsky">loislo</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI5NDg5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDUxZjU2ZDE3N2QyNmEzNjg2MDI1M2I5
NjI2ODU2MTg2NzA1YTY2OGEuLmU4YmE2ODFmZmQzYTQ3M2M0YzNjNTk4NTg1NzA3MTQ0NzUyN2Vk
YzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMzQgQEAKKzIwMTItMDktMjUgIElseWEgVGlraG9ub3Zza3kgIDxs
b2lzbG9AY2hyb21pdW0ub3JnPgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IGV4dHJhY3QgSGFz
aFNldCBpbnN0cnVtZW50YXRpb24gZnJvbSBjb3JlIE5NSSBjb2RlIGFuZCBwdXQgaXQgaW50byBN
ZW1vcnlJbnN0cnVtZW50YXRpb25IYXNoU2V0LmgKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTk3MTk4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgQ3VycmVudCBpbXBsZW1lbnRhdGlvbiBoYXMgb3ZlcmxvYWRz
IGZvciBIYXNoU2V0LgorICAgICAgICBUaGlzIHByZXZlbnRzIHVzIGZyb20gaW5zdHJ1bWVudGlu
ZyBjb21wbGV4IGNhc2VzIGxpa2UgVmVjdG9yPEhhc2hTZXQ8Li4uPiA+LgorCisgICAgICAgICog
R05VbWFrZWZpbGUubGlzdC5hbToKKyAgICAgICAgKiBXVEYuZ3lwaToKKyAgICAgICAgKiBXVEYu
cHJvOgorICAgICAgICAqIFdURi52Y3Byb2ovV1RGLnZjcHJvajoKKyAgICAgICAgKiBXVEYueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiB3dGYvSGFzaFNldC5oOgorICAgICAg
ICAoV1RGKToKKyAgICAgICAgKEhhc2hTZXQpOgorICAgICAgICAqIHd0Zi9IYXNoVGFibGUuaDoK
KyAgICAgICAgKFdURik6CisgICAgICAgIChIYXNoVGFibGUpOgorICAgICAgICAqIHd0Zi9NZW1v
cnlJbnN0cnVtZW50YXRpb24uaDoKKyAgICAgICAgKFdURjo6TWVtb3J5Q2xhc3NJbmZvOjphZGRN
ZW1iZXJzKToKKyAgICAgICAgKFdURjo6TWVtb3J5Q2xhc3NJbmZvOjphZGRIYXNoQ291bnRlZFNl
dCk6CisgICAgICAgICogd3RmL01lbW9yeUluc3RydW1lbnRhdGlvbkhhc2hTZXQuaDogQWRkZWQu
CisgICAgICAgIChXVEYpOgorICAgICAgICAoV1RGOjpyZXBvcnRNZW1vcnlVc2FnZSk6CisgICAg
ICAgICogd3RmL01lbW9yeUluc3RydW1lbnRhdGlvbkhhc2hUYWJsZS5oOiBBZGRlZC4KKyAgICAg
ICAgKFdURik6CisgICAgICAgIChXVEY6OnJlcG9ydE1lbW9yeVVzYWdlKToKKwogMjAxMi0wOS0y
MSAgSWx5YSBUaWtob25vdnNreSAgPGxvaXNsb0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgV2Vi
IEluc3BlY3RvcjogZXh0cmFjdCBWZWN0b3IgaW5zdHJ1bWVudGF0aW9uIGZyb20gY29yZSBOTUkg
Y29kZSBpbnRvIE1lbW9yeUluc3RydW1lbnRhdGlvblZlY3Rvci5oIGhlYWRlci4KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpp
bmRleCA1MDY3NWY2NjYyYjk5MzhhMTAxZDBlMmM5MTVjYzE1ZDJjOGE3YjcxLi41ZDViYzkzYzA3
MjQ5ZDAwMTI4ZWUwZjE0YzNlMmRhNjZkZjBmMTkzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzEg
QEAKKzIwMTItMDktMjUgIElseWEgVGlraG9ub3Zza3kgIDxsb2lzbG9AY2hyb21pdW0ub3JnPgor
CisgICAgICAgIFdlYiBJbnNwZWN0b3I6IGV4dHJhY3QgSGFzaFNldCBpbnN0cnVtZW50YXRpb24g
ZnJvbSBjb3JlIE5NSSBjb2RlIGFuZCBwdXQgaXQgaW50byBNZW1vcnlJbnN0cnVtZW50YXRpb25I
YXNoU2V0LmgKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTk3MTk4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
Q3VycmVudCBpbXBsZW1lbnRhdGlvbiBoYXMgb3ZlcmxvYWRzIGZvciBIYXNoU2V0LgorICAgICAg
ICBUaGlzIHByZXZlbnRzIHVzIGZyb20gaW5zdHJ1bWVudGluZyBjb21wbGV4IGNhc2VzIGxpa2Ug
VmVjdG9yPEhhc2hTZXQ8Li4uPiA+LgorCisgICAgICAgICogY3NzL0NTU0N1cnNvckltYWdlVmFs
dWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTQ3Vyc29ySW1hZ2VWYWx1ZTo6cmVwb3J0RGVz
Y2VuZGFudE1lbW9yeVVzYWdlKToKKyAgICAgICAgKiBjc3MvU3R5bGVSZXNvbHZlci5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpTdHlsZVJlc29sdmVyOjpGZWF0dXJlczo6cmVwb3J0TWVtb3J5VXNh
Z2UpOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVSZXNvbHZlcjo6Y29sbGVjdE1hdGNoaW5nUnVs
ZXNGb3JMaXN0KToKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6RG9jdW1lbnQ6OnJlcG9ydE1lbW9yeVVzYWdlKToKKyAgICAgICAgKiBkb20vRG9jdW1lbnRF
dmVudFF1ZXVlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50RXZlbnRRdWV1ZTo6cmVw
b3J0TWVtb3J5VXNhZ2UpOgorICAgICAgICAqIGxvYWRlci9Eb2N1bWVudExvYWRlci5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpEb2N1bWVudExvYWRlcjo6cmVwb3J0TWVtb3J5VXNhZ2UpOgorICAg
ICAgICAqIGxvYWRlci9GcmFtZUxvYWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxv
YWRlcjo6cmVwb3J0TWVtb3J5VXNhZ2UpOgorICAgICAgICAqIGxvYWRlci9jYWNoZS9DYWNoZWRS
ZXNvdXJjZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRSZXNvdXJjZTo6cmVwb3J0TWVt
b3J5VXNhZ2UpOgorICAgICAgICAqIGxvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZUxvYWRlci5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRSZXNvdXJjZUxvYWRlcjo6cmVwb3J0TWVtb3J5
VXNhZ2UpOgorCiAyMDEyLTA5LTI1ICBWc2V2b2xvZCBWbGFzb3YgIDx2c2V2aWtAY2hyb21pdW0u
b3JnPgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IFJlc291cmNlU2NyaXB0TWFwcGluZyBzaG91
bGQgbm8gc3RlYWwgc2NyaXB0cyBmcm9tIG90aGVyIG1hcHBpbmdzLgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0No
YW5nZUxvZwppbmRleCBiMjE2ZGY5MWFkMWQ3OGU4MWFhNmUxZTA5N2ZmNTZmZTk2NWE4Zjc4Li5l
N2NjMWNlZTNiNTcwNzYwZWYwZTRhNjM3ZjA4NGFlYzllNjU2NjE0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDEyLTA5LTI1ICBJbHlhIFRpa2hvbm92c2t5
ICA8bG9pc2xvQGNocm9taXVtLm9yZz4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBleHRyYWN0
IEhhc2hTZXQgaW5zdHJ1bWVudGF0aW9uIGZyb20gY29yZSBOTUkgY29kZSBhbmQgcHV0IGl0IGlu
dG8gTWVtb3J5SW5zdHJ1bWVudGF0aW9uSGFzaFNldC5oCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05NzE5OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIEN1cnJlbnQgaW1wbGVtZW50YXRpb24gaGFzIG92ZXJs
b2FkcyBmb3IgSGFzaFNldC4KKyAgICAgICAgVGhpcyBwcmV2ZW50cyB1cyBmcm9tIGluc3RydW1l
bnRpbmcgY29tcGxleCBjYXNlcyBsaWtlIFZlY3RvcjxIYXNoU2V0PC4uLj4gPi4KKworICAgICAg
ICAqIHRlc3RzL01lbW9yeUluc3RydW1lbnRhdGlvblRlc3QuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6VEVTVCk6CisgICAgICAgIChXZWJDb3JlKToKKwogMjAxMi0wOS0yMSAgSWx5YSBUaWtob25v
dnNreSAgPGxvaXNsb0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgV2ViIEluc3BlY3RvcjogZXh0
cmFjdCBWZWN0b3IgaW5zdHJ1bWVudGF0aW9uIGZyb20gY29yZSBOTUkgY29kZSBpbnRvIE1lbW9y
eUluc3RydW1lbnRhdGlvblZlY3Rvci5oIGhlYWRlci4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYv
R05VbWFrZWZpbGUubGlzdC5hbSBiL1NvdXJjZS9XVEYvR05VbWFrZWZpbGUubGlzdC5hbQppbmRl
eCAwZWQxMGRkYWUxNDhhMDczM2E4MzUyNjk1NGI3ODE5ZmRiY2JkZmYyLi44NmU2ZjRkY2NiNjIx
YTQzMGZhOWE1ZGY0MTdkMGU5MWFiNWZiZDE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL0dOVW1h
a2VmaWxlLmxpc3QuYW0KKysrIGIvU291cmNlL1dURi9HTlVtYWtlZmlsZS5saXN0LmFtCkBAIC04
MCw2ICs4MCw4IEBAIHd0Zl9zb3VyY2VzICs9IFwKICAgICBTb3VyY2UvV1RGL3d0Zi9NZWRpYVRp
bWUuaCBcCiAgICAgU291cmNlL1dURi93dGYvTWVkaWFUaW1lLmNwcCBcCiAgICAgU291cmNlL1dU
Ri93dGYvTWVtb3J5SW5zdHJ1bWVudGF0aW9uLmggXAorICAgIFNvdXJjZS9XVEYvd3RmL01lbW9y
eUluc3RydW1lbnRhdGlvbkhhc2hTZXQuaCBcCisgICAgU291cmNlL1dURi93dGYvTWVtb3J5SW5z
dHJ1bWVudGF0aW9uSGFzaFRhYmxlLmggXAogICAgIFNvdXJjZS9XVEYvd3RmL01lbW9yeUluc3Ry
dW1lbnRhdGlvblZlY3Rvci5oIFwKICAgICBTb3VyY2UvV1RGL3d0Zi9NZXNzYWdlUXVldWUuaCBc
CiAgICAgU291cmNlL1dURi93dGYvTWV0YUFsbG9jYXRvci5jcHAgXApkaWZmIC0tZ2l0IGEvU291
cmNlL1dURi9XVEYuZ3lwaSBiL1NvdXJjZS9XVEYvV1RGLmd5cGkKaW5kZXggZmRjMjhkNmJiNTVl
N2U1NjVkYWYwOTViNzNjYjUzYTczZTA5NDhmYy4uNzgyNjc3NTRhOTVkOGU4MWFjNzE4Y2VhYzY3
YzNjYTMyNmE3OTc2YSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi9XVEYuZ3lwaQorKysgYi9Tb3Vy
Y2UvV1RGL1dURi5neXBpCkBAIC01MCw2ICs1MCw4IEBACiAgICAgICAgICAgICAnd3RmL01haW5U
aHJlYWQuaCcsCiAgICAgICAgICAgICAnd3RmL01hdGhFeHRyYXMuaCcsCiAgICAgICAgICAgICAn
d3RmL01lbW9yeUluc3RydW1lbnRhdGlvbi5oJywKKyAgICAgICAgICAgICd3dGYvTWVtb3J5SW5z
dHJ1bWVudGF0aW9uSGFzaFNldC5oJywKKyAgICAgICAgICAgICd3dGYvTWVtb3J5SW5zdHJ1bWVu
dGF0aW9uSGFzaFRhYmxlLmgnLAogICAgICAgICAgICAgJ3d0Zi9NZW1vcnlJbnN0cnVtZW50YXRp
b25WZWN0b3IuaCcsCiAgICAgICAgICAgICAnd3RmL01lc3NhZ2VRdWV1ZS5oJywKICAgICAgICAg
ICAgICd3dGYvTm9uQ29weWluZ1NvcnQuaCcsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL1dURi5w
cm8gYi9Tb3VyY2UvV1RGL1dURi5wcm8KaW5kZXggZThkYTRjMGM2YjI0NjcwY2QwYjU4Mjc1NjAz
MTNiMDBjOWY5ODk4ZS4uZWIyNTM1YTNkMzQyNWE1YzI4YjVjODYyYmJjMzQ4MmFhZmQ5ODhlNyAx
MDA2NDQKLS0tIGEvU291cmNlL1dURi9XVEYucHJvCisrKyBiL1NvdXJjZS9XVEYvV1RGLnBybwpA
QCAtODcsNiArODcsOCBAQCBIRUFERVJTICs9IFwKICAgICBNRDUuaCBcCiAgICAgTWVkaWFUaW1l
LmggXAogICAgIE1lbW9yeUluc3RydW1lbnRhdGlvbi5oIFwKKyAgICBNZW1vcnlJbnN0cnVtZW50
YXRpb25IYXNoU2V0LmggXAorICAgIE1lbW9yeUluc3RydW1lbnRhdGlvbkhhc2hUYWJsZS5oIFwK
ICAgICBNZW1vcnlJbnN0cnVtZW50YXRpb25WZWN0b3IuaCBcCiAgICAgTWVzc2FnZVF1ZXVlLmgg
XAogICAgIE1ldGFBbGxvY2F0b3IuaCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL1dURi52Y3By
b2ovV1RGLnZjcHJvaiBiL1NvdXJjZS9XVEYvV1RGLnZjcHJvai9XVEYudmNwcm9qCmluZGV4IGY5
MTA4Yzg5MzVlMmY1ODRhZWE4Yjg3MmEzYWUzNGMxMjQzNGU4NDMuLmQ0YzU5OThlN2JlZWQwMDk2
ZjZmNmNhNjZiYjQ3NzlkZjIzNjVkODQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvV1RGLnZjcHJv
ai9XVEYudmNwcm9qCisrKyBiL1NvdXJjZS9XVEYvV1RGLnZjcHJvai9XVEYudmNwcm9qCkBAIC05
MDUsNiArOTA1LDE0IEBACiAJCQk+CiAJCTwvRmlsZT4KIAkJPEZpbGUKKwkJICAgICAgICBSZWxh
dGl2ZVBhdGg9Ii4uXHd0ZlxNZW1vcnlJbnN0cnVtZW50YXRpb25IYXNoU2V0LmgiCisJCQk+CisJ
CTwvRmlsZT4KKwkJPEZpbGUKKwkJICAgICAgICBSZWxhdGl2ZVBhdGg9Ii4uXHd0ZlxNZW1vcnlJ
bnN0cnVtZW50YXRpb25IYXNoVGFibGUuaCIKKwkJCT4KKwkJPC9GaWxlPgorCQk8RmlsZQogCQkg
ICAgICAgIFJlbGF0aXZlUGF0aD0iLi5cd3RmXE1lbW9yeUluc3RydW1lbnRhdGlvblZlY3Rvci5o
IgogCQkJPgogCQk8L0ZpbGU+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL1dURi54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dURi9XVEYueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agppbmRleCAzYTg5ZWRmYTFhNDYzYzcxZmY1MzU3YzUxMTkwNTQwMDkxZGY0NWUyLi5lZGJkMDAx
YWVlNjM0NDFhYzRlNGIxMjkxYWU1MTJjNDA4NDc0Y2I4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RG
L1dURi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XVEYvV1RGLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTQwLDYgKzQwLDggQEAKIAkJMkNDRDg5MkExNUMwMzkw
MjAwMjg1MDgzIC8qIEdyZWdvcmlhbkRhdGVUaW1lLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJDQ0Q4OTI5MTVDMDM5MDIwMDI4NTA4MyAvKiBHcmVn
b3JpYW5EYXRlVGltZS5jcHAgKi87IH07CiAJCTQzMzBGMzhGMTU3NDVCMDUwMEFBRkE4RiAvKiBV
UkxTdHJpbmcuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNDMzMEYzOEUxNTc0NUIwNTAwQUFGQThGIC8qIFVSTFN0cmluZy5jcHAgKi87IH07CiAJCTRG
MDMyMUJDMTU2QUE4RDEwMDZFQkFGNiAvKiBCaXRBcnJheS5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNEYwMzIxQkIxNTZBQThEMTAwNkVCQUY2IC8qIEJp
dEFycmF5LmggKi87IH07CisJCTRGMEJBQkJCMTYxMUQ1RjUwMDAyM0Y2NiAvKiBNZW1vcnlJbnN0
cnVtZW50YXRpb25IYXNoVGFibGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDRGMEJBQkJBMTYxMUQ1RjUwMDAyM0Y2NiAvKiBNZW1vcnlJbnN0cnVtZW50
YXRpb25IYXNoVGFibGUuaCAqLzsgfTsKKwkJNEYxQjJEQjYxNjBCNDRBQTAwNTg2NTU5IC8qIE1l
bW9yeUluc3RydW1lbnRhdGlvbkhhc2hTZXQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDRGMUIyREI1MTYwQjQ0QUEwMDU4NjU1OSAvKiBNZW1vcnlJbnN0
cnVtZW50YXRpb25IYXNoU2V0LmggKi87IH07CiAJCTRGMUQxMTU0MTVGRjExQkUwMDI2RTkwOCAv
KiBNZW1vcnlJbnN0cnVtZW50YXRpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDRGMUQxMTUzMTVGRjExQkUwMDI2RTkwOCAvKiBNZW1vcnlJbnN0cnVt
ZW50YXRpb24uaCAqLzsgfTsKIAkJNEZDQjcxMEExNjBBMUEwNzAwODQyNUVDIC8qIE1lbW9yeUlu
c3RydW1lbnRhdGlvblZlY3Rvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gNEZDQjcxMDkxNjBBMUEwNzAwODQyNUVDIC8qIE1lbW9yeUluc3RydW1lbnRh
dGlvblZlY3Rvci5oICovOyB9OwogCQk3RTI5QzMzRTE1RkZENzlCMDA1MTZENjEgLyogT2JqY1J1
bnRpbWVFeHRyYXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDdFMjlDMzNEMTVGRkQ3OUIwMDUxNkQ2MSAvKiBPYmpjUnVudGltZUV4dHJhcy5oICovOyB9
OwpAQCAtMzA5LDYgKzMxMSw4IEBACiAJCTJDQ0Q4OTI5MTVDMDM5MDIwMDI4NTA4MyAvKiBHcmVn
b3JpYW5EYXRlVGltZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBH
cmVnb3JpYW5EYXRlVGltZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQzMzBG
MzhFMTU3NDVCMDUwMEFBRkE4RiAvKiBVUkxTdHJpbmcuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gVVJMU3RyaW5nLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJNEYwMzIxQkIxNTZBQThEMTAwNkVCQUY2IC8qIEJpdEFycmF5LmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEJpdEFycmF5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCTRGMEJBQkJBMTYxMUQ1RjUwMDAyM0Y2NiAvKiBNZW1vcnlJbnN0cnVtZW50YXRpb25I
YXNoVGFibGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWVtb3J5SW5zdHJ1
bWVudGF0aW9uSGFzaFRhYmxlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTRGMUIy
REI1MTYwQjQ0QUEwMDU4NjU1OSAvKiBNZW1vcnlJbnN0cnVtZW50YXRpb25IYXNoU2V0LmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1lbW9yeUluc3RydW1lbnRhdGlvbkhhc2hT
ZXQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNEYxRDExNTMxNUZGMTFCRTAwMjZF
OTA4IC8qIE1lbW9yeUluc3RydW1lbnRhdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBNZW1vcnlJbnN0cnVtZW50YXRpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJNEZDQjcxMDkxNjBBMUEwNzAwODQyNUVDIC8qIE1lbW9yeUluc3RydW1lbnRhdGlvblZl
Y3Rvci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBNZW1vcnlJbnN0cnVtZW50
YXRpb25WZWN0b3IuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNUQyNDdCNjIxNDY4
OUI4NjAwRTc4Qjc2IC8qIGxpYldURi5hICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGV4
cGxpY2l0RmlsZVR5cGUgPSBhcmNoaXZlLmFyOyBpbmNsdWRlSW5JbmRleCA9IDA7IHBhdGggPSBs
aWJXVEYuYTsgc291cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsKQEAgLTY5Miw2ICs2
OTYsOCBAQAogCQkJCUNENTQ5N0FBMTU4NTdEMDMwMEI1QkMzMCAvKiBNZWRpYVRpbWUuY3BwICov
LAogCQkJCUNENTQ5N0FCMTU4NTdEMDMwMEI1QkMzMCAvKiBNZWRpYVRpbWUuaCAqLywKIAkJCQk0
RjFEMTE1MzE1RkYxMUJFMDAyNkU5MDggLyogTWVtb3J5SW5zdHJ1bWVudGF0aW9uLmggKi8sCisJ
CQkJNEYxQjJEQjUxNjBCNDRBQTAwNTg2NTU5IC8qIE1lbW9yeUluc3RydW1lbnRhdGlvbkhhc2hT
ZXQuaCAqLywKKwkJCQk0RjBCQUJCQTE2MTFENUY1MDAwMjNGNjYgLyogTWVtb3J5SW5zdHJ1bWVu
dGF0aW9uSGFzaFRhYmxlLmggKi8sCiAJCQkJNEZDQjcxMDkxNjBBMUEwNzAwODQyNUVDIC8qIE1l
bW9yeUluc3RydW1lbnRhdGlvblZlY3Rvci5oICovLAogCQkJCUE4QTQ3MkNDMTUxQTgyNUIwMDQx
MjNGRiAvKiBNZXNzYWdlUXVldWUuaCAqLywKIAkJCQlBOEE0NzJDRDE1MUE4MjVCMDA0MTIzRkYg
LyogTWV0YUFsbG9jYXRvci5jcHAgKi8sCkBAIC0xMTQ1LDYgKzExNTEsOCBAQAogCQkJCTI2RTZD
MjBBMTYwOTAzNzMwMENBNkFGNCAvKiBVUkxVdGlsSW50ZXJuYWwuaCBpbiBIZWFkZXJzICovLAog
CQkJCTI2RTZDMjBEMTYwOTAzNzMwMENBNkFGNCAvKiBVUkxVdGlsLmggaW4gSGVhZGVycyAqLywK
IAkJCQk0RkNCNzEwQTE2MEExQTA3MDA4NDI1RUMgLyogTWVtb3J5SW5zdHJ1bWVudGF0aW9uVmVj
dG9yLmggaW4gSGVhZGVycyAqLywKKwkJCQk0RjFCMkRCNjE2MEI0NEFBMDA1ODY1NTkgLyogTWVt
b3J5SW5zdHJ1bWVudGF0aW9uSGFzaFNldC5oIGluIEhlYWRlcnMgKi8sCisJCQkJNEYwQkFCQkIx
NjExRDVGNTAwMDIzRjY2IC8qIE1lbW9yeUluc3RydW1lbnRhdGlvbkhhc2hUYWJsZS5oIGluIEhl
YWRlcnMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9
IDA7CiAJCX07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9IYXNoU2V0LmggYi9Tb3VyY2Uv
V1RGL3d0Zi9IYXNoU2V0LmgKaW5kZXggMWIzYjJlMjg3MzM0MzliMTBiYjc1M2M5MDRkNTRmZmVj
NTVmMjVjYi4uZTZlZTU5MjlhZmFhMzU0M2NlZWUzOWQ2OTc1NDBmNzk0ZmUyMTk3YiAxMDA2NDQK
LS0tIGEvU291cmNlL1dURi93dGYvSGFzaFNldC5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL0hhc2hT
ZXQuaApAQCAtMjcsNiArMjcsNyBAQAogbmFtZXNwYWNlIFdURiB7CiAKICAgICBzdHJ1Y3QgSWRl
bnRpdHlFeHRyYWN0b3I7CisgICAgY2xhc3MgTWVtb3J5T2JqZWN0SW5mbzsKICAgICAKICAgICB0
ZW1wbGF0ZTx0eXBlbmFtZSBWYWx1ZSwgdHlwZW5hbWUgSGFzaEZ1bmN0aW9ucywgdHlwZW5hbWUg
VHJhaXRzPiBjbGFzcyBIYXNoU2V0OwogICAgIHRlbXBsYXRlPHR5cGVuYW1lIFZhbHVlLCB0eXBl
bmFtZSBIYXNoRnVuY3Rpb25zLCB0eXBlbmFtZSBUcmFpdHM+CkBAIC05Niw2ICs5Nyw3IEBAIG5h
bWVzcGFjZSBXVEYgewogICAgIHByaXZhdGU6CiAgICAgICAgIGZyaWVuZCB2b2lkIGRlbGV0ZUFs
bFZhbHVlczw+KGNvbnN0IEhhc2hTZXQmKTsKICAgICAgICAgZnJpZW5kIHZvaWQgZmFzdERlbGV0
ZUFsbFZhbHVlczw+KGNvbnN0IEhhc2hTZXQmKTsKKyAgICAgICAgdGVtcGxhdGU8dHlwZW5hbWUg
ViwgdHlwZW5hbWUgSCwgdHlwZW5hbWUgVD4gZnJpZW5kIHZvaWQgcmVwb3J0TWVtb3J5VXNhZ2Uo
Y29uc3QgSGFzaFNldDxWLCBILCBUPiogY29uc3QmLCBNZW1vcnlPYmplY3RJbmZvKik7CiAKICAg
ICAgICAgSGFzaFRhYmxlVHlwZSBtX2ltcGw7CiAgICAgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
VEYvd3RmL0hhc2hUYWJsZS5oIGIvU291cmNlL1dURi93dGYvSGFzaFRhYmxlLmgKaW5kZXggMWNl
M2M1Y2Y2ODhlZjBhODFlMTA2MWJjNmNlMjYyMGJlM2Q5ODAwZS4uY2MxZjZmZWM0MGM3ZDRmMDQ5
NjJhNDJkYzQ2ZThiM2Y3NzNhMjZkZSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvSGFzaFRh
YmxlLmgKKysrIGIvU291cmNlL1dURi93dGYvSGFzaFRhYmxlLmgKQEAgLTMwNyw2ICszMDcsOCBA
QCBuYW1lc3BhY2UgV1RGIHsKICAgICAgICAgYm9vbCBpc05ld0VudHJ5OwogICAgIH07CiAKKyAg
ICBjbGFzcyBNZW1vcnlPYmplY3RJbmZvOworCiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgS2V5LCB0
eXBlbmFtZSBWYWx1ZSwgdHlwZW5hbWUgRXh0cmFjdG9yLCB0eXBlbmFtZSBIYXNoRnVuY3Rpb25z
LCB0eXBlbmFtZSBUcmFpdHMsIHR5cGVuYW1lIEtleVRyYWl0cz4KICAgICBjbGFzcyBIYXNoVGFi
bGUgewogICAgIHB1YmxpYzoKQEAgLTQ4NCw2ICs0ODYsOCBAQCBuYW1lc3BhY2UgV1RGIHsKICAg
ICAgICAgc3RhdGljIGNvbnN0IGludCBtX21heExvYWQgPSAyOwogICAgICAgICBzdGF0aWMgY29u
c3QgaW50IG1fbWluTG9hZCA9IDY7CiAKKyAgICAgICAgdGVtcGxhdGU8dHlwZW5hbWUgSywgdHlw
ZW5hbWUgViwgdHlwZW5hbWUgRSwgdHlwZW5hbWUgSCwgdHlwZW5hbWUgVCwgdHlwZW5hbWUgS1Q+
IGZyaWVuZCB2b2lkIHJlcG9ydE1lbW9yeVVzYWdlKGNvbnN0IEhhc2hUYWJsZTxLLCBWLCBFLCBI
LCBULCBLVD4qIGNvbnN0JiwgTWVtb3J5T2JqZWN0SW5mbyopOworCiAgICAgICAgIFZhbHVlVHlw
ZSogbV90YWJsZTsKICAgICAgICAgaW50IG1fdGFibGVTaXplOwogICAgICAgICBpbnQgbV90YWJs
ZVNpemVNYXNrOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvTWVtb3J5SW5zdHJ1bWVudGF0
aW9uLmggYi9Tb3VyY2UvV1RGL3d0Zi9NZW1vcnlJbnN0cnVtZW50YXRpb24uaAppbmRleCBiMWYy
ZTI5NGE1OTIzMmJjNDVjYjA4YTgzZDJhOGZlY2NlYjI5NmFkLi5iMGMxMmQ5NGNkMjkxYWYwYjIy
N2E1ZjhlNWUyMDI2MjU1Y2QwYzJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9NZW1vcnlJ
bnN0cnVtZW50YXRpb24uaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9NZW1vcnlJbnN0cnVtZW50YXRp
b24uaApAQCAtMTQ2LDcgKzE0Niw2IEBAIHByaXZhdGU6CiAKICAgICB0ZW1wbGF0ZTx0eXBlbmFt
ZSBUPiB2b2lkIGFkZE9iamVjdChjb25zdCBUJiB0LCBNZW1vcnlPYmplY3RUeXBlIG93bmVyT2Jq
ZWN0VHlwZSkgeyBPd25pbmdUcmFpdHM8VD46OmFkZE9iamVjdCh0aGlzLCB0LCBvd25lck9iamVj
dFR5cGUpOyB9CiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgSGFzaE1hcFR5cGU+IHZvaWQgYWRkSGFz
aE1hcChjb25zdCBIYXNoTWFwVHlwZSYsIE1lbW9yeU9iamVjdFR5cGUsIGJvb2wgY29udGVudE9u
bHkgPSBmYWxzZSk7Ci0gICAgdGVtcGxhdGU8dHlwZW5hbWUgSGFzaFNldFR5cGU+IHZvaWQgYWRk
SGFzaFNldChjb25zdCBIYXNoU2V0VHlwZSYsIE1lbW9yeU9iamVjdFR5cGUsIGJvb2wgY29udGVu
dE9ubHkgPSBmYWxzZSk7CiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgQ29sbGVjdGlvblR5cGU+IHZv
aWQgYWRkSW5zdHJ1bWVudGVkQ29sbGVjdGlvbihjb25zdCBDb2xsZWN0aW9uVHlwZSYsIE1lbW9y
eU9iamVjdFR5cGUsIGJvb2wgY29udGVudE9ubHkgPSBmYWxzZSk7CiAgICAgdGVtcGxhdGU8dHlw
ZW5hbWUgTWFwVHlwZT4gdm9pZCBhZGRJbnN0cnVtZW50ZWRNYXBFbnRyaWVzKGNvbnN0IE1hcFR5
cGUmLCBNZW1vcnlPYmplY3RUeXBlKTsKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBNYXBUeXBlPiB2
b2lkIGFkZEluc3RydW1lbnRlZE1hcFZhbHVlcyhjb25zdCBNYXBUeXBlJiwgTWVtb3J5T2JqZWN0
VHlwZSk7CkBAIC0xOTEsMTEgKzE5MCwxNiBAQCBwdWJsaWM6CiAgICAgfQogCiAgICAgdGVtcGxh
dGU8dHlwZW5hbWUgTT4gdm9pZCBhZGRNZW1iZXIoY29uc3QgTSYgbWVtYmVyKSB7IG1fbWVtb3J5
SW5zdHJ1bWVudGF0aW9uLT5hZGRPYmplY3QobWVtYmVyLCBtX29iamVjdFR5cGUpOyB9CisgICAg
dGVtcGxhdGU8dHlwZW5hbWUgST4gdm9pZCBhZGRNZW1iZXJzKEkgaXRlcmF0b3IsIEkgZW5kKQor
ICAgIHsKKyAgICAgICAgd2hpbGUgKGl0ZXJhdG9yICE9IGVuZCkgeworICAgICAgICAgICAgYWRk
TWVtYmVyKCppdGVyYXRvcik7CisgICAgICAgICAgICArK2l0ZXJhdG9yOworICAgICAgICB9Cisg
ICAgfQogCiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgSGFzaE1hcFR5cGU+IHZvaWQgYWRkSGFzaE1h
cChjb25zdCBIYXNoTWFwVHlwZSYgbWFwKSB7IG1fbWVtb3J5SW5zdHJ1bWVudGF0aW9uLT5hZGRI
YXNoTWFwKG1hcCwgbV9vYmplY3RUeXBlLCB0cnVlKTsgfQotICAgIHRlbXBsYXRlPHR5cGVuYW1l
IEhhc2hTZXRUeXBlPiB2b2lkIGFkZEhhc2hTZXQoY29uc3QgSGFzaFNldFR5cGUmIHNldCkgeyBt
X21lbW9yeUluc3RydW1lbnRhdGlvbi0+YWRkSGFzaFNldChzZXQsIG1fb2JqZWN0VHlwZSwgdHJ1
ZSk7IH0KLSAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBIYXNoU2V0VHlwZT4gdm9pZCBhZGRIYXNoQ291
bnRlZFNldChjb25zdCBIYXNoU2V0VHlwZSYgc2V0KSB7IG1fbWVtb3J5SW5zdHJ1bWVudGF0aW9u
LT5hZGRIYXNoU2V0KHNldCwgbV9vYmplY3RUeXBlLCB0cnVlKTsgfQotICAgIHRlbXBsYXRlPHR5
cGVuYW1lIEhhc2hTZXRUeXBlPiB2b2lkIGFkZEluc3RydW1lbnRlZEhhc2hTZXQoY29uc3QgSGFz
aFNldFR5cGUmIHNldCkgeyBtX21lbW9yeUluc3RydW1lbnRhdGlvbi0+YWRkSW5zdHJ1bWVudGVk
Q29sbGVjdGlvbihzZXQsIG1fb2JqZWN0VHlwZSwgdHJ1ZSk7IH0KKyAgICB0ZW1wbGF0ZTx0eXBl
bmFtZSBIYXNoU2V0VHlwZT4gdm9pZCBhZGRIYXNoQ291bnRlZFNldChjb25zdCBIYXNoU2V0VHlw
ZSYgc2V0KSB7IG1fbWVtb3J5SW5zdHJ1bWVudGF0aW9uLT5hZGRIYXNoTWFwKHNldCwgbV9vYmpl
Y3RUeXBlLCB0cnVlKTsgfQogICAgIHRlbXBsYXRlPHR5cGVuYW1lIE1hcFR5cGU+IHZvaWQgYWRk
SW5zdHJ1bWVudGVkTWFwRW50cmllcyhjb25zdCBNYXBUeXBlJiBtYXApIHsgbV9tZW1vcnlJbnN0
cnVtZW50YXRpb24tPmFkZEluc3RydW1lbnRlZE1hcEVudHJpZXMobWFwLCBtX29iamVjdFR5cGUp
OyB9CiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgTWFwVHlwZT4gdm9pZCBhZGRJbnN0cnVtZW50ZWRN
YXBWYWx1ZXMoY29uc3QgTWFwVHlwZSYgbWFwKSB7IG1fbWVtb3J5SW5zdHJ1bWVudGF0aW9uLT5h
ZGRJbnN0cnVtZW50ZWRNYXBWYWx1ZXMobWFwLCBtX29iamVjdFR5cGUpOyB9CiAgICAgdGVtcGxh
dGU8dHlwZW5hbWUgTGlzdEhhc2hTZXRUeXBlPiB2b2lkIGFkZExpc3RIYXNoU2V0KGNvbnN0IExp
c3RIYXNoU2V0VHlwZSYgc2V0KSB7IG1fbWVtb3J5SW5zdHJ1bWVudGF0aW9uLT5hZGRMaXN0SGFz
aFNldChzZXQsIG1fb2JqZWN0VHlwZSwgdHJ1ZSk7IH0KQEAgLTI1MiwxNCArMjU2LDYgQEAgdm9p
ZCBNZW1vcnlJbnN0cnVtZW50YXRpb246OmFkZEhhc2hNYXAoY29uc3QgSGFzaE1hcFR5cGUmIGhh
c2hNYXAsIE1lbW9yeU9iamVjdFQKICAgICBjb3VudE9iamVjdFNpemUob3duZXJPYmplY3RUeXBl
LCBjYWxjdWxhdGVDb250YWluZXJTaXplKGhhc2hNYXAsIGNvbnRlbnRPbmx5KSk7CiB9CiAKLXRl
bXBsYXRlPHR5cGVuYW1lIEhhc2hTZXRUeXBlPgotdm9pZCBNZW1vcnlJbnN0cnVtZW50YXRpb246
OmFkZEhhc2hTZXQoY29uc3QgSGFzaFNldFR5cGUmIGhhc2hTZXQsIE1lbW9yeU9iamVjdFR5cGUg
b3duZXJPYmplY3RUeXBlLCBib29sIGNvbnRlbnRPbmx5KQotewotICAgIGlmICh2aXNpdGVkKCZo
YXNoU2V0KSkKLSAgICAgICAgcmV0dXJuOwotICAgIGNvdW50T2JqZWN0U2l6ZShvd25lck9iamVj
dFR5cGUsIGNhbGN1bGF0ZUNvbnRhaW5lclNpemUoaGFzaFNldCwgY29udGVudE9ubHkpKTsKLX0K
LQogdGVtcGxhdGU8dHlwZW5hbWUgQ29sbGVjdGlvblR5cGU+CiB2b2lkIE1lbW9yeUluc3RydW1l
bnRhdGlvbjo6YWRkSW5zdHJ1bWVudGVkQ29sbGVjdGlvbihjb25zdCBDb2xsZWN0aW9uVHlwZSYg
Y29sbGVjdGlvbiwgTWVtb3J5T2JqZWN0VHlwZSBvd25lck9iamVjdFR5cGUsIGJvb2wgY29udGVu
dE9ubHkpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9NZW1vcnlJbnN0cnVtZW50YXRp
b25IYXNoU2V0LmggYi9Tb3VyY2UvV1RGL3d0Zi9NZW1vcnlJbnN0cnVtZW50YXRpb25IYXNoU2V0
LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uN2JhZWIyM2JhYjIzNzdmYTdkOTQ5ODJmZDExZTAwODJmOGJjNWYyMwot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XVEYvd3RmL01lbW9yeUluc3RydW1lbnRhdGlvbkhh
c2hTZXQuaApAQCAtMCwwICsxLDQ5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIEdvb2ds
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAq
IGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRo
ZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRy
aWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZl
ZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBw
ZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlS
SUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRP
LCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UK
KyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBNZW1vcnlJbnN0cnVtZW50YXRpb25IYXNo
U2V0X2gKKyNkZWZpbmUgTWVtb3J5SW5zdHJ1bWVudGF0aW9uSGFzaFNldF9oCisKKyNpbmNsdWRl
IDx3dGYvTWVtb3J5SW5zdHJ1bWVudGF0aW9uSGFzaFRhYmxlLmg+CisjaW5jbHVkZSA8d3RmL3Rl
eHQvU3RyaW5nSGFzaC5oPgorCituYW1lc3BhY2UgV1RGIHsKKwordGVtcGxhdGU8dHlwZW5hbWUg
VmFsdWVBcmcsIHR5cGVuYW1lIEhhc2hBcmcsIHR5cGVuYW1lIFRyYWl0c0FyZz4KK3ZvaWQgcmVw
b3J0TWVtb3J5VXNhZ2UoY29uc3QgSGFzaFNldDxWYWx1ZUFyZywgSGFzaEFyZywgVHJhaXRzQXJn
PiogY29uc3QmIGhhc2hTZXQsIE1lbW9yeU9iamVjdEluZm8qIG1lbW9yeU9iamVjdEluZm8pCit7
CisgICAgTWVtb3J5Q2xhc3NJbmZvIGluZm8obWVtb3J5T2JqZWN0SW5mbywgaGFzaFNldCk7Cisg
ICAgaW5mby5hZGRNZW1iZXIoaGFzaFNldC0+bV9pbXBsKTsKKyAgICBpbmZvLmFkZE1lbWJlcnMo
aGFzaFNldC0+YmVnaW4oKSwgaGFzaFNldC0+ZW5kKCkpOworfQorCit9CisKKyNlbmRpZiAvLyAh
ZGVmaW5lZChNZW1vcnlJbnN0cnVtZW50YXRpb25IYXNoU2V0X2gpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV1RGL3d0Zi9NZW1vcnlJbnN0cnVtZW50YXRpb25IYXNoVGFibGUuaCBiL1NvdXJjZS9XVEYv
d3RmL01lbW9yeUluc3RydW1lbnRhdGlvbkhhc2hUYWJsZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjBhZWJmNmUy
MzdmN2JlZjI0YjY0YzAyNjRmYjYxN2FiYjk0MWE5MmYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV1RGL3d0Zi9NZW1vcnlJbnN0cnVtZW50YXRpb25IYXNoVGFibGUuaApAQCAtMCwwICsxLDQ3
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgor
ICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGlu
IHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xl
IEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0
byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3
YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05U
UklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisg
KiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI2lmbmRlZiBNZW1vcnlJbnN0cnVtZW50YXRpb25IYXNoVGFibGVfaAorI2RlZmluZSBNZW1v
cnlJbnN0cnVtZW50YXRpb25IYXNoVGFibGVfaAorCisjaW5jbHVkZSA8d3RmL01lbW9yeUluc3Ry
dW1lbnRhdGlvbi5oPgorCituYW1lc3BhY2UgV1RGIHsKKwordGVtcGxhdGU8dHlwZW5hbWUgS2V5
LCB0eXBlbmFtZSBWYWx1ZSwgdHlwZW5hbWUgRXh0cmFjdG9yLCB0eXBlbmFtZSBIYXNoRnVuY3Rp
b25zLCB0eXBlbmFtZSBUcmFpdHMsIHR5cGVuYW1lIEtleVRyYWl0cz4KK3ZvaWQgcmVwb3J0TWVt
b3J5VXNhZ2UoY29uc3QgSGFzaFRhYmxlPEtleSwgVmFsdWUsIEV4dHJhY3RvciwgSGFzaEZ1bmN0
aW9ucywgVHJhaXRzLCBLZXlUcmFpdHM+KiBjb25zdCYgaGFzaFRhYmxlLCBNZW1vcnlPYmplY3RJ
bmZvKiBtZW1vcnlPYmplY3RJbmZvKQoreworICAgIE1lbW9yeUNsYXNzSW5mbyBpbmZvKG1lbW9y
eU9iamVjdEluZm8sIGhhc2hUYWJsZSk7CisgICAgaW5mby5hZGRSYXdCdWZmZXIoaGFzaFRhYmxl
LT5tX3RhYmxlLCBzaXplb2YodHlwZW5hbWUgSGFzaFRhYmxlPEtleSwgVmFsdWUsIEV4dHJhY3Rv
ciwgSGFzaEZ1bmN0aW9ucywgVHJhaXRzLCBLZXlUcmFpdHM+OjpWYWx1ZVR5cGUpICogaGFzaFRh
YmxlLT5jYXBhY2l0eSgpKTsKK30KKworfQorCisjZW5kaWYgLy8gIWRlZmluZWQoTWVtb3J5SW5z
dHJ1bWVudGF0aW9uSGFzaFRhYmxlX2gpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3Mv
Q1NTQ3Vyc29ySW1hZ2VWYWx1ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ3Vyc29ySW1h
Z2VWYWx1ZS5jcHAKaW5kZXggNjhmZmE5YzExNjQ3NGE0MGJjZDZkN2YyZTljN2VhMWJlNTUzN2Nl
OC4uMDZkOTNlYTYwMTQ3ZDJiNzA2ZWYyYThkNTgyYjA0ZmJiYzJhYTY3OCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvY3NzL0NTU0N1cnNvckltYWdlVmFsdWUuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9DU1NDdXJzb3JJbWFnZVZhbHVlLmNwcApAQCAtMjYsNiArMjYsNyBAQAogI2lu
Y2x1ZGUgIlRyZWVTY29wZS5oIgogI2luY2x1ZGUgIldlYkNvcmVNZW1vcnlJbnN0cnVtZW50YXRp
b24uaCIKICNpbmNsdWRlIDx3dGYvTWF0aEV4dHJhcy5oPgorI2luY2x1ZGUgPHd0Zi9NZW1vcnlJ
bnN0cnVtZW50YXRpb25IYXNoU2V0Lmg+CiAjaW5jbHVkZSA8d3RmL1VudXNlZFBhcmFtLmg+CiAj
aW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKQEAgLTEzOCw3ICsxMzksNyBAQCB2b2lk
IENTU0N1cnNvckltYWdlVmFsdWU6OnJlcG9ydERlc2NlbmRhbnRNZW1vcnlVc2FnZShNZW1vcnlP
YmplY3RJbmZvKiBtZW1vcnlPYgogICAgIE1lbW9yeUNsYXNzSW5mbyBpbmZvKG1lbW9yeU9iamVj
dEluZm8sIHRoaXMsIFdlYkNvcmVNZW1vcnlUeXBlczo6Q1NTKTsKICAgICBDU1NJbWFnZVZhbHVl
OjpyZXBvcnREZXNjZW5kYW50TWVtb3J5VXNhZ2UobWVtb3J5T2JqZWN0SW5mbyk7CiAjaWYgRU5B
QkxFKFNWRykKLSAgICBpbmZvLmFkZEluc3RydW1lbnRlZEhhc2hTZXQobV9yZWZlcmVuY2VkRWxl
bWVudHMpOworICAgIGluZm8uYWRkTWVtYmVyKG1fcmVmZXJlbmNlZEVsZW1lbnRzKTsKICNlbmRp
ZgogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSZXNvbHZlci5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSZXNvbHZlci5jcHAKaW5kZXggNmFlMzVhY2Y4YzMz
Y2M4MjgwZTJkZTMxMzBkMjhiOWE5NGUyNTYwNC4uOTllMGZkZjY4NzRkNzFjNjViYWVkNTE2Zjlm
ZjI4NzM0ZTRkZWMzYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUmVzb2x2
ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJlc29sdmVyLmNwcApAQCAtMTI2
LDYgKzEyNiw3IEBACiAjaW5jbHVkZSAiV2ViS2l0Q1NTVHJhbnNmb3JtVmFsdWUuaCIKICNpbmNs
dWRlICJXZWJLaXRGb250RmFtaWx5TmFtZXMuaCIKICNpbmNsdWRlICJYTUxOYW1lcy5oIgorI2lu
Y2x1ZGUgPHd0Zi9NZW1vcnlJbnN0cnVtZW50YXRpb25IYXNoU2V0Lmg+CiAjaW5jbHVkZSA8d3Rm
L01lbW9yeUluc3RydW1lbnRhdGlvblZlY3Rvci5oPgogI2luY2x1ZGUgPHd0Zi9TdGRMaWJFeHRy
YXMuaD4KICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CkBAIC03NDUsOCArNzQ2LDggQEAgdm9pZCBT
dHlsZVJlc29sdmVyOjpGZWF0dXJlczo6Y2xlYXIoKQogdm9pZCBTdHlsZVJlc29sdmVyOjpGZWF0
dXJlczo6cmVwb3J0TWVtb3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyogbWVtb3J5T2JqZWN0SW5m
bykgY29uc3QKIHsKICAgICBNZW1vcnlDbGFzc0luZm8gaW5mbyhtZW1vcnlPYmplY3RJbmZvLCB0
aGlzLCBXZWJDb3JlTWVtb3J5VHlwZXM6OkNTUyk7Ci0gICAgaW5mby5hZGRIYXNoU2V0KGlkc0lu
UnVsZXMpOwotICAgIGluZm8uYWRkSGFzaFNldChhdHRyc0luUnVsZXMpOworICAgIGluZm8uYWRk
TWVtYmVyKGlkc0luUnVsZXMpOworICAgIGluZm8uYWRkTWVtYmVyKGF0dHJzSW5SdWxlcyk7CiAg
ICAgaW5mby5hZGRNZW1iZXIoc2libGluZ1J1bGVzKTsKICAgICBpbmZvLmFkZE1lbWJlcih1bmNv
bW1vbkF0dHJpYnV0ZVJ1bGVzKTsKIH0KQEAgLTU3OTIsNyArNTc5Myw3IEBAIHZvaWQgU3R5bGVS
ZXNvbHZlcjo6cmVwb3J0TWVtb3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyogbWVtb3J5T2JqZWN0
SW5mbykgY29uc3QKICAgICBpbmZvLmFkZE1lbWJlcihtX3ZpZXdwb3J0RGVwZW5kZW50TWVkaWFR
dWVyeVJlc3VsdHMpOwogICAgIGluZm8uYWRkSGFzaE1hcChtX3N0eWxlUnVsZVRvQ1NTT01XcmFw
cGVyTWFwKTsKICAgICBpbmZvLmFkZEluc3RydW1lbnRlZE1hcEVudHJpZXMobV9zdHlsZVJ1bGVU
b0NTU09NV3JhcHBlck1hcCk7Ci0gICAgaW5mby5hZGRJbnN0cnVtZW50ZWRIYXNoU2V0KG1fc3R5
bGVTaGVldENTU09NV3JhcHBlclNldCk7CisgICAgaW5mby5hZGRNZW1iZXIobV9zdHlsZVNoZWV0
Q1NTT01XcmFwcGVyU2V0KTsKICNpZiBFTkFCTEUoQ1NTX0ZJTFRFUlMpICYmIEVOQUJMRShTVkcp
CiAgICAgaW5mby5hZGRIYXNoTWFwKG1fcGVuZGluZ1NWR0RvY3VtZW50cyk7CiAjZW5kaWYKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vRG9jdW1lbnQuY3BwCmluZGV4IDAwOWM4NDU5MmY3MzhkYTU5ZTViODY2NzM0OTkwZWRl
ZDQ0ZDc3OWMuLjE2YjFlNTM1YTA3M2RjMzk2MTY2NTE2ZjEwZTg1MWY3YTMxZGJjYTAgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvZG9tL0RvY3VtZW50LmNwcApAQCAtMTA5LDYgKzEwOSw3IEBACiAjaW5jbHVkZSAiTGFuZ3Vh
Z2UuaCIKICNpbmNsdWRlICJMb2NhbGl6ZXIuaCIKICNpbmNsdWRlICJMb2dnaW5nLmgiCisjaW5j
bHVkZSAiTWVkaWFDYW5TdGFydExpc3RlbmVyLmgiCiAjaW5jbHVkZSAiTWVkaWFRdWVyeUxpc3Qu
aCIKICNpbmNsdWRlICJNZWRpYVF1ZXJ5TWF0Y2hlci5oIgogI2luY2x1ZGUgIk1vdXNlRXZlbnRX
aXRoSGl0VGVzdFJlc3VsdHMuaCIKQEAgLTE3NCw2ICsxNzUsNyBAQAogI2luY2x1ZGUgPHd0Zi9D
dXJyZW50VGltZS5oPgogI2luY2x1ZGUgPHd0Zi9IYXNoRnVuY3Rpb25zLmg+CiAjaW5jbHVkZSA8
d3RmL01haW5UaHJlYWQuaD4KKyNpbmNsdWRlIDx3dGYvTWVtb3J5SW5zdHJ1bWVudGF0aW9uSGFz
aFNldC5oPgogI2luY2x1ZGUgPHd0Zi9NZW1vcnlJbnN0cnVtZW50YXRpb25WZWN0b3IuaD4KICNp
bmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgogI2luY2x1ZGUgPHd0Zi9TdGRMaWJFeHRyYXMuaD4K
QEAgLTU4NjcsOCArNTg2OSw4IEBAIHZvaWQgRG9jdW1lbnQ6OnVwZGF0ZUhvdmVyQWN0aXZlU3Rh
dGUoY29uc3QgSGl0VGVzdFJlcXVlc3QmIHJlcXVlc3QsIEhpdFRlc3RSZXN1CiB2b2lkIERvY3Vt
ZW50OjpyZXBvcnRNZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJbmZvKiBtZW1vcnlPYmplY3RJbmZv
KSBjb25zdAogewogICAgIE1lbW9yeUNsYXNzSW5mbyBpbmZvKG1lbW9yeU9iamVjdEluZm8sIHRo
aXMsIFdlYkNvcmVNZW1vcnlUeXBlczo6RE9NKTsKLSAgICBpbmZvLmFkZE1lbWJlcihtX3N0eWxl
UmVzb2x2ZXIpOwogICAgIENvbnRhaW5lck5vZGU6OnJlcG9ydE1lbW9yeVVzYWdlKG1lbW9yeU9i
amVjdEluZm8pOworICAgIGluZm8uYWRkTWVtYmVyKG1fc3R5bGVSZXNvbHZlcik7CiAgICAgaW5m
by5hZGRNZW1iZXIobV9jdXN0b21Gb250cyk7CiAgICAgaW5mby5hZGRNZW1iZXIobV91cmwpOwog
ICAgIGluZm8uYWRkTWVtYmVyKG1fYmFzZVVSTCk7CkBAIC01ODc4LDEyICs1ODgwLDE2IEBAIHZv
aWQgRG9jdW1lbnQ6OnJlcG9ydE1lbW9yeVVzYWdlKE1lbW9yeU9iamVjdEluZm8qIG1lbW9yeU9i
amVjdEluZm8pIGNvbnN0CiAgICAgaW5mby5hZGRNZW1iZXIobV9maXJzdFBhcnR5Rm9yQ29va2ll
cyk7CiAgICAgaW5mby5hZGRNZW1iZXIobV9kb2N1bWVudFVSSSk7CiAgICAgaW5mby5hZGRNZW1i
ZXIobV9iYXNlVGFyZ2V0KTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX2RvY1R5cGUpOworICAgIGlu
Zm8uYWRkTWVtYmVyKG1faW1wbGVtZW50YXRpb24pOworICAgIGluZm8uYWRkTWVtYmVyKG1fZWxl
bVNoZWV0KTsKICAgICBpbmZvLmFkZE1lbWJlcihtX2ZyYW1lKTsKICAgICBpbmZvLmFkZE1lbWJl
cihtX2NhY2hlZFJlc291cmNlTG9hZGVyKTsKLSAgICBpbmZvLmFkZE1lbWJlcihtX2VsZW1TaGVl
dCk7CiAgICAgaW5mby5hZGRNZW1iZXIobV9zdHlsZVNoZWV0Q29sbGVjdGlvbik7Ci0gICAgaW5m
by5hZGRIYXNoU2V0KG1fbm9kZUl0ZXJhdG9ycyk7Ci0gICAgaW5mby5hZGRIYXNoU2V0KG1fcmFu
Z2VzKTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX3N0eWxlU2hlZXRMaXN0KTsKKyAgICBpbmZvLmFk
ZE1lbWJlcihtX2Zvcm1Db250cm9sbGVyKTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX25vZGVJdGVy
YXRvcnMpOworICAgIGluZm8uYWRkTWVtYmVyKG1fcmFuZ2VzKTsKICAgICBpbmZvLmFkZE1lbWJl
cihtX3RpdGxlLnN0cmluZygpKTsKICAgICBpbmZvLmFkZE1lbWJlcihtX3Jhd1RpdGxlLnN0cmlu
ZygpKTsKICAgICBpbmZvLmFkZE1lbWJlcihtX3htbEVuY29kaW5nKTsKQEAgLTU4OTYsMTIgKzU5
MDIsMTIgQEAgdm9pZCBEb2N1bWVudDo6cmVwb3J0TWVtb3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5m
byogbWVtb3J5T2JqZWN0SW5mbykgY29uc3QKICNlbmRpZgogICAgIGluZm8uYWRkSGFzaE1hcCht
X2Nzc0NhbnZhc0VsZW1lbnRzKTsKICAgICBpbmZvLmFkZE1lbWJlcihtX2ljb25VUkxzKTsKLSAg
ICBpbmZvLmFkZEhhc2hTZXQobV9kb2N1bWVudFN1c3BlbnNpb25DYWxsYmFja0VsZW1lbnRzKTsK
LSAgICBpbmZvLmFkZEhhc2hTZXQobV9tZWRpYVZvbHVtZUNhbGxiYWNrRWxlbWVudHMpOwotICAg
IGluZm8uYWRkSGFzaFNldChtX3ByaXZhdGVCcm93c2luZ1N0YXRlQ2hhbmdlZEVsZW1lbnRzKTsK
KyAgICBpbmZvLmFkZE1lbWJlcihtX2RvY3VtZW50U3VzcGVuc2lvbkNhbGxiYWNrRWxlbWVudHMp
OworICAgIGluZm8uYWRkTWVtYmVyKG1fbWVkaWFWb2x1bWVDYWxsYmFja0VsZW1lbnRzKTsKKyAg
ICBpbmZvLmFkZE1lbWJlcihtX3ByaXZhdGVCcm93c2luZ1N0YXRlQ2hhbmdlZEVsZW1lbnRzKTsK
ICAgICBpbmZvLmFkZEhhc2hNYXAobV9lbGVtZW50c0J5QWNjZXNzS2V5KTsKICAgICBpbmZvLmFk
ZE1lbWJlcihtX2V2ZW50UXVldWUpOwotICAgIGluZm8uYWRkSGFzaFNldChtX21lZGlhQ2FuU3Rh
cnRMaXN0ZW5lcnMpOworICAgIGluZm8uYWRkTWVtYmVyKG1fbWVkaWFDYW5TdGFydExpc3RlbmVy
cyk7CiAgICAgaW5mby5hZGRNZW1iZXIobV9wZW5kaW5nVGFza3MpOwogfQogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnRFdmVudFF1ZXVlLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9Eb2N1bWVudEV2ZW50UXVldWUuY3BwCmluZGV4IDYzOTZmMDEyNGU1YTU3YTQ2YTA2
Nzg4MDYzYjk3NmY2YTFmZTZhNTIuLmYzNjAxY2ZlNjgyMjgxM2YyODM3OTVmYTNjY2Q0ZjhkOTFk
ODlmMGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudEV2ZW50UXVldWUu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudEV2ZW50UXVldWUuY3BwCkBAIC0z
NSw2ICszNSw3IEBACiAjaW5jbHVkZSAiU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oIgogI2luY2x1
ZGUgIlN1c3BlbmRhYmxlVGltZXIuaCIKICNpbmNsdWRlICJXZWJDb3JlTWVtb3J5SW5zdHJ1bWVu
dGF0aW9uLmgiCisjaW5jbHVkZSA8d3RmL01lbW9yeUluc3RydW1lbnRhdGlvbkhhc2hTZXQuaD4K
IAogbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIApAQCAtMTEyLDggKzExMyw4IEBAIHZvaWQgRG9j
dW1lbnRFdmVudFF1ZXVlOjpyZXBvcnRNZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJbmZvKiBtZW1v
cnlPYmplY3RJbmZvKSBjCiB7CiAgICAgTWVtb3J5Q2xhc3NJbmZvIGluZm8obWVtb3J5T2JqZWN0
SW5mbywgdGhpcywgV2ViQ29yZU1lbW9yeVR5cGVzOjpET00pOwogICAgIGluZm8uYWRkTWVtYmVy
KG1fcGVuZGluZ0V2ZW50VGltZXIpOwotICAgIGluZm8uYWRkSW5zdHJ1bWVudGVkSGFzaFNldCht
X3F1ZXVlZEV2ZW50cyk7Ci0gICAgaW5mby5hZGRJbnN0cnVtZW50ZWRIYXNoU2V0KG1fbm9kZXNX
aXRoUXVldWVkU2Nyb2xsRXZlbnRzKTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX3F1ZXVlZEV2ZW50
cyk7CisgICAgaW5mby5hZGRNZW1iZXIobV9ub2Rlc1dpdGhRdWV1ZWRTY3JvbGxFdmVudHMpOwog
fQogCiBib29sIERvY3VtZW50RXZlbnRRdWV1ZTo6Y2FuY2VsRXZlbnQoRXZlbnQqIGV2ZW50KQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50TG9hZGVyLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudExvYWRlci5jcHAKaW5kZXggOTAwYWY5NzhhYTYx
MWZhMmM1NTQ5MjczNWI0MDMzNmE0ZTg2M2I4Yi4uNGNjODM2MTRmZGNhZjViOTU1MDFiYjI2ODZm
M2ViZTNhNDQ3YmI4OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50
TG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkZXIuY3Bw
CkBAIC01Myw2ICs1Myw3IEBACiAjaW5jbHVkZSAiVGV4dFJlc291cmNlRGVjb2Rlci5oIgogI2lu
Y2x1ZGUgIldlYkNvcmVNZW1vcnlJbnN0cnVtZW50YXRpb24uaCIKICNpbmNsdWRlIDx3dGYvQXNz
ZXJ0aW9ucy5oPgorI2luY2x1ZGUgPHd0Zi9NZW1vcnlJbnN0cnVtZW50YXRpb25IYXNoU2V0Lmg+
CiAjaW5jbHVkZSA8d3RmL01lbW9yeUluc3RydW1lbnRhdGlvblZlY3Rvci5oPgogI2luY2x1ZGUg
PHd0Zi90ZXh0L0NTdHJpbmcuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KQEAg
LTM2Myw5ICszNjQsOSBAQCB2b2lkIERvY3VtZW50TG9hZGVyOjpyZXBvcnRNZW1vcnlVc2FnZShN
ZW1vcnlPYmplY3RJbmZvKiBtZW1vcnlPYmplY3RJbmZvKSBjb25zdAogICAgIE1lbW9yeUNsYXNz
SW5mbyBpbmZvKG1lbW9yeU9iamVjdEluZm8sIHRoaXMsIFdlYkNvcmVNZW1vcnlUeXBlczo6TG9h
ZGVyKTsKICAgICBpbmZvLmFkZE1lbWJlcihtX2ZyYW1lKTsKICAgICBpbmZvLmFkZE1lbWJlciht
X21haW5SZXNvdXJjZUxvYWRlcik7Ci0gICAgaW5mby5hZGRJbnN0cnVtZW50ZWRIYXNoU2V0KG1f
c3VicmVzb3VyY2VMb2FkZXJzKTsKLSAgICBpbmZvLmFkZEluc3RydW1lbnRlZEhhc2hTZXQobV9t
dWx0aXBhcnRTdWJyZXNvdXJjZUxvYWRlcnMpOwotICAgIGluZm8uYWRkSW5zdHJ1bWVudGVkSGFz
aFNldChtX3BsdWdJblN0cmVhbUxvYWRlcnMpOworICAgIGluZm8uYWRkTWVtYmVyKG1fc3VicmVz
b3VyY2VMb2FkZXJzKTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX211bHRpcGFydFN1YnJlc291cmNl
TG9hZGVycyk7CisgICAgaW5mby5hZGRNZW1iZXIobV9wbHVnSW5TdHJlYW1Mb2FkZXJzKTsKICAg
ICBpbmZvLmFkZE1lbWJlcihtX3N1YnN0aXR1dGVEYXRhKTsKICAgICBpbmZvLmFkZE1lbWJlciht
X3BhZ2VUaXRsZS5zdHJpbmcoKSk7CiAgICAgaW5mby5hZGRNZW1iZXIobV9vdmVycmlkZUVuY29k
aW5nKTsKQEAgLTM3Nyw3ICszNzgsNyBAQCB2b2lkIERvY3VtZW50TG9hZGVyOjpyZXBvcnRNZW1v
cnlVc2FnZShNZW1vcnlPYmplY3RJbmZvKiBtZW1vcnlPYmplY3RJbmZvKSBjb25zdAogICAgIGlu
Zm8uYWRkTWVtYmVyKG1fbGFzdENoZWNrZWRSZXF1ZXN0KTsKICAgICBpbmZvLmFkZE1lbWJlciht
X3Jlc3BvbnNlcyk7CiAgICAgaW5mby5hZGRIYXNoTWFwKG1fcGVuZGluZ1N1YnN0aXR1dGVSZXNv
dXJjZXMpOwotICAgIGluZm8uYWRkSW5zdHJ1bWVudGVkSGFzaFNldChtX3Jlc291cmNlc0NsaWVu
dEtub3dzQWJvdXQpOworICAgIGluZm8uYWRkTWVtYmVyKG1fcmVzb3VyY2VzQ2xpZW50S25vd3NB
Ym91dCk7CiAgICAgaW5mby5hZGRNZW1iZXIobV9yZXNvdXJjZXNMb2FkZWRGcm9tTWVtb3J5Q2Fj
aGVGb3JDbGllbnROb3RpZmljYXRpb24pOwogICAgIGluZm8uYWRkTWVtYmVyKG1fY2xpZW50UmVk
aXJlY3RTb3VyY2VGb3JIaXN0b3J5KTsKICAgICBpbmZvLmFkZE1lbWJlcihtX21haW5SZXNvdXJj
ZURhdGEpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAKaW5kZXggODlmODc2MjQy
OWIxYmU3YmI2ZjM3ODY0M2MwZDE5ODcwOGMzMmViNS4uOGRhYzgxMDFiNzE0MTAyODRjZWUyMmEy
ZjM4NzA0MjZjOTMzOWY4YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1l
TG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwCkBA
IC0xMDIsNiArMTAyLDcgQEAKICNpbmNsdWRlICJXaW5kb3dGZWF0dXJlcy5oIgogI2luY2x1ZGUg
IlhNTERvY3VtZW50UGFyc2VyLmgiCiAjaW5jbHVkZSA8d3RmL0N1cnJlbnRUaW1lLmg+CisjaW5j
bHVkZSA8d3RmL01lbW9yeUluc3RydW1lbnRhdGlvbkhhc2hTZXQuaD4KICNpbmNsdWRlIDx3dGYv
U3RkTGliRXh0cmFzLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgogI2luY2x1ZGUg
PHd0Zi90ZXh0L1dURlN0cmluZy5oPgpAQCAtMzI4Niw3ICszMjg3LDcgQEAgdm9pZCBGcmFtZUxv
YWRlcjo6cmVwb3J0TWVtb3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyogbWVtb3J5T2JqZWN0SW5m
bykgY29uc3QKICAgICBpbmZvLmFkZE1lbWJlcihtX3Byb3Zpc2lvbmFsRG9jdW1lbnRMb2FkZXIp
OwogICAgIGluZm8uYWRkTWVtYmVyKG1fcG9saWN5RG9jdW1lbnRMb2FkZXIpOwogICAgIGluZm8u
YWRkTWVtYmVyKG1fb3V0Z29pbmdSZWZlcnJlcik7Ci0gICAgaW5mby5hZGRJbnN0cnVtZW50ZWRI
YXNoU2V0KG1fb3BlbmVkRnJhbWVzKTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX29wZW5lZEZyYW1l
cyk7CiB9CiAKIGJvb2wgRnJhbWVMb2FkZXJDbGllbnQ6Omhhc0hUTUxWaWV3KCkgY29uc3QKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2UuY3BwCmluZGV4IDMz
ZDFiYTgyM2JjNmZkODY1NzJlNmE5NDYxYWM1YmQ3NTYzYTA2YmIuLmQyOTFkMTQzYjEzYmExYTE5
M2RiZTMwODM1ZTdjNzlmYTQ4Mjk0MmUgMTAwNzU1Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9jYWNoZS9DYWNoZWRSZXNvdXJjZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2Nh
Y2hlL0NhY2hlZFJlc291cmNlLmNwcApAQCAtNDQsNiArNDQsNyBAQAogI2luY2x1ZGUgIldlYkNv
cmVNZW1vcnlJbnN0cnVtZW50YXRpb24uaCIKICNpbmNsdWRlIDx3dGYvQ3VycmVudFRpbWUuaD4K
ICNpbmNsdWRlIDx3dGYvTWF0aEV4dHJhcy5oPgorI2luY2x1ZGUgPHd0Zi9NZW1vcnlJbnN0cnVt
ZW50YXRpb25IYXNoU2V0Lmg+CiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWRMZWFrQ291bnRlci5o
PgogI2luY2x1ZGUgPHd0Zi9TdGRMaWJFeHRyYXMuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9DU3Ry
aW5nLmg+CkBAIC04MDQsNyArODA1LDcgQEAgdm9pZCBDYWNoZWRSZXNvdXJjZTo6cmVwb3J0TWVt
b3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyogbWVtb3J5T2JqZWN0SW5mbykgY29uc3QKIHsKICAg
ICBNZW1vcnlDbGFzc0luZm8gaW5mbyhtZW1vcnlPYmplY3RJbmZvLCB0aGlzLCBXZWJDb3JlTWVt
b3J5VHlwZXM6OkNhY2hlZFJlc291cmNlKTsKICAgICBpbmZvLmFkZE1lbWJlcihtX3Jlc291cmNl
UmVxdWVzdCk7Ci0gICAgaW5mby5hZGRIYXNoU2V0KG1fY2xpZW50cyk7CisgICAgaW5mby5hZGRN
ZW1iZXIobV9jbGllbnRzKTsKICAgICBpbmZvLmFkZE1lbWJlcihtX2FjY2VwdCk7CiAgICAgaW5m
by5hZGRNZW1iZXIobV9sb2FkZXIpOwogICAgIGluZm8uYWRkTWVtYmVyKG1fcmVzcG9uc2UpOwpA
QCAtODE3LDcgKzgxOCw3IEBAIHZvaWQgQ2FjaGVkUmVzb3VyY2U6OnJlcG9ydE1lbW9yeVVzYWdl
KE1lbW9yeU9iamVjdEluZm8qIG1lbW9yeU9iamVjdEluZm8pIGNvbnN0CiAgICAgaW5mby5hZGRN
ZW1iZXIobV9vd25pbmdDYWNoZWRSZXNvdXJjZUxvYWRlcik7CiAgICAgaW5mby5hZGRNZW1iZXIo
bV9yZXNvdXJjZVRvUmV2YWxpZGF0ZSk7CiAgICAgaW5mby5hZGRNZW1iZXIobV9wcm94eVJlc291
cmNlKTsKLSAgICBpbmZvLmFkZEluc3RydW1lbnRlZEhhc2hTZXQobV9oYW5kbGVzVG9SZXZhbGlk
YXRlKTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX2hhbmRsZXNUb1JldmFsaWRhdGUpOwogCiAgICAg
aWYgKG1fcHVyZ2VhYmxlRGF0YSAmJiAhbV9wdXJnZWFibGVEYXRhLT53YXNQdXJnZWQoKSkKICAg
ICAgICAgaW5mby5hZGRSYXdCdWZmZXIobV9wdXJnZWFibGVEYXRhLmdldCgpLCBtX3B1cmdlYWJs
ZURhdGEtPnNpemUoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUv
Q2FjaGVkUmVzb3VyY2VMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0Nh
Y2hlZFJlc291cmNlTG9hZGVyLmNwcAppbmRleCA1OTNkNTMyYTE1YWE4MmNhMDg3Y2I2YzNjZDUx
N2M4ZWRmOTAyNmIzLi5iYjY4NzQwNTFiY2I5NDgxZGU0ZDBmYjRhYWU0NmM2MjEwMjIxM2YyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VMb2Fk
ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZUxv
YWRlci5jcHAKQEAgLTQ4LDYgKzQ4LDcgQEAKICNpbmNsdWRlICJSZXNvdXJjZUxvYWRTY2hlZHVs
ZXIuaCIKICNpbmNsdWRlICJTZWN1cml0eU9yaWdpbi5oIgogI2luY2x1ZGUgIlNldHRpbmdzLmgi
CisjaW5jbHVkZSA8d3RmL01lbW9yeUluc3RydW1lbnRhdGlvbkhhc2hTZXQuaD4KICNpbmNsdWRl
IDx3dGYvVW51c2VkUGFyYW0uaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CiAjaW5j
bHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CkBAIC05MDAsNyArOTAxLDcgQEAgdm9pZCBDYWNo
ZWRSZXNvdXJjZUxvYWRlcjo6cmVwb3J0TWVtb3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyogbWVt
b3J5T2JqZWN0SW5mbykKICAgICAgICAgaW5mby5hZGRNZW1iZXIoaS0+Zmlyc3QpOwogICAgICAg
ICBpbmZvLmFkZE1lbWJlcihpLT5zZWNvbmQpOwogICAgIH0KLSAgICBpbmZvLmFkZEhhc2hTZXQo
bV92YWxpZGF0ZWRVUkxzKTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX3ZhbGlkYXRlZFVSTHMpOwog
ICAgIGlmIChtX3ByZWxvYWRzKQogICAgICAgICBpbmZvLmFkZExpc3RIYXNoU2V0KCptX3ByZWxv
YWRzKTsKICAgICBpbmZvLmFkZE1lbWJlcihtX3BlbmRpbmdQcmVsb2Fkcyk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL01lbW9yeUluc3RydW1lbnRhdGlvblRlc3Qu
Y3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9NZW1vcnlJbnN0cnVtZW50YXRpb25U
ZXN0LmNwcAppbmRleCAyMWNlOTYzMTY5Y2RjYjM5MWZkN2EyOWRmMzVmNTYwZmRiZDg0NDZmLi5h
ZWI1ZDk2NmE2ZmI4MzUxN2I5MzZmMjY3ZmM2ZDQ0MWJlMGIxMmU0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL01lbW9yeUluc3RydW1lbnRhdGlvblRlc3QuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvTWVtb3J5SW5zdHJ1bWVudGF0aW9uVGVz
dC5jcHAKQEAgLTM3LDExICszNywxMyBAQAogI2luY2x1ZGUgPGd0ZXN0L2d0ZXN0Lmg+CiAKICNp
bmNsdWRlIDx3dGYvSGFzaFNldC5oPgorI2luY2x1ZGUgPHd0Zi9NZW1vcnlJbnN0cnVtZW50YXRp
b25IYXNoU2V0Lmg+CiAjaW5jbHVkZSA8d3RmL01lbW9yeUluc3RydW1lbnRhdGlvblZlY3Rvci5o
PgogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgog
I2luY2x1ZGUgPHd0Zi90ZXh0L0F0b21pY1N0cmluZy5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L0NT
dHJpbmcuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdIYXNoLmg+CiAjaW5jbHVkZSA8d3Rm
L3RleHQvU3RyaW5nSW1wbC5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCkBA
IC00MzksNSArNDQxLDIxIEBAIFRFU1QoTWVtb3J5SW5zdHJ1bWVudGF0aW9uVGVzdCwgdmVjdG9y
V2l0aEluc3RydW1lbnRlZFR5cGUpCiAgICAgRVhQRUNUX0VRKGNvdW50ICsgMiwgKHNpemVfdCl2
aXNpdGVkT2JqZWN0cy5zaXplKCkpOwogfQogCitURVNUKE1lbW9yeUluc3RydW1lbnRhdGlvblRl
c3QsIGhhc2hTZXRXaXRoSW5zdHJ1bWVudGVkVHlwZSkKK3sKKyAgICBWaXNpdGVkT2JqZWN0cyB2
aXNpdGVkT2JqZWN0czsKKyAgICBNZW1vcnlJbnN0cnVtZW50YXRpb25JbXBsIGltcGwodmlzaXRl
ZE9iamVjdHMpOworCisgICAgdHlwZWRlZiBIYXNoU2V0PFN0cmluZz4gVmFsdWVUeXBlOworICAg
IE93blB0cjxWYWx1ZVR5cGU+IHZhbHVlID0gYWRvcHRQdHIobmV3IFZhbHVlVHlwZSgpKTsKKyAg
ICBzaXplX3QgY291bnQgPSAxMDsKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGNvdW50OyAr
K2kpCisgICAgICAgIHZhbHVlLT5hZGQoU3RyaW5nOjpudW1iZXIoaSkpOworICAgIEluc3RydW1l
bnRlZE93bmVyPFZhbHVlVHlwZSogPiByb290KHZhbHVlLmdldCgpKTsKKyAgICBpbXBsLmFkZFJv
b3RPYmplY3Qocm9vdCk7CisgICAgRVhQRUNUX0VRKHNpemVvZihWYWx1ZVR5cGUpICsgc2l6ZW9m
KFN0cmluZykgKiB2YWx1ZS0+Y2FwYWNpdHkoKSArIHNpemVvZihTdHJpbmdJbXBsKSAqIHZhbHVl
LT5zaXplKCksIGltcGwucmVwb3J0ZWRTaXplRm9yQWxsVHlwZXMoKSk7CisgICAgRVhQRUNUX0VR
KGNvdW50ICsgMiwgKHNpemVfdCl2aXNpdGVkT2JqZWN0cy5zaXplKCkpOworfQorCiB9IC8vIG5h
bWVzcGFjZQogCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>