<?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>178330</bug_id>
          
          <creation_ts>2017-10-15 20:55:46 -0700</creation_ts>
          <short_desc>[Settings] Remove all custom code from Settings.h/cpp</short_desc>
          <delta_ts>2017-10-16 13:34:29 -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>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Sam Weinig">sam</reporter>
          <assigned_to name="Sam Weinig">sam</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1360660</commentid>
    <comment_count>0</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2017-10-15 20:55:46 -0700</bug_when>
    <thetext>[Settings] Remove all custom code from Settings.h/cpp</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1360663</commentid>
    <comment_count>1</comment_count>
      <attachid>323868</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2017-10-15 20:58:29 -0700</bug_when>
    <thetext>Created attachment 323868
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1360664</commentid>
    <comment_count>2</comment_count>
      <attachid>323869</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2017-10-15 21:02:41 -0700</bug_when>
    <thetext>Created attachment 323869
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1360669</commentid>
    <comment_count>3</comment_count>
      <attachid>323871</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2017-10-15 21:20:59 -0700</bug_when>
    <thetext>Created attachment 323871
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1360713</commentid>
    <comment_count>4</comment_count>
      <attachid>323882</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2017-10-16 03:20:02 -0700</bug_when>
    <thetext>Created attachment 323882
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1360720</commentid>
    <comment_count>5</comment_count>
      <attachid>323884</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2017-10-16 03:34:40 -0700</bug_when>
    <thetext>Created attachment 323884
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1360759</commentid>
    <comment_count>6</comment_count>
      <attachid>323895</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2017-10-16 08:15:53 -0700</bug_when>
    <thetext>Created attachment 323895
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1360761</commentid>
    <comment_count>7</comment_count>
      <attachid>323896</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2017-10-16 08:36:11 -0700</bug_when>
    <thetext>Created attachment 323896
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1360762</commentid>
    <comment_count>8</comment_count>
      <attachid>323897</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2017-10-16 08:38:30 -0700</bug_when>
    <thetext>Created attachment 323897
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1360832</commentid>
    <comment_count>9</comment_count>
      <attachid>323907</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2017-10-16 10:57:26 -0700</bug_when>
    <thetext>Created attachment 323907
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1360911</commentid>
    <comment_count>10</comment_count>
      <attachid>323907</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-10-16 13:12:36 -0700</bug_when>
    <thetext>Comment on attachment 323907
Patch

Rejecting attachment 323907 from commit-queue.

Failed to run &quot;[&apos;/Volumes/Data/EWS/WebKit/Tools/Scripts/webkit-patch&apos;, &apos;--status-host=webkit-queues.webkit.org&apos;, &apos;--bot-id=webkit-cq-03&apos;, &apos;validate-changelog&apos;, &apos;--check-oops&apos;, &apos;--non-interactive&apos;, 323907, &apos;--port=mac&apos;]&quot; exit_code: 1 cwd: /Volumes/Data/EWS/WebKit

/Volumes/Data/EWS/WebKit/Source/WebKit/ChangeLog neither lists a valid reviewer nor contains the string &quot;Unreviewed&quot; or &quot;Rubber stamp&quot; (case insensitive).

Full output: http://webkit-queues.webkit.org/results/4873915</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1360930</commentid>
    <comment_count>11</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2017-10-16 13:33:34 -0700</bug_when>
    <thetext>Committed r223432: &lt;https://trac.webkit.org/changeset/223432&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1360934</commentid>
    <comment_count>12</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2017-10-16 13:34:29 -0700</bug_when>
    <thetext>&lt;rdar://problem/35013435&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>323868</attachid>
            <date>2017-10-15 20:58:29 -0700</date>
            <delta_ts>2017-10-15 21:02:40 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-178330-20171015205828.patch</filename>
            <type>text/plain</type>
            <size>9243</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIyMzMzMykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM2IEBACisyMDE3LTEwLTE1ICBTYW0gV2Vp
bmlnICA8c2FtQHdlYmtpdC5vcmc+CisKKyAgICAgICAgW1NldHRpbmdzXSBSZW1vdmUgYWxsIGN1
c3RvbSBjb2RlIGZyb20gU2V0dGluZ3MuaC9jcHAKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTE3ODMzMAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIFJlbW92ZXMgdGhlIHR3byByZW1haW5pbmcgZnVuY3Rpb25z
IG91dCBvZiBTZXR0aW5ncyBwYXZpbmcgdGhlIHdheQorICAgICAgICBmb3IgdGhlIGZpbGUgdG8g
YmUgZ2VuZXJhdGVkLgorICAgICAgICAKKyAgICAgICAgLSBwYWdlRGVzdHJveWVkIHdhcyBtb3Zl
ZCBkb3duIGludG8gU2V0dGluZ3NCYXNlLgorICAgICAgICAtIGVmZmVjdGl2ZUZyYW1lRmxhdHRl
bmluZyB3YXMgbW92ZWQgdG8gRnJhbWVWaWV3ICh0byByZWR1Y2UgdGhlIG5lZWQKKyAgICAgICAg
ICBmb3IgYWRkaXRpb25hbCBpbmNsdWRlcywgdGhlIEZyYW1lRmxhdHRlbmluZyBlbnVtIHdhcyBj
b252ZXJ0ZWQgdG8KKyAgICAgICAgICBhbiBlbnVtIGNsYXNzIHRvIGFsbG93IGl0IHRvIGJlIGZv
cndhcmQgZGVjbGFyZWQpLgorCisgICAgICAgICogcGFnZS9GcmFtZVZpZXcuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6RnJhbWVWaWV3OjplZmZlY3RpdmVGcmFtZUZsYXR0ZW5pbmcpOgorICAgICAg
ICAoV2ViQ29yZTo6RnJhbWVWaWV3OjpmcmFtZUZsYXR0ZW5pbmdFbmFibGVkIGNvbnN0KToKKyAg
ICAgICAgKiBwYWdlL0ZyYW1lVmlldy5oOgorICAgICAgICAqIHBhZ2UvU2V0dGluZ3MuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6U2V0dGluZ3M6OmVmZmVjdGl2ZUZyYW1lRmxhdHRlbmluZyk6IERl
bGV0ZWQuCisgICAgICAgICogcGFnZS9TZXR0aW5ncy5oOgorICAgICAgICAoV2ViQ29yZTo6U2V0
dGluZ3M6OnBhZ2VEZXN0cm95ZWQpOiBEZWxldGVkLgorICAgICAgICAqIHBhZ2UvU2V0dGluZ3Mu
aW46CisgICAgICAgICogcGFnZS9TZXR0aW5nc0Jhc2UuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNl
dHRpbmdzQmFzZTo6cGFnZURlc3Ryb3llZCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckZy
YW1lU2V0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckZyYW1lU2V0OjpmbGF0dGVuRnJh
bWVTZXQgY29uc3QpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJJRnJhbWUuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6UmVuZGVySUZyYW1lOjpmbGF0dGVuRnJhbWUgY29uc3QpOgorICAgICAg
ICAqIHJlbmRlcmluZy9SZW5kZXJWaWV3LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lRmxh
dHRlbmluZ0xheW91dERpc2FsbG93ZXI6OkZyYW1lRmxhdHRlbmluZ0xheW91dERpc2FsbG93ZXIp
OgorCiAyMDE3LTEwLTE1ICBTYW0gV2VpbmlnICA8c2FtQHdlYmtpdC5vcmc+CiAKICAgICAgICAg
W1NldHRpbmdzXSBTcGxpdCBub24tbWFjcm8gZ2VuZXJhdGVkIHBhcnRzIG9mIFNldHRpbmdzIGlu
dG8gU2V0dGluZ3NCYXNlIGJhc2UgY2xhc3MKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2UvRnJh
bWVWaWV3LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5j
cHAJKHJldmlzaW9uIDIyMzMzMikKKysrIFNvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNw
cAkod29ya2luZyBjb3B5KQpAQCAtNTY2LDkgKzU2NiwyMSBAQCB2b2lkIEZyYW1lVmlldzo6c2V0
TWFyZ2luSGVpZ2h0KExheW91dFVuCiAgICAgbV9tYXJnaW5zLnNldEhlaWdodChoKTsKIH0KIAor
RnJhbWVGbGF0dGVuaW5nIEZyYW1lVmlldzo6ZWZmZWN0aXZlRnJhbWVGbGF0dGVuaW5nKCkKK3sK
KyNpZiBQTEFURk9STShJT1MpCisgICAgLy8gT24gaU9TIHdoZW4gYXN5bmMgZnJhbWUgc2Nyb2xs
aW5nIGlzIGVuYWJsZWQsIGl0IGRvZXMgbm90IG1ha2Ugc2Vuc2UgdG8gdXNlIGZ1bGwgZnJhbWUg
ZmxhdHRlbmluZy4KKyAgICAvLyBJbiB0aGF0IGNhc2UsIHdlIGp1c3QgY29uc2lkZXIgdGhhdCBm
cmFtZSBmbGF0dGVuaW5nIGlzIGRpc2FibGVkLiBUaGlzIGFsbG93cyBwZW9wbGUgdG8gdGVzdAor
ICAgIC8vIGZyYW1lIHNjcm9sbGluZyBvbiBpT1MgYnkgZW5hYmxpbmcgIkFzeW5jIEZyYW1lIFNj
cm9sbGluZyIgdmlhIHRoZSBTYWZhcmkgbWVudS4KKyAgICBpZiAoZnJhbWUoKS5zZXR0aW5ncygp
LmFzeW5jRnJhbWVTY3JvbGxpbmdFbmFibGVkKCkgJiYgZnJhbWUoKS5zZXR0aW5ncygpLmZyYW1l
RmxhdHRlbmluZygpID09IEZyYW1lRmxhdHRlbmluZzo6RnVsbHlFbmFibGVkKQorICAgICAgICBy
ZXR1cm4gRnJhbWVGbGF0dGVuaW5nOjpEaXNhYmxlZDsKKyNlbmRpZgorICAgIHJldHVybiBmcmFt
ZSgpLnNldHRpbmdzKCkuZnJhbWVGbGF0dGVuaW5nKCk7Cit9CisKIGJvb2wgRnJhbWVWaWV3Ojpm
cmFtZUZsYXR0ZW5pbmdFbmFibGVkKCkgY29uc3QKIHsKLSAgICByZXR1cm4gZnJhbWUoKS5zZXR0
aW5ncygpLmVmZmVjdGl2ZUZyYW1lRmxhdHRlbmluZygpICE9IEZyYW1lRmxhdHRlbmluZ0Rpc2Fi
bGVkOworICAgIHJldHVybiBlZmZlY3RpdmVGcmFtZUZsYXR0ZW5pbmcoKSAhPSBGcmFtZUZsYXR0
ZW5pbmc6OkRpc2FibGVkOwogfQogCiBib29sIEZyYW1lVmlldzo6aXNGcmFtZUZsYXR0ZW5pbmdW
YWxpZEZvclRoaXNGcmFtZSgpIGNvbnN0CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1l
Vmlldy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmgJKHJl
dmlzaW9uIDIyMzMzMikKKysrIFNvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmgJKHdvcmtp
bmcgY29weSkKQEAgLTYxLDYgKzYxLDggQEAgY2xhc3MgUmVuZGVyU3R5bGU7CiBjbGFzcyBSZW5k
ZXJWaWV3OwogY2xhc3MgUmVuZGVyV2lkZ2V0OwogCitlbnVtIGNsYXNzIEZyYW1lRmxhdHRlbmlu
ZzsKKwogUGFnaW5hdGlvbjo6TW9kZSBwYWdpbmF0aW9uTW9kZUZvclJlbmRlclN0eWxlKGNvbnN0
IFJlbmRlclN0eWxlJik7CiAKIGNsYXNzIEZyYW1lVmlldyBmaW5hbCA6IHB1YmxpYyBTY3JvbGxW
aWV3IHsKQEAgLTYzNSw2ICs2MzcsOCBAQCBwdWJsaWM6CiAKICAgICB2b2lkIHNldFNwZWN1bGF0
aXZlVGlsaW5nRGVsYXlEaXNhYmxlZEZvclRlc3RpbmcoYm9vbCBkaXNhYmxlZCkgeyBtX3NwZWN1
bGF0aXZlVGlsaW5nRGVsYXlEaXNhYmxlZEZvclRlc3RpbmcgPSBkaXNhYmxlZDsgfQogCisgICAg
RnJhbWVGbGF0dGVuaW5nIGVmZmVjdGl2ZUZyYW1lRmxhdHRlbmluZygpOworCiBwcm90ZWN0ZWQ6
CiAgICAgYm9vbCBzY3JvbGxDb250ZW50c0Zhc3RQYXRoKGNvbnN0IEludFNpemUmIHNjcm9sbERl
bHRhLCBjb25zdCBJbnRSZWN0JiByZWN0VG9TY3JvbGwsIGNvbnN0IEludFJlY3QmIGNsaXBSZWN0
KSBmaW5hbDsKICAgICB2b2lkIHNjcm9sbENvbnRlbnRzU2xvd1BhdGgoY29uc3QgSW50UmVjdCYg
dXBkYXRlUmVjdCkgZmluYWw7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmNwcAkocmV2aXNp
b24gMjIzMzMyKQorKysgU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTEzNCwxNiArMTM0LDQgQEAgU2V0dGluZ3M6On5TZXR0aW5ncygpCiAKIFNFVFRJ
TkdTX1NFVFRFUl9CT0RJRVMKIAotRnJhbWVGbGF0dGVuaW5nIFNldHRpbmdzOjplZmZlY3RpdmVG
cmFtZUZsYXR0ZW5pbmcoKQotewotI2lmIFBMQVRGT1JNKElPUykKLSAgICAvLyBPbiBpT1Mgd2hl
biBhc3luYyBmcmFtZSBzY3JvbGxpbmcgaXMgZW5hYmxlZCwgaXQgZG9lcyBub3QgbWFrZSBzZW5z
ZSB0byB1c2UgZnVsbCBmcmFtZSBmbGF0dGVuaW5nLgotICAgIC8vIEluIHRoYXQgY2FzZSwgd2Ug
anVzdCBjb25zaWRlciB0aGF0IGZyYW1lIGZsYXR0ZW5pbmcgaXMgZGlzYWJsZWQuIFRoaXMgYWxs
b3dzIHBlb3BsZSB0byB0ZXN0Ci0gICAgLy8gZnJhbWUgc2Nyb2xsaW5nIG9uIGlPUyBieSBlbmFi
bGluZyAiQXN5bmMgRnJhbWUgU2Nyb2xsaW5nIiB2aWEgdGhlIFNhZmFyaSBtZW51LgotICAgIGlm
IChhc3luY0ZyYW1lU2Nyb2xsaW5nRW5hYmxlZCgpICYmIGZyYW1lRmxhdHRlbmluZygpID09IEZy
YW1lRmxhdHRlbmluZ0Z1bGx5RW5hYmxlZCkKLSAgICAgICAgcmV0dXJuIEZyYW1lRmxhdHRlbmlu
Z0Rpc2FibGVkOwotI2VuZGlmCi0gICAgcmV0dXJuIGZyYW1lRmxhdHRlbmluZygpOwotfQotCiB9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdz
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5oCShyZXZpc2lv
biAyMjMzMzIpCisrKyBTb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmgJKHdvcmtpbmcgY29w
eSkKQEAgLTI3LDYgKzI3LDcgQEAKICNwcmFnbWEgb25jZQogCiAjaW5jbHVkZSAiU2V0dGluZ3NC
YXNlLmgiCisjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUg
ewogCkBAIC0zNiwxOCArMzcsMTIgQEAgcHVibGljOgogICAgIHN0YXRpYyBSZWY8U2V0dGluZ3M+
IGNyZWF0ZShQYWdlKik7CiAgICAgflNldHRpbmdzKCk7CiAKLSAgICB2b2lkIHBhZ2VEZXN0cm95
ZWQoKSB7IG1fcGFnZSA9IG51bGxwdHI7IH0KLQogICAgIFNFVFRJTkdTX0dFVFRFUlNfQU5EX1NF
VFRFUlMKIAotCi0gICAgV0VCQ09SRV9FWFBPUlQgRnJhbWVGbGF0dGVuaW5nIGVmZmVjdGl2ZUZy
YW1lRmxhdHRlbmluZygpOwotCiBwcml2YXRlOgogICAgIGV4cGxpY2l0IFNldHRpbmdzKFBhZ2Uq
KTsKIAogICAgIFNFVFRJTkdTX01FTUJFUl9WQVJJQUJMRVMKLQogfTsKIAogfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQpJbmRleDogU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5pbgo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmluCShyZXZpc2lvbiAyMjMzMzIp
CisrKyBTb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmluCSh3b3JraW5nIGNvcHkpCkBAIC0x
NzUsNyArMTc1LDcgQEAgc25hcHNob3RBbGxQbHVnSW5zIGluaXRpYWw9ZmFsc2UKIGF1dG9zdGFy
dE9yaWdpblBsdWdJblNuYXBzaG90dGluZ0VuYWJsZWQgaW5pdGlhbD10cnVlCiBwcmltYXJ5UGx1
Z0luU25hcHNob3REZXRlY3Rpb25FbmFibGVkIGluaXRpYWw9dHJ1ZQogbWF4aW11bVBsdWdJblNu
YXBzaG90QXR0ZW1wdHMgdHlwZT11bnNpZ25lZCwgaW5pdGlhbD0yMAotZnJhbWVGbGF0dGVuaW5n
IHR5cGU9RnJhbWVGbGF0dGVuaW5nLCBpbml0aWFsPUZyYW1lRmxhdHRlbmluZ0Rpc2FibGVkCitm
cmFtZUZsYXR0ZW5pbmcgdHlwZT1GcmFtZUZsYXR0ZW5pbmcsIGluaXRpYWw9RnJhbWVGbGF0dGVu
aW5nOjpEaXNhYmxlZAogYXN5bmNGcmFtZVNjcm9sbGluZ0VuYWJsZWQgaW5pdGlhbD1mYWxzZQog
CiB3ZWJTZWN1cml0eUVuYWJsZWQgaW5pdGlhbD10cnVlCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9w
YWdlL1NldHRpbmdzQmFzZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0
dGluZ3NCYXNlLmgJKHJldmlzaW9uIDIyMzMzMikKKysrIFNvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0
dGluZ3NCYXNlLmgJKHdvcmtpbmcgY29weSkKQEAgLTg4LDEwICs4OCwxMCBAQCBlbnVtIFBERklt
YWdlQ2FjaGluZ1BvbGljeSB7CiAjZW5kaWYKIH07CiAKLWVudW0gRnJhbWVGbGF0dGVuaW5nIHsK
LSAgICBGcmFtZUZsYXR0ZW5pbmdEaXNhYmxlZCwKLSAgICBGcmFtZUZsYXR0ZW5pbmdFbmFibGVk
Rm9yTm9uRnVsbFNjcmVlbklGcmFtZXMsCi0gICAgRnJhbWVGbGF0dGVuaW5nRnVsbHlFbmFibGVk
CitlbnVtIGNsYXNzIEZyYW1lRmxhdHRlbmluZyB7CisgICAgRGlzYWJsZWQsCisgICAgRW5hYmxl
ZEZvck5vbkZ1bGxTY3JlZW5JRnJhbWVzLAorICAgIEZ1bGx5RW5hYmxlZAogfTsKIAogdHlwZWRl
ZiB1bnNpZ25lZCBEZWJ1Z092ZXJsYXlSZWdpb25zOwpAQCAtMTAxLDYgKzEwMSw4IEBAIGNsYXNz
IFNldHRpbmdzQmFzZSB7CiBwdWJsaWM6CiAgICAgflNldHRpbmdzQmFzZSgpOwogCisgICAgdm9p
ZCBwYWdlRGVzdHJveWVkKCkgeyBtX3BhZ2UgPSBudWxscHRyOyB9CisKICAgICBlbnVtIGNsYXNz
IEZvbnRMb2FkVGltaW5nT3ZlcnJpZGUgeyBOb25lLCBCbG9jaywgU3dhcCwgRmFpbHVyZSB9Owog
CiAgICAgZW51bSBjbGFzcyBGb3JjZWRBY2Nlc3NpYmlsaXR5VmFsdWUgeyBTeXN0ZW0sIE9uLCBP
ZmYgfTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGcmFtZVNldC5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZyYW1lU2V0LmNw
cAkocmV2aXNpb24gMjIzMzMyKQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZy
YW1lU2V0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNjUxLDcgKzY1MSw3IEBAIHZvaWQgUmVuZGVy
RnJhbWVTZXQ6OnBvc2l0aW9uRnJhbWVzV2l0aEYKIAogYm9vbCBSZW5kZXJGcmFtZVNldDo6Zmxh
dHRlbkZyYW1lU2V0KCkgY29uc3QKIHsKLSAgICByZXR1cm4gc2V0dGluZ3MoKS5lZmZlY3RpdmVG
cmFtZUZsYXR0ZW5pbmcoKSAhPSBGcmFtZUZsYXR0ZW5pbmdEaXNhYmxlZDsKKyAgICByZXR1cm4g
dmlldygpLmZyYW1lVmlldygpLmVmZmVjdGl2ZUZyYW1lRmxhdHRlbmluZygpICE9IEZyYW1lRmxh
dHRlbmluZzo6RGlzYWJsZWQ7CiB9CiAKIHZvaWQgUmVuZGVyRnJhbWVTZXQ6OnN0YXJ0UmVzaXpp
bmcoR3JpZEF4aXMmIGF4aXMsIGludCBwb3NpdGlvbikKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJJRnJhbWUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJJRnJhbWUuY3BwCShyZXZpc2lvbiAyMjMzMzIpCisrKyBTb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVySUZyYW1lLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNzgsNyAr
NzgsNyBAQCBib29sIFJlbmRlcklGcmFtZTo6aXNGdWxsU2NyZWVuSUZyYW1lKCkgCiAKIGJvb2wg
UmVuZGVySUZyYW1lOjpmbGF0dGVuRnJhbWUoKSBjb25zdAogewotICAgIGlmIChzZXR0aW5ncygp
LmVmZmVjdGl2ZUZyYW1lRmxhdHRlbmluZygpID09IEZyYW1lRmxhdHRlbmluZ0Rpc2FibGVkKQor
ICAgIGlmICh2aWV3KCkuZnJhbWVWaWV3KCkuZWZmZWN0aXZlRnJhbWVGbGF0dGVuaW5nKCkgPT0g
RnJhbWVGbGF0dGVuaW5nOjpEaXNhYmxlZCkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAg
aWYgKHN0eWxlKCkud2lkdGgoKS5pc0ZpeGVkKCkgJiYgc3R5bGUoKS5oZWlnaHQoKS5pc0ZpeGVk
KCkpIHsKQEAgLTg5LDcgKzg5LDcgQEAgYm9vbCBSZW5kZXJJRnJhbWU6OmZsYXR0ZW5GcmFtZSgp
IGNvbnN0CiAgICAgICAgIGlmIChzdHlsZSgpLndpZHRoKCkudmFsdWUoKSA8PSAwIHx8IHN0eWxl
KCkuaGVpZ2h0KCkudmFsdWUoKSA8PSAwKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAg
ICAgICAvLyBEbyBub3QgZmxhdHRlbiAiZnVsbHNjcmVlbiIgaWZyYW1lcyBvciB0aGV5IGNvdWxk
IGJlY29tZSBsYXJnZXIgdGhhbiB0aGUgdmlld3BvcnQuCi0gICAgICAgIGlmIChzZXR0aW5ncygp
LmVmZmVjdGl2ZUZyYW1lRmxhdHRlbmluZygpIDw9IEZyYW1lRmxhdHRlbmluZ0VuYWJsZWRGb3JO
b25GdWxsU2NyZWVuSUZyYW1lcyAmJiBpc0Z1bGxTY3JlZW5JRnJhbWUoKSkKKyAgICAgICAgaWYg
KHZpZXcoKS5mcmFtZVZpZXcoKS5lZmZlY3RpdmVGcmFtZUZsYXR0ZW5pbmcoKSA8PSBGcmFtZUZs
YXR0ZW5pbmc6OkVuYWJsZWRGb3JOb25GdWxsU2NyZWVuSUZyYW1lcyAmJiBpc0Z1bGxTY3JlZW5J
RnJhbWUoKSkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CiAKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJWaWV3LmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVmlldy5jcHAJKHJldmlzaW9uIDIyMzMzMikKKysrIFNv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJWaWV3LmNwcAkod29ya2luZyBjb3B5KQpAQCAt
NTksNyArNTksNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBzdHJ1Y3QgRnJhbWVGbGF0dGVuaW5n
TGF5b3V0RGlzYWxsb3dlciB7CiAgICAgRnJhbWVGbGF0dGVuaW5nTGF5b3V0RGlzYWxsb3dlcihG
cmFtZVZpZXcmIGZyYW1lVmlldykKICAgICAgICAgOiBtX2ZyYW1lVmlldyhmcmFtZVZpZXcpCi0g
ICAgICAgICwgbV9kaXNhbGxvd0xheW91dChmcmFtZVZpZXcuZnJhbWUoKS5zZXR0aW5ncygpLmVm
ZmVjdGl2ZUZyYW1lRmxhdHRlbmluZygpICE9IEZyYW1lRmxhdHRlbmluZ0Rpc2FibGVkKQorICAg
ICAgICAsIG1fZGlzYWxsb3dMYXlvdXQoZnJhbWVWaWV3LmVmZmVjdGl2ZUZyYW1lRmxhdHRlbmlu
ZygpICE9IEZyYW1lRmxhdHRlbmluZzo6RGlzYWJsZWQpCiAgICAgewogICAgICAgICBpZiAobV9k
aXNhbGxvd0xheW91dCkKICAgICAgICAgICAgIG1fZnJhbWVWaWV3LnN0YXJ0RGlzYWxsb3dpbmdM
YXlvdXQoKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>323869</attachid>
            <date>2017-10-15 21:02:41 -0700</date>
            <delta_ts>2017-10-15 21:20:57 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-178330-20171015210241.patch</filename>
            <type>text/plain</type>
            <size>11257</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIyMzMzMykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM2IEBACisyMDE3LTEwLTE1ICBTYW0gV2Vp
bmlnICA8c2FtQHdlYmtpdC5vcmc+CisKKyAgICAgICAgW1NldHRpbmdzXSBSZW1vdmUgYWxsIGN1
c3RvbSBjb2RlIGZyb20gU2V0dGluZ3MuaC9jcHAKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTE3ODMzMAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIFJlbW92ZXMgdGhlIHR3byByZW1haW5pbmcgZnVuY3Rpb25z
IG91dCBvZiBTZXR0aW5ncyBwYXZpbmcgdGhlIHdheQorICAgICAgICBmb3IgdGhlIGZpbGUgdG8g
YmUgZ2VuZXJhdGVkLgorICAgICAgICAKKyAgICAgICAgLSBwYWdlRGVzdHJveWVkIHdhcyBtb3Zl
ZCBkb3duIGludG8gU2V0dGluZ3NCYXNlLgorICAgICAgICAtIGVmZmVjdGl2ZUZyYW1lRmxhdHRl
bmluZyB3YXMgbW92ZWQgdG8gRnJhbWVWaWV3ICh0byByZWR1Y2UgdGhlIG5lZWQKKyAgICAgICAg
ICBmb3IgYWRkaXRpb25hbCBpbmNsdWRlcywgdGhlIEZyYW1lRmxhdHRlbmluZyBlbnVtIHdhcyBj
b252ZXJ0ZWQgdG8KKyAgICAgICAgICBhbiBlbnVtIGNsYXNzIHRvIGFsbG93IGl0IHRvIGJlIGZv
cndhcmQgZGVjbGFyZWQpLgorCisgICAgICAgICogcGFnZS9GcmFtZVZpZXcuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6RnJhbWVWaWV3OjplZmZlY3RpdmVGcmFtZUZsYXR0ZW5pbmcpOgorICAgICAg
ICAoV2ViQ29yZTo6RnJhbWVWaWV3OjpmcmFtZUZsYXR0ZW5pbmdFbmFibGVkIGNvbnN0KToKKyAg
ICAgICAgKiBwYWdlL0ZyYW1lVmlldy5oOgorICAgICAgICAqIHBhZ2UvU2V0dGluZ3MuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6U2V0dGluZ3M6OmVmZmVjdGl2ZUZyYW1lRmxhdHRlbmluZyk6IERl
bGV0ZWQuCisgICAgICAgICogcGFnZS9TZXR0aW5ncy5oOgorICAgICAgICAoV2ViQ29yZTo6U2V0
dGluZ3M6OnBhZ2VEZXN0cm95ZWQpOiBEZWxldGVkLgorICAgICAgICAqIHBhZ2UvU2V0dGluZ3Mu
aW46CisgICAgICAgICogcGFnZS9TZXR0aW5nc0Jhc2UuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNl
dHRpbmdzQmFzZTo6cGFnZURlc3Ryb3llZCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckZy
YW1lU2V0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckZyYW1lU2V0OjpmbGF0dGVuRnJh
bWVTZXQgY29uc3QpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJJRnJhbWUuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6UmVuZGVySUZyYW1lOjpmbGF0dGVuRnJhbWUgY29uc3QpOgorICAgICAg
ICAqIHJlbmRlcmluZy9SZW5kZXJWaWV3LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lRmxh
dHRlbmluZ0xheW91dERpc2FsbG93ZXI6OkZyYW1lRmxhdHRlbmluZ0xheW91dERpc2FsbG93ZXIp
OgorCiAyMDE3LTEwLTE1ICBTYW0gV2VpbmlnICA8c2FtQHdlYmtpdC5vcmc+CiAKICAgICAgICAg
W1NldHRpbmdzXSBTcGxpdCBub24tbWFjcm8gZ2VuZXJhdGVkIHBhcnRzIG9mIFNldHRpbmdzIGlu
dG8gU2V0dGluZ3NCYXNlIGJhc2UgY2xhc3MKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2UvRnJh
bWVWaWV3LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5j
cHAJKHJldmlzaW9uIDIyMzMzMikKKysrIFNvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNw
cAkod29ya2luZyBjb3B5KQpAQCAtNTY2LDkgKzU2NiwyMSBAQCB2b2lkIEZyYW1lVmlldzo6c2V0
TWFyZ2luSGVpZ2h0KExheW91dFVuCiAgICAgbV9tYXJnaW5zLnNldEhlaWdodChoKTsKIH0KIAor
RnJhbWVGbGF0dGVuaW5nIEZyYW1lVmlldzo6ZWZmZWN0aXZlRnJhbWVGbGF0dGVuaW5nKCkKK3sK
KyNpZiBQTEFURk9STShJT1MpCisgICAgLy8gT24gaU9TIHdoZW4gYXN5bmMgZnJhbWUgc2Nyb2xs
aW5nIGlzIGVuYWJsZWQsIGl0IGRvZXMgbm90IG1ha2Ugc2Vuc2UgdG8gdXNlIGZ1bGwgZnJhbWUg
ZmxhdHRlbmluZy4KKyAgICAvLyBJbiB0aGF0IGNhc2UsIHdlIGp1c3QgY29uc2lkZXIgdGhhdCBm
cmFtZSBmbGF0dGVuaW5nIGlzIGRpc2FibGVkLiBUaGlzIGFsbG93cyBwZW9wbGUgdG8gdGVzdAor
ICAgIC8vIGZyYW1lIHNjcm9sbGluZyBvbiBpT1MgYnkgZW5hYmxpbmcgIkFzeW5jIEZyYW1lIFNj
cm9sbGluZyIgdmlhIHRoZSBTYWZhcmkgbWVudS4KKyAgICBpZiAoZnJhbWUoKS5zZXR0aW5ncygp
LmFzeW5jRnJhbWVTY3JvbGxpbmdFbmFibGVkKCkgJiYgZnJhbWUoKS5zZXR0aW5ncygpLmZyYW1l
RmxhdHRlbmluZygpID09IEZyYW1lRmxhdHRlbmluZzo6RnVsbHlFbmFibGVkKQorICAgICAgICBy
ZXR1cm4gRnJhbWVGbGF0dGVuaW5nOjpEaXNhYmxlZDsKKyNlbmRpZgorICAgIHJldHVybiBmcmFt
ZSgpLnNldHRpbmdzKCkuZnJhbWVGbGF0dGVuaW5nKCk7Cit9CisKIGJvb2wgRnJhbWVWaWV3Ojpm
cmFtZUZsYXR0ZW5pbmdFbmFibGVkKCkgY29uc3QKIHsKLSAgICByZXR1cm4gZnJhbWUoKS5zZXR0
aW5ncygpLmVmZmVjdGl2ZUZyYW1lRmxhdHRlbmluZygpICE9IEZyYW1lRmxhdHRlbmluZ0Rpc2Fi
bGVkOworICAgIHJldHVybiBlZmZlY3RpdmVGcmFtZUZsYXR0ZW5pbmcoKSAhPSBGcmFtZUZsYXR0
ZW5pbmc6OkRpc2FibGVkOwogfQogCiBib29sIEZyYW1lVmlldzo6aXNGcmFtZUZsYXR0ZW5pbmdW
YWxpZEZvclRoaXNGcmFtZSgpIGNvbnN0CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1l
Vmlldy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmgJKHJl
dmlzaW9uIDIyMzMzMikKKysrIFNvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmgJKHdvcmtp
bmcgY29weSkKQEAgLTYxLDYgKzYxLDggQEAgY2xhc3MgUmVuZGVyU3R5bGU7CiBjbGFzcyBSZW5k
ZXJWaWV3OwogY2xhc3MgUmVuZGVyV2lkZ2V0OwogCitlbnVtIGNsYXNzIEZyYW1lRmxhdHRlbmlu
ZzsKKwogUGFnaW5hdGlvbjo6TW9kZSBwYWdpbmF0aW9uTW9kZUZvclJlbmRlclN0eWxlKGNvbnN0
IFJlbmRlclN0eWxlJik7CiAKIGNsYXNzIEZyYW1lVmlldyBmaW5hbCA6IHB1YmxpYyBTY3JvbGxW
aWV3IHsKQEAgLTYzNSw2ICs2MzcsOCBAQCBwdWJsaWM6CiAKICAgICB2b2lkIHNldFNwZWN1bGF0
aXZlVGlsaW5nRGVsYXlEaXNhYmxlZEZvclRlc3RpbmcoYm9vbCBkaXNhYmxlZCkgeyBtX3NwZWN1
bGF0aXZlVGlsaW5nRGVsYXlEaXNhYmxlZEZvclRlc3RpbmcgPSBkaXNhYmxlZDsgfQogCisgICAg
V0VCQ09SRV9FWFBPUlQgRnJhbWVGbGF0dGVuaW5nIGVmZmVjdGl2ZUZyYW1lRmxhdHRlbmluZygp
OworCiBwcm90ZWN0ZWQ6CiAgICAgYm9vbCBzY3JvbGxDb250ZW50c0Zhc3RQYXRoKGNvbnN0IElu
dFNpemUmIHNjcm9sbERlbHRhLCBjb25zdCBJbnRSZWN0JiByZWN0VG9TY3JvbGwsIGNvbnN0IElu
dFJlY3QmIGNsaXBSZWN0KSBmaW5hbDsKICAgICB2b2lkIHNjcm9sbENvbnRlbnRzU2xvd1BhdGgo
Y29uc3QgSW50UmVjdCYgdXBkYXRlUmVjdCkgZmluYWw7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9w
YWdlL1NldHRpbmdzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRp
bmdzLmNwcAkocmV2aXNpb24gMjIzMzMyKQorKysgU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5n
cy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEzNCwxNiArMTM0LDQgQEAgU2V0dGluZ3M6On5TZXR0
aW5ncygpCiAKIFNFVFRJTkdTX1NFVFRFUl9CT0RJRVMKIAotRnJhbWVGbGF0dGVuaW5nIFNldHRp
bmdzOjplZmZlY3RpdmVGcmFtZUZsYXR0ZW5pbmcoKQotewotI2lmIFBMQVRGT1JNKElPUykKLSAg
ICAvLyBPbiBpT1Mgd2hlbiBhc3luYyBmcmFtZSBzY3JvbGxpbmcgaXMgZW5hYmxlZCwgaXQgZG9l
cyBub3QgbWFrZSBzZW5zZSB0byB1c2UgZnVsbCBmcmFtZSBmbGF0dGVuaW5nLgotICAgIC8vIElu
IHRoYXQgY2FzZSwgd2UganVzdCBjb25zaWRlciB0aGF0IGZyYW1lIGZsYXR0ZW5pbmcgaXMgZGlz
YWJsZWQuIFRoaXMgYWxsb3dzIHBlb3BsZSB0byB0ZXN0Ci0gICAgLy8gZnJhbWUgc2Nyb2xsaW5n
IG9uIGlPUyBieSBlbmFibGluZyAiQXN5bmMgRnJhbWUgU2Nyb2xsaW5nIiB2aWEgdGhlIFNhZmFy
aSBtZW51LgotICAgIGlmIChhc3luY0ZyYW1lU2Nyb2xsaW5nRW5hYmxlZCgpICYmIGZyYW1lRmxh
dHRlbmluZygpID09IEZyYW1lRmxhdHRlbmluZ0Z1bGx5RW5hYmxlZCkKLSAgICAgICAgcmV0dXJu
IEZyYW1lRmxhdHRlbmluZ0Rpc2FibGVkOwotI2VuZGlmCi0gICAgcmV0dXJuIGZyYW1lRmxhdHRl
bmluZygpOwotfQotCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9wYWdlL1NldHRpbmdzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0
aW5ncy5oCShyZXZpc2lvbiAyMjMzMzIpCisrKyBTb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdz
LmgJKHdvcmtpbmcgY29weSkKQEAgLTI3LDYgKzI3LDcgQEAKICNwcmFnbWEgb25jZQogCiAjaW5j
bHVkZSAiU2V0dGluZ3NCYXNlLmgiCisjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KIAogbmFt
ZXNwYWNlIFdlYkNvcmUgewogCkBAIC0zNiwxOCArMzcsMTIgQEAgcHVibGljOgogICAgIHN0YXRp
YyBSZWY8U2V0dGluZ3M+IGNyZWF0ZShQYWdlKik7CiAgICAgflNldHRpbmdzKCk7CiAKLSAgICB2
b2lkIHBhZ2VEZXN0cm95ZWQoKSB7IG1fcGFnZSA9IG51bGxwdHI7IH0KLQogICAgIFNFVFRJTkdT
X0dFVFRFUlNfQU5EX1NFVFRFUlMKIAotCi0gICAgV0VCQ09SRV9FWFBPUlQgRnJhbWVGbGF0dGVu
aW5nIGVmZmVjdGl2ZUZyYW1lRmxhdHRlbmluZygpOwotCiBwcml2YXRlOgogICAgIGV4cGxpY2l0
IFNldHRpbmdzKFBhZ2UqKTsKIAogICAgIFNFVFRJTkdTX01FTUJFUl9WQVJJQUJMRVMKLQogfTsK
IAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRleDogU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0
aW5ncy5pbgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmluCShy
ZXZpc2lvbiAyMjMzMzIpCisrKyBTb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmluCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xNzUsNyArMTc1LDcgQEAgc25hcHNob3RBbGxQbHVnSW5zIGluaXRpYWw9
ZmFsc2UKIGF1dG9zdGFydE9yaWdpblBsdWdJblNuYXBzaG90dGluZ0VuYWJsZWQgaW5pdGlhbD10
cnVlCiBwcmltYXJ5UGx1Z0luU25hcHNob3REZXRlY3Rpb25FbmFibGVkIGluaXRpYWw9dHJ1ZQog
bWF4aW11bVBsdWdJblNuYXBzaG90QXR0ZW1wdHMgdHlwZT11bnNpZ25lZCwgaW5pdGlhbD0yMAot
ZnJhbWVGbGF0dGVuaW5nIHR5cGU9RnJhbWVGbGF0dGVuaW5nLCBpbml0aWFsPUZyYW1lRmxhdHRl
bmluZ0Rpc2FibGVkCitmcmFtZUZsYXR0ZW5pbmcgdHlwZT1GcmFtZUZsYXR0ZW5pbmcsIGluaXRp
YWw9RnJhbWVGbGF0dGVuaW5nOjpEaXNhYmxlZAogYXN5bmNGcmFtZVNjcm9sbGluZ0VuYWJsZWQg
aW5pdGlhbD1mYWxzZQogCiB3ZWJTZWN1cml0eUVuYWJsZWQgaW5pdGlhbD10cnVlCkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzQmFzZS5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL3BhZ2UvU2V0dGluZ3NCYXNlLmgJKHJldmlzaW9uIDIyMzMzMikKKysrIFNvdXJjZS9X
ZWJDb3JlL3BhZ2UvU2V0dGluZ3NCYXNlLmgJKHdvcmtpbmcgY29weSkKQEAgLTg4LDEwICs4OCwx
MCBAQCBlbnVtIFBERkltYWdlQ2FjaGluZ1BvbGljeSB7CiAjZW5kaWYKIH07CiAKLWVudW0gRnJh
bWVGbGF0dGVuaW5nIHsKLSAgICBGcmFtZUZsYXR0ZW5pbmdEaXNhYmxlZCwKLSAgICBGcmFtZUZs
YXR0ZW5pbmdFbmFibGVkRm9yTm9uRnVsbFNjcmVlbklGcmFtZXMsCi0gICAgRnJhbWVGbGF0dGVu
aW5nRnVsbHlFbmFibGVkCitlbnVtIGNsYXNzIEZyYW1lRmxhdHRlbmluZyB7CisgICAgRGlzYWJs
ZWQsCisgICAgRW5hYmxlZEZvck5vbkZ1bGxTY3JlZW5JRnJhbWVzLAorICAgIEZ1bGx5RW5hYmxl
ZAogfTsKIAogdHlwZWRlZiB1bnNpZ25lZCBEZWJ1Z092ZXJsYXlSZWdpb25zOwpAQCAtMTAxLDYg
KzEwMSw4IEBAIGNsYXNzIFNldHRpbmdzQmFzZSB7CiBwdWJsaWM6CiAgICAgflNldHRpbmdzQmFz
ZSgpOwogCisgICAgdm9pZCBwYWdlRGVzdHJveWVkKCkgeyBtX3BhZ2UgPSBudWxscHRyOyB9CisK
ICAgICBlbnVtIGNsYXNzIEZvbnRMb2FkVGltaW5nT3ZlcnJpZGUgeyBOb25lLCBCbG9jaywgU3dh
cCwgRmFpbHVyZSB9OwogCiAgICAgZW51bSBjbGFzcyBGb3JjZWRBY2Nlc3NpYmlsaXR5VmFsdWUg
eyBTeXN0ZW0sIE9uLCBPZmYgfTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJGcmFtZVNldC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckZyYW1lU2V0LmNwcAkocmV2aXNpb24gMjIzMzMyKQorKysgU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckZyYW1lU2V0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNjUxLDcgKzY1MSw3
IEBAIHZvaWQgUmVuZGVyRnJhbWVTZXQ6OnBvc2l0aW9uRnJhbWVzV2l0aEYKIAogYm9vbCBSZW5k
ZXJGcmFtZVNldDo6ZmxhdHRlbkZyYW1lU2V0KCkgY29uc3QKIHsKLSAgICByZXR1cm4gc2V0dGlu
Z3MoKS5lZmZlY3RpdmVGcmFtZUZsYXR0ZW5pbmcoKSAhPSBGcmFtZUZsYXR0ZW5pbmdEaXNhYmxl
ZDsKKyAgICByZXR1cm4gdmlldygpLmZyYW1lVmlldygpLmVmZmVjdGl2ZUZyYW1lRmxhdHRlbmlu
ZygpICE9IEZyYW1lRmxhdHRlbmluZzo6RGlzYWJsZWQ7CiB9CiAKIHZvaWQgUmVuZGVyRnJhbWVT
ZXQ6OnN0YXJ0UmVzaXppbmcoR3JpZEF4aXMmIGF4aXMsIGludCBwb3NpdGlvbikKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJRnJhbWUuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJRnJhbWUuY3BwCShyZXZpc2lvbiAyMjMzMzIp
CisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySUZyYW1lLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtNzgsNyArNzgsNyBAQCBib29sIFJlbmRlcklGcmFtZTo6aXNGdWxsU2NyZWVuSUZy
YW1lKCkgCiAKIGJvb2wgUmVuZGVySUZyYW1lOjpmbGF0dGVuRnJhbWUoKSBjb25zdAogewotICAg
IGlmIChzZXR0aW5ncygpLmVmZmVjdGl2ZUZyYW1lRmxhdHRlbmluZygpID09IEZyYW1lRmxhdHRl
bmluZ0Rpc2FibGVkKQorICAgIGlmICh2aWV3KCkuZnJhbWVWaWV3KCkuZWZmZWN0aXZlRnJhbWVG
bGF0dGVuaW5nKCkgPT0gRnJhbWVGbGF0dGVuaW5nOjpEaXNhYmxlZCkKICAgICAgICAgcmV0dXJu
IGZhbHNlOwogCiAgICAgaWYgKHN0eWxlKCkud2lkdGgoKS5pc0ZpeGVkKCkgJiYgc3R5bGUoKS5o
ZWlnaHQoKS5pc0ZpeGVkKCkpIHsKQEAgLTg5LDcgKzg5LDcgQEAgYm9vbCBSZW5kZXJJRnJhbWU6
OmZsYXR0ZW5GcmFtZSgpIGNvbnN0CiAgICAgICAgIGlmIChzdHlsZSgpLndpZHRoKCkudmFsdWUo
KSA8PSAwIHx8IHN0eWxlKCkuaGVpZ2h0KCkudmFsdWUoKSA8PSAwKQogICAgICAgICAgICAgcmV0
dXJuIGZhbHNlOwogICAgICAgICAvLyBEbyBub3QgZmxhdHRlbiAiZnVsbHNjcmVlbiIgaWZyYW1l
cyBvciB0aGV5IGNvdWxkIGJlY29tZSBsYXJnZXIgdGhhbiB0aGUgdmlld3BvcnQuCi0gICAgICAg
IGlmIChzZXR0aW5ncygpLmVmZmVjdGl2ZUZyYW1lRmxhdHRlbmluZygpIDw9IEZyYW1lRmxhdHRl
bmluZ0VuYWJsZWRGb3JOb25GdWxsU2NyZWVuSUZyYW1lcyAmJiBpc0Z1bGxTY3JlZW5JRnJhbWUo
KSkKKyAgICAgICAgaWYgKHZpZXcoKS5mcmFtZVZpZXcoKS5lZmZlY3RpdmVGcmFtZUZsYXR0ZW5p
bmcoKSA8PSBGcmFtZUZsYXR0ZW5pbmc6OkVuYWJsZWRGb3JOb25GdWxsU2NyZWVuSUZyYW1lcyAm
JiBpc0Z1bGxTY3JlZW5JRnJhbWUoKSkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9
CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJWaWV3LmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVmlldy5jcHAJKHJldmlzaW9u
IDIyMzMzMikKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJWaWV3LmNwcAkod29y
a2luZyBjb3B5KQpAQCAtNTksNyArNTksNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBzdHJ1Y3Qg
RnJhbWVGbGF0dGVuaW5nTGF5b3V0RGlzYWxsb3dlciB7CiAgICAgRnJhbWVGbGF0dGVuaW5nTGF5
b3V0RGlzYWxsb3dlcihGcmFtZVZpZXcmIGZyYW1lVmlldykKICAgICAgICAgOiBtX2ZyYW1lVmll
dyhmcmFtZVZpZXcpCi0gICAgICAgICwgbV9kaXNhbGxvd0xheW91dChmcmFtZVZpZXcuZnJhbWUo
KS5zZXR0aW5ncygpLmVmZmVjdGl2ZUZyYW1lRmxhdHRlbmluZygpICE9IEZyYW1lRmxhdHRlbmlu
Z0Rpc2FibGVkKQorICAgICAgICAsIG1fZGlzYWxsb3dMYXlvdXQoZnJhbWVWaWV3LmVmZmVjdGl2
ZUZyYW1lRmxhdHRlbmluZygpICE9IEZyYW1lRmxhdHRlbmluZzo6RGlzYWJsZWQpCiAgICAgewog
ICAgICAgICBpZiAobV9kaXNhbGxvd0xheW91dCkKICAgICAgICAgICAgIG1fZnJhbWVWaWV3LnN0
YXJ0RGlzYWxsb3dpbmdMYXlvdXQoKTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCShyZXZpc2lvbiAyMjMzMzMpCisr
KyBTb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE1IEBA
CisyMDE3LTEwLTE1ICBTYW0gV2VpbmlnICA8c2FtQHdlYmtpdC5vcmc+CisKKyAgICAgICAgW1Nl
dHRpbmdzXSBSZW1vdmUgYWxsIGN1c3RvbSBjb2RlIGZyb20gU2V0dGluZ3MuaC9jcHAKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3ODMzMAorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2ViUHJvY2Vzcy9X
ZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJD
aHJvbWVDbGllbnQ6OmNvbnRlbnRzU2l6ZUNoYW5nZWQgY29uc3QpOgorICAgICAgICAKKyAgICAg
ICAgICAgIEdlIHRoZSBlZmZlY3RpdmVGcmFtZUZsYXR0ZW5pbmcgZnJvbSB0aGUgRnJhbWVWaWV3
LCByYXRoZXIgdGhhbiB0aGUgU2V0dGluZ3MuCisKIDIwMTctMTAtMTMgIFlvdWVubiBGYWJsZXQg
IDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAgIEltcGxlbWVudCBsaXN0aW5nIG9yaWdpbnMg
Zm9yIHdoaWNoIENhY2hlU3RvcmFnZSBpcyBzdG9yaW5nIGRhdGEKSW5kZXg6IFNvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVD
bGllbnQuY3BwCShyZXZpc2lvbiAyMjMzMjgpCisrKyBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTY2
LDcgKzU2Niw5IEBAIFBsYXRmb3JtUGFnZUNsaWVudCBXZWJDaHJvbWVDbGllbnQ6OnBsYXQKIAog
dm9pZCBXZWJDaHJvbWVDbGllbnQ6OmNvbnRlbnRzU2l6ZUNoYW5nZWQoRnJhbWUmIGZyYW1lLCBj
b25zdCBJbnRTaXplJiBzaXplKSBjb25zdAogewotICAgIGlmIChtX3BhZ2UuY29yZVBhZ2UoKS0+
c2V0dGluZ3MoKS5lZmZlY3RpdmVGcmFtZUZsYXR0ZW5pbmcoKSA9PSBGcmFtZUZsYXR0ZW5pbmdE
aXNhYmxlZCkgeworICAgIEZyYW1lVmlldyogZnJhbWVWaWV3ID0gZnJhbWUudmlldygpOworCisg
ICAgaWYgKGZyYW1lVmlldyAmJiBmcmFtZVZpZXctPmVmZmVjdGl2ZUZyYW1lRmxhdHRlbmluZygp
ID09IEZyYW1lRmxhdHRlbmluZzo6RGlzYWJsZWQpIHsKICAgICAgICAgV2ViRnJhbWUqIGxhcmdl
c3RGcmFtZSA9IGZpbmRMYXJnZXN0RnJhbWVJbkZyYW1lU2V0KG1fcGFnZSk7CiAgICAgICAgIGlm
IChsYXJnZXN0RnJhbWUgIT0gbV9jYWNoZWRGcmFtZVNldExhcmdlc3RGcmFtZS5nZXQoKSkgewog
ICAgICAgICAgICAgbV9jYWNoZWRGcmFtZVNldExhcmdlc3RGcmFtZSA9IGxhcmdlc3RGcmFtZTsK
QEAgLTU4MSw3ICs1ODMsNiBAQCB2b2lkIFdlYkNocm9tZUNsaWVudDo6Y29udGVudHNTaXplQ2hh
bmdlCiAKICAgICBtX3BhZ2UuZHJhd2luZ0FyZWEoKS0+bWFpbkZyYW1lQ29udGVudFNpemVDaGFu
Z2VkKHNpemUpOwogCi0gICAgRnJhbWVWaWV3KiBmcmFtZVZpZXcgPSBmcmFtZS52aWV3KCk7CiAg
ICAgaWYgKGZyYW1lVmlldyAmJiAhZnJhbWVWaWV3LT5kZWxlZ2F0ZXNTY3JvbGxpbmcoKSkgIHsK
ICAgICAgICAgYm9vbCBoYXNIb3Jpem9udGFsU2Nyb2xsYmFyID0gZnJhbWVWaWV3LT5ob3Jpem9u
dGFsU2Nyb2xsYmFyKCk7CiAgICAgICAgIGJvb2wgaGFzVmVydGljYWxTY3JvbGxiYXIgPSBmcmFt
ZVZpZXctPnZlcnRpY2FsU2Nyb2xsYmFyKCk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>323871</attachid>
            <date>2017-10-15 21:20:59 -0700</date>
            <delta_ts>2017-10-16 03:20:00 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-178330-20171015212058.patch</filename>
            <type>text/plain</type>
            <size>22148</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIyMzMzMykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM2IEBACisyMDE3LTEwLTE1ICBTYW0gV2Vp
bmlnICA8c2FtQHdlYmtpdC5vcmc+CisKKyAgICAgICAgW1NldHRpbmdzXSBSZW1vdmUgYWxsIGN1
c3RvbSBjb2RlIGZyb20gU2V0dGluZ3MuaC9jcHAKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTE3ODMzMAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIFJlbW92ZXMgdGhlIHR3byByZW1haW5pbmcgZnVuY3Rpb25z
IG91dCBvZiBTZXR0aW5ncyBwYXZpbmcgdGhlIHdheQorICAgICAgICBmb3IgdGhlIGZpbGUgdG8g
YmUgZ2VuZXJhdGVkLgorICAgICAgICAKKyAgICAgICAgLSBwYWdlRGVzdHJveWVkIHdhcyBtb3Zl
ZCBkb3duIGludG8gU2V0dGluZ3NCYXNlLgorICAgICAgICAtIGVmZmVjdGl2ZUZyYW1lRmxhdHRl
bmluZyB3YXMgbW92ZWQgdG8gRnJhbWVWaWV3ICh0byByZWR1Y2UgdGhlIG5lZWQKKyAgICAgICAg
ICBmb3IgYWRkaXRpb25hbCBpbmNsdWRlcywgdGhlIEZyYW1lRmxhdHRlbmluZyBlbnVtIHdhcyBj
b252ZXJ0ZWQgdG8KKyAgICAgICAgICBhbiBlbnVtIGNsYXNzIHRvIGFsbG93IGl0IHRvIGJlIGZv
cndhcmQgZGVjbGFyZWQpLgorCisgICAgICAgICogcGFnZS9GcmFtZVZpZXcuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6RnJhbWVWaWV3OjplZmZlY3RpdmVGcmFtZUZsYXR0ZW5pbmcpOgorICAgICAg
ICAoV2ViQ29yZTo6RnJhbWVWaWV3OjpmcmFtZUZsYXR0ZW5pbmdFbmFibGVkIGNvbnN0KToKKyAg
ICAgICAgKiBwYWdlL0ZyYW1lVmlldy5oOgorICAgICAgICAqIHBhZ2UvU2V0dGluZ3MuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6U2V0dGluZ3M6OmVmZmVjdGl2ZUZyYW1lRmxhdHRlbmluZyk6IERl
bGV0ZWQuCisgICAgICAgICogcGFnZS9TZXR0aW5ncy5oOgorICAgICAgICAoV2ViQ29yZTo6U2V0
dGluZ3M6OnBhZ2VEZXN0cm95ZWQpOiBEZWxldGVkLgorICAgICAgICAqIHBhZ2UvU2V0dGluZ3Mu
aW46CisgICAgICAgICogcGFnZS9TZXR0aW5nc0Jhc2UuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNl
dHRpbmdzQmFzZTo6cGFnZURlc3Ryb3llZCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckZy
YW1lU2V0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckZyYW1lU2V0OjpmbGF0dGVuRnJh
bWVTZXQgY29uc3QpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJJRnJhbWUuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6UmVuZGVySUZyYW1lOjpmbGF0dGVuRnJhbWUgY29uc3QpOgorICAgICAg
ICAqIHJlbmRlcmluZy9SZW5kZXJWaWV3LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lRmxh
dHRlbmluZ0xheW91dERpc2FsbG93ZXI6OkZyYW1lRmxhdHRlbmluZ0xheW91dERpc2FsbG93ZXIp
OgorCiAyMDE3LTEwLTE1ICBTYW0gV2VpbmlnICA8c2FtQHdlYmtpdC5vcmc+CiAKICAgICAgICAg
W1NldHRpbmdzXSBTcGxpdCBub24tbWFjcm8gZ2VuZXJhdGVkIHBhcnRzIG9mIFNldHRpbmdzIGlu
dG8gU2V0dGluZ3NCYXNlIGJhc2UgY2xhc3MKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHJldmlzaW9uIDIyMzMzMikKKysrIFNv
dXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkod29ya2luZyBj
b3B5KQpAQCAtMTE0ODQsNiArMTE0ODQsNyBAQAogCQk3QzY1NzlFRDFFMDA4NTY2MDBFM0EyN0Eg
LyogSlNBcHBsZVBheVNoaXBwaW5nTWV0aG9kLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IEpTQXBwbGVQYXlTaGlwcGluZ01ldGhvZC5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTdDNjU3OUVFMUUwMDg1NjYwMEUzQTI3QSAvKiBKU0FwcGxlUGF5U2hp
cHBpbmdNZXRob2QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNBcHBsZVBh
eVNoaXBwaW5nTWV0aG9kLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdDNjc1MkJB
MUIwNkU4MjAwMEMyNzlDQiAvKiBOb25FbGVtZW50UGFyZW50Tm9kZS5pZGwgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0
ZXh0OyBwYXRoID0gTm9uRWxlbWVudFBhcmVudE5vZGUuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQk3QzZFRkVFQTFGOTQ2QTJFMDBGRkFENDEgLyogU2V0dGluZ3NEZWZhdWx0VmFs
dWVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNldHRpbmdzRGVmYXVsdFZhbHVlcy5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk3QzczRkIwNTE5MUVGNDE2MDA3REUwNjEgLyogVXNlck1lc3Nh
Z2VIYW5kbGVyc05hbWVzcGFjZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBVc2VyTWVzc2FnZUhhbmRsZXJzTmFtZXNwYWNlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJN0M3M0ZCMDYxOTFFRjQxNzAwN0RFMDYxIC8qIFVzZXJNZXNzYWdlSGFuZGxl
cnNOYW1lc3BhY2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVXNlck1lc3Nh
Z2VIYW5kbGVyc05hbWVzcGFjZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3Qzcz
RkIwOTE5MUVGNDlGMDA3REUwNjEgLyogVXNlck1lc3NhZ2VIYW5kbGVyc05hbWVzcGFjZS5pZGwg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBw
YXRoID0gVXNlck1lc3NhZ2VIYW5kbGVyc05hbWVzcGFjZS5pZGw7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CkBAIC0xOTg4NCw2ICsxOTg4NSw3IEBACiAJCQkJQkM1OURFRjgxNjlERURDMzAw
MTZBQzM0IC8qIFNldHRpbmdzLmluICovLAogCQkJCTdDQzY2MDlCMUY5MzA1NzkwMEQ1MDBFOSAv
KiBTZXR0aW5nc0Jhc2UuY3BwICovLAogCQkJCTdDQzY2MDk5MUY5MzA1NzgwMEQ1MDBFOSAvKiBT
ZXR0aW5nc0Jhc2UuaCAqLywKKwkJCQk3QzZFRkVFQTFGOTQ2QTJFMDBGRkFENDEgLyogU2V0dGlu
Z3NEZWZhdWx0VmFsdWVzLmggKi8sCiAJCQkJNUM2ODhBQTIxRDM4MTI2RjAwMEI1NEZBIC8qIFNv
Y2tldFByb3ZpZGVyLmNwcCAqLywKIAkJCQk1QzdDODhENzFEMEYxRjJCMDA5RDJGNkQgLyogU29j
a2V0UHJvdmlkZXIuaCAqLywKIAkJCQk2MjZDREUwQzExNDA0MjRDMDAxRTVBNjggLyogU3BhdGlh
bE5hdmlnYXRpb24uY3BwICovLApJbmRleDogU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcAkocmV2
aXNpb24gMjIzMzMyKQorKysgU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC01NjYsOSArNTY2LDIxIEBAIHZvaWQgRnJhbWVWaWV3OjpzZXRNYXJnaW5I
ZWlnaHQoTGF5b3V0VW4KICAgICBtX21hcmdpbnMuc2V0SGVpZ2h0KGgpOwogfQogCitGcmFtZUZs
YXR0ZW5pbmcgRnJhbWVWaWV3OjplZmZlY3RpdmVGcmFtZUZsYXR0ZW5pbmcoKSBjb25zdAorewor
I2lmIFBMQVRGT1JNKElPUykKKyAgICAvLyBPbiBpT1Mgd2hlbiBhc3luYyBmcmFtZSBzY3JvbGxp
bmcgaXMgZW5hYmxlZCwgaXQgZG9lcyBub3QgbWFrZSBzZW5zZSB0byB1c2UgZnVsbCBmcmFtZSBm
bGF0dGVuaW5nLgorICAgIC8vIEluIHRoYXQgY2FzZSwgd2UganVzdCBjb25zaWRlciB0aGF0IGZy
YW1lIGZsYXR0ZW5pbmcgaXMgZGlzYWJsZWQuIFRoaXMgYWxsb3dzIHBlb3BsZSB0byB0ZXN0Cisg
ICAgLy8gZnJhbWUgc2Nyb2xsaW5nIG9uIGlPUyBieSBlbmFibGluZyAiQXN5bmMgRnJhbWUgU2Ny
b2xsaW5nIiB2aWEgdGhlIFNhZmFyaSBtZW51LgorICAgIGlmIChmcmFtZSgpLnNldHRpbmdzKCku
YXN5bmNGcmFtZVNjcm9sbGluZ0VuYWJsZWQoKSAmJiBmcmFtZSgpLnNldHRpbmdzKCkuZnJhbWVG
bGF0dGVuaW5nKCkgPT0gRnJhbWVGbGF0dGVuaW5nOjpGdWxseUVuYWJsZWQpCisgICAgICAgIHJl
dHVybiBGcmFtZUZsYXR0ZW5pbmc6OkRpc2FibGVkOworI2VuZGlmCisgICAgcmV0dXJuIGZyYW1l
KCkuc2V0dGluZ3MoKS5mcmFtZUZsYXR0ZW5pbmcoKTsKK30KKwogYm9vbCBGcmFtZVZpZXc6OmZy
YW1lRmxhdHRlbmluZ0VuYWJsZWQoKSBjb25zdAogewotICAgIHJldHVybiBmcmFtZSgpLnNldHRp
bmdzKCkuZWZmZWN0aXZlRnJhbWVGbGF0dGVuaW5nKCkgIT0gRnJhbWVGbGF0dGVuaW5nRGlzYWJs
ZWQ7CisgICAgcmV0dXJuIGVmZmVjdGl2ZUZyYW1lRmxhdHRlbmluZygpICE9IEZyYW1lRmxhdHRl
bmluZzo6RGlzYWJsZWQ7CiB9CiAKIGJvb2wgRnJhbWVWaWV3Ojppc0ZyYW1lRmxhdHRlbmluZ1Zh
bGlkRm9yVGhpc0ZyYW1lKCkgY29uc3QKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVW
aWV3LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuaAkocmV2
aXNpb24gMjIzMzMyKQorKysgU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuaAkod29ya2lu
ZyBjb3B5KQpAQCAtNjEsNiArNjEsOCBAQCBjbGFzcyBSZW5kZXJTdHlsZTsKIGNsYXNzIFJlbmRl
clZpZXc7CiBjbGFzcyBSZW5kZXJXaWRnZXQ7CiAKK2VudW0gY2xhc3MgRnJhbWVGbGF0dGVuaW5n
OworCiBQYWdpbmF0aW9uOjpNb2RlIHBhZ2luYXRpb25Nb2RlRm9yUmVuZGVyU3R5bGUoY29uc3Qg
UmVuZGVyU3R5bGUmKTsKIAogY2xhc3MgRnJhbWVWaWV3IGZpbmFsIDogcHVibGljIFNjcm9sbFZp
ZXcgewpAQCAtNjM1LDYgKzYzNyw4IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgc2V0U3BlY3VsYXRp
dmVUaWxpbmdEZWxheURpc2FibGVkRm9yVGVzdGluZyhib29sIGRpc2FibGVkKSB7IG1fc3BlY3Vs
YXRpdmVUaWxpbmdEZWxheURpc2FibGVkRm9yVGVzdGluZyA9IGRpc2FibGVkOyB9CiAKKyAgICBX
RUJDT1JFX0VYUE9SVCBGcmFtZUZsYXR0ZW5pbmcgZWZmZWN0aXZlRnJhbWVGbGF0dGVuaW5nKCkg
Y29uc3Q7CisKIHByb3RlY3RlZDoKICAgICBib29sIHNjcm9sbENvbnRlbnRzRmFzdFBhdGgoY29u
c3QgSW50U2l6ZSYgc2Nyb2xsRGVsdGEsIGNvbnN0IEludFJlY3QmIHJlY3RUb1Njcm9sbCwgY29u
c3QgSW50UmVjdCYgY2xpcFJlY3QpIGZpbmFsOwogICAgIHZvaWQgc2Nyb2xsQ29udGVudHNTbG93
UGF0aChjb25zdCBJbnRSZWN0JiB1cGRhdGVSZWN0KSBmaW5hbDsKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL3BhZ2UvU2V0dGluZ3MuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BhZ2Uv
U2V0dGluZ3MuY3BwCShyZXZpc2lvbiAyMjMzMzIpCisrKyBTb3VyY2UvV2ViQ29yZS9wYWdlL1Nl
dHRpbmdzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjYsOTcgKzI2LDExIEBACiAjaW5jbHVkZSAi
Y29uZmlnLmgiCiAjaW5jbHVkZSAiU2V0dGluZ3MuaCIKIAotI2luY2x1ZGUgIkF1ZGlvU2Vzc2lv
bi5oIgotI2luY2x1ZGUgIkJhY2tGb3J3YXJkQ29udHJvbGxlci5oIgotI2luY2x1ZGUgIkNhY2hl
ZFJlc291cmNlTG9hZGVyLmgiCi0jaW5jbHVkZSAiQ29va2llU3RvcmFnZS5oIgotI2luY2x1ZGUg
IkRPTVRpbWVyLmgiCi0jaW5jbHVkZSAiRGF0YWJhc2UuaCIKLSNpbmNsdWRlICJEb2N1bWVudC5o
IgotI2luY2x1ZGUgIkZvbnRDYXNjYWRlLmgiCi0jaW5jbHVkZSAiRm9udEdlbmVyaWNGYW1pbGll
cy5oIgotI2luY2x1ZGUgIkZyYW1lVHJlZS5oIgotI2luY2x1ZGUgIkZyYW1lVmlldy5oIgotI2lu
Y2x1ZGUgIkhUTUxNZWRpYUVsZW1lbnQuaCIKLSNpbmNsdWRlICJIaXN0b3J5SXRlbS5oIgotI2lu
Y2x1ZGUgIk1haW5GcmFtZS5oIgogI2luY2x1ZGUgIlBhZ2UuaCIKLSNpbmNsdWRlICJTdG9yYWdl
TWFwLmgiCi0jaW5jbHVkZSA8bGltaXRzPgotI2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5o
PgotI2luY2x1ZGUgPHd0Zi9TdGRMaWJFeHRyYXMuaD4KKyNpbmNsdWRlICJTZXR0aW5nc0RlZmF1
bHRWYWx1ZXMuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi0vLyBOT1RFcwotLy8gIDEpIEVk
aXRpbmdNYWNCZWhhdmlvciBjb21wcmlzZXMgVGlnZXIsIExlb3BhcmQsIFNub3dMZW9wYXJkIGFu
ZCBpT1MgYnVpbGRzLCBhcyB3ZWxsIGFzIFF0V2ViS2l0IHdoZW4gYnVpbHQgb24gTWFjOwotLy8g
IDIpIEVkaXRpbmdXaW5kb3dzQmVoYXZpb3IgY29tcHJpc2VzIFdpbjMyIGJ1aWxkOwotLy8gIDMp
IEVkaXRpbmdVbml4QmVoYXZpb3IgY29tcHJpc2VzIGFsbCB1bml4LWJhc2VkIHN5c3RlbXMsIGJ1
dCBEYXJ3aW4vTWFjT1MgKGFuZCB0aGVuIGFidXNpbmcgdGhlIHRlcm1pbm9sb2d5KTsKLS8vIDk5
KSBNYWNFZGl0aW5nQmVoYXZpb3IgaXMgdXNlZCBhcyBhIGZhbGxiYWNrLgotc3RhdGljIEVkaXRp
bmdCZWhhdmlvclR5cGUgZWRpdGluZ0JlaGF2aW9yVHlwZUZvclBsYXRmb3JtKCkKLXsKLSAgICBy
ZXR1cm4KLSNpZiBQTEFURk9STShJT1MpCi0gICAgRWRpdGluZ0lPU0JlaGF2aW9yCi0jZWxpZiBP
UyhEQVJXSU4pCi0gICAgRWRpdGluZ01hY0JlaGF2aW9yCi0jZWxpZiBPUyhXSU5ET1dTKQotICAg
IEVkaXRpbmdXaW5kb3dzQmVoYXZpb3IKLSNlbGlmIE9TKFVOSVgpCi0gICAgRWRpdGluZ1VuaXhC
ZWhhdmlvcgotI2Vsc2UKLSAgICAvLyBGYWxsYmFjawotICAgIEVkaXRpbmdNYWNCZWhhdmlvcgot
I2VuZGlmCi0gICAgOwotfQotCi0jaWYgUExBVEZPUk0oQ09DT0EpCi1zdGF0aWMgY29uc3QgYm9v
bCBkZWZhdWx0WW91VHViZUZsYXNoUGx1Z2luUmVwbGFjZW1lbnRFbmFibGVkID0gdHJ1ZTsKLSNl
bHNlCi1zdGF0aWMgY29uc3QgYm9vbCBkZWZhdWx0WW91VHViZUZsYXNoUGx1Z2luUmVwbGFjZW1l
bnRFbmFibGVkID0gZmFsc2U7Ci0jZW5kaWYKLQotI2lmIFBMQVRGT1JNKElPUykKLXN0YXRpYyBj
b25zdCBib29sIGRlZmF1bHRGaXhlZEJhY2tncm91bmRzUGFpbnRSZWxhdGl2ZVRvRG9jdW1lbnQg
PSB0cnVlOwotc3RhdGljIGNvbnN0IGJvb2wgZGVmYXVsdEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdG
b3JGaXhlZFBvc2l0aW9uRW5hYmxlZCA9IHRydWU7Ci1zdGF0aWMgY29uc3QgYm9vbCBkZWZhdWx0
QWxsb3dzSW5saW5lTWVkaWFQbGF5YmFjayA9IGZhbHNlOwotc3RhdGljIGNvbnN0IGJvb2wgZGVm
YXVsdElubGluZU1lZGlhUGxheWJhY2tSZXF1aXJlc1BsYXlzSW5saW5lQXR0cmlidXRlID0gdHJ1
ZTsKLXN0YXRpYyBjb25zdCBib29sIGRlZmF1bHRWaWRlb1BsYXliYWNrUmVxdWlyZXNVc2VyR2Vz
dHVyZSA9IHRydWU7Ci1zdGF0aWMgY29uc3QgYm9vbCBkZWZhdWx0QXVkaW9QbGF5YmFja1JlcXVp
cmVzVXNlckdlc3R1cmUgPSB0cnVlOwotc3RhdGljIGNvbnN0IGJvb2wgZGVmYXVsdE1lZGlhRGF0
YUxvYWRzQXV0b21hdGljYWxseSA9IGZhbHNlOwotc3RhdGljIGNvbnN0IGJvb2wgZGVmYXVsdFNo
b3VsZFJlc3BlY3RJbWFnZU9yaWVudGF0aW9uID0gdHJ1ZTsKLXN0YXRpYyBjb25zdCBib29sIGRl
ZmF1bHRJbWFnZVN1YnNhbXBsaW5nRW5hYmxlZCA9IHRydWU7Ci1zdGF0aWMgY29uc3QgYm9vbCBk
ZWZhdWx0U2Nyb2xsaW5nVHJlZUluY2x1ZGVzRnJhbWVzID0gdHJ1ZTsKLXN0YXRpYyBjb25zdCBi
b29sIGRlZmF1bHRNZWRpYUNvbnRyb2xzU2NhbGVXaXRoUGFnZVpvb20gPSB0cnVlOwotc3RhdGlj
IGNvbnN0IGJvb2wgZGVmYXVsdFF1aWNrVGltZVBsdWdpblJlcGxhY2VtZW50RW5hYmxlZCA9IHRy
dWU7Ci0jZWxzZQotc3RhdGljIGNvbnN0IGJvb2wgZGVmYXVsdEZpeGVkQmFja2dyb3VuZHNQYWlu
dFJlbGF0aXZlVG9Eb2N1bWVudCA9IGZhbHNlOwotc3RhdGljIGNvbnN0IGJvb2wgZGVmYXVsdEFj
Y2VsZXJhdGVkQ29tcG9zaXRpbmdGb3JGaXhlZFBvc2l0aW9uRW5hYmxlZCA9IGZhbHNlOwotc3Rh
dGljIGNvbnN0IGJvb2wgZGVmYXVsdEFsbG93c0lubGluZU1lZGlhUGxheWJhY2sgPSB0cnVlOwot
c3RhdGljIGNvbnN0IGJvb2wgZGVmYXVsdElubGluZU1lZGlhUGxheWJhY2tSZXF1aXJlc1BsYXlz
SW5saW5lQXR0cmlidXRlID0gZmFsc2U7Ci1zdGF0aWMgY29uc3QgYm9vbCBkZWZhdWx0VmlkZW9Q
bGF5YmFja1JlcXVpcmVzVXNlckdlc3R1cmUgPSBmYWxzZTsKLXN0YXRpYyBjb25zdCBib29sIGRl
ZmF1bHRBdWRpb1BsYXliYWNrUmVxdWlyZXNVc2VyR2VzdHVyZSA9IGZhbHNlOwotc3RhdGljIGNv
bnN0IGJvb2wgZGVmYXVsdE1lZGlhRGF0YUxvYWRzQXV0b21hdGljYWxseSA9IHRydWU7Ci1zdGF0
aWMgY29uc3QgYm9vbCBkZWZhdWx0U2hvdWxkUmVzcGVjdEltYWdlT3JpZW50YXRpb24gPSBmYWxz
ZTsKLXN0YXRpYyBjb25zdCBib29sIGRlZmF1bHRJbWFnZVN1YnNhbXBsaW5nRW5hYmxlZCA9IGZh
bHNlOwotc3RhdGljIGNvbnN0IGJvb2wgZGVmYXVsdFNjcm9sbGluZ1RyZWVJbmNsdWRlc0ZyYW1l
cyA9IGZhbHNlOwotc3RhdGljIGNvbnN0IGJvb2wgZGVmYXVsdE1lZGlhQ29udHJvbHNTY2FsZVdp
dGhQYWdlWm9vbSA9IHRydWU7Ci1zdGF0aWMgY29uc3QgYm9vbCBkZWZhdWx0UXVpY2tUaW1lUGx1
Z2luUmVwbGFjZW1lbnRFbmFibGVkID0gZmFsc2U7Ci0jZW5kaWYKLQotc3RhdGljIGNvbnN0IGJv
b2wgZGVmYXVsdFJlcXVpcmVzVXNlckdlc3R1cmVUb0xvYWRWaWRlbyA9IHRydWU7Ci1zdGF0aWMg
Y29uc3QgYm9vbCBkZWZhdWx0QWxsb3dzUGljdHVyZUluUGljdHVyZU1lZGlhUGxheWJhY2sgPSB0
cnVlOwotCi1zdGF0aWMgY29uc3QgZG91YmxlIGRlZmF1bHRJbmNyZW1lbnRhbFJlbmRlcmluZ1N1
cHByZXNzaW9uVGltZW91dEluU2Vjb25kcyA9IDU7Ci0jaWYgVVNFKFVOSUZJRURfVEVYVF9DSEVD
S0lORykKLXN0YXRpYyBjb25zdCBib29sIGRlZmF1bHRVbmlmaWVkVGV4dENoZWNrZXJFbmFibGVk
ID0gdHJ1ZTsKLSNlbHNlCi1zdGF0aWMgY29uc3QgYm9vbCBkZWZhdWx0VW5pZmllZFRleHRDaGVj
a2VyRW5hYmxlZCA9IGZhbHNlOwotI2VuZGlmCi1zdGF0aWMgY29uc3QgYm9vbCBkZWZhdWx0U21h
cnRJbnNlcnREZWxldGVFbmFibGVkID0gdHJ1ZTsKLXN0YXRpYyBjb25zdCBib29sIGRlZmF1bHRT
ZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkID0gZmFsc2U7Ci0KIFJlZjxTZXR0aW5ncz4g
U2V0dGluZ3M6OmNyZWF0ZShQYWdlKiBwYWdlKQogewogICAgIHJldHVybiBhZG9wdFJlZigqbmV3
IFNldHRpbmdzKHBhZ2UpKTsKQEAgLTEzNCwxNiArNDgsNCBAQCBTZXR0aW5nczo6flNldHRpbmdz
KCkKIAogU0VUVElOR1NfU0VUVEVSX0JPRElFUwogCi1GcmFtZUZsYXR0ZW5pbmcgU2V0dGluZ3M6
OmVmZmVjdGl2ZUZyYW1lRmxhdHRlbmluZygpCi17Ci0jaWYgUExBVEZPUk0oSU9TKQotICAgIC8v
IE9uIGlPUyB3aGVuIGFzeW5jIGZyYW1lIHNjcm9sbGluZyBpcyBlbmFibGVkLCBpdCBkb2VzIG5v
dCBtYWtlIHNlbnNlIHRvIHVzZSBmdWxsIGZyYW1lIGZsYXR0ZW5pbmcuCi0gICAgLy8gSW4gdGhh
dCBjYXNlLCB3ZSBqdXN0IGNvbnNpZGVyIHRoYXQgZnJhbWUgZmxhdHRlbmluZyBpcyBkaXNhYmxl
ZC4gVGhpcyBhbGxvd3MgcGVvcGxlIHRvIHRlc3QKLSAgICAvLyBmcmFtZSBzY3JvbGxpbmcgb24g
aU9TIGJ5IGVuYWJsaW5nICJBc3luYyBGcmFtZSBTY3JvbGxpbmciIHZpYSB0aGUgU2FmYXJpIG1l
bnUuCi0gICAgaWYgKGFzeW5jRnJhbWVTY3JvbGxpbmdFbmFibGVkKCkgJiYgZnJhbWVGbGF0dGVu
aW5nKCkgPT0gRnJhbWVGbGF0dGVuaW5nRnVsbHlFbmFibGVkKQotICAgICAgICByZXR1cm4gRnJh
bWVGbGF0dGVuaW5nRGlzYWJsZWQ7Ci0jZW5kaWYKLSAgICByZXR1cm4gZnJhbWVGbGF0dGVuaW5n
KCk7Ci19Ci0KIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3Bh
Z2UvU2V0dGluZ3MuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdz
LmgJKHJldmlzaW9uIDIyMzMzMikKKysrIFNvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuaAko
d29ya2luZyBjb3B5KQpAQCAtMjcsNiArMjcsOCBAQAogI3ByYWdtYSBvbmNlCiAKICNpbmNsdWRl
ICJTZXR0aW5nc0Jhc2UuaCIKKyNpbmNsdWRlICJTZXR0aW5nc01hY3Jvcy5oIgorI2luY2x1ZGUg
PHd0Zi9SZWZDb3VudGVkLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtMzYsMTggKzM4
LDEyIEBAIHB1YmxpYzoKICAgICBzdGF0aWMgUmVmPFNldHRpbmdzPiBjcmVhdGUoUGFnZSopOwog
ICAgIH5TZXR0aW5ncygpOwogCi0gICAgdm9pZCBwYWdlRGVzdHJveWVkKCkgeyBtX3BhZ2UgPSBu
dWxscHRyOyB9Ci0KICAgICBTRVRUSU5HU19HRVRURVJTX0FORF9TRVRURVJTCiAKLQotICAgIFdF
QkNPUkVfRVhQT1JUIEZyYW1lRmxhdHRlbmluZyBlZmZlY3RpdmVGcmFtZUZsYXR0ZW5pbmcoKTsK
LQogcHJpdmF0ZToKICAgICBleHBsaWNpdCBTZXR0aW5ncyhQYWdlKik7CiAKICAgICBTRVRUSU5H
U19NRU1CRVJfVkFSSUFCTEVTCi0KIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuaW4KPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvcGFnZS9TZXR0aW5ncy5pbgkocmV2aXNpb24gMjIzMzMyKQorKysgU291cmNlL1dlYkNv
cmUvcGFnZS9TZXR0aW5ncy5pbgkod29ya2luZyBjb3B5KQpAQCAtMTc1LDcgKzE3NSw3IEBAIHNu
YXBzaG90QWxsUGx1Z0lucyBpbml0aWFsPWZhbHNlCiBhdXRvc3RhcnRPcmlnaW5QbHVnSW5TbmFw
c2hvdHRpbmdFbmFibGVkIGluaXRpYWw9dHJ1ZQogcHJpbWFyeVBsdWdJblNuYXBzaG90RGV0ZWN0
aW9uRW5hYmxlZCBpbml0aWFsPXRydWUKIG1heGltdW1QbHVnSW5TbmFwc2hvdEF0dGVtcHRzIHR5
cGU9dW5zaWduZWQsIGluaXRpYWw9MjAKLWZyYW1lRmxhdHRlbmluZyB0eXBlPUZyYW1lRmxhdHRl
bmluZywgaW5pdGlhbD1GcmFtZUZsYXR0ZW5pbmdEaXNhYmxlZAorZnJhbWVGbGF0dGVuaW5nIHR5
cGU9RnJhbWVGbGF0dGVuaW5nLCBpbml0aWFsPUZyYW1lRmxhdHRlbmluZzo6RGlzYWJsZWQKIGFz
eW5jRnJhbWVTY3JvbGxpbmdFbmFibGVkIGluaXRpYWw9ZmFsc2UKIAogd2ViU2VjdXJpdHlFbmFi
bGVkIGluaXRpYWw9dHJ1ZQpJbmRleDogU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5nc0Jhc2Uu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzQmFzZS5oCShyZXZp
c2lvbiAyMjMzMzIpCisrKyBTb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzQmFzZS5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC0zMSw3ICszMSw3IEBACiAjaW5jbHVkZSAiRWRpdGluZ0JlaGF2aW9yVHlw
ZXMuaCIKICNpbmNsdWRlICJJbnRTaXplLmgiCiAjaW5jbHVkZSAiU2VjdXJpdHlPcmlnaW4uaCIK
LSNpbmNsdWRlICJTZXR0aW5nc01hY3Jvcy5oIgorI2luY2x1ZGUgIlN0b3JhZ2VNYXAuaCIKICNp
bmNsdWRlICJUZXh0RmxhZ3MuaCIKICNpbmNsdWRlICJUaW1lci5oIgogI2luY2x1ZGUgIlVSTC5o
IgpAQCAtODgsMTAgKzg4LDEwIEBAIGVudW0gUERGSW1hZ2VDYWNoaW5nUG9saWN5IHsKICNlbmRp
ZgogfTsKIAotZW51bSBGcmFtZUZsYXR0ZW5pbmcgewotICAgIEZyYW1lRmxhdHRlbmluZ0Rpc2Fi
bGVkLAotICAgIEZyYW1lRmxhdHRlbmluZ0VuYWJsZWRGb3JOb25GdWxsU2NyZWVuSUZyYW1lcywK
LSAgICBGcmFtZUZsYXR0ZW5pbmdGdWxseUVuYWJsZWQKK2VudW0gY2xhc3MgRnJhbWVGbGF0dGVu
aW5nIHsKKyAgICBEaXNhYmxlZCwKKyAgICBFbmFibGVkRm9yTm9uRnVsbFNjcmVlbklGcmFtZXMs
CisgICAgRnVsbHlFbmFibGVkCiB9OwogCiB0eXBlZGVmIHVuc2lnbmVkIERlYnVnT3ZlcmxheVJl
Z2lvbnM7CkBAIC0xMDEsNiArMTAxLDggQEAgY2xhc3MgU2V0dGluZ3NCYXNlIHsKIHB1YmxpYzoK
ICAgICB+U2V0dGluZ3NCYXNlKCk7CiAKKyAgICB2b2lkIHBhZ2VEZXN0cm95ZWQoKSB7IG1fcGFn
ZSA9IG51bGxwdHI7IH0KKwogICAgIGVudW0gY2xhc3MgRm9udExvYWRUaW1pbmdPdmVycmlkZSB7
IE5vbmUsIEJsb2NrLCBTd2FwLCBGYWlsdXJlIH07CiAKICAgICBlbnVtIGNsYXNzIEZvcmNlZEFj
Y2Vzc2liaWxpdHlWYWx1ZSB7IFN5c3RlbSwgT24sIE9mZiB9OwpJbmRleDogU291cmNlL1dlYkNv
cmUvcGFnZS9TZXR0aW5nc0RlZmF1bHRWYWx1ZXMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9wYWdlL1NldHRpbmdzRGVmYXVsdFZhbHVlcy5oCShub25leGlzdGVudCkKKysrIFNvdXJj
ZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3NEZWZhdWx0VmFsdWVzLmgJKHdvcmtpbmcgY29weSkKQEAg
LTAsMCArMSwxMDAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgIkVk
aXRpbmdCZWhhdmlvclR5cGVzLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworLy8gTk9URXMK
Ky8vICAxKSBFZGl0aW5nTWFjQmVoYXZpb3IgY29tcHJpc2VzIFRpZ2VyLCBMZW9wYXJkLCBTbm93
TGVvcGFyZCBhbmQgaU9TIGJ1aWxkcywgYXMgd2VsbCBhcyBRdFdlYktpdCB3aGVuIGJ1aWx0IG9u
IE1hYzsKKy8vICAyKSBFZGl0aW5nV2luZG93c0JlaGF2aW9yIGNvbXByaXNlcyBXaW4zMiBidWls
ZDsKKy8vICAzKSBFZGl0aW5nVW5peEJlaGF2aW9yIGNvbXByaXNlcyBhbGwgdW5peC1iYXNlZCBz
eXN0ZW1zLCBidXQgRGFyd2luL01hY09TIChhbmQgdGhlbiBhYnVzaW5nIHRoZSB0ZXJtaW5vbG9n
eSk7CisvLyA5OSkgTWFjRWRpdGluZ0JlaGF2aW9yIGlzIHVzZWQgYXMgYSBmYWxsYmFjay4KK2lu
bGluZSBFZGl0aW5nQmVoYXZpb3JUeXBlIGVkaXRpbmdCZWhhdmlvclR5cGVGb3JQbGF0Zm9ybSgp
Cit7CisjaWYgUExBVEZPUk0oSU9TKQorICAgIHJldHVybiBFZGl0aW5nSU9TQmVoYXZpb3I7Cisj
ZWxpZiBPUyhEQVJXSU4pCisgICAgcmV0dXJuIEVkaXRpbmdNYWNCZWhhdmlvcjsKKyNlbGlmIE9T
KFdJTkRPV1MpCisgICAgcmV0dXJuIEVkaXRpbmdXaW5kb3dzQmVoYXZpb3I7CisjZWxpZiBPUyhV
TklYKQorICAgIHJldHVybiBFZGl0aW5nVW5peEJlaGF2aW9yOworI2Vsc2UKKyAgICAvLyBGYWxs
YmFjaworICAgIHJldHVybiBFZGl0aW5nTWFjQmVoYXZpb3I7CisjZW5kaWYKKyAgICAKK30KKwor
I2lmIFBMQVRGT1JNKENPQ09BKQorc3RhdGljIGNvbnN0IGJvb2wgZGVmYXVsdFlvdVR1YmVGbGFz
aFBsdWdpblJlcGxhY2VtZW50RW5hYmxlZCA9IHRydWU7CisjZWxzZQorc3RhdGljIGNvbnN0IGJv
b2wgZGVmYXVsdFlvdVR1YmVGbGFzaFBsdWdpblJlcGxhY2VtZW50RW5hYmxlZCA9IGZhbHNlOwor
I2VuZGlmCisKKyNpZiBQTEFURk9STShJT1MpCitzdGF0aWMgY29uc3QgYm9vbCBkZWZhdWx0Rml4
ZWRCYWNrZ3JvdW5kc1BhaW50UmVsYXRpdmVUb0RvY3VtZW50ID0gdHJ1ZTsKK3N0YXRpYyBjb25z
dCBib29sIGRlZmF1bHRBY2NlbGVyYXRlZENvbXBvc2l0aW5nRm9yRml4ZWRQb3NpdGlvbkVuYWJs
ZWQgPSB0cnVlOworc3RhdGljIGNvbnN0IGJvb2wgZGVmYXVsdEFsbG93c0lubGluZU1lZGlhUGxh
eWJhY2sgPSBmYWxzZTsKK3N0YXRpYyBjb25zdCBib29sIGRlZmF1bHRJbmxpbmVNZWRpYVBsYXli
YWNrUmVxdWlyZXNQbGF5c0lubGluZUF0dHJpYnV0ZSA9IHRydWU7CitzdGF0aWMgY29uc3QgYm9v
bCBkZWZhdWx0VmlkZW9QbGF5YmFja1JlcXVpcmVzVXNlckdlc3R1cmUgPSB0cnVlOworc3RhdGlj
IGNvbnN0IGJvb2wgZGVmYXVsdEF1ZGlvUGxheWJhY2tSZXF1aXJlc1VzZXJHZXN0dXJlID0gdHJ1
ZTsKK3N0YXRpYyBjb25zdCBib29sIGRlZmF1bHRNZWRpYURhdGFMb2Fkc0F1dG9tYXRpY2FsbHkg
PSBmYWxzZTsKK3N0YXRpYyBjb25zdCBib29sIGRlZmF1bHRTaG91bGRSZXNwZWN0SW1hZ2VPcmll
bnRhdGlvbiA9IHRydWU7CitzdGF0aWMgY29uc3QgYm9vbCBkZWZhdWx0SW1hZ2VTdWJzYW1wbGlu
Z0VuYWJsZWQgPSB0cnVlOworc3RhdGljIGNvbnN0IGJvb2wgZGVmYXVsdFNjcm9sbGluZ1RyZWVJ
bmNsdWRlc0ZyYW1lcyA9IHRydWU7CitzdGF0aWMgY29uc3QgYm9vbCBkZWZhdWx0TWVkaWFDb250
cm9sc1NjYWxlV2l0aFBhZ2Vab29tID0gdHJ1ZTsKK3N0YXRpYyBjb25zdCBib29sIGRlZmF1bHRR
dWlja1RpbWVQbHVnaW5SZXBsYWNlbWVudEVuYWJsZWQgPSB0cnVlOworI2Vsc2UKK3N0YXRpYyBj
b25zdCBib29sIGRlZmF1bHRGaXhlZEJhY2tncm91bmRzUGFpbnRSZWxhdGl2ZVRvRG9jdW1lbnQg
PSBmYWxzZTsKK3N0YXRpYyBjb25zdCBib29sIGRlZmF1bHRBY2NlbGVyYXRlZENvbXBvc2l0aW5n
Rm9yRml4ZWRQb3NpdGlvbkVuYWJsZWQgPSBmYWxzZTsKK3N0YXRpYyBjb25zdCBib29sIGRlZmF1
bHRBbGxvd3NJbmxpbmVNZWRpYVBsYXliYWNrID0gdHJ1ZTsKK3N0YXRpYyBjb25zdCBib29sIGRl
ZmF1bHRJbmxpbmVNZWRpYVBsYXliYWNrUmVxdWlyZXNQbGF5c0lubGluZUF0dHJpYnV0ZSA9IGZh
bHNlOworc3RhdGljIGNvbnN0IGJvb2wgZGVmYXVsdFZpZGVvUGxheWJhY2tSZXF1aXJlc1VzZXJH
ZXN0dXJlID0gZmFsc2U7CitzdGF0aWMgY29uc3QgYm9vbCBkZWZhdWx0QXVkaW9QbGF5YmFja1Jl
cXVpcmVzVXNlckdlc3R1cmUgPSBmYWxzZTsKK3N0YXRpYyBjb25zdCBib29sIGRlZmF1bHRNZWRp
YURhdGFMb2Fkc0F1dG9tYXRpY2FsbHkgPSB0cnVlOworc3RhdGljIGNvbnN0IGJvb2wgZGVmYXVs
dFNob3VsZFJlc3BlY3RJbWFnZU9yaWVudGF0aW9uID0gZmFsc2U7CitzdGF0aWMgY29uc3QgYm9v
bCBkZWZhdWx0SW1hZ2VTdWJzYW1wbGluZ0VuYWJsZWQgPSBmYWxzZTsKK3N0YXRpYyBjb25zdCBi
b29sIGRlZmF1bHRTY3JvbGxpbmdUcmVlSW5jbHVkZXNGcmFtZXMgPSBmYWxzZTsKK3N0YXRpYyBj
b25zdCBib29sIGRlZmF1bHRNZWRpYUNvbnRyb2xzU2NhbGVXaXRoUGFnZVpvb20gPSB0cnVlOwor
c3RhdGljIGNvbnN0IGJvb2wgZGVmYXVsdFF1aWNrVGltZVBsdWdpblJlcGxhY2VtZW50RW5hYmxl
ZCA9IGZhbHNlOworI2VuZGlmCisKK3N0YXRpYyBjb25zdCBib29sIGRlZmF1bHRSZXF1aXJlc1Vz
ZXJHZXN0dXJlVG9Mb2FkVmlkZW8gPSB0cnVlOworc3RhdGljIGNvbnN0IGJvb2wgZGVmYXVsdEFs
bG93c1BpY3R1cmVJblBpY3R1cmVNZWRpYVBsYXliYWNrID0gdHJ1ZTsKKworc3RhdGljIGNvbnN0
IGRvdWJsZSBkZWZhdWx0SW5jcmVtZW50YWxSZW5kZXJpbmdTdXBwcmVzc2lvblRpbWVvdXRJblNl
Y29uZHMgPSA1OworI2lmIFVTRShVTklGSUVEX1RFWFRfQ0hFQ0tJTkcpCitzdGF0aWMgY29uc3Qg
Ym9vbCBkZWZhdWx0VW5pZmllZFRleHRDaGVja2VyRW5hYmxlZCA9IHRydWU7CisjZWxzZQorc3Rh
dGljIGNvbnN0IGJvb2wgZGVmYXVsdFVuaWZpZWRUZXh0Q2hlY2tlckVuYWJsZWQgPSBmYWxzZTsK
KyNlbmRpZgorc3RhdGljIGNvbnN0IGJvb2wgZGVmYXVsdFNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxl
ZCA9IHRydWU7CitzdGF0aWMgY29uc3QgYm9vbCBkZWZhdWx0U2VsZWN0VHJhaWxpbmdXaGl0ZXNw
YWNlRW5hYmxlZCA9IGZhbHNlOworCit9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyRnJhbWVTZXQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJGcmFtZVNldC5jcHAJKHJldmlzaW9uIDIyMzMzMikKKysrIFNvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJGcmFtZVNldC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTY1MSw3ICs2
NTEsNyBAQCB2b2lkIFJlbmRlckZyYW1lU2V0Ojpwb3NpdGlvbkZyYW1lc1dpdGhGCiAKIGJvb2wg
UmVuZGVyRnJhbWVTZXQ6OmZsYXR0ZW5GcmFtZVNldCgpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIHNl
dHRpbmdzKCkuZWZmZWN0aXZlRnJhbWVGbGF0dGVuaW5nKCkgIT0gRnJhbWVGbGF0dGVuaW5nRGlz
YWJsZWQ7CisgICAgcmV0dXJuIHZpZXcoKS5mcmFtZVZpZXcoKS5lZmZlY3RpdmVGcmFtZUZsYXR0
ZW5pbmcoKSAhPSBGcmFtZUZsYXR0ZW5pbmc6OkRpc2FibGVkOwogfQogCiB2b2lkIFJlbmRlckZy
YW1lU2V0OjpzdGFydFJlc2l6aW5nKEdyaWRBeGlzJiBheGlzLCBpbnQgcG9zaXRpb24pCkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySUZyYW1lLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySUZyYW1lLmNwcAkocmV2aXNpb24gMjIz
MzMyKQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlcklGcmFtZS5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTc4LDcgKzc4LDcgQEAgYm9vbCBSZW5kZXJJRnJhbWU6OmlzRnVsbFNjcmVl
bklGcmFtZSgpIAogCiBib29sIFJlbmRlcklGcmFtZTo6ZmxhdHRlbkZyYW1lKCkgY29uc3QKIHsK
LSAgICBpZiAoc2V0dGluZ3MoKS5lZmZlY3RpdmVGcmFtZUZsYXR0ZW5pbmcoKSA9PSBGcmFtZUZs
YXR0ZW5pbmdEaXNhYmxlZCkKKyAgICBpZiAodmlldygpLmZyYW1lVmlldygpLmVmZmVjdGl2ZUZy
YW1lRmxhdHRlbmluZygpID09IEZyYW1lRmxhdHRlbmluZzo6RGlzYWJsZWQpCiAgICAgICAgIHJl
dHVybiBmYWxzZTsKIAogICAgIGlmIChzdHlsZSgpLndpZHRoKCkuaXNGaXhlZCgpICYmIHN0eWxl
KCkuaGVpZ2h0KCkuaXNGaXhlZCgpKSB7CkBAIC04OSw3ICs4OSw3IEBAIGJvb2wgUmVuZGVySUZy
YW1lOjpmbGF0dGVuRnJhbWUoKSBjb25zdAogICAgICAgICBpZiAoc3R5bGUoKS53aWR0aCgpLnZh
bHVlKCkgPD0gMCB8fCBzdHlsZSgpLmhlaWdodCgpLnZhbHVlKCkgPD0gMCkKICAgICAgICAgICAg
IHJldHVybiBmYWxzZTsKICAgICAgICAgLy8gRG8gbm90IGZsYXR0ZW4gImZ1bGxzY3JlZW4iIGlm
cmFtZXMgb3IgdGhleSBjb3VsZCBiZWNvbWUgbGFyZ2VyIHRoYW4gdGhlIHZpZXdwb3J0LgotICAg
ICAgICBpZiAoc2V0dGluZ3MoKS5lZmZlY3RpdmVGcmFtZUZsYXR0ZW5pbmcoKSA8PSBGcmFtZUZs
YXR0ZW5pbmdFbmFibGVkRm9yTm9uRnVsbFNjcmVlbklGcmFtZXMgJiYgaXNGdWxsU2NyZWVuSUZy
YW1lKCkpCisgICAgICAgIGlmICh2aWV3KCkuZnJhbWVWaWV3KCkuZWZmZWN0aXZlRnJhbWVGbGF0
dGVuaW5nKCkgPD0gRnJhbWVGbGF0dGVuaW5nOjpFbmFibGVkRm9yTm9uRnVsbFNjcmVlbklGcmFt
ZXMgJiYgaXNGdWxsU2NyZWVuSUZyYW1lKCkpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAg
ICAgfQogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVmlldy5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclZpZXcuY3BwCShyZXZp
c2lvbiAyMjMzMzIpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVmlldy5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTU5LDcgKzU5LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogc3Ry
dWN0IEZyYW1lRmxhdHRlbmluZ0xheW91dERpc2FsbG93ZXIgewogICAgIEZyYW1lRmxhdHRlbmlu
Z0xheW91dERpc2FsbG93ZXIoRnJhbWVWaWV3JiBmcmFtZVZpZXcpCiAgICAgICAgIDogbV9mcmFt
ZVZpZXcoZnJhbWVWaWV3KQotICAgICAgICAsIG1fZGlzYWxsb3dMYXlvdXQoZnJhbWVWaWV3LmZy
YW1lKCkuc2V0dGluZ3MoKS5lZmZlY3RpdmVGcmFtZUZsYXR0ZW5pbmcoKSAhPSBGcmFtZUZsYXR0
ZW5pbmdEaXNhYmxlZCkKKyAgICAgICAgLCBtX2Rpc2FsbG93TGF5b3V0KGZyYW1lVmlldy5lZmZl
Y3RpdmVGcmFtZUZsYXR0ZW5pbmcoKSAhPSBGcmFtZUZsYXR0ZW5pbmc6OkRpc2FibGVkKQogICAg
IHsKICAgICAgICAgaWYgKG1fZGlzYWxsb3dMYXlvdXQpCiAgICAgICAgICAgICBtX2ZyYW1lVmll
dy5zdGFydERpc2FsbG93aW5nTGF5b3V0KCk7CkluZGV4OiBTb3VyY2UvV2ViS2l0L0NoYW5nZUxv
Zwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwkocmV2aXNpb24gMjIzMzMz
KQorKysgU291cmNlL1dlYktpdC9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwx
NSBAQAorMjAxNy0xMC0xNSAgU2FtIFdlaW5pZyAgPHNhbUB3ZWJraXQub3JnPgorCisgICAgICAg
IFtTZXR0aW5nc10gUmVtb3ZlIGFsbCBjdXN0b20gY29kZSBmcm9tIFNldHRpbmdzLmgvY3BwCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzgzMzAKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcDoKKyAgICAgICAgKFdlYktpdDo6
V2ViQ2hyb21lQ2xpZW50Ojpjb250ZW50c1NpemVDaGFuZ2VkIGNvbnN0KToKKyAgICAgICAgCisg
ICAgICAgICAgICBHZSB0aGUgZWZmZWN0aXZlRnJhbWVGbGF0dGVuaW5nIGZyb20gdGhlIEZyYW1l
VmlldywgcmF0aGVyIHRoYW4gdGhlIFNldHRpbmdzLgorCiAyMDE3LTEwLTEzICBZb3Vlbm4gRmFi
bGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBJbXBsZW1lbnQgbGlzdGluZyBvcmln
aW5zIGZvciB3aGljaCBDYWNoZVN0b3JhZ2UgaXMgc3RvcmluZyBkYXRhCkluZGV4OiBTb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hy
b21lQ2xpZW50LmNwcAkocmV2aXNpb24gMjIzMzI4KQorKysgU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTU2Niw3ICs1NjYsOSBAQCBQbGF0Zm9ybVBhZ2VDbGllbnQgV2ViQ2hyb21lQ2xpZW50OjpwbGF0
CiAKIHZvaWQgV2ViQ2hyb21lQ2xpZW50Ojpjb250ZW50c1NpemVDaGFuZ2VkKEZyYW1lJiBmcmFt
ZSwgY29uc3QgSW50U2l6ZSYgc2l6ZSkgY29uc3QKIHsKLSAgICBpZiAobV9wYWdlLmNvcmVQYWdl
KCktPnNldHRpbmdzKCkuZWZmZWN0aXZlRnJhbWVGbGF0dGVuaW5nKCkgPT0gRnJhbWVGbGF0dGVu
aW5nRGlzYWJsZWQpIHsKKyAgICBGcmFtZVZpZXcqIGZyYW1lVmlldyA9IGZyYW1lLnZpZXcoKTsK
KworICAgIGlmIChmcmFtZVZpZXcgJiYgZnJhbWVWaWV3LT5lZmZlY3RpdmVGcmFtZUZsYXR0ZW5p
bmcoKSA9PSBGcmFtZUZsYXR0ZW5pbmc6OkRpc2FibGVkKSB7CiAgICAgICAgIFdlYkZyYW1lKiBs
YXJnZXN0RnJhbWUgPSBmaW5kTGFyZ2VzdEZyYW1lSW5GcmFtZVNldChtX3BhZ2UpOwogICAgICAg
ICBpZiAobGFyZ2VzdEZyYW1lICE9IG1fY2FjaGVkRnJhbWVTZXRMYXJnZXN0RnJhbWUuZ2V0KCkp
IHsKICAgICAgICAgICAgIG1fY2FjaGVkRnJhbWVTZXRMYXJnZXN0RnJhbWUgPSBsYXJnZXN0RnJh
bWU7CkBAIC01ODEsNyArNTgzLDYgQEAgdm9pZCBXZWJDaHJvbWVDbGllbnQ6OmNvbnRlbnRzU2l6
ZUNoYW5nZQogCiAgICAgbV9wYWdlLmRyYXdpbmdBcmVhKCktPm1haW5GcmFtZUNvbnRlbnRTaXpl
Q2hhbmdlZChzaXplKTsKIAotICAgIEZyYW1lVmlldyogZnJhbWVWaWV3ID0gZnJhbWUudmlldygp
OwogICAgIGlmIChmcmFtZVZpZXcgJiYgIWZyYW1lVmlldy0+ZGVsZWdhdGVzU2Nyb2xsaW5nKCkp
ICB7CiAgICAgICAgIGJvb2wgaGFzSG9yaXpvbnRhbFNjcm9sbGJhciA9IGZyYW1lVmlldy0+aG9y
aXpvbnRhbFNjcm9sbGJhcigpOwogICAgICAgICBib29sIGhhc1ZlcnRpY2FsU2Nyb2xsYmFyID0g
ZnJhbWVWaWV3LT52ZXJ0aWNhbFNjcm9sbGJhcigpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>323882</attachid>
            <date>2017-10-16 03:20:02 -0700</date>
            <delta_ts>2017-10-16 03:34:38 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-178330-20171016031936.patch</filename>
            <type>text/plain</type>
            <size>24238</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIyMzMzMykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM2IEBACisyMDE3LTEwLTE1ICBTYW0gV2Vp
bmlnICA8c2FtQHdlYmtpdC5vcmc+CisKKyAgICAgICAgW1NldHRpbmdzXSBSZW1vdmUgYWxsIGN1
c3RvbSBjb2RlIGZyb20gU2V0dGluZ3MuaC9jcHAKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTE3ODMzMAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIFJlbW92ZXMgdGhlIHR3byByZW1haW5pbmcgZnVuY3Rpb25z
IG91dCBvZiBTZXR0aW5ncyBwYXZpbmcgdGhlIHdheQorICAgICAgICBmb3IgdGhlIGZpbGUgdG8g
YmUgZ2VuZXJhdGVkLgorICAgICAgICAKKyAgICAgICAgLSBwYWdlRGVzdHJveWVkIHdhcyBtb3Zl
ZCBkb3duIGludG8gU2V0dGluZ3NCYXNlLgorICAgICAgICAtIGVmZmVjdGl2ZUZyYW1lRmxhdHRl
bmluZyB3YXMgbW92ZWQgdG8gRnJhbWVWaWV3ICh0byByZWR1Y2UgdGhlIG5lZWQKKyAgICAgICAg
ICBmb3IgYWRkaXRpb25hbCBpbmNsdWRlcywgdGhlIEZyYW1lRmxhdHRlbmluZyBlbnVtIHdhcyBj
b252ZXJ0ZWQgdG8KKyAgICAgICAgICBhbiBlbnVtIGNsYXNzIHRvIGFsbG93IGl0IHRvIGJlIGZv
cndhcmQgZGVjbGFyZWQpLgorCisgICAgICAgICogcGFnZS9GcmFtZVZpZXcuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6RnJhbWVWaWV3OjplZmZlY3RpdmVGcmFtZUZsYXR0ZW5pbmcpOgorICAgICAg
ICAoV2ViQ29yZTo6RnJhbWVWaWV3OjpmcmFtZUZsYXR0ZW5pbmdFbmFibGVkIGNvbnN0KToKKyAg
ICAgICAgKiBwYWdlL0ZyYW1lVmlldy5oOgorICAgICAgICAqIHBhZ2UvU2V0dGluZ3MuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6U2V0dGluZ3M6OmVmZmVjdGl2ZUZyYW1lRmxhdHRlbmluZyk6IERl
bGV0ZWQuCisgICAgICAgICogcGFnZS9TZXR0aW5ncy5oOgorICAgICAgICAoV2ViQ29yZTo6U2V0
dGluZ3M6OnBhZ2VEZXN0cm95ZWQpOiBEZWxldGVkLgorICAgICAgICAqIHBhZ2UvU2V0dGluZ3Mu
aW46CisgICAgICAgICogcGFnZS9TZXR0aW5nc0Jhc2UuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNl
dHRpbmdzQmFzZTo6cGFnZURlc3Ryb3llZCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckZy
YW1lU2V0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckZyYW1lU2V0OjpmbGF0dGVuRnJh
bWVTZXQgY29uc3QpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJJRnJhbWUuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6UmVuZGVySUZyYW1lOjpmbGF0dGVuRnJhbWUgY29uc3QpOgorICAgICAg
ICAqIHJlbmRlcmluZy9SZW5kZXJWaWV3LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lRmxh
dHRlbmluZ0xheW91dERpc2FsbG93ZXI6OkZyYW1lRmxhdHRlbmluZ0xheW91dERpc2FsbG93ZXIp
OgorCiAyMDE3LTEwLTE1ICBTYW0gV2VpbmlnICA8c2FtQHdlYmtpdC5vcmc+CiAKICAgICAgICAg
W1NldHRpbmdzXSBTcGxpdCBub24tbWFjcm8gZ2VuZXJhdGVkIHBhcnRzIG9mIFNldHRpbmdzIGlu
dG8gU2V0dGluZ3NCYXNlIGJhc2UgY2xhc3MKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHJldmlzaW9uIDIyMzMzMikKKysrIFNv
dXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkod29ya2luZyBj
b3B5KQpAQCAtMTE0ODQsNiArMTE0ODQsNyBAQAogCQk3QzY1NzlFRDFFMDA4NTY2MDBFM0EyN0Eg
LyogSlNBcHBsZVBheVNoaXBwaW5nTWV0aG9kLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IEpTQXBwbGVQYXlTaGlwcGluZ01ldGhvZC5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTdDNjU3OUVFMUUwMDg1NjYwMEUzQTI3QSAvKiBKU0FwcGxlUGF5U2hp
cHBpbmdNZXRob2QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNBcHBsZVBh
eVNoaXBwaW5nTWV0aG9kLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdDNjc1MkJB
MUIwNkU4MjAwMEMyNzlDQiAvKiBOb25FbGVtZW50UGFyZW50Tm9kZS5pZGwgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0
ZXh0OyBwYXRoID0gTm9uRWxlbWVudFBhcmVudE5vZGUuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQk3QzZFRkVFQTFGOTQ2QTJFMDBGRkFENDEgLyogU2V0dGluZ3NEZWZhdWx0VmFs
dWVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNldHRpbmdzRGVmYXVsdFZhbHVlcy5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk3QzczRkIwNTE5MUVGNDE2MDA3REUwNjEgLyogVXNlck1lc3Nh
Z2VIYW5kbGVyc05hbWVzcGFjZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBVc2VyTWVzc2FnZUhhbmRsZXJzTmFtZXNwYWNlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJN0M3M0ZCMDYxOTFFRjQxNzAwN0RFMDYxIC8qIFVzZXJNZXNzYWdlSGFuZGxl
cnNOYW1lc3BhY2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVXNlck1lc3Nh
Z2VIYW5kbGVyc05hbWVzcGFjZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3Qzcz
RkIwOTE5MUVGNDlGMDA3REUwNjEgLyogVXNlck1lc3NhZ2VIYW5kbGVyc05hbWVzcGFjZS5pZGwg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBw
YXRoID0gVXNlck1lc3NhZ2VIYW5kbGVyc05hbWVzcGFjZS5pZGw7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CkBAIC0xOTg4NCw2ICsxOTg4NSw3IEBACiAJCQkJQkM1OURFRjgxNjlERURDMzAw
MTZBQzM0IC8qIFNldHRpbmdzLmluICovLAogCQkJCTdDQzY2MDlCMUY5MzA1NzkwMEQ1MDBFOSAv
KiBTZXR0aW5nc0Jhc2UuY3BwICovLAogCQkJCTdDQzY2MDk5MUY5MzA1NzgwMEQ1MDBFOSAvKiBT
ZXR0aW5nc0Jhc2UuaCAqLywKKwkJCQk3QzZFRkVFQTFGOTQ2QTJFMDBGRkFENDEgLyogU2V0dGlu
Z3NEZWZhdWx0VmFsdWVzLmggKi8sCiAJCQkJNUM2ODhBQTIxRDM4MTI2RjAwMEI1NEZBIC8qIFNv
Y2tldFByb3ZpZGVyLmNwcCAqLywKIAkJCQk1QzdDODhENzFEMEYxRjJCMDA5RDJGNkQgLyogU29j
a2V0UHJvdmlkZXIuaCAqLywKIAkJCQk2MjZDREUwQzExNDA0MjRDMDAxRTVBNjggLyogU3BhdGlh
bE5hdmlnYXRpb24uY3BwICovLApJbmRleDogU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcAkocmV2
aXNpb24gMjIzMzMyKQorKysgU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC01NjYsOSArNTY2LDIxIEBAIHZvaWQgRnJhbWVWaWV3OjpzZXRNYXJnaW5I
ZWlnaHQoTGF5b3V0VW4KICAgICBtX21hcmdpbnMuc2V0SGVpZ2h0KGgpOwogfQogCitGcmFtZUZs
YXR0ZW5pbmcgRnJhbWVWaWV3OjplZmZlY3RpdmVGcmFtZUZsYXR0ZW5pbmcoKSBjb25zdAorewor
I2lmIFBMQVRGT1JNKElPUykKKyAgICAvLyBPbiBpT1Mgd2hlbiBhc3luYyBmcmFtZSBzY3JvbGxp
bmcgaXMgZW5hYmxlZCwgaXQgZG9lcyBub3QgbWFrZSBzZW5zZSB0byB1c2UgZnVsbCBmcmFtZSBm
bGF0dGVuaW5nLgorICAgIC8vIEluIHRoYXQgY2FzZSwgd2UganVzdCBjb25zaWRlciB0aGF0IGZy
YW1lIGZsYXR0ZW5pbmcgaXMgZGlzYWJsZWQuIFRoaXMgYWxsb3dzIHBlb3BsZSB0byB0ZXN0Cisg
ICAgLy8gZnJhbWUgc2Nyb2xsaW5nIG9uIGlPUyBieSBlbmFibGluZyAiQXN5bmMgRnJhbWUgU2Ny
b2xsaW5nIiB2aWEgdGhlIFNhZmFyaSBtZW51LgorICAgIGlmIChmcmFtZSgpLnNldHRpbmdzKCku
YXN5bmNGcmFtZVNjcm9sbGluZ0VuYWJsZWQoKSAmJiBmcmFtZSgpLnNldHRpbmdzKCkuZnJhbWVG
bGF0dGVuaW5nKCkgPT0gRnJhbWVGbGF0dGVuaW5nOjpGdWxseUVuYWJsZWQpCisgICAgICAgIHJl
dHVybiBGcmFtZUZsYXR0ZW5pbmc6OkRpc2FibGVkOworI2VuZGlmCisgICAgcmV0dXJuIGZyYW1l
KCkuc2V0dGluZ3MoKS5mcmFtZUZsYXR0ZW5pbmcoKTsKK30KKwogYm9vbCBGcmFtZVZpZXc6OmZy
YW1lRmxhdHRlbmluZ0VuYWJsZWQoKSBjb25zdAogewotICAgIHJldHVybiBmcmFtZSgpLnNldHRp
bmdzKCkuZWZmZWN0aXZlRnJhbWVGbGF0dGVuaW5nKCkgIT0gRnJhbWVGbGF0dGVuaW5nRGlzYWJs
ZWQ7CisgICAgcmV0dXJuIGVmZmVjdGl2ZUZyYW1lRmxhdHRlbmluZygpICE9IEZyYW1lRmxhdHRl
bmluZzo6RGlzYWJsZWQ7CiB9CiAKIGJvb2wgRnJhbWVWaWV3Ojppc0ZyYW1lRmxhdHRlbmluZ1Zh
bGlkRm9yVGhpc0ZyYW1lKCkgY29uc3QKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVW
aWV3LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuaAkocmV2
aXNpb24gMjIzMzMyKQorKysgU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuaAkod29ya2lu
ZyBjb3B5KQpAQCAtNjEsNiArNjEsOCBAQCBjbGFzcyBSZW5kZXJTdHlsZTsKIGNsYXNzIFJlbmRl
clZpZXc7CiBjbGFzcyBSZW5kZXJXaWRnZXQ7CiAKK2VudW0gY2xhc3MgRnJhbWVGbGF0dGVuaW5n
OworCiBQYWdpbmF0aW9uOjpNb2RlIHBhZ2luYXRpb25Nb2RlRm9yUmVuZGVyU3R5bGUoY29uc3Qg
UmVuZGVyU3R5bGUmKTsKIAogY2xhc3MgRnJhbWVWaWV3IGZpbmFsIDogcHVibGljIFNjcm9sbFZp
ZXcgewpAQCAtNjM1LDYgKzYzNyw4IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgc2V0U3BlY3VsYXRp
dmVUaWxpbmdEZWxheURpc2FibGVkRm9yVGVzdGluZyhib29sIGRpc2FibGVkKSB7IG1fc3BlY3Vs
YXRpdmVUaWxpbmdEZWxheURpc2FibGVkRm9yVGVzdGluZyA9IGRpc2FibGVkOyB9CiAKKyAgICBX
RUJDT1JFX0VYUE9SVCBGcmFtZUZsYXR0ZW5pbmcgZWZmZWN0aXZlRnJhbWVGbGF0dGVuaW5nKCkg
Y29uc3Q7CisKIHByb3RlY3RlZDoKICAgICBib29sIHNjcm9sbENvbnRlbnRzRmFzdFBhdGgoY29u
c3QgSW50U2l6ZSYgc2Nyb2xsRGVsdGEsIGNvbnN0IEludFJlY3QmIHJlY3RUb1Njcm9sbCwgY29u
c3QgSW50UmVjdCYgY2xpcFJlY3QpIGZpbmFsOwogICAgIHZvaWQgc2Nyb2xsQ29udGVudHNTbG93
UGF0aChjb25zdCBJbnRSZWN0JiB1cGRhdGVSZWN0KSBmaW5hbDsKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL3BhZ2UvU2V0dGluZ3MuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BhZ2Uv
U2V0dGluZ3MuY3BwCShyZXZpc2lvbiAyMjMzMzIpCisrKyBTb3VyY2UvV2ViQ29yZS9wYWdlL1Nl
dHRpbmdzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjYsOTcgKzI2LDExIEBACiAjaW5jbHVkZSAi
Y29uZmlnLmgiCiAjaW5jbHVkZSAiU2V0dGluZ3MuaCIKIAotI2luY2x1ZGUgIkF1ZGlvU2Vzc2lv
bi5oIgotI2luY2x1ZGUgIkJhY2tGb3J3YXJkQ29udHJvbGxlci5oIgotI2luY2x1ZGUgIkNhY2hl
ZFJlc291cmNlTG9hZGVyLmgiCi0jaW5jbHVkZSAiQ29va2llU3RvcmFnZS5oIgotI2luY2x1ZGUg
IkRPTVRpbWVyLmgiCi0jaW5jbHVkZSAiRGF0YWJhc2UuaCIKLSNpbmNsdWRlICJEb2N1bWVudC5o
IgotI2luY2x1ZGUgIkZvbnRDYXNjYWRlLmgiCi0jaW5jbHVkZSAiRm9udEdlbmVyaWNGYW1pbGll
cy5oIgotI2luY2x1ZGUgIkZyYW1lVHJlZS5oIgotI2luY2x1ZGUgIkZyYW1lVmlldy5oIgotI2lu
Y2x1ZGUgIkhUTUxNZWRpYUVsZW1lbnQuaCIKLSNpbmNsdWRlICJIaXN0b3J5SXRlbS5oIgotI2lu
Y2x1ZGUgIk1haW5GcmFtZS5oIgogI2luY2x1ZGUgIlBhZ2UuaCIKLSNpbmNsdWRlICJTdG9yYWdl
TWFwLmgiCi0jaW5jbHVkZSA8bGltaXRzPgotI2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5o
PgotI2luY2x1ZGUgPHd0Zi9TdGRMaWJFeHRyYXMuaD4KKyNpbmNsdWRlICJTZXR0aW5nc0RlZmF1
bHRWYWx1ZXMuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi0vLyBOT1RFcwotLy8gIDEpIEVk
aXRpbmdNYWNCZWhhdmlvciBjb21wcmlzZXMgVGlnZXIsIExlb3BhcmQsIFNub3dMZW9wYXJkIGFu
ZCBpT1MgYnVpbGRzLCBhcyB3ZWxsIGFzIFF0V2ViS2l0IHdoZW4gYnVpbHQgb24gTWFjOwotLy8g
IDIpIEVkaXRpbmdXaW5kb3dzQmVoYXZpb3IgY29tcHJpc2VzIFdpbjMyIGJ1aWxkOwotLy8gIDMp
IEVkaXRpbmdVbml4QmVoYXZpb3IgY29tcHJpc2VzIGFsbCB1bml4LWJhc2VkIHN5c3RlbXMsIGJ1
dCBEYXJ3aW4vTWFjT1MgKGFuZCB0aGVuIGFidXNpbmcgdGhlIHRlcm1pbm9sb2d5KTsKLS8vIDk5
KSBNYWNFZGl0aW5nQmVoYXZpb3IgaXMgdXNlZCBhcyBhIGZhbGxiYWNrLgotc3RhdGljIEVkaXRp
bmdCZWhhdmlvclR5cGUgZWRpdGluZ0JlaGF2aW9yVHlwZUZvclBsYXRmb3JtKCkKLXsKLSAgICBy
ZXR1cm4KLSNpZiBQTEFURk9STShJT1MpCi0gICAgRWRpdGluZ0lPU0JlaGF2aW9yCi0jZWxpZiBP
UyhEQVJXSU4pCi0gICAgRWRpdGluZ01hY0JlaGF2aW9yCi0jZWxpZiBPUyhXSU5ET1dTKQotICAg
IEVkaXRpbmdXaW5kb3dzQmVoYXZpb3IKLSNlbGlmIE9TKFVOSVgpCi0gICAgRWRpdGluZ1VuaXhC
ZWhhdmlvcgotI2Vsc2UKLSAgICAvLyBGYWxsYmFjawotICAgIEVkaXRpbmdNYWNCZWhhdmlvcgot
I2VuZGlmCi0gICAgOwotfQotCi0jaWYgUExBVEZPUk0oQ09DT0EpCi1zdGF0aWMgY29uc3QgYm9v
bCBkZWZhdWx0WW91VHViZUZsYXNoUGx1Z2luUmVwbGFjZW1lbnRFbmFibGVkID0gdHJ1ZTsKLSNl
bHNlCi1zdGF0aWMgY29uc3QgYm9vbCBkZWZhdWx0WW91VHViZUZsYXNoUGx1Z2luUmVwbGFjZW1l
bnRFbmFibGVkID0gZmFsc2U7Ci0jZW5kaWYKLQotI2lmIFBMQVRGT1JNKElPUykKLXN0YXRpYyBj
b25zdCBib29sIGRlZmF1bHRGaXhlZEJhY2tncm91bmRzUGFpbnRSZWxhdGl2ZVRvRG9jdW1lbnQg
PSB0cnVlOwotc3RhdGljIGNvbnN0IGJvb2wgZGVmYXVsdEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdG
b3JGaXhlZFBvc2l0aW9uRW5hYmxlZCA9IHRydWU7Ci1zdGF0aWMgY29uc3QgYm9vbCBkZWZhdWx0
QWxsb3dzSW5saW5lTWVkaWFQbGF5YmFjayA9IGZhbHNlOwotc3RhdGljIGNvbnN0IGJvb2wgZGVm
YXVsdElubGluZU1lZGlhUGxheWJhY2tSZXF1aXJlc1BsYXlzSW5saW5lQXR0cmlidXRlID0gdHJ1
ZTsKLXN0YXRpYyBjb25zdCBib29sIGRlZmF1bHRWaWRlb1BsYXliYWNrUmVxdWlyZXNVc2VyR2Vz
dHVyZSA9IHRydWU7Ci1zdGF0aWMgY29uc3QgYm9vbCBkZWZhdWx0QXVkaW9QbGF5YmFja1JlcXVp
cmVzVXNlckdlc3R1cmUgPSB0cnVlOwotc3RhdGljIGNvbnN0IGJvb2wgZGVmYXVsdE1lZGlhRGF0
YUxvYWRzQXV0b21hdGljYWxseSA9IGZhbHNlOwotc3RhdGljIGNvbnN0IGJvb2wgZGVmYXVsdFNo
b3VsZFJlc3BlY3RJbWFnZU9yaWVudGF0aW9uID0gdHJ1ZTsKLXN0YXRpYyBjb25zdCBib29sIGRl
ZmF1bHRJbWFnZVN1YnNhbXBsaW5nRW5hYmxlZCA9IHRydWU7Ci1zdGF0aWMgY29uc3QgYm9vbCBk
ZWZhdWx0U2Nyb2xsaW5nVHJlZUluY2x1ZGVzRnJhbWVzID0gdHJ1ZTsKLXN0YXRpYyBjb25zdCBi
b29sIGRlZmF1bHRNZWRpYUNvbnRyb2xzU2NhbGVXaXRoUGFnZVpvb20gPSB0cnVlOwotc3RhdGlj
IGNvbnN0IGJvb2wgZGVmYXVsdFF1aWNrVGltZVBsdWdpblJlcGxhY2VtZW50RW5hYmxlZCA9IHRy
dWU7Ci0jZWxzZQotc3RhdGljIGNvbnN0IGJvb2wgZGVmYXVsdEZpeGVkQmFja2dyb3VuZHNQYWlu
dFJlbGF0aXZlVG9Eb2N1bWVudCA9IGZhbHNlOwotc3RhdGljIGNvbnN0IGJvb2wgZGVmYXVsdEFj
Y2VsZXJhdGVkQ29tcG9zaXRpbmdGb3JGaXhlZFBvc2l0aW9uRW5hYmxlZCA9IGZhbHNlOwotc3Rh
dGljIGNvbnN0IGJvb2wgZGVmYXVsdEFsbG93c0lubGluZU1lZGlhUGxheWJhY2sgPSB0cnVlOwot
c3RhdGljIGNvbnN0IGJvb2wgZGVmYXVsdElubGluZU1lZGlhUGxheWJhY2tSZXF1aXJlc1BsYXlz
SW5saW5lQXR0cmlidXRlID0gZmFsc2U7Ci1zdGF0aWMgY29uc3QgYm9vbCBkZWZhdWx0VmlkZW9Q
bGF5YmFja1JlcXVpcmVzVXNlckdlc3R1cmUgPSBmYWxzZTsKLXN0YXRpYyBjb25zdCBib29sIGRl
ZmF1bHRBdWRpb1BsYXliYWNrUmVxdWlyZXNVc2VyR2VzdHVyZSA9IGZhbHNlOwotc3RhdGljIGNv
bnN0IGJvb2wgZGVmYXVsdE1lZGlhRGF0YUxvYWRzQXV0b21hdGljYWxseSA9IHRydWU7Ci1zdGF0
aWMgY29uc3QgYm9vbCBkZWZhdWx0U2hvdWxkUmVzcGVjdEltYWdlT3JpZW50YXRpb24gPSBmYWxz
ZTsKLXN0YXRpYyBjb25zdCBib29sIGRlZmF1bHRJbWFnZVN1YnNhbXBsaW5nRW5hYmxlZCA9IGZh
bHNlOwotc3RhdGljIGNvbnN0IGJvb2wgZGVmYXVsdFNjcm9sbGluZ1RyZWVJbmNsdWRlc0ZyYW1l
cyA9IGZhbHNlOwotc3RhdGljIGNvbnN0IGJvb2wgZGVmYXVsdE1lZGlhQ29udHJvbHNTY2FsZVdp
dGhQYWdlWm9vbSA9IHRydWU7Ci1zdGF0aWMgY29uc3QgYm9vbCBkZWZhdWx0UXVpY2tUaW1lUGx1
Z2luUmVwbGFjZW1lbnRFbmFibGVkID0gZmFsc2U7Ci0jZW5kaWYKLQotc3RhdGljIGNvbnN0IGJv
b2wgZGVmYXVsdFJlcXVpcmVzVXNlckdlc3R1cmVUb0xvYWRWaWRlbyA9IHRydWU7Ci1zdGF0aWMg
Y29uc3QgYm9vbCBkZWZhdWx0QWxsb3dzUGljdHVyZUluUGljdHVyZU1lZGlhUGxheWJhY2sgPSB0
cnVlOwotCi1zdGF0aWMgY29uc3QgZG91YmxlIGRlZmF1bHRJbmNyZW1lbnRhbFJlbmRlcmluZ1N1
cHByZXNzaW9uVGltZW91dEluU2Vjb25kcyA9IDU7Ci0jaWYgVVNFKFVOSUZJRURfVEVYVF9DSEVD
S0lORykKLXN0YXRpYyBjb25zdCBib29sIGRlZmF1bHRVbmlmaWVkVGV4dENoZWNrZXJFbmFibGVk
ID0gdHJ1ZTsKLSNlbHNlCi1zdGF0aWMgY29uc3QgYm9vbCBkZWZhdWx0VW5pZmllZFRleHRDaGVj
a2VyRW5hYmxlZCA9IGZhbHNlOwotI2VuZGlmCi1zdGF0aWMgY29uc3QgYm9vbCBkZWZhdWx0U21h
cnRJbnNlcnREZWxldGVFbmFibGVkID0gdHJ1ZTsKLXN0YXRpYyBjb25zdCBib29sIGRlZmF1bHRT
ZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkID0gZmFsc2U7Ci0KIFJlZjxTZXR0aW5ncz4g
U2V0dGluZ3M6OmNyZWF0ZShQYWdlKiBwYWdlKQogewogICAgIHJldHVybiBhZG9wdFJlZigqbmV3
IFNldHRpbmdzKHBhZ2UpKTsKQEAgLTEzNCwxNiArNDgsNCBAQCBTZXR0aW5nczo6flNldHRpbmdz
KCkKIAogU0VUVElOR1NfU0VUVEVSX0JPRElFUwogCi1GcmFtZUZsYXR0ZW5pbmcgU2V0dGluZ3M6
OmVmZmVjdGl2ZUZyYW1lRmxhdHRlbmluZygpCi17Ci0jaWYgUExBVEZPUk0oSU9TKQotICAgIC8v
IE9uIGlPUyB3aGVuIGFzeW5jIGZyYW1lIHNjcm9sbGluZyBpcyBlbmFibGVkLCBpdCBkb2VzIG5v
dCBtYWtlIHNlbnNlIHRvIHVzZSBmdWxsIGZyYW1lIGZsYXR0ZW5pbmcuCi0gICAgLy8gSW4gdGhh
dCBjYXNlLCB3ZSBqdXN0IGNvbnNpZGVyIHRoYXQgZnJhbWUgZmxhdHRlbmluZyBpcyBkaXNhYmxl
ZC4gVGhpcyBhbGxvd3MgcGVvcGxlIHRvIHRlc3QKLSAgICAvLyBmcmFtZSBzY3JvbGxpbmcgb24g
aU9TIGJ5IGVuYWJsaW5nICJBc3luYyBGcmFtZSBTY3JvbGxpbmciIHZpYSB0aGUgU2FmYXJpIG1l
bnUuCi0gICAgaWYgKGFzeW5jRnJhbWVTY3JvbGxpbmdFbmFibGVkKCkgJiYgZnJhbWVGbGF0dGVu
aW5nKCkgPT0gRnJhbWVGbGF0dGVuaW5nRnVsbHlFbmFibGVkKQotICAgICAgICByZXR1cm4gRnJh
bWVGbGF0dGVuaW5nRGlzYWJsZWQ7Ci0jZW5kaWYKLSAgICByZXR1cm4gZnJhbWVGbGF0dGVuaW5n
KCk7Ci19Ci0KIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3Bh
Z2UvU2V0dGluZ3MuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdz
LmgJKHJldmlzaW9uIDIyMzMzMikKKysrIFNvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuaAko
d29ya2luZyBjb3B5KQpAQCAtMjcsNiArMjcsOCBAQAogI3ByYWdtYSBvbmNlCiAKICNpbmNsdWRl
ICJTZXR0aW5nc0Jhc2UuaCIKKyNpbmNsdWRlICJTZXR0aW5nc01hY3Jvcy5oIgorI2luY2x1ZGUg
PHd0Zi9SZWZDb3VudGVkLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtMzYsMTggKzM4
LDEyIEBAIHB1YmxpYzoKICAgICBzdGF0aWMgUmVmPFNldHRpbmdzPiBjcmVhdGUoUGFnZSopOwog
ICAgIH5TZXR0aW5ncygpOwogCi0gICAgdm9pZCBwYWdlRGVzdHJveWVkKCkgeyBtX3BhZ2UgPSBu
dWxscHRyOyB9Ci0KICAgICBTRVRUSU5HU19HRVRURVJTX0FORF9TRVRURVJTCiAKLQotICAgIFdF
QkNPUkVfRVhQT1JUIEZyYW1lRmxhdHRlbmluZyBlZmZlY3RpdmVGcmFtZUZsYXR0ZW5pbmcoKTsK
LQogcHJpdmF0ZToKICAgICBleHBsaWNpdCBTZXR0aW5ncyhQYWdlKik7CiAKICAgICBTRVRUSU5H
U19NRU1CRVJfVkFSSUFCTEVTCi0KIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuaW4KPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvcGFnZS9TZXR0aW5ncy5pbgkocmV2aXNpb24gMjIzMzMyKQorKysgU291cmNlL1dlYkNv
cmUvcGFnZS9TZXR0aW5ncy5pbgkod29ya2luZyBjb3B5KQpAQCAtMTc1LDcgKzE3NSw3IEBAIHNu
YXBzaG90QWxsUGx1Z0lucyBpbml0aWFsPWZhbHNlCiBhdXRvc3RhcnRPcmlnaW5QbHVnSW5TbmFw
c2hvdHRpbmdFbmFibGVkIGluaXRpYWw9dHJ1ZQogcHJpbWFyeVBsdWdJblNuYXBzaG90RGV0ZWN0
aW9uRW5hYmxlZCBpbml0aWFsPXRydWUKIG1heGltdW1QbHVnSW5TbmFwc2hvdEF0dGVtcHRzIHR5
cGU9dW5zaWduZWQsIGluaXRpYWw9MjAKLWZyYW1lRmxhdHRlbmluZyB0eXBlPUZyYW1lRmxhdHRl
bmluZywgaW5pdGlhbD1GcmFtZUZsYXR0ZW5pbmdEaXNhYmxlZAorZnJhbWVGbGF0dGVuaW5nIHR5
cGU9RnJhbWVGbGF0dGVuaW5nLCBpbml0aWFsPUZyYW1lRmxhdHRlbmluZzo6RGlzYWJsZWQKIGFz
eW5jRnJhbWVTY3JvbGxpbmdFbmFibGVkIGluaXRpYWw9ZmFsc2UKIAogd2ViU2VjdXJpdHlFbmFi
bGVkIGluaXRpYWw9dHJ1ZQpJbmRleDogU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5nc0Jhc2Uu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzQmFzZS5oCShyZXZp
c2lvbiAyMjMzMzIpCisrKyBTb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzQmFzZS5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC0zMSw3ICszMSw3IEBACiAjaW5jbHVkZSAiRWRpdGluZ0JlaGF2aW9yVHlw
ZXMuaCIKICNpbmNsdWRlICJJbnRTaXplLmgiCiAjaW5jbHVkZSAiU2VjdXJpdHlPcmlnaW4uaCIK
LSNpbmNsdWRlICJTZXR0aW5nc01hY3Jvcy5oIgorI2luY2x1ZGUgIlN0b3JhZ2VNYXAuaCIKICNp
bmNsdWRlICJUZXh0RmxhZ3MuaCIKICNpbmNsdWRlICJUaW1lci5oIgogI2luY2x1ZGUgIlVSTC5o
IgpAQCAtODgsMTAgKzg4LDEwIEBAIGVudW0gUERGSW1hZ2VDYWNoaW5nUG9saWN5IHsKICNlbmRp
ZgogfTsKIAotZW51bSBGcmFtZUZsYXR0ZW5pbmcgewotICAgIEZyYW1lRmxhdHRlbmluZ0Rpc2Fi
bGVkLAotICAgIEZyYW1lRmxhdHRlbmluZ0VuYWJsZWRGb3JOb25GdWxsU2NyZWVuSUZyYW1lcywK
LSAgICBGcmFtZUZsYXR0ZW5pbmdGdWxseUVuYWJsZWQKK2VudW0gY2xhc3MgRnJhbWVGbGF0dGVu
aW5nIHsKKyAgICBEaXNhYmxlZCwKKyAgICBFbmFibGVkRm9yTm9uRnVsbFNjcmVlbklGcmFtZXMs
CisgICAgRnVsbHlFbmFibGVkCiB9OwogCiB0eXBlZGVmIHVuc2lnbmVkIERlYnVnT3ZlcmxheVJl
Z2lvbnM7CkBAIC0xMDEsNiArMTAxLDggQEAgY2xhc3MgU2V0dGluZ3NCYXNlIHsKIHB1YmxpYzoK
ICAgICB+U2V0dGluZ3NCYXNlKCk7CiAKKyAgICB2b2lkIHBhZ2VEZXN0cm95ZWQoKSB7IG1fcGFn
ZSA9IG51bGxwdHI7IH0KKwogICAgIGVudW0gY2xhc3MgRm9udExvYWRUaW1pbmdPdmVycmlkZSB7
IE5vbmUsIEJsb2NrLCBTd2FwLCBGYWlsdXJlIH07CiAKICAgICBlbnVtIGNsYXNzIEZvcmNlZEFj
Y2Vzc2liaWxpdHlWYWx1ZSB7IFN5c3RlbSwgT24sIE9mZiB9OwpJbmRleDogU291cmNlL1dlYkNv
cmUvcGFnZS9TZXR0aW5nc0RlZmF1bHRWYWx1ZXMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9wYWdlL1NldHRpbmdzRGVmYXVsdFZhbHVlcy5oCShub25leGlzdGVudCkKKysrIFNvdXJj
ZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3NEZWZhdWx0VmFsdWVzLmgJKHdvcmtpbmcgY29weSkKQEAg
LTAsMCArMSwxMDAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgIkVk
aXRpbmdCZWhhdmlvclR5cGVzLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworLy8gTk9URXMK
Ky8vICAxKSBFZGl0aW5nTWFjQmVoYXZpb3IgY29tcHJpc2VzIFRpZ2VyLCBMZW9wYXJkLCBTbm93
TGVvcGFyZCBhbmQgaU9TIGJ1aWxkcywgYXMgd2VsbCBhcyBRdFdlYktpdCB3aGVuIGJ1aWx0IG9u
IE1hYzsKKy8vICAyKSBFZGl0aW5nV2luZG93c0JlaGF2aW9yIGNvbXByaXNlcyBXaW4zMiBidWls
ZDsKKy8vICAzKSBFZGl0aW5nVW5peEJlaGF2aW9yIGNvbXByaXNlcyBhbGwgdW5peC1iYXNlZCBz
eXN0ZW1zLCBidXQgRGFyd2luL01hY09TIChhbmQgdGhlbiBhYnVzaW5nIHRoZSB0ZXJtaW5vbG9n
eSk7CisvLyA5OSkgTWFjRWRpdGluZ0JlaGF2aW9yIGlzIHVzZWQgYXMgYSBmYWxsYmFjay4KK2lu
bGluZSBFZGl0aW5nQmVoYXZpb3JUeXBlIGVkaXRpbmdCZWhhdmlvclR5cGVGb3JQbGF0Zm9ybSgp
Cit7CisjaWYgUExBVEZPUk0oSU9TKQorICAgIHJldHVybiBFZGl0aW5nSU9TQmVoYXZpb3I7Cisj
ZWxpZiBPUyhEQVJXSU4pCisgICAgcmV0dXJuIEVkaXRpbmdNYWNCZWhhdmlvcjsKKyNlbGlmIE9T
KFdJTkRPV1MpCisgICAgcmV0dXJuIEVkaXRpbmdXaW5kb3dzQmVoYXZpb3I7CisjZWxpZiBPUyhV
TklYKQorICAgIHJldHVybiBFZGl0aW5nVW5peEJlaGF2aW9yOworI2Vsc2UKKyAgICAvLyBGYWxs
YmFjaworICAgIHJldHVybiBFZGl0aW5nTWFjQmVoYXZpb3I7CisjZW5kaWYKKyAgICAKK30KKwor
I2lmIFBMQVRGT1JNKENPQ09BKQorc3RhdGljIGNvbnN0IGJvb2wgZGVmYXVsdFlvdVR1YmVGbGFz
aFBsdWdpblJlcGxhY2VtZW50RW5hYmxlZCA9IHRydWU7CisjZWxzZQorc3RhdGljIGNvbnN0IGJv
b2wgZGVmYXVsdFlvdVR1YmVGbGFzaFBsdWdpblJlcGxhY2VtZW50RW5hYmxlZCA9IGZhbHNlOwor
I2VuZGlmCisKKyNpZiBQTEFURk9STShJT1MpCitzdGF0aWMgY29uc3QgYm9vbCBkZWZhdWx0Rml4
ZWRCYWNrZ3JvdW5kc1BhaW50UmVsYXRpdmVUb0RvY3VtZW50ID0gdHJ1ZTsKK3N0YXRpYyBjb25z
dCBib29sIGRlZmF1bHRBY2NlbGVyYXRlZENvbXBvc2l0aW5nRm9yRml4ZWRQb3NpdGlvbkVuYWJs
ZWQgPSB0cnVlOworc3RhdGljIGNvbnN0IGJvb2wgZGVmYXVsdEFsbG93c0lubGluZU1lZGlhUGxh
eWJhY2sgPSBmYWxzZTsKK3N0YXRpYyBjb25zdCBib29sIGRlZmF1bHRJbmxpbmVNZWRpYVBsYXli
YWNrUmVxdWlyZXNQbGF5c0lubGluZUF0dHJpYnV0ZSA9IHRydWU7CitzdGF0aWMgY29uc3QgYm9v
bCBkZWZhdWx0VmlkZW9QbGF5YmFja1JlcXVpcmVzVXNlckdlc3R1cmUgPSB0cnVlOworc3RhdGlj
IGNvbnN0IGJvb2wgZGVmYXVsdEF1ZGlvUGxheWJhY2tSZXF1aXJlc1VzZXJHZXN0dXJlID0gdHJ1
ZTsKK3N0YXRpYyBjb25zdCBib29sIGRlZmF1bHRNZWRpYURhdGFMb2Fkc0F1dG9tYXRpY2FsbHkg
PSBmYWxzZTsKK3N0YXRpYyBjb25zdCBib29sIGRlZmF1bHRTaG91bGRSZXNwZWN0SW1hZ2VPcmll
bnRhdGlvbiA9IHRydWU7CitzdGF0aWMgY29uc3QgYm9vbCBkZWZhdWx0SW1hZ2VTdWJzYW1wbGlu
Z0VuYWJsZWQgPSB0cnVlOworc3RhdGljIGNvbnN0IGJvb2wgZGVmYXVsdFNjcm9sbGluZ1RyZWVJ
bmNsdWRlc0ZyYW1lcyA9IHRydWU7CitzdGF0aWMgY29uc3QgYm9vbCBkZWZhdWx0TWVkaWFDb250
cm9sc1NjYWxlV2l0aFBhZ2Vab29tID0gdHJ1ZTsKK3N0YXRpYyBjb25zdCBib29sIGRlZmF1bHRR
dWlja1RpbWVQbHVnaW5SZXBsYWNlbWVudEVuYWJsZWQgPSB0cnVlOworI2Vsc2UKK3N0YXRpYyBj
b25zdCBib29sIGRlZmF1bHRGaXhlZEJhY2tncm91bmRzUGFpbnRSZWxhdGl2ZVRvRG9jdW1lbnQg
PSBmYWxzZTsKK3N0YXRpYyBjb25zdCBib29sIGRlZmF1bHRBY2NlbGVyYXRlZENvbXBvc2l0aW5n
Rm9yRml4ZWRQb3NpdGlvbkVuYWJsZWQgPSBmYWxzZTsKK3N0YXRpYyBjb25zdCBib29sIGRlZmF1
bHRBbGxvd3NJbmxpbmVNZWRpYVBsYXliYWNrID0gdHJ1ZTsKK3N0YXRpYyBjb25zdCBib29sIGRl
ZmF1bHRJbmxpbmVNZWRpYVBsYXliYWNrUmVxdWlyZXNQbGF5c0lubGluZUF0dHJpYnV0ZSA9IGZh
bHNlOworc3RhdGljIGNvbnN0IGJvb2wgZGVmYXVsdFZpZGVvUGxheWJhY2tSZXF1aXJlc1VzZXJH
ZXN0dXJlID0gZmFsc2U7CitzdGF0aWMgY29uc3QgYm9vbCBkZWZhdWx0QXVkaW9QbGF5YmFja1Jl
cXVpcmVzVXNlckdlc3R1cmUgPSBmYWxzZTsKK3N0YXRpYyBjb25zdCBib29sIGRlZmF1bHRNZWRp
YURhdGFMb2Fkc0F1dG9tYXRpY2FsbHkgPSB0cnVlOworc3RhdGljIGNvbnN0IGJvb2wgZGVmYXVs
dFNob3VsZFJlc3BlY3RJbWFnZU9yaWVudGF0aW9uID0gZmFsc2U7CitzdGF0aWMgY29uc3QgYm9v
bCBkZWZhdWx0SW1hZ2VTdWJzYW1wbGluZ0VuYWJsZWQgPSBmYWxzZTsKK3N0YXRpYyBjb25zdCBi
b29sIGRlZmF1bHRTY3JvbGxpbmdUcmVlSW5jbHVkZXNGcmFtZXMgPSBmYWxzZTsKK3N0YXRpYyBj
b25zdCBib29sIGRlZmF1bHRNZWRpYUNvbnRyb2xzU2NhbGVXaXRoUGFnZVpvb20gPSB0cnVlOwor
c3RhdGljIGNvbnN0IGJvb2wgZGVmYXVsdFF1aWNrVGltZVBsdWdpblJlcGxhY2VtZW50RW5hYmxl
ZCA9IGZhbHNlOworI2VuZGlmCisKK3N0YXRpYyBjb25zdCBib29sIGRlZmF1bHRSZXF1aXJlc1Vz
ZXJHZXN0dXJlVG9Mb2FkVmlkZW8gPSB0cnVlOworc3RhdGljIGNvbnN0IGJvb2wgZGVmYXVsdEFs
bG93c1BpY3R1cmVJblBpY3R1cmVNZWRpYVBsYXliYWNrID0gdHJ1ZTsKKworc3RhdGljIGNvbnN0
IGRvdWJsZSBkZWZhdWx0SW5jcmVtZW50YWxSZW5kZXJpbmdTdXBwcmVzc2lvblRpbWVvdXRJblNl
Y29uZHMgPSA1OworI2lmIFVTRShVTklGSUVEX1RFWFRfQ0hFQ0tJTkcpCitzdGF0aWMgY29uc3Qg
Ym9vbCBkZWZhdWx0VW5pZmllZFRleHRDaGVja2VyRW5hYmxlZCA9IHRydWU7CisjZWxzZQorc3Rh
dGljIGNvbnN0IGJvb2wgZGVmYXVsdFVuaWZpZWRUZXh0Q2hlY2tlckVuYWJsZWQgPSBmYWxzZTsK
KyNlbmRpZgorc3RhdGljIGNvbnN0IGJvb2wgZGVmYXVsdFNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxl
ZCA9IHRydWU7CitzdGF0aWMgY29uc3QgYm9vbCBkZWZhdWx0U2VsZWN0VHJhaWxpbmdXaGl0ZXNw
YWNlRW5hYmxlZCA9IGZhbHNlOworCit9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyRnJhbWVTZXQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJGcmFtZVNldC5jcHAJKHJldmlzaW9uIDIyMzMzMikKKysrIFNvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJGcmFtZVNldC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTY1MSw3ICs2
NTEsNyBAQCB2b2lkIFJlbmRlckZyYW1lU2V0Ojpwb3NpdGlvbkZyYW1lc1dpdGhGCiAKIGJvb2wg
UmVuZGVyRnJhbWVTZXQ6OmZsYXR0ZW5GcmFtZVNldCgpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIHNl
dHRpbmdzKCkuZWZmZWN0aXZlRnJhbWVGbGF0dGVuaW5nKCkgIT0gRnJhbWVGbGF0dGVuaW5nRGlz
YWJsZWQ7CisgICAgcmV0dXJuIHZpZXcoKS5mcmFtZVZpZXcoKS5lZmZlY3RpdmVGcmFtZUZsYXR0
ZW5pbmcoKSAhPSBGcmFtZUZsYXR0ZW5pbmc6OkRpc2FibGVkOwogfQogCiB2b2lkIFJlbmRlckZy
YW1lU2V0OjpzdGFydFJlc2l6aW5nKEdyaWRBeGlzJiBheGlzLCBpbnQgcG9zaXRpb24pCkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySUZyYW1lLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySUZyYW1lLmNwcAkocmV2aXNpb24gMjIz
MzMyKQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlcklGcmFtZS5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTc4LDcgKzc4LDcgQEAgYm9vbCBSZW5kZXJJRnJhbWU6OmlzRnVsbFNjcmVl
bklGcmFtZSgpIAogCiBib29sIFJlbmRlcklGcmFtZTo6ZmxhdHRlbkZyYW1lKCkgY29uc3QKIHsK
LSAgICBpZiAoc2V0dGluZ3MoKS5lZmZlY3RpdmVGcmFtZUZsYXR0ZW5pbmcoKSA9PSBGcmFtZUZs
YXR0ZW5pbmdEaXNhYmxlZCkKKyAgICBpZiAodmlldygpLmZyYW1lVmlldygpLmVmZmVjdGl2ZUZy
YW1lRmxhdHRlbmluZygpID09IEZyYW1lRmxhdHRlbmluZzo6RGlzYWJsZWQpCiAgICAgICAgIHJl
dHVybiBmYWxzZTsKIAogICAgIGlmIChzdHlsZSgpLndpZHRoKCkuaXNGaXhlZCgpICYmIHN0eWxl
KCkuaGVpZ2h0KCkuaXNGaXhlZCgpKSB7CkBAIC04OSw3ICs4OSw3IEBAIGJvb2wgUmVuZGVySUZy
YW1lOjpmbGF0dGVuRnJhbWUoKSBjb25zdAogICAgICAgICBpZiAoc3R5bGUoKS53aWR0aCgpLnZh
bHVlKCkgPD0gMCB8fCBzdHlsZSgpLmhlaWdodCgpLnZhbHVlKCkgPD0gMCkKICAgICAgICAgICAg
IHJldHVybiBmYWxzZTsKICAgICAgICAgLy8gRG8gbm90IGZsYXR0ZW4gImZ1bGxzY3JlZW4iIGlm
cmFtZXMgb3IgdGhleSBjb3VsZCBiZWNvbWUgbGFyZ2VyIHRoYW4gdGhlIHZpZXdwb3J0LgotICAg
ICAgICBpZiAoc2V0dGluZ3MoKS5lZmZlY3RpdmVGcmFtZUZsYXR0ZW5pbmcoKSA8PSBGcmFtZUZs
YXR0ZW5pbmdFbmFibGVkRm9yTm9uRnVsbFNjcmVlbklGcmFtZXMgJiYgaXNGdWxsU2NyZWVuSUZy
YW1lKCkpCisgICAgICAgIGlmICh2aWV3KCkuZnJhbWVWaWV3KCkuZWZmZWN0aXZlRnJhbWVGbGF0
dGVuaW5nKCkgPD0gRnJhbWVGbGF0dGVuaW5nOjpFbmFibGVkRm9yTm9uRnVsbFNjcmVlbklGcmFt
ZXMgJiYgaXNGdWxsU2NyZWVuSUZyYW1lKCkpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAg
ICAgfQogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVmlldy5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclZpZXcuY3BwCShyZXZp
c2lvbiAyMjMzMzIpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVmlldy5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTU5LDcgKzU5LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogc3Ry
dWN0IEZyYW1lRmxhdHRlbmluZ0xheW91dERpc2FsbG93ZXIgewogICAgIEZyYW1lRmxhdHRlbmlu
Z0xheW91dERpc2FsbG93ZXIoRnJhbWVWaWV3JiBmcmFtZVZpZXcpCiAgICAgICAgIDogbV9mcmFt
ZVZpZXcoZnJhbWVWaWV3KQotICAgICAgICAsIG1fZGlzYWxsb3dMYXlvdXQoZnJhbWVWaWV3LmZy
YW1lKCkuc2V0dGluZ3MoKS5lZmZlY3RpdmVGcmFtZUZsYXR0ZW5pbmcoKSAhPSBGcmFtZUZsYXR0
ZW5pbmdEaXNhYmxlZCkKKyAgICAgICAgLCBtX2Rpc2FsbG93TGF5b3V0KGZyYW1lVmlldy5lZmZl
Y3RpdmVGcmFtZUZsYXR0ZW5pbmcoKSAhPSBGcmFtZUZsYXR0ZW5pbmc6OkRpc2FibGVkKQogICAg
IHsKICAgICAgICAgaWYgKG1fZGlzYWxsb3dMYXlvdXQpCiAgICAgICAgICAgICBtX2ZyYW1lVmll
dy5zdGFydERpc2FsbG93aW5nTGF5b3V0KCk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS90ZXN0aW5n
L0ludGVybmFsU2V0dGluZ3MuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3Rlc3Rp
bmcvSW50ZXJuYWxTZXR0aW5ncy5jcHAJKHJldmlzaW9uIDIyMzMzMikKKysrIFNvdXJjZS9XZWJD
b3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTgxOSwy
NiArODE5LDExIEBAIEV4Y2VwdGlvbk9yPHZvaWQ+IEludGVybmFsU2V0dGluZ3M6OnNldFMKICAg
ICByZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxpZEFjY2Vzc0Vycm9yIH07CiB9CiAKLXN0YXRpYyBG
cmFtZUZsYXR0ZW5pbmcgaW50ZXJuYWxTZXR0aW5nc1RvV2ViQ29yZVZhbHVlKEludGVybmFsU2V0
dGluZ3M6OkZyYW1lRmxhdHRlbmluZ1ZhbHVlIHZhbHVlKQotewotICAgIHN3aXRjaCAodmFsdWUp
IHsKLSAgICBjYXNlIEludGVybmFsU2V0dGluZ3M6OkZyYW1lRmxhdHRlbmluZ1ZhbHVlOjpEaXNh
YmxlZDoKLSAgICAgICAgcmV0dXJuIEZyYW1lRmxhdHRlbmluZ0Rpc2FibGVkOwotICAgIGNhc2Ug
SW50ZXJuYWxTZXR0aW5nczo6RnJhbWVGbGF0dGVuaW5nVmFsdWU6OkVuYWJsZWRGb3JOb25GdWxs
U2NyZWVuSUZyYW1lczoKLSAgICAgICAgcmV0dXJuIEZyYW1lRmxhdHRlbmluZ0VuYWJsZWRGb3JO
b25GdWxsU2NyZWVuSUZyYW1lczsKLSAgICBjYXNlIEludGVybmFsU2V0dGluZ3M6OkZyYW1lRmxh
dHRlbmluZ1ZhbHVlOjpGdWxseUVuYWJsZWQ6Ci0gICAgICAgIHJldHVybiBGcmFtZUZsYXR0ZW5p
bmdGdWxseUVuYWJsZWQ7Ci0gICAgfQotCi0gICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAg
cmV0dXJuIEZyYW1lRmxhdHRlbmluZ0Rpc2FibGVkOwotfQotCi1FeGNlcHRpb25Pcjx2b2lkPiBJ
bnRlcm5hbFNldHRpbmdzOjpzZXRGcmFtZUZsYXR0ZW5pbmcoY29uc3QgRnJhbWVGbGF0dGVuaW5n
VmFsdWUmIGZyYW1lRmxhdHRlbmluZykKK0V4Y2VwdGlvbk9yPHZvaWQ+IEludGVybmFsU2V0dGlu
Z3M6OnNldEZyYW1lRmxhdHRlbmluZyhGcmFtZUZsYXR0ZW5pbmdWYWx1ZSBmcmFtZUZsYXR0ZW5p
bmcpCiB7CiAgICAgaWYgKCFtX3BhZ2UpCiAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZh
bGlkQWNjZXNzRXJyb3IgfTsKLSAgICBzZXR0aW5ncygpLnNldEZyYW1lRmxhdHRlbmluZyhpbnRl
cm5hbFNldHRpbmdzVG9XZWJDb3JlVmFsdWUoZnJhbWVGbGF0dGVuaW5nKSk7CisgICAgc2V0dGlu
Z3MoKS5zZXRGcmFtZUZsYXR0ZW5pbmcoZnJhbWVGbGF0dGVuaW5nKTsKICAgICByZXR1cm4geyB9
OwogfQogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuaAko
cmV2aXNpb24gMjIzMzMyKQorKysgU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbFNldHRp
bmdzLmgJKHdvcmtpbmcgY29weSkKQEAgLTEwMSw4ICsxMDEsOCBAQCBwdWJsaWM6CiAgICAgRXhj
ZXB0aW9uT3I8dm9pZD4gc2V0U2hvdWxkTWFuYWdlQXVkaW9TZXNzaW9uQ2F0ZWdvcnkoYm9vbCk7
CiAgICAgRXhjZXB0aW9uT3I8dm9pZD4gc2V0Q3VzdG9tUGFzdGVib2FyZERhdGFFbmFibGVkKGJv
b2wpOwogCi0gICAgZW51bSBjbGFzcyBGcmFtZUZsYXR0ZW5pbmdWYWx1ZSB7IERpc2FibGVkLCBF
bmFibGVkRm9yTm9uRnVsbFNjcmVlbklGcmFtZXMsIEZ1bGx5RW5hYmxlZCB9OwotICAgIEV4Y2Vw
dGlvbk9yPHZvaWQ+IHNldEZyYW1lRmxhdHRlbmluZyhjb25zdCBGcmFtZUZsYXR0ZW5pbmdWYWx1
ZSYpOworICAgIHVzaW5nIEZyYW1lRmxhdHRlbmluZ1ZhbHVlID0gRnJhbWVGbGF0dGVuaW5nOwor
ICAgIEV4Y2VwdGlvbk9yPHZvaWQ+IHNldEZyYW1lRmxhdHRlbmluZyhGcmFtZUZsYXR0ZW5pbmdW
YWx1ZSk7CiAgICAgCiAgICAgc3RhdGljIHZvaWQgc2V0QWxsb3dzQW55U1NMQ2VydGlmaWNhdGUo
Ym9vbCk7CiAKSW5kZXg6IFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJLaXQvQ2hhbmdlTG9nCShyZXZpc2lvbiAyMjMzMzMpCisrKyBTb3VyY2UvV2ViS2l0
L0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE1IEBACisyMDE3LTEwLTE1ICBT
YW0gV2VpbmlnICA8c2FtQHdlYmtpdC5vcmc+CisKKyAgICAgICAgW1NldHRpbmdzXSBSZW1vdmUg
YWxsIGN1c3RvbSBjb2RlIGZyb20gU2V0dGluZ3MuaC9jcHAKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3ODMzMAorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9X
ZWJDaHJvbWVDbGllbnQuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJDaHJvbWVDbGllbnQ6OmNv
bnRlbnRzU2l6ZUNoYW5nZWQgY29uc3QpOgorICAgICAgICAKKyAgICAgICAgICAgIEdlIHRoZSBl
ZmZlY3RpdmVGcmFtZUZsYXR0ZW5pbmcgZnJvbSB0aGUgRnJhbWVWaWV3LCByYXRoZXIgdGhhbiB0
aGUgU2V0dGluZ3MuCisKIDIwMTctMTAtMTMgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUu
Y29tPgogCiAgICAgICAgIEltcGxlbWVudCBsaXN0aW5nIG9yaWdpbnMgZm9yIHdoaWNoIENhY2hl
U3RvcmFnZSBpcyBzdG9yaW5nIGRhdGEKSW5kZXg6IFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCShyZXZp
c2lvbiAyMjMzMjgpCisrKyBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
V2ViQ2hyb21lQ2xpZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTY2LDcgKzU2Niw5IEBAIFBs
YXRmb3JtUGFnZUNsaWVudCBXZWJDaHJvbWVDbGllbnQ6OnBsYXQKIAogdm9pZCBXZWJDaHJvbWVD
bGllbnQ6OmNvbnRlbnRzU2l6ZUNoYW5nZWQoRnJhbWUmIGZyYW1lLCBjb25zdCBJbnRTaXplJiBz
aXplKSBjb25zdAogewotICAgIGlmIChtX3BhZ2UuY29yZVBhZ2UoKS0+c2V0dGluZ3MoKS5lZmZl
Y3RpdmVGcmFtZUZsYXR0ZW5pbmcoKSA9PSBGcmFtZUZsYXR0ZW5pbmdEaXNhYmxlZCkgeworICAg
IEZyYW1lVmlldyogZnJhbWVWaWV3ID0gZnJhbWUudmlldygpOworCisgICAgaWYgKGZyYW1lVmll
dyAmJiBmcmFtZVZpZXctPmVmZmVjdGl2ZUZyYW1lRmxhdHRlbmluZygpID09IEZyYW1lRmxhdHRl
bmluZzo6RGlzYWJsZWQpIHsKICAgICAgICAgV2ViRnJhbWUqIGxhcmdlc3RGcmFtZSA9IGZpbmRM
YXJnZXN0RnJhbWVJbkZyYW1lU2V0KG1fcGFnZSk7CiAgICAgICAgIGlmIChsYXJnZXN0RnJhbWUg
IT0gbV9jYWNoZWRGcmFtZVNldExhcmdlc3RGcmFtZS5nZXQoKSkgewogICAgICAgICAgICAgbV9j
YWNoZWRGcmFtZVNldExhcmdlc3RGcmFtZSA9IGxhcmdlc3RGcmFtZTsKQEAgLTU4MSw3ICs1ODMs
NiBAQCB2b2lkIFdlYkNocm9tZUNsaWVudDo6Y29udGVudHNTaXplQ2hhbmdlCiAKICAgICBtX3Bh
Z2UuZHJhd2luZ0FyZWEoKS0+bWFpbkZyYW1lQ29udGVudFNpemVDaGFuZ2VkKHNpemUpOwogCi0g
ICAgRnJhbWVWaWV3KiBmcmFtZVZpZXcgPSBmcmFtZS52aWV3KCk7CiAgICAgaWYgKGZyYW1lVmll
dyAmJiAhZnJhbWVWaWV3LT5kZWxlZ2F0ZXNTY3JvbGxpbmcoKSkgIHsKICAgICAgICAgYm9vbCBo
YXNIb3Jpem9udGFsU2Nyb2xsYmFyID0gZnJhbWVWaWV3LT5ob3Jpem9udGFsU2Nyb2xsYmFyKCk7
CiAgICAgICAgIGJvb2wgaGFzVmVydGljYWxTY3JvbGxiYXIgPSBmcmFtZVZpZXctPnZlcnRpY2Fs
U2Nyb2xsYmFyKCk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>323884</attachid>
            <date>2017-10-16 03:34:40 -0700</date>
            <delta_ts>2017-10-16 08:15:52 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-178330-20171016033439.patch</filename>
            <type>text/plain</type>
            <size>29804</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIyMzM2NikKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDU3IEBACisyMDE3LTEwLTE2ICBTYW0gV2Vp
bmlnICA8c2FtQHdlYmtpdC5vcmc+CisKKyAgICAgICAgW1NldHRpbmdzXSBSZW1vdmUgYWxsIGN1
c3RvbSBjb2RlIGZyb20gU2V0dGluZ3MuaC9jcHAKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTE3ODMzMAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIFJlbW92ZXMgdGhlIHR3byByZW1haW5pbmcgZnVuY3Rpb25z
IG91dCBvZiBTZXR0aW5ncyBwYXZpbmcgdGhlIHdheQorICAgICAgICBmb3IgdGhlIGZpbGUgdG8g
YmUgZ2VuZXJhdGVkLgorICAgICAgICAKKyAgICAgICAgLSBwYWdlRGVzdHJveWVkIHdhcyBtb3Zl
ZCBkb3duIGludG8gU2V0dGluZ3NCYXNlLgorICAgICAgICAtIGVmZmVjdGl2ZUZyYW1lRmxhdHRl
bmluZyB3YXMgbW92ZWQgdG8gRnJhbWVWaWV3ICh0byByZWR1Y2UgdGhlIG5lZWQKKyAgICAgICAg
ICBmb3IgYWRkaXRpb25hbCBpbmNsdWRlcywgdGhlIEZyYW1lRmxhdHRlbmluZyBlbnVtIHdhcyBj
b252ZXJ0ZWQgdG8KKyAgICAgICAgICBhbiBlbnVtIGNsYXNzIHRvIGFsbG93IGl0IHRvIGJlIGZv
cndhcmQgZGVjbGFyZWQpLgorICAgICAgICAgIAorICAgICAgICBBbHNvIG1vdmVzIGRlZmF1bHQg
dmFsdWVzIGludG8gU2V0dGluZ3NEZWZhdWx0VmFsdWVzLmgKKworICAgICAgICAqIFdlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgCisgICAgICAgICAgICBBZGQgbmV3
IGZpbGVzLgorICAgICAgICAKKyAgICAgICAgKiBwYWdlL0ZyYW1lVmlldy5jcHA6CisgICAgICAg
ICogcGFnZS9GcmFtZVZpZXcuaDoKKworICAgICAgICAgICAgTW92ZSBlZmZlY3RpdmVGcmFtZUZs
YXR0ZW5pbmcgZnVuY3Rpb24gaGVyZSBmcm9tIFNldHRpbmdzLgorCisgICAgICAgICogcGFnZS9T
ZXR0aW5ncy5jcHA6CisgICAgICAgICogcGFnZS9TZXR0aW5ncy5oOgorCisgICAgICAgICAgICBN
b3ZlIGVmZmVjdGl2ZUZyYW1lRmxhdHRlbmluZywgcGFnZURlc3Ryb3llZCBhbmQgZGVmYXVsdCB2
YWx1ZXMgb3V0LgorCisgICAgICAgICogcGFnZS9TZXR0aW5ncy5pbjoKKyAgICAgICAgCisgICAg
ICAgICAgICBVcGRhdGUgZm9yIHR1cm5pbmcgRnJhbWVGbGF0dGVuaW5nIGludG8gYW4gZW51bSBj
bGFzcy4KKyAgICAgICAgCisgICAgICAgICogcGFnZS9TZXR0aW5nc0Jhc2UuaDoKKworICAgICAg
ICAgICAgVHVybiBGcmFtZUZsYXR0ZW5pbmcgaW50byBhbiBlbnVtIGNsYXNzIGFuZCBtb3ZlIHBh
Z2VEZXN0cm95ZWQgaGVyZS4KKworICAgICAgICAqIHBhZ2UvU2V0dGluZ3NEZWZhdWx0VmFsdWVz
Lmg6IEFkZGVkLgorCisgICAgICAgICAgICBNb3ZlIGFsbCB0aGUgZGVmYXVsdCB2YWx1ZXMgZnJv
bSBTZXR0aW5ncyBoZXJlLgorCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckZyYW1lU2V0LmNw
cDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVySUZyYW1lLmNwcDoKKyAgICAgICAgKiByZW5k
ZXJpbmcvUmVuZGVyVmlldy5jcHA6CisKKyAgICAgICAgICAgIEdldCBlZmZlY3RpdmVGcmFtZUZs
YXR0ZW5pbmcgZnJvbSB0aGUgRnJhbWVWaWV3LgorCisgICAgICAgICogdGVzdGluZy9JbnRlcm5h
bFNldHRpbmdzLmNwcDoKKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuaDoKKyAg
ICAgICAgCisgICAgICAgICAgICBVcGRhdGUgbm93IHRoYXQgRnJhbWVGbGF0dGVuaW5nIGlzIGFu
IGVudW0gY2xhc3MuCisKIDIwMTctMTAtMTYgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBh
cHBsZS5jb20+CiAKICAgICAgICAgT24gVG9ULCBldmVudC5kYXRhVHJhbnNmZXIuZ2V0RGF0YSgi
dGV4dC91cmktbGlzdCIpIHJldHVybnMgYW4gZW1wdHkgc3RyaW5nIHdoZW4gZHJhZ2dpbmcgYW4g
aW1hZ2UKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oJKHJldmlzaW9uIDIyMzM2NikKKysrIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkod29ya2luZyBjb3B5KQpAQCAtMTE0ODQsNiArMTE0
ODQsNyBAQAogCQk3QzY1NzlFRDFFMDA4NTY2MDBFM0EyN0EgLyogSlNBcHBsZVBheVNoaXBwaW5n
TWV0aG9kLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTQXBwbGVQ
YXlTaGlwcGluZ01ldGhvZC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdDNjU3
OUVFMUUwMDg1NjYwMEUzQTI3QSAvKiBKU0FwcGxlUGF5U2hpcHBpbmdNZXRob2QuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNBcHBsZVBheVNoaXBwaW5nTWV0aG9kLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdDNjc1MkJBMUIwNkU4MjAwMEMyNzlDQiAvKiBO
b25FbGVtZW50UGFyZW50Tm9kZS5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gTm9uRWxlbWVu
dFBhcmVudE5vZGUuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk3QzZFRkVFQTFG
OTQ2QTJFMDBGRkFENDEgLyogU2V0dGluZ3NEZWZhdWx0VmFsdWVzLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFNldHRpbmdzRGVmYXVsdFZhbHVlcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3
QzczRkIwNTE5MUVGNDE2MDA3REUwNjEgLyogVXNlck1lc3NhZ2VIYW5kbGVyc05hbWVzcGFjZS5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBVc2VyTWVzc2FnZUhhbmRs
ZXJzTmFtZXNwYWNlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0M3M0ZCMDYx
OTFFRjQxNzAwN0RFMDYxIC8qIFVzZXJNZXNzYWdlSGFuZGxlcnNOYW1lc3BhY2UuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVXNlck1lc3NhZ2VIYW5kbGVyc05hbWVzcGFjZS5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3QzczRkIwOTE5MUVGNDlGMDA3REUwNjEg
LyogVXNlck1lc3NhZ2VIYW5kbGVyc05hbWVzcGFjZS5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gVXNlck1lc3NhZ2VIYW5k
bGVyc05hbWVzcGFjZS5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xOTg4NCw2
ICsxOTg4NSw3IEBACiAJCQkJQkM1OURFRjgxNjlERURDMzAwMTZBQzM0IC8qIFNldHRpbmdzLmlu
ICovLAogCQkJCTdDQzY2MDlCMUY5MzA1NzkwMEQ1MDBFOSAvKiBTZXR0aW5nc0Jhc2UuY3BwICov
LAogCQkJCTdDQzY2MDk5MUY5MzA1NzgwMEQ1MDBFOSAvKiBTZXR0aW5nc0Jhc2UuaCAqLywKKwkJ
CQk3QzZFRkVFQTFGOTQ2QTJFMDBGRkFENDEgLyogU2V0dGluZ3NEZWZhdWx0VmFsdWVzLmggKi8s
CiAJCQkJNUM2ODhBQTIxRDM4MTI2RjAwMEI1NEZBIC8qIFNvY2tldFByb3ZpZGVyLmNwcCAqLywK
IAkJCQk1QzdDODhENzFEMEYxRjJCMDA5RDJGNkQgLyogU29ja2V0UHJvdmlkZXIuaCAqLywKIAkJ
CQk2MjZDREUwQzExNDA0MjRDMDAxRTVBNjggLyogU3BhdGlhbE5hdmlnYXRpb24uY3BwICovLApJ
bmRleDogU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcAkocmV2aXNpb24gMjIzMzY2KQorKysgU291
cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01NjYsOSAr
NTY2LDIxIEBAIHZvaWQgRnJhbWVWaWV3OjpzZXRNYXJnaW5IZWlnaHQoTGF5b3V0VW4KICAgICBt
X21hcmdpbnMuc2V0SGVpZ2h0KGgpOwogfQogCitGcmFtZUZsYXR0ZW5pbmcgRnJhbWVWaWV3Ojpl
ZmZlY3RpdmVGcmFtZUZsYXR0ZW5pbmcoKSBjb25zdAoreworI2lmIFBMQVRGT1JNKElPUykKKyAg
ICAvLyBPbiBpT1Mgd2hlbiBhc3luYyBmcmFtZSBzY3JvbGxpbmcgaXMgZW5hYmxlZCwgaXQgZG9l
cyBub3QgbWFrZSBzZW5zZSB0byB1c2UgZnVsbCBmcmFtZSBmbGF0dGVuaW5nLgorICAgIC8vIElu
IHRoYXQgY2FzZSwgd2UganVzdCBjb25zaWRlciB0aGF0IGZyYW1lIGZsYXR0ZW5pbmcgaXMgZGlz
YWJsZWQuIFRoaXMgYWxsb3dzIHBlb3BsZSB0byB0ZXN0CisgICAgLy8gZnJhbWUgc2Nyb2xsaW5n
IG9uIGlPUyBieSBlbmFibGluZyAiQXN5bmMgRnJhbWUgU2Nyb2xsaW5nIiB2aWEgdGhlIFNhZmFy
aSBtZW51LgorICAgIGlmIChmcmFtZSgpLnNldHRpbmdzKCkuYXN5bmNGcmFtZVNjcm9sbGluZ0Vu
YWJsZWQoKSAmJiBmcmFtZSgpLnNldHRpbmdzKCkuZnJhbWVGbGF0dGVuaW5nKCkgPT0gRnJhbWVG
bGF0dGVuaW5nOjpGdWxseUVuYWJsZWQpCisgICAgICAgIHJldHVybiBGcmFtZUZsYXR0ZW5pbmc6
OkRpc2FibGVkOworI2VuZGlmCisgICAgcmV0dXJuIGZyYW1lKCkuc2V0dGluZ3MoKS5mcmFtZUZs
YXR0ZW5pbmcoKTsKK30KKwogYm9vbCBGcmFtZVZpZXc6OmZyYW1lRmxhdHRlbmluZ0VuYWJsZWQo
KSBjb25zdAogewotICAgIHJldHVybiBmcmFtZSgpLnNldHRpbmdzKCkuZWZmZWN0aXZlRnJhbWVG
bGF0dGVuaW5nKCkgIT0gRnJhbWVGbGF0dGVuaW5nRGlzYWJsZWQ7CisgICAgcmV0dXJuIGVmZmVj
dGl2ZUZyYW1lRmxhdHRlbmluZygpICE9IEZyYW1lRmxhdHRlbmluZzo6RGlzYWJsZWQ7CiB9CiAK
IGJvb2wgRnJhbWVWaWV3Ojppc0ZyYW1lRmxhdHRlbmluZ1ZhbGlkRm9yVGhpc0ZyYW1lKCkgY29u
c3QKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuaAkocmV2aXNpb24gMjIzMzY2KQorKysgU291
cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuaAkod29ya2luZyBjb3B5KQpAQCAtNjEsNiArNjEs
OCBAQCBjbGFzcyBSZW5kZXJTdHlsZTsKIGNsYXNzIFJlbmRlclZpZXc7CiBjbGFzcyBSZW5kZXJX
aWRnZXQ7CiAKK2VudW0gY2xhc3MgRnJhbWVGbGF0dGVuaW5nOworCiBQYWdpbmF0aW9uOjpNb2Rl
IHBhZ2luYXRpb25Nb2RlRm9yUmVuZGVyU3R5bGUoY29uc3QgUmVuZGVyU3R5bGUmKTsKIAogY2xh
c3MgRnJhbWVWaWV3IGZpbmFsIDogcHVibGljIFNjcm9sbFZpZXcgewpAQCAtNjM1LDYgKzYzNyw4
IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgc2V0U3BlY3VsYXRpdmVUaWxpbmdEZWxheURpc2FibGVk
Rm9yVGVzdGluZyhib29sIGRpc2FibGVkKSB7IG1fc3BlY3VsYXRpdmVUaWxpbmdEZWxheURpc2Fi
bGVkRm9yVGVzdGluZyA9IGRpc2FibGVkOyB9CiAKKyAgICBXRUJDT1JFX0VYUE9SVCBGcmFtZUZs
YXR0ZW5pbmcgZWZmZWN0aXZlRnJhbWVGbGF0dGVuaW5nKCkgY29uc3Q7CisKIHByb3RlY3RlZDoK
ICAgICBib29sIHNjcm9sbENvbnRlbnRzRmFzdFBhdGgoY29uc3QgSW50U2l6ZSYgc2Nyb2xsRGVs
dGEsIGNvbnN0IEludFJlY3QmIHJlY3RUb1Njcm9sbCwgY29uc3QgSW50UmVjdCYgY2xpcFJlY3Qp
IGZpbmFsOwogICAgIHZvaWQgc2Nyb2xsQ29udGVudHNTbG93UGF0aChjb25zdCBJbnRSZWN0JiB1
cGRhdGVSZWN0KSBmaW5hbDsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuY3BwCShyZXZpc2lv
biAyMjMzNjYpCisrKyBTb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMjYsOTcgKzI2LDExIEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAi
U2V0dGluZ3MuaCIKIAotI2luY2x1ZGUgIkF1ZGlvU2Vzc2lvbi5oIgotI2luY2x1ZGUgIkJhY2tG
b3J3YXJkQ29udHJvbGxlci5oIgotI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlTG9hZGVyLmgiCi0j
aW5jbHVkZSAiQ29va2llU3RvcmFnZS5oIgotI2luY2x1ZGUgIkRPTVRpbWVyLmgiCi0jaW5jbHVk
ZSAiRGF0YWJhc2UuaCIKLSNpbmNsdWRlICJEb2N1bWVudC5oIgotI2luY2x1ZGUgIkZvbnRDYXNj
YWRlLmgiCi0jaW5jbHVkZSAiRm9udEdlbmVyaWNGYW1pbGllcy5oIgotI2luY2x1ZGUgIkZyYW1l
VHJlZS5oIgotI2luY2x1ZGUgIkZyYW1lVmlldy5oIgotI2luY2x1ZGUgIkhUTUxNZWRpYUVsZW1l
bnQuaCIKLSNpbmNsdWRlICJIaXN0b3J5SXRlbS5oIgotI2luY2x1ZGUgIk1haW5GcmFtZS5oIgog
I2luY2x1ZGUgIlBhZ2UuaCIKLSNpbmNsdWRlICJTdG9yYWdlTWFwLmgiCi0jaW5jbHVkZSA8bGlt
aXRzPgotI2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgotI2luY2x1ZGUgPHd0Zi9TdGRM
aWJFeHRyYXMuaD4KKyNpbmNsdWRlICJTZXR0aW5nc0RlZmF1bHRWYWx1ZXMuaCIKIAogbmFtZXNw
YWNlIFdlYkNvcmUgewogCi0vLyBOT1RFcwotLy8gIDEpIEVkaXRpbmdNYWNCZWhhdmlvciBjb21w
cmlzZXMgVGlnZXIsIExlb3BhcmQsIFNub3dMZW9wYXJkIGFuZCBpT1MgYnVpbGRzLCBhcyB3ZWxs
IGFzIFF0V2ViS2l0IHdoZW4gYnVpbHQgb24gTWFjOwotLy8gIDIpIEVkaXRpbmdXaW5kb3dzQmVo
YXZpb3IgY29tcHJpc2VzIFdpbjMyIGJ1aWxkOwotLy8gIDMpIEVkaXRpbmdVbml4QmVoYXZpb3Ig
Y29tcHJpc2VzIGFsbCB1bml4LWJhc2VkIHN5c3RlbXMsIGJ1dCBEYXJ3aW4vTWFjT1MgKGFuZCB0
aGVuIGFidXNpbmcgdGhlIHRlcm1pbm9sb2d5KTsKLS8vIDk5KSBNYWNFZGl0aW5nQmVoYXZpb3Ig
aXMgdXNlZCBhcyBhIGZhbGxiYWNrLgotc3RhdGljIEVkaXRpbmdCZWhhdmlvclR5cGUgZWRpdGlu
Z0JlaGF2aW9yVHlwZUZvclBsYXRmb3JtKCkKLXsKLSAgICByZXR1cm4KLSNpZiBQTEFURk9STShJ
T1MpCi0gICAgRWRpdGluZ0lPU0JlaGF2aW9yCi0jZWxpZiBPUyhEQVJXSU4pCi0gICAgRWRpdGlu
Z01hY0JlaGF2aW9yCi0jZWxpZiBPUyhXSU5ET1dTKQotICAgIEVkaXRpbmdXaW5kb3dzQmVoYXZp
b3IKLSNlbGlmIE9TKFVOSVgpCi0gICAgRWRpdGluZ1VuaXhCZWhhdmlvcgotI2Vsc2UKLSAgICAv
LyBGYWxsYmFjawotICAgIEVkaXRpbmdNYWNCZWhhdmlvcgotI2VuZGlmCi0gICAgOwotfQotCi0j
aWYgUExBVEZPUk0oQ09DT0EpCi1zdGF0aWMgY29uc3QgYm9vbCBkZWZhdWx0WW91VHViZUZsYXNo
UGx1Z2luUmVwbGFjZW1lbnRFbmFibGVkID0gdHJ1ZTsKLSNlbHNlCi1zdGF0aWMgY29uc3QgYm9v
bCBkZWZhdWx0WW91VHViZUZsYXNoUGx1Z2luUmVwbGFjZW1lbnRFbmFibGVkID0gZmFsc2U7Ci0j
ZW5kaWYKLQotI2lmIFBMQVRGT1JNKElPUykKLXN0YXRpYyBjb25zdCBib29sIGRlZmF1bHRGaXhl
ZEJhY2tncm91bmRzUGFpbnRSZWxhdGl2ZVRvRG9jdW1lbnQgPSB0cnVlOwotc3RhdGljIGNvbnN0
IGJvb2wgZGVmYXVsdEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdGb3JGaXhlZFBvc2l0aW9uRW5hYmxl
ZCA9IHRydWU7Ci1zdGF0aWMgY29uc3QgYm9vbCBkZWZhdWx0QWxsb3dzSW5saW5lTWVkaWFQbGF5
YmFjayA9IGZhbHNlOwotc3RhdGljIGNvbnN0IGJvb2wgZGVmYXVsdElubGluZU1lZGlhUGxheWJh
Y2tSZXF1aXJlc1BsYXlzSW5saW5lQXR0cmlidXRlID0gdHJ1ZTsKLXN0YXRpYyBjb25zdCBib29s
IGRlZmF1bHRWaWRlb1BsYXliYWNrUmVxdWlyZXNVc2VyR2VzdHVyZSA9IHRydWU7Ci1zdGF0aWMg
Y29uc3QgYm9vbCBkZWZhdWx0QXVkaW9QbGF5YmFja1JlcXVpcmVzVXNlckdlc3R1cmUgPSB0cnVl
Owotc3RhdGljIGNvbnN0IGJvb2wgZGVmYXVsdE1lZGlhRGF0YUxvYWRzQXV0b21hdGljYWxseSA9
IGZhbHNlOwotc3RhdGljIGNvbnN0IGJvb2wgZGVmYXVsdFNob3VsZFJlc3BlY3RJbWFnZU9yaWVu
dGF0aW9uID0gdHJ1ZTsKLXN0YXRpYyBjb25zdCBib29sIGRlZmF1bHRJbWFnZVN1YnNhbXBsaW5n
RW5hYmxlZCA9IHRydWU7Ci1zdGF0aWMgY29uc3QgYm9vbCBkZWZhdWx0U2Nyb2xsaW5nVHJlZUlu
Y2x1ZGVzRnJhbWVzID0gdHJ1ZTsKLXN0YXRpYyBjb25zdCBib29sIGRlZmF1bHRNZWRpYUNvbnRy
b2xzU2NhbGVXaXRoUGFnZVpvb20gPSB0cnVlOwotc3RhdGljIGNvbnN0IGJvb2wgZGVmYXVsdFF1
aWNrVGltZVBsdWdpblJlcGxhY2VtZW50RW5hYmxlZCA9IHRydWU7Ci0jZWxzZQotc3RhdGljIGNv
bnN0IGJvb2wgZGVmYXVsdEZpeGVkQmFja2dyb3VuZHNQYWludFJlbGF0aXZlVG9Eb2N1bWVudCA9
IGZhbHNlOwotc3RhdGljIGNvbnN0IGJvb2wgZGVmYXVsdEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdG
b3JGaXhlZFBvc2l0aW9uRW5hYmxlZCA9IGZhbHNlOwotc3RhdGljIGNvbnN0IGJvb2wgZGVmYXVs
dEFsbG93c0lubGluZU1lZGlhUGxheWJhY2sgPSB0cnVlOwotc3RhdGljIGNvbnN0IGJvb2wgZGVm
YXVsdElubGluZU1lZGlhUGxheWJhY2tSZXF1aXJlc1BsYXlzSW5saW5lQXR0cmlidXRlID0gZmFs
c2U7Ci1zdGF0aWMgY29uc3QgYm9vbCBkZWZhdWx0VmlkZW9QbGF5YmFja1JlcXVpcmVzVXNlckdl
c3R1cmUgPSBmYWxzZTsKLXN0YXRpYyBjb25zdCBib29sIGRlZmF1bHRBdWRpb1BsYXliYWNrUmVx
dWlyZXNVc2VyR2VzdHVyZSA9IGZhbHNlOwotc3RhdGljIGNvbnN0IGJvb2wgZGVmYXVsdE1lZGlh
RGF0YUxvYWRzQXV0b21hdGljYWxseSA9IHRydWU7Ci1zdGF0aWMgY29uc3QgYm9vbCBkZWZhdWx0
U2hvdWxkUmVzcGVjdEltYWdlT3JpZW50YXRpb24gPSBmYWxzZTsKLXN0YXRpYyBjb25zdCBib29s
IGRlZmF1bHRJbWFnZVN1YnNhbXBsaW5nRW5hYmxlZCA9IGZhbHNlOwotc3RhdGljIGNvbnN0IGJv
b2wgZGVmYXVsdFNjcm9sbGluZ1RyZWVJbmNsdWRlc0ZyYW1lcyA9IGZhbHNlOwotc3RhdGljIGNv
bnN0IGJvb2wgZGVmYXVsdE1lZGlhQ29udHJvbHNTY2FsZVdpdGhQYWdlWm9vbSA9IHRydWU7Ci1z
dGF0aWMgY29uc3QgYm9vbCBkZWZhdWx0UXVpY2tUaW1lUGx1Z2luUmVwbGFjZW1lbnRFbmFibGVk
ID0gZmFsc2U7Ci0jZW5kaWYKLQotc3RhdGljIGNvbnN0IGJvb2wgZGVmYXVsdFJlcXVpcmVzVXNl
ckdlc3R1cmVUb0xvYWRWaWRlbyA9IHRydWU7Ci1zdGF0aWMgY29uc3QgYm9vbCBkZWZhdWx0QWxs
b3dzUGljdHVyZUluUGljdHVyZU1lZGlhUGxheWJhY2sgPSB0cnVlOwotCi1zdGF0aWMgY29uc3Qg
ZG91YmxlIGRlZmF1bHRJbmNyZW1lbnRhbFJlbmRlcmluZ1N1cHByZXNzaW9uVGltZW91dEluU2Vj
b25kcyA9IDU7Ci0jaWYgVVNFKFVOSUZJRURfVEVYVF9DSEVDS0lORykKLXN0YXRpYyBjb25zdCBi
b29sIGRlZmF1bHRVbmlmaWVkVGV4dENoZWNrZXJFbmFibGVkID0gdHJ1ZTsKLSNlbHNlCi1zdGF0
aWMgY29uc3QgYm9vbCBkZWZhdWx0VW5pZmllZFRleHRDaGVja2VyRW5hYmxlZCA9IGZhbHNlOwot
I2VuZGlmCi1zdGF0aWMgY29uc3QgYm9vbCBkZWZhdWx0U21hcnRJbnNlcnREZWxldGVFbmFibGVk
ID0gdHJ1ZTsKLXN0YXRpYyBjb25zdCBib29sIGRlZmF1bHRTZWxlY3RUcmFpbGluZ1doaXRlc3Bh
Y2VFbmFibGVkID0gZmFsc2U7Ci0KIFJlZjxTZXR0aW5ncz4gU2V0dGluZ3M6OmNyZWF0ZShQYWdl
KiBwYWdlKQogewogICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNldHRpbmdzKHBhZ2UpKTsKQEAg
LTEzNCwxNiArNDgsNCBAQCBTZXR0aW5nczo6flNldHRpbmdzKCkKIAogU0VUVElOR1NfU0VUVEVS
X0JPRElFUwogCi1GcmFtZUZsYXR0ZW5pbmcgU2V0dGluZ3M6OmVmZmVjdGl2ZUZyYW1lRmxhdHRl
bmluZygpCi17Ci0jaWYgUExBVEZPUk0oSU9TKQotICAgIC8vIE9uIGlPUyB3aGVuIGFzeW5jIGZy
YW1lIHNjcm9sbGluZyBpcyBlbmFibGVkLCBpdCBkb2VzIG5vdCBtYWtlIHNlbnNlIHRvIHVzZSBm
dWxsIGZyYW1lIGZsYXR0ZW5pbmcuCi0gICAgLy8gSW4gdGhhdCBjYXNlLCB3ZSBqdXN0IGNvbnNp
ZGVyIHRoYXQgZnJhbWUgZmxhdHRlbmluZyBpcyBkaXNhYmxlZC4gVGhpcyBhbGxvd3MgcGVvcGxl
IHRvIHRlc3QKLSAgICAvLyBmcmFtZSBzY3JvbGxpbmcgb24gaU9TIGJ5IGVuYWJsaW5nICJBc3lu
YyBGcmFtZSBTY3JvbGxpbmciIHZpYSB0aGUgU2FmYXJpIG1lbnUuCi0gICAgaWYgKGFzeW5jRnJh
bWVTY3JvbGxpbmdFbmFibGVkKCkgJiYgZnJhbWVGbGF0dGVuaW5nKCkgPT0gRnJhbWVGbGF0dGVu
aW5nRnVsbHlFbmFibGVkKQotICAgICAgICByZXR1cm4gRnJhbWVGbGF0dGVuaW5nRGlzYWJsZWQ7
Ci0jZW5kaWYKLSAgICByZXR1cm4gZnJhbWVGbGF0dGVuaW5nKCk7Ci19Ci0KIH0gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmgJKHJldmlzaW9uIDIyMzM2NikK
KysrIFNvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuaAkod29ya2luZyBjb3B5KQpAQCAtMjcs
NiArMjcsOCBAQAogI3ByYWdtYSBvbmNlCiAKICNpbmNsdWRlICJTZXR0aW5nc0Jhc2UuaCIKKyNp
bmNsdWRlICJTZXR0aW5nc01hY3Jvcy5oIgorI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CiAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtMzYsMTggKzM4LDEyIEBAIHB1YmxpYzoKICAgICBz
dGF0aWMgUmVmPFNldHRpbmdzPiBjcmVhdGUoUGFnZSopOwogICAgIH5TZXR0aW5ncygpOwogCi0g
ICAgdm9pZCBwYWdlRGVzdHJveWVkKCkgeyBtX3BhZ2UgPSBudWxscHRyOyB9Ci0KICAgICBTRVRU
SU5HU19HRVRURVJTX0FORF9TRVRURVJTCiAKLQotICAgIFdFQkNPUkVfRVhQT1JUIEZyYW1lRmxh
dHRlbmluZyBlZmZlY3RpdmVGcmFtZUZsYXR0ZW5pbmcoKTsKLQogcHJpdmF0ZToKICAgICBleHBs
aWNpdCBTZXR0aW5ncyhQYWdlKik7CiAKICAgICBTRVRUSU5HU19NRU1CRVJfVkFSSUFCTEVTCi0K
IH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2Uv
U2V0dGluZ3MuaW4KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5p
bgkocmV2aXNpb24gMjIzMzY2KQorKysgU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5pbgko
d29ya2luZyBjb3B5KQpAQCAtMTc1LDcgKzE3NSw3IEBAIHNuYXBzaG90QWxsUGx1Z0lucyBpbml0
aWFsPWZhbHNlCiBhdXRvc3RhcnRPcmlnaW5QbHVnSW5TbmFwc2hvdHRpbmdFbmFibGVkIGluaXRp
YWw9dHJ1ZQogcHJpbWFyeVBsdWdJblNuYXBzaG90RGV0ZWN0aW9uRW5hYmxlZCBpbml0aWFsPXRy
dWUKIG1heGltdW1QbHVnSW5TbmFwc2hvdEF0dGVtcHRzIHR5cGU9dW5zaWduZWQsIGluaXRpYWw9
MjAKLWZyYW1lRmxhdHRlbmluZyB0eXBlPUZyYW1lRmxhdHRlbmluZywgaW5pdGlhbD1GcmFtZUZs
YXR0ZW5pbmdEaXNhYmxlZAorZnJhbWVGbGF0dGVuaW5nIHR5cGU9RnJhbWVGbGF0dGVuaW5nLCBp
bml0aWFsPUZyYW1lRmxhdHRlbmluZzo6RGlzYWJsZWQKIGFzeW5jRnJhbWVTY3JvbGxpbmdFbmFi
bGVkIGluaXRpYWw9ZmFsc2UKIAogd2ViU2VjdXJpdHlFbmFibGVkIGluaXRpYWw9dHJ1ZQpJbmRl
eDogU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5nc0Jhc2UuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzQmFzZS5oCShyZXZpc2lvbiAyMjMzNjYpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzQmFzZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMSw3ICsz
MSw3IEBACiAjaW5jbHVkZSAiRWRpdGluZ0JlaGF2aW9yVHlwZXMuaCIKICNpbmNsdWRlICJJbnRT
aXplLmgiCiAjaW5jbHVkZSAiU2VjdXJpdHlPcmlnaW4uaCIKLSNpbmNsdWRlICJTZXR0aW5nc01h
Y3Jvcy5oIgorI2luY2x1ZGUgIlN0b3JhZ2VNYXAuaCIKICNpbmNsdWRlICJUZXh0RmxhZ3MuaCIK
ICNpbmNsdWRlICJUaW1lci5oIgogI2luY2x1ZGUgIlVSTC5oIgpAQCAtODgsMTAgKzg4LDEwIEBA
IGVudW0gUERGSW1hZ2VDYWNoaW5nUG9saWN5IHsKICNlbmRpZgogfTsKIAotZW51bSBGcmFtZUZs
YXR0ZW5pbmcgewotICAgIEZyYW1lRmxhdHRlbmluZ0Rpc2FibGVkLAotICAgIEZyYW1lRmxhdHRl
bmluZ0VuYWJsZWRGb3JOb25GdWxsU2NyZWVuSUZyYW1lcywKLSAgICBGcmFtZUZsYXR0ZW5pbmdG
dWxseUVuYWJsZWQKK2VudW0gY2xhc3MgRnJhbWVGbGF0dGVuaW5nIHsKKyAgICBEaXNhYmxlZCwK
KyAgICBFbmFibGVkRm9yTm9uRnVsbFNjcmVlbklGcmFtZXMsCisgICAgRnVsbHlFbmFibGVkCiB9
OwogCiB0eXBlZGVmIHVuc2lnbmVkIERlYnVnT3ZlcmxheVJlZ2lvbnM7CkBAIC0xMDEsNiArMTAx
LDggQEAgY2xhc3MgU2V0dGluZ3NCYXNlIHsKIHB1YmxpYzoKICAgICB+U2V0dGluZ3NCYXNlKCk7
CiAKKyAgICB2b2lkIHBhZ2VEZXN0cm95ZWQoKSB7IG1fcGFnZSA9IG51bGxwdHI7IH0KKwogICAg
IGVudW0gY2xhc3MgRm9udExvYWRUaW1pbmdPdmVycmlkZSB7IE5vbmUsIEJsb2NrLCBTd2FwLCBG
YWlsdXJlIH07CiAKICAgICBlbnVtIGNsYXNzIEZvcmNlZEFjY2Vzc2liaWxpdHlWYWx1ZSB7IFN5
c3RlbSwgT24sIE9mZiB9OwpJbmRleDogU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5nc0RlZmF1
bHRWYWx1ZXMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzRGVm
YXVsdFZhbHVlcy5oCShub25leGlzdGVudCkKKysrIFNvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGlu
Z3NEZWZhdWx0VmFsdWVzLmgJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxMDAgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQg
SVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgIkVkaXRpbmdCZWhhdmlvclR5cGVzLmgi
CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworLy8gTk9URXMKKy8vICAxKSBFZGl0aW5nTWFjQmVo
YXZpb3IgY29tcHJpc2VzIFRpZ2VyLCBMZW9wYXJkLCBTbm93TGVvcGFyZCBhbmQgaU9TIGJ1aWxk
cywgYXMgd2VsbCBhcyBRdFdlYktpdCB3aGVuIGJ1aWx0IG9uIE1hYzsKKy8vICAyKSBFZGl0aW5n
V2luZG93c0JlaGF2aW9yIGNvbXByaXNlcyBXaW4zMiBidWlsZDsKKy8vICAzKSBFZGl0aW5nVW5p
eEJlaGF2aW9yIGNvbXByaXNlcyBhbGwgdW5peC1iYXNlZCBzeXN0ZW1zLCBidXQgRGFyd2luL01h
Y09TIChhbmQgdGhlbiBhYnVzaW5nIHRoZSB0ZXJtaW5vbG9neSk7CisvLyA5OSkgTWFjRWRpdGlu
Z0JlaGF2aW9yIGlzIHVzZWQgYXMgYSBmYWxsYmFjay4KK2lubGluZSBFZGl0aW5nQmVoYXZpb3JU
eXBlIGVkaXRpbmdCZWhhdmlvclR5cGVGb3JQbGF0Zm9ybSgpCit7CisjaWYgUExBVEZPUk0oSU9T
KQorICAgIHJldHVybiBFZGl0aW5nSU9TQmVoYXZpb3I7CisjZWxpZiBPUyhEQVJXSU4pCisgICAg
cmV0dXJuIEVkaXRpbmdNYWNCZWhhdmlvcjsKKyNlbGlmIE9TKFdJTkRPV1MpCisgICAgcmV0dXJu
IEVkaXRpbmdXaW5kb3dzQmVoYXZpb3I7CisjZWxpZiBPUyhVTklYKQorICAgIHJldHVybiBFZGl0
aW5nVW5peEJlaGF2aW9yOworI2Vsc2UKKyAgICAvLyBGYWxsYmFjaworICAgIHJldHVybiBFZGl0
aW5nTWFjQmVoYXZpb3I7CisjZW5kaWYKKyAgICAKK30KKworI2lmIFBMQVRGT1JNKENPQ09BKQor
c3RhdGljIGNvbnN0IGJvb2wgZGVmYXVsdFlvdVR1YmVGbGFzaFBsdWdpblJlcGxhY2VtZW50RW5h
YmxlZCA9IHRydWU7CisjZWxzZQorc3RhdGljIGNvbnN0IGJvb2wgZGVmYXVsdFlvdVR1YmVGbGFz
aFBsdWdpblJlcGxhY2VtZW50RW5hYmxlZCA9IGZhbHNlOworI2VuZGlmCisKKyNpZiBQTEFURk9S
TShJT1MpCitzdGF0aWMgY29uc3QgYm9vbCBkZWZhdWx0Rml4ZWRCYWNrZ3JvdW5kc1BhaW50UmVs
YXRpdmVUb0RvY3VtZW50ID0gdHJ1ZTsKK3N0YXRpYyBjb25zdCBib29sIGRlZmF1bHRBY2NlbGVy
YXRlZENvbXBvc2l0aW5nRm9yRml4ZWRQb3NpdGlvbkVuYWJsZWQgPSB0cnVlOworc3RhdGljIGNv
bnN0IGJvb2wgZGVmYXVsdEFsbG93c0lubGluZU1lZGlhUGxheWJhY2sgPSBmYWxzZTsKK3N0YXRp
YyBjb25zdCBib29sIGRlZmF1bHRJbmxpbmVNZWRpYVBsYXliYWNrUmVxdWlyZXNQbGF5c0lubGlu
ZUF0dHJpYnV0ZSA9IHRydWU7CitzdGF0aWMgY29uc3QgYm9vbCBkZWZhdWx0VmlkZW9QbGF5YmFj
a1JlcXVpcmVzVXNlckdlc3R1cmUgPSB0cnVlOworc3RhdGljIGNvbnN0IGJvb2wgZGVmYXVsdEF1
ZGlvUGxheWJhY2tSZXF1aXJlc1VzZXJHZXN0dXJlID0gdHJ1ZTsKK3N0YXRpYyBjb25zdCBib29s
IGRlZmF1bHRNZWRpYURhdGFMb2Fkc0F1dG9tYXRpY2FsbHkgPSBmYWxzZTsKK3N0YXRpYyBjb25z
dCBib29sIGRlZmF1bHRTaG91bGRSZXNwZWN0SW1hZ2VPcmllbnRhdGlvbiA9IHRydWU7CitzdGF0
aWMgY29uc3QgYm9vbCBkZWZhdWx0SW1hZ2VTdWJzYW1wbGluZ0VuYWJsZWQgPSB0cnVlOworc3Rh
dGljIGNvbnN0IGJvb2wgZGVmYXVsdFNjcm9sbGluZ1RyZWVJbmNsdWRlc0ZyYW1lcyA9IHRydWU7
CitzdGF0aWMgY29uc3QgYm9vbCBkZWZhdWx0TWVkaWFDb250cm9sc1NjYWxlV2l0aFBhZ2Vab29t
ID0gdHJ1ZTsKK3N0YXRpYyBjb25zdCBib29sIGRlZmF1bHRRdWlja1RpbWVQbHVnaW5SZXBsYWNl
bWVudEVuYWJsZWQgPSB0cnVlOworI2Vsc2UKK3N0YXRpYyBjb25zdCBib29sIGRlZmF1bHRGaXhl
ZEJhY2tncm91bmRzUGFpbnRSZWxhdGl2ZVRvRG9jdW1lbnQgPSBmYWxzZTsKK3N0YXRpYyBjb25z
dCBib29sIGRlZmF1bHRBY2NlbGVyYXRlZENvbXBvc2l0aW5nRm9yRml4ZWRQb3NpdGlvbkVuYWJs
ZWQgPSBmYWxzZTsKK3N0YXRpYyBjb25zdCBib29sIGRlZmF1bHRBbGxvd3NJbmxpbmVNZWRpYVBs
YXliYWNrID0gdHJ1ZTsKK3N0YXRpYyBjb25zdCBib29sIGRlZmF1bHRJbmxpbmVNZWRpYVBsYXli
YWNrUmVxdWlyZXNQbGF5c0lubGluZUF0dHJpYnV0ZSA9IGZhbHNlOworc3RhdGljIGNvbnN0IGJv
b2wgZGVmYXVsdFZpZGVvUGxheWJhY2tSZXF1aXJlc1VzZXJHZXN0dXJlID0gZmFsc2U7CitzdGF0
aWMgY29uc3QgYm9vbCBkZWZhdWx0QXVkaW9QbGF5YmFja1JlcXVpcmVzVXNlckdlc3R1cmUgPSBm
YWxzZTsKK3N0YXRpYyBjb25zdCBib29sIGRlZmF1bHRNZWRpYURhdGFMb2Fkc0F1dG9tYXRpY2Fs
bHkgPSB0cnVlOworc3RhdGljIGNvbnN0IGJvb2wgZGVmYXVsdFNob3VsZFJlc3BlY3RJbWFnZU9y
aWVudGF0aW9uID0gZmFsc2U7CitzdGF0aWMgY29uc3QgYm9vbCBkZWZhdWx0SW1hZ2VTdWJzYW1w
bGluZ0VuYWJsZWQgPSBmYWxzZTsKK3N0YXRpYyBjb25zdCBib29sIGRlZmF1bHRTY3JvbGxpbmdU
cmVlSW5jbHVkZXNGcmFtZXMgPSBmYWxzZTsKK3N0YXRpYyBjb25zdCBib29sIGRlZmF1bHRNZWRp
YUNvbnRyb2xzU2NhbGVXaXRoUGFnZVpvb20gPSB0cnVlOworc3RhdGljIGNvbnN0IGJvb2wgZGVm
YXVsdFF1aWNrVGltZVBsdWdpblJlcGxhY2VtZW50RW5hYmxlZCA9IGZhbHNlOworI2VuZGlmCisK
K3N0YXRpYyBjb25zdCBib29sIGRlZmF1bHRSZXF1aXJlc1VzZXJHZXN0dXJlVG9Mb2FkVmlkZW8g
PSB0cnVlOworc3RhdGljIGNvbnN0IGJvb2wgZGVmYXVsdEFsbG93c1BpY3R1cmVJblBpY3R1cmVN
ZWRpYVBsYXliYWNrID0gdHJ1ZTsKKworc3RhdGljIGNvbnN0IGRvdWJsZSBkZWZhdWx0SW5jcmVt
ZW50YWxSZW5kZXJpbmdTdXBwcmVzc2lvblRpbWVvdXRJblNlY29uZHMgPSA1OworI2lmIFVTRShV
TklGSUVEX1RFWFRfQ0hFQ0tJTkcpCitzdGF0aWMgY29uc3QgYm9vbCBkZWZhdWx0VW5pZmllZFRl
eHRDaGVja2VyRW5hYmxlZCA9IHRydWU7CisjZWxzZQorc3RhdGljIGNvbnN0IGJvb2wgZGVmYXVs
dFVuaWZpZWRUZXh0Q2hlY2tlckVuYWJsZWQgPSBmYWxzZTsKKyNlbmRpZgorc3RhdGljIGNvbnN0
IGJvb2wgZGVmYXVsdFNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCA9IHRydWU7CitzdGF0aWMgY29u
c3QgYm9vbCBkZWZhdWx0U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCA9IGZhbHNlOwor
Cit9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRnJhbWVTZXQuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGcmFtZVNldC5jcHAJ
KHJldmlzaW9uIDIyMzM2NikKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGcmFt
ZVNldC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTY1MSw3ICs2NTEsNyBAQCB2b2lkIFJlbmRlckZy
YW1lU2V0Ojpwb3NpdGlvbkZyYW1lc1dpdGhGCiAKIGJvb2wgUmVuZGVyRnJhbWVTZXQ6OmZsYXR0
ZW5GcmFtZVNldCgpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIHNldHRpbmdzKCkuZWZmZWN0aXZlRnJh
bWVGbGF0dGVuaW5nKCkgIT0gRnJhbWVGbGF0dGVuaW5nRGlzYWJsZWQ7CisgICAgcmV0dXJuIHZp
ZXcoKS5mcmFtZVZpZXcoKS5lZmZlY3RpdmVGcmFtZUZsYXR0ZW5pbmcoKSAhPSBGcmFtZUZsYXR0
ZW5pbmc6OkRpc2FibGVkOwogfQogCiB2b2lkIFJlbmRlckZyYW1lU2V0OjpzdGFydFJlc2l6aW5n
KEdyaWRBeGlzJiBheGlzLCBpbnQgcG9zaXRpb24pCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVySUZyYW1lLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVySUZyYW1lLmNwcAkocmV2aXNpb24gMjIzMzY2KQorKysgU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlcklGcmFtZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTc4LDcgKzc4
LDcgQEAgYm9vbCBSZW5kZXJJRnJhbWU6OmlzRnVsbFNjcmVlbklGcmFtZSgpIAogCiBib29sIFJl
bmRlcklGcmFtZTo6ZmxhdHRlbkZyYW1lKCkgY29uc3QKIHsKLSAgICBpZiAoc2V0dGluZ3MoKS5l
ZmZlY3RpdmVGcmFtZUZsYXR0ZW5pbmcoKSA9PSBGcmFtZUZsYXR0ZW5pbmdEaXNhYmxlZCkKKyAg
ICBpZiAodmlldygpLmZyYW1lVmlldygpLmVmZmVjdGl2ZUZyYW1lRmxhdHRlbmluZygpID09IEZy
YW1lRmxhdHRlbmluZzo6RGlzYWJsZWQpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIGlm
IChzdHlsZSgpLndpZHRoKCkuaXNGaXhlZCgpICYmIHN0eWxlKCkuaGVpZ2h0KCkuaXNGaXhlZCgp
KSB7CkBAIC04OSw3ICs4OSw3IEBAIGJvb2wgUmVuZGVySUZyYW1lOjpmbGF0dGVuRnJhbWUoKSBj
b25zdAogICAgICAgICBpZiAoc3R5bGUoKS53aWR0aCgpLnZhbHVlKCkgPD0gMCB8fCBzdHlsZSgp
LmhlaWdodCgpLnZhbHVlKCkgPD0gMCkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAg
ICAgLy8gRG8gbm90IGZsYXR0ZW4gImZ1bGxzY3JlZW4iIGlmcmFtZXMgb3IgdGhleSBjb3VsZCBi
ZWNvbWUgbGFyZ2VyIHRoYW4gdGhlIHZpZXdwb3J0LgotICAgICAgICBpZiAoc2V0dGluZ3MoKS5l
ZmZlY3RpdmVGcmFtZUZsYXR0ZW5pbmcoKSA8PSBGcmFtZUZsYXR0ZW5pbmdFbmFibGVkRm9yTm9u
RnVsbFNjcmVlbklGcmFtZXMgJiYgaXNGdWxsU2NyZWVuSUZyYW1lKCkpCisgICAgICAgIGlmICh2
aWV3KCkuZnJhbWVWaWV3KCkuZWZmZWN0aXZlRnJhbWVGbGF0dGVuaW5nKCkgPD0gRnJhbWVGbGF0
dGVuaW5nOjpFbmFibGVkRm9yTm9uRnVsbFNjcmVlbklGcmFtZXMgJiYgaXNGdWxsU2NyZWVuSUZy
YW1lKCkpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQogCkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVmlldy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlclZpZXcuY3BwCShyZXZpc2lvbiAyMjMzNjYpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVmlldy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTU5
LDcgKzU5LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogc3RydWN0IEZyYW1lRmxhdHRlbmluZ0xh
eW91dERpc2FsbG93ZXIgewogICAgIEZyYW1lRmxhdHRlbmluZ0xheW91dERpc2FsbG93ZXIoRnJh
bWVWaWV3JiBmcmFtZVZpZXcpCiAgICAgICAgIDogbV9mcmFtZVZpZXcoZnJhbWVWaWV3KQotICAg
ICAgICAsIG1fZGlzYWxsb3dMYXlvdXQoZnJhbWVWaWV3LmZyYW1lKCkuc2V0dGluZ3MoKS5lZmZl
Y3RpdmVGcmFtZUZsYXR0ZW5pbmcoKSAhPSBGcmFtZUZsYXR0ZW5pbmdEaXNhYmxlZCkKKyAgICAg
ICAgLCBtX2Rpc2FsbG93TGF5b3V0KGZyYW1lVmlldy5lZmZlY3RpdmVGcmFtZUZsYXR0ZW5pbmco
KSAhPSBGcmFtZUZsYXR0ZW5pbmc6OkRpc2FibGVkKQogICAgIHsKICAgICAgICAgaWYgKG1fZGlz
YWxsb3dMYXlvdXQpCiAgICAgICAgICAgICBtX2ZyYW1lVmlldy5zdGFydERpc2FsbG93aW5nTGF5
b3V0KCk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5j
cHAJKHJldmlzaW9uIDIyMzM2NikKKysrIFNvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxT
ZXR0aW5ncy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTgxOSwyNiArODE5LDExIEBAIEV4Y2VwdGlv
bk9yPHZvaWQ+IEludGVybmFsU2V0dGluZ3M6OnNldFMKICAgICByZXR1cm4gRXhjZXB0aW9uIHsg
SW52YWxpZEFjY2Vzc0Vycm9yIH07CiB9CiAKLXN0YXRpYyBGcmFtZUZsYXR0ZW5pbmcgaW50ZXJu
YWxTZXR0aW5nc1RvV2ViQ29yZVZhbHVlKEludGVybmFsU2V0dGluZ3M6OkZyYW1lRmxhdHRlbmlu
Z1ZhbHVlIHZhbHVlKQotewotICAgIHN3aXRjaCAodmFsdWUpIHsKLSAgICBjYXNlIEludGVybmFs
U2V0dGluZ3M6OkZyYW1lRmxhdHRlbmluZ1ZhbHVlOjpEaXNhYmxlZDoKLSAgICAgICAgcmV0dXJu
IEZyYW1lRmxhdHRlbmluZ0Rpc2FibGVkOwotICAgIGNhc2UgSW50ZXJuYWxTZXR0aW5nczo6RnJh
bWVGbGF0dGVuaW5nVmFsdWU6OkVuYWJsZWRGb3JOb25GdWxsU2NyZWVuSUZyYW1lczoKLSAgICAg
ICAgcmV0dXJuIEZyYW1lRmxhdHRlbmluZ0VuYWJsZWRGb3JOb25GdWxsU2NyZWVuSUZyYW1lczsK
LSAgICBjYXNlIEludGVybmFsU2V0dGluZ3M6OkZyYW1lRmxhdHRlbmluZ1ZhbHVlOjpGdWxseUVu
YWJsZWQ6Ci0gICAgICAgIHJldHVybiBGcmFtZUZsYXR0ZW5pbmdGdWxseUVuYWJsZWQ7Ci0gICAg
fQotCi0gICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgcmV0dXJuIEZyYW1lRmxhdHRlbmlu
Z0Rpc2FibGVkOwotfQotCi1FeGNlcHRpb25Pcjx2b2lkPiBJbnRlcm5hbFNldHRpbmdzOjpzZXRG
cmFtZUZsYXR0ZW5pbmcoY29uc3QgRnJhbWVGbGF0dGVuaW5nVmFsdWUmIGZyYW1lRmxhdHRlbmlu
ZykKK0V4Y2VwdGlvbk9yPHZvaWQ+IEludGVybmFsU2V0dGluZ3M6OnNldEZyYW1lRmxhdHRlbmlu
ZyhGcmFtZUZsYXR0ZW5pbmdWYWx1ZSBmcmFtZUZsYXR0ZW5pbmcpCiB7CiAgICAgaWYgKCFtX3Bh
Z2UpCiAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlkQWNjZXNzRXJyb3IgfTsKLSAg
ICBzZXR0aW5ncygpLnNldEZyYW1lRmxhdHRlbmluZyhpbnRlcm5hbFNldHRpbmdzVG9XZWJDb3Jl
VmFsdWUoZnJhbWVGbGF0dGVuaW5nKSk7CisgICAgc2V0dGluZ3MoKS5zZXRGcmFtZUZsYXR0ZW5p
bmcoZnJhbWVGbGF0dGVuaW5nKTsKICAgICByZXR1cm4geyB9OwogfQogCkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS90ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS90ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuaAkocmV2aXNpb24gMjIzMzY2KQorKysg
U291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmgJKHdvcmtpbmcgY29weSkK
QEAgLTEwMSw4ICsxMDEsOCBAQCBwdWJsaWM6CiAgICAgRXhjZXB0aW9uT3I8dm9pZD4gc2V0U2hv
dWxkTWFuYWdlQXVkaW9TZXNzaW9uQ2F0ZWdvcnkoYm9vbCk7CiAgICAgRXhjZXB0aW9uT3I8dm9p
ZD4gc2V0Q3VzdG9tUGFzdGVib2FyZERhdGFFbmFibGVkKGJvb2wpOwogCi0gICAgZW51bSBjbGFz
cyBGcmFtZUZsYXR0ZW5pbmdWYWx1ZSB7IERpc2FibGVkLCBFbmFibGVkRm9yTm9uRnVsbFNjcmVl
bklGcmFtZXMsIEZ1bGx5RW5hYmxlZCB9OwotICAgIEV4Y2VwdGlvbk9yPHZvaWQ+IHNldEZyYW1l
RmxhdHRlbmluZyhjb25zdCBGcmFtZUZsYXR0ZW5pbmdWYWx1ZSYpOworICAgIHVzaW5nIEZyYW1l
RmxhdHRlbmluZ1ZhbHVlID0gRnJhbWVGbGF0dGVuaW5nOworICAgIEV4Y2VwdGlvbk9yPHZvaWQ+
IHNldEZyYW1lRmxhdHRlbmluZyhGcmFtZUZsYXR0ZW5pbmdWYWx1ZSk7CiAgICAgCiAgICAgc3Rh
dGljIHZvaWQgc2V0QWxsb3dzQW55U1NMQ2VydGlmaWNhdGUoYm9vbCk7CiAKSW5kZXg6IFNvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9n
CShyZXZpc2lvbiAyMjMzNzEpCisrKyBTb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwkod29ya2luZyBj
b3B5KQpAQCAtMSwzICsxLDI1IEBACisyMDE3LTEwLTE2ICBTYW0gV2VpbmlnICA8c2FtQHdlYmtp
dC5vcmc+CisKKyAgICAgICAgW1NldHRpbmdzXSBSZW1vdmUgYWxsIGN1c3RvbSBjb2RlIGZyb20g
U2V0dGluZ3MuaC9jcHAKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTE3ODMzMAorCisgICAgICAgICogU2hhcmVkL1dlYlByZWZlcmVuY2VzRGVmaW5pdGlv
bnMuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tQcmVmZXJlbmNlcy5jcHA6CisgICAg
ICAgIChXS1ByZWZlcmVuY2VzU2V0RnJhbWVGbGF0dGVuaW5nRW5hYmxlZCk6CisgICAgICAgIChX
S1ByZWZlcmVuY2VzR2V0RnJhbWVGbGF0dGVuaW5nRW5hYmxlZCk6CisgICAgICAgICogVUlQcm9j
ZXNzL0FQSS9nbGliL1dlYktpdFNldHRpbmdzLmNwcDoKKyAgICAgICAgKHdlYmtpdF9zZXR0aW5n
c19nZXRfZW5hYmxlX2ZyYW1lX2ZsYXR0ZW5pbmcpOgorICAgICAgICAod2Via2l0X3NldHRpbmdz
X3NldF9lbmFibGVfZnJhbWVfZmxhdHRlbmluZyk6CisgICAgICAgICogV2ViUHJvY2Vzcy9Jbmpl
Y3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OkluamVjdGVk
QnVuZGxlOjpzZXRGcmFtZUZsYXR0ZW5pbmdFbmFibGVkKToKKyAgICAgICAgCisgICAgICAgICAg
ICBVcGRhdGUgZm9yIG5hbWluZyBjaGFuZ2VzIG9mIEZyYW1lRmxhdHRlbmluZyBub3cgdGhhdCBp
dCBpcyBhbiBlbnVtIGNsYXNzLgorCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9XZWJDaHJvbWVDbGllbnQuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJDaHJvbWVDbGllbnQ6
OmNvbnRlbnRzU2l6ZUNoYW5nZWQgY29uc3QpOgorCisgICAgICAgICAgICBHZSB0aGUgZWZmZWN0
aXZlRnJhbWVGbGF0dGVuaW5nIGZyb20gdGhlIEZyYW1lVmlldywgcmF0aGVyIHRoYW4gdGhlIFNl
dHRpbmdzLgorCiAyMDE3LTEwLTEzICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4K
IAogICAgICAgICBJbXBsZW1lbnQgbGlzdGluZyBvcmlnaW5zIGZvciB3aGljaCBDYWNoZVN0b3Jh
Z2UgaXMgc3RvcmluZyBkYXRhCkluZGV4OiBTb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcmVmZXJl
bmNlc0RlZmluaXRpb25zLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9TaGFyZWQvV2Vi
UHJlZmVyZW5jZXNEZWZpbml0aW9ucy5oCShyZXZpc2lvbiAyMjMzNjYpCisrKyBTb3VyY2UvV2Vi
S2l0L1NoYXJlZC9XZWJQcmVmZXJlbmNlc0RlZmluaXRpb25zLmgJKHdvcmtpbmcgY29weSkKQEAg
LTYwLDcgKzYwLDcgQEAKICNpZiBQTEFURk9STShJT1MpCiAjZGVmaW5lIERFRkFVTFRfQUxMT1dT
X1BJQ1RVUkVfSU5fUElDVFVSRV9NRURJQV9QTEFZQkFDSyB0cnVlCiAjZGVmaW5lIERFRkFVTFRf
QkFDS1NQQUNFX0tFWV9OQVZJR0FUSU9OX0VOQUJMRUQgZmFsc2UKLSNkZWZpbmUgREVGQVVMVF9G
UkFNRV9GTEFUVEVOSU5HIEZyYW1lRmxhdHRlbmluZ0Z1bGx5RW5hYmxlZAorI2RlZmluZSBERUZB
VUxUX0ZSQU1FX0ZMQVRURU5JTkcgRnJhbWVGbGF0dGVuaW5nOjpGdWxseUVuYWJsZWQKICNkZWZp
bmUgREVGQVVMVF9TSE9VTERfUFJJTlRfQkFDS0dST1VORFMgdHJ1ZQogI2RlZmluZSBERUZBVUxU
X1RFWFRfQVJFQVNfQVJFX1JFU0laQUJMRSBmYWxzZQogI2RlZmluZSBERUZBVUxUX0pBVkFTQ1JJ
UFRfQ0FOX09QRU5fV0lORE9XU19BVVRPTUFUSUNBTExZIGZhbHNlCkBAIC03OCw3ICs3OCw3IEBA
CiAjZWxzZQogI2RlZmluZSBERUZBVUxUX0FMTE9XU19QSUNUVVJFX0lOX1BJQ1RVUkVfTUVESUFf
UExBWUJBQ0sgZmFsc2UKICNkZWZpbmUgREVGQVVMVF9CQUNLU1BBQ0VfS0VZX05BVklHQVRJT05f
RU5BQkxFRCB0cnVlCi0jZGVmaW5lIERFRkFVTFRfRlJBTUVfRkxBVFRFTklORyBGcmFtZUZsYXR0
ZW5pbmdEaXNhYmxlZAorI2RlZmluZSBERUZBVUxUX0ZSQU1FX0ZMQVRURU5JTkcgRnJhbWVGbGF0
dGVuaW5nOjpEaXNhYmxlZAogI2RlZmluZSBERUZBVUxUX1NIT1VMRF9QUklOVF9CQUNLR1JPVU5E
UyBmYWxzZQogI2RlZmluZSBERUZBVUxUX1RFWFRfQVJFQVNfQVJFX1JFU0laQUJMRSB0cnVlCiAj
ZGVmaW5lIERFRkFVTFRfSkFWQVNDUklQVF9DQU5fT1BFTl9XSU5ET1dTX0FVVE9NQVRJQ0FMTFkg
dHJ1ZQpJbmRleDogU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQcmVmZXJlbmNlcy5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQcmVmZXJl
bmNlcy5jcHAJKHJldmlzaW9uIDIyMzM2NikKKysrIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9DL1dLUHJlZmVyZW5jZXMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNDUsMTMgKzE0NSwxMyBA
QCBib29sIFdLUHJlZmVyZW5jZXNHZXRYU1NBdWRpdG9yRW5hYmxlZChXCiB2b2lkIFdLUHJlZmVy
ZW5jZXNTZXRGcmFtZUZsYXR0ZW5pbmdFbmFibGVkKFdLUHJlZmVyZW5jZXNSZWYgcHJlZmVyZW5j
ZXNSZWYsIGJvb2wgZnJhbWVGbGF0dGVuaW5nRW5hYmxlZCkKIHsKICAgICAvLyBGSVhNRTogRXhw
b3NlIG1vcmUgZnJhbWUgZmxhdHRlbmluZyB2YWx1ZXMuCi0gICAgdG9JbXBsKHByZWZlcmVuY2Vz
UmVmKS0+c2V0RnJhbWVGbGF0dGVuaW5nKGZyYW1lRmxhdHRlbmluZ0VuYWJsZWQgPyBXZWJDb3Jl
OjpGcmFtZUZsYXR0ZW5pbmdGdWxseUVuYWJsZWQgOiBXZWJDb3JlOjpGcmFtZUZsYXR0ZW5pbmdE
aXNhYmxlZCk7CisgICAgdG9JbXBsKHByZWZlcmVuY2VzUmVmKS0+c2V0RnJhbWVGbGF0dGVuaW5n
KGZyYW1lRmxhdHRlbmluZ0VuYWJsZWQgPyBXZWJDb3JlOjpGcmFtZUZsYXR0ZW5pbmc6OkZ1bGx5
RW5hYmxlZCA6IFdlYkNvcmU6OkZyYW1lRmxhdHRlbmluZzo6RGlzYWJsZWQpOwogfQogCiBib29s
IFdLUHJlZmVyZW5jZXNHZXRGcmFtZUZsYXR0ZW5pbmdFbmFibGVkKFdLUHJlZmVyZW5jZXNSZWYg
cHJlZmVyZW5jZXNSZWYpCiB7CiAgICAgLy8gRklYTUU6IEV4cG9zZSBtb3JlIGZyYW1lIGZsYXR0
ZW5pbmcgdmFsdWVzLgotICAgIHJldHVybiB0b0ltcGwocHJlZmVyZW5jZXNSZWYpLT5mcmFtZUZs
YXR0ZW5pbmcoKSAhPSBXZWJDb3JlOjpGcmFtZUZsYXR0ZW5pbmdEaXNhYmxlZDsKKyAgICByZXR1
cm4gdG9JbXBsKHByZWZlcmVuY2VzUmVmKS0+ZnJhbWVGbGF0dGVuaW5nKCkgIT0gV2ViQ29yZTo6
RnJhbWVGbGF0dGVuaW5nOjpEaXNhYmxlZDsKIH0KIAogdm9pZCBXS1ByZWZlcmVuY2VzU2V0UGx1
Z2luc0VuYWJsZWQoV0tQcmVmZXJlbmNlc1JlZiBwcmVmZXJlbmNlc1JlZiwgYm9vbCBwbHVnaW5z
RW5hYmxlZCkKSW5kZXg6IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFNl
dHRpbmdzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xp
Yi9XZWJLaXRTZXR0aW5ncy5jcHAJKHJldmlzaW9uIDIyMzM2NikKKysrIFNvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFNldHRpbmdzLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MTYyMCw3ICsxNjIwLDcgQEAgZ2Jvb2xlYW4gd2Via2l0X3NldHRpbmdzX2dldF9lbmFibGVfZnJh
bQogICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKFdFQktJVF9JU19TRVRUSU5HUyhzZXR0aW5ncyks
IEZBTFNFKTsKIAogICAgIC8vIEZJWE1FOiBFeHBvc2UgbW9yZSBmcmFtZSBmbGF0dGVuaW5nIHZh
bHVlcy4KLSAgICByZXR1cm4gc2V0dGluZ3MtPnByaXYtPnByZWZlcmVuY2VzLT5mcmFtZUZsYXR0
ZW5pbmcoKSAhPSBXZWJDb3JlOjpGcmFtZUZsYXR0ZW5pbmdEaXNhYmxlZDsKKyAgICByZXR1cm4g
c2V0dGluZ3MtPnByaXYtPnByZWZlcmVuY2VzLT5mcmFtZUZsYXR0ZW5pbmcoKSAhPSBXZWJDb3Jl
OjpGcmFtZUZsYXR0ZW5pbmc6OkRpc2FibGVkOwogfQogCiAvKioKQEAgLTE2MzUsMTIgKzE2MzUs
MTIgQEAgdm9pZCB3ZWJraXRfc2V0dGluZ3Nfc2V0X2VuYWJsZV9mcmFtZV9mbAogICAgIGdfcmV0
dXJuX2lmX2ZhaWwoV0VCS0lUX0lTX1NFVFRJTkdTKHNldHRpbmdzKSk7CiAKICAgICBXZWJLaXRT
ZXR0aW5nc1ByaXZhdGUqIHByaXYgPSBzZXR0aW5ncy0+cHJpdjsKLSAgICBib29sIGN1cnJlbnRW
YWx1ZSA9IHByaXYtPnByZWZlcmVuY2VzLT5mcmFtZUZsYXR0ZW5pbmcoKSAhPSBXZWJDb3JlOjpG
cmFtZUZsYXR0ZW5pbmdEaXNhYmxlZDsKKyAgICBib29sIGN1cnJlbnRWYWx1ZSA9IHByaXYtPnBy
ZWZlcmVuY2VzLT5mcmFtZUZsYXR0ZW5pbmcoKSAhPSBXZWJDb3JlOjpGcmFtZUZsYXR0ZW5pbmc6
OkRpc2FibGVkOwogICAgIGlmIChjdXJyZW50VmFsdWUgPT0gZW5hYmxlZCkKICAgICAgICAgcmV0
dXJuOwogCiAgICAgLy8gRklYTUU6IEV4cG9zZSBtb3JlIGZyYW1lIGZsYXR0ZW5pbmcgdmFsdWVz
LgotICAgIHByaXYtPnByZWZlcmVuY2VzLT5zZXRGcmFtZUZsYXR0ZW5pbmcoZW5hYmxlZCA/IFdl
YkNvcmU6OkZyYW1lRmxhdHRlbmluZ0Z1bGx5RW5hYmxlZCA6IFdlYkNvcmU6OkZyYW1lRmxhdHRl
bmluZ0Rpc2FibGVkKTsKKyAgICBwcml2LT5wcmVmZXJlbmNlcy0+c2V0RnJhbWVGbGF0dGVuaW5n
KGVuYWJsZWQgPyBXZWJDb3JlOjpGcmFtZUZsYXR0ZW5pbmc6OkZ1bGx5RW5hYmxlZCA6IFdlYkNv
cmU6OkZyYW1lRmxhdHRlbmluZzo6RGlzYWJsZWQpOwogICAgIGdfb2JqZWN0X25vdGlmeShHX09C
SkVDVChzZXR0aW5ncyksICJlbmFibGUtZnJhbWUtZmxhdHRlbmluZyIpOwogfQogCkluZGV4OiBT
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGUuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9J
bmplY3RlZEJ1bmRsZS5jcHAJKHJldmlzaW9uIDIyMzM2NikKKysrIFNvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTMwMCw3ICszMDAsNyBAQCB2b2lkIEluamVjdGVkQnVuZGxlOjpzZXRGcmFtZUZsYXR0ZW5p
bmdFCiB7CiAgICAgY29uc3QgSGFzaFNldDxQYWdlKj4mIHBhZ2VzID0gUGFnZUdyb3VwOjpwYWdl
R3JvdXAocGFnZUdyb3VwLT5pZGVudGlmaWVyKCkpLT5wYWdlcygpOwogICAgIGZvciAoSGFzaFNl
dDxQYWdlKj46Oml0ZXJhdG9yIGl0ZXIgPSBwYWdlcy5iZWdpbigpOyBpdGVyICE9IHBhZ2VzLmVu
ZCgpOyArK2l0ZXIpCi0gICAgICAgICgqaXRlciktPnNldHRpbmdzKCkuc2V0RnJhbWVGbGF0dGVu
aW5nKGVuYWJsZWQgPyBGcmFtZUZsYXR0ZW5pbmdGdWxseUVuYWJsZWQgOiBGcmFtZUZsYXR0ZW5p
bmdEaXNhYmxlZCk7CisgICAgICAgICgqaXRlciktPnNldHRpbmdzKCkuc2V0RnJhbWVGbGF0dGVu
aW5nKGVuYWJsZWQgPyBGcmFtZUZsYXR0ZW5pbmc6OkZ1bGx5RW5hYmxlZCA6IEZyYW1lRmxhdHRl
bmluZzo6RGlzYWJsZWQpOwogfQogCiB2b2lkIEluamVjdGVkQnVuZGxlOjpzZXRBc3luY0ZyYW1l
U2Nyb2xsaW5nRW5hYmxlZChXZWJQYWdlR3JvdXBQcm94eSogcGFnZUdyb3VwLCBib29sIGVuYWJs
ZWQpCkluZGV4OiBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hy
b21lQ2xpZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcAkocmV2aXNpb24gMjIzMzY2KQorKysgU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTU2Niw3ICs1NjYsOSBAQCBQbGF0Zm9ybVBhZ2VDbGllbnQgV2Vi
Q2hyb21lQ2xpZW50OjpwbGF0CiAKIHZvaWQgV2ViQ2hyb21lQ2xpZW50Ojpjb250ZW50c1NpemVD
aGFuZ2VkKEZyYW1lJiBmcmFtZSwgY29uc3QgSW50U2l6ZSYgc2l6ZSkgY29uc3QKIHsKLSAgICBp
ZiAobV9wYWdlLmNvcmVQYWdlKCktPnNldHRpbmdzKCkuZWZmZWN0aXZlRnJhbWVGbGF0dGVuaW5n
KCkgPT0gRnJhbWVGbGF0dGVuaW5nRGlzYWJsZWQpIHsKKyAgICBGcmFtZVZpZXcqIGZyYW1lVmll
dyA9IGZyYW1lLnZpZXcoKTsKKworICAgIGlmIChmcmFtZVZpZXcgJiYgZnJhbWVWaWV3LT5lZmZl
Y3RpdmVGcmFtZUZsYXR0ZW5pbmcoKSA9PSBGcmFtZUZsYXR0ZW5pbmc6OkRpc2FibGVkKSB7CiAg
ICAgICAgIFdlYkZyYW1lKiBsYXJnZXN0RnJhbWUgPSBmaW5kTGFyZ2VzdEZyYW1lSW5GcmFtZVNl
dChtX3BhZ2UpOwogICAgICAgICBpZiAobGFyZ2VzdEZyYW1lICE9IG1fY2FjaGVkRnJhbWVTZXRM
YXJnZXN0RnJhbWUuZ2V0KCkpIHsKICAgICAgICAgICAgIG1fY2FjaGVkRnJhbWVTZXRMYXJnZXN0
RnJhbWUgPSBsYXJnZXN0RnJhbWU7CkBAIC01ODEsNyArNTgzLDYgQEAgdm9pZCBXZWJDaHJvbWVD
bGllbnQ6OmNvbnRlbnRzU2l6ZUNoYW5nZQogCiAgICAgbV9wYWdlLmRyYXdpbmdBcmVhKCktPm1h
aW5GcmFtZUNvbnRlbnRTaXplQ2hhbmdlZChzaXplKTsKIAotICAgIEZyYW1lVmlldyogZnJhbWVW
aWV3ID0gZnJhbWUudmlldygpOwogICAgIGlmIChmcmFtZVZpZXcgJiYgIWZyYW1lVmlldy0+ZGVs
ZWdhdGVzU2Nyb2xsaW5nKCkpICB7CiAgICAgICAgIGJvb2wgaGFzSG9yaXpvbnRhbFNjcm9sbGJh
ciA9IGZyYW1lVmlldy0+aG9yaXpvbnRhbFNjcm9sbGJhcigpOwogICAgICAgICBib29sIGhhc1Zl
cnRpY2FsU2Nyb2xsYmFyID0gZnJhbWVWaWV3LT52ZXJ0aWNhbFNjcm9sbGJhcigpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>323895</attachid>
            <date>2017-10-16 08:15:53 -0700</date>
            <delta_ts>2017-10-16 08:36:09 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-178330-20171016081526.patch</filename>
            <type>text/plain</type>
            <size>29873</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIyMzM2NikKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDU3IEBACisyMDE3LTEwLTE2ICBTYW0gV2Vp
bmlnICA8c2FtQHdlYmtpdC5vcmc+CisKKyAgICAgICAgW1NldHRpbmdzXSBSZW1vdmUgYWxsIGN1
c3RvbSBjb2RlIGZyb20gU2V0dGluZ3MuaC9jcHAKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTE3ODMzMAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIFJlbW92ZXMgdGhlIHR3byByZW1haW5pbmcgZnVuY3Rpb25z
IG91dCBvZiBTZXR0aW5ncyBwYXZpbmcgdGhlIHdheQorICAgICAgICBmb3IgdGhlIGZpbGUgdG8g
YmUgZ2VuZXJhdGVkLgorICAgICAgICAKKyAgICAgICAgLSBwYWdlRGVzdHJveWVkIHdhcyBtb3Zl
ZCBkb3duIGludG8gU2V0dGluZ3NCYXNlLgorICAgICAgICAtIGVmZmVjdGl2ZUZyYW1lRmxhdHRl
bmluZyB3YXMgbW92ZWQgdG8gRnJhbWVWaWV3ICh0byByZWR1Y2UgdGhlIG5lZWQKKyAgICAgICAg
ICBmb3IgYWRkaXRpb25hbCBpbmNsdWRlcywgdGhlIEZyYW1lRmxhdHRlbmluZyBlbnVtIHdhcyBj
b252ZXJ0ZWQgdG8KKyAgICAgICAgICBhbiBlbnVtIGNsYXNzIHRvIGFsbG93IGl0IHRvIGJlIGZv
cndhcmQgZGVjbGFyZWQpLgorICAgICAgICAgIAorICAgICAgICBBbHNvIG1vdmVzIGRlZmF1bHQg
dmFsdWVzIGludG8gU2V0dGluZ3NEZWZhdWx0VmFsdWVzLmgKKworICAgICAgICAqIFdlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgCisgICAgICAgICAgICBBZGQgbmV3
IGZpbGVzLgorICAgICAgICAKKyAgICAgICAgKiBwYWdlL0ZyYW1lVmlldy5jcHA6CisgICAgICAg
ICogcGFnZS9GcmFtZVZpZXcuaDoKKworICAgICAgICAgICAgTW92ZSBlZmZlY3RpdmVGcmFtZUZs
YXR0ZW5pbmcgZnVuY3Rpb24gaGVyZSBmcm9tIFNldHRpbmdzLgorCisgICAgICAgICogcGFnZS9T
ZXR0aW5ncy5jcHA6CisgICAgICAgICogcGFnZS9TZXR0aW5ncy5oOgorCisgICAgICAgICAgICBN
b3ZlIGVmZmVjdGl2ZUZyYW1lRmxhdHRlbmluZywgcGFnZURlc3Ryb3llZCBhbmQgZGVmYXVsdCB2
YWx1ZXMgb3V0LgorCisgICAgICAgICogcGFnZS9TZXR0aW5ncy5pbjoKKyAgICAgICAgCisgICAg
ICAgICAgICBVcGRhdGUgZm9yIHR1cm5pbmcgRnJhbWVGbGF0dGVuaW5nIGludG8gYW4gZW51bSBj
bGFzcy4KKyAgICAgICAgCisgICAgICAgICogcGFnZS9TZXR0aW5nc0Jhc2UuaDoKKworICAgICAg
ICAgICAgVHVybiBGcmFtZUZsYXR0ZW5pbmcgaW50byBhbiBlbnVtIGNsYXNzIGFuZCBtb3ZlIHBh
Z2VEZXN0cm95ZWQgaGVyZS4KKworICAgICAgICAqIHBhZ2UvU2V0dGluZ3NEZWZhdWx0VmFsdWVz
Lmg6IEFkZGVkLgorCisgICAgICAgICAgICBNb3ZlIGFsbCB0aGUgZGVmYXVsdCB2YWx1ZXMgZnJv
bSBTZXR0aW5ncyBoZXJlLgorCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckZyYW1lU2V0LmNw
cDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVySUZyYW1lLmNwcDoKKyAgICAgICAgKiByZW5k
ZXJpbmcvUmVuZGVyVmlldy5jcHA6CisKKyAgICAgICAgICAgIEdldCBlZmZlY3RpdmVGcmFtZUZs
YXR0ZW5pbmcgZnJvbSB0aGUgRnJhbWVWaWV3LgorCisgICAgICAgICogdGVzdGluZy9JbnRlcm5h
bFNldHRpbmdzLmNwcDoKKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuaDoKKyAg
ICAgICAgCisgICAgICAgICAgICBVcGRhdGUgbm93IHRoYXQgRnJhbWVGbGF0dGVuaW5nIGlzIGFu
IGVudW0gY2xhc3MuCisKIDIwMTctMTAtMTYgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBh
cHBsZS5jb20+CiAKICAgICAgICAgT24gVG9ULCBldmVudC5kYXRhVHJhbnNmZXIuZ2V0RGF0YSgi
dGV4dC91cmktbGlzdCIpIHJldHVybnMgYW4gZW1wdHkgc3RyaW5nIHdoZW4gZHJhZ2dpbmcgYW4g
aW1hZ2UKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oJKHJldmlzaW9uIDIyMzM2NikKKysrIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkod29ya2luZyBjb3B5KQpAQCAtMTE0ODQsNiArMTE0
ODQsNyBAQAogCQk3QzY1NzlFRDFFMDA4NTY2MDBFM0EyN0EgLyogSlNBcHBsZVBheVNoaXBwaW5n
TWV0aG9kLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTQXBwbGVQ
YXlTaGlwcGluZ01ldGhvZC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdDNjU3
OUVFMUUwMDg1NjYwMEUzQTI3QSAvKiBKU0FwcGxlUGF5U2hpcHBpbmdNZXRob2QuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNBcHBsZVBheVNoaXBwaW5nTWV0aG9kLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdDNjc1MkJBMUIwNkU4MjAwMEMyNzlDQiAvKiBO
b25FbGVtZW50UGFyZW50Tm9kZS5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gTm9uRWxlbWVu
dFBhcmVudE5vZGUuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk3QzZFRkVFQTFG
OTQ2QTJFMDBGRkFENDEgLyogU2V0dGluZ3NEZWZhdWx0VmFsdWVzLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFNldHRpbmdzRGVmYXVsdFZhbHVlcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3
QzczRkIwNTE5MUVGNDE2MDA3REUwNjEgLyogVXNlck1lc3NhZ2VIYW5kbGVyc05hbWVzcGFjZS5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBVc2VyTWVzc2FnZUhhbmRs
ZXJzTmFtZXNwYWNlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0M3M0ZCMDYx
OTFFRjQxNzAwN0RFMDYxIC8qIFVzZXJNZXNzYWdlSGFuZGxlcnNOYW1lc3BhY2UuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVXNlck1lc3NhZ2VIYW5kbGVyc05hbWVzcGFjZS5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3QzczRkIwOTE5MUVGNDlGMDA3REUwNjEg
LyogVXNlck1lc3NhZ2VIYW5kbGVyc05hbWVzcGFjZS5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gVXNlck1lc3NhZ2VIYW5k
bGVyc05hbWVzcGFjZS5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xOTg4NCw2
ICsxOTg4NSw3IEBACiAJCQkJQkM1OURFRjgxNjlERURDMzAwMTZBQzM0IC8qIFNldHRpbmdzLmlu
ICovLAogCQkJCTdDQzY2MDlCMUY5MzA1NzkwMEQ1MDBFOSAvKiBTZXR0aW5nc0Jhc2UuY3BwICov
LAogCQkJCTdDQzY2MDk5MUY5MzA1NzgwMEQ1MDBFOSAvKiBTZXR0aW5nc0Jhc2UuaCAqLywKKwkJ
CQk3QzZFRkVFQTFGOTQ2QTJFMDBGRkFENDEgLyogU2V0dGluZ3NEZWZhdWx0VmFsdWVzLmggKi8s
CiAJCQkJNUM2ODhBQTIxRDM4MTI2RjAwMEI1NEZBIC8qIFNvY2tldFByb3ZpZGVyLmNwcCAqLywK
IAkJCQk1QzdDODhENzFEMEYxRjJCMDA5RDJGNkQgLyogU29ja2V0UHJvdmlkZXIuaCAqLywKIAkJ
CQk2MjZDREUwQzExNDA0MjRDMDAxRTVBNjggLyogU3BhdGlhbE5hdmlnYXRpb24uY3BwICovLApJ
bmRleDogU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcAkocmV2aXNpb24gMjIzMzY2KQorKysgU291
cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01NjYsOSAr
NTY2LDIxIEBAIHZvaWQgRnJhbWVWaWV3OjpzZXRNYXJnaW5IZWlnaHQoTGF5b3V0VW4KICAgICBt
X21hcmdpbnMuc2V0SGVpZ2h0KGgpOwogfQogCitGcmFtZUZsYXR0ZW5pbmcgRnJhbWVWaWV3Ojpl
ZmZlY3RpdmVGcmFtZUZsYXR0ZW5pbmcoKSBjb25zdAoreworI2lmIFBMQVRGT1JNKElPUykKKyAg
ICAvLyBPbiBpT1Mgd2hlbiBhc3luYyBmcmFtZSBzY3JvbGxpbmcgaXMgZW5hYmxlZCwgaXQgZG9l
cyBub3QgbWFrZSBzZW5zZSB0byB1c2UgZnVsbCBmcmFtZSBmbGF0dGVuaW5nLgorICAgIC8vIElu
IHRoYXQgY2FzZSwgd2UganVzdCBjb25zaWRlciB0aGF0IGZyYW1lIGZsYXR0ZW5pbmcgaXMgZGlz
YWJsZWQuIFRoaXMgYWxsb3dzIHBlb3BsZSB0byB0ZXN0CisgICAgLy8gZnJhbWUgc2Nyb2xsaW5n
IG9uIGlPUyBieSBlbmFibGluZyAiQXN5bmMgRnJhbWUgU2Nyb2xsaW5nIiB2aWEgdGhlIFNhZmFy
aSBtZW51LgorICAgIGlmIChmcmFtZSgpLnNldHRpbmdzKCkuYXN5bmNGcmFtZVNjcm9sbGluZ0Vu
YWJsZWQoKSAmJiBmcmFtZSgpLnNldHRpbmdzKCkuZnJhbWVGbGF0dGVuaW5nKCkgPT0gRnJhbWVG
bGF0dGVuaW5nOjpGdWxseUVuYWJsZWQpCisgICAgICAgIHJldHVybiBGcmFtZUZsYXR0ZW5pbmc6
OkRpc2FibGVkOworI2VuZGlmCisgICAgcmV0dXJuIGZyYW1lKCkuc2V0dGluZ3MoKS5mcmFtZUZs
YXR0ZW5pbmcoKTsKK30KKwogYm9vbCBGcmFtZVZpZXc6OmZyYW1lRmxhdHRlbmluZ0VuYWJsZWQo
KSBjb25zdAogewotICAgIHJldHVybiBmcmFtZSgpLnNldHRpbmdzKCkuZWZmZWN0aXZlRnJhbWVG
bGF0dGVuaW5nKCkgIT0gRnJhbWVGbGF0dGVuaW5nRGlzYWJsZWQ7CisgICAgcmV0dXJuIGVmZmVj
dGl2ZUZyYW1lRmxhdHRlbmluZygpICE9IEZyYW1lRmxhdHRlbmluZzo6RGlzYWJsZWQ7CiB9CiAK
IGJvb2wgRnJhbWVWaWV3Ojppc0ZyYW1lRmxhdHRlbmluZ1ZhbGlkRm9yVGhpc0ZyYW1lKCkgY29u
c3QKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuaAkocmV2aXNpb24gMjIzMzY2KQorKysgU291
cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuaAkod29ya2luZyBjb3B5KQpAQCAtNjEsNiArNjEs
OCBAQCBjbGFzcyBSZW5kZXJTdHlsZTsKIGNsYXNzIFJlbmRlclZpZXc7CiBjbGFzcyBSZW5kZXJX
aWRnZXQ7CiAKK2VudW0gY2xhc3MgRnJhbWVGbGF0dGVuaW5nOworCiBQYWdpbmF0aW9uOjpNb2Rl
IHBhZ2luYXRpb25Nb2RlRm9yUmVuZGVyU3R5bGUoY29uc3QgUmVuZGVyU3R5bGUmKTsKIAogY2xh
c3MgRnJhbWVWaWV3IGZpbmFsIDogcHVibGljIFNjcm9sbFZpZXcgewpAQCAtNjM1LDYgKzYzNyw4
IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgc2V0U3BlY3VsYXRpdmVUaWxpbmdEZWxheURpc2FibGVk
Rm9yVGVzdGluZyhib29sIGRpc2FibGVkKSB7IG1fc3BlY3VsYXRpdmVUaWxpbmdEZWxheURpc2Fi
bGVkRm9yVGVzdGluZyA9IGRpc2FibGVkOyB9CiAKKyAgICBXRUJDT1JFX0VYUE9SVCBGcmFtZUZs
YXR0ZW5pbmcgZWZmZWN0aXZlRnJhbWVGbGF0dGVuaW5nKCkgY29uc3Q7CisKIHByb3RlY3RlZDoK
ICAgICBib29sIHNjcm9sbENvbnRlbnRzRmFzdFBhdGgoY29uc3QgSW50U2l6ZSYgc2Nyb2xsRGVs
dGEsIGNvbnN0IEludFJlY3QmIHJlY3RUb1Njcm9sbCwgY29uc3QgSW50UmVjdCYgY2xpcFJlY3Qp
IGZpbmFsOwogICAgIHZvaWQgc2Nyb2xsQ29udGVudHNTbG93UGF0aChjb25zdCBJbnRSZWN0JiB1
cGRhdGVSZWN0KSBmaW5hbDsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuY3BwCShyZXZpc2lv
biAyMjMzNjYpCisrKyBTb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMjYsOTcgKzI2LDExIEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAi
U2V0dGluZ3MuaCIKIAotI2luY2x1ZGUgIkF1ZGlvU2Vzc2lvbi5oIgotI2luY2x1ZGUgIkJhY2tG
b3J3YXJkQ29udHJvbGxlci5oIgotI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlTG9hZGVyLmgiCi0j
aW5jbHVkZSAiQ29va2llU3RvcmFnZS5oIgotI2luY2x1ZGUgIkRPTVRpbWVyLmgiCi0jaW5jbHVk
ZSAiRGF0YWJhc2UuaCIKLSNpbmNsdWRlICJEb2N1bWVudC5oIgotI2luY2x1ZGUgIkZvbnRDYXNj
YWRlLmgiCi0jaW5jbHVkZSAiRm9udEdlbmVyaWNGYW1pbGllcy5oIgotI2luY2x1ZGUgIkZyYW1l
VHJlZS5oIgotI2luY2x1ZGUgIkZyYW1lVmlldy5oIgotI2luY2x1ZGUgIkhUTUxNZWRpYUVsZW1l
bnQuaCIKLSNpbmNsdWRlICJIaXN0b3J5SXRlbS5oIgotI2luY2x1ZGUgIk1haW5GcmFtZS5oIgog
I2luY2x1ZGUgIlBhZ2UuaCIKLSNpbmNsdWRlICJTdG9yYWdlTWFwLmgiCi0jaW5jbHVkZSA8bGlt
aXRzPgotI2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgotI2luY2x1ZGUgPHd0Zi9TdGRM
aWJFeHRyYXMuaD4KKyNpbmNsdWRlICJTZXR0aW5nc0RlZmF1bHRWYWx1ZXMuaCIKIAogbmFtZXNw
YWNlIFdlYkNvcmUgewogCi0vLyBOT1RFcwotLy8gIDEpIEVkaXRpbmdNYWNCZWhhdmlvciBjb21w
cmlzZXMgVGlnZXIsIExlb3BhcmQsIFNub3dMZW9wYXJkIGFuZCBpT1MgYnVpbGRzLCBhcyB3ZWxs
IGFzIFF0V2ViS2l0IHdoZW4gYnVpbHQgb24gTWFjOwotLy8gIDIpIEVkaXRpbmdXaW5kb3dzQmVo
YXZpb3IgY29tcHJpc2VzIFdpbjMyIGJ1aWxkOwotLy8gIDMpIEVkaXRpbmdVbml4QmVoYXZpb3Ig
Y29tcHJpc2VzIGFsbCB1bml4LWJhc2VkIHN5c3RlbXMsIGJ1dCBEYXJ3aW4vTWFjT1MgKGFuZCB0
aGVuIGFidXNpbmcgdGhlIHRlcm1pbm9sb2d5KTsKLS8vIDk5KSBNYWNFZGl0aW5nQmVoYXZpb3Ig
aXMgdXNlZCBhcyBhIGZhbGxiYWNrLgotc3RhdGljIEVkaXRpbmdCZWhhdmlvclR5cGUgZWRpdGlu
Z0JlaGF2aW9yVHlwZUZvclBsYXRmb3JtKCkKLXsKLSAgICByZXR1cm4KLSNpZiBQTEFURk9STShJ
T1MpCi0gICAgRWRpdGluZ0lPU0JlaGF2aW9yCi0jZWxpZiBPUyhEQVJXSU4pCi0gICAgRWRpdGlu
Z01hY0JlaGF2aW9yCi0jZWxpZiBPUyhXSU5ET1dTKQotICAgIEVkaXRpbmdXaW5kb3dzQmVoYXZp
b3IKLSNlbGlmIE9TKFVOSVgpCi0gICAgRWRpdGluZ1VuaXhCZWhhdmlvcgotI2Vsc2UKLSAgICAv
LyBGYWxsYmFjawotICAgIEVkaXRpbmdNYWNCZWhhdmlvcgotI2VuZGlmCi0gICAgOwotfQotCi0j
aWYgUExBVEZPUk0oQ09DT0EpCi1zdGF0aWMgY29uc3QgYm9vbCBkZWZhdWx0WW91VHViZUZsYXNo
UGx1Z2luUmVwbGFjZW1lbnRFbmFibGVkID0gdHJ1ZTsKLSNlbHNlCi1zdGF0aWMgY29uc3QgYm9v
bCBkZWZhdWx0WW91VHViZUZsYXNoUGx1Z2luUmVwbGFjZW1lbnRFbmFibGVkID0gZmFsc2U7Ci0j
ZW5kaWYKLQotI2lmIFBMQVRGT1JNKElPUykKLXN0YXRpYyBjb25zdCBib29sIGRlZmF1bHRGaXhl
ZEJhY2tncm91bmRzUGFpbnRSZWxhdGl2ZVRvRG9jdW1lbnQgPSB0cnVlOwotc3RhdGljIGNvbnN0
IGJvb2wgZGVmYXVsdEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdGb3JGaXhlZFBvc2l0aW9uRW5hYmxl
ZCA9IHRydWU7Ci1zdGF0aWMgY29uc3QgYm9vbCBkZWZhdWx0QWxsb3dzSW5saW5lTWVkaWFQbGF5
YmFjayA9IGZhbHNlOwotc3RhdGljIGNvbnN0IGJvb2wgZGVmYXVsdElubGluZU1lZGlhUGxheWJh
Y2tSZXF1aXJlc1BsYXlzSW5saW5lQXR0cmlidXRlID0gdHJ1ZTsKLXN0YXRpYyBjb25zdCBib29s
IGRlZmF1bHRWaWRlb1BsYXliYWNrUmVxdWlyZXNVc2VyR2VzdHVyZSA9IHRydWU7Ci1zdGF0aWMg
Y29uc3QgYm9vbCBkZWZhdWx0QXVkaW9QbGF5YmFja1JlcXVpcmVzVXNlckdlc3R1cmUgPSB0cnVl
Owotc3RhdGljIGNvbnN0IGJvb2wgZGVmYXVsdE1lZGlhRGF0YUxvYWRzQXV0b21hdGljYWxseSA9
IGZhbHNlOwotc3RhdGljIGNvbnN0IGJvb2wgZGVmYXVsdFNob3VsZFJlc3BlY3RJbWFnZU9yaWVu
dGF0aW9uID0gdHJ1ZTsKLXN0YXRpYyBjb25zdCBib29sIGRlZmF1bHRJbWFnZVN1YnNhbXBsaW5n
RW5hYmxlZCA9IHRydWU7Ci1zdGF0aWMgY29uc3QgYm9vbCBkZWZhdWx0U2Nyb2xsaW5nVHJlZUlu
Y2x1ZGVzRnJhbWVzID0gdHJ1ZTsKLXN0YXRpYyBjb25zdCBib29sIGRlZmF1bHRNZWRpYUNvbnRy
b2xzU2NhbGVXaXRoUGFnZVpvb20gPSB0cnVlOwotc3RhdGljIGNvbnN0IGJvb2wgZGVmYXVsdFF1
aWNrVGltZVBsdWdpblJlcGxhY2VtZW50RW5hYmxlZCA9IHRydWU7Ci0jZWxzZQotc3RhdGljIGNv
bnN0IGJvb2wgZGVmYXVsdEZpeGVkQmFja2dyb3VuZHNQYWludFJlbGF0aXZlVG9Eb2N1bWVudCA9
IGZhbHNlOwotc3RhdGljIGNvbnN0IGJvb2wgZGVmYXVsdEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdG
b3JGaXhlZFBvc2l0aW9uRW5hYmxlZCA9IGZhbHNlOwotc3RhdGljIGNvbnN0IGJvb2wgZGVmYXVs
dEFsbG93c0lubGluZU1lZGlhUGxheWJhY2sgPSB0cnVlOwotc3RhdGljIGNvbnN0IGJvb2wgZGVm
YXVsdElubGluZU1lZGlhUGxheWJhY2tSZXF1aXJlc1BsYXlzSW5saW5lQXR0cmlidXRlID0gZmFs
c2U7Ci1zdGF0aWMgY29uc3QgYm9vbCBkZWZhdWx0VmlkZW9QbGF5YmFja1JlcXVpcmVzVXNlckdl
c3R1cmUgPSBmYWxzZTsKLXN0YXRpYyBjb25zdCBib29sIGRlZmF1bHRBdWRpb1BsYXliYWNrUmVx
dWlyZXNVc2VyR2VzdHVyZSA9IGZhbHNlOwotc3RhdGljIGNvbnN0IGJvb2wgZGVmYXVsdE1lZGlh
RGF0YUxvYWRzQXV0b21hdGljYWxseSA9IHRydWU7Ci1zdGF0aWMgY29uc3QgYm9vbCBkZWZhdWx0
U2hvdWxkUmVzcGVjdEltYWdlT3JpZW50YXRpb24gPSBmYWxzZTsKLXN0YXRpYyBjb25zdCBib29s
IGRlZmF1bHRJbWFnZVN1YnNhbXBsaW5nRW5hYmxlZCA9IGZhbHNlOwotc3RhdGljIGNvbnN0IGJv
b2wgZGVmYXVsdFNjcm9sbGluZ1RyZWVJbmNsdWRlc0ZyYW1lcyA9IGZhbHNlOwotc3RhdGljIGNv
bnN0IGJvb2wgZGVmYXVsdE1lZGlhQ29udHJvbHNTY2FsZVdpdGhQYWdlWm9vbSA9IHRydWU7Ci1z
dGF0aWMgY29uc3QgYm9vbCBkZWZhdWx0UXVpY2tUaW1lUGx1Z2luUmVwbGFjZW1lbnRFbmFibGVk
ID0gZmFsc2U7Ci0jZW5kaWYKLQotc3RhdGljIGNvbnN0IGJvb2wgZGVmYXVsdFJlcXVpcmVzVXNl
ckdlc3R1cmVUb0xvYWRWaWRlbyA9IHRydWU7Ci1zdGF0aWMgY29uc3QgYm9vbCBkZWZhdWx0QWxs
b3dzUGljdHVyZUluUGljdHVyZU1lZGlhUGxheWJhY2sgPSB0cnVlOwotCi1zdGF0aWMgY29uc3Qg
ZG91YmxlIGRlZmF1bHRJbmNyZW1lbnRhbFJlbmRlcmluZ1N1cHByZXNzaW9uVGltZW91dEluU2Vj
b25kcyA9IDU7Ci0jaWYgVVNFKFVOSUZJRURfVEVYVF9DSEVDS0lORykKLXN0YXRpYyBjb25zdCBi
b29sIGRlZmF1bHRVbmlmaWVkVGV4dENoZWNrZXJFbmFibGVkID0gdHJ1ZTsKLSNlbHNlCi1zdGF0
aWMgY29uc3QgYm9vbCBkZWZhdWx0VW5pZmllZFRleHRDaGVja2VyRW5hYmxlZCA9IGZhbHNlOwot
I2VuZGlmCi1zdGF0aWMgY29uc3QgYm9vbCBkZWZhdWx0U21hcnRJbnNlcnREZWxldGVFbmFibGVk
ID0gdHJ1ZTsKLXN0YXRpYyBjb25zdCBib29sIGRlZmF1bHRTZWxlY3RUcmFpbGluZ1doaXRlc3Bh
Y2VFbmFibGVkID0gZmFsc2U7Ci0KIFJlZjxTZXR0aW5ncz4gU2V0dGluZ3M6OmNyZWF0ZShQYWdl
KiBwYWdlKQogewogICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNldHRpbmdzKHBhZ2UpKTsKQEAg
LTEzNCwxNiArNDgsNCBAQCBTZXR0aW5nczo6flNldHRpbmdzKCkKIAogU0VUVElOR1NfU0VUVEVS
X0JPRElFUwogCi1GcmFtZUZsYXR0ZW5pbmcgU2V0dGluZ3M6OmVmZmVjdGl2ZUZyYW1lRmxhdHRl
bmluZygpCi17Ci0jaWYgUExBVEZPUk0oSU9TKQotICAgIC8vIE9uIGlPUyB3aGVuIGFzeW5jIGZy
YW1lIHNjcm9sbGluZyBpcyBlbmFibGVkLCBpdCBkb2VzIG5vdCBtYWtlIHNlbnNlIHRvIHVzZSBm
dWxsIGZyYW1lIGZsYXR0ZW5pbmcuCi0gICAgLy8gSW4gdGhhdCBjYXNlLCB3ZSBqdXN0IGNvbnNp
ZGVyIHRoYXQgZnJhbWUgZmxhdHRlbmluZyBpcyBkaXNhYmxlZC4gVGhpcyBhbGxvd3MgcGVvcGxl
IHRvIHRlc3QKLSAgICAvLyBmcmFtZSBzY3JvbGxpbmcgb24gaU9TIGJ5IGVuYWJsaW5nICJBc3lu
YyBGcmFtZSBTY3JvbGxpbmciIHZpYSB0aGUgU2FmYXJpIG1lbnUuCi0gICAgaWYgKGFzeW5jRnJh
bWVTY3JvbGxpbmdFbmFibGVkKCkgJiYgZnJhbWVGbGF0dGVuaW5nKCkgPT0gRnJhbWVGbGF0dGVu
aW5nRnVsbHlFbmFibGVkKQotICAgICAgICByZXR1cm4gRnJhbWVGbGF0dGVuaW5nRGlzYWJsZWQ7
Ci0jZW5kaWYKLSAgICByZXR1cm4gZnJhbWVGbGF0dGVuaW5nKCk7Ci19Ci0KIH0gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmgJKHJldmlzaW9uIDIyMzM2NikK
KysrIFNvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuaAkod29ya2luZyBjb3B5KQpAQCAtMjcs
NiArMjcsOCBAQAogI3ByYWdtYSBvbmNlCiAKICNpbmNsdWRlICJTZXR0aW5nc0Jhc2UuaCIKKyNp
bmNsdWRlICJTZXR0aW5nc01hY3Jvcy5oIgorI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CiAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtMzYsMTggKzM4LDEyIEBAIHB1YmxpYzoKICAgICBz
dGF0aWMgUmVmPFNldHRpbmdzPiBjcmVhdGUoUGFnZSopOwogICAgIH5TZXR0aW5ncygpOwogCi0g
ICAgdm9pZCBwYWdlRGVzdHJveWVkKCkgeyBtX3BhZ2UgPSBudWxscHRyOyB9Ci0KICAgICBTRVRU
SU5HU19HRVRURVJTX0FORF9TRVRURVJTCiAKLQotICAgIFdFQkNPUkVfRVhQT1JUIEZyYW1lRmxh
dHRlbmluZyBlZmZlY3RpdmVGcmFtZUZsYXR0ZW5pbmcoKTsKLQogcHJpdmF0ZToKICAgICBleHBs
aWNpdCBTZXR0aW5ncyhQYWdlKik7CiAKICAgICBTRVRUSU5HU19NRU1CRVJfVkFSSUFCTEVTCi0K
IH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2Uv
U2V0dGluZ3MuaW4KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5p
bgkocmV2aXNpb24gMjIzMzY2KQorKysgU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5pbgko
d29ya2luZyBjb3B5KQpAQCAtMTc1LDcgKzE3NSw3IEBAIHNuYXBzaG90QWxsUGx1Z0lucyBpbml0
aWFsPWZhbHNlCiBhdXRvc3RhcnRPcmlnaW5QbHVnSW5TbmFwc2hvdHRpbmdFbmFibGVkIGluaXRp
YWw9dHJ1ZQogcHJpbWFyeVBsdWdJblNuYXBzaG90RGV0ZWN0aW9uRW5hYmxlZCBpbml0aWFsPXRy
dWUKIG1heGltdW1QbHVnSW5TbmFwc2hvdEF0dGVtcHRzIHR5cGU9dW5zaWduZWQsIGluaXRpYWw9
MjAKLWZyYW1lRmxhdHRlbmluZyB0eXBlPUZyYW1lRmxhdHRlbmluZywgaW5pdGlhbD1GcmFtZUZs
YXR0ZW5pbmdEaXNhYmxlZAorZnJhbWVGbGF0dGVuaW5nIHR5cGU9RnJhbWVGbGF0dGVuaW5nLCBp
bml0aWFsPUZyYW1lRmxhdHRlbmluZzo6RGlzYWJsZWQKIGFzeW5jRnJhbWVTY3JvbGxpbmdFbmFi
bGVkIGluaXRpYWw9ZmFsc2UKIAogd2ViU2VjdXJpdHlFbmFibGVkIGluaXRpYWw9dHJ1ZQpJbmRl
eDogU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5nc0Jhc2UuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzQmFzZS5oCShyZXZpc2lvbiAyMjMzNjYpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzQmFzZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMSw3ICsz
MSw3IEBACiAjaW5jbHVkZSAiRWRpdGluZ0JlaGF2aW9yVHlwZXMuaCIKICNpbmNsdWRlICJJbnRT
aXplLmgiCiAjaW5jbHVkZSAiU2VjdXJpdHlPcmlnaW4uaCIKLSNpbmNsdWRlICJTZXR0aW5nc01h
Y3Jvcy5oIgorI2luY2x1ZGUgIlN0b3JhZ2VNYXAuaCIKICNpbmNsdWRlICJUZXh0RmxhZ3MuaCIK
ICNpbmNsdWRlICJUaW1lci5oIgogI2luY2x1ZGUgIlVSTC5oIgpAQCAtODgsMTAgKzg4LDEwIEBA
IGVudW0gUERGSW1hZ2VDYWNoaW5nUG9saWN5IHsKICNlbmRpZgogfTsKIAotZW51bSBGcmFtZUZs
YXR0ZW5pbmcgewotICAgIEZyYW1lRmxhdHRlbmluZ0Rpc2FibGVkLAotICAgIEZyYW1lRmxhdHRl
bmluZ0VuYWJsZWRGb3JOb25GdWxsU2NyZWVuSUZyYW1lcywKLSAgICBGcmFtZUZsYXR0ZW5pbmdG
dWxseUVuYWJsZWQKK2VudW0gY2xhc3MgRnJhbWVGbGF0dGVuaW5nIHsKKyAgICBEaXNhYmxlZCwK
KyAgICBFbmFibGVkRm9yTm9uRnVsbFNjcmVlbklGcmFtZXMsCisgICAgRnVsbHlFbmFibGVkCiB9
OwogCiB0eXBlZGVmIHVuc2lnbmVkIERlYnVnT3ZlcmxheVJlZ2lvbnM7CkBAIC0xMDEsNiArMTAx
LDggQEAgY2xhc3MgU2V0dGluZ3NCYXNlIHsKIHB1YmxpYzoKICAgICB+U2V0dGluZ3NCYXNlKCk7
CiAKKyAgICB2b2lkIHBhZ2VEZXN0cm95ZWQoKSB7IG1fcGFnZSA9IG51bGxwdHI7IH0KKwogICAg
IGVudW0gY2xhc3MgRm9udExvYWRUaW1pbmdPdmVycmlkZSB7IE5vbmUsIEJsb2NrLCBTd2FwLCBG
YWlsdXJlIH07CiAKICAgICBlbnVtIGNsYXNzIEZvcmNlZEFjY2Vzc2liaWxpdHlWYWx1ZSB7IFN5
c3RlbSwgT24sIE9mZiB9OwpJbmRleDogU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5nc0RlZmF1
bHRWYWx1ZXMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzRGVm
YXVsdFZhbHVlcy5oCShub25leGlzdGVudCkKKysrIFNvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGlu
Z3NEZWZhdWx0VmFsdWVzLmgJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxMDAgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQg
SVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgIkVkaXRpbmdCZWhhdmlvclR5cGVzLmgi
CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworLy8gTk9URXMKKy8vICAxKSBFZGl0aW5nTWFjQmVo
YXZpb3IgY29tcHJpc2VzIFRpZ2VyLCBMZW9wYXJkLCBTbm93TGVvcGFyZCBhbmQgaU9TIGJ1aWxk
cywgYXMgd2VsbCBhcyBRdFdlYktpdCB3aGVuIGJ1aWx0IG9uIE1hYzsKKy8vICAyKSBFZGl0aW5n
V2luZG93c0JlaGF2aW9yIGNvbXByaXNlcyBXaW4zMiBidWlsZDsKKy8vICAzKSBFZGl0aW5nVW5p
eEJlaGF2aW9yIGNvbXByaXNlcyBhbGwgdW5peC1iYXNlZCBzeXN0ZW1zLCBidXQgRGFyd2luL01h
Y09TIChhbmQgdGhlbiBhYnVzaW5nIHRoZSB0ZXJtaW5vbG9neSk7CisvLyA5OSkgTWFjRWRpdGlu
Z0JlaGF2aW9yIGlzIHVzZWQgYXMgYSBmYWxsYmFjay4KK2lubGluZSBFZGl0aW5nQmVoYXZpb3JU
eXBlIGVkaXRpbmdCZWhhdmlvclR5cGVGb3JQbGF0Zm9ybSgpCit7CisjaWYgUExBVEZPUk0oSU9T
KQorICAgIHJldHVybiBFZGl0aW5nSU9TQmVoYXZpb3I7CisjZWxpZiBPUyhEQVJXSU4pCisgICAg
cmV0dXJuIEVkaXRpbmdNYWNCZWhhdmlvcjsKKyNlbGlmIE9TKFdJTkRPV1MpCisgICAgcmV0dXJu
IEVkaXRpbmdXaW5kb3dzQmVoYXZpb3I7CisjZWxpZiBPUyhVTklYKQorICAgIHJldHVybiBFZGl0
aW5nVW5peEJlaGF2aW9yOworI2Vsc2UKKyAgICAvLyBGYWxsYmFjaworICAgIHJldHVybiBFZGl0
aW5nTWFjQmVoYXZpb3I7CisjZW5kaWYKKyAgICAKK30KKworI2lmIFBMQVRGT1JNKENPQ09BKQor
c3RhdGljIGNvbnN0IGJvb2wgZGVmYXVsdFlvdVR1YmVGbGFzaFBsdWdpblJlcGxhY2VtZW50RW5h
YmxlZCA9IHRydWU7CisjZWxzZQorc3RhdGljIGNvbnN0IGJvb2wgZGVmYXVsdFlvdVR1YmVGbGFz
aFBsdWdpblJlcGxhY2VtZW50RW5hYmxlZCA9IGZhbHNlOworI2VuZGlmCisKKyNpZiBQTEFURk9S
TShJT1MpCitzdGF0aWMgY29uc3QgYm9vbCBkZWZhdWx0Rml4ZWRCYWNrZ3JvdW5kc1BhaW50UmVs
YXRpdmVUb0RvY3VtZW50ID0gdHJ1ZTsKK3N0YXRpYyBjb25zdCBib29sIGRlZmF1bHRBY2NlbGVy
YXRlZENvbXBvc2l0aW5nRm9yRml4ZWRQb3NpdGlvbkVuYWJsZWQgPSB0cnVlOworc3RhdGljIGNv
bnN0IGJvb2wgZGVmYXVsdEFsbG93c0lubGluZU1lZGlhUGxheWJhY2sgPSBmYWxzZTsKK3N0YXRp
YyBjb25zdCBib29sIGRlZmF1bHRJbmxpbmVNZWRpYVBsYXliYWNrUmVxdWlyZXNQbGF5c0lubGlu
ZUF0dHJpYnV0ZSA9IHRydWU7CitzdGF0aWMgY29uc3QgYm9vbCBkZWZhdWx0VmlkZW9QbGF5YmFj
a1JlcXVpcmVzVXNlckdlc3R1cmUgPSB0cnVlOworc3RhdGljIGNvbnN0IGJvb2wgZGVmYXVsdEF1
ZGlvUGxheWJhY2tSZXF1aXJlc1VzZXJHZXN0dXJlID0gdHJ1ZTsKK3N0YXRpYyBjb25zdCBib29s
IGRlZmF1bHRNZWRpYURhdGFMb2Fkc0F1dG9tYXRpY2FsbHkgPSBmYWxzZTsKK3N0YXRpYyBjb25z
dCBib29sIGRlZmF1bHRTaG91bGRSZXNwZWN0SW1hZ2VPcmllbnRhdGlvbiA9IHRydWU7CitzdGF0
aWMgY29uc3QgYm9vbCBkZWZhdWx0SW1hZ2VTdWJzYW1wbGluZ0VuYWJsZWQgPSB0cnVlOworc3Rh
dGljIGNvbnN0IGJvb2wgZGVmYXVsdFNjcm9sbGluZ1RyZWVJbmNsdWRlc0ZyYW1lcyA9IHRydWU7
CitzdGF0aWMgY29uc3QgYm9vbCBkZWZhdWx0TWVkaWFDb250cm9sc1NjYWxlV2l0aFBhZ2Vab29t
ID0gdHJ1ZTsKK3N0YXRpYyBjb25zdCBib29sIGRlZmF1bHRRdWlja1RpbWVQbHVnaW5SZXBsYWNl
bWVudEVuYWJsZWQgPSB0cnVlOworI2Vsc2UKK3N0YXRpYyBjb25zdCBib29sIGRlZmF1bHRGaXhl
ZEJhY2tncm91bmRzUGFpbnRSZWxhdGl2ZVRvRG9jdW1lbnQgPSBmYWxzZTsKK3N0YXRpYyBjb25z
dCBib29sIGRlZmF1bHRBY2NlbGVyYXRlZENvbXBvc2l0aW5nRm9yRml4ZWRQb3NpdGlvbkVuYWJs
ZWQgPSBmYWxzZTsKK3N0YXRpYyBjb25zdCBib29sIGRlZmF1bHRBbGxvd3NJbmxpbmVNZWRpYVBs
YXliYWNrID0gdHJ1ZTsKK3N0YXRpYyBjb25zdCBib29sIGRlZmF1bHRJbmxpbmVNZWRpYVBsYXli
YWNrUmVxdWlyZXNQbGF5c0lubGluZUF0dHJpYnV0ZSA9IGZhbHNlOworc3RhdGljIGNvbnN0IGJv
b2wgZGVmYXVsdFZpZGVvUGxheWJhY2tSZXF1aXJlc1VzZXJHZXN0dXJlID0gZmFsc2U7CitzdGF0
aWMgY29uc3QgYm9vbCBkZWZhdWx0QXVkaW9QbGF5YmFja1JlcXVpcmVzVXNlckdlc3R1cmUgPSBm
YWxzZTsKK3N0YXRpYyBjb25zdCBib29sIGRlZmF1bHRNZWRpYURhdGFMb2Fkc0F1dG9tYXRpY2Fs
bHkgPSB0cnVlOworc3RhdGljIGNvbnN0IGJvb2wgZGVmYXVsdFNob3VsZFJlc3BlY3RJbWFnZU9y
aWVudGF0aW9uID0gZmFsc2U7CitzdGF0aWMgY29uc3QgYm9vbCBkZWZhdWx0SW1hZ2VTdWJzYW1w
bGluZ0VuYWJsZWQgPSBmYWxzZTsKK3N0YXRpYyBjb25zdCBib29sIGRlZmF1bHRTY3JvbGxpbmdU
cmVlSW5jbHVkZXNGcmFtZXMgPSBmYWxzZTsKK3N0YXRpYyBjb25zdCBib29sIGRlZmF1bHRNZWRp
YUNvbnRyb2xzU2NhbGVXaXRoUGFnZVpvb20gPSB0cnVlOworc3RhdGljIGNvbnN0IGJvb2wgZGVm
YXVsdFF1aWNrVGltZVBsdWdpblJlcGxhY2VtZW50RW5hYmxlZCA9IGZhbHNlOworI2VuZGlmCisK
K3N0YXRpYyBjb25zdCBib29sIGRlZmF1bHRSZXF1aXJlc1VzZXJHZXN0dXJlVG9Mb2FkVmlkZW8g
PSB0cnVlOworc3RhdGljIGNvbnN0IGJvb2wgZGVmYXVsdEFsbG93c1BpY3R1cmVJblBpY3R1cmVN
ZWRpYVBsYXliYWNrID0gdHJ1ZTsKKworc3RhdGljIGNvbnN0IGRvdWJsZSBkZWZhdWx0SW5jcmVt
ZW50YWxSZW5kZXJpbmdTdXBwcmVzc2lvblRpbWVvdXRJblNlY29uZHMgPSA1OworI2lmIFVTRShV
TklGSUVEX1RFWFRfQ0hFQ0tJTkcpCitzdGF0aWMgY29uc3QgYm9vbCBkZWZhdWx0VW5pZmllZFRl
eHRDaGVja2VyRW5hYmxlZCA9IHRydWU7CisjZWxzZQorc3RhdGljIGNvbnN0IGJvb2wgZGVmYXVs
dFVuaWZpZWRUZXh0Q2hlY2tlckVuYWJsZWQgPSBmYWxzZTsKKyNlbmRpZgorc3RhdGljIGNvbnN0
IGJvb2wgZGVmYXVsdFNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCA9IHRydWU7CitzdGF0aWMgY29u
c3QgYm9vbCBkZWZhdWx0U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCA9IGZhbHNlOwor
Cit9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRnJhbWVTZXQuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGcmFtZVNldC5jcHAJ
KHJldmlzaW9uIDIyMzM2NikKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGcmFt
ZVNldC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTY1MSw3ICs2NTEsNyBAQCB2b2lkIFJlbmRlckZy
YW1lU2V0Ojpwb3NpdGlvbkZyYW1lc1dpdGhGCiAKIGJvb2wgUmVuZGVyRnJhbWVTZXQ6OmZsYXR0
ZW5GcmFtZVNldCgpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIHNldHRpbmdzKCkuZWZmZWN0aXZlRnJh
bWVGbGF0dGVuaW5nKCkgIT0gRnJhbWVGbGF0dGVuaW5nRGlzYWJsZWQ7CisgICAgcmV0dXJuIHZp
ZXcoKS5mcmFtZVZpZXcoKS5lZmZlY3RpdmVGcmFtZUZsYXR0ZW5pbmcoKSAhPSBGcmFtZUZsYXR0
ZW5pbmc6OkRpc2FibGVkOwogfQogCiB2b2lkIFJlbmRlckZyYW1lU2V0OjpzdGFydFJlc2l6aW5n
KEdyaWRBeGlzJiBheGlzLCBpbnQgcG9zaXRpb24pCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVySUZyYW1lLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVySUZyYW1lLmNwcAkocmV2aXNpb24gMjIzMzY2KQorKysgU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlcklGcmFtZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTc4LDcgKzc4
LDcgQEAgYm9vbCBSZW5kZXJJRnJhbWU6OmlzRnVsbFNjcmVlbklGcmFtZSgpIAogCiBib29sIFJl
bmRlcklGcmFtZTo6ZmxhdHRlbkZyYW1lKCkgY29uc3QKIHsKLSAgICBpZiAoc2V0dGluZ3MoKS5l
ZmZlY3RpdmVGcmFtZUZsYXR0ZW5pbmcoKSA9PSBGcmFtZUZsYXR0ZW5pbmdEaXNhYmxlZCkKKyAg
ICBpZiAodmlldygpLmZyYW1lVmlldygpLmVmZmVjdGl2ZUZyYW1lRmxhdHRlbmluZygpID09IEZy
YW1lRmxhdHRlbmluZzo6RGlzYWJsZWQpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIGlm
IChzdHlsZSgpLndpZHRoKCkuaXNGaXhlZCgpICYmIHN0eWxlKCkuaGVpZ2h0KCkuaXNGaXhlZCgp
KSB7CkBAIC04OSw3ICs4OSw3IEBAIGJvb2wgUmVuZGVySUZyYW1lOjpmbGF0dGVuRnJhbWUoKSBj
b25zdAogICAgICAgICBpZiAoc3R5bGUoKS53aWR0aCgpLnZhbHVlKCkgPD0gMCB8fCBzdHlsZSgp
LmhlaWdodCgpLnZhbHVlKCkgPD0gMCkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAg
ICAgLy8gRG8gbm90IGZsYXR0ZW4gImZ1bGxzY3JlZW4iIGlmcmFtZXMgb3IgdGhleSBjb3VsZCBi
ZWNvbWUgbGFyZ2VyIHRoYW4gdGhlIHZpZXdwb3J0LgotICAgICAgICBpZiAoc2V0dGluZ3MoKS5l
ZmZlY3RpdmVGcmFtZUZsYXR0ZW5pbmcoKSA8PSBGcmFtZUZsYXR0ZW5pbmdFbmFibGVkRm9yTm9u
RnVsbFNjcmVlbklGcmFtZXMgJiYgaXNGdWxsU2NyZWVuSUZyYW1lKCkpCisgICAgICAgIGlmICh2
aWV3KCkuZnJhbWVWaWV3KCkuZWZmZWN0aXZlRnJhbWVGbGF0dGVuaW5nKCkgPD0gRnJhbWVGbGF0
dGVuaW5nOjpFbmFibGVkRm9yTm9uRnVsbFNjcmVlbklGcmFtZXMgJiYgaXNGdWxsU2NyZWVuSUZy
YW1lKCkpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQogCkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVmlldy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlclZpZXcuY3BwCShyZXZpc2lvbiAyMjMzNjYpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVmlldy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTU5
LDcgKzU5LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogc3RydWN0IEZyYW1lRmxhdHRlbmluZ0xh
eW91dERpc2FsbG93ZXIgewogICAgIEZyYW1lRmxhdHRlbmluZ0xheW91dERpc2FsbG93ZXIoRnJh
bWVWaWV3JiBmcmFtZVZpZXcpCiAgICAgICAgIDogbV9mcmFtZVZpZXcoZnJhbWVWaWV3KQotICAg
ICAgICAsIG1fZGlzYWxsb3dMYXlvdXQoZnJhbWVWaWV3LmZyYW1lKCkuc2V0dGluZ3MoKS5lZmZl
Y3RpdmVGcmFtZUZsYXR0ZW5pbmcoKSAhPSBGcmFtZUZsYXR0ZW5pbmdEaXNhYmxlZCkKKyAgICAg
ICAgLCBtX2Rpc2FsbG93TGF5b3V0KGZyYW1lVmlldy5lZmZlY3RpdmVGcmFtZUZsYXR0ZW5pbmco
KSAhPSBGcmFtZUZsYXR0ZW5pbmc6OkRpc2FibGVkKQogICAgIHsKICAgICAgICAgaWYgKG1fZGlz
YWxsb3dMYXlvdXQpCiAgICAgICAgICAgICBtX2ZyYW1lVmlldy5zdGFydERpc2FsbG93aW5nTGF5
b3V0KCk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5j
cHAJKHJldmlzaW9uIDIyMzM2NikKKysrIFNvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxT
ZXR0aW5ncy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTgxOSwyNiArODE5LDExIEBAIEV4Y2VwdGlv
bk9yPHZvaWQ+IEludGVybmFsU2V0dGluZ3M6OnNldFMKICAgICByZXR1cm4gRXhjZXB0aW9uIHsg
SW52YWxpZEFjY2Vzc0Vycm9yIH07CiB9CiAKLXN0YXRpYyBGcmFtZUZsYXR0ZW5pbmcgaW50ZXJu
YWxTZXR0aW5nc1RvV2ViQ29yZVZhbHVlKEludGVybmFsU2V0dGluZ3M6OkZyYW1lRmxhdHRlbmlu
Z1ZhbHVlIHZhbHVlKQotewotICAgIHN3aXRjaCAodmFsdWUpIHsKLSAgICBjYXNlIEludGVybmFs
U2V0dGluZ3M6OkZyYW1lRmxhdHRlbmluZ1ZhbHVlOjpEaXNhYmxlZDoKLSAgICAgICAgcmV0dXJu
IEZyYW1lRmxhdHRlbmluZ0Rpc2FibGVkOwotICAgIGNhc2UgSW50ZXJuYWxTZXR0aW5nczo6RnJh
bWVGbGF0dGVuaW5nVmFsdWU6OkVuYWJsZWRGb3JOb25GdWxsU2NyZWVuSUZyYW1lczoKLSAgICAg
ICAgcmV0dXJuIEZyYW1lRmxhdHRlbmluZ0VuYWJsZWRGb3JOb25GdWxsU2NyZWVuSUZyYW1lczsK
LSAgICBjYXNlIEludGVybmFsU2V0dGluZ3M6OkZyYW1lRmxhdHRlbmluZ1ZhbHVlOjpGdWxseUVu
YWJsZWQ6Ci0gICAgICAgIHJldHVybiBGcmFtZUZsYXR0ZW5pbmdGdWxseUVuYWJsZWQ7Ci0gICAg
fQotCi0gICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgcmV0dXJuIEZyYW1lRmxhdHRlbmlu
Z0Rpc2FibGVkOwotfQotCi1FeGNlcHRpb25Pcjx2b2lkPiBJbnRlcm5hbFNldHRpbmdzOjpzZXRG
cmFtZUZsYXR0ZW5pbmcoY29uc3QgRnJhbWVGbGF0dGVuaW5nVmFsdWUmIGZyYW1lRmxhdHRlbmlu
ZykKK0V4Y2VwdGlvbk9yPHZvaWQ+IEludGVybmFsU2V0dGluZ3M6OnNldEZyYW1lRmxhdHRlbmlu
ZyhGcmFtZUZsYXR0ZW5pbmdWYWx1ZSBmcmFtZUZsYXR0ZW5pbmcpCiB7CiAgICAgaWYgKCFtX3Bh
Z2UpCiAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlkQWNjZXNzRXJyb3IgfTsKLSAg
ICBzZXR0aW5ncygpLnNldEZyYW1lRmxhdHRlbmluZyhpbnRlcm5hbFNldHRpbmdzVG9XZWJDb3Jl
VmFsdWUoZnJhbWVGbGF0dGVuaW5nKSk7CisgICAgc2V0dGluZ3MoKS5zZXRGcmFtZUZsYXR0ZW5p
bmcoZnJhbWVGbGF0dGVuaW5nKTsKICAgICByZXR1cm4geyB9OwogfQogCkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS90ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS90ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuaAkocmV2aXNpb24gMjIzMzY2KQorKysg
U291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmgJKHdvcmtpbmcgY29weSkK
QEAgLTEwMSw4ICsxMDEsOCBAQCBwdWJsaWM6CiAgICAgRXhjZXB0aW9uT3I8dm9pZD4gc2V0U2hv
dWxkTWFuYWdlQXVkaW9TZXNzaW9uQ2F0ZWdvcnkoYm9vbCk7CiAgICAgRXhjZXB0aW9uT3I8dm9p
ZD4gc2V0Q3VzdG9tUGFzdGVib2FyZERhdGFFbmFibGVkKGJvb2wpOwogCi0gICAgZW51bSBjbGFz
cyBGcmFtZUZsYXR0ZW5pbmdWYWx1ZSB7IERpc2FibGVkLCBFbmFibGVkRm9yTm9uRnVsbFNjcmVl
bklGcmFtZXMsIEZ1bGx5RW5hYmxlZCB9OwotICAgIEV4Y2VwdGlvbk9yPHZvaWQ+IHNldEZyYW1l
RmxhdHRlbmluZyhjb25zdCBGcmFtZUZsYXR0ZW5pbmdWYWx1ZSYpOworICAgIHVzaW5nIEZyYW1l
RmxhdHRlbmluZ1ZhbHVlID0gRnJhbWVGbGF0dGVuaW5nOworICAgIEV4Y2VwdGlvbk9yPHZvaWQ+
IHNldEZyYW1lRmxhdHRlbmluZyhGcmFtZUZsYXR0ZW5pbmdWYWx1ZSk7CiAgICAgCiAgICAgc3Rh
dGljIHZvaWQgc2V0QWxsb3dzQW55U1NMQ2VydGlmaWNhdGUoYm9vbCk7CiAKSW5kZXg6IFNvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9n
CShyZXZpc2lvbiAyMjMzNzEpCisrKyBTb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwkod29ya2luZyBj
b3B5KQpAQCAtMSwzICsxLDI1IEBACisyMDE3LTEwLTE2ICBTYW0gV2VpbmlnICA8c2FtQHdlYmtp
dC5vcmc+CisKKyAgICAgICAgW1NldHRpbmdzXSBSZW1vdmUgYWxsIGN1c3RvbSBjb2RlIGZyb20g
U2V0dGluZ3MuaC9jcHAKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTE3ODMzMAorCisgICAgICAgICogU2hhcmVkL1dlYlByZWZlcmVuY2VzRGVmaW5pdGlv
bnMuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tQcmVmZXJlbmNlcy5jcHA6CisgICAg
ICAgIChXS1ByZWZlcmVuY2VzU2V0RnJhbWVGbGF0dGVuaW5nRW5hYmxlZCk6CisgICAgICAgIChX
S1ByZWZlcmVuY2VzR2V0RnJhbWVGbGF0dGVuaW5nRW5hYmxlZCk6CisgICAgICAgICogVUlQcm9j
ZXNzL0FQSS9nbGliL1dlYktpdFNldHRpbmdzLmNwcDoKKyAgICAgICAgKHdlYmtpdF9zZXR0aW5n
c19nZXRfZW5hYmxlX2ZyYW1lX2ZsYXR0ZW5pbmcpOgorICAgICAgICAod2Via2l0X3NldHRpbmdz
X3NldF9lbmFibGVfZnJhbWVfZmxhdHRlbmluZyk6CisgICAgICAgICogV2ViUHJvY2Vzcy9Jbmpl
Y3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OkluamVjdGVk
QnVuZGxlOjpzZXRGcmFtZUZsYXR0ZW5pbmdFbmFibGVkKToKKyAgICAgICAgCisgICAgICAgICAg
ICBVcGRhdGUgZm9yIG5hbWluZyBjaGFuZ2VzIG9mIEZyYW1lRmxhdHRlbmluZyBub3cgdGhhdCBp
dCBpcyBhbiBlbnVtIGNsYXNzLgorCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9XZWJDaHJvbWVDbGllbnQuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJDaHJvbWVDbGllbnQ6
OmNvbnRlbnRzU2l6ZUNoYW5nZWQgY29uc3QpOgorCisgICAgICAgICAgICBHZSB0aGUgZWZmZWN0
aXZlRnJhbWVGbGF0dGVuaW5nIGZyb20gdGhlIEZyYW1lVmlldywgcmF0aGVyIHRoYW4gdGhlIFNl
dHRpbmdzLgorCiAyMDE3LTEwLTEzICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4K
IAogICAgICAgICBJbXBsZW1lbnQgbGlzdGluZyBvcmlnaW5zIGZvciB3aGljaCBDYWNoZVN0b3Jh
Z2UgaXMgc3RvcmluZyBkYXRhCkluZGV4OiBTb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcmVmZXJl
bmNlc0RlZmluaXRpb25zLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9TaGFyZWQvV2Vi
UHJlZmVyZW5jZXNEZWZpbml0aW9ucy5oCShyZXZpc2lvbiAyMjMzNjYpCisrKyBTb3VyY2UvV2Vi
S2l0L1NoYXJlZC9XZWJQcmVmZXJlbmNlc0RlZmluaXRpb25zLmgJKHdvcmtpbmcgY29weSkKQEAg
LTYwLDcgKzYwLDcgQEAKICNpZiBQTEFURk9STShJT1MpCiAjZGVmaW5lIERFRkFVTFRfQUxMT1dT
X1BJQ1RVUkVfSU5fUElDVFVSRV9NRURJQV9QTEFZQkFDSyB0cnVlCiAjZGVmaW5lIERFRkFVTFRf
QkFDS1NQQUNFX0tFWV9OQVZJR0FUSU9OX0VOQUJMRUQgZmFsc2UKLSNkZWZpbmUgREVGQVVMVF9G
UkFNRV9GTEFUVEVOSU5HIEZyYW1lRmxhdHRlbmluZ0Z1bGx5RW5hYmxlZAorI2RlZmluZSBERUZB
VUxUX0ZSQU1FX0ZMQVRURU5JTkcgRnJhbWVGbGF0dGVuaW5nOjpGdWxseUVuYWJsZWQKICNkZWZp
bmUgREVGQVVMVF9TSE9VTERfUFJJTlRfQkFDS0dST1VORFMgdHJ1ZQogI2RlZmluZSBERUZBVUxU
X1RFWFRfQVJFQVNfQVJFX1JFU0laQUJMRSBmYWxzZQogI2RlZmluZSBERUZBVUxUX0pBVkFTQ1JJ
UFRfQ0FOX09QRU5fV0lORE9XU19BVVRPTUFUSUNBTExZIGZhbHNlCkBAIC03OCw3ICs3OCw3IEBA
CiAjZWxzZQogI2RlZmluZSBERUZBVUxUX0FMTE9XU19QSUNUVVJFX0lOX1BJQ1RVUkVfTUVESUFf
UExBWUJBQ0sgZmFsc2UKICNkZWZpbmUgREVGQVVMVF9CQUNLU1BBQ0VfS0VZX05BVklHQVRJT05f
RU5BQkxFRCB0cnVlCi0jZGVmaW5lIERFRkFVTFRfRlJBTUVfRkxBVFRFTklORyBGcmFtZUZsYXR0
ZW5pbmdEaXNhYmxlZAorI2RlZmluZSBERUZBVUxUX0ZSQU1FX0ZMQVRURU5JTkcgRnJhbWVGbGF0
dGVuaW5nOjpEaXNhYmxlZAogI2RlZmluZSBERUZBVUxUX1NIT1VMRF9QUklOVF9CQUNLR1JPVU5E
UyBmYWxzZQogI2RlZmluZSBERUZBVUxUX1RFWFRfQVJFQVNfQVJFX1JFU0laQUJMRSB0cnVlCiAj
ZGVmaW5lIERFRkFVTFRfSkFWQVNDUklQVF9DQU5fT1BFTl9XSU5ET1dTX0FVVE9NQVRJQ0FMTFkg
dHJ1ZQpJbmRleDogU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQcmVmZXJlbmNlcy5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQcmVmZXJl
bmNlcy5jcHAJKHJldmlzaW9uIDIyMzM2NikKKysrIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9DL1dLUHJlZmVyZW5jZXMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNDUsMTMgKzE0NSwxMyBA
QCBib29sIFdLUHJlZmVyZW5jZXNHZXRYU1NBdWRpdG9yRW5hYmxlZChXCiB2b2lkIFdLUHJlZmVy
ZW5jZXNTZXRGcmFtZUZsYXR0ZW5pbmdFbmFibGVkKFdLUHJlZmVyZW5jZXNSZWYgcHJlZmVyZW5j
ZXNSZWYsIGJvb2wgZnJhbWVGbGF0dGVuaW5nRW5hYmxlZCkKIHsKICAgICAvLyBGSVhNRTogRXhw
b3NlIG1vcmUgZnJhbWUgZmxhdHRlbmluZyB2YWx1ZXMuCi0gICAgdG9JbXBsKHByZWZlcmVuY2Vz
UmVmKS0+c2V0RnJhbWVGbGF0dGVuaW5nKGZyYW1lRmxhdHRlbmluZ0VuYWJsZWQgPyBXZWJDb3Jl
OjpGcmFtZUZsYXR0ZW5pbmdGdWxseUVuYWJsZWQgOiBXZWJDb3JlOjpGcmFtZUZsYXR0ZW5pbmdE
aXNhYmxlZCk7CisgICAgdG9JbXBsKHByZWZlcmVuY2VzUmVmKS0+c2V0RnJhbWVGbGF0dGVuaW5n
KGZyYW1lRmxhdHRlbmluZ0VuYWJsZWQgPyBzdGF0aWNfY2FzdDx1aW50MzJfdD4oV2ViQ29yZTo6
RnJhbWVGbGF0dGVuaW5nOjpGdWxseUVuYWJsZWQpIDogc3RhdGljX2Nhc3Q8dWludDMyX3Q+KFdl
YkNvcmU6OkZyYW1lRmxhdHRlbmluZzo6RGlzYWJsZWQpKTsKIH0KIAogYm9vbCBXS1ByZWZlcmVu
Y2VzR2V0RnJhbWVGbGF0dGVuaW5nRW5hYmxlZChXS1ByZWZlcmVuY2VzUmVmIHByZWZlcmVuY2Vz
UmVmKQogewogICAgIC8vIEZJWE1FOiBFeHBvc2UgbW9yZSBmcmFtZSBmbGF0dGVuaW5nIHZhbHVl
cy4KLSAgICByZXR1cm4gdG9JbXBsKHByZWZlcmVuY2VzUmVmKS0+ZnJhbWVGbGF0dGVuaW5nKCkg
IT0gV2ViQ29yZTo6RnJhbWVGbGF0dGVuaW5nRGlzYWJsZWQ7CisgICAgcmV0dXJuIHRvSW1wbChw
cmVmZXJlbmNlc1JlZiktPmZyYW1lRmxhdHRlbmluZygpICE9IHN0YXRpY19jYXN0PHVpbnQzMl90
PihXZWJDb3JlOjpGcmFtZUZsYXR0ZW5pbmc6OkRpc2FibGVkKTsKIH0KIAogdm9pZCBXS1ByZWZl
cmVuY2VzU2V0UGx1Z2luc0VuYWJsZWQoV0tQcmVmZXJlbmNlc1JlZiBwcmVmZXJlbmNlc1JlZiwg
Ym9vbCBwbHVnaW5zRW5hYmxlZCkKSW5kZXg6IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9n
bGliL1dlYktpdFNldHRpbmdzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvZ2xpYi9XZWJLaXRTZXR0aW5ncy5jcHAJKHJldmlzaW9uIDIyMzM2NikKKysrIFNv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFNldHRpbmdzLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMTYyMCw3ICsxNjIwLDcgQEAgZ2Jvb2xlYW4gd2Via2l0X3NldHRpbmdzX2dl
dF9lbmFibGVfZnJhbQogICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKFdFQktJVF9JU19TRVRUSU5H
UyhzZXR0aW5ncyksIEZBTFNFKTsKIAogICAgIC8vIEZJWE1FOiBFeHBvc2UgbW9yZSBmcmFtZSBm
bGF0dGVuaW5nIHZhbHVlcy4KLSAgICByZXR1cm4gc2V0dGluZ3MtPnByaXYtPnByZWZlcmVuY2Vz
LT5mcmFtZUZsYXR0ZW5pbmcoKSAhPSBXZWJDb3JlOjpGcmFtZUZsYXR0ZW5pbmdEaXNhYmxlZDsK
KyAgICByZXR1cm4gc2V0dGluZ3MtPnByaXYtPnByZWZlcmVuY2VzLT5mcmFtZUZsYXR0ZW5pbmco
KSAhPSBXZWJDb3JlOjpGcmFtZUZsYXR0ZW5pbmc6OkRpc2FibGVkOwogfQogCiAvKioKQEAgLTE2
MzUsMTIgKzE2MzUsMTIgQEAgdm9pZCB3ZWJraXRfc2V0dGluZ3Nfc2V0X2VuYWJsZV9mcmFtZV9m
bAogICAgIGdfcmV0dXJuX2lmX2ZhaWwoV0VCS0lUX0lTX1NFVFRJTkdTKHNldHRpbmdzKSk7CiAK
ICAgICBXZWJLaXRTZXR0aW5nc1ByaXZhdGUqIHByaXYgPSBzZXR0aW5ncy0+cHJpdjsKLSAgICBi
b29sIGN1cnJlbnRWYWx1ZSA9IHByaXYtPnByZWZlcmVuY2VzLT5mcmFtZUZsYXR0ZW5pbmcoKSAh
PSBXZWJDb3JlOjpGcmFtZUZsYXR0ZW5pbmdEaXNhYmxlZDsKKyAgICBib29sIGN1cnJlbnRWYWx1
ZSA9IHByaXYtPnByZWZlcmVuY2VzLT5mcmFtZUZsYXR0ZW5pbmcoKSAhPSBXZWJDb3JlOjpGcmFt
ZUZsYXR0ZW5pbmc6OkRpc2FibGVkOwogICAgIGlmIChjdXJyZW50VmFsdWUgPT0gZW5hYmxlZCkK
ICAgICAgICAgcmV0dXJuOwogCiAgICAgLy8gRklYTUU6IEV4cG9zZSBtb3JlIGZyYW1lIGZsYXR0
ZW5pbmcgdmFsdWVzLgotICAgIHByaXYtPnByZWZlcmVuY2VzLT5zZXRGcmFtZUZsYXR0ZW5pbmco
ZW5hYmxlZCA/IFdlYkNvcmU6OkZyYW1lRmxhdHRlbmluZ0Z1bGx5RW5hYmxlZCA6IFdlYkNvcmU6
OkZyYW1lRmxhdHRlbmluZ0Rpc2FibGVkKTsKKyAgICBwcml2LT5wcmVmZXJlbmNlcy0+c2V0RnJh
bWVGbGF0dGVuaW5nKGVuYWJsZWQgPyBXZWJDb3JlOjpGcmFtZUZsYXR0ZW5pbmc6OkZ1bGx5RW5h
YmxlZCA6IFdlYkNvcmU6OkZyYW1lRmxhdHRlbmluZzo6RGlzYWJsZWQpOwogICAgIGdfb2JqZWN0
X25vdGlmeShHX09CSkVDVChzZXR0aW5ncyksICJlbmFibGUtZnJhbWUtZmxhdHRlbmluZyIpOwog
fQogCkluZGV4OiBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0
ZWRCdW5kbGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9Jbmpl
Y3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5jcHAJKHJldmlzaW9uIDIyMzM2NikKKysrIFNvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTMwMCw3ICszMDAsNyBAQCB2b2lkIEluamVjdGVkQnVuZGxlOjpzZXRG
cmFtZUZsYXR0ZW5pbmdFCiB7CiAgICAgY29uc3QgSGFzaFNldDxQYWdlKj4mIHBhZ2VzID0gUGFn
ZUdyb3VwOjpwYWdlR3JvdXAocGFnZUdyb3VwLT5pZGVudGlmaWVyKCkpLT5wYWdlcygpOwogICAg
IGZvciAoSGFzaFNldDxQYWdlKj46Oml0ZXJhdG9yIGl0ZXIgPSBwYWdlcy5iZWdpbigpOyBpdGVy
ICE9IHBhZ2VzLmVuZCgpOyArK2l0ZXIpCi0gICAgICAgICgqaXRlciktPnNldHRpbmdzKCkuc2V0
RnJhbWVGbGF0dGVuaW5nKGVuYWJsZWQgPyBGcmFtZUZsYXR0ZW5pbmdGdWxseUVuYWJsZWQgOiBG
cmFtZUZsYXR0ZW5pbmdEaXNhYmxlZCk7CisgICAgICAgICgqaXRlciktPnNldHRpbmdzKCkuc2V0
RnJhbWVGbGF0dGVuaW5nKGVuYWJsZWQgPyBGcmFtZUZsYXR0ZW5pbmc6OkZ1bGx5RW5hYmxlZCA6
IEZyYW1lRmxhdHRlbmluZzo6RGlzYWJsZWQpOwogfQogCiB2b2lkIEluamVjdGVkQnVuZGxlOjpz
ZXRBc3luY0ZyYW1lU2Nyb2xsaW5nRW5hYmxlZChXZWJQYWdlR3JvdXBQcm94eSogcGFnZUdyb3Vw
LCBib29sIGVuYWJsZWQpCkluZGV4OiBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcAkocmV2aXNpb24gMjIz
MzY2KQorKysgU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9t
ZUNsaWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTU2Niw3ICs1NjYsOSBAQCBQbGF0Zm9ybVBh
Z2VDbGllbnQgV2ViQ2hyb21lQ2xpZW50OjpwbGF0CiAKIHZvaWQgV2ViQ2hyb21lQ2xpZW50Ojpj
b250ZW50c1NpemVDaGFuZ2VkKEZyYW1lJiBmcmFtZSwgY29uc3QgSW50U2l6ZSYgc2l6ZSkgY29u
c3QKIHsKLSAgICBpZiAobV9wYWdlLmNvcmVQYWdlKCktPnNldHRpbmdzKCkuZWZmZWN0aXZlRnJh
bWVGbGF0dGVuaW5nKCkgPT0gRnJhbWVGbGF0dGVuaW5nRGlzYWJsZWQpIHsKKyAgICBGcmFtZVZp
ZXcqIGZyYW1lVmlldyA9IGZyYW1lLnZpZXcoKTsKKworICAgIGlmIChmcmFtZVZpZXcgJiYgZnJh
bWVWaWV3LT5lZmZlY3RpdmVGcmFtZUZsYXR0ZW5pbmcoKSA9PSBGcmFtZUZsYXR0ZW5pbmc6OkRp
c2FibGVkKSB7CiAgICAgICAgIFdlYkZyYW1lKiBsYXJnZXN0RnJhbWUgPSBmaW5kTGFyZ2VzdEZy
YW1lSW5GcmFtZVNldChtX3BhZ2UpOwogICAgICAgICBpZiAobGFyZ2VzdEZyYW1lICE9IG1fY2Fj
aGVkRnJhbWVTZXRMYXJnZXN0RnJhbWUuZ2V0KCkpIHsKICAgICAgICAgICAgIG1fY2FjaGVkRnJh
bWVTZXRMYXJnZXN0RnJhbWUgPSBsYXJnZXN0RnJhbWU7CkBAIC01ODEsNyArNTgzLDYgQEAgdm9p
ZCBXZWJDaHJvbWVDbGllbnQ6OmNvbnRlbnRzU2l6ZUNoYW5nZQogCiAgICAgbV9wYWdlLmRyYXdp
bmdBcmVhKCktPm1haW5GcmFtZUNvbnRlbnRTaXplQ2hhbmdlZChzaXplKTsKIAotICAgIEZyYW1l
VmlldyogZnJhbWVWaWV3ID0gZnJhbWUudmlldygpOwogICAgIGlmIChmcmFtZVZpZXcgJiYgIWZy
YW1lVmlldy0+ZGVsZWdhdGVzU2Nyb2xsaW5nKCkpICB7CiAgICAgICAgIGJvb2wgaGFzSG9yaXpv
bnRhbFNjcm9sbGJhciA9IGZyYW1lVmlldy0+aG9yaXpvbnRhbFNjcm9sbGJhcigpOwogICAgICAg
ICBib29sIGhhc1ZlcnRpY2FsU2Nyb2xsYmFyID0gZnJhbWVWaWV3LT52ZXJ0aWNhbFNjcm9sbGJh
cigpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>323896</attachid>
            <date>2017-10-16 08:36:11 -0700</date>
            <delta_ts>2017-10-16 08:38:28 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-178330-20171016083518.patch</filename>
            <type>text/plain</type>
            <size>29965</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIyMzM2NikKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDU3IEBACisyMDE3LTEwLTE2ICBTYW0gV2Vp
bmlnICA8c2FtQHdlYmtpdC5vcmc+CisKKyAgICAgICAgW1NldHRpbmdzXSBSZW1vdmUgYWxsIGN1
c3RvbSBjb2RlIGZyb20gU2V0dGluZ3MuaC9jcHAKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTE3ODMzMAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIFJlbW92ZXMgdGhlIHR3byByZW1haW5pbmcgZnVuY3Rpb25z
IG91dCBvZiBTZXR0aW5ncyBwYXZpbmcgdGhlIHdheQorICAgICAgICBmb3IgdGhlIGZpbGUgdG8g
YmUgZ2VuZXJhdGVkLgorICAgICAgICAKKyAgICAgICAgLSBwYWdlRGVzdHJveWVkIHdhcyBtb3Zl
ZCBkb3duIGludG8gU2V0dGluZ3NCYXNlLgorICAgICAgICAtIGVmZmVjdGl2ZUZyYW1lRmxhdHRl
bmluZyB3YXMgbW92ZWQgdG8gRnJhbWVWaWV3ICh0byByZWR1Y2UgdGhlIG5lZWQKKyAgICAgICAg
ICBmb3IgYWRkaXRpb25hbCBpbmNsdWRlcywgdGhlIEZyYW1lRmxhdHRlbmluZyBlbnVtIHdhcyBj
b252ZXJ0ZWQgdG8KKyAgICAgICAgICBhbiBlbnVtIGNsYXNzIHRvIGFsbG93IGl0IHRvIGJlIGZv
cndhcmQgZGVjbGFyZWQpLgorICAgICAgICAgIAorICAgICAgICBBbHNvIG1vdmVzIGRlZmF1bHQg
dmFsdWVzIGludG8gU2V0dGluZ3NEZWZhdWx0VmFsdWVzLmgKKworICAgICAgICAqIFdlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgCisgICAgICAgICAgICBBZGQgbmV3
IGZpbGVzLgorICAgICAgICAKKyAgICAgICAgKiBwYWdlL0ZyYW1lVmlldy5jcHA6CisgICAgICAg
ICogcGFnZS9GcmFtZVZpZXcuaDoKKworICAgICAgICAgICAgTW92ZSBlZmZlY3RpdmVGcmFtZUZs
YXR0ZW5pbmcgZnVuY3Rpb24gaGVyZSBmcm9tIFNldHRpbmdzLgorCisgICAgICAgICogcGFnZS9T
ZXR0aW5ncy5jcHA6CisgICAgICAgICogcGFnZS9TZXR0aW5ncy5oOgorCisgICAgICAgICAgICBN
b3ZlIGVmZmVjdGl2ZUZyYW1lRmxhdHRlbmluZywgcGFnZURlc3Ryb3llZCBhbmQgZGVmYXVsdCB2
YWx1ZXMgb3V0LgorCisgICAgICAgICogcGFnZS9TZXR0aW5ncy5pbjoKKyAgICAgICAgCisgICAg
ICAgICAgICBVcGRhdGUgZm9yIHR1cm5pbmcgRnJhbWVGbGF0dGVuaW5nIGludG8gYW4gZW51bSBj
bGFzcy4KKyAgICAgICAgCisgICAgICAgICogcGFnZS9TZXR0aW5nc0Jhc2UuaDoKKworICAgICAg
ICAgICAgVHVybiBGcmFtZUZsYXR0ZW5pbmcgaW50byBhbiBlbnVtIGNsYXNzIGFuZCBtb3ZlIHBh
Z2VEZXN0cm95ZWQgaGVyZS4KKworICAgICAgICAqIHBhZ2UvU2V0dGluZ3NEZWZhdWx0VmFsdWVz
Lmg6IEFkZGVkLgorCisgICAgICAgICAgICBNb3ZlIGFsbCB0aGUgZGVmYXVsdCB2YWx1ZXMgZnJv
bSBTZXR0aW5ncyBoZXJlLgorCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckZyYW1lU2V0LmNw
cDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVySUZyYW1lLmNwcDoKKyAgICAgICAgKiByZW5k
ZXJpbmcvUmVuZGVyVmlldy5jcHA6CisKKyAgICAgICAgICAgIEdldCBlZmZlY3RpdmVGcmFtZUZs
YXR0ZW5pbmcgZnJvbSB0aGUgRnJhbWVWaWV3LgorCisgICAgICAgICogdGVzdGluZy9JbnRlcm5h
bFNldHRpbmdzLmNwcDoKKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuaDoKKyAg
ICAgICAgCisgICAgICAgICAgICBVcGRhdGUgbm93IHRoYXQgRnJhbWVGbGF0dGVuaW5nIGlzIGFu
IGVudW0gY2xhc3MuCisKIDIwMTctMTAtMTYgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBh
cHBsZS5jb20+CiAKICAgICAgICAgT24gVG9ULCBldmVudC5kYXRhVHJhbnNmZXIuZ2V0RGF0YSgi
dGV4dC91cmktbGlzdCIpIHJldHVybnMgYW4gZW1wdHkgc3RyaW5nIHdoZW4gZHJhZ2dpbmcgYW4g
aW1hZ2UKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oJKHJldmlzaW9uIDIyMzM2NikKKysrIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkod29ya2luZyBjb3B5KQpAQCAtMTE0ODQsNiArMTE0
ODQsNyBAQAogCQk3QzY1NzlFRDFFMDA4NTY2MDBFM0EyN0EgLyogSlNBcHBsZVBheVNoaXBwaW5n
TWV0aG9kLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTQXBwbGVQ
YXlTaGlwcGluZ01ldGhvZC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdDNjU3
OUVFMUUwMDg1NjYwMEUzQTI3QSAvKiBKU0FwcGxlUGF5U2hpcHBpbmdNZXRob2QuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNBcHBsZVBheVNoaXBwaW5nTWV0aG9kLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdDNjc1MkJBMUIwNkU4MjAwMEMyNzlDQiAvKiBO
b25FbGVtZW50UGFyZW50Tm9kZS5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gTm9uRWxlbWVu
dFBhcmVudE5vZGUuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk3QzZFRkVFQTFG
OTQ2QTJFMDBGRkFENDEgLyogU2V0dGluZ3NEZWZhdWx0VmFsdWVzLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFNldHRpbmdzRGVmYXVsdFZhbHVlcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3
QzczRkIwNTE5MUVGNDE2MDA3REUwNjEgLyogVXNlck1lc3NhZ2VIYW5kbGVyc05hbWVzcGFjZS5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBVc2VyTWVzc2FnZUhhbmRs
ZXJzTmFtZXNwYWNlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0M3M0ZCMDYx
OTFFRjQxNzAwN0RFMDYxIC8qIFVzZXJNZXNzYWdlSGFuZGxlcnNOYW1lc3BhY2UuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVXNlck1lc3NhZ2VIYW5kbGVyc05hbWVzcGFjZS5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3QzczRkIwOTE5MUVGNDlGMDA3REUwNjEg
LyogVXNlck1lc3NhZ2VIYW5kbGVyc05hbWVzcGFjZS5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gVXNlck1lc3NhZ2VIYW5k
bGVyc05hbWVzcGFjZS5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xOTg4NCw2
ICsxOTg4NSw3IEBACiAJCQkJQkM1OURFRjgxNjlERURDMzAwMTZBQzM0IC8qIFNldHRpbmdzLmlu
ICovLAogCQkJCTdDQzY2MDlCMUY5MzA1NzkwMEQ1MDBFOSAvKiBTZXR0aW5nc0Jhc2UuY3BwICov
LAogCQkJCTdDQzY2MDk5MUY5MzA1NzgwMEQ1MDBFOSAvKiBTZXR0aW5nc0Jhc2UuaCAqLywKKwkJ
CQk3QzZFRkVFQTFGOTQ2QTJFMDBGRkFENDEgLyogU2V0dGluZ3NEZWZhdWx0VmFsdWVzLmggKi8s
CiAJCQkJNUM2ODhBQTIxRDM4MTI2RjAwMEI1NEZBIC8qIFNvY2tldFByb3ZpZGVyLmNwcCAqLywK
IAkJCQk1QzdDODhENzFEMEYxRjJCMDA5RDJGNkQgLyogU29ja2V0UHJvdmlkZXIuaCAqLywKIAkJ
CQk2MjZDREUwQzExNDA0MjRDMDAxRTVBNjggLyogU3BhdGlhbE5hdmlnYXRpb24uY3BwICovLApJ
bmRleDogU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcAkocmV2aXNpb24gMjIzMzY2KQorKysgU291
cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01NjYsOSAr
NTY2LDIxIEBAIHZvaWQgRnJhbWVWaWV3OjpzZXRNYXJnaW5IZWlnaHQoTGF5b3V0VW4KICAgICBt
X21hcmdpbnMuc2V0SGVpZ2h0KGgpOwogfQogCitGcmFtZUZsYXR0ZW5pbmcgRnJhbWVWaWV3Ojpl
ZmZlY3RpdmVGcmFtZUZsYXR0ZW5pbmcoKSBjb25zdAoreworI2lmIFBMQVRGT1JNKElPUykKKyAg
ICAvLyBPbiBpT1Mgd2hlbiBhc3luYyBmcmFtZSBzY3JvbGxpbmcgaXMgZW5hYmxlZCwgaXQgZG9l
cyBub3QgbWFrZSBzZW5zZSB0byB1c2UgZnVsbCBmcmFtZSBmbGF0dGVuaW5nLgorICAgIC8vIElu
IHRoYXQgY2FzZSwgd2UganVzdCBjb25zaWRlciB0aGF0IGZyYW1lIGZsYXR0ZW5pbmcgaXMgZGlz
YWJsZWQuIFRoaXMgYWxsb3dzIHBlb3BsZSB0byB0ZXN0CisgICAgLy8gZnJhbWUgc2Nyb2xsaW5n
IG9uIGlPUyBieSBlbmFibGluZyAiQXN5bmMgRnJhbWUgU2Nyb2xsaW5nIiB2aWEgdGhlIFNhZmFy
aSBtZW51LgorICAgIGlmIChmcmFtZSgpLnNldHRpbmdzKCkuYXN5bmNGcmFtZVNjcm9sbGluZ0Vu
YWJsZWQoKSAmJiBmcmFtZSgpLnNldHRpbmdzKCkuZnJhbWVGbGF0dGVuaW5nKCkgPT0gRnJhbWVG
bGF0dGVuaW5nOjpGdWxseUVuYWJsZWQpCisgICAgICAgIHJldHVybiBGcmFtZUZsYXR0ZW5pbmc6
OkRpc2FibGVkOworI2VuZGlmCisgICAgcmV0dXJuIGZyYW1lKCkuc2V0dGluZ3MoKS5mcmFtZUZs
YXR0ZW5pbmcoKTsKK30KKwogYm9vbCBGcmFtZVZpZXc6OmZyYW1lRmxhdHRlbmluZ0VuYWJsZWQo
KSBjb25zdAogewotICAgIHJldHVybiBmcmFtZSgpLnNldHRpbmdzKCkuZWZmZWN0aXZlRnJhbWVG
bGF0dGVuaW5nKCkgIT0gRnJhbWVGbGF0dGVuaW5nRGlzYWJsZWQ7CisgICAgcmV0dXJuIGVmZmVj
dGl2ZUZyYW1lRmxhdHRlbmluZygpICE9IEZyYW1lRmxhdHRlbmluZzo6RGlzYWJsZWQ7CiB9CiAK
IGJvb2wgRnJhbWVWaWV3Ojppc0ZyYW1lRmxhdHRlbmluZ1ZhbGlkRm9yVGhpc0ZyYW1lKCkgY29u
c3QKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuaAkocmV2aXNpb24gMjIzMzY2KQorKysgU291
cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuaAkod29ya2luZyBjb3B5KQpAQCAtNjEsNiArNjEs
OCBAQCBjbGFzcyBSZW5kZXJTdHlsZTsKIGNsYXNzIFJlbmRlclZpZXc7CiBjbGFzcyBSZW5kZXJX
aWRnZXQ7CiAKK2VudW0gY2xhc3MgRnJhbWVGbGF0dGVuaW5nOworCiBQYWdpbmF0aW9uOjpNb2Rl
IHBhZ2luYXRpb25Nb2RlRm9yUmVuZGVyU3R5bGUoY29uc3QgUmVuZGVyU3R5bGUmKTsKIAogY2xh
c3MgRnJhbWVWaWV3IGZpbmFsIDogcHVibGljIFNjcm9sbFZpZXcgewpAQCAtNjM1LDYgKzYzNyw4
IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgc2V0U3BlY3VsYXRpdmVUaWxpbmdEZWxheURpc2FibGVk
Rm9yVGVzdGluZyhib29sIGRpc2FibGVkKSB7IG1fc3BlY3VsYXRpdmVUaWxpbmdEZWxheURpc2Fi
bGVkRm9yVGVzdGluZyA9IGRpc2FibGVkOyB9CiAKKyAgICBXRUJDT1JFX0VYUE9SVCBGcmFtZUZs
YXR0ZW5pbmcgZWZmZWN0aXZlRnJhbWVGbGF0dGVuaW5nKCkgY29uc3Q7CisKIHByb3RlY3RlZDoK
ICAgICBib29sIHNjcm9sbENvbnRlbnRzRmFzdFBhdGgoY29uc3QgSW50U2l6ZSYgc2Nyb2xsRGVs
dGEsIGNvbnN0IEludFJlY3QmIHJlY3RUb1Njcm9sbCwgY29uc3QgSW50UmVjdCYgY2xpcFJlY3Qp
IGZpbmFsOwogICAgIHZvaWQgc2Nyb2xsQ29udGVudHNTbG93UGF0aChjb25zdCBJbnRSZWN0JiB1
cGRhdGVSZWN0KSBmaW5hbDsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuY3BwCShyZXZpc2lv
biAyMjMzNjYpCisrKyBTb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMjYsOTcgKzI2LDExIEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAi
U2V0dGluZ3MuaCIKIAotI2luY2x1ZGUgIkF1ZGlvU2Vzc2lvbi5oIgotI2luY2x1ZGUgIkJhY2tG
b3J3YXJkQ29udHJvbGxlci5oIgotI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlTG9hZGVyLmgiCi0j
aW5jbHVkZSAiQ29va2llU3RvcmFnZS5oIgotI2luY2x1ZGUgIkRPTVRpbWVyLmgiCi0jaW5jbHVk
ZSAiRGF0YWJhc2UuaCIKLSNpbmNsdWRlICJEb2N1bWVudC5oIgotI2luY2x1ZGUgIkZvbnRDYXNj
YWRlLmgiCi0jaW5jbHVkZSAiRm9udEdlbmVyaWNGYW1pbGllcy5oIgotI2luY2x1ZGUgIkZyYW1l
VHJlZS5oIgotI2luY2x1ZGUgIkZyYW1lVmlldy5oIgotI2luY2x1ZGUgIkhUTUxNZWRpYUVsZW1l
bnQuaCIKLSNpbmNsdWRlICJIaXN0b3J5SXRlbS5oIgotI2luY2x1ZGUgIk1haW5GcmFtZS5oIgog
I2luY2x1ZGUgIlBhZ2UuaCIKLSNpbmNsdWRlICJTdG9yYWdlTWFwLmgiCi0jaW5jbHVkZSA8bGlt
aXRzPgotI2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgotI2luY2x1ZGUgPHd0Zi9TdGRM
aWJFeHRyYXMuaD4KKyNpbmNsdWRlICJTZXR0aW5nc0RlZmF1bHRWYWx1ZXMuaCIKIAogbmFtZXNw
YWNlIFdlYkNvcmUgewogCi0vLyBOT1RFcwotLy8gIDEpIEVkaXRpbmdNYWNCZWhhdmlvciBjb21w
cmlzZXMgVGlnZXIsIExlb3BhcmQsIFNub3dMZW9wYXJkIGFuZCBpT1MgYnVpbGRzLCBhcyB3ZWxs
IGFzIFF0V2ViS2l0IHdoZW4gYnVpbHQgb24gTWFjOwotLy8gIDIpIEVkaXRpbmdXaW5kb3dzQmVo
YXZpb3IgY29tcHJpc2VzIFdpbjMyIGJ1aWxkOwotLy8gIDMpIEVkaXRpbmdVbml4QmVoYXZpb3Ig
Y29tcHJpc2VzIGFsbCB1bml4LWJhc2VkIHN5c3RlbXMsIGJ1dCBEYXJ3aW4vTWFjT1MgKGFuZCB0
aGVuIGFidXNpbmcgdGhlIHRlcm1pbm9sb2d5KTsKLS8vIDk5KSBNYWNFZGl0aW5nQmVoYXZpb3Ig
aXMgdXNlZCBhcyBhIGZhbGxiYWNrLgotc3RhdGljIEVkaXRpbmdCZWhhdmlvclR5cGUgZWRpdGlu
Z0JlaGF2aW9yVHlwZUZvclBsYXRmb3JtKCkKLXsKLSAgICByZXR1cm4KLSNpZiBQTEFURk9STShJ
T1MpCi0gICAgRWRpdGluZ0lPU0JlaGF2aW9yCi0jZWxpZiBPUyhEQVJXSU4pCi0gICAgRWRpdGlu
Z01hY0JlaGF2aW9yCi0jZWxpZiBPUyhXSU5ET1dTKQotICAgIEVkaXRpbmdXaW5kb3dzQmVoYXZp
b3IKLSNlbGlmIE9TKFVOSVgpCi0gICAgRWRpdGluZ1VuaXhCZWhhdmlvcgotI2Vsc2UKLSAgICAv
LyBGYWxsYmFjawotICAgIEVkaXRpbmdNYWNCZWhhdmlvcgotI2VuZGlmCi0gICAgOwotfQotCi0j
aWYgUExBVEZPUk0oQ09DT0EpCi1zdGF0aWMgY29uc3QgYm9vbCBkZWZhdWx0WW91VHViZUZsYXNo
UGx1Z2luUmVwbGFjZW1lbnRFbmFibGVkID0gdHJ1ZTsKLSNlbHNlCi1zdGF0aWMgY29uc3QgYm9v
bCBkZWZhdWx0WW91VHViZUZsYXNoUGx1Z2luUmVwbGFjZW1lbnRFbmFibGVkID0gZmFsc2U7Ci0j
ZW5kaWYKLQotI2lmIFBMQVRGT1JNKElPUykKLXN0YXRpYyBjb25zdCBib29sIGRlZmF1bHRGaXhl
ZEJhY2tncm91bmRzUGFpbnRSZWxhdGl2ZVRvRG9jdW1lbnQgPSB0cnVlOwotc3RhdGljIGNvbnN0
IGJvb2wgZGVmYXVsdEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdGb3JGaXhlZFBvc2l0aW9uRW5hYmxl
ZCA9IHRydWU7Ci1zdGF0aWMgY29uc3QgYm9vbCBkZWZhdWx0QWxsb3dzSW5saW5lTWVkaWFQbGF5
YmFjayA9IGZhbHNlOwotc3RhdGljIGNvbnN0IGJvb2wgZGVmYXVsdElubGluZU1lZGlhUGxheWJh
Y2tSZXF1aXJlc1BsYXlzSW5saW5lQXR0cmlidXRlID0gdHJ1ZTsKLXN0YXRpYyBjb25zdCBib29s
IGRlZmF1bHRWaWRlb1BsYXliYWNrUmVxdWlyZXNVc2VyR2VzdHVyZSA9IHRydWU7Ci1zdGF0aWMg
Y29uc3QgYm9vbCBkZWZhdWx0QXVkaW9QbGF5YmFja1JlcXVpcmVzVXNlckdlc3R1cmUgPSB0cnVl
Owotc3RhdGljIGNvbnN0IGJvb2wgZGVmYXVsdE1lZGlhRGF0YUxvYWRzQXV0b21hdGljYWxseSA9
IGZhbHNlOwotc3RhdGljIGNvbnN0IGJvb2wgZGVmYXVsdFNob3VsZFJlc3BlY3RJbWFnZU9yaWVu
dGF0aW9uID0gdHJ1ZTsKLXN0YXRpYyBjb25zdCBib29sIGRlZmF1bHRJbWFnZVN1YnNhbXBsaW5n
RW5hYmxlZCA9IHRydWU7Ci1zdGF0aWMgY29uc3QgYm9vbCBkZWZhdWx0U2Nyb2xsaW5nVHJlZUlu
Y2x1ZGVzRnJhbWVzID0gdHJ1ZTsKLXN0YXRpYyBjb25zdCBib29sIGRlZmF1bHRNZWRpYUNvbnRy
b2xzU2NhbGVXaXRoUGFnZVpvb20gPSB0cnVlOwotc3RhdGljIGNvbnN0IGJvb2wgZGVmYXVsdFF1
aWNrVGltZVBsdWdpblJlcGxhY2VtZW50RW5hYmxlZCA9IHRydWU7Ci0jZWxzZQotc3RhdGljIGNv
bnN0IGJvb2wgZGVmYXVsdEZpeGVkQmFja2dyb3VuZHNQYWludFJlbGF0aXZlVG9Eb2N1bWVudCA9
IGZhbHNlOwotc3RhdGljIGNvbnN0IGJvb2wgZGVmYXVsdEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdG
b3JGaXhlZFBvc2l0aW9uRW5hYmxlZCA9IGZhbHNlOwotc3RhdGljIGNvbnN0IGJvb2wgZGVmYXVs
dEFsbG93c0lubGluZU1lZGlhUGxheWJhY2sgPSB0cnVlOwotc3RhdGljIGNvbnN0IGJvb2wgZGVm
YXVsdElubGluZU1lZGlhUGxheWJhY2tSZXF1aXJlc1BsYXlzSW5saW5lQXR0cmlidXRlID0gZmFs
c2U7Ci1zdGF0aWMgY29uc3QgYm9vbCBkZWZhdWx0VmlkZW9QbGF5YmFja1JlcXVpcmVzVXNlckdl
c3R1cmUgPSBmYWxzZTsKLXN0YXRpYyBjb25zdCBib29sIGRlZmF1bHRBdWRpb1BsYXliYWNrUmVx
dWlyZXNVc2VyR2VzdHVyZSA9IGZhbHNlOwotc3RhdGljIGNvbnN0IGJvb2wgZGVmYXVsdE1lZGlh
RGF0YUxvYWRzQXV0b21hdGljYWxseSA9IHRydWU7Ci1zdGF0aWMgY29uc3QgYm9vbCBkZWZhdWx0
U2hvdWxkUmVzcGVjdEltYWdlT3JpZW50YXRpb24gPSBmYWxzZTsKLXN0YXRpYyBjb25zdCBib29s
IGRlZmF1bHRJbWFnZVN1YnNhbXBsaW5nRW5hYmxlZCA9IGZhbHNlOwotc3RhdGljIGNvbnN0IGJv
b2wgZGVmYXVsdFNjcm9sbGluZ1RyZWVJbmNsdWRlc0ZyYW1lcyA9IGZhbHNlOwotc3RhdGljIGNv
bnN0IGJvb2wgZGVmYXVsdE1lZGlhQ29udHJvbHNTY2FsZVdpdGhQYWdlWm9vbSA9IHRydWU7Ci1z
dGF0aWMgY29uc3QgYm9vbCBkZWZhdWx0UXVpY2tUaW1lUGx1Z2luUmVwbGFjZW1lbnRFbmFibGVk
ID0gZmFsc2U7Ci0jZW5kaWYKLQotc3RhdGljIGNvbnN0IGJvb2wgZGVmYXVsdFJlcXVpcmVzVXNl
ckdlc3R1cmVUb0xvYWRWaWRlbyA9IHRydWU7Ci1zdGF0aWMgY29uc3QgYm9vbCBkZWZhdWx0QWxs
b3dzUGljdHVyZUluUGljdHVyZU1lZGlhUGxheWJhY2sgPSB0cnVlOwotCi1zdGF0aWMgY29uc3Qg
ZG91YmxlIGRlZmF1bHRJbmNyZW1lbnRhbFJlbmRlcmluZ1N1cHByZXNzaW9uVGltZW91dEluU2Vj
b25kcyA9IDU7Ci0jaWYgVVNFKFVOSUZJRURfVEVYVF9DSEVDS0lORykKLXN0YXRpYyBjb25zdCBi
b29sIGRlZmF1bHRVbmlmaWVkVGV4dENoZWNrZXJFbmFibGVkID0gdHJ1ZTsKLSNlbHNlCi1zdGF0
aWMgY29uc3QgYm9vbCBkZWZhdWx0VW5pZmllZFRleHRDaGVja2VyRW5hYmxlZCA9IGZhbHNlOwot
I2VuZGlmCi1zdGF0aWMgY29uc3QgYm9vbCBkZWZhdWx0U21hcnRJbnNlcnREZWxldGVFbmFibGVk
ID0gdHJ1ZTsKLXN0YXRpYyBjb25zdCBib29sIGRlZmF1bHRTZWxlY3RUcmFpbGluZ1doaXRlc3Bh
Y2VFbmFibGVkID0gZmFsc2U7Ci0KIFJlZjxTZXR0aW5ncz4gU2V0dGluZ3M6OmNyZWF0ZShQYWdl
KiBwYWdlKQogewogICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNldHRpbmdzKHBhZ2UpKTsKQEAg
LTEzNCwxNiArNDgsNCBAQCBTZXR0aW5nczo6flNldHRpbmdzKCkKIAogU0VUVElOR1NfU0VUVEVS
X0JPRElFUwogCi1GcmFtZUZsYXR0ZW5pbmcgU2V0dGluZ3M6OmVmZmVjdGl2ZUZyYW1lRmxhdHRl
bmluZygpCi17Ci0jaWYgUExBVEZPUk0oSU9TKQotICAgIC8vIE9uIGlPUyB3aGVuIGFzeW5jIGZy
YW1lIHNjcm9sbGluZyBpcyBlbmFibGVkLCBpdCBkb2VzIG5vdCBtYWtlIHNlbnNlIHRvIHVzZSBm
dWxsIGZyYW1lIGZsYXR0ZW5pbmcuCi0gICAgLy8gSW4gdGhhdCBjYXNlLCB3ZSBqdXN0IGNvbnNp
ZGVyIHRoYXQgZnJhbWUgZmxhdHRlbmluZyBpcyBkaXNhYmxlZC4gVGhpcyBhbGxvd3MgcGVvcGxl
IHRvIHRlc3QKLSAgICAvLyBmcmFtZSBzY3JvbGxpbmcgb24gaU9TIGJ5IGVuYWJsaW5nICJBc3lu
YyBGcmFtZSBTY3JvbGxpbmciIHZpYSB0aGUgU2FmYXJpIG1lbnUuCi0gICAgaWYgKGFzeW5jRnJh
bWVTY3JvbGxpbmdFbmFibGVkKCkgJiYgZnJhbWVGbGF0dGVuaW5nKCkgPT0gRnJhbWVGbGF0dGVu
aW5nRnVsbHlFbmFibGVkKQotICAgICAgICByZXR1cm4gRnJhbWVGbGF0dGVuaW5nRGlzYWJsZWQ7
Ci0jZW5kaWYKLSAgICByZXR1cm4gZnJhbWVGbGF0dGVuaW5nKCk7Ci19Ci0KIH0gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmgJKHJldmlzaW9uIDIyMzM2NikK
KysrIFNvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuaAkod29ya2luZyBjb3B5KQpAQCAtMjcs
NiArMjcsOCBAQAogI3ByYWdtYSBvbmNlCiAKICNpbmNsdWRlICJTZXR0aW5nc0Jhc2UuaCIKKyNp
bmNsdWRlICJTZXR0aW5nc01hY3Jvcy5oIgorI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CiAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtMzYsMTggKzM4LDEyIEBAIHB1YmxpYzoKICAgICBz
dGF0aWMgUmVmPFNldHRpbmdzPiBjcmVhdGUoUGFnZSopOwogICAgIH5TZXR0aW5ncygpOwogCi0g
ICAgdm9pZCBwYWdlRGVzdHJveWVkKCkgeyBtX3BhZ2UgPSBudWxscHRyOyB9Ci0KICAgICBTRVRU
SU5HU19HRVRURVJTX0FORF9TRVRURVJTCiAKLQotICAgIFdFQkNPUkVfRVhQT1JUIEZyYW1lRmxh
dHRlbmluZyBlZmZlY3RpdmVGcmFtZUZsYXR0ZW5pbmcoKTsKLQogcHJpdmF0ZToKICAgICBleHBs
aWNpdCBTZXR0aW5ncyhQYWdlKik7CiAKICAgICBTRVRUSU5HU19NRU1CRVJfVkFSSUFCTEVTCi0K
IH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2Uv
U2V0dGluZ3MuaW4KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5p
bgkocmV2aXNpb24gMjIzMzY2KQorKysgU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5pbgko
d29ya2luZyBjb3B5KQpAQCAtMTc1LDcgKzE3NSw3IEBAIHNuYXBzaG90QWxsUGx1Z0lucyBpbml0
aWFsPWZhbHNlCiBhdXRvc3RhcnRPcmlnaW5QbHVnSW5TbmFwc2hvdHRpbmdFbmFibGVkIGluaXRp
YWw9dHJ1ZQogcHJpbWFyeVBsdWdJblNuYXBzaG90RGV0ZWN0aW9uRW5hYmxlZCBpbml0aWFsPXRy
dWUKIG1heGltdW1QbHVnSW5TbmFwc2hvdEF0dGVtcHRzIHR5cGU9dW5zaWduZWQsIGluaXRpYWw9
MjAKLWZyYW1lRmxhdHRlbmluZyB0eXBlPUZyYW1lRmxhdHRlbmluZywgaW5pdGlhbD1GcmFtZUZs
YXR0ZW5pbmdEaXNhYmxlZAorZnJhbWVGbGF0dGVuaW5nIHR5cGU9RnJhbWVGbGF0dGVuaW5nLCBp
bml0aWFsPUZyYW1lRmxhdHRlbmluZzo6RGlzYWJsZWQKIGFzeW5jRnJhbWVTY3JvbGxpbmdFbmFi
bGVkIGluaXRpYWw9ZmFsc2UKIAogd2ViU2VjdXJpdHlFbmFibGVkIGluaXRpYWw9dHJ1ZQpJbmRl
eDogU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5nc0Jhc2UuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzQmFzZS5oCShyZXZpc2lvbiAyMjMzNjYpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzQmFzZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMSw3ICsz
MSw3IEBACiAjaW5jbHVkZSAiRWRpdGluZ0JlaGF2aW9yVHlwZXMuaCIKICNpbmNsdWRlICJJbnRT
aXplLmgiCiAjaW5jbHVkZSAiU2VjdXJpdHlPcmlnaW4uaCIKLSNpbmNsdWRlICJTZXR0aW5nc01h
Y3Jvcy5oIgorI2luY2x1ZGUgIlN0b3JhZ2VNYXAuaCIKICNpbmNsdWRlICJUZXh0RmxhZ3MuaCIK
ICNpbmNsdWRlICJUaW1lci5oIgogI2luY2x1ZGUgIlVSTC5oIgpAQCAtODgsMTAgKzg4LDEwIEBA
IGVudW0gUERGSW1hZ2VDYWNoaW5nUG9saWN5IHsKICNlbmRpZgogfTsKIAotZW51bSBGcmFtZUZs
YXR0ZW5pbmcgewotICAgIEZyYW1lRmxhdHRlbmluZ0Rpc2FibGVkLAotICAgIEZyYW1lRmxhdHRl
bmluZ0VuYWJsZWRGb3JOb25GdWxsU2NyZWVuSUZyYW1lcywKLSAgICBGcmFtZUZsYXR0ZW5pbmdG
dWxseUVuYWJsZWQKK2VudW0gY2xhc3MgRnJhbWVGbGF0dGVuaW5nIHsKKyAgICBEaXNhYmxlZCwK
KyAgICBFbmFibGVkRm9yTm9uRnVsbFNjcmVlbklGcmFtZXMsCisgICAgRnVsbHlFbmFibGVkCiB9
OwogCiB0eXBlZGVmIHVuc2lnbmVkIERlYnVnT3ZlcmxheVJlZ2lvbnM7CkBAIC0xMDEsNiArMTAx
LDggQEAgY2xhc3MgU2V0dGluZ3NCYXNlIHsKIHB1YmxpYzoKICAgICB+U2V0dGluZ3NCYXNlKCk7
CiAKKyAgICB2b2lkIHBhZ2VEZXN0cm95ZWQoKSB7IG1fcGFnZSA9IG51bGxwdHI7IH0KKwogICAg
IGVudW0gY2xhc3MgRm9udExvYWRUaW1pbmdPdmVycmlkZSB7IE5vbmUsIEJsb2NrLCBTd2FwLCBG
YWlsdXJlIH07CiAKICAgICBlbnVtIGNsYXNzIEZvcmNlZEFjY2Vzc2liaWxpdHlWYWx1ZSB7IFN5
c3RlbSwgT24sIE9mZiB9OwpJbmRleDogU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5nc0RlZmF1
bHRWYWx1ZXMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzRGVm
YXVsdFZhbHVlcy5oCShub25leGlzdGVudCkKKysrIFNvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGlu
Z3NEZWZhdWx0VmFsdWVzLmgJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxMDAgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQg
SVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgIkVkaXRpbmdCZWhhdmlvclR5cGVzLmgi
CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworLy8gTk9URXMKKy8vICAxKSBFZGl0aW5nTWFjQmVo
YXZpb3IgY29tcHJpc2VzIFRpZ2VyLCBMZW9wYXJkLCBTbm93TGVvcGFyZCBhbmQgaU9TIGJ1aWxk
cywgYXMgd2VsbCBhcyBRdFdlYktpdCB3aGVuIGJ1aWx0IG9uIE1hYzsKKy8vICAyKSBFZGl0aW5n
V2luZG93c0JlaGF2aW9yIGNvbXByaXNlcyBXaW4zMiBidWlsZDsKKy8vICAzKSBFZGl0aW5nVW5p
eEJlaGF2aW9yIGNvbXByaXNlcyBhbGwgdW5peC1iYXNlZCBzeXN0ZW1zLCBidXQgRGFyd2luL01h
Y09TIChhbmQgdGhlbiBhYnVzaW5nIHRoZSB0ZXJtaW5vbG9neSk7CisvLyA5OSkgTWFjRWRpdGlu
Z0JlaGF2aW9yIGlzIHVzZWQgYXMgYSBmYWxsYmFjay4KK2lubGluZSBFZGl0aW5nQmVoYXZpb3JU
eXBlIGVkaXRpbmdCZWhhdmlvclR5cGVGb3JQbGF0Zm9ybSgpCit7CisjaWYgUExBVEZPUk0oSU9T
KQorICAgIHJldHVybiBFZGl0aW5nSU9TQmVoYXZpb3I7CisjZWxpZiBPUyhEQVJXSU4pCisgICAg
cmV0dXJuIEVkaXRpbmdNYWNCZWhhdmlvcjsKKyNlbGlmIE9TKFdJTkRPV1MpCisgICAgcmV0dXJu
IEVkaXRpbmdXaW5kb3dzQmVoYXZpb3I7CisjZWxpZiBPUyhVTklYKQorICAgIHJldHVybiBFZGl0
aW5nVW5peEJlaGF2aW9yOworI2Vsc2UKKyAgICAvLyBGYWxsYmFjaworICAgIHJldHVybiBFZGl0
aW5nTWFjQmVoYXZpb3I7CisjZW5kaWYKKyAgICAKK30KKworI2lmIFBMQVRGT1JNKENPQ09BKQor
c3RhdGljIGNvbnN0IGJvb2wgZGVmYXVsdFlvdVR1YmVGbGFzaFBsdWdpblJlcGxhY2VtZW50RW5h
YmxlZCA9IHRydWU7CisjZWxzZQorc3RhdGljIGNvbnN0IGJvb2wgZGVmYXVsdFlvdVR1YmVGbGFz
aFBsdWdpblJlcGxhY2VtZW50RW5hYmxlZCA9IGZhbHNlOworI2VuZGlmCisKKyNpZiBQTEFURk9S
TShJT1MpCitzdGF0aWMgY29uc3QgYm9vbCBkZWZhdWx0Rml4ZWRCYWNrZ3JvdW5kc1BhaW50UmVs
YXRpdmVUb0RvY3VtZW50ID0gdHJ1ZTsKK3N0YXRpYyBjb25zdCBib29sIGRlZmF1bHRBY2NlbGVy
YXRlZENvbXBvc2l0aW5nRm9yRml4ZWRQb3NpdGlvbkVuYWJsZWQgPSB0cnVlOworc3RhdGljIGNv
bnN0IGJvb2wgZGVmYXVsdEFsbG93c0lubGluZU1lZGlhUGxheWJhY2sgPSBmYWxzZTsKK3N0YXRp
YyBjb25zdCBib29sIGRlZmF1bHRJbmxpbmVNZWRpYVBsYXliYWNrUmVxdWlyZXNQbGF5c0lubGlu
ZUF0dHJpYnV0ZSA9IHRydWU7CitzdGF0aWMgY29uc3QgYm9vbCBkZWZhdWx0VmlkZW9QbGF5YmFj
a1JlcXVpcmVzVXNlckdlc3R1cmUgPSB0cnVlOworc3RhdGljIGNvbnN0IGJvb2wgZGVmYXVsdEF1
ZGlvUGxheWJhY2tSZXF1aXJlc1VzZXJHZXN0dXJlID0gdHJ1ZTsKK3N0YXRpYyBjb25zdCBib29s
IGRlZmF1bHRNZWRpYURhdGFMb2Fkc0F1dG9tYXRpY2FsbHkgPSBmYWxzZTsKK3N0YXRpYyBjb25z
dCBib29sIGRlZmF1bHRTaG91bGRSZXNwZWN0SW1hZ2VPcmllbnRhdGlvbiA9IHRydWU7CitzdGF0
aWMgY29uc3QgYm9vbCBkZWZhdWx0SW1hZ2VTdWJzYW1wbGluZ0VuYWJsZWQgPSB0cnVlOworc3Rh
dGljIGNvbnN0IGJvb2wgZGVmYXVsdFNjcm9sbGluZ1RyZWVJbmNsdWRlc0ZyYW1lcyA9IHRydWU7
CitzdGF0aWMgY29uc3QgYm9vbCBkZWZhdWx0TWVkaWFDb250cm9sc1NjYWxlV2l0aFBhZ2Vab29t
ID0gdHJ1ZTsKK3N0YXRpYyBjb25zdCBib29sIGRlZmF1bHRRdWlja1RpbWVQbHVnaW5SZXBsYWNl
bWVudEVuYWJsZWQgPSB0cnVlOworI2Vsc2UKK3N0YXRpYyBjb25zdCBib29sIGRlZmF1bHRGaXhl
ZEJhY2tncm91bmRzUGFpbnRSZWxhdGl2ZVRvRG9jdW1lbnQgPSBmYWxzZTsKK3N0YXRpYyBjb25z
dCBib29sIGRlZmF1bHRBY2NlbGVyYXRlZENvbXBvc2l0aW5nRm9yRml4ZWRQb3NpdGlvbkVuYWJs
ZWQgPSBmYWxzZTsKK3N0YXRpYyBjb25zdCBib29sIGRlZmF1bHRBbGxvd3NJbmxpbmVNZWRpYVBs
YXliYWNrID0gdHJ1ZTsKK3N0YXRpYyBjb25zdCBib29sIGRlZmF1bHRJbmxpbmVNZWRpYVBsYXli
YWNrUmVxdWlyZXNQbGF5c0lubGluZUF0dHJpYnV0ZSA9IGZhbHNlOworc3RhdGljIGNvbnN0IGJv
b2wgZGVmYXVsdFZpZGVvUGxheWJhY2tSZXF1aXJlc1VzZXJHZXN0dXJlID0gZmFsc2U7CitzdGF0
aWMgY29uc3QgYm9vbCBkZWZhdWx0QXVkaW9QbGF5YmFja1JlcXVpcmVzVXNlckdlc3R1cmUgPSBm
YWxzZTsKK3N0YXRpYyBjb25zdCBib29sIGRlZmF1bHRNZWRpYURhdGFMb2Fkc0F1dG9tYXRpY2Fs
bHkgPSB0cnVlOworc3RhdGljIGNvbnN0IGJvb2wgZGVmYXVsdFNob3VsZFJlc3BlY3RJbWFnZU9y
aWVudGF0aW9uID0gZmFsc2U7CitzdGF0aWMgY29uc3QgYm9vbCBkZWZhdWx0SW1hZ2VTdWJzYW1w
bGluZ0VuYWJsZWQgPSBmYWxzZTsKK3N0YXRpYyBjb25zdCBib29sIGRlZmF1bHRTY3JvbGxpbmdU
cmVlSW5jbHVkZXNGcmFtZXMgPSBmYWxzZTsKK3N0YXRpYyBjb25zdCBib29sIGRlZmF1bHRNZWRp
YUNvbnRyb2xzU2NhbGVXaXRoUGFnZVpvb20gPSB0cnVlOworc3RhdGljIGNvbnN0IGJvb2wgZGVm
YXVsdFF1aWNrVGltZVBsdWdpblJlcGxhY2VtZW50RW5hYmxlZCA9IGZhbHNlOworI2VuZGlmCisK
K3N0YXRpYyBjb25zdCBib29sIGRlZmF1bHRSZXF1aXJlc1VzZXJHZXN0dXJlVG9Mb2FkVmlkZW8g
PSB0cnVlOworc3RhdGljIGNvbnN0IGJvb2wgZGVmYXVsdEFsbG93c1BpY3R1cmVJblBpY3R1cmVN
ZWRpYVBsYXliYWNrID0gdHJ1ZTsKKworc3RhdGljIGNvbnN0IGRvdWJsZSBkZWZhdWx0SW5jcmVt
ZW50YWxSZW5kZXJpbmdTdXBwcmVzc2lvblRpbWVvdXRJblNlY29uZHMgPSA1OworI2lmIFVTRShV
TklGSUVEX1RFWFRfQ0hFQ0tJTkcpCitzdGF0aWMgY29uc3QgYm9vbCBkZWZhdWx0VW5pZmllZFRl
eHRDaGVja2VyRW5hYmxlZCA9IHRydWU7CisjZWxzZQorc3RhdGljIGNvbnN0IGJvb2wgZGVmYXVs
dFVuaWZpZWRUZXh0Q2hlY2tlckVuYWJsZWQgPSBmYWxzZTsKKyNlbmRpZgorc3RhdGljIGNvbnN0
IGJvb2wgZGVmYXVsdFNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCA9IHRydWU7CitzdGF0aWMgY29u
c3QgYm9vbCBkZWZhdWx0U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCA9IGZhbHNlOwor
Cit9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRnJhbWVTZXQuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGcmFtZVNldC5jcHAJ
KHJldmlzaW9uIDIyMzM2NikKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGcmFt
ZVNldC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTY1MSw3ICs2NTEsNyBAQCB2b2lkIFJlbmRlckZy
YW1lU2V0Ojpwb3NpdGlvbkZyYW1lc1dpdGhGCiAKIGJvb2wgUmVuZGVyRnJhbWVTZXQ6OmZsYXR0
ZW5GcmFtZVNldCgpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIHNldHRpbmdzKCkuZWZmZWN0aXZlRnJh
bWVGbGF0dGVuaW5nKCkgIT0gRnJhbWVGbGF0dGVuaW5nRGlzYWJsZWQ7CisgICAgcmV0dXJuIHZp
ZXcoKS5mcmFtZVZpZXcoKS5lZmZlY3RpdmVGcmFtZUZsYXR0ZW5pbmcoKSAhPSBGcmFtZUZsYXR0
ZW5pbmc6OkRpc2FibGVkOwogfQogCiB2b2lkIFJlbmRlckZyYW1lU2V0OjpzdGFydFJlc2l6aW5n
KEdyaWRBeGlzJiBheGlzLCBpbnQgcG9zaXRpb24pCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVySUZyYW1lLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVySUZyYW1lLmNwcAkocmV2aXNpb24gMjIzMzY2KQorKysgU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlcklGcmFtZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTc4LDcgKzc4
LDcgQEAgYm9vbCBSZW5kZXJJRnJhbWU6OmlzRnVsbFNjcmVlbklGcmFtZSgpIAogCiBib29sIFJl
bmRlcklGcmFtZTo6ZmxhdHRlbkZyYW1lKCkgY29uc3QKIHsKLSAgICBpZiAoc2V0dGluZ3MoKS5l
ZmZlY3RpdmVGcmFtZUZsYXR0ZW5pbmcoKSA9PSBGcmFtZUZsYXR0ZW5pbmdEaXNhYmxlZCkKKyAg
ICBpZiAodmlldygpLmZyYW1lVmlldygpLmVmZmVjdGl2ZUZyYW1lRmxhdHRlbmluZygpID09IEZy
YW1lRmxhdHRlbmluZzo6RGlzYWJsZWQpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIGlm
IChzdHlsZSgpLndpZHRoKCkuaXNGaXhlZCgpICYmIHN0eWxlKCkuaGVpZ2h0KCkuaXNGaXhlZCgp
KSB7CkBAIC04OSw3ICs4OSw3IEBAIGJvb2wgUmVuZGVySUZyYW1lOjpmbGF0dGVuRnJhbWUoKSBj
b25zdAogICAgICAgICBpZiAoc3R5bGUoKS53aWR0aCgpLnZhbHVlKCkgPD0gMCB8fCBzdHlsZSgp
LmhlaWdodCgpLnZhbHVlKCkgPD0gMCkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAg
ICAgLy8gRG8gbm90IGZsYXR0ZW4gImZ1bGxzY3JlZW4iIGlmcmFtZXMgb3IgdGhleSBjb3VsZCBi
ZWNvbWUgbGFyZ2VyIHRoYW4gdGhlIHZpZXdwb3J0LgotICAgICAgICBpZiAoc2V0dGluZ3MoKS5l
ZmZlY3RpdmVGcmFtZUZsYXR0ZW5pbmcoKSA8PSBGcmFtZUZsYXR0ZW5pbmdFbmFibGVkRm9yTm9u
RnVsbFNjcmVlbklGcmFtZXMgJiYgaXNGdWxsU2NyZWVuSUZyYW1lKCkpCisgICAgICAgIGlmICh2
aWV3KCkuZnJhbWVWaWV3KCkuZWZmZWN0aXZlRnJhbWVGbGF0dGVuaW5nKCkgPD0gRnJhbWVGbGF0
dGVuaW5nOjpFbmFibGVkRm9yTm9uRnVsbFNjcmVlbklGcmFtZXMgJiYgaXNGdWxsU2NyZWVuSUZy
YW1lKCkpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQogCkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVmlldy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlclZpZXcuY3BwCShyZXZpc2lvbiAyMjMzNjYpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVmlldy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTU5
LDcgKzU5LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogc3RydWN0IEZyYW1lRmxhdHRlbmluZ0xh
eW91dERpc2FsbG93ZXIgewogICAgIEZyYW1lRmxhdHRlbmluZ0xheW91dERpc2FsbG93ZXIoRnJh
bWVWaWV3JiBmcmFtZVZpZXcpCiAgICAgICAgIDogbV9mcmFtZVZpZXcoZnJhbWVWaWV3KQotICAg
ICAgICAsIG1fZGlzYWxsb3dMYXlvdXQoZnJhbWVWaWV3LmZyYW1lKCkuc2V0dGluZ3MoKS5lZmZl
Y3RpdmVGcmFtZUZsYXR0ZW5pbmcoKSAhPSBGcmFtZUZsYXR0ZW5pbmdEaXNhYmxlZCkKKyAgICAg
ICAgLCBtX2Rpc2FsbG93TGF5b3V0KGZyYW1lVmlldy5lZmZlY3RpdmVGcmFtZUZsYXR0ZW5pbmco
KSAhPSBGcmFtZUZsYXR0ZW5pbmc6OkRpc2FibGVkKQogICAgIHsKICAgICAgICAgaWYgKG1fZGlz
YWxsb3dMYXlvdXQpCiAgICAgICAgICAgICBtX2ZyYW1lVmlldy5zdGFydERpc2FsbG93aW5nTGF5
b3V0KCk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5j
cHAJKHJldmlzaW9uIDIyMzM2NikKKysrIFNvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxT
ZXR0aW5ncy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTgxOSwyNiArODE5LDExIEBAIEV4Y2VwdGlv
bk9yPHZvaWQ+IEludGVybmFsU2V0dGluZ3M6OnNldFMKICAgICByZXR1cm4gRXhjZXB0aW9uIHsg
SW52YWxpZEFjY2Vzc0Vycm9yIH07CiB9CiAKLXN0YXRpYyBGcmFtZUZsYXR0ZW5pbmcgaW50ZXJu
YWxTZXR0aW5nc1RvV2ViQ29yZVZhbHVlKEludGVybmFsU2V0dGluZ3M6OkZyYW1lRmxhdHRlbmlu
Z1ZhbHVlIHZhbHVlKQotewotICAgIHN3aXRjaCAodmFsdWUpIHsKLSAgICBjYXNlIEludGVybmFs
U2V0dGluZ3M6OkZyYW1lRmxhdHRlbmluZ1ZhbHVlOjpEaXNhYmxlZDoKLSAgICAgICAgcmV0dXJu
IEZyYW1lRmxhdHRlbmluZ0Rpc2FibGVkOwotICAgIGNhc2UgSW50ZXJuYWxTZXR0aW5nczo6RnJh
bWVGbGF0dGVuaW5nVmFsdWU6OkVuYWJsZWRGb3JOb25GdWxsU2NyZWVuSUZyYW1lczoKLSAgICAg
ICAgcmV0dXJuIEZyYW1lRmxhdHRlbmluZ0VuYWJsZWRGb3JOb25GdWxsU2NyZWVuSUZyYW1lczsK
LSAgICBjYXNlIEludGVybmFsU2V0dGluZ3M6OkZyYW1lRmxhdHRlbmluZ1ZhbHVlOjpGdWxseUVu
YWJsZWQ6Ci0gICAgICAgIHJldHVybiBGcmFtZUZsYXR0ZW5pbmdGdWxseUVuYWJsZWQ7Ci0gICAg
fQotCi0gICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgcmV0dXJuIEZyYW1lRmxhdHRlbmlu
Z0Rpc2FibGVkOwotfQotCi1FeGNlcHRpb25Pcjx2b2lkPiBJbnRlcm5hbFNldHRpbmdzOjpzZXRG
cmFtZUZsYXR0ZW5pbmcoY29uc3QgRnJhbWVGbGF0dGVuaW5nVmFsdWUmIGZyYW1lRmxhdHRlbmlu
ZykKK0V4Y2VwdGlvbk9yPHZvaWQ+IEludGVybmFsU2V0dGluZ3M6OnNldEZyYW1lRmxhdHRlbmlu
ZyhGcmFtZUZsYXR0ZW5pbmdWYWx1ZSBmcmFtZUZsYXR0ZW5pbmcpCiB7CiAgICAgaWYgKCFtX3Bh
Z2UpCiAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlkQWNjZXNzRXJyb3IgfTsKLSAg
ICBzZXR0aW5ncygpLnNldEZyYW1lRmxhdHRlbmluZyhpbnRlcm5hbFNldHRpbmdzVG9XZWJDb3Jl
VmFsdWUoZnJhbWVGbGF0dGVuaW5nKSk7CisgICAgc2V0dGluZ3MoKS5zZXRGcmFtZUZsYXR0ZW5p
bmcoZnJhbWVGbGF0dGVuaW5nKTsKICAgICByZXR1cm4geyB9OwogfQogCkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS90ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS90ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuaAkocmV2aXNpb24gMjIzMzY2KQorKysg
U291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmgJKHdvcmtpbmcgY29weSkK
QEAgLTEwMSw4ICsxMDEsOCBAQCBwdWJsaWM6CiAgICAgRXhjZXB0aW9uT3I8dm9pZD4gc2V0U2hv
dWxkTWFuYWdlQXVkaW9TZXNzaW9uQ2F0ZWdvcnkoYm9vbCk7CiAgICAgRXhjZXB0aW9uT3I8dm9p
ZD4gc2V0Q3VzdG9tUGFzdGVib2FyZERhdGFFbmFibGVkKGJvb2wpOwogCi0gICAgZW51bSBjbGFz
cyBGcmFtZUZsYXR0ZW5pbmdWYWx1ZSB7IERpc2FibGVkLCBFbmFibGVkRm9yTm9uRnVsbFNjcmVl
bklGcmFtZXMsIEZ1bGx5RW5hYmxlZCB9OwotICAgIEV4Y2VwdGlvbk9yPHZvaWQ+IHNldEZyYW1l
RmxhdHRlbmluZyhjb25zdCBGcmFtZUZsYXR0ZW5pbmdWYWx1ZSYpOworICAgIHVzaW5nIEZyYW1l
RmxhdHRlbmluZ1ZhbHVlID0gRnJhbWVGbGF0dGVuaW5nOworICAgIEV4Y2VwdGlvbk9yPHZvaWQ+
IHNldEZyYW1lRmxhdHRlbmluZyhGcmFtZUZsYXR0ZW5pbmdWYWx1ZSk7CiAgICAgCiAgICAgc3Rh
dGljIHZvaWQgc2V0QWxsb3dzQW55U1NMQ2VydGlmaWNhdGUoYm9vbCk7CiAKSW5kZXg6IFNvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9n
CShyZXZpc2lvbiAyMjMzNzEpCisrKyBTb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwkod29ya2luZyBj
b3B5KQpAQCAtMSwzICsxLDI1IEBACisyMDE3LTEwLTE2ICBTYW0gV2VpbmlnICA8c2FtQHdlYmtp
dC5vcmc+CisKKyAgICAgICAgW1NldHRpbmdzXSBSZW1vdmUgYWxsIGN1c3RvbSBjb2RlIGZyb20g
U2V0dGluZ3MuaC9jcHAKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTE3ODMzMAorCisgICAgICAgICogU2hhcmVkL1dlYlByZWZlcmVuY2VzRGVmaW5pdGlv
bnMuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tQcmVmZXJlbmNlcy5jcHA6CisgICAg
ICAgIChXS1ByZWZlcmVuY2VzU2V0RnJhbWVGbGF0dGVuaW5nRW5hYmxlZCk6CisgICAgICAgIChX
S1ByZWZlcmVuY2VzR2V0RnJhbWVGbGF0dGVuaW5nRW5hYmxlZCk6CisgICAgICAgICogVUlQcm9j
ZXNzL0FQSS9nbGliL1dlYktpdFNldHRpbmdzLmNwcDoKKyAgICAgICAgKHdlYmtpdF9zZXR0aW5n
c19nZXRfZW5hYmxlX2ZyYW1lX2ZsYXR0ZW5pbmcpOgorICAgICAgICAod2Via2l0X3NldHRpbmdz
X3NldF9lbmFibGVfZnJhbWVfZmxhdHRlbmluZyk6CisgICAgICAgICogV2ViUHJvY2Vzcy9Jbmpl
Y3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OkluamVjdGVk
QnVuZGxlOjpzZXRGcmFtZUZsYXR0ZW5pbmdFbmFibGVkKToKKyAgICAgICAgCisgICAgICAgICAg
ICBVcGRhdGUgZm9yIG5hbWluZyBjaGFuZ2VzIG9mIEZyYW1lRmxhdHRlbmluZyBub3cgdGhhdCBp
dCBpcyBhbiBlbnVtIGNsYXNzLgorCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9XZWJDaHJvbWVDbGllbnQuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJDaHJvbWVDbGllbnQ6
OmNvbnRlbnRzU2l6ZUNoYW5nZWQgY29uc3QpOgorCisgICAgICAgICAgICBHZSB0aGUgZWZmZWN0
aXZlRnJhbWVGbGF0dGVuaW5nIGZyb20gdGhlIEZyYW1lVmlldywgcmF0aGVyIHRoYW4gdGhlIFNl
dHRpbmdzLgorCiAyMDE3LTEwLTEzICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4K
IAogICAgICAgICBJbXBsZW1lbnQgbGlzdGluZyBvcmlnaW5zIGZvciB3aGljaCBDYWNoZVN0b3Jh
Z2UgaXMgc3RvcmluZyBkYXRhCkluZGV4OiBTb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcmVmZXJl
bmNlc0RlZmluaXRpb25zLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9TaGFyZWQvV2Vi
UHJlZmVyZW5jZXNEZWZpbml0aW9ucy5oCShyZXZpc2lvbiAyMjMzNjYpCisrKyBTb3VyY2UvV2Vi
S2l0L1NoYXJlZC9XZWJQcmVmZXJlbmNlc0RlZmluaXRpb25zLmgJKHdvcmtpbmcgY29weSkKQEAg
LTYwLDcgKzYwLDcgQEAKICNpZiBQTEFURk9STShJT1MpCiAjZGVmaW5lIERFRkFVTFRfQUxMT1dT
X1BJQ1RVUkVfSU5fUElDVFVSRV9NRURJQV9QTEFZQkFDSyB0cnVlCiAjZGVmaW5lIERFRkFVTFRf
QkFDS1NQQUNFX0tFWV9OQVZJR0FUSU9OX0VOQUJMRUQgZmFsc2UKLSNkZWZpbmUgREVGQVVMVF9G
UkFNRV9GTEFUVEVOSU5HIEZyYW1lRmxhdHRlbmluZ0Z1bGx5RW5hYmxlZAorI2RlZmluZSBERUZB
VUxUX0ZSQU1FX0ZMQVRURU5JTkcgRnJhbWVGbGF0dGVuaW5nOjpGdWxseUVuYWJsZWQKICNkZWZp
bmUgREVGQVVMVF9TSE9VTERfUFJJTlRfQkFDS0dST1VORFMgdHJ1ZQogI2RlZmluZSBERUZBVUxU
X1RFWFRfQVJFQVNfQVJFX1JFU0laQUJMRSBmYWxzZQogI2RlZmluZSBERUZBVUxUX0pBVkFTQ1JJ
UFRfQ0FOX09QRU5fV0lORE9XU19BVVRPTUFUSUNBTExZIGZhbHNlCkBAIC03OCw3ICs3OCw3IEBA
CiAjZWxzZQogI2RlZmluZSBERUZBVUxUX0FMTE9XU19QSUNUVVJFX0lOX1BJQ1RVUkVfTUVESUFf
UExBWUJBQ0sgZmFsc2UKICNkZWZpbmUgREVGQVVMVF9CQUNLU1BBQ0VfS0VZX05BVklHQVRJT05f
RU5BQkxFRCB0cnVlCi0jZGVmaW5lIERFRkFVTFRfRlJBTUVfRkxBVFRFTklORyBGcmFtZUZsYXR0
ZW5pbmdEaXNhYmxlZAorI2RlZmluZSBERUZBVUxUX0ZSQU1FX0ZMQVRURU5JTkcgRnJhbWVGbGF0
dGVuaW5nOjpEaXNhYmxlZAogI2RlZmluZSBERUZBVUxUX1NIT1VMRF9QUklOVF9CQUNLR1JPVU5E
UyBmYWxzZQogI2RlZmluZSBERUZBVUxUX1RFWFRfQVJFQVNfQVJFX1JFU0laQUJMRSB0cnVlCiAj
ZGVmaW5lIERFRkFVTFRfSkFWQVNDUklQVF9DQU5fT1BFTl9XSU5ET1dTX0FVVE9NQVRJQ0FMTFkg
dHJ1ZQpJbmRleDogU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQcmVmZXJlbmNlcy5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQcmVmZXJl
bmNlcy5jcHAJKHJldmlzaW9uIDIyMzM2NikKKysrIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9DL1dLUHJlZmVyZW5jZXMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNDUsMTMgKzE0NSwxMyBA
QCBib29sIFdLUHJlZmVyZW5jZXNHZXRYU1NBdWRpdG9yRW5hYmxlZChXCiB2b2lkIFdLUHJlZmVy
ZW5jZXNTZXRGcmFtZUZsYXR0ZW5pbmdFbmFibGVkKFdLUHJlZmVyZW5jZXNSZWYgcHJlZmVyZW5j
ZXNSZWYsIGJvb2wgZnJhbWVGbGF0dGVuaW5nRW5hYmxlZCkKIHsKICAgICAvLyBGSVhNRTogRXhw
b3NlIG1vcmUgZnJhbWUgZmxhdHRlbmluZyB2YWx1ZXMuCi0gICAgdG9JbXBsKHByZWZlcmVuY2Vz
UmVmKS0+c2V0RnJhbWVGbGF0dGVuaW5nKGZyYW1lRmxhdHRlbmluZ0VuYWJsZWQgPyBXZWJDb3Jl
OjpGcmFtZUZsYXR0ZW5pbmdGdWxseUVuYWJsZWQgOiBXZWJDb3JlOjpGcmFtZUZsYXR0ZW5pbmdE
aXNhYmxlZCk7CisgICAgdG9JbXBsKHByZWZlcmVuY2VzUmVmKS0+c2V0RnJhbWVGbGF0dGVuaW5n
KGZyYW1lRmxhdHRlbmluZ0VuYWJsZWQgPyBzdGF0aWNfY2FzdDx1aW50MzJfdD4oV2ViQ29yZTo6
RnJhbWVGbGF0dGVuaW5nOjpGdWxseUVuYWJsZWQpIDogc3RhdGljX2Nhc3Q8dWludDMyX3Q+KFdl
YkNvcmU6OkZyYW1lRmxhdHRlbmluZzo6RGlzYWJsZWQpKTsKIH0KIAogYm9vbCBXS1ByZWZlcmVu
Y2VzR2V0RnJhbWVGbGF0dGVuaW5nRW5hYmxlZChXS1ByZWZlcmVuY2VzUmVmIHByZWZlcmVuY2Vz
UmVmKQogewogICAgIC8vIEZJWE1FOiBFeHBvc2UgbW9yZSBmcmFtZSBmbGF0dGVuaW5nIHZhbHVl
cy4KLSAgICByZXR1cm4gdG9JbXBsKHByZWZlcmVuY2VzUmVmKS0+ZnJhbWVGbGF0dGVuaW5nKCkg
IT0gV2ViQ29yZTo6RnJhbWVGbGF0dGVuaW5nRGlzYWJsZWQ7CisgICAgcmV0dXJuIHRvSW1wbChw
cmVmZXJlbmNlc1JlZiktPmZyYW1lRmxhdHRlbmluZygpICE9IHN0YXRpY19jYXN0PHVpbnQzMl90
PihXZWJDb3JlOjpGcmFtZUZsYXR0ZW5pbmc6OkRpc2FibGVkKTsKIH0KIAogdm9pZCBXS1ByZWZl
cmVuY2VzU2V0UGx1Z2luc0VuYWJsZWQoV0tQcmVmZXJlbmNlc1JlZiBwcmVmZXJlbmNlc1JlZiwg
Ym9vbCBwbHVnaW5zRW5hYmxlZCkKSW5kZXg6IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9n
bGliL1dlYktpdFNldHRpbmdzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvZ2xpYi9XZWJLaXRTZXR0aW5ncy5jcHAJKHJldmlzaW9uIDIyMzM2NikKKysrIFNv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFNldHRpbmdzLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMTYyMCw3ICsxNjIwLDcgQEAgZ2Jvb2xlYW4gd2Via2l0X3NldHRpbmdzX2dl
dF9lbmFibGVfZnJhbQogICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKFdFQktJVF9JU19TRVRUSU5H
UyhzZXR0aW5ncyksIEZBTFNFKTsKIAogICAgIC8vIEZJWE1FOiBFeHBvc2UgbW9yZSBmcmFtZSBm
bGF0dGVuaW5nIHZhbHVlcy4KLSAgICByZXR1cm4gc2V0dGluZ3MtPnByaXYtPnByZWZlcmVuY2Vz
LT5mcmFtZUZsYXR0ZW5pbmcoKSAhPSBXZWJDb3JlOjpGcmFtZUZsYXR0ZW5pbmdEaXNhYmxlZDsK
KyAgICByZXR1cm4gc2V0dGluZ3MtPnByaXYtPnByZWZlcmVuY2VzLT5mcmFtZUZsYXR0ZW5pbmco
KSAhPSBzdGF0aWNfY2FzdDx1aW50MzJfdD4oV2ViQ29yZTo6RnJhbWVGbGF0dGVuaW5nOjpEaXNh
YmxlZCk7CiB9CiAKIC8qKgpAQCAtMTYzNSwxMiArMTYzNSwxMiBAQCB2b2lkIHdlYmtpdF9zZXR0
aW5nc19zZXRfZW5hYmxlX2ZyYW1lX2ZsCiAgICAgZ19yZXR1cm5faWZfZmFpbChXRUJLSVRfSVNf
U0VUVElOR1Moc2V0dGluZ3MpKTsKIAogICAgIFdlYktpdFNldHRpbmdzUHJpdmF0ZSogcHJpdiA9
IHNldHRpbmdzLT5wcml2OwotICAgIGJvb2wgY3VycmVudFZhbHVlID0gcHJpdi0+cHJlZmVyZW5j
ZXMtPmZyYW1lRmxhdHRlbmluZygpICE9IFdlYkNvcmU6OkZyYW1lRmxhdHRlbmluZ0Rpc2FibGVk
OworICAgIGJvb2wgY3VycmVudFZhbHVlID0gcHJpdi0+cHJlZmVyZW5jZXMtPmZyYW1lRmxhdHRl
bmluZygpICE9IHN0YXRpY19jYXN0PHVpbnQzMl90PihXZWJDb3JlOjpGcmFtZUZsYXR0ZW5pbmc6
OkRpc2FibGVkKTsKICAgICBpZiAoY3VycmVudFZhbHVlID09IGVuYWJsZWQpCiAgICAgICAgIHJl
dHVybjsKIAogICAgIC8vIEZJWE1FOiBFeHBvc2UgbW9yZSBmcmFtZSBmbGF0dGVuaW5nIHZhbHVl
cy4KLSAgICBwcml2LT5wcmVmZXJlbmNlcy0+c2V0RnJhbWVGbGF0dGVuaW5nKGVuYWJsZWQgPyBX
ZWJDb3JlOjpGcmFtZUZsYXR0ZW5pbmdGdWxseUVuYWJsZWQgOiBXZWJDb3JlOjpGcmFtZUZsYXR0
ZW5pbmdEaXNhYmxlZCk7CisgICAgcHJpdi0+cHJlZmVyZW5jZXMtPnNldEZyYW1lRmxhdHRlbmlu
ZyhlbmFibGVkID8gc3RhdGljX2Nhc3Q8dWludDMyX3Q+KFdlYkNvcmU6OkZyYW1lRmxhdHRlbmlu
Zzo6RnVsbHlFbmFibGVkKSA6IHN0YXRpY19jYXN0PHVpbnQzMl90PihXZWJDb3JlOjpGcmFtZUZs
YXR0ZW5pbmc6OkRpc2FibGVkKSk7CiAgICAgZ19vYmplY3Rfbm90aWZ5KEdfT0JKRUNUKHNldHRp
bmdzKSwgImVuYWJsZS1mcmFtZS1mbGF0dGVuaW5nIik7CiB9CiAKSW5kZXg6IFNvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVu
ZGxlLmNwcAkocmV2aXNpb24gMjIzMzY2KQorKysgU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0lu
amVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzAwLDcg
KzMwMCw3IEBAIHZvaWQgSW5qZWN0ZWRCdW5kbGU6OnNldEZyYW1lRmxhdHRlbmluZ0UKIHsKICAg
ICBjb25zdCBIYXNoU2V0PFBhZ2UqPiYgcGFnZXMgPSBQYWdlR3JvdXA6OnBhZ2VHcm91cChwYWdl
R3JvdXAtPmlkZW50aWZpZXIoKSktPnBhZ2VzKCk7CiAgICAgZm9yIChIYXNoU2V0PFBhZ2UqPjo6
aXRlcmF0b3IgaXRlciA9IHBhZ2VzLmJlZ2luKCk7IGl0ZXIgIT0gcGFnZXMuZW5kKCk7ICsraXRl
cikKLSAgICAgICAgKCppdGVyKS0+c2V0dGluZ3MoKS5zZXRGcmFtZUZsYXR0ZW5pbmcoZW5hYmxl
ZCA/IEZyYW1lRmxhdHRlbmluZ0Z1bGx5RW5hYmxlZCA6IEZyYW1lRmxhdHRlbmluZ0Rpc2FibGVk
KTsKKyAgICAgICAgKCppdGVyKS0+c2V0dGluZ3MoKS5zZXRGcmFtZUZsYXR0ZW5pbmcoZW5hYmxl
ZCA/IEZyYW1lRmxhdHRlbmluZzo6RnVsbHlFbmFibGVkIDogRnJhbWVGbGF0dGVuaW5nOjpEaXNh
YmxlZCk7CiB9CiAKIHZvaWQgSW5qZWN0ZWRCdW5kbGU6OnNldEFzeW5jRnJhbWVTY3JvbGxpbmdF
bmFibGVkKFdlYlBhZ2VHcm91cFByb3h5KiBwYWdlR3JvdXAsIGJvb2wgZW5hYmxlZCkKSW5kZXg6
IFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9XZWJDaHJvbWVDbGllbnQuY3BwCShyZXZpc2lvbiAyMjMzNjYpCisrKyBTb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcAkod29ya2luZyBj
b3B5KQpAQCAtNTY2LDcgKzU2Niw5IEBAIFBsYXRmb3JtUGFnZUNsaWVudCBXZWJDaHJvbWVDbGll
bnQ6OnBsYXQKIAogdm9pZCBXZWJDaHJvbWVDbGllbnQ6OmNvbnRlbnRzU2l6ZUNoYW5nZWQoRnJh
bWUmIGZyYW1lLCBjb25zdCBJbnRTaXplJiBzaXplKSBjb25zdAogewotICAgIGlmIChtX3BhZ2Uu
Y29yZVBhZ2UoKS0+c2V0dGluZ3MoKS5lZmZlY3RpdmVGcmFtZUZsYXR0ZW5pbmcoKSA9PSBGcmFt
ZUZsYXR0ZW5pbmdEaXNhYmxlZCkgeworICAgIEZyYW1lVmlldyogZnJhbWVWaWV3ID0gZnJhbWUu
dmlldygpOworCisgICAgaWYgKGZyYW1lVmlldyAmJiBmcmFtZVZpZXctPmVmZmVjdGl2ZUZyYW1l
RmxhdHRlbmluZygpID09IEZyYW1lRmxhdHRlbmluZzo6RGlzYWJsZWQpIHsKICAgICAgICAgV2Vi
RnJhbWUqIGxhcmdlc3RGcmFtZSA9IGZpbmRMYXJnZXN0RnJhbWVJbkZyYW1lU2V0KG1fcGFnZSk7
CiAgICAgICAgIGlmIChsYXJnZXN0RnJhbWUgIT0gbV9jYWNoZWRGcmFtZVNldExhcmdlc3RGcmFt
ZS5nZXQoKSkgewogICAgICAgICAgICAgbV9jYWNoZWRGcmFtZVNldExhcmdlc3RGcmFtZSA9IGxh
cmdlc3RGcmFtZTsKQEAgLTU4MSw3ICs1ODMsNiBAQCB2b2lkIFdlYkNocm9tZUNsaWVudDo6Y29u
dGVudHNTaXplQ2hhbmdlCiAKICAgICBtX3BhZ2UuZHJhd2luZ0FyZWEoKS0+bWFpbkZyYW1lQ29u
dGVudFNpemVDaGFuZ2VkKHNpemUpOwogCi0gICAgRnJhbWVWaWV3KiBmcmFtZVZpZXcgPSBmcmFt
ZS52aWV3KCk7CiAgICAgaWYgKGZyYW1lVmlldyAmJiAhZnJhbWVWaWV3LT5kZWxlZ2F0ZXNTY3Jv
bGxpbmcoKSkgIHsKICAgICAgICAgYm9vbCBoYXNIb3Jpem9udGFsU2Nyb2xsYmFyID0gZnJhbWVW
aWV3LT5ob3Jpem9udGFsU2Nyb2xsYmFyKCk7CiAgICAgICAgIGJvb2wgaGFzVmVydGljYWxTY3Jv
bGxiYXIgPSBmcmFtZVZpZXctPnZlcnRpY2FsU2Nyb2xsYmFyKCk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>323897</attachid>
            <date>2017-10-16 08:38:30 -0700</date>
            <delta_ts>2017-10-16 10:57:24 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-178330-20171016083737.patch</filename>
            <type>text/plain</type>
            <size>31133</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIyMzM2NikKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDU3IEBACisyMDE3LTEwLTE2ICBTYW0gV2Vp
bmlnICA8c2FtQHdlYmtpdC5vcmc+CisKKyAgICAgICAgW1NldHRpbmdzXSBSZW1vdmUgYWxsIGN1
c3RvbSBjb2RlIGZyb20gU2V0dGluZ3MuaC9jcHAKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTE3ODMzMAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIFJlbW92ZXMgdGhlIHR3byByZW1haW5pbmcgZnVuY3Rpb25z
IG91dCBvZiBTZXR0aW5ncyBwYXZpbmcgdGhlIHdheQorICAgICAgICBmb3IgdGhlIGZpbGUgdG8g
YmUgZ2VuZXJhdGVkLgorICAgICAgICAKKyAgICAgICAgLSBwYWdlRGVzdHJveWVkIHdhcyBtb3Zl
ZCBkb3duIGludG8gU2V0dGluZ3NCYXNlLgorICAgICAgICAtIGVmZmVjdGl2ZUZyYW1lRmxhdHRl
bmluZyB3YXMgbW92ZWQgdG8gRnJhbWVWaWV3ICh0byByZWR1Y2UgdGhlIG5lZWQKKyAgICAgICAg
ICBmb3IgYWRkaXRpb25hbCBpbmNsdWRlcywgdGhlIEZyYW1lRmxhdHRlbmluZyBlbnVtIHdhcyBj
b252ZXJ0ZWQgdG8KKyAgICAgICAgICBhbiBlbnVtIGNsYXNzIHRvIGFsbG93IGl0IHRvIGJlIGZv
cndhcmQgZGVjbGFyZWQpLgorICAgICAgICAgIAorICAgICAgICBBbHNvIG1vdmVzIGRlZmF1bHQg
dmFsdWVzIGludG8gU2V0dGluZ3NEZWZhdWx0VmFsdWVzLmgKKworICAgICAgICAqIFdlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgCisgICAgICAgICAgICBBZGQgbmV3
IGZpbGVzLgorICAgICAgICAKKyAgICAgICAgKiBwYWdlL0ZyYW1lVmlldy5jcHA6CisgICAgICAg
ICogcGFnZS9GcmFtZVZpZXcuaDoKKworICAgICAgICAgICAgTW92ZSBlZmZlY3RpdmVGcmFtZUZs
YXR0ZW5pbmcgZnVuY3Rpb24gaGVyZSBmcm9tIFNldHRpbmdzLgorCisgICAgICAgICogcGFnZS9T
ZXR0aW5ncy5jcHA6CisgICAgICAgICogcGFnZS9TZXR0aW5ncy5oOgorCisgICAgICAgICAgICBN
b3ZlIGVmZmVjdGl2ZUZyYW1lRmxhdHRlbmluZywgcGFnZURlc3Ryb3llZCBhbmQgZGVmYXVsdCB2
YWx1ZXMgb3V0LgorCisgICAgICAgICogcGFnZS9TZXR0aW5ncy5pbjoKKyAgICAgICAgCisgICAg
ICAgICAgICBVcGRhdGUgZm9yIHR1cm5pbmcgRnJhbWVGbGF0dGVuaW5nIGludG8gYW4gZW51bSBj
bGFzcy4KKyAgICAgICAgCisgICAgICAgICogcGFnZS9TZXR0aW5nc0Jhc2UuaDoKKworICAgICAg
ICAgICAgVHVybiBGcmFtZUZsYXR0ZW5pbmcgaW50byBhbiBlbnVtIGNsYXNzIGFuZCBtb3ZlIHBh
Z2VEZXN0cm95ZWQgaGVyZS4KKworICAgICAgICAqIHBhZ2UvU2V0dGluZ3NEZWZhdWx0VmFsdWVz
Lmg6IEFkZGVkLgorCisgICAgICAgICAgICBNb3ZlIGFsbCB0aGUgZGVmYXVsdCB2YWx1ZXMgZnJv
bSBTZXR0aW5ncyBoZXJlLgorCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckZyYW1lU2V0LmNw
cDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVySUZyYW1lLmNwcDoKKyAgICAgICAgKiByZW5k
ZXJpbmcvUmVuZGVyVmlldy5jcHA6CisKKyAgICAgICAgICAgIEdldCBlZmZlY3RpdmVGcmFtZUZs
YXR0ZW5pbmcgZnJvbSB0aGUgRnJhbWVWaWV3LgorCisgICAgICAgICogdGVzdGluZy9JbnRlcm5h
bFNldHRpbmdzLmNwcDoKKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuaDoKKyAg
ICAgICAgCisgICAgICAgICAgICBVcGRhdGUgbm93IHRoYXQgRnJhbWVGbGF0dGVuaW5nIGlzIGFu
IGVudW0gY2xhc3MuCisKIDIwMTctMTAtMTYgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBh
cHBsZS5jb20+CiAKICAgICAgICAgT24gVG9ULCBldmVudC5kYXRhVHJhbnNmZXIuZ2V0RGF0YSgi
dGV4dC91cmktbGlzdCIpIHJldHVybnMgYW4gZW1wdHkgc3RyaW5nIHdoZW4gZHJhZ2dpbmcgYW4g
aW1hZ2UKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oJKHJldmlzaW9uIDIyMzM2NikKKysrIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkod29ya2luZyBjb3B5KQpAQCAtMTE0ODQsNiArMTE0
ODQsNyBAQAogCQk3QzY1NzlFRDFFMDA4NTY2MDBFM0EyN0EgLyogSlNBcHBsZVBheVNoaXBwaW5n
TWV0aG9kLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTQXBwbGVQ
YXlTaGlwcGluZ01ldGhvZC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdDNjU3
OUVFMUUwMDg1NjYwMEUzQTI3QSAvKiBKU0FwcGxlUGF5U2hpcHBpbmdNZXRob2QuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNBcHBsZVBheVNoaXBwaW5nTWV0aG9kLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdDNjc1MkJBMUIwNkU4MjAwMEMyNzlDQiAvKiBO
b25FbGVtZW50UGFyZW50Tm9kZS5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gTm9uRWxlbWVu
dFBhcmVudE5vZGUuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk3QzZFRkVFQTFG
OTQ2QTJFMDBGRkFENDEgLyogU2V0dGluZ3NEZWZhdWx0VmFsdWVzLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFNldHRpbmdzRGVmYXVsdFZhbHVlcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3
QzczRkIwNTE5MUVGNDE2MDA3REUwNjEgLyogVXNlck1lc3NhZ2VIYW5kbGVyc05hbWVzcGFjZS5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBVc2VyTWVzc2FnZUhhbmRs
ZXJzTmFtZXNwYWNlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0M3M0ZCMDYx
OTFFRjQxNzAwN0RFMDYxIC8qIFVzZXJNZXNzYWdlSGFuZGxlcnNOYW1lc3BhY2UuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVXNlck1lc3NhZ2VIYW5kbGVyc05hbWVzcGFjZS5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3QzczRkIwOTE5MUVGNDlGMDA3REUwNjEg
LyogVXNlck1lc3NhZ2VIYW5kbGVyc05hbWVzcGFjZS5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gVXNlck1lc3NhZ2VIYW5k
bGVyc05hbWVzcGFjZS5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xOTg4NCw2
ICsxOTg4NSw3IEBACiAJCQkJQkM1OURFRjgxNjlERURDMzAwMTZBQzM0IC8qIFNldHRpbmdzLmlu
ICovLAogCQkJCTdDQzY2MDlCMUY5MzA1NzkwMEQ1MDBFOSAvKiBTZXR0aW5nc0Jhc2UuY3BwICov
LAogCQkJCTdDQzY2MDk5MUY5MzA1NzgwMEQ1MDBFOSAvKiBTZXR0aW5nc0Jhc2UuaCAqLywKKwkJ
CQk3QzZFRkVFQTFGOTQ2QTJFMDBGRkFENDEgLyogU2V0dGluZ3NEZWZhdWx0VmFsdWVzLmggKi8s
CiAJCQkJNUM2ODhBQTIxRDM4MTI2RjAwMEI1NEZBIC8qIFNvY2tldFByb3ZpZGVyLmNwcCAqLywK
IAkJCQk1QzdDODhENzFEMEYxRjJCMDA5RDJGNkQgLyogU29ja2V0UHJvdmlkZXIuaCAqLywKIAkJ
CQk2MjZDREUwQzExNDA0MjRDMDAxRTVBNjggLyogU3BhdGlhbE5hdmlnYXRpb24uY3BwICovLApJ
bmRleDogU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcAkocmV2aXNpb24gMjIzMzY2KQorKysgU291
cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01NjYsOSAr
NTY2LDIxIEBAIHZvaWQgRnJhbWVWaWV3OjpzZXRNYXJnaW5IZWlnaHQoTGF5b3V0VW4KICAgICBt
X21hcmdpbnMuc2V0SGVpZ2h0KGgpOwogfQogCitGcmFtZUZsYXR0ZW5pbmcgRnJhbWVWaWV3Ojpl
ZmZlY3RpdmVGcmFtZUZsYXR0ZW5pbmcoKSBjb25zdAoreworI2lmIFBMQVRGT1JNKElPUykKKyAg
ICAvLyBPbiBpT1Mgd2hlbiBhc3luYyBmcmFtZSBzY3JvbGxpbmcgaXMgZW5hYmxlZCwgaXQgZG9l
cyBub3QgbWFrZSBzZW5zZSB0byB1c2UgZnVsbCBmcmFtZSBmbGF0dGVuaW5nLgorICAgIC8vIElu
IHRoYXQgY2FzZSwgd2UganVzdCBjb25zaWRlciB0aGF0IGZyYW1lIGZsYXR0ZW5pbmcgaXMgZGlz
YWJsZWQuIFRoaXMgYWxsb3dzIHBlb3BsZSB0byB0ZXN0CisgICAgLy8gZnJhbWUgc2Nyb2xsaW5n
IG9uIGlPUyBieSBlbmFibGluZyAiQXN5bmMgRnJhbWUgU2Nyb2xsaW5nIiB2aWEgdGhlIFNhZmFy
aSBtZW51LgorICAgIGlmIChmcmFtZSgpLnNldHRpbmdzKCkuYXN5bmNGcmFtZVNjcm9sbGluZ0Vu
YWJsZWQoKSAmJiBmcmFtZSgpLnNldHRpbmdzKCkuZnJhbWVGbGF0dGVuaW5nKCkgPT0gRnJhbWVG
bGF0dGVuaW5nOjpGdWxseUVuYWJsZWQpCisgICAgICAgIHJldHVybiBGcmFtZUZsYXR0ZW5pbmc6
OkRpc2FibGVkOworI2VuZGlmCisgICAgcmV0dXJuIGZyYW1lKCkuc2V0dGluZ3MoKS5mcmFtZUZs
YXR0ZW5pbmcoKTsKK30KKwogYm9vbCBGcmFtZVZpZXc6OmZyYW1lRmxhdHRlbmluZ0VuYWJsZWQo
KSBjb25zdAogewotICAgIHJldHVybiBmcmFtZSgpLnNldHRpbmdzKCkuZWZmZWN0aXZlRnJhbWVG
bGF0dGVuaW5nKCkgIT0gRnJhbWVGbGF0dGVuaW5nRGlzYWJsZWQ7CisgICAgcmV0dXJuIGVmZmVj
dGl2ZUZyYW1lRmxhdHRlbmluZygpICE9IEZyYW1lRmxhdHRlbmluZzo6RGlzYWJsZWQ7CiB9CiAK
IGJvb2wgRnJhbWVWaWV3Ojppc0ZyYW1lRmxhdHRlbmluZ1ZhbGlkRm9yVGhpc0ZyYW1lKCkgY29u
c3QKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuaAkocmV2aXNpb24gMjIzMzY2KQorKysgU291
cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuaAkod29ya2luZyBjb3B5KQpAQCAtNjEsNiArNjEs
OCBAQCBjbGFzcyBSZW5kZXJTdHlsZTsKIGNsYXNzIFJlbmRlclZpZXc7CiBjbGFzcyBSZW5kZXJX
aWRnZXQ7CiAKK2VudW0gY2xhc3MgRnJhbWVGbGF0dGVuaW5nOworCiBQYWdpbmF0aW9uOjpNb2Rl
IHBhZ2luYXRpb25Nb2RlRm9yUmVuZGVyU3R5bGUoY29uc3QgUmVuZGVyU3R5bGUmKTsKIAogY2xh
c3MgRnJhbWVWaWV3IGZpbmFsIDogcHVibGljIFNjcm9sbFZpZXcgewpAQCAtNjM1LDYgKzYzNyw4
IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgc2V0U3BlY3VsYXRpdmVUaWxpbmdEZWxheURpc2FibGVk
Rm9yVGVzdGluZyhib29sIGRpc2FibGVkKSB7IG1fc3BlY3VsYXRpdmVUaWxpbmdEZWxheURpc2Fi
bGVkRm9yVGVzdGluZyA9IGRpc2FibGVkOyB9CiAKKyAgICBXRUJDT1JFX0VYUE9SVCBGcmFtZUZs
YXR0ZW5pbmcgZWZmZWN0aXZlRnJhbWVGbGF0dGVuaW5nKCkgY29uc3Q7CisKIHByb3RlY3RlZDoK
ICAgICBib29sIHNjcm9sbENvbnRlbnRzRmFzdFBhdGgoY29uc3QgSW50U2l6ZSYgc2Nyb2xsRGVs
dGEsIGNvbnN0IEludFJlY3QmIHJlY3RUb1Njcm9sbCwgY29uc3QgSW50UmVjdCYgY2xpcFJlY3Qp
IGZpbmFsOwogICAgIHZvaWQgc2Nyb2xsQ29udGVudHNTbG93UGF0aChjb25zdCBJbnRSZWN0JiB1
cGRhdGVSZWN0KSBmaW5hbDsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuY3BwCShyZXZpc2lv
biAyMjMzNjYpCisrKyBTb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMjYsOTcgKzI2LDExIEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAi
U2V0dGluZ3MuaCIKIAotI2luY2x1ZGUgIkF1ZGlvU2Vzc2lvbi5oIgotI2luY2x1ZGUgIkJhY2tG
b3J3YXJkQ29udHJvbGxlci5oIgotI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlTG9hZGVyLmgiCi0j
aW5jbHVkZSAiQ29va2llU3RvcmFnZS5oIgotI2luY2x1ZGUgIkRPTVRpbWVyLmgiCi0jaW5jbHVk
ZSAiRGF0YWJhc2UuaCIKLSNpbmNsdWRlICJEb2N1bWVudC5oIgotI2luY2x1ZGUgIkZvbnRDYXNj
YWRlLmgiCi0jaW5jbHVkZSAiRm9udEdlbmVyaWNGYW1pbGllcy5oIgotI2luY2x1ZGUgIkZyYW1l
VHJlZS5oIgotI2luY2x1ZGUgIkZyYW1lVmlldy5oIgotI2luY2x1ZGUgIkhUTUxNZWRpYUVsZW1l
bnQuaCIKLSNpbmNsdWRlICJIaXN0b3J5SXRlbS5oIgotI2luY2x1ZGUgIk1haW5GcmFtZS5oIgog
I2luY2x1ZGUgIlBhZ2UuaCIKLSNpbmNsdWRlICJTdG9yYWdlTWFwLmgiCi0jaW5jbHVkZSA8bGlt
aXRzPgotI2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgotI2luY2x1ZGUgPHd0Zi9TdGRM
aWJFeHRyYXMuaD4KKyNpbmNsdWRlICJTZXR0aW5nc0RlZmF1bHRWYWx1ZXMuaCIKIAogbmFtZXNw
YWNlIFdlYkNvcmUgewogCi0vLyBOT1RFcwotLy8gIDEpIEVkaXRpbmdNYWNCZWhhdmlvciBjb21w
cmlzZXMgVGlnZXIsIExlb3BhcmQsIFNub3dMZW9wYXJkIGFuZCBpT1MgYnVpbGRzLCBhcyB3ZWxs
IGFzIFF0V2ViS2l0IHdoZW4gYnVpbHQgb24gTWFjOwotLy8gIDIpIEVkaXRpbmdXaW5kb3dzQmVo
YXZpb3IgY29tcHJpc2VzIFdpbjMyIGJ1aWxkOwotLy8gIDMpIEVkaXRpbmdVbml4QmVoYXZpb3Ig
Y29tcHJpc2VzIGFsbCB1bml4LWJhc2VkIHN5c3RlbXMsIGJ1dCBEYXJ3aW4vTWFjT1MgKGFuZCB0
aGVuIGFidXNpbmcgdGhlIHRlcm1pbm9sb2d5KTsKLS8vIDk5KSBNYWNFZGl0aW5nQmVoYXZpb3Ig
aXMgdXNlZCBhcyBhIGZhbGxiYWNrLgotc3RhdGljIEVkaXRpbmdCZWhhdmlvclR5cGUgZWRpdGlu
Z0JlaGF2aW9yVHlwZUZvclBsYXRmb3JtKCkKLXsKLSAgICByZXR1cm4KLSNpZiBQTEFURk9STShJ
T1MpCi0gICAgRWRpdGluZ0lPU0JlaGF2aW9yCi0jZWxpZiBPUyhEQVJXSU4pCi0gICAgRWRpdGlu
Z01hY0JlaGF2aW9yCi0jZWxpZiBPUyhXSU5ET1dTKQotICAgIEVkaXRpbmdXaW5kb3dzQmVoYXZp
b3IKLSNlbGlmIE9TKFVOSVgpCi0gICAgRWRpdGluZ1VuaXhCZWhhdmlvcgotI2Vsc2UKLSAgICAv
LyBGYWxsYmFjawotICAgIEVkaXRpbmdNYWNCZWhhdmlvcgotI2VuZGlmCi0gICAgOwotfQotCi0j
aWYgUExBVEZPUk0oQ09DT0EpCi1zdGF0aWMgY29uc3QgYm9vbCBkZWZhdWx0WW91VHViZUZsYXNo
UGx1Z2luUmVwbGFjZW1lbnRFbmFibGVkID0gdHJ1ZTsKLSNlbHNlCi1zdGF0aWMgY29uc3QgYm9v
bCBkZWZhdWx0WW91VHViZUZsYXNoUGx1Z2luUmVwbGFjZW1lbnRFbmFibGVkID0gZmFsc2U7Ci0j
ZW5kaWYKLQotI2lmIFBMQVRGT1JNKElPUykKLXN0YXRpYyBjb25zdCBib29sIGRlZmF1bHRGaXhl
ZEJhY2tncm91bmRzUGFpbnRSZWxhdGl2ZVRvRG9jdW1lbnQgPSB0cnVlOwotc3RhdGljIGNvbnN0
IGJvb2wgZGVmYXVsdEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdGb3JGaXhlZFBvc2l0aW9uRW5hYmxl
ZCA9IHRydWU7Ci1zdGF0aWMgY29uc3QgYm9vbCBkZWZhdWx0QWxsb3dzSW5saW5lTWVkaWFQbGF5
YmFjayA9IGZhbHNlOwotc3RhdGljIGNvbnN0IGJvb2wgZGVmYXVsdElubGluZU1lZGlhUGxheWJh
Y2tSZXF1aXJlc1BsYXlzSW5saW5lQXR0cmlidXRlID0gdHJ1ZTsKLXN0YXRpYyBjb25zdCBib29s
IGRlZmF1bHRWaWRlb1BsYXliYWNrUmVxdWlyZXNVc2VyR2VzdHVyZSA9IHRydWU7Ci1zdGF0aWMg
Y29uc3QgYm9vbCBkZWZhdWx0QXVkaW9QbGF5YmFja1JlcXVpcmVzVXNlckdlc3R1cmUgPSB0cnVl
Owotc3RhdGljIGNvbnN0IGJvb2wgZGVmYXVsdE1lZGlhRGF0YUxvYWRzQXV0b21hdGljYWxseSA9
IGZhbHNlOwotc3RhdGljIGNvbnN0IGJvb2wgZGVmYXVsdFNob3VsZFJlc3BlY3RJbWFnZU9yaWVu
dGF0aW9uID0gdHJ1ZTsKLXN0YXRpYyBjb25zdCBib29sIGRlZmF1bHRJbWFnZVN1YnNhbXBsaW5n
RW5hYmxlZCA9IHRydWU7Ci1zdGF0aWMgY29uc3QgYm9vbCBkZWZhdWx0U2Nyb2xsaW5nVHJlZUlu
Y2x1ZGVzRnJhbWVzID0gdHJ1ZTsKLXN0YXRpYyBjb25zdCBib29sIGRlZmF1bHRNZWRpYUNvbnRy
b2xzU2NhbGVXaXRoUGFnZVpvb20gPSB0cnVlOwotc3RhdGljIGNvbnN0IGJvb2wgZGVmYXVsdFF1
aWNrVGltZVBsdWdpblJlcGxhY2VtZW50RW5hYmxlZCA9IHRydWU7Ci0jZWxzZQotc3RhdGljIGNv
bnN0IGJvb2wgZGVmYXVsdEZpeGVkQmFja2dyb3VuZHNQYWludFJlbGF0aXZlVG9Eb2N1bWVudCA9
IGZhbHNlOwotc3RhdGljIGNvbnN0IGJvb2wgZGVmYXVsdEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdG
b3JGaXhlZFBvc2l0aW9uRW5hYmxlZCA9IGZhbHNlOwotc3RhdGljIGNvbnN0IGJvb2wgZGVmYXVs
dEFsbG93c0lubGluZU1lZGlhUGxheWJhY2sgPSB0cnVlOwotc3RhdGljIGNvbnN0IGJvb2wgZGVm
YXVsdElubGluZU1lZGlhUGxheWJhY2tSZXF1aXJlc1BsYXlzSW5saW5lQXR0cmlidXRlID0gZmFs
c2U7Ci1zdGF0aWMgY29uc3QgYm9vbCBkZWZhdWx0VmlkZW9QbGF5YmFja1JlcXVpcmVzVXNlckdl
c3R1cmUgPSBmYWxzZTsKLXN0YXRpYyBjb25zdCBib29sIGRlZmF1bHRBdWRpb1BsYXliYWNrUmVx
dWlyZXNVc2VyR2VzdHVyZSA9IGZhbHNlOwotc3RhdGljIGNvbnN0IGJvb2wgZGVmYXVsdE1lZGlh
RGF0YUxvYWRzQXV0b21hdGljYWxseSA9IHRydWU7Ci1zdGF0aWMgY29uc3QgYm9vbCBkZWZhdWx0
U2hvdWxkUmVzcGVjdEltYWdlT3JpZW50YXRpb24gPSBmYWxzZTsKLXN0YXRpYyBjb25zdCBib29s
IGRlZmF1bHRJbWFnZVN1YnNhbXBsaW5nRW5hYmxlZCA9IGZhbHNlOwotc3RhdGljIGNvbnN0IGJv
b2wgZGVmYXVsdFNjcm9sbGluZ1RyZWVJbmNsdWRlc0ZyYW1lcyA9IGZhbHNlOwotc3RhdGljIGNv
bnN0IGJvb2wgZGVmYXVsdE1lZGlhQ29udHJvbHNTY2FsZVdpdGhQYWdlWm9vbSA9IHRydWU7Ci1z
dGF0aWMgY29uc3QgYm9vbCBkZWZhdWx0UXVpY2tUaW1lUGx1Z2luUmVwbGFjZW1lbnRFbmFibGVk
ID0gZmFsc2U7Ci0jZW5kaWYKLQotc3RhdGljIGNvbnN0IGJvb2wgZGVmYXVsdFJlcXVpcmVzVXNl
ckdlc3R1cmVUb0xvYWRWaWRlbyA9IHRydWU7Ci1zdGF0aWMgY29uc3QgYm9vbCBkZWZhdWx0QWxs
b3dzUGljdHVyZUluUGljdHVyZU1lZGlhUGxheWJhY2sgPSB0cnVlOwotCi1zdGF0aWMgY29uc3Qg
ZG91YmxlIGRlZmF1bHRJbmNyZW1lbnRhbFJlbmRlcmluZ1N1cHByZXNzaW9uVGltZW91dEluU2Vj
b25kcyA9IDU7Ci0jaWYgVVNFKFVOSUZJRURfVEVYVF9DSEVDS0lORykKLXN0YXRpYyBjb25zdCBi
b29sIGRlZmF1bHRVbmlmaWVkVGV4dENoZWNrZXJFbmFibGVkID0gdHJ1ZTsKLSNlbHNlCi1zdGF0
aWMgY29uc3QgYm9vbCBkZWZhdWx0VW5pZmllZFRleHRDaGVja2VyRW5hYmxlZCA9IGZhbHNlOwot
I2VuZGlmCi1zdGF0aWMgY29uc3QgYm9vbCBkZWZhdWx0U21hcnRJbnNlcnREZWxldGVFbmFibGVk
ID0gdHJ1ZTsKLXN0YXRpYyBjb25zdCBib29sIGRlZmF1bHRTZWxlY3RUcmFpbGluZ1doaXRlc3Bh
Y2VFbmFibGVkID0gZmFsc2U7Ci0KIFJlZjxTZXR0aW5ncz4gU2V0dGluZ3M6OmNyZWF0ZShQYWdl
KiBwYWdlKQogewogICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNldHRpbmdzKHBhZ2UpKTsKQEAg
LTEzNCwxNiArNDgsNCBAQCBTZXR0aW5nczo6flNldHRpbmdzKCkKIAogU0VUVElOR1NfU0VUVEVS
X0JPRElFUwogCi1GcmFtZUZsYXR0ZW5pbmcgU2V0dGluZ3M6OmVmZmVjdGl2ZUZyYW1lRmxhdHRl
bmluZygpCi17Ci0jaWYgUExBVEZPUk0oSU9TKQotICAgIC8vIE9uIGlPUyB3aGVuIGFzeW5jIGZy
YW1lIHNjcm9sbGluZyBpcyBlbmFibGVkLCBpdCBkb2VzIG5vdCBtYWtlIHNlbnNlIHRvIHVzZSBm
dWxsIGZyYW1lIGZsYXR0ZW5pbmcuCi0gICAgLy8gSW4gdGhhdCBjYXNlLCB3ZSBqdXN0IGNvbnNp
ZGVyIHRoYXQgZnJhbWUgZmxhdHRlbmluZyBpcyBkaXNhYmxlZC4gVGhpcyBhbGxvd3MgcGVvcGxl
IHRvIHRlc3QKLSAgICAvLyBmcmFtZSBzY3JvbGxpbmcgb24gaU9TIGJ5IGVuYWJsaW5nICJBc3lu
YyBGcmFtZSBTY3JvbGxpbmciIHZpYSB0aGUgU2FmYXJpIG1lbnUuCi0gICAgaWYgKGFzeW5jRnJh
bWVTY3JvbGxpbmdFbmFibGVkKCkgJiYgZnJhbWVGbGF0dGVuaW5nKCkgPT0gRnJhbWVGbGF0dGVu
aW5nRnVsbHlFbmFibGVkKQotICAgICAgICByZXR1cm4gRnJhbWVGbGF0dGVuaW5nRGlzYWJsZWQ7
Ci0jZW5kaWYKLSAgICByZXR1cm4gZnJhbWVGbGF0dGVuaW5nKCk7Ci19Ci0KIH0gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmgJKHJldmlzaW9uIDIyMzM2NikK
KysrIFNvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuaAkod29ya2luZyBjb3B5KQpAQCAtMjcs
NiArMjcsOCBAQAogI3ByYWdtYSBvbmNlCiAKICNpbmNsdWRlICJTZXR0aW5nc0Jhc2UuaCIKKyNp
bmNsdWRlICJTZXR0aW5nc01hY3Jvcy5oIgorI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CiAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtMzYsMTggKzM4LDEyIEBAIHB1YmxpYzoKICAgICBz
dGF0aWMgUmVmPFNldHRpbmdzPiBjcmVhdGUoUGFnZSopOwogICAgIH5TZXR0aW5ncygpOwogCi0g
ICAgdm9pZCBwYWdlRGVzdHJveWVkKCkgeyBtX3BhZ2UgPSBudWxscHRyOyB9Ci0KICAgICBTRVRU
SU5HU19HRVRURVJTX0FORF9TRVRURVJTCiAKLQotICAgIFdFQkNPUkVfRVhQT1JUIEZyYW1lRmxh
dHRlbmluZyBlZmZlY3RpdmVGcmFtZUZsYXR0ZW5pbmcoKTsKLQogcHJpdmF0ZToKICAgICBleHBs
aWNpdCBTZXR0aW5ncyhQYWdlKik7CiAKICAgICBTRVRUSU5HU19NRU1CRVJfVkFSSUFCTEVTCi0K
IH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2Uv
U2V0dGluZ3MuaW4KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5p
bgkocmV2aXNpb24gMjIzMzY2KQorKysgU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5pbgko
d29ya2luZyBjb3B5KQpAQCAtMTc1LDcgKzE3NSw3IEBAIHNuYXBzaG90QWxsUGx1Z0lucyBpbml0
aWFsPWZhbHNlCiBhdXRvc3RhcnRPcmlnaW5QbHVnSW5TbmFwc2hvdHRpbmdFbmFibGVkIGluaXRp
YWw9dHJ1ZQogcHJpbWFyeVBsdWdJblNuYXBzaG90RGV0ZWN0aW9uRW5hYmxlZCBpbml0aWFsPXRy
dWUKIG1heGltdW1QbHVnSW5TbmFwc2hvdEF0dGVtcHRzIHR5cGU9dW5zaWduZWQsIGluaXRpYWw9
MjAKLWZyYW1lRmxhdHRlbmluZyB0eXBlPUZyYW1lRmxhdHRlbmluZywgaW5pdGlhbD1GcmFtZUZs
YXR0ZW5pbmdEaXNhYmxlZAorZnJhbWVGbGF0dGVuaW5nIHR5cGU9RnJhbWVGbGF0dGVuaW5nLCBp
bml0aWFsPUZyYW1lRmxhdHRlbmluZzo6RGlzYWJsZWQKIGFzeW5jRnJhbWVTY3JvbGxpbmdFbmFi
bGVkIGluaXRpYWw9ZmFsc2UKIAogd2ViU2VjdXJpdHlFbmFibGVkIGluaXRpYWw9dHJ1ZQpJbmRl
eDogU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5nc0Jhc2UuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzQmFzZS5oCShyZXZpc2lvbiAyMjMzNjYpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzQmFzZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMSw3ICsz
MSw3IEBACiAjaW5jbHVkZSAiRWRpdGluZ0JlaGF2aW9yVHlwZXMuaCIKICNpbmNsdWRlICJJbnRT
aXplLmgiCiAjaW5jbHVkZSAiU2VjdXJpdHlPcmlnaW4uaCIKLSNpbmNsdWRlICJTZXR0aW5nc01h
Y3Jvcy5oIgorI2luY2x1ZGUgIlN0b3JhZ2VNYXAuaCIKICNpbmNsdWRlICJUZXh0RmxhZ3MuaCIK
ICNpbmNsdWRlICJUaW1lci5oIgogI2luY2x1ZGUgIlVSTC5oIgpAQCAtODgsMTAgKzg4LDEwIEBA
IGVudW0gUERGSW1hZ2VDYWNoaW5nUG9saWN5IHsKICNlbmRpZgogfTsKIAotZW51bSBGcmFtZUZs
YXR0ZW5pbmcgewotICAgIEZyYW1lRmxhdHRlbmluZ0Rpc2FibGVkLAotICAgIEZyYW1lRmxhdHRl
bmluZ0VuYWJsZWRGb3JOb25GdWxsU2NyZWVuSUZyYW1lcywKLSAgICBGcmFtZUZsYXR0ZW5pbmdG
dWxseUVuYWJsZWQKK2VudW0gY2xhc3MgRnJhbWVGbGF0dGVuaW5nIHsKKyAgICBEaXNhYmxlZCwK
KyAgICBFbmFibGVkRm9yTm9uRnVsbFNjcmVlbklGcmFtZXMsCisgICAgRnVsbHlFbmFibGVkCiB9
OwogCiB0eXBlZGVmIHVuc2lnbmVkIERlYnVnT3ZlcmxheVJlZ2lvbnM7CkBAIC0xMDEsNiArMTAx
LDggQEAgY2xhc3MgU2V0dGluZ3NCYXNlIHsKIHB1YmxpYzoKICAgICB+U2V0dGluZ3NCYXNlKCk7
CiAKKyAgICB2b2lkIHBhZ2VEZXN0cm95ZWQoKSB7IG1fcGFnZSA9IG51bGxwdHI7IH0KKwogICAg
IGVudW0gY2xhc3MgRm9udExvYWRUaW1pbmdPdmVycmlkZSB7IE5vbmUsIEJsb2NrLCBTd2FwLCBG
YWlsdXJlIH07CiAKICAgICBlbnVtIGNsYXNzIEZvcmNlZEFjY2Vzc2liaWxpdHlWYWx1ZSB7IFN5
c3RlbSwgT24sIE9mZiB9OwpJbmRleDogU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5nc0RlZmF1
bHRWYWx1ZXMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzRGVm
YXVsdFZhbHVlcy5oCShub25leGlzdGVudCkKKysrIFNvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGlu
Z3NEZWZhdWx0VmFsdWVzLmgJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxMDAgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQg
SVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgIkVkaXRpbmdCZWhhdmlvclR5cGVzLmgi
CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworLy8gTk9URXMKKy8vICAxKSBFZGl0aW5nTWFjQmVo
YXZpb3IgY29tcHJpc2VzIFRpZ2VyLCBMZW9wYXJkLCBTbm93TGVvcGFyZCBhbmQgaU9TIGJ1aWxk
cywgYXMgd2VsbCBhcyBRdFdlYktpdCB3aGVuIGJ1aWx0IG9uIE1hYzsKKy8vICAyKSBFZGl0aW5n
V2luZG93c0JlaGF2aW9yIGNvbXByaXNlcyBXaW4zMiBidWlsZDsKKy8vICAzKSBFZGl0aW5nVW5p
eEJlaGF2aW9yIGNvbXByaXNlcyBhbGwgdW5peC1iYXNlZCBzeXN0ZW1zLCBidXQgRGFyd2luL01h
Y09TIChhbmQgdGhlbiBhYnVzaW5nIHRoZSB0ZXJtaW5vbG9neSk7CisvLyA5OSkgTWFjRWRpdGlu
Z0JlaGF2aW9yIGlzIHVzZWQgYXMgYSBmYWxsYmFjay4KK2lubGluZSBFZGl0aW5nQmVoYXZpb3JU
eXBlIGVkaXRpbmdCZWhhdmlvclR5cGVGb3JQbGF0Zm9ybSgpCit7CisjaWYgUExBVEZPUk0oSU9T
KQorICAgIHJldHVybiBFZGl0aW5nSU9TQmVoYXZpb3I7CisjZWxpZiBPUyhEQVJXSU4pCisgICAg
cmV0dXJuIEVkaXRpbmdNYWNCZWhhdmlvcjsKKyNlbGlmIE9TKFdJTkRPV1MpCisgICAgcmV0dXJu
IEVkaXRpbmdXaW5kb3dzQmVoYXZpb3I7CisjZWxpZiBPUyhVTklYKQorICAgIHJldHVybiBFZGl0
aW5nVW5peEJlaGF2aW9yOworI2Vsc2UKKyAgICAvLyBGYWxsYmFjaworICAgIHJldHVybiBFZGl0
aW5nTWFjQmVoYXZpb3I7CisjZW5kaWYKKyAgICAKK30KKworI2lmIFBMQVRGT1JNKENPQ09BKQor
c3RhdGljIGNvbnN0IGJvb2wgZGVmYXVsdFlvdVR1YmVGbGFzaFBsdWdpblJlcGxhY2VtZW50RW5h
YmxlZCA9IHRydWU7CisjZWxzZQorc3RhdGljIGNvbnN0IGJvb2wgZGVmYXVsdFlvdVR1YmVGbGFz
aFBsdWdpblJlcGxhY2VtZW50RW5hYmxlZCA9IGZhbHNlOworI2VuZGlmCisKKyNpZiBQTEFURk9S
TShJT1MpCitzdGF0aWMgY29uc3QgYm9vbCBkZWZhdWx0Rml4ZWRCYWNrZ3JvdW5kc1BhaW50UmVs
YXRpdmVUb0RvY3VtZW50ID0gdHJ1ZTsKK3N0YXRpYyBjb25zdCBib29sIGRlZmF1bHRBY2NlbGVy
YXRlZENvbXBvc2l0aW5nRm9yRml4ZWRQb3NpdGlvbkVuYWJsZWQgPSB0cnVlOworc3RhdGljIGNv
bnN0IGJvb2wgZGVmYXVsdEFsbG93c0lubGluZU1lZGlhUGxheWJhY2sgPSBmYWxzZTsKK3N0YXRp
YyBjb25zdCBib29sIGRlZmF1bHRJbmxpbmVNZWRpYVBsYXliYWNrUmVxdWlyZXNQbGF5c0lubGlu
ZUF0dHJpYnV0ZSA9IHRydWU7CitzdGF0aWMgY29uc3QgYm9vbCBkZWZhdWx0VmlkZW9QbGF5YmFj
a1JlcXVpcmVzVXNlckdlc3R1cmUgPSB0cnVlOworc3RhdGljIGNvbnN0IGJvb2wgZGVmYXVsdEF1
ZGlvUGxheWJhY2tSZXF1aXJlc1VzZXJHZXN0dXJlID0gdHJ1ZTsKK3N0YXRpYyBjb25zdCBib29s
IGRlZmF1bHRNZWRpYURhdGFMb2Fkc0F1dG9tYXRpY2FsbHkgPSBmYWxzZTsKK3N0YXRpYyBjb25z
dCBib29sIGRlZmF1bHRTaG91bGRSZXNwZWN0SW1hZ2VPcmllbnRhdGlvbiA9IHRydWU7CitzdGF0
aWMgY29uc3QgYm9vbCBkZWZhdWx0SW1hZ2VTdWJzYW1wbGluZ0VuYWJsZWQgPSB0cnVlOworc3Rh
dGljIGNvbnN0IGJvb2wgZGVmYXVsdFNjcm9sbGluZ1RyZWVJbmNsdWRlc0ZyYW1lcyA9IHRydWU7
CitzdGF0aWMgY29uc3QgYm9vbCBkZWZhdWx0TWVkaWFDb250cm9sc1NjYWxlV2l0aFBhZ2Vab29t
ID0gdHJ1ZTsKK3N0YXRpYyBjb25zdCBib29sIGRlZmF1bHRRdWlja1RpbWVQbHVnaW5SZXBsYWNl
bWVudEVuYWJsZWQgPSB0cnVlOworI2Vsc2UKK3N0YXRpYyBjb25zdCBib29sIGRlZmF1bHRGaXhl
ZEJhY2tncm91bmRzUGFpbnRSZWxhdGl2ZVRvRG9jdW1lbnQgPSBmYWxzZTsKK3N0YXRpYyBjb25z
dCBib29sIGRlZmF1bHRBY2NlbGVyYXRlZENvbXBvc2l0aW5nRm9yRml4ZWRQb3NpdGlvbkVuYWJs
ZWQgPSBmYWxzZTsKK3N0YXRpYyBjb25zdCBib29sIGRlZmF1bHRBbGxvd3NJbmxpbmVNZWRpYVBs
YXliYWNrID0gdHJ1ZTsKK3N0YXRpYyBjb25zdCBib29sIGRlZmF1bHRJbmxpbmVNZWRpYVBsYXli
YWNrUmVxdWlyZXNQbGF5c0lubGluZUF0dHJpYnV0ZSA9IGZhbHNlOworc3RhdGljIGNvbnN0IGJv
b2wgZGVmYXVsdFZpZGVvUGxheWJhY2tSZXF1aXJlc1VzZXJHZXN0dXJlID0gZmFsc2U7CitzdGF0
aWMgY29uc3QgYm9vbCBkZWZhdWx0QXVkaW9QbGF5YmFja1JlcXVpcmVzVXNlckdlc3R1cmUgPSBm
YWxzZTsKK3N0YXRpYyBjb25zdCBib29sIGRlZmF1bHRNZWRpYURhdGFMb2Fkc0F1dG9tYXRpY2Fs
bHkgPSB0cnVlOworc3RhdGljIGNvbnN0IGJvb2wgZGVmYXVsdFNob3VsZFJlc3BlY3RJbWFnZU9y
aWVudGF0aW9uID0gZmFsc2U7CitzdGF0aWMgY29uc3QgYm9vbCBkZWZhdWx0SW1hZ2VTdWJzYW1w
bGluZ0VuYWJsZWQgPSBmYWxzZTsKK3N0YXRpYyBjb25zdCBib29sIGRlZmF1bHRTY3JvbGxpbmdU
cmVlSW5jbHVkZXNGcmFtZXMgPSBmYWxzZTsKK3N0YXRpYyBjb25zdCBib29sIGRlZmF1bHRNZWRp
YUNvbnRyb2xzU2NhbGVXaXRoUGFnZVpvb20gPSB0cnVlOworc3RhdGljIGNvbnN0IGJvb2wgZGVm
YXVsdFF1aWNrVGltZVBsdWdpblJlcGxhY2VtZW50RW5hYmxlZCA9IGZhbHNlOworI2VuZGlmCisK
K3N0YXRpYyBjb25zdCBib29sIGRlZmF1bHRSZXF1aXJlc1VzZXJHZXN0dXJlVG9Mb2FkVmlkZW8g
PSB0cnVlOworc3RhdGljIGNvbnN0IGJvb2wgZGVmYXVsdEFsbG93c1BpY3R1cmVJblBpY3R1cmVN
ZWRpYVBsYXliYWNrID0gdHJ1ZTsKKworc3RhdGljIGNvbnN0IGRvdWJsZSBkZWZhdWx0SW5jcmVt
ZW50YWxSZW5kZXJpbmdTdXBwcmVzc2lvblRpbWVvdXRJblNlY29uZHMgPSA1OworI2lmIFVTRShV
TklGSUVEX1RFWFRfQ0hFQ0tJTkcpCitzdGF0aWMgY29uc3QgYm9vbCBkZWZhdWx0VW5pZmllZFRl
eHRDaGVja2VyRW5hYmxlZCA9IHRydWU7CisjZWxzZQorc3RhdGljIGNvbnN0IGJvb2wgZGVmYXVs
dFVuaWZpZWRUZXh0Q2hlY2tlckVuYWJsZWQgPSBmYWxzZTsKKyNlbmRpZgorc3RhdGljIGNvbnN0
IGJvb2wgZGVmYXVsdFNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCA9IHRydWU7CitzdGF0aWMgY29u
c3QgYm9vbCBkZWZhdWx0U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCA9IGZhbHNlOwor
Cit9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRnJhbWVTZXQuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGcmFtZVNldC5jcHAJ
KHJldmlzaW9uIDIyMzM2NikKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGcmFt
ZVNldC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTY1MSw3ICs2NTEsNyBAQCB2b2lkIFJlbmRlckZy
YW1lU2V0Ojpwb3NpdGlvbkZyYW1lc1dpdGhGCiAKIGJvb2wgUmVuZGVyRnJhbWVTZXQ6OmZsYXR0
ZW5GcmFtZVNldCgpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIHNldHRpbmdzKCkuZWZmZWN0aXZlRnJh
bWVGbGF0dGVuaW5nKCkgIT0gRnJhbWVGbGF0dGVuaW5nRGlzYWJsZWQ7CisgICAgcmV0dXJuIHZp
ZXcoKS5mcmFtZVZpZXcoKS5lZmZlY3RpdmVGcmFtZUZsYXR0ZW5pbmcoKSAhPSBGcmFtZUZsYXR0
ZW5pbmc6OkRpc2FibGVkOwogfQogCiB2b2lkIFJlbmRlckZyYW1lU2V0OjpzdGFydFJlc2l6aW5n
KEdyaWRBeGlzJiBheGlzLCBpbnQgcG9zaXRpb24pCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVySUZyYW1lLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVySUZyYW1lLmNwcAkocmV2aXNpb24gMjIzMzY2KQorKysgU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlcklGcmFtZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTc4LDcgKzc4
LDcgQEAgYm9vbCBSZW5kZXJJRnJhbWU6OmlzRnVsbFNjcmVlbklGcmFtZSgpIAogCiBib29sIFJl
bmRlcklGcmFtZTo6ZmxhdHRlbkZyYW1lKCkgY29uc3QKIHsKLSAgICBpZiAoc2V0dGluZ3MoKS5l
ZmZlY3RpdmVGcmFtZUZsYXR0ZW5pbmcoKSA9PSBGcmFtZUZsYXR0ZW5pbmdEaXNhYmxlZCkKKyAg
ICBpZiAodmlldygpLmZyYW1lVmlldygpLmVmZmVjdGl2ZUZyYW1lRmxhdHRlbmluZygpID09IEZy
YW1lRmxhdHRlbmluZzo6RGlzYWJsZWQpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIGlm
IChzdHlsZSgpLndpZHRoKCkuaXNGaXhlZCgpICYmIHN0eWxlKCkuaGVpZ2h0KCkuaXNGaXhlZCgp
KSB7CkBAIC04OSw3ICs4OSw3IEBAIGJvb2wgUmVuZGVySUZyYW1lOjpmbGF0dGVuRnJhbWUoKSBj
b25zdAogICAgICAgICBpZiAoc3R5bGUoKS53aWR0aCgpLnZhbHVlKCkgPD0gMCB8fCBzdHlsZSgp
LmhlaWdodCgpLnZhbHVlKCkgPD0gMCkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAg
ICAgLy8gRG8gbm90IGZsYXR0ZW4gImZ1bGxzY3JlZW4iIGlmcmFtZXMgb3IgdGhleSBjb3VsZCBi
ZWNvbWUgbGFyZ2VyIHRoYW4gdGhlIHZpZXdwb3J0LgotICAgICAgICBpZiAoc2V0dGluZ3MoKS5l
ZmZlY3RpdmVGcmFtZUZsYXR0ZW5pbmcoKSA8PSBGcmFtZUZsYXR0ZW5pbmdFbmFibGVkRm9yTm9u
RnVsbFNjcmVlbklGcmFtZXMgJiYgaXNGdWxsU2NyZWVuSUZyYW1lKCkpCisgICAgICAgIGlmICh2
aWV3KCkuZnJhbWVWaWV3KCkuZWZmZWN0aXZlRnJhbWVGbGF0dGVuaW5nKCkgPD0gRnJhbWVGbGF0
dGVuaW5nOjpFbmFibGVkRm9yTm9uRnVsbFNjcmVlbklGcmFtZXMgJiYgaXNGdWxsU2NyZWVuSUZy
YW1lKCkpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQogCkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVmlldy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlclZpZXcuY3BwCShyZXZpc2lvbiAyMjMzNjYpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVmlldy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTU5
LDcgKzU5LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogc3RydWN0IEZyYW1lRmxhdHRlbmluZ0xh
eW91dERpc2FsbG93ZXIgewogICAgIEZyYW1lRmxhdHRlbmluZ0xheW91dERpc2FsbG93ZXIoRnJh
bWVWaWV3JiBmcmFtZVZpZXcpCiAgICAgICAgIDogbV9mcmFtZVZpZXcoZnJhbWVWaWV3KQotICAg
ICAgICAsIG1fZGlzYWxsb3dMYXlvdXQoZnJhbWVWaWV3LmZyYW1lKCkuc2V0dGluZ3MoKS5lZmZl
Y3RpdmVGcmFtZUZsYXR0ZW5pbmcoKSAhPSBGcmFtZUZsYXR0ZW5pbmdEaXNhYmxlZCkKKyAgICAg
ICAgLCBtX2Rpc2FsbG93TGF5b3V0KGZyYW1lVmlldy5lZmZlY3RpdmVGcmFtZUZsYXR0ZW5pbmco
KSAhPSBGcmFtZUZsYXR0ZW5pbmc6OkRpc2FibGVkKQogICAgIHsKICAgICAgICAgaWYgKG1fZGlz
YWxsb3dMYXlvdXQpCiAgICAgICAgICAgICBtX2ZyYW1lVmlldy5zdGFydERpc2FsbG93aW5nTGF5
b3V0KCk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5j
cHAJKHJldmlzaW9uIDIyMzM2NikKKysrIFNvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxT
ZXR0aW5ncy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTgxOSwyNiArODE5LDExIEBAIEV4Y2VwdGlv
bk9yPHZvaWQ+IEludGVybmFsU2V0dGluZ3M6OnNldFMKICAgICByZXR1cm4gRXhjZXB0aW9uIHsg
SW52YWxpZEFjY2Vzc0Vycm9yIH07CiB9CiAKLXN0YXRpYyBGcmFtZUZsYXR0ZW5pbmcgaW50ZXJu
YWxTZXR0aW5nc1RvV2ViQ29yZVZhbHVlKEludGVybmFsU2V0dGluZ3M6OkZyYW1lRmxhdHRlbmlu
Z1ZhbHVlIHZhbHVlKQotewotICAgIHN3aXRjaCAodmFsdWUpIHsKLSAgICBjYXNlIEludGVybmFs
U2V0dGluZ3M6OkZyYW1lRmxhdHRlbmluZ1ZhbHVlOjpEaXNhYmxlZDoKLSAgICAgICAgcmV0dXJu
IEZyYW1lRmxhdHRlbmluZ0Rpc2FibGVkOwotICAgIGNhc2UgSW50ZXJuYWxTZXR0aW5nczo6RnJh
bWVGbGF0dGVuaW5nVmFsdWU6OkVuYWJsZWRGb3JOb25GdWxsU2NyZWVuSUZyYW1lczoKLSAgICAg
ICAgcmV0dXJuIEZyYW1lRmxhdHRlbmluZ0VuYWJsZWRGb3JOb25GdWxsU2NyZWVuSUZyYW1lczsK
LSAgICBjYXNlIEludGVybmFsU2V0dGluZ3M6OkZyYW1lRmxhdHRlbmluZ1ZhbHVlOjpGdWxseUVu
YWJsZWQ6Ci0gICAgICAgIHJldHVybiBGcmFtZUZsYXR0ZW5pbmdGdWxseUVuYWJsZWQ7Ci0gICAg
fQotCi0gICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgcmV0dXJuIEZyYW1lRmxhdHRlbmlu
Z0Rpc2FibGVkOwotfQotCi1FeGNlcHRpb25Pcjx2b2lkPiBJbnRlcm5hbFNldHRpbmdzOjpzZXRG
cmFtZUZsYXR0ZW5pbmcoY29uc3QgRnJhbWVGbGF0dGVuaW5nVmFsdWUmIGZyYW1lRmxhdHRlbmlu
ZykKK0V4Y2VwdGlvbk9yPHZvaWQ+IEludGVybmFsU2V0dGluZ3M6OnNldEZyYW1lRmxhdHRlbmlu
ZyhGcmFtZUZsYXR0ZW5pbmdWYWx1ZSBmcmFtZUZsYXR0ZW5pbmcpCiB7CiAgICAgaWYgKCFtX3Bh
Z2UpCiAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlkQWNjZXNzRXJyb3IgfTsKLSAg
ICBzZXR0aW5ncygpLnNldEZyYW1lRmxhdHRlbmluZyhpbnRlcm5hbFNldHRpbmdzVG9XZWJDb3Jl
VmFsdWUoZnJhbWVGbGF0dGVuaW5nKSk7CisgICAgc2V0dGluZ3MoKS5zZXRGcmFtZUZsYXR0ZW5p
bmcoZnJhbWVGbGF0dGVuaW5nKTsKICAgICByZXR1cm4geyB9OwogfQogCkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS90ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS90ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuaAkocmV2aXNpb24gMjIzMzY2KQorKysg
U291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmgJKHdvcmtpbmcgY29weSkK
QEAgLTEwMSw4ICsxMDEsOCBAQCBwdWJsaWM6CiAgICAgRXhjZXB0aW9uT3I8dm9pZD4gc2V0U2hv
dWxkTWFuYWdlQXVkaW9TZXNzaW9uQ2F0ZWdvcnkoYm9vbCk7CiAgICAgRXhjZXB0aW9uT3I8dm9p
ZD4gc2V0Q3VzdG9tUGFzdGVib2FyZERhdGFFbmFibGVkKGJvb2wpOwogCi0gICAgZW51bSBjbGFz
cyBGcmFtZUZsYXR0ZW5pbmdWYWx1ZSB7IERpc2FibGVkLCBFbmFibGVkRm9yTm9uRnVsbFNjcmVl
bklGcmFtZXMsIEZ1bGx5RW5hYmxlZCB9OwotICAgIEV4Y2VwdGlvbk9yPHZvaWQ+IHNldEZyYW1l
RmxhdHRlbmluZyhjb25zdCBGcmFtZUZsYXR0ZW5pbmdWYWx1ZSYpOworICAgIHVzaW5nIEZyYW1l
RmxhdHRlbmluZ1ZhbHVlID0gRnJhbWVGbGF0dGVuaW5nOworICAgIEV4Y2VwdGlvbk9yPHZvaWQ+
IHNldEZyYW1lRmxhdHRlbmluZyhGcmFtZUZsYXR0ZW5pbmdWYWx1ZSk7CiAgICAgCiAgICAgc3Rh
dGljIHZvaWQgc2V0QWxsb3dzQW55U1NMQ2VydGlmaWNhdGUoYm9vbCk7CiAKSW5kZXg6IFNvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9n
CShyZXZpc2lvbiAyMjMzNzEpCisrKyBTb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwkod29ya2luZyBj
b3B5KQpAQCAtMSwzICsxLDI1IEBACisyMDE3LTEwLTE2ICBTYW0gV2VpbmlnICA8c2FtQHdlYmtp
dC5vcmc+CisKKyAgICAgICAgW1NldHRpbmdzXSBSZW1vdmUgYWxsIGN1c3RvbSBjb2RlIGZyb20g
U2V0dGluZ3MuaC9jcHAKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTE3ODMzMAorCisgICAgICAgICogU2hhcmVkL1dlYlByZWZlcmVuY2VzRGVmaW5pdGlv
bnMuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tQcmVmZXJlbmNlcy5jcHA6CisgICAg
ICAgIChXS1ByZWZlcmVuY2VzU2V0RnJhbWVGbGF0dGVuaW5nRW5hYmxlZCk6CisgICAgICAgIChX
S1ByZWZlcmVuY2VzR2V0RnJhbWVGbGF0dGVuaW5nRW5hYmxlZCk6CisgICAgICAgICogVUlQcm9j
ZXNzL0FQSS9nbGliL1dlYktpdFNldHRpbmdzLmNwcDoKKyAgICAgICAgKHdlYmtpdF9zZXR0aW5n
c19nZXRfZW5hYmxlX2ZyYW1lX2ZsYXR0ZW5pbmcpOgorICAgICAgICAod2Via2l0X3NldHRpbmdz
X3NldF9lbmFibGVfZnJhbWVfZmxhdHRlbmluZyk6CisgICAgICAgICogV2ViUHJvY2Vzcy9Jbmpl
Y3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OkluamVjdGVk
QnVuZGxlOjpzZXRGcmFtZUZsYXR0ZW5pbmdFbmFibGVkKToKKyAgICAgICAgCisgICAgICAgICAg
ICBVcGRhdGUgZm9yIG5hbWluZyBjaGFuZ2VzIG9mIEZyYW1lRmxhdHRlbmluZyBub3cgdGhhdCBp
dCBpcyBhbiBlbnVtIGNsYXNzLgorCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9XZWJDaHJvbWVDbGllbnQuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJDaHJvbWVDbGllbnQ6
OmNvbnRlbnRzU2l6ZUNoYW5nZWQgY29uc3QpOgorCisgICAgICAgICAgICBHZSB0aGUgZWZmZWN0
aXZlRnJhbWVGbGF0dGVuaW5nIGZyb20gdGhlIEZyYW1lVmlldywgcmF0aGVyIHRoYW4gdGhlIFNl
dHRpbmdzLgorCiAyMDE3LTEwLTEzICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4K
IAogICAgICAgICBJbXBsZW1lbnQgbGlzdGluZyBvcmlnaW5zIGZvciB3aGljaCBDYWNoZVN0b3Jh
Z2UgaXMgc3RvcmluZyBkYXRhCkluZGV4OiBTb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcmVmZXJl
bmNlc0RlZmluaXRpb25zLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9TaGFyZWQvV2Vi
UHJlZmVyZW5jZXNEZWZpbml0aW9ucy5oCShyZXZpc2lvbiAyMjMzNjYpCisrKyBTb3VyY2UvV2Vi
S2l0L1NoYXJlZC9XZWJQcmVmZXJlbmNlc0RlZmluaXRpb25zLmgJKHdvcmtpbmcgY29weSkKQEAg
LTYwLDcgKzYwLDcgQEAKICNpZiBQTEFURk9STShJT1MpCiAjZGVmaW5lIERFRkFVTFRfQUxMT1dT
X1BJQ1RVUkVfSU5fUElDVFVSRV9NRURJQV9QTEFZQkFDSyB0cnVlCiAjZGVmaW5lIERFRkFVTFRf
QkFDS1NQQUNFX0tFWV9OQVZJR0FUSU9OX0VOQUJMRUQgZmFsc2UKLSNkZWZpbmUgREVGQVVMVF9G
UkFNRV9GTEFUVEVOSU5HIEZyYW1lRmxhdHRlbmluZ0Z1bGx5RW5hYmxlZAorI2RlZmluZSBERUZB
VUxUX0ZSQU1FX0ZMQVRURU5JTkcgRnJhbWVGbGF0dGVuaW5nOjpGdWxseUVuYWJsZWQKICNkZWZp
bmUgREVGQVVMVF9TSE9VTERfUFJJTlRfQkFDS0dST1VORFMgdHJ1ZQogI2RlZmluZSBERUZBVUxU
X1RFWFRfQVJFQVNfQVJFX1JFU0laQUJMRSBmYWxzZQogI2RlZmluZSBERUZBVUxUX0pBVkFTQ1JJ
UFRfQ0FOX09QRU5fV0lORE9XU19BVVRPTUFUSUNBTExZIGZhbHNlCkBAIC03OCw3ICs3OCw3IEBA
CiAjZWxzZQogI2RlZmluZSBERUZBVUxUX0FMTE9XU19QSUNUVVJFX0lOX1BJQ1RVUkVfTUVESUFf
UExBWUJBQ0sgZmFsc2UKICNkZWZpbmUgREVGQVVMVF9CQUNLU1BBQ0VfS0VZX05BVklHQVRJT05f
RU5BQkxFRCB0cnVlCi0jZGVmaW5lIERFRkFVTFRfRlJBTUVfRkxBVFRFTklORyBGcmFtZUZsYXR0
ZW5pbmdEaXNhYmxlZAorI2RlZmluZSBERUZBVUxUX0ZSQU1FX0ZMQVRURU5JTkcgRnJhbWVGbGF0
dGVuaW5nOjpEaXNhYmxlZAogI2RlZmluZSBERUZBVUxUX1NIT1VMRF9QUklOVF9CQUNLR1JPVU5E
UyBmYWxzZQogI2RlZmluZSBERUZBVUxUX1RFWFRfQVJFQVNfQVJFX1JFU0laQUJMRSB0cnVlCiAj
ZGVmaW5lIERFRkFVTFRfSkFWQVNDUklQVF9DQU5fT1BFTl9XSU5ET1dTX0FVVE9NQVRJQ0FMTFkg
dHJ1ZQpJbmRleDogU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQcmVmZXJlbmNlcy5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQcmVmZXJl
bmNlcy5jcHAJKHJldmlzaW9uIDIyMzM2NikKKysrIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9DL1dLUHJlZmVyZW5jZXMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNDUsMTMgKzE0NSwxMyBA
QCBib29sIFdLUHJlZmVyZW5jZXNHZXRYU1NBdWRpdG9yRW5hYmxlZChXCiB2b2lkIFdLUHJlZmVy
ZW5jZXNTZXRGcmFtZUZsYXR0ZW5pbmdFbmFibGVkKFdLUHJlZmVyZW5jZXNSZWYgcHJlZmVyZW5j
ZXNSZWYsIGJvb2wgZnJhbWVGbGF0dGVuaW5nRW5hYmxlZCkKIHsKICAgICAvLyBGSVhNRTogRXhw
b3NlIG1vcmUgZnJhbWUgZmxhdHRlbmluZyB2YWx1ZXMuCi0gICAgdG9JbXBsKHByZWZlcmVuY2Vz
UmVmKS0+c2V0RnJhbWVGbGF0dGVuaW5nKGZyYW1lRmxhdHRlbmluZ0VuYWJsZWQgPyBXZWJDb3Jl
OjpGcmFtZUZsYXR0ZW5pbmdGdWxseUVuYWJsZWQgOiBXZWJDb3JlOjpGcmFtZUZsYXR0ZW5pbmdE
aXNhYmxlZCk7CisgICAgdG9JbXBsKHByZWZlcmVuY2VzUmVmKS0+c2V0RnJhbWVGbGF0dGVuaW5n
KGZyYW1lRmxhdHRlbmluZ0VuYWJsZWQgPyBzdGF0aWNfY2FzdDx1aW50MzJfdD4oV2ViQ29yZTo6
RnJhbWVGbGF0dGVuaW5nOjpGdWxseUVuYWJsZWQpIDogc3RhdGljX2Nhc3Q8dWludDMyX3Q+KFdl
YkNvcmU6OkZyYW1lRmxhdHRlbmluZzo6RGlzYWJsZWQpKTsKIH0KIAogYm9vbCBXS1ByZWZlcmVu
Y2VzR2V0RnJhbWVGbGF0dGVuaW5nRW5hYmxlZChXS1ByZWZlcmVuY2VzUmVmIHByZWZlcmVuY2Vz
UmVmKQogewogICAgIC8vIEZJWE1FOiBFeHBvc2UgbW9yZSBmcmFtZSBmbGF0dGVuaW5nIHZhbHVl
cy4KLSAgICByZXR1cm4gdG9JbXBsKHByZWZlcmVuY2VzUmVmKS0+ZnJhbWVGbGF0dGVuaW5nKCkg
IT0gV2ViQ29yZTo6RnJhbWVGbGF0dGVuaW5nRGlzYWJsZWQ7CisgICAgcmV0dXJuIHRvSW1wbChw
cmVmZXJlbmNlc1JlZiktPmZyYW1lRmxhdHRlbmluZygpICE9IHN0YXRpY19jYXN0PHVpbnQzMl90
PihXZWJDb3JlOjpGcmFtZUZsYXR0ZW5pbmc6OkRpc2FibGVkKTsKIH0KIAogdm9pZCBXS1ByZWZl
cmVuY2VzU2V0UGx1Z2luc0VuYWJsZWQoV0tQcmVmZXJlbmNlc1JlZiBwcmVmZXJlbmNlc1JlZiwg
Ym9vbCBwbHVnaW5zRW5hYmxlZCkKSW5kZXg6IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9n
bGliL1dlYktpdFNldHRpbmdzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvZ2xpYi9XZWJLaXRTZXR0aW5ncy5jcHAJKHJldmlzaW9uIDIyMzM2NikKKysrIFNv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFNldHRpbmdzLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMTYyMCw3ICsxNjIwLDcgQEAgZ2Jvb2xlYW4gd2Via2l0X3NldHRpbmdzX2dl
dF9lbmFibGVfZnJhbQogICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKFdFQktJVF9JU19TRVRUSU5H
UyhzZXR0aW5ncyksIEZBTFNFKTsKIAogICAgIC8vIEZJWE1FOiBFeHBvc2UgbW9yZSBmcmFtZSBm
bGF0dGVuaW5nIHZhbHVlcy4KLSAgICByZXR1cm4gc2V0dGluZ3MtPnByaXYtPnByZWZlcmVuY2Vz
LT5mcmFtZUZsYXR0ZW5pbmcoKSAhPSBXZWJDb3JlOjpGcmFtZUZsYXR0ZW5pbmdEaXNhYmxlZDsK
KyAgICByZXR1cm4gc2V0dGluZ3MtPnByaXYtPnByZWZlcmVuY2VzLT5mcmFtZUZsYXR0ZW5pbmco
KSAhPSBzdGF0aWNfY2FzdDx1aW50MzJfdD4oV2ViQ29yZTo6RnJhbWVGbGF0dGVuaW5nOjpEaXNh
YmxlZCk7CiB9CiAKIC8qKgpAQCAtMTYzNSwxMiArMTYzNSwxMiBAQCB2b2lkIHdlYmtpdF9zZXR0
aW5nc19zZXRfZW5hYmxlX2ZyYW1lX2ZsCiAgICAgZ19yZXR1cm5faWZfZmFpbChXRUJLSVRfSVNf
U0VUVElOR1Moc2V0dGluZ3MpKTsKIAogICAgIFdlYktpdFNldHRpbmdzUHJpdmF0ZSogcHJpdiA9
IHNldHRpbmdzLT5wcml2OwotICAgIGJvb2wgY3VycmVudFZhbHVlID0gcHJpdi0+cHJlZmVyZW5j
ZXMtPmZyYW1lRmxhdHRlbmluZygpICE9IFdlYkNvcmU6OkZyYW1lRmxhdHRlbmluZ0Rpc2FibGVk
OworICAgIGJvb2wgY3VycmVudFZhbHVlID0gcHJpdi0+cHJlZmVyZW5jZXMtPmZyYW1lRmxhdHRl
bmluZygpICE9IHN0YXRpY19jYXN0PHVpbnQzMl90PihXZWJDb3JlOjpGcmFtZUZsYXR0ZW5pbmc6
OkRpc2FibGVkKTsKICAgICBpZiAoY3VycmVudFZhbHVlID09IGVuYWJsZWQpCiAgICAgICAgIHJl
dHVybjsKIAogICAgIC8vIEZJWE1FOiBFeHBvc2UgbW9yZSBmcmFtZSBmbGF0dGVuaW5nIHZhbHVl
cy4KLSAgICBwcml2LT5wcmVmZXJlbmNlcy0+c2V0RnJhbWVGbGF0dGVuaW5nKGVuYWJsZWQgPyBX
ZWJDb3JlOjpGcmFtZUZsYXR0ZW5pbmdGdWxseUVuYWJsZWQgOiBXZWJDb3JlOjpGcmFtZUZsYXR0
ZW5pbmdEaXNhYmxlZCk7CisgICAgcHJpdi0+cHJlZmVyZW5jZXMtPnNldEZyYW1lRmxhdHRlbmlu
ZyhlbmFibGVkID8gc3RhdGljX2Nhc3Q8dWludDMyX3Q+KFdlYkNvcmU6OkZyYW1lRmxhdHRlbmlu
Zzo6RnVsbHlFbmFibGVkKSA6IHN0YXRpY19jYXN0PHVpbnQzMl90PihXZWJDb3JlOjpGcmFtZUZs
YXR0ZW5pbmc6OkRpc2FibGVkKSk7CiAgICAgZ19vYmplY3Rfbm90aWZ5KEdfT0JKRUNUKHNldHRp
bmdzKSwgImVuYWJsZS1mcmFtZS1mbGF0dGVuaW5nIik7CiB9CiAKSW5kZXg6IFNvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVu
ZGxlLmNwcAkocmV2aXNpb24gMjIzMzY2KQorKysgU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0lu
amVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzAwLDcg
KzMwMCw3IEBAIHZvaWQgSW5qZWN0ZWRCdW5kbGU6OnNldEZyYW1lRmxhdHRlbmluZ0UKIHsKICAg
ICBjb25zdCBIYXNoU2V0PFBhZ2UqPiYgcGFnZXMgPSBQYWdlR3JvdXA6OnBhZ2VHcm91cChwYWdl
R3JvdXAtPmlkZW50aWZpZXIoKSktPnBhZ2VzKCk7CiAgICAgZm9yIChIYXNoU2V0PFBhZ2UqPjo6
aXRlcmF0b3IgaXRlciA9IHBhZ2VzLmJlZ2luKCk7IGl0ZXIgIT0gcGFnZXMuZW5kKCk7ICsraXRl
cikKLSAgICAgICAgKCppdGVyKS0+c2V0dGluZ3MoKS5zZXRGcmFtZUZsYXR0ZW5pbmcoZW5hYmxl
ZCA/IEZyYW1lRmxhdHRlbmluZ0Z1bGx5RW5hYmxlZCA6IEZyYW1lRmxhdHRlbmluZ0Rpc2FibGVk
KTsKKyAgICAgICAgKCppdGVyKS0+c2V0dGluZ3MoKS5zZXRGcmFtZUZsYXR0ZW5pbmcoZW5hYmxl
ZCA/IEZyYW1lRmxhdHRlbmluZzo6RnVsbHlFbmFibGVkIDogRnJhbWVGbGF0dGVuaW5nOjpEaXNh
YmxlZCk7CiB9CiAKIHZvaWQgSW5qZWN0ZWRCdW5kbGU6OnNldEFzeW5jRnJhbWVTY3JvbGxpbmdF
bmFibGVkKFdlYlBhZ2VHcm91cFByb3h5KiBwYWdlR3JvdXAsIGJvb2wgZW5hYmxlZCkKSW5kZXg6
IFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9XZWJDaHJvbWVDbGllbnQuY3BwCShyZXZpc2lvbiAyMjMzNjYpCisrKyBTb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcAkod29ya2luZyBj
b3B5KQpAQCAtNTY2LDcgKzU2Niw5IEBAIFBsYXRmb3JtUGFnZUNsaWVudCBXZWJDaHJvbWVDbGll
bnQ6OnBsYXQKIAogdm9pZCBXZWJDaHJvbWVDbGllbnQ6OmNvbnRlbnRzU2l6ZUNoYW5nZWQoRnJh
bWUmIGZyYW1lLCBjb25zdCBJbnRTaXplJiBzaXplKSBjb25zdAogewotICAgIGlmIChtX3BhZ2Uu
Y29yZVBhZ2UoKS0+c2V0dGluZ3MoKS5lZmZlY3RpdmVGcmFtZUZsYXR0ZW5pbmcoKSA9PSBGcmFt
ZUZsYXR0ZW5pbmdEaXNhYmxlZCkgeworICAgIEZyYW1lVmlldyogZnJhbWVWaWV3ID0gZnJhbWUu
dmlldygpOworCisgICAgaWYgKGZyYW1lVmlldyAmJiBmcmFtZVZpZXctPmVmZmVjdGl2ZUZyYW1l
RmxhdHRlbmluZygpID09IEZyYW1lRmxhdHRlbmluZzo6RGlzYWJsZWQpIHsKICAgICAgICAgV2Vi
RnJhbWUqIGxhcmdlc3RGcmFtZSA9IGZpbmRMYXJnZXN0RnJhbWVJbkZyYW1lU2V0KG1fcGFnZSk7
CiAgICAgICAgIGlmIChsYXJnZXN0RnJhbWUgIT0gbV9jYWNoZWRGcmFtZVNldExhcmdlc3RGcmFt
ZS5nZXQoKSkgewogICAgICAgICAgICAgbV9jYWNoZWRGcmFtZVNldExhcmdlc3RGcmFtZSA9IGxh
cmdlc3RGcmFtZTsKQEAgLTU4MSw3ICs1ODMsNiBAQCB2b2lkIFdlYkNocm9tZUNsaWVudDo6Y29u
dGVudHNTaXplQ2hhbmdlCiAKICAgICBtX3BhZ2UuZHJhd2luZ0FyZWEoKS0+bWFpbkZyYW1lQ29u
dGVudFNpemVDaGFuZ2VkKHNpemUpOwogCi0gICAgRnJhbWVWaWV3KiBmcmFtZVZpZXcgPSBmcmFt
ZS52aWV3KCk7CiAgICAgaWYgKGZyYW1lVmlldyAmJiAhZnJhbWVWaWV3LT5kZWxlZ2F0ZXNTY3Jv
bGxpbmcoKSkgIHsKICAgICAgICAgYm9vbCBoYXNIb3Jpem9udGFsU2Nyb2xsYmFyID0gZnJhbWVW
aWV3LT5ob3Jpem9udGFsU2Nyb2xsYmFyKCk7CiAgICAgICAgIGJvb2wgaGFzVmVydGljYWxTY3Jv
bGxiYXIgPSBmcmFtZVZpZXctPnZlcnRpY2FsU2Nyb2xsYmFyKCk7CkluZGV4OiBTb3VyY2UvV2Vi
S2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VzLm1tCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXMubW0JKHJldmlzaW9u
IDIyMzM2NikKKysrIFNvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5j
ZXMubW0JKHdvcmtpbmcgY29weSkKQEAgLTUxNyw5ICs1MTcsOSBAQCArICh2b2lkKWluaXRpYWxp
emUKICAgICAgICAgW05TTnVtYmVyIG51bWJlcldpdGhCb29sOllFU10sICBXZWJLaXRMYXJnZUlt
YWdlQXN5bmNEZWNvZGluZ0VuYWJsZWRQcmVmZXJlbmNlS2V5LAogICAgICAgICBbTlNOdW1iZXIg
bnVtYmVyV2l0aEJvb2w6WUVTXSwgIFdlYktpdEFuaW1hdGVkSW1hZ2VBc3luY0RlY29kaW5nRW5h
YmxlZFByZWZlcmVuY2VLZXksCiAjaWYgUExBVEZPUk0oSU9TKQotICAgICAgICBbTlNOdW1iZXIg
bnVtYmVyV2l0aFVuc2lnbmVkSW50OkZyYW1lRmxhdHRlbmluZ0Z1bGx5RW5hYmxlZF0sIFdlYktp
dEZyYW1lRmxhdHRlbmluZ1ByZWZlcmVuY2VLZXksCisgICAgICAgIFtOU051bWJlciBudW1iZXJX
aXRoVW5zaWduZWRJbnQ6c3RhdGljX2Nhc3Q8dWludDMyX3Q+KEZyYW1lRmxhdHRlbmluZzo6RnVs
bHlFbmFibGVkKV0sIFdlYktpdEZyYW1lRmxhdHRlbmluZ1ByZWZlcmVuY2VLZXksCiAjZWxzZQot
ICAgICAgICBbTlNOdW1iZXIgbnVtYmVyV2l0aFVuc2lnbmVkSW50OkZyYW1lRmxhdHRlbmluZ0Rp
c2FibGVkXSwgV2ViS2l0RnJhbWVGbGF0dGVuaW5nUHJlZmVyZW5jZUtleSwKKyAgICAgICAgW05T
TnVtYmVyIG51bWJlcldpdGhVbnNpZ25lZEludDpzdGF0aWNfY2FzdDx1aW50MzJfdD4oRnJhbWVG
bGF0dGVuaW5nOjpEaXNhYmxlZCldLCBXZWJLaXRGcmFtZUZsYXR0ZW5pbmdQcmVmZXJlbmNlS2V5
LAogI2VuZGlmCiAgICAgICAgIFtOU051bWJlciBudW1iZXJXaXRoQm9vbDpOT10sIFdlYktpdEFz
eW5jRnJhbWVTY3JvbGxpbmdFbmFibGVkUHJlZmVyZW5jZUtleSwKICAgICAgICAgW05TTnVtYmVy
IG51bWJlcldpdGhCb29sOk5PXSwgICBXZWJLaXRTcGF0aWFsTmF2aWdhdGlvbkVuYWJsZWRQcmVm
ZXJlbmNlS2V5LAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>323907</attachid>
            <date>2017-10-16 10:57:26 -0700</date>
            <delta_ts>2017-10-16 13:12:36 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-178330-20171016105607.patch</filename>
            <type>text/plain</type>
            <size>31811</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIyMzM2NikKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDU3IEBACisyMDE3LTEwLTE2ICBTYW0gV2Vp
bmlnICA8c2FtQHdlYmtpdC5vcmc+CisKKyAgICAgICAgW1NldHRpbmdzXSBSZW1vdmUgYWxsIGN1
c3RvbSBjb2RlIGZyb20gU2V0dGluZ3MuaC9jcHAKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTE3ODMzMAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIFJlbW92ZXMgdGhlIHR3byByZW1haW5pbmcgZnVuY3Rpb25z
IG91dCBvZiBTZXR0aW5ncyBwYXZpbmcgdGhlIHdheQorICAgICAgICBmb3IgdGhlIGZpbGUgdG8g
YmUgZ2VuZXJhdGVkLgorICAgICAgICAKKyAgICAgICAgLSBwYWdlRGVzdHJveWVkIHdhcyBtb3Zl
ZCBkb3duIGludG8gU2V0dGluZ3NCYXNlLgorICAgICAgICAtIGVmZmVjdGl2ZUZyYW1lRmxhdHRl
bmluZyB3YXMgbW92ZWQgdG8gRnJhbWVWaWV3ICh0byByZWR1Y2UgdGhlIG5lZWQKKyAgICAgICAg
ICBmb3IgYWRkaXRpb25hbCBpbmNsdWRlcywgdGhlIEZyYW1lRmxhdHRlbmluZyBlbnVtIHdhcyBj
b252ZXJ0ZWQgdG8KKyAgICAgICAgICBhbiBlbnVtIGNsYXNzIHRvIGFsbG93IGl0IHRvIGJlIGZv
cndhcmQgZGVjbGFyZWQpLgorICAgICAgICAgIAorICAgICAgICBBbHNvIG1vdmVzIGRlZmF1bHQg
dmFsdWVzIGludG8gU2V0dGluZ3NEZWZhdWx0VmFsdWVzLmgKKworICAgICAgICAqIFdlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgCisgICAgICAgICAgICBBZGQgbmV3
IGZpbGVzLgorICAgICAgICAKKyAgICAgICAgKiBwYWdlL0ZyYW1lVmlldy5jcHA6CisgICAgICAg
ICogcGFnZS9GcmFtZVZpZXcuaDoKKworICAgICAgICAgICAgTW92ZSBlZmZlY3RpdmVGcmFtZUZs
YXR0ZW5pbmcgZnVuY3Rpb24gaGVyZSBmcm9tIFNldHRpbmdzLgorCisgICAgICAgICogcGFnZS9T
ZXR0aW5ncy5jcHA6CisgICAgICAgICogcGFnZS9TZXR0aW5ncy5oOgorCisgICAgICAgICAgICBN
b3ZlIGVmZmVjdGl2ZUZyYW1lRmxhdHRlbmluZywgcGFnZURlc3Ryb3llZCBhbmQgZGVmYXVsdCB2
YWx1ZXMgb3V0LgorCisgICAgICAgICogcGFnZS9TZXR0aW5ncy5pbjoKKyAgICAgICAgCisgICAg
ICAgICAgICBVcGRhdGUgZm9yIHR1cm5pbmcgRnJhbWVGbGF0dGVuaW5nIGludG8gYW4gZW51bSBj
bGFzcy4KKyAgICAgICAgCisgICAgICAgICogcGFnZS9TZXR0aW5nc0Jhc2UuaDoKKworICAgICAg
ICAgICAgVHVybiBGcmFtZUZsYXR0ZW5pbmcgaW50byBhbiBlbnVtIGNsYXNzIGFuZCBtb3ZlIHBh
Z2VEZXN0cm95ZWQgaGVyZS4KKworICAgICAgICAqIHBhZ2UvU2V0dGluZ3NEZWZhdWx0VmFsdWVz
Lmg6IEFkZGVkLgorCisgICAgICAgICAgICBNb3ZlIGFsbCB0aGUgZGVmYXVsdCB2YWx1ZXMgZnJv
bSBTZXR0aW5ncyBoZXJlLgorCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckZyYW1lU2V0LmNw
cDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVySUZyYW1lLmNwcDoKKyAgICAgICAgKiByZW5k
ZXJpbmcvUmVuZGVyVmlldy5jcHA6CisKKyAgICAgICAgICAgIEdldCBlZmZlY3RpdmVGcmFtZUZs
YXR0ZW5pbmcgZnJvbSB0aGUgRnJhbWVWaWV3LgorCisgICAgICAgICogdGVzdGluZy9JbnRlcm5h
bFNldHRpbmdzLmNwcDoKKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuaDoKKyAg
ICAgICAgCisgICAgICAgICAgICBVcGRhdGUgbm93IHRoYXQgRnJhbWVGbGF0dGVuaW5nIGlzIGFu
IGVudW0gY2xhc3MuCisKIDIwMTctMTAtMTYgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBh
cHBsZS5jb20+CiAKICAgICAgICAgT24gVG9ULCBldmVudC5kYXRhVHJhbnNmZXIuZ2V0RGF0YSgi
dGV4dC91cmktbGlzdCIpIHJldHVybnMgYW4gZW1wdHkgc3RyaW5nIHdoZW4gZHJhZ2dpbmcgYW4g
aW1hZ2UKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oJKHJldmlzaW9uIDIyMzM2NikKKysrIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkod29ya2luZyBjb3B5KQpAQCAtMTE0ODQsNiArMTE0
ODQsNyBAQAogCQk3QzY1NzlFRDFFMDA4NTY2MDBFM0EyN0EgLyogSlNBcHBsZVBheVNoaXBwaW5n
TWV0aG9kLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTQXBwbGVQ
YXlTaGlwcGluZ01ldGhvZC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdDNjU3
OUVFMUUwMDg1NjYwMEUzQTI3QSAvKiBKU0FwcGxlUGF5U2hpcHBpbmdNZXRob2QuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNBcHBsZVBheVNoaXBwaW5nTWV0aG9kLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdDNjc1MkJBMUIwNkU4MjAwMEMyNzlDQiAvKiBO
b25FbGVtZW50UGFyZW50Tm9kZS5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gTm9uRWxlbWVu
dFBhcmVudE5vZGUuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk3QzZFRkVFQTFG
OTQ2QTJFMDBGRkFENDEgLyogU2V0dGluZ3NEZWZhdWx0VmFsdWVzLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFNldHRpbmdzRGVmYXVsdFZhbHVlcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3
QzczRkIwNTE5MUVGNDE2MDA3REUwNjEgLyogVXNlck1lc3NhZ2VIYW5kbGVyc05hbWVzcGFjZS5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBVc2VyTWVzc2FnZUhhbmRs
ZXJzTmFtZXNwYWNlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0M3M0ZCMDYx
OTFFRjQxNzAwN0RFMDYxIC8qIFVzZXJNZXNzYWdlSGFuZGxlcnNOYW1lc3BhY2UuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVXNlck1lc3NhZ2VIYW5kbGVyc05hbWVzcGFjZS5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3QzczRkIwOTE5MUVGNDlGMDA3REUwNjEg
LyogVXNlck1lc3NhZ2VIYW5kbGVyc05hbWVzcGFjZS5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gVXNlck1lc3NhZ2VIYW5k
bGVyc05hbWVzcGFjZS5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xOTg4NCw2
ICsxOTg4NSw3IEBACiAJCQkJQkM1OURFRjgxNjlERURDMzAwMTZBQzM0IC8qIFNldHRpbmdzLmlu
ICovLAogCQkJCTdDQzY2MDlCMUY5MzA1NzkwMEQ1MDBFOSAvKiBTZXR0aW5nc0Jhc2UuY3BwICov
LAogCQkJCTdDQzY2MDk5MUY5MzA1NzgwMEQ1MDBFOSAvKiBTZXR0aW5nc0Jhc2UuaCAqLywKKwkJ
CQk3QzZFRkVFQTFGOTQ2QTJFMDBGRkFENDEgLyogU2V0dGluZ3NEZWZhdWx0VmFsdWVzLmggKi8s
CiAJCQkJNUM2ODhBQTIxRDM4MTI2RjAwMEI1NEZBIC8qIFNvY2tldFByb3ZpZGVyLmNwcCAqLywK
IAkJCQk1QzdDODhENzFEMEYxRjJCMDA5RDJGNkQgLyogU29ja2V0UHJvdmlkZXIuaCAqLywKIAkJ
CQk2MjZDREUwQzExNDA0MjRDMDAxRTVBNjggLyogU3BhdGlhbE5hdmlnYXRpb24uY3BwICovLApJ
bmRleDogU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcAkocmV2aXNpb24gMjIzMzY2KQorKysgU291
cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01NjYsOSAr
NTY2LDIxIEBAIHZvaWQgRnJhbWVWaWV3OjpzZXRNYXJnaW5IZWlnaHQoTGF5b3V0VW4KICAgICBt
X21hcmdpbnMuc2V0SGVpZ2h0KGgpOwogfQogCitGcmFtZUZsYXR0ZW5pbmcgRnJhbWVWaWV3Ojpl
ZmZlY3RpdmVGcmFtZUZsYXR0ZW5pbmcoKSBjb25zdAoreworI2lmIFBMQVRGT1JNKElPUykKKyAg
ICAvLyBPbiBpT1Mgd2hlbiBhc3luYyBmcmFtZSBzY3JvbGxpbmcgaXMgZW5hYmxlZCwgaXQgZG9l
cyBub3QgbWFrZSBzZW5zZSB0byB1c2UgZnVsbCBmcmFtZSBmbGF0dGVuaW5nLgorICAgIC8vIElu
IHRoYXQgY2FzZSwgd2UganVzdCBjb25zaWRlciB0aGF0IGZyYW1lIGZsYXR0ZW5pbmcgaXMgZGlz
YWJsZWQuIFRoaXMgYWxsb3dzIHBlb3BsZSB0byB0ZXN0CisgICAgLy8gZnJhbWUgc2Nyb2xsaW5n
IG9uIGlPUyBieSBlbmFibGluZyAiQXN5bmMgRnJhbWUgU2Nyb2xsaW5nIiB2aWEgdGhlIFNhZmFy
aSBtZW51LgorICAgIGlmIChmcmFtZSgpLnNldHRpbmdzKCkuYXN5bmNGcmFtZVNjcm9sbGluZ0Vu
YWJsZWQoKSAmJiBmcmFtZSgpLnNldHRpbmdzKCkuZnJhbWVGbGF0dGVuaW5nKCkgPT0gRnJhbWVG
bGF0dGVuaW5nOjpGdWxseUVuYWJsZWQpCisgICAgICAgIHJldHVybiBGcmFtZUZsYXR0ZW5pbmc6
OkRpc2FibGVkOworI2VuZGlmCisgICAgcmV0dXJuIGZyYW1lKCkuc2V0dGluZ3MoKS5mcmFtZUZs
YXR0ZW5pbmcoKTsKK30KKwogYm9vbCBGcmFtZVZpZXc6OmZyYW1lRmxhdHRlbmluZ0VuYWJsZWQo
KSBjb25zdAogewotICAgIHJldHVybiBmcmFtZSgpLnNldHRpbmdzKCkuZWZmZWN0aXZlRnJhbWVG
bGF0dGVuaW5nKCkgIT0gRnJhbWVGbGF0dGVuaW5nRGlzYWJsZWQ7CisgICAgcmV0dXJuIGVmZmVj
dGl2ZUZyYW1lRmxhdHRlbmluZygpICE9IEZyYW1lRmxhdHRlbmluZzo6RGlzYWJsZWQ7CiB9CiAK
IGJvb2wgRnJhbWVWaWV3Ojppc0ZyYW1lRmxhdHRlbmluZ1ZhbGlkRm9yVGhpc0ZyYW1lKCkgY29u
c3QKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuaAkocmV2aXNpb24gMjIzMzY2KQorKysgU291
cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuaAkod29ya2luZyBjb3B5KQpAQCAtNjEsNiArNjEs
OCBAQCBjbGFzcyBSZW5kZXJTdHlsZTsKIGNsYXNzIFJlbmRlclZpZXc7CiBjbGFzcyBSZW5kZXJX
aWRnZXQ7CiAKK2VudW0gY2xhc3MgRnJhbWVGbGF0dGVuaW5nOworCiBQYWdpbmF0aW9uOjpNb2Rl
IHBhZ2luYXRpb25Nb2RlRm9yUmVuZGVyU3R5bGUoY29uc3QgUmVuZGVyU3R5bGUmKTsKIAogY2xh
c3MgRnJhbWVWaWV3IGZpbmFsIDogcHVibGljIFNjcm9sbFZpZXcgewpAQCAtNjM1LDYgKzYzNyw4
IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgc2V0U3BlY3VsYXRpdmVUaWxpbmdEZWxheURpc2FibGVk
Rm9yVGVzdGluZyhib29sIGRpc2FibGVkKSB7IG1fc3BlY3VsYXRpdmVUaWxpbmdEZWxheURpc2Fi
bGVkRm9yVGVzdGluZyA9IGRpc2FibGVkOyB9CiAKKyAgICBXRUJDT1JFX0VYUE9SVCBGcmFtZUZs
YXR0ZW5pbmcgZWZmZWN0aXZlRnJhbWVGbGF0dGVuaW5nKCkgY29uc3Q7CisKIHByb3RlY3RlZDoK
ICAgICBib29sIHNjcm9sbENvbnRlbnRzRmFzdFBhdGgoY29uc3QgSW50U2l6ZSYgc2Nyb2xsRGVs
dGEsIGNvbnN0IEludFJlY3QmIHJlY3RUb1Njcm9sbCwgY29uc3QgSW50UmVjdCYgY2xpcFJlY3Qp
IGZpbmFsOwogICAgIHZvaWQgc2Nyb2xsQ29udGVudHNTbG93UGF0aChjb25zdCBJbnRSZWN0JiB1
cGRhdGVSZWN0KSBmaW5hbDsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuY3BwCShyZXZpc2lv
biAyMjMzNjYpCisrKyBTb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMjYsOTcgKzI2LDExIEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAi
U2V0dGluZ3MuaCIKIAotI2luY2x1ZGUgIkF1ZGlvU2Vzc2lvbi5oIgotI2luY2x1ZGUgIkJhY2tG
b3J3YXJkQ29udHJvbGxlci5oIgotI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlTG9hZGVyLmgiCi0j
aW5jbHVkZSAiQ29va2llU3RvcmFnZS5oIgotI2luY2x1ZGUgIkRPTVRpbWVyLmgiCi0jaW5jbHVk
ZSAiRGF0YWJhc2UuaCIKLSNpbmNsdWRlICJEb2N1bWVudC5oIgotI2luY2x1ZGUgIkZvbnRDYXNj
YWRlLmgiCi0jaW5jbHVkZSAiRm9udEdlbmVyaWNGYW1pbGllcy5oIgotI2luY2x1ZGUgIkZyYW1l
VHJlZS5oIgotI2luY2x1ZGUgIkZyYW1lVmlldy5oIgotI2luY2x1ZGUgIkhUTUxNZWRpYUVsZW1l
bnQuaCIKLSNpbmNsdWRlICJIaXN0b3J5SXRlbS5oIgotI2luY2x1ZGUgIk1haW5GcmFtZS5oIgog
I2luY2x1ZGUgIlBhZ2UuaCIKLSNpbmNsdWRlICJTdG9yYWdlTWFwLmgiCi0jaW5jbHVkZSA8bGlt
aXRzPgotI2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgotI2luY2x1ZGUgPHd0Zi9TdGRM
aWJFeHRyYXMuaD4KKyNpbmNsdWRlICJTZXR0aW5nc0RlZmF1bHRWYWx1ZXMuaCIKIAogbmFtZXNw
YWNlIFdlYkNvcmUgewogCi0vLyBOT1RFcwotLy8gIDEpIEVkaXRpbmdNYWNCZWhhdmlvciBjb21w
cmlzZXMgVGlnZXIsIExlb3BhcmQsIFNub3dMZW9wYXJkIGFuZCBpT1MgYnVpbGRzLCBhcyB3ZWxs
IGFzIFF0V2ViS2l0IHdoZW4gYnVpbHQgb24gTWFjOwotLy8gIDIpIEVkaXRpbmdXaW5kb3dzQmVo
YXZpb3IgY29tcHJpc2VzIFdpbjMyIGJ1aWxkOwotLy8gIDMpIEVkaXRpbmdVbml4QmVoYXZpb3Ig
Y29tcHJpc2VzIGFsbCB1bml4LWJhc2VkIHN5c3RlbXMsIGJ1dCBEYXJ3aW4vTWFjT1MgKGFuZCB0
aGVuIGFidXNpbmcgdGhlIHRlcm1pbm9sb2d5KTsKLS8vIDk5KSBNYWNFZGl0aW5nQmVoYXZpb3Ig
aXMgdXNlZCBhcyBhIGZhbGxiYWNrLgotc3RhdGljIEVkaXRpbmdCZWhhdmlvclR5cGUgZWRpdGlu
Z0JlaGF2aW9yVHlwZUZvclBsYXRmb3JtKCkKLXsKLSAgICByZXR1cm4KLSNpZiBQTEFURk9STShJ
T1MpCi0gICAgRWRpdGluZ0lPU0JlaGF2aW9yCi0jZWxpZiBPUyhEQVJXSU4pCi0gICAgRWRpdGlu
Z01hY0JlaGF2aW9yCi0jZWxpZiBPUyhXSU5ET1dTKQotICAgIEVkaXRpbmdXaW5kb3dzQmVoYXZp
b3IKLSNlbGlmIE9TKFVOSVgpCi0gICAgRWRpdGluZ1VuaXhCZWhhdmlvcgotI2Vsc2UKLSAgICAv
LyBGYWxsYmFjawotICAgIEVkaXRpbmdNYWNCZWhhdmlvcgotI2VuZGlmCi0gICAgOwotfQotCi0j
aWYgUExBVEZPUk0oQ09DT0EpCi1zdGF0aWMgY29uc3QgYm9vbCBkZWZhdWx0WW91VHViZUZsYXNo
UGx1Z2luUmVwbGFjZW1lbnRFbmFibGVkID0gdHJ1ZTsKLSNlbHNlCi1zdGF0aWMgY29uc3QgYm9v
bCBkZWZhdWx0WW91VHViZUZsYXNoUGx1Z2luUmVwbGFjZW1lbnRFbmFibGVkID0gZmFsc2U7Ci0j
ZW5kaWYKLQotI2lmIFBMQVRGT1JNKElPUykKLXN0YXRpYyBjb25zdCBib29sIGRlZmF1bHRGaXhl
ZEJhY2tncm91bmRzUGFpbnRSZWxhdGl2ZVRvRG9jdW1lbnQgPSB0cnVlOwotc3RhdGljIGNvbnN0
IGJvb2wgZGVmYXVsdEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdGb3JGaXhlZFBvc2l0aW9uRW5hYmxl
ZCA9IHRydWU7Ci1zdGF0aWMgY29uc3QgYm9vbCBkZWZhdWx0QWxsb3dzSW5saW5lTWVkaWFQbGF5
YmFjayA9IGZhbHNlOwotc3RhdGljIGNvbnN0IGJvb2wgZGVmYXVsdElubGluZU1lZGlhUGxheWJh
Y2tSZXF1aXJlc1BsYXlzSW5saW5lQXR0cmlidXRlID0gdHJ1ZTsKLXN0YXRpYyBjb25zdCBib29s
IGRlZmF1bHRWaWRlb1BsYXliYWNrUmVxdWlyZXNVc2VyR2VzdHVyZSA9IHRydWU7Ci1zdGF0aWMg
Y29uc3QgYm9vbCBkZWZhdWx0QXVkaW9QbGF5YmFja1JlcXVpcmVzVXNlckdlc3R1cmUgPSB0cnVl
Owotc3RhdGljIGNvbnN0IGJvb2wgZGVmYXVsdE1lZGlhRGF0YUxvYWRzQXV0b21hdGljYWxseSA9
IGZhbHNlOwotc3RhdGljIGNvbnN0IGJvb2wgZGVmYXVsdFNob3VsZFJlc3BlY3RJbWFnZU9yaWVu
dGF0aW9uID0gdHJ1ZTsKLXN0YXRpYyBjb25zdCBib29sIGRlZmF1bHRJbWFnZVN1YnNhbXBsaW5n
RW5hYmxlZCA9IHRydWU7Ci1zdGF0aWMgY29uc3QgYm9vbCBkZWZhdWx0U2Nyb2xsaW5nVHJlZUlu
Y2x1ZGVzRnJhbWVzID0gdHJ1ZTsKLXN0YXRpYyBjb25zdCBib29sIGRlZmF1bHRNZWRpYUNvbnRy
b2xzU2NhbGVXaXRoUGFnZVpvb20gPSB0cnVlOwotc3RhdGljIGNvbnN0IGJvb2wgZGVmYXVsdFF1
aWNrVGltZVBsdWdpblJlcGxhY2VtZW50RW5hYmxlZCA9IHRydWU7Ci0jZWxzZQotc3RhdGljIGNv
bnN0IGJvb2wgZGVmYXVsdEZpeGVkQmFja2dyb3VuZHNQYWludFJlbGF0aXZlVG9Eb2N1bWVudCA9
IGZhbHNlOwotc3RhdGljIGNvbnN0IGJvb2wgZGVmYXVsdEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdG
b3JGaXhlZFBvc2l0aW9uRW5hYmxlZCA9IGZhbHNlOwotc3RhdGljIGNvbnN0IGJvb2wgZGVmYXVs
dEFsbG93c0lubGluZU1lZGlhUGxheWJhY2sgPSB0cnVlOwotc3RhdGljIGNvbnN0IGJvb2wgZGVm
YXVsdElubGluZU1lZGlhUGxheWJhY2tSZXF1aXJlc1BsYXlzSW5saW5lQXR0cmlidXRlID0gZmFs
c2U7Ci1zdGF0aWMgY29uc3QgYm9vbCBkZWZhdWx0VmlkZW9QbGF5YmFja1JlcXVpcmVzVXNlckdl
c3R1cmUgPSBmYWxzZTsKLXN0YXRpYyBjb25zdCBib29sIGRlZmF1bHRBdWRpb1BsYXliYWNrUmVx
dWlyZXNVc2VyR2VzdHVyZSA9IGZhbHNlOwotc3RhdGljIGNvbnN0IGJvb2wgZGVmYXVsdE1lZGlh
RGF0YUxvYWRzQXV0b21hdGljYWxseSA9IHRydWU7Ci1zdGF0aWMgY29uc3QgYm9vbCBkZWZhdWx0
U2hvdWxkUmVzcGVjdEltYWdlT3JpZW50YXRpb24gPSBmYWxzZTsKLXN0YXRpYyBjb25zdCBib29s
IGRlZmF1bHRJbWFnZVN1YnNhbXBsaW5nRW5hYmxlZCA9IGZhbHNlOwotc3RhdGljIGNvbnN0IGJv
b2wgZGVmYXVsdFNjcm9sbGluZ1RyZWVJbmNsdWRlc0ZyYW1lcyA9IGZhbHNlOwotc3RhdGljIGNv
bnN0IGJvb2wgZGVmYXVsdE1lZGlhQ29udHJvbHNTY2FsZVdpdGhQYWdlWm9vbSA9IHRydWU7Ci1z
dGF0aWMgY29uc3QgYm9vbCBkZWZhdWx0UXVpY2tUaW1lUGx1Z2luUmVwbGFjZW1lbnRFbmFibGVk
ID0gZmFsc2U7Ci0jZW5kaWYKLQotc3RhdGljIGNvbnN0IGJvb2wgZGVmYXVsdFJlcXVpcmVzVXNl
ckdlc3R1cmVUb0xvYWRWaWRlbyA9IHRydWU7Ci1zdGF0aWMgY29uc3QgYm9vbCBkZWZhdWx0QWxs
b3dzUGljdHVyZUluUGljdHVyZU1lZGlhUGxheWJhY2sgPSB0cnVlOwotCi1zdGF0aWMgY29uc3Qg
ZG91YmxlIGRlZmF1bHRJbmNyZW1lbnRhbFJlbmRlcmluZ1N1cHByZXNzaW9uVGltZW91dEluU2Vj
b25kcyA9IDU7Ci0jaWYgVVNFKFVOSUZJRURfVEVYVF9DSEVDS0lORykKLXN0YXRpYyBjb25zdCBi
b29sIGRlZmF1bHRVbmlmaWVkVGV4dENoZWNrZXJFbmFibGVkID0gdHJ1ZTsKLSNlbHNlCi1zdGF0
aWMgY29uc3QgYm9vbCBkZWZhdWx0VW5pZmllZFRleHRDaGVja2VyRW5hYmxlZCA9IGZhbHNlOwot
I2VuZGlmCi1zdGF0aWMgY29uc3QgYm9vbCBkZWZhdWx0U21hcnRJbnNlcnREZWxldGVFbmFibGVk
ID0gdHJ1ZTsKLXN0YXRpYyBjb25zdCBib29sIGRlZmF1bHRTZWxlY3RUcmFpbGluZ1doaXRlc3Bh
Y2VFbmFibGVkID0gZmFsc2U7Ci0KIFJlZjxTZXR0aW5ncz4gU2V0dGluZ3M6OmNyZWF0ZShQYWdl
KiBwYWdlKQogewogICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNldHRpbmdzKHBhZ2UpKTsKQEAg
LTEzNCwxNiArNDgsNCBAQCBTZXR0aW5nczo6flNldHRpbmdzKCkKIAogU0VUVElOR1NfU0VUVEVS
X0JPRElFUwogCi1GcmFtZUZsYXR0ZW5pbmcgU2V0dGluZ3M6OmVmZmVjdGl2ZUZyYW1lRmxhdHRl
bmluZygpCi17Ci0jaWYgUExBVEZPUk0oSU9TKQotICAgIC8vIE9uIGlPUyB3aGVuIGFzeW5jIGZy
YW1lIHNjcm9sbGluZyBpcyBlbmFibGVkLCBpdCBkb2VzIG5vdCBtYWtlIHNlbnNlIHRvIHVzZSBm
dWxsIGZyYW1lIGZsYXR0ZW5pbmcuCi0gICAgLy8gSW4gdGhhdCBjYXNlLCB3ZSBqdXN0IGNvbnNp
ZGVyIHRoYXQgZnJhbWUgZmxhdHRlbmluZyBpcyBkaXNhYmxlZC4gVGhpcyBhbGxvd3MgcGVvcGxl
IHRvIHRlc3QKLSAgICAvLyBmcmFtZSBzY3JvbGxpbmcgb24gaU9TIGJ5IGVuYWJsaW5nICJBc3lu
YyBGcmFtZSBTY3JvbGxpbmciIHZpYSB0aGUgU2FmYXJpIG1lbnUuCi0gICAgaWYgKGFzeW5jRnJh
bWVTY3JvbGxpbmdFbmFibGVkKCkgJiYgZnJhbWVGbGF0dGVuaW5nKCkgPT0gRnJhbWVGbGF0dGVu
aW5nRnVsbHlFbmFibGVkKQotICAgICAgICByZXR1cm4gRnJhbWVGbGF0dGVuaW5nRGlzYWJsZWQ7
Ci0jZW5kaWYKLSAgICByZXR1cm4gZnJhbWVGbGF0dGVuaW5nKCk7Ci19Ci0KIH0gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmgJKHJldmlzaW9uIDIyMzM2NikK
KysrIFNvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuaAkod29ya2luZyBjb3B5KQpAQCAtMjcs
NiArMjcsOCBAQAogI3ByYWdtYSBvbmNlCiAKICNpbmNsdWRlICJTZXR0aW5nc0Jhc2UuaCIKKyNp
bmNsdWRlICJTZXR0aW5nc01hY3Jvcy5oIgorI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CiAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtMzYsMTggKzM4LDEyIEBAIHB1YmxpYzoKICAgICBz
dGF0aWMgUmVmPFNldHRpbmdzPiBjcmVhdGUoUGFnZSopOwogICAgIH5TZXR0aW5ncygpOwogCi0g
ICAgdm9pZCBwYWdlRGVzdHJveWVkKCkgeyBtX3BhZ2UgPSBudWxscHRyOyB9Ci0KICAgICBTRVRU
SU5HU19HRVRURVJTX0FORF9TRVRURVJTCiAKLQotICAgIFdFQkNPUkVfRVhQT1JUIEZyYW1lRmxh
dHRlbmluZyBlZmZlY3RpdmVGcmFtZUZsYXR0ZW5pbmcoKTsKLQogcHJpdmF0ZToKICAgICBleHBs
aWNpdCBTZXR0aW5ncyhQYWdlKik7CiAKICAgICBTRVRUSU5HU19NRU1CRVJfVkFSSUFCTEVTCi0K
IH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2Uv
U2V0dGluZ3MuaW4KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5p
bgkocmV2aXNpb24gMjIzMzY2KQorKysgU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5pbgko
d29ya2luZyBjb3B5KQpAQCAtMTc1LDcgKzE3NSw3IEBAIHNuYXBzaG90QWxsUGx1Z0lucyBpbml0
aWFsPWZhbHNlCiBhdXRvc3RhcnRPcmlnaW5QbHVnSW5TbmFwc2hvdHRpbmdFbmFibGVkIGluaXRp
YWw9dHJ1ZQogcHJpbWFyeVBsdWdJblNuYXBzaG90RGV0ZWN0aW9uRW5hYmxlZCBpbml0aWFsPXRy
dWUKIG1heGltdW1QbHVnSW5TbmFwc2hvdEF0dGVtcHRzIHR5cGU9dW5zaWduZWQsIGluaXRpYWw9
MjAKLWZyYW1lRmxhdHRlbmluZyB0eXBlPUZyYW1lRmxhdHRlbmluZywgaW5pdGlhbD1GcmFtZUZs
YXR0ZW5pbmdEaXNhYmxlZAorZnJhbWVGbGF0dGVuaW5nIHR5cGU9RnJhbWVGbGF0dGVuaW5nLCBp
bml0aWFsPUZyYW1lRmxhdHRlbmluZzo6RGlzYWJsZWQKIGFzeW5jRnJhbWVTY3JvbGxpbmdFbmFi
bGVkIGluaXRpYWw9ZmFsc2UKIAogd2ViU2VjdXJpdHlFbmFibGVkIGluaXRpYWw9dHJ1ZQpJbmRl
eDogU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5nc0Jhc2UuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzQmFzZS5oCShyZXZpc2lvbiAyMjMzNjYpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzQmFzZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMSw3ICsz
MSw3IEBACiAjaW5jbHVkZSAiRWRpdGluZ0JlaGF2aW9yVHlwZXMuaCIKICNpbmNsdWRlICJJbnRT
aXplLmgiCiAjaW5jbHVkZSAiU2VjdXJpdHlPcmlnaW4uaCIKLSNpbmNsdWRlICJTZXR0aW5nc01h
Y3Jvcy5oIgorI2luY2x1ZGUgIlN0b3JhZ2VNYXAuaCIKICNpbmNsdWRlICJUZXh0RmxhZ3MuaCIK
ICNpbmNsdWRlICJUaW1lci5oIgogI2luY2x1ZGUgIlVSTC5oIgpAQCAtODgsMTAgKzg4LDEwIEBA
IGVudW0gUERGSW1hZ2VDYWNoaW5nUG9saWN5IHsKICNlbmRpZgogfTsKIAotZW51bSBGcmFtZUZs
YXR0ZW5pbmcgewotICAgIEZyYW1lRmxhdHRlbmluZ0Rpc2FibGVkLAotICAgIEZyYW1lRmxhdHRl
bmluZ0VuYWJsZWRGb3JOb25GdWxsU2NyZWVuSUZyYW1lcywKLSAgICBGcmFtZUZsYXR0ZW5pbmdG
dWxseUVuYWJsZWQKK2VudW0gY2xhc3MgRnJhbWVGbGF0dGVuaW5nIHsKKyAgICBEaXNhYmxlZCwK
KyAgICBFbmFibGVkRm9yTm9uRnVsbFNjcmVlbklGcmFtZXMsCisgICAgRnVsbHlFbmFibGVkCiB9
OwogCiB0eXBlZGVmIHVuc2lnbmVkIERlYnVnT3ZlcmxheVJlZ2lvbnM7CkBAIC0xMDEsNiArMTAx
LDggQEAgY2xhc3MgU2V0dGluZ3NCYXNlIHsKIHB1YmxpYzoKICAgICB+U2V0dGluZ3NCYXNlKCk7
CiAKKyAgICB2b2lkIHBhZ2VEZXN0cm95ZWQoKSB7IG1fcGFnZSA9IG51bGxwdHI7IH0KKwogICAg
IGVudW0gY2xhc3MgRm9udExvYWRUaW1pbmdPdmVycmlkZSB7IE5vbmUsIEJsb2NrLCBTd2FwLCBG
YWlsdXJlIH07CiAKICAgICBlbnVtIGNsYXNzIEZvcmNlZEFjY2Vzc2liaWxpdHlWYWx1ZSB7IFN5
c3RlbSwgT24sIE9mZiB9OwpJbmRleDogU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5nc0RlZmF1
bHRWYWx1ZXMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzRGVm
YXVsdFZhbHVlcy5oCShub25leGlzdGVudCkKKysrIFNvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGlu
Z3NEZWZhdWx0VmFsdWVzLmgJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxMDAgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQg
SVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgIkVkaXRpbmdCZWhhdmlvclR5cGVzLmgi
CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworLy8gTk9URXMKKy8vICAxKSBFZGl0aW5nTWFjQmVo
YXZpb3IgY29tcHJpc2VzIFRpZ2VyLCBMZW9wYXJkLCBTbm93TGVvcGFyZCBhbmQgaU9TIGJ1aWxk
cywgYXMgd2VsbCBhcyBRdFdlYktpdCB3aGVuIGJ1aWx0IG9uIE1hYzsKKy8vICAyKSBFZGl0aW5n
V2luZG93c0JlaGF2aW9yIGNvbXByaXNlcyBXaW4zMiBidWlsZDsKKy8vICAzKSBFZGl0aW5nVW5p
eEJlaGF2aW9yIGNvbXByaXNlcyBhbGwgdW5peC1iYXNlZCBzeXN0ZW1zLCBidXQgRGFyd2luL01h
Y09TIChhbmQgdGhlbiBhYnVzaW5nIHRoZSB0ZXJtaW5vbG9neSk7CisvLyA5OSkgTWFjRWRpdGlu
Z0JlaGF2aW9yIGlzIHVzZWQgYXMgYSBmYWxsYmFjay4KK2lubGluZSBFZGl0aW5nQmVoYXZpb3JU
eXBlIGVkaXRpbmdCZWhhdmlvclR5cGVGb3JQbGF0Zm9ybSgpCit7CisjaWYgUExBVEZPUk0oSU9T
KQorICAgIHJldHVybiBFZGl0aW5nSU9TQmVoYXZpb3I7CisjZWxpZiBPUyhEQVJXSU4pCisgICAg
cmV0dXJuIEVkaXRpbmdNYWNCZWhhdmlvcjsKKyNlbGlmIE9TKFdJTkRPV1MpCisgICAgcmV0dXJu
IEVkaXRpbmdXaW5kb3dzQmVoYXZpb3I7CisjZWxpZiBPUyhVTklYKQorICAgIHJldHVybiBFZGl0
aW5nVW5peEJlaGF2aW9yOworI2Vsc2UKKyAgICAvLyBGYWxsYmFjaworICAgIHJldHVybiBFZGl0
aW5nTWFjQmVoYXZpb3I7CisjZW5kaWYKKyAgICAKK30KKworI2lmIFBMQVRGT1JNKENPQ09BKQor
c3RhdGljIGNvbnN0IGJvb2wgZGVmYXVsdFlvdVR1YmVGbGFzaFBsdWdpblJlcGxhY2VtZW50RW5h
YmxlZCA9IHRydWU7CisjZWxzZQorc3RhdGljIGNvbnN0IGJvb2wgZGVmYXVsdFlvdVR1YmVGbGFz
aFBsdWdpblJlcGxhY2VtZW50RW5hYmxlZCA9IGZhbHNlOworI2VuZGlmCisKKyNpZiBQTEFURk9S
TShJT1MpCitzdGF0aWMgY29uc3QgYm9vbCBkZWZhdWx0Rml4ZWRCYWNrZ3JvdW5kc1BhaW50UmVs
YXRpdmVUb0RvY3VtZW50ID0gdHJ1ZTsKK3N0YXRpYyBjb25zdCBib29sIGRlZmF1bHRBY2NlbGVy
YXRlZENvbXBvc2l0aW5nRm9yRml4ZWRQb3NpdGlvbkVuYWJsZWQgPSB0cnVlOworc3RhdGljIGNv
bnN0IGJvb2wgZGVmYXVsdEFsbG93c0lubGluZU1lZGlhUGxheWJhY2sgPSBmYWxzZTsKK3N0YXRp
YyBjb25zdCBib29sIGRlZmF1bHRJbmxpbmVNZWRpYVBsYXliYWNrUmVxdWlyZXNQbGF5c0lubGlu
ZUF0dHJpYnV0ZSA9IHRydWU7CitzdGF0aWMgY29uc3QgYm9vbCBkZWZhdWx0VmlkZW9QbGF5YmFj
a1JlcXVpcmVzVXNlckdlc3R1cmUgPSB0cnVlOworc3RhdGljIGNvbnN0IGJvb2wgZGVmYXVsdEF1
ZGlvUGxheWJhY2tSZXF1aXJlc1VzZXJHZXN0dXJlID0gdHJ1ZTsKK3N0YXRpYyBjb25zdCBib29s
IGRlZmF1bHRNZWRpYURhdGFMb2Fkc0F1dG9tYXRpY2FsbHkgPSBmYWxzZTsKK3N0YXRpYyBjb25z
dCBib29sIGRlZmF1bHRTaG91bGRSZXNwZWN0SW1hZ2VPcmllbnRhdGlvbiA9IHRydWU7CitzdGF0
aWMgY29uc3QgYm9vbCBkZWZhdWx0SW1hZ2VTdWJzYW1wbGluZ0VuYWJsZWQgPSB0cnVlOworc3Rh
dGljIGNvbnN0IGJvb2wgZGVmYXVsdFNjcm9sbGluZ1RyZWVJbmNsdWRlc0ZyYW1lcyA9IHRydWU7
CitzdGF0aWMgY29uc3QgYm9vbCBkZWZhdWx0TWVkaWFDb250cm9sc1NjYWxlV2l0aFBhZ2Vab29t
ID0gdHJ1ZTsKK3N0YXRpYyBjb25zdCBib29sIGRlZmF1bHRRdWlja1RpbWVQbHVnaW5SZXBsYWNl
bWVudEVuYWJsZWQgPSB0cnVlOworI2Vsc2UKK3N0YXRpYyBjb25zdCBib29sIGRlZmF1bHRGaXhl
ZEJhY2tncm91bmRzUGFpbnRSZWxhdGl2ZVRvRG9jdW1lbnQgPSBmYWxzZTsKK3N0YXRpYyBjb25z
dCBib29sIGRlZmF1bHRBY2NlbGVyYXRlZENvbXBvc2l0aW5nRm9yRml4ZWRQb3NpdGlvbkVuYWJs
ZWQgPSBmYWxzZTsKK3N0YXRpYyBjb25zdCBib29sIGRlZmF1bHRBbGxvd3NJbmxpbmVNZWRpYVBs
YXliYWNrID0gdHJ1ZTsKK3N0YXRpYyBjb25zdCBib29sIGRlZmF1bHRJbmxpbmVNZWRpYVBsYXli
YWNrUmVxdWlyZXNQbGF5c0lubGluZUF0dHJpYnV0ZSA9IGZhbHNlOworc3RhdGljIGNvbnN0IGJv
b2wgZGVmYXVsdFZpZGVvUGxheWJhY2tSZXF1aXJlc1VzZXJHZXN0dXJlID0gZmFsc2U7CitzdGF0
aWMgY29uc3QgYm9vbCBkZWZhdWx0QXVkaW9QbGF5YmFja1JlcXVpcmVzVXNlckdlc3R1cmUgPSBm
YWxzZTsKK3N0YXRpYyBjb25zdCBib29sIGRlZmF1bHRNZWRpYURhdGFMb2Fkc0F1dG9tYXRpY2Fs
bHkgPSB0cnVlOworc3RhdGljIGNvbnN0IGJvb2wgZGVmYXVsdFNob3VsZFJlc3BlY3RJbWFnZU9y
aWVudGF0aW9uID0gZmFsc2U7CitzdGF0aWMgY29uc3QgYm9vbCBkZWZhdWx0SW1hZ2VTdWJzYW1w
bGluZ0VuYWJsZWQgPSBmYWxzZTsKK3N0YXRpYyBjb25zdCBib29sIGRlZmF1bHRTY3JvbGxpbmdU
cmVlSW5jbHVkZXNGcmFtZXMgPSBmYWxzZTsKK3N0YXRpYyBjb25zdCBib29sIGRlZmF1bHRNZWRp
YUNvbnRyb2xzU2NhbGVXaXRoUGFnZVpvb20gPSB0cnVlOworc3RhdGljIGNvbnN0IGJvb2wgZGVm
YXVsdFF1aWNrVGltZVBsdWdpblJlcGxhY2VtZW50RW5hYmxlZCA9IGZhbHNlOworI2VuZGlmCisK
K3N0YXRpYyBjb25zdCBib29sIGRlZmF1bHRSZXF1aXJlc1VzZXJHZXN0dXJlVG9Mb2FkVmlkZW8g
PSB0cnVlOworc3RhdGljIGNvbnN0IGJvb2wgZGVmYXVsdEFsbG93c1BpY3R1cmVJblBpY3R1cmVN
ZWRpYVBsYXliYWNrID0gdHJ1ZTsKKworc3RhdGljIGNvbnN0IGRvdWJsZSBkZWZhdWx0SW5jcmVt
ZW50YWxSZW5kZXJpbmdTdXBwcmVzc2lvblRpbWVvdXRJblNlY29uZHMgPSA1OworI2lmIFVTRShV
TklGSUVEX1RFWFRfQ0hFQ0tJTkcpCitzdGF0aWMgY29uc3QgYm9vbCBkZWZhdWx0VW5pZmllZFRl
eHRDaGVja2VyRW5hYmxlZCA9IHRydWU7CisjZWxzZQorc3RhdGljIGNvbnN0IGJvb2wgZGVmYXVs
dFVuaWZpZWRUZXh0Q2hlY2tlckVuYWJsZWQgPSBmYWxzZTsKKyNlbmRpZgorc3RhdGljIGNvbnN0
IGJvb2wgZGVmYXVsdFNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCA9IHRydWU7CitzdGF0aWMgY29u
c3QgYm9vbCBkZWZhdWx0U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCA9IGZhbHNlOwor
Cit9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRnJhbWVTZXQuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGcmFtZVNldC5jcHAJ
KHJldmlzaW9uIDIyMzM2NikKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGcmFt
ZVNldC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTY1MSw3ICs2NTEsNyBAQCB2b2lkIFJlbmRlckZy
YW1lU2V0Ojpwb3NpdGlvbkZyYW1lc1dpdGhGCiAKIGJvb2wgUmVuZGVyRnJhbWVTZXQ6OmZsYXR0
ZW5GcmFtZVNldCgpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIHNldHRpbmdzKCkuZWZmZWN0aXZlRnJh
bWVGbGF0dGVuaW5nKCkgIT0gRnJhbWVGbGF0dGVuaW5nRGlzYWJsZWQ7CisgICAgcmV0dXJuIHZp
ZXcoKS5mcmFtZVZpZXcoKS5lZmZlY3RpdmVGcmFtZUZsYXR0ZW5pbmcoKSAhPSBGcmFtZUZsYXR0
ZW5pbmc6OkRpc2FibGVkOwogfQogCiB2b2lkIFJlbmRlckZyYW1lU2V0OjpzdGFydFJlc2l6aW5n
KEdyaWRBeGlzJiBheGlzLCBpbnQgcG9zaXRpb24pCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVySUZyYW1lLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVySUZyYW1lLmNwcAkocmV2aXNpb24gMjIzMzY2KQorKysgU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlcklGcmFtZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTc4LDcgKzc4
LDcgQEAgYm9vbCBSZW5kZXJJRnJhbWU6OmlzRnVsbFNjcmVlbklGcmFtZSgpIAogCiBib29sIFJl
bmRlcklGcmFtZTo6ZmxhdHRlbkZyYW1lKCkgY29uc3QKIHsKLSAgICBpZiAoc2V0dGluZ3MoKS5l
ZmZlY3RpdmVGcmFtZUZsYXR0ZW5pbmcoKSA9PSBGcmFtZUZsYXR0ZW5pbmdEaXNhYmxlZCkKKyAg
ICBpZiAodmlldygpLmZyYW1lVmlldygpLmVmZmVjdGl2ZUZyYW1lRmxhdHRlbmluZygpID09IEZy
YW1lRmxhdHRlbmluZzo6RGlzYWJsZWQpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIGlm
IChzdHlsZSgpLndpZHRoKCkuaXNGaXhlZCgpICYmIHN0eWxlKCkuaGVpZ2h0KCkuaXNGaXhlZCgp
KSB7CkBAIC04OSw3ICs4OSw3IEBAIGJvb2wgUmVuZGVySUZyYW1lOjpmbGF0dGVuRnJhbWUoKSBj
b25zdAogICAgICAgICBpZiAoc3R5bGUoKS53aWR0aCgpLnZhbHVlKCkgPD0gMCB8fCBzdHlsZSgp
LmhlaWdodCgpLnZhbHVlKCkgPD0gMCkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAg
ICAgLy8gRG8gbm90IGZsYXR0ZW4gImZ1bGxzY3JlZW4iIGlmcmFtZXMgb3IgdGhleSBjb3VsZCBi
ZWNvbWUgbGFyZ2VyIHRoYW4gdGhlIHZpZXdwb3J0LgotICAgICAgICBpZiAoc2V0dGluZ3MoKS5l
ZmZlY3RpdmVGcmFtZUZsYXR0ZW5pbmcoKSA8PSBGcmFtZUZsYXR0ZW5pbmdFbmFibGVkRm9yTm9u
RnVsbFNjcmVlbklGcmFtZXMgJiYgaXNGdWxsU2NyZWVuSUZyYW1lKCkpCisgICAgICAgIGlmICh2
aWV3KCkuZnJhbWVWaWV3KCkuZWZmZWN0aXZlRnJhbWVGbGF0dGVuaW5nKCkgPD0gRnJhbWVGbGF0
dGVuaW5nOjpFbmFibGVkRm9yTm9uRnVsbFNjcmVlbklGcmFtZXMgJiYgaXNGdWxsU2NyZWVuSUZy
YW1lKCkpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQogCkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVmlldy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlclZpZXcuY3BwCShyZXZpc2lvbiAyMjMzNjYpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVmlldy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTU5
LDcgKzU5LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogc3RydWN0IEZyYW1lRmxhdHRlbmluZ0xh
eW91dERpc2FsbG93ZXIgewogICAgIEZyYW1lRmxhdHRlbmluZ0xheW91dERpc2FsbG93ZXIoRnJh
bWVWaWV3JiBmcmFtZVZpZXcpCiAgICAgICAgIDogbV9mcmFtZVZpZXcoZnJhbWVWaWV3KQotICAg
ICAgICAsIG1fZGlzYWxsb3dMYXlvdXQoZnJhbWVWaWV3LmZyYW1lKCkuc2V0dGluZ3MoKS5lZmZl
Y3RpdmVGcmFtZUZsYXR0ZW5pbmcoKSAhPSBGcmFtZUZsYXR0ZW5pbmdEaXNhYmxlZCkKKyAgICAg
ICAgLCBtX2Rpc2FsbG93TGF5b3V0KGZyYW1lVmlldy5lZmZlY3RpdmVGcmFtZUZsYXR0ZW5pbmco
KSAhPSBGcmFtZUZsYXR0ZW5pbmc6OkRpc2FibGVkKQogICAgIHsKICAgICAgICAgaWYgKG1fZGlz
YWxsb3dMYXlvdXQpCiAgICAgICAgICAgICBtX2ZyYW1lVmlldy5zdGFydERpc2FsbG93aW5nTGF5
b3V0KCk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5j
cHAJKHJldmlzaW9uIDIyMzM2NikKKysrIFNvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxT
ZXR0aW5ncy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTgxOSwyNiArODE5LDExIEBAIEV4Y2VwdGlv
bk9yPHZvaWQ+IEludGVybmFsU2V0dGluZ3M6OnNldFMKICAgICByZXR1cm4gRXhjZXB0aW9uIHsg
SW52YWxpZEFjY2Vzc0Vycm9yIH07CiB9CiAKLXN0YXRpYyBGcmFtZUZsYXR0ZW5pbmcgaW50ZXJu
YWxTZXR0aW5nc1RvV2ViQ29yZVZhbHVlKEludGVybmFsU2V0dGluZ3M6OkZyYW1lRmxhdHRlbmlu
Z1ZhbHVlIHZhbHVlKQotewotICAgIHN3aXRjaCAodmFsdWUpIHsKLSAgICBjYXNlIEludGVybmFs
U2V0dGluZ3M6OkZyYW1lRmxhdHRlbmluZ1ZhbHVlOjpEaXNhYmxlZDoKLSAgICAgICAgcmV0dXJu
IEZyYW1lRmxhdHRlbmluZ0Rpc2FibGVkOwotICAgIGNhc2UgSW50ZXJuYWxTZXR0aW5nczo6RnJh
bWVGbGF0dGVuaW5nVmFsdWU6OkVuYWJsZWRGb3JOb25GdWxsU2NyZWVuSUZyYW1lczoKLSAgICAg
ICAgcmV0dXJuIEZyYW1lRmxhdHRlbmluZ0VuYWJsZWRGb3JOb25GdWxsU2NyZWVuSUZyYW1lczsK
LSAgICBjYXNlIEludGVybmFsU2V0dGluZ3M6OkZyYW1lRmxhdHRlbmluZ1ZhbHVlOjpGdWxseUVu
YWJsZWQ6Ci0gICAgICAgIHJldHVybiBGcmFtZUZsYXR0ZW5pbmdGdWxseUVuYWJsZWQ7Ci0gICAg
fQotCi0gICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgcmV0dXJuIEZyYW1lRmxhdHRlbmlu
Z0Rpc2FibGVkOwotfQotCi1FeGNlcHRpb25Pcjx2b2lkPiBJbnRlcm5hbFNldHRpbmdzOjpzZXRG
cmFtZUZsYXR0ZW5pbmcoY29uc3QgRnJhbWVGbGF0dGVuaW5nVmFsdWUmIGZyYW1lRmxhdHRlbmlu
ZykKK0V4Y2VwdGlvbk9yPHZvaWQ+IEludGVybmFsU2V0dGluZ3M6OnNldEZyYW1lRmxhdHRlbmlu
ZyhGcmFtZUZsYXR0ZW5pbmdWYWx1ZSBmcmFtZUZsYXR0ZW5pbmcpCiB7CiAgICAgaWYgKCFtX3Bh
Z2UpCiAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlkQWNjZXNzRXJyb3IgfTsKLSAg
ICBzZXR0aW5ncygpLnNldEZyYW1lRmxhdHRlbmluZyhpbnRlcm5hbFNldHRpbmdzVG9XZWJDb3Jl
VmFsdWUoZnJhbWVGbGF0dGVuaW5nKSk7CisgICAgc2V0dGluZ3MoKS5zZXRGcmFtZUZsYXR0ZW5p
bmcoZnJhbWVGbGF0dGVuaW5nKTsKICAgICByZXR1cm4geyB9OwogfQogCkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS90ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS90ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuaAkocmV2aXNpb24gMjIzMzY2KQorKysg
U291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmgJKHdvcmtpbmcgY29weSkK
QEAgLTEwMSw4ICsxMDEsOCBAQCBwdWJsaWM6CiAgICAgRXhjZXB0aW9uT3I8dm9pZD4gc2V0U2hv
dWxkTWFuYWdlQXVkaW9TZXNzaW9uQ2F0ZWdvcnkoYm9vbCk7CiAgICAgRXhjZXB0aW9uT3I8dm9p
ZD4gc2V0Q3VzdG9tUGFzdGVib2FyZERhdGFFbmFibGVkKGJvb2wpOwogCi0gICAgZW51bSBjbGFz
cyBGcmFtZUZsYXR0ZW5pbmdWYWx1ZSB7IERpc2FibGVkLCBFbmFibGVkRm9yTm9uRnVsbFNjcmVl
bklGcmFtZXMsIEZ1bGx5RW5hYmxlZCB9OwotICAgIEV4Y2VwdGlvbk9yPHZvaWQ+IHNldEZyYW1l
RmxhdHRlbmluZyhjb25zdCBGcmFtZUZsYXR0ZW5pbmdWYWx1ZSYpOworICAgIHVzaW5nIEZyYW1l
RmxhdHRlbmluZ1ZhbHVlID0gRnJhbWVGbGF0dGVuaW5nOworICAgIEV4Y2VwdGlvbk9yPHZvaWQ+
IHNldEZyYW1lRmxhdHRlbmluZyhGcmFtZUZsYXR0ZW5pbmdWYWx1ZSk7CiAgICAgCiAgICAgc3Rh
dGljIHZvaWQgc2V0QWxsb3dzQW55U1NMQ2VydGlmaWNhdGUoYm9vbCk7CiAKSW5kZXg6IFNvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9n
CShyZXZpc2lvbiAyMjMzNzEpCisrKyBTb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwkod29ya2luZyBj
b3B5KQpAQCAtMSwzICsxLDI1IEBACisyMDE3LTEwLTE2ICBTYW0gV2VpbmlnICA8c2FtQHdlYmtp
dC5vcmc+CisKKyAgICAgICAgW1NldHRpbmdzXSBSZW1vdmUgYWxsIGN1c3RvbSBjb2RlIGZyb20g
U2V0dGluZ3MuaC9jcHAKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTE3ODMzMAorCisgICAgICAgICogU2hhcmVkL1dlYlByZWZlcmVuY2VzRGVmaW5pdGlv
bnMuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tQcmVmZXJlbmNlcy5jcHA6CisgICAg
ICAgIChXS1ByZWZlcmVuY2VzU2V0RnJhbWVGbGF0dGVuaW5nRW5hYmxlZCk6CisgICAgICAgIChX
S1ByZWZlcmVuY2VzR2V0RnJhbWVGbGF0dGVuaW5nRW5hYmxlZCk6CisgICAgICAgICogVUlQcm9j
ZXNzL0FQSS9nbGliL1dlYktpdFNldHRpbmdzLmNwcDoKKyAgICAgICAgKHdlYmtpdF9zZXR0aW5n
c19nZXRfZW5hYmxlX2ZyYW1lX2ZsYXR0ZW5pbmcpOgorICAgICAgICAod2Via2l0X3NldHRpbmdz
X3NldF9lbmFibGVfZnJhbWVfZmxhdHRlbmluZyk6CisgICAgICAgICogV2ViUHJvY2Vzcy9Jbmpl
Y3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OkluamVjdGVk
QnVuZGxlOjpzZXRGcmFtZUZsYXR0ZW5pbmdFbmFibGVkKToKKyAgICAgICAgCisgICAgICAgICAg
ICBVcGRhdGUgZm9yIG5hbWluZyBjaGFuZ2VzIG9mIEZyYW1lRmxhdHRlbmluZyBub3cgdGhhdCBp
dCBpcyBhbiBlbnVtIGNsYXNzLgorCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9XZWJDaHJvbWVDbGllbnQuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJDaHJvbWVDbGllbnQ6
OmNvbnRlbnRzU2l6ZUNoYW5nZWQgY29uc3QpOgorCisgICAgICAgICAgICBHZSB0aGUgZWZmZWN0
aXZlRnJhbWVGbGF0dGVuaW5nIGZyb20gdGhlIEZyYW1lVmlldywgcmF0aGVyIHRoYW4gdGhlIFNl
dHRpbmdzLgorCiAyMDE3LTEwLTEzICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4K
IAogICAgICAgICBJbXBsZW1lbnQgbGlzdGluZyBvcmlnaW5zIGZvciB3aGljaCBDYWNoZVN0b3Jh
Z2UgaXMgc3RvcmluZyBkYXRhCkluZGV4OiBTb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcmVmZXJl
bmNlc0RlZmluaXRpb25zLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9TaGFyZWQvV2Vi
UHJlZmVyZW5jZXNEZWZpbml0aW9ucy5oCShyZXZpc2lvbiAyMjMzNjYpCisrKyBTb3VyY2UvV2Vi
S2l0L1NoYXJlZC9XZWJQcmVmZXJlbmNlc0RlZmluaXRpb25zLmgJKHdvcmtpbmcgY29weSkKQEAg
LTYwLDcgKzYwLDcgQEAKICNpZiBQTEFURk9STShJT1MpCiAjZGVmaW5lIERFRkFVTFRfQUxMT1dT
X1BJQ1RVUkVfSU5fUElDVFVSRV9NRURJQV9QTEFZQkFDSyB0cnVlCiAjZGVmaW5lIERFRkFVTFRf
QkFDS1NQQUNFX0tFWV9OQVZJR0FUSU9OX0VOQUJMRUQgZmFsc2UKLSNkZWZpbmUgREVGQVVMVF9G
UkFNRV9GTEFUVEVOSU5HIEZyYW1lRmxhdHRlbmluZ0Z1bGx5RW5hYmxlZAorI2RlZmluZSBERUZB
VUxUX0ZSQU1FX0ZMQVRURU5JTkcgRnJhbWVGbGF0dGVuaW5nOjpGdWxseUVuYWJsZWQKICNkZWZp
bmUgREVGQVVMVF9TSE9VTERfUFJJTlRfQkFDS0dST1VORFMgdHJ1ZQogI2RlZmluZSBERUZBVUxU
X1RFWFRfQVJFQVNfQVJFX1JFU0laQUJMRSBmYWxzZQogI2RlZmluZSBERUZBVUxUX0pBVkFTQ1JJ
UFRfQ0FOX09QRU5fV0lORE9XU19BVVRPTUFUSUNBTExZIGZhbHNlCkBAIC03OCw3ICs3OCw3IEBA
CiAjZWxzZQogI2RlZmluZSBERUZBVUxUX0FMTE9XU19QSUNUVVJFX0lOX1BJQ1RVUkVfTUVESUFf
UExBWUJBQ0sgZmFsc2UKICNkZWZpbmUgREVGQVVMVF9CQUNLU1BBQ0VfS0VZX05BVklHQVRJT05f
RU5BQkxFRCB0cnVlCi0jZGVmaW5lIERFRkFVTFRfRlJBTUVfRkxBVFRFTklORyBGcmFtZUZsYXR0
ZW5pbmdEaXNhYmxlZAorI2RlZmluZSBERUZBVUxUX0ZSQU1FX0ZMQVRURU5JTkcgRnJhbWVGbGF0
dGVuaW5nOjpEaXNhYmxlZAogI2RlZmluZSBERUZBVUxUX1NIT1VMRF9QUklOVF9CQUNLR1JPVU5E
UyBmYWxzZQogI2RlZmluZSBERUZBVUxUX1RFWFRfQVJFQVNfQVJFX1JFU0laQUJMRSB0cnVlCiAj
ZGVmaW5lIERFRkFVTFRfSkFWQVNDUklQVF9DQU5fT1BFTl9XSU5ET1dTX0FVVE9NQVRJQ0FMTFkg
dHJ1ZQpJbmRleDogU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQcmVmZXJlbmNlcy5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQcmVmZXJl
bmNlcy5jcHAJKHJldmlzaW9uIDIyMzM2NikKKysrIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9DL1dLUHJlZmVyZW5jZXMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNDUsMTMgKzE0NSwxMyBA
QCBib29sIFdLUHJlZmVyZW5jZXNHZXRYU1NBdWRpdG9yRW5hYmxlZChXCiB2b2lkIFdLUHJlZmVy
ZW5jZXNTZXRGcmFtZUZsYXR0ZW5pbmdFbmFibGVkKFdLUHJlZmVyZW5jZXNSZWYgcHJlZmVyZW5j
ZXNSZWYsIGJvb2wgZnJhbWVGbGF0dGVuaW5nRW5hYmxlZCkKIHsKICAgICAvLyBGSVhNRTogRXhw
b3NlIG1vcmUgZnJhbWUgZmxhdHRlbmluZyB2YWx1ZXMuCi0gICAgdG9JbXBsKHByZWZlcmVuY2Vz
UmVmKS0+c2V0RnJhbWVGbGF0dGVuaW5nKGZyYW1lRmxhdHRlbmluZ0VuYWJsZWQgPyBXZWJDb3Jl
OjpGcmFtZUZsYXR0ZW5pbmdGdWxseUVuYWJsZWQgOiBXZWJDb3JlOjpGcmFtZUZsYXR0ZW5pbmdE
aXNhYmxlZCk7CisgICAgdG9JbXBsKHByZWZlcmVuY2VzUmVmKS0+c2V0RnJhbWVGbGF0dGVuaW5n
KGZyYW1lRmxhdHRlbmluZ0VuYWJsZWQgPyBzdGF0aWNfY2FzdDx1aW50MzJfdD4oV2ViQ29yZTo6
RnJhbWVGbGF0dGVuaW5nOjpGdWxseUVuYWJsZWQpIDogc3RhdGljX2Nhc3Q8dWludDMyX3Q+KFdl
YkNvcmU6OkZyYW1lRmxhdHRlbmluZzo6RGlzYWJsZWQpKTsKIH0KIAogYm9vbCBXS1ByZWZlcmVu
Y2VzR2V0RnJhbWVGbGF0dGVuaW5nRW5hYmxlZChXS1ByZWZlcmVuY2VzUmVmIHByZWZlcmVuY2Vz
UmVmKQogewogICAgIC8vIEZJWE1FOiBFeHBvc2UgbW9yZSBmcmFtZSBmbGF0dGVuaW5nIHZhbHVl
cy4KLSAgICByZXR1cm4gdG9JbXBsKHByZWZlcmVuY2VzUmVmKS0+ZnJhbWVGbGF0dGVuaW5nKCkg
IT0gV2ViQ29yZTo6RnJhbWVGbGF0dGVuaW5nRGlzYWJsZWQ7CisgICAgcmV0dXJuIHRvSW1wbChw
cmVmZXJlbmNlc1JlZiktPmZyYW1lRmxhdHRlbmluZygpICE9IHN0YXRpY19jYXN0PHVpbnQzMl90
PihXZWJDb3JlOjpGcmFtZUZsYXR0ZW5pbmc6OkRpc2FibGVkKTsKIH0KIAogdm9pZCBXS1ByZWZl
cmVuY2VzU2V0UGx1Z2luc0VuYWJsZWQoV0tQcmVmZXJlbmNlc1JlZiBwcmVmZXJlbmNlc1JlZiwg
Ym9vbCBwbHVnaW5zRW5hYmxlZCkKSW5kZXg6IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9n
bGliL1dlYktpdFNldHRpbmdzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvZ2xpYi9XZWJLaXRTZXR0aW5ncy5jcHAJKHJldmlzaW9uIDIyMzM2NikKKysrIFNv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFNldHRpbmdzLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMTYyMCw3ICsxNjIwLDcgQEAgZ2Jvb2xlYW4gd2Via2l0X3NldHRpbmdzX2dl
dF9lbmFibGVfZnJhbQogICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKFdFQktJVF9JU19TRVRUSU5H
UyhzZXR0aW5ncyksIEZBTFNFKTsKIAogICAgIC8vIEZJWE1FOiBFeHBvc2UgbW9yZSBmcmFtZSBm
bGF0dGVuaW5nIHZhbHVlcy4KLSAgICByZXR1cm4gc2V0dGluZ3MtPnByaXYtPnByZWZlcmVuY2Vz
LT5mcmFtZUZsYXR0ZW5pbmcoKSAhPSBXZWJDb3JlOjpGcmFtZUZsYXR0ZW5pbmdEaXNhYmxlZDsK
KyAgICByZXR1cm4gc2V0dGluZ3MtPnByaXYtPnByZWZlcmVuY2VzLT5mcmFtZUZsYXR0ZW5pbmco
KSAhPSBzdGF0aWNfY2FzdDx1aW50MzJfdD4oV2ViQ29yZTo6RnJhbWVGbGF0dGVuaW5nOjpEaXNh
YmxlZCk7CiB9CiAKIC8qKgpAQCAtMTYzNSwxMiArMTYzNSwxMiBAQCB2b2lkIHdlYmtpdF9zZXR0
aW5nc19zZXRfZW5hYmxlX2ZyYW1lX2ZsCiAgICAgZ19yZXR1cm5faWZfZmFpbChXRUJLSVRfSVNf
U0VUVElOR1Moc2V0dGluZ3MpKTsKIAogICAgIFdlYktpdFNldHRpbmdzUHJpdmF0ZSogcHJpdiA9
IHNldHRpbmdzLT5wcml2OwotICAgIGJvb2wgY3VycmVudFZhbHVlID0gcHJpdi0+cHJlZmVyZW5j
ZXMtPmZyYW1lRmxhdHRlbmluZygpICE9IFdlYkNvcmU6OkZyYW1lRmxhdHRlbmluZ0Rpc2FibGVk
OworICAgIGJvb2wgY3VycmVudFZhbHVlID0gcHJpdi0+cHJlZmVyZW5jZXMtPmZyYW1lRmxhdHRl
bmluZygpICE9IHN0YXRpY19jYXN0PHVpbnQzMl90PihXZWJDb3JlOjpGcmFtZUZsYXR0ZW5pbmc6
OkRpc2FibGVkKTsKICAgICBpZiAoY3VycmVudFZhbHVlID09IGVuYWJsZWQpCiAgICAgICAgIHJl
dHVybjsKIAogICAgIC8vIEZJWE1FOiBFeHBvc2UgbW9yZSBmcmFtZSBmbGF0dGVuaW5nIHZhbHVl
cy4KLSAgICBwcml2LT5wcmVmZXJlbmNlcy0+c2V0RnJhbWVGbGF0dGVuaW5nKGVuYWJsZWQgPyBX
ZWJDb3JlOjpGcmFtZUZsYXR0ZW5pbmdGdWxseUVuYWJsZWQgOiBXZWJDb3JlOjpGcmFtZUZsYXR0
ZW5pbmdEaXNhYmxlZCk7CisgICAgcHJpdi0+cHJlZmVyZW5jZXMtPnNldEZyYW1lRmxhdHRlbmlu
ZyhlbmFibGVkID8gc3RhdGljX2Nhc3Q8dWludDMyX3Q+KFdlYkNvcmU6OkZyYW1lRmxhdHRlbmlu
Zzo6RnVsbHlFbmFibGVkKSA6IHN0YXRpY19jYXN0PHVpbnQzMl90PihXZWJDb3JlOjpGcmFtZUZs
YXR0ZW5pbmc6OkRpc2FibGVkKSk7CiAgICAgZ19vYmplY3Rfbm90aWZ5KEdfT0JKRUNUKHNldHRp
bmdzKSwgImVuYWJsZS1mcmFtZS1mbGF0dGVuaW5nIik7CiB9CiAKSW5kZXg6IFNvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVu
ZGxlLmNwcAkocmV2aXNpb24gMjIzMzY2KQorKysgU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0lu
amVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzAwLDcg
KzMwMCw3IEBAIHZvaWQgSW5qZWN0ZWRCdW5kbGU6OnNldEZyYW1lRmxhdHRlbmluZ0UKIHsKICAg
ICBjb25zdCBIYXNoU2V0PFBhZ2UqPiYgcGFnZXMgPSBQYWdlR3JvdXA6OnBhZ2VHcm91cChwYWdl
R3JvdXAtPmlkZW50aWZpZXIoKSktPnBhZ2VzKCk7CiAgICAgZm9yIChIYXNoU2V0PFBhZ2UqPjo6
aXRlcmF0b3IgaXRlciA9IHBhZ2VzLmJlZ2luKCk7IGl0ZXIgIT0gcGFnZXMuZW5kKCk7ICsraXRl
cikKLSAgICAgICAgKCppdGVyKS0+c2V0dGluZ3MoKS5zZXRGcmFtZUZsYXR0ZW5pbmcoZW5hYmxl
ZCA/IEZyYW1lRmxhdHRlbmluZ0Z1bGx5RW5hYmxlZCA6IEZyYW1lRmxhdHRlbmluZ0Rpc2FibGVk
KTsKKyAgICAgICAgKCppdGVyKS0+c2V0dGluZ3MoKS5zZXRGcmFtZUZsYXR0ZW5pbmcoZW5hYmxl
ZCA/IEZyYW1lRmxhdHRlbmluZzo6RnVsbHlFbmFibGVkIDogRnJhbWVGbGF0dGVuaW5nOjpEaXNh
YmxlZCk7CiB9CiAKIHZvaWQgSW5qZWN0ZWRCdW5kbGU6OnNldEFzeW5jRnJhbWVTY3JvbGxpbmdF
bmFibGVkKFdlYlBhZ2VHcm91cFByb3h5KiBwYWdlR3JvdXAsIGJvb2wgZW5hYmxlZCkKSW5kZXg6
IFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9XZWJDaHJvbWVDbGllbnQuY3BwCShyZXZpc2lvbiAyMjMzNjYpCisrKyBTb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcAkod29ya2luZyBj
b3B5KQpAQCAtNTY2LDcgKzU2Niw5IEBAIFBsYXRmb3JtUGFnZUNsaWVudCBXZWJDaHJvbWVDbGll
bnQ6OnBsYXQKIAogdm9pZCBXZWJDaHJvbWVDbGllbnQ6OmNvbnRlbnRzU2l6ZUNoYW5nZWQoRnJh
bWUmIGZyYW1lLCBjb25zdCBJbnRTaXplJiBzaXplKSBjb25zdAogewotICAgIGlmIChtX3BhZ2Uu
Y29yZVBhZ2UoKS0+c2V0dGluZ3MoKS5lZmZlY3RpdmVGcmFtZUZsYXR0ZW5pbmcoKSA9PSBGcmFt
ZUZsYXR0ZW5pbmdEaXNhYmxlZCkgeworICAgIEZyYW1lVmlldyogZnJhbWVWaWV3ID0gZnJhbWUu
dmlldygpOworCisgICAgaWYgKGZyYW1lVmlldyAmJiBmcmFtZVZpZXctPmVmZmVjdGl2ZUZyYW1l
RmxhdHRlbmluZygpID09IEZyYW1lRmxhdHRlbmluZzo6RGlzYWJsZWQpIHsKICAgICAgICAgV2Vi
RnJhbWUqIGxhcmdlc3RGcmFtZSA9IGZpbmRMYXJnZXN0RnJhbWVJbkZyYW1lU2V0KG1fcGFnZSk7
CiAgICAgICAgIGlmIChsYXJnZXN0RnJhbWUgIT0gbV9jYWNoZWRGcmFtZVNldExhcmdlc3RGcmFt
ZS5nZXQoKSkgewogICAgICAgICAgICAgbV9jYWNoZWRGcmFtZVNldExhcmdlc3RGcmFtZSA9IGxh
cmdlc3RGcmFtZTsKQEAgLTU4MSw3ICs1ODMsNiBAQCB2b2lkIFdlYkNocm9tZUNsaWVudDo6Y29u
dGVudHNTaXplQ2hhbmdlCiAKICAgICBtX3BhZ2UuZHJhd2luZ0FyZWEoKS0+bWFpbkZyYW1lQ29u
dGVudFNpemVDaGFuZ2VkKHNpemUpOwogCi0gICAgRnJhbWVWaWV3KiBmcmFtZVZpZXcgPSBmcmFt
ZS52aWV3KCk7CiAgICAgaWYgKGZyYW1lVmlldyAmJiAhZnJhbWVWaWV3LT5kZWxlZ2F0ZXNTY3Jv
bGxpbmcoKSkgIHsKICAgICAgICAgYm9vbCBoYXNIb3Jpem9udGFsU2Nyb2xsYmFyID0gZnJhbWVW
aWV3LT5ob3Jpem9udGFsU2Nyb2xsYmFyKCk7CiAgICAgICAgIGJvb2wgaGFzVmVydGljYWxTY3Jv
bGxiYXIgPSBmcmFtZVZpZXctPnZlcnRpY2FsU2Nyb2xsYmFyKCk7CkluZGV4OiBTb3VyY2UvV2Vi
S2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VzLm1tCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXMubW0JKHJldmlzaW9u
IDIyMzM2NikKKysrIFNvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5j
ZXMubW0JKHdvcmtpbmcgY29weSkKQEAgLTUxNyw5ICs1MTcsOSBAQCArICh2b2lkKWluaXRpYWxp
emUKICAgICAgICAgW05TTnVtYmVyIG51bWJlcldpdGhCb29sOllFU10sICBXZWJLaXRMYXJnZUlt
YWdlQXN5bmNEZWNvZGluZ0VuYWJsZWRQcmVmZXJlbmNlS2V5LAogICAgICAgICBbTlNOdW1iZXIg
bnVtYmVyV2l0aEJvb2w6WUVTXSwgIFdlYktpdEFuaW1hdGVkSW1hZ2VBc3luY0RlY29kaW5nRW5h
YmxlZFByZWZlcmVuY2VLZXksCiAjaWYgUExBVEZPUk0oSU9TKQotICAgICAgICBbTlNOdW1iZXIg
bnVtYmVyV2l0aFVuc2lnbmVkSW50OkZyYW1lRmxhdHRlbmluZ0Z1bGx5RW5hYmxlZF0sIFdlYktp
dEZyYW1lRmxhdHRlbmluZ1ByZWZlcmVuY2VLZXksCisgICAgICAgIFtOU051bWJlciBudW1iZXJX
aXRoVW5zaWduZWRJbnQ6c3RhdGljX2Nhc3Q8dWludDMyX3Q+KEZyYW1lRmxhdHRlbmluZzo6RnVs
bHlFbmFibGVkKV0sIFdlYktpdEZyYW1lRmxhdHRlbmluZ1ByZWZlcmVuY2VLZXksCiAjZWxzZQot
ICAgICAgICBbTlNOdW1iZXIgbnVtYmVyV2l0aFVuc2lnbmVkSW50OkZyYW1lRmxhdHRlbmluZ0Rp
c2FibGVkXSwgV2ViS2l0RnJhbWVGbGF0dGVuaW5nUHJlZmVyZW5jZUtleSwKKyAgICAgICAgW05T
TnVtYmVyIG51bWJlcldpdGhVbnNpZ25lZEludDpzdGF0aWNfY2FzdDx1aW50MzJfdD4oRnJhbWVG
bGF0dGVuaW5nOjpEaXNhYmxlZCldLCBXZWJLaXRGcmFtZUZsYXR0ZW5pbmdQcmVmZXJlbmNlS2V5
LAogI2VuZGlmCiAgICAgICAgIFtOU051bWJlciBudW1iZXJXaXRoQm9vbDpOT10sIFdlYktpdEFz
eW5jRnJhbWVTY3JvbGxpbmdFbmFibGVkUHJlZmVyZW5jZUtleSwKICAgICAgICAgW05TTnVtYmVy
IG51bWJlcldpdGhCb29sOk5PXSwgICBXZWJLaXRTcGF0aWFsTmF2aWdhdGlvbkVuYWJsZWRQcmVm
ZXJlbmNlS2V5LApJbmRleDogU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViVmlldy5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViVmlldy5jcHAJKHJldmlzaW9u
IDIyMzM2NikKKysrIFNvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYlZpZXcuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC01NDIxLDcgKzU0MjEsNyBAQCBIUkVTVUxUIFdlYlZpZXc6Om5vdGlmeVByZWZl
cmVuY2VzQ2hhbmdlCiAgICAgaHIgPSBwcmVmc1ByaXZhdGUtPmlzRnJhbWVGbGF0dGVuaW5nRW5h
YmxlZCgmZW5hYmxlZCk7CiAgICAgaWYgKEZBSUxFRChocikpCiAgICAgICAgIHJldHVybiBocjsK
LSAgICBzZXR0aW5ncy5zZXRGcmFtZUZsYXR0ZW5pbmcoZW5hYmxlZCA/IEZyYW1lRmxhdHRlbmlu
Z0Z1bGx5RW5hYmxlZCA6IEZyYW1lRmxhdHRlbmluZ0Rpc2FibGVkKTsKKyAgICBzZXR0aW5ncy5z
ZXRGcmFtZUZsYXR0ZW5pbmcoZW5hYmxlZCA/IEZyYW1lRmxhdHRlbmluZzo6RnVsbHlFbmFibGVk
IDogRnJhbWVGbGF0dGVuaW5nOjpEaXNhYmxlZCk7CiAKICAgICBociA9IHByZWZzUHJpdmF0ZS0+
YWNjZWxlcmF0ZWRDb21wb3NpdGluZ0VuYWJsZWQoJmVuYWJsZWQpOwogICAgIGlmIChGQUlMRUQo
aHIpKQo=
</data>
<flag name="review"
          id="343563"
          type_id="1"
          status="+"
          setter="simon.fraser"
    />
    <flag name="commit-queue"
          id="343585"
          type_id="3"
          status="-"
          setter="commit-queue"
    />
          </attachment>
      

    </bug>

</bugzilla>