<?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>149853</bug_id>
          
          <creation_ts>2015-10-06 11:38:41 -0700</creation_ts>
          <short_desc>Clean up Marked classes</short_desc>
          <delta_ts>2015-10-08 13:20:25 -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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Joseph Pecoraro">joepeck</reporter>
          <assigned_to name="Joseph Pecoraro">joepeck</assigned_to>
          <cc>benjamin</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>commit-queue</cc>
    
    <cc>fpizlo</cc>
    
    <cc>ggaren</cc>
    
    <cc>joepeck</cc>
    
    <cc>kling</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1131050</commentid>
    <comment_count>0</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2015-10-06 11:38:41 -0700</bug_when>
    <thetext>Clean up Marked classes.

Dead code, unnecessary includes, etc.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1131058</commentid>
    <comment_count>1</comment_count>
      <attachid>262531</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2015-10-06 11:44:19 -0700</bug_when>
    <thetext>Created attachment 262531
[PATCH] Proposed Fix</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1131094</commentid>
    <comment_count>2</comment_count>
      <attachid>262541</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2015-10-06 13:09:56 -0700</bug_when>
    <thetext>Created attachment 262541
[PATCH] Proposed Fix</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1131095</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-10-06 13:11:58 -0700</bug_when>
    <thetext>Attachment 262541 did not pass style-queue:


ERROR: Source/JavaScriptCore/heap/MarkedSpace.cpp:31:  Should be indented on a separate line, with the colon or comma first on that line.  [whitespace/indent] [4]
ERROR: Source/JavaScriptCore/heap/MarkedSpace.cpp:38:  Should be indented on a separate line, with the colon or comma first on that line.  [whitespace/indent] [4]
Total errors found: 2 in 10 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1131520</commentid>
    <comment_count>4</comment_count>
      <attachid>262541</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2015-10-07 20:04:38 -0700</bug_when>
    <thetext>Comment on attachment 262541
[PATCH] Proposed Fix

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

&gt; Source/JavaScriptCore/heap/MarkedBlock.h:-75
&gt; -        static const size_t atomShiftAmount = 4; // log_2(atomSize) FIXME: Change atomSize to 16.

cq- because we can also remove these unused mirrors of these shifts that I had missed in this cleanup:

llint/LowLevelInterpreter.asm
373:const AtomNumberShift = 3
374:const BitMapWordShift = 4</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1131652</commentid>
    <comment_count>5</comment_count>
      <attachid>262541</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2015-10-08 09:27:51 -0700</bug_when>
    <thetext>Comment on attachment 262541
[PATCH] Proposed Fix

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

&gt; Source/JavaScriptCore/heap/MarkedSpace.cpp:30
&gt; +struct Free : MarkedBlock::VoidFunctor {

I would have used class for this, since it has private data members.

Also, why not use functions and lambdas instead of this VoidFunctor thing?

&gt; Source/JavaScriptCore/heap/MarkedSpace.cpp:31
&gt; +    Free(MarkedSpace* space) : m_markedSpace(space) { }

I think this should take a reference, not a pointer.

&gt; Source/JavaScriptCore/heap/MarkedSpace.cpp:34
&gt;      MarkedSpace* m_markedSpace;

I think this should be a reference, not a pointer.

&gt; Source/JavaScriptCore/heap/MarkedSpace.cpp:37
&gt; +struct FreeOrShrink : MarkedBlock::VoidFunctor {

I would have used class for this, since it has private data members.

Also, why not use functions and lambdas instead of this VoidFunctor thing?

&gt; Source/JavaScriptCore/heap/MarkedSpace.cpp:38
&gt; +    FreeOrShrink(MarkedSpace* space) : m_markedSpace(space) { }

I think this should take a reference, not a pointer.

&gt; Source/JavaScriptCore/heap/MarkedSpace.cpp:41
&gt; +    MarkedSpace* m_markedSpace;

I think this should be a reference, not a pointer.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1131695</commentid>
    <comment_count>6</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2015-10-08 11:56:01 -0700</bug_when>
    <thetext>&gt; Also, why not use functions and lambdas instead of this VoidFunctor thing?

I think this is so the forEach* methods don&apos;t need multiple versions, one for a void return value (lambdas) and one where there are return values.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1131711</commentid>
    <comment_count>7</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2015-10-08 13:20:25 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/190739</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>262531</attachid>
            <date>2015-10-06 11:44:19 -0700</date>
            <delta_ts>2015-10-06 13:09:56 -0700</delta_ts>
            <desc>[PATCH] Proposed Fix</desc>
            <filename>marked-1.patch</filename>
            <type>text/plain</type>
            <size>16381</size>
            <attacher name="Joseph Pecoraro">joepeck</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IDQ1Y2YwYWEuLjUyNjM5MDMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ5IEBACisyMDE1LTEwLTA2ICBKb3NlcGggUGVjb3Jh
cm8gIDxwZWNvcmFyb0BhcHBsZS5jb20+CisKKyAgICAgICAgQ2xlYW4gdXAgTWFya2VkIGNsYXNz
ZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0OTg1
MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogaGVh
cC9IZWFwLmg6CisgICAgICAgIE1vdmUgaW5jbHVkZSBoZXJlIHdoZXJlIGl0IGlzIHJlYWxseSBu
ZWVkZWQuCisKKyAgICAgICAgKiBoZWFwL0hlYXBTdGF0aXN0aWNzLmNwcDoKKyAgICAgICAgKiBo
ZWFwL0hlYXBTdGF0aXN0aWNzLmg6CisgICAgICAgIFNpbXBsaWZ5IGluY2x1ZGVzLgorCisgICAg
ICAgICogaGVhcC9NYXJrZWRBbGxvY2F0b3IuaDoKKyAgICAgICAgQWRkIG1pc3NpbmcgY29weXJp
Z2h0IGhlYWRlci4KKworICAgICAgICAqIGhlYXAvTWFya2VkQmxvY2suY3BwOgorICAgICAgICAq
IGhlYXAvTWFya2VkQmxvY2suaDoKKyAgICAgICAgKEpTQzo6TWFya2VkQmxvY2s6Om5lZWRzU3dl
ZXBpbmcpOgorICAgICAgICBSZW1vdmUgdW51c2VkIGNvbnN0YW50cy4gQWRkIHNvbWUgc3RhdGlj
IGFzc2VydHMuIEFkZCBzb21lIGBjb25zdGAgbmVzcy4KKworICAgICAgICAqIGhlYXAvTWFya2Vk
U3BhY2UuaDoKKyAgICAgICAgKEpTQzo6TWFya2VkU3BhY2U6OmlzSXRlcmF0aW5nKToKKyAgICAg
ICAgVXBkYXRlIGNvbW1lbnRzIHRvIGJldHRlciByZWZsZWN0IGFjdHVhbCB2YWx1ZXMuCisgICAg
ICAgIFJlbW92ZSB1bmltcGxlbWVudGVkIG1ldGhvZCAobW92ZWQgdG8gSGVhcCkuCisKKyAgICAg
ICAgKiBoZWFwL01hcmtlZFNwYWNlLmNwcDoKKyAgICAgICAgKEpTQzo6RnJlZTo6RnJlZSk6Cisg
ICAgICAgIChKU0M6OkZyZWU6Om9wZXJhdG9yKCkpOgorICAgICAgICAoSlNDOjpGcmVlOjpyZXR1
cm5WYWx1ZSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkZyZWVPclNocmluazo6RnJlZU9yU2hy
aW5rKToKKyAgICAgICAgKEpTQzo6RnJlZU9yU2hyaW5rOjpvcGVyYXRvcigpKToKKyAgICAgICAg
KEpTQzo6TWFya2VkU3BhY2U6On5NYXJrZWRTcGFjZSk6CisgICAgICAgIChKU0M6Ok1hcmtlZFNw
YWNlOjpzaHJpbmspOgorICAgICAgICBSZXBsYWNlIGNvbmRpdGlvbmFsIEZ1bmN0b3IgdGhhdCB3
YXMgbm90IHVzaW5nIHJldHVybiB2YWx1ZQorICAgICAgICB3aXRoIHNpbXBsaWZpZWQgdGFyZ2V0
ZWQgVm9pZEZ1bmN0b3JzLgorCisgICAgICAgIChKU0M6OlNocmluazo6b3BlcmF0b3IoKSk6IERl
bGV0ZWQuCisgICAgICAgIFJlbW92ZSB1bnVzZWQgZnVuY3Rvci4KKworICAgICAgICAqIGhlYXAv
V2Vha0Jsb2NrLmNwcDoKKyAgICAgICAgKiBoZWFwL1dlYWtCbG9jay5oOgorICAgICAgICAqIHJ1
bnRpbWUvT3B0aW9ucy5jcHA6CisgICAgICAgIFJlbW92ZSBkZWFkIGNvZGUuCisKIDIwMTUtMTAt
MDIgIEpvc2VwaCBQZWNvcmFybyAgPHBlY29yYXJvQGFwcGxlLmNvbT4KIAogICAgICAgICBVbnJl
dmlld2VkLCByb2xsaW5nIG91dCByMTkwNTIwLCBzb21lIHRlc3RzIGFzc2VydCAvIGNyYXNoLgpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSGVhcC5oIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2hlYXAvSGVhcC5oCmluZGV4IGFjMTFjNGYuLjdiMWZkNjEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hlYXAuaAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvaGVhcC9IZWFwLmgKQEAgLTMyLDYgKzMyLDcgQEAKICNpbmNsdWRlICJIZWFwT3Bl
cmF0aW9uLmgiCiAjaW5jbHVkZSAiSklUU3R1YlJvdXRpbmVTZXQuaCIKICNpbmNsdWRlICJMaXN0
YWJsZUhhbmRsZXIuaCIKKyNpbmNsdWRlICJNYWNoaW5lU3RhY2tNYXJrZXIuaCIKICNpbmNsdWRl
ICJNYXJrZWRBbGxvY2F0b3IuaCIKICNpbmNsdWRlICJNYXJrZWRCbG9jay5oIgogI2luY2x1ZGUg
Ik1hcmtlZEJsb2NrU2V0LmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVh
cC9IZWFwU3RhdGlzdGljcy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9IZWFwU3Rh
dGlzdGljcy5jcHAKaW5kZXggNGIwZDI4NC4uMzA4MWY4OCAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2hlYXAvSGVhcFN0YXRpc3RpY3MuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9oZWFwL0hlYXBTdGF0aXN0aWNzLmNwcApAQCAtMzIsMTIgKzMyLDEzIEBACiAjaW5j
bHVkZSAiSlNPYmplY3QuaCIKICNpbmNsdWRlICJPcHRpb25zLmgiCiAjaW5jbHVkZSA8c3RkbGli
Lmg+Ci0jaWYgT1MoVU5JWCkKLSNpbmNsdWRlIDxzeXMvcmVzb3VyY2UuaD4KLSNlbmRpZgogI2lu
Y2x1ZGUgPHd0Zi9DdXJyZW50VGltZS5oPgogI2luY2x1ZGUgPHd0Zi9EYXRhTG9nLmg+Ci0jaW5j
bHVkZSA8d3RmL0RlcXVlLmg+CisjaW5jbHVkZSA8d3RmL1N0ZExpYkV4dHJhcy5oPgorCisjaWYg
T1MoVU5JWCkKKyNpbmNsdWRlIDxzeXMvcmVzb3VyY2UuaD4KKyNlbmRpZgogCiBuYW1lc3BhY2Ug
SlNDIHsKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSGVhcFN0YXRp
c3RpY3MuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hlYXBTdGF0aXN0aWNzLmgKaW5k
ZXggZGYzNmVjYi4uY2EwZjQzYiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2hl
YXAvSGVhcFN0YXRpc3RpY3MuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9IZWFw
U3RhdGlzdGljcy5oCkBAIC0yNyw3ICsyNyw3IEBACiAjZGVmaW5lIEhlYXBTdGF0aXN0aWNzX2gK
IAogI2luY2x1ZGUgIkpTRXhwb3J0TWFjcm9zLmgiCi0jaW5jbHVkZSA8d3RmL0RlcXVlLmg+Cisj
aW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgogCiBuYW1lc3BhY2UgSlNDIHsKIApAQCAtNDMsMTAgKzQz
LDYgQEAgcHVibGljOgogCiAgICAgc3RhdGljIHZvaWQgc2hvd09iamVjdFN0YXRpc3RpY3MoSGVh
cCopOwogCi0gICAgc3RhdGljIGNvbnN0IHNpemVfdCBLQiA9IDEwMjQ7Ci0gICAgc3RhdGljIGNv
bnN0IHNpemVfdCBNQiA9IDEwMjQgKiBLQjsKLSAgICBzdGF0aWMgY29uc3Qgc2l6ZV90IEdCID0g
MTAyNCAqIE1COwotCiBwcml2YXRlOgogICAgIHN0YXRpYyB2b2lkIGxvZ1N0YXRpc3RpY3MoKTsK
ICAgICBzdGF0aWMgVmVjdG9yPGRvdWJsZT4qIHNfcGF1c2VUaW1lU3RhcnRzOwpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvTWFya2VkQWxsb2NhdG9yLmggYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaGVhcC9NYXJrZWRBbGxvY2F0b3IuaAppbmRleCAxNjFhZjQ4Li4yNjE1
MDAwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9NYXJrZWRBbGxvY2F0
b3IuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9NYXJrZWRBbGxvY2F0b3IuaApA
QCAtMSwzICsxLDI4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyLCAyMDEzIEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisg
KiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NV
UkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuIAorICovCisKICNpZm5kZWYgTWFya2VkQWxsb2NhdG9yX2gKICNkZWZpbmUgTWFya2VkQWxs
b2NhdG9yX2gKIApAQCAtMTAsMTAgKzM1LDYgQEAgY2xhc3MgSGVhcDsKIGNsYXNzIE1hcmtlZFNw
YWNlOwogY2xhc3MgTExJbnRPZmZzZXRzRXh0cmFjdG9yOwogCi1uYW1lc3BhY2UgREZHIHsKLWNs
YXNzIFNwZWN1bGF0aXZlSklUOwotfQotCiBjbGFzcyBNYXJrZWRBbGxvY2F0b3IgewogICAgIGZy
aWVuZCBjbGFzcyBMTEludE9mZnNldHNFeHRyYWN0b3I7CiAKQEAgLTE0NSw0ICsxNjYsNCBAQCB0
ZW1wbGF0ZSA8dHlwZW5hbWUgRnVuY3Rvcj4gaW5saW5lIHZvaWQgTWFya2VkQWxsb2NhdG9yOjpm
b3JFYWNoQmxvY2soRnVuY3RvciYgZgogCiB9IC8vIG5hbWVzcGFjZSBKU0MKIAotI2VuZGlmCisj
ZW5kaWYgLy8gTWFya2VkQWxsb2NhdG9yX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9oZWFwL01hcmtlZEJsb2NrLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL01h
cmtlZEJsb2NrLmNwcAppbmRleCAwNDM0NzkyLi45MmM0YWU5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaGVhcC9NYXJrZWRCbG9jay5jcHAKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2hlYXAvTWFya2VkQmxvY2suY3BwCkBAIC0yNiw3ICsyNiw2IEBACiAjaW5jbHVkZSAi
Y29uZmlnLmgiCiAjaW5jbHVkZSAiTWFya2VkQmxvY2suaCIKIAotI2luY2x1ZGUgIkluY3JlbWVu
dGFsU3dlZXBlci5oIgogI2luY2x1ZGUgIkpTQ2VsbC5oIgogI2luY2x1ZGUgIkpTRGVzdHJ1Y3Rp
YmxlT2JqZWN0LmgiCiAjaW5jbHVkZSAiSlNDSW5saW5lcy5oIgpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2hlYXAvTWFya2VkQmxvY2suaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9oZWFwL01hcmtlZEJsb2NrLmgKaW5kZXggNzI3MTljYi4uYjU4MzNjMiAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvTWFya2VkQmxvY2suaAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvaGVhcC9NYXJrZWRCbG9jay5oCkBAIC0zMCw3ICszMCw2IEBACiAjaW5jbHVk
ZSA8d3RmL0RvdWJseUxpbmtlZExpc3QuaD4KICNpbmNsdWRlIDx3dGYvSGFzaEZ1bmN0aW9ucy5o
PgogI2luY2x1ZGUgPHd0Zi9TdGRMaWJFeHRyYXMuaD4KLSNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+
CiAKIC8vIFNldCB0byBsb2cgc3RhdGUgdHJhbnNpdGlvbnMgb2YgYmxvY2tzLgogI2RlZmluZSBI
RUFQX0xPR19CTE9DS19TVEFURV9UUkFOU0lUSU9OUyAwCkBAIC01NCw4ICs1Myw2IEBAIG5hbWVz
cGFjZSBKU0MgewogCiAgICAgdHlwZWRlZiB1aW50cHRyX3QgQml0czsKIAotICAgIHN0YXRpYyBj
b25zdCBzaXplX3QgTUIgPSAxMDI0ICogMTAyNDsKLSAgICAKICAgICBib29sIGlzWmFwcGVkKGNv
bnN0IEpTQ2VsbCopOwogICAgIAogICAgIC8vIEEgbWFya2VkIGJsb2NrIGlzIGEgcGFnZS1hbGln
bmVkIGNvbnRhaW5lciBmb3IgaGVhcC1hbGxvY2F0ZWQgb2JqZWN0cy4KQEAgLTcyLDE0ICs2OSwx
MyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgZnJpZW5kIHN0cnVjdCBWZXJpZnlNYXJrZWRP
clJldGlyZWQ7CiAgICAgcHVibGljOgogICAgICAgICBzdGF0aWMgY29uc3Qgc2l6ZV90IGF0b21T
aXplID0gMTY7IC8vIGJ5dGVzCi0gICAgICAgIHN0YXRpYyBjb25zdCBzaXplX3QgYXRvbVNoaWZ0
QW1vdW50ID0gNDsgLy8gbG9nXzIoYXRvbVNpemUpIEZJWE1FOiBDaGFuZ2UgYXRvbVNpemUgdG8g
MTYuCiAgICAgICAgIHN0YXRpYyBjb25zdCBzaXplX3QgYmxvY2tTaXplID0gMTYgKiBLQjsKICAg
ICAgICAgc3RhdGljIGNvbnN0IHNpemVfdCBibG9ja01hc2sgPSB+KGJsb2NrU2l6ZSAtIDEpOyAv
LyBibG9ja1NpemUgbXVzdCBiZSBhIHBvd2VyIG9mIHR3by4KIAogICAgICAgICBzdGF0aWMgY29u
c3Qgc2l6ZV90IGF0b21zUGVyQmxvY2sgPSBibG9ja1NpemUgLyBhdG9tU2l6ZTsKLSAgICAgICAg
c3RhdGljIGNvbnN0IHNpemVfdCBhdG9tTWFzayA9IGF0b21zUGVyQmxvY2sgLSAxOwogCi0gICAg
ICAgIHN0YXRpYyBjb25zdCBzaXplX3QgbWFya0J5dGVTaGlmdEFtb3VudCA9IDM7IC8vIGxvZ18y
KHdvcmQgc2l6ZSBmb3IgbV9tYXJrcykgRklYTUU6IENoYW5nZSB3b3JkIHNpemUgZm9yIG1fbWFy
a3MgdG8gdWludDhfdC4KKyAgICAgICAgc3RhdGljX2Fzc2VydCghKE1hcmtlZEJsb2NrOjphdG9t
U2l6ZSAmIChNYXJrZWRCbG9jazo6YXRvbVNpemUgLSAxKSksICJNYXJrZWRCbG9jazo6YXRvbVNp
emUgbXVzdCBiZSBhIHBvd2VyIG9mIHR3by4iKTsKKyAgICAgICAgc3RhdGljX2Fzc2VydCghKE1h
cmtlZEJsb2NrOjpibG9ja1NpemUgJiAoTWFya2VkQmxvY2s6OmJsb2NrU2l6ZSAtIDEpKSwgIk1h
cmtlZEJsb2NrOjpibG9ja1NpemUgbXVzdCBiZSBhIHBvd2VyIG9mIHR3by4iKTsKIAogICAgICAg
ICBzdHJ1Y3QgRnJlZUNlbGwgewogICAgICAgICAgICAgRnJlZUNlbGwqIG5leHQ7CkBAIC0xNjgs
NyArMTY0LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIHZvaWQgY2xlYXJOZXdseUFsbG9j
YXRlZChjb25zdCB2b2lkKik7CiAKICAgICAgICAgYm9vbCBpc0FsbG9jYXRlZCgpIGNvbnN0Owot
ICAgICAgICBib29sIG5lZWRzU3dlZXBpbmcoKTsKKyAgICAgICAgYm9vbCBuZWVkc1N3ZWVwaW5n
KCkgY29uc3Q7CiAgICAgICAgIHZvaWQgZGlkUmV0aXJlQmxvY2soY29uc3QgRnJlZUxpc3QmKTsK
ICAgICAgICAgdm9pZCB3aWxsUmVtb3ZlQmxvY2soKTsKIApAQCAtMTc3LDcgKzE3Myw3IEBAIG5h
bWVzcGFjZSBKU0MgewogICAgICAgICB0ZW1wbGF0ZSA8dHlwZW5hbWUgRnVuY3Rvcj4gSXRlcmF0
aW9uU3RhdHVzIGZvckVhY2hEZWFkQ2VsbChGdW5jdG9yJik7CiAKICAgICBwcml2YXRlOgotICAg
ICAgICBzdGF0aWMgY29uc3Qgc2l6ZV90IGF0b21BbGlnbm1lbnRNYXNrID0gYXRvbVNpemUgLSAx
OyAvLyBhdG9tU2l6ZSBtdXN0IGJlIGEgcG93ZXIgb2YgdHdvLgorICAgICAgICBzdGF0aWMgY29u
c3Qgc2l6ZV90IGF0b21BbGlnbm1lbnRNYXNrID0gYXRvbVNpemUgLSAxOwogCiAgICAgICAgIGVu
dW0gQmxvY2tTdGF0ZSB7IE5ldywgRnJlZUxpc3RlZCwgQWxsb2NhdGVkLCBNYXJrZWQsIFJldGly
ZWQgfTsKICAgICAgICAgdGVtcGxhdGU8Ym9vbCBjYWxsRGVzdHJ1Y3RvcnM+IEZyZWVMaXN0IHN3
ZWVwSGVscGVyKFN3ZWVwTW9kZSA9IFN3ZWVwT25seSk7CkBAIC00NDIsNyArNDM4LDcgQEAgbmFt
ZXNwYWNlIEpTQyB7CiAgICAgICAgIHJldHVybiBJdGVyYXRpb25TdGF0dXM6OkNvbnRpbnVlOwog
ICAgIH0KIAotICAgIGlubGluZSBib29sIE1hcmtlZEJsb2NrOjpuZWVkc1N3ZWVwaW5nKCkKKyAg
ICBpbmxpbmUgYm9vbCBNYXJrZWRCbG9jazo6bmVlZHNTd2VlcGluZygpIGNvbnN0CiAgICAgewog
ICAgICAgICByZXR1cm4gbV9zdGF0ZSA9PSBNYXJrZWQ7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvTWFya2VkU3BhY2UuY3BwIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2hlYXAvTWFya2VkU3BhY2UuY3BwCmluZGV4IDUyYTM3MWMuLmFmZTA0MWEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL01hcmtlZFNwYWNlLmNwcAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9NYXJrZWRTcGFjZS5jcHAKQEAgLTIyLDQ5ICsyMiwy
NCBAQAogI2luY2x1ZGUgIk1hcmtlZFNwYWNlLmgiCiAKICNpbmNsdWRlICJJbmNyZW1lbnRhbFN3
ZWVwZXIuaCIKLSNpbmNsdWRlICJKU0dsb2JhbE9iamVjdC5oIgotI2luY2x1ZGUgIkpTTG9jay5o
IgogI2luY2x1ZGUgIkpTT2JqZWN0LmgiCiAjaW5jbHVkZSAiSlNDSW5saW5lcy5oIgogCiBuYW1l
c3BhY2UgSlNDIHsKIAotY2xhc3MgU3RydWN0dXJlOwotCi1jbGFzcyBGcmVlIHsKLXB1YmxpYzoK
LSAgICB0eXBlZGVmIE1hcmtlZEJsb2NrKiBSZXR1cm5UeXBlOwotCi0gICAgZW51bSBGcmVlTW9k
ZSB7IEZyZWVPclNocmluaywgRnJlZUFsbCB9OwotCi0gICAgRnJlZShGcmVlTW9kZSwgTWFya2Vk
U3BhY2UqKTsKLSAgICB2b2lkIG9wZXJhdG9yKCkoTWFya2VkQmxvY2sqKTsKLSAgICBSZXR1cm5U
eXBlIHJldHVyblZhbHVlKCk7Ci0gICAgCitzdHJ1Y3QgRnJlZSA6IE1hcmtlZEJsb2NrOjpWb2lk
RnVuY3RvciB7CisgICAgRnJlZShNYXJrZWRTcGFjZSogc3BhY2UpIDogbV9tYXJrZWRTcGFjZShz
cGFjZSkgeyB9CisgICAgdm9pZCBvcGVyYXRvcigpKE1hcmtlZEJsb2NrKiBibG9jaykgeyBtX21h
cmtlZFNwYWNlLT5mcmVlQmxvY2soYmxvY2spOyB9CiBwcml2YXRlOgotICAgIEZyZWVNb2RlIG1f
ZnJlZU1vZGU7CiAgICAgTWFya2VkU3BhY2UqIG1fbWFya2VkU3BhY2U7Ci0gICAgRG91Ymx5TGlu
a2VkTGlzdDxNYXJrZWRCbG9jaz4gbV9ibG9ja3M7CiB9OwogCi1pbmxpbmUgRnJlZTo6RnJlZShG
cmVlTW9kZSBmcmVlTW9kZSwgTWFya2VkU3BhY2UqIG5ld1NwYWNlKQotICAgIDogbV9mcmVlTW9k
ZShmcmVlTW9kZSkKLSAgICAsIG1fbWFya2VkU3BhY2UobmV3U3BhY2UpCi17Ci19Ci0KLWlubGlu
ZSB2b2lkIEZyZWU6Om9wZXJhdG9yKCkoTWFya2VkQmxvY2sqIGJsb2NrKQotewotICAgIGlmICht
X2ZyZWVNb2RlID09IEZyZWVPclNocmluaykKLSAgICAgICAgbV9tYXJrZWRTcGFjZS0+ZnJlZU9y
U2hyaW5rQmxvY2soYmxvY2spOwotICAgIGVsc2UKLSAgICAgICAgbV9tYXJrZWRTcGFjZS0+ZnJl
ZUJsb2NrKGJsb2NrKTsKLX0KLQotaW5saW5lIEZyZWU6OlJldHVyblR5cGUgRnJlZTo6cmV0dXJu
VmFsdWUoKQotewotICAgIHJldHVybiBtX2Jsb2Nrcy5oZWFkKCk7Ci19CitzdHJ1Y3QgRnJlZU9y
U2hyaW5rIDogTWFya2VkQmxvY2s6OlZvaWRGdW5jdG9yIHsKKyAgICBGcmVlT3JTaHJpbmsoTWFy
a2VkU3BhY2UqIHNwYWNlKSA6IG1fbWFya2VkU3BhY2Uoc3BhY2UpIHsgfQorICAgIHZvaWQgb3Bl
cmF0b3IoKShNYXJrZWRCbG9jayogYmxvY2spIHsgbV9tYXJrZWRTcGFjZS0+ZnJlZU9yU2hyaW5r
QmxvY2soYmxvY2spOyB9Citwcml2YXRlOgorICAgIE1hcmtlZFNwYWNlKiBtX21hcmtlZFNwYWNl
OworfTsKIAogc3RydWN0IFZpc2l0V2Vha1NldCA6IE1hcmtlZEJsb2NrOjpWb2lkRnVuY3RvciB7
CiAgICAgVmlzaXRXZWFrU2V0KEhlYXBSb290VmlzaXRvciYgaGVhcFJvb3RWaXNpdG9yKSA6IG1f
aGVhcFJvb3RWaXNpdG9yKGhlYXBSb290VmlzaXRvcikgeyB9CkBAIC05OCw3ICs3Myw3IEBAIE1h
cmtlZFNwYWNlOjpNYXJrZWRTcGFjZShIZWFwKiBoZWFwKQogCiBNYXJrZWRTcGFjZTo6fk1hcmtl
ZFNwYWNlKCkKIHsKLSAgICBGcmVlIGZyZWUoRnJlZTo6RnJlZUFsbCwgdGhpcyk7CisgICAgRnJl
ZSBmcmVlKHRoaXMpOwogICAgIGZvckVhY2hCbG9jayhmcmVlKTsKICAgICBBU1NFUlQoIW1fYmxv
Y2tzLnNldCgpLnNpemUoKSk7CiB9CkBAIC0yNDcsMTMgKzIyMiw5IEBAIHZvaWQgTWFya2VkU3Bh
Y2U6OmZyZWVPclNocmlua0Jsb2NrKE1hcmtlZEJsb2NrKiBibG9jaykKICAgICBmcmVlQmxvY2so
YmxvY2spOwogfQogCi1zdHJ1Y3QgU2hyaW5rIDogTWFya2VkQmxvY2s6OlZvaWRGdW5jdG9yIHsK
LSAgICB2b2lkIG9wZXJhdG9yKCkoTWFya2VkQmxvY2sqIGJsb2NrKSB7IGJsb2NrLT5zaHJpbmso
KTsgfQotfTsKLQogdm9pZCBNYXJrZWRTcGFjZTo6c2hyaW5rKCkKIHsKLSAgICBGcmVlIGZyZWVP
clNocmluayhGcmVlOjpGcmVlT3JTaHJpbmssIHRoaXMpOworICAgIEZyZWVPclNocmluayBmcmVl
T3JTaHJpbmsodGhpcyk7CiAgICAgZm9yRWFjaEJsb2NrKGZyZWVPclNocmluayk7CiB9CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL01hcmtlZFNwYWNlLmggYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaGVhcC9NYXJrZWRTcGFjZS5oCmluZGV4IGFhYWFiNjUuLmRmZDIy
NDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL01hcmtlZFNwYWNlLmgK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvTWFya2VkU3BhY2UuaApAQCAtMjIsMjYg
KzIyLDE5IEBACiAjaWZuZGVmIE1hcmtlZFNwYWNlX2gKICNkZWZpbmUgTWFya2VkU3BhY2VfaAog
Ci0jaW5jbHVkZSAiTWFjaGluZVN0YWNrTWFya2VyLmgiCiAjaW5jbHVkZSAiTWFya2VkQWxsb2Nh
dG9yLmgiCiAjaW5jbHVkZSAiTWFya2VkQmxvY2suaCIKICNpbmNsdWRlICJNYXJrZWRCbG9ja1Nl
dC5oIgogI2luY2x1ZGUgPGFycmF5PgotI2luY2x1ZGUgPHd0Zi9CaXRtYXAuaD4KLSNpbmNsdWRl
IDx3dGYvRG91Ymx5TGlua2VkTGlzdC5oPgogI2luY2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+CiAjaW5j
bHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+Ci0jaW5jbHVkZSA8d3RmL1JldGFpblB0ci5oPgogI2lu
Y2x1ZGUgPHd0Zi9WZWN0b3IuaD4KIAogbmFtZXNwYWNlIEpTQyB7CiAKIGNsYXNzIEhlYXA7CiBj
bGFzcyBIZWFwSXRlcmF0aW9uU2NvcGU7Ci1jbGFzcyBKU0NlbGw7CiBjbGFzcyBMTEludE9mZnNl
dHNFeHRyYWN0b3I7Ci1jbGFzcyBXZWFrR0NIYW5kbGU7Ci1jbGFzcyBTbG90VmlzaXRvcjsKIAog
c3RydWN0IENsZWFyTWFya3MgOiBNYXJrZWRCbG9jazo6Vm9pZEZ1bmN0b3IgewogICAgIHZvaWQg
b3BlcmF0b3IoKShNYXJrZWRCbG9jayogYmxvY2spCkBAIC03MywxMiArNjYsMTIgQEAgc3RydWN0
IFNpemUgOiBNYXJrZWRCbG9jazo6Q291bnRGdW5jdG9yIHsKIGNsYXNzIE1hcmtlZFNwYWNlIHsK
ICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShNYXJrZWRTcGFjZSk7CiBwdWJsaWM6Ci0gICAgLy8g
WyAzMi4uLiAxMjggXQorICAgIC8vIFsgMTYgLi4uIDEyOCBdCiAgICAgc3RhdGljIGNvbnN0IHNp
emVfdCBwcmVjaXNlU3RlcCA9IE1hcmtlZEJsb2NrOjphdG9tU2l6ZTsKICAgICBzdGF0aWMgY29u
c3Qgc2l6ZV90IHByZWNpc2VDdXRvZmYgPSAxMjg7CiAgICAgc3RhdGljIGNvbnN0IHNpemVfdCBw
cmVjaXNlQ291bnQgPSBwcmVjaXNlQ3V0b2ZmIC8gcHJlY2lzZVN0ZXA7CiAKLSAgICAvLyBbIDEw
MjQuLi4gYmxvY2tTaXplIF0KKyAgICAvLyBbIDI1NiAuLi4gYmxvY2tTaXplLzIgXQogICAgIHN0
YXRpYyBjb25zdCBzaXplX3QgaW1wcmVjaXNlU3RlcCA9IDIgKiBwcmVjaXNlQ3V0b2ZmOwogICAg
IHN0YXRpYyBjb25zdCBzaXplX3QgaW1wcmVjaXNlQ3V0b2ZmID0gTWFya2VkQmxvY2s6OmJsb2Nr
U2l6ZSAvIDI7CiAgICAgc3RhdGljIGNvbnN0IHNpemVfdCBpbXByZWNpc2VDb3VudCA9IGltcHJl
Y2lzZUN1dG9mZiAvIGltcHJlY2lzZVN0ZXA7CkBAIC0xMDksMjEgKzEwMiwyMSBAQCBwdWJsaWM6
CiAgICAgTWFya2VkQmxvY2tTZXQmIGJsb2NrcygpIHsgcmV0dXJuIG1fYmxvY2tzOyB9CiAKICAg
ICB2b2lkIHdpbGxTdGFydEl0ZXJhdGluZygpOwotICAgIGJvb2wgaXNJdGVyYXRpbmcoKSB7IHJl
dHVybiBtX2lzSXRlcmF0aW5nOyB9CisgICAgYm9vbCBpc0l0ZXJhdGluZygpIGNvbnN0IHsgcmV0
dXJuIG1faXNJdGVyYXRpbmc7IH0KICAgICB2b2lkIGRpZEZpbmlzaEl0ZXJhdGluZygpOwogCiAg
ICAgdm9pZCBzdG9wQWxsb2NhdGluZygpOwogICAgIHZvaWQgcmVzdW1lQWxsb2NhdGluZygpOyAv
LyBJZiB3ZSBqdXN0IHN0b3BwZWQgYWxsb2NhdGlvbiBidXQgd2UgZGlkbid0IGRvIGEgY29sbGVj
dGlvbiwgd2UgbmVlZCB0byByZXN1bWUgYWxsb2NhdGlvbi4KIAogICAgIHR5cGVkZWYgSGFzaFNl
dDxNYXJrZWRCbG9jayo+OjppdGVyYXRvciBCbG9ja0l0ZXJhdG9yOwotICAgIAorCiAgICAgdGVt
cGxhdGU8dHlwZW5hbWUgRnVuY3Rvcj4gdHlwZW5hbWUgRnVuY3Rvcjo6UmV0dXJuVHlwZSBmb3JF
YWNoTGl2ZUNlbGwoSGVhcEl0ZXJhdGlvblNjb3BlJiwgRnVuY3RvciYpOwogICAgIHRlbXBsYXRl
PHR5cGVuYW1lIEZ1bmN0b3I+IHR5cGVuYW1lIEZ1bmN0b3I6OlJldHVyblR5cGUgZm9yRWFjaExp
dmVDZWxsKEhlYXBJdGVyYXRpb25TY29wZSYpOwogICAgIHRlbXBsYXRlPHR5cGVuYW1lIEZ1bmN0
b3I+IHR5cGVuYW1lIEZ1bmN0b3I6OlJldHVyblR5cGUgZm9yRWFjaERlYWRDZWxsKEhlYXBJdGVy
YXRpb25TY29wZSYsIEZ1bmN0b3ImKTsKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBGdW5jdG9yPiB0
eXBlbmFtZSBGdW5jdG9yOjpSZXR1cm5UeXBlIGZvckVhY2hEZWFkQ2VsbChIZWFwSXRlcmF0aW9u
U2NvcGUmKTsKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBGdW5jdG9yPiB0eXBlbmFtZSBGdW5jdG9y
OjpSZXR1cm5UeXBlIGZvckVhY2hCbG9jayhGdW5jdG9yJik7CiAgICAgdGVtcGxhdGU8dHlwZW5h
bWUgRnVuY3Rvcj4gdHlwZW5hbWUgRnVuY3Rvcjo6UmV0dXJuVHlwZSBmb3JFYWNoQmxvY2soKTsK
LSAgICAKKwogICAgIHZvaWQgc2hyaW5rKCk7CiAgICAgdm9pZCBmcmVlQmxvY2soTWFya2VkQmxv
Y2sqKTsKICAgICB2b2lkIGZyZWVPclNocmlua0Jsb2NrKE1hcmtlZEJsb2NrKik7CkBAIC0xNDIs
MTAgKzEzNSw2IEBAIHB1YmxpYzoKIAogICAgIGJvb2wgaXNQYWdlZE91dChkb3VibGUgZGVhZGxp
bmUpOwogCi0jaWYgVVNFKENGKQotICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IHZvaWQgcmVsZWFz
ZVNvb24oUmV0YWluUHRyPFQ+JiYpOwotI2VuZGlmCi0KICAgICBjb25zdCBWZWN0b3I8TWFya2Vk
QmxvY2sqPiYgYmxvY2tzV2l0aE5ld09iamVjdHMoKSBjb25zdCB7IHJldHVybiBtX2Jsb2Nrc1dp
dGhOZXdPYmplY3RzOyB9CiAKIHByaXZhdGU6CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvaGVhcC9XZWFrQmxvY2suY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvV2Vh
a0Jsb2NrLmNwcAppbmRleCA3YzdkODZjLi42M2Y2NTg1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvaGVhcC9XZWFrQmxvY2suY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9oZWFwL1dlYWtCbG9jay5jcHAKQEAgLTI4LDkgKzI4LDkgQEAKIAogI2luY2x1ZGUgIkhlYXAu
aCIKICNpbmNsdWRlICJIZWFwUm9vdFZpc2l0b3IuaCIKLSNpbmNsdWRlICJKU09iamVjdC5oIgog
I2luY2x1ZGUgIkpTQ0lubGluZXMuaCIKLSNpbmNsdWRlICJTdHJ1Y3R1cmUuaCIKKyNpbmNsdWRl
ICJKU09iamVjdC5oIgorI2luY2x1ZGUgIldlYWtIYW5kbGVPd25lci5oIgogCiBuYW1lc3BhY2Ug
SlNDIHsKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvV2Vha0Jsb2Nr
LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9XZWFrQmxvY2suaAppbmRleCBiODI5ZTlk
Li45ZTE5NzgzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9XZWFrQmxv
Y2suaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9XZWFrQmxvY2suaApAQCAtMjYs
OCArMjYsNiBAQAogI2lmbmRlZiBXZWFrQmxvY2tfaAogI2RlZmluZSBXZWFrQmxvY2tfaAogCi0j
aW5jbHVkZSA8d3RmL0RvdWJseUxpbmtlZExpc3QuaD4KLSNpbmNsdWRlICJXZWFrSGFuZGxlT3du
ZXIuaCIKICNpbmNsdWRlICJXZWFrSW1wbC5oIgogI2luY2x1ZGUgPHd0Zi9Eb3VibHlMaW5rZWRM
aXN0Lmg+CiAjaW5jbHVkZSA8d3RmL1N0ZExpYkV4dHJhcy5oPgpAQCAtMzUsOSArMzMsNyBAQAog
bmFtZXNwYWNlIEpTQyB7CiAKIGNsYXNzIEhlYXBSb290VmlzaXRvcjsKLWNsYXNzIEpTVmFsdWU7
CiBjbGFzcyBNYXJrZWRCbG9jazsKLWNsYXNzIFdlYWtIYW5kbGVPd25lcjsKIAogY2xhc3MgV2Vh
a0Jsb2NrIDogcHVibGljIERvdWJseUxpbmtlZExpc3ROb2RlPFdlYWtCbG9jaz4gewogcHVibGlj
OgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT3B0aW9ucy5jcHAg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PcHRpb25zLmNwcAppbmRleCBlZmFkZjQ5
Li5iMzM4NThmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PcHRp
b25zLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PcHRpb25zLmNwcApA
QCAtMjYsNyArMjYsNiBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIk9wdGlvbnMu
aCIKIAotI2luY2x1ZGUgIkhlYXBTdGF0aXN0aWNzLmgiCiAjaW5jbHVkZSA8YWxnb3JpdGhtPgog
I2luY2x1ZGUgPGxpbWl0cz4KICNpbmNsdWRlIDxtYXRoLmg+CkBAIC0zNiwxNSArMzUsMTAgQEAK
ICNpbmNsdWRlIDx3dGYvQVNDSUlDVHlwZS5oPgogI2luY2x1ZGUgPHd0Zi9EYXRhTG9nLmg+CiAj
aW5jbHVkZSA8d3RmL051bWJlck9mQ29yZXMuaD4KLSNpbmNsdWRlIDx3dGYvUGFnZUJsb2NrLmg+
CiAjaW5jbHVkZSA8d3RmL1N0ZExpYkV4dHJhcy5oPgogI2luY2x1ZGUgPHd0Zi9TdHJpbmdFeHRy
YXMuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdCdWlsZGVyLmg+CiAKLSNpZiBPUyhEQVJX
SU4pCi0jaW5jbHVkZSA8c3lzL3N5c2N0bC5oPgotI2VuZGlmCi0KICNpZiBPUyhXSU5ET1dTKQog
I2luY2x1ZGUgIk1hY3JvQXNzZW1ibGVyWDg2LmgiCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XVEYvQ2hhbmdlTG9nIGIvU291cmNlL1dURi9DaGFuZ2VMb2cKaW5kZXggZjIxZTNlYy4uOGNk
YjNmMSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dURi9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAxNS0xMC0wNiAgSm9zZXBoIFBlY29yYXJvICA8
cGVjb3Jhcm9AYXBwbGUuY29tPgorCisgICAgICAgIENsZWFuIHVwIE1hcmtlZCBjbGFzc2VzCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDk4NTMKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHd0Zi9QYWdl
QmxvY2suaDoKKyAgICAgICAgUmVtb3ZlIGR1cGxpY2F0ZSB1c2luZyBzdGF0ZW1lbnQuCisKIDIw
MTUtMTAtMDEgIEJyZW50IEZ1bGdoYW0gIDxiZnVsZ2hhbUBhcHBsZS5jb20+CiAKICAgICAgICAg
W1dpbl0gVW5yZXZpZXdlZCBDTWFrZSBidWlsZCBmaXhlcy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
VEYvd3RmL1BhZ2VCbG9jay5oIGIvU291cmNlL1dURi93dGYvUGFnZUJsb2NrLmgKaW5kZXggNTZl
NTU3MC4uMzcyYzhiNiAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvUGFnZUJsb2NrLmgKKysr
IGIvU291cmNlL1dURi93dGYvUGFnZUJsb2NrLmgKQEAgLTgyLDcgKzgyLDYgQEAgaW5saW5lIFBh
Z2VCbG9jazo6UGFnZUJsb2NrKHZvaWQqIGJhc2UsIHNpemVfdCBzaXplLCBib29sIGhhc0d1YXJk
UGFnZXMpCiAKIHVzaW5nIFdURjo6cGFnZVNpemU7CiB1c2luZyBXVEY6OmlzUGFnZUFsaWduZWQ7
Ci11c2luZyBXVEY6OmlzUGFnZUFsaWduZWQ7CiB1c2luZyBXVEY6OmlzUG93ZXJPZlR3bzsKIAog
I2VuZGlmIC8vIFBhZ2VCbG9ja19oCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>262541</attachid>
            <date>2015-10-06 13:09:56 -0700</date>
            <delta_ts>2015-10-08 09:27:51 -0700</delta_ts>
            <desc>[PATCH] Proposed Fix</desc>
            <filename>rebaselined.patch</filename>
            <type>text/plain</type>
            <size>16429</size>
            <attacher name="Joseph Pecoraro">joepeck</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IDkzMjhjOGMuLmE2YzRmMTYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ5IEBACisyMDE1LTEwLTA2ICBKb3NlcGggUGVjb3Jh
cm8gIDxwZWNvcmFyb0BhcHBsZS5jb20+CisKKyAgICAgICAgQ2xlYW4gdXAgTWFya2VkIGNsYXNz
ZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0OTg1
MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogaGVh
cC9IZWFwLmg6CisgICAgICAgIE1vdmUgaW5jbHVkZSBoZXJlIHdoZXJlIGl0IGlzIHJlYWxseSBu
ZWVkZWQuCisKKyAgICAgICAgKiBoZWFwL0hlYXBTdGF0aXN0aWNzLmNwcDoKKyAgICAgICAgKiBo
ZWFwL0hlYXBTdGF0aXN0aWNzLmg6CisgICAgICAgIFNpbXBsaWZ5IGluY2x1ZGVzLgorCisgICAg
ICAgICogaGVhcC9NYXJrZWRBbGxvY2F0b3IuaDoKKyAgICAgICAgQWRkIG1pc3NpbmcgY29weXJp
Z2h0IGhlYWRlci4KKworICAgICAgICAqIGhlYXAvTWFya2VkQmxvY2suY3BwOgorICAgICAgICAq
IGhlYXAvTWFya2VkQmxvY2suaDoKKyAgICAgICAgKEpTQzo6TWFya2VkQmxvY2s6Om5lZWRzU3dl
ZXBpbmcpOgorICAgICAgICBSZW1vdmUgdW51c2VkIGNvbnN0YW50cy4gQWRkIHNvbWUgc3RhdGlj
IGFzc2VydHMuIEFkZCBzb21lIGBjb25zdGAgbmVzcy4KKworICAgICAgICAqIGhlYXAvTWFya2Vk
U3BhY2UuaDoKKyAgICAgICAgKEpTQzo6TWFya2VkU3BhY2U6OmlzSXRlcmF0aW5nKToKKyAgICAg
ICAgVXBkYXRlIGNvbW1lbnRzIHRvIGJldHRlciByZWZsZWN0IGFjdHVhbCB2YWx1ZXMuCisgICAg
ICAgIFJlbW92ZSB1bmltcGxlbWVudGVkIG1ldGhvZCAobW92ZWQgdG8gSGVhcCkuCisKKyAgICAg
ICAgKiBoZWFwL01hcmtlZFNwYWNlLmNwcDoKKyAgICAgICAgKEpTQzo6RnJlZTo6RnJlZSk6Cisg
ICAgICAgIChKU0M6OkZyZWU6Om9wZXJhdG9yKCkpOgorICAgICAgICAoSlNDOjpGcmVlOjpyZXR1
cm5WYWx1ZSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkZyZWVPclNocmluazo6RnJlZU9yU2hy
aW5rKToKKyAgICAgICAgKEpTQzo6RnJlZU9yU2hyaW5rOjpvcGVyYXRvcigpKToKKyAgICAgICAg
KEpTQzo6TWFya2VkU3BhY2U6On5NYXJrZWRTcGFjZSk6CisgICAgICAgIChKU0M6Ok1hcmtlZFNw
YWNlOjpzaHJpbmspOgorICAgICAgICBSZXBsYWNlIGNvbmRpdGlvbmFsIEZ1bmN0b3IgdGhhdCB3
YXMgbm90IHVzaW5nIHJldHVybiB2YWx1ZQorICAgICAgICB3aXRoIHNpbXBsaWZpZWQgdGFyZ2V0
ZWQgVm9pZEZ1bmN0b3JzLgorCisgICAgICAgIChKU0M6OlNocmluazo6b3BlcmF0b3IoKSk6IERl
bGV0ZWQuCisgICAgICAgIFJlbW92ZSB1bnVzZWQgZnVuY3Rvci4KKworICAgICAgICAqIGhlYXAv
V2Vha0Jsb2NrLmNwcDoKKyAgICAgICAgKiBoZWFwL1dlYWtCbG9jay5oOgorICAgICAgICAqIHJ1
bnRpbWUvT3B0aW9ucy5jcHA6CisgICAgICAgIFJlbW92ZSBkZWFkIGNvZGUuCisKIDIwMTUtMTAt
MDYgIERhbmllbCBCYXRlcyAgPGRiYXRlc0B3ZWJraXQub3JnPgogCiAgICAgICAgIEVuYWJsZSBY
U0xUIHdoZW4gYnVpbGRpbmcgV2ViS2l0IGZvciBpT1MgdXNpbmcgdGhlIHB1YmxpYyBpT1MgU0RL
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9IZWFwLmggYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaGVhcC9IZWFwLmgKaW5kZXggYjI4YWU4Ny4uYjM0NDAyNCAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSGVhcC5oCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9oZWFwL0hlYXAuaApAQCAtMzEsNiArMzEsNyBAQAogI2luY2x1ZGUgIkhlYXBP
cGVyYXRpb24uaCIKICNpbmNsdWRlICJKSVRTdHViUm91dGluZVNldC5oIgogI2luY2x1ZGUgIkxp
c3RhYmxlSGFuZGxlci5oIgorI2luY2x1ZGUgIk1hY2hpbmVTdGFja01hcmtlci5oIgogI2luY2x1
ZGUgIk1hcmtlZEFsbG9jYXRvci5oIgogI2luY2x1ZGUgIk1hcmtlZEJsb2NrLmgiCiAjaW5jbHVk
ZSAiTWFya2VkQmxvY2tTZXQuaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9o
ZWFwL0hlYXBTdGF0aXN0aWNzLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hlYXBT
dGF0aXN0aWNzLmNwcAppbmRleCA0YjBkMjg0Li4zMDgxZjg4IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaGVhcC9IZWFwU3RhdGlzdGljcy5jcHAKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2hlYXAvSGVhcFN0YXRpc3RpY3MuY3BwCkBAIC0zMiwxMiArMzIsMTMgQEAKICNp
bmNsdWRlICJKU09iamVjdC5oIgogI2luY2x1ZGUgIk9wdGlvbnMuaCIKICNpbmNsdWRlIDxzdGRs
aWIuaD4KLSNpZiBPUyhVTklYKQotI2luY2x1ZGUgPHN5cy9yZXNvdXJjZS5oPgotI2VuZGlmCiAj
aW5jbHVkZSA8d3RmL0N1cnJlbnRUaW1lLmg+CiAjaW5jbHVkZSA8d3RmL0RhdGFMb2cuaD4KLSNp
bmNsdWRlIDx3dGYvRGVxdWUuaD4KKyNpbmNsdWRlIDx3dGYvU3RkTGliRXh0cmFzLmg+CisKKyNp
ZiBPUyhVTklYKQorI2luY2x1ZGUgPHN5cy9yZXNvdXJjZS5oPgorI2VuZGlmCiAKIG5hbWVzcGFj
ZSBKU0MgewogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9IZWFwU3Rh
dGlzdGljcy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSGVhcFN0YXRpc3RpY3MuaApp
bmRleCBkZjM2ZWNiLi5jYTBmNDNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
aGVhcC9IZWFwU3RhdGlzdGljcy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hl
YXBTdGF0aXN0aWNzLmgKQEAgLTI3LDcgKzI3LDcgQEAKICNkZWZpbmUgSGVhcFN0YXRpc3RpY3Nf
aAogCiAjaW5jbHVkZSAiSlNFeHBvcnRNYWNyb3MuaCIKLSNpbmNsdWRlIDx3dGYvRGVxdWUuaD4K
KyNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAKIG5hbWVzcGFjZSBKU0MgewogCkBAIC00MywxMCAr
NDMsNiBAQCBwdWJsaWM6CiAKICAgICBzdGF0aWMgdm9pZCBzaG93T2JqZWN0U3RhdGlzdGljcyhI
ZWFwKik7CiAKLSAgICBzdGF0aWMgY29uc3Qgc2l6ZV90IEtCID0gMTAyNDsKLSAgICBzdGF0aWMg
Y29uc3Qgc2l6ZV90IE1CID0gMTAyNCAqIEtCOwotICAgIHN0YXRpYyBjb25zdCBzaXplX3QgR0Ig
PSAxMDI0ICogTUI7Ci0KIHByaXZhdGU6CiAgICAgc3RhdGljIHZvaWQgbG9nU3RhdGlzdGljcygp
OwogICAgIHN0YXRpYyBWZWN0b3I8ZG91YmxlPiogc19wYXVzZVRpbWVTdGFydHM7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9NYXJrZWRBbGxvY2F0b3IuaCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9oZWFwL01hcmtlZEFsbG9jYXRvci5oCmluZGV4IDE2MWFmNDguLjI2
MTUwMDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL01hcmtlZEFsbG9j
YXRvci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL01hcmtlZEFsbG9jYXRvci5o
CkBAIC0xLDMgKzEsMjggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIsIDIwMTMgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUK
KyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJP
Q1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4gCisgKi8KKwogI2lmbmRlZiBNYXJrZWRBbGxvY2F0b3JfaAogI2RlZmluZSBNYXJrZWRB
bGxvY2F0b3JfaAogCkBAIC0xMCwxMCArMzUsNiBAQCBjbGFzcyBIZWFwOwogY2xhc3MgTWFya2Vk
U3BhY2U7CiBjbGFzcyBMTEludE9mZnNldHNFeHRyYWN0b3I7CiAKLW5hbWVzcGFjZSBERkcgewot
Y2xhc3MgU3BlY3VsYXRpdmVKSVQ7Ci19Ci0KIGNsYXNzIE1hcmtlZEFsbG9jYXRvciB7CiAgICAg
ZnJpZW5kIGNsYXNzIExMSW50T2Zmc2V0c0V4dHJhY3RvcjsKIApAQCAtMTQ1LDQgKzE2Niw0IEBA
IHRlbXBsYXRlIDx0eXBlbmFtZSBGdW5jdG9yPiBpbmxpbmUgdm9pZCBNYXJrZWRBbGxvY2F0b3I6
OmZvckVhY2hCbG9jayhGdW5jdG9yJiBmCiAKIH0gLy8gbmFtZXNwYWNlIEpTQwogCi0jZW5kaWYK
KyNlbmRpZiAvLyBNYXJrZWRBbGxvY2F0b3JfaApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2hlYXAvTWFya2VkQmxvY2suY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAv
TWFya2VkQmxvY2suY3BwCmluZGV4IDA0MzQ3OTIuLjkyYzRhZTkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9oZWFwL01hcmtlZEJsb2NrLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvaGVhcC9NYXJrZWRCbG9jay5jcHAKQEAgLTI2LDcgKzI2LDYgQEAKICNpbmNsdWRl
ICJjb25maWcuaCIKICNpbmNsdWRlICJNYXJrZWRCbG9jay5oIgogCi0jaW5jbHVkZSAiSW5jcmVt
ZW50YWxTd2VlcGVyLmgiCiAjaW5jbHVkZSAiSlNDZWxsLmgiCiAjaW5jbHVkZSAiSlNEZXN0cnVj
dGlibGVPYmplY3QuaCIKICNpbmNsdWRlICJKU0NJbmxpbmVzLmgiCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaGVhcC9NYXJrZWRCbG9jay5oIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2hlYXAvTWFya2VkQmxvY2suaAppbmRleCA3MjcxOWNiLi5iNTgzM2MyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9NYXJrZWRCbG9jay5oCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9oZWFwL01hcmtlZEJsb2NrLmgKQEAgLTMwLDcgKzMwLDYgQEAKICNpbmNs
dWRlIDx3dGYvRG91Ymx5TGlua2VkTGlzdC5oPgogI2luY2x1ZGUgPHd0Zi9IYXNoRnVuY3Rpb25z
Lmg+CiAjaW5jbHVkZSA8d3RmL1N0ZExpYkV4dHJhcy5oPgotI2luY2x1ZGUgPHd0Zi9WZWN0b3Iu
aD4KIAogLy8gU2V0IHRvIGxvZyBzdGF0ZSB0cmFuc2l0aW9ucyBvZiBibG9ja3MuCiAjZGVmaW5l
IEhFQVBfTE9HX0JMT0NLX1NUQVRFX1RSQU5TSVRJT05TIDAKQEAgLTU0LDggKzUzLDYgQEAgbmFt
ZXNwYWNlIEpTQyB7CiAKICAgICB0eXBlZGVmIHVpbnRwdHJfdCBCaXRzOwogCi0gICAgc3RhdGlj
IGNvbnN0IHNpemVfdCBNQiA9IDEwMjQgKiAxMDI0OwotICAgIAogICAgIGJvb2wgaXNaYXBwZWQo
Y29uc3QgSlNDZWxsKik7CiAgICAgCiAgICAgLy8gQSBtYXJrZWQgYmxvY2sgaXMgYSBwYWdlLWFs
aWduZWQgY29udGFpbmVyIGZvciBoZWFwLWFsbG9jYXRlZCBvYmplY3RzLgpAQCAtNzIsMTQgKzY5
LDEzIEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBmcmllbmQgc3RydWN0IFZlcmlmeU1hcmtl
ZE9yUmV0aXJlZDsKICAgICBwdWJsaWM6CiAgICAgICAgIHN0YXRpYyBjb25zdCBzaXplX3QgYXRv
bVNpemUgPSAxNjsgLy8gYnl0ZXMKLSAgICAgICAgc3RhdGljIGNvbnN0IHNpemVfdCBhdG9tU2hp
ZnRBbW91bnQgPSA0OyAvLyBsb2dfMihhdG9tU2l6ZSkgRklYTUU6IENoYW5nZSBhdG9tU2l6ZSB0
byAxNi4KICAgICAgICAgc3RhdGljIGNvbnN0IHNpemVfdCBibG9ja1NpemUgPSAxNiAqIEtCOwog
ICAgICAgICBzdGF0aWMgY29uc3Qgc2l6ZV90IGJsb2NrTWFzayA9IH4oYmxvY2tTaXplIC0gMSk7
IC8vIGJsb2NrU2l6ZSBtdXN0IGJlIGEgcG93ZXIgb2YgdHdvLgogCiAgICAgICAgIHN0YXRpYyBj
b25zdCBzaXplX3QgYXRvbXNQZXJCbG9jayA9IGJsb2NrU2l6ZSAvIGF0b21TaXplOwotICAgICAg
ICBzdGF0aWMgY29uc3Qgc2l6ZV90IGF0b21NYXNrID0gYXRvbXNQZXJCbG9jayAtIDE7CiAKLSAg
ICAgICAgc3RhdGljIGNvbnN0IHNpemVfdCBtYXJrQnl0ZVNoaWZ0QW1vdW50ID0gMzsgLy8gbG9n
XzIod29yZCBzaXplIGZvciBtX21hcmtzKSBGSVhNRTogQ2hhbmdlIHdvcmQgc2l6ZSBmb3IgbV9t
YXJrcyB0byB1aW50OF90LgorICAgICAgICBzdGF0aWNfYXNzZXJ0KCEoTWFya2VkQmxvY2s6OmF0
b21TaXplICYgKE1hcmtlZEJsb2NrOjphdG9tU2l6ZSAtIDEpKSwgIk1hcmtlZEJsb2NrOjphdG9t
U2l6ZSBtdXN0IGJlIGEgcG93ZXIgb2YgdHdvLiIpOworICAgICAgICBzdGF0aWNfYXNzZXJ0KCEo
TWFya2VkQmxvY2s6OmJsb2NrU2l6ZSAmIChNYXJrZWRCbG9jazo6YmxvY2tTaXplIC0gMSkpLCAi
TWFya2VkQmxvY2s6OmJsb2NrU2l6ZSBtdXN0IGJlIGEgcG93ZXIgb2YgdHdvLiIpOwogCiAgICAg
ICAgIHN0cnVjdCBGcmVlQ2VsbCB7CiAgICAgICAgICAgICBGcmVlQ2VsbCogbmV4dDsKQEAgLTE2
OCw3ICsxNjQsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgdm9pZCBjbGVhck5ld2x5QWxs
b2NhdGVkKGNvbnN0IHZvaWQqKTsKIAogICAgICAgICBib29sIGlzQWxsb2NhdGVkKCkgY29uc3Q7
Ci0gICAgICAgIGJvb2wgbmVlZHNTd2VlcGluZygpOworICAgICAgICBib29sIG5lZWRzU3dlZXBp
bmcoKSBjb25zdDsKICAgICAgICAgdm9pZCBkaWRSZXRpcmVCbG9jayhjb25zdCBGcmVlTGlzdCYp
OwogICAgICAgICB2b2lkIHdpbGxSZW1vdmVCbG9jaygpOwogCkBAIC0xNzcsNyArMTczLDcgQEAg
bmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBGdW5jdG9yPiBJdGVy
YXRpb25TdGF0dXMgZm9yRWFjaERlYWRDZWxsKEZ1bmN0b3ImKTsKIAogICAgIHByaXZhdGU6Ci0g
ICAgICAgIHN0YXRpYyBjb25zdCBzaXplX3QgYXRvbUFsaWdubWVudE1hc2sgPSBhdG9tU2l6ZSAt
IDE7IC8vIGF0b21TaXplIG11c3QgYmUgYSBwb3dlciBvZiB0d28uCisgICAgICAgIHN0YXRpYyBj
b25zdCBzaXplX3QgYXRvbUFsaWdubWVudE1hc2sgPSBhdG9tU2l6ZSAtIDE7CiAKICAgICAgICAg
ZW51bSBCbG9ja1N0YXRlIHsgTmV3LCBGcmVlTGlzdGVkLCBBbGxvY2F0ZWQsIE1hcmtlZCwgUmV0
aXJlZCB9OwogICAgICAgICB0ZW1wbGF0ZTxib29sIGNhbGxEZXN0cnVjdG9ycz4gRnJlZUxpc3Qg
c3dlZXBIZWxwZXIoU3dlZXBNb2RlID0gU3dlZXBPbmx5KTsKQEAgLTQ0Miw3ICs0MzgsNyBAQCBu
YW1lc3BhY2UgSlNDIHsKICAgICAgICAgcmV0dXJuIEl0ZXJhdGlvblN0YXR1czo6Q29udGludWU7
CiAgICAgfQogCi0gICAgaW5saW5lIGJvb2wgTWFya2VkQmxvY2s6Om5lZWRzU3dlZXBpbmcoKQor
ICAgIGlubGluZSBib29sIE1hcmtlZEJsb2NrOjpuZWVkc1N3ZWVwaW5nKCkgY29uc3QKICAgICB7
CiAgICAgICAgIHJldHVybiBtX3N0YXRlID09IE1hcmtlZDsKICAgICB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9NYXJrZWRTcGFjZS5jcHAgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvaGVhcC9NYXJrZWRTcGFjZS5jcHAKaW5kZXggNTJhMzcxYy4uYWZlMDQxYSAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvTWFya2VkU3BhY2UuY3BwCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL01hcmtlZFNwYWNlLmNwcApAQCAtMjIsNDkgKzIy
LDI0IEBACiAjaW5jbHVkZSAiTWFya2VkU3BhY2UuaCIKIAogI2luY2x1ZGUgIkluY3JlbWVudGFs
U3dlZXBlci5oIgotI2luY2x1ZGUgIkpTR2xvYmFsT2JqZWN0LmgiCi0jaW5jbHVkZSAiSlNMb2Nr
LmgiCiAjaW5jbHVkZSAiSlNPYmplY3QuaCIKICNpbmNsdWRlICJKU0NJbmxpbmVzLmgiCiAKIG5h
bWVzcGFjZSBKU0MgewogCi1jbGFzcyBTdHJ1Y3R1cmU7Ci0KLWNsYXNzIEZyZWUgewotcHVibGlj
OgotICAgIHR5cGVkZWYgTWFya2VkQmxvY2sqIFJldHVyblR5cGU7Ci0KLSAgICBlbnVtIEZyZWVN
b2RlIHsgRnJlZU9yU2hyaW5rLCBGcmVlQWxsIH07Ci0KLSAgICBGcmVlKEZyZWVNb2RlLCBNYXJr
ZWRTcGFjZSopOwotICAgIHZvaWQgb3BlcmF0b3IoKShNYXJrZWRCbG9jayopOwotICAgIFJldHVy
blR5cGUgcmV0dXJuVmFsdWUoKTsKLSAgICAKK3N0cnVjdCBGcmVlIDogTWFya2VkQmxvY2s6OlZv
aWRGdW5jdG9yIHsKKyAgICBGcmVlKE1hcmtlZFNwYWNlKiBzcGFjZSkgOiBtX21hcmtlZFNwYWNl
KHNwYWNlKSB7IH0KKyAgICB2b2lkIG9wZXJhdG9yKCkoTWFya2VkQmxvY2sqIGJsb2NrKSB7IG1f
bWFya2VkU3BhY2UtPmZyZWVCbG9jayhibG9jayk7IH0KIHByaXZhdGU6Ci0gICAgRnJlZU1vZGUg
bV9mcmVlTW9kZTsKICAgICBNYXJrZWRTcGFjZSogbV9tYXJrZWRTcGFjZTsKLSAgICBEb3VibHlM
aW5rZWRMaXN0PE1hcmtlZEJsb2NrPiBtX2Jsb2NrczsKIH07CiAKLWlubGluZSBGcmVlOjpGcmVl
KEZyZWVNb2RlIGZyZWVNb2RlLCBNYXJrZWRTcGFjZSogbmV3U3BhY2UpCi0gICAgOiBtX2ZyZWVN
b2RlKGZyZWVNb2RlKQotICAgICwgbV9tYXJrZWRTcGFjZShuZXdTcGFjZSkKLXsKLX0KLQotaW5s
aW5lIHZvaWQgRnJlZTo6b3BlcmF0b3IoKShNYXJrZWRCbG9jayogYmxvY2spCi17Ci0gICAgaWYg
KG1fZnJlZU1vZGUgPT0gRnJlZU9yU2hyaW5rKQotICAgICAgICBtX21hcmtlZFNwYWNlLT5mcmVl
T3JTaHJpbmtCbG9jayhibG9jayk7Ci0gICAgZWxzZQotICAgICAgICBtX21hcmtlZFNwYWNlLT5m
cmVlQmxvY2soYmxvY2spOwotfQotCi1pbmxpbmUgRnJlZTo6UmV0dXJuVHlwZSBGcmVlOjpyZXR1
cm5WYWx1ZSgpCi17Ci0gICAgcmV0dXJuIG1fYmxvY2tzLmhlYWQoKTsKLX0KK3N0cnVjdCBGcmVl
T3JTaHJpbmsgOiBNYXJrZWRCbG9jazo6Vm9pZEZ1bmN0b3IgeworICAgIEZyZWVPclNocmluayhN
YXJrZWRTcGFjZSogc3BhY2UpIDogbV9tYXJrZWRTcGFjZShzcGFjZSkgeyB9CisgICAgdm9pZCBv
cGVyYXRvcigpKE1hcmtlZEJsb2NrKiBibG9jaykgeyBtX21hcmtlZFNwYWNlLT5mcmVlT3JTaHJp
bmtCbG9jayhibG9jayk7IH0KK3ByaXZhdGU6CisgICAgTWFya2VkU3BhY2UqIG1fbWFya2VkU3Bh
Y2U7Cit9OwogCiBzdHJ1Y3QgVmlzaXRXZWFrU2V0IDogTWFya2VkQmxvY2s6OlZvaWRGdW5jdG9y
IHsKICAgICBWaXNpdFdlYWtTZXQoSGVhcFJvb3RWaXNpdG9yJiBoZWFwUm9vdFZpc2l0b3IpIDog
bV9oZWFwUm9vdFZpc2l0b3IoaGVhcFJvb3RWaXNpdG9yKSB7IH0KQEAgLTk4LDcgKzczLDcgQEAg
TWFya2VkU3BhY2U6Ok1hcmtlZFNwYWNlKEhlYXAqIGhlYXApCiAKIE1hcmtlZFNwYWNlOjp+TWFy
a2VkU3BhY2UoKQogewotICAgIEZyZWUgZnJlZShGcmVlOjpGcmVlQWxsLCB0aGlzKTsKKyAgICBG
cmVlIGZyZWUodGhpcyk7CiAgICAgZm9yRWFjaEJsb2NrKGZyZWUpOwogICAgIEFTU0VSVCghbV9i
bG9ja3Muc2V0KCkuc2l6ZSgpKTsKIH0KQEAgLTI0NywxMyArMjIyLDkgQEAgdm9pZCBNYXJrZWRT
cGFjZTo6ZnJlZU9yU2hyaW5rQmxvY2soTWFya2VkQmxvY2sqIGJsb2NrKQogICAgIGZyZWVCbG9j
ayhibG9jayk7CiB9CiAKLXN0cnVjdCBTaHJpbmsgOiBNYXJrZWRCbG9jazo6Vm9pZEZ1bmN0b3Ig
ewotICAgIHZvaWQgb3BlcmF0b3IoKShNYXJrZWRCbG9jayogYmxvY2spIHsgYmxvY2stPnNocmlu
aygpOyB9Ci19OwotCiB2b2lkIE1hcmtlZFNwYWNlOjpzaHJpbmsoKQogewotICAgIEZyZWUgZnJl
ZU9yU2hyaW5rKEZyZWU6OkZyZWVPclNocmluaywgdGhpcyk7CisgICAgRnJlZU9yU2hyaW5rIGZy
ZWVPclNocmluayh0aGlzKTsKICAgICBmb3JFYWNoQmxvY2soZnJlZU9yU2hyaW5rKTsKIH0KIApk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvTWFya2VkU3BhY2UuaCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL01hcmtlZFNwYWNlLmgKaW5kZXggNzk3MjFkZi4uODYx
OTU3NiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvTWFya2VkU3BhY2Uu
aAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9NYXJrZWRTcGFjZS5oCkBAIC0yMiwx
MyArMjIsMTAgQEAKICNpZm5kZWYgTWFya2VkU3BhY2VfaAogI2RlZmluZSBNYXJrZWRTcGFjZV9o
CiAKLSNpbmNsdWRlICJNYWNoaW5lU3RhY2tNYXJrZXIuaCIKICNpbmNsdWRlICJNYXJrZWRBbGxv
Y2F0b3IuaCIKICNpbmNsdWRlICJNYXJrZWRCbG9jay5oIgogI2luY2x1ZGUgIk1hcmtlZEJsb2Nr
U2V0LmgiCiAjaW5jbHVkZSA8YXJyYXk+Ci0jaW5jbHVkZSA8d3RmL0JpdG1hcC5oPgotI2luY2x1
ZGUgPHd0Zi9Eb3VibHlMaW5rZWRMaXN0Lmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hTZXQuaD4KICNp
bmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4KICNpbmNsdWRlIDx3dGYvUmV0YWluUHRyLmg+CkBA
IC0zOCwxMSArMzUsOCBAQCBuYW1lc3BhY2UgSlNDIHsKIAogY2xhc3MgSGVhcDsKIGNsYXNzIEhl
YXBJdGVyYXRpb25TY29wZTsKLWNsYXNzIEpTQ2VsbDsKIGNsYXNzIExpdmVPYmplY3RJdGVyYXRv
cjsKIGNsYXNzIExMSW50T2Zmc2V0c0V4dHJhY3RvcjsKLWNsYXNzIFdlYWtHQ0hhbmRsZTsKLWNs
YXNzIFNsb3RWaXNpdG9yOwogCiBzdHJ1Y3QgQ2xlYXJNYXJrcyA6IE1hcmtlZEJsb2NrOjpWb2lk
RnVuY3RvciB7CiAgICAgdm9pZCBvcGVyYXRvcigpKE1hcmtlZEJsb2NrKiBibG9jaykKQEAgLTc0
LDEyICs2OCwxMiBAQCBzdHJ1Y3QgU2l6ZSA6IE1hcmtlZEJsb2NrOjpDb3VudEZ1bmN0b3Igewog
Y2xhc3MgTWFya2VkU3BhY2UgewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKE1hcmtlZFNwYWNl
KTsKIHB1YmxpYzoKLSAgICAvLyBbIDMyLi4uIDEyOCBdCisgICAgLy8gWyAxNiAuLi4gMTI4IF0K
ICAgICBzdGF0aWMgY29uc3Qgc2l6ZV90IHByZWNpc2VTdGVwID0gTWFya2VkQmxvY2s6OmF0b21T
aXplOwogICAgIHN0YXRpYyBjb25zdCBzaXplX3QgcHJlY2lzZUN1dG9mZiA9IDEyODsKICAgICBz
dGF0aWMgY29uc3Qgc2l6ZV90IHByZWNpc2VDb3VudCA9IHByZWNpc2VDdXRvZmYgLyBwcmVjaXNl
U3RlcDsKIAotICAgIC8vIFsgMTAyNC4uLiBibG9ja1NpemUgXQorICAgIC8vIFsgMjU2IC4uLiBi
bG9ja1NpemUvMiBdCiAgICAgc3RhdGljIGNvbnN0IHNpemVfdCBpbXByZWNpc2VTdGVwID0gMiAq
IHByZWNpc2VDdXRvZmY7CiAgICAgc3RhdGljIGNvbnN0IHNpemVfdCBpbXByZWNpc2VDdXRvZmYg
PSBNYXJrZWRCbG9jazo6YmxvY2tTaXplIC8gMjsKICAgICBzdGF0aWMgY29uc3Qgc2l6ZV90IGlt
cHJlY2lzZUNvdW50ID0gaW1wcmVjaXNlQ3V0b2ZmIC8gaW1wcmVjaXNlU3RlcDsKQEAgLTExMCwy
MSArMTA0LDIxIEBAIHB1YmxpYzoKICAgICBNYXJrZWRCbG9ja1NldCYgYmxvY2tzKCkgeyByZXR1
cm4gbV9ibG9ja3M7IH0KIAogICAgIHZvaWQgd2lsbFN0YXJ0SXRlcmF0aW5nKCk7Ci0gICAgYm9v
bCBpc0l0ZXJhdGluZygpIHsgcmV0dXJuIG1faXNJdGVyYXRpbmc7IH0KKyAgICBib29sIGlzSXRl
cmF0aW5nKCkgY29uc3QgeyByZXR1cm4gbV9pc0l0ZXJhdGluZzsgfQogICAgIHZvaWQgZGlkRmlu
aXNoSXRlcmF0aW5nKCk7CiAKICAgICB2b2lkIHN0b3BBbGxvY2F0aW5nKCk7CiAgICAgdm9pZCBy
ZXN1bWVBbGxvY2F0aW5nKCk7IC8vIElmIHdlIGp1c3Qgc3RvcHBlZCBhbGxvY2F0aW9uIGJ1dCB3
ZSBkaWRuJ3QgZG8gYSBjb2xsZWN0aW9uLCB3ZSBuZWVkIHRvIHJlc3VtZSBhbGxvY2F0aW9uLgog
CiAgICAgdHlwZWRlZiBIYXNoU2V0PE1hcmtlZEJsb2NrKj46Oml0ZXJhdG9yIEJsb2NrSXRlcmF0
b3I7Ci0gICAgCisKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBGdW5jdG9yPiB0eXBlbmFtZSBGdW5j
dG9yOjpSZXR1cm5UeXBlIGZvckVhY2hMaXZlQ2VsbChIZWFwSXRlcmF0aW9uU2NvcGUmLCBGdW5j
dG9yJik7CiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgRnVuY3Rvcj4gdHlwZW5hbWUgRnVuY3Rvcjo6
UmV0dXJuVHlwZSBmb3JFYWNoTGl2ZUNlbGwoSGVhcEl0ZXJhdGlvblNjb3BlJik7CiAgICAgdGVt
cGxhdGU8dHlwZW5hbWUgRnVuY3Rvcj4gdHlwZW5hbWUgRnVuY3Rvcjo6UmV0dXJuVHlwZSBmb3JF
YWNoRGVhZENlbGwoSGVhcEl0ZXJhdGlvblNjb3BlJiwgRnVuY3RvciYpOwogICAgIHRlbXBsYXRl
PHR5cGVuYW1lIEZ1bmN0b3I+IHR5cGVuYW1lIEZ1bmN0b3I6OlJldHVyblR5cGUgZm9yRWFjaERl
YWRDZWxsKEhlYXBJdGVyYXRpb25TY29wZSYpOwogICAgIHRlbXBsYXRlPHR5cGVuYW1lIEZ1bmN0
b3I+IHR5cGVuYW1lIEZ1bmN0b3I6OlJldHVyblR5cGUgZm9yRWFjaEJsb2NrKEZ1bmN0b3ImKTsK
ICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBGdW5jdG9yPiB0eXBlbmFtZSBGdW5jdG9yOjpSZXR1cm5U
eXBlIGZvckVhY2hCbG9jaygpOwotICAgIAorCiAgICAgdm9pZCBzaHJpbmsoKTsKICAgICB2b2lk
IGZyZWVCbG9jayhNYXJrZWRCbG9jayopOwogICAgIHZvaWQgZnJlZU9yU2hyaW5rQmxvY2soTWFy
a2VkQmxvY2sqKTsKQEAgLTE0MywxMCArMTM3LDYgQEAgcHVibGljOgogCiAgICAgYm9vbCBpc1Bh
Z2VkT3V0KGRvdWJsZSBkZWFkbGluZSk7CiAKLSNpZiBVU0UoQ0YpCi0gICAgdGVtcGxhdGU8dHlw
ZW5hbWUgVD4gdm9pZCByZWxlYXNlU29vbihSZXRhaW5QdHI8VD4mJik7Ci0jZW5kaWYKLQogICAg
IGNvbnN0IFZlY3RvcjxNYXJrZWRCbG9jayo+JiBibG9ja3NXaXRoTmV3T2JqZWN0cygpIGNvbnN0
IHsgcmV0dXJuIG1fYmxvY2tzV2l0aE5ld09iamVjdHM7IH0KIAogcHJpdmF0ZToKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL1dlYWtCbG9jay5jcHAgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvaGVhcC9XZWFrQmxvY2suY3BwCmluZGV4IDdjN2Q4NmMuLjYzZjY1ODUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL1dlYWtCbG9jay5jcHAKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvV2Vha0Jsb2NrLmNwcApAQCAtMjgsOSArMjgsOSBA
QAogCiAjaW5jbHVkZSAiSGVhcC5oIgogI2luY2x1ZGUgIkhlYXBSb290VmlzaXRvci5oIgotI2lu
Y2x1ZGUgIkpTT2JqZWN0LmgiCiAjaW5jbHVkZSAiSlNDSW5saW5lcy5oIgotI2luY2x1ZGUgIlN0
cnVjdHVyZS5oIgorI2luY2x1ZGUgIkpTT2JqZWN0LmgiCisjaW5jbHVkZSAiV2Vha0hhbmRsZU93
bmVyLmgiCiAKIG5hbWVzcGFjZSBKU0MgewogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvaGVhcC9XZWFrQmxvY2suaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL1dlYWtC
bG9jay5oCmluZGV4IGI4MjllOWQuLjllMTk3ODMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9oZWFwL1dlYWtCbG9jay5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFw
L1dlYWtCbG9jay5oCkBAIC0yNiw4ICsyNiw2IEBACiAjaWZuZGVmIFdlYWtCbG9ja19oCiAjZGVm
aW5lIFdlYWtCbG9ja19oCiAKLSNpbmNsdWRlIDx3dGYvRG91Ymx5TGlua2VkTGlzdC5oPgotI2lu
Y2x1ZGUgIldlYWtIYW5kbGVPd25lci5oIgogI2luY2x1ZGUgIldlYWtJbXBsLmgiCiAjaW5jbHVk
ZSA8d3RmL0RvdWJseUxpbmtlZExpc3QuaD4KICNpbmNsdWRlIDx3dGYvU3RkTGliRXh0cmFzLmg+
CkBAIC0zNSw5ICszMyw3IEBACiBuYW1lc3BhY2UgSlNDIHsKIAogY2xhc3MgSGVhcFJvb3RWaXNp
dG9yOwotY2xhc3MgSlNWYWx1ZTsKIGNsYXNzIE1hcmtlZEJsb2NrOwotY2xhc3MgV2Vha0hhbmRs
ZU93bmVyOwogCiBjbGFzcyBXZWFrQmxvY2sgOiBwdWJsaWMgRG91Ymx5TGlua2VkTGlzdE5vZGU8
V2Vha0Jsb2NrPiB7CiBwdWJsaWM6CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9PcHRpb25zLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09wdGlv
bnMuY3BwCmluZGV4IGVmYWRmNDkuLmIzMzg1OGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL09wdGlvbnMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL09wdGlvbnMuY3BwCkBAIC0yNiw3ICsyNiw2IEBACiAjaW5jbHVkZSAiY29uZmlnLmgi
CiAjaW5jbHVkZSAiT3B0aW9ucy5oIgogCi0jaW5jbHVkZSAiSGVhcFN0YXRpc3RpY3MuaCIKICNp
bmNsdWRlIDxhbGdvcml0aG0+CiAjaW5jbHVkZSA8bGltaXRzPgogI2luY2x1ZGUgPG1hdGguaD4K
QEAgLTM2LDE1ICszNSwxMCBAQAogI2luY2x1ZGUgPHd0Zi9BU0NJSUNUeXBlLmg+CiAjaW5jbHVk
ZSA8d3RmL0RhdGFMb2cuaD4KICNpbmNsdWRlIDx3dGYvTnVtYmVyT2ZDb3Jlcy5oPgotI2luY2x1
ZGUgPHd0Zi9QYWdlQmxvY2suaD4KICNpbmNsdWRlIDx3dGYvU3RkTGliRXh0cmFzLmg+CiAjaW5j
bHVkZSA8d3RmL1N0cmluZ0V4dHJhcy5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0J1aWxk
ZXIuaD4KIAotI2lmIE9TKERBUldJTikKLSNpbmNsdWRlIDxzeXMvc3lzY3RsLmg+Ci0jZW5kaWYK
LQogI2lmIE9TKFdJTkRPV1MpCiAjaW5jbHVkZSAiTWFjcm9Bc3NlbWJsZXJYODYuaCIKICNlbmRp
ZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV1RGL0NoYW5nZUxv
ZwppbmRleCAxZjBjMjZlLi40MWNhN2M4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL0NoYW5nZUxv
ZworKysgYi9Tb3VyY2UvV1RGL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDE1LTEwLTA2
ICBKb3NlcGggUGVjb3Jhcm8gIDxwZWNvcmFyb0BhcHBsZS5jb20+CisKKyAgICAgICAgQ2xlYW4g
dXAgTWFya2VkIGNsYXNzZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTE0OTg1MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgICogd3RmL1BhZ2VCbG9jay5oOgorICAgICAgICBSZW1vdmUgZHVwbGljYXRlIHVz
aW5nIHN0YXRlbWVudC4KKwogMjAxNS0xMC0wNiAgRGFuaWVsIEJhdGVzICA8ZGJhdGVzQHdlYmtp
dC5vcmc+CiAKICAgICAgICAgRW5hYmxlIFhTTFQgd2hlbiBidWlsZGluZyBXZWJLaXQgZm9yIGlP
UyB1c2luZyB0aGUgcHVibGljIGlPUyBTREsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL1Bh
Z2VCbG9jay5oIGIvU291cmNlL1dURi93dGYvUGFnZUJsb2NrLmgKaW5kZXggNTZlNTU3MC4uMzcy
YzhiNiAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvUGFnZUJsb2NrLmgKKysrIGIvU291cmNl
L1dURi93dGYvUGFnZUJsb2NrLmgKQEAgLTgyLDcgKzgyLDYgQEAgaW5saW5lIFBhZ2VCbG9jazo6
UGFnZUJsb2NrKHZvaWQqIGJhc2UsIHNpemVfdCBzaXplLCBib29sIGhhc0d1YXJkUGFnZXMpCiAK
IHVzaW5nIFdURjo6cGFnZVNpemU7CiB1c2luZyBXVEY6OmlzUGFnZUFsaWduZWQ7Ci11c2luZyBX
VEY6OmlzUGFnZUFsaWduZWQ7CiB1c2luZyBXVEY6OmlzUG93ZXJPZlR3bzsKIAogI2VuZGlmIC8v
IFBhZ2VCbG9ja19oCg==
</data>
<flag name="review"
          id="287751"
          type_id="1"
          status="+"
          setter="darin"
    />
    <flag name="commit-queue"
          id="287752"
          type_id="3"
          status="-"
          setter="joepeck"
    />
          </attachment>
      

    </bug>

</bugzilla>