<?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>70203</bug_id>
          
          <creation_ts>2011-10-16 12:07:45 -0700</creation_ts>
          <short_desc>MediaList: Remove inheritance from StyleBase.</short_desc>
          <delta_ts>2011-10-19 05:15:29 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>CSS</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>70332</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Andreas Kling">kling</reporter>
          <assigned_to name="Andreas Kling">kling</assigned_to>
          <cc>koivisto</cc>
    
    <cc>rniwa</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>484795</commentid>
    <comment_count>0</comment_count>
    <who name="Andreas Kling">kling</who>
    <bug_when>2011-10-16 12:07:45 -0700</bug_when>
    <thetext>MediaList shouldn&apos;t inherit from StyleBase.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>484798</commentid>
    <comment_count>1</comment_count>
      <attachid>111183</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2011-10-16 12:19:32 -0700</bug_when>
    <thetext>Created attachment 111183
Proposed patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>484799</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-10-16 12:20:50 -0700</bug_when>
    <thetext>Attachment 111183 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WebCore/ChangeLog&apos;, u&apos;Source/WebCor...&quot; exit_code: 1

Source/WebCore/css/MediaList.h:27:  Alphabetical sorting problem.  [build/include_order] [4]
Total errors found: 1 in 8 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>484800</commentid>
    <comment_count>3</comment_count>
    <who name="Andreas Kling">kling</who>
    <bug_when>2011-10-16 12:25:07 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; Attachment 111183 [details] did not pass style-queue:
&gt; 
&gt; Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WebCore/ChangeLog&apos;, u&apos;Source/WebCor...&quot; exit_code: 1
&gt; 
&gt; Source/WebCore/css/MediaList.h:27:  Alphabetical sorting problem.  [build/include_order] [4]

Alphabet is hard. :(</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>484807</commentid>
    <comment_count>4</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2011-10-16 13:20:49 -0700</bug_when>
    <thetext>I wonder if you actually need to store the parentRule(). The impression from this patch is that it is only ever used for getting the parent style sheet or locating the root in js bindings) Assuming that rules can never be roots, it might be possible to always just save the parent sheet.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>484819</commentid>
    <comment_count>5</comment_count>
    <who name="Andreas Kling">kling</who>
    <bug_when>2011-10-16 14:16:11 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; I wonder if you actually need to store the parentRule(). The impression from this patch is that it is only ever used for getting the parent style sheet or locating the root in js bindings) Assuming that rules can never be roots, it might be possible to always just save the parent sheet.

So you&apos;re saying we would simply pass the parentStyleSheet along to the MediaList in the CSSImportRule and CSSMediaRule constructors.. I suppose that could work, assuming there&apos;s no way for those rules to be reparented into another CSSStyleSheet after construction. Does that makes sense?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>484829</commentid>
    <comment_count>6</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2011-10-16 14:58:00 -0700</bug_when>
    <thetext>Right. I suspect reparenting to a different sheet never happens, but I&apos;m not entirely sure. Some asserts over layout test run might tell.

The same may well be true for many other things associated with style sheets. If so, we could simplify code elsewhere too so finding this out would be valuable.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>484830</commentid>
    <comment_count>7</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2011-10-16 15:01:41 -0700</bug_when>
    <thetext>CSSOM doesn&apos;t have parent for MediaList so it is purely an internal thing:

interface MediaList {
  stringifier attribute DOMString mediaText;
  readonly attribute unsigned long length;
  getter DOMString item(unsigned long index);
  void appendMedium(DOMString medium);
  void deleteMedium(DOMString medium);
};</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>485133</commentid>
    <comment_count>8</comment_count>
      <attachid>111260</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2011-10-17 07:33:20 -0700</bug_when>
    <thetext>Created attachment 111260
Proposed patch v2

Remove the parentRule pointer and just always store the parentStyleSheet instead.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>485134</commentid>
    <comment_count>9</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-10-17 07:34:57 -0700</bug_when>
    <thetext>Attachment 111260 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/update-webkit&apos;, &apos;--chromium&apos;]&quot; exit_code: 2

Updating OpenSource
From git://git.webkit.org/WebKit
   ec92ce4..4af16b0  master     -&gt; origin/master
	M	Source/JavaScriptCore/runtime/JSObject.h
	M	Source/JavaScriptCore/runtime/JSAPIValueWrapper.h
	M	Source/JavaScriptCore/ChangeLog
r97620 = 4af16b0fe9fdecaea9f8ae0ebb6f7113787b0171 (refs/remotes/trunk)
First, rewinding head to replay your work on top of it...
Fast-forwarded master to refs/remotes/trunk.
Updating chromium port dependencies using gclient...
Error: Can&apos;t switch the checkout to http://v8.googlecode.com/svn/branches/3.6@9637; UUID don&apos;t match and there is local changes in /mnt/git/webkit-style-queue/Source/WebKit/chromium/v8. Delete the directory and try again.
Re-trying &apos;depot_tools/gclient sync&apos;
Error: Can&apos;t switch the checkout to http://v8.googlecode.com/svn/branches/3.6@9637; UUID don&apos;t match and there is local changes in /mnt/git/webkit-style-queue/Source/WebKit/chromium/v8. Delete the directory and try again.
Re-trying &apos;depot_tools/gclient sync&apos;
Error: Can&apos;t switch the checkout to http://v8.googlecode.com/svn/branches/3.6@9637; UUID don&apos;t match and there is local changes in /mnt/git/webkit-style-queue/Source/WebKit/chromium/v8. Delete the directory and try again.
Error: &apos;depot_tools/gclient sync&apos; failed 3 tries and returned 256 at Tools/Scripts/update-webkit-chromium line 107.
Re-trying &apos;depot_tools/gclient sync&apos;
No such file or directory at Tools/Scripts/update-webkit line 104.


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>485162</commentid>
    <comment_count>10</comment_count>
      <attachid>111260</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2011-10-17 08:22:38 -0700</bug_when>
    <thetext>Comment on attachment 111260
Proposed patch v2

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

&gt; Source/WebCore/bindings/js/JSDOMBinding.h:194
&gt; +        CSSStyleSheet* parentStyleSheet = mediaList-&gt;parentStyleSheet();
&gt; +        if (parentStyleSheet)
&gt; +            return root(parentStyleSheet);
&gt; +        return 0;

I’d suggest either early return style, or defining the variable inside the if statement conditional as the function above does.

&gt; Source/WebCore/css/MediaList.h:80
&gt; +    CSSStyleSheet* parentStyleSheet() const;

Since the relationship of a media list to a style sheet is not a parent/child one, I do not think this terminology is quite right.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>485164</commentid>
    <comment_count>11</comment_count>
      <attachid>111260</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2011-10-17 08:24:10 -0700</bug_when>
    <thetext>Comment on attachment 111260
Proposed patch v2

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

&gt; Source/WebCore/css/MediaList.cpp:260
&gt; +CSSStyleSheet* MediaList::parentStyleSheet() const
&gt; +{
&gt; +    return m_parentStyleSheet;
&gt; +}

Seems this should be in the header so it can be inlined.

&gt; Source/WebCore/css/MediaList.cpp:267
&gt; +void MediaList::setParentStyleSheet(CSSStyleSheet* styleSheet)
&gt; +{
&gt; +    // MediaList should never be moved between style sheets.
&gt; +    ASSERT(!m_parentStyleSheet || !styleSheet);
&gt; +    m_parentStyleSheet = styleSheet;
&gt;  }

Seems this should be in the header so it can be inlined.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>486055</commentid>
    <comment_count>12</comment_count>
    <who name="Andreas Kling">kling</who>
    <bug_when>2011-10-18 08:04:57 -0700</bug_when>
    <thetext>Committed r97752: &lt;http://trac.webkit.org/changeset/97752&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>486056</commentid>
    <comment_count>13</comment_count>
    <who name="Andreas Kling">kling</who>
    <bug_when>2011-10-18 08:06:42 -0700</bug_when>
    <thetext>(In reply to comment #10)
&gt; (From update of attachment 111260 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=111260&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/css/MediaList.h:80
&gt; &gt; +    CSSStyleSheet* parentStyleSheet() const;
&gt; 
&gt; Since the relationship of a media list to a style sheet is not a parent/child one, I do not think this terminology is quite right.

Truth. I&apos;ll revisit this once I get to cleaning up parent/child relations in the CSSOM classes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>486107</commentid>
    <comment_count>14</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-10-18 09:42:08 -0700</bug_when>
    <thetext>It appears that this patch broke SL debug tests:
http://build.webkit.org/builders/SnowLeopard%20Intel%20Debug%20%28Tests%29/builds/2621</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>486108</commentid>
    <comment_count>15</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-10-18 09:42:41 -0700</bug_when>
    <thetext>Some stack trace:
Exception Type:  EXC_BAD_ACCESS (SIGSEGV)
Exception Codes: KERN_INVALID_ADDRESS at 0x00000000bbadbeef
Crashed Thread:  0  Dispatch queue: com.apple.main-thread

Thread 0 Crashed:  Dispatch queue: com.apple.main-thread
0   com.apple.WebCore             	0x00000001013f773f WebCore::MediaList::setParentStyleSheet(WebCore::CSSStyleSheet*) + 77 (MediaList.h:84)
1   com.apple.WebCore             	0x00000001020b337c WebCore::StyleSheet::setMedia(WTF::PassRefPtr&lt;WebCore::MediaList&gt;) + 322 (StyleSheet.cpp:77)
2   com.apple.WebCore             	0x0000000101debe77 WebCore::ProcessingInstruction::setCSSStyleSheet(WTF::String const&amp;, WebCore::KURL const&amp;, WTF::String const&amp;, WebCore::CachedCSSStyleSheet const*) + 405 (ProcessingInstruction.cpp:224)
3   com.apple.WebCore             	0x0000000101325f30 WebCore::CachedCSSStyleSheet::checkNotify() + 194 (CachedCSSStyleSheet.cpp:117)
4   com.apple.WebCore             	0x000000010132612c WebCore::CachedCSSStyleSheet::data(WTF::PassRefPtr&lt;WebCore::SharedBuffer&gt;, bool) + 354 (CachedCSSStyleSheet.cpp:107)
5   com.apple.WebCore             	0x000000010133fac6 WebCore::CachedResourceRequest::didFinishLoading(WebCore::SubresourceLoader*, double) + 436 (CachedResourceRequest.cpp:181)
6   com.apple.WebCore             	0x00000001020b5d40 WebCore::SubresourceLoader::didFinishLoading(double) + 174 (SubresourceLoader.cpp:192)
7   com.apple.WebCore             	0x0000000101fd9e02 WebCore::ResourceLoader::didFinishLoading(WebCore::ResourceHandle*, double) + 164 (ResourceLoader.cpp:452)
8   com.apple.WebCore             	0x0000000101fd4b76 -[WebCoreResourceHandleAsDelegate connectionDidFinishLoading:] + 261 (ResourceHandleMac.mm:874)
9   com.apple.Foundation          	0x00007fff83ac7608 _NSURLConnectionDidFinishLoading + 113
10  com.apple.CFNetwork           	0x00007fff85bc21a0 URLConnectionClient::_clientDidFinishLoading(URLConnectionClient::ClientConnectionEventQueue*) + 174
11  com.apple.CFNetwork           	0x00007fff85c279ae URLConnectionClient::ClientConnectionEventQueue::processAllEventsAndConsumePayload(XConnectionEventInfo&lt;XClientEvent, XClientEventParams&gt;*, long) + 254
12  com.apple.CFNetwork           	0x00007fff85bae825 URLConnectionClient::processEvents() + 121</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>486124</commentid>
    <comment_count>16</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-10-18 10:07:00 -0700</bug_when>
    <thetext>Oops, apparently the patch had been rolled out in http://trac.webkit.org/changeset/97764 as pointed out by anttik. Sorry about the noise. r97764 didn&apos;t show up on build.webkit.org/console and I didn&apos;t notice.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>486685</commentid>
    <comment_count>17</comment_count>
    <who name="Andreas Kling">kling</who>
    <bug_when>2011-10-19 05:10:44 -0700</bug_when>
    <thetext>Committed r97849: &lt;http://trac.webkit.org/changeset/97849&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>486690</commentid>
    <comment_count>18</comment_count>
    <who name="Andreas Kling">kling</who>
    <bug_when>2011-10-19 05:15:29 -0700</bug_when>
    <thetext>Relanded with the assertion fixed (setting the MediaList&apos;s parent stylesheet to the MediaList&apos;s current parent stylesheet is a no-op and not a crime.)</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>111183</attachid>
            <date>2011-10-16 12:19:32 -0700</date>
            <delta_ts>2011-10-17 07:33:20 -0700</delta_ts>
            <desc>Proposed patch</desc>
            <filename>bug-70203.diff</filename>
            <type>text/plain</type>
            <size>19182</size>
            <attacher name="Andreas Kling">kling</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCAwZTQ4OGU4Li5hNGE5NDhkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTcg
QEAKKzIwMTEtMTAtMTYgIEFuZHJlYXMgS2xpbmcgIDxrbGluZ0B3ZWJraXQub3JnPgorCisgICAg
ICAgIE1lZGlhTGlzdDogUmVtb3ZlIGluaGVyaXRhbmNlIGZyb20gU3R5bGVCYXNlLgorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzAyMDMKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGNzcy9NZWRpYUxpc3Qu
aDoKKyAgICAgICAgKiBjc3MvTWVkaWFMaXN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlh
TGlzdDo6TWVkaWFMaXN0KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhTGlzdDo6bm90aWZ5Q2hh
bmdlZCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYUxpc3Q6OnBhcmVudFJ1bGUpOgorICAgICAg
ICAoV2ViQ29yZTo6TWVkaWFMaXN0OjpwYXJlbnRTdHlsZVNoZWV0KToKKyAgICAgICAgKFdlYkNv
cmU6Ok1lZGlhTGlzdDo6c2V0UGFyZW50UnVsZSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYUxp
c3Q6OnNldFBhcmVudFN0eWxlU2hlZXQpOgorCisgICAgICAgICAgICBDaGFuZ2UgTWVkaWFMaXN0
IHRvIG5vIGxvbmdlciBpbmhlcml0IGZyb20gU3R5bGVCYXNlLiBUaGUgcGFyZW50KCkvc2V0UGFy
ZW50KCkKKyAgICAgICAgICAgIG1lY2hhbmlzbSB3YXMgcmVwbGFjZWQgYnkgZXhwbGljaXQgcGFy
ZW50UnVsZSgpL3NldFBhcmVudFJ1bGUoQ1NTUnVsZSopIGFuZAorICAgICAgICAgICAgcGFyZW50
U3R5bGVTaGVldCgpL3NldFBhcmVudFN0eWxlU2hlZXQoQ1NTU3R5bGVTaGVldCopIGZ1bmN0aW9u
cy4KKyAgICAgICAgICAgIFRoZSBwYXJlbnQgcnVsZSBvciBzdHlsZSBzaGVldCBpcyBzdG9yZWQg
aW4gYSB1bmlvbiwgYW5kIGEgYm9vbGVhbiBtZW1iZXIKKyAgICAgICAgICAgIGRldGVybWluZXMg
dGhlIHR5cGUgb2YgdGhlIHBhcmVudC4KKworICAgICAgICAqIGNzcy9TdHlsZVNoZWV0LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlN0eWxlU2hlZXQ6On5TdHlsZVNoZWV0KToKKyAgICAgICAgKFdl
YkNvcmU6OlN0eWxlU2hlZXQ6OnNldE1lZGlhKToKKworICAgICAgICAgICAgQ2hhbmdlIFN0eWxl
QmFzZTo6c2V0UGFyZW50KCkgY2FsbHMgdG8gTWVkaWFMaXN0OjpzZXRQYXJlbnRTdHlsZVNoZWV0
KCkuCisgICAgICAgICAgICBBbHNvIGFkZGVkIGFuIGFzc2VydGlvbiBpbiBzZXRNZWRpYSgpIHRo
YXQgdGhlIFN0eWxlU2hlZXQgaXMgaW5kZWVkIGEKKyAgICAgICAgICAgIENTU1N0eWxlU2hlZXQu
IFhTTFN0eWxlU2hlZXQgaW5oZXJpdHMgZnJvbSBTdHlsZVNoZWV0LCBidXQgaXQgc2hvdWxkbid0
CisgICAgICAgICAgICBiZSB1c2luZyB0aGUgTWVkaWFMaXN0LgorCisgICAgICAgICogY3NzL0NT
U0ltcG9ydFJ1bGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTSW1wb3J0UnVsZTo6Q1NTSW1w
b3J0UnVsZSk6CisgICAgICAgIChXZWJDb3JlOjpDU1NJbXBvcnRSdWxlOjp+Q1NTSW1wb3J0UnVs
ZSk6CisgICAgICAgICogY3NzL0NTU01lZGlhUnVsZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpD
U1NNZWRpYVJ1bGU6OkNTU01lZGlhUnVsZSk6CisgICAgICAgIChXZWJDb3JlOjpDU1NNZWRpYVJ1
bGU6On5DU1NNZWRpYVJ1bGUpOgorCisgICAgICAgICAgICBDaGFuZ2UgU3R5bGVCYXNlOjpzZXRQ
YXJlbnQoKSBjYWxscyB0byBNZWRpYUxpc3Q6OnNldFBhcmVudFJ1bGUoKS4KKworICAgICAgICAq
IGJpbmRpbmdzL2pzL0pTRE9NQmluZGluZy5oOgorICAgICAgICAoV2ViQ29yZTo6cm9vdCk6CisK
KyAgICAgICAgICAgIEFkZCBNZWRpYUxpc3QqIHNwZWNpZmljIG92ZXJsb2FkIGZvciByb290KCkg
c2luY2UgaXQgY2FuJ3QgZmFsbCBiYWNrCisgICAgICAgICAgICB0byByb290KFN0eWxlQmFzZSop
IGFueW1vcmUuCisKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6
CisKKyAgICAgICAgICAgIEFkZCBzb21lIFByaXZhdGVIZWFkZXJzIHRvIGFjY29tb2RhdGUgdGhl
IEpTRE9NQmluZGluZy5oIGNoYW5nZXMuCisKKyAgICAgICAgKiBjc3MvQ1NTTWVkaWFSdWxlLmg6
CisKKyAgICAgICAgICAgIFJlbW92ZSB1bm5lY2Vzc2FyeSBmb3J3YXJkLWRlY2xhcmF0aW9uIG9m
IE1lZGlhTGlzdC4KKwogMjAxMS0xMC0wOCAgUm9iZXJ0IEhvZ2FuICA8cm9iZXJ0QHdlYmtpdC5v
cmc+CiAKICAgICAgICAgQ1NTIDIuMSBmYWlsdXJlOiBoZWlnaHQtd2lkdGgtdGFibGUtMDAxLmh0
bQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CmluZGV4IDE1OGQzYmEuLjJlYzZlMjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTM0NjcsNyArMzQ2Nyw3IEBACiAJCUE4MEU2
Q0VGMEExOTg5Q0EwMDdGQjhDNSAvKiBDU1NTdHlsZVJ1bGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTgwRTZDQzUwQTE5ODlDQTAwN0ZCOEM1IC8q
IENTU1N0eWxlUnVsZS5jcHAgKi87IH07CiAJCUE4MEU2Q0YwMEExOTg5Q0EwMDdGQjhDNSAvKiBD
U1NJbmhlcml0ZWRWYWx1ZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBBODBFNkNDNjBBMTk4OUNBMDA3RkI4QzUgLyogQ1NTSW5oZXJpdGVkVmFsdWUu
Y3BwICovOyB9OwogCQlBODBFNkNGMTBBMTk4OUNBMDA3RkI4QzUgLyogRm9udFZhbHVlLmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4MEU2Q0M3MEEx
OTg5Q0EwMDdGQjhDNSAvKiBGb250VmFsdWUuY3BwICovOyB9OwotCQlBODBFNkNGMjBBMTk4OUNB
MDA3RkI4QzUgLyogQ1NTUnVsZUxpc3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEE4MEU2Q0M4MEExOTg5Q0EwMDdGQjhDNSAvKiBDU1NSdWxlTGlzdC5o
ICovOyB9OworCQlBODBFNkNGMjBBMTk4OUNBMDA3RkI4QzUgLyogQ1NTUnVsZUxpc3QuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4MEU2Q0M4MEExOTg5
Q0EwMDdGQjhDNSAvKiBDU1NSdWxlTGlzdC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CiAJCUE4MEU2Q0YzMEExOTg5Q0EwMDdGQjhDNSAvKiBGb250RmFt
aWx5VmFsdWUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEE4MEU2Q0M5MEExOTg5Q0EwMDdGQjhDNSAvKiBGb250RmFtaWx5VmFsdWUuaCAqLzsgfTsKIAkJ
QTgwRTZDRjQwQTE5ODlDQTAwN0ZCOEM1IC8qIFNoYWRvd1ZhbHVlLmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4MEU2Q0NBMEExOTg5Q0EwMDdGQjhD
NSAvKiBTaGFkb3dWYWx1ZS5jcHAgKi87IH07CiAJCUE4MEU2Q0Y1MEExOTg5Q0EwMDdGQjhDNSAv
KiBDU1NQYWdlUnVsZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBBODBFNkNDQjBBMTk4OUNBMDA3RkI4QzUgLyogQ1NTUGFnZVJ1bGUuY3BwICovOyB9
OwpAQCAtMzQ5Miw3ICszNDkyLDcgQEAKIAkJQTgwRTZEMDkwQTE5ODlDQTAwN0ZCOEM1IC8qIENT
U1J1bGVMaXN0LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEE4MEU2Q0RGMEExOTg5Q0EwMDdGQjhDNSAvKiBDU1NSdWxlTGlzdC5jcHAgKi87IH07CiAJ
CUE4MEU2RDBCMEExOTg5Q0EwMDdGQjhDNSAvKiBEYXNoYm9hcmRSZWdpb24uaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4MEU2Q0UxMEExOTg5Q0EwMDdG
QjhDNSAvKiBEYXNoYm9hcmRSZWdpb24uaCAqLzsgfTsKIAkJQTgwRTZEMEMwQTE5ODlDQTAwN0ZC
OEM1IC8qIENTU1N0eWxlUnVsZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQTgwRTZDRTIwQTE5ODlDQTAwN0ZCOEM1IC8qIENTU1N0eWxlUnVsZS5oICov
OyB9OwotCQlBODBFNkQwRDBBMTk4OUNBMDA3RkI4QzUgLyogQ1NTUnVsZS5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTgwRTZDRTMwQTE5ODlDQTAwN0ZC
OEM1IC8qIENTU1J1bGUuaCAqLzsgfTsKKwkJQTgwRTZEMEQwQTE5ODlDQTAwN0ZCOEM1IC8qIENT
U1J1bGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4
MEU2Q0UzMEExOTg5Q0EwMDdGQjhDNSAvKiBDU1NSdWxlLmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQTgwRTZERkIwQTE5OTA2NzAwN0ZCOEM1IC8q
IENTU011dGFibGVTdHlsZURlY2xhcmF0aW9uLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4MEU2REY5MEExOTkwNjcwMDdGQjhDNSAvKiBDU1NNdXRh
YmxlU3R5bGVEZWNsYXJhdGlvbi5jcHAgKi87IH07CiAJCUE4MEU2REZDMEExOTkwNjcwMDdGQjhD
NSAvKiBDU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTgwRTZERkEwQTE5OTA2NzAwN0ZCOEM1IC8qIENTU011
dGFibGVTdHlsZURlY2xhcmF0aW9uLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKIAkJQTgwRTZFMEYwQTE5OTExQzAwN0ZCOEM1IC8qIENTU1N0eWxlRGVj
bGFyYXRpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEE4MEU2RTBEMEExOTkxMUMwMDdGQjhDNSAvKiBDU1NTdHlsZURlY2xhcmF0aW9uLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTM5NDQsMTQgKzM5
NDQsMTQgQEAKIAkJQThFQTdFQzAwQTE5NDVEMDAwQThFRjVGIC8qIEVudGl0eVJlZmVyZW5jZS5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQThFQTdFQjgw
QTE5NDVEMDAwQThFRjVGIC8qIEVudGl0eVJlZmVyZW5jZS5oICovOyB9OwogCQlBOEVBN0VDMTBB
MTk0NUQwMDBBOEVGNUYgLyogRW50aXR5UmVmZXJlbmNlLmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4RUE3RUI5MEExOTQ1RDAwMEE4RUY1RiAvKiBF
bnRpdHlSZWZlcmVuY2UuY3BwICovOyB9OwogCQlBOEVBN0VDMjBBMTk0NUQwMDBBOEVGNUYgLyog
RW50aXR5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBB
OEVBN0VCQTBBMTk0NUQwMDBBOEVGNUYgLyogRW50aXR5LmggKi87IH07Ci0JCUE4RUE4MDA3MEEx
OTUxNkUwMEE4RUY1RiAvKiBDU1NTdHlsZVNoZWV0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBOEVBN0ZGRjBBMTk1MTZFMDBBOEVGNUYgLyogQ1NTU3R5
bGVTaGVldC5oICovOyB9OworCQlBOEVBODAwNzBBMTk1MTZFMDBBOEVGNUYgLyogQ1NTU3R5bGVT
aGVldC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQThF
QTdGRkYwQTE5NTE2RTAwQThFRjVGIC8qIENTU1N0eWxlU2hlZXQuaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlBOEVBODAwODBBMTk1MTZFMDBBOEVG
NUYgLyogQ1NTU3R5bGVTaGVldC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBBOEVBODAwMDBBMTk1MTZFMDBBOEVGNUYgLyogQ1NTU3R5bGVTaGVldC5j
cHAgKi87IH07CiAJCUE4RUE4MDA5MEExOTUxNkUwMEE4RUY1RiAvKiBNZWRpYUxpc3QuY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQThFQTgwMDEwQTE5
NTE2RTAwQThFRjVGIC8qIE1lZGlhTGlzdC5jcHAgKi87IH07CiAJCUE4RUE4MDBBMEExOTUxNkUw
MEE4RUY1RiAvKiBTdHlsZVNoZWV0TGlzdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQThFQTgwMDIwQTE5NTE2RTAwQThFRjVGIC8qIFN0eWxlU2hlZXRM
aXN0LmggKi87IH07CiAJCUE4RUE4MDBCMEExOTUxNkUwMEE4RUY1RiAvKiBTdHlsZVNoZWV0TGlz
dC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBOEVB
ODAwMzBBMTk1MTZFMDBBOEVGNUYgLyogU3R5bGVTaGVldExpc3QuY3BwICovOyB9OwotCQlBOEVB
ODAwQzBBMTk1MTZFMDBBOEVGNUYgLyogU3R5bGVTaGVldC5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQThFQTgwMDQwQTE5NTE2RTAwQThFRjVGIC8qIFN0
eWxlU2hlZXQuaCAqLzsgfTsKKwkJQThFQTgwMEMwQTE5NTE2RTAwQThFRjVGIC8qIFN0eWxlU2hl
ZXQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4RUE4
MDA0MEExOTUxNkUwMEE4RUY1RiAvKiBTdHlsZVNoZWV0LmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQThFQTgwMEQwQTE5NTE2RTAwQThFRjVGIC8q
IFN0eWxlU2hlZXQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gQThFQTgwMDUwQTE5NTE2RTAwQThFRjVGIC8qIFN0eWxlU2hlZXQuY3BwICovOyB9Owot
CQlBOEVBODAwRTBBMTk1MTZFMDBBOEVGNUYgLyogTWVkaWFMaXN0LmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBOEVBODAwNjBBMTk1MTZFMDBBOEVGNUYg
LyogTWVkaWFMaXN0LmggKi87IH07CisJCUE4RUE4MDBFMEExOTUxNkUwMEE4RUY1RiAvKiBNZWRp
YUxpc3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4
RUE4MDA2MEExOTUxNkUwMEE4RUY1RiAvKiBNZWRpYUxpc3QuaCAqLzsgc2V0dGluZ3MgPSB7QVRU
UklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlBOEY0NkE4NDBDQjIwQTlEMDAzQTk2NzAg
LyogRE9NU1ZHQ2xpcFBhdGhFbGVtZW50LmggaW4gQ29weSBHZW5lcmF0ZWQgSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NTAzNjEyQzBBQ0UwMDdCMDAxRjNEOUUg
LyogRE9NU1ZHQ2xpcFBhdGhFbGVtZW50LmggKi87IH07CiAJCUE4RjQ2QTg4MENCMjBBOUQwMDNB
OTY3MCAvKiBET01TVkdHcmFkaWVudEVsZW1lbnQuaCBpbiBDb3B5IEdlbmVyYXRlZCBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg1QzlBMkVDMEFEN0U5MDMwMEZC
RkYxRSAvKiBET01TVkdHcmFkaWVudEVsZW1lbnQuaCAqLzsgfTsKIAkJQThGNDZBODkwQ0IyMEE5
RDAwM0E5NjcwIC8qIERPTVNWR0FuaW1hdGVDb2xvckVsZW1lbnQuaCBpbiBDb3B5IEdlbmVyYXRl
ZCBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg1MDM2MTI4MEFD
RTAwN0IwMDFGM0Q5RSAvKiBET01TVkdBbmltYXRlQ29sb3JFbGVtZW50LmggKi87IH07CkBAIC0y
MTU3MiwxMCArMjE1NzIsMTUgQEAKIAkJCWJ1aWxkQWN0aW9uTWFzayA9IDIxNDc0ODM2NDc7CiAJ
CQlmaWxlcyA9ICgKIAkJCQkzMTA2MDM3MDE0MzI3RDJFMDBBQkY0QkEgLyogV2ViS2l0Q1NTRmls
dGVyVmFsdWUuaCBpbiBIZWFkZXJzICovLAorCQkJCUE4RUE4MDBDMEExOTUxNkUwMEE4RUY1RiAv
KiBTdHlsZVNoZWV0LmggaW4gSGVhZGVycyAqLywKKwkJCQlBOEVBODAwNzBBMTk1MTZFMDBBOEVG
NUYgLyogQ1NTU3R5bGVTaGVldC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMzE5QUUwNjQxNDJENkIy
NDAwNjU2M0ExIC8qIFN0eWxlRmlsdGVyRGF0YS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMzE5QUUw
NjgxNDJENzhERDAwNjU2M0ExIC8qIEZpbHRlck9wZXJhdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJMzE5QUUwNkExNDJENzhERDAwNjU2M0ExIC8qIEZpbHRlck9wZXJhdGlvbnMuaCBpbiBIZWFk
ZXJzICovLAorCQkJCUE4RUE4MDBFMEExOTUxNkUwMEE4RUY1RiAvKiBNZWRpYUxpc3QuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTVEOEM0REMwMTQyODIyMkMwMDI2Q0U3MiAvKiBEaXNwbGF5U2xlZXBE
aXNhYmxlci5oIGluIEhlYWRlcnMgKi8sCisJCQkJQTgwRTZEMEQwQTE5ODlDQTAwN0ZCOEM1IC8q
IENTU1J1bGUuaCBpbiBIZWFkZXJzICovLAorCQkJCUE4MEU2Q0YyMEExOTg5Q0EwMDdGQjhDNSAv
KiBDU1NSdWxlTGlzdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjVCNURDNkExMTlCQjNENTAwMkE4
NzkwIC8qIEFic3RyYWN0RGF0YWJhc2UuaCBpbiBIZWFkZXJzICovLAogCQkJCTQxRTFCMUQxMEZG
NTk4NjkwMDU3NkIzQiAvKiBBYnN0cmFjdFdvcmtlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMjlB
ODEyMkUwRkJCOUMxRDAwNTEwMjkzIC8qIEFjY2Vzc2liaWxpdHlBUklBR3JpZENlbGwuaCBpbiBI
ZWFkZXJzICovLApAQCAtMjE4NTksOCArMjE4NjQsNiBAQAogCQkJCUE4MEU2Q0VBMEExOTg5Q0Ew
MDdGQjhDNSAvKiBDU1NRdWlya1ByaW1pdGl2ZVZhbHVlLmggaW4gSGVhZGVycyAqLywKIAkJCQk5
MzYyNjQwQjBERTExMzdEMDA5RDVBMDAgLyogQ1NTUmVmbGVjdGlvbkRpcmVjdGlvbi5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJQkM1QTEyRTAwREMwNDE0ODAwQzlBRkFEIC8qIENTU1JlZmxlY3RWYWx1
ZS5oIGluIEhlYWRlcnMgKi8sCi0JCQkJQTgwRTZEMEQwQTE5ODlDQTAwN0ZCOEM1IC8qIENTU1J1
bGUuaCBpbiBIZWFkZXJzICovLAotCQkJCUE4MEU2Q0YyMEExOTg5Q0EwMDdGQjhDNSAvKiBDU1NS
dWxlTGlzdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMzcxRjUxQTEwRDI2MkZBMDAwRUNFMEQ1IC8q
IENTU1NlZ21lbnRlZEZvbnRGYWNlLmggaW4gSGVhZGVycyAqLywKIAkJCQlBODBFNzM1MjBBMTk5
Qzc3MDA3RkI4QzUgLyogQ1NTU2VsZWN0b3IuaCBpbiBIZWFkZXJzICovLAogCQkJCUU0QzE3ODlC
MEVFNjkwMzgwMDgyNEQ2OSAvKiBDU1NTZWxlY3Rvckxpc3QuaCBpbiBIZWFkZXJzICovLApAQCAt
MjE4NjgsNyArMjE4NzEsNiBAQAogCQkJCUE4MEU2RTBGMEExOTkxMUMwMDdGQjhDNSAvKiBDU1NT
dHlsZURlY2xhcmF0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQlBODBFNkQwQzBBMTk4OUNBMDA3
RkI4QzUgLyogQ1NTU3R5bGVSdWxlLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzc3MkI0MDBDNEVB
OTFFMDA4MzI4NUYgLyogQ1NTU3R5bGVTZWxlY3Rvci5oIGluIEhlYWRlcnMgKi8sCi0JCQkJQThF
QTgwMDcwQTE5NTE2RTAwQThFRjVGIC8qIENTU1N0eWxlU2hlZXQuaCBpbiBIZWFkZXJzICovLAog
CQkJCUJDODBDOTg4MENEMjk0RUUwMEEwQjdCMyAvKiBDU1NUaW1pbmdGdW5jdGlvblZhbHVlLmgg
aW4gSGVhZGVycyAqLywKIAkJCQkzNzFGNTNFOTBEMjcwNEY5MDBFQ0UwRDUgLyogQ1NTVW5pY29k
ZVJhbmdlVmFsdWUuaCBpbiBIZWFkZXJzICovLAogCQkJCUREN0NERjI1MEEyM0NGOTgwMDA2OTky
OCAvKiBDU1NVbmtub3duUnVsZS5oIGluIEhlYWRlcnMgKi8sCkBAIC0yMzU4NSw3ICsyMzU4Nyw2
IEBACiAJCQkJOTcyMDVBQjgxMjM5MjkxMDAwQjE3MzgwIC8qIE1lZGlhRG9jdW1lbnQuaCBpbiBI
ZWFkZXJzICovLAogCQkJCUU0NDYxM0FEMENENjMzMTAwMEZBREE3NSAvKiBNZWRpYUVycm9yLmgg
aW4gSGVhZGVycyAqLywKIAkJCQk0RTE5NTkyMjBBMzlEQUJBMDAyMjBGRTUgLyogTWVkaWFGZWF0
dXJlTmFtZXMuaCBpbiBIZWFkZXJzICovLAotCQkJCUE4RUE4MDBFMEExOTUxNkUwMEE4RUY1RiAv
KiBNZWRpYUxpc3QuaCBpbiBIZWFkZXJzICovLAogCQkJCUU0NDYxM0U0MENENjgxQTIwMEZBREE3
NSAvKiBNZWRpYVBsYXllci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDc2RjBEMEUxMkI4MTkyNzAw
QzI2QUE0IC8qIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbi5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJRTQ0NjEzRTYwQ0Q2ODFBOTAwRkFEQTc1IC8qIE1lZGlhUGxheWVyUHJpdmF0ZVFUS2l0
LmggaW4gSGVhZGVycyAqLywKQEAgLTI0MTA1LDcgKzI0MTA2LDYgQEAKIAkJCQlCQzIyNzJFNDBF
ODJFRTlCMDBFN0Y5NzUgLyogU3R5bGVSYXJlSW5oZXJpdGVkRGF0YS5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJQkMyMjcyQkQwRTgyRUFBRTAwRTdGOTc1IC8qIFN0eWxlUmFyZU5vbkluaGVyaXRlZERh
dGEuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDMjI3Mjg3MEU4MkU3MDcwMEU3Rjk3NSAvKiBTdHls
ZVJlZmxlY3Rpb24uaCBpbiBIZWFkZXJzICovLAotCQkJCUE4RUE4MDBDMEExOTUxNkUwMEE4RUY1
RiAvKiBTdHlsZVNoZWV0LmggaW4gSGVhZGVycyAqLywKIAkJCQlBOEVBODAwQTBBMTk1MTZFMDBB
OEVGNUYgLyogU3R5bGVTaGVldExpc3QuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDNUVCNUU1MEU4
MUJGNkQwMEIyNTk2NSAvKiBTdHlsZVN1cnJvdW5kRGF0YS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
QkM1RUI4MTAwRTgxRjJDRTAwQjI1OTY1IC8qIFN0eWxlVHJhbnNmb3JtRGF0YS5oIGluIEhlYWRl
cnMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUJpbmRp
bmcuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NQmluZGluZy5oCmluZGV4IDc4
MGM2MzguLjc5NzAyZDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pT
RE9NQmluZGluZy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NQmluZGlu
Zy5oCkBAIC0yMiwxMSArMjIsMTQgQEAKICNpZm5kZWYgSlNET01CaW5kaW5nX2gKICNkZWZpbmUg
SlNET01CaW5kaW5nX2gKIAorI2luY2x1ZGUgIkNTU1J1bGUuaCIKKyNpbmNsdWRlICJDU1NTdHls
ZVNoZWV0LmgiCiAjaW5jbHVkZSAiSlNET01HbG9iYWxPYmplY3QuaCIKICNpbmNsdWRlICJKU0RP
TVdyYXBwZXIuaCIKICNpbmNsdWRlICJET01XcmFwcGVyV29ybGQuaCIKICNpbmNsdWRlICJEb2N1
bWVudC5oIgogI2luY2x1ZGUgIkVsZW1lbnQuaCIKKyNpbmNsdWRlICJNZWRpYUxpc3QuaCIKICNp
bmNsdWRlICJTdHlsZUJhc2UuaCIKICNpbmNsdWRlIDxoZWFwL1dlYWsuaD4KICNpbmNsdWRlIDxy
dW50aW1lL0Z1bmN0aW9uUHJvdG90eXBlLmg+CkBAIC0xODQsNiArMTg3LDE3IEBAIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKICAgICAgICAgcmV0dXJuIHN0eWxlQmFzZTsKICAgICB9CiAKKyAgICBpbmxp
bmUgdm9pZCogcm9vdChNZWRpYUxpc3QqIG1lZGlhTGlzdCkKKyAgICB7CisgICAgICAgIENTU1N0
eWxlU2hlZXQqIHBhcmVudFN0eWxlU2hlZXQgPSBtZWRpYUxpc3QtPnBhcmVudFN0eWxlU2hlZXQo
KTsKKyAgICAgICAgaWYgKHBhcmVudFN0eWxlU2hlZXQpCisgICAgICAgICAgICByZXR1cm4gcm9v
dChwYXJlbnRTdHlsZVNoZWV0KTsKKyAgICAgICAgQ1NTUnVsZSogcGFyZW50UnVsZSA9IG1lZGlh
TGlzdC0+cGFyZW50UnVsZSgpOworICAgICAgICBpZiAocGFyZW50UnVsZSkKKyAgICAgICAgICAg
IHJldHVybiByb290KHBhcmVudFJ1bGUpOworICAgICAgICByZXR1cm4gMDsKKyAgICB9CisKICAg
ICBjb25zdCBKU0M6Okhhc2hUYWJsZSogZ2V0SGFzaFRhYmxlRm9yR2xvYmFsRGF0YShKU0M6OkpT
R2xvYmFsRGF0YSYsIGNvbnN0IEpTQzo6SGFzaFRhYmxlKiBzdGF0aWNUYWJsZSk7CiAKICAgICB2
b2lkIHJlcG9ydEV4Y2VwdGlvbihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNWYWx1ZSBleGNlcHRp
b24pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ltcG9ydFJ1bGUuY3BwIGIv
U291cmNlL1dlYkNvcmUvY3NzL0NTU0ltcG9ydFJ1bGUuY3BwCmluZGV4IGU4NmY2NzQuLmZhOTFh
MzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NJbXBvcnRSdWxlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTSW1wb3J0UnVsZS5jcHAKQEAgLTM5LDcgKzM5LDcgQEAg
Q1NTSW1wb3J0UnVsZTo6Q1NTSW1wb3J0UnVsZShDU1NTdHlsZVNoZWV0KiBwYXJlbnQsIGNvbnN0
IFN0cmluZyYgaHJlZiwgUGFzc1JlZlAKICAgICAsIG1fbG9hZGluZyhmYWxzZSkKIHsKICAgICBp
ZiAobV9sc3RNZWRpYSkKLSAgICAgICAgbV9sc3RNZWRpYS0+c2V0UGFyZW50KHRoaXMpOworICAg
ICAgICBtX2xzdE1lZGlhLT5zZXRQYXJlbnRSdWxlKHRoaXMpOwogICAgIGVsc2UKICAgICAgICAg
bV9sc3RNZWRpYSA9IE1lZGlhTGlzdDo6Y3JlYXRlKHRoaXMsIFN0cmluZygpKTsKIH0KQEAgLTQ3
LDcgKzQ3LDcgQEAgQ1NTSW1wb3J0UnVsZTo6Q1NTSW1wb3J0UnVsZShDU1NTdHlsZVNoZWV0KiBw
YXJlbnQsIGNvbnN0IFN0cmluZyYgaHJlZiwgUGFzc1JlZlAKIENTU0ltcG9ydFJ1bGU6On5DU1NJ
bXBvcnRSdWxlKCkKIHsKICAgICBpZiAobV9sc3RNZWRpYSkKLSAgICAgICAgbV9sc3RNZWRpYS0+
c2V0UGFyZW50KDApOworICAgICAgICBtX2xzdE1lZGlhLT5zZXRQYXJlbnRSdWxlKDApOwogICAg
IGlmIChtX3N0eWxlU2hlZXQpCiAgICAgICAgIG1fc3R5bGVTaGVldC0+c2V0UGFyZW50KDApOwog
ICAgIGlmIChtX2NhY2hlZFNoZWV0KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NT
U01lZGlhUnVsZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTTWVkaWFSdWxlLmNwcAppbmRl
eCA1YTk0N2E1Li5mZjA1YjQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTTWVk
aWFSdWxlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTTWVkaWFSdWxlLmNwcApAQCAt
MzMsNyArMzMsNyBAQCBDU1NNZWRpYVJ1bGU6OkNTU01lZGlhUnVsZShDU1NTdHlsZVNoZWV0KiBw
YXJlbnQsIFBhc3NSZWZQdHI8TWVkaWFMaXN0PiBtZWRpYSwgUAogICAgICwgbV9sc3RNZWRpYSht
ZWRpYSkKICAgICAsIG1fbHN0Q1NTUnVsZXMocnVsZXMpCiB7Ci0gICAgbV9sc3RNZWRpYS0+c2V0
UGFyZW50KHRoaXMpOworICAgIG1fbHN0TWVkaWEtPnNldFBhcmVudFJ1bGUodGhpcyk7CiAgICAg
aW50IGxlbmd0aCA9IG1fbHN0Q1NTUnVsZXMtPmxlbmd0aCgpOwogICAgIGZvciAoaW50IGkgPSAw
OyBpIDwgbGVuZ3RoOyBpKyspCiAgICAgICAgIG1fbHN0Q1NTUnVsZXMtPml0ZW0oaSktPnNldFBh
cmVudCh0aGlzKTsKQEAgLTQyLDcgKzQyLDcgQEAgQ1NTTWVkaWFSdWxlOjpDU1NNZWRpYVJ1bGUo
Q1NTU3R5bGVTaGVldCogcGFyZW50LCBQYXNzUmVmUHRyPE1lZGlhTGlzdD4gbWVkaWEsIFAKIENT
U01lZGlhUnVsZTo6fkNTU01lZGlhUnVsZSgpCiB7CiAgICAgaWYgKG1fbHN0TWVkaWEpCi0gICAg
ICAgIG1fbHN0TWVkaWEtPnNldFBhcmVudCgwKTsKKyAgICAgICAgbV9sc3RNZWRpYS0+c2V0UGFy
ZW50UnVsZSgwKTsKIAogICAgIGludCBsZW5ndGggPSBtX2xzdENTU1J1bGVzLT5sZW5ndGgoKTsK
ICAgICBmb3IgKGludCBpID0gMDsgaSA8IGxlbmd0aDsgaSsrKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvY3NzL0NTU01lZGlhUnVsZS5oIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU01lZGlh
UnVsZS5oCmluZGV4IDM0MGNmMzYuLmY5ODIyMTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9DU1NNZWRpYVJ1bGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTTWVkaWFSdWxl
LmgKQEAgLTMxLDcgKzMxLDYgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgQ1NTUnVs
ZUxpc3Q7Ci1jbGFzcyBNZWRpYUxpc3Q7CiAKIGNsYXNzIENTU01lZGlhUnVsZSA6IHB1YmxpYyBD
U1NSdWxlIHsKIHB1YmxpYzoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9NZWRpYUxp
c3QuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL01lZGlhTGlzdC5jcHAKaW5kZXggMjlhYTA2Mi4u
YWJjODNiMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL01lZGlhTGlzdC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvY3NzL01lZGlhTGlzdC5jcHAKQEAgLTU3LDE1ICs1NywxNyBAQCBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAgKiB0aHJvdyBTWU5UQVhfRVJSIGV4Y2VwdGlvbi4KICAqLwog
Ci1NZWRpYUxpc3Q6Ok1lZGlhTGlzdChDU1NTdHlsZVNoZWV0KiBwYXJlbnRTaGVldCwgYm9vbCBm
YWxsYmFja1RvRGVzY3JpcHRvcikKLSAgICA6IFN0eWxlQmFzZShwYXJlbnRTaGVldCkKK01lZGlh
TGlzdDo6TWVkaWFMaXN0KENTU1N0eWxlU2hlZXQqIHBhcmVudFN0eWxlU2hlZXQsIGJvb2wgZmFs
bGJhY2tUb0Rlc2NyaXB0b3IpCisgICAgOiBtX3BhcmVudElzUnVsZShmYWxzZSkKICAgICAsIG1f
ZmFsbGJhY2soZmFsbGJhY2tUb0Rlc2NyaXB0b3IpCisgICAgLCBtX3BhcmVudFN0eWxlU2hlZXQo
cGFyZW50U3R5bGVTaGVldCkKIHsKIH0KIAotTWVkaWFMaXN0OjpNZWRpYUxpc3QoQ1NTU3R5bGVT
aGVldCogcGFyZW50U2hlZXQsIGNvbnN0IFN0cmluZyYgbWVkaWEsIGJvb2wgZmFsbGJhY2tUb0Rl
c2NyaXB0b3IpCi0gICAgOiBTdHlsZUJhc2UocGFyZW50U2hlZXQpCitNZWRpYUxpc3Q6Ok1lZGlh
TGlzdChDU1NTdHlsZVNoZWV0KiBwYXJlbnRTdHlsZVNoZWV0LCBjb25zdCBTdHJpbmcmIG1lZGlh
LCBib29sIGZhbGxiYWNrVG9EZXNjcmlwdG9yKQorICAgIDogbV9wYXJlbnRJc1J1bGUoZmFsc2Up
CiAgICAgLCBtX2ZhbGxiYWNrKGZhbGxiYWNrVG9EZXNjcmlwdG9yKQorICAgICwgbV9wYXJlbnRT
dHlsZVNoZWV0KHBhcmVudFN0eWxlU2hlZXQpCiB7CiAgICAgRXhjZXB0aW9uQ29kZSBlYyA9IDA7
CiAgICAgc2V0TWVkaWFUZXh0KG1lZGlhLCBlYyk7CkBAIC04Miw4ICs4NCw5IEBAIE1lZGlhTGlz
dDo6TWVkaWFMaXN0KENTU1N0eWxlU2hlZXQqIHBhcmVudFNoZWV0LCBjb25zdCBTdHJpbmcmIG1l
ZGlhLCBib29sIGZhbGxiCiB9CiAKIE1lZGlhTGlzdDo6TWVkaWFMaXN0KENTU0ltcG9ydFJ1bGUq
IHBhcmVudFJ1bGUsIGNvbnN0IFN0cmluZyYgbWVkaWEpCi0gICAgOiBTdHlsZUJhc2UocGFyZW50
UnVsZSkKKyAgICA6IG1fcGFyZW50SXNSdWxlKHRydWUpCiAgICAgLCBtX2ZhbGxiYWNrKGZhbHNl
KQorICAgICwgbV9wYXJlbnRSdWxlKHBhcmVudFJ1bGUpCiB7CiAgICAgRXhjZXB0aW9uQ29kZSBl
YyA9IDA7CiAgICAgc2V0TWVkaWFUZXh0KG1lZGlhLCBlYyk7CkBAIC0yNDgsMTAgKzI1MSw0MyBA
QCB2b2lkIE1lZGlhTGlzdDo6YXBwZW5kTWVkaWFRdWVyeShQYXNzT3duUHRyPE1lZGlhUXVlcnk+
IG1lZGlhUXVlcnkpCiAKIHZvaWQgTWVkaWFMaXN0Ojpub3RpZnlDaGFuZ2VkKCkKIHsKLSAgICBm
b3IgKFN0eWxlQmFzZSogcCA9IHBhcmVudCgpOyBwOyBwID0gcC0+cGFyZW50KCkpIHsKLSAgICAg
ICAgaWYgKHAtPmlzQ1NTU3R5bGVTaGVldCgpKQotICAgICAgICAgICAgcmV0dXJuIHN0YXRpY19j
YXN0PENTU1N0eWxlU2hlZXQqPihwKS0+c3R5bGVTaGVldENoYW5nZWQoKTsKLSAgICB9CisgICAg
Q1NTU3R5bGVTaGVldCogcGFyZW50U3R5bGVTaGVldDsKKworICAgIGlmIChtX3BhcmVudElzUnVs
ZSkKKyAgICAgICAgcGFyZW50U3R5bGVTaGVldCA9IG1fcGFyZW50UnVsZS0+cGFyZW50U3R5bGVT
aGVldCgpOworICAgIGVsc2UKKyAgICAgICAgcGFyZW50U3R5bGVTaGVldCA9IG1fcGFyZW50U3R5
bGVTaGVldDsKKworICAgIGlmICghcGFyZW50U3R5bGVTaGVldCkKKyAgICAgICAgcmV0dXJuOwor
CisgICAgcGFyZW50U3R5bGVTaGVldC0+c3R5bGVTaGVldENoYW5nZWQoKTsKK30KKworQ1NTUnVs
ZSogTWVkaWFMaXN0OjpwYXJlbnRSdWxlKCkgY29uc3QKK3sKKyAgICBpZiAoIW1fcGFyZW50SXNS
dWxlKQorICAgICAgICByZXR1cm4gMDsKKyAgICByZXR1cm4gbV9wYXJlbnRSdWxlOworfQorCitD
U1NTdHlsZVNoZWV0KiBNZWRpYUxpc3Q6OnBhcmVudFN0eWxlU2hlZXQoKSBjb25zdAoreworICAg
IGlmIChtX3BhcmVudElzUnVsZSkKKyAgICAgICAgcmV0dXJuIDA7CisgICAgcmV0dXJuIG1fcGFy
ZW50U3R5bGVTaGVldDsKK30KKwordm9pZCBNZWRpYUxpc3Q6OnNldFBhcmVudFJ1bGUoQ1NTUnVs
ZSogcnVsZSkKK3sKKyAgICBtX3BhcmVudElzUnVsZSA9IHRydWU7CisgICAgbV9wYXJlbnRSdWxl
ID0gcnVsZTsKK30KKwordm9pZCBNZWRpYUxpc3Q6OnNldFBhcmVudFN0eWxlU2hlZXQoQ1NTU3R5
bGVTaGVldCogc3R5bGVTaGVldCkKK3sKKyAgICBtX3BhcmVudElzUnVsZSA9IGZhbHNlOworICAg
IG1fcGFyZW50U3R5bGVTaGVldCA9IHN0eWxlU2hlZXQ7CiB9CiAKIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9NZWRpYUxpc3QuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9NZWRpYUxp
c3QuaAppbmRleCBmNGIxZmE3Li4wYjkwMGVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9j
c3MvTWVkaWFMaXN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL01lZGlhTGlzdC5oCkBAIC0y
MSwyMCArMjEsMjEgQEAKICNpZm5kZWYgTWVkaWFMaXN0X2gKICNkZWZpbmUgTWVkaWFMaXN0X2gK
IAotI2luY2x1ZGUgIlN0eWxlQmFzZS5oIgogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAjaW5j
bHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CisjaW5jbHVk
ZSA8d3RmL1JlZkNvdW50ZWQuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBDU1NJ
bXBvcnRSdWxlOworY2xhc3MgQ1NTUnVsZTsKIGNsYXNzIENTU1N0eWxlU2hlZXQ7CiBjbGFzcyBN
ZWRpYVF1ZXJ5OwogCiB0eXBlZGVmIGludCBFeGNlcHRpb25Db2RlOwogCi1jbGFzcyBNZWRpYUxp
c3QgOiBwdWJsaWMgU3R5bGVCYXNlIHsKK2NsYXNzIE1lZGlhTGlzdCA6IHB1YmxpYyBSZWZDb3Vu
dGVkPE1lZGlhTGlzdD4gewogcHVibGljOgogICAgIHN0YXRpYyBQYXNzUmVmUHRyPE1lZGlhTGlz
dD4gY3JlYXRlKCkKICAgICB7CkBAIC03Niw2ICs3NywxMiBAQCBwdWJsaWM6CiAgICAgdm9pZCBh
cHBlbmRNZWRpYVF1ZXJ5KFBhc3NPd25QdHI8TWVkaWFRdWVyeT4pOwogICAgIGNvbnN0IFZlY3Rv
cjxNZWRpYVF1ZXJ5Kj4mIG1lZGlhUXVlcmllcygpIGNvbnN0IHsgcmV0dXJuIG1fcXVlcmllczsg
fQogCisgICAgdm9pZCBzZXRQYXJlbnRSdWxlKENTU1J1bGUqKTsKKyAgICB2b2lkIHNldFBhcmVu
dFN0eWxlU2hlZXQoQ1NTU3R5bGVTaGVldCopOworCisgICAgQ1NTUnVsZSogcGFyZW50UnVsZSgp
IGNvbnN0OworICAgIENTU1N0eWxlU2hlZXQqIHBhcmVudFN0eWxlU2hlZXQoKSBjb25zdDsKKwog
cHJpdmF0ZToKICAgICBNZWRpYUxpc3QoQ1NTU3R5bGVTaGVldCogcGFyZW50U2hlZXQsIGJvb2wg
ZmFsbGJhY2tUb0Rlc2NyaXB0aW9uKTsKICAgICBNZWRpYUxpc3QoQ1NTU3R5bGVTaGVldCogcGFy
ZW50U2hlZXQsIGNvbnN0IFN0cmluZyYgbWVkaWEsIGJvb2wgZmFsbGJhY2tUb0Rlc2NyaXB0aW9u
KTsKQEAgLTgzLDggKzkwLDE0IEBAIHByaXZhdGU6CiAKICAgICB2b2lkIG5vdGlmeUNoYW5nZWQo
KTsKIAorICAgIGJvb2wgbV9wYXJlbnRJc1J1bGUgOiAxOworICAgIGJvb2wgbV9mYWxsYmFjayA6
IDE7IC8vIHRydWUgaWYgZmFpbGVkIG1lZGlhIHF1ZXJ5IHBhcnNpbmcgc2hvdWxkIGZhbGxiYWNr
IHRvIG1lZGlhIGRlc2NyaXB0aW9uIHBhcnNpbmcuCisKKyAgICB1bmlvbiB7CisgICAgICAgIENT
U1N0eWxlU2hlZXQqIG1fcGFyZW50U3R5bGVTaGVldDsKKyAgICAgICAgQ1NTUnVsZSogbV9wYXJl
bnRSdWxlOworICAgIH07CiAgICAgVmVjdG9yPE1lZGlhUXVlcnkqPiBtX3F1ZXJpZXM7Ci0gICAg
Ym9vbCBtX2ZhbGxiYWNrOyAvLyB0cnVlIGlmIGZhaWxlZCBtZWRpYSBxdWVyeSBwYXJzaW5nIHNo
b3VsZCBmYWxsYmFjayB0byBtZWRpYSBkZXNjcmlwdGlvbiBwYXJzaW5nCiB9OwogCiB9IC8vIG5h
bWVzcGFjZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlU2hlZXQuY3BwIGIv
U291cmNlL1dlYkNvcmUvY3NzL1N0eWxlU2hlZXQuY3BwCmluZGV4IDI1MmM4MzkuLmE2MTY5N2Ug
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVNoZWV0LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvU3R5bGVTaGVldC5jcHAKQEAgLTIwLDYgKzIwLDcgQEAKICNpbmNsdWRl
ICJjb25maWcuaCIKICNpbmNsdWRlICJTdHlsZVNoZWV0LmgiCiAKKyNpbmNsdWRlICJDU1NTdHls
ZVNoZWV0LmgiCiAjaW5jbHVkZSAiTWVkaWFMaXN0LmgiCiAjaW5jbHVkZSAiTm9kZS5oIgogCkBA
IC01NSw3ICs1Niw3IEBAIFN0eWxlU2hlZXQ6OlN0eWxlU2hlZXQoU3R5bGVCYXNlKiBvd25lciwg
Y29uc3QgU3RyaW5nJiBvcmlnaW5hbFVSTCwgY29uc3QgS1VSTCYKIFN0eWxlU2hlZXQ6On5TdHls
ZVNoZWV0KCkKIHsKICAgICBpZiAobV9tZWRpYSkKLSAgICAgICAgbV9tZWRpYS0+c2V0UGFyZW50
KDApOworICAgICAgICBtX21lZGlhLT5zZXRQYXJlbnRTdHlsZVNoZWV0KDApOwogfQogCiBTdHls
ZVNoZWV0KiBTdHlsZVNoZWV0OjpwYXJlbnRTdHlsZVNoZWV0KCkgY29uc3QKQEAgLTY1LDExICs2
NiwxMyBAQCBTdHlsZVNoZWV0KiBTdHlsZVNoZWV0OjpwYXJlbnRTdHlsZVNoZWV0KCkgY29uc3QK
IAogdm9pZCBTdHlsZVNoZWV0OjpzZXRNZWRpYShQYXNzUmVmUHRyPE1lZGlhTGlzdD4gbWVkaWEp
CiB7CisgICAgQVNTRVJUKGlzQ1NTU3R5bGVTaGVldCgpKTsKKwogICAgIGlmIChtX21lZGlhKQot
ICAgICAgICBtX21lZGlhLT5zZXRQYXJlbnQoMCk7CisgICAgICAgIG1fbWVkaWEtPnNldFBhcmVu
dFN0eWxlU2hlZXQoMCk7CiAKICAgICBtX21lZGlhID0gbWVkaWE7Ci0gICAgbV9tZWRpYS0+c2V0
UGFyZW50KHRoaXMpOworICAgIG1fbWVkaWEtPnNldFBhcmVudFN0eWxlU2hlZXQoc3RhdGljX2Nh
c3Q8Q1NTU3R5bGVTaGVldCo+KHRoaXMpKTsKIH0KIAogS1VSTCBTdHlsZVNoZWV0Ojpjb21wbGV0
ZVVSTChjb25zdCBTdHJpbmcmIHVybCkgY29uc3QK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>111260</attachid>
            <date>2011-10-17 07:33:20 -0700</date>
            <delta_ts>2011-10-17 08:24:10 -0700</delta_ts>
            <desc>Proposed patch v2</desc>
            <filename>bug-70203-v2.diff</filename>
            <type>text/plain</type>
            <size>18753</size>
            <attacher name="Andreas Kling">kling</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBkNGRjODg0Li43MzhmMzMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsNjAg
QEAKIDIwMTEtMTAtMTcgIEFuZHJlYXMgS2xpbmcgIDxrbGluZ0B3ZWJraXQub3JnPgogCisgICAg
ICAgIE1lZGlhTGlzdDogUmVtb3ZlIGluaGVyaXRhbmNlIGZyb20gU3R5bGVCYXNlLgorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzAyMDMKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGNzcy9NZWRpYUxpc3Qu
aDoKKyAgICAgICAgKiBjc3MvTWVkaWFMaXN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlh
TGlzdDo6TWVkaWFMaXN0KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhTGlzdDo6bm90aWZ5Q2hh
bmdlZCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYUxpc3Q6OnBhcmVudFN0eWxlU2hlZXQpOgor
ICAgICAgICAoV2ViQ29yZTo6TWVkaWFMaXN0OjpzZXRQYXJlbnRTdHlsZVNoZWV0KToKKworICAg
ICAgICAgICAgQ2hhbmdlIE1lZGlhTGlzdCB0byBubyBsb25nZXIgaW5oZXJpdCBmcm9tIFN0eWxl
QmFzZS4gVGhlIHBhcmVudCgpL3NldFBhcmVudCgpCisgICAgICAgICAgICBtZWNoYW5pc20gd2Fz
IHJlcGxhY2VkIGJ5IGV4cGxpY2l0IHBhcmVudFN0eWxlU2hlZXQoKS9zZXRQYXJlbnRTdHlsZVNo
ZWV0KCkuCisKKyAgICAgICAgKiBjc3MvQ1NTSW1wb3J0UnVsZS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpDU1NJbXBvcnRSdWxlOjpDU1NJbXBvcnRSdWxlKToKKyAgICAgICAgKFdlYkNvcmU6OkNT
U0ltcG9ydFJ1bGU6On5DU1NJbXBvcnRSdWxlKToKKyAgICAgICAgKiBjc3MvQ1NTTWVkaWFSdWxl
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU01lZGlhUnVsZTo6Q1NTTWVkaWFSdWxlKToKKyAg
ICAgICAgKFdlYkNvcmU6OkNTU01lZGlhUnVsZTo6fkNTU01lZGlhUnVsZSk6CisKKyAgICAgICAg
ICAgIENoYW5nZSBTdHlsZUJhc2U6OnNldFBhcmVudCgpIGNhbGxzIHRvIE1lZGlhTGlzdDo6c2V0
UGFyZW50U3R5bGVTaGVldCgpLgorICAgICAgICAgICAgQ1NTUnVsZXMgYXJlIG5ldmVyIG1vdmVk
IGJldHdlZW4gc3R5bGVzaGVldHMsIHNvIHRoZSBwYXJlbnQgc3R5bGUgc2hlZXQgcG9pbnRlcgor
ICAgICAgICAgICAgaXMgdmFsaWQgZm9yIHRoZSBNZWRpYUxpc3QncyBsaWZldGltZS4KKworICAg
ICAgICAqIGNzcy9TdHlsZVNoZWV0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlU2hlZXQ6
On5TdHlsZVNoZWV0KToKKworICAgICAgICAgICAgQ2hhbmdlIFN0eWxlQmFzZTo6c2V0UGFyZW50
KCkgY2FsbHMgdG8gTWVkaWFMaXN0OjpzZXRQYXJlbnRTdHlsZVNoZWV0KCkuCisKKyAgICAgICAg
KFdlYkNvcmU6OlN0eWxlU2hlZXQ6OnNldE1lZGlhKToKKworICAgICAgICAgICAgQ2hhbmdlIFN0
eWxlQmFzZTo6c2V0UGFyZW50KCkgY2FsbHMgdG8gTWVkaWFMaXN0OjpzZXRQYXJlbnRTdHlsZVNo
ZWV0KCkuCisgICAgICAgICAgICBBc3NlcnQgdGhhdCB0aGUgcGFyZW50IHNoZWV0IGlzIGVpdGhl
ciBudWxsLCBvciB0aGlzLCBhcyBNZWRpYUxpc3RzIHNob3VsZCBuZXZlcgorICAgICAgICAgICAg
YmUgcmVwYXJlbnRlZCB0byBvdGhlciBzaGVldHMuCisgICAgICAgICAgICBBc3NlcnQgdGhhdCB0
aGUgU3R5bGVTaGVldCBpcyBpbmRlZWQgYSBDU1NTdHlsZVNoZWV0LiAgWFNMU3R5bGVTaGVldCBp
bmhlcml0cyBmcm9tCisgICAgICAgICAgICBTdHlsZVNoZWV0LCBidXQgaXQgc2hvdWxkbid0IGJl
IHVzaW5nIHRoZSBNZWRpYUxpc3QuCisKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0RPTUJpbmRp
bmcuaDoKKyAgICAgICAgKFdlYkNvcmU6OnJvb3QpOgorCisgICAgICAgICAgICBBZGQgTWVkaWFM
aXN0KiBzcGVjaWZpYyBvdmVybG9hZCBmb3Igcm9vdCgpIHNpbmNlIGl0IGNhbid0IGZhbGwgYmFj
aworICAgICAgICAgICAgdG8gcm9vdChTdHlsZUJhc2UqKSBhbnltb3JlLgorCisgICAgICAgICog
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorCisgICAgICAgICAgICBBZGQgc29t
ZSBQcml2YXRlSGVhZGVycyB0byBhY2NvbW9kYXRlIHRoZSBKU0RPTUJpbmRpbmcuaCBjaGFuZ2Vz
LgorCisgICAgICAgICogY3NzL0NTU01lZGlhUnVsZS5oOgorCisgICAgICAgICAgICBSZW1vdmUg
dW5uZWNlc3NhcnkgZm9yd2FyZC1kZWNsYXJhdGlvbiBvZiBNZWRpYUxpc3QuCisKKzIwMTEtMTAt
MTcgIEFuZHJlYXMgS2xpbmcgIDxrbGluZ0B3ZWJraXQub3JnPgorCiAgICAgICAgIENTUy9YU0xT
dHlsZVNoZWV0OiBSZW1vdmUgaW5zZXJ0KCkgYW5kIHJlbW92ZSgpLgogICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzAyMjYKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDE1OGQzYmEuLjJl
YzZlMjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oKQEAgLTM0NjcsNyArMzQ2Nyw3IEBACiAJCUE4MEU2Q0VGMEExOTg5Q0EwMDdGQjhD
NSAvKiBDU1NTdHlsZVJ1bGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQTgwRTZDQzUwQTE5ODlDQTAwN0ZCOEM1IC8qIENTU1N0eWxlUnVsZS5jcHAg
Ki87IH07CiAJCUE4MEU2Q0YwMEExOTg5Q0EwMDdGQjhDNSAvKiBDU1NJbmhlcml0ZWRWYWx1ZS5j
cHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBODBFNkND
NjBBMTk4OUNBMDA3RkI4QzUgLyogQ1NTSW5oZXJpdGVkVmFsdWUuY3BwICovOyB9OwogCQlBODBF
NkNGMTBBMTk4OUNBMDA3RkI4QzUgLyogRm9udFZhbHVlLmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4MEU2Q0M3MEExOTg5Q0EwMDdGQjhDNSAvKiBG
b250VmFsdWUuY3BwICovOyB9OwotCQlBODBFNkNGMjBBMTk4OUNBMDA3RkI4QzUgLyogQ1NTUnVs
ZUxpc3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4
MEU2Q0M4MEExOTg5Q0EwMDdGQjhDNSAvKiBDU1NSdWxlTGlzdC5oICovOyB9OworCQlBODBFNkNG
MjBBMTk4OUNBMDA3RkI4QzUgLyogQ1NTUnVsZUxpc3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4MEU2Q0M4MEExOTg5Q0EwMDdGQjhDNSAvKiBDU1NS
dWxlTGlzdC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CiAJCUE4MEU2Q0YzMEExOTg5Q0EwMDdGQjhDNSAvKiBGb250RmFtaWx5VmFsdWUuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4MEU2Q0M5MEExOTg5Q0Ew
MDdGQjhDNSAvKiBGb250RmFtaWx5VmFsdWUuaCAqLzsgfTsKIAkJQTgwRTZDRjQwQTE5ODlDQTAw
N0ZCOEM1IC8qIFNoYWRvd1ZhbHVlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEE4MEU2Q0NBMEExOTg5Q0EwMDdGQjhDNSAvKiBTaGFkb3dWYWx1ZS5j
cHAgKi87IH07CiAJCUE4MEU2Q0Y1MEExOTg5Q0EwMDdGQjhDNSAvKiBDU1NQYWdlUnVsZS5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBODBFNkNDQjBB
MTk4OUNBMDA3RkI4QzUgLyogQ1NTUGFnZVJ1bGUuY3BwICovOyB9OwpAQCAtMzQ5Miw3ICszNDky
LDcgQEAKIAkJQTgwRTZEMDkwQTE5ODlDQTAwN0ZCOEM1IC8qIENTU1J1bGVMaXN0LmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4MEU2Q0RGMEExOTg5
Q0EwMDdGQjhDNSAvKiBDU1NSdWxlTGlzdC5jcHAgKi87IH07CiAJCUE4MEU2RDBCMEExOTg5Q0Ew
MDdGQjhDNSAvKiBEYXNoYm9hcmRSZWdpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEE4MEU2Q0UxMEExOTg5Q0EwMDdGQjhDNSAvKiBEYXNoYm9hcmRS
ZWdpb24uaCAqLzsgfTsKIAkJQTgwRTZEMEMwQTE5ODlDQTAwN0ZCOEM1IC8qIENTU1N0eWxlUnVs
ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTgwRTZD
RTIwQTE5ODlDQTAwN0ZCOEM1IC8qIENTU1N0eWxlUnVsZS5oICovOyB9OwotCQlBODBFNkQwRDBB
MTk4OUNBMDA3RkI4QzUgLyogQ1NTUnVsZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQTgwRTZDRTMwQTE5ODlDQTAwN0ZCOEM1IC8qIENTU1J1bGUuaCAq
LzsgfTsKKwkJQTgwRTZEMEQwQTE5ODlDQTAwN0ZCOEM1IC8qIENTU1J1bGUuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4MEU2Q0UzMEExOTg5Q0EwMDdG
QjhDNSAvKiBDU1NSdWxlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKIAkJQTgwRTZERkIwQTE5OTA2NzAwN0ZCOEM1IC8qIENTU011dGFibGVTdHlsZURl
Y2xhcmF0aW9uLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEE4MEU2REY5MEExOTkwNjcwMDdGQjhDNSAvKiBDU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlv
bi5jcHAgKi87IH07CiAJCUE4MEU2REZDMEExOTkwNjcwMDdGQjhDNSAvKiBDU1NNdXRhYmxlU3R5
bGVEZWNsYXJhdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gQTgwRTZERkEwQTE5OTA2NzAwN0ZCOEM1IC8qIENTU011dGFibGVTdHlsZURlY2xhcmF0
aW9uLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJ
QTgwRTZFMEYwQTE5OTExQzAwN0ZCOEM1IC8qIENTU1N0eWxlRGVjbGFyYXRpb24uaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4MEU2RTBEMEExOTkxMUMw
MDdGQjhDNSAvKiBDU1NTdHlsZURlY2xhcmF0aW9uLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTM5NDQsMTQgKzM5NDQsMTQgQEAKIAkJQThFQTdF
QzAwQTE5NDVEMDAwQThFRjVGIC8qIEVudGl0eVJlZmVyZW5jZS5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQThFQTdFQjgwQTE5NDVEMDAwQThFRjVGIC8q
IEVudGl0eVJlZmVyZW5jZS5oICovOyB9OwogCQlBOEVBN0VDMTBBMTk0NUQwMDBBOEVGNUYgLyog
RW50aXR5UmVmZXJlbmNlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEE4RUE3RUI5MEExOTQ1RDAwMEE4RUY1RiAvKiBFbnRpdHlSZWZlcmVuY2UuY3Bw
ICovOyB9OwogCQlBOEVBN0VDMjBBMTk0NUQwMDBBOEVGNUYgLyogRW50aXR5LmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBOEVBN0VCQTBBMTk0NUQwMDBB
OEVGNUYgLyogRW50aXR5LmggKi87IH07Ci0JCUE4RUE4MDA3MEExOTUxNkUwMEE4RUY1RiAvKiBD
U1NTdHlsZVNoZWV0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBBOEVBN0ZGRjBBMTk1MTZFMDBBOEVGNUYgLyogQ1NTU3R5bGVTaGVldC5oICovOyB9Owor
CQlBOEVBODAwNzBBMTk1MTZFMDBBOEVGNUYgLyogQ1NTU3R5bGVTaGVldC5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQThFQTdGRkYwQTE5NTE2RTAwQThF
RjVGIC8qIENTU1N0eWxlU2hlZXQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2
YXRlLCApOyB9OyB9OwogCQlBOEVBODAwODBBMTk1MTZFMDBBOEVGNUYgLyogQ1NTU3R5bGVTaGVl
dC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBOEVB
ODAwMDBBMTk1MTZFMDBBOEVGNUYgLyogQ1NTU3R5bGVTaGVldC5jcHAgKi87IH07CiAJCUE4RUE4
MDA5MEExOTUxNkUwMEE4RUY1RiAvKiBNZWRpYUxpc3QuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQThFQTgwMDEwQTE5NTE2RTAwQThFRjVGIC8qIE1l
ZGlhTGlzdC5jcHAgKi87IH07CiAJCUE4RUE4MDBBMEExOTUxNkUwMEE4RUY1RiAvKiBTdHlsZVNo
ZWV0TGlzdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
QThFQTgwMDIwQTE5NTE2RTAwQThFRjVGIC8qIFN0eWxlU2hlZXRMaXN0LmggKi87IH07CiAJCUE4
RUE4MDBCMEExOTUxNkUwMEE4RUY1RiAvKiBTdHlsZVNoZWV0TGlzdC5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBOEVBODAwMzBBMTk1MTZFMDBBOEVG
NUYgLyogU3R5bGVTaGVldExpc3QuY3BwICovOyB9OwotCQlBOEVBODAwQzBBMTk1MTZFMDBBOEVG
NUYgLyogU3R5bGVTaGVldC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gQThFQTgwMDQwQTE5NTE2RTAwQThFRjVGIC8qIFN0eWxlU2hlZXQuaCAqLzsgfTsK
KwkJQThFQTgwMEMwQTE5NTE2RTAwQThFRjVGIC8qIFN0eWxlU2hlZXQuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4RUE4MDA0MEExOTUxNkUwMEE4RUY1
RiAvKiBTdHlsZVNoZWV0LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKIAkJQThFQTgwMEQwQTE5NTE2RTAwQThFRjVGIC8qIFN0eWxlU2hlZXQuY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQThFQTgwMDUwQTE5
NTE2RTAwQThFRjVGIC8qIFN0eWxlU2hlZXQuY3BwICovOyB9OwotCQlBOEVBODAwRTBBMTk1MTZF
MDBBOEVGNUYgLyogTWVkaWFMaXN0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBBOEVBODAwNjBBMTk1MTZFMDBBOEVGNUYgLyogTWVkaWFMaXN0LmggKi87
IH07CisJCUE4RUE4MDBFMEExOTUxNkUwMEE4RUY1RiAvKiBNZWRpYUxpc3QuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4RUE4MDA2MEExOTUxNkUwMEE4
RUY1RiAvKiBNZWRpYUxpc3QuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRl
LCApOyB9OyB9OwogCQlBOEY0NkE4NDBDQjIwQTlEMDAzQTk2NzAgLyogRE9NU1ZHQ2xpcFBhdGhF
bGVtZW50LmggaW4gQ29weSBHZW5lcmF0ZWQgSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA4NTAzNjEyQzBBQ0UwMDdCMDAxRjNEOUUgLyogRE9NU1ZHQ2xpcFBhdGhF
bGVtZW50LmggKi87IH07CiAJCUE4RjQ2QTg4MENCMjBBOUQwMDNBOTY3MCAvKiBET01TVkdHcmFk
aWVudEVsZW1lbnQuaCBpbiBDb3B5IEdlbmVyYXRlZCBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDg1QzlBMkVDMEFEN0U5MDMwMEZCRkYxRSAvKiBET01TVkdHcmFk
aWVudEVsZW1lbnQuaCAqLzsgfTsKIAkJQThGNDZBODkwQ0IyMEE5RDAwM0E5NjcwIC8qIERPTVNW
R0FuaW1hdGVDb2xvckVsZW1lbnQuaCBpbiBDb3B5IEdlbmVyYXRlZCBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg1MDM2MTI4MEFDRTAwN0IwMDFGM0Q5RSAvKiBE
T01TVkdBbmltYXRlQ29sb3JFbGVtZW50LmggKi87IH07CkBAIC0yMTU3MiwxMCArMjE1NzIsMTUg
QEAKIAkJCWJ1aWxkQWN0aW9uTWFzayA9IDIxNDc0ODM2NDc7CiAJCQlmaWxlcyA9ICgKIAkJCQkz
MTA2MDM3MDE0MzI3RDJFMDBBQkY0QkEgLyogV2ViS2l0Q1NTRmlsdGVyVmFsdWUuaCBpbiBIZWFk
ZXJzICovLAorCQkJCUE4RUE4MDBDMEExOTUxNkUwMEE4RUY1RiAvKiBTdHlsZVNoZWV0LmggaW4g
SGVhZGVycyAqLywKKwkJCQlBOEVBODAwNzBBMTk1MTZFMDBBOEVGNUYgLyogQ1NTU3R5bGVTaGVl
dC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMzE5QUUwNjQxNDJENkIyNDAwNjU2M0ExIC8qIFN0eWxl
RmlsdGVyRGF0YS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMzE5QUUwNjgxNDJENzhERDAwNjU2M0Ex
IC8qIEZpbHRlck9wZXJhdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMzE5QUUwNkExNDJENzhE
RDAwNjU2M0ExIC8qIEZpbHRlck9wZXJhdGlvbnMuaCBpbiBIZWFkZXJzICovLAorCQkJCUE4RUE4
MDBFMEExOTUxNkUwMEE4RUY1RiAvKiBNZWRpYUxpc3QuaCBpbiBIZWFkZXJzICovLAogCQkJCTVE
OEM0REMwMTQyODIyMkMwMDI2Q0U3MiAvKiBEaXNwbGF5U2xlZXBEaXNhYmxlci5oIGluIEhlYWRl
cnMgKi8sCisJCQkJQTgwRTZEMEQwQTE5ODlDQTAwN0ZCOEM1IC8qIENTU1J1bGUuaCBpbiBIZWFk
ZXJzICovLAorCQkJCUE4MEU2Q0YyMEExOTg5Q0EwMDdGQjhDNSAvKiBDU1NSdWxlTGlzdC5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJQjVCNURDNkExMTlCQjNENTAwMkE4NzkwIC8qIEFic3RyYWN0RGF0
YWJhc2UuaCBpbiBIZWFkZXJzICovLAogCQkJCTQxRTFCMUQxMEZGNTk4NjkwMDU3NkIzQiAvKiBB
YnN0cmFjdFdvcmtlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMjlBODEyMkUwRkJCOUMxRDAwNTEw
MjkzIC8qIEFjY2Vzc2liaWxpdHlBUklBR3JpZENlbGwuaCBpbiBIZWFkZXJzICovLApAQCAtMjE4
NTksOCArMjE4NjQsNiBAQAogCQkJCUE4MEU2Q0VBMEExOTg5Q0EwMDdGQjhDNSAvKiBDU1NRdWly
a1ByaW1pdGl2ZVZhbHVlLmggaW4gSGVhZGVycyAqLywKIAkJCQk5MzYyNjQwQjBERTExMzdEMDA5
RDVBMDAgLyogQ1NTUmVmbGVjdGlvbkRpcmVjdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkM1
QTEyRTAwREMwNDE0ODAwQzlBRkFEIC8qIENTU1JlZmxlY3RWYWx1ZS5oIGluIEhlYWRlcnMgKi8s
Ci0JCQkJQTgwRTZEMEQwQTE5ODlDQTAwN0ZCOEM1IC8qIENTU1J1bGUuaCBpbiBIZWFkZXJzICov
LAotCQkJCUE4MEU2Q0YyMEExOTg5Q0EwMDdGQjhDNSAvKiBDU1NSdWxlTGlzdC5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJMzcxRjUxQTEwRDI2MkZBMDAwRUNFMEQ1IC8qIENTU1NlZ21lbnRlZEZvbnRG
YWNlLmggaW4gSGVhZGVycyAqLywKIAkJCQlBODBFNzM1MjBBMTk5Qzc3MDA3RkI4QzUgLyogQ1NT
U2VsZWN0b3IuaCBpbiBIZWFkZXJzICovLAogCQkJCUU0QzE3ODlCMEVFNjkwMzgwMDgyNEQ2OSAv
KiBDU1NTZWxlY3Rvckxpc3QuaCBpbiBIZWFkZXJzICovLApAQCAtMjE4NjgsNyArMjE4NzEsNiBA
QAogCQkJCUE4MEU2RTBGMEExOTkxMUMwMDdGQjhDNSAvKiBDU1NTdHlsZURlY2xhcmF0aW9uLmgg
aW4gSGVhZGVycyAqLywKIAkJCQlBODBFNkQwQzBBMTk4OUNBMDA3RkI4QzUgLyogQ1NTU3R5bGVS
dWxlLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzc3MkI0MDBDNEVBOTFFMDA4MzI4NUYgLyogQ1NT
U3R5bGVTZWxlY3Rvci5oIGluIEhlYWRlcnMgKi8sCi0JCQkJQThFQTgwMDcwQTE5NTE2RTAwQThF
RjVGIC8qIENTU1N0eWxlU2hlZXQuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDODBDOTg4MENEMjk0
RUUwMEEwQjdCMyAvKiBDU1NUaW1pbmdGdW5jdGlvblZhbHVlLmggaW4gSGVhZGVycyAqLywKIAkJ
CQkzNzFGNTNFOTBEMjcwNEY5MDBFQ0UwRDUgLyogQ1NTVW5pY29kZVJhbmdlVmFsdWUuaCBpbiBI
ZWFkZXJzICovLAogCQkJCUREN0NERjI1MEEyM0NGOTgwMDA2OTkyOCAvKiBDU1NVbmtub3duUnVs
ZS5oIGluIEhlYWRlcnMgKi8sCkBAIC0yMzU4NSw3ICsyMzU4Nyw2IEBACiAJCQkJOTcyMDVBQjgx
MjM5MjkxMDAwQjE3MzgwIC8qIE1lZGlhRG9jdW1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUU0
NDYxM0FEMENENjMzMTAwMEZBREE3NSAvKiBNZWRpYUVycm9yLmggaW4gSGVhZGVycyAqLywKIAkJ
CQk0RTE5NTkyMjBBMzlEQUJBMDAyMjBGRTUgLyogTWVkaWFGZWF0dXJlTmFtZXMuaCBpbiBIZWFk
ZXJzICovLAotCQkJCUE4RUE4MDBFMEExOTUxNkUwMEE4RUY1RiAvKiBNZWRpYUxpc3QuaCBpbiBI
ZWFkZXJzICovLAogCQkJCUU0NDYxM0U0MENENjgxQTIwMEZBREE3NSAvKiBNZWRpYVBsYXllci5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJMDc2RjBEMEUxMkI4MTkyNzAwQzI2QUE0IC8qIE1lZGlhUGxh
eWVyUHJpdmF0ZUFWRm91bmRhdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTQ0NjEzRTYwQ0Q2
ODFBOTAwRkFEQTc1IC8qIE1lZGlhUGxheWVyUHJpdmF0ZVFUS2l0LmggaW4gSGVhZGVycyAqLywK
QEAgLTI0MTA1LDcgKzI0MTA2LDYgQEAKIAkJCQlCQzIyNzJFNDBFODJFRTlCMDBFN0Y5NzUgLyog
U3R5bGVSYXJlSW5oZXJpdGVkRGF0YS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkMyMjcyQkQwRTgy
RUFBRTAwRTdGOTc1IC8qIFN0eWxlUmFyZU5vbkluaGVyaXRlZERhdGEuaCBpbiBIZWFkZXJzICov
LAogCQkJCUJDMjI3Mjg3MEU4MkU3MDcwMEU3Rjk3NSAvKiBTdHlsZVJlZmxlY3Rpb24uaCBpbiBI
ZWFkZXJzICovLAotCQkJCUE4RUE4MDBDMEExOTUxNkUwMEE4RUY1RiAvKiBTdHlsZVNoZWV0Lmgg
aW4gSGVhZGVycyAqLywKIAkJCQlBOEVBODAwQTBBMTk1MTZFMDBBOEVGNUYgLyogU3R5bGVTaGVl
dExpc3QuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDNUVCNUU1MEU4MUJGNkQwMEIyNTk2NSAvKiBT
dHlsZVN1cnJvdW5kRGF0YS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkM1RUI4MTAwRTgxRjJDRTAw
QjI1OTY1IC8qIFN0eWxlVHJhbnNmb3JtRGF0YS5oIGluIEhlYWRlcnMgKi8sCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUJpbmRpbmcuaCBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTRE9NQmluZGluZy5oCmluZGV4IDc4MGM2MzguLjFiMjllNmMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NQmluZGluZy5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NQmluZGluZy5oCkBAIC0yMiwxMSArMjIs
MTMgQEAKICNpZm5kZWYgSlNET01CaW5kaW5nX2gKICNkZWZpbmUgSlNET01CaW5kaW5nX2gKIAor
I2luY2x1ZGUgIkNTU1N0eWxlU2hlZXQuaCIKICNpbmNsdWRlICJKU0RPTUdsb2JhbE9iamVjdC5o
IgogI2luY2x1ZGUgIkpTRE9NV3JhcHBlci5oIgogI2luY2x1ZGUgIkRPTVdyYXBwZXJXb3JsZC5o
IgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiRWxlbWVudC5oIgorI2luY2x1ZGUg
Ik1lZGlhTGlzdC5oIgogI2luY2x1ZGUgIlN0eWxlQmFzZS5oIgogI2luY2x1ZGUgPGhlYXAvV2Vh
ay5oPgogI2luY2x1ZGUgPHJ1bnRpbWUvRnVuY3Rpb25Qcm90b3R5cGUuaD4KQEAgLTE4NCw2ICsx
ODYsMTQgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICByZXR1cm4gc3R5bGVCYXNlOwog
ICAgIH0KIAorICAgIGlubGluZSB2b2lkKiByb290KE1lZGlhTGlzdCogbWVkaWFMaXN0KQorICAg
IHsKKyAgICAgICAgQ1NTU3R5bGVTaGVldCogcGFyZW50U3R5bGVTaGVldCA9IG1lZGlhTGlzdC0+
cGFyZW50U3R5bGVTaGVldCgpOworICAgICAgICBpZiAocGFyZW50U3R5bGVTaGVldCkKKyAgICAg
ICAgICAgIHJldHVybiByb290KHBhcmVudFN0eWxlU2hlZXQpOworICAgICAgICByZXR1cm4gMDsK
KyAgICB9CisKICAgICBjb25zdCBKU0M6Okhhc2hUYWJsZSogZ2V0SGFzaFRhYmxlRm9yR2xvYmFs
RGF0YShKU0M6OkpTR2xvYmFsRGF0YSYsIGNvbnN0IEpTQzo6SGFzaFRhYmxlKiBzdGF0aWNUYWJs
ZSk7CiAKICAgICB2b2lkIHJlcG9ydEV4Y2VwdGlvbihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNW
YWx1ZSBleGNlcHRpb24pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ltcG9y
dFJ1bGUuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ltcG9ydFJ1bGUuY3BwCmluZGV4IGU4
NmY2NzQuLmFkYTkxZjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NJbXBvcnRS
dWxlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTSW1wb3J0UnVsZS5jcHAKQEAgLTM5
LDcgKzM5LDcgQEAgQ1NTSW1wb3J0UnVsZTo6Q1NTSW1wb3J0UnVsZShDU1NTdHlsZVNoZWV0KiBw
YXJlbnQsIGNvbnN0IFN0cmluZyYgaHJlZiwgUGFzc1JlZlAKICAgICAsIG1fbG9hZGluZyhmYWxz
ZSkKIHsKICAgICBpZiAobV9sc3RNZWRpYSkKLSAgICAgICAgbV9sc3RNZWRpYS0+c2V0UGFyZW50
KHRoaXMpOworICAgICAgICBtX2xzdE1lZGlhLT5zZXRQYXJlbnRTdHlsZVNoZWV0KHBhcmVudCk7
CiAgICAgZWxzZQogICAgICAgICBtX2xzdE1lZGlhID0gTWVkaWFMaXN0OjpjcmVhdGUodGhpcywg
U3RyaW5nKCkpOwogfQpAQCAtNDcsNyArNDcsNyBAQCBDU1NJbXBvcnRSdWxlOjpDU1NJbXBvcnRS
dWxlKENTU1N0eWxlU2hlZXQqIHBhcmVudCwgY29uc3QgU3RyaW5nJiBocmVmLCBQYXNzUmVmUAog
Q1NTSW1wb3J0UnVsZTo6fkNTU0ltcG9ydFJ1bGUoKQogewogICAgIGlmIChtX2xzdE1lZGlhKQot
ICAgICAgICBtX2xzdE1lZGlhLT5zZXRQYXJlbnQoMCk7CisgICAgICAgIG1fbHN0TWVkaWEtPnNl
dFBhcmVudFN0eWxlU2hlZXQoMCk7CiAgICAgaWYgKG1fc3R5bGVTaGVldCkKICAgICAgICAgbV9z
dHlsZVNoZWV0LT5zZXRQYXJlbnQoMCk7CiAgICAgaWYgKG1fY2FjaGVkU2hlZXQpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTTWVkaWFSdWxlLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9DU1NNZWRpYVJ1bGUuY3BwCmluZGV4IDVhOTQ3YTUuLjViYjMwZjkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NNZWRpYVJ1bGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9DU1NNZWRpYVJ1bGUuY3BwCkBAIC0zMyw3ICszMyw3IEBAIENTU01lZGlhUnVsZTo6Q1NT
TWVkaWFSdWxlKENTU1N0eWxlU2hlZXQqIHBhcmVudCwgUGFzc1JlZlB0cjxNZWRpYUxpc3Q+IG1l
ZGlhLCBQCiAgICAgLCBtX2xzdE1lZGlhKG1lZGlhKQogICAgICwgbV9sc3RDU1NSdWxlcyhydWxl
cykKIHsKLSAgICBtX2xzdE1lZGlhLT5zZXRQYXJlbnQodGhpcyk7CisgICAgbV9sc3RNZWRpYS0+
c2V0UGFyZW50U3R5bGVTaGVldChwYXJlbnQpOwogICAgIGludCBsZW5ndGggPSBtX2xzdENTU1J1
bGVzLT5sZW5ndGgoKTsKICAgICBmb3IgKGludCBpID0gMDsgaSA8IGxlbmd0aDsgaSsrKQogICAg
ICAgICBtX2xzdENTU1J1bGVzLT5pdGVtKGkpLT5zZXRQYXJlbnQodGhpcyk7CkBAIC00Miw3ICs0
Miw3IEBAIENTU01lZGlhUnVsZTo6Q1NTTWVkaWFSdWxlKENTU1N0eWxlU2hlZXQqIHBhcmVudCwg
UGFzc1JlZlB0cjxNZWRpYUxpc3Q+IG1lZGlhLCBQCiBDU1NNZWRpYVJ1bGU6On5DU1NNZWRpYVJ1
bGUoKQogewogICAgIGlmIChtX2xzdE1lZGlhKQotICAgICAgICBtX2xzdE1lZGlhLT5zZXRQYXJl
bnQoMCk7CisgICAgICAgIG1fbHN0TWVkaWEtPnNldFBhcmVudFN0eWxlU2hlZXQoMCk7CiAKICAg
ICBpbnQgbGVuZ3RoID0gbV9sc3RDU1NSdWxlcy0+bGVuZ3RoKCk7CiAgICAgZm9yIChpbnQgaSA9
IDA7IGkgPCBsZW5ndGg7IGkrKykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NN
ZWRpYVJ1bGUuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NNZWRpYVJ1bGUuaAppbmRleCAzNDBj
ZjM2Li5mOTgyMjEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTTWVkaWFSdWxl
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU01lZGlhUnVsZS5oCkBAIC0zMSw3ICszMSw2
IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIENTU1J1bGVMaXN0OwotY2xhc3MgTWVk
aWFMaXN0OwogCiBjbGFzcyBDU1NNZWRpYVJ1bGUgOiBwdWJsaWMgQ1NTUnVsZSB7CiBwdWJsaWM6
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvTWVkaWFMaXN0LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9NZWRpYUxpc3QuY3BwCmluZGV4IDI5YWEwNjIuLjcwMjRkYzEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9NZWRpYUxpc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9NZWRpYUxpc3QuY3BwCkBAIC01NywxNSArNTcsMTUgQEAgbmFtZXNwYWNlIFdlYkNvcmUg
ewogICogdGhyb3cgU1lOVEFYX0VSUiBleGNlcHRpb24uCiAgKi8KIAotTWVkaWFMaXN0OjpNZWRp
YUxpc3QoQ1NTU3R5bGVTaGVldCogcGFyZW50U2hlZXQsIGJvb2wgZmFsbGJhY2tUb0Rlc2NyaXB0
b3IpCi0gICAgOiBTdHlsZUJhc2UocGFyZW50U2hlZXQpCi0gICAgLCBtX2ZhbGxiYWNrKGZhbGxi
YWNrVG9EZXNjcmlwdG9yKQorTWVkaWFMaXN0OjpNZWRpYUxpc3QoQ1NTU3R5bGVTaGVldCogcGFy
ZW50U3R5bGVTaGVldCwgYm9vbCBmYWxsYmFja1RvRGVzY3JpcHRvcikKKyAgICA6IG1fZmFsbGJh
Y2soZmFsbGJhY2tUb0Rlc2NyaXB0b3IpCisgICAgLCBtX3BhcmVudFN0eWxlU2hlZXQocGFyZW50
U3R5bGVTaGVldCkKIHsKIH0KIAotTWVkaWFMaXN0OjpNZWRpYUxpc3QoQ1NTU3R5bGVTaGVldCog
cGFyZW50U2hlZXQsIGNvbnN0IFN0cmluZyYgbWVkaWEsIGJvb2wgZmFsbGJhY2tUb0Rlc2NyaXB0
b3IpCi0gICAgOiBTdHlsZUJhc2UocGFyZW50U2hlZXQpCi0gICAgLCBtX2ZhbGxiYWNrKGZhbGxi
YWNrVG9EZXNjcmlwdG9yKQorTWVkaWFMaXN0OjpNZWRpYUxpc3QoQ1NTU3R5bGVTaGVldCogcGFy
ZW50U3R5bGVTaGVldCwgY29uc3QgU3RyaW5nJiBtZWRpYSwgYm9vbCBmYWxsYmFja1RvRGVzY3Jp
cHRvcikKKyAgICA6IG1fZmFsbGJhY2soZmFsbGJhY2tUb0Rlc2NyaXB0b3IpCisgICAgLCBtX3Bh
cmVudFN0eWxlU2hlZXQocGFyZW50U3R5bGVTaGVldCkKIHsKICAgICBFeGNlcHRpb25Db2RlIGVj
ID0gMDsKICAgICBzZXRNZWRpYVRleHQobWVkaWEsIGVjKTsKQEAgLTgyLDggKzgyLDggQEAgTWVk
aWFMaXN0OjpNZWRpYUxpc3QoQ1NTU3R5bGVTaGVldCogcGFyZW50U2hlZXQsIGNvbnN0IFN0cmlu
ZyYgbWVkaWEsIGJvb2wgZmFsbGIKIH0KIAogTWVkaWFMaXN0OjpNZWRpYUxpc3QoQ1NTSW1wb3J0
UnVsZSogcGFyZW50UnVsZSwgY29uc3QgU3RyaW5nJiBtZWRpYSkKLSAgICA6IFN0eWxlQmFzZShw
YXJlbnRSdWxlKQotICAgICwgbV9mYWxsYmFjayhmYWxzZSkKKyAgICA6IG1fZmFsbGJhY2soZmFs
c2UpCisgICAgLCBtX3BhcmVudFN0eWxlU2hlZXQocGFyZW50UnVsZS0+cGFyZW50U3R5bGVTaGVl
dCgpKQogewogICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAwOwogICAgIHNldE1lZGlhVGV4dChtZWRp
YSwgZWMpOwpAQCAtMjQ4LDEwICsyNDgsMjIgQEAgdm9pZCBNZWRpYUxpc3Q6OmFwcGVuZE1lZGlh
UXVlcnkoUGFzc093blB0cjxNZWRpYVF1ZXJ5PiBtZWRpYVF1ZXJ5KQogCiB2b2lkIE1lZGlhTGlz
dDo6bm90aWZ5Q2hhbmdlZCgpCiB7Ci0gICAgZm9yIChTdHlsZUJhc2UqIHAgPSBwYXJlbnQoKTsg
cDsgcCA9IHAtPnBhcmVudCgpKSB7Ci0gICAgICAgIGlmIChwLT5pc0NTU1N0eWxlU2hlZXQoKSkK
LSAgICAgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxDU1NTdHlsZVNoZWV0Kj4ocCktPnN0eWxl
U2hlZXRDaGFuZ2VkKCk7Ci0gICAgfQorICAgIGlmICghbV9wYXJlbnRTdHlsZVNoZWV0KQorICAg
ICAgICByZXR1cm47CisKKyAgICBtX3BhcmVudFN0eWxlU2hlZXQtPnN0eWxlU2hlZXRDaGFuZ2Vk
KCk7Cit9CisKK0NTU1N0eWxlU2hlZXQqIE1lZGlhTGlzdDo6cGFyZW50U3R5bGVTaGVldCgpIGNv
bnN0Cit7CisgICAgcmV0dXJuIG1fcGFyZW50U3R5bGVTaGVldDsKK30KKwordm9pZCBNZWRpYUxp
c3Q6OnNldFBhcmVudFN0eWxlU2hlZXQoQ1NTU3R5bGVTaGVldCogc3R5bGVTaGVldCkKK3sKKyAg
ICAvLyBNZWRpYUxpc3Qgc2hvdWxkIG5ldmVyIGJlIG1vdmVkIGJldHdlZW4gc3R5bGUgc2hlZXRz
LgorICAgIEFTU0VSVCghbV9wYXJlbnRTdHlsZVNoZWV0IHx8ICFzdHlsZVNoZWV0KTsKKyAgICBt
X3BhcmVudFN0eWxlU2hlZXQgPSBzdHlsZVNoZWV0OwogfQogCiB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvTWVkaWFMaXN0LmggYi9Tb3VyY2UvV2ViQ29yZS9jc3MvTWVkaWFMaXN0
LmgKaW5kZXggZjRiMWZhNy4uMGYwZjhjZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3Nz
L01lZGlhTGlzdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9NZWRpYUxpc3QuaApAQCAtMjEs
MjAgKzIxLDIxIEBACiAjaWZuZGVmIE1lZGlhTGlzdF9oCiAjZGVmaW5lIE1lZGlhTGlzdF9oCiAK
LSNpbmNsdWRlICJTdHlsZUJhc2UuaCIKICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgogI2luY2x1
ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CisjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KICNpbmNs
dWRlIDx3dGYvVmVjdG9yLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgQ1NTSW1w
b3J0UnVsZTsKK2NsYXNzIENTU1J1bGU7CiBjbGFzcyBDU1NTdHlsZVNoZWV0OwogY2xhc3MgTWVk
aWFRdWVyeTsKIAogdHlwZWRlZiBpbnQgRXhjZXB0aW9uQ29kZTsKIAotY2xhc3MgTWVkaWFMaXN0
IDogcHVibGljIFN0eWxlQmFzZSB7CitjbGFzcyBNZWRpYUxpc3QgOiBwdWJsaWMgUmVmQ291bnRl
ZDxNZWRpYUxpc3Q+IHsKIHB1YmxpYzoKICAgICBzdGF0aWMgUGFzc1JlZlB0cjxNZWRpYUxpc3Q+
IGNyZWF0ZSgpCiAgICAgewpAQCAtNzYsNiArNzcsOSBAQCBwdWJsaWM6CiAgICAgdm9pZCBhcHBl
bmRNZWRpYVF1ZXJ5KFBhc3NPd25QdHI8TWVkaWFRdWVyeT4pOwogICAgIGNvbnN0IFZlY3RvcjxN
ZWRpYVF1ZXJ5Kj4mIG1lZGlhUXVlcmllcygpIGNvbnN0IHsgcmV0dXJuIG1fcXVlcmllczsgfQog
CisgICAgQ1NTU3R5bGVTaGVldCogcGFyZW50U3R5bGVTaGVldCgpIGNvbnN0OworICAgIHZvaWQg
c2V0UGFyZW50U3R5bGVTaGVldChDU1NTdHlsZVNoZWV0Kik7CisKIHByaXZhdGU6CiAgICAgTWVk
aWFMaXN0KENTU1N0eWxlU2hlZXQqIHBhcmVudFNoZWV0LCBib29sIGZhbGxiYWNrVG9EZXNjcmlw
dGlvbik7CiAgICAgTWVkaWFMaXN0KENTU1N0eWxlU2hlZXQqIHBhcmVudFNoZWV0LCBjb25zdCBT
dHJpbmcmIG1lZGlhLCBib29sIGZhbGxiYWNrVG9EZXNjcmlwdGlvbik7CkBAIC04Myw4ICs4Nywx
MCBAQCBwcml2YXRlOgogCiAgICAgdm9pZCBub3RpZnlDaGFuZ2VkKCk7CiAKKyAgICBib29sIG1f
ZmFsbGJhY2s7IC8vIHRydWUgaWYgZmFpbGVkIG1lZGlhIHF1ZXJ5IHBhcnNpbmcgc2hvdWxkIGZh
bGxiYWNrIHRvIG1lZGlhIGRlc2NyaXB0aW9uIHBhcnNpbmcuCisKKyAgICBDU1NTdHlsZVNoZWV0
KiBtX3BhcmVudFN0eWxlU2hlZXQ7CiAgICAgVmVjdG9yPE1lZGlhUXVlcnkqPiBtX3F1ZXJpZXM7
Ci0gICAgYm9vbCBtX2ZhbGxiYWNrOyAvLyB0cnVlIGlmIGZhaWxlZCBtZWRpYSBxdWVyeSBwYXJz
aW5nIHNob3VsZCBmYWxsYmFjayB0byBtZWRpYSBkZXNjcmlwdGlvbiBwYXJzaW5nCiB9OwogCiB9
IC8vIG5hbWVzcGFjZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlU2hlZXQu
Y3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlU2hlZXQuY3BwCmluZGV4IDI1MmM4MzkuLmEx
YzQ2OTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVNoZWV0LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVTaGVldC5jcHAKQEAgLTIwLDYgKzIwLDcgQEAKICNp
bmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJTdHlsZVNoZWV0LmgiCiAKKyNpbmNsdWRlICJD
U1NTdHlsZVNoZWV0LmgiCiAjaW5jbHVkZSAiTWVkaWFMaXN0LmgiCiAjaW5jbHVkZSAiTm9kZS5o
IgogCkBAIC01NSw3ICs1Niw3IEBAIFN0eWxlU2hlZXQ6OlN0eWxlU2hlZXQoU3R5bGVCYXNlKiBv
d25lciwgY29uc3QgU3RyaW5nJiBvcmlnaW5hbFVSTCwgY29uc3QgS1VSTCYKIFN0eWxlU2hlZXQ6
On5TdHlsZVNoZWV0KCkKIHsKICAgICBpZiAobV9tZWRpYSkKLSAgICAgICAgbV9tZWRpYS0+c2V0
UGFyZW50KDApOworICAgICAgICBtX21lZGlhLT5zZXRQYXJlbnRTdHlsZVNoZWV0KDApOwogfQog
CiBTdHlsZVNoZWV0KiBTdHlsZVNoZWV0OjpwYXJlbnRTdHlsZVNoZWV0KCkgY29uc3QKQEAgLTY1
LDExICs2NiwxNCBAQCBTdHlsZVNoZWV0KiBTdHlsZVNoZWV0OjpwYXJlbnRTdHlsZVNoZWV0KCkg
Y29uc3QKIAogdm9pZCBTdHlsZVNoZWV0OjpzZXRNZWRpYShQYXNzUmVmUHRyPE1lZGlhTGlzdD4g
bWVkaWEpCiB7CisgICAgQVNTRVJUKGlzQ1NTU3R5bGVTaGVldCgpKTsKKyAgICBBU1NFUlQoIW1l
ZGlhLT5wYXJlbnRTdHlsZVNoZWV0KCkgfHwgbWVkaWEtPnBhcmVudFN0eWxlU2hlZXQoKSA9PSB0
aGlzKTsKKwogICAgIGlmIChtX21lZGlhKQotICAgICAgICBtX21lZGlhLT5zZXRQYXJlbnQoMCk7
CisgICAgICAgIG1fbWVkaWEtPnNldFBhcmVudFN0eWxlU2hlZXQoMCk7CiAKICAgICBtX21lZGlh
ID0gbWVkaWE7Ci0gICAgbV9tZWRpYS0+c2V0UGFyZW50KHRoaXMpOworICAgIG1fbWVkaWEtPnNl
dFBhcmVudFN0eWxlU2hlZXQoc3RhdGljX2Nhc3Q8Q1NTU3R5bGVTaGVldCo+KHRoaXMpKTsKIH0K
IAogS1VSTCBTdHlsZVNoZWV0Ojpjb21wbGV0ZVVSTChjb25zdCBTdHJpbmcmIHVybCkgY29uc3QK
</data>
<flag name="review"
          id="109042"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
      

    </bug>

</bugzilla>