<?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>108394</bug_id>
          
          <creation_ts>2013-01-30 15:53:54 -0800</creation_ts>
          <short_desc>Begin to make XSSAuditor thread aware</short_desc>
          <delta_ts>2013-01-31 15:20:14 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>106127</blocked>
    
    <blocked>107603</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Tony Gentilcore">tonyg</reporter>
          <assigned_to name="Tony Gentilcore">tonyg</assigned_to>
          <cc>abarth</cc>
    
    <cc>dbates</cc>
    
    <cc>eric</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>mkwst+watchlist</cc>
    
    <cc>ojan.autocc</cc>
    
    <cc>rakuco</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>820729</commentid>
    <comment_count>0</comment_count>
    <who name="Tony Gentilcore">tonyg</who>
    <bug_when>2013-01-30 15:53:54 -0800</bug_when>
    <thetext>Begin to make XSSAuditor thread aware</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>820734</commentid>
    <comment_count>1</comment_count>
      <attachid>185605</attachid>
    <who name="Tony Gentilcore">tonyg</who>
    <bug_when>2013-01-30 15:55:49 -0800</bug_when>
    <thetext>Created attachment 185605
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>820737</commentid>
    <comment_count>2</comment_count>
      <attachid>185605</attachid>
    <who name="Tony Gentilcore">tonyg</who>
    <bug_when>2013-01-30 15:58:36 -0800</bug_when>
    <thetext>Comment on attachment 185605
Patch

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

&gt; Source/WebCore/html/parser/XSSAuditor.cpp:297
&gt; +        callOnMainThread(bind(&amp;XSSAuditorDelegate::didBlockScript, m_delegate, request.release()));

This patch works if I change this to a straight call instead of a callOnMainThread. But with callOnMainThread, didBlockScript is never reached. Any theories?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>820782</commentid>
    <comment_count>3</comment_count>
      <attachid>185605</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2013-01-30 16:29:11 -0800</bug_when>
    <thetext>Comment on attachment 185605
Patch

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

&gt;&gt; Source/WebCore/html/parser/XSSAuditor.cpp:297
&gt;&gt; +        callOnMainThread(bind(&amp;XSSAuditorDelegate::didBlockScript, m_delegate, request.release()));
&gt; 
&gt; This patch works if I change this to a straight call instead of a callOnMainThread. But with callOnMainThread, didBlockScript is never reached. Any theories?

Rather than using callOnMainThread, we&apos;ll need to put this into the token stream so that it works correctly with speculative parsing.  Specifically, if we&apos;re speculation ahead, we only want the side effects of blocking an XSS to occur if and when we actually process that speculative token.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>820894</commentid>
    <comment_count>4</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2013-01-30 18:01:16 -0800</bug_when>
    <thetext>&gt; This patch works if I change this to a straight call instead of a callOnMainThread. But with callOnMainThread, didBlockScript is never reached. Any theories?

To answer your question specifically, my theory is that parsing is over by the time this callback gets scheduled on the main thread.  That means the m_delegate weak pointer gets invalidated and the callback gets cancelled.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>821770</commentid>
    <comment_count>5</comment_count>
      <attachid>185830</attachid>
    <who name="Tony Gentilcore">tonyg</who>
    <bug_when>2013-01-31 11:43:01 -0800</bug_when>
    <thetext>Created attachment 185830
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>821777</commentid>
    <comment_count>6</comment_count>
      <attachid>185830</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2013-01-31 11:46:43 -0800</bug_when>
    <thetext>Comment on attachment 185830
Patch

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

Looks like a useful first step.  I think Adam should give the official r+ as he wrote much of this code to begin with.

&gt; Source/WebCore/WebCore.vcxproj/WebCore.vcxproj:1
&gt; -ï»¿&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&gt;
&gt; +&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&gt;

I don&apos;t think you mean to remove the BOM?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>821827</commentid>
    <comment_count>7</comment_count>
      <attachid>185830</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2013-01-31 12:27:26 -0800</bug_when>
    <thetext>Comment on attachment 185830
Patch

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

&gt; Source/WebCore/html/parser/HTMLDocumentParser.cpp:371
&gt; +                m_xssAuditorDelegate.didBlockScript(*request);            

Maybe request.release() ?  I can imagine the delegate wanting to take ownership of the request.

&gt; Source/WebCore/html/parser/XSSAuditor.cpp:275
&gt; +    OwnPtr&lt;DidBlockScriptRequest&gt; request;

Another minor style comment: you can probably skip this local variable entirely.

&gt; Source/WebCore/html/parser/XSSAuditor.cpp:282
&gt; -        return;
&gt; +        return request.release();

Here you can &quot;return nullptr;&quot;

&gt; Source/WebCore/html/parser/XSSAuditor.cpp:-319
&gt; -

Here you can return request.release();

&gt; Source/WebCore/html/parser/XSSAuditor.cpp:303
&gt; +    return request.release();

Here again you can return nullptr;

&gt; Source/WebCore/html/parser/XSSAuditorDelegate.cpp:43
&gt; +    , m_notifyClient(true)

nit: I probably would have flipped this around as m_didNotifyClient, but that&apos;s a super minor issue.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>821940</commentid>
    <comment_count>8</comment_count>
      <attachid>185860</attachid>
    <who name="Tony Gentilcore">tonyg</who>
    <bug_when>2013-01-31 14:12:23 -0800</bug_when>
    <thetext>Created attachment 185860
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>821946</commentid>
    <comment_count>9</comment_count>
      <attachid>185830</attachid>
    <who name="Tony Gentilcore">tonyg</who>
    <bug_when>2013-01-31 14:17:46 -0800</bug_when>
    <thetext>Comment on attachment 185830
Patch

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

&gt;&gt; Source/WebCore/WebCore.vcxproj/WebCore.vcxproj:1
&gt;&gt; +&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&gt;
&gt; 
&gt; I don&apos;t think you mean to remove the BOM?

Good catch. Fixed.

&gt;&gt; Source/WebCore/html/parser/HTMLDocumentParser.cpp:371
&gt;&gt; +                m_xssAuditorDelegate.didBlockScript(*request);            
&gt; 
&gt; Maybe request.release() ?  I can imagine the delegate wanting to take ownership of the request.

Done

&gt;&gt; Source/WebCore/html/parser/XSSAuditor.cpp:275
&gt;&gt; +    OwnPtr&lt;DidBlockScriptRequest&gt; request;
&gt; 
&gt; Another minor style comment: you can probably skip this local variable entirely.

Done

&gt;&gt; Source/WebCore/html/parser/XSSAuditor.cpp:282
&gt;&gt; +        return request.release();
&gt; 
&gt; Here you can &quot;return nullptr;&quot;

Done

&gt;&gt; Source/WebCore/html/parser/XSSAuditor.cpp:-319
&gt;&gt; -
&gt; 
&gt; Here you can return request.release();

Done

&gt;&gt; Source/WebCore/html/parser/XSSAuditor.cpp:303
&gt;&gt; +    return request.release();
&gt; 
&gt; Here again you can return nullptr;

Done

&gt;&gt; Source/WebCore/html/parser/XSSAuditorDelegate.cpp:43
&gt;&gt; +    , m_notifyClient(true)
&gt; 
&gt; nit: I probably would have flipped this around as m_didNotifyClient, but that&apos;s a super minor issue.

It was just a straight copy from XSSAuditor, but I went ahead and fixed it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>822025</commentid>
    <comment_count>10</comment_count>
      <attachid>185860</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-01-31 15:20:08 -0800</bug_when>
    <thetext>Comment on attachment 185860
Patch

Clearing flags on attachment: 185860

Committed r141494: &lt;http://trac.webkit.org/changeset/141494&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>822026</commentid>
    <comment_count>11</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-01-31 15:20:14 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>185605</attachid>
            <date>2013-01-30 15:55:49 -0800</date>
            <delta_ts>2013-01-31 11:42:59 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-108394-20130130155234.patch</filename>
            <type>text/plain</type>
            <size>17044</size>
            <attacher name="Tony Gentilcore">tonyg</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQxMjg3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNGZkNTNlNWYwZTljNzg5
YjQ0Zjc5ZDM0NzFmMjQzY2MxOTk0NjBlNi4uNzExYzJjYTIzMGJkMzBhNmM2ZGFhYmJjNTMxY2U2
YWY4ODBlYzQxYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQyIEBACisyMDEzLTAxLTMwICBUb255
IEdlbnRpbGNvcmUgIDx0b255Z0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgQmVnaW4gdG8gbWFr
ZSBYU1NBdWRpdG9yIHRocmVhZCBhd2FyZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTA4Mzk0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgVGhpcyBwYXRjaCBtb3ZlcyB0aGUgcGFydHMgb2YgZmlsdGVyVG9r
ZW4oKSB0aGF0IGRlcGVuZCBvbiBGcmFtZSwgRG9jdW1lbnQsIGV0Yy4gdG8gYSBkZWxlZ2F0ZSBj
bGFzcy4KKyAgICAgICAgVGhlIG5ldyBkaWRCbG9ja1NjcmlwdCBtZXRob2QgaXMgaW52b2tlZCB2
aWEgY2FsbE9uTWFpblRocmVhZC4KKworICAgICAgICBUaGlzIGlzIGp1c3QgdGhlIGZpcnN0IHN0
ZXAgYXMgdGhlcmUgaXMgbW9yZSB0byBkbyB0byBtYWtlIFhTU0F1ZGl0b3IgdGhyZWFkIHNhZmUu
CisKKyAgICAgICAgTm8gbmV3IHRlc3RzIGJlY2F1c2UgY292ZXJlZCBieSBleGlzdGluZyB0ZXN0
cy4KKworICAgICAgICAqIFdlYkNvcmUuZ3lwaToKKyAgICAgICAgKiBodG1sL3BhcnNlci9IVE1M
RG9jdW1lbnRQYXJzZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTERvY3VtZW50UGFyc2Vy
OjpIVE1MRG9jdW1lbnRQYXJzZXIpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTERvY3VtZW50UGFy
c2VyOjpwdW1wVG9rZW5pemVyKToKKyAgICAgICAgKiBodG1sL3BhcnNlci9IVE1MRG9jdW1lbnRQ
YXJzZXIuaDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoSFRNTERvY3VtZW50UGFyc2Vy
KToKKyAgICAgICAgKiBodG1sL3BhcnNlci9YU1NBdWRpdG9yLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlhTU0F1ZGl0b3I6OlhTU0F1ZGl0b3IpOgorICAgICAgICAoV2ViQ29yZTo6WFNTQXVkaXRv
cjo6ZmlsdGVyVG9rZW4pOgorICAgICAgICAqIGh0bWwvcGFyc2VyL1hTU0F1ZGl0b3IuaDoKKyAg
ICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoWFNTQXVkaXRvcik6CisgICAgICAgICogaHRtbC9w
YXJzZXIvWFNTQXVkaXRvckRlbGVnYXRlLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlKToK
KyAgICAgICAgKFdlYkNvcmU6OlhTU0F1ZGl0b3JEZWxlZ2F0ZTo6WFNTQXVkaXRvckRlbGVnYXRl
KToKKyAgICAgICAgKFdlYkNvcmU6OlhTU0F1ZGl0b3JEZWxlZ2F0ZTo6ZGlkQmxvY2tTY3JpcHQp
OgorICAgICAgICAqIGh0bWwvcGFyc2VyL1hTU0F1ZGl0b3JEZWxlZ2F0ZS5oOiBBZGRlZC4KKyAg
ICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoRGlkQmxvY2tTY3JpcHRSZXF1ZXN0KToKKyAgICAg
ICAgKFdlYkNvcmU6OkRpZEJsb2NrU2NyaXB0UmVxdWVzdDo6Y3JlYXRlKToKKyAgICAgICAgKFdl
YkNvcmU6OkRpZEJsb2NrU2NyaXB0UmVxdWVzdDo6RGlkQmxvY2tTY3JpcHRSZXF1ZXN0KToKKyAg
ICAgICAgKFhTU0F1ZGl0b3JEZWxlZ2F0ZSk6CisgICAgICAgIChXZWJDb3JlOjpYU1NBdWRpdG9y
RGVsZWdhdGU6OmNyZWF0ZVdlYWtQdHIpOgorCiAyMDEzLTAxLTI5ICBKZXIgTm9ibGUgIDxqZXIu
bm9ibGVAYXBwbGUuY29tPgogCiAgICAgICAgIE1lZGlhUGxheWVyUHJpdmF0ZVFUS2l0IGNsYWlt
cyBpdCBzdXBwb3J0cyBhcHBsaWNhdGlvbi94LWRpc2tjb3B5LCBicmVha2luZyBkb3dubG9hZHMu
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkgYi9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLmd5cGkKaW5kZXggNjA3MjY3Y2ZjYmU1YzZlNjA0ZTI5MjA3MjM0NTE0NTNhODk2
MzMxMC4uYjE0MzU3ZmVkMDA0YTNhYjRjOTczYWQ2YjU0NzViYjJiZDE3NDdhMiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUuZ3lwaQpAQCAtMzM5OCw2ICszMzk4LDggQEAKICAgICAgICAgICAgICdodG1sL3BhcnNlci9U
ZXh0Vmlld1NvdXJjZVBhcnNlci5oJywKICAgICAgICAgICAgICdodG1sL3BhcnNlci9YU1NBdWRp
dG9yLmNwcCcsCiAgICAgICAgICAgICAnaHRtbC9wYXJzZXIvWFNTQXVkaXRvci5oJywKKyAgICAg
ICAgICAgICdodG1sL3BhcnNlci9YU1NBdWRpdG9yRGVsZWdhdGUuY3BwJywKKyAgICAgICAgICAg
ICdodG1sL3BhcnNlci9YU1NBdWRpdG9yRGVsZWdhdGUuaCcsCiAgICAgICAgICAgICAnaHRtbC9z
aGFkb3cvUGlja2VySW5kaWNhdG9yRWxlbWVudC5jcHAnLAogICAgICAgICAgICAgJ2h0bWwvc2hh
ZG93L1BpY2tlckluZGljYXRvckVsZW1lbnQuaCcsCiAgICAgICAgICAgICAnaHRtbC9zaGFkb3cv
Q29udGVudERpc3RyaWJ1dG9yLmNwcCcsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L3BhcnNlci9IVE1MRG9jdW1lbnRQYXJzZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJz
ZXIvSFRNTERvY3VtZW50UGFyc2VyLmNwcAppbmRleCA1YjhiZTJmNzZhMmQwMmQ1YWI0M2QxMzJh
MGU3ZGEwMmNkYWI1ZmE3Li44ODljY2Q3N2U5NWM0MDVlMTVjNTBiMGQyMzU2Zjc0YTc2ZDczZGFk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MRG9jdW1lbnRQYXJz
ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxEb2N1bWVudFBhcnNl
ci5jcHAKQEAgLTQzLDYgKzQzLDcgQEAKICNpbmNsdWRlICJJbnNwZWN0b3JJbnN0cnVtZW50YXRp
b24uaCIKICNpbmNsdWRlICJOZXN0aW5nTGV2ZWxJbmNyZW1lbnRlci5oIgogI2luY2x1ZGUgIlNl
dHRpbmdzLmgiCisjaW5jbHVkZSAiWFNTQXVkaXRvckRlbGVnYXRlLmgiCiAjaW5jbHVkZSA8d3Rm
L0Z1bmN0aW9uYWwuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtODIsNyArODMsOCBAQCBI
VE1MRG9jdW1lbnRQYXJzZXI6OkhUTUxEb2N1bWVudFBhcnNlcihIVE1MRG9jdW1lbnQqIGRvY3Vt
ZW50LCBib29sIHJlcG9ydEVycm9ycwogICAgICwgbV9zY3JpcHRSdW5uZXIoSFRNTFNjcmlwdFJ1
bm5lcjo6Y3JlYXRlKGRvY3VtZW50LCB0aGlzKSkKICAgICAsIG1fdHJlZUJ1aWxkZXIoSFRNTFRy
ZWVCdWlsZGVyOjpjcmVhdGUodGhpcywgZG9jdW1lbnQsIHJlcG9ydEVycm9ycywgbV9vcHRpb25z
KSkKICAgICAsIG1fcGFyc2VyU2NoZWR1bGVyKEhUTUxQYXJzZXJTY2hlZHVsZXI6OmNyZWF0ZSh0
aGlzKSkKLSAgICAsIG1feHNzQXVkaXRvcih0aGlzKQorICAgICwgbV94c3NBdWRpdG9yRGVsZWdh
dGUoYWRvcHRQdHIobmV3IFhTU0F1ZGl0b3JEZWxlZ2F0ZShkb2N1bWVudCkpKQorICAgICwgbV94
c3NBdWRpdG9yKG1feHNzQXVkaXRvckRlbGVnYXRlLT5jcmVhdGVXZWFrUHRyKCksIHRoaXMpCiAj
aWYgRU5BQkxFKFRIUkVBREVEX0hUTUxfUEFSU0VSKQogICAgICwgbV93ZWFrRmFjdG9yeSh0aGlz
KQogI2VuZGlmCkBAIC0xMDAsNyArMTAyLDggQEAgSFRNTERvY3VtZW50UGFyc2VyOjpIVE1MRG9j
dW1lbnRQYXJzZXIoRG9jdW1lbnRGcmFnbWVudCogZnJhZ21lbnQsIEVsZW1lbnQqIGNvbnQKICAg
ICAsIG1fdG9rZW4oYWRvcHRQdHIobmV3IEhUTUxUb2tlbikpCiAgICAgLCBtX3Rva2VuaXplcihI
VE1MVG9rZW5pemVyOjpjcmVhdGUobV9vcHRpb25zKSkKICAgICAsIG1fdHJlZUJ1aWxkZXIoSFRN
TFRyZWVCdWlsZGVyOjpjcmVhdGUodGhpcywgZnJhZ21lbnQsIGNvbnRleHRFbGVtZW50LCBzY3Jp
cHRpbmdQZXJtaXNzaW9uLCBtX29wdGlvbnMpKQotICAgICwgbV94c3NBdWRpdG9yKHRoaXMpCisg
ICAgLCBtX3hzc0F1ZGl0b3JEZWxlZ2F0ZShhZG9wdFB0cihuZXcgWFNTQXVkaXRvckRlbGVnYXRl
KGZyYWdtZW50LT5kb2N1bWVudCgpKSkpCisgICAgLCBtX3hzc0F1ZGl0b3IobV94c3NBdWRpdG9y
RGVsZWdhdGUtPmNyZWF0ZVdlYWtQdHIoKSwgdGhpcykKICNpZiBFTkFCTEUoVEhSRUFERURfSFRN
TF9QQVJTRVIpCiAgICAgLCBtX3dlYWtGYWN0b3J5KHRoaXMpCiAjZW5kaWYKQEAgLTM1Nyw3ICsz
NjAsNyBAQCB2b2lkIEhUTUxEb2N1bWVudFBhcnNlcjo6cHVtcFRva2VuaXplcihTeW5jaHJvbm91
c01vZGUgbW9kZSkKIAogICAgICAgICAgICAgLy8gV2UgZG8gbm90IFhTUyBmaWx0ZXIgaW5uZXJI
VE1MLCB3aGljaCBtZWFucyB3ZSAoaW50ZW50aW9uYWxseSkgZmFpbAogICAgICAgICAgICAgLy8g
aHR0cC90ZXN0cy9zZWN1cml0eS94c3NBdWRpdG9yL2RvbS13cml0ZS1pbm5lckhUTUwuaHRtbAot
ICAgICAgICAgICAgbV94c3NBdWRpdG9yLmZpbHRlclRva2VuKHRva2VuKCkpOworICAgICAgICAg
ICAgbV94c3NBdWRpdG9yLmZpbHRlclRva2VuKHRva2VuKCksIGxpbmVOdW1iZXIoKS5vbmVCYXNl
ZEludCgpKTsKICAgICAgICAgfQogCiAgICAgICAgIGNvbnN0cnVjdFRyZWVGcm9tSFRNTFRva2Vu
KHRva2VuKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTERv
Y3VtZW50UGFyc2VyLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MRG9jdW1lbnRQ
YXJzZXIuaAppbmRleCA3NTRmODFlMDM3ZjJmY2VjYWIwOTAzMmMzN2EyYzY0YWVkZjc0NjllLi4x
OTNjNGYxZmZkNzMzYWRlMmU4ZTE4OGIxMDE5NzZiNDhlZGQyOGU2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MRG9jdW1lbnRQYXJzZXIuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL3BhcnNlci9IVE1MRG9jdW1lbnRQYXJzZXIuaApAQCAtNTMsMTAgKzUzLDEw
IEBAIGNsYXNzIEhUTUxUb2tlbml6ZXI7CiBjbGFzcyBIVE1MU2NyaXB0UnVubmVyOwogY2xhc3Mg
SFRNTFRyZWVCdWlsZGVyOwogY2xhc3MgSFRNTFByZWxvYWRTY2FubmVyOworY2xhc3MgUHVtcFNl
c3Npb247CiBjbGFzcyBTY3JpcHRDb250cm9sbGVyOwogY2xhc3MgU2NyaXB0U291cmNlQ29kZTsK
LQotY2xhc3MgUHVtcFNlc3Npb247CitjbGFzcyBYU1NBdWRpdG9yRGVsZWdhdGU7CiAKIGNsYXNz
IEhUTUxEb2N1bWVudFBhcnNlciA6ICBwdWJsaWMgU2NyaXB0YWJsZURvY3VtZW50UGFyc2VyLCBI
VE1MU2NyaXB0UnVubmVySG9zdCwgQ2FjaGVkUmVzb3VyY2VDbGllbnQgewogICAgIFdURl9NQUtF
X0ZBU1RfQUxMT0NBVEVEOwpAQCAtMTY4LDYgKzE2OCw3IEBAIHByaXZhdGU6CiAgICAgT3duUHRy
PEhUTUxQYXJzZXJTY2hlZHVsZXI+IG1fcGFyc2VyU2NoZWR1bGVyOwogICAgIEhUTUxTb3VyY2VU
cmFja2VyIG1fc291cmNlVHJhY2tlcjsKICAgICBUZXh0UG9zaXRpb24gbV90ZXh0UG9zaXRpb247
CisgICAgT3duUHRyPFhTU0F1ZGl0b3JEZWxlZ2F0ZT4gbV94c3NBdWRpdG9yRGVsZWdhdGU7CiAg
ICAgWFNTQXVkaXRvciBtX3hzc0F1ZGl0b3I7CiAKICNpZiBFTkFCTEUoVEhSRUFERURfSFRNTF9Q
QVJTRVIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9YU1NBdWRpdG9y
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL1hTU0F1ZGl0b3IuY3BwCmluZGV4IGFj
ZmNjMmZiOWU4NGUyNWI1ZDVkNDM5MjliNjc4OWM3MGY0OWRmMzAuLjM0NDQxMWE4MzlmMTMwNTE5
NTg3ZTMwZjQ4ZjNiYjBmNmQ4ODhjOTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
cGFyc2VyL1hTU0F1ZGl0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL1hT
U0F1ZGl0b3IuY3BwCkBAIC00OSw3ICs0OSwxMCBAQAogI2luY2x1ZGUgIlNldHRpbmdzLmgiCiAj
aW5jbHVkZSAiVGV4dEVuY29kaW5nLmgiCiAjaW5jbHVkZSAiVGV4dFJlc291cmNlRGVjb2Rlci5o
IgorI2luY2x1ZGUgIlhTU0F1ZGl0b3JEZWxlZ2F0ZS5oIgogCisjaW5jbHVkZSA8d3RmL0Z1bmN0
aW9uYWwuaD4KKyNpbmNsdWRlIDx3dGYvTWFpblRocmVhZC5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0
L0NTdHJpbmcuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtMTY2LDggKzE2OSw5IEBAIHN0
YXRpYyBTdHJpbmcgZnVsbHlEZWNvZGVTdHJpbmcoY29uc3QgU3RyaW5nJiBzdHJpbmcsIGNvbnN0
IFRleHRSZXNvdXJjZURlY29kZXIqCiAgICAgcmV0dXJuIHdvcmtpbmdTdHJpbmc7CiB9CiAKLVhT
U0F1ZGl0b3I6OlhTU0F1ZGl0b3IoSFRNTERvY3VtZW50UGFyc2VyKiBwYXJzZXIpCi0gICAgOiBt
X3BhcnNlcihwYXJzZXIpCitYU1NBdWRpdG9yOjpYU1NBdWRpdG9yKGNvbnN0IFdlYWtQdHI8WFNT
QXVkaXRvckRlbGVnYXRlPiYgZGVsZWdhdGUsIEhUTUxEb2N1bWVudFBhcnNlciogcGFyc2VyKQor
ICAgIDogbV9kZWxlZ2F0ZShkZWxlZ2F0ZSkKKyAgICAsIG1fcGFyc2VyKHBhcnNlcikKICAgICAs
IG1faXNFbmFibGVkKGZhbHNlKQogICAgICwgbV94c3NQcm90ZWN0aW9uKFhTU1Byb3RlY3Rpb25F
bmFibGVkKQogICAgICwgbV9zdGF0ZShVbmluaXRpYWxpemVkKQpAQCAtMjY4LDcgKzI3Miw3IEBA
IHZvaWQgWFNTQXVkaXRvcjo6aW5pdCgpCiAgICAgfQogfQogCi12b2lkIFhTU0F1ZGl0b3I6OmZp
bHRlclRva2VuKEhUTUxUb2tlbiYgdG9rZW4pCit2b2lkIFhTU0F1ZGl0b3I6OmZpbHRlclRva2Vu
KEhUTUxUb2tlbiYgdG9rZW4sIHVuc2lnbmVkIGxpbmVOdW1iZXIpCiB7CiAgICAgaWYgKG1fc3Rh
dGUgPT0gVW5pbml0aWFsaXplZCkKICAgICAgICAgaW5pdCgpOwpAQCAtMjg4LDM3ICsyOTIsMTQg
QEAgdm9pZCBYU1NBdWRpdG9yOjpmaWx0ZXJUb2tlbihIVE1MVG9rZW4mIHRva2VuKQogICAgIH0K
IAogICAgIGlmIChkaWRCbG9ja1NjcmlwdCkgewotICAgICAgICAvLyBGSVhNRTogQ29uc2lkZXIg
dXNpbmcgYSBtb3JlIGhlbHBmdWwgY29uc29sZSBtZXNzYWdlLgotICAgICAgICBERUZJTkVfU1RB
VElDX0xPQ0FMKFN0cmluZywgY29uc29sZU1lc3NhZ2UsIChBU0NJSUxpdGVyYWwoIlJlZnVzZWQg
dG8gZXhlY3V0ZSBhIEphdmFTY3JpcHQgc2NyaXB0LiBTb3VyY2UgY29kZSBvZiBzY3JpcHQgZm91
bmQgd2l0aGluIHJlcXVlc3QuXG4iKSkpOwotICAgICAgICBtX3BhcnNlci0+ZG9jdW1lbnQoKS0+
YWRkQ29uc29sZU1lc3NhZ2UoSlNNZXNzYWdlU291cmNlLCBFcnJvck1lc3NhZ2VMZXZlbCwgY29u
c29sZU1lc3NhZ2UpOwotCiAgICAgICAgIGJvb2wgZGlkQmxvY2tFbnRpcmVQYWdlID0gKG1feHNz
UHJvdGVjdGlvbiA9PSBYU1NQcm90ZWN0aW9uQmxvY2tFbmFibGVkKTsKLSAgICAgICAgaWYgKGRp
ZEJsb2NrRW50aXJlUGFnZSkKLSAgICAgICAgICAgICBtX3BhcnNlci0+ZG9jdW1lbnQoKS0+ZnJh
bWUoKS0+bG9hZGVyKCktPnN0b3BBbGxMb2FkZXJzKCk7Ci0KLSAgICAgICAgaWYgKG1fbm90aWZ5
Q2xpZW50KSB7Ci0gICAgICAgICAgICBtX3BhcnNlci0+ZG9jdW1lbnQoKS0+ZnJhbWUoKS0+bG9h
ZGVyKCktPmNsaWVudCgpLT5kaWREZXRlY3RYU1MobV9wYXJzZXItPmRvY3VtZW50KCktPnVybCgp
LCBkaWRCbG9ja0VudGlyZVBhZ2UpOwotICAgICAgICAgICAgbV9ub3RpZnlDbGllbnQgPSBmYWxz
ZTsKLSAgICAgICAgfQotCisgICAgICAgIE93blB0cjxEaWRCbG9ja1NjcmlwdFJlcXVlc3Q+IHJl
cXVlc3QgPSBEaWRCbG9ja1NjcmlwdFJlcXVlc3Q6OmNyZWF0ZShtX3JlcG9ydFVSTCwgbV9vcmln
aW5hbFVSTCwgbV9vcmlnaW5hbEhUVFBCb2R5LCBsaW5lTnVtYmVyLCBkaWRCbG9ja0VudGlyZVBh
Z2UpOworICAgICAgICBjYWxsT25NYWluVGhyZWFkKGJpbmQoJlhTU0F1ZGl0b3JEZWxlZ2F0ZTo6
ZGlkQmxvY2tTY3JpcHQsIG1fZGVsZWdhdGUsIHJlcXVlc3QucmVsZWFzZSgpKSk7CiAgICAgICAg
IGlmICghbV9yZXBvcnRVUkwuaXNFbXB0eSgpKSB7Ci0gICAgICAgICAgICBSZWZQdHI8SW5zcGVj
dG9yT2JqZWN0PiByZXBvcnREZXRhaWxzID0gSW5zcGVjdG9yT2JqZWN0OjpjcmVhdGUoKTsKLSAg
ICAgICAgICAgIHJlcG9ydERldGFpbHMtPnNldFN0cmluZygicmVxdWVzdC11cmwiLCBtX29yaWdp
bmFsVVJMKTsKLSAgICAgICAgICAgIHJlcG9ydERldGFpbHMtPnNldFN0cmluZygicmVxdWVzdC1i
b2R5IiwgbV9vcmlnaW5hbEhUVFBCb2R5KTsKLQotICAgICAgICAgICAgUmVmUHRyPEluc3BlY3Rv
ck9iamVjdD4gcmVwb3J0T2JqZWN0ID0gSW5zcGVjdG9yT2JqZWN0OjpjcmVhdGUoKTsKLSAgICAg
ICAgICAgIHJlcG9ydE9iamVjdC0+c2V0T2JqZWN0KCJ4c3MtcmVwb3J0IiwgcmVwb3J0RGV0YWls
cy5yZWxlYXNlKCkpOwotCi0gICAgICAgICAgICBSZWZQdHI8Rm9ybURhdGE+IHJlcG9ydCA9IEZv
cm1EYXRhOjpjcmVhdGUocmVwb3J0T2JqZWN0LT50b0pTT05TdHJpbmcoKS51dGY4KCkuZGF0YSgp
KTsKLSAgICAgICAgICAgIFBpbmdMb2FkZXI6OnNlbmRWaW9sYXRpb25SZXBvcnQobV9wYXJzZXIt
PmRvY3VtZW50KCktPmZyYW1lKCksIG1fcmVwb3J0VVJMLCByZXBvcnQpOwotCiAgICAgICAgICAg
ICBtX3JlcG9ydFVSTCA9IEtVUkwoKTsKICAgICAgICAgICAgIG1fb3JpZ2luYWxVUkwgPSBTdHJp
bmcoKTsKICAgICAgICAgICAgIG1fb3JpZ2luYWxIVFRQQm9keSA9IFN0cmluZygpOwogICAgICAg
ICB9Ci0KLSAgICAgICAgaWYgKGRpZEJsb2NrRW50aXJlUGFnZSkKLSAgICAgICAgICAgIG1fcGFy
c2VyLT5kb2N1bWVudCgpLT5mcmFtZSgpLT5uYXZpZ2F0aW9uU2NoZWR1bGVyKCktPnNjaGVkdWxl
TG9jYXRpb25DaGFuZ2UobV9wYXJzZXItPmRvY3VtZW50KCktPnNlY3VyaXR5T3JpZ2luKCksIGJs
YW5rVVJMKCksIFN0cmluZygpKTsKICAgICB9CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvcGFyc2VyL1hTU0F1ZGl0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2Vy
L1hTU0F1ZGl0b3IuaAppbmRleCAzNTk2OThmY2VjNWQzNDJhN2E1NmI2MjA1M2I2NzAxOWFkZmJl
NDA3Li4xMDcyOTQ1NTE5NTg4NDdiOWM4MTEwOGVmMWVkYTk5YzExNGI3MjVkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9YU1NBdWRpdG9yLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9wYXJzZXIvWFNTQXVkaXRvci5oCkBAIC0yOSwxNyArMjksMTkgQEAKICNpbmNs
dWRlICJIVE1MVG9rZW4uaCIKICNpbmNsdWRlICJIVFRQUGFyc2Vycy5oIgogI2luY2x1ZGUgIlN1
ZmZpeFRyZWUuaCIKKyNpbmNsdWRlIDx3dGYvV2Vha1B0ci5oPgogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKIGNsYXNzIEhUTUxEb2N1bWVudFBhcnNlcjsKK2NsYXNzIFhTU0F1ZGl0b3JEZWxlZ2F0
ZTsKIAogY2xhc3MgWFNTQXVkaXRvciB7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoWFNTQXVk
aXRvcik7CiBwdWJsaWM6Ci0gICAgZXhwbGljaXQgWFNTQXVkaXRvcihIVE1MRG9jdW1lbnRQYXJz
ZXIqKTsKKyAgICBleHBsaWNpdCBYU1NBdWRpdG9yKGNvbnN0IFdlYWtQdHI8WFNTQXVkaXRvckRl
bGVnYXRlPiYsIEhUTUxEb2N1bWVudFBhcnNlciopOwogCi0gICAgdm9pZCBmaWx0ZXJUb2tlbihI
VE1MVG9rZW4mKTsKKyAgICB2b2lkIGZpbHRlclRva2VuKEhUTUxUb2tlbiYsIHVuc2lnbmVkIGxp
bmVOdW1iZXIpOwogCiBwcml2YXRlOgogICAgIHN0YXRpYyBjb25zdCBzaXplX3Qga01heGltdW1G
cmFnbWVudExlbmd0aFRhcmdldCA9IDEwMDsKQEAgLTgxLDYgKzgzLDggQEAgcHJpdmF0ZToKICAg
ICBib29sIGlzQ29udGFpbmVkSW5SZXF1ZXN0KGNvbnN0IFN0cmluZyYpOwogICAgIGJvb2wgaXNM
aWtlbHlTYWZlUmVzb3VyY2UoY29uc3QgU3RyaW5nJiB1cmwpOwogCisgICAgV2Vha1B0cjxYU1NB
dWRpdG9yRGVsZWdhdGU+IG1fZGVsZWdhdGU7CisKICAgICBIVE1MRG9jdW1lbnRQYXJzZXIqIG1f
cGFyc2VyOwogICAgIGJvb2wgbV9pc0VuYWJsZWQ7CiAgICAgWFNTUHJvdGVjdGlvbkRpc3Bvc2l0
aW9uIG1feHNzUHJvdGVjdGlvbjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFy
c2VyL1hTU0F1ZGl0b3JEZWxlZ2F0ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9Y
U1NBdWRpdG9yRGVsZWdhdGUuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmJlMjg5ZGY2NDFhYmYxNmI2NTk4Mjk5
Mjc2NDVjMDMzNzYyZTY5ZWQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L3BhcnNlci9YU1NBdWRpdG9yRGVsZWdhdGUuY3BwCkBAIC0wLDAgKzEsODUgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTMgR29vZ2xlLCBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMg
SVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVU
T1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAor
ICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcu
aCIKKyNpbmNsdWRlICJYU1NBdWRpdG9yRGVsZWdhdGUuaCIKKworI2luY2x1ZGUgIkNvbnNvbGUu
aCIKKyNpbmNsdWRlICJET01XaW5kb3cuaCIKKyNpbmNsdWRlICJEb2N1bWVudC5oIgorI2luY2x1
ZGUgIkZvcm1EYXRhLmgiCisjaW5jbHVkZSAiRnJhbWUuaCIKKyNpbmNsdWRlICJGcmFtZUxvYWRl
ckNsaWVudC5oIgorI2luY2x1ZGUgIkluc3BlY3RvclZhbHVlcy5oIgorI2luY2x1ZGUgIlBpbmdM
b2FkZXIuaCIKKyNpbmNsdWRlICJTZWN1cml0eU9yaWdpbi5oIgorCituYW1lc3BhY2UgV2ViQ29y
ZSB7CisKK1hTU0F1ZGl0b3JEZWxlZ2F0ZTo6WFNTQXVkaXRvckRlbGVnYXRlKERvY3VtZW50KiBk
b2N1bWVudCkKKyAgICA6IG1fZG9jdW1lbnQoZG9jdW1lbnQpCisgICAgLCBtX25vdGlmeUNsaWVu
dCh0cnVlKQorICAgICwgbV93ZWFrRmFjdG9yeSh0aGlzKQoreworICAgIEFTU0VSVChtX2RvY3Vt
ZW50KTsKK30KKwordm9pZCBYU1NBdWRpdG9yRGVsZWdhdGU6OmRpZEJsb2NrU2NyaXB0KFBhc3NP
d25QdHI8RGlkQmxvY2tTY3JpcHRSZXF1ZXN0PiByZXF1ZXN0KQoreworICAgIEFTU0VSVChpc01h
aW5UaHJlYWQoKSk7CisKKyAgICAvLyBGSVhNRTogQ29uc2lkZXIgdXNpbmcgYSBtb3JlIGhlbHBm
dWwgY29uc29sZSBtZXNzYWdlLgorICAgIERFRklORV9TVEFUSUNfTE9DQUwoU3RyaW5nLCBjb25z
b2xlTWVzc2FnZSwgKEFTQ0lJTGl0ZXJhbCgiUmVmdXNlZCB0byBleGVjdXRlIGEgSmF2YVNjcmlw
dCBzY3JpcHQuIFNvdXJjZSBjb2RlIG9mIHNjcmlwdCBmb3VuZCB3aXRoaW4gcmVxdWVzdC5cbiIp
KSk7CisgICAgaWYgKERPTVdpbmRvdyogd2luZG93ID0gbV9kb2N1bWVudC0+ZG9tV2luZG93KCkp
IHsKKyAgICAgICAgaWYgKENvbnNvbGUqIGNvbnNvbGUgPSB3aW5kb3ctPmNvbnNvbGUoKSkKKyAg
ICAgICAgICAgIGNvbnNvbGUtPmFkZE1lc3NhZ2UoSlNNZXNzYWdlU291cmNlLCBFcnJvck1lc3Nh
Z2VMZXZlbCwgY29uc29sZU1lc3NhZ2UsIG1fZG9jdW1lbnQtPnVybCgpLnN0cmluZygpLCByZXF1
ZXN0LT5tX2xpbmVOdW1iZXIpOworICAgIH0KKworCisgICAgaWYgKHJlcXVlc3QtPm1fZGlkQmxv
Y2tFbnRpcmVQYWdlKQorICAgICAgICBtX2RvY3VtZW50LT5mcmFtZSgpLT5sb2FkZXIoKS0+c3Rv
cEFsbExvYWRlcnMoKTsKKworICAgIGlmIChtX25vdGlmeUNsaWVudCkgeworICAgICAgICBtX2Rv
Y3VtZW50LT5mcmFtZSgpLT5sb2FkZXIoKS0+Y2xpZW50KCktPmRpZERldGVjdFhTUyhtX2RvY3Vt
ZW50LT51cmwoKSwgcmVxdWVzdC0+bV9kaWRCbG9ja0VudGlyZVBhZ2UpOworICAgICAgICBtX25v
dGlmeUNsaWVudCA9IGZhbHNlOworICAgIH0KKworICAgIGlmICghcmVxdWVzdC0+bV9yZXBvcnRV
UkwuaXNFbXB0eSgpKSB7CisgICAgICAgIFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IHJlcG9ydERl
dGFpbHMgPSBJbnNwZWN0b3JPYmplY3Q6OmNyZWF0ZSgpOworICAgICAgICByZXBvcnREZXRhaWxz
LT5zZXRTdHJpbmcoInJlcXVlc3QtdXJsIiwgcmVxdWVzdC0+bV9vcmlnaW5hbFVSTCk7CisgICAg
ICAgIHJlcG9ydERldGFpbHMtPnNldFN0cmluZygicmVxdWVzdC1ib2R5IiwgcmVxdWVzdC0+bV9v
cmlnaW5hbEhUVFBCb2R5KTsKKworICAgICAgICBSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiByZXBv
cnRPYmplY3QgPSBJbnNwZWN0b3JPYmplY3Q6OmNyZWF0ZSgpOworICAgICAgICByZXBvcnRPYmpl
Y3QtPnNldE9iamVjdCgieHNzLXJlcG9ydCIsIHJlcG9ydERldGFpbHMucmVsZWFzZSgpKTsKKwor
ICAgICAgICBSZWZQdHI8Rm9ybURhdGE+IHJlcG9ydCA9IEZvcm1EYXRhOjpjcmVhdGUocmVwb3J0
T2JqZWN0LT50b0pTT05TdHJpbmcoKS51dGY4KCkuZGF0YSgpKTsKKyAgICAgICAgUGluZ0xvYWRl
cjo6c2VuZFZpb2xhdGlvblJlcG9ydChtX2RvY3VtZW50LT5mcmFtZSgpLCByZXF1ZXN0LT5tX3Jl
cG9ydFVSTCwgcmVwb3J0KTsKKyAgICB9CisKKyAgICBpZiAocmVxdWVzdC0+bV9kaWRCbG9ja0Vu
dGlyZVBhZ2UpCisgICAgICAgIG1fZG9jdW1lbnQtPmZyYW1lKCktPm5hdmlnYXRpb25TY2hlZHVs
ZXIoKS0+c2NoZWR1bGVMb2NhdGlvbkNoYW5nZShtX2RvY3VtZW50LT5zZWN1cml0eU9yaWdpbigp
LCBibGFua1VSTCgpLCBTdHJpbmcoKSk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL1hTU0F1ZGl0b3JEZWxlZ2F0ZS5o
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvWFNTQXVkaXRvckRlbGVnYXRlLmgKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uOWVlYmUxZDhhYTZjZWEyNmIwM2E5NmQ0MGNmZjdmNWZmNTkwZTM5NAotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL1hTU0F1ZGl0b3JEZWxlZ2F0ZS5o
CkBAIC0wLDAgKzEsNzcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgR29vZ2xlLCBJbmMu
IEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICog
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJF
TUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKyNpZm5kZWYgWFNTQXVkaXRvckRlbGVnYXRlX2gKKyNkZWZpbmUgWFNTQXVkaXRv
ckRlbGVnYXRlX2gKKworI2luY2x1ZGUgIktVUkwuaCIKKyNpbmNsdWRlIDx3dGYvUGFzc093blB0
ci5oPgorI2luY2x1ZGUgPHd0Zi9XZWFrUHRyLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3Ry
aW5nLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgRG9jdW1lbnQ7CisKK2NsYXNz
IERpZEJsb2NrU2NyaXB0UmVxdWVzdCB7CitwdWJsaWM6CisgICAgc3RhdGljIFBhc3NPd25QdHI8
RGlkQmxvY2tTY3JpcHRSZXF1ZXN0PiBjcmVhdGUoY29uc3QgS1VSTCYgcmVwb3J0VVJMLCBjb25z
dCBTdHJpbmcmIG9yaWdpbmFsVVJMLCBjb25zdCBTdHJpbmcmIG9yaWdpbmFsSFRUUEJvZHksIHVu
c2lnbmVkIGxpbmVOdW1iZXIsIGJvb2wgZGlkQmxvY2tFbnRpcmVQYWdlKQorICAgIHsKKyAgICAg
ICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBEaWRCbG9ja1NjcmlwdFJlcXVlc3QocmVwb3J0VVJMLCBv
cmlnaW5hbFVSTCwgb3JpZ2luYWxIVFRQQm9keSwgbGluZU51bWJlciwgZGlkQmxvY2tFbnRpcmVQ
YWdlKSk7CisgICAgfQorCisgICAgS1VSTCBtX3JlcG9ydFVSTDsKKyAgICBTdHJpbmcgbV9vcmln
aW5hbFVSTDsKKyAgICBTdHJpbmcgbV9vcmlnaW5hbEhUVFBCb2R5OworICAgIHVuc2lnbmVkIG1f
bGluZU51bWJlcjsKKyAgICBib29sIG1fZGlkQmxvY2tFbnRpcmVQYWdlOworCitwcml2YXRlOgor
ICAgIERpZEJsb2NrU2NyaXB0UmVxdWVzdChjb25zdCBLVVJMJiByZXBvcnRVUkwsIGNvbnN0IFN0
cmluZyYgb3JpZ2luYWxVUkwsIGNvbnN0IFN0cmluZyYgb3JpZ2luYWxIVFRQQm9keSwgdW5zaWdu
ZWQgbGluZU51bWJlciwgYm9vbCBkaWRCbG9ja0VudGlyZVBhZ2UpCisgICAgICAgIDogbV9yZXBv
cnRVUkwocmVwb3J0VVJMKQorICAgICAgICAsIG1fb3JpZ2luYWxVUkwob3JpZ2luYWxVUkwpCisg
ICAgICAgICwgbV9vcmlnaW5hbEhUVFBCb2R5KG9yaWdpbmFsSFRUUEJvZHkpCisgICAgICAgICwg
bV9saW5lTnVtYmVyKGxpbmVOdW1iZXIpCisgICAgICAgICwgbV9kaWRCbG9ja0VudGlyZVBhZ2Uo
ZGlkQmxvY2tFbnRpcmVQYWdlKQorICAgIHsgfQorfTsKKworY2xhc3MgWFNTQXVkaXRvckRlbGVn
YXRlIHsKKyAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShYU1NBdWRpdG9yRGVsZWdhdGUpOworcHVi
bGljOgorICAgIFdlYWtQdHI8WFNTQXVkaXRvckRlbGVnYXRlPiBjcmVhdGVXZWFrUHRyKCkgeyBy
ZXR1cm4gbV93ZWFrRmFjdG9yeS5jcmVhdGVXZWFrUHRyKCk7IH0KKyAgICBleHBsaWNpdCBYU1NB
dWRpdG9yRGVsZWdhdGUoRG9jdW1lbnQqKTsKKworICAgIHZvaWQgZGlkQmxvY2tTY3JpcHQoUGFz
c093blB0cjxEaWRCbG9ja1NjcmlwdFJlcXVlc3Q+KTsKKworcHJpdmF0ZToKKyAgICBEb2N1bWVu
dCogbV9kb2N1bWVudDsKKyAgICBib29sIG1fbm90aWZ5Q2xpZW50OworICAgIFdlYWtQdHJGYWN0
b3J5PFhTU0F1ZGl0b3JEZWxlZ2F0ZT4gbV93ZWFrRmFjdG9yeTsKK307CisKK30KKworI2VuZGlm
Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>185830</attachid>
            <date>2013-01-31 11:43:01 -0800</date>
            <delta_ts>2013-01-31 14:17:46 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-108394-20130131113945.patch</filename>
            <type>text/plain</type>
            <size>28583</size>
            <attacher name="Tony Gentilcore">tonyg</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQxMzM3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTUxY2Y5ZDY2OTM1ZTE1
ZTU1MDU4MmQ4Nzc3Mzk1NWVmZThkOTU5MC4uNDQ4MzdjZDZkOTFhZTBjZWUyMDE3NGFhZTM5NGUz
YTY1YWQwZmQ3OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDc1IEBACisyMDEzLTAxLTMxICBUb255
IEdlbnRpbGNvcmUgIDx0b255Z0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgQmVnaW4gdG8gbWFr
ZSBYU1NBdWRpdG9yIHRocmVhZCBhd2FyZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTA4Mzk0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgVGhpcyBwYXRjaCBtb3ZlcyB0aGUgcGFydHMgb2YgZmlsdGVyVG9r
ZW4oKSB0aGF0IGRlcGVuZCBvbiBGcmFtZSwgRG9jdW1lbnQsIGV0Yy4gdG8gYSBkZWxlZ2F0ZSBj
bGFzcy4KKyAgICAgICAgVGhlIG5ldyBkaWRCbG9ja1NjcmlwdCBkZWxlZ2F0ZSBtZXRob2QgaXMg
aW52b2tlZCB3aXRoIHRoZSByZXN1bHRpbmcgRGlkQmxvY2tTY3JpcHRSZXF1ZXN0IHdoaWNoIHdp
bGwKKyAgICAgICAgYmUgb3duZWQgYnkgdGhlIENvbXBhY3RIVE1MVG9rZW4gaW4gdGhlIHRocmVh
ZGVkIGNhc2UuCisKKyAgICAgICAgVGhpcyBpcyBqdXN0IHRoZSBmaXJzdCBzdGVwIGFzIHRoZXJl
IGlzIG1vcmUgdG8gZG8gdG8gbWFrZSBYU1NBdWRpdG9yIHRocmVhZCBzYWZlLgorCisgICAgICAg
IE5vIG5ldyB0ZXN0cyBiZWNhdXNlIGNvdmVyZWQgYnkgZXhpc3RpbmcgdGVzdHMuCisKKyAgICAg
ICAgKiBXZWJDb3JlLmd5cGk6CisgICAgICAgICogaHRtbC9wYXJzZXIvSFRNTERvY3VtZW50UGFy
c2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxEb2N1bWVudFBhcnNlcjo6SFRNTERvY3Vt
ZW50UGFyc2VyKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxEb2N1bWVudFBhcnNlcjo6cHVtcFRv
a2VuaXplcik6CisgICAgICAgICogaHRtbC9wYXJzZXIvSFRNTERvY3VtZW50UGFyc2VyLmg6Cisg
ICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKEhUTUxEb2N1bWVudFBhcnNlcik6CisgICAgICAg
ICogaHRtbC9wYXJzZXIvWFNTQXVkaXRvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpYU1NBdWRp
dG9yOjpYU1NBdWRpdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OlhTU0F1ZGl0b3I6OmZpbHRlclRv
a2VuKToKKyAgICAgICAgKiBodG1sL3BhcnNlci9YU1NBdWRpdG9yLmg6CisgICAgICAgIChXZWJD
b3JlKToKKyAgICAgICAgKFhTU0F1ZGl0b3IpOgorICAgICAgICAqIGh0bWwvcGFyc2VyL1hTU0F1
ZGl0b3JEZWxlZ2F0ZS5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChX
ZWJDb3JlOjpYU1NBdWRpdG9yRGVsZWdhdGU6OlhTU0F1ZGl0b3JEZWxlZ2F0ZSk6CisgICAgICAg
IChXZWJDb3JlOjpYU1NBdWRpdG9yRGVsZWdhdGU6OmRpZEJsb2NrU2NyaXB0KToKKyAgICAgICAg
KiBodG1sL3BhcnNlci9YU1NBdWRpdG9yRGVsZWdhdGUuaDogQWRkZWQuCisgICAgICAgIChXZWJD
b3JlKToKKyAgICAgICAgKERpZEJsb2NrU2NyaXB0UmVxdWVzdCk6CisgICAgICAgIChXZWJDb3Jl
OjpEaWRCbG9ja1NjcmlwdFJlcXVlc3Q6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpEaWRC
bG9ja1NjcmlwdFJlcXVlc3Q6OkRpZEJsb2NrU2NyaXB0UmVxdWVzdCk6CisgICAgICAgIChYU1NB
dWRpdG9yRGVsZWdhdGUpOgorICAgICAgICAoV2ViQ29yZTo6WFNTQXVkaXRvckRlbGVnYXRlOjpj
cmVhdGVXZWFrUHRyKToKKworICAgICAgICAqIENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIEdO
VW1ha2VmaWxlLmxpc3QuYW06CisgICAgICAgICogVGFyZ2V0LnByaToKKyAgICAgICAgKiBXZWJD
b3JlLmd5cGk6CisgICAgICAgICogV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2o6CisgICAg
ICAgICogV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvajoKKyAgICAgICAgKiBXZWJDb3Jl
LnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qLmZpbHRlcnM6CisgICAgICAgICogV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGh0bWwvcGFyc2VyL0JhY2tncm91bmRI
VE1MUGFyc2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkJhY2tncm91bmRIVE1MUGFyc2VyOjpw
dW1wVG9rZW5pemVyKToKKyAgICAgICAgKiBodG1sL3BhcnNlci9IVE1MRG9jdW1lbnRQYXJzZXIu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTERvY3VtZW50UGFyc2VyOjpIVE1MRG9jdW1lbnRQ
YXJzZXIpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTERvY3VtZW50UGFyc2VyOjpwcm9jZXNzVG9r
ZW5zRnJvbUJhY2tncm91bmRQYXJzZXIpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTERvY3VtZW50
UGFyc2VyOjpwdW1wVG9rZW5pemVyKToKKyAgICAgICAgKiBodG1sL3BhcnNlci9IVE1MRG9jdW1l
bnRQYXJzZXIuaDoKKyAgICAgICAgKEhUTUxEb2N1bWVudFBhcnNlcik6CisgICAgICAgICogaHRt
bC9wYXJzZXIvWFNTQXVkaXRvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpYU1NBdWRpdG9yOjpm
aWx0ZXJUb2tlbik6CisgICAgICAgICogaHRtbC9wYXJzZXIvWFNTQXVkaXRvci5oOgorICAgICAg
ICAoV2ViQ29yZSk6CisgICAgICAgIChYU1NBdWRpdG9yKToKKyAgICAgICAgKiBodG1sL3BhcnNl
ci9YU1NBdWRpdG9yRGVsZWdhdGUuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmUpOgorICAg
ICAgICAoV2ViQ29yZTo6WFNTQXVkaXRvckRlbGVnYXRlOjpYU1NBdWRpdG9yRGVsZWdhdGUpOgor
ICAgICAgICAoV2ViQ29yZTo6WFNTQXVkaXRvckRlbGVnYXRlOjpkaWRCbG9ja1NjcmlwdCk6Cisg
ICAgICAgICogaHRtbC9wYXJzZXIvWFNTQXVkaXRvckRlbGVnYXRlLmg6IEFkZGVkLgorICAgICAg
ICAoV2ViQ29yZSk6CisgICAgICAgIChEaWRCbG9ja1NjcmlwdFJlcXVlc3QpOgorICAgICAgICAo
V2ViQ29yZTo6RGlkQmxvY2tTY3JpcHRSZXF1ZXN0OjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29y
ZTo6RGlkQmxvY2tTY3JpcHRSZXF1ZXN0OjpEaWRCbG9ja1NjcmlwdFJlcXVlc3QpOgorICAgICAg
ICAoWFNTQXVkaXRvckRlbGVnYXRlKToKKwogMjAxMy0wMS0zMCAgSm9lIE1hc29uICA8am1hc29u
QHJpbS5jb20+CiAKICAgICAgICAgW0JsYWNrQmVycnldIE5ldmVyIHN0b3JlIGVtcHR5IGNyZWRl
bnRpYWxzIGluIE5ldHdvcmtKb2I6OnN0b3JlQ3JlZGVudGlhbHMKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQK
aW5kZXggMjRlYmVmZTE1OWU4NjViNjQ3YjNmNmFhZTFlODU5ZDhmNzQzMzUzOC4uZjYwY2RhNTA5
MTQ2M2ZlYjQ2NWFjYzE2MDRkYTk3YWNjMzRhYWNmYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKQEAg
LTE1NTUsNiArMTU1NSw3IEBAIHNldChXZWJDb3JlX1NPVVJDRVMKICAgICBodG1sL3BhcnNlci9U
ZXh0RG9jdW1lbnRQYXJzZXIuY3BwCiAgICAgaHRtbC9wYXJzZXIvVGV4dFZpZXdTb3VyY2VQYXJz
ZXIuY3BwCiAgICAgaHRtbC9wYXJzZXIvWFNTQXVkaXRvci5jcHAKKyAgICBodG1sL3BhcnNlci9Y
U1NBdWRpdG9yRGVsZWdhdGUuY3BwCiAKICAgICBodG1sL3NoYWRvdy9Db250ZW50RGlzdHJpYnV0
b3IuY3BwCiAgICAgaHRtbC9zaGFkb3cvQ29udGVudFNlbGVjdG9yUXVlcnkuY3BwCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtIGIvU291cmNlL1dlYkNvcmUv
R05VbWFrZWZpbGUubGlzdC5hbQppbmRleCBkNWYzYzhlOTFkNWQ5YWE1YTYzMzhkMmM0YjM5ZWFm
M2UxODlkYmFhLi43Nzg4Y2ZmZTE5NTVjYWY0OTgxOGYyMjYwZDE3OTBjZmNmMjA0ODlmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KQEAgLTM1OTYsNiArMzU5Niw4IEBAIHdlYmNvcmVf
c291cmNlcyArPSBcCiAJU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvVGV4dFZpZXdTb3VyY2VQ
YXJzZXIuaCBcCiAJU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvWFNTQXVkaXRvci5jcHAgXAog
CVNvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL1hTU0F1ZGl0b3IuaCBcCisJU291cmNlL1dlYkNv
cmUvaHRtbC9wYXJzZXIvWFNTQXVkaXRvckRlbGVnYXRlLmNwcCBcCisJU291cmNlL1dlYkNvcmUv
aHRtbC9wYXJzZXIvWFNTQXVkaXRvckRlbGVnYXRlLmggXAogCVNvdXJjZS9XZWJDb3JlL2h0bWwv
c2hhZG93L1BpY2tlckluZGljYXRvckVsZW1lbnQuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9odG1s
L3NoYWRvdy9QaWNrZXJJbmRpY2F0b3JFbGVtZW50LmggXAogCVNvdXJjZS9XZWJDb3JlL2h0bWwv
c2hhZG93L0NvbnRlbnREaXN0cmlidXRvci5jcHAgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvVGFyZ2V0LnByaSBiL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkKaW5kZXggMjQ2NThkMzE3
YWRlZWNkNTdjNGQzN2I3NjI3ZWZmNzJhYzM2MTcwOS4uYmE0NjJkOTk0YTk5YWM4ODdiYTU1N2U3
OGIyNjA5Y2NhN2IyYjM2ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQor
KysgYi9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpCkBAIC03MzQsNiArNzM0LDcgQEAgU09VUkNF
UyArPSBcCiAgICAgaHRtbC9wYXJzZXIvVGV4dERvY3VtZW50UGFyc2VyLmNwcCBcCiAgICAgaHRt
bC9wYXJzZXIvVGV4dFZpZXdTb3VyY2VQYXJzZXIuY3BwIFwKICAgICBodG1sL3BhcnNlci9YU1NB
dWRpdG9yLmNwcCBcCisgICAgaHRtbC9wYXJzZXIvWFNTQXVkaXRvckRlbGVnYXRlLmNwcCBcCiAg
ICAgaHRtbC9zaGFkb3cvQ29udGVudERpc3RyaWJ1dG9yLmNwcCBcCiAgICAgaHRtbC9zaGFkb3cv
Q29udGVudFNlbGVjdG9yUXVlcnkuY3BwIFwKICAgICBodG1sL3NoYWRvdy9EYXRlVGltZUVkaXRF
bGVtZW50LmNwcCBcCkBAIC0xOTEwLDYgKzE5MTEsNyBAQCBIRUFERVJTICs9IFwKICAgICBodG1s
L3BhcnNlci9IVE1MVHJlZUJ1aWxkZXIuaCBcCiAgICAgaHRtbC9wYXJzZXIvSFRNTFZpZXdTb3Vy
Y2VQYXJzZXIuaCBcCiAgICAgaHRtbC9wYXJzZXIvWFNTQXVkaXRvci5oIFwKKyAgICBodG1sL3Bh
cnNlci9YU1NBdWRpdG9yRGVsZWdhdGUuaCBcCiAgICAgaHRtbC9zaGFkb3cvQ29udGVudERpc3Ry
aWJ1dG9yLmggXAogICAgIGh0bWwvc2hhZG93L0NvbnRlbnRTZWxlY3RvclF1ZXJ5LmggXAogICAg
IGh0bWwvc2hhZG93L0hUTUxDb250ZW50RWxlbWVudC5oIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUuZ3lwaSBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQppbmRleCBj
NDM3MmVlN2M4YTliZjJkMmZhYzMyZjUzZTZjN2IyY2UyYzEzMDMxLi41YjkzMjVlMTlhZjczZjFl
NDU4YjExYWUxYzYzZTJiNmJlOWRlZWU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLmd5cGkKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCkBAIC0zMzk4LDYgKzMz
OTgsOCBAQAogICAgICAgICAgICAgJ2h0bWwvcGFyc2VyL1RleHRWaWV3U291cmNlUGFyc2VyLmgn
LAogICAgICAgICAgICAgJ2h0bWwvcGFyc2VyL1hTU0F1ZGl0b3IuY3BwJywKICAgICAgICAgICAg
ICdodG1sL3BhcnNlci9YU1NBdWRpdG9yLmgnLAorICAgICAgICAgICAgJ2h0bWwvcGFyc2VyL1hT
U0F1ZGl0b3JEZWxlZ2F0ZS5jcHAnLAorICAgICAgICAgICAgJ2h0bWwvcGFyc2VyL1hTU0F1ZGl0
b3JEZWxlZ2F0ZS5oJywKICAgICAgICAgICAgICdodG1sL3NoYWRvdy9QaWNrZXJJbmRpY2F0b3JF
bGVtZW50LmNwcCcsCiAgICAgICAgICAgICAnaHRtbC9zaGFkb3cvUGlja2VySW5kaWNhdG9yRWxl
bWVudC5oJywKICAgICAgICAgICAgICdodG1sL3NoYWRvdy9Db250ZW50RGlzdHJpYnV0b3IuY3Bw
JywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNw
cm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKaW5kZXgg
MDMyM2FmNDk5MmZmOWVkZTBjMWNmMTk4MTMyNTBiZDFhY2EzNmUxNi4uYTgyMzU1MjRlYTg5ZGM0
NzcwMzRlYzJiODg5MDE2NjE4OTBjODllZiAxMDA3NTUKLS0tIGEvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52
Y3Byb2ovV2ViQ29yZS52Y3Byb2oKQEAgLTY0OTY0LDYgKzY0OTY0LDE0IEBACiAJCQkJCVJlbGF0
aXZlUGF0aD0iLi5caHRtbFxwYXJzZXJcWFNTQXVkaXRvci5oIgogCQkJCQk+CiAJCQkJPC9GaWxl
PgorCQkJCTxGaWxlCisJCQkJCVJlbGF0aXZlUGF0aD0iLi5caHRtbFxwYXJzZXJcWFNTQXVkaXRv
ckRlbGVnYXRlLmNwcCIKKwkJCQkJPgorCQkJCTwvRmlsZT4KKwkJCQk8RmlsZQorCQkJCQlSZWxh
dGl2ZVBhdGg9Ii4uXGh0bWxccGFyc2VyXFhTU0F1ZGl0b3JEZWxlZ2F0ZS5oIgorCQkJCQk+CisJ
CQkJPC9GaWxlPgogCQkJPC9GaWx0ZXI+CiAJCQk8RmlsdGVyCiAJCQkJTmFtZT0ic2hhZG93Igpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJv
aiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2oKaW5kZXgg
YWUyMGE1ZjY3YzIwM2Q3NTFhODIwNjMzMjk0ZDg1ZTBhYjY4MzE0My4uNjQ3MDYxODVkYTliYmFi
ZWExOWVmY2JmNTVmOTFlNjkyODViNjI5NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
LnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qCkBAIC0xLDQgKzEsNCBAQAot77u/PD94bWwgdmVyc2lv
bj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9
InV0Zi04Ij8+CiA8UHJvamVjdCBEZWZhdWx0VGFyZ2V0cz0iQnVpbGQiIFRvb2xzVmVyc2lvbj0i
NC4wIiB4bWxucz0iaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9kZXZlbG9wZXIvbXNidWls
ZC8yMDAzIj4KICAgPEl0ZW1Hcm91cCBMYWJlbD0iUHJvamVjdENvbmZpZ3VyYXRpb25zIj4KICAg
ICA8UHJvamVjdENvbmZpZ3VyYXRpb24gSW5jbHVkZT0iRGVidWd8V2luMzIiPgpAQCAtNDg4OCw2
ICs0ODg4LDcgQEAKICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGh0bWxccGFyc2VyXFRleHRE
b2N1bWVudFBhcnNlci5jcHAiIC8+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxodG1sXHBh
cnNlclxUZXh0Vmlld1NvdXJjZVBhcnNlci5jcHAiIC8+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRl
PSIuLlxodG1sXHBhcnNlclxYU1NBdWRpdG9yLmNwcCIgLz4KKyAgICA8Q2xDb21waWxlIEluY2x1
ZGU9Ii4uXGh0bWxccGFyc2VyXFhTU0F1ZGl0b3JEZWxlZ2F0ZS5jcHAiIC8+CiAgICAgPENsQ29t
cGlsZSBJbmNsdWRlPSIuLlxodG1sXHNoYWRvd1xDb250ZW50RGlzdHJpYnV0b3IuY3BwIiAvPgog
ICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5caHRtbFxzaGFkb3dcQ29udGVudFNlbGVjdG9yUXVl
cnkuY3BwIiAvPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5caHRtbFxzaGFkb3dcRGF0ZVRp
bWVFZGl0RWxlbWVudC5jcHAiIC8+CkBAIC03OTI5LDYgKzc5MzAsNyBAQAogICAgIDxDbEluY2x1
ZGUgSW5jbHVkZT0iLi5caHRtbFxwYXJzZXJcVGV4dERvY3VtZW50UGFyc2VyLmgiIC8+CiAgICAg
PENsSW5jbHVkZSBJbmNsdWRlPSIuLlxodG1sXHBhcnNlclxUZXh0Vmlld1NvdXJjZVBhcnNlci5o
IiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5caHRtbFxwYXJzZXJcWFNTQXVkaXRvci5o
IiAvPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5caHRtbFxwYXJzZXJcWFNTQXVkaXRvckRl
bGVnYXRlLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxodG1sXHNoYWRvd1xDb250
ZW50RGlzdHJpYnV0b3IuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGh0bWxcc2hh
ZG93XENvbnRlbnRTZWxlY3RvclF1ZXJ5LmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIu
LlxodG1sXHNoYWRvd1xEYXRlVGltZUVkaXRFbGVtZW50LmgiIC8+CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qLmZpbHRlcnMgYi9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qLmZpbHRlcnMKaW5kZXgg
ZTUyODExMzk4YzA0ZDdlNDZlYzE0ZTNkYjk2MDNkZTcyZjRmNDgyYS4uYTVhOTViYjRkOTg0Njhi
ZDBhY2IyZjIwY2U1MmY2NjY3ZWUzMThmZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvai5maWx0ZXJzCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2ouZmlsdGVycwpAQCAtMSw0ICsxLDQgQEAK
Le+7vzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9InV0Zi04Ij8+Cis8P3htbCB2ZXJzaW9u
PSIxLjAiIGVuY29kaW5nPSJ1dGYtOCI/PgogPFByb2plY3QgVG9vbHNWZXJzaW9uPSI0LjAiIHht
bG5zPSJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL2RldmVsb3Blci9tc2J1aWxkLzIwMDMi
PgogICA8SXRlbUdyb3VwPgogICAgIDxGaWx0ZXIgSW5jbHVkZT0iRGVyaXZlZFNvdXJjZXMiPgpA
QCAtNTY5NCw2ICs1Njk0LDkgQEAKICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGh0bWxccGFy
c2VyXFhTU0F1ZGl0b3IuY3BwIj4KICAgICAgIDxGaWx0ZXI+aHRtbFxwYXJzZXI8L0ZpbHRlcj4K
ICAgICA8L0NsQ29tcGlsZT4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGh0bWxccGFyc2Vy
XFhTU0F1ZGl0b3JEZWxlZ2F0ZS5jcHAiPgorICAgICAgPEZpbHRlcj5odG1sXHBhcnNlcjwvRmls
dGVyPgorICAgIDwvQ2xDb21waWxlPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5caHRtbFxz
aGFkb3dcQ29udGVudERpc3RyaWJ1dG9yLmNwcCI+CiAgICAgICA8RmlsdGVyPmh0bWxcc2hhZG93
PC9GaWx0ZXI+CiAgICAgPC9DbENvbXBpbGU+CkBAIC0xMjU4MSw2ICsxMjU4NCw5IEBACiAgICAg
PENsSW5jbHVkZSBJbmNsdWRlPSIuLlxodG1sXHBhcnNlclxYU1NBdWRpdG9yLmgiPgogICAgICAg
PEZpbHRlcj5odG1sXHBhcnNlcjwvRmlsdGVyPgogICAgIDwvQ2xJbmNsdWRlPgorICAgIDxDbElu
Y2x1ZGUgSW5jbHVkZT0iLi5caHRtbFxwYXJzZXJcWFNTQXVkaXRvckRlbGVnYXRlLmgiPgorICAg
ICAgPEZpbHRlcj5odG1sXHBhcnNlcjwvRmlsdGVyPgorICAgIDwvQ2xJbmNsdWRlPgogICAgIDxD
bEluY2x1ZGUgSW5jbHVkZT0iLi5caHRtbFxzaGFkb3dcQ29udGVudERpc3RyaWJ1dG9yLmgiPgog
ICAgICAgPEZpbHRlcj5odG1sXHNoYWRvdzwvRmlsdGVyPgogICAgIDwvQ2xJbmNsdWRlPgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
IGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4
IDQ2M2FlZjIwODg3YzdiNmZhMWU1YzVjODI3N2NjNzU3MWVhMzYzOTUuLmRjMTc1ZTUyMWQ4NWU4
YmI2Y2VjNzgzMWU3NWZjOWM2ZjkyYThjMGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTM2NDMsNiArMzY0Myw4IEBACiAJCTk3
N0UyRENFMTJGMEUyODMwMEMxMzM3OSAvKiBIVE1MU291cmNlVHJhY2tlci5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTc3RTJEQ0MxMkYwRTI4MzAwQzEz
Mzc5IC8qIEhUTUxTb3VyY2VUcmFja2VyLmggKi87IH07CiAJCTk3N0UyRTBFMTJGMEZDOUMwMEMx
MzM3OSAvKiBYU1NBdWRpdG9yLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDk3N0UyRTBCMTJGMEZDOUMwMEMxMzM3OSAvKiBYU1NBdWRpdG9yLmNwcCAq
LzsgfTsKIAkJOTc3RTJFMEYxMkYwRkM5QzAwQzEzMzc5IC8qIFhTU0F1ZGl0b3IuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk3N0UyRTBDMTJGMEZDOUMw
MEMxMzM3OSAvKiBYU1NBdWRpdG9yLmggKi87IH07CisJCTk3N0UyRTBFMTJGMEZDOUMwMEMxMzM4
MCAvKiBYU1NBdWRpdG9yRGVsZWdhdGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gOTc3RTJFMEIxMkYwRkM5QzAwQzEzMzgwIC8qIFhTU0F1ZGl0b3JE
ZWxlZ2F0ZS5jcHAgKi87IH07CisJCTk3N0UyRTBGMTJGMEZDOUMwMEMxMzM4MCAvKiBYU1NBdWRp
dG9yRGVsZWdhdGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDk3N0UyRTBDMTJGMEZDOUMwMEMxMzM4MCAvKiBYU1NBdWRpdG9yRGVsZWdhdGUuaCAqLzsg
fTsKIAkJOTc4QUQ2NzQxNDEzMEE4RDAwQzdDQUUzIC8qIEhUTUxTcGFuRWxlbWVudC5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5NzhBRDY3MTE0MTMw
QThEMDBDN0NBRTMgLyogSFRNTFNwYW5FbGVtZW50LmNwcCAqLzsgfTsKIAkJOTc4QUQ2NzUxNDEz
MEE4RDAwQzdDQUUzIC8qIEhUTUxTcGFuRWxlbWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTc4QUQ2NzIxNDEzMEE4RDAwQzdDQUUzIC8qIEhUTUxT
cGFuRWxlbWVudC5oICovOyB9OwogCQk5NzhEMDdCNjE0NUEwRjAzMDA5NjkwOEQgLyogRmlsZUV4
Y2VwdGlvbi5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA5NzhEMDdCNTE0NUEwRjAzMDA5NjkwOEQgLyogRmlsZUV4Y2VwdGlvbi5jcHAgKi87IH07CkBA
IC0xMTA0MSw2ICsxMTA0Myw4IEBACiAJCTk3N0UyRENDMTJGMEUyODMwMEMxMzM3OSAvKiBIVE1M
U291cmNlVHJhY2tlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBIVE1MU291
cmNlVHJhY2tlci5oOyBwYXRoID0gcGFyc2VyL0hUTUxTb3VyY2VUcmFja2VyLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTk3N0UyRTBCMTJGMEZDOUMwMEMxMzM3OSAvKiBYU1NBdWRp
dG9yLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IFhTU0F1ZGl0b3Iu
Y3BwOyBwYXRoID0gcGFyc2VyL1hTU0F1ZGl0b3IuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk5NzdFMkUwQzEyRjBGQzlDMDBDMTMzNzkgLyogWFNTQXVkaXRvci5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBYU1NBdWRpdG9yLmg7IHBhdGggPSBwYXJzZXIvWFNT
QXVkaXRvci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5NzdFMkUwQjEyRjBGQzlD
MDBDMTMzODAgLyogWFNTQXVkaXRvckRlbGVnYXRlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgbmFtZSA9IFhTU0F1ZGl0b3JEZWxlZ2F0ZS5jcHA7IHBhdGggPSBwYXJzZXIvWFNT
QXVkaXRvckRlbGVnYXRlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTc3RTJF
MEMxMkYwRkM5QzAwQzEzMzgwIC8qIFhTU0F1ZGl0b3JEZWxlZ2F0ZS5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IG5hbWUgPSBYU1NBdWRpdG9yRGVsZWdhdGUuaDsgcGF0aCA9IHBhcnNlci9Y
U1NBdWRpdG9yRGVsZWdhdGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTc4QUQ2
NzExNDEzMEE4RDAwQzdDQUUzIC8qIEhUTUxTcGFuRWxlbWVudC5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBIVE1MU3BhbkVsZW1lbnQuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk5NzhBRDY3MjE0MTMwQThEMDBDN0NBRTMgLyogSFRNTFNwYW5FbGVt
ZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEhUTUxTcGFuRWxlbWVudC5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5NzhBRDY3MzE0MTMwQThEMDBDN0NBRTMg
LyogSFRNTFNwYW5FbGVtZW50LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBIVE1MU3BhbkVs
ZW1lbnQuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTg2MzAsNiArMTg2MzQs
OCBAQAogCQkJCTk3QkM4NEEzMTIzNzBEQzgwMDBDNjE2MSAvKiBUZXh0Vmlld1NvdXJjZVBhcnNl
ci5oICovLAogCQkJCTk3N0UyRTBCMTJGMEZDOUMwMEMxMzM3OSAvKiBYU1NBdWRpdG9yLmNwcCAq
LywKIAkJCQk5NzdFMkUwQzEyRjBGQzlDMDBDMTMzNzkgLyogWFNTQXVkaXRvci5oICovLAorCQkJ
CTk3N0UyRTBCMTJGMEZDOUMwMEMxMzM4MCAvKiBYU1NBdWRpdG9yRGVsZWdhdGUuY3BwICovLAor
CQkJCTk3N0UyRTBDMTJGMEZDOUMwMEMxMzM4MCAvKiBYU1NBdWRpdG9yRGVsZWdhdGUuaCAqLywK
IAkJCSk7CiAJCQluYW1lID0gcGFyc2VyOwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKQEAg
LTI2MzA5LDYgKzI2MzE1LDcgQEAKIAkJCQk5M0YxOTlFRDA4MjQ1RTU5MDAxRTlBQkMgLyogWFNM
VFByb2Nlc3Nvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTFCRTUxMkUwQ0Y2QzUxMjAwMkVBOTU5
IC8qIFhTTFRVbmljb2RlU29ydC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTc3RTJFMEYxMkYwRkM5
QzAwQzEzMzc5IC8qIFhTU0F1ZGl0b3IuaCBpbiBIZWFkZXJzICovLAorCQkJCTk3N0UyRTBGMTJG
MEZDOUMwMEMxMzM4MCAvKiBYU1NBdWRpdG9yRGVsZWdhdGUuaCBpbiBIZWFkZXJzICovLAogCQkJ
CUZENTM3MzUzMTM3QjY1MTgwMDAwOERDRSAvKiBaZXJvUG9sZS5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJRkI5MTM5MjQxNkFFNEMxNzAwMUZFNjgyIC8qIERPTVBhdGguaCBpbiBIZWFkZXJzICovLAog
CQkJCUZCOTEzOTI2MTZBRTRDMkYwMDFGRTY4MiAvKiBDYW52YXNQYXRoTWV0aG9kcy5oIGluIEhl
YWRlcnMgKi8sCkBAIC0yOTQ2NCw2ICsyOTQ3MSw3IEBACiAJCQkJOTNGMTlCMDUwODI0NUU1OTAw
MUU5QUJDIC8qIFhTTFRQcm9jZXNzb3JMaWJ4c2x0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUUx
QkU1MTJEMENGNkM1MTIwMDJFQTk1OSAvKiBYU0xUVW5pY29kZVNvcnQuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJOTc3RTJFMEUxMkYwRkM5QzAwQzEzMzc5IC8qIFhTU0F1ZGl0b3IuY3BwIGluIFNv
dXJjZXMgKi8sCisJCQkJOTc3RTJFMEUxMkYwRkM5QzAwQzEzMzgwIC8qIFhTU0F1ZGl0b3JEZWxl
Z2F0ZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlGRDUzNzM1MjEzN0I2NTE4MDAwMDhEQ0UgLyog
WmVyb1BvbGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRkI5MTM5MjcxNkFFNEMzNDAwMUZFNjgy
IC8qIENhbnZhc1BhdGhNZXRob2RzLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUZCOTEzOTJCMTZB
RTRGQzAwMDFGRTY4MiAvKiBKU0RPTVBhdGguY3BwIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9CYWNrZ3JvdW5kSFRNTFBhcnNlci5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9CYWNrZ3JvdW5kSFRNTFBhcnNlci5jcHAKaW5kZXgg
MGU5NjdjNjg2MmQ4OTYyNGIxNTBjMGY2OTMzNTliMjU3M2Y5OWZkYy4uOTJkODNiYjc3NTZjN2Yx
ZTlkNGE2ODc3ZmQwN2U4ZWI0ZjQxYzlmNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRt
bC9wYXJzZXIvQmFja2dyb3VuZEhUTUxQYXJzZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvcGFyc2VyL0JhY2tncm91bmRIVE1MUGFyc2VyLmNwcApAQCAtMTU1LDYgKzE1NSw3IEBAIGJv
b2wgQmFja2dyb3VuZEhUTUxQYXJzZXI6OnNpbXVsYXRlVHJlZUJ1aWxkZXIoY29uc3QgQ29tcGFj
dEhUTUxUb2tlbiYgdG9rZW4pCiB2b2lkIEJhY2tncm91bmRIVE1MUGFyc2VyOjpwdW1wVG9rZW5p
emVyKCkKIHsKICAgICB3aGlsZSAobV90b2tlbml6ZXItPm5leHRUb2tlbihtX2lucHV0LCAqbV90
b2tlbi5nZXQoKSkpIHsKKyAgICAgICAgLy8gRklYTUU6IENhbGwgbV94c3NBdWRpdG9yLmZpbHRl
clRva2VuKG1fdG9rZW4pIGFuZCBwdXQgcmVzdWx0aW5nIERpZEJsb2NrU2NyaXB0UmVxdWVzdCBp
bnRvIENvbXBhY3RIVE1MVG9rZW4uCiAgICAgICAgIG1fcGVuZGluZ1Rva2Vucy0+YXBwZW5kKENv
bXBhY3RIVE1MVG9rZW4obV90b2tlbi5nZXQoKSwgVGV4dFBvc2l0aW9uKG1faW5wdXQuY3VycmVu
dExpbmUoKSwgbV9pbnB1dC5jdXJyZW50Q29sdW1uKCkpKSk7CiAgICAgICAgIG1fdG9rZW4tPmNs
ZWFyKCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxEb2N1
bWVudFBhcnNlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MRG9jdW1lbnRQ
YXJzZXIuY3BwCmluZGV4IGMwMDA3NjYwOGM5OTc0NmUzZjU4YzIxYTExMzI2Y2U3NGQyMDMxZjku
LmFkZDIwNDgxNjFhMjg1NmRmNTU2MTJmMmJmMmM0NjViYmI3YjAxNzQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxEb2N1bWVudFBhcnNlci5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTERvY3VtZW50UGFyc2VyLmNwcApAQCAtODMsNiAr
ODMsNyBAQCBIVE1MRG9jdW1lbnRQYXJzZXI6OkhUTUxEb2N1bWVudFBhcnNlcihIVE1MRG9jdW1l
bnQqIGRvY3VtZW50LCBib29sIHJlcG9ydEVycm9ycwogICAgICwgbV90cmVlQnVpbGRlcihIVE1M
VHJlZUJ1aWxkZXI6OmNyZWF0ZSh0aGlzLCBkb2N1bWVudCwgcmVwb3J0RXJyb3JzLCBtX29wdGlv
bnMpKQogICAgICwgbV9wYXJzZXJTY2hlZHVsZXIoSFRNTFBhcnNlclNjaGVkdWxlcjo6Y3JlYXRl
KHRoaXMpKQogICAgICwgbV94c3NBdWRpdG9yKHRoaXMpCisgICAgLCBtX3hzc0F1ZGl0b3JEZWxl
Z2F0ZShkb2N1bWVudCkKICNpZiBFTkFCTEUoVEhSRUFERURfSFRNTF9QQVJTRVIpCiAgICAgLCBt
X3dlYWtGYWN0b3J5KHRoaXMpCiAjZW5kaWYKQEAgLTEwMiw2ICsxMDMsNyBAQCBIVE1MRG9jdW1l
bnRQYXJzZXI6OkhUTUxEb2N1bWVudFBhcnNlcihEb2N1bWVudEZyYWdtZW50KiBmcmFnbWVudCwg
RWxlbWVudCogY29udAogICAgICwgbV90b2tlbml6ZXIoSFRNTFRva2VuaXplcjo6Y3JlYXRlKG1f
b3B0aW9ucykpCiAgICAgLCBtX3RyZWVCdWlsZGVyKEhUTUxUcmVlQnVpbGRlcjo6Y3JlYXRlKHRo
aXMsIGZyYWdtZW50LCBjb250ZXh0RWxlbWVudCwgc2NyaXB0aW5nUGVybWlzc2lvbiwgbV9vcHRp
b25zKSkKICAgICAsIG1feHNzQXVkaXRvcih0aGlzKQorICAgICwgbV94c3NBdWRpdG9yRGVsZWdh
dGUoZnJhZ21lbnQtPmRvY3VtZW50KCkpCiAjaWYgRU5BQkxFKFRIUkVBREVEX0hUTUxfUEFSU0VS
KQogICAgICwgbV93ZWFrRmFjdG9yeSh0aGlzKQogI2VuZGlmCkBAIC0zMDUsNyArMzA3LDcgQEAg
dm9pZCBIVE1MRG9jdW1lbnRQYXJzZXI6OnByb2Nlc3NUb2tlbnNGcm9tQmFja2dyb3VuZFBhcnNl
cihQYXNzT3duUHRyPENvbXBhY3RIVE0KICAgICBmb3IgKFZlY3RvcjxDb21wYWN0SFRNTFRva2Vu
Pjo6Y29uc3RfaXRlcmF0b3IgaXQgPSB0b2tlbnMtPmJlZ2luKCk7IGl0ICE9IHRva2Vucy0+ZW5k
KCk7ICsraXQpIHsKICAgICAgICAgQVNTRVJUKCFpc1dhaXRpbmdGb3JTY3JpcHRzKCkpOwogCi0g
ICAgICAgIC8vIEZJWE1FOiBDYWxsIG1feHNzQXVkaXRvci5maWx0ZXJUb2tlbigqaXQpLgorICAg
ICAgICAvLyBGSVhNRTogQ2FsbCBtX3hzc0F1ZGl0b3JEZWxlZ2F0ZS5kaWRCbG9ja1NjcmlwdCgp
IHdpdGggRGlkQmxvY2tTY3JpcHRSZXF1ZXN0IGZyb20gdGhlIENvbXBhY3RIVE1MVG9rZW4uCiAg
ICAgICAgIG1fdGV4dFBvc2l0aW9uID0gaXQtPnRleHRQb3NpdGlvbigpOwogICAgICAgICBjb25z
dHJ1Y3RUcmVlRnJvbUNvbXBhY3RIVE1MVG9rZW4oKml0KTsKIApAQCAtMzY0LDcgKzM2Niw5IEBA
IHZvaWQgSFRNTERvY3VtZW50UGFyc2VyOjpwdW1wVG9rZW5pemVyKFN5bmNocm9ub3VzTW9kZSBt
b2RlKQogCiAgICAgICAgICAgICAvLyBXZSBkbyBub3QgWFNTIGZpbHRlciBpbm5lckhUTUwsIHdo
aWNoIG1lYW5zIHdlIChpbnRlbnRpb25hbGx5KSBmYWlsCiAgICAgICAgICAgICAvLyBodHRwL3Rl
c3RzL3NlY3VyaXR5L3hzc0F1ZGl0b3IvZG9tLXdyaXRlLWlubmVySFRNTC5odG1sCi0gICAgICAg
ICAgICBtX3hzc0F1ZGl0b3IuZmlsdGVyVG9rZW4odG9rZW4oKSk7CisgICAgICAgICAgICBPd25Q
dHI8RGlkQmxvY2tTY3JpcHRSZXF1ZXN0PiByZXF1ZXN0ID0gbV94c3NBdWRpdG9yLmZpbHRlclRv
a2VuKHRva2VuKCkpOworICAgICAgICAgICAgaWYgKHJlcXVlc3QpCisgICAgICAgICAgICAgICAg
bV94c3NBdWRpdG9yRGVsZWdhdGUuZGlkQmxvY2tTY3JpcHQoKnJlcXVlc3QpOyAgICAgICAgICAg
IAogICAgICAgICB9CiAKICAgICAgICAgY29uc3RydWN0VHJlZUZyb21IVE1MVG9rZW4odG9rZW4o
KSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MRG9jdW1lbnRQ
YXJzZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxEb2N1bWVudFBhcnNlci5o
CmluZGV4IGE4M2IyOWM3ZThlM2JjMzU1YjZkMTExNTJhODI3NTcyOTBkNjAzMjQuLjdjZGZiMjAz
MDQ2MjI5ZmI2ZTgyNGM2YzU3YjNkYjg4ZTMyZWNjMTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvcGFyc2VyL0hUTUxEb2N1bWVudFBhcnNlci5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvcGFyc2VyL0hUTUxEb2N1bWVudFBhcnNlci5oCkBAIC0zNyw2ICszNyw3IEBACiAjaW5j
bHVkZSAiU2VnbWVudGVkU3RyaW5nLmgiCiAjaW5jbHVkZSAiVGltZXIuaCIKICNpbmNsdWRlICJY
U1NBdWRpdG9yLmgiCisjaW5jbHVkZSAiWFNTQXVkaXRvckRlbGVnYXRlLmgiCiAjaW5jbHVkZSA8
d3RmL0RlcXVlLmg+CiAjaW5jbHVkZSA8d3RmL093blB0ci5oPgogI2luY2x1ZGUgPHd0Zi9XZWFr
UHRyLmg+CkBAIC0xNzAsNiArMTcxLDcgQEAgcHJpdmF0ZToKICAgICBIVE1MU291cmNlVHJhY2tl
ciBtX3NvdXJjZVRyYWNrZXI7CiAgICAgVGV4dFBvc2l0aW9uIG1fdGV4dFBvc2l0aW9uOwogICAg
IFhTU0F1ZGl0b3IgbV94c3NBdWRpdG9yOworICAgIFhTU0F1ZGl0b3JEZWxlZ2F0ZSBtX3hzc0F1
ZGl0b3JEZWxlZ2F0ZTsKIAogI2lmIEVOQUJMRShUSFJFQURFRF9IVE1MX1BBUlNFUikKICAgICBE
ZXF1ZTxPd25QdHI8Q29tcGFjdEhUTUxUb2tlblN0cmVhbT4gPiBtX3BlbmRpbmdUb2tlbnM7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9YU1NBdWRpdG9yLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL1hTU0F1ZGl0b3IuY3BwCmluZGV4IGFjZmNjMmZiOWU4
NGUyNWI1ZDVkNDM5MjliNjc4OWM3MGY0OWRmMzAuLmIwMmMyYzdlYTdlN2NjZTIzOTgwYTMxZDFj
ZWEzYzgzYWFiNjNhODIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL1hT
U0F1ZGl0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL1hTU0F1ZGl0b3Iu
Y3BwCkBAIC01MCw2ICs1MCw4IEBACiAjaW5jbHVkZSAiVGV4dEVuY29kaW5nLmgiCiAjaW5jbHVk
ZSAiVGV4dFJlc291cmNlRGVjb2Rlci5oIgogCisjaW5jbHVkZSA8d3RmL0Z1bmN0aW9uYWwuaD4K
KyNpbmNsdWRlIDx3dGYvTWFpblRocmVhZC5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcu
aD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtMjY4LDE0ICsyNzAsMTYgQEAgdm9pZCBYU1NB
dWRpdG9yOjppbml0KCkKICAgICB9CiB9CiAKLXZvaWQgWFNTQXVkaXRvcjo6ZmlsdGVyVG9rZW4o
SFRNTFRva2VuJiB0b2tlbikKK1Bhc3NPd25QdHI8RGlkQmxvY2tTY3JpcHRSZXF1ZXN0PiBYU1NB
dWRpdG9yOjpmaWx0ZXJUb2tlbihIVE1MVG9rZW4mIHRva2VuKQogeworICAgIE93blB0cjxEaWRC
bG9ja1NjcmlwdFJlcXVlc3Q+IHJlcXVlc3Q7CisKICAgICBpZiAobV9zdGF0ZSA9PSBVbmluaXRp
YWxpemVkKQogICAgICAgICBpbml0KCk7CiAgICAKICAgICBBU1NFUlQobV9zdGF0ZSA9PSBJbml0
aWFsaXplZCk7CiAgICAgaWYgKCFtX2lzRW5hYmxlZCB8fCBtX3hzc1Byb3RlY3Rpb24gPT0gWFNT
UHJvdGVjdGlvbkRpc2FibGVkKQotICAgICAgICByZXR1cm47CisgICAgICAgIHJldHVybiByZXF1
ZXN0LnJlbGVhc2UoKTsKIAogICAgIGJvb2wgZGlkQmxvY2tTY3JpcHQgPSBmYWxzZTsKICAgICBp
ZiAodG9rZW4udHlwZSgpID09IEhUTUxUb2tlblR5cGVzOjpTdGFydFRhZykKQEAgLTI4OCwzOCAr
MjkyLDE1IEBAIHZvaWQgWFNTQXVkaXRvcjo6ZmlsdGVyVG9rZW4oSFRNTFRva2VuJiB0b2tlbikK
ICAgICB9CiAKICAgICBpZiAoZGlkQmxvY2tTY3JpcHQpIHsKLSAgICAgICAgLy8gRklYTUU6IENv
bnNpZGVyIHVzaW5nIGEgbW9yZSBoZWxwZnVsIGNvbnNvbGUgbWVzc2FnZS4KLSAgICAgICAgREVG
SU5FX1NUQVRJQ19MT0NBTChTdHJpbmcsIGNvbnNvbGVNZXNzYWdlLCAoQVNDSUlMaXRlcmFsKCJS
ZWZ1c2VkIHRvIGV4ZWN1dGUgYSBKYXZhU2NyaXB0IHNjcmlwdC4gU291cmNlIGNvZGUgb2Ygc2Ny
aXB0IGZvdW5kIHdpdGhpbiByZXF1ZXN0LlxuIikpKTsKLSAgICAgICAgbV9wYXJzZXItPmRvY3Vt
ZW50KCktPmFkZENvbnNvbGVNZXNzYWdlKEpTTWVzc2FnZVNvdXJjZSwgRXJyb3JNZXNzYWdlTGV2
ZWwsIGNvbnNvbGVNZXNzYWdlKTsKLQogICAgICAgICBib29sIGRpZEJsb2NrRW50aXJlUGFnZSA9
IChtX3hzc1Byb3RlY3Rpb24gPT0gWFNTUHJvdGVjdGlvbkJsb2NrRW5hYmxlZCk7Ci0gICAgICAg
IGlmIChkaWRCbG9ja0VudGlyZVBhZ2UpCi0gICAgICAgICAgICAgbV9wYXJzZXItPmRvY3VtZW50
KCktPmZyYW1lKCktPmxvYWRlcigpLT5zdG9wQWxsTG9hZGVycygpOwotCi0gICAgICAgIGlmICht
X25vdGlmeUNsaWVudCkgewotICAgICAgICAgICAgbV9wYXJzZXItPmRvY3VtZW50KCktPmZyYW1l
KCktPmxvYWRlcigpLT5jbGllbnQoKS0+ZGlkRGV0ZWN0WFNTKG1fcGFyc2VyLT5kb2N1bWVudCgp
LT51cmwoKSwgZGlkQmxvY2tFbnRpcmVQYWdlKTsKLSAgICAgICAgICAgIG1fbm90aWZ5Q2xpZW50
ID0gZmFsc2U7Ci0gICAgICAgIH0KLQorICAgICAgICByZXF1ZXN0ID0gRGlkQmxvY2tTY3JpcHRS
ZXF1ZXN0OjpjcmVhdGUobV9yZXBvcnRVUkwsIG1fb3JpZ2luYWxVUkwsIG1fb3JpZ2luYWxIVFRQ
Qm9keSwgZGlkQmxvY2tFbnRpcmVQYWdlKTsKICAgICAgICAgaWYgKCFtX3JlcG9ydFVSTC5pc0Vt
cHR5KCkpIHsKLSAgICAgICAgICAgIFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IHJlcG9ydERldGFp
bHMgPSBJbnNwZWN0b3JPYmplY3Q6OmNyZWF0ZSgpOwotICAgICAgICAgICAgcmVwb3J0RGV0YWls
cy0+c2V0U3RyaW5nKCJyZXF1ZXN0LXVybCIsIG1fb3JpZ2luYWxVUkwpOwotICAgICAgICAgICAg
cmVwb3J0RGV0YWlscy0+c2V0U3RyaW5nKCJyZXF1ZXN0LWJvZHkiLCBtX29yaWdpbmFsSFRUUEJv
ZHkpOwotCi0gICAgICAgICAgICBSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiByZXBvcnRPYmplY3Qg
PSBJbnNwZWN0b3JPYmplY3Q6OmNyZWF0ZSgpOwotICAgICAgICAgICAgcmVwb3J0T2JqZWN0LT5z
ZXRPYmplY3QoInhzcy1yZXBvcnQiLCByZXBvcnREZXRhaWxzLnJlbGVhc2UoKSk7Ci0KLSAgICAg
ICAgICAgIFJlZlB0cjxGb3JtRGF0YT4gcmVwb3J0ID0gRm9ybURhdGE6OmNyZWF0ZShyZXBvcnRP
YmplY3QtPnRvSlNPTlN0cmluZygpLnV0ZjgoKS5kYXRhKCkpOwotICAgICAgICAgICAgUGluZ0xv
YWRlcjo6c2VuZFZpb2xhdGlvblJlcG9ydChtX3BhcnNlci0+ZG9jdW1lbnQoKS0+ZnJhbWUoKSwg
bV9yZXBvcnRVUkwsIHJlcG9ydCk7Ci0KICAgICAgICAgICAgIG1fcmVwb3J0VVJMID0gS1VSTCgp
OwogICAgICAgICAgICAgbV9vcmlnaW5hbFVSTCA9IFN0cmluZygpOwogICAgICAgICAgICAgbV9v
cmlnaW5hbEhUVFBCb2R5ID0gU3RyaW5nKCk7CiAgICAgICAgIH0KLQotICAgICAgICBpZiAoZGlk
QmxvY2tFbnRpcmVQYWdlKQotICAgICAgICAgICAgbV9wYXJzZXItPmRvY3VtZW50KCktPmZyYW1l
KCktPm5hdmlnYXRpb25TY2hlZHVsZXIoKS0+c2NoZWR1bGVMb2NhdGlvbkNoYW5nZShtX3BhcnNl
ci0+ZG9jdW1lbnQoKS0+c2VjdXJpdHlPcmlnaW4oKSwgYmxhbmtVUkwoKSwgU3RyaW5nKCkpOwog
ICAgIH0KKyAgICByZXR1cm4gcmVxdWVzdC5yZWxlYXNlKCk7CiB9CiAKIGJvb2wgWFNTQXVkaXRv
cjo6ZmlsdGVyU3RhcnRUb2tlbihIVE1MVG9rZW4mIHRva2VuKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaHRtbC9wYXJzZXIvWFNTQXVkaXRvci5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9w
YXJzZXIvWFNTQXVkaXRvci5oCmluZGV4IDM1OTY5OGZjZWM1ZDM0MmE3YTU2YjYyMDUzYjY3MDE5
YWRmYmU0MDcuLjliNzVmYmU4ZmNjZmFiZDJmNmZiMzlmYzIxZTU2Y2VlNjJhZWJmZDYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL1hTU0F1ZGl0b3IuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL3BhcnNlci9YU1NBdWRpdG9yLmgKQEAgLTI5LDkgKzI5LDExIEBACiAj
aW5jbHVkZSAiSFRNTFRva2VuLmgiCiAjaW5jbHVkZSAiSFRUUFBhcnNlcnMuaCIKICNpbmNsdWRl
ICJTdWZmaXhUcmVlLmgiCisjaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KIAogbmFtZXNwYWNl
IFdlYkNvcmUgewogCitjbGFzcyBEaWRCbG9ja1NjcmlwdFJlcXVlc3Q7CiBjbGFzcyBIVE1MRG9j
dW1lbnRQYXJzZXI7CiAKIGNsYXNzIFhTU0F1ZGl0b3IgewpAQCAtMzksNyArNDEsNyBAQCBjbGFz
cyBYU1NBdWRpdG9yIHsKIHB1YmxpYzoKICAgICBleHBsaWNpdCBYU1NBdWRpdG9yKEhUTUxEb2N1
bWVudFBhcnNlciopOwogCi0gICAgdm9pZCBmaWx0ZXJUb2tlbihIVE1MVG9rZW4mKTsKKyAgICBQ
YXNzT3duUHRyPERpZEJsb2NrU2NyaXB0UmVxdWVzdD4gZmlsdGVyVG9rZW4oSFRNTFRva2VuJik7
CiAKIHByaXZhdGU6CiAgICAgc3RhdGljIGNvbnN0IHNpemVfdCBrTWF4aW11bUZyYWdtZW50TGVu
Z3RoVGFyZ2V0ID0gMTAwOwpAQCAtODEsNiArODMsNyBAQCBwcml2YXRlOgogICAgIGJvb2wgaXND
b250YWluZWRJblJlcXVlc3QoY29uc3QgU3RyaW5nJik7CiAgICAgYm9vbCBpc0xpa2VseVNhZmVS
ZXNvdXJjZShjb25zdCBTdHJpbmcmIHVybCk7CiAKKyAgICAvLyBGSVhNRTogUmVtb3ZlIHRoaXMg
ZGVwZW5kZW5jeS4KICAgICBIVE1MRG9jdW1lbnRQYXJzZXIqIG1fcGFyc2VyOwogICAgIGJvb2wg
bV9pc0VuYWJsZWQ7CiAgICAgWFNTUHJvdGVjdGlvbkRpc3Bvc2l0aW9uIG1feHNzUHJvdGVjdGlv
bjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL1hTU0F1ZGl0b3JEZWxl
Z2F0ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9YU1NBdWRpdG9yRGVsZWdhdGUu
Y3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjhkNjE3ZjdmOTVhMjU3ZWMwYjk5ZTM3ODkwODg0ODA1MDUyY2VhYWMK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9YU1NBdWRpdG9y
RGVsZWdhdGUuY3BwCkBAIC0wLDAgKzEsODEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMg
R29vZ2xlLCBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlks
IE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisg
KiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJYU1NB
dWRpdG9yRGVsZWdhdGUuaCIKKworI2luY2x1ZGUgIkNvbnNvbGUuaCIKKyNpbmNsdWRlICJET01X
aW5kb3cuaCIKKyNpbmNsdWRlICJEb2N1bWVudC5oIgorI2luY2x1ZGUgIkZvcm1EYXRhLmgiCisj
aW5jbHVkZSAiRnJhbWUuaCIKKyNpbmNsdWRlICJGcmFtZUxvYWRlckNsaWVudC5oIgorI2luY2x1
ZGUgIkluc3BlY3RvclZhbHVlcy5oIgorI2luY2x1ZGUgIlBpbmdMb2FkZXIuaCIKKyNpbmNsdWRl
ICJTZWN1cml0eU9yaWdpbi5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1hTU0F1ZGl0b3JE
ZWxlZ2F0ZTo6WFNTQXVkaXRvckRlbGVnYXRlKERvY3VtZW50KiBkb2N1bWVudCkKKyAgICA6IG1f
ZG9jdW1lbnQoZG9jdW1lbnQpCisgICAgLCBtX25vdGlmeUNsaWVudCh0cnVlKQoreworICAgIEFT
U0VSVChpc01haW5UaHJlYWQoKSk7CisgICAgQVNTRVJUKG1fZG9jdW1lbnQpOworfQorCit2b2lk
IFhTU0F1ZGl0b3JEZWxlZ2F0ZTo6ZGlkQmxvY2tTY3JpcHQoY29uc3QgRGlkQmxvY2tTY3JpcHRS
ZXF1ZXN0JiByZXF1ZXN0KQoreworICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CisKKyAgICAv
LyBGSVhNRTogQ29uc2lkZXIgdXNpbmcgYSBtb3JlIGhlbHBmdWwgY29uc29sZSBtZXNzYWdlLgor
ICAgIERFRklORV9TVEFUSUNfTE9DQUwoU3RyaW5nLCBjb25zb2xlTWVzc2FnZSwgKEFTQ0lJTGl0
ZXJhbCgiUmVmdXNlZCB0byBleGVjdXRlIGEgSmF2YVNjcmlwdCBzY3JpcHQuIFNvdXJjZSBjb2Rl
IG9mIHNjcmlwdCBmb3VuZCB3aXRoaW4gcmVxdWVzdC5cbiIpKSk7CisgICAgbV9kb2N1bWVudC0+
YWRkQ29uc29sZU1lc3NhZ2UoSlNNZXNzYWdlU291cmNlLCBFcnJvck1lc3NhZ2VMZXZlbCwgY29u
c29sZU1lc3NhZ2UpOworCisgICAgaWYgKHJlcXVlc3QubV9kaWRCbG9ja0VudGlyZVBhZ2UpCisg
ICAgICAgIG1fZG9jdW1lbnQtPmZyYW1lKCktPmxvYWRlcigpLT5zdG9wQWxsTG9hZGVycygpOwor
CisgICAgaWYgKG1fbm90aWZ5Q2xpZW50KSB7CisgICAgICAgIG1fZG9jdW1lbnQtPmZyYW1lKCkt
PmxvYWRlcigpLT5jbGllbnQoKS0+ZGlkRGV0ZWN0WFNTKG1fZG9jdW1lbnQtPnVybCgpLCByZXF1
ZXN0Lm1fZGlkQmxvY2tFbnRpcmVQYWdlKTsKKyAgICAgICAgbV9ub3RpZnlDbGllbnQgPSBmYWxz
ZTsKKyAgICB9CisKKyAgICBpZiAoIXJlcXVlc3QubV9yZXBvcnRVUkwuaXNFbXB0eSgpKSB7Cisg
ICAgICAgIFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IHJlcG9ydERldGFpbHMgPSBJbnNwZWN0b3JP
YmplY3Q6OmNyZWF0ZSgpOworICAgICAgICByZXBvcnREZXRhaWxzLT5zZXRTdHJpbmcoInJlcXVl
c3QtdXJsIiwgcmVxdWVzdC5tX29yaWdpbmFsVVJMKTsKKyAgICAgICAgcmVwb3J0RGV0YWlscy0+
c2V0U3RyaW5nKCJyZXF1ZXN0LWJvZHkiLCByZXF1ZXN0Lm1fb3JpZ2luYWxIVFRQQm9keSk7CisK
KyAgICAgICAgUmVmUHRyPEluc3BlY3Rvck9iamVjdD4gcmVwb3J0T2JqZWN0ID0gSW5zcGVjdG9y
T2JqZWN0OjpjcmVhdGUoKTsKKyAgICAgICAgcmVwb3J0T2JqZWN0LT5zZXRPYmplY3QoInhzcy1y
ZXBvcnQiLCByZXBvcnREZXRhaWxzLnJlbGVhc2UoKSk7CisKKyAgICAgICAgUmVmUHRyPEZvcm1E
YXRhPiByZXBvcnQgPSBGb3JtRGF0YTo6Y3JlYXRlKHJlcG9ydE9iamVjdC0+dG9KU09OU3RyaW5n
KCkudXRmOCgpLmRhdGEoKSk7CisgICAgICAgIFBpbmdMb2FkZXI6OnNlbmRWaW9sYXRpb25SZXBv
cnQobV9kb2N1bWVudC0+ZnJhbWUoKSwgcmVxdWVzdC5tX3JlcG9ydFVSTCwgcmVwb3J0KTsKKyAg
ICB9CisKKyAgICBpZiAocmVxdWVzdC5tX2RpZEJsb2NrRW50aXJlUGFnZSkKKyAgICAgICAgbV9k
b2N1bWVudC0+ZnJhbWUoKS0+bmF2aWdhdGlvblNjaGVkdWxlcigpLT5zY2hlZHVsZUxvY2F0aW9u
Q2hhbmdlKG1fZG9jdW1lbnQtPnNlY3VyaXR5T3JpZ2luKCksIGJsYW5rVVJMKCksIFN0cmluZygp
KTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaHRtbC9wYXJzZXIvWFNTQXVkaXRvckRlbGVnYXRlLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L3BhcnNlci9YU1NBdWRpdG9yRGVsZWdhdGUuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zNjNhZjIwYjg4Y2Y2OGZk
MmM5ZGVjNTkyM2UyYmU4NTdjZWJiZWMwCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9wYXJzZXIvWFNTQXVkaXRvckRlbGVnYXRlLmgKQEAgLTAsMCArMSw3MiBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAxMyBHb29nbGUsIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
YGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05U
UklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVT
SU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICog
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBYU1NB
dWRpdG9yRGVsZWdhdGVfaAorI2RlZmluZSBYU1NBdWRpdG9yRGVsZWdhdGVfaAorCisjaW5jbHVk
ZSAiS1VSTC5oIgorI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CisjaW5jbHVkZSA8d3RmL3Rl
eHQvV1RGU3RyaW5nLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgRG9jdW1lbnQ7
CisKK2NsYXNzIERpZEJsb2NrU2NyaXB0UmVxdWVzdCB7CitwdWJsaWM6CisgICAgc3RhdGljIFBh
c3NPd25QdHI8RGlkQmxvY2tTY3JpcHRSZXF1ZXN0PiBjcmVhdGUoY29uc3QgS1VSTCYgcmVwb3J0
VVJMLCBjb25zdCBTdHJpbmcmIG9yaWdpbmFsVVJMLCBjb25zdCBTdHJpbmcmIG9yaWdpbmFsSFRU
UEJvZHksIGJvb2wgZGlkQmxvY2tFbnRpcmVQYWdlKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFk
b3B0UHRyKG5ldyBEaWRCbG9ja1NjcmlwdFJlcXVlc3QocmVwb3J0VVJMLCBvcmlnaW5hbFVSTCwg
b3JpZ2luYWxIVFRQQm9keSwgZGlkQmxvY2tFbnRpcmVQYWdlKSk7CisgICAgfQorCisgICAgS1VS
TCBtX3JlcG9ydFVSTDsKKyAgICBTdHJpbmcgbV9vcmlnaW5hbFVSTDsKKyAgICBTdHJpbmcgbV9v
cmlnaW5hbEhUVFBCb2R5OworICAgIGJvb2wgbV9kaWRCbG9ja0VudGlyZVBhZ2U7CisKK3ByaXZh
dGU6CisgICAgRGlkQmxvY2tTY3JpcHRSZXF1ZXN0KGNvbnN0IEtVUkwmIHJlcG9ydFVSTCwgY29u
c3QgU3RyaW5nJiBvcmlnaW5hbFVSTCwgY29uc3QgU3RyaW5nJiBvcmlnaW5hbEhUVFBCb2R5LCBi
b29sIGRpZEJsb2NrRW50aXJlUGFnZSkKKyAgICAgICAgOiBtX3JlcG9ydFVSTChyZXBvcnRVUkwp
CisgICAgICAgICwgbV9vcmlnaW5hbFVSTChvcmlnaW5hbFVSTCkKKyAgICAgICAgLCBtX29yaWdp
bmFsSFRUUEJvZHkob3JpZ2luYWxIVFRQQm9keSkKKyAgICAgICAgLCBtX2RpZEJsb2NrRW50aXJl
UGFnZShkaWRCbG9ja0VudGlyZVBhZ2UpCisgICAgeyB9Cit9OworCitjbGFzcyBYU1NBdWRpdG9y
RGVsZWdhdGUgeworICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKFhTU0F1ZGl0b3JEZWxlZ2F0ZSk7
CitwdWJsaWM6CisgICAgZXhwbGljaXQgWFNTQXVkaXRvckRlbGVnYXRlKERvY3VtZW50Kik7CisK
KyAgICB2b2lkIGRpZEJsb2NrU2NyaXB0KGNvbnN0IERpZEJsb2NrU2NyaXB0UmVxdWVzdCYpOwor
Citwcml2YXRlOgorICAgIERvY3VtZW50KiBtX2RvY3VtZW50OworICAgIGJvb2wgbV9ub3RpZnlD
bGllbnQ7Cit9OworCit9CisKKyNlbmRpZgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>185860</attachid>
            <date>2013-01-31 14:12:23 -0800</date>
            <delta_ts>2013-01-31 15:20:08 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-108394-20130131140906.patch</filename>
            <type>text/plain</type>
            <size>28889</size>
            <attacher name="Tony Gentilcore">tonyg</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQxNDgzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzVhOTY5ZmM0MzI2YmNh
Nzk3ZjQ5NzA2YTUwNzZjYjE2YmY0NDJkNS4uOGRjOWI1NmM2NzQyNzRmMzI2YzViMTgwYzA0MDQy
MzRhYTk1M2U3MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDgzIEBACisyMDEzLTAxLTMxICBUb255
IEdlbnRpbGNvcmUgIDx0b255Z0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgQmVnaW4gdG8gbWFr
ZSBYU1NBdWRpdG9yIHRocmVhZCBhd2FyZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTA4Mzk0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQWRhbSBCYXJ0
aC4KKworICAgICAgICBUaGlzIHBhdGNoIG1vdmVzIHRoZSBwYXJ0cyBvZiBmaWx0ZXJUb2tlbigp
IHRoYXQgZGVwZW5kIG9uIEZyYW1lLCBEb2N1bWVudCwgZXRjLiB0byBhIGRlbGVnYXRlIGNsYXNz
LgorICAgICAgICBUaGUgbmV3IGRpZEJsb2NrU2NyaXB0IGRlbGVnYXRlIG1ldGhvZCBpcyBpbnZv
a2VkIHdpdGggdGhlIHJlc3VsdGluZyBEaWRCbG9ja1NjcmlwdFJlcXVlc3Qgd2hpY2ggd2lsbAor
ICAgICAgICBiZSBvd25lZCBieSB0aGUgQ29tcGFjdEhUTUxUb2tlbiBpbiB0aGUgdGhyZWFkZWQg
Y2FzZS4KKworICAgICAgICBUaGlzIGlzIGp1c3QgdGhlIGZpcnN0IHN0ZXAgYXMgdGhlcmUgaXMg
bW9yZSB0byBkbyB0byBtYWtlIFhTU0F1ZGl0b3IgdGhyZWFkIHNhZmUuCisKKyAgICAgICAgTm8g
bmV3IHRlc3RzIGJlY2F1c2UgY292ZXJlZCBieSBleGlzdGluZyB0ZXN0cy4KKworICAgICAgICAq
IENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIEdOVW1ha2VmaWxlLmxpc3QuYW06CisgICAgICAg
ICogVGFyZ2V0LnByaToKKyAgICAgICAgKiBXZWJDb3JlLmd5cGk6CisgICAgICAgICogV2ViQ29y
ZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2o6CisgICAgICAgICogV2ViQ29yZS52Y3hwcm9qL1dlYkNv
cmUudmN4cHJvajoKKyAgICAgICAgKiBXZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qLmZp
bHRlcnM6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAg
ICAgICAqIGh0bWwvcGFyc2VyL0JhY2tncm91bmRIVE1MUGFyc2VyLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkJhY2tncm91bmRIVE1MUGFyc2VyOjpwdW1wVG9rZW5pemVyKToKKyAgICAgICAgKiBo
dG1sL3BhcnNlci9IVE1MRG9jdW1lbnRQYXJzZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRN
TERvY3VtZW50UGFyc2VyOjpIVE1MRG9jdW1lbnRQYXJzZXIpOgorICAgICAgICAoV2ViQ29yZTo6
SFRNTERvY3VtZW50UGFyc2VyOjpwcm9jZXNzVG9rZW5zRnJvbUJhY2tncm91bmRQYXJzZXIpOgor
ICAgICAgICAoV2ViQ29yZTo6SFRNTERvY3VtZW50UGFyc2VyOjpwdW1wVG9rZW5pemVyKToKKyAg
ICAgICAgKiBodG1sL3BhcnNlci9IVE1MRG9jdW1lbnRQYXJzZXIuaDoKKyAgICAgICAgKEhUTUxE
b2N1bWVudFBhcnNlcik6CisgICAgICAgICogaHRtbC9wYXJzZXIvWFNTQXVkaXRvci5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpYU1NBdWRpdG9yOjpmaWx0ZXJUb2tlbik6CisgICAgICAgICogaHRt
bC9wYXJzZXIvWFNTQXVkaXRvci5oOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChYU1NB
dWRpdG9yKToKKyAgICAgICAgKiBodG1sL3BhcnNlci9YU1NBdWRpdG9yRGVsZWdhdGUuY3BwOiBB
ZGRlZC4KKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6WFNTQXVkaXRvckRl
bGVnYXRlOjpYU1NBdWRpdG9yRGVsZWdhdGUpOgorICAgICAgICAoV2ViQ29yZTo6WFNTQXVkaXRv
ckRlbGVnYXRlOjpkaWRCbG9ja1NjcmlwdCk6CisgICAgICAgICogaHRtbC9wYXJzZXIvWFNTQXVk
aXRvckRlbGVnYXRlLmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChEaWRC
bG9ja1NjcmlwdFJlcXVlc3QpOgorICAgICAgICAoV2ViQ29yZTo6RGlkQmxvY2tTY3JpcHRSZXF1
ZXN0OjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6RGlkQmxvY2tTY3JpcHRSZXF1ZXN0OjpE
aWRCbG9ja1NjcmlwdFJlcXVlc3QpOgorICAgICAgICAoWFNTQXVkaXRvckRlbGVnYXRlKToKKwor
ICAgICAgICAqIENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIEdOVW1ha2VmaWxlLmxpc3QuYW06
CisgICAgICAgICogVGFyZ2V0LnByaToKKyAgICAgICAgKiBXZWJDb3JlLmd5cGk6CisgICAgICAg
ICogV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2o6CisgICAgICAgICogV2ViQ29yZS52Y3hw
cm9qL1dlYkNvcmUudmN4cHJvajoKKyAgICAgICAgKiBXZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52
Y3hwcm9qLmZpbHRlcnM6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qOgorICAgICAgICAqIGh0bWwvcGFyc2VyL0JhY2tncm91bmRIVE1MUGFyc2VyLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkJhY2tncm91bmRIVE1MUGFyc2VyOjpwdW1wVG9rZW5pemVyKToKKyAg
ICAgICAgKiBodG1sL3BhcnNlci9IVE1MRG9jdW1lbnRQYXJzZXIuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6SFRNTERvY3VtZW50UGFyc2VyOjpIVE1MRG9jdW1lbnRQYXJzZXIpOgorICAgICAgICAo
V2ViQ29yZTo6SFRNTERvY3VtZW50UGFyc2VyOjpwcm9jZXNzUGFyc2VkQ2h1bmtGcm9tQmFja2dy
b3VuZFBhcnNlcik6CisgICAgICAgIChXZWJDb3JlOjpIVE1MRG9jdW1lbnRQYXJzZXI6OnB1bXBU
b2tlbml6ZXIpOgorICAgICAgICAqIGh0bWwvcGFyc2VyL0hUTUxEb2N1bWVudFBhcnNlci5oOgor
ICAgICAgICAoSFRNTERvY3VtZW50UGFyc2VyKToKKyAgICAgICAgKiBodG1sL3BhcnNlci9YU1NB
dWRpdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlhTU0F1ZGl0b3I6OlhTU0F1ZGl0b3IpOgor
ICAgICAgICAoV2ViQ29yZTo6WFNTQXVkaXRvcjo6ZmlsdGVyVG9rZW4pOgorICAgICAgICAqIGh0
bWwvcGFyc2VyL1hTU0F1ZGl0b3IuaDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoWFNT
QXVkaXRvcik6CisgICAgICAgICogaHRtbC9wYXJzZXIvWFNTQXVkaXRvckRlbGVnYXRlLmNwcDog
QWRkZWQuCisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OlhTU0F1ZGl0b3JE
ZWxlZ2F0ZTo6WFNTQXVkaXRvckRlbGVnYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlhTU0F1ZGl0
b3JEZWxlZ2F0ZTo6ZGlkQmxvY2tTY3JpcHQpOgorICAgICAgICAqIGh0bWwvcGFyc2VyL1hTU0F1
ZGl0b3JEZWxlZ2F0ZS5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoRGlk
QmxvY2tTY3JpcHRSZXF1ZXN0KToKKyAgICAgICAgKFdlYkNvcmU6OkRpZEJsb2NrU2NyaXB0UmVx
dWVzdDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkRpZEJsb2NrU2NyaXB0UmVxdWVzdDo6
RGlkQmxvY2tTY3JpcHRSZXF1ZXN0KToKKyAgICAgICAgKFhTU0F1ZGl0b3JEZWxlZ2F0ZSk6CisK
IDIwMTMtMDEtMzEgIEphY2t5IEppYW5nICA8emhhamlhbmdAcmltLmNvbT4KIAogICAgICAgICBb
QmxhY2tCZXJyeV0gQmluZyBJbWFnZXMgdmlld3BvcnQgY2F1c2VzIGxheW91dCAiZnVuIgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9D
TWFrZUxpc3RzLnR4dAppbmRleCA4MDM2NDRiN2FlOWIxNDY5ZjRmMDg1YTlhMzdhN2YyMTE4NmYz
OWU2Li5hZjI0OTQ1YTdhZmI2MDAwOTE0NjdjODFjYTkwNGU0ZmZlNzkyNzE5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9DTWFr
ZUxpc3RzLnR4dApAQCAtMTU1Niw2ICsxNTU2LDcgQEAgc2V0KFdlYkNvcmVfU09VUkNFUwogICAg
IGh0bWwvcGFyc2VyL1RleHREb2N1bWVudFBhcnNlci5jcHAKICAgICBodG1sL3BhcnNlci9UZXh0
Vmlld1NvdXJjZVBhcnNlci5jcHAKICAgICBodG1sL3BhcnNlci9YU1NBdWRpdG9yLmNwcAorICAg
IGh0bWwvcGFyc2VyL1hTU0F1ZGl0b3JEZWxlZ2F0ZS5jcHAKIAogICAgIGh0bWwvc2hhZG93L0Nv
bnRlbnREaXN0cmlidXRvci5jcHAKICAgICBodG1sL3NoYWRvdy9Db250ZW50U2VsZWN0b3JRdWVy
eS5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0gYi9T
b3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCmluZGV4IGVlOWVmYTkyMDYzYzg1ZGYw
MjNlNGI5N2YyYzc0ZDc4ZmU3NWZmNjYuLjI3ZmU3OTgzMWFlYjEzOWJmMWI1ODEwYWZjYWY5ODc5
ODYwNzhkNTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0K
KysrIGIvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQpAQCAtMzU5OCw2ICszNTk4
LDggQEAgd2ViY29yZV9zb3VyY2VzICs9IFwKIAlTb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9U
ZXh0Vmlld1NvdXJjZVBhcnNlci5oIFwKIAlTb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9YU1NB
dWRpdG9yLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvWFNTQXVkaXRvci5oIFwK
KwlTb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9YU1NBdWRpdG9yRGVsZWdhdGUuY3BwIFwKKwlT
b3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9YU1NBdWRpdG9yRGVsZWdhdGUuaCBcCiAJU291cmNl
L1dlYkNvcmUvaHRtbC9zaGFkb3cvUGlja2VySW5kaWNhdG9yRWxlbWVudC5jcHAgXAogCVNvdXJj
ZS9XZWJDb3JlL2h0bWwvc2hhZG93L1BpY2tlckluZGljYXRvckVsZW1lbnQuaCBcCiAJU291cmNl
L1dlYkNvcmUvaHRtbC9zaGFkb3cvQ29udGVudERpc3RyaWJ1dG9yLmNwcCBcCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpIGIvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQpp
bmRleCBjM2I4ZmMwMjBjMTI2YTY0ZDYxOWE3ZDcwYmViYmM5N2JkYmRmMjFkLi5jNGJjNzJlYjYy
MWM2Y2I5MjI0ZTgxOWI4NzcyZTY1MmUzZjhkMTBmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9UYXJnZXQucHJpCisrKyBiL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkKQEAgLTczNSw2ICs3
MzUsNyBAQCBTT1VSQ0VTICs9IFwKICAgICBodG1sL3BhcnNlci9UZXh0RG9jdW1lbnRQYXJzZXIu
Y3BwIFwKICAgICBodG1sL3BhcnNlci9UZXh0Vmlld1NvdXJjZVBhcnNlci5jcHAgXAogICAgIGh0
bWwvcGFyc2VyL1hTU0F1ZGl0b3IuY3BwIFwKKyAgICBodG1sL3BhcnNlci9YU1NBdWRpdG9yRGVs
ZWdhdGUuY3BwIFwKICAgICBodG1sL3NoYWRvdy9Db250ZW50RGlzdHJpYnV0b3IuY3BwIFwKICAg
ICBodG1sL3NoYWRvdy9Db250ZW50U2VsZWN0b3JRdWVyeS5jcHAgXAogICAgIGh0bWwvc2hhZG93
L0RhdGVUaW1lRWRpdEVsZW1lbnQuY3BwIFwKQEAgLTE5MTEsNiArMTkxMiw3IEBAIEhFQURFUlMg
Kz0gXAogICAgIGh0bWwvcGFyc2VyL0hUTUxUcmVlQnVpbGRlci5oIFwKICAgICBodG1sL3BhcnNl
ci9IVE1MVmlld1NvdXJjZVBhcnNlci5oIFwKICAgICBodG1sL3BhcnNlci9YU1NBdWRpdG9yLmgg
XAorICAgIGh0bWwvcGFyc2VyL1hTU0F1ZGl0b3JEZWxlZ2F0ZS5oIFwKICAgICBodG1sL3NoYWRv
dy9Db250ZW50RGlzdHJpYnV0b3IuaCBcCiAgICAgaHRtbC9zaGFkb3cvQ29udGVudFNlbGVjdG9y
UXVlcnkuaCBcCiAgICAgaHRtbC9zaGFkb3cvSFRNTENvbnRlbnRFbGVtZW50LmggXApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpIGIvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS5neXBpCmluZGV4IGFjMDM0NTJhNDMwODIzZTkwYmY1ZmE5NDUwNDc5Y2IyMmMwYzU0OTEuLjMy
MzNjOTllZjM4MTViZGVmZDc4YjI3NjcyODk1MjgwNDBiYjdjMzYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkK
QEAgLTM0MDAsNiArMzQwMCw4IEBACiAgICAgICAgICAgICAnaHRtbC9wYXJzZXIvVGV4dFZpZXdT
b3VyY2VQYXJzZXIuaCcsCiAgICAgICAgICAgICAnaHRtbC9wYXJzZXIvWFNTQXVkaXRvci5jcHAn
LAogICAgICAgICAgICAgJ2h0bWwvcGFyc2VyL1hTU0F1ZGl0b3IuaCcsCisgICAgICAgICAgICAn
aHRtbC9wYXJzZXIvWFNTQXVkaXRvckRlbGVnYXRlLmNwcCcsCisgICAgICAgICAgICAnaHRtbC9w
YXJzZXIvWFNTQXVkaXRvckRlbGVnYXRlLmgnLAogICAgICAgICAgICAgJ2h0bWwvc2hhZG93L1Bp
Y2tlckluZGljYXRvckVsZW1lbnQuY3BwJywKICAgICAgICAgICAgICdodG1sL3NoYWRvdy9QaWNr
ZXJJbmRpY2F0b3JFbGVtZW50LmgnLAogICAgICAgICAgICAgJ2h0bWwvc2hhZG93L0NvbnRlbnRE
aXN0cmlidXRvci5jcHAnLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3By
b2ovV2ViQ29yZS52Y3Byb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3Jl
LnZjcHJvagppbmRleCAxMTc5Yzk1NGM3YTRhMzFhYWM3YmJiMjgwODgyYmE3Y2YzYmU1YTJhLi42
YjY4ZjY4YmNhZjkwYmQxMTMzZGViZjAwY2M0ZmM3ZTNmMWUxNWYwIDEwMDc1NQotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagpAQCAtNjQ5NzIsNiArNjQ5NzIsMTQg
QEAKIAkJCQkJUmVsYXRpdmVQYXRoPSIuLlxodG1sXHBhcnNlclxYU1NBdWRpdG9yLmgiCiAJCQkJ
CT4KIAkJCQk8L0ZpbGU+CisJCQkJPEZpbGUKKwkJCQkJUmVsYXRpdmVQYXRoPSIuLlxodG1sXHBh
cnNlclxYU1NBdWRpdG9yRGVsZWdhdGUuY3BwIgorCQkJCQk+CisJCQkJPC9GaWxlPgorCQkJCTxG
aWxlCisJCQkJCVJlbGF0aXZlUGF0aD0iLi5caHRtbFxwYXJzZXJcWFNTQXVkaXRvckRlbGVnYXRl
LmgiCisJCQkJCT4KKwkJCQk8L0ZpbGU+CiAJCQk8L0ZpbHRlcj4KIAkJCTxGaWx0ZXIKIAkJCQlO
YW1lPSJzaGFkb3ciCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ov
V2ViQ29yZS52Y3hwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUu
dmN4cHJvagppbmRleCBlNGYyNjJiYjcwZjg0N2YzODY4NzU2Y2MxZGQwYmI5M2UyY2E2MzIzLi5i
MmY2YTIxZGQ3YTdlYTM0ZmE3MGY0MjUyNzRiMDU1ZmE3ZDljOWU3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2oKQEAgLTQ4ODksNiArNDg4OSw3
IEBACiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxodG1sXHBhcnNlclxUZXh0RG9jdW1lbnRQ
YXJzZXIuY3BwIiAvPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5caHRtbFxwYXJzZXJcVGV4
dFZpZXdTb3VyY2VQYXJzZXIuY3BwIiAvPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5caHRt
bFxwYXJzZXJcWFNTQXVkaXRvci5jcHAiIC8+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxo
dG1sXHBhcnNlclxYU1NBdWRpdG9yRGVsZWdhdGUuY3BwIiAvPgogICAgIDxDbENvbXBpbGUgSW5j
bHVkZT0iLi5caHRtbFxzaGFkb3dcQ29udGVudERpc3RyaWJ1dG9yLmNwcCIgLz4KICAgICA8Q2xD
b21waWxlIEluY2x1ZGU9Ii4uXGh0bWxcc2hhZG93XENvbnRlbnRTZWxlY3RvclF1ZXJ5LmNwcCIg
Lz4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGh0bWxcc2hhZG93XERhdGVUaW1lRWRpdEVs
ZW1lbnQuY3BwIiAvPgpAQCAtNzkzMCw2ICs3OTMxLDcgQEAKICAgICA8Q2xJbmNsdWRlIEluY2x1
ZGU9Ii4uXGh0bWxccGFyc2VyXFRleHREb2N1bWVudFBhcnNlci5oIiAvPgogICAgIDxDbEluY2x1
ZGUgSW5jbHVkZT0iLi5caHRtbFxwYXJzZXJcVGV4dFZpZXdTb3VyY2VQYXJzZXIuaCIgLz4KICAg
ICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGh0bWxccGFyc2VyXFhTU0F1ZGl0b3IuaCIgLz4KKyAg
ICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGh0bWxccGFyc2VyXFhTU0F1ZGl0b3JEZWxlZ2F0ZS5o
IiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5caHRtbFxzaGFkb3dcQ29udGVudERpc3Ry
aWJ1dG9yLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxodG1sXHNoYWRvd1xDb250
ZW50U2VsZWN0b3JRdWVyeS5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5caHRtbFxz
aGFkb3dcRGF0ZVRpbWVFZGl0RWxlbWVudC5oIiAvPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvai5maWx0ZXJzIGIvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvai5maWx0ZXJzCmluZGV4IDkzY2YzZmM2
ZGM4ZTYyYmU0ZWNhN2FiZGM2NDVkNDAyN2U4OWM2NjcuLjk2NzBjZmIyZWJkNzRlMmRkNDk2MzNj
YTk5MDIyYWQyMGY3YTVjMmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4
cHJvai9XZWJDb3JlLnZjeHByb2ouZmlsdGVycworKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
LnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qLmZpbHRlcnMKQEAgLTU2OTcsNiArNTY5Nyw5IEBACiAg
ICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxodG1sXHBhcnNlclxYU1NBdWRpdG9yLmNwcCI+CiAg
ICAgICA8RmlsdGVyPmh0bWxccGFyc2VyPC9GaWx0ZXI+CiAgICAgPC9DbENvbXBpbGU+CisgICAg
PENsQ29tcGlsZSBJbmNsdWRlPSIuLlxodG1sXHBhcnNlclxYU1NBdWRpdG9yRGVsZWdhdGUuY3Bw
Ij4KKyAgICAgIDxGaWx0ZXI+aHRtbFxwYXJzZXI8L0ZpbHRlcj4KKyAgICA8L0NsQ29tcGlsZT4K
ICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGh0bWxcc2hhZG93XENvbnRlbnREaXN0cmlidXRv
ci5jcHAiPgogICAgICAgPEZpbHRlcj5odG1sXHNoYWRvdzwvRmlsdGVyPgogICAgIDwvQ2xDb21w
aWxlPgpAQCAtMTI1ODQsNiArMTI1ODcsOSBAQAogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5c
aHRtbFxwYXJzZXJcWFNTQXVkaXRvci5oIj4KICAgICAgIDxGaWx0ZXI+aHRtbFxwYXJzZXI8L0Zp
bHRlcj4KICAgICA8L0NsSW5jbHVkZT4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGh0bWxc
cGFyc2VyXFhTU0F1ZGl0b3JEZWxlZ2F0ZS5oIj4KKyAgICAgIDxGaWx0ZXI+aHRtbFxwYXJzZXI8
L0ZpbHRlcj4KKyAgICA8L0NsSW5jbHVkZT4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGh0
bWxcc2hhZG93XENvbnRlbnREaXN0cmlidXRvci5oIj4KICAgICAgIDxGaWx0ZXI+aHRtbFxzaGFk
b3c8L0ZpbHRlcj4KICAgICA8L0NsSW5jbHVkZT4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCAyNTM2MjQ0ZDI5MDExMjU3YWQ5Nzll
MjQxNjUzMzlhMGE4MTVlOTJiLi4zMjQwZTNjZDUzYzkwYzA0NzRmMDM4MDk0ODY5ZDcyNTVjM2Q5
Y2JhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCkBAIC0zNjQzLDYgKzM2NDMsOCBAQAogCQk5NzdFMkRDRTEyRjBFMjgzMDBDMTMzNzkg
LyogSFRNTFNvdXJjZVRyYWNrZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDk3N0UyRENDMTJGMEUyODMwMEMxMzM3OSAvKiBIVE1MU291cmNlVHJhY2tl
ci5oICovOyB9OwogCQk5NzdFMkUwRTEyRjBGQzlDMDBDMTMzNzkgLyogWFNTQXVkaXRvci5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5NzdFMkUwQjEy
RjBGQzlDMDBDMTMzNzkgLyogWFNTQXVkaXRvci5jcHAgKi87IH07CiAJCTk3N0UyRTBGMTJGMEZD
OUMwMEMxMzM3OSAvKiBYU1NBdWRpdG9yLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA5NzdFMkUwQzEyRjBGQzlDMDBDMTMzNzkgLyogWFNTQXVkaXRvci5o
ICovOyB9OworCQk5NzdFMkUwRTEyRjBGQzlDMDBDMTMzODAgLyogWFNTQXVkaXRvckRlbGVnYXRl
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk3N0Uy
RTBCMTJGMEZDOUMwMEMxMzM4MCAvKiBYU1NBdWRpdG9yRGVsZWdhdGUuY3BwICovOyB9OworCQk5
NzdFMkUwRjEyRjBGQzlDMDBDMTMzODAgLyogWFNTQXVkaXRvckRlbGVnYXRlLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5NzdFMkUwQzEyRjBGQzlDMDBD
MTMzODAgLyogWFNTQXVkaXRvckRlbGVnYXRlLmggKi87IH07CiAJCTk3OEFENjc0MTQxMzBBOEQw
MEM3Q0FFMyAvKiBIVE1MU3BhbkVsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gOTc4QUQ2NzExNDEzMEE4RDAwQzdDQUUzIC8qIEhUTUxTcGFu
RWxlbWVudC5jcHAgKi87IH07CiAJCTk3OEFENjc1MTQxMzBBOEQwMEM3Q0FFMyAvKiBIVE1MU3Bh
bkVsZW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDk3OEFENjcyMTQxMzBBOEQwMEM3Q0FFMyAvKiBIVE1MU3BhbkVsZW1lbnQuaCAqLzsgfTsKIAkJ
OTc4RDA3QjYxNDVBMEYwMzAwOTY5MDhEIC8qIEZpbGVFeGNlcHRpb24uY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTc4RDA3QjUxNDVBMEYwMzAwOTY5
MDhEIC8qIEZpbGVFeGNlcHRpb24uY3BwICovOyB9OwpAQCAtMTEwNDMsNiArMTEwNDUsOCBAQAog
CQk5NzdFMkRDQzEyRjBFMjgzMDBDMTMzNzkgLyogSFRNTFNvdXJjZVRyYWNrZXIuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gSFRNTFNvdXJjZVRyYWNrZXIuaDsgcGF0aCA9IHBh
cnNlci9IVE1MU291cmNlVHJhY2tlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5
NzdFMkUwQjEyRjBGQzlDMDBDMTMzNzkgLyogWFNTQXVkaXRvci5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBYU1NBdWRpdG9yLmNwcDsgcGF0aCA9IHBhcnNlci9YU1NB
dWRpdG9yLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTc3RTJFMEMxMkYwRkM5
QzAwQzEzMzc5IC8qIFhTU0F1ZGl0b3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1l
ID0gWFNTQXVkaXRvci5oOyBwYXRoID0gcGFyc2VyL1hTU0F1ZGl0b3IuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJOTc3RTJFMEIxMkYwRkM5QzAwQzEzMzgwIC8qIFhTU0F1ZGl0b3JE
ZWxlZ2F0ZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBYU1NBdWRp
dG9yRGVsZWdhdGUuY3BwOyBwYXRoID0gcGFyc2VyL1hTU0F1ZGl0b3JEZWxlZ2F0ZS5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTk3N0UyRTBDMTJGMEZDOUMwMEMxMzM4MCAvKiBY
U1NBdWRpdG9yRGVsZWdhdGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gWFNT
QXVkaXRvckRlbGVnYXRlLmg7IHBhdGggPSBwYXJzZXIvWFNTQXVkaXRvckRlbGVnYXRlLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTk3OEFENjcxMTQxMzBBOEQwMEM3Q0FFMyAvKiBI
VE1MU3BhbkVsZW1lbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
SFRNTFNwYW5FbGVtZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTc4QUQ2
NzIxNDEzMEE4RDAwQzdDQUUzIC8qIEhUTUxTcGFuRWxlbWVudC5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBIVE1MU3BhbkVsZW1lbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJOTc4QUQ2NzMxNDEzMEE4RDAwQzdDQUUzIC8qIEhUTUxTcGFuRWxlbWVudC5pZGwg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gSFRNTFNwYW5FbGVtZW50LmlkbDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKQEAgLTE4NjM2LDYgKzE4NjQwLDggQEAKIAkJCQk5N0JDODRBMzEyMzcw
REM4MDAwQzYxNjEgLyogVGV4dFZpZXdTb3VyY2VQYXJzZXIuaCAqLywKIAkJCQk5NzdFMkUwQjEy
RjBGQzlDMDBDMTMzNzkgLyogWFNTQXVkaXRvci5jcHAgKi8sCiAJCQkJOTc3RTJFMEMxMkYwRkM5
QzAwQzEzMzc5IC8qIFhTU0F1ZGl0b3IuaCAqLywKKwkJCQk5NzdFMkUwQjEyRjBGQzlDMDBDMTMz
ODAgLyogWFNTQXVkaXRvckRlbGVnYXRlLmNwcCAqLywKKwkJCQk5NzdFMkUwQzEyRjBGQzlDMDBD
MTMzODAgLyogWFNTQXVkaXRvckRlbGVnYXRlLmggKi8sCiAJCQkpOwogCQkJbmFtZSA9IHBhcnNl
cjsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CkBAIC0yNjMxNSw2ICsyNjMyMSw3IEBACiAJ
CQkJOTNGMTk5RUQwODI0NUU1OTAwMUU5QUJDIC8qIFhTTFRQcm9jZXNzb3IuaCBpbiBIZWFkZXJz
ICovLAogCQkJCUUxQkU1MTJFMENGNkM1MTIwMDJFQTk1OSAvKiBYU0xUVW5pY29kZVNvcnQuaCBp
biBIZWFkZXJzICovLAogCQkJCTk3N0UyRTBGMTJGMEZDOUMwMEMxMzM3OSAvKiBYU1NBdWRpdG9y
LmggaW4gSGVhZGVycyAqLywKKwkJCQk5NzdFMkUwRjEyRjBGQzlDMDBDMTMzODAgLyogWFNTQXVk
aXRvckRlbGVnYXRlLmggaW4gSGVhZGVycyAqLywKIAkJCQlGRDUzNzM1MzEzN0I2NTE4MDAwMDhE
Q0UgLyogWmVyb1BvbGUuaCBpbiBIZWFkZXJzICovLAogCQkJCUZCOTEzOTI0MTZBRTRDMTcwMDFG
RTY4MiAvKiBET01QYXRoLmggaW4gSGVhZGVycyAqLywKIAkJCQlGQjkxMzkyNjE2QUU0QzJGMDAx
RkU2ODIgLyogQ2FudmFzUGF0aE1ldGhvZHMuaCBpbiBIZWFkZXJzICovLApAQCAtMjk0NzEsNiAr
Mjk0NzgsNyBAQAogCQkJCTkzRjE5QjA1MDgyNDVFNTkwMDFFOUFCQyAvKiBYU0xUUHJvY2Vzc29y
TGlieHNsdC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlFMUJFNTEyRDBDRjZDNTEyMDAyRUE5NTkg
LyogWFNMVFVuaWNvZGVTb3J0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTk3N0UyRTBFMTJGMEZD
OUMwMEMxMzM3OSAvKiBYU1NBdWRpdG9yLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTk3N0UyRTBF
MTJGMEZDOUMwMEMxMzM4MCAvKiBYU1NBdWRpdG9yRGVsZWdhdGUuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJRkQ1MzczNTIxMzdCNjUxODAwMDA4RENFIC8qIFplcm9Qb2xlLmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCUZCOTEzOTI3MTZBRTRDMzQwMDFGRTY4MiAvKiBDYW52YXNQYXRoTWV0aG9kcy5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQlGQjkxMzkyQjE2QUU0RkMwMDAxRkU2ODIgLyogSlNET01Q
YXRoLmNwcCBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9w
YXJzZXIvQmFja2dyb3VuZEhUTUxQYXJzZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJz
ZXIvQmFja2dyb3VuZEhUTUxQYXJzZXIuY3BwCmluZGV4IGMwOGM0MjAxYjFlN2JmOTZhZWFmYTc2
ODYzYTRlYjAyYWM2MjVjYmYuLmVjNDYxNTJhMWM3ODYyYmZiOWYxZmRhODI3ZmZhOTFmZDU2MzQ4
YzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0JhY2tncm91bmRIVE1M
UGFyc2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9CYWNrZ3JvdW5kSFRN
TFBhcnNlci5jcHAKQEAgLTE2NCw2ICsxNjQsNyBAQCBib29sIEJhY2tncm91bmRIVE1MUGFyc2Vy
OjpzaW11bGF0ZVRyZWVCdWlsZGVyKGNvbnN0IENvbXBhY3RIVE1MVG9rZW4mIHRva2VuKQogdm9p
ZCBCYWNrZ3JvdW5kSFRNTFBhcnNlcjo6cHVtcFRva2VuaXplcigpCiB7CiAgICAgd2hpbGUgKG1f
dG9rZW5pemVyLT5uZXh0VG9rZW4obV9pbnB1dC5jdXJyZW50KCksICptX3Rva2VuLmdldCgpKSkg
eworICAgICAgICAvLyBGSVhNRTogQ2FsbCBtX3hzc0F1ZGl0b3IuZmlsdGVyVG9rZW4obV90b2tl
bikgYW5kIHB1dCByZXN1bHRpbmcgRGlkQmxvY2tTY3JpcHRSZXF1ZXN0IGludG8gQ29tcGFjdEhU
TUxUb2tlbi4KICAgICAgICAgbV9wZW5kaW5nVG9rZW5zLT5hcHBlbmQoQ29tcGFjdEhUTUxUb2tl
bihtX3Rva2VuLmdldCgpLCBUZXh0UG9zaXRpb24obV9pbnB1dC5jdXJyZW50KCkuY3VycmVudExp
bmUoKSwgbV9pbnB1dC5jdXJyZW50KCkuY3VycmVudENvbHVtbigpKSkpOwogICAgICAgICBtX3Rv
a2VuLT5jbGVhcigpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9I
VE1MRG9jdW1lbnRQYXJzZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTERv
Y3VtZW50UGFyc2VyLmNwcAppbmRleCAwYzVmYjFhMDg2ODdmMDQ5OWY3NjhjNDU5NDRjMTAzNmQ5
ZmVkNTkwLi5mZTkyZTAzMzlmYTdhMGZhZDM0YWJjYzM2MDkwZDZhYzBiMDRjZGY3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MRG9jdW1lbnRQYXJzZXIuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxEb2N1bWVudFBhcnNlci5jcHAKQEAg
LTgzLDYgKzgzLDcgQEAgSFRNTERvY3VtZW50UGFyc2VyOjpIVE1MRG9jdW1lbnRQYXJzZXIoSFRN
TERvY3VtZW50KiBkb2N1bWVudCwgYm9vbCByZXBvcnRFcnJvcnMKICAgICAsIG1fdHJlZUJ1aWxk
ZXIoSFRNTFRyZWVCdWlsZGVyOjpjcmVhdGUodGhpcywgZG9jdW1lbnQsIHJlcG9ydEVycm9ycywg
bV9vcHRpb25zKSkKICAgICAsIG1fcGFyc2VyU2NoZWR1bGVyKEhUTUxQYXJzZXJTY2hlZHVsZXI6
OmNyZWF0ZSh0aGlzKSkKICAgICAsIG1feHNzQXVkaXRvcih0aGlzKQorICAgICwgbV94c3NBdWRp
dG9yRGVsZWdhdGUoZG9jdW1lbnQpCiAjaWYgRU5BQkxFKFRIUkVBREVEX0hUTUxfUEFSU0VSKQog
ICAgICwgbV93ZWFrRmFjdG9yeSh0aGlzKQogI2VuZGlmCkBAIC0xMDIsNiArMTAzLDcgQEAgSFRN
TERvY3VtZW50UGFyc2VyOjpIVE1MRG9jdW1lbnRQYXJzZXIoRG9jdW1lbnRGcmFnbWVudCogZnJh
Z21lbnQsIEVsZW1lbnQqIGNvbnQKICAgICAsIG1fdG9rZW5pemVyKEhUTUxUb2tlbml6ZXI6OmNy
ZWF0ZShtX29wdGlvbnMpKQogICAgICwgbV90cmVlQnVpbGRlcihIVE1MVHJlZUJ1aWxkZXI6OmNy
ZWF0ZSh0aGlzLCBmcmFnbWVudCwgY29udGV4dEVsZW1lbnQsIHNjcmlwdGluZ1Blcm1pc3Npb24s
IG1fb3B0aW9ucykpCiAgICAgLCBtX3hzc0F1ZGl0b3IodGhpcykKKyAgICAsIG1feHNzQXVkaXRv
ckRlbGVnYXRlKGZyYWdtZW50LT5kb2N1bWVudCgpKQogI2lmIEVOQUJMRShUSFJFQURFRF9IVE1M
X1BBUlNFUikKICAgICAsIG1fd2Vha0ZhY3RvcnkodGhpcykKICNlbmRpZgpAQCAtMzE0LDcgKzMx
Niw3IEBAIHZvaWQgSFRNTERvY3VtZW50UGFyc2VyOjpwcm9jZXNzUGFyc2VkQ2h1bmtGcm9tQmFj
a2dyb3VuZFBhcnNlcihQYXNzT3duUHRyPFBhcnNlCiAgICAgZm9yIChWZWN0b3I8Q29tcGFjdEhU
TUxUb2tlbj46OmNvbnN0X2l0ZXJhdG9yIGl0ID0gdG9rZW5zLT5iZWdpbigpOyBpdCAhPSB0b2tl
bnMtPmVuZCgpOyArK2l0KSB7CiAgICAgICAgIEFTU0VSVCghaXNXYWl0aW5nRm9yU2NyaXB0cygp
KTsKIAotICAgICAgICAvLyBGSVhNRTogQ2FsbCBtX3hzc0F1ZGl0b3IuZmlsdGVyVG9rZW4oKml0
KS4KKyAgICAgICAgLy8gRklYTUU6IENhbGwgbV94c3NBdWRpdG9yRGVsZWdhdGUuZGlkQmxvY2tT
Y3JpcHQoKSB3aXRoIERpZEJsb2NrU2NyaXB0UmVxdWVzdCBmcm9tIHRoZSBDb21wYWN0SFRNTFRv
a2VuLgogICAgICAgICBtX3RleHRQb3NpdGlvbiA9IGl0LT50ZXh0UG9zaXRpb24oKTsKICAgICAg
ICAgY29uc3RydWN0VHJlZUZyb21Db21wYWN0SFRNTFRva2VuKCppdCk7CiAKQEAgLTM3NCw3ICsz
NzYsOSBAQCB2b2lkIEhUTUxEb2N1bWVudFBhcnNlcjo6cHVtcFRva2VuaXplcihTeW5jaHJvbm91
c01vZGUgbW9kZSkKIAogICAgICAgICAgICAgLy8gV2UgZG8gbm90IFhTUyBmaWx0ZXIgaW5uZXJI
VE1MLCB3aGljaCBtZWFucyB3ZSAoaW50ZW50aW9uYWxseSkgZmFpbAogICAgICAgICAgICAgLy8g
aHR0cC90ZXN0cy9zZWN1cml0eS94c3NBdWRpdG9yL2RvbS13cml0ZS1pbm5lckhUTUwuaHRtbAot
ICAgICAgICAgICAgbV94c3NBdWRpdG9yLmZpbHRlclRva2VuKHRva2VuKCkpOworICAgICAgICAg
ICAgT3duUHRyPERpZEJsb2NrU2NyaXB0UmVxdWVzdD4gcmVxdWVzdCA9IG1feHNzQXVkaXRvci5m
aWx0ZXJUb2tlbih0b2tlbigpKTsKKyAgICAgICAgICAgIGlmIChyZXF1ZXN0KQorICAgICAgICAg
ICAgICAgIG1feHNzQXVkaXRvckRlbGVnYXRlLmRpZEJsb2NrU2NyaXB0KHJlcXVlc3QucmVsZWFz
ZSgpKTsKICAgICAgICAgfQogCiAgICAgICAgIGNvbnN0cnVjdFRyZWVGcm9tSFRNTFRva2VuKHRv
a2VuKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTERvY3Vt
ZW50UGFyc2VyLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MRG9jdW1lbnRQYXJz
ZXIuaAppbmRleCA3YjdkMzE2M2VmZTQ4NWU1MGQwNzNjYjliNTA4MTVjOTcxNGViZmQwLi5mNzIw
ZjRjMDFhMzk3MDBiZjUwMTZhNzJiMzYyYWNhMzcyMTMxZTJhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL3BhcnNlci9IVE1MRG9jdW1lbnRQYXJzZXIuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL3BhcnNlci9IVE1MRG9jdW1lbnRQYXJzZXIuaApAQCAtMzgsNiArMzgsNyBAQAog
I2luY2x1ZGUgIlNlZ21lbnRlZFN0cmluZy5oIgogI2luY2x1ZGUgIlRpbWVyLmgiCiAjaW5jbHVk
ZSAiWFNTQXVkaXRvci5oIgorI2luY2x1ZGUgIlhTU0F1ZGl0b3JEZWxlZ2F0ZS5oIgogI2luY2x1
ZGUgPHd0Zi9EZXF1ZS5oPgogI2luY2x1ZGUgPHd0Zi9Pd25QdHIuaD4KICNpbmNsdWRlIDx3dGYv
V2Vha1B0ci5oPgpAQCAtMTc1LDYgKzE3Niw3IEBAIHByaXZhdGU6CiAgICAgSFRNTFNvdXJjZVRy
YWNrZXIgbV9zb3VyY2VUcmFja2VyOwogICAgIFRleHRQb3NpdGlvbiBtX3RleHRQb3NpdGlvbjsK
ICAgICBYU1NBdWRpdG9yIG1feHNzQXVkaXRvcjsKKyAgICBYU1NBdWRpdG9yRGVsZWdhdGUgbV94
c3NBdWRpdG9yRGVsZWdhdGU7CiAKICNpZiBFTkFCTEUoVEhSRUFERURfSFRNTF9QQVJTRVIpCiAg
ICAgT3duUHRyPFBhcnNlZENodW5rPiBtX2N1cnJlbnRDaHVuazsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvcGFyc2VyL1hTU0F1ZGl0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9wYXJzZXIvWFNTQXVkaXRvci5jcHAKaW5kZXggYWNmY2MyZmI5ZTg0ZTI1YjVkNWQ0MzkyOWI2
Nzg5YzcwZjQ5ZGYzMC4uZTZjODI0MzE2YTc4NzI1YzFmZDUzZTA5OTUzMDZjZDk2OWNkYTQxNyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvWFNTQXVkaXRvci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvWFNTQXVkaXRvci5jcHAKQEAgLTUwLDYgKzUw
LDggQEAKICNpbmNsdWRlICJUZXh0RW5jb2RpbmcuaCIKICNpbmNsdWRlICJUZXh0UmVzb3VyY2VE
ZWNvZGVyLmgiCiAKKyNpbmNsdWRlIDx3dGYvRnVuY3Rpb25hbC5oPgorI2luY2x1ZGUgPHd0Zi9N
YWluVGhyZWFkLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgogCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CkBAIC0xNzMsNyArMTc1LDYgQEAgWFNTQXVkaXRvcjo6WFNTQXVkaXRvcihIVE1M
RG9jdW1lbnRQYXJzZXIqIHBhcnNlcikKICAgICAsIG1fc3RhdGUoVW5pbml0aWFsaXplZCkKICAg
ICAsIG1fc2hvdWxkQWxsb3dDREFUQShmYWxzZSkKICAgICAsIG1fc2NyaXB0VGFnTmVzdGluZ0xl
dmVsKDApCi0gICAgLCBtX25vdGlmeUNsaWVudCh0cnVlKQogewogICAgIEFTU0VSVChtX3BhcnNl
cik7CiAgICAgaWYgKEZyYW1lKiBmcmFtZSA9IHBhcnNlci0+ZG9jdW1lbnQoKS0+ZnJhbWUoKSkg
ewpAQCAtMjY4LDE0ICsyNjksMTQgQEAgdm9pZCBYU1NBdWRpdG9yOjppbml0KCkKICAgICB9CiB9
CiAKLXZvaWQgWFNTQXVkaXRvcjo6ZmlsdGVyVG9rZW4oSFRNTFRva2VuJiB0b2tlbikKK1Bhc3NP
d25QdHI8RGlkQmxvY2tTY3JpcHRSZXF1ZXN0PiBYU1NBdWRpdG9yOjpmaWx0ZXJUb2tlbihIVE1M
VG9rZW4mIHRva2VuKQogewogICAgIGlmIChtX3N0YXRlID09IFVuaW5pdGlhbGl6ZWQpCiAgICAg
ICAgIGluaXQoKTsKICAgIAogICAgIEFTU0VSVChtX3N0YXRlID09IEluaXRpYWxpemVkKTsKICAg
ICBpZiAoIW1faXNFbmFibGVkIHx8IG1feHNzUHJvdGVjdGlvbiA9PSBYU1NQcm90ZWN0aW9uRGlz
YWJsZWQpCi0gICAgICAgIHJldHVybjsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKICAgICBi
b29sIGRpZEJsb2NrU2NyaXB0ID0gZmFsc2U7CiAgICAgaWYgKHRva2VuLnR5cGUoKSA9PSBIVE1M
VG9rZW5UeXBlczo6U3RhcnRUYWcpCkBAIC0yODgsMzggKzI4OSwxNiBAQCB2b2lkIFhTU0F1ZGl0
b3I6OmZpbHRlclRva2VuKEhUTUxUb2tlbiYgdG9rZW4pCiAgICAgfQogCiAgICAgaWYgKGRpZEJs
b2NrU2NyaXB0KSB7Ci0gICAgICAgIC8vIEZJWE1FOiBDb25zaWRlciB1c2luZyBhIG1vcmUgaGVs
cGZ1bCBjb25zb2xlIG1lc3NhZ2UuCi0gICAgICAgIERFRklORV9TVEFUSUNfTE9DQUwoU3RyaW5n
LCBjb25zb2xlTWVzc2FnZSwgKEFTQ0lJTGl0ZXJhbCgiUmVmdXNlZCB0byBleGVjdXRlIGEgSmF2
YVNjcmlwdCBzY3JpcHQuIFNvdXJjZSBjb2RlIG9mIHNjcmlwdCBmb3VuZCB3aXRoaW4gcmVxdWVz
dC5cbiIpKSk7Ci0gICAgICAgIG1fcGFyc2VyLT5kb2N1bWVudCgpLT5hZGRDb25zb2xlTWVzc2Fn
ZShKU01lc3NhZ2VTb3VyY2UsIEVycm9yTWVzc2FnZUxldmVsLCBjb25zb2xlTWVzc2FnZSk7Ci0K
ICAgICAgICAgYm9vbCBkaWRCbG9ja0VudGlyZVBhZ2UgPSAobV94c3NQcm90ZWN0aW9uID09IFhT
U1Byb3RlY3Rpb25CbG9ja0VuYWJsZWQpOwotICAgICAgICBpZiAoZGlkQmxvY2tFbnRpcmVQYWdl
KQotICAgICAgICAgICAgIG1fcGFyc2VyLT5kb2N1bWVudCgpLT5mcmFtZSgpLT5sb2FkZXIoKS0+
c3RvcEFsbExvYWRlcnMoKTsKLQotICAgICAgICBpZiAobV9ub3RpZnlDbGllbnQpIHsKLSAgICAg
ICAgICAgIG1fcGFyc2VyLT5kb2N1bWVudCgpLT5mcmFtZSgpLT5sb2FkZXIoKS0+Y2xpZW50KCkt
PmRpZERldGVjdFhTUyhtX3BhcnNlci0+ZG9jdW1lbnQoKS0+dXJsKCksIGRpZEJsb2NrRW50aXJl
UGFnZSk7Ci0gICAgICAgICAgICBtX25vdGlmeUNsaWVudCA9IGZhbHNlOwotICAgICAgICB9Ci0K
KyAgICAgICAgT3duUHRyPERpZEJsb2NrU2NyaXB0UmVxdWVzdD4gcmVxdWVzdCA9IERpZEJsb2Nr
U2NyaXB0UmVxdWVzdDo6Y3JlYXRlKG1fcmVwb3J0VVJMLCBtX29yaWdpbmFsVVJMLCBtX29yaWdp
bmFsSFRUUEJvZHksIGRpZEJsb2NrRW50aXJlUGFnZSk7CiAgICAgICAgIGlmICghbV9yZXBvcnRV
UkwuaXNFbXB0eSgpKSB7Ci0gICAgICAgICAgICBSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiByZXBv
cnREZXRhaWxzID0gSW5zcGVjdG9yT2JqZWN0OjpjcmVhdGUoKTsKLSAgICAgICAgICAgIHJlcG9y
dERldGFpbHMtPnNldFN0cmluZygicmVxdWVzdC11cmwiLCBtX29yaWdpbmFsVVJMKTsKLSAgICAg
ICAgICAgIHJlcG9ydERldGFpbHMtPnNldFN0cmluZygicmVxdWVzdC1ib2R5IiwgbV9vcmlnaW5h
bEhUVFBCb2R5KTsKLQotICAgICAgICAgICAgUmVmUHRyPEluc3BlY3Rvck9iamVjdD4gcmVwb3J0
T2JqZWN0ID0gSW5zcGVjdG9yT2JqZWN0OjpjcmVhdGUoKTsKLSAgICAgICAgICAgIHJlcG9ydE9i
amVjdC0+c2V0T2JqZWN0KCJ4c3MtcmVwb3J0IiwgcmVwb3J0RGV0YWlscy5yZWxlYXNlKCkpOwot
Ci0gICAgICAgICAgICBSZWZQdHI8Rm9ybURhdGE+IHJlcG9ydCA9IEZvcm1EYXRhOjpjcmVhdGUo
cmVwb3J0T2JqZWN0LT50b0pTT05TdHJpbmcoKS51dGY4KCkuZGF0YSgpKTsKLSAgICAgICAgICAg
IFBpbmdMb2FkZXI6OnNlbmRWaW9sYXRpb25SZXBvcnQobV9wYXJzZXItPmRvY3VtZW50KCktPmZy
YW1lKCksIG1fcmVwb3J0VVJMLCByZXBvcnQpOwotCiAgICAgICAgICAgICBtX3JlcG9ydFVSTCA9
IEtVUkwoKTsKICAgICAgICAgICAgIG1fb3JpZ2luYWxVUkwgPSBTdHJpbmcoKTsKICAgICAgICAg
ICAgIG1fb3JpZ2luYWxIVFRQQm9keSA9IFN0cmluZygpOwogICAgICAgICB9Ci0KLSAgICAgICAg
aWYgKGRpZEJsb2NrRW50aXJlUGFnZSkKLSAgICAgICAgICAgIG1fcGFyc2VyLT5kb2N1bWVudCgp
LT5mcmFtZSgpLT5uYXZpZ2F0aW9uU2NoZWR1bGVyKCktPnNjaGVkdWxlTG9jYXRpb25DaGFuZ2Uo
bV9wYXJzZXItPmRvY3VtZW50KCktPnNlY3VyaXR5T3JpZ2luKCksIGJsYW5rVVJMKCksIFN0cmlu
ZygpKTsKKyAgICAgICAgcmV0dXJuIHJlcXVlc3QucmVsZWFzZSgpOwogICAgIH0KKyAgICByZXR1
cm4gbnVsbHB0cjsKIH0KIAogYm9vbCBYU1NBdWRpdG9yOjpmaWx0ZXJTdGFydFRva2VuKEhUTUxU
b2tlbiYgdG9rZW4pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9YU1NB
dWRpdG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9YU1NBdWRpdG9yLmgKaW5kZXgg
MzU5Njk4ZmNlYzVkMzQyYTdhNTZiNjIwNTNiNjcwMTlhZGZiZTQwNy4uMjU5ZWU0ZjVhYTFlOTI4
NGYzYjdiZjMyZmJiYjJkZGFkMmFlYzhiMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRt
bC9wYXJzZXIvWFNTQXVkaXRvci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL1hT
U0F1ZGl0b3IuaApAQCAtMjksOSArMjksMTEgQEAKICNpbmNsdWRlICJIVE1MVG9rZW4uaCIKICNp
bmNsdWRlICJIVFRQUGFyc2Vycy5oIgogI2luY2x1ZGUgIlN1ZmZpeFRyZWUuaCIKKyNpbmNsdWRl
IDx3dGYvUGFzc093blB0ci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK2NsYXNzIERpZEJs
b2NrU2NyaXB0UmVxdWVzdDsKIGNsYXNzIEhUTUxEb2N1bWVudFBhcnNlcjsKIAogY2xhc3MgWFNT
QXVkaXRvciB7CkBAIC0zOSw3ICs0MSw3IEBAIGNsYXNzIFhTU0F1ZGl0b3IgewogcHVibGljOgog
ICAgIGV4cGxpY2l0IFhTU0F1ZGl0b3IoSFRNTERvY3VtZW50UGFyc2VyKik7CiAKLSAgICB2b2lk
IGZpbHRlclRva2VuKEhUTUxUb2tlbiYpOworICAgIFBhc3NPd25QdHI8RGlkQmxvY2tTY3JpcHRS
ZXF1ZXN0PiBmaWx0ZXJUb2tlbihIVE1MVG9rZW4mKTsKIAogcHJpdmF0ZToKICAgICBzdGF0aWMg
Y29uc3Qgc2l6ZV90IGtNYXhpbXVtRnJhZ21lbnRMZW5ndGhUYXJnZXQgPSAxMDA7CkBAIC04MSw2
ICs4Myw3IEBAIHByaXZhdGU6CiAgICAgYm9vbCBpc0NvbnRhaW5lZEluUmVxdWVzdChjb25zdCBT
dHJpbmcmKTsKICAgICBib29sIGlzTGlrZWx5U2FmZVJlc291cmNlKGNvbnN0IFN0cmluZyYgdXJs
KTsKIAorICAgIC8vIEZJWE1FOiBSZW1vdmUgdGhpcyBkZXBlbmRlbmN5LgogICAgIEhUTUxEb2N1
bWVudFBhcnNlciogbV9wYXJzZXI7CiAgICAgYm9vbCBtX2lzRW5hYmxlZDsKICAgICBYU1NQcm90
ZWN0aW9uRGlzcG9zaXRpb24gbV94c3NQcm90ZWN0aW9uOwpAQCAtOTUsNyArOTgsNiBAQCBwcml2
YXRlOgogICAgIFN0cmluZyBtX2NhY2hlZERlY29kZWRTbmlwcGV0OwogICAgIGJvb2wgbV9zaG91
bGRBbGxvd0NEQVRBOwogICAgIHVuc2lnbmVkIG1fc2NyaXB0VGFnTmVzdGluZ0xldmVsOwotICAg
IGJvb2wgbV9ub3RpZnlDbGllbnQ7CiAgICAgS1VSTCBtX3JlcG9ydFVSTDsKIH07CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL1hTU0F1ZGl0b3JEZWxlZ2F0ZS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9YU1NBdWRpdG9yRGVsZWdhdGUuY3BwCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjMzOWVlZWRiN2I4ZWI5MzU4MTRhMTc3NDkzODU5ZTVkODNmZjVlOTgKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9YU1NBdWRpdG9yRGVsZWdhdGUu
Y3BwCkBAIC0wLDAgKzEsODEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgR29vZ2xlLCBJ
bmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQor
ICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9D
VVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJYU1NBdWRpdG9yRGVs
ZWdhdGUuaCIKKworI2luY2x1ZGUgIkNvbnNvbGUuaCIKKyNpbmNsdWRlICJET01XaW5kb3cuaCIK
KyNpbmNsdWRlICJEb2N1bWVudC5oIgorI2luY2x1ZGUgIkZvcm1EYXRhLmgiCisjaW5jbHVkZSAi
RnJhbWUuaCIKKyNpbmNsdWRlICJGcmFtZUxvYWRlckNsaWVudC5oIgorI2luY2x1ZGUgIkluc3Bl
Y3RvclZhbHVlcy5oIgorI2luY2x1ZGUgIlBpbmdMb2FkZXIuaCIKKyNpbmNsdWRlICJTZWN1cml0
eU9yaWdpbi5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1hTU0F1ZGl0b3JEZWxlZ2F0ZTo6
WFNTQXVkaXRvckRlbGVnYXRlKERvY3VtZW50KiBkb2N1bWVudCkKKyAgICA6IG1fZG9jdW1lbnQo
ZG9jdW1lbnQpCisgICAgLCBtX2RpZE5vdGlmeUNsaWVudChmYWxzZSkKK3sKKyAgICBBU1NFUlQo
aXNNYWluVGhyZWFkKCkpOworICAgIEFTU0VSVChtX2RvY3VtZW50KTsKK30KKwordm9pZCBYU1NB
dWRpdG9yRGVsZWdhdGU6OmRpZEJsb2NrU2NyaXB0KFBhc3NPd25QdHI8RGlkQmxvY2tTY3JpcHRS
ZXF1ZXN0PiByZXF1ZXN0KQoreworICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CisKKyAgICAv
LyBGSVhNRTogQ29uc2lkZXIgdXNpbmcgYSBtb3JlIGhlbHBmdWwgY29uc29sZSBtZXNzYWdlLgor
ICAgIERFRklORV9TVEFUSUNfTE9DQUwoU3RyaW5nLCBjb25zb2xlTWVzc2FnZSwgKEFTQ0lJTGl0
ZXJhbCgiUmVmdXNlZCB0byBleGVjdXRlIGEgSmF2YVNjcmlwdCBzY3JpcHQuIFNvdXJjZSBjb2Rl
IG9mIHNjcmlwdCBmb3VuZCB3aXRoaW4gcmVxdWVzdC5cbiIpKSk7CisgICAgbV9kb2N1bWVudC0+
YWRkQ29uc29sZU1lc3NhZ2UoSlNNZXNzYWdlU291cmNlLCBFcnJvck1lc3NhZ2VMZXZlbCwgY29u
c29sZU1lc3NhZ2UpOworCisgICAgaWYgKHJlcXVlc3QtPm1fZGlkQmxvY2tFbnRpcmVQYWdlKQor
ICAgICAgICBtX2RvY3VtZW50LT5mcmFtZSgpLT5sb2FkZXIoKS0+c3RvcEFsbExvYWRlcnMoKTsK
KworICAgIGlmICghbV9kaWROb3RpZnlDbGllbnQpIHsKKyAgICAgICAgbV9kb2N1bWVudC0+ZnJh
bWUoKS0+bG9hZGVyKCktPmNsaWVudCgpLT5kaWREZXRlY3RYU1MobV9kb2N1bWVudC0+dXJsKCks
IHJlcXVlc3QtPm1fZGlkQmxvY2tFbnRpcmVQYWdlKTsKKyAgICAgICAgbV9kaWROb3RpZnlDbGll
bnQgPSB0cnVlOworICAgIH0KKworICAgIGlmICghcmVxdWVzdC0+bV9yZXBvcnRVUkwuaXNFbXB0
eSgpKSB7CisgICAgICAgIFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IHJlcG9ydERldGFpbHMgPSBJ
bnNwZWN0b3JPYmplY3Q6OmNyZWF0ZSgpOworICAgICAgICByZXBvcnREZXRhaWxzLT5zZXRTdHJp
bmcoInJlcXVlc3QtdXJsIiwgcmVxdWVzdC0+bV9vcmlnaW5hbFVSTCk7CisgICAgICAgIHJlcG9y
dERldGFpbHMtPnNldFN0cmluZygicmVxdWVzdC1ib2R5IiwgcmVxdWVzdC0+bV9vcmlnaW5hbEhU
VFBCb2R5KTsKKworICAgICAgICBSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiByZXBvcnRPYmplY3Qg
PSBJbnNwZWN0b3JPYmplY3Q6OmNyZWF0ZSgpOworICAgICAgICByZXBvcnRPYmplY3QtPnNldE9i
amVjdCgieHNzLXJlcG9ydCIsIHJlcG9ydERldGFpbHMucmVsZWFzZSgpKTsKKworICAgICAgICBS
ZWZQdHI8Rm9ybURhdGE+IHJlcG9ydCA9IEZvcm1EYXRhOjpjcmVhdGUocmVwb3J0T2JqZWN0LT50
b0pTT05TdHJpbmcoKS51dGY4KCkuZGF0YSgpKTsKKyAgICAgICAgUGluZ0xvYWRlcjo6c2VuZFZp
b2xhdGlvblJlcG9ydChtX2RvY3VtZW50LT5mcmFtZSgpLCByZXF1ZXN0LT5tX3JlcG9ydFVSTCwg
cmVwb3J0KTsKKyAgICB9CisKKyAgICBpZiAocmVxdWVzdC0+bV9kaWRCbG9ja0VudGlyZVBhZ2Up
CisgICAgICAgIG1fZG9jdW1lbnQtPmZyYW1lKCktPm5hdmlnYXRpb25TY2hlZHVsZXIoKS0+c2No
ZWR1bGVMb2NhdGlvbkNoYW5nZShtX2RvY3VtZW50LT5zZWN1cml0eU9yaWdpbigpLCBibGFua1VS
TCgpLCBTdHJpbmcoKSk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL1hTU0F1ZGl0b3JEZWxlZ2F0ZS5oIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9wYXJzZXIvWFNTQXVkaXRvckRlbGVnYXRlLmgKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uM2Vk
YjAyZWQxZTUwZTJmMDY3YmVkMmIwOGJhYjgyOTg1ZjJkNTQxOAotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL1hTU0F1ZGl0b3JEZWxlZ2F0ZS5oCkBAIC0wLDAg
KzEsNzIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgR29vZ2xlLCBJbmMuIEFsbCBSaWdo
dHMgUmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBS
T0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkg
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
KyNpZm5kZWYgWFNTQXVkaXRvckRlbGVnYXRlX2gKKyNkZWZpbmUgWFNTQXVkaXRvckRlbGVnYXRl
X2gKKworI2luY2x1ZGUgIktVUkwuaCIKKyNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgorI2lu
Y2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2Ns
YXNzIERvY3VtZW50OworCitjbGFzcyBEaWRCbG9ja1NjcmlwdFJlcXVlc3QgeworcHVibGljOgor
ICAgIHN0YXRpYyBQYXNzT3duUHRyPERpZEJsb2NrU2NyaXB0UmVxdWVzdD4gY3JlYXRlKGNvbnN0
IEtVUkwmIHJlcG9ydFVSTCwgY29uc3QgU3RyaW5nJiBvcmlnaW5hbFVSTCwgY29uc3QgU3RyaW5n
JiBvcmlnaW5hbEhUVFBCb2R5LCBib29sIGRpZEJsb2NrRW50aXJlUGFnZSkKKyAgICB7CisgICAg
ICAgIHJldHVybiBhZG9wdFB0cihuZXcgRGlkQmxvY2tTY3JpcHRSZXF1ZXN0KHJlcG9ydFVSTCwg
b3JpZ2luYWxVUkwsIG9yaWdpbmFsSFRUUEJvZHksIGRpZEJsb2NrRW50aXJlUGFnZSkpOworICAg
IH0KKworICAgIEtVUkwgbV9yZXBvcnRVUkw7CisgICAgU3RyaW5nIG1fb3JpZ2luYWxVUkw7Cisg
ICAgU3RyaW5nIG1fb3JpZ2luYWxIVFRQQm9keTsKKyAgICBib29sIG1fZGlkQmxvY2tFbnRpcmVQ
YWdlOworCitwcml2YXRlOgorICAgIERpZEJsb2NrU2NyaXB0UmVxdWVzdChjb25zdCBLVVJMJiBy
ZXBvcnRVUkwsIGNvbnN0IFN0cmluZyYgb3JpZ2luYWxVUkwsIGNvbnN0IFN0cmluZyYgb3JpZ2lu
YWxIVFRQQm9keSwgYm9vbCBkaWRCbG9ja0VudGlyZVBhZ2UpCisgICAgICAgIDogbV9yZXBvcnRV
UkwocmVwb3J0VVJMKQorICAgICAgICAsIG1fb3JpZ2luYWxVUkwob3JpZ2luYWxVUkwpCisgICAg
ICAgICwgbV9vcmlnaW5hbEhUVFBCb2R5KG9yaWdpbmFsSFRUUEJvZHkpCisgICAgICAgICwgbV9k
aWRCbG9ja0VudGlyZVBhZ2UoZGlkQmxvY2tFbnRpcmVQYWdlKQorICAgIHsgfQorfTsKKworY2xh
c3MgWFNTQXVkaXRvckRlbGVnYXRlIHsKKyAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShYU1NBdWRp
dG9yRGVsZWdhdGUpOworcHVibGljOgorICAgIGV4cGxpY2l0IFhTU0F1ZGl0b3JEZWxlZ2F0ZShE
b2N1bWVudCopOworCisgICAgdm9pZCBkaWRCbG9ja1NjcmlwdChQYXNzT3duUHRyPERpZEJsb2Nr
U2NyaXB0UmVxdWVzdD4pOworCitwcml2YXRlOgorICAgIERvY3VtZW50KiBtX2RvY3VtZW50Owor
ICAgIGJvb2wgbV9kaWROb3RpZnlDbGllbnQ7Cit9OworCit9CisKKyNlbmRpZgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>