<?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>62245</bug_id>
          
          <creation_ts>2011-06-07 15:44:29 -0700</creation_ts>
          <short_desc>Make the complex text input state a tri-state enum instead of a boolean</short_desc>
          <delta_ts>2011-08-19 15:50:52 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit2</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Anders Carlsson">andersca</reporter>
          <assigned_to name="Anders Carlsson">andersca</assigned_to>
          <cc>andersca</cc>
    
    <cc>darin</cc>
    
    <cc>sam</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>416865</commentid>
    <comment_count>0</comment_count>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2011-06-07 15:44:29 -0700</bug_when>
    <thetext>Make the complex text input state a tri-state enum instead of a boolean</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>416869</commentid>
    <comment_count>1</comment_count>
      <attachid>96318</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2011-06-07 15:46:45 -0700</bug_when>
    <thetext>Created attachment 96318
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>423138</commentid>
    <comment_count>2</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2011-06-18 11:31:49 -0700</bug_when>
    <thetext>This patch was never landed. Is it still needed?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>423155</commentid>
    <comment_count>3</comment_count>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2011-06-18 12:08:51 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; This patch was never landed. Is it still needed?

Yes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>423157</commentid>
    <comment_count>4</comment_count>
      <attachid>96318</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2011-06-18 12:09:35 -0700</bug_when>
    <thetext>Comment on attachment 96318
Patch

Lets try the commit queue, then.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>423197</commentid>
    <comment_count>5</comment_count>
      <attachid>96318</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-06-18 12:54:00 -0700</bug_when>
    <thetext>Comment on attachment 96318
Patch

Rejecting attachment 96318 from commit-queue.

Failed to run &quot;[&apos;./Tools/Scripts/webkit-patch&apos;, &apos;--status-host=queues.webkit.org&apos;, &apos;--bot-id=ec2-cq-01&apos;, &apos;--port...&quot; exit_code: 2

Last 500 characters of output:
gins/PluginView.h
patching file Source/WebKit2/WebProcess/Plugins/Netscape/NetscapePlugin.cpp
Hunk #1 succeeded at 75 (offset 1 line).
patching file Source/WebKit2/WebProcess/Plugins/Netscape/NetscapePlugin.h
patching file Source/WebKit2/WebProcess/Plugins/Netscape/mac/NetscapePluginMac.mm
patching file Source/WebKit2/WebProcess/Plugins/Netscape/mac/PluginProxyMac.mm

Failed to run &quot;[u&apos;/mnt/git/webkit-commit-queue/Tools/Scripts/svn-apply&apos;, u&apos;--reviewer&apos;, u&apos;Sam Weinig&apos;, u&apos;--force&apos;]&quot; exit_code: 1

Full output: http://queues.webkit.org/results/8881935</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>454151</commentid>
    <comment_count>6</comment_count>
      <attachid>104583</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2011-08-19 15:44:41 -0700</bug_when>
    <thetext>Created attachment 104583
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>454155</commentid>
    <comment_count>7</comment_count>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2011-08-19 15:50:52 -0700</bug_when>
    <thetext>Committed r93447: &lt;http://trac.webkit.org/changeset/93447&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>96318</attachid>
            <date>2011-06-07 15:46:45 -0700</date>
            <delta_ts>2011-08-19 15:44:38 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-62245-20110607154645.patch</filename>
            <type>text/plain</type>
            <size>27643</size>
            <attacher name="Anders Carlsson">andersca</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cJKHJldmlzaW9uIDg4Mjc2KQorKysgU291cmNlL1dlYktpdDIvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsNDkgQEAKKzIwMTEtMDYtMDcgIEFuZGVycyBD
YXJsc3NvbiAgPGFuZGVyc2NhQGFwcGxlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBNYWtlIHRoZSBjb21wbGV4IHRleHQgaW5wdXQgc3RhdGUg
YSB0cmktc3RhdGUgZW51bSBpbnN0ZWFkIG9mIGEgYm9vbGVhbgorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjIyNDUKKworICAgICAgICBUaGlzIGlzIHRv
IHByZXBhcmUgdGhlIGluZnJhc3RydWN0dXJlIGZvciBzdXBwb3J0aW5nIHRoZSB1cGRhdGVkIENv
Y29hIHRleHQgaW5wdXQgbW9kZWwgZm9yIHBsdWctaW5zLgorCisgICAgICAgICogUGx1Z2luUHJv
Y2Vzcy9QbHVnaW5Db250cm9sbGVyUHJveHkuY3BwOgorICAgICAgICAqIFBsdWdpblByb2Nlc3Mv
UGx1Z2luQ29udHJvbGxlclByb3h5Lmg6CisgICAgICAgICogUGx1Z2luUHJvY2Vzcy9tYWMvUGx1
Z2luQ29udHJvbGxlclByb3h5TWFjLm1tOgorICAgICAgICAoV2ViS2l0OjpQbHVnaW5Db250cm9s
bGVyUHJveHk6OnNldENvbXBsZXhUZXh0SW5wdXRTdGF0ZSk6CisgICAgICAgIChXZWJLaXQ6OlBs
dWdpbkNvbnRyb2xsZXJQcm94eTo6Y29tcG9zaXRpbmdSZW5kZXJTZXJ2ZXJQb3J0KToKKyAgICAg
ICAgKiBTaGFyZWQvUGx1Z2lucy9QbHVnaW5Db21wbGV4VGV4dElucHV0U3RhdGUuaDogQWRkZWQu
CisgICAgICAgIChXZWJLaXQ6OmlzVmFsaWRQbHVnaW5Db21wbGV4VGV4dElucHV0U3RhdGUpOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvbWFjL1BhZ2VDbGllbnRJbXBsLmg6CisgICAgICAgICog
VUlQcm9jZXNzL0FQSS9tYWMvUGFnZUNsaWVudEltcGwubW06CisgICAgICAgIChXZWJLaXQ6OlBh
Z2VDbGllbnRJbXBsOjpzZXRQbHVnaW5Db21wbGV4VGV4dElucHV0U3RhdGUpOgorICAgICAgICAq
IFVJUHJvY2Vzcy9BUEkvbWFjL1dLVmlldy5tbToKKyAgICAgICAgKC1bV0tWaWV3IF9zZXRQbHVn
aW5Db21wbGV4VGV4dElucHV0U3RhdGU6V2ViS2l0OjpwbHVnaW5Db21wbGV4VGV4dElucHV0SWRl
bnRpZmllcjpdKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL21hYy9XS1ZpZXdJbnRlcm5hbC5o
OgorICAgICAgICAqIFVJUHJvY2Vzcy9QYWdlQ2xpZW50Lmg6CisgICAgICAgICogVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2Fn
ZXMuaW46CisgICAgICAgICogVUlQcm9jZXNzL21hYy9XZWJQYWdlUHJveHlNYWMubW06CisgICAg
ICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6c2V0UGx1Z2luQ29tcGxleFRleHRJbnB1dFN0YXRl
KToKKyAgICAgICAgKiBXZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAg
ICogV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL05ldHNjYXBlUGx1Z2luLmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6TmV0c2NhcGVQbHVnaW46Ok5ldHNjYXBlUGx1Z2luKToKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvTmV0c2NhcGVQbHVnaW4uaDoKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvbWFjL05ldHNjYXBlUGx1Z2luTWFjLm1tOgorICAg
ICAgICAoV2ViS2l0OjpOZXRzY2FwZVBsdWdpbjo6cGxhdGZvcm1TZXRGb2N1cyk6CisgICAgICAg
IChXZWJLaXQ6Ok5ldHNjYXBlUGx1Z2luOjp3aW5kb3dGb2N1c0NoYW5nZWQpOgorICAgICAgICAo
V2ViS2l0OjpOZXRzY2FwZVBsdWdpbjo6c2V0Q29tcGxleFRleHRJbnB1dEVuYWJsZWQpOgorICAg
ICAgICAqIFdlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9tYWMvUGx1Z2luUHJveHlNYWMubW06
CisgICAgICAgIChXZWJLaXQ6OlBsdWdpblByb3h5OjpzZXRDb21wbGV4VGV4dElucHV0U3RhdGUp
OgorICAgICAgICAqIFdlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Db250cm9sbGVyLmg6CisgICAg
ICAgICogV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb3h5LmNwcDoKKyAgICAgICAgKiBXZWJQ
cm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJveHkuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1BsdWdp
bnMvUGx1Z2luUHJveHkubWVzc2FnZXMuaW46CisgICAgICAgICogV2ViUHJvY2Vzcy9QbHVnaW5z
L1BsdWdpblZpZXcuY3BwOgorICAgICAgICAoV2ViS2l0OjpQbHVnaW5WaWV3OjpzZXRDb21wbGV4
VGV4dElucHV0U3RhdGUpOgorICAgICAgICAoV2ViS2l0OjpQbHVnaW5WaWV3Ojpjb21wb3NpdGlu
Z1JlbmRlclNlcnZlclBvcnQpOgorICAgICAgICAqIFdlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5W
aWV3Lmg6CisKIDIwMTEtMDYtMDcgIFphbGFuIEJ1anRhcyAgPHpidWp0YXNAZ21haWwuY29tPgog
CiAgICAgICAgIFJldmlld2VkIGJ5IEFuZHJlYXMgS2xpbmcuCkluZGV4OiBTb3VyY2UvV2ViS2l0
Mi9QbHVnaW5Qcm9jZXNzL1BsdWdpbkNvbnRyb2xsZXJQcm94eS5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9QbHVnaW5Db250cm9sbGVyUHJveHkuY3BwCShy
ZXZpc2lvbiA4ODI0MSkKKysrIFNvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvUGx1Z2luQ29u
dHJvbGxlclByb3h5LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzYxLDIzICszNjEsNiBAQCB2b2lk
IFBsdWdpbkNvbnRyb2xsZXJQcm94eTo6d2lsbFNlbmRFdmVuCiAgICAgQVNTRVJUX05PVF9SRUFD
SEVEKCk7CiB9CiAKLSNpZiBQTEFURk9STShNQUMpCi12b2lkIFBsdWdpbkNvbnRyb2xsZXJQcm94
eTo6c2V0Q29tcGxleFRleHRJbnB1dEVuYWJsZWQoYm9vbCBjb21wbGV4VGV4dElucHV0RW5hYmxl
ZCkKLXsKLSAgICBpZiAobV9pc0NvbXBsZXhUZXh0SW5wdXRFbmFibGVkID09IGNvbXBsZXhUZXh0
SW5wdXRFbmFibGVkKQotICAgICAgICByZXR1cm47Ci0KLSAgICBtX2lzQ29tcGxleFRleHRJbnB1
dEVuYWJsZWQgPSBjb21wbGV4VGV4dElucHV0RW5hYmxlZDsKLQotICAgIG1fY29ubmVjdGlvbi0+
Y29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpQbHVnaW5Qcm94eTo6U2V0Q29tcGxleFRleHRJ
bnB1dEVuYWJsZWQoY29tcGxleFRleHRJbnB1dEVuYWJsZWQpLCBtX3BsdWdpbkluc3RhbmNlSUQp
OwotfQotCi1tYWNoX3BvcnRfdCBQbHVnaW5Db250cm9sbGVyUHJveHk6OmNvbXBvc2l0aW5nUmVu
ZGVyU2VydmVyUG9ydCgpCi17Ci0gICAgcmV0dXJuIFBsdWdpblByb2Nlc3M6OnNoYXJlZCgpLmNv
bXBvc2l0aW5nUmVuZGVyU2VydmVyUG9ydCgpOwotfQotI2VuZGlmCi0KIFN0cmluZyBQbHVnaW5D
b250cm9sbGVyUHJveHk6OnByb3hpZXNGb3JVUkwoY29uc3QgU3RyaW5nJiB1cmxTdHJpbmcpCiB7
CiAgICAgU3RyaW5nIHByb3h5U3RyaW5nOwpJbmRleDogU291cmNlL1dlYktpdDIvUGx1Z2luUHJv
Y2Vzcy9QbHVnaW5Db250cm9sbGVyUHJveHkuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0
Mi9QbHVnaW5Qcm9jZXNzL1BsdWdpbkNvbnRyb2xsZXJQcm94eS5oCShyZXZpc2lvbiA4ODI0MSkK
KysrIFNvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvUGx1Z2luQ29udHJvbGxlclByb3h5LmgJ
KHdvcmtpbmcgY29weSkKQEAgLTk2LDcgKzk2LDcgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZv
aWQgd2lsbFNlbmRFdmVudFRvUGx1Z2luKCk7CiAKICNpZiBQTEFURk9STShNQUMpCi0gICAgdmly
dHVhbCB2b2lkIHNldENvbXBsZXhUZXh0SW5wdXRFbmFibGVkKGJvb2wpOworICAgIHZpcnR1YWwg
dm9pZCBzZXRDb21wbGV4VGV4dElucHV0U3RhdGUoUGx1Z2luQ29tcGxleFRleHRJbnB1dFN0YXRl
KTsKICAgICB2aXJ0dWFsIG1hY2hfcG9ydF90IGNvbXBvc2l0aW5nUmVuZGVyU2VydmVyUG9ydCgp
OwogI2VuZGlmCiAKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvbWFjL1BsdWdp
bkNvbnRyb2xsZXJQcm94eU1hYy5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9QbHVn
aW5Qcm9jZXNzL21hYy9QbHVnaW5Db250cm9sbGVyUHJveHlNYWMubW0JKHJldmlzaW9uIDg4MjQx
KQorKysgU291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9tYWMvUGx1Z2luQ29udHJvbGxlclBy
b3h5TWFjLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0yOCwxNCArMjgsMjYgQEAKIAogI2lmIEVOQUJM
RShQTFVHSU5fUFJPQ0VTUykKIAotI2ltcG9ydCA8UXVhcnR6Q29yZS9RdWFydHpDb3JlLmg+CiAj
aW1wb3J0ICJQbHVnaW5Qcm9jZXNzLmgiCisjaW1wb3J0ICJQbHVnaW5Qcm94eU1lc3NhZ2VzLmgi
CiAjaW1wb3J0ICJXZWJLaXRTeXN0ZW1JbnRlcmZhY2UuaCIKKyNpbXBvcnQgIldlYlByb2Nlc3ND
b25uZWN0aW9uLmgiCisjaW1wb3J0IDxRdWFydHpDb3JlL1F1YXJ0ekNvcmUuaD4KIAogdXNpbmcg
bmFtZXNwYWNlIFdlYkNvcmU7CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCit2b2lkIFBsdWdpbkNv
bnRyb2xsZXJQcm94eTo6c2V0Q29tcGxleFRleHRJbnB1dFN0YXRlKFBsdWdpbkNvbXBsZXhUZXh0
SW5wdXRTdGF0ZSBwbHVnaW5Db21wbGV4VGV4dElucHV0U3RhdGUpCit7CisgICAgbV9jb25uZWN0
aW9uLT5jb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6OlBsdWdpblByb3h5OjpTZXRDb21wbGV4
VGV4dElucHV0U3RhdGUocGx1Z2luQ29tcGxleFRleHRJbnB1dFN0YXRlKSwgbV9wbHVnaW5JbnN0
YW5jZUlEKTsKK30KKworbWFjaF9wb3J0X3QgUGx1Z2luQ29udHJvbGxlclByb3h5Ojpjb21wb3Np
dGluZ1JlbmRlclNlcnZlclBvcnQoKQoreworICAgIHJldHVybiBQbHVnaW5Qcm9jZXNzOjpzaGFy
ZWQoKS5jb21wb3NpdGluZ1JlbmRlclNlcnZlclBvcnQoKTsKK30KKwogdm9pZCBQbHVnaW5Db250
cm9sbGVyUHJveHk6OnBsYXRmb3JtSW5pdGlhbGl6ZSgpCiB7CiAgICAgQ0FMYXllciAqIHBsYXRm
b3JtTGF5ZXIgPSBtX3BsdWdpbi0+cGx1Z2luTGF5ZXIoKTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQy
L1NoYXJlZC9QbHVnaW5zL1BsdWdpbkNvbXBsZXhUZXh0SW5wdXRTdGF0ZS5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9QbHVnaW5zL1BsdWdpbkNvbXBsZXhUZXh0SW5wdXRT
dGF0ZS5oCShyZXZpc2lvbiAwKQorKysgU291cmNlL1dlYktpdDIvU2hhcmVkL1BsdWdpbnMvUGx1
Z2luQ29tcGxleFRleHRJbnB1dFN0YXRlLmgJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNTggQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisjaWZuZGVmIFBsdWdpbkNvbXBsZXhUZXh0SW5wdXRTdGF0ZV9oCisjZGVm
aW5lIFBsdWdpbkNvbXBsZXhUZXh0SW5wdXRTdGF0ZV9oCisKK25hbWVzcGFjZSBXZWJLaXQgewor
CitlbnVtIFBsdWdpbkNvbXBsZXhUZXh0SW5wdXRTdGF0ZSB7CisgICAgLy8gQ29tcGxleCB0ZXh0
IGlucHV0IGlzIGRpc2FibGVkLgorICAgIFBsdWdpbkNvbXBsZXhUZXh0SW5wdXREaXNhYmxlZCwK
KworICAgIC8vIENvbXBsZXggdGV4dCBpbnB1dCBpcyBlbmFibGVkIHVzaW5nIHRoZSB1cGRhdGVk
IENvY29hIGV2ZW50IG1vZGVsIHRleHQKKyAgICAvLyBpbnB1dCBoYW5kbGluZyBzcGVjaWZpY2F0
aW9uIGRlc2NyaWJlZCBhdCBodHRwczovL3dpa2kubW96aWxsYS5vcmcvTlBBUEk6Q29jb2FFdmVu
dE1vZGVsI1RleHRfSW5wdXQKKyAgICBQbHVnaW5Db21wbGV4VGV4dElucHV0RW5hYmxlZCwKKwor
ICAgIC8vIENvbXBsZXggdGV4dCBpbnB1dCBpcyBlbmFibGVkIHVzaW5nIHRoZSBsZWdhY3kgQ29j
b2EvQ2FyYm9uIGV2ZW50IG1vZGVsIHRleHQKKyAgICAvLyBpbnB1dCBoYW5kbGluZyB0aGF0IG1h
dGNoZXMgV2ViS2l0MS4KKyAgICBQbHVnaW5Db21wbGV4VGV4dElucHV0RW5hYmxlZExlZ2FjeQor
fTsKKworc3RhdGljIGlubGluZSBib29sIGlzVmFsaWRQbHVnaW5Db21wbGV4VGV4dElucHV0U3Rh
dGUodWludDY0X3QgdmFsdWUpCit7CisgICAgc3dpdGNoICh2YWx1ZSkgeworICAgIGNhc2UgUGx1
Z2luQ29tcGxleFRleHRJbnB1dERpc2FibGVkOgorICAgIGNhc2UgUGx1Z2luQ29tcGxleFRleHRJ
bnB1dEVuYWJsZWQ6CisgICAgY2FzZSBQbHVnaW5Db21wbGV4VGV4dElucHV0RW5hYmxlZExlZ2Fj
eToKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorCisgICAgcmV0dXJuIGZhbHNlOworfQor
Cit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIFBsdWdpbkNvbXBsZXhUZXh0SW5w
dXRTdGF0ZV9oCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUGFnZUNsaWVudC5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9QYWdlQ2xpZW50LmgJKHJldmlz
aW9uIDg4MjQxKQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1BhZ2VDbGllbnQuaAkod29y
a2luZyBjb3B5KQpAQCAtMjYsNiArMjYsNyBAQAogI2lmbmRlZiBQYWdlQ2xpZW50X2gKICNkZWZp
bmUgUGFnZUNsaWVudF9oCiAKKyNpbmNsdWRlICJQbHVnaW5Db21wbGV4VGV4dElucHV0U3RhdGUu
aCIKICNpbmNsdWRlICJTaGFyZWFibGVCaXRtYXAuaCIKICNpbmNsdWRlICJXZWJQYWdlUHJveHku
aCIKICNpbmNsdWRlICJXZWJQb3B1cE1lbnVQcm94eS5oIgpAQCAtMTUxLDcgKzE1Miw3IEBAIHB1
YmxpYzoKICNlbmRpZgogCiAjaWYgUExBVEZPUk0oTUFDKQotICAgIHZpcnR1YWwgdm9pZCBzZXRD
b21wbGV4VGV4dElucHV0RW5hYmxlZCh1aW50NjRfdCBwbHVnaW5Db21wbGV4VGV4dElucHV0SWRl
bnRpZmllciwgYm9vbCBjb21wbGV4VGV4dElucHV0RW5hYmxlZCkgPSAwOworICAgIHZpcnR1YWwg
dm9pZCBzZXRQbHVnaW5Db21wbGV4VGV4dElucHV0U3RhdGUodWludDY0X3QgcGx1Z2luQ29tcGxl
eFRleHRJbnB1dElkZW50aWZpZXIsIFBsdWdpbkNvbXBsZXhUZXh0SW5wdXRTdGF0ZSkgPSAwOwog
ICAgIHZpcnR1YWwgQ0dDb250ZXh0UmVmIGNvbnRhaW5pbmdXaW5kb3dHcmFwaGljc0NvbnRleHQo
KSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGRpZFBlcmZvcm1EaWN0aW9uYXJ5TG9va3VwKGNvbnN0
IFN0cmluZyYsIGRvdWJsZSBzY2FsZUZhY3RvciwgY29uc3QgRGljdGlvbmFyeVBvcHVwSW5mbyYp
ID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgZGlzbWlzc0RpY3Rpb25hcnlMb29rdXBQYW5lbCgpID0g
MDsKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgJKHJldmlzaW9u
IDg4MjQxKQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC03MjcsNyArNzI3LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIGRpZEZpbmlz
aExvYWRpbmdEYXRhRm9yQ3VzdG9tUmVwcmVzZW50YXRpb24oY29uc3QgU3RyaW5nJiBzdWdnZXN0
ZWRGaWxlbmFtZSwgY29uc3QgQ29yZUlQQzo6RGF0YVJlZmVyZW5jZSYpOwogCiAjaWYgUExBVEZP
Uk0oTUFDKQotICAgIHZvaWQgc2V0Q29tcGxleFRleHRJbnB1dEVuYWJsZWQodWludDY0X3QgcGx1
Z2luQ29tcGxleFRleHRJbnB1dElkZW50aWZpZXIsIGJvb2wgY29tcGxleFRleHRJbnB1dEVuYWJs
ZWQpOworICAgIHZvaWQgc2V0UGx1Z2luQ29tcGxleFRleHRJbnB1dFN0YXRlKHVpbnQ2NF90IHBs
dWdpbkNvbXBsZXhUZXh0SW5wdXRJZGVudGlmaWVyLCB1aW50NjRfdCBjb21wbGV4VGV4dElucHV0
U3RhdGUpOwogI2VuZGlmCiAKICAgICBzdGF0aWMgU3RyaW5nIHN0YW5kYXJkVXNlckFnZW50KGNv
bnN0IFN0cmluZyYgYXBwbGljYXRpb25OYW1lID0gU3RyaW5nKCkpOwpJbmRleDogU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCShyZXZpc2lv
biA4ODI0MSkKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2Fn
ZXMuaW4JKHdvcmtpbmcgY29weSkKQEAgLTIyMSw3ICsyMjEsNyBAQCBtZXNzYWdlcyAtPiBXZWJQ
YWdlUHJveHkgewogICAgIFJlZ2lzdGVyV2ViUHJvY2Vzc0FjY2Vzc2liaWxpdHlUb2tlbihDb3Jl
SVBDOjpEYXRhUmVmZXJlbmNlIGRhdGEpCiAKICAgICAjIFBsdWctaW4gY29tcGxleCB0ZXh0IGlu
cHV0IHN1cHBvcnQgbWVzc2FnZXMKLSAgICBTZXRDb21wbGV4VGV4dElucHV0RW5hYmxlZCh1aW50
NjRfdCBwbHVnaW5Db21wbGV4VGV4dElucHV0SWRlbnRpZmllciwgYm9vbCBjb21wbGV4VGV4dElu
cHV0RW5hYmxlZCkKKyAgICBTZXRQbHVnaW5Db21wbGV4VGV4dElucHV0U3RhdGUodWludDY0X3Qg
cGx1Z2luQ29tcGxleFRleHRJbnB1dElkZW50aWZpZXIsIHVpbnQ2NF90IGNvbXBsZXhUZXh0SW5w
dXRTdGF0ZSkKIAogICAgICMgU3BlZWNoIG1lc3NhZ2VzCiAgICAgR2V0SXNTcGVha2luZygpIC0+
IChib29sIGlzU3BlYWtpbmcpCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL21h
Yy9QYWdlQ2xpZW50SW1wbC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvbWFjL1BhZ2VDbGllbnRJbXBsLmgJKHJldmlzaW9uIDg4MjQxKQorKysgU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9tYWMvUGFnZUNsaWVudEltcGwuaAkod29ya2luZyBjb3B5KQpA
QCAtOTIsNyArOTIsNyBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCBleGl0QWNjZWxlcmF0
ZWRDb21wb3NpdGluZ01vZGUoKTsKIAogICAgIHZpcnR1YWwgdm9pZCBhY2Nlc3NpYmlsaXR5V2Vi
UHJvY2Vzc1Rva2VuUmVjZWl2ZWQoY29uc3QgQ29yZUlQQzo6RGF0YVJlZmVyZW5jZSYpOyAgICAK
LSAgICB2aXJ0dWFsIHZvaWQgc2V0Q29tcGxleFRleHRJbnB1dEVuYWJsZWQodWludDY0X3QgcGx1
Z2luQ29tcGxleFRleHRJbnB1dElkZW50aWZpZXIsIGJvb2wgY29tcGxleFRleHRJbnB1dEVuYWJs
ZWQpOworICAgIHZpcnR1YWwgdm9pZCBzZXRQbHVnaW5Db21wbGV4VGV4dElucHV0U3RhdGUodWlu
dDY0X3QgcGx1Z2luQ29tcGxleFRleHRJbnB1dElkZW50aWZpZXIsIFBsdWdpbkNvbXBsZXhUZXh0
SW5wdXRTdGF0ZSk7CiAKICAgICB2aXJ0dWFsIHZvaWQgbWFrZUZpcnN0UmVzcG9uZGVyKCk7CiAg
ICAgCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL21hYy9QYWdlQ2xpZW50SW1w
bC5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL21hYy9QYWdl
Q2xpZW50SW1wbC5tbQkocmV2aXNpb24gODgyNDEpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL21hYy9QYWdlQ2xpZW50SW1wbC5tbQkod29ya2luZyBjb3B5KQpAQCAtMzMxLDkgKzMz
MSw5IEBAIHZvaWQgUGFnZUNsaWVudEltcGw6OmV4aXRBY2NlbGVyYXRlZENvbXAKIH0KICNlbmRp
ZiAvLyBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAKLXZvaWQgUGFnZUNsaWVudEltcGw6
OnNldENvbXBsZXhUZXh0SW5wdXRFbmFibGVkKHVpbnQ2NF90IHBsdWdpbkNvbXBsZXhUZXh0SW5w
dXRJZGVudGlmaWVyLCBib29sIGNvbXBsZXhUZXh0SW5wdXRFbmFibGVkKQordm9pZCBQYWdlQ2xp
ZW50SW1wbDo6c2V0UGx1Z2luQ29tcGxleFRleHRJbnB1dFN0YXRlKHVpbnQ2NF90IHBsdWdpbkNv
bXBsZXhUZXh0SW5wdXRJZGVudGlmaWVyLCBQbHVnaW5Db21wbGV4VGV4dElucHV0U3RhdGUgcGx1
Z2luQ29tcGxleFRleHRJbnB1dFN0YXRlKQogewotICAgIFttX3drVmlldyBfc2V0Q29tcGxleFRl
eHRJbnB1dEVuYWJsZWQ6Y29tcGxleFRleHRJbnB1dEVuYWJsZWQgcGx1Z2luQ29tcGxleFRleHRJ
bnB1dElkZW50aWZpZXI6cGx1Z2luQ29tcGxleFRleHRJbnB1dElkZW50aWZpZXJdOworICAgIFtt
X3drVmlldyBfc2V0UGx1Z2luQ29tcGxleFRleHRJbnB1dFN0YXRlOnBsdWdpbkNvbXBsZXhUZXh0
SW5wdXRTdGF0ZSBwbHVnaW5Db21wbGV4VGV4dElucHV0SWRlbnRpZmllcjpwbHVnaW5Db21wbGV4
VGV4dElucHV0SWRlbnRpZmllcl07CiB9CiAKIENHQ29udGV4dFJlZiBQYWdlQ2xpZW50SW1wbDo6
Y29udGFpbmluZ1dpbmRvd0dyYXBoaWNzQ29udGV4dCgpCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL21hYy9XS1ZpZXcubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9tYWMvV0tWaWV3Lm1tCShyZXZpc2lvbiA4ODI0MSkKKysrIFNvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvbWFjL1dLVmlldy5tbQkod29ya2luZyBjb3B5KQpAQCAtMjI1
NywxMCArMjI1NywxMiBAQCAtICh2b2lkKV9zZXRBY2Nlc3NpYmlsaXR5V2ViUHJvY2Vzc1Rva2Vu
CiAgICAgW3NlbGYgX3VwZGF0ZVJlbW90ZUFjY2Vzc2liaWxpdHlSZWdpc3RyYXRpb246WUVTXTsK
IH0KIAotLSAodm9pZClfc2V0Q29tcGxleFRleHRJbnB1dEVuYWJsZWQ6KEJPT0wpY29tcGxleFRl
eHRJbnB1dEVuYWJsZWQgcGx1Z2luQ29tcGxleFRleHRJbnB1dElkZW50aWZpZXI6KHVpbnQ2NF90
KXBsdWdpbkNvbXBsZXhUZXh0SW5wdXRJZGVudGlmaWVyCistICh2b2lkKV9zZXRQbHVnaW5Db21w
bGV4VGV4dElucHV0U3RhdGU6KFdlYktpdDo6UGx1Z2luQ29tcGxleFRleHRJbnB1dFN0YXRlKXBs
dWdpbkNvbXBsZXhUZXh0SW5wdXRTdGF0ZSBwbHVnaW5Db21wbGV4VGV4dElucHV0SWRlbnRpZmll
cjoodWludDY0X3QpcGx1Z2luQ29tcGxleFRleHRJbnB1dElkZW50aWZpZXIKIHsKICAgICBCT09M
IGlucHV0U291cmNlQ2hhbmdlZCA9IF9kYXRhLT5fcGx1Z2luQ29tcGxleFRleHRJbnB1dElkZW50
aWZpZXI7CiAKKyAgICBCT09MIGNvbXBsZXhUZXh0SW5wdXRFbmFibGVkID0gKHBsdWdpbkNvbXBs
ZXhUZXh0SW5wdXRTdGF0ZSA9PSBQbHVnaW5Db21wbGV4VGV4dElucHV0RW5hYmxlZExlZ2FjeSk7
CisKICAgICBpZiAoY29tcGxleFRleHRJbnB1dEVuYWJsZWQpIHsKICAgICAgICAgLy8gQ2hlY2sg
aWYgd2UncmUgYWxyZWFkeSBhbGxvd2luZyB0ZXh0IGlucHV0IGZvciB0aGlzIHBsdWctaW4uCiAg
ICAgICAgIGlmIChwbHVnaW5Db21wbGV4VGV4dElucHV0SWRlbnRpZmllciA9PSBfZGF0YS0+X3Bs
dWdpbkNvbXBsZXhUZXh0SW5wdXRJZGVudGlmaWVyKQpJbmRleDogU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9tYWMvV0tWaWV3SW50ZXJuYWwuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL21hYy9XS1ZpZXdJbnRlcm5hbC5oCShyZXZpc2lvbiA4ODI0MSkK
KysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvbWFjL1dLVmlld0ludGVybmFsLmgJKHdv
cmtpbmcgY29weSkKQEAgLTIzLDYgKzIzLDcgQEAKICAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KICAqLwogCisjaW1wb3J0ICJQbHVnaW5Db21wbGV4VGV4dElucHV0U3RhdGUuaCIK
ICNpbXBvcnQgIldLVmlldy5oIgogI2ltcG9ydCAiV2ViRmluZE9wdGlvbnMuaCIKICNpbXBvcnQg
PHd0Zi9Gb3J3YXJkLmg+CkBAIC02NSw3ICs2Niw3IEBAIEBpbnRlcmZhY2UgV0tWaWV3IChJbnRl
cm5hbCkKIC0gKHZvaWQpX2V4aXRBY2NlbGVyYXRlZENvbXBvc2l0aW5nTW9kZTsKIAogLSAodm9p
ZClfc2V0QWNjZXNzaWJpbGl0eVdlYlByb2Nlc3NUb2tlbjooTlNEYXRhICopZGF0YTsKLS0gKHZv
aWQpX3NldENvbXBsZXhUZXh0SW5wdXRFbmFibGVkOihCT09MKWNvbXBsZXhUZXh0SW5wdXRFbmFi
bGVkIHBsdWdpbkNvbXBsZXhUZXh0SW5wdXRJZGVudGlmaWVyOih1aW50NjRfdClwbHVnaW5Db21w
bGV4VGV4dElucHV0SWRlbnRpZmllcjsKKy0gKHZvaWQpX3NldFBsdWdpbkNvbXBsZXhUZXh0SW5w
dXRTdGF0ZTooV2ViS2l0OjpQbHVnaW5Db21wbGV4VGV4dElucHV0U3RhdGUpcGx1Z2luQ29tcGxl
eFRleHRJbnB1dFN0YXRlIHBsdWdpbkNvbXBsZXhUZXh0SW5wdXRJZGVudGlmaWVyOih1aW50NjRf
dClwbHVnaW5Db21wbGV4VGV4dElucHV0SWRlbnRpZmllcjsKIAogLSAodm9pZClfc2V0UGFnZUhh
c0N1c3RvbVJlcHJlc2VudGF0aW9uOihCT09MKXBhZ2VIYXNDdXN0b21SZXByZXNlbnRhdGlvbjsK
IC0gKHZvaWQpX2RpZEZpbmlzaExvYWRpbmdEYXRhRm9yQ3VzdG9tUmVwcmVzZW50YXRpb25XaXRo
U3VnZ2VzdGVkRmlsZW5hbWU6KGNvbnN0IFN0cmluZyYpc3VnZ2VzdGVkRmlsZW5hbWUgZGF0YVJl
ZmVyZW5jZTooY29uc3QgQ29yZUlQQzo6RGF0YVJlZmVyZW5jZSYpZGF0YVJlZmVyZW5jZTsKSW5k
ZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvV2ViUGFnZVByb3h5TWFjLm1tCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvV2ViUGFnZVByb3h5TWFjLm1t
CShyZXZpc2lvbiA4ODI0MSkKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvV2ViUGFn
ZVByb3h5TWFjLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0zMSw2ICszMSw3IEBACiAjaW1wb3J0ICJE
aWN0aW9uYXJ5UG9wdXBJbmZvLmgiCiAjaW1wb3J0ICJFZGl0b3JTdGF0ZS5oIgogI2ltcG9ydCAi
TmF0aXZlV2ViS2V5Ym9hcmRFdmVudC5oIgorI2ltcG9ydCAiUGx1Z2luQ29tcGxleFRleHRJbnB1
dFN0YXRlLmgiCiAjaW1wb3J0ICJQYWdlQ2xpZW50LmgiCiAjaW1wb3J0ICJQYWdlQ2xpZW50SW1w
bC5oIgogI2ltcG9ydCAiVGV4dENoZWNrZXIuaCIKQEAgLTQyLDYgKzQzLDggQEAgQGludGVyZmFj
ZSBOU0FwcGxpY2F0aW9uIChEZXRhaWxzKQogLSAodm9pZClzcGVha1N0cmluZzooTlNTdHJpbmcg
KilzdHJpbmc7CiBAZW5kCiAKKyNkZWZpbmUgTUVTU0FHRV9DSEVDSyhhc3NlcnRpb24pIE1FU1NB
R0VfQ0hFQ0tfQkFTRShhc3NlcnRpb24sIHByb2Nlc3MoKS0+Y29ubmVjdGlvbigpKQorCiB1c2lu
ZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAogbmFtZXNwYWNlIFdlYktpdCB7CkBAIC0zMzksOSArMzQy
LDExIEBAIHZvaWQgV2ViUGFnZVByb3h5OjpyZWdpc3RlclVJUHJvY2Vzc0FjY2UKICAgICBwcm9j
ZXNzKCktPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OlJlZ2lzdGVyVUlQcm9jZXNzQWNjZXNzaWJp
bGl0eVRva2VucyhlbGVtZW50VG9rZW4sIHdpbmRvd1Rva2VuKSwgbV9wYWdlSUQpOwogfQogCi12
b2lkIFdlYlBhZ2VQcm94eTo6c2V0Q29tcGxleFRleHRJbnB1dEVuYWJsZWQodWludDY0X3QgcGx1
Z2luQ29tcGxleFRleHRJbnB1dElkZW50aWZpZXIsIGJvb2wgY29tcGxleFRleHRJbnB1dEVuYWJs
ZWQpCit2b2lkIFdlYlBhZ2VQcm94eTo6c2V0UGx1Z2luQ29tcGxleFRleHRJbnB1dFN0YXRlKHVp
bnQ2NF90IHBsdWdpbkNvbXBsZXhUZXh0SW5wdXRJZGVudGlmaWVyLCB1aW50NjRfdCBwbHVnaW5D
b21wbGV4VGV4dElucHV0U3RhdGUpCiB7Ci0gICAgbV9wYWdlQ2xpZW50LT5zZXRDb21wbGV4VGV4
dElucHV0RW5hYmxlZChwbHVnaW5Db21wbGV4VGV4dElucHV0SWRlbnRpZmllciwgY29tcGxleFRl
eHRJbnB1dEVuYWJsZWQpOworICAgIE1FU1NBR0VfQ0hFQ0soaXNWYWxpZFBsdWdpbkNvbXBsZXhU
ZXh0SW5wdXRTdGF0ZShwbHVnaW5Db21wbGV4VGV4dElucHV0U3RhdGUpKTsKKworICAgIG1fcGFn
ZUNsaWVudC0+c2V0UGx1Z2luQ29tcGxleFRleHRJbnB1dFN0YXRlKHBsdWdpbkNvbXBsZXhUZXh0
SW5wdXRJZGVudGlmaWVyLCBzdGF0aWNfY2FzdDxQbHVnaW5Db21wbGV4VGV4dElucHV0U3RhdGU+
KHBsdWdpbkNvbXBsZXhUZXh0SW5wdXRTdGF0ZSkpOwogfQogCiB2b2lkIFdlYlBhZ2VQcm94eTo6
ZXhlY3V0ZVNhdmVkQ29tbWFuZEJ5U2VsZWN0b3IoY29uc3QgU3RyaW5nJiBzZWxlY3RvciwgYm9v
bCYgaGFuZGxlZCkKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oJKHJldmlzaW9uIDg4MjQxKQorKysgU291cmNlL1dlYktpdDIvV2Vi
S2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC0yMTksNiAr
MjE5LDcgQEAKIAkJMUFFNDlBNDkxMUZGQThDRTAwNDhCNDY0IC8qIEpTTlBNZXRob2QuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFBRTQ5QTQ3MTFGRkE4
Q0UwMDQ4QjQ2NCAvKiBKU05QTWV0aG9kLmggKi87IH07CiAJCTFBRTQ5QTRBMTFGRkE4Q0UwMDQ4
QjQ2NCAvKiBKU05QTWV0aG9kLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDFBRTQ5QTQ4MTFGRkE4Q0UwMDQ4QjQ2NCAvKiBKU05QTWV0aG9kLmNwcCAq
LzsgfTsKIAkJMUFFNUI3RkIxMUU3QUVEMjAwQkE2NzY3IC8qIE5ldHNjYXBlUGx1Z2luTWFjLm1t
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUFFNUI3Rjkx
MUU3QUVEMjAwQkE2NzY3IC8qIE5ldHNjYXBlUGx1Z2luTWFjLm1tICovOyBzZXR0aW5ncyA9IHtD
T01QSUxFUl9GTEFHUyA9ICItV25vLWRlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIjsgfTsgfTsKKwkJ
MUFFOUI2OUIxMzlFRDEwMzAwQkRCODc0IC8qIFBsdWdpbkNvbXBsZXhUZXh0SW5wdXRTdGF0ZS5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUFFOUI2OUEx
MzlFRDEwMzAwQkRCODc0IC8qIFBsdWdpbkNvbXBsZXhUZXh0SW5wdXRTdGF0ZS5oICovOyB9Owog
CQkxQUVGQ0MxMjExRDAxRjk2MDA4MjE5RDMgLyogUGx1Z2luSW5mb1N0b3JlLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQUVGQ0MxMDExRDAxRjk2MDA4
MjE5RDMgLyogUGx1Z2luSW5mb1N0b3JlLmggKi87IH07CiAJCTFBRUZDQzEzMTFEMDFGOTYwMDgy
MTlEMyAvKiBQbHVnaW5JbmZvU3RvcmUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gMUFFRkNDMTExMUQwMUY5NjAwODIxOUQzIC8qIFBsdWdpbkluZm9T
dG9yZS5jcHAgKi87IH07CiAJCTFBRUZDQ0JEMTFEMDJDNUUwMDgyMTlEMyAvKiBQbHVnaW5JbmZv
U3RvcmVNYWMubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAxQUVGQ0NCQzExRDAyQzVFMDA4MjE5RDMgLyogUGx1Z2luSW5mb1N0b3JlTWFjLm1tICovOyB9
OwpAQCAtMTEzOSw2ICsxMTQwLDcgQEAKIAkJMUFFNDlBNDcxMUZGQThDRTAwNDhCNDY0IC8qIEpT
TlBNZXRob2QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNOUE1ldGhvZC5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxQUU0OUE0ODExRkZBOENFMDA0OEI0NjQg
LyogSlNOUE1ldGhvZC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBK
U05QTWV0aG9kLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUFFNUI3RjkxMUU3
QUVEMjAwQkE2NzY3IC8qIE5ldHNjYXBlUGx1Z2luTWFjLm1tICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAub2JqY3BwOyBwYXRoID0gTmV0c2NhcGVQbHVnaW5NYWMubW07IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCTFBRTlCNjlBMTM5RUQxMDMwMEJEQjg3NCAvKiBQbHVnaW5Db21wbGV4
VGV4dElucHV0U3RhdGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUGx1Z2lu
Q29tcGxleFRleHRJbnB1dFN0YXRlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFB
RUZDQzEwMTFEMDFGOTYwMDgyMTlEMyAvKiBQbHVnaW5JbmZvU3RvcmUuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gUGx1Z2luSW5mb1N0b3JlLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTFBRUZDQzExMTFEMDFGOTYwMDgyMTlEMyAvKiBQbHVnaW5JbmZvU3RvcmUu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUGx1Z2luSW5mb1N0b3Jl
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUFFRkNDQkMxMUQwMkM1RTAwODIx
OUQzIC8qIFBsdWdpbkluZm9TdG9yZU1hYy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9i
amNwcDsgcGF0aCA9IFBsdWdpbkluZm9TdG9yZU1hYy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKQEAgLTIyNDgsNiArMjI1MCw3IEBACiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxk
cmVuID0gKAogCQkJCTFBNEE5QzUyMTJCODE2Q0YwMDhGRTk4NCAvKiBOZXRzY2FwZSAqLywKKwkJ
CQkxQUU5QjY5QTEzOUVEMTAzMDBCREI4NzQgLyogUGx1Z2luQ29tcGxleFRleHRJbnB1dFN0YXRl
LmggKi8sCiAJCQkJMUEyRDkwRDExMjgxQzk2NjAwMUVCOTYyIC8qIFBsdWdpblByb2Nlc3NDcmVh
dGlvblBhcmFtZXRlcnMuY3BwICovLAogCQkJCTFBMkQ5MEQwMTI4MUM5NjYwMDFFQjk2MiAvKiBQ
bHVnaW5Qcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmggKi8sCiAJCQkJMUE0QTlGMzExMkI4NDRF
MjAwOEZFOTg0IC8qIFBsdWdpblF1aXJrcy5oICovLApAQCAtMzgyNSw2ICszODI4LDcgQEAKIAkJ
CQk1MTJERjcwMTEzOEMyNTQ2MDBBMjJGQzYgLyogU2VjS2V5Y2hhaW5JdGVtUmVzcG9uc2VEYXRh
LmggaW4gSGVhZGVycyAqLywKIAkJCQk1MTJERjcwQjEzOEMyNkM3MDBBMjJGQzYgLyogS2V5Y2hh
aW5BdHRyaWJ1dGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTkzQzAxREFDMTM5QUM5MTcwMEVENTFE
NyAvKiBDb3JlSVBDQ2xpZW50UnVuTG9vcC5oIGluIEhlYWRlcnMgKi8sCisJCQkJMUFFOUI2OUIx
MzlFRDEwMzAwQkRCODc0IC8qIFBsdWdpbkNvbXBsZXhUZXh0SW5wdXRTdGF0ZS5oIGluIEhlYWRl
cnMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7
CiAJCX07CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luQ29u
dHJvbGxlci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lu
cy9QbHVnaW5Db250cm9sbGVyLmgJKHJldmlzaW9uIDg4MjQxKQorKysgU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpbkNvbnRyb2xsZXIuaAkod29ya2luZyBjb3B5KQpAQCAt
MjYsNiArMjYsNyBAQAogI2lmbmRlZiBQbHVnaW5Db250cm9sbGVyX2gKICNkZWZpbmUgUGx1Z2lu
Q29udHJvbGxlcl9oCiAKKyNpbmNsdWRlICJQbHVnaW5Db21wbGV4VGV4dElucHV0U3RhdGUuaCIK
ICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgogCiBzdHJ1Y3QgTlBPYmplY3Q7CkBAIC0xMDksNyAr
MTEwLDcgQEAgcHVibGljOgogCiAjaWYgUExBVEZPUk0oTUFDKQogICAgIC8vIFRlbGxzIHRoZSBj
b250cm9sbGVyIHRoYXQgY29tcGxleCB0ZXh0IGlucHV0IGJlIGVuYWJsZWQgb3IgZGlzYWJsZWQg
Zm9yIHRoZSBwbHVnLWluLgotICAgIHZpcnR1YWwgdm9pZCBzZXRDb21wbGV4VGV4dElucHV0RW5h
YmxlZChib29sKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHNldENvbXBsZXhUZXh0SW5wdXRTdGF0
ZShQbHVnaW5Db21wbGV4VGV4dElucHV0U3RhdGUpID0gMDsKIAogICAgIC8vIFJldHVybnMgdGhl
IG1hY2ggcG9ydCBvZiB0aGUgY29tcG9zaXRpbmcgcmVuZGVyIHNlcnZlci4KICAgICB2aXJ0dWFs
IG1hY2hfcG9ydF90IGNvbXBvc2l0aW5nUmVuZGVyU2VydmVyUG9ydCgpID0gMDsKSW5kZXg6IFNv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm94eS5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb3h5LmNwcAko
cmV2aXNpb24gODgyNDEpCisrKyBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1
Z2luUHJveHkuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00NzQsMTMgKzQ3NCw2IEBAIHZvaWQgUGx1
Z2luUHJveHk6OnNldFN0YXR1c2JhclRleHQoY29uc3QKICAgICBtX3BsdWdpbkNvbnRyb2xsZXIt
PnNldFN0YXR1c2JhclRleHQoc3RhdHVzYmFyVGV4dCk7CiB9CiAKLSNpZiBQTEFURk9STShNQUMp
Ci12b2lkIFBsdWdpblByb3h5OjpzZXRDb21wbGV4VGV4dElucHV0RW5hYmxlZChib29sIGNvbXBs
ZXhUZXh0SW5wdXRFbmFibGVkKQotewotICAgIG1fcGx1Z2luQ29udHJvbGxlci0+c2V0Q29tcGxl
eFRleHRJbnB1dEVuYWJsZWQoY29tcGxleFRleHRJbnB1dEVuYWJsZWQpOwotfQotI2VuZGlmCi0g
ICAgCiB2b2lkIFBsdWdpblByb3h5Ojp1cGRhdGUoY29uc3QgSW50UmVjdCYgcGFpbnRlZFJlY3Qp
CiB7CiAgICAgaWYgKHBhaW50ZWRSZWN0ID09IG1fZnJhbWVSZWN0KQpJbmRleDogU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb3h5LmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb3h5LmgJKHJldmlzaW9uIDg4
MjQxKQorKysgU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb3h5LmgJ
KHdvcmtpbmcgY29weSkKQEAgLTEyMCw3ICsxMjAsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgY2Fu
Y2VsTWFudWFsU3RyZWFtTG9hZCgpOwogICAgIHZvaWQgc2V0U3RhdHVzYmFyVGV4dChjb25zdCBT
dHJpbmcmIHN0YXR1c2JhclRleHQpOwogI2lmIFBMQVRGT1JNKE1BQykKLSAgICB2b2lkIHNldENv
bXBsZXhUZXh0SW5wdXRFbmFibGVkKGJvb2wpOworICAgIHZvaWQgc2V0Q29tcGxleFRleHRJbnB1
dFN0YXRlKHVpbnQ2NF90KTsKICNlbmRpZgogCiAgICAgU3RyaW5nIG1fcGx1Z2luUGF0aDsKSW5k
ZXg6IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm94eS5tZXNzYWdl
cy5pbgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1
Z2luUHJveHkubWVzc2FnZXMuaW4JKHJldmlzaW9uIDg4MjQxKQorKysgU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb3h5Lm1lc3NhZ2VzLmluCSh3b3JraW5nIGNvcHkp
CkBAIC01OCw3ICs1OCw3IEBAIG1lc3NhZ2VzIC0+IFBsdWdpblByb3h5IHsKIAogI2lmIFBMQVRG
T1JNKE1BQykKICAgICAjIENoYW5nZSB3aGV0aGVyIGNvbXBsZXh0IHRleHQgaW5wdXQgaXMgZW5h
YmxlZCBmb3IgdGhpcyBwbHVnLWluLgotICAgIFNldENvbXBsZXhUZXh0SW5wdXRFbmFibGVkKGJv
b2wgY29tcGxleFRleHRJbnB1dEVuYWJsZWQpCisgICAgU2V0Q29tcGxleFRleHRJbnB1dFN0YXRl
KHVpbnQ2NF90IGNvbXBsZXhUZXh0SW5wdXRTdGF0ZSkKICNlbmRpZgogfQogCkluZGV4OiBTb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luVmlldy5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblZpZXcuY3BwCShyZXZp
c2lvbiA4ODI0MSkKKysrIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5W
aWV3LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTA2MywxNiArMTA2MywxNSBAQCB2b2lkIFBsdWdp
blZpZXc6OnNjaGVkdWxlV2luZG93ZWRQbHVnaW5HCiAjZW5kaWYKIAogI2lmIFBMQVRGT1JNKE1B
QykKLXZvaWQgUGx1Z2luVmlldzo6c2V0Q29tcGxleFRleHRJbnB1dEVuYWJsZWQoYm9vbCBjb21w
bGV4VGV4dElucHV0RW5hYmxlZCkKK3ZvaWQgUGx1Z2luVmlldzo6c2V0Q29tcGxleFRleHRJbnB1
dFN0YXRlKFBsdWdpbkNvbXBsZXhUZXh0SW5wdXRTdGF0ZSBwbHVnaW5Db21wbGV4VGV4dElucHV0
U3RhdGUpCiB7Ci0gICAgbV93ZWJQYWdlLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlNl
dENvbXBsZXhUZXh0SW5wdXRFbmFibGVkKG1fcGx1Z2luLT5wbHVnaW5Db21wbGV4VGV4dElucHV0
SWRlbnRpZmllcigpLCBjb21wbGV4VGV4dElucHV0RW5hYmxlZCkpOworICAgIG1fd2ViUGFnZS0+
c2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpTZXRQbHVnaW5Db21wbGV4VGV4dElucHV0U3Rh
dGUobV9wbHVnaW4tPnBsdWdpbkNvbXBsZXhUZXh0SW5wdXRJZGVudGlmaWVyKCksIHBsdWdpbkNv
bXBsZXhUZXh0SW5wdXRTdGF0ZSkpOwogfQogCiBtYWNoX3BvcnRfdCBQbHVnaW5WaWV3Ojpjb21w
b3NpdGluZ1JlbmRlclNlcnZlclBvcnQoKQogewogICAgIHJldHVybiBXZWJQcm9jZXNzOjpzaGFy
ZWQoKS5jb21wb3NpdGluZ1JlbmRlclNlcnZlclBvcnQoKTsKIH0KLQogI2VuZGlmCiAgICAgCiBT
dHJpbmcgUGx1Z2luVmlldzo6cHJveGllc0ZvclVSTChjb25zdCBTdHJpbmcmIHVybFN0cmluZykK
SW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5WaWV3LmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblZpZXcu
aAkocmV2aXNpb24gODgyNDEpCisrKyBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMv
UGx1Z2luVmlldy5oCSh3b3JraW5nIGNvcHkpCkBAIC0xNDAsNyArMTQwLDcgQEAgcHJpdmF0ZToK
ICAgICB2aXJ0dWFsIHZvaWQgc2NoZWR1bGVXaW5kb3dlZFBsdWdpbkdlb21ldHJ5VXBkYXRlKGNv
bnN0IFdpbmRvd0dlb21ldHJ5Jik7CiAjZW5kaWYKICNpZiBQTEFURk9STShNQUMpCi0gICAgdmly
dHVhbCB2b2lkIHNldENvbXBsZXhUZXh0SW5wdXRFbmFibGVkKGJvb2wpOworICAgIHZpcnR1YWwg
dm9pZCBzZXRDb21wbGV4VGV4dElucHV0U3RhdGUoUGx1Z2luQ29tcGxleFRleHRJbnB1dFN0YXRl
KTsKICAgICB2aXJ0dWFsIG1hY2hfcG9ydF90IGNvbXBvc2l0aW5nUmVuZGVyU2VydmVyUG9ydCgp
OwogI2VuZGlmCiAgICAgdmlydHVhbCBTdHJpbmcgcHJveGllc0ZvclVSTChjb25zdCBTdHJpbmcm
KTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9OZXRz
Y2FwZVBsdWdpbi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Q
bHVnaW5zL05ldHNjYXBlL05ldHNjYXBlUGx1Z2luLmNwcAkocmV2aXNpb24gODgyNDEpCisrKyBT
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvTmV0c2NhcGVQbHVnaW4u
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC03NCw2ICs3NCw3IEBAIE5ldHNjYXBlUGx1Z2luOjpOZXRz
Y2FwZVBsdWdpbihQYXNzUmVmUHQKICAgICAsIG1fY3VycmVudE1vdXNlRXZlbnQoMCkKICAgICAs
IG1fcGx1Z2luSGFzRm9jdXMoZmFsc2UpCiAgICAgLCBtX3dpbmRvd0hhc0ZvY3VzKGZhbHNlKQor
ICAgICwgbV9pc0NvbXBsZXhUZXh0SW5wdXRFbmFibGVkKGZhbHNlKQogI2lmbmRlZiBOUF9OT19D
QVJCT04KICAgICAsIG1fbnVsbEV2ZW50VGltZXIoUnVuTG9vcDo6bWFpbigpLCB0aGlzLCAmTmV0
c2NhcGVQbHVnaW46Om51bGxFdmVudFRpbWVyRmlyZWQpCiAgICAgLCBtX25wQ0dDb250ZXh0KCkK
SW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9OZXRzY2Fw
ZVBsdWdpbi5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lu
cy9OZXRzY2FwZS9OZXRzY2FwZVBsdWdpbi5oCShyZXZpc2lvbiA4ODI0MSkKKysrIFNvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9OZXRzY2FwZVBsdWdpbi5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xODUsNiArMTg1LDggQEAgcHJpdmF0ZToKIAogICAgIHZpcnR1YWwgdWlu
dDY0X3QgcGx1Z2luQ29tcGxleFRleHRJbnB1dElkZW50aWZpZXIoKSBjb25zdDsKICAgICB2aXJ0
dWFsIHZvaWQgc2VuZENvbXBsZXhUZXh0SW5wdXQoY29uc3QgU3RyaW5nJiB0ZXh0SW5wdXQpOwor
CisgICAgdm9pZCBzZXRDb21wbGV4VGV4dElucHV0RW5hYmxlZChib29sKTsKICNlbmRpZgogCiAg
ICAgdmlydHVhbCB2b2lkIHByaXZhdGVCcm93c2luZ1N0YXRlQ2hhbmdlZChib29sKTsKQEAgLTIz
Niw2ICsyMzgsOSBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9wbHVnaW5IYXNGb2N1czsKICAgICBi
b29sIG1fd2luZG93SGFzRm9jdXM7CiAKKyAgICAvLyBXaGV0aGVyIGNvbXBsZXggdGV4dCBpbnB1
dCBpcyBlbmFibGVkLgorICAgIGJvb2wgbV9pc0NvbXBsZXhUZXh0SW5wdXRFbmFibGVkOworCiAg
ICAgV2ViQ29yZTo6SW50UmVjdCBtX3dpbmRvd0ZyYW1lSW5TY3JlZW5Db29yZGluYXRlczsKICAg
ICBXZWJDb3JlOjpJbnRSZWN0IG1fdmlld0ZyYW1lSW5XaW5kb3dDb29yZGluYXRlczsKIApJbmRl
eDogU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL21hYy9OZXRzY2Fw
ZVBsdWdpbk1hYy5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1Bs
dWdpbnMvTmV0c2NhcGUvbWFjL05ldHNjYXBlUGx1Z2luTWFjLm1tCShyZXZpc2lvbiA4ODI0MSkK
KysrIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9tYWMvTmV0c2Nh
cGVQbHVnaW5NYWMubW0JKHdvcmtpbmcgY29weSkKQEAgLTc4Nyw3ICs3ODcsNyBAQCBib29sIE5l
dHNjYXBlUGx1Z2luOjpwbGF0Zm9ybUhhbmRsZUtleWJvCiB2b2lkIE5ldHNjYXBlUGx1Z2luOjpw
bGF0Zm9ybVNldEZvY3VzKGJvb2wgaGFzRm9jdXMpCiB7CiAgICAgbV9wbHVnaW5IYXNGb2N1cyA9
IGhhc0ZvY3VzOwotICAgIG1fcGx1Z2luQ29udHJvbGxlci0+c2V0Q29tcGxleFRleHRJbnB1dEVu
YWJsZWQobV9wbHVnaW5IYXNGb2N1cyAmJiBtX3dpbmRvd0hhc0ZvY3VzKTsKKyAgICBzZXRDb21w
bGV4VGV4dElucHV0RW5hYmxlZChtX3BsdWdpbkhhc0ZvY3VzICYmIG1fd2luZG93SGFzRm9jdXMp
OwogCiAgICAgc3dpdGNoIChtX2V2ZW50TW9kZWwpIHsKICAgICAgICAgY2FzZSBOUEV2ZW50TW9k
ZWxDb2NvYTogewpAQCAtODE1LDcgKzgxNSw3IEBAIHZvaWQgTmV0c2NhcGVQbHVnaW46OnBsYXRm
b3JtU2V0Rm9jdXMoYm8KIHZvaWQgTmV0c2NhcGVQbHVnaW46OndpbmRvd0ZvY3VzQ2hhbmdlZChi
b29sIGhhc0ZvY3VzKQogewogICAgIG1fd2luZG93SGFzRm9jdXMgPSBoYXNGb2N1czsKLSAgICBt
X3BsdWdpbkNvbnRyb2xsZXItPnNldENvbXBsZXhUZXh0SW5wdXRFbmFibGVkKG1fcGx1Z2luSGFz
Rm9jdXMgJiYgbV93aW5kb3dIYXNGb2N1cyk7CisgICAgc2V0Q29tcGxleFRleHRJbnB1dEVuYWJs
ZWQobV9wbHVnaW5IYXNGb2N1cyAmJiBtX3dpbmRvd0hhc0ZvY3VzKTsKIAogICAgIHN3aXRjaCAo
bV9ldmVudE1vZGVsKSB7CiAgICAgICAgIGNhc2UgTlBFdmVudE1vZGVsQ29jb2E6IHsKQEAgLTk3
NSw2ICs5NzUsMTYgQEAgdm9pZCBOZXRzY2FwZVBsdWdpbjo6c2VuZENvbXBsZXhUZXh0SW5wdQog
ICAgIH0KIH0KIAordm9pZCBOZXRzY2FwZVBsdWdpbjo6c2V0Q29tcGxleFRleHRJbnB1dEVuYWJs
ZWQoYm9vbCBjb21wbGV4VGV4dElucHV0RW5hYmxlZCkKK3sKKyAgICBpZiAobV9pc0NvbXBsZXhU
ZXh0SW5wdXRFbmFibGVkID09IGNvbXBsZXhUZXh0SW5wdXRFbmFibGVkKQorICAgICAgICByZXR1
cm47CisKKyAgICBtX2lzQ29tcGxleFRleHRJbnB1dEVuYWJsZWQgPSBjb21wbGV4VGV4dElucHV0
RW5hYmxlZDsKKworICAgIG1fcGx1Z2luQ29udHJvbGxlci0+c2V0Q29tcGxleFRleHRJbnB1dFN0
YXRlKGNvbXBsZXhUZXh0SW5wdXRFbmFibGVkID8gUGx1Z2luQ29tcGxleFRleHRJbnB1dEVuYWJs
ZWRMZWdhY3kgOiBQbHVnaW5Db21wbGV4VGV4dElucHV0RGlzYWJsZWQpOworfQorCiBQbGF0Zm9y
bUxheWVyKiBOZXRzY2FwZVBsdWdpbjo6cGx1Z2luTGF5ZXIoKQogewogICAgIHJldHVybiBzdGF0
aWNfY2FzdDxQbGF0Zm9ybUxheWVyKj4obV9wbHVnaW5MYXllci5nZXQoKSk7CkluZGV4OiBTb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvbWFjL1BsdWdpblByb3h5TWFj
Lm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRz
Y2FwZS9tYWMvUGx1Z2luUHJveHlNYWMubW0JKHJldmlzaW9uIDg4MjQxKQorKysgU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL21hYy9QbHVnaW5Qcm94eU1hYy5tbQko
d29ya2luZyBjb3B5KQpAQCAtMjgsNiArMjgsNyBAQAogCiAjaWYgRU5BQkxFKFBMVUdJTl9QUk9D
RVNTKQogCisjaW1wb3J0ICJQbHVnaW5Db250cm9sbGVyLmgiCiAjaW1wb3J0IDxXZWJLaXRTeXN0
ZW1JbnRlcmZhY2UuaD4KIAogbmFtZXNwYWNlIFdlYktpdCB7CkBAIC01NCw2ICs1NSwxMSBAQCBi
b29sIFBsdWdpblByb3h5OjpuZWVkc0JhY2tpbmdTdG9yZSgpIGNvCiAgICAgcmV0dXJuICFtX3Jl
bW90ZUxheWVyQ2xpZW50SUQ7CiB9CiAKK3ZvaWQgUGx1Z2luUHJveHk6OnNldENvbXBsZXhUZXh0
SW5wdXRTdGF0ZSh1aW50NjRfdCBjb21wbGV4VGV4dElucHV0U3RhdGUpCit7CisgICAgbV9wbHVn
aW5Db250cm9sbGVyLT5zZXRDb21wbGV4VGV4dElucHV0U3RhdGUoc3RhdGljX2Nhc3Q8UGx1Z2lu
Q29tcGxleFRleHRJbnB1dFN0YXRlPihjb21wbGV4VGV4dElucHV0U3RhdGUpKTsKK30KKwogfSAv
LyBuYW1lc3BhY2UgV2ViS2l0CiAKICNlbmRpZiAvLyBFTkFCTEUoUExVR0lOX1BST0NFU1MpCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>104583</attachid>
            <date>2011-08-19 15:44:41 -0700</date>
            <delta_ts>2011-08-19 15:49:12 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-62245-20110819154440.patch</filename>
            <type>text/plain</type>
            <size>28266</size>
            <attacher name="Anders Carlsson">andersca</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cJKHJldmlzaW9uIDkzNDQ2KQorKysgU291cmNlL1dlYktpdDIvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsNTEgQEAKKzIwMTEtMDgtMTkgIEFuZGVycyBD
YXJsc3NvbiAgPGFuZGVyc2NhQGFwcGxlLmNvbT4KKworICAgICAgICBNYWtlIHRoZSBjb21wbGV4
IHRleHQgaW5wdXQgc3RhdGUgYSB0cmktc3RhdGUgZW51bSBpbnN0ZWFkIG9mIGEgYm9vbGVhbgor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjIyNDUKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIGlzIHRv
IHByZXBhcmUgdGhlIGluZnJhc3RydWN0dXJlIGZvciBzdXBwb3J0aW5nIHRoZSB1cGRhdGVkIENv
Y29hIHRleHQgaW5wdXQgbW9kZWwgZm9yIHBsdWctaW5zLgorCisgICAgICAgICogUGx1Z2luUHJv
Y2Vzcy9QbHVnaW5Db250cm9sbGVyUHJveHkuY3BwOgorICAgICAgICAqIFBsdWdpblByb2Nlc3Mv
UGx1Z2luQ29udHJvbGxlclByb3h5Lmg6CisgICAgICAgICogUGx1Z2luUHJvY2Vzcy9tYWMvUGx1
Z2luQ29udHJvbGxlclByb3h5TWFjLm1tOgorICAgICAgICAoV2ViS2l0OjpQbHVnaW5Db250cm9s
bGVyUHJveHk6OnNldENvbXBsZXhUZXh0SW5wdXRTdGF0ZSk6CisgICAgICAgIChXZWJLaXQ6OlBs
dWdpbkNvbnRyb2xsZXJQcm94eTo6Y29tcG9zaXRpbmdSZW5kZXJTZXJ2ZXJQb3J0KToKKyAgICAg
ICAgKiBTaGFyZWQvUGx1Z2lucy9tYWM6IEFkZGVkLgorICAgICAgICAqIFNoYXJlZC9QbHVnaW5z
L21hYy9QbHVnaW5Db21wbGV4VGV4dElucHV0U3RhdGUuaDogQWRkZWQuCisgICAgICAgIChXZWJL
aXQ6OmlzVmFsaWRQbHVnaW5Db21wbGV4VGV4dElucHV0U3RhdGUpOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9BUEkvbWFjL1BhZ2VDbGllbnRJbXBsLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9t
YWMvUGFnZUNsaWVudEltcGwubW06CisgICAgICAgIChXZWJLaXQ6OlBhZ2VDbGllbnRJbXBsOjpz
ZXRQbHVnaW5Db21wbGV4VGV4dElucHV0U3RhdGUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkv
bWFjL1dLVmlldy5tbToKKyAgICAgICAgKC1bV0tWaWV3IF9zZXRQbHVnaW5Db21wbGV4VGV4dElu
cHV0U3RhdGU6V2ViS2l0OjpwbHVnaW5Db21wbGV4VGV4dElucHV0SWRlbnRpZmllcjpdKToKKyAg
ICAgICAgKiBVSVByb2Nlc3MvQVBJL21hYy9XS1ZpZXdJbnRlcm5hbC5oOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9QYWdlQ2xpZW50Lmg6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5o
OgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW46CisgICAgICAg
ICogVUlQcm9jZXNzL21hYy9XZWJQYWdlUHJveHlNYWMubW06CisgICAgICAgIChXZWJLaXQ6Oldl
YlBhZ2VQcm94eTo6c2V0UGx1Z2luQ29tcGxleFRleHRJbnB1dFN0YXRlKToKKyAgICAgICAgKiBX
ZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogV2ViUHJvY2Vzcy9Q
bHVnaW5zL05ldHNjYXBlL05ldHNjYXBlUGx1Z2luLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0
c2NhcGVQbHVnaW46Ok5ldHNjYXBlUGx1Z2luKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1BsdWdp
bnMvTmV0c2NhcGUvTmV0c2NhcGVQbHVnaW4uaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1BsdWdp
bnMvTmV0c2NhcGUvbWFjL05ldHNjYXBlUGx1Z2luTWFjLm1tOgorICAgICAgICAoV2ViS2l0OjpO
ZXRzY2FwZVBsdWdpbjo6cGxhdGZvcm1TZXRGb2N1cyk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHNj
YXBlUGx1Z2luOjp3aW5kb3dGb2N1c0NoYW5nZWQpOgorICAgICAgICAoV2ViS2l0OjpOZXRzY2Fw
ZVBsdWdpbjo6c2V0Q29tcGxleFRleHRJbnB1dEVuYWJsZWQpOgorICAgICAgICAqIFdlYlByb2Nl
c3MvUGx1Z2lucy9OZXRzY2FwZS9tYWMvUGx1Z2luUHJveHlNYWMubW06CisgICAgICAgIChXZWJL
aXQ6OlBsdWdpblByb3h5OjpzZXRDb21wbGV4VGV4dElucHV0U3RhdGUpOgorICAgICAgICAqIFdl
YlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Db250cm9sbGVyLmg6CisgICAgICAgICogV2ViUHJvY2Vz
cy9QbHVnaW5zL1BsdWdpblByb3h5LmNwcDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1BsdWdpbnMv
UGx1Z2luUHJveHkuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJveHku
bWVzc2FnZXMuaW46CisgICAgICAgICogV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblZpZXcuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpQbHVnaW5WaWV3Ojp+UGx1Z2luVmlldyk6CisgICAgICAgIChX
ZWJLaXQ6OlBsdWdpblZpZXc6OnNldENvbXBsZXhUZXh0SW5wdXRTdGF0ZSk6CisgICAgICAgIChX
ZWJLaXQ6OlBsdWdpblZpZXc6OmNvbXBvc2l0aW5nUmVuZGVyU2VydmVyUG9ydCk6CisgICAgICAg
ICogV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblZpZXcuaDoKKwogMjAxMS0wOC0xOSAgQ2FpbyBN
YXJjZWxvIGRlIE9saXZlaXJhIEZpbGhvICA8Y2Fpby5vbGl2ZWlyYUBvcGVuYm9zc2Eub3JnPgog
CiAgICAgICAgIFtRdF0gW1dLMl0gUHJvdmlkZSBBUEkgZm9yIGludGVyY2VwdCAoYW5kIHBvc3Np
YmxlIGlnbm9yZSkgbGlua3MgY2xpY2tlZCBpbiBRRGVza3RvcFdlYlZpZXcKSW5kZXg6IFNvdXJj
ZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvUGx1Z2luQ29udHJvbGxlclByb3h5LmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL1BsdWdpbkNvbnRyb2xsZXJQcm94
eS5jcHAJKHJldmlzaW9uIDkzNDM3KQorKysgU291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9Q
bHVnaW5Db250cm9sbGVyUHJveHkuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNjEsMjMgKzM2MSw2
IEBAIHZvaWQgUGx1Z2luQ29udHJvbGxlclByb3h5Ojp3aWxsU2VuZEV2ZW4KICAgICBBU1NFUlRf
Tk9UX1JFQUNIRUQoKTsKIH0KIAotI2lmIFBMQVRGT1JNKE1BQykKLXZvaWQgUGx1Z2luQ29udHJv
bGxlclByb3h5OjpzZXRDb21wbGV4VGV4dElucHV0RW5hYmxlZChib29sIGNvbXBsZXhUZXh0SW5w
dXRFbmFibGVkKQotewotICAgIGlmIChtX2lzQ29tcGxleFRleHRJbnB1dEVuYWJsZWQgPT0gY29t
cGxleFRleHRJbnB1dEVuYWJsZWQpCi0gICAgICAgIHJldHVybjsKLQotICAgIG1faXNDb21wbGV4
VGV4dElucHV0RW5hYmxlZCA9IGNvbXBsZXhUZXh0SW5wdXRFbmFibGVkOwotCi0gICAgbV9jb25u
ZWN0aW9uLT5jb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6OlBsdWdpblByb3h5OjpTZXRDb21w
bGV4VGV4dElucHV0RW5hYmxlZChjb21wbGV4VGV4dElucHV0RW5hYmxlZCksIG1fcGx1Z2luSW5z
dGFuY2VJRCk7Ci19Ci0KLW1hY2hfcG9ydF90IFBsdWdpbkNvbnRyb2xsZXJQcm94eTo6Y29tcG9z
aXRpbmdSZW5kZXJTZXJ2ZXJQb3J0KCkKLXsKLSAgICByZXR1cm4gUGx1Z2luUHJvY2Vzczo6c2hh
cmVkKCkuY29tcG9zaXRpbmdSZW5kZXJTZXJ2ZXJQb3J0KCk7Ci19Ci0jZW5kaWYKLQogU3RyaW5n
IFBsdWdpbkNvbnRyb2xsZXJQcm94eTo6cHJveGllc0ZvclVSTChjb25zdCBTdHJpbmcmIHVybFN0
cmluZykKIHsKICAgICBTdHJpbmcgcHJveHlTdHJpbmc7CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9Q
bHVnaW5Qcm9jZXNzL1BsdWdpbkNvbnRyb2xsZXJQcm94eS5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvUGx1Z2luQ29udHJvbGxlclByb3h5LmgJKHJldmlzaW9u
IDkzNDM3KQorKysgU291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9QbHVnaW5Db250cm9sbGVy
UHJveHkuaAkod29ya2luZyBjb3B5KQpAQCAtOTYsNyArOTYsNyBAQCBwcml2YXRlOgogICAgIHZp
cnR1YWwgdm9pZCB3aWxsU2VuZEV2ZW50VG9QbHVnaW4oKTsKIAogI2lmIFBMQVRGT1JNKE1BQykK
LSAgICB2aXJ0dWFsIHZvaWQgc2V0Q29tcGxleFRleHRJbnB1dEVuYWJsZWQoYm9vbCk7CisgICAg
dmlydHVhbCB2b2lkIHNldENvbXBsZXhUZXh0SW5wdXRTdGF0ZShQbHVnaW5Db21wbGV4VGV4dElu
cHV0U3RhdGUpOwogICAgIHZpcnR1YWwgbWFjaF9wb3J0X3QgY29tcG9zaXRpbmdSZW5kZXJTZXJ2
ZXJQb3J0KCk7CiAjZW5kaWYKIApJbmRleDogU291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9t
YWMvUGx1Z2luQ29udHJvbGxlclByb3h5TWFjLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQyL1BsdWdpblByb2Nlc3MvbWFjL1BsdWdpbkNvbnRyb2xsZXJQcm94eU1hYy5tbQkocmV2aXNp
b24gOTM0MzcpCisrKyBTb3VyY2UvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL21hYy9QbHVnaW5Db250
cm9sbGVyUHJveHlNYWMubW0JKHdvcmtpbmcgY29weSkKQEAgLTI4LDE0ICsyOCwyNiBAQAogCiAj
aWYgRU5BQkxFKFBMVUdJTl9QUk9DRVNTKQogCi0jaW1wb3J0IDxRdWFydHpDb3JlL1F1YXJ0ekNv
cmUuaD4KICNpbXBvcnQgIlBsdWdpblByb2Nlc3MuaCIKKyNpbXBvcnQgIlBsdWdpblByb3h5TWVz
c2FnZXMuaCIKICNpbXBvcnQgIldlYktpdFN5c3RlbUludGVyZmFjZS5oIgorI2ltcG9ydCAiV2Vi
UHJvY2Vzc0Nvbm5lY3Rpb24uaCIKKyNpbXBvcnQgPFF1YXJ0ekNvcmUvUXVhcnR6Q29yZS5oPgog
CiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKK3ZvaWQg
UGx1Z2luQ29udHJvbGxlclByb3h5OjpzZXRDb21wbGV4VGV4dElucHV0U3RhdGUoUGx1Z2luQ29t
cGxleFRleHRJbnB1dFN0YXRlIHBsdWdpbkNvbXBsZXhUZXh0SW5wdXRTdGF0ZSkKK3sKKyAgICBt
X2Nvbm5lY3Rpb24tPmNvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6UGx1Z2luUHJveHk6OlNl
dENvbXBsZXhUZXh0SW5wdXRTdGF0ZShwbHVnaW5Db21wbGV4VGV4dElucHV0U3RhdGUpLCBtX3Bs
dWdpbkluc3RhbmNlSUQpOworfQorCittYWNoX3BvcnRfdCBQbHVnaW5Db250cm9sbGVyUHJveHk6
OmNvbXBvc2l0aW5nUmVuZGVyU2VydmVyUG9ydCgpCit7CisgICAgcmV0dXJuIFBsdWdpblByb2Nl
c3M6OnNoYXJlZCgpLmNvbXBvc2l0aW5nUmVuZGVyU2VydmVyUG9ydCgpOworfQorCiB2b2lkIFBs
dWdpbkNvbnRyb2xsZXJQcm94eTo6cGxhdGZvcm1Jbml0aWFsaXplKCkKIHsKICAgICBDQUxheWVy
ICogcGxhdGZvcm1MYXllciA9IG1fcGx1Z2luLT5wbHVnaW5MYXllcigpOwpJbmRleDogU291cmNl
L1dlYktpdDIvU2hhcmVkL1BsdWdpbnMvbWFjL1BsdWdpbkNvbXBsZXhUZXh0SW5wdXRTdGF0ZS5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9QbHVnaW5zL21hYy9QbHVnaW5D
b21wbGV4VGV4dElucHV0U3RhdGUuaAkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9XZWJLaXQyL1No
YXJlZC9QbHVnaW5zL21hYy9QbHVnaW5Db21wbGV4VGV4dElucHV0U3RhdGUuaAkocmV2aXNpb24g
MCkKQEAgLTAsMCArMSw1OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICog
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgUGx1Z2luQ29tcGxleFRl
eHRJbnB1dFN0YXRlX2gKKyNkZWZpbmUgUGx1Z2luQ29tcGxleFRleHRJbnB1dFN0YXRlX2gKKwor
bmFtZXNwYWNlIFdlYktpdCB7CisKK2VudW0gUGx1Z2luQ29tcGxleFRleHRJbnB1dFN0YXRlIHsK
KyAgICAvLyBDb21wbGV4IHRleHQgaW5wdXQgaXMgZGlzYWJsZWQuCisgICAgUGx1Z2luQ29tcGxl
eFRleHRJbnB1dERpc2FibGVkLAorCisgICAgLy8gQ29tcGxleCB0ZXh0IGlucHV0IGlzIGVuYWJs
ZWQgdXNpbmcgdGhlIHVwZGF0ZWQgQ29jb2EgZXZlbnQgbW9kZWwgdGV4dAorICAgIC8vIGlucHV0
IGhhbmRsaW5nIHNwZWNpZmljYXRpb24gZGVzY3JpYmVkIGF0IGh0dHBzOi8vd2lraS5tb3ppbGxh
Lm9yZy9OUEFQSTpDb2NvYUV2ZW50TW9kZWwjVGV4dF9JbnB1dAorICAgIFBsdWdpbkNvbXBsZXhU
ZXh0SW5wdXRFbmFibGVkLAorCisgICAgLy8gQ29tcGxleCB0ZXh0IGlucHV0IGlzIGVuYWJsZWQg
dXNpbmcgdGhlIGxlZ2FjeSBDb2NvYS9DYXJib24gZXZlbnQgbW9kZWwgdGV4dAorICAgIC8vIGlu
cHV0IGhhbmRsaW5nIHRoYXQgbWF0Y2hlcyBXZWJLaXQxLgorICAgIFBsdWdpbkNvbXBsZXhUZXh0
SW5wdXRFbmFibGVkTGVnYWN5Cit9OworCitzdGF0aWMgaW5saW5lIGJvb2wgaXNWYWxpZFBsdWdp
bkNvbXBsZXhUZXh0SW5wdXRTdGF0ZSh1aW50NjRfdCB2YWx1ZSkKK3sKKyAgICBzd2l0Y2ggKHZh
bHVlKSB7CisgICAgY2FzZSBQbHVnaW5Db21wbGV4VGV4dElucHV0RGlzYWJsZWQ6CisgICAgY2Fz
ZSBQbHVnaW5Db21wbGV4VGV4dElucHV0RW5hYmxlZDoKKyAgICBjYXNlIFBsdWdpbkNvbXBsZXhU
ZXh0SW5wdXRFbmFibGVkTGVnYWN5OgorICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKKyAg
ICByZXR1cm4gZmFsc2U7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8g
UGx1Z2luQ29tcGxleFRleHRJbnB1dFN0YXRlX2gKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9QYWdlQ2xpZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L1BhZ2VDbGllbnQuaAkocmV2aXNpb24gOTM0MzcpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvUGFnZUNsaWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNiw2ICsyNiw3IEBACiAjaWZuZGVm
IFBhZ2VDbGllbnRfaAogI2RlZmluZSBQYWdlQ2xpZW50X2gKIAorI2luY2x1ZGUgIlBsdWdpbkNv
bXBsZXhUZXh0SW5wdXRTdGF0ZS5oIgogI2luY2x1ZGUgIlNoYXJlYWJsZUJpdG1hcC5oIgogI2lu
Y2x1ZGUgIldlYlBhZ2VQcm94eS5oIgogI2luY2x1ZGUgIldlYlBvcHVwTWVudVByb3h5LmgiCkBA
IC0xNjIsNyArMTYzLDcgQEAgcHVibGljOgogI2VuZGlmCiAKICNpZiBQTEFURk9STShNQUMpCi0g
ICAgdmlydHVhbCB2b2lkIHNldENvbXBsZXhUZXh0SW5wdXRFbmFibGVkKHVpbnQ2NF90IHBsdWdp
bkNvbXBsZXhUZXh0SW5wdXRJZGVudGlmaWVyLCBib29sIGNvbXBsZXhUZXh0SW5wdXRFbmFibGVk
KSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHNldFBsdWdpbkNvbXBsZXhUZXh0SW5wdXRTdGF0ZSh1
aW50NjRfdCBwbHVnaW5Db21wbGV4VGV4dElucHV0SWRlbnRpZmllciwgUGx1Z2luQ29tcGxleFRl
eHRJbnB1dFN0YXRlKSA9IDA7CiAgICAgdmlydHVhbCBDR0NvbnRleHRSZWYgY29udGFpbmluZ1dp
bmRvd0dyYXBoaWNzQ29udGV4dCgpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgZGlkUGVyZm9ybURp
Y3Rpb25hcnlMb29rdXAoY29uc3QgU3RyaW5nJiwgZG91YmxlIHNjYWxlRmFjdG9yLCBjb25zdCBE
aWN0aW9uYXJ5UG9wdXBJbmZvJikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBkaXNtaXNzRGljdGlv
bmFyeUxvb2t1cFBhbmVsKCkgPSAwOwpJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dl
YlBhZ2VQcm94eS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQ
YWdlUHJveHkuaAkocmV2aXNpb24gOTM0MzcpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
V2ViUGFnZVByb3h5LmgJKHdvcmtpbmcgY29weSkKQEAgLTc2Niw3ICs3NjYsNyBAQCBwcml2YXRl
OgogICAgIHZvaWQgZGlkRmluaXNoTG9hZGluZ0RhdGFGb3JDdXN0b21SZXByZXNlbnRhdGlvbihj
b25zdCBTdHJpbmcmIHN1Z2dlc3RlZEZpbGVuYW1lLCBjb25zdCBDb3JlSVBDOjpEYXRhUmVmZXJl
bmNlJik7CiAKICNpZiBQTEFURk9STShNQUMpCi0gICAgdm9pZCBzZXRDb21wbGV4VGV4dElucHV0
RW5hYmxlZCh1aW50NjRfdCBwbHVnaW5Db21wbGV4VGV4dElucHV0SWRlbnRpZmllciwgYm9vbCBj
b21wbGV4VGV4dElucHV0RW5hYmxlZCk7CisgICAgdm9pZCBzZXRQbHVnaW5Db21wbGV4VGV4dElu
cHV0U3RhdGUodWludDY0X3QgcGx1Z2luQ29tcGxleFRleHRJbnB1dElkZW50aWZpZXIsIHVpbnQ2
NF90IGNvbXBsZXhUZXh0SW5wdXRTdGF0ZSk7CiAjZW5kaWYKIAogICAgIHZvaWQgY2xlYXJQZW5k
aW5nQVBJUmVxdWVzdFVSTCgpIHsgbV9wZW5kaW5nQVBJUmVxdWVzdFVSTCA9IFN0cmluZygpOyB9
CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmlu
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVz
c2FnZXMuaW4JKHJldmlzaW9uIDkzNDM3KQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dl
YlBhZ2VQcm94eS5tZXNzYWdlcy5pbgkod29ya2luZyBjb3B5KQpAQCAtMjI5LDcgKzIyOSw3IEBA
IG1lc3NhZ2VzIC0+IFdlYlBhZ2VQcm94eSB7CiAgICAgUmVnaXN0ZXJXZWJQcm9jZXNzQWNjZXNz
aWJpbGl0eVRva2VuKENvcmVJUEM6OkRhdGFSZWZlcmVuY2UgZGF0YSkKIAogICAgICMgUGx1Zy1p
biBjb21wbGV4IHRleHQgaW5wdXQgc3VwcG9ydCBtZXNzYWdlcwotICAgIFNldENvbXBsZXhUZXh0
SW5wdXRFbmFibGVkKHVpbnQ2NF90IHBsdWdpbkNvbXBsZXhUZXh0SW5wdXRJZGVudGlmaWVyLCBi
b29sIGNvbXBsZXhUZXh0SW5wdXRFbmFibGVkKQorICAgIFNldFBsdWdpbkNvbXBsZXhUZXh0SW5w
dXRTdGF0ZSh1aW50NjRfdCBwbHVnaW5Db21wbGV4VGV4dElucHV0SWRlbnRpZmllciwgdWludDY0
X3QgY29tcGxleFRleHRJbnB1dFN0YXRlKQogCiAgICAgIyBTcGVlY2ggbWVzc2FnZXMKICAgICBH
ZXRJc1NwZWFraW5nKCkgLT4gKGJvb2wgaXNTcGVha2luZykKSW5kZXg6IFNvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvbWFjL1BhZ2VDbGllbnRJbXBsLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9tYWMvUGFnZUNsaWVudEltcGwuaAkocmV2aXNpb24gOTM0
MzcpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL21hYy9QYWdlQ2xpZW50SW1wbC5o
CSh3b3JraW5nIGNvcHkpCkBAIC05NCw3ICs5NCw3IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCB2
b2lkIGV4aXRBY2NlbGVyYXRlZENvbXBvc2l0aW5nTW9kZSgpOwogCiAgICAgdmlydHVhbCB2b2lk
IGFjY2Vzc2liaWxpdHlXZWJQcm9jZXNzVG9rZW5SZWNlaXZlZChjb25zdCBDb3JlSVBDOjpEYXRh
UmVmZXJlbmNlJik7ICAgIAotICAgIHZpcnR1YWwgdm9pZCBzZXRDb21wbGV4VGV4dElucHV0RW5h
YmxlZCh1aW50NjRfdCBwbHVnaW5Db21wbGV4VGV4dElucHV0SWRlbnRpZmllciwgYm9vbCBjb21w
bGV4VGV4dElucHV0RW5hYmxlZCk7CisgICAgdmlydHVhbCB2b2lkIHNldFBsdWdpbkNvbXBsZXhU
ZXh0SW5wdXRTdGF0ZSh1aW50NjRfdCBwbHVnaW5Db21wbGV4VGV4dElucHV0SWRlbnRpZmllciwg
UGx1Z2luQ29tcGxleFRleHRJbnB1dFN0YXRlKTsKIAogICAgIHZpcnR1YWwgdm9pZCBtYWtlRmly
c3RSZXNwb25kZXIoKTsKICAgICAKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
bWFjL1BhZ2VDbGllbnRJbXBsLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvbWFjL1BhZ2VDbGllbnRJbXBsLm1tCShyZXZpc2lvbiA5MzQzNykKKysrIFNvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvbWFjL1BhZ2VDbGllbnRJbXBsLm1tCSh3b3JraW5nIGNv
cHkpCkBAIC0zNDIsOSArMzQyLDkgQEAgdm9pZCBQYWdlQ2xpZW50SW1wbDo6ZXhpdEFjY2VsZXJh
dGVkQ29tcAogfQogI2VuZGlmIC8vIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKIAotdm9p
ZCBQYWdlQ2xpZW50SW1wbDo6c2V0Q29tcGxleFRleHRJbnB1dEVuYWJsZWQodWludDY0X3QgcGx1
Z2luQ29tcGxleFRleHRJbnB1dElkZW50aWZpZXIsIGJvb2wgY29tcGxleFRleHRJbnB1dEVuYWJs
ZWQpCit2b2lkIFBhZ2VDbGllbnRJbXBsOjpzZXRQbHVnaW5Db21wbGV4VGV4dElucHV0U3RhdGUo
dWludDY0X3QgcGx1Z2luQ29tcGxleFRleHRJbnB1dElkZW50aWZpZXIsIFBsdWdpbkNvbXBsZXhU
ZXh0SW5wdXRTdGF0ZSBwbHVnaW5Db21wbGV4VGV4dElucHV0U3RhdGUpCiB7Ci0gICAgW21fd2tW
aWV3IF9zZXRDb21wbGV4VGV4dElucHV0RW5hYmxlZDpjb21wbGV4VGV4dElucHV0RW5hYmxlZCBw
bHVnaW5Db21wbGV4VGV4dElucHV0SWRlbnRpZmllcjpwbHVnaW5Db21wbGV4VGV4dElucHV0SWRl
bnRpZmllcl07CisgICAgW21fd2tWaWV3IF9zZXRQbHVnaW5Db21wbGV4VGV4dElucHV0U3RhdGU6
cGx1Z2luQ29tcGxleFRleHRJbnB1dFN0YXRlIHBsdWdpbkNvbXBsZXhUZXh0SW5wdXRJZGVudGlm
aWVyOnBsdWdpbkNvbXBsZXhUZXh0SW5wdXRJZGVudGlmaWVyXTsKIH0KIAogQ0dDb250ZXh0UmVm
IFBhZ2VDbGllbnRJbXBsOjpjb250YWluaW5nV2luZG93R3JhcGhpY3NDb250ZXh0KCkKSW5kZXg6
IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvbWFjL1dLVmlldy5tbQo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL21hYy9XS1ZpZXcubW0JKHJldmlzaW9uIDkz
NDM3KQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9tYWMvV0tWaWV3Lm1tCSh3b3Jr
aW5nIGNvcHkpCkBAIC0yMjg1LDkgKzIyODUsMTAgQEAgLSAodm9pZClfc2V0QWNjZXNzaWJpbGl0
eVdlYlByb2Nlc3NUb2tlbgogICAgIFtzZWxmIF91cGRhdGVSZW1vdGVBY2Nlc3NpYmlsaXR5UmVn
aXN0cmF0aW9uOllFU107CiB9CiAKLS0gKHZvaWQpX3NldENvbXBsZXhUZXh0SW5wdXRFbmFibGVk
OihCT09MKWNvbXBsZXhUZXh0SW5wdXRFbmFibGVkIHBsdWdpbkNvbXBsZXhUZXh0SW5wdXRJZGVu
dGlmaWVyOih1aW50NjRfdClwbHVnaW5Db21wbGV4VGV4dElucHV0SWRlbnRpZmllcgorLSAodm9p
ZClfc2V0UGx1Z2luQ29tcGxleFRleHRJbnB1dFN0YXRlOihXZWJLaXQ6OlBsdWdpbkNvbXBsZXhU
ZXh0SW5wdXRTdGF0ZSlwbHVnaW5Db21wbGV4VGV4dElucHV0U3RhdGUgcGx1Z2luQ29tcGxleFRl
eHRJbnB1dElkZW50aWZpZXI6KHVpbnQ2NF90KXBsdWdpbkNvbXBsZXhUZXh0SW5wdXRJZGVudGlm
aWVyCiB7CiAgICAgQk9PTCBpbnB1dFNvdXJjZUNoYW5nZWQgPSBfZGF0YS0+X3BsdWdpbkNvbXBs
ZXhUZXh0SW5wdXRJZGVudGlmaWVyOworICAgIEJPT0wgY29tcGxleFRleHRJbnB1dEVuYWJsZWQg
PSAocGx1Z2luQ29tcGxleFRleHRJbnB1dFN0YXRlID09IFBsdWdpbkNvbXBsZXhUZXh0SW5wdXRF
bmFibGVkTGVnYWN5KTsKIAogICAgIGlmIChjb21wbGV4VGV4dElucHV0RW5hYmxlZCkgewogICAg
ICAgICAvLyBDaGVjayBpZiB3ZSdyZSBhbHJlYWR5IGFsbG93aW5nIHRleHQgaW5wdXQgZm9yIHRo
aXMgcGx1Zy1pbi4KSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvbWFjL1dLVmll
d0ludGVybmFsLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9t
YWMvV0tWaWV3SW50ZXJuYWwuaAkocmV2aXNpb24gOTM0MzcpCisrKyBTb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL21hYy9XS1ZpZXdJbnRlcm5hbC5oCSh3b3JraW5nIGNvcHkpCkBAIC0yMyw2
ICsyMyw3IEBACiAgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAgKi8KIAorI2lt
cG9ydCAiUGx1Z2luQ29tcGxleFRleHRJbnB1dFN0YXRlLmgiCiAjaW1wb3J0ICJXS1ZpZXcuaCIK
ICNpbXBvcnQgIldlYkZpbmRPcHRpb25zLmgiCiAjaW1wb3J0IDx3dGYvRm9yd2FyZC5oPgpAQCAt
NjUsNyArNjYsNyBAQCBAaW50ZXJmYWNlIFdLVmlldyAoSW50ZXJuYWwpCiAtICh2b2lkKV9leGl0
QWNjZWxlcmF0ZWRDb21wb3NpdGluZ01vZGU7CiAKIC0gKHZvaWQpX3NldEFjY2Vzc2liaWxpdHlX
ZWJQcm9jZXNzVG9rZW46KE5TRGF0YSAqKWRhdGE7Ci0tICh2b2lkKV9zZXRDb21wbGV4VGV4dElu
cHV0RW5hYmxlZDooQk9PTCljb21wbGV4VGV4dElucHV0RW5hYmxlZCBwbHVnaW5Db21wbGV4VGV4
dElucHV0SWRlbnRpZmllcjoodWludDY0X3QpcGx1Z2luQ29tcGxleFRleHRJbnB1dElkZW50aWZp
ZXI7CistICh2b2lkKV9zZXRQbHVnaW5Db21wbGV4VGV4dElucHV0U3RhdGU6KFdlYktpdDo6UGx1
Z2luQ29tcGxleFRleHRJbnB1dFN0YXRlKXBsdWdpbkNvbXBsZXhUZXh0SW5wdXRTdGF0ZSBwbHVn
aW5Db21wbGV4VGV4dElucHV0SWRlbnRpZmllcjoodWludDY0X3QpcGx1Z2luQ29tcGxleFRleHRJ
bnB1dElkZW50aWZpZXI7CiAKIC0gKHZvaWQpX3NldFBhZ2VIYXNDdXN0b21SZXByZXNlbnRhdGlv
bjooQk9PTClwYWdlSGFzQ3VzdG9tUmVwcmVzZW50YXRpb247CiAtICh2b2lkKV9kaWRGaW5pc2hM
b2FkaW5nRGF0YUZvckN1c3RvbVJlcHJlc2VudGF0aW9uV2l0aFN1Z2dlc3RlZEZpbGVuYW1lOihj
b25zdCBTdHJpbmcmKXN1Z2dlc3RlZEZpbGVuYW1lIGRhdGFSZWZlcmVuY2U6KGNvbnN0IENvcmVJ
UEM6OkRhdGFSZWZlcmVuY2UmKWRhdGFSZWZlcmVuY2U7CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvbWFjL1dlYlBhZ2VQcm94eU1hYy5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvbWFjL1dlYlBhZ2VQcm94eU1hYy5tbQkocmV2aXNpb24gOTM0MzcpCisr
KyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1dlYlBhZ2VQcm94eU1hYy5tbQkod29ya2lu
ZyBjb3B5KQpAQCAtMzEsNiArMzEsNyBAQAogI2ltcG9ydCAiRGljdGlvbmFyeVBvcHVwSW5mby5o
IgogI2ltcG9ydCAiRWRpdG9yU3RhdGUuaCIKICNpbXBvcnQgIk5hdGl2ZVdlYktleWJvYXJkRXZl
bnQuaCIKKyNpbXBvcnQgIlBsdWdpbkNvbXBsZXhUZXh0SW5wdXRTdGF0ZS5oIgogI2ltcG9ydCAi
UGFnZUNsaWVudC5oIgogI2ltcG9ydCAiUGFnZUNsaWVudEltcGwuaCIKICNpbXBvcnQgIlRleHRD
aGVja2VyLmgiCkBAIC00Miw2ICs0Myw4IEBAIEBpbnRlcmZhY2UgTlNBcHBsaWNhdGlvbiAoRGV0
YWlscykKIC0gKHZvaWQpc3BlYWtTdHJpbmc6KE5TU3RyaW5nICopc3RyaW5nOwogQGVuZAogCisj
ZGVmaW5lIE1FU1NBR0VfQ0hFQ0soYXNzZXJ0aW9uKSBNRVNTQUdFX0NIRUNLX0JBU0UoYXNzZXJ0
aW9uLCBwcm9jZXNzKCktPmNvbm5lY3Rpb24oKSkKKwogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7
CiAKIG5hbWVzcGFjZSBXZWJLaXQgewpAQCAtMzM5LDkgKzM0MiwxMSBAQCB2b2lkIFdlYlBhZ2VQ
cm94eTo6cmVnaXN0ZXJVSVByb2Nlc3NBY2NlCiAgICAgcHJvY2VzcygpLT5zZW5kKE1lc3NhZ2Vz
OjpXZWJQYWdlOjpSZWdpc3RlclVJUHJvY2Vzc0FjY2Vzc2liaWxpdHlUb2tlbnMoZWxlbWVudFRv
a2VuLCB3aW5kb3dUb2tlbiksIG1fcGFnZUlEKTsKIH0KIAotdm9pZCBXZWJQYWdlUHJveHk6OnNl
dENvbXBsZXhUZXh0SW5wdXRFbmFibGVkKHVpbnQ2NF90IHBsdWdpbkNvbXBsZXhUZXh0SW5wdXRJ
ZGVudGlmaWVyLCBib29sIGNvbXBsZXhUZXh0SW5wdXRFbmFibGVkKQordm9pZCBXZWJQYWdlUHJv
eHk6OnNldFBsdWdpbkNvbXBsZXhUZXh0SW5wdXRTdGF0ZSh1aW50NjRfdCBwbHVnaW5Db21wbGV4
VGV4dElucHV0SWRlbnRpZmllciwgdWludDY0X3QgcGx1Z2luQ29tcGxleFRleHRJbnB1dFN0YXRl
KQogewotICAgIG1fcGFnZUNsaWVudC0+c2V0Q29tcGxleFRleHRJbnB1dEVuYWJsZWQocGx1Z2lu
Q29tcGxleFRleHRJbnB1dElkZW50aWZpZXIsIGNvbXBsZXhUZXh0SW5wdXRFbmFibGVkKTsKKyAg
ICBNRVNTQUdFX0NIRUNLKGlzVmFsaWRQbHVnaW5Db21wbGV4VGV4dElucHV0U3RhdGUocGx1Z2lu
Q29tcGxleFRleHRJbnB1dFN0YXRlKSk7CisKKyAgICBtX3BhZ2VDbGllbnQtPnNldFBsdWdpbkNv
bXBsZXhUZXh0SW5wdXRTdGF0ZShwbHVnaW5Db21wbGV4VGV4dElucHV0SWRlbnRpZmllciwgc3Rh
dGljX2Nhc3Q8UGx1Z2luQ29tcGxleFRleHRJbnB1dFN0YXRlPihwbHVnaW5Db21wbGV4VGV4dElu
cHV0U3RhdGUpKTsKIH0KIAogdm9pZCBXZWJQYWdlUHJveHk6OmV4ZWN1dGVTYXZlZENvbW1hbmRC
eVNlbGVjdG9yKGNvbnN0IFN0cmluZyYgc2VsZWN0b3IsIGJvb2wmIGhhbmRsZWQpCkluZGV4OiBT
b3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCShy
ZXZpc2lvbiA5MzQzNykKKysrIFNvdXJjZS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagkod29ya2luZyBjb3B5KQpAQCAtMTc0LDYgKzE3NCw3IEBACiAJCTFBOTEwMTBC
MTI2OEM4Q0EwMDE4NDJGNSAvKiBGaW5kSW5kaWNhdG9yV2luZG93Lm1tIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUE5MTAxMDkxMjY4QzhDQTAwMTg0MkY1
IC8qIEZpbmRJbmRpY2F0b3JXaW5kb3cubW0gKi87IH07CiAJCTFBOTJEQzExMTJGOEJBNDYwMDE3
QUY2NSAvKiBMYXllclRyZWVDb250ZXh0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAxQTkyREMxMDEyRjhCQTQ2MDAxN0FGNjUgLyogTGF5ZXJUcmVlQ29u
dGV4dC5oICovOyB9OwogCQkxQTkyREMxMzEyRjhCQUI5MDAxN0FGNjUgLyogTGF5ZXJUcmVlQ29u
dGV4dE1hYy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDFBOTJEQzEyMTJGOEJBQjkwMDE3QUY2NSAvKiBMYXllclRyZWVDb250ZXh0TWFjLm1tICovOyB9
OworCQkxQTlGQkE4RDEzRkYwNEU2MDBERUVENjcgLyogUGx1Z2luQ29tcGxleFRleHRJbnB1dFN0
YXRlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQTlG
QkE4QzEzRkYwNEU2MDBERUVENjcgLyogUGx1Z2luQ29tcGxleFRleHRJbnB1dFN0YXRlLmggKi87
IH07CiAJCTFBQTFDQzVEMTAwRkExQTEwMDc4REVCQyAvKiBRdWFydHpDb3JlLmZyYW1ld29yayBp
biBGcmFtZXdvcmtzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFBQTFDQzVD
MTAwRkExQTEwMDc4REVCQyAvKiBRdWFydHpDb3JlLmZyYW1ld29yayAqLzsgfTsKIAkJMUFBMUNE
MDcxMDBGQTFCQTAwNzhERUJDIC8qIENhcmJvbi5mcmFtZXdvcmsgaW4gRnJhbWV3b3JrcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQUExQ0QwNjEwMEZBMUJBMDA3OERFQkMg
LyogQ2FyYm9uLmZyYW1ld29yayAqLzsgfTsKIAkJMUFBMkU1MUQxMkU0QzA1RTAwQkM0OTY2IC8q
IENHVXRpbGl0aWVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAxQUEyRTUxQjEyRTRDMDVFMDBCQzQ5NjYgLyogQ0dVdGlsaXRpZXMuaCAqLzsgfTsKQEAg
LTEwODYsNiArMTA4Nyw3IEBACiAJCTFBOTEwMTA5MTI2OEM4Q0EwMDE4NDJGNSAvKiBGaW5kSW5k
aWNhdG9yV2luZG93Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0g
RmluZEluZGljYXRvcldpbmRvdy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUE5
MkRDMTAxMkY4QkE0NjAwMTdBRjY1IC8qIExheWVyVHJlZUNvbnRleHQuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gTGF5ZXJUcmVlQ29udGV4dC5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQkxQTkyREMxMjEyRjhCQUI5MDAxN0FGNjUgLyogTGF5ZXJUcmVlQ29udGV4
dE1hYy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IExheWVyVHJl
ZUNvbnRleHRNYWMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFBOUZCQThDMTNG
RjA0RTYwMERFRUQ2NyAvKiBQbHVnaW5Db21wbGV4VGV4dElucHV0U3RhdGUuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUGx1Z2luQ29tcGxleFRleHRJbnB1dFN0YXRlLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFBQTFDNzlBMTAwRTdGQzUwMDc4REVCQyAvKiBX
ZWJDb3JlLmZyYW1ld29yayAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25G
aWxlVHlwZSA9IHdyYXBwZXIuZnJhbWV3b3JrOyBwYXRoID0gV2ViQ29yZS5mcmFtZXdvcms7IHNv
dXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7IH07CiAJCTFBQTFDN0RFMTAwRTg0NkUwMDc4
REVCQyAvKiBKYXZhU2NyaXB0Q29yZS5mcmFtZXdvcmsgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB3cmFwcGVyLmZyYW1ld29yazsgcGF0aCA9IEphdmFT
Y3JpcHRDb3JlLmZyYW1ld29yazsgc291cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsK
IAkJMUFBMUNDNUMxMDBGQTFBMTAwNzhERUJDIC8qIFF1YXJ0ekNvcmUuZnJhbWV3b3JrICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gd3JhcHBlci5mcmFt
ZXdvcms7IG5hbWUgPSBRdWFydHpDb3JlLmZyYW1ld29yazsgcGF0aCA9IC9TeXN0ZW0vTGlicmFy
eS9GcmFtZXdvcmtzL1F1YXJ0ekNvcmUuZnJhbWV3b3JrOyBzb3VyY2VUcmVlID0gIjxhYnNvbHV0
ZT4iOyB9OwpAQCAtMjEwNyw2ICsyMTA5LDE0IEBACiAJCQlwYXRoID0gbWFjOwogCQkJc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsKIAkJfTsKKwkJMUE5RkJBOEIxM0ZGMDRFNjAwREVFRDY3IC8qIG1h
YyAqLyA9IHsKKwkJCWlzYSA9IFBCWEdyb3VwOworCQkJY2hpbGRyZW4gPSAoCisJCQkJMUE5RkJB
OEMxM0ZGMDRFNjAwREVFRDY3IC8qIFBsdWdpbkNvbXBsZXhUZXh0SW5wdXRTdGF0ZS5oICovLAor
CQkJKTsKKwkJCXBhdGggPSBtYWM7CisJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOworCQl9Owog
CQkxQUEyRTUxQTEyRTRDMDU2MDBCQzQ5NjYgLyogY2cgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91
cDsKIAkJCWNoaWxkcmVuID0gKApAQCAtMjI0MSw2ICsyMjUxLDcgQEAKIAkJMUFBRTA1OEMxMjc5
RENENDAwODUyNDE4IC8qIFBsdWdpbnMgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNo
aWxkcmVuID0gKAorCQkJCTFBOUZCQThCMTNGRjA0RTYwMERFRUQ2NyAvKiBtYWMgKi8sCiAJCQkJ
MUE0QTlDNTIxMkI4MTZDRjAwOEZFOTg0IC8qIE5ldHNjYXBlICovLAogCQkJCTFBM0Q2MEZGMTNB
N0NDMkEwMEY5NUQ0RSAvKiBQbHVnaW5Nb2R1bGVJbmZvLmNwcCAqLywKIAkJCQkxQTNENjEwMDEz
QTdDQzJBMDBGOTVENEUgLyogUGx1Z2luTW9kdWxlSW5mby5oICovLApAQCAtMzgxMCw2ICszODIx
LDcgQEAKIAkJCQk5M0MwMURBQzEzOUFDOTE3MDBFRDUxRDcgLyogQ29yZUlQQ0NsaWVudFJ1bkxv
b3AuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBM0Q2MTAyMTNBN0NDMkEwMEY5NUQ0RSAvKiBQbHVn
aW5Nb2R1bGVJbmZvLmggaW4gSGVhZGVycyAqLywKIAkJCQk1RDUxODQ1NjEzQkNGOUNDMDBDN0ZG
NEEgLyogQVBJQ2xpZW50VHJhaXRzLmggaW4gSGVhZGVycyAqLywKKwkJCQkxQTlGQkE4RDEzRkYw
NEU2MDBERUVENjcgLyogUGx1Z2luQ29tcGxleFRleHRJbnB1dFN0YXRlLmggaW4gSGVhZGVycyAq
LywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJ
fTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Db250cm9s
bGVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1Bs
dWdpbkNvbnRyb2xsZXIuaAkocmV2aXNpb24gOTM0MzcpCisrKyBTb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1BsdWdpbnMvUGx1Z2luQ29udHJvbGxlci5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNiw2
ICsyNiw3IEBACiAjaWZuZGVmIFBsdWdpbkNvbnRyb2xsZXJfaAogI2RlZmluZSBQbHVnaW5Db250
cm9sbGVyX2gKIAorI2luY2x1ZGUgIlBsdWdpbkNvbXBsZXhUZXh0SW5wdXRTdGF0ZS5oIgogI2lu
Y2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAKIHN0cnVjdCBOUE9iamVjdDsKQEAgLTEwOSw3ICsxMTAs
NyBAQCBwdWJsaWM6CiAKICNpZiBQTEFURk9STShNQUMpCiAgICAgLy8gVGVsbHMgdGhlIGNvbnRy
b2xsZXIgdGhhdCBjb21wbGV4IHRleHQgaW5wdXQgYmUgZW5hYmxlZCBvciBkaXNhYmxlZCBmb3Ig
dGhlIHBsdWctaW4uCi0gICAgdmlydHVhbCB2b2lkIHNldENvbXBsZXhUZXh0SW5wdXRFbmFibGVk
KGJvb2wpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0Q29tcGxleFRleHRJbnB1dFN0YXRlKFBs
dWdpbkNvbXBsZXhUZXh0SW5wdXRTdGF0ZSkgPSAwOwogCiAgICAgLy8gUmV0dXJucyB0aGUgbWFj
aCBwb3J0IG9mIHRoZSBjb21wb3NpdGluZyByZW5kZXIgc2VydmVyLgogICAgIHZpcnR1YWwgbWFj
aF9wb3J0X3QgY29tcG9zaXRpbmdSZW5kZXJTZXJ2ZXJQb3J0KCkgPSAwOwpJbmRleDogU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb3h5LmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJveHkuY3BwCShyZXZp
c2lvbiA5MzQzNykKKysrIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Q
cm94eS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ3MCwxMyArNDcwLDYgQEAgdm9pZCBQbHVnaW5Q
cm94eTo6c2V0U3RhdHVzYmFyVGV4dChjb25zdAogICAgIGNvbnRyb2xsZXIoKS0+c2V0U3RhdHVz
YmFyVGV4dChzdGF0dXNiYXJUZXh0KTsKIH0KIAotI2lmIFBMQVRGT1JNKE1BQykKLXZvaWQgUGx1
Z2luUHJveHk6OnNldENvbXBsZXhUZXh0SW5wdXRFbmFibGVkKGJvb2wgY29tcGxleFRleHRJbnB1
dEVuYWJsZWQpCi17Ci0gICAgY29udHJvbGxlcigpLT5zZXRDb21wbGV4VGV4dElucHV0RW5hYmxl
ZChjb21wbGV4VGV4dElucHV0RW5hYmxlZCk7Ci19Ci0jZW5kaWYKLSAgICAKIHZvaWQgUGx1Z2lu
UHJveHk6OnVwZGF0ZShjb25zdCBJbnRSZWN0JiBwYWludGVkUmVjdCkKIHsKICAgICBpZiAocGFp
bnRlZFJlY3QgPT0gbV9mcmFtZVJlY3QpCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1BsdWdpbnMvUGx1Z2luUHJveHkuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJveHkuaAkocmV2aXNpb24gOTM0MzcpCisrKyBTb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJveHkuaAkod29ya2luZyBjb3B5KQpA
QCAtMTE5LDcgKzExOSw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBjYW5jZWxNYW51YWxTdHJlYW1M
b2FkKCk7CiAgICAgdm9pZCBzZXRTdGF0dXNiYXJUZXh0KGNvbnN0IFN0cmluZyYgc3RhdHVzYmFy
VGV4dCk7CiAjaWYgUExBVEZPUk0oTUFDKQotICAgIHZvaWQgc2V0Q29tcGxleFRleHRJbnB1dEVu
YWJsZWQoYm9vbCk7CisgICAgdm9pZCBzZXRDb21wbGV4VGV4dElucHV0U3RhdGUodWludDY0X3Qp
OwogI2VuZGlmCiAKICAgICBTdHJpbmcgbV9wbHVnaW5QYXRoOwpJbmRleDogU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb3h5Lm1lc3NhZ2VzLmluCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm94eS5tZXNzYWdl
cy5pbgkocmV2aXNpb24gOTM0MzcpCisrKyBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdp
bnMvUGx1Z2luUHJveHkubWVzc2FnZXMuaW4JKHdvcmtpbmcgY29weSkKQEAgLTU4LDcgKzU4LDcg
QEAgbWVzc2FnZXMgLT4gUGx1Z2luUHJveHkgewogCiAjaWYgUExBVEZPUk0oTUFDKQogICAgICMg
Q2hhbmdlIHdoZXRoZXIgY29tcGxleHQgdGV4dCBpbnB1dCBpcyBlbmFibGVkIGZvciB0aGlzIHBs
dWctaW4uCi0gICAgU2V0Q29tcGxleFRleHRJbnB1dEVuYWJsZWQoYm9vbCBjb21wbGV4VGV4dElu
cHV0RW5hYmxlZCkKKyAgICBTZXRDb21wbGV4VGV4dElucHV0U3RhdGUodWludDY0X3QgY29tcGxl
eFRleHRJbnB1dFN0YXRlKQogI2VuZGlmCiB9CiAKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvUGx1Z2lucy9QbHVnaW5WaWV3LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luVmlldy5jcHAJKHJldmlzaW9uIDkzNDM3KQorKysg
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblZpZXcuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0yODcsNyArMjg3LDcgQEAgUGx1Z2luVmlldzo6flBsdWdpblZpZXcoKQogICAg
ICAgICBtX3BsdWdpbi0+ZGVzdHJveVBsdWdpbigpOwogICAgICAgICBtX2lzQmVpbmdEZXN0cm95
ZWQgPSBmYWxzZTsKICNpZiBQTEFURk9STShNQUMpCi0gICAgICAgIHNldENvbXBsZXhUZXh0SW5w
dXRFbmFibGVkKGZhbHNlKTsKKyAgICAgICAgc2V0Q29tcGxleFRleHRJbnB1dFN0YXRlKFBsdWdp
bkNvbXBsZXhUZXh0SW5wdXREaXNhYmxlZCk7CiAjZW5kaWYKICAgICB9CiAKQEAgLTEwNjcsMTYg
KzEwNjcsMTUgQEAgdm9pZCBQbHVnaW5WaWV3OjpzY2hlZHVsZVdpbmRvd2VkUGx1Z2luRwogI2Vu
ZGlmCiAKICNpZiBQTEFURk9STShNQUMpCi12b2lkIFBsdWdpblZpZXc6OnNldENvbXBsZXhUZXh0
SW5wdXRFbmFibGVkKGJvb2wgY29tcGxleFRleHRJbnB1dEVuYWJsZWQpCit2b2lkIFBsdWdpblZp
ZXc6OnNldENvbXBsZXhUZXh0SW5wdXRTdGF0ZShQbHVnaW5Db21wbGV4VGV4dElucHV0U3RhdGUg
cGx1Z2luQ29tcGxleFRleHRJbnB1dFN0YXRlKQogewotICAgIG1fd2ViUGFnZS0+c2VuZChNZXNz
YWdlczo6V2ViUGFnZVByb3h5OjpTZXRDb21wbGV4VGV4dElucHV0RW5hYmxlZChtX3BsdWdpbi0+
cGx1Z2luQ29tcGxleFRleHRJbnB1dElkZW50aWZpZXIoKSwgY29tcGxleFRleHRJbnB1dEVuYWJs
ZWQpKTsKKyAgICBtX3dlYlBhZ2UtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6U2V0UGx1
Z2luQ29tcGxleFRleHRJbnB1dFN0YXRlKG1fcGx1Z2luLT5wbHVnaW5Db21wbGV4VGV4dElucHV0
SWRlbnRpZmllcigpLCBwbHVnaW5Db21wbGV4VGV4dElucHV0U3RhdGUpKTsKIH0KIAogbWFjaF9w
b3J0X3QgUGx1Z2luVmlldzo6Y29tcG9zaXRpbmdSZW5kZXJTZXJ2ZXJQb3J0KCkKIHsKICAgICBy
ZXR1cm4gV2ViUHJvY2Vzczo6c2hhcmVkKCkuY29tcG9zaXRpbmdSZW5kZXJTZXJ2ZXJQb3J0KCk7
CiB9Ci0KICNlbmRpZgogICAgIAogU3RyaW5nIFBsdWdpblZpZXc6OnByb3hpZXNGb3JVUkwoY29u
c3QgU3RyaW5nJiB1cmxTdHJpbmcpCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1Bs
dWdpbnMvUGx1Z2luVmlldy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvUGx1Z2lucy9QbHVnaW5WaWV3LmgJKHJldmlzaW9uIDkzNDM3KQorKysgU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblZpZXcuaAkod29ya2luZyBjb3B5KQpAQCAtMTQx
LDcgKzE0MSw3IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIHNjaGVkdWxlV2luZG93ZWRQ
bHVnaW5HZW9tZXRyeVVwZGF0ZShjb25zdCBXaW5kb3dHZW9tZXRyeSYpOwogI2VuZGlmCiAjaWYg
UExBVEZPUk0oTUFDKQotICAgIHZpcnR1YWwgdm9pZCBzZXRDb21wbGV4VGV4dElucHV0RW5hYmxl
ZChib29sKTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0Q29tcGxleFRleHRJbnB1dFN0YXRlKFBsdWdp
bkNvbXBsZXhUZXh0SW5wdXRTdGF0ZSk7CiAgICAgdmlydHVhbCBtYWNoX3BvcnRfdCBjb21wb3Np
dGluZ1JlbmRlclNlcnZlclBvcnQoKTsKICNlbmRpZgogICAgIHZpcnR1YWwgU3RyaW5nIHByb3hp
ZXNGb3JVUkwoY29uc3QgU3RyaW5nJik7CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1BsdWdpbnMvTmV0c2NhcGUvTmV0c2NhcGVQbHVnaW4uY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9OZXRzY2FwZVBsdWdpbi5jcHAJ
KHJldmlzaW9uIDkzNDM3KQorKysgU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05l
dHNjYXBlL05ldHNjYXBlUGx1Z2luLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNzUsNiArNzUsNyBA
QCBOZXRzY2FwZVBsdWdpbjo6TmV0c2NhcGVQbHVnaW4oUGFzc1JlZlB0CiAgICAgLCBtX2N1cnJl
bnRNb3VzZUV2ZW50KDApCiAgICAgLCBtX3BsdWdpbkhhc0ZvY3VzKGZhbHNlKQogICAgICwgbV93
aW5kb3dIYXNGb2N1cyhmYWxzZSkKKyAgICAsIG1faXNDb21wbGV4VGV4dElucHV0RW5hYmxlZChm
YWxzZSkKICNpZm5kZWYgTlBfTk9fQ0FSQk9OCiAgICAgLCBtX251bGxFdmVudFRpbWVyKFJ1bkxv
b3A6Om1haW4oKSwgdGhpcywgJk5ldHNjYXBlUGx1Z2luOjpudWxsRXZlbnRUaW1lckZpcmVkKQog
ICAgICwgbV9ucENHQ29udGV4dCgpCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1Bs
dWdpbnMvTmV0c2NhcGUvTmV0c2NhcGVQbHVnaW4uaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvTmV0c2NhcGVQbHVnaW4uaAkocmV2aXNp
b24gOTM0MzcpCisrKyBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUv
TmV0c2NhcGVQbHVnaW4uaAkod29ya2luZyBjb3B5KQpAQCAtMTkwLDYgKzE5MCw4IEBAIHByaXZh
dGU6CiAKICAgICB2aXJ0dWFsIHVpbnQ2NF90IHBsdWdpbkNvbXBsZXhUZXh0SW5wdXRJZGVudGlm
aWVyKCkgY29uc3Q7CiAgICAgdmlydHVhbCB2b2lkIHNlbmRDb21wbGV4VGV4dElucHV0KGNvbnN0
IFN0cmluZyYgdGV4dElucHV0KTsKKworICAgIHZvaWQgc2V0Q29tcGxleFRleHRJbnB1dEVuYWJs
ZWQoYm9vbCk7CiAjZW5kaWYKIAogICAgIHZpcnR1YWwgdm9pZCBwcml2YXRlQnJvd3NpbmdTdGF0
ZUNoYW5nZWQoYm9vbCk7CkBAIC0yMzksNiArMjQxLDkgQEAgcHJpdmF0ZToKICAgICBib29sIG1f
cGx1Z2luSGFzRm9jdXM7CiAgICAgYm9vbCBtX3dpbmRvd0hhc0ZvY3VzOwogCisgICAgLy8gV2hl
dGhlciBjb21wbGV4IHRleHQgaW5wdXQgaXMgZW5hYmxlZC4KKyAgICBib29sIG1faXNDb21wbGV4
VGV4dElucHV0RW5hYmxlZDsKKwogICAgIFdlYkNvcmU6OkludFJlY3QgbV93aW5kb3dGcmFtZUlu
U2NyZWVuQ29vcmRpbmF0ZXM7CiAgICAgV2ViQ29yZTo6SW50UmVjdCBtX3ZpZXdGcmFtZUluV2lu
ZG93Q29vcmRpbmF0ZXM7CiAKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lu
cy9OZXRzY2FwZS9tYWMvTmV0c2NhcGVQbHVnaW5NYWMubW0KPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL21hYy9OZXRzY2FwZVBsdWdpbk1h
Yy5tbQkocmV2aXNpb24gOTM0MzcpCisrKyBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdp
bnMvTmV0c2NhcGUvbWFjL05ldHNjYXBlUGx1Z2luTWFjLm1tCSh3b3JraW5nIGNvcHkpCkBAIC03
ODcsNyArNzg3LDcgQEAgYm9vbCBOZXRzY2FwZVBsdWdpbjo6cGxhdGZvcm1IYW5kbGVLZXlibwog
dm9pZCBOZXRzY2FwZVBsdWdpbjo6cGxhdGZvcm1TZXRGb2N1cyhib29sIGhhc0ZvY3VzKQogewog
ICAgIG1fcGx1Z2luSGFzRm9jdXMgPSBoYXNGb2N1czsKLSAgICBjb250cm9sbGVyKCktPnNldENv
bXBsZXhUZXh0SW5wdXRFbmFibGVkKG1fcGx1Z2luSGFzRm9jdXMgJiYgbV93aW5kb3dIYXNGb2N1
cyk7CisgICAgc2V0Q29tcGxleFRleHRJbnB1dEVuYWJsZWQobV9wbHVnaW5IYXNGb2N1cyAmJiBt
X3dpbmRvd0hhc0ZvY3VzKTsKIAogICAgIHN3aXRjaCAobV9ldmVudE1vZGVsKSB7CiAgICAgICAg
IGNhc2UgTlBFdmVudE1vZGVsQ29jb2E6IHsKQEAgLTgxNSw3ICs4MTUsNyBAQCB2b2lkIE5ldHNj
YXBlUGx1Z2luOjpwbGF0Zm9ybVNldEZvY3VzKGJvCiB2b2lkIE5ldHNjYXBlUGx1Z2luOjp3aW5k
b3dGb2N1c0NoYW5nZWQoYm9vbCBoYXNGb2N1cykKIHsKICAgICBtX3dpbmRvd0hhc0ZvY3VzID0g
aGFzRm9jdXM7Ci0gICAgY29udHJvbGxlcigpLT5zZXRDb21wbGV4VGV4dElucHV0RW5hYmxlZCht
X3BsdWdpbkhhc0ZvY3VzICYmIG1fd2luZG93SGFzRm9jdXMpOworICAgIHNldENvbXBsZXhUZXh0
SW5wdXRFbmFibGVkKG1fcGx1Z2luSGFzRm9jdXMgJiYgbV93aW5kb3dIYXNGb2N1cyk7CiAKICAg
ICBzd2l0Y2ggKG1fZXZlbnRNb2RlbCkgewogICAgICAgICBjYXNlIE5QRXZlbnRNb2RlbENvY29h
OiB7CkBAIC05NzUsNiArOTc1LDE1IEBAIHZvaWQgTmV0c2NhcGVQbHVnaW46OnNlbmRDb21wbGV4
VGV4dElucHUKICAgICB9CiB9CiAKK3ZvaWQgTmV0c2NhcGVQbHVnaW46OnNldENvbXBsZXhUZXh0
SW5wdXRFbmFibGVkKGJvb2wgY29tcGxleFRleHRJbnB1dEVuYWJsZWQpCit7CisgICAgaWYgKG1f
aXNDb21wbGV4VGV4dElucHV0RW5hYmxlZCA9PSBjb21wbGV4VGV4dElucHV0RW5hYmxlZCkKKyAg
ICAgICAgcmV0dXJuOworCisgICAgbV9pc0NvbXBsZXhUZXh0SW5wdXRFbmFibGVkID0gY29tcGxl
eFRleHRJbnB1dEVuYWJsZWQ7CisgICAgY29udHJvbGxlcigpLT5zZXRDb21wbGV4VGV4dElucHV0
U3RhdGUoY29tcGxleFRleHRJbnB1dEVuYWJsZWQgPyBQbHVnaW5Db21wbGV4VGV4dElucHV0RW5h
YmxlZExlZ2FjeSA6IFBsdWdpbkNvbXBsZXhUZXh0SW5wdXREaXNhYmxlZCk7Cit9CisKIFBsYXRm
b3JtTGF5ZXIqIE5ldHNjYXBlUGx1Z2luOjpwbHVnaW5MYXllcigpCiB7CiAgICAgcmV0dXJuIHN0
YXRpY19jYXN0PFBsYXRmb3JtTGF5ZXIqPihtX3BsdWdpbkxheWVyLmdldCgpKTsKSW5kZXg6IFNv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9tYWMvUGx1Z2luUHJveHlN
YWMubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05l
dHNjYXBlL21hYy9QbHVnaW5Qcm94eU1hYy5tbQkocmV2aXNpb24gOTM0MzcpCisrKyBTb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvbWFjL1BsdWdpblByb3h5TWFjLm1t
CSh3b3JraW5nIGNvcHkpCkBAIC0yOCw2ICsyOCw3IEBACiAKICNpZiBFTkFCTEUoUExVR0lOX1BS
T0NFU1MpCiAKKyNpbXBvcnQgIlBsdWdpbkNvbnRyb2xsZXIuaCIKICNpbXBvcnQgPFdlYktpdFN5
c3RlbUludGVyZmFjZS5oPgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKQEAgLTU0LDYgKzU1LDExIEBA
IGJvb2wgUGx1Z2luUHJveHk6Om5lZWRzQmFja2luZ1N0b3JlKCkgY28KICAgICByZXR1cm4gIW1f
cmVtb3RlTGF5ZXJDbGllbnRJRDsKIH0KIAordm9pZCBQbHVnaW5Qcm94eTo6c2V0Q29tcGxleFRl
eHRJbnB1dFN0YXRlKHVpbnQ2NF90IGNvbXBsZXhUZXh0SW5wdXRTdGF0ZSkKK3sKKyAgICBjb250
cm9sbGVyKCktPnNldENvbXBsZXhUZXh0SW5wdXRTdGF0ZShzdGF0aWNfY2FzdDxQbHVnaW5Db21w
bGV4VGV4dElucHV0U3RhdGU+KGNvbXBsZXhUZXh0SW5wdXRTdGF0ZSkpOworfQorCiB9IC8vIG5h
bWVzcGFjZSBXZWJLaXQKIAogI2VuZGlmIC8vIEVOQUJMRShQTFVHSU5fUFJPQ0VTUykK
</data>
<flag name="review"
          id="100460"
          type_id="1"
          status="+"
          setter="sam"
    />
          </attachment>
      

    </bug>

</bugzilla>