<?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>172066</bug_id>
          
          <creation_ts>2017-05-12 19:22:56 -0700</creation_ts>
          <short_desc>Drop uses of PassRefPtr in WebKit/mac</short_desc>
          <delta_ts>2017-05-12 22:26:18 -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>WebKit Misc.</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>achristensen</cc>
    
    <cc>buildbot</cc>
    
    <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>kling</cc>
    
    <cc>koivisto</cc>
    
    <cc>rniwa</cc>
    
    <cc>sam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1308231</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-05-12 19:22:56 -0700</bug_when>
    <thetext>Drop uses of PassRefPtr in WebKit/mac.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1308235</commentid>
    <comment_count>1</comment_count>
      <attachid>309997</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-05-12 19:31:30 -0700</bug_when>
    <thetext>Created attachment 309997
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1308236</commentid>
    <comment_count>2</comment_count>
    <who name="Build Bot">buildbot</who>
    <bug_when>2017-05-12 19:32:31 -0700</bug_when>
    <thetext>Attachment 309997 did not pass style-queue:


ERROR: Source/WebKit/mac/Plugins/WebBaseNetscapePluginView.h:80:  When wrapping a line, only indent 4 spaces.  [whitespace/indent] [3]
ERROR: Source/WebKit/mac/Plugins/Hosted/WebHostedNetscapePluginView.mm:90:  When wrapping a line, only indent 4 spaces.  [whitespace/indent] [3]
ERROR: Source/WebKit/mac/Plugins/WebNetscapePluginView.mm:1259:  When wrapping a line, only indent 4 spaces.  [whitespace/indent] [3]
ERROR: Source/WebKit/mac/Plugins/WebNetscapePluginView.h:113:  When wrapping a line, only indent 4 spaces.  [whitespace/indent] [3]
ERROR: Source/WebKit/mac/Plugins/WebBaseNetscapePluginView.mm:87:  When wrapping a line, only indent 4 spaces.  [whitespace/indent] [3]
ERROR: Source/WebKit/mac/Plugins/Hosted/WebHostedNetscapePluginView.h:59:  When wrapping a line, only indent 4 spaces.  [whitespace/indent] [3]
Total errors found: 6 in 42 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1308241</commentid>
    <comment_count>3</comment_count>
      <attachid>310000</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-05-12 19:55:00 -0700</bug_when>
    <thetext>Created attachment 310000
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1308242</commentid>
    <comment_count>4</comment_count>
    <who name="Build Bot">buildbot</who>
    <bug_when>2017-05-12 19:56:45 -0700</bug_when>
    <thetext>Attachment 310000 did not pass style-queue:


ERROR: Source/WebKit/mac/Plugins/WebBaseNetscapePluginView.h:80:  When wrapping a line, only indent 4 spaces.  [whitespace/indent] [3]
ERROR: Source/WebKit/mac/Plugins/Hosted/WebHostedNetscapePluginView.mm:90:  When wrapping a line, only indent 4 spaces.  [whitespace/indent] [3]
ERROR: Source/WebKit/mac/Plugins/WebNetscapePluginView.mm:1259:  When wrapping a line, only indent 4 spaces.  [whitespace/indent] [3]
ERROR: Source/WebKit/mac/Plugins/WebNetscapePluginView.h:113:  When wrapping a line, only indent 4 spaces.  [whitespace/indent] [3]
ERROR: Source/WebKit/mac/Plugins/WebBaseNetscapePluginView.mm:87:  When wrapping a line, only indent 4 spaces.  [whitespace/indent] [3]
ERROR: Source/WebKit/mac/Plugins/Hosted/WebHostedNetscapePluginView.h:59:  When wrapping a line, only indent 4 spaces.  [whitespace/indent] [3]
Total errors found: 6 in 42 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1308245</commentid>
    <comment_count>5</comment_count>
      <attachid>310002</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-05-12 20:02:20 -0700</bug_when>
    <thetext>Created attachment 310002
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1308246</commentid>
    <comment_count>6</comment_count>
    <who name="Build Bot">buildbot</who>
    <bug_when>2017-05-12 20:03:35 -0700</bug_when>
    <thetext>Attachment 310002 did not pass style-queue:


ERROR: Source/WebKit/mac/Plugins/WebBaseNetscapePluginView.h:80:  When wrapping a line, only indent 4 spaces.  [whitespace/indent] [3]
ERROR: Source/WebKit/mac/Plugins/Hosted/WebHostedNetscapePluginView.mm:90:  When wrapping a line, only indent 4 spaces.  [whitespace/indent] [3]
ERROR: Source/WebKit/mac/Plugins/WebNetscapePluginView.mm:1259:  When wrapping a line, only indent 4 spaces.  [whitespace/indent] [3]
ERROR: Source/WebKit/mac/Plugins/WebNetscapePluginView.h:113:  When wrapping a line, only indent 4 spaces.  [whitespace/indent] [3]
ERROR: Source/WebKit/mac/Plugins/WebBaseNetscapePluginView.mm:87:  When wrapping a line, only indent 4 spaces.  [whitespace/indent] [3]
ERROR: Source/WebKit/mac/Plugins/Hosted/WebHostedNetscapePluginView.h:59:  When wrapping a line, only indent 4 spaces.  [whitespace/indent] [3]
Total errors found: 6 in 42 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1308254</commentid>
    <comment_count>7</comment_count>
      <attachid>310005</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-05-12 20:22:24 -0700</bug_when>
    <thetext>Created attachment 310005
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1308255</commentid>
    <comment_count>8</comment_count>
    <who name="Build Bot">buildbot</who>
    <bug_when>2017-05-12 20:24:52 -0700</bug_when>
    <thetext>Attachment 310005 did not pass style-queue:


ERROR: Source/WebKit/mac/WebView/WebArchive.mm:89:  Missing spaces around |  [whitespace/operators] [3]
ERROR: Source/WebKit/mac/Plugins/WebBaseNetscapePluginView.h:80:  When wrapping a line, only indent 4 spaces.  [whitespace/indent] [3]
ERROR: Source/WebKit/mac/Plugins/Hosted/WebHostedNetscapePluginView.mm:90:  When wrapping a line, only indent 4 spaces.  [whitespace/indent] [3]
ERROR: Source/WebKit/mac/Plugins/WebNetscapePluginView.mm:1259:  When wrapping a line, only indent 4 spaces.  [whitespace/indent] [3]
ERROR: Source/WebKit/mac/Plugins/WebNetscapePluginView.h:113:  When wrapping a line, only indent 4 spaces.  [whitespace/indent] [3]
ERROR: Source/WebKit/mac/Plugins/WebBaseNetscapePluginView.mm:87:  When wrapping a line, only indent 4 spaces.  [whitespace/indent] [3]
ERROR: Source/WebKit/mac/Plugins/Hosted/WebHostedNetscapePluginView.h:59:  When wrapping a line, only indent 4 spaces.  [whitespace/indent] [3]
Total errors found: 7 in 43 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1308272</commentid>
    <comment_count>9</comment_count>
      <attachid>310005</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-05-12 22:26:16 -0700</bug_when>
    <thetext>Comment on attachment 310005
Patch

Clearing flags on attachment: 310005

Committed r216816: &lt;http://trac.webkit.org/changeset/216816&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1308273</commentid>
    <comment_count>10</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-05-12 22:26:18 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>309997</attachid>
            <date>2017-05-12 19:31:30 -0700</date>
            <delta_ts>2017-05-12 19:54:58 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-172066-20170512193130.patch</filename>
            <type>text/plain</type>
            <size>56432</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjE2ODEwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2lv
cy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2lvcy9DaGFuZ2VMb2cKaW5kZXggZGNhMWI1ZTlk
OGFmZTM4ZTE5NGRhYzAxNGE1OWQxNDk5MTQwZGIzYi4uZGQ1NzZjOGNkYjg1YzJmNDllZjM5ODhi
YjFmMDAxMjkwM2JjMWI5ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9pb3MvQ2hhbmdlTG9n
CisrKyBiL1NvdXJjZS9XZWJLaXQvaW9zL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDE3
LTA1LTEyICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgRHJvcCB1
c2VzIG9mIFBhc3NSZWZQdHIgaW4gV2ViS2l0L21hYworICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTcyMDY2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgQnVpbGQgZml4LgorCisgICAgICAgICogTWlzYy9XZWJH
ZW9sb2NhdGlvblByb3ZpZGVySU9TLm1tOgorCiAyMDE3LTA1LTAxICBDaHJpcyBEdW1leiAgPGNk
dW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgUmVtb3ZlIHNvbWUgdXNhZ2Ugb2YgUGFzc1JlZlB0
ciBpbiBlZGl0aW5nIGNvZGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxv
ZyBiL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwppbmRleCA2MWRlOTA3YzliMDYwNzJjODlk
MjAyMTk3M2VlOWZkZjU1YmI5MjRmLi4zNjk3ZTY3ZTc1NzQ1ODY2YWJhYmUxMGVmZTFkY2UzNjNl
M2JmMzA0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsOTEgQEAKKzIwMTctMDUtMTIgIENo
cmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBEcm9wIHVzZXMgb2YgUGFz
c1JlZlB0ciBpbiBXZWJLaXQvbWFjCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xNzIwNjYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICAqIEhpc3RvcnkvV2ViQmFja0ZvcndhcmRMaXN0SW50ZXJuYWwuaDoKKyAg
ICAgICAgKiBIaXN0b3J5L1dlYkhpc3RvcnlJdGVtLm1tOgorICAgICAgICAoa2l0KToKKyAgICAg
ICAgKC1bV2ViSGlzdG9yeUl0ZW0gaW5pdFdpdGhXZWJDb3JlSGlzdG9yeUl0ZW06XSk6CisgICAg
ICAgICogSGlzdG9yeS9XZWJIaXN0b3J5SXRlbUludGVybmFsLmg6CisgICAgICAgICogUGx1Z2lu
cy9Ib3N0ZWQvSG9zdGVkTmV0c2NhcGVQbHVnaW5TdHJlYW0uaDoKKyAgICAgICAgKFdlYktpdDo6
SG9zdGVkTmV0c2NhcGVQbHVnaW5TdHJlYW06OmNyZWF0ZSk6CisgICAgICAgICogUGx1Z2lucy9I
b3N0ZWQvTmV0c2NhcGVQbHVnaW5Ib3N0TWFuYWdlci5oOgorICAgICAgICAqIFBsdWdpbnMvSG9z
dGVkL05ldHNjYXBlUGx1Z2luSG9zdE1hbmFnZXIubW06CisgICAgICAgIChXZWJLaXQ6Ok5ldHNj
YXBlUGx1Z2luSG9zdE1hbmFnZXI6Omluc3RhbnRpYXRlUGx1Z2luKToKKyAgICAgICAgKiBQbHVn
aW5zL0hvc3RlZC9OZXRzY2FwZVBsdWdpbkluc3RhbmNlUHJveHkuaDoKKyAgICAgICAgKiBQbHVn
aW5zL0hvc3RlZC9OZXRzY2FwZVBsdWdpbkluc3RhbmNlUHJveHkubW06CisgICAgICAgIChXZWJL
aXQ6Ok5ldHNjYXBlUGx1Z2luSW5zdGFuY2VQcm94eTo6UGx1Z2luUmVxdWVzdDo6Y3JlYXRlKToK
KyAgICAgICAgKFdlYktpdDo6TmV0c2NhcGVQbHVnaW5JbnN0YW5jZVByb3h5OjpjcmVhdGUpOgor
ICAgICAgICAoV2ViS2l0OjpOZXRzY2FwZVBsdWdpbkluc3RhbmNlUHJveHk6OnNldE1hbnVhbFN0
cmVhbSk6CisgICAgICAgICogUGx1Z2lucy9Ib3N0ZWQvUHJveHlJbnN0YW5jZS5oOgorICAgICAg
ICAoV2ViS2l0OjpQcm94eUluc3RhbmNlOjpjcmVhdGUpOgorICAgICAgICAqIFBsdWdpbnMvSG9z
dGVkL1Byb3h5SW5zdGFuY2UubW06CisgICAgICAgIChXZWJLaXQ6OlByb3h5SW5zdGFuY2U6OlBy
b3h5SW5zdGFuY2UpOgorICAgICAgICAoV2ViS2l0OjpQcm94eUluc3RhbmNlOjpuZXdSdW50aW1l
T2JqZWN0KToKKyAgICAgICAgKiBQbHVnaW5zL0hvc3RlZC9Qcm94eVJ1bnRpbWVPYmplY3QuaDoK
KyAgICAgICAgKFdlYktpdDo6UHJveHlSdW50aW1lT2JqZWN0OjpjcmVhdGUpOgorICAgICAgICAq
IFBsdWdpbnMvSG9zdGVkL1Byb3h5UnVudGltZU9iamVjdC5tbToKKyAgICAgICAgKFdlYktpdDo6
UHJveHlSdW50aW1lT2JqZWN0OjpQcm94eVJ1bnRpbWVPYmplY3QpOgorICAgICAgICAqIFBsdWdp
bnMvSG9zdGVkL1dlYkhvc3RlZE5ldHNjYXBlUGx1Z2luVmlldy5oOgorICAgICAgICAqIFBsdWdp
bnMvSG9zdGVkL1dlYkhvc3RlZE5ldHNjYXBlUGx1Z2luVmlldy5tbToKKyAgICAgICAgKC1bV2Vi
SG9zdGVkTmV0c2NhcGVQbHVnaW5WaWV3IGluaXRXaXRoRnJhbWU6cGx1Z2luUGFja2FnZTpVUkw6
YmFzZVVSTDpNSU1FVHlwZTphdHRyaWJ1dGVLZXlzOmF0dHJpYnV0ZVZhbHVlczpsb2FkTWFudWFs
bHk6ZWxlbWVudDpdKToKKyAgICAgICAgKiBQbHVnaW5zL1dlYkJhc2VOZXRzY2FwZVBsdWdpblZp
ZXcuaDoKKyAgICAgICAgKiBQbHVnaW5zL1dlYkJhc2VOZXRzY2FwZVBsdWdpblZpZXcubW06Cisg
ICAgICAgICgtW1dlYkJhc2VOZXRzY2FwZVBsdWdpblZpZXcgaW5pdFdpdGhGcmFtZTpwbHVnaW5Q
YWNrYWdlOlVSTDpiYXNlVVJMOk1JTUVUeXBlOmF0dHJpYnV0ZUtleXM6YXR0cmlidXRlVmFsdWVz
OmxvYWRNYW51YWxseTplbGVtZW50Ol0pOgorICAgICAgICAqIFBsdWdpbnMvV2ViTmV0c2NhcGVQ
bHVnaW5TdHJlYW0uaDoKKyAgICAgICAgKFdlYk5ldHNjYXBlUGx1Z2luU3RyZWFtOjpjcmVhdGUp
OgorICAgICAgICAqIFBsdWdpbnMvV2ViTmV0c2NhcGVQbHVnaW5WaWV3Lmg6CisgICAgICAgICog
UGx1Z2lucy9XZWJOZXRzY2FwZVBsdWdpblZpZXcubW06CisgICAgICAgICgtW1dlYk5ldHNjYXBl
UGx1Z2luVmlldyBpbml0V2l0aEZyYW1lOnBsdWdpblBhY2thZ2U6VVJMOmJhc2VVUkw6TUlNRVR5
cGU6YXR0cmlidXRlS2V5czphdHRyaWJ1dGVWYWx1ZXM6bG9hZE1hbnVhbGx5OmVsZW1lbnQ6XSk6
CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lm1tOgorICAgICAgICAq
IFdlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5tbToKKyAgICAgICAgKiBXZWJDb3JlU3Vw
cG9ydC9XZWJOb3RpZmljYXRpb25DbGllbnQubW06CisgICAgICAgIChXZWJOb3RpZmljYXRpb25D
bGllbnQ6OnJlcXVlc3RQZXJtaXNzaW9uKToKKyAgICAgICAgKC1bV2ViTm90aWZpY2F0aW9uUG9s
aWN5TGlzdGVuZXIgaW5pdFdpdGhDYWxsYmFjazpdKToKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9y
dC9XZWJPcGVuUGFuZWxSZXN1bHRMaXN0ZW5lci5tbToKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9y
dC9XZWJVc2VyTWVkaWFDbGllbnQubW06CisgICAgICAgIChXZWJVc2VyTWVkaWFDbGllbnQ6OnJl
cXVlc3RVc2VyTWVkaWFBY2Nlc3MpOgorICAgICAgICAoV2ViVXNlck1lZGlhQ2xpZW50OjplbnVt
ZXJhdGVNZWRpYURldmljZXMpOgorICAgICAgICAoLVtXZWJVc2VyTWVkaWFQb2xpY3lMaXN0ZW5l
ciBpbml0V2l0aFVzZXJNZWRpYVJlcXVlc3Q6XSk6CisgICAgICAgICgtW1dlYlVzZXJNZWRpYVBv
bGljeUNoZWNrZXJMaXN0ZW5lciBpbml0V2l0aE1lZGlhRGV2aWNlc0VudW1lcmF0aW9uUmVxdWVz
dDpdKToKKyAgICAgICAgKiBXZWJWaWV3L1dlYkFyY2hpdmUubW06CisgICAgICAgICgtW1dlYkFy
Y2hpdmVQcml2YXRlIGluaXRXaXRoQ29yZUFyY2hpdmU6XSk6CisgICAgICAgICgtW1dlYkFyY2hp
dmVQcml2YXRlIHNldENvcmVBcmNoaXZlOl0pOgorICAgICAgICAoLVtXZWJBcmNoaXZlIGluaXRX
aXRoRGF0YTpdKToKKyAgICAgICAgKC1bV2ViQXJjaGl2ZSBzdWJmcmFtZUFyY2hpdmVzXSk6Cisg
ICAgICAgICgtW1dlYkFyY2hpdmUgX2luaXRXaXRoQ29yZUxlZ2FjeVdlYkFyY2hpdmU6XSk6Cisg
ICAgICAgICogV2ViVmlldy9XZWJBcmNoaXZlSW50ZXJuYWwuaDoKKyAgICAgICAgKiBXZWJWaWV3
L1dlYkRhdGFTb3VyY2UubW06CisgICAgICAgIChXZWJEYXRhU291cmNlUHJpdmF0ZTo6V2ViRGF0
YVNvdXJjZVByaXZhdGUpOgorICAgICAgICAoV2ViRGF0YVNvdXJjZVByaXZhdGU6On5XZWJEYXRh
U291cmNlUHJpdmF0ZSk6CisgICAgICAgICgtW1dlYkRhdGFTb3VyY2UgX2luaXRXaXRoRG9jdW1l
bnRMb2FkZXI6XSk6CisgICAgICAgICogV2ViVmlldy9XZWJEYXRhU291cmNlSW50ZXJuYWwuaDoK
KyAgICAgICAgKiBXZWJWaWV3L1dlYkRldmljZU9yaWVudGF0aW9uLm1tOgorICAgICAgICAoLVtX
ZWJEZXZpY2VPcmllbnRhdGlvbiBpbml0V2l0aENvcmVEZXZpY2VPcmllbnRhdGlvbjpdKToKKyAg
ICAgICAgKiBXZWJWaWV3L1dlYkRldmljZU9yaWVudGF0aW9uSW50ZXJuYWwuaDoKKyAgICAgICAg
KiBXZWJWaWV3L1dlYkZyYW1lLm1tOgorICAgICAgICAoLVtXZWJGcmFtZSBfY29udmVydFRvRE9N
UmFuZ2U6XSk6CisgICAgICAgICgtW1dlYkZyYW1lIF9jb252ZXJ0VG9ET01SYW5nZTpyYW5nZUlz
UmVsYXRpdmVUbzpdKToKKyAgICAgICAgKiBXZWJWaWV3L1dlYkZyYW1lSW50ZXJuYWwuaDoKKyAg
ICAgICAgKiBXZWJWaWV3L1dlYkZ1bGxTY3JlZW5Db250cm9sbGVyLmg6CisgICAgICAgICogV2Vi
Vmlldy9XZWJGdWxsU2NyZWVuQ29udHJvbGxlci5tbToKKyAgICAgICAgKC1bV2ViRnVsbFNjcmVl
bkNvbnRyb2xsZXIgc2V0RWxlbWVudDpdKToKKyAgICAgICAgKiBXZWJWaWV3L1dlYkdlb2xvY2F0
aW9uUG9zaXRpb24ubW06CisgICAgICAgICgtW1dlYkdlb2xvY2F0aW9uUG9zaXRpb25JbnRlcm5h
bCBpbml0V2l0aENvcmVHZW9sb2NhdGlvblBvc2l0aW9uOl0pOgorICAgICAgICAoLVtXZWJHZW9s
b2NhdGlvblBvc2l0aW9uIGluaXRXaXRoR2VvbG9jYXRpb25Qb3NpdGlvbjpdKToKKyAgICAgICAg
KiBXZWJWaWV3L1dlYkhUTUxWaWV3Lm1tOgorICAgICAgICAoY3VycmVudEtleWJvYXJkRXZlbnQp
OgorICAgICAgICAqIFdlYlZpZXcvV2ViUmVzb3VyY2UubW06CisgICAgICAgICogV2ViVmlldy9X
ZWJTY3JpcHRXb3JsZC5tbToKKyAgICAgICAgKC1bV2ViU2NyaXB0V29ybGQgaW5pdFdpdGhXb3Js
ZDpdKToKKyAgICAgICAgKCtbV2ViU2NyaXB0V29ybGQgc3RhbmRhcmRXb3JsZF0pOgorICAgICAg
ICAoK1tXZWJTY3JpcHRXb3JsZCBmaW5kT3JDcmVhdGVXb3JsZDpdKToKKyAgICAgICAgKiBXZWJW
aWV3L1dlYlZpZXdEYXRhLmg6CisgICAgICAgIChMYXllckZsdXNoQ29udHJvbGxlcjo6Y3JlYXRl
KToKKwogMjAxNy0wNS0xMSAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAg
ICAgIERyb3AgcmVtYWluaW5nIHVzZXMgb2YgUGFzc1JlZlB0ciBpbiBXZWJDb3JlCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L2lvcy9NaXNjL1dlYkdlb2xvY2F0aW9uUHJvdmlkZXJJT1MubW0g
Yi9Tb3VyY2UvV2ViS2l0L2lvcy9NaXNjL1dlYkdlb2xvY2F0aW9uUHJvdmlkZXJJT1MubW0KaW5k
ZXggODYwYzBhMzZhMjNkZGEyOWJiODVlOTI0OTk2ZDY2MGIzZDExYTZmZC4uMGQ1M2FmMDM4NWJj
NDE4M2FmODY4NmI2YzM3NDNkYjVmYzVjMTQ4YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9p
b3MvTWlzYy9XZWJHZW9sb2NhdGlvblByb3ZpZGVySU9TLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQv
aW9zL01pc2MvV2ViR2VvbG9jYXRpb25Qcm92aWRlcklPUy5tbQpAQCAtNDQsNyArNDQsNyBAQAog
dXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKIEBpbnRlcmZhY2UgV2ViR2VvbG9jYXRpb25Qb3Np
dGlvbiAoSW50ZXJuYWwpCi0tIChpZClpbml0V2l0aEdlb2xvY2F0aW9uUG9zaXRpb246KFJlZlB0
cjxHZW9sb2NhdGlvblBvc2l0aW9uPiljb3JlR2VvbG9jYXRpb25Qb3NpdGlvbjsKKy0gKGlkKWlu
aXRXaXRoR2VvbG9jYXRpb25Qb3NpdGlvbjooUmVmUHRyPEdlb2xvY2F0aW9uUG9zaXRpb24+JiYp
Y29yZUdlb2xvY2F0aW9uUG9zaXRpb247CiBAZW5kCiAKIC8vIENvcmVMb2NhdGlvbiBydW5zIGlu
IHRoZSBtYWluIHRocmVhZC4gV2ViR2VvbG9jYXRpb25Qcm92aWRlcklPUyBsaXZlcyBvbiB0aGUg
V2ViVGhyZWFkLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvSGlzdG9yeS9XZWJCYWNr
Rm9yd2FyZExpc3RJbnRlcm5hbC5oIGIvU291cmNlL1dlYktpdC9tYWMvSGlzdG9yeS9XZWJCYWNr
Rm9yd2FyZExpc3RJbnRlcm5hbC5oCmluZGV4IDhkZTBlMzE5ZDZiYWUxYWQ0ODljMWVlMjhmNTRj
MjhhMjExNzIwYWIuLmU1YzAxNTcyYWZkZWM0MzVmZjAxMGM1YzQ3MzNjOTUzNDViNmU3OTkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL0hpc3RvcnkvV2ViQmFja0ZvcndhcmRMaXN0SW50
ZXJuYWwuaAorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9IaXN0b3J5L1dlYkJhY2tGb3J3YXJkTGlz
dEludGVybmFsLmgKQEAgLTI3LDcgKzI3LDcgQEAKICAqLwogCiAjaW1wb3J0IDxXZWJLaXRMZWdh
Y3kvV2ViQmFja0ZvcndhcmRMaXN0Lmg+Ci0jaW1wb3J0IDx3dGYvUGFzc1JlZlB0ci5oPgorI2lt
cG9ydCA8d3RmL1JlZi5oPgogCiBjbGFzcyBCYWNrRm9yd2FyZExpc3Q7CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvbWFjL0hpc3RvcnkvV2ViSGlzdG9yeUl0ZW0ubW0gYi9Tb3VyY2UvV2Vi
S2l0L21hYy9IaXN0b3J5L1dlYkhpc3RvcnlJdGVtLm1tCmluZGV4IDI1YTQzMzIwN2EwZTMyZjE0
Y2E0Yjk5ZWI1NThkYTk5NzgxNDU1MTcuLmFlYzA2ZmZkNmI4ODQ4YjY5Y2FhN2YyNjA5MGE3Nzc4
MjNkNzdiMjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL0hpc3RvcnkvV2ViSGlzdG9y
eUl0ZW0ubW0KKysrIGIvU291cmNlL1dlYktpdC9tYWMvSGlzdG9yeS9XZWJIaXN0b3J5SXRlbS5t
bQpAQCAtMjY3LDcgKzI2Nyw3IEBAIFdlYkhpc3RvcnlJdGVtICpraXQoSGlzdG9yeUl0ZW0qIGl0
ZW0pCiAgICAgaWYgKGtpdEl0ZW0pCiAgICAgICAgIHJldHVybiBraXRJdGVtOwogICAgIAotICAg
IHJldHVybiBbW1tXZWJIaXN0b3J5SXRlbSBhbGxvY10gaW5pdFdpdGhXZWJDb3JlSGlzdG9yeUl0
ZW06aXRlbV0gYXV0b3JlbGVhc2VdOworICAgIHJldHVybiBbW1tXZWJIaXN0b3J5SXRlbSBhbGxv
Y10gaW5pdFdpdGhXZWJDb3JlSGlzdG9yeUl0ZW06Kml0ZW1dIGF1dG9yZWxlYXNlXTsKIH0KIAog
KyAoV2ViSGlzdG9yeUl0ZW0gKillbnRyeVdpdGhVUkw6KE5TVVJMICopVVJMCkBAIC0yODQsNyAr
Mjg0LDcgQEAgLSAoaWQpaW5pdFdpdGhVUkxTdHJpbmc6KE5TU3RyaW5nICopVVJMU3RyaW5nIHRp
dGxlOihOU1N0cmluZyAqKXRpdGxlIGRpc3BsYXlUaXQKICAgICByZXR1cm4gaXRlbTsKIH0KIAot
LSAoaWQpaW5pdFdpdGhXZWJDb3JlSGlzdG9yeUl0ZW06KFBhc3NSZWZQdHI8SGlzdG9yeUl0ZW0+
KWl0ZW0KKy0gKGlkKWluaXRXaXRoV2ViQ29yZUhpc3RvcnlJdGVtOihSZWY8SGlzdG9yeUl0ZW0+
JiYpaXRlbQogeyAgIAogICAgIFdlYkNvcmVUaHJlYWRWaW9sYXRpb25DaGVja1JvdW5kT25lKCk7
CiAgICAgLy8gTmVlZCB0byB0ZWxsIFdlYkNvcmUgd2hhdCBmdW5jdGlvbiB0byBjYWxsIGZvciB0
aGUgCkBAIC0yOTgsNyArMjk4LDcgQEAgLSAoaWQpaW5pdFdpdGhXZWJDb3JlSGlzdG9yeUl0ZW06
KFBhc3NSZWZQdHI8SGlzdG9yeUl0ZW0+KWl0ZW0KICAgICAgICAgcmV0dXJuIG5pbDsKIAogICAg
IF9wcml2YXRlID0gW1tXZWJIaXN0b3J5SXRlbVByaXZhdGUgYWxsb2NdIGluaXRdOwotICAgIF9w
cml2YXRlLT5faGlzdG9yeUl0ZW0gPSBpdGVtOworICAgIF9wcml2YXRlLT5faGlzdG9yeUl0ZW0g
PSBXVEZNb3ZlKGl0ZW0pOwogCiAgICAgQVNTRVJUKCFoaXN0b3J5SXRlbVdyYXBwZXJzKCkuZ2V0
KGNvcmUoX3ByaXZhdGUpKSk7CiAgICAgaGlzdG9yeUl0ZW1XcmFwcGVycygpLnNldChjb3JlKF9w
cml2YXRlKSwgc2VsZik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9IaXN0b3J5L1dl
Ykhpc3RvcnlJdGVtSW50ZXJuYWwuaCBiL1NvdXJjZS9XZWJLaXQvbWFjL0hpc3RvcnkvV2ViSGlz
dG9yeUl0ZW1JbnRlcm5hbC5oCmluZGV4IDBlMjBlN2FmY2NjOWRjODdiM2IxMWUzOWY5NTNiYTgz
YWY1MjRjMWQuLjc5MTRkMzlmOWI3ZGEwN2UyNjhiYThlNTYyMmI0N2EzNjc2MmVlMmIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL0hpc3RvcnkvV2ViSGlzdG9yeUl0ZW1JbnRlcm5hbC5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL0hpc3RvcnkvV2ViSGlzdG9yeUl0ZW1JbnRlcm5hbC5o
CkBAIC00Nyw3ICs0Nyw3IEBAIGV4dGVybiB2b2lkIFdLTm90aWZ5SGlzdG9yeUl0ZW1DaGFuZ2Vk
KFdlYkNvcmU6Okhpc3RvcnlJdGVtKik7CiAKIC0gKGlkKWluaXRXaXRoVVJMU3RyaW5nOihOU1N0
cmluZyAqKVVSTFN0cmluZyB0aXRsZTooTlNTdHJpbmcgKil0aXRsZSBkaXNwbGF5VGl0bGU6KE5T
U3RyaW5nICopZGlzcGxheVRpdGxlIGxhc3RWaXNpdGVkVGltZUludGVydmFsOihOU1RpbWVJbnRl
cnZhbCl0aW1lOwogLSAoaWQpaW5pdEZyb21EaWN0aW9uYXJ5UmVwcmVzZW50YXRpb246KE5TRGlj
dGlvbmFyeSAqKWRpY3Q7Ci0tIChpZClpbml0V2l0aFdlYkNvcmVIaXN0b3J5SXRlbTooUGFzc1Jl
ZlB0cjxXZWJDb3JlOjpIaXN0b3J5SXRlbT4paXRlbTsKKy0gKGlkKWluaXRXaXRoV2ViQ29yZUhp
c3RvcnlJdGVtOihSZWY8V2ViQ29yZTo6SGlzdG9yeUl0ZW0+JiYpaXRlbTsKIAogLSAodm9pZClz
ZXRUaXRsZTooTlNTdHJpbmcgKil0aXRsZTsKIC0gKHZvaWQpX3Zpc2l0ZWRXaXRoVGl0bGU6KE5T
U3RyaW5nICopdGl0bGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9QbHVnaW5zL0hv
c3RlZC9Ib3N0ZWROZXRzY2FwZVBsdWdpblN0cmVhbS5oIGIvU291cmNlL1dlYktpdC9tYWMvUGx1
Z2lucy9Ib3N0ZWQvSG9zdGVkTmV0c2NhcGVQbHVnaW5TdHJlYW0uaAppbmRleCA4ZGRkZTg4NTYx
NTU5ZWM2Y2Q1NmNkMjkyOGRkZDIwZjY0ODE4MzY5Li5hNjE2MGYwZjYyNWU3NmJiYmQ4MGE4MzZm
Mjg5ZDQ3MGM1YzhmMzU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9QbHVnaW5zL0hv
c3RlZC9Ib3N0ZWROZXRzY2FwZVBsdWdpblN0cmVhbS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFj
L1BsdWdpbnMvSG9zdGVkL0hvc3RlZE5ldHNjYXBlUGx1Z2luU3RyZWFtLmgKQEAgLTMwLDcgKzMw
LDcgQEAKIAogI2luY2x1ZGUgPFdlYkNvcmUvTmV0c2NhcGVQbHVnSW5TdHJlYW1Mb2FkZXIuaD4K
ICNpbmNsdWRlIDxXZWJLaXRMZWdhY3kvbnBhcGkuaD4KLSNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0
ci5oPgorI2luY2x1ZGUgPHd0Zi9SZWYuaD4KICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgog
I2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KICNpbmNsdWRlIDx3dGYvUmV0YWluUHRyLmg+CkBAIC00
NywxMyArNDcsMTMgQEAgY2xhc3MgTmV0c2NhcGVQbHVnaW5JbnN0YW5jZVByb3h5OwogY2xhc3Mg
SG9zdGVkTmV0c2NhcGVQbHVnaW5TdHJlYW0gOiBwdWJsaWMgUmVmQ291bnRlZDxIb3N0ZWROZXRz
Y2FwZVBsdWdpblN0cmVhbT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICwgcHJp
dmF0ZSBXZWJDb3JlOjpOZXRzY2FwZVBsdWdJblN0cmVhbUxvYWRlckNsaWVudCB7CiBwdWJsaWM6
Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8SG9zdGVkTmV0c2NhcGVQbHVnaW5TdHJlYW0+IGNyZWF0
ZShOZXRzY2FwZVBsdWdpbkluc3RhbmNlUHJveHkqIGluc3RhbmNlLCB1aW50MzJfdCBzdHJlYW1J
RCwgTlNVUkxSZXF1ZXN0ICpyZXF1ZXN0KQorICAgIHN0YXRpYyBSZWY8SG9zdGVkTmV0c2NhcGVQ
bHVnaW5TdHJlYW0+IGNyZWF0ZShOZXRzY2FwZVBsdWdpbkluc3RhbmNlUHJveHkqIGluc3RhbmNl
LCB1aW50MzJfdCBzdHJlYW1JRCwgTlNVUkxSZXF1ZXN0ICpyZXF1ZXN0KQogICAgIHsKLSAgICAg
ICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBIb3N0ZWROZXRzY2FwZVBsdWdpblN0cmVhbShpbnN0YW5j
ZSwgc3RyZWFtSUQsIHJlcXVlc3QpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgSG9z
dGVkTmV0c2NhcGVQbHVnaW5TdHJlYW0oaW5zdGFuY2UsIHN0cmVhbUlELCByZXF1ZXN0KSk7CiAg
ICAgfQotICAgIHN0YXRpYyBQYXNzUmVmUHRyPEhvc3RlZE5ldHNjYXBlUGx1Z2luU3RyZWFtPiBj
cmVhdGUoTmV0c2NhcGVQbHVnaW5JbnN0YW5jZVByb3h5KiBpbnN0YW5jZSwgV2ViQ29yZTo6RnJh
bWVMb2FkZXIqIGZyYW1lTG9hZGVyKQorICAgIHN0YXRpYyBSZWY8SG9zdGVkTmV0c2NhcGVQbHVn
aW5TdHJlYW0+IGNyZWF0ZShOZXRzY2FwZVBsdWdpbkluc3RhbmNlUHJveHkqIGluc3RhbmNlLCBX
ZWJDb3JlOjpGcmFtZUxvYWRlciogZnJhbWVMb2FkZXIpCiAgICAgewotICAgICAgICByZXR1cm4g
YWRvcHRSZWYobmV3IEhvc3RlZE5ldHNjYXBlUGx1Z2luU3RyZWFtKGluc3RhbmNlLCBmcmFtZUxv
YWRlcikpOworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBIb3N0ZWROZXRzY2FwZVBsdWdp
blN0cmVhbShpbnN0YW5jZSwgZnJhbWVMb2FkZXIpKTsKICAgICB9CiAKICAgICB+SG9zdGVkTmV0
c2NhcGVQbHVnaW5TdHJlYW0oKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1BsdWdp
bnMvSG9zdGVkL05ldHNjYXBlUGx1Z2luSG9zdE1hbmFnZXIuaCBiL1NvdXJjZS9XZWJLaXQvbWFj
L1BsdWdpbnMvSG9zdGVkL05ldHNjYXBlUGx1Z2luSG9zdE1hbmFnZXIuaAppbmRleCBkODQ5NDk3
N2RhMjZkNzAxNjNlZDYyYzM0ZDFiY2JjMWEzY2ZiZDZhLi4yZDI0ZmQ3M2NhOGZlN2QyMDIzYjZk
OTFlMzc0ODMzMzRjMWUzZDIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9QbHVnaW5z
L0hvc3RlZC9OZXRzY2FwZVBsdWdpbkhvc3RNYW5hZ2VyLmgKKysrIGIvU291cmNlL1dlYktpdC9t
YWMvUGx1Z2lucy9Ib3N0ZWQvTmV0c2NhcGVQbHVnaW5Ib3N0TWFuYWdlci5oCkBAIC0yOSw4ICsy
OSw4IEBACiAjZGVmaW5lIE5ldHNjYXBlUGx1Z2luSG9zdE1hbmFnZXJfaAogCiAjaW1wb3J0IDx3
dGYvSGFzaE1hcC5oPgotI2ltcG9ydCA8d3RmL1Bhc3NSZWZQdHIuaD4KICNpbXBvcnQgPHd0Zi9O
ZXZlckRlc3Ryb3llZC5oPgorI2ltcG9ydCA8d3RmL1JlZlB0ci5oPgogI2ltcG9ydCA8d3RmL3Rl
eHQvU3RyaW5nSGFzaC5oPgogI2ltcG9ydCA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKQEAgLTQ1
LDcgKzQ1LDcgQEAgY2xhc3MgTmV0c2NhcGVQbHVnaW5Ib3N0TWFuYWdlciB7CiBwdWJsaWM6CiAg
ICAgc3RhdGljIE5ldHNjYXBlUGx1Z2luSG9zdE1hbmFnZXImIHNpbmdsZXRvbigpOwogICAgIAot
ICAgIFBhc3NSZWZQdHI8TmV0c2NhcGVQbHVnaW5JbnN0YW5jZVByb3h5PiBpbnN0YW50aWF0ZVBs
dWdpbihjb25zdCBTdHJpbmcmIHBsdWdpblBhdGgsIGNwdV90eXBlX3QgcGx1Z2luQXJjaGl0ZWN0
dXJlLCBjb25zdCBTdHJpbmcmIGJ1bmRsZUlkZW50aWZpZXIsIFdlYkhvc3RlZE5ldHNjYXBlUGx1
Z2luVmlldyAqLCBOU1N0cmluZyAqbWltZVR5cGUsIE5TQXJyYXkgKmF0dHJpYnV0ZUtleXMsIE5T
QXJyYXkgKmF0dHJpYnV0ZVZhbHVlcywgTlNTdHJpbmcgKnVzZXJBZ2VudCwgTlNVUkwgKnNvdXJj
ZVVSTCwgYm9vbCBmdWxsRnJhbWUsIGJvb2wgaXNQcml2YXRlQnJvd3NpbmdFbmFibGVkLCBib29s
IGlzQWNjZWxlcmF0ZWRDb21wb3NpdGluZ0VuYWJsZWQsIGJvb2wgaG9zdExheWVyc0luV2luZG93
U2VydmVyKTsKKyAgICBSZWZQdHI8TmV0c2NhcGVQbHVnaW5JbnN0YW5jZVByb3h5PiBpbnN0YW50
aWF0ZVBsdWdpbihjb25zdCBTdHJpbmcmIHBsdWdpblBhdGgsIGNwdV90eXBlX3QgcGx1Z2luQXJj
aGl0ZWN0dXJlLCBjb25zdCBTdHJpbmcmIGJ1bmRsZUlkZW50aWZpZXIsIFdlYkhvc3RlZE5ldHNj
YXBlUGx1Z2luVmlldyAqLCBOU1N0cmluZyAqbWltZVR5cGUsIE5TQXJyYXkgKmF0dHJpYnV0ZUtl
eXMsIE5TQXJyYXkgKmF0dHJpYnV0ZVZhbHVlcywgTlNTdHJpbmcgKnVzZXJBZ2VudCwgTlNVUkwg
KnNvdXJjZVVSTCwgYm9vbCBmdWxsRnJhbWUsIGJvb2wgaXNQcml2YXRlQnJvd3NpbmdFbmFibGVk
LCBib29sIGlzQWNjZWxlcmF0ZWRDb21wb3NpdGluZ0VuYWJsZWQsIGJvb2wgaG9zdExheWVyc0lu
V2luZG93U2VydmVyKTsKIAogICAgIHZvaWQgcGx1Z2luSG9zdERpZWQoTmV0c2NhcGVQbHVnaW5I
b3N0UHJveHkqKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvUGx1Z2lucy9Ib3N0
ZWQvTmV0c2NhcGVQbHVnaW5Ib3N0TWFuYWdlci5tbSBiL1NvdXJjZS9XZWJLaXQvbWFjL1BsdWdp
bnMvSG9zdGVkL05ldHNjYXBlUGx1Z2luSG9zdE1hbmFnZXIubW0KaW5kZXggZTRiN2M4OTlhNjVh
MjQzOGI4YjM2YWQ0Mzg3OGQ4YThiNWQ4ZTViYy4uZDc3MjYyODA1MDVhZjIxNmE1OWRhNGUwZjJh
ODhkNjk5YmZiN2YxNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvUGx1Z2lucy9Ib3N0
ZWQvTmV0c2NhcGVQbHVnaW5Ib3N0TWFuYWdlci5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9Q
bHVnaW5zL0hvc3RlZC9OZXRzY2FwZVBsdWdpbkhvc3RNYW5hZ2VyLm1tCkBAIC0yMTMsMTEgKzIx
MywxMSBAQCB2b2lkIE5ldHNjYXBlUGx1Z2luSG9zdE1hbmFnZXI6OnBsdWdpbkhvc3REaWVkKE5l
dHNjYXBlUGx1Z2luSG9zdFByb3h5KiBwbHVnaW5IbwogICAgIH0KIH0KIAotUGFzc1JlZlB0cjxO
ZXRzY2FwZVBsdWdpbkluc3RhbmNlUHJveHk+IE5ldHNjYXBlUGx1Z2luSG9zdE1hbmFnZXI6Omlu
c3RhbnRpYXRlUGx1Z2luKGNvbnN0IFN0cmluZyYgcGx1Z2luUGF0aCwgY3B1X3R5cGVfdCBwbHVn
aW5BcmNoaXRlY3R1cmUsIGNvbnN0IFN0cmluZyYgYnVuZGxlSWRlbnRpZmllciwgV2ViSG9zdGVk
TmV0c2NhcGVQbHVnaW5WaWV3ICpwbHVnaW5WaWV3LCBOU1N0cmluZyAqbWltZVR5cGUsIE5TQXJy
YXkgKmF0dHJpYnV0ZUtleXMsIE5TQXJyYXkgKmF0dHJpYnV0ZVZhbHVlcywgTlNTdHJpbmcgKnVz
ZXJBZ2VudCwgTlNVUkwgKnNvdXJjZVVSTCwgYm9vbCBmdWxsRnJhbWUsIGJvb2wgaXNQcml2YXRl
QnJvd3NpbmdFbmFibGVkLCBib29sIGlzQWNjZWxlcmF0ZWRDb21wb3NpdGluZ0VuYWJsZWQsIGJv
b2wgaG9zdExheWVyc0luV2luZG93U2VydmVyKQorUmVmUHRyPE5ldHNjYXBlUGx1Z2luSW5zdGFu
Y2VQcm94eT4gTmV0c2NhcGVQbHVnaW5Ib3N0TWFuYWdlcjo6aW5zdGFudGlhdGVQbHVnaW4oY29u
c3QgU3RyaW5nJiBwbHVnaW5QYXRoLCBjcHVfdHlwZV90IHBsdWdpbkFyY2hpdGVjdHVyZSwgY29u
c3QgU3RyaW5nJiBidW5kbGVJZGVudGlmaWVyLCBXZWJIb3N0ZWROZXRzY2FwZVBsdWdpblZpZXcg
KnBsdWdpblZpZXcsIE5TU3RyaW5nICptaW1lVHlwZSwgTlNBcnJheSAqYXR0cmlidXRlS2V5cywg
TlNBcnJheSAqYXR0cmlidXRlVmFsdWVzLCBOU1N0cmluZyAqdXNlckFnZW50LCBOU1VSTCAqc291
cmNlVVJMLCBib29sIGZ1bGxGcmFtZSwgYm9vbCBpc1ByaXZhdGVCcm93c2luZ0VuYWJsZWQsIGJv
b2wgaXNBY2NlbGVyYXRlZENvbXBvc2l0aW5nRW5hYmxlZCwgYm9vbCBob3N0TGF5ZXJzSW5XaW5k
b3dTZXJ2ZXIpCiB7CiAgICAgTmV0c2NhcGVQbHVnaW5Ib3N0UHJveHkqIGhvc3RQcm94eSA9IGhv
c3RGb3JQbHVnaW4ocGx1Z2luUGF0aCwgcGx1Z2luQXJjaGl0ZWN0dXJlLCBidW5kbGVJZGVudGlm
aWVyKTsKICAgICBpZiAoIWhvc3RQcm94eSkKLSAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIHJl
dHVybiBudWxscHRyOwogCiAgICAgUmV0YWluUHRyPE5TTXV0YWJsZURpY3Rpb25hcnk+IHByb3Bl
cnRpZXMgPSBhZG9wdE5TKFtbTlNNdXRhYmxlRGljdGlvbmFyeSBhbGxvY10gaW5pdF0pOwogICAg
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvUGx1Z2lucy9Ib3N0ZWQvTmV0c2NhcGVQ
bHVnaW5JbnN0YW5jZVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L21hYy9QbHVnaW5zL0hvc3RlZC9O
ZXRzY2FwZVBsdWdpbkluc3RhbmNlUHJveHkuaAppbmRleCA2Y2FlMDI3MjcxNDk1MmViNmMxOTIz
YThkMGQyNGY2OTIyMDUxYjlmLi42NTIwNWZjNGM3ZDZkMWU2ODdhOGFiZWE1NDQ3YTdmNmY5N2Q0
MTAwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9QbHVnaW5zL0hvc3RlZC9OZXRzY2Fw
ZVBsdWdpbkluc3RhbmNlUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9QbHVnaW5zL0hv
c3RlZC9OZXRzY2FwZVBsdWdpbkluc3RhbmNlUHJveHkuaApAQCAtMzYsNyArMzYsNyBAQAogI2lu
Y2x1ZGUgPHd0Zi9EZXF1ZS5oPgogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAjaW5jbHVkZSA8
d3RmL0hhc2hNYXAuaD4KLSNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0
Zi9SZWYuaD4KICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgogI2luY2x1ZGUgPHd0Zi9SZXRh
aW5QdHIuaD4KICNpbmNsdWRlICJXZWJLaXRQbHVnaW5Ib3N0VHlwZXMuaCIKQEAgLTYwLDcgKzYw
LDcgQEAgY2xhc3MgUHJveHlJbnN0YW5jZTsKICAgICAKIGNsYXNzIE5ldHNjYXBlUGx1Z2luSW5z
dGFuY2VQcm94eSA6IHB1YmxpYyBSZWZDb3VudGVkPE5ldHNjYXBlUGx1Z2luSW5zdGFuY2VQcm94
eT4gewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPE5ldHNjYXBlUGx1Z2luSW5zdGFu
Y2VQcm94eT4gY3JlYXRlKE5ldHNjYXBlUGx1Z2luSG9zdFByb3h5KiwgV2ViSG9zdGVkTmV0c2Nh
cGVQbHVnaW5WaWV3ICosIGJvb2wgZnVsbEZyYW1lUGx1Z2luKTsKKyAgICBzdGF0aWMgUmVmPE5l
dHNjYXBlUGx1Z2luSW5zdGFuY2VQcm94eT4gY3JlYXRlKE5ldHNjYXBlUGx1Z2luSG9zdFByb3h5
KiwgV2ViSG9zdGVkTmV0c2NhcGVQbHVnaW5WaWV3ICosIGJvb2wgZnVsbEZyYW1lUGx1Z2luKTsK
ICAgICB+TmV0c2NhcGVQbHVnaW5JbnN0YW5jZVByb3h5KCk7CiAgICAgCiAgICAgdWludDMyX3Qg
cGx1Z2luSUQoKSBjb25zdCAKQEAgLTgxLDcgKzgxLDcgQEAgcHVibGljOgogICAgIGJvb2wgY2Fu
Y2VsU3RyZWFtTG9hZCh1aW50MzJfdCBzdHJlYW1JRCwgTlBSZWFzb24pOwogICAgIHZvaWQgZGlz
Y29ubmVjdFN0cmVhbShIb3N0ZWROZXRzY2FwZVBsdWdpblN0cmVhbSopOwogICAgIAotICAgIHZv
aWQgc2V0TWFudWFsU3RyZWFtKFBhc3NSZWZQdHI8SG9zdGVkTmV0c2NhcGVQbHVnaW5TdHJlYW0+
KTsKKyAgICB2b2lkIHNldE1hbnVhbFN0cmVhbShSZWY8SG9zdGVkTmV0c2NhcGVQbHVnaW5TdHJl
YW0+JiYpOwogICAgIEhvc3RlZE5ldHNjYXBlUGx1Z2luU3RyZWFtKiBtYW51YWxTdHJlYW0oKSBj
b25zdCB7IHJldHVybiBtX21hbnVhbFN0cmVhbS5nZXQoKTsgfQogICAgIAogICAgIHZvaWQgcGx1
Z2luSG9zdERpZWQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1BsdWdpbnMvSG9z
dGVkL05ldHNjYXBlUGx1Z2luSW5zdGFuY2VQcm94eS5tbSBiL1NvdXJjZS9XZWJLaXQvbWFjL1Bs
dWdpbnMvSG9zdGVkL05ldHNjYXBlUGx1Z2luSW5zdGFuY2VQcm94eS5tbQppbmRleCBmNjg1OGQz
ZGExMDZiYzMyNTQ4MWJiNTgxY2Q3MWM2MTI0YzA1ZTcyLi5mYjg5NzRkOTA1MGY5MmQ3ZGIwOGQx
ZGNlM2RiMmU5ZTVlNDAzZGVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9QbHVnaW5z
L0hvc3RlZC9OZXRzY2FwZVBsdWdpbkluc3RhbmNlUHJveHkubW0KKysrIGIvU291cmNlL1dlYktp
dC9tYWMvUGx1Z2lucy9Ib3N0ZWQvTmV0c2NhcGVQbHVnaW5JbnN0YW5jZVByb3h5Lm1tCkBAIC04
MSw5ICs4MSw5IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogCiBjbGFzcyBOZXRzY2FwZVBsdWdpbklu
c3RhbmNlUHJveHk6OlBsdWdpblJlcXVlc3QgOiBwdWJsaWMgUmVmQ291bnRlZDxOZXRzY2FwZVBs
dWdpbkluc3RhbmNlUHJveHk6OlBsdWdpblJlcXVlc3Q+IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMg
UGFzc1JlZlB0cjxQbHVnaW5SZXF1ZXN0PiBjcmVhdGUodWludDMyX3QgcmVxdWVzdElELCBOU1VS
TFJlcXVlc3QqIHJlcXVlc3QsIE5TU3RyaW5nKiBmcmFtZU5hbWUsIGJvb2wgYWxsb3dQb3B1cHMp
CisgICAgc3RhdGljIFJlZjxQbHVnaW5SZXF1ZXN0PiBjcmVhdGUodWludDMyX3QgcmVxdWVzdElE
LCBOU1VSTFJlcXVlc3QqIHJlcXVlc3QsIE5TU3RyaW5nKiBmcmFtZU5hbWUsIGJvb2wgYWxsb3dQ
b3B1cHMpCiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IFBsdWdpblJlcXVlc3Qo
cmVxdWVzdElELCByZXF1ZXN0LCBmcmFtZU5hbWUsIGFsbG93UG9wdXBzKSk7CisgICAgICAgIHJl
dHVybiBhZG9wdFJlZigqbmV3IFBsdWdpblJlcXVlc3QocmVxdWVzdElELCByZXF1ZXN0LCBmcmFt
ZU5hbWUsIGFsbG93UG9wdXBzKSk7CiAgICAgfQogCiAgICAgdWludDMyX3QgcmVxdWVzdElEKCkg
Y29uc3QgeyByZXR1cm4gbV9yZXF1ZXN0SUQ7IH0KQEAgLTI0NiwxMSArMjQ2LDExIEBAIE5ldHNj
YXBlUGx1Z2luSW5zdGFuY2VQcm94eTo6TmV0c2NhcGVQbHVnaW5JbnN0YW5jZVByb3h5KE5ldHNj
YXBlUGx1Z2luSG9zdFByb3h5CiAjZW5kaWYKIH0KIAotUGFzc1JlZlB0cjxOZXRzY2FwZVBsdWdp
bkluc3RhbmNlUHJveHk+IE5ldHNjYXBlUGx1Z2luSW5zdGFuY2VQcm94eTo6Y3JlYXRlKE5ldHNj
YXBlUGx1Z2luSG9zdFByb3h5KiBwbHVnaW5Ib3N0UHJveHksIFdlYkhvc3RlZE5ldHNjYXBlUGx1
Z2luVmlldyAqcGx1Z2luVmlldywgYm9vbCBmdWxsRnJhbWVQbHVnaW4pCitSZWY8TmV0c2NhcGVQ
bHVnaW5JbnN0YW5jZVByb3h5PiBOZXRzY2FwZVBsdWdpbkluc3RhbmNlUHJveHk6OmNyZWF0ZShO
ZXRzY2FwZVBsdWdpbkhvc3RQcm94eSogcGx1Z2luSG9zdFByb3h5LCBXZWJIb3N0ZWROZXRzY2Fw
ZVBsdWdpblZpZXcgKnBsdWdpblZpZXcsIGJvb2wgZnVsbEZyYW1lUGx1Z2luKQogewogICAgIGF1
dG8gcHJveHkgPSBhZG9wdFJlZigqbmV3IE5ldHNjYXBlUGx1Z2luSW5zdGFuY2VQcm94eShwbHVn
aW5Ib3N0UHJveHksIHBsdWdpblZpZXcsIGZ1bGxGcmFtZVBsdWdpbikpOwogICAgIHBsdWdpbkhv
c3RQcm94eS0+YWRkUGx1Z2luSW5zdGFuY2UocHJveHkucHRyKCkpOwotICAgIHJldHVybiBXVEZN
b3ZlKHByb3h5KTsKKyAgICByZXR1cm4gcHJveHk7CiB9CiAKIE5ldHNjYXBlUGx1Z2luSW5zdGFu
Y2VQcm94eTo6fk5ldHNjYXBlUGx1Z2luSW5zdGFuY2VQcm94eSgpCkBAIC0zNTksMTEgKzM1OSwx
MSBAQCB2b2lkIE5ldHNjYXBlUGx1Z2luSW5zdGFuY2VQcm94eTo6ZGVzdHJveSgpCiAgICAgaW52
YWxpZGF0ZSgpOwogfQogCi12b2lkIE5ldHNjYXBlUGx1Z2luSW5zdGFuY2VQcm94eTo6c2V0TWFu
dWFsU3RyZWFtKFBhc3NSZWZQdHI8SG9zdGVkTmV0c2NhcGVQbHVnaW5TdHJlYW0+IG1hbnVhbFN0
cmVhbSkgCit2b2lkIE5ldHNjYXBlUGx1Z2luSW5zdGFuY2VQcm94eTo6c2V0TWFudWFsU3RyZWFt
KFJlZjxIb3N0ZWROZXRzY2FwZVBsdWdpblN0cmVhbT4mJiBtYW51YWxTdHJlYW0pCiB7CiAgICAg
QVNTRVJUKCFtX21hbnVhbFN0cmVhbSk7CiAgICAgCi0gICAgbV9tYW51YWxTdHJlYW0gPSBtYW51
YWxTdHJlYW07CisgICAgbV9tYW51YWxTdHJlYW0gPSBXVEZNb3ZlKG1hbnVhbFN0cmVhbSk7CiB9
CiAKIGJvb2wgTmV0c2NhcGVQbHVnaW5JbnN0YW5jZVByb3h5OjpjYW5jZWxTdHJlYW1Mb2FkKHVp
bnQzMl90IHN0cmVhbUlELCBOUFJlYXNvbiByZWFzb24pIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9tYWMvUGx1Z2lucy9Ib3N0ZWQvUHJveHlJbnN0YW5jZS5oIGIvU291cmNlL1dlYktpdC9t
YWMvUGx1Z2lucy9Ib3N0ZWQvUHJveHlJbnN0YW5jZS5oCmluZGV4IGFmYmExMDIwZDk1ZGFlYjYz
ZTE3YzdmYjkzMjE0MWFlOGU5NGQ4N2UuLjNiMDIyMGIyNjE3NTEwM2ZlOGQ3MTE4MmIzMTY1ZTNl
NTYwNTI3MzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1BsdWdpbnMvSG9zdGVkL1By
b3h5SW5zdGFuY2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9QbHVnaW5zL0hvc3RlZC9Qcm94
eUluc3RhbmNlLmgKQEAgLTM5LDkgKzM5LDkgQEAgY2xhc3MgUHJveHlDbGFzczsKICAgICAKIGNs
YXNzIFByb3h5SW5zdGFuY2UgOiBwdWJsaWMgSlNDOjpCaW5kaW5nczo6SW5zdGFuY2UgewogcHVi
bGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFByb3h5SW5zdGFuY2U+IGNyZWF0ZShQYXNzUmVm
UHRyPEpTQzo6QmluZGluZ3M6OlJvb3RPYmplY3Q+IHJvb3RPYmplY3QsIE5ldHNjYXBlUGx1Z2lu
SW5zdGFuY2VQcm94eSogaW5zdGFuY2VQcm94eSwgdWludDMyX3Qgb2JqZWN0SUQpCisgICAgc3Rh
dGljIFJlZjxQcm94eUluc3RhbmNlPiBjcmVhdGUoUmVmPEpTQzo6QmluZGluZ3M6OlJvb3RPYmpl
Y3Q+JiYgcm9vdE9iamVjdCwgTmV0c2NhcGVQbHVnaW5JbnN0YW5jZVByb3h5KiBpbnN0YW5jZVBy
b3h5LCB1aW50MzJfdCBvYmplY3RJRCkKICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZihu
ZXcgUHJveHlJbnN0YW5jZShyb290T2JqZWN0LCBpbnN0YW5jZVByb3h5LCBvYmplY3RJRCkpOwor
ICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBQcm94eUluc3RhbmNlKFdURk1vdmUocm9vdE9i
amVjdCksIGluc3RhbmNlUHJveHksIG9iamVjdElEKSk7CiAgICAgfQogICAgIH5Qcm94eUluc3Rh
bmNlKCk7CiAKQEAgLTU5LDcgKzU5LDcgQEAgcHVibGljOgogICAgIHVpbnQzMl90IG9iamVjdElE
KCkgY29uc3QgeyByZXR1cm4gbV9vYmplY3RJRDsgfQogICAgIAogcHJpdmF0ZToKLSAgICBQcm94
eUluc3RhbmNlKFBhc3NSZWZQdHI8SlNDOjpCaW5kaW5nczo6Um9vdE9iamVjdD4sIE5ldHNjYXBl
UGx1Z2luSW5zdGFuY2VQcm94eSosIHVpbnQzMl90IG9iamVjdElEKTsKKyAgICBQcm94eUluc3Rh
bmNlKFJlZjxKU0M6OkJpbmRpbmdzOjpSb290T2JqZWN0PiYmLCBOZXRzY2FwZVBsdWdpbkluc3Rh
bmNlUHJveHkqLCB1aW50MzJfdCBvYmplY3RJRCk7CiAKICAgICB2aXJ0dWFsIEpTQzo6QmluZGlu
Z3M6OlJ1bnRpbWVPYmplY3QqIG5ld1J1bnRpbWVPYmplY3QoSlNDOjpFeGVjU3RhdGUqKTsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvUGx1Z2lucy9Ib3N0ZWQvUHJveHlJbnN0YW5j
ZS5tbSBiL1NvdXJjZS9XZWJLaXQvbWFjL1BsdWdpbnMvSG9zdGVkL1Byb3h5SW5zdGFuY2UubW0K
aW5kZXggMzcxYzUxOTczNTcxYTFkYmRmZGNjNzNhNzk0ZDYyMTYyZmIyOGVjNi4uOWMwMGQ3Yzhj
NjRhNWIxMjQ0ZDdjOTA0NGMzMWI2OWM5NGFjMmFlZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9tYWMvUGx1Z2lucy9Ib3N0ZWQvUHJveHlJbnN0YW5jZS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0
L21hYy9QbHVnaW5zL0hvc3RlZC9Qcm94eUluc3RhbmNlLm1tCkBAIC0xMTIsOCArMTEyLDggQEAg
cHJpdmF0ZToKICAgICB1aW50NjRfdCBtX3NlcnZlcklkZW50aWZpZXI7CiB9OwogCi1Qcm94eUlu
c3RhbmNlOjpQcm94eUluc3RhbmNlKFBhc3NSZWZQdHI8Um9vdE9iamVjdD4gcm9vdE9iamVjdCwg
TmV0c2NhcGVQbHVnaW5JbnN0YW5jZVByb3h5KiBpbnN0YW5jZVByb3h5LCB1aW50MzJfdCBvYmpl
Y3RJRCkKLSAgICA6IEluc3RhbmNlKHJvb3RPYmplY3QpCitQcm94eUluc3RhbmNlOjpQcm94eUlu
c3RhbmNlKFJlZjxSb290T2JqZWN0PiYmIHJvb3RPYmplY3QsIE5ldHNjYXBlUGx1Z2luSW5zdGFu
Y2VQcm94eSogaW5zdGFuY2VQcm94eSwgdWludDMyX3Qgb2JqZWN0SUQpCisgICAgOiBJbnN0YW5j
ZShXVEZNb3ZlKHJvb3RPYmplY3QpKQogICAgICwgbV9pbnN0YW5jZVByb3h5KGluc3RhbmNlUHJv
eHkpCiAgICAgLCBtX29iamVjdElEKG9iamVjdElEKQogewpAQCAtMTMzLDcgKzEzMyw3IEBAIFBy
b3h5SW5zdGFuY2U6On5Qcm94eUluc3RhbmNlKCkKIFJ1bnRpbWVPYmplY3QqIFByb3h5SW5zdGFu
Y2U6Om5ld1J1bnRpbWVPYmplY3QoRXhlY1N0YXRlKiBleGVjKQogewogICAgIC8vIEZJWE1FOiBk
ZXByZWNhdGVkR2V0RE9NU3RydWN0dXJlIHVzZXMgdGhlIHByb3RvdHlwZSBvZmYgb2YgdGhlIHdy
b25nIGdsb2JhbCBvYmplY3QuCi0gICAgcmV0dXJuIFByb3h5UnVudGltZU9iamVjdDo6Y3JlYXRl
KGV4ZWMtPnZtKCksIFdlYkNvcmU6OmRlcHJlY2F0ZWRHZXRET01TdHJ1Y3R1cmU8UHJveHlSdW50
aW1lT2JqZWN0PihleGVjKSwgdGhpcyk7CisgICAgcmV0dXJuIFByb3h5UnVudGltZU9iamVjdDo6
Y3JlYXRlKGV4ZWMtPnZtKCksIFdlYkNvcmU6OmRlcHJlY2F0ZWRHZXRET01TdHJ1Y3R1cmU8UHJv
eHlSdW50aW1lT2JqZWN0PihleGVjKSwgKnRoaXMpOwogfQogCiBKU0M6OkJpbmRpbmdzOjpDbGFz
cyogUHJveHlJbnN0YW5jZTo6Z2V0Q2xhc3MoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9tYWMvUGx1Z2lucy9Ib3N0ZWQvUHJveHlSdW50aW1lT2JqZWN0LmggYi9Tb3VyY2UvV2Vi
S2l0L21hYy9QbHVnaW5zL0hvc3RlZC9Qcm94eVJ1bnRpbWVPYmplY3QuaAppbmRleCBjYmFiNmU5
ODI1OWRiYzhhZTQ1ZDdmNmZkOTBhYWIwMmUwM2ZkNjkzLi42ZGQwODg1MDQ0OTA2MDRkYmJjNjQx
OWZiMjM3MjY1ZGI2MGJjNjIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9QbHVnaW5z
L0hvc3RlZC9Qcm94eVJ1bnRpbWVPYmplY3QuaAorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9QbHVn
aW5zL0hvc3RlZC9Qcm94eVJ1bnRpbWVPYmplY3QuaApAQCAtMzksOSArMzksOSBAQCBjbGFzcyBQ
cm94eVJ1bnRpbWVPYmplY3QgOiBwdWJsaWMgSlNDOjpCaW5kaW5nczo6UnVudGltZU9iamVjdCB7
CiBwdWJsaWM6CiAgICAgdHlwZWRlZiBKU0M6OkJpbmRpbmdzOjpSdW50aW1lT2JqZWN0IEJhc2U7
CiAKLSAgICBzdGF0aWMgUHJveHlSdW50aW1lT2JqZWN0KiBjcmVhdGUoSlNDOjpWTSYgdm0sIEpT
Qzo6U3RydWN0dXJlKiBzdHJ1Y3R1cmUsIFBhc3NSZWZQdHI8UHJveHlJbnN0YW5jZT4gaW5zdGFu
Y2UpCisgICAgc3RhdGljIFByb3h5UnVudGltZU9iamVjdCogY3JlYXRlKEpTQzo6Vk0mIHZtLCBK
U0M6OlN0cnVjdHVyZSogc3RydWN0dXJlLCBSZWY8UHJveHlJbnN0YW5jZT4mJiBpbnN0YW5jZSkK
ICAgICB7Ci0gICAgICAgIFByb3h5UnVudGltZU9iamVjdCogb2JqZWN0ID0gbmV3IChKU0M6OmFs
bG9jYXRlQ2VsbDxQcm94eVJ1bnRpbWVPYmplY3Q+KHZtLmhlYXApKSBQcm94eVJ1bnRpbWVPYmpl
Y3Qodm0sIHN0cnVjdHVyZSwgaW5zdGFuY2UpOworICAgICAgICBQcm94eVJ1bnRpbWVPYmplY3Qq
IG9iamVjdCA9IG5ldyAoSlNDOjphbGxvY2F0ZUNlbGw8UHJveHlSdW50aW1lT2JqZWN0Pih2bS5o
ZWFwKSkgUHJveHlSdW50aW1lT2JqZWN0KHZtLCBzdHJ1Y3R1cmUsIFdURk1vdmUoaW5zdGFuY2Up
KTsKICAgICAgICAgb2JqZWN0LT5maW5pc2hDcmVhdGlvbih2bSk7CiAgICAgICAgIHJldHVybiBv
YmplY3Q7CiAgICAgfQpAQCAtNTYsNyArNTYsNyBAQCBwdWJsaWM6CiAgICAgREVDTEFSRV9JTkZP
OwogCiBwcml2YXRlOgotICAgIFByb3h5UnVudGltZU9iamVjdChKU0M6OlZNJiwgSlNDOjpTdHJ1
Y3R1cmUqLCBQYXNzUmVmUHRyPFByb3h5SW5zdGFuY2U+KTsKKyAgICBQcm94eVJ1bnRpbWVPYmpl
Y3QoSlNDOjpWTSYsIEpTQzo6U3RydWN0dXJlKiwgUmVmPFByb3h5SW5zdGFuY2U+JiYpOwogICAg
IHZvaWQgZmluaXNoQ3JlYXRpb24oSlNDOjpWTSYpOwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9tYWMvUGx1Z2lucy9Ib3N0ZWQvUHJveHlSdW50aW1lT2JqZWN0Lm1tIGIvU291cmNl
L1dlYktpdC9tYWMvUGx1Z2lucy9Ib3N0ZWQvUHJveHlSdW50aW1lT2JqZWN0Lm1tCmluZGV4IDVl
NmQyYjMzYzExNjFkODRiNDI4OTk0MWY0MGVkMGIwMjQwYzkyMzguLjkyN2VmYWYxNDNlNmY3NzBh
ZThhZjFjODJmZmZiZGY0NjRjMGI4YjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1Bs
dWdpbnMvSG9zdGVkL1Byb3h5UnVudGltZU9iamVjdC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21h
Yy9QbHVnaW5zL0hvc3RlZC9Qcm94eVJ1bnRpbWVPYmplY3QubW0KQEAgLTM2LDggKzM2LDggQEAg
bmFtZXNwYWNlIFdlYktpdCB7CiAKIGNvbnN0IENsYXNzSW5mbyBQcm94eVJ1bnRpbWVPYmplY3Q6
OnNfaW5mbyA9IHsgIlByb3h5UnVudGltZU9iamVjdCIsICZSdW50aW1lT2JqZWN0OjpzX2luZm8s
IDAsIENSRUFURV9NRVRIT0RfVEFCTEUoUHJveHlSdW50aW1lT2JqZWN0KSB9OwogCi1Qcm94eVJ1
bnRpbWVPYmplY3Q6OlByb3h5UnVudGltZU9iamVjdChWTSYgdm0sIFN0cnVjdHVyZSogc3RydWN0
dXJlLCBQYXNzUmVmUHRyPFByb3h5SW5zdGFuY2U+IGluc3RhbmNlKQotICAgIDogUnVudGltZU9i
amVjdCh2bSwgc3RydWN0dXJlLCBpbnN0YW5jZSkKK1Byb3h5UnVudGltZU9iamVjdDo6UHJveHlS
dW50aW1lT2JqZWN0KFZNJiB2bSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIFJlZjxQcm94eUluc3Rh
bmNlPiYmIGluc3RhbmNlKQorICAgIDogUnVudGltZU9iamVjdCh2bSwgc3RydWN0dXJlLCBXVEZN
b3ZlKGluc3RhbmNlKSkKIHsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvUGx1
Z2lucy9Ib3N0ZWQvV2ViSG9zdGVkTmV0c2NhcGVQbHVnaW5WaWV3LmggYi9Tb3VyY2UvV2ViS2l0
L21hYy9QbHVnaW5zL0hvc3RlZC9XZWJIb3N0ZWROZXRzY2FwZVBsdWdpblZpZXcuaAppbmRleCAx
Y2FlMDg1OTFjNzM4YzcxZmY2NGRmZDQ1NjBhMWRmZDIzZDQwM2Y3Li44MWY1OTA2ZTdjNWRiMWI0
OTgzOTZlYzY5MmYwOWIwZjJjMzMzYTY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9Q
bHVnaW5zL0hvc3RlZC9XZWJIb3N0ZWROZXRzY2FwZVBsdWdpblZpZXcuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L21hYy9QbHVnaW5zL0hvc3RlZC9XZWJIb3N0ZWROZXRzY2FwZVBsdWdpblZpZXcuaApA
QCAtNTYsNyArNTYsNyBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKICAgICAgIGF0dHJpYnV0ZUtleXM6
KE5TQXJyYXkgKilrZXlzCiAgICAgYXR0cmlidXRlVmFsdWVzOihOU0FycmF5ICopdmFsdWVzCiAg
ICAgICAgbG9hZE1hbnVhbGx5OihCT09MKWxvYWRNYW51YWxseQotICAgICAgICAgICAgZWxlbWVu
dDooUGFzc1JlZlB0cjxXZWJDb3JlOjpIVE1MUGx1Z0luRWxlbWVudD4pZWxlbWVudDsKKyAgICAg
ICAgICAgIGVsZW1lbnQ6KFJlZlB0cjxXZWJDb3JlOjpIVE1MUGx1Z0luRWxlbWVudD4mJillbGVt
ZW50OwogCiAtICh2b2lkKXBsdWdpbkhvc3REaWVkOwogLSAoQ0FMYXllciAqKXBsdWdpbkxheWVy
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvUGx1Z2lucy9Ib3N0ZWQvV2ViSG9zdGVk
TmV0c2NhcGVQbHVnaW5WaWV3Lm1tIGIvU291cmNlL1dlYktpdC9tYWMvUGx1Z2lucy9Ib3N0ZWQv
V2ViSG9zdGVkTmV0c2NhcGVQbHVnaW5WaWV3Lm1tCmluZGV4IDI1ODg5YjdhMTBlOGMyZWNiMWI2
MGQ0OWQ4NjI1YTU5N2YwMzQ3MjMuLjllMjA0NGUyNmUxMzkwMjFlYjhjYTYzMzYyNTVmMmM4MzNj
MWI4YjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1BsdWdpbnMvSG9zdGVkL1dlYkhv
c3RlZE5ldHNjYXBlUGx1Z2luVmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9QbHVnaW5z
L0hvc3RlZC9XZWJIb3N0ZWROZXRzY2FwZVBsdWdpblZpZXcubW0KQEAgLTg3LDkgKzg3LDkgQEAg
LSAoaWQpaW5pdFdpdGhGcmFtZTooTlNSZWN0KWZyYW1lCiAgICAgICBhdHRyaWJ1dGVLZXlzOihO
U0FycmF5ICopa2V5cwogICAgIGF0dHJpYnV0ZVZhbHVlczooTlNBcnJheSAqKXZhbHVlcwogICAg
ICAgIGxvYWRNYW51YWxseTooQk9PTClsb2FkTWFudWFsbHkKLSAgICAgICAgICAgIGVsZW1lbnQ6
KFBhc3NSZWZQdHI8V2ViQ29yZTo6SFRNTFBsdWdJbkVsZW1lbnQ+KWVsZW1lbnQKKyAgICAgICAg
ICAgIGVsZW1lbnQ6KFJlZlB0cjxXZWJDb3JlOjpIVE1MUGx1Z0luRWxlbWVudD4mJillbGVtZW50
CiB7Ci0gICAgc2VsZiA9IFtzdXBlciBpbml0V2l0aEZyYW1lOmZyYW1lIHBsdWdpblBhY2thZ2U6
cGx1Z2luUGFja2FnZSBVUkw6VVJMIGJhc2VVUkw6YmFzZVVSTCBNSU1FVHlwZTpNSU1FIGF0dHJp
YnV0ZUtleXM6a2V5cyBhdHRyaWJ1dGVWYWx1ZXM6dmFsdWVzIGxvYWRNYW51YWxseTpsb2FkTWFu
dWFsbHkgZWxlbWVudDplbGVtZW50XTsKKyAgICBzZWxmID0gW3N1cGVyIGluaXRXaXRoRnJhbWU6
ZnJhbWUgcGx1Z2luUGFja2FnZTpwbHVnaW5QYWNrYWdlIFVSTDpVUkwgYmFzZVVSTDpiYXNlVVJM
IE1JTUVUeXBlOk1JTUUgYXR0cmlidXRlS2V5czprZXlzIGF0dHJpYnV0ZVZhbHVlczp2YWx1ZXMg
bG9hZE1hbnVhbGx5OmxvYWRNYW51YWxseSBlbGVtZW50OldURk1vdmUoZWxlbWVudCldOwogICAg
IGlmICghc2VsZikKICAgICAgICAgcmV0dXJuIG5pbDsKICAgICAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvbWFjL1BsdWdpbnMvV2ViQmFzZU5ldHNjYXBlUGx1Z2luVmlldy5oIGIvU291cmNl
L1dlYktpdC9tYWMvUGx1Z2lucy9XZWJCYXNlTmV0c2NhcGVQbHVnaW5WaWV3LmgKaW5kZXggMjQ5
OWIzZDk5NzJmNWQ1MDk1YzhhZjZhODBmZDVmY2VhYzY1MjRiMC4uY2YwNDg1OGI1OTZlOTNhN2Zk
OWM4MzBhMWY3MWE0N2EyOTRmYjNjYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvUGx1
Z2lucy9XZWJCYXNlTmV0c2NhcGVQbHVnaW5WaWV3LmgKKysrIGIvU291cmNlL1dlYktpdC9tYWMv
UGx1Z2lucy9XZWJCYXNlTmV0c2NhcGVQbHVnaW5WaWV3LmgKQEAgLTMxLDcgKzMxLDYgQEAKIAog
I2ltcG9ydCAiV2ViTmV0c2NhcGVQbHVnaW5QYWNrYWdlLmgiCiAjaW1wb3J0IDx3dGYvRm9yd2Fy
ZC5oPgotI2ltcG9ydCA8d3RmL1Bhc3NSZWZQdHIuaD4KICNpbXBvcnQgPHd0Zi9SZWZQdHIuaD4K
ICNpbXBvcnQgPHd0Zi9SZXRhaW5QdHIuaD4KIApAQCAtNzgsNyArNzcsNyBAQCBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAgICAgICBhdHRyaWJ1dGVLZXlzOihOU0FycmF5ICopa2V5cwogICAgIGF0dHJp
YnV0ZVZhbHVlczooTlNBcnJheSAqKXZhbHVlcwogICAgICAgIGxvYWRNYW51YWxseTooQk9PTCls
b2FkTWFudWFsbHkKLSAgICAgICAgICAgIGVsZW1lbnQ6KFBhc3NSZWZQdHI8V2ViQ29yZTo6SFRN
TFBsdWdJbkVsZW1lbnQ+KWVsZW1lbnQ7CisgICAgICAgICAgICBlbGVtZW50OihSZWZQdHI8V2Vi
Q29yZTo6SFRNTFBsdWdJbkVsZW1lbnQ+JiYpZWxlbWVudDsKIAogLSAoV2ViTmV0c2NhcGVQbHVn
aW5QYWNrYWdlICopcGx1Z2luUGFja2FnZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9t
YWMvUGx1Z2lucy9XZWJCYXNlTmV0c2NhcGVQbHVnaW5WaWV3Lm1tIGIvU291cmNlL1dlYktpdC9t
YWMvUGx1Z2lucy9XZWJCYXNlTmV0c2NhcGVQbHVnaW5WaWV3Lm1tCmluZGV4IDFlN2E2OWU2ZWQ2
YjdkNWM1NjZiNjFjZmU4NWMzYmFlOWZjZDRiZDIuLjIxZjkwNDVlZjM3NTc4MDc4ZDRjZDdiMTk4
OWQxOWNjMzlhMTU4YTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1BsdWdpbnMvV2Vi
QmFzZU5ldHNjYXBlUGx1Z2luVmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9QbHVnaW5z
L1dlYkJhc2VOZXRzY2FwZVBsdWdpblZpZXcubW0KQEAgLTg0LDE0ICs4NCwxNCBAQCAtIChpZClp
bml0V2l0aEZyYW1lOihOU1JlY3QpZnJhbWUKICAgICAgIGF0dHJpYnV0ZUtleXM6KE5TQXJyYXkg
KilrZXlzCiAgICAgYXR0cmlidXRlVmFsdWVzOihOU0FycmF5ICopdmFsdWVzCiAgICAgICAgbG9h
ZE1hbnVhbGx5OihCT09MKWxvYWRNYW51YWxseQotICAgICAgICAgICAgZWxlbWVudDooUGFzc1Jl
ZlB0cjxXZWJDb3JlOjpIVE1MUGx1Z0luRWxlbWVudD4pZWxlbWVudAorICAgICAgICAgICAgZWxl
bWVudDooUmVmUHRyPFdlYkNvcmU6OkhUTUxQbHVnSW5FbGVtZW50PiYmKWVsZW1lbnQKIHsKICAg
ICBzZWxmID0gW3N1cGVyIGluaXRXaXRoRnJhbWU6ZnJhbWVdOwogICAgIGlmICghc2VsZikKICAg
ICAgICAgcmV0dXJuIG5pbDsKICAgICAKICAgICBfcGx1Z2luUGFja2FnZSA9IHBsdWdpblBhY2th
Z2U7Ci0gICAgX2VsZW1lbnQgPSBlbGVtZW50OworICAgIF9lbGVtZW50ID0gV1RGTW92ZShlbGVt
ZW50KTsKICAgICBfc291cmNlVVJMID0gYWRvcHROUyhbVVJMIGNvcHldKTsKICAgICBfYmFzZVVS
TCA9IGFkb3B0TlMoW2Jhc2VVUkwgY29weV0pOwogICAgIF9NSU1FVHlwZSA9IGFkb3B0TlMoW01J
TUUgY29weV0pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvUGx1Z2lucy9XZWJOZXRz
Y2FwZVBsdWdpblN0cmVhbS5oIGIvU291cmNlL1dlYktpdC9tYWMvUGx1Z2lucy9XZWJOZXRzY2Fw
ZVBsdWdpblN0cmVhbS5oCmluZGV4IGQxMjkxYTY4Y2FiZGYwZGEyOTg3MjRkNDA0OGRhZWQ4YWQ1
NTg2ZDguLmJmNDM0MTUyNzViNGE2ZjIzMzFlMWQxZDVhN2NlY2ZiYTA4ZjI0NDAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvbWFjL1BsdWdpbnMvV2ViTmV0c2NhcGVQbHVnaW5TdHJlYW0uaAor
KysgYi9Tb3VyY2UvV2ViS2l0L21hYy9QbHVnaW5zL1dlYk5ldHNjYXBlUGx1Z2luU3RyZWFtLmgK
QEAgLTMyLDcgKzMyLDcgQEAKICNpbXBvcnQgPFdlYkNvcmUvVGltZXIuaD4KICNpbXBvcnQgPFdl
YkNvcmUvTmV0c2NhcGVQbHVnSW5TdHJlYW1Mb2FkZXIuaD4KICNpbXBvcnQgPFdlYktpdExlZ2Fj
eS9ucGZ1bmN0aW9ucy5oPgotI2ltcG9ydCA8d3RmL1Bhc3NSZWZQdHIuaD4KKyNpbXBvcnQgPHd0
Zi9SZWYuaD4KICNpbXBvcnQgPHd0Zi9SZWZDb3VudGVkLmg+CiAjaW1wb3J0IDx3dGYvUmVmUHRy
Lmg+CiAjaW1wb3J0IDx3dGYvUmV0YWluUHRyLmg+CkBAIC01MiwxMyArNTIsMTMgQEAgY2xhc3Mg
V2ViTmV0c2NhcGVQbHVnaW5TdHJlYW0gOiBwdWJsaWMgUmVmQ291bnRlZDxXZWJOZXRzY2FwZVBs
dWdpblN0cmVhbT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICwgcHJpdmF0ZSBXZWJD
b3JlOjpOZXRzY2FwZVBsdWdJblN0cmVhbUxvYWRlckNsaWVudAogewogcHVibGljOgotICAgIHN0
YXRpYyBQYXNzUmVmUHRyPFdlYk5ldHNjYXBlUGx1Z2luU3RyZWFtPiBjcmVhdGUoTlNVUkxSZXF1
ZXN0ICpyZXF1ZXN0LCBOUFAgcGx1Z2luLCBib29sIHNlbmROb3RpZmljYXRpb24sIHZvaWQqIG5v
dGlmeURhdGEpCisgICAgc3RhdGljIFJlZjxXZWJOZXRzY2FwZVBsdWdpblN0cmVhbT4gY3JlYXRl
KE5TVVJMUmVxdWVzdCAqcmVxdWVzdCwgTlBQIHBsdWdpbiwgYm9vbCBzZW5kTm90aWZpY2F0aW9u
LCB2b2lkKiBub3RpZnlEYXRhKQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBX
ZWJOZXRzY2FwZVBsdWdpblN0cmVhbShyZXF1ZXN0LCBwbHVnaW4sIHNlbmROb3RpZmljYXRpb24s
IG5vdGlmeURhdGEpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgV2ViTmV0c2NhcGVQ
bHVnaW5TdHJlYW0ocmVxdWVzdCwgcGx1Z2luLCBzZW5kTm90aWZpY2F0aW9uLCBub3RpZnlEYXRh
KSk7CiAgICAgfQotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFdlYk5ldHNjYXBlUGx1Z2luU3RyZWFt
PiBjcmVhdGUoV2ViQ29yZTo6RnJhbWVMb2FkZXIqIGZyYW1lTG9hZGVyKQorICAgIHN0YXRpYyBS
ZWY8V2ViTmV0c2NhcGVQbHVnaW5TdHJlYW0+IGNyZWF0ZShXZWJDb3JlOjpGcmFtZUxvYWRlciog
ZnJhbWVMb2FkZXIpCiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IFdlYk5ldHNj
YXBlUGx1Z2luU3RyZWFtKGZyYW1lTG9hZGVyKSk7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigq
bmV3IFdlYk5ldHNjYXBlUGx1Z2luU3RyZWFtKGZyYW1lTG9hZGVyKSk7CiAgICAgfQogICAgIHZp
cnR1YWwgfldlYk5ldHNjYXBlUGx1Z2luU3RyZWFtKCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvbWFjL1BsdWdpbnMvV2ViTmV0c2NhcGVQbHVnaW5WaWV3LmggYi9Tb3VyY2UvV2ViS2l0
L21hYy9QbHVnaW5zL1dlYk5ldHNjYXBlUGx1Z2luVmlldy5oCmluZGV4IGQwOGZmZmFlYzAyODY2
MDM2NmNlODg0NjAxZmI0NTAwYWQzZTA2YWYuLjVlNjUzMmZjZGRmZmM3M2M3OGNiYTk0MmIzNmFi
MjAzZjU3NWM3ZTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1BsdWdpbnMvV2ViTmV0
c2NhcGVQbHVnaW5WaWV3LmgKKysrIGIvU291cmNlL1dlYktpdC9tYWMvUGx1Z2lucy9XZWJOZXRz
Y2FwZVBsdWdpblZpZXcuaApAQCAtMTEwLDcgKzExMCw3IEBAIHR5cGVkZWYgdW5pb24gUGx1Z2lu
UG9ydCB7CiAgICAgICBhdHRyaWJ1dGVLZXlzOihOU0FycmF5ICopa2V5cwogICAgIGF0dHJpYnV0
ZVZhbHVlczooTlNBcnJheSAqKXZhbHVlcwogICAgICAgIGxvYWRNYW51YWxseTooQk9PTClsb2Fk
TWFudWFsbHkKLSAgICAgICAgICAgIGVsZW1lbnQ6KFBhc3NSZWZQdHI8V2ViQ29yZTo6SFRNTFBs
dWdJbkVsZW1lbnQ+KWVsZW1lbnQ7CisgICAgICAgICAgICBlbGVtZW50OihSZWZQdHI8V2ViQ29y
ZTo6SFRNTFBsdWdJbkVsZW1lbnQ+JiYpZWxlbWVudDsKIAogCiAtIChOUFApcGx1Z2luOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvUGx1Z2lucy9XZWJOZXRzY2FwZVBsdWdpblZpZXcu
bW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9QbHVnaW5zL1dlYk5ldHNjYXBlUGx1Z2luVmlldy5tbQpp
bmRleCAwMTkzZTQwZmU2ZGUxNjNmNjAxYzA4MjVkZjg0M2YzZWI4Mjk1NGZiLi5lNzMyMDUyM2Qw
Y2U2MzFiMThmZWI1NWVmNzMwOGNlMGQxZTk0NDM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L21hYy9QbHVnaW5zL1dlYk5ldHNjYXBlUGx1Z2luVmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0
L21hYy9QbHVnaW5zL1dlYk5ldHNjYXBlUGx1Z2luVmlldy5tbQpAQCAtMTI1Niw5ICsxMjU2LDkg
QEAgLSAoaWQpaW5pdFdpdGhGcmFtZTooTlNSZWN0KWZyYW1lCiAgICAgICBhdHRyaWJ1dGVLZXlz
OihOU0FycmF5ICopa2V5cwogICAgIGF0dHJpYnV0ZVZhbHVlczooTlNBcnJheSAqKXZhbHVlcwog
ICAgICAgIGxvYWRNYW51YWxseTooQk9PTClsb2FkTWFudWFsbHkKLSAgICAgICAgICAgIGVsZW1l
bnQ6KFBhc3NSZWZQdHI8V2ViQ29yZTo6SFRNTFBsdWdJbkVsZW1lbnQ+KWVsZW1lbnQKKyAgICAg
ICAgICAgIGVsZW1lbnQ6KFJlZlB0cjxXZWJDb3JlOjpIVE1MUGx1Z0luRWxlbWVudD4mJillbGVt
ZW50CiB7Ci0gICAgc2VsZiA9IFtzdXBlciBpbml0V2l0aEZyYW1lOmZyYW1lIHBsdWdpblBhY2th
Z2U6cGx1Z2luUGFja2FnZSBVUkw6VVJMIGJhc2VVUkw6YmFzZVVSTCBNSU1FVHlwZTpNSU1FIGF0
dHJpYnV0ZUtleXM6a2V5cyBhdHRyaWJ1dGVWYWx1ZXM6dmFsdWVzIGxvYWRNYW51YWxseTpsb2Fk
TWFudWFsbHkgZWxlbWVudDplbGVtZW50XTsKKyAgICBzZWxmID0gW3N1cGVyIGluaXRXaXRoRnJh
bWU6ZnJhbWUgcGx1Z2luUGFja2FnZTpwbHVnaW5QYWNrYWdlIFVSTDpVUkwgYmFzZVVSTDpiYXNl
VVJMIE1JTUVUeXBlOk1JTUUgYXR0cmlidXRlS2V5czprZXlzIGF0dHJpYnV0ZVZhbHVlczp2YWx1
ZXMgbG9hZE1hbnVhbGx5OmxvYWRNYW51YWxseSBlbGVtZW50OldURk1vdmUoZWxlbWVudCldOwog
ICAgIGlmICghc2VsZikKICAgICAgICAgcmV0dXJuIG5pbDsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lm1tIGIvU291cmNlL1dl
YktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lm1tCmluZGV4IDFmNjg3ZjIz
Mjk0ZTQyODcyNTJmZThjMmJjNjdkZDg3Nzk1Njg4ZmUuLjIxNzU3NTJjZmQ5NDUxZDY2NDIwNDg2
MDA1ZjQ3MGNlYzQyYzVjZTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVT
dXBwb3J0L1dlYkNocm9tZUNsaWVudC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3Jl
U3VwcG9ydC9XZWJDaHJvbWVDbGllbnQubW0KQEAgLTgzLDcgKzgzLDcgQEAKICNpbXBvcnQgPFdl
YkNvcmUvV2lkZ2V0Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL1dpbmRvd0ZlYXR1cmVzLmg+CiAjaW1w
b3J0IDx3dGYvQmxvY2tPYmpDRXhjZXB0aW9ucy5oPgotI2ltcG9ydCA8d3RmL1Bhc3NSZWZQdHIu
aD4KKyNpbXBvcnQgPHd0Zi9SZWZQdHIuaD4KICNpbXBvcnQgPHd0Zi9WZWN0b3IuaD4KICNpbXBv
cnQgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21h
Yy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQubW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9X
ZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQubW0KaW5kZXggMjQ5Zjk1MGE1ODU5OGVkOWM3
MzU5MjQ3Y2RlNGFmNjBmNTg4ODFlNy4uMjAxMTk1MjM3Mjg2MjQ5ODUzOWRmNTllZjY2YTJjMmFi
NDk3MDIyYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2Vi
RWRpdG9yQ2xpZW50Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dl
YkVkaXRvckNsaWVudC5tbQpAQCAtNzgsNyArNzgsNyBAQAogI2ltcG9ydCA8V2ViQ29yZS9XZWJD
b3JlT2JqQ0V4dHJhcy5oPgogI2ltcG9ydCA8cnVudGltZS9Jbml0aWFsaXplVGhyZWFkaW5nLmg+
CiAjaW1wb3J0IDx3dGYvTWFpblRocmVhZC5oPgotI2ltcG9ydCA8d3RmL1Bhc3NSZWZQdHIuaD4K
KyNpbXBvcnQgPHd0Zi9SZWZQdHIuaD4KICNpbXBvcnQgPHd0Zi9SdW5Mb29wLmg+CiAjaW1wb3J0
IDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMv
V2ViQ29yZVN1cHBvcnQvV2ViTm90aWZpY2F0aW9uQ2xpZW50Lm1tIGIvU291cmNlL1dlYktpdC9t
YWMvV2ViQ29yZVN1cHBvcnQvV2ViTm90aWZpY2F0aW9uQ2xpZW50Lm1tCmluZGV4IDRmYTBkNDE5
OGE1YjI4MDYzYmVhNGE4OGU1YjQ0NmU5YzkzOWI3MDQuLmFiOGE0ZjQyNTdlZWEwMjY4YTcxMDhi
ZjlhMjM5NmE1NDMyMTdhMWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVT
dXBwb3J0L1dlYk5vdGlmaWNhdGlvbkNsaWVudC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9X
ZWJDb3JlU3VwcG9ydC9XZWJOb3RpZmljYXRpb25DbGllbnQubW0KQEAgLTQ0LDcgKzQ0LDcgQEAg
QGludGVyZmFjZSBXZWJOb3RpZmljYXRpb25Qb2xpY3lMaXN0ZW5lciA6IE5TT2JqZWN0IDxXZWJB
bGxvd0RlbnlQb2xpY3lMaXN0ZW5lcj4KIHsKICAgICBSZWZQdHI8Tm90aWZpY2F0aW9uUGVybWlz
c2lvbkNhbGxiYWNrPiBfY2FsbGJhY2s7CiB9Ci0tIChpZClpbml0V2l0aENhbGxiYWNrOihQYXNz
UmVmUHRyPE5vdGlmaWNhdGlvblBlcm1pc3Npb25DYWxsYmFjaz4pY2FsbGJhY2s7CistIChpZClp
bml0V2l0aENhbGxiYWNrOihSZWZQdHI8Tm90aWZpY2F0aW9uUGVybWlzc2lvbkNhbGxiYWNrPiYm
KWNhbGxiYWNrOwogQGVuZAogI2VuZGlmCiAKQEAgLTE3Nyw3ICsxNzcsNyBAQCBib29sIFdlYk5v
dGlmaWNhdGlvbkNsaWVudDo6aGFzUGVuZGluZ1Blcm1pc3Npb25SZXF1ZXN0cyhTY3JpcHRFeGVj
dXRpb25Db250ZXh0Kgogdm9pZCBXZWJOb3RpZmljYXRpb25DbGllbnQ6OnJlcXVlc3RQZXJtaXNz
aW9uKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIFJlZlB0cjxOb3RpZmljYXRpb25Q
ZXJtaXNzaW9uQ2FsbGJhY2s+JiYgY2FsbGJhY2spCiB7CiAgICAgQkVHSU5fQkxPQ0tfT0JKQ19F
WENFUFRJT05TOwotICAgIFdlYk5vdGlmaWNhdGlvblBvbGljeUxpc3RlbmVyICpsaXN0ZW5lciA9
IFtbV2ViTm90aWZpY2F0aW9uUG9saWN5TGlzdGVuZXIgYWxsb2NdIGluaXRXaXRoQ2FsbGJhY2s6
Y2FsbGJhY2tdOworICAgIFdlYk5vdGlmaWNhdGlvblBvbGljeUxpc3RlbmVyICpsaXN0ZW5lciA9
IFtbV2ViTm90aWZpY2F0aW9uUG9saWN5TGlzdGVuZXIgYWxsb2NdIGluaXRXaXRoQ2FsbGJhY2s6
V1RGTW92ZShjYWxsYmFjayldOwogICAgIHJlcXVlc3RQZXJtaXNzaW9uKGNvbnRleHQsIGxpc3Rl
bmVyKTsKICAgICBbbGlzdGVuZXIgcmVsZWFzZV07CiAgICAgRU5EX0JMT0NLX09CSkNfRVhDRVBU
SU9OUzsKQEAgLTIxOSwxMiArMjE5LDEyIEBAIHVpbnQ2NF90IFdlYk5vdGlmaWNhdGlvbkNsaWVu
dDo6bm90aWZpY2F0aW9uSURGb3JUZXN0aW5nKFdlYkNvcmU6Ok5vdGlmaWNhdGlvbioKIAogQGlt
cGxlbWVudGF0aW9uIFdlYk5vdGlmaWNhdGlvblBvbGljeUxpc3RlbmVyCiAKLS0gKGlkKWluaXRX
aXRoQ2FsbGJhY2s6KFBhc3NSZWZQdHI8Tm90aWZpY2F0aW9uUGVybWlzc2lvbkNhbGxiYWNrPilj
YWxsYmFjaworLSAoaWQpaW5pdFdpdGhDYWxsYmFjazooUmVmUHRyPE5vdGlmaWNhdGlvblBlcm1p
c3Npb25DYWxsYmFjaz4mJiljYWxsYmFjawogewogICAgIGlmICghKHNlbGYgPSBbc3VwZXIgaW5p
dF0pKQogICAgICAgICByZXR1cm4gbmlsOwogCi0gICAgX2NhbGxiYWNrID0gY2FsbGJhY2s7Cisg
ICAgX2NhbGxiYWNrID0gV1RGTW92ZShjYWxsYmFjayk7CiAgICAgcmV0dXJuIHNlbGY7CiB9CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYk9wZW5QYW5l
bFJlc3VsdExpc3RlbmVyLm1tIGIvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2Vi
T3BlblBhbmVsUmVzdWx0TGlzdGVuZXIubW0KaW5kZXggOGIyNTIwOTA3MDNhZTQ3ZDdiYmFmYWE2
NWIzMjZmZWVmY2MzMDQ3Yi4uZTljM2JmZWQxNWY4YmVkOGVkMjA3MTk3YjI1MjAzZDU4MzRiYjFj
YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViT3BlblBh
bmVsUmVzdWx0TGlzdGVuZXIubW0KKysrIGIvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBv
cnQvV2ViT3BlblBhbmVsUmVzdWx0TGlzdGVuZXIubW0KQEAgLTI2LDcgKzI2LDcgQEAKICNpbXBv
cnQgIldlYk9wZW5QYW5lbFJlc3VsdExpc3RlbmVyLmgiCiAKICNpbXBvcnQgPFdlYkNvcmUvRmls
ZUNob29zZXIuaD4KLSNpbXBvcnQgPHd0Zi9QYXNzUmVmUHRyLmg+CisjaW1wb3J0IDx3dGYvUmVm
UHRyLmg+CiAKICNpZiBQTEFURk9STShJT1MpCiAjaW1wb3J0IDxXZWJDb3JlL0ljb24uaD4KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYlVzZXJNZWRpYUNs
aWVudC5tbSBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYlVzZXJNZWRpYUNs
aWVudC5tbQppbmRleCAxYjRjODI4MTcxODZiNDVjMjUyYTNmYjM3ODBhZjlhZTViODE3Mjk1Li4w
MTlkMTFlMDUwNmU2ZTVlOTIxM2U4NTBjZjA5Y2Q2MzlhNDIzY2RmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJVc2VyTWVkaWFDbGllbnQubW0KKysrIGIv
U291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViVXNlck1lZGlhQ2xpZW50Lm1tCkBA
IC00OCw3ICs0OCw3IEBAIEBpbnRlcmZhY2UgV2ViVXNlck1lZGlhUG9saWN5TGlzdGVuZXIgOiBO
U09iamVjdCA8V2ViQWxsb3dEZW55UG9saWN5TGlzdGVuZXI+CiB7CiAgICAgUmVmUHRyPFVzZXJN
ZWRpYVJlcXVlc3Q+IF9yZXF1ZXN0OwogfQotLSAoaWQpaW5pdFdpdGhVc2VyTWVkaWFSZXF1ZXN0
OihQYXNzUmVmUHRyPFVzZXJNZWRpYVJlcXVlc3Q+KXJlcXVlc3Q7CistIChpZClpbml0V2l0aFVz
ZXJNZWRpYVJlcXVlc3Q6KFJlZjxVc2VyTWVkaWFSZXF1ZXN0PiYmKXJlcXVlc3Q7CiAtICh2b2lk
KWNhbmNlbFVzZXJNZWRpYUFjY2Vzc1JlcXVlc3Q7CiAtICh2b2lkKWRlbnk7CiBAZW5kCkBAIC01
Niw3ICs1Niw3IEBAIEBlbmQKIEBpbnRlcmZhY2UgV2ViVXNlck1lZGlhUG9saWN5Q2hlY2tlckxp
c3RlbmVyIDogTlNPYmplY3QgPFdlYkFsbG93RGVueVBvbGljeUxpc3RlbmVyPiB7CiAgICAgUmVm
UHRyPE1lZGlhRGV2aWNlc0VudW1lcmF0aW9uUmVxdWVzdD4gX3JlcXVlc3Q7CiB9Ci0tIChpZClp
bml0V2l0aE1lZGlhRGV2aWNlc0VudW1lcmF0aW9uUmVxdWVzdDooUGFzc1JlZlB0cjxNZWRpYURl
dmljZXNFbnVtZXJhdGlvblJlcXVlc3Q+KXJlcXVlc3Q7CistIChpZClpbml0V2l0aE1lZGlhRGV2
aWNlc0VudW1lcmF0aW9uUmVxdWVzdDooUmVmPE1lZGlhRGV2aWNlc0VudW1lcmF0aW9uUmVxdWVz
dD4mJilyZXF1ZXN0OwogLSAodm9pZCljYW5jZWxNZWRpYURldmljZXNFbnVtZXJhdGlvblJlcXVl
c3Q7CiAtICh2b2lkKWRlbnk7CiBAZW5kCkBAIC0xNDEsNyArMTQxLDcgQEAgdm9pZCBXZWJVc2Vy
TWVkaWFDbGllbnQ6OnJlcXVlc3RVc2VyTWVkaWFBY2Nlc3MoVXNlck1lZGlhUmVxdWVzdCYgcmVx
dWVzdCkKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIFdlYlVzZXJNZWRpYVBvbGljeUxp
c3RlbmVyICpsaXN0ZW5lciA9IFtbV2ViVXNlck1lZGlhUG9saWN5TGlzdGVuZXIgYWxsb2NdIGlu
aXRXaXRoVXNlck1lZGlhUmVxdWVzdDomcmVxdWVzdF07CisgICAgV2ViVXNlck1lZGlhUG9saWN5
TGlzdGVuZXIgKmxpc3RlbmVyID0gW1tXZWJVc2VyTWVkaWFQb2xpY3lMaXN0ZW5lciBhbGxvY10g
aW5pdFdpdGhVc2VyTWVkaWFSZXF1ZXN0OnJlcXVlc3RdOwogICAgIFdlYlNlY3VyaXR5T3JpZ2lu
ICp3ZWJPcmlnaW4gPSBbW1dlYlNlY3VyaXR5T3JpZ2luIGFsbG9jXSBfaW5pdFdpdGhXZWJDb3Jl
U2VjdXJpdHlPcmlnaW46cmVxdWVzdC51c2VyTWVkaWFEb2N1bWVudE9yaWdpbigpXTsKIAogICAg
IEFkZFJlcXVlc3RUb1JlcXVlc3RNYXAoJnJlcXVlc3QsIGxpc3RlbmVyKTsKQEAgLTE3NCw3ICsx
NzQsNyBAQCB2b2lkIFdlYlVzZXJNZWRpYUNsaWVudDo6ZW51bWVyYXRlTWVkaWFEZXZpY2VzKE1l
ZGlhRGV2aWNlc0VudW1lcmF0aW9uUmVxdWVzdCYgcgogICAgICAgICByZXR1cm47CiAgICAgfQog
Ci0gICAgV2ViVXNlck1lZGlhUG9saWN5Q2hlY2tlckxpc3RlbmVyICpsaXN0ZW5lciA9IFtbV2Vi
VXNlck1lZGlhUG9saWN5Q2hlY2tlckxpc3RlbmVyIGFsbG9jXSBpbml0V2l0aE1lZGlhRGV2aWNl
c0VudW1lcmF0aW9uUmVxdWVzdDomcmVxdWVzdF07CisgICAgV2ViVXNlck1lZGlhUG9saWN5Q2hl
Y2tlckxpc3RlbmVyICpsaXN0ZW5lciA9IFtbV2ViVXNlck1lZGlhUG9saWN5Q2hlY2tlckxpc3Rl
bmVyIGFsbG9jXSBpbml0V2l0aE1lZGlhRGV2aWNlc0VudW1lcmF0aW9uUmVxdWVzdDpyZXF1ZXN0
XTsKICAgICBXZWJTZWN1cml0eU9yaWdpbiAqd2ViT3JpZ2luID0gW1tXZWJTZWN1cml0eU9yaWdp
biBhbGxvY10gX2luaXRXaXRoV2ViQ29yZVNlY3VyaXR5T3JpZ2luOnJlcXVlc3QudXNlck1lZGlh
RG9jdW1lbnRPcmlnaW4oKV07CiAKICAgICBBZGRQZXJtaXNzaW9uQ2hlY2tUb01hcCgmcmVxdWVz
dCwgbGlzdGVuZXIpOwpAQCAtMTk5LDEzICsxOTksMTMgQEAgdm9pZCBXZWJVc2VyTWVkaWFDbGll
bnQ6OmNhbmNlbE1lZGlhRGV2aWNlc0VudW1lcmF0aW9uUmVxdWVzdChXZWJDb3JlOjpNZWRpYURl
dmkKIAogQGltcGxlbWVudGF0aW9uIFdlYlVzZXJNZWRpYVBvbGljeUxpc3RlbmVyCiAKLS0gKGlk
KWluaXRXaXRoVXNlck1lZGlhUmVxdWVzdDooUGFzc1JlZlB0cjxVc2VyTWVkaWFSZXF1ZXN0Pily
ZXF1ZXN0CistIChpZClpbml0V2l0aFVzZXJNZWRpYVJlcXVlc3Q6KFJlZjxVc2VyTWVkaWFSZXF1
ZXN0PiYmKXJlcXVlc3QKIHsKICNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQogICAgIGlmICghKHNl
bGYgPSBbc3VwZXIgaW5pdF0pKQogICAgICAgICByZXR1cm4gbmlsOwogCi0gICAgX3JlcXVlc3Qg
PSByZXF1ZXN0OworICAgIF9yZXF1ZXN0ID0gV1RGTW92ZShyZXF1ZXN0KTsKICAgICByZXR1cm4g
c2VsZjsKICNlbmRpZgogfQpAQCAtMjYxLDEzICsyNjEsMTMgQEAgQGVuZAogCiBAaW1wbGVtZW50
YXRpb24gV2ViVXNlck1lZGlhUG9saWN5Q2hlY2tlckxpc3RlbmVyCiAKLS0gKGlkKWluaXRXaXRo
TWVkaWFEZXZpY2VzRW51bWVyYXRpb25SZXF1ZXN0OihQYXNzUmVmUHRyPE1lZGlhRGV2aWNlc0Vu
dW1lcmF0aW9uUmVxdWVzdD4pcmVxdWVzdAorLSAoaWQpaW5pdFdpdGhNZWRpYURldmljZXNFbnVt
ZXJhdGlvblJlcXVlc3Q6KFJlZjxNZWRpYURldmljZXNFbnVtZXJhdGlvblJlcXVlc3Q+JiYpcmVx
dWVzdAogewogI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCiAgICAgaWYgKCEoc2VsZiA9IFtzdXBl
ciBpbml0XSkpCiAgICAgICAgIHJldHVybiBuaWw7CiAKLSAgICBfcmVxdWVzdCA9IHJlcXVlc3Q7
CisgICAgX3JlcXVlc3QgPSBXVEZNb3ZlKHJlcXVlc3QpOwogICAgIHJldHVybiBzZWxmOwogI2Vu
ZGlmCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkFyY2hpdmUu
bW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkFyY2hpdmUubW0KaW5kZXggZDEwNDRl
MWIwYTMxMWVlODIxNzE0YWIyOWQyYzkxMjcyOWJjMTI0Ni4uNzQ1Y2IzMGQ3ODlkNDY4NzA1NDFj
MjNkNTQ3NjZjYzNjNzNkNzAyYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmll
dy9XZWJBcmNoaXZlLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViQXJjaGl2
ZS5tbQpAQCAtNTgsOSArNTgsOSBAQCBAcHJpdmF0ZQogICAgIFJlZlB0cjxMZWdhY3lXZWJBcmNo
aXZlPiBjb3JlQXJjaGl2ZTsKIH0KIAotLSAoaW5zdGFuY2V0eXBlKWluaXRXaXRoQ29yZUFyY2hp
dmU6KFBhc3NSZWZQdHI8TGVnYWN5V2ViQXJjaGl2ZT4pY29yZUFyY2hpdmU7CistIChpbnN0YW5j
ZXR5cGUpaW5pdFdpdGhDb3JlQXJjaGl2ZTooUmVmPExlZ2FjeVdlYkFyY2hpdmU+JiYpY29yZUFy
Y2hpdmU7CiAtIChMZWdhY3lXZWJBcmNoaXZlKiljb3JlQXJjaGl2ZTsKLS0gKHZvaWQpc2V0Q29y
ZUFyY2hpdmU6KFBhc3NSZWZQdHI8TGVnYWN5V2ViQXJjaGl2ZT4pbmV3Q29yZUFyY2hpdmU7Cist
ICh2b2lkKXNldENvcmVBcmNoaXZlOihSZWY8TGVnYWN5V2ViQXJjaGl2ZT4mJiluZXdDb3JlQXJj
aGl2ZTsKIEBlbmQKIAogQGltcGxlbWVudGF0aW9uIFdlYkFyY2hpdmVQcml2YXRlCkBAIC04Mywx
NCArODMsMTQgQEAgLSAoaW5zdGFuY2V0eXBlKWluaXQKICAgICByZXR1cm4gc2VsZjsKIH0KIAot
LSAoaW5zdGFuY2V0eXBlKWluaXRXaXRoQ29yZUFyY2hpdmU6KFBhc3NSZWZQdHI8TGVnYWN5V2Vi
QXJjaGl2ZT4pX2NvcmVBcmNoaXZlCistIChpbnN0YW5jZXR5cGUpaW5pdFdpdGhDb3JlQXJjaGl2
ZTooUmVmPExlZ2FjeVdlYkFyY2hpdmU+JiYpX2NvcmVBcmNoaXZlCiB7CiAgICAgc2VsZiA9IFtz
dXBlciBpbml0XTsKICAgICBpZiAoIXNlbGYgfHwgIV9jb3JlQXJjaGl2ZSkgewogICAgICAgICBb
c2VsZiByZWxlYXNlXTsKICAgICAgICAgcmV0dXJuIG5pbDsKICAgICB9Ci0gICAgY29yZUFyY2hp
dmUgPSBfY29yZUFyY2hpdmU7CisgICAgY29yZUFyY2hpdmUgPSBXVEZNb3ZlKF9jb3JlQXJjaGl2
ZSk7CiAgICAgcmV0dXJuIHNlbGY7CiB9CiAKQEAgLTk5LDExICs5OSwxMCBAQCAtIChMZWdhY3lX
ZWJBcmNoaXZlKiljb3JlQXJjaGl2ZQogICAgIHJldHVybiBjb3JlQXJjaGl2ZS5nZXQoKTsKIH0K
IAotLSAodm9pZClzZXRDb3JlQXJjaGl2ZTooUGFzc1JlZlB0cjxMZWdhY3lXZWJBcmNoaXZlPilu
ZXdDb3JlQXJjaGl2ZQorLSAodm9pZClzZXRDb3JlQXJjaGl2ZTooUmVmPExlZ2FjeVdlYkFyY2hp
dmU+JiYpbmV3Q29yZUFyY2hpdmUKIHsKICAgICBBU1NFUlQoY29yZUFyY2hpdmUpOwotICAgIEFT
U0VSVChuZXdDb3JlQXJjaGl2ZSk7Ci0gICAgY29yZUFyY2hpdmUgPSBuZXdDb3JlQXJjaGl2ZTsK
KyAgICBjb3JlQXJjaGl2ZSA9IFdURk1vdmUobmV3Q29yZUFyY2hpdmUpOwogfQogCiAtICh2b2lk
KWRlYWxsb2MKQEAgLTIwNiw3ICsyMDUsNyBAQCAtIChpbnN0YW5jZXR5cGUpaW5pdFdpdGhEYXRh
OihOU0RhdGEgKilkYXRhCiAgICAgICAgIHJldHVybiBuaWw7CiAgICAgfQogICAgICAgICAKLSAg
ICBbX3ByaXZhdGUgc2V0Q29yZUFyY2hpdmU6V1RGTW92ZShjb3JlQXJjaGl2ZSldOworICAgIFtf
cHJpdmF0ZSBzZXRDb3JlQXJjaGl2ZTpjb3JlQXJjaGl2ZS5yZWxlYXNlTm9uTnVsbCgpXTsKICAg
ICAgICAgCiAjaWYgIUxPR19ESVNBQkxFRAogICAgIENGQWJzb2x1dGVUaW1lIGVuZCA9IENGQWJz
b2x1dGVUaW1lR2V0Q3VycmVudCgpOwpAQCAtMzE3LDcgKzMxNiw3IEBAIC0gKE5TQXJyYXkgKilz
dWJmcmFtZUFyY2hpdmVzCiAgICAgICAgICAgICBhdXRvIG11dGFibGVBcnJheSA9IFtbTlNNdXRh
YmxlQXJyYXkgYWxsb2NdIGluaXRXaXRoQ2FwYWNpdHk6c3ViZnJhbWVBcmNoaXZlcy5zaXplKCld
OwogICAgICAgICAgICAgX3ByaXZhdGUtPmNhY2hlZFN1YmZyYW1lQXJjaGl2ZXMgPSBtdXRhYmxl
QXJyYXk7CiAgICAgICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgc3ViZnJhbWVBcmNo
aXZlcy5zaXplKCk7ICsraSkgewotICAgICAgICAgICAgICAgIFdlYkFyY2hpdmUgKmFyY2hpdmUg
PSBbW1dlYkFyY2hpdmUgYWxsb2NdIF9pbml0V2l0aENvcmVMZWdhY3lXZWJBcmNoaXZlOihMZWdh
Y3lXZWJBcmNoaXZlICopc3ViZnJhbWVBcmNoaXZlc1tpXS5wdHIoKV07CisgICAgICAgICAgICAg
ICAgV2ViQXJjaGl2ZSAqYXJjaGl2ZSA9IFtbV2ViQXJjaGl2ZSBhbGxvY10gX2luaXRXaXRoQ29y
ZUxlZ2FjeVdlYkFyY2hpdmU6c3RhdGljX2Nhc3Q8TGVnYWN5V2ViQXJjaGl2ZSAqPihzdWJmcmFt
ZUFyY2hpdmVzW2ldLmdldCgpKV07CiAgICAgICAgICAgICAgICAgW211dGFibGVBcnJheSBhZGRP
YmplY3Q6YXJjaGl2ZV07CiAgICAgICAgICAgICAgICAgW2FyY2hpdmUgcmVsZWFzZV07CiAgICAg
ICAgICAgICB9CkBAIC0zNTAsNyArMzQ5LDcgQEAgQGVuZAogCiBAaW1wbGVtZW50YXRpb24gV2Vi
QXJjaGl2ZSAoV2ViSW50ZXJuYWwpCiAKLS0gKGlkKV9pbml0V2l0aENvcmVMZWdhY3lXZWJBcmNo
aXZlOihQYXNzUmVmUHRyPFdlYkNvcmU6OkxlZ2FjeVdlYkFyY2hpdmU+KWNvcmVMZWdhY3lXZWJB
cmNoaXZlCistIChpZClfaW5pdFdpdGhDb3JlTGVnYWN5V2ViQXJjaGl2ZTooUmVmPFdlYkNvcmU6
OkxlZ2FjeVdlYkFyY2hpdmU+JiYpY29yZUxlZ2FjeVdlYkFyY2hpdmUKIHsKICAgICBXZWJDb3Jl
VGhyZWFkVmlvbGF0aW9uQ2hlY2tSb3VuZFR3bygpOwogCkBAIC0zNTgsNyArMzU3LDcgQEAgLSAo
aWQpX2luaXRXaXRoQ29yZUxlZ2FjeVdlYkFyY2hpdmU6KFBhc3NSZWZQdHI8V2ViQ29yZTo6TGVn
YWN5V2ViQXJjaGl2ZT4pY29yZUwKICAgICBpZiAoIXNlbGYpCiAgICAgICAgIHJldHVybiBuaWw7
CiAgICAgCi0gICAgX3ByaXZhdGUgPSBbW1dlYkFyY2hpdmVQcml2YXRlIGFsbG9jXSBpbml0V2l0
aENvcmVBcmNoaXZlOmNvcmVMZWdhY3lXZWJBcmNoaXZlXTsKKyAgICBfcHJpdmF0ZSA9IFtbV2Vi
QXJjaGl2ZVByaXZhdGUgYWxsb2NdIGluaXRXaXRoQ29yZUFyY2hpdmU6V1RGTW92ZShjb3JlTGVn
YWN5V2ViQXJjaGl2ZSldOwogICAgIGlmICghX3ByaXZhdGUpIHsKICAgICAgICAgW3NlbGYgcmVs
ZWFzZV07CiAgICAgICAgIHJldHVybiBuaWw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21h
Yy9XZWJWaWV3L1dlYkFyY2hpdmVJbnRlcm5hbC5oIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmll
dy9XZWJBcmNoaXZlSW50ZXJuYWwuaAppbmRleCA2YThhOGU5NjkyYmVhM2Y5MmZlZTk2OGVmZTg2
NTc5MzVkY2I5ZjNjLi43MmJkNTE5YjMzMWQyZjdmMTk3ZTlmNjkxZjE2NmI1OTBhNjk5NmNhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkFyY2hpdmVJbnRlcm5hbC5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViQXJjaGl2ZUludGVybmFsLmgKQEAg
LTM1LDcgKzM1LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBAaW50ZXJmYWNlIFdlYkFyY2hp
dmUgKFdlYkludGVybmFsKQogCi0tIChpZClfaW5pdFdpdGhDb3JlTGVnYWN5V2ViQXJjaGl2ZToo
V1RGOjpQYXNzUmVmUHRyPFdlYkNvcmU6OkxlZ2FjeVdlYkFyY2hpdmU+KWNvcmVMZWdhY3lXZWJB
cmNoaXZlOworLSAoaWQpX2luaXRXaXRoQ29yZUxlZ2FjeVdlYkFyY2hpdmU6KFdURjo6UmVmPFdl
YkNvcmU6OkxlZ2FjeVdlYkFyY2hpdmU+JiYpY29yZUxlZ2FjeVdlYkFyY2hpdmU7CiAtIChXZWJD
b3JlOjpMZWdhY3lXZWJBcmNoaXZlICopX2NvcmVMZWdhY3lXZWJBcmNoaXZlOwogCiBAZW5kCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkRhdGFTb3VyY2UubW0gYi9T
b3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkRhdGFTb3VyY2UubW0KaW5kZXggZGYzNjE3MzZi
Mjk4MTFjZDk1ZGNkYjhlMmYwYmQzNWM5NDZiNjYyOS4uZDM2YzVkNWEwYWFkNGFjYjBhYThjMDdh
Y2QxZDYxNTEzZDI3MDM5ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9X
ZWJEYXRhU291cmNlLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViRGF0YVNv
dXJjZS5tbQpAQCAtNzksMzAgKzc5LDI3IEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogY2xh
c3MgV2ViRGF0YVNvdXJjZVByaXZhdGUKIHsKIHB1YmxpYzoKLSAgICBXZWJEYXRhU291cmNlUHJp
dmF0ZShQYXNzUmVmUHRyPFdlYkRvY3VtZW50TG9hZGVyTWFjPiBsb2FkZXIpCi0gICAgICAgIDog
bG9hZGVyKGxvYWRlcikKKyAgICBXZWJEYXRhU291cmNlUHJpdmF0ZShSZWY8V2ViRG9jdW1lbnRM
b2FkZXJNYWM+JiYgbG9hZGVyKQorICAgICAgICA6IGxvYWRlcihXVEZNb3ZlKGxvYWRlcikpCiAg
ICAgICAgICwgcmVwcmVzZW50YXRpb25GaW5pc2hlZExvYWRpbmcoTk8pCiAgICAgICAgICwgaW5j
bHVkZWRJbldlYktpdFN0YXRpc3RpY3MoTk8pCiAjaWYgUExBVEZPUk0oSU9TKQogICAgICAgICAs
IF9kYXRhU291cmNlRGVsZWdhdGUobmlsKQogI2VuZGlmCiAgICAgewotICAgICAgICBBU1NFUlQo
dGhpcy0+bG9hZGVyKTsKICAgICB9CiAgICAgfldlYkRhdGFTb3VyY2VQcml2YXRlKCkKICAgICB7
Ci0gICAgICAgIGlmIChsb2FkZXIpIHsKLSAgICAgICAgICAgIC8vIFdlIG1pZ2h0IHJ1biBpbiB0
byBpbmZpbml0ZSByZWN1cnNpb24gaWYgd2UncmUgc3RvcHBpbmcgbG9hZGluZyBhcyB0aGUgcmVz
dWx0IG9mIGRldGFjaGluZyBmcm9tIHRoZSBmcmFtZS4KLSAgICAgICAgICAgIC8vIFRoZXJlZm9y
ZSwgRG9jdW1lbnRMb2FkZXI6OmRldGFjaEZyb21GcmFtZSgpIGRpZCBzb21lIHNtYXJ0IHRoaW5n
cyB0byBzdG9wIHRoZSByZWN1cnNpb24uCi0gICAgICAgICAgICAvLyBBcyBhIHJlc3VsdCBvZiBi
cmVha2luZyB0aGUgcmVzdXJzaW9uLCBEb2N1bWVudExvYWRlcjo6bV9zdWJyZXNvdXJjZUxvYWRl
cgotICAgICAgICAgICAgLy8gYW5kIERvY3VtZW50TG9hZGVyOjptX3BsdWdJblN0cmVhbUxvYWRl
cnMgbWlnaHQgbm90IGJlIGVtcHR5IGF0IHRoaXMgdGltZS4KLSAgICAgICAgICAgIC8vIFNlZSA8
cmRhcjovL3Byb2JsZW0vOTY3Mzg2Nj4gZm9yIG1vcmUgZGV0YWlscy4KLSAgICAgICAgICAgIEFT
U0VSVCghbG9hZGVyLT5pc0xvYWRpbmcoKSB8fCBsb2FkZXItPmlzU3RvcHBpbmcoKSk7Ci0gICAg
ICAgICAgICBsb2FkZXItPmRldGFjaERhdGFTb3VyY2UoKTsKLSAgICAgICAgfQorICAgICAgICAv
LyBXZSBtaWdodCBydW4gaW4gdG8gaW5maW5pdGUgcmVjdXJzaW9uIGlmIHdlJ3JlIHN0b3BwaW5n
IGxvYWRpbmcgYXMgdGhlIHJlc3VsdCBvZiBkZXRhY2hpbmcgZnJvbSB0aGUgZnJhbWUuCisgICAg
ICAgIC8vIFRoZXJlZm9yZSwgRG9jdW1lbnRMb2FkZXI6OmRldGFjaEZyb21GcmFtZSgpIGRpZCBz
b21lIHNtYXJ0IHRoaW5ncyB0byBzdG9wIHRoZSByZWN1cnNpb24uCisgICAgICAgIC8vIEFzIGEg
cmVzdWx0IG9mIGJyZWFraW5nIHRoZSByZXN1cnNpb24sIERvY3VtZW50TG9hZGVyOjptX3N1YnJl
c291cmNlTG9hZGVyCisgICAgICAgIC8vIGFuZCBEb2N1bWVudExvYWRlcjo6bV9wbHVnSW5TdHJl
YW1Mb2FkZXJzIG1pZ2h0IG5vdCBiZSBlbXB0eSBhdCB0aGlzIHRpbWUuCisgICAgICAgIC8vIFNl
ZSA8cmRhcjovL3Byb2JsZW0vOTY3Mzg2Nj4gZm9yIG1vcmUgZGV0YWlscy4KKyAgICAgICAgQVNT
RVJUKCFsb2FkZXItPmlzTG9hZGluZygpIHx8IGxvYWRlci0+aXNTdG9wcGluZygpKTsKKyAgICAg
ICAgbG9hZGVyLT5kZXRhY2hEYXRhU291cmNlKCk7CiAgICAgfQogCi0gICAgUmVmUHRyPFdlYkRv
Y3VtZW50TG9hZGVyTWFjPiBsb2FkZXI7CisgICAgUmVmPFdlYkRvY3VtZW50TG9hZGVyTWFjPiBs
b2FkZXI7CiAgICAgUmV0YWluUHRyPGlkPFdlYkRvY3VtZW50UmVwcmVzZW50YXRpb24+ID4gcmVw
cmVzZW50YXRpb247CiAgICAgQk9PTCByZXByZXNlbnRhdGlvbkZpbmlzaGVkTG9hZGluZzsKICAg
ICBCT09MIGluY2x1ZGVkSW5XZWJLaXRTdGF0aXN0aWNzOwpAQCAtNDA3LDE0ICs0MDQsMTMgQEAg
LSAoRG9jdW1lbnRMb2FkZXIqKV9kb2N1bWVudExvYWRlcgogICAgIHJldHVybiB0b1ByaXZhdGUo
X3ByaXZhdGUpLT5sb2FkZXIuZ2V0KCk7CiB9CiAKLS0gKGlkKV9pbml0V2l0aERvY3VtZW50TG9h
ZGVyOihQYXNzUmVmUHRyPFdlYkRvY3VtZW50TG9hZGVyTWFjPilsb2FkZXIKKy0gKGlkKV9pbml0
V2l0aERvY3VtZW50TG9hZGVyOihSZWY8V2ViRG9jdW1lbnRMb2FkZXJNYWM+JiYpbG9hZGVyCiB7
CiAgICAgc2VsZiA9IFtzdXBlciBpbml0XTsKICAgICBpZiAoIXNlbGYpCiAgICAgICAgIHJldHVy
biBuaWw7CiAKLSAgICBBU1NFUlQobG9hZGVyKTsKLSAgICBfcHJpdmF0ZSA9IHN0YXRpY19jYXN0
PHZvaWQqPihuZXcgV2ViRGF0YVNvdXJjZVByaXZhdGUobG9hZGVyKSk7CisgICAgX3ByaXZhdGUg
PSBzdGF0aWNfY2FzdDx2b2lkKj4obmV3IFdlYkRhdGFTb3VyY2VQcml2YXRlKFdURk1vdmUobG9h
ZGVyKSkpOwogICAgICAgICAKICAgICBMT0coTG9hZGluZywgImNyZWF0aW5nIGRhdGFzb3VyY2Ug
Zm9yICVAIiwgc3RhdGljX2Nhc3Q8TlNVUkwgKj4odG9Qcml2YXRlKF9wcml2YXRlKS0+bG9hZGVy
LT5yZXF1ZXN0KCkudXJsKCkpKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvV2Vi
Vmlldy9XZWJEYXRhU291cmNlSW50ZXJuYWwuaCBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcv
V2ViRGF0YVNvdXJjZUludGVybmFsLmgKaW5kZXggZGUxNjFjYmI1NjAwNzQwNWI1N2NmNGU5MDYw
YTg5NzU5NGQxYThkNC4uYjEwMWIxM2RjYzI1YjYxNTYzYjE4MDk1ZjM5ZDYxZGMzYzY3MmM2MiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJEYXRhU291cmNlSW50ZXJu
YWwuaAorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkRhdGFTb3VyY2VJbnRlcm5h
bC5oCkBAIC01MSw3ICs1MSw3IEBAIGNsYXNzIFdlYkRvY3VtZW50TG9hZGVyTWFjOwogLSAoRE9N
RG9jdW1lbnRGcmFnbWVudCAqKV9kb2N1bWVudEZyYWdtZW50V2l0aEFyY2hpdmU6KFdlYkFyY2hp
dmUgKilhcmNoaXZlOwogKyAoTlNNdXRhYmxlRGljdGlvbmFyeSAqKV9yZXBUeXBlc0FsbG93SW1h
Z2VUeXBlT21pc3Npb246KEJPT0wpYWxsb3dJbWFnZVR5cGVPbWlzc2lvbjsKIC0gKHZvaWQpX3Jl
cGxhY2VTZWxlY3Rpb25XaXRoQXJjaGl2ZTooV2ViQXJjaGl2ZSAqKWFyY2hpdmUgc2VsZWN0UmVw
bGFjZW1lbnQ6KEJPT0wpc2VsZWN0UmVwbGFjZW1lbnQ7Ci0tIChpZClfaW5pdFdpdGhEb2N1bWVu
dExvYWRlcjooUGFzc1JlZlB0cjxXZWJEb2N1bWVudExvYWRlck1hYz4pbG9hZGVyOworLSAoaWQp
X2luaXRXaXRoRG9jdW1lbnRMb2FkZXI6KFJlZjxXZWJEb2N1bWVudExvYWRlck1hYz4mJilsb2Fk
ZXI7CiAtICh2b2lkKV9maW5pc2hlZExvYWRpbmc7CiAtICh2b2lkKV9yZWNlaXZlZERhdGE6KE5T
RGF0YSAqKWRhdGE7CiAtICh2b2lkKV9yZXZlcnRUb1Byb3Zpc2lvbmFsU3RhdGU7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkRldmljZU9yaWVudGF0aW9uLm1tIGIv
U291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJEZXZpY2VPcmllbnRhdGlvbi5tbQppbmRleCAw
ZWVjMjM4ZDhjNTQ3YjVlYTZmNDU1NWI2ZTVkY2RiMmExMGY2OWJiLi5kMDg4OTU4OWRiMWJiNjNi
M2NhMmQ2NzY4OGNhZTkwZTU2YzA1NGYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9X
ZWJWaWV3L1dlYkRldmljZU9yaWVudGF0aW9uLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dl
YlZpZXcvV2ViRGV2aWNlT3JpZW50YXRpb24ubW0KQEAgLTI5LDEyICsyOSwxMiBAQCB1c2luZyBu
YW1lc3BhY2UgV2ViQ29yZTsKIAogQGltcGxlbWVudGF0aW9uIFdlYkRldmljZU9yaWVudGF0aW9u
SW50ZXJuYWwKIAotLSAoaWQpaW5pdFdpdGhDb3JlRGV2aWNlT3JpZW50YXRpb246KFBhc3NSZWZQ
dHI8RGV2aWNlT3JpZW50YXRpb25EYXRhPiljb3JlRGV2aWNlT3JpZW50YXRpb24KKy0gKGlkKWlu
aXRXaXRoQ29yZURldmljZU9yaWVudGF0aW9uOihSZWZQdHI8RGV2aWNlT3JpZW50YXRpb25EYXRh
PiYmKWNvcmVEZXZpY2VPcmllbnRhdGlvbgogewogICAgIHNlbGYgPSBbc3VwZXIgaW5pdF07CiAg
ICAgaWYgKCFzZWxmKQogICAgICAgICByZXR1cm4gbmlsOwotICAgIG1fb3JpZW50YXRpb24gPSBj
b3JlRGV2aWNlT3JpZW50YXRpb247CisgICAgbV9vcmllbnRhdGlvbiA9IFdURk1vdmUoY29yZURl
dmljZU9yaWVudGF0aW9uKTsKICAgICByZXR1cm4gc2VsZjsKIH0KIApAQCAtNDIsMTIgKzQyLDEy
IEBAIEBlbmQKIAogQGltcGxlbWVudGF0aW9uIFdlYkRldmljZU9yaWVudGF0aW9uIChJbnRlcm5h
bCkKIAotLSAoaWQpaW5pdFdpdGhDb3JlRGV2aWNlT3JpZW50YXRpb246KFBhc3NSZWZQdHI8V2Vi
Q29yZTo6RGV2aWNlT3JpZW50YXRpb25EYXRhPiljb3JlRGV2aWNlT3JpZW50YXRpb24KKy0gKGlk
KWluaXRXaXRoQ29yZURldmljZU9yaWVudGF0aW9uOihSZWZQdHI8V2ViQ29yZTo6RGV2aWNlT3Jp
ZW50YXRpb25EYXRhPiYmKWNvcmVEZXZpY2VPcmllbnRhdGlvbgogewogICAgIHNlbGYgPSBbc3Vw
ZXIgaW5pdF07CiAgICAgaWYgKCFzZWxmKQogICAgICAgICByZXR1cm4gbmlsOwotICAgIG1faW50
ZXJuYWwgPSBbW1dlYkRldmljZU9yaWVudGF0aW9uSW50ZXJuYWwgYWxsb2NdIGluaXRXaXRoQ29y
ZURldmljZU9yaWVudGF0aW9uOmNvcmVEZXZpY2VPcmllbnRhdGlvbl07CisgICAgbV9pbnRlcm5h
bCA9IFtbV2ViRGV2aWNlT3JpZW50YXRpb25JbnRlcm5hbCBhbGxvY10gaW5pdFdpdGhDb3JlRGV2
aWNlT3JpZW50YXRpb246V1RGTW92ZShjb3JlRGV2aWNlT3JpZW50YXRpb24pXTsKICAgICByZXR1
cm4gc2VsZjsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJE
ZXZpY2VPcmllbnRhdGlvbkludGVybmFsLmggYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dl
YkRldmljZU9yaWVudGF0aW9uSW50ZXJuYWwuaAppbmRleCA1ZGVkZDA4MGM3NmY0NDg1NDkyOTky
Zjk0NzdhOGVjYmE0MWRlZTllLi5mY2MzYmIzYzk5NjlhYTU1ZjhkMzU4MTZhNzEzNDBhZjViYTk2
Njg4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkRldmljZU9yaWVu
dGF0aW9uSW50ZXJuYWwuaAorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkRldmlj
ZU9yaWVudGF0aW9uSW50ZXJuYWwuaApAQCAtMzMsMTIgKzMzLDEyIEBACiAgICAgUmVmUHRyPFdl
YkNvcmU6OkRldmljZU9yaWVudGF0aW9uRGF0YT4gbV9vcmllbnRhdGlvbjsKIH0KIAotLSAoaWQp
aW5pdFdpdGhDb3JlRGV2aWNlT3JpZW50YXRpb246KFBhc3NSZWZQdHI8V2ViQ29yZTo6RGV2aWNl
T3JpZW50YXRpb25EYXRhPiljb3JlRGV2aWNlT3JpZW50YXRpb247CistIChpZClpbml0V2l0aENv
cmVEZXZpY2VPcmllbnRhdGlvbjooUmVmUHRyPFdlYkNvcmU6OkRldmljZU9yaWVudGF0aW9uRGF0
YT4mJiljb3JlRGV2aWNlT3JpZW50YXRpb247CiBAZW5kCiAKIEBpbnRlcmZhY2UgV2ViRGV2aWNl
T3JpZW50YXRpb24gKEludGVybmFsKQogCi0tIChpZClpbml0V2l0aENvcmVEZXZpY2VPcmllbnRh
dGlvbjooUGFzc1JlZlB0cjxXZWJDb3JlOjpEZXZpY2VPcmllbnRhdGlvbkRhdGE+KWNvcmVEZXZp
Y2VPcmllbnRhdGlvbjsKKy0gKGlkKWluaXRXaXRoQ29yZURldmljZU9yaWVudGF0aW9uOihSZWZQ
dHI8V2ViQ29yZTo6RGV2aWNlT3JpZW50YXRpb25EYXRhPiYmKWNvcmVEZXZpY2VPcmllbnRhdGlv
bjsKIAogQGVuZAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkZy
YW1lLm1tIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJGcmFtZS5tbQppbmRleCAzNjg1
ZTJjMDZmMDU2ZjU2MTE2Y2Y0ZTRiMzhmYTQxN2IzNjk2Y2QyLi43MDMyNjAwNzRlYzMzOWM4ODgy
MGI3OTUwY2ZiMTQ0ZWQ3NzRjZDg0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJW
aWV3L1dlYkZyYW1lLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViRnJhbWUu
bW0KQEAgLTc5MiwxNSArNzkyLDE1IEBAIC0gKE5TUmFuZ2UpX2NvbnZlcnRUb05TUmFuZ2U6KFJh
bmdlICopcmFuZ2UKICAgICByZXR1cm4gTlNNYWtlUmFuZ2UobG9jYXRpb24sIGxlbmd0aCk7CiB9
CiAKLS0gKFBhc3NSZWZQdHI8UmFuZ2U+KV9jb252ZXJ0VG9ET01SYW5nZTooTlNSYW5nZSluc3Jh
bmdlCistIChSZWZQdHI8UmFuZ2U+KV9jb252ZXJ0VG9ET01SYW5nZTooTlNSYW5nZSluc3Jhbmdl
CiB7CiAgICAgcmV0dXJuIFtzZWxmIF9jb252ZXJ0VG9ET01SYW5nZTpuc3JhbmdlIHJhbmdlSXNS
ZWxhdGl2ZVRvOldlYlJhbmdlSXNSZWxhdGl2ZVRvOjpFZGl0YWJsZVJvb3RdOwogfQogCi0tIChQ
YXNzUmVmUHRyPFJhbmdlPilfY29udmVydFRvRE9NUmFuZ2U6KE5TUmFuZ2UpbnNyYW5nZSByYW5n
ZUlzUmVsYXRpdmVUbzooV2ViUmFuZ2VJc1JlbGF0aXZlVG8pcmFuZ2VJc1JlbGF0aXZlVG8KKy0g
KFJlZlB0cjxSYW5nZT4pX2NvbnZlcnRUb0RPTVJhbmdlOihOU1JhbmdlKW5zcmFuZ2UgcmFuZ2VJ
c1JlbGF0aXZlVG86KFdlYlJhbmdlSXNSZWxhdGl2ZVRvKXJhbmdlSXNSZWxhdGl2ZVRvCiB7CiAg
ICAgaWYgKG5zcmFuZ2UubG9jYXRpb24gPiBJTlRfTUFYKQotICAgICAgICByZXR1cm4gMDsKKyAg
ICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgaWYgKG5zcmFuZ2UubGVuZ3RoID4gSU5UX01BWCB8
fCBuc3JhbmdlLmxvY2F0aW9uICsgbnNyYW5nZS5sZW5ndGggPiBJTlRfTUFYKQogICAgICAgICBu
c3JhbmdlLmxlbmd0aCA9IElOVF9NQVggLSBuc3JhbmdlLmxvY2F0aW9uOwogCkBAIC04MjIsMTEg
KzgyMiwxMSBAQCAtIChQYXNzUmVmUHRyPFJhbmdlPilfY29udmVydFRvRE9NUmFuZ2U6KE5TUmFu
Z2UpbnNyYW5nZSByYW5nZUlzUmVsYXRpdmVUbzooV2ViUgogICAgIGNvbnN0IFZpc2libGVTZWxl
Y3Rpb24mIHNlbGVjdGlvbiA9IF9wcml2YXRlLT5jb3JlRnJhbWUtPnNlbGVjdGlvbigpLnNlbGVj
dGlvbigpOwogICAgIFJlZlB0cjxSYW5nZT4gc2VsZWN0ZWRSYW5nZSA9IHNlbGVjdGlvbi50b05v
cm1hbGl6ZWRSYW5nZSgpOwogICAgIGlmICghc2VsZWN0ZWRSYW5nZSkKLSAgICAgICAgcmV0dXJu
IDA7CisgICAgICAgIHJldHVybiBudWxscHRyOwogCiAgICAgUmVmUHRyPFJhbmdlPiBwYXJhZ3Jh
cGhSYW5nZSA9IG1ha2VSYW5nZShzdGFydE9mUGFyYWdyYXBoKHNlbGVjdGlvbi52aXNpYmxlU3Rh
cnQoKSksIHNlbGVjdGlvbi52aXNpYmxlRW5kKCkpOwogICAgIGlmICghcGFyYWdyYXBoUmFuZ2Up
Ci0gICAgICAgIHJldHVybiAwOworICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAogICAgIENvbnRh
aW5lck5vZGUmIHJvb3ROb2RlID0gcGFyYWdyYXBoUmFuZ2UuZ2V0KCktPnN0YXJ0Q29udGFpbmVy
KCkudHJlZVNjb3BlKCkucm9vdE5vZGUoKTsKICAgICBpbnQgcGFyYWdyYXBoU3RhcnRJbmRleCA9
IFRleHRJdGVyYXRvcjo6cmFuZ2VMZW5ndGgoUmFuZ2U6OmNyZWF0ZShyb290Tm9kZS5kb2N1bWVu
dCgpLCAmcm9vdE5vZGUsIDAsICZwYXJhZ3JhcGhSYW5nZS0+c3RhcnRDb250YWluZXIoKSwgcGFy
YWdyYXBoUmFuZ2UtPnN0YXJ0T2Zmc2V0KCkpLnB0cigpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvbWFjL1dlYlZpZXcvV2ViRnJhbWVJbnRlcm5hbC5oIGIvU291cmNlL1dlYktpdC9tYWMv
V2ViVmlldy9XZWJGcmFtZUludGVybmFsLmgKaW5kZXggNWM3MmQyODdmYTU3NzA4OWNkNDQwZjA2
N2MxY2RhM2FjMWNmNjE5YS4uMjlhN2Q0ZTVjMzE0MWZlY2EwNzM2MmE1Y2U2ODE0ZTFkM2FiYzQy
ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJGcmFtZUludGVybmFs
LmgKKysrIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJGcmFtZUludGVybmFsLmgKQEAg
LTE2NCw4ICsxNjQsOCBAQCBXZWJWaWV3ICpnZXRXZWJWaWV3KFdlYkZyYW1lICp3ZWJGcmFtZSk7
CiAtIChET01SYW5nZSAqKV9yYW5nZUJ5QWx0ZXJpbmdDdXJyZW50U2VsZWN0aW9uOihXZWJDb3Jl
OjpGcmFtZVNlbGVjdGlvbjo6RUFsdGVyYXRpb24pYWx0ZXJhdGlvbiBkaXJlY3Rpb246KFdlYkNv
cmU6OlNlbGVjdGlvbkRpcmVjdGlvbilkaXJlY3Rpb24gZ3JhbnVsYXJpdHk6KFdlYkNvcmU6OlRl
eHRHcmFudWxhcml0eSlncmFudWxhcml0eTsKICNlbmRpZgogLSAoTlNSYW5nZSlfY29udmVydFRv
TlNSYW5nZTooV2ViQ29yZTo6UmFuZ2UqKXJhbmdlOwotLSAoUGFzc1JlZlB0cjxXZWJDb3JlOjpS
YW5nZT4pX2NvbnZlcnRUb0RPTVJhbmdlOihOU1JhbmdlKW5zcmFuZ2U7Ci0tIChQYXNzUmVmUHRy
PFdlYkNvcmU6OlJhbmdlPilfY29udmVydFRvRE9NUmFuZ2U6KE5TUmFuZ2UpbnNyYW5nZSByYW5n
ZUlzUmVsYXRpdmVUbzooV2ViUmFuZ2VJc1JlbGF0aXZlVG8pcmFuZ2VJc1JlbGF0aXZlVG87Cist
IChSZWZQdHI8V2ViQ29yZTo6UmFuZ2U+KV9jb252ZXJ0VG9ET01SYW5nZTooTlNSYW5nZSluc3Jh
bmdlOworLSAoUmVmUHRyPFdlYkNvcmU6OlJhbmdlPilfY29udmVydFRvRE9NUmFuZ2U6KE5TUmFu
Z2UpbnNyYW5nZSByYW5nZUlzUmVsYXRpdmVUbzooV2ViUmFuZ2VJc1JlbGF0aXZlVG8pcmFuZ2VJ
c1JlbGF0aXZlVG87CiAKIC0gKERPTURvY3VtZW50RnJhZ21lbnQgKilfZG9jdW1lbnRGcmFnbWVu
dFdpdGhNYXJrdXBTdHJpbmc6KE5TU3RyaW5nICopbWFya3VwU3RyaW5nIGJhc2VVUkxTdHJpbmc6
KE5TU3RyaW5nICopYmFzZVVSTFN0cmluZzsKIC0gKERPTURvY3VtZW50RnJhZ21lbnQgKilfZG9j
dW1lbnRGcmFnbWVudFdpdGhOb2Rlc0FzUGFyYWdyYXBoczooTlNBcnJheSAqKW5vZGVzOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJGdWxsU2NyZWVuQ29udHJvbGxl
ci5oIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJGdWxsU2NyZWVuQ29udHJvbGxlci5o
CmluZGV4IDQ5ODFhMjE4NzIwODZiY2NjNDlhM2U5NWIzZGYwYjY1NTU3YWE5YzEuLjYwZDk2ZTg0
N2FmZDFkYzRiYzk4NDM1N2FkOGRjMGYxMDdmZDUyNTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvbWFjL1dlYlZpZXcvV2ViRnVsbFNjcmVlbkNvbnRyb2xsZXIuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L21hYy9XZWJWaWV3L1dlYkZ1bGxTY3JlZW5Db250cm9sbGVyLmgKQEAgLTY3LDcgKzY3LDcg
QEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiAtIChCT09MKWlzRnVsbFNjcmVlbjsKIAotLSAodm9p
ZClzZXRFbGVtZW50OihQYXNzUmVmUHRyPFdlYkNvcmU6OkVsZW1lbnQ+KWVsZW1lbnQ7CistICh2
b2lkKXNldEVsZW1lbnQ6KFJlZlB0cjxXZWJDb3JlOjpFbGVtZW50PiYmKWVsZW1lbnQ7CiAtIChX
ZWJDb3JlOjpFbGVtZW50KillbGVtZW50OwogCiAtICh2b2lkKWVudGVyRnVsbFNjcmVlbjooTlNT
Y3JlZW4gKilzY3JlZW47CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dl
YkZ1bGxTY3JlZW5Db250cm9sbGVyLm1tIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJG
dWxsU2NyZWVuQ29udHJvbGxlci5tbQppbmRleCA0YmNmNDk5ZmUwMGZiZDlmODZjZDM4YmY0MTQ5
ZjQxYjViZDMwMzdiLi4xZGRmMTk3ZGM1NjFhMTdmMDk3NmYyM2QzNjc5YTM2ZjRlZjY1OTUwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkZ1bGxTY3JlZW5Db250cm9s
bGVyLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViRnVsbFNjcmVlbkNvbnRy
b2xsZXIubW0KQEAgLTEzOCw5ICsxMzgsOSBAQCAtIChFbGVtZW50KillbGVtZW50CiAgICAgcmV0
dXJuIF9lbGVtZW50LmdldCgpOwogfQogCi0tICh2b2lkKXNldEVsZW1lbnQ6KFBhc3NSZWZQdHI8
RWxlbWVudD4pZWxlbWVudAorLSAodm9pZClzZXRFbGVtZW50OihSZWZQdHI8RWxlbWVudD4mJill
bGVtZW50CiB7Ci0gICAgX2VsZW1lbnQgPSBlbGVtZW50OworICAgIF9lbGVtZW50ID0gV1RGTW92
ZShlbGVtZW50KTsKIH0KIAogLSAoQk9PTClpc0Z1bGxTY3JlZW4KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViR2VvbG9jYXRpb25Qb3NpdGlvbi5tbSBiL1NvdXJjZS9X
ZWJLaXQvbWFjL1dlYlZpZXcvV2ViR2VvbG9jYXRpb25Qb3NpdGlvbi5tbQppbmRleCA3OTM3ZWYz
NzAyZWIyMzUxMWEwYmVjY2I1ZTE0MDUwMjVhMTgyNmIzLi40NTZkNGJhOGJkZjBlNzE2NDQ5MDc1
MzIxZjllZGQ0ZjA4NDVkZmEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3
L1dlYkdlb2xvY2F0aW9uUG9zaXRpb24ubW0KKysrIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmll
dy9XZWJHZW9sb2NhdGlvblBvc2l0aW9uLm1tCkBAIC0yNiw3ICsyNiw2IEBACiAjaW1wb3J0ICJX
ZWJHZW9sb2NhdGlvblBvc2l0aW9uLmgiCiAKICNpbXBvcnQgIldlYkdlb2xvY2F0aW9uUG9zaXRp
b25JbnRlcm5hbC5oIgotI2ltcG9ydCA8d3RmL1Bhc3NSZWZQdHIuaD4KICNpbXBvcnQgPHd0Zi9S
ZWZQdHIuaD4KIAogI2ltcG9ydCA8V2ViQ29yZS9HZW9sb2NhdGlvblBvc2l0aW9uLmg+CkBAIC0z
OSwxNyArMzgsMTcgQEAgQHB1YmxpYwogICAgIFJlZlB0cjxHZW9sb2NhdGlvblBvc2l0aW9uPiBf
cG9zaXRpb247CiB9CiAKLS0gKGlkKWluaXRXaXRoQ29yZUdlb2xvY2F0aW9uUG9zaXRpb246KFBh
c3NSZWZQdHI8R2VvbG9jYXRpb25Qb3NpdGlvbj4pY29yZUdlb2xvY2F0aW9uUG9zaXRpb247Cist
IChpZClpbml0V2l0aENvcmVHZW9sb2NhdGlvblBvc2l0aW9uOihSZWZQdHI8R2VvbG9jYXRpb25Q
b3NpdGlvbj4mJiljb3JlR2VvbG9jYXRpb25Qb3NpdGlvbjsKIEBlbmQKIAogQGltcGxlbWVudGF0
aW9uIFdlYkdlb2xvY2F0aW9uUG9zaXRpb25JbnRlcm5hbAogCi0tIChpZClpbml0V2l0aENvcmVH
ZW9sb2NhdGlvblBvc2l0aW9uOihQYXNzUmVmUHRyPEdlb2xvY2F0aW9uUG9zaXRpb24+KWNvcmVH
ZW9sb2NhdGlvblBvc2l0aW9uCistIChpZClpbml0V2l0aENvcmVHZW9sb2NhdGlvblBvc2l0aW9u
OihSZWZQdHI8R2VvbG9jYXRpb25Qb3NpdGlvbj4mJiljb3JlR2VvbG9jYXRpb25Qb3NpdGlvbgog
ewogICAgIHNlbGYgPSBbc3VwZXIgaW5pdF07CiAgICAgaWYgKCFzZWxmKQogICAgICAgICByZXR1
cm4gbmlsOwotICAgIF9wb3NpdGlvbiA9IGNvcmVHZW9sb2NhdGlvblBvc2l0aW9uOworICAgIF9w
b3NpdGlvbiA9IFdURk1vdmUoY29yZUdlb2xvY2F0aW9uUG9zaXRpb24pOwogICAgIHJldHVybiBz
ZWxmOwogfQogCkBAIC03MSwxMiArNzAsMTIgQEAgLSAoaWQpaW5pdFdpdGhUaW1lc3RhbXA6KGRv
dWJsZSl0aW1lc3RhbXAgbGF0aXR1ZGU6KGRvdWJsZSlsYXRpdHVkZSBsb25naXR1ZGU6KGQKICAg
ICByZXR1cm4gc2VsZjsKIH0KIAotLSAoaWQpaW5pdFdpdGhHZW9sb2NhdGlvblBvc2l0aW9uOihS
ZWZQdHI8R2VvbG9jYXRpb25Qb3NpdGlvbj4pY29yZUdlb2xvY2F0aW9uUG9zaXRpb24KKy0gKGlk
KWluaXRXaXRoR2VvbG9jYXRpb25Qb3NpdGlvbjooUmVmUHRyPEdlb2xvY2F0aW9uUG9zaXRpb24+
JiYpY29yZUdlb2xvY2F0aW9uUG9zaXRpb24KIHsKICAgICBzZWxmID0gW3N1cGVyIGluaXRdOwog
ICAgIGlmICghc2VsZikKICAgICAgICAgcmV0dXJuIG5pbDsKLSAgICBfaW50ZXJuYWwgPSBbW1dl
Ykdlb2xvY2F0aW9uUG9zaXRpb25JbnRlcm5hbCBhbGxvY10gaW5pdFdpdGhDb3JlR2VvbG9jYXRp
b25Qb3NpdGlvbjpjb3JlR2VvbG9jYXRpb25Qb3NpdGlvbl07CisgICAgX2ludGVybmFsID0gW1tX
ZWJHZW9sb2NhdGlvblBvc2l0aW9uSW50ZXJuYWwgYWxsb2NdIGluaXRXaXRoQ29yZUdlb2xvY2F0
aW9uUG9zaXRpb246V1RGTW92ZShjb3JlR2VvbG9jYXRpb25Qb3NpdGlvbildOwogICAgIHJldHVy
biBzZWxmOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkhU
TUxWaWV3Lm1tIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJIVE1MVmlldy5tbQppbmRl
eCA4NTJjOTE0ODY5ZDNiNGQ0NGI0MmJkYTgxMGE4MGUyN2EzNGQ0MDY2Li41ZDU1YWIxM2JhNzRj
YjdmMWJmZWNiNzkxODY3MDMyMDNmMmNkMDdiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21h
Yy9XZWJWaWV3L1dlYkhUTUxWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcv
V2ViSFRNTFZpZXcubW0KQEAgLTQ4MjYsMTIgKzQ4MjYsMTIgQEAgc3RhdGljIEJPT0wgaXNJblBh
c3N3b3JkRmllbGQoRnJhbWUqIGNvcmVGcmFtZSkKIH0KICNlbmRpZgogCi1zdGF0aWMgUGFzc1Jl
ZlB0cjxLZXlib2FyZEV2ZW50PiBjdXJyZW50S2V5Ym9hcmRFdmVudChGcmFtZSogY29yZUZyYW1l
KQorc3RhdGljIFJlZlB0cjxLZXlib2FyZEV2ZW50PiBjdXJyZW50S2V5Ym9hcmRFdmVudChGcmFt
ZSogY29yZUZyYW1lKQogewogI2lmICFQTEFURk9STShJT1MpCiAgICAgTlNFdmVudCAqZXZlbnQg
PSBbTlNBcHAgY3VycmVudEV2ZW50XTsKICAgICBpZiAoIWV2ZW50KQotICAgICAgICByZXR1cm4g
MDsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKICAgICBzd2l0Y2ggKFtldmVudCB0eXBlXSkg
ewogICAgIGNhc2UgTlNFdmVudFR5cGVLZXlEb3duOiB7CkBAIC00ODQyLDE4ICs0ODQyLDE4IEBA
IHN0YXRpYyBQYXNzUmVmUHRyPEtleWJvYXJkRXZlbnQ+IGN1cnJlbnRLZXlib2FyZEV2ZW50KEZy
YW1lKiBjb3JlRnJhbWUpCiAgICAgY2FzZSBOU0V2ZW50VHlwZUtleVVwOgogICAgICAgICByZXR1
cm4gS2V5Ym9hcmRFdmVudDo6Y3JlYXRlKFBsYXRmb3JtRXZlbnRGYWN0b3J5OjpjcmVhdGVQbGF0
Zm9ybUtleWJvYXJkRXZlbnQoZXZlbnQpLCBjb3JlRnJhbWUtPmRvY3VtZW50KCktPmRlZmF1bHRW
aWV3KCkpOwogICAgIGRlZmF1bHQ6Ci0gICAgICAgIHJldHVybiAwOworICAgICAgICByZXR1cm4g
bnVsbHB0cjsKICAgICB9CiAjZWxzZQogICAgIFdlYkV2ZW50ICpldmVudCA9IFtXQUtXaW5kb3cg
Y3VycmVudEV2ZW50XTsKICAgICBpZiAoIWV2ZW50KQotICAgICAgICByZXR1cm4gMDsKKyAgICAg
ICAgcmV0dXJuIG51bGxwdHI7CiAgICAgV2ViRXZlbnRUeXBlIHR5cGUgPSBldmVudC50eXBlOwog
ICAgIGlmICh0eXBlID09IFdlYkV2ZW50S2V5RG93biB8fCB0eXBlID09IFdlYkV2ZW50S2V5VXAp
IHsKICAgICAgICAgRG9jdW1lbnQqIGRvY3VtZW50ID0gY29yZUZyYW1lLT5kb2N1bWVudCgpOwog
ICAgICAgICByZXR1cm4gS2V5Ym9hcmRFdmVudDo6Y3JlYXRlKFBsYXRmb3JtRXZlbnRGYWN0b3J5
OjpjcmVhdGVQbGF0Zm9ybUtleWJvYXJkRXZlbnQoZXZlbnQpLCBkb2N1bWVudCA/IGRvY3VtZW50
LT5kZWZhdWx0VmlldygpIDogMCk7CiAgICAgfQotICAgIHJldHVybiAwOworICAgIHJldHVybiBu
dWxscHRyOwogI2VuZGlmCiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZp
ZXcvV2ViUmVzb3VyY2UubW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlJlc291cmNl
Lm1tCmluZGV4IDM5NzdiNDQ0YTlmNTU2MzJkYTY3ZDQzYjgyMzQ2OWE0NmEyMzQ5ZWIuLjE5ZGYw
NWVkOGNlMzc0YmI0NGNiNDNhMjFmZWViNzY4MDExMWZjMTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvbWFjL1dlYlZpZXcvV2ViUmVzb3VyY2UubW0KKysrIGIvU291cmNlL1dlYktpdC9tYWMv
V2ViVmlldy9XZWJSZXNvdXJjZS5tbQpAQCAtMzUsNyArMzUsNiBAQAogI2ltcG9ydCAiV2ViTlNP
YmplY3RFeHRyYXMuaCIKICNpbXBvcnQgIldlYk5TVVJMRXh0cmFzLmgiCiAjaW1wb3J0IDxKYXZh
U2NyaXB0Q29yZS9Jbml0aWFsaXplVGhyZWFkaW5nLmg+Ci0jaW1wb3J0IDx3dGYvUGFzc1JlZlB0
ci5oPgogI2ltcG9ydCA8V2ViQ29yZS9BcmNoaXZlUmVzb3VyY2UuaD4KICNpbXBvcnQgPFdlYkNv
cmUvTGVnYWN5V2ViQXJjaGl2ZS5oPgogI2ltcG9ydCA8V2ViQ29yZS9SdW50aW1lQXBwbGljYXRp
b25DaGVja3MuaD4KQEAgLTQ0LDYgKzQzLDcgQEAKICNpbXBvcnQgPFdlYkNvcmUvV2ViQ29yZU9i
akNFeHRyYXMuaD4KICNpbXBvcnQgPFdlYkNvcmUvV2ViQ29yZVVSTFJlc3BvbnNlLmg+CiAjaW1w
b3J0IDx3dGYvTWFpblRocmVhZC5oPgorI2ltcG9ydCA8d3RmL1JlZlB0ci5oPgogI2ltcG9ydCA8
d3RmL1J1bkxvb3AuaD4KIAogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlNjcmlwdFdvcmxkLm1tIGIvU291cmNlL1dlYktp
dC9tYWMvV2ViVmlldy9XZWJTY3JpcHRXb3JsZC5tbQppbmRleCA3ODQ4YjI0NTk5NWVlNjdmMzA0
YjlhYTBmZTMwYmQzOTJjYjA0Y2I1Li4zZWJmMTkzNTE1ODY1MjQ1NzVlZmUyZDZkNzY1NjE2YjVh
MDhiM2E3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlNjcmlwdFdv
cmxkLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViU2NyaXB0V29ybGQubW0K
QEAgLTUyLDE4ICs1MiwxNCBAQCBzdGF0aWMgV29ybGRNYXAmIGFsbFdvcmxkcygpCiAKIEBpbXBs
ZW1lbnRhdGlvbiBXZWJTY3JpcHRXb3JsZAogCi0tIChpZClpbml0V2l0aFdvcmxkOihQYXNzUmVm
UHRyPERPTVdyYXBwZXJXb3JsZD4pd29ybGQKKy0gKGlkKWluaXRXaXRoV29ybGQ6KFJlZjxET01X
cmFwcGVyV29ybGQ+JiYpd29ybGQKIHsKLSAgICBBU1NFUlRfQVJHKHdvcmxkLCB3b3JsZCk7Ci0g
ICAgaWYgKCF3b3JsZCkKLSAgICAgICAgcmV0dXJuIG5pbDsKLQogICAgIHNlbGYgPSBbc3VwZXIg
aW5pdF07CiAgICAgaWYgKCFzZWxmKQogICAgICAgICByZXR1cm4gbmlsOwogCiAgICAgX3ByaXZh
dGUgPSBbW1dlYlNjcmlwdFdvcmxkUHJpdmF0ZSBhbGxvY10gaW5pdF07Ci0gICAgX3ByaXZhdGUt
PndvcmxkID0gd29ybGQ7CisgICAgX3ByaXZhdGUtPndvcmxkID0gV1RGTW92ZSh3b3JsZCk7CiAK
ICAgICBBU1NFUlRfQVJHKHdvcmxkLCAhYWxsV29ybGRzKCkuY29udGFpbnMoX3ByaXZhdGUtPndv
cmxkLmdldCgpKSk7CiAgICAgYWxsV29ybGRzKCkuYWRkKF9wcml2YXRlLT53b3JsZC5nZXQoKSwg
c2VsZik7CkBAIC05Myw3ICs4OSw3IEBAIC0gKHZvaWQpZGVhbGxvYwogCiArIChXZWJTY3JpcHRX
b3JsZCAqKXN0YW5kYXJkV29ybGQKIHsKLSAgICBzdGF0aWMgV2ViU2NyaXB0V29ybGQgKndvcmxk
ID0gW1tXZWJTY3JpcHRXb3JsZCBhbGxvY10gaW5pdFdpdGhXb3JsZDombWFpblRocmVhZE5vcm1h
bFdvcmxkKCldOworICAgIHN0YXRpYyBXZWJTY3JpcHRXb3JsZCAqd29ybGQgPSBbW1dlYlNjcmlw
dFdvcmxkIGFsbG9jXSBpbml0V2l0aFdvcmxkOm1haW5UaHJlYWROb3JtYWxXb3JsZCgpXTsKICAg
ICByZXR1cm4gd29ybGQ7CiB9CiAKQEAgLTEzMSw3ICsxMjcsNyBAQCArIChXZWJTY3JpcHRXb3Js
ZCAqKWZpbmRPckNyZWF0ZVdvcmxkOihET01XcmFwcGVyV29ybGQmKXdvcmxkCiAgICAgaWYgKFdl
YlNjcmlwdFdvcmxkICpleGlzdGluZ1dvcmxkID0gYWxsV29ybGRzKCkuZ2V0KCZ3b3JsZCkpCiAg
ICAgICAgIHJldHVybiBleGlzdGluZ1dvcmxkOwogCi0gICAgcmV0dXJuIFtbW3NlbGYgYWxsb2Nd
IGluaXRXaXRoV29ybGQ6JndvcmxkXSBhdXRvcmVsZWFzZV07CisgICAgcmV0dXJuIFtbW3NlbGYg
YWxsb2NdIGluaXRXaXRoV29ybGQ6d29ybGRdIGF1dG9yZWxlYXNlXTsKIH0KIAogQGVuZApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3RGF0YS5oIGIvU291cmNl
L1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3RGF0YS5oCmluZGV4IDg4ZjY5MmM1Y2NmOGQ5NTU5
MDQ5ZGQ2MmFjMjg5ODRiN2FkZTY4Y2EuLjZjMzY5Mjg2NzdiZjY1MzY0ZWFiZGNjNTZlMDk0NWMx
MDZjMmU2OTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlld0Rh
dGEuaAorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXdEYXRhLmgKQEAgLTEy
OCw5ICsxMjgsOSBAQCBwcml2YXRlOgogCiBjbGFzcyBMYXllckZsdXNoQ29udHJvbGxlciA6IHB1
YmxpYyBSZWZDb3VudGVkPExheWVyRmx1c2hDb250cm9sbGVyPiwgcHVibGljIFdlYkNvcmU6Okxh
eWVyRmx1c2hTY2hlZHVsZXJDbGllbnQgewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRy
PExheWVyRmx1c2hDb250cm9sbGVyPiBjcmVhdGUoV2ViVmlldyogd2ViVmlldykKKyAgICBzdGF0
aWMgUmVmPExheWVyRmx1c2hDb250cm9sbGVyPiBjcmVhdGUoV2ViVmlldyogd2ViVmlldykKICAg
ICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgTGF5ZXJGbHVzaENvbnRyb2xsZXIod2Vi
VmlldykpOworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBMYXllckZsdXNoQ29udHJvbGxl
cih3ZWJWaWV3KSk7CiAgICAgfQogICAgIAogICAgIHZpcnR1YWwgYm9vbCBmbHVzaExheWVycygp
Owo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>310000</attachid>
            <date>2017-05-12 19:55:00 -0700</date>
            <delta_ts>2017-05-12 20:02:18 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-172066-20170512195459.patch</filename>
            <type>text/plain</type>
            <size>56431</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjE2ODEwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2lv
cy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2lvcy9DaGFuZ2VMb2cKaW5kZXggZGNhMWI1ZTlk
OGFmZTM4ZTE5NGRhYzAxNGE1OWQxNDk5MTQwZGIzYi4uZGQ1NzZjOGNkYjg1YzJmNDllZjM5ODhi
YjFmMDAxMjkwM2JjMWI5ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9pb3MvQ2hhbmdlTG9n
CisrKyBiL1NvdXJjZS9XZWJLaXQvaW9zL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDE3
LTA1LTEyICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgRHJvcCB1
c2VzIG9mIFBhc3NSZWZQdHIgaW4gV2ViS2l0L21hYworICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTcyMDY2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgQnVpbGQgZml4LgorCisgICAgICAgICogTWlzYy9XZWJH
ZW9sb2NhdGlvblByb3ZpZGVySU9TLm1tOgorCiAyMDE3LTA1LTAxICBDaHJpcyBEdW1leiAgPGNk
dW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgUmVtb3ZlIHNvbWUgdXNhZ2Ugb2YgUGFzc1JlZlB0
ciBpbiBlZGl0aW5nIGNvZGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxv
ZyBiL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwppbmRleCA2MWRlOTA3YzliMDYwNzJjODlk
MjAyMTk3M2VlOWZkZjU1YmI5MjRmLi4zNjk3ZTY3ZTc1NzQ1ODY2YWJhYmUxMGVmZTFkY2UzNjNl
M2JmMzA0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsOTEgQEAKKzIwMTctMDUtMTIgIENo
cmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBEcm9wIHVzZXMgb2YgUGFz
c1JlZlB0ciBpbiBXZWJLaXQvbWFjCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xNzIwNjYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICAqIEhpc3RvcnkvV2ViQmFja0ZvcndhcmRMaXN0SW50ZXJuYWwuaDoKKyAg
ICAgICAgKiBIaXN0b3J5L1dlYkhpc3RvcnlJdGVtLm1tOgorICAgICAgICAoa2l0KToKKyAgICAg
ICAgKC1bV2ViSGlzdG9yeUl0ZW0gaW5pdFdpdGhXZWJDb3JlSGlzdG9yeUl0ZW06XSk6CisgICAg
ICAgICogSGlzdG9yeS9XZWJIaXN0b3J5SXRlbUludGVybmFsLmg6CisgICAgICAgICogUGx1Z2lu
cy9Ib3N0ZWQvSG9zdGVkTmV0c2NhcGVQbHVnaW5TdHJlYW0uaDoKKyAgICAgICAgKFdlYktpdDo6
SG9zdGVkTmV0c2NhcGVQbHVnaW5TdHJlYW06OmNyZWF0ZSk6CisgICAgICAgICogUGx1Z2lucy9I
b3N0ZWQvTmV0c2NhcGVQbHVnaW5Ib3N0TWFuYWdlci5oOgorICAgICAgICAqIFBsdWdpbnMvSG9z
dGVkL05ldHNjYXBlUGx1Z2luSG9zdE1hbmFnZXIubW06CisgICAgICAgIChXZWJLaXQ6Ok5ldHNj
YXBlUGx1Z2luSG9zdE1hbmFnZXI6Omluc3RhbnRpYXRlUGx1Z2luKToKKyAgICAgICAgKiBQbHVn
aW5zL0hvc3RlZC9OZXRzY2FwZVBsdWdpbkluc3RhbmNlUHJveHkuaDoKKyAgICAgICAgKiBQbHVn
aW5zL0hvc3RlZC9OZXRzY2FwZVBsdWdpbkluc3RhbmNlUHJveHkubW06CisgICAgICAgIChXZWJL
aXQ6Ok5ldHNjYXBlUGx1Z2luSW5zdGFuY2VQcm94eTo6UGx1Z2luUmVxdWVzdDo6Y3JlYXRlKToK
KyAgICAgICAgKFdlYktpdDo6TmV0c2NhcGVQbHVnaW5JbnN0YW5jZVByb3h5OjpjcmVhdGUpOgor
ICAgICAgICAoV2ViS2l0OjpOZXRzY2FwZVBsdWdpbkluc3RhbmNlUHJveHk6OnNldE1hbnVhbFN0
cmVhbSk6CisgICAgICAgICogUGx1Z2lucy9Ib3N0ZWQvUHJveHlJbnN0YW5jZS5oOgorICAgICAg
ICAoV2ViS2l0OjpQcm94eUluc3RhbmNlOjpjcmVhdGUpOgorICAgICAgICAqIFBsdWdpbnMvSG9z
dGVkL1Byb3h5SW5zdGFuY2UubW06CisgICAgICAgIChXZWJLaXQ6OlByb3h5SW5zdGFuY2U6OlBy
b3h5SW5zdGFuY2UpOgorICAgICAgICAoV2ViS2l0OjpQcm94eUluc3RhbmNlOjpuZXdSdW50aW1l
T2JqZWN0KToKKyAgICAgICAgKiBQbHVnaW5zL0hvc3RlZC9Qcm94eVJ1bnRpbWVPYmplY3QuaDoK
KyAgICAgICAgKFdlYktpdDo6UHJveHlSdW50aW1lT2JqZWN0OjpjcmVhdGUpOgorICAgICAgICAq
IFBsdWdpbnMvSG9zdGVkL1Byb3h5UnVudGltZU9iamVjdC5tbToKKyAgICAgICAgKFdlYktpdDo6
UHJveHlSdW50aW1lT2JqZWN0OjpQcm94eVJ1bnRpbWVPYmplY3QpOgorICAgICAgICAqIFBsdWdp
bnMvSG9zdGVkL1dlYkhvc3RlZE5ldHNjYXBlUGx1Z2luVmlldy5oOgorICAgICAgICAqIFBsdWdp
bnMvSG9zdGVkL1dlYkhvc3RlZE5ldHNjYXBlUGx1Z2luVmlldy5tbToKKyAgICAgICAgKC1bV2Vi
SG9zdGVkTmV0c2NhcGVQbHVnaW5WaWV3IGluaXRXaXRoRnJhbWU6cGx1Z2luUGFja2FnZTpVUkw6
YmFzZVVSTDpNSU1FVHlwZTphdHRyaWJ1dGVLZXlzOmF0dHJpYnV0ZVZhbHVlczpsb2FkTWFudWFs
bHk6ZWxlbWVudDpdKToKKyAgICAgICAgKiBQbHVnaW5zL1dlYkJhc2VOZXRzY2FwZVBsdWdpblZp
ZXcuaDoKKyAgICAgICAgKiBQbHVnaW5zL1dlYkJhc2VOZXRzY2FwZVBsdWdpblZpZXcubW06Cisg
ICAgICAgICgtW1dlYkJhc2VOZXRzY2FwZVBsdWdpblZpZXcgaW5pdFdpdGhGcmFtZTpwbHVnaW5Q
YWNrYWdlOlVSTDpiYXNlVVJMOk1JTUVUeXBlOmF0dHJpYnV0ZUtleXM6YXR0cmlidXRlVmFsdWVz
OmxvYWRNYW51YWxseTplbGVtZW50Ol0pOgorICAgICAgICAqIFBsdWdpbnMvV2ViTmV0c2NhcGVQ
bHVnaW5TdHJlYW0uaDoKKyAgICAgICAgKFdlYk5ldHNjYXBlUGx1Z2luU3RyZWFtOjpjcmVhdGUp
OgorICAgICAgICAqIFBsdWdpbnMvV2ViTmV0c2NhcGVQbHVnaW5WaWV3Lmg6CisgICAgICAgICog
UGx1Z2lucy9XZWJOZXRzY2FwZVBsdWdpblZpZXcubW06CisgICAgICAgICgtW1dlYk5ldHNjYXBl
UGx1Z2luVmlldyBpbml0V2l0aEZyYW1lOnBsdWdpblBhY2thZ2U6VVJMOmJhc2VVUkw6TUlNRVR5
cGU6YXR0cmlidXRlS2V5czphdHRyaWJ1dGVWYWx1ZXM6bG9hZE1hbnVhbGx5OmVsZW1lbnQ6XSk6
CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lm1tOgorICAgICAgICAq
IFdlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5tbToKKyAgICAgICAgKiBXZWJDb3JlU3Vw
cG9ydC9XZWJOb3RpZmljYXRpb25DbGllbnQubW06CisgICAgICAgIChXZWJOb3RpZmljYXRpb25D
bGllbnQ6OnJlcXVlc3RQZXJtaXNzaW9uKToKKyAgICAgICAgKC1bV2ViTm90aWZpY2F0aW9uUG9s
aWN5TGlzdGVuZXIgaW5pdFdpdGhDYWxsYmFjazpdKToKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9y
dC9XZWJPcGVuUGFuZWxSZXN1bHRMaXN0ZW5lci5tbToKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9y
dC9XZWJVc2VyTWVkaWFDbGllbnQubW06CisgICAgICAgIChXZWJVc2VyTWVkaWFDbGllbnQ6OnJl
cXVlc3RVc2VyTWVkaWFBY2Nlc3MpOgorICAgICAgICAoV2ViVXNlck1lZGlhQ2xpZW50OjplbnVt
ZXJhdGVNZWRpYURldmljZXMpOgorICAgICAgICAoLVtXZWJVc2VyTWVkaWFQb2xpY3lMaXN0ZW5l
ciBpbml0V2l0aFVzZXJNZWRpYVJlcXVlc3Q6XSk6CisgICAgICAgICgtW1dlYlVzZXJNZWRpYVBv
bGljeUNoZWNrZXJMaXN0ZW5lciBpbml0V2l0aE1lZGlhRGV2aWNlc0VudW1lcmF0aW9uUmVxdWVz
dDpdKToKKyAgICAgICAgKiBXZWJWaWV3L1dlYkFyY2hpdmUubW06CisgICAgICAgICgtW1dlYkFy
Y2hpdmVQcml2YXRlIGluaXRXaXRoQ29yZUFyY2hpdmU6XSk6CisgICAgICAgICgtW1dlYkFyY2hp
dmVQcml2YXRlIHNldENvcmVBcmNoaXZlOl0pOgorICAgICAgICAoLVtXZWJBcmNoaXZlIGluaXRX
aXRoRGF0YTpdKToKKyAgICAgICAgKC1bV2ViQXJjaGl2ZSBzdWJmcmFtZUFyY2hpdmVzXSk6Cisg
ICAgICAgICgtW1dlYkFyY2hpdmUgX2luaXRXaXRoQ29yZUxlZ2FjeVdlYkFyY2hpdmU6XSk6Cisg
ICAgICAgICogV2ViVmlldy9XZWJBcmNoaXZlSW50ZXJuYWwuaDoKKyAgICAgICAgKiBXZWJWaWV3
L1dlYkRhdGFTb3VyY2UubW06CisgICAgICAgIChXZWJEYXRhU291cmNlUHJpdmF0ZTo6V2ViRGF0
YVNvdXJjZVByaXZhdGUpOgorICAgICAgICAoV2ViRGF0YVNvdXJjZVByaXZhdGU6On5XZWJEYXRh
U291cmNlUHJpdmF0ZSk6CisgICAgICAgICgtW1dlYkRhdGFTb3VyY2UgX2luaXRXaXRoRG9jdW1l
bnRMb2FkZXI6XSk6CisgICAgICAgICogV2ViVmlldy9XZWJEYXRhU291cmNlSW50ZXJuYWwuaDoK
KyAgICAgICAgKiBXZWJWaWV3L1dlYkRldmljZU9yaWVudGF0aW9uLm1tOgorICAgICAgICAoLVtX
ZWJEZXZpY2VPcmllbnRhdGlvbiBpbml0V2l0aENvcmVEZXZpY2VPcmllbnRhdGlvbjpdKToKKyAg
ICAgICAgKiBXZWJWaWV3L1dlYkRldmljZU9yaWVudGF0aW9uSW50ZXJuYWwuaDoKKyAgICAgICAg
KiBXZWJWaWV3L1dlYkZyYW1lLm1tOgorICAgICAgICAoLVtXZWJGcmFtZSBfY29udmVydFRvRE9N
UmFuZ2U6XSk6CisgICAgICAgICgtW1dlYkZyYW1lIF9jb252ZXJ0VG9ET01SYW5nZTpyYW5nZUlz
UmVsYXRpdmVUbzpdKToKKyAgICAgICAgKiBXZWJWaWV3L1dlYkZyYW1lSW50ZXJuYWwuaDoKKyAg
ICAgICAgKiBXZWJWaWV3L1dlYkZ1bGxTY3JlZW5Db250cm9sbGVyLmg6CisgICAgICAgICogV2Vi
Vmlldy9XZWJGdWxsU2NyZWVuQ29udHJvbGxlci5tbToKKyAgICAgICAgKC1bV2ViRnVsbFNjcmVl
bkNvbnRyb2xsZXIgc2V0RWxlbWVudDpdKToKKyAgICAgICAgKiBXZWJWaWV3L1dlYkdlb2xvY2F0
aW9uUG9zaXRpb24ubW06CisgICAgICAgICgtW1dlYkdlb2xvY2F0aW9uUG9zaXRpb25JbnRlcm5h
bCBpbml0V2l0aENvcmVHZW9sb2NhdGlvblBvc2l0aW9uOl0pOgorICAgICAgICAoLVtXZWJHZW9s
b2NhdGlvblBvc2l0aW9uIGluaXRXaXRoR2VvbG9jYXRpb25Qb3NpdGlvbjpdKToKKyAgICAgICAg
KiBXZWJWaWV3L1dlYkhUTUxWaWV3Lm1tOgorICAgICAgICAoY3VycmVudEtleWJvYXJkRXZlbnQp
OgorICAgICAgICAqIFdlYlZpZXcvV2ViUmVzb3VyY2UubW06CisgICAgICAgICogV2ViVmlldy9X
ZWJTY3JpcHRXb3JsZC5tbToKKyAgICAgICAgKC1bV2ViU2NyaXB0V29ybGQgaW5pdFdpdGhXb3Js
ZDpdKToKKyAgICAgICAgKCtbV2ViU2NyaXB0V29ybGQgc3RhbmRhcmRXb3JsZF0pOgorICAgICAg
ICAoK1tXZWJTY3JpcHRXb3JsZCBmaW5kT3JDcmVhdGVXb3JsZDpdKToKKyAgICAgICAgKiBXZWJW
aWV3L1dlYlZpZXdEYXRhLmg6CisgICAgICAgIChMYXllckZsdXNoQ29udHJvbGxlcjo6Y3JlYXRl
KToKKwogMjAxNy0wNS0xMSAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAg
ICAgIERyb3AgcmVtYWluaW5nIHVzZXMgb2YgUGFzc1JlZlB0ciBpbiBXZWJDb3JlCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L2lvcy9NaXNjL1dlYkdlb2xvY2F0aW9uUHJvdmlkZXJJT1MubW0g
Yi9Tb3VyY2UvV2ViS2l0L2lvcy9NaXNjL1dlYkdlb2xvY2F0aW9uUHJvdmlkZXJJT1MubW0KaW5k
ZXggODYwYzBhMzZhMjNkZGEyOWJiODVlOTI0OTk2ZDY2MGIzZDExYTZmZC4uMGQ1M2FmMDM4NWJj
NDE4M2FmODY4NmI2YzM3NDNkYjVmYzVjMTQ4YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9p
b3MvTWlzYy9XZWJHZW9sb2NhdGlvblByb3ZpZGVySU9TLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQv
aW9zL01pc2MvV2ViR2VvbG9jYXRpb25Qcm92aWRlcklPUy5tbQpAQCAtNDQsNyArNDQsNyBAQAog
dXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKIEBpbnRlcmZhY2UgV2ViR2VvbG9jYXRpb25Qb3Np
dGlvbiAoSW50ZXJuYWwpCi0tIChpZClpbml0V2l0aEdlb2xvY2F0aW9uUG9zaXRpb246KFJlZlB0
cjxHZW9sb2NhdGlvblBvc2l0aW9uPiljb3JlR2VvbG9jYXRpb25Qb3NpdGlvbjsKKy0gKGlkKWlu
aXRXaXRoR2VvbG9jYXRpb25Qb3NpdGlvbjooUmVmUHRyPEdlb2xvY2F0aW9uUG9zaXRpb24+JiYp
Y29yZUdlb2xvY2F0aW9uUG9zaXRpb247CiBAZW5kCiAKIC8vIENvcmVMb2NhdGlvbiBydW5zIGlu
IHRoZSBtYWluIHRocmVhZC4gV2ViR2VvbG9jYXRpb25Qcm92aWRlcklPUyBsaXZlcyBvbiB0aGUg
V2ViVGhyZWFkLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvSGlzdG9yeS9XZWJCYWNr
Rm9yd2FyZExpc3RJbnRlcm5hbC5oIGIvU291cmNlL1dlYktpdC9tYWMvSGlzdG9yeS9XZWJCYWNr
Rm9yd2FyZExpc3RJbnRlcm5hbC5oCmluZGV4IDhkZTBlMzE5ZDZiYWUxYWQ0ODljMWVlMjhmNTRj
MjhhMjExNzIwYWIuLmU1YzAxNTcyYWZkZWM0MzVmZjAxMGM1YzQ3MzNjOTUzNDViNmU3OTkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL0hpc3RvcnkvV2ViQmFja0ZvcndhcmRMaXN0SW50
ZXJuYWwuaAorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9IaXN0b3J5L1dlYkJhY2tGb3J3YXJkTGlz
dEludGVybmFsLmgKQEAgLTI3LDcgKzI3LDcgQEAKICAqLwogCiAjaW1wb3J0IDxXZWJLaXRMZWdh
Y3kvV2ViQmFja0ZvcndhcmRMaXN0Lmg+Ci0jaW1wb3J0IDx3dGYvUGFzc1JlZlB0ci5oPgorI2lt
cG9ydCA8d3RmL1JlZi5oPgogCiBjbGFzcyBCYWNrRm9yd2FyZExpc3Q7CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvbWFjL0hpc3RvcnkvV2ViSGlzdG9yeUl0ZW0ubW0gYi9Tb3VyY2UvV2Vi
S2l0L21hYy9IaXN0b3J5L1dlYkhpc3RvcnlJdGVtLm1tCmluZGV4IDI1YTQzMzIwN2EwZTMyZjE0
Y2E0Yjk5ZWI1NThkYTk5NzgxNDU1MTcuLmFlYzA2ZmZkNmI4ODQ4YjY5Y2FhN2YyNjA5MGE3Nzc4
MjNkNzdiMjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL0hpc3RvcnkvV2ViSGlzdG9y
eUl0ZW0ubW0KKysrIGIvU291cmNlL1dlYktpdC9tYWMvSGlzdG9yeS9XZWJIaXN0b3J5SXRlbS5t
bQpAQCAtMjY3LDcgKzI2Nyw3IEBAIFdlYkhpc3RvcnlJdGVtICpraXQoSGlzdG9yeUl0ZW0qIGl0
ZW0pCiAgICAgaWYgKGtpdEl0ZW0pCiAgICAgICAgIHJldHVybiBraXRJdGVtOwogICAgIAotICAg
IHJldHVybiBbW1tXZWJIaXN0b3J5SXRlbSBhbGxvY10gaW5pdFdpdGhXZWJDb3JlSGlzdG9yeUl0
ZW06aXRlbV0gYXV0b3JlbGVhc2VdOworICAgIHJldHVybiBbW1tXZWJIaXN0b3J5SXRlbSBhbGxv
Y10gaW5pdFdpdGhXZWJDb3JlSGlzdG9yeUl0ZW06Kml0ZW1dIGF1dG9yZWxlYXNlXTsKIH0KIAog
KyAoV2ViSGlzdG9yeUl0ZW0gKillbnRyeVdpdGhVUkw6KE5TVVJMICopVVJMCkBAIC0yODQsNyAr
Mjg0LDcgQEAgLSAoaWQpaW5pdFdpdGhVUkxTdHJpbmc6KE5TU3RyaW5nICopVVJMU3RyaW5nIHRp
dGxlOihOU1N0cmluZyAqKXRpdGxlIGRpc3BsYXlUaXQKICAgICByZXR1cm4gaXRlbTsKIH0KIAot
LSAoaWQpaW5pdFdpdGhXZWJDb3JlSGlzdG9yeUl0ZW06KFBhc3NSZWZQdHI8SGlzdG9yeUl0ZW0+
KWl0ZW0KKy0gKGlkKWluaXRXaXRoV2ViQ29yZUhpc3RvcnlJdGVtOihSZWY8SGlzdG9yeUl0ZW0+
JiYpaXRlbQogeyAgIAogICAgIFdlYkNvcmVUaHJlYWRWaW9sYXRpb25DaGVja1JvdW5kT25lKCk7
CiAgICAgLy8gTmVlZCB0byB0ZWxsIFdlYkNvcmUgd2hhdCBmdW5jdGlvbiB0byBjYWxsIGZvciB0
aGUgCkBAIC0yOTgsNyArMjk4LDcgQEAgLSAoaWQpaW5pdFdpdGhXZWJDb3JlSGlzdG9yeUl0ZW06
KFBhc3NSZWZQdHI8SGlzdG9yeUl0ZW0+KWl0ZW0KICAgICAgICAgcmV0dXJuIG5pbDsKIAogICAg
IF9wcml2YXRlID0gW1tXZWJIaXN0b3J5SXRlbVByaXZhdGUgYWxsb2NdIGluaXRdOwotICAgIF9w
cml2YXRlLT5faGlzdG9yeUl0ZW0gPSBpdGVtOworICAgIF9wcml2YXRlLT5faGlzdG9yeUl0ZW0g
PSBXVEZNb3ZlKGl0ZW0pOwogCiAgICAgQVNTRVJUKCFoaXN0b3J5SXRlbVdyYXBwZXJzKCkuZ2V0
KGNvcmUoX3ByaXZhdGUpKSk7CiAgICAgaGlzdG9yeUl0ZW1XcmFwcGVycygpLnNldChjb3JlKF9w
cml2YXRlKSwgc2VsZik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9IaXN0b3J5L1dl
Ykhpc3RvcnlJdGVtSW50ZXJuYWwuaCBiL1NvdXJjZS9XZWJLaXQvbWFjL0hpc3RvcnkvV2ViSGlz
dG9yeUl0ZW1JbnRlcm5hbC5oCmluZGV4IDBlMjBlN2FmY2NjOWRjODdiM2IxMWUzOWY5NTNiYTgz
YWY1MjRjMWQuLjc5MTRkMzlmOWI3ZGEwN2UyNjhiYThlNTYyMmI0N2EzNjc2MmVlMmIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL0hpc3RvcnkvV2ViSGlzdG9yeUl0ZW1JbnRlcm5hbC5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL0hpc3RvcnkvV2ViSGlzdG9yeUl0ZW1JbnRlcm5hbC5o
CkBAIC00Nyw3ICs0Nyw3IEBAIGV4dGVybiB2b2lkIFdLTm90aWZ5SGlzdG9yeUl0ZW1DaGFuZ2Vk
KFdlYkNvcmU6Okhpc3RvcnlJdGVtKik7CiAKIC0gKGlkKWluaXRXaXRoVVJMU3RyaW5nOihOU1N0
cmluZyAqKVVSTFN0cmluZyB0aXRsZTooTlNTdHJpbmcgKil0aXRsZSBkaXNwbGF5VGl0bGU6KE5T
U3RyaW5nICopZGlzcGxheVRpdGxlIGxhc3RWaXNpdGVkVGltZUludGVydmFsOihOU1RpbWVJbnRl
cnZhbCl0aW1lOwogLSAoaWQpaW5pdEZyb21EaWN0aW9uYXJ5UmVwcmVzZW50YXRpb246KE5TRGlj
dGlvbmFyeSAqKWRpY3Q7Ci0tIChpZClpbml0V2l0aFdlYkNvcmVIaXN0b3J5SXRlbTooUGFzc1Jl
ZlB0cjxXZWJDb3JlOjpIaXN0b3J5SXRlbT4paXRlbTsKKy0gKGlkKWluaXRXaXRoV2ViQ29yZUhp
c3RvcnlJdGVtOihSZWY8V2ViQ29yZTo6SGlzdG9yeUl0ZW0+JiYpaXRlbTsKIAogLSAodm9pZClz
ZXRUaXRsZTooTlNTdHJpbmcgKil0aXRsZTsKIC0gKHZvaWQpX3Zpc2l0ZWRXaXRoVGl0bGU6KE5T
U3RyaW5nICopdGl0bGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9QbHVnaW5zL0hv
c3RlZC9Ib3N0ZWROZXRzY2FwZVBsdWdpblN0cmVhbS5oIGIvU291cmNlL1dlYktpdC9tYWMvUGx1
Z2lucy9Ib3N0ZWQvSG9zdGVkTmV0c2NhcGVQbHVnaW5TdHJlYW0uaAppbmRleCA4ZGRkZTg4NTYx
NTU5ZWM2Y2Q1NmNkMjkyOGRkZDIwZjY0ODE4MzY5Li5hNjE2MGYwZjYyNWU3NmJiYmQ4MGE4MzZm
Mjg5ZDQ3MGM1YzhmMzU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9QbHVnaW5zL0hv
c3RlZC9Ib3N0ZWROZXRzY2FwZVBsdWdpblN0cmVhbS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFj
L1BsdWdpbnMvSG9zdGVkL0hvc3RlZE5ldHNjYXBlUGx1Z2luU3RyZWFtLmgKQEAgLTMwLDcgKzMw
LDcgQEAKIAogI2luY2x1ZGUgPFdlYkNvcmUvTmV0c2NhcGVQbHVnSW5TdHJlYW1Mb2FkZXIuaD4K
ICNpbmNsdWRlIDxXZWJLaXRMZWdhY3kvbnBhcGkuaD4KLSNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0
ci5oPgorI2luY2x1ZGUgPHd0Zi9SZWYuaD4KICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgog
I2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KICNpbmNsdWRlIDx3dGYvUmV0YWluUHRyLmg+CkBAIC00
NywxMyArNDcsMTMgQEAgY2xhc3MgTmV0c2NhcGVQbHVnaW5JbnN0YW5jZVByb3h5OwogY2xhc3Mg
SG9zdGVkTmV0c2NhcGVQbHVnaW5TdHJlYW0gOiBwdWJsaWMgUmVmQ291bnRlZDxIb3N0ZWROZXRz
Y2FwZVBsdWdpblN0cmVhbT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICwgcHJp
dmF0ZSBXZWJDb3JlOjpOZXRzY2FwZVBsdWdJblN0cmVhbUxvYWRlckNsaWVudCB7CiBwdWJsaWM6
Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8SG9zdGVkTmV0c2NhcGVQbHVnaW5TdHJlYW0+IGNyZWF0
ZShOZXRzY2FwZVBsdWdpbkluc3RhbmNlUHJveHkqIGluc3RhbmNlLCB1aW50MzJfdCBzdHJlYW1J
RCwgTlNVUkxSZXF1ZXN0ICpyZXF1ZXN0KQorICAgIHN0YXRpYyBSZWY8SG9zdGVkTmV0c2NhcGVQ
bHVnaW5TdHJlYW0+IGNyZWF0ZShOZXRzY2FwZVBsdWdpbkluc3RhbmNlUHJveHkqIGluc3RhbmNl
LCB1aW50MzJfdCBzdHJlYW1JRCwgTlNVUkxSZXF1ZXN0ICpyZXF1ZXN0KQogICAgIHsKLSAgICAg
ICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBIb3N0ZWROZXRzY2FwZVBsdWdpblN0cmVhbShpbnN0YW5j
ZSwgc3RyZWFtSUQsIHJlcXVlc3QpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgSG9z
dGVkTmV0c2NhcGVQbHVnaW5TdHJlYW0oaW5zdGFuY2UsIHN0cmVhbUlELCByZXF1ZXN0KSk7CiAg
ICAgfQotICAgIHN0YXRpYyBQYXNzUmVmUHRyPEhvc3RlZE5ldHNjYXBlUGx1Z2luU3RyZWFtPiBj
cmVhdGUoTmV0c2NhcGVQbHVnaW5JbnN0YW5jZVByb3h5KiBpbnN0YW5jZSwgV2ViQ29yZTo6RnJh
bWVMb2FkZXIqIGZyYW1lTG9hZGVyKQorICAgIHN0YXRpYyBSZWY8SG9zdGVkTmV0c2NhcGVQbHVn
aW5TdHJlYW0+IGNyZWF0ZShOZXRzY2FwZVBsdWdpbkluc3RhbmNlUHJveHkqIGluc3RhbmNlLCBX
ZWJDb3JlOjpGcmFtZUxvYWRlciogZnJhbWVMb2FkZXIpCiAgICAgewotICAgICAgICByZXR1cm4g
YWRvcHRSZWYobmV3IEhvc3RlZE5ldHNjYXBlUGx1Z2luU3RyZWFtKGluc3RhbmNlLCBmcmFtZUxv
YWRlcikpOworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBIb3N0ZWROZXRzY2FwZVBsdWdp
blN0cmVhbShpbnN0YW5jZSwgZnJhbWVMb2FkZXIpKTsKICAgICB9CiAKICAgICB+SG9zdGVkTmV0
c2NhcGVQbHVnaW5TdHJlYW0oKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1BsdWdp
bnMvSG9zdGVkL05ldHNjYXBlUGx1Z2luSG9zdE1hbmFnZXIuaCBiL1NvdXJjZS9XZWJLaXQvbWFj
L1BsdWdpbnMvSG9zdGVkL05ldHNjYXBlUGx1Z2luSG9zdE1hbmFnZXIuaAppbmRleCBkODQ5NDk3
N2RhMjZkNzAxNjNlZDYyYzM0ZDFiY2JjMWEzY2ZiZDZhLi4yZDI0ZmQ3M2NhOGZlN2QyMDIzYjZk
OTFlMzc0ODMzMzRjMWUzZDIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9QbHVnaW5z
L0hvc3RlZC9OZXRzY2FwZVBsdWdpbkhvc3RNYW5hZ2VyLmgKKysrIGIvU291cmNlL1dlYktpdC9t
YWMvUGx1Z2lucy9Ib3N0ZWQvTmV0c2NhcGVQbHVnaW5Ib3N0TWFuYWdlci5oCkBAIC0yOSw4ICsy
OSw4IEBACiAjZGVmaW5lIE5ldHNjYXBlUGx1Z2luSG9zdE1hbmFnZXJfaAogCiAjaW1wb3J0IDx3
dGYvSGFzaE1hcC5oPgotI2ltcG9ydCA8d3RmL1Bhc3NSZWZQdHIuaD4KICNpbXBvcnQgPHd0Zi9O
ZXZlckRlc3Ryb3llZC5oPgorI2ltcG9ydCA8d3RmL1JlZlB0ci5oPgogI2ltcG9ydCA8d3RmL3Rl
eHQvU3RyaW5nSGFzaC5oPgogI2ltcG9ydCA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKQEAgLTQ1
LDcgKzQ1LDcgQEAgY2xhc3MgTmV0c2NhcGVQbHVnaW5Ib3N0TWFuYWdlciB7CiBwdWJsaWM6CiAg
ICAgc3RhdGljIE5ldHNjYXBlUGx1Z2luSG9zdE1hbmFnZXImIHNpbmdsZXRvbigpOwogICAgIAot
ICAgIFBhc3NSZWZQdHI8TmV0c2NhcGVQbHVnaW5JbnN0YW5jZVByb3h5PiBpbnN0YW50aWF0ZVBs
dWdpbihjb25zdCBTdHJpbmcmIHBsdWdpblBhdGgsIGNwdV90eXBlX3QgcGx1Z2luQXJjaGl0ZWN0
dXJlLCBjb25zdCBTdHJpbmcmIGJ1bmRsZUlkZW50aWZpZXIsIFdlYkhvc3RlZE5ldHNjYXBlUGx1
Z2luVmlldyAqLCBOU1N0cmluZyAqbWltZVR5cGUsIE5TQXJyYXkgKmF0dHJpYnV0ZUtleXMsIE5T
QXJyYXkgKmF0dHJpYnV0ZVZhbHVlcywgTlNTdHJpbmcgKnVzZXJBZ2VudCwgTlNVUkwgKnNvdXJj
ZVVSTCwgYm9vbCBmdWxsRnJhbWUsIGJvb2wgaXNQcml2YXRlQnJvd3NpbmdFbmFibGVkLCBib29s
IGlzQWNjZWxlcmF0ZWRDb21wb3NpdGluZ0VuYWJsZWQsIGJvb2wgaG9zdExheWVyc0luV2luZG93
U2VydmVyKTsKKyAgICBSZWZQdHI8TmV0c2NhcGVQbHVnaW5JbnN0YW5jZVByb3h5PiBpbnN0YW50
aWF0ZVBsdWdpbihjb25zdCBTdHJpbmcmIHBsdWdpblBhdGgsIGNwdV90eXBlX3QgcGx1Z2luQXJj
aGl0ZWN0dXJlLCBjb25zdCBTdHJpbmcmIGJ1bmRsZUlkZW50aWZpZXIsIFdlYkhvc3RlZE5ldHNj
YXBlUGx1Z2luVmlldyAqLCBOU1N0cmluZyAqbWltZVR5cGUsIE5TQXJyYXkgKmF0dHJpYnV0ZUtl
eXMsIE5TQXJyYXkgKmF0dHJpYnV0ZVZhbHVlcywgTlNTdHJpbmcgKnVzZXJBZ2VudCwgTlNVUkwg
KnNvdXJjZVVSTCwgYm9vbCBmdWxsRnJhbWUsIGJvb2wgaXNQcml2YXRlQnJvd3NpbmdFbmFibGVk
LCBib29sIGlzQWNjZWxlcmF0ZWRDb21wb3NpdGluZ0VuYWJsZWQsIGJvb2wgaG9zdExheWVyc0lu
V2luZG93U2VydmVyKTsKIAogICAgIHZvaWQgcGx1Z2luSG9zdERpZWQoTmV0c2NhcGVQbHVnaW5I
b3N0UHJveHkqKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvUGx1Z2lucy9Ib3N0
ZWQvTmV0c2NhcGVQbHVnaW5Ib3N0TWFuYWdlci5tbSBiL1NvdXJjZS9XZWJLaXQvbWFjL1BsdWdp
bnMvSG9zdGVkL05ldHNjYXBlUGx1Z2luSG9zdE1hbmFnZXIubW0KaW5kZXggZTRiN2M4OTlhNjVh
MjQzOGI4YjM2YWQ0Mzg3OGQ4YThiNWQ4ZTViYy4uZDc3MjYyODA1MDVhZjIxNmE1OWRhNGUwZjJh
ODhkNjk5YmZiN2YxNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvUGx1Z2lucy9Ib3N0
ZWQvTmV0c2NhcGVQbHVnaW5Ib3N0TWFuYWdlci5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9Q
bHVnaW5zL0hvc3RlZC9OZXRzY2FwZVBsdWdpbkhvc3RNYW5hZ2VyLm1tCkBAIC0yMTMsMTEgKzIx
MywxMSBAQCB2b2lkIE5ldHNjYXBlUGx1Z2luSG9zdE1hbmFnZXI6OnBsdWdpbkhvc3REaWVkKE5l
dHNjYXBlUGx1Z2luSG9zdFByb3h5KiBwbHVnaW5IbwogICAgIH0KIH0KIAotUGFzc1JlZlB0cjxO
ZXRzY2FwZVBsdWdpbkluc3RhbmNlUHJveHk+IE5ldHNjYXBlUGx1Z2luSG9zdE1hbmFnZXI6Omlu
c3RhbnRpYXRlUGx1Z2luKGNvbnN0IFN0cmluZyYgcGx1Z2luUGF0aCwgY3B1X3R5cGVfdCBwbHVn
aW5BcmNoaXRlY3R1cmUsIGNvbnN0IFN0cmluZyYgYnVuZGxlSWRlbnRpZmllciwgV2ViSG9zdGVk
TmV0c2NhcGVQbHVnaW5WaWV3ICpwbHVnaW5WaWV3LCBOU1N0cmluZyAqbWltZVR5cGUsIE5TQXJy
YXkgKmF0dHJpYnV0ZUtleXMsIE5TQXJyYXkgKmF0dHJpYnV0ZVZhbHVlcywgTlNTdHJpbmcgKnVz
ZXJBZ2VudCwgTlNVUkwgKnNvdXJjZVVSTCwgYm9vbCBmdWxsRnJhbWUsIGJvb2wgaXNQcml2YXRl
QnJvd3NpbmdFbmFibGVkLCBib29sIGlzQWNjZWxlcmF0ZWRDb21wb3NpdGluZ0VuYWJsZWQsIGJv
b2wgaG9zdExheWVyc0luV2luZG93U2VydmVyKQorUmVmUHRyPE5ldHNjYXBlUGx1Z2luSW5zdGFu
Y2VQcm94eT4gTmV0c2NhcGVQbHVnaW5Ib3N0TWFuYWdlcjo6aW5zdGFudGlhdGVQbHVnaW4oY29u
c3QgU3RyaW5nJiBwbHVnaW5QYXRoLCBjcHVfdHlwZV90IHBsdWdpbkFyY2hpdGVjdHVyZSwgY29u
c3QgU3RyaW5nJiBidW5kbGVJZGVudGlmaWVyLCBXZWJIb3N0ZWROZXRzY2FwZVBsdWdpblZpZXcg
KnBsdWdpblZpZXcsIE5TU3RyaW5nICptaW1lVHlwZSwgTlNBcnJheSAqYXR0cmlidXRlS2V5cywg
TlNBcnJheSAqYXR0cmlidXRlVmFsdWVzLCBOU1N0cmluZyAqdXNlckFnZW50LCBOU1VSTCAqc291
cmNlVVJMLCBib29sIGZ1bGxGcmFtZSwgYm9vbCBpc1ByaXZhdGVCcm93c2luZ0VuYWJsZWQsIGJv
b2wgaXNBY2NlbGVyYXRlZENvbXBvc2l0aW5nRW5hYmxlZCwgYm9vbCBob3N0TGF5ZXJzSW5XaW5k
b3dTZXJ2ZXIpCiB7CiAgICAgTmV0c2NhcGVQbHVnaW5Ib3N0UHJveHkqIGhvc3RQcm94eSA9IGhv
c3RGb3JQbHVnaW4ocGx1Z2luUGF0aCwgcGx1Z2luQXJjaGl0ZWN0dXJlLCBidW5kbGVJZGVudGlm
aWVyKTsKICAgICBpZiAoIWhvc3RQcm94eSkKLSAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIHJl
dHVybiBudWxscHRyOwogCiAgICAgUmV0YWluUHRyPE5TTXV0YWJsZURpY3Rpb25hcnk+IHByb3Bl
cnRpZXMgPSBhZG9wdE5TKFtbTlNNdXRhYmxlRGljdGlvbmFyeSBhbGxvY10gaW5pdF0pOwogICAg
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvUGx1Z2lucy9Ib3N0ZWQvTmV0c2NhcGVQ
bHVnaW5JbnN0YW5jZVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L21hYy9QbHVnaW5zL0hvc3RlZC9O
ZXRzY2FwZVBsdWdpbkluc3RhbmNlUHJveHkuaAppbmRleCA2Y2FlMDI3MjcxNDk1MmViNmMxOTIz
YThkMGQyNGY2OTIyMDUxYjlmLi42NTIwNWZjNGM3ZDZkMWU2ODdhOGFiZWE1NDQ3YTdmNmY5N2Q0
MTAwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9QbHVnaW5zL0hvc3RlZC9OZXRzY2Fw
ZVBsdWdpbkluc3RhbmNlUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9QbHVnaW5zL0hv
c3RlZC9OZXRzY2FwZVBsdWdpbkluc3RhbmNlUHJveHkuaApAQCAtMzYsNyArMzYsNyBAQAogI2lu
Y2x1ZGUgPHd0Zi9EZXF1ZS5oPgogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAjaW5jbHVkZSA8
d3RmL0hhc2hNYXAuaD4KLSNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0
Zi9SZWYuaD4KICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgogI2luY2x1ZGUgPHd0Zi9SZXRh
aW5QdHIuaD4KICNpbmNsdWRlICJXZWJLaXRQbHVnaW5Ib3N0VHlwZXMuaCIKQEAgLTYwLDcgKzYw
LDcgQEAgY2xhc3MgUHJveHlJbnN0YW5jZTsKICAgICAKIGNsYXNzIE5ldHNjYXBlUGx1Z2luSW5z
dGFuY2VQcm94eSA6IHB1YmxpYyBSZWZDb3VudGVkPE5ldHNjYXBlUGx1Z2luSW5zdGFuY2VQcm94
eT4gewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPE5ldHNjYXBlUGx1Z2luSW5zdGFu
Y2VQcm94eT4gY3JlYXRlKE5ldHNjYXBlUGx1Z2luSG9zdFByb3h5KiwgV2ViSG9zdGVkTmV0c2Nh
cGVQbHVnaW5WaWV3ICosIGJvb2wgZnVsbEZyYW1lUGx1Z2luKTsKKyAgICBzdGF0aWMgUmVmPE5l
dHNjYXBlUGx1Z2luSW5zdGFuY2VQcm94eT4gY3JlYXRlKE5ldHNjYXBlUGx1Z2luSG9zdFByb3h5
KiwgV2ViSG9zdGVkTmV0c2NhcGVQbHVnaW5WaWV3ICosIGJvb2wgZnVsbEZyYW1lUGx1Z2luKTsK
ICAgICB+TmV0c2NhcGVQbHVnaW5JbnN0YW5jZVByb3h5KCk7CiAgICAgCiAgICAgdWludDMyX3Qg
cGx1Z2luSUQoKSBjb25zdCAKQEAgLTgxLDcgKzgxLDcgQEAgcHVibGljOgogICAgIGJvb2wgY2Fu
Y2VsU3RyZWFtTG9hZCh1aW50MzJfdCBzdHJlYW1JRCwgTlBSZWFzb24pOwogICAgIHZvaWQgZGlz
Y29ubmVjdFN0cmVhbShIb3N0ZWROZXRzY2FwZVBsdWdpblN0cmVhbSopOwogICAgIAotICAgIHZv
aWQgc2V0TWFudWFsU3RyZWFtKFBhc3NSZWZQdHI8SG9zdGVkTmV0c2NhcGVQbHVnaW5TdHJlYW0+
KTsKKyAgICB2b2lkIHNldE1hbnVhbFN0cmVhbShSZWY8SG9zdGVkTmV0c2NhcGVQbHVnaW5TdHJl
YW0+JiYpOwogICAgIEhvc3RlZE5ldHNjYXBlUGx1Z2luU3RyZWFtKiBtYW51YWxTdHJlYW0oKSBj
b25zdCB7IHJldHVybiBtX21hbnVhbFN0cmVhbS5nZXQoKTsgfQogICAgIAogICAgIHZvaWQgcGx1
Z2luSG9zdERpZWQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1BsdWdpbnMvSG9z
dGVkL05ldHNjYXBlUGx1Z2luSW5zdGFuY2VQcm94eS5tbSBiL1NvdXJjZS9XZWJLaXQvbWFjL1Bs
dWdpbnMvSG9zdGVkL05ldHNjYXBlUGx1Z2luSW5zdGFuY2VQcm94eS5tbQppbmRleCBmNjg1OGQz
ZGExMDZiYzMyNTQ4MWJiNTgxY2Q3MWM2MTI0YzA1ZTcyLi5mYjg5NzRkOTA1MGY5MmQ3ZGIwOGQx
ZGNlM2RiMmU5ZTVlNDAzZGVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9QbHVnaW5z
L0hvc3RlZC9OZXRzY2FwZVBsdWdpbkluc3RhbmNlUHJveHkubW0KKysrIGIvU291cmNlL1dlYktp
dC9tYWMvUGx1Z2lucy9Ib3N0ZWQvTmV0c2NhcGVQbHVnaW5JbnN0YW5jZVByb3h5Lm1tCkBAIC04
MSw5ICs4MSw5IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogCiBjbGFzcyBOZXRzY2FwZVBsdWdpbklu
c3RhbmNlUHJveHk6OlBsdWdpblJlcXVlc3QgOiBwdWJsaWMgUmVmQ291bnRlZDxOZXRzY2FwZVBs
dWdpbkluc3RhbmNlUHJveHk6OlBsdWdpblJlcXVlc3Q+IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMg
UGFzc1JlZlB0cjxQbHVnaW5SZXF1ZXN0PiBjcmVhdGUodWludDMyX3QgcmVxdWVzdElELCBOU1VS
TFJlcXVlc3QqIHJlcXVlc3QsIE5TU3RyaW5nKiBmcmFtZU5hbWUsIGJvb2wgYWxsb3dQb3B1cHMp
CisgICAgc3RhdGljIFJlZjxQbHVnaW5SZXF1ZXN0PiBjcmVhdGUodWludDMyX3QgcmVxdWVzdElE
LCBOU1VSTFJlcXVlc3QqIHJlcXVlc3QsIE5TU3RyaW5nKiBmcmFtZU5hbWUsIGJvb2wgYWxsb3dQ
b3B1cHMpCiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IFBsdWdpblJlcXVlc3Qo
cmVxdWVzdElELCByZXF1ZXN0LCBmcmFtZU5hbWUsIGFsbG93UG9wdXBzKSk7CisgICAgICAgIHJl
dHVybiBhZG9wdFJlZigqbmV3IFBsdWdpblJlcXVlc3QocmVxdWVzdElELCByZXF1ZXN0LCBmcmFt
ZU5hbWUsIGFsbG93UG9wdXBzKSk7CiAgICAgfQogCiAgICAgdWludDMyX3QgcmVxdWVzdElEKCkg
Y29uc3QgeyByZXR1cm4gbV9yZXF1ZXN0SUQ7IH0KQEAgLTI0NiwxMSArMjQ2LDExIEBAIE5ldHNj
YXBlUGx1Z2luSW5zdGFuY2VQcm94eTo6TmV0c2NhcGVQbHVnaW5JbnN0YW5jZVByb3h5KE5ldHNj
YXBlUGx1Z2luSG9zdFByb3h5CiAjZW5kaWYKIH0KIAotUGFzc1JlZlB0cjxOZXRzY2FwZVBsdWdp
bkluc3RhbmNlUHJveHk+IE5ldHNjYXBlUGx1Z2luSW5zdGFuY2VQcm94eTo6Y3JlYXRlKE5ldHNj
YXBlUGx1Z2luSG9zdFByb3h5KiBwbHVnaW5Ib3N0UHJveHksIFdlYkhvc3RlZE5ldHNjYXBlUGx1
Z2luVmlldyAqcGx1Z2luVmlldywgYm9vbCBmdWxsRnJhbWVQbHVnaW4pCitSZWY8TmV0c2NhcGVQ
bHVnaW5JbnN0YW5jZVByb3h5PiBOZXRzY2FwZVBsdWdpbkluc3RhbmNlUHJveHk6OmNyZWF0ZShO
ZXRzY2FwZVBsdWdpbkhvc3RQcm94eSogcGx1Z2luSG9zdFByb3h5LCBXZWJIb3N0ZWROZXRzY2Fw
ZVBsdWdpblZpZXcgKnBsdWdpblZpZXcsIGJvb2wgZnVsbEZyYW1lUGx1Z2luKQogewogICAgIGF1
dG8gcHJveHkgPSBhZG9wdFJlZigqbmV3IE5ldHNjYXBlUGx1Z2luSW5zdGFuY2VQcm94eShwbHVn
aW5Ib3N0UHJveHksIHBsdWdpblZpZXcsIGZ1bGxGcmFtZVBsdWdpbikpOwogICAgIHBsdWdpbkhv
c3RQcm94eS0+YWRkUGx1Z2luSW5zdGFuY2UocHJveHkucHRyKCkpOwotICAgIHJldHVybiBXVEZN
b3ZlKHByb3h5KTsKKyAgICByZXR1cm4gcHJveHk7CiB9CiAKIE5ldHNjYXBlUGx1Z2luSW5zdGFu
Y2VQcm94eTo6fk5ldHNjYXBlUGx1Z2luSW5zdGFuY2VQcm94eSgpCkBAIC0zNTksMTEgKzM1OSwx
MSBAQCB2b2lkIE5ldHNjYXBlUGx1Z2luSW5zdGFuY2VQcm94eTo6ZGVzdHJveSgpCiAgICAgaW52
YWxpZGF0ZSgpOwogfQogCi12b2lkIE5ldHNjYXBlUGx1Z2luSW5zdGFuY2VQcm94eTo6c2V0TWFu
dWFsU3RyZWFtKFBhc3NSZWZQdHI8SG9zdGVkTmV0c2NhcGVQbHVnaW5TdHJlYW0+IG1hbnVhbFN0
cmVhbSkgCit2b2lkIE5ldHNjYXBlUGx1Z2luSW5zdGFuY2VQcm94eTo6c2V0TWFudWFsU3RyZWFt
KFJlZjxIb3N0ZWROZXRzY2FwZVBsdWdpblN0cmVhbT4mJiBtYW51YWxTdHJlYW0pCiB7CiAgICAg
QVNTRVJUKCFtX21hbnVhbFN0cmVhbSk7CiAgICAgCi0gICAgbV9tYW51YWxTdHJlYW0gPSBtYW51
YWxTdHJlYW07CisgICAgbV9tYW51YWxTdHJlYW0gPSBXVEZNb3ZlKG1hbnVhbFN0cmVhbSk7CiB9
CiAKIGJvb2wgTmV0c2NhcGVQbHVnaW5JbnN0YW5jZVByb3h5OjpjYW5jZWxTdHJlYW1Mb2FkKHVp
bnQzMl90IHN0cmVhbUlELCBOUFJlYXNvbiByZWFzb24pIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9tYWMvUGx1Z2lucy9Ib3N0ZWQvUHJveHlJbnN0YW5jZS5oIGIvU291cmNlL1dlYktpdC9t
YWMvUGx1Z2lucy9Ib3N0ZWQvUHJveHlJbnN0YW5jZS5oCmluZGV4IGFmYmExMDIwZDk1ZGFlYjYz
ZTE3YzdmYjkzMjE0MWFlOGU5NGQ4N2UuLjNiMDIyMGIyNjE3NTEwM2ZlOGQ3MTE4MmIzMTY1ZTNl
NTYwNTI3MzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1BsdWdpbnMvSG9zdGVkL1By
b3h5SW5zdGFuY2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9QbHVnaW5zL0hvc3RlZC9Qcm94
eUluc3RhbmNlLmgKQEAgLTM5LDkgKzM5LDkgQEAgY2xhc3MgUHJveHlDbGFzczsKICAgICAKIGNs
YXNzIFByb3h5SW5zdGFuY2UgOiBwdWJsaWMgSlNDOjpCaW5kaW5nczo6SW5zdGFuY2UgewogcHVi
bGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFByb3h5SW5zdGFuY2U+IGNyZWF0ZShQYXNzUmVm
UHRyPEpTQzo6QmluZGluZ3M6OlJvb3RPYmplY3Q+IHJvb3RPYmplY3QsIE5ldHNjYXBlUGx1Z2lu
SW5zdGFuY2VQcm94eSogaW5zdGFuY2VQcm94eSwgdWludDMyX3Qgb2JqZWN0SUQpCisgICAgc3Rh
dGljIFJlZjxQcm94eUluc3RhbmNlPiBjcmVhdGUoUmVmPEpTQzo6QmluZGluZ3M6OlJvb3RPYmpl
Y3Q+JiYgcm9vdE9iamVjdCwgTmV0c2NhcGVQbHVnaW5JbnN0YW5jZVByb3h5KiBpbnN0YW5jZVBy
b3h5LCB1aW50MzJfdCBvYmplY3RJRCkKICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZihu
ZXcgUHJveHlJbnN0YW5jZShyb290T2JqZWN0LCBpbnN0YW5jZVByb3h5LCBvYmplY3RJRCkpOwor
ICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBQcm94eUluc3RhbmNlKFdURk1vdmUocm9vdE9i
amVjdCksIGluc3RhbmNlUHJveHksIG9iamVjdElEKSk7CiAgICAgfQogICAgIH5Qcm94eUluc3Rh
bmNlKCk7CiAKQEAgLTU5LDcgKzU5LDcgQEAgcHVibGljOgogICAgIHVpbnQzMl90IG9iamVjdElE
KCkgY29uc3QgeyByZXR1cm4gbV9vYmplY3RJRDsgfQogICAgIAogcHJpdmF0ZToKLSAgICBQcm94
eUluc3RhbmNlKFBhc3NSZWZQdHI8SlNDOjpCaW5kaW5nczo6Um9vdE9iamVjdD4sIE5ldHNjYXBl
UGx1Z2luSW5zdGFuY2VQcm94eSosIHVpbnQzMl90IG9iamVjdElEKTsKKyAgICBQcm94eUluc3Rh
bmNlKFJlZjxKU0M6OkJpbmRpbmdzOjpSb290T2JqZWN0PiYmLCBOZXRzY2FwZVBsdWdpbkluc3Rh
bmNlUHJveHkqLCB1aW50MzJfdCBvYmplY3RJRCk7CiAKICAgICB2aXJ0dWFsIEpTQzo6QmluZGlu
Z3M6OlJ1bnRpbWVPYmplY3QqIG5ld1J1bnRpbWVPYmplY3QoSlNDOjpFeGVjU3RhdGUqKTsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvUGx1Z2lucy9Ib3N0ZWQvUHJveHlJbnN0YW5j
ZS5tbSBiL1NvdXJjZS9XZWJLaXQvbWFjL1BsdWdpbnMvSG9zdGVkL1Byb3h5SW5zdGFuY2UubW0K
aW5kZXggMzcxYzUxOTczNTcxYTFkYmRmZGNjNzNhNzk0ZDYyMTYyZmIyOGVjNi4uOWMwMGQ3Yzhj
NjRhNWIxMjQ0ZDdjOTA0NGMzMWI2OWM5NGFjMmFlZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9tYWMvUGx1Z2lucy9Ib3N0ZWQvUHJveHlJbnN0YW5jZS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0
L21hYy9QbHVnaW5zL0hvc3RlZC9Qcm94eUluc3RhbmNlLm1tCkBAIC0xMTIsOCArMTEyLDggQEAg
cHJpdmF0ZToKICAgICB1aW50NjRfdCBtX3NlcnZlcklkZW50aWZpZXI7CiB9OwogCi1Qcm94eUlu
c3RhbmNlOjpQcm94eUluc3RhbmNlKFBhc3NSZWZQdHI8Um9vdE9iamVjdD4gcm9vdE9iamVjdCwg
TmV0c2NhcGVQbHVnaW5JbnN0YW5jZVByb3h5KiBpbnN0YW5jZVByb3h5LCB1aW50MzJfdCBvYmpl
Y3RJRCkKLSAgICA6IEluc3RhbmNlKHJvb3RPYmplY3QpCitQcm94eUluc3RhbmNlOjpQcm94eUlu
c3RhbmNlKFJlZjxSb290T2JqZWN0PiYmIHJvb3RPYmplY3QsIE5ldHNjYXBlUGx1Z2luSW5zdGFu
Y2VQcm94eSogaW5zdGFuY2VQcm94eSwgdWludDMyX3Qgb2JqZWN0SUQpCisgICAgOiBJbnN0YW5j
ZShXVEZNb3ZlKHJvb3RPYmplY3QpKQogICAgICwgbV9pbnN0YW5jZVByb3h5KGluc3RhbmNlUHJv
eHkpCiAgICAgLCBtX29iamVjdElEKG9iamVjdElEKQogewpAQCAtMTMzLDcgKzEzMyw3IEBAIFBy
b3h5SW5zdGFuY2U6On5Qcm94eUluc3RhbmNlKCkKIFJ1bnRpbWVPYmplY3QqIFByb3h5SW5zdGFu
Y2U6Om5ld1J1bnRpbWVPYmplY3QoRXhlY1N0YXRlKiBleGVjKQogewogICAgIC8vIEZJWE1FOiBk
ZXByZWNhdGVkR2V0RE9NU3RydWN0dXJlIHVzZXMgdGhlIHByb3RvdHlwZSBvZmYgb2YgdGhlIHdy
b25nIGdsb2JhbCBvYmplY3QuCi0gICAgcmV0dXJuIFByb3h5UnVudGltZU9iamVjdDo6Y3JlYXRl
KGV4ZWMtPnZtKCksIFdlYkNvcmU6OmRlcHJlY2F0ZWRHZXRET01TdHJ1Y3R1cmU8UHJveHlSdW50
aW1lT2JqZWN0PihleGVjKSwgdGhpcyk7CisgICAgcmV0dXJuIFByb3h5UnVudGltZU9iamVjdDo6
Y3JlYXRlKGV4ZWMtPnZtKCksIFdlYkNvcmU6OmRlcHJlY2F0ZWRHZXRET01TdHJ1Y3R1cmU8UHJv
eHlSdW50aW1lT2JqZWN0PihleGVjKSwgKnRoaXMpOwogfQogCiBKU0M6OkJpbmRpbmdzOjpDbGFz
cyogUHJveHlJbnN0YW5jZTo6Z2V0Q2xhc3MoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9tYWMvUGx1Z2lucy9Ib3N0ZWQvUHJveHlSdW50aW1lT2JqZWN0LmggYi9Tb3VyY2UvV2Vi
S2l0L21hYy9QbHVnaW5zL0hvc3RlZC9Qcm94eVJ1bnRpbWVPYmplY3QuaAppbmRleCBjYmFiNmU5
ODI1OWRiYzhhZTQ1ZDdmNmZkOTBhYWIwMmUwM2ZkNjkzLi42ZGQwODg1MDQ0OTA2MDRkYmJjNjQx
OWZiMjM3MjY1ZGI2MGJjNjIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9QbHVnaW5z
L0hvc3RlZC9Qcm94eVJ1bnRpbWVPYmplY3QuaAorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9QbHVn
aW5zL0hvc3RlZC9Qcm94eVJ1bnRpbWVPYmplY3QuaApAQCAtMzksOSArMzksOSBAQCBjbGFzcyBQ
cm94eVJ1bnRpbWVPYmplY3QgOiBwdWJsaWMgSlNDOjpCaW5kaW5nczo6UnVudGltZU9iamVjdCB7
CiBwdWJsaWM6CiAgICAgdHlwZWRlZiBKU0M6OkJpbmRpbmdzOjpSdW50aW1lT2JqZWN0IEJhc2U7
CiAKLSAgICBzdGF0aWMgUHJveHlSdW50aW1lT2JqZWN0KiBjcmVhdGUoSlNDOjpWTSYgdm0sIEpT
Qzo6U3RydWN0dXJlKiBzdHJ1Y3R1cmUsIFBhc3NSZWZQdHI8UHJveHlJbnN0YW5jZT4gaW5zdGFu
Y2UpCisgICAgc3RhdGljIFByb3h5UnVudGltZU9iamVjdCogY3JlYXRlKEpTQzo6Vk0mIHZtLCBK
U0M6OlN0cnVjdHVyZSogc3RydWN0dXJlLCBSZWY8UHJveHlJbnN0YW5jZT4mJiBpbnN0YW5jZSkK
ICAgICB7Ci0gICAgICAgIFByb3h5UnVudGltZU9iamVjdCogb2JqZWN0ID0gbmV3IChKU0M6OmFs
bG9jYXRlQ2VsbDxQcm94eVJ1bnRpbWVPYmplY3Q+KHZtLmhlYXApKSBQcm94eVJ1bnRpbWVPYmpl
Y3Qodm0sIHN0cnVjdHVyZSwgaW5zdGFuY2UpOworICAgICAgICBQcm94eVJ1bnRpbWVPYmplY3Qq
IG9iamVjdCA9IG5ldyAoSlNDOjphbGxvY2F0ZUNlbGw8UHJveHlSdW50aW1lT2JqZWN0Pih2bS5o
ZWFwKSkgUHJveHlSdW50aW1lT2JqZWN0KHZtLCBzdHJ1Y3R1cmUsIFdURk1vdmUoaW5zdGFuY2Up
KTsKICAgICAgICAgb2JqZWN0LT5maW5pc2hDcmVhdGlvbih2bSk7CiAgICAgICAgIHJldHVybiBv
YmplY3Q7CiAgICAgfQpAQCAtNTYsNyArNTYsNyBAQCBwdWJsaWM6CiAgICAgREVDTEFSRV9JTkZP
OwogCiBwcml2YXRlOgotICAgIFByb3h5UnVudGltZU9iamVjdChKU0M6OlZNJiwgSlNDOjpTdHJ1
Y3R1cmUqLCBQYXNzUmVmUHRyPFByb3h5SW5zdGFuY2U+KTsKKyAgICBQcm94eVJ1bnRpbWVPYmpl
Y3QoSlNDOjpWTSYsIEpTQzo6U3RydWN0dXJlKiwgUmVmPFByb3h5SW5zdGFuY2U+JiYpOwogICAg
IHZvaWQgZmluaXNoQ3JlYXRpb24oSlNDOjpWTSYpOwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9tYWMvUGx1Z2lucy9Ib3N0ZWQvUHJveHlSdW50aW1lT2JqZWN0Lm1tIGIvU291cmNl
L1dlYktpdC9tYWMvUGx1Z2lucy9Ib3N0ZWQvUHJveHlSdW50aW1lT2JqZWN0Lm1tCmluZGV4IDVl
NmQyYjMzYzExNjFkODRiNDI4OTk0MWY0MGVkMGIwMjQwYzkyMzguLjkyN2VmYWYxNDNlNmY3NzBh
ZThhZjFjODJmZmZiZGY0NjRjMGI4YjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1Bs
dWdpbnMvSG9zdGVkL1Byb3h5UnVudGltZU9iamVjdC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21h
Yy9QbHVnaW5zL0hvc3RlZC9Qcm94eVJ1bnRpbWVPYmplY3QubW0KQEAgLTM2LDggKzM2LDggQEAg
bmFtZXNwYWNlIFdlYktpdCB7CiAKIGNvbnN0IENsYXNzSW5mbyBQcm94eVJ1bnRpbWVPYmplY3Q6
OnNfaW5mbyA9IHsgIlByb3h5UnVudGltZU9iamVjdCIsICZSdW50aW1lT2JqZWN0OjpzX2luZm8s
IDAsIENSRUFURV9NRVRIT0RfVEFCTEUoUHJveHlSdW50aW1lT2JqZWN0KSB9OwogCi1Qcm94eVJ1
bnRpbWVPYmplY3Q6OlByb3h5UnVudGltZU9iamVjdChWTSYgdm0sIFN0cnVjdHVyZSogc3RydWN0
dXJlLCBQYXNzUmVmUHRyPFByb3h5SW5zdGFuY2U+IGluc3RhbmNlKQotICAgIDogUnVudGltZU9i
amVjdCh2bSwgc3RydWN0dXJlLCBpbnN0YW5jZSkKK1Byb3h5UnVudGltZU9iamVjdDo6UHJveHlS
dW50aW1lT2JqZWN0KFZNJiB2bSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIFJlZjxQcm94eUluc3Rh
bmNlPiYmIGluc3RhbmNlKQorICAgIDogUnVudGltZU9iamVjdCh2bSwgc3RydWN0dXJlLCBXVEZN
b3ZlKGluc3RhbmNlKSkKIHsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvUGx1
Z2lucy9Ib3N0ZWQvV2ViSG9zdGVkTmV0c2NhcGVQbHVnaW5WaWV3LmggYi9Tb3VyY2UvV2ViS2l0
L21hYy9QbHVnaW5zL0hvc3RlZC9XZWJIb3N0ZWROZXRzY2FwZVBsdWdpblZpZXcuaAppbmRleCAx
Y2FlMDg1OTFjNzM4YzcxZmY2NGRmZDQ1NjBhMWRmZDIzZDQwM2Y3Li44MWY1OTA2ZTdjNWRiMWI0
OTgzOTZlYzY5MmYwOWIwZjJjMzMzYTY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9Q
bHVnaW5zL0hvc3RlZC9XZWJIb3N0ZWROZXRzY2FwZVBsdWdpblZpZXcuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L21hYy9QbHVnaW5zL0hvc3RlZC9XZWJIb3N0ZWROZXRzY2FwZVBsdWdpblZpZXcuaApA
QCAtNTYsNyArNTYsNyBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKICAgICAgIGF0dHJpYnV0ZUtleXM6
KE5TQXJyYXkgKilrZXlzCiAgICAgYXR0cmlidXRlVmFsdWVzOihOU0FycmF5ICopdmFsdWVzCiAg
ICAgICAgbG9hZE1hbnVhbGx5OihCT09MKWxvYWRNYW51YWxseQotICAgICAgICAgICAgZWxlbWVu
dDooUGFzc1JlZlB0cjxXZWJDb3JlOjpIVE1MUGx1Z0luRWxlbWVudD4pZWxlbWVudDsKKyAgICAg
ICAgICAgIGVsZW1lbnQ6KFJlZlB0cjxXZWJDb3JlOjpIVE1MUGx1Z0luRWxlbWVudD4mJillbGVt
ZW50OwogCiAtICh2b2lkKXBsdWdpbkhvc3REaWVkOwogLSAoQ0FMYXllciAqKXBsdWdpbkxheWVy
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvUGx1Z2lucy9Ib3N0ZWQvV2ViSG9zdGVk
TmV0c2NhcGVQbHVnaW5WaWV3Lm1tIGIvU291cmNlL1dlYktpdC9tYWMvUGx1Z2lucy9Ib3N0ZWQv
V2ViSG9zdGVkTmV0c2NhcGVQbHVnaW5WaWV3Lm1tCmluZGV4IDI1ODg5YjdhMTBlOGMyZWNiMWI2
MGQ0OWQ4NjI1YTU5N2YwMzQ3MjMuLjllMjA0NGUyNmUxMzkwMjFlYjhjYTYzMzYyNTVmMmM4MzNj
MWI4YjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1BsdWdpbnMvSG9zdGVkL1dlYkhv
c3RlZE5ldHNjYXBlUGx1Z2luVmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9QbHVnaW5z
L0hvc3RlZC9XZWJIb3N0ZWROZXRzY2FwZVBsdWdpblZpZXcubW0KQEAgLTg3LDkgKzg3LDkgQEAg
LSAoaWQpaW5pdFdpdGhGcmFtZTooTlNSZWN0KWZyYW1lCiAgICAgICBhdHRyaWJ1dGVLZXlzOihO
U0FycmF5ICopa2V5cwogICAgIGF0dHJpYnV0ZVZhbHVlczooTlNBcnJheSAqKXZhbHVlcwogICAg
ICAgIGxvYWRNYW51YWxseTooQk9PTClsb2FkTWFudWFsbHkKLSAgICAgICAgICAgIGVsZW1lbnQ6
KFBhc3NSZWZQdHI8V2ViQ29yZTo6SFRNTFBsdWdJbkVsZW1lbnQ+KWVsZW1lbnQKKyAgICAgICAg
ICAgIGVsZW1lbnQ6KFJlZlB0cjxXZWJDb3JlOjpIVE1MUGx1Z0luRWxlbWVudD4mJillbGVtZW50
CiB7Ci0gICAgc2VsZiA9IFtzdXBlciBpbml0V2l0aEZyYW1lOmZyYW1lIHBsdWdpblBhY2thZ2U6
cGx1Z2luUGFja2FnZSBVUkw6VVJMIGJhc2VVUkw6YmFzZVVSTCBNSU1FVHlwZTpNSU1FIGF0dHJp
YnV0ZUtleXM6a2V5cyBhdHRyaWJ1dGVWYWx1ZXM6dmFsdWVzIGxvYWRNYW51YWxseTpsb2FkTWFu
dWFsbHkgZWxlbWVudDplbGVtZW50XTsKKyAgICBzZWxmID0gW3N1cGVyIGluaXRXaXRoRnJhbWU6
ZnJhbWUgcGx1Z2luUGFja2FnZTpwbHVnaW5QYWNrYWdlIFVSTDpVUkwgYmFzZVVSTDpiYXNlVVJM
IE1JTUVUeXBlOk1JTUUgYXR0cmlidXRlS2V5czprZXlzIGF0dHJpYnV0ZVZhbHVlczp2YWx1ZXMg
bG9hZE1hbnVhbGx5OmxvYWRNYW51YWxseSBlbGVtZW50OldURk1vdmUoZWxlbWVudCldOwogICAg
IGlmICghc2VsZikKICAgICAgICAgcmV0dXJuIG5pbDsKICAgICAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvbWFjL1BsdWdpbnMvV2ViQmFzZU5ldHNjYXBlUGx1Z2luVmlldy5oIGIvU291cmNl
L1dlYktpdC9tYWMvUGx1Z2lucy9XZWJCYXNlTmV0c2NhcGVQbHVnaW5WaWV3LmgKaW5kZXggMjQ5
OWIzZDk5NzJmNWQ1MDk1YzhhZjZhODBmZDVmY2VhYzY1MjRiMC4uY2YwNDg1OGI1OTZlOTNhN2Zk
OWM4MzBhMWY3MWE0N2EyOTRmYjNjYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvUGx1
Z2lucy9XZWJCYXNlTmV0c2NhcGVQbHVnaW5WaWV3LmgKKysrIGIvU291cmNlL1dlYktpdC9tYWMv
UGx1Z2lucy9XZWJCYXNlTmV0c2NhcGVQbHVnaW5WaWV3LmgKQEAgLTMxLDcgKzMxLDYgQEAKIAog
I2ltcG9ydCAiV2ViTmV0c2NhcGVQbHVnaW5QYWNrYWdlLmgiCiAjaW1wb3J0IDx3dGYvRm9yd2Fy
ZC5oPgotI2ltcG9ydCA8d3RmL1Bhc3NSZWZQdHIuaD4KICNpbXBvcnQgPHd0Zi9SZWZQdHIuaD4K
ICNpbXBvcnQgPHd0Zi9SZXRhaW5QdHIuaD4KIApAQCAtNzgsNyArNzcsNyBAQCBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAgICAgICBhdHRyaWJ1dGVLZXlzOihOU0FycmF5ICopa2V5cwogICAgIGF0dHJp
YnV0ZVZhbHVlczooTlNBcnJheSAqKXZhbHVlcwogICAgICAgIGxvYWRNYW51YWxseTooQk9PTCls
b2FkTWFudWFsbHkKLSAgICAgICAgICAgIGVsZW1lbnQ6KFBhc3NSZWZQdHI8V2ViQ29yZTo6SFRN
TFBsdWdJbkVsZW1lbnQ+KWVsZW1lbnQ7CisgICAgICAgICAgICBlbGVtZW50OihSZWZQdHI8V2Vi
Q29yZTo6SFRNTFBsdWdJbkVsZW1lbnQ+JiYpZWxlbWVudDsKIAogLSAoV2ViTmV0c2NhcGVQbHVn
aW5QYWNrYWdlICopcGx1Z2luUGFja2FnZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9t
YWMvUGx1Z2lucy9XZWJCYXNlTmV0c2NhcGVQbHVnaW5WaWV3Lm1tIGIvU291cmNlL1dlYktpdC9t
YWMvUGx1Z2lucy9XZWJCYXNlTmV0c2NhcGVQbHVnaW5WaWV3Lm1tCmluZGV4IDFlN2E2OWU2ZWQ2
YjdkNWM1NjZiNjFjZmU4NWMzYmFlOWZjZDRiZDIuLjIxZjkwNDVlZjM3NTc4MDc4ZDRjZDdiMTk4
OWQxOWNjMzlhMTU4YTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1BsdWdpbnMvV2Vi
QmFzZU5ldHNjYXBlUGx1Z2luVmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9QbHVnaW5z
L1dlYkJhc2VOZXRzY2FwZVBsdWdpblZpZXcubW0KQEAgLTg0LDE0ICs4NCwxNCBAQCAtIChpZClp
bml0V2l0aEZyYW1lOihOU1JlY3QpZnJhbWUKICAgICAgIGF0dHJpYnV0ZUtleXM6KE5TQXJyYXkg
KilrZXlzCiAgICAgYXR0cmlidXRlVmFsdWVzOihOU0FycmF5ICopdmFsdWVzCiAgICAgICAgbG9h
ZE1hbnVhbGx5OihCT09MKWxvYWRNYW51YWxseQotICAgICAgICAgICAgZWxlbWVudDooUGFzc1Jl
ZlB0cjxXZWJDb3JlOjpIVE1MUGx1Z0luRWxlbWVudD4pZWxlbWVudAorICAgICAgICAgICAgZWxl
bWVudDooUmVmUHRyPFdlYkNvcmU6OkhUTUxQbHVnSW5FbGVtZW50PiYmKWVsZW1lbnQKIHsKICAg
ICBzZWxmID0gW3N1cGVyIGluaXRXaXRoRnJhbWU6ZnJhbWVdOwogICAgIGlmICghc2VsZikKICAg
ICAgICAgcmV0dXJuIG5pbDsKICAgICAKICAgICBfcGx1Z2luUGFja2FnZSA9IHBsdWdpblBhY2th
Z2U7Ci0gICAgX2VsZW1lbnQgPSBlbGVtZW50OworICAgIF9lbGVtZW50ID0gV1RGTW92ZShlbGVt
ZW50KTsKICAgICBfc291cmNlVVJMID0gYWRvcHROUyhbVVJMIGNvcHldKTsKICAgICBfYmFzZVVS
TCA9IGFkb3B0TlMoW2Jhc2VVUkwgY29weV0pOwogICAgIF9NSU1FVHlwZSA9IGFkb3B0TlMoW01J
TUUgY29weV0pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvUGx1Z2lucy9XZWJOZXRz
Y2FwZVBsdWdpblN0cmVhbS5oIGIvU291cmNlL1dlYktpdC9tYWMvUGx1Z2lucy9XZWJOZXRzY2Fw
ZVBsdWdpblN0cmVhbS5oCmluZGV4IGQxMjkxYTY4Y2FiZGYwZGEyOTg3MjRkNDA0OGRhZWQ4YWQ1
NTg2ZDguLmJmNDM0MTUyNzViNGE2ZjIzMzFlMWQxZDVhN2NlY2ZiYTA4ZjI0NDAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvbWFjL1BsdWdpbnMvV2ViTmV0c2NhcGVQbHVnaW5TdHJlYW0uaAor
KysgYi9Tb3VyY2UvV2ViS2l0L21hYy9QbHVnaW5zL1dlYk5ldHNjYXBlUGx1Z2luU3RyZWFtLmgK
QEAgLTMyLDcgKzMyLDcgQEAKICNpbXBvcnQgPFdlYkNvcmUvVGltZXIuaD4KICNpbXBvcnQgPFdl
YkNvcmUvTmV0c2NhcGVQbHVnSW5TdHJlYW1Mb2FkZXIuaD4KICNpbXBvcnQgPFdlYktpdExlZ2Fj
eS9ucGZ1bmN0aW9ucy5oPgotI2ltcG9ydCA8d3RmL1Bhc3NSZWZQdHIuaD4KKyNpbXBvcnQgPHd0
Zi9SZWYuaD4KICNpbXBvcnQgPHd0Zi9SZWZDb3VudGVkLmg+CiAjaW1wb3J0IDx3dGYvUmVmUHRy
Lmg+CiAjaW1wb3J0IDx3dGYvUmV0YWluUHRyLmg+CkBAIC01MiwxMyArNTIsMTMgQEAgY2xhc3Mg
V2ViTmV0c2NhcGVQbHVnaW5TdHJlYW0gOiBwdWJsaWMgUmVmQ291bnRlZDxXZWJOZXRzY2FwZVBs
dWdpblN0cmVhbT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICwgcHJpdmF0ZSBXZWJD
b3JlOjpOZXRzY2FwZVBsdWdJblN0cmVhbUxvYWRlckNsaWVudAogewogcHVibGljOgotICAgIHN0
YXRpYyBQYXNzUmVmUHRyPFdlYk5ldHNjYXBlUGx1Z2luU3RyZWFtPiBjcmVhdGUoTlNVUkxSZXF1
ZXN0ICpyZXF1ZXN0LCBOUFAgcGx1Z2luLCBib29sIHNlbmROb3RpZmljYXRpb24sIHZvaWQqIG5v
dGlmeURhdGEpCisgICAgc3RhdGljIFJlZjxXZWJOZXRzY2FwZVBsdWdpblN0cmVhbT4gY3JlYXRl
KE5TVVJMUmVxdWVzdCAqcmVxdWVzdCwgTlBQIHBsdWdpbiwgYm9vbCBzZW5kTm90aWZpY2F0aW9u
LCB2b2lkKiBub3RpZnlEYXRhKQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBX
ZWJOZXRzY2FwZVBsdWdpblN0cmVhbShyZXF1ZXN0LCBwbHVnaW4sIHNlbmROb3RpZmljYXRpb24s
IG5vdGlmeURhdGEpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgV2ViTmV0c2NhcGVQ
bHVnaW5TdHJlYW0ocmVxdWVzdCwgcGx1Z2luLCBzZW5kTm90aWZpY2F0aW9uLCBub3RpZnlEYXRh
KSk7CiAgICAgfQotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFdlYk5ldHNjYXBlUGx1Z2luU3RyZWFt
PiBjcmVhdGUoV2ViQ29yZTo6RnJhbWVMb2FkZXIqIGZyYW1lTG9hZGVyKQorICAgIHN0YXRpYyBS
ZWY8V2ViTmV0c2NhcGVQbHVnaW5TdHJlYW0+IGNyZWF0ZShXZWJDb3JlOjpGcmFtZUxvYWRlciog
ZnJhbWVMb2FkZXIpCiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IFdlYk5ldHNj
YXBlUGx1Z2luU3RyZWFtKGZyYW1lTG9hZGVyKSk7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigq
bmV3IFdlYk5ldHNjYXBlUGx1Z2luU3RyZWFtKGZyYW1lTG9hZGVyKSk7CiAgICAgfQogICAgIHZp
cnR1YWwgfldlYk5ldHNjYXBlUGx1Z2luU3RyZWFtKCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvbWFjL1BsdWdpbnMvV2ViTmV0c2NhcGVQbHVnaW5WaWV3LmggYi9Tb3VyY2UvV2ViS2l0
L21hYy9QbHVnaW5zL1dlYk5ldHNjYXBlUGx1Z2luVmlldy5oCmluZGV4IGQwOGZmZmFlYzAyODY2
MDM2NmNlODg0NjAxZmI0NTAwYWQzZTA2YWYuLjVlNjUzMmZjZGRmZmM3M2M3OGNiYTk0MmIzNmFi
MjAzZjU3NWM3ZTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1BsdWdpbnMvV2ViTmV0
c2NhcGVQbHVnaW5WaWV3LmgKKysrIGIvU291cmNlL1dlYktpdC9tYWMvUGx1Z2lucy9XZWJOZXRz
Y2FwZVBsdWdpblZpZXcuaApAQCAtMTEwLDcgKzExMCw3IEBAIHR5cGVkZWYgdW5pb24gUGx1Z2lu
UG9ydCB7CiAgICAgICBhdHRyaWJ1dGVLZXlzOihOU0FycmF5ICopa2V5cwogICAgIGF0dHJpYnV0
ZVZhbHVlczooTlNBcnJheSAqKXZhbHVlcwogICAgICAgIGxvYWRNYW51YWxseTooQk9PTClsb2Fk
TWFudWFsbHkKLSAgICAgICAgICAgIGVsZW1lbnQ6KFBhc3NSZWZQdHI8V2ViQ29yZTo6SFRNTFBs
dWdJbkVsZW1lbnQ+KWVsZW1lbnQ7CisgICAgICAgICAgICBlbGVtZW50OihSZWZQdHI8V2ViQ29y
ZTo6SFRNTFBsdWdJbkVsZW1lbnQ+JiYpZWxlbWVudDsKIAogCiAtIChOUFApcGx1Z2luOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvUGx1Z2lucy9XZWJOZXRzY2FwZVBsdWdpblZpZXcu
bW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9QbHVnaW5zL1dlYk5ldHNjYXBlUGx1Z2luVmlldy5tbQpp
bmRleCAwMTkzZTQwZmU2ZGUxNjNmNjAxYzA4MjVkZjg0M2YzZWI4Mjk1NGZiLi5lNzMyMDUyM2Qw
Y2U2MzFiMThmZWI1NWVmNzMwOGNlMGQxZTk0NDM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L21hYy9QbHVnaW5zL1dlYk5ldHNjYXBlUGx1Z2luVmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0
L21hYy9QbHVnaW5zL1dlYk5ldHNjYXBlUGx1Z2luVmlldy5tbQpAQCAtMTI1Niw5ICsxMjU2LDkg
QEAgLSAoaWQpaW5pdFdpdGhGcmFtZTooTlNSZWN0KWZyYW1lCiAgICAgICBhdHRyaWJ1dGVLZXlz
OihOU0FycmF5ICopa2V5cwogICAgIGF0dHJpYnV0ZVZhbHVlczooTlNBcnJheSAqKXZhbHVlcwog
ICAgICAgIGxvYWRNYW51YWxseTooQk9PTClsb2FkTWFudWFsbHkKLSAgICAgICAgICAgIGVsZW1l
bnQ6KFBhc3NSZWZQdHI8V2ViQ29yZTo6SFRNTFBsdWdJbkVsZW1lbnQ+KWVsZW1lbnQKKyAgICAg
ICAgICAgIGVsZW1lbnQ6KFJlZlB0cjxXZWJDb3JlOjpIVE1MUGx1Z0luRWxlbWVudD4mJillbGVt
ZW50CiB7Ci0gICAgc2VsZiA9IFtzdXBlciBpbml0V2l0aEZyYW1lOmZyYW1lIHBsdWdpblBhY2th
Z2U6cGx1Z2luUGFja2FnZSBVUkw6VVJMIGJhc2VVUkw6YmFzZVVSTCBNSU1FVHlwZTpNSU1FIGF0
dHJpYnV0ZUtleXM6a2V5cyBhdHRyaWJ1dGVWYWx1ZXM6dmFsdWVzIGxvYWRNYW51YWxseTpsb2Fk
TWFudWFsbHkgZWxlbWVudDplbGVtZW50XTsKKyAgICBzZWxmID0gW3N1cGVyIGluaXRXaXRoRnJh
bWU6ZnJhbWUgcGx1Z2luUGFja2FnZTpwbHVnaW5QYWNrYWdlIFVSTDpVUkwgYmFzZVVSTDpiYXNl
VVJMIE1JTUVUeXBlOk1JTUUgYXR0cmlidXRlS2V5czprZXlzIGF0dHJpYnV0ZVZhbHVlczp2YWx1
ZXMgbG9hZE1hbnVhbGx5OmxvYWRNYW51YWxseSBlbGVtZW50OldURk1vdmUoZWxlbWVudCldOwog
ICAgIGlmICghc2VsZikKICAgICAgICAgcmV0dXJuIG5pbDsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lm1tIGIvU291cmNlL1dl
YktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lm1tCmluZGV4IDFmNjg3ZjIz
Mjk0ZTQyODcyNTJmZThjMmJjNjdkZDg3Nzk1Njg4ZmUuLjIxNzU3NTJjZmQ5NDUxZDY2NDIwNDg2
MDA1ZjQ3MGNlYzQyYzVjZTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVT
dXBwb3J0L1dlYkNocm9tZUNsaWVudC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3Jl
U3VwcG9ydC9XZWJDaHJvbWVDbGllbnQubW0KQEAgLTgzLDcgKzgzLDcgQEAKICNpbXBvcnQgPFdl
YkNvcmUvV2lkZ2V0Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL1dpbmRvd0ZlYXR1cmVzLmg+CiAjaW1w
b3J0IDx3dGYvQmxvY2tPYmpDRXhjZXB0aW9ucy5oPgotI2ltcG9ydCA8d3RmL1Bhc3NSZWZQdHIu
aD4KKyNpbXBvcnQgPHd0Zi9SZWZQdHIuaD4KICNpbXBvcnQgPHd0Zi9WZWN0b3IuaD4KICNpbXBv
cnQgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21h
Yy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQubW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9X
ZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQubW0KaW5kZXggMjQ5Zjk1MGE1ODU5OGVkOWM3
MzU5MjQ3Y2RlNGFmNjBmNTg4ODFlNy4uMjAxMTk1MjM3Mjg2MjQ5ODUzOWRmNTllZjY2YTJjMmFi
NDk3MDIyYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2Vi
RWRpdG9yQ2xpZW50Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dl
YkVkaXRvckNsaWVudC5tbQpAQCAtNzgsNyArNzgsNyBAQAogI2ltcG9ydCA8V2ViQ29yZS9XZWJD
b3JlT2JqQ0V4dHJhcy5oPgogI2ltcG9ydCA8cnVudGltZS9Jbml0aWFsaXplVGhyZWFkaW5nLmg+
CiAjaW1wb3J0IDx3dGYvTWFpblRocmVhZC5oPgotI2ltcG9ydCA8d3RmL1Bhc3NSZWZQdHIuaD4K
KyNpbXBvcnQgPHd0Zi9SZWZQdHIuaD4KICNpbXBvcnQgPHd0Zi9SdW5Mb29wLmg+CiAjaW1wb3J0
IDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMv
V2ViQ29yZVN1cHBvcnQvV2ViTm90aWZpY2F0aW9uQ2xpZW50Lm1tIGIvU291cmNlL1dlYktpdC9t
YWMvV2ViQ29yZVN1cHBvcnQvV2ViTm90aWZpY2F0aW9uQ2xpZW50Lm1tCmluZGV4IDRmYTBkNDE5
OGE1YjI4MDYzYmVhNGE4OGU1YjQ0NmU5YzkzOWI3MDQuLmFiOGE0ZjQyNTdlZWEwMjY4YTcxMDhi
ZjlhMjM5NmE1NDMyMTdhMWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVT
dXBwb3J0L1dlYk5vdGlmaWNhdGlvbkNsaWVudC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9X
ZWJDb3JlU3VwcG9ydC9XZWJOb3RpZmljYXRpb25DbGllbnQubW0KQEAgLTQ0LDcgKzQ0LDcgQEAg
QGludGVyZmFjZSBXZWJOb3RpZmljYXRpb25Qb2xpY3lMaXN0ZW5lciA6IE5TT2JqZWN0IDxXZWJB
bGxvd0RlbnlQb2xpY3lMaXN0ZW5lcj4KIHsKICAgICBSZWZQdHI8Tm90aWZpY2F0aW9uUGVybWlz
c2lvbkNhbGxiYWNrPiBfY2FsbGJhY2s7CiB9Ci0tIChpZClpbml0V2l0aENhbGxiYWNrOihQYXNz
UmVmUHRyPE5vdGlmaWNhdGlvblBlcm1pc3Npb25DYWxsYmFjaz4pY2FsbGJhY2s7CistIChpZClp
bml0V2l0aENhbGxiYWNrOihSZWZQdHI8Tm90aWZpY2F0aW9uUGVybWlzc2lvbkNhbGxiYWNrPiYm
KWNhbGxiYWNrOwogQGVuZAogI2VuZGlmCiAKQEAgLTE3Nyw3ICsxNzcsNyBAQCBib29sIFdlYk5v
dGlmaWNhdGlvbkNsaWVudDo6aGFzUGVuZGluZ1Blcm1pc3Npb25SZXF1ZXN0cyhTY3JpcHRFeGVj
dXRpb25Db250ZXh0Kgogdm9pZCBXZWJOb3RpZmljYXRpb25DbGllbnQ6OnJlcXVlc3RQZXJtaXNz
aW9uKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIFJlZlB0cjxOb3RpZmljYXRpb25Q
ZXJtaXNzaW9uQ2FsbGJhY2s+JiYgY2FsbGJhY2spCiB7CiAgICAgQkVHSU5fQkxPQ0tfT0JKQ19F
WENFUFRJT05TOwotICAgIFdlYk5vdGlmaWNhdGlvblBvbGljeUxpc3RlbmVyICpsaXN0ZW5lciA9
IFtbV2ViTm90aWZpY2F0aW9uUG9saWN5TGlzdGVuZXIgYWxsb2NdIGluaXRXaXRoQ2FsbGJhY2s6
Y2FsbGJhY2tdOworICAgIFdlYk5vdGlmaWNhdGlvblBvbGljeUxpc3RlbmVyICpsaXN0ZW5lciA9
IFtbV2ViTm90aWZpY2F0aW9uUG9saWN5TGlzdGVuZXIgYWxsb2NdIGluaXRXaXRoQ2FsbGJhY2s6
V1RGTW92ZShjYWxsYmFjayldOwogICAgIHJlcXVlc3RQZXJtaXNzaW9uKGNvbnRleHQsIGxpc3Rl
bmVyKTsKICAgICBbbGlzdGVuZXIgcmVsZWFzZV07CiAgICAgRU5EX0JMT0NLX09CSkNfRVhDRVBU
SU9OUzsKQEAgLTIxOSwxMiArMjE5LDEyIEBAIHVpbnQ2NF90IFdlYk5vdGlmaWNhdGlvbkNsaWVu
dDo6bm90aWZpY2F0aW9uSURGb3JUZXN0aW5nKFdlYkNvcmU6Ok5vdGlmaWNhdGlvbioKIAogQGlt
cGxlbWVudGF0aW9uIFdlYk5vdGlmaWNhdGlvblBvbGljeUxpc3RlbmVyCiAKLS0gKGlkKWluaXRX
aXRoQ2FsbGJhY2s6KFBhc3NSZWZQdHI8Tm90aWZpY2F0aW9uUGVybWlzc2lvbkNhbGxiYWNrPilj
YWxsYmFjaworLSAoaWQpaW5pdFdpdGhDYWxsYmFjazooUmVmUHRyPE5vdGlmaWNhdGlvblBlcm1p
c3Npb25DYWxsYmFjaz4mJiljYWxsYmFjawogewogICAgIGlmICghKHNlbGYgPSBbc3VwZXIgaW5p
dF0pKQogICAgICAgICByZXR1cm4gbmlsOwogCi0gICAgX2NhbGxiYWNrID0gY2FsbGJhY2s7Cisg
ICAgX2NhbGxiYWNrID0gV1RGTW92ZShjYWxsYmFjayk7CiAgICAgcmV0dXJuIHNlbGY7CiB9CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYk9wZW5QYW5l
bFJlc3VsdExpc3RlbmVyLm1tIGIvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2Vi
T3BlblBhbmVsUmVzdWx0TGlzdGVuZXIubW0KaW5kZXggOGIyNTIwOTA3MDNhZTQ3ZDdiYmFmYWE2
NWIzMjZmZWVmY2MzMDQ3Yi4uZTljM2JmZWQxNWY4YmVkOGVkMjA3MTk3YjI1MjAzZDU4MzRiYjFj
YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViT3BlblBh
bmVsUmVzdWx0TGlzdGVuZXIubW0KKysrIGIvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBv
cnQvV2ViT3BlblBhbmVsUmVzdWx0TGlzdGVuZXIubW0KQEAgLTI2LDcgKzI2LDcgQEAKICNpbXBv
cnQgIldlYk9wZW5QYW5lbFJlc3VsdExpc3RlbmVyLmgiCiAKICNpbXBvcnQgPFdlYkNvcmUvRmls
ZUNob29zZXIuaD4KLSNpbXBvcnQgPHd0Zi9QYXNzUmVmUHRyLmg+CisjaW1wb3J0IDx3dGYvUmVm
UHRyLmg+CiAKICNpZiBQTEFURk9STShJT1MpCiAjaW1wb3J0IDxXZWJDb3JlL0ljb24uaD4KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYlVzZXJNZWRpYUNs
aWVudC5tbSBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYlVzZXJNZWRpYUNs
aWVudC5tbQppbmRleCAxYjRjODI4MTcxODZiNDVjMjUyYTNmYjM3ODBhZjlhZTViODE3Mjk1Li4w
MTlkMTFlMDUwNmU2ZTVlOTIxM2U4NTBjZjA5Y2Q2MzlhNDIzY2RmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJVc2VyTWVkaWFDbGllbnQubW0KKysrIGIv
U291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViVXNlck1lZGlhQ2xpZW50Lm1tCkBA
IC00OCw3ICs0OCw3IEBAIEBpbnRlcmZhY2UgV2ViVXNlck1lZGlhUG9saWN5TGlzdGVuZXIgOiBO
U09iamVjdCA8V2ViQWxsb3dEZW55UG9saWN5TGlzdGVuZXI+CiB7CiAgICAgUmVmUHRyPFVzZXJN
ZWRpYVJlcXVlc3Q+IF9yZXF1ZXN0OwogfQotLSAoaWQpaW5pdFdpdGhVc2VyTWVkaWFSZXF1ZXN0
OihQYXNzUmVmUHRyPFVzZXJNZWRpYVJlcXVlc3Q+KXJlcXVlc3Q7CistIChpZClpbml0V2l0aFVz
ZXJNZWRpYVJlcXVlc3Q6KFJlZjxVc2VyTWVkaWFSZXF1ZXN0PiYmKXJlcXVlc3Q7CiAtICh2b2lk
KWNhbmNlbFVzZXJNZWRpYUFjY2Vzc1JlcXVlc3Q7CiAtICh2b2lkKWRlbnk7CiBAZW5kCkBAIC01
Niw3ICs1Niw3IEBAIEBlbmQKIEBpbnRlcmZhY2UgV2ViVXNlck1lZGlhUG9saWN5Q2hlY2tlckxp
c3RlbmVyIDogTlNPYmplY3QgPFdlYkFsbG93RGVueVBvbGljeUxpc3RlbmVyPiB7CiAgICAgUmVm
UHRyPE1lZGlhRGV2aWNlc0VudW1lcmF0aW9uUmVxdWVzdD4gX3JlcXVlc3Q7CiB9Ci0tIChpZClp
bml0V2l0aE1lZGlhRGV2aWNlc0VudW1lcmF0aW9uUmVxdWVzdDooUGFzc1JlZlB0cjxNZWRpYURl
dmljZXNFbnVtZXJhdGlvblJlcXVlc3Q+KXJlcXVlc3Q7CistIChpZClpbml0V2l0aE1lZGlhRGV2
aWNlc0VudW1lcmF0aW9uUmVxdWVzdDooUmVmPE1lZGlhRGV2aWNlc0VudW1lcmF0aW9uUmVxdWVz
dD4mJilyZXF1ZXN0OwogLSAodm9pZCljYW5jZWxNZWRpYURldmljZXNFbnVtZXJhdGlvblJlcXVl
c3Q7CiAtICh2b2lkKWRlbnk7CiBAZW5kCkBAIC0xNDEsNyArMTQxLDcgQEAgdm9pZCBXZWJVc2Vy
TWVkaWFDbGllbnQ6OnJlcXVlc3RVc2VyTWVkaWFBY2Nlc3MoVXNlck1lZGlhUmVxdWVzdCYgcmVx
dWVzdCkKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIFdlYlVzZXJNZWRpYVBvbGljeUxp
c3RlbmVyICpsaXN0ZW5lciA9IFtbV2ViVXNlck1lZGlhUG9saWN5TGlzdGVuZXIgYWxsb2NdIGlu
aXRXaXRoVXNlck1lZGlhUmVxdWVzdDomcmVxdWVzdF07CisgICAgV2ViVXNlck1lZGlhUG9saWN5
TGlzdGVuZXIgKmxpc3RlbmVyID0gW1tXZWJVc2VyTWVkaWFQb2xpY3lMaXN0ZW5lciBhbGxvY10g
aW5pdFdpdGhVc2VyTWVkaWFSZXF1ZXN0OnJlcXVlc3RdOwogICAgIFdlYlNlY3VyaXR5T3JpZ2lu
ICp3ZWJPcmlnaW4gPSBbW1dlYlNlY3VyaXR5T3JpZ2luIGFsbG9jXSBfaW5pdFdpdGhXZWJDb3Jl
U2VjdXJpdHlPcmlnaW46cmVxdWVzdC51c2VyTWVkaWFEb2N1bWVudE9yaWdpbigpXTsKIAogICAg
IEFkZFJlcXVlc3RUb1JlcXVlc3RNYXAoJnJlcXVlc3QsIGxpc3RlbmVyKTsKQEAgLTE3NCw3ICsx
NzQsNyBAQCB2b2lkIFdlYlVzZXJNZWRpYUNsaWVudDo6ZW51bWVyYXRlTWVkaWFEZXZpY2VzKE1l
ZGlhRGV2aWNlc0VudW1lcmF0aW9uUmVxdWVzdCYgcgogICAgICAgICByZXR1cm47CiAgICAgfQog
Ci0gICAgV2ViVXNlck1lZGlhUG9saWN5Q2hlY2tlckxpc3RlbmVyICpsaXN0ZW5lciA9IFtbV2Vi
VXNlck1lZGlhUG9saWN5Q2hlY2tlckxpc3RlbmVyIGFsbG9jXSBpbml0V2l0aE1lZGlhRGV2aWNl
c0VudW1lcmF0aW9uUmVxdWVzdDomcmVxdWVzdF07CisgICAgV2ViVXNlck1lZGlhUG9saWN5Q2hl
Y2tlckxpc3RlbmVyICpsaXN0ZW5lciA9IFtbV2ViVXNlck1lZGlhUG9saWN5Q2hlY2tlckxpc3Rl
bmVyIGFsbG9jXSBpbml0V2l0aE1lZGlhRGV2aWNlc0VudW1lcmF0aW9uUmVxdWVzdDpyZXF1ZXN0
XTsKICAgICBXZWJTZWN1cml0eU9yaWdpbiAqd2ViT3JpZ2luID0gW1tXZWJTZWN1cml0eU9yaWdp
biBhbGxvY10gX2luaXRXaXRoV2ViQ29yZVNlY3VyaXR5T3JpZ2luOnJlcXVlc3QudXNlck1lZGlh
RG9jdW1lbnRPcmlnaW4oKV07CiAKICAgICBBZGRQZXJtaXNzaW9uQ2hlY2tUb01hcCgmcmVxdWVz
dCwgbGlzdGVuZXIpOwpAQCAtMTk5LDEzICsxOTksMTMgQEAgdm9pZCBXZWJVc2VyTWVkaWFDbGll
bnQ6OmNhbmNlbE1lZGlhRGV2aWNlc0VudW1lcmF0aW9uUmVxdWVzdChXZWJDb3JlOjpNZWRpYURl
dmkKIAogQGltcGxlbWVudGF0aW9uIFdlYlVzZXJNZWRpYVBvbGljeUxpc3RlbmVyCiAKLS0gKGlk
KWluaXRXaXRoVXNlck1lZGlhUmVxdWVzdDooUGFzc1JlZlB0cjxVc2VyTWVkaWFSZXF1ZXN0Pily
ZXF1ZXN0CistIChpZClpbml0V2l0aFVzZXJNZWRpYVJlcXVlc3Q6KFJlZjxVc2VyTWVkaWFSZXF1
ZXN0PiYmKXJlcXVlc3QKIHsKICNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQogICAgIGlmICghKHNl
bGYgPSBbc3VwZXIgaW5pdF0pKQogICAgICAgICByZXR1cm4gbmlsOwogCi0gICAgX3JlcXVlc3Qg
PSByZXF1ZXN0OworICAgIF9yZXF1ZXN0ID0gV1RGTW92ZShyZXF1ZXN0KTsKICAgICByZXR1cm4g
c2VsZjsKICNlbmRpZgogfQpAQCAtMjYxLDEzICsyNjEsMTMgQEAgQGVuZAogCiBAaW1wbGVtZW50
YXRpb24gV2ViVXNlck1lZGlhUG9saWN5Q2hlY2tlckxpc3RlbmVyCiAKLS0gKGlkKWluaXRXaXRo
TWVkaWFEZXZpY2VzRW51bWVyYXRpb25SZXF1ZXN0OihQYXNzUmVmUHRyPE1lZGlhRGV2aWNlc0Vu
dW1lcmF0aW9uUmVxdWVzdD4pcmVxdWVzdAorLSAoaWQpaW5pdFdpdGhNZWRpYURldmljZXNFbnVt
ZXJhdGlvblJlcXVlc3Q6KFJlZjxNZWRpYURldmljZXNFbnVtZXJhdGlvblJlcXVlc3Q+JiYpcmVx
dWVzdAogewogI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCiAgICAgaWYgKCEoc2VsZiA9IFtzdXBl
ciBpbml0XSkpCiAgICAgICAgIHJldHVybiBuaWw7CiAKLSAgICBfcmVxdWVzdCA9IHJlcXVlc3Q7
CisgICAgX3JlcXVlc3QgPSBXVEZNb3ZlKHJlcXVlc3QpOwogICAgIHJldHVybiBzZWxmOwogI2Vu
ZGlmCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkFyY2hpdmUu
bW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkFyY2hpdmUubW0KaW5kZXggZDEwNDRl
MWIwYTMxMWVlODIxNzE0YWIyOWQyYzkxMjcyOWJjMTI0Ni4uMjE2MGYwZmUyN2E2YTZjYWY5MGU1
ZGEwYmYzMTVkMzIxNmNjMTIyMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmll
dy9XZWJBcmNoaXZlLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViQXJjaGl2
ZS5tbQpAQCAtNTgsOSArNTgsOSBAQCBAcHJpdmF0ZQogICAgIFJlZlB0cjxMZWdhY3lXZWJBcmNo
aXZlPiBjb3JlQXJjaGl2ZTsKIH0KIAotLSAoaW5zdGFuY2V0eXBlKWluaXRXaXRoQ29yZUFyY2hp
dmU6KFBhc3NSZWZQdHI8TGVnYWN5V2ViQXJjaGl2ZT4pY29yZUFyY2hpdmU7CistIChpbnN0YW5j
ZXR5cGUpaW5pdFdpdGhDb3JlQXJjaGl2ZTooUmVmPExlZ2FjeVdlYkFyY2hpdmU+JiYpY29yZUFy
Y2hpdmU7CiAtIChMZWdhY3lXZWJBcmNoaXZlKiljb3JlQXJjaGl2ZTsKLS0gKHZvaWQpc2V0Q29y
ZUFyY2hpdmU6KFBhc3NSZWZQdHI8TGVnYWN5V2ViQXJjaGl2ZT4pbmV3Q29yZUFyY2hpdmU7Cist
ICh2b2lkKXNldENvcmVBcmNoaXZlOihSZWY8TGVnYWN5V2ViQXJjaGl2ZT4mJiluZXdDb3JlQXJj
aGl2ZTsKIEBlbmQKIAogQGltcGxlbWVudGF0aW9uIFdlYkFyY2hpdmVQcml2YXRlCkBAIC04Mywx
NCArODMsMTQgQEAgLSAoaW5zdGFuY2V0eXBlKWluaXQKICAgICByZXR1cm4gc2VsZjsKIH0KIAot
LSAoaW5zdGFuY2V0eXBlKWluaXRXaXRoQ29yZUFyY2hpdmU6KFBhc3NSZWZQdHI8TGVnYWN5V2Vi
QXJjaGl2ZT4pX2NvcmVBcmNoaXZlCistIChpbnN0YW5jZXR5cGUpaW5pdFdpdGhDb3JlQXJjaGl2
ZTooUmVmPExlZ2FjeVdlYkFyY2hpdmU+JiYpX2NvcmVBcmNoaXZlCiB7CiAgICAgc2VsZiA9IFtz
dXBlciBpbml0XTsKICAgICBpZiAoIXNlbGYgfHwgIV9jb3JlQXJjaGl2ZSkgewogICAgICAgICBb
c2VsZiByZWxlYXNlXTsKICAgICAgICAgcmV0dXJuIG5pbDsKICAgICB9Ci0gICAgY29yZUFyY2hp
dmUgPSBfY29yZUFyY2hpdmU7CisgICAgY29yZUFyY2hpdmUgPSBXVEZNb3ZlKF9jb3JlQXJjaGl2
ZSk7CiAgICAgcmV0dXJuIHNlbGY7CiB9CiAKQEAgLTk5LDExICs5OSwxMCBAQCAtIChMZWdhY3lX
ZWJBcmNoaXZlKiljb3JlQXJjaGl2ZQogICAgIHJldHVybiBjb3JlQXJjaGl2ZS5nZXQoKTsKIH0K
IAotLSAodm9pZClzZXRDb3JlQXJjaGl2ZTooUGFzc1JlZlB0cjxMZWdhY3lXZWJBcmNoaXZlPilu
ZXdDb3JlQXJjaGl2ZQorLSAodm9pZClzZXRDb3JlQXJjaGl2ZTooUmVmPExlZ2FjeVdlYkFyY2hp
dmU+JiYpbmV3Q29yZUFyY2hpdmUKIHsKICAgICBBU1NFUlQoY29yZUFyY2hpdmUpOwotICAgIEFT
U0VSVChuZXdDb3JlQXJjaGl2ZSk7Ci0gICAgY29yZUFyY2hpdmUgPSBuZXdDb3JlQXJjaGl2ZTsK
KyAgICBjb3JlQXJjaGl2ZSA9IFdURk1vdmUobmV3Q29yZUFyY2hpdmUpOwogfQogCiAtICh2b2lk
KWRlYWxsb2MKQEAgLTIwNiw3ICsyMDUsNyBAQCAtIChpbnN0YW5jZXR5cGUpaW5pdFdpdGhEYXRh
OihOU0RhdGEgKilkYXRhCiAgICAgICAgIHJldHVybiBuaWw7CiAgICAgfQogICAgICAgICAKLSAg
ICBbX3ByaXZhdGUgc2V0Q29yZUFyY2hpdmU6V1RGTW92ZShjb3JlQXJjaGl2ZSldOworICAgIFtf
cHJpdmF0ZSBzZXRDb3JlQXJjaGl2ZTpjb3JlQXJjaGl2ZS5yZWxlYXNlTm9uTnVsbCgpXTsKICAg
ICAgICAgCiAjaWYgIUxPR19ESVNBQkxFRAogICAgIENGQWJzb2x1dGVUaW1lIGVuZCA9IENGQWJz
b2x1dGVUaW1lR2V0Q3VycmVudCgpOwpAQCAtMzE3LDcgKzMxNiw3IEBAIC0gKE5TQXJyYXkgKilz
dWJmcmFtZUFyY2hpdmVzCiAgICAgICAgICAgICBhdXRvIG11dGFibGVBcnJheSA9IFtbTlNNdXRh
YmxlQXJyYXkgYWxsb2NdIGluaXRXaXRoQ2FwYWNpdHk6c3ViZnJhbWVBcmNoaXZlcy5zaXplKCld
OwogICAgICAgICAgICAgX3ByaXZhdGUtPmNhY2hlZFN1YmZyYW1lQXJjaGl2ZXMgPSBtdXRhYmxl
QXJyYXk7CiAgICAgICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgc3ViZnJhbWVBcmNo
aXZlcy5zaXplKCk7ICsraSkgewotICAgICAgICAgICAgICAgIFdlYkFyY2hpdmUgKmFyY2hpdmUg
PSBbW1dlYkFyY2hpdmUgYWxsb2NdIF9pbml0V2l0aENvcmVMZWdhY3lXZWJBcmNoaXZlOihMZWdh
Y3lXZWJBcmNoaXZlICopc3ViZnJhbWVBcmNoaXZlc1tpXS5wdHIoKV07CisgICAgICAgICAgICAg
ICAgV2ViQXJjaGl2ZSAqYXJjaGl2ZSA9IFtbV2ViQXJjaGl2ZSBhbGxvY10gX2luaXRXaXRoQ29y
ZUxlZ2FjeVdlYkFyY2hpdmU6c3RhdGljX2Nhc3Q8TGVnYWN5V2ViQXJjaGl2ZSY+KHN1YmZyYW1l
QXJjaGl2ZXNbaV0uZ2V0KCkpXTsKICAgICAgICAgICAgICAgICBbbXV0YWJsZUFycmF5IGFkZE9i
amVjdDphcmNoaXZlXTsKICAgICAgICAgICAgICAgICBbYXJjaGl2ZSByZWxlYXNlXTsKICAgICAg
ICAgICAgIH0KQEAgLTM1MCw3ICszNDksNyBAQCBAZW5kCiAKIEBpbXBsZW1lbnRhdGlvbiBXZWJB
cmNoaXZlIChXZWJJbnRlcm5hbCkKIAotLSAoaWQpX2luaXRXaXRoQ29yZUxlZ2FjeVdlYkFyY2hp
dmU6KFBhc3NSZWZQdHI8V2ViQ29yZTo6TGVnYWN5V2ViQXJjaGl2ZT4pY29yZUxlZ2FjeVdlYkFy
Y2hpdmUKKy0gKGlkKV9pbml0V2l0aENvcmVMZWdhY3lXZWJBcmNoaXZlOihSZWY8V2ViQ29yZTo6
TGVnYWN5V2ViQXJjaGl2ZT4mJiljb3JlTGVnYWN5V2ViQXJjaGl2ZQogewogICAgIFdlYkNvcmVU
aHJlYWRWaW9sYXRpb25DaGVja1JvdW5kVHdvKCk7CiAKQEAgLTM1OCw3ICszNTcsNyBAQCAtIChp
ZClfaW5pdFdpdGhDb3JlTGVnYWN5V2ViQXJjaGl2ZTooUGFzc1JlZlB0cjxXZWJDb3JlOjpMZWdh
Y3lXZWJBcmNoaXZlPiljb3JlTAogICAgIGlmICghc2VsZikKICAgICAgICAgcmV0dXJuIG5pbDsK
ICAgICAKLSAgICBfcHJpdmF0ZSA9IFtbV2ViQXJjaGl2ZVByaXZhdGUgYWxsb2NdIGluaXRXaXRo
Q29yZUFyY2hpdmU6Y29yZUxlZ2FjeVdlYkFyY2hpdmVdOworICAgIF9wcml2YXRlID0gW1tXZWJB
cmNoaXZlUHJpdmF0ZSBhbGxvY10gaW5pdFdpdGhDb3JlQXJjaGl2ZTpXVEZNb3ZlKGNvcmVMZWdh
Y3lXZWJBcmNoaXZlKV07CiAgICAgaWYgKCFfcHJpdmF0ZSkgewogICAgICAgICBbc2VsZiByZWxl
YXNlXTsKICAgICAgICAgcmV0dXJuIG5pbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFj
L1dlYlZpZXcvV2ViQXJjaGl2ZUludGVybmFsLmggYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3
L1dlYkFyY2hpdmVJbnRlcm5hbC5oCmluZGV4IDZhOGE4ZTk2OTJiZWEzZjkyZmVlOTY4ZWZlODY1
NzkzNWRjYjlmM2MuLjcyYmQ1MTliMzMxZDJmN2YxOTdlOWY2OTFmMTY2YjU5MGE2OTk2Y2EgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViQXJjaGl2ZUludGVybmFsLmgK
KysrIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJBcmNoaXZlSW50ZXJuYWwuaApAQCAt
MzUsNyArMzUsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIEBpbnRlcmZhY2UgV2ViQXJjaGl2
ZSAoV2ViSW50ZXJuYWwpCiAKLS0gKGlkKV9pbml0V2l0aENvcmVMZWdhY3lXZWJBcmNoaXZlOihX
VEY6OlBhc3NSZWZQdHI8V2ViQ29yZTo6TGVnYWN5V2ViQXJjaGl2ZT4pY29yZUxlZ2FjeVdlYkFy
Y2hpdmU7CistIChpZClfaW5pdFdpdGhDb3JlTGVnYWN5V2ViQXJjaGl2ZTooV1RGOjpSZWY8V2Vi
Q29yZTo6TGVnYWN5V2ViQXJjaGl2ZT4mJiljb3JlTGVnYWN5V2ViQXJjaGl2ZTsKIC0gKFdlYkNv
cmU6OkxlZ2FjeVdlYkFyY2hpdmUgKilfY29yZUxlZ2FjeVdlYkFyY2hpdmU7CiAKIEBlbmQKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViRGF0YVNvdXJjZS5tbSBiL1Nv
dXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViRGF0YVNvdXJjZS5tbQppbmRleCBkZjM2MTczNmIy
OTgxMWNkOTVkY2RiOGUyZjBiZDM1Yzk0NmI2NjI5Li5kMzZjNWQ1YTBhYWQ0YWNiMGFhOGMwN2Fj
ZDFkNjE1MTNkMjcwMzlkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dl
YkRhdGFTb3VyY2UubW0KKysrIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJEYXRhU291
cmNlLm1tCkBAIC03OSwzMCArNzksMjcgQEAgdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiBjbGFz
cyBXZWJEYXRhU291cmNlUHJpdmF0ZQogewogcHVibGljOgotICAgIFdlYkRhdGFTb3VyY2VQcml2
YXRlKFBhc3NSZWZQdHI8V2ViRG9jdW1lbnRMb2FkZXJNYWM+IGxvYWRlcikKLSAgICAgICAgOiBs
b2FkZXIobG9hZGVyKQorICAgIFdlYkRhdGFTb3VyY2VQcml2YXRlKFJlZjxXZWJEb2N1bWVudExv
YWRlck1hYz4mJiBsb2FkZXIpCisgICAgICAgIDogbG9hZGVyKFdURk1vdmUobG9hZGVyKSkKICAg
ICAgICAgLCByZXByZXNlbnRhdGlvbkZpbmlzaGVkTG9hZGluZyhOTykKICAgICAgICAgLCBpbmNs
dWRlZEluV2ViS2l0U3RhdGlzdGljcyhOTykKICNpZiBQTEFURk9STShJT1MpCiAgICAgICAgICwg
X2RhdGFTb3VyY2VEZWxlZ2F0ZShuaWwpCiAjZW5kaWYKICAgICB7Ci0gICAgICAgIEFTU0VSVCh0
aGlzLT5sb2FkZXIpOwogICAgIH0KICAgICB+V2ViRGF0YVNvdXJjZVByaXZhdGUoKQogICAgIHsK
LSAgICAgICAgaWYgKGxvYWRlcikgewotICAgICAgICAgICAgLy8gV2UgbWlnaHQgcnVuIGluIHRv
IGluZmluaXRlIHJlY3Vyc2lvbiBpZiB3ZSdyZSBzdG9wcGluZyBsb2FkaW5nIGFzIHRoZSByZXN1
bHQgb2YgZGV0YWNoaW5nIGZyb20gdGhlIGZyYW1lLgotICAgICAgICAgICAgLy8gVGhlcmVmb3Jl
LCBEb2N1bWVudExvYWRlcjo6ZGV0YWNoRnJvbUZyYW1lKCkgZGlkIHNvbWUgc21hcnQgdGhpbmdz
IHRvIHN0b3AgdGhlIHJlY3Vyc2lvbi4KLSAgICAgICAgICAgIC8vIEFzIGEgcmVzdWx0IG9mIGJy
ZWFraW5nIHRoZSByZXN1cnNpb24sIERvY3VtZW50TG9hZGVyOjptX3N1YnJlc291cmNlTG9hZGVy
Ci0gICAgICAgICAgICAvLyBhbmQgRG9jdW1lbnRMb2FkZXI6Om1fcGx1Z0luU3RyZWFtTG9hZGVy
cyBtaWdodCBub3QgYmUgZW1wdHkgYXQgdGhpcyB0aW1lLgotICAgICAgICAgICAgLy8gU2VlIDxy
ZGFyOi8vcHJvYmxlbS85NjczODY2PiBmb3IgbW9yZSBkZXRhaWxzLgotICAgICAgICAgICAgQVNT
RVJUKCFsb2FkZXItPmlzTG9hZGluZygpIHx8IGxvYWRlci0+aXNTdG9wcGluZygpKTsKLSAgICAg
ICAgICAgIGxvYWRlci0+ZGV0YWNoRGF0YVNvdXJjZSgpOwotICAgICAgICB9CisgICAgICAgIC8v
IFdlIG1pZ2h0IHJ1biBpbiB0byBpbmZpbml0ZSByZWN1cnNpb24gaWYgd2UncmUgc3RvcHBpbmcg
bG9hZGluZyBhcyB0aGUgcmVzdWx0IG9mIGRldGFjaGluZyBmcm9tIHRoZSBmcmFtZS4KKyAgICAg
ICAgLy8gVGhlcmVmb3JlLCBEb2N1bWVudExvYWRlcjo6ZGV0YWNoRnJvbUZyYW1lKCkgZGlkIHNv
bWUgc21hcnQgdGhpbmdzIHRvIHN0b3AgdGhlIHJlY3Vyc2lvbi4KKyAgICAgICAgLy8gQXMgYSBy
ZXN1bHQgb2YgYnJlYWtpbmcgdGhlIHJlc3Vyc2lvbiwgRG9jdW1lbnRMb2FkZXI6Om1fc3VicmVz
b3VyY2VMb2FkZXIKKyAgICAgICAgLy8gYW5kIERvY3VtZW50TG9hZGVyOjptX3BsdWdJblN0cmVh
bUxvYWRlcnMgbWlnaHQgbm90IGJlIGVtcHR5IGF0IHRoaXMgdGltZS4KKyAgICAgICAgLy8gU2Vl
IDxyZGFyOi8vcHJvYmxlbS85NjczODY2PiBmb3IgbW9yZSBkZXRhaWxzLgorICAgICAgICBBU1NF
UlQoIWxvYWRlci0+aXNMb2FkaW5nKCkgfHwgbG9hZGVyLT5pc1N0b3BwaW5nKCkpOworICAgICAg
ICBsb2FkZXItPmRldGFjaERhdGFTb3VyY2UoKTsKICAgICB9CiAKLSAgICBSZWZQdHI8V2ViRG9j
dW1lbnRMb2FkZXJNYWM+IGxvYWRlcjsKKyAgICBSZWY8V2ViRG9jdW1lbnRMb2FkZXJNYWM+IGxv
YWRlcjsKICAgICBSZXRhaW5QdHI8aWQ8V2ViRG9jdW1lbnRSZXByZXNlbnRhdGlvbj4gPiByZXBy
ZXNlbnRhdGlvbjsKICAgICBCT09MIHJlcHJlc2VudGF0aW9uRmluaXNoZWRMb2FkaW5nOwogICAg
IEJPT0wgaW5jbHVkZWRJbldlYktpdFN0YXRpc3RpY3M7CkBAIC00MDcsMTQgKzQwNCwxMyBAQCAt
IChEb2N1bWVudExvYWRlciopX2RvY3VtZW50TG9hZGVyCiAgICAgcmV0dXJuIHRvUHJpdmF0ZShf
cHJpdmF0ZSktPmxvYWRlci5nZXQoKTsKIH0KIAotLSAoaWQpX2luaXRXaXRoRG9jdW1lbnRMb2Fk
ZXI6KFBhc3NSZWZQdHI8V2ViRG9jdW1lbnRMb2FkZXJNYWM+KWxvYWRlcgorLSAoaWQpX2luaXRX
aXRoRG9jdW1lbnRMb2FkZXI6KFJlZjxXZWJEb2N1bWVudExvYWRlck1hYz4mJilsb2FkZXIKIHsK
ICAgICBzZWxmID0gW3N1cGVyIGluaXRdOwogICAgIGlmICghc2VsZikKICAgICAgICAgcmV0dXJu
IG5pbDsKIAotICAgIEFTU0VSVChsb2FkZXIpOwotICAgIF9wcml2YXRlID0gc3RhdGljX2Nhc3Q8
dm9pZCo+KG5ldyBXZWJEYXRhU291cmNlUHJpdmF0ZShsb2FkZXIpKTsKKyAgICBfcHJpdmF0ZSA9
IHN0YXRpY19jYXN0PHZvaWQqPihuZXcgV2ViRGF0YVNvdXJjZVByaXZhdGUoV1RGTW92ZShsb2Fk
ZXIpKSk7CiAgICAgICAgIAogICAgIExPRyhMb2FkaW5nLCAiY3JlYXRpbmcgZGF0YXNvdXJjZSBm
b3IgJUAiLCBzdGF0aWNfY2FzdDxOU1VSTCAqPih0b1ByaXZhdGUoX3ByaXZhdGUpLT5sb2FkZXIt
PnJlcXVlc3QoKS51cmwoKSkpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJW
aWV3L1dlYkRhdGFTb3VyY2VJbnRlcm5hbC5oIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9X
ZWJEYXRhU291cmNlSW50ZXJuYWwuaAppbmRleCBkZTE2MWNiYjU2MDA3NDA1YjU3Y2Y0ZTkwNjBh
ODk3NTk0ZDFhOGQ0Li5iMTAxYjEzZGNjMjViNjE1NjNiMTgwOTVmMzlkNjFkYzNjNjcyYzYyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkRhdGFTb3VyY2VJbnRlcm5h
bC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViRGF0YVNvdXJjZUludGVybmFs
LmgKQEAgLTUxLDcgKzUxLDcgQEAgY2xhc3MgV2ViRG9jdW1lbnRMb2FkZXJNYWM7CiAtIChET01E
b2N1bWVudEZyYWdtZW50ICopX2RvY3VtZW50RnJhZ21lbnRXaXRoQXJjaGl2ZTooV2ViQXJjaGl2
ZSAqKWFyY2hpdmU7CiArIChOU011dGFibGVEaWN0aW9uYXJ5ICopX3JlcFR5cGVzQWxsb3dJbWFn
ZVR5cGVPbWlzc2lvbjooQk9PTClhbGxvd0ltYWdlVHlwZU9taXNzaW9uOwogLSAodm9pZClfcmVw
bGFjZVNlbGVjdGlvbldpdGhBcmNoaXZlOihXZWJBcmNoaXZlICopYXJjaGl2ZSBzZWxlY3RSZXBs
YWNlbWVudDooQk9PTClzZWxlY3RSZXBsYWNlbWVudDsKLS0gKGlkKV9pbml0V2l0aERvY3VtZW50
TG9hZGVyOihQYXNzUmVmUHRyPFdlYkRvY3VtZW50TG9hZGVyTWFjPilsb2FkZXI7CistIChpZClf
aW5pdFdpdGhEb2N1bWVudExvYWRlcjooUmVmPFdlYkRvY3VtZW50TG9hZGVyTWFjPiYmKWxvYWRl
cjsKIC0gKHZvaWQpX2ZpbmlzaGVkTG9hZGluZzsKIC0gKHZvaWQpX3JlY2VpdmVkRGF0YTooTlNE
YXRhICopZGF0YTsKIC0gKHZvaWQpX3JldmVydFRvUHJvdmlzaW9uYWxTdGF0ZTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViRGV2aWNlT3JpZW50YXRpb24ubW0gYi9T
b3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkRldmljZU9yaWVudGF0aW9uLm1tCmluZGV4IDBl
ZWMyMzhkOGM1NDdiNWVhNmY0NTU1YjZlNWRjZGIyYTEwZjY5YmIuLmQwODg5NTg5ZGIxYmI2M2Iz
Y2EyZDY3Njg4Y2FlOTBlNTZjMDU0ZjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dl
YlZpZXcvV2ViRGV2aWNlT3JpZW50YXRpb24ubW0KKysrIGIvU291cmNlL1dlYktpdC9tYWMvV2Vi
Vmlldy9XZWJEZXZpY2VPcmllbnRhdGlvbi5tbQpAQCAtMjksMTIgKzI5LDEyIEBAIHVzaW5nIG5h
bWVzcGFjZSBXZWJDb3JlOwogCiBAaW1wbGVtZW50YXRpb24gV2ViRGV2aWNlT3JpZW50YXRpb25J
bnRlcm5hbAogCi0tIChpZClpbml0V2l0aENvcmVEZXZpY2VPcmllbnRhdGlvbjooUGFzc1JlZlB0
cjxEZXZpY2VPcmllbnRhdGlvbkRhdGE+KWNvcmVEZXZpY2VPcmllbnRhdGlvbgorLSAoaWQpaW5p
dFdpdGhDb3JlRGV2aWNlT3JpZW50YXRpb246KFJlZlB0cjxEZXZpY2VPcmllbnRhdGlvbkRhdGE+
JiYpY29yZURldmljZU9yaWVudGF0aW9uCiB7CiAgICAgc2VsZiA9IFtzdXBlciBpbml0XTsKICAg
ICBpZiAoIXNlbGYpCiAgICAgICAgIHJldHVybiBuaWw7Ci0gICAgbV9vcmllbnRhdGlvbiA9IGNv
cmVEZXZpY2VPcmllbnRhdGlvbjsKKyAgICBtX29yaWVudGF0aW9uID0gV1RGTW92ZShjb3JlRGV2
aWNlT3JpZW50YXRpb24pOwogICAgIHJldHVybiBzZWxmOwogfQogCkBAIC00MiwxMiArNDIsMTIg
QEAgQGVuZAogCiBAaW1wbGVtZW50YXRpb24gV2ViRGV2aWNlT3JpZW50YXRpb24gKEludGVybmFs
KQogCi0tIChpZClpbml0V2l0aENvcmVEZXZpY2VPcmllbnRhdGlvbjooUGFzc1JlZlB0cjxXZWJD
b3JlOjpEZXZpY2VPcmllbnRhdGlvbkRhdGE+KWNvcmVEZXZpY2VPcmllbnRhdGlvbgorLSAoaWQp
aW5pdFdpdGhDb3JlRGV2aWNlT3JpZW50YXRpb246KFJlZlB0cjxXZWJDb3JlOjpEZXZpY2VPcmll
bnRhdGlvbkRhdGE+JiYpY29yZURldmljZU9yaWVudGF0aW9uCiB7CiAgICAgc2VsZiA9IFtzdXBl
ciBpbml0XTsKICAgICBpZiAoIXNlbGYpCiAgICAgICAgIHJldHVybiBuaWw7Ci0gICAgbV9pbnRl
cm5hbCA9IFtbV2ViRGV2aWNlT3JpZW50YXRpb25JbnRlcm5hbCBhbGxvY10gaW5pdFdpdGhDb3Jl
RGV2aWNlT3JpZW50YXRpb246Y29yZURldmljZU9yaWVudGF0aW9uXTsKKyAgICBtX2ludGVybmFs
ID0gW1tXZWJEZXZpY2VPcmllbnRhdGlvbkludGVybmFsIGFsbG9jXSBpbml0V2l0aENvcmVEZXZp
Y2VPcmllbnRhdGlvbjpXVEZNb3ZlKGNvcmVEZXZpY2VPcmllbnRhdGlvbildOwogICAgIHJldHVy
biBzZWxmOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkRl
dmljZU9yaWVudGF0aW9uSW50ZXJuYWwuaCBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2Vi
RGV2aWNlT3JpZW50YXRpb25JbnRlcm5hbC5oCmluZGV4IDVkZWRkMDgwYzc2ZjQ0ODU0OTI5OTJm
OTQ3N2E4ZWNiYTQxZGVlOWUuLmZjYzNiYjNjOTk2OWFhNTVmOGQzNTgxNmE3MTM0MGFmNWJhOTY2
ODggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViRGV2aWNlT3JpZW50
YXRpb25JbnRlcm5hbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViRGV2aWNl
T3JpZW50YXRpb25JbnRlcm5hbC5oCkBAIC0zMywxMiArMzMsMTIgQEAKICAgICBSZWZQdHI8V2Vi
Q29yZTo6RGV2aWNlT3JpZW50YXRpb25EYXRhPiBtX29yaWVudGF0aW9uOwogfQogCi0tIChpZClp
bml0V2l0aENvcmVEZXZpY2VPcmllbnRhdGlvbjooUGFzc1JlZlB0cjxXZWJDb3JlOjpEZXZpY2VP
cmllbnRhdGlvbkRhdGE+KWNvcmVEZXZpY2VPcmllbnRhdGlvbjsKKy0gKGlkKWluaXRXaXRoQ29y
ZURldmljZU9yaWVudGF0aW9uOihSZWZQdHI8V2ViQ29yZTo6RGV2aWNlT3JpZW50YXRpb25EYXRh
PiYmKWNvcmVEZXZpY2VPcmllbnRhdGlvbjsKIEBlbmQKIAogQGludGVyZmFjZSBXZWJEZXZpY2VP
cmllbnRhdGlvbiAoSW50ZXJuYWwpCiAKLS0gKGlkKWluaXRXaXRoQ29yZURldmljZU9yaWVudGF0
aW9uOihQYXNzUmVmUHRyPFdlYkNvcmU6OkRldmljZU9yaWVudGF0aW9uRGF0YT4pY29yZURldmlj
ZU9yaWVudGF0aW9uOworLSAoaWQpaW5pdFdpdGhDb3JlRGV2aWNlT3JpZW50YXRpb246KFJlZlB0
cjxXZWJDb3JlOjpEZXZpY2VPcmllbnRhdGlvbkRhdGE+JiYpY29yZURldmljZU9yaWVudGF0aW9u
OwogCiBAZW5kCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViRnJh
bWUubW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkZyYW1lLm1tCmluZGV4IDM2ODVl
MmMwNmYwNTZmNTYxMTZjZjRlNGIzOGZhNDE3YjM2OTZjZDIuLjcwMzI2MDA3NGVjMzM5Yzg4ODIw
Yjc5NTBjZmIxNDRlZDc3NGNkODQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZp
ZXcvV2ViRnJhbWUubW0KKysrIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJGcmFtZS5t
bQpAQCAtNzkyLDE1ICs3OTIsMTUgQEAgLSAoTlNSYW5nZSlfY29udmVydFRvTlNSYW5nZTooUmFu
Z2UgKilyYW5nZQogICAgIHJldHVybiBOU01ha2VSYW5nZShsb2NhdGlvbiwgbGVuZ3RoKTsKIH0K
IAotLSAoUGFzc1JlZlB0cjxSYW5nZT4pX2NvbnZlcnRUb0RPTVJhbmdlOihOU1JhbmdlKW5zcmFu
Z2UKKy0gKFJlZlB0cjxSYW5nZT4pX2NvbnZlcnRUb0RPTVJhbmdlOihOU1JhbmdlKW5zcmFuZ2UK
IHsKICAgICByZXR1cm4gW3NlbGYgX2NvbnZlcnRUb0RPTVJhbmdlOm5zcmFuZ2UgcmFuZ2VJc1Jl
bGF0aXZlVG86V2ViUmFuZ2VJc1JlbGF0aXZlVG86OkVkaXRhYmxlUm9vdF07CiB9CiAKLS0gKFBh
c3NSZWZQdHI8UmFuZ2U+KV9jb252ZXJ0VG9ET01SYW5nZTooTlNSYW5nZSluc3JhbmdlIHJhbmdl
SXNSZWxhdGl2ZVRvOihXZWJSYW5nZUlzUmVsYXRpdmVUbylyYW5nZUlzUmVsYXRpdmVUbworLSAo
UmVmUHRyPFJhbmdlPilfY29udmVydFRvRE9NUmFuZ2U6KE5TUmFuZ2UpbnNyYW5nZSByYW5nZUlz
UmVsYXRpdmVUbzooV2ViUmFuZ2VJc1JlbGF0aXZlVG8pcmFuZ2VJc1JlbGF0aXZlVG8KIHsKICAg
ICBpZiAobnNyYW5nZS5sb2NhdGlvbiA+IElOVF9NQVgpCi0gICAgICAgIHJldHVybiAwOworICAg
ICAgICByZXR1cm4gbnVsbHB0cjsKICAgICBpZiAobnNyYW5nZS5sZW5ndGggPiBJTlRfTUFYIHx8
IG5zcmFuZ2UubG9jYXRpb24gKyBuc3JhbmdlLmxlbmd0aCA+IElOVF9NQVgpCiAgICAgICAgIG5z
cmFuZ2UubGVuZ3RoID0gSU5UX01BWCAtIG5zcmFuZ2UubG9jYXRpb247CiAKQEAgLTgyMiwxMSAr
ODIyLDExIEBAIC0gKFBhc3NSZWZQdHI8UmFuZ2U+KV9jb252ZXJ0VG9ET01SYW5nZTooTlNSYW5n
ZSluc3JhbmdlIHJhbmdlSXNSZWxhdGl2ZVRvOihXZWJSCiAgICAgY29uc3QgVmlzaWJsZVNlbGVj
dGlvbiYgc2VsZWN0aW9uID0gX3ByaXZhdGUtPmNvcmVGcmFtZS0+c2VsZWN0aW9uKCkuc2VsZWN0
aW9uKCk7CiAgICAgUmVmUHRyPFJhbmdlPiBzZWxlY3RlZFJhbmdlID0gc2VsZWN0aW9uLnRvTm9y
bWFsaXplZFJhbmdlKCk7CiAgICAgaWYgKCFzZWxlY3RlZFJhbmdlKQotICAgICAgICByZXR1cm4g
MDsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKICAgICBSZWZQdHI8UmFuZ2U+IHBhcmFncmFw
aFJhbmdlID0gbWFrZVJhbmdlKHN0YXJ0T2ZQYXJhZ3JhcGgoc2VsZWN0aW9uLnZpc2libGVTdGFy
dCgpKSwgc2VsZWN0aW9uLnZpc2libGVFbmQoKSk7CiAgICAgaWYgKCFwYXJhZ3JhcGhSYW5nZSkK
LSAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIHJldHVybiBudWxscHRyOwogCiAgICAgQ29udGFp
bmVyTm9kZSYgcm9vdE5vZGUgPSBwYXJhZ3JhcGhSYW5nZS5nZXQoKS0+c3RhcnRDb250YWluZXIo
KS50cmVlU2NvcGUoKS5yb290Tm9kZSgpOwogICAgIGludCBwYXJhZ3JhcGhTdGFydEluZGV4ID0g
VGV4dEl0ZXJhdG9yOjpyYW5nZUxlbmd0aChSYW5nZTo6Y3JlYXRlKHJvb3ROb2RlLmRvY3VtZW50
KCksICZyb290Tm9kZSwgMCwgJnBhcmFncmFwaFJhbmdlLT5zdGFydENvbnRhaW5lcigpLCBwYXJh
Z3JhcGhSYW5nZS0+c3RhcnRPZmZzZXQoKSkucHRyKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9tYWMvV2ViVmlldy9XZWJGcmFtZUludGVybmFsLmggYi9Tb3VyY2UvV2ViS2l0L21hYy9X
ZWJWaWV3L1dlYkZyYW1lSW50ZXJuYWwuaAppbmRleCA1YzcyZDI4N2ZhNTc3MDg5Y2Q0NDBmMDY3
YzFjZGEzYWMxY2Y2MTlhLi4yOWE3ZDRlNWMzMTQxZmVjYTA3MzYyYTVjZTY4MTRlMWQzYWJjNDJk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkZyYW1lSW50ZXJuYWwu
aAorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkZyYW1lSW50ZXJuYWwuaApAQCAt
MTY0LDggKzE2NCw4IEBAIFdlYlZpZXcgKmdldFdlYlZpZXcoV2ViRnJhbWUgKndlYkZyYW1lKTsK
IC0gKERPTVJhbmdlICopX3JhbmdlQnlBbHRlcmluZ0N1cnJlbnRTZWxlY3Rpb246KFdlYkNvcmU6
OkZyYW1lU2VsZWN0aW9uOjpFQWx0ZXJhdGlvbilhbHRlcmF0aW9uIGRpcmVjdGlvbjooV2ViQ29y
ZTo6U2VsZWN0aW9uRGlyZWN0aW9uKWRpcmVjdGlvbiBncmFudWxhcml0eTooV2ViQ29yZTo6VGV4
dEdyYW51bGFyaXR5KWdyYW51bGFyaXR5OwogI2VuZGlmCiAtIChOU1JhbmdlKV9jb252ZXJ0VG9O
U1JhbmdlOihXZWJDb3JlOjpSYW5nZSopcmFuZ2U7Ci0tIChQYXNzUmVmUHRyPFdlYkNvcmU6OlJh
bmdlPilfY29udmVydFRvRE9NUmFuZ2U6KE5TUmFuZ2UpbnNyYW5nZTsKLS0gKFBhc3NSZWZQdHI8
V2ViQ29yZTo6UmFuZ2U+KV9jb252ZXJ0VG9ET01SYW5nZTooTlNSYW5nZSluc3JhbmdlIHJhbmdl
SXNSZWxhdGl2ZVRvOihXZWJSYW5nZUlzUmVsYXRpdmVUbylyYW5nZUlzUmVsYXRpdmVUbzsKKy0g
KFJlZlB0cjxXZWJDb3JlOjpSYW5nZT4pX2NvbnZlcnRUb0RPTVJhbmdlOihOU1JhbmdlKW5zcmFu
Z2U7CistIChSZWZQdHI8V2ViQ29yZTo6UmFuZ2U+KV9jb252ZXJ0VG9ET01SYW5nZTooTlNSYW5n
ZSluc3JhbmdlIHJhbmdlSXNSZWxhdGl2ZVRvOihXZWJSYW5nZUlzUmVsYXRpdmVUbylyYW5nZUlz
UmVsYXRpdmVUbzsKIAogLSAoRE9NRG9jdW1lbnRGcmFnbWVudCAqKV9kb2N1bWVudEZyYWdtZW50
V2l0aE1hcmt1cFN0cmluZzooTlNTdHJpbmcgKiltYXJrdXBTdHJpbmcgYmFzZVVSTFN0cmluZzoo
TlNTdHJpbmcgKiliYXNlVVJMU3RyaW5nOwogLSAoRE9NRG9jdW1lbnRGcmFnbWVudCAqKV9kb2N1
bWVudEZyYWdtZW50V2l0aE5vZGVzQXNQYXJhZ3JhcGhzOihOU0FycmF5ICopbm9kZXM7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkZ1bGxTY3JlZW5Db250cm9sbGVy
LmggYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkZ1bGxTY3JlZW5Db250cm9sbGVyLmgK
aW5kZXggNDk4MWEyMTg3MjA4NmJjY2M0OWEzZTk1YjNkZjBiNjU1NTdhYTljMS4uNjBkOTZlODQ3
YWZkMWRjNGJjOTg0MzU3YWQ4ZGMwZjEwN2ZkNTI1NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9tYWMvV2ViVmlldy9XZWJGdWxsU2NyZWVuQ29udHJvbGxlci5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvbWFjL1dlYlZpZXcvV2ViRnVsbFNjcmVlbkNvbnRyb2xsZXIuaApAQCAtNjcsNyArNjcsNyBA
QCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIC0gKEJPT0wpaXNGdWxsU2NyZWVuOwogCi0tICh2b2lk
KXNldEVsZW1lbnQ6KFBhc3NSZWZQdHI8V2ViQ29yZTo6RWxlbWVudD4pZWxlbWVudDsKKy0gKHZv
aWQpc2V0RWxlbWVudDooUmVmUHRyPFdlYkNvcmU6OkVsZW1lbnQ+JiYpZWxlbWVudDsKIC0gKFdl
YkNvcmU6OkVsZW1lbnQqKWVsZW1lbnQ7CiAKIC0gKHZvaWQpZW50ZXJGdWxsU2NyZWVuOihOU1Nj
cmVlbiAqKXNjcmVlbjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2Vi
RnVsbFNjcmVlbkNvbnRyb2xsZXIubW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkZ1
bGxTY3JlZW5Db250cm9sbGVyLm1tCmluZGV4IDRiY2Y0OTlmZTAwZmJkOWY4NmNkMzhiZjQxNDlm
NDFiNWJkMzAzN2IuLjFkZGYxOTdkYzU2MWExN2YwOTc2ZjIzZDM2NzlhMzZmNGVmNjU5NTAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViRnVsbFNjcmVlbkNvbnRyb2xs
ZXIubW0KKysrIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJGdWxsU2NyZWVuQ29udHJv
bGxlci5tbQpAQCAtMTM4LDkgKzEzOCw5IEBAIC0gKEVsZW1lbnQqKWVsZW1lbnQKICAgICByZXR1
cm4gX2VsZW1lbnQuZ2V0KCk7CiB9CiAKLS0gKHZvaWQpc2V0RWxlbWVudDooUGFzc1JlZlB0cjxF
bGVtZW50PillbGVtZW50CistICh2b2lkKXNldEVsZW1lbnQ6KFJlZlB0cjxFbGVtZW50PiYmKWVs
ZW1lbnQKIHsKLSAgICBfZWxlbWVudCA9IGVsZW1lbnQ7CisgICAgX2VsZW1lbnQgPSBXVEZNb3Zl
KGVsZW1lbnQpOwogfQogCiAtIChCT09MKWlzRnVsbFNjcmVlbgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9tYWMvV2ViVmlldy9XZWJHZW9sb2NhdGlvblBvc2l0aW9uLm1tIGIvU291cmNlL1dl
YktpdC9tYWMvV2ViVmlldy9XZWJHZW9sb2NhdGlvblBvc2l0aW9uLm1tCmluZGV4IDc5MzdlZjM3
MDJlYjIzNTExYTBiZWNjYjVlMTQwNTAyNWExODI2YjMuLjQ1NmQ0YmE4YmRmMGU3MTY0NDkwNzUz
MjFmOWVkZDRmMDg0NWRmYTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcv
V2ViR2VvbG9jYXRpb25Qb3NpdGlvbi5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3
L1dlYkdlb2xvY2F0aW9uUG9zaXRpb24ubW0KQEAgLTI2LDcgKzI2LDYgQEAKICNpbXBvcnQgIldl
Ykdlb2xvY2F0aW9uUG9zaXRpb24uaCIKIAogI2ltcG9ydCAiV2ViR2VvbG9jYXRpb25Qb3NpdGlv
bkludGVybmFsLmgiCi0jaW1wb3J0IDx3dGYvUGFzc1JlZlB0ci5oPgogI2ltcG9ydCA8d3RmL1Jl
ZlB0ci5oPgogCiAjaW1wb3J0IDxXZWJDb3JlL0dlb2xvY2F0aW9uUG9zaXRpb24uaD4KQEAgLTM5
LDE3ICszOCwxNyBAQCBAcHVibGljCiAgICAgUmVmUHRyPEdlb2xvY2F0aW9uUG9zaXRpb24+IF9w
b3NpdGlvbjsKIH0KIAotLSAoaWQpaW5pdFdpdGhDb3JlR2VvbG9jYXRpb25Qb3NpdGlvbjooUGFz
c1JlZlB0cjxHZW9sb2NhdGlvblBvc2l0aW9uPiljb3JlR2VvbG9jYXRpb25Qb3NpdGlvbjsKKy0g
KGlkKWluaXRXaXRoQ29yZUdlb2xvY2F0aW9uUG9zaXRpb246KFJlZlB0cjxHZW9sb2NhdGlvblBv
c2l0aW9uPiYmKWNvcmVHZW9sb2NhdGlvblBvc2l0aW9uOwogQGVuZAogCiBAaW1wbGVtZW50YXRp
b24gV2ViR2VvbG9jYXRpb25Qb3NpdGlvbkludGVybmFsCiAKLS0gKGlkKWluaXRXaXRoQ29yZUdl
b2xvY2F0aW9uUG9zaXRpb246KFBhc3NSZWZQdHI8R2VvbG9jYXRpb25Qb3NpdGlvbj4pY29yZUdl
b2xvY2F0aW9uUG9zaXRpb24KKy0gKGlkKWluaXRXaXRoQ29yZUdlb2xvY2F0aW9uUG9zaXRpb246
KFJlZlB0cjxHZW9sb2NhdGlvblBvc2l0aW9uPiYmKWNvcmVHZW9sb2NhdGlvblBvc2l0aW9uCiB7
CiAgICAgc2VsZiA9IFtzdXBlciBpbml0XTsKICAgICBpZiAoIXNlbGYpCiAgICAgICAgIHJldHVy
biBuaWw7Ci0gICAgX3Bvc2l0aW9uID0gY29yZUdlb2xvY2F0aW9uUG9zaXRpb247CisgICAgX3Bv
c2l0aW9uID0gV1RGTW92ZShjb3JlR2VvbG9jYXRpb25Qb3NpdGlvbik7CiAgICAgcmV0dXJuIHNl
bGY7CiB9CiAKQEAgLTcxLDEyICs3MCwxMiBAQCAtIChpZClpbml0V2l0aFRpbWVzdGFtcDooZG91
YmxlKXRpbWVzdGFtcCBsYXRpdHVkZTooZG91YmxlKWxhdGl0dWRlIGxvbmdpdHVkZTooZAogICAg
IHJldHVybiBzZWxmOwogfQogCi0tIChpZClpbml0V2l0aEdlb2xvY2F0aW9uUG9zaXRpb246KFJl
ZlB0cjxHZW9sb2NhdGlvblBvc2l0aW9uPiljb3JlR2VvbG9jYXRpb25Qb3NpdGlvbgorLSAoaWQp
aW5pdFdpdGhHZW9sb2NhdGlvblBvc2l0aW9uOihSZWZQdHI8R2VvbG9jYXRpb25Qb3NpdGlvbj4m
Jiljb3JlR2VvbG9jYXRpb25Qb3NpdGlvbgogewogICAgIHNlbGYgPSBbc3VwZXIgaW5pdF07CiAg
ICAgaWYgKCFzZWxmKQogICAgICAgICByZXR1cm4gbmlsOwotICAgIF9pbnRlcm5hbCA9IFtbV2Vi
R2VvbG9jYXRpb25Qb3NpdGlvbkludGVybmFsIGFsbG9jXSBpbml0V2l0aENvcmVHZW9sb2NhdGlv
blBvc2l0aW9uOmNvcmVHZW9sb2NhdGlvblBvc2l0aW9uXTsKKyAgICBfaW50ZXJuYWwgPSBbW1dl
Ykdlb2xvY2F0aW9uUG9zaXRpb25JbnRlcm5hbCBhbGxvY10gaW5pdFdpdGhDb3JlR2VvbG9jYXRp
b25Qb3NpdGlvbjpXVEZNb3ZlKGNvcmVHZW9sb2NhdGlvblBvc2l0aW9uKV07CiAgICAgcmV0dXJu
IHNlbGY7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViSFRN
TFZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkhUTUxWaWV3Lm1tCmluZGV4
IDg1MmM5MTQ4NjlkM2I0ZDQ0YjQyYmRhODEwYTgwZTI3YTM0ZDQwNjYuLjVkNTVhYjEzYmE3NGNi
N2YxYmZlY2I3OTE4NjcwMzIwM2YyY2QwN2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFj
L1dlYlZpZXcvV2ViSFRNTFZpZXcubW0KKysrIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9X
ZWJIVE1MVmlldy5tbQpAQCAtNDgyNiwxMiArNDgyNiwxMiBAQCBzdGF0aWMgQk9PTCBpc0luUGFz
c3dvcmRGaWVsZChGcmFtZSogY29yZUZyYW1lKQogfQogI2VuZGlmCiAKLXN0YXRpYyBQYXNzUmVm
UHRyPEtleWJvYXJkRXZlbnQ+IGN1cnJlbnRLZXlib2FyZEV2ZW50KEZyYW1lKiBjb3JlRnJhbWUp
CitzdGF0aWMgUmVmUHRyPEtleWJvYXJkRXZlbnQ+IGN1cnJlbnRLZXlib2FyZEV2ZW50KEZyYW1l
KiBjb3JlRnJhbWUpCiB7CiAjaWYgIVBMQVRGT1JNKElPUykKICAgICBOU0V2ZW50ICpldmVudCA9
IFtOU0FwcCBjdXJyZW50RXZlbnRdOwogICAgIGlmICghZXZlbnQpCi0gICAgICAgIHJldHVybiAw
OworICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAogICAgIHN3aXRjaCAoW2V2ZW50IHR5cGVdKSB7
CiAgICAgY2FzZSBOU0V2ZW50VHlwZUtleURvd246IHsKQEAgLTQ4NDIsMTggKzQ4NDIsMTggQEAg
c3RhdGljIFBhc3NSZWZQdHI8S2V5Ym9hcmRFdmVudD4gY3VycmVudEtleWJvYXJkRXZlbnQoRnJh
bWUqIGNvcmVGcmFtZSkKICAgICBjYXNlIE5TRXZlbnRUeXBlS2V5VXA6CiAgICAgICAgIHJldHVy
biBLZXlib2FyZEV2ZW50OjpjcmVhdGUoUGxhdGZvcm1FdmVudEZhY3Rvcnk6OmNyZWF0ZVBsYXRm
b3JtS2V5Ym9hcmRFdmVudChldmVudCksIGNvcmVGcmFtZS0+ZG9jdW1lbnQoKS0+ZGVmYXVsdFZp
ZXcoKSk7CiAgICAgZGVmYXVsdDoKLSAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIHJldHVybiBu
dWxscHRyOwogICAgIH0KICNlbHNlCiAgICAgV2ViRXZlbnQgKmV2ZW50ID0gW1dBS1dpbmRvdyBj
dXJyZW50RXZlbnRdOwogICAgIGlmICghZXZlbnQpCi0gICAgICAgIHJldHVybiAwOworICAgICAg
ICByZXR1cm4gbnVsbHB0cjsKICAgICBXZWJFdmVudFR5cGUgdHlwZSA9IGV2ZW50LnR5cGU7CiAg
ICAgaWYgKHR5cGUgPT0gV2ViRXZlbnRLZXlEb3duIHx8IHR5cGUgPT0gV2ViRXZlbnRLZXlVcCkg
ewogICAgICAgICBEb2N1bWVudCogZG9jdW1lbnQgPSBjb3JlRnJhbWUtPmRvY3VtZW50KCk7CiAg
ICAgICAgIHJldHVybiBLZXlib2FyZEV2ZW50OjpjcmVhdGUoUGxhdGZvcm1FdmVudEZhY3Rvcnk6
OmNyZWF0ZVBsYXRmb3JtS2V5Ym9hcmRFdmVudChldmVudCksIGRvY3VtZW50ID8gZG9jdW1lbnQt
PmRlZmF1bHRWaWV3KCkgOiAwKTsKICAgICB9Ci0gICAgcmV0dXJuIDA7CisgICAgcmV0dXJuIG51
bGxwdHI7CiAjZW5kaWYKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmll
dy9XZWJSZXNvdXJjZS5tbSBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViUmVzb3VyY2Uu
bW0KaW5kZXggMzk3N2I0NDRhOWY1NTYzMmRhNjdkNDNiODIzNDY5YTQ2YTIzNDllYi4uMTlkZjA1
ZWQ4Y2UzNzRiYjQ0Y2I0M2EyMWZlZWI3NjgwMTExZmMxNyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9tYWMvV2ViVmlldy9XZWJSZXNvdXJjZS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9X
ZWJWaWV3L1dlYlJlc291cmNlLm1tCkBAIC0zNSw3ICszNSw2IEBACiAjaW1wb3J0ICJXZWJOU09i
amVjdEV4dHJhcy5oIgogI2ltcG9ydCAiV2ViTlNVUkxFeHRyYXMuaCIKICNpbXBvcnQgPEphdmFT
Y3JpcHRDb3JlL0luaXRpYWxpemVUaHJlYWRpbmcuaD4KLSNpbXBvcnQgPHd0Zi9QYXNzUmVmUHRy
Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL0FyY2hpdmVSZXNvdXJjZS5oPgogI2ltcG9ydCA8V2ViQ29y
ZS9MZWdhY3lXZWJBcmNoaXZlLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1J1bnRpbWVBcHBsaWNhdGlv
bkNoZWNrcy5oPgpAQCAtNDQsNiArNDMsNyBAQAogI2ltcG9ydCA8V2ViQ29yZS9XZWJDb3JlT2Jq
Q0V4dHJhcy5oPgogI2ltcG9ydCA8V2ViQ29yZS9XZWJDb3JlVVJMUmVzcG9uc2UuaD4KICNpbXBv
cnQgPHd0Zi9NYWluVGhyZWFkLmg+CisjaW1wb3J0IDx3dGYvUmVmUHRyLmg+CiAjaW1wb3J0IDx3
dGYvUnVuTG9vcC5oPgogCiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViU2NyaXB0V29ybGQubW0gYi9Tb3VyY2UvV2ViS2l0
L21hYy9XZWJWaWV3L1dlYlNjcmlwdFdvcmxkLm1tCmluZGV4IDc4NDhiMjQ1OTk1ZWU2N2YzMDRi
OWFhMGZlMzBiZDM5MmNiMDRjYjUuLjNlYmYxOTM1MTU4NjUyNDU3NWVmZTJkNmQ3NjU2MTZiNWEw
OGIzYTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViU2NyaXB0V29y
bGQubW0KKysrIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJTY3JpcHRXb3JsZC5tbQpA
QCAtNTIsMTggKzUyLDE0IEBAIHN0YXRpYyBXb3JsZE1hcCYgYWxsV29ybGRzKCkKIAogQGltcGxl
bWVudGF0aW9uIFdlYlNjcmlwdFdvcmxkCiAKLS0gKGlkKWluaXRXaXRoV29ybGQ6KFBhc3NSZWZQ
dHI8RE9NV3JhcHBlcldvcmxkPil3b3JsZAorLSAoaWQpaW5pdFdpdGhXb3JsZDooUmVmPERPTVdy
YXBwZXJXb3JsZD4mJil3b3JsZAogewotICAgIEFTU0VSVF9BUkcod29ybGQsIHdvcmxkKTsKLSAg
ICBpZiAoIXdvcmxkKQotICAgICAgICByZXR1cm4gbmlsOwotCiAgICAgc2VsZiA9IFtzdXBlciBp
bml0XTsKICAgICBpZiAoIXNlbGYpCiAgICAgICAgIHJldHVybiBuaWw7CiAKICAgICBfcHJpdmF0
ZSA9IFtbV2ViU2NyaXB0V29ybGRQcml2YXRlIGFsbG9jXSBpbml0XTsKLSAgICBfcHJpdmF0ZS0+
d29ybGQgPSB3b3JsZDsKKyAgICBfcHJpdmF0ZS0+d29ybGQgPSBXVEZNb3ZlKHdvcmxkKTsKIAog
ICAgIEFTU0VSVF9BUkcod29ybGQsICFhbGxXb3JsZHMoKS5jb250YWlucyhfcHJpdmF0ZS0+d29y
bGQuZ2V0KCkpKTsKICAgICBhbGxXb3JsZHMoKS5hZGQoX3ByaXZhdGUtPndvcmxkLmdldCgpLCBz
ZWxmKTsKQEAgLTkzLDcgKzg5LDcgQEAgLSAodm9pZClkZWFsbG9jCiAKICsgKFdlYlNjcmlwdFdv
cmxkICopc3RhbmRhcmRXb3JsZAogewotICAgIHN0YXRpYyBXZWJTY3JpcHRXb3JsZCAqd29ybGQg
PSBbW1dlYlNjcmlwdFdvcmxkIGFsbG9jXSBpbml0V2l0aFdvcmxkOiZtYWluVGhyZWFkTm9ybWFs
V29ybGQoKV07CisgICAgc3RhdGljIFdlYlNjcmlwdFdvcmxkICp3b3JsZCA9IFtbV2ViU2NyaXB0
V29ybGQgYWxsb2NdIGluaXRXaXRoV29ybGQ6bWFpblRocmVhZE5vcm1hbFdvcmxkKCldOwogICAg
IHJldHVybiB3b3JsZDsKIH0KIApAQCAtMTMxLDcgKzEyNyw3IEBAICsgKFdlYlNjcmlwdFdvcmxk
ICopZmluZE9yQ3JlYXRlV29ybGQ6KERPTVdyYXBwZXJXb3JsZCYpd29ybGQKICAgICBpZiAoV2Vi
U2NyaXB0V29ybGQgKmV4aXN0aW5nV29ybGQgPSBhbGxXb3JsZHMoKS5nZXQoJndvcmxkKSkKICAg
ICAgICAgcmV0dXJuIGV4aXN0aW5nV29ybGQ7CiAKLSAgICByZXR1cm4gW1tbc2VsZiBhbGxvY10g
aW5pdFdpdGhXb3JsZDomd29ybGRdIGF1dG9yZWxlYXNlXTsKKyAgICByZXR1cm4gW1tbc2VsZiBh
bGxvY10gaW5pdFdpdGhXb3JsZDp3b3JsZF0gYXV0b3JlbGVhc2VdOwogfQogCiBAZW5kCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXdEYXRhLmggYi9Tb3VyY2Uv
V2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXdEYXRhLmgKaW5kZXggODhmNjkyYzVjY2Y4ZDk1NTkw
NDlkZDYyYWMyODk4NGI3YWRlNjhjYS4uNmMzNjkyODY3N2JmNjUzNjRlYWJkY2M1NmUwOTQ1YzEw
NmMyZTY5MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3RGF0
YS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlld0RhdGEuaApAQCAtMTI4
LDkgKzEyOCw5IEBAIHByaXZhdGU6CiAKIGNsYXNzIExheWVyRmx1c2hDb250cm9sbGVyIDogcHVi
bGljIFJlZkNvdW50ZWQ8TGF5ZXJGbHVzaENvbnRyb2xsZXI+LCBwdWJsaWMgV2ViQ29yZTo6TGF5
ZXJGbHVzaFNjaGVkdWxlckNsaWVudCB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8
TGF5ZXJGbHVzaENvbnRyb2xsZXI+IGNyZWF0ZShXZWJWaWV3KiB3ZWJWaWV3KQorICAgIHN0YXRp
YyBSZWY8TGF5ZXJGbHVzaENvbnRyb2xsZXI+IGNyZWF0ZShXZWJWaWV3KiB3ZWJWaWV3KQogICAg
IHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBMYXllckZsdXNoQ29udHJvbGxlcih3ZWJW
aWV3KSk7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IExheWVyRmx1c2hDb250cm9sbGVy
KHdlYlZpZXcpKTsKICAgICB9CiAgICAgCiAgICAgdmlydHVhbCBib29sIGZsdXNoTGF5ZXJzKCk7
Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>310002</attachid>
            <date>2017-05-12 20:02:20 -0700</date>
            <delta_ts>2017-05-12 20:22:22 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-172066-20170512200219.patch</filename>
            <type>text/plain</type>
            <size>56449</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjE2ODEwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2lv
cy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2lvcy9DaGFuZ2VMb2cKaW5kZXggZGNhMWI1ZTlk
OGFmZTM4ZTE5NGRhYzAxNGE1OWQxNDk5MTQwZGIzYi4uZGQ1NzZjOGNkYjg1YzJmNDllZjM5ODhi
YjFmMDAxMjkwM2JjMWI5ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9pb3MvQ2hhbmdlTG9n
CisrKyBiL1NvdXJjZS9XZWJLaXQvaW9zL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDE3
LTA1LTEyICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgRHJvcCB1
c2VzIG9mIFBhc3NSZWZQdHIgaW4gV2ViS2l0L21hYworICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTcyMDY2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgQnVpbGQgZml4LgorCisgICAgICAgICogTWlzYy9XZWJH
ZW9sb2NhdGlvblByb3ZpZGVySU9TLm1tOgorCiAyMDE3LTA1LTAxICBDaHJpcyBEdW1leiAgPGNk
dW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgUmVtb3ZlIHNvbWUgdXNhZ2Ugb2YgUGFzc1JlZlB0
ciBpbiBlZGl0aW5nIGNvZGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxv
ZyBiL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwppbmRleCA2MWRlOTA3YzliMDYwNzJjODlk
MjAyMTk3M2VlOWZkZjU1YmI5MjRmLi4zNjk3ZTY3ZTc1NzQ1ODY2YWJhYmUxMGVmZTFkY2UzNjNl
M2JmMzA0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsOTEgQEAKKzIwMTctMDUtMTIgIENo
cmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBEcm9wIHVzZXMgb2YgUGFz
c1JlZlB0ciBpbiBXZWJLaXQvbWFjCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xNzIwNjYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICAqIEhpc3RvcnkvV2ViQmFja0ZvcndhcmRMaXN0SW50ZXJuYWwuaDoKKyAg
ICAgICAgKiBIaXN0b3J5L1dlYkhpc3RvcnlJdGVtLm1tOgorICAgICAgICAoa2l0KToKKyAgICAg
ICAgKC1bV2ViSGlzdG9yeUl0ZW0gaW5pdFdpdGhXZWJDb3JlSGlzdG9yeUl0ZW06XSk6CisgICAg
ICAgICogSGlzdG9yeS9XZWJIaXN0b3J5SXRlbUludGVybmFsLmg6CisgICAgICAgICogUGx1Z2lu
cy9Ib3N0ZWQvSG9zdGVkTmV0c2NhcGVQbHVnaW5TdHJlYW0uaDoKKyAgICAgICAgKFdlYktpdDo6
SG9zdGVkTmV0c2NhcGVQbHVnaW5TdHJlYW06OmNyZWF0ZSk6CisgICAgICAgICogUGx1Z2lucy9I
b3N0ZWQvTmV0c2NhcGVQbHVnaW5Ib3N0TWFuYWdlci5oOgorICAgICAgICAqIFBsdWdpbnMvSG9z
dGVkL05ldHNjYXBlUGx1Z2luSG9zdE1hbmFnZXIubW06CisgICAgICAgIChXZWJLaXQ6Ok5ldHNj
YXBlUGx1Z2luSG9zdE1hbmFnZXI6Omluc3RhbnRpYXRlUGx1Z2luKToKKyAgICAgICAgKiBQbHVn
aW5zL0hvc3RlZC9OZXRzY2FwZVBsdWdpbkluc3RhbmNlUHJveHkuaDoKKyAgICAgICAgKiBQbHVn
aW5zL0hvc3RlZC9OZXRzY2FwZVBsdWdpbkluc3RhbmNlUHJveHkubW06CisgICAgICAgIChXZWJL
aXQ6Ok5ldHNjYXBlUGx1Z2luSW5zdGFuY2VQcm94eTo6UGx1Z2luUmVxdWVzdDo6Y3JlYXRlKToK
KyAgICAgICAgKFdlYktpdDo6TmV0c2NhcGVQbHVnaW5JbnN0YW5jZVByb3h5OjpjcmVhdGUpOgor
ICAgICAgICAoV2ViS2l0OjpOZXRzY2FwZVBsdWdpbkluc3RhbmNlUHJveHk6OnNldE1hbnVhbFN0
cmVhbSk6CisgICAgICAgICogUGx1Z2lucy9Ib3N0ZWQvUHJveHlJbnN0YW5jZS5oOgorICAgICAg
ICAoV2ViS2l0OjpQcm94eUluc3RhbmNlOjpjcmVhdGUpOgorICAgICAgICAqIFBsdWdpbnMvSG9z
dGVkL1Byb3h5SW5zdGFuY2UubW06CisgICAgICAgIChXZWJLaXQ6OlByb3h5SW5zdGFuY2U6OlBy
b3h5SW5zdGFuY2UpOgorICAgICAgICAoV2ViS2l0OjpQcm94eUluc3RhbmNlOjpuZXdSdW50aW1l
T2JqZWN0KToKKyAgICAgICAgKiBQbHVnaW5zL0hvc3RlZC9Qcm94eVJ1bnRpbWVPYmplY3QuaDoK
KyAgICAgICAgKFdlYktpdDo6UHJveHlSdW50aW1lT2JqZWN0OjpjcmVhdGUpOgorICAgICAgICAq
IFBsdWdpbnMvSG9zdGVkL1Byb3h5UnVudGltZU9iamVjdC5tbToKKyAgICAgICAgKFdlYktpdDo6
UHJveHlSdW50aW1lT2JqZWN0OjpQcm94eVJ1bnRpbWVPYmplY3QpOgorICAgICAgICAqIFBsdWdp
bnMvSG9zdGVkL1dlYkhvc3RlZE5ldHNjYXBlUGx1Z2luVmlldy5oOgorICAgICAgICAqIFBsdWdp
bnMvSG9zdGVkL1dlYkhvc3RlZE5ldHNjYXBlUGx1Z2luVmlldy5tbToKKyAgICAgICAgKC1bV2Vi
SG9zdGVkTmV0c2NhcGVQbHVnaW5WaWV3IGluaXRXaXRoRnJhbWU6cGx1Z2luUGFja2FnZTpVUkw6
YmFzZVVSTDpNSU1FVHlwZTphdHRyaWJ1dGVLZXlzOmF0dHJpYnV0ZVZhbHVlczpsb2FkTWFudWFs
bHk6ZWxlbWVudDpdKToKKyAgICAgICAgKiBQbHVnaW5zL1dlYkJhc2VOZXRzY2FwZVBsdWdpblZp
ZXcuaDoKKyAgICAgICAgKiBQbHVnaW5zL1dlYkJhc2VOZXRzY2FwZVBsdWdpblZpZXcubW06Cisg
ICAgICAgICgtW1dlYkJhc2VOZXRzY2FwZVBsdWdpblZpZXcgaW5pdFdpdGhGcmFtZTpwbHVnaW5Q
YWNrYWdlOlVSTDpiYXNlVVJMOk1JTUVUeXBlOmF0dHJpYnV0ZUtleXM6YXR0cmlidXRlVmFsdWVz
OmxvYWRNYW51YWxseTplbGVtZW50Ol0pOgorICAgICAgICAqIFBsdWdpbnMvV2ViTmV0c2NhcGVQ
bHVnaW5TdHJlYW0uaDoKKyAgICAgICAgKFdlYk5ldHNjYXBlUGx1Z2luU3RyZWFtOjpjcmVhdGUp
OgorICAgICAgICAqIFBsdWdpbnMvV2ViTmV0c2NhcGVQbHVnaW5WaWV3Lmg6CisgICAgICAgICog
UGx1Z2lucy9XZWJOZXRzY2FwZVBsdWdpblZpZXcubW06CisgICAgICAgICgtW1dlYk5ldHNjYXBl
UGx1Z2luVmlldyBpbml0V2l0aEZyYW1lOnBsdWdpblBhY2thZ2U6VVJMOmJhc2VVUkw6TUlNRVR5
cGU6YXR0cmlidXRlS2V5czphdHRyaWJ1dGVWYWx1ZXM6bG9hZE1hbnVhbGx5OmVsZW1lbnQ6XSk6
CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lm1tOgorICAgICAgICAq
IFdlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5tbToKKyAgICAgICAgKiBXZWJDb3JlU3Vw
cG9ydC9XZWJOb3RpZmljYXRpb25DbGllbnQubW06CisgICAgICAgIChXZWJOb3RpZmljYXRpb25D
bGllbnQ6OnJlcXVlc3RQZXJtaXNzaW9uKToKKyAgICAgICAgKC1bV2ViTm90aWZpY2F0aW9uUG9s
aWN5TGlzdGVuZXIgaW5pdFdpdGhDYWxsYmFjazpdKToKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9y
dC9XZWJPcGVuUGFuZWxSZXN1bHRMaXN0ZW5lci5tbToKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9y
dC9XZWJVc2VyTWVkaWFDbGllbnQubW06CisgICAgICAgIChXZWJVc2VyTWVkaWFDbGllbnQ6OnJl
cXVlc3RVc2VyTWVkaWFBY2Nlc3MpOgorICAgICAgICAoV2ViVXNlck1lZGlhQ2xpZW50OjplbnVt
ZXJhdGVNZWRpYURldmljZXMpOgorICAgICAgICAoLVtXZWJVc2VyTWVkaWFQb2xpY3lMaXN0ZW5l
ciBpbml0V2l0aFVzZXJNZWRpYVJlcXVlc3Q6XSk6CisgICAgICAgICgtW1dlYlVzZXJNZWRpYVBv
bGljeUNoZWNrZXJMaXN0ZW5lciBpbml0V2l0aE1lZGlhRGV2aWNlc0VudW1lcmF0aW9uUmVxdWVz
dDpdKToKKyAgICAgICAgKiBXZWJWaWV3L1dlYkFyY2hpdmUubW06CisgICAgICAgICgtW1dlYkFy
Y2hpdmVQcml2YXRlIGluaXRXaXRoQ29yZUFyY2hpdmU6XSk6CisgICAgICAgICgtW1dlYkFyY2hp
dmVQcml2YXRlIHNldENvcmVBcmNoaXZlOl0pOgorICAgICAgICAoLVtXZWJBcmNoaXZlIGluaXRX
aXRoRGF0YTpdKToKKyAgICAgICAgKC1bV2ViQXJjaGl2ZSBzdWJmcmFtZUFyY2hpdmVzXSk6Cisg
ICAgICAgICgtW1dlYkFyY2hpdmUgX2luaXRXaXRoQ29yZUxlZ2FjeVdlYkFyY2hpdmU6XSk6Cisg
ICAgICAgICogV2ViVmlldy9XZWJBcmNoaXZlSW50ZXJuYWwuaDoKKyAgICAgICAgKiBXZWJWaWV3
L1dlYkRhdGFTb3VyY2UubW06CisgICAgICAgIChXZWJEYXRhU291cmNlUHJpdmF0ZTo6V2ViRGF0
YVNvdXJjZVByaXZhdGUpOgorICAgICAgICAoV2ViRGF0YVNvdXJjZVByaXZhdGU6On5XZWJEYXRh
U291cmNlUHJpdmF0ZSk6CisgICAgICAgICgtW1dlYkRhdGFTb3VyY2UgX2luaXRXaXRoRG9jdW1l
bnRMb2FkZXI6XSk6CisgICAgICAgICogV2ViVmlldy9XZWJEYXRhU291cmNlSW50ZXJuYWwuaDoK
KyAgICAgICAgKiBXZWJWaWV3L1dlYkRldmljZU9yaWVudGF0aW9uLm1tOgorICAgICAgICAoLVtX
ZWJEZXZpY2VPcmllbnRhdGlvbiBpbml0V2l0aENvcmVEZXZpY2VPcmllbnRhdGlvbjpdKToKKyAg
ICAgICAgKiBXZWJWaWV3L1dlYkRldmljZU9yaWVudGF0aW9uSW50ZXJuYWwuaDoKKyAgICAgICAg
KiBXZWJWaWV3L1dlYkZyYW1lLm1tOgorICAgICAgICAoLVtXZWJGcmFtZSBfY29udmVydFRvRE9N
UmFuZ2U6XSk6CisgICAgICAgICgtW1dlYkZyYW1lIF9jb252ZXJ0VG9ET01SYW5nZTpyYW5nZUlz
UmVsYXRpdmVUbzpdKToKKyAgICAgICAgKiBXZWJWaWV3L1dlYkZyYW1lSW50ZXJuYWwuaDoKKyAg
ICAgICAgKiBXZWJWaWV3L1dlYkZ1bGxTY3JlZW5Db250cm9sbGVyLmg6CisgICAgICAgICogV2Vi
Vmlldy9XZWJGdWxsU2NyZWVuQ29udHJvbGxlci5tbToKKyAgICAgICAgKC1bV2ViRnVsbFNjcmVl
bkNvbnRyb2xsZXIgc2V0RWxlbWVudDpdKToKKyAgICAgICAgKiBXZWJWaWV3L1dlYkdlb2xvY2F0
aW9uUG9zaXRpb24ubW06CisgICAgICAgICgtW1dlYkdlb2xvY2F0aW9uUG9zaXRpb25JbnRlcm5h
bCBpbml0V2l0aENvcmVHZW9sb2NhdGlvblBvc2l0aW9uOl0pOgorICAgICAgICAoLVtXZWJHZW9s
b2NhdGlvblBvc2l0aW9uIGluaXRXaXRoR2VvbG9jYXRpb25Qb3NpdGlvbjpdKToKKyAgICAgICAg
KiBXZWJWaWV3L1dlYkhUTUxWaWV3Lm1tOgorICAgICAgICAoY3VycmVudEtleWJvYXJkRXZlbnQp
OgorICAgICAgICAqIFdlYlZpZXcvV2ViUmVzb3VyY2UubW06CisgICAgICAgICogV2ViVmlldy9X
ZWJTY3JpcHRXb3JsZC5tbToKKyAgICAgICAgKC1bV2ViU2NyaXB0V29ybGQgaW5pdFdpdGhXb3Js
ZDpdKToKKyAgICAgICAgKCtbV2ViU2NyaXB0V29ybGQgc3RhbmRhcmRXb3JsZF0pOgorICAgICAg
ICAoK1tXZWJTY3JpcHRXb3JsZCBmaW5kT3JDcmVhdGVXb3JsZDpdKToKKyAgICAgICAgKiBXZWJW
aWV3L1dlYlZpZXdEYXRhLmg6CisgICAgICAgIChMYXllckZsdXNoQ29udHJvbGxlcjo6Y3JlYXRl
KToKKwogMjAxNy0wNS0xMSAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAg
ICAgIERyb3AgcmVtYWluaW5nIHVzZXMgb2YgUGFzc1JlZlB0ciBpbiBXZWJDb3JlCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L2lvcy9NaXNjL1dlYkdlb2xvY2F0aW9uUHJvdmlkZXJJT1MubW0g
Yi9Tb3VyY2UvV2ViS2l0L2lvcy9NaXNjL1dlYkdlb2xvY2F0aW9uUHJvdmlkZXJJT1MubW0KaW5k
ZXggODYwYzBhMzZhMjNkZGEyOWJiODVlOTI0OTk2ZDY2MGIzZDExYTZmZC4uMGQ1M2FmMDM4NWJj
NDE4M2FmODY4NmI2YzM3NDNkYjVmYzVjMTQ4YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9p
b3MvTWlzYy9XZWJHZW9sb2NhdGlvblByb3ZpZGVySU9TLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQv
aW9zL01pc2MvV2ViR2VvbG9jYXRpb25Qcm92aWRlcklPUy5tbQpAQCAtNDQsNyArNDQsNyBAQAog
dXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKIEBpbnRlcmZhY2UgV2ViR2VvbG9jYXRpb25Qb3Np
dGlvbiAoSW50ZXJuYWwpCi0tIChpZClpbml0V2l0aEdlb2xvY2F0aW9uUG9zaXRpb246KFJlZlB0
cjxHZW9sb2NhdGlvblBvc2l0aW9uPiljb3JlR2VvbG9jYXRpb25Qb3NpdGlvbjsKKy0gKGlkKWlu
aXRXaXRoR2VvbG9jYXRpb25Qb3NpdGlvbjooUmVmUHRyPEdlb2xvY2F0aW9uUG9zaXRpb24+JiYp
Y29yZUdlb2xvY2F0aW9uUG9zaXRpb247CiBAZW5kCiAKIC8vIENvcmVMb2NhdGlvbiBydW5zIGlu
IHRoZSBtYWluIHRocmVhZC4gV2ViR2VvbG9jYXRpb25Qcm92aWRlcklPUyBsaXZlcyBvbiB0aGUg
V2ViVGhyZWFkLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvSGlzdG9yeS9XZWJCYWNr
Rm9yd2FyZExpc3RJbnRlcm5hbC5oIGIvU291cmNlL1dlYktpdC9tYWMvSGlzdG9yeS9XZWJCYWNr
Rm9yd2FyZExpc3RJbnRlcm5hbC5oCmluZGV4IDhkZTBlMzE5ZDZiYWUxYWQ0ODljMWVlMjhmNTRj
MjhhMjExNzIwYWIuLmU1YzAxNTcyYWZkZWM0MzVmZjAxMGM1YzQ3MzNjOTUzNDViNmU3OTkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL0hpc3RvcnkvV2ViQmFja0ZvcndhcmRMaXN0SW50
ZXJuYWwuaAorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9IaXN0b3J5L1dlYkJhY2tGb3J3YXJkTGlz
dEludGVybmFsLmgKQEAgLTI3LDcgKzI3LDcgQEAKICAqLwogCiAjaW1wb3J0IDxXZWJLaXRMZWdh
Y3kvV2ViQmFja0ZvcndhcmRMaXN0Lmg+Ci0jaW1wb3J0IDx3dGYvUGFzc1JlZlB0ci5oPgorI2lt
cG9ydCA8d3RmL1JlZi5oPgogCiBjbGFzcyBCYWNrRm9yd2FyZExpc3Q7CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvbWFjL0hpc3RvcnkvV2ViSGlzdG9yeUl0ZW0ubW0gYi9Tb3VyY2UvV2Vi
S2l0L21hYy9IaXN0b3J5L1dlYkhpc3RvcnlJdGVtLm1tCmluZGV4IDI1YTQzMzIwN2EwZTMyZjE0
Y2E0Yjk5ZWI1NThkYTk5NzgxNDU1MTcuLmFlYzA2ZmZkNmI4ODQ4YjY5Y2FhN2YyNjA5MGE3Nzc4
MjNkNzdiMjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL0hpc3RvcnkvV2ViSGlzdG9y
eUl0ZW0ubW0KKysrIGIvU291cmNlL1dlYktpdC9tYWMvSGlzdG9yeS9XZWJIaXN0b3J5SXRlbS5t
bQpAQCAtMjY3LDcgKzI2Nyw3IEBAIFdlYkhpc3RvcnlJdGVtICpraXQoSGlzdG9yeUl0ZW0qIGl0
ZW0pCiAgICAgaWYgKGtpdEl0ZW0pCiAgICAgICAgIHJldHVybiBraXRJdGVtOwogICAgIAotICAg
IHJldHVybiBbW1tXZWJIaXN0b3J5SXRlbSBhbGxvY10gaW5pdFdpdGhXZWJDb3JlSGlzdG9yeUl0
ZW06aXRlbV0gYXV0b3JlbGVhc2VdOworICAgIHJldHVybiBbW1tXZWJIaXN0b3J5SXRlbSBhbGxv
Y10gaW5pdFdpdGhXZWJDb3JlSGlzdG9yeUl0ZW06Kml0ZW1dIGF1dG9yZWxlYXNlXTsKIH0KIAog
KyAoV2ViSGlzdG9yeUl0ZW0gKillbnRyeVdpdGhVUkw6KE5TVVJMICopVVJMCkBAIC0yODQsNyAr
Mjg0LDcgQEAgLSAoaWQpaW5pdFdpdGhVUkxTdHJpbmc6KE5TU3RyaW5nICopVVJMU3RyaW5nIHRp
dGxlOihOU1N0cmluZyAqKXRpdGxlIGRpc3BsYXlUaXQKICAgICByZXR1cm4gaXRlbTsKIH0KIAot
LSAoaWQpaW5pdFdpdGhXZWJDb3JlSGlzdG9yeUl0ZW06KFBhc3NSZWZQdHI8SGlzdG9yeUl0ZW0+
KWl0ZW0KKy0gKGlkKWluaXRXaXRoV2ViQ29yZUhpc3RvcnlJdGVtOihSZWY8SGlzdG9yeUl0ZW0+
JiYpaXRlbQogeyAgIAogICAgIFdlYkNvcmVUaHJlYWRWaW9sYXRpb25DaGVja1JvdW5kT25lKCk7
CiAgICAgLy8gTmVlZCB0byB0ZWxsIFdlYkNvcmUgd2hhdCBmdW5jdGlvbiB0byBjYWxsIGZvciB0
aGUgCkBAIC0yOTgsNyArMjk4LDcgQEAgLSAoaWQpaW5pdFdpdGhXZWJDb3JlSGlzdG9yeUl0ZW06
KFBhc3NSZWZQdHI8SGlzdG9yeUl0ZW0+KWl0ZW0KICAgICAgICAgcmV0dXJuIG5pbDsKIAogICAg
IF9wcml2YXRlID0gW1tXZWJIaXN0b3J5SXRlbVByaXZhdGUgYWxsb2NdIGluaXRdOwotICAgIF9w
cml2YXRlLT5faGlzdG9yeUl0ZW0gPSBpdGVtOworICAgIF9wcml2YXRlLT5faGlzdG9yeUl0ZW0g
PSBXVEZNb3ZlKGl0ZW0pOwogCiAgICAgQVNTRVJUKCFoaXN0b3J5SXRlbVdyYXBwZXJzKCkuZ2V0
KGNvcmUoX3ByaXZhdGUpKSk7CiAgICAgaGlzdG9yeUl0ZW1XcmFwcGVycygpLnNldChjb3JlKF9w
cml2YXRlKSwgc2VsZik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9IaXN0b3J5L1dl
Ykhpc3RvcnlJdGVtSW50ZXJuYWwuaCBiL1NvdXJjZS9XZWJLaXQvbWFjL0hpc3RvcnkvV2ViSGlz
dG9yeUl0ZW1JbnRlcm5hbC5oCmluZGV4IDBlMjBlN2FmY2NjOWRjODdiM2IxMWUzOWY5NTNiYTgz
YWY1MjRjMWQuLjc5MTRkMzlmOWI3ZGEwN2UyNjhiYThlNTYyMmI0N2EzNjc2MmVlMmIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL0hpc3RvcnkvV2ViSGlzdG9yeUl0ZW1JbnRlcm5hbC5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL0hpc3RvcnkvV2ViSGlzdG9yeUl0ZW1JbnRlcm5hbC5o
CkBAIC00Nyw3ICs0Nyw3IEBAIGV4dGVybiB2b2lkIFdLTm90aWZ5SGlzdG9yeUl0ZW1DaGFuZ2Vk
KFdlYkNvcmU6Okhpc3RvcnlJdGVtKik7CiAKIC0gKGlkKWluaXRXaXRoVVJMU3RyaW5nOihOU1N0
cmluZyAqKVVSTFN0cmluZyB0aXRsZTooTlNTdHJpbmcgKil0aXRsZSBkaXNwbGF5VGl0bGU6KE5T
U3RyaW5nICopZGlzcGxheVRpdGxlIGxhc3RWaXNpdGVkVGltZUludGVydmFsOihOU1RpbWVJbnRl
cnZhbCl0aW1lOwogLSAoaWQpaW5pdEZyb21EaWN0aW9uYXJ5UmVwcmVzZW50YXRpb246KE5TRGlj
dGlvbmFyeSAqKWRpY3Q7Ci0tIChpZClpbml0V2l0aFdlYkNvcmVIaXN0b3J5SXRlbTooUGFzc1Jl
ZlB0cjxXZWJDb3JlOjpIaXN0b3J5SXRlbT4paXRlbTsKKy0gKGlkKWluaXRXaXRoV2ViQ29yZUhp
c3RvcnlJdGVtOihSZWY8V2ViQ29yZTo6SGlzdG9yeUl0ZW0+JiYpaXRlbTsKIAogLSAodm9pZClz
ZXRUaXRsZTooTlNTdHJpbmcgKil0aXRsZTsKIC0gKHZvaWQpX3Zpc2l0ZWRXaXRoVGl0bGU6KE5T
U3RyaW5nICopdGl0bGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9QbHVnaW5zL0hv
c3RlZC9Ib3N0ZWROZXRzY2FwZVBsdWdpblN0cmVhbS5oIGIvU291cmNlL1dlYktpdC9tYWMvUGx1
Z2lucy9Ib3N0ZWQvSG9zdGVkTmV0c2NhcGVQbHVnaW5TdHJlYW0uaAppbmRleCA4ZGRkZTg4NTYx
NTU5ZWM2Y2Q1NmNkMjkyOGRkZDIwZjY0ODE4MzY5Li5hNjE2MGYwZjYyNWU3NmJiYmQ4MGE4MzZm
Mjg5ZDQ3MGM1YzhmMzU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9QbHVnaW5zL0hv
c3RlZC9Ib3N0ZWROZXRzY2FwZVBsdWdpblN0cmVhbS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFj
L1BsdWdpbnMvSG9zdGVkL0hvc3RlZE5ldHNjYXBlUGx1Z2luU3RyZWFtLmgKQEAgLTMwLDcgKzMw
LDcgQEAKIAogI2luY2x1ZGUgPFdlYkNvcmUvTmV0c2NhcGVQbHVnSW5TdHJlYW1Mb2FkZXIuaD4K
ICNpbmNsdWRlIDxXZWJLaXRMZWdhY3kvbnBhcGkuaD4KLSNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0
ci5oPgorI2luY2x1ZGUgPHd0Zi9SZWYuaD4KICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgog
I2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KICNpbmNsdWRlIDx3dGYvUmV0YWluUHRyLmg+CkBAIC00
NywxMyArNDcsMTMgQEAgY2xhc3MgTmV0c2NhcGVQbHVnaW5JbnN0YW5jZVByb3h5OwogY2xhc3Mg
SG9zdGVkTmV0c2NhcGVQbHVnaW5TdHJlYW0gOiBwdWJsaWMgUmVmQ291bnRlZDxIb3N0ZWROZXRz
Y2FwZVBsdWdpblN0cmVhbT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICwgcHJp
dmF0ZSBXZWJDb3JlOjpOZXRzY2FwZVBsdWdJblN0cmVhbUxvYWRlckNsaWVudCB7CiBwdWJsaWM6
Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8SG9zdGVkTmV0c2NhcGVQbHVnaW5TdHJlYW0+IGNyZWF0
ZShOZXRzY2FwZVBsdWdpbkluc3RhbmNlUHJveHkqIGluc3RhbmNlLCB1aW50MzJfdCBzdHJlYW1J
RCwgTlNVUkxSZXF1ZXN0ICpyZXF1ZXN0KQorICAgIHN0YXRpYyBSZWY8SG9zdGVkTmV0c2NhcGVQ
bHVnaW5TdHJlYW0+IGNyZWF0ZShOZXRzY2FwZVBsdWdpbkluc3RhbmNlUHJveHkqIGluc3RhbmNl
LCB1aW50MzJfdCBzdHJlYW1JRCwgTlNVUkxSZXF1ZXN0ICpyZXF1ZXN0KQogICAgIHsKLSAgICAg
ICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBIb3N0ZWROZXRzY2FwZVBsdWdpblN0cmVhbShpbnN0YW5j
ZSwgc3RyZWFtSUQsIHJlcXVlc3QpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgSG9z
dGVkTmV0c2NhcGVQbHVnaW5TdHJlYW0oaW5zdGFuY2UsIHN0cmVhbUlELCByZXF1ZXN0KSk7CiAg
ICAgfQotICAgIHN0YXRpYyBQYXNzUmVmUHRyPEhvc3RlZE5ldHNjYXBlUGx1Z2luU3RyZWFtPiBj
cmVhdGUoTmV0c2NhcGVQbHVnaW5JbnN0YW5jZVByb3h5KiBpbnN0YW5jZSwgV2ViQ29yZTo6RnJh
bWVMb2FkZXIqIGZyYW1lTG9hZGVyKQorICAgIHN0YXRpYyBSZWY8SG9zdGVkTmV0c2NhcGVQbHVn
aW5TdHJlYW0+IGNyZWF0ZShOZXRzY2FwZVBsdWdpbkluc3RhbmNlUHJveHkqIGluc3RhbmNlLCBX
ZWJDb3JlOjpGcmFtZUxvYWRlciogZnJhbWVMb2FkZXIpCiAgICAgewotICAgICAgICByZXR1cm4g
YWRvcHRSZWYobmV3IEhvc3RlZE5ldHNjYXBlUGx1Z2luU3RyZWFtKGluc3RhbmNlLCBmcmFtZUxv
YWRlcikpOworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBIb3N0ZWROZXRzY2FwZVBsdWdp
blN0cmVhbShpbnN0YW5jZSwgZnJhbWVMb2FkZXIpKTsKICAgICB9CiAKICAgICB+SG9zdGVkTmV0
c2NhcGVQbHVnaW5TdHJlYW0oKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1BsdWdp
bnMvSG9zdGVkL05ldHNjYXBlUGx1Z2luSG9zdE1hbmFnZXIuaCBiL1NvdXJjZS9XZWJLaXQvbWFj
L1BsdWdpbnMvSG9zdGVkL05ldHNjYXBlUGx1Z2luSG9zdE1hbmFnZXIuaAppbmRleCBkODQ5NDk3
N2RhMjZkNzAxNjNlZDYyYzM0ZDFiY2JjMWEzY2ZiZDZhLi4yZDI0ZmQ3M2NhOGZlN2QyMDIzYjZk
OTFlMzc0ODMzMzRjMWUzZDIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9QbHVnaW5z
L0hvc3RlZC9OZXRzY2FwZVBsdWdpbkhvc3RNYW5hZ2VyLmgKKysrIGIvU291cmNlL1dlYktpdC9t
YWMvUGx1Z2lucy9Ib3N0ZWQvTmV0c2NhcGVQbHVnaW5Ib3N0TWFuYWdlci5oCkBAIC0yOSw4ICsy
OSw4IEBACiAjZGVmaW5lIE5ldHNjYXBlUGx1Z2luSG9zdE1hbmFnZXJfaAogCiAjaW1wb3J0IDx3
dGYvSGFzaE1hcC5oPgotI2ltcG9ydCA8d3RmL1Bhc3NSZWZQdHIuaD4KICNpbXBvcnQgPHd0Zi9O
ZXZlckRlc3Ryb3llZC5oPgorI2ltcG9ydCA8d3RmL1JlZlB0ci5oPgogI2ltcG9ydCA8d3RmL3Rl
eHQvU3RyaW5nSGFzaC5oPgogI2ltcG9ydCA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKQEAgLTQ1
LDcgKzQ1LDcgQEAgY2xhc3MgTmV0c2NhcGVQbHVnaW5Ib3N0TWFuYWdlciB7CiBwdWJsaWM6CiAg
ICAgc3RhdGljIE5ldHNjYXBlUGx1Z2luSG9zdE1hbmFnZXImIHNpbmdsZXRvbigpOwogICAgIAot
ICAgIFBhc3NSZWZQdHI8TmV0c2NhcGVQbHVnaW5JbnN0YW5jZVByb3h5PiBpbnN0YW50aWF0ZVBs
dWdpbihjb25zdCBTdHJpbmcmIHBsdWdpblBhdGgsIGNwdV90eXBlX3QgcGx1Z2luQXJjaGl0ZWN0
dXJlLCBjb25zdCBTdHJpbmcmIGJ1bmRsZUlkZW50aWZpZXIsIFdlYkhvc3RlZE5ldHNjYXBlUGx1
Z2luVmlldyAqLCBOU1N0cmluZyAqbWltZVR5cGUsIE5TQXJyYXkgKmF0dHJpYnV0ZUtleXMsIE5T
QXJyYXkgKmF0dHJpYnV0ZVZhbHVlcywgTlNTdHJpbmcgKnVzZXJBZ2VudCwgTlNVUkwgKnNvdXJj
ZVVSTCwgYm9vbCBmdWxsRnJhbWUsIGJvb2wgaXNQcml2YXRlQnJvd3NpbmdFbmFibGVkLCBib29s
IGlzQWNjZWxlcmF0ZWRDb21wb3NpdGluZ0VuYWJsZWQsIGJvb2wgaG9zdExheWVyc0luV2luZG93
U2VydmVyKTsKKyAgICBSZWZQdHI8TmV0c2NhcGVQbHVnaW5JbnN0YW5jZVByb3h5PiBpbnN0YW50
aWF0ZVBsdWdpbihjb25zdCBTdHJpbmcmIHBsdWdpblBhdGgsIGNwdV90eXBlX3QgcGx1Z2luQXJj
aGl0ZWN0dXJlLCBjb25zdCBTdHJpbmcmIGJ1bmRsZUlkZW50aWZpZXIsIFdlYkhvc3RlZE5ldHNj
YXBlUGx1Z2luVmlldyAqLCBOU1N0cmluZyAqbWltZVR5cGUsIE5TQXJyYXkgKmF0dHJpYnV0ZUtl
eXMsIE5TQXJyYXkgKmF0dHJpYnV0ZVZhbHVlcywgTlNTdHJpbmcgKnVzZXJBZ2VudCwgTlNVUkwg
KnNvdXJjZVVSTCwgYm9vbCBmdWxsRnJhbWUsIGJvb2wgaXNQcml2YXRlQnJvd3NpbmdFbmFibGVk
LCBib29sIGlzQWNjZWxlcmF0ZWRDb21wb3NpdGluZ0VuYWJsZWQsIGJvb2wgaG9zdExheWVyc0lu
V2luZG93U2VydmVyKTsKIAogICAgIHZvaWQgcGx1Z2luSG9zdERpZWQoTmV0c2NhcGVQbHVnaW5I
b3N0UHJveHkqKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvUGx1Z2lucy9Ib3N0
ZWQvTmV0c2NhcGVQbHVnaW5Ib3N0TWFuYWdlci5tbSBiL1NvdXJjZS9XZWJLaXQvbWFjL1BsdWdp
bnMvSG9zdGVkL05ldHNjYXBlUGx1Z2luSG9zdE1hbmFnZXIubW0KaW5kZXggZTRiN2M4OTlhNjVh
MjQzOGI4YjM2YWQ0Mzg3OGQ4YThiNWQ4ZTViYy4uZDc3MjYyODA1MDVhZjIxNmE1OWRhNGUwZjJh
ODhkNjk5YmZiN2YxNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvUGx1Z2lucy9Ib3N0
ZWQvTmV0c2NhcGVQbHVnaW5Ib3N0TWFuYWdlci5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9Q
bHVnaW5zL0hvc3RlZC9OZXRzY2FwZVBsdWdpbkhvc3RNYW5hZ2VyLm1tCkBAIC0yMTMsMTEgKzIx
MywxMSBAQCB2b2lkIE5ldHNjYXBlUGx1Z2luSG9zdE1hbmFnZXI6OnBsdWdpbkhvc3REaWVkKE5l
dHNjYXBlUGx1Z2luSG9zdFByb3h5KiBwbHVnaW5IbwogICAgIH0KIH0KIAotUGFzc1JlZlB0cjxO
ZXRzY2FwZVBsdWdpbkluc3RhbmNlUHJveHk+IE5ldHNjYXBlUGx1Z2luSG9zdE1hbmFnZXI6Omlu
c3RhbnRpYXRlUGx1Z2luKGNvbnN0IFN0cmluZyYgcGx1Z2luUGF0aCwgY3B1X3R5cGVfdCBwbHVn
aW5BcmNoaXRlY3R1cmUsIGNvbnN0IFN0cmluZyYgYnVuZGxlSWRlbnRpZmllciwgV2ViSG9zdGVk
TmV0c2NhcGVQbHVnaW5WaWV3ICpwbHVnaW5WaWV3LCBOU1N0cmluZyAqbWltZVR5cGUsIE5TQXJy
YXkgKmF0dHJpYnV0ZUtleXMsIE5TQXJyYXkgKmF0dHJpYnV0ZVZhbHVlcywgTlNTdHJpbmcgKnVz
ZXJBZ2VudCwgTlNVUkwgKnNvdXJjZVVSTCwgYm9vbCBmdWxsRnJhbWUsIGJvb2wgaXNQcml2YXRl
QnJvd3NpbmdFbmFibGVkLCBib29sIGlzQWNjZWxlcmF0ZWRDb21wb3NpdGluZ0VuYWJsZWQsIGJv
b2wgaG9zdExheWVyc0luV2luZG93U2VydmVyKQorUmVmUHRyPE5ldHNjYXBlUGx1Z2luSW5zdGFu
Y2VQcm94eT4gTmV0c2NhcGVQbHVnaW5Ib3N0TWFuYWdlcjo6aW5zdGFudGlhdGVQbHVnaW4oY29u
c3QgU3RyaW5nJiBwbHVnaW5QYXRoLCBjcHVfdHlwZV90IHBsdWdpbkFyY2hpdGVjdHVyZSwgY29u
c3QgU3RyaW5nJiBidW5kbGVJZGVudGlmaWVyLCBXZWJIb3N0ZWROZXRzY2FwZVBsdWdpblZpZXcg
KnBsdWdpblZpZXcsIE5TU3RyaW5nICptaW1lVHlwZSwgTlNBcnJheSAqYXR0cmlidXRlS2V5cywg
TlNBcnJheSAqYXR0cmlidXRlVmFsdWVzLCBOU1N0cmluZyAqdXNlckFnZW50LCBOU1VSTCAqc291
cmNlVVJMLCBib29sIGZ1bGxGcmFtZSwgYm9vbCBpc1ByaXZhdGVCcm93c2luZ0VuYWJsZWQsIGJv
b2wgaXNBY2NlbGVyYXRlZENvbXBvc2l0aW5nRW5hYmxlZCwgYm9vbCBob3N0TGF5ZXJzSW5XaW5k
b3dTZXJ2ZXIpCiB7CiAgICAgTmV0c2NhcGVQbHVnaW5Ib3N0UHJveHkqIGhvc3RQcm94eSA9IGhv
c3RGb3JQbHVnaW4ocGx1Z2luUGF0aCwgcGx1Z2luQXJjaGl0ZWN0dXJlLCBidW5kbGVJZGVudGlm
aWVyKTsKICAgICBpZiAoIWhvc3RQcm94eSkKLSAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIHJl
dHVybiBudWxscHRyOwogCiAgICAgUmV0YWluUHRyPE5TTXV0YWJsZURpY3Rpb25hcnk+IHByb3Bl
cnRpZXMgPSBhZG9wdE5TKFtbTlNNdXRhYmxlRGljdGlvbmFyeSBhbGxvY10gaW5pdF0pOwogICAg
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvUGx1Z2lucy9Ib3N0ZWQvTmV0c2NhcGVQ
bHVnaW5JbnN0YW5jZVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L21hYy9QbHVnaW5zL0hvc3RlZC9O
ZXRzY2FwZVBsdWdpbkluc3RhbmNlUHJveHkuaAppbmRleCA2Y2FlMDI3MjcxNDk1MmViNmMxOTIz
YThkMGQyNGY2OTIyMDUxYjlmLi42NTIwNWZjNGM3ZDZkMWU2ODdhOGFiZWE1NDQ3YTdmNmY5N2Q0
MTAwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9QbHVnaW5zL0hvc3RlZC9OZXRzY2Fw
ZVBsdWdpbkluc3RhbmNlUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9QbHVnaW5zL0hv
c3RlZC9OZXRzY2FwZVBsdWdpbkluc3RhbmNlUHJveHkuaApAQCAtMzYsNyArMzYsNyBAQAogI2lu
Y2x1ZGUgPHd0Zi9EZXF1ZS5oPgogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAjaW5jbHVkZSA8
d3RmL0hhc2hNYXAuaD4KLSNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0
Zi9SZWYuaD4KICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgogI2luY2x1ZGUgPHd0Zi9SZXRh
aW5QdHIuaD4KICNpbmNsdWRlICJXZWJLaXRQbHVnaW5Ib3N0VHlwZXMuaCIKQEAgLTYwLDcgKzYw
LDcgQEAgY2xhc3MgUHJveHlJbnN0YW5jZTsKICAgICAKIGNsYXNzIE5ldHNjYXBlUGx1Z2luSW5z
dGFuY2VQcm94eSA6IHB1YmxpYyBSZWZDb3VudGVkPE5ldHNjYXBlUGx1Z2luSW5zdGFuY2VQcm94
eT4gewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPE5ldHNjYXBlUGx1Z2luSW5zdGFu
Y2VQcm94eT4gY3JlYXRlKE5ldHNjYXBlUGx1Z2luSG9zdFByb3h5KiwgV2ViSG9zdGVkTmV0c2Nh
cGVQbHVnaW5WaWV3ICosIGJvb2wgZnVsbEZyYW1lUGx1Z2luKTsKKyAgICBzdGF0aWMgUmVmPE5l
dHNjYXBlUGx1Z2luSW5zdGFuY2VQcm94eT4gY3JlYXRlKE5ldHNjYXBlUGx1Z2luSG9zdFByb3h5
KiwgV2ViSG9zdGVkTmV0c2NhcGVQbHVnaW5WaWV3ICosIGJvb2wgZnVsbEZyYW1lUGx1Z2luKTsK
ICAgICB+TmV0c2NhcGVQbHVnaW5JbnN0YW5jZVByb3h5KCk7CiAgICAgCiAgICAgdWludDMyX3Qg
cGx1Z2luSUQoKSBjb25zdCAKQEAgLTgxLDcgKzgxLDcgQEAgcHVibGljOgogICAgIGJvb2wgY2Fu
Y2VsU3RyZWFtTG9hZCh1aW50MzJfdCBzdHJlYW1JRCwgTlBSZWFzb24pOwogICAgIHZvaWQgZGlz
Y29ubmVjdFN0cmVhbShIb3N0ZWROZXRzY2FwZVBsdWdpblN0cmVhbSopOwogICAgIAotICAgIHZv
aWQgc2V0TWFudWFsU3RyZWFtKFBhc3NSZWZQdHI8SG9zdGVkTmV0c2NhcGVQbHVnaW5TdHJlYW0+
KTsKKyAgICB2b2lkIHNldE1hbnVhbFN0cmVhbShSZWY8SG9zdGVkTmV0c2NhcGVQbHVnaW5TdHJl
YW0+JiYpOwogICAgIEhvc3RlZE5ldHNjYXBlUGx1Z2luU3RyZWFtKiBtYW51YWxTdHJlYW0oKSBj
b25zdCB7IHJldHVybiBtX21hbnVhbFN0cmVhbS5nZXQoKTsgfQogICAgIAogICAgIHZvaWQgcGx1
Z2luSG9zdERpZWQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1BsdWdpbnMvSG9z
dGVkL05ldHNjYXBlUGx1Z2luSW5zdGFuY2VQcm94eS5tbSBiL1NvdXJjZS9XZWJLaXQvbWFjL1Bs
dWdpbnMvSG9zdGVkL05ldHNjYXBlUGx1Z2luSW5zdGFuY2VQcm94eS5tbQppbmRleCBmNjg1OGQz
ZGExMDZiYzMyNTQ4MWJiNTgxY2Q3MWM2MTI0YzA1ZTcyLi5mYjg5NzRkOTA1MGY5MmQ3ZGIwOGQx
ZGNlM2RiMmU5ZTVlNDAzZGVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9QbHVnaW5z
L0hvc3RlZC9OZXRzY2FwZVBsdWdpbkluc3RhbmNlUHJveHkubW0KKysrIGIvU291cmNlL1dlYktp
dC9tYWMvUGx1Z2lucy9Ib3N0ZWQvTmV0c2NhcGVQbHVnaW5JbnN0YW5jZVByb3h5Lm1tCkBAIC04
MSw5ICs4MSw5IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogCiBjbGFzcyBOZXRzY2FwZVBsdWdpbklu
c3RhbmNlUHJveHk6OlBsdWdpblJlcXVlc3QgOiBwdWJsaWMgUmVmQ291bnRlZDxOZXRzY2FwZVBs
dWdpbkluc3RhbmNlUHJveHk6OlBsdWdpblJlcXVlc3Q+IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMg
UGFzc1JlZlB0cjxQbHVnaW5SZXF1ZXN0PiBjcmVhdGUodWludDMyX3QgcmVxdWVzdElELCBOU1VS
TFJlcXVlc3QqIHJlcXVlc3QsIE5TU3RyaW5nKiBmcmFtZU5hbWUsIGJvb2wgYWxsb3dQb3B1cHMp
CisgICAgc3RhdGljIFJlZjxQbHVnaW5SZXF1ZXN0PiBjcmVhdGUodWludDMyX3QgcmVxdWVzdElE
LCBOU1VSTFJlcXVlc3QqIHJlcXVlc3QsIE5TU3RyaW5nKiBmcmFtZU5hbWUsIGJvb2wgYWxsb3dQ
b3B1cHMpCiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IFBsdWdpblJlcXVlc3Qo
cmVxdWVzdElELCByZXF1ZXN0LCBmcmFtZU5hbWUsIGFsbG93UG9wdXBzKSk7CisgICAgICAgIHJl
dHVybiBhZG9wdFJlZigqbmV3IFBsdWdpblJlcXVlc3QocmVxdWVzdElELCByZXF1ZXN0LCBmcmFt
ZU5hbWUsIGFsbG93UG9wdXBzKSk7CiAgICAgfQogCiAgICAgdWludDMyX3QgcmVxdWVzdElEKCkg
Y29uc3QgeyByZXR1cm4gbV9yZXF1ZXN0SUQ7IH0KQEAgLTI0NiwxMSArMjQ2LDExIEBAIE5ldHNj
YXBlUGx1Z2luSW5zdGFuY2VQcm94eTo6TmV0c2NhcGVQbHVnaW5JbnN0YW5jZVByb3h5KE5ldHNj
YXBlUGx1Z2luSG9zdFByb3h5CiAjZW5kaWYKIH0KIAotUGFzc1JlZlB0cjxOZXRzY2FwZVBsdWdp
bkluc3RhbmNlUHJveHk+IE5ldHNjYXBlUGx1Z2luSW5zdGFuY2VQcm94eTo6Y3JlYXRlKE5ldHNj
YXBlUGx1Z2luSG9zdFByb3h5KiBwbHVnaW5Ib3N0UHJveHksIFdlYkhvc3RlZE5ldHNjYXBlUGx1
Z2luVmlldyAqcGx1Z2luVmlldywgYm9vbCBmdWxsRnJhbWVQbHVnaW4pCitSZWY8TmV0c2NhcGVQ
bHVnaW5JbnN0YW5jZVByb3h5PiBOZXRzY2FwZVBsdWdpbkluc3RhbmNlUHJveHk6OmNyZWF0ZShO
ZXRzY2FwZVBsdWdpbkhvc3RQcm94eSogcGx1Z2luSG9zdFByb3h5LCBXZWJIb3N0ZWROZXRzY2Fw
ZVBsdWdpblZpZXcgKnBsdWdpblZpZXcsIGJvb2wgZnVsbEZyYW1lUGx1Z2luKQogewogICAgIGF1
dG8gcHJveHkgPSBhZG9wdFJlZigqbmV3IE5ldHNjYXBlUGx1Z2luSW5zdGFuY2VQcm94eShwbHVn
aW5Ib3N0UHJveHksIHBsdWdpblZpZXcsIGZ1bGxGcmFtZVBsdWdpbikpOwogICAgIHBsdWdpbkhv
c3RQcm94eS0+YWRkUGx1Z2luSW5zdGFuY2UocHJveHkucHRyKCkpOwotICAgIHJldHVybiBXVEZN
b3ZlKHByb3h5KTsKKyAgICByZXR1cm4gcHJveHk7CiB9CiAKIE5ldHNjYXBlUGx1Z2luSW5zdGFu
Y2VQcm94eTo6fk5ldHNjYXBlUGx1Z2luSW5zdGFuY2VQcm94eSgpCkBAIC0zNTksMTEgKzM1OSwx
MSBAQCB2b2lkIE5ldHNjYXBlUGx1Z2luSW5zdGFuY2VQcm94eTo6ZGVzdHJveSgpCiAgICAgaW52
YWxpZGF0ZSgpOwogfQogCi12b2lkIE5ldHNjYXBlUGx1Z2luSW5zdGFuY2VQcm94eTo6c2V0TWFu
dWFsU3RyZWFtKFBhc3NSZWZQdHI8SG9zdGVkTmV0c2NhcGVQbHVnaW5TdHJlYW0+IG1hbnVhbFN0
cmVhbSkgCit2b2lkIE5ldHNjYXBlUGx1Z2luSW5zdGFuY2VQcm94eTo6c2V0TWFudWFsU3RyZWFt
KFJlZjxIb3N0ZWROZXRzY2FwZVBsdWdpblN0cmVhbT4mJiBtYW51YWxTdHJlYW0pCiB7CiAgICAg
QVNTRVJUKCFtX21hbnVhbFN0cmVhbSk7CiAgICAgCi0gICAgbV9tYW51YWxTdHJlYW0gPSBtYW51
YWxTdHJlYW07CisgICAgbV9tYW51YWxTdHJlYW0gPSBXVEZNb3ZlKG1hbnVhbFN0cmVhbSk7CiB9
CiAKIGJvb2wgTmV0c2NhcGVQbHVnaW5JbnN0YW5jZVByb3h5OjpjYW5jZWxTdHJlYW1Mb2FkKHVp
bnQzMl90IHN0cmVhbUlELCBOUFJlYXNvbiByZWFzb24pIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9tYWMvUGx1Z2lucy9Ib3N0ZWQvUHJveHlJbnN0YW5jZS5oIGIvU291cmNlL1dlYktpdC9t
YWMvUGx1Z2lucy9Ib3N0ZWQvUHJveHlJbnN0YW5jZS5oCmluZGV4IGFmYmExMDIwZDk1ZGFlYjYz
ZTE3YzdmYjkzMjE0MWFlOGU5NGQ4N2UuLjNiMDIyMGIyNjE3NTEwM2ZlOGQ3MTE4MmIzMTY1ZTNl
NTYwNTI3MzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1BsdWdpbnMvSG9zdGVkL1By
b3h5SW5zdGFuY2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9QbHVnaW5zL0hvc3RlZC9Qcm94
eUluc3RhbmNlLmgKQEAgLTM5LDkgKzM5LDkgQEAgY2xhc3MgUHJveHlDbGFzczsKICAgICAKIGNs
YXNzIFByb3h5SW5zdGFuY2UgOiBwdWJsaWMgSlNDOjpCaW5kaW5nczo6SW5zdGFuY2UgewogcHVi
bGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFByb3h5SW5zdGFuY2U+IGNyZWF0ZShQYXNzUmVm
UHRyPEpTQzo6QmluZGluZ3M6OlJvb3RPYmplY3Q+IHJvb3RPYmplY3QsIE5ldHNjYXBlUGx1Z2lu
SW5zdGFuY2VQcm94eSogaW5zdGFuY2VQcm94eSwgdWludDMyX3Qgb2JqZWN0SUQpCisgICAgc3Rh
dGljIFJlZjxQcm94eUluc3RhbmNlPiBjcmVhdGUoUmVmPEpTQzo6QmluZGluZ3M6OlJvb3RPYmpl
Y3Q+JiYgcm9vdE9iamVjdCwgTmV0c2NhcGVQbHVnaW5JbnN0YW5jZVByb3h5KiBpbnN0YW5jZVBy
b3h5LCB1aW50MzJfdCBvYmplY3RJRCkKICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZihu
ZXcgUHJveHlJbnN0YW5jZShyb290T2JqZWN0LCBpbnN0YW5jZVByb3h5LCBvYmplY3RJRCkpOwor
ICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBQcm94eUluc3RhbmNlKFdURk1vdmUocm9vdE9i
amVjdCksIGluc3RhbmNlUHJveHksIG9iamVjdElEKSk7CiAgICAgfQogICAgIH5Qcm94eUluc3Rh
bmNlKCk7CiAKQEAgLTU5LDcgKzU5LDcgQEAgcHVibGljOgogICAgIHVpbnQzMl90IG9iamVjdElE
KCkgY29uc3QgeyByZXR1cm4gbV9vYmplY3RJRDsgfQogICAgIAogcHJpdmF0ZToKLSAgICBQcm94
eUluc3RhbmNlKFBhc3NSZWZQdHI8SlNDOjpCaW5kaW5nczo6Um9vdE9iamVjdD4sIE5ldHNjYXBl
UGx1Z2luSW5zdGFuY2VQcm94eSosIHVpbnQzMl90IG9iamVjdElEKTsKKyAgICBQcm94eUluc3Rh
bmNlKFJlZjxKU0M6OkJpbmRpbmdzOjpSb290T2JqZWN0PiYmLCBOZXRzY2FwZVBsdWdpbkluc3Rh
bmNlUHJveHkqLCB1aW50MzJfdCBvYmplY3RJRCk7CiAKICAgICB2aXJ0dWFsIEpTQzo6QmluZGlu
Z3M6OlJ1bnRpbWVPYmplY3QqIG5ld1J1bnRpbWVPYmplY3QoSlNDOjpFeGVjU3RhdGUqKTsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvUGx1Z2lucy9Ib3N0ZWQvUHJveHlJbnN0YW5j
ZS5tbSBiL1NvdXJjZS9XZWJLaXQvbWFjL1BsdWdpbnMvSG9zdGVkL1Byb3h5SW5zdGFuY2UubW0K
aW5kZXggMzcxYzUxOTczNTcxYTFkYmRmZGNjNzNhNzk0ZDYyMTYyZmIyOGVjNi4uOWMwMGQ3Yzhj
NjRhNWIxMjQ0ZDdjOTA0NGMzMWI2OWM5NGFjMmFlZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9tYWMvUGx1Z2lucy9Ib3N0ZWQvUHJveHlJbnN0YW5jZS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0
L21hYy9QbHVnaW5zL0hvc3RlZC9Qcm94eUluc3RhbmNlLm1tCkBAIC0xMTIsOCArMTEyLDggQEAg
cHJpdmF0ZToKICAgICB1aW50NjRfdCBtX3NlcnZlcklkZW50aWZpZXI7CiB9OwogCi1Qcm94eUlu
c3RhbmNlOjpQcm94eUluc3RhbmNlKFBhc3NSZWZQdHI8Um9vdE9iamVjdD4gcm9vdE9iamVjdCwg
TmV0c2NhcGVQbHVnaW5JbnN0YW5jZVByb3h5KiBpbnN0YW5jZVByb3h5LCB1aW50MzJfdCBvYmpl
Y3RJRCkKLSAgICA6IEluc3RhbmNlKHJvb3RPYmplY3QpCitQcm94eUluc3RhbmNlOjpQcm94eUlu
c3RhbmNlKFJlZjxSb290T2JqZWN0PiYmIHJvb3RPYmplY3QsIE5ldHNjYXBlUGx1Z2luSW5zdGFu
Y2VQcm94eSogaW5zdGFuY2VQcm94eSwgdWludDMyX3Qgb2JqZWN0SUQpCisgICAgOiBJbnN0YW5j
ZShXVEZNb3ZlKHJvb3RPYmplY3QpKQogICAgICwgbV9pbnN0YW5jZVByb3h5KGluc3RhbmNlUHJv
eHkpCiAgICAgLCBtX29iamVjdElEKG9iamVjdElEKQogewpAQCAtMTMzLDcgKzEzMyw3IEBAIFBy
b3h5SW5zdGFuY2U6On5Qcm94eUluc3RhbmNlKCkKIFJ1bnRpbWVPYmplY3QqIFByb3h5SW5zdGFu
Y2U6Om5ld1J1bnRpbWVPYmplY3QoRXhlY1N0YXRlKiBleGVjKQogewogICAgIC8vIEZJWE1FOiBk
ZXByZWNhdGVkR2V0RE9NU3RydWN0dXJlIHVzZXMgdGhlIHByb3RvdHlwZSBvZmYgb2YgdGhlIHdy
b25nIGdsb2JhbCBvYmplY3QuCi0gICAgcmV0dXJuIFByb3h5UnVudGltZU9iamVjdDo6Y3JlYXRl
KGV4ZWMtPnZtKCksIFdlYkNvcmU6OmRlcHJlY2F0ZWRHZXRET01TdHJ1Y3R1cmU8UHJveHlSdW50
aW1lT2JqZWN0PihleGVjKSwgdGhpcyk7CisgICAgcmV0dXJuIFByb3h5UnVudGltZU9iamVjdDo6
Y3JlYXRlKGV4ZWMtPnZtKCksIFdlYkNvcmU6OmRlcHJlY2F0ZWRHZXRET01TdHJ1Y3R1cmU8UHJv
eHlSdW50aW1lT2JqZWN0PihleGVjKSwgKnRoaXMpOwogfQogCiBKU0M6OkJpbmRpbmdzOjpDbGFz
cyogUHJveHlJbnN0YW5jZTo6Z2V0Q2xhc3MoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9tYWMvUGx1Z2lucy9Ib3N0ZWQvUHJveHlSdW50aW1lT2JqZWN0LmggYi9Tb3VyY2UvV2Vi
S2l0L21hYy9QbHVnaW5zL0hvc3RlZC9Qcm94eVJ1bnRpbWVPYmplY3QuaAppbmRleCBjYmFiNmU5
ODI1OWRiYzhhZTQ1ZDdmNmZkOTBhYWIwMmUwM2ZkNjkzLi42ZGQwODg1MDQ0OTA2MDRkYmJjNjQx
OWZiMjM3MjY1ZGI2MGJjNjIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9QbHVnaW5z
L0hvc3RlZC9Qcm94eVJ1bnRpbWVPYmplY3QuaAorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9QbHVn
aW5zL0hvc3RlZC9Qcm94eVJ1bnRpbWVPYmplY3QuaApAQCAtMzksOSArMzksOSBAQCBjbGFzcyBQ
cm94eVJ1bnRpbWVPYmplY3QgOiBwdWJsaWMgSlNDOjpCaW5kaW5nczo6UnVudGltZU9iamVjdCB7
CiBwdWJsaWM6CiAgICAgdHlwZWRlZiBKU0M6OkJpbmRpbmdzOjpSdW50aW1lT2JqZWN0IEJhc2U7
CiAKLSAgICBzdGF0aWMgUHJveHlSdW50aW1lT2JqZWN0KiBjcmVhdGUoSlNDOjpWTSYgdm0sIEpT
Qzo6U3RydWN0dXJlKiBzdHJ1Y3R1cmUsIFBhc3NSZWZQdHI8UHJveHlJbnN0YW5jZT4gaW5zdGFu
Y2UpCisgICAgc3RhdGljIFByb3h5UnVudGltZU9iamVjdCogY3JlYXRlKEpTQzo6Vk0mIHZtLCBK
U0M6OlN0cnVjdHVyZSogc3RydWN0dXJlLCBSZWY8UHJveHlJbnN0YW5jZT4mJiBpbnN0YW5jZSkK
ICAgICB7Ci0gICAgICAgIFByb3h5UnVudGltZU9iamVjdCogb2JqZWN0ID0gbmV3IChKU0M6OmFs
bG9jYXRlQ2VsbDxQcm94eVJ1bnRpbWVPYmplY3Q+KHZtLmhlYXApKSBQcm94eVJ1bnRpbWVPYmpl
Y3Qodm0sIHN0cnVjdHVyZSwgaW5zdGFuY2UpOworICAgICAgICBQcm94eVJ1bnRpbWVPYmplY3Qq
IG9iamVjdCA9IG5ldyAoSlNDOjphbGxvY2F0ZUNlbGw8UHJveHlSdW50aW1lT2JqZWN0Pih2bS5o
ZWFwKSkgUHJveHlSdW50aW1lT2JqZWN0KHZtLCBzdHJ1Y3R1cmUsIFdURk1vdmUoaW5zdGFuY2Up
KTsKICAgICAgICAgb2JqZWN0LT5maW5pc2hDcmVhdGlvbih2bSk7CiAgICAgICAgIHJldHVybiBv
YmplY3Q7CiAgICAgfQpAQCAtNTYsNyArNTYsNyBAQCBwdWJsaWM6CiAgICAgREVDTEFSRV9JTkZP
OwogCiBwcml2YXRlOgotICAgIFByb3h5UnVudGltZU9iamVjdChKU0M6OlZNJiwgSlNDOjpTdHJ1
Y3R1cmUqLCBQYXNzUmVmUHRyPFByb3h5SW5zdGFuY2U+KTsKKyAgICBQcm94eVJ1bnRpbWVPYmpl
Y3QoSlNDOjpWTSYsIEpTQzo6U3RydWN0dXJlKiwgUmVmPFByb3h5SW5zdGFuY2U+JiYpOwogICAg
IHZvaWQgZmluaXNoQ3JlYXRpb24oSlNDOjpWTSYpOwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9tYWMvUGx1Z2lucy9Ib3N0ZWQvUHJveHlSdW50aW1lT2JqZWN0Lm1tIGIvU291cmNl
L1dlYktpdC9tYWMvUGx1Z2lucy9Ib3N0ZWQvUHJveHlSdW50aW1lT2JqZWN0Lm1tCmluZGV4IDVl
NmQyYjMzYzExNjFkODRiNDI4OTk0MWY0MGVkMGIwMjQwYzkyMzguLjkyN2VmYWYxNDNlNmY3NzBh
ZThhZjFjODJmZmZiZGY0NjRjMGI4YjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1Bs
dWdpbnMvSG9zdGVkL1Byb3h5UnVudGltZU9iamVjdC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21h
Yy9QbHVnaW5zL0hvc3RlZC9Qcm94eVJ1bnRpbWVPYmplY3QubW0KQEAgLTM2LDggKzM2LDggQEAg
bmFtZXNwYWNlIFdlYktpdCB7CiAKIGNvbnN0IENsYXNzSW5mbyBQcm94eVJ1bnRpbWVPYmplY3Q6
OnNfaW5mbyA9IHsgIlByb3h5UnVudGltZU9iamVjdCIsICZSdW50aW1lT2JqZWN0OjpzX2luZm8s
IDAsIENSRUFURV9NRVRIT0RfVEFCTEUoUHJveHlSdW50aW1lT2JqZWN0KSB9OwogCi1Qcm94eVJ1
bnRpbWVPYmplY3Q6OlByb3h5UnVudGltZU9iamVjdChWTSYgdm0sIFN0cnVjdHVyZSogc3RydWN0
dXJlLCBQYXNzUmVmUHRyPFByb3h5SW5zdGFuY2U+IGluc3RhbmNlKQotICAgIDogUnVudGltZU9i
amVjdCh2bSwgc3RydWN0dXJlLCBpbnN0YW5jZSkKK1Byb3h5UnVudGltZU9iamVjdDo6UHJveHlS
dW50aW1lT2JqZWN0KFZNJiB2bSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIFJlZjxQcm94eUluc3Rh
bmNlPiYmIGluc3RhbmNlKQorICAgIDogUnVudGltZU9iamVjdCh2bSwgc3RydWN0dXJlLCBXVEZN
b3ZlKGluc3RhbmNlKSkKIHsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvUGx1
Z2lucy9Ib3N0ZWQvV2ViSG9zdGVkTmV0c2NhcGVQbHVnaW5WaWV3LmggYi9Tb3VyY2UvV2ViS2l0
L21hYy9QbHVnaW5zL0hvc3RlZC9XZWJIb3N0ZWROZXRzY2FwZVBsdWdpblZpZXcuaAppbmRleCAx
Y2FlMDg1OTFjNzM4YzcxZmY2NGRmZDQ1NjBhMWRmZDIzZDQwM2Y3Li44MWY1OTA2ZTdjNWRiMWI0
OTgzOTZlYzY5MmYwOWIwZjJjMzMzYTY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9Q
bHVnaW5zL0hvc3RlZC9XZWJIb3N0ZWROZXRzY2FwZVBsdWdpblZpZXcuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L21hYy9QbHVnaW5zL0hvc3RlZC9XZWJIb3N0ZWROZXRzY2FwZVBsdWdpblZpZXcuaApA
QCAtNTYsNyArNTYsNyBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKICAgICAgIGF0dHJpYnV0ZUtleXM6
KE5TQXJyYXkgKilrZXlzCiAgICAgYXR0cmlidXRlVmFsdWVzOihOU0FycmF5ICopdmFsdWVzCiAg
ICAgICAgbG9hZE1hbnVhbGx5OihCT09MKWxvYWRNYW51YWxseQotICAgICAgICAgICAgZWxlbWVu
dDooUGFzc1JlZlB0cjxXZWJDb3JlOjpIVE1MUGx1Z0luRWxlbWVudD4pZWxlbWVudDsKKyAgICAg
ICAgICAgIGVsZW1lbnQ6KFJlZlB0cjxXZWJDb3JlOjpIVE1MUGx1Z0luRWxlbWVudD4mJillbGVt
ZW50OwogCiAtICh2b2lkKXBsdWdpbkhvc3REaWVkOwogLSAoQ0FMYXllciAqKXBsdWdpbkxheWVy
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvUGx1Z2lucy9Ib3N0ZWQvV2ViSG9zdGVk
TmV0c2NhcGVQbHVnaW5WaWV3Lm1tIGIvU291cmNlL1dlYktpdC9tYWMvUGx1Z2lucy9Ib3N0ZWQv
V2ViSG9zdGVkTmV0c2NhcGVQbHVnaW5WaWV3Lm1tCmluZGV4IDI1ODg5YjdhMTBlOGMyZWNiMWI2
MGQ0OWQ4NjI1YTU5N2YwMzQ3MjMuLjllMjA0NGUyNmUxMzkwMjFlYjhjYTYzMzYyNTVmMmM4MzNj
MWI4YjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1BsdWdpbnMvSG9zdGVkL1dlYkhv
c3RlZE5ldHNjYXBlUGx1Z2luVmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9QbHVnaW5z
L0hvc3RlZC9XZWJIb3N0ZWROZXRzY2FwZVBsdWdpblZpZXcubW0KQEAgLTg3LDkgKzg3LDkgQEAg
LSAoaWQpaW5pdFdpdGhGcmFtZTooTlNSZWN0KWZyYW1lCiAgICAgICBhdHRyaWJ1dGVLZXlzOihO
U0FycmF5ICopa2V5cwogICAgIGF0dHJpYnV0ZVZhbHVlczooTlNBcnJheSAqKXZhbHVlcwogICAg
ICAgIGxvYWRNYW51YWxseTooQk9PTClsb2FkTWFudWFsbHkKLSAgICAgICAgICAgIGVsZW1lbnQ6
KFBhc3NSZWZQdHI8V2ViQ29yZTo6SFRNTFBsdWdJbkVsZW1lbnQ+KWVsZW1lbnQKKyAgICAgICAg
ICAgIGVsZW1lbnQ6KFJlZlB0cjxXZWJDb3JlOjpIVE1MUGx1Z0luRWxlbWVudD4mJillbGVtZW50
CiB7Ci0gICAgc2VsZiA9IFtzdXBlciBpbml0V2l0aEZyYW1lOmZyYW1lIHBsdWdpblBhY2thZ2U6
cGx1Z2luUGFja2FnZSBVUkw6VVJMIGJhc2VVUkw6YmFzZVVSTCBNSU1FVHlwZTpNSU1FIGF0dHJp
YnV0ZUtleXM6a2V5cyBhdHRyaWJ1dGVWYWx1ZXM6dmFsdWVzIGxvYWRNYW51YWxseTpsb2FkTWFu
dWFsbHkgZWxlbWVudDplbGVtZW50XTsKKyAgICBzZWxmID0gW3N1cGVyIGluaXRXaXRoRnJhbWU6
ZnJhbWUgcGx1Z2luUGFja2FnZTpwbHVnaW5QYWNrYWdlIFVSTDpVUkwgYmFzZVVSTDpiYXNlVVJM
IE1JTUVUeXBlOk1JTUUgYXR0cmlidXRlS2V5czprZXlzIGF0dHJpYnV0ZVZhbHVlczp2YWx1ZXMg
bG9hZE1hbnVhbGx5OmxvYWRNYW51YWxseSBlbGVtZW50OldURk1vdmUoZWxlbWVudCldOwogICAg
IGlmICghc2VsZikKICAgICAgICAgcmV0dXJuIG5pbDsKICAgICAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvbWFjL1BsdWdpbnMvV2ViQmFzZU5ldHNjYXBlUGx1Z2luVmlldy5oIGIvU291cmNl
L1dlYktpdC9tYWMvUGx1Z2lucy9XZWJCYXNlTmV0c2NhcGVQbHVnaW5WaWV3LmgKaW5kZXggMjQ5
OWIzZDk5NzJmNWQ1MDk1YzhhZjZhODBmZDVmY2VhYzY1MjRiMC4uY2YwNDg1OGI1OTZlOTNhN2Zk
OWM4MzBhMWY3MWE0N2EyOTRmYjNjYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvUGx1
Z2lucy9XZWJCYXNlTmV0c2NhcGVQbHVnaW5WaWV3LmgKKysrIGIvU291cmNlL1dlYktpdC9tYWMv
UGx1Z2lucy9XZWJCYXNlTmV0c2NhcGVQbHVnaW5WaWV3LmgKQEAgLTMxLDcgKzMxLDYgQEAKIAog
I2ltcG9ydCAiV2ViTmV0c2NhcGVQbHVnaW5QYWNrYWdlLmgiCiAjaW1wb3J0IDx3dGYvRm9yd2Fy
ZC5oPgotI2ltcG9ydCA8d3RmL1Bhc3NSZWZQdHIuaD4KICNpbXBvcnQgPHd0Zi9SZWZQdHIuaD4K
ICNpbXBvcnQgPHd0Zi9SZXRhaW5QdHIuaD4KIApAQCAtNzgsNyArNzcsNyBAQCBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAgICAgICBhdHRyaWJ1dGVLZXlzOihOU0FycmF5ICopa2V5cwogICAgIGF0dHJp
YnV0ZVZhbHVlczooTlNBcnJheSAqKXZhbHVlcwogICAgICAgIGxvYWRNYW51YWxseTooQk9PTCls
b2FkTWFudWFsbHkKLSAgICAgICAgICAgIGVsZW1lbnQ6KFBhc3NSZWZQdHI8V2ViQ29yZTo6SFRN
TFBsdWdJbkVsZW1lbnQ+KWVsZW1lbnQ7CisgICAgICAgICAgICBlbGVtZW50OihSZWZQdHI8V2Vi
Q29yZTo6SFRNTFBsdWdJbkVsZW1lbnQ+JiYpZWxlbWVudDsKIAogLSAoV2ViTmV0c2NhcGVQbHVn
aW5QYWNrYWdlICopcGx1Z2luUGFja2FnZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9t
YWMvUGx1Z2lucy9XZWJCYXNlTmV0c2NhcGVQbHVnaW5WaWV3Lm1tIGIvU291cmNlL1dlYktpdC9t
YWMvUGx1Z2lucy9XZWJCYXNlTmV0c2NhcGVQbHVnaW5WaWV3Lm1tCmluZGV4IDFlN2E2OWU2ZWQ2
YjdkNWM1NjZiNjFjZmU4NWMzYmFlOWZjZDRiZDIuLjIxZjkwNDVlZjM3NTc4MDc4ZDRjZDdiMTk4
OWQxOWNjMzlhMTU4YTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1BsdWdpbnMvV2Vi
QmFzZU5ldHNjYXBlUGx1Z2luVmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9QbHVnaW5z
L1dlYkJhc2VOZXRzY2FwZVBsdWdpblZpZXcubW0KQEAgLTg0LDE0ICs4NCwxNCBAQCAtIChpZClp
bml0V2l0aEZyYW1lOihOU1JlY3QpZnJhbWUKICAgICAgIGF0dHJpYnV0ZUtleXM6KE5TQXJyYXkg
KilrZXlzCiAgICAgYXR0cmlidXRlVmFsdWVzOihOU0FycmF5ICopdmFsdWVzCiAgICAgICAgbG9h
ZE1hbnVhbGx5OihCT09MKWxvYWRNYW51YWxseQotICAgICAgICAgICAgZWxlbWVudDooUGFzc1Jl
ZlB0cjxXZWJDb3JlOjpIVE1MUGx1Z0luRWxlbWVudD4pZWxlbWVudAorICAgICAgICAgICAgZWxl
bWVudDooUmVmUHRyPFdlYkNvcmU6OkhUTUxQbHVnSW5FbGVtZW50PiYmKWVsZW1lbnQKIHsKICAg
ICBzZWxmID0gW3N1cGVyIGluaXRXaXRoRnJhbWU6ZnJhbWVdOwogICAgIGlmICghc2VsZikKICAg
ICAgICAgcmV0dXJuIG5pbDsKICAgICAKICAgICBfcGx1Z2luUGFja2FnZSA9IHBsdWdpblBhY2th
Z2U7Ci0gICAgX2VsZW1lbnQgPSBlbGVtZW50OworICAgIF9lbGVtZW50ID0gV1RGTW92ZShlbGVt
ZW50KTsKICAgICBfc291cmNlVVJMID0gYWRvcHROUyhbVVJMIGNvcHldKTsKICAgICBfYmFzZVVS
TCA9IGFkb3B0TlMoW2Jhc2VVUkwgY29weV0pOwogICAgIF9NSU1FVHlwZSA9IGFkb3B0TlMoW01J
TUUgY29weV0pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvUGx1Z2lucy9XZWJOZXRz
Y2FwZVBsdWdpblN0cmVhbS5oIGIvU291cmNlL1dlYktpdC9tYWMvUGx1Z2lucy9XZWJOZXRzY2Fw
ZVBsdWdpblN0cmVhbS5oCmluZGV4IGQxMjkxYTY4Y2FiZGYwZGEyOTg3MjRkNDA0OGRhZWQ4YWQ1
NTg2ZDguLmJmNDM0MTUyNzViNGE2ZjIzMzFlMWQxZDVhN2NlY2ZiYTA4ZjI0NDAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvbWFjL1BsdWdpbnMvV2ViTmV0c2NhcGVQbHVnaW5TdHJlYW0uaAor
KysgYi9Tb3VyY2UvV2ViS2l0L21hYy9QbHVnaW5zL1dlYk5ldHNjYXBlUGx1Z2luU3RyZWFtLmgK
QEAgLTMyLDcgKzMyLDcgQEAKICNpbXBvcnQgPFdlYkNvcmUvVGltZXIuaD4KICNpbXBvcnQgPFdl
YkNvcmUvTmV0c2NhcGVQbHVnSW5TdHJlYW1Mb2FkZXIuaD4KICNpbXBvcnQgPFdlYktpdExlZ2Fj
eS9ucGZ1bmN0aW9ucy5oPgotI2ltcG9ydCA8d3RmL1Bhc3NSZWZQdHIuaD4KKyNpbXBvcnQgPHd0
Zi9SZWYuaD4KICNpbXBvcnQgPHd0Zi9SZWZDb3VudGVkLmg+CiAjaW1wb3J0IDx3dGYvUmVmUHRy
Lmg+CiAjaW1wb3J0IDx3dGYvUmV0YWluUHRyLmg+CkBAIC01MiwxMyArNTIsMTMgQEAgY2xhc3Mg
V2ViTmV0c2NhcGVQbHVnaW5TdHJlYW0gOiBwdWJsaWMgUmVmQ291bnRlZDxXZWJOZXRzY2FwZVBs
dWdpblN0cmVhbT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICwgcHJpdmF0ZSBXZWJD
b3JlOjpOZXRzY2FwZVBsdWdJblN0cmVhbUxvYWRlckNsaWVudAogewogcHVibGljOgotICAgIHN0
YXRpYyBQYXNzUmVmUHRyPFdlYk5ldHNjYXBlUGx1Z2luU3RyZWFtPiBjcmVhdGUoTlNVUkxSZXF1
ZXN0ICpyZXF1ZXN0LCBOUFAgcGx1Z2luLCBib29sIHNlbmROb3RpZmljYXRpb24sIHZvaWQqIG5v
dGlmeURhdGEpCisgICAgc3RhdGljIFJlZjxXZWJOZXRzY2FwZVBsdWdpblN0cmVhbT4gY3JlYXRl
KE5TVVJMUmVxdWVzdCAqcmVxdWVzdCwgTlBQIHBsdWdpbiwgYm9vbCBzZW5kTm90aWZpY2F0aW9u
LCB2b2lkKiBub3RpZnlEYXRhKQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBX
ZWJOZXRzY2FwZVBsdWdpblN0cmVhbShyZXF1ZXN0LCBwbHVnaW4sIHNlbmROb3RpZmljYXRpb24s
IG5vdGlmeURhdGEpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgV2ViTmV0c2NhcGVQ
bHVnaW5TdHJlYW0ocmVxdWVzdCwgcGx1Z2luLCBzZW5kTm90aWZpY2F0aW9uLCBub3RpZnlEYXRh
KSk7CiAgICAgfQotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFdlYk5ldHNjYXBlUGx1Z2luU3RyZWFt
PiBjcmVhdGUoV2ViQ29yZTo6RnJhbWVMb2FkZXIqIGZyYW1lTG9hZGVyKQorICAgIHN0YXRpYyBS
ZWY8V2ViTmV0c2NhcGVQbHVnaW5TdHJlYW0+IGNyZWF0ZShXZWJDb3JlOjpGcmFtZUxvYWRlciog
ZnJhbWVMb2FkZXIpCiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IFdlYk5ldHNj
YXBlUGx1Z2luU3RyZWFtKGZyYW1lTG9hZGVyKSk7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigq
bmV3IFdlYk5ldHNjYXBlUGx1Z2luU3RyZWFtKGZyYW1lTG9hZGVyKSk7CiAgICAgfQogICAgIHZp
cnR1YWwgfldlYk5ldHNjYXBlUGx1Z2luU3RyZWFtKCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvbWFjL1BsdWdpbnMvV2ViTmV0c2NhcGVQbHVnaW5WaWV3LmggYi9Tb3VyY2UvV2ViS2l0
L21hYy9QbHVnaW5zL1dlYk5ldHNjYXBlUGx1Z2luVmlldy5oCmluZGV4IGQwOGZmZmFlYzAyODY2
MDM2NmNlODg0NjAxZmI0NTAwYWQzZTA2YWYuLjVlNjUzMmZjZGRmZmM3M2M3OGNiYTk0MmIzNmFi
MjAzZjU3NWM3ZTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1BsdWdpbnMvV2ViTmV0
c2NhcGVQbHVnaW5WaWV3LmgKKysrIGIvU291cmNlL1dlYktpdC9tYWMvUGx1Z2lucy9XZWJOZXRz
Y2FwZVBsdWdpblZpZXcuaApAQCAtMTEwLDcgKzExMCw3IEBAIHR5cGVkZWYgdW5pb24gUGx1Z2lu
UG9ydCB7CiAgICAgICBhdHRyaWJ1dGVLZXlzOihOU0FycmF5ICopa2V5cwogICAgIGF0dHJpYnV0
ZVZhbHVlczooTlNBcnJheSAqKXZhbHVlcwogICAgICAgIGxvYWRNYW51YWxseTooQk9PTClsb2Fk
TWFudWFsbHkKLSAgICAgICAgICAgIGVsZW1lbnQ6KFBhc3NSZWZQdHI8V2ViQ29yZTo6SFRNTFBs
dWdJbkVsZW1lbnQ+KWVsZW1lbnQ7CisgICAgICAgICAgICBlbGVtZW50OihSZWZQdHI8V2ViQ29y
ZTo6SFRNTFBsdWdJbkVsZW1lbnQ+JiYpZWxlbWVudDsKIAogCiAtIChOUFApcGx1Z2luOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvUGx1Z2lucy9XZWJOZXRzY2FwZVBsdWdpblZpZXcu
bW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9QbHVnaW5zL1dlYk5ldHNjYXBlUGx1Z2luVmlldy5tbQpp
bmRleCAwMTkzZTQwZmU2ZGUxNjNmNjAxYzA4MjVkZjg0M2YzZWI4Mjk1NGZiLi5lNzMyMDUyM2Qw
Y2U2MzFiMThmZWI1NWVmNzMwOGNlMGQxZTk0NDM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L21hYy9QbHVnaW5zL1dlYk5ldHNjYXBlUGx1Z2luVmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0
L21hYy9QbHVnaW5zL1dlYk5ldHNjYXBlUGx1Z2luVmlldy5tbQpAQCAtMTI1Niw5ICsxMjU2LDkg
QEAgLSAoaWQpaW5pdFdpdGhGcmFtZTooTlNSZWN0KWZyYW1lCiAgICAgICBhdHRyaWJ1dGVLZXlz
OihOU0FycmF5ICopa2V5cwogICAgIGF0dHJpYnV0ZVZhbHVlczooTlNBcnJheSAqKXZhbHVlcwog
ICAgICAgIGxvYWRNYW51YWxseTooQk9PTClsb2FkTWFudWFsbHkKLSAgICAgICAgICAgIGVsZW1l
bnQ6KFBhc3NSZWZQdHI8V2ViQ29yZTo6SFRNTFBsdWdJbkVsZW1lbnQ+KWVsZW1lbnQKKyAgICAg
ICAgICAgIGVsZW1lbnQ6KFJlZlB0cjxXZWJDb3JlOjpIVE1MUGx1Z0luRWxlbWVudD4mJillbGVt
ZW50CiB7Ci0gICAgc2VsZiA9IFtzdXBlciBpbml0V2l0aEZyYW1lOmZyYW1lIHBsdWdpblBhY2th
Z2U6cGx1Z2luUGFja2FnZSBVUkw6VVJMIGJhc2VVUkw6YmFzZVVSTCBNSU1FVHlwZTpNSU1FIGF0
dHJpYnV0ZUtleXM6a2V5cyBhdHRyaWJ1dGVWYWx1ZXM6dmFsdWVzIGxvYWRNYW51YWxseTpsb2Fk
TWFudWFsbHkgZWxlbWVudDplbGVtZW50XTsKKyAgICBzZWxmID0gW3N1cGVyIGluaXRXaXRoRnJh
bWU6ZnJhbWUgcGx1Z2luUGFja2FnZTpwbHVnaW5QYWNrYWdlIFVSTDpVUkwgYmFzZVVSTDpiYXNl
VVJMIE1JTUVUeXBlOk1JTUUgYXR0cmlidXRlS2V5czprZXlzIGF0dHJpYnV0ZVZhbHVlczp2YWx1
ZXMgbG9hZE1hbnVhbGx5OmxvYWRNYW51YWxseSBlbGVtZW50OldURk1vdmUoZWxlbWVudCldOwog
ICAgIGlmICghc2VsZikKICAgICAgICAgcmV0dXJuIG5pbDsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lm1tIGIvU291cmNlL1dl
YktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lm1tCmluZGV4IDFmNjg3ZjIz
Mjk0ZTQyODcyNTJmZThjMmJjNjdkZDg3Nzk1Njg4ZmUuLjIxNzU3NTJjZmQ5NDUxZDY2NDIwNDg2
MDA1ZjQ3MGNlYzQyYzVjZTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVT
dXBwb3J0L1dlYkNocm9tZUNsaWVudC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3Jl
U3VwcG9ydC9XZWJDaHJvbWVDbGllbnQubW0KQEAgLTgzLDcgKzgzLDcgQEAKICNpbXBvcnQgPFdl
YkNvcmUvV2lkZ2V0Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL1dpbmRvd0ZlYXR1cmVzLmg+CiAjaW1w
b3J0IDx3dGYvQmxvY2tPYmpDRXhjZXB0aW9ucy5oPgotI2ltcG9ydCA8d3RmL1Bhc3NSZWZQdHIu
aD4KKyNpbXBvcnQgPHd0Zi9SZWZQdHIuaD4KICNpbXBvcnQgPHd0Zi9WZWN0b3IuaD4KICNpbXBv
cnQgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21h
Yy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQubW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9X
ZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQubW0KaW5kZXggMjQ5Zjk1MGE1ODU5OGVkOWM3
MzU5MjQ3Y2RlNGFmNjBmNTg4ODFlNy4uMjAxMTk1MjM3Mjg2MjQ5ODUzOWRmNTllZjY2YTJjMmFi
NDk3MDIyYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2Vi
RWRpdG9yQ2xpZW50Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dl
YkVkaXRvckNsaWVudC5tbQpAQCAtNzgsNyArNzgsNyBAQAogI2ltcG9ydCA8V2ViQ29yZS9XZWJD
b3JlT2JqQ0V4dHJhcy5oPgogI2ltcG9ydCA8cnVudGltZS9Jbml0aWFsaXplVGhyZWFkaW5nLmg+
CiAjaW1wb3J0IDx3dGYvTWFpblRocmVhZC5oPgotI2ltcG9ydCA8d3RmL1Bhc3NSZWZQdHIuaD4K
KyNpbXBvcnQgPHd0Zi9SZWZQdHIuaD4KICNpbXBvcnQgPHd0Zi9SdW5Mb29wLmg+CiAjaW1wb3J0
IDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMv
V2ViQ29yZVN1cHBvcnQvV2ViTm90aWZpY2F0aW9uQ2xpZW50Lm1tIGIvU291cmNlL1dlYktpdC9t
YWMvV2ViQ29yZVN1cHBvcnQvV2ViTm90aWZpY2F0aW9uQ2xpZW50Lm1tCmluZGV4IDRmYTBkNDE5
OGE1YjI4MDYzYmVhNGE4OGU1YjQ0NmU5YzkzOWI3MDQuLmFiOGE0ZjQyNTdlZWEwMjY4YTcxMDhi
ZjlhMjM5NmE1NDMyMTdhMWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVT
dXBwb3J0L1dlYk5vdGlmaWNhdGlvbkNsaWVudC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9X
ZWJDb3JlU3VwcG9ydC9XZWJOb3RpZmljYXRpb25DbGllbnQubW0KQEAgLTQ0LDcgKzQ0LDcgQEAg
QGludGVyZmFjZSBXZWJOb3RpZmljYXRpb25Qb2xpY3lMaXN0ZW5lciA6IE5TT2JqZWN0IDxXZWJB
bGxvd0RlbnlQb2xpY3lMaXN0ZW5lcj4KIHsKICAgICBSZWZQdHI8Tm90aWZpY2F0aW9uUGVybWlz
c2lvbkNhbGxiYWNrPiBfY2FsbGJhY2s7CiB9Ci0tIChpZClpbml0V2l0aENhbGxiYWNrOihQYXNz
UmVmUHRyPE5vdGlmaWNhdGlvblBlcm1pc3Npb25DYWxsYmFjaz4pY2FsbGJhY2s7CistIChpZClp
bml0V2l0aENhbGxiYWNrOihSZWZQdHI8Tm90aWZpY2F0aW9uUGVybWlzc2lvbkNhbGxiYWNrPiYm
KWNhbGxiYWNrOwogQGVuZAogI2VuZGlmCiAKQEAgLTE3Nyw3ICsxNzcsNyBAQCBib29sIFdlYk5v
dGlmaWNhdGlvbkNsaWVudDo6aGFzUGVuZGluZ1Blcm1pc3Npb25SZXF1ZXN0cyhTY3JpcHRFeGVj
dXRpb25Db250ZXh0Kgogdm9pZCBXZWJOb3RpZmljYXRpb25DbGllbnQ6OnJlcXVlc3RQZXJtaXNz
aW9uKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIFJlZlB0cjxOb3RpZmljYXRpb25Q
ZXJtaXNzaW9uQ2FsbGJhY2s+JiYgY2FsbGJhY2spCiB7CiAgICAgQkVHSU5fQkxPQ0tfT0JKQ19F
WENFUFRJT05TOwotICAgIFdlYk5vdGlmaWNhdGlvblBvbGljeUxpc3RlbmVyICpsaXN0ZW5lciA9
IFtbV2ViTm90aWZpY2F0aW9uUG9saWN5TGlzdGVuZXIgYWxsb2NdIGluaXRXaXRoQ2FsbGJhY2s6
Y2FsbGJhY2tdOworICAgIFdlYk5vdGlmaWNhdGlvblBvbGljeUxpc3RlbmVyICpsaXN0ZW5lciA9
IFtbV2ViTm90aWZpY2F0aW9uUG9saWN5TGlzdGVuZXIgYWxsb2NdIGluaXRXaXRoQ2FsbGJhY2s6
V1RGTW92ZShjYWxsYmFjayldOwogICAgIHJlcXVlc3RQZXJtaXNzaW9uKGNvbnRleHQsIGxpc3Rl
bmVyKTsKICAgICBbbGlzdGVuZXIgcmVsZWFzZV07CiAgICAgRU5EX0JMT0NLX09CSkNfRVhDRVBU
SU9OUzsKQEAgLTIxOSwxMiArMjE5LDEyIEBAIHVpbnQ2NF90IFdlYk5vdGlmaWNhdGlvbkNsaWVu
dDo6bm90aWZpY2F0aW9uSURGb3JUZXN0aW5nKFdlYkNvcmU6Ok5vdGlmaWNhdGlvbioKIAogQGlt
cGxlbWVudGF0aW9uIFdlYk5vdGlmaWNhdGlvblBvbGljeUxpc3RlbmVyCiAKLS0gKGlkKWluaXRX
aXRoQ2FsbGJhY2s6KFBhc3NSZWZQdHI8Tm90aWZpY2F0aW9uUGVybWlzc2lvbkNhbGxiYWNrPilj
YWxsYmFjaworLSAoaWQpaW5pdFdpdGhDYWxsYmFjazooUmVmUHRyPE5vdGlmaWNhdGlvblBlcm1p
c3Npb25DYWxsYmFjaz4mJiljYWxsYmFjawogewogICAgIGlmICghKHNlbGYgPSBbc3VwZXIgaW5p
dF0pKQogICAgICAgICByZXR1cm4gbmlsOwogCi0gICAgX2NhbGxiYWNrID0gY2FsbGJhY2s7Cisg
ICAgX2NhbGxiYWNrID0gV1RGTW92ZShjYWxsYmFjayk7CiAgICAgcmV0dXJuIHNlbGY7CiB9CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYk9wZW5QYW5l
bFJlc3VsdExpc3RlbmVyLm1tIGIvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2Vi
T3BlblBhbmVsUmVzdWx0TGlzdGVuZXIubW0KaW5kZXggOGIyNTIwOTA3MDNhZTQ3ZDdiYmFmYWE2
NWIzMjZmZWVmY2MzMDQ3Yi4uZTljM2JmZWQxNWY4YmVkOGVkMjA3MTk3YjI1MjAzZDU4MzRiYjFj
YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViT3BlblBh
bmVsUmVzdWx0TGlzdGVuZXIubW0KKysrIGIvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBv
cnQvV2ViT3BlblBhbmVsUmVzdWx0TGlzdGVuZXIubW0KQEAgLTI2LDcgKzI2LDcgQEAKICNpbXBv
cnQgIldlYk9wZW5QYW5lbFJlc3VsdExpc3RlbmVyLmgiCiAKICNpbXBvcnQgPFdlYkNvcmUvRmls
ZUNob29zZXIuaD4KLSNpbXBvcnQgPHd0Zi9QYXNzUmVmUHRyLmg+CisjaW1wb3J0IDx3dGYvUmVm
UHRyLmg+CiAKICNpZiBQTEFURk9STShJT1MpCiAjaW1wb3J0IDxXZWJDb3JlL0ljb24uaD4KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYlVzZXJNZWRpYUNs
aWVudC5tbSBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYlVzZXJNZWRpYUNs
aWVudC5tbQppbmRleCAxYjRjODI4MTcxODZiNDVjMjUyYTNmYjM3ODBhZjlhZTViODE3Mjk1Li4w
MTlkMTFlMDUwNmU2ZTVlOTIxM2U4NTBjZjA5Y2Q2MzlhNDIzY2RmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJVc2VyTWVkaWFDbGllbnQubW0KKysrIGIv
U291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViVXNlck1lZGlhQ2xpZW50Lm1tCkBA
IC00OCw3ICs0OCw3IEBAIEBpbnRlcmZhY2UgV2ViVXNlck1lZGlhUG9saWN5TGlzdGVuZXIgOiBO
U09iamVjdCA8V2ViQWxsb3dEZW55UG9saWN5TGlzdGVuZXI+CiB7CiAgICAgUmVmUHRyPFVzZXJN
ZWRpYVJlcXVlc3Q+IF9yZXF1ZXN0OwogfQotLSAoaWQpaW5pdFdpdGhVc2VyTWVkaWFSZXF1ZXN0
OihQYXNzUmVmUHRyPFVzZXJNZWRpYVJlcXVlc3Q+KXJlcXVlc3Q7CistIChpZClpbml0V2l0aFVz
ZXJNZWRpYVJlcXVlc3Q6KFJlZjxVc2VyTWVkaWFSZXF1ZXN0PiYmKXJlcXVlc3Q7CiAtICh2b2lk
KWNhbmNlbFVzZXJNZWRpYUFjY2Vzc1JlcXVlc3Q7CiAtICh2b2lkKWRlbnk7CiBAZW5kCkBAIC01
Niw3ICs1Niw3IEBAIEBlbmQKIEBpbnRlcmZhY2UgV2ViVXNlck1lZGlhUG9saWN5Q2hlY2tlckxp
c3RlbmVyIDogTlNPYmplY3QgPFdlYkFsbG93RGVueVBvbGljeUxpc3RlbmVyPiB7CiAgICAgUmVm
UHRyPE1lZGlhRGV2aWNlc0VudW1lcmF0aW9uUmVxdWVzdD4gX3JlcXVlc3Q7CiB9Ci0tIChpZClp
bml0V2l0aE1lZGlhRGV2aWNlc0VudW1lcmF0aW9uUmVxdWVzdDooUGFzc1JlZlB0cjxNZWRpYURl
dmljZXNFbnVtZXJhdGlvblJlcXVlc3Q+KXJlcXVlc3Q7CistIChpZClpbml0V2l0aE1lZGlhRGV2
aWNlc0VudW1lcmF0aW9uUmVxdWVzdDooUmVmPE1lZGlhRGV2aWNlc0VudW1lcmF0aW9uUmVxdWVz
dD4mJilyZXF1ZXN0OwogLSAodm9pZCljYW5jZWxNZWRpYURldmljZXNFbnVtZXJhdGlvblJlcXVl
c3Q7CiAtICh2b2lkKWRlbnk7CiBAZW5kCkBAIC0xNDEsNyArMTQxLDcgQEAgdm9pZCBXZWJVc2Vy
TWVkaWFDbGllbnQ6OnJlcXVlc3RVc2VyTWVkaWFBY2Nlc3MoVXNlck1lZGlhUmVxdWVzdCYgcmVx
dWVzdCkKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIFdlYlVzZXJNZWRpYVBvbGljeUxp
c3RlbmVyICpsaXN0ZW5lciA9IFtbV2ViVXNlck1lZGlhUG9saWN5TGlzdGVuZXIgYWxsb2NdIGlu
aXRXaXRoVXNlck1lZGlhUmVxdWVzdDomcmVxdWVzdF07CisgICAgV2ViVXNlck1lZGlhUG9saWN5
TGlzdGVuZXIgKmxpc3RlbmVyID0gW1tXZWJVc2VyTWVkaWFQb2xpY3lMaXN0ZW5lciBhbGxvY10g
aW5pdFdpdGhVc2VyTWVkaWFSZXF1ZXN0OnJlcXVlc3RdOwogICAgIFdlYlNlY3VyaXR5T3JpZ2lu
ICp3ZWJPcmlnaW4gPSBbW1dlYlNlY3VyaXR5T3JpZ2luIGFsbG9jXSBfaW5pdFdpdGhXZWJDb3Jl
U2VjdXJpdHlPcmlnaW46cmVxdWVzdC51c2VyTWVkaWFEb2N1bWVudE9yaWdpbigpXTsKIAogICAg
IEFkZFJlcXVlc3RUb1JlcXVlc3RNYXAoJnJlcXVlc3QsIGxpc3RlbmVyKTsKQEAgLTE3NCw3ICsx
NzQsNyBAQCB2b2lkIFdlYlVzZXJNZWRpYUNsaWVudDo6ZW51bWVyYXRlTWVkaWFEZXZpY2VzKE1l
ZGlhRGV2aWNlc0VudW1lcmF0aW9uUmVxdWVzdCYgcgogICAgICAgICByZXR1cm47CiAgICAgfQog
Ci0gICAgV2ViVXNlck1lZGlhUG9saWN5Q2hlY2tlckxpc3RlbmVyICpsaXN0ZW5lciA9IFtbV2Vi
VXNlck1lZGlhUG9saWN5Q2hlY2tlckxpc3RlbmVyIGFsbG9jXSBpbml0V2l0aE1lZGlhRGV2aWNl
c0VudW1lcmF0aW9uUmVxdWVzdDomcmVxdWVzdF07CisgICAgV2ViVXNlck1lZGlhUG9saWN5Q2hl
Y2tlckxpc3RlbmVyICpsaXN0ZW5lciA9IFtbV2ViVXNlck1lZGlhUG9saWN5Q2hlY2tlckxpc3Rl
bmVyIGFsbG9jXSBpbml0V2l0aE1lZGlhRGV2aWNlc0VudW1lcmF0aW9uUmVxdWVzdDpyZXF1ZXN0
XTsKICAgICBXZWJTZWN1cml0eU9yaWdpbiAqd2ViT3JpZ2luID0gW1tXZWJTZWN1cml0eU9yaWdp
biBhbGxvY10gX2luaXRXaXRoV2ViQ29yZVNlY3VyaXR5T3JpZ2luOnJlcXVlc3QudXNlck1lZGlh
RG9jdW1lbnRPcmlnaW4oKV07CiAKICAgICBBZGRQZXJtaXNzaW9uQ2hlY2tUb01hcCgmcmVxdWVz
dCwgbGlzdGVuZXIpOwpAQCAtMTk5LDEzICsxOTksMTMgQEAgdm9pZCBXZWJVc2VyTWVkaWFDbGll
bnQ6OmNhbmNlbE1lZGlhRGV2aWNlc0VudW1lcmF0aW9uUmVxdWVzdChXZWJDb3JlOjpNZWRpYURl
dmkKIAogQGltcGxlbWVudGF0aW9uIFdlYlVzZXJNZWRpYVBvbGljeUxpc3RlbmVyCiAKLS0gKGlk
KWluaXRXaXRoVXNlck1lZGlhUmVxdWVzdDooUGFzc1JlZlB0cjxVc2VyTWVkaWFSZXF1ZXN0Pily
ZXF1ZXN0CistIChpZClpbml0V2l0aFVzZXJNZWRpYVJlcXVlc3Q6KFJlZjxVc2VyTWVkaWFSZXF1
ZXN0PiYmKXJlcXVlc3QKIHsKICNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQogICAgIGlmICghKHNl
bGYgPSBbc3VwZXIgaW5pdF0pKQogICAgICAgICByZXR1cm4gbmlsOwogCi0gICAgX3JlcXVlc3Qg
PSByZXF1ZXN0OworICAgIF9yZXF1ZXN0ID0gV1RGTW92ZShyZXF1ZXN0KTsKICAgICByZXR1cm4g
c2VsZjsKICNlbmRpZgogfQpAQCAtMjYxLDEzICsyNjEsMTMgQEAgQGVuZAogCiBAaW1wbGVtZW50
YXRpb24gV2ViVXNlck1lZGlhUG9saWN5Q2hlY2tlckxpc3RlbmVyCiAKLS0gKGlkKWluaXRXaXRo
TWVkaWFEZXZpY2VzRW51bWVyYXRpb25SZXF1ZXN0OihQYXNzUmVmUHRyPE1lZGlhRGV2aWNlc0Vu
dW1lcmF0aW9uUmVxdWVzdD4pcmVxdWVzdAorLSAoaWQpaW5pdFdpdGhNZWRpYURldmljZXNFbnVt
ZXJhdGlvblJlcXVlc3Q6KFJlZjxNZWRpYURldmljZXNFbnVtZXJhdGlvblJlcXVlc3Q+JiYpcmVx
dWVzdAogewogI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCiAgICAgaWYgKCEoc2VsZiA9IFtzdXBl
ciBpbml0XSkpCiAgICAgICAgIHJldHVybiBuaWw7CiAKLSAgICBfcmVxdWVzdCA9IHJlcXVlc3Q7
CisgICAgX3JlcXVlc3QgPSBXVEZNb3ZlKHJlcXVlc3QpOwogICAgIHJldHVybiBzZWxmOwogI2Vu
ZGlmCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkFyY2hpdmUu
bW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkFyY2hpdmUubW0KaW5kZXggZDEwNDRl
MWIwYTMxMWVlODIxNzE0YWIyOWQyYzkxMjcyOWJjMTI0Ni4uMTA5OTM3NmIyNjAwMzE1OTM3MGM5
ZWJhYjVjNzE1NjMwNzRlNWZmOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmll
dy9XZWJBcmNoaXZlLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViQXJjaGl2
ZS5tbQpAQCAtNTgsOSArNTgsOSBAQCBAcHJpdmF0ZQogICAgIFJlZlB0cjxMZWdhY3lXZWJBcmNo
aXZlPiBjb3JlQXJjaGl2ZTsKIH0KIAotLSAoaW5zdGFuY2V0eXBlKWluaXRXaXRoQ29yZUFyY2hp
dmU6KFBhc3NSZWZQdHI8TGVnYWN5V2ViQXJjaGl2ZT4pY29yZUFyY2hpdmU7CistIChpbnN0YW5j
ZXR5cGUpaW5pdFdpdGhDb3JlQXJjaGl2ZTooUmVmPExlZ2FjeVdlYkFyY2hpdmU+JiYpY29yZUFy
Y2hpdmU7CiAtIChMZWdhY3lXZWJBcmNoaXZlKiljb3JlQXJjaGl2ZTsKLS0gKHZvaWQpc2V0Q29y
ZUFyY2hpdmU6KFBhc3NSZWZQdHI8TGVnYWN5V2ViQXJjaGl2ZT4pbmV3Q29yZUFyY2hpdmU7Cist
ICh2b2lkKXNldENvcmVBcmNoaXZlOihSZWY8TGVnYWN5V2ViQXJjaGl2ZT4mJiluZXdDb3JlQXJj
aGl2ZTsKIEBlbmQKIAogQGltcGxlbWVudGF0aW9uIFdlYkFyY2hpdmVQcml2YXRlCkBAIC04Mywx
NCArODMsMTQgQEAgLSAoaW5zdGFuY2V0eXBlKWluaXQKICAgICByZXR1cm4gc2VsZjsKIH0KIAot
LSAoaW5zdGFuY2V0eXBlKWluaXRXaXRoQ29yZUFyY2hpdmU6KFBhc3NSZWZQdHI8TGVnYWN5V2Vi
QXJjaGl2ZT4pX2NvcmVBcmNoaXZlCistIChpbnN0YW5jZXR5cGUpaW5pdFdpdGhDb3JlQXJjaGl2
ZTooUmVmPExlZ2FjeVdlYkFyY2hpdmU+JiYpX2NvcmVBcmNoaXZlCiB7CiAgICAgc2VsZiA9IFtz
dXBlciBpbml0XTsKLSAgICBpZiAoIXNlbGYgfHwgIV9jb3JlQXJjaGl2ZSkgeworICAgIGlmICgh
c2VsZikgewogICAgICAgICBbc2VsZiByZWxlYXNlXTsKICAgICAgICAgcmV0dXJuIG5pbDsKICAg
ICB9Ci0gICAgY29yZUFyY2hpdmUgPSBfY29yZUFyY2hpdmU7CisgICAgY29yZUFyY2hpdmUgPSBX
VEZNb3ZlKF9jb3JlQXJjaGl2ZSk7CiAgICAgcmV0dXJuIHNlbGY7CiB9CiAKQEAgLTk5LDExICs5
OSwxMCBAQCAtIChMZWdhY3lXZWJBcmNoaXZlKiljb3JlQXJjaGl2ZQogICAgIHJldHVybiBjb3Jl
QXJjaGl2ZS5nZXQoKTsKIH0KIAotLSAodm9pZClzZXRDb3JlQXJjaGl2ZTooUGFzc1JlZlB0cjxM
ZWdhY3lXZWJBcmNoaXZlPiluZXdDb3JlQXJjaGl2ZQorLSAodm9pZClzZXRDb3JlQXJjaGl2ZToo
UmVmPExlZ2FjeVdlYkFyY2hpdmU+JiYpbmV3Q29yZUFyY2hpdmUKIHsKICAgICBBU1NFUlQoY29y
ZUFyY2hpdmUpOwotICAgIEFTU0VSVChuZXdDb3JlQXJjaGl2ZSk7Ci0gICAgY29yZUFyY2hpdmUg
PSBuZXdDb3JlQXJjaGl2ZTsKKyAgICBjb3JlQXJjaGl2ZSA9IFdURk1vdmUobmV3Q29yZUFyY2hp
dmUpOwogfQogCiAtICh2b2lkKWRlYWxsb2MKQEAgLTIwNiw3ICsyMDUsNyBAQCAtIChpbnN0YW5j
ZXR5cGUpaW5pdFdpdGhEYXRhOihOU0RhdGEgKilkYXRhCiAgICAgICAgIHJldHVybiBuaWw7CiAg
ICAgfQogICAgICAgICAKLSAgICBbX3ByaXZhdGUgc2V0Q29yZUFyY2hpdmU6V1RGTW92ZShjb3Jl
QXJjaGl2ZSldOworICAgIFtfcHJpdmF0ZSBzZXRDb3JlQXJjaGl2ZTpjb3JlQXJjaGl2ZS5yZWxl
YXNlTm9uTnVsbCgpXTsKICAgICAgICAgCiAjaWYgIUxPR19ESVNBQkxFRAogICAgIENGQWJzb2x1
dGVUaW1lIGVuZCA9IENGQWJzb2x1dGVUaW1lR2V0Q3VycmVudCgpOwpAQCAtMzE3LDcgKzMxNiw3
IEBAIC0gKE5TQXJyYXkgKilzdWJmcmFtZUFyY2hpdmVzCiAgICAgICAgICAgICBhdXRvIG11dGFi
bGVBcnJheSA9IFtbTlNNdXRhYmxlQXJyYXkgYWxsb2NdIGluaXRXaXRoQ2FwYWNpdHk6c3ViZnJh
bWVBcmNoaXZlcy5zaXplKCldOwogICAgICAgICAgICAgX3ByaXZhdGUtPmNhY2hlZFN1YmZyYW1l
QXJjaGl2ZXMgPSBtdXRhYmxlQXJyYXk7CiAgICAgICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAw
OyBpIDwgc3ViZnJhbWVBcmNoaXZlcy5zaXplKCk7ICsraSkgewotICAgICAgICAgICAgICAgIFdl
YkFyY2hpdmUgKmFyY2hpdmUgPSBbW1dlYkFyY2hpdmUgYWxsb2NdIF9pbml0V2l0aENvcmVMZWdh
Y3lXZWJBcmNoaXZlOihMZWdhY3lXZWJBcmNoaXZlICopc3ViZnJhbWVBcmNoaXZlc1tpXS5wdHIo
KV07CisgICAgICAgICAgICAgICAgV2ViQXJjaGl2ZSAqYXJjaGl2ZSA9IFtbV2ViQXJjaGl2ZSBh
bGxvY10gX2luaXRXaXRoQ29yZUxlZ2FjeVdlYkFyY2hpdmU6c3RhdGljX2Nhc3Q8TGVnYWN5V2Vi
QXJjaGl2ZSY+KHN1YmZyYW1lQXJjaGl2ZXNbaV0uZ2V0KCkpXTsKICAgICAgICAgICAgICAgICBb
bXV0YWJsZUFycmF5IGFkZE9iamVjdDphcmNoaXZlXTsKICAgICAgICAgICAgICAgICBbYXJjaGl2
ZSByZWxlYXNlXTsKICAgICAgICAgICAgIH0KQEAgLTM1MCw3ICszNDksNyBAQCBAZW5kCiAKIEBp
bXBsZW1lbnRhdGlvbiBXZWJBcmNoaXZlIChXZWJJbnRlcm5hbCkKIAotLSAoaWQpX2luaXRXaXRo
Q29yZUxlZ2FjeVdlYkFyY2hpdmU6KFBhc3NSZWZQdHI8V2ViQ29yZTo6TGVnYWN5V2ViQXJjaGl2
ZT4pY29yZUxlZ2FjeVdlYkFyY2hpdmUKKy0gKGlkKV9pbml0V2l0aENvcmVMZWdhY3lXZWJBcmNo
aXZlOihSZWY8V2ViQ29yZTo6TGVnYWN5V2ViQXJjaGl2ZT4mJiljb3JlTGVnYWN5V2ViQXJjaGl2
ZQogewogICAgIFdlYkNvcmVUaHJlYWRWaW9sYXRpb25DaGVja1JvdW5kVHdvKCk7CiAKQEAgLTM1
OCw3ICszNTcsNyBAQCAtIChpZClfaW5pdFdpdGhDb3JlTGVnYWN5V2ViQXJjaGl2ZTooUGFzc1Jl
ZlB0cjxXZWJDb3JlOjpMZWdhY3lXZWJBcmNoaXZlPiljb3JlTAogICAgIGlmICghc2VsZikKICAg
ICAgICAgcmV0dXJuIG5pbDsKICAgICAKLSAgICBfcHJpdmF0ZSA9IFtbV2ViQXJjaGl2ZVByaXZh
dGUgYWxsb2NdIGluaXRXaXRoQ29yZUFyY2hpdmU6Y29yZUxlZ2FjeVdlYkFyY2hpdmVdOworICAg
IF9wcml2YXRlID0gW1tXZWJBcmNoaXZlUHJpdmF0ZSBhbGxvY10gaW5pdFdpdGhDb3JlQXJjaGl2
ZTpXVEZNb3ZlKGNvcmVMZWdhY3lXZWJBcmNoaXZlKV07CiAgICAgaWYgKCFfcHJpdmF0ZSkgewog
ICAgICAgICBbc2VsZiByZWxlYXNlXTsKICAgICAgICAgcmV0dXJuIG5pbDsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViQXJjaGl2ZUludGVybmFsLmggYi9Tb3VyY2Uv
V2ViS2l0L21hYy9XZWJWaWV3L1dlYkFyY2hpdmVJbnRlcm5hbC5oCmluZGV4IDZhOGE4ZTk2OTJi
ZWEzZjkyZmVlOTY4ZWZlODY1NzkzNWRjYjlmM2MuLjcyYmQ1MTliMzMxZDJmN2YxOTdlOWY2OTFm
MTY2YjU5MGE2OTk2Y2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2Vi
QXJjaGl2ZUludGVybmFsLmgKKysrIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJBcmNo
aXZlSW50ZXJuYWwuaApAQCAtMzUsNyArMzUsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIEBp
bnRlcmZhY2UgV2ViQXJjaGl2ZSAoV2ViSW50ZXJuYWwpCiAKLS0gKGlkKV9pbml0V2l0aENvcmVM
ZWdhY3lXZWJBcmNoaXZlOihXVEY6OlBhc3NSZWZQdHI8V2ViQ29yZTo6TGVnYWN5V2ViQXJjaGl2
ZT4pY29yZUxlZ2FjeVdlYkFyY2hpdmU7CistIChpZClfaW5pdFdpdGhDb3JlTGVnYWN5V2ViQXJj
aGl2ZTooV1RGOjpSZWY8V2ViQ29yZTo6TGVnYWN5V2ViQXJjaGl2ZT4mJiljb3JlTGVnYWN5V2Vi
QXJjaGl2ZTsKIC0gKFdlYkNvcmU6OkxlZ2FjeVdlYkFyY2hpdmUgKilfY29yZUxlZ2FjeVdlYkFy
Y2hpdmU7CiAKIEBlbmQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2Vi
RGF0YVNvdXJjZS5tbSBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViRGF0YVNvdXJjZS5t
bQppbmRleCBkZjM2MTczNmIyOTgxMWNkOTVkY2RiOGUyZjBiZDM1Yzk0NmI2NjI5Li5kMzZjNWQ1
YTBhYWQ0YWNiMGFhOGMwN2FjZDFkNjE1MTNkMjcwMzlkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L21hYy9XZWJWaWV3L1dlYkRhdGFTb3VyY2UubW0KKysrIGIvU291cmNlL1dlYktpdC9tYWMv
V2ViVmlldy9XZWJEYXRhU291cmNlLm1tCkBAIC03OSwzMCArNzksMjcgQEAgdXNpbmcgbmFtZXNw
YWNlIFdlYkNvcmU7CiBjbGFzcyBXZWJEYXRhU291cmNlUHJpdmF0ZQogewogcHVibGljOgotICAg
IFdlYkRhdGFTb3VyY2VQcml2YXRlKFBhc3NSZWZQdHI8V2ViRG9jdW1lbnRMb2FkZXJNYWM+IGxv
YWRlcikKLSAgICAgICAgOiBsb2FkZXIobG9hZGVyKQorICAgIFdlYkRhdGFTb3VyY2VQcml2YXRl
KFJlZjxXZWJEb2N1bWVudExvYWRlck1hYz4mJiBsb2FkZXIpCisgICAgICAgIDogbG9hZGVyKFdU
Rk1vdmUobG9hZGVyKSkKICAgICAgICAgLCByZXByZXNlbnRhdGlvbkZpbmlzaGVkTG9hZGluZyhO
TykKICAgICAgICAgLCBpbmNsdWRlZEluV2ViS2l0U3RhdGlzdGljcyhOTykKICNpZiBQTEFURk9S
TShJT1MpCiAgICAgICAgICwgX2RhdGFTb3VyY2VEZWxlZ2F0ZShuaWwpCiAjZW5kaWYKICAgICB7
Ci0gICAgICAgIEFTU0VSVCh0aGlzLT5sb2FkZXIpOwogICAgIH0KICAgICB+V2ViRGF0YVNvdXJj
ZVByaXZhdGUoKQogICAgIHsKLSAgICAgICAgaWYgKGxvYWRlcikgewotICAgICAgICAgICAgLy8g
V2UgbWlnaHQgcnVuIGluIHRvIGluZmluaXRlIHJlY3Vyc2lvbiBpZiB3ZSdyZSBzdG9wcGluZyBs
b2FkaW5nIGFzIHRoZSByZXN1bHQgb2YgZGV0YWNoaW5nIGZyb20gdGhlIGZyYW1lLgotICAgICAg
ICAgICAgLy8gVGhlcmVmb3JlLCBEb2N1bWVudExvYWRlcjo6ZGV0YWNoRnJvbUZyYW1lKCkgZGlk
IHNvbWUgc21hcnQgdGhpbmdzIHRvIHN0b3AgdGhlIHJlY3Vyc2lvbi4KLSAgICAgICAgICAgIC8v
IEFzIGEgcmVzdWx0IG9mIGJyZWFraW5nIHRoZSByZXN1cnNpb24sIERvY3VtZW50TG9hZGVyOjpt
X3N1YnJlc291cmNlTG9hZGVyCi0gICAgICAgICAgICAvLyBhbmQgRG9jdW1lbnRMb2FkZXI6Om1f
cGx1Z0luU3RyZWFtTG9hZGVycyBtaWdodCBub3QgYmUgZW1wdHkgYXQgdGhpcyB0aW1lLgotICAg
ICAgICAgICAgLy8gU2VlIDxyZGFyOi8vcHJvYmxlbS85NjczODY2PiBmb3IgbW9yZSBkZXRhaWxz
LgotICAgICAgICAgICAgQVNTRVJUKCFsb2FkZXItPmlzTG9hZGluZygpIHx8IGxvYWRlci0+aXNT
dG9wcGluZygpKTsKLSAgICAgICAgICAgIGxvYWRlci0+ZGV0YWNoRGF0YVNvdXJjZSgpOwotICAg
ICAgICB9CisgICAgICAgIC8vIFdlIG1pZ2h0IHJ1biBpbiB0byBpbmZpbml0ZSByZWN1cnNpb24g
aWYgd2UncmUgc3RvcHBpbmcgbG9hZGluZyBhcyB0aGUgcmVzdWx0IG9mIGRldGFjaGluZyBmcm9t
IHRoZSBmcmFtZS4KKyAgICAgICAgLy8gVGhlcmVmb3JlLCBEb2N1bWVudExvYWRlcjo6ZGV0YWNo
RnJvbUZyYW1lKCkgZGlkIHNvbWUgc21hcnQgdGhpbmdzIHRvIHN0b3AgdGhlIHJlY3Vyc2lvbi4K
KyAgICAgICAgLy8gQXMgYSByZXN1bHQgb2YgYnJlYWtpbmcgdGhlIHJlc3Vyc2lvbiwgRG9jdW1l
bnRMb2FkZXI6Om1fc3VicmVzb3VyY2VMb2FkZXIKKyAgICAgICAgLy8gYW5kIERvY3VtZW50TG9h
ZGVyOjptX3BsdWdJblN0cmVhbUxvYWRlcnMgbWlnaHQgbm90IGJlIGVtcHR5IGF0IHRoaXMgdGlt
ZS4KKyAgICAgICAgLy8gU2VlIDxyZGFyOi8vcHJvYmxlbS85NjczODY2PiBmb3IgbW9yZSBkZXRh
aWxzLgorICAgICAgICBBU1NFUlQoIWxvYWRlci0+aXNMb2FkaW5nKCkgfHwgbG9hZGVyLT5pc1N0
b3BwaW5nKCkpOworICAgICAgICBsb2FkZXItPmRldGFjaERhdGFTb3VyY2UoKTsKICAgICB9CiAK
LSAgICBSZWZQdHI8V2ViRG9jdW1lbnRMb2FkZXJNYWM+IGxvYWRlcjsKKyAgICBSZWY8V2ViRG9j
dW1lbnRMb2FkZXJNYWM+IGxvYWRlcjsKICAgICBSZXRhaW5QdHI8aWQ8V2ViRG9jdW1lbnRSZXBy
ZXNlbnRhdGlvbj4gPiByZXByZXNlbnRhdGlvbjsKICAgICBCT09MIHJlcHJlc2VudGF0aW9uRmlu
aXNoZWRMb2FkaW5nOwogICAgIEJPT0wgaW5jbHVkZWRJbldlYktpdFN0YXRpc3RpY3M7CkBAIC00
MDcsMTQgKzQwNCwxMyBAQCAtIChEb2N1bWVudExvYWRlciopX2RvY3VtZW50TG9hZGVyCiAgICAg
cmV0dXJuIHRvUHJpdmF0ZShfcHJpdmF0ZSktPmxvYWRlci5nZXQoKTsKIH0KIAotLSAoaWQpX2lu
aXRXaXRoRG9jdW1lbnRMb2FkZXI6KFBhc3NSZWZQdHI8V2ViRG9jdW1lbnRMb2FkZXJNYWM+KWxv
YWRlcgorLSAoaWQpX2luaXRXaXRoRG9jdW1lbnRMb2FkZXI6KFJlZjxXZWJEb2N1bWVudExvYWRl
ck1hYz4mJilsb2FkZXIKIHsKICAgICBzZWxmID0gW3N1cGVyIGluaXRdOwogICAgIGlmICghc2Vs
ZikKICAgICAgICAgcmV0dXJuIG5pbDsKIAotICAgIEFTU0VSVChsb2FkZXIpOwotICAgIF9wcml2
YXRlID0gc3RhdGljX2Nhc3Q8dm9pZCo+KG5ldyBXZWJEYXRhU291cmNlUHJpdmF0ZShsb2FkZXIp
KTsKKyAgICBfcHJpdmF0ZSA9IHN0YXRpY19jYXN0PHZvaWQqPihuZXcgV2ViRGF0YVNvdXJjZVBy
aXZhdGUoV1RGTW92ZShsb2FkZXIpKSk7CiAgICAgICAgIAogICAgIExPRyhMb2FkaW5nLCAiY3Jl
YXRpbmcgZGF0YXNvdXJjZSBmb3IgJUAiLCBzdGF0aWNfY2FzdDxOU1VSTCAqPih0b1ByaXZhdGUo
X3ByaXZhdGUpLT5sb2FkZXItPnJlcXVlc3QoKS51cmwoKSkpOwogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkRhdGFTb3VyY2VJbnRlcm5hbC5oIGIvU291cmNlL1dl
YktpdC9tYWMvV2ViVmlldy9XZWJEYXRhU291cmNlSW50ZXJuYWwuaAppbmRleCBkZTE2MWNiYjU2
MDA3NDA1YjU3Y2Y0ZTkwNjBhODk3NTk0ZDFhOGQ0Li5iMTAxYjEzZGNjMjViNjE1NjNiMTgwOTVm
MzlkNjFkYzNjNjcyYzYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dl
YkRhdGFTb3VyY2VJbnRlcm5hbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2Vi
RGF0YVNvdXJjZUludGVybmFsLmgKQEAgLTUxLDcgKzUxLDcgQEAgY2xhc3MgV2ViRG9jdW1lbnRM
b2FkZXJNYWM7CiAtIChET01Eb2N1bWVudEZyYWdtZW50ICopX2RvY3VtZW50RnJhZ21lbnRXaXRo
QXJjaGl2ZTooV2ViQXJjaGl2ZSAqKWFyY2hpdmU7CiArIChOU011dGFibGVEaWN0aW9uYXJ5ICop
X3JlcFR5cGVzQWxsb3dJbWFnZVR5cGVPbWlzc2lvbjooQk9PTClhbGxvd0ltYWdlVHlwZU9taXNz
aW9uOwogLSAodm9pZClfcmVwbGFjZVNlbGVjdGlvbldpdGhBcmNoaXZlOihXZWJBcmNoaXZlICop
YXJjaGl2ZSBzZWxlY3RSZXBsYWNlbWVudDooQk9PTClzZWxlY3RSZXBsYWNlbWVudDsKLS0gKGlk
KV9pbml0V2l0aERvY3VtZW50TG9hZGVyOihQYXNzUmVmUHRyPFdlYkRvY3VtZW50TG9hZGVyTWFj
Pilsb2FkZXI7CistIChpZClfaW5pdFdpdGhEb2N1bWVudExvYWRlcjooUmVmPFdlYkRvY3VtZW50
TG9hZGVyTWFjPiYmKWxvYWRlcjsKIC0gKHZvaWQpX2ZpbmlzaGVkTG9hZGluZzsKIC0gKHZvaWQp
X3JlY2VpdmVkRGF0YTooTlNEYXRhICopZGF0YTsKIC0gKHZvaWQpX3JldmVydFRvUHJvdmlzaW9u
YWxTdGF0ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViRGV2aWNl
T3JpZW50YXRpb24ubW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkRldmljZU9yaWVu
dGF0aW9uLm1tCmluZGV4IDBlZWMyMzhkOGM1NDdiNWVhNmY0NTU1YjZlNWRjZGIyYTEwZjY5YmIu
LmQwODg5NTg5ZGIxYmI2M2IzY2EyZDY3Njg4Y2FlOTBlNTZjMDU0ZjEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViRGV2aWNlT3JpZW50YXRpb24ubW0KKysrIGIvU291
cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJEZXZpY2VPcmllbnRhdGlvbi5tbQpAQCAtMjksMTIg
KzI5LDEyIEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCiBAaW1wbGVtZW50YXRpb24gV2Vi
RGV2aWNlT3JpZW50YXRpb25JbnRlcm5hbAogCi0tIChpZClpbml0V2l0aENvcmVEZXZpY2VPcmll
bnRhdGlvbjooUGFzc1JlZlB0cjxEZXZpY2VPcmllbnRhdGlvbkRhdGE+KWNvcmVEZXZpY2VPcmll
bnRhdGlvbgorLSAoaWQpaW5pdFdpdGhDb3JlRGV2aWNlT3JpZW50YXRpb246KFJlZlB0cjxEZXZp
Y2VPcmllbnRhdGlvbkRhdGE+JiYpY29yZURldmljZU9yaWVudGF0aW9uCiB7CiAgICAgc2VsZiA9
IFtzdXBlciBpbml0XTsKICAgICBpZiAoIXNlbGYpCiAgICAgICAgIHJldHVybiBuaWw7Ci0gICAg
bV9vcmllbnRhdGlvbiA9IGNvcmVEZXZpY2VPcmllbnRhdGlvbjsKKyAgICBtX29yaWVudGF0aW9u
ID0gV1RGTW92ZShjb3JlRGV2aWNlT3JpZW50YXRpb24pOwogICAgIHJldHVybiBzZWxmOwogfQog
CkBAIC00MiwxMiArNDIsMTIgQEAgQGVuZAogCiBAaW1wbGVtZW50YXRpb24gV2ViRGV2aWNlT3Jp
ZW50YXRpb24gKEludGVybmFsKQogCi0tIChpZClpbml0V2l0aENvcmVEZXZpY2VPcmllbnRhdGlv
bjooUGFzc1JlZlB0cjxXZWJDb3JlOjpEZXZpY2VPcmllbnRhdGlvbkRhdGE+KWNvcmVEZXZpY2VP
cmllbnRhdGlvbgorLSAoaWQpaW5pdFdpdGhDb3JlRGV2aWNlT3JpZW50YXRpb246KFJlZlB0cjxX
ZWJDb3JlOjpEZXZpY2VPcmllbnRhdGlvbkRhdGE+JiYpY29yZURldmljZU9yaWVudGF0aW9uCiB7
CiAgICAgc2VsZiA9IFtzdXBlciBpbml0XTsKICAgICBpZiAoIXNlbGYpCiAgICAgICAgIHJldHVy
biBuaWw7Ci0gICAgbV9pbnRlcm5hbCA9IFtbV2ViRGV2aWNlT3JpZW50YXRpb25JbnRlcm5hbCBh
bGxvY10gaW5pdFdpdGhDb3JlRGV2aWNlT3JpZW50YXRpb246Y29yZURldmljZU9yaWVudGF0aW9u
XTsKKyAgICBtX2ludGVybmFsID0gW1tXZWJEZXZpY2VPcmllbnRhdGlvbkludGVybmFsIGFsbG9j
XSBpbml0V2l0aENvcmVEZXZpY2VPcmllbnRhdGlvbjpXVEZNb3ZlKGNvcmVEZXZpY2VPcmllbnRh
dGlvbildOwogICAgIHJldHVybiBzZWxmOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L21hYy9XZWJWaWV3L1dlYkRldmljZU9yaWVudGF0aW9uSW50ZXJuYWwuaCBiL1NvdXJjZS9XZWJL
aXQvbWFjL1dlYlZpZXcvV2ViRGV2aWNlT3JpZW50YXRpb25JbnRlcm5hbC5oCmluZGV4IDVkZWRk
MDgwYzc2ZjQ0ODU0OTI5OTJmOTQ3N2E4ZWNiYTQxZGVlOWUuLmZjYzNiYjNjOTk2OWFhNTVmOGQz
NTgxNmE3MTM0MGFmNWJhOTY2ODggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZp
ZXcvV2ViRGV2aWNlT3JpZW50YXRpb25JbnRlcm5hbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFj
L1dlYlZpZXcvV2ViRGV2aWNlT3JpZW50YXRpb25JbnRlcm5hbC5oCkBAIC0zMywxMiArMzMsMTIg
QEAKICAgICBSZWZQdHI8V2ViQ29yZTo6RGV2aWNlT3JpZW50YXRpb25EYXRhPiBtX29yaWVudGF0
aW9uOwogfQogCi0tIChpZClpbml0V2l0aENvcmVEZXZpY2VPcmllbnRhdGlvbjooUGFzc1JlZlB0
cjxXZWJDb3JlOjpEZXZpY2VPcmllbnRhdGlvbkRhdGE+KWNvcmVEZXZpY2VPcmllbnRhdGlvbjsK
Ky0gKGlkKWluaXRXaXRoQ29yZURldmljZU9yaWVudGF0aW9uOihSZWZQdHI8V2ViQ29yZTo6RGV2
aWNlT3JpZW50YXRpb25EYXRhPiYmKWNvcmVEZXZpY2VPcmllbnRhdGlvbjsKIEBlbmQKIAogQGlu
dGVyZmFjZSBXZWJEZXZpY2VPcmllbnRhdGlvbiAoSW50ZXJuYWwpCiAKLS0gKGlkKWluaXRXaXRo
Q29yZURldmljZU9yaWVudGF0aW9uOihQYXNzUmVmUHRyPFdlYkNvcmU6OkRldmljZU9yaWVudGF0
aW9uRGF0YT4pY29yZURldmljZU9yaWVudGF0aW9uOworLSAoaWQpaW5pdFdpdGhDb3JlRGV2aWNl
T3JpZW50YXRpb246KFJlZlB0cjxXZWJDb3JlOjpEZXZpY2VPcmllbnRhdGlvbkRhdGE+JiYpY29y
ZURldmljZU9yaWVudGF0aW9uOwogCiBAZW5kCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
bWFjL1dlYlZpZXcvV2ViRnJhbWUubW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkZy
YW1lLm1tCmluZGV4IDM2ODVlMmMwNmYwNTZmNTYxMTZjZjRlNGIzOGZhNDE3YjM2OTZjZDIuLjcw
MzI2MDA3NGVjMzM5Yzg4ODIwYjc5NTBjZmIxNDRlZDc3NGNkODQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViRnJhbWUubW0KKysrIGIvU291cmNlL1dlYktpdC9tYWMv
V2ViVmlldy9XZWJGcmFtZS5tbQpAQCAtNzkyLDE1ICs3OTIsMTUgQEAgLSAoTlNSYW5nZSlfY29u
dmVydFRvTlNSYW5nZTooUmFuZ2UgKilyYW5nZQogICAgIHJldHVybiBOU01ha2VSYW5nZShsb2Nh
dGlvbiwgbGVuZ3RoKTsKIH0KIAotLSAoUGFzc1JlZlB0cjxSYW5nZT4pX2NvbnZlcnRUb0RPTVJh
bmdlOihOU1JhbmdlKW5zcmFuZ2UKKy0gKFJlZlB0cjxSYW5nZT4pX2NvbnZlcnRUb0RPTVJhbmdl
OihOU1JhbmdlKW5zcmFuZ2UKIHsKICAgICByZXR1cm4gW3NlbGYgX2NvbnZlcnRUb0RPTVJhbmdl
Om5zcmFuZ2UgcmFuZ2VJc1JlbGF0aXZlVG86V2ViUmFuZ2VJc1JlbGF0aXZlVG86OkVkaXRhYmxl
Um9vdF07CiB9CiAKLS0gKFBhc3NSZWZQdHI8UmFuZ2U+KV9jb252ZXJ0VG9ET01SYW5nZTooTlNS
YW5nZSluc3JhbmdlIHJhbmdlSXNSZWxhdGl2ZVRvOihXZWJSYW5nZUlzUmVsYXRpdmVUbylyYW5n
ZUlzUmVsYXRpdmVUbworLSAoUmVmUHRyPFJhbmdlPilfY29udmVydFRvRE9NUmFuZ2U6KE5TUmFu
Z2UpbnNyYW5nZSByYW5nZUlzUmVsYXRpdmVUbzooV2ViUmFuZ2VJc1JlbGF0aXZlVG8pcmFuZ2VJ
c1JlbGF0aXZlVG8KIHsKICAgICBpZiAobnNyYW5nZS5sb2NhdGlvbiA+IElOVF9NQVgpCi0gICAg
ICAgIHJldHVybiAwOworICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICBpZiAobnNyYW5nZS5s
ZW5ndGggPiBJTlRfTUFYIHx8IG5zcmFuZ2UubG9jYXRpb24gKyBuc3JhbmdlLmxlbmd0aCA+IElO
VF9NQVgpCiAgICAgICAgIG5zcmFuZ2UubGVuZ3RoID0gSU5UX01BWCAtIG5zcmFuZ2UubG9jYXRp
b247CiAKQEAgLTgyMiwxMSArODIyLDExIEBAIC0gKFBhc3NSZWZQdHI8UmFuZ2U+KV9jb252ZXJ0
VG9ET01SYW5nZTooTlNSYW5nZSluc3JhbmdlIHJhbmdlSXNSZWxhdGl2ZVRvOihXZWJSCiAgICAg
Y29uc3QgVmlzaWJsZVNlbGVjdGlvbiYgc2VsZWN0aW9uID0gX3ByaXZhdGUtPmNvcmVGcmFtZS0+
c2VsZWN0aW9uKCkuc2VsZWN0aW9uKCk7CiAgICAgUmVmUHRyPFJhbmdlPiBzZWxlY3RlZFJhbmdl
ID0gc2VsZWN0aW9uLnRvTm9ybWFsaXplZFJhbmdlKCk7CiAgICAgaWYgKCFzZWxlY3RlZFJhbmdl
KQotICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKICAgICBSZWZQ
dHI8UmFuZ2U+IHBhcmFncmFwaFJhbmdlID0gbWFrZVJhbmdlKHN0YXJ0T2ZQYXJhZ3JhcGgoc2Vs
ZWN0aW9uLnZpc2libGVTdGFydCgpKSwgc2VsZWN0aW9uLnZpc2libGVFbmQoKSk7CiAgICAgaWYg
KCFwYXJhZ3JhcGhSYW5nZSkKLSAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIHJldHVybiBudWxs
cHRyOwogCiAgICAgQ29udGFpbmVyTm9kZSYgcm9vdE5vZGUgPSBwYXJhZ3JhcGhSYW5nZS5nZXQo
KS0+c3RhcnRDb250YWluZXIoKS50cmVlU2NvcGUoKS5yb290Tm9kZSgpOwogICAgIGludCBwYXJh
Z3JhcGhTdGFydEluZGV4ID0gVGV4dEl0ZXJhdG9yOjpyYW5nZUxlbmd0aChSYW5nZTo6Y3JlYXRl
KHJvb3ROb2RlLmRvY3VtZW50KCksICZyb290Tm9kZSwgMCwgJnBhcmFncmFwaFJhbmdlLT5zdGFy
dENvbnRhaW5lcigpLCBwYXJhZ3JhcGhSYW5nZS0+c3RhcnRPZmZzZXQoKSkucHRyKCkpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJGcmFtZUludGVybmFsLmggYi9T
b3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkZyYW1lSW50ZXJuYWwuaAppbmRleCA1YzcyZDI4
N2ZhNTc3MDg5Y2Q0NDBmMDY3YzFjZGEzYWMxY2Y2MTlhLi4yOWE3ZDRlNWMzMTQxZmVjYTA3MzYy
YTVjZTY4MTRlMWQzYWJjNDJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3
L1dlYkZyYW1lSW50ZXJuYWwuaAorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkZy
YW1lSW50ZXJuYWwuaApAQCAtMTY0LDggKzE2NCw4IEBAIFdlYlZpZXcgKmdldFdlYlZpZXcoV2Vi
RnJhbWUgKndlYkZyYW1lKTsKIC0gKERPTVJhbmdlICopX3JhbmdlQnlBbHRlcmluZ0N1cnJlbnRT
ZWxlY3Rpb246KFdlYkNvcmU6OkZyYW1lU2VsZWN0aW9uOjpFQWx0ZXJhdGlvbilhbHRlcmF0aW9u
IGRpcmVjdGlvbjooV2ViQ29yZTo6U2VsZWN0aW9uRGlyZWN0aW9uKWRpcmVjdGlvbiBncmFudWxh
cml0eTooV2ViQ29yZTo6VGV4dEdyYW51bGFyaXR5KWdyYW51bGFyaXR5OwogI2VuZGlmCiAtIChO
U1JhbmdlKV9jb252ZXJ0VG9OU1JhbmdlOihXZWJDb3JlOjpSYW5nZSopcmFuZ2U7Ci0tIChQYXNz
UmVmUHRyPFdlYkNvcmU6OlJhbmdlPilfY29udmVydFRvRE9NUmFuZ2U6KE5TUmFuZ2UpbnNyYW5n
ZTsKLS0gKFBhc3NSZWZQdHI8V2ViQ29yZTo6UmFuZ2U+KV9jb252ZXJ0VG9ET01SYW5nZTooTlNS
YW5nZSluc3JhbmdlIHJhbmdlSXNSZWxhdGl2ZVRvOihXZWJSYW5nZUlzUmVsYXRpdmVUbylyYW5n
ZUlzUmVsYXRpdmVUbzsKKy0gKFJlZlB0cjxXZWJDb3JlOjpSYW5nZT4pX2NvbnZlcnRUb0RPTVJh
bmdlOihOU1JhbmdlKW5zcmFuZ2U7CistIChSZWZQdHI8V2ViQ29yZTo6UmFuZ2U+KV9jb252ZXJ0
VG9ET01SYW5nZTooTlNSYW5nZSluc3JhbmdlIHJhbmdlSXNSZWxhdGl2ZVRvOihXZWJSYW5nZUlz
UmVsYXRpdmVUbylyYW5nZUlzUmVsYXRpdmVUbzsKIAogLSAoRE9NRG9jdW1lbnRGcmFnbWVudCAq
KV9kb2N1bWVudEZyYWdtZW50V2l0aE1hcmt1cFN0cmluZzooTlNTdHJpbmcgKiltYXJrdXBTdHJp
bmcgYmFzZVVSTFN0cmluZzooTlNTdHJpbmcgKiliYXNlVVJMU3RyaW5nOwogLSAoRE9NRG9jdW1l
bnRGcmFnbWVudCAqKV9kb2N1bWVudEZyYWdtZW50V2l0aE5vZGVzQXNQYXJhZ3JhcGhzOihOU0Fy
cmF5ICopbm9kZXM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkZ1
bGxTY3JlZW5Db250cm9sbGVyLmggYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkZ1bGxT
Y3JlZW5Db250cm9sbGVyLmgKaW5kZXggNDk4MWEyMTg3MjA4NmJjY2M0OWEzZTk1YjNkZjBiNjU1
NTdhYTljMS4uNjBkOTZlODQ3YWZkMWRjNGJjOTg0MzU3YWQ4ZGMwZjEwN2ZkNTI1NCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJGdWxsU2NyZWVuQ29udHJvbGxlci5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViRnVsbFNjcmVlbkNvbnRyb2xsZXIu
aApAQCAtNjcsNyArNjcsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIC0gKEJPT0wpaXNGdWxs
U2NyZWVuOwogCi0tICh2b2lkKXNldEVsZW1lbnQ6KFBhc3NSZWZQdHI8V2ViQ29yZTo6RWxlbWVu
dD4pZWxlbWVudDsKKy0gKHZvaWQpc2V0RWxlbWVudDooUmVmUHRyPFdlYkNvcmU6OkVsZW1lbnQ+
JiYpZWxlbWVudDsKIC0gKFdlYkNvcmU6OkVsZW1lbnQqKWVsZW1lbnQ7CiAKIC0gKHZvaWQpZW50
ZXJGdWxsU2NyZWVuOihOU1NjcmVlbiAqKXNjcmVlbjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvbWFjL1dlYlZpZXcvV2ViRnVsbFNjcmVlbkNvbnRyb2xsZXIubW0gYi9Tb3VyY2UvV2ViS2l0
L21hYy9XZWJWaWV3L1dlYkZ1bGxTY3JlZW5Db250cm9sbGVyLm1tCmluZGV4IDRiY2Y0OTlmZTAw
ZmJkOWY4NmNkMzhiZjQxNDlmNDFiNWJkMzAzN2IuLjFkZGYxOTdkYzU2MWExN2YwOTc2ZjIzZDM2
NzlhMzZmNGVmNjU5NTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2Vi
RnVsbFNjcmVlbkNvbnRyb2xsZXIubW0KKysrIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9X
ZWJGdWxsU2NyZWVuQ29udHJvbGxlci5tbQpAQCAtMTM4LDkgKzEzOCw5IEBAIC0gKEVsZW1lbnQq
KWVsZW1lbnQKICAgICByZXR1cm4gX2VsZW1lbnQuZ2V0KCk7CiB9CiAKLS0gKHZvaWQpc2V0RWxl
bWVudDooUGFzc1JlZlB0cjxFbGVtZW50PillbGVtZW50CistICh2b2lkKXNldEVsZW1lbnQ6KFJl
ZlB0cjxFbGVtZW50PiYmKWVsZW1lbnQKIHsKLSAgICBfZWxlbWVudCA9IGVsZW1lbnQ7CisgICAg
X2VsZW1lbnQgPSBXVEZNb3ZlKGVsZW1lbnQpOwogfQogCiAtIChCT09MKWlzRnVsbFNjcmVlbgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJHZW9sb2NhdGlvblBvc2l0
aW9uLm1tIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJHZW9sb2NhdGlvblBvc2l0aW9u
Lm1tCmluZGV4IDc5MzdlZjM3MDJlYjIzNTExYTBiZWNjYjVlMTQwNTAyNWExODI2YjMuLjQ1NmQ0
YmE4YmRmMGU3MTY0NDkwNzUzMjFmOWVkZDRmMDg0NWRmYTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvbWFjL1dlYlZpZXcvV2ViR2VvbG9jYXRpb25Qb3NpdGlvbi5tbQorKysgYi9Tb3VyY2Uv
V2ViS2l0L21hYy9XZWJWaWV3L1dlYkdlb2xvY2F0aW9uUG9zaXRpb24ubW0KQEAgLTI2LDcgKzI2
LDYgQEAKICNpbXBvcnQgIldlYkdlb2xvY2F0aW9uUG9zaXRpb24uaCIKIAogI2ltcG9ydCAiV2Vi
R2VvbG9jYXRpb25Qb3NpdGlvbkludGVybmFsLmgiCi0jaW1wb3J0IDx3dGYvUGFzc1JlZlB0ci5o
PgogI2ltcG9ydCA8d3RmL1JlZlB0ci5oPgogCiAjaW1wb3J0IDxXZWJDb3JlL0dlb2xvY2F0aW9u
UG9zaXRpb24uaD4KQEAgLTM5LDE3ICszOCwxNyBAQCBAcHVibGljCiAgICAgUmVmUHRyPEdlb2xv
Y2F0aW9uUG9zaXRpb24+IF9wb3NpdGlvbjsKIH0KIAotLSAoaWQpaW5pdFdpdGhDb3JlR2VvbG9j
YXRpb25Qb3NpdGlvbjooUGFzc1JlZlB0cjxHZW9sb2NhdGlvblBvc2l0aW9uPiljb3JlR2VvbG9j
YXRpb25Qb3NpdGlvbjsKKy0gKGlkKWluaXRXaXRoQ29yZUdlb2xvY2F0aW9uUG9zaXRpb246KFJl
ZlB0cjxHZW9sb2NhdGlvblBvc2l0aW9uPiYmKWNvcmVHZW9sb2NhdGlvblBvc2l0aW9uOwogQGVu
ZAogCiBAaW1wbGVtZW50YXRpb24gV2ViR2VvbG9jYXRpb25Qb3NpdGlvbkludGVybmFsCiAKLS0g
KGlkKWluaXRXaXRoQ29yZUdlb2xvY2F0aW9uUG9zaXRpb246KFBhc3NSZWZQdHI8R2VvbG9jYXRp
b25Qb3NpdGlvbj4pY29yZUdlb2xvY2F0aW9uUG9zaXRpb24KKy0gKGlkKWluaXRXaXRoQ29yZUdl
b2xvY2F0aW9uUG9zaXRpb246KFJlZlB0cjxHZW9sb2NhdGlvblBvc2l0aW9uPiYmKWNvcmVHZW9s
b2NhdGlvblBvc2l0aW9uCiB7CiAgICAgc2VsZiA9IFtzdXBlciBpbml0XTsKICAgICBpZiAoIXNl
bGYpCiAgICAgICAgIHJldHVybiBuaWw7Ci0gICAgX3Bvc2l0aW9uID0gY29yZUdlb2xvY2F0aW9u
UG9zaXRpb247CisgICAgX3Bvc2l0aW9uID0gV1RGTW92ZShjb3JlR2VvbG9jYXRpb25Qb3NpdGlv
bik7CiAgICAgcmV0dXJuIHNlbGY7CiB9CiAKQEAgLTcxLDEyICs3MCwxMiBAQCAtIChpZClpbml0
V2l0aFRpbWVzdGFtcDooZG91YmxlKXRpbWVzdGFtcCBsYXRpdHVkZTooZG91YmxlKWxhdGl0dWRl
IGxvbmdpdHVkZTooZAogICAgIHJldHVybiBzZWxmOwogfQogCi0tIChpZClpbml0V2l0aEdlb2xv
Y2F0aW9uUG9zaXRpb246KFJlZlB0cjxHZW9sb2NhdGlvblBvc2l0aW9uPiljb3JlR2VvbG9jYXRp
b25Qb3NpdGlvbgorLSAoaWQpaW5pdFdpdGhHZW9sb2NhdGlvblBvc2l0aW9uOihSZWZQdHI8R2Vv
bG9jYXRpb25Qb3NpdGlvbj4mJiljb3JlR2VvbG9jYXRpb25Qb3NpdGlvbgogewogICAgIHNlbGYg
PSBbc3VwZXIgaW5pdF07CiAgICAgaWYgKCFzZWxmKQogICAgICAgICByZXR1cm4gbmlsOwotICAg
IF9pbnRlcm5hbCA9IFtbV2ViR2VvbG9jYXRpb25Qb3NpdGlvbkludGVybmFsIGFsbG9jXSBpbml0
V2l0aENvcmVHZW9sb2NhdGlvblBvc2l0aW9uOmNvcmVHZW9sb2NhdGlvblBvc2l0aW9uXTsKKyAg
ICBfaW50ZXJuYWwgPSBbW1dlYkdlb2xvY2F0aW9uUG9zaXRpb25JbnRlcm5hbCBhbGxvY10gaW5p
dFdpdGhDb3JlR2VvbG9jYXRpb25Qb3NpdGlvbjpXVEZNb3ZlKGNvcmVHZW9sb2NhdGlvblBvc2l0
aW9uKV07CiAgICAgcmV0dXJuIHNlbGY7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
bWFjL1dlYlZpZXcvV2ViSFRNTFZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dl
YkhUTUxWaWV3Lm1tCmluZGV4IDg1MmM5MTQ4NjlkM2I0ZDQ0YjQyYmRhODEwYTgwZTI3YTM0ZDQw
NjYuLjVkNTVhYjEzYmE3NGNiN2YxYmZlY2I3OTE4NjcwMzIwM2YyY2QwN2IgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViSFRNTFZpZXcubW0KKysrIGIvU291cmNlL1dl
YktpdC9tYWMvV2ViVmlldy9XZWJIVE1MVmlldy5tbQpAQCAtNDgyNiwxMiArNDgyNiwxMiBAQCBz
dGF0aWMgQk9PTCBpc0luUGFzc3dvcmRGaWVsZChGcmFtZSogY29yZUZyYW1lKQogfQogI2VuZGlm
CiAKLXN0YXRpYyBQYXNzUmVmUHRyPEtleWJvYXJkRXZlbnQ+IGN1cnJlbnRLZXlib2FyZEV2ZW50
KEZyYW1lKiBjb3JlRnJhbWUpCitzdGF0aWMgUmVmUHRyPEtleWJvYXJkRXZlbnQ+IGN1cnJlbnRL
ZXlib2FyZEV2ZW50KEZyYW1lKiBjb3JlRnJhbWUpCiB7CiAjaWYgIVBMQVRGT1JNKElPUykKICAg
ICBOU0V2ZW50ICpldmVudCA9IFtOU0FwcCBjdXJyZW50RXZlbnRdOwogICAgIGlmICghZXZlbnQp
Ci0gICAgICAgIHJldHVybiAwOworICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAogICAgIHN3aXRj
aCAoW2V2ZW50IHR5cGVdKSB7CiAgICAgY2FzZSBOU0V2ZW50VHlwZUtleURvd246IHsKQEAgLTQ4
NDIsMTggKzQ4NDIsMTggQEAgc3RhdGljIFBhc3NSZWZQdHI8S2V5Ym9hcmRFdmVudD4gY3VycmVu
dEtleWJvYXJkRXZlbnQoRnJhbWUqIGNvcmVGcmFtZSkKICAgICBjYXNlIE5TRXZlbnRUeXBlS2V5
VXA6CiAgICAgICAgIHJldHVybiBLZXlib2FyZEV2ZW50OjpjcmVhdGUoUGxhdGZvcm1FdmVudEZh
Y3Rvcnk6OmNyZWF0ZVBsYXRmb3JtS2V5Ym9hcmRFdmVudChldmVudCksIGNvcmVGcmFtZS0+ZG9j
dW1lbnQoKS0+ZGVmYXVsdFZpZXcoKSk7CiAgICAgZGVmYXVsdDoKLSAgICAgICAgcmV0dXJuIDA7
CisgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIH0KICNlbHNlCiAgICAgV2ViRXZlbnQgKmV2
ZW50ID0gW1dBS1dpbmRvdyBjdXJyZW50RXZlbnRdOwogICAgIGlmICghZXZlbnQpCi0gICAgICAg
IHJldHVybiAwOworICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICBXZWJFdmVudFR5cGUgdHlw
ZSA9IGV2ZW50LnR5cGU7CiAgICAgaWYgKHR5cGUgPT0gV2ViRXZlbnRLZXlEb3duIHx8IHR5cGUg
PT0gV2ViRXZlbnRLZXlVcCkgewogICAgICAgICBEb2N1bWVudCogZG9jdW1lbnQgPSBjb3JlRnJh
bWUtPmRvY3VtZW50KCk7CiAgICAgICAgIHJldHVybiBLZXlib2FyZEV2ZW50OjpjcmVhdGUoUGxh
dGZvcm1FdmVudEZhY3Rvcnk6OmNyZWF0ZVBsYXRmb3JtS2V5Ym9hcmRFdmVudChldmVudCksIGRv
Y3VtZW50ID8gZG9jdW1lbnQtPmRlZmF1bHRWaWV3KCkgOiAwKTsKICAgICB9Ci0gICAgcmV0dXJu
IDA7CisgICAgcmV0dXJuIG51bGxwdHI7CiAjZW5kaWYKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9tYWMvV2ViVmlldy9XZWJSZXNvdXJjZS5tbSBiL1NvdXJjZS9XZWJLaXQvbWFjL1dl
YlZpZXcvV2ViUmVzb3VyY2UubW0KaW5kZXggMzk3N2I0NDRhOWY1NTYzMmRhNjdkNDNiODIzNDY5
YTQ2YTIzNDllYi4uMTlkZjA1ZWQ4Y2UzNzRiYjQ0Y2I0M2EyMWZlZWI3NjgwMTExZmMxNyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJSZXNvdXJjZS5tbQorKysgYi9T
b3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlJlc291cmNlLm1tCkBAIC0zNSw3ICszNSw2IEBA
CiAjaW1wb3J0ICJXZWJOU09iamVjdEV4dHJhcy5oIgogI2ltcG9ydCAiV2ViTlNVUkxFeHRyYXMu
aCIKICNpbXBvcnQgPEphdmFTY3JpcHRDb3JlL0luaXRpYWxpemVUaHJlYWRpbmcuaD4KLSNpbXBv
cnQgPHd0Zi9QYXNzUmVmUHRyLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0FyY2hpdmVSZXNvdXJjZS5o
PgogI2ltcG9ydCA8V2ViQ29yZS9MZWdhY3lXZWJBcmNoaXZlLmg+CiAjaW1wb3J0IDxXZWJDb3Jl
L1J1bnRpbWVBcHBsaWNhdGlvbkNoZWNrcy5oPgpAQCAtNDQsNiArNDMsNyBAQAogI2ltcG9ydCA8
V2ViQ29yZS9XZWJDb3JlT2JqQ0V4dHJhcy5oPgogI2ltcG9ydCA8V2ViQ29yZS9XZWJDb3JlVVJM
UmVzcG9uc2UuaD4KICNpbXBvcnQgPHd0Zi9NYWluVGhyZWFkLmg+CisjaW1wb3J0IDx3dGYvUmVm
UHRyLmg+CiAjaW1wb3J0IDx3dGYvUnVuTG9vcC5oPgogCiB1c2luZyBuYW1lc3BhY2UgV2ViQ29y
ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViU2NyaXB0V29ybGQu
bW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlNjcmlwdFdvcmxkLm1tCmluZGV4IDc4
NDhiMjQ1OTk1ZWU2N2YzMDRiOWFhMGZlMzBiZDM5MmNiMDRjYjUuLjNlYmYxOTM1MTU4NjUyNDU3
NWVmZTJkNmQ3NjU2MTZiNWEwOGIzYTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dl
YlZpZXcvV2ViU2NyaXB0V29ybGQubW0KKysrIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9X
ZWJTY3JpcHRXb3JsZC5tbQpAQCAtNTIsMTggKzUyLDE0IEBAIHN0YXRpYyBXb3JsZE1hcCYgYWxs
V29ybGRzKCkKIAogQGltcGxlbWVudGF0aW9uIFdlYlNjcmlwdFdvcmxkCiAKLS0gKGlkKWluaXRX
aXRoV29ybGQ6KFBhc3NSZWZQdHI8RE9NV3JhcHBlcldvcmxkPil3b3JsZAorLSAoaWQpaW5pdFdp
dGhXb3JsZDooUmVmPERPTVdyYXBwZXJXb3JsZD4mJil3b3JsZAogewotICAgIEFTU0VSVF9BUkco
d29ybGQsIHdvcmxkKTsKLSAgICBpZiAoIXdvcmxkKQotICAgICAgICByZXR1cm4gbmlsOwotCiAg
ICAgc2VsZiA9IFtzdXBlciBpbml0XTsKICAgICBpZiAoIXNlbGYpCiAgICAgICAgIHJldHVybiBu
aWw7CiAKICAgICBfcHJpdmF0ZSA9IFtbV2ViU2NyaXB0V29ybGRQcml2YXRlIGFsbG9jXSBpbml0
XTsKLSAgICBfcHJpdmF0ZS0+d29ybGQgPSB3b3JsZDsKKyAgICBfcHJpdmF0ZS0+d29ybGQgPSBX
VEZNb3ZlKHdvcmxkKTsKIAogICAgIEFTU0VSVF9BUkcod29ybGQsICFhbGxXb3JsZHMoKS5jb250
YWlucyhfcHJpdmF0ZS0+d29ybGQuZ2V0KCkpKTsKICAgICBhbGxXb3JsZHMoKS5hZGQoX3ByaXZh
dGUtPndvcmxkLmdldCgpLCBzZWxmKTsKQEAgLTkzLDcgKzg5LDcgQEAgLSAodm9pZClkZWFsbG9j
CiAKICsgKFdlYlNjcmlwdFdvcmxkICopc3RhbmRhcmRXb3JsZAogewotICAgIHN0YXRpYyBXZWJT
Y3JpcHRXb3JsZCAqd29ybGQgPSBbW1dlYlNjcmlwdFdvcmxkIGFsbG9jXSBpbml0V2l0aFdvcmxk
OiZtYWluVGhyZWFkTm9ybWFsV29ybGQoKV07CisgICAgc3RhdGljIFdlYlNjcmlwdFdvcmxkICp3
b3JsZCA9IFtbV2ViU2NyaXB0V29ybGQgYWxsb2NdIGluaXRXaXRoV29ybGQ6bWFpblRocmVhZE5v
cm1hbFdvcmxkKCldOwogICAgIHJldHVybiB3b3JsZDsKIH0KIApAQCAtMTMxLDcgKzEyNyw3IEBA
ICsgKFdlYlNjcmlwdFdvcmxkICopZmluZE9yQ3JlYXRlV29ybGQ6KERPTVdyYXBwZXJXb3JsZCYp
d29ybGQKICAgICBpZiAoV2ViU2NyaXB0V29ybGQgKmV4aXN0aW5nV29ybGQgPSBhbGxXb3JsZHMo
KS5nZXQoJndvcmxkKSkKICAgICAgICAgcmV0dXJuIGV4aXN0aW5nV29ybGQ7CiAKLSAgICByZXR1
cm4gW1tbc2VsZiBhbGxvY10gaW5pdFdpdGhXb3JsZDomd29ybGRdIGF1dG9yZWxlYXNlXTsKKyAg
ICByZXR1cm4gW1tbc2VsZiBhbGxvY10gaW5pdFdpdGhXb3JsZDp3b3JsZF0gYXV0b3JlbGVhc2Vd
OwogfQogCiBAZW5kCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZp
ZXdEYXRhLmggYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXdEYXRhLmgKaW5kZXgg
ODhmNjkyYzVjY2Y4ZDk1NTkwNDlkZDYyYWMyODk4NGI3YWRlNjhjYS4uNmMzNjkyODY3N2JmNjUz
NjRlYWJkY2M1NmUwOTQ1YzEwNmMyZTY5MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMv
V2ViVmlldy9XZWJWaWV3RGF0YS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2Vi
Vmlld0RhdGEuaApAQCAtMTI4LDkgKzEyOCw5IEBAIHByaXZhdGU6CiAKIGNsYXNzIExheWVyRmx1
c2hDb250cm9sbGVyIDogcHVibGljIFJlZkNvdW50ZWQ8TGF5ZXJGbHVzaENvbnRyb2xsZXI+LCBw
dWJsaWMgV2ViQ29yZTo6TGF5ZXJGbHVzaFNjaGVkdWxlckNsaWVudCB7CiBwdWJsaWM6Ci0gICAg
c3RhdGljIFBhc3NSZWZQdHI8TGF5ZXJGbHVzaENvbnRyb2xsZXI+IGNyZWF0ZShXZWJWaWV3KiB3
ZWJWaWV3KQorICAgIHN0YXRpYyBSZWY8TGF5ZXJGbHVzaENvbnRyb2xsZXI+IGNyZWF0ZShXZWJW
aWV3KiB3ZWJWaWV3KQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBMYXllckZs
dXNoQ29udHJvbGxlcih3ZWJWaWV3KSk7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IExh
eWVyRmx1c2hDb250cm9sbGVyKHdlYlZpZXcpKTsKICAgICB9CiAgICAgCiAgICAgdmlydHVhbCBi
b29sIGZsdXNoTGF5ZXJzKCk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>310005</attachid>
            <date>2017-05-12 20:22:24 -0700</date>
            <delta_ts>2017-05-12 22:26:16 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-172066-20170512202223.patch</filename>
            <type>text/plain</type>
            <size>59035</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjE2ODEwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2lv
cy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2lvcy9DaGFuZ2VMb2cKaW5kZXggZGNhMWI1ZTlk
OGFmZTM4ZTE5NGRhYzAxNGE1OWQxNDk5MTQwZGIzYi4uZGQ1NzZjOGNkYjg1YzJmNDllZjM5ODhi
YjFmMDAxMjkwM2JjMWI5ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9pb3MvQ2hhbmdlTG9n
CisrKyBiL1NvdXJjZS9XZWJLaXQvaW9zL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDE3
LTA1LTEyICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgRHJvcCB1
c2VzIG9mIFBhc3NSZWZQdHIgaW4gV2ViS2l0L21hYworICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTcyMDY2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgQnVpbGQgZml4LgorCisgICAgICAgICogTWlzYy9XZWJH
ZW9sb2NhdGlvblByb3ZpZGVySU9TLm1tOgorCiAyMDE3LTA1LTAxICBDaHJpcyBEdW1leiAgPGNk
dW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgUmVtb3ZlIHNvbWUgdXNhZ2Ugb2YgUGFzc1JlZlB0
ciBpbiBlZGl0aW5nIGNvZGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxv
ZyBiL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwppbmRleCA2MWRlOTA3YzliMDYwNzJjODlk
MjAyMTk3M2VlOWZkZjU1YmI5MjRmLi4zNjk3ZTY3ZTc1NzQ1ODY2YWJhYmUxMGVmZTFkY2UzNjNl
M2JmMzA0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsOTEgQEAKKzIwMTctMDUtMTIgIENo
cmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBEcm9wIHVzZXMgb2YgUGFz
c1JlZlB0ciBpbiBXZWJLaXQvbWFjCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xNzIwNjYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICAqIEhpc3RvcnkvV2ViQmFja0ZvcndhcmRMaXN0SW50ZXJuYWwuaDoKKyAg
ICAgICAgKiBIaXN0b3J5L1dlYkhpc3RvcnlJdGVtLm1tOgorICAgICAgICAoa2l0KToKKyAgICAg
ICAgKC1bV2ViSGlzdG9yeUl0ZW0gaW5pdFdpdGhXZWJDb3JlSGlzdG9yeUl0ZW06XSk6CisgICAg
ICAgICogSGlzdG9yeS9XZWJIaXN0b3J5SXRlbUludGVybmFsLmg6CisgICAgICAgICogUGx1Z2lu
cy9Ib3N0ZWQvSG9zdGVkTmV0c2NhcGVQbHVnaW5TdHJlYW0uaDoKKyAgICAgICAgKFdlYktpdDo6
SG9zdGVkTmV0c2NhcGVQbHVnaW5TdHJlYW06OmNyZWF0ZSk6CisgICAgICAgICogUGx1Z2lucy9I
b3N0ZWQvTmV0c2NhcGVQbHVnaW5Ib3N0TWFuYWdlci5oOgorICAgICAgICAqIFBsdWdpbnMvSG9z
dGVkL05ldHNjYXBlUGx1Z2luSG9zdE1hbmFnZXIubW06CisgICAgICAgIChXZWJLaXQ6Ok5ldHNj
YXBlUGx1Z2luSG9zdE1hbmFnZXI6Omluc3RhbnRpYXRlUGx1Z2luKToKKyAgICAgICAgKiBQbHVn
aW5zL0hvc3RlZC9OZXRzY2FwZVBsdWdpbkluc3RhbmNlUHJveHkuaDoKKyAgICAgICAgKiBQbHVn
aW5zL0hvc3RlZC9OZXRzY2FwZVBsdWdpbkluc3RhbmNlUHJveHkubW06CisgICAgICAgIChXZWJL
aXQ6Ok5ldHNjYXBlUGx1Z2luSW5zdGFuY2VQcm94eTo6UGx1Z2luUmVxdWVzdDo6Y3JlYXRlKToK
KyAgICAgICAgKFdlYktpdDo6TmV0c2NhcGVQbHVnaW5JbnN0YW5jZVByb3h5OjpjcmVhdGUpOgor
ICAgICAgICAoV2ViS2l0OjpOZXRzY2FwZVBsdWdpbkluc3RhbmNlUHJveHk6OnNldE1hbnVhbFN0
cmVhbSk6CisgICAgICAgICogUGx1Z2lucy9Ib3N0ZWQvUHJveHlJbnN0YW5jZS5oOgorICAgICAg
ICAoV2ViS2l0OjpQcm94eUluc3RhbmNlOjpjcmVhdGUpOgorICAgICAgICAqIFBsdWdpbnMvSG9z
dGVkL1Byb3h5SW5zdGFuY2UubW06CisgICAgICAgIChXZWJLaXQ6OlByb3h5SW5zdGFuY2U6OlBy
b3h5SW5zdGFuY2UpOgorICAgICAgICAoV2ViS2l0OjpQcm94eUluc3RhbmNlOjpuZXdSdW50aW1l
T2JqZWN0KToKKyAgICAgICAgKiBQbHVnaW5zL0hvc3RlZC9Qcm94eVJ1bnRpbWVPYmplY3QuaDoK
KyAgICAgICAgKFdlYktpdDo6UHJveHlSdW50aW1lT2JqZWN0OjpjcmVhdGUpOgorICAgICAgICAq
IFBsdWdpbnMvSG9zdGVkL1Byb3h5UnVudGltZU9iamVjdC5tbToKKyAgICAgICAgKFdlYktpdDo6
UHJveHlSdW50aW1lT2JqZWN0OjpQcm94eVJ1bnRpbWVPYmplY3QpOgorICAgICAgICAqIFBsdWdp
bnMvSG9zdGVkL1dlYkhvc3RlZE5ldHNjYXBlUGx1Z2luVmlldy5oOgorICAgICAgICAqIFBsdWdp
bnMvSG9zdGVkL1dlYkhvc3RlZE5ldHNjYXBlUGx1Z2luVmlldy5tbToKKyAgICAgICAgKC1bV2Vi
SG9zdGVkTmV0c2NhcGVQbHVnaW5WaWV3IGluaXRXaXRoRnJhbWU6cGx1Z2luUGFja2FnZTpVUkw6
YmFzZVVSTDpNSU1FVHlwZTphdHRyaWJ1dGVLZXlzOmF0dHJpYnV0ZVZhbHVlczpsb2FkTWFudWFs
bHk6ZWxlbWVudDpdKToKKyAgICAgICAgKiBQbHVnaW5zL1dlYkJhc2VOZXRzY2FwZVBsdWdpblZp
ZXcuaDoKKyAgICAgICAgKiBQbHVnaW5zL1dlYkJhc2VOZXRzY2FwZVBsdWdpblZpZXcubW06Cisg
ICAgICAgICgtW1dlYkJhc2VOZXRzY2FwZVBsdWdpblZpZXcgaW5pdFdpdGhGcmFtZTpwbHVnaW5Q
YWNrYWdlOlVSTDpiYXNlVVJMOk1JTUVUeXBlOmF0dHJpYnV0ZUtleXM6YXR0cmlidXRlVmFsdWVz
OmxvYWRNYW51YWxseTplbGVtZW50Ol0pOgorICAgICAgICAqIFBsdWdpbnMvV2ViTmV0c2NhcGVQ
bHVnaW5TdHJlYW0uaDoKKyAgICAgICAgKFdlYk5ldHNjYXBlUGx1Z2luU3RyZWFtOjpjcmVhdGUp
OgorICAgICAgICAqIFBsdWdpbnMvV2ViTmV0c2NhcGVQbHVnaW5WaWV3Lmg6CisgICAgICAgICog
UGx1Z2lucy9XZWJOZXRzY2FwZVBsdWdpblZpZXcubW06CisgICAgICAgICgtW1dlYk5ldHNjYXBl
UGx1Z2luVmlldyBpbml0V2l0aEZyYW1lOnBsdWdpblBhY2thZ2U6VVJMOmJhc2VVUkw6TUlNRVR5
cGU6YXR0cmlidXRlS2V5czphdHRyaWJ1dGVWYWx1ZXM6bG9hZE1hbnVhbGx5OmVsZW1lbnQ6XSk6
CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lm1tOgorICAgICAgICAq
IFdlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5tbToKKyAgICAgICAgKiBXZWJDb3JlU3Vw
cG9ydC9XZWJOb3RpZmljYXRpb25DbGllbnQubW06CisgICAgICAgIChXZWJOb3RpZmljYXRpb25D
bGllbnQ6OnJlcXVlc3RQZXJtaXNzaW9uKToKKyAgICAgICAgKC1bV2ViTm90aWZpY2F0aW9uUG9s
aWN5TGlzdGVuZXIgaW5pdFdpdGhDYWxsYmFjazpdKToKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9y
dC9XZWJPcGVuUGFuZWxSZXN1bHRMaXN0ZW5lci5tbToKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9y
dC9XZWJVc2VyTWVkaWFDbGllbnQubW06CisgICAgICAgIChXZWJVc2VyTWVkaWFDbGllbnQ6OnJl
cXVlc3RVc2VyTWVkaWFBY2Nlc3MpOgorICAgICAgICAoV2ViVXNlck1lZGlhQ2xpZW50OjplbnVt
ZXJhdGVNZWRpYURldmljZXMpOgorICAgICAgICAoLVtXZWJVc2VyTWVkaWFQb2xpY3lMaXN0ZW5l
ciBpbml0V2l0aFVzZXJNZWRpYVJlcXVlc3Q6XSk6CisgICAgICAgICgtW1dlYlVzZXJNZWRpYVBv
bGljeUNoZWNrZXJMaXN0ZW5lciBpbml0V2l0aE1lZGlhRGV2aWNlc0VudW1lcmF0aW9uUmVxdWVz
dDpdKToKKyAgICAgICAgKiBXZWJWaWV3L1dlYkFyY2hpdmUubW06CisgICAgICAgICgtW1dlYkFy
Y2hpdmVQcml2YXRlIGluaXRXaXRoQ29yZUFyY2hpdmU6XSk6CisgICAgICAgICgtW1dlYkFyY2hp
dmVQcml2YXRlIHNldENvcmVBcmNoaXZlOl0pOgorICAgICAgICAoLVtXZWJBcmNoaXZlIGluaXRX
aXRoRGF0YTpdKToKKyAgICAgICAgKC1bV2ViQXJjaGl2ZSBzdWJmcmFtZUFyY2hpdmVzXSk6Cisg
ICAgICAgICgtW1dlYkFyY2hpdmUgX2luaXRXaXRoQ29yZUxlZ2FjeVdlYkFyY2hpdmU6XSk6Cisg
ICAgICAgICogV2ViVmlldy9XZWJBcmNoaXZlSW50ZXJuYWwuaDoKKyAgICAgICAgKiBXZWJWaWV3
L1dlYkRhdGFTb3VyY2UubW06CisgICAgICAgIChXZWJEYXRhU291cmNlUHJpdmF0ZTo6V2ViRGF0
YVNvdXJjZVByaXZhdGUpOgorICAgICAgICAoV2ViRGF0YVNvdXJjZVByaXZhdGU6On5XZWJEYXRh
U291cmNlUHJpdmF0ZSk6CisgICAgICAgICgtW1dlYkRhdGFTb3VyY2UgX2luaXRXaXRoRG9jdW1l
bnRMb2FkZXI6XSk6CisgICAgICAgICogV2ViVmlldy9XZWJEYXRhU291cmNlSW50ZXJuYWwuaDoK
KyAgICAgICAgKiBXZWJWaWV3L1dlYkRldmljZU9yaWVudGF0aW9uLm1tOgorICAgICAgICAoLVtX
ZWJEZXZpY2VPcmllbnRhdGlvbiBpbml0V2l0aENvcmVEZXZpY2VPcmllbnRhdGlvbjpdKToKKyAg
ICAgICAgKiBXZWJWaWV3L1dlYkRldmljZU9yaWVudGF0aW9uSW50ZXJuYWwuaDoKKyAgICAgICAg
KiBXZWJWaWV3L1dlYkZyYW1lLm1tOgorICAgICAgICAoLVtXZWJGcmFtZSBfY29udmVydFRvRE9N
UmFuZ2U6XSk6CisgICAgICAgICgtW1dlYkZyYW1lIF9jb252ZXJ0VG9ET01SYW5nZTpyYW5nZUlz
UmVsYXRpdmVUbzpdKToKKyAgICAgICAgKiBXZWJWaWV3L1dlYkZyYW1lSW50ZXJuYWwuaDoKKyAg
ICAgICAgKiBXZWJWaWV3L1dlYkZ1bGxTY3JlZW5Db250cm9sbGVyLmg6CisgICAgICAgICogV2Vi
Vmlldy9XZWJGdWxsU2NyZWVuQ29udHJvbGxlci5tbToKKyAgICAgICAgKC1bV2ViRnVsbFNjcmVl
bkNvbnRyb2xsZXIgc2V0RWxlbWVudDpdKToKKyAgICAgICAgKiBXZWJWaWV3L1dlYkdlb2xvY2F0
aW9uUG9zaXRpb24ubW06CisgICAgICAgICgtW1dlYkdlb2xvY2F0aW9uUG9zaXRpb25JbnRlcm5h
bCBpbml0V2l0aENvcmVHZW9sb2NhdGlvblBvc2l0aW9uOl0pOgorICAgICAgICAoLVtXZWJHZW9s
b2NhdGlvblBvc2l0aW9uIGluaXRXaXRoR2VvbG9jYXRpb25Qb3NpdGlvbjpdKToKKyAgICAgICAg
KiBXZWJWaWV3L1dlYkhUTUxWaWV3Lm1tOgorICAgICAgICAoY3VycmVudEtleWJvYXJkRXZlbnQp
OgorICAgICAgICAqIFdlYlZpZXcvV2ViUmVzb3VyY2UubW06CisgICAgICAgICogV2ViVmlldy9X
ZWJTY3JpcHRXb3JsZC5tbToKKyAgICAgICAgKC1bV2ViU2NyaXB0V29ybGQgaW5pdFdpdGhXb3Js
ZDpdKToKKyAgICAgICAgKCtbV2ViU2NyaXB0V29ybGQgc3RhbmRhcmRXb3JsZF0pOgorICAgICAg
ICAoK1tXZWJTY3JpcHRXb3JsZCBmaW5kT3JDcmVhdGVXb3JsZDpdKToKKyAgICAgICAgKiBXZWJW
aWV3L1dlYlZpZXdEYXRhLmg6CisgICAgICAgIChMYXllckZsdXNoQ29udHJvbGxlcjo6Y3JlYXRl
KToKKwogMjAxNy0wNS0xMSAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAg
ICAgIERyb3AgcmVtYWluaW5nIHVzZXMgb2YgUGFzc1JlZlB0ciBpbiBXZWJDb3JlCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L2lvcy9NaXNjL1dlYkdlb2xvY2F0aW9uUHJvdmlkZXJJT1MubW0g
Yi9Tb3VyY2UvV2ViS2l0L2lvcy9NaXNjL1dlYkdlb2xvY2F0aW9uUHJvdmlkZXJJT1MubW0KaW5k
ZXggODYwYzBhMzZhMjNkZGEyOWJiODVlOTI0OTk2ZDY2MGIzZDExYTZmZC4uMGQ1M2FmMDM4NWJj
NDE4M2FmODY4NmI2YzM3NDNkYjVmYzVjMTQ4YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9p
b3MvTWlzYy9XZWJHZW9sb2NhdGlvblByb3ZpZGVySU9TLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQv
aW9zL01pc2MvV2ViR2VvbG9jYXRpb25Qcm92aWRlcklPUy5tbQpAQCAtNDQsNyArNDQsNyBAQAog
dXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKIEBpbnRlcmZhY2UgV2ViR2VvbG9jYXRpb25Qb3Np
dGlvbiAoSW50ZXJuYWwpCi0tIChpZClpbml0V2l0aEdlb2xvY2F0aW9uUG9zaXRpb246KFJlZlB0
cjxHZW9sb2NhdGlvblBvc2l0aW9uPiljb3JlR2VvbG9jYXRpb25Qb3NpdGlvbjsKKy0gKGlkKWlu
aXRXaXRoR2VvbG9jYXRpb25Qb3NpdGlvbjooUmVmUHRyPEdlb2xvY2F0aW9uUG9zaXRpb24+JiYp
Y29yZUdlb2xvY2F0aW9uUG9zaXRpb247CiBAZW5kCiAKIC8vIENvcmVMb2NhdGlvbiBydW5zIGlu
IHRoZSBtYWluIHRocmVhZC4gV2ViR2VvbG9jYXRpb25Qcm92aWRlcklPUyBsaXZlcyBvbiB0aGUg
V2ViVGhyZWFkLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvSGlzdG9yeS9XZWJCYWNr
Rm9yd2FyZExpc3RJbnRlcm5hbC5oIGIvU291cmNlL1dlYktpdC9tYWMvSGlzdG9yeS9XZWJCYWNr
Rm9yd2FyZExpc3RJbnRlcm5hbC5oCmluZGV4IDhkZTBlMzE5ZDZiYWUxYWQ0ODljMWVlMjhmNTRj
MjhhMjExNzIwYWIuLmU1YzAxNTcyYWZkZWM0MzVmZjAxMGM1YzQ3MzNjOTUzNDViNmU3OTkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL0hpc3RvcnkvV2ViQmFja0ZvcndhcmRMaXN0SW50
ZXJuYWwuaAorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9IaXN0b3J5L1dlYkJhY2tGb3J3YXJkTGlz
dEludGVybmFsLmgKQEAgLTI3LDcgKzI3LDcgQEAKICAqLwogCiAjaW1wb3J0IDxXZWJLaXRMZWdh
Y3kvV2ViQmFja0ZvcndhcmRMaXN0Lmg+Ci0jaW1wb3J0IDx3dGYvUGFzc1JlZlB0ci5oPgorI2lt
cG9ydCA8d3RmL1JlZi5oPgogCiBjbGFzcyBCYWNrRm9yd2FyZExpc3Q7CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvbWFjL0hpc3RvcnkvV2ViSGlzdG9yeUl0ZW0ubW0gYi9Tb3VyY2UvV2Vi
S2l0L21hYy9IaXN0b3J5L1dlYkhpc3RvcnlJdGVtLm1tCmluZGV4IDI1YTQzMzIwN2EwZTMyZjE0
Y2E0Yjk5ZWI1NThkYTk5NzgxNDU1MTcuLmFlYzA2ZmZkNmI4ODQ4YjY5Y2FhN2YyNjA5MGE3Nzc4
MjNkNzdiMjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL0hpc3RvcnkvV2ViSGlzdG9y
eUl0ZW0ubW0KKysrIGIvU291cmNlL1dlYktpdC9tYWMvSGlzdG9yeS9XZWJIaXN0b3J5SXRlbS5t
bQpAQCAtMjY3LDcgKzI2Nyw3IEBAIFdlYkhpc3RvcnlJdGVtICpraXQoSGlzdG9yeUl0ZW0qIGl0
ZW0pCiAgICAgaWYgKGtpdEl0ZW0pCiAgICAgICAgIHJldHVybiBraXRJdGVtOwogICAgIAotICAg
IHJldHVybiBbW1tXZWJIaXN0b3J5SXRlbSBhbGxvY10gaW5pdFdpdGhXZWJDb3JlSGlzdG9yeUl0
ZW06aXRlbV0gYXV0b3JlbGVhc2VdOworICAgIHJldHVybiBbW1tXZWJIaXN0b3J5SXRlbSBhbGxv
Y10gaW5pdFdpdGhXZWJDb3JlSGlzdG9yeUl0ZW06Kml0ZW1dIGF1dG9yZWxlYXNlXTsKIH0KIAog
KyAoV2ViSGlzdG9yeUl0ZW0gKillbnRyeVdpdGhVUkw6KE5TVVJMICopVVJMCkBAIC0yODQsNyAr
Mjg0LDcgQEAgLSAoaWQpaW5pdFdpdGhVUkxTdHJpbmc6KE5TU3RyaW5nICopVVJMU3RyaW5nIHRp
dGxlOihOU1N0cmluZyAqKXRpdGxlIGRpc3BsYXlUaXQKICAgICByZXR1cm4gaXRlbTsKIH0KIAot
LSAoaWQpaW5pdFdpdGhXZWJDb3JlSGlzdG9yeUl0ZW06KFBhc3NSZWZQdHI8SGlzdG9yeUl0ZW0+
KWl0ZW0KKy0gKGlkKWluaXRXaXRoV2ViQ29yZUhpc3RvcnlJdGVtOihSZWY8SGlzdG9yeUl0ZW0+
JiYpaXRlbQogeyAgIAogICAgIFdlYkNvcmVUaHJlYWRWaW9sYXRpb25DaGVja1JvdW5kT25lKCk7
CiAgICAgLy8gTmVlZCB0byB0ZWxsIFdlYkNvcmUgd2hhdCBmdW5jdGlvbiB0byBjYWxsIGZvciB0
aGUgCkBAIC0yOTgsNyArMjk4LDcgQEAgLSAoaWQpaW5pdFdpdGhXZWJDb3JlSGlzdG9yeUl0ZW06
KFBhc3NSZWZQdHI8SGlzdG9yeUl0ZW0+KWl0ZW0KICAgICAgICAgcmV0dXJuIG5pbDsKIAogICAg
IF9wcml2YXRlID0gW1tXZWJIaXN0b3J5SXRlbVByaXZhdGUgYWxsb2NdIGluaXRdOwotICAgIF9w
cml2YXRlLT5faGlzdG9yeUl0ZW0gPSBpdGVtOworICAgIF9wcml2YXRlLT5faGlzdG9yeUl0ZW0g
PSBXVEZNb3ZlKGl0ZW0pOwogCiAgICAgQVNTRVJUKCFoaXN0b3J5SXRlbVdyYXBwZXJzKCkuZ2V0
KGNvcmUoX3ByaXZhdGUpKSk7CiAgICAgaGlzdG9yeUl0ZW1XcmFwcGVycygpLnNldChjb3JlKF9w
cml2YXRlKSwgc2VsZik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9IaXN0b3J5L1dl
Ykhpc3RvcnlJdGVtSW50ZXJuYWwuaCBiL1NvdXJjZS9XZWJLaXQvbWFjL0hpc3RvcnkvV2ViSGlz
dG9yeUl0ZW1JbnRlcm5hbC5oCmluZGV4IDBlMjBlN2FmY2NjOWRjODdiM2IxMWUzOWY5NTNiYTgz
YWY1MjRjMWQuLjc5MTRkMzlmOWI3ZGEwN2UyNjhiYThlNTYyMmI0N2EzNjc2MmVlMmIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL0hpc3RvcnkvV2ViSGlzdG9yeUl0ZW1JbnRlcm5hbC5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL0hpc3RvcnkvV2ViSGlzdG9yeUl0ZW1JbnRlcm5hbC5o
CkBAIC00Nyw3ICs0Nyw3IEBAIGV4dGVybiB2b2lkIFdLTm90aWZ5SGlzdG9yeUl0ZW1DaGFuZ2Vk
KFdlYkNvcmU6Okhpc3RvcnlJdGVtKik7CiAKIC0gKGlkKWluaXRXaXRoVVJMU3RyaW5nOihOU1N0
cmluZyAqKVVSTFN0cmluZyB0aXRsZTooTlNTdHJpbmcgKil0aXRsZSBkaXNwbGF5VGl0bGU6KE5T
U3RyaW5nICopZGlzcGxheVRpdGxlIGxhc3RWaXNpdGVkVGltZUludGVydmFsOihOU1RpbWVJbnRl
cnZhbCl0aW1lOwogLSAoaWQpaW5pdEZyb21EaWN0aW9uYXJ5UmVwcmVzZW50YXRpb246KE5TRGlj
dGlvbmFyeSAqKWRpY3Q7Ci0tIChpZClpbml0V2l0aFdlYkNvcmVIaXN0b3J5SXRlbTooUGFzc1Jl
ZlB0cjxXZWJDb3JlOjpIaXN0b3J5SXRlbT4paXRlbTsKKy0gKGlkKWluaXRXaXRoV2ViQ29yZUhp
c3RvcnlJdGVtOihSZWY8V2ViQ29yZTo6SGlzdG9yeUl0ZW0+JiYpaXRlbTsKIAogLSAodm9pZClz
ZXRUaXRsZTooTlNTdHJpbmcgKil0aXRsZTsKIC0gKHZvaWQpX3Zpc2l0ZWRXaXRoVGl0bGU6KE5T
U3RyaW5nICopdGl0bGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9QbHVnaW5zL0hv
c3RlZC9Ib3N0ZWROZXRzY2FwZVBsdWdpblN0cmVhbS5oIGIvU291cmNlL1dlYktpdC9tYWMvUGx1
Z2lucy9Ib3N0ZWQvSG9zdGVkTmV0c2NhcGVQbHVnaW5TdHJlYW0uaAppbmRleCA4ZGRkZTg4NTYx
NTU5ZWM2Y2Q1NmNkMjkyOGRkZDIwZjY0ODE4MzY5Li5hNjE2MGYwZjYyNWU3NmJiYmQ4MGE4MzZm
Mjg5ZDQ3MGM1YzhmMzU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9QbHVnaW5zL0hv
c3RlZC9Ib3N0ZWROZXRzY2FwZVBsdWdpblN0cmVhbS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFj
L1BsdWdpbnMvSG9zdGVkL0hvc3RlZE5ldHNjYXBlUGx1Z2luU3RyZWFtLmgKQEAgLTMwLDcgKzMw
LDcgQEAKIAogI2luY2x1ZGUgPFdlYkNvcmUvTmV0c2NhcGVQbHVnSW5TdHJlYW1Mb2FkZXIuaD4K
ICNpbmNsdWRlIDxXZWJLaXRMZWdhY3kvbnBhcGkuaD4KLSNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0
ci5oPgorI2luY2x1ZGUgPHd0Zi9SZWYuaD4KICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgog
I2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KICNpbmNsdWRlIDx3dGYvUmV0YWluUHRyLmg+CkBAIC00
NywxMyArNDcsMTMgQEAgY2xhc3MgTmV0c2NhcGVQbHVnaW5JbnN0YW5jZVByb3h5OwogY2xhc3Mg
SG9zdGVkTmV0c2NhcGVQbHVnaW5TdHJlYW0gOiBwdWJsaWMgUmVmQ291bnRlZDxIb3N0ZWROZXRz
Y2FwZVBsdWdpblN0cmVhbT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICwgcHJp
dmF0ZSBXZWJDb3JlOjpOZXRzY2FwZVBsdWdJblN0cmVhbUxvYWRlckNsaWVudCB7CiBwdWJsaWM6
Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8SG9zdGVkTmV0c2NhcGVQbHVnaW5TdHJlYW0+IGNyZWF0
ZShOZXRzY2FwZVBsdWdpbkluc3RhbmNlUHJveHkqIGluc3RhbmNlLCB1aW50MzJfdCBzdHJlYW1J
RCwgTlNVUkxSZXF1ZXN0ICpyZXF1ZXN0KQorICAgIHN0YXRpYyBSZWY8SG9zdGVkTmV0c2NhcGVQ
bHVnaW5TdHJlYW0+IGNyZWF0ZShOZXRzY2FwZVBsdWdpbkluc3RhbmNlUHJveHkqIGluc3RhbmNl
LCB1aW50MzJfdCBzdHJlYW1JRCwgTlNVUkxSZXF1ZXN0ICpyZXF1ZXN0KQogICAgIHsKLSAgICAg
ICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBIb3N0ZWROZXRzY2FwZVBsdWdpblN0cmVhbShpbnN0YW5j
ZSwgc3RyZWFtSUQsIHJlcXVlc3QpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgSG9z
dGVkTmV0c2NhcGVQbHVnaW5TdHJlYW0oaW5zdGFuY2UsIHN0cmVhbUlELCByZXF1ZXN0KSk7CiAg
ICAgfQotICAgIHN0YXRpYyBQYXNzUmVmUHRyPEhvc3RlZE5ldHNjYXBlUGx1Z2luU3RyZWFtPiBj
cmVhdGUoTmV0c2NhcGVQbHVnaW5JbnN0YW5jZVByb3h5KiBpbnN0YW5jZSwgV2ViQ29yZTo6RnJh
bWVMb2FkZXIqIGZyYW1lTG9hZGVyKQorICAgIHN0YXRpYyBSZWY8SG9zdGVkTmV0c2NhcGVQbHVn
aW5TdHJlYW0+IGNyZWF0ZShOZXRzY2FwZVBsdWdpbkluc3RhbmNlUHJveHkqIGluc3RhbmNlLCBX
ZWJDb3JlOjpGcmFtZUxvYWRlciogZnJhbWVMb2FkZXIpCiAgICAgewotICAgICAgICByZXR1cm4g
YWRvcHRSZWYobmV3IEhvc3RlZE5ldHNjYXBlUGx1Z2luU3RyZWFtKGluc3RhbmNlLCBmcmFtZUxv
YWRlcikpOworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBIb3N0ZWROZXRzY2FwZVBsdWdp
blN0cmVhbShpbnN0YW5jZSwgZnJhbWVMb2FkZXIpKTsKICAgICB9CiAKICAgICB+SG9zdGVkTmV0
c2NhcGVQbHVnaW5TdHJlYW0oKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1BsdWdp
bnMvSG9zdGVkL05ldHNjYXBlUGx1Z2luSG9zdE1hbmFnZXIuaCBiL1NvdXJjZS9XZWJLaXQvbWFj
L1BsdWdpbnMvSG9zdGVkL05ldHNjYXBlUGx1Z2luSG9zdE1hbmFnZXIuaAppbmRleCBkODQ5NDk3
N2RhMjZkNzAxNjNlZDYyYzM0ZDFiY2JjMWEzY2ZiZDZhLi4yZDI0ZmQ3M2NhOGZlN2QyMDIzYjZk
OTFlMzc0ODMzMzRjMWUzZDIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9QbHVnaW5z
L0hvc3RlZC9OZXRzY2FwZVBsdWdpbkhvc3RNYW5hZ2VyLmgKKysrIGIvU291cmNlL1dlYktpdC9t
YWMvUGx1Z2lucy9Ib3N0ZWQvTmV0c2NhcGVQbHVnaW5Ib3N0TWFuYWdlci5oCkBAIC0yOSw4ICsy
OSw4IEBACiAjZGVmaW5lIE5ldHNjYXBlUGx1Z2luSG9zdE1hbmFnZXJfaAogCiAjaW1wb3J0IDx3
dGYvSGFzaE1hcC5oPgotI2ltcG9ydCA8d3RmL1Bhc3NSZWZQdHIuaD4KICNpbXBvcnQgPHd0Zi9O
ZXZlckRlc3Ryb3llZC5oPgorI2ltcG9ydCA8d3RmL1JlZlB0ci5oPgogI2ltcG9ydCA8d3RmL3Rl
eHQvU3RyaW5nSGFzaC5oPgogI2ltcG9ydCA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKQEAgLTQ1
LDcgKzQ1LDcgQEAgY2xhc3MgTmV0c2NhcGVQbHVnaW5Ib3N0TWFuYWdlciB7CiBwdWJsaWM6CiAg
ICAgc3RhdGljIE5ldHNjYXBlUGx1Z2luSG9zdE1hbmFnZXImIHNpbmdsZXRvbigpOwogICAgIAot
ICAgIFBhc3NSZWZQdHI8TmV0c2NhcGVQbHVnaW5JbnN0YW5jZVByb3h5PiBpbnN0YW50aWF0ZVBs
dWdpbihjb25zdCBTdHJpbmcmIHBsdWdpblBhdGgsIGNwdV90eXBlX3QgcGx1Z2luQXJjaGl0ZWN0
dXJlLCBjb25zdCBTdHJpbmcmIGJ1bmRsZUlkZW50aWZpZXIsIFdlYkhvc3RlZE5ldHNjYXBlUGx1
Z2luVmlldyAqLCBOU1N0cmluZyAqbWltZVR5cGUsIE5TQXJyYXkgKmF0dHJpYnV0ZUtleXMsIE5T
QXJyYXkgKmF0dHJpYnV0ZVZhbHVlcywgTlNTdHJpbmcgKnVzZXJBZ2VudCwgTlNVUkwgKnNvdXJj
ZVVSTCwgYm9vbCBmdWxsRnJhbWUsIGJvb2wgaXNQcml2YXRlQnJvd3NpbmdFbmFibGVkLCBib29s
IGlzQWNjZWxlcmF0ZWRDb21wb3NpdGluZ0VuYWJsZWQsIGJvb2wgaG9zdExheWVyc0luV2luZG93
U2VydmVyKTsKKyAgICBSZWZQdHI8TmV0c2NhcGVQbHVnaW5JbnN0YW5jZVByb3h5PiBpbnN0YW50
aWF0ZVBsdWdpbihjb25zdCBTdHJpbmcmIHBsdWdpblBhdGgsIGNwdV90eXBlX3QgcGx1Z2luQXJj
aGl0ZWN0dXJlLCBjb25zdCBTdHJpbmcmIGJ1bmRsZUlkZW50aWZpZXIsIFdlYkhvc3RlZE5ldHNj
YXBlUGx1Z2luVmlldyAqLCBOU1N0cmluZyAqbWltZVR5cGUsIE5TQXJyYXkgKmF0dHJpYnV0ZUtl
eXMsIE5TQXJyYXkgKmF0dHJpYnV0ZVZhbHVlcywgTlNTdHJpbmcgKnVzZXJBZ2VudCwgTlNVUkwg
KnNvdXJjZVVSTCwgYm9vbCBmdWxsRnJhbWUsIGJvb2wgaXNQcml2YXRlQnJvd3NpbmdFbmFibGVk
LCBib29sIGlzQWNjZWxlcmF0ZWRDb21wb3NpdGluZ0VuYWJsZWQsIGJvb2wgaG9zdExheWVyc0lu
V2luZG93U2VydmVyKTsKIAogICAgIHZvaWQgcGx1Z2luSG9zdERpZWQoTmV0c2NhcGVQbHVnaW5I
b3N0UHJveHkqKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvUGx1Z2lucy9Ib3N0
ZWQvTmV0c2NhcGVQbHVnaW5Ib3N0TWFuYWdlci5tbSBiL1NvdXJjZS9XZWJLaXQvbWFjL1BsdWdp
bnMvSG9zdGVkL05ldHNjYXBlUGx1Z2luSG9zdE1hbmFnZXIubW0KaW5kZXggZTRiN2M4OTlhNjVh
MjQzOGI4YjM2YWQ0Mzg3OGQ4YThiNWQ4ZTViYy4uNWI5NTRiODA2N2FkYTQ2NTcxOGQxNzExYTM1
OGYzZmY3NTJkMjE2NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvUGx1Z2lucy9Ib3N0
ZWQvTmV0c2NhcGVQbHVnaW5Ib3N0TWFuYWdlci5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9Q
bHVnaW5zL0hvc3RlZC9OZXRzY2FwZVBsdWdpbkhvc3RNYW5hZ2VyLm1tCkBAIC0yMTMsMTEgKzIx
MywxMSBAQCB2b2lkIE5ldHNjYXBlUGx1Z2luSG9zdE1hbmFnZXI6OnBsdWdpbkhvc3REaWVkKE5l
dHNjYXBlUGx1Z2luSG9zdFByb3h5KiBwbHVnaW5IbwogICAgIH0KIH0KIAotUGFzc1JlZlB0cjxO
ZXRzY2FwZVBsdWdpbkluc3RhbmNlUHJveHk+IE5ldHNjYXBlUGx1Z2luSG9zdE1hbmFnZXI6Omlu
c3RhbnRpYXRlUGx1Z2luKGNvbnN0IFN0cmluZyYgcGx1Z2luUGF0aCwgY3B1X3R5cGVfdCBwbHVn
aW5BcmNoaXRlY3R1cmUsIGNvbnN0IFN0cmluZyYgYnVuZGxlSWRlbnRpZmllciwgV2ViSG9zdGVk
TmV0c2NhcGVQbHVnaW5WaWV3ICpwbHVnaW5WaWV3LCBOU1N0cmluZyAqbWltZVR5cGUsIE5TQXJy
YXkgKmF0dHJpYnV0ZUtleXMsIE5TQXJyYXkgKmF0dHJpYnV0ZVZhbHVlcywgTlNTdHJpbmcgKnVz
ZXJBZ2VudCwgTlNVUkwgKnNvdXJjZVVSTCwgYm9vbCBmdWxsRnJhbWUsIGJvb2wgaXNQcml2YXRl
QnJvd3NpbmdFbmFibGVkLCBib29sIGlzQWNjZWxlcmF0ZWRDb21wb3NpdGluZ0VuYWJsZWQsIGJv
b2wgaG9zdExheWVyc0luV2luZG93U2VydmVyKQorUmVmUHRyPE5ldHNjYXBlUGx1Z2luSW5zdGFu
Y2VQcm94eT4gTmV0c2NhcGVQbHVnaW5Ib3N0TWFuYWdlcjo6aW5zdGFudGlhdGVQbHVnaW4oY29u
c3QgU3RyaW5nJiBwbHVnaW5QYXRoLCBjcHVfdHlwZV90IHBsdWdpbkFyY2hpdGVjdHVyZSwgY29u
c3QgU3RyaW5nJiBidW5kbGVJZGVudGlmaWVyLCBXZWJIb3N0ZWROZXRzY2FwZVBsdWdpblZpZXcg
KnBsdWdpblZpZXcsIE5TU3RyaW5nICptaW1lVHlwZSwgTlNBcnJheSAqYXR0cmlidXRlS2V5cywg
TlNBcnJheSAqYXR0cmlidXRlVmFsdWVzLCBOU1N0cmluZyAqdXNlckFnZW50LCBOU1VSTCAqc291
cmNlVVJMLCBib29sIGZ1bGxGcmFtZSwgYm9vbCBpc1ByaXZhdGVCcm93c2luZ0VuYWJsZWQsIGJv
b2wgaXNBY2NlbGVyYXRlZENvbXBvc2l0aW5nRW5hYmxlZCwgYm9vbCBob3N0TGF5ZXJzSW5XaW5k
b3dTZXJ2ZXIpCiB7CiAgICAgTmV0c2NhcGVQbHVnaW5Ib3N0UHJveHkqIGhvc3RQcm94eSA9IGhv
c3RGb3JQbHVnaW4ocGx1Z2luUGF0aCwgcGx1Z2luQXJjaGl0ZWN0dXJlLCBidW5kbGVJZGVudGlm
aWVyKTsKICAgICBpZiAoIWhvc3RQcm94eSkKLSAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIHJl
dHVybiBudWxscHRyOwogCiAgICAgUmV0YWluUHRyPE5TTXV0YWJsZURpY3Rpb25hcnk+IHByb3Bl
cnRpZXMgPSBhZG9wdE5TKFtbTlNNdXRhYmxlRGljdGlvbmFyeSBhbGxvY10gaW5pdF0pOwogICAg
IApAQCAtMjcyLDcgKzI3Miw3IEBAIFBhc3NSZWZQdHI8TmV0c2NhcGVQbHVnaW5JbnN0YW5jZVBy
b3h5PiBOZXRzY2FwZVBsdWdpbkhvc3RNYW5hZ2VyOjppbnN0YW50aWF0ZVBsCiAgICAgaW5zdGFu
Y2UtPnNldFJlbmRlckNvbnRleHRJRChyZXBseS0+bV9yZW5kZXJDb250ZXh0SUQpOwogICAgIGlu
c3RhbmNlLT5zZXRSZW5kZXJlclR5cGUocmVwbHktPm1fcmVuZGVyZXJUeXBlKTsKIAotICAgIHJl
dHVybiBXVEZNb3ZlKGluc3RhbmNlKTsKKyAgICByZXR1cm4gaW5zdGFuY2U7CiB9CiAKIHZvaWQg
TmV0c2NhcGVQbHVnaW5Ib3N0TWFuYWdlcjo6Y3JlYXRlUHJvcGVydHlMaXN0RmlsZShjb25zdCBT
dHJpbmcmIHBsdWdpblBhdGgsIGNwdV90eXBlX3QgcGx1Z2luQXJjaGl0ZWN0dXJlLCBjb25zdCBT
dHJpbmcmIGJ1bmRsZUlkZW50aWZpZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9Q
bHVnaW5zL0hvc3RlZC9OZXRzY2FwZVBsdWdpbkluc3RhbmNlUHJveHkuaCBiL1NvdXJjZS9XZWJL
aXQvbWFjL1BsdWdpbnMvSG9zdGVkL05ldHNjYXBlUGx1Z2luSW5zdGFuY2VQcm94eS5oCmluZGV4
IDZjYWUwMjcyNzE0OTUyZWI2YzE5MjNhOGQwZDI0ZjY5MjIwNTFiOWYuLjY1MjA1ZmM0YzdkNmQx
ZTY4N2E4YWJlYTU0NDdhN2Y2Zjk3ZDQxMDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFj
L1BsdWdpbnMvSG9zdGVkL05ldHNjYXBlUGx1Z2luSW5zdGFuY2VQcm94eS5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvbWFjL1BsdWdpbnMvSG9zdGVkL05ldHNjYXBlUGx1Z2luSW5zdGFuY2VQcm94eS5o
CkBAIC0zNiw3ICszNiw3IEBACiAjaW5jbHVkZSA8d3RmL0RlcXVlLmg+CiAjaW5jbHVkZSA8d3Rm
L0ZvcndhcmQuaD4KICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgotI2luY2x1ZGUgPHd0Zi9QYXNz
UmVmUHRyLmg+CisjaW5jbHVkZSA8d3RmL1JlZi5oPgogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVk
Lmg+CiAjaW5jbHVkZSA8d3RmL1JldGFpblB0ci5oPgogI2luY2x1ZGUgIldlYktpdFBsdWdpbkhv
c3RUeXBlcy5oIgpAQCAtNjAsNyArNjAsNyBAQCBjbGFzcyBQcm94eUluc3RhbmNlOwogICAgIAog
Y2xhc3MgTmV0c2NhcGVQbHVnaW5JbnN0YW5jZVByb3h5IDogcHVibGljIFJlZkNvdW50ZWQ8TmV0
c2NhcGVQbHVnaW5JbnN0YW5jZVByb3h5PiB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQ
dHI8TmV0c2NhcGVQbHVnaW5JbnN0YW5jZVByb3h5PiBjcmVhdGUoTmV0c2NhcGVQbHVnaW5Ib3N0
UHJveHkqLCBXZWJIb3N0ZWROZXRzY2FwZVBsdWdpblZpZXcgKiwgYm9vbCBmdWxsRnJhbWVQbHVn
aW4pOworICAgIHN0YXRpYyBSZWY8TmV0c2NhcGVQbHVnaW5JbnN0YW5jZVByb3h5PiBjcmVhdGUo
TmV0c2NhcGVQbHVnaW5Ib3N0UHJveHkqLCBXZWJIb3N0ZWROZXRzY2FwZVBsdWdpblZpZXcgKiwg
Ym9vbCBmdWxsRnJhbWVQbHVnaW4pOwogICAgIH5OZXRzY2FwZVBsdWdpbkluc3RhbmNlUHJveHko
KTsKICAgICAKICAgICB1aW50MzJfdCBwbHVnaW5JRCgpIGNvbnN0IApAQCAtODEsNyArODEsNyBA
QCBwdWJsaWM6CiAgICAgYm9vbCBjYW5jZWxTdHJlYW1Mb2FkKHVpbnQzMl90IHN0cmVhbUlELCBO
UFJlYXNvbik7CiAgICAgdm9pZCBkaXNjb25uZWN0U3RyZWFtKEhvc3RlZE5ldHNjYXBlUGx1Z2lu
U3RyZWFtKik7CiAgICAgCi0gICAgdm9pZCBzZXRNYW51YWxTdHJlYW0oUGFzc1JlZlB0cjxIb3N0
ZWROZXRzY2FwZVBsdWdpblN0cmVhbT4pOworICAgIHZvaWQgc2V0TWFudWFsU3RyZWFtKFJlZjxI
b3N0ZWROZXRzY2FwZVBsdWdpblN0cmVhbT4mJik7CiAgICAgSG9zdGVkTmV0c2NhcGVQbHVnaW5T
dHJlYW0qIG1hbnVhbFN0cmVhbSgpIGNvbnN0IHsgcmV0dXJuIG1fbWFudWFsU3RyZWFtLmdldCgp
OyB9CiAgICAgCiAgICAgdm9pZCBwbHVnaW5Ib3N0RGllZCgpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9tYWMvUGx1Z2lucy9Ib3N0ZWQvTmV0c2NhcGVQbHVnaW5JbnN0YW5jZVByb3h5Lm1t
IGIvU291cmNlL1dlYktpdC9tYWMvUGx1Z2lucy9Ib3N0ZWQvTmV0c2NhcGVQbHVnaW5JbnN0YW5j
ZVByb3h5Lm1tCmluZGV4IGY2ODU4ZDNkYTEwNmJjMzI1NDgxYmI1ODFjZDcxYzYxMjRjMDVlNzIu
LmZiODk3NGQ5MDUwZjkyZDdkYjA4ZDFkY2UzZGIyZTllNWU0MDNkZWQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvbWFjL1BsdWdpbnMvSG9zdGVkL05ldHNjYXBlUGx1Z2luSW5zdGFuY2VQcm94
eS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9QbHVnaW5zL0hvc3RlZC9OZXRzY2FwZVBsdWdp
bkluc3RhbmNlUHJveHkubW0KQEAgLTgxLDkgKzgxLDkgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiAK
IGNsYXNzIE5ldHNjYXBlUGx1Z2luSW5zdGFuY2VQcm94eTo6UGx1Z2luUmVxdWVzdCA6IHB1Ymxp
YyBSZWZDb3VudGVkPE5ldHNjYXBlUGx1Z2luSW5zdGFuY2VQcm94eTo6UGx1Z2luUmVxdWVzdD4g
ewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFBsdWdpblJlcXVlc3Q+IGNyZWF0ZSh1
aW50MzJfdCByZXF1ZXN0SUQsIE5TVVJMUmVxdWVzdCogcmVxdWVzdCwgTlNTdHJpbmcqIGZyYW1l
TmFtZSwgYm9vbCBhbGxvd1BvcHVwcykKKyAgICBzdGF0aWMgUmVmPFBsdWdpblJlcXVlc3Q+IGNy
ZWF0ZSh1aW50MzJfdCByZXF1ZXN0SUQsIE5TVVJMUmVxdWVzdCogcmVxdWVzdCwgTlNTdHJpbmcq
IGZyYW1lTmFtZSwgYm9vbCBhbGxvd1BvcHVwcykKICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9w
dFJlZihuZXcgUGx1Z2luUmVxdWVzdChyZXF1ZXN0SUQsIHJlcXVlc3QsIGZyYW1lTmFtZSwgYWxs
b3dQb3B1cHMpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgUGx1Z2luUmVxdWVzdChy
ZXF1ZXN0SUQsIHJlcXVlc3QsIGZyYW1lTmFtZSwgYWxsb3dQb3B1cHMpKTsKICAgICB9CiAKICAg
ICB1aW50MzJfdCByZXF1ZXN0SUQoKSBjb25zdCB7IHJldHVybiBtX3JlcXVlc3RJRDsgfQpAQCAt
MjQ2LDExICsyNDYsMTEgQEAgTmV0c2NhcGVQbHVnaW5JbnN0YW5jZVByb3h5OjpOZXRzY2FwZVBs
dWdpbkluc3RhbmNlUHJveHkoTmV0c2NhcGVQbHVnaW5Ib3N0UHJveHkKICNlbmRpZgogfQogCi1Q
YXNzUmVmUHRyPE5ldHNjYXBlUGx1Z2luSW5zdGFuY2VQcm94eT4gTmV0c2NhcGVQbHVnaW5JbnN0
YW5jZVByb3h5OjpjcmVhdGUoTmV0c2NhcGVQbHVnaW5Ib3N0UHJveHkqIHBsdWdpbkhvc3RQcm94
eSwgV2ViSG9zdGVkTmV0c2NhcGVQbHVnaW5WaWV3ICpwbHVnaW5WaWV3LCBib29sIGZ1bGxGcmFt
ZVBsdWdpbikKK1JlZjxOZXRzY2FwZVBsdWdpbkluc3RhbmNlUHJveHk+IE5ldHNjYXBlUGx1Z2lu
SW5zdGFuY2VQcm94eTo6Y3JlYXRlKE5ldHNjYXBlUGx1Z2luSG9zdFByb3h5KiBwbHVnaW5Ib3N0
UHJveHksIFdlYkhvc3RlZE5ldHNjYXBlUGx1Z2luVmlldyAqcGx1Z2luVmlldywgYm9vbCBmdWxs
RnJhbWVQbHVnaW4pCiB7CiAgICAgYXV0byBwcm94eSA9IGFkb3B0UmVmKCpuZXcgTmV0c2NhcGVQ
bHVnaW5JbnN0YW5jZVByb3h5KHBsdWdpbkhvc3RQcm94eSwgcGx1Z2luVmlldywgZnVsbEZyYW1l
UGx1Z2luKSk7CiAgICAgcGx1Z2luSG9zdFByb3h5LT5hZGRQbHVnaW5JbnN0YW5jZShwcm94eS5w
dHIoKSk7Ci0gICAgcmV0dXJuIFdURk1vdmUocHJveHkpOworICAgIHJldHVybiBwcm94eTsKIH0K
IAogTmV0c2NhcGVQbHVnaW5JbnN0YW5jZVByb3h5Ojp+TmV0c2NhcGVQbHVnaW5JbnN0YW5jZVBy
b3h5KCkKQEAgLTM1OSwxMSArMzU5LDExIEBAIHZvaWQgTmV0c2NhcGVQbHVnaW5JbnN0YW5jZVBy
b3h5OjpkZXN0cm95KCkKICAgICBpbnZhbGlkYXRlKCk7CiB9CiAKLXZvaWQgTmV0c2NhcGVQbHVn
aW5JbnN0YW5jZVByb3h5OjpzZXRNYW51YWxTdHJlYW0oUGFzc1JlZlB0cjxIb3N0ZWROZXRzY2Fw
ZVBsdWdpblN0cmVhbT4gbWFudWFsU3RyZWFtKSAKK3ZvaWQgTmV0c2NhcGVQbHVnaW5JbnN0YW5j
ZVByb3h5OjpzZXRNYW51YWxTdHJlYW0oUmVmPEhvc3RlZE5ldHNjYXBlUGx1Z2luU3RyZWFtPiYm
IG1hbnVhbFN0cmVhbSkKIHsKICAgICBBU1NFUlQoIW1fbWFudWFsU3RyZWFtKTsKICAgICAKLSAg
ICBtX21hbnVhbFN0cmVhbSA9IG1hbnVhbFN0cmVhbTsKKyAgICBtX21hbnVhbFN0cmVhbSA9IFdU
Rk1vdmUobWFudWFsU3RyZWFtKTsKIH0KIAogYm9vbCBOZXRzY2FwZVBsdWdpbkluc3RhbmNlUHJv
eHk6OmNhbmNlbFN0cmVhbUxvYWQodWludDMyX3Qgc3RyZWFtSUQsIE5QUmVhc29uIHJlYXNvbikg
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9QbHVnaW5zL0hvc3RlZC9Qcm94eUluc3Rh
bmNlLmggYi9Tb3VyY2UvV2ViS2l0L21hYy9QbHVnaW5zL0hvc3RlZC9Qcm94eUluc3RhbmNlLmgK
aW5kZXggYWZiYTEwMjBkOTVkYWViNjNlMTdjN2ZiOTMyMTQxYWU4ZTk0ZDg3ZS4uM2IwMjIwYjI2
MTc1MTAzZmU4ZDcxMTgyYjMxNjVlM2U1NjA1MjczOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9tYWMvUGx1Z2lucy9Ib3N0ZWQvUHJveHlJbnN0YW5jZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
bWFjL1BsdWdpbnMvSG9zdGVkL1Byb3h5SW5zdGFuY2UuaApAQCAtMzksOSArMzksOSBAQCBjbGFz
cyBQcm94eUNsYXNzOwogICAgIAogY2xhc3MgUHJveHlJbnN0YW5jZSA6IHB1YmxpYyBKU0M6OkJp
bmRpbmdzOjpJbnN0YW5jZSB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8UHJveHlJ
bnN0YW5jZT4gY3JlYXRlKFBhc3NSZWZQdHI8SlNDOjpCaW5kaW5nczo6Um9vdE9iamVjdD4gcm9v
dE9iamVjdCwgTmV0c2NhcGVQbHVnaW5JbnN0YW5jZVByb3h5KiBpbnN0YW5jZVByb3h5LCB1aW50
MzJfdCBvYmplY3RJRCkKKyAgICBzdGF0aWMgUmVmPFByb3h5SW5zdGFuY2U+IGNyZWF0ZShSZWY8
SlNDOjpCaW5kaW5nczo6Um9vdE9iamVjdD4mJiByb290T2JqZWN0LCBOZXRzY2FwZVBsdWdpbklu
c3RhbmNlUHJveHkqIGluc3RhbmNlUHJveHksIHVpbnQzMl90IG9iamVjdElEKQogICAgIHsKLSAg
ICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBQcm94eUluc3RhbmNlKHJvb3RPYmplY3QsIGluc3Rh
bmNlUHJveHksIG9iamVjdElEKSk7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFByb3h5
SW5zdGFuY2UoV1RGTW92ZShyb290T2JqZWN0KSwgaW5zdGFuY2VQcm94eSwgb2JqZWN0SUQpKTsK
ICAgICB9CiAgICAgflByb3h5SW5zdGFuY2UoKTsKIApAQCAtNTksNyArNTksNyBAQCBwdWJsaWM6
CiAgICAgdWludDMyX3Qgb2JqZWN0SUQoKSBjb25zdCB7IHJldHVybiBtX29iamVjdElEOyB9CiAg
ICAgCiBwcml2YXRlOgotICAgIFByb3h5SW5zdGFuY2UoUGFzc1JlZlB0cjxKU0M6OkJpbmRpbmdz
OjpSb290T2JqZWN0PiwgTmV0c2NhcGVQbHVnaW5JbnN0YW5jZVByb3h5KiwgdWludDMyX3Qgb2Jq
ZWN0SUQpOworICAgIFByb3h5SW5zdGFuY2UoUmVmPEpTQzo6QmluZGluZ3M6OlJvb3RPYmplY3Q+
JiYsIE5ldHNjYXBlUGx1Z2luSW5zdGFuY2VQcm94eSosIHVpbnQzMl90IG9iamVjdElEKTsKIAog
ICAgIHZpcnR1YWwgSlNDOjpCaW5kaW5nczo6UnVudGltZU9iamVjdCogbmV3UnVudGltZU9iamVj
dChKU0M6OkV4ZWNTdGF0ZSopOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9QbHVn
aW5zL0hvc3RlZC9Qcm94eUluc3RhbmNlLm1tIGIvU291cmNlL1dlYktpdC9tYWMvUGx1Z2lucy9I
b3N0ZWQvUHJveHlJbnN0YW5jZS5tbQppbmRleCAzNzFjNTE5NzM1NzFhMWRiZGZkY2M3M2E3OTRk
NjIxNjJmYjI4ZWM2Li45YzAwZDdjOGM2NGE1YjEyNDRkN2M5MDQ0YzMxYjY5Yzk0YWMyYWVmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9QbHVnaW5zL0hvc3RlZC9Qcm94eUluc3RhbmNl
Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1BsdWdpbnMvSG9zdGVkL1Byb3h5SW5zdGFuY2Uu
bW0KQEAgLTExMiw4ICsxMTIsOCBAQCBwcml2YXRlOgogICAgIHVpbnQ2NF90IG1fc2VydmVySWRl
bnRpZmllcjsKIH07CiAKLVByb3h5SW5zdGFuY2U6OlByb3h5SW5zdGFuY2UoUGFzc1JlZlB0cjxS
b290T2JqZWN0PiByb290T2JqZWN0LCBOZXRzY2FwZVBsdWdpbkluc3RhbmNlUHJveHkqIGluc3Rh
bmNlUHJveHksIHVpbnQzMl90IG9iamVjdElEKQotICAgIDogSW5zdGFuY2Uocm9vdE9iamVjdCkK
K1Byb3h5SW5zdGFuY2U6OlByb3h5SW5zdGFuY2UoUmVmPFJvb3RPYmplY3Q+JiYgcm9vdE9iamVj
dCwgTmV0c2NhcGVQbHVnaW5JbnN0YW5jZVByb3h5KiBpbnN0YW5jZVByb3h5LCB1aW50MzJfdCBv
YmplY3RJRCkKKyAgICA6IEluc3RhbmNlKFdURk1vdmUocm9vdE9iamVjdCkpCiAgICAgLCBtX2lu
c3RhbmNlUHJveHkoaW5zdGFuY2VQcm94eSkKICAgICAsIG1fb2JqZWN0SUQob2JqZWN0SUQpCiB7
CkBAIC0xMzMsNyArMTMzLDcgQEAgUHJveHlJbnN0YW5jZTo6flByb3h5SW5zdGFuY2UoKQogUnVu
dGltZU9iamVjdCogUHJveHlJbnN0YW5jZTo6bmV3UnVudGltZU9iamVjdChFeGVjU3RhdGUqIGV4
ZWMpCiB7CiAgICAgLy8gRklYTUU6IGRlcHJlY2F0ZWRHZXRET01TdHJ1Y3R1cmUgdXNlcyB0aGUg
cHJvdG90eXBlIG9mZiBvZiB0aGUgd3JvbmcgZ2xvYmFsIG9iamVjdC4KLSAgICByZXR1cm4gUHJv
eHlSdW50aW1lT2JqZWN0OjpjcmVhdGUoZXhlYy0+dm0oKSwgV2ViQ29yZTo6ZGVwcmVjYXRlZEdl
dERPTVN0cnVjdHVyZTxQcm94eVJ1bnRpbWVPYmplY3Q+KGV4ZWMpLCB0aGlzKTsKKyAgICByZXR1
cm4gUHJveHlSdW50aW1lT2JqZWN0OjpjcmVhdGUoZXhlYy0+dm0oKSwgV2ViQ29yZTo6ZGVwcmVj
YXRlZEdldERPTVN0cnVjdHVyZTxQcm94eVJ1bnRpbWVPYmplY3Q+KGV4ZWMpLCAqdGhpcyk7CiB9
CiAKIEpTQzo6QmluZGluZ3M6OkNsYXNzKiBQcm94eUluc3RhbmNlOjpnZXRDbGFzcygpIGNvbnN0
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9QbHVnaW5zL0hvc3RlZC9Qcm94eVJ1bnRp
bWVPYmplY3QuaCBiL1NvdXJjZS9XZWJLaXQvbWFjL1BsdWdpbnMvSG9zdGVkL1Byb3h5UnVudGlt
ZU9iamVjdC5oCmluZGV4IGNiYWI2ZTk4MjU5ZGJjOGFlNDVkN2Y2ZmQ5MGFhYjAyZTAzZmQ2OTMu
LjZkZDA4ODUwNDQ5MDYwNGRiYmM2NDE5ZmIyMzcyNjVkYjYwYmM2MjMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvbWFjL1BsdWdpbnMvSG9zdGVkL1Byb3h5UnVudGltZU9iamVjdC5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvbWFjL1BsdWdpbnMvSG9zdGVkL1Byb3h5UnVudGltZU9iamVjdC5oCkBA
IC0zOSw5ICszOSw5IEBAIGNsYXNzIFByb3h5UnVudGltZU9iamVjdCA6IHB1YmxpYyBKU0M6OkJp
bmRpbmdzOjpSdW50aW1lT2JqZWN0IHsKIHB1YmxpYzoKICAgICB0eXBlZGVmIEpTQzo6QmluZGlu
Z3M6OlJ1bnRpbWVPYmplY3QgQmFzZTsKIAotICAgIHN0YXRpYyBQcm94eVJ1bnRpbWVPYmplY3Qq
IGNyZWF0ZShKU0M6OlZNJiB2bSwgSlNDOjpTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgUGFzc1JlZlB0
cjxQcm94eUluc3RhbmNlPiBpbnN0YW5jZSkKKyAgICBzdGF0aWMgUHJveHlSdW50aW1lT2JqZWN0
KiBjcmVhdGUoSlNDOjpWTSYgdm0sIEpTQzo6U3RydWN0dXJlKiBzdHJ1Y3R1cmUsIFJlZjxQcm94
eUluc3RhbmNlPiYmIGluc3RhbmNlKQogICAgIHsKLSAgICAgICAgUHJveHlSdW50aW1lT2JqZWN0
KiBvYmplY3QgPSBuZXcgKEpTQzo6YWxsb2NhdGVDZWxsPFByb3h5UnVudGltZU9iamVjdD4odm0u
aGVhcCkpIFByb3h5UnVudGltZU9iamVjdCh2bSwgc3RydWN0dXJlLCBpbnN0YW5jZSk7CisgICAg
ICAgIFByb3h5UnVudGltZU9iamVjdCogb2JqZWN0ID0gbmV3IChKU0M6OmFsbG9jYXRlQ2VsbDxQ
cm94eVJ1bnRpbWVPYmplY3Q+KHZtLmhlYXApKSBQcm94eVJ1bnRpbWVPYmplY3Qodm0sIHN0cnVj
dHVyZSwgV1RGTW92ZShpbnN0YW5jZSkpOwogICAgICAgICBvYmplY3QtPmZpbmlzaENyZWF0aW9u
KHZtKTsKICAgICAgICAgcmV0dXJuIG9iamVjdDsKICAgICB9CkBAIC01Niw3ICs1Niw3IEBAIHB1
YmxpYzoKICAgICBERUNMQVJFX0lORk87CiAKIHByaXZhdGU6Ci0gICAgUHJveHlSdW50aW1lT2Jq
ZWN0KEpTQzo6Vk0mLCBKU0M6OlN0cnVjdHVyZSosIFBhc3NSZWZQdHI8UHJveHlJbnN0YW5jZT4p
OworICAgIFByb3h5UnVudGltZU9iamVjdChKU0M6OlZNJiwgSlNDOjpTdHJ1Y3R1cmUqLCBSZWY8
UHJveHlJbnN0YW5jZT4mJik7CiAgICAgdm9pZCBmaW5pc2hDcmVhdGlvbihKU0M6OlZNJik7CiB9
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9QbHVnaW5zL0hvc3RlZC9Qcm94eVJ1
bnRpbWVPYmplY3QubW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9QbHVnaW5zL0hvc3RlZC9Qcm94eVJ1
bnRpbWVPYmplY3QubW0KaW5kZXggNWU2ZDJiMzNjMTE2MWQ4NGI0Mjg5OTQxZjQwZWQwYjAyNDBj
OTIzOC4uOTI3ZWZhZjE0M2U2Zjc3MGFlOGFmMWM4MmZmZmJkZjQ2NGMwYjhiNiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9tYWMvUGx1Z2lucy9Ib3N0ZWQvUHJveHlSdW50aW1lT2JqZWN0Lm1t
CisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1BsdWdpbnMvSG9zdGVkL1Byb3h5UnVudGltZU9iamVj
dC5tbQpAQCAtMzYsOCArMzYsOCBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIAogY29uc3QgQ2xhc3NJ
bmZvIFByb3h5UnVudGltZU9iamVjdDo6c19pbmZvID0geyAiUHJveHlSdW50aW1lT2JqZWN0Iiwg
JlJ1bnRpbWVPYmplY3Q6OnNfaW5mbywgMCwgQ1JFQVRFX01FVEhPRF9UQUJMRShQcm94eVJ1bnRp
bWVPYmplY3QpIH07CiAKLVByb3h5UnVudGltZU9iamVjdDo6UHJveHlSdW50aW1lT2JqZWN0KFZN
JiB2bSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIFBhc3NSZWZQdHI8UHJveHlJbnN0YW5jZT4gaW5z
dGFuY2UpCi0gICAgOiBSdW50aW1lT2JqZWN0KHZtLCBzdHJ1Y3R1cmUsIGluc3RhbmNlKQorUHJv
eHlSdW50aW1lT2JqZWN0OjpQcm94eVJ1bnRpbWVPYmplY3QoVk0mIHZtLCBTdHJ1Y3R1cmUqIHN0
cnVjdHVyZSwgUmVmPFByb3h5SW5zdGFuY2U+JiYgaW5zdGFuY2UpCisgICAgOiBSdW50aW1lT2Jq
ZWN0KHZtLCBzdHJ1Y3R1cmUsIFdURk1vdmUoaW5zdGFuY2UpKQogewogfQogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L21hYy9QbHVnaW5zL0hvc3RlZC9XZWJIb3N0ZWROZXRzY2FwZVBsdWdp
blZpZXcuaCBiL1NvdXJjZS9XZWJLaXQvbWFjL1BsdWdpbnMvSG9zdGVkL1dlYkhvc3RlZE5ldHNj
YXBlUGx1Z2luVmlldy5oCmluZGV4IDFjYWUwODU5MWM3MzhjNzFmZjY0ZGZkNDU2MGExZGZkMjNk
NDAzZjcuLjgxZjU5MDZlN2M1ZGIxYjQ5ODM5NmVjNjkyZjA5YjBmMmMzMzNhNjUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvbWFjL1BsdWdpbnMvSG9zdGVkL1dlYkhvc3RlZE5ldHNjYXBlUGx1
Z2luVmlldy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1BsdWdpbnMvSG9zdGVkL1dlYkhvc3Rl
ZE5ldHNjYXBlUGx1Z2luVmlldy5oCkBAIC01Niw3ICs1Niw3IEBAIG5hbWVzcGFjZSBXZWJLaXQg
ewogICAgICAgYXR0cmlidXRlS2V5czooTlNBcnJheSAqKWtleXMKICAgICBhdHRyaWJ1dGVWYWx1
ZXM6KE5TQXJyYXkgKil2YWx1ZXMKICAgICAgICBsb2FkTWFudWFsbHk6KEJPT0wpbG9hZE1hbnVh
bGx5Ci0gICAgICAgICAgICBlbGVtZW50OihQYXNzUmVmUHRyPFdlYkNvcmU6OkhUTUxQbHVnSW5F
bGVtZW50PillbGVtZW50OworICAgICAgICAgICAgZWxlbWVudDooUmVmUHRyPFdlYkNvcmU6OkhU
TUxQbHVnSW5FbGVtZW50PiYmKWVsZW1lbnQ7CiAKIC0gKHZvaWQpcGx1Z2luSG9zdERpZWQ7CiAt
IChDQUxheWVyICopcGx1Z2luTGF5ZXI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9Q
bHVnaW5zL0hvc3RlZC9XZWJIb3N0ZWROZXRzY2FwZVBsdWdpblZpZXcubW0gYi9Tb3VyY2UvV2Vi
S2l0L21hYy9QbHVnaW5zL0hvc3RlZC9XZWJIb3N0ZWROZXRzY2FwZVBsdWdpblZpZXcubW0KaW5k
ZXggMjU4ODliN2ExMGU4YzJlY2IxYjYwZDQ5ZDg2MjVhNTk3ZjAzNDcyMy4uOWUyMDQ0ZTI2ZTEz
OTAyMWViOGNhNjMzNjI1NWYyYzgzM2MxYjhiMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9t
YWMvUGx1Z2lucy9Ib3N0ZWQvV2ViSG9zdGVkTmV0c2NhcGVQbHVnaW5WaWV3Lm1tCisrKyBiL1Nv
dXJjZS9XZWJLaXQvbWFjL1BsdWdpbnMvSG9zdGVkL1dlYkhvc3RlZE5ldHNjYXBlUGx1Z2luVmll
dy5tbQpAQCAtODcsOSArODcsOSBAQCAtIChpZClpbml0V2l0aEZyYW1lOihOU1JlY3QpZnJhbWUK
ICAgICAgIGF0dHJpYnV0ZUtleXM6KE5TQXJyYXkgKilrZXlzCiAgICAgYXR0cmlidXRlVmFsdWVz
OihOU0FycmF5ICopdmFsdWVzCiAgICAgICAgbG9hZE1hbnVhbGx5OihCT09MKWxvYWRNYW51YWxs
eQotICAgICAgICAgICAgZWxlbWVudDooUGFzc1JlZlB0cjxXZWJDb3JlOjpIVE1MUGx1Z0luRWxl
bWVudD4pZWxlbWVudAorICAgICAgICAgICAgZWxlbWVudDooUmVmUHRyPFdlYkNvcmU6OkhUTUxQ
bHVnSW5FbGVtZW50PiYmKWVsZW1lbnQKIHsKLSAgICBzZWxmID0gW3N1cGVyIGluaXRXaXRoRnJh
bWU6ZnJhbWUgcGx1Z2luUGFja2FnZTpwbHVnaW5QYWNrYWdlIFVSTDpVUkwgYmFzZVVSTDpiYXNl
VVJMIE1JTUVUeXBlOk1JTUUgYXR0cmlidXRlS2V5czprZXlzIGF0dHJpYnV0ZVZhbHVlczp2YWx1
ZXMgbG9hZE1hbnVhbGx5OmxvYWRNYW51YWxseSBlbGVtZW50OmVsZW1lbnRdOworICAgIHNlbGYg
PSBbc3VwZXIgaW5pdFdpdGhGcmFtZTpmcmFtZSBwbHVnaW5QYWNrYWdlOnBsdWdpblBhY2thZ2Ug
VVJMOlVSTCBiYXNlVVJMOmJhc2VVUkwgTUlNRVR5cGU6TUlNRSBhdHRyaWJ1dGVLZXlzOmtleXMg
YXR0cmlidXRlVmFsdWVzOnZhbHVlcyBsb2FkTWFudWFsbHk6bG9hZE1hbnVhbGx5IGVsZW1lbnQ6
V1RGTW92ZShlbGVtZW50KV07CiAgICAgaWYgKCFzZWxmKQogICAgICAgICByZXR1cm4gbmlsOwog
ICAgIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvUGx1Z2lucy9XZWJCYXNlTmV0c2Nh
cGVQbHVnaW5WaWV3LmggYi9Tb3VyY2UvV2ViS2l0L21hYy9QbHVnaW5zL1dlYkJhc2VOZXRzY2Fw
ZVBsdWdpblZpZXcuaAppbmRleCAyNDk5YjNkOTk3MmY1ZDUwOTVjOGFmNmE4MGZkNWZjZWFjNjUy
NGIwLi5jZjA0ODU4YjU5NmU5M2E3ZmQ5YzgzMGExZjcxYTQ3YTI5NGZiM2NjIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L21hYy9QbHVnaW5zL1dlYkJhc2VOZXRzY2FwZVBsdWdpblZpZXcuaAor
KysgYi9Tb3VyY2UvV2ViS2l0L21hYy9QbHVnaW5zL1dlYkJhc2VOZXRzY2FwZVBsdWdpblZpZXcu
aApAQCAtMzEsNyArMzEsNiBAQAogCiAjaW1wb3J0ICJXZWJOZXRzY2FwZVBsdWdpblBhY2thZ2Uu
aCIKICNpbXBvcnQgPHd0Zi9Gb3J3YXJkLmg+Ci0jaW1wb3J0IDx3dGYvUGFzc1JlZlB0ci5oPgog
I2ltcG9ydCA8d3RmL1JlZlB0ci5oPgogI2ltcG9ydCA8d3RmL1JldGFpblB0ci5oPgogCkBAIC03
OCw3ICs3Nyw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgIGF0dHJpYnV0ZUtleXM6KE5T
QXJyYXkgKilrZXlzCiAgICAgYXR0cmlidXRlVmFsdWVzOihOU0FycmF5ICopdmFsdWVzCiAgICAg
ICAgbG9hZE1hbnVhbGx5OihCT09MKWxvYWRNYW51YWxseQotICAgICAgICAgICAgZWxlbWVudDoo
UGFzc1JlZlB0cjxXZWJDb3JlOjpIVE1MUGx1Z0luRWxlbWVudD4pZWxlbWVudDsKKyAgICAgICAg
ICAgIGVsZW1lbnQ6KFJlZlB0cjxXZWJDb3JlOjpIVE1MUGx1Z0luRWxlbWVudD4mJillbGVtZW50
OwogCiAtIChXZWJOZXRzY2FwZVBsdWdpblBhY2thZ2UgKilwbHVnaW5QYWNrYWdlOwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9QbHVnaW5zL1dlYkJhc2VOZXRzY2FwZVBsdWdpblZp
ZXcubW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9QbHVnaW5zL1dlYkJhc2VOZXRzY2FwZVBsdWdpblZp
ZXcubW0KaW5kZXggMWU3YTY5ZTZlZDZiN2Q1YzU2NmI2MWNmZTg1YzNiYWU5ZmNkNGJkMi4uMjFm
OTA0NWVmMzc1NzgwNzhkNGNkN2IxOTg5ZDE5Y2MzOWExNThhNCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9tYWMvUGx1Z2lucy9XZWJCYXNlTmV0c2NhcGVQbHVnaW5WaWV3Lm1tCisrKyBiL1Nv
dXJjZS9XZWJLaXQvbWFjL1BsdWdpbnMvV2ViQmFzZU5ldHNjYXBlUGx1Z2luVmlldy5tbQpAQCAt
ODQsMTQgKzg0LDE0IEBAIC0gKGlkKWluaXRXaXRoRnJhbWU6KE5TUmVjdClmcmFtZQogICAgICAg
YXR0cmlidXRlS2V5czooTlNBcnJheSAqKWtleXMKICAgICBhdHRyaWJ1dGVWYWx1ZXM6KE5TQXJy
YXkgKil2YWx1ZXMKICAgICAgICBsb2FkTWFudWFsbHk6KEJPT0wpbG9hZE1hbnVhbGx5Ci0gICAg
ICAgICAgICBlbGVtZW50OihQYXNzUmVmUHRyPFdlYkNvcmU6OkhUTUxQbHVnSW5FbGVtZW50Pill
bGVtZW50CisgICAgICAgICAgICBlbGVtZW50OihSZWZQdHI8V2ViQ29yZTo6SFRNTFBsdWdJbkVs
ZW1lbnQ+JiYpZWxlbWVudAogewogICAgIHNlbGYgPSBbc3VwZXIgaW5pdFdpdGhGcmFtZTpmcmFt
ZV07CiAgICAgaWYgKCFzZWxmKQogICAgICAgICByZXR1cm4gbmlsOwogICAgIAogICAgIF9wbHVn
aW5QYWNrYWdlID0gcGx1Z2luUGFja2FnZTsKLSAgICBfZWxlbWVudCA9IGVsZW1lbnQ7CisgICAg
X2VsZW1lbnQgPSBXVEZNb3ZlKGVsZW1lbnQpOwogICAgIF9zb3VyY2VVUkwgPSBhZG9wdE5TKFtV
UkwgY29weV0pOwogICAgIF9iYXNlVVJMID0gYWRvcHROUyhbYmFzZVVSTCBjb3B5XSk7CiAgICAg
X01JTUVUeXBlID0gYWRvcHROUyhbTUlNRSBjb3B5XSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L21hYy9QbHVnaW5zL1dlYk5ldHNjYXBlUGx1Z2luU3RyZWFtLmggYi9Tb3VyY2UvV2ViS2l0
L21hYy9QbHVnaW5zL1dlYk5ldHNjYXBlUGx1Z2luU3RyZWFtLmgKaW5kZXggZDEyOTFhNjhjYWJk
ZjBkYTI5ODcyNGQ0MDQ4ZGFlZDhhZDU1ODZkOC4uYmY0MzQxNTI3NWI0YTZmMjMzMWUxZDFkNWE3
Y2VjZmJhMDhmMjQ0MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvUGx1Z2lucy9XZWJO
ZXRzY2FwZVBsdWdpblN0cmVhbS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1BsdWdpbnMvV2Vi
TmV0c2NhcGVQbHVnaW5TdHJlYW0uaApAQCAtMzIsNyArMzIsNyBAQAogI2ltcG9ydCA8V2ViQ29y
ZS9UaW1lci5oPgogI2ltcG9ydCA8V2ViQ29yZS9OZXRzY2FwZVBsdWdJblN0cmVhbUxvYWRlci5o
PgogI2ltcG9ydCA8V2ViS2l0TGVnYWN5L25wZnVuY3Rpb25zLmg+Ci0jaW1wb3J0IDx3dGYvUGFz
c1JlZlB0ci5oPgorI2ltcG9ydCA8d3RmL1JlZi5oPgogI2ltcG9ydCA8d3RmL1JlZkNvdW50ZWQu
aD4KICNpbXBvcnQgPHd0Zi9SZWZQdHIuaD4KICNpbXBvcnQgPHd0Zi9SZXRhaW5QdHIuaD4KQEAg
LTUyLDEzICs1MiwxMyBAQCBjbGFzcyBXZWJOZXRzY2FwZVBsdWdpblN0cmVhbSA6IHB1YmxpYyBS
ZWZDb3VudGVkPFdlYk5ldHNjYXBlUGx1Z2luU3RyZWFtPgogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgLCBwcml2YXRlIFdlYkNvcmU6Ok5ldHNjYXBlUGx1Z0luU3RyZWFtTG9hZGVyQ2xp
ZW50CiB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8V2ViTmV0c2NhcGVQbHVnaW5T
dHJlYW0+IGNyZWF0ZShOU1VSTFJlcXVlc3QgKnJlcXVlc3QsIE5QUCBwbHVnaW4sIGJvb2wgc2Vu
ZE5vdGlmaWNhdGlvbiwgdm9pZCogbm90aWZ5RGF0YSkKKyAgICBzdGF0aWMgUmVmPFdlYk5ldHNj
YXBlUGx1Z2luU3RyZWFtPiBjcmVhdGUoTlNVUkxSZXF1ZXN0ICpyZXF1ZXN0LCBOUFAgcGx1Z2lu
LCBib29sIHNlbmROb3RpZmljYXRpb24sIHZvaWQqIG5vdGlmeURhdGEpCiAgICAgewotICAgICAg
ICByZXR1cm4gYWRvcHRSZWYobmV3IFdlYk5ldHNjYXBlUGx1Z2luU3RyZWFtKHJlcXVlc3QsIHBs
dWdpbiwgc2VuZE5vdGlmaWNhdGlvbiwgbm90aWZ5RGF0YSkpOworICAgICAgICByZXR1cm4gYWRv
cHRSZWYoKm5ldyBXZWJOZXRzY2FwZVBsdWdpblN0cmVhbShyZXF1ZXN0LCBwbHVnaW4sIHNlbmRO
b3RpZmljYXRpb24sIG5vdGlmeURhdGEpKTsKICAgICB9Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8
V2ViTmV0c2NhcGVQbHVnaW5TdHJlYW0+IGNyZWF0ZShXZWJDb3JlOjpGcmFtZUxvYWRlciogZnJh
bWVMb2FkZXIpCisgICAgc3RhdGljIFJlZjxXZWJOZXRzY2FwZVBsdWdpblN0cmVhbT4gY3JlYXRl
KFdlYkNvcmU6OkZyYW1lTG9hZGVyKiBmcmFtZUxvYWRlcikKICAgICB7Ci0gICAgICAgIHJldHVy
biBhZG9wdFJlZihuZXcgV2ViTmV0c2NhcGVQbHVnaW5TdHJlYW0oZnJhbWVMb2FkZXIpKTsKKyAg
ICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgV2ViTmV0c2NhcGVQbHVnaW5TdHJlYW0oZnJhbWVM
b2FkZXIpKTsKICAgICB9CiAgICAgdmlydHVhbCB+V2ViTmV0c2NhcGVQbHVnaW5TdHJlYW0oKTsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvUGx1Z2lucy9XZWJOZXRzY2FwZVBsdWdp
blZpZXcuaCBiL1NvdXJjZS9XZWJLaXQvbWFjL1BsdWdpbnMvV2ViTmV0c2NhcGVQbHVnaW5WaWV3
LmgKaW5kZXggZDA4ZmZmYWVjMDI4NjYwMzY2Y2U4ODQ2MDFmYjQ1MDBhZDNlMDZhZi4uNWU2NTMy
ZmNkZGZmYzczYzc4Y2JhOTQyYjM2YWIyMDNmNTc1YzdlMiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9tYWMvUGx1Z2lucy9XZWJOZXRzY2FwZVBsdWdpblZpZXcuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L21hYy9QbHVnaW5zL1dlYk5ldHNjYXBlUGx1Z2luVmlldy5oCkBAIC0xMTAsNyArMTEwLDcg
QEAgdHlwZWRlZiB1bmlvbiBQbHVnaW5Qb3J0IHsKICAgICAgIGF0dHJpYnV0ZUtleXM6KE5TQXJy
YXkgKilrZXlzCiAgICAgYXR0cmlidXRlVmFsdWVzOihOU0FycmF5ICopdmFsdWVzCiAgICAgICAg
bG9hZE1hbnVhbGx5OihCT09MKWxvYWRNYW51YWxseQotICAgICAgICAgICAgZWxlbWVudDooUGFz
c1JlZlB0cjxXZWJDb3JlOjpIVE1MUGx1Z0luRWxlbWVudD4pZWxlbWVudDsKKyAgICAgICAgICAg
IGVsZW1lbnQ6KFJlZlB0cjxXZWJDb3JlOjpIVE1MUGx1Z0luRWxlbWVudD4mJillbGVtZW50Owog
CiAKIC0gKE5QUClwbHVnaW47CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9QbHVnaW5z
L1dlYk5ldHNjYXBlUGx1Z2luVmlldy5tbSBiL1NvdXJjZS9XZWJLaXQvbWFjL1BsdWdpbnMvV2Vi
TmV0c2NhcGVQbHVnaW5WaWV3Lm1tCmluZGV4IDAxOTNlNDBmZTZkZTE2M2Y2MDFjMDgyNWRmODQz
ZjNlYjgyOTU0ZmIuLmU3MzIwNTIzZDBjZTYzMWIxOGZlYjU1ZWY3MzA4Y2UwZDFlOTQ0MzYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1BsdWdpbnMvV2ViTmV0c2NhcGVQbHVnaW5WaWV3
Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1BsdWdpbnMvV2ViTmV0c2NhcGVQbHVnaW5WaWV3
Lm1tCkBAIC0xMjU2LDkgKzEyNTYsOSBAQCAtIChpZClpbml0V2l0aEZyYW1lOihOU1JlY3QpZnJh
bWUKICAgICAgIGF0dHJpYnV0ZUtleXM6KE5TQXJyYXkgKilrZXlzCiAgICAgYXR0cmlidXRlVmFs
dWVzOihOU0FycmF5ICopdmFsdWVzCiAgICAgICAgbG9hZE1hbnVhbGx5OihCT09MKWxvYWRNYW51
YWxseQotICAgICAgICAgICAgZWxlbWVudDooUGFzc1JlZlB0cjxXZWJDb3JlOjpIVE1MUGx1Z0lu
RWxlbWVudD4pZWxlbWVudAorICAgICAgICAgICAgZWxlbWVudDooUmVmUHRyPFdlYkNvcmU6OkhU
TUxQbHVnSW5FbGVtZW50PiYmKWVsZW1lbnQKIHsKLSAgICBzZWxmID0gW3N1cGVyIGluaXRXaXRo
RnJhbWU6ZnJhbWUgcGx1Z2luUGFja2FnZTpwbHVnaW5QYWNrYWdlIFVSTDpVUkwgYmFzZVVSTDpi
YXNlVVJMIE1JTUVUeXBlOk1JTUUgYXR0cmlidXRlS2V5czprZXlzIGF0dHJpYnV0ZVZhbHVlczp2
YWx1ZXMgbG9hZE1hbnVhbGx5OmxvYWRNYW51YWxseSBlbGVtZW50OmVsZW1lbnRdOworICAgIHNl
bGYgPSBbc3VwZXIgaW5pdFdpdGhGcmFtZTpmcmFtZSBwbHVnaW5QYWNrYWdlOnBsdWdpblBhY2th
Z2UgVVJMOlVSTCBiYXNlVVJMOmJhc2VVUkwgTUlNRVR5cGU6TUlNRSBhdHRyaWJ1dGVLZXlzOmtl
eXMgYXR0cmlidXRlVmFsdWVzOnZhbHVlcyBsb2FkTWFudWFsbHk6bG9hZE1hbnVhbGx5IGVsZW1l
bnQ6V1RGTW92ZShlbGVtZW50KV07CiAgICAgaWYgKCFzZWxmKQogICAgICAgICByZXR1cm4gbmls
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJv
bWVDbGllbnQubW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVD
bGllbnQubW0KaW5kZXggMWY2ODdmMjMyOTRlNDI4NzI1MmZlOGMyYmM2N2RkODc3OTU2ODhmZS4u
MjE3NTc1MmNmZDk0NTFkNjY0MjA0ODYwMDVmNDcwY2VjNDJjNWNlOCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lm1tCisrKyBiL1Nv
dXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5tbQpAQCAtODMs
NyArODMsNyBAQAogI2ltcG9ydCA8V2ViQ29yZS9XaWRnZXQuaD4KICNpbXBvcnQgPFdlYkNvcmUv
V2luZG93RmVhdHVyZXMuaD4KICNpbXBvcnQgPHd0Zi9CbG9ja09iakNFeGNlcHRpb25zLmg+Ci0j
aW1wb3J0IDx3dGYvUGFzc1JlZlB0ci5oPgorI2ltcG9ydCA8d3RmL1JlZlB0ci5oPgogI2ltcG9y
dCA8d3RmL1ZlY3Rvci5oPgogI2ltcG9ydCA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5t
bSBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5tbQpp
bmRleCAyNDlmOTUwYTU4NTk4ZWQ5YzczNTkyNDdjZGU0YWY2MGY1ODg4MWU3Li4yMDExOTUyMzcy
ODYyNDk4NTM5ZGY1OWVmNjZhMmMyYWI0OTcwMjJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQubW0KKysrIGIvU291cmNlL1dlYktp
dC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50Lm1tCkBAIC03OCw3ICs3OCw3IEBA
CiAjaW1wb3J0IDxXZWJDb3JlL1dlYkNvcmVPYmpDRXh0cmFzLmg+CiAjaW1wb3J0IDxydW50aW1l
L0luaXRpYWxpemVUaHJlYWRpbmcuaD4KICNpbXBvcnQgPHd0Zi9NYWluVGhyZWFkLmg+Ci0jaW1w
b3J0IDx3dGYvUGFzc1JlZlB0ci5oPgorI2ltcG9ydCA8d3RmL1JlZlB0ci5oPgogI2ltcG9ydCA8
d3RmL1J1bkxvb3AuaD4KICNpbXBvcnQgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVu
dC5tbSBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xp
ZW50Lm1tCmluZGV4IGM5ODAwMmRhODc5N2MyYmMxNzhmZjBkMzZmNDMxMjc4MGNiNjA5ODUuLmFj
ZGQ0ZGRmMDViN2NhNmI2NjQ0YzgzYWRkNGE0MjhmNjE4MmJiMjYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lm1tCisrKyBi
L1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lm1t
CkBAIC0xMzQwLDkgKzEzNDAsOSBAQCB2b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpwcmVwYXJl
Rm9yRGF0YVNvdXJjZVJlcGxhY2VtZW50KCkKIAogUmVmPERvY3VtZW50TG9hZGVyPiBXZWJGcmFt
ZUxvYWRlckNsaWVudDo6Y3JlYXRlRG9jdW1lbnRMb2FkZXIoY29uc3QgUmVzb3VyY2VSZXF1ZXN0
JiByZXF1ZXN0LCBjb25zdCBTdWJzdGl0dXRlRGF0YSYgc3Vic3RpdHV0ZURhdGEpCiB7Ci0gICAg
UmVmPFdlYkRvY3VtZW50TG9hZGVyTWFjPiBsb2FkZXIgPSBXZWJEb2N1bWVudExvYWRlck1hYzo6
Y3JlYXRlKHJlcXVlc3QsIHN1YnN0aXR1dGVEYXRhKTsKKyAgICBhdXRvIGxvYWRlciA9IFdlYkRv
Y3VtZW50TG9hZGVyTWFjOjpjcmVhdGUocmVxdWVzdCwgc3Vic3RpdHV0ZURhdGEpOwogCi0gICAg
V2ViRGF0YVNvdXJjZSAqZGF0YVNvdXJjZSA9IFtbV2ViRGF0YVNvdXJjZSBhbGxvY10gX2luaXRX
aXRoRG9jdW1lbnRMb2FkZXI6bG9hZGVyLnB0cigpXTsKKyAgICBXZWJEYXRhU291cmNlICpkYXRh
U291cmNlID0gW1tXZWJEYXRhU291cmNlIGFsbG9jXSBfaW5pdFdpdGhEb2N1bWVudExvYWRlcjps
b2FkZXIuY29weVJlZigpXTsKICAgICBsb2FkZXItPnNldERhdGFTb3VyY2UoZGF0YVNvdXJjZSwg
Z2V0V2ViVmlldyhtX3dlYkZyYW1lLmdldCgpKSk7CiAgICAgW2RhdGFTb3VyY2UgcmVsZWFzZV07
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYk5vdGlm
aWNhdGlvbkNsaWVudC5tbSBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYk5v
dGlmaWNhdGlvbkNsaWVudC5tbQppbmRleCA0ZmEwZDQxOThhNWIyODA2M2JlYTRhODhlNWI0NDZl
OWM5MzliNzA0Li5hYjhhNGY0MjU3ZWVhMDI2OGE3MTA4YmY5YTIzOTZhNTQzMjE3YTFhIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJOb3RpZmljYXRpb25D
bGllbnQubW0KKysrIGIvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViTm90aWZp
Y2F0aW9uQ2xpZW50Lm1tCkBAIC00NCw3ICs0NCw3IEBAIEBpbnRlcmZhY2UgV2ViTm90aWZpY2F0
aW9uUG9saWN5TGlzdGVuZXIgOiBOU09iamVjdCA8V2ViQWxsb3dEZW55UG9saWN5TGlzdGVuZXI+
CiB7CiAgICAgUmVmUHRyPE5vdGlmaWNhdGlvblBlcm1pc3Npb25DYWxsYmFjaz4gX2NhbGxiYWNr
OwogfQotLSAoaWQpaW5pdFdpdGhDYWxsYmFjazooUGFzc1JlZlB0cjxOb3RpZmljYXRpb25QZXJt
aXNzaW9uQ2FsbGJhY2s+KWNhbGxiYWNrOworLSAoaWQpaW5pdFdpdGhDYWxsYmFjazooUmVmUHRy
PE5vdGlmaWNhdGlvblBlcm1pc3Npb25DYWxsYmFjaz4mJiljYWxsYmFjazsKIEBlbmQKICNlbmRp
ZgogCkBAIC0xNzcsNyArMTc3LDcgQEAgYm9vbCBXZWJOb3RpZmljYXRpb25DbGllbnQ6Omhhc1Bl
bmRpbmdQZXJtaXNzaW9uUmVxdWVzdHMoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCoKIHZvaWQgV2Vi
Tm90aWZpY2F0aW9uQ2xpZW50OjpyZXF1ZXN0UGVybWlzc2lvbihTY3JpcHRFeGVjdXRpb25Db250
ZXh0KiBjb250ZXh0LCBSZWZQdHI8Tm90aWZpY2F0aW9uUGVybWlzc2lvbkNhbGxiYWNrPiYmIGNh
bGxiYWNrKQogewogICAgIEJFR0lOX0JMT0NLX09CSkNfRVhDRVBUSU9OUzsKLSAgICBXZWJOb3Rp
ZmljYXRpb25Qb2xpY3lMaXN0ZW5lciAqbGlzdGVuZXIgPSBbW1dlYk5vdGlmaWNhdGlvblBvbGlj
eUxpc3RlbmVyIGFsbG9jXSBpbml0V2l0aENhbGxiYWNrOmNhbGxiYWNrXTsKKyAgICBXZWJOb3Rp
ZmljYXRpb25Qb2xpY3lMaXN0ZW5lciAqbGlzdGVuZXIgPSBbW1dlYk5vdGlmaWNhdGlvblBvbGlj
eUxpc3RlbmVyIGFsbG9jXSBpbml0V2l0aENhbGxiYWNrOldURk1vdmUoY2FsbGJhY2spXTsKICAg
ICByZXF1ZXN0UGVybWlzc2lvbihjb250ZXh0LCBsaXN0ZW5lcik7CiAgICAgW2xpc3RlbmVyIHJl
bGVhc2VdOwogICAgIEVORF9CTE9DS19PQkpDX0VYQ0VQVElPTlM7CkBAIC0yMTksMTIgKzIxOSwx
MiBAQCB1aW50NjRfdCBXZWJOb3RpZmljYXRpb25DbGllbnQ6Om5vdGlmaWNhdGlvbklERm9yVGVz
dGluZyhXZWJDb3JlOjpOb3RpZmljYXRpb24qCiAKIEBpbXBsZW1lbnRhdGlvbiBXZWJOb3RpZmlj
YXRpb25Qb2xpY3lMaXN0ZW5lcgogCi0tIChpZClpbml0V2l0aENhbGxiYWNrOihQYXNzUmVmUHRy
PE5vdGlmaWNhdGlvblBlcm1pc3Npb25DYWxsYmFjaz4pY2FsbGJhY2sKKy0gKGlkKWluaXRXaXRo
Q2FsbGJhY2s6KFJlZlB0cjxOb3RpZmljYXRpb25QZXJtaXNzaW9uQ2FsbGJhY2s+JiYpY2FsbGJh
Y2sKIHsKICAgICBpZiAoIShzZWxmID0gW3N1cGVyIGluaXRdKSkKICAgICAgICAgcmV0dXJuIG5p
bDsKIAotICAgIF9jYWxsYmFjayA9IGNhbGxiYWNrOworICAgIF9jYWxsYmFjayA9IFdURk1vdmUo
Y2FsbGJhY2spOwogICAgIHJldHVybiBzZWxmOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJPcGVuUGFuZWxSZXN1bHRMaXN0ZW5lci5tbSBiL1Nv
dXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYk9wZW5QYW5lbFJlc3VsdExpc3RlbmVy
Lm1tCmluZGV4IDhiMjUyMDkwNzAzYWU0N2Q3YmJhZmFhNjViMzI2ZmVlZmNjMzA0N2IuLmU5YzNi
ZmVkMTVmOGJlZDhlZDIwNzE5N2IyNTIwM2Q1ODM0YmIxY2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYk9wZW5QYW5lbFJlc3VsdExpc3RlbmVyLm1tCisr
KyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYk9wZW5QYW5lbFJlc3VsdExp
c3RlbmVyLm1tCkBAIC0yNiw3ICsyNiw3IEBACiAjaW1wb3J0ICJXZWJPcGVuUGFuZWxSZXN1bHRM
aXN0ZW5lci5oIgogCiAjaW1wb3J0IDxXZWJDb3JlL0ZpbGVDaG9vc2VyLmg+Ci0jaW1wb3J0IDx3
dGYvUGFzc1JlZlB0ci5oPgorI2ltcG9ydCA8d3RmL1JlZlB0ci5oPgogCiAjaWYgUExBVEZPUk0o
SU9TKQogI2ltcG9ydCA8V2ViQ29yZS9JY29uLmg+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJVc2VyTWVkaWFDbGllbnQubW0gYi9Tb3VyY2UvV2ViS2l0
L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJVc2VyTWVkaWFDbGllbnQubW0KaW5kZXggMWI0YzgyODE3
MTg2YjQ1YzI1MmEzZmIzNzgwYWY5YWU1YjgxNzI5NS4uMDE5ZDExZTA1MDZlNmU1ZTkyMTNlODUw
Y2YwOWNkNjM5YTQyM2NkZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1
cHBvcnQvV2ViVXNlck1lZGlhQ2xpZW50Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNv
cmVTdXBwb3J0L1dlYlVzZXJNZWRpYUNsaWVudC5tbQpAQCAtNDgsNyArNDgsNyBAQCBAaW50ZXJm
YWNlIFdlYlVzZXJNZWRpYVBvbGljeUxpc3RlbmVyIDogTlNPYmplY3QgPFdlYkFsbG93RGVueVBv
bGljeUxpc3RlbmVyPgogewogICAgIFJlZlB0cjxVc2VyTWVkaWFSZXF1ZXN0PiBfcmVxdWVzdDsK
IH0KLS0gKGlkKWluaXRXaXRoVXNlck1lZGlhUmVxdWVzdDooUGFzc1JlZlB0cjxVc2VyTWVkaWFS
ZXF1ZXN0PilyZXF1ZXN0OworLSAoaWQpaW5pdFdpdGhVc2VyTWVkaWFSZXF1ZXN0OihSZWY8VXNl
ck1lZGlhUmVxdWVzdD4mJilyZXF1ZXN0OwogLSAodm9pZCljYW5jZWxVc2VyTWVkaWFBY2Nlc3NS
ZXF1ZXN0OwogLSAodm9pZClkZW55OwogQGVuZApAQCAtNTYsNyArNTYsNyBAQCBAZW5kCiBAaW50
ZXJmYWNlIFdlYlVzZXJNZWRpYVBvbGljeUNoZWNrZXJMaXN0ZW5lciA6IE5TT2JqZWN0IDxXZWJB
bGxvd0RlbnlQb2xpY3lMaXN0ZW5lcj4gewogICAgIFJlZlB0cjxNZWRpYURldmljZXNFbnVtZXJh
dGlvblJlcXVlc3Q+IF9yZXF1ZXN0OwogfQotLSAoaWQpaW5pdFdpdGhNZWRpYURldmljZXNFbnVt
ZXJhdGlvblJlcXVlc3Q6KFBhc3NSZWZQdHI8TWVkaWFEZXZpY2VzRW51bWVyYXRpb25SZXF1ZXN0
PilyZXF1ZXN0OworLSAoaWQpaW5pdFdpdGhNZWRpYURldmljZXNFbnVtZXJhdGlvblJlcXVlc3Q6
KFJlZjxNZWRpYURldmljZXNFbnVtZXJhdGlvblJlcXVlc3Q+JiYpcmVxdWVzdDsKIC0gKHZvaWQp
Y2FuY2VsTWVkaWFEZXZpY2VzRW51bWVyYXRpb25SZXF1ZXN0OwogLSAodm9pZClkZW55OwogQGVu
ZApAQCAtMTQxLDcgKzE0MSw3IEBAIHZvaWQgV2ViVXNlck1lZGlhQ2xpZW50OjpyZXF1ZXN0VXNl
ck1lZGlhQWNjZXNzKFVzZXJNZWRpYVJlcXVlc3QmIHJlcXVlc3QpCiAgICAgICAgIHJldHVybjsK
ICAgICB9CiAKLSAgICBXZWJVc2VyTWVkaWFQb2xpY3lMaXN0ZW5lciAqbGlzdGVuZXIgPSBbW1dl
YlVzZXJNZWRpYVBvbGljeUxpc3RlbmVyIGFsbG9jXSBpbml0V2l0aFVzZXJNZWRpYVJlcXVlc3Q6
JnJlcXVlc3RdOworICAgIFdlYlVzZXJNZWRpYVBvbGljeUxpc3RlbmVyICpsaXN0ZW5lciA9IFtb
V2ViVXNlck1lZGlhUG9saWN5TGlzdGVuZXIgYWxsb2NdIGluaXRXaXRoVXNlck1lZGlhUmVxdWVz
dDpyZXF1ZXN0XTsKICAgICBXZWJTZWN1cml0eU9yaWdpbiAqd2ViT3JpZ2luID0gW1tXZWJTZWN1
cml0eU9yaWdpbiBhbGxvY10gX2luaXRXaXRoV2ViQ29yZVNlY3VyaXR5T3JpZ2luOnJlcXVlc3Qu
dXNlck1lZGlhRG9jdW1lbnRPcmlnaW4oKV07CiAKICAgICBBZGRSZXF1ZXN0VG9SZXF1ZXN0TWFw
KCZyZXF1ZXN0LCBsaXN0ZW5lcik7CkBAIC0xNzQsNyArMTc0LDcgQEAgdm9pZCBXZWJVc2VyTWVk
aWFDbGllbnQ6OmVudW1lcmF0ZU1lZGlhRGV2aWNlcyhNZWRpYURldmljZXNFbnVtZXJhdGlvblJl
cXVlc3QmIHIKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIFdlYlVzZXJNZWRpYVBvbGlj
eUNoZWNrZXJMaXN0ZW5lciAqbGlzdGVuZXIgPSBbW1dlYlVzZXJNZWRpYVBvbGljeUNoZWNrZXJM
aXN0ZW5lciBhbGxvY10gaW5pdFdpdGhNZWRpYURldmljZXNFbnVtZXJhdGlvblJlcXVlc3Q6JnJl
cXVlc3RdOworICAgIFdlYlVzZXJNZWRpYVBvbGljeUNoZWNrZXJMaXN0ZW5lciAqbGlzdGVuZXIg
PSBbW1dlYlVzZXJNZWRpYVBvbGljeUNoZWNrZXJMaXN0ZW5lciBhbGxvY10gaW5pdFdpdGhNZWRp
YURldmljZXNFbnVtZXJhdGlvblJlcXVlc3Q6cmVxdWVzdF07CiAgICAgV2ViU2VjdXJpdHlPcmln
aW4gKndlYk9yaWdpbiA9IFtbV2ViU2VjdXJpdHlPcmlnaW4gYWxsb2NdIF9pbml0V2l0aFdlYkNv
cmVTZWN1cml0eU9yaWdpbjpyZXF1ZXN0LnVzZXJNZWRpYURvY3VtZW50T3JpZ2luKCldOwogCiAg
ICAgQWRkUGVybWlzc2lvbkNoZWNrVG9NYXAoJnJlcXVlc3QsIGxpc3RlbmVyKTsKQEAgLTE5OSwx
MyArMTk5LDEzIEBAIHZvaWQgV2ViVXNlck1lZGlhQ2xpZW50OjpjYW5jZWxNZWRpYURldmljZXNF
bnVtZXJhdGlvblJlcXVlc3QoV2ViQ29yZTo6TWVkaWFEZXZpCiAKIEBpbXBsZW1lbnRhdGlvbiBX
ZWJVc2VyTWVkaWFQb2xpY3lMaXN0ZW5lcgogCi0tIChpZClpbml0V2l0aFVzZXJNZWRpYVJlcXVl
c3Q6KFBhc3NSZWZQdHI8VXNlck1lZGlhUmVxdWVzdD4pcmVxdWVzdAorLSAoaWQpaW5pdFdpdGhV
c2VyTWVkaWFSZXF1ZXN0OihSZWY8VXNlck1lZGlhUmVxdWVzdD4mJilyZXF1ZXN0CiB7CiAjaWYg
RU5BQkxFKE1FRElBX1NUUkVBTSkKICAgICBpZiAoIShzZWxmID0gW3N1cGVyIGluaXRdKSkKICAg
ICAgICAgcmV0dXJuIG5pbDsKIAotICAgIF9yZXF1ZXN0ID0gcmVxdWVzdDsKKyAgICBfcmVxdWVz
dCA9IFdURk1vdmUocmVxdWVzdCk7CiAgICAgcmV0dXJuIHNlbGY7CiAjZW5kaWYKIH0KQEAgLTI2
MSwxMyArMjYxLDEzIEBAIEBlbmQKIAogQGltcGxlbWVudGF0aW9uIFdlYlVzZXJNZWRpYVBvbGlj
eUNoZWNrZXJMaXN0ZW5lcgogCi0tIChpZClpbml0V2l0aE1lZGlhRGV2aWNlc0VudW1lcmF0aW9u
UmVxdWVzdDooUGFzc1JlZlB0cjxNZWRpYURldmljZXNFbnVtZXJhdGlvblJlcXVlc3Q+KXJlcXVl
c3QKKy0gKGlkKWluaXRXaXRoTWVkaWFEZXZpY2VzRW51bWVyYXRpb25SZXF1ZXN0OihSZWY8TWVk
aWFEZXZpY2VzRW51bWVyYXRpb25SZXF1ZXN0PiYmKXJlcXVlc3QKIHsKICNpZiBFTkFCTEUoTUVE
SUFfU1RSRUFNKQogICAgIGlmICghKHNlbGYgPSBbc3VwZXIgaW5pdF0pKQogICAgICAgICByZXR1
cm4gbmlsOwogCi0gICAgX3JlcXVlc3QgPSByZXF1ZXN0OworICAgIF9yZXF1ZXN0ID0gV1RGTW92
ZShyZXF1ZXN0KTsKICAgICByZXR1cm4gc2VsZjsKICNlbmRpZgogfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJBcmNoaXZlLm1tIGIvU291cmNlL1dlYktpdC9tYWMv
V2ViVmlldy9XZWJBcmNoaXZlLm1tCmluZGV4IGQxMDQ0ZTFiMGEzMTFlZTgyMTcxNGFiMjlkMmM5
MTI3MjliYzEyNDYuLjdjMmY4NjZlNjNlYTI2NzhiZjVjZDYyN2NmMTg5Yzc1YWE3ZWEwYjMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViQXJjaGl2ZS5tbQorKysgYi9T
b3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkFyY2hpdmUubW0KQEAgLTU4LDkgKzU4LDkgQEAg
QHByaXZhdGUKICAgICBSZWZQdHI8TGVnYWN5V2ViQXJjaGl2ZT4gY29yZUFyY2hpdmU7CiB9CiAK
LS0gKGluc3RhbmNldHlwZSlpbml0V2l0aENvcmVBcmNoaXZlOihQYXNzUmVmUHRyPExlZ2FjeVdl
YkFyY2hpdmU+KWNvcmVBcmNoaXZlOworLSAoaW5zdGFuY2V0eXBlKWluaXRXaXRoQ29yZUFyY2hp
dmU6KFJlZlB0cjxMZWdhY3lXZWJBcmNoaXZlPiYmKWNvcmVBcmNoaXZlOwogLSAoTGVnYWN5V2Vi
QXJjaGl2ZSopY29yZUFyY2hpdmU7Ci0tICh2b2lkKXNldENvcmVBcmNoaXZlOihQYXNzUmVmUHRy
PExlZ2FjeVdlYkFyY2hpdmU+KW5ld0NvcmVBcmNoaXZlOworLSAodm9pZClzZXRDb3JlQXJjaGl2
ZTooUmVmPExlZ2FjeVdlYkFyY2hpdmU+JiYpbmV3Q29yZUFyY2hpdmU7CiBAZW5kCiAKIEBpbXBs
ZW1lbnRhdGlvbiBXZWJBcmNoaXZlUHJpdmF0ZQpAQCAtODMsMTQgKzgzLDE0IEBAIC0gKGluc3Rh
bmNldHlwZSlpbml0CiAgICAgcmV0dXJuIHNlbGY7CiB9CiAKLS0gKGluc3RhbmNldHlwZSlpbml0
V2l0aENvcmVBcmNoaXZlOihQYXNzUmVmUHRyPExlZ2FjeVdlYkFyY2hpdmU+KV9jb3JlQXJjaGl2
ZQorLSAoaW5zdGFuY2V0eXBlKWluaXRXaXRoQ29yZUFyY2hpdmU6KFJlZlB0cjxMZWdhY3lXZWJB
cmNoaXZlPiYmKV9jb3JlQXJjaGl2ZQogewogICAgIHNlbGYgPSBbc3VwZXIgaW5pdF07Ci0gICAg
aWYgKCFzZWxmIHx8ICFfY29yZUFyY2hpdmUpIHsKKyAgICBpZiAoIXNlbGZ8fCAhX2NvcmVBcmNo
aXZlKSB7CiAgICAgICAgIFtzZWxmIHJlbGVhc2VdOwogICAgICAgICByZXR1cm4gbmlsOwogICAg
IH0KLSAgICBjb3JlQXJjaGl2ZSA9IF9jb3JlQXJjaGl2ZTsKKyAgICBjb3JlQXJjaGl2ZSA9IFdU
Rk1vdmUoX2NvcmVBcmNoaXZlKTsKICAgICByZXR1cm4gc2VsZjsKIH0KIApAQCAtOTksMTEgKzk5
LDEwIEBAIC0gKExlZ2FjeVdlYkFyY2hpdmUqKWNvcmVBcmNoaXZlCiAgICAgcmV0dXJuIGNvcmVB
cmNoaXZlLmdldCgpOwogfQogCi0tICh2b2lkKXNldENvcmVBcmNoaXZlOihQYXNzUmVmUHRyPExl
Z2FjeVdlYkFyY2hpdmU+KW5ld0NvcmVBcmNoaXZlCistICh2b2lkKXNldENvcmVBcmNoaXZlOihS
ZWY8TGVnYWN5V2ViQXJjaGl2ZT4mJiluZXdDb3JlQXJjaGl2ZQogewogICAgIEFTU0VSVChjb3Jl
QXJjaGl2ZSk7Ci0gICAgQVNTRVJUKG5ld0NvcmVBcmNoaXZlKTsKLSAgICBjb3JlQXJjaGl2ZSA9
IG5ld0NvcmVBcmNoaXZlOworICAgIGNvcmVBcmNoaXZlID0gV1RGTW92ZShuZXdDb3JlQXJjaGl2
ZSk7CiB9CiAKIC0gKHZvaWQpZGVhbGxvYwpAQCAtMjA2LDcgKzIwNSw3IEBAIC0gKGluc3RhbmNl
dHlwZSlpbml0V2l0aERhdGE6KE5TRGF0YSAqKWRhdGEKICAgICAgICAgcmV0dXJuIG5pbDsKICAg
ICB9CiAgICAgICAgIAotICAgIFtfcHJpdmF0ZSBzZXRDb3JlQXJjaGl2ZTpXVEZNb3ZlKGNvcmVB
cmNoaXZlKV07CisgICAgW19wcml2YXRlIHNldENvcmVBcmNoaXZlOmNvcmVBcmNoaXZlLnJlbGVh
c2VOb25OdWxsKCldOwogICAgICAgICAKICNpZiAhTE9HX0RJU0FCTEVECiAgICAgQ0ZBYnNvbHV0
ZVRpbWUgZW5kID0gQ0ZBYnNvbHV0ZVRpbWVHZXRDdXJyZW50KCk7CkBAIC0zMTcsNyArMzE2LDcg
QEAgLSAoTlNBcnJheSAqKXN1YmZyYW1lQXJjaGl2ZXMKICAgICAgICAgICAgIGF1dG8gbXV0YWJs
ZUFycmF5ID0gW1tOU011dGFibGVBcnJheSBhbGxvY10gaW5pdFdpdGhDYXBhY2l0eTpzdWJmcmFt
ZUFyY2hpdmVzLnNpemUoKV07CiAgICAgICAgICAgICBfcHJpdmF0ZS0+Y2FjaGVkU3ViZnJhbWVB
cmNoaXZlcyA9IG11dGFibGVBcnJheTsKICAgICAgICAgICAgIGZvciAodW5zaWduZWQgaSA9IDA7
IGkgPCBzdWJmcmFtZUFyY2hpdmVzLnNpemUoKTsgKytpKSB7Ci0gICAgICAgICAgICAgICAgV2Vi
QXJjaGl2ZSAqYXJjaGl2ZSA9IFtbV2ViQXJjaGl2ZSBhbGxvY10gX2luaXRXaXRoQ29yZUxlZ2Fj
eVdlYkFyY2hpdmU6KExlZ2FjeVdlYkFyY2hpdmUgKilzdWJmcmFtZUFyY2hpdmVzW2ldLnB0cigp
XTsKKyAgICAgICAgICAgICAgICBXZWJBcmNoaXZlICphcmNoaXZlID0gW1tXZWJBcmNoaXZlIGFs
bG9jXSBfaW5pdFdpdGhDb3JlTGVnYWN5V2ViQXJjaGl2ZTpzdGF0aWNfY2FzdDxMZWdhY3lXZWJB
cmNoaXZlKj4oc3ViZnJhbWVBcmNoaXZlc1tpXS5wdHIoKSldOwogICAgICAgICAgICAgICAgIFtt
dXRhYmxlQXJyYXkgYWRkT2JqZWN0OmFyY2hpdmVdOwogICAgICAgICAgICAgICAgIFthcmNoaXZl
IHJlbGVhc2VdOwogICAgICAgICAgICAgfQpAQCAtMzUwLDcgKzM0OSw3IEBAIEBlbmQKIAogQGlt
cGxlbWVudGF0aW9uIFdlYkFyY2hpdmUgKFdlYkludGVybmFsKQogCi0tIChpZClfaW5pdFdpdGhD
b3JlTGVnYWN5V2ViQXJjaGl2ZTooUGFzc1JlZlB0cjxXZWJDb3JlOjpMZWdhY3lXZWJBcmNoaXZl
Piljb3JlTGVnYWN5V2ViQXJjaGl2ZQorLSAoaWQpX2luaXRXaXRoQ29yZUxlZ2FjeVdlYkFyY2hp
dmU6KFJlZlB0cjxXZWJDb3JlOjpMZWdhY3lXZWJBcmNoaXZlPiYmKWNvcmVMZWdhY3lXZWJBcmNo
aXZlCiB7CiAgICAgV2ViQ29yZVRocmVhZFZpb2xhdGlvbkNoZWNrUm91bmRUd28oKTsKIApAQCAt
MzU4LDcgKzM1Nyw3IEBAIC0gKGlkKV9pbml0V2l0aENvcmVMZWdhY3lXZWJBcmNoaXZlOihQYXNz
UmVmUHRyPFdlYkNvcmU6OkxlZ2FjeVdlYkFyY2hpdmU+KWNvcmVMCiAgICAgaWYgKCFzZWxmKQog
ICAgICAgICByZXR1cm4gbmlsOwogICAgIAotICAgIF9wcml2YXRlID0gW1tXZWJBcmNoaXZlUHJp
dmF0ZSBhbGxvY10gaW5pdFdpdGhDb3JlQXJjaGl2ZTpjb3JlTGVnYWN5V2ViQXJjaGl2ZV07Cisg
ICAgX3ByaXZhdGUgPSBbW1dlYkFyY2hpdmVQcml2YXRlIGFsbG9jXSBpbml0V2l0aENvcmVBcmNo
aXZlOldURk1vdmUoY29yZUxlZ2FjeVdlYkFyY2hpdmUpXTsKICAgICBpZiAoIV9wcml2YXRlKSB7
CiAgICAgICAgIFtzZWxmIHJlbGVhc2VdOwogICAgICAgICByZXR1cm4gbmlsOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJBcmNoaXZlSW50ZXJuYWwuaCBiL1NvdXJj
ZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViQXJjaGl2ZUludGVybmFsLmgKaW5kZXggNmE4YThlOTY5
MmJlYTNmOTJmZWU5NjhlZmU4NjU3OTM1ZGNiOWYzYy4uZGY5ZWUwZDc4YjI2NmUyODU4OTY4MDU3
NmQwM2RkMzRiMzM0YWZjNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9X
ZWJBcmNoaXZlSW50ZXJuYWwuaAorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkFy
Y2hpdmVJbnRlcm5hbC5oCkBAIC0zNSw3ICszNSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAog
QGludGVyZmFjZSBXZWJBcmNoaXZlIChXZWJJbnRlcm5hbCkKIAotLSAoaWQpX2luaXRXaXRoQ29y
ZUxlZ2FjeVdlYkFyY2hpdmU6KFdURjo6UGFzc1JlZlB0cjxXZWJDb3JlOjpMZWdhY3lXZWJBcmNo
aXZlPiljb3JlTGVnYWN5V2ViQXJjaGl2ZTsKKy0gKGlkKV9pbml0V2l0aENvcmVMZWdhY3lXZWJB
cmNoaXZlOihXVEY6OlJlZlB0cjxXZWJDb3JlOjpMZWdhY3lXZWJBcmNoaXZlPiYmKWNvcmVMZWdh
Y3lXZWJBcmNoaXZlOwogLSAoV2ViQ29yZTo6TGVnYWN5V2ViQXJjaGl2ZSAqKV9jb3JlTGVnYWN5
V2ViQXJjaGl2ZTsKIAogQGVuZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmll
dy9XZWJEYXRhU291cmNlLm1tIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJEYXRhU291
cmNlLm1tCmluZGV4IGRmMzYxNzM2YjI5ODExY2Q5NWRjZGI4ZTJmMGJkMzVjOTQ2YjY2MjkuLmQz
MzU2MGE3YjhmMTk5MDg2OTdkYTg2ZDk5YWI3OTlkNThjMWFlNmUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViRGF0YVNvdXJjZS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0
L21hYy9XZWJWaWV3L1dlYkRhdGFTb3VyY2UubW0KQEAgLTc5LDMwICs3OSwyNyBAQCB1c2luZyBu
YW1lc3BhY2UgV2ViQ29yZTsKIGNsYXNzIFdlYkRhdGFTb3VyY2VQcml2YXRlCiB7CiBwdWJsaWM6
Ci0gICAgV2ViRGF0YVNvdXJjZVByaXZhdGUoUGFzc1JlZlB0cjxXZWJEb2N1bWVudExvYWRlck1h
Yz4gbG9hZGVyKQotICAgICAgICA6IGxvYWRlcihsb2FkZXIpCisgICAgV2ViRGF0YVNvdXJjZVBy
aXZhdGUoUmVmPFdlYkRvY3VtZW50TG9hZGVyTWFjPiYmIGxvYWRlcikKKyAgICAgICAgOiBsb2Fk
ZXIoV1RGTW92ZShsb2FkZXIpKQogICAgICAgICAsIHJlcHJlc2VudGF0aW9uRmluaXNoZWRMb2Fk
aW5nKE5PKQogICAgICAgICAsIGluY2x1ZGVkSW5XZWJLaXRTdGF0aXN0aWNzKE5PKQogI2lmIFBM
QVRGT1JNKElPUykKICAgICAgICAgLCBfZGF0YVNvdXJjZURlbGVnYXRlKG5pbCkKICNlbmRpZgog
ICAgIHsKLSAgICAgICAgQVNTRVJUKHRoaXMtPmxvYWRlcik7CiAgICAgfQogICAgIH5XZWJEYXRh
U291cmNlUHJpdmF0ZSgpCiAgICAgewotICAgICAgICBpZiAobG9hZGVyKSB7Ci0gICAgICAgICAg
ICAvLyBXZSBtaWdodCBydW4gaW4gdG8gaW5maW5pdGUgcmVjdXJzaW9uIGlmIHdlJ3JlIHN0b3Bw
aW5nIGxvYWRpbmcgYXMgdGhlIHJlc3VsdCBvZiBkZXRhY2hpbmcgZnJvbSB0aGUgZnJhbWUuCi0g
ICAgICAgICAgICAvLyBUaGVyZWZvcmUsIERvY3VtZW50TG9hZGVyOjpkZXRhY2hGcm9tRnJhbWUo
KSBkaWQgc29tZSBzbWFydCB0aGluZ3MgdG8gc3RvcCB0aGUgcmVjdXJzaW9uLgotICAgICAgICAg
ICAgLy8gQXMgYSByZXN1bHQgb2YgYnJlYWtpbmcgdGhlIHJlc3Vyc2lvbiwgRG9jdW1lbnRMb2Fk
ZXI6Om1fc3VicmVzb3VyY2VMb2FkZXIKLSAgICAgICAgICAgIC8vIGFuZCBEb2N1bWVudExvYWRl
cjo6bV9wbHVnSW5TdHJlYW1Mb2FkZXJzIG1pZ2h0IG5vdCBiZSBlbXB0eSBhdCB0aGlzIHRpbWUu
Ci0gICAgICAgICAgICAvLyBTZWUgPHJkYXI6Ly9wcm9ibGVtLzk2NzM4NjY+IGZvciBtb3JlIGRl
dGFpbHMuCi0gICAgICAgICAgICBBU1NFUlQoIWxvYWRlci0+aXNMb2FkaW5nKCkgfHwgbG9hZGVy
LT5pc1N0b3BwaW5nKCkpOwotICAgICAgICAgICAgbG9hZGVyLT5kZXRhY2hEYXRhU291cmNlKCk7
Ci0gICAgICAgIH0KKyAgICAgICAgLy8gV2UgbWlnaHQgcnVuIGluIHRvIGluZmluaXRlIHJlY3Vy
c2lvbiBpZiB3ZSdyZSBzdG9wcGluZyBsb2FkaW5nIGFzIHRoZSByZXN1bHQgb2YgZGV0YWNoaW5n
IGZyb20gdGhlIGZyYW1lLgorICAgICAgICAvLyBUaGVyZWZvcmUsIERvY3VtZW50TG9hZGVyOjpk
ZXRhY2hGcm9tRnJhbWUoKSBkaWQgc29tZSBzbWFydCB0aGluZ3MgdG8gc3RvcCB0aGUgcmVjdXJz
aW9uLgorICAgICAgICAvLyBBcyBhIHJlc3VsdCBvZiBicmVha2luZyB0aGUgcmVzdXJzaW9uLCBE
b2N1bWVudExvYWRlcjo6bV9zdWJyZXNvdXJjZUxvYWRlcgorICAgICAgICAvLyBhbmQgRG9jdW1l
bnRMb2FkZXI6Om1fcGx1Z0luU3RyZWFtTG9hZGVycyBtaWdodCBub3QgYmUgZW1wdHkgYXQgdGhp
cyB0aW1lLgorICAgICAgICAvLyBTZWUgPHJkYXI6Ly9wcm9ibGVtLzk2NzM4NjY+IGZvciBtb3Jl
IGRldGFpbHMuCisgICAgICAgIEFTU0VSVCghbG9hZGVyLT5pc0xvYWRpbmcoKSB8fCBsb2FkZXIt
PmlzU3RvcHBpbmcoKSk7CisgICAgICAgIGxvYWRlci0+ZGV0YWNoRGF0YVNvdXJjZSgpOwogICAg
IH0KIAotICAgIFJlZlB0cjxXZWJEb2N1bWVudExvYWRlck1hYz4gbG9hZGVyOworICAgIFJlZjxX
ZWJEb2N1bWVudExvYWRlck1hYz4gbG9hZGVyOwogICAgIFJldGFpblB0cjxpZDxXZWJEb2N1bWVu
dFJlcHJlc2VudGF0aW9uPiA+IHJlcHJlc2VudGF0aW9uOwogICAgIEJPT0wgcmVwcmVzZW50YXRp
b25GaW5pc2hlZExvYWRpbmc7CiAgICAgQk9PTCBpbmNsdWRlZEluV2ViS2l0U3RhdGlzdGljczsK
QEAgLTIwMiw5ICsxOTksNiBAQCAtIChOU1N0cmluZyAqKV9yZXNwb25zZU1JTUVUeXBlCiAKIC0g
KHZvaWQpX3NldERlZmVyTWFpblJlc291cmNlRGF0YUxvYWQ6KEJPT0wpZmxhZwogewotICAgIGlm
ICghdG9Qcml2YXRlKF9wcml2YXRlKS0+bG9hZGVyKQotICAgICAgICByZXR1cm47Ci0KICAgICB0
b1ByaXZhdGUoX3ByaXZhdGUpLT5sb2FkZXItPnNldERlZmVyTWFpblJlc291cmNlRGF0YUxvYWQo
ZmxhZyk7CiB9CiAKQEAgLTMxOSw4ICszMTMsNyBAQCAtIChET01Eb2N1bWVudEZyYWdtZW50ICop
X2RvY3VtZW50RnJhZ21lbnRXaXRoQXJjaGl2ZTooV2ViQXJjaGl2ZSAqKWFyY2hpdmUKICAgICAg
ICAgICAgIE5TU3RyaW5nICptYXJrdXBTdHJpbmcgPSBbW05TU3RyaW5nIGFsbG9jXSBpbml0V2l0
aERhdGE6W21haW5SZXNvdXJjZSBkYXRhXSBlbmNvZGluZzpOU1VURjhTdHJpbmdFbmNvZGluZ107
CiAKICAgICAgICAgICAgIC8vIEZJWE1FOiBzZWVtcyBwb29yIGZvcm0gdG8gZG8gdGhpcyBhcyBh
IHNpZGUgZWZmZWN0IG9mIGdldHRpbmcgYSBkb2N1bWVudCBmcmFnbWVudAotICAgICAgICAgICAg
aWYgKHRvUHJpdmF0ZShfcHJpdmF0ZSktPmxvYWRlcikKLSAgICAgICAgICAgICAgICB0b1ByaXZh
dGUoX3ByaXZhdGUpLT5sb2FkZXItPmFkZEFsbEFyY2hpdmVSZXNvdXJjZXMoKlthcmNoaXZlIF9j
b3JlTGVnYWN5V2ViQXJjaGl2ZV0pOworICAgICAgICAgICAgdG9Qcml2YXRlKF9wcml2YXRlKS0+
bG9hZGVyLT5hZGRBbGxBcmNoaXZlUmVzb3VyY2VzKCpbYXJjaGl2ZSBfY29yZUxlZ2FjeVdlYkFy
Y2hpdmVdKTsKIAogICAgICAgICAgICAgRE9NRG9jdW1lbnRGcmFnbWVudCAqZnJhZ21lbnQgPSBb
W3NlbGYgd2ViRnJhbWVdIF9kb2N1bWVudEZyYWdtZW50V2l0aE1hcmt1cFN0cmluZzptYXJrdXBT
dHJpbmcgYmFzZVVSTFN0cmluZzpbW21haW5SZXNvdXJjZSBVUkxdIF93ZWJfb3JpZ2luYWxEYXRh
QXNTdHJpbmddXTsKICAgICAgICAgICAgIFttYXJrdXBTdHJpbmcgcmVsZWFzZV07CkBAIC00MDQs
MTcgKzM5NywxNiBAQCAtICh2b2lkKV9tYWtlUmVwcmVzZW50YXRpb24KIAogLSAoRG9jdW1lbnRM
b2FkZXIqKV9kb2N1bWVudExvYWRlcgogewotICAgIHJldHVybiB0b1ByaXZhdGUoX3ByaXZhdGUp
LT5sb2FkZXIuZ2V0KCk7CisgICAgcmV0dXJuIHRvUHJpdmF0ZShfcHJpdmF0ZSktPmxvYWRlci5w
dHIoKTsKIH0KIAotLSAoaWQpX2luaXRXaXRoRG9jdW1lbnRMb2FkZXI6KFBhc3NSZWZQdHI8V2Vi
RG9jdW1lbnRMb2FkZXJNYWM+KWxvYWRlcgorLSAoaWQpX2luaXRXaXRoRG9jdW1lbnRMb2FkZXI6
KFJlZjxXZWJEb2N1bWVudExvYWRlck1hYz4mJilsb2FkZXIKIHsKICAgICBzZWxmID0gW3N1cGVy
IGluaXRdOwogICAgIGlmICghc2VsZikKICAgICAgICAgcmV0dXJuIG5pbDsKIAotICAgIEFTU0VS
VChsb2FkZXIpOwotICAgIF9wcml2YXRlID0gc3RhdGljX2Nhc3Q8dm9pZCo+KG5ldyBXZWJEYXRh
U291cmNlUHJpdmF0ZShsb2FkZXIpKTsKKyAgICBfcHJpdmF0ZSA9IHN0YXRpY19jYXN0PHZvaWQq
PihuZXcgV2ViRGF0YVNvdXJjZVByaXZhdGUoV1RGTW92ZShsb2FkZXIpKSk7CiAgICAgICAgIAog
ICAgIExPRyhMb2FkaW5nLCAiY3JlYXRpbmcgZGF0YXNvdXJjZSBmb3IgJUAiLCBzdGF0aWNfY2Fz
dDxOU1VSTCAqPih0b1ByaXZhdGUoX3ByaXZhdGUpLT5sb2FkZXItPnJlcXVlc3QoKS51cmwoKSkp
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkRhdGFTb3VyY2VJ
bnRlcm5hbC5oIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJEYXRhU291cmNlSW50ZXJu
YWwuaAppbmRleCBkZTE2MWNiYjU2MDA3NDA1YjU3Y2Y0ZTkwNjBhODk3NTk0ZDFhOGQ0Li5iMTAx
YjEzZGNjMjViNjE1NjNiMTgwOTVmMzlkNjFkYzNjNjcyYzYyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L21hYy9XZWJWaWV3L1dlYkRhdGFTb3VyY2VJbnRlcm5hbC5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvbWFjL1dlYlZpZXcvV2ViRGF0YVNvdXJjZUludGVybmFsLmgKQEAgLTUxLDcgKzUxLDcg
QEAgY2xhc3MgV2ViRG9jdW1lbnRMb2FkZXJNYWM7CiAtIChET01Eb2N1bWVudEZyYWdtZW50ICop
X2RvY3VtZW50RnJhZ21lbnRXaXRoQXJjaGl2ZTooV2ViQXJjaGl2ZSAqKWFyY2hpdmU7CiArIChO
U011dGFibGVEaWN0aW9uYXJ5ICopX3JlcFR5cGVzQWxsb3dJbWFnZVR5cGVPbWlzc2lvbjooQk9P
TClhbGxvd0ltYWdlVHlwZU9taXNzaW9uOwogLSAodm9pZClfcmVwbGFjZVNlbGVjdGlvbldpdGhB
cmNoaXZlOihXZWJBcmNoaXZlICopYXJjaGl2ZSBzZWxlY3RSZXBsYWNlbWVudDooQk9PTClzZWxl
Y3RSZXBsYWNlbWVudDsKLS0gKGlkKV9pbml0V2l0aERvY3VtZW50TG9hZGVyOihQYXNzUmVmUHRy
PFdlYkRvY3VtZW50TG9hZGVyTWFjPilsb2FkZXI7CistIChpZClfaW5pdFdpdGhEb2N1bWVudExv
YWRlcjooUmVmPFdlYkRvY3VtZW50TG9hZGVyTWFjPiYmKWxvYWRlcjsKIC0gKHZvaWQpX2Zpbmlz
aGVkTG9hZGluZzsKIC0gKHZvaWQpX3JlY2VpdmVkRGF0YTooTlNEYXRhICopZGF0YTsKIC0gKHZv
aWQpX3JldmVydFRvUHJvdmlzaW9uYWxTdGF0ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
bWFjL1dlYlZpZXcvV2ViRGV2aWNlT3JpZW50YXRpb24ubW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9X
ZWJWaWV3L1dlYkRldmljZU9yaWVudGF0aW9uLm1tCmluZGV4IDBlZWMyMzhkOGM1NDdiNWVhNmY0
NTU1YjZlNWRjZGIyYTEwZjY5YmIuLmQwODg5NTg5ZGIxYmI2M2IzY2EyZDY3Njg4Y2FlOTBlNTZj
MDU0ZjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViRGV2aWNlT3Jp
ZW50YXRpb24ubW0KKysrIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJEZXZpY2VPcmll
bnRhdGlvbi5tbQpAQCAtMjksMTIgKzI5LDEyIEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwog
CiBAaW1wbGVtZW50YXRpb24gV2ViRGV2aWNlT3JpZW50YXRpb25JbnRlcm5hbAogCi0tIChpZClp
bml0V2l0aENvcmVEZXZpY2VPcmllbnRhdGlvbjooUGFzc1JlZlB0cjxEZXZpY2VPcmllbnRhdGlv
bkRhdGE+KWNvcmVEZXZpY2VPcmllbnRhdGlvbgorLSAoaWQpaW5pdFdpdGhDb3JlRGV2aWNlT3Jp
ZW50YXRpb246KFJlZlB0cjxEZXZpY2VPcmllbnRhdGlvbkRhdGE+JiYpY29yZURldmljZU9yaWVu
dGF0aW9uCiB7CiAgICAgc2VsZiA9IFtzdXBlciBpbml0XTsKICAgICBpZiAoIXNlbGYpCiAgICAg
ICAgIHJldHVybiBuaWw7Ci0gICAgbV9vcmllbnRhdGlvbiA9IGNvcmVEZXZpY2VPcmllbnRhdGlv
bjsKKyAgICBtX29yaWVudGF0aW9uID0gV1RGTW92ZShjb3JlRGV2aWNlT3JpZW50YXRpb24pOwog
ICAgIHJldHVybiBzZWxmOwogfQogCkBAIC00MiwxMiArNDIsMTIgQEAgQGVuZAogCiBAaW1wbGVt
ZW50YXRpb24gV2ViRGV2aWNlT3JpZW50YXRpb24gKEludGVybmFsKQogCi0tIChpZClpbml0V2l0
aENvcmVEZXZpY2VPcmllbnRhdGlvbjooUGFzc1JlZlB0cjxXZWJDb3JlOjpEZXZpY2VPcmllbnRh
dGlvbkRhdGE+KWNvcmVEZXZpY2VPcmllbnRhdGlvbgorLSAoaWQpaW5pdFdpdGhDb3JlRGV2aWNl
T3JpZW50YXRpb246KFJlZlB0cjxXZWJDb3JlOjpEZXZpY2VPcmllbnRhdGlvbkRhdGE+JiYpY29y
ZURldmljZU9yaWVudGF0aW9uCiB7CiAgICAgc2VsZiA9IFtzdXBlciBpbml0XTsKICAgICBpZiAo
IXNlbGYpCiAgICAgICAgIHJldHVybiBuaWw7Ci0gICAgbV9pbnRlcm5hbCA9IFtbV2ViRGV2aWNl
T3JpZW50YXRpb25JbnRlcm5hbCBhbGxvY10gaW5pdFdpdGhDb3JlRGV2aWNlT3JpZW50YXRpb246
Y29yZURldmljZU9yaWVudGF0aW9uXTsKKyAgICBtX2ludGVybmFsID0gW1tXZWJEZXZpY2VPcmll
bnRhdGlvbkludGVybmFsIGFsbG9jXSBpbml0V2l0aENvcmVEZXZpY2VPcmllbnRhdGlvbjpXVEZN
b3ZlKGNvcmVEZXZpY2VPcmllbnRhdGlvbildOwogICAgIHJldHVybiBzZWxmOwogfQogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkRldmljZU9yaWVudGF0aW9uSW50
ZXJuYWwuaCBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViRGV2aWNlT3JpZW50YXRpb25J
bnRlcm5hbC5oCmluZGV4IDVkZWRkMDgwYzc2ZjQ0ODU0OTI5OTJmOTQ3N2E4ZWNiYTQxZGVlOWUu
LmZjYzNiYjNjOTk2OWFhNTVmOGQzNTgxNmE3MTM0MGFmNWJhOTY2ODggMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViRGV2aWNlT3JpZW50YXRpb25JbnRlcm5hbC5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViRGV2aWNlT3JpZW50YXRpb25JbnRlcm5h
bC5oCkBAIC0zMywxMiArMzMsMTIgQEAKICAgICBSZWZQdHI8V2ViQ29yZTo6RGV2aWNlT3JpZW50
YXRpb25EYXRhPiBtX29yaWVudGF0aW9uOwogfQogCi0tIChpZClpbml0V2l0aENvcmVEZXZpY2VP
cmllbnRhdGlvbjooUGFzc1JlZlB0cjxXZWJDb3JlOjpEZXZpY2VPcmllbnRhdGlvbkRhdGE+KWNv
cmVEZXZpY2VPcmllbnRhdGlvbjsKKy0gKGlkKWluaXRXaXRoQ29yZURldmljZU9yaWVudGF0aW9u
OihSZWZQdHI8V2ViQ29yZTo6RGV2aWNlT3JpZW50YXRpb25EYXRhPiYmKWNvcmVEZXZpY2VPcmll
bnRhdGlvbjsKIEBlbmQKIAogQGludGVyZmFjZSBXZWJEZXZpY2VPcmllbnRhdGlvbiAoSW50ZXJu
YWwpCiAKLS0gKGlkKWluaXRXaXRoQ29yZURldmljZU9yaWVudGF0aW9uOihQYXNzUmVmUHRyPFdl
YkNvcmU6OkRldmljZU9yaWVudGF0aW9uRGF0YT4pY29yZURldmljZU9yaWVudGF0aW9uOworLSAo
aWQpaW5pdFdpdGhDb3JlRGV2aWNlT3JpZW50YXRpb246KFJlZlB0cjxXZWJDb3JlOjpEZXZpY2VP
cmllbnRhdGlvbkRhdGE+JiYpY29yZURldmljZU9yaWVudGF0aW9uOwogCiBAZW5kCiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViRnJhbWUubW0gYi9Tb3VyY2UvV2Vi
S2l0L21hYy9XZWJWaWV3L1dlYkZyYW1lLm1tCmluZGV4IDM2ODVlMmMwNmYwNTZmNTYxMTZjZjRl
NGIzOGZhNDE3YjM2OTZjZDIuLjcwMzI2MDA3NGVjMzM5Yzg4ODIwYjc5NTBjZmIxNDRlZDc3NGNk
ODQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViRnJhbWUubW0KKysr
IGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJGcmFtZS5tbQpAQCAtNzkyLDE1ICs3OTIs
MTUgQEAgLSAoTlNSYW5nZSlfY29udmVydFRvTlNSYW5nZTooUmFuZ2UgKilyYW5nZQogICAgIHJl
dHVybiBOU01ha2VSYW5nZShsb2NhdGlvbiwgbGVuZ3RoKTsKIH0KIAotLSAoUGFzc1JlZlB0cjxS
YW5nZT4pX2NvbnZlcnRUb0RPTVJhbmdlOihOU1JhbmdlKW5zcmFuZ2UKKy0gKFJlZlB0cjxSYW5n
ZT4pX2NvbnZlcnRUb0RPTVJhbmdlOihOU1JhbmdlKW5zcmFuZ2UKIHsKICAgICByZXR1cm4gW3Nl
bGYgX2NvbnZlcnRUb0RPTVJhbmdlOm5zcmFuZ2UgcmFuZ2VJc1JlbGF0aXZlVG86V2ViUmFuZ2VJ
c1JlbGF0aXZlVG86OkVkaXRhYmxlUm9vdF07CiB9CiAKLS0gKFBhc3NSZWZQdHI8UmFuZ2U+KV9j
b252ZXJ0VG9ET01SYW5nZTooTlNSYW5nZSluc3JhbmdlIHJhbmdlSXNSZWxhdGl2ZVRvOihXZWJS
YW5nZUlzUmVsYXRpdmVUbylyYW5nZUlzUmVsYXRpdmVUbworLSAoUmVmUHRyPFJhbmdlPilfY29u
dmVydFRvRE9NUmFuZ2U6KE5TUmFuZ2UpbnNyYW5nZSByYW5nZUlzUmVsYXRpdmVUbzooV2ViUmFu
Z2VJc1JlbGF0aXZlVG8pcmFuZ2VJc1JlbGF0aXZlVG8KIHsKICAgICBpZiAobnNyYW5nZS5sb2Nh
dGlvbiA+IElOVF9NQVgpCi0gICAgICAgIHJldHVybiAwOworICAgICAgICByZXR1cm4gbnVsbHB0
cjsKICAgICBpZiAobnNyYW5nZS5sZW5ndGggPiBJTlRfTUFYIHx8IG5zcmFuZ2UubG9jYXRpb24g
KyBuc3JhbmdlLmxlbmd0aCA+IElOVF9NQVgpCiAgICAgICAgIG5zcmFuZ2UubGVuZ3RoID0gSU5U
X01BWCAtIG5zcmFuZ2UubG9jYXRpb247CiAKQEAgLTgyMiwxMSArODIyLDExIEBAIC0gKFBhc3NS
ZWZQdHI8UmFuZ2U+KV9jb252ZXJ0VG9ET01SYW5nZTooTlNSYW5nZSluc3JhbmdlIHJhbmdlSXNS
ZWxhdGl2ZVRvOihXZWJSCiAgICAgY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYgc2VsZWN0aW9uID0g
X3ByaXZhdGUtPmNvcmVGcmFtZS0+c2VsZWN0aW9uKCkuc2VsZWN0aW9uKCk7CiAgICAgUmVmUHRy
PFJhbmdlPiBzZWxlY3RlZFJhbmdlID0gc2VsZWN0aW9uLnRvTm9ybWFsaXplZFJhbmdlKCk7CiAg
ICAgaWYgKCFzZWxlY3RlZFJhbmdlKQotICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgcmV0dXJu
IG51bGxwdHI7CiAKICAgICBSZWZQdHI8UmFuZ2U+IHBhcmFncmFwaFJhbmdlID0gbWFrZVJhbmdl
KHN0YXJ0T2ZQYXJhZ3JhcGgoc2VsZWN0aW9uLnZpc2libGVTdGFydCgpKSwgc2VsZWN0aW9uLnZp
c2libGVFbmQoKSk7CiAgICAgaWYgKCFwYXJhZ3JhcGhSYW5nZSkKLSAgICAgICAgcmV0dXJuIDA7
CisgICAgICAgIHJldHVybiBudWxscHRyOwogCiAgICAgQ29udGFpbmVyTm9kZSYgcm9vdE5vZGUg
PSBwYXJhZ3JhcGhSYW5nZS5nZXQoKS0+c3RhcnRDb250YWluZXIoKS50cmVlU2NvcGUoKS5yb290
Tm9kZSgpOwogICAgIGludCBwYXJhZ3JhcGhTdGFydEluZGV4ID0gVGV4dEl0ZXJhdG9yOjpyYW5n
ZUxlbmd0aChSYW5nZTo6Y3JlYXRlKHJvb3ROb2RlLmRvY3VtZW50KCksICZyb290Tm9kZSwgMCwg
JnBhcmFncmFwaFJhbmdlLT5zdGFydENvbnRhaW5lcigpLCBwYXJhZ3JhcGhSYW5nZS0+c3RhcnRP
ZmZzZXQoKSkucHRyKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9X
ZWJGcmFtZUludGVybmFsLmggYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkZyYW1lSW50
ZXJuYWwuaAppbmRleCA1YzcyZDI4N2ZhNTc3MDg5Y2Q0NDBmMDY3YzFjZGEzYWMxY2Y2MTlhLi4y
OWE3ZDRlNWMzMTQxZmVjYTA3MzYyYTVjZTY4MTRlMWQzYWJjNDJkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkZyYW1lSW50ZXJuYWwuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L21hYy9XZWJWaWV3L1dlYkZyYW1lSW50ZXJuYWwuaApAQCAtMTY0LDggKzE2NCw4IEBAIFdl
YlZpZXcgKmdldFdlYlZpZXcoV2ViRnJhbWUgKndlYkZyYW1lKTsKIC0gKERPTVJhbmdlICopX3Jh
bmdlQnlBbHRlcmluZ0N1cnJlbnRTZWxlY3Rpb246KFdlYkNvcmU6OkZyYW1lU2VsZWN0aW9uOjpF
QWx0ZXJhdGlvbilhbHRlcmF0aW9uIGRpcmVjdGlvbjooV2ViQ29yZTo6U2VsZWN0aW9uRGlyZWN0
aW9uKWRpcmVjdGlvbiBncmFudWxhcml0eTooV2ViQ29yZTo6VGV4dEdyYW51bGFyaXR5KWdyYW51
bGFyaXR5OwogI2VuZGlmCiAtIChOU1JhbmdlKV9jb252ZXJ0VG9OU1JhbmdlOihXZWJDb3JlOjpS
YW5nZSopcmFuZ2U7Ci0tIChQYXNzUmVmUHRyPFdlYkNvcmU6OlJhbmdlPilfY29udmVydFRvRE9N
UmFuZ2U6KE5TUmFuZ2UpbnNyYW5nZTsKLS0gKFBhc3NSZWZQdHI8V2ViQ29yZTo6UmFuZ2U+KV9j
b252ZXJ0VG9ET01SYW5nZTooTlNSYW5nZSluc3JhbmdlIHJhbmdlSXNSZWxhdGl2ZVRvOihXZWJS
YW5nZUlzUmVsYXRpdmVUbylyYW5nZUlzUmVsYXRpdmVUbzsKKy0gKFJlZlB0cjxXZWJDb3JlOjpS
YW5nZT4pX2NvbnZlcnRUb0RPTVJhbmdlOihOU1JhbmdlKW5zcmFuZ2U7CistIChSZWZQdHI8V2Vi
Q29yZTo6UmFuZ2U+KV9jb252ZXJ0VG9ET01SYW5nZTooTlNSYW5nZSluc3JhbmdlIHJhbmdlSXNS
ZWxhdGl2ZVRvOihXZWJSYW5nZUlzUmVsYXRpdmVUbylyYW5nZUlzUmVsYXRpdmVUbzsKIAogLSAo
RE9NRG9jdW1lbnRGcmFnbWVudCAqKV9kb2N1bWVudEZyYWdtZW50V2l0aE1hcmt1cFN0cmluZzoo
TlNTdHJpbmcgKiltYXJrdXBTdHJpbmcgYmFzZVVSTFN0cmluZzooTlNTdHJpbmcgKiliYXNlVVJM
U3RyaW5nOwogLSAoRE9NRG9jdW1lbnRGcmFnbWVudCAqKV9kb2N1bWVudEZyYWdtZW50V2l0aE5v
ZGVzQXNQYXJhZ3JhcGhzOihOU0FycmF5ICopbm9kZXM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L21hYy9XZWJWaWV3L1dlYkZ1bGxTY3JlZW5Db250cm9sbGVyLmggYi9Tb3VyY2UvV2ViS2l0
L21hYy9XZWJWaWV3L1dlYkZ1bGxTY3JlZW5Db250cm9sbGVyLmgKaW5kZXggNDk4MWEyMTg3MjA4
NmJjY2M0OWEzZTk1YjNkZjBiNjU1NTdhYTljMS4uNjBkOTZlODQ3YWZkMWRjNGJjOTg0MzU3YWQ4
ZGMwZjEwN2ZkNTI1NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJG
dWxsU2NyZWVuQ29udHJvbGxlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2Vi
RnVsbFNjcmVlbkNvbnRyb2xsZXIuaApAQCAtNjcsNyArNjcsNyBAQCBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKIC0gKEJPT0wpaXNGdWxsU2NyZWVuOwogCi0tICh2b2lkKXNldEVsZW1lbnQ6KFBhc3NS
ZWZQdHI8V2ViQ29yZTo6RWxlbWVudD4pZWxlbWVudDsKKy0gKHZvaWQpc2V0RWxlbWVudDooUmVm
UHRyPFdlYkNvcmU6OkVsZW1lbnQ+JiYpZWxlbWVudDsKIC0gKFdlYkNvcmU6OkVsZW1lbnQqKWVs
ZW1lbnQ7CiAKIC0gKHZvaWQpZW50ZXJGdWxsU2NyZWVuOihOU1NjcmVlbiAqKXNjcmVlbjsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViRnVsbFNjcmVlbkNvbnRyb2xs
ZXIubW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkZ1bGxTY3JlZW5Db250cm9sbGVy
Lm1tCmluZGV4IDRiY2Y0OTlmZTAwZmJkOWY4NmNkMzhiZjQxNDlmNDFiNWJkMzAzN2IuLjFkZGYx
OTdkYzU2MWExN2YwOTc2ZjIzZDM2NzlhMzZmNGVmNjU5NTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvbWFjL1dlYlZpZXcvV2ViRnVsbFNjcmVlbkNvbnRyb2xsZXIubW0KKysrIGIvU291cmNl
L1dlYktpdC9tYWMvV2ViVmlldy9XZWJGdWxsU2NyZWVuQ29udHJvbGxlci5tbQpAQCAtMTM4LDkg
KzEzOCw5IEBAIC0gKEVsZW1lbnQqKWVsZW1lbnQKICAgICByZXR1cm4gX2VsZW1lbnQuZ2V0KCk7
CiB9CiAKLS0gKHZvaWQpc2V0RWxlbWVudDooUGFzc1JlZlB0cjxFbGVtZW50PillbGVtZW50Cist
ICh2b2lkKXNldEVsZW1lbnQ6KFJlZlB0cjxFbGVtZW50PiYmKWVsZW1lbnQKIHsKLSAgICBfZWxl
bWVudCA9IGVsZW1lbnQ7CisgICAgX2VsZW1lbnQgPSBXVEZNb3ZlKGVsZW1lbnQpOwogfQogCiAt
IChCT09MKWlzRnVsbFNjcmVlbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmll
dy9XZWJHZW9sb2NhdGlvblBvc2l0aW9uLm1tIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9X
ZWJHZW9sb2NhdGlvblBvc2l0aW9uLm1tCmluZGV4IDc5MzdlZjM3MDJlYjIzNTExYTBiZWNjYjVl
MTQwNTAyNWExODI2YjMuLjQ1NmQ0YmE4YmRmMGU3MTY0NDkwNzUzMjFmOWVkZDRmMDg0NWRmYTAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViR2VvbG9jYXRpb25Qb3Np
dGlvbi5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkdlb2xvY2F0aW9uUG9z
aXRpb24ubW0KQEAgLTI2LDcgKzI2LDYgQEAKICNpbXBvcnQgIldlYkdlb2xvY2F0aW9uUG9zaXRp
b24uaCIKIAogI2ltcG9ydCAiV2ViR2VvbG9jYXRpb25Qb3NpdGlvbkludGVybmFsLmgiCi0jaW1w
b3J0IDx3dGYvUGFzc1JlZlB0ci5oPgogI2ltcG9ydCA8d3RmL1JlZlB0ci5oPgogCiAjaW1wb3J0
IDxXZWJDb3JlL0dlb2xvY2F0aW9uUG9zaXRpb24uaD4KQEAgLTM5LDE3ICszOCwxNyBAQCBAcHVi
bGljCiAgICAgUmVmUHRyPEdlb2xvY2F0aW9uUG9zaXRpb24+IF9wb3NpdGlvbjsKIH0KIAotLSAo
aWQpaW5pdFdpdGhDb3JlR2VvbG9jYXRpb25Qb3NpdGlvbjooUGFzc1JlZlB0cjxHZW9sb2NhdGlv
blBvc2l0aW9uPiljb3JlR2VvbG9jYXRpb25Qb3NpdGlvbjsKKy0gKGlkKWluaXRXaXRoQ29yZUdl
b2xvY2F0aW9uUG9zaXRpb246KFJlZlB0cjxHZW9sb2NhdGlvblBvc2l0aW9uPiYmKWNvcmVHZW9s
b2NhdGlvblBvc2l0aW9uOwogQGVuZAogCiBAaW1wbGVtZW50YXRpb24gV2ViR2VvbG9jYXRpb25Q
b3NpdGlvbkludGVybmFsCiAKLS0gKGlkKWluaXRXaXRoQ29yZUdlb2xvY2F0aW9uUG9zaXRpb246
KFBhc3NSZWZQdHI8R2VvbG9jYXRpb25Qb3NpdGlvbj4pY29yZUdlb2xvY2F0aW9uUG9zaXRpb24K
Ky0gKGlkKWluaXRXaXRoQ29yZUdlb2xvY2F0aW9uUG9zaXRpb246KFJlZlB0cjxHZW9sb2NhdGlv
blBvc2l0aW9uPiYmKWNvcmVHZW9sb2NhdGlvblBvc2l0aW9uCiB7CiAgICAgc2VsZiA9IFtzdXBl
ciBpbml0XTsKICAgICBpZiAoIXNlbGYpCiAgICAgICAgIHJldHVybiBuaWw7Ci0gICAgX3Bvc2l0
aW9uID0gY29yZUdlb2xvY2F0aW9uUG9zaXRpb247CisgICAgX3Bvc2l0aW9uID0gV1RGTW92ZShj
b3JlR2VvbG9jYXRpb25Qb3NpdGlvbik7CiAgICAgcmV0dXJuIHNlbGY7CiB9CiAKQEAgLTcxLDEy
ICs3MCwxMiBAQCAtIChpZClpbml0V2l0aFRpbWVzdGFtcDooZG91YmxlKXRpbWVzdGFtcCBsYXRp
dHVkZTooZG91YmxlKWxhdGl0dWRlIGxvbmdpdHVkZTooZAogICAgIHJldHVybiBzZWxmOwogfQog
Ci0tIChpZClpbml0V2l0aEdlb2xvY2F0aW9uUG9zaXRpb246KFJlZlB0cjxHZW9sb2NhdGlvblBv
c2l0aW9uPiljb3JlR2VvbG9jYXRpb25Qb3NpdGlvbgorLSAoaWQpaW5pdFdpdGhHZW9sb2NhdGlv
blBvc2l0aW9uOihSZWZQdHI8R2VvbG9jYXRpb25Qb3NpdGlvbj4mJiljb3JlR2VvbG9jYXRpb25Q
b3NpdGlvbgogewogICAgIHNlbGYgPSBbc3VwZXIgaW5pdF07CiAgICAgaWYgKCFzZWxmKQogICAg
ICAgICByZXR1cm4gbmlsOwotICAgIF9pbnRlcm5hbCA9IFtbV2ViR2VvbG9jYXRpb25Qb3NpdGlv
bkludGVybmFsIGFsbG9jXSBpbml0V2l0aENvcmVHZW9sb2NhdGlvblBvc2l0aW9uOmNvcmVHZW9s
b2NhdGlvblBvc2l0aW9uXTsKKyAgICBfaW50ZXJuYWwgPSBbW1dlYkdlb2xvY2F0aW9uUG9zaXRp
b25JbnRlcm5hbCBhbGxvY10gaW5pdFdpdGhDb3JlR2VvbG9jYXRpb25Qb3NpdGlvbjpXVEZNb3Zl
KGNvcmVHZW9sb2NhdGlvblBvc2l0aW9uKV07CiAgICAgcmV0dXJuIHNlbGY7CiB9CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViSFRNTFZpZXcubW0gYi9Tb3VyY2Uv
V2ViS2l0L21hYy9XZWJWaWV3L1dlYkhUTUxWaWV3Lm1tCmluZGV4IDg1MmM5MTQ4NjlkM2I0ZDQ0
YjQyYmRhODEwYTgwZTI3YTM0ZDQwNjYuLjVkNTVhYjEzYmE3NGNiN2YxYmZlY2I3OTE4NjcwMzIw
M2YyY2QwN2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViSFRNTFZp
ZXcubW0KKysrIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJIVE1MVmlldy5tbQpAQCAt
NDgyNiwxMiArNDgyNiwxMiBAQCBzdGF0aWMgQk9PTCBpc0luUGFzc3dvcmRGaWVsZChGcmFtZSog
Y29yZUZyYW1lKQogfQogI2VuZGlmCiAKLXN0YXRpYyBQYXNzUmVmUHRyPEtleWJvYXJkRXZlbnQ+
IGN1cnJlbnRLZXlib2FyZEV2ZW50KEZyYW1lKiBjb3JlRnJhbWUpCitzdGF0aWMgUmVmUHRyPEtl
eWJvYXJkRXZlbnQ+IGN1cnJlbnRLZXlib2FyZEV2ZW50KEZyYW1lKiBjb3JlRnJhbWUpCiB7CiAj
aWYgIVBMQVRGT1JNKElPUykKICAgICBOU0V2ZW50ICpldmVudCA9IFtOU0FwcCBjdXJyZW50RXZl
bnRdOwogICAgIGlmICghZXZlbnQpCi0gICAgICAgIHJldHVybiAwOworICAgICAgICByZXR1cm4g
bnVsbHB0cjsKIAogICAgIHN3aXRjaCAoW2V2ZW50IHR5cGVdKSB7CiAgICAgY2FzZSBOU0V2ZW50
VHlwZUtleURvd246IHsKQEAgLTQ4NDIsMTggKzQ4NDIsMTggQEAgc3RhdGljIFBhc3NSZWZQdHI8
S2V5Ym9hcmRFdmVudD4gY3VycmVudEtleWJvYXJkRXZlbnQoRnJhbWUqIGNvcmVGcmFtZSkKICAg
ICBjYXNlIE5TRXZlbnRUeXBlS2V5VXA6CiAgICAgICAgIHJldHVybiBLZXlib2FyZEV2ZW50Ojpj
cmVhdGUoUGxhdGZvcm1FdmVudEZhY3Rvcnk6OmNyZWF0ZVBsYXRmb3JtS2V5Ym9hcmRFdmVudChl
dmVudCksIGNvcmVGcmFtZS0+ZG9jdW1lbnQoKS0+ZGVmYXVsdFZpZXcoKSk7CiAgICAgZGVmYXVs
dDoKLSAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIH0KICNl
bHNlCiAgICAgV2ViRXZlbnQgKmV2ZW50ID0gW1dBS1dpbmRvdyBjdXJyZW50RXZlbnRdOwogICAg
IGlmICghZXZlbnQpCi0gICAgICAgIHJldHVybiAwOworICAgICAgICByZXR1cm4gbnVsbHB0cjsK
ICAgICBXZWJFdmVudFR5cGUgdHlwZSA9IGV2ZW50LnR5cGU7CiAgICAgaWYgKHR5cGUgPT0gV2Vi
RXZlbnRLZXlEb3duIHx8IHR5cGUgPT0gV2ViRXZlbnRLZXlVcCkgewogICAgICAgICBEb2N1bWVu
dCogZG9jdW1lbnQgPSBjb3JlRnJhbWUtPmRvY3VtZW50KCk7CiAgICAgICAgIHJldHVybiBLZXli
b2FyZEV2ZW50OjpjcmVhdGUoUGxhdGZvcm1FdmVudEZhY3Rvcnk6OmNyZWF0ZVBsYXRmb3JtS2V5
Ym9hcmRFdmVudChldmVudCksIGRvY3VtZW50ID8gZG9jdW1lbnQtPmRlZmF1bHRWaWV3KCkgOiAw
KTsKICAgICB9Ci0gICAgcmV0dXJuIDA7CisgICAgcmV0dXJuIG51bGxwdHI7CiAjZW5kaWYKIH0K
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJSZXNvdXJjZS5tbSBi
L1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViUmVzb3VyY2UubW0KaW5kZXggMzk3N2I0NDRh
OWY1NTYzMmRhNjdkNDNiODIzNDY5YTQ2YTIzNDllYi4uMTlkZjA1ZWQ4Y2UzNzRiYjQ0Y2I0M2Ey
MWZlZWI3NjgwMTExZmMxNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9X
ZWJSZXNvdXJjZS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlJlc291cmNl
Lm1tCkBAIC0zNSw3ICszNSw2IEBACiAjaW1wb3J0ICJXZWJOU09iamVjdEV4dHJhcy5oIgogI2lt
cG9ydCAiV2ViTlNVUkxFeHRyYXMuaCIKICNpbXBvcnQgPEphdmFTY3JpcHRDb3JlL0luaXRpYWxp
emVUaHJlYWRpbmcuaD4KLSNpbXBvcnQgPHd0Zi9QYXNzUmVmUHRyLmg+CiAjaW1wb3J0IDxXZWJD
b3JlL0FyY2hpdmVSZXNvdXJjZS5oPgogI2ltcG9ydCA8V2ViQ29yZS9MZWdhY3lXZWJBcmNoaXZl
Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL1J1bnRpbWVBcHBsaWNhdGlvbkNoZWNrcy5oPgpAQCAtNDQs
NiArNDMsNyBAQAogI2ltcG9ydCA8V2ViQ29yZS9XZWJDb3JlT2JqQ0V4dHJhcy5oPgogI2ltcG9y
dCA8V2ViQ29yZS9XZWJDb3JlVVJMUmVzcG9uc2UuaD4KICNpbXBvcnQgPHd0Zi9NYWluVGhyZWFk
Lmg+CisjaW1wb3J0IDx3dGYvUmVmUHRyLmg+CiAjaW1wb3J0IDx3dGYvUnVuTG9vcC5oPgogCiB1
c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dl
YlZpZXcvV2ViU2NyaXB0V29ybGQubW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlNj
cmlwdFdvcmxkLm1tCmluZGV4IDc4NDhiMjQ1OTk1ZWU2N2YzMDRiOWFhMGZlMzBiZDM5MmNiMDRj
YjUuLjNlYmYxOTM1MTU4NjUyNDU3NWVmZTJkNmQ3NjU2MTZiNWEwOGIzYTcgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViU2NyaXB0V29ybGQubW0KKysrIGIvU291cmNl
L1dlYktpdC9tYWMvV2ViVmlldy9XZWJTY3JpcHRXb3JsZC5tbQpAQCAtNTIsMTggKzUyLDE0IEBA
IHN0YXRpYyBXb3JsZE1hcCYgYWxsV29ybGRzKCkKIAogQGltcGxlbWVudGF0aW9uIFdlYlNjcmlw
dFdvcmxkCiAKLS0gKGlkKWluaXRXaXRoV29ybGQ6KFBhc3NSZWZQdHI8RE9NV3JhcHBlcldvcmxk
Pil3b3JsZAorLSAoaWQpaW5pdFdpdGhXb3JsZDooUmVmPERPTVdyYXBwZXJXb3JsZD4mJil3b3Js
ZAogewotICAgIEFTU0VSVF9BUkcod29ybGQsIHdvcmxkKTsKLSAgICBpZiAoIXdvcmxkKQotICAg
ICAgICByZXR1cm4gbmlsOwotCiAgICAgc2VsZiA9IFtzdXBlciBpbml0XTsKICAgICBpZiAoIXNl
bGYpCiAgICAgICAgIHJldHVybiBuaWw7CiAKICAgICBfcHJpdmF0ZSA9IFtbV2ViU2NyaXB0V29y
bGRQcml2YXRlIGFsbG9jXSBpbml0XTsKLSAgICBfcHJpdmF0ZS0+d29ybGQgPSB3b3JsZDsKKyAg
ICBfcHJpdmF0ZS0+d29ybGQgPSBXVEZNb3ZlKHdvcmxkKTsKIAogICAgIEFTU0VSVF9BUkcod29y
bGQsICFhbGxXb3JsZHMoKS5jb250YWlucyhfcHJpdmF0ZS0+d29ybGQuZ2V0KCkpKTsKICAgICBh
bGxXb3JsZHMoKS5hZGQoX3ByaXZhdGUtPndvcmxkLmdldCgpLCBzZWxmKTsKQEAgLTkzLDcgKzg5
LDcgQEAgLSAodm9pZClkZWFsbG9jCiAKICsgKFdlYlNjcmlwdFdvcmxkICopc3RhbmRhcmRXb3Js
ZAogewotICAgIHN0YXRpYyBXZWJTY3JpcHRXb3JsZCAqd29ybGQgPSBbW1dlYlNjcmlwdFdvcmxk
IGFsbG9jXSBpbml0V2l0aFdvcmxkOiZtYWluVGhyZWFkTm9ybWFsV29ybGQoKV07CisgICAgc3Rh
dGljIFdlYlNjcmlwdFdvcmxkICp3b3JsZCA9IFtbV2ViU2NyaXB0V29ybGQgYWxsb2NdIGluaXRX
aXRoV29ybGQ6bWFpblRocmVhZE5vcm1hbFdvcmxkKCldOwogICAgIHJldHVybiB3b3JsZDsKIH0K
IApAQCAtMTMxLDcgKzEyNyw3IEBAICsgKFdlYlNjcmlwdFdvcmxkICopZmluZE9yQ3JlYXRlV29y
bGQ6KERPTVdyYXBwZXJXb3JsZCYpd29ybGQKICAgICBpZiAoV2ViU2NyaXB0V29ybGQgKmV4aXN0
aW5nV29ybGQgPSBhbGxXb3JsZHMoKS5nZXQoJndvcmxkKSkKICAgICAgICAgcmV0dXJuIGV4aXN0
aW5nV29ybGQ7CiAKLSAgICByZXR1cm4gW1tbc2VsZiBhbGxvY10gaW5pdFdpdGhXb3JsZDomd29y
bGRdIGF1dG9yZWxlYXNlXTsKKyAgICByZXR1cm4gW1tbc2VsZiBhbGxvY10gaW5pdFdpdGhXb3Js
ZDp3b3JsZF0gYXV0b3JlbGVhc2VdOwogfQogCiBAZW5kCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L21hYy9XZWJWaWV3L1dlYlZpZXdEYXRhLmggYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3
L1dlYlZpZXdEYXRhLmgKaW5kZXggODhmNjkyYzVjY2Y4ZDk1NTkwNDlkZDYyYWMyODk4NGI3YWRl
NjhjYS4uNmMzNjkyODY3N2JmNjUzNjRlYWJkY2M1NmUwOTQ1YzEwNmMyZTY5MyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3RGF0YS5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlld0RhdGEuaApAQCAtMTI4LDkgKzEyOCw5IEBAIHByaXZh
dGU6CiAKIGNsYXNzIExheWVyRmx1c2hDb250cm9sbGVyIDogcHVibGljIFJlZkNvdW50ZWQ8TGF5
ZXJGbHVzaENvbnRyb2xsZXI+LCBwdWJsaWMgV2ViQ29yZTo6TGF5ZXJGbHVzaFNjaGVkdWxlckNs
aWVudCB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8TGF5ZXJGbHVzaENvbnRyb2xs
ZXI+IGNyZWF0ZShXZWJWaWV3KiB3ZWJWaWV3KQorICAgIHN0YXRpYyBSZWY8TGF5ZXJGbHVzaENv
bnRyb2xsZXI+IGNyZWF0ZShXZWJWaWV3KiB3ZWJWaWV3KQogICAgIHsKLSAgICAgICAgcmV0dXJu
IGFkb3B0UmVmKG5ldyBMYXllckZsdXNoQ29udHJvbGxlcih3ZWJWaWV3KSk7CisgICAgICAgIHJl
dHVybiBhZG9wdFJlZigqbmV3IExheWVyRmx1c2hDb250cm9sbGVyKHdlYlZpZXcpKTsKICAgICB9
CiAgICAgCiAgICAgdmlydHVhbCBib29sIGZsdXNoTGF5ZXJzKCk7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>