<?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>93652</bug_id>
          
          <creation_ts>2012-08-09 13:51:12 -0700</creation_ts>
          <short_desc>[WK2] Get rid of ProcessModelSharedSecondaryThread</short_desc>
          <delta_ts>2012-08-12 09:00:40 -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>WebKit2</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Alexey Proskuryakov">ap</reporter>
          <assigned_to name="Sam Weinig">sam</assigned_to>
          <cc>cmarcelo</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>menard</cc>
    
    <cc>rakuco</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>zoltan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>691801</commentid>
    <comment_count>0</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2012-08-09 13:51:12 -0700</bug_when>
    <thetext>It&apos;s been broken for too long.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>693179</commentid>
    <comment_count>1</comment_count>
      <attachid>157889</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2012-08-11 23:01:30 -0700</bug_when>
    <thetext>Created attachment 157889
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>693180</commentid>
    <comment_count>2</comment_count>
      <attachid>157889</attachid>
    <who name="">mitz</who>
    <bug_when>2012-08-11 23:07:41 -0700</bug_when>
    <thetext>Comment on attachment 157889
Patch

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

&gt; Source/WebKit2/ChangeLog:9
&gt; +        the code only serves to confuse. Its time to say good bye to it.

Typo: its</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>693181</commentid>
    <comment_count>3</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2012-08-11 23:09:23 -0700</bug_when>
    <thetext>Committed r125363: &lt;http://trac.webkit.org/changeset/125363&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>693185</commentid>
    <comment_count>4</comment_count>
      <attachid>157889</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2012-08-11 23:48:38 -0700</bug_when>
    <thetext>Comment on attachment 157889
Patch

Please fix MiniBrowser.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>693278</commentid>
    <comment_count>5</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2012-08-12 09:00:40 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; (From update of attachment 157889 [details])
&gt; Please fix MiniBrowser.

I removed the uses from MiniBrowser first, to make this patch smaller (see https://bugs.webkit.org/show_bug.cgi?id=93774).</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>157889</attachid>
            <date>2012-08-11 23:01:30 -0700</date>
            <delta_ts>2012-08-11 23:48:38 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-93652-20120811230104.patch</filename>
            <type>text/plain</type>
            <size>37063</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cJKHJldmlzaW9uIDEyNTM2MikKKysrIFNvdXJjZS9XZWJLaXQyL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQ2IEBACisyMDEyLTA4LTExICBTYW0gV2Vp
bmlnICA8c2FtQHdlYmtpdC5vcmc+CisKKyAgICAgICAgW1dLMl0gR2V0IHJpZCBvZiBQcm9jZXNz
TW9kZWxTaGFyZWRTZWNvbmRhcnlUaHJlYWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTkzNjUyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgVGhlIHRocmVhZGVkIG1vZGVsIGZvciBXZWJLaXQyIGhhcyBiZWVu
IGJyb2tlbiBhIGxvbmcgdGltZSBhbmQgaXRzIGNvbnRpbnVlZCBleGlzdGVuY2UgaW4KKyAgICAg
ICAgdGhlIGNvZGUgb25seSBzZXJ2ZXMgdG8gY29uZnVzZS4gSXRzIHRpbWUgdG8gc2F5IGdvb2Qg
YnllIHRvIGl0LgorCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLQ29udGV4dC5jcHA6Cisg
ICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLQ29udGV4dFByaXZhdGUuaDoKKyAgICAgICAgUmVt
b3ZlIFdLQ29udGV4dEdldFNoYXJlZFRocmVhZENvbnRleHQoKS4KKworICAgICAgICAqIFVJUHJv
Y2Vzcy9Qcm9jZXNzTW9kZWwuaDoKKyAgICAgICAgUmVtb3ZlIFByb2Nlc3NNb2RlbFNoYXJlZFNl
Y29uZGFyeVRocmVhZCBmcm9tIHRoZSBQcm9jZXNzTW9kZWwgZW51bS4KKworICAgICAgICAqIFVJ
UHJvY2Vzcy9XZWJDb250ZXh0LmNwcDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViQ29udGV4dC5o
OgorICAgICAgICBSZW1vdmUgV2ViQ29udGV4dDo6c2hhcmVkVGhyZWFkQ29udGV4dCgpLgorCisg
ICAgICAgICogVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6
OldlYlByb2Nlc3NQcm94eTo6fldlYlByb2Nlc3NQcm94eSk6CisgICAgICAgIChXZWJLaXQ6Oldl
YlByb2Nlc3NQcm94eTo6Y29ubmVjdCk6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQcm94
eTo6aXNMYXVuY2hpbmcpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaDoK
KyAgICAgICAgUmVtb3ZlIHRoZSBUaHJlYWRMYXVuY2hlciBtZW1iZXIgYW5kIHN0b3AgZGVyaXZp
bmcgZnJvbSBUaHJlYWRMYXVuY2hlcjo6Q2xpZW50LgorCisgICAgICAgICogVUlQcm9jZXNzL0xh
dW5jaGVyL1RocmVhZExhdW5jaGVyLmNwcDogUmVtb3ZlZC4KKyAgICAgICAgKiBVSVByb2Nlc3Mv
TGF1bmNoZXIvVGhyZWFkTGF1bmNoZXIuaDogUmVtb3ZlZC4KKyAgICAgICAgKiBVSVByb2Nlc3Mv
TGF1bmNoZXIvZWZsL1RocmVhZExhdW5jaGVyRWZsLmNwcDogUmVtb3ZlZC4KKyAgICAgICAgKiBV
SVByb2Nlc3MvTGF1bmNoZXIvZ3RrL1RocmVhZExhdW5jaGVyR3RrLmNwcDogUmVtb3ZlZC4KKyAg
ICAgICAgKiBVSVByb2Nlc3MvTGF1bmNoZXIvbWFjL1RocmVhZExhdW5jaGVyTWFjLm1tOiBSZW1v
dmVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9MYXVuY2hlci9xdC9UaHJlYWRMYXVuY2hlclF0LmNw
cDogUmVtb3ZlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvTGF1bmNoZXIvd2luL1RocmVhZExhdW5j
aGVyV2luLmNwcDogUmVtb3ZlZC4KKyAgICAgICAgKiBXZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2o6CisgICAgICAgICogd2luL1dlYktpdDIudmNwcm9qOgorICAgICAgICAqIENNYWtl
TGlzdHMudHh0OgorICAgICAgICAqIEdOVW1ha2VmaWxlLmxpc3QuYW06CisgICAgICAgICogUGxh
dGZvcm1FZmwuY21ha2U6CisgICAgICAgICogVGFyZ2V0LnByaToKKyAgICAgICAgUmVtb3ZlIFRo
cmVhZExhdW5jaGVyIGZpbGVzLgorCiAyMDEyLTA4LTExICBTYW0gV2VpbmlnICA8c2FtQHdlYmtp
dC5vcmc+CiAKICAgICAgICAgRW5hYmxlIFhQQyBTZXJ2aWNlIGJhc2VkIFdlYlByb2Nlc3Mgd2l0
aCBydW50aW1lIGZsYWcKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL0NNYWtlTGlzdHMudHh0Cj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL0NNYWtlTGlzdHMudHh0CShyZXZpc2lvbiAxMjUzNTgp
CisrKyBTb3VyY2UvV2ViS2l0Mi9DTWFrZUxpc3RzLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMzQw
LDcgKzM0MCw2IEBAIFNFVChXZWJLaXQyX1NPVVJDRVMKICAgICBVSVByb2Nlc3MvSW5zcGVjdG9y
U2VydmVyL1dlYlNvY2tldFNlcnZlckNvbm5lY3Rpb24uY3BwCiAKICAgICBVSVByb2Nlc3MvTGF1
bmNoZXIvUHJvY2Vzc0xhdW5jaGVyLmNwcAotICAgIFVJUHJvY2Vzcy9MYXVuY2hlci9UaHJlYWRM
YXVuY2hlci5jcHAKIAogICAgIFVJUHJvY2Vzcy9Ob3RpZmljYXRpb25zL05vdGlmaWNhdGlvblBl
cm1pc3Npb25SZXF1ZXN0LmNwcAogICAgIFVJUHJvY2Vzcy9Ob3RpZmljYXRpb25zL05vdGlmaWNh
dGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmNwcApJbmRleDogU291cmNlL1dlYktp
dDIvR05VbWFrZWZpbGUubGlzdC5hbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9HTlVt
YWtlZmlsZS5saXN0LmFtCShyZXZpc2lvbiAxMjUzNTgpCisrKyBTb3VyY2UvV2ViS2l0Mi9HTlVt
YWtlZmlsZS5saXN0LmFtCSh3b3JraW5nIGNvcHkpCkBAIC03NzIsMTEgKzc3Miw4IEBAIHdlYmtp
dDJfc291cmNlcyArPSBcCiAJU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2d0ay9XZWJQb3B1cE1l
bnVQcm94eUd0ay5oIFwKIAlTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZ3RrL1dlYlByZWZlcmVu
Y2VzR3RrLmNwcCBcCiAJU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0xhdW5jaGVyL2d0ay9Qcm9j
ZXNzTGF1bmNoZXJHdGsuY3BwIFwKLQlTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTGF1bmNoZXIv
Z3RrL1RocmVhZExhdW5jaGVyR3RrLmNwcCBcCiAJU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0xh
dW5jaGVyL1Byb2Nlc3NMYXVuY2hlci5jcHAgXAogCVNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9M
YXVuY2hlci9Qcm9jZXNzTGF1bmNoZXIuaCBcCi0JU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0xh
dW5jaGVyL1RocmVhZExhdW5jaGVyLmNwcCBcCi0JU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0xh
dW5jaGVyL1RocmVhZExhdW5jaGVyLmggXAogCVNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Ob3Rp
ZmljYXRpb25zL05vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0LmNwcCBcCiAJU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL05vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVl
c3QuaCBcCiAJU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL05vdGlmaWNhdGlvbnMvTm90aWZpY2F0
aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuY3BwIFwKSW5kZXg6IFNvdXJjZS9XZWJL
aXQyL1BsYXRmb3JtRWZsLmNtYWtlCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1BsYXRm
b3JtRWZsLmNtYWtlCShyZXZpc2lvbiAxMjUzNTgpCisrKyBTb3VyY2UvV2ViS2l0Mi9QbGF0Zm9y
bUVmbC5jbWFrZQkod29ya2luZyBjb3B5KQpAQCAtODMsNyArODMsNiBAQCBMSVNUKEFQUEVORCBX
ZWJLaXQyX1NPVVJDRVMKICAgICBVSVByb2Nlc3Mvc291cC9XZWJTb3VwUmVxdWVzdE1hbmFnZXJQ
cm94eS5jcHAKIAogICAgIFVJUHJvY2Vzcy9MYXVuY2hlci9lZmwvUHJvY2Vzc0xhdW5jaGVyRWZs
LmNwcAotICAgIFVJUHJvY2Vzcy9MYXVuY2hlci9lZmwvVGhyZWFkTGF1bmNoZXJFZmwuY3BwCiAK
ICAgICBVSVByb2Nlc3MvUGx1Z2lucy91bml4L1BsdWdpbkluZm9TdG9yZVVuaXguY3BwCiAKSW5k
ZXg6IFNvdXJjZS9XZWJLaXQyL1RhcmdldC5wcmkKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktp
dDIvVGFyZ2V0LnByaQkocmV2aXNpb24gMTI1MzU4KQorKysgU291cmNlL1dlYktpdDIvVGFyZ2V0
LnByaQkod29ya2luZyBjb3B5KQpAQCAtMjA1LDcgKzIwNSw2IEBAIEhFQURFUlMgKz0gXAogICAg
IFVJUHJvY2Vzcy9HZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmggXAog
ICAgIFVJUHJvY2Vzcy9HZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0UHJveHkuaCBcCiAgICAg
VUlQcm9jZXNzL0xhdW5jaGVyL1Byb2Nlc3NMYXVuY2hlci5oIFwKLSAgICBVSVByb2Nlc3MvTGF1
bmNoZXIvVGhyZWFkTGF1bmNoZXIuaCBcCiAgICAgVUlQcm9jZXNzL05vdGlmaWNhdGlvbnMvTm90
aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3QuaCBcCiAgICAgVUlQcm9jZXNzL05vdGlmaWNhdGlv
bnMvTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuaCBcCiAgICAgVUlQ
cm9jZXNzL05vdGlmaWNhdGlvbnMvV2ViTm90aWZpY2F0aW9uLmggXApAQCAtNTQyLDkgKzU0MSw3
IEBAIFNPVVJDRVMgKz0gXAogICAgIFVJUHJvY2Vzcy9HZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1
ZXN0TWFuYWdlclByb3h5LmNwcCBcCiAgICAgVUlQcm9jZXNzL0dlb2xvY2F0aW9uUGVybWlzc2lv
blJlcXVlc3RQcm94eS5jcHAgXAogICAgIFVJUHJvY2Vzcy9MYXVuY2hlci9Qcm9jZXNzTGF1bmNo
ZXIuY3BwIFwKLSAgICBVSVByb2Nlc3MvTGF1bmNoZXIvVGhyZWFkTGF1bmNoZXIuY3BwIFwKICAg
ICBVSVByb2Nlc3MvTGF1bmNoZXIvcXQvUHJvY2Vzc0xhdW5jaGVyUXQuY3BwIFwKLSAgICBVSVBy
b2Nlc3MvTGF1bmNoZXIvcXQvVGhyZWFkTGF1bmNoZXJRdC5jcHAgXAogICAgIFVJUHJvY2Vzcy9O
b3RpZmljYXRpb25zL05vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0LmNwcCBcCiAgICAgVUlQ
cm9jZXNzL05vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2Vy
UHJveHkuY3BwIFwKICAgICBVSVByb2Nlc3MvTm90aWZpY2F0aW9ucy9XZWJOb3RpZmljYXRpb24u
Y3BwIFwKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Qcm9jZXNzTW9kZWwuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUHJvY2Vzc01vZGVsLmgJKHJldmlz
aW9uIDEyNTM1OCkKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Qcm9jZXNzTW9kZWwuaAko
d29ya2luZyBjb3B5KQpAQCAtMzAsNyArMzAsNiBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIAogZW51
bSBQcm9jZXNzTW9kZWwgewogICAgIFByb2Nlc3NNb2RlbFNoYXJlZFNlY29uZGFyeVByb2Nlc3Ms
Ci0gICAgUHJvY2Vzc01vZGVsU2hhcmVkU2Vjb25kYXJ5VGhyZWFkLAogICAgIFByb2Nlc3NNb2Rl
bE11bHRpcGxlU2Vjb25kYXJ5UHJvY2Vzc2VzCiB9OwogCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvV2ViQ29udGV4dC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL1dlYkNvbnRleHQuY3BwCShyZXZpc2lvbiAxMjUzNTgpCisrKyBTb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvV2ViQ29udGV4dC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTk0LDEzICs5NCw2
IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogCiBERUZJTkVfREVCVUdfT05MWV9HTE9CQUwoV1RGOjpS
ZWZDb3VudGVkTGVha0NvdW50ZXIsIHdlYkNvbnRleHRDb3VudGVyLCAoIldlYkNvbnRleHQiKSk7
CiAKLVdlYkNvbnRleHQqIFdlYkNvbnRleHQ6OnNoYXJlZFRocmVhZENvbnRleHQoKQotewotICAg
IFJ1bkxvb3A6OmluaXRpYWxpemVNYWluUnVuTG9vcCgpOwotICAgIHN0YXRpYyBXZWJDb250ZXh0
KiBjb250ZXh0ID0gYWRvcHRSZWYobmV3IFdlYkNvbnRleHQoUHJvY2Vzc01vZGVsU2hhcmVkU2Vj
b25kYXJ5VGhyZWFkLCBTdHJpbmcoKSkpLmxlYWtSZWYoKTsKLSAgICByZXR1cm4gY29udGV4dDsK
LX0KLQogUGFzc1JlZlB0cjxXZWJDb250ZXh0PiBXZWJDb250ZXh0OjpjcmVhdGUoY29uc3QgU3Ry
aW5nJiBpbmplY3RlZEJ1bmRsZVBhdGgpCiB7CiAgICAgSlNDOjppbml0aWFsaXplVGhyZWFkaW5n
KCk7CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29udGV4dC5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb250ZXh0LmgJKHJldmlzaW9uIDEy
NTM1OCkKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb250ZXh0LmgJKHdvcmtpbmcg
Y29weSkKQEAgLTc5LDggKzc5LDYgQEAgY2xhc3MgV2ViQ29udGV4dCA6IHB1YmxpYyBBUElPYmpl
Y3QsIHByaQogcHVibGljOgogICAgIHN0YXRpYyBjb25zdCBUeXBlIEFQSVR5cGUgPSBUeXBlQ29u
dGV4dDsKIAotICAgIHN0YXRpYyBXZWJDb250ZXh0KiBzaGFyZWRUaHJlYWRDb250ZXh0KCk7Ci0K
ICAgICBzdGF0aWMgUGFzc1JlZlB0cjxXZWJDb250ZXh0PiBjcmVhdGUoY29uc3QgU3RyaW5nJiBp
bmplY3RlZEJ1bmRsZVBhdGgpOwogICAgIHZpcnR1YWwgfldlYkNvbnRleHQoKTsKIApJbmRleDog
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAJKHJldmlzaW9u
IDEyNTM2MSkKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC04OCwzOSArODgsMzAgQEAgV2ViUHJvY2Vzc1Byb3h5Ojp+V2Vi
UHJvY2Vzc1Byb3h5KCkKICAgICAgICAgbV9wcm9jZXNzTGF1bmNoZXItPmludmFsaWRhdGUoKTsK
ICAgICAgICAgbV9wcm9jZXNzTGF1bmNoZXIgPSAwOwogICAgIH0KLQotICAgIGlmIChtX3RocmVh
ZExhdW5jaGVyKSB7Ci0gICAgICAgIG1fdGhyZWFkTGF1bmNoZXItPmludmFsaWRhdGUoKTsKLSAg
ICAgICAgbV90aHJlYWRMYXVuY2hlciA9IDA7Ci0gICAgfQogfQogCiB2b2lkIFdlYlByb2Nlc3NQ
cm94eTo6Y29ubmVjdCgpCiB7Ci0gICAgaWYgKG1fY29udGV4dC0+cHJvY2Vzc01vZGVsKCkgPT0g
UHJvY2Vzc01vZGVsU2hhcmVkU2Vjb25kYXJ5VGhyZWFkKSB7Ci0gICAgICAgIEFTU0VSVCghbV90
aHJlYWRMYXVuY2hlcik7Ci0gICAgICAgIG1fdGhyZWFkTGF1bmNoZXIgPSBUaHJlYWRMYXVuY2hl
cjo6Y3JlYXRlKHRoaXMpOwotICAgIH0gZWxzZSB7Ci0gICAgICAgIEFTU0VSVCghbV9wcm9jZXNz
TGF1bmNoZXIpOworICAgIEFTU0VSVCghbV9wcm9jZXNzTGF1bmNoZXIpOwogCi0gICAgICAgIFBy
b2Nlc3NMYXVuY2hlcjo6TGF1bmNoT3B0aW9ucyBsYXVuY2hPcHRpb25zOwotICAgICAgICBsYXVu
Y2hPcHRpb25zLnByb2Nlc3NUeXBlID0gUHJvY2Vzc0xhdW5jaGVyOjpXZWJQcm9jZXNzOworICAg
IFByb2Nlc3NMYXVuY2hlcjo6TGF1bmNoT3B0aW9ucyBsYXVuY2hPcHRpb25zOworICAgIGxhdW5j
aE9wdGlvbnMucHJvY2Vzc1R5cGUgPSBQcm9jZXNzTGF1bmNoZXI6OldlYlByb2Nlc3M7CiAKICNp
ZiBQTEFURk9STShNQUMpCi0gICAgICAgIC8vIFdlIHdhbnQgdGhlIHdlYiBwcm9jZXNzIHRvIG1h
dGNoIHRoZSBhcmNoaXRlY3R1cmUgb2YgdGhlIFVJIHByb2Nlc3MuCi0gICAgICAgIGxhdW5jaE9w
dGlvbnMuYXJjaGl0ZWN0dXJlID0gUHJvY2Vzc0xhdW5jaGVyOjpMYXVuY2hPcHRpb25zOjpNYXRj
aEN1cnJlbnRBcmNoaXRlY3R1cmU7Ci0gICAgICAgIGxhdW5jaE9wdGlvbnMuZXhlY3V0YWJsZUhl
YXAgPSBmYWxzZTsKKyAgICAvLyBXZSB3YW50IHRoZSB3ZWIgcHJvY2VzcyB0byBtYXRjaCB0aGUg
YXJjaGl0ZWN0dXJlIG9mIHRoZSBVSSBwcm9jZXNzLgorICAgIGxhdW5jaE9wdGlvbnMuYXJjaGl0
ZWN0dXJlID0gUHJvY2Vzc0xhdW5jaGVyOjpMYXVuY2hPcHRpb25zOjpNYXRjaEN1cnJlbnRBcmNo
aXRlY3R1cmU7CisgICAgbGF1bmNoT3B0aW9ucy5leGVjdXRhYmxlSGVhcCA9IGZhbHNlOwogI2lm
IEhBVkUoWFBDKQotICAgICAgICBsYXVuY2hPcHRpb25zLnVzZVhQQyA9IGdldGVudigiV0VCS0lU
X1VTRV9YUENfU0VSVklDRV9GT1JfV0VCX1BST0NFU1MiKTsKKyAgICBsYXVuY2hPcHRpb25zLnVz
ZVhQQyA9IGdldGVudigiV0VCS0lUX1VTRV9YUENfU0VSVklDRV9GT1JfV0VCX1BST0NFU1MiKTsK
ICNlbmRpZgogI2VuZGlmCiAjaWZuZGVmIE5ERUJVRwotICAgICAgICBjb25zdCBjaGFyKiB3ZWJQ
cm9jZXNzQ21kUHJlZml4ID0gZ2V0ZW52KCJXRUJfUFJPQ0VTU19DTURfUFJFRklYIik7Ci0gICAg
ICAgIGlmICh3ZWJQcm9jZXNzQ21kUHJlZml4ICYmICp3ZWJQcm9jZXNzQ21kUHJlZml4KQotICAg
ICAgICAgICAgbGF1bmNoT3B0aW9ucy5wcm9jZXNzQ21kUHJlZml4ID0gU3RyaW5nOjpmcm9tVVRG
OCh3ZWJQcm9jZXNzQ21kUHJlZml4KTsKKyAgICBjb25zdCBjaGFyKiB3ZWJQcm9jZXNzQ21kUHJl
Zml4ID0gZ2V0ZW52KCJXRUJfUFJPQ0VTU19DTURfUFJFRklYIik7CisgICAgaWYgKHdlYlByb2Nl
c3NDbWRQcmVmaXggJiYgKndlYlByb2Nlc3NDbWRQcmVmaXgpCisgICAgICAgIGxhdW5jaE9wdGlv
bnMucHJvY2Vzc0NtZFByZWZpeCA9IFN0cmluZzo6ZnJvbVVURjgod2ViUHJvY2Vzc0NtZFByZWZp
eCk7CiAjZW5kaWYKLSAgICAgICAgbV9wcm9jZXNzTGF1bmNoZXIgPSBQcm9jZXNzTGF1bmNoZXI6
OmNyZWF0ZSh0aGlzLCBsYXVuY2hPcHRpb25zKTsKLSAgICB9CisKKyAgICBtX3Byb2Nlc3NMYXVu
Y2hlciA9IFByb2Nlc3NMYXVuY2hlcjo6Y3JlYXRlKHRoaXMsIGxhdW5jaE9wdGlvbnMpOwogfQog
CiB2b2lkIFdlYlByb2Nlc3NQcm94eTo6ZGlzY29ubmVjdCgpCkBAIC0xNjMsOCArMTU0LDYgQEAg
Ym9vbCBXZWJQcm9jZXNzUHJveHk6OmlzTGF1bmNoaW5nKCkgY29ucwogewogICAgIGlmIChtX3By
b2Nlc3NMYXVuY2hlcikKICAgICAgICAgcmV0dXJuIG1fcHJvY2Vzc0xhdW5jaGVyLT5pc0xhdW5j
aGluZygpOwotICAgIGlmIChtX3RocmVhZExhdW5jaGVyKQotICAgICAgICByZXR1cm4gbV90aHJl
YWRMYXVuY2hlci0+aXNMYXVuY2hpbmcoKTsKIAogICAgIHJldHVybiBmYWxzZTsKIH0KQEAgLTQ0
MCwxMSArNDI5LDYgQEAgdm9pZCBXZWJQcm9jZXNzUHJveHk6OmRpZEZpbmlzaExhdW5jaGluZwog
ICAgIGRpZEZpbmlzaExhdW5jaGluZyhjb25uZWN0aW9uSWRlbnRpZmllcik7CiB9CiAKLXZvaWQg
V2ViUHJvY2Vzc1Byb3h5OjpkaWRGaW5pc2hMYXVuY2hpbmcoVGhyZWFkTGF1bmNoZXIqLCBDb3Jl
SVBDOjpDb25uZWN0aW9uOjpJZGVudGlmaWVyIGNvbm5lY3Rpb25JZGVudGlmaWVyKQotewotICAg
IGRpZEZpbmlzaExhdW5jaGluZyhjb25uZWN0aW9uSWRlbnRpZmllcik7Ci19Ci0KIHZvaWQgV2Vi
UHJvY2Vzc1Byb3h5OjpkaWRGaW5pc2hMYXVuY2hpbmcoQ29yZUlQQzo6Q29ubmVjdGlvbjo6SWRl
bnRpZmllciBjb25uZWN0aW9uSWRlbnRpZmllcikKIHsKICAgICBBU1NFUlQoIW1fY29ubmVjdGlv
bik7CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oCShy
ZXZpc2lvbiAxMjUzNTgpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJvY2Vzc1By
b3h5LmgJKHdvcmtpbmcgY29weSkKQEAgLTMwLDcgKzMwLDYgQEAKICNpbmNsdWRlICJQbHVnaW5J
bmZvU3RvcmUuaCIKICNpbmNsdWRlICJQcm9jZXNzTGF1bmNoZXIuaCIKICNpbmNsdWRlICJSZXNw
b25zaXZlbmVzc1RpbWVyLmgiCi0jaW5jbHVkZSAiVGhyZWFkTGF1bmNoZXIuaCIKICNpbmNsdWRl
ICJXZWJDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmgiCiAjaW5jbHVkZSAiV2ViUGFnZVByb3h5Lmgi
CiAjaW5jbHVkZSAiV2ViUHJvY2Vzc1Byb3h5TWVzc2FnZXMuaCIKQEAgLTU2LDcgKzU1LDcgQEAg
Y2xhc3MgV2ViQ29udGV4dDsKIGNsYXNzIFdlYlBhZ2VHcm91cDsKIHN0cnVjdCBXZWJOYXZpZ2F0
aW9uRGF0YVN0b3JlOwogCi1jbGFzcyBXZWJQcm9jZXNzUHJveHkgOiBwdWJsaWMgUmVmQ291bnRl
ZDxXZWJQcm9jZXNzUHJveHk+LCBDb3JlSVBDOjpDb25uZWN0aW9uOjpDbGllbnQsIFJlc3BvbnNp
dmVuZXNzVGltZXI6OkNsaWVudCwgUHJvY2Vzc0xhdW5jaGVyOjpDbGllbnQsIFRocmVhZExhdW5j
aGVyOjpDbGllbnQsIENvcmVJUEM6OkNvbm5lY3Rpb246OlF1ZXVlQ2xpZW50IHsKK2NsYXNzIFdl
YlByb2Nlc3NQcm94eSA6IHB1YmxpYyBSZWZDb3VudGVkPFdlYlByb2Nlc3NQcm94eT4sIENvcmVJ
UEM6OkNvbm5lY3Rpb246OkNsaWVudCwgUmVzcG9uc2l2ZW5lc3NUaW1lcjo6Q2xpZW50LCBQcm9j
ZXNzTGF1bmNoZXI6OkNsaWVudCwgIENvcmVJUEM6OkNvbm5lY3Rpb246OlF1ZXVlQ2xpZW50IHsK
IHB1YmxpYzoKICAgICB0eXBlZGVmIEhhc2hNYXA8dWludDY0X3QsIFJlZlB0cjxXZWJGcmFtZVBy
b3h5PiA+IFdlYkZyYW1lUHJveHlNYXA7CiAgICAgdHlwZWRlZiBIYXNoTWFwPHVpbnQ2NF90LCBS
ZWZQdHI8V2ViQmFja0ZvcndhcmRMaXN0SXRlbT4gPiBXZWJCYWNrRm9yd2FyZExpc3RJdGVtTWFw
OwpAQCAtMTE4LDcgKzExNyw3IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgZXhwbGljaXQgV2Vi
UHJvY2Vzc1Byb3h5KFBhc3NSZWZQdHI8V2ViQ29udGV4dD4pOwogCi0gICAgLy8gSW5pdGlhbGl6
ZXMgdGhlIHByb2Nlc3Mgb3IgdGhyZWFkIGxhdW5jaGVyIHdoaWNoIHdpbGwgYmVnaW4gbGF1bmNo
aW5nIHRoZSBwcm9jZXNzLgorICAgIC8vIEluaXRpYWxpemVzIHRoZSBwcm9jZXNzIGxhdW5jaGVy
IHdoaWNoIHdpbGwgYmVnaW4gbGF1bmNoaW5nIHRoZSBwcm9jZXNzLgogICAgIHZvaWQgY29ubmVj
dCgpOwogCiAgICAgLy8gQ2FsbGVkIHdoZW4gdGhlIHdlYiBwcm9jZXNzIGhhcyBjcmFzaGVkIG9y
IHdlIGtub3cgdGhhdCBpdCB3aWxsIHRlcm1pbmF0ZSBzb29uLgpAQCAtMTY0LDkgKzE2Myw2IEBA
IHByaXZhdGU6CiAgICAgLy8gUHJvY2Vzc0xhdW5jaGVyOjpDbGllbnQKICAgICB2aXJ0dWFsIHZv
aWQgZGlkRmluaXNoTGF1bmNoaW5nKFByb2Nlc3NMYXVuY2hlciosIENvcmVJUEM6OkNvbm5lY3Rp
b246OklkZW50aWZpZXIpOwogCi0gICAgLy8gVGhyZWFkTGF1bmNoZXI6OkNsaWVudAotICAgIHZp
cnR1YWwgdm9pZCBkaWRGaW5pc2hMYXVuY2hpbmcoVGhyZWFkTGF1bmNoZXIqLCBDb3JlSVBDOjpD
b25uZWN0aW9uOjpJZGVudGlmaWVyKTsKLQogICAgIHZvaWQgZGlkRmluaXNoTGF1bmNoaW5nKENv
cmVJUEM6OkNvbm5lY3Rpb246OklkZW50aWZpZXIpOwogCiAgICAgLy8gSGlzdG9yeSBjbGllbnQK
QEAgLTE4OCw3ICsxODQsNiBAQCBwcml2YXRlOgogCiAgICAgVmVjdG9yPHN0ZDo6cGFpcjxDb3Jl
SVBDOjpDb25uZWN0aW9uOjpPdXRnb2luZ01lc3NhZ2UsIHVuc2lnbmVkPiA+IG1fcGVuZGluZ01l
c3NhZ2VzOwogICAgIFJlZlB0cjxQcm9jZXNzTGF1bmNoZXI+IG1fcHJvY2Vzc0xhdW5jaGVyOwot
ICAgIFJlZlB0cjxUaHJlYWRMYXVuY2hlcj4gbV90aHJlYWRMYXVuY2hlcjsKIAogICAgIFJlZlB0
cjxXZWJDb250ZXh0PiBtX2NvbnRleHQ7CiAKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvQy9XS0NvbnRleHQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvQy9XS0NvbnRleHQuY3BwCShyZXZpc2lvbiAxMjUzNTgpCisrKyBTb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNjEs
MTEgKzYxLDYgQEAgV0tDb250ZXh0UmVmIFdLQ29udGV4dENyZWF0ZVdpdGhJbmplY3RlZAogICAg
IHJldHVybiB0b0FQSShjb250ZXh0LnJlbGVhc2UoKS5sZWFrUmVmKCkpOwogfQogCi1XS0NvbnRl
eHRSZWYgV0tDb250ZXh0R2V0U2hhcmVkVGhyZWFkQ29udGV4dCgpCi17Ci0gICAgcmV0dXJuIHRv
QVBJKFdlYkNvbnRleHQ6OnNoYXJlZFRocmVhZENvbnRleHQoKSk7Ci19Ci0KIHZvaWQgV0tDb250
ZXh0U2V0SW5qZWN0ZWRCdW5kbGVDbGllbnQoV0tDb250ZXh0UmVmIGNvbnRleHRSZWYsIGNvbnN0
IFdLQ29udGV4dEluamVjdGVkQnVuZGxlQ2xpZW50KiB3a0NsaWVudCkKIHsKICAgICB0b0ltcGwo
Y29udGV4dFJlZiktPmluaXRpYWxpemVJbmplY3RlZEJ1bmRsZUNsaWVudCh3a0NsaWVudCk7Cklu
ZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0UHJpdmF0ZS5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0NvbnRleHRQcml2
YXRlLmgJKHJldmlzaW9uIDEyNTM1OCkKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
Qy9XS0NvbnRleHRQcml2YXRlLmgJKHdvcmtpbmcgY29weSkKQEAgLTQyLDggKzQyLDYgQEAgdHlw
ZWRlZiBzdHJ1Y3QgV0tDb250ZXh0U3RhdGlzdGljcyBXS0NvbgogCiBXS19FWFBPUlQgdm9pZCBX
S0NvbnRleHRHZXRHbG9iYWxTdGF0aXN0aWNzKFdLQ29udGV4dFN0YXRpc3RpY3MqIHN0YXRpc3Rp
Y3MpOwogCi1XS19FWFBPUlQgV0tDb250ZXh0UmVmIFdLQ29udGV4dEdldFNoYXJlZFRocmVhZENv
bnRleHQoKTsKLQogV0tfRVhQT1JUIHZvaWQgV0tDb250ZXh0U2V0QWRkaXRpb25hbFBsdWdpbnNE
aXJlY3RvcnkoV0tDb250ZXh0UmVmIGNvbnRleHQsIFdLU3RyaW5nUmVmIHBsdWdpbnNEaXJlY3Rv
cnkpOwogCiBXS19FWFBPUlQgdm9pZCBXS0NvbnRleHRSZWdpc3RlclVSTFNjaGVtZUFzRW1wdHlE
b2N1bWVudChXS0NvbnRleHRSZWYgY29udGV4dCwgV0tTdHJpbmdSZWYgdXJsU2NoZW1lKTsKSW5k
ZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9MYXVuY2hlci9UaHJlYWRMYXVuY2hlci5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0xhdW5jaGVyL1RocmVhZExh
dW5jaGVyLmNwcAkocmV2aXNpb24gMTI1MzU4KQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0xhdW5jaGVyL1RocmVhZExhdW5jaGVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMSw2OCArMCww
IEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAq
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICog
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIlRocmVhZExh
dW5jaGVyLmgiCi0KLSNpbmNsdWRlIDxXZWJDb3JlL1J1bkxvb3AuaD4KLQotdXNpbmcgbmFtZXNw
YWNlIFdlYkNvcmU7Ci0KLW5hbWVzcGFjZSBXZWJLaXQgewotCi1UaHJlYWRMYXVuY2hlcjo6VGhy
ZWFkTGF1bmNoZXIoQ2xpZW50KiBjbGllbnQpCi0gICAgOiBtX2NsaWVudChjbGllbnQpCi17Ci0g
ICAgbGF1bmNoVGhyZWFkKCk7Ci19Ci0KLXZvaWQgVGhyZWFkTGF1bmNoZXI6OmxhdW5jaFRocmVh
ZCgpCi17Ci0gICAgbV9pc0xhdW5jaGluZyA9IHRydWU7Ci0KLSAgICBDb3JlSVBDOjpDb25uZWN0
aW9uOjpJZGVudGlmaWVyIGNvbm5lY3Rpb25JZGVudGlmaWVyID0gY3JlYXRlV2ViVGhyZWFkKCk7
Ci0KLSAgICAvLyBXZSd2ZSBmaW5pc2hlZCBsYXVuY2hpbmcgdGhlIHRocmVhZCwgbWVzc2FnZSBi
YWNrIHRvIHRoZSBtYWluIHJ1biBsb29wLgotICAgIFJ1bkxvb3A6Om1haW4oKS0+ZGlzcGF0Y2go
YmluZCgmVGhyZWFkTGF1bmNoZXI6OmRpZEZpbmlzaExhdW5jaGluZ1RocmVhZCwgdGhpcywgY29u
bmVjdGlvbklkZW50aWZpZXIpKTsKLX0KLQotdm9pZCBUaHJlYWRMYXVuY2hlcjo6ZGlkRmluaXNo
TGF1bmNoaW5nVGhyZWFkKENvcmVJUEM6OkNvbm5lY3Rpb246OklkZW50aWZpZXIgaWRlbnRpZmll
cikKLXsKLSAgICBtX2lzTGF1bmNoaW5nID0gZmFsc2U7Ci0gICAgCi0gICAgaWYgKCFtX2NsaWVu
dCkgewotICAgICAgICAvLyBGSVhNRTogRGlzcG9zZSBvZiB0aGUgY29ubmVjdGlvbiBpZGVudGlm
aWVyLgotICAgICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgbV9jbGllbnQtPmRpZEZpbmlzaExh
dW5jaGluZyh0aGlzLCBpZGVudGlmaWVyKTsKLX0KLQotdm9pZCBUaHJlYWRMYXVuY2hlcjo6aW52
YWxpZGF0ZSgpCi17Ci0gICAgbV9jbGllbnQgPSAwOwotfQotCi19IC8vIG5hbWVzcGFjZSBXZWJL
aXQKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9MYXVuY2hlci9UaHJlYWRMYXVuY2hl
ci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9MYXVuY2hlci9UaHJl
YWRMYXVuY2hlci5oCShyZXZpc2lvbiAxMjUzNTgpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvTGF1bmNoZXIvVGhyZWFkTGF1bmNoZXIuaAkod29ya2luZyBjb3B5KQpAQCAtMSw3MyArMCww
IEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAq
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICog
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCi0gKi8KLQotI2lmbmRlZiBUaHJlYWRMYXVuY2hlcl9oCi0jZGVmaW5lIFRocmVh
ZExhdW5jaGVyX2gKLQotI2luY2x1ZGUgIkNvbm5lY3Rpb24uaCIKLSNpbmNsdWRlICJQbGF0Zm9y
bVByb2Nlc3NJZGVudGlmaWVyLmgiCi0jaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgotI2luY2x1ZGUg
PHd0Zi9UaHJlYWRpbmcuaD4KLQotI2lmIFBMQVRGT1JNKFFUKQotUVRfQkVHSU5fTkFNRVNQQUNF
Ci1jbGFzcyBRTG9jYWxTb2NrZXQ7Ci1RVF9FTkRfTkFNRVNQQUNFCi0jZW5kaWYKLQotbmFtZXNw
YWNlIFdlYktpdCB7Ci0KLWNsYXNzIFRocmVhZExhdW5jaGVyIDogcHVibGljIFRocmVhZFNhZmVS
ZWZDb3VudGVkPFRocmVhZExhdW5jaGVyPiB7Ci1wdWJsaWM6Ci0gICAgY2xhc3MgQ2xpZW50IHsK
LSAgICBwdWJsaWM6Ci0gICAgICAgIHZpcnR1YWwgfkNsaWVudCgpIHsgfQotICAgICAgICB2aXJ0
dWFsIHZvaWQgZGlkRmluaXNoTGF1bmNoaW5nKFRocmVhZExhdW5jaGVyKiwgQ29yZUlQQzo6Q29u
bmVjdGlvbjo6SWRlbnRpZmllcikgPSAwOwotICAgIH07Ci0gICAgCi0gICAgc3RhdGljIFBhc3NS
ZWZQdHI8VGhyZWFkTGF1bmNoZXI+IGNyZWF0ZShDbGllbnQqIGNsaWVudCkKLSAgICB7Ci0gICAg
ICAgIHJldHVybiBhZG9wdFJlZihuZXcgVGhyZWFkTGF1bmNoZXIoY2xpZW50KSk7Ci0gICAgfQot
Ci0gICAgYm9vbCBpc0xhdW5jaGluZygpIGNvbnN0IHsgcmV0dXJuIG1faXNMYXVuY2hpbmc7IH0K
LQotICAgIHZvaWQgaW52YWxpZGF0ZSgpOwotCi1wcml2YXRlOgotICAgIGV4cGxpY2l0IFRocmVh
ZExhdW5jaGVyKENsaWVudCopOwotCi0gICAgdm9pZCBsYXVuY2hUaHJlYWQoKTsKLSAgICB2b2lk
IGRpZEZpbmlzaExhdW5jaGluZ1RocmVhZChDb3JlSVBDOjpDb25uZWN0aW9uOjpJZGVudGlmaWVy
KTsKLQotICAgIHN0YXRpYyBDb3JlSVBDOjpDb25uZWN0aW9uOjpJZGVudGlmaWVyIGNyZWF0ZVdl
YlRocmVhZCgpOwotCi0gICAgYm9vbCBtX2lzTGF1bmNoaW5nOwotICAgIENsaWVudCogbV9jbGll
bnQ7Ci19OwotCi19IC8vIG5hbWVzcGFjZSBXZWJLaXQKLQotI2VuZGlmIC8vIFRocmVhZExhdW5j
aGVyX2gKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9MYXVuY2hlci9lZmwvVGhyZWFk
TGF1bmNoZXJFZmwuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9M
YXVuY2hlci9lZmwvVGhyZWFkTGF1bmNoZXJFZmwuY3BwCShyZXZpc2lvbiAxMjUzNTgpCisrKyBT
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTGF1bmNoZXIvZWZsL1RocmVhZExhdW5jaGVyRWZsLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMSwzMyArMCwwIEBACi0vKgotICAgQ29weXJpZ2h0IChDKSAy
MDEyIFNhbXN1bmcgRWxlY3Ryb25pY3MKLQotICAgIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3
YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKLSAgICBtb2RpZnkgaXQgdW5kZXIg
dGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwotICAgIExpY2Vuc2Ug
YXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgotICAg
IHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIg
dmVyc2lvbi4KLQotICAgIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0
aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAotICAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0
aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCi0gICAgTUVSQ0hBTlRBQklMSVRZIG9y
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKLSAgICBMaWJy
YXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KLQotICAgIFlvdSBz
aG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVi
bGljIExpY2Vuc2UKLSAgICBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENP
UFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bwotICAgIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5k
YXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCi0gICAgQm9zdG9u
LCBNQSAwMjExMC0xMzAxLCBVU0EuCi0qLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVk
ZSAiVGhyZWFkTGF1bmNoZXIuaCIKLQotI2luY2x1ZGUgPFdlYkNvcmUvTm90SW1wbGVtZW50ZWQu
aD4KLQotbmFtZXNwYWNlIFdlYktpdCB7Ci0KLUNvcmVJUEM6OkNvbm5lY3Rpb246OklkZW50aWZp
ZXIgVGhyZWFkTGF1bmNoZXI6OmNyZWF0ZVdlYlRocmVhZCgpCi17Ci0gICAgbm90SW1wbGVtZW50
ZWQoKTsKLSAgICByZXR1cm4gLTE7Ci19Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYktpdApJbmRleDog
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0xhdW5jaGVyL2d0ay9UaHJlYWRMYXVuY2hlckd0ay5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0xhdW5jaGVyL2d0ay9U
aHJlYWRMYXVuY2hlckd0ay5jcHAJKHJldmlzaW9uIDEyNTM1OCkKKysrIFNvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9MYXVuY2hlci9ndGsvVGhyZWFkTGF1bmNoZXJHdGsuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC0xLDQwICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTAgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICogUG9ydGlvbnMgQ29weXJpZ2h0IChjKSAyMDEwIE1v
dG9yb2xhIE1vYmlsaXR5LCBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
LSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoK
LSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0j
aW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiVGhyZWFkTGF1bmNoZXIuaCIKLQotI2luY2x1
ZGUgPFdlYkNvcmUvTm90SW1wbGVtZW50ZWQuaD4KLQotbmFtZXNwYWNlIFdlYktpdCB7Ci0KLUNv
cmVJUEM6OkNvbm5lY3Rpb246OklkZW50aWZpZXIgVGhyZWFkTGF1bmNoZXI6OmNyZWF0ZVdlYlRo
cmVhZCgpCi17Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKLSAgICByZXR1cm4gLTE7Ci19Ci0KLX0g
Ly8gbmFtZXNwYWNlIFdlYktpdApJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0xhdW5j
aGVyL21hYy9UaHJlYWRMYXVuY2hlck1hYy5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvTGF1bmNoZXIvbWFjL1RocmVhZExhdW5jaGVyTWFjLm1tCShyZXZpc2lvbiAx
MjUzNTgpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTGF1bmNoZXIvbWFjL1RocmVhZExh
dW5jaGVyTWFjLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0xLDc0ICswLDAgQEAKLS8qCi0gKiBDb3B5
cmlnaHQgKEMpIDIwMTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgot
ICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENP
TlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgot
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICog
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAq
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwot
Ci0jaW1wb3J0ICJjb25maWcuaCIKLSNpbXBvcnQgIlRocmVhZExhdW5jaGVyLmgiCi0KLSNpbXBv
cnQgIldlYlByb2Nlc3MuaCIKLSNpbXBvcnQgIldlYlN5c3RlbUludGVyZmFjZS5oIgotI2ltcG9y
dCA8cnVudGltZS9Jbml0aWFsaXplVGhyZWFkaW5nLmg+Ci0jaW1wb3J0IDxXZWJDb3JlL1J1bkxv
b3AuaD4KLSNpbXBvcnQgPHd0Zi9NYWluVGhyZWFkLmg+Ci0jaW1wb3J0IDx3dGYvVGhyZWFkaW5n
Lmg+Ci0KLXVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwotCi1uYW1lc3BhY2UgV2ViS2l0IHsKLQot
c3RhdGljIHZvaWQgd2ViVGhyZWFkQm9keSh2b2lkKiBjb250ZXh0KQotewotICAgIG1hY2hfcG9y
dF90IHNlcnZlclBvcnQgPSBzdGF0aWNfY2FzdDxtYWNoX3BvcnRfdD4ocmVpbnRlcnByZXRfY2Fz
dDx1aW50cHRyX3Q+KGNvbnRleHQpKTsKLQotICAgIE5TQXV0b3JlbGVhc2VQb29sICpwb29sID0g
W1tOU0F1dG9yZWxlYXNlUG9vbCBhbGxvY10gaW5pdF07Ci0KLSAgICBJbml0V2ViQ29yZVN5c3Rl
bUludGVyZmFjZSgpOwotICAgIEpTQzo6aW5pdGlhbGl6ZVRocmVhZGluZygpOwotICAgIFdURjo6
aW5pdGlhbGl6ZU1haW5UaHJlYWQoKTsKLQotICAgIFdlYlByb2Nlc3M6OnNoYXJlZCgpLmluaXRp
YWxpemUoQ29yZUlQQzo6Q29ubmVjdGlvbjo6SWRlbnRpZmllcihzZXJ2ZXJQb3J0KSwgUnVuTG9v
cDo6Y3VycmVudCgpKTsKLQotICAgIFtwb29sIGRyYWluXTsKLQotICAgIFJ1bkxvb3A6OmN1cnJl
bnQoKS0+cnVuKCk7Ci19Ci0KLUNvcmVJUEM6OkNvbm5lY3Rpb246OklkZW50aWZpZXIgVGhyZWFk
TGF1bmNoZXI6OmNyZWF0ZVdlYlRocmVhZCgpCi17Ci0gICAgLy8gQ3JlYXRlIHRoZSBzZXJ2aWNl
IHBvcnQuCi0gICAgIG1hY2hfcG9ydF90IGxpc3RlbmluZ1BvcnQ7Ci0gICAgIG1hY2hfcG9ydF9h
bGxvY2F0ZShtYWNoX3Rhc2tfc2VsZigpLCBNQUNIX1BPUlRfUklHSFRfUkVDRUlWRSwgJmxpc3Rl
bmluZ1BvcnQpOwotICAgICAKLSAgICAgLy8gSW5zZXJ0IGEgc2VuZCByaWdodCBzbyB3ZSBjYW4g
c2VuZCB0byBpdC4KLSAgICAgbWFjaF9wb3J0X2luc2VydF9yaWdodChtYWNoX3Rhc2tfc2VsZigp
LCBsaXN0ZW5pbmdQb3J0LCBsaXN0ZW5pbmdQb3J0LCBNQUNIX01TR19UWVBFX01BS0VfU0VORCk7
Ci0KLSAgICBpZiAoIWNyZWF0ZVRocmVhZCh3ZWJUaHJlYWRCb2R5LCByZWludGVycHJldF9jYXN0
PHZvaWQqPihsaXN0ZW5pbmdQb3J0KSwgIldlYktpdDI6IFdlYlRocmVhZCIpKSB7Ci0gICAgICAg
IG1hY2hfcG9ydF9kZXN0cm95KG1hY2hfdGFza19zZWxmKCksIGxpc3RlbmluZ1BvcnQpOwotICAg
ICAgICByZXR1cm4gQ29yZUlQQzo6Q29ubmVjdGlvbjo6SWRlbnRpZmllcigpOwotICAgIH0KLQot
ICAgIHJldHVybiBDb3JlSVBDOjpDb25uZWN0aW9uOjpJZGVudGlmaWVyKGxpc3RlbmluZ1BvcnQp
OwotfQotCi19IC8vIG5hbWVzcGFjZSBXZWJLaXQKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9MYXVuY2hlci9xdC9UaHJlYWRMYXVuY2hlclF0LmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvTGF1bmNoZXIvcXQvVGhyZWFkTGF1bmNoZXJRdC5jcHAJKHJl
dmlzaW9uIDEyNTM1OCkKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9MYXVuY2hlci9xdC9U
aHJlYWRMYXVuY2hlclF0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMSw3NSArMCwwIEBACi0vKgot
ICogQ29weXJpZ2h0IChDKSAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAq
IENvcHlyaWdodCAoQykgMjAxMCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlh
cnkoLWllcykKLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQot
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
LSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgot
ICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAq
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIlRocmVh
ZExhdW5jaGVyLmgiCi0KLSNpbmNsdWRlICJXZWJQcm9jZXNzLmgiCi0jaW5jbHVkZSA8V2ViQ29y
ZS9SdW5Mb29wLmg+Ci0jaW5jbHVkZSA8cnVudGltZS9Jbml0aWFsaXplVGhyZWFkaW5nLmg+Ci0j
aW5jbHVkZSA8d3RmL01haW5UaHJlYWQuaD4KLSNpbmNsdWRlIDx3dGYvVGhyZWFkaW5nLmg+Ci0K
LSNpbmNsdWRlIDxRRGVidWc+Ci0jaW5jbHVkZSA8UUZpbGU+Ci0jaW5jbHVkZSA8UUxvY2FsU2Vy
dmVyPgotI2luY2x1ZGUgPFFQcm9jZXNzPgotCi0jaW5jbHVkZSA8UXRDb3JlL3FnbG9iYWwuaD4K
LQotI2luY2x1ZGUgPHN5cy9yZXNvdXJjZS5oPgotI2luY2x1ZGUgPHVuaXN0ZC5oPgotCi11c2lu
ZyBuYW1lc3BhY2UgV2ViQ29yZTsKLQotbmFtZXNwYWNlIFdlYktpdCB7Ci0KLXN0YXRpYyB2b2lk
IHdlYlRocmVhZEJvZHkodm9pZCogLyogY29udGV4dCAqLykKLXsKLSAgICAvLyBJbml0aWFsaXph
dGlvbgotICAgIEpTQzo6aW5pdGlhbGl6ZVRocmVhZGluZygpOwotICAgIFdURjo6aW5pdGlhbGl6
ZU1haW5UaHJlYWQoKTsKLQotICAgIC8vIEZJWE1FOiBXZSBkbyBub3Qgc3VwcG9ydCB0aHJlYWRl
ZCBtb2RlIGZvciBub3cuCi0KLSAgICBXZWJQcm9jZXNzOjpzaGFyZWQoKS5pbml0aWFsaXplKC0x
LCBSdW5Mb29wOjpjdXJyZW50KCkpOwotICAgIFJ1bkxvb3A6OnJ1bigpOwotfQotCi1Db3JlSVBD
OjpDb25uZWN0aW9uOjpJZGVudGlmaWVyIFRocmVhZExhdW5jaGVyOjpjcmVhdGVXZWJUaHJlYWQo
KQotewotICAgIHNyYW5kb20odGltZSgwKSk7Ci0gICAgaW50IGNvbm5lY3Rpb25JZGVudGlmaWVy
ID0gcmFuZG9tKCk7Ci0KLSAgICBpZiAoIWNyZWF0ZVRocmVhZCh3ZWJUaHJlYWRCb2R5LCByZWlu
dGVycHJldF9jYXN0PHZvaWQqPihjb25uZWN0aW9uSWRlbnRpZmllciksICJXZWJLaXQyOiBXZWJU
aHJlYWQiKSkgewotICAgICAgICBxV2FybmluZygpIDw8ICJmYWlsZWQgc3RhcnRpbmcgdGhyZWFk
IjsKLSAgICAgICAgcmV0dXJuIDA7Ci0gICAgfQotCi0gICAgcmV0dXJuIGNvbm5lY3Rpb25JZGVu
dGlmaWVyOwotfQotCi19IC8vIG5hbWVzcGFjZSBXZWJLaXQKSW5kZXg6IFNvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9MYXVuY2hlci93aW4vVGhyZWFkTGF1bmNoZXJXaW4uY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9MYXVuY2hlci93aW4vVGhyZWFkTGF1bmNoZXJX
aW4uY3BwCShyZXZpc2lvbiAxMjUzNTgpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTGF1
bmNoZXIvd2luL1RocmVhZExhdW5jaGVyV2luLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMSw2OSAr
MCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQot
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
LSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgot
ICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAq
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIlRocmVh
ZExhdW5jaGVyLmgiCi0KLSNpbmNsdWRlICJXZWJQcm9jZXNzLmgiCi0jaW5jbHVkZSA8V2ViQ29y
ZS9SdW5Mb29wLmg+Ci0jaW5jbHVkZSA8cnVudGltZS9Jbml0aWFsaXplVGhyZWFkaW5nLmg+Ci0j
aW5jbHVkZSA8d3RmL01haW5UaHJlYWQuaD4KLSNpbmNsdWRlIDx3dGYvVGhyZWFkaW5nLmg+Ci0K
LXVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwotCi1uYW1lc3BhY2UgV2ViS2l0IHsKLQotc3RhdGlj
IHZvaWQgd2ViVGhyZWFkQm9keSh2b2lkKiBjb250ZXh0KQotewotICAgIEhBTkRMRSBjbGllbnRJ
ZGVudGlmaWVyID0gcmVpbnRlcnByZXRfY2FzdDxIQU5ETEU+KGNvbnRleHQpOwotCi0gICAgLy8g
SW5pdGlhbGl6YXRpb24KLSAgICBKU0M6OmluaXRpYWxpemVUaHJlYWRpbmcoKTsKLSAgICBXVEY6
OmluaXRpYWxpemVNYWluVGhyZWFkKCk7Ci0KLSAgICBXZWJQcm9jZXNzOjpzaGFyZWQoKS5pbml0
aWFsaXplKGNsaWVudElkZW50aWZpZXIsIFJ1bkxvb3A6OmN1cnJlbnQoKSk7Ci0gICAgUnVuTG9v
cDo6cnVuKCk7Ci19Ci0KLUNvcmVJUEM6OkNvbm5lY3Rpb246OklkZW50aWZpZXIgVGhyZWFkTGF1
bmNoZXI6OmNyZWF0ZVdlYlRocmVhZCgpCi17Ci0gICAgLy8gRmlyc3QsIGNyZWF0ZSB0aGUgc2Vy
dmVyIGFuZCBjbGllbnQgaWRlbnRpZmllcnMuCi0gICAgSEFORExFIHNlcnZlcklkZW50aWZpZXIs
IGNsaWVudElkZW50aWZpZXI7Ci0gICAgaWYgKCFDb3JlSVBDOjpDb25uZWN0aW9uOjpjcmVhdGVT
ZXJ2ZXJBbmRDbGllbnRJZGVudGlmaWVycyhzZXJ2ZXJJZGVudGlmaWVyLCBjbGllbnRJZGVudGlm
aWVyKSkgewotICAgICAgICAvLyBGSVhNRTogV2hhdCBzaG91bGQgd2UgZG8gaGVyZT8KLSAgICAg
ICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgfQotCi0gICAgaWYgKCFjcmVhdGVUaHJlYWQo
d2ViVGhyZWFkQm9keSwgcmVpbnRlcnByZXRfY2FzdDx2b2lkKj4oY2xpZW50SWRlbnRpZmllciks
ICJXZWJLaXQyOiBXZWJUaHJlYWQiKSkgewotICAgICAgICA6OkNsb3NlSGFuZGxlKHNlcnZlcklk
ZW50aWZpZXIpOwotICAgICAgICA6OkNsb3NlSGFuZGxlKGNsaWVudElkZW50aWZpZXIpOwotICAg
ICAgICByZXR1cm4gMDsKLSAgICB9Ci0KLSAgICByZXR1cm4gc2VydmVySWRlbnRpZmllcjsKLX0K
LQotfSAvLyBuYW1lc3BhY2UgV2ViS2l0CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvV2Vi
S2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCShyZXZpc2lvbiAxMjUzNTgpCisrKyBTb3Vy
Y2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHdvcmtpbmcgY29w
eSkKQEAgLTgzNCw5ICs4MzQsNiBAQAogCQlCQ0VFOTY2RDExMkZBRjU3MDA2QkNDMjQgLyogQXR0
YWNobWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
QkNFRTk2NkIxMTJGQUY1NzAwNkJDQzI0IC8qIEF0dGFjaG1lbnQuaCAqLzsgfTsKIAkJQkNGMDQ5
RTYxMUZFMjBGNjAwRjg2QTU4IC8qIFdLQnVuZGxlRnJhbWVQcml2YXRlLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQ0YwNDlFNDExRkUyMEY2MDBGODZB
NTggLyogV0tCdW5kbGVGcmFtZVByaXZhdGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OwogCQlCQ0YwNDlFNzExRkUyMEY2MDBGODZBNTggLyogV0tCdW5k
bGVQcml2YXRlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBCQ0YwNDlFNTExRkUyMEY2MDBGODZBNTggLyogV0tCdW5kbGVQcml2YXRlLmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKLQkJQkNGNTAxMjExMjNFRDNC
MzAwNTk1NUFFIC8qIFRocmVhZExhdW5jaGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBCQ0Y1MDExRjEyM0VEM0IzMDA1OTU1QUUgLyogVGhyZWFkTGF1
bmNoZXIuaCAqLzsgfTsKLQkJQkNGNTAxMjIxMjNFRDNCMzAwNTk1NUFFIC8qIFRocmVhZExhdW5j
aGVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJD
RjUwMTIwMTIzRUQzQjMwMDU5NTVBRSAvKiBUaHJlYWRMYXVuY2hlci5jcHAgKi87IH07Ci0JCUJD
RjUwMUI0MTIzRUY2MDIwMDU5NTVBRSAvKiBUaHJlYWRMYXVuY2hlck1hYy5tbSBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDRjUwMUIzMTIzRUY2MDIwMDU5
NTVBRSAvKiBUaHJlYWRMYXVuY2hlck1hYy5tbSAqLzsgfTsKIAkJQkNGNTA1RTcxMjQzMDQ3QjAw
NTk1NUFFIC8qIFBsYXRmb3JtQ2VydGlmaWNhdGVJbmZvLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQ0Y1MDVFNTEyNDMwNDdCMDA1OTU1QUUgLyogUGxh
dGZvcm1DZXJ0aWZpY2F0ZUluZm8uaCAqLzsgfTsKIAkJQkNGNTA1RTgxMjQzMDQ3QjAwNTk1NUFF
IC8qIFBsYXRmb3JtQ2VydGlmaWNhdGVJbmZvLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gQkNGNTA1RTYxMjQzMDQ3QjAwNTk1NUFFIC8qIFBsYXRmb3Jt
Q2VydGlmaWNhdGVJbmZvLm1tICovOyB9OwogCQlCQ0Y1MDcyODEyNDMyOUFBMDA1OTU1QUUgLyog
V2ViQ2VydGlmaWNhdGVJbmZvLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBCQ0Y1MDcyNjEyNDMyOUFBMDA1OTU1QUUgLyogV2ViQ2VydGlmaWNhdGVJbmZv
LmggKi87IH07CkBAIC0xOTA4LDkgKzE5MDUsNiBAQAogCQlCQ0YwNDlFNTExRkUyMEY2MDBGODZB
NTggLyogV0tCdW5kbGVQcml2YXRlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFdLQnVuZGxlUHJpdmF0ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCQ0YwNEM4
QzExRkY5QjdEMDBGODZBNTggLyogQVBJT2JqZWN0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IEFQSU9iamVjdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCQ0Yw
NEM4RTExRkY5RjZFMDBGODZBNTggLyogV2ViU3RyaW5nLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFdlYlN0cmluZy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlC
Q0Y1MDExRjEyM0VEM0IzMDA1OTU1QUUgLyogVGhyZWFkTGF1bmNoZXIuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gVGhyZWFkTGF1bmNoZXIuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKLQkJQkNGNTAxMjAxMjNFRDNCMzAwNTk1NUFFIC8qIFRocmVhZExhdW5jaGVyLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFRocmVhZExhdW5jaGVyLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQkNGNTAxQjMxMjNFRjYwMjAwNTk1NUFF
IC8qIFRocmVhZExhdW5jaGVyTWFjLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3Bw
OyBwYXRoID0gVGhyZWFkTGF1bmNoZXJNYWMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCUJDRjUwNUU1MTI0MzA0N0IwMDU5NTVBRSAvKiBQbGF0Zm9ybUNlcnRpZmljYXRlSW5mby5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQbGF0Zm9ybUNlcnRpZmljYXRlSW5m
by5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCQ0Y1MDVFNjEyNDMwNDdCMDA1OTU1
QUUgLyogUGxhdGZvcm1DZXJ0aWZpY2F0ZUluZm8ubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5vYmpjcHA7IHBhdGggPSBQbGF0Zm9ybUNlcnRpZmljYXRlSW5mby5tbTsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJQkNGNTA2ODQxMjQzMTg2MTAwNTk1NUFFIC8qIFNlY3VyaXR5LmZy
YW1ld29yayAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9
IHdyYXBwZXIuZnJhbWV3b3JrOyBuYW1lID0gU2VjdXJpdHkuZnJhbWV3b3JrOyBwYXRoID0gL1N5
c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3MvU2VjdXJpdHkuZnJhbWV3b3JrOyBzb3VyY2VUcmVlID0g
IjxhYnNvbHV0ZT4iOyB9OwpAQCAtMzE2MSw4ICszMTU1LDYgQEAKIAkJCQlCQzExMUIxOTExMkY1
RkM1MDAzMzdCQUIgLyogbWFjICovLAogCQkJCTFBRTExN0Y1MTFEQkIzMDkwMDk4MTYxNSAvKiBQ
cm9jZXNzTGF1bmNoZXIuY3BwICovLAogCQkJCUJDMUE3QzU3MTEzNkUxOUMwMEZCNzE2NyAvKiBQ
cm9jZXNzTGF1bmNoZXIuaCAqLywKLQkJCQlCQ0Y1MDEyMDEyM0VEM0IzMDA1OTU1QUUgLyogVGhy
ZWFkTGF1bmNoZXIuY3BwICovLAotCQkJCUJDRjUwMTFGMTIzRUQzQjMwMDU5NTVBRSAvKiBUaHJl
YWRMYXVuY2hlci5oICovLAogCQkJKTsKIAkJCXBhdGggPSBMYXVuY2hlcjsKIAkJCXNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7CkBAIC0zMTc1LDcgKzMxNjcsNiBAQAogCQkJCTFBN0M2Q0Q4MTM3ODk1
MDgwMEI5QzA0RCAvKiBFbnZpcm9ubWVudFZhcmlhYmxlcy5jcHAgKi8sCiAJCQkJMUE3QzZDRDkx
Mzc4OTUwODAwQjlDMDREIC8qIEVudmlyb25tZW50VmFyaWFibGVzLmggKi8sCiAJCQkJQkMxMTFC
MUIxMTJGNUZFNjAwMzM3QkFCIC8qIFByb2Nlc3NMYXVuY2hlck1hYy5tbSAqLywKLQkJCQlCQ0Y1
MDFCMzEyM0VGNjAyMDA1OTU1QUUgLyogVGhyZWFkTGF1bmNoZXJNYWMubW0gKi8sCiAJCQkpOwog
CQkJcGF0aCA9IG1hYzsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CkBAIC0zOTcyLDcgKzM5
NjMsNiBAQAogCQkJCUJDQkQzQzNCMTI1QkZBN0EwMEQyQzI5RiAvKiBTdHJpbmdQYWlyVmVjdG9y
LmggaW4gSGVhZGVycyAqLywKIAkJCQkxQUE0MTdDQjEyQzAwQ0NBMDAyQkU2N0IgLyogVGV4dENo
ZWNrZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBNUU0REE0MTJEM0JEM0QwMDk5QTJCQiAvKiBU
ZXh0Q2hlY2tlclN0YXRlLmggaW4gSGVhZGVycyAqLywKLQkJCQlCQ0Y1MDEyMTEyM0VEM0IzMDA1
OTU1QUUgLyogVGhyZWFkTGF1bmNoZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBQUYyNjM5MTQ2
ODdDMzkwMDRBMUU4QSAvKiBUaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYS5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJMUFGMDVEODcxNDY4ODM0ODAwOEIxRTgxIC8qIFRpbGVkQ29yZUFuaW1hdGlv
bkRyYXdpbmdBcmVhUHJveHkuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBNjQyNDVFMTJERTI5QTEw
MENBQUUyQyAvKiBVcGRhdGVJbmZvLmggaW4gSGVhZGVycyAqLywKQEAgLTQ3NTcsOCArNDc0Nyw2
IEBACiAJCQkJMUEyNEJGM0ExMjA4OTZBNjAwRkJCMDU5IC8qIFNoYXJlZE1lbW9yeU1hYy5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQk1MjcyQjI4QTE0MDY5ODVEMDA5NkE1RDAgLyogU3RhdGlzdGlj
c0RhdGEuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMUFBNDE3RUYxMkMwMEQ4NzAwMkJFNjdCIC8q
IFRleHRDaGVja2VyTWFjLm1tIGluIFNvdXJjZXMgKi8sCi0JCQkJQkNGNTAxMjIxMjNFRDNCMzAw
NTk1NUFFIC8qIFRocmVhZExhdW5jaGVyLmNwcCBpbiBTb3VyY2VzICovLAotCQkJCUJDRjUwMUI0
MTIzRUY2MDIwMDU5NTVBRSAvKiBUaHJlYWRMYXVuY2hlck1hYy5tbSBpbiBTb3VyY2VzICovLAog
CQkJCTFBQUYyNjM4MTQ2ODdDMzkwMDRBMUU4QSAvKiBUaWxlZENvcmVBbmltYXRpb25EcmF3aW5n
QXJlYS5tbSBpbiBTb3VyY2VzICovLAogCQkJCTFBRjA1RDg2MTQ2ODgzNDgwMDhCMUU4MSAvKiBU
aWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYVByb3h5Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJ
MUE2NDI0NUYxMkRFMjlBMTAwQ0FBRTJDIC8qIFVwZGF0ZUluZm8uY3BwIGluIFNvdXJjZXMgKi8s
CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi93aW4vV2ViS2l0Mi52Y3Byb2oKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYktpdDIvd2luL1dlYktpdDIudmNwcm9qCShyZXZpc2lvbiAxMjUzNTgpCisrKyBT
b3VyY2UvV2ViS2l0Mi93aW4vV2ViS2l0Mi52Y3Byb2oJKHdvcmtpbmcgY29weSkKQEAgLTM3NTMs
MTQgKzM3NTMsNiBAQAogCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXFVJUHJvY2Vzc1xMYXVuY2hlclxQ
cm9jZXNzTGF1bmNoZXIuaCIKIAkJCQkJPgogCQkJCTwvRmlsZT4KLQkJCQk8RmlsZQotCQkJCQlS
ZWxhdGl2ZVBhdGg9Ii4uXFVJUHJvY2Vzc1xMYXVuY2hlclxUaHJlYWRMYXVuY2hlci5jcHAiCi0J
CQkJCT4KLQkJCQk8L0ZpbGU+Ci0JCQkJPEZpbGUKLQkJCQkJUmVsYXRpdmVQYXRoPSIuLlxVSVBy
b2Nlc3NcTGF1bmNoZXJcVGhyZWFkTGF1bmNoZXIuaCIKLQkJCQkJPgotCQkJCTwvRmlsZT4KIAkJ
CQk8RmlsdGVyCiAJCQkJCU5hbWU9IndpbiIKIAkJCQkJPgpAQCAtMzc2OCwxMCArMzc2MCw2IEBA
CiAJCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXFVJUHJvY2Vzc1xMYXVuY2hlclx3aW5cUHJvY2Vzc0xh
dW5jaGVyV2luLmNwcCIKIAkJCQkJCT4KIAkJCQkJPC9GaWxlPgotCQkJCQk8RmlsZQotCQkJCQkJ
UmVsYXRpdmVQYXRoPSIuLlxVSVByb2Nlc3NcTGF1bmNoZXJcd2luXFRocmVhZExhdW5jaGVyV2lu
LmNwcCIKLQkJCQkJCT4KLQkJCQkJPC9GaWxlPgogCQkJCTwvRmlsdGVyPgogCQkJPC9GaWx0ZXI+
CiAJCQk8RmlsdGVyCg==
</data>
<flag name="review"
          id="167871"
          type_id="1"
          status="+"
          setter="mitz"
    />
          </attachment>
      

    </bug>

</bugzilla>