<?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>105052</bug_id>
          
          <creation_ts>2012-12-14 12:54:20 -0800</creation_ts>
          <short_desc>Allow the text track contents to be displayed externally to WebCore.</short_desc>
          <delta_ts>2012-12-14 15:25:05 -0800</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="Jer Noble">jer.noble</reporter>
          <assigned_to name="Jer Noble">jer.noble</assigned_to>
          <cc>eric.carlson</cc>
    
    <cc>feature-media-reviews</cc>
    
    <cc>ojan.autocc</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>791784</commentid>
    <comment_count>0</comment_count>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2012-12-14 12:54:20 -0800</bug_when>
    <thetext>Allow the text track contents to be displayed externally to WebCore.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>791796</commentid>
    <comment_count>1</comment_count>
      <attachid>179520</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2012-12-14 13:11:43 -0800</bug_when>
    <thetext>Created attachment 179520
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>791809</commentid>
    <comment_count>2</comment_count>
      <attachid>179525</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2012-12-14 13:22:58 -0800</bug_when>
    <thetext>Created attachment 179525
Patch

Rebaselined.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>791819</commentid>
    <comment_count>3</comment_count>
      <attachid>179528</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2012-12-14 13:37:01 -0800</bug_when>
    <thetext>Created attachment 179528
Patch

Use nullptr instead of 0 when clearing an OwnPtr (fixes Chromium build error).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>791821</commentid>
    <comment_count>4</comment_count>
      <attachid>179528</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2012-12-14 13:40:58 -0800</bug_when>
    <thetext>Comment on attachment 179528
Patch

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

&gt; Source/WebCore/html/shadow/MediaControlElements.cpp:1290
&gt;      hasChildNodes() ? show() : hide();
&gt; +
&gt; +    if (hasChildNodes()) {

You might as well combine these (only call hasChildNodes once).

&gt; Source/WebCore/platform/graphics/MediaPlayerPrivate.h:188
&gt; +    virtual bool requiresTextTrackRepresentation() const { return 0; }

Nit: &quot;return 0&quot; -&gt; &quot;return false&quot;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>791908</commentid>
    <comment_count>5</comment_count>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2012-12-14 15:25:05 -0800</bug_when>
    <thetext>Committed r137782: &lt;http://trac.webkit.org/changeset/137782&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>179520</attachid>
            <date>2012-12-14 13:11:43 -0800</date>
            <delta_ts>2012-12-14 13:22:57 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-105052-20121214130902.patch</filename>
            <type>text/plain</type>
            <size>27286</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM3MzQ2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjM3MDQyZDgwMDAzMzlj
ZTMzYjg1MjUyOTRkMjE1M2M5YWIzOGY0Ny4uMjM3MzIwM2YxZDg2MTcwMDc5NGM5ZDVjZDlkOTI2
MTExOTEzY2I5NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY1IEBACisyMDEyLTEyLTE0ICBKZXIg
Tm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIEFsbG93IHRoZSB0ZXh0IHRy
YWNrIGNvbnRlbnRzIHRvIGJlIGRpc3BsYXllZCBleHRlcm5hbGx5IHRvIFdlYkNvcmUuCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDUwNTIKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBTdXBwb3J0IHNjZW5h
cmlvcyB3aGVyZSB0aGUgdGV4dCB0cmFjayBjb250ZW50cyBtdXN0IGJlIHJlbmRlcmVkIG91dHNp
ZGUgb2YgV2ViQ29yZSwgc3VjaCBhcyB0byBhbiBleHRlcm5hbAorICAgICAgICBkaXNwbGF5IG9y
IHdpbmRvdy4gIEFkZCBhbiBhYnN0cmFjdCBiYXNlIGNsYXNzIHdoaWNoIGVuY2Fwc3VsYXRlcyB0
aGUgZXh0ZXJuYWwgcmVwcmVzZW50YXRpb24gdG8gd2hpY2ggdGhlCisgICAgICAgIHRleHQgdHJh
Y2tzIHdpbGwgYmUgcmVuZGVyZWQuCisKKyAgICAgICAgQWRkIGEgbmV3IGFic3RyYWN0IGJhc2Ug
Y2xhc3MgYW5kIGNsaWVudCB0byB3cmFwIHRoZSBleHRlcm5hbCByZW5kZXJpbmcgb2YgYSBUZXh0
VHJhY2suCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvVGV4dFRyYWNrUmVwcmVzZW50YXRp
b24uaDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpUZXh0VHJhY2tSZXByZXNlbnRhdGlvbkNs
aWVudDo6flRleHRUcmFja1JlcHJlc2VudGF0aW9uQ2xpZW50KToKKyAgICAgICAgKFdlYkNvcmU6
OlRleHRUcmFja1JlcHJlc2VudGF0aW9uOjp+VGV4dFRyYWNrUmVwcmVzZW50YXRpb24pOgorCisg
ICAgICAgIEFkZCBhbiBlbXB0eSBjb25jcmV0ZSBpbXBsZW1lbnRhdGlvbiBmb3IgdGhvc2UgcG9y
dHMgd2hvIGRvIG5vdCB5ZXQgc3VwcG9ydCBleHRlcm5hbCBkaXNwbGF5IG9mIHN1YnRpdGxlcy4K
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9UZXh0VHJhY2tSZXByZXNlbnRhdGlvbi5jcHA6
IEFkZGVkLgorICAgICAgICAoTnVsbFRleHRUcmFja1JlcHJlc2VudGF0aW9uKToKKyAgICAgICAg
KFdlYkNvcmU6Ok51bGxUZXh0VHJhY2tSZXByZXNlbnRhdGlvbjo6fk51bGxUZXh0VHJhY2tSZXBy
ZXNlbnRhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpOdWxsVGV4dFRyYWNrUmVwcmVzZW50YXRp
b246OnVwZGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpOdWxsVGV4dFRyYWNrUmVwcmVzZW50YXRp
b246OnBsYXRmb3JtTGF5ZXIpOgorICAgICAgICAoV2ViQ29yZTo6TnVsbFRleHRUcmFja1JlcHJl
c2VudGF0aW9uOjpzZXRDb250ZW50U2NhbGUpOgorICAgICAgICAoV2ViQ29yZTo6TnVsbFRleHRU
cmFja1JlcHJlc2VudGF0aW9uOjpib3VuZHMpOgorICAgICAgICAoV2ViQ29yZTo6VGV4dFRyYWNr
UmVwcmVzZW50YXRpb246OmNyZWF0ZSk6CisKKyAgICAgICAgQWRkIG1ldGhvZHMgdG8gTWVkaWFQ
bGF5ZXJQcml2YXRlSU9TIHRvIGhhbmRsZSB0aGUgVGV4dFRyYWNrUmVwcmVzZW50YXRpb24uCisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvaW9zL01lZGlhUGxheWVyUHJpdmF0ZUlPUy5oOgor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2lvcy9NZWRpYVBsYXllclByaXZhdGVJT1MubW06
CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVJT1M6OmRlbGl2ZXJOb3RpZmlj
YXRpb24pOiBSZW1vdmUgdGhlIHJlcHJlc2VudGF0aW9uIHdoZW4gZXhpdGluZyBmdWxsIHNjcmVl
bi4KKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUlPUzo6cmVxdWlyZXNUZXh0
VHJhY2tSZXByZXNlbnRhdGlvbik6IFJldHVybiBZRVMgaWYgaW4gZnVsbCBzY3JlZW4gbW9kZS4K
KyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUlPUzo6c2V0VGV4dFRyYWNrUmVw
cmVzZW50YXRpb24pOiBQYXNzIHRoZSByZXByZXNlbnRhdGlvbidzIGxheWVyIHRvIHRoZSBwbGF5
ZXIgcGx1Zy1pbi4KKworICAgICAgICBFeHBvc2UgdGhvc2UgbWV0aG9kcyB2aWEgSFRNTE1lZGlh
RWxlbWVudDoKKyAgICAgICAgKiBodG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6cmVxdWlyZXNUZXh0VHJhY2tSZXByZXNlbnRhdGlv
bik6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjpzZXRUZXh0VHJhY2tSZXBy
ZXNlbnRhdGlvbik6CisgICAgICAgICogaHRtbC9IVE1MTWVkaWFFbGVtZW50Lmg6CisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
TWVkaWFQbGF5ZXI6OnJlcXVpcmVzVGV4dFRyYWNrUmVwcmVzZW50YXRpb24pOgorICAgICAgICAo
V2ViQ29yZTo6TWVkaWFQbGF5ZXI6OnNldFRleHRUcmFja1JlcHJlc2VudGF0aW9uKToKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5oOgorICAgICAgICAoV2ViQ29yZTo6
TWVkaWFQbGF5ZXJDbGllbnQ6OnRleHRUcmFja1JlcHJlc2VudGF0aW9uQm91bmRzQ2hhbmdlZCk6
CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllckNsaWVudDo6cGFpbnRUZXh0VHJhY2tSZXBy
ZXNlbnRhdGlvbik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXJQcml2
YXRlLmg6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVJbnRlcmZhY2U6OnJl
cXVpcmVzVGV4dFRyYWNrUmVwcmVzZW50YXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQ
bGF5ZXJQcml2YXRlSW50ZXJmYWNlOjpzZXRUZXh0VHJhY2tSZXByZXNlbnRhdGlvbik6CisKKyAg
ICAgICAgKiBodG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xFbGVtZW50cy5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpNZWRpYUNvbnRyb2xUZXh0VHJhY2tDb250YWluZXJFbGVtZW50Ojp1cGRhdGVEaXNw
bGF5KTogQ3JlYXRlIHRoZSByZXByZXNlbnRhdGlvbiwgaWYgbmVjZXNzYXJ5LgorICAgICAgICAo
V2ViQ29yZTo6TWVkaWFDb250cm9sVGV4dFRyYWNrQ29udGFpbmVyRWxlbWVudDo6dXBkYXRlU2l6
ZXMpOiBVc2UgdGhlIHJlcHJlc2VudGF0aW9uIHRvIGRldGVybWluZSB0aGUgZm9udCBzaXplLgor
ICAgICAgICAoV2ViQ29yZTo6TWVkaWFDb250cm9sVGV4dFRyYWNrQ29udGFpbmVyRWxlbWVudDo6
cGFpbnRUZXh0VHJhY2tSZXByZXNlbnRhdGlvbik6IEFkZGVkLiBQYWludCB0aGUgVGV4dFRyYWNr
IGludG8gdGhlIHByb3ZpZGVkIGdyYXBoaWNzIGNvbnRleHQuCisgICAgICAgIChXZWJDb3JlOjpN
ZWRpYUNvbnRyb2xUZXh0VHJhY2tDb250YWluZXJFbGVtZW50Ojp0ZXh0VHJhY2tSZXByZXNlbnRh
dGlvbkJvdW5kc0NoYW5nZWQpOiBBZGRlZC4gQ2FsbCB1cGRhdGVTaXplcygpLgorICAgICAgICAq
IGh0bWwvc2hhZG93L01lZGlhQ29udHJvbEVsZW1lbnRzLmg6CisKKyAgICAgICAgQWRkIHRoZSBu
ZXcgZmlsZXMgdG8gdGhlIHByb2plY3QuCisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qOgorICAgICAgICAqIEdOVW1ha2VmaWxlLmxpc3QuYW06CisgICAgICAgICog
VGFyZ2V0LnByaToKKyAgICAgICAgKiBXZWJDb3JlLmd5cGk6CisgICAgICAgICogV2ViQ29yZS52
Y3Byb2ovV2ViQ29yZS52Y3Byb2o6CisKIDIwMTItMTItMTEgIE1pY2hhZWwgUHJ1ZXR0ICA8bWlj
aGFlbEA2OGsub3JnPgogCiAgICAgICAgIFtKU0NdIEFkZCB0ZXN0cyBmb3IgZXhwbGljaXQgc2Vy
aWFsaXphdGlvbiB2YWx1ZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxl
Lmxpc3QuYW0gYi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCmluZGV4IDIzN2U3
MjNiODA2MGRmZDBiNDlmNzJjYTBmOGRkMWZkYTAzZDQ3ZjYuLmQyNTY2Yjg2ZDU2NDAwMmNlYzcx
OTE2YTRmZTJmMzEyM2M0ODRjMjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2Vm
aWxlLmxpc3QuYW0KKysrIGIvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQpAQCAt
NTU2NSw2ICs1NTY1LDggQEAgd2ViY29yZV9wbGF0Zm9ybV9zb3VyY2VzICs9IFwKIAlTb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9UZXh0UmVuZGVyaW5nTW9kZS5oIFwKIAlTb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9UZXh0UnVuLmNwcCBcCiAJU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvVGV4dFJ1bi5oIFwKKwlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9UZXh0VHJhY2tSZXByZXNlbnRhdGlvbi5jcHAgXAorCVNvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL1RleHRUcmFja1JlcHJlc2VudGF0aW9uLmggXAogCVNvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL1RpbGVkQmFja2luZy5oIFwKIAlTb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy90cmFuc2Zvcm1zL0FmZmluZVRyYW5zZm9ybS5jcHAgXAogCVNvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RyYW5zZm9ybXMvQWZmaW5lVHJhbnNmb3JtLmgg
XApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaSBiL1NvdXJjZS9XZWJDb3Jl
L1RhcmdldC5wcmkKaW5kZXggNzU1M2NhOWU5MDVjMGM1N2M4YTYxMzU0Njg1ZjI5ZjgwNmYzYmZm
Yy4uNTAyM2FlYWE0Y2RkYmE0MDc4OTAxYjEyMzk0MThiNjAzMThjYTMwNCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQorKysgYi9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJp
CkBAIC0xMDEyLDYgKzEwMTIsNyBAQCBTT1VSQ0VTICs9IFwKICAgICBwbGF0Zm9ybS9ncmFwaGlj
cy9zdXJmYWNlcy9xdC9HcmFwaGljc1N1cmZhY2VRdC5jcHAgXAogICAgIHBsYXRmb3JtL2dyYXBo
aWNzL1N1cnJvZ2F0ZVBhaXJBd2FyZVRleHRJdGVyYXRvci5jcHAgXAogICAgIHBsYXRmb3JtL2dy
YXBoaWNzL1RleHRSdW4uY3BwIFwKKyAgICBwbGF0Zm9ybS9ncmFwaGljcy9UZXh0VHJhY2tSZXBy
ZXNlbnRhdGlvbi5jcHAgXAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL1RpbGVkQmFja2luZ1N0b3Jl
LmNwcCBcCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvdHJhbnNmb3Jtcy9BZmZpbmVUcmFuc2Zvcm0u
Y3BwIFwKICAgICBwbGF0Zm9ybS9ncmFwaGljcy90cmFuc2Zvcm1zL1RyYW5zZm9ybWF0aW9uTWF0
cml4LmNwcCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkgYi9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKaW5kZXggN2M5NDRmNTA0Zjk5MTNmMDdkM2NlNDVkNWY0
MWIzYzBlYzVkZDRhNC4uMzNmMjYzODE4ODhmYjIzNmY2NjNiZDhiMjY5OTAwOGNhMTU2YjllZCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCisrKyBiL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUuZ3lwaQpAQCAtMzczNSw2ICszNzM1LDggQEAKICAgICAgICAgICAgICdwbGF0
Zm9ybS9ncmFwaGljcy9TdXJyb2dhdGVQYWlyQXdhcmVUZXh0SXRlcmF0b3IuY3BwJywKICAgICAg
ICAgICAgICdwbGF0Zm9ybS9ncmFwaGljcy9TdXJyb2dhdGVQYWlyQXdhcmVUZXh0SXRlcmF0b3Iu
aCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vZ3JhcGhpY3MvVGV4dFJ1bi5jcHAnLAorICAgICAg
ICAgICAgJ3BsYXRmb3JtL2dyYXBoaWNzL1RleHRUcmFja1JlcHJlc2VudGF0aW9uLmNwcCcsCisg
ICAgICAgICAgICAncGxhdGZvcm0vZ3JhcGhpY3MvVGV4dFRyYWNrUmVwcmVzZW50YXRpb24uaCcs
CiAgICAgICAgICAgICAncGxhdGZvcm0vZ3JhcGhpY3MvVGlsZS5oJywKICAgICAgICAgICAgICdw
bGF0Zm9ybS9ncmFwaGljcy9UaWxlZEJhY2tpbmdTdG9yZS5jcHAnLAogICAgICAgICAgICAgJ3Bs
YXRmb3JtL2dyYXBoaWNzL1RpbGVkQmFja2luZ1N0b3JlLmgnLApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2ogYi9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagppbmRleCA3N2Q0M2IzOTFjYTVkOWY0MjZmYjAy
MTU5ZThlZGExZTI2YzYzZGU0Li41YzFkNjNkMGRiNGVmODc5ZDc3ZGE3Njg2YjcxNzA2ZDQwODQ3
MmIxIDEwMDc1NQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZj
cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagpA
QCAtMjk4MDksNiArMjk4MDksMTQgQEAKIAkJCQkJPgogCQkJCTwvRmlsZT4KIAkJCQk8RmlsZQor
CQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHBsYXRmb3JtXGdyYXBoaWNzXFRleHRUcmFja1JlcHJlc2Vu
dGF0aW9uLmNwcCIKKwkJCQkJPgorCQkJCTwvRmlsZT4KKwkJCQk8RmlsZQorCQkJCQlSZWxhdGl2
ZVBhdGg9Ii4uXHBsYXRmb3JtXGdyYXBoaWNzXFRleHRUcmFja1JlcHJlc2VudGF0aW9uLmgiCisJ
CQkJCT4KKwkJCQk8L0ZpbGU+CisJCQkJPEZpbGUKIAkJCQkJUmVsYXRpdmVQYXRoPSIuLlxwbGF0
Zm9ybVxncmFwaGljc1xVbml0QmV6aWVyLmgiCiAJCQkJCT4KIAkJCQk8L0ZpbGU+CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggMDc4
NDViNzY3M2UwNzI4ZmRlN2Q4MDYxN2Q2NDJiMDc5NDUyZjNkMS4uZDJkMDU3YjNjODU5YzJmOTYz
MTY3Yzg5NTZhMmEzMWJlZWMwNWRmNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNTkxNCw2ICs1OTE0LDcgQEAKIAkJQ0NDMkI1
MTYxNUY2MTMwNjAwNDhDREQ2IC8qIERldmljZUNvbnRyb2xsZXIuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENDQzJCNTEyMTVGNjEzMDYwMDQ4Q0RENiAv
KiBEZXZpY2VDb250cm9sbGVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKIAkJQ0QxMjdERUQxNEYzMDk3RDAwRTg0Nzc5IC8qIFdlYkNvcmVGdWxsU2Ny
ZWVuV2luZG93Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gQ0QxMjdERUIxNEYzMDk3OTAwRTg0Nzc5IC8qIFdlYkNvcmVGdWxsU2NyZWVuV2luZG93Lm1t
ICovOyB9OwogCQlDRDEyN0RFRTE0RjMwOTg0MDBFODQ3NzkgLyogV2ViQ29yZUZ1bGxTY3JlZW5X
aW5kb3cuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENE
MTI3REVBMTRGMzA5NzkwMEU4NDc3OSAvKiBXZWJDb3JlRnVsbFNjcmVlbldpbmRvdy5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCUNEMUU3MzQ3MTY3
QkM3OEUwMDlBODg1RCAvKiBUZXh0VHJhY2tSZXByZXNlbnRhdGlvbi5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDFFNzM0NjE2N0JDNzhFMDA5QTg4
NUQgLyogVGV4dFRyYWNrUmVwcmVzZW50YXRpb24uY3BwICovOyB9OwogCQlDRDI3RjZFNTE0NTc2
ODVBMDA3ODIwN0QgLyogSlNNZWRpYUNvbnRyb2xsZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0QyN0Y2RTIxNDU3Njc1ODAwNzgyMDdEIC8qIEpT
TWVkaWFDb250cm9sbGVyLmNwcCAqLzsgfTsKIAkJQ0QyN0Y2RTcxNDU3NzBEMzAwNzgyMDdEIC8q
IE1lZGlhQ29udHJvbGxlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBDRDI3RjZFNjE0NTc3MEQzMDA3ODIwN0QgLyogTWVkaWFDb250cm9sbGVyLmNw
cCAqLzsgfTsKIAkJQ0QzN0IzOTgxNUMxQjk3MTAwNkRDODk4IC8qIERpYWdub3N0aWNMb2dnaW5n
S2V5cy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBD
RDM3QjM3NDE1QzFBN0UxMDA2REM4OTggLyogRGlhZ25vc3RpY0xvZ2dpbmdLZXlzLmNwcCAqLzsg
fTsKQEAgLTEzMzM4LDYgKzEzMzM5LDcgQEAKIAkJQ0NDMkI1MTIxNUY2MTMwNjAwNDhDREQ2IC8q
IERldmljZUNvbnRyb2xsZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRGV2
aWNlQ29udHJvbGxlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDRDEyN0RFQTE0
RjMwOTc5MDBFODQ3NzkgLyogV2ViQ29yZUZ1bGxTY3JlZW5XaW5kb3cuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViQ29yZUZ1bGxTY3JlZW5XaW5kb3cuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0QxMjdERUIxNEYzMDk3OTAwRTg0Nzc5IC8qIFdlYkNvcmVG
dWxsU2NyZWVuV2luZG93Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRo
ID0gV2ViQ29yZUZ1bGxTY3JlZW5XaW5kb3cubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCUNEMUU3MzQ2MTY3QkM3OEUwMDlBODg1RCAvKiBUZXh0VHJhY2tSZXByZXNlbnRhdGlvbi5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBUZXh0VHJhY2tSZXByZXNl
bnRhdGlvbi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNEMjdGNkUwMTQ1NzVD
MUIwMDc4MjA3RCAvKiBNZWRpYUNvbnRyb2xsZXIuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IE1lZGlhQ29udHJvbGxlci5p
ZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNEMjdGNkUyMTQ1NzY3NTgwMDc4MjA3
RCAvKiBKU01lZGlhQ29udHJvbGxlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBKU01lZGlhQ29udHJvbGxlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCUNEMjdGNkUzMTQ1NzY3NTgwMDc4MjA3RCAvKiBKU01lZGlhQ29udHJvbGxlci5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU01lZGlhQ29udHJvbGxlci5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTMzNzIsNiArMTMzNzQsNyBAQAogCQlDREM2OUREODE2
MzcxRkQzMDA3QzM4REYgLyogV2ViQ29yZUZ1bGxTY3JlZW5QbGFjZWhvbGRlclZpZXcuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViQ29yZUZ1bGxTY3JlZW5QbGFjZWhvbGRl
clZpZXcuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0RDNjlERDkxNjM3MUZEMzAw
N0MzOERGIC8qIFdlYkNvcmVGdWxsU2NyZWVuUGxhY2Vob2xkZXJWaWV3Lm1tICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gV2ViQ29yZUZ1bGxTY3JlZW5QbGFjZWhvbGRl
clZpZXcubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNEQ0U1Q0QwMTQ2MzNCQzkw
MEQ0N0NDQSAvKiBFdmVudFRhcmdldEZhY3RvcnkuaW4gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0g
RXZlbnRUYXJnZXRGYWN0b3J5LmluOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDREQx
RTUyNTE2N0JBNTY0MDBDRTgyMEIgLyogVGV4dFRyYWNrUmVwcmVzZW50YXRpb24uaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVGV4dFRyYWNrUmVwcmVzZW50YXRpb24uaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0RFQTc2MkMxNDYwODIyNDAwOEIzMUYxIC8qIENs
b2NrLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENsb2NrLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNERUE3NjJFMTQ2MDg0REUwMDhCMzFGMSAvKiBQbGF0Zm9y
bUNsb2NrQ0EuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUGxhdGZv
cm1DbG9ja0NBLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0RFQTc2MkYxNDYw
ODRFRTAwOEIzMUYxIC8qIFBsYXRmb3JtQ2xvY2tDQS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBQbGF0Zm9ybUNsb2NrQ0EuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
QEAgLTIwMjA3LDYgKzIwMjEwLDggQEAKIAkJCQkwODdFMEFGNDEzNjA2RDBCMDBGQTRCQTggLyog
U1ZHR2x5cGguY3BwICovLAogCQkJCTA4N0UwQUY1MTM2MDZEMEIwMEZBNEJBOCAvKiBTVkdHbHlw
aC5oICovLAogCQkJCTkzMEZDNjg5MTA3MkI5MjgwMDQ1MjkzRSAvKiBUZXh0UmVuZGVyaW5nTW9k
ZS5oICovLAorCQkJCUNERDFFNTI1MTY3QkE1NjQwMENFODIwQiAvKiBUZXh0VHJhY2tSZXByZXNl
bnRhdGlvbi5oICovLAorCQkJCUNEMUU3MzQ2MTY3QkM3OEUwMDlBODg1RCAvKiBUZXh0VHJhY2tS
ZXByZXNlbnRhdGlvbi5jcHAgKi8sCiAJCQkJMzc2RENDRTAxM0I0Rjk2NjAwMkVCRUZDIC8qIFRl
eHRSdW4uY3BwICovLAogCQkJCUE4MjRCNDY0MEUyRUYyRUEwMDgxQTdCNyAvKiBUZXh0UnVuLmgg
Ki8sCiAJCQkJMUFGODlBNDExNTE4RkRFQTAwRTU0N0I1IC8qIFRpbGVkQmFja2luZy5oICovLApA
QCAtMjg5ODcsNiArMjg5OTIsNyBAQAogCQkJCUQ2NDg5RDI1MTY2RkZDRjEwMDdDMDMxQiAvKiBK
U0hUTUxUZW1wbGF0ZUVsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRDZGNzk2MEQxNjZG
RkVDRTAwNzZERDE4IC8qIEpTSFRNTFRlbXBsYXRlRWxlbWVudEN1c3RvbS5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQkzMUQ1OTFCQjE2NkMyRTZDMDBFNkJGMDIgLyogUGx1Z0luT3JpZ2luSGFzaC5j
cHAgaW4gU291cmNlcyAqLywKKwkJCQlDRDFFNzM0NzE2N0JDNzhFMDA5QTg4NUQgLyogVGV4dFRy
YWNrUmVwcmVzZW50YXRpb24uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZv
ckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MTWVkaWFFbGVtZW50LmNwcAppbmRleCBhMzRkZTg3Nzg4MGQzODY3NjQ2OWRlYzdlZmEyZTUw
NGE3Yjk3ODYzLi44NjBjYzI2MmM1ZDcyMjA1MWUyODFhNzcwYzNjMWRjNzIxYjM2ZTA4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKQEAgLTM5MDEsNiArMzkwMSwx
OSBAQCBib29sIEhUTUxNZWRpYUVsZW1lbnQ6OndpbGxSZXNwb25kVG9Nb3VzZUNsaWNrRXZlbnRz
KCkKICNlbmRpZgogfQogCisjaWYgRU5BQkxFKFZJREVPX1RSQUNLKQorYm9vbCBIVE1MTWVkaWFF
bGVtZW50OjpyZXF1aXJlc1RleHRUcmFja1JlcHJlc2VudGF0aW9uKCkgY29uc3QKK3sKKyAgICBy
ZXR1cm4gbV9wbGF5ZXIgPyBtX3BsYXllci0+cmVxdWlyZXNUZXh0VHJhY2tSZXByZXNlbnRhdGlv
bigpIDogMDsKK30KKwordm9pZCBIVE1MTWVkaWFFbGVtZW50OjpzZXRUZXh0VHJhY2tSZXByZXNl
bnRhdGlvbihUZXh0VHJhY2tSZXByZXNlbnRhdGlvbiogcmVwcmVzZW50YXRpb24pCit7CisgICAg
aWYgKG1fcGxheWVyKQorICAgICAgICBtX3BsYXllci0+c2V0VGV4dFRyYWNrUmVwcmVzZW50YXRp
b24ocmVwcmVzZW50YXRpb24pOworfQorI2VuZGlmIC8vIEVOQUJMRShWSURFT19UUkFDSykKKwog
I2lmIEVOQUJMRShQTFVHSU5fUFJPWFlfRk9SX1ZJREVPKQogCiB2b2lkIEhUTUxNZWRpYUVsZW1l
bnQ6OmVuc3VyZU1lZGlhUGxheWVyKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTE1lZGlhRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50
LmgKaW5kZXggZjQ1NGY4Y2I0MjhmNjkxYmI0NWJjMDk2N2M0ZjlmMDM2OGMwM2VhYi4uNzY2MDM4
MmI4MDQ1NmVlYjU2NDc3ZjllMjE5N2M3MTRlNTk0NTljNiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MTWVkaWFFbGVtZW50LmgKQEAgLTI2NCw2ICsyNjQsOSBAQCBwdWJsaWM6CiAgICAgdmlydHVh
bCB2b2lkIHRleHRUcmFja1JlbW92ZUN1ZXMoVGV4dFRyYWNrKiwgY29uc3QgVGV4dFRyYWNrQ3Vl
TGlzdCopOwogICAgIHZpcnR1YWwgdm9pZCB0ZXh0VHJhY2tBZGRDdWUoVGV4dFRyYWNrKiwgUGFz
c1JlZlB0cjxUZXh0VHJhY2tDdWU+KTsKICAgICB2aXJ0dWFsIHZvaWQgdGV4dFRyYWNrUmVtb3Zl
Q3VlKFRleHRUcmFjayosIFBhc3NSZWZQdHI8VGV4dFRyYWNrQ3VlPik7CisKKyAgICBib29sIHJl
cXVpcmVzVGV4dFRyYWNrUmVwcmVzZW50YXRpb24oKSBjb25zdDsKKyAgICB2b2lkIHNldFRleHRU
cmFja1JlcHJlc2VudGF0aW9uKFRleHRUcmFja1JlcHJlc2VudGF0aW9uKik7CiAjZW5kaWYKIAog
I2lmIEVOQUJMRShQTFVHSU5fUFJPWFlfRk9SX1ZJREVPKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaHRtbC9zaGFkb3cvTWVkaWFDb250cm9sRWxlbWVudHMuY3BwIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9zaGFkb3cvTWVkaWFDb250cm9sRWxlbWVudHMuY3BwCmluZGV4IDhiOGU3M2YxMWQ4
MTA4MWY5NmFlZjlkYmQ1Y2E4YjBlNjZjMjYzMDIuLmU3MjlkMDlhNWVmYjBjOGE1OTk2YWY1Njk5
MjU5MTJkZTE0ZThkMzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01l
ZGlhQ29udHJvbEVsZW1lbnRzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9N
ZWRpYUNvbnRyb2xFbGVtZW50cy5jcHAKQEAgLTM3LDYgKzM3LDcgQEAKICNpbmNsdWRlICJFdmVu
dFRhcmdldC5oIgogI2luY2x1ZGUgIkZsb2F0Q29udmVyc2lvbi5oIgogI2luY2x1ZGUgIkZyYW1l
LmgiCisjaW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0LmgiCiAjaW5jbHVkZSAiSFRNTFZpZGVvRWxl
bWVudC5oIgogI2luY2x1ZGUgIkxhbmd1YWdlLmgiCiAjaW5jbHVkZSAiTG9jYWxpemVkU3RyaW5n
cy5oIgpAQCAtNDQsMTAgKzQ1LDEyIEBACiAjaW5jbHVkZSAiTW91c2VFdmVudC5oIgogI2luY2x1
ZGUgIlBhZ2UuaCIKICNpbmNsdWRlICJQYWdlR3JvdXAuaCIKKyNpbmNsdWRlICJSZW5kZXJMYXll
ci5oIgogI2luY2x1ZGUgIlJlbmRlck1lZGlhQ29udHJvbEVsZW1lbnRzLmgiCiAjaW5jbHVkZSAi
UmVuZGVyU2xpZGVyLmgiCiAjaW5jbHVkZSAiUmVuZGVyVGhlbWUuaCIKICNpbmNsdWRlICJSZW5k
ZXJWaWRlby5oIgorI2luY2x1ZGUgIlJlbmRlclZpZXcuaCIKICNpbmNsdWRlICJTZXR0aW5ncy5o
IgogI2lmIEVOQUJMRShWSURFT19UUkFDSykKICNpbmNsdWRlICJUZXh0VHJhY2suaCIKQEAgLTEy
ODMsMjYgKzEyODYsOTkgQEAgdm9pZCBNZWRpYUNvbnRyb2xUZXh0VHJhY2tDb250YWluZXJFbGVt
ZW50Ojp1cGRhdGVEaXNwbGF5KCkKIAogICAgIC8vIDExLiBSZXR1cm4gb3V0cHV0LgogICAgIGhh
c0NoaWxkTm9kZXMoKSA/IHNob3coKSA6IGhpZGUoKTsKKworICAgIGlmIChoYXNDaGlsZE5vZGVz
KCkpIHsKKyAgICAgICAgaWYgKG1lZGlhRWxlbWVudC0+cmVxdWlyZXNUZXh0VHJhY2tSZXByZXNl
bnRhdGlvbigpKSB7CisgICAgICAgICAgICBpZiAoIW1fdGV4dFRyYWNrUmVwcmVzZW50YXRpb24p
CisgICAgICAgICAgICAgICAgbV90ZXh0VHJhY2tSZXByZXNlbnRhdGlvbiA9IFRleHRUcmFja1Jl
cHJlc2VudGF0aW9uOjpjcmVhdGUodGhpcyk7CisgICAgICAgICAgICBtZWRpYUVsZW1lbnQtPnNl
dFRleHRUcmFja1JlcHJlc2VudGF0aW9uKG1fdGV4dFRyYWNrUmVwcmVzZW50YXRpb24uZ2V0KCkp
OworCisgICAgICAgICAgICBpZiAoUGFnZSogcGFnZSA9IGRvY3VtZW50KCktPnBhZ2UoKSkKKyAg
ICAgICAgICAgICAgICBtX3RleHRUcmFja1JlcHJlc2VudGF0aW9uLT5zZXRDb250ZW50U2NhbGUo
cGFnZS0+ZGV2aWNlU2NhbGVGYWN0b3IoKSk7CisKKyAgICAgICAgICAgIG1fdGV4dFRyYWNrUmVw
cmVzZW50YXRpb24tPnVwZGF0ZSgpOworICAgICAgICAgICAgc2V0SW5saW5lU3R5bGVQcm9wZXJ0
eShDU1NQcm9wZXJ0eVdpZHRoLCBTdHJpbmc6Om51bWJlcihtX3ZpZGVvRGlzcGxheVNpemUuc2l6
ZSgpLndpZHRoKCkpICsgInB4Iik7CisgICAgICAgICAgICBzZXRJbmxpbmVTdHlsZVByb3BlcnR5
KENTU1Byb3BlcnR5SGVpZ2h0LCBTdHJpbmc6Om51bWJlcihtX3ZpZGVvRGlzcGxheVNpemUuc2l6
ZSgpLmhlaWdodCgpKSArICJweCIpOworICAgICAgICB9CisgICAgfSBlbHNlIHsKKyAgICAgICAg
bV90ZXh0VHJhY2tSZXByZXNlbnRhdGlvbiA9IDA7CisgICAgICAgIG1lZGlhRWxlbWVudC0+c2V0
VGV4dFRyYWNrUmVwcmVzZW50YXRpb24oMCk7CisgICAgICAgIHJlbW92ZUlubGluZVN0eWxlUHJv
cGVydHkoQ1NTUHJvcGVydHlXaWR0aCk7CisgICAgICAgIHJlbW92ZUlubGluZVN0eWxlUHJvcGVy
dHkoQ1NTUHJvcGVydHlIZWlnaHQpOworICAgIH0KIH0KIAogdm9pZCBNZWRpYUNvbnRyb2xUZXh0
VHJhY2tDb250YWluZXJFbGVtZW50Ojp1cGRhdGVTaXplcygpCiB7CiAgICAgSFRNTE1lZGlhRWxl
bWVudCogbWVkaWFFbGVtZW50ID0gdG9QYXJlbnRNZWRpYUVsZW1lbnQodGhpcyk7Ci0gICAgaWYg
KCFtZWRpYUVsZW1lbnQgfHwgIW1lZGlhRWxlbWVudC0+cmVuZGVyZXIoKSB8fCAhbWVkaWFFbGVt
ZW50LT5yZW5kZXJlcigpLT5pc1ZpZGVvKCkpCisgICAgaWYgKCFtZWRpYUVsZW1lbnQpCiAgICAg
ICAgIHJldHVybjsKIAogICAgIGlmICghZG9jdW1lbnQoKS0+cGFnZSgpKQogICAgICAgICByZXR1
cm47CiAKLSAgICBJbnRSZWN0IHZpZGVvQm94ID0gdG9SZW5kZXJWaWRlbyhtZWRpYUVsZW1lbnQt
PnJlbmRlcmVyKCkpLT52aWRlb0JveCgpOworICAgIEludFJlY3QgdmlkZW9Cb3g7CisKKyAgICBp
ZiAobV90ZXh0VHJhY2tSZXByZXNlbnRhdGlvbikKKyAgICAgICAgdmlkZW9Cb3ggPSBtX3RleHRU
cmFja1JlcHJlc2VudGF0aW9uLT5ib3VuZHMoKTsKKyAgICBlbHNlIHsKKyAgICAgICAgaWYgKCFt
ZWRpYUVsZW1lbnQtPnJlbmRlcmVyKCkgfHwgIW1lZGlhRWxlbWVudC0+cmVuZGVyZXIoKS0+aXNW
aWRlbygpKQorICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB2aWRlb0JveCA9IHRvUmVuZGVy
VmlkZW8obWVkaWFFbGVtZW50LT5yZW5kZXJlcigpKS0+dmlkZW9Cb3goKTsKKyAgICB9CiAKLSAg
ICBmbG9hdCBmb250U2l6ZSA9IHZpZGVvQm94LnNpemUoKS5oZWlnaHQoKSAqIChkb2N1bWVudCgp
LT5wYWdlKCktPmdyb3VwKCkuY2FwdGlvbkZvbnRTaXplU2NhbGUoKSk7CisgICAgaWYgKG1fdmlk
ZW9EaXNwbGF5U2l6ZSA9PSB2aWRlb0JveCkKKyAgICAgICAgcmV0dXJuOworICAgIG1fdmlkZW9E
aXNwbGF5U2l6ZSA9IHZpZGVvQm94OworCisgICAgaWYgKG1fdGV4dFRyYWNrUmVwcmVzZW50YXRp
b24pIHsKKyAgICAgICAgc2V0SW5saW5lU3R5bGVQcm9wZXJ0eShDU1NQcm9wZXJ0eVdpZHRoLCBT
dHJpbmc6Om51bWJlcihtX3ZpZGVvRGlzcGxheVNpemUuc2l6ZSgpLndpZHRoKCkpICsgInB4Iik7
CisgICAgICAgIHNldElubGluZVN0eWxlUHJvcGVydHkoQ1NTUHJvcGVydHlIZWlnaHQsIFN0cmlu
Zzo6bnVtYmVyKG1fdmlkZW9EaXNwbGF5U2l6ZS5zaXplKCkuaGVpZ2h0KCkpICsgInB4Iik7Cisg
ICAgfQorCisgICAgZmxvYXQgc21hbGxlc3REaW1lbnNpb24gPSBzdGQ6Om1pbihtX3ZpZGVvRGlz
cGxheVNpemUuc2l6ZSgpLmhlaWdodCgpLCBtX3ZpZGVvRGlzcGxheVNpemUuc2l6ZSgpLndpZHRo
KCkpOworCisgICAgZmxvYXQgZm9udFNpemUgPSBzbWFsbGVzdERpbWVuc2lvbiAqIChkb2N1bWVu
dCgpLT5wYWdlKCktPmdyb3VwKCkuY2FwdGlvbkZvbnRTaXplU2NhbGUoKSk7CiAgICAgaWYgKGZv
bnRTaXplICE9IG1fZm9udFNpemUpIHsKICAgICAgICAgbV9mb250U2l6ZSA9IGZvbnRTaXplOwog
ICAgICAgICBzZXRJbmxpbmVTdHlsZVByb3BlcnR5KENTU1Byb3BlcnR5Rm9udFNpemUsIFN0cmlu
Zzo6bnVtYmVyKGZvbnRTaXplKSArICJweCIpOwogICAgIH0KIH0KIAordm9pZCBNZWRpYUNvbnRy
b2xUZXh0VHJhY2tDb250YWluZXJFbGVtZW50OjpwYWludFRleHRUcmFja1JlcHJlc2VudGF0aW9u
KEdyYXBoaWNzQ29udGV4dCogY29udGV4dCwgY29uc3QgSW50UmVjdCYgY29udGV4dFJlY3QpCit7
CisgICAgaWYgKCFoYXNDaGlsZE5vZGVzKCkpCisgICAgICAgIHJldHVybjsKKworICAgIFJlbmRl
ck9iamVjdCogcmVuZGVyZXIgPSB0aGlzLT5yZW5kZXJlcigpOworICAgIGlmICghcmVuZGVyZXIp
CisgICAgICAgIHJldHVybjsKKworICAgIEZyYW1lKiBmcmFtZSA9IGRvY3VtZW50KCktPmZyYW1l
KCk7CisgICAgaWYgKCFmcmFtZSkKKyAgICAgICAgcmV0dXJuOworCisgICAgZG9jdW1lbnQoKS0+
dXBkYXRlTGF5b3V0KCk7CisKKyAgICBMYXlvdXRSZWN0IHRvcExldmVsUmVjdDsKKyAgICBJbnRS
ZWN0IHBhaW50aW5nUmVjdCA9IHBpeGVsU25hcHBlZEludFJlY3QocmVuZGVyZXItPnBhaW50aW5n
Um9vdFJlY3QodG9wTGV2ZWxSZWN0KSk7CisKKyAgICAvLyBUcmFuc2xhdGUgdGhlIHJlbmRlcmVy
IHBhaW50aW5nIHJlY3QgaW50byBncmFwaGljcyBjb250ZXh0IGNvb3JkaW5hdGVzLgorICAgIEZs
b2F0U2l6ZSB0cmFuc2xhdGlvbigtcGFpbnRpbmdSZWN0LngoKSwgLXBhaW50aW5nUmVjdC55KCkp
OworCisgICAgLy8gQnV0IGFuY2hvciB0byB0aGUgYm90dG9tIG9mIHRoZSBncmFwaGljcyBjb250
ZXh0IHJlY3QuCisgICAgdHJhbnNsYXRpb24uZXhwYW5kKG1heCgwLCBjb250ZXh0UmVjdC53aWR0
aCgpIC0gcGFpbnRpbmdSZWN0LndpZHRoKCkpLCBtYXgoMCwgY29udGV4dFJlY3QuaGVpZ2h0KCkg
LSBwYWludGluZ1JlY3QuaGVpZ2h0KCkpKTsKKworICAgIGNvbnRleHQtPnRyYW5zbGF0ZSh0cmFu
c2xhdGlvbik7CisKKyAgICBSZW5kZXJMYXllciogbGF5ZXIgPSBmcmFtZS0+Y29udGVudFJlbmRl
cmVyKCktPmxheWVyKCk7CisgICAgbGF5ZXItPnBhaW50KGNvbnRleHQsIHBhaW50aW5nUmVjdCwg
UGFpbnRCZWhhdmlvckZsYXR0ZW5Db21wb3NpdGluZ0xheWVycywgcmVuZGVyZXIsIDAsIFJlbmRl
ckxheWVyOjpQYWludExheWVyUGFpbnRpbmdDb21wb3NpdGluZ0FsbFBoYXNlcyk7Cit9CisKK3Zv
aWQgTWVkaWFDb250cm9sVGV4dFRyYWNrQ29udGFpbmVyRWxlbWVudDo6dGV4dFRyYWNrUmVwcmVz
ZW50YXRpb25Cb3VuZHNDaGFuZ2VkKGNvbnN0IEludFJlY3QmKQoreworICAgIHVwZGF0ZVNpemVz
KCk7Cit9CiAjZW5kaWYgLy8gRU5BQkxFKFZJREVPX1RSQUNLKQogCiAvLyAtLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9N
ZWRpYUNvbnRyb2xFbGVtZW50cy5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvTWVkaWFD
b250cm9sRWxlbWVudHMuaAppbmRleCA4OWM5YTAyNDc0NDhlMmJmMDk3MjBlYmRjZjNmZTY5YzVk
NWI4YTg0Li42ZjZjZDAzNGM3MTE5N2Q4ZWE0ZGU3ZWYwNzMwZGI1NzZhNzYyOGNiIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xFbGVtZW50cy5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01lZGlhQ29udHJvbEVsZW1lbnRzLmgKQEAg
LTMyLDYgKzMyLDcgQEAKIAogI2lmIEVOQUJMRShWSURFTykKICNpbmNsdWRlICJNZWRpYUNvbnRy
b2xFbGVtZW50VHlwZXMuaCIKKyNpbmNsdWRlICJUZXh0VHJhY2tSZXByZXNlbnRhdGlvbi5oIgog
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTQzMiw3ICs0MzMsNyBAQCBwcml2YXRlOgogCiAj
aWYgRU5BQkxFKFZJREVPX1RSQUNLKQogCi1jbGFzcyBNZWRpYUNvbnRyb2xUZXh0VHJhY2tDb250
YWluZXJFbGVtZW50IDogcHVibGljIE1lZGlhQ29udHJvbERpdkVsZW1lbnQgeworY2xhc3MgTWVk
aWFDb250cm9sVGV4dFRyYWNrQ29udGFpbmVyRWxlbWVudCA6IHB1YmxpYyBNZWRpYUNvbnRyb2xE
aXZFbGVtZW50LCBwdWJsaWMgVGV4dFRyYWNrUmVwcmVzZW50YXRpb25DbGllbnQgewogcHVibGlj
OgogICAgIHN0YXRpYyBQYXNzUmVmUHRyPE1lZGlhQ29udHJvbFRleHRUcmFja0NvbnRhaW5lckVs
ZW1lbnQ+IGNyZWF0ZShEb2N1bWVudCopOwogCkBAIC00NDYsNiArNDQ3LDEwIEBAIHByaXZhdGU6
CiAKICAgICB2aXJ0dWFsIFJlbmRlck9iamVjdCogY3JlYXRlUmVuZGVyZXIoUmVuZGVyQXJlbmEq
LCBSZW5kZXJTdHlsZSopOwogCisgICAgdmlydHVhbCB2b2lkIHBhaW50VGV4dFRyYWNrUmVwcmVz
ZW50YXRpb24oR3JhcGhpY3NDb250ZXh0KiwgY29uc3QgSW50UmVjdCYpIE9WRVJSSURFOworICAg
IHZpcnR1YWwgdm9pZCB0ZXh0VHJhY2tSZXByZXNlbnRhdGlvbkJvdW5kc0NoYW5nZWQoY29uc3Qg
SW50UmVjdCYpIE9WRVJSSURFOworICAgIE93blB0cjxUZXh0VHJhY2tSZXByZXNlbnRhdGlvbj4g
bV90ZXh0VHJhY2tSZXByZXNlbnRhdGlvbjsKKwogICAgIEludFJlY3QgbV92aWRlb0Rpc3BsYXlT
aXplOwogICAgIGZsb2F0IG1fZm9udFNpemU7CiAgICAgUmVmUHRyPEhUTUxFbGVtZW50PiBtX2N1
ZUNvbnRhaW5lcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L01lZGlhUGxheWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlh
UGxheWVyLmNwcAppbmRleCAwZTE5YjFmMDZjY2E1NGYxOWI0OGRkMTA1ZDQ0OTEzMzEwMzRmZDUw
Li5lMWRhMWViMDQzNjgyYzc4ZGVkYjY5NjQzODI5NWQzNGNiZTRkNTQxIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3BwCkBAIC0xMTI5LDYg
KzExMjksMTYgQEAgdm9pZCBNZWRpYVBsYXllcjo6cmVtb3ZlVGV4dFRyYWNrKFBhc3NSZWZQdHI8
SW5iYW5kVGV4dFRyYWNrUHJpdmF0ZT4gdHJhY2spCiAKICAgICBtX21lZGlhUGxheWVyQ2xpZW50
LT5tZWRpYVBsYXllckRpZFJlbW92ZVRyYWNrKHRyYWNrKTsKIH0KKworYm9vbCBNZWRpYVBsYXll
cjo6cmVxdWlyZXNUZXh0VHJhY2tSZXByZXNlbnRhdGlvbigpIGNvbnN0Cit7CisgICAgcmV0dXJu
IG1fcHJpdmF0ZS0+cmVxdWlyZXNUZXh0VHJhY2tSZXByZXNlbnRhdGlvbigpOworfQorCit2b2lk
IE1lZGlhUGxheWVyOjpzZXRUZXh0VHJhY2tSZXByZXNlbnRhdGlvbihUZXh0VHJhY2tSZXByZXNl
bnRhdGlvbiogcmVwcmVzZW50YXRpb24pCit7CisgICAgbV9wcml2YXRlLT5zZXRUZXh0VHJhY2tS
ZXByZXNlbnRhdGlvbihyZXByZXNlbnRhdGlvbik7Cit9CiAjZW5kaWYKIAogfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuaCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmgKaW5kZXggNzc2MTlkYjNh
OWZjMWMwMDNlYjM3MjcwMDkwZTYwOTRiMGUwNWY5Yi4uOTNiN2VmYTMwZjAyODQwYTViMDYzMzUy
NjFhM2ZhY2FhZWMxNDU4YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvTWVkaWFQbGF5ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9NZWRpYVBsYXllci5oCkBAIC02Miw2ICs2Miw3IEBAIGNsYXNzIERvY3VtZW50OwogY2xhc3Mg
R1N0cmVhbWVyR1dvcmxkOwogY2xhc3MgTWVkaWFQbGF5ZXJQcml2YXRlSW50ZXJmYWNlOwogY2xh
c3MgTWVkaWFTb3VyY2U7CitjbGFzcyBUZXh0VHJhY2tSZXByZXNlbnRhdGlvbjsKIAogLy8gU3Ry
dWN0dXJlIHRoYXQgd2lsbCBob2xkIGV2ZXJ5IG5hdGl2ZQogLy8gdHlwZXMgc3VwcG9ydGVkIGJ5
IHRoZSBjdXJyZW50IG1lZGlhIHBsYXllci4KQEAgLTIxMyw2ICsyMTQsOSBAQCBwdWJsaWM6CiAj
aWYgRU5BQkxFKFZJREVPX1RSQUNLKQogICAgIHZpcnR1YWwgdm9pZCBtZWRpYVBsYXllckRpZEFk
ZFRyYWNrKFBhc3NSZWZQdHI8SW5iYW5kVGV4dFRyYWNrUHJpdmF0ZT4pIHsgfQogICAgIHZpcnR1
YWwgdm9pZCBtZWRpYVBsYXllckRpZFJlbW92ZVRyYWNrKFBhc3NSZWZQdHI8SW5iYW5kVGV4dFRy
YWNrUHJpdmF0ZT4pIHsgfQorCisgICAgdmlydHVhbCB2b2lkIHRleHRUcmFja1JlcHJlc2VudGF0
aW9uQm91bmRzQ2hhbmdlZChjb25zdCBJbnRSZWN0JikgeyB9CisgICAgdmlydHVhbCB2b2lkIHBh
aW50VGV4dFRyYWNrUmVwcmVzZW50YXRpb24oR3JhcGhpY3NDb250ZXh0KiwgY29uc3QgSW50UmVj
dCYpIHsgfQogI2VuZGlmCiB9OwogCkBAIC00MzYsNiArNDQwLDkgQEAgcHVibGljOgogI2lmIEVO
QUJMRShWSURFT19UUkFDSykKICAgICB2b2lkIGFkZFRleHRUcmFjayhQYXNzUmVmUHRyPEluYmFu
ZFRleHRUcmFja1ByaXZhdGU+KTsKICAgICB2b2lkIHJlbW92ZVRleHRUcmFjayhQYXNzUmVmUHRy
PEluYmFuZFRleHRUcmFja1ByaXZhdGU+KTsKKworICAgIGJvb2wgcmVxdWlyZXNUZXh0VHJhY2tS
ZXByZXNlbnRhdGlvbigpIGNvbnN0OworICAgIHZvaWQgc2V0VGV4dFRyYWNrUmVwcmVzZW50YXRp
b24oVGV4dFRyYWNrUmVwcmVzZW50YXRpb24qKTsKICNlbmRpZgogCiBwcml2YXRlOgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXJQcml2YXRl
LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllclByaXZhdGUu
aAppbmRleCBkMzYwMTQ5YTA5YzZlMmEyMTQxYTc4M2EyNTAzNjg0ZGFlMjRmYmQ2Li5iNTdkZDBk
NTZiMTBjZjBhMDllMjc4Yzk4ZjQ3NjFjMTE0Mzk0MDNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllclByaXZhdGUuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllclByaXZhdGUuaApAQCAtMTg0LDYg
KzE4NCwxMCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBNZWRpYVBsYXllcjo6TWVkaWFLZXlFeGNl
cHRpb24gY2FuY2VsS2V5UmVxdWVzdChjb25zdCBTdHJpbmcmLCBjb25zdCBTdHJpbmcmKSB7IHJl
dHVybiBNZWRpYVBsYXllcjo6S2V5U3lzdGVtTm90U3VwcG9ydGVkOyB9CiAjZW5kaWYKIAorI2lm
IEVOQUJMRShWSURFT19UUkFDSykKKyAgICB2aXJ0dWFsIGJvb2wgcmVxdWlyZXNUZXh0VHJhY2tS
ZXByZXNlbnRhdGlvbigpIGNvbnN0IHsgcmV0dXJuIDA7IH0KKyAgICB2aXJ0dWFsIHZvaWQgc2V0
VGV4dFRyYWNrUmVwcmVzZW50YXRpb24oVGV4dFRyYWNrUmVwcmVzZW50YXRpb24qKSB7IH0KKyNl
bmRpZgogfTsKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvVGV4dFRyYWNrUmVwcmVzZW50YXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvVGV4dFRyYWNrUmVwcmVzZW50YXRpb24uY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjNjMzQyM2Jj
YjMyNWQwNjYwMDllNTk1ZTM2YzUzYTBlNDA3MDQ4NmMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9UZXh0VHJhY2tSZXByZXNlbnRhdGlvbi5jcHAK
QEAgLTAsMCArMSw1MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKworI2lm
IEVOQUJMRShWSURFT19UUkFDSykKKworI2luY2x1ZGUgIlRleHRUcmFja1JlcHJlc2VudGF0aW9u
LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgTnVsbFRleHRUcmFja1JlcHJlc2Vu
dGF0aW9uIDogcHVibGljIFRleHRUcmFja1JlcHJlc2VudGF0aW9uIHsKK3B1YmxpYzoKKyAgICB2
aXJ0dWFsIH5OdWxsVGV4dFRyYWNrUmVwcmVzZW50YXRpb24oKSB7IH0KKyAgICB2aXJ0dWFsIHZv
aWQgdXBkYXRlKCkgeyB9CisgICAgdmlydHVhbCBQbGF0Zm9ybUxheWVyKiBwbGF0Zm9ybUxheWVy
KCkgeyByZXR1cm4gMDsgfQorICAgIHZpcnR1YWwgdm9pZCBzZXRDb250ZW50U2NhbGUoZmxvYXQp
IHsgfQorICAgIHZpcnR1YWwgSW50UmVjdCBib3VuZHMoKSBjb25zdCB7IHJldHVybiBJbnRSZWN0
KCk7IH0KK307CisKK1Bhc3NPd25QdHI8VGV4dFRyYWNrUmVwcmVzZW50YXRpb24+IFRleHRUcmFj
a1JlcHJlc2VudGF0aW9uOjpjcmVhdGUoVGV4dFRyYWNrUmVwcmVzZW50YXRpb25DbGllbnQqKQor
eworICAgIHJldHVybiBXVEY6OmFkb3B0UHRyKG5ldyBOdWxsVGV4dFRyYWNrUmVwcmVzZW50YXRp
b24oKSk7Cit9CisKK30KKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9UZXh0VHJhY2tSZXByZXNlbnRhdGlvbi5oIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvVGV4dFRyYWNrUmVwcmVzZW50YXRpb24uaApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4y
YTRmNTI3NjA1N2NhMmQwYTE3OGRjOTI4MmIyN2EyOGFlYjM0ZDJiCi0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvVGV4dFRyYWNrUmVwcmVzZW50YXRp
b24uaApAQCAtMCwwICsxLDY0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisg
KiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICog
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBUZXh0VHJhY2tSZXBy
ZXNlbnRhdGlvbl9oCisjZGVmaW5lIFRleHRUcmFja1JlcHJlc2VudGF0aW9uX2gKKworI2lmIEVO
QUJMRShWSURFT19UUkFDSykKKworI2luY2x1ZGUgIkludFJlY3QuaCIKKyNpbmNsdWRlICJQbGF0
Zm9ybUxheWVyLmgiCisjaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KKworbmFtZXNwYWNlIFdl
YkNvcmUgeworCitjbGFzcyBHcmFwaGljc0NvbnRleHQ7CitjbGFzcyBJbnRSZWN0OworCitjbGFz
cyBUZXh0VHJhY2tSZXByZXNlbnRhdGlvbkNsaWVudCB7CitwdWJsaWM6CisgICAgdmlydHVhbCB+
VGV4dFRyYWNrUmVwcmVzZW50YXRpb25DbGllbnQoKSB7IH0KKworICAgIHZpcnR1YWwgdm9pZCBw
YWludFRleHRUcmFja1JlcHJlc2VudGF0aW9uKEdyYXBoaWNzQ29udGV4dCosIGNvbnN0IEludFJl
Y3QmKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHRleHRUcmFja1JlcHJlc2VudGF0aW9uQm91bmRz
Q2hhbmdlZChjb25zdCBJbnRSZWN0JikgPSAwOworfTsKKworY2xhc3MgVGV4dFRyYWNrUmVwcmVz
ZW50YXRpb24geworcHVibGljOgorICAgIHN0YXRpYyBQYXNzT3duUHRyPFRleHRUcmFja1JlcHJl
c2VudGF0aW9uPiBjcmVhdGUoVGV4dFRyYWNrUmVwcmVzZW50YXRpb25DbGllbnQqKTsKKworICAg
IHZpcnR1YWwgflRleHRUcmFja1JlcHJlc2VudGF0aW9uKCkgeyB9CisKKyAgICB2aXJ0dWFsIHZv
aWQgdXBkYXRlKCkgPSAwOworICAgIHZpcnR1YWwgUGxhdGZvcm1MYXllciogcGxhdGZvcm1MYXll
cigpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0Q29udGVudFNjYWxlKGZsb2F0KSA9IDA7Cisg
ICAgdmlydHVhbCBJbnRSZWN0IGJvdW5kcygpIGNvbnN0ID0gMDsKK307CisKK30KKworI2VuZGlm
CisKKyNlbmRpZiAvLyBUZXh0VHJhY2tSZXByZXNlbnRhdGlvbl9oCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>179525</attachid>
            <date>2012-12-14 13:22:58 -0800</date>
            <delta_ts>2012-12-14 13:36:58 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-105052-20121214132018.patch</filename>
            <type>text/plain</type>
            <size>27322</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM3NzY0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYmUxMmFiZWVjZDQ3ZmYx
MDVkNWRlYTdlMzA4ZmVhN2EwODU1ZGMyMC4uZjEzODQzZjA1ZTUyYzczYzFhY2FiN2YwNjdlMDk5
YmVhMTA2ODAzZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY1IEBACisyMDEyLTEyLTE0ICBKZXIg
Tm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIEFsbG93IHRoZSB0ZXh0IHRy
YWNrIGNvbnRlbnRzIHRvIGJlIGRpc3BsYXllZCBleHRlcm5hbGx5IHRvIFdlYkNvcmUuCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDUwNTIKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBTdXBwb3J0IHNjZW5h
cmlvcyB3aGVyZSB0aGUgdGV4dCB0cmFjayBjb250ZW50cyBtdXN0IGJlIHJlbmRlcmVkIG91dHNp
ZGUgb2YgV2ViQ29yZSwgc3VjaCBhcyB0byBhbiBleHRlcm5hbAorICAgICAgICBkaXNwbGF5IG9y
IHdpbmRvdy4gIEFkZCBhbiBhYnN0cmFjdCBiYXNlIGNsYXNzIHdoaWNoIGVuY2Fwc3VsYXRlcyB0
aGUgZXh0ZXJuYWwgcmVwcmVzZW50YXRpb24gdG8gd2hpY2ggdGhlCisgICAgICAgIHRleHQgdHJh
Y2tzIHdpbGwgYmUgcmVuZGVyZWQuCisKKyAgICAgICAgQWRkIGEgbmV3IGFic3RyYWN0IGJhc2Ug
Y2xhc3MgYW5kIGNsaWVudCB0byB3cmFwIHRoZSBleHRlcm5hbCByZW5kZXJpbmcgb2YgYSBUZXh0
VHJhY2suCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvVGV4dFRyYWNrUmVwcmVzZW50YXRp
b24uaDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpUZXh0VHJhY2tSZXByZXNlbnRhdGlvbkNs
aWVudDo6flRleHRUcmFja1JlcHJlc2VudGF0aW9uQ2xpZW50KToKKyAgICAgICAgKFdlYkNvcmU6
OlRleHRUcmFja1JlcHJlc2VudGF0aW9uOjp+VGV4dFRyYWNrUmVwcmVzZW50YXRpb24pOgorCisg
ICAgICAgIEFkZCBhbiBlbXB0eSBjb25jcmV0ZSBpbXBsZW1lbnRhdGlvbiBmb3IgdGhvc2UgcG9y
dHMgd2hvIGRvIG5vdCB5ZXQgc3VwcG9ydCBleHRlcm5hbCBkaXNwbGF5IG9mIHN1YnRpdGxlcy4K
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9UZXh0VHJhY2tSZXByZXNlbnRhdGlvbi5jcHA6
IEFkZGVkLgorICAgICAgICAoTnVsbFRleHRUcmFja1JlcHJlc2VudGF0aW9uKToKKyAgICAgICAg
KFdlYkNvcmU6Ok51bGxUZXh0VHJhY2tSZXByZXNlbnRhdGlvbjo6fk51bGxUZXh0VHJhY2tSZXBy
ZXNlbnRhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpOdWxsVGV4dFRyYWNrUmVwcmVzZW50YXRp
b246OnVwZGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpOdWxsVGV4dFRyYWNrUmVwcmVzZW50YXRp
b246OnBsYXRmb3JtTGF5ZXIpOgorICAgICAgICAoV2ViQ29yZTo6TnVsbFRleHRUcmFja1JlcHJl
c2VudGF0aW9uOjpzZXRDb250ZW50U2NhbGUpOgorICAgICAgICAoV2ViQ29yZTo6TnVsbFRleHRU
cmFja1JlcHJlc2VudGF0aW9uOjpib3VuZHMpOgorICAgICAgICAoV2ViQ29yZTo6VGV4dFRyYWNr
UmVwcmVzZW50YXRpb246OmNyZWF0ZSk6CisKKyAgICAgICAgQWRkIG1ldGhvZHMgdG8gTWVkaWFQ
bGF5ZXJQcml2YXRlSU9TIHRvIGhhbmRsZSB0aGUgVGV4dFRyYWNrUmVwcmVzZW50YXRpb24uCisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvaW9zL01lZGlhUGxheWVyUHJpdmF0ZUlPUy5oOgor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2lvcy9NZWRpYVBsYXllclByaXZhdGVJT1MubW06
CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVJT1M6OmRlbGl2ZXJOb3RpZmlj
YXRpb24pOiBSZW1vdmUgdGhlIHJlcHJlc2VudGF0aW9uIHdoZW4gZXhpdGluZyBmdWxsIHNjcmVl
bi4KKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUlPUzo6cmVxdWlyZXNUZXh0
VHJhY2tSZXByZXNlbnRhdGlvbik6IFJldHVybiBZRVMgaWYgaW4gZnVsbCBzY3JlZW4gbW9kZS4K
KyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUlPUzo6c2V0VGV4dFRyYWNrUmVw
cmVzZW50YXRpb24pOiBQYXNzIHRoZSByZXByZXNlbnRhdGlvbidzIGxheWVyIHRvIHRoZSBwbGF5
ZXIgcGx1Zy1pbi4KKworICAgICAgICBFeHBvc2UgdGhvc2UgbWV0aG9kcyB2aWEgSFRNTE1lZGlh
RWxlbWVudDoKKyAgICAgICAgKiBodG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6cmVxdWlyZXNUZXh0VHJhY2tSZXByZXNlbnRhdGlv
bik6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjpzZXRUZXh0VHJhY2tSZXBy
ZXNlbnRhdGlvbik6CisgICAgICAgICogaHRtbC9IVE1MTWVkaWFFbGVtZW50Lmg6CisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
TWVkaWFQbGF5ZXI6OnJlcXVpcmVzVGV4dFRyYWNrUmVwcmVzZW50YXRpb24pOgorICAgICAgICAo
V2ViQ29yZTo6TWVkaWFQbGF5ZXI6OnNldFRleHRUcmFja1JlcHJlc2VudGF0aW9uKToKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5oOgorICAgICAgICAoV2ViQ29yZTo6
TWVkaWFQbGF5ZXJDbGllbnQ6OnRleHRUcmFja1JlcHJlc2VudGF0aW9uQm91bmRzQ2hhbmdlZCk6
CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllckNsaWVudDo6cGFpbnRUZXh0VHJhY2tSZXBy
ZXNlbnRhdGlvbik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXJQcml2
YXRlLmg6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVJbnRlcmZhY2U6OnJl
cXVpcmVzVGV4dFRyYWNrUmVwcmVzZW50YXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQ
bGF5ZXJQcml2YXRlSW50ZXJmYWNlOjpzZXRUZXh0VHJhY2tSZXByZXNlbnRhdGlvbik6CisKKyAg
ICAgICAgKiBodG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xFbGVtZW50cy5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpNZWRpYUNvbnRyb2xUZXh0VHJhY2tDb250YWluZXJFbGVtZW50Ojp1cGRhdGVEaXNw
bGF5KTogQ3JlYXRlIHRoZSByZXByZXNlbnRhdGlvbiwgaWYgbmVjZXNzYXJ5LgorICAgICAgICAo
V2ViQ29yZTo6TWVkaWFDb250cm9sVGV4dFRyYWNrQ29udGFpbmVyRWxlbWVudDo6dXBkYXRlU2l6
ZXMpOiBVc2UgdGhlIHJlcHJlc2VudGF0aW9uIHRvIGRldGVybWluZSB0aGUgZm9udCBzaXplLgor
ICAgICAgICAoV2ViQ29yZTo6TWVkaWFDb250cm9sVGV4dFRyYWNrQ29udGFpbmVyRWxlbWVudDo6
cGFpbnRUZXh0VHJhY2tSZXByZXNlbnRhdGlvbik6IEFkZGVkLiBQYWludCB0aGUgVGV4dFRyYWNr
IGludG8gdGhlIHByb3ZpZGVkIGdyYXBoaWNzIGNvbnRleHQuCisgICAgICAgIChXZWJDb3JlOjpN
ZWRpYUNvbnRyb2xUZXh0VHJhY2tDb250YWluZXJFbGVtZW50Ojp0ZXh0VHJhY2tSZXByZXNlbnRh
dGlvbkJvdW5kc0NoYW5nZWQpOiBBZGRlZC4gQ2FsbCB1cGRhdGVTaXplcygpLgorICAgICAgICAq
IGh0bWwvc2hhZG93L01lZGlhQ29udHJvbEVsZW1lbnRzLmg6CisKKyAgICAgICAgQWRkIHRoZSBu
ZXcgZmlsZXMgdG8gdGhlIHByb2plY3QuCisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qOgorICAgICAgICAqIEdOVW1ha2VmaWxlLmxpc3QuYW06CisgICAgICAgICog
VGFyZ2V0LnByaToKKyAgICAgICAgKiBXZWJDb3JlLmd5cGk6CisgICAgICAgICogV2ViQ29yZS52
Y3Byb2ovV2ViQ29yZS52Y3Byb2o6CisKIDIwMTItMTItMTQgIEFudG9uIFZheXZvZCAgPGF2YXl2
b2RAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFRleHQgQXV0b3NpemluZzogQ29uc2lkZXIgaW5s
aW5lLWJsb2NrIGFuZCBpbmxpbmUtdGFibGUgZWxlbWVudHMgdG8gYmUgYXV0b3NpemluZyBjbHVz
dGVycy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0gYi9T
b3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCmluZGV4IDM2MzU3MDVkZDc3ZjQ2Yjg4
NTFlOTUwM2E5NzM3Y2Y2NGM5YjkwMWYuLjUzZmNjOWVmN2RjNGEyZDNmNzgxNTJmZjViZDZlOTE2
YTM2NjlkNTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0K
KysrIGIvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQpAQCAtNTU3OSw2ICs1NTc5
LDggQEAgd2ViY29yZV9wbGF0Zm9ybV9zb3VyY2VzICs9IFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9UZXh0UmVuZGVyaW5nTW9kZS5oIFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9UZXh0UnVuLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvVGV4dFJ1bi5oIFwKKwlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9UZXh0
VHJhY2tSZXByZXNlbnRhdGlvbi5jcHAgXAorCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL1RleHRUcmFja1JlcHJlc2VudGF0aW9uLmggXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL1RpbGVkQmFja2luZy5oIFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy90cmFuc2Zvcm1zL0FmZmluZVRyYW5zZm9ybS5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL3RyYW5zZm9ybXMvQWZmaW5lVHJhbnNmb3JtLmggXApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaSBiL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkK
aW5kZXggODAzOTY3ZWNkN2MwYTlkZGIwZTMyYmFhYmVhODI0OGU1NzA0OThkYy4uMjZmNjkyODA4
NDE3OGQ4MWE2Yjc5NTA5NWE5ZjUxNmZkNzQ5NDJiYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvVGFyZ2V0LnByaQorKysgYi9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpCkBAIC0xMDA2LDYg
KzEwMDYsNyBAQCBTT1VSQ0VTICs9IFwKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9zdXJmYWNlcy9x
dC9HcmFwaGljc1N1cmZhY2VRdC5jcHAgXAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL1N1cnJvZ2F0
ZVBhaXJBd2FyZVRleHRJdGVyYXRvci5jcHAgXAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL1RleHRS
dW4uY3BwIFwKKyAgICBwbGF0Zm9ybS9ncmFwaGljcy9UZXh0VHJhY2tSZXByZXNlbnRhdGlvbi5j
cHAgXAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL1RpbGVkQmFja2luZ1N0b3JlLmNwcCBcCiAgICAg
cGxhdGZvcm0vZ3JhcGhpY3MvdHJhbnNmb3Jtcy9BZmZpbmVUcmFuc2Zvcm0uY3BwIFwKICAgICBw
bGF0Zm9ybS9ncmFwaGljcy90cmFuc2Zvcm1zL1RyYW5zZm9ybWF0aW9uTWF0cml4LmNwcCBcCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkgYi9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLmd5cGkKaW5kZXggMzZhODdhZjMxNmQ4Zjc3NTdiY2Y5MjU1ODRkOGE2NmVhZjc1ZDAz
Zi4uYmEwOGY1NTUxMDVmYWI3MDkwOTA4M2QwNjBjZmU5NjkyMzkyZTU5MyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
Z3lwaQpAQCAtMzc0Niw2ICszNzQ2LDggQEAKICAgICAgICAgICAgICdwbGF0Zm9ybS9ncmFwaGlj
cy9TdXJyb2dhdGVQYWlyQXdhcmVUZXh0SXRlcmF0b3IuY3BwJywKICAgICAgICAgICAgICdwbGF0
Zm9ybS9ncmFwaGljcy9TdXJyb2dhdGVQYWlyQXdhcmVUZXh0SXRlcmF0b3IuaCcsCiAgICAgICAg
ICAgICAncGxhdGZvcm0vZ3JhcGhpY3MvVGV4dFJ1bi5jcHAnLAorICAgICAgICAgICAgJ3BsYXRm
b3JtL2dyYXBoaWNzL1RleHRUcmFja1JlcHJlc2VudGF0aW9uLmNwcCcsCisgICAgICAgICAgICAn
cGxhdGZvcm0vZ3JhcGhpY3MvVGV4dFRyYWNrUmVwcmVzZW50YXRpb24uaCcsCiAgICAgICAgICAg
ICAncGxhdGZvcm0vZ3JhcGhpY3MvVGlsZS5oJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9ncmFw
aGljcy9UaWxlZEJhY2tpbmdTdG9yZS5jcHAnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL2dyYXBo
aWNzL1RpbGVkQmFja2luZ1N0b3JlLmgnLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJv
ai9XZWJDb3JlLnZjcHJvagppbmRleCA5MTIzMjgyOWUyYzg0MGJkNGY1Y2ZhMmYxMjE2OWI4OTlk
OTkyNjU2Li41ZTFmY2NlODg5MTFmNzAyMmFhNGVjOGQyYTFjZjFkMGRhNjUyZDEzIDEwMDc1NQot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagorKysgYi9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagpAQCAtMjk4NjksNiAr
Mjk4NjksMTQgQEAKIAkJCQkJPgogCQkJCTwvRmlsZT4KIAkJCQk8RmlsZQorCQkJCQlSZWxhdGl2
ZVBhdGg9Ii4uXHBsYXRmb3JtXGdyYXBoaWNzXFRleHRUcmFja1JlcHJlc2VudGF0aW9uLmNwcCIK
KwkJCQkJPgorCQkJCTwvRmlsZT4KKwkJCQk8RmlsZQorCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHBs
YXRmb3JtXGdyYXBoaWNzXFRleHRUcmFja1JlcHJlc2VudGF0aW9uLmgiCisJCQkJCT4KKwkJCQk8
L0ZpbGU+CisJCQkJPEZpbGUKIAkJCQkJUmVsYXRpdmVQYXRoPSIuLlxwbGF0Zm9ybVxncmFwaGlj
c1xVbml0QmV6aWVyLmgiCiAJCQkJCT4KIAkJCQk8L0ZpbGU+CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggMjcwZjYxNWFiMTVjYzQ3
NjUxZDJkNzRhNTIwMTg3NTkzYWE1OGMxNS4uMjA5MDMxNDYzYmQwZTgyMWE1ZGMzYjc3MzIzNmE3
ZTMyNTNmYmYzZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagpAQCAtNTkxOCw2ICs1OTE4LDcgQEAKIAkJQ0NDMkI1MTYxNUY2MTMwNjAw
NDhDREQ2IC8qIERldmljZUNvbnRyb2xsZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IENDQzJCNTEyMTVGNjEzMDYwMDQ4Q0RENiAvKiBEZXZpY2VDb250
cm9sbGVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
IAkJQ0QxMjdERUQxNEYzMDk3RDAwRTg0Nzc5IC8qIFdlYkNvcmVGdWxsU2NyZWVuV2luZG93Lm1t
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0QxMjdERUIx
NEYzMDk3OTAwRTg0Nzc5IC8qIFdlYkNvcmVGdWxsU2NyZWVuV2luZG93Lm1tICovOyB9OwogCQlD
RDEyN0RFRTE0RjMwOTg0MDBFODQ3NzkgLyogV2ViQ29yZUZ1bGxTY3JlZW5XaW5kb3cuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEMTI3REVBMTRGMzA5
NzkwMEU4NDc3OSAvKiBXZWJDb3JlRnVsbFNjcmVlbldpbmRvdy5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCUNEMUU3MzQ3MTY3QkM3OEUwMDlBODg1
RCAvKiBUZXh0VHJhY2tSZXByZXNlbnRhdGlvbi5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDFFNzM0NjE2N0JDNzhFMDA5QTg4NUQgLyogVGV4dFRy
YWNrUmVwcmVzZW50YXRpb24uY3BwICovOyB9OwogCQlDRDI3RjZFNTE0NTc2ODVBMDA3ODIwN0Qg
LyogSlNNZWRpYUNvbnRyb2xsZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gQ0QyN0Y2RTIxNDU3Njc1ODAwNzgyMDdEIC8qIEpTTWVkaWFDb250cm9s
bGVyLmNwcCAqLzsgfTsKIAkJQ0QyN0Y2RTcxNDU3NzBEMzAwNzgyMDdEIC8qIE1lZGlhQ29udHJv
bGxlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBD
RDI3RjZFNjE0NTc3MEQzMDA3ODIwN0QgLyogTWVkaWFDb250cm9sbGVyLmNwcCAqLzsgfTsKIAkJ
Q0QzN0IzOTgxNUMxQjk3MTAwNkRDODk4IC8qIERpYWdub3N0aWNMb2dnaW5nS2V5cy5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDM3QjM3NDE1QzFB
N0UxMDA2REM4OTggLyogRGlhZ25vc3RpY0xvZ2dpbmdLZXlzLmNwcCAqLzsgfTsKQEAgLTEzMzU2
LDYgKzEzMzU3LDcgQEAKIAkJQ0NDMkI1MTIxNUY2MTMwNjAwNDhDREQ2IC8qIERldmljZUNvbnRy
b2xsZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRGV2aWNlQ29udHJvbGxl
ci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDRDEyN0RFQTE0RjMwOTc5MDBFODQ3
NzkgLyogV2ViQ29yZUZ1bGxTY3JlZW5XaW5kb3cuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gV2ViQ29yZUZ1bGxTY3JlZW5XaW5kb3cuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJQ0QxMjdERUIxNEYzMDk3OTAwRTg0Nzc5IC8qIFdlYkNvcmVGdWxsU2NyZWVuV2lu
ZG93Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gV2ViQ29yZUZ1
bGxTY3JlZW5XaW5kb3cubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUNEMUU3MzQ2
MTY3QkM3OEUwMDlBODg1RCAvKiBUZXh0VHJhY2tSZXByZXNlbnRhdGlvbi5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBUZXh0VHJhY2tSZXByZXNlbnRhdGlvbi5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNEMjdGNkUwMTQ1NzVDMUIwMDc4MjA3RCAv
KiBNZWRpYUNvbnRyb2xsZXIuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RL
bm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IE1lZGlhQ29udHJvbGxlci5pZGw7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNEMjdGNkUyMTQ1NzY3NTgwMDc4MjA3RCAvKiBKU01lZGlh
Q29udHJvbGxlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU01l
ZGlhQ29udHJvbGxlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNEMjdGNkUz
MTQ1NzY3NTgwMDc4MjA3RCAvKiBKU01lZGlhQ29udHJvbGxlci5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBKU01lZGlhQ29udHJvbGxlci5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwpAQCAtMTMzOTAsNiArMTMzOTIsNyBAQAogCQlDREM2OUREODE2MzcxRkQzMDA3QzM4
REYgLyogV2ViQ29yZUZ1bGxTY3JlZW5QbGFjZWhvbGRlclZpZXcuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gV2ViQ29yZUZ1bGxTY3JlZW5QbGFjZWhvbGRlclZpZXcuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0RDNjlERDkxNjM3MUZEMzAwN0MzOERGIC8qIFdl
YkNvcmVGdWxsU2NyZWVuUGxhY2Vob2xkZXJWaWV3Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAub2JqY3BwOyBwYXRoID0gV2ViQ29yZUZ1bGxTY3JlZW5QbGFjZWhvbGRlclZpZXcubW07IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNEQ0U1Q0QwMTQ2MzNCQzkwMEQ0N0NDQSAvKiBF
dmVudFRhcmdldEZhY3RvcnkuaW4gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gRXZlbnRUYXJnZXRG
YWN0b3J5LmluOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDREQxRTUyNTE2N0JBNTY0
MDBDRTgyMEIgLyogVGV4dFRyYWNrUmVwcmVzZW50YXRpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gVGV4dFRyYWNrUmVwcmVzZW50YXRpb24uaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJQ0RFQTc2MkMxNDYwODIyNDAwOEIzMUYxIC8qIENsb2NrLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENsb2NrLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCUNERUE3NjJFMTQ2MDg0REUwMDhCMzFGMSAvKiBQbGF0Zm9ybUNsb2NrQ0EuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUGxhdGZvcm1DbG9ja0NBLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0RFQTc2MkYxNDYwODRFRTAwOEIzMUYx
IC8qIFBsYXRmb3JtQ2xvY2tDQS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQ
bGF0Zm9ybUNsb2NrQ0EuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTIwMjQyLDYg
KzIwMjQ1LDggQEAKIAkJCQkwODdFMEFGNDEzNjA2RDBCMDBGQTRCQTggLyogU1ZHR2x5cGguY3Bw
ICovLAogCQkJCTA4N0UwQUY1MTM2MDZEMEIwMEZBNEJBOCAvKiBTVkdHbHlwaC5oICovLAogCQkJ
CTkzMEZDNjg5MTA3MkI5MjgwMDQ1MjkzRSAvKiBUZXh0UmVuZGVyaW5nTW9kZS5oICovLAorCQkJ
CUNERDFFNTI1MTY3QkE1NjQwMENFODIwQiAvKiBUZXh0VHJhY2tSZXByZXNlbnRhdGlvbi5oICov
LAorCQkJCUNEMUU3MzQ2MTY3QkM3OEUwMDlBODg1RCAvKiBUZXh0VHJhY2tSZXByZXNlbnRhdGlv
bi5jcHAgKi8sCiAJCQkJMzc2RENDRTAxM0I0Rjk2NjAwMkVCRUZDIC8qIFRleHRSdW4uY3BwICov
LAogCQkJCUE4MjRCNDY0MEUyRUYyRUEwMDgxQTdCNyAvKiBUZXh0UnVuLmggKi8sCiAJCQkJMUFG
ODlBNDExNTE4RkRFQTAwRTU0N0I1IC8qIFRpbGVkQmFja2luZy5oICovLApAQCAtMjkwNDUsNiAr
MjkwNTAsNyBAQAogCQkJCUZEQTkzMjY2MTY3MDNCQTkwMDg5ODJEQyAvKiBKU09mZmxpbmVBdWRp
b0NvbnRleHQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRkU0NTZGMTgxNjc3RDc0RTAwNUVEREY5
IC8qIERhdGFiYXNlTWFuYWdlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlGMzdBNTYyMjE2NzlD
RjdCMDBDNTcwNDYgLyogSGVhcEdyYXBoU2VyaWFsaXplci5jcHAgaW4gU291cmNlcyAqLywKKwkJ
CQlDRDFFNzM0NzE2N0JDNzhFMDA5QTg4NUQgLyogVGV4dFRyYWNrUmVwcmVzZW50YXRpb24uY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vz
c2luZyA9IDA7CiAJCX07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRp
YUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcApp
bmRleCA1NjY4Nzc5MmNlNzlkMDUyZjgyMjBkZjY1YmZhOWIwNmUwMDM1Y2I1Li43MzBkMjk1Y2Uz
NTM0NzMwNjkwZDA1NWRlNmYzOTgyNDAxZGQ4OWNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TE1lZGlhRWxlbWVudC5jcHAKQEAgLTM4OTcsNiArMzg5NywxOSBAQCBib29sIEhUTUxNZWRpYUVs
ZW1lbnQ6OndpbGxSZXNwb25kVG9Nb3VzZUNsaWNrRXZlbnRzKCkKICNlbmRpZgogfQogCisjaWYg
RU5BQkxFKFZJREVPX1RSQUNLKQorYm9vbCBIVE1MTWVkaWFFbGVtZW50OjpyZXF1aXJlc1RleHRU
cmFja1JlcHJlc2VudGF0aW9uKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9wbGF5ZXIgPyBtX3Bs
YXllci0+cmVxdWlyZXNUZXh0VHJhY2tSZXByZXNlbnRhdGlvbigpIDogMDsKK30KKwordm9pZCBI
VE1MTWVkaWFFbGVtZW50OjpzZXRUZXh0VHJhY2tSZXByZXNlbnRhdGlvbihUZXh0VHJhY2tSZXBy
ZXNlbnRhdGlvbiogcmVwcmVzZW50YXRpb24pCit7CisgICAgaWYgKG1fcGxheWVyKQorICAgICAg
ICBtX3BsYXllci0+c2V0VGV4dFRyYWNrUmVwcmVzZW50YXRpb24ocmVwcmVzZW50YXRpb24pOwor
fQorI2VuZGlmIC8vIEVOQUJMRShWSURFT19UUkFDSykKKwogI2lmIEVOQUJMRShQTFVHSU5fUFJP
WFlfRk9SX1ZJREVPKQogCiB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OmVuc3VyZU1lZGlhUGxheWVy
KCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5oIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmgKaW5kZXggYTlkYjA0N2M1N2Vj
MGY4OWFjMDUxY2EyOGQ5ZTE4ODEzNGE3ZTQyNS4uNDYxNjc1NjEwZWU3NDgwOWU4NWY4MzAzM2E4
ODE3YzA1M2ZlZmViZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFF
bGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmgKQEAg
LTI2NCw2ICsyNjQsOSBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHRleHRUcmFja1JlbW92
ZUN1ZXMoVGV4dFRyYWNrKiwgY29uc3QgVGV4dFRyYWNrQ3VlTGlzdCopOwogICAgIHZpcnR1YWwg
dm9pZCB0ZXh0VHJhY2tBZGRDdWUoVGV4dFRyYWNrKiwgUGFzc1JlZlB0cjxUZXh0VHJhY2tDdWU+
KTsKICAgICB2aXJ0dWFsIHZvaWQgdGV4dFRyYWNrUmVtb3ZlQ3VlKFRleHRUcmFjayosIFBhc3NS
ZWZQdHI8VGV4dFRyYWNrQ3VlPik7CisKKyAgICBib29sIHJlcXVpcmVzVGV4dFRyYWNrUmVwcmVz
ZW50YXRpb24oKSBjb25zdDsKKyAgICB2b2lkIHNldFRleHRUcmFja1JlcHJlc2VudGF0aW9uKFRl
eHRUcmFja1JlcHJlc2VudGF0aW9uKik7CiAjZW5kaWYKIAogI2lmIEVOQUJMRShQTFVHSU5fUFJP
WFlfRk9SX1ZJREVPKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvTWVk
aWFDb250cm9sRWxlbWVudHMuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvTWVkaWFD
b250cm9sRWxlbWVudHMuY3BwCmluZGV4IDhiOGU3M2YxMWQ4MTA4MWY5NmFlZjlkYmQ1Y2E4YjBl
NjZjMjYzMDIuLmU3MjlkMDlhNWVmYjBjOGE1OTk2YWY1Njk5MjU5MTJkZTE0ZThkMzEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01lZGlhQ29udHJvbEVsZW1lbnRzLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xFbGVtZW50cy5j
cHAKQEAgLTM3LDYgKzM3LDcgQEAKICNpbmNsdWRlICJFdmVudFRhcmdldC5oIgogI2luY2x1ZGUg
IkZsb2F0Q29udmVyc2lvbi5oIgogI2luY2x1ZGUgIkZyYW1lLmgiCisjaW5jbHVkZSAiR3JhcGhp
Y3NDb250ZXh0LmgiCiAjaW5jbHVkZSAiSFRNTFZpZGVvRWxlbWVudC5oIgogI2luY2x1ZGUgIkxh
bmd1YWdlLmgiCiAjaW5jbHVkZSAiTG9jYWxpemVkU3RyaW5ncy5oIgpAQCAtNDQsMTAgKzQ1LDEy
IEBACiAjaW5jbHVkZSAiTW91c2VFdmVudC5oIgogI2luY2x1ZGUgIlBhZ2UuaCIKICNpbmNsdWRl
ICJQYWdlR3JvdXAuaCIKKyNpbmNsdWRlICJSZW5kZXJMYXllci5oIgogI2luY2x1ZGUgIlJlbmRl
ck1lZGlhQ29udHJvbEVsZW1lbnRzLmgiCiAjaW5jbHVkZSAiUmVuZGVyU2xpZGVyLmgiCiAjaW5j
bHVkZSAiUmVuZGVyVGhlbWUuaCIKICNpbmNsdWRlICJSZW5kZXJWaWRlby5oIgorI2luY2x1ZGUg
IlJlbmRlclZpZXcuaCIKICNpbmNsdWRlICJTZXR0aW5ncy5oIgogI2lmIEVOQUJMRShWSURFT19U
UkFDSykKICNpbmNsdWRlICJUZXh0VHJhY2suaCIKQEAgLTEyODMsMjYgKzEyODYsOTkgQEAgdm9p
ZCBNZWRpYUNvbnRyb2xUZXh0VHJhY2tDb250YWluZXJFbGVtZW50Ojp1cGRhdGVEaXNwbGF5KCkK
IAogICAgIC8vIDExLiBSZXR1cm4gb3V0cHV0LgogICAgIGhhc0NoaWxkTm9kZXMoKSA/IHNob3co
KSA6IGhpZGUoKTsKKworICAgIGlmIChoYXNDaGlsZE5vZGVzKCkpIHsKKyAgICAgICAgaWYgKG1l
ZGlhRWxlbWVudC0+cmVxdWlyZXNUZXh0VHJhY2tSZXByZXNlbnRhdGlvbigpKSB7CisgICAgICAg
ICAgICBpZiAoIW1fdGV4dFRyYWNrUmVwcmVzZW50YXRpb24pCisgICAgICAgICAgICAgICAgbV90
ZXh0VHJhY2tSZXByZXNlbnRhdGlvbiA9IFRleHRUcmFja1JlcHJlc2VudGF0aW9uOjpjcmVhdGUo
dGhpcyk7CisgICAgICAgICAgICBtZWRpYUVsZW1lbnQtPnNldFRleHRUcmFja1JlcHJlc2VudGF0
aW9uKG1fdGV4dFRyYWNrUmVwcmVzZW50YXRpb24uZ2V0KCkpOworCisgICAgICAgICAgICBpZiAo
UGFnZSogcGFnZSA9IGRvY3VtZW50KCktPnBhZ2UoKSkKKyAgICAgICAgICAgICAgICBtX3RleHRU
cmFja1JlcHJlc2VudGF0aW9uLT5zZXRDb250ZW50U2NhbGUocGFnZS0+ZGV2aWNlU2NhbGVGYWN0
b3IoKSk7CisKKyAgICAgICAgICAgIG1fdGV4dFRyYWNrUmVwcmVzZW50YXRpb24tPnVwZGF0ZSgp
OworICAgICAgICAgICAgc2V0SW5saW5lU3R5bGVQcm9wZXJ0eShDU1NQcm9wZXJ0eVdpZHRoLCBT
dHJpbmc6Om51bWJlcihtX3ZpZGVvRGlzcGxheVNpemUuc2l6ZSgpLndpZHRoKCkpICsgInB4Iik7
CisgICAgICAgICAgICBzZXRJbmxpbmVTdHlsZVByb3BlcnR5KENTU1Byb3BlcnR5SGVpZ2h0LCBT
dHJpbmc6Om51bWJlcihtX3ZpZGVvRGlzcGxheVNpemUuc2l6ZSgpLmhlaWdodCgpKSArICJweCIp
OworICAgICAgICB9CisgICAgfSBlbHNlIHsKKyAgICAgICAgbV90ZXh0VHJhY2tSZXByZXNlbnRh
dGlvbiA9IDA7CisgICAgICAgIG1lZGlhRWxlbWVudC0+c2V0VGV4dFRyYWNrUmVwcmVzZW50YXRp
b24oMCk7CisgICAgICAgIHJlbW92ZUlubGluZVN0eWxlUHJvcGVydHkoQ1NTUHJvcGVydHlXaWR0
aCk7CisgICAgICAgIHJlbW92ZUlubGluZVN0eWxlUHJvcGVydHkoQ1NTUHJvcGVydHlIZWlnaHQp
OworICAgIH0KIH0KIAogdm9pZCBNZWRpYUNvbnRyb2xUZXh0VHJhY2tDb250YWluZXJFbGVtZW50
Ojp1cGRhdGVTaXplcygpCiB7CiAgICAgSFRNTE1lZGlhRWxlbWVudCogbWVkaWFFbGVtZW50ID0g
dG9QYXJlbnRNZWRpYUVsZW1lbnQodGhpcyk7Ci0gICAgaWYgKCFtZWRpYUVsZW1lbnQgfHwgIW1l
ZGlhRWxlbWVudC0+cmVuZGVyZXIoKSB8fCAhbWVkaWFFbGVtZW50LT5yZW5kZXJlcigpLT5pc1Zp
ZGVvKCkpCisgICAgaWYgKCFtZWRpYUVsZW1lbnQpCiAgICAgICAgIHJldHVybjsKIAogICAgIGlm
ICghZG9jdW1lbnQoKS0+cGFnZSgpKQogICAgICAgICByZXR1cm47CiAKLSAgICBJbnRSZWN0IHZp
ZGVvQm94ID0gdG9SZW5kZXJWaWRlbyhtZWRpYUVsZW1lbnQtPnJlbmRlcmVyKCkpLT52aWRlb0Jv
eCgpOworICAgIEludFJlY3QgdmlkZW9Cb3g7CisKKyAgICBpZiAobV90ZXh0VHJhY2tSZXByZXNl
bnRhdGlvbikKKyAgICAgICAgdmlkZW9Cb3ggPSBtX3RleHRUcmFja1JlcHJlc2VudGF0aW9uLT5i
b3VuZHMoKTsKKyAgICBlbHNlIHsKKyAgICAgICAgaWYgKCFtZWRpYUVsZW1lbnQtPnJlbmRlcmVy
KCkgfHwgIW1lZGlhRWxlbWVudC0+cmVuZGVyZXIoKS0+aXNWaWRlbygpKQorICAgICAgICAgICAg
cmV0dXJuOworICAgICAgICB2aWRlb0JveCA9IHRvUmVuZGVyVmlkZW8obWVkaWFFbGVtZW50LT5y
ZW5kZXJlcigpKS0+dmlkZW9Cb3goKTsKKyAgICB9CiAKLSAgICBmbG9hdCBmb250U2l6ZSA9IHZp
ZGVvQm94LnNpemUoKS5oZWlnaHQoKSAqIChkb2N1bWVudCgpLT5wYWdlKCktPmdyb3VwKCkuY2Fw
dGlvbkZvbnRTaXplU2NhbGUoKSk7CisgICAgaWYgKG1fdmlkZW9EaXNwbGF5U2l6ZSA9PSB2aWRl
b0JveCkKKyAgICAgICAgcmV0dXJuOworICAgIG1fdmlkZW9EaXNwbGF5U2l6ZSA9IHZpZGVvQm94
OworCisgICAgaWYgKG1fdGV4dFRyYWNrUmVwcmVzZW50YXRpb24pIHsKKyAgICAgICAgc2V0SW5s
aW5lU3R5bGVQcm9wZXJ0eShDU1NQcm9wZXJ0eVdpZHRoLCBTdHJpbmc6Om51bWJlcihtX3ZpZGVv
RGlzcGxheVNpemUuc2l6ZSgpLndpZHRoKCkpICsgInB4Iik7CisgICAgICAgIHNldElubGluZVN0
eWxlUHJvcGVydHkoQ1NTUHJvcGVydHlIZWlnaHQsIFN0cmluZzo6bnVtYmVyKG1fdmlkZW9EaXNw
bGF5U2l6ZS5zaXplKCkuaGVpZ2h0KCkpICsgInB4Iik7CisgICAgfQorCisgICAgZmxvYXQgc21h
bGxlc3REaW1lbnNpb24gPSBzdGQ6Om1pbihtX3ZpZGVvRGlzcGxheVNpemUuc2l6ZSgpLmhlaWdo
dCgpLCBtX3ZpZGVvRGlzcGxheVNpemUuc2l6ZSgpLndpZHRoKCkpOworCisgICAgZmxvYXQgZm9u
dFNpemUgPSBzbWFsbGVzdERpbWVuc2lvbiAqIChkb2N1bWVudCgpLT5wYWdlKCktPmdyb3VwKCku
Y2FwdGlvbkZvbnRTaXplU2NhbGUoKSk7CiAgICAgaWYgKGZvbnRTaXplICE9IG1fZm9udFNpemUp
IHsKICAgICAgICAgbV9mb250U2l6ZSA9IGZvbnRTaXplOwogICAgICAgICBzZXRJbmxpbmVTdHls
ZVByb3BlcnR5KENTU1Byb3BlcnR5Rm9udFNpemUsIFN0cmluZzo6bnVtYmVyKGZvbnRTaXplKSAr
ICJweCIpOwogICAgIH0KIH0KIAordm9pZCBNZWRpYUNvbnRyb2xUZXh0VHJhY2tDb250YWluZXJF
bGVtZW50OjpwYWludFRleHRUcmFja1JlcHJlc2VudGF0aW9uKEdyYXBoaWNzQ29udGV4dCogY29u
dGV4dCwgY29uc3QgSW50UmVjdCYgY29udGV4dFJlY3QpCit7CisgICAgaWYgKCFoYXNDaGlsZE5v
ZGVzKCkpCisgICAgICAgIHJldHVybjsKKworICAgIFJlbmRlck9iamVjdCogcmVuZGVyZXIgPSB0
aGlzLT5yZW5kZXJlcigpOworICAgIGlmICghcmVuZGVyZXIpCisgICAgICAgIHJldHVybjsKKwor
ICAgIEZyYW1lKiBmcmFtZSA9IGRvY3VtZW50KCktPmZyYW1lKCk7CisgICAgaWYgKCFmcmFtZSkK
KyAgICAgICAgcmV0dXJuOworCisgICAgZG9jdW1lbnQoKS0+dXBkYXRlTGF5b3V0KCk7CisKKyAg
ICBMYXlvdXRSZWN0IHRvcExldmVsUmVjdDsKKyAgICBJbnRSZWN0IHBhaW50aW5nUmVjdCA9IHBp
eGVsU25hcHBlZEludFJlY3QocmVuZGVyZXItPnBhaW50aW5nUm9vdFJlY3QodG9wTGV2ZWxSZWN0
KSk7CisKKyAgICAvLyBUcmFuc2xhdGUgdGhlIHJlbmRlcmVyIHBhaW50aW5nIHJlY3QgaW50byBn
cmFwaGljcyBjb250ZXh0IGNvb3JkaW5hdGVzLgorICAgIEZsb2F0U2l6ZSB0cmFuc2xhdGlvbigt
cGFpbnRpbmdSZWN0LngoKSwgLXBhaW50aW5nUmVjdC55KCkpOworCisgICAgLy8gQnV0IGFuY2hv
ciB0byB0aGUgYm90dG9tIG9mIHRoZSBncmFwaGljcyBjb250ZXh0IHJlY3QuCisgICAgdHJhbnNs
YXRpb24uZXhwYW5kKG1heCgwLCBjb250ZXh0UmVjdC53aWR0aCgpIC0gcGFpbnRpbmdSZWN0Lndp
ZHRoKCkpLCBtYXgoMCwgY29udGV4dFJlY3QuaGVpZ2h0KCkgLSBwYWludGluZ1JlY3QuaGVpZ2h0
KCkpKTsKKworICAgIGNvbnRleHQtPnRyYW5zbGF0ZSh0cmFuc2xhdGlvbik7CisKKyAgICBSZW5k
ZXJMYXllciogbGF5ZXIgPSBmcmFtZS0+Y29udGVudFJlbmRlcmVyKCktPmxheWVyKCk7CisgICAg
bGF5ZXItPnBhaW50KGNvbnRleHQsIHBhaW50aW5nUmVjdCwgUGFpbnRCZWhhdmlvckZsYXR0ZW5D
b21wb3NpdGluZ0xheWVycywgcmVuZGVyZXIsIDAsIFJlbmRlckxheWVyOjpQYWludExheWVyUGFp
bnRpbmdDb21wb3NpdGluZ0FsbFBoYXNlcyk7Cit9CisKK3ZvaWQgTWVkaWFDb250cm9sVGV4dFRy
YWNrQ29udGFpbmVyRWxlbWVudDo6dGV4dFRyYWNrUmVwcmVzZW50YXRpb25Cb3VuZHNDaGFuZ2Vk
KGNvbnN0IEludFJlY3QmKQoreworICAgIHVwZGF0ZVNpemVzKCk7Cit9CiAjZW5kaWYgLy8gRU5B
QkxFKFZJREVPX1RSQUNLKQogCiAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xFbGVtZW50cy5o
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvTWVkaWFDb250cm9sRWxlbWVudHMuaAppbmRl
eCA4OWM5YTAyNDc0NDhlMmJmMDk3MjBlYmRjZjNmZTY5YzVkNWI4YTg0Li42ZjZjZDAzNGM3MTE5
N2Q4ZWE0ZGU3ZWYwNzMwZGI1NzZhNzYyOGNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xFbGVtZW50cy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvc2hhZG93L01lZGlhQ29udHJvbEVsZW1lbnRzLmgKQEAgLTMyLDYgKzMyLDcgQEAKIAogI2lm
IEVOQUJMRShWSURFTykKICNpbmNsdWRlICJNZWRpYUNvbnRyb2xFbGVtZW50VHlwZXMuaCIKKyNp
bmNsdWRlICJUZXh0VHJhY2tSZXByZXNlbnRhdGlvbi5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKQEAgLTQzMiw3ICs0MzMsNyBAQCBwcml2YXRlOgogCiAjaWYgRU5BQkxFKFZJREVPX1RSQUNL
KQogCi1jbGFzcyBNZWRpYUNvbnRyb2xUZXh0VHJhY2tDb250YWluZXJFbGVtZW50IDogcHVibGlj
IE1lZGlhQ29udHJvbERpdkVsZW1lbnQgeworY2xhc3MgTWVkaWFDb250cm9sVGV4dFRyYWNrQ29u
dGFpbmVyRWxlbWVudCA6IHB1YmxpYyBNZWRpYUNvbnRyb2xEaXZFbGVtZW50LCBwdWJsaWMgVGV4
dFRyYWNrUmVwcmVzZW50YXRpb25DbGllbnQgewogcHVibGljOgogICAgIHN0YXRpYyBQYXNzUmVm
UHRyPE1lZGlhQ29udHJvbFRleHRUcmFja0NvbnRhaW5lckVsZW1lbnQ+IGNyZWF0ZShEb2N1bWVu
dCopOwogCkBAIC00NDYsNiArNDQ3LDEwIEBAIHByaXZhdGU6CiAKICAgICB2aXJ0dWFsIFJlbmRl
ck9iamVjdCogY3JlYXRlUmVuZGVyZXIoUmVuZGVyQXJlbmEqLCBSZW5kZXJTdHlsZSopOwogCisg
ICAgdmlydHVhbCB2b2lkIHBhaW50VGV4dFRyYWNrUmVwcmVzZW50YXRpb24oR3JhcGhpY3NDb250
ZXh0KiwgY29uc3QgSW50UmVjdCYpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCB0ZXh0VHJh
Y2tSZXByZXNlbnRhdGlvbkJvdW5kc0NoYW5nZWQoY29uc3QgSW50UmVjdCYpIE9WRVJSSURFOwor
ICAgIE93blB0cjxUZXh0VHJhY2tSZXByZXNlbnRhdGlvbj4gbV90ZXh0VHJhY2tSZXByZXNlbnRh
dGlvbjsKKwogICAgIEludFJlY3QgbV92aWRlb0Rpc3BsYXlTaXplOwogICAgIGZsb2F0IG1fZm9u
dFNpemU7CiAgICAgUmVmUHRyPEhUTUxFbGVtZW50PiBtX2N1ZUNvbnRhaW5lcjsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmNwcAppbmRleCA0NmNj
NTdlYzNlMzM0YWFkZmU2YTIzMzMxNGY1NzhmZGNkN2M0MDA0Li42NTlhODFhNzRlZmQxOGVmOTY0
MWM0OWE5N2I2ZDM4ZjA5ZjczZjZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9NZWRpYVBsYXllci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3BwCkBAIC0xMTI5LDYgKzExMjksMTYgQEAgdm9pZCBNZWRp
YVBsYXllcjo6cmVtb3ZlVGV4dFRyYWNrKFBhc3NSZWZQdHI8SW5iYW5kVGV4dFRyYWNrUHJpdmF0
ZT4gdHJhY2spCiAKICAgICBtX21lZGlhUGxheWVyQ2xpZW50LT5tZWRpYVBsYXllckRpZFJlbW92
ZVRyYWNrKHRyYWNrKTsKIH0KKworYm9vbCBNZWRpYVBsYXllcjo6cmVxdWlyZXNUZXh0VHJhY2tS
ZXByZXNlbnRhdGlvbigpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fcHJpdmF0ZS0+cmVxdWlyZXNU
ZXh0VHJhY2tSZXByZXNlbnRhdGlvbigpOworfQorCit2b2lkIE1lZGlhUGxheWVyOjpzZXRUZXh0
VHJhY2tSZXByZXNlbnRhdGlvbihUZXh0VHJhY2tSZXByZXNlbnRhdGlvbiogcmVwcmVzZW50YXRp
b24pCit7CisgICAgbV9wcml2YXRlLT5zZXRUZXh0VHJhY2tSZXByZXNlbnRhdGlvbihyZXByZXNl
bnRhdGlvbik7Cit9CiAjZW5kaWYKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL01lZGlhUGxheWVyLmgKaW5kZXggYjI0YTg0ODM3MTA2ODQ4YTJlOTY3YWZiMjhiODcz
MTljOGM3N2MxYi4uZjhjNjE4MzhlMzUwNzA0ODBhYzZmNzg3OTFmODJkMDMwYjgzNDEyYyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5oCkBAIC02
Miw2ICs2Miw3IEBAIGNsYXNzIERvY3VtZW50OwogY2xhc3MgR1N0cmVhbWVyR1dvcmxkOwogY2xh
c3MgTWVkaWFQbGF5ZXJQcml2YXRlSW50ZXJmYWNlOwogY2xhc3MgTWVkaWFTb3VyY2U7CitjbGFz
cyBUZXh0VHJhY2tSZXByZXNlbnRhdGlvbjsKIAogLy8gU3RydWN0dXJlIHRoYXQgd2lsbCBob2xk
IGV2ZXJ5IG5hdGl2ZQogLy8gdHlwZXMgc3VwcG9ydGVkIGJ5IHRoZSBjdXJyZW50IG1lZGlhIHBs
YXllci4KQEAgLTIxMyw2ICsyMTQsOSBAQCBwdWJsaWM6CiAjaWYgRU5BQkxFKFZJREVPX1RSQUNL
KQogICAgIHZpcnR1YWwgdm9pZCBtZWRpYVBsYXllckRpZEFkZFRyYWNrKFBhc3NSZWZQdHI8SW5i
YW5kVGV4dFRyYWNrUHJpdmF0ZT4pIHsgfQogICAgIHZpcnR1YWwgdm9pZCBtZWRpYVBsYXllckRp
ZFJlbW92ZVRyYWNrKFBhc3NSZWZQdHI8SW5iYW5kVGV4dFRyYWNrUHJpdmF0ZT4pIHsgfQorCisg
ICAgdmlydHVhbCB2b2lkIHRleHRUcmFja1JlcHJlc2VudGF0aW9uQm91bmRzQ2hhbmdlZChjb25z
dCBJbnRSZWN0JikgeyB9CisgICAgdmlydHVhbCB2b2lkIHBhaW50VGV4dFRyYWNrUmVwcmVzZW50
YXRpb24oR3JhcGhpY3NDb250ZXh0KiwgY29uc3QgSW50UmVjdCYpIHsgfQogI2VuZGlmCiB9Owog
CkBAIC00MzYsNiArNDQwLDkgQEAgcHVibGljOgogI2lmIEVOQUJMRShWSURFT19UUkFDSykKICAg
ICB2b2lkIGFkZFRleHRUcmFjayhQYXNzUmVmUHRyPEluYmFuZFRleHRUcmFja1ByaXZhdGU+KTsK
ICAgICB2b2lkIHJlbW92ZVRleHRUcmFjayhQYXNzUmVmUHRyPEluYmFuZFRleHRUcmFja1ByaXZh
dGU+KTsKKworICAgIGJvb2wgcmVxdWlyZXNUZXh0VHJhY2tSZXByZXNlbnRhdGlvbigpIGNvbnN0
OworICAgIHZvaWQgc2V0VGV4dFRyYWNrUmVwcmVzZW50YXRpb24oVGV4dFRyYWNrUmVwcmVzZW50
YXRpb24qKTsKICNlbmRpZgogCiBwcml2YXRlOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXJQcml2YXRlLmggYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllclByaXZhdGUuaAppbmRleCBkMzYwMTQ5YTA5YzZl
MmEyMTQxYTc4M2EyNTAzNjg0ZGFlMjRmYmQ2Li5iNTdkZDBkNTZiMTBjZjBhMDllMjc4Yzk4ZjQ3
NjFjMTE0Mzk0MDNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9NZWRpYVBsYXllclByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9NZWRpYVBsYXllclByaXZhdGUuaApAQCAtMTg0LDYgKzE4NCwxMCBAQCBwdWJsaWM6CiAg
ICAgdmlydHVhbCBNZWRpYVBsYXllcjo6TWVkaWFLZXlFeGNlcHRpb24gY2FuY2VsS2V5UmVxdWVz
dChjb25zdCBTdHJpbmcmLCBjb25zdCBTdHJpbmcmKSB7IHJldHVybiBNZWRpYVBsYXllcjo6S2V5
U3lzdGVtTm90U3VwcG9ydGVkOyB9CiAjZW5kaWYKIAorI2lmIEVOQUJMRShWSURFT19UUkFDSykK
KyAgICB2aXJ0dWFsIGJvb2wgcmVxdWlyZXNUZXh0VHJhY2tSZXByZXNlbnRhdGlvbigpIGNvbnN0
IHsgcmV0dXJuIDA7IH0KKyAgICB2aXJ0dWFsIHZvaWQgc2V0VGV4dFRyYWNrUmVwcmVzZW50YXRp
b24oVGV4dFRyYWNrUmVwcmVzZW50YXRpb24qKSB7IH0KKyNlbmRpZgogfTsKIAogfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvVGV4dFRyYWNrUmVwcmVzZW50
YXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvVGV4dFRyYWNrUmVw
cmVzZW50YXRpb24uY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjNjMzQyM2JjYjMyNWQwNjYwMDllNTk1ZTM2YzUz
YTBlNDA3MDQ4NmMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9UZXh0VHJhY2tSZXByZXNlbnRhdGlvbi5jcHAKQEAgLTAsMCArMSw1MCBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAxMiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFO
RCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKworI2lmIEVOQUJMRShWSURFT19UUkFDSykK
KworI2luY2x1ZGUgIlRleHRUcmFja1JlcHJlc2VudGF0aW9uLmgiCisKK25hbWVzcGFjZSBXZWJD
b3JlIHsKKworY2xhc3MgTnVsbFRleHRUcmFja1JlcHJlc2VudGF0aW9uIDogcHVibGljIFRleHRU
cmFja1JlcHJlc2VudGF0aW9uIHsKK3B1YmxpYzoKKyAgICB2aXJ0dWFsIH5OdWxsVGV4dFRyYWNr
UmVwcmVzZW50YXRpb24oKSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlKCkgeyB9CisgICAg
dmlydHVhbCBQbGF0Zm9ybUxheWVyKiBwbGF0Zm9ybUxheWVyKCkgeyByZXR1cm4gMDsgfQorICAg
IHZpcnR1YWwgdm9pZCBzZXRDb250ZW50U2NhbGUoZmxvYXQpIHsgfQorICAgIHZpcnR1YWwgSW50
UmVjdCBib3VuZHMoKSBjb25zdCB7IHJldHVybiBJbnRSZWN0KCk7IH0KK307CisKK1Bhc3NPd25Q
dHI8VGV4dFRyYWNrUmVwcmVzZW50YXRpb24+IFRleHRUcmFja1JlcHJlc2VudGF0aW9uOjpjcmVh
dGUoVGV4dFRyYWNrUmVwcmVzZW50YXRpb25DbGllbnQqKQoreworICAgIHJldHVybiBXVEY6OmFk
b3B0UHRyKG5ldyBOdWxsVGV4dFRyYWNrUmVwcmVzZW50YXRpb24oKSk7Cit9CisKK30KKworI2Vu
ZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9UZXh0VHJh
Y2tSZXByZXNlbnRhdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvVGV4
dFRyYWNrUmVwcmVzZW50YXRpb24uaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yYTRmNTI3NjA1N2NhMmQwYTE3OGRj
OTI4MmIyN2EyOGFlYjM0ZDJiCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvVGV4dFRyYWNrUmVwcmVzZW50YXRpb24uaApAQCAtMCwwICsxLDY0IEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworI2lmbmRlZiBUZXh0VHJhY2tSZXByZXNlbnRhdGlvbl9oCisjZGVmaW5l
IFRleHRUcmFja1JlcHJlc2VudGF0aW9uX2gKKworI2lmIEVOQUJMRShWSURFT19UUkFDSykKKwor
I2luY2x1ZGUgIkludFJlY3QuaCIKKyNpbmNsdWRlICJQbGF0Zm9ybUxheWVyLmgiCisjaW5jbHVk
ZSA8d3RmL1Bhc3NPd25QdHIuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBHcmFw
aGljc0NvbnRleHQ7CitjbGFzcyBJbnRSZWN0OworCitjbGFzcyBUZXh0VHJhY2tSZXByZXNlbnRh
dGlvbkNsaWVudCB7CitwdWJsaWM6CisgICAgdmlydHVhbCB+VGV4dFRyYWNrUmVwcmVzZW50YXRp
b25DbGllbnQoKSB7IH0KKworICAgIHZpcnR1YWwgdm9pZCBwYWludFRleHRUcmFja1JlcHJlc2Vu
dGF0aW9uKEdyYXBoaWNzQ29udGV4dCosIGNvbnN0IEludFJlY3QmKSA9IDA7CisgICAgdmlydHVh
bCB2b2lkIHRleHRUcmFja1JlcHJlc2VudGF0aW9uQm91bmRzQ2hhbmdlZChjb25zdCBJbnRSZWN0
JikgPSAwOworfTsKKworY2xhc3MgVGV4dFRyYWNrUmVwcmVzZW50YXRpb24geworcHVibGljOgor
ICAgIHN0YXRpYyBQYXNzT3duUHRyPFRleHRUcmFja1JlcHJlc2VudGF0aW9uPiBjcmVhdGUoVGV4
dFRyYWNrUmVwcmVzZW50YXRpb25DbGllbnQqKTsKKworICAgIHZpcnR1YWwgflRleHRUcmFja1Jl
cHJlc2VudGF0aW9uKCkgeyB9CisKKyAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlKCkgPSAwOworICAg
IHZpcnR1YWwgUGxhdGZvcm1MYXllciogcGxhdGZvcm1MYXllcigpID0gMDsKKyAgICB2aXJ0dWFs
IHZvaWQgc2V0Q29udGVudFNjYWxlKGZsb2F0KSA9IDA7CisgICAgdmlydHVhbCBJbnRSZWN0IGJv
dW5kcygpIGNvbnN0ID0gMDsKK307CisKK30KKworI2VuZGlmCisKKyNlbmRpZiAvLyBUZXh0VHJh
Y2tSZXByZXNlbnRhdGlvbl9oCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>179528</attachid>
            <date>2012-12-14 13:37:01 -0800</date>
            <delta_ts>2012-12-14 13:40:57 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-105052-20121214133419.patch</filename>
            <type>text/plain</type>
            <size>27328</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM3NzY0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYmUxMmFiZWVjZDQ3ZmYx
MDVkNWRlYTdlMzA4ZmVhN2EwODU1ZGMyMC4uZjEzODQzZjA1ZTUyYzczYzFhY2FiN2YwNjdlMDk5
YmVhMTA2ODAzZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY1IEBACisyMDEyLTEyLTE0ICBKZXIg
Tm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIEFsbG93IHRoZSB0ZXh0IHRy
YWNrIGNvbnRlbnRzIHRvIGJlIGRpc3BsYXllZCBleHRlcm5hbGx5IHRvIFdlYkNvcmUuCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDUwNTIKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBTdXBwb3J0IHNjZW5h
cmlvcyB3aGVyZSB0aGUgdGV4dCB0cmFjayBjb250ZW50cyBtdXN0IGJlIHJlbmRlcmVkIG91dHNp
ZGUgb2YgV2ViQ29yZSwgc3VjaCBhcyB0byBhbiBleHRlcm5hbAorICAgICAgICBkaXNwbGF5IG9y
IHdpbmRvdy4gIEFkZCBhbiBhYnN0cmFjdCBiYXNlIGNsYXNzIHdoaWNoIGVuY2Fwc3VsYXRlcyB0
aGUgZXh0ZXJuYWwgcmVwcmVzZW50YXRpb24gdG8gd2hpY2ggdGhlCisgICAgICAgIHRleHQgdHJh
Y2tzIHdpbGwgYmUgcmVuZGVyZWQuCisKKyAgICAgICAgQWRkIGEgbmV3IGFic3RyYWN0IGJhc2Ug
Y2xhc3MgYW5kIGNsaWVudCB0byB3cmFwIHRoZSBleHRlcm5hbCByZW5kZXJpbmcgb2YgYSBUZXh0
VHJhY2suCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvVGV4dFRyYWNrUmVwcmVzZW50YXRp
b24uaDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpUZXh0VHJhY2tSZXByZXNlbnRhdGlvbkNs
aWVudDo6flRleHRUcmFja1JlcHJlc2VudGF0aW9uQ2xpZW50KToKKyAgICAgICAgKFdlYkNvcmU6
OlRleHRUcmFja1JlcHJlc2VudGF0aW9uOjp+VGV4dFRyYWNrUmVwcmVzZW50YXRpb24pOgorCisg
ICAgICAgIEFkZCBhbiBlbXB0eSBjb25jcmV0ZSBpbXBsZW1lbnRhdGlvbiBmb3IgdGhvc2UgcG9y
dHMgd2hvIGRvIG5vdCB5ZXQgc3VwcG9ydCBleHRlcm5hbCBkaXNwbGF5IG9mIHN1YnRpdGxlcy4K
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9UZXh0VHJhY2tSZXByZXNlbnRhdGlvbi5jcHA6
IEFkZGVkLgorICAgICAgICAoTnVsbFRleHRUcmFja1JlcHJlc2VudGF0aW9uKToKKyAgICAgICAg
KFdlYkNvcmU6Ok51bGxUZXh0VHJhY2tSZXByZXNlbnRhdGlvbjo6fk51bGxUZXh0VHJhY2tSZXBy
ZXNlbnRhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpOdWxsVGV4dFRyYWNrUmVwcmVzZW50YXRp
b246OnVwZGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpOdWxsVGV4dFRyYWNrUmVwcmVzZW50YXRp
b246OnBsYXRmb3JtTGF5ZXIpOgorICAgICAgICAoV2ViQ29yZTo6TnVsbFRleHRUcmFja1JlcHJl
c2VudGF0aW9uOjpzZXRDb250ZW50U2NhbGUpOgorICAgICAgICAoV2ViQ29yZTo6TnVsbFRleHRU
cmFja1JlcHJlc2VudGF0aW9uOjpib3VuZHMpOgorICAgICAgICAoV2ViQ29yZTo6VGV4dFRyYWNr
UmVwcmVzZW50YXRpb246OmNyZWF0ZSk6CisKKyAgICAgICAgQWRkIG1ldGhvZHMgdG8gTWVkaWFQ
bGF5ZXJQcml2YXRlSU9TIHRvIGhhbmRsZSB0aGUgVGV4dFRyYWNrUmVwcmVzZW50YXRpb24uCisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvaW9zL01lZGlhUGxheWVyUHJpdmF0ZUlPUy5oOgor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2lvcy9NZWRpYVBsYXllclByaXZhdGVJT1MubW06
CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVJT1M6OmRlbGl2ZXJOb3RpZmlj
YXRpb24pOiBSZW1vdmUgdGhlIHJlcHJlc2VudGF0aW9uIHdoZW4gZXhpdGluZyBmdWxsIHNjcmVl
bi4KKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUlPUzo6cmVxdWlyZXNUZXh0
VHJhY2tSZXByZXNlbnRhdGlvbik6IFJldHVybiBZRVMgaWYgaW4gZnVsbCBzY3JlZW4gbW9kZS4K
KyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUlPUzo6c2V0VGV4dFRyYWNrUmVw
cmVzZW50YXRpb24pOiBQYXNzIHRoZSByZXByZXNlbnRhdGlvbidzIGxheWVyIHRvIHRoZSBwbGF5
ZXIgcGx1Zy1pbi4KKworICAgICAgICBFeHBvc2UgdGhvc2UgbWV0aG9kcyB2aWEgSFRNTE1lZGlh
RWxlbWVudDoKKyAgICAgICAgKiBodG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6cmVxdWlyZXNUZXh0VHJhY2tSZXByZXNlbnRhdGlv
bik6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjpzZXRUZXh0VHJhY2tSZXBy
ZXNlbnRhdGlvbik6CisgICAgICAgICogaHRtbC9IVE1MTWVkaWFFbGVtZW50Lmg6CisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
TWVkaWFQbGF5ZXI6OnJlcXVpcmVzVGV4dFRyYWNrUmVwcmVzZW50YXRpb24pOgorICAgICAgICAo
V2ViQ29yZTo6TWVkaWFQbGF5ZXI6OnNldFRleHRUcmFja1JlcHJlc2VudGF0aW9uKToKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5oOgorICAgICAgICAoV2ViQ29yZTo6
TWVkaWFQbGF5ZXJDbGllbnQ6OnRleHRUcmFja1JlcHJlc2VudGF0aW9uQm91bmRzQ2hhbmdlZCk6
CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllckNsaWVudDo6cGFpbnRUZXh0VHJhY2tSZXBy
ZXNlbnRhdGlvbik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXJQcml2
YXRlLmg6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVJbnRlcmZhY2U6OnJl
cXVpcmVzVGV4dFRyYWNrUmVwcmVzZW50YXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQ
bGF5ZXJQcml2YXRlSW50ZXJmYWNlOjpzZXRUZXh0VHJhY2tSZXByZXNlbnRhdGlvbik6CisKKyAg
ICAgICAgKiBodG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xFbGVtZW50cy5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpNZWRpYUNvbnRyb2xUZXh0VHJhY2tDb250YWluZXJFbGVtZW50Ojp1cGRhdGVEaXNw
bGF5KTogQ3JlYXRlIHRoZSByZXByZXNlbnRhdGlvbiwgaWYgbmVjZXNzYXJ5LgorICAgICAgICAo
V2ViQ29yZTo6TWVkaWFDb250cm9sVGV4dFRyYWNrQ29udGFpbmVyRWxlbWVudDo6dXBkYXRlU2l6
ZXMpOiBVc2UgdGhlIHJlcHJlc2VudGF0aW9uIHRvIGRldGVybWluZSB0aGUgZm9udCBzaXplLgor
ICAgICAgICAoV2ViQ29yZTo6TWVkaWFDb250cm9sVGV4dFRyYWNrQ29udGFpbmVyRWxlbWVudDo6
cGFpbnRUZXh0VHJhY2tSZXByZXNlbnRhdGlvbik6IEFkZGVkLiBQYWludCB0aGUgVGV4dFRyYWNr
IGludG8gdGhlIHByb3ZpZGVkIGdyYXBoaWNzIGNvbnRleHQuCisgICAgICAgIChXZWJDb3JlOjpN
ZWRpYUNvbnRyb2xUZXh0VHJhY2tDb250YWluZXJFbGVtZW50Ojp0ZXh0VHJhY2tSZXByZXNlbnRh
dGlvbkJvdW5kc0NoYW5nZWQpOiBBZGRlZC4gQ2FsbCB1cGRhdGVTaXplcygpLgorICAgICAgICAq
IGh0bWwvc2hhZG93L01lZGlhQ29udHJvbEVsZW1lbnRzLmg6CisKKyAgICAgICAgQWRkIHRoZSBu
ZXcgZmlsZXMgdG8gdGhlIHByb2plY3QuCisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qOgorICAgICAgICAqIEdOVW1ha2VmaWxlLmxpc3QuYW06CisgICAgICAgICog
VGFyZ2V0LnByaToKKyAgICAgICAgKiBXZWJDb3JlLmd5cGk6CisgICAgICAgICogV2ViQ29yZS52
Y3Byb2ovV2ViQ29yZS52Y3Byb2o6CisKIDIwMTItMTItMTQgIEFudG9uIFZheXZvZCAgPGF2YXl2
b2RAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFRleHQgQXV0b3NpemluZzogQ29uc2lkZXIgaW5s
aW5lLWJsb2NrIGFuZCBpbmxpbmUtdGFibGUgZWxlbWVudHMgdG8gYmUgYXV0b3NpemluZyBjbHVz
dGVycy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0gYi9T
b3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCmluZGV4IDM2MzU3MDVkZDc3ZjQ2Yjg4
NTFlOTUwM2E5NzM3Y2Y2NGM5YjkwMWYuLjUzZmNjOWVmN2RjNGEyZDNmNzgxNTJmZjViZDZlOTE2
YTM2NjlkNTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0K
KysrIGIvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQpAQCAtNTU3OSw2ICs1NTc5
LDggQEAgd2ViY29yZV9wbGF0Zm9ybV9zb3VyY2VzICs9IFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9UZXh0UmVuZGVyaW5nTW9kZS5oIFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9UZXh0UnVuLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvVGV4dFJ1bi5oIFwKKwlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9UZXh0
VHJhY2tSZXByZXNlbnRhdGlvbi5jcHAgXAorCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL1RleHRUcmFja1JlcHJlc2VudGF0aW9uLmggXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL1RpbGVkQmFja2luZy5oIFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy90cmFuc2Zvcm1zL0FmZmluZVRyYW5zZm9ybS5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL3RyYW5zZm9ybXMvQWZmaW5lVHJhbnNmb3JtLmggXApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaSBiL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkK
aW5kZXggODAzOTY3ZWNkN2MwYTlkZGIwZTMyYmFhYmVhODI0OGU1NzA0OThkYy4uMjZmNjkyODA4
NDE3OGQ4MWE2Yjc5NTA5NWE5ZjUxNmZkNzQ5NDJiYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvVGFyZ2V0LnByaQorKysgYi9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpCkBAIC0xMDA2LDYg
KzEwMDYsNyBAQCBTT1VSQ0VTICs9IFwKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9zdXJmYWNlcy9x
dC9HcmFwaGljc1N1cmZhY2VRdC5jcHAgXAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL1N1cnJvZ2F0
ZVBhaXJBd2FyZVRleHRJdGVyYXRvci5jcHAgXAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL1RleHRS
dW4uY3BwIFwKKyAgICBwbGF0Zm9ybS9ncmFwaGljcy9UZXh0VHJhY2tSZXByZXNlbnRhdGlvbi5j
cHAgXAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL1RpbGVkQmFja2luZ1N0b3JlLmNwcCBcCiAgICAg
cGxhdGZvcm0vZ3JhcGhpY3MvdHJhbnNmb3Jtcy9BZmZpbmVUcmFuc2Zvcm0uY3BwIFwKICAgICBw
bGF0Zm9ybS9ncmFwaGljcy90cmFuc2Zvcm1zL1RyYW5zZm9ybWF0aW9uTWF0cml4LmNwcCBcCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkgYi9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLmd5cGkKaW5kZXggMzZhODdhZjMxNmQ4Zjc3NTdiY2Y5MjU1ODRkOGE2NmVhZjc1ZDAz
Zi4uYmEwOGY1NTUxMDVmYWI3MDkwOTA4M2QwNjBjZmU5NjkyMzkyZTU5MyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
Z3lwaQpAQCAtMzc0Niw2ICszNzQ2LDggQEAKICAgICAgICAgICAgICdwbGF0Zm9ybS9ncmFwaGlj
cy9TdXJyb2dhdGVQYWlyQXdhcmVUZXh0SXRlcmF0b3IuY3BwJywKICAgICAgICAgICAgICdwbGF0
Zm9ybS9ncmFwaGljcy9TdXJyb2dhdGVQYWlyQXdhcmVUZXh0SXRlcmF0b3IuaCcsCiAgICAgICAg
ICAgICAncGxhdGZvcm0vZ3JhcGhpY3MvVGV4dFJ1bi5jcHAnLAorICAgICAgICAgICAgJ3BsYXRm
b3JtL2dyYXBoaWNzL1RleHRUcmFja1JlcHJlc2VudGF0aW9uLmNwcCcsCisgICAgICAgICAgICAn
cGxhdGZvcm0vZ3JhcGhpY3MvVGV4dFRyYWNrUmVwcmVzZW50YXRpb24uaCcsCiAgICAgICAgICAg
ICAncGxhdGZvcm0vZ3JhcGhpY3MvVGlsZS5oJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9ncmFw
aGljcy9UaWxlZEJhY2tpbmdTdG9yZS5jcHAnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL2dyYXBo
aWNzL1RpbGVkQmFja2luZ1N0b3JlLmgnLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJv
ai9XZWJDb3JlLnZjcHJvagppbmRleCA5MTIzMjgyOWUyYzg0MGJkNGY1Y2ZhMmYxMjE2OWI4OTlk
OTkyNjU2Li41ZTFmY2NlODg5MTFmNzAyMmFhNGVjOGQyYTFjZjFkMGRhNjUyZDEzIDEwMDc1NQot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagorKysgYi9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagpAQCAtMjk4NjksNiAr
Mjk4NjksMTQgQEAKIAkJCQkJPgogCQkJCTwvRmlsZT4KIAkJCQk8RmlsZQorCQkJCQlSZWxhdGl2
ZVBhdGg9Ii4uXHBsYXRmb3JtXGdyYXBoaWNzXFRleHRUcmFja1JlcHJlc2VudGF0aW9uLmNwcCIK
KwkJCQkJPgorCQkJCTwvRmlsZT4KKwkJCQk8RmlsZQorCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHBs
YXRmb3JtXGdyYXBoaWNzXFRleHRUcmFja1JlcHJlc2VudGF0aW9uLmgiCisJCQkJCT4KKwkJCQk8
L0ZpbGU+CisJCQkJPEZpbGUKIAkJCQkJUmVsYXRpdmVQYXRoPSIuLlxwbGF0Zm9ybVxncmFwaGlj
c1xVbml0QmV6aWVyLmgiCiAJCQkJCT4KIAkJCQk8L0ZpbGU+CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggMjcwZjYxNWFiMTVjYzQ3
NjUxZDJkNzRhNTIwMTg3NTkzYWE1OGMxNS4uMjA5MDMxNDYzYmQwZTgyMWE1ZGMzYjc3MzIzNmE3
ZTMyNTNmYmYzZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagpAQCAtNTkxOCw2ICs1OTE4LDcgQEAKIAkJQ0NDMkI1MTYxNUY2MTMwNjAw
NDhDREQ2IC8qIERldmljZUNvbnRyb2xsZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IENDQzJCNTEyMTVGNjEzMDYwMDQ4Q0RENiAvKiBEZXZpY2VDb250
cm9sbGVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
IAkJQ0QxMjdERUQxNEYzMDk3RDAwRTg0Nzc5IC8qIFdlYkNvcmVGdWxsU2NyZWVuV2luZG93Lm1t
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0QxMjdERUIx
NEYzMDk3OTAwRTg0Nzc5IC8qIFdlYkNvcmVGdWxsU2NyZWVuV2luZG93Lm1tICovOyB9OwogCQlD
RDEyN0RFRTE0RjMwOTg0MDBFODQ3NzkgLyogV2ViQ29yZUZ1bGxTY3JlZW5XaW5kb3cuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEMTI3REVBMTRGMzA5
NzkwMEU4NDc3OSAvKiBXZWJDb3JlRnVsbFNjcmVlbldpbmRvdy5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCUNEMUU3MzQ3MTY3QkM3OEUwMDlBODg1
RCAvKiBUZXh0VHJhY2tSZXByZXNlbnRhdGlvbi5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDFFNzM0NjE2N0JDNzhFMDA5QTg4NUQgLyogVGV4dFRy
YWNrUmVwcmVzZW50YXRpb24uY3BwICovOyB9OwogCQlDRDI3RjZFNTE0NTc2ODVBMDA3ODIwN0Qg
LyogSlNNZWRpYUNvbnRyb2xsZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gQ0QyN0Y2RTIxNDU3Njc1ODAwNzgyMDdEIC8qIEpTTWVkaWFDb250cm9s
bGVyLmNwcCAqLzsgfTsKIAkJQ0QyN0Y2RTcxNDU3NzBEMzAwNzgyMDdEIC8qIE1lZGlhQ29udHJv
bGxlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBD
RDI3RjZFNjE0NTc3MEQzMDA3ODIwN0QgLyogTWVkaWFDb250cm9sbGVyLmNwcCAqLzsgfTsKIAkJ
Q0QzN0IzOTgxNUMxQjk3MTAwNkRDODk4IC8qIERpYWdub3N0aWNMb2dnaW5nS2V5cy5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDM3QjM3NDE1QzFB
N0UxMDA2REM4OTggLyogRGlhZ25vc3RpY0xvZ2dpbmdLZXlzLmNwcCAqLzsgfTsKQEAgLTEzMzU2
LDYgKzEzMzU3LDcgQEAKIAkJQ0NDMkI1MTIxNUY2MTMwNjAwNDhDREQ2IC8qIERldmljZUNvbnRy
b2xsZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRGV2aWNlQ29udHJvbGxl
ci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDRDEyN0RFQTE0RjMwOTc5MDBFODQ3
NzkgLyogV2ViQ29yZUZ1bGxTY3JlZW5XaW5kb3cuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gV2ViQ29yZUZ1bGxTY3JlZW5XaW5kb3cuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJQ0QxMjdERUIxNEYzMDk3OTAwRTg0Nzc5IC8qIFdlYkNvcmVGdWxsU2NyZWVuV2lu
ZG93Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gV2ViQ29yZUZ1
bGxTY3JlZW5XaW5kb3cubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUNEMUU3MzQ2
MTY3QkM3OEUwMDlBODg1RCAvKiBUZXh0VHJhY2tSZXByZXNlbnRhdGlvbi5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBUZXh0VHJhY2tSZXByZXNlbnRhdGlvbi5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNEMjdGNkUwMTQ1NzVDMUIwMDc4MjA3RCAv
KiBNZWRpYUNvbnRyb2xsZXIuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RL
bm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IE1lZGlhQ29udHJvbGxlci5pZGw7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNEMjdGNkUyMTQ1NzY3NTgwMDc4MjA3RCAvKiBKU01lZGlh
Q29udHJvbGxlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU01l
ZGlhQ29udHJvbGxlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNEMjdGNkUz
MTQ1NzY3NTgwMDc4MjA3RCAvKiBKU01lZGlhQ29udHJvbGxlci5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBKU01lZGlhQ29udHJvbGxlci5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwpAQCAtMTMzOTAsNiArMTMzOTIsNyBAQAogCQlDREM2OUREODE2MzcxRkQzMDA3QzM4
REYgLyogV2ViQ29yZUZ1bGxTY3JlZW5QbGFjZWhvbGRlclZpZXcuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gV2ViQ29yZUZ1bGxTY3JlZW5QbGFjZWhvbGRlclZpZXcuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0RDNjlERDkxNjM3MUZEMzAwN0MzOERGIC8qIFdl
YkNvcmVGdWxsU2NyZWVuUGxhY2Vob2xkZXJWaWV3Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAub2JqY3BwOyBwYXRoID0gV2ViQ29yZUZ1bGxTY3JlZW5QbGFjZWhvbGRlclZpZXcubW07IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNEQ0U1Q0QwMTQ2MzNCQzkwMEQ0N0NDQSAvKiBF
dmVudFRhcmdldEZhY3RvcnkuaW4gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gRXZlbnRUYXJnZXRG
YWN0b3J5LmluOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDREQxRTUyNTE2N0JBNTY0
MDBDRTgyMEIgLyogVGV4dFRyYWNrUmVwcmVzZW50YXRpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gVGV4dFRyYWNrUmVwcmVzZW50YXRpb24uaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJQ0RFQTc2MkMxNDYwODIyNDAwOEIzMUYxIC8qIENsb2NrLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENsb2NrLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCUNERUE3NjJFMTQ2MDg0REUwMDhCMzFGMSAvKiBQbGF0Zm9ybUNsb2NrQ0EuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUGxhdGZvcm1DbG9ja0NBLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0RFQTc2MkYxNDYwODRFRTAwOEIzMUYx
IC8qIFBsYXRmb3JtQ2xvY2tDQS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQ
bGF0Zm9ybUNsb2NrQ0EuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTIwMjQyLDYg
KzIwMjQ1LDggQEAKIAkJCQkwODdFMEFGNDEzNjA2RDBCMDBGQTRCQTggLyogU1ZHR2x5cGguY3Bw
ICovLAogCQkJCTA4N0UwQUY1MTM2MDZEMEIwMEZBNEJBOCAvKiBTVkdHbHlwaC5oICovLAogCQkJ
CTkzMEZDNjg5MTA3MkI5MjgwMDQ1MjkzRSAvKiBUZXh0UmVuZGVyaW5nTW9kZS5oICovLAorCQkJ
CUNERDFFNTI1MTY3QkE1NjQwMENFODIwQiAvKiBUZXh0VHJhY2tSZXByZXNlbnRhdGlvbi5oICov
LAorCQkJCUNEMUU3MzQ2MTY3QkM3OEUwMDlBODg1RCAvKiBUZXh0VHJhY2tSZXByZXNlbnRhdGlv
bi5jcHAgKi8sCiAJCQkJMzc2RENDRTAxM0I0Rjk2NjAwMkVCRUZDIC8qIFRleHRSdW4uY3BwICov
LAogCQkJCUE4MjRCNDY0MEUyRUYyRUEwMDgxQTdCNyAvKiBUZXh0UnVuLmggKi8sCiAJCQkJMUFG
ODlBNDExNTE4RkRFQTAwRTU0N0I1IC8qIFRpbGVkQmFja2luZy5oICovLApAQCAtMjkwNDUsNiAr
MjkwNTAsNyBAQAogCQkJCUZEQTkzMjY2MTY3MDNCQTkwMDg5ODJEQyAvKiBKU09mZmxpbmVBdWRp
b0NvbnRleHQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRkU0NTZGMTgxNjc3RDc0RTAwNUVEREY5
IC8qIERhdGFiYXNlTWFuYWdlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlGMzdBNTYyMjE2NzlD
RjdCMDBDNTcwNDYgLyogSGVhcEdyYXBoU2VyaWFsaXplci5jcHAgaW4gU291cmNlcyAqLywKKwkJ
CQlDRDFFNzM0NzE2N0JDNzhFMDA5QTg4NUQgLyogVGV4dFRyYWNrUmVwcmVzZW50YXRpb24uY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vz
c2luZyA9IDA7CiAJCX07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRp
YUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcApp
bmRleCA1NjY4Nzc5MmNlNzlkMDUyZjgyMjBkZjY1YmZhOWIwNmUwMDM1Y2I1Li43MzBkMjk1Y2Uz
NTM0NzMwNjkwZDA1NWRlNmYzOTgyNDAxZGQ4OWNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TE1lZGlhRWxlbWVudC5jcHAKQEAgLTM4OTcsNiArMzg5NywxOSBAQCBib29sIEhUTUxNZWRpYUVs
ZW1lbnQ6OndpbGxSZXNwb25kVG9Nb3VzZUNsaWNrRXZlbnRzKCkKICNlbmRpZgogfQogCisjaWYg
RU5BQkxFKFZJREVPX1RSQUNLKQorYm9vbCBIVE1MTWVkaWFFbGVtZW50OjpyZXF1aXJlc1RleHRU
cmFja1JlcHJlc2VudGF0aW9uKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9wbGF5ZXIgPyBtX3Bs
YXllci0+cmVxdWlyZXNUZXh0VHJhY2tSZXByZXNlbnRhdGlvbigpIDogMDsKK30KKwordm9pZCBI
VE1MTWVkaWFFbGVtZW50OjpzZXRUZXh0VHJhY2tSZXByZXNlbnRhdGlvbihUZXh0VHJhY2tSZXBy
ZXNlbnRhdGlvbiogcmVwcmVzZW50YXRpb24pCit7CisgICAgaWYgKG1fcGxheWVyKQorICAgICAg
ICBtX3BsYXllci0+c2V0VGV4dFRyYWNrUmVwcmVzZW50YXRpb24ocmVwcmVzZW50YXRpb24pOwor
fQorI2VuZGlmIC8vIEVOQUJMRShWSURFT19UUkFDSykKKwogI2lmIEVOQUJMRShQTFVHSU5fUFJP
WFlfRk9SX1ZJREVPKQogCiB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OmVuc3VyZU1lZGlhUGxheWVy
KCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5oIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmgKaW5kZXggYTlkYjA0N2M1N2Vj
MGY4OWFjMDUxY2EyOGQ5ZTE4ODEzNGE3ZTQyNS4uNDYxNjc1NjEwZWU3NDgwOWU4NWY4MzAzM2E4
ODE3YzA1M2ZlZmViZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFF
bGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmgKQEAg
LTI2NCw2ICsyNjQsOSBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHRleHRUcmFja1JlbW92
ZUN1ZXMoVGV4dFRyYWNrKiwgY29uc3QgVGV4dFRyYWNrQ3VlTGlzdCopOwogICAgIHZpcnR1YWwg
dm9pZCB0ZXh0VHJhY2tBZGRDdWUoVGV4dFRyYWNrKiwgUGFzc1JlZlB0cjxUZXh0VHJhY2tDdWU+
KTsKICAgICB2aXJ0dWFsIHZvaWQgdGV4dFRyYWNrUmVtb3ZlQ3VlKFRleHRUcmFjayosIFBhc3NS
ZWZQdHI8VGV4dFRyYWNrQ3VlPik7CisKKyAgICBib29sIHJlcXVpcmVzVGV4dFRyYWNrUmVwcmVz
ZW50YXRpb24oKSBjb25zdDsKKyAgICB2b2lkIHNldFRleHRUcmFja1JlcHJlc2VudGF0aW9uKFRl
eHRUcmFja1JlcHJlc2VudGF0aW9uKik7CiAjZW5kaWYKIAogI2lmIEVOQUJMRShQTFVHSU5fUFJP
WFlfRk9SX1ZJREVPKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvTWVk
aWFDb250cm9sRWxlbWVudHMuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvTWVkaWFD
b250cm9sRWxlbWVudHMuY3BwCmluZGV4IDhiOGU3M2YxMWQ4MTA4MWY5NmFlZjlkYmQ1Y2E4YjBl
NjZjMjYzMDIuLjUyYTJkNDU0MmQ2ZWI2ZmMxMDBiNmMzNmI2M2JkMTZhYzgzMTA5NTIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01lZGlhQ29udHJvbEVsZW1lbnRzLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xFbGVtZW50cy5j
cHAKQEAgLTM3LDYgKzM3LDcgQEAKICNpbmNsdWRlICJFdmVudFRhcmdldC5oIgogI2luY2x1ZGUg
IkZsb2F0Q29udmVyc2lvbi5oIgogI2luY2x1ZGUgIkZyYW1lLmgiCisjaW5jbHVkZSAiR3JhcGhp
Y3NDb250ZXh0LmgiCiAjaW5jbHVkZSAiSFRNTFZpZGVvRWxlbWVudC5oIgogI2luY2x1ZGUgIkxh
bmd1YWdlLmgiCiAjaW5jbHVkZSAiTG9jYWxpemVkU3RyaW5ncy5oIgpAQCAtNDQsMTAgKzQ1LDEy
IEBACiAjaW5jbHVkZSAiTW91c2VFdmVudC5oIgogI2luY2x1ZGUgIlBhZ2UuaCIKICNpbmNsdWRl
ICJQYWdlR3JvdXAuaCIKKyNpbmNsdWRlICJSZW5kZXJMYXllci5oIgogI2luY2x1ZGUgIlJlbmRl
ck1lZGlhQ29udHJvbEVsZW1lbnRzLmgiCiAjaW5jbHVkZSAiUmVuZGVyU2xpZGVyLmgiCiAjaW5j
bHVkZSAiUmVuZGVyVGhlbWUuaCIKICNpbmNsdWRlICJSZW5kZXJWaWRlby5oIgorI2luY2x1ZGUg
IlJlbmRlclZpZXcuaCIKICNpbmNsdWRlICJTZXR0aW5ncy5oIgogI2lmIEVOQUJMRShWSURFT19U
UkFDSykKICNpbmNsdWRlICJUZXh0VHJhY2suaCIKQEAgLTEyODMsMjYgKzEyODYsOTkgQEAgdm9p
ZCBNZWRpYUNvbnRyb2xUZXh0VHJhY2tDb250YWluZXJFbGVtZW50Ojp1cGRhdGVEaXNwbGF5KCkK
IAogICAgIC8vIDExLiBSZXR1cm4gb3V0cHV0LgogICAgIGhhc0NoaWxkTm9kZXMoKSA/IHNob3co
KSA6IGhpZGUoKTsKKworICAgIGlmIChoYXNDaGlsZE5vZGVzKCkpIHsKKyAgICAgICAgaWYgKG1l
ZGlhRWxlbWVudC0+cmVxdWlyZXNUZXh0VHJhY2tSZXByZXNlbnRhdGlvbigpKSB7CisgICAgICAg
ICAgICBpZiAoIW1fdGV4dFRyYWNrUmVwcmVzZW50YXRpb24pCisgICAgICAgICAgICAgICAgbV90
ZXh0VHJhY2tSZXByZXNlbnRhdGlvbiA9IFRleHRUcmFja1JlcHJlc2VudGF0aW9uOjpjcmVhdGUo
dGhpcyk7CisgICAgICAgICAgICBtZWRpYUVsZW1lbnQtPnNldFRleHRUcmFja1JlcHJlc2VudGF0
aW9uKG1fdGV4dFRyYWNrUmVwcmVzZW50YXRpb24uZ2V0KCkpOworCisgICAgICAgICAgICBpZiAo
UGFnZSogcGFnZSA9IGRvY3VtZW50KCktPnBhZ2UoKSkKKyAgICAgICAgICAgICAgICBtX3RleHRU
cmFja1JlcHJlc2VudGF0aW9uLT5zZXRDb250ZW50U2NhbGUocGFnZS0+ZGV2aWNlU2NhbGVGYWN0
b3IoKSk7CisKKyAgICAgICAgICAgIG1fdGV4dFRyYWNrUmVwcmVzZW50YXRpb24tPnVwZGF0ZSgp
OworICAgICAgICAgICAgc2V0SW5saW5lU3R5bGVQcm9wZXJ0eShDU1NQcm9wZXJ0eVdpZHRoLCBT
dHJpbmc6Om51bWJlcihtX3ZpZGVvRGlzcGxheVNpemUuc2l6ZSgpLndpZHRoKCkpICsgInB4Iik7
CisgICAgICAgICAgICBzZXRJbmxpbmVTdHlsZVByb3BlcnR5KENTU1Byb3BlcnR5SGVpZ2h0LCBT
dHJpbmc6Om51bWJlcihtX3ZpZGVvRGlzcGxheVNpemUuc2l6ZSgpLmhlaWdodCgpKSArICJweCIp
OworICAgICAgICB9CisgICAgfSBlbHNlIHsKKyAgICAgICAgbV90ZXh0VHJhY2tSZXByZXNlbnRh
dGlvbiA9IG51bGxwdHI7CisgICAgICAgIG1lZGlhRWxlbWVudC0+c2V0VGV4dFRyYWNrUmVwcmVz
ZW50YXRpb24oMCk7CisgICAgICAgIHJlbW92ZUlubGluZVN0eWxlUHJvcGVydHkoQ1NTUHJvcGVy
dHlXaWR0aCk7CisgICAgICAgIHJlbW92ZUlubGluZVN0eWxlUHJvcGVydHkoQ1NTUHJvcGVydHlI
ZWlnaHQpOworICAgIH0KIH0KIAogdm9pZCBNZWRpYUNvbnRyb2xUZXh0VHJhY2tDb250YWluZXJF
bGVtZW50Ojp1cGRhdGVTaXplcygpCiB7CiAgICAgSFRNTE1lZGlhRWxlbWVudCogbWVkaWFFbGVt
ZW50ID0gdG9QYXJlbnRNZWRpYUVsZW1lbnQodGhpcyk7Ci0gICAgaWYgKCFtZWRpYUVsZW1lbnQg
fHwgIW1lZGlhRWxlbWVudC0+cmVuZGVyZXIoKSB8fCAhbWVkaWFFbGVtZW50LT5yZW5kZXJlcigp
LT5pc1ZpZGVvKCkpCisgICAgaWYgKCFtZWRpYUVsZW1lbnQpCiAgICAgICAgIHJldHVybjsKIAog
ICAgIGlmICghZG9jdW1lbnQoKS0+cGFnZSgpKQogICAgICAgICByZXR1cm47CiAKLSAgICBJbnRS
ZWN0IHZpZGVvQm94ID0gdG9SZW5kZXJWaWRlbyhtZWRpYUVsZW1lbnQtPnJlbmRlcmVyKCkpLT52
aWRlb0JveCgpOworICAgIEludFJlY3QgdmlkZW9Cb3g7CisKKyAgICBpZiAobV90ZXh0VHJhY2tS
ZXByZXNlbnRhdGlvbikKKyAgICAgICAgdmlkZW9Cb3ggPSBtX3RleHRUcmFja1JlcHJlc2VudGF0
aW9uLT5ib3VuZHMoKTsKKyAgICBlbHNlIHsKKyAgICAgICAgaWYgKCFtZWRpYUVsZW1lbnQtPnJl
bmRlcmVyKCkgfHwgIW1lZGlhRWxlbWVudC0+cmVuZGVyZXIoKS0+aXNWaWRlbygpKQorICAgICAg
ICAgICAgcmV0dXJuOworICAgICAgICB2aWRlb0JveCA9IHRvUmVuZGVyVmlkZW8obWVkaWFFbGVt
ZW50LT5yZW5kZXJlcigpKS0+dmlkZW9Cb3goKTsKKyAgICB9CiAKLSAgICBmbG9hdCBmb250U2l6
ZSA9IHZpZGVvQm94LnNpemUoKS5oZWlnaHQoKSAqIChkb2N1bWVudCgpLT5wYWdlKCktPmdyb3Vw
KCkuY2FwdGlvbkZvbnRTaXplU2NhbGUoKSk7CisgICAgaWYgKG1fdmlkZW9EaXNwbGF5U2l6ZSA9
PSB2aWRlb0JveCkKKyAgICAgICAgcmV0dXJuOworICAgIG1fdmlkZW9EaXNwbGF5U2l6ZSA9IHZp
ZGVvQm94OworCisgICAgaWYgKG1fdGV4dFRyYWNrUmVwcmVzZW50YXRpb24pIHsKKyAgICAgICAg
c2V0SW5saW5lU3R5bGVQcm9wZXJ0eShDU1NQcm9wZXJ0eVdpZHRoLCBTdHJpbmc6Om51bWJlciht
X3ZpZGVvRGlzcGxheVNpemUuc2l6ZSgpLndpZHRoKCkpICsgInB4Iik7CisgICAgICAgIHNldElu
bGluZVN0eWxlUHJvcGVydHkoQ1NTUHJvcGVydHlIZWlnaHQsIFN0cmluZzo6bnVtYmVyKG1fdmlk
ZW9EaXNwbGF5U2l6ZS5zaXplKCkuaGVpZ2h0KCkpICsgInB4Iik7CisgICAgfQorCisgICAgZmxv
YXQgc21hbGxlc3REaW1lbnNpb24gPSBzdGQ6Om1pbihtX3ZpZGVvRGlzcGxheVNpemUuc2l6ZSgp
LmhlaWdodCgpLCBtX3ZpZGVvRGlzcGxheVNpemUuc2l6ZSgpLndpZHRoKCkpOworCisgICAgZmxv
YXQgZm9udFNpemUgPSBzbWFsbGVzdERpbWVuc2lvbiAqIChkb2N1bWVudCgpLT5wYWdlKCktPmdy
b3VwKCkuY2FwdGlvbkZvbnRTaXplU2NhbGUoKSk7CiAgICAgaWYgKGZvbnRTaXplICE9IG1fZm9u
dFNpemUpIHsKICAgICAgICAgbV9mb250U2l6ZSA9IGZvbnRTaXplOwogICAgICAgICBzZXRJbmxp
bmVTdHlsZVByb3BlcnR5KENTU1Byb3BlcnR5Rm9udFNpemUsIFN0cmluZzo6bnVtYmVyKGZvbnRT
aXplKSArICJweCIpOwogICAgIH0KIH0KIAordm9pZCBNZWRpYUNvbnRyb2xUZXh0VHJhY2tDb250
YWluZXJFbGVtZW50OjpwYWludFRleHRUcmFja1JlcHJlc2VudGF0aW9uKEdyYXBoaWNzQ29udGV4
dCogY29udGV4dCwgY29uc3QgSW50UmVjdCYgY29udGV4dFJlY3QpCit7CisgICAgaWYgKCFoYXND
aGlsZE5vZGVzKCkpCisgICAgICAgIHJldHVybjsKKworICAgIFJlbmRlck9iamVjdCogcmVuZGVy
ZXIgPSB0aGlzLT5yZW5kZXJlcigpOworICAgIGlmICghcmVuZGVyZXIpCisgICAgICAgIHJldHVy
bjsKKworICAgIEZyYW1lKiBmcmFtZSA9IGRvY3VtZW50KCktPmZyYW1lKCk7CisgICAgaWYgKCFm
cmFtZSkKKyAgICAgICAgcmV0dXJuOworCisgICAgZG9jdW1lbnQoKS0+dXBkYXRlTGF5b3V0KCk7
CisKKyAgICBMYXlvdXRSZWN0IHRvcExldmVsUmVjdDsKKyAgICBJbnRSZWN0IHBhaW50aW5nUmVj
dCA9IHBpeGVsU25hcHBlZEludFJlY3QocmVuZGVyZXItPnBhaW50aW5nUm9vdFJlY3QodG9wTGV2
ZWxSZWN0KSk7CisKKyAgICAvLyBUcmFuc2xhdGUgdGhlIHJlbmRlcmVyIHBhaW50aW5nIHJlY3Qg
aW50byBncmFwaGljcyBjb250ZXh0IGNvb3JkaW5hdGVzLgorICAgIEZsb2F0U2l6ZSB0cmFuc2xh
dGlvbigtcGFpbnRpbmdSZWN0LngoKSwgLXBhaW50aW5nUmVjdC55KCkpOworCisgICAgLy8gQnV0
IGFuY2hvciB0byB0aGUgYm90dG9tIG9mIHRoZSBncmFwaGljcyBjb250ZXh0IHJlY3QuCisgICAg
dHJhbnNsYXRpb24uZXhwYW5kKG1heCgwLCBjb250ZXh0UmVjdC53aWR0aCgpIC0gcGFpbnRpbmdS
ZWN0LndpZHRoKCkpLCBtYXgoMCwgY29udGV4dFJlY3QuaGVpZ2h0KCkgLSBwYWludGluZ1JlY3Qu
aGVpZ2h0KCkpKTsKKworICAgIGNvbnRleHQtPnRyYW5zbGF0ZSh0cmFuc2xhdGlvbik7CisKKyAg
ICBSZW5kZXJMYXllciogbGF5ZXIgPSBmcmFtZS0+Y29udGVudFJlbmRlcmVyKCktPmxheWVyKCk7
CisgICAgbGF5ZXItPnBhaW50KGNvbnRleHQsIHBhaW50aW5nUmVjdCwgUGFpbnRCZWhhdmlvckZs
YXR0ZW5Db21wb3NpdGluZ0xheWVycywgcmVuZGVyZXIsIDAsIFJlbmRlckxheWVyOjpQYWludExh
eWVyUGFpbnRpbmdDb21wb3NpdGluZ0FsbFBoYXNlcyk7Cit9CisKK3ZvaWQgTWVkaWFDb250cm9s
VGV4dFRyYWNrQ29udGFpbmVyRWxlbWVudDo6dGV4dFRyYWNrUmVwcmVzZW50YXRpb25Cb3VuZHND
aGFuZ2VkKGNvbnN0IEludFJlY3QmKQoreworICAgIHVwZGF0ZVNpemVzKCk7Cit9CiAjZW5kaWYg
Ly8gRU5BQkxFKFZJREVPX1RSQUNLKQogCiAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xFbGVt
ZW50cy5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvTWVkaWFDb250cm9sRWxlbWVudHMu
aAppbmRleCA4OWM5YTAyNDc0NDhlMmJmMDk3MjBlYmRjZjNmZTY5YzVkNWI4YTg0Li42ZjZjZDAz
NGM3MTE5N2Q4ZWE0ZGU3ZWYwNzMwZGI1NzZhNzYyOGNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xFbGVtZW50cy5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvc2hhZG93L01lZGlhQ29udHJvbEVsZW1lbnRzLmgKQEAgLTMyLDYgKzMyLDcgQEAK
IAogI2lmIEVOQUJMRShWSURFTykKICNpbmNsdWRlICJNZWRpYUNvbnRyb2xFbGVtZW50VHlwZXMu
aCIKKyNpbmNsdWRlICJUZXh0VHJhY2tSZXByZXNlbnRhdGlvbi5oIgogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKQEAgLTQzMiw3ICs0MzMsNyBAQCBwcml2YXRlOgogCiAjaWYgRU5BQkxFKFZJREVP
X1RSQUNLKQogCi1jbGFzcyBNZWRpYUNvbnRyb2xUZXh0VHJhY2tDb250YWluZXJFbGVtZW50IDog
cHVibGljIE1lZGlhQ29udHJvbERpdkVsZW1lbnQgeworY2xhc3MgTWVkaWFDb250cm9sVGV4dFRy
YWNrQ29udGFpbmVyRWxlbWVudCA6IHB1YmxpYyBNZWRpYUNvbnRyb2xEaXZFbGVtZW50LCBwdWJs
aWMgVGV4dFRyYWNrUmVwcmVzZW50YXRpb25DbGllbnQgewogcHVibGljOgogICAgIHN0YXRpYyBQ
YXNzUmVmUHRyPE1lZGlhQ29udHJvbFRleHRUcmFja0NvbnRhaW5lckVsZW1lbnQ+IGNyZWF0ZShE
b2N1bWVudCopOwogCkBAIC00NDYsNiArNDQ3LDEwIEBAIHByaXZhdGU6CiAKICAgICB2aXJ0dWFs
IFJlbmRlck9iamVjdCogY3JlYXRlUmVuZGVyZXIoUmVuZGVyQXJlbmEqLCBSZW5kZXJTdHlsZSop
OwogCisgICAgdmlydHVhbCB2b2lkIHBhaW50VGV4dFRyYWNrUmVwcmVzZW50YXRpb24oR3JhcGhp
Y3NDb250ZXh0KiwgY29uc3QgSW50UmVjdCYpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCB0
ZXh0VHJhY2tSZXByZXNlbnRhdGlvbkJvdW5kc0NoYW5nZWQoY29uc3QgSW50UmVjdCYpIE9WRVJS
SURFOworICAgIE93blB0cjxUZXh0VHJhY2tSZXByZXNlbnRhdGlvbj4gbV90ZXh0VHJhY2tSZXBy
ZXNlbnRhdGlvbjsKKwogICAgIEludFJlY3QgbV92aWRlb0Rpc3BsYXlTaXplOwogICAgIGZsb2F0
IG1fZm9udFNpemU7CiAgICAgUmVmUHRyPEhUTUxFbGVtZW50PiBtX2N1ZUNvbnRhaW5lcjsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmNwcAppbmRl
eCA0NmNjNTdlYzNlMzM0YWFkZmU2YTIzMzMxNGY1NzhmZGNkN2M0MDA0Li42NTlhODFhNzRlZmQx
OGVmOTY0MWM0OWE5N2I2ZDM4ZjA5ZjczZjZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3BwCkBAIC0xMTI5LDYgKzExMjksMTYgQEAgdm9p
ZCBNZWRpYVBsYXllcjo6cmVtb3ZlVGV4dFRyYWNrKFBhc3NSZWZQdHI8SW5iYW5kVGV4dFRyYWNr
UHJpdmF0ZT4gdHJhY2spCiAKICAgICBtX21lZGlhUGxheWVyQ2xpZW50LT5tZWRpYVBsYXllckRp
ZFJlbW92ZVRyYWNrKHRyYWNrKTsKIH0KKworYm9vbCBNZWRpYVBsYXllcjo6cmVxdWlyZXNUZXh0
VHJhY2tSZXByZXNlbnRhdGlvbigpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fcHJpdmF0ZS0+cmVx
dWlyZXNUZXh0VHJhY2tSZXByZXNlbnRhdGlvbigpOworfQorCit2b2lkIE1lZGlhUGxheWVyOjpz
ZXRUZXh0VHJhY2tSZXByZXNlbnRhdGlvbihUZXh0VHJhY2tSZXByZXNlbnRhdGlvbiogcmVwcmVz
ZW50YXRpb24pCit7CisgICAgbV9wcml2YXRlLT5zZXRUZXh0VHJhY2tSZXByZXNlbnRhdGlvbihy
ZXByZXNlbnRhdGlvbik7Cit9CiAjZW5kaWYKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmgKaW5kZXggYjI0YTg0ODM3MTA2ODQ4YTJlOTY3YWZi
MjhiODczMTljOGM3N2MxYi4uZjhjNjE4MzhlMzUwNzA0ODBhYzZmNzg3OTFmODJkMDMwYjgzNDEy
YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5
ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5o
CkBAIC02Miw2ICs2Miw3IEBAIGNsYXNzIERvY3VtZW50OwogY2xhc3MgR1N0cmVhbWVyR1dvcmxk
OwogY2xhc3MgTWVkaWFQbGF5ZXJQcml2YXRlSW50ZXJmYWNlOwogY2xhc3MgTWVkaWFTb3VyY2U7
CitjbGFzcyBUZXh0VHJhY2tSZXByZXNlbnRhdGlvbjsKIAogLy8gU3RydWN0dXJlIHRoYXQgd2ls
bCBob2xkIGV2ZXJ5IG5hdGl2ZQogLy8gdHlwZXMgc3VwcG9ydGVkIGJ5IHRoZSBjdXJyZW50IG1l
ZGlhIHBsYXllci4KQEAgLTIxMyw2ICsyMTQsOSBAQCBwdWJsaWM6CiAjaWYgRU5BQkxFKFZJREVP
X1RSQUNLKQogICAgIHZpcnR1YWwgdm9pZCBtZWRpYVBsYXllckRpZEFkZFRyYWNrKFBhc3NSZWZQ
dHI8SW5iYW5kVGV4dFRyYWNrUHJpdmF0ZT4pIHsgfQogICAgIHZpcnR1YWwgdm9pZCBtZWRpYVBs
YXllckRpZFJlbW92ZVRyYWNrKFBhc3NSZWZQdHI8SW5iYW5kVGV4dFRyYWNrUHJpdmF0ZT4pIHsg
fQorCisgICAgdmlydHVhbCB2b2lkIHRleHRUcmFja1JlcHJlc2VudGF0aW9uQm91bmRzQ2hhbmdl
ZChjb25zdCBJbnRSZWN0JikgeyB9CisgICAgdmlydHVhbCB2b2lkIHBhaW50VGV4dFRyYWNrUmVw
cmVzZW50YXRpb24oR3JhcGhpY3NDb250ZXh0KiwgY29uc3QgSW50UmVjdCYpIHsgfQogI2VuZGlm
CiB9OwogCkBAIC00MzYsNiArNDQwLDkgQEAgcHVibGljOgogI2lmIEVOQUJMRShWSURFT19UUkFD
SykKICAgICB2b2lkIGFkZFRleHRUcmFjayhQYXNzUmVmUHRyPEluYmFuZFRleHRUcmFja1ByaXZh
dGU+KTsKICAgICB2b2lkIHJlbW92ZVRleHRUcmFjayhQYXNzUmVmUHRyPEluYmFuZFRleHRUcmFj
a1ByaXZhdGU+KTsKKworICAgIGJvb2wgcmVxdWlyZXNUZXh0VHJhY2tSZXByZXNlbnRhdGlvbigp
IGNvbnN0OworICAgIHZvaWQgc2V0VGV4dFRyYWNrUmVwcmVzZW50YXRpb24oVGV4dFRyYWNrUmVw
cmVzZW50YXRpb24qKTsKICNlbmRpZgogCiBwcml2YXRlOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXJQcml2YXRlLmggYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllclByaXZhdGUuaAppbmRleCBkMzYwMTQ5
YTA5YzZlMmEyMTQxYTc4M2EyNTAzNjg0ZGFlMjRmYmQ2Li5iNTdkZDBkNTZiMTBjZjBhMDllMjc4
Yzk4ZjQ3NjFjMTE0Mzk0MDNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9NZWRpYVBsYXllclByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9NZWRpYVBsYXllclByaXZhdGUuaApAQCAtMTg0LDYgKzE4NCwxMCBAQCBwdWJs
aWM6CiAgICAgdmlydHVhbCBNZWRpYVBsYXllcjo6TWVkaWFLZXlFeGNlcHRpb24gY2FuY2VsS2V5
UmVxdWVzdChjb25zdCBTdHJpbmcmLCBjb25zdCBTdHJpbmcmKSB7IHJldHVybiBNZWRpYVBsYXll
cjo6S2V5U3lzdGVtTm90U3VwcG9ydGVkOyB9CiAjZW5kaWYKIAorI2lmIEVOQUJMRShWSURFT19U
UkFDSykKKyAgICB2aXJ0dWFsIGJvb2wgcmVxdWlyZXNUZXh0VHJhY2tSZXByZXNlbnRhdGlvbigp
IGNvbnN0IHsgcmV0dXJuIDA7IH0KKyAgICB2aXJ0dWFsIHZvaWQgc2V0VGV4dFRyYWNrUmVwcmVz
ZW50YXRpb24oVGV4dFRyYWNrUmVwcmVzZW50YXRpb24qKSB7IH0KKyNlbmRpZgogfTsKIAogfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvVGV4dFRyYWNrUmVw
cmVzZW50YXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvVGV4dFRy
YWNrUmVwcmVzZW50YXRpb24uY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjNjMzQyM2JjYjMyNWQwNjYwMDllNTk1
ZTM2YzUzYTBlNDA3MDQ4NmMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9UZXh0VHJhY2tSZXByZXNlbnRhdGlvbi5jcHAKQEAgLTAsMCArMSw1MCBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKworI2lmIEVOQUJMRShWSURFT19U
UkFDSykKKworI2luY2x1ZGUgIlRleHRUcmFja1JlcHJlc2VudGF0aW9uLmgiCisKK25hbWVzcGFj
ZSBXZWJDb3JlIHsKKworY2xhc3MgTnVsbFRleHRUcmFja1JlcHJlc2VudGF0aW9uIDogcHVibGlj
IFRleHRUcmFja1JlcHJlc2VudGF0aW9uIHsKK3B1YmxpYzoKKyAgICB2aXJ0dWFsIH5OdWxsVGV4
dFRyYWNrUmVwcmVzZW50YXRpb24oKSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlKCkgeyB9
CisgICAgdmlydHVhbCBQbGF0Zm9ybUxheWVyKiBwbGF0Zm9ybUxheWVyKCkgeyByZXR1cm4gMDsg
fQorICAgIHZpcnR1YWwgdm9pZCBzZXRDb250ZW50U2NhbGUoZmxvYXQpIHsgfQorICAgIHZpcnR1
YWwgSW50UmVjdCBib3VuZHMoKSBjb25zdCB7IHJldHVybiBJbnRSZWN0KCk7IH0KK307CisKK1Bh
c3NPd25QdHI8VGV4dFRyYWNrUmVwcmVzZW50YXRpb24+IFRleHRUcmFja1JlcHJlc2VudGF0aW9u
OjpjcmVhdGUoVGV4dFRyYWNrUmVwcmVzZW50YXRpb25DbGllbnQqKQoreworICAgIHJldHVybiBX
VEY6OmFkb3B0UHRyKG5ldyBOdWxsVGV4dFRyYWNrUmVwcmVzZW50YXRpb24oKSk7Cit9CisKK30K
KworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9U
ZXh0VHJhY2tSZXByZXNlbnRhdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvVGV4dFRyYWNrUmVwcmVzZW50YXRpb24uaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yYTRmNTI3NjA1N2NhMmQw
YTE3OGRjOTI4MmIyN2EyOGFlYjM0ZDJiCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvVGV4dFRyYWNrUmVwcmVzZW50YXRpb24uaApAQCAtMCwwICsx
LDY0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgor
ICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAq
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBUZXh0VHJhY2tSZXByZXNlbnRhdGlvbl9oCisj
ZGVmaW5lIFRleHRUcmFja1JlcHJlc2VudGF0aW9uX2gKKworI2lmIEVOQUJMRShWSURFT19UUkFD
SykKKworI2luY2x1ZGUgIkludFJlY3QuaCIKKyNpbmNsdWRlICJQbGF0Zm9ybUxheWVyLmgiCisj
aW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFz
cyBHcmFwaGljc0NvbnRleHQ7CitjbGFzcyBJbnRSZWN0OworCitjbGFzcyBUZXh0VHJhY2tSZXBy
ZXNlbnRhdGlvbkNsaWVudCB7CitwdWJsaWM6CisgICAgdmlydHVhbCB+VGV4dFRyYWNrUmVwcmVz
ZW50YXRpb25DbGllbnQoKSB7IH0KKworICAgIHZpcnR1YWwgdm9pZCBwYWludFRleHRUcmFja1Jl
cHJlc2VudGF0aW9uKEdyYXBoaWNzQ29udGV4dCosIGNvbnN0IEludFJlY3QmKSA9IDA7CisgICAg
dmlydHVhbCB2b2lkIHRleHRUcmFja1JlcHJlc2VudGF0aW9uQm91bmRzQ2hhbmdlZChjb25zdCBJ
bnRSZWN0JikgPSAwOworfTsKKworY2xhc3MgVGV4dFRyYWNrUmVwcmVzZW50YXRpb24geworcHVi
bGljOgorICAgIHN0YXRpYyBQYXNzT3duUHRyPFRleHRUcmFja1JlcHJlc2VudGF0aW9uPiBjcmVh
dGUoVGV4dFRyYWNrUmVwcmVzZW50YXRpb25DbGllbnQqKTsKKworICAgIHZpcnR1YWwgflRleHRU
cmFja1JlcHJlc2VudGF0aW9uKCkgeyB9CisKKyAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlKCkgPSAw
OworICAgIHZpcnR1YWwgUGxhdGZvcm1MYXllciogcGxhdGZvcm1MYXllcigpID0gMDsKKyAgICB2
aXJ0dWFsIHZvaWQgc2V0Q29udGVudFNjYWxlKGZsb2F0KSA9IDA7CisgICAgdmlydHVhbCBJbnRS
ZWN0IGJvdW5kcygpIGNvbnN0ID0gMDsKK307CisKK30KKworI2VuZGlmCisKKyNlbmRpZiAvLyBU
ZXh0VHJhY2tSZXByZXNlbnRhdGlvbl9oCg==
</data>
<flag name="review"
          id="196426"
          type_id="1"
          status="+"
          setter="eric.carlson"
    />
          </attachment>
      

    </bug>

</bugzilla>