<?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>209984</bug_id>
          
          <creation_ts>2020-04-03 13:54:38 -0700</creation_ts>
          <short_desc>[iOS] Simplify ProcessAssertion class in preparation for switch to RunningBoard</short_desc>
          <delta_ts>2020-04-06 08:27:56 -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>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=210049</see_also>
          <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>
          
          <blocked>209990</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>achristensen</cc>
    
    <cc>beidson</cc>
    
    <cc>darin</cc>
    
    <cc>ggaren</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1637516</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-04-03 13:54:38 -0700</bug_when>
    <thetext>Simplify ProcessAssertion class in preparation for switch to RunningBoard. There is a slight mismatch between the way BKS and RunningBoard process assertion API. This refactoring makes it so that we can use the same ProcessAssertion class in WebKit to work with either BKS or RunningBoard. Support for RunningBoard will come later.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1637517</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-04-03 13:54:52 -0700</bug_when>
    <thetext>&lt;rdar://problem/61273941&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1637523</commentid>
    <comment_count>2</comment_count>
      <attachid>395409</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-04-03 14:07:41 -0700</bug_when>
    <thetext>Created attachment 395409
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1637779</commentid>
    <comment_count>3</comment_count>
      <attachid>395409</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2020-04-04 16:40:15 -0700</bug_when>
    <thetext>Comment on attachment 395409
Patch

If reasons are always C++ literals, why store them in WTF::String? We could just store as const char* or maybe even as WTF::ASCIILiteral.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1637783</commentid>
    <comment_count>4</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-04-04 17:03:52 -0700</bug_when>
    <thetext>Committed r259540: &lt;https://trac.webkit.org/changeset/259540&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 395409.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1638099</commentid>
    <comment_count>5</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-04-06 08:27:52 -0700</bug_when>
    <thetext>(In reply to Darin Adler from comment #3)
&gt; Comment on attachment 395409 [details]
&gt; Patch
&gt; 
&gt; If reasons are always C++ literals, why store them in WTF::String? We could
&gt; just store as const char* or maybe even as WTF::ASCIILiteral.

Ok, will follow-up in https://bugs.webkit.org/show_bug.cgi?id=210049.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>395409</attachid>
            <date>2020-04-03 14:07:41 -0700</date>
            <delta_ts>2020-04-04 17:03:53 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-209984-20200403140740.patch</filename>
            <type>text/plain</type>
            <size>39444</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU5NDY0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGYyZTlmYjIyOWZiMzlkYmZh
ZWExMjU5MTE2YWI3ZWNmNDlhNDhmNmMuLmZiM2IwMTBhOGQxNTEwMTE5ZGY3ZjBkYjc3NDMzNGU1
NWIxMmEwNmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsODEgQEAKKzIwMjAtMDQtMDMgIENocmlzIER1
bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBbaU9TXSBTaW1wbGlmeSBQcm9jZXNz
QXNzZXJ0aW9uIGNsYXNzIGluIHByZXBhcmF0aW9uIGZvciBzd2l0Y2ggdG8gUnVubmluZ0JvYXJk
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDk5ODQK
KyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzYxMjczOTQxPgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFNpbXBsaWZ5IFByb2Nlc3NBc3NlcnRpb24gY2xh
c3MgaW4gcHJlcGFyYXRpb24gZm9yIHN3aXRjaCB0byBSdW5uaW5nQm9hcmQuIFRoZXJlCisgICAg
ICAgIGlzIGEgc2xpZ2h0IG1pc21hdGNoIGJldHdlZW4gdGhlIHdheSBCS1MgYW5kIFJ1bm5pbmdC
b2FyZCBwcm9jZXNzIGFzc2VydGlvbiBBUEkuCisgICAgICAgIFRoaXMgcmVmYWN0b3JpbmcgbWFr
ZXMgaXQgc28gdGhhdCB3ZSBjYW4gdXNlIHRoZSBzYW1lIFByb2Nlc3NBc3NlcnRpb24gY2xhc3Mg
aW4KKyAgICAgICAgV2ViS2l0IHRvIHdvcmsgd2l0aCBlaXRoZXIgQktTIG9yIFJ1bm5pbmdCb2Fy
ZC4gU3VwcG9ydCBmb3IgUnVubmluZ0JvYXJkIHdpbGwKKyAgICAgICAgY29tZSBsYXRlci4KKwor
ICAgICAgICBJbiBwYXJ0aWN1bGFyLCB0aGUgZm9sbG93aW5nIGNoYW5nZXMgd2VyZSBtYWRlOgor
ICAgICAgICAtIFJlcGxhY2UgQXNzZXJ0aW9uU3RhdGUgJiBBc3NlcnRpb25SZWFzb24gZW51bXMg
d2l0aCBhIHNpbmdsZSBQcm9jZXNzQXNzZXJ0aW9uVHlwZQorICAgICAgICAgIG9uZSBzaW5jZSBS
dW5uaW5nQm9hcmQgZG9lcyBub3QgaGF2ZSAyIHNlcGFyYXRlIGNvbmNlcHRzLgorICAgICAgICAt
IERyb3AgUHJvY2Vzc0Fzc2VydGlvbjo6c2V0U3RhdGUoKSBzaW5jZSBpdCBpcyBub3QgcG9zc2li
bGUgdG8gY2hhbmdlIHRoZSBmbGFncworICAgICAgICAgIG9uIGFuIGV4aXN0aW5nIFJ1bm5pbmdC
b2FyZCBhc3NlcnRpb24uIEluc3RlYWQsIHdlIGFyZSBleHBlY3RlZCB0byBjcmVhdGUgYQorICAg
ICAgICAgIGJyYW5kIG5ldyBwcm9jZXNzIGFzc2VydGlvbiBvZiB0aGUgZXhwZWN0ZWQgdHlwZS4K
KworICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL0Rvd25sb2Fkcy9Eb3dubG9hZE1hcC5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6OkRvd25sb2FkTWFwOjphZGQpOgorICAgICAgICAqIFBsYXRmb3JtL0lQ
Qy9jb2NvYS9Db25uZWN0aW9uQ29jb2EubW06CisgICAgICAgIChJUEM6OkNvbm5lY3Rpb25UZXJt
aW5hdGlvbldhdGNoZG9nOjpDb25uZWN0aW9uVGVybWluYXRpb25XYXRjaGRvZyk6CisgICAgICAg
ICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdQcml2YXRlRm9yVGVzdGluZy5oOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3VGVzdGluZy5tbToKKyAgICAgICAg
KC1bV0tXZWJWaWV3IF9zZXRBc3NlcnRpb25UeXBlRm9yVGVzdGluZzpdKToKKyAgICAgICAgKC1b
V0tXZWJWaWV3IF9zZXRBc3NlcnRpb25TdGF0ZUZvclRlc3Rpbmc6XSk6IERlbGV0ZWQuCisgICAg
ICAgICogVUlQcm9jZXNzL0Rvd25sb2Fkcy9Eb3dubG9hZFByb3h5TWFwLmNwcDoKKyAgICAgICAg
KFdlYktpdDo6RG93bmxvYWRQcm94eU1hcDo6Y3JlYXRlRG93bmxvYWRQcm94eSk6CisgICAgICAg
ICogVUlQcm9jZXNzL0dQVS9HUFVQcm9jZXNzUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3Mv
TmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29y
a1Byb2Nlc3NQcm94eTo6c2VuZFByb2Nlc3NEaWRSZXN1bWUpOgorICAgICAgICAoV2ViS2l0OjpO
ZXR3b3JrUHJvY2Vzc1Byb3h5Ojp0YWtlVXBsb2FkQXNzZXJ0aW9uKToKKyAgICAgICAgKFdlYktp
dDo6TmV0d29ya1Byb2Nlc3NQcm94eTo6ZGlkU2V0QXNzZXJ0aW9uU3RhdGUpOiBEZWxldGVkLgor
ICAgICAgICAqIFVJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuaDoKKyAgICAg
ICAgKiBVSVByb2Nlc3MvUHJvY2Vzc0Fzc2VydGlvbi5jcHA6CisgICAgICAgIChXZWJLaXQ6OlBy
b2Nlc3NBc3NlcnRpb246OlByb2Nlc3NBc3NlcnRpb24pOgorICAgICAgICAoV2ViS2l0OjpQcm9j
ZXNzQXNzZXJ0aW9uOjpzZXRTdGF0ZSk6IERlbGV0ZWQuCisgICAgICAgICogVUlQcm9jZXNzL1By
b2Nlc3NBc3NlcnRpb24uaDoKKyAgICAgICAgKFdlYktpdDo6UHJvY2Vzc0Fzc2VydGlvbjo6dHlw
ZSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OlByb2Nlc3NBc3NlcnRpb246OnN0YXRlIGNvbnN0
KTogRGVsZXRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvUHJvY2Vzc1Rocm90dGxlci5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6OlByb2Nlc3NUaHJvdHRsZXI6OmV4cGVjdGVkQXNzZXJ0aW9uVHlwZSk6
CisgICAgICAgIChXZWJLaXQ6OlByb2Nlc3NUaHJvdHRsZXI6OnVwZGF0ZUFzc2VydGlvblR5cGVO
b3cpOgorICAgICAgICAoV2ViS2l0OjpQcm9jZXNzVGhyb3R0bGVyOjpzZXRBc3NlcnRpb25UeXBl
KToKKyAgICAgICAgKFdlYktpdDo6UHJvY2Vzc1Rocm90dGxlcjo6dXBkYXRlQXNzZXJ0aW9uSWZO
ZWVkZWQpOgorICAgICAgICAoV2ViS2l0OjpQcm9jZXNzVGhyb3R0bGVyOjpkaWRDb25uZWN0VG9Q
cm9jZXNzKToKKyAgICAgICAgKFdlYktpdDo6UHJvY2Vzc1Rocm90dGxlcjo6cHJlcGFyZVRvU3Vz
cGVuZFRpbWVvdXRUaW1lckZpcmVkKToKKyAgICAgICAgKFdlYktpdDo6UHJvY2Vzc1Rocm90dGxl
cjo6cHJvY2Vzc1JlYWR5VG9TdXNwZW5kKToKKyAgICAgICAgKFdlYktpdDo6UHJvY2Vzc1Rocm90
dGxlcjo6c2VuZFByZXBhcmVUb1N1c3BlbmRJUEMpOgorICAgICAgICAoV2ViS2l0OjpQcm9jZXNz
VGhyb3R0bGVyOjpleHBlY3RlZEFzc2VydGlvblN0YXRlKTogRGVsZXRlZC4KKyAgICAgICAgKFdl
YktpdDo6UHJvY2Vzc1Rocm90dGxlcjo6dXBkYXRlQXNzZXJ0aW9uU3RhdGVOb3cpOiBEZWxldGVk
LgorICAgICAgICAoV2ViS2l0OjpQcm9jZXNzVGhyb3R0bGVyOjpzZXRBc3NlcnRpb25TdGF0ZSk6
IERlbGV0ZWQuCisgICAgICAgICogVUlQcm9jZXNzL1Byb2Nlc3NUaHJvdHRsZXIuaDoKKyAgICAg
ICAgKiBVSVByb2Nlc3MvUHJvY2Vzc1Rocm90dGxlckNsaWVudC5oOgorICAgICAgICAoV2ViS2l0
OjpQcm9jZXNzVGhyb3R0bGVyQ2xpZW50OjpkaWRTZXRBc3NlcnRpb25UeXBlKToKKyAgICAgICAg
KiBVSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9j
ZXNzUG9vbDo6c2V0V2ViUHJvY2Vzc0hhc1VwbG9hZHMpOgorICAgICAgICAoV2ViS2l0OjpXZWJQ
cm9jZXNzUG9vbDo6c2V0V2ViUHJvY2Vzc0lzUGxheWluZ0F1ZGlibGVNZWRpYSk6CisgICAgICAg
ICogVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBy
b2Nlc3NQcm94eTo6ZGlkU2V0QXNzZXJ0aW9uVHlwZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBy
b2Nlc3NQcm94eTo6ZGlkU2V0QXNzZXJ0aW9uU3RhdGUpOiBEZWxldGVkLgorICAgICAgICAqIFVJ
UHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaDoKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1By
b3h5OjpzZXRBc3NlcnRpb25UeXBlRm9yVGVzdGluZyk6CisgICAgICAgIChXZWJLaXQ6OldlYlBy
b2Nlc3NQcm94eTo6c2V0QXNzZXJ0aW9uU3RhdGVGb3JUZXN0aW5nKTogRGVsZXRlZC4KKyAgICAg
ICAgKiBVSVByb2Nlc3MvaW9zL1Byb2Nlc3NBc3NlcnRpb25JT1MubW06CisgICAgICAgIChXZWJL
aXQ6OmZsYWdzRm9yQXNzZXJ0aW9uVHlwZSk6CisgICAgICAgIChXZWJLaXQ6OnRvQktTUHJvY2Vz
c0Fzc2VydGlvblJlYXNvbik6CisgICAgICAgIChXZWJLaXQ6OlByb2Nlc3NBc3NlcnRpb246OlBy
b2Nlc3NBc3NlcnRpb24pOgorICAgICAgICAoV2ViS2l0OjpQcm9jZXNzQW5kVUlBc3NlcnRpb246
OnVwZGF0ZVJ1bkluQmFja2dyb3VuZENvdW50KToKKyAgICAgICAgKFdlYktpdDo6UHJvY2Vzc0Fu
ZFVJQXNzZXJ0aW9uOjpQcm9jZXNzQW5kVUlBc3NlcnRpb24pOgorICAgICAgICAoV2ViS2l0Ojpm
bGFnc0ZvclN0YXRlKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6cmVhc29uRm9yU3RhdGUp
OiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpQcm9jZXNzQXNzZXJ0aW9uOjpzZXRTdGF0ZSk6
IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OlByb2Nlc3NBbmRVSUFzc2VydGlvbjo6c2V0U3Rh
dGUpOiBEZWxldGVkLgorCiAyMDIwLTA0LTAzICB5b3Vlbm4gZmFibGV0ICA8eW91ZW5uQGFwcGxl
LmNvbT4KIAogICAgICAgICBTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrOjp0aW1lb3V0VGltZXJGaXJl
ZCBzaG91bGQgbm90IGNhbGwgY29udGV4dENsb3NlZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9Eb3dubG9hZHMvRG93bmxvYWRNYXAuY3BwIGIvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9Eb3dubG9hZHMvRG93bmxvYWRNYXAuY3BwCmluZGV4IGFlM2NhN2Uw
ZTRlZTdlYzg1ZGVhMmUzMDllMWQzYzIwYjc0OTY1MGYuLjczOTA2ODhiNWJjOGI2YjQxOGFjNTUz
NWI0NjI3ZjFkOTFmNzVjYzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvRG93bmxvYWRzL0Rvd25sb2FkTWFwLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL0Rvd25sb2Fkcy9Eb3dubG9hZE1hcC5jcHAKQEAgLTYxLDcgKzYxLDcgQEAgRG93bmxv
YWRNYXA6OkRvd25sb2FkTWFwVHlwZTo6QWRkUmVzdWx0IERvd25sb2FkTWFwOjphZGQoRG93bmxv
YWRJRCBkb3dubG9hZElELAogICAgIGF1dG8gcmVzdWx0ID0gbV9kb3dubG9hZHMuYWRkKGRvd25s
b2FkSUQsIFdURk1vdmUoZG93bmxvYWQpKTsKICAgICBpZiAobV9kb3dubG9hZHMuc2l6ZSgpID09
IDEpIHsKICAgICAgICAgQVNTRVJUKCFtX2Rvd25sb2FkQXNzZXJ0aW9uKTsKLSAgICAgICAgbV9k
b3dubG9hZEFzc2VydGlvbiA9IG1ha2VVbmlxdWU8UHJvY2Vzc0Fzc2VydGlvbj4oZ2V0cGlkKCks
ICJXZWJLaXQgZG93bmxvYWRzIl9zLCBBc3NlcnRpb25TdGF0ZTo6VW5ib3VuZGVkTmV0d29ya2lu
Zyk7CisgICAgICAgIG1fZG93bmxvYWRBc3NlcnRpb24gPSBtYWtlVW5pcXVlPFByb2Nlc3NBc3Nl
cnRpb24+KGdldHBpZCgpLCAiV2ViS2l0IGRvd25sb2FkcyJfcywgUHJvY2Vzc0Fzc2VydGlvblR5
cGU6OlVuYm91bmRlZE5ldHdvcmtpbmcpOwogICAgICAgICBSRUxFQVNFX0xPRyhQcm9jZXNzU3Vz
cGVuc2lvbiwgIlRvb2sgJ1dlYktpdCBkb3dubG9hZHMnIGFzc2VydGlvbiBpbiBOZXR3b3JrUHJv
Y2VzcyIpOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMv
Y29jb2EvQ29ubmVjdGlvbkNvY29hLm1tIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvY29j
b2EvQ29ubmVjdGlvbkNvY29hLm1tCmluZGV4IDEzMjI1MTk5ZGE3NzdjMTIzNGJhZmY0OTQ4NzE1
ZmFlMWRhY2I0OTYuLmE2MWJhMGFmZjJjYTE2ODQ2Njg3ODE2MTgwN2U3ZmU0NDUyMjE0MGEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vSVBDL2NvY29hL0Nvbm5lY3Rpb25Db2Nv
YS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0lQQy9jb2NvYS9Db25uZWN0aW9uQ29j
b2EubW0KQEAgLTg2LDcgKzg2LDcgQEAgcHJpdmF0ZToKICAgICAgICAgOiBtX3hwY0Nvbm5lY3Rp
b24oeHBjQ29ubmVjdGlvbikKICAgICAgICAgLCBtX3dhdGNoZG9nVGltZXIoUnVuTG9vcDo6bWFp
bigpLCB0aGlzLCAmQ29ubmVjdGlvblRlcm1pbmF0aW9uV2F0Y2hkb2c6OndhdGNoZG9nVGltZXJG
aXJlZCkKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQotICAgICAgICAsIG1fYXNzZXJ0aW9uKG1h
a2VVbmlxdWU8V2ViS2l0OjpQcm9jZXNzQW5kVUlBc3NlcnRpb24+KHhwY19jb25uZWN0aW9uX2dl
dF9waWQobV94cGNDb25uZWN0aW9uLmdldCgpKSwgIkNvbm5lY3Rpb25UZXJtaW5hdGlvbldhdGNo
ZG9nIl9zLCBXZWJLaXQ6OkFzc2VydGlvblN0YXRlOjpCYWNrZ3JvdW5kKSkKKyAgICAgICAgLCBt
X2Fzc2VydGlvbihtYWtlVW5pcXVlPFdlYktpdDo6UHJvY2Vzc0FuZFVJQXNzZXJ0aW9uPih4cGNf
Y29ubmVjdGlvbl9nZXRfcGlkKG1feHBjQ29ubmVjdGlvbi5nZXQoKSksICJDb25uZWN0aW9uVGVy
bWluYXRpb25XYXRjaGRvZyJfcywgV2ViS2l0OjpQcm9jZXNzQXNzZXJ0aW9uVHlwZTo6QmFja2dy
b3VuZCkpCiAjZW5kaWYKICAgICB7CiAgICAgICAgIG1fd2F0Y2hkb2dUaW1lci5zdGFydE9uZVNo
b3QoaW50ZXJ2YWwpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0Nv
Y29hL1dLV2ViVmlld1ByaXZhdGVGb3JUZXN0aW5nLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvQ29jb2EvV0tXZWJWaWV3UHJpdmF0ZUZvclRlc3RpbmcuaAppbmRleCAzNWZkNmRjNTcw
ZTZkNGZkOWZiZjJjMTBlNDRiMjFlNmNiZmU2MTE3Li40NWU5MDYxMzBhZTIxNDViNzExMDA1OGMz
MjZmMTYxY2FiNmJkNDVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Q29jb2EvV0tXZWJWaWV3UHJpdmF0ZUZvclRlc3RpbmcuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3UHJpdmF0ZUZvclRlc3RpbmcuaApAQCAtNTcsNyAr
NTcsNyBAQAogLSAodm9pZClfcHJvY2Vzc0RpZFJlc3VtZUZvclRlc3Rpbmc7CiBAcHJvcGVydHkg
KG5vbmF0b21pYywgcmVhZG9ubHkpIEJPT0wgX2hhc1NlcnZpY2VXb3JrZXJCYWNrZ3JvdW5kQWN0
aXZpdHlGb3JUZXN0aW5nOwogQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBCT09MIF9o
YXNTZXJ2aWNlV29ya2VyRm9yZWdyb3VuZEFjdGl2aXR5Rm9yVGVzdGluZzsKLS0gKHZvaWQpX3Nl
dEFzc2VydGlvblN0YXRlRm9yVGVzdGluZzooaW50KXN0YXRlOworLSAodm9pZClfc2V0QXNzZXJ0
aW9uVHlwZUZvclRlc3Rpbmc6KGludCl0eXBlOwogCiAtICh2b2lkKV9kb0FmdGVyUHJvY2Vzc2lu
Z0FsbFBlbmRpbmdNb3VzZUV2ZW50czooZGlzcGF0Y2hfYmxvY2tfdClhY3Rpb247CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdUZXN0aW5n
Lm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1Rlc3Rpbmcu
bW0KaW5kZXggMDgyNDgyZDkyYmEwYWU5NTc3OWVkOGU5YWQwMTQ0OWIwMmRjNjJhMS4uMTlmYTRm
MGUxMDY4YTRjYTg2ZWM4OTg0YzJkYmE5NTI0ZjUzNDI5OSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1Rlc3RpbmcubW0KKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1Rlc3RpbmcubW0KQEAgLTE3MCwx
MiArMTcwLDEyIEBAIC0gKHZvaWQpX3Byb2Nlc3NEaWRSZXN1bWVGb3JUZXN0aW5nCiAgICAgICAg
IF9wYWdlLT5wcm9jZXNzKCkuc2VuZFByb2Nlc3NEaWRSZXN1bWUoKTsKIH0KIAotLSAodm9pZClf
c2V0QXNzZXJ0aW9uU3RhdGVGb3JUZXN0aW5nOihpbnQpdmFsdWUKKy0gKHZvaWQpX3NldEFzc2Vy
dGlvblR5cGVGb3JUZXN0aW5nOihpbnQpdmFsdWUKIHsKICAgICBpZiAoIV9wYWdlKQogICAgICAg
ICByZXR1cm47CiAKLSAgICBfcGFnZS0+cHJvY2VzcygpLnNldEFzc2VydGlvblN0YXRlRm9yVGVz
dGluZyhzdGF0aWNfY2FzdDxXZWJLaXQ6OkFzc2VydGlvblN0YXRlPih2YWx1ZSkpOworICAgIF9w
YWdlLT5wcm9jZXNzKCkuc2V0QXNzZXJ0aW9uVHlwZUZvclRlc3Rpbmcoc3RhdGljX2Nhc3Q8V2Vi
S2l0OjpQcm9jZXNzQXNzZXJ0aW9uVHlwZT4odmFsdWUpKTsKIH0KIAogLSAoQk9PTClfaGFzU2Vy
dmljZVdvcmtlckJhY2tncm91bmRBY3Rpdml0eUZvclRlc3RpbmcKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0Rvd25sb2Fkcy9Eb3dubG9hZFByb3h5TWFwLmNwcCBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0Rvd25sb2Fkcy9Eb3dubG9hZFByb3h5TWFwLmNwcAppbmRleCA3
MGM0YjZjZWYzZWM3ODMzYTgwYTVlYmMzYWI4Mjg1NDI0M2YwZTAwLi43NmEwNzE1N2I1OTFhYWNl
NTBmMTVkMTUyNWRiY2ZiOGM2YTRiYmM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9Eb3dubG9hZHMvRG93bmxvYWRQcm94eU1hcC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvRG93bmxvYWRzL0Rvd25sb2FkUHJveHlNYXAuY3BwCkBAIC04OSwxMSArODksMTEg
QEAgRG93bmxvYWRQcm94eSYgRG93bmxvYWRQcm94eU1hcDo6Y3JlYXRlRG93bmxvYWRQcm94eShX
ZWJzaXRlRGF0YVN0b3JlJiBkYXRhU3RvcmUKIAogICAgIGlmIChtX2Rvd25sb2Fkcy5zaXplKCkg
PT0gMSAmJiBtX3Nob3VsZFRha2VBc3NlcnRpb24pIHsKICAgICAgICAgQVNTRVJUKCFtX2Rvd25s
b2FkVUlBc3NlcnRpb24pOwotICAgICAgICBtX2Rvd25sb2FkVUlBc3NlcnRpb24gPSBtYWtlVW5p
cXVlPFByb2Nlc3NBc3NlcnRpb24+KGdldEN1cnJlbnRQcm9jZXNzSUQoKSwgIldlYktpdCBkb3du
bG9hZHMiX3MsIEFzc2VydGlvblN0YXRlOjpVbmJvdW5kZWROZXR3b3JraW5nKTsKKyAgICAgICAg
bV9kb3dubG9hZFVJQXNzZXJ0aW9uID0gbWFrZVVuaXF1ZTxQcm9jZXNzQXNzZXJ0aW9uPihnZXRD
dXJyZW50UHJvY2Vzc0lEKCksICJXZWJLaXQgZG93bmxvYWRzIl9zLCBQcm9jZXNzQXNzZXJ0aW9u
VHlwZTo6VW5ib3VuZGVkTmV0d29ya2luZyk7CiAKICAgICAgICAgQVNTRVJUKCFtX2Rvd25sb2Fk
TmV0d29ya2luZ0Fzc2VydGlvbik7CiAgICAgICAgIFJFTEVBU0VfQVNTRVJUKG1fcHJvY2Vzcyk7
Ci0gICAgICAgIG1fZG93bmxvYWROZXR3b3JraW5nQXNzZXJ0aW9uID0gbWFrZVVuaXF1ZTxQcm9j
ZXNzQXNzZXJ0aW9uPihtX3Byb2Nlc3MtPnByb2Nlc3NJZGVudGlmaWVyKCksICJXZWJLaXQgZG93
bmxvYWRzIl9zLCBBc3NlcnRpb25TdGF0ZTo6VW5ib3VuZGVkTmV0d29ya2luZyk7CisgICAgICAg
IG1fZG93bmxvYWROZXR3b3JraW5nQXNzZXJ0aW9uID0gbWFrZVVuaXF1ZTxQcm9jZXNzQXNzZXJ0
aW9uPihtX3Byb2Nlc3MtPnByb2Nlc3NJZGVudGlmaWVyKCksICJXZWJLaXQgZG93bmxvYWRzIl9z
LCBQcm9jZXNzQXNzZXJ0aW9uVHlwZTo6VW5ib3VuZGVkTmV0d29ya2luZyk7CiAKICAgICAgICAg
UkVMRUFTRV9MT0coUHJvY2Vzc1N1c3BlbnNpb24sICJVSVByb2Nlc3MgdG9vayAnV2ViS2l0IGRv
d25sb2FkcycgYXNzZXJ0aW9ucyBmb3IgVUlQcm9jZXNzIGFuZCBOZXR3b3JrUHJvY2VzcyIpOwog
ICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0dQVS9HUFVQcm9jZXNz
UHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0dQVS9HUFVQcm9jZXNzUHJveHkuaApp
bmRleCA5N2Y2NjcyYzIxZGU3MTIwNjdlYjU0MTAwNGVkZmE2MjhhODc5ZjA1Li43NTU5MzI5NWUw
YjVkNzU1NmVlZDA1NjU1NDgzMmNiMGU5YjE0Yzg3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9HUFUvR1BVUHJvY2Vzc1Byb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvR1BVL0dQVVByb2Nlc3NQcm94eS5oCkBAIC05Miw3ICs5Miw2IEBAIHByaXZhdGU6CiAK
ICAgICAvLyBQcm9jZXNzVGhyb3R0bGVyQ2xpZW50CiAgICAgdm9pZCBzZW5kUHJlcGFyZVRvU3Vz
cGVuZChJc1N1c3BlbnNpb25JbW1pbmVudCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKSBm
aW5hbCB7IH0KLSAgICB2b2lkIGRpZFNldEFzc2VydGlvblN0YXRlKEFzc2VydGlvblN0YXRlKSBm
aW5hbCB7IH0KIAogICAgIC8vIFByb2Nlc3NMYXVuY2hlcjo6Q2xpZW50CiAgICAgdm9pZCBkaWRG
aW5pc2hMYXVuY2hpbmcoUHJvY2Vzc0xhdW5jaGVyKiwgSVBDOjpDb25uZWN0aW9uOjpJZGVudGlm
aWVyKSBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdv
cmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3
b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3BwCmluZGV4IGY4NWU5OGI2MWM2MDg0YzNkYTdhMTYy
NTVlMTAxMzUzNWY4MTE5M2EuLjU1ZDJmMWVlMGNmNTdlNmJjZTFlOGY4Y2EwOWRjZTdjMDI4Yjdl
YmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1By
b2Nlc3NQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3
b3JrUHJvY2Vzc1Byb3h5LmNwcApAQCAtMTE5OCwxMCArMTE5OCw2IEBAIHZvaWQgTmV0d29ya1By
b2Nlc3NQcm94eTo6c2VuZFByb2Nlc3NEaWRSZXN1bWUoKQogICAgIGlmIChjYW5TZW5kTWVzc2Fn
ZSgpKQogICAgICAgICBzZW5kKE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzczo6UHJvY2Vzc0RpZFJl
c3VtZSgpLCAwKTsKIH0KLQotdm9pZCBOZXR3b3JrUHJvY2Vzc1Byb3h5OjpkaWRTZXRBc3NlcnRp
b25TdGF0ZShBc3NlcnRpb25TdGF0ZSkKLXsKLX0KICAgICAKIHZvaWQgTmV0d29ya1Byb2Nlc3NQ
cm94eTo6c2V0SXNIb2xkaW5nTG9ja2VkRmlsZXMoYm9vbCBpc0hvbGRpbmdMb2NrZWRGaWxlcykK
IHsKQEAgLTE0MDUsNyArMTQwMSw3IEBAIHZvaWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6dW5yZWdp
c3RlclNjaGVtZUZvckxlZ2FjeUN1c3RvbVByb3RvY29sKGNvbnN0IFN0cmluZyYKIHZvaWQgTmV0
d29ya1Byb2Nlc3NQcm94eTo6dGFrZVVwbG9hZEFzc2VydGlvbigpCiB7CiAgICAgQVNTRVJUKCFt
X3VwbG9hZEFzc2VydGlvbik7Ci0gICAgbV91cGxvYWRBc3NlcnRpb24gPSBtYWtlVW5pcXVlPFBy
b2Nlc3NBc3NlcnRpb24+KHByb2Nlc3NJZGVudGlmaWVyKCksICJXZWJLaXQgdXBsb2FkcyJfcywg
QXNzZXJ0aW9uU3RhdGU6OlVuYm91bmRlZE5ldHdvcmtpbmcpOworICAgIG1fdXBsb2FkQXNzZXJ0
aW9uID0gbWFrZVVuaXF1ZTxQcm9jZXNzQXNzZXJ0aW9uPihwcm9jZXNzSWRlbnRpZmllcigpLCAi
V2ViS2l0IHVwbG9hZHMiX3MsIFByb2Nlc3NBc3NlcnRpb25UeXBlOjpVbmJvdW5kZWROZXR3b3Jr
aW5nKTsKIH0KIAogdm9pZCBOZXR3b3JrUHJvY2Vzc1Byb3h5OjpjbGVhclVwbG9hZEFzc2VydGlv
bigpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQ
cm9jZXNzUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1By
b2Nlc3NQcm94eS5oCmluZGV4IGFlZmM0NjBlZWYxZTMwYzNkMDA2YmE0Y2VhNjAxMDNjZTBhZTAw
NGMuLjZiODRkMjk4MGIyNmE2ZWE2NmQyNjdiYTM5OTRjNWNkNmFkMTkzOTYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5o
CkBAIC0yMzksNyArMjM5LDYgQEAgcHJpdmF0ZToKIAogICAgIC8vIFByb2Nlc3NUaHJvdHRsZXJD
bGllbnQKICAgICB2b2lkIHNlbmRQcmVwYXJlVG9TdXNwZW5kKElzU3VzcGVuc2lvbkltbWluZW50
LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpIGZpbmFsOwotICAgIHZvaWQgZGlkU2V0QXNz
ZXJ0aW9uU3RhdGUoQXNzZXJ0aW9uU3RhdGUpIGZpbmFsOwogCiAgICAgLy8gSVBDOjpDb25uZWN0
aW9uOjpDbGllbnQKICAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYs
IElQQzo6RGVjb2RlciYpIG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvUHJvY2Vzc0Fzc2VydGlvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Qcm9j
ZXNzQXNzZXJ0aW9uLmNwcAppbmRleCAyZmQwNzgzYTlmY2EyZDQ4NzI3YWM0ODZiMGQ0M2U5ODcx
YjExMWI5Li43MTJkMjBhZTAxYWY4NTdiNjY1MjkxNDkzMWU0ZDRlNTU5ZTNjNDNhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Qcm9jZXNzQXNzZXJ0aW9uLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Qcm9jZXNzQXNzZXJ0aW9uLmNwcApAQCAtMzIsMjMgKzMy
LDEzIEBACiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCi1Qcm9jZXNzQXNzZXJ0aW9uOjpQcm9jZXNz
QXNzZXJ0aW9uKFByb2Nlc3NJRCwgY29uc3QgU3RyaW5nJiwgQXNzZXJ0aW9uU3RhdGUgYXNzZXJ0
aW9uU3RhdGUpCi0gICAgOiBtX2Fzc2VydGlvblN0YXRlKGFzc2VydGlvblN0YXRlKQotewotfQot
Ci1Qcm9jZXNzQXNzZXJ0aW9uOjpQcm9jZXNzQXNzZXJ0aW9uKHBpZF90IHBpZCwgY29uc3QgU3Ry
aW5nJiBuYW1lLCBBc3NlcnRpb25TdGF0ZSBhc3NlcnRpb25TdGF0ZSwgQXNzZXJ0aW9uUmVhc29u
KQotICAgIDogbV9hc3NlcnRpb25TdGF0ZShhc3NlcnRpb25TdGF0ZSkKK1Byb2Nlc3NBc3NlcnRp
b246OlByb2Nlc3NBc3NlcnRpb24oUHJvY2Vzc0lELCBjb25zdCBTdHJpbmcmLCBQcm9jZXNzQXNz
ZXJ0aW9uVHlwZSBhc3NlcnRpb25UeXBlKQorICAgIDogbV9hc3NlcnRpb25UeXBlKGFzc2VydGlv
blR5cGUpCiB7CiB9CiAKIFByb2Nlc3NBc3NlcnRpb246On5Qcm9jZXNzQXNzZXJ0aW9uKCkgPSBk
ZWZhdWx0OwogCi12b2lkIFByb2Nlc3NBc3NlcnRpb246OnNldFN0YXRlKEFzc2VydGlvblN0YXRl
IGFzc2VydGlvblN0YXRlKQotewotICAgIG1fYXNzZXJ0aW9uU3RhdGUgPSBhc3NlcnRpb25TdGF0
ZTsKLX0KLQogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CiAKICNlbmRpZiAvLyAhUExBVEZPUk0oSU9T
X0ZBTUlMWSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Byb2Nlc3NBc3Nl
cnRpb24uaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Byb2Nlc3NBc3NlcnRpb24uaAppbmRl
eCA3NzEwNzZhYzY3NWI3MTNmODBhMzM2NTgzMmFiYmEwMmM3ZjhhZGFiLi41NzdiYmMyMDM2NzMw
NDcwNTQwYTljYzc0ZDI3ODgyYzhiODVlNmRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9Qcm9jZXNzQXNzZXJ0aW9uLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
UHJvY2Vzc0Fzc2VydGlvbi5oCkBAIC00MCwxOCArNDAsMTIgQEAgT0JKQ19DTEFTUyBCS1NQcm9j
ZXNzQXNzZXJ0aW9uOwogI2VuZGlmCiAKIG5hbWVzcGFjZSBXZWJLaXQgewotICAgIAotZW51bSBj
bGFzcyBBc3NlcnRpb25TdGF0ZSB7CisKK2VudW0gY2xhc3MgUHJvY2Vzc0Fzc2VydGlvblR5cGUg
ewogICAgIFN1c3BlbmRlZCwKICAgICBCYWNrZ3JvdW5kLAogICAgIFVuYm91bmRlZE5ldHdvcmtp
bmcsCiAgICAgRm9yZWdyb3VuZCwKLX07Ci0KLWVudW0gY2xhc3MgQXNzZXJ0aW9uUmVhc29uIHsK
LSAgICBFeHRlbnNpb24sCi0gICAgRmluaXNoVGFzaywKLSAgICBGaW5pc2hUYXNrVW5ib3VuZGVk
LAogICAgIE1lZGlhUGxheWJhY2ssCiB9OwogCkBAIC02NCwxNSArNTgsMTMgQEAgcHVibGljOgog
ICAgICAgICB2aXJ0dWFsIHZvaWQgdWlBc3NlcnRpb25XaWxsRXhwaXJlSW1taW5lbnRseSgpID0g
MDsKICAgICB9OwogCi0gICAgUHJvY2Vzc0Fzc2VydGlvbihQcm9jZXNzSUQsIGNvbnN0IFN0cmlu
ZyYgcmVhc29uLCBBc3NlcnRpb25TdGF0ZSk7Ci0gICAgUHJvY2Vzc0Fzc2VydGlvbihQcm9jZXNz
SUQsIGNvbnN0IFN0cmluZyYgcmVhc29uLCBBc3NlcnRpb25TdGF0ZSwgQXNzZXJ0aW9uUmVhc29u
KTsKKyAgICBQcm9jZXNzQXNzZXJ0aW9uKFByb2Nlc3NJRCwgY29uc3QgU3RyaW5nJiByZWFzb24s
IFByb2Nlc3NBc3NlcnRpb25UeXBlKTsKICAgICB2aXJ0dWFsIH5Qcm9jZXNzQXNzZXJ0aW9uKCk7
CiAKICAgICB2b2lkIHNldENsaWVudChDbGllbnQmIGNsaWVudCkgeyBtX2NsaWVudCA9ICZjbGll
bnQ7IH0KICAgICBDbGllbnQqIGNsaWVudCgpIHsgcmV0dXJuIG1fY2xpZW50OyB9CiAKLSAgICBB
c3NlcnRpb25TdGF0ZSBzdGF0ZSgpIGNvbnN0IHsgcmV0dXJuIG1fYXNzZXJ0aW9uU3RhdGU7IH0K
LSAgICB2aXJ0dWFsIHZvaWQgc2V0U3RhdGUoQXNzZXJ0aW9uU3RhdGUpOworICAgIFByb2Nlc3NB
c3NlcnRpb25UeXBlIHR5cGUoKSBjb25zdCB7IHJldHVybiBtX2Fzc2VydGlvblR5cGU7IH0KIAog
I2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCiBwcm90ZWN0ZWQ6CkBAIC04Nyw3ICs3OSw3IEBAIHBy
aXZhdGU6CiAgICAgUmV0YWluUHRyPEJLU1Byb2Nlc3NBc3NlcnRpb24+IG1fYXNzZXJ0aW9uOwog
ICAgIFZhbGlkaXR5IG1fdmFsaWRpdHkgeyBWYWxpZGl0eTo6VW5zZXQgfTsKICNlbmRpZgotICAg
IEFzc2VydGlvblN0YXRlIG1fYXNzZXJ0aW9uU3RhdGU7CisgICAgY29uc3QgUHJvY2Vzc0Fzc2Vy
dGlvblR5cGUgbV9hc3NlcnRpb25UeXBlOwogICAgIENsaWVudCogbV9jbGllbnQgeyBudWxscHRy
IH07CiB9OwogCkBAIC05NSwxMCArODcsOSBAQCBwcml2YXRlOgogCiBjbGFzcyBQcm9jZXNzQW5k
VUlBc3NlcnRpb24gZmluYWwgOiBwdWJsaWMgUHJvY2Vzc0Fzc2VydGlvbiB7CiBwdWJsaWM6Ci0g
ICAgUHJvY2Vzc0FuZFVJQXNzZXJ0aW9uKFByb2Nlc3NJRCwgY29uc3QgU3RyaW5nJiByZWFzb24s
IEFzc2VydGlvblN0YXRlKTsKKyAgICBQcm9jZXNzQW5kVUlBc3NlcnRpb24oUHJvY2Vzc0lELCBj
b25zdCBTdHJpbmcmIHJlYXNvbiwgUHJvY2Vzc0Fzc2VydGlvblR5cGUpOwogICAgIH5Qcm9jZXNz
QW5kVUlBc3NlcnRpb24oKTsKIAotICAgIHZvaWQgc2V0U3RhdGUoQXNzZXJ0aW9uU3RhdGUpIGZp
bmFsOwogICAgIHZvaWQgdWlBc3NlcnRpb25XaWxsRXhwaXJlSW1taW5lbnRseSgpOwogCiBwcml2
YXRlOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUHJvY2Vzc1Rocm90dGxl
ci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Qcm9jZXNzVGhyb3R0bGVyLmNwcAppbmRl
eCA2OTBiMjQxNTUxOWRjNmEyNjNkZWU5YmVmOGJlNmRiNzEwZTgzN2Y4Li43ZjY3OTcxODllZjE3
ZWEwMWVjNjFkODkyNWYzN2YyNDM0Njc3MmViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9Qcm9jZXNzVGhyb3R0bGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9Qcm9jZXNzVGhyb3R0bGVyLmNwcApAQCAtODYsMjkgKzg2LDMxIEBAIHZvaWQgUHJvY2Vzc1Ro
cm90dGxlcjo6aW52YWxpZGF0ZUFsbEFjdGl2aXRpZXMoKQogICAgIFBST0NFU1NUSFJPVFRMRVJf
UkVMRUFTRV9MT0coImludmFsaWRhdGVBbGxBY3Rpdml0aWVzOiBFTkQiKTsKIH0KICAgICAKLUFz
c2VydGlvblN0YXRlIFByb2Nlc3NUaHJvdHRsZXI6OmV4cGVjdGVkQXNzZXJ0aW9uU3RhdGUoKQor
UHJvY2Vzc0Fzc2VydGlvblR5cGUgUHJvY2Vzc1Rocm90dGxlcjo6ZXhwZWN0ZWRBc3NlcnRpb25U
eXBlKCkKIHsKICAgICBpZiAoIW1fZm9yZWdyb3VuZEFjdGl2aXRpZXMuaXNFbXB0eSgpKQotICAg
ICAgICByZXR1cm4gQXNzZXJ0aW9uU3RhdGU6OkZvcmVncm91bmQ7CisgICAgICAgIHJldHVybiBQ
cm9jZXNzQXNzZXJ0aW9uVHlwZTo6Rm9yZWdyb3VuZDsKICAgICBpZiAoIW1fYmFja2dyb3VuZEFj
dGl2aXRpZXMuaXNFbXB0eSgpKQotICAgICAgICByZXR1cm4gQXNzZXJ0aW9uU3RhdGU6OkJhY2tn
cm91bmQ7Ci0gICAgcmV0dXJuIEFzc2VydGlvblN0YXRlOjpTdXNwZW5kZWQ7CisgICAgICAgIHJl
dHVybiBQcm9jZXNzQXNzZXJ0aW9uVHlwZTo6QmFja2dyb3VuZDsKKyAgICByZXR1cm4gUHJvY2Vz
c0Fzc2VydGlvblR5cGU6OlN1c3BlbmRlZDsKIH0KICAgICAKLXZvaWQgUHJvY2Vzc1Rocm90dGxl
cjo6dXBkYXRlQXNzZXJ0aW9uU3RhdGVOb3coKQordm9pZCBQcm9jZXNzVGhyb3R0bGVyOjp1cGRh
dGVBc3NlcnRpb25UeXBlTm93KCkKIHsKLSAgICBzZXRBc3NlcnRpb25TdGF0ZShleHBlY3RlZEFz
c2VydGlvblN0YXRlKCkpOworICAgIHNldEFzc2VydGlvblR5cGUoZXhwZWN0ZWRBc3NlcnRpb25U
eXBlKCkpOwogfQogCi12b2lkIFByb2Nlc3NUaHJvdHRsZXI6OnNldEFzc2VydGlvblN0YXRlKEFz
c2VydGlvblN0YXRlIG5ld1N0YXRlKQordm9pZCBQcm9jZXNzVGhyb3R0bGVyOjpzZXRBc3NlcnRp
b25UeXBlKFByb2Nlc3NBc3NlcnRpb25UeXBlIG5ld1R5cGUpCiB7Ci0gICAgUkVMRUFTRV9BU1NF
UlQobV9hc3NlcnRpb24pOwotICAgIGlmIChtX2Fzc2VydGlvbi0+c3RhdGUoKSA9PSBuZXdTdGF0
ZSkKKyAgICBpZiAobV9hc3NlcnRpb24gJiYgbV9hc3NlcnRpb24tPnR5cGUoKSA9PSBuZXdUeXBl
KQogICAgICAgICByZXR1cm47CiAKLSAgICBQUk9DRVNTVEhST1RUTEVSX1JFTEVBU0VfTE9HKCJz
ZXRBc3NlcnRpb25TdGF0ZTogVXBkYXRpbmcgcHJvY2VzcyBhc3NlcnRpb24gc3RhdGUgdG8gJXUg
KGZvcmVncm91bmRBY3Rpdml0aWVzOiAldSwgYmFja2dyb3VuZEFjdGl2aXRpZXM6ICV1KSIsIG5l
d1N0YXRlLCBtX2ZvcmVncm91bmRBY3Rpdml0aWVzLnNpemUoKSwgbV9iYWNrZ3JvdW5kQWN0aXZp
dGllcy5zaXplKCkpOwotICAgIG1fYXNzZXJ0aW9uLT5zZXRTdGF0ZShuZXdTdGF0ZSk7Ci0gICAg
bV9wcm9jZXNzLmRpZFNldEFzc2VydGlvblN0YXRlKG5ld1N0YXRlKTsKKyAgICBQUk9DRVNTVEhS
T1RUTEVSX1JFTEVBU0VfTE9HKCJzZXRBc3NlcnRpb25UeXBlOiBVcGRhdGluZyBwcm9jZXNzIGFz
c2VydGlvbiB0eXBlIHRvICV1IChmb3JlZ3JvdW5kQWN0aXZpdGllczogJXUsIGJhY2tncm91bmRB
Y3Rpdml0aWVzOiAldSkiLCBuZXdUeXBlLCBtX2ZvcmVncm91bmRBY3Rpdml0aWVzLnNpemUoKSwg
bV9iYWNrZ3JvdW5kQWN0aXZpdGllcy5zaXplKCkpOworICAgIGlmIChtX3Nob3VsZFRha2VVSUJh
Y2tncm91bmRBc3NlcnRpb24pCisgICAgICAgIG1fYXNzZXJ0aW9uID0gbWFrZVVuaXF1ZTxQcm9j
ZXNzQW5kVUlBc3NlcnRpb24+KG1fcHJvY2Vzc0lkZW50aWZpZXIsICJXZWIgY29udGVudCB2aXNp
YmlsaXR5Il9zLCBuZXdUeXBlKTsKKyAgICBlbHNlCisgICAgICAgIG1fYXNzZXJ0aW9uID0gbWFr
ZVVuaXF1ZTxQcm9jZXNzQXNzZXJ0aW9uPihtX3Byb2Nlc3NJZGVudGlmaWVyLCAiV2ViIGNvbnRl
bnQgdmlzaWJpbGl0eSJfcywgbmV3VHlwZSk7CisgICAgbV9wcm9jZXNzLmRpZFNldEFzc2VydGlv
blR5cGUobmV3VHlwZSk7CiB9CiAgICAgCiB2b2lkIFByb2Nlc3NUaHJvdHRsZXI6OnVwZGF0ZUFz
c2VydGlvbklmTmVlZGVkKCkKQEAgLTExNyw4ICsxMTksOCBAQCB2b2lkIFByb2Nlc3NUaHJvdHRs
ZXI6OnVwZGF0ZUFzc2VydGlvbklmTmVlZGVkKCkKICAgICAgICAgcmV0dXJuOwogCiAgICAgaWYg
KHNob3VsZEJlUnVubmFibGUoKSkgewotICAgICAgICBpZiAobV9hc3NlcnRpb24tPnN0YXRlKCkg
PT0gQXNzZXJ0aW9uU3RhdGU6OlN1c3BlbmRlZCB8fCBtX3BlbmRpbmdSZXF1ZXN0VG9TdXNwZW5k
SUQpIHsKLSAgICAgICAgICAgIGlmIChtX2Fzc2VydGlvbi0+c3RhdGUoKSA9PSBBc3NlcnRpb25T
dGF0ZTo6U3VzcGVuZGVkKQorICAgICAgICBpZiAobV9hc3NlcnRpb24tPnR5cGUoKSA9PSBQcm9j
ZXNzQXNzZXJ0aW9uVHlwZTo6U3VzcGVuZGVkIHx8IG1fcGVuZGluZ1JlcXVlc3RUb1N1c3BlbmRJ
RCkgeworICAgICAgICAgICAgaWYgKG1fYXNzZXJ0aW9uLT50eXBlKCkgPT0gUHJvY2Vzc0Fzc2Vy
dGlvblR5cGU6OlN1c3BlbmRlZCkKICAgICAgICAgICAgICAgICBQUk9DRVNTVEhST1RUTEVSX1JF
TEVBU0VfTE9HKCJ1cGRhdGVBc3NlcnRpb25JZk5lZWRlZDogc2VuZGluZyBQcm9jZXNzRGlkUmVz
dW1lIElQQyBiZWNhdXNlIHRoZSBwcm9jZXNzIHdhcyBzdXNwZW5kZWQiKTsKICAgICAgICAgICAg
IGVsc2UKICAgICAgICAgICAgICAgICBQUk9DRVNTVEhST1RUTEVSX1JFTEVBU0VfTE9HKCJ1cGRh
dGVBc3NlcnRpb25JZk5lZWRlZDogc2VuZGluZyBQcm9jZXNzRGlkUmVzdW1lIElQQyBiZWNhdXNl
IHRoZSBXZWJQcm9jZXNzIGlzIHN0aWxsIHByb2Nlc3NpbmcgcmVxdWVzdCB0byBzdXNwZW5kOiAl
IiBQUkl1NjQsICptX3BlbmRpbmdSZXF1ZXN0VG9TdXNwZW5kSUQpOwpAQCAtMTI5LDE0ICsxMzEs
MTQgQEAgdm9pZCBQcm9jZXNzVGhyb3R0bGVyOjp1cGRhdGVBc3NlcnRpb25JZk5lZWRlZCgpCiAg
ICAgICAgIC8vIElmIHRoZSBwcm9jZXNzIGlzIGN1cnJlbnRseSBydW5uYWJsZSBidXQgd2lsbCBi
ZSBzdXNwZW5kZWQgdGhlbiBmaXJzdCBnaXZlIGl0IGEgY2hhbmNlIHRvIGNvbXBsZXRlIHdoYXQg
aXQgd2FzIGRvaW5nCiAgICAgICAgIC8vIGFuZCBjbGVhbiB1cCAtIG1vdmUgaXQgdG8gdGhlIGJh
Y2tncm91bmQgYW5kIHNlbmQgaXQgYSBtZXNzYWdlIHRvIG5vdGlmeS4gU2NoZWR1bGUgYSB0aW1l
b3V0IHNvIGl0IGNhbid0IHN0YXkgcnVubmluZwogICAgICAgICAvLyBpbiB0aGUgYmFja2dyb3Vu
ZCBmb3IgdG9vIGxvbmcuCi0gICAgICAgIGlmIChtX2Fzc2VydGlvbi0+c3RhdGUoKSAhPSBBc3Nl
cnRpb25TdGF0ZTo6U3VzcGVuZGVkKSB7CisgICAgICAgIGlmIChtX2Fzc2VydGlvbi0+dHlwZSgp
ICE9IFByb2Nlc3NBc3NlcnRpb25UeXBlOjpTdXNwZW5kZWQpIHsKICAgICAgICAgICAgIG1fcHJl
cGFyZVRvU3VzcGVuZFRpbWVvdXRUaW1lci5zdGFydE9uZVNob3QocHJvY2Vzc1N1c3BlbnNpb25U
aW1lb3V0KTsKICAgICAgICAgICAgIHNlbmRQcmVwYXJlVG9TdXNwZW5kSVBDKElzU3VzcGVuc2lv
bkltbWluZW50OjpObyk7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KICAgICB9CiAK
LSAgICB1cGRhdGVBc3NlcnRpb25TdGF0ZU5vdygpOworICAgIHVwZGF0ZUFzc2VydGlvblR5cGVO
b3coKTsKIH0KIAogdm9pZCBQcm9jZXNzVGhyb3R0bGVyOjpkaWRDb25uZWN0VG9Qcm9jZXNzKFBy
b2Nlc3NJRCBwaWQpCkBAIC0xNDQsMTMgKzE0Niw5IEBAIHZvaWQgUHJvY2Vzc1Rocm90dGxlcjo6
ZGlkQ29ubmVjdFRvUHJvY2VzcyhQcm9jZXNzSUQgcGlkKQogICAgIFBST0NFU1NUSFJPVFRMRVJf
UkVMRUFTRV9MT0dfV0lUSF9QSUQoImRpZENvbm5lY3RUb1Byb2Nlc3M6IiwgcGlkKTsKICAgICBS
RUxFQVNFX0FTU0VSVCghbV9hc3NlcnRpb24pOwogCi0gICAgaWYgKG1fc2hvdWxkVGFrZVVJQmFj
a2dyb3VuZEFzc2VydGlvbikKLSAgICAgICAgbV9hc3NlcnRpb24gPSBtYWtlVW5pcXVlPFByb2Nl
c3NBbmRVSUFzc2VydGlvbj4ocGlkLCAiV2ViIGNvbnRlbnQgdmlzaWJpbGl0eSJfcywgZXhwZWN0
ZWRBc3NlcnRpb25TdGF0ZSgpKTsKLSAgICBlbHNlCi0gICAgICAgIG1fYXNzZXJ0aW9uID0gbWFr
ZVVuaXF1ZTxQcm9jZXNzQXNzZXJ0aW9uPihwaWQsICJXZWIgY29udGVudCB2aXNpYmlsaXR5Il9z
LCBleHBlY3RlZEFzc2VydGlvblN0YXRlKCkpOwotCiAgICAgbV9wcm9jZXNzSWRlbnRpZmllciA9
IHBpZDsKLSAgICBtX3Byb2Nlc3MuZGlkU2V0QXNzZXJ0aW9uU3RhdGUoZXhwZWN0ZWRBc3NlcnRp
b25TdGF0ZSgpKTsKKyAgICBzZXRBc3NlcnRpb25UeXBlKGV4cGVjdGVkQXNzZXJ0aW9uVHlwZSgp
KTsKKyAgICBSRUxFQVNFX0FTU0VSVChtX2Fzc2VydGlvbik7CiAgICAgbV9hc3NlcnRpb24tPnNl
dENsaWVudCgqdGhpcyk7CiB9CiAgICAgCkBAIC0xNTgsNyArMTU2LDcgQEAgdm9pZCBQcm9jZXNz
VGhyb3R0bGVyOjpwcmVwYXJlVG9TdXNwZW5kVGltZW91dFRpbWVyRmlyZWQoKQogewogICAgIFBS
T0NFU1NUSFJPVFRMRVJfUkVMRUFTRV9MT0coInByZXBhcmVUb1N1c3BlbmRUaW1lb3V0VGltZXJG
aXJlZDogVXBkYXRpbmcgcHJvY2VzcyBhc3NlcnRpb24gdG8gYWxsb3cgc3VzcGVuc2lvbiIpOwog
ICAgIFJFTEVBU0VfQVNTRVJUKG1fcGVuZGluZ1JlcXVlc3RUb1N1c3BlbmRJRCk7Ci0gICAgdXBk
YXRlQXNzZXJ0aW9uU3RhdGVOb3coKTsKKyAgICB1cGRhdGVBc3NlcnRpb25UeXBlTm93KCk7CiB9
CiAgICAgCiB2b2lkIFByb2Nlc3NUaHJvdHRsZXI6OnByb2Nlc3NSZWFkeVRvU3VzcGVuZCgpCkBA
IC0xNjgsOCArMTY2LDggQEAgdm9pZCBQcm9jZXNzVGhyb3R0bGVyOjpwcm9jZXNzUmVhZHlUb1N1
c3BlbmQoKQogICAgIFJFTEVBU0VfQVNTRVJUKG1fcGVuZGluZ1JlcXVlc3RUb1N1c3BlbmRJRCk7
CiAgICAgY2xlYXJQZW5kaW5nUmVxdWVzdFRvU3VzcGVuZCgpOwogCi0gICAgaWYgKG1fYXNzZXJ0
aW9uLT5zdGF0ZSgpICE9IEFzc2VydGlvblN0YXRlOjpTdXNwZW5kZWQpCi0gICAgICAgIHVwZGF0
ZUFzc2VydGlvblN0YXRlTm93KCk7CisgICAgaWYgKG1fYXNzZXJ0aW9uLT50eXBlKCkgIT0gUHJv
Y2Vzc0Fzc2VydGlvblR5cGU6OlN1c3BlbmRlZCkKKyAgICAgICAgdXBkYXRlQXNzZXJ0aW9uVHlw
ZU5vdygpOwogfQogCiB2b2lkIFByb2Nlc3NUaHJvdHRsZXI6OmNsZWFyUGVuZGluZ1JlcXVlc3RU
b1N1c3BlbmQoKQpAQCAtMTk0LDcgKzE5Miw3IEBAIHZvaWQgUHJvY2Vzc1Rocm90dGxlcjo6c2Vu
ZFByZXBhcmVUb1N1c3BlbmRJUEMoSXNTdXNwZW5zaW9uSW1taW5lbnQgaXNTdXNwZW5zaW9uCiAg
ICAgICAgIH0pOwogICAgIH0KIAotICAgIHNldEFzc2VydGlvblN0YXRlKGlzU3VzcGVuc2lvbklt
bWluZW50ID09IElzU3VzcGVuc2lvbkltbWluZW50OjpZZXMgPyBBc3NlcnRpb25TdGF0ZTo6U3Vz
cGVuZGVkIDogQXNzZXJ0aW9uU3RhdGU6OkJhY2tncm91bmQpOworICAgIHNldEFzc2VydGlvblR5
cGUoaXNTdXNwZW5zaW9uSW1taW5lbnQgPT0gSXNTdXNwZW5zaW9uSW1taW5lbnQ6OlllcyA/IFBy
b2Nlc3NBc3NlcnRpb25UeXBlOjpTdXNwZW5kZWQgOiBQcm9jZXNzQXNzZXJ0aW9uVHlwZTo6QmFj
a2dyb3VuZCk7CiB9CiAKIHZvaWQgUHJvY2Vzc1Rocm90dGxlcjo6dWlBc3NlcnRpb25XaWxsRXhw
aXJlSW1taW5lbnRseSgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Qcm9j
ZXNzVGhyb3R0bGVyLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Qcm9jZXNzVGhyb3R0bGVy
LmgKaW5kZXggMTM2MjRlMTU1YzZmMDc0NGVlYzE5MWFmMTYzZDA0MmJlYmFlMjI3MS4uNTUzZjk3
MjlhNDlkMmY3MjYyNTJhYmQwNzM4NzE3NWYwMzFkNDA2OCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvUHJvY2Vzc1Rocm90dGxlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1Byb2Nlc3NUaHJvdHRsZXIuaApAQCAtMTA3LDEwICsxMDcsMTAgQEAgcHVibGljOgog
ICAgIGJvb2wgc2hvdWxkQmVSdW5uYWJsZSgpIGNvbnN0IHsgcmV0dXJuIG1fZm9yZWdyb3VuZEFj
dGl2aXRpZXMuc2l6ZSgpIHx8IG1fYmFja2dyb3VuZEFjdGl2aXRpZXMuc2l6ZSgpOyB9CiAKIHBy
aXZhdGU6Ci0gICAgQXNzZXJ0aW9uU3RhdGUgZXhwZWN0ZWRBc3NlcnRpb25TdGF0ZSgpOworICAg
IFByb2Nlc3NBc3NlcnRpb25UeXBlIGV4cGVjdGVkQXNzZXJ0aW9uVHlwZSgpOwogICAgIHZvaWQg
dXBkYXRlQXNzZXJ0aW9uSWZOZWVkZWQoKTsKLSAgICB2b2lkIHVwZGF0ZUFzc2VydGlvblN0YXRl
Tm93KCk7Ci0gICAgdm9pZCBzZXRBc3NlcnRpb25TdGF0ZShBc3NlcnRpb25TdGF0ZSk7CisgICAg
dm9pZCB1cGRhdGVBc3NlcnRpb25UeXBlTm93KCk7CisgICAgdm9pZCBzZXRBc3NlcnRpb25UeXBl
KFByb2Nlc3NBc3NlcnRpb25UeXBlKTsKICAgICB2b2lkIHByZXBhcmVUb1N1c3BlbmRUaW1lb3V0
VGltZXJGaXJlZCgpOwogICAgIHZvaWQgc2VuZFByZXBhcmVUb1N1c3BlbmRJUEMoSXNTdXNwZW5z
aW9uSW1taW5lbnQpOwogICAgIHZvaWQgcHJvY2Vzc1JlYWR5VG9TdXNwZW5kKCk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Qcm9jZXNzVGhyb3R0bGVyQ2xpZW50LmggYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Qcm9jZXNzVGhyb3R0bGVyQ2xpZW50LmgKaW5kZXggZDZj
ZDAzYzI5ODYyNzc2Y2U3NjVlNTdhYWZkNGMyYmNmMTI3ZTA3Yi4uNTdlMzgxNzI1ZDNjYmZkMWI5
ODU2MjA5NmRiNjAyOTQ2MzgyZWE4NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvUHJvY2Vzc1Rocm90dGxlckNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1Byb2Nlc3NUaHJvdHRsZXJDbGllbnQuaApAQCAtMzgsNyArMzgsNyBAQCBwdWJsaWM6CiAKICAg
ICB2aXJ0dWFsIHZvaWQgc2VuZFByZXBhcmVUb1N1c3BlbmQoSXNTdXNwZW5zaW9uSW1taW5lbnQs
IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBzZW5k
UHJvY2Vzc0RpZFJlc3VtZSgpID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgZGlkU2V0QXNzZXJ0aW9u
U3RhdGUoQXNzZXJ0aW9uU3RhdGUpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkU2V0QXNzZXJ0
aW9uVHlwZShQcm9jZXNzQXNzZXJ0aW9uVHlwZSkgeyB9OwogfTsKIAogfSAvLyBuYW1lc3BhY2Ug
V2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9v
bC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAKaW5kZXgg
YjhmZTliNzk5MmQzYWViYzY3ZGU5NmUyNDYxOGExMzM4YzdmMjBiYy4uY2YzZTM4OTA5NWRhMzNk
YzQwMDc0OTY1M2RjYzNkY2U3YjRiMTFmNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dl
YlByb2Nlc3NQb29sLmNwcApAQCAtMjM1NywxMiArMjM1NywxMiBAQCB2b2lkIFdlYlByb2Nlc3NQ
b29sOjpzZXRXZWJQcm9jZXNzSGFzVXBsb2FkcyhQcm9jZXNzSWRlbnRpZmllciBwcm9jZXNzSUQp
CiAgICAgICAgIGVuc3VyZU5ldHdvcmtQcm9jZXNzKCkudGFrZVVwbG9hZEFzc2VydGlvbigpOwog
ICAgICAgICAKICAgICAgICAgQVNTRVJUKCFtX3VpUHJvY2Vzc1VwbG9hZEFzc2VydGlvbik7Ci0g
ICAgICAgIG1fdWlQcm9jZXNzVXBsb2FkQXNzZXJ0aW9uID0gbWFrZVVuaXF1ZTxQcm9jZXNzQXNz
ZXJ0aW9uPihnZXRDdXJyZW50UHJvY2Vzc0lEKCksICJXZWJLaXQgdXBsb2FkcyJfcywgQXNzZXJ0
aW9uU3RhdGU6OlVuYm91bmRlZE5ldHdvcmtpbmcpOworICAgICAgICBtX3VpUHJvY2Vzc1VwbG9h
ZEFzc2VydGlvbiA9IG1ha2VVbmlxdWU8UHJvY2Vzc0Fzc2VydGlvbj4oZ2V0Q3VycmVudFByb2Nl
c3NJRCgpLCAiV2ViS2l0IHVwbG9hZHMiX3MsIFByb2Nlc3NBc3NlcnRpb25UeXBlOjpVbmJvdW5k
ZWROZXR3b3JraW5nKTsKICAgICB9CiAgICAgCiAgICAgYXV0byByZXN1bHQgPSBtX3Byb2Nlc3Nl
c1dpdGhVcGxvYWRzLmFkZChwcm9jZXNzSUQsIG51bGxwdHIpOwogICAgIEFTU0VSVChyZXN1bHQu
aXNOZXdFbnRyeSk7Ci0gICAgcmVzdWx0Lml0ZXJhdG9yLT52YWx1ZSA9IG1ha2VVbmlxdWU8UHJv
Y2Vzc0Fzc2VydGlvbj4ocHJvY2Vzcy0+cHJvY2Vzc0lkZW50aWZpZXIoKSwgIldlYktpdCB1cGxv
YWRzIl9zLCBBc3NlcnRpb25TdGF0ZTo6VW5ib3VuZGVkTmV0d29ya2luZyk7CisgICAgcmVzdWx0
Lml0ZXJhdG9yLT52YWx1ZSA9IG1ha2VVbmlxdWU8UHJvY2Vzc0Fzc2VydGlvbj4ocHJvY2Vzcy0+
cHJvY2Vzc0lkZW50aWZpZXIoKSwgIldlYktpdCB1cGxvYWRzIl9zLCBQcm9jZXNzQXNzZXJ0aW9u
VHlwZTo6VW5ib3VuZGVkTmV0d29ya2luZyk7CiB9CiAKIHZvaWQgV2ViUHJvY2Vzc1Bvb2w6OmNs
ZWFyV2ViUHJvY2Vzc0hhc1VwbG9hZHMoUHJvY2Vzc0lkZW50aWZpZXIgcHJvY2Vzc0lEKQpAQCAt
MjM5OSwxNiArMjM5OSwxNiBAQCB2b2lkIFdlYlByb2Nlc3NQb29sOjpzZXRXZWJQcm9jZXNzSXNQ
bGF5aW5nQXVkaWJsZU1lZGlhKFdlYkNvcmU6OlByb2Nlc3NJZGVudGlmaQogICAgICAgICBXRUJQ
Uk9DRVNTUE9PTF9SRUxFQVNFX0xPRyhQcm9jZXNzU3VzcGVuc2lvbiwgInNldFdlYlByb2Nlc3NJ
c1BsYXlpbmdBdWRpYmxlTWVkaWE6IFRoZSBudW1iZXIgb2YgcHJvY2Vzc2VzIHBsYXlpbmcgYXVk
aWJsZSBtZWRpYSBpcyBub3cgb25lLiBUYWtpbmcgVUkgcHJvY2VzcyBhc3NlcnRpb24uIik7CiAK
ICAgICAgICAgQVNTRVJUKCFtX3VpUHJvY2Vzc01lZGlhUGxheWJhY2tBc3NlcnRpb24pOwotICAg
ICAgICBtX3VpUHJvY2Vzc01lZGlhUGxheWJhY2tBc3NlcnRpb24gPSBtYWtlVW5pcXVlPFByb2Nl
c3NBc3NlcnRpb24+KGdldEN1cnJlbnRQcm9jZXNzSUQoKSwgIldlYktpdCBNZWRpYSBQbGF5YmFj
ayJfcywgQXNzZXJ0aW9uU3RhdGU6OkZvcmVncm91bmQsIEFzc2VydGlvblJlYXNvbjo6TWVkaWFQ
bGF5YmFjayk7CisgICAgICAgIG1fdWlQcm9jZXNzTWVkaWFQbGF5YmFja0Fzc2VydGlvbiA9IG1h
a2VVbmlxdWU8UHJvY2Vzc0Fzc2VydGlvbj4oZ2V0Q3VycmVudFByb2Nlc3NJRCgpLCAiV2ViS2l0
IE1lZGlhIFBsYXliYWNrIl9zLCBQcm9jZXNzQXNzZXJ0aW9uVHlwZTo6TWVkaWFQbGF5YmFjayk7
CiAjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQogICAgICAgICBpZiAoR1BVUHJvY2Vzc1Byb3h5Ojpz
aW5nbGV0b25JZkNyZWF0ZWQoKSkKLSAgICAgICAgICAgIG1fZ3B1UHJvY2Vzc01lZGlhUGxheWJh
Y2tBc3NlcnRpb24gPSBtYWtlVW5pcXVlPFByb2Nlc3NBc3NlcnRpb24+KEdQVVByb2Nlc3NQcm94
eTo6c2luZ2xldG9uKCkucHJvY2Vzc0lkZW50aWZpZXIoKSwgIldlYktpdCBNZWRpYSBQbGF5YmFj
ayJfcywgQXNzZXJ0aW9uU3RhdGU6OkZvcmVncm91bmQsIEFzc2VydGlvblJlYXNvbjo6TWVkaWFQ
bGF5YmFjayk7CisgICAgICAgICAgICBtX2dwdVByb2Nlc3NNZWRpYVBsYXliYWNrQXNzZXJ0aW9u
ID0gbWFrZVVuaXF1ZTxQcm9jZXNzQXNzZXJ0aW9uPihHUFVQcm9jZXNzUHJveHk6OnNpbmdsZXRv
bigpLnByb2Nlc3NJZGVudGlmaWVyKCksICJXZWJLaXQgTWVkaWEgUGxheWJhY2siX3MsIFByb2Nl
c3NBc3NlcnRpb25UeXBlOjpNZWRpYVBsYXliYWNrKTsKICNlbmRpZgogICAgIH0KIAogICAgIGF1
dG8gcmVzdWx0ID0gbV9wcm9jZXNzZXNQbGF5aW5nQXVkaWJsZU1lZGlhLmFkZChwcm9jZXNzSUQs
IG51bGxwdHIpOwogICAgIEFTU0VSVChyZXN1bHQuaXNOZXdFbnRyeSk7Ci0gICAgcmVzdWx0Lml0
ZXJhdG9yLT52YWx1ZSA9IG1ha2VVbmlxdWU8UHJvY2Vzc0Fzc2VydGlvbj4ocHJvY2Vzcy0+cHJv
Y2Vzc0lkZW50aWZpZXIoKSwgIldlYktpdCBNZWRpYSBQbGF5YmFjayJfcywgQXNzZXJ0aW9uU3Rh
dGU6OkZvcmVncm91bmQsIEFzc2VydGlvblJlYXNvbjo6TWVkaWFQbGF5YmFjayk7CisgICAgcmVz
dWx0Lml0ZXJhdG9yLT52YWx1ZSA9IG1ha2VVbmlxdWU8UHJvY2Vzc0Fzc2VydGlvbj4ocHJvY2Vz
cy0+cHJvY2Vzc0lkZW50aWZpZXIoKSwgIldlYktpdCBNZWRpYSBQbGF5YmFjayJfcywgUHJvY2Vz
c0Fzc2VydGlvblR5cGU6Ok1lZGlhUGxheWJhY2spOwogfQogCiB2b2lkIFdlYlByb2Nlc3NQb29s
OjpjbGVhcldlYlByb2Nlc3NJc1BsYXlpbmdBdWRpYmxlTWVkaWEoV2ViQ29yZTo6UHJvY2Vzc0lk
ZW50aWZpZXIgcHJvY2Vzc0lEKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViUHJvY2Vzc1Byb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQ
cm94eS5jcHAKaW5kZXggOGQyODM4NWQ1ODU1MzBlODUwMmI0ZmZhYzMwYWQ1NjU0N2M0M2M2Ni4u
MDI1Nzg0YmFhZjI5MmZkOTQ3NDE3MDQ3ZDZlNzljN2MxOWE4ZjRlZCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwCkBAIC0xMzI1LDEyICsxMzI1LDEyIEBA
IHZvaWQgV2ViUHJvY2Vzc1Byb3h5OjpzZW5kUHJvY2Vzc0RpZFJlc3VtZSgpCiAgICAgICAgIHNl
bmQoTWVzc2FnZXM6OldlYlByb2Nlc3M6OlByb2Nlc3NEaWRSZXN1bWUoKSwgMCk7CiB9CiAKLXZv
aWQgV2ViUHJvY2Vzc1Byb3h5OjpkaWRTZXRBc3NlcnRpb25TdGF0ZShBc3NlcnRpb25TdGF0ZSBz
dGF0ZSkKK3ZvaWQgV2ViUHJvY2Vzc1Byb3h5OjpkaWRTZXRBc3NlcnRpb25UeXBlKFByb2Nlc3NB
c3NlcnRpb25UeXBlIHR5cGUpCiB7Ci0gICAgUkVMRUFTRV9MT0coUHJvY2Vzc1N1c3BlbnNpb24s
ICIlcCAtIFdlYlByb2Nlc3NQcm94eTo6ZGlkU2V0QXNzZXJ0aW9uU3RhdGUoJXUpIiwgdGhpcywg
c3RhdGUpOworICAgIFJFTEVBU0VfTE9HKFByb2Nlc3NTdXNwZW5zaW9uLCAiJXAgLSBXZWJQcm9j
ZXNzUHJveHk6OmRpZFNldEFzc2VydGlvblR5cGUoJXUpIiwgdGhpcywgdHlwZSk7CiAKICAgICBp
ZiAoaXNTdGFuZGFsb25lU2VydmljZVdvcmtlclByb2Nlc3MoKSkgewotICAgICAgICBSRUxFQVNF
X0xPRyhQcm9jZXNzU3VzcGVuc2lvbiwgIiVwIC0gV2ViUHJvY2Vzc1Byb3h5OjpkaWRTZXRBc3Nl
cnRpb25TdGF0ZSgpIHJlbGVhc2UgYWxsIGFzc2VydGlvbnMgZm9yIG5ldHdvcmsgcHJvY2VzcyBi
ZWNhdXNlIHRoaXMgaXMgYSBzZXJ2aWNlIHdvcmtlciBwcm9jZXNzIHdpdGhvdXQgcGFnZSIsIHRo
aXMpOworICAgICAgICBSRUxFQVNFX0xPRyhQcm9jZXNzU3VzcGVuc2lvbiwgIiVwIC0gV2ViUHJv
Y2Vzc1Byb3h5OjpkaWRTZXRBc3NlcnRpb25UeXBlKCkgcmVsZWFzZSBhbGwgYXNzZXJ0aW9ucyBm
b3IgbmV0d29yayBwcm9jZXNzIGJlY2F1c2UgdGhpcyBpcyBhIHNlcnZpY2Ugd29ya2VyIHByb2Nl
c3Mgd2l0aG91dCBwYWdlIiwgdGhpcyk7CiAgICAgICAgIG1fZm9yZWdyb3VuZFRva2VuID0gbnVs
bHB0cjsKICAgICAgICAgbV9iYWNrZ3JvdW5kVG9rZW4gPSBudWxscHRyOwogICAgICAgICByZXR1
cm47CkBAIC0xMzM4LDkgKzEzMzgsOSBAQCB2b2lkIFdlYlByb2Nlc3NQcm94eTo6ZGlkU2V0QXNz
ZXJ0aW9uU3RhdGUoQXNzZXJ0aW9uU3RhdGUgc3RhdGUpCiAKICAgICBBU1NFUlQoIW1fYmFja2dy
b3VuZFRva2VuIHx8ICFtX2ZvcmVncm91bmRUb2tlbik7CiAKLSAgICBzd2l0Y2ggKHN0YXRlKSB7
Ci0gICAgY2FzZSBBc3NlcnRpb25TdGF0ZTo6U3VzcGVuZGVkOgotICAgICAgICBSRUxFQVNFX0xP
RyhQcm9jZXNzU3VzcGVuc2lvbiwgIiVwIC0gV2ViUHJvY2Vzc1Byb3h5OjpkaWRTZXRBc3NlcnRp
b25TdGF0ZShTdXNwZW5kZWQpIHJlbGVhc2UgYWxsIGFzc2VydGlvbnMgZm9yIG5ldHdvcmsgcHJv
Y2VzcyIsIHRoaXMpOworICAgIHN3aXRjaCAodHlwZSkgeworICAgIGNhc2UgUHJvY2Vzc0Fzc2Vy
dGlvblR5cGU6OlN1c3BlbmRlZDoKKyAgICAgICAgUkVMRUFTRV9MT0coUHJvY2Vzc1N1c3BlbnNp
b24sICIlcCAtIFdlYlByb2Nlc3NQcm94eTo6ZGlkU2V0QXNzZXJ0aW9uVHlwZShTdXNwZW5kZWQp
IHJlbGVhc2UgYWxsIGFzc2VydGlvbnMgZm9yIG5ldHdvcmsgcHJvY2VzcyIsIHRoaXMpOwogICAg
ICAgICBtX2ZvcmVncm91bmRUb2tlbiA9IG51bGxwdHI7CiAgICAgICAgIG1fYmFja2dyb3VuZFRv
a2VuID0gbnVsbHB0cjsKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQpAQCAtMTM0OSwxNCArMTM0
OSwxNCBAQCB2b2lkIFdlYlByb2Nlc3NQcm94eTo6ZGlkU2V0QXNzZXJ0aW9uU3RhdGUoQXNzZXJ0
aW9uU3RhdGUgc3RhdGUpCiAjZW5kaWYKICAgICAgICAgYnJlYWs7CiAKLSAgICBjYXNlIEFzc2Vy
dGlvblN0YXRlOjpCYWNrZ3JvdW5kOgotICAgICAgICBSRUxFQVNFX0xPRyhQcm9jZXNzU3VzcGVu
c2lvbiwgIiVwIC0gV2ViUHJvY2Vzc1Byb3h5OjpkaWRTZXRBc3NlcnRpb25TdGF0ZShCYWNrZ3Jv
dW5kKSB0YWtpbmcgYmFja2dyb3VuZCBhc3NlcnRpb24gZm9yIG5ldHdvcmsgcHJvY2VzcyIsIHRo
aXMpOworICAgIGNhc2UgUHJvY2Vzc0Fzc2VydGlvblR5cGU6OkJhY2tncm91bmQ6CisgICAgICAg
IFJFTEVBU0VfTE9HKFByb2Nlc3NTdXNwZW5zaW9uLCAiJXAgLSBXZWJQcm9jZXNzUHJveHk6OmRp
ZFNldEFzc2VydGlvblR5cGUoQmFja2dyb3VuZCkgdGFraW5nIGJhY2tncm91bmQgYXNzZXJ0aW9u
IGZvciBuZXR3b3JrIHByb2Nlc3MiLCB0aGlzKTsKICAgICAgICAgbV9iYWNrZ3JvdW5kVG9rZW4g
PSBwcm9jZXNzUG9vbCgpLmJhY2tncm91bmRXZWJQcm9jZXNzVG9rZW4oKTsKICAgICAgICAgbV9m
b3JlZ3JvdW5kVG9rZW4gPSBudWxscHRyOwogICAgICAgICBicmVhazsKICAgICAKLSAgICBjYXNl
IEFzc2VydGlvblN0YXRlOjpGb3JlZ3JvdW5kOgotICAgICAgICBSRUxFQVNFX0xPRyhQcm9jZXNz
U3VzcGVuc2lvbiwgIiVwIC0gV2ViUHJvY2Vzc1Byb3h5OjpkaWRTZXRBc3NlcnRpb25TdGF0ZShG
b3JlZ3JvdW5kKSB0YWtpbmcgZm9yZWdyb3VuZCBhc3NlcnRpb24gZm9yIG5ldHdvcmsgcHJvY2Vz
cyIsIHRoaXMpOworICAgIGNhc2UgUHJvY2Vzc0Fzc2VydGlvblR5cGU6OkZvcmVncm91bmQ6Cisg
ICAgICAgIFJFTEVBU0VfTE9HKFByb2Nlc3NTdXNwZW5zaW9uLCAiJXAgLSBXZWJQcm9jZXNzUHJv
eHk6OmRpZFNldEFzc2VydGlvblR5cGUoRm9yZWdyb3VuZCkgdGFraW5nIGZvcmVncm91bmQgYXNz
ZXJ0aW9uIGZvciBuZXR3b3JrIHByb2Nlc3MiLCB0aGlzKTsKICAgICAgICAgbV9mb3JlZ3JvdW5k
VG9rZW4gPSBwcm9jZXNzUG9vbCgpLmZvcmVncm91bmRXZWJQcm9jZXNzVG9rZW4oKTsKICAgICAg
ICAgbV9iYWNrZ3JvdW5kVG9rZW4gPSBudWxscHRyOwogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkp
CkBAIC0xMzY1LDcgKzEzNjUsOCBAQCB2b2lkIFdlYlByb2Nlc3NQcm94eTo6ZGlkU2V0QXNzZXJ0
aW9uU3RhdGUoQXNzZXJ0aW9uU3RhdGUgc3RhdGUpCiAjZW5kaWYKICAgICAgICAgYnJlYWs7CiAg
ICAgCi0gICAgY2FzZSBBc3NlcnRpb25TdGF0ZTo6VW5ib3VuZGVkTmV0d29ya2luZzoKKyAgICBj
YXNlIFByb2Nlc3NBc3NlcnRpb25UeXBlOjpNZWRpYVBsYXliYWNrOgorICAgIGNhc2UgUHJvY2Vz
c0Fzc2VydGlvblR5cGU6OlVuYm91bmRlZE5ldHdvcmtpbmc6CiAgICAgICAgIEFTU0VSVF9OT1Rf
UkVBQ0hFRCgpOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViUHJvY2Vzc1Byb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJv
eHkuaAppbmRleCAzN2YzMTMxOTE3MDc5MjFiYzA1Mjc0OGIzYmRkNTk5ZGNkYzhhZTVkLi4yMTFi
YjQ1NWU1ZTE1NzJlYjIwMGEyMGJkYmU1MTY5MzU5Yzg5M2IyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaApAQCAtMzEzLDcgKzMxMyw3IEBAIHB1YmxpYzoKICAg
ICAvLyBQcm9jZXNzVGhyb3R0bGVyQ2xpZW50CiAgICAgdm9pZCBzZW5kUHJlcGFyZVRvU3VzcGVu
ZChJc1N1c3BlbnNpb25JbW1pbmVudCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKSBmaW5h
bDsKICAgICB2b2lkIHNlbmRQcm9jZXNzRGlkUmVzdW1lKCkgZmluYWw7Ci0gICAgdm9pZCBkaWRT
ZXRBc3NlcnRpb25TdGF0ZShBc3NlcnRpb25TdGF0ZSkgZmluYWw7CisgICAgdm9pZCBkaWRTZXRB
c3NlcnRpb25UeXBlKFByb2Nlc3NBc3NlcnRpb25UeXBlKSBmaW5hbDsKIAogI2lmIFBMQVRGT1JN
KENPQ09BKQogICAgIGVudW0gU2FuZGJveEV4dGVuc2lvblR5cGUgOiB1aW50MzJfdCB7CkBAIC0z
NjAsNyArMzYwLDcgQEAgcHVibGljOgogICAgIGJvb2wgaGFzU2VydmljZVdvcmtlckZvcmVncm91
bmRBY3Rpdml0eUZvclRlc3RpbmcoKSBjb25zdDsKICAgICBib29sIGhhc1NlcnZpY2VXb3JrZXJC
YWNrZ3JvdW5kQWN0aXZpdHlGb3JUZXN0aW5nKCkgY29uc3Q7CiAjZW5kaWYKLSAgICB2b2lkIHNl
dEFzc2VydGlvblN0YXRlRm9yVGVzdGluZyhBc3NlcnRpb25TdGF0ZSBzdGF0ZSkgeyBkaWRTZXRB
c3NlcnRpb25TdGF0ZShzdGF0ZSk7IH0KKyAgICB2b2lkIHNldEFzc2VydGlvblR5cGVGb3JUZXN0
aW5nKFByb2Nlc3NBc3NlcnRpb25UeXBlIHR5cGUpIHsgZGlkU2V0QXNzZXJ0aW9uVHlwZSh0eXBl
KTsgfQogCiAjaWYgUExBVEZPUk0oQ09DT0EpICYmIEVOQUJMRShNRURJQV9TVFJFQU0pCiAgICAg
VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eSogdXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94
eSgpIHsgcmV0dXJuIG1fdXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5nZXQoKTsgfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1Byb2Nlc3NBc3NlcnRpb25JT1Mu
bW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvUHJvY2Vzc0Fzc2VydGlvbklPUy5tbQpp
bmRleCAxYjYzZWNjOTRjNDc2YWU3MTA5NTkxOTIzZDIwYmNlYWU1Yjc2NWQ3Li4xMjJjMTZhNTVl
ZjJiODIyYWM2ZTYxYmY0NWNjN2M4NWE3NGU5MDNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9pb3MvUHJvY2Vzc0Fzc2VydGlvbklPUy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9pb3MvUHJvY2Vzc0Fzc2VydGlvbklPUy5tbQpAQCAtMjcxLDUyICsyNzEsMzYg
QEAgY29uc3QgQktTUHJvY2Vzc0Fzc2VydGlvbkZsYWdzIHN1c3BlbmRlZFRhYkZsYWdzID0gKEJL
U1Byb2Nlc3NBc3NlcnRpb25BbGxvd0lkbGUKIGNvbnN0IEJLU1Byb2Nlc3NBc3NlcnRpb25GbGFn
cyBiYWNrZ3JvdW5kVGFiRmxhZ3MgPSAoQktTUHJvY2Vzc0Fzc2VydGlvblByZXZlbnRUYXNrU3Vz
cGVuZCk7CiBjb25zdCBCS1NQcm9jZXNzQXNzZXJ0aW9uRmxhZ3MgZm9yZWdyb3VuZFRhYkZsYWdz
ID0gKEJLU1Byb2Nlc3NBc3NlcnRpb25QcmV2ZW50VGFza1N1c3BlbmQgfCBCS1NQcm9jZXNzQXNz
ZXJ0aW9uV2FudHNGb3JlZ3JvdW5kUmVzb3VyY2VQcmlvcml0eSB8IEJLU1Byb2Nlc3NBc3NlcnRp
b25QcmV2ZW50VGFza1Rocm90dGxlRG93bik7CiAKLXN0YXRpYyBCS1NQcm9jZXNzQXNzZXJ0aW9u
RmxhZ3MgZmxhZ3NGb3JTdGF0ZShBc3NlcnRpb25TdGF0ZSBhc3NlcnRpb25TdGF0ZSkKK3N0YXRp
YyBCS1NQcm9jZXNzQXNzZXJ0aW9uRmxhZ3MgZmxhZ3NGb3JBc3NlcnRpb25UeXBlKFByb2Nlc3NB
c3NlcnRpb25UeXBlIGFzc2VydGlvblR5cGUpCiB7Ci0gICAgc3dpdGNoIChhc3NlcnRpb25TdGF0
ZSkgewotICAgIGNhc2UgQXNzZXJ0aW9uU3RhdGU6OlN1c3BlbmRlZDoKKyAgICBzd2l0Y2ggKGFz
c2VydGlvblR5cGUpIHsKKyAgICBjYXNlIFByb2Nlc3NBc3NlcnRpb25UeXBlOjpTdXNwZW5kZWQ6
CiAgICAgICAgIHJldHVybiBzdXNwZW5kZWRUYWJGbGFnczsKLSAgICBjYXNlIEFzc2VydGlvblN0
YXRlOjpCYWNrZ3JvdW5kOgotICAgIGNhc2UgQXNzZXJ0aW9uU3RhdGU6OlVuYm91bmRlZE5ldHdv
cmtpbmc6CisgICAgY2FzZSBQcm9jZXNzQXNzZXJ0aW9uVHlwZTo6QmFja2dyb3VuZDoKKyAgICBj
YXNlIFByb2Nlc3NBc3NlcnRpb25UeXBlOjpVbmJvdW5kZWROZXR3b3JraW5nOgogICAgICAgICBy
ZXR1cm4gYmFja2dyb3VuZFRhYkZsYWdzOwotICAgIGNhc2UgQXNzZXJ0aW9uU3RhdGU6OkZvcmVn
cm91bmQ6CisgICAgY2FzZSBQcm9jZXNzQXNzZXJ0aW9uVHlwZTo6Rm9yZWdyb3VuZDoKKyAgICBj
YXNlIFByb2Nlc3NBc3NlcnRpb25UeXBlOjpNZWRpYVBsYXliYWNrOgogICAgICAgICByZXR1cm4g
Zm9yZWdyb3VuZFRhYkZsYWdzOwogICAgIH0KIH0KIAotc3RhdGljIEFzc2VydGlvblJlYXNvbiBy
ZWFzb25Gb3JTdGF0ZShBc3NlcnRpb25TdGF0ZSBhc3NlcnRpb25TdGF0ZSkKK3N0YXRpYyBCS1NQ
cm9jZXNzQXNzZXJ0aW9uUmVhc29uIHRvQktTUHJvY2Vzc0Fzc2VydGlvblJlYXNvbihQcm9jZXNz
QXNzZXJ0aW9uVHlwZSBhc3NlcnRpb25UeXBlKQogewotICAgIHN3aXRjaCAoYXNzZXJ0aW9uU3Rh
dGUpIHsKLSAgICBjYXNlIEFzc2VydGlvblN0YXRlOjpVbmJvdW5kZWROZXR3b3JraW5nOgotICAg
ICAgICByZXR1cm4gQXNzZXJ0aW9uUmVhc29uOjpGaW5pc2hUYXNrVW5ib3VuZGVkOwotICAgIGNh
c2UgQXNzZXJ0aW9uU3RhdGU6OlN1c3BlbmRlZDoKLSAgICBjYXNlIEFzc2VydGlvblN0YXRlOjpC
YWNrZ3JvdW5kOgotICAgIGNhc2UgQXNzZXJ0aW9uU3RhdGU6OkZvcmVncm91bmQ6Ci0gICAgICAg
IHJldHVybiBBc3NlcnRpb25SZWFzb246OkV4dGVuc2lvbjsKLSAgICB9Ci19Ci0KLXN0YXRpYyBC
S1NQcm9jZXNzQXNzZXJ0aW9uUmVhc29uIHRvQktTUHJvY2Vzc0Fzc2VydGlvblJlYXNvbihBc3Nl
cnRpb25SZWFzb24gcmVhc29uKQotewotICAgIHN3aXRjaCAocmVhc29uKSB7Ci0gICAgY2FzZSBB
c3NlcnRpb25SZWFzb246OkV4dGVuc2lvbjoKKyAgICBzd2l0Y2ggKGFzc2VydGlvblR5cGUpIHsK
KyAgICBjYXNlIFByb2Nlc3NBc3NlcnRpb25UeXBlOjpTdXNwZW5kZWQ6CisgICAgY2FzZSBQcm9j
ZXNzQXNzZXJ0aW9uVHlwZTo6QmFja2dyb3VuZDoKKyAgICBjYXNlIFByb2Nlc3NBc3NlcnRpb25U
eXBlOjpGb3JlZ3JvdW5kOgogICAgICAgICByZXR1cm4gQktTUHJvY2Vzc0Fzc2VydGlvblJlYXNv
bkV4dGVuc2lvbjsKLSAgICBjYXNlIEFzc2VydGlvblJlYXNvbjo6RmluaXNoVGFzazoKLSAgICAg
ICAgcmV0dXJuIEJLU1Byb2Nlc3NBc3NlcnRpb25SZWFzb25GaW5pc2hUYXNrOwotICAgIGNhc2Ug
QXNzZXJ0aW9uUmVhc29uOjpGaW5pc2hUYXNrVW5ib3VuZGVkOgorICAgIGNhc2UgUHJvY2Vzc0Fz
c2VydGlvblR5cGU6OlVuYm91bmRlZE5ldHdvcmtpbmc6CiAgICAgICAgIHJldHVybiBCS1NQcm9j
ZXNzQXNzZXJ0aW9uUmVhc29uRmluaXNoVGFza1VuYm91bmRlZDsKLSAgICBjYXNlIEFzc2VydGlv
blJlYXNvbjo6TWVkaWFQbGF5YmFjazoKKyAgICBjYXNlIFByb2Nlc3NBc3NlcnRpb25UeXBlOjpN
ZWRpYVBsYXliYWNrOgogICAgICAgICByZXR1cm4gQktTUHJvY2Vzc0Fzc2VydGlvblJlYXNvbk1l
ZGlhUGxheWJhY2s7CiAgICAgfQogfQogCi1Qcm9jZXNzQXNzZXJ0aW9uOjpQcm9jZXNzQXNzZXJ0
aW9uKHBpZF90IHBpZCwgY29uc3QgU3RyaW5nJiBuYW1lLCBBc3NlcnRpb25TdGF0ZSBhc3NlcnRp
b25TdGF0ZSkKLSAgICA6IFByb2Nlc3NBc3NlcnRpb24ocGlkLCBuYW1lLCBhc3NlcnRpb25TdGF0
ZSwgcmVhc29uRm9yU3RhdGUoYXNzZXJ0aW9uU3RhdGUpKQotewotfQotCi1Qcm9jZXNzQXNzZXJ0
aW9uOjpQcm9jZXNzQXNzZXJ0aW9uKHBpZF90IHBpZCwgY29uc3QgU3RyaW5nJiBuYW1lLCBBc3Nl
cnRpb25TdGF0ZSBhc3NlcnRpb25TdGF0ZSwgQXNzZXJ0aW9uUmVhc29uIGFzc2VydGlvblJlYXNv
bikKLSAgICA6IG1fYXNzZXJ0aW9uU3RhdGUoYXNzZXJ0aW9uU3RhdGUpCitQcm9jZXNzQXNzZXJ0
aW9uOjpQcm9jZXNzQXNzZXJ0aW9uKHBpZF90IHBpZCwgY29uc3QgU3RyaW5nJiBuYW1lLCBQcm9j
ZXNzQXNzZXJ0aW9uVHlwZSBhc3NlcnRpb25UeXBlKQorICAgIDogbV9hc3NlcnRpb25UeXBlKGFz
c2VydGlvblR5cGUpCiB7CiAgICAgYXV0byB3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKCp0aGlzKTsK
ICAgICBCS1NQcm9jZXNzQXNzZXJ0aW9uQWNxdWlzaXRpb25IYW5kbGVyIGhhbmRsZXIgPSBeKEJP
T0wgYWNxdWlyZWQpIHsKQEAgLTMzMCw3ICszMTQsNyBAQCBQcm9jZXNzQXNzZXJ0aW9uOjpQcm9j
ZXNzQXNzZXJ0aW9uKHBpZF90IHBpZCwgY29uc3QgU3RyaW5nJiBuYW1lLCBBc3NlcnRpb25TdGF0
ZQogICAgIH07CiAgICAgUkVMRUFTRV9MT0coUHJvY2Vzc1N1c3BlbnNpb24sICIlcCAtIFByb2Nl
c3NBc3NlcnRpb24oKSBQSUQgJWQgYWNxdWlyaW5nIGFzc2VydGlvbiBmb3IgcHJvY2VzcyB3aXRo
IFBJRCAlZCwgbmFtZSAnJXMnIiwgdGhpcywgZ2V0cGlkKCksIHBpZCwgbmFtZS51dGY4KCkuZGF0
YSgpKTsKICAgICAKLSAgICBtX2Fzc2VydGlvbiA9IGFkb3B0TlMoW1tCS1NQcm9jZXNzQXNzZXJ0
aW9uIGFsbG9jXSBpbml0V2l0aFBJRDpwaWQgZmxhZ3M6ZmxhZ3NGb3JTdGF0ZShhc3NlcnRpb25T
dGF0ZSkgcmVhc29uOnRvQktTUHJvY2Vzc0Fzc2VydGlvblJlYXNvbihhc3NlcnRpb25SZWFzb24p
IG5hbWU6KE5TU3RyaW5nICopbmFtZSB3aXRoSGFuZGxlcjpoYW5kbGVyXSk7CisgICAgbV9hc3Nl
cnRpb24gPSBhZG9wdE5TKFtbQktTUHJvY2Vzc0Fzc2VydGlvbiBhbGxvY10gaW5pdFdpdGhQSUQ6
cGlkIGZsYWdzOmZsYWdzRm9yQXNzZXJ0aW9uVHlwZShhc3NlcnRpb25UeXBlKSByZWFzb246dG9C
S1NQcm9jZXNzQXNzZXJ0aW9uUmVhc29uKGFzc2VydGlvblR5cGUpIG5hbWU6KE5TU3RyaW5nICop
bmFtZSB3aXRoSGFuZGxlcjpoYW5kbGVyXSk7CiAgICAgbV9hc3NlcnRpb24uZ2V0KCkuaW52YWxp
ZGF0aW9uSGFuZGxlciA9IF4oKSB7CiAgICAgICAgIGRpc3BhdGNoX2FzeW5jKGRpc3BhdGNoX2dl
dF9tYWluX3F1ZXVlKCksIF57CiAgICAgICAgICAgICBSRUxFQVNFX0xPRyhQcm9jZXNzU3VzcGVu
c2lvbiwgIiVwIC0gUHJvY2Vzc0Fzc2VydGlvbigpIFByb2Nlc3MgYXNzZXJ0aW9uIGZvciBwcm9j
ZXNzIHdpdGggUElEICVkIHdhcyBpbnZhbGlkYXRlZCIsIHRoaXMsIHBpZCk7CkBAIC0zNTYsMTkg
KzM0MCw5IEBAIHZvaWQgUHJvY2Vzc0Fzc2VydGlvbjo6cHJvY2Vzc0Fzc2VydGlvbldhc0ludmFs
aWRhdGVkKCkKICAgICBtX3ZhbGlkaXR5ID0gVmFsaWRpdHk6Ok5vOwogfQogCi12b2lkIFByb2Nl
c3NBc3NlcnRpb246OnNldFN0YXRlKEFzc2VydGlvblN0YXRlIGFzc2VydGlvblN0YXRlKQotewot
ICAgIGlmIChtX2Fzc2VydGlvblN0YXRlID09IGFzc2VydGlvblN0YXRlKQotICAgICAgICByZXR1
cm47Ci0KLSAgICBSRUxFQVNFX0xPRyhQcm9jZXNzU3VzcGVuc2lvbiwgIiVwIC0gUHJvY2Vzc0Fz
c2VydGlvbjo6c2V0U3RhdGUoJXUpIHByZXZpb3VzU3RhdGU6ICV1IiwgdGhpcywgc3RhdGljX2Nh
c3Q8dW5zaWduZWQ+KGFzc2VydGlvblN0YXRlKSwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KG1fYXNz
ZXJ0aW9uU3RhdGUpKTsKLSAgICBtX2Fzc2VydGlvblN0YXRlID0gYXNzZXJ0aW9uU3RhdGU7Ci0g
ICAgW21fYXNzZXJ0aW9uIHNldEZsYWdzOmZsYWdzRm9yU3RhdGUoYXNzZXJ0aW9uU3RhdGUpXTsK
LX0KLQogdm9pZCBQcm9jZXNzQW5kVUlBc3NlcnRpb246OnVwZGF0ZVJ1bkluQmFja2dyb3VuZENv
dW50KCkKIHsKLSAgICBib29sIHNob3VsZEhvbGRCYWNrZ3JvdW5kVGFzayA9IHZhbGlkaXR5KCkg
IT0gVmFsaWRpdHk6Ok5vICYmIHN0YXRlKCkgIT0gQXNzZXJ0aW9uU3RhdGU6OlN1c3BlbmRlZDsK
KyAgICBib29sIHNob3VsZEhvbGRCYWNrZ3JvdW5kVGFzayA9IHZhbGlkaXR5KCkgIT0gVmFsaWRp
dHk6Ok5vICYmIHR5cGUoKSAhPSBQcm9jZXNzQXNzZXJ0aW9uVHlwZTo6U3VzcGVuZGVkOwogICAg
IGlmIChtX2lzSG9sZGluZ0JhY2tncm91bmRUYXNrID09IHNob3VsZEhvbGRCYWNrZ3JvdW5kVGFz
aykKICAgICAgICAgcmV0dXJuOwogCkBAIC0zODAsOCArMzU0LDggQEAgdm9pZCBQcm9jZXNzQW5k
VUlBc3NlcnRpb246OnVwZGF0ZVJ1bkluQmFja2dyb3VuZENvdW50KCkKICAgICBtX2lzSG9sZGlu
Z0JhY2tncm91bmRUYXNrID0gc2hvdWxkSG9sZEJhY2tncm91bmRUYXNrOwogfQogCi1Qcm9jZXNz
QW5kVUlBc3NlcnRpb246OlByb2Nlc3NBbmRVSUFzc2VydGlvbihwaWRfdCBwaWQsIGNvbnN0IFN0
cmluZyYgcmVhc29uLCBBc3NlcnRpb25TdGF0ZSBhc3NlcnRpb25TdGF0ZSkKLSAgICA6IFByb2Nl
c3NBc3NlcnRpb24ocGlkLCByZWFzb24sIGFzc2VydGlvblN0YXRlKQorUHJvY2Vzc0FuZFVJQXNz
ZXJ0aW9uOjpQcm9jZXNzQW5kVUlBc3NlcnRpb24ocGlkX3QgcGlkLCBjb25zdCBTdHJpbmcmIHJl
YXNvbiwgUHJvY2Vzc0Fzc2VydGlvblR5cGUgYXNzZXJ0aW9uVHlwZSkKKyAgICA6IFByb2Nlc3NB
c3NlcnRpb24ocGlkLCByZWFzb24sIGFzc2VydGlvblR5cGUpCiB7CiAgICAgdXBkYXRlUnVuSW5C
YWNrZ3JvdW5kQ291bnQoKTsKIH0KQEAgLTM5MiwxMiArMzY2LDYgQEAgUHJvY2Vzc0FuZFVJQXNz
ZXJ0aW9uOjp+UHJvY2Vzc0FuZFVJQXNzZXJ0aW9uKCkKICAgICAgICAgW1tXS1Byb2Nlc3NBc3Nl
cnRpb25CYWNrZ3JvdW5kVGFza01hbmFnZXIgc2hhcmVkXSByZW1vdmVBc3NlcnRpb25OZWVkaW5n
QmFja2dyb3VuZFRhc2s6KnRoaXNdOwogfQogCi12b2lkIFByb2Nlc3NBbmRVSUFzc2VydGlvbjo6
c2V0U3RhdGUoQXNzZXJ0aW9uU3RhdGUgYXNzZXJ0aW9uU3RhdGUpCi17Ci0gICAgUHJvY2Vzc0Fz
c2VydGlvbjo6c2V0U3RhdGUoYXNzZXJ0aW9uU3RhdGUpOwotICAgIHVwZGF0ZVJ1bkluQmFja2dy
b3VuZENvdW50KCk7Ci19Ci0KIHZvaWQgUHJvY2Vzc0FuZFVJQXNzZXJ0aW9uOjp1aUFzc2VydGlv
bldpbGxFeHBpcmVJbW1pbmVudGx5KCkKIHsKICAgICBpZiAoYXV0byogY2xpZW50ID0gdGhpcy0+
Y2xpZW50KCkpCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cK
aW5kZXggODkzMGVkN2FmNjU3NzI0Y2QzNDUyODRjMTdmZjA2OWRmZjZhYTc5NC4uNjk5N2JhZmQ2
ZjZlYjNhZGViN2U0N2NjZjA4NmI3Y2M3OTM2ZDdmYSAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdl
TG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDIwLTA0LTAzICBD
aHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgW2lPU10gU2ltcGxpZnkg
UHJvY2Vzc0Fzc2VydGlvbiBjbGFzcyBpbiBwcmVwYXJhdGlvbiBmb3Igc3dpdGNoIHRvIFJ1bm5p
bmdCb2FyZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MjA5OTg0CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS82MTI3Mzk0MT4KKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViS2l0Q29jb2EvU2VydmljZVdvcmtlckJhc2ljLm1tOgorCiAyMDIwLTA0LTAzICBBYWthc2gg
SmFpbiAgPGFha2FzaF9qYWluQGFwcGxlLmNvbT4KIAogICAgICAgICBbZXdzXSBJbXByb3ZlIGVy
cm9yIG1lc3NhZ2Ugd2hlbiBwYXRjaCBmYWlscyB0byBhcHBseSB0byB0cnVuawpkaWZmIC0tZ2l0
IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9TZXJ2aWNlV29ya2VyQmFz
aWMubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1NlcnZpY2VXb3Jr
ZXJCYXNpYy5tbQppbmRleCBiYjZmYTQyMWI5NGI5YWQ5MTU1Mjk4ZDljNmMwMDY2MDA1NDhkNjY3
Li43NTI2NWQyMmYxMTUxNWZkZjViYTllN2U0Yjk3ZGM5YWUzYmVkYThmIDEwMDY0NAotLS0gYS9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1NlcnZpY2VXb3JrZXJCYXNpYy5t
bQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1NlcnZpY2VXb3Jr
ZXJCYXNpYy5tbQpAQCAtMTY2NSwxNSArMTY2NSwxNSBAQCB2b2lkIHRlc3RTdXNwZW5kU2Vydmlj
ZVdvcmtlclByb2Nlc3NCYXNlZE9uQ2xpZW50UHJvY2Vzc2VzKGJvb2wgdXNlU2VwYXJhdGVTZXJ2
aQogCiAgICAgd2FpdFVudGlsU2VydmljZVdvcmtlclByb2Nlc3NDb3VudChwcm9jZXNzUG9vbCwg
MSk7CiAKLSAgICBbd2ViVmlldyBfc2V0QXNzZXJ0aW9uU3RhdGVGb3JUZXN0aW5nOiAxXTsKKyAg
ICBbd2ViVmlldyBfc2V0QXNzZXJ0aW9uVHlwZUZvclRlc3Rpbmc6IDFdOwogICAgIHdhaXRVbnRp
bFNlcnZpY2VXb3JrZXJQcm9jZXNzRm9yZWdyb3VuZEFjdGl2aXR5U3RhdGUod2ViVmlldy5nZXQo
KSwgZmFsc2UpOwogICAgIHdhaXRVbnRpbFNlcnZpY2VXb3JrZXJQcm9jZXNzQmFja2dyb3VuZEFj
dGl2aXR5U3RhdGUod2ViVmlldy5nZXQoKSwgdHJ1ZSk7CiAKLSAgICBbd2ViVmlldyBfc2V0QXNz
ZXJ0aW9uU3RhdGVGb3JUZXN0aW5nOiAzXTsKKyAgICBbd2ViVmlldyBfc2V0QXNzZXJ0aW9uVHlw
ZUZvclRlc3Rpbmc6IDNdOwogICAgIHdhaXRVbnRpbFNlcnZpY2VXb3JrZXJQcm9jZXNzRm9yZWdy
b3VuZEFjdGl2aXR5U3RhdGUod2ViVmlldy5nZXQoKSwgdHJ1ZSk7CiAgICAgd2FpdFVudGlsU2Vy
dmljZVdvcmtlclByb2Nlc3NCYWNrZ3JvdW5kQWN0aXZpdHlTdGF0ZSh3ZWJWaWV3LmdldCgpLCBm
YWxzZSk7CiAKLSAgICBbd2ViVmlldyBfc2V0QXNzZXJ0aW9uU3RhdGVGb3JUZXN0aW5nOiAwXTsK
KyAgICBbd2ViVmlldyBfc2V0QXNzZXJ0aW9uVHlwZUZvclRlc3Rpbmc6IDBdOwogICAgIHdhaXRV
bnRpbFNlcnZpY2VXb3JrZXJQcm9jZXNzQmFja2dyb3VuZEFjdGl2aXR5U3RhdGUod2ViVmlldy5n
ZXQoKSwgZmFsc2UpOwogICAgIHdhaXRVbnRpbFNlcnZpY2VXb3JrZXJQcm9jZXNzRm9yZWdyb3Vu
ZEFjdGl2aXR5U3RhdGUod2ViVmlldy5nZXQoKSwgZmFsc2UpOwogCkBAIC0xNjg1LDE5ICsxNjg1
LDE5IEBAIHZvaWQgdGVzdFN1c3BlbmRTZXJ2aWNlV29ya2VyUHJvY2Vzc0Jhc2VkT25DbGllbnRQ
cm9jZXNzZXMoYm9vbCB1c2VTZXBhcmF0ZVNlcnZpCiAgICAgd2ViVmlldyA9IG51bGxwdHI7CiAK
ICAgICAvLyBUaGUgc2VydmljZSB3b3JrZXIgcHJvY2VzcyBzaG91bGQgdGFrZSBhY3Rpdml0eSBi
YXNlZCBvbiB3ZWJWaWV3MiBwcm9jZXNzLgotICAgIFt3ZWJWaWV3MiBfc2V0QXNzZXJ0aW9uU3Rh
dGVGb3JUZXN0aW5nOiAxXTsKKyAgICBbd2ViVmlldzIgX3NldEFzc2VydGlvblR5cGVGb3JUZXN0
aW5nOiAxXTsKICAgICB3aGlsZSAod2ViVmlldzIuZ2V0KCkuX2hhc1NlcnZpY2VXb3JrZXJGb3Jl
Z3JvdW5kQWN0aXZpdHlGb3JUZXN0aW5nIHx8ICF3ZWJWaWV3Mi5nZXQoKS5faGFzU2VydmljZVdv
cmtlckJhY2tncm91bmRBY3Rpdml0eUZvclRlc3RpbmcpIHsKLSAgICAgICAgW3dlYlZpZXcyIF9z
ZXRBc3NlcnRpb25TdGF0ZUZvclRlc3Rpbmc6IDFdOworICAgICAgICBbd2ViVmlldzIgX3NldEFz
c2VydGlvblR5cGVGb3JUZXN0aW5nOiAxXTsKICAgICAgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6
c3BpblJ1bkxvb3AoMSk7CiAgICAgfQogCiAgICAgd2hpbGUgKCF3ZWJWaWV3Mi5nZXQoKS5faGFz
U2VydmljZVdvcmtlckZvcmVncm91bmRBY3Rpdml0eUZvclRlc3RpbmcgfHwgd2ViVmlldzIuZ2V0
KCkuX2hhc1NlcnZpY2VXb3JrZXJCYWNrZ3JvdW5kQWN0aXZpdHlGb3JUZXN0aW5nKSB7Ci0gICAg
ICAgIFt3ZWJWaWV3MiBfc2V0QXNzZXJ0aW9uU3RhdGVGb3JUZXN0aW5nOiAzXTsKKyAgICAgICAg
W3dlYlZpZXcyIF9zZXRBc3NlcnRpb25UeXBlRm9yVGVzdGluZzogM107CiAgICAgICAgIFRlc3RX
ZWJLaXRBUEk6OlV0aWw6OnNwaW5SdW5Mb29wKDEpOwogICAgIH0KIAogICAgIHdoaWxlICh3ZWJW
aWV3Mi5nZXQoKS5faGFzU2VydmljZVdvcmtlckZvcmVncm91bmRBY3Rpdml0eUZvclRlc3Rpbmcg
fHwgd2ViVmlldzIuZ2V0KCkuX2hhc1NlcnZpY2VXb3JrZXJCYWNrZ3JvdW5kQWN0aXZpdHlGb3JU
ZXN0aW5nKSB7Ci0gICAgICAgIFt3ZWJWaWV3MiBfc2V0QXNzZXJ0aW9uU3RhdGVGb3JUZXN0aW5n
OiAwXTsKKyAgICAgICAgW3dlYlZpZXcyIF9zZXRBc3NlcnRpb25UeXBlRm9yVGVzdGluZzogMF07
CiAgICAgICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnNwaW5SdW5Mb29wKDEpOwogICAgIH0KIH0K
</data>

          </attachment>
      

    </bug>

</bugzilla>