<?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>103652</bug_id>
          
          <creation_ts>2012-11-29 11:16:04 -0800</creation_ts>
          <short_desc>CSP 1.1: Make the CSP_NEXT flag runtime enabled.</short_desc>
          <delta_ts>2012-12-01 00:36:53 -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>WebCore Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>103810</dependson>
          <blocked>85558</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Mike West">mkwst</reporter>
          <assigned_to name="Mike West">mkwst</assigned_to>
          <cc>abarth</cc>
    
    <cc>dglazkov</cc>
    
    <cc>fishd</cc>
    
    <cc>jamesr</cc>
    
    <cc>ojan</cc>
    
    <cc>tkent+wkapi</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>779209</commentid>
    <comment_count>0</comment_count>
    <who name="Mike West">mkwst</who>
    <bug_when>2012-11-29 11:16:04 -0800</bug_when>
    <thetext>Adam&apos;s pointed me to http://trac.webkit.org/browser/trunk/Source/WebKit/chromium/src/WebRuntimeFeatures.cpp, which looks like a good place to start digging. :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>779346</commentid>
    <comment_count>1</comment_count>
      <attachid>176793</attachid>
    <who name="Mike West">mkwst</who>
    <bug_when>2012-11-29 12:45:20 -0800</bug_when>
    <thetext>Created attachment 176793
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>779348</commentid>
    <comment_count>2</comment_count>
    <who name="Mike West">mkwst</who>
    <bug_when>2012-11-29 12:46:39 -0800</bug_when>
    <thetext>Cobbled together from reading other folks&apos; patches, but I think this looks right.  Let&apos;s see what the bots make of it. :)

WDYT, Adam?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>779354</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-11-29 12:49:56 -0800</bug_when>
    <thetext>Please wait for approval from abarth@webkit.org, dglazkov@chromium.org, fishd@chromium.org, jamesr@chromium.org or tkent@chromium.org before submitting, as this patch contains changes to the Chromium public API. See also https://trac.webkit.org/wiki/ChromiumWebKitAPI.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>779518</commentid>
    <comment_count>4</comment_count>
      <attachid>176793</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-11-29 15:36:20 -0800</bug_when>
    <thetext>Comment on attachment 176793
Patch

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

&gt; Source/WebCore/page/ContentSecurityPolicy.cpp:1721
&gt; +#if ENABLE(CSP_NEXT)
&gt; +    if (m_scriptExecutionContext-&gt;isDocument()) {
&gt; +        Document* document = static_cast&lt;Document*&gt;(m_scriptExecutionContext);
&gt; +        return document-&gt;settings() &amp;&amp; document-&gt;settings()-&gt;securityPolicyEnabled();
&gt; +    }
&gt; +#endif

Rather than using Settings, we should just call securityPolicyEnabled() from RuntimeEnabledFeatures.h.

I know it&apos;s kind of confusing to have two different mechanisms for enabling features.  We use Settings if we want to vary the feature on a per-Page basis.  We us RuntimeEnabledFeatures.h when we want to control the feature globally.  For features that have DOM APIs, we need to control them globally, which is why we use RuntimeEnabledFeatures.

&gt; Source/WebCore/page/Settings.h:249
&gt; +#if ENABLE(CSP_NEXT)
&gt; +        void setSecurityPolicyEnabled(bool enabled) { m_securityPolicyEnabled = enabled; }
&gt; +        bool securityPolicyEnabled() const { return m_securityPolicyEnabled; }
&gt; +#else
&gt; +        void setSecurityPolicyEnabled(bool) { }
&gt; +        bool securityPolicyEnabled() const { return false; }
&gt; +#endif

This isn&apos;t needed.  (If it were needed, you could have put it in Settings.in to get this code autogenerated.)

&gt; Source/WebKit/chromium/src/WebSettingsImpl.h:138
&gt; +    virtual void setSecurityPolicyEnabled(bool);

I would pick a more specific name.  This API makes it sound like we&apos;re disabling WebKit&apos;s security policy.  Perhaps setExperimentalContentSecurityPolicyFeaturesEnabled() ?  Maybe that&apos;s too verbose...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>779529</commentid>
    <comment_count>5</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-11-29 15:39:14 -0800</bug_when>
    <thetext>Here&apos;s a recent patch that makes a feature runtime named: https://bugs.webkit.org/show_bug.cgi?id=103669</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>779530</commentid>
    <comment_count>6</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-11-29 15:39:25 -0800</bug_when>
    <thetext>s/named/enabled/</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>779685</commentid>
    <comment_count>7</comment_count>
      <attachid>176873</attachid>
    <who name="Mike West">mkwst</who>
    <bug_when>2012-11-29 18:04:21 -0800</bug_when>
    <thetext>Created attachment 176873
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>779690</commentid>
    <comment_count>8</comment_count>
    <who name="Mike West">mkwst</who>
    <bug_when>2012-11-29 18:06:38 -0800</bug_when>
    <thetext>Ok, thanks for taking the time to explain. The RuntimeEnabledFeatures/Settings distinction makes sense, and in this case it ends up being less code! Hooray!

(In reply to comment #4)
&gt; &gt; Source/WebKit/chromium/src/WebSettingsImpl.h:138
&gt; &gt; +    virtual void setSecurityPolicyEnabled(bool);
&gt; 
&gt; I would pick a more specific name.  This API makes it sound like we&apos;re disabling WebKit&apos;s security policy.  Perhaps setExperimentalContentSecurityPolicyFeaturesEnabled() ?  Maybe that&apos;s too verbose...

Eh. We&apos;ve got more than 80 columns here, we might as well use them. :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>780370</commentid>
    <comment_count>9</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-11-30 13:34:21 -0800</bug_when>
    <thetext>Looks great.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>780670</commentid>
    <comment_count>10</comment_count>
      <attachid>176873</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-11-30 22:54:17 -0800</bug_when>
    <thetext>Comment on attachment 176873
Patch

Clearing flags on attachment: 176873

Committed r136305: &lt;http://trac.webkit.org/changeset/136305&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>780671</commentid>
    <comment_count>11</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-11-30 22:54:21 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>176793</attachid>
            <date>2012-11-29 12:45:20 -0800</date>
            <delta_ts>2012-11-29 18:04:13 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-103652-20121129214252.patch</filename>
            <type>text/plain</type>
            <size>16524</size>
            <attacher name="Mike West">mkwst</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM2MTM3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZGMyMzk2YWY2YTk0YzNh
Nzc0ZjcxY2Q5OGNmMzYzOTBiMzU3MmI3Yy4uNWYxYjA2YWRmMzQ1NDBkMGM4NDYzNDI3ZDNmODgx
ZTZmMDY2YTllNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQzIEBACisyMDEyLTExLTI5ICBNaWtl
IFdlc3QgIDxta3dzdEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgQ1NQIDEuMTogTWFrZSB0aGUg
Q1NQX05FWFQgZmxhZyBydW50aW1lIGVuYWJsZWQuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDM2NTIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBDb250ZW50IFNlY3VyaXR5IFBvbGljeSAxLjEgY29udGlu
dWVzIHRvIGxpdmUgYmVoaW5kIHRoZSBDU1BfTkVYVCBmbGFnLAorICAgICAgICB0aGlzIHBhdGNo
IGFkZHMgYW5vdGhlciBsYXllciBvbiB0b3Agb2YgdGhhdCBpbiBvcmRlciB0byBlbmFibGUgcnVu
dGltZQorICAgICAgICBkZWNpc2lvbnMgYWJvdXQgd2hldGhlciBpdCBzaG91bGQgYmUgYWN0aXZl
LgorCisgICAgICAgICogYmluZGluZ3MvZ2VuZXJpYy9SdW50aW1lRW5hYmxlZEZlYXR1cmVzLmNw
cDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAqIGJpbmRpbmdzL2dlbmVyaWMvUnVudGlt
ZUVuYWJsZWRGZWF0dXJlcy5oOgorICAgICAgICAoUnVudGltZUVuYWJsZWRGZWF0dXJlcyk6Cisg
ICAgICAgIChXZWJDb3JlOjpSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzZWN1cml0eVBvbGljeUVu
YWJsZWQpOgorICAgICAgICAoV2ViQ29yZTo6UnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2V0U2Vj
dXJpdHlQb2xpY3lFbmFibGVkKToKKyAgICAgICAgICAgIEFkZHMgbWV0aG9kcyBpbiBvcmRlciB0
byBjb3JyZWN0bHkgaGFuZGxlIFtWOEVuYWJsZWRBdFJ1bnRpbWU9c2VjdXJpdHlQb2xpY3ldLAor
ICAgICAgICAgICAgd2hpY2ggY292ZXJzIHRoZSAnZG9jdW1lbnQuc2VjdXJpdHlQb2xpY3knIG9i
amVjdC4KKyAgICAgICAgKiBkb20vRG9jdW1lbnQuaWRsOgorICAgICAgICAgICAgVGFnIHRoZSAn
c2VjdXJpdHlQb2xpY3knIG9iamVjdCBvbiBEb2N1bWVudCB3aXRoIHRoZSBydW50aW1lIGZsYWcu
CisgICAgICAgICogcGFnZS9Db250ZW50U2VjdXJpdHlQb2xpY3kuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6Q1NQRGlyZWN0aXZlTGlzdDo6YWRkRGlyZWN0aXZlKToKKyAgICAgICAgICAgIENoZWNr
IHRoYXQgZXhwZXJpbWVudGFsIGZlYXR1cmVzIGFyZSBydW50aW1lIGVuYWJsZWQgYmVmb3JlCisg
ICAgICAgICAgICBwcm9jZXNzaW5nIDEuMSBkaXJlY3RpdmVzLgorICAgICAgICAoV2ViQ29yZTo6
Q29udGVudFNlY3VyaXR5UG9saWN5OjpleHBlcmltZW50YWxGZWF0dXJlc0VuYWJsZWQpOgorICAg
ICAgICAoV2ViQ29yZSk6CisgICAgICAgICogcGFnZS9Db250ZW50U2VjdXJpdHlQb2xpY3kuaDoK
KyAgICAgICAgICAgIEFkZHMgYSBuZXcgbWV0aG9kIHdoaWNoIGNoZWNrcyBhZ2FpbnN0CisgICAg
ICAgICAgICBTZXR0aW5nczo6c2VjdXJpdHlQb2xpY3lFbmFibGVkIHRvIGRldGVybWluZSB3aGV0
aGVyIENTUCAxLjEKKyAgICAgICAgICAgIGZlYXR1cmVzIGFyZSBlbmFibGVkLgorICAgICAgICAq
IHBhZ2UvU2V0dGluZ3MuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2V0dGluZ3M6OlNldHRpbmdz
KToKKyAgICAgICAgKiBwYWdlL1NldHRpbmdzLmg6CisgICAgICAgIChTZXR0aW5ncyk6CisgICAg
ICAgIChXZWJDb3JlOjpTZXR0aW5nczo6c2V0U2VjdXJpdHlQb2xpY3lFbmFibGVkKToKKyAgICAg
ICAgKFdlYkNvcmU6OlNldHRpbmdzOjpzZWN1cml0eVBvbGljeUVuYWJsZWQpOgorICAgICAgICAg
ICAgTmV3IG1ldGhvZHMgb24gU2V0dGluZ3MgdG8gZGV0ZXJtaW5lIHdoZXRoZXIgQ1NQIDEuMSBm
ZWF0dXJlcyBhcmUKKyAgICAgICAgICAgIGVuYWJsZWQuCisKIDIwMTItMTEtMjkgIFRpYW5jaGVu
ZyBKaWFuZyAgPHRpamlhbmdAcmltLmNvbT4KIAogICAgICAgICBbQmxhY2tCZXJyeV0gVXBkYXRl
IEJCMTAgZm9ybSB0aGVtZS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hh
bmdlTG9nIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXggZDQyMGFiYjAz
YjlhMTg1MDMwZThkMTBmZTc0MDI2Y2Y1OTlkZDA0MC4uNzMyMWI2NTQ0OTcwMjIyZDM0ZGEzMmFl
MTJhMTMwNGE2NTVkMGU1MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFu
Z2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwz
MCBAQAorMjAxMi0xMS0yOSAgTWlrZSBXZXN0ICA8bWt3c3RAY2hyb21pdW0ub3JnPgorCisgICAg
ICAgIENTUCAxLjE6IE1ha2UgdGhlIENTUF9ORVhUIGZsYWcgcnVudGltZSBlbmFibGVkLgorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAzNjUyCisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhlIENTUF9ORVhU
IGZsYWcgY29udGludWVzIHRvIGJlIGVuYWJsZWQgb24gdGhlIENocm9taXVtIHBvcnQsIGJ1dCB0
aGlzCisgICAgICAgIHBhdGNoIG5vdyBsb2NrcyB0aGUgZmVhdHVyZXMgYXdheSBiZWhpbmQgdGhl
IHNlY3VyaXR5UG9saWN5IHJ1bnRpbWUKKyAgICAgICAgZmxhZy4KKworICAgICAgICAqIHB1Ymxp
Yy9XZWJSdW50aW1lRmVhdHVyZXMuaDoKKyAgICAgICAgKFdlYlJ1bnRpbWVGZWF0dXJlcyk6Cisg
ICAgICAgICogcHVibGljL1dlYlNldHRpbmdzLmg6CisgICAgICAgICogc3JjL1dlYlJ1bnRpbWVG
ZWF0dXJlcy5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlJ1bnRpbWVGZWF0dXJlczo6ZW5hYmxl
U2VjdXJpdHlQb2xpY3kpOgorICAgICAgICAoV2ViS2l0KToKKyAgICAgICAgKFdlYktpdDo6V2Vi
UnVudGltZUZlYXR1cmVzOjppc1NlY3VyaXR5UG9saWN5RW5hYmxlZCk6CisgICAgICAgICAgICBB
ZGRzIHRoZSBmZWF0dXJlIHRvIFdlYlJ1bnRpbWVGZWF0dXJlcyBzbyBpdCBjYW4gYmUgdG9nZ2xl
ZCBmcm9tCisgICAgICAgICAgICBpbnNpZGUgQ2hyb21pdW0uCisgICAgICAgICogc3JjL1dlYlNl
dHRpbmdzSW1wbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlNldHRpbmdzSW1wbDo6c2V0U2Vj
dXJpdHlQb2xpY3lFbmFibGVkKToKKyAgICAgICAgKFdlYktpdCk6CisgICAgICAgICogc3JjL1dl
YlNldHRpbmdzSW1wbC5oOgorICAgICAgICAoV2ViU2V0dGluZ3NJbXBsKToKKyAgICAgICAgICAg
IERpdHRvIGZvciBzZXR0aW5ncy4KKwogMjAxMi0xMS0yOSAgRmxvcmluIE1hbGl0YSAgPGZtYWxp
dGFAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFtTa2lhXSBBZGQgbWlzc2luZyBPcGFxdWVSZWdp
b25Ta2lhIG5vdGlmaWVyIGNhbGxzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9nZW5lcmljL1J1bnRpbWVFbmFibGVkRmVhdHVyZXMuY3BwIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvZ2VuZXJpYy9SdW50aW1lRW5hYmxlZEZlYXR1cmVzLmNwcAppbmRleCBlMDhlNDBjMDcx
N2VlNTNiYTc4N2FhZjZmNmEyNGZkOWQ0OTIxYzYzLi4wNmFmYmZjZGJjYzNjYTUxMDVkZDdhNzU3
MTRmZjcxZGE4NDU0OGQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9nZW5l
cmljL1J1bnRpbWVFbmFibGVkRmVhdHVyZXMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2dlbmVyaWMvUnVudGltZUVuYWJsZWRGZWF0dXJlcy5jcHAKQEAgLTIyOCw0ICsyMjgsOCBA
QCBib29sIFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OmlzRGlhbG9nRWxlbWVudEVuYWJsZWQgPSBm
YWxzZTsKIGJvb2wgUnVudGltZUVuYWJsZWRGZWF0dXJlczo6aXNSZXF1ZXN0QXV0b2NvbXBsZXRl
RW5hYmxlZCA9IGZhbHNlOwogI2VuZGlmCiAKKyNpZiBFTkFCTEUoQ1NQX05FWFQpCitib29sIFJ1
bnRpbWVFbmFibGVkRmVhdHVyZXM6OmlzU2VjdXJpdHlQb2xpY3lFbmFibGVkID0gZmFsc2U7Cisj
ZW5kaWYKKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvZ2VuZXJpYy9SdW50aW1lRW5hYmxlZEZlYXR1cmVzLmggYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9nZW5lcmljL1J1bnRpbWVFbmFibGVkRmVhdHVyZXMuaAppbmRleCBiYjk1
Y2U4NDU2Y2I5MjNjYjkwMzAwNGExZmFlZjZmZTc5ODMxYjQ0Li5hMGNkMGVlMzQ0MDg0OWFiOTZj
ZjVkMGY3NTkzMDJlYzNiMmUxMGNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9nZW5lcmljL1J1bnRpbWVFbmFibGVkRmVhdHVyZXMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9nZW5lcmljL1J1bnRpbWVFbmFibGVkRmVhdHVyZXMuaApAQCAtMjQ3LDYgKzI0Nywx
MSBAQCBwdWJsaWM6CiAgICAgc3RhdGljIHZvaWQgc2V0RGlhbG9nRWxlbWVudEVuYWJsZWQoYm9v
bCBpc0VuYWJsZWQpIHsgaXNEaWFsb2dFbGVtZW50RW5hYmxlZCA9IGlzRW5hYmxlZDsgfQogI2Vu
ZGlmCiAKKyNpZiBFTkFCTEUoQ1NQX05FWFQpCisgICAgc3RhdGljIGJvb2wgc2VjdXJpdHlQb2xp
Y3lFbmFibGVkKCkgeyByZXR1cm4gaXNTZWN1cml0eVBvbGljeUVuYWJsZWQ7IH0KKyAgICBzdGF0
aWMgdm9pZCBzZXRTZWN1cml0eVBvbGljeUVuYWJsZWQoYm9vbCBpc0VuYWJsZWQpIHsgaXNTZWN1
cml0eVBvbGljeUVuYWJsZWQgPSBpc0VuYWJsZWQ7IH0KKyNlbmRpZgorCiAgICAgc3RhdGljIGJv
b2wgbGFuZ0F0dHJpYnV0ZUF3YXJlRm9ybUNvbnRyb2xVSUVuYWJsZWQoKSB7IHJldHVybiBpc0xh
bmdBdHRyaWJ1dGVBd2FyZUZvcm1Db250cm9sVUlFbmFibGVkOyB9CiAgICAgLy8gVGhlIGxhbmcg
YXR0cmlidXRlIHN1cHBvcnQgaXMgaW5jb21wbGV0ZSBhbmQgc2hvdWxkIG9ubHkgYmUgdHVybmVk
IG9uIGZvciB0ZXN0cy4KICAgICBzdGF0aWMgdm9pZCBzZXRMYW5nQXR0cmlidXRlQXdhcmVGb3Jt
Q29udHJvbFVJRW5hYmxlZChib29sIGlzRW5hYmxlZCkgeyBpc0xhbmdBdHRyaWJ1dGVBd2FyZUZv
cm1Db250cm9sVUlFbmFibGVkID0gaXNFbmFibGVkOyB9CkBAIC0zNTYsNiArMzYxLDEwIEBAIHBy
aXZhdGU6CiAjaWYgRU5BQkxFKFJFUVVFU1RfQVVUT0NPTVBMRVRFKQogICAgIHN0YXRpYyBib29s
IGlzUmVxdWVzdEF1dG9jb21wbGV0ZUVuYWJsZWQ7CiAjZW5kaWYKKworI2lmIEVOQUJMRShDU1Bf
TkVYVCkKKyAgICBzdGF0aWMgYm9vbCBpc1NlY3VyaXR5UG9saWN5RW5hYmxlZDsKKyNlbmRpZgog
fTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
ZG9tL0RvY3VtZW50LmlkbCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5pZGwKaW5kZXgg
MTBjZmVmYTA3YTE3ZTk4ZGMyYWZmMzMwMzk1OTAxNzc0ZTZiZjlkYi4uZTM0YzQ2NjBjMDEzZDg0
ZDkyMDZjMDEyYjU0N2YwNjA2NTM4MThlYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9t
L0RvY3VtZW50LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaWRsCkBAIC0z
NjYsNyArMzY2LDcgQEAKICAgICBbQ29uZGl0aW9uYWw9UEFHRV9WSVNJQklMSVRZX0FQSV0gcmVh
ZG9ubHkgYXR0cmlidXRlIGJvb2xlYW4gd2Via2l0SGlkZGVuOwogCiAgICAgLy8gU2VjdXJpdHkg
UG9saWN5IEFQSTogaHR0cDovL2R2Y3MudzMub3JnL2hnL2NvbnRlbnQtc2VjdXJpdHktcG9saWN5
L3Jhdy1maWxlL3RpcC9jc3Atc3BlY2lmaWNhdGlvbi5kZXYuaHRtbCNzY3JpcHQtaW50ZXJmYWNl
cwotICAgIFtDb25kaXRpb25hbD1DU1BfTkVYVF0gcmVhZG9ubHkgYXR0cmlidXRlIERPTVNlY3Vy
aXR5UG9saWN5IHNlY3VyaXR5UG9saWN5OworICAgIFtDb25kaXRpb25hbD1DU1BfTkVYVCwgVjhF
bmFibGVkQXRSdW50aW1lPXNlY3VyaXR5UG9saWN5XSByZWFkb25seSBhdHRyaWJ1dGUgRE9NU2Vj
dXJpdHlQb2xpY3kgc2VjdXJpdHlQb2xpY3k7CiAKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvQ29udGVudFNlY3VyaXR5UG9saWN5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvQ29udGVudFNlY3VyaXR5UG9saWN5LmNwcAppbmRleCBiZTcyMmRjMTEwNGI3OTY2ZGVjOGVi
OGVmMDVjOTY4MzY2YzgxMjMzLi4yZDg3Zjc2MzIxMTU5NzU2YzgwNTc5OWQ3YWY0YjAzNGNmNWVi
ZWJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NvbnRlbnRTZWN1cml0eVBvbGlj
eS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9Db250ZW50U2VjdXJpdHlQb2xpY3kuY3Bw
CkBAIC00Miw2ICs0Miw3IEBACiAjaW5jbHVkZSAiU2NyaXB0Q2FsbFN0YWNrRmFjdG9yeS5oIgog
I2luY2x1ZGUgIlNjcmlwdFN0YXRlLmgiCiAjaW5jbHVkZSAiU2VjdXJpdHlPcmlnaW4uaCIKKyNp
bmNsdWRlICJTZXR0aW5ncy5oIgogI2luY2x1ZGUgIlRleHRFbmNvZGluZy5oIgogI2luY2x1ZGUg
PHd0Zi9IYXNoU2V0Lmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvVGV4dFBvc2l0aW9uLmg+CkBAIC0x
MzEzLDcgKzEzMTQsNyBAQCB2b2lkIENTUERpcmVjdGl2ZUxpc3Q6OmFkZERpcmVjdGl2ZShjb25z
dCBTdHJpbmcmIG5hbWUsIGNvbnN0IFN0cmluZyYgdmFsdWUpCiAgICAgZWxzZSBpZiAoZXF1YWxJ
Z25vcmluZ0Nhc2UobmFtZSwgcmVwb3J0VVJJKSkKICAgICAgICAgcGFyc2VSZXBvcnRVUkkobmFt
ZSwgdmFsdWUpOwogI2lmIEVOQUJMRShDU1BfTkVYVCkKLSAgICBlbHNlIGlmIChtX2V4cGVyaW1l
bnRhbCkgeworICAgIGVsc2UgaWYgKG1fZXhwZXJpbWVudGFsICYmIG1fcG9saWN5LT5leHBlcmlt
ZW50YWxGZWF0dXJlc0VuYWJsZWQoKSkgewogICAgICAgICBpZiAoZXF1YWxJZ25vcmluZ0Nhc2Uo
bmFtZSwgZm9ybUFjdGlvbikpCiAgICAgICAgICAgICBzZXRDU1BEaXJlY3RpdmU8U291cmNlTGlz
dERpcmVjdGl2ZT4obmFtZSwgdmFsdWUsIG1fZm9ybUFjdGlvbik7CiAgICAgICAgIGVsc2UgaWYg
KGVxdWFsSWdub3JpbmdDYXNlKG5hbWUsIHBsdWdpblR5cGVzKSkKQEAgLTE3MTAsNCArMTcxMSwx
NSBAQCB2b2lkIENvbnRlbnRTZWN1cml0eVBvbGljeTo6cmVwb3J0QmxvY2tlZFNjcmlwdEV4ZWN1
dGlvblRvSW5zcGVjdG9yKGNvbnN0IFN0cmluZwogICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlv
bjo6c2NyaXB0RXhlY3V0aW9uQmxvY2tlZEJ5Q1NQKG1fc2NyaXB0RXhlY3V0aW9uQ29udGV4dCwg
ZGlyZWN0aXZlVGV4dCk7CiB9CiAKK2Jvb2wgQ29udGVudFNlY3VyaXR5UG9saWN5OjpleHBlcmlt
ZW50YWxGZWF0dXJlc0VuYWJsZWQoKSBjb25zdAoreworI2lmIEVOQUJMRShDU1BfTkVYVCkKKyAg
ICBpZiAobV9zY3JpcHRFeGVjdXRpb25Db250ZXh0LT5pc0RvY3VtZW50KCkpIHsKKyAgICAgICAg
RG9jdW1lbnQqIGRvY3VtZW50ID0gc3RhdGljX2Nhc3Q8RG9jdW1lbnQqPihtX3NjcmlwdEV4ZWN1
dGlvbkNvbnRleHQpOworICAgICAgICByZXR1cm4gZG9jdW1lbnQtPnNldHRpbmdzKCkgJiYgZG9j
dW1lbnQtPnNldHRpbmdzKCktPnNlY3VyaXR5UG9saWN5RW5hYmxlZCgpOworICAgIH0KKyNlbmRp
ZgorICAgIHJldHVybiBmYWxzZTsKK30KKwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGFnZS9Db250ZW50U2VjdXJpdHlQb2xpY3kuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ29udGVu
dFNlY3VyaXR5UG9saWN5LmgKaW5kZXggZDJjZjNiNTQwYmY0ZmJlNjZkZDY2NjZhNzA3M2VmZjJj
MGQwZmU0Ni4uOWNiNDBhM2UxM2Q1OGRhMmQwZTUyMGVhNjZjM2E5YWRjYzBlYWM5NyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9Db250ZW50U2VjdXJpdHlQb2xpY3kuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL0NvbnRlbnRTZWN1cml0eVBvbGljeS5oCkBAIC0xMjAsNiArMTIw
LDggQEAgcHVibGljOgogICAgIHZvaWQgZW5mb3JjZVNhbmRib3hGbGFncyhTYW5kYm94RmxhZ3Mp
IGNvbnN0OwogICAgIFN0cmluZyBldmFsRGlzYWJsZWRFcnJvck1lc3NhZ2UoKSBjb25zdDsKIAor
ICAgIGJvb2wgZXhwZXJpbWVudGFsRmVhdHVyZXNFbmFibGVkKCkgY29uc3Q7CisKIHByaXZhdGU6
CiAgICAgZXhwbGljaXQgQ29udGVudFNlY3VyaXR5UG9saWN5KFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQqKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmNwcAppbmRleCA5Mzc4YzQ4ZGU5MGUxYTJjNzZi
NThmNWFlMzg5NTQ5YTkxZjg0MDRiLi5kNTAxNTE4MjZmMTM3MmViMzNlYmI0Y2VkYTAyYmI2MGZk
ZGQxZWYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmNwcApAQCAtMTcwLDYgKzE3MCw5IEBAIFNl
dHRpbmdzOjpTZXR0aW5ncyhQYWdlKiBwYWdlKQogI2lmIEVOQUJMRShDU1NfVkFSSUFCTEVTKQog
ICAgICwgbV9jc3NWYXJpYWJsZXNFbmFibGVkKGZhbHNlKQogI2VuZGlmCisjaWYgRU5BQkxFKENT
UF9ORVhUKQorICAgICwgbV9zZWN1cml0eVBvbGljeUVuYWJsZWQoZmFsc2UpCisjZW5kaWYKICAg
ICAsIG1fYWNjZWxlcmF0ZWRDb21wb3NpdGluZ0VuYWJsZWQodHJ1ZSkKICAgICAsIG1fc2hvd0Rl
YnVnQm9yZGVycyhmYWxzZSkKICAgICAsIG1fc2hvd1JlcGFpbnRDb3VudGVyKGZhbHNlKQpAQCAt
MTkzLDcgKzE5Niw3IEBAIFNldHRpbmdzOjpTZXR0aW5ncyhQYWdlKiBwYWdlKQogICAgIC8vIGhh
c2ggYmVmb3JlIHRyeWluZyB0byB1c2UgaXQuCiAgICAgQXRvbWljU3RyaW5nOjppbml0KCk7CiAg
ICAgaW5pdGlhbGl6ZURlZmF1bHRGb250RmFtaWxpZXMoKTsKLSAgICBtX3BhZ2UgPSBwYWdlOyAv
LyBQYWdlIGlzIG5vdCB5ZXQgZnVsbHkgaW5pdGlhbGl6ZWQgd2VuIGNvbnN0cnVjdGluZyBTZXR0
aW5ncywgc28ga2VlcGluZyBtX3BhZ2UgbnVsbCBvdmVyIGluaXRpYWxpemVEZWZhdWx0Rm9udEZh
bWlsaWVzKCkgY2FsbC4KKyAgICBtX3BhZ2UgPSBwYWdlOyAvLyBQYWdlIGlzIG5vdCB5ZXQgZnVs
bHkgaW5pdGlhbGl6ZWQgd2hlbiBjb25zdHJ1Y3RpbmcgU2V0dGluZ3MsIHNvIGtlZXBpbmcgbV9w
YWdlIG51bGwgb3ZlciBpbml0aWFsaXplRGVmYXVsdEZvbnRGYW1pbGllcygpIGNhbGwuCiB9CiAK
IFBhc3NPd25QdHI8U2V0dGluZ3M+IFNldHRpbmdzOjpjcmVhdGUoUGFnZSogcGFnZSkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuaCBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvU2V0dGluZ3MuaAppbmRleCBhODY1NTUwNDZlY2Q0OGQyZmNkYTEyMGY2M2FiM2FhNThiODE5
YjZkLi43MDNmMjBjZmM3MzNkOWUyNDNiNzNkN2QzYTkwZWUzNGIxZjE4M2QyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9TZXR0aW5ncy5oCkBAIC0yNDAsNiArMjQwLDE0IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAg
ICAgICAgYm9vbCBjc3NWYXJpYWJsZXNFbmFibGVkKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0K
ICNlbmRpZgogCisjaWYgRU5BQkxFKENTUF9ORVhUKQorICAgICAgICB2b2lkIHNldFNlY3VyaXR5
UG9saWN5RW5hYmxlZChib29sIGVuYWJsZWQpIHsgbV9zZWN1cml0eVBvbGljeUVuYWJsZWQgPSBl
bmFibGVkOyB9CisgICAgICAgIGJvb2wgc2VjdXJpdHlQb2xpY3lFbmFibGVkKCkgY29uc3QgeyBy
ZXR1cm4gbV9zZWN1cml0eVBvbGljeUVuYWJsZWQ7IH0KKyNlbHNlCisgICAgICAgIHZvaWQgc2V0
U2VjdXJpdHlQb2xpY3lFbmFibGVkKGJvb2wpIHsgfQorICAgICAgICBib29sIHNlY3VyaXR5UG9s
aWN5RW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CisjZW5kaWYKKwogICAgICAgICB2
b2lkIHNldEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdFbmFibGVkKGJvb2wpOwogICAgICAgICBib29s
IGFjY2VsZXJhdGVkQ29tcG9zaXRpbmdFbmFibGVkKCkgY29uc3QgeyByZXR1cm4gbV9hY2NlbGVy
YXRlZENvbXBvc2l0aW5nRW5hYmxlZDsgfQogCkBAIC0zNDksMTMgKzM1NywxNiBAQCBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAgICAgICAgIGJvb2wgbV9pc0NTU0N1c3RvbUZpbHRlckVuYWJsZWQgOiAx
OwogI2lmIEVOQUJMRShDU1NfU1RJQ0tZX1BPU0lUSU9OKQogICAgICAgICBib29sIG1fY3NzU3Rp
Y2t5UG9zaXRpb25FbmFibGVkIDogMTsKLSNlbmRpZiAgICAgICAgCisjZW5kaWYKICNpZiBFTkFC
TEUoQ1NTX1JFR0lPTlMpCiAgICAgICAgIGJvb2wgbV9jc3NSZWdpb25zRW5hYmxlZCA6IDE7CiAj
ZW5kaWYKICNpZiBFTkFCTEUoQ1NTX1ZBUklBQkxFUykKICAgICAgICAgYm9vbCBtX2Nzc1Zhcmlh
Ymxlc0VuYWJsZWQgOiAxOwogI2VuZGlmCisjaWYgRU5BQkxFKENTUF9ORVhUKQorICAgICAgICBi
b29sIG1fc2VjdXJpdHlQb2xpY3lFbmFibGVkIDogMTsKKyNlbmRpZgogICAgICAgICBib29sIG1f
YWNjZWxlcmF0ZWRDb21wb3NpdGluZ0VuYWJsZWQgOiAxOwogICAgICAgICBib29sIG1fc2hvd0Rl
YnVnQm9yZGVycyA6IDE7CiAgICAgICAgIGJvb2wgbV9zaG93UmVwYWludENvdW50ZXIgOiAxOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViUnVudGltZUZlYXR1
cmVzLmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJSdW50aW1lRmVhdHVyZXMu
aAppbmRleCAyZjZlZjFjZTRlYTA5NGZkMWJjYTRmMTI4ZGEzNGU1MmE1MDk3NWFiLi43YzMxYzlm
MWIzZDkzMzAyNmY2Yjk4YTI2OGRjOTFkMTBlMmIxYzhhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3B1YmxpYy9XZWJSdW50aW1lRmVhdHVyZXMuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3B1YmxpYy9XZWJSdW50aW1lRmVhdHVyZXMuaApAQCAtMTU3LDYgKzE1Nyw4
IEBAIHB1YmxpYzoKICAgICBXRUJLSVRfRVhQT1JUIHN0YXRpYyB2b2lkIGVuYWJsZVJlcXVlc3RB
dXRvY29tcGxldGUoYm9vbCk7CiAgICAgV0VCS0lUX0VYUE9SVCBzdGF0aWMgYm9vbCBpc1JlcXVl
c3RBdXRvY29tcGxldGVFbmFibGVkKCk7CiAKKyAgICBXRUJLSVRfRVhQT1JUIHN0YXRpYyB2b2lk
IGVuYWJsZVNlY3VyaXR5UG9saWN5KGJvb2wpOworICAgIFdFQktJVF9FWFBPUlQgc3RhdGljIGJv
b2wgaXNTZWN1cml0eVBvbGljeUVuYWJsZWQoKTsKIHByaXZhdGU6CiAgICAgV2ViUnVudGltZUZl
YXR1cmVzKCk7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMv
V2ViU2V0dGluZ3MuaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlNldHRpbmdz
LmgKaW5kZXggNGM5ZDBjYzY0YzRkYmI3MWUyNDUzNmQxOTk4M2YzNmEyOGZhNzEwYi4uODI2MTRi
YzkzMGE5NTc1MDAwMWJmNWVjYmYzMjg2OTc0MDZhYTI4MCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViU2V0dGluZ3MuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL3B1YmxpYy9XZWJTZXR0aW5ncy5oCkBAIC0xNDMsNiArMTQzLDcgQEAgcHVibGljOgog
ICAgIHZpcnR1YWwgdm9pZCBzZXRQcml2aWxlZ2VkV2ViR0xFeHRlbnNpb25zRW5hYmxlZChib29s
KSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHNldFJlbmRlclZTeW5jRW5hYmxlZChib29sKSA9IDA7
CiAgICAgdmlydHVhbCB2b2lkIHNldFNhbnNTZXJpZkZvbnRGYW1pbHkoY29uc3QgV2ViU3RyaW5n
JiwgVVNjcmlwdENvZGUgPSBVU0NSSVBUX0NPTU1PTikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBz
ZXRTZWN1cml0eVBvbGljeUVuYWJsZWQoYm9vbCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBzZXRT
ZXJpZkZvbnRGYW1pbHkoY29uc3QgV2ViU3RyaW5nJiwgVVNjcmlwdENvZGUgPSBVU0NSSVBUX0NP
TU1PTikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBzZXRTaG91bGRQcmludEJhY2tncm91bmRzKGJv
b2wpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgc2V0U2hvdWxkUmVzcGVjdEltYWdlT3JpZW50YXRp
b24oYm9vbCkgPSAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2Vi
UnVudGltZUZlYXR1cmVzLmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlJ1bnRp
bWVGZWF0dXJlcy5jcHAKaW5kZXggYTE5NWRlMjkyOTA4MDBjMDUwM2YxMThiMGIzNjM3MWYwYjI4
NDZjOS4uNTMxOWU4N2QyYzQxZmI4M2QzMTI4NmVhNDY2NDllOGNmNjkwM2RlOCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViUnVudGltZUZlYXR1cmVzLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJSdW50aW1lRmVhdHVyZXMuY3BwCkBAIC02
MTEsNiArNjExLDI0IEBAIGJvb2wgV2ViUnVudGltZUZlYXR1cmVzOjppc0RpYWxvZ0VsZW1lbnRF
bmFibGVkKCkKICNlbmRpZgogfQogCit2b2lkIFdlYlJ1bnRpbWVGZWF0dXJlczo6ZW5hYmxlU2Vj
dXJpdHlQb2xpY3koYm9vbCBlbmFibGUpCit7CisjaWYgRU5BQkxFKENTUF9ORVhUKQorICAgIFJ1
bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNldFNlY3VyaXR5UG9saWN5RW5hYmxlZChlbmFibGUpOwor
I2Vsc2UKKyAgICBVTlVTRURfUEFSQU0oZW5hYmxlKTsKKyNlbmRpZgorfQorCitib29sIFdlYlJ1
bnRpbWVGZWF0dXJlczo6aXNTZWN1cml0eVBvbGljeUVuYWJsZWQoKQoreworI2lmIEVOQUJMRShD
U1BfTkVYVCkKKyAgICByZXR1cm4gUnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2VjdXJpdHlQb2xp
Y3lFbmFibGVkKCk7CisjZWxzZQorICAgIHJldHVybiBmYWxzZTsKKyNlbmRpZgorfQorCiB2b2lk
IFdlYlJ1bnRpbWVGZWF0dXJlczo6ZW5hYmxlQ1NTRXhjbHVzaW9ucyhib29sIGVuYWJsZSkKIHsK
ICAgICBSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzZXRDU1NFeGNsdXNpb25zRW5hYmxlZChlbmFi
bGUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViU2V0dGluZ3NJ
bXBsLmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlNldHRpbmdzSW1wbC5jcHAK
aW5kZXggNmEzMzc4NmFjZjNiNTI1OGUxNGJlMGNjMTVkYWExYjEyMGZhZjcwZC4uZDM4OWNhYzRj
YTk5ZDI1ZjY0NTkzYmZjNzZhNTM2NjcxNTgyMmM5NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9zcmMvV2ViU2V0dGluZ3NJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL3NyYy9XZWJTZXR0aW5nc0ltcGwuY3BwCkBAIC03MTgsNCArNzE4LDEwIEBAIHZvaWQg
V2ViU2V0dGluZ3NJbXBsOjpzZXRBbGxvd0N1c3RvbVNjcm9sbGJhckluTWFpbkZyYW1lKGJvb2wg
ZW5hYmxlZCkKICAgICBtX3NldHRpbmdzLT5zZXRBbGxvd0N1c3RvbVNjcm9sbGJhckluTWFpbkZy
YW1lKGVuYWJsZWQpOwogfQogCit2b2lkIFdlYlNldHRpbmdzSW1wbDo6c2V0U2VjdXJpdHlQb2xp
Y3lFbmFibGVkKGJvb2wgZW5hYmxlZCkKK3sKKyAgICBtX3NldHRpbmdzLT5zZXRTZWN1cml0eVBv
bGljeUVuYWJsZWQoZW5hYmxlZCk7Cit9CisKKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJTZXR0aW5nc0ltcGwuaCBiL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlNldHRpbmdzSW1wbC5oCmluZGV4IGFiOTI1NjJm
YTk1Yzc5ZTI5ZmRiZmMyZTBlMjMwZWI0NGE5M2Q2OTYuLjI1YjBlNDQ3MDM1NjRkYWY0YzAwMTM0
ODNjNTM3MWVkY2U5ZjQzOGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3Jj
L1dlYlNldHRpbmdzSW1wbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlNl
dHRpbmdzSW1wbC5oCkBAIC0xMzUsNiArMTM1LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9p
ZCBzZXRQcml2aWxlZ2VkV2ViR0xFeHRlbnNpb25zRW5hYmxlZChib29sKTsKICAgICB2aXJ0dWFs
IHZvaWQgc2V0UmVuZGVyVlN5bmNFbmFibGVkKGJvb2wpOwogICAgIHZpcnR1YWwgdm9pZCBzZXRT
YW5zU2VyaWZGb250RmFtaWx5KGNvbnN0IFdlYlN0cmluZyYsIFVTY3JpcHRDb2RlID0gVVNDUklQ
VF9DT01NT04pOworICAgIHZpcnR1YWwgdm9pZCBzZXRTZWN1cml0eVBvbGljeUVuYWJsZWQoYm9v
bCk7CiAgICAgdmlydHVhbCB2b2lkIHNldFNlcmlmRm9udEZhbWlseShjb25zdCBXZWJTdHJpbmcm
LCBVU2NyaXB0Q29kZSA9IFVTQ1JJUFRfQ09NTU9OKTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0U2hv
dWxkRGlzcGxheUNhcHRpb25zKGJvb2wpOwogICAgIHZpcnR1YWwgdm9pZCBzZXRTaG91bGREaXNw
bGF5U3VidGl0bGVzKGJvb2wpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMv
Q2hhbmdlTG9nCmluZGV4IDVmOTllY2FjYzI0Yjk5ZTFkMzQ4MTg4ZmY4YjU5ZjIyN2I1MzY0OTMu
LmRiNjAxZTMzYzlkYTExY2Q1MGI3MWZkZGQ1ODQzM2MzYmU3MmZlOTIgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOCBAQAorMjAx
Mi0xMS0yOSAgTWlrZSBXZXN0ICA8bWt3c3RAY2hyb21pdW0ub3JnPgorCisgICAgICAgIENTUCAx
LjE6IE1ha2UgdGhlIENTUF9ORVhUIGZsYWcgcnVudGltZSBlbmFibGVkLgorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAzNjUyCisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRW5zdXJlcyB0aGF0IHRoZSBuZXcg
U2VjdXJpdHlQb2xpY3kgcnVudGltZSBmbGFnIGFuZCBzZXR0aW5nIGlzIGVuYWJsZWQKKyAgICAg
ICAgZm9yIENocm9taXVtJ3MgdGVzdHMuCisKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9jaHJv
bWl1bS9UZXN0U2hlbGwuY3BwOgorICAgICAgICAoVGVzdFNoZWxsOjpUZXN0U2hlbGwpOgorICAg
ICAgICAqIER1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1dlYlByZWZlcmVuY2VzLmNwcDoKKyAgICAg
ICAgKFdlYlByZWZlcmVuY2VzOjphcHBseVRvKToKKwogMjAxMi0xMS0yOSAgRXJpYyBTZWlkZWwg
IDxlcmljQHdlYmtpdC5vcmc+CiAKICAgICAgICAgcnVuLXBlcmYtdGVzdHMgLS1jaHJvbWl1bS1h
bmRyb2lkIGZhaWxzIGR1ZSB0byBTa2lhIElORk8gbG9nZ2luZwpkaWZmIC0tZ2l0IGEvVG9vbHMv
RHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFNoZWxsLmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJU
cmVlL2Nocm9taXVtL1Rlc3RTaGVsbC5jcHAKaW5kZXggNzVmZWMxMzBhMDdjNTZmNzk3YjQzOWVm
NGM5ZWRhMmZjZDIwNDkyYy4uYzkzMDE1NzFlNjMzYTUwNzg2YjEyZTkzZTVkOGE4NmJmZGFhM2Vi
NiAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFNoZWxsLmNw
cAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0U2hlbGwuY3BwCkBAIC0x
NDgsNiArMTQ4LDcgQEAgVGVzdFNoZWxsOjpUZXN0U2hlbGwoKQogICAgIFdlYlJ1bnRpbWVGZWF0
dXJlczo6ZW5hYmxlU3R5bGVTY29wZWQodHJ1ZSk7CiAgICAgV2ViUnVudGltZUZlYXR1cmVzOjpl
bmFibGVTY3JpcHRlZFNwZWVjaCh0cnVlKTsKICAgICBXZWJSdW50aW1lRmVhdHVyZXM6OmVuYWJs
ZVJlcXVlc3RBdXRvY29tcGxldGUodHJ1ZSk7CisgICAgV2ViUnVudGltZUZlYXR1cmVzOjplbmFi
bGVTZWN1cml0eVBvbGljeSh0cnVlKTsKIAogICAgIC8vIDMwIHNlY29uZCBpcyB0aGUgc2FtZSBh
cyB0aGUgdmFsdWUgaW4gTWFjIERSVC4KICAgICAvLyBJZiB3ZSB1c2UgYSB2YWx1ZSBzbWFsbGVy
IHRoYW4gdGhlIHRpbWVvdXQgdmFsdWUgb2YKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJU
cmVlL2Nocm9taXVtL1dlYlByZWZlcmVuY2VzLmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2No
cm9taXVtL1dlYlByZWZlcmVuY2VzLmNwcAppbmRleCBlMTM5MzlkMzJkNDVmNjg2MDA5OGIxZDk1
ZjU3YzA4MTcwNzlkYWZiLi40YTJhNDEzNDk5MWU1ZmZiYzUxMWE5YmMyMjQ5NjZhMWQ0YjdkMmQ0
IDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9XZWJQcmVmZXJlbmNl
cy5jcHAKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vV2ViUHJlZmVyZW5jZXMu
Y3BwCkBAIC0yNTgsNCArMjU4LDUgQEAgdm9pZCBXZWJQcmVmZXJlbmNlczo6YXBwbHlUbyhXZWJW
aWV3KiB3ZWJWaWV3KQogICAgIHNldHRpbmdzLT5zZXRWaXN1YWxXb3JkTW92ZW1lbnRFbmFibGVk
KGZhbHNlKTsKICAgICBzZXR0aW5ncy0+c2V0UGFzc3dvcmRFY2hvRW5hYmxlZChmYWxzZSk7CiAg
ICAgc2V0dGluZ3MtPnNldEFwcGx5RGV2aWNlU2NhbGVGYWN0b3JJbkNvbXBvc2l0b3IodHJ1ZSk7
CisgICAgc2V0dGluZ3MtPnNldFNlY3VyaXR5UG9saWN5RW5hYmxlZCh0cnVlKTsKIH0K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>176873</attachid>
            <date>2012-11-29 18:04:21 -0800</date>
            <delta_ts>2012-11-30 22:54:17 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-103652-20121130030150.patch</filename>
            <type>text/plain</type>
            <size>10957</size>
            <attacher name="Mike West">mkwst</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM2MTU1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjhkZTdkOTIxMWU3YjYw
MTZiODUyMWQ4ZDRiMjk4MWNlYmQwZGU2OS4uNmNlMDQwNWZjZTVmOTFlZmIwYWJiNWM4YTNkOTc3
YTZkZWFkOTdlNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM0IEBACisyMDEyLTExLTI5ICBNaWtl
IFdlc3QgIDxta3dzdEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgQ1NQIDEuMTogTWFrZSB0aGUg
Q1NQX05FWFQgZmxhZyBydW50aW1lIGVuYWJsZWQuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDM2NTIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBDb250ZW50IFNlY3VyaXR5IFBvbGljeSAxLjEgY29udGlu
dWVzIHRvIGxpdmUgYmVoaW5kIHRoZSBDU1BfTkVYVCBmbGFnLAorICAgICAgICB0aGlzIHBhdGNo
IGFkZHMgYW5vdGhlciBsYXllciBvbiB0b3Agb2YgdGhhdCBpbiBvcmRlciB0byBlbmFibGUgcnVu
dGltZQorICAgICAgICBkZWNpc2lvbnMgYWJvdXQgd2hldGhlciBpdCBzaG91bGQgYmUgYWN0aXZl
LgorCisgICAgICAgICogYmluZGluZ3MvZ2VuZXJpYy9SdW50aW1lRW5hYmxlZEZlYXR1cmVzLmNw
cDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAqIGJpbmRpbmdzL2dlbmVyaWMvUnVudGlt
ZUVuYWJsZWRGZWF0dXJlcy5oOgorICAgICAgICAoUnVudGltZUVuYWJsZWRGZWF0dXJlcyk6Cisg
ICAgICAgIChXZWJDb3JlOjpSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpleHBlcmltZW50YWxDb250
ZW50U2VjdXJpdHlQb2xpY3lGZWF0dXJlc0VuYWJsZWQpOgorICAgICAgICAoV2ViQ29yZTo6UnVu
dGltZUVuYWJsZWRGZWF0dXJlczo6c2V0RXhwZXJpbWVudGFsQ29udGVudFNlY3VyaXR5UG9saWN5
RmVhdHVyZXNFbmFibGVkKToKKyAgICAgICAgICAgIEFkZHMgbWV0aG9kcyBpbiBvcmRlciB0byBj
b3JyZWN0bHkgaGFuZGxlIGVuYWJsaW5nIGFuZCBkaXNhYmxpbmcKKyAgICAgICAgICAgIENTUCAx
LjEgZmVhdHVyZXMuCisgICAgICAgICogZG9tL0RvY3VtZW50LmlkbDoKKyAgICAgICAgICAgIEdh
dGUgdGhlICdkb2N1bWVudC5zZWN1cml0eVBvbGljeScgb2JqZWN0IG9uIHRoZSBydW50aW1lIGZs
YWcuCisgICAgICAgICogcGFnZS9Db250ZW50U2VjdXJpdHlQb2xpY3kuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6Q1NQRGlyZWN0aXZlTGlzdDo6YWRkRGlyZWN0aXZlKToKKyAgICAgICAgICAgIENo
ZWNrIHRoYXQgZXhwZXJpbWVudGFsIGZlYXR1cmVzIGFyZSBydW50aW1lIGVuYWJsZWQgYmVmb3Jl
CisgICAgICAgICAgICBwcm9jZXNzaW5nIDEuMSBkaXJlY3RpdmVzLgorICAgICAgICAoV2ViQ29y
ZTo6Q29udGVudFNlY3VyaXR5UG9saWN5OjpleHBlcmltZW50YWxGZWF0dXJlc0VuYWJsZWQpOgor
ICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgICogcGFnZS9Db250ZW50U2VjdXJpdHlQb2xpY3ku
aDoKKyAgICAgICAgICAgIEFkZHMgYSBuZXcgbWV0aG9kIHdoaWNoIGNoZWNrcyBhZ2FpbnN0IHRo
ZSBydW50aW1lIGZsYWcgdG8gZGV0ZXJtaW5lCisgICAgICAgICAgICB3aGV0aGVyIENTUCAxLjEg
ZmVhdHVyZXMgYXJlIGVuYWJsZWQuCisKIDIwMTItMTEtMjkgIE1hcnRpbiBSb2JpbnNvbiAgPG1y
b2JpbnNvbkBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtHVEtdIFtXZWJLaXQyXSBFbWJlZCB0aGUg
SFRUUCBhdXRoZW50aWNhdGlvbiBkaWFsb2cgaW50byB0aGUgV2ViVmlldwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L0NoYW5nZUxvZwppbmRleCBkZjM2MTM5MWM5MGY4YTQ3YmQ2YmFkYmU3NGQ2NWVkMjVkYmJiMzUw
Li4xY2Q4ZWY4MGMzYWM4YTE3M2M2MDlhNTY0NmFkYTJmNDgwYTU0MTliIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDEyLTExLTI5ICBNaWtlIFdlc3QgIDxt
a3dzdEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgQ1NQIDEuMTogTWFrZSB0aGUgQ1NQX05FWFQg
ZmxhZyBydW50aW1lIGVuYWJsZWQuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xMDM2NTIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBUaGUgQ1NQX05FWFQgZmxhZyBjb250aW51ZXMgdG8gYmUgZW5hYmxlZCBv
biB0aGUgQ2hyb21pdW0gcG9ydCwgYnV0IHRoaXMKKyAgICAgICAgcGF0Y2ggbm93IGxvY2tzIHRo
ZSBmZWF0dXJlcyBhd2F5IGJlaGluZCB0aGUgc2VjdXJpdHlQb2xpY3kgcnVudGltZQorICAgICAg
ICBmbGFnLgorCisgICAgICAgICogcHVibGljL1dlYlJ1bnRpbWVGZWF0dXJlcy5oOgorICAgICAg
ICAoV2ViUnVudGltZUZlYXR1cmVzKToKKyAgICAgICAgKiBzcmMvV2ViUnVudGltZUZlYXR1cmVz
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUnVudGltZUZlYXR1cmVzOjplbmFibGVFeHBlcmlt
ZW50YWxDb250ZW50U2VjdXJpdHlQb2xpY3lGZWF0dXJlcyk6CisgICAgICAgIChXZWJLaXQpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJSdW50aW1lRmVhdHVyZXM6OmlzRXhwZXJpbWVudGFsQ29udGVu
dFNlY3VyaXR5UG9saWN5RmVhdHVyZXNFbmFibGVkKToKKyAgICAgICAgICAgIEFkZHMgdGhlIGZl
YXR1cmUgdG8gV2ViUnVudGltZUZlYXR1cmVzIHNvIGl0IGNhbiBiZSB0b2dnbGVkIGZyb20KKyAg
ICAgICAgICAgIGluc2lkZSBDaHJvbWl1bS4KKwogMjAxMi0xMS0yOSAgU3RlcGhlbiBDaGVubmV5
ICA8c2NoZW5uZXlAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFtDaHJvbWl1bV0gQWRkIGNvZGUg
c3VwcHByZXNzaW9uIGZsYWdzIGZvciBza2lhCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9nZW5lcmljL1J1bnRpbWVFbmFibGVkRmVhdHVyZXMuY3BwIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvZ2VuZXJpYy9SdW50aW1lRW5hYmxlZEZlYXR1cmVzLmNwcAppbmRleCBlMDhl
NDBjMDcxN2VlNTNiYTc4N2FhZjZmNmEyNGZkOWQ0OTIxYzYzLi44NzQxMWI4ZmRjMDU5YmI2ZGIw
Y2UwNDc2NDIzMWFkZTAwNjhjZmRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9nZW5lcmljL1J1bnRpbWVFbmFibGVkRmVhdHVyZXMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2dlbmVyaWMvUnVudGltZUVuYWJsZWRGZWF0dXJlcy5jcHAKQEAgLTIyOCw0ICsy
MjgsOCBAQCBib29sIFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OmlzRGlhbG9nRWxlbWVudEVuYWJs
ZWQgPSBmYWxzZTsKIGJvb2wgUnVudGltZUVuYWJsZWRGZWF0dXJlczo6aXNSZXF1ZXN0QXV0b2Nv
bXBsZXRlRW5hYmxlZCA9IGZhbHNlOwogI2VuZGlmCiAKKyNpZiBFTkFCTEUoQ1NQX05FWFQpCiti
b29sIFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OmFyZUV4cGVyaW1lbnRhbENvbnRlbnRTZWN1cml0
eVBvbGljeUZlYXR1cmVzRW5hYmxlZCA9IGZhbHNlOworI2VuZGlmCisKIH0gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2dlbmVyaWMvUnVu
dGltZUVuYWJsZWRGZWF0dXJlcy5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvZ2VuZXJpYy9S
dW50aW1lRW5hYmxlZEZlYXR1cmVzLmgKaW5kZXggYmI5NWNlODQ1NmNiOTIzY2I5MDMwMDRhMWZh
ZWY2ZmU3OTgzMWI0NC4uYTAxMmMxMGU5OGVmMjJiMTY3YjI0ZTM5MGE2MDgwYzgyOTJhNmRlNCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvZ2VuZXJpYy9SdW50aW1lRW5hYmxl
ZEZlYXR1cmVzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvZ2VuZXJpYy9SdW50aW1l
RW5hYmxlZEZlYXR1cmVzLmgKQEAgLTI0Nyw2ICsyNDcsMTEgQEAgcHVibGljOgogICAgIHN0YXRp
YyB2b2lkIHNldERpYWxvZ0VsZW1lbnRFbmFibGVkKGJvb2wgaXNFbmFibGVkKSB7IGlzRGlhbG9n
RWxlbWVudEVuYWJsZWQgPSBpc0VuYWJsZWQ7IH0KICNlbmRpZgogCisjaWYgRU5BQkxFKENTUF9O
RVhUKQorICAgIHN0YXRpYyBib29sIGV4cGVyaW1lbnRhbENvbnRlbnRTZWN1cml0eVBvbGljeUZl
YXR1cmVzRW5hYmxlZCgpIHsgcmV0dXJuIGFyZUV4cGVyaW1lbnRhbENvbnRlbnRTZWN1cml0eVBv
bGljeUZlYXR1cmVzRW5hYmxlZDsgfQorICAgIHN0YXRpYyB2b2lkIHNldEV4cGVyaW1lbnRhbENv
bnRlbnRTZWN1cml0eVBvbGljeUZlYXR1cmVzRW5hYmxlZChib29sIGlzRW5hYmxlZCkgeyBhcmVF
eHBlcmltZW50YWxDb250ZW50U2VjdXJpdHlQb2xpY3lGZWF0dXJlc0VuYWJsZWQgPSBpc0VuYWJs
ZWQ7IH0KKyNlbmRpZgorCiAgICAgc3RhdGljIGJvb2wgbGFuZ0F0dHJpYnV0ZUF3YXJlRm9ybUNv
bnRyb2xVSUVuYWJsZWQoKSB7IHJldHVybiBpc0xhbmdBdHRyaWJ1dGVBd2FyZUZvcm1Db250cm9s
VUlFbmFibGVkOyB9CiAgICAgLy8gVGhlIGxhbmcgYXR0cmlidXRlIHN1cHBvcnQgaXMgaW5jb21w
bGV0ZSBhbmQgc2hvdWxkIG9ubHkgYmUgdHVybmVkIG9uIGZvciB0ZXN0cy4KICAgICBzdGF0aWMg
dm9pZCBzZXRMYW5nQXR0cmlidXRlQXdhcmVGb3JtQ29udHJvbFVJRW5hYmxlZChib29sIGlzRW5h
YmxlZCkgeyBpc0xhbmdBdHRyaWJ1dGVBd2FyZUZvcm1Db250cm9sVUlFbmFibGVkID0gaXNFbmFi
bGVkOyB9CkBAIC0zNTYsNiArMzYxLDEwIEBAIHByaXZhdGU6CiAjaWYgRU5BQkxFKFJFUVVFU1Rf
QVVUT0NPTVBMRVRFKQogICAgIHN0YXRpYyBib29sIGlzUmVxdWVzdEF1dG9jb21wbGV0ZUVuYWJs
ZWQ7CiAjZW5kaWYKKworI2lmIEVOQUJMRShDU1BfTkVYVCkKKyAgICBzdGF0aWMgYm9vbCBhcmVF
eHBlcmltZW50YWxDb250ZW50U2VjdXJpdHlQb2xpY3lGZWF0dXJlc0VuYWJsZWQ7CisjZW5kaWYK
IH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9Eb2N1bWVudC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaWRsCmluZGV4
IDEwY2ZlZmEwN2ExN2U5OGRjMmFmZjMzMDM5NTkwMTc3NGU2YmY5ZGIuLmUzZDRiNDVkODZkNTMx
M2EyNGZjMmM1YWY0NWQ2NGQ5OTFlMzNhOTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9Eb2N1bWVudC5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmlkbApAQCAt
MzY2LDcgKzM2Niw3IEBACiAgICAgW0NvbmRpdGlvbmFsPVBBR0VfVklTSUJJTElUWV9BUEldIHJl
YWRvbmx5IGF0dHJpYnV0ZSBib29sZWFuIHdlYmtpdEhpZGRlbjsKIAogICAgIC8vIFNlY3VyaXR5
IFBvbGljeSBBUEk6IGh0dHA6Ly9kdmNzLnczLm9yZy9oZy9jb250ZW50LXNlY3VyaXR5LXBvbGlj
eS9yYXctZmlsZS90aXAvY3NwLXNwZWNpZmljYXRpb24uZGV2Lmh0bWwjc2NyaXB0LWludGVyZmFj
ZXMKLSAgICBbQ29uZGl0aW9uYWw9Q1NQX05FWFRdIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TZWN1
cml0eVBvbGljeSBzZWN1cml0eVBvbGljeTsKKyAgICBbQ29uZGl0aW9uYWw9Q1NQX05FWFQsIFY4
RW5hYmxlZEF0UnVudGltZT1leHBlcmltZW50YWxDb250ZW50U2VjdXJpdHlQb2xpY3lGZWF0dXJl
c10gcmVhZG9ubHkgYXR0cmlidXRlIERPTVNlY3VyaXR5UG9saWN5IHNlY3VyaXR5UG9saWN5Owog
CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NvbnRlbnRTZWN1cml0eVBv
bGljeS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NvbnRlbnRTZWN1cml0eVBvbGljeS5jcHAK
aW5kZXggYmU3MjJkYzExMDRiNzk2NmRlYzhlYjhlZjA1Yzk2ODM2NmM4MTIzMy4uNDk5NjMwMmU2
YTAxMTkxZDIzZWZhYWJiYTA2YzQzNTMzMzVlNTNkOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGFnZS9Db250ZW50U2VjdXJpdHlQb2xpY3kuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvQ29udGVudFNlY3VyaXR5UG9saWN5LmNwcApAQCAtMzcsNiArMzcsNyBAQAogI2luY2x1ZGUg
Ikluc3BlY3RvclZhbHVlcy5oIgogI2luY2x1ZGUgIktVUkwuaCIKICNpbmNsdWRlICJQaW5nTG9h
ZGVyLmgiCisjaW5jbHVkZSAiUnVudGltZUVuYWJsZWRGZWF0dXJlcy5oIgogI2luY2x1ZGUgIlNj
aGVtZVJlZ2lzdHJ5LmgiCiAjaW5jbHVkZSAiU2NyaXB0Q2FsbFN0YWNrLmgiCiAjaW5jbHVkZSAi
U2NyaXB0Q2FsbFN0YWNrRmFjdG9yeS5oIgpAQCAtMTMxMyw3ICsxMzE0LDcgQEAgdm9pZCBDU1BE
aXJlY3RpdmVMaXN0OjphZGREaXJlY3RpdmUoY29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBTdHJp
bmcmIHZhbHVlKQogICAgIGVsc2UgaWYgKGVxdWFsSWdub3JpbmdDYXNlKG5hbWUsIHJlcG9ydFVS
SSkpCiAgICAgICAgIHBhcnNlUmVwb3J0VVJJKG5hbWUsIHZhbHVlKTsKICNpZiBFTkFCTEUoQ1NQ
X05FWFQpCi0gICAgZWxzZSBpZiAobV9leHBlcmltZW50YWwpIHsKKyAgICBlbHNlIGlmIChtX2V4
cGVyaW1lbnRhbCAmJiBtX3BvbGljeS0+ZXhwZXJpbWVudGFsRmVhdHVyZXNFbmFibGVkKCkpIHsK
ICAgICAgICAgaWYgKGVxdWFsSWdub3JpbmdDYXNlKG5hbWUsIGZvcm1BY3Rpb24pKQogICAgICAg
ICAgICAgc2V0Q1NQRGlyZWN0aXZlPFNvdXJjZUxpc3REaXJlY3RpdmU+KG5hbWUsIHZhbHVlLCBt
X2Zvcm1BY3Rpb24pOwogICAgICAgICBlbHNlIGlmIChlcXVhbElnbm9yaW5nQ2FzZShuYW1lLCBw
bHVnaW5UeXBlcykpCkBAIC0xNzEwLDQgKzE3MTEsMTMgQEAgdm9pZCBDb250ZW50U2VjdXJpdHlQ
b2xpY3k6OnJlcG9ydEJsb2NrZWRTY3JpcHRFeGVjdXRpb25Ub0luc3BlY3Rvcihjb25zdCBTdHJp
bmcKICAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OnNjcmlwdEV4ZWN1dGlvbkJsb2NrZWRC
eUNTUChtX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQsIGRpcmVjdGl2ZVRleHQpOwogfQogCitib29s
IENvbnRlbnRTZWN1cml0eVBvbGljeTo6ZXhwZXJpbWVudGFsRmVhdHVyZXNFbmFibGVkKCkgY29u
c3QKK3sKKyNpZiBFTkFCTEUoQ1NQX05FWFQpCisgICAgcmV0dXJuIFJ1bnRpbWVFbmFibGVkRmVh
dHVyZXM6OmV4cGVyaW1lbnRhbENvbnRlbnRTZWN1cml0eVBvbGljeUZlYXR1cmVzRW5hYmxlZCgp
OworI2Vsc2UKKyAgICByZXR1cm4gZmFsc2U7CisjZW5kaWYKK30KKwogfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGFnZS9Db250ZW50U2VjdXJpdHlQb2xpY3kuaCBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvQ29udGVudFNlY3VyaXR5UG9saWN5LmgKaW5kZXggZDJjZjNiNTQwYmY0ZmJlNjZk
ZDY2NjZhNzA3M2VmZjJjMGQwZmU0Ni4uOWNiNDBhM2UxM2Q1OGRhMmQwZTUyMGVhNjZjM2E5YWRj
YzBlYWM5NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9Db250ZW50U2VjdXJpdHlQ
b2xpY3kuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NvbnRlbnRTZWN1cml0eVBvbGljeS5o
CkBAIC0xMjAsNiArMTIwLDggQEAgcHVibGljOgogICAgIHZvaWQgZW5mb3JjZVNhbmRib3hGbGFn
cyhTYW5kYm94RmxhZ3MpIGNvbnN0OwogICAgIFN0cmluZyBldmFsRGlzYWJsZWRFcnJvck1lc3Nh
Z2UoKSBjb25zdDsKIAorICAgIGJvb2wgZXhwZXJpbWVudGFsRmVhdHVyZXNFbmFibGVkKCkgY29u
c3Q7CisKIHByaXZhdGU6CiAgICAgZXhwbGljaXQgQ29udGVudFNlY3VyaXR5UG9saWN5KFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQqKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9wdWJsaWMvV2ViUnVudGltZUZlYXR1cmVzLmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1
YmxpYy9XZWJSdW50aW1lRmVhdHVyZXMuaAppbmRleCAyZjZlZjFjZTRlYTA5NGZkMWJjYTRmMTI4
ZGEzNGU1MmE1MDk3NWFiLi5iYmQ0ZGYzMWRmODQ2YzM4NmNmMjg0YjdmN2JmYzRhZTQ5ZDdmZWQw
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJSdW50aW1lRmVh
dHVyZXMuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJSdW50aW1lRmVh
dHVyZXMuaApAQCAtMTU3LDYgKzE1Nyw4IEBAIHB1YmxpYzoKICAgICBXRUJLSVRfRVhQT1JUIHN0
YXRpYyB2b2lkIGVuYWJsZVJlcXVlc3RBdXRvY29tcGxldGUoYm9vbCk7CiAgICAgV0VCS0lUX0VY
UE9SVCBzdGF0aWMgYm9vbCBpc1JlcXVlc3RBdXRvY29tcGxldGVFbmFibGVkKCk7CiAKKyAgICBX
RUJLSVRfRVhQT1JUIHN0YXRpYyB2b2lkIGVuYWJsZUV4cGVyaW1lbnRhbENvbnRlbnRTZWN1cml0
eVBvbGljeUZlYXR1cmVzKGJvb2wpOworICAgIFdFQktJVF9FWFBPUlQgc3RhdGljIGJvb2wgaXNF
eHBlcmltZW50YWxDb250ZW50U2VjdXJpdHlQb2xpY3lGZWF0dXJlc0VuYWJsZWQoKTsKIHByaXZh
dGU6CiAgICAgV2ViUnVudGltZUZlYXR1cmVzKCk7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9zcmMvV2ViUnVudGltZUZlYXR1cmVzLmNwcCBiL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vc3JjL1dlYlJ1bnRpbWVGZWF0dXJlcy5jcHAKaW5kZXggYTE5NWRlMjkyOTA4MDBj
MDUwM2YxMThiMGIzNjM3MWYwYjI4NDZjOS4uNzg0YTlkMjY0MjY5MzVmNmMyNmYwZDNkNTI1Nzk2
NjYyMmY2ZDllNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViUnVu
dGltZUZlYXR1cmVzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJSdW50
aW1lRmVhdHVyZXMuY3BwCkBAIC02MTEsNiArNjExLDI0IEBAIGJvb2wgV2ViUnVudGltZUZlYXR1
cmVzOjppc0RpYWxvZ0VsZW1lbnRFbmFibGVkKCkKICNlbmRpZgogfQogCit2b2lkIFdlYlJ1bnRp
bWVGZWF0dXJlczo6ZW5hYmxlRXhwZXJpbWVudGFsQ29udGVudFNlY3VyaXR5UG9saWN5RmVhdHVy
ZXMoYm9vbCBlbmFibGUpCit7CisjaWYgRU5BQkxFKENTUF9ORVhUKQorICAgIFJ1bnRpbWVFbmFi
bGVkRmVhdHVyZXM6OnNldEV4cGVyaW1lbnRhbENvbnRlbnRTZWN1cml0eVBvbGljeUZlYXR1cmVz
RW5hYmxlZChlbmFibGUpOworI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0oZW5hYmxlKTsKKyNlbmRp
ZgorfQorCitib29sIFdlYlJ1bnRpbWVGZWF0dXJlczo6aXNFeHBlcmltZW50YWxDb250ZW50U2Vj
dXJpdHlQb2xpY3lGZWF0dXJlc0VuYWJsZWQoKQoreworI2lmIEVOQUJMRShDU1BfTkVYVCkKKyAg
ICByZXR1cm4gUnVudGltZUVuYWJsZWRGZWF0dXJlczo6ZXhwZXJpbWVudGFsQ29udGVudFNlY3Vy
aXR5UG9saWN5RmVhdHVyZXNFbmFibGVkKCk7CisjZWxzZQorICAgIHJldHVybiBmYWxzZTsKKyNl
bmRpZgorfQorCiB2b2lkIFdlYlJ1bnRpbWVGZWF0dXJlczo6ZW5hYmxlQ1NTRXhjbHVzaW9ucyhi
b29sIGVuYWJsZSkKIHsKICAgICBSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzZXRDU1NFeGNsdXNp
b25zRW5hYmxlZChlbmFibGUpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMv
Q2hhbmdlTG9nCmluZGV4IDVmZGE1MjJhYTBhNmYzMWFjYmIxYmEwMDdhMWQ5MmZhMjEwZDhhMGEu
Ljc2ZGJhNDVmZTJmMzc0NzZkZDMxMTRiZTcxOTIzNjJmNTFkN2M4YWYgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAx
Mi0xMS0yOSAgTWlrZSBXZXN0ICA8bWt3c3RAY2hyb21pdW0ub3JnPgorCisgICAgICAgIENTUCAx
LjE6IE1ha2UgdGhlIENTUF9ORVhUIGZsYWcgcnVudGltZSBlbmFibGVkLgorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAzNjUyCisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRW5zdXJlcyB0aGF0IHRoZSBuZXcg
U2VjdXJpdHlQb2xpY3kgcnVudGltZSBmbGFnIGlzIGVuYWJsZWQgZm9yIENocm9taXVtJ3MgdGVz
dHMuCisKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0U2hlbGwuY3BwOgor
ICAgICAgICAoVGVzdFNoZWxsOjpUZXN0U2hlbGwpOgorCiAyMDEyLTExLTI5ICBNYXJ0aW4gUm9i
aW5zb24gIDxtcm9iaW5zb25AaWdhbGlhLmNvbT4KIAogICAgICAgICBbR1RLXSBbV2ViS2l0Ml0g
RW1iZWQgdGhlIEhUVFAgYXV0aGVudGljYXRpb24gZGlhbG9nIGludG8gdGhlIFdlYlZpZXcKZGlm
ZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RTaGVsbC5jcHAgYi9U
b29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0U2hlbGwuY3BwCmluZGV4IDc1ZmVjMTMw
YTA3YzU2Zjc5N2I0MzllZjRjOWVkYTJmY2QyMDQ5MmMuLjBkNDBiMzRjMWZmZmFjNGQwZDNmYTE2
ODYwMWNmZTA2M2ExNWMyMzUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9t
aXVtL1Rlc3RTaGVsbC5jcHAKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVz
dFNoZWxsLmNwcApAQCAtMTQ4LDYgKzE0OCw3IEBAIFRlc3RTaGVsbDo6VGVzdFNoZWxsKCkKICAg
ICBXZWJSdW50aW1lRmVhdHVyZXM6OmVuYWJsZVN0eWxlU2NvcGVkKHRydWUpOwogICAgIFdlYlJ1
bnRpbWVGZWF0dXJlczo6ZW5hYmxlU2NyaXB0ZWRTcGVlY2godHJ1ZSk7CiAgICAgV2ViUnVudGlt
ZUZlYXR1cmVzOjplbmFibGVSZXF1ZXN0QXV0b2NvbXBsZXRlKHRydWUpOworICAgIFdlYlJ1bnRp
bWVGZWF0dXJlczo6ZW5hYmxlRXhwZXJpbWVudGFsQ29udGVudFNlY3VyaXR5UG9saWN5RmVhdHVy
ZXModHJ1ZSk7CiAKICAgICAvLyAzMCBzZWNvbmQgaXMgdGhlIHNhbWUgYXMgdGhlIHZhbHVlIGlu
IE1hYyBEUlQuCiAgICAgLy8gSWYgd2UgdXNlIGEgdmFsdWUgc21hbGxlciB0aGFuIHRoZSB0aW1l
b3V0IHZhbHVlIG9mCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>