<?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>146847</bug_id>
          
          <creation_ts>2015-07-10 12:28:04 -0700</creation_ts>
          <short_desc>jsc-tailcall: Get rid of the arity fixup return thunk</short_desc>
          <delta_ts>2015-09-14 10:56:51 -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>JavaScriptCore</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>
          <dependson>146846</dependson>
    
    <dependson>146941</dependson>
          <blocked>146484</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Basile Clement">basile_clement</reporter>
          <assigned_to name="Basile Clement">basile_clement</assigned_to>
          <cc>fpizlo</cc>
    
    <cc>ggaren</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1108712</commentid>
    <comment_count>0</comment_count>
    <who name="Basile Clement">basile_clement</who>
    <bug_when>2015-07-10 12:28:04 -0700</bug_when>
    <thetext>We need to get rid of this for implementing tail calls since after a tail call, the stack is no longer going to be in a meaningful state for the arity fixup return thunk.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1109228</commentid>
    <comment_count>1</comment_count>
      <attachid>256729</attachid>
    <who name="Basile Clement">basile_clement</who>
    <bug_when>2015-07-13 14:36:23 -0700</bug_when>
    <thetext>Created attachment 256729
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1109450</commentid>
    <comment_count>2</comment_count>
      <attachid>256729</attachid>
    <who name="Michael Saboff">msaboff</who>
    <bug_when>2015-07-14 14:08:48 -0700</bug_when>
    <thetext>Comment on attachment 256729
Patch

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

r=me after splitting the patch in two.

&gt; Source/JavaScriptCore/runtime/Options.h:159
&gt; -    v(bool, useFTLJIT, true, &quot;allows the FTL JIT to be used if true&quot;) \
&gt; +    v(bool, useFTLJIT, false, &quot;allows the FTL JIT to be used if true&quot;) \

Break this out into a separate bug and patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1109454</commentid>
    <comment_count>3</comment_count>
    <who name="Basile Clement">basile_clement</who>
    <bug_when>2015-07-14 14:15:53 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; Comment on attachment 256729 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=256729&amp;action=review
&gt; 
&gt; r=me after splitting the patch in two.
&gt; 
&gt; &gt; Source/JavaScriptCore/runtime/Options.h:159
&gt; &gt; -    v(bool, useFTLJIT, true, &quot;allows the FTL JIT to be used if true&quot;) \
&gt; &gt; +    v(bool, useFTLJIT, false, &quot;allows the FTL JIT to be used if true&quot;) \
&gt; 
&gt; Break this out into a separate bug and patch.

Makes sense, created https://bugs.webkit.org/show_bug.cgi?id=146941 for this and https://bugs.webkit.org/show_bug.cgi?id=146942 to re-enable the FTL.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1109482</commentid>
    <comment_count>4</comment_count>
    <who name="Basile Clement">basile_clement</who>
    <bug_when>2015-07-14 15:08:36 -0700</bug_when>
    <thetext>Committed in r186820 &lt;http://trac.webkit.org/changeset/186820&gt;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1125634</commentid>
    <comment_count>5</comment_count>
      <attachid>256729</attachid>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2015-09-14 10:56:51 -0700</bug_when>
    <thetext>Comment on attachment 256729
Patch

Cleared review? from attachment 256729 so that this bug does not appear in http://webkit.org/pending-review.  If you would like this patch reviewed, please attach it to a new bug (or re-open this bug before marking it for review again).</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>256729</attachid>
            <date>2015-07-13 14:36:23 -0700</date>
            <delta_ts>2015-09-14 10:56:51 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-146847-20150713143518.patch</filename>
            <type>text/plain</type>
            <size>29031</size>
            <attacher name="Basile Clement">basile_clement</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg2NjM4CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBm
OWU0Mzg2NTBjNzY0N2RmODE2YjI5NTg5YjA0M2RmMWE5YjI5MDVjLi4wYjRmZmUwODNkN2E2M2Zm
MGY4MTA2YzZkZDNkNjM5YjRjZWI4MmE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
NSArMSwzOCBAQAogMjAxNS0wNy0xMyAgQmFzaWxlIENsZW1lbnQgIDxiYXNpbGVfY2xlbWVudEBh
cHBsZS5jb20+CiAKKyAgICAgICAganNjLXRhaWxjYWxsOiBHZXQgcmlkIG9mIHRoZSBhcml0eSBm
aXh1cCByZXR1cm4gdGh1bmsKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTE0Njg0NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIFRoaXMgcmVtb3ZlcyB0aGUgYXJpdHkgY2hlY2sgZmFpbCByZXR1cm4gdGh1bmsg
c2luY2UgaXQgaXMgbm93IHRoZQorICAgICAgICBjYWxsZXIncyByZXNwb25zaWJpbGl0eSB0byBy
ZXN0b3JlIHRoZSBzdGFjayBwb2ludGVyLiBXZSBhbHNvCisgICAgICAgIHRlbXBvcmFyaWx5IGRp
c2FibGUgdGhlIEZUTCBzaW5jZSB0aGUgcmVnaXN0ZXIgcHJlc2VydmF0aW9uIHRodW5rCisgICAg
ICAgIGV4cGVjdHMgdGhlIHN0YWNrIHBvaW50ZXIgdG8gYmUgaW4gdGhlIGNvcnJlY3QgcGxhY2Ug
YmVmb3JlIHJldHVybmluZworICAgICAgICB0byB0aGUgY2FsbGVyLiBUaGUgRlRMIGNhbiBiZSBy
ZS1lbmFibGVkIG9uY2UKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTE0Njg1NCBpcyBmaXhlZC4KKworICAgICAgICAqIENNYWtlTGlzdHMudHh0OgorICAg
ICAgICAqIEphdmFTY3JpcHRDb3JlLnZjeHByb2ovSmF2YVNjcmlwdENvcmUudmN4cHJvajoKKyAg
ICAgICAgKiBKYXZhU2NyaXB0Q29yZS52Y3hwcm9qL0phdmFTY3JpcHRDb3JlLnZjeHByb2ouZmls
dGVyczoKKyAgICAgICAgKiBKYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
OgorICAgICAgICAqIGRmZy9ERkdKSVRDb21waWxlci5jcHA6CisgICAgICAgICogZnRsL0ZUTExp
bmsuY3BwOgorICAgICAgICAqIGppdC9Bcml0eUNoZWNrRmFpbFJldHVyblRodW5rcy5jcHA6IFJl
bW92ZWQuCisgICAgICAgICogaml0L0FyaXR5Q2hlY2tGYWlsUmV0dXJuVGh1bmtzLmg6IFJlbW92
ZWQuCisgICAgICAgICogaml0L0pJVC5jcHA6CisgICAgICAgICogaml0L1RodW5rR2VuZXJhdG9y
cy5jcHA6CisgICAgICAgICogbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjMyXzY0LmFzbToKKyAg
ICAgICAgKiBsbGludC9Mb3dMZXZlbEludGVycHJldGVyNjQuYXNtOgorICAgICAgICAqIHJ1bnRp
bWUvQ29tbW9uU2xvd1BhdGhzLmNwcDoKKyAgICAgICAgKEpTQzo6c2V0dXBBcml0eUNoZWNrRGF0
YSk6CisgICAgICAgICogcnVudGltZS9Db21tb25TbG93UGF0aHMuaDoKKyAgICAgICAgKiBydW50
aW1lL09wdGlvbnMuaDoKKyAgICAgICAgKiBydW50aW1lL1ZNLmNwcDoKKyAgICAgICAgKiBydW50
aW1lL1ZNLmg6CisKKzIwMTUtMDctMTMgIEJhc2lsZSBDbGVtZW50ICA8YmFzaWxlX2NsZW1lbnRA
YXBwbGUuY29tPgorCiAgICAgICAgIGpzYy10YWlsY2FsbDogQ2xlYW4gdXAgcmVnaXN0ZXIgbmFt
aW5nCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDY4
NDkKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0IGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0CmluZGV4IGFkMzUzYzQ1NTc5ZTY0
MzhiM2FlOWE0OTA0NjJmOGVhZmNiZTg3MjguLmFkOTcxYjA0NjZhOTA2MDRjNDYzODI5NmFlNTJk
MGI2NjFjNTk1ZWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DTWFrZUxpc3Rz
LnR4dAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ01ha2VMaXN0cy50eHQKQEAgLTM0MCw3
ICszNDAsNiBAQCBzZXQoSmF2YVNjcmlwdENvcmVfU09VUkNFUwogICAgIGludGVycHJldGVyL1N0
YWNrVmlzaXRvci5jcHAKIAogICAgIGppdC9BY2Nlc3NvckNhbGxKSVRTdHViUm91dGluZS5jcHAK
LSAgICBqaXQvQXJpdHlDaGVja0ZhaWxSZXR1cm5UaHVua3MuY3BwCiAgICAgaml0L0Fzc2VtYmx5
SGVscGVycy5jcHAKICAgICBqaXQvQmluYXJ5U3dpdGNoLmNwcAogICAgIGppdC9FeGVjdXRhYmxl
QWxsb2NhdGlvbkZ1enouY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2
YVNjcmlwdENvcmUudmN4cHJvai9KYXZhU2NyaXB0Q29yZS52Y3hwcm9qIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnZjeHByb2ovSmF2YVNjcmlwdENvcmUudmN4cHJvagpp
bmRleCBkMzcwYTQyNTBmODBmMDU0OTlhZmQ3YWM0ODVkMTllOTMwYzQ1OGQwLi5jZDEzZmIwMWM2
ZmRhMzQ1MThlYjQ0ODUzYTdkYmNmNjc1NDA4NzJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmN4cHJvai9KYXZhU2NyaXB0Q29yZS52Y3hwcm9qCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3hwcm9qL0phdmFTY3Jp
cHRDb3JlLnZjeHByb2oKQEAgLTYwNCw3ICs2MDQsNiBAQAogICAgIDxDbENvbXBpbGUgSW5jbHVk
ZT0iLi5caW50ZXJwcmV0ZXJcUHJvdG9DYWxsRnJhbWUuY3BwIiAvPgogICAgIDxDbENvbXBpbGUg
SW5jbHVkZT0iLi5caW50ZXJwcmV0ZXJcU3RhY2tWaXNpdG9yLmNwcCIgLz4KICAgICA8Q2xDb21w
aWxlIEluY2x1ZGU9Ii4uXGppdFxBY2Nlc3NvckNhbGxKSVRTdHViUm91dGluZS5jcHAiIC8+Ci0g
ICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxqaXRcQXJpdHlDaGVja0ZhaWxSZXR1cm5UaHVua3Mu
Y3BwIiAvPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5caml0XEFzc2VtYmx5SGVscGVycy5j
cHAiIC8+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxqaXRcQmluYXJ5U3dpdGNoLmNwcCIg
Lz4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGppdFxFeGVjdXRhYmxlQWxsb2NhdGlvbkZ1
enouY3BwIiAvPgpAQCAtMTM2Nyw3ICsxMzY2LDYgQEAKICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9
Ii4uXGludGVycHJldGVyXFJlZ2lzdGVyLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIu
LlxpbnRlcnByZXRlclxTdGFja1Zpc2l0b3IuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9
Ii4uXGppdFxBY2Nlc3NvckNhbGxKSVRTdHViUm91dGluZS5oIiAvPgotICAgIDxDbEluY2x1ZGUg
SW5jbHVkZT0iLi5caml0XEFyaXR5Q2hlY2tGYWlsUmV0dXJuVGh1bmtzLmgiIC8+CiAgICAgPENs
SW5jbHVkZSBJbmNsdWRlPSIuLlxqaXRcQXNzZW1ibHlIZWxwZXJzLmgiIC8+CiAgICAgPENsSW5j
bHVkZSBJbmNsdWRlPSIuLlxqaXRcQmluYXJ5U3dpdGNoLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJ
bmNsdWRlPSIuLlxqaXRcQ0NhbGxIZWxwZXJzLmgiIC8+CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmN4cHJvai9KYXZhU2NyaXB0Q29yZS52Y3hwcm9q
LmZpbHRlcnMgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmN4cHJvai9K
YXZhU2NyaXB0Q29yZS52Y3hwcm9qLmZpbHRlcnMKaW5kZXggYTY2YjgzMGQ0YWE1ODZiMGQzYzNi
ZmYwZWVkZmFiMTA5MDgxZjc4My4uY2EwOTY0ZWJkYmQzMmJjNDBmMThiZWM3MDUxYzlhYzNiZDk5
YjNkMCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnZj
eHByb2ovSmF2YVNjcmlwdENvcmUudmN4cHJvai5maWx0ZXJzCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3hwcm9qL0phdmFTY3JpcHRDb3JlLnZjeHByb2ouZmls
dGVycwpAQCAtMTQxMyw5ICsxNDEzLDYgQEAKICAgICA8Q2xDb21waWxlIEluY2x1ZGU9IiQoQ29u
ZmlndXJhdGlvbkJ1aWxkRGlyKVxvYmokKFBsYXRmb3JtQXJjaGl0ZWN0dXJlKVwkKFByb2plY3RO
YW1lKVxEZXJpdmVkU291cmNlc1xJbnNwZWN0b3JQcm90b2NvbE9iamVjdHMuY3BwIj4KICAgICAg
IDxGaWx0ZXI+RGVyaXZlZCBTb3VyY2VzPC9GaWx0ZXI+CiAgICAgPC9DbENvbXBpbGU+Ci0gICAg
PENsQ29tcGlsZSBJbmNsdWRlPSIuLlxqaXRcQXJpdHlDaGVja0ZhaWxSZXR1cm5UaHVua3MuY3Bw
Ij4KLSAgICAgIDxGaWx0ZXI+aml0PC9GaWx0ZXI+Ci0gICAgPC9DbENvbXBpbGU+CiAgICAgPENs
Q29tcGlsZSBJbmNsdWRlPSIuLlxqaXRcUmVnaXN0ZXJQcmVzZXJ2YXRpb25XcmFwcGVyR2VuZXJh
dG9yLmNwcCI+CiAgICAgICA8RmlsdGVyPmppdDwvRmlsdGVyPgogICAgIDwvQ2xDb21waWxlPgpA
QCAtMzg0Miw5ICszODM5LDYgQEAKICAgICAgIDxGaWx0ZXI+cnVudGltZTwvRmlsdGVyPgogICAg
IDwvQ2xJbmNsdWRlPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iJChDb25maWd1cmF0aW9uQnVp
bGREaXIpXG9iaiQoUGxhdGZvcm1BcmNoaXRlY3R1cmUpXCQoUHJvamVjdE5hbWUpXERlcml2ZWRT
b3VyY2VzXEpTRGF0YVZpZXdQcm90b3R5cGUubHV0LmgiIC8+Ci0gICAgPENsSW5jbHVkZSBJbmNs
dWRlPSIuLlxqaXRcQXJpdHlDaGVja0ZhaWxSZXR1cm5UaHVua3MuaCI+Ci0gICAgICA8RmlsdGVy
PmppdDwvRmlsdGVyPgotICAgIDwvQ2xJbmNsdWRlPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0i
Li5caml0XFJlZ2lzdGVyUHJlc2VydmF0aW9uV3JhcHBlckdlbmVyYXRvci5oIj4KICAgICAgIDxG
aWx0ZXI+aml0PC9GaWx0ZXI+CiAgICAgPC9DbEluY2x1ZGU+CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCmluZGV4IDA2ZTk5NzBjNTJjZTAxMmFjZjM4MDQzMjQzN2YyYzI2ZjUyODhhNzAuLjRj
N2RkNzAyYzM0ZmIzOGUxZDQ0NmYyYzgxZTMzOWUyMzhmN2VkNjcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCkBAIC0zODUsOCArMzg1LDYgQEAKIAkJMEY2QjFDQzQxODYyQzQ3ODAwODQ1
RDk3IC8qIEZUTFJlZ2lzdGVyQXRPZmZzZXQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDBGNkIxQ0MwMTg2MkM0NzgwMDg0NUQ5NyAvKiBGVExSZWdpc3Rl
ckF0T2Zmc2V0LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsg
fTsKIAkJMEY2QjFDQzUxODYyQzQ3ODAwODQ1RDk3IC8qIEZUTFVud2luZEluZm8uY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY2QjFDQzExODYyQzQ3
ODAwODQ1RDk3IC8qIEZUTFVud2luZEluZm8uY3BwICovOyB9OwogCQkwRjZCMUNDNjE4NjJDNDc4
MDA4NDVEOTcgLyogRlRMVW53aW5kSW5mby5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gMEY2QjFDQzIxODYyQzQ3ODAwODQ1RDk3IC8qIEZUTFVud2luZElu
Zm8uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwotCQkw
RjZCMUNDOTE4NjQxREY4MDA4NDVEOTcgLyogQXJpdHlDaGVja0ZhaWxSZXR1cm5UaHVua3MuY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY2QjFDQzcx
ODY0MURGODAwODQ1RDk3IC8qIEFyaXR5Q2hlY2tGYWlsUmV0dXJuVGh1bmtzLmNwcCAqLzsgfTsK
LQkJMEY2QjFDQ0ExODY0MURGODAwODQ1RDk3IC8qIEFyaXR5Q2hlY2tGYWlsUmV0dXJuVGh1bmtz
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjZCMUND
ODE4NjQxREY4MDA4NDVEOTcgLyogQXJpdHlDaGVja0ZhaWxSZXR1cm5UaHVua3MuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkwRjZDNzM1MDFBQzlG
OTlGMDBCRTE2ODIgLyogVmFyaWFibGVXcml0ZUZpcmVEZXRhaWwuY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY2QzczNEUxQUM5Rjk5RjAwQkUxNjgy
IC8qIFZhcmlhYmxlV3JpdGVGaXJlRGV0YWlsLmNwcCAqLzsgfTsKIAkJMEY2QzczNTExQUM5Rjk5
RjAwQkUxNjgyIC8qIFZhcmlhYmxlV3JpdGVGaXJlRGV0YWlsLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjZDNzM0RjFBQzlGOTlGMDBCRTE2ODIgLyog
VmFyaWFibGVXcml0ZUZpcmVEZXRhaWwuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9OyB9OwogCQkwRjZFODQ1QTE5MDMwQkVGMDA1NjI3NDEgLyogREZHVmFyaWFi
bGVBY2Nlc3NEYXRhLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDBGNkU4NDU5MTkwMzBCRUYwMDU2Mjc0MSAvKiBERkdWYXJpYWJsZUFjY2Vzc0RhdGEu
Y3BwICovOyB9OwpAQCAtMjEyNyw4ICsyMTI1LDYgQEAKIAkJMEY2QjFDQzAxODYyQzQ3ODAwODQ1
RDk3IC8qIEZUTFJlZ2lzdGVyQXRPZmZzZXQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBu
YW1lID0gRlRMUmVnaXN0ZXJBdE9mZnNldC5oOyBwYXRoID0gZnRsL0ZUTFJlZ2lzdGVyQXRPZmZz
ZXQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEY2QjFDQzExODYyQzQ3ODAwODQ1
RDk3IC8qIEZUTFVud2luZEluZm8uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBu
YW1lID0gRlRMVW53aW5kSW5mby5jcHA7IHBhdGggPSBmdGwvRlRMVW53aW5kSW5mby5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGNkIxQ0MyMTg2MkM0NzgwMDg0NUQ5NyAvKiBG
VExVbndpbmRJbmZvLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IEZUTFVud2lu
ZEluZm8uaDsgcGF0aCA9IGZ0bC9GVExVbndpbmRJbmZvLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07Ci0JCTBGNkIxQ0M3MTg2NDFERjgwMDg0NUQ5NyAvKiBBcml0eUNoZWNrRmFpbFJldHVy
blRodW5rcy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBBcml0eUNo
ZWNrRmFpbFJldHVyblRodW5rcy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTBG
NkIxQ0M4MTg2NDFERjgwMDg0NUQ5NyAvKiBBcml0eUNoZWNrRmFpbFJldHVyblRodW5rcy5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBBcml0eUNoZWNrRmFpbFJldHVyblRodW5r
cy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRjZDNzM0RTFBQzlGOTlGMDBCRTE2
ODIgLyogVmFyaWFibGVXcml0ZUZpcmVEZXRhaWwuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gVmFyaWFibGVXcml0ZUZpcmVEZXRhaWwuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQkwRjZDNzM0RjFBQzlGOTlGMDBCRTE2ODIgLyogVmFyaWFibGVXcml0
ZUZpcmVEZXRhaWwuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVmFyaWFibGVX
cml0ZUZpcmVEZXRhaWwuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEY2RTg0NTkx
OTAzMEJFRjAwNTYyNzQxIC8qIERGR1ZhcmlhYmxlQWNjZXNzRGF0YS5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBERkdWYXJpYWJsZUFjY2Vzc0RhdGEuY3BwOyBwYXRo
ID0gZGZnL0RGR1ZhcmlhYmxlQWNjZXNzRGF0YS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CkBAIC0zOTA1LDggKzM5MDEsNiBAQAogCQkJCTBGRjA1NEY4MUFDMzVCNDQwMEU1QkU1NyAv
KiBFeGVjdXRhYmxlQWxsb2NhdGlvbkZ1enouaCAqLywKIAkJCQkwRjc1NzZEMDE4RTFGRUU5MDAy
RUY0Q0QgLyogQWNjZXNzb3JDYWxsSklUU3R1YlJvdXRpbmUuY3BwICovLAogCQkJCTBGNzU3NkQx
MThFMUZFRTkwMDJFRjRDRCAvKiBBY2Nlc3NvckNhbGxKSVRTdHViUm91dGluZS5oICovLAotCQkJ
CTBGNkIxQ0M3MTg2NDFERjgwMDg0NUQ5NyAvKiBBcml0eUNoZWNrRmFpbFJldHVyblRodW5rcy5j
cHAgKi8sCi0JCQkJMEY2QjFDQzgxODY0MURGODAwODQ1RDk3IC8qIEFyaXR5Q2hlY2tGYWlsUmV0
dXJuVGh1bmtzLmggKi8sCiAJCQkJMEYyNEU1M0IxN0VBOUY1OTAwQUJCMjE3IC8qIEFzc2VtYmx5
SGVscGVycy5jcHAgKi8sCiAJCQkJMEYyNEU1M0MxN0VBOUY1OTAwQUJCMjE3IC8qIEFzc2VtYmx5
SGVscGVycy5oICovLAogCQkJCTBGNjRCMjZGMUE3ODRCQUYwMDZFNEU2NiAvKiBCaW5hcnlTd2l0
Y2guY3BwICovLApAQCAtNTYxMiw3ICs1NjA2LDYgQEAKIAkJCQlCQzE4QzNFNTBFMTZGNUNEMDBC
MzQ0NjAgLyogQVBJQ2FzdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkNGNjA1MTQwRTIwM0VGODAw
QjlBNjREIC8qIEFyZ0xpc3QuaCBpbiBIZWFkZXJzICovLAogCQkJCTJBODgwNjc5MTkxMDdENTUw
MENCMEJCQiAvKiBERkdGdW5jdGlvbldoaXRlbGlzdC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEY2
QjFDQ0ExODY0MURGODAwODQ1RDk3IC8qIEFyaXR5Q2hlY2tGYWlsUmV0dXJuVGh1bmtzLmggaW4g
SGVhZGVycyAqLywKIAkJCQkwRjZCMUNCOTE4NjEyNDRDMDA4NDVEOTcgLyogQXJpdHlDaGVja01v
ZGUuaCBpbiBIZWFkZXJzICovLAogCQkJCUExQTAwOUMxMTgzMUEyNkUwMENGODcxMSAvKiBBUk02
NEFzc2VtYmxlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEY4OThGMzIxQjI3Njg5RjAwODNBMzND
IC8qIERGR0ludGVnZXJSYW5nZU9wdGltaXphdGlvblBoYXNlLmggaW4gSGVhZGVycyAqLywKQEAg
LTcwMTMsNyArNzAwNiw2IEBACiAJCQkJMEZFMDUwMTUxQUE5MDkxMTAwRDMzQjMzIC8qIERpcmVj
dEFyZ3VtZW50c09mZnNldC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRjU1RjBGNDE0RDEwNjM5
MDBBQzc2NDkgLyogQWJzdHJhY3RQQy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxNDdGMzlCRDEw
N0VDMzc2MDA0MjdBNDggLyogQXJnTGlzdC5jcHAgaW4gU291cmNlcyAqLywKLQkJCQkwRjZCMUND
OTE4NjQxREY4MDA4NDVEOTcgLyogQXJpdHlDaGVja0ZhaWxSZXR1cm5UaHVua3MuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJMEY3NDNCQUExNkI4ODI0OTAwOUY5Mjc3IC8qIEFSTTY0RGlzYXNzZW1i
bGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTg2RDNCMkMzMTAxNTZCREUwMDI4NjVFNyAvKiBB
Uk1Bc3NlbWJsZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNjVDMDI4NTAxNzE3OTVFMjAwMzUx
RTM1IC8qIEFSTXY3RGlzYXNzZW1ibGVyLmNwcCBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdKSVRDb21waWxlci5jcHAgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR0pJVENvbXBpbGVyLmNwcAppbmRleCA2N2I5NjRhMjFmOGE0ZGY2
MTJmNWQ5NzBhNjNhYTEwMjllYmM2NDFmLi40NTQ2OGZhYmM2Y2I5OGNjMDE5OTA5ODI0ZDJiNGVi
NDFlYWRiOTExIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0pJVENv
bXBpbGVyLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0pJVENvbXBpbGVy
LmNwcApAQCAtMjgsNyArMjgsNiBAQAogCiAjaWYgRU5BQkxFKERGR19KSVQpCiAKLSNpbmNsdWRl
ICJBcml0eUNoZWNrRmFpbFJldHVyblRodW5rcy5oIgogI2luY2x1ZGUgIkNvZGVCbG9jay5oIgog
I2luY2x1ZGUgIkRGR0ZhaWxlZEZpbmFsaXplci5oIgogI2luY2x1ZGUgIkRGR0lubGluZUNhY2hl
V3JhcHBlcklubGluZXMuaCIKQEAgLTQwMCwxMSArMzk5LDYgQEAgdm9pZCBKSVRDb21waWxlcjo6
Y29tcGlsZUZ1bmN0aW9uKCkKICAgICAgICAgYWRkUHRyKFRydXN0ZWRJbW0zMihtYXhGcmFtZUV4
dGVudEZvclNsb3dQYXRoQ2FsbCksIHN0YWNrUG9pbnRlclJlZ2lzdGVyKTsKICAgICBicmFuY2hU
ZXN0MzIoWmVybywgR1BSSW5mbzo6cmV0dXJuVmFsdWVHUFIpLmxpbmtUbyhmcm9tQXJpdHlDaGVj
aywgdGhpcyk7CiAgICAgZW1pdFN0b3JlQ29kZU9yaWdpbihDb2RlT3JpZ2luKDApKTsKLSAgICBH
UFJSZWcgdGh1bmtSZWcgPSBHUFJJbmZvOjphcmd1bWVudEdQUjE7Ci0gICAgQ29kZUxvY2F0aW9u
TGFiZWwqIGFyaXR5VGh1bmtMYWJlbHMgPQotICAgICAgICBtX3ZtLT5hcml0eUNoZWNrRmFpbFJl
dHVyblRodW5rcy0+cmV0dXJuUENzRm9yKCptX3ZtLCBtX2NvZGVCbG9jay0+bnVtUGFyYW1ldGVy
cygpKTsKLSAgICBtb3ZlKFRydXN0ZWRJbW1QdHIoYXJpdHlUaHVua0xhYmVscyksIHRodW5rUmVn
KTsKLSAgICBsb2FkUHRyKEJhc2VJbmRleCh0aHVua1JlZywgR1BSSW5mbzo6cmV0dXJuVmFsdWVH
UFIsIHRpbWVzUHRyKCkpLCB0aHVua1JlZyk7CiAgICAgaWYgKEdQUkluZm86OnJldHVyblZhbHVl
R1BSICE9IEdQUkluZm86OmFyZ3VtZW50R1BSMCkKICAgICAgICAgbW92ZShHUFJJbmZvOjpyZXR1
cm5WYWx1ZUdQUiwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKTsKICAgICBtX2NhbGxBcml0eUZpeHVw
ID0gY2FsbCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExMaW5r
LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMTGluay5jcHAKaW5kZXggOTI5ZjUw
ZmQ5MzE4M2IyNDcxOTkwMGZmZjI4MDgyZTI1YjU3YmZiOC4uODE5M2E1OTZiYTgwMzQwZDkxOTM2
ZTY4ZmE1YzJiMmNjYjY5NDI4MiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0
bC9GVExMaW5rLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExpbmsuY3Bw
CkBAIC0yOCw3ICsyOCw2IEBACiAKICNpZiBFTkFCTEUoRlRMX0pJVCkKIAotI2luY2x1ZGUgIkFy
aXR5Q2hlY2tGYWlsUmV0dXJuVGh1bmtzLmgiCiAjaW5jbHVkZSAiQ0NhbGxIZWxwZXJzLmgiCiAj
aW5jbHVkZSAiQ29kZUJsb2NrV2l0aEpJVFR5cGUuaCIKICNpbmNsdWRlICJERkdDb21tb24uaCIK
QEAgLTE2OSwxMCArMTY4LDYgQEAgdm9pZCBsaW5rKFN0YXRlJiBzdGF0ZSkKICAgICAgICAgaml0
LmVtaXRGdW5jdGlvbkVwaWxvZ3VlKCk7CiAgICAgICAgIG1haW5QYXRoSnVtcHMuYXBwZW5kKGpp
dC5icmFuY2hUZXN0MzIoQ0NhbGxIZWxwZXJzOjpaZXJvLCBHUFJJbmZvOjphcmd1bWVudEdQUjAp
KTsKICAgICAgICAgaml0LmVtaXRGdW5jdGlvblByb2xvZ3VlKCk7Ci0gICAgICAgIENvZGVMb2Nh
dGlvbkxhYmVsKiBhcml0eVRodW5rTGFiZWxzID0KLSAgICAgICAgICAgIHZtLmFyaXR5Q2hlY2tG
YWlsUmV0dXJuVGh1bmtzLT5yZXR1cm5QQ3NGb3Iodm0sIGNvZGVCbG9jay0+bnVtUGFyYW1ldGVy
cygpKTsKLSAgICAgICAgaml0Lm1vdmUoQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tUHRyKGFyaXR5
VGh1bmtMYWJlbHMpLCBHUFJJbmZvOjphcmd1bWVudEdQUjEpOwotICAgICAgICBqaXQubG9hZFB0
cihDQ2FsbEhlbHBlcnM6OkJhc2VJbmRleChHUFJJbmZvOjphcmd1bWVudEdQUjEsIEdQUkluZm86
OmFyZ3VtZW50R1BSMCwgQ0NhbGxIZWxwZXJzOjp0aW1lc1B0cigpKSwgR1BSSW5mbzo6YXJndW1l
bnRHUFIxKTsKICAgICAgICAgQ0NhbGxIZWxwZXJzOjpDYWxsIGNhbGxBcml0eUZpeHVwID0gaml0
LmNhbGwoKTsKICAgICAgICAgaml0LmVtaXRGdW5jdGlvbkVwaWxvZ3VlKCk7CiAgICAgICAgIG1h
aW5QYXRoSnVtcHMuYXBwZW5kKGppdC5qdW1wKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2ppdC9Bcml0eUNoZWNrRmFpbFJldHVyblRodW5rcy5jcHAgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvaml0L0FyaXR5Q2hlY2tGYWlsUmV0dXJuVGh1bmtzLmNwcApkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggZDUyMmI4MTI1YTQ2ZDc3Njg3ZjAzNjViMTA2MDhjYzJjMzVi
MTA5ZS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaml0L0FyaXR5Q2hlY2tGYWlsUmV0dXJuVGh1bmtzLmNwcAorKysg
L2Rldi9udWxsCkBAIC0xLDEzNSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEzIEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
VEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1Ig
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAq
IFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuIAotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJBcml0eUNo
ZWNrRmFpbFJldHVyblRodW5rcy5oIgotCi0jaWYgRU5BQkxFKEpJVCkKLQotI2luY2x1ZGUgIkFz
c2VtYmx5SGVscGVycy5oIgotI2luY2x1ZGUgIkxpbmtCdWZmZXIuaCIKLSNpbmNsdWRlICJKU0NJ
bmxpbmVzLmgiCi0jaW5jbHVkZSAiU3RhY2tBbGlnbm1lbnQuaCIKLQotbmFtZXNwYWNlIEpTQyB7
Ci0KLUFyaXR5Q2hlY2tGYWlsUmV0dXJuVGh1bmtzOjpBcml0eUNoZWNrRmFpbFJldHVyblRodW5r
cygpCi0gICAgOiBtX25leHRTaXplKDApCi17Ci19Ci0KLUFyaXR5Q2hlY2tGYWlsUmV0dXJuVGh1
bmtzOjp+QXJpdHlDaGVja0ZhaWxSZXR1cm5UaHVua3MoKSB7IH0KLQotQ29kZUxvY2F0aW9uTGFi
ZWwqIEFyaXR5Q2hlY2tGYWlsUmV0dXJuVGh1bmtzOjpyZXR1cm5QQ3NGb3IoCi0gICAgVk0mIHZt
LCB1bnNpZ25lZCBudW1FeHBlY3RlZEFyZ3VtZW50c0luY2x1ZGluZ1RoaXMpCi17Ci0gICAgQVNT
RVJUKG51bUV4cGVjdGVkQXJndW1lbnRzSW5jbHVkaW5nVGhpcyA+PSAxKTsKLSAgICAKLSAgICBu
dW1FeHBlY3RlZEFyZ3VtZW50c0luY2x1ZGluZ1RoaXMgPSBXVEY6OnJvdW5kVXBUb011bHRpcGxl
T2YoCi0gICAgICAgIHN0YWNrQWxpZ25tZW50UmVnaXN0ZXJzKCksIG51bUV4cGVjdGVkQXJndW1l
bnRzSW5jbHVkaW5nVGhpcyk7Ci0gICAgCi0gICAgewotICAgICAgICBDb25jdXJyZW50SklUTG9j
a2VyIGxvY2tlcihtX2xvY2spOwotICAgICAgICBpZiAobnVtRXhwZWN0ZWRBcmd1bWVudHNJbmNs
dWRpbmdUaGlzIDwgbV9uZXh0U2l6ZSkKLSAgICAgICAgICAgIHJldHVybiBtX3JldHVyblBDQXJy
YXlzLmxhc3QoKS5nZXQoKTsKLSAgICB9Ci0gICAgCi0gICAgQVNTRVJUKCFpc0NvbXBpbGF0aW9u
VGhyZWFkKCkpOwotICAgIAotICAgIG51bUV4cGVjdGVkQXJndW1lbnRzSW5jbHVkaW5nVGhpcyA9
IHN0ZDo6bWF4KG51bUV4cGVjdGVkQXJndW1lbnRzSW5jbHVkaW5nVGhpcywgbV9uZXh0U2l6ZSAq
IDIpOwotICAgIAotICAgIEFzc2VtYmx5SGVscGVycyBqaXQoJnZtLCAwKTsKLSAgICAKLSAgICBW
ZWN0b3I8QXNzZW1ibHlIZWxwZXJzOjpMYWJlbD4gbGFiZWxzOwotICAgIAotICAgIGZvciAodW5z
aWduZWQgc2l6ZSA9IG1fbmV4dFNpemU7IHNpemUgPD0gbnVtRXhwZWN0ZWRBcmd1bWVudHNJbmNs
dWRpbmdUaGlzOyBzaXplICs9IHN0YWNrQWxpZ25tZW50UmVnaXN0ZXJzKCkpIHsKLSAgICAgICAg
bGFiZWxzLmFwcGVuZChqaXQubGFiZWwoKSk7Ci0gICAgICAgIAotICAgICAgICBqaXQubG9hZDMy
KAotICAgICAgICAgICAgQXNzZW1ibHlIZWxwZXJzOjpBZGRyZXNzKAotICAgICAgICAgICAgICAg
IEFzc2VtYmx5SGVscGVyczo6c3RhY2tQb2ludGVyUmVnaXN0ZXIsCi0gICAgICAgICAgICAgICAg
KEpTU3RhY2s6OkFyZ3VtZW50Q291bnQgLSBKU1N0YWNrOjpDYWxsZXJGcmFtZUFuZFBDU2l6ZSkg
KiBzaXplb2YoUmVnaXN0ZXIpICsKLSAgICAgICAgICAgICAgICBQYXlsb2FkT2Zmc2V0KSwKLSAg
ICAgICAgICAgIEdQUkluZm86OnJlZ1Q0KTsKLSAgICAgICAgaml0LmFkZDMyKAotICAgICAgICAg
ICAgQXNzZW1ibHlIZWxwZXJzOjpUcnVzdGVkSW1tMzIoCi0gICAgICAgICAgICAgICAgSlNTdGFj
azo6Q2FsbEZyYW1lSGVhZGVyU2l6ZSAtIEpTU3RhY2s6OkNhbGxlckZyYW1lQW5kUENTaXplICsg
c2l6ZSAtIDEpLAotICAgICAgICAgICAgR1BSSW5mbzo6cmVnVDQsIEdQUkluZm86OnJlZ1QyKTsK
LSAgICAgICAgaml0LmxzaGlmdDMyKEFzc2VtYmx5SGVscGVyczo6VHJ1c3RlZEltbTMyKDMpLCBH
UFJJbmZvOjpyZWdUMik7Ci0gICAgICAgIGppdC5hZGRQdHIoQXNzZW1ibHlIZWxwZXJzOjpzdGFj
a1BvaW50ZXJSZWdpc3RlciwgR1BSSW5mbzo6cmVnVDIpOwotICAgICAgICBqaXQubG9hZFB0cihH
UFJJbmZvOjpyZWdUMiwgR1BSSW5mbzo6cmVnVDIpOwotICAgICAgICAKLSAgICAgICAgaml0LmFk
ZFB0cigKLSAgICAgICAgICAgIEFzc2VtYmx5SGVscGVyczo6VHJ1c3RlZEltbTMyKHNpemUgKiBz
aXplb2YoUmVnaXN0ZXIpKSwKLSAgICAgICAgICAgIEFzc2VtYmx5SGVscGVyczo6c3RhY2tQb2lu
dGVyUmVnaXN0ZXIpOwotICAgICAgICAKLSAgICAgICAgLy8gVGh1bmtzIGxpa2Ugb3VycyB3YW50
IHRvIHVzZSB0aGUgcmV0dXJuIFBDIHRvIGZpZ3VyZSBvdXQgd2hlcmUgdGhpbmdzCi0gICAgICAg
IC8vIHdlcmUgc2F2ZWQuIFNvLCB3ZSBwYXkgaXQgZm9yd2FyZC4KLSAgICAgICAgaml0LnN0b3Jl
MzIoCi0gICAgICAgICAgICBHUFJJbmZvOjpyZWdUNCwKLSAgICAgICAgICAgIEFzc2VtYmx5SGVs
cGVyczo6QWRkcmVzcygKLSAgICAgICAgICAgICAgICBBc3NlbWJseUhlbHBlcnM6OnN0YWNrUG9p
bnRlclJlZ2lzdGVyLAotICAgICAgICAgICAgICAgIChKU1N0YWNrOjpBcmd1bWVudENvdW50IC0g
SlNTdGFjazo6Q2FsbGVyRnJhbWVBbmRQQ1NpemUpICogc2l6ZW9mKFJlZ2lzdGVyKSArCi0gICAg
ICAgICAgICAgICAgUGF5bG9hZE9mZnNldCkpOwotICAgICAgICAKLSAgICAgICAgaml0Lmp1bXAo
R1BSSW5mbzo6cmVnVDIpOwotICAgIH0KLSAgICAKLSAgICAvLyBTYWRseSwgd2UgY2Fubm90IGZh
aWwgaGVyZSBiZWNhdXNlIHRoZSBMTEludCBtYXkgbmVlZCB1cy4KLSAgICBMaW5rQnVmZmVyIGxp
bmtCdWZmZXIodm0sIGppdCwgR0xPQkFMX1RIVU5LX0lELCBKSVRDb21waWxhdGlvbk11c3RTdWNj
ZWVkKTsKLSAgICAKLSAgICB1bnNpZ25lZCByZXR1cm5QQ3NTaXplID0gbnVtRXhwZWN0ZWRBcmd1
bWVudHNJbmNsdWRpbmdUaGlzIC8gc3RhY2tBbGlnbm1lbnRSZWdpc3RlcnMoKSArIDE7Ci0gICAg
c3RkOjp1bmlxdWVfcHRyPENvZGVMb2NhdGlvbkxhYmVsW10+IHJldHVyblBDcyA9Ci0gICAgICAg
IHN0ZDo6bWFrZV91bmlxdWU8Q29kZUxvY2F0aW9uTGFiZWxbXT4ocmV0dXJuUENzU2l6ZSk7Ci0g
ICAgZm9yICh1bnNpZ25lZCBzaXplID0gMDsgc2l6ZSA8PSBudW1FeHBlY3RlZEFyZ3VtZW50c0lu
Y2x1ZGluZ1RoaXM7IHNpemUgKz0gc3RhY2tBbGlnbm1lbnRSZWdpc3RlcnMoKSkgewotICAgICAg
ICB1bnNpZ25lZCBpbmRleCA9IHNpemUgLyBzdGFja0FsaWdubWVudFJlZ2lzdGVycygpOwotICAg
ICAgICBSRUxFQVNFX0FTU0VSVChpbmRleCA8IHJldHVyblBDc1NpemUpOwotICAgICAgICBpZiAo
c2l6ZSA8IG1fbmV4dFNpemUpCi0gICAgICAgICAgICByZXR1cm5QQ3NbaW5kZXhdID0gbV9yZXR1
cm5QQ0FycmF5cy5sYXN0KClbaW5kZXhdOwotICAgICAgICBlbHNlCi0gICAgICAgICAgICByZXR1
cm5QQ3NbaW5kZXhdID0gbGlua0J1ZmZlci5sb2NhdGlvbk9mKGxhYmVsc1soc2l6ZSAtIG1fbmV4
dFNpemUpIC8gc3RhY2tBbGlnbm1lbnRSZWdpc3RlcnMoKV0pOwotICAgIH0KLQotICAgIENvZGVM
b2NhdGlvbkxhYmVsKiByZXN1bHQgPSByZXR1cm5QQ3MuZ2V0KCk7Ci0KLSAgICB7Ci0gICAgICAg
IENvbmN1cnJlbnRKSVRMb2NrZXIgbG9ja2VyKG1fbG9jayk7Ci0gICAgICAgIG1fcmV0dXJuUENB
cnJheXMuYXBwZW5kKFdURjo6bW92ZShyZXR1cm5QQ3MpKTsKLSAgICAgICAgbV9yZWZzLmFwcGVu
ZChGSU5BTElaRV9DT0RFKGxpbmtCdWZmZXIsICgiQXJpdHkgY2hlY2sgZmFpbCByZXR1cm4gdGh1
bmtzIGZvciB1cCB0byBudW1BcmdzID0gJXUiLCBudW1FeHBlY3RlZEFyZ3VtZW50c0luY2x1ZGlu
Z1RoaXMpKSk7Ci0gICAgICAgIG1fbmV4dFNpemUgPSBudW1FeHBlY3RlZEFyZ3VtZW50c0luY2x1
ZGluZ1RoaXMgKyBzdGFja0FsaWdubWVudFJlZ2lzdGVycygpOwotICAgIH0KLSAgICAKLSAgICBy
ZXR1cm4gcmVzdWx0OwotfQotCi1Db2RlTG9jYXRpb25MYWJlbCBBcml0eUNoZWNrRmFpbFJldHVy
blRodW5rczo6cmV0dXJuUENGb3IoVk0mIHZtLCB1bnNpZ25lZCBzbG90c1RvQWRkKQotewotICAg
IHJldHVybiByZXR1cm5QQ3NGb3Iodm0sIHNsb3RzVG9BZGQpW3Nsb3RzVG9BZGQgLyBzdGFja0Fs
aWdubWVudFJlZ2lzdGVycygpXTsKLX0KLQotfSAvLyBuYW1lc3BhY2UgSlNDCi0KLSNlbmRpZiAv
LyBFTkFCTEUoSklUKQotCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0Fy
aXR5Q2hlY2tGYWlsUmV0dXJuVGh1bmtzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0Fy
aXR5Q2hlY2tGYWlsUmV0dXJuVGh1bmtzLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IGIyZDAzNDEzOTFjYzQyNTQ3ZWEwNjFjNGI5MTA0Njc3NDU3NDQ2ZjAuLjAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2pp
dC9Bcml0eUNoZWNrRmFpbFJldHVyblRodW5rcy5oCisrKyAvZGV2L251bGwKQEAgLTEsNTkgKzAs
MCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgot
ICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7
IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKLSAqLwotCi0jaWZu
ZGVmIEFyaXR5Q2hlY2tGYWlsUmV0dXJuVGh1bmtzX2gKLSNkZWZpbmUgQXJpdHlDaGVja0ZhaWxS
ZXR1cm5UaHVua3NfaAotCi0jaWYgRU5BQkxFKEpJVCkKLQotI2luY2x1ZGUgIkNvZGVMb2NhdGlv
bi5oIgotI2luY2x1ZGUgIkNvbmN1cnJlbnRKSVRMb2NrLmgiCi0jaW5jbHVkZSA8d3RmL0hhc2hN
YXAuaD4KLQotbmFtZXNwYWNlIEpTQyB7Ci0KLWNsYXNzIEFyaXR5Q2hlY2tGYWlsUmV0dXJuVGh1
bmtzIHsKLXB1YmxpYzoKLSAgICBBcml0eUNoZWNrRmFpbFJldHVyblRodW5rcygpOwotICAgIH5B
cml0eUNoZWNrRmFpbFJldHVyblRodW5rcygpOwotICAgIAotICAgIC8vIFJldHVybnMgYSBwb2lu
dGVyIHRvIGFuIGFycmF5IG9mIHJldHVybiBsYWJlbHMgaW5kZXhlZCBieSBtaXNzaW5nQXJncy4K
LSAgICBDb2RlTG9jYXRpb25MYWJlbCogcmV0dXJuUENzRm9yKFZNJiwgdW5zaWduZWQgbnVtRXhw
ZWN0ZWRBcmd1bWVudHNJbmNsdWRpbmdUaGlzKTsKLSAgICAKLSAgICBDb2RlTG9jYXRpb25MYWJl
bCByZXR1cm5QQ0ZvcihWTSYsIHVuc2lnbmVkIHNsb3RzVG9BZGQpOwotICAgIAotcHJpdmF0ZToK
LSAgICBWZWN0b3I8c3RkOjp1bmlxdWVfcHRyPENvZGVMb2NhdGlvbkxhYmVsW10+PiBtX3JldHVy
blBDQXJyYXlzOwotICAgIHVuc2lnbmVkIG1fbmV4dFNpemU7Ci0gICAgVmVjdG9yPE1hY3JvQXNz
ZW1ibGVyQ29kZVJlZj4gbV9yZWZzOwotICAgIENvbmN1cnJlbnRKSVRMb2NrIG1fbG9jazsKLX07
Ci0KLX0gLy8gbmFtZXNwYWNlIEpTQwotCi0jZW5kaWYgLy8gRU5BQkxFKEpJVCkKLQotI2VuZGlm
IC8vIEFyaXR5Q2hlY2tGYWlsUmV0dXJuVGh1bmtzX2gKLQpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2ppdC9KSVQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVQu
Y3BwCmluZGV4IDQzMDQ4OTAzMGNmMzE0MTlhOTVjMGU4NjRkYmI0ZDM3YTI0MTA0ZTEuLjQzN2Rm
OWUxYTNmODViNjk4ZGI3ZGVjNGMyZWQyYzdlODkzNzk1NmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9qaXQvSklULmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0
L0pJVC5jcHAKQEAgLTI5LDcgKzI5LDYgQEAKIAogI2luY2x1ZGUgIkpJVC5oIgogCi0jaW5jbHVk
ZSAiQXJpdHlDaGVja0ZhaWxSZXR1cm5UaHVua3MuaCIKICNpbmNsdWRlICJDb2RlQmxvY2suaCIK
ICNpbmNsdWRlICJDb2RlQmxvY2tXaXRoSklUVHlwZS5oIgogI2luY2x1ZGUgIkRGR0NhcGFiaWxp
dGllcy5oIgpAQCAtNTg2LDExICs1ODUsNiBAQCBDb21waWxhdGlvblJlc3VsdCBKSVQ6OnByaXZh
dGVDb21waWxlKEpJVENvbXBpbGF0aW9uRWZmb3J0IGVmZm9ydCkKICAgICAgICAgaWYgKG1heEZy
YW1lRXh0ZW50Rm9yU2xvd1BhdGhDYWxsKQogICAgICAgICAgICAgYWRkUHRyKFRydXN0ZWRJbW0z
MihtYXhGcmFtZUV4dGVudEZvclNsb3dQYXRoQ2FsbCksIHN0YWNrUG9pbnRlclJlZ2lzdGVyKTsK
ICAgICAgICAgYnJhbmNoVGVzdDMyKFplcm8sIHJldHVyblZhbHVlR1BSKS5saW5rVG8oYmVnaW5M
YWJlbCwgdGhpcyk7Ci0gICAgICAgIEdQUlJlZyB0aHVua1JlZyA9IEdQUkluZm86OmFyZ3VtZW50
R1BSMTsKLSAgICAgICAgQ29kZUxvY2F0aW9uTGFiZWwqIGZhaWxUaHVua0xhYmVscyA9Ci0gICAg
ICAgICAgICBtX3ZtLT5hcml0eUNoZWNrRmFpbFJldHVyblRodW5rcy0+cmV0dXJuUENzRm9yKCpt
X3ZtLCBtX2NvZGVCbG9jay0+bnVtUGFyYW1ldGVycygpKTsKLSAgICAgICAgbW92ZShUcnVzdGVk
SW1tUHRyKGZhaWxUaHVua0xhYmVscyksIHRodW5rUmVnKTsKLSAgICAgICAgbG9hZFB0cihCYXNl
SW5kZXgodGh1bmtSZWcsIHJldHVyblZhbHVlR1BSLCB0aW1lc1B0cigpKSwgdGh1bmtSZWcpOwog
ICAgICAgICBpZiAocmV0dXJuVmFsdWVHUFIgIT0gR1BSSW5mbzo6YXJndW1lbnRHUFIwKQogICAg
ICAgICAgICAgbW92ZShyZXR1cm5WYWx1ZUdQUiwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKTsKICAg
ICAgICAgZW1pdE5ha2VkQ2FsbChtX3ZtLT5nZXRDVElTdHViKGFyaXR5Rml4dXBHZW5lcmF0b3Ip
LmNvZGUoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1RodW5rR2Vu
ZXJhdG9ycy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1RodW5rR2VuZXJhdG9ycy5j
cHAKaW5kZXggNmI3M2UyZmNhZmZkOTk0MzQ4NTJiZDNhNTg2NGRlZGFkMDNhODRjMS4uNmU1NGQ0
NGZkZDJmODFiNmNmN2Y5MjkwM2UxMDRkZjA1NDUyZjBhZSAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2ppdC9UaHVua0dlbmVyYXRvcnMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9qaXQvVGh1bmtHZW5lcmF0b3JzLmNwcApAQCAtNDM4LDEzICs0MzgsNiBAQCBNYWNy
b0Fzc2VtYmxlckNvZGVSZWYgYXJpdHlGaXh1cEdlbmVyYXRvcihWTSogdm0pCiAgICAgaml0LmFk
ZFB0cihKU0ludGVyZmFjZUpJVDo6cmVnVDUsIEpTSW50ZXJmYWNlSklUOjpjYWxsRnJhbWVSZWdp
c3Rlcik7CiAgICAgaml0LmFkZFB0cihKU0ludGVyZmFjZUpJVDo6cmVnVDUsIEpTSW50ZXJmYWNl
SklUOjpzdGFja1BvaW50ZXJSZWdpc3Rlcik7CiAKLSAgICAvLyBTYXZlIHRoZSBvcmlnaW5hbCBy
ZXR1cm4gUEMuCi0gICAgaml0LmxvYWRQdHIoSlNJbnRlcmZhY2VKSVQ6OkFkZHJlc3MoSlNJbnRl
cmZhY2VKSVQ6OmNhbGxGcmFtZVJlZ2lzdGVyLCBDYWxsRnJhbWU6OnJldHVyblBDT2Zmc2V0KCkp
LCBHUFJJbmZvOjpyZWdUNSk7Ci0gICAgaml0LnN0b3JlUHRyKEdQUkluZm86OnJlZ1Q1LCBNYWNy
b0Fzc2VtYmxlcjo6QmFzZUluZGV4KEpTSW50ZXJmYWNlSklUOjpyZWdUMywgSlNJbnRlcmZhY2VK
SVQ6OmFyZ3VtZW50R1BSMCwgSlNJbnRlcmZhY2VKSVQ6OlRpbWVzRWlnaHQpKTsKLSAgICAKLSAg
ICAvLyBJbnN0YWxsIHRoZSBuZXcgcmV0dXJuIFBDLgotICAgIGppdC5zdG9yZVB0cihHUFJJbmZv
Ojphcmd1bWVudEdQUjEsIEpTSW50ZXJmYWNlSklUOjpBZGRyZXNzKEpTSW50ZXJmYWNlSklUOjpj
YWxsRnJhbWVSZWdpc3RlciwgQ2FsbEZyYW1lOjpyZXR1cm5QQ09mZnNldCgpKSk7Ci0KICMgIGlm
IENQVShYODZfNjQpCiAgICAgaml0LnB1c2goSlNJbnRlcmZhY2VKSVQ6OnJlZ1Q0KTsKICMgIGVu
ZGlmCkBAIC00ODYsMTMgKzQ3OSw2IEBAIE1hY3JvQXNzZW1ibGVyQ29kZVJlZiBhcml0eUZpeHVw
R2VuZXJhdG9yKFZNKiB2bSkKICAgICBqaXQuYWRkUHRyKEpTSW50ZXJmYWNlSklUOjpyZWdUNSwg
SlNJbnRlcmZhY2VKSVQ6OmNhbGxGcmFtZVJlZ2lzdGVyKTsKICAgICBqaXQuYWRkUHRyKEpTSW50
ZXJmYWNlSklUOjpyZWdUNSwgSlNJbnRlcmZhY2VKSVQ6OnN0YWNrUG9pbnRlclJlZ2lzdGVyKTsK
IAotICAgIC8vIFNhdmUgdGhlIG9yaWdpbmFsIHJldHVybiBQQy4KLSAgICBqaXQubG9hZFB0cihK
U0ludGVyZmFjZUpJVDo6QWRkcmVzcyhKU0ludGVyZmFjZUpJVDo6Y2FsbEZyYW1lUmVnaXN0ZXIs
IENhbGxGcmFtZTo6cmV0dXJuUENPZmZzZXQoKSksIEdQUkluZm86OnJlZ1Q1KTsKLSAgICBqaXQu
c3RvcmVQdHIoR1BSSW5mbzo6cmVnVDUsIE1hY3JvQXNzZW1ibGVyOjpCYXNlSW5kZXgoSlNJbnRl
cmZhY2VKSVQ6OnJlZ1QzLCBKU0ludGVyZmFjZUpJVDo6YXJndW1lbnRHUFIwLCBKU0ludGVyZmFj
ZUpJVDo6VGltZXNFaWdodCkpOwotICAgIAotICAgIC8vIEluc3RhbGwgdGhlIG5ldyByZXR1cm4g
UEMuCi0gICAgaml0LnN0b3JlUHRyKEdQUkluZm86OmFyZ3VtZW50R1BSMSwgSlNJbnRlcmZhY2VK
SVQ6OkFkZHJlc3MoSlNJbnRlcmZhY2VKSVQ6OmNhbGxGcmFtZVJlZ2lzdGVyLCBDYWxsRnJhbWU6
OnJldHVyblBDT2Zmc2V0KCkpKTsKLSAgICAKICMgIGlmIENQVShYODYpCiAgICAgaml0LnB1c2go
SlNJbnRlcmZhY2VKSVQ6OnJlZ1Q0KTsKICMgIGVuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjMyXzY0LmFzbSBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVyMzJfNjQuYXNtCmluZGV4IGVi
ZTBkYTE0ZTMwZjE1ZWJhMjEwNTg5MjRlY2ZlMzc3ZWNmZDc0NDguLjRjNjdjMjQxMjc1ZDI4Y2I3
YzI5NTUxYWMxNDRhZmI4ZWJhNGQ3ZjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVyMzJfNjQuYXNtCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVyMzJfNjQuYXNtCkBAIC01NzQsNyArNTc0
LDYgQEAgbWFjcm8gZnVuY3Rpb25Bcml0eUNoZWNrKGRvbmVMYWJlbCwgc2xvd1BhdGgpCiAgICAg
YnRweiB0MywgLnByb2NlZWRJbmxpbmUKICAgICAKICAgICBsb2FkcCBDb21tb25TbG93UGF0aHM6
OkFyaXR5Q2hlY2tEYXRhOjpwYWRkZWRTdGFja1NwYWNlW3IxXSwgYTAKLSAgICBsb2FkcCBDb21t
b25TbG93UGF0aHM6OkFyaXR5Q2hlY2tEYXRhOjpyZXR1cm5QQ1tyMV0sIGExCiAgICAgY2FsbCB0
MwogICAgIGlmIEFTU0VSVF9FTkFCTEVECiAgICAgICAgIGxvYWRwIFJldHVyblBDW2Nmcl0sIHQw
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnBy
ZXRlcjY0LmFzbSBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9Mb3dMZXZlbEludGVycHJl
dGVyNjQuYXNtCmluZGV4IGJhMDJlMWI5OTk5OGY2NGUyNzkyMzFmMGM0MmE5YjcyZGJlZjk0M2Eu
LmRmY2NlMTY4NDZhZDQ1MGEwYmM2MzAxNjNmMDdlN2Y4MjE5ODA3NmUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVyNjQuYXNtCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVyNjQuYXNtCkBA
IC00OTgsNyArNDk4LDYgQEAgbWFjcm8gZnVuY3Rpb25Bcml0eUNoZWNrKGRvbmVMYWJlbCwgc2xv
d1BhdGgpCiAgICAgYnRweiB0MywgLnByb2NlZWRJbmxpbmUKICAgICAKICAgICBsb2FkcCBDb21t
b25TbG93UGF0aHM6OkFyaXR5Q2hlY2tEYXRhOjpwYWRkZWRTdGFja1NwYWNlW3IxXSwgYTAKLSAg
ICBsb2FkcCBDb21tb25TbG93UGF0aHM6OkFyaXR5Q2hlY2tEYXRhOjpyZXR1cm5QQ1tyMV0sIGEx
CiAgICAgY2FsbCB0MwogICAgIGlmIEFTU0VSVF9FTkFCTEVECiAgICAgICAgIGxvYWRwIFJldHVy
blBDW2Nmcl0sIHQwCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9D
b21tb25TbG93UGF0aHMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29tbW9u
U2xvd1BhdGhzLmNwcAppbmRleCA1NmQ0NmVkODJiNjc1OGY5MWQzYzJiMmQwNGUyN2EwMGYxMzU1
ZTVmLi41MWJiMzJmMDQ4MDYyMTEyNjAzNTZiZWEwZmExNmM1YzEzNGRhYzcyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Db21tb25TbG93UGF0aHMuY3BwCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbW1vblNsb3dQYXRocy5jcHAKQEAgLTI1
LDcgKzI1LDYgQEAKIAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkNvbW1vblNsb3dQ
YXRocy5oIgotI2luY2x1ZGUgIkFyaXR5Q2hlY2tGYWlsUmV0dXJuVGh1bmtzLmgiCiAjaW5jbHVk
ZSAiQXJyYXlDb25zdHJ1Y3Rvci5oIgogI2luY2x1ZGUgIkNhbGxGcmFtZS5oIgogI2luY2x1ZGUg
IkNsb25lZEFyZ3VtZW50cy5oIgpAQCAtMTY3LDE1ICsxNjYsMTEgQEAgc3RhdGljIENvbW1vblNs
b3dQYXRoczo6QXJpdHlDaGVja0RhdGEqIHNldHVwQXJpdHlDaGVja0RhdGEoVk0mIHZtLCBpbnQg
c2xvdHNUb0EKICAgICBDb21tb25TbG93UGF0aHM6OkFyaXR5Q2hlY2tEYXRhKiByZXN1bHQgPSB2
bS5hcml0eUNoZWNrRGF0YS5nZXQoKTsKICAgICByZXN1bHQtPnBhZGRlZFN0YWNrU3BhY2UgPSBz
bG90c1RvQWRkOwogI2lmIEVOQUJMRShKSVQpCi0gICAgaWYgKHZtLmNhblVzZUpJVCgpKSB7Cisg
ICAgaWYgKHZtLmNhblVzZUpJVCgpKQogICAgICAgICByZXN1bHQtPnRodW5rVG9DYWxsID0gdm0u
Z2V0Q1RJU3R1Yihhcml0eUZpeHVwR2VuZXJhdG9yKS5jb2RlKCkuZXhlY3V0YWJsZUFkZHJlc3Mo
KTsKLSAgICAgICAgcmVzdWx0LT5yZXR1cm5QQyA9IHZtLmFyaXR5Q2hlY2tGYWlsUmV0dXJuVGh1
bmtzLT5yZXR1cm5QQ0Zvcih2bSwgc2xvdHNUb0FkZCAqIHN0YWNrQWxpZ25tZW50UmVnaXN0ZXJz
KCkpLmV4ZWN1dGFibGVBZGRyZXNzKCk7Ci0gICAgfSBlbHNlCisgICAgZWxzZQogI2VuZGlmCi0g
ICAgewogICAgICAgICByZXN1bHQtPnRodW5rVG9DYWxsID0gMDsKLSAgICAgICAgcmVzdWx0LT5y
ZXR1cm5QQyA9IDA7Ci0gICAgfQogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbW1vblNsb3dQYXRocy5oIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29tbW9uU2xvd1BhdGhzLmgKaW5kZXggNGQ4ZTNmYzhl
MzcwZjFlYTkwMTEyZTRiZWNhNGU4NDNlZTlkNDc3MC4uZDZmYWRmOWM5NGU5MWRjYjY1ZmI1OTVh
MjFiMWI1OTYyYWY5ZDJjZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvQ29tbW9uU2xvd1BhdGhzLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
Q29tbW9uU2xvd1BhdGhzLmgKQEAgLTQ5LDcgKzQ5LDYgQEAgbmFtZXNwYWNlIENvbW1vblNsb3dQ
YXRocyB7CiBzdHJ1Y3QgQXJpdHlDaGVja0RhdGEgewogICAgIHVuc2lnbmVkIHBhZGRlZFN0YWNr
U3BhY2U7CiAgICAgdm9pZCogdGh1bmtUb0NhbGw7Ci0gICAgdm9pZCogcmV0dXJuUEM7CiB9Owog
CiBBTFdBWVNfSU5MSU5FIGludCBhcml0eUNoZWNrRm9yKEV4ZWNTdGF0ZSogZXhlYywgSlNTdGFj
ayogc3RhY2ssIENvZGVTcGVjaWFsaXphdGlvbktpbmQga2luZCkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09wdGlvbnMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL09wdGlvbnMuaAppbmRleCA4NzJlYjJlZjI4NmYzM2U2MDQ2NTQxMjRjOWE1ZjEw
NTQ1MTU3NzFlLi45ZjI0NGI1YjBhZmUwMWYzMTdlYjc1YmQzYzA0YmQzMTdhZWVjZTEyIDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PcHRpb25zLmgKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT3B0aW9ucy5oCkBAIC0xNTYsNyArMTU2LDcgQEAg
dHlwZWRlZiBjb25zdCBjaGFyKiBvcHRpb25TdHJpbmc7CiAgICAgdihib29sLCBlbmFibGVPU1JF
bnRyeVRvREZHLCB0cnVlLCBudWxscHRyKSBcCiAgICAgdihib29sLCBlbmFibGVPU1JFbnRyeVRv
RlRMLCB0cnVlLCBudWxscHRyKSBcCiAgICAgXAotICAgIHYoYm9vbCwgdXNlRlRMSklULCB0cnVl
LCAiYWxsb3dzIHRoZSBGVEwgSklUIHRvIGJlIHVzZWQgaWYgdHJ1ZSIpIFwKKyAgICB2KGJvb2ws
IHVzZUZUTEpJVCwgZmFsc2UsICJhbGxvd3MgdGhlIEZUTCBKSVQgdG8gYmUgdXNlZCBpZiB0cnVl
IikgXAogICAgIHYoYm9vbCwgdXNlRlRMVEJBQSwgdHJ1ZSwgbnVsbHB0cikgXAogICAgIHYoYm9v
bCwgZW5hYmxlTExWTUZhc3RJU2VsLCBmYWxzZSwgbnVsbHB0cikgXAogICAgIHYoYm9vbCwgdXNl
TExWTVNtYWxsQ29kZU1vZGVsLCBmYWxzZSwgbnVsbHB0cikgXApkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVk0uY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvVk0uY3BwCmluZGV4IDc2NzQxZGQ4YWVhMzdmZjU3Y2NhNGNmNjM2YmZjMzJiYjQyOWNj
NDEuLjg2MTkzMzg1M2M3NzY3ZDJiYzY5ZTdhYzJjOWYyYjc4NDMyNWNkZWIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1ZNLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9WTS5jcHAKQEAgLTMwLDcgKzMwLDYgQEAKICNpbmNsdWRlICJWTS5o
IgogCiAjaW5jbHVkZSAiQXJnTGlzdC5oIgotI2luY2x1ZGUgIkFyaXR5Q2hlY2tGYWlsUmV0dXJu
VGh1bmtzLmgiCiAjaW5jbHVkZSAiQXJyYXlCdWZmZXJOZXV0ZXJpbmdXYXRjaHBvaW50LmgiCiAj
aW5jbHVkZSAiQnVpbHRpbkV4ZWN1dGFibGVzLmgiCiAjaW5jbHVkZSAiQ29kZUJsb2NrLmgiCkBA
IC0yNDYsNyArMjQ1LDYgQEAgVk06OlZNKFZNVHlwZSB2bVR5cGUsIEhlYXBUeXBlIGhlYXBUeXBl
KQogCiAjaWYgRU5BQkxFKEpJVCkKICAgICBqaXRTdHVicyA9IHN0ZDo6bWFrZV91bmlxdWU8SklU
VGh1bmtzPigpOwotICAgIGFyaXR5Q2hlY2tGYWlsUmV0dXJuVGh1bmtzID0gc3RkOjptYWtlX3Vu
aXF1ZTxBcml0eUNoZWNrRmFpbFJldHVyblRodW5rcz4oKTsKICNlbmRpZgogICAgIGFyaXR5Q2hl
Y2tEYXRhID0gc3RkOjptYWtlX3VuaXF1ZTxDb21tb25TbG93UGF0aHM6OkFyaXR5Q2hlY2tEYXRh
PigpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9WTS5oIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVk0uaAppbmRleCBmNzhmOWViOTY0NjBhZTlm
ZGJmZjkxNjljMjg0YTg1ODQ4MTZjNzM5Li41NWQ0MGU2NWYwN2M3YzBjOTRiYmNkOTBjZGM4YzM5
YzdhZWQxZjRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9WTS5o
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1ZNLmgKQEAgLTcxLDcgKzcxLDYg
QEAKIAogbmFtZXNwYWNlIEpTQyB7CiAKLWNsYXNzIEFyaXR5Q2hlY2tGYWlsUmV0dXJuVGh1bmtz
OwogY2xhc3MgQnVpbHRpbkV4ZWN1dGFibGVzOwogY2xhc3MgQ29kZUJsb2NrOwogY2xhc3MgQ29k
ZUNhY2hlOwpAQCAtMzM5LDcgKzMzOCw2IEBAIHB1YmxpYzoKICAgICB9CiAgICAgTmF0aXZlRXhl
Y3V0YWJsZSogZ2V0SG9zdEZ1bmN0aW9uKE5hdGl2ZUZ1bmN0aW9uLCBJbnRyaW5zaWMpOwogCi0g
ICAgc3RkOjp1bmlxdWVfcHRyPEFyaXR5Q2hlY2tGYWlsUmV0dXJuVGh1bmtzPiBhcml0eUNoZWNr
RmFpbFJldHVyblRodW5rczsKICNlbmRpZiAvLyBFTkFCTEUoSklUKQogICAgIHN0ZDo6dW5pcXVl
X3B0cjxDb21tb25TbG93UGF0aHM6OkFyaXR5Q2hlY2tEYXRhPiBhcml0eUNoZWNrRGF0YTsKICNp
ZiBFTkFCTEUoRlRMX0pJVCkK
</data>

          </attachment>
      

    </bug>

</bugzilla>