<?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>148913</bug_id>
          
          <creation_ts>2015-09-06 12:57:28 -0700</creation_ts>
          <short_desc>Add initial support for doubles in WebAssembly</short_desc>
          <delta_ts>2015-09-08 10:39:48 -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>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>146064</blocked>
    
    <blocked>148945</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Sukolsak Sakshuwong">sukolsak</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>fpizlo</cc>
    
    <cc>ggaren</cc>
    
    <cc>mark.lam</cc>
    
    <cc>saam</cc>
    
    <cc>sukolsak</cc>
    
    <cc>ysuzuki</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1124028</commentid>
    <comment_count>0</comment_count>
    <who name="Sukolsak Sakshuwong">sukolsak</who>
    <bug_when>2015-09-06 12:57:28 -0700</bug_when>
    <thetext>Implement the ConstantPoolIndex, Immediate, and GetLocal instructions in WebAssembly.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1124031</commentid>
    <comment_count>1</comment_count>
      <attachid>260712</attachid>
    <who name="Sukolsak Sakshuwong">sukolsak</who>
    <bug_when>2015-09-06 13:02:42 -0700</bug_when>
    <thetext>Created attachment 260712
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1124034</commentid>
    <comment_count>2</comment_count>
      <attachid>260714</attachid>
    <who name="Sukolsak Sakshuwong">sukolsak</who>
    <bug_when>2015-09-06 13:11:35 -0700</bug_when>
    <thetext>Created attachment 260714
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1124096</commentid>
    <comment_count>3</comment_count>
      <attachid>260731</attachid>
    <who name="Sukolsak Sakshuwong">sukolsak</who>
    <bug_when>2015-09-07 02:03:09 -0700</bug_when>
    <thetext>Created attachment 260731
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1124136</commentid>
    <comment_count>4</comment_count>
      <attachid>260731</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2015-09-07 10:02:14 -0700</bug_when>
    <thetext>Comment on attachment 260731
Patch

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

&gt; Source/JavaScriptCore/wasm/WASMFunctionCompiler.h:235
&gt; +#if CPU(X86_64) || CPU(ARM64)

We should use some combined condition that means 64-bit. Usually in JSC we use JSVALUE64 as such a condition.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1124143</commentid>
    <comment_count>5</comment_count>
      <attachid>260743</attachid>
    <who name="Sukolsak Sakshuwong">sukolsak</who>
    <bug_when>2015-09-07 11:22:52 -0700</bug_when>
    <thetext>Created attachment 260743
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1124145</commentid>
    <comment_count>6</comment_count>
    <who name="Sukolsak Sakshuwong">sukolsak</who>
    <bug_when>2015-09-07 11:23:31 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; Comment on attachment 260731 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=260731&amp;action=review
&gt; 
&gt; &gt; Source/JavaScriptCore/wasm/WASMFunctionCompiler.h:235
&gt; &gt; +#if CPU(X86_64) || CPU(ARM64)
&gt; 
&gt; We should use some combined condition that means 64-bit. Usually in JSC we
&gt; use JSVALUE64 as such a condition.

Thanks. Fixed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1124286</commentid>
    <comment_count>7</comment_count>
      <attachid>260743</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-09-08 10:39:44 -0700</bug_when>
    <thetext>Comment on attachment 260743
Patch for landing

Clearing flags on attachment: 260743

Committed r189494: &lt;http://trac.webkit.org/changeset/189494&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1124287</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-09-08 10:39:48 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>260712</attachid>
            <date>2015-09-06 13:02:42 -0700</date>
            <delta_ts>2015-09-06 13:11:48 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>diff.txt</filename>
            <type>text/plain</type>
            <size>15764</size>
            <attacher name="Sukolsak Sakshuwong">sukolsak</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IDRmZWNjN2Q1MGJkZDhmMDZlYzM2OGExNWQ2ZjEy
MjQ3ODlmYmI4ZmYuLmI2NjYxZGVjNWU1OTI0MWQ5MGFlYTYzY2JiMGFhMDE1NjQzZjlhZmMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMyIEBACisyMDE1LTA5LTA2ICBTdWtv
bHNhayBTYWtzaHV3b25nICA8c3Vrb2xzYWtAZ21haWwuY29tPgorCisgICAgICAgIEFkZCBpbml0
aWFsIHN1cHBvcnQgZm9yIGRvdWJsZXMgaW4gV2ViQXNzZW1ibHkKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0ODkxMworCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEltcGxlbWVudCB0aGUgQ29uc3RhbnRQb29s
SW5kZXgsIEltbWVkaWF0ZSwgYW5kIEdldExvY2FsIGluc3RydWN0aW9ucyBpbgorICAgICAgICBX
ZWJBc3NlbWJseS4KKworICAgICAgICAqIHdhc20vV0FTTUNvbnN0YW50cy5oOgorICAgICAgICAq
IHdhc20vV0FTTUZ1bmN0aW9uQ29tcGlsZXIuaDoKKyAgICAgICAgKEpTQzo6V0FTTUZ1bmN0aW9u
Q29tcGlsZXI6OmJ1aWxkU2V0TG9jYWwpOgorICAgICAgICAoSlNDOjpXQVNNRnVuY3Rpb25Db21w
aWxlcjo6YnVpbGRJbW1lZGlhdGVJMzIpOgorICAgICAgICAoSlNDOjpXQVNNRnVuY3Rpb25Db21w
aWxlcjo6YnVpbGRJbW1lZGlhdGVGNjQpOgorICAgICAgICAoSlNDOjpXQVNNRnVuY3Rpb25Db21w
aWxlcjo6YnVpbGRHZXRMb2NhbCk6CisgICAgICAgICogd2FzbS9XQVNNRnVuY3Rpb25QYXJzZXIu
Y3BwOgorICAgICAgICAoSlNDOjpXQVNNRnVuY3Rpb25QYXJzZXI6OnBhcnNlRXhwcmVzc2lvbik6
CisgICAgICAgIChKU0M6OldBU01GdW5jdGlvblBhcnNlcjo6cGFyc2VFeHByZXNzaW9uRjY0KToK
KyAgICAgICAgKEpTQzo6V0FTTUZ1bmN0aW9uUGFyc2VyOjpwYXJzZUNvbnN0YW50UG9vbEluZGV4
RXhwcmVzc2lvbkY2NCk6CisgICAgICAgIChKU0M6OldBU01GdW5jdGlvblBhcnNlcjo6cGFyc2VJ
bW1lZGlhdGVFeHByZXNzaW9uRjY0KToKKyAgICAgICAgKEpTQzo6V0FTTUZ1bmN0aW9uUGFyc2Vy
OjpwYXJzZUdldExvY2FsRXhwcmVzc2lvbkY2NCk6CisgICAgICAgICogd2FzbS9XQVNNRnVuY3Rp
b25QYXJzZXIuaDoKKyAgICAgICAgKiB3YXNtL1dBU01GdW5jdGlvblN5bnRheENoZWNrZXIuaDoK
KyAgICAgICAgKEpTQzo6V0FTTUZ1bmN0aW9uU3ludGF4Q2hlY2tlcjo6YnVpbGRJbW1lZGlhdGVG
NjQpOgorICAgICAgICAqIHdhc20vV0FTTVJlYWRlci5jcHA6CisgICAgICAgIChKU0M6OldBU01S
ZWFkZXI6OnJlYWRPcEV4cHJlc3Npb25GNjQpOgorICAgICAgICAqIHdhc20vV0FTTVJlYWRlci5o
OgorCiAyMDE1LTA5LTA0ICBTdWtvbHNhayBTYWtzaHV3b25nICA8c3Vrb2xzYWtAZ21haWwuY29t
PgogCiAgICAgICAgIEltcGxlbWVudCBhbGwgdGhlIGFyaXRobWV0aWMgYW5kIGxvZ2ljYWwgaW5z
dHJ1Y3Rpb25zIGluIFdlYkFzc2VtYmx5CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvd2FzbS9XQVNNQ29uc3RhbnRzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XQVNN
Q29uc3RhbnRzLmgKaW5kZXggMzg4YjhlMTVmOTcyYTc4ZjVhNTdjYjRlMWM2OTU4MDJhMjMwNzhk
NS4uMWExN2JmNjZhZmMxYTY0MGY2Y2RjNzJiYTZkZWRjOWJkOGJmNjdjZiAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV0FTTUNvbnN0YW50cy5oCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS93YXNtL1dBU01Db25zdGFudHMuaApAQCAtMTcwLDYgKzE3MCw1NiBAQCBl
bnVtIGNsYXNzIFdBU01PcEV4cHJlc3Npb25JMzJXaXRoSW1tZWRpYXRlIDogdWludDhfdCB7CiAg
ICAgTnVtYmVyT2ZXQVNNT3BFeHByZXNzaW9uSTMyV2l0aEltbWVkaWF0ZXMKIH07CiAKK2VudW0g
Y2xhc3MgV0FTTU9wRXhwcmVzc2lvbkY2NCA6IHVpbnQ4X3QgeworICAgIENvbnN0YW50UG9vbElu
ZGV4LAorICAgIEltbWVkaWF0ZSwKKyAgICBHZXRMb2NhbCwKKyAgICBHZXRHbG9iYWwsCisgICAg
U2V0TG9jYWwsCisgICAgU2V0R2xvYmFsLAorICAgIExvYWQsCisgICAgTG9hZFdpdGhPZmZzZXQs
CisgICAgU3RvcmUsCisgICAgU3RvcmVXaXRoT2Zmc2V0LAorICAgIENhbGxJbnRlcm5hbCwKKyAg
ICBDYWxsSW5kaXJlY3QsCisgICAgQ2FsbEltcG9ydCwKKyAgICBDb25kaXRpb25hbCwKKyAgICBD
b21tYSwKKyAgICBGcm9tUzMyLAorICAgIEZyb21VMzIsCisgICAgRnJvbUYzMiwKKyAgICBOZWdh
dGUsCisgICAgQWRkLAorICAgIFN1YiwKKyAgICBNdWwsCisgICAgRGl2LAorICAgIE1vZCwKKyAg
ICBNaW4sCisgICAgTWF4LAorICAgIEFicywKKyAgICBDZWlsLAorICAgIEZsb29yLAorICAgIFNx
cnQsCisgICAgQ29zLAorICAgIFNpbiwKKyAgICBUYW4sCisgICAgQUNvcywKKyAgICBBU2luLAor
ICAgIEFUYW4sCisgICAgQVRhbjIsCisgICAgRXhwLAorICAgIExuLAorICAgIFBvdywKKyAgICBO
dW1iZXJPZldBU01PcEV4cHJlc3Npb25GNjRzCit9OworCitlbnVtIGNsYXNzIFdBU01PcEV4cHJl
c3Npb25GNjRXaXRoSW1tZWRpYXRlIDogdWludDhfdCB7CisgICAgQ29uc3RhbnRQb29sSW5kZXgs
CisgICAgR2V0TG9jYWwsCisgICAgTnVtYmVyT2ZXQVNNT3BFeHByZXNzaW9uRjY0V2l0aEltbWVk
aWF0ZXMKK307CisKIGVudW0gY2xhc3MgV0FTTVZhcmlhYmxlVHlwZXMgOiB1aW50OF90IHsKICAg
ICBJMzIgPSAxIDw8IDAsCiAgICAgRjMyID0gMSA8PCAxLApkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3dhc20vV0FTTUZ1bmN0aW9uQ29tcGlsZXIuaCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS93YXNtL1dBU01GdW5jdGlvbkNvbXBpbGVyLmgKaW5kZXggZTk3OTIxNmExNmE5YzM2
ZjI4M2QxNzM5YmUyMmE3MmE4M2QxMDQ3MS4uOWI4ZDJiMzgxOTM5MTA2MmRhMDg5MzcyNjhmNThk
M2ExZDk5MmQ1MiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV0FTTUZ1
bmN0aW9uQ29tcGlsZXIuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XQVNNRnVu
Y3Rpb25Db21waWxlci5oCkBAIC0xODMsNiArMTgzLDExIEBAIHB1YmxpYzoKICAgICAgICAgICAg
IG1fdGVtcFN0YWNrVG9wLS07CiAgICAgICAgICAgICBzdG9yZTMyKEdQUkluZm86OnJlZ1QwLCBs
b2NhbEFkZHJlc3MobG9jYWxJbmRleCkpOwogICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNh
c2UgV0FTTVR5cGU6OkY2NDoKKyAgICAgICAgICAgIGxvYWQ2NCh0ZW1wb3JhcnlBZGRyZXNzKG1f
dGVtcFN0YWNrVG9wIC0gMSksIEdQUkluZm86OnJlZ1QwKTsKKyAgICAgICAgICAgIG1fdGVtcFN0
YWNrVG9wLS07CisgICAgICAgICAgICBzdG9yZTY0KEdQUkluZm86OnJlZ1QwLCBsb2NhbEFkZHJl
c3MobG9jYWxJbmRleCkpOworICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGRlZmF1bHQ6CiAg
ICAgICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICAgICAgfQpAQCAtMjA4LDcgKzIx
MywxMyBAQCBwdWJsaWM6CiAKICAgICBpbnQgYnVpbGRJbW1lZGlhdGVJMzIodWludDMyX3QgaW1t
ZWRpYXRlKQogICAgIHsKLSAgICAgICAgc3RvcmUzMihUcnVzdGVkSW1tMzIoaW1tZWRpYXRlKSwg
dGVtcG9yYXJ5QWRkcmVzcyhtX3RlbXBTdGFja1RvcCsrKSk7CisgICAgICAgIHN0b3JlMzIoSW1t
MzIoaW1tZWRpYXRlKSwgdGVtcG9yYXJ5QWRkcmVzcyhtX3RlbXBTdGFja1RvcCsrKSk7CisgICAg
ICAgIHJldHVybiBVTlVTRUQ7CisgICAgfQorCisgICAgaW50IGJ1aWxkSW1tZWRpYXRlRjY0KGRv
dWJsZSBpbW1lZGlhdGUpCisgICAgeworICAgICAgICBzdG9yZTY0KEltbTY0KGJpdHdpc2VfY2Fz
dDxpbnQ2NF90PihpbW1lZGlhdGUpKSwgdGVtcG9yYXJ5QWRkcmVzcyhtX3RlbXBTdGFja1RvcCsr
KSk7CiAgICAgICAgIHJldHVybiBVTlVTRUQ7CiAgICAgfQogCkBAIC0yMjAsNiArMjMxLDExIEBA
IHB1YmxpYzoKICAgICAgICAgICAgIG1fdGVtcFN0YWNrVG9wKys7CiAgICAgICAgICAgICBzdG9y
ZTMyKEdQUkluZm86OnJlZ1QwLCB0ZW1wb3JhcnlBZGRyZXNzKG1fdGVtcFN0YWNrVG9wIC0gMSkp
OwogICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgV0FTTVR5cGU6OkY2NDoKKyAgICAg
ICAgICAgIGxvYWQ2NChsb2NhbEFkZHJlc3MobG9jYWxJbmRleCksIEdQUkluZm86OnJlZ1QwKTsK
KyAgICAgICAgICAgIG1fdGVtcFN0YWNrVG9wKys7CisgICAgICAgICAgICBzdG9yZTY0KEdQUklu
Zm86OnJlZ1QwLCB0ZW1wb3JhcnlBZGRyZXNzKG1fdGVtcFN0YWNrVG9wIC0gMSkpOworICAgICAg
ICAgICAgYnJlYWs7CiAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICBBU1NFUlRfTk9UX1JF
QUNIRUQoKTsKICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dh
c20vV0FTTUZ1bmN0aW9uUGFyc2VyLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dB
U01GdW5jdGlvblBhcnNlci5jcHAKaW5kZXggNjQ2MGY2YmY2ZDNlMDRmYmU0ZWFlNTk5Y2EyMzg2
YjRhZjI2ODY3NC4uZjY5YzE3MDlmOWFmMjQxYjZmNmE2M2ExNGE4NWIyODE5N2VjZDJlNCAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV0FTTUZ1bmN0aW9uUGFyc2VyLmNw
cAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XQVNNRnVuY3Rpb25QYXJzZXIuY3Bw
CkBAIC0zNCwxMCArMzQsMTIgQEAKIAogI2RlZmluZSBQUk9QQUdBVEVfRVJST1IoKSBkbyB7IGlm
ICghbV9lcnJvck1lc3NhZ2UuaXNOdWxsKCkpIHJldHVybiAwOyB9IHdoaWxlICgwKQogI2RlZmlu
ZSBGQUlMX1dJVEhfTUVTU0FHRShlcnJvck1lc3NhZ2UpIGRvIHsgIG1fZXJyb3JNZXNzYWdlID0g
ZXJyb3JNZXNzYWdlOyByZXR1cm4gMDsgfSB3aGlsZSAoMCkKKyNkZWZpbmUgUkVBRF9ET1VCTEVf
T1JfRkFJTChyZXN1bHQsIGVycm9yTWVzc2FnZSkgZG8geyBpZiAoIW1fcmVhZGVyLnJlYWREb3Vi
bGUocmVzdWx0KSkgRkFJTF9XSVRIX01FU1NBR0UoZXJyb3JNZXNzYWdlKTsgfSB3aGlsZSAoMCkK
ICNkZWZpbmUgUkVBRF9DT01QQUNUX0lOVDMyX09SX0ZBSUwocmVzdWx0LCBlcnJvck1lc3NhZ2Up
IGRvIHsgaWYgKCFtX3JlYWRlci5yZWFkQ29tcGFjdEludDMyKHJlc3VsdCkpIEZBSUxfV0lUSF9N
RVNTQUdFKGVycm9yTWVzc2FnZSk7IH0gd2hpbGUgKDApCiAjZGVmaW5lIFJFQURfQ09NUEFDVF9V
SU5UMzJfT1JfRkFJTChyZXN1bHQsIGVycm9yTWVzc2FnZSkgZG8geyBpZiAoIW1fcmVhZGVyLnJl
YWRDb21wYWN0VUludDMyKHJlc3VsdCkpIEZBSUxfV0lUSF9NRVNTQUdFKGVycm9yTWVzc2FnZSk7
IH0gd2hpbGUgKDApCiAjZGVmaW5lIFJFQURfT1BfU1RBVEVNRU5UX09SX0ZBSUwoaGFzSW1tZWRp
YXRlLCBvcCwgb3BXaXRoSW1tZWRpYXRlLCBpbW1lZGlhdGUsIGVycm9yTWVzc2FnZSkgZG8geyBp
ZiAoIW1fcmVhZGVyLnJlYWRPcFN0YXRlbWVudChoYXNJbW1lZGlhdGUsIG9wLCBvcFdpdGhJbW1l
ZGlhdGUsIGltbWVkaWF0ZSkpIEZBSUxfV0lUSF9NRVNTQUdFKGVycm9yTWVzc2FnZSk7IH0gd2hp
bGUgKDApCiAjZGVmaW5lIFJFQURfT1BfRVhQUkVTU0lPTl9JMzJfT1JfRkFJTChoYXNJbW1lZGlh
dGUsIG9wLCBvcFdpdGhJbW1lZGlhdGUsIGltbWVkaWF0ZSwgZXJyb3JNZXNzYWdlKSBkbyB7IGlm
ICghbV9yZWFkZXIucmVhZE9wRXhwcmVzc2lvbkkzMihoYXNJbW1lZGlhdGUsIG9wLCBvcFdpdGhJ
bW1lZGlhdGUsIGltbWVkaWF0ZSkpIEZBSUxfV0lUSF9NRVNTQUdFKGVycm9yTWVzc2FnZSk7IH0g
d2hpbGUgKDApCisjZGVmaW5lIFJFQURfT1BfRVhQUkVTU0lPTl9GNjRfT1JfRkFJTChoYXNJbW1l
ZGlhdGUsIG9wLCBvcFdpdGhJbW1lZGlhdGUsIGltbWVkaWF0ZSwgZXJyb3JNZXNzYWdlKSBkbyB7
IGlmICghbV9yZWFkZXIucmVhZE9wRXhwcmVzc2lvbkY2NChoYXNJbW1lZGlhdGUsIG9wLCBvcFdp
dGhJbW1lZGlhdGUsIGltbWVkaWF0ZSkpIEZBSUxfV0lUSF9NRVNTQUdFKGVycm9yTWVzc2FnZSk7
IH0gd2hpbGUgKDApCiAjZGVmaW5lIFJFQURfVkFSSUFCTEVfVFlQRVNfT1JfRkFJTChoYXNJbW1l
ZGlhdGUsIHZhcmlhYmxlVHlwZXMsIHZhcmlhYmxlVHlwZXNXaXRoSW1tZWRpYXRlLCBpbW1lZGlh
dGUsIGVycm9yTWVzc2FnZSkgZG8geyBpZiAoIW1fcmVhZGVyLnJlYWRWYXJpYWJsZVR5cGVzKGhh
c0ltbWVkaWF0ZSwgdmFyaWFibGVUeXBlcywgdmFyaWFibGVUeXBlc1dpdGhJbW1lZGlhdGUsIGlt
bWVkaWF0ZSkpIEZBSUxfV0lUSF9NRVNTQUdFKGVycm9yTWVzc2FnZSk7IH0gd2hpbGUgKDApCiAj
ZGVmaW5lIFJFQURfU1dJVENIX0NBU0VfT1JfRkFJTChyZXN1bHQsIGVycm9yTWVzc2FnZSkgZG8g
eyBpZiAoIW1fcmVhZGVyLnJlYWRTd2l0Y2hDYXNlKHJlc3VsdCkpIEZBSUxfV0lUSF9NRVNTQUdF
KGVycm9yTWVzc2FnZSk7IH0gd2hpbGUgKDApCiAjZGVmaW5lIEZBSUxfSUZfRkFMU0UoY29uZGl0
aW9uLCBlcnJvck1lc3NhZ2UpIGRvIHsgaWYgKCEoY29uZGl0aW9uKSkgRkFJTF9XSVRIX01FU1NB
R0UoZXJyb3JNZXNzYWdlKTsgfSB3aGlsZSAoMCkKQEAgLTQwMyw4ICs0MDUsOSBAQCBDb250ZXh0
RXhwcmVzc2lvbiBXQVNNRnVuY3Rpb25QYXJzZXI6OnBhcnNlRXhwcmVzc2lvbihDb250ZXh0JiBj
b250ZXh0LCBXQVNNRXhwcgogICAgIHN3aXRjaCAoZXhwcmVzc2lvblR5cGUpIHsKICAgICBjYXNl
IFdBU01FeHByZXNzaW9uVHlwZTo6STMyOgogICAgICAgICByZXR1cm4gcGFyc2VFeHByZXNzaW9u
STMyKGNvbnRleHQpOwotICAgIGNhc2UgV0FTTUV4cHJlc3Npb25UeXBlOjpGMzI6CiAgICAgY2Fz
ZSBXQVNNRXhwcmVzc2lvblR5cGU6OkY2NDoKKyAgICAgICAgcmV0dXJuIHBhcnNlRXhwcmVzc2lv
bkY2NChjb250ZXh0KTsKKyAgICBjYXNlIFdBU01FeHByZXNzaW9uVHlwZTo6RjMyOgogICAgIGNh
c2UgV0FTTUV4cHJlc3Npb25UeXBlOjpWb2lkOgogICAgICAgICAvLyBGSVhNRTogSW1wbGVtZW50
IHRoZXNlIGluc3RydWN0aW9ucy4KICAgICAgICAgRkFJTF9XSVRIX01FU1NBR0UoIlVuc3VwcG9y
dGVkIGluc3RydWN0aW9uLiIpOwpAQCAtNTk2LDYgKzU5OSwxMTMgQEAgQ29udGV4dEV4cHJlc3Np
b24gV0FTTUZ1bmN0aW9uUGFyc2VyOjpwYXJzZVJlbGF0aW9uYWxJMzJFeHByZXNzaW9uSTMyKENv
bnRleHQmIGMKICAgICByZXR1cm4gY29udGV4dC5idWlsZFJlbGF0aW9uYWxJMzIobGVmdCwgcmln
aHQsIG9wKTsKIH0KIAordGVtcGxhdGUgPGNsYXNzIENvbnRleHQ+CitDb250ZXh0RXhwcmVzc2lv
biBXQVNNRnVuY3Rpb25QYXJzZXI6OnBhcnNlRXhwcmVzc2lvbkY2NChDb250ZXh0JiBjb250ZXh0
KQoreworICAgIGJvb2wgaGFzSW1tZWRpYXRlOworICAgIFdBU01PcEV4cHJlc3Npb25GNjQgb3A7
CisgICAgV0FTTU9wRXhwcmVzc2lvbkY2NFdpdGhJbW1lZGlhdGUgb3BXaXRoSW1tZWRpYXRlOwor
ICAgIHVpbnQ4X3QgaW1tZWRpYXRlOworICAgIFJFQURfT1BfRVhQUkVTU0lPTl9GNjRfT1JfRkFJ
TChoYXNJbW1lZGlhdGUsIG9wLCBvcFdpdGhJbW1lZGlhdGUsIGltbWVkaWF0ZSwgIkNhbm5vdCBy
ZWFkIHRoZSBmbG9hdDY0IGV4cHJlc3Npb24gb3Bjb2RlLiIpOworICAgIGlmICghaGFzSW1tZWRp
YXRlKSB7CisgICAgICAgIHN3aXRjaCAob3ApIHsKKyAgICAgICAgY2FzZSBXQVNNT3BFeHByZXNz
aW9uRjY0OjpDb25zdGFudFBvb2xJbmRleDoKKyAgICAgICAgICAgIHJldHVybiBwYXJzZUNvbnN0
YW50UG9vbEluZGV4RXhwcmVzc2lvbkY2NChjb250ZXh0KTsKKyAgICAgICAgY2FzZSBXQVNNT3BF
eHByZXNzaW9uRjY0OjpJbW1lZGlhdGU6CisgICAgICAgICAgICByZXR1cm4gcGFyc2VJbW1lZGlh
dGVFeHByZXNzaW9uRjY0KGNvbnRleHQpOworICAgICAgICBjYXNlIFdBU01PcEV4cHJlc3Npb25G
NjQ6OkdldExvY2FsOgorICAgICAgICAgICAgcmV0dXJuIHBhcnNlR2V0TG9jYWxFeHByZXNzaW9u
RjY0KGNvbnRleHQpOworICAgICAgICBjYXNlIFdBU01PcEV4cHJlc3Npb25GNjQ6Ok5lZ2F0ZToK
KyAgICAgICAgY2FzZSBXQVNNT3BFeHByZXNzaW9uRjY0OjpBYnM6CisgICAgICAgIGNhc2UgV0FT
TU9wRXhwcmVzc2lvbkY2NDo6Q2VpbDoKKyAgICAgICAgY2FzZSBXQVNNT3BFeHByZXNzaW9uRjY0
OjpGbG9vcjoKKyAgICAgICAgY2FzZSBXQVNNT3BFeHByZXNzaW9uRjY0OjpTcXJ0OgorICAgICAg
ICBjYXNlIFdBU01PcEV4cHJlc3Npb25GNjQ6OkNvczoKKyAgICAgICAgY2FzZSBXQVNNT3BFeHBy
ZXNzaW9uRjY0OjpTaW46CisgICAgICAgIGNhc2UgV0FTTU9wRXhwcmVzc2lvbkY2NDo6VGFuOgor
ICAgICAgICBjYXNlIFdBU01PcEV4cHJlc3Npb25GNjQ6OkFDb3M6CisgICAgICAgIGNhc2UgV0FT
TU9wRXhwcmVzc2lvbkY2NDo6QVNpbjoKKyAgICAgICAgY2FzZSBXQVNNT3BFeHByZXNzaW9uRjY0
OjpBVGFuOgorICAgICAgICBjYXNlIFdBU01PcEV4cHJlc3Npb25GNjQ6OkV4cDoKKyAgICAgICAg
Y2FzZSBXQVNNT3BFeHByZXNzaW9uRjY0OjpMbjoKKyAgICAgICAgY2FzZSBXQVNNT3BFeHByZXNz
aW9uRjY0OjpBZGQ6CisgICAgICAgIGNhc2UgV0FTTU9wRXhwcmVzc2lvbkY2NDo6U3ViOgorICAg
ICAgICBjYXNlIFdBU01PcEV4cHJlc3Npb25GNjQ6Ok11bDoKKyAgICAgICAgY2FzZSBXQVNNT3BF
eHByZXNzaW9uRjY0OjpEaXY6CisgICAgICAgIGNhc2UgV0FTTU9wRXhwcmVzc2lvbkY2NDo6QVRh
bjI6CisgICAgICAgIGNhc2UgV0FTTU9wRXhwcmVzc2lvbkY2NDo6UG93OgorICAgICAgICBjYXNl
IFdBU01PcEV4cHJlc3Npb25GNjQ6OkdldEdsb2JhbDoKKyAgICAgICAgY2FzZSBXQVNNT3BFeHBy
ZXNzaW9uRjY0OjpTZXRMb2NhbDoKKyAgICAgICAgY2FzZSBXQVNNT3BFeHByZXNzaW9uRjY0OjpT
ZXRHbG9iYWw6CisgICAgICAgIGNhc2UgV0FTTU9wRXhwcmVzc2lvbkY2NDo6TG9hZDoKKyAgICAg
ICAgY2FzZSBXQVNNT3BFeHByZXNzaW9uRjY0OjpMb2FkV2l0aE9mZnNldDoKKyAgICAgICAgY2Fz
ZSBXQVNNT3BFeHByZXNzaW9uRjY0OjpTdG9yZToKKyAgICAgICAgY2FzZSBXQVNNT3BFeHByZXNz
aW9uRjY0OjpTdG9yZVdpdGhPZmZzZXQ6CisgICAgICAgIGNhc2UgV0FTTU9wRXhwcmVzc2lvbkY2
NDo6Q2FsbEludGVybmFsOgorICAgICAgICBjYXNlIFdBU01PcEV4cHJlc3Npb25GNjQ6OkNhbGxJ
bmRpcmVjdDoKKyAgICAgICAgY2FzZSBXQVNNT3BFeHByZXNzaW9uRjY0OjpDYWxsSW1wb3J0Ogor
ICAgICAgICBjYXNlIFdBU01PcEV4cHJlc3Npb25GNjQ6OkNvbmRpdGlvbmFsOgorICAgICAgICBj
YXNlIFdBU01PcEV4cHJlc3Npb25GNjQ6OkNvbW1hOgorICAgICAgICBjYXNlIFdBU01PcEV4cHJl
c3Npb25GNjQ6OkZyb21TMzI6CisgICAgICAgIGNhc2UgV0FTTU9wRXhwcmVzc2lvbkY2NDo6RnJv
bVUzMjoKKyAgICAgICAgY2FzZSBXQVNNT3BFeHByZXNzaW9uRjY0OjpGcm9tRjMyOgorICAgICAg
ICAgICAgLy8gRklYTUU6IEltcGxlbWVudCB0aGVzZSBpbnN0cnVjdGlvbnMuCisgICAgICAgICAg
ICBGQUlMX1dJVEhfTUVTU0FHRSgiVW5zdXBwb3J0ZWQgaW5zdHJ1Y3Rpb24uIik7CisgICAgICAg
IGRlZmF1bHQ6CisgICAgICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgfQor
ICAgIH0gZWxzZSB7CisgICAgICAgIHN3aXRjaCAob3BXaXRoSW1tZWRpYXRlKSB7CisgICAgICAg
IGNhc2UgV0FTTU9wRXhwcmVzc2lvbkY2NFdpdGhJbW1lZGlhdGU6OkNvbnN0YW50UG9vbEluZGV4
OgorICAgICAgICAgICAgcmV0dXJuIHBhcnNlQ29uc3RhbnRQb29sSW5kZXhFeHByZXNzaW9uRjY0
KGNvbnRleHQsIGltbWVkaWF0ZSk7CisgICAgICAgIGNhc2UgV0FTTU9wRXhwcmVzc2lvbkY2NFdp
dGhJbW1lZGlhdGU6OkdldExvY2FsOgorICAgICAgICAgICAgcmV0dXJuIHBhcnNlR2V0TG9jYWxF
eHByZXNzaW9uRjY0KGNvbnRleHQsIGltbWVkaWF0ZSk7CisgICAgICAgIGRlZmF1bHQ6CisgICAg
ICAgICAgICBGQUlMX1dJVEhfTUVTU0FHRSgiVW5zdXBwb3J0ZWQgaW5zdHJ1Y3Rpb24uIik7Cisg
ICAgICAgIH0KKyAgICB9CisgICAgcmV0dXJuIDA7Cit9CisKK3RlbXBsYXRlIDxjbGFzcyBDb250
ZXh0PgorQ29udGV4dEV4cHJlc3Npb24gV0FTTUZ1bmN0aW9uUGFyc2VyOjpwYXJzZUNvbnN0YW50
UG9vbEluZGV4RXhwcmVzc2lvbkY2NChDb250ZXh0JiBjb250ZXh0LCB1aW50MzJfdCBjb25zdGFu
dEluZGV4KQoreworICAgIEZBSUxfSUZfRkFMU0UoY29uc3RhbnRJbmRleCA8IG1fbW9kdWxlLT5m
NjRDb25zdGFudHMoKS5zaXplKCksICJUaGUgY29uc3RhbnQgaW5kZXggaXMgaW5jb3JyZWN0LiIp
OworICAgIHJldHVybiBjb250ZXh0LmJ1aWxkSW1tZWRpYXRlRjY0KG1fbW9kdWxlLT5mNjRDb25z
dGFudHMoKVtjb25zdGFudEluZGV4XSk7Cit9CisKK3RlbXBsYXRlIDxjbGFzcyBDb250ZXh0Pgor
Q29udGV4dEV4cHJlc3Npb24gV0FTTUZ1bmN0aW9uUGFyc2VyOjpwYXJzZUNvbnN0YW50UG9vbElu
ZGV4RXhwcmVzc2lvbkY2NChDb250ZXh0JiBjb250ZXh0KQoreworICAgIHVpbnQzMl90IGNvbnN0
YW50SW5kZXg7CisgICAgUkVBRF9DT01QQUNUX1VJTlQzMl9PUl9GQUlMKGNvbnN0YW50SW5kZXgs
ICJDYW5ub3QgcmVhZCB0aGUgY29uc3RhbnQgaW5kZXguIik7CisgICAgcmV0dXJuIHBhcnNlQ29u
c3RhbnRQb29sSW5kZXhFeHByZXNzaW9uRjY0KGNvbnRleHQsIGNvbnN0YW50SW5kZXgpOworfQor
Cit0ZW1wbGF0ZSA8Y2xhc3MgQ29udGV4dD4KK0NvbnRleHRFeHByZXNzaW9uIFdBU01GdW5jdGlv
blBhcnNlcjo6cGFyc2VJbW1lZGlhdGVFeHByZXNzaW9uRjY0KENvbnRleHQmIGNvbnRleHQpCit7
CisgICAgZG91YmxlIGltbWVkaWF0ZTsKKyAgICBSRUFEX0RPVUJMRV9PUl9GQUlMKGltbWVkaWF0
ZSwgIkNhbm5vdCByZWFkIHRoZSBpbW1lZGlhdGUuIik7CisgICAgcmV0dXJuIGNvbnRleHQuYnVp
bGRJbW1lZGlhdGVGNjQoaW1tZWRpYXRlKTsKK30KKwordGVtcGxhdGUgPGNsYXNzIENvbnRleHQ+
CitDb250ZXh0RXhwcmVzc2lvbiBXQVNNRnVuY3Rpb25QYXJzZXI6OnBhcnNlR2V0TG9jYWxFeHBy
ZXNzaW9uRjY0KENvbnRleHQmIGNvbnRleHQsIHVpbnQzMl90IGxvY2FsSW5kZXgpCit7CisgICAg
RkFJTF9JRl9GQUxTRShsb2NhbEluZGV4IDwgbV9sb2NhbFR5cGVzLnNpemUoKSwgIlRoZSBsb2Nh
bCB2YXJpYWJsZSBpbmRleCBpcyBpbmNvcnJlY3QuIik7CisgICAgRkFJTF9JRl9GQUxTRShtX2xv
Y2FsVHlwZXNbbG9jYWxJbmRleF0gPT0gV0FTTVR5cGU6OkY2NCwgIkV4cGVjdGVkIGEgbG9jYWwg
dmFyaWFibGUgb2YgdHlwZSBmbG9hdDY0LiIpOworICAgIHJldHVybiBjb250ZXh0LmJ1aWxkR2V0
TG9jYWwobG9jYWxJbmRleCwgV0FTTVR5cGU6OkY2NCk7Cit9CisKK3RlbXBsYXRlIDxjbGFzcyBD
b250ZXh0PgorQ29udGV4dEV4cHJlc3Npb24gV0FTTUZ1bmN0aW9uUGFyc2VyOjpwYXJzZUdldExv
Y2FsRXhwcmVzc2lvbkY2NChDb250ZXh0JiBjb250ZXh0KQoreworICAgIHVpbnQzMl90IGxvY2Fs
SW5kZXg7CisgICAgUkVBRF9DT01QQUNUX1VJTlQzMl9PUl9GQUlMKGxvY2FsSW5kZXgsICJDYW5u
b3QgcmVhZCB0aGUgbG9jYWwgaW5kZXguIik7CisgICAgcmV0dXJuIHBhcnNlR2V0TG9jYWxFeHBy
ZXNzaW9uRjY0KGNvbnRleHQsIGxvY2FsSW5kZXgpOworfQorCiB9IC8vIG5hbWVzcGFjZSBKU0MK
IAogI2VuZGlmIC8vIEVOQUJMRShXRUJBU1NFTUJMWSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS93YXNtL1dBU01GdW5jdGlvblBhcnNlci5oIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3dhc20vV0FTTUZ1bmN0aW9uUGFyc2VyLmgKaW5kZXggYTMwMDdiMWM2NGU1MzcwNGNlMWM1
ZjNiMGE3MzU5ZTFkNGQ2MTZmZi4uNDMzZDExNDZmMTJiNGE4Y2ZhNjAyOGNmOTQwMWNjNWM0MTFm
MjI2NyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV0FTTUZ1bmN0aW9u
UGFyc2VyLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV0FTTUZ1bmN0aW9uUGFy
c2VyLmgKQEAgLTg4LDYgKzg4LDEzIEBAIHByaXZhdGU6CiAgICAgdGVtcGxhdGUgPGNsYXNzIENv
bnRleHQ+IENvbnRleHRFeHByZXNzaW9uIHBhcnNlQmluYXJ5RXhwcmVzc2lvbkkzMihDb250ZXh0
JiwgV0FTTU9wRXhwcmVzc2lvbkkzMik7CiAgICAgdGVtcGxhdGUgPGNsYXNzIENvbnRleHQ+IENv
bnRleHRFeHByZXNzaW9uIHBhcnNlUmVsYXRpb25hbEkzMkV4cHJlc3Npb25JMzIoQ29udGV4dCYs
IFdBU01PcEV4cHJlc3Npb25JMzIpOwogCisgICAgdGVtcGxhdGUgPGNsYXNzIENvbnRleHQ+IENv
bnRleHRFeHByZXNzaW9uIHBhcnNlRXhwcmVzc2lvbkY2NChDb250ZXh0Jik7CisgICAgdGVtcGxh
dGUgPGNsYXNzIENvbnRleHQ+IENvbnRleHRFeHByZXNzaW9uIHBhcnNlQ29uc3RhbnRQb29sSW5k
ZXhFeHByZXNzaW9uRjY0KENvbnRleHQmLCB1aW50MzJfdCBjb25zdGFudEluZGV4KTsKKyAgICB0
ZW1wbGF0ZSA8Y2xhc3MgQ29udGV4dD4gQ29udGV4dEV4cHJlc3Npb24gcGFyc2VDb25zdGFudFBv
b2xJbmRleEV4cHJlc3Npb25GNjQoQ29udGV4dCYpOworICAgIHRlbXBsYXRlIDxjbGFzcyBDb250
ZXh0PiBDb250ZXh0RXhwcmVzc2lvbiBwYXJzZUltbWVkaWF0ZUV4cHJlc3Npb25GNjQoQ29udGV4
dCYpOworICAgIHRlbXBsYXRlIDxjbGFzcyBDb250ZXh0PiBDb250ZXh0RXhwcmVzc2lvbiBwYXJz
ZUdldExvY2FsRXhwcmVzc2lvbkY2NChDb250ZXh0JiwgdWludDMyX3QgbG9jYWxJbmRleCk7Cisg
ICAgdGVtcGxhdGUgPGNsYXNzIENvbnRleHQ+IENvbnRleHRFeHByZXNzaW9uIHBhcnNlR2V0TG9j
YWxFeHByZXNzaW9uRjY0KENvbnRleHQmKTsKKwogICAgIEpTV0FTTU1vZHVsZSogbV9tb2R1bGU7
CiAgICAgV0FTTVJlYWRlciBtX3JlYWRlcjsKICAgICBzaXplX3QgbV9mdW5jdGlvbkluZGV4Owpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV0FTTUZ1bmN0aW9uU3ludGF4
Q2hlY2tlci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV0FTTUZ1bmN0aW9uU3ludGF4
Q2hlY2tlci5oCmluZGV4IGE4NDVlOWUxZWRiOGI5MTg5OTcxOWE4NjRjMzExNzJiM2IwZTBlNDgu
LmMwNmU2MWYwYWNiNjM0MWI5MGQyZTVlYzA4YWUyMzkwZDM0NDQ3ZmEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dBU01GdW5jdGlvblN5bnRheENoZWNrZXIuaAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XQVNNRnVuY3Rpb25TeW50YXhDaGVja2VyLmgK
QEAgLTY1LDYgKzY1LDEzIEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIFVOVVNFRDsKICAgICB9
CiAKKyAgICBpbnQgYnVpbGRJbW1lZGlhdGVGNjQodWludDMyX3QpCisgICAgeworICAgICAgICBt
X3RlbXBTdGFja1RvcCsrOworICAgICAgICB1cGRhdGVUZW1wU3RhY2tIZWlnaHQoKTsKKyAgICAg
ICAgcmV0dXJuIFVOVVNFRDsKKyAgICB9CisKICAgICBpbnQgYnVpbGRHZXRMb2NhbCh1aW50MzJf
dCwgV0FTTVR5cGUpCiAgICAgewogICAgICAgICBtX3RlbXBTdGFja1RvcCsrOwpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV0FTTVJlYWRlci5jcHAgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvd2FzbS9XQVNNUmVhZGVyLmNwcAppbmRleCBkNTVkMDJlNzQwZTI4NWJlZjE3
YzZmZjhlY2I3YzIyZTNjNjFkZGRhLi4yYzVjOGU3YjU4NGM1YjA5YTBhYmEwZGJjYTgxZTNhZTc1
MjQyNDA1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XQVNNUmVhZGVy
LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XQVNNUmVhZGVyLmNwcApAQCAt
MTg5LDYgKzE4OSwxMyBAQCBib29sIFdBU01SZWFkZXI6OnJlYWRPcEV4cHJlc3Npb25JMzIoYm9v
bCYgaGFzSW1tZWRpYXRlLCBXQVNNT3BFeHByZXNzaW9uSTMyJiBvcAogICAgICAgICBzdGF0aWNf
Y2FzdDx1aW50OF90PihXQVNNT3BFeHByZXNzaW9uSTMyV2l0aEltbWVkaWF0ZTo6TnVtYmVyT2ZX
QVNNT3BFeHByZXNzaW9uSTMyV2l0aEltbWVkaWF0ZXMpKTsKIH0KIAorYm9vbCBXQVNNUmVhZGVy
OjpyZWFkT3BFeHByZXNzaW9uRjY0KGJvb2wmIGhhc0ltbWVkaWF0ZSwgV0FTTU9wRXhwcmVzc2lv
bkY2NCYgb3AsIFdBU01PcEV4cHJlc3Npb25GNjRXaXRoSW1tZWRpYXRlJiBvcFdpdGhJbW1lZGlh
dGUsIHVpbnQ4X3QmIGltbWVkaWF0ZSkKK3sKKyAgICByZXR1cm4gcmVhZE9wKGhhc0ltbWVkaWF0
ZSwgb3AsIG9wV2l0aEltbWVkaWF0ZSwgaW1tZWRpYXRlLAorICAgICAgICBzdGF0aWNfY2FzdDx1
aW50OF90PihXQVNNT3BFeHByZXNzaW9uRjY0OjpOdW1iZXJPZldBU01PcEV4cHJlc3Npb25GNjRz
KSwKKyAgICAgICAgc3RhdGljX2Nhc3Q8dWludDhfdD4oV0FTTU9wRXhwcmVzc2lvbkY2NFdpdGhJ
bW1lZGlhdGU6Ok51bWJlck9mV0FTTU9wRXhwcmVzc2lvbkY2NFdpdGhJbW1lZGlhdGVzKSk7Cit9
CisKIGJvb2wgV0FTTVJlYWRlcjo6cmVhZFZhcmlhYmxlVHlwZXMoYm9vbCYgaGFzSW1tZWRpYXRl
LCBXQVNNVmFyaWFibGVUeXBlcyYgdmFyaWFibGVUeXBlcywgV0FTTVZhcmlhYmxlVHlwZXNXaXRo
SW1tZWRpYXRlJiB2YXJpYWJsZVR5cGVzV2l0aEltbWVkaWF0ZSwgdWludDhfdCYgaW1tZWRpYXRl
KQogewogICAgIHJldHVybiByZWFkT3AoaGFzSW1tZWRpYXRlLCB2YXJpYWJsZVR5cGVzLCB2YXJp
YWJsZVR5cGVzV2l0aEltbWVkaWF0ZSwgaW1tZWRpYXRlLApkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3dhc20vV0FTTVJlYWRlci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dh
c20vV0FTTVJlYWRlci5oCmluZGV4IDQwNTgyNTMxZjE4N2UxNmE5NmFlMDI4MDgzZjUyZTIzNWFh
MGU0MzguLjdhMmQxMzM3YTA3MWFmOWU3NjZiYTMzYmE4ZTE1NjQ0NGEwY2RiZjkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dBU01SZWFkZXIuaAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvd2FzbS9XQVNNUmVhZGVyLmgKQEAgLTU2LDYgKzU2LDcgQEAgcHVibGlj
OgogICAgIGJvb2wgcmVhZEV4cG9ydEZvcm1hdChXQVNNRXhwb3J0Rm9ybWF0JiByZXN1bHQpOwog
ICAgIGJvb2wgcmVhZE9wU3RhdGVtZW50KGJvb2wmIGhhc0ltbWVkaWF0ZSwgV0FTTU9wU3RhdGVt
ZW50JiwgV0FTTU9wU3RhdGVtZW50V2l0aEltbWVkaWF0ZSYsIHVpbnQ4X3QmIGltbWVkaWF0ZSk7
CiAgICAgYm9vbCByZWFkT3BFeHByZXNzaW9uSTMyKGJvb2wmIGhhc0ltbWVkaWF0ZSwgV0FTTU9w
RXhwcmVzc2lvbkkzMiYsIFdBU01PcEV4cHJlc3Npb25JMzJXaXRoSW1tZWRpYXRlJiwgdWludDhf
dCYgaW1tZWRpYXRlKTsKKyAgICBib29sIHJlYWRPcEV4cHJlc3Npb25GNjQoYm9vbCYgaGFzSW1t
ZWRpYXRlLCBXQVNNT3BFeHByZXNzaW9uRjY0JiwgV0FTTU9wRXhwcmVzc2lvbkY2NFdpdGhJbW1l
ZGlhdGUmLCB1aW50OF90JiBpbW1lZGlhdGUpOwogICAgIGJvb2wgcmVhZFZhcmlhYmxlVHlwZXMo
Ym9vbCYgaGFzSW1tZWRpYXRlLCBXQVNNVmFyaWFibGVUeXBlcyYsIFdBU01WYXJpYWJsZVR5cGVz
V2l0aEltbWVkaWF0ZSYsIHVpbnQ4X3QmIGltbWVkaWF0ZSk7CiAgICAgYm9vbCByZWFkU3dpdGNo
Q2FzZShXQVNNU3dpdGNoQ2FzZSYgcmVzdWx0KTsKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>260714</attachid>
            <date>2015-09-06 13:11:35 -0700</date>
            <delta_ts>2015-09-07 02:03:04 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>diff.txt</filename>
            <type>text/plain</type>
            <size>15933</size>
            <attacher name="Sukolsak Sakshuwong">sukolsak</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IDRmZWNjN2Q1MGJkZDhmMDZlYzM2OGExNWQ2ZjEy
MjQ3ODlmYmI4ZmYuLmYxYWY0NDNmNzdkZDA0ODQ0MDA1YjM1YzAzNThkZGI1MzlmMDA2OWYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMyIEBACisyMDE1LTA5LTA2ICBTdWtv
bHNhayBTYWtzaHV3b25nICA8c3Vrb2xzYWtAZ21haWwuY29tPgorCisgICAgICAgIEFkZCBpbml0
aWFsIHN1cHBvcnQgZm9yIGRvdWJsZXMgaW4gV2ViQXNzZW1ibHkKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0ODkxMworCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEltcGxlbWVudCB0aGUgQ29uc3RhbnRQb29s
SW5kZXgsIEltbWVkaWF0ZSwgYW5kIEdldExvY2FsIGluc3RydWN0aW9ucworICAgICAgICBmb3Ig
ZG91YmxlcyAoZmxvYXQ2NCkgaW4gV2ViQXNzZW1ibHkuCisKKyAgICAgICAgKiB3YXNtL1dBU01D
b25zdGFudHMuaDoKKyAgICAgICAgKiB3YXNtL1dBU01GdW5jdGlvbkNvbXBpbGVyLmg6CisgICAg
ICAgIChKU0M6OldBU01GdW5jdGlvbkNvbXBpbGVyOjpidWlsZFNldExvY2FsKToKKyAgICAgICAg
KEpTQzo6V0FTTUZ1bmN0aW9uQ29tcGlsZXI6OmJ1aWxkSW1tZWRpYXRlSTMyKToKKyAgICAgICAg
KEpTQzo6V0FTTUZ1bmN0aW9uQ29tcGlsZXI6OmJ1aWxkSW1tZWRpYXRlRjY0KToKKyAgICAgICAg
KEpTQzo6V0FTTUZ1bmN0aW9uQ29tcGlsZXI6OmJ1aWxkR2V0TG9jYWwpOgorICAgICAgICAqIHdh
c20vV0FTTUZ1bmN0aW9uUGFyc2VyLmNwcDoKKyAgICAgICAgKEpTQzo6V0FTTUZ1bmN0aW9uUGFy
c2VyOjpwYXJzZUV4cHJlc3Npb24pOgorICAgICAgICAoSlNDOjpXQVNNRnVuY3Rpb25QYXJzZXI6
OnBhcnNlRXhwcmVzc2lvbkY2NCk6CisgICAgICAgIChKU0M6OldBU01GdW5jdGlvblBhcnNlcjo6
cGFyc2VDb25zdGFudFBvb2xJbmRleEV4cHJlc3Npb25GNjQpOgorICAgICAgICAoSlNDOjpXQVNN
RnVuY3Rpb25QYXJzZXI6OnBhcnNlSW1tZWRpYXRlRXhwcmVzc2lvbkY2NCk6CisgICAgICAgIChK
U0M6OldBU01GdW5jdGlvblBhcnNlcjo6cGFyc2VHZXRMb2NhbEV4cHJlc3Npb25GNjQpOgorICAg
ICAgICAqIHdhc20vV0FTTUZ1bmN0aW9uUGFyc2VyLmg6CisgICAgICAgICogd2FzbS9XQVNNRnVu
Y3Rpb25TeW50YXhDaGVja2VyLmg6CisgICAgICAgIChKU0M6OldBU01GdW5jdGlvblN5bnRheENo
ZWNrZXI6OmJ1aWxkSW1tZWRpYXRlRjY0KToKKyAgICAgICAgKiB3YXNtL1dBU01SZWFkZXIuY3Bw
OgorICAgICAgICAoSlNDOjpXQVNNUmVhZGVyOjpyZWFkT3BFeHByZXNzaW9uRjY0KToKKyAgICAg
ICAgKiB3YXNtL1dBU01SZWFkZXIuaDoKKwogMjAxNS0wOS0wNCAgU3Vrb2xzYWsgU2Frc2h1d29u
ZyAgPHN1a29sc2FrQGdtYWlsLmNvbT4KIAogICAgICAgICBJbXBsZW1lbnQgYWxsIHRoZSBhcml0
aG1ldGljIGFuZCBsb2dpY2FsIGluc3RydWN0aW9ucyBpbiBXZWJBc3NlbWJseQpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV0FTTUNvbnN0YW50cy5oIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3dhc20vV0FTTUNvbnN0YW50cy5oCmluZGV4IDM4OGI4ZTE1Zjk3MmE3OGY1
YTU3Y2I0ZTFjNjk1ODAyYTIzMDc4ZDUuLjFhMTdiZjY2YWZjMWE2NDBmNmNkYzcyYmE2ZGVkYzli
ZDhiZjY3Y2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dBU01Db25z
dGFudHMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XQVNNQ29uc3RhbnRzLmgK
QEAgLTE3MCw2ICsxNzAsNTYgQEAgZW51bSBjbGFzcyBXQVNNT3BFeHByZXNzaW9uSTMyV2l0aElt
bWVkaWF0ZSA6IHVpbnQ4X3QgewogICAgIE51bWJlck9mV0FTTU9wRXhwcmVzc2lvbkkzMldpdGhJ
bW1lZGlhdGVzCiB9OwogCitlbnVtIGNsYXNzIFdBU01PcEV4cHJlc3Npb25GNjQgOiB1aW50OF90
IHsKKyAgICBDb25zdGFudFBvb2xJbmRleCwKKyAgICBJbW1lZGlhdGUsCisgICAgR2V0TG9jYWws
CisgICAgR2V0R2xvYmFsLAorICAgIFNldExvY2FsLAorICAgIFNldEdsb2JhbCwKKyAgICBMb2Fk
LAorICAgIExvYWRXaXRoT2Zmc2V0LAorICAgIFN0b3JlLAorICAgIFN0b3JlV2l0aE9mZnNldCwK
KyAgICBDYWxsSW50ZXJuYWwsCisgICAgQ2FsbEluZGlyZWN0LAorICAgIENhbGxJbXBvcnQsCisg
ICAgQ29uZGl0aW9uYWwsCisgICAgQ29tbWEsCisgICAgRnJvbVMzMiwKKyAgICBGcm9tVTMyLAor
ICAgIEZyb21GMzIsCisgICAgTmVnYXRlLAorICAgIEFkZCwKKyAgICBTdWIsCisgICAgTXVsLAor
ICAgIERpdiwKKyAgICBNb2QsCisgICAgTWluLAorICAgIE1heCwKKyAgICBBYnMsCisgICAgQ2Vp
bCwKKyAgICBGbG9vciwKKyAgICBTcXJ0LAorICAgIENvcywKKyAgICBTaW4sCisgICAgVGFuLAor
ICAgIEFDb3MsCisgICAgQVNpbiwKKyAgICBBVGFuLAorICAgIEFUYW4yLAorICAgIEV4cCwKKyAg
ICBMbiwKKyAgICBQb3csCisgICAgTnVtYmVyT2ZXQVNNT3BFeHByZXNzaW9uRjY0cworfTsKKwor
ZW51bSBjbGFzcyBXQVNNT3BFeHByZXNzaW9uRjY0V2l0aEltbWVkaWF0ZSA6IHVpbnQ4X3Qgewor
ICAgIENvbnN0YW50UG9vbEluZGV4LAorICAgIEdldExvY2FsLAorICAgIE51bWJlck9mV0FTTU9w
RXhwcmVzc2lvbkY2NFdpdGhJbW1lZGlhdGVzCit9OworCiBlbnVtIGNsYXNzIFdBU01WYXJpYWJs
ZVR5cGVzIDogdWludDhfdCB7CiAgICAgSTMyID0gMSA8PCAwLAogICAgIEYzMiA9IDEgPDwgMSwK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dBU01GdW5jdGlvbkNvbXBp
bGVyLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XQVNNRnVuY3Rpb25Db21waWxlci5o
CmluZGV4IGU5NzkyMTZhMTZhOWMzNmYyODNkMTczOWJlMjJhNzJhODNkMTA0NzEuLjQ5NzU0Yjg5
NDhjZTdhNzI4Yzk2ZmM0ZDhlZWY0OTdlNTY5ODkwMjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS93YXNtL1dBU01GdW5jdGlvbkNvbXBpbGVyLmgKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3dhc20vV0FTTUZ1bmN0aW9uQ29tcGlsZXIuaApAQCAtMTgzLDYgKzE4MywxMSBA
QCBwdWJsaWM6CiAgICAgICAgICAgICBtX3RlbXBTdGFja1RvcC0tOwogICAgICAgICAgICAgc3Rv
cmUzMihHUFJJbmZvOjpyZWdUMCwgbG9jYWxBZGRyZXNzKGxvY2FsSW5kZXgpKTsKICAgICAgICAg
ICAgIGJyZWFrOworICAgICAgICBjYXNlIFdBU01UeXBlOjpGNjQ6CisgICAgICAgICAgICBsb2Fk
NjQodGVtcG9yYXJ5QWRkcmVzcyhtX3RlbXBTdGFja1RvcCAtIDEpLCBHUFJJbmZvOjpyZWdUMCk7
CisgICAgICAgICAgICBtX3RlbXBTdGFja1RvcC0tOworICAgICAgICAgICAgc3RvcmU2NChHUFJJ
bmZvOjpyZWdUMCwgbG9jYWxBZGRyZXNzKGxvY2FsSW5kZXgpKTsKKyAgICAgICAgICAgIGJyZWFr
OwogICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAg
ICAgICAgIH0KQEAgLTIwOCw3ICsyMTMsMTMgQEAgcHVibGljOgogCiAgICAgaW50IGJ1aWxkSW1t
ZWRpYXRlSTMyKHVpbnQzMl90IGltbWVkaWF0ZSkKICAgICB7Ci0gICAgICAgIHN0b3JlMzIoVHJ1
c3RlZEltbTMyKGltbWVkaWF0ZSksIHRlbXBvcmFyeUFkZHJlc3MobV90ZW1wU3RhY2tUb3ArKykp
OworICAgICAgICBzdG9yZTMyKEltbTMyKGltbWVkaWF0ZSksIHRlbXBvcmFyeUFkZHJlc3MobV90
ZW1wU3RhY2tUb3ArKykpOworICAgICAgICByZXR1cm4gVU5VU0VEOworICAgIH0KKworICAgIGlu
dCBidWlsZEltbWVkaWF0ZUY2NChkb3VibGUgaW1tZWRpYXRlKQorICAgIHsKKyAgICAgICAgc3Rv
cmU2NChJbW02NChiaXR3aXNlX2Nhc3Q8aW50NjRfdD4oaW1tZWRpYXRlKSksIHRlbXBvcmFyeUFk
ZHJlc3MobV90ZW1wU3RhY2tUb3ArKykpOwogICAgICAgICByZXR1cm4gVU5VU0VEOwogICAgIH0K
IApAQCAtMjE3LDggKzIyOCwxMSBAQCBwdWJsaWM6CiAgICAgICAgIHN3aXRjaCAodHlwZSkgewog
ICAgICAgICBjYXNlIFdBU01UeXBlOjpJMzI6CiAgICAgICAgICAgICBsb2FkMzIobG9jYWxBZGRy
ZXNzKGxvY2FsSW5kZXgpLCBHUFJJbmZvOjpyZWdUMCk7Ci0gICAgICAgICAgICBtX3RlbXBTdGFj
a1RvcCsrOwotICAgICAgICAgICAgc3RvcmUzMihHUFJJbmZvOjpyZWdUMCwgdGVtcG9yYXJ5QWRk
cmVzcyhtX3RlbXBTdGFja1RvcCAtIDEpKTsKKyAgICAgICAgICAgIHN0b3JlMzIoR1BSSW5mbzo6
cmVnVDAsIHRlbXBvcmFyeUFkZHJlc3MobV90ZW1wU3RhY2tUb3ArKykpOworICAgICAgICAgICAg
YnJlYWs7CisgICAgICAgIGNhc2UgV0FTTVR5cGU6OkY2NDoKKyAgICAgICAgICAgIGxvYWQ2NChs
b2NhbEFkZHJlc3MobG9jYWxJbmRleCksIEdQUkluZm86OnJlZ1QwKTsKKyAgICAgICAgICAgIHN0
b3JlNjQoR1BSSW5mbzo6cmVnVDAsIHRlbXBvcmFyeUFkZHJlc3MobV90ZW1wU3RhY2tUb3ArKykp
OwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICBBU1NF
UlRfTk9UX1JFQUNIRUQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNt
L1dBU01GdW5jdGlvblBhcnNlci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XQVNN
RnVuY3Rpb25QYXJzZXIuY3BwCmluZGV4IDY0NjBmNmJmNmQzZTA0ZmJlNGVhZTU5OWNhMjM4NmI0
YWYyNjg2NzQuLmY2OWMxNzA5ZjlhZjI0MWI2ZjZhNjNhMTRhODViMjgxOTdlY2QyZTQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dBU01GdW5jdGlvblBhcnNlci5jcHAK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV0FTTUZ1bmN0aW9uUGFyc2VyLmNwcApA
QCAtMzQsMTAgKzM0LDEyIEBACiAKICNkZWZpbmUgUFJPUEFHQVRFX0VSUk9SKCkgZG8geyBpZiAo
IW1fZXJyb3JNZXNzYWdlLmlzTnVsbCgpKSByZXR1cm4gMDsgfSB3aGlsZSAoMCkKICNkZWZpbmUg
RkFJTF9XSVRIX01FU1NBR0UoZXJyb3JNZXNzYWdlKSBkbyB7ICBtX2Vycm9yTWVzc2FnZSA9IGVy
cm9yTWVzc2FnZTsgcmV0dXJuIDA7IH0gd2hpbGUgKDApCisjZGVmaW5lIFJFQURfRE9VQkxFX09S
X0ZBSUwocmVzdWx0LCBlcnJvck1lc3NhZ2UpIGRvIHsgaWYgKCFtX3JlYWRlci5yZWFkRG91Ymxl
KHJlc3VsdCkpIEZBSUxfV0lUSF9NRVNTQUdFKGVycm9yTWVzc2FnZSk7IH0gd2hpbGUgKDApCiAj
ZGVmaW5lIFJFQURfQ09NUEFDVF9JTlQzMl9PUl9GQUlMKHJlc3VsdCwgZXJyb3JNZXNzYWdlKSBk
byB7IGlmICghbV9yZWFkZXIucmVhZENvbXBhY3RJbnQzMihyZXN1bHQpKSBGQUlMX1dJVEhfTUVT
U0FHRShlcnJvck1lc3NhZ2UpOyB9IHdoaWxlICgwKQogI2RlZmluZSBSRUFEX0NPTVBBQ1RfVUlO
VDMyX09SX0ZBSUwocmVzdWx0LCBlcnJvck1lc3NhZ2UpIGRvIHsgaWYgKCFtX3JlYWRlci5yZWFk
Q29tcGFjdFVJbnQzMihyZXN1bHQpKSBGQUlMX1dJVEhfTUVTU0FHRShlcnJvck1lc3NhZ2UpOyB9
IHdoaWxlICgwKQogI2RlZmluZSBSRUFEX09QX1NUQVRFTUVOVF9PUl9GQUlMKGhhc0ltbWVkaWF0
ZSwgb3AsIG9wV2l0aEltbWVkaWF0ZSwgaW1tZWRpYXRlLCBlcnJvck1lc3NhZ2UpIGRvIHsgaWYg
KCFtX3JlYWRlci5yZWFkT3BTdGF0ZW1lbnQoaGFzSW1tZWRpYXRlLCBvcCwgb3BXaXRoSW1tZWRp
YXRlLCBpbW1lZGlhdGUpKSBGQUlMX1dJVEhfTUVTU0FHRShlcnJvck1lc3NhZ2UpOyB9IHdoaWxl
ICgwKQogI2RlZmluZSBSRUFEX09QX0VYUFJFU1NJT05fSTMyX09SX0ZBSUwoaGFzSW1tZWRpYXRl
LCBvcCwgb3BXaXRoSW1tZWRpYXRlLCBpbW1lZGlhdGUsIGVycm9yTWVzc2FnZSkgZG8geyBpZiAo
IW1fcmVhZGVyLnJlYWRPcEV4cHJlc3Npb25JMzIoaGFzSW1tZWRpYXRlLCBvcCwgb3BXaXRoSW1t
ZWRpYXRlLCBpbW1lZGlhdGUpKSBGQUlMX1dJVEhfTUVTU0FHRShlcnJvck1lc3NhZ2UpOyB9IHdo
aWxlICgwKQorI2RlZmluZSBSRUFEX09QX0VYUFJFU1NJT05fRjY0X09SX0ZBSUwoaGFzSW1tZWRp
YXRlLCBvcCwgb3BXaXRoSW1tZWRpYXRlLCBpbW1lZGlhdGUsIGVycm9yTWVzc2FnZSkgZG8geyBp
ZiAoIW1fcmVhZGVyLnJlYWRPcEV4cHJlc3Npb25GNjQoaGFzSW1tZWRpYXRlLCBvcCwgb3BXaXRo
SW1tZWRpYXRlLCBpbW1lZGlhdGUpKSBGQUlMX1dJVEhfTUVTU0FHRShlcnJvck1lc3NhZ2UpOyB9
IHdoaWxlICgwKQogI2RlZmluZSBSRUFEX1ZBUklBQkxFX1RZUEVTX09SX0ZBSUwoaGFzSW1tZWRp
YXRlLCB2YXJpYWJsZVR5cGVzLCB2YXJpYWJsZVR5cGVzV2l0aEltbWVkaWF0ZSwgaW1tZWRpYXRl
LCBlcnJvck1lc3NhZ2UpIGRvIHsgaWYgKCFtX3JlYWRlci5yZWFkVmFyaWFibGVUeXBlcyhoYXNJ
bW1lZGlhdGUsIHZhcmlhYmxlVHlwZXMsIHZhcmlhYmxlVHlwZXNXaXRoSW1tZWRpYXRlLCBpbW1l
ZGlhdGUpKSBGQUlMX1dJVEhfTUVTU0FHRShlcnJvck1lc3NhZ2UpOyB9IHdoaWxlICgwKQogI2Rl
ZmluZSBSRUFEX1NXSVRDSF9DQVNFX09SX0ZBSUwocmVzdWx0LCBlcnJvck1lc3NhZ2UpIGRvIHsg
aWYgKCFtX3JlYWRlci5yZWFkU3dpdGNoQ2FzZShyZXN1bHQpKSBGQUlMX1dJVEhfTUVTU0FHRShl
cnJvck1lc3NhZ2UpOyB9IHdoaWxlICgwKQogI2RlZmluZSBGQUlMX0lGX0ZBTFNFKGNvbmRpdGlv
biwgZXJyb3JNZXNzYWdlKSBkbyB7IGlmICghKGNvbmRpdGlvbikpIEZBSUxfV0lUSF9NRVNTQUdF
KGVycm9yTWVzc2FnZSk7IH0gd2hpbGUgKDApCkBAIC00MDMsOCArNDA1LDkgQEAgQ29udGV4dEV4
cHJlc3Npb24gV0FTTUZ1bmN0aW9uUGFyc2VyOjpwYXJzZUV4cHJlc3Npb24oQ29udGV4dCYgY29u
dGV4dCwgV0FTTUV4cHIKICAgICBzd2l0Y2ggKGV4cHJlc3Npb25UeXBlKSB7CiAgICAgY2FzZSBX
QVNNRXhwcmVzc2lvblR5cGU6OkkzMjoKICAgICAgICAgcmV0dXJuIHBhcnNlRXhwcmVzc2lvbkkz
Mihjb250ZXh0KTsKLSAgICBjYXNlIFdBU01FeHByZXNzaW9uVHlwZTo6RjMyOgogICAgIGNhc2Ug
V0FTTUV4cHJlc3Npb25UeXBlOjpGNjQ6CisgICAgICAgIHJldHVybiBwYXJzZUV4cHJlc3Npb25G
NjQoY29udGV4dCk7CisgICAgY2FzZSBXQVNNRXhwcmVzc2lvblR5cGU6OkYzMjoKICAgICBjYXNl
IFdBU01FeHByZXNzaW9uVHlwZTo6Vm9pZDoKICAgICAgICAgLy8gRklYTUU6IEltcGxlbWVudCB0
aGVzZSBpbnN0cnVjdGlvbnMuCiAgICAgICAgIEZBSUxfV0lUSF9NRVNTQUdFKCJVbnN1cHBvcnRl
ZCBpbnN0cnVjdGlvbi4iKTsKQEAgLTU5Niw2ICs1OTksMTEzIEBAIENvbnRleHRFeHByZXNzaW9u
IFdBU01GdW5jdGlvblBhcnNlcjo6cGFyc2VSZWxhdGlvbmFsSTMyRXhwcmVzc2lvbkkzMihDb250
ZXh0JiBjCiAgICAgcmV0dXJuIGNvbnRleHQuYnVpbGRSZWxhdGlvbmFsSTMyKGxlZnQsIHJpZ2h0
LCBvcCk7CiB9CiAKK3RlbXBsYXRlIDxjbGFzcyBDb250ZXh0PgorQ29udGV4dEV4cHJlc3Npb24g
V0FTTUZ1bmN0aW9uUGFyc2VyOjpwYXJzZUV4cHJlc3Npb25GNjQoQ29udGV4dCYgY29udGV4dCkK
K3sKKyAgICBib29sIGhhc0ltbWVkaWF0ZTsKKyAgICBXQVNNT3BFeHByZXNzaW9uRjY0IG9wOwor
ICAgIFdBU01PcEV4cHJlc3Npb25GNjRXaXRoSW1tZWRpYXRlIG9wV2l0aEltbWVkaWF0ZTsKKyAg
ICB1aW50OF90IGltbWVkaWF0ZTsKKyAgICBSRUFEX09QX0VYUFJFU1NJT05fRjY0X09SX0ZBSUwo
aGFzSW1tZWRpYXRlLCBvcCwgb3BXaXRoSW1tZWRpYXRlLCBpbW1lZGlhdGUsICJDYW5ub3QgcmVh
ZCB0aGUgZmxvYXQ2NCBleHByZXNzaW9uIG9wY29kZS4iKTsKKyAgICBpZiAoIWhhc0ltbWVkaWF0
ZSkgeworICAgICAgICBzd2l0Y2ggKG9wKSB7CisgICAgICAgIGNhc2UgV0FTTU9wRXhwcmVzc2lv
bkY2NDo6Q29uc3RhbnRQb29sSW5kZXg6CisgICAgICAgICAgICByZXR1cm4gcGFyc2VDb25zdGFu
dFBvb2xJbmRleEV4cHJlc3Npb25GNjQoY29udGV4dCk7CisgICAgICAgIGNhc2UgV0FTTU9wRXhw
cmVzc2lvbkY2NDo6SW1tZWRpYXRlOgorICAgICAgICAgICAgcmV0dXJuIHBhcnNlSW1tZWRpYXRl
RXhwcmVzc2lvbkY2NChjb250ZXh0KTsKKyAgICAgICAgY2FzZSBXQVNNT3BFeHByZXNzaW9uRjY0
OjpHZXRMb2NhbDoKKyAgICAgICAgICAgIHJldHVybiBwYXJzZUdldExvY2FsRXhwcmVzc2lvbkY2
NChjb250ZXh0KTsKKyAgICAgICAgY2FzZSBXQVNNT3BFeHByZXNzaW9uRjY0OjpOZWdhdGU6Cisg
ICAgICAgIGNhc2UgV0FTTU9wRXhwcmVzc2lvbkY2NDo6QWJzOgorICAgICAgICBjYXNlIFdBU01P
cEV4cHJlc3Npb25GNjQ6OkNlaWw6CisgICAgICAgIGNhc2UgV0FTTU9wRXhwcmVzc2lvbkY2NDo6
Rmxvb3I6CisgICAgICAgIGNhc2UgV0FTTU9wRXhwcmVzc2lvbkY2NDo6U3FydDoKKyAgICAgICAg
Y2FzZSBXQVNNT3BFeHByZXNzaW9uRjY0OjpDb3M6CisgICAgICAgIGNhc2UgV0FTTU9wRXhwcmVz
c2lvbkY2NDo6U2luOgorICAgICAgICBjYXNlIFdBU01PcEV4cHJlc3Npb25GNjQ6OlRhbjoKKyAg
ICAgICAgY2FzZSBXQVNNT3BFeHByZXNzaW9uRjY0OjpBQ29zOgorICAgICAgICBjYXNlIFdBU01P
cEV4cHJlc3Npb25GNjQ6OkFTaW46CisgICAgICAgIGNhc2UgV0FTTU9wRXhwcmVzc2lvbkY2NDo6
QVRhbjoKKyAgICAgICAgY2FzZSBXQVNNT3BFeHByZXNzaW9uRjY0OjpFeHA6CisgICAgICAgIGNh
c2UgV0FTTU9wRXhwcmVzc2lvbkY2NDo6TG46CisgICAgICAgIGNhc2UgV0FTTU9wRXhwcmVzc2lv
bkY2NDo6QWRkOgorICAgICAgICBjYXNlIFdBU01PcEV4cHJlc3Npb25GNjQ6OlN1YjoKKyAgICAg
ICAgY2FzZSBXQVNNT3BFeHByZXNzaW9uRjY0OjpNdWw6CisgICAgICAgIGNhc2UgV0FTTU9wRXhw
cmVzc2lvbkY2NDo6RGl2OgorICAgICAgICBjYXNlIFdBU01PcEV4cHJlc3Npb25GNjQ6OkFUYW4y
OgorICAgICAgICBjYXNlIFdBU01PcEV4cHJlc3Npb25GNjQ6OlBvdzoKKyAgICAgICAgY2FzZSBX
QVNNT3BFeHByZXNzaW9uRjY0OjpHZXRHbG9iYWw6CisgICAgICAgIGNhc2UgV0FTTU9wRXhwcmVz
c2lvbkY2NDo6U2V0TG9jYWw6CisgICAgICAgIGNhc2UgV0FTTU9wRXhwcmVzc2lvbkY2NDo6U2V0
R2xvYmFsOgorICAgICAgICBjYXNlIFdBU01PcEV4cHJlc3Npb25GNjQ6OkxvYWQ6CisgICAgICAg
IGNhc2UgV0FTTU9wRXhwcmVzc2lvbkY2NDo6TG9hZFdpdGhPZmZzZXQ6CisgICAgICAgIGNhc2Ug
V0FTTU9wRXhwcmVzc2lvbkY2NDo6U3RvcmU6CisgICAgICAgIGNhc2UgV0FTTU9wRXhwcmVzc2lv
bkY2NDo6U3RvcmVXaXRoT2Zmc2V0OgorICAgICAgICBjYXNlIFdBU01PcEV4cHJlc3Npb25GNjQ6
OkNhbGxJbnRlcm5hbDoKKyAgICAgICAgY2FzZSBXQVNNT3BFeHByZXNzaW9uRjY0OjpDYWxsSW5k
aXJlY3Q6CisgICAgICAgIGNhc2UgV0FTTU9wRXhwcmVzc2lvbkY2NDo6Q2FsbEltcG9ydDoKKyAg
ICAgICAgY2FzZSBXQVNNT3BFeHByZXNzaW9uRjY0OjpDb25kaXRpb25hbDoKKyAgICAgICAgY2Fz
ZSBXQVNNT3BFeHByZXNzaW9uRjY0OjpDb21tYToKKyAgICAgICAgY2FzZSBXQVNNT3BFeHByZXNz
aW9uRjY0OjpGcm9tUzMyOgorICAgICAgICBjYXNlIFdBU01PcEV4cHJlc3Npb25GNjQ6OkZyb21V
MzI6CisgICAgICAgIGNhc2UgV0FTTU9wRXhwcmVzc2lvbkY2NDo6RnJvbUYzMjoKKyAgICAgICAg
ICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQgdGhlc2UgaW5zdHJ1Y3Rpb25zLgorICAgICAgICAgICAg
RkFJTF9XSVRIX01FU1NBR0UoIlVuc3VwcG9ydGVkIGluc3RydWN0aW9uLiIpOworICAgICAgICBk
ZWZhdWx0OgorICAgICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgIH0KKyAg
ICB9IGVsc2UgeworICAgICAgICBzd2l0Y2ggKG9wV2l0aEltbWVkaWF0ZSkgeworICAgICAgICBj
YXNlIFdBU01PcEV4cHJlc3Npb25GNjRXaXRoSW1tZWRpYXRlOjpDb25zdGFudFBvb2xJbmRleDoK
KyAgICAgICAgICAgIHJldHVybiBwYXJzZUNvbnN0YW50UG9vbEluZGV4RXhwcmVzc2lvbkY2NChj
b250ZXh0LCBpbW1lZGlhdGUpOworICAgICAgICBjYXNlIFdBU01PcEV4cHJlc3Npb25GNjRXaXRo
SW1tZWRpYXRlOjpHZXRMb2NhbDoKKyAgICAgICAgICAgIHJldHVybiBwYXJzZUdldExvY2FsRXhw
cmVzc2lvbkY2NChjb250ZXh0LCBpbW1lZGlhdGUpOworICAgICAgICBkZWZhdWx0OgorICAgICAg
ICAgICAgRkFJTF9XSVRIX01FU1NBR0UoIlVuc3VwcG9ydGVkIGluc3RydWN0aW9uLiIpOworICAg
ICAgICB9CisgICAgfQorICAgIHJldHVybiAwOworfQorCit0ZW1wbGF0ZSA8Y2xhc3MgQ29udGV4
dD4KK0NvbnRleHRFeHByZXNzaW9uIFdBU01GdW5jdGlvblBhcnNlcjo6cGFyc2VDb25zdGFudFBv
b2xJbmRleEV4cHJlc3Npb25GNjQoQ29udGV4dCYgY29udGV4dCwgdWludDMyX3QgY29uc3RhbnRJ
bmRleCkKK3sKKyAgICBGQUlMX0lGX0ZBTFNFKGNvbnN0YW50SW5kZXggPCBtX21vZHVsZS0+ZjY0
Q29uc3RhbnRzKCkuc2l6ZSgpLCAiVGhlIGNvbnN0YW50IGluZGV4IGlzIGluY29ycmVjdC4iKTsK
KyAgICByZXR1cm4gY29udGV4dC5idWlsZEltbWVkaWF0ZUY2NChtX21vZHVsZS0+ZjY0Q29uc3Rh
bnRzKClbY29uc3RhbnRJbmRleF0pOworfQorCit0ZW1wbGF0ZSA8Y2xhc3MgQ29udGV4dD4KK0Nv
bnRleHRFeHByZXNzaW9uIFdBU01GdW5jdGlvblBhcnNlcjo6cGFyc2VDb25zdGFudFBvb2xJbmRl
eEV4cHJlc3Npb25GNjQoQ29udGV4dCYgY29udGV4dCkKK3sKKyAgICB1aW50MzJfdCBjb25zdGFu
dEluZGV4OworICAgIFJFQURfQ09NUEFDVF9VSU5UMzJfT1JfRkFJTChjb25zdGFudEluZGV4LCAi
Q2Fubm90IHJlYWQgdGhlIGNvbnN0YW50IGluZGV4LiIpOworICAgIHJldHVybiBwYXJzZUNvbnN0
YW50UG9vbEluZGV4RXhwcmVzc2lvbkY2NChjb250ZXh0LCBjb25zdGFudEluZGV4KTsKK30KKwor
dGVtcGxhdGUgPGNsYXNzIENvbnRleHQ+CitDb250ZXh0RXhwcmVzc2lvbiBXQVNNRnVuY3Rpb25Q
YXJzZXI6OnBhcnNlSW1tZWRpYXRlRXhwcmVzc2lvbkY2NChDb250ZXh0JiBjb250ZXh0KQorewor
ICAgIGRvdWJsZSBpbW1lZGlhdGU7CisgICAgUkVBRF9ET1VCTEVfT1JfRkFJTChpbW1lZGlhdGUs
ICJDYW5ub3QgcmVhZCB0aGUgaW1tZWRpYXRlLiIpOworICAgIHJldHVybiBjb250ZXh0LmJ1aWxk
SW1tZWRpYXRlRjY0KGltbWVkaWF0ZSk7Cit9CisKK3RlbXBsYXRlIDxjbGFzcyBDb250ZXh0Pgor
Q29udGV4dEV4cHJlc3Npb24gV0FTTUZ1bmN0aW9uUGFyc2VyOjpwYXJzZUdldExvY2FsRXhwcmVz
c2lvbkY2NChDb250ZXh0JiBjb250ZXh0LCB1aW50MzJfdCBsb2NhbEluZGV4KQoreworICAgIEZB
SUxfSUZfRkFMU0UobG9jYWxJbmRleCA8IG1fbG9jYWxUeXBlcy5zaXplKCksICJUaGUgbG9jYWwg
dmFyaWFibGUgaW5kZXggaXMgaW5jb3JyZWN0LiIpOworICAgIEZBSUxfSUZfRkFMU0UobV9sb2Nh
bFR5cGVzW2xvY2FsSW5kZXhdID09IFdBU01UeXBlOjpGNjQsICJFeHBlY3RlZCBhIGxvY2FsIHZh
cmlhYmxlIG9mIHR5cGUgZmxvYXQ2NC4iKTsKKyAgICByZXR1cm4gY29udGV4dC5idWlsZEdldExv
Y2FsKGxvY2FsSW5kZXgsIFdBU01UeXBlOjpGNjQpOworfQorCit0ZW1wbGF0ZSA8Y2xhc3MgQ29u
dGV4dD4KK0NvbnRleHRFeHByZXNzaW9uIFdBU01GdW5jdGlvblBhcnNlcjo6cGFyc2VHZXRMb2Nh
bEV4cHJlc3Npb25GNjQoQ29udGV4dCYgY29udGV4dCkKK3sKKyAgICB1aW50MzJfdCBsb2NhbElu
ZGV4OworICAgIFJFQURfQ09NUEFDVF9VSU5UMzJfT1JfRkFJTChsb2NhbEluZGV4LCAiQ2Fubm90
IHJlYWQgdGhlIGxvY2FsIGluZGV4LiIpOworICAgIHJldHVybiBwYXJzZUdldExvY2FsRXhwcmVz
c2lvbkY2NChjb250ZXh0LCBsb2NhbEluZGV4KTsKK30KKwogfSAvLyBuYW1lc3BhY2UgSlNDCiAK
ICNlbmRpZiAvLyBFTkFCTEUoV0VCQVNTRU1CTFkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvd2FzbS9XQVNNRnVuY3Rpb25QYXJzZXIuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS93YXNtL1dBU01GdW5jdGlvblBhcnNlci5oCmluZGV4IGEzMDA3YjFjNjRlNTM3MDRjZTFjNWYz
YjBhNzM1OWUxZDRkNjE2ZmYuLjQzM2QxMTQ2ZjEyYjRhOGNmYTYwMjhjZjk0MDFjYzVjNDExZjIy
NjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dBU01GdW5jdGlvblBh
cnNlci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dBU01GdW5jdGlvblBhcnNl
ci5oCkBAIC04OCw2ICs4OCwxMyBAQCBwcml2YXRlOgogICAgIHRlbXBsYXRlIDxjbGFzcyBDb250
ZXh0PiBDb250ZXh0RXhwcmVzc2lvbiBwYXJzZUJpbmFyeUV4cHJlc3Npb25JMzIoQ29udGV4dCYs
IFdBU01PcEV4cHJlc3Npb25JMzIpOwogICAgIHRlbXBsYXRlIDxjbGFzcyBDb250ZXh0PiBDb250
ZXh0RXhwcmVzc2lvbiBwYXJzZVJlbGF0aW9uYWxJMzJFeHByZXNzaW9uSTMyKENvbnRleHQmLCBX
QVNNT3BFeHByZXNzaW9uSTMyKTsKIAorICAgIHRlbXBsYXRlIDxjbGFzcyBDb250ZXh0PiBDb250
ZXh0RXhwcmVzc2lvbiBwYXJzZUV4cHJlc3Npb25GNjQoQ29udGV4dCYpOworICAgIHRlbXBsYXRl
IDxjbGFzcyBDb250ZXh0PiBDb250ZXh0RXhwcmVzc2lvbiBwYXJzZUNvbnN0YW50UG9vbEluZGV4
RXhwcmVzc2lvbkY2NChDb250ZXh0JiwgdWludDMyX3QgY29uc3RhbnRJbmRleCk7CisgICAgdGVt
cGxhdGUgPGNsYXNzIENvbnRleHQ+IENvbnRleHRFeHByZXNzaW9uIHBhcnNlQ29uc3RhbnRQb29s
SW5kZXhFeHByZXNzaW9uRjY0KENvbnRleHQmKTsKKyAgICB0ZW1wbGF0ZSA8Y2xhc3MgQ29udGV4
dD4gQ29udGV4dEV4cHJlc3Npb24gcGFyc2VJbW1lZGlhdGVFeHByZXNzaW9uRjY0KENvbnRleHQm
KTsKKyAgICB0ZW1wbGF0ZSA8Y2xhc3MgQ29udGV4dD4gQ29udGV4dEV4cHJlc3Npb24gcGFyc2VH
ZXRMb2NhbEV4cHJlc3Npb25GNjQoQ29udGV4dCYsIHVpbnQzMl90IGxvY2FsSW5kZXgpOworICAg
IHRlbXBsYXRlIDxjbGFzcyBDb250ZXh0PiBDb250ZXh0RXhwcmVzc2lvbiBwYXJzZUdldExvY2Fs
RXhwcmVzc2lvbkY2NChDb250ZXh0Jik7CisKICAgICBKU1dBU01Nb2R1bGUqIG1fbW9kdWxlOwog
ICAgIFdBU01SZWFkZXIgbV9yZWFkZXI7CiAgICAgc2l6ZV90IG1fZnVuY3Rpb25JbmRleDsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dBU01GdW5jdGlvblN5bnRheENo
ZWNrZXIuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dBU01GdW5jdGlvblN5bnRheENo
ZWNrZXIuaAppbmRleCBhODQ1ZTllMWVkYjhiOTE4OTk3MTlhODY0YzMxMTcyYjNiMGUwZTQ4Li5j
MDZlNjFmMGFjYjYzNDFiOTBkMmU1ZWMwOGFlMjM5MGQzNDQ0N2ZhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XQVNNRnVuY3Rpb25TeW50YXhDaGVja2VyLmgKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV0FTTUZ1bmN0aW9uU3ludGF4Q2hlY2tlci5oCkBA
IC02NSw2ICs2NSwxMyBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBVTlVTRUQ7CiAgICAgfQog
CisgICAgaW50IGJ1aWxkSW1tZWRpYXRlRjY0KHVpbnQzMl90KQorICAgIHsKKyAgICAgICAgbV90
ZW1wU3RhY2tUb3ArKzsKKyAgICAgICAgdXBkYXRlVGVtcFN0YWNrSGVpZ2h0KCk7CisgICAgICAg
IHJldHVybiBVTlVTRUQ7CisgICAgfQorCiAgICAgaW50IGJ1aWxkR2V0TG9jYWwodWludDMyX3Qs
IFdBU01UeXBlKQogICAgIHsKICAgICAgICAgbV90ZW1wU3RhY2tUb3ArKzsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dBU01SZWFkZXIuY3BwIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3dhc20vV0FTTVJlYWRlci5jcHAKaW5kZXggZDU1ZDAyZTc0MGUyODViZWYxN2M2
ZmY4ZWNiN2MyMmUzYzYxZGRkYS4uMmM1YzhlN2I1ODRjNWIwOWEwYWJhMGRiY2E4MWUzYWU3NTI0
MjQwNSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV0FTTVJlYWRlci5j
cHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV0FTTVJlYWRlci5jcHAKQEAgLTE4
OSw2ICsxODksMTMgQEAgYm9vbCBXQVNNUmVhZGVyOjpyZWFkT3BFeHByZXNzaW9uSTMyKGJvb2wm
IGhhc0ltbWVkaWF0ZSwgV0FTTU9wRXhwcmVzc2lvbkkzMiYgb3AKICAgICAgICAgc3RhdGljX2Nh
c3Q8dWludDhfdD4oV0FTTU9wRXhwcmVzc2lvbkkzMldpdGhJbW1lZGlhdGU6Ok51bWJlck9mV0FT
TU9wRXhwcmVzc2lvbkkzMldpdGhJbW1lZGlhdGVzKSk7CiB9CiAKK2Jvb2wgV0FTTVJlYWRlcjo6
cmVhZE9wRXhwcmVzc2lvbkY2NChib29sJiBoYXNJbW1lZGlhdGUsIFdBU01PcEV4cHJlc3Npb25G
NjQmIG9wLCBXQVNNT3BFeHByZXNzaW9uRjY0V2l0aEltbWVkaWF0ZSYgb3BXaXRoSW1tZWRpYXRl
LCB1aW50OF90JiBpbW1lZGlhdGUpCit7CisgICAgcmV0dXJuIHJlYWRPcChoYXNJbW1lZGlhdGUs
IG9wLCBvcFdpdGhJbW1lZGlhdGUsIGltbWVkaWF0ZSwKKyAgICAgICAgc3RhdGljX2Nhc3Q8dWlu
dDhfdD4oV0FTTU9wRXhwcmVzc2lvbkY2NDo6TnVtYmVyT2ZXQVNNT3BFeHByZXNzaW9uRjY0cyks
CisgICAgICAgIHN0YXRpY19jYXN0PHVpbnQ4X3Q+KFdBU01PcEV4cHJlc3Npb25GNjRXaXRoSW1t
ZWRpYXRlOjpOdW1iZXJPZldBU01PcEV4cHJlc3Npb25GNjRXaXRoSW1tZWRpYXRlcykpOworfQor
CiBib29sIFdBU01SZWFkZXI6OnJlYWRWYXJpYWJsZVR5cGVzKGJvb2wmIGhhc0ltbWVkaWF0ZSwg
V0FTTVZhcmlhYmxlVHlwZXMmIHZhcmlhYmxlVHlwZXMsIFdBU01WYXJpYWJsZVR5cGVzV2l0aElt
bWVkaWF0ZSYgdmFyaWFibGVUeXBlc1dpdGhJbW1lZGlhdGUsIHVpbnQ4X3QmIGltbWVkaWF0ZSkK
IHsKICAgICByZXR1cm4gcmVhZE9wKGhhc0ltbWVkaWF0ZSwgdmFyaWFibGVUeXBlcywgdmFyaWFi
bGVUeXBlc1dpdGhJbW1lZGlhdGUsIGltbWVkaWF0ZSwKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS93YXNtL1dBU01SZWFkZXIuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNt
L1dBU01SZWFkZXIuaAppbmRleCA0MDU4MjUzMWYxODdlMTZhOTZhZTAyODA4M2Y1MmUyMzVhYTBl
NDM4Li43YTJkMTMzN2EwNzFhZjllNzY2YmEzM2JhOGUxNTY0NDRhMGNkYmY5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XQVNNUmVhZGVyLmgKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3dhc20vV0FTTVJlYWRlci5oCkBAIC01Niw2ICs1Niw3IEBAIHB1YmxpYzoK
ICAgICBib29sIHJlYWRFeHBvcnRGb3JtYXQoV0FTTUV4cG9ydEZvcm1hdCYgcmVzdWx0KTsKICAg
ICBib29sIHJlYWRPcFN0YXRlbWVudChib29sJiBoYXNJbW1lZGlhdGUsIFdBU01PcFN0YXRlbWVu
dCYsIFdBU01PcFN0YXRlbWVudFdpdGhJbW1lZGlhdGUmLCB1aW50OF90JiBpbW1lZGlhdGUpOwog
ICAgIGJvb2wgcmVhZE9wRXhwcmVzc2lvbkkzMihib29sJiBoYXNJbW1lZGlhdGUsIFdBU01PcEV4
cHJlc3Npb25JMzImLCBXQVNNT3BFeHByZXNzaW9uSTMyV2l0aEltbWVkaWF0ZSYsIHVpbnQ4X3Qm
IGltbWVkaWF0ZSk7CisgICAgYm9vbCByZWFkT3BFeHByZXNzaW9uRjY0KGJvb2wmIGhhc0ltbWVk
aWF0ZSwgV0FTTU9wRXhwcmVzc2lvbkY2NCYsIFdBU01PcEV4cHJlc3Npb25GNjRXaXRoSW1tZWRp
YXRlJiwgdWludDhfdCYgaW1tZWRpYXRlKTsKICAgICBib29sIHJlYWRWYXJpYWJsZVR5cGVzKGJv
b2wmIGhhc0ltbWVkaWF0ZSwgV0FTTVZhcmlhYmxlVHlwZXMmLCBXQVNNVmFyaWFibGVUeXBlc1dp
dGhJbW1lZGlhdGUmLCB1aW50OF90JiBpbW1lZGlhdGUpOwogICAgIGJvb2wgcmVhZFN3aXRjaENh
c2UoV0FTTVN3aXRjaENhc2UmIHJlc3VsdCk7CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>260731</attachid>
            <date>2015-09-07 02:03:09 -0700</date>
            <delta_ts>2015-09-07 11:22:48 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-148913-20150907020305.patch</filename>
            <type>text/plain</type>
            <size>18711</size>
            <attacher name="Sukolsak Sakshuwong">sukolsak</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg5NDU4CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA2
N2NhOTc0OTU5MzJiOTA2OThmZDRhZWI4NWRmMzAyNTFhODYyYWQ3Li4zN2I3OTQ3MTkyNjAxYjIy
YjdhMjVkMzY2ZjU1OTY2ODViMDRhMWE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwzNiBAQAorMjAxNS0wOS0wNyAgU3Vrb2xzYWsgU2Frc2h1d29uZyAgPHN1a29sc2FrQGdt
YWlsLmNvbT4KKworICAgICAgICBBZGQgaW5pdGlhbCBzdXBwb3J0IGZvciBkb3VibGVzIGluIFdl
YkFzc2VtYmx5CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xNDg5MTMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBJbXBsZW1lbnQgdGhlIENvbnN0YW50UG9vbEluZGV4LCBJbW1lZGlhdGUsIGFuZCBHZXRMb2Nh
bCBpbnN0cnVjdGlvbnMKKyAgICAgICAgZm9yIGRvdWJsZXMgKGZsb2F0NjQpIGluIFdlYkFzc2Vt
Ymx5LgorCisgICAgICAgICogdGVzdHMvc3RyZXNzL3dhc20tYXJpdGhtZXRpYy1mbG9hdDY0Lmpz
OiBBZGRlZC4KKyAgICAgICAgKHNob3VsZEJlKToKKyAgICAgICAgKiB0ZXN0cy9zdHJlc3Mvd2Fz
bS9hcml0aG1ldGljLWZsb2F0NjQud2FzbTogQWRkZWQuCisgICAgICAgICogd2FzbS9XQVNNQ29u
c3RhbnRzLmg6CisgICAgICAgICogd2FzbS9XQVNNRnVuY3Rpb25Db21waWxlci5oOgorICAgICAg
ICAoSlNDOjpXQVNNRnVuY3Rpb25Db21waWxlcjo6YnVpbGRTZXRMb2NhbCk6CisgICAgICAgIChK
U0M6OldBU01GdW5jdGlvbkNvbXBpbGVyOjpidWlsZFJldHVybik6CisgICAgICAgIChKU0M6OldB
U01GdW5jdGlvbkNvbXBpbGVyOjpidWlsZEltbWVkaWF0ZUkzMik6CisgICAgICAgIChKU0M6OldB
U01GdW5jdGlvbkNvbXBpbGVyOjpidWlsZEltbWVkaWF0ZUY2NCk6CisgICAgICAgIChKU0M6OldB
U01GdW5jdGlvbkNvbXBpbGVyOjpidWlsZEdldExvY2FsKToKKyAgICAgICAgKiB3YXNtL1dBU01G
dW5jdGlvblBhcnNlci5jcHA6CisgICAgICAgIChKU0M6OldBU01GdW5jdGlvblBhcnNlcjo6cGFy
c2VFeHByZXNzaW9uKToKKyAgICAgICAgKEpTQzo6V0FTTUZ1bmN0aW9uUGFyc2VyOjpwYXJzZUV4
cHJlc3Npb25GNjQpOgorICAgICAgICAoSlNDOjpXQVNNRnVuY3Rpb25QYXJzZXI6OnBhcnNlQ29u
c3RhbnRQb29sSW5kZXhFeHByZXNzaW9uRjY0KToKKyAgICAgICAgKEpTQzo6V0FTTUZ1bmN0aW9u
UGFyc2VyOjpwYXJzZUltbWVkaWF0ZUV4cHJlc3Npb25GNjQpOgorICAgICAgICAoSlNDOjpXQVNN
RnVuY3Rpb25QYXJzZXI6OnBhcnNlR2V0TG9jYWxFeHByZXNzaW9uRjY0KToKKyAgICAgICAgKiB3
YXNtL1dBU01GdW5jdGlvblBhcnNlci5oOgorICAgICAgICAqIHdhc20vV0FTTUZ1bmN0aW9uU3lu
dGF4Q2hlY2tlci5oOgorICAgICAgICAoSlNDOjpXQVNNRnVuY3Rpb25TeW50YXhDaGVja2VyOjpi
dWlsZEltbWVkaWF0ZUY2NCk6CisgICAgICAgICogd2FzbS9XQVNNUmVhZGVyLmNwcDoKKyAgICAg
ICAgKEpTQzo6V0FTTVJlYWRlcjo6cmVhZE9wRXhwcmVzc2lvbkY2NCk6CisgICAgICAgICogd2Fz
bS9XQVNNUmVhZGVyLmg6CisKIDIwMTUtMDktMDYgIFN1a29sc2FrIFNha3NodXdvbmcgIDxzdWtv
bHNha0BnbWFpbC5jb20+CiAKICAgICAgICAgSW1wbGVtZW50IHRoZSByZWxhdGlvbmFsIGluc3Ry
dWN0aW9ucyBpbiBXZWJBc3NlbWJseQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3Rlc3RzL3N0cmVzcy93YXNtLWFyaXRobWV0aWMtZmxvYXQ2NC5qcyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS90ZXN0cy9zdHJlc3Mvd2FzbS1hcml0aG1ldGljLWZsb2F0NjQuanMKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uOGViNWU5ZjA2MTY5NTgwMTk3NWMzZjBiYTExMzc1ZWVkNWQ5MjE0MgotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3Mvd2FzbS1hcml0aG1ldGlj
LWZsb2F0NjQuanMKQEAgLTAsMCArMSwyNiBAQAorLy9AIHNraXAKKworZnVuY3Rpb24gc2hvdWxk
QmUoYWN0dWFsLCBleHBlY3RlZCkgeworICAgIGlmIChhY3R1YWwgIT09IGV4cGVjdGVkKQorICAg
ICAgICB0aHJvdyBuZXcgRXJyb3IoJ2JhZCB2YWx1ZTogJyArIGFjdHVhbCk7Cit9CisKKy8qCit3
YXNtL2FyaXRobWV0aWMtZmxvYXQ2NC53YXNtIGlzIGdlbmVyYXRlZCBieSBwYWNrLWFzbWpzIDxo
dHRwczovL2dpdGh1Yi5jb20vV2ViQXNzZW1ibHkvcG9seWZpbGwtcHJvdG90eXBlLTE+IGZyb20g
dGhlIGZvbGxvd2luZyBzY3JpcHQ6CisKK2Z1bmN0aW9uIGFzbU1vZHVsZShnbG9iYWwsIGVudiwg
YnVmZmVyKSB7CisgICAgInVzZSBhc20iOworCisgICAgZnVuY3Rpb24gbnVtYmVyKCkgeworICAg
ICAgICByZXR1cm4gNC4yOworICAgIH0KKworICAgIHJldHVybiB7CisgICAgICAgIG51bWJlcjog
bnVtYmVyLAorICAgIH07Cit9CisqLworCit2YXIgbW9kdWxlID0gbG9hZFdlYkFzc2VtYmx5KCJ3
YXNtL2FyaXRobWV0aWMtZmxvYXQ2NC53YXNtIik7CisKK3Nob3VsZEJlKG1vZHVsZS5udW1iZXIo
KSwgNC4yKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3Mv
d2FzbS9hcml0aG1ldGljLWZsb2F0NjQud2FzbSBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0
cy9zdHJlc3Mvd2FzbS9hcml0aG1ldGljLWZsb2F0NjQud2FzbQpuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40OWUyMDgx
ZTAzMTkyZjVhYzVkNTY4ZTg3NGFiNjNlYzczODEyNzExCkdJVCBiaW5hcnkgcGF0Y2gKbGl0ZXJh
bCA0NwpwY21YUjxFWUFKSCF+Zzx9NURMcz5VfSN8RVhGUGliMU95eHk4U19lV2xUd1FxN3kjZl8z
Z2BkOwoKbGl0ZXJhbCAwCkhjbVY/ZDAwMDAxCgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3dhc20vV0FTTUNvbnN0YW50cy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20v
V0FTTUNvbnN0YW50cy5oCmluZGV4IDM4OGI4ZTE1Zjk3MmE3OGY1YTU3Y2I0ZTFjNjk1ODAyYTIz
MDc4ZDUuLjFhMTdiZjY2YWZjMWE2NDBmNmNkYzcyYmE2ZGVkYzliZDhiZjY3Y2YgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dBU01Db25zdGFudHMuaAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XQVNNQ29uc3RhbnRzLmgKQEAgLTE3MCw2ICsxNzAsNTYg
QEAgZW51bSBjbGFzcyBXQVNNT3BFeHByZXNzaW9uSTMyV2l0aEltbWVkaWF0ZSA6IHVpbnQ4X3Qg
ewogICAgIE51bWJlck9mV0FTTU9wRXhwcmVzc2lvbkkzMldpdGhJbW1lZGlhdGVzCiB9OwogCitl
bnVtIGNsYXNzIFdBU01PcEV4cHJlc3Npb25GNjQgOiB1aW50OF90IHsKKyAgICBDb25zdGFudFBv
b2xJbmRleCwKKyAgICBJbW1lZGlhdGUsCisgICAgR2V0TG9jYWwsCisgICAgR2V0R2xvYmFsLAor
ICAgIFNldExvY2FsLAorICAgIFNldEdsb2JhbCwKKyAgICBMb2FkLAorICAgIExvYWRXaXRoT2Zm
c2V0LAorICAgIFN0b3JlLAorICAgIFN0b3JlV2l0aE9mZnNldCwKKyAgICBDYWxsSW50ZXJuYWws
CisgICAgQ2FsbEluZGlyZWN0LAorICAgIENhbGxJbXBvcnQsCisgICAgQ29uZGl0aW9uYWwsCisg
ICAgQ29tbWEsCisgICAgRnJvbVMzMiwKKyAgICBGcm9tVTMyLAorICAgIEZyb21GMzIsCisgICAg
TmVnYXRlLAorICAgIEFkZCwKKyAgICBTdWIsCisgICAgTXVsLAorICAgIERpdiwKKyAgICBNb2Qs
CisgICAgTWluLAorICAgIE1heCwKKyAgICBBYnMsCisgICAgQ2VpbCwKKyAgICBGbG9vciwKKyAg
ICBTcXJ0LAorICAgIENvcywKKyAgICBTaW4sCisgICAgVGFuLAorICAgIEFDb3MsCisgICAgQVNp
biwKKyAgICBBVGFuLAorICAgIEFUYW4yLAorICAgIEV4cCwKKyAgICBMbiwKKyAgICBQb3csCisg
ICAgTnVtYmVyT2ZXQVNNT3BFeHByZXNzaW9uRjY0cworfTsKKworZW51bSBjbGFzcyBXQVNNT3BF
eHByZXNzaW9uRjY0V2l0aEltbWVkaWF0ZSA6IHVpbnQ4X3QgeworICAgIENvbnN0YW50UG9vbElu
ZGV4LAorICAgIEdldExvY2FsLAorICAgIE51bWJlck9mV0FTTU9wRXhwcmVzc2lvbkY2NFdpdGhJ
bW1lZGlhdGVzCit9OworCiBlbnVtIGNsYXNzIFdBU01WYXJpYWJsZVR5cGVzIDogdWludDhfdCB7
CiAgICAgSTMyID0gMSA8PCAwLAogICAgIEYzMiA9IDEgPDwgMSwKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dBU01GdW5jdGlvbkNvbXBpbGVyLmggYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvd2FzbS9XQVNNRnVuY3Rpb25Db21waWxlci5oCmluZGV4IDA1OGMxZGI4ZGE2
MWNmMmNhMjExZTdjNjk5MjE0ZTg0NmNmYzI5NjQuLmM3OTMzYTQ1OTkxYzg2ZTU3YTU2M2Q5MGQ4
YjY0OWQ1NWVjM2Y0YzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dB
U01GdW5jdGlvbkNvbXBpbGVyLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV0FT
TUZ1bmN0aW9uQ29tcGlsZXIuaApAQCAtMTgzLDYgKzE4MywxMSBAQCBwdWJsaWM6CiAgICAgICAg
ICAgICBtX3RlbXBTdGFja1RvcC0tOwogICAgICAgICAgICAgc3RvcmUzMihHUFJJbmZvOjpyZWdU
MCwgbG9jYWxBZGRyZXNzKGxvY2FsSW5kZXgpKTsKICAgICAgICAgICAgIGJyZWFrOworICAgICAg
ICBjYXNlIFdBU01UeXBlOjpGNjQ6CisgICAgICAgICAgICBsb2FkRG91YmxlKHRlbXBvcmFyeUFk
ZHJlc3MobV90ZW1wU3RhY2tUb3AgLSAxKSwgRlBSSW5mbzo6ZnBSZWdUMCk7CisgICAgICAgICAg
ICBtX3RlbXBTdGFja1RvcC0tOworICAgICAgICAgICAgc3RvcmVEb3VibGUoRlBSSW5mbzo6ZnBS
ZWdUMCwgbG9jYWxBZGRyZXNzKGxvY2FsSW5kZXgpKTsKKyAgICAgICAgICAgIGJyZWFrOwogICAg
ICAgICBkZWZhdWx0OgogICAgICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAg
IH0KQEAgLTE5Myw3ICsxOTgsMjAgQEAgcHVibGljOgogICAgICAgICBzd2l0Y2ggKHJldHVyblR5
cGUpIHsKICAgICAgICAgY2FzZSBXQVNNRXhwcmVzc2lvblR5cGU6OkkzMjoKICAgICAgICAgICAg
IGxvYWQzMih0ZW1wb3JhcnlBZGRyZXNzKG1fdGVtcFN0YWNrVG9wIC0gMSksIEdQUkluZm86OnJl
dHVyblZhbHVlR1BSKTsKKyNpZiBVU0UoSlNWQUxVRTY0KQogICAgICAgICAgICAgb3I2NChHUFJJ
bmZvOjp0YWdUeXBlTnVtYmVyUmVnaXN0ZXIsIEdQUkluZm86OnJldHVyblZhbHVlR1BSKTsKKyNl
bHNlCisgICAgICAgICAgICBtb3ZlKFRydXN0ZWRJbW0zMihKU1ZhbHVlOjpJbnQzMlRhZyksIEdQ
UkluZm86OnJldHVyblZhbHVlR1BSMik7CisjZW5kaWYKKyAgICAgICAgICAgIG1fdGVtcFN0YWNr
VG9wLS07CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBXQVNNRXhwcmVzc2lvblR5
cGU6OkY2NDoKKyAgICAgICAgICAgIGxvYWREb3VibGUodGVtcG9yYXJ5QWRkcmVzcyhtX3RlbXBT
dGFja1RvcCAtIDEpLCBGUFJJbmZvOjpmcFJlZ1QwKTsKKyNpZiBVU0UoSlNWQUxVRTY0KQorICAg
ICAgICAgICAgYm94RG91YmxlKEZQUkluZm86OmZwUmVnVDAsIEdQUkluZm86OnJldHVyblZhbHVl
R1BSKTsKKyNlbHNlCisgICAgICAgICAgICBib3hEb3VibGUoRlBSSW5mbzo6ZnBSZWdUMCwgR1BS
SW5mbzo6cmV0dXJuVmFsdWVHUFIyLCBHUFJJbmZvOjpyZXR1cm5WYWx1ZUdQUik7CisjZW5kaWYK
ICAgICAgICAgICAgIG1fdGVtcFN0YWNrVG9wLS07CiAgICAgICAgICAgICBicmVhazsKICAgICAg
ICAgY2FzZSBXQVNNRXhwcmVzc2lvblR5cGU6OlZvaWQ6CkBAIC0yMDgsNyArMjI2LDIzIEBAIHB1
YmxpYzoKIAogICAgIGludCBidWlsZEltbWVkaWF0ZUkzMih1aW50MzJfdCBpbW1lZGlhdGUpCiAg
ICAgewotICAgICAgICBzdG9yZTMyKFRydXN0ZWRJbW0zMihpbW1lZGlhdGUpLCB0ZW1wb3JhcnlB
ZGRyZXNzKG1fdGVtcFN0YWNrVG9wKyspKTsKKyAgICAgICAgc3RvcmUzMihJbW0zMihpbW1lZGlh
dGUpLCB0ZW1wb3JhcnlBZGRyZXNzKG1fdGVtcFN0YWNrVG9wKyspKTsKKyAgICAgICAgcmV0dXJu
IFVOVVNFRDsKKyAgICB9CisKKyAgICBpbnQgYnVpbGRJbW1lZGlhdGVGNjQoZG91YmxlIGltbWVk
aWF0ZSkKKyAgICB7CisjaWYgQ1BVKFg4Nl82NCkgfHwgQ1BVKEFSTTY0KQorICAgICAgICBzdG9y
ZTY0KEltbTY0KGJpdHdpc2VfY2FzdDxpbnQ2NF90PihpbW1lZGlhdGUpKSwgdGVtcG9yYXJ5QWRk
cmVzcyhtX3RlbXBTdGFja1RvcCsrKSk7CisjZWxzZQorICAgICAgICB1bmlvbiB7CisgICAgICAg
ICAgICBkb3VibGUgZG91YmxlVmFsdWU7CisgICAgICAgICAgICBpbnQzMl90IGludDMyVmFsdWVz
WzJdOworICAgICAgICB9IHUgPSB7IGltbWVkaWF0ZSB9OworICAgICAgICBtX3RlbXBTdGFja1Rv
cCsrOworICAgICAgICBzdG9yZTMyKEltbTMyKHUuaW50MzJWYWx1ZXNbMF0pLCB0ZW1wb3JhcnlB
ZGRyZXNzKG1fdGVtcFN0YWNrVG9wIC0gMSkpOworICAgICAgICBzdG9yZTMyKEltbTMyKHUuaW50
MzJWYWx1ZXNbMV0pLCB0ZW1wb3JhcnlBZGRyZXNzKG1fdGVtcFN0YWNrVG9wIC0gMSkud2l0aE9m
ZnNldCg0KSk7CisjZW5kaWYKICAgICAgICAgcmV0dXJuIFVOVVNFRDsKICAgICB9CiAKQEAgLTIx
Nyw4ICsyNTEsMTEgQEAgcHVibGljOgogICAgICAgICBzd2l0Y2ggKHR5cGUpIHsKICAgICAgICAg
Y2FzZSBXQVNNVHlwZTo6STMyOgogICAgICAgICAgICAgbG9hZDMyKGxvY2FsQWRkcmVzcyhsb2Nh
bEluZGV4KSwgR1BSSW5mbzo6cmVnVDApOwotICAgICAgICAgICAgbV90ZW1wU3RhY2tUb3ArKzsK
LSAgICAgICAgICAgIHN0b3JlMzIoR1BSSW5mbzo6cmVnVDAsIHRlbXBvcmFyeUFkZHJlc3MobV90
ZW1wU3RhY2tUb3AgLSAxKSk7CisgICAgICAgICAgICBzdG9yZTMyKEdQUkluZm86OnJlZ1QwLCB0
ZW1wb3JhcnlBZGRyZXNzKG1fdGVtcFN0YWNrVG9wKyspKTsKKyAgICAgICAgICAgIGJyZWFrOwor
ICAgICAgICBjYXNlIFdBU01UeXBlOjpGNjQ6CisgICAgICAgICAgICBsb2FkRG91YmxlKGxvY2Fs
QWRkcmVzcyhsb2NhbEluZGV4KSwgRlBSSW5mbzo6ZnBSZWdUMCk7CisgICAgICAgICAgICBzdG9y
ZURvdWJsZShGUFJJbmZvOjpmcFJlZ1QwLCB0ZW1wb3JhcnlBZGRyZXNzKG1fdGVtcFN0YWNrVG9w
KyspKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAg
QVNTRVJUX05PVF9SRUFDSEVEKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
d2FzbS9XQVNNRnVuY3Rpb25QYXJzZXIuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20v
V0FTTUZ1bmN0aW9uUGFyc2VyLmNwcAppbmRleCBmYWIyZWI0MjgwN2IxZDZiZWM3NTk2MWExNmZi
YTVjNjMzMDYwNjQyLi5hYjc0YmMxOTIzNzBmN2IzZmRmMjdmMDZjZTEyZDNmYWE2ODAzNzZmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XQVNNRnVuY3Rpb25QYXJzZXIu
Y3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dBU01GdW5jdGlvblBhcnNlci5j
cHAKQEAgLTM0LDEwICszNCwxMiBAQAogCiAjZGVmaW5lIFBST1BBR0FURV9FUlJPUigpIGRvIHsg
aWYgKCFtX2Vycm9yTWVzc2FnZS5pc051bGwoKSkgcmV0dXJuIDA7IH0gd2hpbGUgKDApCiAjZGVm
aW5lIEZBSUxfV0lUSF9NRVNTQUdFKGVycm9yTWVzc2FnZSkgZG8geyAgbV9lcnJvck1lc3NhZ2Ug
PSBlcnJvck1lc3NhZ2U7IHJldHVybiAwOyB9IHdoaWxlICgwKQorI2RlZmluZSBSRUFEX0RPVUJM
RV9PUl9GQUlMKHJlc3VsdCwgZXJyb3JNZXNzYWdlKSBkbyB7IGlmICghbV9yZWFkZXIucmVhZERv
dWJsZShyZXN1bHQpKSBGQUlMX1dJVEhfTUVTU0FHRShlcnJvck1lc3NhZ2UpOyB9IHdoaWxlICgw
KQogI2RlZmluZSBSRUFEX0NPTVBBQ1RfSU5UMzJfT1JfRkFJTChyZXN1bHQsIGVycm9yTWVzc2Fn
ZSkgZG8geyBpZiAoIW1fcmVhZGVyLnJlYWRDb21wYWN0SW50MzIocmVzdWx0KSkgRkFJTF9XSVRI
X01FU1NBR0UoZXJyb3JNZXNzYWdlKTsgfSB3aGlsZSAoMCkKICNkZWZpbmUgUkVBRF9DT01QQUNU
X1VJTlQzMl9PUl9GQUlMKHJlc3VsdCwgZXJyb3JNZXNzYWdlKSBkbyB7IGlmICghbV9yZWFkZXIu
cmVhZENvbXBhY3RVSW50MzIocmVzdWx0KSkgRkFJTF9XSVRIX01FU1NBR0UoZXJyb3JNZXNzYWdl
KTsgfSB3aGlsZSAoMCkKICNkZWZpbmUgUkVBRF9PUF9TVEFURU1FTlRfT1JfRkFJTChoYXNJbW1l
ZGlhdGUsIG9wLCBvcFdpdGhJbW1lZGlhdGUsIGltbWVkaWF0ZSwgZXJyb3JNZXNzYWdlKSBkbyB7
IGlmICghbV9yZWFkZXIucmVhZE9wU3RhdGVtZW50KGhhc0ltbWVkaWF0ZSwgb3AsIG9wV2l0aElt
bWVkaWF0ZSwgaW1tZWRpYXRlKSkgRkFJTF9XSVRIX01FU1NBR0UoZXJyb3JNZXNzYWdlKTsgfSB3
aGlsZSAoMCkKICNkZWZpbmUgUkVBRF9PUF9FWFBSRVNTSU9OX0kzMl9PUl9GQUlMKGhhc0ltbWVk
aWF0ZSwgb3AsIG9wV2l0aEltbWVkaWF0ZSwgaW1tZWRpYXRlLCBlcnJvck1lc3NhZ2UpIGRvIHsg
aWYgKCFtX3JlYWRlci5yZWFkT3BFeHByZXNzaW9uSTMyKGhhc0ltbWVkaWF0ZSwgb3AsIG9wV2l0
aEltbWVkaWF0ZSwgaW1tZWRpYXRlKSkgRkFJTF9XSVRIX01FU1NBR0UoZXJyb3JNZXNzYWdlKTsg
fSB3aGlsZSAoMCkKKyNkZWZpbmUgUkVBRF9PUF9FWFBSRVNTSU9OX0Y2NF9PUl9GQUlMKGhhc0lt
bWVkaWF0ZSwgb3AsIG9wV2l0aEltbWVkaWF0ZSwgaW1tZWRpYXRlLCBlcnJvck1lc3NhZ2UpIGRv
IHsgaWYgKCFtX3JlYWRlci5yZWFkT3BFeHByZXNzaW9uRjY0KGhhc0ltbWVkaWF0ZSwgb3AsIG9w
V2l0aEltbWVkaWF0ZSwgaW1tZWRpYXRlKSkgRkFJTF9XSVRIX01FU1NBR0UoZXJyb3JNZXNzYWdl
KTsgfSB3aGlsZSAoMCkKICNkZWZpbmUgUkVBRF9WQVJJQUJMRV9UWVBFU19PUl9GQUlMKGhhc0lt
bWVkaWF0ZSwgdmFyaWFibGVUeXBlcywgdmFyaWFibGVUeXBlc1dpdGhJbW1lZGlhdGUsIGltbWVk
aWF0ZSwgZXJyb3JNZXNzYWdlKSBkbyB7IGlmICghbV9yZWFkZXIucmVhZFZhcmlhYmxlVHlwZXMo
aGFzSW1tZWRpYXRlLCB2YXJpYWJsZVR5cGVzLCB2YXJpYWJsZVR5cGVzV2l0aEltbWVkaWF0ZSwg
aW1tZWRpYXRlKSkgRkFJTF9XSVRIX01FU1NBR0UoZXJyb3JNZXNzYWdlKTsgfSB3aGlsZSAoMCkK
ICNkZWZpbmUgUkVBRF9TV0lUQ0hfQ0FTRV9PUl9GQUlMKHJlc3VsdCwgZXJyb3JNZXNzYWdlKSBk
byB7IGlmICghbV9yZWFkZXIucmVhZFN3aXRjaENhc2UocmVzdWx0KSkgRkFJTF9XSVRIX01FU1NB
R0UoZXJyb3JNZXNzYWdlKTsgfSB3aGlsZSAoMCkKICNkZWZpbmUgRkFJTF9JRl9GQUxTRShjb25k
aXRpb24sIGVycm9yTWVzc2FnZSkgZG8geyBpZiAoIShjb25kaXRpb24pKSBGQUlMX1dJVEhfTUVT
U0FHRShlcnJvck1lc3NhZ2UpOyB9IHdoaWxlICgwKQpAQCAtNDAzLDggKzQwNSw5IEBAIENvbnRl
eHRFeHByZXNzaW9uIFdBU01GdW5jdGlvblBhcnNlcjo6cGFyc2VFeHByZXNzaW9uKENvbnRleHQm
IGNvbnRleHQsIFdBU01FeHByCiAgICAgc3dpdGNoIChleHByZXNzaW9uVHlwZSkgewogICAgIGNh
c2UgV0FTTUV4cHJlc3Npb25UeXBlOjpJMzI6CiAgICAgICAgIHJldHVybiBwYXJzZUV4cHJlc3Np
b25JMzIoY29udGV4dCk7Ci0gICAgY2FzZSBXQVNNRXhwcmVzc2lvblR5cGU6OkYzMjoKICAgICBj
YXNlIFdBU01FeHByZXNzaW9uVHlwZTo6RjY0OgorICAgICAgICByZXR1cm4gcGFyc2VFeHByZXNz
aW9uRjY0KGNvbnRleHQpOworICAgIGNhc2UgV0FTTUV4cHJlc3Npb25UeXBlOjpGMzI6CiAgICAg
Y2FzZSBXQVNNRXhwcmVzc2lvblR5cGU6OlZvaWQ6CiAgICAgICAgIC8vIEZJWE1FOiBJbXBsZW1l
bnQgdGhlc2UgaW5zdHJ1Y3Rpb25zLgogICAgICAgICBGQUlMX1dJVEhfTUVTU0FHRSgiVW5zdXBw
b3J0ZWQgaW5zdHJ1Y3Rpb24uIik7CkBAIC01ODcsNiArNTkwLDExNiBAQCBDb250ZXh0RXhwcmVz
c2lvbiBXQVNNRnVuY3Rpb25QYXJzZXI6OnBhcnNlUmVsYXRpb25hbEkzMkV4cHJlc3Npb25JMzIo
Q29udGV4dCYgYwogICAgIHJldHVybiBjb250ZXh0LmJ1aWxkUmVsYXRpb25hbEkzMihsZWZ0LCBy
aWdodCwgb3ApOwogfQogCit0ZW1wbGF0ZSA8Y2xhc3MgQ29udGV4dD4KK0NvbnRleHRFeHByZXNz
aW9uIFdBU01GdW5jdGlvblBhcnNlcjo6cGFyc2VFeHByZXNzaW9uRjY0KENvbnRleHQmIGNvbnRl
eHQpCit7CisgICAgYm9vbCBoYXNJbW1lZGlhdGU7CisgICAgV0FTTU9wRXhwcmVzc2lvbkY2NCBv
cDsKKyAgICBXQVNNT3BFeHByZXNzaW9uRjY0V2l0aEltbWVkaWF0ZSBvcFdpdGhJbW1lZGlhdGU7
CisgICAgdWludDhfdCBpbW1lZGlhdGU7CisgICAgUkVBRF9PUF9FWFBSRVNTSU9OX0Y2NF9PUl9G
QUlMKGhhc0ltbWVkaWF0ZSwgb3AsIG9wV2l0aEltbWVkaWF0ZSwgaW1tZWRpYXRlLCAiQ2Fubm90
IHJlYWQgdGhlIGZsb2F0NjQgZXhwcmVzc2lvbiBvcGNvZGUuIik7CisgICAgaWYgKCFoYXNJbW1l
ZGlhdGUpIHsKKyAgICAgICAgc3dpdGNoIChvcCkgeworICAgICAgICBjYXNlIFdBU01PcEV4cHJl
c3Npb25GNjQ6OkNvbnN0YW50UG9vbEluZGV4OgorICAgICAgICAgICAgcmV0dXJuIHBhcnNlQ29u
c3RhbnRQb29sSW5kZXhFeHByZXNzaW9uRjY0KGNvbnRleHQpOworICAgICAgICBjYXNlIFdBU01P
cEV4cHJlc3Npb25GNjQ6OkltbWVkaWF0ZToKKyAgICAgICAgICAgIHJldHVybiBwYXJzZUltbWVk
aWF0ZUV4cHJlc3Npb25GNjQoY29udGV4dCk7CisgICAgICAgIGNhc2UgV0FTTU9wRXhwcmVzc2lv
bkY2NDo6R2V0TG9jYWw6CisgICAgICAgICAgICByZXR1cm4gcGFyc2VHZXRMb2NhbEV4cHJlc3Np
b25GNjQoY29udGV4dCk7CisgICAgICAgIGNhc2UgV0FTTU9wRXhwcmVzc2lvbkY2NDo6R2V0R2xv
YmFsOgorICAgICAgICBjYXNlIFdBU01PcEV4cHJlc3Npb25GNjQ6OlNldExvY2FsOgorICAgICAg
ICBjYXNlIFdBU01PcEV4cHJlc3Npb25GNjQ6OlNldEdsb2JhbDoKKyAgICAgICAgY2FzZSBXQVNN
T3BFeHByZXNzaW9uRjY0OjpMb2FkOgorICAgICAgICBjYXNlIFdBU01PcEV4cHJlc3Npb25GNjQ6
OkxvYWRXaXRoT2Zmc2V0OgorICAgICAgICBjYXNlIFdBU01PcEV4cHJlc3Npb25GNjQ6OlN0b3Jl
OgorICAgICAgICBjYXNlIFdBU01PcEV4cHJlc3Npb25GNjQ6OlN0b3JlV2l0aE9mZnNldDoKKyAg
ICAgICAgY2FzZSBXQVNNT3BFeHByZXNzaW9uRjY0OjpDYWxsSW50ZXJuYWw6CisgICAgICAgIGNh
c2UgV0FTTU9wRXhwcmVzc2lvbkY2NDo6Q2FsbEluZGlyZWN0OgorICAgICAgICBjYXNlIFdBU01P
cEV4cHJlc3Npb25GNjQ6OkNhbGxJbXBvcnQ6CisgICAgICAgIGNhc2UgV0FTTU9wRXhwcmVzc2lv
bkY2NDo6Q29uZGl0aW9uYWw6CisgICAgICAgIGNhc2UgV0FTTU9wRXhwcmVzc2lvbkY2NDo6Q29t
bWE6CisgICAgICAgIGNhc2UgV0FTTU9wRXhwcmVzc2lvbkY2NDo6RnJvbVMzMjoKKyAgICAgICAg
Y2FzZSBXQVNNT3BFeHByZXNzaW9uRjY0OjpGcm9tVTMyOgorICAgICAgICBjYXNlIFdBU01PcEV4
cHJlc3Npb25GNjQ6OkZyb21GMzI6CisgICAgICAgIGNhc2UgV0FTTU9wRXhwcmVzc2lvbkY2NDo6
TmVnYXRlOgorICAgICAgICBjYXNlIFdBU01PcEV4cHJlc3Npb25GNjQ6OkFkZDoKKyAgICAgICAg
Y2FzZSBXQVNNT3BFeHByZXNzaW9uRjY0OjpTdWI6CisgICAgICAgIGNhc2UgV0FTTU9wRXhwcmVz
c2lvbkY2NDo6TXVsOgorICAgICAgICBjYXNlIFdBU01PcEV4cHJlc3Npb25GNjQ6OkRpdjoKKyAg
ICAgICAgY2FzZSBXQVNNT3BFeHByZXNzaW9uRjY0OjpNb2Q6CisgICAgICAgIGNhc2UgV0FTTU9w
RXhwcmVzc2lvbkY2NDo6TWluOgorICAgICAgICBjYXNlIFdBU01PcEV4cHJlc3Npb25GNjQ6Ok1h
eDoKKyAgICAgICAgY2FzZSBXQVNNT3BFeHByZXNzaW9uRjY0OjpBYnM6CisgICAgICAgIGNhc2Ug
V0FTTU9wRXhwcmVzc2lvbkY2NDo6Q2VpbDoKKyAgICAgICAgY2FzZSBXQVNNT3BFeHByZXNzaW9u
RjY0OjpGbG9vcjoKKyAgICAgICAgY2FzZSBXQVNNT3BFeHByZXNzaW9uRjY0OjpTcXJ0OgorICAg
ICAgICBjYXNlIFdBU01PcEV4cHJlc3Npb25GNjQ6OkNvczoKKyAgICAgICAgY2FzZSBXQVNNT3BF
eHByZXNzaW9uRjY0OjpTaW46CisgICAgICAgIGNhc2UgV0FTTU9wRXhwcmVzc2lvbkY2NDo6VGFu
OgorICAgICAgICBjYXNlIFdBU01PcEV4cHJlc3Npb25GNjQ6OkFDb3M6CisgICAgICAgIGNhc2Ug
V0FTTU9wRXhwcmVzc2lvbkY2NDo6QVNpbjoKKyAgICAgICAgY2FzZSBXQVNNT3BFeHByZXNzaW9u
RjY0OjpBVGFuOgorICAgICAgICBjYXNlIFdBU01PcEV4cHJlc3Npb25GNjQ6OkFUYW4yOgorICAg
ICAgICBjYXNlIFdBU01PcEV4cHJlc3Npb25GNjQ6OkV4cDoKKyAgICAgICAgY2FzZSBXQVNNT3BF
eHByZXNzaW9uRjY0OjpMbjoKKyAgICAgICAgY2FzZSBXQVNNT3BFeHByZXNzaW9uRjY0OjpQb3c6
CisgICAgICAgICAgICAvLyBGSVhNRTogSW1wbGVtZW50IHRoZXNlIGluc3RydWN0aW9ucy4KKyAg
ICAgICAgICAgIEZBSUxfV0lUSF9NRVNTQUdFKCJVbnN1cHBvcnRlZCBpbnN0cnVjdGlvbi4iKTsK
KyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAg
ICAgICB9CisgICAgfSBlbHNlIHsKKyAgICAgICAgc3dpdGNoIChvcFdpdGhJbW1lZGlhdGUpIHsK
KyAgICAgICAgY2FzZSBXQVNNT3BFeHByZXNzaW9uRjY0V2l0aEltbWVkaWF0ZTo6Q29uc3RhbnRQ
b29sSW5kZXg6CisgICAgICAgICAgICByZXR1cm4gcGFyc2VDb25zdGFudFBvb2xJbmRleEV4cHJl
c3Npb25GNjQoY29udGV4dCwgaW1tZWRpYXRlKTsKKyAgICAgICAgY2FzZSBXQVNNT3BFeHByZXNz
aW9uRjY0V2l0aEltbWVkaWF0ZTo6R2V0TG9jYWw6CisgICAgICAgICAgICByZXR1cm4gcGFyc2VH
ZXRMb2NhbEV4cHJlc3Npb25GNjQoY29udGV4dCwgaW1tZWRpYXRlKTsKKyAgICAgICAgZGVmYXVs
dDoKKyAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICB9CisgICAgfQor
ICAgIHJldHVybiAwOworfQorCit0ZW1wbGF0ZSA8Y2xhc3MgQ29udGV4dD4KK0NvbnRleHRFeHBy
ZXNzaW9uIFdBU01GdW5jdGlvblBhcnNlcjo6cGFyc2VDb25zdGFudFBvb2xJbmRleEV4cHJlc3Np
b25GNjQoQ29udGV4dCYgY29udGV4dCwgdWludDMyX3QgY29uc3RhbnRJbmRleCkKK3sKKyAgICBG
QUlMX0lGX0ZBTFNFKGNvbnN0YW50SW5kZXggPCBtX21vZHVsZS0+ZjY0Q29uc3RhbnRzKCkuc2l6
ZSgpLCAiVGhlIGNvbnN0YW50IGluZGV4IGlzIGluY29ycmVjdC4iKTsKKyAgICByZXR1cm4gY29u
dGV4dC5idWlsZEltbWVkaWF0ZUY2NChtX21vZHVsZS0+ZjY0Q29uc3RhbnRzKClbY29uc3RhbnRJ
bmRleF0pOworfQorCit0ZW1wbGF0ZSA8Y2xhc3MgQ29udGV4dD4KK0NvbnRleHRFeHByZXNzaW9u
IFdBU01GdW5jdGlvblBhcnNlcjo6cGFyc2VDb25zdGFudFBvb2xJbmRleEV4cHJlc3Npb25GNjQo
Q29udGV4dCYgY29udGV4dCkKK3sKKyAgICB1aW50MzJfdCBjb25zdGFudEluZGV4OworICAgIFJF
QURfQ09NUEFDVF9VSU5UMzJfT1JfRkFJTChjb25zdGFudEluZGV4LCAiQ2Fubm90IHJlYWQgdGhl
IGNvbnN0YW50IGluZGV4LiIpOworICAgIHJldHVybiBwYXJzZUNvbnN0YW50UG9vbEluZGV4RXhw
cmVzc2lvbkY2NChjb250ZXh0LCBjb25zdGFudEluZGV4KTsKK30KKwordGVtcGxhdGUgPGNsYXNz
IENvbnRleHQ+CitDb250ZXh0RXhwcmVzc2lvbiBXQVNNRnVuY3Rpb25QYXJzZXI6OnBhcnNlSW1t
ZWRpYXRlRXhwcmVzc2lvbkY2NChDb250ZXh0JiBjb250ZXh0KQoreworICAgIGRvdWJsZSBpbW1l
ZGlhdGU7CisgICAgUkVBRF9ET1VCTEVfT1JfRkFJTChpbW1lZGlhdGUsICJDYW5ub3QgcmVhZCB0
aGUgaW1tZWRpYXRlLiIpOworICAgIHJldHVybiBjb250ZXh0LmJ1aWxkSW1tZWRpYXRlRjY0KGlt
bWVkaWF0ZSk7Cit9CisKK3RlbXBsYXRlIDxjbGFzcyBDb250ZXh0PgorQ29udGV4dEV4cHJlc3Np
b24gV0FTTUZ1bmN0aW9uUGFyc2VyOjpwYXJzZUdldExvY2FsRXhwcmVzc2lvbkY2NChDb250ZXh0
JiBjb250ZXh0LCB1aW50MzJfdCBsb2NhbEluZGV4KQoreworICAgIEZBSUxfSUZfRkFMU0UobG9j
YWxJbmRleCA8IG1fbG9jYWxUeXBlcy5zaXplKCksICJUaGUgbG9jYWwgdmFyaWFibGUgaW5kZXgg
aXMgaW5jb3JyZWN0LiIpOworICAgIEZBSUxfSUZfRkFMU0UobV9sb2NhbFR5cGVzW2xvY2FsSW5k
ZXhdID09IFdBU01UeXBlOjpGNjQsICJFeHBlY3RlZCBhIGxvY2FsIHZhcmlhYmxlIG9mIHR5cGUg
ZmxvYXQ2NC4iKTsKKyAgICByZXR1cm4gY29udGV4dC5idWlsZEdldExvY2FsKGxvY2FsSW5kZXgs
IFdBU01UeXBlOjpGNjQpOworfQorCit0ZW1wbGF0ZSA8Y2xhc3MgQ29udGV4dD4KK0NvbnRleHRF
eHByZXNzaW9uIFdBU01GdW5jdGlvblBhcnNlcjo6cGFyc2VHZXRMb2NhbEV4cHJlc3Npb25GNjQo
Q29udGV4dCYgY29udGV4dCkKK3sKKyAgICB1aW50MzJfdCBsb2NhbEluZGV4OworICAgIFJFQURf
Q09NUEFDVF9VSU5UMzJfT1JfRkFJTChsb2NhbEluZGV4LCAiQ2Fubm90IHJlYWQgdGhlIGxvY2Fs
IGluZGV4LiIpOworICAgIHJldHVybiBwYXJzZUdldExvY2FsRXhwcmVzc2lvbkY2NChjb250ZXh0
LCBsb2NhbEluZGV4KTsKK30KKwogfSAvLyBuYW1lc3BhY2UgSlNDCiAKICNlbmRpZiAvLyBFTkFC
TEUoV0VCQVNTRU1CTFkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9X
QVNNRnVuY3Rpb25QYXJzZXIuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dBU01GdW5j
dGlvblBhcnNlci5oCmluZGV4IDI2OWNmMzFlZTdhODJhNzAxMTdhODViMDNjYWM1YjQzYWNmMmQy
N2YuLjEzNjE2YTc3ZTU5MzgwOWZhZWVjMTFjOTg5MDJhNWI2MzUyZjJiNTEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dBU01GdW5jdGlvblBhcnNlci5oCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dBU01GdW5jdGlvblBhcnNlci5oCkBAIC04Nyw2ICs4
NywxMyBAQCBwcml2YXRlOgogICAgIHRlbXBsYXRlIDxjbGFzcyBDb250ZXh0PiBDb250ZXh0RXhw
cmVzc2lvbiBwYXJzZUJpbmFyeUV4cHJlc3Npb25JMzIoQ29udGV4dCYsIFdBU01PcEV4cHJlc3Np
b25JMzIpOwogICAgIHRlbXBsYXRlIDxjbGFzcyBDb250ZXh0PiBDb250ZXh0RXhwcmVzc2lvbiBw
YXJzZVJlbGF0aW9uYWxJMzJFeHByZXNzaW9uSTMyKENvbnRleHQmLCBXQVNNT3BFeHByZXNzaW9u
STMyKTsKIAorICAgIHRlbXBsYXRlIDxjbGFzcyBDb250ZXh0PiBDb250ZXh0RXhwcmVzc2lvbiBw
YXJzZUV4cHJlc3Npb25GNjQoQ29udGV4dCYpOworICAgIHRlbXBsYXRlIDxjbGFzcyBDb250ZXh0
PiBDb250ZXh0RXhwcmVzc2lvbiBwYXJzZUNvbnN0YW50UG9vbEluZGV4RXhwcmVzc2lvbkY2NChD
b250ZXh0JiwgdWludDMyX3QgY29uc3RhbnRJbmRleCk7CisgICAgdGVtcGxhdGUgPGNsYXNzIENv
bnRleHQ+IENvbnRleHRFeHByZXNzaW9uIHBhcnNlQ29uc3RhbnRQb29sSW5kZXhFeHByZXNzaW9u
RjY0KENvbnRleHQmKTsKKyAgICB0ZW1wbGF0ZSA8Y2xhc3MgQ29udGV4dD4gQ29udGV4dEV4cHJl
c3Npb24gcGFyc2VJbW1lZGlhdGVFeHByZXNzaW9uRjY0KENvbnRleHQmKTsKKyAgICB0ZW1wbGF0
ZSA8Y2xhc3MgQ29udGV4dD4gQ29udGV4dEV4cHJlc3Npb24gcGFyc2VHZXRMb2NhbEV4cHJlc3Np
b25GNjQoQ29udGV4dCYsIHVpbnQzMl90IGxvY2FsSW5kZXgpOworICAgIHRlbXBsYXRlIDxjbGFz
cyBDb250ZXh0PiBDb250ZXh0RXhwcmVzc2lvbiBwYXJzZUdldExvY2FsRXhwcmVzc2lvbkY2NChD
b250ZXh0Jik7CisKICAgICBKU1dBU01Nb2R1bGUqIG1fbW9kdWxlOwogICAgIFdBU01SZWFkZXIg
bV9yZWFkZXI7CiAgICAgc2l6ZV90IG1fZnVuY3Rpb25JbmRleDsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dBU01GdW5jdGlvblN5bnRheENoZWNrZXIuaCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dBU01GdW5jdGlvblN5bnRheENoZWNrZXIuaAppbmRleCA1
MTk4NTUzZTQzODA0MTc1MjIxNzFkYThiNjZjYTFjZWU3Y2EwYzQxLi4xOGVlMjFlOGM3OTllYzlj
MjJlNGI2ZTg4N2UxYTgzZGJlZWNmZTg2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvd2FzbS9XQVNNRnVuY3Rpb25TeW50YXhDaGVja2VyLmgKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3dhc20vV0FTTUZ1bmN0aW9uU3ludGF4Q2hlY2tlci5oCkBAIC02NSw2ICs2NSwxMyBA
QCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBVTlVTRUQ7CiAgICAgfQogCisgICAgaW50IGJ1aWxk
SW1tZWRpYXRlRjY0KHVpbnQzMl90KQorICAgIHsKKyAgICAgICAgbV90ZW1wU3RhY2tUb3ArKzsK
KyAgICAgICAgdXBkYXRlVGVtcFN0YWNrSGVpZ2h0KCk7CisgICAgICAgIHJldHVybiBVTlVTRUQ7
CisgICAgfQorCiAgICAgaW50IGJ1aWxkR2V0TG9jYWwodWludDMyX3QsIFdBU01UeXBlKQogICAg
IHsKICAgICAgICAgbV90ZW1wU3RhY2tUb3ArKzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS93YXNtL1dBU01SZWFkZXIuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20v
V0FTTVJlYWRlci5jcHAKaW5kZXggZDU1ZDAyZTc0MGUyODViZWYxN2M2ZmY4ZWNiN2MyMmUzYzYx
ZGRkYS4uMmM1YzhlN2I1ODRjNWIwOWEwYWJhMGRiY2E4MWUzYWU3NTI0MjQwNSAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV0FTTVJlYWRlci5jcHAKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3dhc20vV0FTTVJlYWRlci5jcHAKQEAgLTE4OSw2ICsxODksMTMgQEAg
Ym9vbCBXQVNNUmVhZGVyOjpyZWFkT3BFeHByZXNzaW9uSTMyKGJvb2wmIGhhc0ltbWVkaWF0ZSwg
V0FTTU9wRXhwcmVzc2lvbkkzMiYgb3AKICAgICAgICAgc3RhdGljX2Nhc3Q8dWludDhfdD4oV0FT
TU9wRXhwcmVzc2lvbkkzMldpdGhJbW1lZGlhdGU6Ok51bWJlck9mV0FTTU9wRXhwcmVzc2lvbkkz
MldpdGhJbW1lZGlhdGVzKSk7CiB9CiAKK2Jvb2wgV0FTTVJlYWRlcjo6cmVhZE9wRXhwcmVzc2lv
bkY2NChib29sJiBoYXNJbW1lZGlhdGUsIFdBU01PcEV4cHJlc3Npb25GNjQmIG9wLCBXQVNNT3BF
eHByZXNzaW9uRjY0V2l0aEltbWVkaWF0ZSYgb3BXaXRoSW1tZWRpYXRlLCB1aW50OF90JiBpbW1l
ZGlhdGUpCit7CisgICAgcmV0dXJuIHJlYWRPcChoYXNJbW1lZGlhdGUsIG9wLCBvcFdpdGhJbW1l
ZGlhdGUsIGltbWVkaWF0ZSwKKyAgICAgICAgc3RhdGljX2Nhc3Q8dWludDhfdD4oV0FTTU9wRXhw
cmVzc2lvbkY2NDo6TnVtYmVyT2ZXQVNNT3BFeHByZXNzaW9uRjY0cyksCisgICAgICAgIHN0YXRp
Y19jYXN0PHVpbnQ4X3Q+KFdBU01PcEV4cHJlc3Npb25GNjRXaXRoSW1tZWRpYXRlOjpOdW1iZXJP
ZldBU01PcEV4cHJlc3Npb25GNjRXaXRoSW1tZWRpYXRlcykpOworfQorCiBib29sIFdBU01SZWFk
ZXI6OnJlYWRWYXJpYWJsZVR5cGVzKGJvb2wmIGhhc0ltbWVkaWF0ZSwgV0FTTVZhcmlhYmxlVHlw
ZXMmIHZhcmlhYmxlVHlwZXMsIFdBU01WYXJpYWJsZVR5cGVzV2l0aEltbWVkaWF0ZSYgdmFyaWFi
bGVUeXBlc1dpdGhJbW1lZGlhdGUsIHVpbnQ4X3QmIGltbWVkaWF0ZSkKIHsKICAgICByZXR1cm4g
cmVhZE9wKGhhc0ltbWVkaWF0ZSwgdmFyaWFibGVUeXBlcywgdmFyaWFibGVUeXBlc1dpdGhJbW1l
ZGlhdGUsIGltbWVkaWF0ZSwKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNt
L1dBU01SZWFkZXIuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dBU01SZWFkZXIuaApp
bmRleCA0MDU4MjUzMWYxODdlMTZhOTZhZTAyODA4M2Y1MmUyMzVhYTBlNDM4Li43YTJkMTMzN2Ew
NzFhZjllNzY2YmEzM2JhOGUxNTY0NDRhMGNkYmY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvd2FzbS9XQVNNUmVhZGVyLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dh
c20vV0FTTVJlYWRlci5oCkBAIC01Niw2ICs1Niw3IEBAIHB1YmxpYzoKICAgICBib29sIHJlYWRF
eHBvcnRGb3JtYXQoV0FTTUV4cG9ydEZvcm1hdCYgcmVzdWx0KTsKICAgICBib29sIHJlYWRPcFN0
YXRlbWVudChib29sJiBoYXNJbW1lZGlhdGUsIFdBU01PcFN0YXRlbWVudCYsIFdBU01PcFN0YXRl
bWVudFdpdGhJbW1lZGlhdGUmLCB1aW50OF90JiBpbW1lZGlhdGUpOwogICAgIGJvb2wgcmVhZE9w
RXhwcmVzc2lvbkkzMihib29sJiBoYXNJbW1lZGlhdGUsIFdBU01PcEV4cHJlc3Npb25JMzImLCBX
QVNNT3BFeHByZXNzaW9uSTMyV2l0aEltbWVkaWF0ZSYsIHVpbnQ4X3QmIGltbWVkaWF0ZSk7Cisg
ICAgYm9vbCByZWFkT3BFeHByZXNzaW9uRjY0KGJvb2wmIGhhc0ltbWVkaWF0ZSwgV0FTTU9wRXhw
cmVzc2lvbkY2NCYsIFdBU01PcEV4cHJlc3Npb25GNjRXaXRoSW1tZWRpYXRlJiwgdWludDhfdCYg
aW1tZWRpYXRlKTsKICAgICBib29sIHJlYWRWYXJpYWJsZVR5cGVzKGJvb2wmIGhhc0ltbWVkaWF0
ZSwgV0FTTVZhcmlhYmxlVHlwZXMmLCBXQVNNVmFyaWFibGVUeXBlc1dpdGhJbW1lZGlhdGUmLCB1
aW50OF90JiBpbW1lZGlhdGUpOwogICAgIGJvb2wgcmVhZFN3aXRjaENhc2UoV0FTTVN3aXRjaENh
c2UmIHJlc3VsdCk7CiAK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>260743</attachid>
            <date>2015-09-07 11:22:52 -0700</date>
            <delta_ts>2015-09-08 10:39:44 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-148913-20150907112249.patch</filename>
            <type>text/plain</type>
            <size>18684</size>
            <attacher name="Sukolsak Sakshuwong">sukolsak</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg5NDY1CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBl
MTc2NmNhYWVhYThlOTk4NDljODdlYWE0NjBjNDZhNzIyMTNjZjgzLi4yMDU3ZDY5OTRhZTM2NTQ1
YzhjYTlmNWJmM2ViMTJiZGVmMDcwOWYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwzNiBAQAorMjAxNS0wOS0wNyAgU3Vrb2xzYWsgU2Frc2h1d29uZyAgPHN1a29sc2FrQGdt
YWlsLmNvbT4KKworICAgICAgICBBZGQgaW5pdGlhbCBzdXBwb3J0IGZvciBkb3VibGVzIGluIFdl
YkFzc2VtYmx5CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xNDg5MTMKKworICAgICAgICBSZXZpZXdlZCBieSBGaWxpcCBQaXpsby4KKworICAgICAgICBJ
bXBsZW1lbnQgdGhlIENvbnN0YW50UG9vbEluZGV4LCBJbW1lZGlhdGUsIGFuZCBHZXRMb2NhbCBp
bnN0cnVjdGlvbnMKKyAgICAgICAgZm9yIGRvdWJsZXMgKGZsb2F0NjQpIGluIFdlYkFzc2VtYmx5
LgorCisgICAgICAgICogdGVzdHMvc3RyZXNzL3dhc20tYXJpdGhtZXRpYy1mbG9hdDY0LmpzOiBB
ZGRlZC4KKyAgICAgICAgKHNob3VsZEJlKToKKyAgICAgICAgKiB0ZXN0cy9zdHJlc3Mvd2FzbS9h
cml0aG1ldGljLWZsb2F0NjQud2FzbTogQWRkZWQuCisgICAgICAgICogd2FzbS9XQVNNQ29uc3Rh
bnRzLmg6CisgICAgICAgICogd2FzbS9XQVNNRnVuY3Rpb25Db21waWxlci5oOgorICAgICAgICAo
SlNDOjpXQVNNRnVuY3Rpb25Db21waWxlcjo6YnVpbGRTZXRMb2NhbCk6CisgICAgICAgIChKU0M6
OldBU01GdW5jdGlvbkNvbXBpbGVyOjpidWlsZFJldHVybik6CisgICAgICAgIChKU0M6OldBU01G
dW5jdGlvbkNvbXBpbGVyOjpidWlsZEltbWVkaWF0ZUkzMik6CisgICAgICAgIChKU0M6OldBU01G
dW5jdGlvbkNvbXBpbGVyOjpidWlsZEltbWVkaWF0ZUY2NCk6CisgICAgICAgIChKU0M6OldBU01G
dW5jdGlvbkNvbXBpbGVyOjpidWlsZEdldExvY2FsKToKKyAgICAgICAgKiB3YXNtL1dBU01GdW5j
dGlvblBhcnNlci5jcHA6CisgICAgICAgIChKU0M6OldBU01GdW5jdGlvblBhcnNlcjo6cGFyc2VF
eHByZXNzaW9uKToKKyAgICAgICAgKEpTQzo6V0FTTUZ1bmN0aW9uUGFyc2VyOjpwYXJzZUV4cHJl
c3Npb25GNjQpOgorICAgICAgICAoSlNDOjpXQVNNRnVuY3Rpb25QYXJzZXI6OnBhcnNlQ29uc3Rh
bnRQb29sSW5kZXhFeHByZXNzaW9uRjY0KToKKyAgICAgICAgKEpTQzo6V0FTTUZ1bmN0aW9uUGFy
c2VyOjpwYXJzZUltbWVkaWF0ZUV4cHJlc3Npb25GNjQpOgorICAgICAgICAoSlNDOjpXQVNNRnVu
Y3Rpb25QYXJzZXI6OnBhcnNlR2V0TG9jYWxFeHByZXNzaW9uRjY0KToKKyAgICAgICAgKiB3YXNt
L1dBU01GdW5jdGlvblBhcnNlci5oOgorICAgICAgICAqIHdhc20vV0FTTUZ1bmN0aW9uU3ludGF4
Q2hlY2tlci5oOgorICAgICAgICAoSlNDOjpXQVNNRnVuY3Rpb25TeW50YXhDaGVja2VyOjpidWls
ZEltbWVkaWF0ZUY2NCk6CisgICAgICAgICogd2FzbS9XQVNNUmVhZGVyLmNwcDoKKyAgICAgICAg
KEpTQzo6V0FTTVJlYWRlcjo6cmVhZE9wRXhwcmVzc2lvbkY2NCk6CisgICAgICAgICogd2FzbS9X
QVNNUmVhZGVyLmg6CisKIDIwMTUtMDktMDYgIE1hcmsgTGFtICA8bWFyay5sYW1AYXBwbGUuY29t
PgogCiAgICAgICAgIEdhcmRlbmluZzogZml4IGJyb2tlbiBXaW5kb3dzIGJ1aWxkIGFmdGVyIHIx
ODk0NTQuCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL3dh
c20tYXJpdGhtZXRpYy1mbG9hdDY0LmpzIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0
cmVzcy93YXNtLWFyaXRobWV0aWMtZmxvYXQ2NC5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44ZWI1ZTlmMDYxNjk1
ODAxOTc1YzNmMGJhMTEzNzVlZWQ1ZDkyMTQyCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy93YXNtLWFyaXRobWV0aWMtZmxvYXQ2NC5qcwpAQCAt
MCwwICsxLDI2IEBACisvL0Agc2tpcAorCitmdW5jdGlvbiBzaG91bGRCZShhY3R1YWwsIGV4cGVj
dGVkKSB7CisgICAgaWYgKGFjdHVhbCAhPT0gZXhwZWN0ZWQpCisgICAgICAgIHRocm93IG5ldyBF
cnJvcignYmFkIHZhbHVlOiAnICsgYWN0dWFsKTsKK30KKworLyoKK3dhc20vYXJpdGhtZXRpYy1m
bG9hdDY0Lndhc20gaXMgZ2VuZXJhdGVkIGJ5IHBhY2stYXNtanMgPGh0dHBzOi8vZ2l0aHViLmNv
bS9XZWJBc3NlbWJseS9wb2x5ZmlsbC1wcm90b3R5cGUtMT4gZnJvbSB0aGUgZm9sbG93aW5nIHNj
cmlwdDoKKworZnVuY3Rpb24gYXNtTW9kdWxlKGdsb2JhbCwgZW52LCBidWZmZXIpIHsKKyAgICAi
dXNlIGFzbSI7CisKKyAgICBmdW5jdGlvbiBudW1iZXIoKSB7CisgICAgICAgIHJldHVybiA0LjI7
CisgICAgfQorCisgICAgcmV0dXJuIHsKKyAgICAgICAgbnVtYmVyOiBudW1iZXIsCisgICAgfTsK
K30KKyovCisKK3ZhciBtb2R1bGUgPSBsb2FkV2ViQXNzZW1ibHkoIndhc20vYXJpdGhtZXRpYy1m
bG9hdDY0Lndhc20iKTsKKworc2hvdWxkQmUobW9kdWxlLm51bWJlcigpLCA0LjIpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy93YXNtL2FyaXRobWV0aWMt
ZmxvYXQ2NC53YXNtIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy93YXNtL2Fy
aXRobWV0aWMtZmxvYXQ2NC53YXNtCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQ5ZTIwODFlMDMxOTJmNWFjNWQ1Njhl
ODc0YWI2M2VjNzM4MTI3MTEKR0lUIGJpbmFyeSBwYXRjaApsaXRlcmFsIDQ3CnBjbVhSPEVZQUpI
IX5nPH01RExzPlV9I3xFWEZQaWIxT3l4eThTX2VXbFR3UXE3eSNmXzNnYGQ7CgpsaXRlcmFsIDAK
SGNtVj9kMDAwMDEKCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XQVNN
Q29uc3RhbnRzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XQVNNQ29uc3RhbnRzLmgK
aW5kZXggMzg4YjhlMTVmOTcyYTc4ZjVhNTdjYjRlMWM2OTU4MDJhMjMwNzhkNS4uMWExN2JmNjZh
ZmMxYTY0MGY2Y2RjNzJiYTZkZWRjOWJkOGJmNjdjZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3dhc20vV0FTTUNvbnN0YW50cy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS93YXNtL1dBU01Db25zdGFudHMuaApAQCAtMTcwLDYgKzE3MCw1NiBAQCBlbnVtIGNsYXNzIFdB
U01PcEV4cHJlc3Npb25JMzJXaXRoSW1tZWRpYXRlIDogdWludDhfdCB7CiAgICAgTnVtYmVyT2ZX
QVNNT3BFeHByZXNzaW9uSTMyV2l0aEltbWVkaWF0ZXMKIH07CiAKK2VudW0gY2xhc3MgV0FTTU9w
RXhwcmVzc2lvbkY2NCA6IHVpbnQ4X3QgeworICAgIENvbnN0YW50UG9vbEluZGV4LAorICAgIElt
bWVkaWF0ZSwKKyAgICBHZXRMb2NhbCwKKyAgICBHZXRHbG9iYWwsCisgICAgU2V0TG9jYWwsCisg
ICAgU2V0R2xvYmFsLAorICAgIExvYWQsCisgICAgTG9hZFdpdGhPZmZzZXQsCisgICAgU3RvcmUs
CisgICAgU3RvcmVXaXRoT2Zmc2V0LAorICAgIENhbGxJbnRlcm5hbCwKKyAgICBDYWxsSW5kaXJl
Y3QsCisgICAgQ2FsbEltcG9ydCwKKyAgICBDb25kaXRpb25hbCwKKyAgICBDb21tYSwKKyAgICBG
cm9tUzMyLAorICAgIEZyb21VMzIsCisgICAgRnJvbUYzMiwKKyAgICBOZWdhdGUsCisgICAgQWRk
LAorICAgIFN1YiwKKyAgICBNdWwsCisgICAgRGl2LAorICAgIE1vZCwKKyAgICBNaW4sCisgICAg
TWF4LAorICAgIEFicywKKyAgICBDZWlsLAorICAgIEZsb29yLAorICAgIFNxcnQsCisgICAgQ29z
LAorICAgIFNpbiwKKyAgICBUYW4sCisgICAgQUNvcywKKyAgICBBU2luLAorICAgIEFUYW4sCisg
ICAgQVRhbjIsCisgICAgRXhwLAorICAgIExuLAorICAgIFBvdywKKyAgICBOdW1iZXJPZldBU01P
cEV4cHJlc3Npb25GNjRzCit9OworCitlbnVtIGNsYXNzIFdBU01PcEV4cHJlc3Npb25GNjRXaXRo
SW1tZWRpYXRlIDogdWludDhfdCB7CisgICAgQ29uc3RhbnRQb29sSW5kZXgsCisgICAgR2V0TG9j
YWwsCisgICAgTnVtYmVyT2ZXQVNNT3BFeHByZXNzaW9uRjY0V2l0aEltbWVkaWF0ZXMKK307CisK
IGVudW0gY2xhc3MgV0FTTVZhcmlhYmxlVHlwZXMgOiB1aW50OF90IHsKICAgICBJMzIgPSAxIDw8
IDAsCiAgICAgRjMyID0gMSA8PCAxLApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3dhc20vV0FTTUZ1bmN0aW9uQ29tcGlsZXIuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNt
L1dBU01GdW5jdGlvbkNvbXBpbGVyLmgKaW5kZXggMDU4YzFkYjhkYTYxY2YyY2EyMTFlN2M2OTky
MTRlODQ2Y2ZjMjk2NC4uNzcxMjI2NjEzN2I1YzkyZDZlNmFlMmYyNmIyZWU3YTI5MmYxMjdjOSAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV0FTTUZ1bmN0aW9uQ29tcGls
ZXIuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XQVNNRnVuY3Rpb25Db21waWxl
ci5oCkBAIC0xODMsNiArMTgzLDExIEBAIHB1YmxpYzoKICAgICAgICAgICAgIG1fdGVtcFN0YWNr
VG9wLS07CiAgICAgICAgICAgICBzdG9yZTMyKEdQUkluZm86OnJlZ1QwLCBsb2NhbEFkZHJlc3Mo
bG9jYWxJbmRleCkpOwogICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgV0FTTVR5cGU6
OkY2NDoKKyAgICAgICAgICAgIGxvYWREb3VibGUodGVtcG9yYXJ5QWRkcmVzcyhtX3RlbXBTdGFj
a1RvcCAtIDEpLCBGUFJJbmZvOjpmcFJlZ1QwKTsKKyAgICAgICAgICAgIG1fdGVtcFN0YWNrVG9w
LS07CisgICAgICAgICAgICBzdG9yZURvdWJsZShGUFJJbmZvOjpmcFJlZ1QwLCBsb2NhbEFkZHJl
c3MobG9jYWxJbmRleCkpOworICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGRlZmF1bHQ6CiAg
ICAgICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICAgICAgfQpAQCAtMTkzLDcgKzE5
OCwyMCBAQCBwdWJsaWM6CiAgICAgICAgIHN3aXRjaCAocmV0dXJuVHlwZSkgewogICAgICAgICBj
YXNlIFdBU01FeHByZXNzaW9uVHlwZTo6STMyOgogICAgICAgICAgICAgbG9hZDMyKHRlbXBvcmFy
eUFkZHJlc3MobV90ZW1wU3RhY2tUb3AgLSAxKSwgR1BSSW5mbzo6cmV0dXJuVmFsdWVHUFIpOwor
I2lmIFVTRShKU1ZBTFVFNjQpCiAgICAgICAgICAgICBvcjY0KEdQUkluZm86OnRhZ1R5cGVOdW1i
ZXJSZWdpc3RlciwgR1BSSW5mbzo6cmV0dXJuVmFsdWVHUFIpOworI2Vsc2UKKyAgICAgICAgICAg
IG1vdmUoVHJ1c3RlZEltbTMyKEpTVmFsdWU6OkludDMyVGFnKSwgR1BSSW5mbzo6cmV0dXJuVmFs
dWVHUFIyKTsKKyNlbmRpZgorICAgICAgICAgICAgbV90ZW1wU3RhY2tUb3AtLTsKKyAgICAgICAg
ICAgIGJyZWFrOworICAgICAgICBjYXNlIFdBU01FeHByZXNzaW9uVHlwZTo6RjY0OgorICAgICAg
ICAgICAgbG9hZERvdWJsZSh0ZW1wb3JhcnlBZGRyZXNzKG1fdGVtcFN0YWNrVG9wIC0gMSksIEZQ
UkluZm86OmZwUmVnVDApOworI2lmIFVTRShKU1ZBTFVFNjQpCisgICAgICAgICAgICBib3hEb3Vi
bGUoRlBSSW5mbzo6ZnBSZWdUMCwgR1BSSW5mbzo6cmV0dXJuVmFsdWVHUFIpOworI2Vsc2UKKyAg
ICAgICAgICAgIGJveERvdWJsZShGUFJJbmZvOjpmcFJlZ1QwLCBHUFJJbmZvOjpyZXR1cm5WYWx1
ZUdQUjIsIEdQUkluZm86OnJldHVyblZhbHVlR1BSKTsKKyNlbmRpZgogICAgICAgICAgICAgbV90
ZW1wU3RhY2tUb3AtLTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIFdBU01FeHBy
ZXNzaW9uVHlwZTo6Vm9pZDoKQEAgLTIwOCw3ICsyMjYsMjMgQEAgcHVibGljOgogCiAgICAgaW50
IGJ1aWxkSW1tZWRpYXRlSTMyKHVpbnQzMl90IGltbWVkaWF0ZSkKICAgICB7Ci0gICAgICAgIHN0
b3JlMzIoVHJ1c3RlZEltbTMyKGltbWVkaWF0ZSksIHRlbXBvcmFyeUFkZHJlc3MobV90ZW1wU3Rh
Y2tUb3ArKykpOworICAgICAgICBzdG9yZTMyKEltbTMyKGltbWVkaWF0ZSksIHRlbXBvcmFyeUFk
ZHJlc3MobV90ZW1wU3RhY2tUb3ArKykpOworICAgICAgICByZXR1cm4gVU5VU0VEOworICAgIH0K
KworICAgIGludCBidWlsZEltbWVkaWF0ZUY2NChkb3VibGUgaW1tZWRpYXRlKQorICAgIHsKKyNp
ZiBVU0UoSlNWQUxVRTY0KQorICAgICAgICBzdG9yZTY0KEltbTY0KGJpdHdpc2VfY2FzdDxpbnQ2
NF90PihpbW1lZGlhdGUpKSwgdGVtcG9yYXJ5QWRkcmVzcyhtX3RlbXBTdGFja1RvcCsrKSk7Cisj
ZWxzZQorICAgICAgICB1bmlvbiB7CisgICAgICAgICAgICBkb3VibGUgZG91YmxlVmFsdWU7Cisg
ICAgICAgICAgICBpbnQzMl90IGludDMyVmFsdWVzWzJdOworICAgICAgICB9IHUgPSB7IGltbWVk
aWF0ZSB9OworICAgICAgICBtX3RlbXBTdGFja1RvcCsrOworICAgICAgICBzdG9yZTMyKEltbTMy
KHUuaW50MzJWYWx1ZXNbMF0pLCB0ZW1wb3JhcnlBZGRyZXNzKG1fdGVtcFN0YWNrVG9wIC0gMSkp
OworICAgICAgICBzdG9yZTMyKEltbTMyKHUuaW50MzJWYWx1ZXNbMV0pLCB0ZW1wb3JhcnlBZGRy
ZXNzKG1fdGVtcFN0YWNrVG9wIC0gMSkud2l0aE9mZnNldCg0KSk7CisjZW5kaWYKICAgICAgICAg
cmV0dXJuIFVOVVNFRDsKICAgICB9CiAKQEAgLTIxNyw4ICsyNTEsMTEgQEAgcHVibGljOgogICAg
ICAgICBzd2l0Y2ggKHR5cGUpIHsKICAgICAgICAgY2FzZSBXQVNNVHlwZTo6STMyOgogICAgICAg
ICAgICAgbG9hZDMyKGxvY2FsQWRkcmVzcyhsb2NhbEluZGV4KSwgR1BSSW5mbzo6cmVnVDApOwot
ICAgICAgICAgICAgbV90ZW1wU3RhY2tUb3ArKzsKLSAgICAgICAgICAgIHN0b3JlMzIoR1BSSW5m
bzo6cmVnVDAsIHRlbXBvcmFyeUFkZHJlc3MobV90ZW1wU3RhY2tUb3AgLSAxKSk7CisgICAgICAg
ICAgICBzdG9yZTMyKEdQUkluZm86OnJlZ1QwLCB0ZW1wb3JhcnlBZGRyZXNzKG1fdGVtcFN0YWNr
VG9wKyspKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIFdBU01UeXBlOjpGNjQ6
CisgICAgICAgICAgICBsb2FkRG91YmxlKGxvY2FsQWRkcmVzcyhsb2NhbEluZGV4KSwgRlBSSW5m
bzo6ZnBSZWdUMCk7CisgICAgICAgICAgICBzdG9yZURvdWJsZShGUFJJbmZvOjpmcFJlZ1QwLCB0
ZW1wb3JhcnlBZGRyZXNzKG1fdGVtcFN0YWNrVG9wKyspKTsKICAgICAgICAgICAgIGJyZWFrOwog
ICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XQVNNRnVuY3Rpb25QYXJzZXIuY3Bw
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV0FTTUZ1bmN0aW9uUGFyc2VyLmNwcAppbmRl
eCBmYWIyZWI0MjgwN2IxZDZiZWM3NTk2MWExNmZiYTVjNjMzMDYwNjQyLi5hYjc0YmMxOTIzNzBm
N2IzZmRmMjdmMDZjZTEyZDNmYWE2ODAzNzZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvd2FzbS9XQVNNRnVuY3Rpb25QYXJzZXIuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS93YXNtL1dBU01GdW5jdGlvblBhcnNlci5jcHAKQEAgLTM0LDEwICszNCwxMiBAQAogCiAj
ZGVmaW5lIFBST1BBR0FURV9FUlJPUigpIGRvIHsgaWYgKCFtX2Vycm9yTWVzc2FnZS5pc051bGwo
KSkgcmV0dXJuIDA7IH0gd2hpbGUgKDApCiAjZGVmaW5lIEZBSUxfV0lUSF9NRVNTQUdFKGVycm9y
TWVzc2FnZSkgZG8geyAgbV9lcnJvck1lc3NhZ2UgPSBlcnJvck1lc3NhZ2U7IHJldHVybiAwOyB9
IHdoaWxlICgwKQorI2RlZmluZSBSRUFEX0RPVUJMRV9PUl9GQUlMKHJlc3VsdCwgZXJyb3JNZXNz
YWdlKSBkbyB7IGlmICghbV9yZWFkZXIucmVhZERvdWJsZShyZXN1bHQpKSBGQUlMX1dJVEhfTUVT
U0FHRShlcnJvck1lc3NhZ2UpOyB9IHdoaWxlICgwKQogI2RlZmluZSBSRUFEX0NPTVBBQ1RfSU5U
MzJfT1JfRkFJTChyZXN1bHQsIGVycm9yTWVzc2FnZSkgZG8geyBpZiAoIW1fcmVhZGVyLnJlYWRD
b21wYWN0SW50MzIocmVzdWx0KSkgRkFJTF9XSVRIX01FU1NBR0UoZXJyb3JNZXNzYWdlKTsgfSB3
aGlsZSAoMCkKICNkZWZpbmUgUkVBRF9DT01QQUNUX1VJTlQzMl9PUl9GQUlMKHJlc3VsdCwgZXJy
b3JNZXNzYWdlKSBkbyB7IGlmICghbV9yZWFkZXIucmVhZENvbXBhY3RVSW50MzIocmVzdWx0KSkg
RkFJTF9XSVRIX01FU1NBR0UoZXJyb3JNZXNzYWdlKTsgfSB3aGlsZSAoMCkKICNkZWZpbmUgUkVB
RF9PUF9TVEFURU1FTlRfT1JfRkFJTChoYXNJbW1lZGlhdGUsIG9wLCBvcFdpdGhJbW1lZGlhdGUs
IGltbWVkaWF0ZSwgZXJyb3JNZXNzYWdlKSBkbyB7IGlmICghbV9yZWFkZXIucmVhZE9wU3RhdGVt
ZW50KGhhc0ltbWVkaWF0ZSwgb3AsIG9wV2l0aEltbWVkaWF0ZSwgaW1tZWRpYXRlKSkgRkFJTF9X
SVRIX01FU1NBR0UoZXJyb3JNZXNzYWdlKTsgfSB3aGlsZSAoMCkKICNkZWZpbmUgUkVBRF9PUF9F
WFBSRVNTSU9OX0kzMl9PUl9GQUlMKGhhc0ltbWVkaWF0ZSwgb3AsIG9wV2l0aEltbWVkaWF0ZSwg
aW1tZWRpYXRlLCBlcnJvck1lc3NhZ2UpIGRvIHsgaWYgKCFtX3JlYWRlci5yZWFkT3BFeHByZXNz
aW9uSTMyKGhhc0ltbWVkaWF0ZSwgb3AsIG9wV2l0aEltbWVkaWF0ZSwgaW1tZWRpYXRlKSkgRkFJ
TF9XSVRIX01FU1NBR0UoZXJyb3JNZXNzYWdlKTsgfSB3aGlsZSAoMCkKKyNkZWZpbmUgUkVBRF9P
UF9FWFBSRVNTSU9OX0Y2NF9PUl9GQUlMKGhhc0ltbWVkaWF0ZSwgb3AsIG9wV2l0aEltbWVkaWF0
ZSwgaW1tZWRpYXRlLCBlcnJvck1lc3NhZ2UpIGRvIHsgaWYgKCFtX3JlYWRlci5yZWFkT3BFeHBy
ZXNzaW9uRjY0KGhhc0ltbWVkaWF0ZSwgb3AsIG9wV2l0aEltbWVkaWF0ZSwgaW1tZWRpYXRlKSkg
RkFJTF9XSVRIX01FU1NBR0UoZXJyb3JNZXNzYWdlKTsgfSB3aGlsZSAoMCkKICNkZWZpbmUgUkVB
RF9WQVJJQUJMRV9UWVBFU19PUl9GQUlMKGhhc0ltbWVkaWF0ZSwgdmFyaWFibGVUeXBlcywgdmFy
aWFibGVUeXBlc1dpdGhJbW1lZGlhdGUsIGltbWVkaWF0ZSwgZXJyb3JNZXNzYWdlKSBkbyB7IGlm
ICghbV9yZWFkZXIucmVhZFZhcmlhYmxlVHlwZXMoaGFzSW1tZWRpYXRlLCB2YXJpYWJsZVR5cGVz
LCB2YXJpYWJsZVR5cGVzV2l0aEltbWVkaWF0ZSwgaW1tZWRpYXRlKSkgRkFJTF9XSVRIX01FU1NB
R0UoZXJyb3JNZXNzYWdlKTsgfSB3aGlsZSAoMCkKICNkZWZpbmUgUkVBRF9TV0lUQ0hfQ0FTRV9P
Ul9GQUlMKHJlc3VsdCwgZXJyb3JNZXNzYWdlKSBkbyB7IGlmICghbV9yZWFkZXIucmVhZFN3aXRj
aENhc2UocmVzdWx0KSkgRkFJTF9XSVRIX01FU1NBR0UoZXJyb3JNZXNzYWdlKTsgfSB3aGlsZSAo
MCkKICNkZWZpbmUgRkFJTF9JRl9GQUxTRShjb25kaXRpb24sIGVycm9yTWVzc2FnZSkgZG8geyBp
ZiAoIShjb25kaXRpb24pKSBGQUlMX1dJVEhfTUVTU0FHRShlcnJvck1lc3NhZ2UpOyB9IHdoaWxl
ICgwKQpAQCAtNDAzLDggKzQwNSw5IEBAIENvbnRleHRFeHByZXNzaW9uIFdBU01GdW5jdGlvblBh
cnNlcjo6cGFyc2VFeHByZXNzaW9uKENvbnRleHQmIGNvbnRleHQsIFdBU01FeHByCiAgICAgc3dp
dGNoIChleHByZXNzaW9uVHlwZSkgewogICAgIGNhc2UgV0FTTUV4cHJlc3Npb25UeXBlOjpJMzI6
CiAgICAgICAgIHJldHVybiBwYXJzZUV4cHJlc3Npb25JMzIoY29udGV4dCk7Ci0gICAgY2FzZSBX
QVNNRXhwcmVzc2lvblR5cGU6OkYzMjoKICAgICBjYXNlIFdBU01FeHByZXNzaW9uVHlwZTo6RjY0
OgorICAgICAgICByZXR1cm4gcGFyc2VFeHByZXNzaW9uRjY0KGNvbnRleHQpOworICAgIGNhc2Ug
V0FTTUV4cHJlc3Npb25UeXBlOjpGMzI6CiAgICAgY2FzZSBXQVNNRXhwcmVzc2lvblR5cGU6OlZv
aWQ6CiAgICAgICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQgdGhlc2UgaW5zdHJ1Y3Rpb25zLgogICAg
ICAgICBGQUlMX1dJVEhfTUVTU0FHRSgiVW5zdXBwb3J0ZWQgaW5zdHJ1Y3Rpb24uIik7CkBAIC01
ODcsNiArNTkwLDExNiBAQCBDb250ZXh0RXhwcmVzc2lvbiBXQVNNRnVuY3Rpb25QYXJzZXI6OnBh
cnNlUmVsYXRpb25hbEkzMkV4cHJlc3Npb25JMzIoQ29udGV4dCYgYwogICAgIHJldHVybiBjb250
ZXh0LmJ1aWxkUmVsYXRpb25hbEkzMihsZWZ0LCByaWdodCwgb3ApOwogfQogCit0ZW1wbGF0ZSA8
Y2xhc3MgQ29udGV4dD4KK0NvbnRleHRFeHByZXNzaW9uIFdBU01GdW5jdGlvblBhcnNlcjo6cGFy
c2VFeHByZXNzaW9uRjY0KENvbnRleHQmIGNvbnRleHQpCit7CisgICAgYm9vbCBoYXNJbW1lZGlh
dGU7CisgICAgV0FTTU9wRXhwcmVzc2lvbkY2NCBvcDsKKyAgICBXQVNNT3BFeHByZXNzaW9uRjY0
V2l0aEltbWVkaWF0ZSBvcFdpdGhJbW1lZGlhdGU7CisgICAgdWludDhfdCBpbW1lZGlhdGU7Cisg
ICAgUkVBRF9PUF9FWFBSRVNTSU9OX0Y2NF9PUl9GQUlMKGhhc0ltbWVkaWF0ZSwgb3AsIG9wV2l0
aEltbWVkaWF0ZSwgaW1tZWRpYXRlLCAiQ2Fubm90IHJlYWQgdGhlIGZsb2F0NjQgZXhwcmVzc2lv
biBvcGNvZGUuIik7CisgICAgaWYgKCFoYXNJbW1lZGlhdGUpIHsKKyAgICAgICAgc3dpdGNoIChv
cCkgeworICAgICAgICBjYXNlIFdBU01PcEV4cHJlc3Npb25GNjQ6OkNvbnN0YW50UG9vbEluZGV4
OgorICAgICAgICAgICAgcmV0dXJuIHBhcnNlQ29uc3RhbnRQb29sSW5kZXhFeHByZXNzaW9uRjY0
KGNvbnRleHQpOworICAgICAgICBjYXNlIFdBU01PcEV4cHJlc3Npb25GNjQ6OkltbWVkaWF0ZToK
KyAgICAgICAgICAgIHJldHVybiBwYXJzZUltbWVkaWF0ZUV4cHJlc3Npb25GNjQoY29udGV4dCk7
CisgICAgICAgIGNhc2UgV0FTTU9wRXhwcmVzc2lvbkY2NDo6R2V0TG9jYWw6CisgICAgICAgICAg
ICByZXR1cm4gcGFyc2VHZXRMb2NhbEV4cHJlc3Npb25GNjQoY29udGV4dCk7CisgICAgICAgIGNh
c2UgV0FTTU9wRXhwcmVzc2lvbkY2NDo6R2V0R2xvYmFsOgorICAgICAgICBjYXNlIFdBU01PcEV4
cHJlc3Npb25GNjQ6OlNldExvY2FsOgorICAgICAgICBjYXNlIFdBU01PcEV4cHJlc3Npb25GNjQ6
OlNldEdsb2JhbDoKKyAgICAgICAgY2FzZSBXQVNNT3BFeHByZXNzaW9uRjY0OjpMb2FkOgorICAg
ICAgICBjYXNlIFdBU01PcEV4cHJlc3Npb25GNjQ6OkxvYWRXaXRoT2Zmc2V0OgorICAgICAgICBj
YXNlIFdBU01PcEV4cHJlc3Npb25GNjQ6OlN0b3JlOgorICAgICAgICBjYXNlIFdBU01PcEV4cHJl
c3Npb25GNjQ6OlN0b3JlV2l0aE9mZnNldDoKKyAgICAgICAgY2FzZSBXQVNNT3BFeHByZXNzaW9u
RjY0OjpDYWxsSW50ZXJuYWw6CisgICAgICAgIGNhc2UgV0FTTU9wRXhwcmVzc2lvbkY2NDo6Q2Fs
bEluZGlyZWN0OgorICAgICAgICBjYXNlIFdBU01PcEV4cHJlc3Npb25GNjQ6OkNhbGxJbXBvcnQ6
CisgICAgICAgIGNhc2UgV0FTTU9wRXhwcmVzc2lvbkY2NDo6Q29uZGl0aW9uYWw6CisgICAgICAg
IGNhc2UgV0FTTU9wRXhwcmVzc2lvbkY2NDo6Q29tbWE6CisgICAgICAgIGNhc2UgV0FTTU9wRXhw
cmVzc2lvbkY2NDo6RnJvbVMzMjoKKyAgICAgICAgY2FzZSBXQVNNT3BFeHByZXNzaW9uRjY0OjpG
cm9tVTMyOgorICAgICAgICBjYXNlIFdBU01PcEV4cHJlc3Npb25GNjQ6OkZyb21GMzI6CisgICAg
ICAgIGNhc2UgV0FTTU9wRXhwcmVzc2lvbkY2NDo6TmVnYXRlOgorICAgICAgICBjYXNlIFdBU01P
cEV4cHJlc3Npb25GNjQ6OkFkZDoKKyAgICAgICAgY2FzZSBXQVNNT3BFeHByZXNzaW9uRjY0OjpT
dWI6CisgICAgICAgIGNhc2UgV0FTTU9wRXhwcmVzc2lvbkY2NDo6TXVsOgorICAgICAgICBjYXNl
IFdBU01PcEV4cHJlc3Npb25GNjQ6OkRpdjoKKyAgICAgICAgY2FzZSBXQVNNT3BFeHByZXNzaW9u
RjY0OjpNb2Q6CisgICAgICAgIGNhc2UgV0FTTU9wRXhwcmVzc2lvbkY2NDo6TWluOgorICAgICAg
ICBjYXNlIFdBU01PcEV4cHJlc3Npb25GNjQ6Ok1heDoKKyAgICAgICAgY2FzZSBXQVNNT3BFeHBy
ZXNzaW9uRjY0OjpBYnM6CisgICAgICAgIGNhc2UgV0FTTU9wRXhwcmVzc2lvbkY2NDo6Q2VpbDoK
KyAgICAgICAgY2FzZSBXQVNNT3BFeHByZXNzaW9uRjY0OjpGbG9vcjoKKyAgICAgICAgY2FzZSBX
QVNNT3BFeHByZXNzaW9uRjY0OjpTcXJ0OgorICAgICAgICBjYXNlIFdBU01PcEV4cHJlc3Npb25G
NjQ6OkNvczoKKyAgICAgICAgY2FzZSBXQVNNT3BFeHByZXNzaW9uRjY0OjpTaW46CisgICAgICAg
IGNhc2UgV0FTTU9wRXhwcmVzc2lvbkY2NDo6VGFuOgorICAgICAgICBjYXNlIFdBU01PcEV4cHJl
c3Npb25GNjQ6OkFDb3M6CisgICAgICAgIGNhc2UgV0FTTU9wRXhwcmVzc2lvbkY2NDo6QVNpbjoK
KyAgICAgICAgY2FzZSBXQVNNT3BFeHByZXNzaW9uRjY0OjpBVGFuOgorICAgICAgICBjYXNlIFdB
U01PcEV4cHJlc3Npb25GNjQ6OkFUYW4yOgorICAgICAgICBjYXNlIFdBU01PcEV4cHJlc3Npb25G
NjQ6OkV4cDoKKyAgICAgICAgY2FzZSBXQVNNT3BFeHByZXNzaW9uRjY0OjpMbjoKKyAgICAgICAg
Y2FzZSBXQVNNT3BFeHByZXNzaW9uRjY0OjpQb3c6CisgICAgICAgICAgICAvLyBGSVhNRTogSW1w
bGVtZW50IHRoZXNlIGluc3RydWN0aW9ucy4KKyAgICAgICAgICAgIEZBSUxfV0lUSF9NRVNTQUdF
KCJVbnN1cHBvcnRlZCBpbnN0cnVjdGlvbi4iKTsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAg
ICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICB9CisgICAgfSBlbHNlIHsKKyAgICAg
ICAgc3dpdGNoIChvcFdpdGhJbW1lZGlhdGUpIHsKKyAgICAgICAgY2FzZSBXQVNNT3BFeHByZXNz
aW9uRjY0V2l0aEltbWVkaWF0ZTo6Q29uc3RhbnRQb29sSW5kZXg6CisgICAgICAgICAgICByZXR1
cm4gcGFyc2VDb25zdGFudFBvb2xJbmRleEV4cHJlc3Npb25GNjQoY29udGV4dCwgaW1tZWRpYXRl
KTsKKyAgICAgICAgY2FzZSBXQVNNT3BFeHByZXNzaW9uRjY0V2l0aEltbWVkaWF0ZTo6R2V0TG9j
YWw6CisgICAgICAgICAgICByZXR1cm4gcGFyc2VHZXRMb2NhbEV4cHJlc3Npb25GNjQoY29udGV4
dCwgaW1tZWRpYXRlKTsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIEFTU0VSVF9OT1Rf
UkVBQ0hFRCgpOworICAgICAgICB9CisgICAgfQorICAgIHJldHVybiAwOworfQorCit0ZW1wbGF0
ZSA8Y2xhc3MgQ29udGV4dD4KK0NvbnRleHRFeHByZXNzaW9uIFdBU01GdW5jdGlvblBhcnNlcjo6
cGFyc2VDb25zdGFudFBvb2xJbmRleEV4cHJlc3Npb25GNjQoQ29udGV4dCYgY29udGV4dCwgdWlu
dDMyX3QgY29uc3RhbnRJbmRleCkKK3sKKyAgICBGQUlMX0lGX0ZBTFNFKGNvbnN0YW50SW5kZXgg
PCBtX21vZHVsZS0+ZjY0Q29uc3RhbnRzKCkuc2l6ZSgpLCAiVGhlIGNvbnN0YW50IGluZGV4IGlz
IGluY29ycmVjdC4iKTsKKyAgICByZXR1cm4gY29udGV4dC5idWlsZEltbWVkaWF0ZUY2NChtX21v
ZHVsZS0+ZjY0Q29uc3RhbnRzKClbY29uc3RhbnRJbmRleF0pOworfQorCit0ZW1wbGF0ZSA8Y2xh
c3MgQ29udGV4dD4KK0NvbnRleHRFeHByZXNzaW9uIFdBU01GdW5jdGlvblBhcnNlcjo6cGFyc2VD
b25zdGFudFBvb2xJbmRleEV4cHJlc3Npb25GNjQoQ29udGV4dCYgY29udGV4dCkKK3sKKyAgICB1
aW50MzJfdCBjb25zdGFudEluZGV4OworICAgIFJFQURfQ09NUEFDVF9VSU5UMzJfT1JfRkFJTChj
b25zdGFudEluZGV4LCAiQ2Fubm90IHJlYWQgdGhlIGNvbnN0YW50IGluZGV4LiIpOworICAgIHJl
dHVybiBwYXJzZUNvbnN0YW50UG9vbEluZGV4RXhwcmVzc2lvbkY2NChjb250ZXh0LCBjb25zdGFu
dEluZGV4KTsKK30KKwordGVtcGxhdGUgPGNsYXNzIENvbnRleHQ+CitDb250ZXh0RXhwcmVzc2lv
biBXQVNNRnVuY3Rpb25QYXJzZXI6OnBhcnNlSW1tZWRpYXRlRXhwcmVzc2lvbkY2NChDb250ZXh0
JiBjb250ZXh0KQoreworICAgIGRvdWJsZSBpbW1lZGlhdGU7CisgICAgUkVBRF9ET1VCTEVfT1Jf
RkFJTChpbW1lZGlhdGUsICJDYW5ub3QgcmVhZCB0aGUgaW1tZWRpYXRlLiIpOworICAgIHJldHVy
biBjb250ZXh0LmJ1aWxkSW1tZWRpYXRlRjY0KGltbWVkaWF0ZSk7Cit9CisKK3RlbXBsYXRlIDxj
bGFzcyBDb250ZXh0PgorQ29udGV4dEV4cHJlc3Npb24gV0FTTUZ1bmN0aW9uUGFyc2VyOjpwYXJz
ZUdldExvY2FsRXhwcmVzc2lvbkY2NChDb250ZXh0JiBjb250ZXh0LCB1aW50MzJfdCBsb2NhbElu
ZGV4KQoreworICAgIEZBSUxfSUZfRkFMU0UobG9jYWxJbmRleCA8IG1fbG9jYWxUeXBlcy5zaXpl
KCksICJUaGUgbG9jYWwgdmFyaWFibGUgaW5kZXggaXMgaW5jb3JyZWN0LiIpOworICAgIEZBSUxf
SUZfRkFMU0UobV9sb2NhbFR5cGVzW2xvY2FsSW5kZXhdID09IFdBU01UeXBlOjpGNjQsICJFeHBl
Y3RlZCBhIGxvY2FsIHZhcmlhYmxlIG9mIHR5cGUgZmxvYXQ2NC4iKTsKKyAgICByZXR1cm4gY29u
dGV4dC5idWlsZEdldExvY2FsKGxvY2FsSW5kZXgsIFdBU01UeXBlOjpGNjQpOworfQorCit0ZW1w
bGF0ZSA8Y2xhc3MgQ29udGV4dD4KK0NvbnRleHRFeHByZXNzaW9uIFdBU01GdW5jdGlvblBhcnNl
cjo6cGFyc2VHZXRMb2NhbEV4cHJlc3Npb25GNjQoQ29udGV4dCYgY29udGV4dCkKK3sKKyAgICB1
aW50MzJfdCBsb2NhbEluZGV4OworICAgIFJFQURfQ09NUEFDVF9VSU5UMzJfT1JfRkFJTChsb2Nh
bEluZGV4LCAiQ2Fubm90IHJlYWQgdGhlIGxvY2FsIGluZGV4LiIpOworICAgIHJldHVybiBwYXJz
ZUdldExvY2FsRXhwcmVzc2lvbkY2NChjb250ZXh0LCBsb2NhbEluZGV4KTsKK30KKwogfSAvLyBu
YW1lc3BhY2UgSlNDCiAKICNlbmRpZiAvLyBFTkFCTEUoV0VCQVNTRU1CTFkpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XQVNNRnVuY3Rpb25QYXJzZXIuaCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dBU01GdW5jdGlvblBhcnNlci5oCmluZGV4IDI2OWNmMzFl
ZTdhODJhNzAxMTdhODViMDNjYWM1YjQzYWNmMmQyN2YuLjEzNjE2YTc3ZTU5MzgwOWZhZWVjMTFj
OTg5MDJhNWI2MzUyZjJiNTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNt
L1dBU01GdW5jdGlvblBhcnNlci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dB
U01GdW5jdGlvblBhcnNlci5oCkBAIC04Nyw2ICs4NywxMyBAQCBwcml2YXRlOgogICAgIHRlbXBs
YXRlIDxjbGFzcyBDb250ZXh0PiBDb250ZXh0RXhwcmVzc2lvbiBwYXJzZUJpbmFyeUV4cHJlc3Np
b25JMzIoQ29udGV4dCYsIFdBU01PcEV4cHJlc3Npb25JMzIpOwogICAgIHRlbXBsYXRlIDxjbGFz
cyBDb250ZXh0PiBDb250ZXh0RXhwcmVzc2lvbiBwYXJzZVJlbGF0aW9uYWxJMzJFeHByZXNzaW9u
STMyKENvbnRleHQmLCBXQVNNT3BFeHByZXNzaW9uSTMyKTsKIAorICAgIHRlbXBsYXRlIDxjbGFz
cyBDb250ZXh0PiBDb250ZXh0RXhwcmVzc2lvbiBwYXJzZUV4cHJlc3Npb25GNjQoQ29udGV4dCYp
OworICAgIHRlbXBsYXRlIDxjbGFzcyBDb250ZXh0PiBDb250ZXh0RXhwcmVzc2lvbiBwYXJzZUNv
bnN0YW50UG9vbEluZGV4RXhwcmVzc2lvbkY2NChDb250ZXh0JiwgdWludDMyX3QgY29uc3RhbnRJ
bmRleCk7CisgICAgdGVtcGxhdGUgPGNsYXNzIENvbnRleHQ+IENvbnRleHRFeHByZXNzaW9uIHBh
cnNlQ29uc3RhbnRQb29sSW5kZXhFeHByZXNzaW9uRjY0KENvbnRleHQmKTsKKyAgICB0ZW1wbGF0
ZSA8Y2xhc3MgQ29udGV4dD4gQ29udGV4dEV4cHJlc3Npb24gcGFyc2VJbW1lZGlhdGVFeHByZXNz
aW9uRjY0KENvbnRleHQmKTsKKyAgICB0ZW1wbGF0ZSA8Y2xhc3MgQ29udGV4dD4gQ29udGV4dEV4
cHJlc3Npb24gcGFyc2VHZXRMb2NhbEV4cHJlc3Npb25GNjQoQ29udGV4dCYsIHVpbnQzMl90IGxv
Y2FsSW5kZXgpOworICAgIHRlbXBsYXRlIDxjbGFzcyBDb250ZXh0PiBDb250ZXh0RXhwcmVzc2lv
biBwYXJzZUdldExvY2FsRXhwcmVzc2lvbkY2NChDb250ZXh0Jik7CisKICAgICBKU1dBU01Nb2R1
bGUqIG1fbW9kdWxlOwogICAgIFdBU01SZWFkZXIgbV9yZWFkZXI7CiAgICAgc2l6ZV90IG1fZnVu
Y3Rpb25JbmRleDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dBU01G
dW5jdGlvblN5bnRheENoZWNrZXIuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dBU01G
dW5jdGlvblN5bnRheENoZWNrZXIuaAppbmRleCA1MTk4NTUzZTQzODA0MTc1MjIxNzFkYThiNjZj
YTFjZWU3Y2EwYzQxLi4xOGVlMjFlOGM3OTllYzljMjJlNGI2ZTg4N2UxYTgzZGJlZWNmZTg2IDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XQVNNRnVuY3Rpb25TeW50YXhD
aGVja2VyLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV0FTTUZ1bmN0aW9uU3lu
dGF4Q2hlY2tlci5oCkBAIC02NSw2ICs2NSwxMyBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBV
TlVTRUQ7CiAgICAgfQogCisgICAgaW50IGJ1aWxkSW1tZWRpYXRlRjY0KHVpbnQzMl90KQorICAg
IHsKKyAgICAgICAgbV90ZW1wU3RhY2tUb3ArKzsKKyAgICAgICAgdXBkYXRlVGVtcFN0YWNrSGVp
Z2h0KCk7CisgICAgICAgIHJldHVybiBVTlVTRUQ7CisgICAgfQorCiAgICAgaW50IGJ1aWxkR2V0
TG9jYWwodWludDMyX3QsIFdBU01UeXBlKQogICAgIHsKICAgICAgICAgbV90ZW1wU3RhY2tUb3Ar
KzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dBU01SZWFkZXIuY3Bw
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV0FTTVJlYWRlci5jcHAKaW5kZXggZDU1ZDAy
ZTc0MGUyODViZWYxN2M2ZmY4ZWNiN2MyMmUzYzYxZGRkYS4uMmM1YzhlN2I1ODRjNWIwOWEwYWJh
MGRiY2E4MWUzYWU3NTI0MjQwNSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dh
c20vV0FTTVJlYWRlci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV0FTTVJl
YWRlci5jcHAKQEAgLTE4OSw2ICsxODksMTMgQEAgYm9vbCBXQVNNUmVhZGVyOjpyZWFkT3BFeHBy
ZXNzaW9uSTMyKGJvb2wmIGhhc0ltbWVkaWF0ZSwgV0FTTU9wRXhwcmVzc2lvbkkzMiYgb3AKICAg
ICAgICAgc3RhdGljX2Nhc3Q8dWludDhfdD4oV0FTTU9wRXhwcmVzc2lvbkkzMldpdGhJbW1lZGlh
dGU6Ok51bWJlck9mV0FTTU9wRXhwcmVzc2lvbkkzMldpdGhJbW1lZGlhdGVzKSk7CiB9CiAKK2Jv
b2wgV0FTTVJlYWRlcjo6cmVhZE9wRXhwcmVzc2lvbkY2NChib29sJiBoYXNJbW1lZGlhdGUsIFdB
U01PcEV4cHJlc3Npb25GNjQmIG9wLCBXQVNNT3BFeHByZXNzaW9uRjY0V2l0aEltbWVkaWF0ZSYg
b3BXaXRoSW1tZWRpYXRlLCB1aW50OF90JiBpbW1lZGlhdGUpCit7CisgICAgcmV0dXJuIHJlYWRP
cChoYXNJbW1lZGlhdGUsIG9wLCBvcFdpdGhJbW1lZGlhdGUsIGltbWVkaWF0ZSwKKyAgICAgICAg
c3RhdGljX2Nhc3Q8dWludDhfdD4oV0FTTU9wRXhwcmVzc2lvbkY2NDo6TnVtYmVyT2ZXQVNNT3BF
eHByZXNzaW9uRjY0cyksCisgICAgICAgIHN0YXRpY19jYXN0PHVpbnQ4X3Q+KFdBU01PcEV4cHJl
c3Npb25GNjRXaXRoSW1tZWRpYXRlOjpOdW1iZXJPZldBU01PcEV4cHJlc3Npb25GNjRXaXRoSW1t
ZWRpYXRlcykpOworfQorCiBib29sIFdBU01SZWFkZXI6OnJlYWRWYXJpYWJsZVR5cGVzKGJvb2wm
IGhhc0ltbWVkaWF0ZSwgV0FTTVZhcmlhYmxlVHlwZXMmIHZhcmlhYmxlVHlwZXMsIFdBU01WYXJp
YWJsZVR5cGVzV2l0aEltbWVkaWF0ZSYgdmFyaWFibGVUeXBlc1dpdGhJbW1lZGlhdGUsIHVpbnQ4
X3QmIGltbWVkaWF0ZSkKIHsKICAgICByZXR1cm4gcmVhZE9wKGhhc0ltbWVkaWF0ZSwgdmFyaWFi
bGVUeXBlcywgdmFyaWFibGVUeXBlc1dpdGhJbW1lZGlhdGUsIGltbWVkaWF0ZSwKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dBU01SZWFkZXIuaCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS93YXNtL1dBU01SZWFkZXIuaAppbmRleCA0MDU4MjUzMWYxODdlMTZhOTZhZTAy
ODA4M2Y1MmUyMzVhYTBlNDM4Li43YTJkMTMzN2EwNzFhZjllNzY2YmEzM2JhOGUxNTY0NDRhMGNk
YmY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XQVNNUmVhZGVyLmgK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV0FTTVJlYWRlci5oCkBAIC01Niw2ICs1
Niw3IEBAIHB1YmxpYzoKICAgICBib29sIHJlYWRFeHBvcnRGb3JtYXQoV0FTTUV4cG9ydEZvcm1h
dCYgcmVzdWx0KTsKICAgICBib29sIHJlYWRPcFN0YXRlbWVudChib29sJiBoYXNJbW1lZGlhdGUs
IFdBU01PcFN0YXRlbWVudCYsIFdBU01PcFN0YXRlbWVudFdpdGhJbW1lZGlhdGUmLCB1aW50OF90
JiBpbW1lZGlhdGUpOwogICAgIGJvb2wgcmVhZE9wRXhwcmVzc2lvbkkzMihib29sJiBoYXNJbW1l
ZGlhdGUsIFdBU01PcEV4cHJlc3Npb25JMzImLCBXQVNNT3BFeHByZXNzaW9uSTMyV2l0aEltbWVk
aWF0ZSYsIHVpbnQ4X3QmIGltbWVkaWF0ZSk7CisgICAgYm9vbCByZWFkT3BFeHByZXNzaW9uRjY0
KGJvb2wmIGhhc0ltbWVkaWF0ZSwgV0FTTU9wRXhwcmVzc2lvbkY2NCYsIFdBU01PcEV4cHJlc3Np
b25GNjRXaXRoSW1tZWRpYXRlJiwgdWludDhfdCYgaW1tZWRpYXRlKTsKICAgICBib29sIHJlYWRW
YXJpYWJsZVR5cGVzKGJvb2wmIGhhc0ltbWVkaWF0ZSwgV0FTTVZhcmlhYmxlVHlwZXMmLCBXQVNN
VmFyaWFibGVUeXBlc1dpdGhJbW1lZGlhdGUmLCB1aW50OF90JiBpbW1lZGlhdGUpOwogICAgIGJv
b2wgcmVhZFN3aXRjaENhc2UoV0FTTVN3aXRjaENhc2UmIHJlc3VsdCk7CiAK
</data>

          </attachment>
      

    </bug>

</bugzilla>