<?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>96405</bug_id>
          
          <creation_ts>2012-09-11 10:19:57 -0700</creation_ts>
          <short_desc>Web Inspector: NMI move String* instrumentation to wtf</short_desc>
          <delta_ts>2012-09-12 05:49:52 -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>96487</dependson>
          <blocked>96367</blocked>
          <everconfirmed>0</everconfirmed>
          <reporter name="Ilya Tikhonovsky">loislo</reporter>
          <assigned_to name="Ilya Tikhonovsky">loislo</assigned_to>
          <cc>alph</cc>
    
    <cc>apavlov</cc>
    
    <cc>benjamin</cc>
    
    <cc>bweinstein</cc>
    
    <cc>dglazkov</cc>
    
    <cc>joepeck</cc>
    
    <cc>keishi</cc>
    
    <cc>loislo</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>717327</commentid>
    <comment_count>0</comment_count>
    <who name="Ilya Tikhonovsky">loislo</who>
    <bug_when>2012-09-11 10:19:57 -0700</bug_when>
    <thetext>It is hard to upstream instrumentation traits for string classes.
It is much simple to instrument string classes directly.
Also this instrumentation is solving the problem with SubStrings.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>717335</commentid>
    <comment_count>1</comment_count>
      <attachid>163398</attachid>
    <who name="Ilya Tikhonovsky">loislo</who>
    <bug_when>2012-09-11 10:25:18 -0700</bug_when>
    <thetext>Created attachment 163398
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>718047</commentid>
    <comment_count>2</comment_count>
      <attachid>163398</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2012-09-12 01:34:40 -0700</bug_when>
    <thetext>Comment on attachment 163398
Patch

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

&gt; Source/WTF/wtf/text/StringImpl.h:723
&gt; +        // count size used by internal buffer but skip strings that were constructed from literals.

count -&gt; Count

&gt; Source/WTF/wtf/text/StringImpl.h:731
&gt; +        typename MemoryObjectInfo::ClassInfo info(memoryObjectInfo, this, 0, selfSize);

You should be consistent in using either constant MemoryObjectType::Unknown or 0 everywhere.

&gt; Source/WTF/wtf/text/StringImpl.h:735
&gt; +        else if (m_hashAndFlags &amp; s_hashFlagHas16BitShadow) // Substrings never have it&apos;s own shadow.

typo: Substring never has its own shadow.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>718061</commentid>
    <comment_count>3</comment_count>
      <attachid>163546</attachid>
    <who name="Ilya Tikhonovsky">loislo</who>
    <bug_when>2012-09-12 01:46:50 -0700</bug_when>
    <thetext>Created attachment 163546
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>718068</commentid>
    <comment_count>4</comment_count>
      <attachid>163546</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2012-09-12 01:52:57 -0700</bug_when>
    <thetext>Comment on attachment 163546
Patch

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

&gt; Source/WTF/wtf/text/StringImpl.h:735
&gt; +        else if (m_hashAndFlags &amp; s_hashFlagHas16BitShadow) // Substring never has it&apos;s own shadow.

it&apos;s -&gt; its</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>718074</commentid>
    <comment_count>5</comment_count>
    <who name="Ilya Tikhonovsky">loislo</who>
    <bug_when>2012-09-12 01:57:46 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 163398 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=163398&amp;action=review
&gt; 
&gt; &gt; Source/WTF/wtf/text/StringImpl.h:723
&gt; &gt; +        // count size used by internal buffer but skip strings that were constructed from literals.
&gt; 
&gt; count -&gt; Count

Done

&gt; 
&gt; &gt; Source/WTF/wtf/text/StringImpl.h:731
&gt; &gt; +        typename MemoryObjectInfo::ClassInfo info(memoryObjectInfo, this, 0, selfSize);
&gt; 
&gt; You should be consistent in using either constant MemoryObjectType::Unknown or 0 everywhere.

Ok I think we can use 0 everywhere otherwise I need to have a separate header file for generic memory types and cpp file for the value.

&gt; 
&gt; &gt; Source/WTF/wtf/text/StringImpl.h:735
&gt; &gt; +        else if (m_hashAndFlags &amp; s_hashFlagHas16BitShadow) // Substrings never have it&apos;s own shadow.
&gt; 
&gt; typo: Substring never has its own shadow.

Done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>718081</commentid>
    <comment_count>6</comment_count>
    <who name="Ilya Tikhonovsky">loislo</who>
    <bug_when>2012-09-12 02:13:06 -0700</bug_when>
    <thetext>Committed r128279: &lt;http://trac.webkit.org/changeset/128279&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>718110</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-09-12 02:39:55 -0700</bug_when>
    <thetext>Re-opened since this is blocked by 96487</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>718236</commentid>
    <comment_count>8</comment_count>
      <attachid>163546</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-09-12 05:26:38 -0700</bug_when>
    <thetext>Comment on attachment 163546
Patch

Attachment 163546 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/13811919

New failing tests:
MemoryInstrumentationTest.visitFirstMemberInNonVirtualClass
MemoryInstrumentationTest.dataRef
MemoryInstrumentationTest.sizeOf
inspector/profiler/memory-instrumentation-cached-images.html
MemoryInstrumentationTest.ptrVsRef
MemoryInstrumentationTest.refPtr
MemoryInstrumentationTest.ownerTypePropagation
MemoryInstrumentationTest.ownPtr
MemoryInstrumentationTest.ownPtrNotInstrumented
MemoryInstrumentationTest.visitStrings</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>718267</commentid>
    <comment_count>9</comment_count>
    <who name="Ilya Tikhonovsky">loislo</who>
    <bug_when>2012-09-12 05:49:52 -0700</bug_when>
    <thetext>Committed r128300: &lt;http://trac.webkit.org/changeset/128300&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>163398</attachid>
            <date>2012-09-11 10:25:18 -0700</date>
            <delta_ts>2012-09-12 01:46:42 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-96405-20120911212452.patch</filename>
            <type>text/plain</type>
            <size>13332</size>
            <attacher name="Ilya Tikhonovsky">loislo</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI4MjAxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDRlNjJhZGYyMWY3N2MwYzRmYjkxNGRm
NjRmYjMxOWUyNWI5ZTJiYjkuLmVkMWMyOGJmN2Q0MTkxMjg2MDQ5NDQwZTM0NWY0ZWU2MDU4NTZm
NjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMjQgQEAKKzIwMTItMDktMTEgIElseWEgVGlraG9ub3Zza3kgIDxs
b2lzbG9AY2hyb21pdW0ub3JnPgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IE5NSSBtb3ZlIFN0
cmluZyogaW5zdHJ1bWVudGF0aW9uIHRvIHd0Zi4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTk2NDA1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgVGhpcyBpbnN0cnVtZW50YXRpb24gaXMgc29sdmluZyB0aGUg
cHJvYmxlbSB3aXRoIHN1YnN0cmluZ3MgYW5kIHJlbW92ZXMgdHJhaXRzIGJhc2VkIGNvZGUgd2hp
Y2ggaXMgaGFyZCB0byB1cHN0cmVhbS4KKworICAgICAgICBUZXN0ZWQgYnkgd2Via2l0X3VuaXRf
dGVzdHMuCisKKyAgICAgICAgKiB3dGYvdGV4dC9BdG9taWNTdHJpbmcuaDoKKyAgICAgICAgKEF0
b21pY1N0cmluZyk6CisgICAgICAgIChXVEY6OkF0b21pY1N0cmluZzo6cmVwb3J0TWVtb3J5VXNh
Z2UpOgorICAgICAgICAqIHd0Zi90ZXh0L1N0cmluZ0ltcGwuaDoKKyAgICAgICAgKFN0cmluZ0lt
cGwpOgorICAgICAgICAoV1RGOjpTdHJpbmdJbXBsOjpyZXBvcnRNZW1vcnlVc2FnZSk6CisgICAg
ICAgICogd3RmL3RleHQvV1RGU3RyaW5nLmg6CisgICAgICAgIChTdHJpbmcpOgorICAgICAgICAo
V1RGOjpTdHJpbmc6OnJlcG9ydE1lbW9yeVVzYWdlKToKKwogMjAxMi0wOS0xMSAgUmFwaGFlbCBL
dWJvIGRhIENvc3RhICA8cmFrdWNvQHdlYmtpdC5vcmc+CiAKICAgICAgICAgW0VGTF0gUmV3cml0
ZSB0aGUgRUZMLXJlbGF0ZWQgRmluZCBtb2R1bGVzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZWEzZTM2M2MwYzJl
Y2EwZWM2ZTVjYmU4MjQ5YjY3ZDNhMTAwODE1Yy4uZjg5ZTE4YmRkODk1NTI5YThiMDg2YWI0NWQ0
ZWU2MmMzNGRiMWUxOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDEyLTA5LTExICBJ
bHlhIFRpa2hvbm92c2t5ICA8bG9pc2xvQGNocm9taXVtLm9yZz4KKworCisgICAgICAgIFdlYiBJ
bnNwZWN0b3I6IE5NSSBtb3ZlIFN0cmluZyogaW5zdHJ1bWVudGF0aW9uIHRvIHd0Zi4KKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk2NDA1CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBpbnN0cnVtZW50
YXRpb24gaXMgc29sdmluZyB0aGUgcHJvYmxlbSB3aXRoIHN1YnN0cmluZ3MgYW5kIHJlbW92ZXMg
dHJhaXRzIGJhc2VkIGNvZGUgd2hpY2ggaXMgaGFyZCB0byB1cHN0cmVhbS4KKworICAgICAgICAq
IGRvbS9XZWJDb3JlTWVtb3J5SW5zdHJ1bWVudGF0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmUp
OgorICAgICAgICAqIGRvbS9XZWJDb3JlTWVtb3J5SW5zdHJ1bWVudGF0aW9uLmg6CisgICAgICAg
IChXZWJDb3JlKToKKwogMjAxMi0wOS0xMSAgVG9ueSBDaGFuZyAgPHRvbnlAY2hyb21pdW0ub3Jn
PgogCiAgICAgICAgIFJlbmFtZSBjb21wdXRlTG9naWNhbEhlaWdodCB0byB1cGRhdGVMb2dpY2Fs
SGVpZ2h0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZyBiL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4IDM1ZWI2MTI3OWY1NmMyYWJjOWY5
YjM1OTQ3M2E3NjViZjU5ZWFhYzIuLjc2ZTY0MzY2OTUwZDIxYmJmYzgxZjQxZGJiMWZhNGU2YTlm
N2UyZWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTIt
MDktMTEgIElseWEgVGlraG9ub3Zza3kgIDxsb2lzbG9AY2hyb21pdW0ub3JnPgorCisgICAgICAg
IFdlYiBJbnNwZWN0b3I6IE5NSSBtb3ZlIFN0cmluZyogaW5zdHJ1bWVudGF0aW9uIHRvIHd0Zi4K
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk2NDA1CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBpbnN0
cnVtZW50YXRpb24gaXMgc29sdmluZyB0aGUgcHJvYmxlbSB3aXRoIHN1YnN0cmluZ3MgYW5kIHJl
bW92ZXMgdHJhaXRzIGJhc2VkIGNvZGUgd2hpY2ggaXMgaGFyZCB0byB1cHN0cmVhbS4KKworICAg
ICAgICBUZXN0ZWQgYnkgd2Via2l0X3VuaXRfdGVzdHMuCisKKyAgICAgICAgKiB0ZXN0cy9NZW1v
cnlJbnN0cnVtZW50YXRpb25UZXN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRFU1QpOgorCiAy
MDEyLTA5LTExICBJYWluIE1lcnJpY2sgIDxodXNreUBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAg
W2Nocm9taXVtXSBGaXggZG91YmxlIGNhbGwgdG8gc2Nyb2xsQmVnaW4oKSB3aGVuIGhhbmRsaW5n
IHNjcm9sbCBnZXN0dXJlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0F0b21pY1N0
cmluZy5oIGIvU291cmNlL1dURi93dGYvdGV4dC9BdG9taWNTdHJpbmcuaAppbmRleCBlZmQ0ZTJl
OGM1NjVlNWYwNmUxYmQwNjJjZmQyZTEyNmQxYjQzYmE2Li45YjNjOTNlMjFmNGVlYzZhM2M0OGU4
NjA2YmY0MjBiM2FkNWU0MDg0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0F0b21p
Y1N0cmluZy5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL3RleHQvQXRvbWljU3RyaW5nLmgKQEAgLTE1
NCw2ICsxNTQsMTQgQEAgcHVibGljOgogI2lmbmRlZiBOREVCVUcKICAgICB2b2lkIHNob3coKSBj
b25zdDsKICNlbmRpZgorCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgTWVtb3J5T2JqZWN0SW5mbz4K
KyAgICB2b2lkIHJlcG9ydE1lbW9yeVVzYWdlKE1lbW9yeU9iamVjdEluZm8qIG1lbW9yeU9iamVj
dEluZm8pIGNvbnN0CisgICAgeworICAgICAgICB0eXBlbmFtZSBNZW1vcnlPYmplY3RJbmZvOjpD
bGFzc0luZm8gaW5mbyhtZW1vcnlPYmplY3RJbmZvLCB0aGlzKTsKKyAgICAgICAgaW5mby5hZGRJ
bnN0cnVtZW50ZWRNZW1iZXIobV9zdHJpbmcpOworICAgIH0KKyAgICAKIHByaXZhdGU6CiAgICAg
Ly8gVGhlIGV4cGxpY2l0IGNvbnN0cnVjdG9ycyB3aXRoIEF0b21pY1N0cmluZzo6Q29uc3RydWN0
RnJvbUxpdGVyYWwgbXVzdCBiZSB1c2VkIGZvciBsaXRlcmFscy4KICAgICBBdG9taWNTdHJpbmco
QVNDSUlMaXRlcmFsKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3RleHQvU3RyaW5nSW1w
bC5oIGIvU291cmNlL1dURi93dGYvdGV4dC9TdHJpbmdJbXBsLmgKaW5kZXggY2Q3ZTEwY2M1OWQ2
MmMxNDExOWJkOTE5YWFjNDk3MDFlMWFkMGFlZC4uOTQyNWZlODIyODQxNDViYWQzYTlmYTBhNDcz
Mjc0MGU3MzBmY2ExNSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvdGV4dC9TdHJpbmdJbXBs
LmgKKysrIGIvU291cmNlL1dURi93dGYvdGV4dC9TdHJpbmdJbXBsLmgKQEAgLTcxNCw2ICs3MTQs
MjggQEAgcHVibGljOgogI2lmZGVmIFNUUklOR19TVEFUUwogICAgIEFMV0FZU19JTkxJTkUgc3Rh
dGljIFN0cmluZ1N0YXRzJiBzdHJpbmdTdGF0cygpIHsgcmV0dXJuIG1fc3RyaW5nU3RhdHM7IH0K
ICNlbmRpZgorCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgTWVtb3J5T2JqZWN0SW5mbz4KKyAgICB2
b2lkIHJlcG9ydE1lbW9yeVVzYWdlKE1lbW9yeU9iamVjdEluZm8qIG1lbW9yeU9iamVjdEluZm8p
IGNvbnN0CisgICAgeworICAgICAgICBzaXplX3Qgc2VsZlNpemUgPSBzaXplb2YoU3RyaW5nSW1w
bCk7CisKKyAgICAgICAgLy8gY291bnQgc2l6ZSB1c2VkIGJ5IGludGVybmFsIGJ1ZmZlciBidXQg
c2tpcCBzdHJpbmdzIHRoYXQgd2VyZSBjb25zdHJ1Y3RlZCBmcm9tIGxpdGVyYWxzLgorICAgICAg
ICBpZiAoKG1faGFzaEFuZEZsYWdzICYgQnVmZmVySW50ZXJuYWwpICYmICFoYXNUZXJtaW5hdGlu
Z051bGxDaGFyYWN0ZXIoKSkKKyAgICAgICAgICAgIC8vIFRocmVlIGNhc2VzIGFyZSBjb3ZlcmVk
IGhlcmU6CisgICAgICAgICAgICAvLyAxKSBhIG5vcm1hbCA4LWJpdCBzdHJpbmcgd2l0aCBpbnRl
cm5hbCBzdG9yYWdlIChCdWZmZXJJbnRlcm5hbCkKKyAgICAgICAgICAgIC8vIDIpIGEgbm9ybWFs
IDE2LWJpdCBzdHJpbmcgd2l0aCBpbnRlcm5hbCBzdG9yYWdlIChCdWZmZXJJbnRlcm5hbCkKKyAg
ICAgICAgICAgIC8vIDMpIGVtcHR5IHVuaXF1ZSBzdHJpbmcgd2l0aCBsZW5ndGggPSAwIChCdWZm
ZXJJbnRlcm5hbCkKKyAgICAgICAgICAgIHNlbGZTaXplICs9IG1fbGVuZ3RoICogKG1faGFzaEFu
ZEZsYWdzICYgc19oYXNoRmxhZzhCaXRCdWZmZXIgPyBzaXplb2YoTENoYXIpIDogc2l6ZW9mKFVD
aGFyKSk7CisKKyAgICAgICAgdHlwZW5hbWUgTWVtb3J5T2JqZWN0SW5mbzo6Q2xhc3NJbmZvIGlu
Zm8obWVtb3J5T2JqZWN0SW5mbywgdGhpcywgMCwgc2VsZlNpemUpOworCisgICAgICAgIGlmICht
X2hhc2hBbmRGbGFncyAmIEJ1ZmZlclN1YnN0cmluZykKKyAgICAgICAgICAgIGluZm8uYWRkSW5z
dHJ1bWVudGVkTWVtYmVyKG1fc3Vic3RyaW5nQnVmZmVyKTsKKyAgICAgICAgZWxzZSBpZiAobV9o
YXNoQW5kRmxhZ3MgJiBzX2hhc2hGbGFnSGFzMTZCaXRTaGFkb3cpIC8vIFN1YnN0cmluZ3MgbmV2
ZXIgaGF2ZSBpdCdzIG93biBzaGFkb3cuCisgICAgICAgICAgICBpbmZvLmFkZFJhd0J1ZmZlciht
X2NvcHlEYXRhMTYsIChtX2xlbmd0aCArIChoYXNUZXJtaW5hdGluZ051bGxDaGFyYWN0ZXIoKSA/
IDEgOiAwKSkgKiBzaXplb2YoVUNoYXIpKTsKKyAgICB9CisKIHByaXZhdGU6CiAgICAgLy8gVGhp
cyBudW1iZXIgbXVzdCBiZSBhdCBsZWFzdCAyIHRvIGF2b2lkIHNoYXJpbmcgZW1wdHksIG51bGwg
YXMgd2VsbCBhcyAxIGNoYXJhY3RlciBzdHJpbmdzIGZyb20gU21hbGxTdHJpbmdzLgogICAgIHN0
YXRpYyBjb25zdCB1bnNpZ25lZCBzX2NvcHlDaGFyc0lubGluZUN1dE9mZiA9IDIwOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dURi93dGYvdGV4dC9XVEZTdHJpbmcuaCBiL1NvdXJjZS9XVEYvd3RmL3Rl
eHQvV1RGU3RyaW5nLmgKaW5kZXggNjM2ZGI5Y2Q5MjFkMDc2NGYxYTZiYmU3MjA4ZTU3MjQ1NjUz
MDY0MS4uYjdiZDk2YzE3ZjZhZTcwOGYxY2JmZWU0NWZlMTAxYTcyYjg1NDdjNCAxMDA2NDQKLS0t
IGEvU291cmNlL1dURi93dGYvdGV4dC9XVEZTdHJpbmcuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi90
ZXh0L1dURlN0cmluZy5oCkBAIC00NTUsNiArNDU1LDEzIEBAIHB1YmxpYzoKICAgICAgICAgcmV0
dXJuICgqbV9pbXBsKVtpbmRleF07CiAgICAgfQogCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgTWVt
b3J5T2JqZWN0SW5mbz4KKyAgICB2b2lkIHJlcG9ydE1lbW9yeVVzYWdlKE1lbW9yeU9iamVjdElu
Zm8qIG1lbW9yeU9iamVjdEluZm8pIGNvbnN0CisgICAgeworICAgICAgICB0eXBlbmFtZSBNZW1v
cnlPYmplY3RJbmZvOjpDbGFzc0luZm8gaW5mbyhtZW1vcnlPYmplY3RJbmZvLCB0aGlzKTsKKyAg
ICAgICAgaW5mby5hZGRJbnN0cnVtZW50ZWRNZW1iZXIobV9pbXBsKTsKKyAgICB9CisKIHByaXZh
dGU6CiAgICAgUmVmUHRyPFN0cmluZ0ltcGw+IG1faW1wbDsKIH07CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9kb20vV2ViQ29yZU1lbW9yeUluc3RydW1lbnRhdGlvbi5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vV2ViQ29yZU1lbW9yeUluc3RydW1lbnRhdGlvbi5jcHAKaW5kZXggNGNlMGRm
MjgyODg5MGFlYmY0YjQ4NGEyODczM2JjZTNkOTI3NzE3Ni4uN2Y2Zjk4Zjk0MmI2YTI3YjgxZGQ2
NTU1OGQ0NjE2OWQ5NmZmMGNlOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1dlYkNv
cmVNZW1vcnlJbnN0cnVtZW50YXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9XZWJD
b3JlTWVtb3J5SW5zdHJ1bWVudGF0aW9uLmNwcApAQCAtNTcsMzIgKzU3LDYgQEAgTWVtb3J5T2Jq
ZWN0VHlwZSBXZWJDb3JlTWVtb3J5VHlwZXM6OkNhY2hlZFJlc291cmNlU1ZHID0gIk1lbW9yeUNh
Y2hlLlNWRyI7CiBNZW1vcnlPYmplY3RUeXBlIFdlYkNvcmVNZW1vcnlUeXBlczo6Q2FjaGVkUmVz
b3VyY2VTaGFkZXIgPSAiTWVtb3J5Q2FjaGUuU2hhZGVyIjsKIE1lbW9yeU9iamVjdFR5cGUgV2Vi
Q29yZU1lbW9yeVR5cGVzOjpDYWNoZWRSZXNvdXJjZVhTTFQgPSAiTWVtb3J5Q2FjaGUuWFNMVCI7
CiAKLXRlbXBsYXRlPD4gdm9pZCBNZW1vcnlJbnN0cnVtZW50YXRpb25UcmFpdHM6OmFkZEluc3Ry
dW1lbnRlZE9iamVjdDxTdHJpbmc+KE1lbW9yeUluc3RydW1lbnRhdGlvbiogaW5zdHJ1bWVudGF0
aW9uLCBjb25zdCBTdHJpbmcqIGNvbnN0JiBzdHJpbmcsIE1lbW9yeU9iamVjdFR5cGUgb3duZXJP
YmplY3RUeXBlLCBNZW1vcnlPd25pbmdUeXBlIG93bmluZ1R5cGUpCi17Ci0gICAgTWVtb3J5SW5z
dHJ1bWVudGF0aW9uVHJhaXRzOjphZGRJbnN0cnVtZW50ZWRPYmplY3Q8Y29uc3QgU3RyaW5nPihp
bnN0cnVtZW50YXRpb24sIHN0cmluZywgb3duZXJPYmplY3RUeXBlLCBvd25pbmdUeXBlKTsKLX0K
LQotdGVtcGxhdGU8PiB2b2lkIE1lbW9yeUluc3RydW1lbnRhdGlvblRyYWl0czo6YWRkSW5zdHJ1
bWVudGVkT2JqZWN0PGNvbnN0IFN0cmluZz4oTWVtb3J5SW5zdHJ1bWVudGF0aW9uKiBpbnN0cnVt
ZW50YXRpb24sIGNvbnN0IFN0cmluZyogY29uc3QmIHN0cmluZywgTWVtb3J5T2JqZWN0VHlwZSBv
d25lck9iamVjdFR5cGUsIE1lbW9yeU93bmluZ1R5cGUgb3duaW5nVHlwZSkKLXsKLSAgICBpZiAo
IXN0cmluZyB8fCBpbnN0cnVtZW50YXRpb24tPnZpc2l0ZWQoc3RyaW5nKSkKLSAgICAgICAgcmV0
dXJuOwotICAgIGlmIChvd25pbmdUeXBlID09IGJ5UG9pbnRlcikKLSAgICAgICAgaW5zdHJ1bWVu
dGF0aW9uLT5jb3VudE9iamVjdFNpemUob3duZXJPYmplY3RUeXBlLCBzaXplb2YoU3RyaW5nKSk7
Ci0gICAgaW5zdHJ1bWVudGF0aW9uLT5hZGRJbnN0cnVtZW50ZWRPYmplY3Qoc3RyaW5nLT5pbXBs
KCksIG93bmVyT2JqZWN0VHlwZSk7Ci19Ci0KLXRlbXBsYXRlPD4gdm9pZCBNZW1vcnlJbnN0cnVt
ZW50YXRpb25UcmFpdHM6OmFkZEluc3RydW1lbnRlZE9iamVjdDxTdHJpbmdJbXBsPihNZW1vcnlJ
bnN0cnVtZW50YXRpb24qIGluc3RydW1lbnRhdGlvbiwgY29uc3QgU3RyaW5nSW1wbCogY29uc3Qm
IHN0cmluZ0ltcGwsIE1lbW9yeU9iamVjdFR5cGUgb3duZXJPYmplY3RUeXBlLCBNZW1vcnlPd25p
bmdUeXBlIG93bmluZ1R5cGUpCi17Ci0gICAgTWVtb3J5SW5zdHJ1bWVudGF0aW9uVHJhaXRzOjph
ZGRJbnN0cnVtZW50ZWRPYmplY3Q8Y29uc3QgU3RyaW5nSW1wbD4oaW5zdHJ1bWVudGF0aW9uLCBz
dHJpbmdJbXBsLCBvd25lck9iamVjdFR5cGUsIG93bmluZ1R5cGUpOwotfQotCi10ZW1wbGF0ZTw+
IHZvaWQgTWVtb3J5SW5zdHJ1bWVudGF0aW9uVHJhaXRzOjphZGRJbnN0cnVtZW50ZWRPYmplY3Q8
Y29uc3QgU3RyaW5nSW1wbD4oTWVtb3J5SW5zdHJ1bWVudGF0aW9uKiBpbnN0cnVtZW50YXRpb24s
IGNvbnN0IFN0cmluZ0ltcGwqIGNvbnN0JiBzdHJpbmdJbXBsLCBNZW1vcnlPYmplY3RUeXBlIG93
bmVyT2JqZWN0VHlwZSwgTWVtb3J5T3duaW5nVHlwZSkKLXsKLSAgICBpZiAoIXN0cmluZ0ltcGwg
fHwgaW5zdHJ1bWVudGF0aW9uLT52aXNpdGVkKHN0cmluZ0ltcGwpKQotICAgICAgICByZXR1cm47
Ci0gICAgaW5zdHJ1bWVudGF0aW9uLT5jb3VudE9iamVjdFNpemUob3duZXJPYmplY3RUeXBlLCBz
dHJpbmdJbXBsLT5zaXplSW5CeXRlcygpKTsKLX0KLQogdGVtcGxhdGU8PiB2b2lkIE1lbW9yeUlu
c3RydW1lbnRhdGlvblRyYWl0czo6YWRkSW5zdHJ1bWVudGVkT2JqZWN0PEtVUkw+KE1lbW9yeUlu
c3RydW1lbnRhdGlvbiogaW5zdHJ1bWVudGF0aW9uLCBjb25zdCBLVVJMKiBjb25zdCYgdXJsLCBN
ZW1vcnlPYmplY3RUeXBlIG93bmVyT2JqZWN0VHlwZSwgTWVtb3J5T3duaW5nVHlwZSBvd25pbmdU
eXBlKQogewogICAgIE1lbW9yeUluc3RydW1lbnRhdGlvblRyYWl0czo6YWRkSW5zdHJ1bWVudGVk
T2JqZWN0PGNvbnN0IEtVUkw+KGluc3RydW1lbnRhdGlvbiwgdXJsLCBvd25lck9iamVjdFR5cGUs
IG93bmluZ1R5cGUpOwpAQCAtOTksMTQgKzczLDQgQEAgdGVtcGxhdGU8PiB2b2lkIE1lbW9yeUlu
c3RydW1lbnRhdGlvblRyYWl0czo6YWRkSW5zdHJ1bWVudGVkT2JqZWN0PGNvbnN0IEtVUkw+KE0K
ICAgICAgICAgaW5zdHJ1bWVudGF0aW9uLT5hZGRJbnN0cnVtZW50ZWRPYmplY3QodXJsLT5pbm5l
clVSTCgpLCBvd25lck9iamVjdFR5cGUpOwogfQogCi10ZW1wbGF0ZTw+IHZvaWQgTWVtb3J5SW5z
dHJ1bWVudGF0aW9uVHJhaXRzOjphZGRJbnN0cnVtZW50ZWRPYmplY3Q8QXRvbWljU3RyaW5nPihN
ZW1vcnlJbnN0cnVtZW50YXRpb24qIGluc3RydW1lbnRhdGlvbiwgY29uc3QgQXRvbWljU3RyaW5n
KiBjb25zdCYgYXRvbWljU3RyaW5nLCBNZW1vcnlPYmplY3RUeXBlIG93bmVyT2JqZWN0VHlwZSwg
TWVtb3J5T3duaW5nVHlwZSBvd25pbmdUeXBlKQotewotICAgIE1lbW9yeUluc3RydW1lbnRhdGlv
blRyYWl0czo6YWRkSW5zdHJ1bWVudGVkT2JqZWN0PGNvbnN0IEF0b21pY1N0cmluZz4oaW5zdHJ1
bWVudGF0aW9uLCBhdG9taWNTdHJpbmcsIG93bmVyT2JqZWN0VHlwZSwgb3duaW5nVHlwZSk7Ci19
Ci0KLXRlbXBsYXRlPD4gdm9pZCBNZW1vcnlJbnN0cnVtZW50YXRpb25UcmFpdHM6OmFkZEluc3Ry
dW1lbnRlZE9iamVjdDxjb25zdCBBdG9taWNTdHJpbmc+KE1lbW9yeUluc3RydW1lbnRhdGlvbiog
aW5zdHJ1bWVudGF0aW9uLCBjb25zdCBBdG9taWNTdHJpbmcqIGNvbnN0JiBhdG9taWNTdHJpbmcs
IE1lbW9yeU9iamVjdFR5cGUgb3duZXJPYmplY3RUeXBlLCBNZW1vcnlPd25pbmdUeXBlIG93bmlu
Z1R5cGUpCi17Ci0gICAgTWVtb3J5SW5zdHJ1bWVudGF0aW9uVHJhaXRzOjphZGRJbnN0cnVtZW50
ZWRPYmplY3Q8Y29uc3QgU3RyaW5nPihpbnN0cnVtZW50YXRpb24sIHJlaW50ZXJwcmV0X2Nhc3Q8
Y29uc3QgU3RyaW5nKiBjb25zdD4oYXRvbWljU3RyaW5nKSwgb3duZXJPYmplY3RUeXBlLCBvd25p
bmdUeXBlKTsKLX0KLQogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvZG9tL1dlYkNvcmVNZW1vcnlJbnN0cnVtZW50YXRpb24uaCBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9XZWJDb3JlTWVtb3J5SW5zdHJ1bWVudGF0aW9uLmgKaW5kZXggOWQ2ODg1NDNlYmVk
MzM3NjEwMTgxZTQwODA3ZmMwOWJkY2VjOGZjYS4uMjBiZjMzYTQ1ZjIzOWY2Y2FiYTA3MTUzYWEy
ZGZhNjNjZTU4NjFmOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1dlYkNvcmVNZW1v
cnlJbnN0cnVtZW50YXRpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vV2ViQ29yZU1lbW9y
eUluc3RydW1lbnRhdGlvbi5oCkBAIC00MiwyOSArNDIsMTAgQEAgY2xhc3MgS1VSTDsKIHRlbXBs
YXRlPD4gdm9pZCBNZW1vcnlJbnN0cnVtZW50YXRpb25UcmFpdHM6OmFkZEluc3RydW1lbnRlZE9i
amVjdDxLVVJMPihNZW1vcnlJbnN0cnVtZW50YXRpb24qLCBjb25zdCBLVVJMKiBjb25zdCYsIE1l
bW9yeU9iamVjdFR5cGUsIE1lbW9yeU93bmluZ1R5cGUpOwogdGVtcGxhdGU8PiB2b2lkIE1lbW9y
eUluc3RydW1lbnRhdGlvblRyYWl0czo6YWRkSW5zdHJ1bWVudGVkT2JqZWN0PGNvbnN0IEtVUkw+
KE1lbW9yeUluc3RydW1lbnRhdGlvbiosIGNvbnN0IEtVUkwqIGNvbnN0JiwgTWVtb3J5T2JqZWN0
VHlwZSwgTWVtb3J5T3duaW5nVHlwZSk7CiAKLXRlbXBsYXRlPD4gdm9pZCBNZW1vcnlJbnN0cnVt
ZW50YXRpb25UcmFpdHM6OmFkZEluc3RydW1lbnRlZE9iamVjdDxTdHJpbmc+KE1lbW9yeUluc3Ry
dW1lbnRhdGlvbiosIGNvbnN0IFN0cmluZyogY29uc3QmLCBNZW1vcnlPYmplY3RUeXBlLCBNZW1v
cnlPd25pbmdUeXBlKTsKLXRlbXBsYXRlPD4gdm9pZCBNZW1vcnlJbnN0cnVtZW50YXRpb25UcmFp
dHM6OmFkZEluc3RydW1lbnRlZE9iamVjdDxjb25zdCBTdHJpbmc+KE1lbW9yeUluc3RydW1lbnRh
dGlvbiosIGNvbnN0IFN0cmluZyogY29uc3QmLCBNZW1vcnlPYmplY3RUeXBlLCBNZW1vcnlPd25p
bmdUeXBlKTsKLQotdGVtcGxhdGU8PiB2b2lkIE1lbW9yeUluc3RydW1lbnRhdGlvblRyYWl0czo6
YWRkSW5zdHJ1bWVudGVkT2JqZWN0PFN0cmluZ0ltcGw+KE1lbW9yeUluc3RydW1lbnRhdGlvbios
IGNvbnN0IFN0cmluZ0ltcGwqIGNvbnN0JiwgTWVtb3J5T2JqZWN0VHlwZSwgTWVtb3J5T3duaW5n
VHlwZSk7Ci10ZW1wbGF0ZTw+IHZvaWQgTWVtb3J5SW5zdHJ1bWVudGF0aW9uVHJhaXRzOjphZGRJ
bnN0cnVtZW50ZWRPYmplY3Q8Y29uc3QgU3RyaW5nSW1wbD4oTWVtb3J5SW5zdHJ1bWVudGF0aW9u
KiwgY29uc3QgU3RyaW5nSW1wbCogY29uc3QmLCBNZW1vcnlPYmplY3RUeXBlLCBNZW1vcnlPd25p
bmdUeXBlKTsKLQotdGVtcGxhdGU8PiB2b2lkIE1lbW9yeUluc3RydW1lbnRhdGlvblRyYWl0czo6
YWRkSW5zdHJ1bWVudGVkT2JqZWN0PEF0b21pY1N0cmluZz4oTWVtb3J5SW5zdHJ1bWVudGF0aW9u
KiwgY29uc3QgQXRvbWljU3RyaW5nKiBjb25zdCYsIE1lbW9yeU9iamVjdFR5cGUsIE1lbW9yeU93
bmluZ1R5cGUpOwotdGVtcGxhdGU8PiB2b2lkIE1lbW9yeUluc3RydW1lbnRhdGlvblRyYWl0czo6
YWRkSW5zdHJ1bWVudGVkT2JqZWN0PGNvbnN0IEF0b21pY1N0cmluZz4oTWVtb3J5SW5zdHJ1bWVu
dGF0aW9uKiwgY29uc3QgQXRvbWljU3RyaW5nKiBjb25zdCYsIE1lbW9yeU9iamVjdFR5cGUsIE1l
bW9yeU93bmluZ1R5cGUpOwotCi0KIC8vIExpbmsgdGltZSBndWFyZHMgd2l0aCBubyBib2R5Lgog
dGVtcGxhdGU8PiB2b2lkIE1lbW9yeUluc3RydW1lbnRhdGlvblRyYWl0czo6YWRkT2JqZWN0PEtV
Ukw+KE1lbW9yeUluc3RydW1lbnRhdGlvbiosIGNvbnN0IEtVUkwqIGNvbnN0JiwgTWVtb3J5T2Jq
ZWN0VHlwZSwgTWVtb3J5T3duaW5nVHlwZSk7CiB0ZW1wbGF0ZTw+IHZvaWQgTWVtb3J5SW5zdHJ1
bWVudGF0aW9uVHJhaXRzOjphZGRPYmplY3Q8Y29uc3QgS1VSTD4oTWVtb3J5SW5zdHJ1bWVudGF0
aW9uKiwgY29uc3QgS1VSTCogY29uc3QmLCBNZW1vcnlPYmplY3RUeXBlLCBNZW1vcnlPd25pbmdU
eXBlKTsKIAotdGVtcGxhdGU8PiB2b2lkIE1lbW9yeUluc3RydW1lbnRhdGlvblRyYWl0czo6YWRk
T2JqZWN0PFN0cmluZz4oTWVtb3J5SW5zdHJ1bWVudGF0aW9uKiwgY29uc3QgU3RyaW5nKiBjb25z
dCYsIE1lbW9yeU9iamVjdFR5cGUsIE1lbW9yeU93bmluZ1R5cGUpOwotdGVtcGxhdGU8PiB2b2lk
IE1lbW9yeUluc3RydW1lbnRhdGlvblRyYWl0czo6YWRkT2JqZWN0PGNvbnN0IFN0cmluZz4oTWVt
b3J5SW5zdHJ1bWVudGF0aW9uKiwgY29uc3QgU3RyaW5nKiBjb25zdCYsIE1lbW9yeU9iamVjdFR5
cGUsIE1lbW9yeU93bmluZ1R5cGUpOwotCi10ZW1wbGF0ZTw+IHZvaWQgTWVtb3J5SW5zdHJ1bWVu
dGF0aW9uVHJhaXRzOjphZGRPYmplY3Q8U3RyaW5nSW1wbD4oTWVtb3J5SW5zdHJ1bWVudGF0aW9u
KiwgY29uc3QgU3RyaW5nSW1wbCogY29uc3QmLCBNZW1vcnlPYmplY3RUeXBlLCBNZW1vcnlPd25p
bmdUeXBlKTsKLXRlbXBsYXRlPD4gdm9pZCBNZW1vcnlJbnN0cnVtZW50YXRpb25UcmFpdHM6OmFk
ZE9iamVjdDxjb25zdCBTdHJpbmdJbXBsPihNZW1vcnlJbnN0cnVtZW50YXRpb24qLCBjb25zdCBT
dHJpbmdJbXBsKiBjb25zdCYsIE1lbW9yeU9iamVjdFR5cGUsIE1lbW9yeU93bmluZ1R5cGUpOwot
Ci10ZW1wbGF0ZTw+IHZvaWQgTWVtb3J5SW5zdHJ1bWVudGF0aW9uVHJhaXRzOjphZGRPYmplY3Q8
QXRvbWljU3RyaW5nPihNZW1vcnlJbnN0cnVtZW50YXRpb24qLCBjb25zdCBBdG9taWNTdHJpbmcq
IGNvbnN0JiwgTWVtb3J5T2JqZWN0VHlwZSwgTWVtb3J5T3duaW5nVHlwZSk7Ci10ZW1wbGF0ZTw+
IHZvaWQgTWVtb3J5SW5zdHJ1bWVudGF0aW9uVHJhaXRzOjphZGRPYmplY3Q8Y29uc3QgQXRvbWlj
U3RyaW5nPihNZW1vcnlJbnN0cnVtZW50YXRpb24qLCBjb25zdCBBdG9taWNTdHJpbmcqIGNvbnN0
JiwgTWVtb3J5T2JqZWN0VHlwZSwgTWVtb3J5T3duaW5nVHlwZSk7Ci0KIGNsYXNzIFdlYkNvcmVN
ZW1vcnlUeXBlcyB7CiBwdWJsaWM6CiAgICAgc3RhdGljIE1lbW9yeU9iamVjdFR5cGUgUGFnZTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvTWVtb3J5SW5zdHJ1bWVu
dGF0aW9uVGVzdC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL01lbW9yeUluc3Ry
dW1lbnRhdGlvblRlc3QuY3BwCmluZGV4IDUxYjIwMGFkZWFiMGMxZTBmYjU3NWNhZmI5YTNjODFm
ZDVhMGVhN2EuLmRkZGViNDk3MWUxZmVjZWIxMGM3MzdhMDAzNGNkOGRkMGJkYmUxNDcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvTWVtb3J5SW5zdHJ1bWVudGF0aW9u
VGVzdC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9NZW1vcnlJbnN0cnVt
ZW50YXRpb25UZXN0LmNwcApAQCAtMjQ1LDggKzI0NSw5IEBAIFRFU1QoTWVtb3J5SW5zdHJ1bWVu
dGF0aW9uVGVzdCwgdmlzaXRTdHJpbmdzKQogICAgIFZpc2l0ZWRPYmplY3RzIHZpc2l0ZWRPYmpl
Y3RzOwogICAgIE1lbW9yeUluc3RydW1lbnRhdGlvbkltcGwgaW1wbCh2aXNpdGVkT2JqZWN0cyk7
CiAgICAgU3RyaW5nT3duZXJJbnN0cnVtZW50ZWQgc3RyaW5nT3duZXJJbnN0cnVtZW50ZWQ7Cisg
ICAgc3RyaW5nT3duZXJJbnN0cnVtZW50ZWQubV9uYW1lLmNoYXJhY3RlcnMoKTsgLy8gRm9yY2Ug
MTZiaXQgc2hhZG93IGNyZWF0aW9uLgogICAgIGltcGwuYWRkUm9vdE9iamVjdChzdHJpbmdPd25l
ckluc3RydW1lbnRlZCk7Ci0gICAgRVhQRUNUX0VRKHN0cmluZ093bmVySW5zdHJ1bWVudGVkLm1f
bmFtZS5pbXBsKCktPnNpemVJbkJ5dGVzKCksIGltcGwucmVwb3J0ZWRTaXplRm9yQWxsVHlwZXMo
KSk7CisgICAgRVhQRUNUX0VRKHNpemVvZihTdHJpbmdJbXBsKSArIHN0cmluZ093bmVySW5zdHJ1
bWVudGVkLm1fbmFtZS5sZW5ndGgoKSAqIDIsIGltcGwucmVwb3J0ZWRTaXplRm9yQWxsVHlwZXMo
KSk7CiAgICAgRVhQRUNUX0VRKDIsIHZpc2l0ZWRPYmplY3RzLnNpemUoKSk7CiB9CiAK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>163546</attachid>
            <date>2012-09-12 01:46:50 -0700</date>
            <delta_ts>2012-09-12 05:26:38 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-96405-20120912124623.patch</filename>
            <type>text/plain</type>
            <size>17496</size>
            <attacher name="Ilya Tikhonovsky">loislo</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI4MjAxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDRlNjJhZGYyMWY3N2MwYzRmYjkxNGRm
NjRmYjMxOWUyNWI5ZTJiYjkuLjI1MTM4YWU5NmUwNjhhMDEyMWNlZWE1YWVlZGFhMzZhNjdiYTM0
Y2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMjkgQEAKKzIwMTItMDktMTIgIElseWEgVGlraG9ub3Zza3kgIDxs
b2lzbG9AY2hyb21pdW0ub3JnPgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IE5NSSBtb3ZlIFN0
cmluZyogaW5zdHJ1bWVudGF0aW9uIHRvIHd0Zi4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTk2NDA1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgVGhpcyBpbnN0cnVtZW50YXRpb24gaXMgc29sdmluZyB0aGUg
cHJvYmxlbSB3aXRoIHN1YnN0cmluZ3MgYW5kIHJlbW92ZXMgdHJhaXRzIGJhc2VkIGNvZGUgd2hp
Y2ggaXMgaGFyZCB0byB1cHN0cmVhbS4KKworICAgICAgICBUZXN0ZWQgYnkgd2Via2l0X3VuaXRf
dGVzdHMuCisKKyAgICAgICAgKiB3dGYvTWVtb3J5SW5zdHJ1bWVudGF0aW9uLmg6CisgICAgICAg
IChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lbW9yeUluc3RydW1lbnRhdGlvbjo6YWRk
Um9vdE9iamVjdCk6CisgICAgICAgIChXZWJDb3JlOjpNZW1vcnlPYmplY3RJbmZvOjpyZXBvcnRP
YmplY3RJbmZvKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lbW9yeUNsYXNzSW5mbzo6TWVtb3J5Q2xh
c3NJbmZvKToKKyAgICAgICAgKiB3dGYvdGV4dC9BdG9taWNTdHJpbmcuaDoKKyAgICAgICAgKEF0
b21pY1N0cmluZyk6CisgICAgICAgIChXVEY6OkF0b21pY1N0cmluZzo6cmVwb3J0TWVtb3J5VXNh
Z2UpOgorICAgICAgICAqIHd0Zi90ZXh0L1N0cmluZ0ltcGwuaDoKKyAgICAgICAgKFN0cmluZ0lt
cGwpOgorICAgICAgICAoV1RGOjpTdHJpbmdJbXBsOjpyZXBvcnRNZW1vcnlVc2FnZSk6CisgICAg
ICAgICogd3RmL3RleHQvV1RGU3RyaW5nLmg6CisgICAgICAgIChTdHJpbmcpOgorICAgICAgICAo
V1RGOjpTdHJpbmc6OnJlcG9ydE1lbW9yeVVzYWdlKToKKwogMjAxMi0wOS0xMSAgUmFwaGFlbCBL
dWJvIGRhIENvc3RhICA8cmFrdWNvQHdlYmtpdC5vcmc+CiAKICAgICAgICAgW0VGTF0gUmV3cml0
ZSB0aGUgRUZMLXJlbGF0ZWQgRmluZCBtb2R1bGVzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZWEzZTM2M2MwYzJl
Y2EwZWM2ZTVjYmU4MjQ5YjY3ZDNhMTAwODE1Yy4uN2FhNzdjNzJiOGQxOTBjYWNjMDM4MjUxYWM5
ZWFmOTg3OTY0N2IwOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI2IEBACisyMDEyLTA5LTEyICBJ
bHlhIFRpa2hvbm92c2t5ICA8bG9pc2xvQGNocm9taXVtLm9yZz4KKworICAgICAgICBXZWIgSW5z
cGVjdG9yOiBOTUkgbW92ZSBTdHJpbmcqIGluc3RydW1lbnRhdGlvbiB0byB3dGYuCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05NjQwNQorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgaW5zdHJ1bWVudGF0
aW9uIGlzIHNvbHZpbmcgdGhlIHByb2JsZW0gd2l0aCBzdWJzdHJpbmdzIGFuZCByZW1vdmVzIHRy
YWl0cyBiYXNlZCBjb2RlIHdoaWNoIGlzIGhhcmQgdG8gdXBzdHJlYW0uCisKKyAgICAgICAgKiBk
b20vV2ViQ29yZU1lbW9yeUluc3RydW1lbnRhdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlKToK
KyAgICAgICAgKiBkb20vV2ViQ29yZU1lbW9yeUluc3RydW1lbnRhdGlvbi5oOgorICAgICAgICAo
V2ViQ29yZSk6CisKKyAgICAgICAgKiBkb20vV2ViQ29yZU1lbW9yeUluc3RydW1lbnRhdGlvbi5j
cHA6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKiBkb20vV2ViQ29yZU1lbW9yeUluc3Ry
dW1lbnRhdGlvbi5oOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgICogaW5zcGVjdG9yL01l
bW9yeUluc3RydW1lbnRhdGlvbkltcGwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVtb3J5SW5z
dHJ1bWVudGF0aW9uSW1wbDo6Y291bnRPYmplY3RTaXplKToKKyAgICAgICAgKiBwbGF0Zm9ybS9T
aGFyZWRCdWZmZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2hhcmVkQnVmZmVyOjpyZXBvcnRN
ZW1vcnlVc2FnZSk6CisKIDIwMTItMDktMTEgIFRvbnkgQ2hhbmcgIDx0b255QGNocm9taXVtLm9y
Zz4KIAogICAgICAgICBSZW5hbWUgY29tcHV0ZUxvZ2ljYWxIZWlnaHQgdG8gdXBkYXRlTG9naWNh
bEhlaWdodApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cgYi9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwppbmRleCAzNWViNjEyNzlmNTZjMmFiYzlm
OWIzNTk0NzNhNzY1YmY1OWVhYWMyLi4xNWI0YzkwY2YzM2ZhYTIyOTdhYTRhNjE2ZmFhYWU3OGJl
OTJkYzBiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZworKysg
Yi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDEy
LTA5LTEyICBJbHlhIFRpa2hvbm92c2t5ICA8bG9pc2xvQGNocm9taXVtLm9yZz4KKworICAgICAg
ICBXZWIgSW5zcGVjdG9yOiBOTUkgbW92ZSBTdHJpbmcqIGluc3RydW1lbnRhdGlvbiB0byB3dGYu
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05NjQwNQor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgaW5z
dHJ1bWVudGF0aW9uIGlzIHNvbHZpbmcgdGhlIHByb2JsZW0gd2l0aCBzdWJzdHJpbmdzIGFuZCBy
ZW1vdmVzIHRyYWl0cyBiYXNlZCBjb2RlIHdoaWNoIGlzIGhhcmQgdG8gdXBzdHJlYW0uCisKKyAg
ICAgICAgVGVzdGVkIGJ5IHdlYmtpdF91bml0X3Rlc3RzLgorCisgICAgICAgICogdGVzdHMvTWVt
b3J5SW5zdHJ1bWVudGF0aW9uVGVzdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnN0cnVtZW50
ZWRVbmRlZmluZWQ6OnJlcG9ydE1lbW9yeVVzYWdlKToKKyAgICAgICAgKFdlYkNvcmU6OlRFU1Qp
OgorCiAyMDEyLTA5LTExICBJYWluIE1lcnJpY2sgIDxodXNreUBjaHJvbWl1bS5vcmc+CiAKICAg
ICAgICAgW2Nocm9taXVtXSBGaXggZG91YmxlIGNhbGwgdG8gc2Nyb2xsQmVnaW4oKSB3aGVuIGhh
bmRsaW5nIHNjcm9sbCBnZXN0dXJlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9NZW1vcnlJ
bnN0cnVtZW50YXRpb24uaCBiL1NvdXJjZS9XVEYvd3RmL01lbW9yeUluc3RydW1lbnRhdGlvbi5o
CmluZGV4IGFjNjdmZmZmNjhmOTlkYWE1MmExMTkwNWNjY2NlZTViOGYwODZlNjcuLmEyNTNjNGMx
MjU3ZjQyZDcyNjkwMjkwMGJjMzA5MTU0YjA3ZWU2NGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYv
d3RmL01lbW9yeUluc3RydW1lbnRhdGlvbi5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL01lbW9yeUlu
c3RydW1lbnRhdGlvbi5oCkBAIC00MywxMSArNDMsNiBAQCBjbGFzcyBNZW1vcnlJbnN0cnVtZW50
YXRpb247CiAKIHR5cGVkZWYgY29uc3QgY2hhciogTWVtb3J5T2JqZWN0VHlwZTsKIAotY2xhc3Mg
R2VuZXJpY01lbW9yeVR5cGVzIHsKLXB1YmxpYzoKLSAgICBzdGF0aWMgTWVtb3J5T2JqZWN0VHlw
ZSBVbmRlZmluZWQ7Ci19OwotCiBlbnVtIE1lbW9yeU93bmluZ1R5cGUgewogICAgIGJ5UG9pbnRl
ciwKICAgICBieVJlZmVyZW5jZQpAQCAtNjUsNyArNjAsNyBAQCBwdWJsaWM6CiAKICAgICB0ZW1w
bGF0ZSA8dHlwZW5hbWUgVD4gdm9pZCBhZGRSb290T2JqZWN0KGNvbnN0IFQmIHQpCiAgICAgewot
ICAgICAgICBhZGRJbnN0cnVtZW50ZWRPYmplY3QodCwgR2VuZXJpY01lbW9yeVR5cGVzOjpVbmRl
ZmluZWQpOworICAgICAgICBhZGRJbnN0cnVtZW50ZWRPYmplY3QodCwgMCk7CiAgICAgICAgIHBy
b2Nlc3NEZWZlcnJlZEluc3RydW1lbnRlZFBvaW50ZXJzKCk7CiAgICAgfQogCkBAIC0xODQsNyAr
MTc5LDcgQEAgcHJpdmF0ZToKICAgICB7CiAgICAgICAgIGlmICghbV9vYmplY3RTaXplKSB7CiAg
ICAgICAgICAgICBtX29iamVjdFNpemUgPSBhY3R1YWxTaXplID8gYWN0dWFsU2l6ZSA6IHNpemVv
ZihUKTsKLSAgICAgICAgICAgIGlmIChvYmplY3RUeXBlICE9IEdlbmVyaWNNZW1vcnlUeXBlczo6
VW5kZWZpbmVkKQorICAgICAgICAgICAgaWYgKCFvYmplY3RUeXBlKQogICAgICAgICAgICAgICAg
IG1fb2JqZWN0VHlwZSA9IG9iamVjdFR5cGU7CiAgICAgICAgIH0KICAgICB9CkBAIC0xOTcsNyAr
MTkyLDcgQEAgcHJpdmF0ZToKIGNsYXNzIE1lbW9yeUNsYXNzSW5mbyB7CiBwdWJsaWM6CiAgICAg
dGVtcGxhdGU8dHlwZW5hbWUgVD4KLSAgICBNZW1vcnlDbGFzc0luZm8oTWVtb3J5T2JqZWN0SW5m
byogbWVtb3J5T2JqZWN0SW5mbywgY29uc3QgVCosIE1lbW9yeU9iamVjdFR5cGUgb2JqZWN0VHlw
ZSA9IEdlbmVyaWNNZW1vcnlUeXBlczo6VW5kZWZpbmVkLCBzaXplX3QgYWN0dWFsU2l6ZSA9IDAp
CisgICAgTWVtb3J5Q2xhc3NJbmZvKE1lbW9yeU9iamVjdEluZm8qIG1lbW9yeU9iamVjdEluZm8s
IGNvbnN0IFQqLCBNZW1vcnlPYmplY3RUeXBlIG9iamVjdFR5cGUgPSAwLCBzaXplX3QgYWN0dWFs
U2l6ZSA9IDApCiAgICAgICAgIDogbV9tZW1vcnlPYmplY3RJbmZvKG1lbW9yeU9iamVjdEluZm8p
CiAgICAgICAgICwgbV9tZW1vcnlJbnN0cnVtZW50YXRpb24obWVtb3J5T2JqZWN0SW5mby0+bWVt
b3J5SW5zdHJ1bWVudGF0aW9uKCkpCiAgICAgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYv
dGV4dC9BdG9taWNTdHJpbmcuaCBiL1NvdXJjZS9XVEYvd3RmL3RleHQvQXRvbWljU3RyaW5nLmgK
aW5kZXggZWZkNGUyZThjNTY1ZTVmMDZlMWJkMDYyY2ZkMmUxMjZkMWI0M2JhNi4uOWIzYzkzZTIx
ZjRlZWM2YTNjNDhlODYwNmJmNDIwYjNhZDVlNDA4NCAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93
dGYvdGV4dC9BdG9taWNTdHJpbmcuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0F0b21pY1N0
cmluZy5oCkBAIC0xNTQsNiArMTU0LDE0IEBAIHB1YmxpYzoKICNpZm5kZWYgTkRFQlVHCiAgICAg
dm9pZCBzaG93KCkgY29uc3Q7CiAjZW5kaWYKKworICAgIHRlbXBsYXRlPHR5cGVuYW1lIE1lbW9y
eU9iamVjdEluZm8+CisgICAgdm9pZCByZXBvcnRNZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJbmZv
KiBtZW1vcnlPYmplY3RJbmZvKSBjb25zdAorICAgIHsKKyAgICAgICAgdHlwZW5hbWUgTWVtb3J5
T2JqZWN0SW5mbzo6Q2xhc3NJbmZvIGluZm8obWVtb3J5T2JqZWN0SW5mbywgdGhpcyk7CisgICAg
ICAgIGluZm8uYWRkSW5zdHJ1bWVudGVkTWVtYmVyKG1fc3RyaW5nKTsKKyAgICB9CisgICAgCiBw
cml2YXRlOgogICAgIC8vIFRoZSBleHBsaWNpdCBjb25zdHJ1Y3RvcnMgd2l0aCBBdG9taWNTdHJp
bmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsIG11c3QgYmUgdXNlZCBmb3IgbGl0ZXJhbHMuCiAgICAg
QXRvbWljU3RyaW5nKEFTQ0lJTGl0ZXJhbCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi90
ZXh0L1N0cmluZ0ltcGwuaCBiL1NvdXJjZS9XVEYvd3RmL3RleHQvU3RyaW5nSW1wbC5oCmluZGV4
IGNkN2UxMGNjNTlkNjJjMTQxMTliZDkxOWFhYzQ5NzAxZTFhZDBhZWQuLjY0YmMwMzU3NzE5OWQ4
MmE2ZmUwNTk3MmQxMTM2NWU5MmQzZGJhY2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL3Rl
eHQvU3RyaW5nSW1wbC5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL3RleHQvU3RyaW5nSW1wbC5oCkBA
IC03MTQsNiArNzE0LDI4IEBAIHB1YmxpYzoKICNpZmRlZiBTVFJJTkdfU1RBVFMKICAgICBBTFdB
WVNfSU5MSU5FIHN0YXRpYyBTdHJpbmdTdGF0cyYgc3RyaW5nU3RhdHMoKSB7IHJldHVybiBtX3N0
cmluZ1N0YXRzOyB9CiAjZW5kaWYKKworICAgIHRlbXBsYXRlPHR5cGVuYW1lIE1lbW9yeU9iamVj
dEluZm8+CisgICAgdm9pZCByZXBvcnRNZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJbmZvKiBtZW1v
cnlPYmplY3RJbmZvKSBjb25zdAorICAgIHsKKyAgICAgICAgc2l6ZV90IHNlbGZTaXplID0gc2l6
ZW9mKFN0cmluZ0ltcGwpOworCisgICAgICAgIC8vIENvdW50IHNpemUgdXNlZCBieSBpbnRlcm5h
bCBidWZmZXIgYnV0IHNraXAgc3RyaW5ncyB0aGF0IHdlcmUgY29uc3RydWN0ZWQgZnJvbSBsaXRl
cmFscy4KKyAgICAgICAgaWYgKChtX2hhc2hBbmRGbGFncyAmIEJ1ZmZlckludGVybmFsKSAmJiAh
aGFzVGVybWluYXRpbmdOdWxsQ2hhcmFjdGVyKCkpCisgICAgICAgICAgICAvLyBUaHJlZSBjYXNl
cyBhcmUgY292ZXJlZCBoZXJlOgorICAgICAgICAgICAgLy8gMSkgYSBub3JtYWwgOC1iaXQgc3Ry
aW5nIHdpdGggaW50ZXJuYWwgc3RvcmFnZSAoQnVmZmVySW50ZXJuYWwpCisgICAgICAgICAgICAv
LyAyKSBhIG5vcm1hbCAxNi1iaXQgc3RyaW5nIHdpdGggaW50ZXJuYWwgc3RvcmFnZSAoQnVmZmVy
SW50ZXJuYWwpCisgICAgICAgICAgICAvLyAzKSBlbXB0eSB1bmlxdWUgc3RyaW5nIHdpdGggbGVu
Z3RoID0gMCAoQnVmZmVySW50ZXJuYWwpCisgICAgICAgICAgICBzZWxmU2l6ZSArPSBtX2xlbmd0
aCAqIChtX2hhc2hBbmRGbGFncyAmIHNfaGFzaEZsYWc4Qml0QnVmZmVyID8gc2l6ZW9mKExDaGFy
KSA6IHNpemVvZihVQ2hhcikpOworCisgICAgICAgIHR5cGVuYW1lIE1lbW9yeU9iamVjdEluZm86
OkNsYXNzSW5mbyBpbmZvKG1lbW9yeU9iamVjdEluZm8sIHRoaXMsIDAsIHNlbGZTaXplKTsKKwor
ICAgICAgICBpZiAobV9oYXNoQW5kRmxhZ3MgJiBCdWZmZXJTdWJzdHJpbmcpCisgICAgICAgICAg
ICBpbmZvLmFkZEluc3RydW1lbnRlZE1lbWJlcihtX3N1YnN0cmluZ0J1ZmZlcik7CisgICAgICAg
IGVsc2UgaWYgKG1faGFzaEFuZEZsYWdzICYgc19oYXNoRmxhZ0hhczE2Qml0U2hhZG93KSAvLyBT
dWJzdHJpbmcgbmV2ZXIgaGFzIGl0J3Mgb3duIHNoYWRvdy4KKyAgICAgICAgICAgIGluZm8uYWRk
UmF3QnVmZmVyKG1fY29weURhdGExNiwgKG1fbGVuZ3RoICsgKGhhc1Rlcm1pbmF0aW5nTnVsbENo
YXJhY3RlcigpID8gMSA6IDApKSAqIHNpemVvZihVQ2hhcikpOworICAgIH0KKwogcHJpdmF0ZToK
ICAgICAvLyBUaGlzIG51bWJlciBtdXN0IGJlIGF0IGxlYXN0IDIgdG8gYXZvaWQgc2hhcmluZyBl
bXB0eSwgbnVsbCBhcyB3ZWxsIGFzIDEgY2hhcmFjdGVyIHN0cmluZ3MgZnJvbSBTbWFsbFN0cmlu
Z3MuCiAgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIHNfY29weUNoYXJzSW5saW5lQ3V0T2ZmID0g
MjA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1dURlN0cmluZy5oIGIvU291cmNl
L1dURi93dGYvdGV4dC9XVEZTdHJpbmcuaAppbmRleCA2MzZkYjljZDkyMWQwNzY0ZjFhNmJiZTcy
MDhlNTcyNDU2NTMwNjQxLi5iN2JkOTZjMTdmNmFlNzA4ZjFjYmZlZTQ1ZmUxMDFhNzJiODU0N2M0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1dURlN0cmluZy5oCisrKyBiL1NvdXJj
ZS9XVEYvd3RmL3RleHQvV1RGU3RyaW5nLmgKQEAgLTQ1NSw2ICs0NTUsMTMgQEAgcHVibGljOgog
ICAgICAgICByZXR1cm4gKCptX2ltcGwpW2luZGV4XTsKICAgICB9CiAKKyAgICB0ZW1wbGF0ZTx0
eXBlbmFtZSBNZW1vcnlPYmplY3RJbmZvPgorICAgIHZvaWQgcmVwb3J0TWVtb3J5VXNhZ2UoTWVt
b3J5T2JqZWN0SW5mbyogbWVtb3J5T2JqZWN0SW5mbykgY29uc3QKKyAgICB7CisgICAgICAgIHR5
cGVuYW1lIE1lbW9yeU9iamVjdEluZm86OkNsYXNzSW5mbyBpbmZvKG1lbW9yeU9iamVjdEluZm8s
IHRoaXMpOworICAgICAgICBpbmZvLmFkZEluc3RydW1lbnRlZE1lbWJlcihtX2ltcGwpOworICAg
IH0KKwogcHJpdmF0ZToKICAgICBSZWZQdHI8U3RyaW5nSW1wbD4gbV9pbXBsOwogfTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9XZWJDb3JlTWVtb3J5SW5zdHJ1bWVudGF0aW9uLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9XZWJDb3JlTWVtb3J5SW5zdHJ1bWVudGF0aW9uLmNwcApp
bmRleCA0Y2UwZGYyODI4ODkwYWViZjRiNDg0YTI4NzMzYmNlM2Q5Mjc3MTc2Li43NDkxZjI3YTkw
NTE4YjhmNDE1MTNkM2Y1MzE3ZjZlMmMwZDVjNGFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vV2ViQ29yZU1lbW9yeUluc3RydW1lbnRhdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvZG9tL1dlYkNvcmVNZW1vcnlJbnN0cnVtZW50YXRpb24uY3BwCkBAIC0zNyw4ICszNyw2IEBA
CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotTWVtb3J5T2JqZWN0VHlwZSBHZW5lcmljTWVtb3J5
VHlwZXM6OlVuZGVmaW5lZCA9IDA7Ci0KIE1lbW9yeU9iamVjdFR5cGUgV2ViQ29yZU1lbW9yeVR5
cGVzOjpQYWdlID0gIlBhZ2UiOwogTWVtb3J5T2JqZWN0VHlwZSBXZWJDb3JlTWVtb3J5VHlwZXM6
OkRPTSA9ICJQYWdlLkRPTSI7CiBNZW1vcnlPYmplY3RUeXBlIFdlYkNvcmVNZW1vcnlUeXBlczo6
Q1NTID0gIlBhZ2UuQ1NTIjsKQEAgLTU3LDMyICs1NSw2IEBAIE1lbW9yeU9iamVjdFR5cGUgV2Vi
Q29yZU1lbW9yeVR5cGVzOjpDYWNoZWRSZXNvdXJjZVNWRyA9ICJNZW1vcnlDYWNoZS5TVkciOwog
TWVtb3J5T2JqZWN0VHlwZSBXZWJDb3JlTWVtb3J5VHlwZXM6OkNhY2hlZFJlc291cmNlU2hhZGVy
ID0gIk1lbW9yeUNhY2hlLlNoYWRlciI7CiBNZW1vcnlPYmplY3RUeXBlIFdlYkNvcmVNZW1vcnlU
eXBlczo6Q2FjaGVkUmVzb3VyY2VYU0xUID0gIk1lbW9yeUNhY2hlLlhTTFQiOwogCi10ZW1wbGF0
ZTw+IHZvaWQgTWVtb3J5SW5zdHJ1bWVudGF0aW9uVHJhaXRzOjphZGRJbnN0cnVtZW50ZWRPYmpl
Y3Q8U3RyaW5nPihNZW1vcnlJbnN0cnVtZW50YXRpb24qIGluc3RydW1lbnRhdGlvbiwgY29uc3Qg
U3RyaW5nKiBjb25zdCYgc3RyaW5nLCBNZW1vcnlPYmplY3RUeXBlIG93bmVyT2JqZWN0VHlwZSwg
TWVtb3J5T3duaW5nVHlwZSBvd25pbmdUeXBlKQotewotICAgIE1lbW9yeUluc3RydW1lbnRhdGlv
blRyYWl0czo6YWRkSW5zdHJ1bWVudGVkT2JqZWN0PGNvbnN0IFN0cmluZz4oaW5zdHJ1bWVudGF0
aW9uLCBzdHJpbmcsIG93bmVyT2JqZWN0VHlwZSwgb3duaW5nVHlwZSk7Ci19Ci0KLXRlbXBsYXRl
PD4gdm9pZCBNZW1vcnlJbnN0cnVtZW50YXRpb25UcmFpdHM6OmFkZEluc3RydW1lbnRlZE9iamVj
dDxjb25zdCBTdHJpbmc+KE1lbW9yeUluc3RydW1lbnRhdGlvbiogaW5zdHJ1bWVudGF0aW9uLCBj
b25zdCBTdHJpbmcqIGNvbnN0JiBzdHJpbmcsIE1lbW9yeU9iamVjdFR5cGUgb3duZXJPYmplY3RU
eXBlLCBNZW1vcnlPd25pbmdUeXBlIG93bmluZ1R5cGUpCi17Ci0gICAgaWYgKCFzdHJpbmcgfHwg
aW5zdHJ1bWVudGF0aW9uLT52aXNpdGVkKHN0cmluZykpCi0gICAgICAgIHJldHVybjsKLSAgICBp
ZiAob3duaW5nVHlwZSA9PSBieVBvaW50ZXIpCi0gICAgICAgIGluc3RydW1lbnRhdGlvbi0+Y291
bnRPYmplY3RTaXplKG93bmVyT2JqZWN0VHlwZSwgc2l6ZW9mKFN0cmluZykpOwotICAgIGluc3Ry
dW1lbnRhdGlvbi0+YWRkSW5zdHJ1bWVudGVkT2JqZWN0KHN0cmluZy0+aW1wbCgpLCBvd25lck9i
amVjdFR5cGUpOwotfQotCi10ZW1wbGF0ZTw+IHZvaWQgTWVtb3J5SW5zdHJ1bWVudGF0aW9uVHJh
aXRzOjphZGRJbnN0cnVtZW50ZWRPYmplY3Q8U3RyaW5nSW1wbD4oTWVtb3J5SW5zdHJ1bWVudGF0
aW9uKiBpbnN0cnVtZW50YXRpb24sIGNvbnN0IFN0cmluZ0ltcGwqIGNvbnN0JiBzdHJpbmdJbXBs
LCBNZW1vcnlPYmplY3RUeXBlIG93bmVyT2JqZWN0VHlwZSwgTWVtb3J5T3duaW5nVHlwZSBvd25p
bmdUeXBlKQotewotICAgIE1lbW9yeUluc3RydW1lbnRhdGlvblRyYWl0czo6YWRkSW5zdHJ1bWVu
dGVkT2JqZWN0PGNvbnN0IFN0cmluZ0ltcGw+KGluc3RydW1lbnRhdGlvbiwgc3RyaW5nSW1wbCwg
b3duZXJPYmplY3RUeXBlLCBvd25pbmdUeXBlKTsKLX0KLQotdGVtcGxhdGU8PiB2b2lkIE1lbW9y
eUluc3RydW1lbnRhdGlvblRyYWl0czo6YWRkSW5zdHJ1bWVudGVkT2JqZWN0PGNvbnN0IFN0cmlu
Z0ltcGw+KE1lbW9yeUluc3RydW1lbnRhdGlvbiogaW5zdHJ1bWVudGF0aW9uLCBjb25zdCBTdHJp
bmdJbXBsKiBjb25zdCYgc3RyaW5nSW1wbCwgTWVtb3J5T2JqZWN0VHlwZSBvd25lck9iamVjdFR5
cGUsIE1lbW9yeU93bmluZ1R5cGUpCi17Ci0gICAgaWYgKCFzdHJpbmdJbXBsIHx8IGluc3RydW1l
bnRhdGlvbi0+dmlzaXRlZChzdHJpbmdJbXBsKSkKLSAgICAgICAgcmV0dXJuOwotICAgIGluc3Ry
dW1lbnRhdGlvbi0+Y291bnRPYmplY3RTaXplKG93bmVyT2JqZWN0VHlwZSwgc3RyaW5nSW1wbC0+
c2l6ZUluQnl0ZXMoKSk7Ci19Ci0KIHRlbXBsYXRlPD4gdm9pZCBNZW1vcnlJbnN0cnVtZW50YXRp
b25UcmFpdHM6OmFkZEluc3RydW1lbnRlZE9iamVjdDxLVVJMPihNZW1vcnlJbnN0cnVtZW50YXRp
b24qIGluc3RydW1lbnRhdGlvbiwgY29uc3QgS1VSTCogY29uc3QmIHVybCwgTWVtb3J5T2JqZWN0
VHlwZSBvd25lck9iamVjdFR5cGUsIE1lbW9yeU93bmluZ1R5cGUgb3duaW5nVHlwZSkKIHsKICAg
ICBNZW1vcnlJbnN0cnVtZW50YXRpb25UcmFpdHM6OmFkZEluc3RydW1lbnRlZE9iamVjdDxjb25z
dCBLVVJMPihpbnN0cnVtZW50YXRpb24sIHVybCwgb3duZXJPYmplY3RUeXBlLCBvd25pbmdUeXBl
KTsKQEAgLTk5LDE0ICs3MSw0IEBAIHRlbXBsYXRlPD4gdm9pZCBNZW1vcnlJbnN0cnVtZW50YXRp
b25UcmFpdHM6OmFkZEluc3RydW1lbnRlZE9iamVjdDxjb25zdCBLVVJMPihNCiAgICAgICAgIGlu
c3RydW1lbnRhdGlvbi0+YWRkSW5zdHJ1bWVudGVkT2JqZWN0KHVybC0+aW5uZXJVUkwoKSwgb3du
ZXJPYmplY3RUeXBlKTsKIH0KIAotdGVtcGxhdGU8PiB2b2lkIE1lbW9yeUluc3RydW1lbnRhdGlv
blRyYWl0czo6YWRkSW5zdHJ1bWVudGVkT2JqZWN0PEF0b21pY1N0cmluZz4oTWVtb3J5SW5zdHJ1
bWVudGF0aW9uKiBpbnN0cnVtZW50YXRpb24sIGNvbnN0IEF0b21pY1N0cmluZyogY29uc3QmIGF0
b21pY1N0cmluZywgTWVtb3J5T2JqZWN0VHlwZSBvd25lck9iamVjdFR5cGUsIE1lbW9yeU93bmlu
Z1R5cGUgb3duaW5nVHlwZSkKLXsKLSAgICBNZW1vcnlJbnN0cnVtZW50YXRpb25UcmFpdHM6OmFk
ZEluc3RydW1lbnRlZE9iamVjdDxjb25zdCBBdG9taWNTdHJpbmc+KGluc3RydW1lbnRhdGlvbiwg
YXRvbWljU3RyaW5nLCBvd25lck9iamVjdFR5cGUsIG93bmluZ1R5cGUpOwotfQotCi10ZW1wbGF0
ZTw+IHZvaWQgTWVtb3J5SW5zdHJ1bWVudGF0aW9uVHJhaXRzOjphZGRJbnN0cnVtZW50ZWRPYmpl
Y3Q8Y29uc3QgQXRvbWljU3RyaW5nPihNZW1vcnlJbnN0cnVtZW50YXRpb24qIGluc3RydW1lbnRh
dGlvbiwgY29uc3QgQXRvbWljU3RyaW5nKiBjb25zdCYgYXRvbWljU3RyaW5nLCBNZW1vcnlPYmpl
Y3RUeXBlIG93bmVyT2JqZWN0VHlwZSwgTWVtb3J5T3duaW5nVHlwZSBvd25pbmdUeXBlKQotewot
ICAgIE1lbW9yeUluc3RydW1lbnRhdGlvblRyYWl0czo6YWRkSW5zdHJ1bWVudGVkT2JqZWN0PGNv
bnN0IFN0cmluZz4oaW5zdHJ1bWVudGF0aW9uLCByZWludGVycHJldF9jYXN0PGNvbnN0IFN0cmlu
ZyogY29uc3Q+KGF0b21pY1N0cmluZyksIG93bmVyT2JqZWN0VHlwZSwgb3duaW5nVHlwZSk7Ci19
Ci0KIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9XZWJDb3JlTWVtb3J5SW5zdHJ1bWVudGF0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vV2Vi
Q29yZU1lbW9yeUluc3RydW1lbnRhdGlvbi5oCmluZGV4IDlkNjg4NTQzZWJlZDMzNzYxMDE4MWU0
MDgwN2ZjMDliZGNlYzhmY2EuLjIwYmYzM2E0NWYyMzlmNmNhYmEwNzE1M2FhMmRmYTYzY2U1ODYx
ZjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9XZWJDb3JlTWVtb3J5SW5zdHJ1bWVu
dGF0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1dlYkNvcmVNZW1vcnlJbnN0cnVtZW50
YXRpb24uaApAQCAtNDIsMjkgKzQyLDEwIEBAIGNsYXNzIEtVUkw7CiB0ZW1wbGF0ZTw+IHZvaWQg
TWVtb3J5SW5zdHJ1bWVudGF0aW9uVHJhaXRzOjphZGRJbnN0cnVtZW50ZWRPYmplY3Q8S1VSTD4o
TWVtb3J5SW5zdHJ1bWVudGF0aW9uKiwgY29uc3QgS1VSTCogY29uc3QmLCBNZW1vcnlPYmplY3RU
eXBlLCBNZW1vcnlPd25pbmdUeXBlKTsKIHRlbXBsYXRlPD4gdm9pZCBNZW1vcnlJbnN0cnVtZW50
YXRpb25UcmFpdHM6OmFkZEluc3RydW1lbnRlZE9iamVjdDxjb25zdCBLVVJMPihNZW1vcnlJbnN0
cnVtZW50YXRpb24qLCBjb25zdCBLVVJMKiBjb25zdCYsIE1lbW9yeU9iamVjdFR5cGUsIE1lbW9y
eU93bmluZ1R5cGUpOwogCi10ZW1wbGF0ZTw+IHZvaWQgTWVtb3J5SW5zdHJ1bWVudGF0aW9uVHJh
aXRzOjphZGRJbnN0cnVtZW50ZWRPYmplY3Q8U3RyaW5nPihNZW1vcnlJbnN0cnVtZW50YXRpb24q
LCBjb25zdCBTdHJpbmcqIGNvbnN0JiwgTWVtb3J5T2JqZWN0VHlwZSwgTWVtb3J5T3duaW5nVHlw
ZSk7Ci10ZW1wbGF0ZTw+IHZvaWQgTWVtb3J5SW5zdHJ1bWVudGF0aW9uVHJhaXRzOjphZGRJbnN0
cnVtZW50ZWRPYmplY3Q8Y29uc3QgU3RyaW5nPihNZW1vcnlJbnN0cnVtZW50YXRpb24qLCBjb25z
dCBTdHJpbmcqIGNvbnN0JiwgTWVtb3J5T2JqZWN0VHlwZSwgTWVtb3J5T3duaW5nVHlwZSk7Ci0K
LXRlbXBsYXRlPD4gdm9pZCBNZW1vcnlJbnN0cnVtZW50YXRpb25UcmFpdHM6OmFkZEluc3RydW1l
bnRlZE9iamVjdDxTdHJpbmdJbXBsPihNZW1vcnlJbnN0cnVtZW50YXRpb24qLCBjb25zdCBTdHJp
bmdJbXBsKiBjb25zdCYsIE1lbW9yeU9iamVjdFR5cGUsIE1lbW9yeU93bmluZ1R5cGUpOwotdGVt
cGxhdGU8PiB2b2lkIE1lbW9yeUluc3RydW1lbnRhdGlvblRyYWl0czo6YWRkSW5zdHJ1bWVudGVk
T2JqZWN0PGNvbnN0IFN0cmluZ0ltcGw+KE1lbW9yeUluc3RydW1lbnRhdGlvbiosIGNvbnN0IFN0
cmluZ0ltcGwqIGNvbnN0JiwgTWVtb3J5T2JqZWN0VHlwZSwgTWVtb3J5T3duaW5nVHlwZSk7Ci0K
LXRlbXBsYXRlPD4gdm9pZCBNZW1vcnlJbnN0cnVtZW50YXRpb25UcmFpdHM6OmFkZEluc3RydW1l
bnRlZE9iamVjdDxBdG9taWNTdHJpbmc+KE1lbW9yeUluc3RydW1lbnRhdGlvbiosIGNvbnN0IEF0
b21pY1N0cmluZyogY29uc3QmLCBNZW1vcnlPYmplY3RUeXBlLCBNZW1vcnlPd25pbmdUeXBlKTsK
LXRlbXBsYXRlPD4gdm9pZCBNZW1vcnlJbnN0cnVtZW50YXRpb25UcmFpdHM6OmFkZEluc3RydW1l
bnRlZE9iamVjdDxjb25zdCBBdG9taWNTdHJpbmc+KE1lbW9yeUluc3RydW1lbnRhdGlvbiosIGNv
bnN0IEF0b21pY1N0cmluZyogY29uc3QmLCBNZW1vcnlPYmplY3RUeXBlLCBNZW1vcnlPd25pbmdU
eXBlKTsKLQotCiAvLyBMaW5rIHRpbWUgZ3VhcmRzIHdpdGggbm8gYm9keS4KIHRlbXBsYXRlPD4g
dm9pZCBNZW1vcnlJbnN0cnVtZW50YXRpb25UcmFpdHM6OmFkZE9iamVjdDxLVVJMPihNZW1vcnlJ
bnN0cnVtZW50YXRpb24qLCBjb25zdCBLVVJMKiBjb25zdCYsIE1lbW9yeU9iamVjdFR5cGUsIE1l
bW9yeU93bmluZ1R5cGUpOwogdGVtcGxhdGU8PiB2b2lkIE1lbW9yeUluc3RydW1lbnRhdGlvblRy
YWl0czo6YWRkT2JqZWN0PGNvbnN0IEtVUkw+KE1lbW9yeUluc3RydW1lbnRhdGlvbiosIGNvbnN0
IEtVUkwqIGNvbnN0JiwgTWVtb3J5T2JqZWN0VHlwZSwgTWVtb3J5T3duaW5nVHlwZSk7CiAKLXRl
bXBsYXRlPD4gdm9pZCBNZW1vcnlJbnN0cnVtZW50YXRpb25UcmFpdHM6OmFkZE9iamVjdDxTdHJp
bmc+KE1lbW9yeUluc3RydW1lbnRhdGlvbiosIGNvbnN0IFN0cmluZyogY29uc3QmLCBNZW1vcnlP
YmplY3RUeXBlLCBNZW1vcnlPd25pbmdUeXBlKTsKLXRlbXBsYXRlPD4gdm9pZCBNZW1vcnlJbnN0
cnVtZW50YXRpb25UcmFpdHM6OmFkZE9iamVjdDxjb25zdCBTdHJpbmc+KE1lbW9yeUluc3RydW1l
bnRhdGlvbiosIGNvbnN0IFN0cmluZyogY29uc3QmLCBNZW1vcnlPYmplY3RUeXBlLCBNZW1vcnlP
d25pbmdUeXBlKTsKLQotdGVtcGxhdGU8PiB2b2lkIE1lbW9yeUluc3RydW1lbnRhdGlvblRyYWl0
czo6YWRkT2JqZWN0PFN0cmluZ0ltcGw+KE1lbW9yeUluc3RydW1lbnRhdGlvbiosIGNvbnN0IFN0
cmluZ0ltcGwqIGNvbnN0JiwgTWVtb3J5T2JqZWN0VHlwZSwgTWVtb3J5T3duaW5nVHlwZSk7Ci10
ZW1wbGF0ZTw+IHZvaWQgTWVtb3J5SW5zdHJ1bWVudGF0aW9uVHJhaXRzOjphZGRPYmplY3Q8Y29u
c3QgU3RyaW5nSW1wbD4oTWVtb3J5SW5zdHJ1bWVudGF0aW9uKiwgY29uc3QgU3RyaW5nSW1wbCog
Y29uc3QmLCBNZW1vcnlPYmplY3RUeXBlLCBNZW1vcnlPd25pbmdUeXBlKTsKLQotdGVtcGxhdGU8
PiB2b2lkIE1lbW9yeUluc3RydW1lbnRhdGlvblRyYWl0czo6YWRkT2JqZWN0PEF0b21pY1N0cmlu
Zz4oTWVtb3J5SW5zdHJ1bWVudGF0aW9uKiwgY29uc3QgQXRvbWljU3RyaW5nKiBjb25zdCYsIE1l
bW9yeU9iamVjdFR5cGUsIE1lbW9yeU93bmluZ1R5cGUpOwotdGVtcGxhdGU8PiB2b2lkIE1lbW9y
eUluc3RydW1lbnRhdGlvblRyYWl0czo6YWRkT2JqZWN0PGNvbnN0IEF0b21pY1N0cmluZz4oTWVt
b3J5SW5zdHJ1bWVudGF0aW9uKiwgY29uc3QgQXRvbWljU3RyaW5nKiBjb25zdCYsIE1lbW9yeU9i
amVjdFR5cGUsIE1lbW9yeU93bmluZ1R5cGUpOwotCiBjbGFzcyBXZWJDb3JlTWVtb3J5VHlwZXMg
ewogcHVibGljOgogICAgIHN0YXRpYyBNZW1vcnlPYmplY3RUeXBlIFBhZ2U7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvTWVtb3J5SW5zdHJ1bWVudGF0aW9uSW1wbC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvTWVtb3J5SW5zdHJ1bWVudGF0aW9uSW1wbC5jcHAK
aW5kZXggNDdhOTFkNWIzMWI1NjhmNTk4MTFhYjdlMjA2MGFlMzhkMDMwZDQ3OC4uOTQ2ODg4Y2Uy
MGZmODg3MjdkNjE4ZDhjZGZmZDM3NGM0NjIwMDk5NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL01lbW9yeUluc3RydW1lbnRhdGlvbkltcGwuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9NZW1vcnlJbnN0cnVtZW50YXRpb25JbXBsLmNwcApAQCAtNTIsNyAr
NTIsNyBAQCB2b2lkIE1lbW9yeUluc3RydW1lbnRhdGlvbkltcGw6OnByb2Nlc3NEZWZlcnJlZElu
c3RydW1lbnRlZFBvaW50ZXJzKCkKIAogdm9pZCBNZW1vcnlJbnN0cnVtZW50YXRpb25JbXBsOjpj
b3VudE9iamVjdFNpemUoTWVtb3J5T2JqZWN0VHlwZSBvYmplY3RUeXBlLCBzaXplX3Qgc2l6ZSkK
IHsKLSAgICBBU1NFUlQob2JqZWN0VHlwZSAhPSBHZW5lcmljTWVtb3J5VHlwZXM6OlVuZGVmaW5l
ZCk7CisgICAgQVNTRVJUKG9iamVjdFR5cGUpOwogICAgIFR5cGVUb1NpemVNYXA6OkFkZFJlc3Vs
dCByZXN1bHQgPSBtX3RvdGFsU2l6ZXMuYWRkKG9iamVjdFR5cGUsIHNpemUpOwogICAgIGlmICgh
cmVzdWx0LmlzTmV3RW50cnkpCiAgICAgICAgIHJlc3VsdC5pdGVyYXRvci0+c2Vjb25kICs9IHNp
emU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TaGFyZWRCdWZmZXIuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2hhcmVkQnVmZmVyLmNwcAppbmRleCBkNjc0ZWE4
YTdkYjczYWZmZGU3NTM1NWJlZDBkMjgyNjZkYjgwODZkLi5iOWRkM2EzZTRiY2JkNmExYTg2YzE3
MmIwNmY2ZmVmZjBlOGZkZjNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9T
aGFyZWRCdWZmZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1NoYXJlZEJ1ZmZl
ci5jcHAKQEAgLTI1MCw3ICsyNTAsNyBAQCBjb25zdCBWZWN0b3I8Y2hhcj4mIFNoYXJlZEJ1ZmZl
cjo6YnVmZmVyKCkgY29uc3QKIAogdm9pZCBTaGFyZWRCdWZmZXI6OnJlcG9ydE1lbW9yeVVzYWdl
KE1lbW9yeU9iamVjdEluZm8qIG1lbW9yeU9iamVjdEluZm8pIGNvbnN0CiB7Ci0gICAgTWVtb3J5
Q2xhc3NJbmZvIGluZm8obWVtb3J5T2JqZWN0SW5mbywgdGhpcywgR2VuZXJpY01lbW9yeVR5cGVz
OjpVbmRlZmluZWQpOworICAgIE1lbW9yeUNsYXNzSW5mbyBpbmZvKG1lbW9yeU9iamVjdEluZm8s
IHRoaXMpOwogICAgIGluZm8uYWRkVmVjdG9yKG1fYnVmZmVyKTsKICAgICBpbmZvLmFkZFZlY3Rv
cihtX3NlZ21lbnRzKTsKICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgbV9zZWdtZW50cy5z
aXplKCk7ICsraSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvTWVt
b3J5SW5zdHJ1bWVudGF0aW9uVGVzdC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3Rz
L01lbW9yeUluc3RydW1lbnRhdGlvblRlc3QuY3BwCmluZGV4IDUxYjIwMGFkZWFiMGMxZTBmYjU3
NWNhZmI5YTNjODFmZDVhMGVhN2EuLmUwZjA3MDU2ZmExZTZmOGQ5NTU2YjU3Njc5MTJmYjAyMmVk
YTBiZjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvTWVtb3J5SW5z
dHJ1bWVudGF0aW9uVGVzdC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9N
ZW1vcnlJbnN0cnVtZW50YXRpb25UZXN0LmNwcApAQCAtMTc5LDcgKzE3OSw3IEBAIHB1YmxpYzoK
IAogICAgIHZvaWQgcmVwb3J0TWVtb3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyogbWVtb3J5T2Jq
ZWN0SW5mbykgY29uc3QKICAgICB7Ci0gICAgICAgIE1lbW9yeUNsYXNzSW5mbyBpbmZvKG1lbW9y
eU9iamVjdEluZm8sIHRoaXMsIEdlbmVyaWNNZW1vcnlUeXBlczo6VW5kZWZpbmVkKTsKKyAgICAg
ICAgTWVtb3J5Q2xhc3NJbmZvIGluZm8obWVtb3J5T2JqZWN0SW5mbywgdGhpcyk7CiAgICAgfQog
ICAgIGludCBtX2RhdGE7CiB9OwpAQCAtMjQ1LDggKzI0NSw5IEBAIFRFU1QoTWVtb3J5SW5zdHJ1
bWVudGF0aW9uVGVzdCwgdmlzaXRTdHJpbmdzKQogICAgIFZpc2l0ZWRPYmplY3RzIHZpc2l0ZWRP
YmplY3RzOwogICAgIE1lbW9yeUluc3RydW1lbnRhdGlvbkltcGwgaW1wbCh2aXNpdGVkT2JqZWN0
cyk7CiAgICAgU3RyaW5nT3duZXJJbnN0cnVtZW50ZWQgc3RyaW5nT3duZXJJbnN0cnVtZW50ZWQ7
CisgICAgc3RyaW5nT3duZXJJbnN0cnVtZW50ZWQubV9uYW1lLmNoYXJhY3RlcnMoKTsgLy8gRm9y
Y2UgMTZiaXQgc2hhZG93IGNyZWF0aW9uLgogICAgIGltcGwuYWRkUm9vdE9iamVjdChzdHJpbmdP
d25lckluc3RydW1lbnRlZCk7Ci0gICAgRVhQRUNUX0VRKHN0cmluZ093bmVySW5zdHJ1bWVudGVk
Lm1fbmFtZS5pbXBsKCktPnNpemVJbkJ5dGVzKCksIGltcGwucmVwb3J0ZWRTaXplRm9yQWxsVHlw
ZXMoKSk7CisgICAgRVhQRUNUX0VRKHNpemVvZihTdHJpbmdJbXBsKSArIHN0cmluZ093bmVySW5z
dHJ1bWVudGVkLm1fbmFtZS5sZW5ndGgoKSAqIDIsIGltcGwucmVwb3J0ZWRTaXplRm9yQWxsVHlw
ZXMoKSk7CiAgICAgRVhQRUNUX0VRKDIsIHZpc2l0ZWRPYmplY3RzLnNpemUoKSk7CiB9CiAK
</data>
<flag name="review"
          id="175035"
          type_id="1"
          status="+"
          setter="yurys"
    />
    <flag name="commit-queue"
          id="175108"
          type_id="3"
          status="-"
          setter="webkit.review.bot"
    />
          </attachment>
      

    </bug>

</bugzilla>