<?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>236196</bug_id>
          
          <creation_ts>2022-02-05 20:46:40 -0800</creation_ts>
          <short_desc>Adjust `platformResetStateToConsistentValues` to avoid grabbing the general pasteboard when possible</short_desc>
          <delta_ts>2022-02-06 11:46:13 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Tools / Tests</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Wenson Hsieh">wenson_hsieh</reporter>
          <assigned_to name="Wenson Hsieh">wenson_hsieh</assigned_to>
          <cc>akeerthi</cc>
    
    <cc>bdakin</cc>
    
    <cc>darin</cc>
    
    <cc>megan_gardner</cc>
    
    <cc>ryanhaddad</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit-bot-watchers-bugzilla</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1837846</commentid>
    <comment_count>0</comment_count>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2022-02-05 20:46:40 -0800</bug_when>
    <thetext>Make it possible to work around rdar://86327357 by skipping layout tests that time out.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1837848</commentid>
    <comment_count>1</comment_count>
      <attachid>451024</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2022-02-05 21:06:36 -0800</bug_when>
    <thetext>Created attachment 451024
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1837886</commentid>
    <comment_count>2</comment_count>
      <attachid>451024</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2022-02-06 07:39:41 -0800</bug_when>
    <thetext>Comment on attachment 451024
Patch

Thanks for the review!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1837890</commentid>
    <comment_count>3</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2022-02-06 08:15:19 -0800</bug_when>
    <thetext>Committed r289169 (246865@main): &lt;https://commits.webkit.org/246865@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 451024.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1837891</commentid>
    <comment_count>4</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2022-02-06 08:16:17 -0800</bug_when>
    <thetext>&lt;rdar://problem/88544615&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1837919</commentid>
    <comment_count>5</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2022-02-06 11:40:54 -0800</bug_when>
    <thetext>It&apos;s great to limit the damage like this.

Are the pasteboardChanged notifications synchronous? A little concerned if this adds more races to the execution.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1837921</commentid>
    <comment_count>6</comment_count>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2022-02-06 11:46:13 -0800</bug_when>
    <thetext>(In reply to Alexey Proskuryakov from comment #5)
&gt; It&apos;s great to limit the damage like this.
&gt; 
&gt; Are the pasteboardChanged notifications synchronous? A little concerned if
&gt; this adds more races to the execution.

Indeed they are! (I verified this in a separate test app that calls `-[UIPasteboard setItemProviders:]` and listens for this notification, with logging statements):

```
- (void)viewDidLoad
{
    [super viewDidLoad];

    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(pasteboardChanged:) name:UIPasteboardChangedNotification object:nil];

    __auto_type pasteboard = [UIPasteboard generalPasteboard];
    __auto_type string = [[NSAttributedString alloc] initWithString:@&quot;hello world&quot;];
    __auto_type itemProvider = [[NSItemProvider alloc] initWithObject:string];

    NSLog(@&quot;%@ change count before: %tu&quot;, pasteboard, pasteboard.changeCount);
    [pasteboard setItemProviders:@[ itemProvider ]];
    NSLog(@&quot;%@ change count after: %tu&quot;, pasteboard, pasteboard.changeCount);
}

- (void)pasteboardChanged:(NSNotification *)notification
{
    NSLog(@&quot;Pasteboard changed!&quot;);
}
```

with output:

```
UIPasteboardTest[25500:1935953] &lt;_UIConcretePasteboard: 0x6000026604c0&gt; change count before: 20398
UIPasteboardTest[25500:1935953] Pasteboard changed!
UIPasteboardTest[25500:1935953] &lt;_UIConcretePasteboard: 0x6000026604c0&gt; change count after: 20399
```</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>451024</attachid>
            <date>2022-02-05 21:06:36 -0800</date>
            <delta_ts>2022-02-06 08:15:20 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-236196-20220205210635.patch</filename>
            <type>text/plain</type>
            <size>15749</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg5MTA0CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggYmQ4YTJhY2M0OTA0ZTU3YTNlNTNkYTkzYTgwMGJkYWM3
MjNjNWJjZC4uNzU5ZmU2OWFmNmY3MDQ2NWIyYzAzMjFkZTliOWI3NjMwNjYxNjM2MiAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQx
IEBACisyMDIyLTAyLTA1ICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgor
CisgICAgICAgIEFkanVzdCBgcGxhdGZvcm1SZXNldFN0YXRlVG9Db25zaXN0ZW50VmFsdWVzYCB0
byBhdm9pZCBncmFiYmluZyB0aGUgZ2VuZXJhbCBwYXN0ZWJvYXJkIHdoZW4gcG9zc2libGUKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzNjE5NgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEZvciByZWFzb25z
IHRoYXQgYXJlIHN0aWxsIHVua25vd24sIHdoZW4gcnVubmluZyBsYXlvdXQgdGVzdHMgaW4gdGhl
IGlPUyAxNS40IHNpbXVsYXRvciwgdGhlIGlPUyBzaW11bGF0b3IncworICAgICAgICBgcGFzdGVk
YCBzb21ldGltZXMgZ2V0cyBpbnRvIGEgc3RhdGUgd2hlcmUgdGhlIHdvcmsgcXVldWUgKGNvbS5h
cHBsZS5wYXN0ZWJvYXJkLlBCUGFzdGVib2FyZE1vZGVsLXdvcmstcXVldWUpCisgICAgICAgIGdl
dHMgcGVybWFuZW50bHkgc3R1Y2sgd2hpbGUgYXR0ZW1wdGluZyB0byBzYXZlIHBhc3RlYm9hcmQg
aXRlbXMuCisKKyAgICAgICAgT25jZSBpbiB0aGlzIHN0YXRlLCBhbGwgc3Vic2VxdWVudCBsYXlv
dXQgdGVzdHMgd2lsbCB0aW1lIG91dCAocmVnYXJkbGVzcyBvZiB3aGV0aGVyIHRoZSB0ZXN0cyB0
aGVtc2VsdmVzCisgICAgICAgIGV4ZXJjaXNlIGNvcHkgYW5kIHBhc3RlKSwgc2luY2UgdGhlIHBy
b2Nlc3Mgb2YgcmVzZXR0aW5nIHRoZSBoYXJuZXNzIHRvIGEgY29uc2lzdGVudCBzdGF0ZSBhbHdh
eXMgdHJpZXMgdG8gY2xlYXIKKyAgICAgICAgdGhlIGdlbmVyYWwgcGFzdGVib2FyZCBieSBzZXR0
aW5nIGBpdGVtc2AgdG8gYW4gZW1wdHkgYXJyYXkuIFRoaXMgbWVhbnMgdGhhdCBldmVyeSBsYXlv
dXQgdGVzdCB0aGF0IHRyaWVzIHRvCisgICAgICAgIHN0YXJ0IGFmdGVyIGdldHRpbmcgaW50byB0
aGUgYWJvdmUgc3RhdGUgd2lsbCBoYW5nIGR1cmluZyBzdGF0ZSByZXNldCwgYmVmb3JlIGl0IGV2
ZW4gZ2V0cyBhIGNoYW5jZSB0byBsb2FkIHRoZQorICAgICAgICBsYXlvdXQgdGVzdC4KKworICAg
ICAgICBUbyBhdm9pZCB0aGlzLCBvbmx5IGNsZWFyIHRoZSBnZW5lcmFsIHBhc3RlYm9hcmQgaWYg
dGhlIHRlc3QgYWN0dWFsbHkgYXR0ZW1wdGVkIHRvIGFkZCBkYXRhIHRvIHRoZSBwYXN0ZWJvYXJk
LgorICAgICAgICBXaGlsZSB0aGlzIGRvZXNuJ3QgZml4IGEgbGFyZ2UgbnVtYmVyIG9mIGVkaXRp
bmcgYW5kIGNvcHkvcGFzdGUtcmVsYXRlZCBsYXlvdXQgdGVzdHMgb24gaU9TIDE1LjQsIGl0IGRv
ZXMgYWxsb3cKKyAgICAgICAgdXMgdG8gc2tpcCB0aGVzZSB0ZXN0cyBmb3Igbm93IGFuZCBjb250
aW51ZSBydW5uaW5nIHRoZSByZW1haW5pbmcgbGF5b3V0IHRlc3RzLgorCisgICAgICAgICogV2Vi
S2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5oOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5u
ZXIvV2ViS2l0VGVzdFJ1bm5lci54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAq
IFdlYktpdFRlc3RSdW5uZXIvaW9zL1Rlc3RDb250cm9sbGVySU9TLm1tOgorICAgICAgICAoV1RS
OjpUZXN0Q29udHJvbGxlcjo6cGxhdGZvcm1SZXNldFN0YXRlVG9Db25zaXN0ZW50VmFsdWVzKToK
KyAgICAgICAgKFdUUjo6VGVzdENvbnRyb2xsZXI6OnBhc3RlYm9hcmRDb25zaXN0ZW5jeUVuZm9y
Y2VyKToKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL2lvcy9VSVBhc3RlYm9hcmRDb25zaXN0
ZW5jeUVuZm9yY2VyLmg6IEFkZGVkLgorCisgICAgICAgIEFkZCBhIGhlbHBlciBjbGFzcyB0aGF0
IGxpc3RlbnMgZm9yIG5vdGlmaWNhdGlvbnMgd2hlbmV2ZXIgdGhlIGNvbnRlbnRzIG9mIGFueSBw
YXN0ZWJvYXJkIGNoYW5nZXM7IGlmIHRoZSBuYW1lCisgICAgICAgIG9mIHRoZSBjaGFuZ2VkIHBh
c3RlYm9hcmQgbWF0Y2hlcywgd2UgY2xlYXIgb3V0IGl0cyBpdGVtcyB3aGVuIGAtY2xlYXJQYXN0
ZWJvYXJkYCBpcyBpbnZva2VkLiBJdCdzIGNyaXRpY2FsIHRvCisgICAgICAgIHBhc3Mgb25seSBh
IHBhc3RlYm9hcmQgbmFtZSBoZXJlIGluc3RlYWQgb2YgYSBwYXN0ZWJvYXJkIGl0c2VsZiwgc2lu
Y2UgZXZlbiBjYWxsaW5nIGArZ2VuZXJhbFBhc3RlYm9hcmRgIGNhdXNlcworICAgICAgICB0aGUg
dGVzdCB0byBoYW5nLgorCisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9pb3MvVUlQYXN0ZWJv
YXJkQ29uc2lzdGVuY3lFbmZvcmNlci5tbTogQWRkZWQuCisgICAgICAgICgtW1VJUGFzdGVib2Fy
ZENvbnNpc3RlbmN5RW5mb3JjZXIgaW5pdFdpdGhQYXN0ZWJvYXJkTmFtZTpdKToKKyAgICAgICAg
KC1bVUlQYXN0ZWJvYXJkQ29uc2lzdGVuY3lFbmZvcmNlciBjbGVhclBhc3RlYm9hcmRdKToKKyAg
ICAgICAgKC1bVUlQYXN0ZWJvYXJkQ29uc2lzdGVuY3lFbmZvcmNlciBwYXN0ZWJvYXJkQ2hhbmdl
ZDpdKToKKwogMjAyMi0wMi0wMyAgRWxsaW90dCBXaWxsaWFtcyAgPGVtd0BhcHBsZS5jb20+CiAK
ICAgICAgICAgW1hDQnVpbGRdIEFkZCBoZWFkZXJzLW9ubHkgZGVwZW5kZW5jaWVzIHRvIHByb2pl
Y3RzIGluIFRvb2xzLwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29u
dHJvbGxlci5oIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5oCmluZGV4
IDY5YTA3ODY5ZGFhZDhkMzgxMDhmZmQzMzI2M2E4MmE5OTM2MzlkODIuLmI1MmFmNjY1NTUyYjk0
ZDI4ZmJjZTliNGFhZjYzYzg2ZTljMWU0OGEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RS
dW5uZXIvVGVzdENvbnRyb2xsZXIuaAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RD
b250cm9sbGVyLmgKQEAgLTQ3LDYgKzQ3LDcgQEAKIAogT0JKQ19DTEFTUyBOU1N0cmluZzsKIE9C
SkNfQ0xBU1MgVUlLZXlib2FyZElucHV0TW9kZTsKK09CSkNfQ0xBU1MgVUlQYXN0ZWJvYXJkQ29u
c2lzdGVuY3lFbmZvcmNlcjsKIE9CSkNfQ0xBU1MgV0tXZWJWaWV3Q29uZmlndXJhdGlvbjsKIAog
bmFtZXNwYWNlIFdUUiB7CkBAIC00MzEsNiArNDMyLDEwIEBAIHByaXZhdGU6CiAgICAgdm9pZCBk
ZWNpZGVQb2xpY3lGb3JHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0SWZQb3NzaWJsZSgpOwog
ICAgIHZvaWQgZGVjaWRlUG9saWN5Rm9yVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RJZlBvc3Np
YmxlKCk7CiAKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKQorICAgIFVJUGFzdGVib2FyZENvbnNp
c3RlbmN5RW5mb3JjZXIgKnBhc3RlYm9hcmRDb25zaXN0ZW5jeUVuZm9yY2VyKCk7CisjZW5kaWYK
KwogICAgIC8vIFdLQ29udGV4dEluamVjdGVkQnVuZGxlQ2xpZW50CiAgICAgc3RhdGljIHZvaWQg
ZGlkUmVjZWl2ZU1lc3NhZ2VGcm9tSW5qZWN0ZWRCdW5kbGUoV0tDb250ZXh0UmVmLCBXS1N0cmlu
Z1JlZiBtZXNzYWdlTmFtZSwgV0tUeXBlUmVmIG1lc3NhZ2VCb2R5LCBjb25zdCB2b2lkKik7CiAg
ICAgc3RhdGljIHZvaWQgZGlkUmVjZWl2ZVN5bmNocm9ub3VzTWVzc2FnZUZyb21JbmplY3RlZEJ1
bmRsZVdpdGhMaXN0ZW5lcihXS0NvbnRleHRSZWYsIFdLU3RyaW5nUmVmIG1lc3NhZ2VOYW1lLCBX
S1R5cGVSZWYgbWVzc2FnZUJvZHksIFdLTWVzc2FnZUxpc3RlbmVyUmVmLCBjb25zdCB2b2lkKik7
CkBAIC01NzUsNiArNTgwLDcgQEAgcHJpdmF0ZToKIAogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkp
CiAgICAgVmVjdG9yPHN0ZDo6dW5pcXVlX3B0cjxJbnN0YW5jZU1ldGhvZFN3aXp6bGVyPj4gbV9p
bnB1dE1vZGVTd2l6emxlcnM7CisgICAgUmV0YWluUHRyPFVJUGFzdGVib2FyZENvbnNpc3RlbmN5
RW5mb3JjZXI+IG1fcGFzdGVib2FyZENvbnNpc3RlbmN5RW5mb3JjZXI7CiAgICAgUmV0YWluUHRy
PFVJS2V5Ym9hcmRJbnB1dE1vZGU+IG1fb3ZlcnJpZGRlbktleWJvYXJkSW5wdXRNb2RlOwogICAg
IFZlY3RvcjxzdGQ6OnVuaXF1ZV9wdHI8SW5zdGFuY2VNZXRob2RTd2l6emxlcj4+IG1fcHJlc2Vu
dFBvcG92ZXJTd2l6emxlcnM7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RS
dW5uZXIvV2ViS2l0VGVzdFJ1bm5lci54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvVG9vbHMv
V2ViS2l0VGVzdFJ1bm5lci9XZWJLaXRUZXN0UnVubmVyLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oKaW5kZXggMWY5YzE5MWQzY2I1ZDU3OGJmNmI4NjJjMzQyODY1ZDM5ZmU3ZGRmNC4uNjAxYTlj
ZGRlMjVkM2U2NTcyNGNlNjhlOTEwMDhiMWYwMmQ0ZDI2ZCAxMDA2NDQKLS0tIGEvVG9vbHMvV2Vi
S2l0VGVzdFJ1bm5lci9XZWJLaXRUZXN0UnVubmVyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oK
KysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9XZWJLaXRUZXN0UnVubmVyLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKQEAgLTE2MCw2ICsxNjAsOCBAQAogCQlFMTMyQUEzRDE3Q0U3NzZGMDA2
MTFERjAgLyogV2ViS2l0VGVzdFJ1bm5lckV2ZW50Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTEzMkFBM0IxN0NFNzc2RjAwNjExREYwIC8qIFdlYktp
dFRlc3RSdW5uZXJFdmVudC5tbSAqLzsgfTsKIAkJRTFDNjQyQzYxN0NCQ0Q0QzAwRDY2QTNDIC8q
IFdlYktpdFRlc3RSdW5uZXJQYXN0ZWJvYXJkLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gRTFDNjQyQzQxN0NCQ0Q0QzAwRDY2QTNDIC8qIFdlYktpdFRl
c3RSdW5uZXJQYXN0ZWJvYXJkLm1tICovOyB9OwogCQlGNDAxMEI3RTI0REEyMDUzMDBBODc2RTIg
LyogUG9zZUFzQ2xhc3MubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBGNDAxMEI3QzI0REEyMDQ4MDBBODc2RTIgLyogUG9zZUFzQ2xhc3MubW0gKi87IH07
CisJCUY0MTVDMjJDMjdBRjUyRDMwMDI4RjUwNSAvKiBVSVBhc3RlYm9hcmRDb25zaXN0ZW5jeUVu
Zm9yY2VyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBG
NDE1QzIyQTI3QUY1MkQzMDAyOEY1MDUgLyogVUlQYXN0ZWJvYXJkQ29uc2lzdGVuY3lFbmZvcmNl
ci5oICovOyB9OworCQlGNDE1QzIzNTI3QUY1QjM5MDAyOEY1MDUgLyogVUlQYXN0ZWJvYXJkQ29u
c2lzdGVuY3lFbmZvcmNlci5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEY0MTVDMjJCMjdBRjUyRDMwMDI4RjUwNSAvKiBVSVBhc3RlYm9hcmRDb25zaXN0
ZW5jeUVuZm9yY2VyLm1tICovOyB9OwogCQlGNDRBNTMxNzIxQjg5OUUyMDBEQkI5OUMgLyogQ2xh
c3NNZXRob2RTd2l6emxlci5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEY0NEE1MzE0MjFCODk5REEwMERCQjk5QyAvKiBDbGFzc01ldGhvZFN3aXp6bGVy
Lm1tICovOyB9OwogCQlGNDRBNTMxODIxQjg5OUU1MDBEQkI5OUMgLyogSW5zdGFuY2VNZXRob2RT
d2l6emxlci5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEY0NEE1MzE2MjFCODk5REEwMERCQjk5QyAvKiBJbnN0YW5jZU1ldGhvZFN3aXp6bGVyLm1tICov
OyB9OwogCQlGNDYyNDBCMTIxNzAxM0U1MDA5MTdCMTYgLyogVUlTY3JpcHRDb250cm9sbGVyQ29j
b2EubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNDYy
NDBBRjIxNzAxMjgzMDA5MTdCMTYgLyogVUlTY3JpcHRDb250cm9sbGVyQ29jb2EubW0gKi87IH07
CkBAIC00MzYsNiArNDM4LDggQEAKIAkJRTFDNjQyQzUxN0NCQ0Q0QzAwRDY2QTNDIC8qIFdlYktp
dFRlc3RSdW5uZXJQYXN0ZWJvYXJkLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFdlYktpdFRlc3RSdW5uZXJQYXN0ZWJvYXJkLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCUY0MDEwQjdDMjREQTIwNDgwMEE4NzZFMiAvKiBQb3NlQXNDbGFzcy5tbSAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgbmFtZSA9IFBvc2VBc0NsYXNzLm1tOyBwYXRoID0gLi4v
VGVzdFJ1bm5lclNoYXJlZC9jb2NvYS9Qb3NlQXNDbGFzcy5tbTsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJRjQwMTBCN0QyNERBMjA0ODAwQTg3NkUyIC8qIFBvc2VBc0NsYXNzLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFBvc2VBc0NsYXNzLmg7IHBhdGggPSAuLi9U
ZXN0UnVubmVyU2hhcmVkL2NvY29hL1Bvc2VBc0NsYXNzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCUY0MTVDMjJBMjdBRjUyRDMwMDI4RjUwNSAvKiBVSVBhc3RlYm9hcmRDb25zaXN0
ZW5jeUVuZm9yY2VyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFVJUGFzdGVib2FyZENvbnNpc3RlbmN5RW5m
b3JjZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRjQxNUMyMkIyN0FGNTJEMzAw
MjhGNTA1IC8qIFVJUGFzdGVib2FyZENvbnNpc3RlbmN5RW5mb3JjZXIubW0gKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpj
cHA7IHBhdGggPSBVSVBhc3RlYm9hcmRDb25zaXN0ZW5jeUVuZm9yY2VyLm1tOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQlGNDRBNTMxMzIxQjg5OURBMDBEQkI5OUMgLyogSW5zdGFuY2VN
ZXRob2RTd2l6emxlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBJbnN0YW5j
ZU1ldGhvZFN3aXp6bGVyLmg7IHBhdGggPSAuLi9UZXN0UnVubmVyU2hhcmVkL2NvY29hL0luc3Rh
bmNlTWV0aG9kU3dpenpsZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjQ0QTUz
MTQyMUI4OTlEQTAwREJCOTlDIC8qIENsYXNzTWV0aG9kU3dpenpsZXIubW0gKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5vYmpjcHA7IG5hbWUgPSBDbGFzc01ldGhvZFN3aXp6bGVyLm1tOyBwYXRo
ID0gLi4vVGVzdFJ1bm5lclNoYXJlZC9jb2NvYS9DbGFzc01ldGhvZFN3aXp6bGVyLm1tOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNDRBNTMxNTIxQjg5OURBMDBEQkI5OUMgLyogQ2xh
c3NNZXRob2RTd2l6emxlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBDbGFz
c01ldGhvZFN3aXp6bGVyLmg7IHBhdGggPSAuLi9UZXN0UnVubmVyU2hhcmVkL2NvY29hL0NsYXNz
TWV0aG9kU3dpenpsZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTc0NCw2ICs3
NDgsOCBAQAogCQkJCTBGRUJGODU5MUJCNjFERjIwMDI4NzIyRCAvKiBISURFdmVudEdlbmVyYXRv
ci5tbSAqLywKIAkJCQkyRUU1MkQxMzE4OTBBOUZCMDAxMEVEMjEgLyogUGxhdGZvcm1XZWJWaWV3
SU9TLm1tICovLAogCQkJCTJFRTUyRDE0MTg5MEE5RkIwMDEwRUQyMSAvKiBUZXN0Q29udHJvbGxl
cklPUy5tbSAqLywKKwkJCQlGNDE1QzIyQTI3QUY1MkQzMDAyOEY1MDUgLyogVUlQYXN0ZWJvYXJk
Q29uc2lzdGVuY3lFbmZvcmNlci5oICovLAorCQkJCUY0MTVDMjJCMjdBRjUyRDMwMDI4RjUwNSAv
KiBVSVBhc3RlYm9hcmRDb25zaXN0ZW5jeUVuZm9yY2VyLm1tICovLAogCQkJCTJEMEJFRTE3MjJF
QUQxMzYwMDkyQjczOCAvKiBVSVNjcmlwdENvbnRyb2xsZXJJT1MuaCAqLywKIAkJCQkwRjczQjU1
QjFCQTg5MDQyMDA0QjNFRjQgLyogVUlTY3JpcHRDb250cm9sbGVySU9TLm1tICovLAogCQkJKTsK
QEAgLTk5MSw2ICs5OTcsNyBAQAogCQkJCTBGNzNCNTUyMUJBNzg5NjgwMDRCM0VGNCAvKiBKU1VJ
U2NyaXB0Q29udHJvbGxlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMkRGQTk4NDgxRDdGNzBDRjAw
QUZGMkM5IC8qIFNoYXJlZEV2ZW50U3RyZWFtc01hYy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMjkw
NEZBMUUyNjVDQzVEOTAwQTdFQkM5IC8qIFN0cmluZ0Z1bmN0aW9uc0NvY29hLmggaW4gSGVhZGVy
cyAqLywKKwkJCQlGNDE1QzIyQzI3QUY1MkQzMDAyOEY1MDUgLyogVUlQYXN0ZWJvYXJkQ29uc2lz
dGVuY3lFbmZvcmNlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMkQwNThFMDkyMkUyRUUyMjAwRTRD
MTQ1IC8qIFVJU2NyaXB0Q29udHJvbGxlckNvY29hLmggaW4gSGVhZGVycyAqLywKIAkJCQkyRDA1
OEUwQjIyRTJFRjZEMDBFNEMxNDUgLyogVUlTY3JpcHRDb250cm9sbGVyTWFjLmggaW4gSGVhZGVy
cyAqLywKIAkJCSk7CkBAIC0xMjIyLDYgKzEyMjksNyBAQAogCQkJCTJFNjNFRDk0MTg5MUFEQUQw
MDJBN0FGQyAvKiBtYWluSU9TLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJMkU2M0VEOTExODkxQURB
RDAwMkE3QUZDIC8qIFBsYXRmb3JtV2ViVmlld0lPUy5tbSBpbiBTb3VyY2VzICovLAogCQkJCTJF
NjNFRDkyMTg5MUFEQUQwMDJBN0FGQyAvKiBUZXN0Q29udHJvbGxlcklPUy5tbSBpbiBTb3VyY2Vz
ICovLAorCQkJCUY0MTVDMjM1MjdBRjVCMzkwMDI4RjUwNSAvKiBVSVBhc3RlYm9hcmRDb25zaXN0
ZW5jeUVuZm9yY2VyLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxv
eW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRU
ZXN0UnVubmVyL2lvcy9UZXN0Q29udHJvbGxlcklPUy5tbSBiL1Rvb2xzL1dlYktpdFRlc3RSdW5u
ZXIvaW9zL1Rlc3RDb250cm9sbGVySU9TLm1tCmluZGV4IDFlYThhMWFkY2ViZmM1MDNkN2NmZmNi
NGZjZjg1NDZhN2Y5ZGI3OWUuLjEzYzBlOWJhNjc1MmEzY2FmZTA0YjBmZDdmMjM3MDg2ZTE1YWQ1
YTEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvaW9zL1Rlc3RDb250cm9sbGVy
SU9TLm1tCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvaW9zL1Rlc3RDb250cm9sbGVySU9T
Lm1tCkBAIC0zNCw2ICszNCw3IEBACiAjaW1wb3J0ICJUZXN0UnVubmVyV0tXZWJWaWV3LmgiCiAj
aW1wb3J0ICJUZXh0SW5wdXRTUEkuaCIKICNpbXBvcnQgIlVJS2l0U1BJLmgiCisjaW1wb3J0ICJV
SVBhc3RlYm9hcmRDb25zaXN0ZW5jeUVuZm9yY2VyLmgiCiAjaW1wb3J0IDxGb3VuZGF0aW9uL0Zv
dW5kYXRpb24uaD4KICNpbXBvcnQgPFVJS2l0L1VJS2l0Lmg+CiAjaW1wb3J0IDxXZWJLaXQvV0tQ
cmVmZXJlbmNlc1ByaXZhdGUuaD4KQEAgLTE1NCw3ICsxNTUsNyBAQCBib29sIFRlc3RDb250cm9s
bGVyOjpwbGF0Zm9ybVJlc2V0U3RhdGVUb0NvbnNpc3RlbnRWYWx1ZXMoY29uc3QgVGVzdE9wdGlv
bnMmIG9wdAogICAgIGNvY29hUmVzZXRTdGF0ZVRvQ29uc2lzdGVudFZhbHVlcyhvcHRpb25zKTsK
IAogICAgIFtVSUtleWJvYXJkSW1wbC5hY3RpdmVJbnN0YW5jZSBzZXRDb3JyZWN0aW9uTGVhcm5p
bmdBbGxvd2VkOk5PXTsKLSAgICBbVUlQYXN0ZWJvYXJkIGdlbmVyYWxQYXN0ZWJvYXJkXS5pdGVt
cyA9IEBbIF07CisgICAgW3Bhc3RlYm9hcmRDb25zaXN0ZW5jeUVuZm9yY2VyKCkgY2xlYXJQYXN0
ZWJvYXJkXTsKICAgICBbW1VJQXBwbGljYXRpb24gc2hhcmVkQXBwbGljYXRpb25dIF9jYW5jZWxB
bGxUb3VjaGVzXTsKICAgICBbW1VJRGV2aWNlIGN1cnJlbnREZXZpY2VdIHNldE9yaWVudGF0aW9u
OlVJRGV2aWNlT3JpZW50YXRpb25Qb3J0cmFpdCBhbmltYXRlZDpOT107CiAKQEAgLTM4NCw0ICsz
ODUsMTEgQEAgdm9pZCBUZXN0Q29udHJvbGxlcjo6c2V0S2V5Ym9hcmRJbnB1dE1vZGVJZGVudGlm
aWVyKGNvbnN0IFN0cmluZyYgaWRlbnRpZmllcikKICAgICBbVUlLZXlib2FyZEltcGwuc2hhcmVk
SW5zdGFuY2UgcHJlcGFyZUtleWJvYXJkSW5wdXRNb2RlRnJvbVByZWZlcmVuY2VzOm5pbF07CiB9
CiAKK1VJUGFzdGVib2FyZENvbnNpc3RlbmN5RW5mb3JjZXIgKlRlc3RDb250cm9sbGVyOjpwYXN0
ZWJvYXJkQ29uc2lzdGVuY3lFbmZvcmNlcigpCit7CisgICAgaWYgKCFtX3Bhc3RlYm9hcmRDb25z
aXN0ZW5jeUVuZm9yY2VyKQorICAgICAgICBtX3Bhc3RlYm9hcmRDb25zaXN0ZW5jeUVuZm9yY2Vy
ID0gYWRvcHROUyhbW1VJUGFzdGVib2FyZENvbnNpc3RlbmN5RW5mb3JjZXIgYWxsb2NdIGluaXRX
aXRoUGFzdGVib2FyZE5hbWU6VUlQYXN0ZWJvYXJkTmFtZUdlbmVyYWxdKTsKKyAgICByZXR1cm4g
bV9wYXN0ZWJvYXJkQ29uc2lzdGVuY3lFbmZvcmNlci5nZXQoKTsKK30KKwogfSAvLyBuYW1lc3Bh
Y2UgV1RSCmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL2lvcy9VSVBhc3RlYm9h
cmRDb25zaXN0ZW5jeUVuZm9yY2VyLmggYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL2lvcy9VSVBh
c3RlYm9hcmRDb25zaXN0ZW5jeUVuZm9yY2VyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uM2Q3YmZmNjZmODNmZjZl
MzhkZGFjYjZjNzk5MzgzNjQxMjEzZjdlOAotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1dlYktp
dFRlc3RSdW5uZXIvaW9zL1VJUGFzdGVib2FyZENvbnNpc3RlbmN5RW5mb3JjZXIuaApAQCAtMCww
ICsxLDM5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIyIEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4K
KyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBQTEFURk9STShJT1Nf
RkFNSUxZKQorCisjaW1wb3J0IDxVSUtpdC9VSVBhc3RlYm9hcmQuaD4KKworQGludGVyZmFjZSBV
SVBhc3RlYm9hcmRDb25zaXN0ZW5jeUVuZm9yY2VyIDogTlNPYmplY3QKKworLSAoaW5zdGFuY2V0
eXBlKWluaXRXaXRoUGFzdGVib2FyZE5hbWU6KFVJUGFzdGVib2FyZE5hbWUpcGFzdGVib2FyZE5h
bWU7CistICh2b2lkKWNsZWFyUGFzdGVib2FyZDsKKworQGVuZAorCisjZW5kaWYgLy8gUExBVEZP
Uk0oSU9TX0ZBTUlMWSkKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvaW9zL1VJ
UGFzdGVib2FyZENvbnNpc3RlbmN5RW5mb3JjZXIubW0gYi9Ub29scy9XZWJLaXRUZXN0UnVubmVy
L2lvcy9VSVBhc3RlYm9hcmRDb25zaXN0ZW5jeUVuZm9yY2VyLm1tCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmY0ODI0
NTA2ZDQ3Zjk4NGQ2MzQyNDI3ZDgwZjcyOWM1ODBlOWE2MDIKLS0tIC9kZXYvbnVsbAorKysgYi9U
b29scy9XZWJLaXRUZXN0UnVubmVyL2lvcy9VSVBhc3RlYm9hcmRDb25zaXN0ZW5jeUVuZm9yY2Vy
Lm1tCkBAIC0wLDAgKzEsNzAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjIgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAq
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1wb3J0ICJjb25maWcuaCIKKyNp
bXBvcnQgIlVJUGFzdGVib2FyZENvbnNpc3RlbmN5RW5mb3JjZXIuaCIKKworI2lmIFBMQVRGT1JN
KElPU19GQU1JTFkpCisKKyNpbXBvcnQgPFVJS2l0L1VJS2l0Lmg+CisjaW1wb3J0IDx3dGYvUmV0
YWluUHRyLmg+CisKK0BpbXBsZW1lbnRhdGlvbiBVSVBhc3RlYm9hcmRDb25zaXN0ZW5jeUVuZm9y
Y2VyIHsKKyAgICBSZXRhaW5QdHI8VUlQYXN0ZWJvYXJkPiBfcGFzdGVib2FyZFRvUmVzZXQ7Cisg
ICAgUmV0YWluUHRyPFVJUGFzdGVib2FyZE5hbWU+IF9wYXN0ZWJvYXJkTmFtZTsKK30KKworLSAo
aW5zdGFuY2V0eXBlKWluaXRXaXRoUGFzdGVib2FyZE5hbWU6KFVJUGFzdGVib2FyZE5hbWUpcGFz
dGVib2FyZE5hbWUKK3sKKyAgICBpZiAoIShzZWxmID0gW3N1cGVyIGluaXRdKSkKKyAgICAgICAg
cmV0dXJuIG5pbDsKKworICAgIF9wYXN0ZWJvYXJkTmFtZSA9IHBhc3RlYm9hcmROYW1lOworICAg
IFtbTlNOb3RpZmljYXRpb25DZW50ZXIgZGVmYXVsdENlbnRlcl0gYWRkT2JzZXJ2ZXI6c2VsZiBz
ZWxlY3RvcjpAc2VsZWN0b3IocGFzdGVib2FyZENoYW5nZWQ6KSBuYW1lOlVJUGFzdGVib2FyZENo
YW5nZWROb3RpZmljYXRpb24gb2JqZWN0Om5pbF07CisgICAgcmV0dXJuIHNlbGY7Cit9CisKKy0g
KHZvaWQpY2xlYXJQYXN0ZWJvYXJkCit7CisgICAgW3N0ZDo6ZXhjaGFuZ2UoX3Bhc3RlYm9hcmRU
b1Jlc2V0LCBuaWwpIHNldEl0ZW1zOkBbIF1dOworfQorCistICh2b2lkKXBhc3RlYm9hcmRDaGFu
Z2VkOihOU05vdGlmaWNhdGlvbiAqKW5vdGlmaWNhdGlvbgoreworICAgIGlmIChfcGFzdGVib2Fy
ZFRvUmVzZXQpCisgICAgICAgIHJldHVybjsKKworICAgIGF1dG8gcGFzdGVib2FyZCA9IGR5bmFt
aWNfb2JqY19jYXN0PFVJUGFzdGVib2FyZD4obm90aWZpY2F0aW9uLm9iamVjdCk7CisgICAgaWYg
KCFbX3Bhc3RlYm9hcmROYW1lIGlzRXF1YWxUb1N0cmluZzpwYXN0ZWJvYXJkLm5hbWVdKQorICAg
ICAgICByZXR1cm47CisKKyAgICBhdXRvIHVzZXJJbmZvRGljdGlvbmFyeSA9IGR5bmFtaWNfb2Jq
Y19jYXN0PE5TRGljdGlvbmFyeT4obm90aWZpY2F0aW9uLnVzZXJJbmZvKTsKKyAgICBpZiAoW2R5
bmFtaWNfb2JqY19jYXN0PE5TQXJyYXk+KFt1c2VySW5mb0RpY3Rpb25hcnkgb2JqZWN0Rm9yS2V5
OlVJUGFzdGVib2FyZENoYW5nZWRUeXBlc0FkZGVkS2V5XSkgY291bnRdKQorICAgICAgICBfcGFz
dGVib2FyZFRvUmVzZXQgPSBwYXN0ZWJvYXJkOworfQorCitAZW5kCisKKyNlbmRpZiAvLyBQTEFU
Rk9STShJT1NfRkFNSUxZKQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>