<?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>143913</bug_id>
          
          <creation_ts>2015-04-17 21:29:30 -0700</creation_ts>
          <short_desc>[JSC] Add support for typed arrays to the Array profiling</short_desc>
          <delta_ts>2015-04-28 07:45:09 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Benjamin Poulain">benjamin</reporter>
          <assigned_to name="Benjamin Poulain">benjamin</assigned_to>
          <cc>aestes</cc>
    
    <cc>fpizlo</cc>
    
    <cc>ggaren</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1086521</commentid>
    <comment_count>0</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2015-04-17 21:29:30 -0700</bug_when>
    <thetext>Add support for typed arrays to the Array profiling</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1086522</commentid>
    <comment_count>1</comment_count>
      <attachid>251082</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2015-04-17 21:29:55 -0700</bug_when>
    <thetext>Created attachment 251082
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1086824</commentid>
    <comment_count>2</comment_count>
      <attachid>251082</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2015-04-20 11:13:02 -0700</bug_when>
    <thetext>Comment on attachment 251082
Patch

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

Patch looks good to me. Is this ready to land?

&gt; Source/JavaScriptCore/dfg/DFGByteCodeParser.cpp:764
&gt; -        
&gt; +

Revert.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1089293</commentid>
    <comment_count>3</comment_count>
      <attachid>251794</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2015-04-27 17:22:51 -0700</bug_when>
    <thetext>Created attachment 251794
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1089360</commentid>
    <comment_count>4</comment_count>
      <attachid>251794</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2015-04-27 20:19:05 -0700</bug_when>
    <thetext>Comment on attachment 251794
Patch

Microbenchmark?  It would be great to have a microbenchmark in LayoutTests/js/regress/script-tests so that it&apos;ll run as part of JSRegress in run-jsc-benchmarks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1089383</commentid>
    <comment_count>5</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2015-04-27 21:17:32 -0700</bug_when>
    <thetext>Committed r183450: &lt;http://trac.webkit.org/changeset/183450&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1089507</commentid>
    <comment_count>6</comment_count>
    <who name="Andy Estes">aestes</who>
    <bug_when>2015-04-28 07:45:09 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; Committed r183450: &lt;http://trac.webkit.org/changeset/183450&gt;

The new test is missing an expected result, so I added the actual result from Yosemite in http://trac.webkit.org/changeset/183473. You might want to check if that&apos;s right.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>251082</attachid>
            <date>2015-04-17 21:29:55 -0700</date>
            <delta_ts>2015-04-27 17:22:49 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-143913-20150417212856.patch</filename>
            <type>text/plain</type>
            <size>14195</size>
            <attacher name="Benjamin Poulain">benjamin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTgyOTI1CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBk
YTMwNDMxMTRkNWQ1MGZjM2JhODQwOTgwNTllMzUwNDUyNjRlZmFjLi5hOWZlODUwNTliODIwY2Vk
MzJmODhmMDdhM2RkZDE4NWJlNzI0OGE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyNCBAQAorMjAxNS0wNC0xNyAgQmVuamFtaW4gUG91bGFpbiAgPGJwb3VsYWluQGFwcGxl
LmNvbT4KKworICAgICAgICBBZGQgc3VwcG9ydCBmb3IgdHlwZWQgYXJyYXlzIHRvIHRoZSBBcnJh
eSBwcm9maWxpbmcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTE0MzkxMworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIFdvcmsgaW4gcHJvZ3Jlc3MuCisKKyAgICAgICAgKiBKYXZhU2NyaXB0Q29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGJ5dGVjb2RlL0FycmF5UHJvZmlsZS5jcHA6
CisgICAgICAgIChKU0M6OmR1bXBBcnJheU1vZGVzKToKKyAgICAgICAgKiBieXRlY29kZS9BcnJh
eVByb2ZpbGUuaDoKKyAgICAgICAgKEpTQzo6YXJyYXlNb2RlRnJvbVN0cnVjdHVyZSk6CisgICAg
ICAgICogZGZnL0RGR0FycmF5TW9kZS5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6QXJyYXlNb2Rl
Ojpmcm9tT2JzZXJ2ZWQpOgorICAgICAgICAoSlNDOjpERkc6OkFycmF5TW9kZTo6cmVmaW5lKToK
KyAgICAgICAgKiBkZmcvREZHQnl0ZUNvZGVQYXJzZXIuY3BwOgorICAgICAgICAoSlNDOjpERkc6
OkJ5dGVDb2RlUGFyc2VyOjpnZXRBcnJheU1vZGVDb25zaWRlcmluZ1Nsb3dQYXRoKToKKyAgICAg
ICAgKiBydW50aW1lL0luZGV4aW5nVHlwZS5oOgorCiAyMDE1LTA0LTE2ICBHZW9mZnJleSBHYXJl
biAgPGdnYXJlbkBhcHBsZS5jb20+CiAKICAgICAgICAgU3BlY3VsYXRpdmUgZml4IGFmdGVyIHIx
ODI5MTUKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3Jp
cHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggNzE1OTEzYmNmNmIyN2M5Yjc4
YTBmZGZkZTdlMTNjMDVjZjAxM2NlYS4uMDBjMDgwYWM4OTc4YjU0YWE1MWY4ZjEzODRhM2MwMTY2
NzM4Yjg0MiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0ph
dmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTI1NjAsNyArMjU2MCw3
IEBACiAJCTE0RDg1Nzc0MEE0Njk2QzgwMDMyMTQ2QyAvKiB0ZXN0YXBpLmpzICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5qYXZhc2NyaXB0OyBuYW1lID0gdGVzdGFwaS5qczsgcGF0aCA9IEFQSS90ZXN0
cy90ZXN0YXBpLmpzOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxNERBODE4RTBEOTlG
RDIwMDBCMEE0RkIgLyogSlNMZXhpY2FsRW52aXJvbm1lbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gSlNMZXhpY2FsRW52aXJvbm1lbnQuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJMTREQTgxOEYwRDk5RkQyMDAwQjBBNEZCIC8qIEpTTGV4aWNhbEVudmlyb25t
ZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTTGV4aWNhbEVu
dmlyb25tZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMTRERTBENjgwRDAy
NDMxNDAwQUFDQ0EyIC8qIEpTR2xvYmFsT2JqZWN0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgbGluZUVuZGluZyA9IDA7IHBhdGggPSBKU0dsb2JhbE9iamVjdC5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IHhjTGFuZ3VhZ2VTcGVjaWZpY2F0aW9uSWRlbnRpZmllciA9IHhj
b2RlLmxhbmcuY3BwOyB9OworCQkxNERFMEQ2ODBEMDI0MzE0MDBBQUNDQTIgLyogSlNHbG9iYWxP
YmplY3QuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBsaW5lRW5kaW5nID0gMDsg
cGF0aCA9IEpTR2xvYmFsT2JqZWN0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
MTRERjA0RDkxNkIzOTk2RDAwMTZBNTEzIC8qIFN0YXRpY1Byb3BlcnR5QW5hbHlzaXMuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3RhdGljUHJvcGVydHlBbmFseXNpcy5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxNEU4NEY5OTE0RUUxQUNDMDBENkQ1RDQgLyog
V2Vha0Jsb2NrLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYWtC
bG9jay5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTE0RTg0RjlBMTRFRTFBQ0Mw
MEQ2RDVENCAvKiBXZWFrQmxvY2suaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
V2Vha0Jsb2NrLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQXJyYXlQcm9maWxlLmNwcCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ieXRlY29kZS9BcnJheVByb2ZpbGUuY3BwCmluZGV4IGVmNDlmMjBjZTc2NzEx
NmUwZmU3YWQ0YWM4OWY2YjNiNDBhYjcxODkuLjFjMDBjMjMzZWFmMWU0ZDllNDIzNDUxZTFhMTkw
NGU5NGY5MGVhZTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9B
cnJheVByb2ZpbGUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9BcnJh
eVByb2ZpbGUuY3BwCkBAIC03Myw2ICs3MywyNSBAQCB2b2lkIGR1bXBBcnJheU1vZGVzKFByaW50
U3RyZWFtJiBvdXQsIEFycmF5TW9kZXMgYXJyYXlNb2RlcykKICAgICAgICAgb3V0LnByaW50KGNv
bW1hLCAiQXJyYXlXaXRoQXJyYXlTdG9yYWdlIik7CiAgICAgaWYgKGFycmF5TW9kZXMgJiBhc0Fy
cmF5TW9kZXMoQXJyYXlXaXRoU2xvd1B1dEFycmF5U3RvcmFnZSkpCiAgICAgICAgIG91dC5wcmlu
dChjb21tYSwgIkFycmF5V2l0aFNsb3dQdXRBcnJheVN0b3JhZ2UiKTsKKworICAgIGlmIChhcnJh
eU1vZGVzICYgSW50OEFycmF5TW9kZSkKKyAgICAgICAgb3V0LnByaW50KGNvbW1hLCAiSW50OEFy
cmF5TW9kZSIpOworICAgIGlmIChhcnJheU1vZGVzICYgSW50MTZBcnJheU1vZGUpCisgICAgICAg
IG91dC5wcmludChjb21tYSwgIkludDE2QXJyYXlNb2RlIik7CisgICAgaWYgKGFycmF5TW9kZXMg
JiBJbnQzMkFycmF5TW9kZSkKKyAgICAgICAgb3V0LnByaW50KGNvbW1hLCAiSW50MzJBcnJheU1v
ZGUiKTsKKyAgICBpZiAoYXJyYXlNb2RlcyAmIFVpbnQ4QXJyYXlNb2RlKQorICAgICAgICBvdXQu
cHJpbnQoY29tbWEsICJVaW50OEFycmF5TW9kZSIpOworICAgIGlmIChhcnJheU1vZGVzICYgVWlu
dDhDbGFtcGVkQXJyYXlNb2RlKQorICAgICAgICBvdXQucHJpbnQoY29tbWEsICJVaW50OENsYW1w
ZWRBcnJheU1vZGUiKTsKKyAgICBpZiAoYXJyYXlNb2RlcyAmIFVpbnQxNkFycmF5TW9kZSkKKyAg
ICAgICAgb3V0LnByaW50KGNvbW1hLCAiVWludDE2QXJyYXlNb2RlIik7CisgICAgaWYgKGFycmF5
TW9kZXMgJiBVaW50MzJBcnJheU1vZGUpCisgICAgICAgIG91dC5wcmludChjb21tYSwgIlVpbnQz
MkFycmF5TW9kZSIpOworICAgIGlmIChhcnJheU1vZGVzICYgRmxvYXQzMkFycmF5TW9kZSkKKyAg
ICAgICAgb3V0LnByaW50KGNvbW1hLCAiRmxvYXQzMkFycmF5TW9kZSIpOworICAgIGlmIChhcnJh
eU1vZGVzICYgRmxvYXQ2NEFycmF5TW9kZSkKKyAgICAgICAgb3V0LnByaW50KGNvbW1hLCAiRmxv
YXQ2NEFycmF5TW9kZSIpOwogfQogCiB2b2lkIEFycmF5UHJvZmlsZTo6Y29tcHV0ZVVwZGF0ZWRQ
cmVkaWN0aW9uKGNvbnN0IENvbmN1cnJlbnRKSVRMb2NrZXImLCBDb2RlQmxvY2sqIGNvZGVCbG9j
aykKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9BcnJheVByb2Zp
bGUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9BcnJheVByb2ZpbGUuaAppbmRl
eCAzMDIzNjVmZjAwNmUyYzNkY2RjNTNhZTliZDJlYmY2NjNiOWQ5N2Y2Li43MGEzODZlZmEzZWRl
NGQ2MDM4ZjhjMzEwZjg5MmRjOTFlMDJmYTUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvYnl0ZWNvZGUvQXJyYXlQcm9maWxlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2J5dGVjb2RlL0FycmF5UHJvZmlsZS5oCkBAIC0zNywyMCArMzcsNDQgQEAgbmFtZXNwYWNlIEpT
QyB7CiBjbGFzcyBDb2RlQmxvY2s7CiBjbGFzcyBMTEludE9mZnNldHNFeHRyYWN0b3I7CiAKLS8v
IFRoaXMgaXMgYSBiaXRmaWVsZCB3aGVyZSBlYWNoIGJpdCByZXByZXNlbnRzIGFuIEluZGV4aW5n
VHlwZSB0aGF0IHdlIGhhdmUgc2Vlbi4KLS8vIFRoZXJlIGFyZSAzMiBpbmRleGluZyB0eXBlcywg
c28gYW4gdW5zaWduZWQgaXMgZW5vdWdoLgorLy8gVGhpcyBpcyBhIGJpdGZpZWxkIHdoZXJlIGVh
Y2ggYml0IHJlcHJlc2VudHMgYW4gdHlwZSBvZiBhcnJheSBhY2Nlc3MgdGhhdCB3ZSBoYXZlIHNl
ZW4uCisvLyBUaGVyZSBhcmUgMTYgaW5kZXhpbmcgdHlwZXMgdGhhdCB1c2UgdGhlIGxvd2VyIGJp
dHMuCisvLyBUaGVyZSBhcmUgOSB0eXBlZCBhcnJheSB0eXBlcyB0YWtpbmcgdGhlIGJpdHMgMTYg
dG8gMjUuCiB0eXBlZGVmIHVuc2lnbmVkIEFycmF5TW9kZXM7CiAKK2NvbnN0IEFycmF5TW9kZXMg
SW50OEFycmF5TW9kZSA9IDEgPDwgMTY7Citjb25zdCBBcnJheU1vZGVzIEludDE2QXJyYXlNb2Rl
ID0gMSA8PCAxNzsKK2NvbnN0IEFycmF5TW9kZXMgSW50MzJBcnJheU1vZGUgPSAxIDw8IDE4Owor
Y29uc3QgQXJyYXlNb2RlcyBVaW50OEFycmF5TW9kZSA9IDEgPDwgMTk7Citjb25zdCBBcnJheU1v
ZGVzIFVpbnQ4Q2xhbXBlZEFycmF5TW9kZSA9IDEgPDwgMjA7Citjb25zdCBBcnJheU1vZGVzIFVp
bnQxNkFycmF5TW9kZSA9IDEgPDwgMjE7Citjb25zdCBBcnJheU1vZGVzIFVpbnQzMkFycmF5TW9k
ZSA9IDEgPDwgMjI7Citjb25zdCBBcnJheU1vZGVzIEZsb2F0MzJBcnJheU1vZGUgPSAxIDw8IDIz
OworY29uc3QgQXJyYXlNb2RlcyBGbG9hdDY0QXJyYXlNb2RlID0gMSA8PCAyNDsKKwogI2RlZmlu
ZSBhc0FycmF5TW9kZXModHlwZSkgXAogICAgIChzdGF0aWNfY2FzdDx1bnNpZ25lZD4oMSkgPDwg
c3RhdGljX2Nhc3Q8dW5zaWduZWQ+KHR5cGUpKQogCisjZGVmaW5lIEFMTF9UWVBFRF9BUlJBWV9N
T0RFUyBcCisgICAgKEludDhBcnJheU1vZGUgICAgICAgICAgICBcCisgICAgfCBJbnQxNkFycmF5
TW9kZSAgICAgICAgICBcCisgICAgfCBJbnQzMkFycmF5TW9kZSAgICAgICAgICBcCisgICAgfCBV
aW50OEFycmF5TW9kZSAgICAgICAgICBcCisgICAgfCBVaW50OENsYW1wZWRBcnJheU1vZGUgICBc
CisgICAgfCBVaW50MTZBcnJheU1vZGUgICAgICAgICBcCisgICAgfCBVaW50MzJBcnJheU1vZGUg
ICAgICAgICBcCisgICAgfCBGbG9hdDMyQXJyYXlNb2RlICAgICAgICBcCisgICAgfCBGbG9hdDY0
QXJyYXlNb2RlICAgICAgICBcCisgICAgKQorCiAjZGVmaW5lIEFMTF9OT05fQVJSQVlfQVJSQVlf
TU9ERVMgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAoYXNBcnJheU1vZGVzKE5vbkFycmF5
KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgIHwgYXNBcnJheU1vZGVzKE5vbkFy
cmF5V2l0aEludDMyKSAgICAgICAgICAgICAgICAgICBcCiAgICAgfCBhc0FycmF5TW9kZXMoTm9u
QXJyYXlXaXRoRG91YmxlKSAgICAgICAgICAgICAgICAgIFwKICAgICB8IGFzQXJyYXlNb2RlcyhO
b25BcnJheVdpdGhDb250aWd1b3VzKSAgICAgICAgICAgICAgXAogICAgIHwgYXNBcnJheU1vZGVz
KE5vbkFycmF5V2l0aEFycmF5U3RvcmFnZSkgICAgICAgICAgICBcCi0gICAgfCBhc0FycmF5TW9k
ZXMoTm9uQXJyYXlXaXRoU2xvd1B1dEFycmF5U3RvcmFnZSkpCisgICAgfCBhc0FycmF5TW9kZXMo
Tm9uQXJyYXlXaXRoU2xvd1B1dEFycmF5U3RvcmFnZSkgICAgIFwKKyAgICB8IEFMTF9UWVBFRF9B
UlJBWV9NT0RFUykKIAogI2RlZmluZSBBTExfQVJSQVlfQVJSQVlfTU9ERVMgICAgICAgICAgICAg
ICAgICAgICAgICAgICBcCiAgICAgKGFzQXJyYXlNb2RlcyhBcnJheUNsYXNzKSAgICAgICAgICAg
ICAgICAgICAgICAgICAgIFwKQEAgLTY1LDYgKzg5LDI5IEBAIHR5cGVkZWYgdW5zaWduZWQgQXJy
YXlNb2RlczsKIAogaW5saW5lIEFycmF5TW9kZXMgYXJyYXlNb2RlRnJvbVN0cnVjdHVyZShTdHJ1
Y3R1cmUqIHN0cnVjdHVyZSkKIHsKKyAgICBzd2l0Y2ggKHN0cnVjdHVyZS0+Y2xhc3NJbmZvKCkt
PnR5cGVkQXJyYXlTdG9yYWdlVHlwZSkgeworICAgIGNhc2UgVHlwZUludDg6CisgICAgICAgIHJl
dHVybiBJbnQ4QXJyYXlNb2RlOworICAgIGNhc2UgVHlwZVVpbnQ4OgorICAgICAgICByZXR1cm4g
VWludDhBcnJheU1vZGU7CisgICAgY2FzZSBUeXBlVWludDhDbGFtcGVkOgorICAgICAgICByZXR1
cm4gVWludDhDbGFtcGVkQXJyYXlNb2RlOworICAgIGNhc2UgVHlwZUludDE2OgorICAgICAgICBy
ZXR1cm4gSW50MTZBcnJheU1vZGU7CisgICAgY2FzZSBUeXBlVWludDE2OgorICAgICAgICByZXR1
cm4gVWludDE2QXJyYXlNb2RlOworICAgIGNhc2UgVHlwZUludDMyOgorICAgICAgICByZXR1cm4g
SW50MzJBcnJheU1vZGU7CisgICAgY2FzZSBUeXBlVWludDMyOgorICAgICAgICByZXR1cm4gVWlu
dDMyQXJyYXlNb2RlOworICAgIGNhc2UgVHlwZUZsb2F0MzI6CisgICAgICAgIHJldHVybiBGbG9h
dDMyQXJyYXlNb2RlOworICAgIGNhc2UgVHlwZUZsb2F0NjQ6CisgICAgICAgIHJldHVybiBGbG9h
dDY0QXJyYXlNb2RlOworICAgIGNhc2UgVHlwZURhdGFWaWV3OgorICAgIGNhc2UgTm90VHlwZWRB
cnJheToKKyAgICAgICAgYnJlYWs7CisgICAgfQogICAgIHJldHVybiBhc0FycmF5TW9kZXMoc3Ry
dWN0dXJlLT5pbmRleGluZ1R5cGUoKSk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHQXJyYXlNb2RlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHQXJyYXlNb2RlLmNwcAppbmRleCBhNTk5NGZiNWNlZmNiOTM4MjM4ODlhYjg2YTIzOGQxMjk2
ZDg2NTA2Li43ZjMxMTQwNDZjNThkMDg2NjdlZWM5Y2UzMGViNzAyZjYyNGExMjE5IDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0FycmF5TW9kZS5jcHAKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBcnJheU1vZGUuY3BwCkBAIC05Nyw2ICs5NywyNCBA
QCBBcnJheU1vZGUgQXJyYXlNb2RlOjpmcm9tT2JzZXJ2ZWQoY29uc3QgQ29uY3VycmVudEpJVExv
Y2tlciYgbG9ja2VyLCBBcnJheVByb2ZpbAogICAgIGNhc2UgYXNBcnJheU1vZGVzKE5vbkFycmF5
V2l0aFNsb3dQdXRBcnJheVN0b3JhZ2UpIHwgYXNBcnJheU1vZGVzKEFycmF5V2l0aFNsb3dQdXRB
cnJheVN0b3JhZ2UpOgogICAgIGNhc2UgYXNBcnJheU1vZGVzKE5vbkFycmF5V2l0aEFycmF5U3Rv
cmFnZSkgfCBhc0FycmF5TW9kZXMoQXJyYXlXaXRoQXJyYXlTdG9yYWdlKSB8IGFzQXJyYXlNb2Rl
cyhOb25BcnJheVdpdGhTbG93UHV0QXJyYXlTdG9yYWdlKSB8IGFzQXJyYXlNb2RlcyhBcnJheVdp
dGhTbG93UHV0QXJyYXlTdG9yYWdlKToKICAgICAgICAgcmV0dXJuIEFycmF5TW9kZShBcnJheTo6
U2xvd1B1dEFycmF5U3RvcmFnZSwgQXJyYXk6OlBvc3NpYmx5QXJyYXksIEFycmF5OjpBc0lzKS53
aXRoUHJvZmlsZShsb2NrZXIsIHByb2ZpbGUsIG1ha2VTYWZlKTsKKyAgICBjYXNlIEludDhBcnJh
eU1vZGU6CisgICAgICAgIHJldHVybiBBcnJheU1vZGUoQXJyYXk6OkludDhBcnJheSwgbm9uQXJy
YXksIEFycmF5OjpBc0lzKS53aXRoUHJvZmlsZShsb2NrZXIsIHByb2ZpbGUsIG1ha2VTYWZlKTsK
KyAgICBjYXNlIEludDE2QXJyYXlNb2RlOgorICAgICAgICByZXR1cm4gQXJyYXlNb2RlKEFycmF5
OjpJbnQxNkFycmF5LCBub25BcnJheSwgQXJyYXk6OkFzSXMpLndpdGhQcm9maWxlKGxvY2tlciwg
cHJvZmlsZSwgbWFrZVNhZmUpOworICAgIGNhc2UgSW50MzJBcnJheU1vZGU6CisgICAgICAgIHJl
dHVybiBBcnJheU1vZGUoQXJyYXk6OkludDMyQXJyYXksIG5vbkFycmF5LCBBcnJheTo6QXNJcyku
d2l0aFByb2ZpbGUobG9ja2VyLCBwcm9maWxlLCBtYWtlU2FmZSk7CisgICAgY2FzZSBVaW50OEFy
cmF5TW9kZToKKyAgICAgICAgcmV0dXJuIEFycmF5TW9kZShBcnJheTo6VWludDhBcnJheSwgbm9u
QXJyYXksIEFycmF5OjpBc0lzKS53aXRoUHJvZmlsZShsb2NrZXIsIHByb2ZpbGUsIG1ha2VTYWZl
KTsKKyAgICBjYXNlIFVpbnQ4Q2xhbXBlZEFycmF5TW9kZToKKyAgICAgICAgcmV0dXJuIEFycmF5
TW9kZShBcnJheTo6VWludDhDbGFtcGVkQXJyYXksIG5vbkFycmF5LCBBcnJheTo6QXNJcykud2l0
aFByb2ZpbGUobG9ja2VyLCBwcm9maWxlLCBtYWtlU2FmZSk7CisgICAgY2FzZSBVaW50MTZBcnJh
eU1vZGU6CisgICAgICAgIHJldHVybiBBcnJheU1vZGUoQXJyYXk6OlVpbnQxNkFycmF5LCBub25B
cnJheSwgQXJyYXk6OkFzSXMpLndpdGhQcm9maWxlKGxvY2tlciwgcHJvZmlsZSwgbWFrZVNhZmUp
OworICAgIGNhc2UgVWludDMyQXJyYXlNb2RlOgorICAgICAgICByZXR1cm4gQXJyYXlNb2RlKEFy
cmF5OjpVaW50MzJBcnJheSwgbm9uQXJyYXksIEFycmF5OjpBc0lzKS53aXRoUHJvZmlsZShsb2Nr
ZXIsIHByb2ZpbGUsIG1ha2VTYWZlKTsKKyAgICBjYXNlIEZsb2F0MzJBcnJheU1vZGU6CisgICAg
ICAgIHJldHVybiBBcnJheU1vZGUoQXJyYXk6OkZsb2F0MzJBcnJheSwgbm9uQXJyYXksIEFycmF5
OjpBc0lzKS53aXRoUHJvZmlsZShsb2NrZXIsIHByb2ZpbGUsIG1ha2VTYWZlKTsKKyAgICBjYXNl
IEZsb2F0NjRBcnJheU1vZGU6CisgICAgICAgIHJldHVybiBBcnJheU1vZGUoQXJyYXk6OkZsb2F0
NjRBcnJheSwgbm9uQXJyYXksIEFycmF5OjpBc0lzKS53aXRoUHJvZmlsZShsb2NrZXIsIHByb2Zp
bGUsIG1ha2VTYWZlKTsKIAogICAgIGRlZmF1bHQ6CiAgICAgICAgIGlmICgob2JzZXJ2ZWQgJiBh
c0FycmF5TW9kZXMoTm9uQXJyYXkpKSAmJiBwcm9maWxlLT5tYXlJbnRlcmNlcHRJbmRleGVkQWNj
ZXNzZXMobG9ja2VyKSkKQEAgLTE4OSw3ICsyMDcsMjUgQEAgQXJyYXlNb2RlIEFycmF5TW9kZTo6
cmVmaW5lKAogICAgICAgICBpZiAoZG9lc0NvbnZlcnNpb24oKSAmJiAoZmxhZ3MgJiBOb2RlQnl0
ZWNvZGVVc2VzQXNJbnQpKQogICAgICAgICAgICAgcmV0dXJuIHdpdGhDb252ZXJzaW9uKEFycmF5
OjpSYWdlQ29udmVydCk7CiAgICAgICAgIHJldHVybiAqdGhpczsKLSAgICAgICAgCisKKyAgICBj
YXNlIEFycmF5OjpJbnQ4QXJyYXk6CisgICAgY2FzZSBBcnJheTo6SW50MTZBcnJheToKKyAgICBj
YXNlIEFycmF5OjpJbnQzMkFycmF5OgorICAgIGNhc2UgQXJyYXk6OlVpbnQ4QXJyYXk6CisgICAg
Y2FzZSBBcnJheTo6VWludDhDbGFtcGVkQXJyYXk6CisgICAgY2FzZSBBcnJheTo6VWludDE2QXJy
YXk6CisgICAgY2FzZSBBcnJheTo6VWludDMyQXJyYXk6CisgICAgY2FzZSBBcnJheTo6RmxvYXQz
MkFycmF5OgorICAgIGNhc2UgQXJyYXk6OkZsb2F0NjRBcnJheToKKyAgICAgICAgc3dpdGNoIChu
b2RlLT5vcCgpKSB7CisgICAgICAgIGNhc2UgUHV0QnlWYWw6CisgICAgICAgICAgICBpZiAoZ3Jh
cGguaGFzRXhpdFNpdGUobm9kZS0+b3JpZ2luLnNlbWFudGljLCBPdXRPZkJvdW5kcykgfHwgIWlz
SW5Cb3VuZHMoKSkKKyAgICAgICAgICAgICAgICByZXR1cm4gd2l0aFNwZWN1bGF0aW9uKEFycmF5
OjpPdXRPZkJvdW5kcyk7CisgICAgICAgICAgICByZXR1cm4gd2l0aFNwZWN1bGF0aW9uKEFycmF5
OjpJbkJvdW5kcyk7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICByZXR1cm4gd2l0aFNw
ZWN1bGF0aW9uKEFycmF5OjpJbkJvdW5kcyk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuICp0
aGlzOwogICAgIGNhc2UgQXJyYXk6OlVucHJvZmlsZWQ6CiAgICAgY2FzZSBBcnJheTo6U2VsZWN0
VXNpbmdQcmVkaWN0aW9uczogewogICAgICAgICBiYXNlICY9IH5TcGVjT3RoZXI7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0J5dGVDb2RlUGFyc2VyLmNwcCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQnl0ZUNvZGVQYXJzZXIuY3BwCmluZGV4IGQ5NzM4
ODVjMWNhMzJhM2M2ZTIwNjBmOTAxZDcyYTI4MWIxODdiNzguLjlhY2RlYjg5ZTJiMDIyZjA0N2Rk
NWE5ZDVhNzY4NjAwZDBlN2YzOTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHQnl0ZUNvZGVQYXJzZXIuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHQnl0ZUNvZGVQYXJzZXIuY3BwCkBAIC03NjEsNyArNzYxLDcgQEAgcHJpdmF0ZToKICAgICAg
ICAgYm9vbCBtYWtlU2FmZSA9CiAgICAgICAgICAgICBtX2lubGluZVN0YWNrVG9wLT5tX3Byb2Zp
bGVkQmxvY2stPmxpa2VseVRvVGFrZVNsb3dDYXNlKG1fY3VycmVudEluZGV4KQogICAgICAgICAg
ICAgfHwgcHJvZmlsZS0+b3V0T2ZCb3VuZHMobG9ja2VyKTsKLSAgICAgICAgCisKICAgICAgICAg
QXJyYXlNb2RlIHJlc3VsdCA9IEFycmF5TW9kZTo6ZnJvbU9ic2VydmVkKGxvY2tlciwgcHJvZmls
ZSwgYWN0aW9uLCBtYWtlU2FmZSk7CiAgICAgICAgIAogICAgICAgICByZXR1cm4gcmVzdWx0Owpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW5kZXhpbmdUeXBlLmgg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbmRleGluZ1R5cGUuaAppbmRleCBiMjhi
OTYyMTg1MDI0Y2M3OTY1Zjc4MjRkOTMwMDZiMjI3MWZmZGFhLi4zZjlmZGQxZWQ2NjJmNWQwYzM3
OTI1YzUxZGVhYWE1MmVjMjJjMmIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9JbmRleGluZ1R5cGUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9JbmRleGluZ1R5cGUuaApAQCAtMzgsOCArMzgsOCBAQCBuYW1lc3BhY2UgSlNDIHsKIAogICAg
IHN0cnVjdCBJbmRleGluZ1R5cGUgewogICAgICAgICB1aW50OF90IGlzQXJyYXk6MTsgICAgICAg
ICAgICAgICAgICAgIC8vIGJpdCAwCi0gICAgICAgIHVpbnQ4X3Qgc2hhcGU6NDsgICAgICAgICAg
ICAgICAgICAgICAgLy8gYml0IDEgLSA0Ci0gICAgICAgIHVpbnQ4X3QgbWF5SGF2ZUluZGV4ZWRB
Y2Nlc3NvcnM6MTsgICAgLy8gYml0IDUKKyAgICAgICAgdWludDhfdCBzaGFwZTo0OyAgICAgICAg
ICAgICAgICAgICAgICAvLyBiaXQgMSAtIDMKKyAgICAgICAgdWludDhfdCBtYXlIYXZlSW5kZXhl
ZEFjY2Vzc29yczoxOyAgICAvLyBiaXQgNAogICAgIH07CiAKICAgICBUaGUgc2hhcGUgdmFsdWVz
IChlLmcuIEludDMyU2hhcGUsIENvbnRpZ3VvdXNTaGFwZSwgZXRjKSBhcmUgYW4gZW51bWVyYXRp
b24gb2YKQEAgLTUzLDIxICs1MywyMSBAQCB0eXBlZGVmIHVpbnQ4X3QgSW5kZXhpbmdUeXBlOwog
c3RhdGljIGNvbnN0IEluZGV4aW5nVHlwZSBJc0FycmF5ICAgICAgICAgICAgICAgICAgPSAweDAx
OwogCiAvLyBUaGUgc2hhcGUgb2YgdGhlIGluZGV4ZWQgcHJvcGVydHkgc3RvcmFnZS4KLXN0YXRp
YyBjb25zdCBJbmRleGluZ1R5cGUgSW5kZXhpbmdTaGFwZU1hc2sgICAgICAgID0gMHgxRTsKK3N0
YXRpYyBjb25zdCBJbmRleGluZ1R5cGUgSW5kZXhpbmdTaGFwZU1hc2sgICAgICAgID0gMHgwRTsK
IHN0YXRpYyBjb25zdCBJbmRleGluZ1R5cGUgTm9JbmRleGluZ1NoYXBlICAgICAgICAgID0gMHgw
MDsKIHN0YXRpYyBjb25zdCBJbmRleGluZ1R5cGUgVW5kZWNpZGVkU2hhcGUgICAgICAgICAgID0g
MHgwMjsgLy8gT25seSB1c2VmdWwgZm9yIGFycmF5cy4KLXN0YXRpYyBjb25zdCBJbmRleGluZ1R5
cGUgSW50MzJTaGFwZSAgICAgICAgICAgICAgID0gMHgxNDsKLXN0YXRpYyBjb25zdCBJbmRleGlu
Z1R5cGUgRG91YmxlU2hhcGUgICAgICAgICAgICAgID0gMHgxNjsKLXN0YXRpYyBjb25zdCBJbmRl
eGluZ1R5cGUgQ29udGlndW91c1NoYXBlICAgICAgICAgID0gMHgxQTsKLXN0YXRpYyBjb25zdCBJ
bmRleGluZ1R5cGUgQXJyYXlTdG9yYWdlU2hhcGUgICAgICAgID0gMHgxQzsKLXN0YXRpYyBjb25z
dCBJbmRleGluZ1R5cGUgU2xvd1B1dEFycmF5U3RvcmFnZVNoYXBlID0gMHgxRTsKK3N0YXRpYyBj
b25zdCBJbmRleGluZ1R5cGUgSW50MzJTaGFwZSAgICAgICAgICAgICAgID0gMHgwNDsKK3N0YXRp
YyBjb25zdCBJbmRleGluZ1R5cGUgRG91YmxlU2hhcGUgICAgICAgICAgICAgID0gMHgwNjsKK3N0
YXRpYyBjb25zdCBJbmRleGluZ1R5cGUgQ29udGlndW91c1NoYXBlICAgICAgICAgID0gMHgwODsK
K3N0YXRpYyBjb25zdCBJbmRleGluZ1R5cGUgQXJyYXlTdG9yYWdlU2hhcGUgICAgICAgID0gMHgw
QTsKK3N0YXRpYyBjb25zdCBJbmRleGluZ1R5cGUgU2xvd1B1dEFycmF5U3RvcmFnZVNoYXBlID0g
MHgwQzsKIAogc3RhdGljIGNvbnN0IEluZGV4aW5nVHlwZSBJbmRleGluZ1NoYXBlU2hpZnQgICAg
ICAgPSAxOwotc3RhdGljIGNvbnN0IEluZGV4aW5nVHlwZSBOdW1iZXJPZkluZGV4aW5nU2hhcGVz
ICAgPSAxNjsKK3N0YXRpYyBjb25zdCBJbmRleGluZ1R5cGUgTnVtYmVyT2ZJbmRleGluZ1NoYXBl
cyAgID0gNzsKIAogLy8gQWRkaXRpb25hbCBmbGFncyBmb3IgdHJhY2tpbmcgdGhlIGhpc3Rvcnkg
b2YgdGhlIHR5cGUuIFRoZXNlIGFyZSB1c3VhbGx5CiAvLyBtYXNrZWQgb2ZmIHVubGVzcyB5b3Ug
YXNrIGZvciB0aGVtIGRpcmVjdGx5Lgotc3RhdGljIGNvbnN0IEluZGV4aW5nVHlwZSBNYXlIYXZl
SW5kZXhlZEFjY2Vzc29ycyAgPSAweDIwOworc3RhdGljIGNvbnN0IEluZGV4aW5nVHlwZSBNYXlI
YXZlSW5kZXhlZEFjY2Vzc29ycyAgPSAweDEwOwogCiAvLyBMaXN0IG9mIGFjY2VwdGFibGUgYXJy
YXkgdHlwZXMuCiBzdGF0aWMgY29uc3QgSW5kZXhpbmdUeXBlIE5vbkFycmF5ICAgICAgICAgICAg
ICAgICAgICAgICAgPSAweDA7CkBAIC0xNjIsMTAgKzE2MiwxMCBAQCB2b2lkIGR1bXBJbmRleGlu
Z1R5cGUoUHJpbnRTdHJlYW0mLCBJbmRleGluZ1R5cGUpOwogTUFLRV9QUklOVF9BREFQVE9SKElu
ZGV4aW5nVHlwZUR1bXAsIEluZGV4aW5nVHlwZSwgZHVtcEluZGV4aW5nVHlwZSk7CiAKIC8vIE1h
c2sgb2YgYWxsIHBvc3NpYmxlIHR5cGVzLgotc3RhdGljIGNvbnN0IEluZGV4aW5nVHlwZSBBbGxB
cnJheVR5cGVzICAgICAgICAgICAgPSAzMTsKK3N0YXRpYyBjb25zdCBJbmRleGluZ1R5cGUgQWxs
QXJyYXlUeXBlcyAgICAgICAgICAgID0gSW5kZXhpbmdTaGFwZU1hc2sgfCBJc0FycmF5OwogCiAv
LyBNYXNrIG9mIGFsbCBwb3NzaWJsZSB0eXBlcyBpbmNsdWRpbmcgdGhlIGhpc3RvcnkuCi1zdGF0
aWMgY29uc3QgSW5kZXhpbmdUeXBlIEFsbEFycmF5VHlwZXNBbmRIaXN0b3J5ICA9IDEyNzsKK3N0
YXRpYyBjb25zdCBJbmRleGluZ1R5cGUgQWxsQXJyYXlUeXBlc0FuZEhpc3RvcnkgID0gQWxsQXJy
YXlUeXBlcyB8IE1heUhhdmVJbmRleGVkQWNjZXNzb3JzOwogCiB9IC8vIG5hbWVzcGFjZSBKU0MK
IAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>251794</attachid>
            <date>2015-04-27 17:22:51 -0700</date>
            <delta_ts>2015-04-27 20:19:05 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-143913-20150427172143.patch</filename>
            <type>text/plain</type>
            <size>21102</size>
            <attacher name="Benjamin Poulain">benjamin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTgzNDEwCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBm
OTg0YzQ1MWNlMjJlOWMzOGFjODRjNjZkYjUzZTM3MDFlOWJiNjY4Li43OTk2MjQ3MDRhM2I0N2Vl
NmExN2Q0OTJmYTc5NDlmZDU1MTBmNDZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwzNiBAQAorMjAxNS0wNC0yNyAgQmVuamFtaW4gUG91bGFpbiAgPGJwb3VsYWluQGFwcGxl
LmNvbT4KKworICAgICAgICBbSlNDXSBBZGQgc3VwcG9ydCBmb3IgdHlwZWQgYXJyYXlzIHRvIHRo
ZSBBcnJheSBwcm9maWxpbmcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTE0MzkxMworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIFRoaXMgcGF0Y2ggYWRkcyBBcnJheU1vZGVzIGZvciBldmVyeSB0eXBlZCBhcnJh
eXMuIEhhdmluZyB0aGF0IGluZm9ybWF0aW9uCisgICAgICAgIGxldCB1cyBnZW5lcmF0ZSBiZXR0
ZXIgR2V0QnlWYWwgYW5kIFB1dEJ5VmFsIHdoZW4gdGhlIHR5cGUgc3BlY3VsYXRpb24KKyAgICAg
ICAgYXJlIG5vdCBnb29kIGVub3VnaC4KKworICAgICAgICBBIHR5cGljYWwgY2FzZSB3aGVyZSB0
aGlzIGlzIHVzZWZ1bCBpcyBhbnkgYmFzaWMgYmxvY2sgZm9yIHdoaWNoIHRoZSB0eXBlCisgICAg
ICAgIG9mIHRoZSBvYmplY3QgaXMgYWx3YXlzIG1vcmUgcmVzdHJpY3RpdmUgdGhhbiB0aGUgc3Bl
Y3VsYXRpb24gKGZvciBleGFtcGxlLCAKKyAgICAgICAgYSBiYXNpYyBibG9jayBnYXRlZCBieSBh
IGJyYW5jaCBvbmx5IHRha2VuIGZvciBvbiB0eXBlKS4KKworICAgICAgICAqIGJ5dGVjb2RlL0Fy
cmF5UHJvZmlsZS5jcHA6CisgICAgICAgIChKU0M6OmR1bXBBcnJheU1vZGVzKToKKyAgICAgICAg
KiBieXRlY29kZS9BcnJheVByb2ZpbGUuaDoKKyAgICAgICAgKEpTQzo6YXJyYXlNb2RlRnJvbVN0
cnVjdHVyZSk6CisgICAgICAgICogZGZnL0RGR0FycmF5TW9kZS5jcHA6CisgICAgICAgIChKU0M6
OkRGRzo6QXJyYXlNb2RlOjpmcm9tT2JzZXJ2ZWQpOgorICAgICAgICAoSlNDOjpERkc6OkFycmF5
TW9kZTo6cmVmaW5lKToKKyAgICAgICAgTWFpbnRhaW4gdGhlIHJlZmluZSgpIHNlbWFudGljLiBX
ZSBkbyBub3Qgc3VwcG9ydCBPdXRPZkJvdW5kcyBhY2Nlc3MKKyAgICAgICAgZm9yIEdldEJ5VmFs
IG9uIHR5cGVkIGFycmF5LgorCisgICAgICAgICogcnVudGltZS9JbmRleGluZ1R5cGUuaDoKKyAg
ICAgICAgKiB0ZXN0cy9zdHJlc3MvdHlwZWQtYXJyYXktZ2V0LWJ5LXZhbC1wcm9maWxpbmcuanM6
IEFkZGVkLgorICAgICAgICAodGVzdEFycmF5LnRlc3RDb2RlKToKKyAgICAgICAgKHRlc3RBcnJh
eSk6CisgICAgICAgICogdGVzdHMvc3RyZXNzL3R5cGVkLWFycmF5LXB1dC1ieS12YWwtcHJvZmls
aW5nLmpzOiBBZGRlZC4KKyAgICAgICAgKHRlc3RBcnJheS50ZXN0Q29kZSk6CisgICAgICAgICh0
ZXN0QXJyYXkpOgorCiAyMDE1LTA0LTI1ICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+
CiAKICAgICAgICAgVmFyYXJnc0ZvcndhcmRpbmdQaGFzZSBzaG91bGQgdXNlIGJ5dGVjb2RlIGxp
dmVuZXNzIGluIGFkZGl0aW9uIHRvIG90aGVyIHVzZXMgdG8gZGV0ZXJtaW5lIHRoZSBsYXN0IHBv
aW50IHRoYXQgYSBjYW5kaWRhdGUgaXMgdXNlZApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2J5dGVjb2RlL0FycmF5UHJvZmlsZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
Ynl0ZWNvZGUvQXJyYXlQcm9maWxlLmNwcAppbmRleCBlZjQ5ZjIwY2U3NjcxMTZlMGZlN2FkNGFj
ODlmNmIzYjQwYWI3MTg5Li4xYzAwYzIzM2VhZjFlNGQ5ZTQyMzQ1MWUxYTE5MDRlOTRmOTBlYWUy
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQXJyYXlQcm9maWxl
LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQXJyYXlQcm9maWxlLmNw
cApAQCAtNzMsNiArNzMsMjUgQEAgdm9pZCBkdW1wQXJyYXlNb2RlcyhQcmludFN0cmVhbSYgb3V0
LCBBcnJheU1vZGVzIGFycmF5TW9kZXMpCiAgICAgICAgIG91dC5wcmludChjb21tYSwgIkFycmF5
V2l0aEFycmF5U3RvcmFnZSIpOwogICAgIGlmIChhcnJheU1vZGVzICYgYXNBcnJheU1vZGVzKEFy
cmF5V2l0aFNsb3dQdXRBcnJheVN0b3JhZ2UpKQogICAgICAgICBvdXQucHJpbnQoY29tbWEsICJB
cnJheVdpdGhTbG93UHV0QXJyYXlTdG9yYWdlIik7CisKKyAgICBpZiAoYXJyYXlNb2RlcyAmIElu
dDhBcnJheU1vZGUpCisgICAgICAgIG91dC5wcmludChjb21tYSwgIkludDhBcnJheU1vZGUiKTsK
KyAgICBpZiAoYXJyYXlNb2RlcyAmIEludDE2QXJyYXlNb2RlKQorICAgICAgICBvdXQucHJpbnQo
Y29tbWEsICJJbnQxNkFycmF5TW9kZSIpOworICAgIGlmIChhcnJheU1vZGVzICYgSW50MzJBcnJh
eU1vZGUpCisgICAgICAgIG91dC5wcmludChjb21tYSwgIkludDMyQXJyYXlNb2RlIik7CisgICAg
aWYgKGFycmF5TW9kZXMgJiBVaW50OEFycmF5TW9kZSkKKyAgICAgICAgb3V0LnByaW50KGNvbW1h
LCAiVWludDhBcnJheU1vZGUiKTsKKyAgICBpZiAoYXJyYXlNb2RlcyAmIFVpbnQ4Q2xhbXBlZEFy
cmF5TW9kZSkKKyAgICAgICAgb3V0LnByaW50KGNvbW1hLCAiVWludDhDbGFtcGVkQXJyYXlNb2Rl
Iik7CisgICAgaWYgKGFycmF5TW9kZXMgJiBVaW50MTZBcnJheU1vZGUpCisgICAgICAgIG91dC5w
cmludChjb21tYSwgIlVpbnQxNkFycmF5TW9kZSIpOworICAgIGlmIChhcnJheU1vZGVzICYgVWlu
dDMyQXJyYXlNb2RlKQorICAgICAgICBvdXQucHJpbnQoY29tbWEsICJVaW50MzJBcnJheU1vZGUi
KTsKKyAgICBpZiAoYXJyYXlNb2RlcyAmIEZsb2F0MzJBcnJheU1vZGUpCisgICAgICAgIG91dC5w
cmludChjb21tYSwgIkZsb2F0MzJBcnJheU1vZGUiKTsKKyAgICBpZiAoYXJyYXlNb2RlcyAmIEZs
b2F0NjRBcnJheU1vZGUpCisgICAgICAgIG91dC5wcmludChjb21tYSwgIkZsb2F0NjRBcnJheU1v
ZGUiKTsKIH0KIAogdm9pZCBBcnJheVByb2ZpbGU6OmNvbXB1dGVVcGRhdGVkUHJlZGljdGlvbihj
b25zdCBDb25jdXJyZW50SklUTG9ja2VyJiwgQ29kZUJsb2NrKiBjb2RlQmxvY2spCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQXJyYXlQcm9maWxlLmggYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQXJyYXlQcm9maWxlLmgKaW5kZXggMzAyMzY1ZmYw
MDZlMmMzZGNkYzUzYWU5YmQyZWJmNjYzYjlkOTdmNi4uNzBhMzg2ZWZhM2VkZTRkNjAzOGY4YzMx
MGY4OTJkYzkxZTAyZmE1MyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVj
b2RlL0FycmF5UHJvZmlsZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9B
cnJheVByb2ZpbGUuaApAQCAtMzcsMjAgKzM3LDQ0IEBAIG5hbWVzcGFjZSBKU0MgewogY2xhc3Mg
Q29kZUJsb2NrOwogY2xhc3MgTExJbnRPZmZzZXRzRXh0cmFjdG9yOwogCi0vLyBUaGlzIGlzIGEg
Yml0ZmllbGQgd2hlcmUgZWFjaCBiaXQgcmVwcmVzZW50cyBhbiBJbmRleGluZ1R5cGUgdGhhdCB3
ZSBoYXZlIHNlZW4uCi0vLyBUaGVyZSBhcmUgMzIgaW5kZXhpbmcgdHlwZXMsIHNvIGFuIHVuc2ln
bmVkIGlzIGVub3VnaC4KKy8vIFRoaXMgaXMgYSBiaXRmaWVsZCB3aGVyZSBlYWNoIGJpdCByZXBy
ZXNlbnRzIGFuIHR5cGUgb2YgYXJyYXkgYWNjZXNzIHRoYXQgd2UgaGF2ZSBzZWVuLgorLy8gVGhl
cmUgYXJlIDE2IGluZGV4aW5nIHR5cGVzIHRoYXQgdXNlIHRoZSBsb3dlciBiaXRzLgorLy8gVGhl
cmUgYXJlIDkgdHlwZWQgYXJyYXkgdHlwZXMgdGFraW5nIHRoZSBiaXRzIDE2IHRvIDI1LgogdHlw
ZWRlZiB1bnNpZ25lZCBBcnJheU1vZGVzOwogCitjb25zdCBBcnJheU1vZGVzIEludDhBcnJheU1v
ZGUgPSAxIDw8IDE2OworY29uc3QgQXJyYXlNb2RlcyBJbnQxNkFycmF5TW9kZSA9IDEgPDwgMTc7
Citjb25zdCBBcnJheU1vZGVzIEludDMyQXJyYXlNb2RlID0gMSA8PCAxODsKK2NvbnN0IEFycmF5
TW9kZXMgVWludDhBcnJheU1vZGUgPSAxIDw8IDE5OworY29uc3QgQXJyYXlNb2RlcyBVaW50OENs
YW1wZWRBcnJheU1vZGUgPSAxIDw8IDIwOworY29uc3QgQXJyYXlNb2RlcyBVaW50MTZBcnJheU1v
ZGUgPSAxIDw8IDIxOworY29uc3QgQXJyYXlNb2RlcyBVaW50MzJBcnJheU1vZGUgPSAxIDw8IDIy
OworY29uc3QgQXJyYXlNb2RlcyBGbG9hdDMyQXJyYXlNb2RlID0gMSA8PCAyMzsKK2NvbnN0IEFy
cmF5TW9kZXMgRmxvYXQ2NEFycmF5TW9kZSA9IDEgPDwgMjQ7CisKICNkZWZpbmUgYXNBcnJheU1v
ZGVzKHR5cGUpIFwKICAgICAoc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KDEpIDw8IHN0YXRpY19jYXN0
PHVuc2lnbmVkPih0eXBlKSkKIAorI2RlZmluZSBBTExfVFlQRURfQVJSQVlfTU9ERVMgXAorICAg
IChJbnQ4QXJyYXlNb2RlICAgICAgICAgICAgXAorICAgIHwgSW50MTZBcnJheU1vZGUgICAgICAg
ICAgXAorICAgIHwgSW50MzJBcnJheU1vZGUgICAgICAgICAgXAorICAgIHwgVWludDhBcnJheU1v
ZGUgICAgICAgICAgXAorICAgIHwgVWludDhDbGFtcGVkQXJyYXlNb2RlICAgXAorICAgIHwgVWlu
dDE2QXJyYXlNb2RlICAgICAgICAgXAorICAgIHwgVWludDMyQXJyYXlNb2RlICAgICAgICAgXAor
ICAgIHwgRmxvYXQzMkFycmF5TW9kZSAgICAgICAgXAorICAgIHwgRmxvYXQ2NEFycmF5TW9kZSAg
ICAgICAgXAorICAgICkKKwogI2RlZmluZSBBTExfTk9OX0FSUkFZX0FSUkFZX01PREVTICAgICAg
ICAgICAgICAgICAgICAgICBcCiAgICAgKGFzQXJyYXlNb2RlcyhOb25BcnJheSkgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIFwKICAgICB8IGFzQXJyYXlNb2RlcyhOb25BcnJheVdpdGhJbnQz
MikgICAgICAgICAgICAgICAgICAgXAogICAgIHwgYXNBcnJheU1vZGVzKE5vbkFycmF5V2l0aERv
dWJsZSkgICAgICAgICAgICAgICAgICBcCiAgICAgfCBhc0FycmF5TW9kZXMoTm9uQXJyYXlXaXRo
Q29udGlndW91cykgICAgICAgICAgICAgIFwKICAgICB8IGFzQXJyYXlNb2RlcyhOb25BcnJheVdp
dGhBcnJheVN0b3JhZ2UpICAgICAgICAgICAgXAotICAgIHwgYXNBcnJheU1vZGVzKE5vbkFycmF5
V2l0aFNsb3dQdXRBcnJheVN0b3JhZ2UpKQorICAgIHwgYXNBcnJheU1vZGVzKE5vbkFycmF5V2l0
aFNsb3dQdXRBcnJheVN0b3JhZ2UpICAgICBcCisgICAgfCBBTExfVFlQRURfQVJSQVlfTU9ERVMp
CiAKICNkZWZpbmUgQUxMX0FSUkFZX0FSUkFZX01PREVTICAgICAgICAgICAgICAgICAgICAgICAg
ICAgXAogICAgIChhc0FycmF5TW9kZXMoQXJyYXlDbGFzcykgICAgICAgICAgICAgICAgICAgICAg
ICAgICBcCkBAIC02NSw2ICs4OSwyOSBAQCB0eXBlZGVmIHVuc2lnbmVkIEFycmF5TW9kZXM7CiAK
IGlubGluZSBBcnJheU1vZGVzIGFycmF5TW9kZUZyb21TdHJ1Y3R1cmUoU3RydWN0dXJlKiBzdHJ1
Y3R1cmUpCiB7CisgICAgc3dpdGNoIChzdHJ1Y3R1cmUtPmNsYXNzSW5mbygpLT50eXBlZEFycmF5
U3RvcmFnZVR5cGUpIHsKKyAgICBjYXNlIFR5cGVJbnQ4OgorICAgICAgICByZXR1cm4gSW50OEFy
cmF5TW9kZTsKKyAgICBjYXNlIFR5cGVVaW50ODoKKyAgICAgICAgcmV0dXJuIFVpbnQ4QXJyYXlN
b2RlOworICAgIGNhc2UgVHlwZVVpbnQ4Q2xhbXBlZDoKKyAgICAgICAgcmV0dXJuIFVpbnQ4Q2xh
bXBlZEFycmF5TW9kZTsKKyAgICBjYXNlIFR5cGVJbnQxNjoKKyAgICAgICAgcmV0dXJuIEludDE2
QXJyYXlNb2RlOworICAgIGNhc2UgVHlwZVVpbnQxNjoKKyAgICAgICAgcmV0dXJuIFVpbnQxNkFy
cmF5TW9kZTsKKyAgICBjYXNlIFR5cGVJbnQzMjoKKyAgICAgICAgcmV0dXJuIEludDMyQXJyYXlN
b2RlOworICAgIGNhc2UgVHlwZVVpbnQzMjoKKyAgICAgICAgcmV0dXJuIFVpbnQzMkFycmF5TW9k
ZTsKKyAgICBjYXNlIFR5cGVGbG9hdDMyOgorICAgICAgICByZXR1cm4gRmxvYXQzMkFycmF5TW9k
ZTsKKyAgICBjYXNlIFR5cGVGbG9hdDY0OgorICAgICAgICByZXR1cm4gRmxvYXQ2NEFycmF5TW9k
ZTsKKyAgICBjYXNlIFR5cGVEYXRhVmlldzoKKyAgICBjYXNlIE5vdFR5cGVkQXJyYXk6CisgICAg
ICAgIGJyZWFrOworICAgIH0KICAgICByZXR1cm4gYXNBcnJheU1vZGVzKHN0cnVjdHVyZS0+aW5k
ZXhpbmdUeXBlKCkpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR0FycmF5TW9kZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0FycmF5TW9k
ZS5jcHAKaW5kZXggYTU5OTRmYjVjZWZjYjkzODIzODg5YWI4NmEyMzhkMTI5NmQ4NjUwNi4uN2Yz
MTE0MDQ2YzU4ZDA4NjY3ZWVjOWNlMzBlYjcwMmY2MjRhMTIxOSAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBcnJheU1vZGUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHQXJyYXlNb2RlLmNwcApAQCAtOTcsNiArOTcsMjQgQEAgQXJyYXlNb2Rl
IEFycmF5TW9kZTo6ZnJvbU9ic2VydmVkKGNvbnN0IENvbmN1cnJlbnRKSVRMb2NrZXImIGxvY2tl
ciwgQXJyYXlQcm9maWwKICAgICBjYXNlIGFzQXJyYXlNb2RlcyhOb25BcnJheVdpdGhTbG93UHV0
QXJyYXlTdG9yYWdlKSB8IGFzQXJyYXlNb2RlcyhBcnJheVdpdGhTbG93UHV0QXJyYXlTdG9yYWdl
KToKICAgICBjYXNlIGFzQXJyYXlNb2RlcyhOb25BcnJheVdpdGhBcnJheVN0b3JhZ2UpIHwgYXNB
cnJheU1vZGVzKEFycmF5V2l0aEFycmF5U3RvcmFnZSkgfCBhc0FycmF5TW9kZXMoTm9uQXJyYXlX
aXRoU2xvd1B1dEFycmF5U3RvcmFnZSkgfCBhc0FycmF5TW9kZXMoQXJyYXlXaXRoU2xvd1B1dEFy
cmF5U3RvcmFnZSk6CiAgICAgICAgIHJldHVybiBBcnJheU1vZGUoQXJyYXk6OlNsb3dQdXRBcnJh
eVN0b3JhZ2UsIEFycmF5OjpQb3NzaWJseUFycmF5LCBBcnJheTo6QXNJcykud2l0aFByb2ZpbGUo
bG9ja2VyLCBwcm9maWxlLCBtYWtlU2FmZSk7CisgICAgY2FzZSBJbnQ4QXJyYXlNb2RlOgorICAg
ICAgICByZXR1cm4gQXJyYXlNb2RlKEFycmF5OjpJbnQ4QXJyYXksIG5vbkFycmF5LCBBcnJheTo6
QXNJcykud2l0aFByb2ZpbGUobG9ja2VyLCBwcm9maWxlLCBtYWtlU2FmZSk7CisgICAgY2FzZSBJ
bnQxNkFycmF5TW9kZToKKyAgICAgICAgcmV0dXJuIEFycmF5TW9kZShBcnJheTo6SW50MTZBcnJh
eSwgbm9uQXJyYXksIEFycmF5OjpBc0lzKS53aXRoUHJvZmlsZShsb2NrZXIsIHByb2ZpbGUsIG1h
a2VTYWZlKTsKKyAgICBjYXNlIEludDMyQXJyYXlNb2RlOgorICAgICAgICByZXR1cm4gQXJyYXlN
b2RlKEFycmF5OjpJbnQzMkFycmF5LCBub25BcnJheSwgQXJyYXk6OkFzSXMpLndpdGhQcm9maWxl
KGxvY2tlciwgcHJvZmlsZSwgbWFrZVNhZmUpOworICAgIGNhc2UgVWludDhBcnJheU1vZGU6Cisg
ICAgICAgIHJldHVybiBBcnJheU1vZGUoQXJyYXk6OlVpbnQ4QXJyYXksIG5vbkFycmF5LCBBcnJh
eTo6QXNJcykud2l0aFByb2ZpbGUobG9ja2VyLCBwcm9maWxlLCBtYWtlU2FmZSk7CisgICAgY2Fz
ZSBVaW50OENsYW1wZWRBcnJheU1vZGU6CisgICAgICAgIHJldHVybiBBcnJheU1vZGUoQXJyYXk6
OlVpbnQ4Q2xhbXBlZEFycmF5LCBub25BcnJheSwgQXJyYXk6OkFzSXMpLndpdGhQcm9maWxlKGxv
Y2tlciwgcHJvZmlsZSwgbWFrZVNhZmUpOworICAgIGNhc2UgVWludDE2QXJyYXlNb2RlOgorICAg
ICAgICByZXR1cm4gQXJyYXlNb2RlKEFycmF5OjpVaW50MTZBcnJheSwgbm9uQXJyYXksIEFycmF5
OjpBc0lzKS53aXRoUHJvZmlsZShsb2NrZXIsIHByb2ZpbGUsIG1ha2VTYWZlKTsKKyAgICBjYXNl
IFVpbnQzMkFycmF5TW9kZToKKyAgICAgICAgcmV0dXJuIEFycmF5TW9kZShBcnJheTo6VWludDMy
QXJyYXksIG5vbkFycmF5LCBBcnJheTo6QXNJcykud2l0aFByb2ZpbGUobG9ja2VyLCBwcm9maWxl
LCBtYWtlU2FmZSk7CisgICAgY2FzZSBGbG9hdDMyQXJyYXlNb2RlOgorICAgICAgICByZXR1cm4g
QXJyYXlNb2RlKEFycmF5OjpGbG9hdDMyQXJyYXksIG5vbkFycmF5LCBBcnJheTo6QXNJcykud2l0
aFByb2ZpbGUobG9ja2VyLCBwcm9maWxlLCBtYWtlU2FmZSk7CisgICAgY2FzZSBGbG9hdDY0QXJy
YXlNb2RlOgorICAgICAgICByZXR1cm4gQXJyYXlNb2RlKEFycmF5OjpGbG9hdDY0QXJyYXksIG5v
bkFycmF5LCBBcnJheTo6QXNJcykud2l0aFByb2ZpbGUobG9ja2VyLCBwcm9maWxlLCBtYWtlU2Fm
ZSk7CiAKICAgICBkZWZhdWx0OgogICAgICAgICBpZiAoKG9ic2VydmVkICYgYXNBcnJheU1vZGVz
KE5vbkFycmF5KSkgJiYgcHJvZmlsZS0+bWF5SW50ZXJjZXB0SW5kZXhlZEFjY2Vzc2VzKGxvY2tl
cikpCkBAIC0xODksNyArMjA3LDI1IEBAIEFycmF5TW9kZSBBcnJheU1vZGU6OnJlZmluZSgKICAg
ICAgICAgaWYgKGRvZXNDb252ZXJzaW9uKCkgJiYgKGZsYWdzICYgTm9kZUJ5dGVjb2RlVXNlc0Fz
SW50KSkKICAgICAgICAgICAgIHJldHVybiB3aXRoQ29udmVyc2lvbihBcnJheTo6UmFnZUNvbnZl
cnQpOwogICAgICAgICByZXR1cm4gKnRoaXM7Ci0gICAgICAgIAorCisgICAgY2FzZSBBcnJheTo6
SW50OEFycmF5OgorICAgIGNhc2UgQXJyYXk6OkludDE2QXJyYXk6CisgICAgY2FzZSBBcnJheTo6
SW50MzJBcnJheToKKyAgICBjYXNlIEFycmF5OjpVaW50OEFycmF5OgorICAgIGNhc2UgQXJyYXk6
OlVpbnQ4Q2xhbXBlZEFycmF5OgorICAgIGNhc2UgQXJyYXk6OlVpbnQxNkFycmF5OgorICAgIGNh
c2UgQXJyYXk6OlVpbnQzMkFycmF5OgorICAgIGNhc2UgQXJyYXk6OkZsb2F0MzJBcnJheToKKyAg
ICBjYXNlIEFycmF5OjpGbG9hdDY0QXJyYXk6CisgICAgICAgIHN3aXRjaCAobm9kZS0+b3AoKSkg
eworICAgICAgICBjYXNlIFB1dEJ5VmFsOgorICAgICAgICAgICAgaWYgKGdyYXBoLmhhc0V4aXRT
aXRlKG5vZGUtPm9yaWdpbi5zZW1hbnRpYywgT3V0T2ZCb3VuZHMpIHx8ICFpc0luQm91bmRzKCkp
CisgICAgICAgICAgICAgICAgcmV0dXJuIHdpdGhTcGVjdWxhdGlvbihBcnJheTo6T3V0T2ZCb3Vu
ZHMpOworICAgICAgICAgICAgcmV0dXJuIHdpdGhTcGVjdWxhdGlvbihBcnJheTo6SW5Cb3VuZHMp
OworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgcmV0dXJuIHdpdGhTcGVjdWxhdGlvbihB
cnJheTo6SW5Cb3VuZHMpOworICAgICAgICB9CisgICAgICAgIHJldHVybiAqdGhpczsKICAgICBj
YXNlIEFycmF5OjpVbnByb2ZpbGVkOgogICAgIGNhc2UgQXJyYXk6OlNlbGVjdFVzaW5nUHJlZGlj
dGlvbnM6IHsKICAgICAgICAgYmFzZSAmPSB+U3BlY090aGVyOwpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW5kZXhpbmdUeXBlLmggYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9JbmRleGluZ1R5cGUuaAppbmRleCBiMjhiOTYyMTg1MDI0Y2M3OTY1Zjc4
MjRkOTMwMDZiMjI3MWZmZGFhLi4zZjlmZGQxZWQ2NjJmNWQwYzM3OTI1YzUxZGVhYWE1MmVjMjJj
MmIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbmRleGluZ1R5
cGUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbmRleGluZ1R5cGUuaApA
QCAtMzgsOCArMzgsOCBAQCBuYW1lc3BhY2UgSlNDIHsKIAogICAgIHN0cnVjdCBJbmRleGluZ1R5
cGUgewogICAgICAgICB1aW50OF90IGlzQXJyYXk6MTsgICAgICAgICAgICAgICAgICAgIC8vIGJp
dCAwCi0gICAgICAgIHVpbnQ4X3Qgc2hhcGU6NDsgICAgICAgICAgICAgICAgICAgICAgLy8gYml0
IDEgLSA0Ci0gICAgICAgIHVpbnQ4X3QgbWF5SGF2ZUluZGV4ZWRBY2Nlc3NvcnM6MTsgICAgLy8g
Yml0IDUKKyAgICAgICAgdWludDhfdCBzaGFwZTo0OyAgICAgICAgICAgICAgICAgICAgICAvLyBi
aXQgMSAtIDMKKyAgICAgICAgdWludDhfdCBtYXlIYXZlSW5kZXhlZEFjY2Vzc29yczoxOyAgICAv
LyBiaXQgNAogICAgIH07CiAKICAgICBUaGUgc2hhcGUgdmFsdWVzIChlLmcuIEludDMyU2hhcGUs
IENvbnRpZ3VvdXNTaGFwZSwgZXRjKSBhcmUgYW4gZW51bWVyYXRpb24gb2YKQEAgLTUzLDIxICs1
MywyMSBAQCB0eXBlZGVmIHVpbnQ4X3QgSW5kZXhpbmdUeXBlOwogc3RhdGljIGNvbnN0IEluZGV4
aW5nVHlwZSBJc0FycmF5ICAgICAgICAgICAgICAgICAgPSAweDAxOwogCiAvLyBUaGUgc2hhcGUg
b2YgdGhlIGluZGV4ZWQgcHJvcGVydHkgc3RvcmFnZS4KLXN0YXRpYyBjb25zdCBJbmRleGluZ1R5
cGUgSW5kZXhpbmdTaGFwZU1hc2sgICAgICAgID0gMHgxRTsKK3N0YXRpYyBjb25zdCBJbmRleGlu
Z1R5cGUgSW5kZXhpbmdTaGFwZU1hc2sgICAgICAgID0gMHgwRTsKIHN0YXRpYyBjb25zdCBJbmRl
eGluZ1R5cGUgTm9JbmRleGluZ1NoYXBlICAgICAgICAgID0gMHgwMDsKIHN0YXRpYyBjb25zdCBJ
bmRleGluZ1R5cGUgVW5kZWNpZGVkU2hhcGUgICAgICAgICAgID0gMHgwMjsgLy8gT25seSB1c2Vm
dWwgZm9yIGFycmF5cy4KLXN0YXRpYyBjb25zdCBJbmRleGluZ1R5cGUgSW50MzJTaGFwZSAgICAg
ICAgICAgICAgID0gMHgxNDsKLXN0YXRpYyBjb25zdCBJbmRleGluZ1R5cGUgRG91YmxlU2hhcGUg
ICAgICAgICAgICAgID0gMHgxNjsKLXN0YXRpYyBjb25zdCBJbmRleGluZ1R5cGUgQ29udGlndW91
c1NoYXBlICAgICAgICAgID0gMHgxQTsKLXN0YXRpYyBjb25zdCBJbmRleGluZ1R5cGUgQXJyYXlT
dG9yYWdlU2hhcGUgICAgICAgID0gMHgxQzsKLXN0YXRpYyBjb25zdCBJbmRleGluZ1R5cGUgU2xv
d1B1dEFycmF5U3RvcmFnZVNoYXBlID0gMHgxRTsKK3N0YXRpYyBjb25zdCBJbmRleGluZ1R5cGUg
SW50MzJTaGFwZSAgICAgICAgICAgICAgID0gMHgwNDsKK3N0YXRpYyBjb25zdCBJbmRleGluZ1R5
cGUgRG91YmxlU2hhcGUgICAgICAgICAgICAgID0gMHgwNjsKK3N0YXRpYyBjb25zdCBJbmRleGlu
Z1R5cGUgQ29udGlndW91c1NoYXBlICAgICAgICAgID0gMHgwODsKK3N0YXRpYyBjb25zdCBJbmRl
eGluZ1R5cGUgQXJyYXlTdG9yYWdlU2hhcGUgICAgICAgID0gMHgwQTsKK3N0YXRpYyBjb25zdCBJ
bmRleGluZ1R5cGUgU2xvd1B1dEFycmF5U3RvcmFnZVNoYXBlID0gMHgwQzsKIAogc3RhdGljIGNv
bnN0IEluZGV4aW5nVHlwZSBJbmRleGluZ1NoYXBlU2hpZnQgICAgICAgPSAxOwotc3RhdGljIGNv
bnN0IEluZGV4aW5nVHlwZSBOdW1iZXJPZkluZGV4aW5nU2hhcGVzICAgPSAxNjsKK3N0YXRpYyBj
b25zdCBJbmRleGluZ1R5cGUgTnVtYmVyT2ZJbmRleGluZ1NoYXBlcyAgID0gNzsKIAogLy8gQWRk
aXRpb25hbCBmbGFncyBmb3IgdHJhY2tpbmcgdGhlIGhpc3Rvcnkgb2YgdGhlIHR5cGUuIFRoZXNl
IGFyZSB1c3VhbGx5CiAvLyBtYXNrZWQgb2ZmIHVubGVzcyB5b3UgYXNrIGZvciB0aGVtIGRpcmVj
dGx5Lgotc3RhdGljIGNvbnN0IEluZGV4aW5nVHlwZSBNYXlIYXZlSW5kZXhlZEFjY2Vzc29ycyAg
PSAweDIwOworc3RhdGljIGNvbnN0IEluZGV4aW5nVHlwZSBNYXlIYXZlSW5kZXhlZEFjY2Vzc29y
cyAgPSAweDEwOwogCiAvLyBMaXN0IG9mIGFjY2VwdGFibGUgYXJyYXkgdHlwZXMuCiBzdGF0aWMg
Y29uc3QgSW5kZXhpbmdUeXBlIE5vbkFycmF5ICAgICAgICAgICAgICAgICAgICAgICAgPSAweDA7
CkBAIC0xNjIsMTAgKzE2MiwxMCBAQCB2b2lkIGR1bXBJbmRleGluZ1R5cGUoUHJpbnRTdHJlYW0m
LCBJbmRleGluZ1R5cGUpOwogTUFLRV9QUklOVF9BREFQVE9SKEluZGV4aW5nVHlwZUR1bXAsIElu
ZGV4aW5nVHlwZSwgZHVtcEluZGV4aW5nVHlwZSk7CiAKIC8vIE1hc2sgb2YgYWxsIHBvc3NpYmxl
IHR5cGVzLgotc3RhdGljIGNvbnN0IEluZGV4aW5nVHlwZSBBbGxBcnJheVR5cGVzICAgICAgICAg
ICAgPSAzMTsKK3N0YXRpYyBjb25zdCBJbmRleGluZ1R5cGUgQWxsQXJyYXlUeXBlcyAgICAgICAg
ICAgID0gSW5kZXhpbmdTaGFwZU1hc2sgfCBJc0FycmF5OwogCiAvLyBNYXNrIG9mIGFsbCBwb3Nz
aWJsZSB0eXBlcyBpbmNsdWRpbmcgdGhlIGhpc3RvcnkuCi1zdGF0aWMgY29uc3QgSW5kZXhpbmdU
eXBlIEFsbEFycmF5VHlwZXNBbmRIaXN0b3J5ICA9IDEyNzsKK3N0YXRpYyBjb25zdCBJbmRleGlu
Z1R5cGUgQWxsQXJyYXlUeXBlc0FuZEhpc3RvcnkgID0gQWxsQXJyYXlUeXBlcyB8IE1heUhhdmVJ
bmRleGVkQWNjZXNzb3JzOwogCiB9IC8vIG5hbWVzcGFjZSBKU0MKIApkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy90eXBlZC1hcnJheS1nZXQtYnktdmFsLXBy
b2ZpbGluZy5qcyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvdHlwZWQtYXJy
YXktZ2V0LWJ5LXZhbC1wcm9maWxpbmcuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjBlYTY0MTAxMDUxYjcwNTc0
YjhjNzdhNzhiOGY0Y2IyZDE5NzA2YQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS90ZXN0cy9zdHJlc3MvdHlwZWQtYXJyYXktZ2V0LWJ5LXZhbC1wcm9maWxpbmcuanMK
QEAgLTAsMCArMSw5MSBAQAorZnVuY3Rpb24gdGVzdEFycmF5KGFycmF5VHlwZSkKK3sKKyAgICB2
YXIgdGVzdENvZGUgPQorICAgICAgICBgCisgICAgICAgIC8vIFdlIG1ha2UgdGhpcyBsb29rIGxp
a2UgYSBwb2x5bW9ycGhpYyB0eXBlcyBmb3IgaW5jb21pbmdPYmplY3QgYnV0IHRoZSBHZXRCeVZh
bCBhcmUgbmV2ZXIgYWN0dWFsbHkKKyAgICAgICAgLy8gcG9seW1vcnBoaWMuIFRoZSBib29sZWFu
IGlzVHlwZWRBcnJheSBsZXQgdXMgZGlmZmVyZW50aWF0ZSB0aGUgdHlwZXMuCisgICAgICAgIGZ1
bmN0aW9uICR7IGFycmF5VHlwZSB9QW5kT2JqZWN0U3BlY3VsYXRpb25JbkJvdW5kcyhpbmNvbWlu
Z09iamVjdCwgaXRlcmF0aW9uTGVuZ3RoLCBpc1R5cGVkQXJyYXkpIHsKKyAgICAgICAgICAgIHZh
ciBvdXRwdXQgPSAwOworICAgICAgICAgICAgb3V0cHV0ICs9IGluY29taW5nT2JqZWN0Lmxlbmd0
aDsKKworICAgICAgICAgICAgaWYgKGlzVHlwZWRBcnJheSkgeworICAgICAgICAgICAgICAgIGZv
ciAodmFyIGkgPSAwOyBpIDwgaXRlcmF0aW9uTGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgICAg
ICAgICAgb3V0cHV0ICs9IGluY29taW5nT2JqZWN0W2ldOworICAgICAgICAgICAgICAgIH0KKyAg
ICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBp
dGVyYXRpb25MZW5ndGg7ICsraSkgeworICAgICAgICAgICAgICAgICAgICBvdXRwdXQgKz0gaW5j
b21pbmdPYmplY3RbaV07CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAg
ICAgICAgcmV0dXJuIG91dHB1dDsKKyAgICAgICAgfQorICAgICAgICBub0lubGluZSgkeyBhcnJh
eVR5cGUgfUFuZE9iamVjdFNwZWN1bGF0aW9uSW5Cb3VuZHMpOworCisgICAgICAgIHZhciB0eXBl
ZEFycmF5ID0gbmV3ICR7IGFycmF5VHlwZSB9KDY0KTsKKyAgICAgICAgdmFyIHJlZ3VsYXJBcnJh
eSA9IG5ldyBBcnJheSg2NCk7CisgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgNjQ7ICsraSkg
eworICAgICAgICAgICAgdHlwZWRBcnJheVtpXSA9IGk7CisgICAgICAgICAgICByZWd1bGFyQXJy
YXlbaV0gPSBpOworICAgICAgICB9CisKKyAgICAgICAgLy8gQWNjZXNzIGluIGJvdW5kcy4KKyAg
ICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCAxZTQ7ICsraSkgeworICAgICAgICAgICAgdmFyIG91
dHB1dCA9ICR7IGFycmF5VHlwZSB9QW5kT2JqZWN0U3BlY3VsYXRpb25JbkJvdW5kcyh0eXBlZEFy
cmF5LCA2NCwgdHJ1ZSk7CisgICAgICAgICAgICBpZiAob3V0cHV0ICE9PSAzMiAqIDY1KQorICAg
ICAgICAgICAgICAgIHRocm93ICIkeyBhcnJheVR5cGUgfUFuZE9iamVjdFNwZWN1bGF0aW9uSW5C
b3VuZHModHlwZWRBcnJheSwgNjQsIHRydWUpIGZhaWxlZCwgdmFsdWUgPSAiICsgb3V0cHV0Owor
CisgICAgICAgICAgICB2YXIgb3V0cHV0ID0gJHsgYXJyYXlUeXBlIH1BbmRPYmplY3RTcGVjdWxh
dGlvbkluQm91bmRzKHJlZ3VsYXJBcnJheSwgNjQsIGZhbHNlKTsKKyAgICAgICAgICAgIGlmIChv
dXRwdXQgIT09IDMyICogNjUpCisgICAgICAgICAgICAgICAgdGhyb3cgIiR7IGFycmF5VHlwZSB9
QW5kT2JqZWN0U3BlY3VsYXRpb25JbkJvdW5kcyhyZWd1bGFyQXJyYXksIDY0LCBmYWxzZSkgZmFp
bGVkLCB2YWx1ZSA9ICIgKyBvdXRwdXQ7CisgICAgICAgIH0KKworICAgICAgICAvLyBPbmUgb3V0
IG9mIGJvdW5kcyBvbiB0b3Agb2YgdGhlIGluIGJvdW5kcyBwcm9maWxlLgorICAgICAgICB7Cisg
ICAgICAgICAgICB2YXIgb3V0cHV0ID0gJHsgYXJyYXlUeXBlIH1BbmRPYmplY3RTcGVjdWxhdGlv
bkluQm91bmRzKHR5cGVkQXJyYXksIDEyOCwgdHJ1ZSk7CisgICAgICAgICAgICBpZiAob3V0cHV0
ID09PSBvdXRwdXQpCisgICAgICAgICAgICAgICAgdGhyb3cgIiR7IGFycmF5VHlwZSB9QW5kT2Jq
ZWN0U3BlY3VsYXRpb25JbkJvdW5kcyh0eXBlZEFycmF5LCAxMjgsIHRydWUpIGZhaWxlZCwgdmFs
dWUgPSAiICsgb3V0cHV0OworCisgICAgICAgICAgICB2YXIgb3V0cHV0ID0gJHsgYXJyYXlUeXBl
IH1BbmRPYmplY3RTcGVjdWxhdGlvbkluQm91bmRzKHJlZ3VsYXJBcnJheSwgMTI4LCBmYWxzZSk7
CisgICAgICAgICAgICBpZiAob3V0cHV0ID09PSBvdXRwdXQpCisgICAgICAgICAgICAgICAgdGhy
b3cgIiR7IGFycmF5VHlwZSB9QW5kT2JqZWN0U3BlY3VsYXRpb25JbkJvdW5kcyhyZWd1bGFyQXJy
YXksIDEyOCwgZmFsc2UpIGZhaWxlZCwgdmFsdWUgPSAiICsgb3V0cHV0OworICAgICAgICB9CisK
KyAgICAgICAgLy8gU2FtZSBidXQgaGVyZSB3ZSBtYWtlIG91dC1vZi1ib3VuZHMgYSBub3JtYWwg
Y2FzZS4KKyAgICAgICAgZnVuY3Rpb24gJHsgYXJyYXlUeXBlIH1BbmRPYmplY3RTcGVjdWxhdGlv
bk91dE9mQm91bmRzKGluY29taW5nT2JqZWN0LCBpdGVyYXRpb25MZW5ndGgsIGlzVHlwZWRBcnJh
eSkgeworICAgICAgICAgICAgdmFyIG91dHB1dCA9IDA7CisgICAgICAgICAgICBvdXRwdXQgKz0g
aW5jb21pbmdPYmplY3QubGVuZ3RoOworCisgICAgICAgICAgICBpZiAoaXNUeXBlZEFycmF5KSB7
CisgICAgICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBpdGVyYXRpb25MZW5ndGg7ICsr
aSkgeworICAgICAgICAgICAgICAgICAgICBvdXRwdXQgKz0gaW5jb21pbmdPYmplY3RbaV18MDsK
KyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAg
IGZvciAodmFyIGkgPSAwOyBpIDwgaXRlcmF0aW9uTGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAg
ICAgICAgICAgb3V0cHV0ICs9IGluY29taW5nT2JqZWN0W2ldfDA7CisgICAgICAgICAgICAgICAg
fQorICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuIG91dHB1dDsKKyAgICAgICAgfQor
ICAgICAgICBub0lubGluZSgkeyBhcnJheVR5cGUgfUFuZE9iamVjdFNwZWN1bGF0aW9uT3V0T2ZC
b3VuZHMpOworCisgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgMWU0OyArK2kpIHsKKyAgICAg
ICAgICAgIHZhciBvdXRwdXQgPSAkeyBhcnJheVR5cGUgfUFuZE9iamVjdFNwZWN1bGF0aW9uT3V0
T2ZCb3VuZHModHlwZWRBcnJheSwgMTI4LCB0cnVlKTsKKyAgICAgICAgICAgIGlmIChvdXRwdXQg
IT09IDMyICogNjUpCisgICAgICAgICAgICAgICAgdGhyb3cgIiR7IGFycmF5VHlwZSB9QW5kT2Jq
ZWN0U3BlY3VsYXRpb25PdXRPZkJvdW5kcyh0eXBlZEFycmF5LCAxMjgsIHRydWUpIGZhaWxlZCwg
dmFsdWUgPSAiICsgb3V0cHV0OworCisgICAgICAgICAgICB2YXIgb3V0cHV0ID0gJHsgYXJyYXlU
eXBlIH1BbmRPYmplY3RTcGVjdWxhdGlvbk91dE9mQm91bmRzKHJlZ3VsYXJBcnJheSwgMTI4LCBm
YWxzZSk7CisgICAgICAgICAgICBpZiAob3V0cHV0ICE9PSAzMiAqIDY1KQorICAgICAgICAgICAg
ICAgIHRocm93ICIkeyBhcnJheVR5cGUgfUFuZE9iamVjdFNwZWN1bGF0aW9uT3V0T2ZCb3VuZHMo
cmVndWxhckFycmF5LCAxMjgsIGZhbHNlKSBmYWlsZWQsIHZhbHVlID0gIiArIG91dHB1dDsKKyAg
ICAgICAgfWAKKyAgICBldmFsKHRlc3RDb2RlKTsKK30KKwordGVzdEFycmF5KCJJbnQ4QXJyYXki
KTsKK3Rlc3RBcnJheSgiVWludDhBcnJheSIpOwordGVzdEFycmF5KCJVaW50OENsYW1wZWRBcnJh
eSIpOwordGVzdEFycmF5KCJJbnQxNkFycmF5Iik7Cit0ZXN0QXJyYXkoIlVpbnQxNkFycmF5Iik7
Cit0ZXN0QXJyYXkoIkludDMyQXJyYXkiKTsKK3Rlc3RBcnJheSgiVWludDMyQXJyYXkiKTsKK3Rl
c3RBcnJheSgiRmxvYXQzMkFycmF5Iik7Cit0ZXN0QXJyYXkoIkZsb2F0NjRBcnJheSIpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy90eXBlZC1hcnJheS1w
dXQtYnktdmFsLXByb2ZpbGluZy5qcyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJl
c3MvdHlwZWQtYXJyYXktcHV0LWJ5LXZhbC1wcm9maWxpbmcuanMKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOWY3MGEy
MzA1ODAzYjRlMjA0ZDFiMTcxOTMxODdjYWE2Y2U4MWUyYQotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvdHlwZWQtYXJyYXktcHV0LWJ5LXZhbC1w
cm9maWxpbmcuanMKQEAgLTAsMCArMSw5OCBAQAorZnVuY3Rpb24gdGVzdEFycmF5KGFycmF5VHlw
ZSkKK3sKKyAgICB2YXIgdGVzdENvZGUgPQorICAgICAgICBgCisgICAgICAgIGZ1bmN0aW9uIHRl
c3RPdXRPZkJvdW5kc1ZhbHVlcyhyZWd1bGFyQXJyYXksIHR5cGVkQXJyYXkpIHsKKyAgICAgICAg
ICAgIGZvciAodmFyIGkgPSAwOyBpIDwgMTY7ICsraSkgeworICAgICAgICAgICAgICAgIHZhciB0
eXBlZEFycmF5VmFsdWUgPSB0eXBlZEFycmF5W2ldCisgICAgICAgICAgICAgICAgaWYgKHR5cGVk
QXJyYXlWYWx1ZSAhPT0gaSkgeworICAgICAgICAgICAgICAgICAgICB0aHJvdyAiRmFpbGVkICR7
IGFycmF5VHlwZSB9QW5kT2JqZWN0U3BlY3VsYXRpb25JbkJvdW5kcywgdHlwZWRBcnJheVZhbHVl
ID0gIiArIHR5cGVkQXJyYXlWYWx1ZSArICIgZm9yIGkgPSAiICsgaTsKKyAgICAgICAgICAgICAg
ICB9CisgICAgICAgICAgICAgICAgdmFyIHJlZ3VsYXJBcnJheVZhbHVlID0gcmVndWxhckFycmF5
W2ldOworICAgICAgICAgICAgICAgIGlmIChyZWd1bGFyQXJyYXlWYWx1ZSAhPT0gaSkgeworICAg
ICAgICAgICAgICAgICAgICB0aHJvdyAiRmFpbGVkICR7IGFycmF5VHlwZSB9QW5kT2JqZWN0U3Bl
Y3VsYXRpb25JbkJvdW5kcywgcmVndWxhckFycmF5VmFsdWUgPSAiICsgcmVndWxhckFycmF5VmFs
dWUgKyAiIGZvciBpID0gIiArIGk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQor
ICAgICAgICAgICAgZm9yICh2YXIgaSA9IDE2OyBpIDwgMjQ7ICsraSkgeworICAgICAgICAgICAg
ICAgIHZhciB0eXBlZEFycmF5VmFsdWUgPSB0eXBlZEFycmF5W2ldCisgICAgICAgICAgICAgICAg
aWYgKHR5cGVkQXJyYXlWYWx1ZSAhPT0gdW5kZWZpbmVkKSB7CisgICAgICAgICAgICAgICAgICAg
IHRocm93ICJGYWlsZWQgJHsgYXJyYXlUeXBlIH1BbmRPYmplY3RTcGVjdWxhdGlvbkluQm91bmRz
LCB0eXBlZEFycmF5VmFsdWUgPSAiICsgdHlwZWRBcnJheVZhbHVlICsgIiBmb3IgaSA9ICIgKyBp
OworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB2YXIgcmVndWxhckFycmF5VmFs
dWUgPSByZWd1bGFyQXJyYXlbaV07CisgICAgICAgICAgICAgICAgaWYgKHJlZ3VsYXJBcnJheVZh
bHVlICE9PSBpKSB7CisgICAgICAgICAgICAgICAgICAgIHRocm93ICJGYWlsZWQgJHsgYXJyYXlU
eXBlIH1BbmRPYmplY3RTcGVjdWxhdGlvbkluQm91bmRzLCByZWd1bGFyQXJyYXlWYWx1ZSA9ICIg
KyByZWd1bGFyQXJyYXlWYWx1ZSArICIgZm9yIGkgPSAiICsgaTsKKyAgICAgICAgICAgICAgICB9
CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICAvLyBXZSBtYWtlIHRoaXMgbG9v
ayBsaWtlIGEgcG9seW1vcnBoaWMgdHlwZXMgZm9yIGluY29taW5nT2JqZWN0IGJ1dCB0aGUgR2V0
QnlWYWwgYXJlIG5ldmVyIGFjdHVhbGx5CisgICAgICAgIC8vIHBvbHltb3JwaGljLiBUaGUgYm9v
bGVhbiBpc1R5cGVkQXJyYXkgbGV0IHVzIGRpZmZlcmVudGlhdGUgdGhlIHR5cGVzLgorICAgICAg
ICBmdW5jdGlvbiAkeyBhcnJheVR5cGUgfUFuZE9iamVjdFNwZWN1bGF0aW9uSW5Cb3VuZHMoaW5j
b21pbmdPYmplY3QsIGl0ZXJhdGlvbkxlbmd0aCwgaXNUeXBlZEFycmF5KSB7CisgICAgICAgICAg
ICBpZiAoaXNUeXBlZEFycmF5KSB7CisgICAgICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkg
PCBpdGVyYXRpb25MZW5ndGg7ICsraSkgeworICAgICAgICAgICAgICAgICAgICBpbmNvbWluZ09i
amVjdFtpXSA9IGk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSBlbHNlIHsKKyAg
ICAgICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGl0ZXJhdGlvbkxlbmd0aDsgKytpKSB7
CisgICAgICAgICAgICAgICAgICAgIGluY29taW5nT2JqZWN0W2ldID0gaTsKKyAgICAgICAgICAg
ICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgbm9JbmxpbmUoJHsgYXJy
YXlUeXBlIH1BbmRPYmplY3RTcGVjdWxhdGlvbkluQm91bmRzKTsKKworICAgICAgICB2YXIgdHlw
ZWRBcnJheSA9IG5ldyAkeyBhcnJheVR5cGUgfSgxNik7CisgICAgICAgIHZhciByZWd1bGFyQXJy
YXkgPSBuZXcgQXJyYXkoMTYpOworCisgICAgICAgIC8vIEFjY2VzcyBpbiBib3VuZHMuCisgICAg
ICAgIGZvciAodmFyIGkgPSAwOyBpIDwgMWU0OyArK2kpIHsKKyAgICAgICAgICAgICR7IGFycmF5
VHlwZSB9QW5kT2JqZWN0U3BlY3VsYXRpb25JbkJvdW5kcyhyZWd1bGFyQXJyYXksIDE2LCBmYWxz
ZSk7CisgICAgICAgICAgICAkeyBhcnJheVR5cGUgfUFuZE9iamVjdFNwZWN1bGF0aW9uSW5Cb3Vu
ZHModHlwZWRBcnJheSwgMTYsIHRydWUpOworICAgICAgICB9CisgICAgICAgIGZvciAodmFyIGkg
PSAwOyBpIDwgMTY7ICsraSkgeworICAgICAgICAgICAgdmFyIHR5cGVkQXJyYXlWYWx1ZSA9IHR5
cGVkQXJyYXlbaV0KKyAgICAgICAgICAgIGlmICh0eXBlZEFycmF5VmFsdWUgIT09IGkpIHsKKyAg
ICAgICAgICAgICAgICB0aHJvdyAiRmFpbGVkICR7IGFycmF5VHlwZSB9QW5kT2JqZWN0U3BlY3Vs
YXRpb25JbkJvdW5kcywgdHlwZWRBcnJheVZhbHVlID0gIiArIHR5cGVkQXJyYXlWYWx1ZSArICIg
Zm9yIGkgPSAiICsgaTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHZhciByZWd1bGFyQXJy
YXlWYWx1ZSA9IHJlZ3VsYXJBcnJheVtpXTsKKyAgICAgICAgICAgIGlmIChyZWd1bGFyQXJyYXlW
YWx1ZSAhPT0gaSkgeworICAgICAgICAgICAgICAgIHRocm93ICJGYWlsZWQgJHsgYXJyYXlUeXBl
IH1BbmRPYmplY3RTcGVjdWxhdGlvbkluQm91bmRzLCByZWd1bGFyQXJyYXlWYWx1ZSA9ICIgKyBy
ZWd1bGFyQXJyYXlWYWx1ZSArICIgZm9yIGkgPSAiICsgaTsKKyAgICAgICAgICAgIH0KKyAgICAg
ICAgfQorCisgICAgICAgIC8vIE9uZSAib3V0IG9mIGJvdW5kcyIgb24gdG9wIG9mIHRoZSBpbiBi
b3VuZHMgcHJvZmlsZS4KKyAgICAgICAgJHsgYXJyYXlUeXBlIH1BbmRPYmplY3RTcGVjdWxhdGlv
bkluQm91bmRzKHJlZ3VsYXJBcnJheSwgMjQsIGZhbHNlKTsKKyAgICAgICAgJHsgYXJyYXlUeXBl
IH1BbmRPYmplY3RTcGVjdWxhdGlvbkluQm91bmRzKHR5cGVkQXJyYXksIDI0LCB0cnVlKTsKKyAg
ICAgICAgdGVzdE91dE9mQm91bmRzVmFsdWVzKHJlZ3VsYXJBcnJheSwgdHlwZWRBcnJheSk7CisK
KyAgICAgICAgLy8gU2FtZSBidXQgaGVyZSB3ZSBtYWtlIG91dC1vZi1ib3VuZHMgYSBub3JtYWwg
Y2FzZS4KKyAgICAgICAgZnVuY3Rpb24gJHsgYXJyYXlUeXBlIH1BbmRPYmplY3RTcGVjdWxhdGlv
bk91dE9mQm91bmRzKGluY29taW5nT2JqZWN0LCBpdGVyYXRpb25MZW5ndGgsIGlzVHlwZWRBcnJh
eSkgeworICAgICAgICAgICAgaWYgKGlzVHlwZWRBcnJheSkgeworICAgICAgICAgICAgICAgIGZv
ciAodmFyIGkgPSAwOyBpIDwgaXRlcmF0aW9uTGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgICAg
ICAgICAgaW5jb21pbmdPYmplY3RbaV0gPSBpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAg
ICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBpdGVyYXRp
b25MZW5ndGg7ICsraSkgeworICAgICAgICAgICAgICAgICAgICBpbmNvbWluZ09iamVjdFtpXSA9
IGk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAg
IG5vSW5saW5lKCR7IGFycmF5VHlwZSB9QW5kT2JqZWN0U3BlY3VsYXRpb25PdXRPZkJvdW5kcyk7
CisKKyAgICAgICAgdmFyIHR5cGVkQXJyYXkgPSBuZXcgJHsgYXJyYXlUeXBlIH0oMTYpOworICAg
ICAgICB2YXIgcmVndWxhckFycmF5ID0gbmV3IEFycmF5KDE2KTsKKyAgICAgICAgZm9yICh2YXIg
aSA9IDA7IGkgPCAxZTQ7ICsraSkgeworICAgICAgICAgICAgJHsgYXJyYXlUeXBlIH1BbmRPYmpl
Y3RTcGVjdWxhdGlvbkluQm91bmRzKHJlZ3VsYXJBcnJheSwgMjQsIGZhbHNlKTsKKyAgICAgICAg
ICAgICR7IGFycmF5VHlwZSB9QW5kT2JqZWN0U3BlY3VsYXRpb25JbkJvdW5kcyh0eXBlZEFycmF5
LCAyNCwgdHJ1ZSk7CisgICAgICAgIH1gCisgICAgZXZhbCh0ZXN0Q29kZSk7Cit9CisKK3Rlc3RB
cnJheSgiSW50OEFycmF5Iik7Cit0ZXN0QXJyYXkoIlVpbnQ4QXJyYXkiKTsKK3Rlc3RBcnJheSgi
VWludDhDbGFtcGVkQXJyYXkiKTsKK3Rlc3RBcnJheSgiSW50MTZBcnJheSIpOwordGVzdEFycmF5
KCJVaW50MTZBcnJheSIpOwordGVzdEFycmF5KCJJbnQzMkFycmF5Iik7Cit0ZXN0QXJyYXkoIlVp
bnQzMkFycmF5Iik7Cit0ZXN0QXJyYXkoIkZsb2F0MzJBcnJheSIpOwordGVzdEFycmF5KCJGbG9h
dDY0QXJyYXkiKTsK
</data>
<flag name="review"
          id="276587"
          type_id="1"
          status="+"
          setter="fpizlo"
    />
          </attachment>
      

    </bug>

</bugzilla>