<?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>78085</bug_id>
          
          <creation_ts>2012-02-08 00:32:48 -0800</creation_ts>
          <short_desc>Page should have less intrusive way to associate API implementation objects.</short_desc>
          <delta_ts>2012-02-13 01:00:35 -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>WebKit API</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>78471</dependson>
          <blocked>72010</blocked>
    
    <blocked>78440</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Hajime Morrita">morrita</reporter>
          <assigned_to name="Hajime Morrita">morrita</assigned_to>
          <cc>abarth</cc>
    
    <cc>ap</cc>
    
    <cc>darin</cc>
    
    <cc>dglazkov</cc>
    
    <cc>donggwan.kim</cc>
    
    <cc>haraken</cc>
    
    <cc>kihong.kwon</cc>
    
    <cc>rakuco</cc>
    
    <cc>s.choi</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>551856</commentid>
    <comment_count>0</comment_count>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2012-02-08 00:32:48 -0800</bug_when>
    <thetext>Currently adding a Web API which has platform access needs to modify Page and PageClient.
We should have more unintrusive way to handle this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>553022</commentid>
    <comment_count>1</comment_count>
      <attachid>126272</attachid>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2012-02-09 03:30:01 -0800</bug_when>
    <thetext>Created attachment 126272
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>553038</commentid>
    <comment_count>2</comment_count>
      <attachid>126272</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2012-02-09 03:58:00 -0800</bug_when>
    <thetext>Comment on attachment 126272
Patch

Attachment 126272 did not pass qt-ews (qt):
Output: http://queues.webkit.org/results/11484186</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>553080</commentid>
    <comment_count>3</comment_count>
      <attachid>126272</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-02-09 05:18:48 -0800</bug_when>
    <thetext>Comment on attachment 126272
Patch

Attachment 126272 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/11480234

New failing tests:
fast/dom/DeviceOrientation/no-synchronous-events.html
fast/dom/DeviceOrientation/basic-operation.html
fast/dom/DeviceOrientation/multiple-frames.html
fast/dom/DeviceOrientation/updates.html
fast/dom/DeviceOrientation/null-values.html
fast/dom/DeviceOrientation/add-listener-from-callback.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>553312</commentid>
    <comment_count>4</comment_count>
      <attachid>126272</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-02-09 10:51:14 -0800</bug_when>
    <thetext>Comment on attachment 126272
Patch

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

I really like the approach.  A few comments below.  It looks like you&apos;ve got some test failures to work through.

&gt; Source/WebCore/page/Page.cpp:230
&gt; +    notifyDestroyedToSupplements();

We might also want a PageDestructionObserver, similar to FrameDestructionObserver, but we can add that in a future patch.

&gt; Source/WebCore/page/PageSupplement.h:41
&gt; +class PageSupplementKey {
&gt; +    WTF_MAKE_NONCOPYABLE(PageSupplementKey);
&gt; +public:
&gt; +    PageSupplementKey() { }
&gt; +};

You might consider using AtomicStrings as the keys.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>553319</commentid>
    <comment_count>5</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-02-09 10:57:02 -0800</bug_when>
    <thetext>I&apos;m told Mr. Adler has a similar dream and might have some thoughts on the approach.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>553632</commentid>
    <comment_count>6</comment_count>
      <attachid>126409</attachid>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2012-02-09 17:21:14 -0800</bug_when>
    <thetext>Created attachment 126409
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>553639</commentid>
    <comment_count>7</comment_count>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2012-02-09 17:27:37 -0800</bug_when>
    <thetext>Hi Adam, thanks for taking a look!
I polished the patch a bit and fixed broken tests.

&gt; 
&gt; &gt; Source/WebCore/page/Page.cpp:230
&gt; &gt; +    notifyDestroyedToSupplements();
&gt; 
&gt; We might also want a PageDestructionObserver, similar to FrameDestructionObserver, but we can add that in a future patch.
Sure. We also have something like DocumentSupplement/WindowSupplment.

&gt; &gt; +class PageSupplementKey {
&gt; &gt; +    WTF_MAKE_NONCOPYABLE(PageSupplementKey);
&gt; &gt; +public:
&gt; &gt; +    PageSupplementKey() { }
&gt; &gt; +};
&gt; 
&gt; You might consider using AtomicStrings as the keys.
Fixed.

(In reply to comment #5)
&gt; I&apos;m told Mr. Adler has a similar dream and might have some thoughts on the approach.
This is great! I&apos;d love to hear his opinion.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>554367</commentid>
    <comment_count>8</comment_count>
      <attachid>126409</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-02-10 13:57:42 -0800</bug_when>
    <thetext>Comment on attachment 126409
Patch

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

This looks like a good step forward.  A couple of thoughts about naming below.

&gt; Source/WebCore/dom/Document.cpp:1951
&gt; -    if (page()-&gt;deviceMotionController())
&gt; -        page()-&gt;deviceMotionController()-&gt;suspendEventsForAllListeners(domWindow());
&gt; -    if (page()-&gt;deviceOrientationController())
&gt; -        page()-&gt;deviceOrientationController()-&gt;suspendEventsForAllListeners(domWindow());
&gt; +    if (DeviceMotionController* controller = DeviceMotionController::requireOf(page()))
&gt; +        controller-&gt;suspendEventsForAllListeners(domWindow());
&gt; +    if (DeviceOrientationController* controller = DeviceOrientationController::requireOf(page()))
&gt; +        controller-&gt;suspendEventsForAllListeners(domWindow());
&gt; +

This work should be done by an active DOM object rather than special-cased here, but fixing that can be a later patch.

&gt; Source/WebCore/page/DOMWindow.cpp:1565
&gt; +        if (DeviceMotionController* controller = DeviceMotionController::requireOf(frame()))

I wonder if requireOf should be called &quot;from&quot; ?

&gt; Source/WebCore/page/PageSupplement.cpp:40
&gt; +    delete this;

I wonder if PageSupplement should have an OwnPtr member variable to itself.  That would make the ownership model clearer.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>554880</commentid>
    <comment_count>9</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-02-12 16:37:32 -0800</bug_when>
    <thetext>I was thinking about the ownership model here a bit.  I wonder if would be better if the Page should own these supplements in PageSupplementMap.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>554885</commentid>
    <comment_count>10</comment_count>
      <attachid>126689</attachid>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2012-02-12 16:48:28 -0800</bug_when>
    <thetext>Created attachment 126689
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>554886</commentid>
    <comment_count>11</comment_count>
      <attachid>126690</attachid>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2012-02-12 16:50:03 -0800</bug_when>
    <thetext>Created attachment 126690
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>554887</commentid>
    <comment_count>12</comment_count>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2012-02-12 16:53:08 -0800</bug_when>
    <thetext>(In reply to comment #8)
&gt; (From update of attachment 126409 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=126409&amp;action=review
&gt; 
&gt; This looks like a good step forward.  A couple of thoughts about naming below.
&gt; 
&gt; &gt; Source/WebCore/dom/Document.cpp:1951
&gt; &gt; -    if (page()-&gt;deviceMotionController())
&gt; &gt; -        page()-&gt;deviceMotionController()-&gt;suspendEventsForAllListeners(domWindow());
&gt; &gt; -    if (page()-&gt;deviceOrientationController())
&gt; &gt; -        page()-&gt;deviceOrientationController()-&gt;suspendEventsForAllListeners(domWindow());
&gt; &gt; +    if (DeviceMotionController* controller = DeviceMotionController::requireOf(page()))
&gt; &gt; +        controller-&gt;suspendEventsForAllListeners(domWindow());
&gt; &gt; +    if (DeviceOrientationController* controller = DeviceOrientationController::requireOf(page()))
&gt; &gt; +        controller-&gt;suspendEventsForAllListeners(domWindow());
&gt; &gt; +
&gt; 
&gt; This work should be done by an active DOM object rather than special-cased here, but fixing that can be a later patch.
I feel same. Filed Bug 78442.

&gt; 
&gt; &gt; Source/WebCore/page/DOMWindow.cpp:1565
&gt; &gt; +        if (DeviceMotionController* controller = DeviceMotionController::requireOf(frame()))
&gt; 
&gt; I wonder if requireOf should be called &quot;from&quot; ?
&gt; 
Done.

&gt; &gt; Source/WebCore/page/PageSupplement.cpp:40
&gt; &gt; +    delete this;
&gt; 
&gt; I wonder if PageSupplement should have an OwnPtr member variable to itself.  That would make the ownership model clearer.
I notice that most of these supplement objects are captured by OwnPtr.
So I changed m_supplements&apos; type to HashMap&lt;AtomiStringImpl*,OwnPtr&lt;PageSupplement&gt;&gt; and
removed pageDestroyed() virtual function for now. 
I filed use Bug 78443 to provide such a hook.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>554895</commentid>
    <comment_count>13</comment_count>
      <attachid>126690</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-02-12 17:18:45 -0800</bug_when>
    <thetext>Comment on attachment 126690
Patch for landing

Clearing flags on attachment: 126690

Committed r107518: &lt;http://trac.webkit.org/changeset/107518&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>554896</commentid>
    <comment_count>14</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-02-12 17:18:52 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>126272</attachid>
            <date>2012-02-09 03:30:01 -0800</date>
            <delta_ts>2012-02-09 17:21:07 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-78085-20120209202959.patch</filename>
            <type>text/plain</type>
            <size>39870</size>
            <attacher name="Hajime Morrita">morrita</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA3MTk3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTZlZjBhYWFmNGNjZmIx
NzAwM2I5ODhlNTliMjI0Yjc4YzZmYWYwMi4uN2U1NDQ2ZWUxODIxOTRjNDY0MThjZWE5OTQzYWNh
Mjc2MGNkMTYwOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDg1IEBACisyMDEyLTAyLTA5ICBIYWpp
bWUgTW9ycml0YSAgPG1vcnJpdGFAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFBhZ2Ugc2hvdWxk
IGhhdmUgbGVzcyBpbnRydXNpdmUgd2F5IHRvIGFzc29jaWF0ZSBBUEkgaW1wbGVtZW50YXRpb24g
b2JqZWN0cy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTc4MDg1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
SW50cm9kdWNpbmcgUGFnZVN1cHBsZW1lbnQgaW50ZXJmYWNlIHRvIGF0dGFjaCBiZWhpbmQtdGhl
LWZsYWctaXNoCisgICAgICAgIG9iamVjdHMgdG8gUGFnZSBpbnN0YW5jZXMuCisKKyAgICAgICAg
VGhpcyBjaGFuZ2UgYWltcyB0byBpbXByb3ZlIG1vZHVsYXJpdHkgb2YgTW9kdWxlcy8gZW50cmll
cy4gV2l0aAorICAgICAgICBQYWdlU3VwcGxlbWVudCBtZWNoaW5hcnksIHdlIGNhbiBlbGltaW5h
dGUgaWZkZWYgY29uZGl0aW9uYWxzIGZyb20KKyAgICAgICAgUGFnZS5oL1BhZ2UuY3BwIGFuZCBh
cmUgYWJsZSB0byBhZGQgTW9kdWxlcy8gZW50cmllcyB3aXRob3V0CisgICAgICAgIHRvdWNoaW5n
IG5vbi1Nb2R1bGUgV2ViQ29yZSBmaWxlcy4gV2ViS2l0IEFQSSBjbGFzc2VzIGxpa2UgV2ViUGFn
ZQorICAgICAgICBjYW4gInN1cHBseSIgdGhlc2Ugb2JqZWN0cyBkeW5hbWljYWxseSBkdXJpbmcg
dGhlIFBhZ2UgaW5zdGFuY2Ugc2V0dXAuCisKKyAgICAgICAgSW4gdGhpcyBjaGFuZ2UsIERldmlj
ZU1vdGlvbkNvbnRyb2xsZXIgYW5kCisgICAgICAgIERldmljZU9yaWVudGF0aW9uQ29udHJvbGxl
ciBpcyB1cGRhdGVkIHRvIGFkb3B0IFBhZ2VTdXBwbGVtZW50CisgICAgICAgIGludGVmYWNlIGZv
ciBhbiBpbGx1c3RyYXRpdmUgcHVycG9zZSBiZWNhdXNlIHRoZXkgYXJlIGdvaW5nIHRvCisgICAg
ICAgIG1vdmUgaW50byBNb2R1bGVzLyBzaG9ydGx5LiBPdGhlciBQYWdlIGFzc29jaWF0ZWQgQVBJ
IGJhY2tpbmcKKyAgICAgICAgb2JqZWN0cyBhbHNvIHNob3VsZCBiZSB0cmFuc2Zvcm1lZCB0byBQ
YWdlU3VwcGxlbWVudCBmYW1pbHkuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLiBObyBiZWhhdmlv
ciBjaGFuZ2UuCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBHTlVtYWtl
ZmlsZS5saXN0LmFtOgorICAgICAgICAqIFRhcmdldC5wcmk6CisgICAgICAgICogV2ViQ29yZS5n
eXBpOgorICAgICAgICAqIFdlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qOgorICAgICAgICAq
IFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBkb20vRGV2aWNl
TW90aW9uQ29udHJvbGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEZXZpY2VNb3Rpb25Db250
cm9sbGVyOjpzdXBwbGVtZW50S2V5KToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2Vi
Q29yZTo6RGV2aWNlTW90aW9uQ29udHJvbGxlcjo6c3VwcGx5KToKKyAgICAgICAgKFdlYkNvcmU6
OkRldmljZU1vdGlvbkNvbnRyb2xsZXI6OmlzQWN0aXZlQXQpOgorICAgICAgICAqIGRvbS9EZXZp
Y2VNb3Rpb25Db250cm9sbGVyLmg6CisgICAgICAgIChEZXZpY2VNb3Rpb25Db250cm9sbGVyKToK
KyAgICAgICAgKFdlYkNvcmU6OkRldmljZU1vdGlvbkNvbnRyb2xsZXI6OmZpbmRTdXBweWluZyk6
CisgICAgICAgICogZG9tL0RldmljZU9yaWVudGF0aW9uQ29udHJvbGxlci5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpEZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXI6OnN1cHBsZW1lbnRLZXkpOgor
ICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpEZXZpY2VPcmllbnRhdGlvbkNv
bnRyb2xsZXI6OnN1cHBseSk6CisgICAgICAgIChXZWJDb3JlOjpEZXZpY2VPcmllbnRhdGlvbkNv
bnRyb2xsZXI6OmlzQWN0aXZlQXQpOgorICAgICAgICAqIGRvbS9EZXZpY2VPcmllbnRhdGlvbkNv
bnRyb2xsZXIuaDoKKyAgICAgICAgKERldmljZU9yaWVudGF0aW9uQ29udHJvbGxlcik6CisgICAg
ICAgIChXZWJDb3JlOjpEZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXI6OmZpbmRTdXBweWluZyk6
CisgICAgICAgICogZG9tL0RvY3VtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50
OjpzdXNwZW5kQWN0aXZlRE9NT2JqZWN0cyk6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6
cmVzdW1lQWN0aXZlRE9NT2JqZWN0cyk6CisgICAgICAgICogaGlzdG9yeS9QYWdlQ2FjaGUuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6bG9nQ2FuQ2FjaGVQYWdlRGVjaXNpb24pOgorICAgICAgICAo
V2ViQ29yZTo6UGFnZUNhY2hlOjpjYW5DYWNoZSk6CisgICAgICAgICogcGFnZS9ET01XaW5kb3cu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6RE9NV2luZG93OjphZGRFdmVudExpc3RlbmVyKToKKyAg
ICAgICAgKFdlYkNvcmU6OkRPTVdpbmRvdzo6cmVtb3ZlRXZlbnRMaXN0ZW5lcik6CisgICAgICAg
IChXZWJDb3JlOjpET01XaW5kb3c6OnJlbW92ZUFsbEV2ZW50TGlzdGVuZXJzKToKKyAgICAgICAg
KiBwYWdlL1BhZ2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UGFnZTo6UGFnZSk6CisgICAgICAg
IChXZWJDb3JlOjpQYWdlOjp+UGFnZSk6CisgICAgICAgIChXZWJDb3JlOjpQYWdlOjpzdXBwbHkp
OgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpQYWdlOjpmaW5kU3VwcHlp
bmcpOgorICAgICAgICAoV2ViQ29yZTo6UGFnZTo6bm90aWZ5RGVzdHJveWVkVG9TdXBwbGVtZW50
cyk6CisgICAgICAgIChXZWJDb3JlOjpQYWdlOjpQYWdlQ2xpZW50czo6UGFnZUNsaWVudHMpOgor
ICAgICAgICAqIHBhZ2UvUGFnZS5oOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChQYWdl
Q2xpZW50cyk6CisgICAgICAgIChQYWdlKToKKyAgICAgICAgKiBwYWdlL1BhZ2VTdXBwbGVtZW50
LmNwcDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvZG9tL0RldmljZU1vdGlvbkNvbnRyb2xs
ZXIuaC4KKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6UGFnZVN1cHBsZW1l
bnQ6On5QYWdlU3VwcGxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpQYWdlU3VwcGxlbWVudDo6
cGFnZURlc3Ryb3llZCk6CisgICAgICAgIChXZWJDb3JlOjpQYWdlU3VwcGxlbWVudDo6c3VwcGx5
KToKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2VTdXBwbGVtZW50OjpmaW5kU3VwcHlpbmcpOgorICAg
ICAgICAqIHBhZ2UvUGFnZVN1cHBsZW1lbnQuaDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUv
ZG9tL0RldmljZU1vdGlvbkNvbnRyb2xsZXIuaC4KKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAg
ICAoUGFnZVN1cHBsZW1lbnRLZXkpOgorICAgICAgICAoV2ViQ29yZTo6UGFnZVN1cHBsZW1lbnRL
ZXk6OlBhZ2VTdXBwbGVtZW50S2V5KToKKyAgICAgICAgKFBhZ2VTdXBwbGVtZW50KToKKyAgICAg
ICAgKiBzdmcvZ3JhcGhpY3MvU1ZHSW1hZ2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHSW1h
Z2U6OmRhdGFDaGFuZ2VkKToKKwogMjAxMi0wMi0wOSAgUm9sYW5kIFN0ZWluZXIgIDxyb2xhbmRz
dGVpbmVyQGNocm9taXVtLm9yZz4KIAogICAgICAgICBTZWxlY3RvckNoZWNrZXI6OmNoZWNrU2Vs
ZWN0b3I6IG1vdmUgcGFyYW1ldGVycyBpbnRvIGEgc3RydWN0CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdl
TG9nCmluZGV4IGMzODM3ZDFjZmZjNGY1Yjg1MDQ0MDFjY2IwNDJiZDE5NWNiMzM0OWUuLjdhMzcz
ZDhlOTI1NzlkZTM5OWJmM2M0YzIwYmJjZWRiYTk5ZTY2MjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTItMDItMDkgIEhhamltZSBNb3JyaXRhICA8bW9y
cml0YUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUGFnZSBzaG91bGQgaGF2ZSBsZXNzIGludHJ1
c2l2ZSB3YXkgdG8gYXNzb2NpYXRlIEFQSSBpbXBsZW1lbnRhdGlvbiBvYmplY3RzLgorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzgwODUKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHNyYy9XZWJWaWV3SW1w
bC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpXZWJWaWV3SW1wbCk6CisKIDIw
MTItMDItMDggIFJheW1vbmQgTGl1ICA8cmF5bW9uZC5saXVAaW50ZWwuY29tPgogCiAgICAgICAg
IEZpeCBhIHR5cG8gZm9yIHIxMDcxMjUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvcXQvQ2hh
bmdlTG9nIGIvU291cmNlL1dlYktpdC9xdC9DaGFuZ2VMb2cKaW5kZXggOTQwNmM5MjQ3MGI2ODNh
NWE3OTg1OWMxZjEwZTlkNDQ1ZGI1N2ZiMy4uNzZlYTVhMWQzODMyMjMyOTczYWJhZTY5ZTkyNTUz
MWIwMTg2MjNkOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9xdC9DaGFuZ2VMb2cKKysrIGIv
U291cmNlL1dlYktpdC9xdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAxMi0wMi0wOSAg
SGFqaW1lIE1vcnJpdGEgIDxtb3JyaXRhQGNocm9taXVtLm9yZz4KKworICAgICAgICBQYWdlIHNo
b3VsZCBoYXZlIGxlc3MgaW50cnVzaXZlIHdheSB0byBhc3NvY2lhdGUgQVBJIGltcGxlbWVudGF0
aW9uIG9iamVjdHMuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD03ODA4NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgICogQXBpL3F3ZWJwYWdlLmNwcDoKKyAgICAgICAgKFFXZWJQYWdlUHJpdmF0ZTo6UVdlYlBh
Z2VQcml2YXRlKToKKwogMjAxMi0wMi0wOCAgTGVvIEZyYW5jaGkgIDxsZnJhbmNoaUBrZGUub3Jn
PgogCiAgICAgICAgIFJlbW90ZSB3ZWIgaW5zcGVjdG9yIHJlZW50cmFuY3kgZml4ZXMKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYkNvcmUvQ01h
a2VMaXN0cy50eHQKaW5kZXggYzU4MzY2OGVmY2RkY2Y2ZTBmNTM4NzY4YzI0YTMyNTRiYTA4ZTkx
NC4uZmExOTA5ZWJiNDJlZWZiMjQ1ZDIyZWNhMTUwNGYyZmRjMjc3Y2Q3NyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvQ01ha2VM
aXN0cy50eHQKQEAgLTEwMjMsNiArMTAyMyw3IEBAIFNFVChXZWJDb3JlX1NPVVJDRVMKICAgICBw
YWdlL1BhZ2VHcm91cC5jcHAKICAgICBwYWdlL1BhZ2VHcm91cExvYWREZWZlcnJlci5jcHAKICAg
ICBwYWdlL1BhZ2VTZXJpYWxpemVyLmNwcAorICAgIHBhZ2UvUGFnZVN1cHBsZW1lbnQuY3BwCiAg
ICAgcGFnZS9QYWdlVmlzaWJpbGl0eVN0YXRlLmNwcAogICAgIHBhZ2UvUGVyZm9ybWFuY2UuY3Bw
CiAgICAgcGFnZS9QZXJmb3JtYW5jZU5hdmlnYXRpb24uY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtIGIvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUu
bGlzdC5hbQppbmRleCBjMDhjYjI1YTgxYzZmNWNlZmI4YzYxODJkNDM3NGM1NWExMWI0MGU4Li5k
NjRlYWFjNzc4OTBiNmE2MDhjNzI3NGQxZjkwODhjMDhhYWM5M2JmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCisrKyBiL1NvdXJjZS9XZWJDb3JlL0dOVW1h
a2VmaWxlLmxpc3QuYW0KQEAgLTI3MjgsNiArMjcyOCw4IEBAIHdlYmNvcmVfc291cmNlcyArPSBc
CiAJU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlR3JvdXBMb2FkRGVmZXJyZXIuaCBcCiAJU291cmNl
L1dlYkNvcmUvcGFnZS9QYWdlU2VyaWFsaXplci5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL3BhZ2Uv
UGFnZVNlcmlhbGl6ZXIuaCBcCisJU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlU3VwcGxlbWVudC5j
cHAgXAorCVNvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZVN1cHBsZW1lbnQuaCBcCiAJU291cmNlL1dl
YkNvcmUvcGFnZS9QYWdlVmlzaWJpbGl0eVN0YXRlLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvcGFn
ZS9QYWdlVmlzaWJpbGl0eVN0YXRlLmggXAogCVNvdXJjZS9XZWJDb3JlL3BhZ2UvUGVyZm9ybWFu
Y2UuY3BwIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkgYi9Tb3VyY2Uv
V2ViQ29yZS9UYXJnZXQucHJpCmluZGV4IDc1OGRkNGJkMmQ4OGEyZTZlYWM3NTQ0OWI2NmFkMjM3
ZDMyNWQ3NTkuLmUyNDc3ODRjMTAwOTFlYmU5MWM0YTZmM2I0MjhmNGIxZjMwMWNmNWUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkKKysrIGIvU291cmNlL1dlYkNvcmUvVGFy
Z2V0LnByaQpAQCAtOTk4LDYgKzk5OCw3IEBAIFNPVVJDRVMgKz0gXAogICAgIHBhZ2UvUGFnZS5j
cHAgXAogICAgIHBhZ2UvUGFnZUdyb3VwLmNwcCBcCiAgICAgcGFnZS9QYWdlR3JvdXBMb2FkRGVm
ZXJyZXIuY3BwIFwKKyAgICBwYWdlL1BhZ2VTdXBwbGVtZW50LmNwcCBcCiAgICAgcGFnZS9QYWdl
VmlzaWJpbGl0eVN0YXRlLmNwcCBcCiAgICAgcGFnZS9QZXJmb3JtYW5jZS5jcHAgXAogICAgIHBh
Z2UvUGVyZm9ybWFuY2VOYXZpZ2F0aW9uLmNwcCBcCkBAIC0yMDU5LDYgKzIwNjAsNyBAQCBIRUFE
RVJTICs9IFwKICAgICBwYWdlL1BhZ2VHcm91cC5oIFwKICAgICBwYWdlL1BhZ2VHcm91cExvYWRE
ZWZlcnJlci5oIFwKICAgICBwYWdlL1BhZ2UuaCBcCisgICAgcGFnZS9QYWdlU3VwcGxlbWVudC5o
IFwKICAgICBwYWdlL1BhZ2VWaXNpYmlsaXR5U3RhdGUuaCBcCiAgICAgcGFnZS9QcmludENvbnRl
eHQuaCBcCiAgICAgcGFnZS9TY3JlZW4uaCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLmd5cGkgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKaW5kZXggZTRhNTIyNzFi
NzQ3ODQ5ZmY4NGRlYWQ1NDg0MmUwNzI3OTQzYjRhYS4uMjY0OTg1ZTE3YWEyZGFmNzJjMDNmNmU3
N2IyYzk0NDk1N2JjMDdhYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBp
CisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQpAQCAtMjE5LDYgKzIxOSw3IEBACiAg
ICAgICAgICAgICAncGFnZS9QYWdlLmgnLAogICAgICAgICAgICAgJ3BhZ2UvUGFnZUdyb3VwLmgn
LAogICAgICAgICAgICAgJ3BhZ2UvUGFnZVNlcmlhbGl6ZXIuaCcsCisgICAgICAgICAgICAncGFn
ZS9QYWdlU3VwcGxlbWVudC5oJywKICAgICAgICAgICAgICdwYWdlL1BhZ2VWaXNpYmlsaXR5U3Rh
dGUuaCcsCiAgICAgICAgICAgICAncGFnZS9Qb3NpdGlvbkNhbGxiYWNrLmgnLAogICAgICAgICAg
ICAgJ3BhZ2UvUG9zaXRpb25FcnJvci5oJywKQEAgLTI2MzksNiArMjY0MCw3IEBACiAgICAgICAg
ICAgICAncGFnZS9QYWdlR3JvdXBMb2FkRGVmZXJyZXIuY3BwJywKICAgICAgICAgICAgICdwYWdl
L1BhZ2VHcm91cExvYWREZWZlcnJlci5oJywKICAgICAgICAgICAgICdwYWdlL1BhZ2VTZXJpYWxp
emVyLmNwcCcsCisgICAgICAgICAgICAncGFnZS9QYWdlU3VwcGxlbWVudC5jcHAnLAogICAgICAg
ICAgICAgJ3BhZ2UvUGFnZVZpc2liaWxpdHlTdGF0ZS5jcHAnLAogICAgICAgICAgICAgJ3BhZ2Uv
UGVyZm9ybWFuY2UuY3BwJywKICAgICAgICAgICAgICdwYWdlL1BlcmZvcm1hbmNlLmgnLApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2ogYi9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagppbmRleCA1OWM2Njdl
OTIwYjA0Nzg1NTRmOTJjNDU2NWU3ZjFlMzBkNDI1MDU5Li45MzJhNDZhNjc3MTBjYmUyODM4ZjIx
YTE0NmRhMDY2OGRiZmZhYzhlIDEwMDc1NQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZj
cHJvai9XZWJDb3JlLnZjcHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9X
ZWJDb3JlLnZjcHJvagpAQCAtMjU1NTgsNiArMjU1NTgsMTQgQEAKIAkJCQk+CiAJCQk8L0ZpbGU+
CiAJCQk8RmlsZQorCQkJCVJlbGF0aXZlUGF0aD0iLi5ccGFnZVxQYWdlU3VwcGxlbWVudC5jcHAi
CisJCQkJPgorCQkJPC9GaWxlPgorCQkJPEZpbGUKKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHBhZ2Vc
UGFnZVN1cHBsZW1lbnQuaCIKKwkJCQk+CisJCQk8L0ZpbGU+CisJCQk8RmlsZQogCQkJCVJlbGF0
aXZlUGF0aD0iLi5ccGFnZVxQYWdlVmlzaWJpbGl0eVN0YXRlLmNwcCIKIAkJCQk+CiAJCQk8L0Zp
bGU+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oKaW5kZXggMGQxYzQ5NDA4MTMwODQ3ZmNiMTNlMWI2NGNkYzcwYWFmYTMyZDYzZS4uNjNhYzk1
NjA1OGEwMWJjNTJhNTUzMGYxMTlmMjI5ZGIzY2I0MTMwYiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMzU0MSw2ICszNTQxLDgg
QEAKIAkJQTcxNUU2NTMxMzRCQkJFQzAwRDhFNzEzIC8qIFByb2dyZXNzU2hhZG93RWxlbWVudC5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTcxNUU2NTEx
MzRCQkJFQzAwRDhFNzEzIC8qIFByb2dyZXNzU2hhZG93RWxlbWVudC5oICovOyB9OwogCQlBNzE4
NzYwRTBCMkExMjAxMDBBMTZFQ0UgLyogRHJhZ0FjdGlvbnMuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3MTg3NjBEMEIyQTEyMDEwMEExNkVDRSAvKiBE
cmFnQWN0aW9ucy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CiAJCUE3MTg3ODkwMEIyRDA0QUMwMEExNkVDRSAvKiBEcmFnQ29udHJvbGxlck1hYy5tbSBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3MTg3ODhGMEIy
RDA0QUMwMEExNkVDRSAvKiBEcmFnQ29udHJvbGxlck1hYy5tbSAqLzsgfTsKKwkJQTcxRTA4Mzcx
NEUzQ0VBRjAwNkE0NjE5IC8qIFBhZ2VTdXBwbGVtZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3MUUwODM1MTRFM0NFQUYwMDZBNDYxOSAvKiBQ
YWdlU3VwcGxlbWVudC5jcHAgKi87IH07CisJCUE3MUUwODM4MTRFM0NFQUYwMDZBNDYxOSAvKiBQ
YWdlU3VwcGxlbWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gQTcxRTA4MzYxNEUzQ0VBRjAwNkE0NjE5IC8qIFBhZ2VTdXBwbGVtZW50LmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQTcyM0Y3N0IxNDg0
Q0E0QzAwOEM2REJFIC8qIFBsYXRmb3JtRXhwb3J0TWFjcm9zLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNzIzRjc3QTE0ODRDQTRDMDA4QzZEQkUgLyog
UGxhdGZvcm1FeHBvcnRNYWNyb3MuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2
YXRlLCApOyB9OyB9OwogCQlBNzNGOTVGRTEyQzk3QkZFMDAzMUFBRjkgLyogUm91bmRlZFJlY3Qu
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTczRjk1
RkMxMkM5N0JGRTAwMzFBQUY5IC8qIFJvdW5kZWRSZWN0LmNwcCAqLzsgfTsKIAkJQTczRjk1RkYx
MkM5N0JGRTAwMzFBQUY5IC8qIFJvdW5kZWRSZWN0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNzNGOTVGRDEyQzk3QkZFMDAzMUFBRjkgLyogUm91bmRl
ZFJlY3QuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpA
QCAtMTAzOTQsNiArMTAzOTYsOCBAQAogCQlBNzE4NzYwRDBCMkExMjAxMDBBMTZFQ0UgLyogRHJh
Z0FjdGlvbnMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRHJhZ0FjdGlvbnMu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTcxODc4OEYwQjJEMDRBQzAwQTE2RUNF
IC8qIERyYWdDb250cm9sbGVyTWFjLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3Bw
OyBwYXRoID0gRHJhZ0NvbnRyb2xsZXJNYWMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCUE3MUE3MEM5MTFBRkIwMjAwMDk4OUQ2RCAvKiBIVE1MTWV0ZXJFbGVtZW50LmlkbCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHRleHQ7IHBhdGggPSBIVE1MTWV0ZXJFbGVtZW50LmlkbDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJQTcxRTA4MzUxNEUzQ0VBRjAwNkE0NjE5IC8qIFBhZ2VTdXBwbGVtZW50
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFBhZ2VTdXBwbGVtZW50
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQTcxRTA4MzYxNEUzQ0VBRjAwNkE0
NjE5IC8qIFBhZ2VTdXBwbGVtZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFBhZ2VTdXBwbGVtZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE3MjNGNzdB
MTQ4NENBNEMwMDhDNkRCRSAvKiBQbGF0Zm9ybUV4cG9ydE1hY3Jvcy5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBQbGF0Zm9ybUV4cG9ydE1hY3Jvcy5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQlBNzNGOTVGQzEyQzk3QkZFMDAzMUFBRjkgLyogUm91bmRlZFJlY3Qu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUm91bmRlZFJlY3QuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBNzNGOTVGRDEyQzk3QkZFMDAzMUFBRjkg
LyogUm91bmRlZFJlY3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUm91bmRl
ZFJlY3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE1MTkwLDYgKzE1MTk0LDgg
QEAKIAkJCQk3QTY3NEJEQTBGOUVCRjRFMDA2Q0YwOTkgLyogUGFnZUdyb3VwTG9hZERlZmVycmVy
LmggKi8sCiAJCQkJMzcxRTY1Q0QxMzY2MUVFRDAwQkVFREIwIC8qIFBhZ2VTZXJpYWxpemVyLmNw
cCAqLywKIAkJCQkzNzFFNjVDQjEzNjYxRURDMDBCRUVEQjAgLyogUGFnZVNlcmlhbGl6ZXIuaCAq
LywKKwkJCQlBNzFFMDgzNTE0RTNDRUFGMDA2QTQ2MTkgLyogUGFnZVN1cHBsZW1lbnQuY3BwICov
LAorCQkJCUE3MUUwODM2MTRFM0NFQUYwMDZBNDYxOSAvKiBQYWdlU3VwcGxlbWVudC5oICovLAog
CQkJCUZGRDVCOTc3MTM1Q0M5NzgwMEQ1RTkyQSAvKiBQYWdlVmlzaWJpbGl0eVN0YXRlLmNwcCAq
LywKIAkJCQlGRkQ1Qjk3ODEzNUNDOTc4MDBENUU5MkEgLyogUGFnZVZpc2liaWxpdHlTdGF0ZS5o
ICovLAogCQkJCThBODQ0RDAxMTFEM0MxOEUwMDE0MDY1QyAvKiBQZXJmb3JtYW5jZS5jcHAgKi8s
CkBAIC0yMzIxMSw2ICsyMzIxNyw3IEBACiAJCQkJRjM4MjA4OTUxNDdEMzVGOTAwMTBCQzA2IC8q
IFBhZ2VSdW50aW1lQWdlbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUYzNDc0MkU1MTM0MzYzM0Mw
MDUzMUJDMiAvKiBQYWdlU2NyaXB0RGVidWdTZXJ2ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTM3
MUU2NUNDMTM2NjFFREMwMEJFRURCMCAvKiBQYWdlU2VyaWFsaXplci5oIGluIEhlYWRlcnMgKi8s
CisJCQkJQTcxRTA4MzgxNEUzQ0VBRjAwNkE0NjE5IC8qIFBhZ2VTdXBwbGVtZW50LmggaW4gSGVh
ZGVycyAqLywKIAkJCQlFMTI4NEFFMTEwNDQ3RDQ1MDBFQUVCNTIgLyogUGFnZVRyYW5zaXRpb25F
dmVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTFFMUVDQzMwQzkxQzkwNDAwREMyNTVCIC8qIFBh
Z2VVUkxSZWNvcmQuaCBpbiBIZWFkZXJzICovLAogCQkJCUZGRDVCOTdCMTM1Q0M5NzgwMEQ1RTky
QSAvKiBQYWdlVmlzaWJpbGl0eVN0YXRlLmggaW4gSGVhZGVycyAqLywKQEAgLTI2MzQyLDYgKzI2
MzQ5LDcgQEAKIAkJCQlGMzgyMDg5NDE0N0QzNUY5MDAxMEJDMDYgLyogUGFnZVJ1bnRpbWVBZ2Vu
dC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlGMzQ3NDJFNDEzNDM2MzNDMDA1MzFCQzIgLyogUGFn
ZVNjcmlwdERlYnVnU2VydmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTM3MUU2NUNFMTM2NjFF
RUQwMEJFRURCMCAvKiBQYWdlU2VyaWFsaXplci5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlBNzFF
MDgzNzE0RTNDRUFGMDA2QTQ2MTkgLyogUGFnZVN1cHBsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJRTEyODRBRUExMDQ0N0RFRTAwRUFFQjUyIC8qIFBhZ2VUcmFuc2l0aW9uRXZlbnQuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJNTFFMUVDQzIwQzkxQzkwNDAwREMyNTVCIC8qIFBhZ2VVUkxS
ZWNvcmQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRkZENUI5N0ExMzVDQzk3ODAwRDVFOTJBIC8q
IFBhZ2VWaXNpYmlsaXR5U3RhdGUuY3BwIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9kb20vRGV2aWNlTW90aW9uQ29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vRGV2aWNlTW90aW9uQ29udHJvbGxlci5jcHAKaW5kZXggZDdhYzMwNTlmN2QxZTQ5YTJm
ZGIxNGMxOTU0YmQzYzdkYTVkZDZhYS4uNWE5ZDY0NThmODI5NjcxMjFkNGQ1OGRiOGYwYzE1NjRm
NDQ5YTM2NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RldmljZU1vdGlvbkNvbnRy
b2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9EZXZpY2VNb3Rpb25Db250cm9sbGVy
LmNwcApAQCAtMTM1LDQgKzEzNSwyMiBAQCB2b2lkIERldmljZU1vdGlvbkNvbnRyb2xsZXI6OmRp
ZENoYW5nZURldmljZU1vdGlvbihEZXZpY2VNb3Rpb25EYXRhKiBkZXZpY2VNb3RpbwogICAgICAg
ICBsaXN0ZW5lcnNWZWN0b3JbaV0tPmRpc3BhdGNoRXZlbnQoZXZlbnQpOwogfQogCitjb25zdCBQ
YWdlU3VwcGxlbWVudEtleSogRGV2aWNlTW90aW9uQ29udHJvbGxlcjo6c3VwcGxlbWVudEtleSgp
Cit7CisgICAgREVGSU5FX1NUQVRJQ19MT0NBTChQYWdlU3VwcGxlbWVudEtleSwga2V5LCAoKSk7
CisgICAgcmV0dXJuICZrZXk7Cit9CisKK3ZvaWQgRGV2aWNlTW90aW9uQ29udHJvbGxlcjo6c3Vw
cGx5KFBhZ2UqIHBhZ2UsIERldmljZU1vdGlvbkNsaWVudCogY2xpZW50KQoreworICAgIFBhZ2VT
dXBwbGVtZW50OjpzdXBwbHkocGFnZSwgc3VwcGxlbWVudEtleSgpLCBEZXZpY2VNb3Rpb25Db250
cm9sbGVyOjpjcmVhdGUoY2xpZW50KSk7Cit9CisKK2Jvb2wgRGV2aWNlTW90aW9uQ29udHJvbGxl
cjo6aXNBY3RpdmVBdChQYWdlKiBwYWdlKQoreworICAgIGlmIChEZXZpY2VNb3Rpb25Db250cm9s
bGVyKiBzZWxmID0gRGV2aWNlTW90aW9uQ29udHJvbGxlcjo6ZmluZFN1cHB5aW5nKHBhZ2UpKQor
ICAgICAgICByZXR1cm4gc2VsZi0+aXNBY3RpdmUoKTsKKyAgICByZXR1cm4gZmFsc2U7Cit9CisK
IH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9E
ZXZpY2VNb3Rpb25Db250cm9sbGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRGV2aWNlTW90aW9u
Q29udHJvbGxlci5oCmluZGV4IGJiOGNjYTk2MTI0NjM1ZjA3ZjMwYzRlNDJlYzNiMTlhZDY1NjBk
YzYuLjhkMWQyZmFlZmRkNDQwYmQyODJjYjY5NDQ1MDAxMjNhYzZlMjI2ODUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9EZXZpY2VNb3Rpb25Db250cm9sbGVyLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvZG9tL0RldmljZU1vdGlvbkNvbnRyb2xsZXIuaApAQCAtMjcsNiArMjcsNyBAQAog
I2RlZmluZSBEZXZpY2VNb3Rpb25Db250cm9sbGVyX2gKIAogI2luY2x1ZGUgIkRPTVdpbmRvdy5o
IgorI2luY2x1ZGUgIlBhZ2VTdXBwbGVtZW50LmgiCiAjaW5jbHVkZSAiVGltZXIuaCIKICNpbmNs
dWRlIDx3dGYvSGFzaENvdW50ZWRTZXQuaD4KIApAQCAtMzUsMTIgKzM2LDEwIEBAIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIGNsYXNzIERldmljZU1vdGlvbkRhdGE7CiBjbGFzcyBEZXZpY2VNb3Rpb25D
bGllbnQ7CiAKLWNsYXNzIERldmljZU1vdGlvbkNvbnRyb2xsZXIgeworY2xhc3MgRGV2aWNlTW90
aW9uQ29udHJvbGxlciA6IHB1YmxpYyBQYWdlU3VwcGxlbWVudCB7CiBwdWJsaWM6CiAgICAgfkRl
dmljZU1vdGlvbkNvbnRyb2xsZXIoKTsKIAotICAgIHN0YXRpYyBQYXNzT3duUHRyPERldmljZU1v
dGlvbkNvbnRyb2xsZXI+IGNyZWF0ZShEZXZpY2VNb3Rpb25DbGllbnQqKTsKLQogICAgIHZvaWQg
YWRkTGlzdGVuZXIoRE9NV2luZG93Kik7CiAgICAgdm9pZCByZW1vdmVMaXN0ZW5lcihET01XaW5k
b3cqKTsKICAgICB2b2lkIHJlbW92ZUFsbExpc3RlbmVycyhET01XaW5kb3cqKTsKQEAgLTUyLDcg
KzUxLDE1IEBAIHB1YmxpYzoKIAogICAgIGJvb2wgaXNBY3RpdmUoKSB7IHJldHVybiAhbV9saXN0
ZW5lcnMuaXNFbXB0eSgpOyB9CiAKKyAgICBzdGF0aWMgY29uc3QgUGFnZVN1cHBsZW1lbnRLZXkq
IHN1cHBsZW1lbnRLZXkoKTsKKyAgICBzdGF0aWMgdm9pZCBzdXBwbHkoUGFnZSosIERldmljZU1v
dGlvbkNsaWVudCopOworICAgIHN0YXRpYyBEZXZpY2VNb3Rpb25Db250cm9sbGVyKiBmaW5kU3Vw
cHlpbmcoRnJhbWUqIGZyYW1lKSB7IHJldHVybiBzdGF0aWNfY2FzdDxEZXZpY2VNb3Rpb25Db250
cm9sbGVyKj4oUGFnZVN1cHBsZW1lbnQ6OmZpbmRTdXBweWluZyhmcmFtZSwgc3VwcGxlbWVudEtl
eSgpKSk7IH0KKyAgICBzdGF0aWMgRGV2aWNlTW90aW9uQ29udHJvbGxlciogZmluZFN1cHB5aW5n
KFBhZ2UqIHBhZ2UpIHsgcmV0dXJuIHN0YXRpY19jYXN0PERldmljZU1vdGlvbkNvbnRyb2xsZXIq
PihQYWdlU3VwcGxlbWVudDo6ZmluZFN1cHB5aW5nKHBhZ2UsIHN1cHBsZW1lbnRLZXkoKSkpOyB9
CisgICAgc3RhdGljIGJvb2wgaXNBY3RpdmVBdChQYWdlKik7CisKIHByaXZhdGU6CisgICAgc3Rh
dGljIFBhc3NPd25QdHI8RGV2aWNlTW90aW9uQ29udHJvbGxlcj4gY3JlYXRlKERldmljZU1vdGlv
bkNsaWVudCopOworCiAgICAgRGV2aWNlTW90aW9uQ29udHJvbGxlcihEZXZpY2VNb3Rpb25DbGll
bnQqKTsKIAogICAgIHZvaWQgdGltZXJGaXJlZChUaW1lcjxEZXZpY2VNb3Rpb25Db250cm9sbGVy
PiopOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RldmljZU9yaWVudGF0aW9uQ29u
dHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRGV2aWNlT3JpZW50YXRpb25Db250cm9s
bGVyLmNwcAppbmRleCA2ODY4M2ZkMDUwNjNmYzhjYjg1NmMzZDMwYjJlMmU0ZWE5M2M0MmQ4Li41
Yzk4YTY2MGYxYjU0ZTliN2UxZDI0ZmQ1NmRmYWE5MzFiNWI2MmJjIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9kb20vRGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vRGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyLmNwcApAQCAtMTM3LDQg
KzEzNywyMiBAQCB2b2lkIERldmljZU9yaWVudGF0aW9uQ29udHJvbGxlcjo6ZGlkQ2hhbmdlRGV2
aWNlT3JpZW50YXRpb24oRGV2aWNlT3JpZW50YXRpb24qCiAgICAgICAgIGxpc3RlbmVyc1ZlY3Rv
cltpXS0+ZGlzcGF0Y2hFdmVudChldmVudCk7CiB9CiAKK2NvbnN0IFBhZ2VTdXBwbGVtZW50S2V5
KiBEZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXI6OnN1cHBsZW1lbnRLZXkoKQoreworICAgIERF
RklORV9TVEFUSUNfTE9DQUwoUGFnZVN1cHBsZW1lbnRLZXksIGtleSwgKCkpOworICAgIHJldHVy
biAma2V5OworfQorCit2b2lkIERldmljZU9yaWVudGF0aW9uQ29udHJvbGxlcjo6c3VwcGx5KFBh
Z2UqIHBhZ2UsIERldmljZU9yaWVudGF0aW9uQ2xpZW50KiBjbGllbnQpCit7CisgICAgUGFnZVN1
cHBsZW1lbnQ6OnN1cHBseShwYWdlLCBzdXBwbGVtZW50S2V5KCksIERldmljZU9yaWVudGF0aW9u
Q29udHJvbGxlcjo6Y3JlYXRlKHBhZ2UsIGNsaWVudCkpOworfQorCitib29sIERldmljZU9yaWVu
dGF0aW9uQ29udHJvbGxlcjo6aXNBY3RpdmVBdChQYWdlKiBwYWdlKQoreworICAgIGlmIChEZXZp
Y2VPcmllbnRhdGlvbkNvbnRyb2xsZXIqIHNlbGYgPSBEZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xs
ZXI6OmZpbmRTdXBweWluZyhwYWdlKSkKKyAgICAgICAgcmV0dXJuIHNlbGYtPmlzQWN0aXZlKCk7
CisgICAgcmV0dXJuIGZhbHNlOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyLmggYi9T
b3VyY2UvV2ViQ29yZS9kb20vRGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyLmgKaW5kZXggMWI4
Nzk5OGQ5NTdiMzc3NWZkY2U1ZWZhMjk5MDA2NjQzODAzNjFmNS4uYzNjNjIyMzk2MjI4OTA0Yjll
ZmEzN2MwMTMxMDg1YTU3YmY3OGMxNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0Rl
dmljZU9yaWVudGF0aW9uQ29udHJvbGxlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9EZXZp
Y2VPcmllbnRhdGlvbkNvbnRyb2xsZXIuaApAQCAtMjcsNiArMjcsNyBAQAogI2RlZmluZSBEZXZp
Y2VPcmllbnRhdGlvbkNvbnRyb2xsZXJfaAogCiAjaW5jbHVkZSAiRE9NV2luZG93LmgiCisjaW5j
bHVkZSAiUGFnZVN1cHBsZW1lbnQuaCIKICNpbmNsdWRlICJUaW1lci5oIgogCiAjaW5jbHVkZSA8
d3RmL0hhc2hDb3VudGVkU2V0Lmg+CkBAIC0zNywxMiArMzgsMTAgQEAgY2xhc3MgRGV2aWNlT3Jp
ZW50YXRpb247CiBjbGFzcyBEZXZpY2VPcmllbnRhdGlvbkNsaWVudDsKIGNsYXNzIFBhZ2U7CiAK
LWNsYXNzIERldmljZU9yaWVudGF0aW9uQ29udHJvbGxlciB7CitjbGFzcyBEZXZpY2VPcmllbnRh
dGlvbkNvbnRyb2xsZXIgOiBwdWJsaWMgUGFnZVN1cHBsZW1lbnQgewogcHVibGljOgogICAgIH5E
ZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXIoKTsKIAotICAgIHN0YXRpYyBQYXNzT3duUHRyPERl
dmljZU9yaWVudGF0aW9uQ29udHJvbGxlcj4gY3JlYXRlKFBhZ2UqLCBEZXZpY2VPcmllbnRhdGlv
bkNsaWVudCopOwotCiAgICAgdm9pZCBhZGRMaXN0ZW5lcihET01XaW5kb3cqKTsKICAgICB2b2lk
IHJlbW92ZUxpc3RlbmVyKERPTVdpbmRvdyopOwogICAgIHZvaWQgcmVtb3ZlQWxsTGlzdGVuZXJz
KERPTVdpbmRvdyopOwpAQCAtNTYsNyArNTUsMTUgQEAgcHVibGljOgogCiAgICAgRGV2aWNlT3Jp
ZW50YXRpb25DbGllbnQqIGNsaWVudCgpIGNvbnN0IHsgcmV0dXJuIG1fY2xpZW50OyB9CiAKKyAg
ICBzdGF0aWMgY29uc3QgUGFnZVN1cHBsZW1lbnRLZXkqIHN1cHBsZW1lbnRLZXkoKTsKKyAgICBz
dGF0aWMgdm9pZCBzdXBwbHkoUGFnZSosIERldmljZU9yaWVudGF0aW9uQ2xpZW50Kik7CisgICAg
c3RhdGljIERldmljZU9yaWVudGF0aW9uQ29udHJvbGxlciogZmluZFN1cHB5aW5nKEZyYW1lKiBm
cmFtZSkgeyByZXR1cm4gc3RhdGljX2Nhc3Q8RGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyKj4o
UGFnZVN1cHBsZW1lbnQ6OmZpbmRTdXBweWluZyhmcmFtZSwgc3VwcGxlbWVudEtleSgpKSk7IH0K
KyAgICBzdGF0aWMgRGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyKiBmaW5kU3VwcHlpbmcoUGFn
ZSogcGFnZSkgeyByZXR1cm4gc3RhdGljX2Nhc3Q8RGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVy
Kj4oUGFnZVN1cHBsZW1lbnQ6OmZpbmRTdXBweWluZyhwYWdlLCBzdXBwbGVtZW50S2V5KCkpKTsg
fQorICAgIHN0YXRpYyBib29sIGlzQWN0aXZlQXQoUGFnZSopOworCiBwcml2YXRlOgorICAgIHN0
YXRpYyBQYXNzT3duUHRyPERldmljZU9yaWVudGF0aW9uQ29udHJvbGxlcj4gY3JlYXRlKFBhZ2Uq
LCBEZXZpY2VPcmllbnRhdGlvbkNsaWVudCopOworCiAgICAgRGV2aWNlT3JpZW50YXRpb25Db250
cm9sbGVyKFBhZ2UqLCBEZXZpY2VPcmllbnRhdGlvbkNsaWVudCopOwogCiAgICAgdm9pZCB0aW1l
ckZpcmVkKFRpbWVyPERldmljZU9yaWVudGF0aW9uQ29udHJvbGxlcj4qKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9j
dW1lbnQuY3BwCmluZGV4IDdlOTI5MzY3Mjk5MTFmZDVjZjE4ZTEyYzg0ZGE0YzUxZmQ5ZWQwMTAu
LjliMDYxYjY4Y2ZmNWYwMGM1NDBhYmJhNWI1NmU2MTQwNDhhNzU0ZjkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0Rv
Y3VtZW50LmNwcApAQCAtMTk0NCwxMCArMTk0NCwxMSBAQCB2b2lkIERvY3VtZW50OjpzdXNwZW5k
QWN0aXZlRE9NT2JqZWN0cyhBY3RpdmVET01PYmplY3Q6OlJlYXNvbkZvclN1c3BlbnNpb24gd2h5
KQogICAgIGlmICghcGFnZSgpKQogICAgICAgICByZXR1cm47CiAKLSAgICBpZiAocGFnZSgpLT5k
ZXZpY2VNb3Rpb25Db250cm9sbGVyKCkpCi0gICAgICAgIHBhZ2UoKS0+ZGV2aWNlTW90aW9uQ29u
dHJvbGxlcigpLT5zdXNwZW5kRXZlbnRzRm9yQWxsTGlzdGVuZXJzKGRvbVdpbmRvdygpKTsKLSAg
ICBpZiAocGFnZSgpLT5kZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXIoKSkKLSAgICAgICAgcGFn
ZSgpLT5kZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXIoKS0+c3VzcGVuZEV2ZW50c0ZvckFsbExp
c3RlbmVycyhkb21XaW5kb3coKSk7CisgICAgaWYgKERldmljZU1vdGlvbkNvbnRyb2xsZXIqIGNv
bnRyb2xsZXIgPSBEZXZpY2VNb3Rpb25Db250cm9sbGVyOjpmaW5kU3VwcHlpbmcocGFnZSgpKSkK
KyAgICAgICAgY29udHJvbGxlci0+c3VzcGVuZEV2ZW50c0ZvckFsbExpc3RlbmVycyhkb21XaW5k
b3coKSk7CisgICAgaWYgKERldmljZU9yaWVudGF0aW9uQ29udHJvbGxlciogY29udHJvbGxlciA9
IERldmljZU9yaWVudGF0aW9uQ29udHJvbGxlcjo6ZmluZFN1cHB5aW5nKHBhZ2UoKSkpCisgICAg
ICAgIGNvbnRyb2xsZXItPnN1c3BlbmRFdmVudHNGb3JBbGxMaXN0ZW5lcnMoZG9tV2luZG93KCkp
OworCiAjZW5kaWYKIH0KIApAQCAtMTk1OSwxMCArMTk2MCwxMCBAQCB2b2lkIERvY3VtZW50Ojpy
ZXN1bWVBY3RpdmVET01PYmplY3RzKCkKICAgICBpZiAoIXBhZ2UoKSkKICAgICAgICAgcmV0dXJu
OwogCi0gICAgaWYgKHBhZ2UoKS0+ZGV2aWNlTW90aW9uQ29udHJvbGxlcigpKQotICAgICAgICBw
YWdlKCktPmRldmljZU1vdGlvbkNvbnRyb2xsZXIoKS0+cmVzdW1lRXZlbnRzRm9yQWxsTGlzdGVu
ZXJzKGRvbVdpbmRvdygpKTsKLSAgICBpZiAocGFnZSgpLT5kZXZpY2VPcmllbnRhdGlvbkNvbnRy
b2xsZXIoKSkKLSAgICAgICAgcGFnZSgpLT5kZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXIoKS0+
cmVzdW1lRXZlbnRzRm9yQWxsTGlzdGVuZXJzKGRvbVdpbmRvdygpKTsKKyAgICBpZiAoRGV2aWNl
TW90aW9uQ29udHJvbGxlciogY29udHJvbGxlciA9IERldmljZU1vdGlvbkNvbnRyb2xsZXI6OmZp
bmRTdXBweWluZyhwYWdlKCkpKQorICAgICAgICBjb250cm9sbGVyLT5yZXN1bWVFdmVudHNGb3JB
bGxMaXN0ZW5lcnMoZG9tV2luZG93KCkpOworICAgIGlmIChEZXZpY2VPcmllbnRhdGlvbkNvbnRy
b2xsZXIqIGNvbnRyb2xsZXIgPSBEZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXI6OmZpbmRTdXBw
eWluZyhwYWdlKCkpKQorICAgICAgICBjb250cm9sbGVyLT5yZXN1bWVFdmVudHNGb3JBbGxMaXN0
ZW5lcnMoZG9tV2luZG93KCkpOwogI2VuZGlmCiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2hpc3RvcnkvUGFnZUNhY2hlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2hpc3RvcnkvUGFnZUNh
Y2hlLmNwcAppbmRleCAyYTA4MzYxOWM5ZjBkY2IyMGE1NmZlZDc1ZDMzNzdkMzY3NzNlMzYyLi5l
OTY0Yzg4MjIyOGI4MDZjMmVmYzc0ZmVhODUzMGY3NjAzNGJjZmJmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9oaXN0b3J5L1BhZ2VDYWNoZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaGlz
dG9yeS9QYWdlQ2FjaGUuY3BwCkBAIC0xOTksMTEgKzE5OSwxMSBAQCBzdGF0aWMgdm9pZCBsb2dD
YW5DYWNoZVBhZ2VEZWNpc2lvbihQYWdlKiBwYWdlKQogICAgICAgICBjYW5ub3RDYWNoZSA9IHRy
dWU7CiAgICAgfQogI2lmIEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJT04pCi0gICAgaWYgKHBhZ2Ut
PmRldmljZU1vdGlvbkNvbnRyb2xsZXIoKSAmJiBwYWdlLT5kZXZpY2VNb3Rpb25Db250cm9sbGVy
KCktPmlzQWN0aXZlKCkpIHsKKyAgICBpZiAoRGV2aWNlTW90aW9uQ29udHJvbGxlcjo6aXNBY3Rp
dmVBdChwYWdlKSkgewogICAgICAgICBQQ0xPRygiICAgLVBhZ2UgaXMgdXNpbmcgRGV2aWNlTW90
aW9uIik7CiAgICAgICAgIGNhbm5vdENhY2hlID0gdHJ1ZTsKICAgICB9Ci0gICAgaWYgKHBhZ2Ut
PmRldmljZU9yaWVudGF0aW9uQ29udHJvbGxlcigpICYmIHBhZ2UtPmRldmljZU9yaWVudGF0aW9u
Q29udHJvbGxlcigpLT5pc0FjdGl2ZSgpKSB7CisgICAgaWYgKERldmljZU9yaWVudGF0aW9uQ29u
dHJvbGxlcjo6aXNBY3RpdmVBdChwYWdlKSkgewogICAgICAgICBQQ0xPRygiICAgLVBhZ2UgaXMg
dXNpbmcgRGV2aWNlT3JpZW50YXRpb24iKTsKICAgICAgICAgY2Fubm90Q2FjaGUgPSB0cnVlOwog
ICAgIH0KQEAgLTI5Niw4ICsyOTYsOCBAQCBib29sIFBhZ2VDYWNoZTo6Y2FuQ2FjaGUoUGFnZSog
cGFnZSkKICAgICAgICAgJiYgcGFnZS0+YmFja0ZvcndhcmQoKS0+aXNBY3RpdmUoKQogICAgICAg
ICAmJiBwYWdlLT5zZXR0aW5ncygpLT51c2VzUGFnZUNhY2hlKCkKICNpZiBFTkFCTEUoREVWSUNF
X09SSUVOVEFUSU9OKQotICAgICAgICAmJiAhKHBhZ2UtPmRldmljZU1vdGlvbkNvbnRyb2xsZXIo
KSAmJiBwYWdlLT5kZXZpY2VNb3Rpb25Db250cm9sbGVyKCktPmlzQWN0aXZlKCkpCi0gICAgICAg
ICYmICEocGFnZS0+ZGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyKCkgJiYgcGFnZS0+ZGV2aWNl
T3JpZW50YXRpb25Db250cm9sbGVyKCktPmlzQWN0aXZlKCkpCisgICAgICAgICYmICFEZXZpY2VN
b3Rpb25Db250cm9sbGVyOjppc0FjdGl2ZUF0KHBhZ2UpCisgICAgICAgICYmICFEZXZpY2VPcmll
bnRhdGlvbkNvbnRyb2xsZXI6OmlzQWN0aXZlQXQocGFnZSkKICNlbmRpZgogICAgICAgICAmJiBs
b2FkVHlwZSAhPSBGcmFtZUxvYWRUeXBlUmVsb2FkCiAgICAgICAgICYmIGxvYWRUeXBlICE9IEZy
YW1lTG9hZFR5cGVSZWxvYWRGcm9tT3JpZ2luCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL0RPTVdpbmRvdy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAKaW5k
ZXggMjU5N2Y4NjRmNzFkMDVhYjRhZGRhZTE3NDM2ZjBjMTRkNDAzY2RhNC4uNjBjMDkyMjE4N2Ew
NDYzYTFhMjMzMTEyNTM3NGJhYzcwNmI1YjdlNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGFnZS9ET01XaW5kb3cuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNw
cApAQCAtMTU2MSwxMCArMTU2MSwxMyBAQCBib29sIERPTVdpbmRvdzo6YWRkRXZlbnRMaXN0ZW5l
cihjb25zdCBBdG9taWNTdHJpbmcmIGV2ZW50VHlwZSwgUGFzc1JlZlB0cjxFdmVudAogICAgIGVs
c2UgaWYgKGV2ZW50VHlwZSA9PSBldmVudE5hbWVzKCkuYmVmb3JldW5sb2FkRXZlbnQgJiYgYWxs
b3dzQmVmb3JlVW5sb2FkTGlzdGVuZXJzKHRoaXMpKQogICAgICAgICBhZGRCZWZvcmVVbmxvYWRF
dmVudExpc3RlbmVyKHRoaXMpOwogI2lmIEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJT04pCi0gICAg
ZWxzZSBpZiAoZXZlbnRUeXBlID09IGV2ZW50TmFtZXMoKS5kZXZpY2Vtb3Rpb25FdmVudCAmJiBm
cmFtZSgpICYmIGZyYW1lKCktPnBhZ2UoKSAmJiBmcmFtZSgpLT5wYWdlKCktPmRldmljZU1vdGlv
bkNvbnRyb2xsZXIoKSkKLSAgICAgICAgZnJhbWUoKS0+cGFnZSgpLT5kZXZpY2VNb3Rpb25Db250
cm9sbGVyKCktPmFkZExpc3RlbmVyKHRoaXMpOwotICAgIGVsc2UgaWYgKGV2ZW50VHlwZSA9PSBl
dmVudE5hbWVzKCkuZGV2aWNlb3JpZW50YXRpb25FdmVudCAmJiBmcmFtZSgpICYmIGZyYW1lKCkt
PnBhZ2UoKSAmJiBmcmFtZSgpLT5wYWdlKCktPmRldmljZU9yaWVudGF0aW9uQ29udHJvbGxlcigp
KQotICAgICAgICBmcmFtZSgpLT5wYWdlKCktPmRldmljZU9yaWVudGF0aW9uQ29udHJvbGxlcigp
LT5hZGRMaXN0ZW5lcih0aGlzKTsKKyAgICBlbHNlIGlmIChldmVudFR5cGUgPT0gZXZlbnROYW1l
cygpLmRldmljZW1vdGlvbkV2ZW50KSB7CisgICAgICAgIGlmIChEZXZpY2VNb3Rpb25Db250cm9s
bGVyKiBjb250cm9sbGVyID0gRGV2aWNlTW90aW9uQ29udHJvbGxlcjo6ZmluZFN1cHB5aW5nKGZy
YW1lKCkpKQorICAgICAgICAgICAgY29udHJvbGxlci0+YWRkTGlzdGVuZXIodGhpcyk7CisgICAg
fSBlbHNlIGlmIChldmVudFR5cGUgPT0gZXZlbnROYW1lcygpLmRldmljZW1vdGlvbkV2ZW50KSB7
CisgICAgICAgIGlmIChEZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXIqIGNvbnRyb2xsZXIgPSBE
ZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXI6OmZpbmRTdXBweWluZyhmcmFtZSgpKSkKKyAgICAg
ICAgICAgIGNvbnRyb2xsZXItPmFkZExpc3RlbmVyKHRoaXMpOworICAgIH0KICNlbmRpZgogCiAg
ICAgcmV0dXJuIHRydWU7CkBAIC0xNTg1LDEwICsxNTg4LDEzIEBAIGJvb2wgRE9NV2luZG93Ojpy
ZW1vdmVFdmVudExpc3RlbmVyKGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnRUeXBlLCBFdmVudExp
c3RlbmVyCiAgICAgZWxzZSBpZiAoZXZlbnRUeXBlID09IGV2ZW50TmFtZXMoKS5iZWZvcmV1bmxv
YWRFdmVudCAmJiBhbGxvd3NCZWZvcmVVbmxvYWRMaXN0ZW5lcnModGhpcykpCiAgICAgICAgIHJl
bW92ZUJlZm9yZVVubG9hZEV2ZW50TGlzdGVuZXIodGhpcyk7CiAjaWYgRU5BQkxFKERFVklDRV9P
UklFTlRBVElPTikKLSAgICBlbHNlIGlmIChldmVudFR5cGUgPT0gZXZlbnROYW1lcygpLmRldmlj
ZW1vdGlvbkV2ZW50ICYmIGZyYW1lKCkgJiYgZnJhbWUoKS0+cGFnZSgpICYmIGZyYW1lKCktPnBh
Z2UoKS0+ZGV2aWNlTW90aW9uQ29udHJvbGxlcigpKQotICAgICAgICBmcmFtZSgpLT5wYWdlKCkt
PmRldmljZU1vdGlvbkNvbnRyb2xsZXIoKS0+cmVtb3ZlTGlzdGVuZXIodGhpcyk7Ci0gICAgZWxz
ZSBpZiAoZXZlbnRUeXBlID09IGV2ZW50TmFtZXMoKS5kZXZpY2VvcmllbnRhdGlvbkV2ZW50ICYm
IGZyYW1lKCkgJiYgZnJhbWUoKS0+cGFnZSgpICYmIGZyYW1lKCktPnBhZ2UoKS0+ZGV2aWNlT3Jp
ZW50YXRpb25Db250cm9sbGVyKCkpCi0gICAgICAgIGZyYW1lKCktPnBhZ2UoKS0+ZGV2aWNlT3Jp
ZW50YXRpb25Db250cm9sbGVyKCktPnJlbW92ZUxpc3RlbmVyKHRoaXMpOworICAgIGVsc2UgaWYg
KGV2ZW50VHlwZSA9PSBldmVudE5hbWVzKCkuZGV2aWNlbW90aW9uRXZlbnQpIHsKKyAgICAgICAg
aWYgKERldmljZU1vdGlvbkNvbnRyb2xsZXIqIGNvbnRyb2xsZXIgPSBEZXZpY2VNb3Rpb25Db250
cm9sbGVyOjpmaW5kU3VwcHlpbmcoZnJhbWUoKSkpCisgICAgICAgICAgICBjb250cm9sbGVyLT5y
ZW1vdmVMaXN0ZW5lcih0aGlzKTsKKyAgICB9IGVsc2UgaWYgKGV2ZW50VHlwZSA9PSBldmVudE5h
bWVzKCkuZGV2aWNlbW90aW9uRXZlbnQpIHsKKyAgICAgICAgaWYgKERldmljZU9yaWVudGF0aW9u
Q29udHJvbGxlciogY29udHJvbGxlciA9IERldmljZU9yaWVudGF0aW9uQ29udHJvbGxlcjo6Zmlu
ZFN1cHB5aW5nKGZyYW1lKCkpKQorICAgICAgICAgICAgY29udHJvbGxlci0+cmVtb3ZlTGlzdGVu
ZXIodGhpcyk7CisgICAgfQogI2VuZGlmCiAKICAgICByZXR1cm4gdHJ1ZTsKQEAgLTE2NDEsMTAg
KzE2NDcsMTAgQEAgdm9pZCBET01XaW5kb3c6OnJlbW92ZUFsbEV2ZW50TGlzdGVuZXJzKCkKICAg
ICBFdmVudFRhcmdldDo6cmVtb3ZlQWxsRXZlbnRMaXN0ZW5lcnMoKTsKIAogI2lmIEVOQUJMRShE
RVZJQ0VfT1JJRU5UQVRJT04pCi0gICAgaWYgKGZyYW1lKCkgJiYgZnJhbWUoKS0+cGFnZSgpICYm
IGZyYW1lKCktPnBhZ2UoKS0+ZGV2aWNlTW90aW9uQ29udHJvbGxlcigpKQotICAgICAgICBmcmFt
ZSgpLT5wYWdlKCktPmRldmljZU1vdGlvbkNvbnRyb2xsZXIoKS0+cmVtb3ZlQWxsTGlzdGVuZXJz
KHRoaXMpOwotICAgIGlmIChmcmFtZSgpICYmIGZyYW1lKCktPnBhZ2UoKSAmJiBmcmFtZSgpLT5w
YWdlKCktPmRldmljZU9yaWVudGF0aW9uQ29udHJvbGxlcigpKQotICAgICAgICBmcmFtZSgpLT5w
YWdlKCktPmRldmljZU9yaWVudGF0aW9uQ29udHJvbGxlcigpLT5yZW1vdmVBbGxMaXN0ZW5lcnMo
dGhpcyk7CisgICAgaWYgKERldmljZU1vdGlvbkNvbnRyb2xsZXIqIGNvbnRyb2xsZXIgPSBEZXZp
Y2VNb3Rpb25Db250cm9sbGVyOjpmaW5kU3VwcHlpbmcoZnJhbWUoKSkpCisgICAgICAgIGNvbnRy
b2xsZXItPmFkZExpc3RlbmVyKHRoaXMpOworICAgIGlmIChEZXZpY2VPcmllbnRhdGlvbkNvbnRy
b2xsZXIqIGNvbnRyb2xsZXIgPSBEZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXI6OmZpbmRTdXBw
eWluZyhmcmFtZSgpKSkKKyAgICAgICAgY29udHJvbGxlci0+YWRkTGlzdGVuZXIodGhpcyk7CiAj
ZW5kaWYKIAogICAgIHJlbW92ZUFsbFVubG9hZEV2ZW50TGlzdGVuZXJzKHRoaXMpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
UGFnZS5jcHAKaW5kZXggNDkyZTk0OWVlMWUzM2NjMGU5NGE0OTM4NjlhMDY4YmQ2MWY3OWRiMi4u
MTY2NmIyMzkwMDBmMTgzY2Q1ZjQ0YjZmNWQxNmNjMDZhMWIwYTcyOCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2Uu
Y3BwCkBAIC0yOSw4ICsyOSw2IEBACiAjaW5jbHVkZSAiQ29udGV4dE1lbnVDbGllbnQuaCIKICNp
bmNsdWRlICJDb250ZXh0TWVudUNvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJET01XaW5kb3cuaCIK
LSNpbmNsdWRlICJEZXZpY2VNb3Rpb25Db250cm9sbGVyLmgiCi0jaW5jbHVkZSAiRGV2aWNlT3Jp
ZW50YXRpb25Db250cm9sbGVyLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnRNYXJrZXJDb250cm9sbGVy
LmgiCiAjaW5jbHVkZSAiRHJhZ0NvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJFZGl0b3JDbGllbnQu
aCIKQEAgLTE0MCwxMCArMTM4LDYgQEAgUGFnZTo6UGFnZShQYWdlQ2xpZW50cyYgcGFnZUNsaWVu
dHMpCiAjaWYgRU5BQkxFKENMSUVOVF9CQVNFRF9HRU9MT0NBVElPTikKICAgICAsIG1fZ2VvbG9j
YXRpb25Db250cm9sbGVyKEdlb2xvY2F0aW9uQ29udHJvbGxlcjo6Y3JlYXRlKHRoaXMsIHBhZ2VD
bGllbnRzLmdlb2xvY2F0aW9uQ2xpZW50KSkKICNlbmRpZgotI2lmIEVOQUJMRShERVZJQ0VfT1JJ
RU5UQVRJT04pCi0gICAgLCBtX2RldmljZU1vdGlvbkNvbnRyb2xsZXIoUnVudGltZUVuYWJsZWRG
ZWF0dXJlczo6ZGV2aWNlTW90aW9uRW5hYmxlZCgpID8gRGV2aWNlTW90aW9uQ29udHJvbGxlcjo6
Y3JlYXRlKHBhZ2VDbGllbnRzLmRldmljZU1vdGlvbkNsaWVudCkgOiBudWxscHRyKQotICAgICwg
bV9kZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXIoUnVudGltZUVuYWJsZWRGZWF0dXJlczo6ZGV2
aWNlT3JpZW50YXRpb25FbmFibGVkKCkgPyBEZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXI6OmNy
ZWF0ZSh0aGlzLCBwYWdlQ2xpZW50cy5kZXZpY2VPcmllbnRhdGlvbkNsaWVudCkgOiBudWxscHRy
KQotI2VuZGlmCiAjaWYgRU5BQkxFKE5PVElGSUNBVElPTlMpCiAgICAgLCBtX25vdGlmaWNhdGlv
bkNvbnRyb2xsZXIoTm90aWZpY2F0aW9uQ29udHJvbGxlcjo6Y3JlYXRlKHRoaXMsIHBhZ2VDbGll
bnRzLm5vdGlmaWNhdGlvbkNsaWVudCkpCiAjZW5kaWYKQEAgLTIzMiw2ICsyMjYsOCBAQCBQYWdl
Ojp+UGFnZSgpCiAjaWZuZGVmIE5ERUJVRwogICAgIHBhZ2VDb3VudGVyLmRlY3JlbWVudCgpOwog
I2VuZGlmCisKKyAgICBub3RpZnlEZXN0cm95ZWRUb1N1cHBsZW1lbnRzKCk7CiB9CiAKIFZpZXdw
b3J0QXJndW1lbnRzIFBhZ2U6OnZpZXdwb3J0QXJndW1lbnRzKCkgY29uc3QKQEAgLTEwOTAsNiAr
MTA4NiwyNSBAQCB2b2lkIFBhZ2U6OmFkZFJlbGV2YW50UmVwYWludGVkT2JqZWN0KFJlbmRlck9i
amVjdCogb2JqZWN0LCBjb25zdCBJbnRSZWN0JiBvYmplYwogICAgIH0KIH0KIAordm9pZCBQYWdl
OjpzdXBwbHkoY29uc3QgUGFnZVN1cHBsZW1lbnRLZXkqIGtleSwgUGFzc093blB0cjxQYWdlU3Vw
cGxlbWVudD4gc3VwcGxlbWVudCkKK3sKKyAgICBBU1NFUlQoIW1fc3VwcGxpbWVudHMuZ2V0KGtl
eSkpOworICAgIG1fc3VwcGxpbWVudHMuc2V0KGtleSwgc3VwcGxlbWVudC5sZWFrUHRyKCkpOwor
fQorCitQYWdlU3VwcGxlbWVudCogUGFnZTo6ZmluZFN1cHB5aW5nKGNvbnN0IFBhZ2VTdXBwbGVt
ZW50S2V5KiBrZXkpCit7CisgICAgcmV0dXJuIG1fc3VwcGxpbWVudHMuZ2V0KGtleSk7Cit9CisK
K3ZvaWQgUGFnZTo6bm90aWZ5RGVzdHJveWVkVG9TdXBwbGVtZW50cygpCit7CisgICAgZm9yIChQ
YWdlU3VwcGxlbWVudE1hcDo6aXRlcmF0b3IgaSA9IG1fc3VwcGxpbWVudHMuYmVnaW4oKTsgaSAh
PSBtX3N1cHBsaW1lbnRzLmVuZCgpOyArK2kpCisgICAgICAgIGktPnNlY29uZC0+cGFnZURlc3Ry
b3llZCgpOworICAgIG1fc3VwcGxpbWVudHMuY2xlYXIoKTsKK30KKworCiBQYWdlOjpQYWdlQ2xp
ZW50czo6UGFnZUNsaWVudHMoKQogICAgIDogY2hyb21lQ2xpZW50KDApCiAgICAgLCBjb250ZXh0
TWVudUNsaWVudCgwKQpAQCAtMTA5Nyw4ICsxMTEyLDYgQEAgUGFnZTo6UGFnZUNsaWVudHM6OlBh
Z2VDbGllbnRzKCkKICAgICAsIGRyYWdDbGllbnQoMCkKICAgICAsIGluc3BlY3RvckNsaWVudCgw
KQogICAgICwgZ2VvbG9jYXRpb25DbGllbnQoMCkKLSAgICAsIGRldmljZU1vdGlvbkNsaWVudCgw
KQotICAgICwgZGV2aWNlT3JpZW50YXRpb25DbGllbnQoMCkKICAgICAsIHNwZWVjaElucHV0Q2xp
ZW50KDApCiAgICAgLCBub3RpZmljYXRpb25DbGllbnQoMCkKICAgICAsIHVzZXJNZWRpYUNsaWVu
dCgwKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmggYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL1BhZ2UuaAppbmRleCA1ZjZlMjA2NDlhODEyOGE1YzhiODRhOGU5MTNlNzMwZDNh
ODliMDk0Li5iNGVmZDI2MGU2ODE3MWJiNDdkNGYyNWZiNmQ3ZTlmN2I0MDYyN2E3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L1BhZ2UuaApAQCAtMjQsMTEgKzI0LDEzIEBACiAjaW5jbHVkZSAiRnJhbWVMb2FkZXJUeXBlcy5o
IgogI2luY2x1ZGUgIkZpbmRPcHRpb25zLmgiCiAjaW5jbHVkZSAiTGF5b3V0VHlwZXMuaCIKKyNp
bmNsdWRlICJQYWdlU3VwcGxlbWVudC5oIgogI2luY2x1ZGUgIlBhZ2VWaXNpYmlsaXR5U3RhdGUu
aCIKICNpbmNsdWRlICJQbGF0Zm9ybVNjcmVlbi5oIgogI2luY2x1ZGUgIlBsYXRmb3JtU3RyaW5n
LmgiCiAjaW5jbHVkZSAiVmlld3BvcnRBcmd1bWVudHMuaCIKICNpbmNsdWRlIDx3dGYvRm9yd2Fy
ZC5oPgorI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hTZXQuaD4K
ICNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4KIApAQCAtNTIsMTAgKzU0LDYgQEAgbmFtZXNw
YWNlIFdlYkNvcmUgewogICAgIGNsYXNzIENocm9tZUNsaWVudDsKICAgICBjbGFzcyBDb250ZXh0
TWVudUNsaWVudDsKICAgICBjbGFzcyBDb250ZXh0TWVudUNvbnRyb2xsZXI7Ci0gICAgY2xhc3Mg
RGV2aWNlTW90aW9uQ2xpZW50OwotICAgIGNsYXNzIERldmljZU1vdGlvbkNvbnRyb2xsZXI7Ci0g
ICAgY2xhc3MgRGV2aWNlT3JpZW50YXRpb25DbGllbnQ7Ci0gICAgY2xhc3MgRGV2aWNlT3JpZW50
YXRpb25Db250cm9sbGVyOwogICAgIGNsYXNzIERvY3VtZW50OwogICAgIGNsYXNzIERyYWdDYXJl
dENvbnRyb2xsZXI7CiAgICAgY2xhc3MgRHJhZ0NsaWVudDsKQEAgLTExOCw4ICsxMTYsNiBAQCBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgICAgICBEcmFnQ2xpZW50KiBkcmFnQ2xpZW50Owog
ICAgICAgICAgICAgSW5zcGVjdG9yQ2xpZW50KiBpbnNwZWN0b3JDbGllbnQ7CiAgICAgICAgICAg
ICBHZW9sb2NhdGlvbkNsaWVudCogZ2VvbG9jYXRpb25DbGllbnQ7Ci0gICAgICAgICAgICBEZXZp
Y2VNb3Rpb25DbGllbnQqIGRldmljZU1vdGlvbkNsaWVudDsKLSAgICAgICAgICAgIERldmljZU9y
aWVudGF0aW9uQ2xpZW50KiBkZXZpY2VPcmllbnRhdGlvbkNsaWVudDsKICAgICAgICAgICAgIFJl
ZlB0cjxCYWNrRm9yd2FyZExpc3Q+IGJhY2tGb3J3YXJkQ2xpZW50OwogICAgICAgICAgICAgU3Bl
ZWNoSW5wdXRDbGllbnQqIHNwZWVjaElucHV0Q2xpZW50OwogICAgICAgICAgICAgTm90aWZpY2F0
aW9uUHJlc2VudGVyKiBub3RpZmljYXRpb25DbGllbnQ7CkBAIC0xODQsMTAgKzE4MCw2IEBAIG5h
bWVzcGFjZSBXZWJDb3JlIHsKICNpZiBFTkFCTEUoQ0xJRU5UX0JBU0VEX0dFT0xPQ0FUSU9OKQog
ICAgICAgICBHZW9sb2NhdGlvbkNvbnRyb2xsZXIqIGdlb2xvY2F0aW9uQ29udHJvbGxlcigpIGNv
bnN0IHsgcmV0dXJuIG1fZ2VvbG9jYXRpb25Db250cm9sbGVyLmdldCgpOyB9CiAjZW5kaWYKLSNp
ZiBFTkFCTEUoREVWSUNFX09SSUVOVEFUSU9OKQotICAgICAgICBEZXZpY2VNb3Rpb25Db250cm9s
bGVyKiBkZXZpY2VNb3Rpb25Db250cm9sbGVyKCkgY29uc3QgeyByZXR1cm4gbV9kZXZpY2VNb3Rp
b25Db250cm9sbGVyLmdldCgpOyB9Ci0gICAgICAgIERldmljZU9yaWVudGF0aW9uQ29udHJvbGxl
ciogZGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyKCkgY29uc3QgeyByZXR1cm4gbV9kZXZpY2VP
cmllbnRhdGlvbkNvbnRyb2xsZXIuZ2V0KCk7IH0KLSNlbmRpZgogI2lmIEVOQUJMRShOT1RJRklD
QVRJT05TKQogICAgICAgICBOb3RpZmljYXRpb25Db250cm9sbGVyKiBub3RpZmljYXRpb25Db250
cm9sbGVyKCkgY29uc3QgeyByZXR1cm4gbV9ub3RpZmljYXRpb25Db250cm9sbGVyLmdldCgpOyB9
CiAjZW5kaWYKQEAgLTM1Miw5ICszNDQsMTYgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAg
ICB2b2lkIHNldFJlbGV2YW50UmVwYWludGVkT2JqZWN0c0NvdW50ZXJUaHJlc2hvbGQodWludDY0
X3QpOwogICAgICAgICB2b2lkIHN0YXJ0Q291bnRpbmdSZWxldmFudFJlcGFpbnRlZE9iamVjdHMo
KTsKICAgICAgICAgdm9pZCBhZGRSZWxldmFudFJlcGFpbnRlZE9iamVjdChSZW5kZXJPYmplY3Qq
LCBjb25zdCBJbnRSZWN0JiBvYmplY3RQYWludFJlY3QpOwotICAgICAgICAKKworICAgICAgICB2
b2lkIHN1cHBseShjb25zdCBQYWdlU3VwcGxlbWVudEtleSosIFBhc3NPd25QdHI8UGFnZVN1cHBs
ZW1lbnQ+KTsKKyAgICAgICAgUGFnZVN1cHBsZW1lbnQqIGZpbmRTdXBweWluZyhjb25zdCBQYWdl
U3VwcGxlbWVudEtleSopOworCiAgICAgcHJpdmF0ZToKICAgICAgICAgdm9pZCBpbml0R3JvdXAo
KTsKKyAgICAgICAgdm9pZCBub3RpZnlEZXN0cm95ZWRUb1N1cHBsZW1lbnRzKCk7CisKKyAgICAg
ICAgdHlwZWRlZiBIYXNoTWFwPGNvbnN0IFBhZ2VTdXBwbGVtZW50S2V5KiwgUGFnZVN1cHBsZW1l
bnQqPiBQYWdlU3VwcGxlbWVudE1hcDsKKyAgICAgICAgUGFnZVN1cHBsZW1lbnRNYXAgbV9zdXBw
bGltZW50czsKIAogI2lmIEFTU0VSVF9ESVNBQkxFRAogICAgICAgICB2b2lkIGNoZWNrRnJhbWVD
b3VudENvbnNpc3RlbmN5KCkgY29uc3QgeyB9CkBAIC0zODMsMTAgKzM4Miw2IEBAIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKICNpZiBFTkFCTEUoQ0xJRU5UX0JBU0VEX0dFT0xPQ0FUSU9OKQogICAgICAg
ICBPd25QdHI8R2VvbG9jYXRpb25Db250cm9sbGVyPiBtX2dlb2xvY2F0aW9uQ29udHJvbGxlcjsK
ICNlbmRpZgotI2lmIEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJT04pCi0gICAgICAgIE93blB0cjxE
ZXZpY2VNb3Rpb25Db250cm9sbGVyPiBtX2RldmljZU1vdGlvbkNvbnRyb2xsZXI7Ci0gICAgICAg
IE93blB0cjxEZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXI+IG1fZGV2aWNlT3JpZW50YXRpb25D
b250cm9sbGVyOwotI2VuZGlmCiAjaWYgRU5BQkxFKE5PVElGSUNBVElPTlMpCiAgICAgICAgIE93
blB0cjxOb3RpZmljYXRpb25Db250cm9sbGVyPiBtX25vdGlmaWNhdGlvbkNvbnRyb2xsZXI7CiAj
ZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZVN1cHBsZW1lbnQuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlU3VwcGxlbWVudC5jcHAKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTEz
Y2U3NTMwZjc0YTliYmI4OGZlMThmY2QzN2ZmNjdiMDZmNTk5ZAotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZVN1cHBsZW1lbnQuY3BwCkBAIC0wLDAgKzEsNjIgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqICAqIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZ
UklHSFQgSE9MREVSUyBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZ
UklHSFQgT1dORVIgT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VS
RU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiUGFnZVN1cHBsZW1lbnQu
aCIKKworI2luY2x1ZGUgIkZyYW1lLmgiCisjaW5jbHVkZSAiUGFnZS5oIgorCituYW1lc3BhY2Ug
V2ViQ29yZSB7CisKK1BhZ2VTdXBwbGVtZW50Ojp+UGFnZVN1cHBsZW1lbnQoKQoreworfQorCit2
b2lkIFBhZ2VTdXBwbGVtZW50OjpwYWdlRGVzdHJveWVkKCkKK3sKKyAgICBkZWxldGUgdGhpczsK
K30KKwordm9pZCBQYWdlU3VwcGxlbWVudDo6c3VwcGx5KFBhZ2UqIHBhZ2UsIGNvbnN0IFBhZ2VT
dXBwbGVtZW50S2V5KiBrZXksIFBhc3NPd25QdHI8UGFnZVN1cHBsZW1lbnQ+IHN1cHBsZW1lbnQp
Cit7CisgICAgcGFnZS0+c3VwcGx5KGtleSwgc3VwcGxlbWVudCk7Cit9CisKK1BhZ2VTdXBwbGVt
ZW50KiBQYWdlU3VwcGxlbWVudDo6ZmluZFN1cHB5aW5nKFBhZ2UqIHBhZ2UsIGNvbnN0IFBhZ2VT
dXBwbGVtZW50S2V5KiBrZXkpCit7CisgICAgaWYgKCFwYWdlKQorICAgICAgICByZXR1cm4gMDsK
KyAgICByZXR1cm4gcGFnZS0+ZmluZFN1cHB5aW5nKGtleSk7Cit9CisKK1BhZ2VTdXBwbGVtZW50
KiBQYWdlU3VwcGxlbWVudDo6ZmluZFN1cHB5aW5nKEZyYW1lKiBmcmFtZSwgY29uc3QgUGFnZVN1
cHBsZW1lbnRLZXkqIGtleSkKK3sKKyAgICBpZiAoIWZyYW1lIHx8ICFmcmFtZS0+cGFnZSgpKQor
ICAgICAgICByZXR1cm4gMDsKKyAgICByZXR1cm4gZnJhbWUtPnBhZ2UoKS0+ZmluZFN1cHB5aW5n
KGtleSk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvUGFnZVN1cHBsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZVN1
cHBsZW1lbnQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hZDE0MzllM2RmZmQ5OGJiM2MzYTE1MWJjOGY1ZGJkZDU1
MDZjZGRiCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlU3VwcGxl
bWVudC5oCkBAIC0wLDAgKzEsNTUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgKiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBgYEFTIElTJycgQU5EIEFOWQor
ICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElO
IE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQgT1dORVIgT1IKKyAqIENPTlRSSUJVVE9SUyBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAor
ICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFBhZ2VTdXBwbGVtZW50
X2gKKyNkZWZpbmUgUGFnZVN1cHBsZW1lbnRfaAorCisjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4K
KyNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitj
bGFzcyBQYWdlOworY2xhc3MgRnJhbWU7CisKK2NsYXNzIFBhZ2VTdXBwbGVtZW50S2V5IHsKKyAg
ICBXVEZfTUFLRV9OT05DT1BZQUJMRShQYWdlU3VwcGxlbWVudEtleSk7CitwdWJsaWM6CisgICAg
UGFnZVN1cHBsZW1lbnRLZXkoKSB7IH0KK307CisKK2NsYXNzIFBhZ2VTdXBwbGVtZW50IHsKK3B1
YmxpYzoKKyAgICB2aXJ0dWFsIH5QYWdlU3VwcGxlbWVudCgpOworICAgIHZpcnR1YWwgdm9pZCBw
YWdlRGVzdHJveWVkKCk7CisKKyAgICBzdGF0aWMgdm9pZCBzdXBwbHkoUGFnZSosIGNvbnN0IFBh
Z2VTdXBwbGVtZW50S2V5KiwgUGFzc093blB0cjxQYWdlU3VwcGxlbWVudD4pOworICAgIHN0YXRp
YyBQYWdlU3VwcGxlbWVudCogZmluZFN1cHB5aW5nKFBhZ2UqLCBjb25zdCBQYWdlU3VwcGxlbWVu
dEtleSopOworICAgIHN0YXRpYyBQYWdlU3VwcGxlbWVudCogZmluZFN1cHB5aW5nKEZyYW1lKiwg
Y29uc3QgUGFnZVN1cHBsZW1lbnRLZXkqKTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
KyAgICAKKyNlbmRpZiAvLyBQYWdlU3VwcGxlbWVudF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9zdmcvZ3JhcGhpY3MvU1ZHSW1hZ2UuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL2dyYXBo
aWNzL1NWR0ltYWdlLmNwcAppbmRleCBiYmNjOTFiNTJlM2Y5MWFlYmM0Y2Q0NTBmYzcwMTk2MTMx
YWFmMjBlLi43ZTFjZTI4NTRkZDBjNjcyYTg4YWZmNDY4NmNlZjVmZjA0NTg1M2Y3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvZ3JhcGhpY3MvU1ZHSW1hZ2UuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9ncmFwaGljcy9TVkdJbWFnZS5jcHAKQEAgLTMzNywxMiArMzM3LDYgQEAg
Ym9vbCBTVkdJbWFnZTo6ZGF0YUNoYW5nZWQoYm9vbCBhbGxEYXRhUmVjZWl2ZWQpCiAjZW5kaWYK
ICAgICAgICAgc3RhdGljIEluc3BlY3RvckNsaWVudCogZHVtbXlJbnNwZWN0b3JDbGllbnQgPSBu
ZXcgRW1wdHlJbnNwZWN0b3JDbGllbnQ7CiAgICAgICAgIHBhZ2VDbGllbnRzLmluc3BlY3RvckNs
aWVudCA9IGR1bW15SW5zcGVjdG9yQ2xpZW50OwotI2lmIEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJ
T04pCi0gICAgICAgIHN0YXRpYyBEZXZpY2VNb3Rpb25DbGllbnQqIGR1bW15RGV2aWNlTW90aW9u
Q2xpZW50ID0gbmV3IEVtcHR5RGV2aWNlTW90aW9uQ2xpZW50OwotICAgICAgICBwYWdlQ2xpZW50
cy5kZXZpY2VNb3Rpb25DbGllbnQgPSBkdW1teURldmljZU1vdGlvbkNsaWVudDsKLSAgICAgICAg
c3RhdGljIERldmljZU9yaWVudGF0aW9uQ2xpZW50KiBkdW1teURldmljZU9yaWVudGF0aW9uQ2xp
ZW50ID0gbmV3IEVtcHR5RGV2aWNlT3JpZW50YXRpb25DbGllbnQ7Ci0gICAgICAgIHBhZ2VDbGll
bnRzLmRldmljZU9yaWVudGF0aW9uQ2xpZW50ID0gZHVtbXlEZXZpY2VPcmllbnRhdGlvbkNsaWVu
dDsKLSNlbmRpZgogCiAgICAgICAgIC8vIEZJWE1FOiBJZiB0aGlzIFNWRyBlbmRzIHVwIGxvYWRp
bmcgaXRzZWxmLCB3ZSBtaWdodCBsZWFrIHRoZSB3b3JsZC4KICAgICAgICAgLy8gVGhlIENhY2hl
IGNvZGUgZG9lcyBub3Qga25vdyBhYm91dCBDYWNoZWRJbWFnZXMgaG9sZGluZyBGcmFtZXMgYW5k
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5jcHAKaW5kZXggYTA1ZTk4
OTIwN2UzOTE3MzMyMWEwZTcxY2YzNjQ1M2Q2YTNhMzVkZC4uNTJkMWViMzZhMjhmNTg1ZmEyOGE5
NTc5NzdhNTllOTdiZDVhMTIxOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9z
cmMvV2ViVmlld0ltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZp
ZXdJbXBsLmNwcApAQCAtNDUsNiArNDUsNyBAQAogI2luY2x1ZGUgIkN1cnNvci5oIgogI2luY2x1
ZGUgIkRPTVV0aWxpdGllc1ByaXZhdGUuaCIKICNpbmNsdWRlICJEZXZpY2VPcmllbnRhdGlvbkNs
aWVudFByb3h5LmgiCisjaW5jbHVkZSAiRGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyLmgiCiAj
aW5jbHVkZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRlICJEb2N1bWVudExvYWRlci5oIgogI2luY2x1
ZGUgIkRyYWdDb250cm9sbGVyLmgiCkBAIC0zOTMsNyArMzk0LDYgQEAgV2ViVmlld0ltcGw6Oldl
YlZpZXdJbXBsKFdlYlZpZXdDbGllbnQqIGNsaWVudCkKICNpZiBFTkFCTEUoSU5QVVRfU1BFRUNI
KQogICAgIHBhZ2VDbGllbnRzLnNwZWVjaElucHV0Q2xpZW50ID0gbV9zcGVlY2hJbnB1dENsaWVu
dC5nZXQoKTsKICNlbmRpZgotICAgIHBhZ2VDbGllbnRzLmRldmljZU9yaWVudGF0aW9uQ2xpZW50
ID0gbV9kZXZpY2VPcmllbnRhdGlvbkNsaWVudFByb3h5LmdldCgpOwogICAgIHBhZ2VDbGllbnRz
Lmdlb2xvY2F0aW9uQ2xpZW50ID0gbV9nZW9sb2NhdGlvbkNsaWVudFByb3h5LmdldCgpOwogI2lm
IEVOQUJMRShOT1RJRklDQVRJT05TKQogICAgIHBhZ2VDbGllbnRzLm5vdGlmaWNhdGlvbkNsaWVu
dCA9IG5vdGlmaWNhdGlvblByZXNlbnRlckltcGwoKTsKQEAgLTQwNCw3ICs0MDQsNyBAQCBXZWJW
aWV3SW1wbDo6V2ViVmlld0ltcGwoV2ViVmlld0NsaWVudCogY2xpZW50KQogI2VuZGlmCiAKICAg
ICBtX3BhZ2UgPSBhZG9wdFB0cihuZXcgUGFnZShwYWdlQ2xpZW50cykpOwotCisgICAgRGV2aWNl
T3JpZW50YXRpb25Db250cm9sbGVyOjpzdXBwbHkobV9wYWdlLmdldCgpLCBtX2RldmljZU9yaWVu
dGF0aW9uQ2xpZW50UHJveHkuZ2V0KCkpOwogICAgIG1fZ2VvbG9jYXRpb25DbGllbnRQcm94eS0+
c2V0Q29udHJvbGxlcihtX3BhZ2UtPmdlb2xvY2F0aW9uQ29udHJvbGxlcigpKTsKIAogICAgIG1f
cGFnZS0+c2V0R3JvdXBOYW1lKHBhZ2VHcm91cE5hbWUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9xdC9BcGkvcXdlYnBhZ2UuY3BwIGIvU291cmNlL1dlYktpdC9xdC9BcGkvcXdlYnBhZ2Uu
Y3BwCmluZGV4IGY5NGQ0NDU4OWY5NjUzMmJhNTk5ZmQ0NDljMzAyMDJjOWM3NzYzOTIuLjIzYmZi
MDU3ZTY1NzFmODRkNTY2ODBmZGEwYmQyNDczN2QzM2I4ZjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvcXQvQXBpL3F3ZWJwYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L3F0L0FwaS9xd2Vi
cGFnZS5jcHAKQEAgLTQ2LDggKzQ2LDEwIEBACiAjaW5jbHVkZSAiQ29udGV4dE1lbnVDbGllbnRR
dC5oIgogI2luY2x1ZGUgIkNvbnRleHRNZW51Q29udHJvbGxlci5oIgogI2luY2x1ZGUgIkRldmlj
ZU1vdGlvbkNsaWVudFF0LmgiCisjaW5jbHVkZSAiRGV2aWNlTW90aW9uQ29udHJvbGxlci5oIgog
I2luY2x1ZGUgIkRldmljZU9yaWVudGF0aW9uQ2xpZW50TW9jay5oIgogI2luY2x1ZGUgIkRldmlj
ZU9yaWVudGF0aW9uQ2xpZW50UXQuaCIKKyNpbmNsdWRlICJEZXZpY2VPcmllbnRhdGlvbkNvbnRy
b2xsZXIuaCIKICNpbmNsdWRlICJEb2N1bWVudExvYWRlci5oIgogI2luY2x1ZGUgIkRyYWdDbGll
bnRRdC5oIgogI2luY2x1ZGUgIkRyYWdDb250cm9sbGVyLmgiCkBAIC0zMjIsMTQgKzMyNCw2IEBA
IFFXZWJQYWdlUHJpdmF0ZTo6UVdlYlBhZ2VQcml2YXRlKFFXZWJQYWdlICpxcSkKICAgICBwYWdl
Q2xpZW50cy5lZGl0b3JDbGllbnQgPSBuZXcgRWRpdG9yQ2xpZW50UXQocSk7CiAgICAgcGFnZUNs
aWVudHMuZHJhZ0NsaWVudCA9IG5ldyBEcmFnQ2xpZW50UXQocSk7CiAgICAgcGFnZUNsaWVudHMu
aW5zcGVjdG9yQ2xpZW50ID0gbmV3IEluc3BlY3RvckNsaWVudFF0KHEpOwotI2lmIEVOQUJMRShE
RVZJQ0VfT1JJRU5UQVRJT04pCi0gICAgaWYgKHVzZU1vY2spCi0gICAgICAgIHBhZ2VDbGllbnRz
LmRldmljZU9yaWVudGF0aW9uQ2xpZW50ID0gbmV3IERldmljZU9yaWVudGF0aW9uQ2xpZW50TW9j
azsKLSAgICBlbHNlCi0gICAgICAgIHBhZ2VDbGllbnRzLmRldmljZU9yaWVudGF0aW9uQ2xpZW50
ID0gbmV3IERldmljZU9yaWVudGF0aW9uQ2xpZW50UXQ7Ci0KLSAgICBwYWdlQ2xpZW50cy5kZXZp
Y2VNb3Rpb25DbGllbnQgPSBuZXcgRGV2aWNlTW90aW9uQ2xpZW50UXQ7Ci0jZW5kaWYKICNpZiBF
TkFCTEUoQ0xJRU5UX0JBU0VEX0dFT0xPQ0FUSU9OKQogICAgIGlmICh1c2VNb2NrKQogICAgICAg
ICBwYWdlQ2xpZW50cy5nZW9sb2NhdGlvbkNsaWVudCA9IG5ldyBHZW9sb2NhdGlvbkNsaWVudE1v
Y2s7CkBAIC0zNDAsNiArMzM0LDEzIEBAIFFXZWJQYWdlUHJpdmF0ZTo6UVdlYlBhZ2VQcml2YXRl
KFFXZWJQYWdlICpxcSkKICAgICBwYWdlQ2xpZW50cy5ub3RpZmljYXRpb25DbGllbnQgPSBOb3Rp
ZmljYXRpb25QcmVzZW50ZXJDbGllbnRRdDo6bm90aWZpY2F0aW9uUHJlc2VudGVyKCk7CiAjZW5k
aWYKICAgICBwYWdlID0gbmV3IFBhZ2UocGFnZUNsaWVudHMpOworI2lmIEVOQUJMRShERVZJQ0Vf
T1JJRU5UQVRJT04pCisgICAgaWYgKHVzZU1vY2spCisgICAgICAgIERldmljZU9yaWVudGF0aW9u
Q29udHJvbGxlcjo6c3VwcGx5KHBhZ2UsIG5ldyBEZXZpY2VPcmllbnRhdGlvbkNsaWVudE1vY2sp
OworICAgIGVsc2UKKyAgICAgICAgRGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyOjpzdXBwbHko
cGFnZSwgbmV3IERldmljZU9yaWVudGF0aW9uQ2xpZW50UXQpOworICAgIERldmljZU1vdGlvbkNv
bnRyb2xsZXI6OnN1cHBseShwYWdlLCBuZXcgRGV2aWNlTW90aW9uQ2xpZW50UXQpOworI2VuZGlm
CiAKICAgICAvLyBCeSBkZWZhdWx0IGVhY2ggcGFnZSBpcyBwdXQgaW50byB0aGVpciBvd24gdW5p
cXVlIHBhZ2UgZ3JvdXAsIHdoaWNoIGFmZmVjdHMgcG9wdXAgd2luZG93cwogICAgIC8vIGFuZCB2
aXNpdGVkIGxpbmtzLiBQYWdlIGdyb3VwcyAocGVyIHByb2Nlc3Mgb25seSkgaXMgYSBmZWF0dXJl
IG1ha2luZyBpdCBwb3NzaWJsZSB0byB1c2UK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>126409</attachid>
            <date>2012-02-09 17:21:14 -0800</date>
            <delta_ts>2012-02-12 16:48:20 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-78085-20120210102112.patch</filename>
            <type>text/plain</type>
            <size>42082</size>
            <attacher name="Hajime Morrita">morrita</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA3MzE4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTE5MzI0OWZkMzA2OTQ1
ODFmNjY1YTIwOWFkZDcyNTI3MTk5NTIyMi4uOGMyMTM2NjcxZjJjN2U0MmZmN2Y3YzJhZTBiYmYw
OWI1NDcyN2Y4YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDgwIEBACisyMDEyLTAyLTA5ICBIYWpp
bWUgTW9ycml0YSAgPG1vcnJpdGFAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFBhZ2Ugc2hvdWxk
IGhhdmUgbGVzcyBpbnRydXNpdmUgd2F5IHRvIGFzc29jaWF0ZSBBUEkgaW1wbGVtZW50YXRpb24g
b2JqZWN0cy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTc4MDg1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
SW50cm9kdWNpbmcgUGFnZVN1cHBsZW1lbnQgaW50ZXJmYWNlIHRvIGF0dGFjaCBiZWhpbmQtdGhl
LWZsYWctaXNoCisgICAgICAgIG9iamVjdHMgdG8gUGFnZSBpbnN0YW5jZXMuCisKKyAgICAgICAg
VGhpcyBjaGFuZ2UgYWltcyB0byBpbXByb3ZlIG1vZHVsYXJpdHkgb2YgTW9kdWxlcy8gZW50cmll
cy4gV2l0aAorICAgICAgICBQYWdlU3VwcGxlbWVudCBtZWNoaW5hcnksIHdlIGNhbiBlbGltaW5h
dGUgaWZkZWYgY29uZGl0aW9uYWxzIGZyb20KKyAgICAgICAgUGFnZS5oL1BhZ2UuY3BwIGFuZCBh
cmUgYWJsZSB0byBhZGQgTW9kdWxlcy8gZW50cmllcyB3aXRob3V0CisgICAgICAgIHRvdWNoaW5n
IG5vbi1Nb2R1bGUgV2ViQ29yZSBmaWxlcy4gV2ViS2l0IEFQSSBjbGFzc2VzIGxpa2UgV2ViUGFn
ZQorICAgICAgICBjYW4gInByb3ZpZGUiIHRoZXNlIG9iamVjdHMgZHluYW1pY2FsbHkgZHVyaW5n
IHRoZSBQYWdlIHNldHVwIHBoYXNlLgorCisgICAgICAgIEluIHRoaXMgY2hhbmdlLCBEZXZpY2VN
b3Rpb25Db250cm9sbGVyIGFuZAorICAgICAgICBEZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXIg
aXMgdXBkYXRlZCB0byBhZG9wdCBQYWdlU3VwcGxlbWVudAorICAgICAgICBpbnRlZmFjZSBmb3Ig
YW4gaWxsdXN0cmF0aXZlIHB1cnBvc2UgYmVjYXVzZSB0aGV5IGFyZSBnb2luZyB0bworICAgICAg
ICBtb3ZlIGludG8gTW9kdWxlcy8gc2hvcnRseS4gT3RoZXIgUGFnZSBhc3NvY2lhdGVkIEFQSSBi
YWNraW5nCisgICAgICAgIG9iamVjdHMgYWxzbyBzaG91bGQgYmUgdHJhbnNmb3JtZWQgdG8gUGFn
ZVN1cHBsZW1lbnQgZmFtaWx5LgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIE5vIG5ldyB0ZXN0cy4gTm8gYmVoYXZpb3IgY2hhbmdlLgorCisgICAgICAg
ICogQ01ha2VMaXN0cy50eHQ6CisgICAgICAgICogR05VbWFrZWZpbGUubGlzdC5hbToKKyAgICAg
ICAgKiBUYXJnZXQucHJpOgorICAgICAgICAqIFdlYkNvcmUuZ3lwaToKKyAgICAgICAgKiBXZWJD
b3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvajoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2o6CisgICAgICAgICogZG9tL0RldmljZU1vdGlvbkNsaWVudC5oOgorICAg
ICAgICAoV2ViQ29yZSk6CisgICAgICAgICogZG9tL0RldmljZU1vdGlvbkNvbnRyb2xsZXIuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6RGV2aWNlTW90aW9uQ29udHJvbGxlcjo6c3VwcGxlbWVudE5h
bWUpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpEZXZpY2VNb3Rpb25D
b250cm9sbGVyOjppc0FjdGl2ZUF0KToKKyAgICAgICAgKFdlYkNvcmU6OnByb3ZpZGVEZXZpY2VN
b3Rpb25Ubyk6CisgICAgICAgICogZG9tL0RldmljZU1vdGlvbkNvbnRyb2xsZXIuaDoKKyAgICAg
ICAgKERldmljZU1vdGlvbkNvbnRyb2xsZXIpOgorICAgICAgICAoV2ViQ29yZTo6RGV2aWNlTW90
aW9uQ29udHJvbGxlcjo6cmVxdWlyZU9mKToKKyAgICAgICAgKiBkb20vRGV2aWNlT3JpZW50YXRp
b25DbGllbnQuaDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAqIGRvbS9EZXZpY2VPcmll
bnRhdGlvbkNvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGV2aWNlT3JpZW50YXRp
b25Db250cm9sbGVyOjpzdXBwbGVtZW50TmFtZSk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAg
ICAgKFdlYkNvcmU6OkRldmljZU9yaWVudGF0aW9uQ29udHJvbGxlcjo6aXNBY3RpdmVBdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpwcm92aWRlRGV2aWNlT3JpZW50YXRpb25Ubyk6CisgICAgICAgICog
ZG9tL0RldmljZU9yaWVudGF0aW9uQ29udHJvbGxlci5oOgorICAgICAgICAoRGV2aWNlT3JpZW50
YXRpb25Db250cm9sbGVyKToKKyAgICAgICAgKFdlYkNvcmU6OkRldmljZU9yaWVudGF0aW9uQ29u
dHJvbGxlcjo6cmVxdWlyZU9mKToKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6RG9jdW1lbnQ6OnN1c3BlbmRBY3RpdmVET01PYmplY3RzKToKKyAgICAgICAg
KFdlYkNvcmU6OkRvY3VtZW50OjpyZXN1bWVBY3RpdmVET01PYmplY3RzKToKKyAgICAgICAgKiBo
aXN0b3J5L1BhZ2VDYWNoZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpsb2dDYW5DYWNoZVBhZ2VE
ZWNpc2lvbik6CisgICAgICAgIChXZWJDb3JlOjpQYWdlQ2FjaGU6OmNhbkNhY2hlKToKKyAgICAg
ICAgKiBwYWdlL0RPTVdpbmRvdy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpET01XaW5kb3c6OmFk
ZEV2ZW50TGlzdGVuZXIpOgorICAgICAgICAoV2ViQ29yZTo6RE9NV2luZG93OjpyZW1vdmVFdmVu
dExpc3RlbmVyKToKKyAgICAgICAgKFdlYkNvcmU6OkRPTVdpbmRvdzo6cmVtb3ZlQWxsRXZlbnRM
aXN0ZW5lcnMpOgorICAgICAgICAqIHBhZ2UvUGFnZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQ
YWdlOjpQYWdlKToKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2U6On5QYWdlKToKKyAgICAgICAgKFdl
YkNvcmU6OlBhZ2U6OnByb3ZpZGVTdXBwbGVtZW50KToKKyAgICAgICAgKFdlYkNvcmUpOgorICAg
ICAgICAoV2ViQ29yZTo6UGFnZTo6cmVxdWlyZVN1cHBsZW1lbnQpOgorICAgICAgICAoV2ViQ29y
ZTo6UGFnZTo6bm90aWZ5RGVzdHJveWVkVG9TdXBwbGVtZW50cyk6CisgICAgICAgIChXZWJDb3Jl
OjpQYWdlOjpQYWdlQ2xpZW50czo6UGFnZUNsaWVudHMpOgorICAgICAgICAqIHBhZ2UvUGFnZS5o
OgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChQYWdlQ2xpZW50cyk6CisgICAgICAgIChQ
YWdlKToKKyAgICAgICAgKiBzdmcvZ3JhcGhpY3MvU1ZHSW1hZ2UuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6U1ZHSW1hZ2U6OmRhdGFDaGFuZ2VkKToKKwogMjAxMi0wMi0wOSAgT2phbiBWYWZhaSAg
PG9qYW5AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJlbW92ZSBUcmVlT3JkZXJJdGVyYXRvciBh
bmQgaXRlcmF0ZSBvdmVyIHRoZSBjaGlsZCBib3hlcyBkaXJlY3RseS4KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9D
aGFuZ2VMb2cKaW5kZXggYzRjYTRjMGVlYWJmNDI0MDc1YWY5NmQxYjA5YmE4ZjJiNGM3MjA4Yy4u
M2ZiMTNmNDU0ZTFhMzdhZDFmYzE3YTM2M2U3NWE1NzcxYjkxMDk5MyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAxMi0wMi0wOSAgSGFqaW1lIE1vcnJpdGEg
IDxtb3JyaXRhQGNocm9taXVtLm9yZz4KKworICAgICAgICBQYWdlIHNob3VsZCBoYXZlIGxlc3Mg
aW50cnVzaXZlIHdheSB0byBhc3NvY2lhdGUgQVBJIGltcGxlbWVudGF0aW9uIG9iamVjdHMuCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03ODA4NQorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogc3JjL1dlYlZp
ZXdJbXBsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OldlYlZpZXdJbXBsKToK
KwogMjAxMi0wMi0wOSAgSm9obiBCYXRlcyAgPGpiYXRlc0Bnb29nbGUuY29tPgogCiAgICAgICAg
IFtDaHJvbWl1bV0gQWRkIGNocm9taXVtLXN0eWxlIHRyYWNpbmcgc3VwcG9ydApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdl
TG9nCmluZGV4IGJmMTE3MzcyMDIyYzIzYmIxNjRiMmI0ZDk4M2ZiM2Q3ZTY5ZTU4NzEuLmE4ZjYw
ZmFiMzMzNjZiYjdmMzAzN2FiZGFhNzJjMTg1MzQzZDdkNWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvbWFjL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwxMyBAQAorMjAxMi0wMi0wOSAgSGFqaW1lIE1vcnJpdGEgIDxtb3JyaXRhQGNocm9t
aXVtLm9yZz4KKworICAgICAgICBQYWdlIHNob3VsZCBoYXZlIGxlc3MgaW50cnVzaXZlIHdheSB0
byBhc3NvY2lhdGUgQVBJIGltcGxlbWVudGF0aW9uIG9iamVjdHMuCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03ODA4NQorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2ViVmlldy9XZWJWaWV3Lm1tOgorICAg
ICAgICAoLVtXZWJWaWV3IF9jb21tb25Jbml0aWFsaXphdGlvbldpdGhGcmFtZU5hbWU6Z3JvdXBO
YW1lOl0pOgorCiAyMDEyLTAyLTA3ICBBbnR0aSBLb2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4K
IAogICAgICAgICBSRUdSRVNTSU9OIChyMTA2NjgxKTogTnVsbCBjaGVjayBtaXNzaW5nIGluIFtX
ZWJGcmFtZShXZWJJbnRlcm5hbCkgX3R5cGluZ1N0eWxlXQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9xdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L3F0L0NoYW5nZUxvZwppbmRleCAxNDhh
MjczNjk4MGUyYjI4OWVmNWIwYTI4NDU3ZTBmOWVjZmE4ZjFlLi5hYTEwNTA0YzA1NzY4ODdlYWFk
OTFiNmMyNTQ5MGJjNzc4ODYyNGVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3F0L0NoYW5n
ZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L3F0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisy
MDEyLTAyLTA5ICBIYWppbWUgTW9ycml0YSAgPG1vcnJpdGFAY2hyb21pdW0ub3JnPgorCisgICAg
ICAgIFBhZ2Ugc2hvdWxkIGhhdmUgbGVzcyBpbnRydXNpdmUgd2F5IHRvIGFzc29jaWF0ZSBBUEkg
aW1wbGVtZW50YXRpb24gb2JqZWN0cy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTc4MDg1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgKiBBcGkvcXdlYnBhZ2UuY3BwOgorICAgICAgICAoUVdlYlBhZ2VQcml2
YXRlOjpRV2ViUGFnZVByaXZhdGUpOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0R1bXBSZW5k
ZXJUcmVlU3VwcG9ydFF0LmNwcDoKKyAgICAgICAgKER1bXBSZW5kZXJUcmVlU3VwcG9ydFF0Ojpz
ZXRNb2NrRGV2aWNlT3JpZW50YXRpb24pOgorCiAyMDEyLTAyLTA5ICBTaW1vbiBIYXVzbWFubiAg
PHNpbW9uLmhhdXNtYW5uQG5va2lhLmNvbT4KIAogICAgICAgICBbUXRdIEZpeCBjb21waWxhdGlv
biB3aXRoIG5ld2VyIFF0NQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50
eHQgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAppbmRleCA0M2E3ZjIxMjEwNzBiYmU5
MGE0MDBmNDMzYzYzYmFlMjM5YmI2Njg5Li4zYjExZGYwNGQ1NTM5OWY3NjczNDhmZWE0YjE0NjQ0
MDc5NTVkNjM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dApAQCAtMTAyNCw2ICsxMDI0LDcgQEAgU0VU
KFdlYkNvcmVfU09VUkNFUwogICAgIHBhZ2UvUGFnZUdyb3VwLmNwcAogICAgIHBhZ2UvUGFnZUdy
b3VwTG9hZERlZmVycmVyLmNwcAogICAgIHBhZ2UvUGFnZVNlcmlhbGl6ZXIuY3BwCisgICAgcGFn
ZS9QYWdlU3VwcGxlbWVudC5jcHAKICAgICBwYWdlL1BhZ2VWaXNpYmlsaXR5U3RhdGUuY3BwCiAg
ICAgcGFnZS9QZXJmb3JtYW5jZS5jcHAKICAgICBwYWdlL1BlcmZvcm1hbmNlTmF2aWdhdGlvbi5j
cHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0gYi9Tb3Vy
Y2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCmluZGV4IDU4ZDllOWE0ZWEwMDE0ZjQxODA2
ZmM0ZTg0YTc4ZDMyM2U1N2RiYTAuLjkxZTQ1YTFiM2E0OWY3NDI2ZGUwZDg2ZWRkMWMxMGUwZWZm
MmZkNmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KKysr
IGIvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQpAQCAtMjczMCw2ICsyNzMwLDgg
QEAgd2ViY29yZV9zb3VyY2VzICs9IFwKIAlTb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VHcm91cExv
YWREZWZlcnJlci5oIFwKIAlTb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VTZXJpYWxpemVyLmNwcCBc
CiAJU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlU2VyaWFsaXplci5oIFwKKwlTb3VyY2UvV2ViQ29y
ZS9wYWdlL1BhZ2VTdXBwbGVtZW50LmNwcCBcCisJU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlU3Vw
cGxlbWVudC5oIFwKIAlTb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VWaXNpYmlsaXR5U3RhdGUuY3Bw
IFwKIAlTb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VWaXNpYmlsaXR5U3RhdGUuaCBcCiAJU291cmNl
L1dlYkNvcmUvcGFnZS9QZXJmb3JtYW5jZS5jcHAgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvVGFyZ2V0LnByaSBiL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkKaW5kZXggYTcyYTE4ZGFh
YzZmYjkzNjY1ZTIzZTcwYmRmMjdiNWM3MGQxM2U4Ny4uMWUxN2VkMGQ3Y2ZmYzYwNTUzY2M3Y2Rj
NjBiMGUzMDJjMzgwZGQwMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQor
KysgYi9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpCkBAIC0xMDAwLDYgKzEwMDAsNyBAQCBTT1VS
Q0VTICs9IFwKICAgICBwYWdlL1BhZ2UuY3BwIFwKICAgICBwYWdlL1BhZ2VHcm91cC5jcHAgXAog
ICAgIHBhZ2UvUGFnZUdyb3VwTG9hZERlZmVycmVyLmNwcCBcCisgICAgcGFnZS9QYWdlU3VwcGxl
bWVudC5jcHAgXAogICAgIHBhZ2UvUGFnZVZpc2liaWxpdHlTdGF0ZS5jcHAgXAogICAgIHBhZ2Uv
UGVyZm9ybWFuY2UuY3BwIFwKICAgICBwYWdlL1BlcmZvcm1hbmNlTmF2aWdhdGlvbi5jcHAgXApA
QCAtMjA2Miw2ICsyMDYzLDcgQEAgSEVBREVSUyArPSBcCiAgICAgcGFnZS9QYWdlR3JvdXAuaCBc
CiAgICAgcGFnZS9QYWdlR3JvdXBMb2FkRGVmZXJyZXIuaCBcCiAgICAgcGFnZS9QYWdlLmggXAor
ICAgIHBhZ2UvUGFnZVN1cHBsZW1lbnQuaCBcCiAgICAgcGFnZS9QYWdlVmlzaWJpbGl0eVN0YXRl
LmggXAogICAgIHBhZ2UvUHJpbnRDb250ZXh0LmggXAogICAgIHBhZ2UvU2NyZWVuLmggXApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpIGIvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS5neXBpCmluZGV4IDkwY2Q4ZTE0OGU2NjlhZWZjM2EyNWUxODhjZWU0NmJkYWU4ZjY1ZjEu
LjU1NjIwNzFkYWM2YjcyZTViOTJiN2YzZWRkNjBmMjE5MWRhYjk0ZTkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5
cGkKQEAgLTIxOSw2ICsyMTksNyBAQAogICAgICAgICAgICAgJ3BhZ2UvUGFnZS5oJywKICAgICAg
ICAgICAgICdwYWdlL1BhZ2VHcm91cC5oJywKICAgICAgICAgICAgICdwYWdlL1BhZ2VTZXJpYWxp
emVyLmgnLAorICAgICAgICAgICAgJ3BhZ2UvUGFnZVN1cHBsZW1lbnQuaCcsCiAgICAgICAgICAg
ICAncGFnZS9QYWdlVmlzaWJpbGl0eVN0YXRlLmgnLAogICAgICAgICAgICAgJ3BhZ2UvUG9zaXRp
b25DYWxsYmFjay5oJywKICAgICAgICAgICAgICdwYWdlL1Bvc2l0aW9uRXJyb3IuaCcsCkBAIC0y
NjQyLDYgKzI2NDMsNyBAQAogICAgICAgICAgICAgJ3BhZ2UvUGFnZUdyb3VwTG9hZERlZmVycmVy
LmNwcCcsCiAgICAgICAgICAgICAncGFnZS9QYWdlR3JvdXBMb2FkRGVmZXJyZXIuaCcsCiAgICAg
ICAgICAgICAncGFnZS9QYWdlU2VyaWFsaXplci5jcHAnLAorICAgICAgICAgICAgJ3BhZ2UvUGFn
ZVN1cHBsZW1lbnQuY3BwJywKICAgICAgICAgICAgICdwYWdlL1BhZ2VWaXNpYmlsaXR5U3RhdGUu
Y3BwJywKICAgICAgICAgICAgICdwYWdlL1BlcmZvcm1hbmNlLmNwcCcsCiAgICAgICAgICAgICAn
cGFnZS9QZXJmb3JtYW5jZS5oJywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
dmNwcm9qL1dlYkNvcmUudmNwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2Vi
Q29yZS52Y3Byb2oKaW5kZXggNTdhMTE3NTE2MjYxNDkwYmZiOGQ1ZGI5MjI4YjU3NThmZDRhZTEx
ZC4uNTNjODg3NzAxZjYyMWI5OTE2Y2IyMTQxMGYwNzE0ZWM5ZTQ5YTlhYiAxMDA3NTUKLS0tIGEv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKKysrIGIvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKQEAgLTI1NTU4LDYgKzI1NTU4
LDE0IEBACiAJCQkJPgogCQkJPC9GaWxlPgogCQkJPEZpbGUKKwkJCQlSZWxhdGl2ZVBhdGg9Ii4u
XHBhZ2VcUGFnZVN1cHBsZW1lbnQuY3BwIgorCQkJCT4KKwkJCTwvRmlsZT4KKwkJCTxGaWxlCisJ
CQkJUmVsYXRpdmVQYXRoPSIuLlxwYWdlXFBhZ2VTdXBwbGVtZW50LmgiCisJCQkJPgorCQkJPC9G
aWxlPgorCQkJPEZpbGUKIAkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHBhZ2VcUGFnZVZpc2liaWxpdHlT
dGF0ZS5jcHAiCiAJCQkJPgogCQkJPC9GaWxlPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDAyMDQyMjIwNDUyYTJlYzVjZTQzNTBl
YTU4ZGJjYjRhNDYwZWMzNjUuLjZjZDAyMjUwNmEwNjljZTVkNzA0Yzg4YmNjODI5ZTI3NDE5MGZi
NDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oKQEAgLTM1NDMsNiArMzU0Myw4IEBACiAJCUE3MTVFNjUzMTM0QkJCRUMwMEQ4RTcxMyAv
KiBQcm9ncmVzc1NoYWRvd0VsZW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEE3MTVFNjUxMTM0QkJCRUMwMEQ4RTcxMyAvKiBQcm9ncmVzc1NoYWRv
d0VsZW1lbnQuaCAqLzsgfTsKIAkJQTcxODc2MEUwQjJBMTIwMTAwQTE2RUNFIC8qIERyYWdBY3Rp
b25zLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNzE4
NzYwRDBCMkExMjAxMDBBMTZFQ0UgLyogRHJhZ0FjdGlvbnMuaCAqLzsgc2V0dGluZ3MgPSB7QVRU
UklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlBNzE4Nzg5MDBCMkQwNEFDMDBBMTZFQ0Ug
LyogRHJhZ0NvbnRyb2xsZXJNYWMubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBBNzE4Nzg4RjBCMkQwNEFDMDBBMTZFQ0UgLyogRHJhZ0NvbnRyb2xsZXJN
YWMubW0gKi87IH07CisJCUE3MUUwODM3MTRFM0NFQUYwMDZBNDYxOSAvKiBQYWdlU3VwcGxlbWVu
dC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNzFF
MDgzNTE0RTNDRUFGMDA2QTQ2MTkgLyogUGFnZVN1cHBsZW1lbnQuY3BwICovOyB9OworCQlBNzFF
MDgzODE0RTNDRUFGMDA2QTQ2MTkgLyogUGFnZVN1cHBsZW1lbnQuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3MUUwODM2MTRFM0NFQUYwMDZBNDYxOSAv
KiBQYWdlU3VwcGxlbWVudC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CiAJCUE3MjNGNzdCMTQ4NENBNEMwMDhDNkRCRSAvKiBQbGF0Zm9ybUV4cG9ydE1h
Y3Jvcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTcy
M0Y3N0ExNDg0Q0E0QzAwOEM2REJFIC8qIFBsYXRmb3JtRXhwb3J0TWFjcm9zLmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQTczRjk1RkUxMkM5N0JG
RTAwMzFBQUY5IC8qIFJvdW5kZWRSZWN0LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEE3M0Y5NUZDMTJDOTdCRkUwMDMxQUFGOSAvKiBSb3VuZGVkUmVj
dC5jcHAgKi87IH07CiAJCUE3M0Y5NUZGMTJDOTdCRkUwMDMxQUFGOSAvKiBSb3VuZGVkUmVjdC5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTczRjk1RkQx
MkM5N0JGRTAwMzFBQUY5IC8qIFJvdW5kZWRSZWN0LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTEwMzk4LDYgKzEwNDAwLDggQEAKIAkJQTcxODc2
MEQwQjJBMTIwMTAwQTE2RUNFIC8qIERyYWdBY3Rpb25zLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IERyYWdBY3Rpb25zLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CUE3MTg3ODhGMEIyRDA0QUMwMEExNkVDRSAvKiBEcmFnQ29udHJvbGxlck1hYy5tbSAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IERyYWdDb250cm9sbGVyTWFjLm1tOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBNzFBNzBDOTExQUZCMDIwMDA5ODlENkQgLyog
SFRNTE1ldGVyRWxlbWVudC5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gSFRNTE1ldGVyRWxl
bWVudC5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUE3MUUwODM1MTRFM0NFQUYw
MDZBNDYxOSAvKiBQYWdlU3VwcGxlbWVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBQYWdlU3VwcGxlbWVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCUE3MUUwODM2MTRFM0NFQUYwMDZBNDYxOSAvKiBQYWdlU3VwcGxlbWVudC5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQYWdlU3VwcGxlbWVudC5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQlBNzIzRjc3QTE0ODRDQTRDMDA4QzZEQkUgLyogUGxhdGZvcm1FeHBv
cnRNYWNyb3MuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUGxhdGZvcm1FeHBv
cnRNYWNyb3MuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTczRjk1RkMxMkM5N0JG
RTAwMzFBQUY5IC8qIFJvdW5kZWRSZWN0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IFJvdW5kZWRSZWN0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
QTczRjk1RkQxMkM5N0JGRTAwMzFBQUY5IC8qIFJvdW5kZWRSZWN0LmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFJvdW5kZWRSZWN0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CkBAIC0xNTE5Niw2ICsxNTIwMCw4IEBACiAJCQkJN0E2NzRCREEwRjlFQkY0RTAwNkNGMDk5
IC8qIFBhZ2VHcm91cExvYWREZWZlcnJlci5oICovLAogCQkJCTM3MUU2NUNEMTM2NjFFRUQwMEJF
RURCMCAvKiBQYWdlU2VyaWFsaXplci5jcHAgKi8sCiAJCQkJMzcxRTY1Q0IxMzY2MUVEQzAwQkVF
REIwIC8qIFBhZ2VTZXJpYWxpemVyLmggKi8sCisJCQkJQTcxRTA4MzUxNEUzQ0VBRjAwNkE0NjE5
IC8qIFBhZ2VTdXBwbGVtZW50LmNwcCAqLywKKwkJCQlBNzFFMDgzNjE0RTNDRUFGMDA2QTQ2MTkg
LyogUGFnZVN1cHBsZW1lbnQuaCAqLywKIAkJCQlGRkQ1Qjk3NzEzNUNDOTc4MDBENUU5MkEgLyog
UGFnZVZpc2liaWxpdHlTdGF0ZS5jcHAgKi8sCiAJCQkJRkZENUI5NzgxMzVDQzk3ODAwRDVFOTJB
IC8qIFBhZ2VWaXNpYmlsaXR5U3RhdGUuaCAqLywKIAkJCQk4QTg0NEQwMTExRDNDMThFMDAxNDA2
NUMgLyogUGVyZm9ybWFuY2UuY3BwICovLApAQCAtMjMyMTcsNiArMjMyMjMsNyBAQAogCQkJCUYz
ODIwODk1MTQ3RDM1RjkwMDEwQkMwNiAvKiBQYWdlUnVudGltZUFnZW50LmggaW4gSGVhZGVycyAq
LywKIAkJCQlGMzQ3NDJFNTEzNDM2MzNDMDA1MzFCQzIgLyogUGFnZVNjcmlwdERlYnVnU2VydmVy
LmggaW4gSGVhZGVycyAqLywKIAkJCQkzNzFFNjVDQzEzNjYxRURDMDBCRUVEQjAgLyogUGFnZVNl
cmlhbGl6ZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCUE3MUUwODM4MTRFM0NFQUYwMDZBNDYxOSAv
KiBQYWdlU3VwcGxlbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTEyODRBRTExMDQ0N0Q0NTAw
RUFFQjUyIC8qIFBhZ2VUcmFuc2l0aW9uRXZlbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTUxRTFF
Q0MzMEM5MUM5MDQwMERDMjU1QiAvKiBQYWdlVVJMUmVjb3JkLmggaW4gSGVhZGVycyAqLywKIAkJ
CQlGRkQ1Qjk3QjEzNUNDOTc4MDBENUU5MkEgLyogUGFnZVZpc2liaWxpdHlTdGF0ZS5oIGluIEhl
YWRlcnMgKi8sCkBAIC0yNjM0OSw2ICsyNjM1Niw3IEBACiAJCQkJRjM4MjA4OTQxNDdEMzVGOTAw
MTBCQzA2IC8qIFBhZ2VSdW50aW1lQWdlbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRjM0NzQy
RTQxMzQzNjMzQzAwNTMxQkMyIC8qIFBhZ2VTY3JpcHREZWJ1Z1NlcnZlci5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQkzNzFFNjVDRTEzNjYxRUVEMDBCRUVEQjAgLyogUGFnZVNlcmlhbGl6ZXIuY3Bw
IGluIFNvdXJjZXMgKi8sCisJCQkJQTcxRTA4MzcxNEUzQ0VBRjAwNkE0NjE5IC8qIFBhZ2VTdXBw
bGVtZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUUxMjg0QUVBMTA0NDdERUUwMEVBRUI1MiAv
KiBQYWdlVHJhbnNpdGlvbkV2ZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTUxRTFFQ0MyMEM5
MUM5MDQwMERDMjU1QiAvKiBQYWdlVVJMUmVjb3JkLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUZG
RDVCOTdBMTM1Q0M5NzgwMEQ1RTkyQSAvKiBQYWdlVmlzaWJpbGl0eVN0YXRlLmNwcCBpbiBTb3Vy
Y2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RldmljZU1vdGlvbkNsaWVu
dC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0RldmljZU1vdGlvbkNsaWVudC5oCmluZGV4IDQ1YmYx
MWFlYWIzYzJmY2MxZDRkMzA3NjhiMTE4YmY3YjUxZjU5OTIuLjM0ZTI4ZTJiMjEyNTdiOTQzZWVm
NTFlZTcxM2E5NzhjOWM3YzU2M2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9EZXZp
Y2VNb3Rpb25DbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRGV2aWNlTW90aW9uQ2xp
ZW50LmgKQEAgLTMwLDYgKzMwLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBEZXZp
Y2VNb3Rpb25Db250cm9sbGVyOwogY2xhc3MgRGV2aWNlTW90aW9uRGF0YTsKK2NsYXNzIFBhZ2U7
CiAKIGNsYXNzIERldmljZU1vdGlvbkNsaWVudCB7CiBwdWJsaWM6CkBAIC00MSw2ICs0Miw4IEBA
IHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgZGV2aWNlTW90aW9uQ29udHJvbGxlckRlc3Ryb3ll
ZCgpID0gMDsKIH07CiAKK3ZvaWQgcHJvdmlkZURldmljZU1vdGlvblRvKFBhZ2UqLCBEZXZpY2VN
b3Rpb25DbGllbnQqKTsKKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gRGV2
aWNlTW90aW9uQ2xpZW50X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9EZXZpY2VN
b3Rpb25Db250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9EZXZpY2VNb3Rpb25Db250
cm9sbGVyLmNwcAppbmRleCBkN2FjMzA1OWY3ZDFlNDlhMmZkYjE0YzE5NTRiZDNjN2RhNWRkNmFh
Li5mOWIyZDBkYzdmMjlmMjc5NTQ5MTI4ZTI4ZTBkZjUwNWI3YmM4ZmExIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9kb20vRGV2aWNlTW90aW9uQ29udHJvbGxlci5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvZG9tL0RldmljZU1vdGlvbkNvbnRyb2xsZXIuY3BwCkBAIC0xMzUsNCArMTM1LDIy
IEBAIHZvaWQgRGV2aWNlTW90aW9uQ29udHJvbGxlcjo6ZGlkQ2hhbmdlRGV2aWNlTW90aW9uKERl
dmljZU1vdGlvbkRhdGEqIGRldmljZU1vdGlvCiAgICAgICAgIGxpc3RlbmVyc1ZlY3RvcltpXS0+
ZGlzcGF0Y2hFdmVudChldmVudCk7CiB9CiAKK2NvbnN0IEF0b21pY1N0cmluZyYgRGV2aWNlTW90
aW9uQ29udHJvbGxlcjo6c3VwcGxlbWVudE5hbWUoKQoreworICAgIERFRklORV9TVEFUSUNfTE9D
QUwoQXRvbWljU3RyaW5nLCBuYW1lLCAoImRldmljZU1vdGlvbiIpKTsKKyAgICByZXR1cm4gbmFt
ZTsKK30KKworYm9vbCBEZXZpY2VNb3Rpb25Db250cm9sbGVyOjppc0FjdGl2ZUF0KFBhZ2UqIHBh
Z2UpCit7CisgICAgaWYgKERldmljZU1vdGlvbkNvbnRyb2xsZXIqIHNlbGYgPSBEZXZpY2VNb3Rp
b25Db250cm9sbGVyOjpyZXF1aXJlT2YocGFnZSkpCisgICAgICAgIHJldHVybiBzZWxmLT5pc0Fj
dGl2ZSgpOworICAgIHJldHVybiBmYWxzZTsKK30KKwordm9pZCBwcm92aWRlRGV2aWNlTW90aW9u
VG8oUGFnZSogcGFnZSwgRGV2aWNlTW90aW9uQ2xpZW50KiBjbGllbnQpCit7CisgICAgUGFnZVN1
cHBsZW1lbnQ6OnByb3ZpZGVUbyhwYWdlLCBEZXZpY2VNb3Rpb25Db250cm9sbGVyOjpzdXBwbGVt
ZW50TmFtZSgpLCBEZXZpY2VNb3Rpb25Db250cm9sbGVyOjpjcmVhdGUoY2xpZW50KSk7Cit9CisK
IH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9E
ZXZpY2VNb3Rpb25Db250cm9sbGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRGV2aWNlTW90aW9u
Q29udHJvbGxlci5oCmluZGV4IGJiOGNjYTk2MTI0NjM1ZjA3ZjMwYzRlNDJlYzNiMTlhZDY1NjBk
YzYuLmQzMjA1OWZiZjJlZDBhMmFlZTNiNzAxM2QwZTA0MjlkOTBjNTI5ZjQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9EZXZpY2VNb3Rpb25Db250cm9sbGVyLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvZG9tL0RldmljZU1vdGlvbkNvbnRyb2xsZXIuaApAQCAtMjcsNiArMjcsNyBAQAog
I2RlZmluZSBEZXZpY2VNb3Rpb25Db250cm9sbGVyX2gKIAogI2luY2x1ZGUgIkRPTVdpbmRvdy5o
IgorI2luY2x1ZGUgIlBhZ2VTdXBwbGVtZW50LmgiCiAjaW5jbHVkZSAiVGltZXIuaCIKICNpbmNs
dWRlIDx3dGYvSGFzaENvdW50ZWRTZXQuaD4KIApAQCAtMzUsNyArMzYsNyBAQCBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiBjbGFzcyBEZXZpY2VNb3Rpb25EYXRhOwogY2xhc3MgRGV2aWNlTW90aW9uQ2xp
ZW50OwogCi1jbGFzcyBEZXZpY2VNb3Rpb25Db250cm9sbGVyIHsKK2NsYXNzIERldmljZU1vdGlv
bkNvbnRyb2xsZXIgOiBwdWJsaWMgUGFnZVN1cHBsZW1lbnQgewogcHVibGljOgogICAgIH5EZXZp
Y2VNb3Rpb25Db250cm9sbGVyKCk7CiAKQEAgLTUyLDYgKzUzLDExIEBAIHB1YmxpYzoKIAogICAg
IGJvb2wgaXNBY3RpdmUoKSB7IHJldHVybiAhbV9saXN0ZW5lcnMuaXNFbXB0eSgpOyB9CiAKKyAg
ICBzdGF0aWMgY29uc3QgQXRvbWljU3RyaW5nJiBzdXBwbGVtZW50TmFtZSgpOworICAgIHN0YXRp
YyBEZXZpY2VNb3Rpb25Db250cm9sbGVyKiByZXF1aXJlT2YoRnJhbWUqIGZyYW1lKSB7IHJldHVy
biBzdGF0aWNfY2FzdDxEZXZpY2VNb3Rpb25Db250cm9sbGVyKj4oUGFnZVN1cHBsZW1lbnQ6OnJl
cXVpcmVPZihmcmFtZSwgc3VwcGxlbWVudE5hbWUoKSkpOyB9CisgICAgc3RhdGljIERldmljZU1v
dGlvbkNvbnRyb2xsZXIqIHJlcXVpcmVPZihQYWdlKiBwYWdlKSB7IHJldHVybiBzdGF0aWNfY2Fz
dDxEZXZpY2VNb3Rpb25Db250cm9sbGVyKj4oUGFnZVN1cHBsZW1lbnQ6OnJlcXVpcmVPZihwYWdl
LCBzdXBwbGVtZW50TmFtZSgpKSk7IH0KKyAgICBzdGF0aWMgYm9vbCBpc0FjdGl2ZUF0KFBhZ2Uq
KTsKKwogcHJpdmF0ZToKICAgICBEZXZpY2VNb3Rpb25Db250cm9sbGVyKERldmljZU1vdGlvbkNs
aWVudCopOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRGV2aWNlT3JpZW50YXRp
b25DbGllbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9EZXZpY2VPcmllbnRhdGlvbkNsaWVudC5o
CmluZGV4IDM0N2MzYjM5OWExZGExMWEzZDI3NDIwOGI3OGZiZGZjNGQ3NDQxNzAuLjJjMTZiMGNk
OGJjN2E3ODUwOTE2ZjhiZDAxZDY1OGY1ZmYwNjljNGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9EZXZpY2VPcmllbnRhdGlvbkNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Rv
bS9EZXZpY2VPcmllbnRhdGlvbkNsaWVudC5oCkBAIC0zMCw2ICszMCw3IEBAIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAogY2xhc3MgRGV2aWNlT3JpZW50YXRpb247CiBjbGFzcyBEZXZpY2VPcmllbnRh
dGlvbkNvbnRyb2xsZXI7CitjbGFzcyBQYWdlOwogCiBjbGFzcyBEZXZpY2VPcmllbnRhdGlvbkNs
aWVudCB7CiBwdWJsaWM6CkBAIC00Miw2ICs0Myw4IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZv
aWQgZGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyRGVzdHJveWVkKCkgPSAwOwogfTsKIAordm9p
ZCBwcm92aWRlRGV2aWNlT3JpZW50YXRpb25UbyhQYWdlKiwgRGV2aWNlT3JpZW50YXRpb25DbGll
bnQqKTsKKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gRGV2aWNlT3JpZW50
YXRpb25DbGllbnRfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RldmljZU9yaWVu
dGF0aW9uQ29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRGV2aWNlT3JpZW50YXRp
b25Db250cm9sbGVyLmNwcAppbmRleCA2ODY4M2ZkMDUwNjNmYzhjYjg1NmMzZDMwYjJlMmU0ZWE5
M2M0MmQ4Li4zMWRkY2M2MWZhNjEyODg0MzYxNzBiNTQyNzE3MjhmMWEyYzY1NjQzIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyLmNwcApA
QCAtMTM3LDQgKzEzNywyMiBAQCB2b2lkIERldmljZU9yaWVudGF0aW9uQ29udHJvbGxlcjo6ZGlk
Q2hhbmdlRGV2aWNlT3JpZW50YXRpb24oRGV2aWNlT3JpZW50YXRpb24qCiAgICAgICAgIGxpc3Rl
bmVyc1ZlY3RvcltpXS0+ZGlzcGF0Y2hFdmVudChldmVudCk7CiB9CiAKK2NvbnN0IEF0b21pY1N0
cmluZyYgRGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyOjpzdXBwbGVtZW50TmFtZSgpCit7Cisg
ICAgREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIG5hbWUsICgiZGV2aWNlT3JpZW50
YXRpb24iKSk7CisgICAgcmV0dXJuIG5hbWU7Cit9CisKK2Jvb2wgRGV2aWNlT3JpZW50YXRpb25D
b250cm9sbGVyOjppc0FjdGl2ZUF0KFBhZ2UqIHBhZ2UpCit7CisgICAgaWYgKERldmljZU9yaWVu
dGF0aW9uQ29udHJvbGxlciogc2VsZiA9IERldmljZU9yaWVudGF0aW9uQ29udHJvbGxlcjo6cmVx
dWlyZU9mKHBhZ2UpKQorICAgICAgICByZXR1cm4gc2VsZi0+aXNBY3RpdmUoKTsKKyAgICByZXR1
cm4gZmFsc2U7Cit9CisKK3ZvaWQgcHJvdmlkZURldmljZU9yaWVudGF0aW9uVG8oUGFnZSogcGFn
ZSwgRGV2aWNlT3JpZW50YXRpb25DbGllbnQqIGNsaWVudCkKK3sKKyAgICBQYWdlU3VwcGxlbWVu
dDo6cHJvdmlkZVRvKHBhZ2UsIERldmljZU9yaWVudGF0aW9uQ29udHJvbGxlcjo6c3VwcGxlbWVu
dE5hbWUoKSwgRGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyOjpjcmVhdGUocGFnZSwgY2xpZW50
KSk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9EZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2Rv
bS9EZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXIuaAppbmRleCAxYjg3OTk4ZDk1N2IzNzc1ZmRj
ZTVlZmEyOTkwMDY2NDM4MDM2MWY1Li4yYjFkNDFiZWRiYmZlZmIxMTA2YzdmYmVhNWM4ZGI4Nzg4
MDU4MWJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRGV2aWNlT3JpZW50YXRpb25D
b250cm9sbGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RldmljZU9yaWVudGF0aW9uQ29u
dHJvbGxlci5oCkBAIC0yNyw2ICsyNyw3IEBACiAjZGVmaW5lIERldmljZU9yaWVudGF0aW9uQ29u
dHJvbGxlcl9oCiAKICNpbmNsdWRlICJET01XaW5kb3cuaCIKKyNpbmNsdWRlICJQYWdlU3VwcGxl
bWVudC5oIgogI2luY2x1ZGUgIlRpbWVyLmgiCiAKICNpbmNsdWRlIDx3dGYvSGFzaENvdW50ZWRT
ZXQuaD4KQEAgLTM3LDcgKzM4LDcgQEAgY2xhc3MgRGV2aWNlT3JpZW50YXRpb247CiBjbGFzcyBE
ZXZpY2VPcmllbnRhdGlvbkNsaWVudDsKIGNsYXNzIFBhZ2U7CiAKLWNsYXNzIERldmljZU9yaWVu
dGF0aW9uQ29udHJvbGxlciB7CitjbGFzcyBEZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXIgOiBw
dWJsaWMgUGFnZVN1cHBsZW1lbnQgewogcHVibGljOgogICAgIH5EZXZpY2VPcmllbnRhdGlvbkNv
bnRyb2xsZXIoKTsKIApAQCAtNTYsNiArNTcsMTEgQEAgcHVibGljOgogCiAgICAgRGV2aWNlT3Jp
ZW50YXRpb25DbGllbnQqIGNsaWVudCgpIGNvbnN0IHsgcmV0dXJuIG1fY2xpZW50OyB9CiAKKyAg
ICBzdGF0aWMgY29uc3QgQXRvbWljU3RyaW5nJiBzdXBwbGVtZW50TmFtZSgpOworICAgIHN0YXRp
YyBEZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXIqIHJlcXVpcmVPZihGcmFtZSogZnJhbWUpIHsg
cmV0dXJuIHN0YXRpY19jYXN0PERldmljZU9yaWVudGF0aW9uQ29udHJvbGxlcio+KFBhZ2VTdXBw
bGVtZW50OjpyZXF1aXJlT2YoZnJhbWUsIHN1cHBsZW1lbnROYW1lKCkpKTsgfQorICAgIHN0YXRp
YyBEZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXIqIHJlcXVpcmVPZihQYWdlKiBwYWdlKSB7IHJl
dHVybiBzdGF0aWNfY2FzdDxEZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXIqPihQYWdlU3VwcGxl
bWVudDo6cmVxdWlyZU9mKHBhZ2UsIHN1cHBsZW1lbnROYW1lKCkpKTsgfQorICAgIHN0YXRpYyBi
b29sIGlzQWN0aXZlQXQoUGFnZSopOworCiBwcml2YXRlOgogICAgIERldmljZU9yaWVudGF0aW9u
Q29udHJvbGxlcihQYWdlKiwgRGV2aWNlT3JpZW50YXRpb25DbGllbnQqKTsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9E
b2N1bWVudC5jcHAKaW5kZXggN2U5MjkzNjcyOTkxMWZkNWNmMThlMTJjODRkYTRjNTFmZDllZDAx
MC4uNzg4YmMyOWY2ODdmZGVlZjk0YzQ4NTM5MzVlZGYxZTY3YmNhZmY1MSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20v
RG9jdW1lbnQuY3BwCkBAIC0xOTQ0LDEwICsxOTQ0LDExIEBAIHZvaWQgRG9jdW1lbnQ6OnN1c3Bl
bmRBY3RpdmVET01PYmplY3RzKEFjdGl2ZURPTU9iamVjdDo6UmVhc29uRm9yU3VzcGVuc2lvbiB3
aHkpCiAgICAgaWYgKCFwYWdlKCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIGlmIChwYWdlKCkt
PmRldmljZU1vdGlvbkNvbnRyb2xsZXIoKSkKLSAgICAgICAgcGFnZSgpLT5kZXZpY2VNb3Rpb25D
b250cm9sbGVyKCktPnN1c3BlbmRFdmVudHNGb3JBbGxMaXN0ZW5lcnMoZG9tV2luZG93KCkpOwot
ICAgIGlmIChwYWdlKCktPmRldmljZU9yaWVudGF0aW9uQ29udHJvbGxlcigpKQotICAgICAgICBw
YWdlKCktPmRldmljZU9yaWVudGF0aW9uQ29udHJvbGxlcigpLT5zdXNwZW5kRXZlbnRzRm9yQWxs
TGlzdGVuZXJzKGRvbVdpbmRvdygpKTsKKyAgICBpZiAoRGV2aWNlTW90aW9uQ29udHJvbGxlciog
Y29udHJvbGxlciA9IERldmljZU1vdGlvbkNvbnRyb2xsZXI6OnJlcXVpcmVPZihwYWdlKCkpKQor
ICAgICAgICBjb250cm9sbGVyLT5zdXNwZW5kRXZlbnRzRm9yQWxsTGlzdGVuZXJzKGRvbVdpbmRv
dygpKTsKKyAgICBpZiAoRGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyKiBjb250cm9sbGVyID0g
RGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyOjpyZXF1aXJlT2YocGFnZSgpKSkKKyAgICAgICAg
Y29udHJvbGxlci0+c3VzcGVuZEV2ZW50c0ZvckFsbExpc3RlbmVycyhkb21XaW5kb3coKSk7CisK
ICNlbmRpZgogfQogCkBAIC0xOTU5LDEwICsxOTYwLDEwIEBAIHZvaWQgRG9jdW1lbnQ6OnJlc3Vt
ZUFjdGl2ZURPTU9iamVjdHMoKQogICAgIGlmICghcGFnZSgpKQogICAgICAgICByZXR1cm47CiAK
LSAgICBpZiAocGFnZSgpLT5kZXZpY2VNb3Rpb25Db250cm9sbGVyKCkpCi0gICAgICAgIHBhZ2Uo
KS0+ZGV2aWNlTW90aW9uQ29udHJvbGxlcigpLT5yZXN1bWVFdmVudHNGb3JBbGxMaXN0ZW5lcnMo
ZG9tV2luZG93KCkpOwotICAgIGlmIChwYWdlKCktPmRldmljZU9yaWVudGF0aW9uQ29udHJvbGxl
cigpKQotICAgICAgICBwYWdlKCktPmRldmljZU9yaWVudGF0aW9uQ29udHJvbGxlcigpLT5yZXN1
bWVFdmVudHNGb3JBbGxMaXN0ZW5lcnMoZG9tV2luZG93KCkpOworICAgIGlmIChEZXZpY2VNb3Rp
b25Db250cm9sbGVyKiBjb250cm9sbGVyID0gRGV2aWNlTW90aW9uQ29udHJvbGxlcjo6cmVxdWly
ZU9mKHBhZ2UoKSkpCisgICAgICAgIGNvbnRyb2xsZXItPnJlc3VtZUV2ZW50c0ZvckFsbExpc3Rl
bmVycyhkb21XaW5kb3coKSk7CisgICAgaWYgKERldmljZU9yaWVudGF0aW9uQ29udHJvbGxlciog
Y29udHJvbGxlciA9IERldmljZU9yaWVudGF0aW9uQ29udHJvbGxlcjo6cmVxdWlyZU9mKHBhZ2Uo
KSkpCisgICAgICAgIGNvbnRyb2xsZXItPnJlc3VtZUV2ZW50c0ZvckFsbExpc3RlbmVycyhkb21X
aW5kb3coKSk7CiAjZW5kaWYKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaGlzdG9y
eS9QYWdlQ2FjaGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaGlzdG9yeS9QYWdlQ2FjaGUuY3BwCmlu
ZGV4IDJhMDgzNjE5YzlmMGRjYjIwYTU2ZmVkNzVkMzM3N2QzNjc3M2UzNjIuLmU5NjRjODgyMjI4
YjgwNmMyZWZjNzRmZWE4NTMwZjc2MDM0YmNmYmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2hpc3RvcnkvUGFnZUNhY2hlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9oaXN0b3J5L1BhZ2VD
YWNoZS5jcHAKQEAgLTE5OSwxMSArMTk5LDExIEBAIHN0YXRpYyB2b2lkIGxvZ0NhbkNhY2hlUGFn
ZURlY2lzaW9uKFBhZ2UqIHBhZ2UpCiAgICAgICAgIGNhbm5vdENhY2hlID0gdHJ1ZTsKICAgICB9
CiAjaWYgRU5BQkxFKERFVklDRV9PUklFTlRBVElPTikKLSAgICBpZiAocGFnZS0+ZGV2aWNlTW90
aW9uQ29udHJvbGxlcigpICYmIHBhZ2UtPmRldmljZU1vdGlvbkNvbnRyb2xsZXIoKS0+aXNBY3Rp
dmUoKSkgeworICAgIGlmIChEZXZpY2VNb3Rpb25Db250cm9sbGVyOjppc0FjdGl2ZUF0KHBhZ2Up
KSB7CiAgICAgICAgIFBDTE9HKCIgICAtUGFnZSBpcyB1c2luZyBEZXZpY2VNb3Rpb24iKTsKICAg
ICAgICAgY2Fubm90Q2FjaGUgPSB0cnVlOwogICAgIH0KLSAgICBpZiAocGFnZS0+ZGV2aWNlT3Jp
ZW50YXRpb25Db250cm9sbGVyKCkgJiYgcGFnZS0+ZGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVy
KCktPmlzQWN0aXZlKCkpIHsKKyAgICBpZiAoRGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyOjpp
c0FjdGl2ZUF0KHBhZ2UpKSB7CiAgICAgICAgIFBDTE9HKCIgICAtUGFnZSBpcyB1c2luZyBEZXZp
Y2VPcmllbnRhdGlvbiIpOwogICAgICAgICBjYW5ub3RDYWNoZSA9IHRydWU7CiAgICAgfQpAQCAt
Mjk2LDggKzI5Niw4IEBAIGJvb2wgUGFnZUNhY2hlOjpjYW5DYWNoZShQYWdlKiBwYWdlKQogICAg
ICAgICAmJiBwYWdlLT5iYWNrRm9yd2FyZCgpLT5pc0FjdGl2ZSgpCiAgICAgICAgICYmIHBhZ2Ut
PnNldHRpbmdzKCktPnVzZXNQYWdlQ2FjaGUoKQogI2lmIEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJ
T04pCi0gICAgICAgICYmICEocGFnZS0+ZGV2aWNlTW90aW9uQ29udHJvbGxlcigpICYmIHBhZ2Ut
PmRldmljZU1vdGlvbkNvbnRyb2xsZXIoKS0+aXNBY3RpdmUoKSkKLSAgICAgICAgJiYgIShwYWdl
LT5kZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXIoKSAmJiBwYWdlLT5kZXZpY2VPcmllbnRhdGlv
bkNvbnRyb2xsZXIoKS0+aXNBY3RpdmUoKSkKKyAgICAgICAgJiYgIURldmljZU1vdGlvbkNvbnRy
b2xsZXI6OmlzQWN0aXZlQXQocGFnZSkKKyAgICAgICAgJiYgIURldmljZU9yaWVudGF0aW9uQ29u
dHJvbGxlcjo6aXNBY3RpdmVBdChwYWdlKQogI2VuZGlmCiAgICAgICAgICYmIGxvYWRUeXBlICE9
IEZyYW1lTG9hZFR5cGVSZWxvYWQKICAgICAgICAgJiYgbG9hZFR5cGUgIT0gRnJhbWVMb2FkVHlw
ZVJlbG9hZEZyb21PcmlnaW4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2lu
ZG93LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNwcAppbmRleCAyNTk3Zjg2
NGY3MWQwNWFiNGFkZGFlMTc0MzZmMGMxNGQ0MDNjZGE0Li4yYmQwYjA3NThhMjYzMTU4OWIyMDM1
ZDk5ZWEwMmZkNDFhMTQxODA0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdp
bmRvdy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwCkBAIC0xNTYx
LDEwICsxNTYxLDEzIEBAIGJvb2wgRE9NV2luZG93OjphZGRFdmVudExpc3RlbmVyKGNvbnN0IEF0
b21pY1N0cmluZyYgZXZlbnRUeXBlLCBQYXNzUmVmUHRyPEV2ZW50CiAgICAgZWxzZSBpZiAoZXZl
bnRUeXBlID09IGV2ZW50TmFtZXMoKS5iZWZvcmV1bmxvYWRFdmVudCAmJiBhbGxvd3NCZWZvcmVV
bmxvYWRMaXN0ZW5lcnModGhpcykpCiAgICAgICAgIGFkZEJlZm9yZVVubG9hZEV2ZW50TGlzdGVu
ZXIodGhpcyk7CiAjaWYgRU5BQkxFKERFVklDRV9PUklFTlRBVElPTikKLSAgICBlbHNlIGlmIChl
dmVudFR5cGUgPT0gZXZlbnROYW1lcygpLmRldmljZW1vdGlvbkV2ZW50ICYmIGZyYW1lKCkgJiYg
ZnJhbWUoKS0+cGFnZSgpICYmIGZyYW1lKCktPnBhZ2UoKS0+ZGV2aWNlTW90aW9uQ29udHJvbGxl
cigpKQotICAgICAgICBmcmFtZSgpLT5wYWdlKCktPmRldmljZU1vdGlvbkNvbnRyb2xsZXIoKS0+
YWRkTGlzdGVuZXIodGhpcyk7Ci0gICAgZWxzZSBpZiAoZXZlbnRUeXBlID09IGV2ZW50TmFtZXMo
KS5kZXZpY2VvcmllbnRhdGlvbkV2ZW50ICYmIGZyYW1lKCkgJiYgZnJhbWUoKS0+cGFnZSgpICYm
IGZyYW1lKCktPnBhZ2UoKS0+ZGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyKCkpCi0gICAgICAg
IGZyYW1lKCktPnBhZ2UoKS0+ZGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyKCktPmFkZExpc3Rl
bmVyKHRoaXMpOworICAgIGVsc2UgaWYgKGV2ZW50VHlwZSA9PSBldmVudE5hbWVzKCkuZGV2aWNl
bW90aW9uRXZlbnQpIHsKKyAgICAgICAgaWYgKERldmljZU1vdGlvbkNvbnRyb2xsZXIqIGNvbnRy
b2xsZXIgPSBEZXZpY2VNb3Rpb25Db250cm9sbGVyOjpyZXF1aXJlT2YoZnJhbWUoKSkpCisgICAg
ICAgICAgICBjb250cm9sbGVyLT5hZGRMaXN0ZW5lcih0aGlzKTsKKyAgICB9IGVsc2UgaWYgKGV2
ZW50VHlwZSA9PSBldmVudE5hbWVzKCkuZGV2aWNlb3JpZW50YXRpb25FdmVudCkgeworICAgICAg
ICBpZiAoRGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyKiBjb250cm9sbGVyID0gRGV2aWNlT3Jp
ZW50YXRpb25Db250cm9sbGVyOjpyZXF1aXJlT2YoZnJhbWUoKSkpCisgICAgICAgICAgICBjb250
cm9sbGVyLT5hZGRMaXN0ZW5lcih0aGlzKTsKKyAgICB9CiAjZW5kaWYKIAogICAgIHJldHVybiB0
cnVlOwpAQCAtMTU4NSwxMCArMTU4OCwxMyBAQCBib29sIERPTVdpbmRvdzo6cmVtb3ZlRXZlbnRM
aXN0ZW5lcihjb25zdCBBdG9taWNTdHJpbmcmIGV2ZW50VHlwZSwgRXZlbnRMaXN0ZW5lcgogICAg
IGVsc2UgaWYgKGV2ZW50VHlwZSA9PSBldmVudE5hbWVzKCkuYmVmb3JldW5sb2FkRXZlbnQgJiYg
YWxsb3dzQmVmb3JlVW5sb2FkTGlzdGVuZXJzKHRoaXMpKQogICAgICAgICByZW1vdmVCZWZvcmVV
bmxvYWRFdmVudExpc3RlbmVyKHRoaXMpOwogI2lmIEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJT04p
Ci0gICAgZWxzZSBpZiAoZXZlbnRUeXBlID09IGV2ZW50TmFtZXMoKS5kZXZpY2Vtb3Rpb25FdmVu
dCAmJiBmcmFtZSgpICYmIGZyYW1lKCktPnBhZ2UoKSAmJiBmcmFtZSgpLT5wYWdlKCktPmRldmlj
ZU1vdGlvbkNvbnRyb2xsZXIoKSkKLSAgICAgICAgZnJhbWUoKS0+cGFnZSgpLT5kZXZpY2VNb3Rp
b25Db250cm9sbGVyKCktPnJlbW92ZUxpc3RlbmVyKHRoaXMpOwotICAgIGVsc2UgaWYgKGV2ZW50
VHlwZSA9PSBldmVudE5hbWVzKCkuZGV2aWNlb3JpZW50YXRpb25FdmVudCAmJiBmcmFtZSgpICYm
IGZyYW1lKCktPnBhZ2UoKSAmJiBmcmFtZSgpLT5wYWdlKCktPmRldmljZU9yaWVudGF0aW9uQ29u
dHJvbGxlcigpKQotICAgICAgICBmcmFtZSgpLT5wYWdlKCktPmRldmljZU9yaWVudGF0aW9uQ29u
dHJvbGxlcigpLT5yZW1vdmVMaXN0ZW5lcih0aGlzKTsKKyAgICBlbHNlIGlmIChldmVudFR5cGUg
PT0gZXZlbnROYW1lcygpLmRldmljZW1vdGlvbkV2ZW50KSB7CisgICAgICAgIGlmIChEZXZpY2VN
b3Rpb25Db250cm9sbGVyKiBjb250cm9sbGVyID0gRGV2aWNlTW90aW9uQ29udHJvbGxlcjo6cmVx
dWlyZU9mKGZyYW1lKCkpKQorICAgICAgICAgICAgY29udHJvbGxlci0+cmVtb3ZlTGlzdGVuZXIo
dGhpcyk7CisgICAgfSBlbHNlIGlmIChldmVudFR5cGUgPT0gZXZlbnROYW1lcygpLmRldmljZW9y
aWVudGF0aW9uRXZlbnQpIHsKKyAgICAgICAgaWYgKERldmljZU9yaWVudGF0aW9uQ29udHJvbGxl
ciogY29udHJvbGxlciA9IERldmljZU9yaWVudGF0aW9uQ29udHJvbGxlcjo6cmVxdWlyZU9mKGZy
YW1lKCkpKQorICAgICAgICAgICAgY29udHJvbGxlci0+cmVtb3ZlTGlzdGVuZXIodGhpcyk7Cisg
ICAgfQogI2VuZGlmCiAKICAgICByZXR1cm4gdHJ1ZTsKQEAgLTE2NDEsMTAgKzE2NDcsMTAgQEAg
dm9pZCBET01XaW5kb3c6OnJlbW92ZUFsbEV2ZW50TGlzdGVuZXJzKCkKICAgICBFdmVudFRhcmdl
dDo6cmVtb3ZlQWxsRXZlbnRMaXN0ZW5lcnMoKTsKIAogI2lmIEVOQUJMRShERVZJQ0VfT1JJRU5U
QVRJT04pCi0gICAgaWYgKGZyYW1lKCkgJiYgZnJhbWUoKS0+cGFnZSgpICYmIGZyYW1lKCktPnBh
Z2UoKS0+ZGV2aWNlTW90aW9uQ29udHJvbGxlcigpKQotICAgICAgICBmcmFtZSgpLT5wYWdlKCkt
PmRldmljZU1vdGlvbkNvbnRyb2xsZXIoKS0+cmVtb3ZlQWxsTGlzdGVuZXJzKHRoaXMpOwotICAg
IGlmIChmcmFtZSgpICYmIGZyYW1lKCktPnBhZ2UoKSAmJiBmcmFtZSgpLT5wYWdlKCktPmRldmlj
ZU9yaWVudGF0aW9uQ29udHJvbGxlcigpKQotICAgICAgICBmcmFtZSgpLT5wYWdlKCktPmRldmlj
ZU9yaWVudGF0aW9uQ29udHJvbGxlcigpLT5yZW1vdmVBbGxMaXN0ZW5lcnModGhpcyk7CisgICAg
aWYgKERldmljZU1vdGlvbkNvbnRyb2xsZXIqIGNvbnRyb2xsZXIgPSBEZXZpY2VNb3Rpb25Db250
cm9sbGVyOjpyZXF1aXJlT2YoZnJhbWUoKSkpCisgICAgICAgIGNvbnRyb2xsZXItPmFkZExpc3Rl
bmVyKHRoaXMpOworICAgIGlmIChEZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXIqIGNvbnRyb2xs
ZXIgPSBEZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXI6OnJlcXVpcmVPZihmcmFtZSgpKSkKKyAg
ICAgICAgY29udHJvbGxlci0+YWRkTGlzdGVuZXIodGhpcyk7CiAjZW5kaWYKIAogICAgIHJlbW92
ZUFsbFVubG9hZEV2ZW50TGlzdGVuZXJzKHRoaXMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGFnZS9QYWdlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAKaW5kZXggNDky
ZTk0OWVlMWUzM2NjMGU5NGE0OTM4NjlhMDY4YmQ2MWY3OWRiMi4uYzhhZDE2MDMxODlmYjg2MzJj
MDcwMTcxYzVjMWEyNTk1Yzg0ODA4ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9Q
YWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCkBAIC0yOSw4ICsyOSw2
IEBACiAjaW5jbHVkZSAiQ29udGV4dE1lbnVDbGllbnQuaCIKICNpbmNsdWRlICJDb250ZXh0TWVu
dUNvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJET01XaW5kb3cuaCIKLSNpbmNsdWRlICJEZXZpY2VN
b3Rpb25Db250cm9sbGVyLmgiCi0jaW5jbHVkZSAiRGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVy
LmgiCiAjaW5jbHVkZSAiRG9jdW1lbnRNYXJrZXJDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAiRHJh
Z0NvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJFZGl0b3JDbGllbnQuaCIKQEAgLTE0MCwxMCArMTM4
LDYgQEAgUGFnZTo6UGFnZShQYWdlQ2xpZW50cyYgcGFnZUNsaWVudHMpCiAjaWYgRU5BQkxFKENM
SUVOVF9CQVNFRF9HRU9MT0NBVElPTikKICAgICAsIG1fZ2VvbG9jYXRpb25Db250cm9sbGVyKEdl
b2xvY2F0aW9uQ29udHJvbGxlcjo6Y3JlYXRlKHRoaXMsIHBhZ2VDbGllbnRzLmdlb2xvY2F0aW9u
Q2xpZW50KSkKICNlbmRpZgotI2lmIEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJT04pCi0gICAgLCBt
X2RldmljZU1vdGlvbkNvbnRyb2xsZXIoUnVudGltZUVuYWJsZWRGZWF0dXJlczo6ZGV2aWNlTW90
aW9uRW5hYmxlZCgpID8gRGV2aWNlTW90aW9uQ29udHJvbGxlcjo6Y3JlYXRlKHBhZ2VDbGllbnRz
LmRldmljZU1vdGlvbkNsaWVudCkgOiBudWxscHRyKQotICAgICwgbV9kZXZpY2VPcmllbnRhdGlv
bkNvbnRyb2xsZXIoUnVudGltZUVuYWJsZWRGZWF0dXJlczo6ZGV2aWNlT3JpZW50YXRpb25FbmFi
bGVkKCkgPyBEZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXI6OmNyZWF0ZSh0aGlzLCBwYWdlQ2xp
ZW50cy5kZXZpY2VPcmllbnRhdGlvbkNsaWVudCkgOiBudWxscHRyKQotI2VuZGlmCiAjaWYgRU5B
QkxFKE5PVElGSUNBVElPTlMpCiAgICAgLCBtX25vdGlmaWNhdGlvbkNvbnRyb2xsZXIoTm90aWZp
Y2F0aW9uQ29udHJvbGxlcjo6Y3JlYXRlKHRoaXMsIHBhZ2VDbGllbnRzLm5vdGlmaWNhdGlvbkNs
aWVudCkpCiAjZW5kaWYKQEAgLTIzMiw2ICsyMjYsOCBAQCBQYWdlOjp+UGFnZSgpCiAjaWZuZGVm
IE5ERUJVRwogICAgIHBhZ2VDb3VudGVyLmRlY3JlbWVudCgpOwogI2VuZGlmCisKKyAgICBub3Rp
ZnlEZXN0cm95ZWRUb1N1cHBsZW1lbnRzKCk7CiB9CiAKIFZpZXdwb3J0QXJndW1lbnRzIFBhZ2U6
OnZpZXdwb3J0QXJndW1lbnRzKCkgY29uc3QKQEAgLTEwOTAsNiArMTA4NiwyNSBAQCB2b2lkIFBh
Z2U6OmFkZFJlbGV2YW50UmVwYWludGVkT2JqZWN0KFJlbmRlck9iamVjdCogb2JqZWN0LCBjb25z
dCBJbnRSZWN0JiBvYmplYwogICAgIH0KIH0KIAordm9pZCBQYWdlOjpwcm92aWRlU3VwcGxlbWVu
dChjb25zdCBBdG9taWNTdHJpbmcmIG5hbWUsIFBhc3NPd25QdHI8UGFnZVN1cHBsZW1lbnQ+IHN1
cHBsZW1lbnQpCit7CisgICAgQVNTRVJUKCFtX3N1cHBsaW1lbnRzLmdldChuYW1lLmltcGwoKSkp
OworICAgIG1fc3VwcGxpbWVudHMuc2V0KG5hbWUuaW1wbCgpLCBzdXBwbGVtZW50LmxlYWtQdHIo
KSk7Cit9CisKK1BhZ2VTdXBwbGVtZW50KiBQYWdlOjpyZXF1aXJlU3VwcGxlbWVudChjb25zdCBB
dG9taWNTdHJpbmcmIG5hbWUpCit7CisgICAgcmV0dXJuIG1fc3VwcGxpbWVudHMuZ2V0KG5hbWUu
aW1wbCgpKTsKK30KKwordm9pZCBQYWdlOjpub3RpZnlEZXN0cm95ZWRUb1N1cHBsZW1lbnRzKCkK
K3sKKyAgICBmb3IgKFBhZ2VTdXBwbGVtZW50TWFwOjppdGVyYXRvciBpID0gbV9zdXBwbGltZW50
cy5iZWdpbigpOyBpICE9IG1fc3VwcGxpbWVudHMuZW5kKCk7ICsraSkKKyAgICAgICAgaS0+c2Vj
b25kLT5wYWdlRGVzdHJveWVkKCk7CisgICAgbV9zdXBwbGltZW50cy5jbGVhcigpOworfQorCisK
IFBhZ2U6OlBhZ2VDbGllbnRzOjpQYWdlQ2xpZW50cygpCiAgICAgOiBjaHJvbWVDbGllbnQoMCkK
ICAgICAsIGNvbnRleHRNZW51Q2xpZW50KDApCkBAIC0xMDk3LDggKzExMTIsNiBAQCBQYWdlOjpQ
YWdlQ2xpZW50czo6UGFnZUNsaWVudHMoKQogICAgICwgZHJhZ0NsaWVudCgwKQogICAgICwgaW5z
cGVjdG9yQ2xpZW50KDApCiAgICAgLCBnZW9sb2NhdGlvbkNsaWVudCgwKQotICAgICwgZGV2aWNl
TW90aW9uQ2xpZW50KDApCi0gICAgLCBkZXZpY2VPcmllbnRhdGlvbkNsaWVudCgwKQogICAgICwg
c3BlZWNoSW5wdXRDbGllbnQoMCkKICAgICAsIG5vdGlmaWNhdGlvbkNsaWVudCgwKQogICAgICwg
dXNlck1lZGlhQ2xpZW50KDApCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2Uu
aCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oCmluZGV4IDVmNmUyMDY0OWE4MTI4YTVjOGI4
NGE4ZTkxM2U3MzBkM2E4OWIwOTQuLjQ2YWNiM2NhNDIwZGI5N2YzZmQyZmViYjFmZmZkYTQ2MWU3
YjZiMDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvUGFnZS5oCkBAIC0yNCwxMSArMjQsMTMgQEAKICNpbmNsdWRlICJGcmFt
ZUxvYWRlclR5cGVzLmgiCiAjaW5jbHVkZSAiRmluZE9wdGlvbnMuaCIKICNpbmNsdWRlICJMYXlv
dXRUeXBlcy5oIgorI2luY2x1ZGUgIlBhZ2VTdXBwbGVtZW50LmgiCiAjaW5jbHVkZSAiUGFnZVZp
c2liaWxpdHlTdGF0ZS5oIgogI2luY2x1ZGUgIlBsYXRmb3JtU2NyZWVuLmgiCiAjaW5jbHVkZSAi
UGxhdGZvcm1TdHJpbmcuaCIKICNpbmNsdWRlICJWaWV3cG9ydEFyZ3VtZW50cy5oIgogI2luY2x1
ZGUgPHd0Zi9Gb3J3YXJkLmg+CisjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KICNpbmNsdWRlIDx3
dGYvSGFzaFNldC5oPgogI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgogCkBAIC01MiwxMCAr
NTQsNiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgY2xhc3MgQ2hyb21lQ2xpZW50OwogICAg
IGNsYXNzIENvbnRleHRNZW51Q2xpZW50OwogICAgIGNsYXNzIENvbnRleHRNZW51Q29udHJvbGxl
cjsKLSAgICBjbGFzcyBEZXZpY2VNb3Rpb25DbGllbnQ7Ci0gICAgY2xhc3MgRGV2aWNlTW90aW9u
Q29udHJvbGxlcjsKLSAgICBjbGFzcyBEZXZpY2VPcmllbnRhdGlvbkNsaWVudDsKLSAgICBjbGFz
cyBEZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXI7CiAgICAgY2xhc3MgRG9jdW1lbnQ7CiAgICAg
Y2xhc3MgRHJhZ0NhcmV0Q29udHJvbGxlcjsKICAgICBjbGFzcyBEcmFnQ2xpZW50OwpAQCAtMTE4
LDggKzExNiw2IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgICAgIERyYWdDbGllbnQq
IGRyYWdDbGllbnQ7CiAgICAgICAgICAgICBJbnNwZWN0b3JDbGllbnQqIGluc3BlY3RvckNsaWVu
dDsKICAgICAgICAgICAgIEdlb2xvY2F0aW9uQ2xpZW50KiBnZW9sb2NhdGlvbkNsaWVudDsKLSAg
ICAgICAgICAgIERldmljZU1vdGlvbkNsaWVudCogZGV2aWNlTW90aW9uQ2xpZW50OwotICAgICAg
ICAgICAgRGV2aWNlT3JpZW50YXRpb25DbGllbnQqIGRldmljZU9yaWVudGF0aW9uQ2xpZW50Owog
ICAgICAgICAgICAgUmVmUHRyPEJhY2tGb3J3YXJkTGlzdD4gYmFja0ZvcndhcmRDbGllbnQ7CiAg
ICAgICAgICAgICBTcGVlY2hJbnB1dENsaWVudCogc3BlZWNoSW5wdXRDbGllbnQ7CiAgICAgICAg
ICAgICBOb3RpZmljYXRpb25QcmVzZW50ZXIqIG5vdGlmaWNhdGlvbkNsaWVudDsKQEAgLTE4NCwx
MCArMTgwLDYgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogI2lmIEVOQUJMRShDTElFTlRfQkFTRURf
R0VPTE9DQVRJT04pCiAgICAgICAgIEdlb2xvY2F0aW9uQ29udHJvbGxlciogZ2VvbG9jYXRpb25D
b250cm9sbGVyKCkgY29uc3QgeyByZXR1cm4gbV9nZW9sb2NhdGlvbkNvbnRyb2xsZXIuZ2V0KCk7
IH0KICNlbmRpZgotI2lmIEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJT04pCi0gICAgICAgIERldmlj
ZU1vdGlvbkNvbnRyb2xsZXIqIGRldmljZU1vdGlvbkNvbnRyb2xsZXIoKSBjb25zdCB7IHJldHVy
biBtX2RldmljZU1vdGlvbkNvbnRyb2xsZXIuZ2V0KCk7IH0KLSAgICAgICAgRGV2aWNlT3JpZW50
YXRpb25Db250cm9sbGVyKiBkZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXIoKSBjb25zdCB7IHJl
dHVybiBtX2RldmljZU9yaWVudGF0aW9uQ29udHJvbGxlci5nZXQoKTsgfQotI2VuZGlmCiAjaWYg
RU5BQkxFKE5PVElGSUNBVElPTlMpCiAgICAgICAgIE5vdGlmaWNhdGlvbkNvbnRyb2xsZXIqIG5v
dGlmaWNhdGlvbkNvbnRyb2xsZXIoKSBjb25zdCB7IHJldHVybiBtX25vdGlmaWNhdGlvbkNvbnRy
b2xsZXIuZ2V0KCk7IH0KICNlbmRpZgpAQCAtMzUyLDkgKzM0NCwxNiBAQCBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAgICAgICAgIHZvaWQgc2V0UmVsZXZhbnRSZXBhaW50ZWRPYmplY3RzQ291bnRlclRo
cmVzaG9sZCh1aW50NjRfdCk7CiAgICAgICAgIHZvaWQgc3RhcnRDb3VudGluZ1JlbGV2YW50UmVw
YWludGVkT2JqZWN0cygpOwogICAgICAgICB2b2lkIGFkZFJlbGV2YW50UmVwYWludGVkT2JqZWN0
KFJlbmRlck9iamVjdCosIGNvbnN0IEludFJlY3QmIG9iamVjdFBhaW50UmVjdCk7Ci0gICAgICAg
IAorCisgICAgICAgIHZvaWQgcHJvdmlkZVN1cHBsZW1lbnQoY29uc3QgQXRvbWljU3RyaW5nJiwg
UGFzc093blB0cjxQYWdlU3VwcGxlbWVudD4pOworICAgICAgICBQYWdlU3VwcGxlbWVudCogcmVx
dWlyZVN1cHBsZW1lbnQoY29uc3QgQXRvbWljU3RyaW5nJik7CisKICAgICBwcml2YXRlOgogICAg
ICAgICB2b2lkIGluaXRHcm91cCgpOworICAgICAgICB2b2lkIG5vdGlmeURlc3Ryb3llZFRvU3Vw
cGxlbWVudHMoKTsKKworICAgICAgICB0eXBlZGVmIEhhc2hNYXA8QXRvbWljU3RyaW5nSW1wbCos
IFBhZ2VTdXBwbGVtZW50Kj4gUGFnZVN1cHBsZW1lbnRNYXA7CisgICAgICAgIFBhZ2VTdXBwbGVt
ZW50TWFwIG1fc3VwcGxpbWVudHM7CiAKICNpZiBBU1NFUlRfRElTQUJMRUQKICAgICAgICAgdm9p
ZCBjaGVja0ZyYW1lQ291bnRDb25zaXN0ZW5jeSgpIGNvbnN0IHsgfQpAQCAtMzgzLDEwICszODIs
NiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAjaWYgRU5BQkxFKENMSUVOVF9CQVNFRF9HRU9MT0NB
VElPTikKICAgICAgICAgT3duUHRyPEdlb2xvY2F0aW9uQ29udHJvbGxlcj4gbV9nZW9sb2NhdGlv
bkNvbnRyb2xsZXI7CiAjZW5kaWYKLSNpZiBFTkFCTEUoREVWSUNFX09SSUVOVEFUSU9OKQotICAg
ICAgICBPd25QdHI8RGV2aWNlTW90aW9uQ29udHJvbGxlcj4gbV9kZXZpY2VNb3Rpb25Db250cm9s
bGVyOwotICAgICAgICBPd25QdHI8RGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyPiBtX2Rldmlj
ZU9yaWVudGF0aW9uQ29udHJvbGxlcjsKLSNlbmRpZgogI2lmIEVOQUJMRShOT1RJRklDQVRJT05T
KQogICAgICAgICBPd25QdHI8Tm90aWZpY2F0aW9uQ29udHJvbGxlcj4gbV9ub3RpZmljYXRpb25D
b250cm9sbGVyOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VT
dXBwbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZVN1cHBsZW1lbnQuY3BwCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLmNmMDg5MGY2MDJmMDlhOGFhNWQwNzcyZjE4YTFkNWRmZjU1Yjc2OWIKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VTdXBwbGVtZW50LmNwcApAQCAt
MCwwICsxLDYyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIEdvb2dsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICogUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhF
CisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBT
SEFMTCBUSEUgQ09QWVJJR0hUIE9XTkVSIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFS
WSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UK
KyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlBh
Z2VTdXBwbGVtZW50LmgiCisKKyNpbmNsdWRlICJGcmFtZS5oIgorI2luY2x1ZGUgIlBhZ2UuaCIK
KworbmFtZXNwYWNlIFdlYkNvcmUgeworCitQYWdlU3VwcGxlbWVudDo6flBhZ2VTdXBwbGVtZW50
KCkKK3sKK30KKwordm9pZCBQYWdlU3VwcGxlbWVudDo6cGFnZURlc3Ryb3llZCgpCit7CisgICAg
ZGVsZXRlIHRoaXM7Cit9CisKK3ZvaWQgUGFnZVN1cHBsZW1lbnQ6OnByb3ZpZGVUbyhQYWdlKiBw
YWdlLCBjb25zdCBBdG9taWNTdHJpbmcmIGtleSwgUGFzc093blB0cjxQYWdlU3VwcGxlbWVudD4g
c3VwcGxlbWVudCkKK3sKKyAgICBwYWdlLT5wcm92aWRlU3VwcGxlbWVudChrZXksIHN1cHBsZW1l
bnQpOworfQorCitQYWdlU3VwcGxlbWVudCogUGFnZVN1cHBsZW1lbnQ6OnJlcXVpcmVPZihQYWdl
KiBwYWdlLCBjb25zdCBBdG9taWNTdHJpbmcmIG5hbWUpCit7CisgICAgaWYgKCFwYWdlKQorICAg
ICAgICByZXR1cm4gMDsKKyAgICByZXR1cm4gcGFnZS0+cmVxdWlyZVN1cHBsZW1lbnQobmFtZSk7
Cit9CisKK1BhZ2VTdXBwbGVtZW50KiBQYWdlU3VwcGxlbWVudDo6cmVxdWlyZU9mKEZyYW1lKiBm
cmFtZSwgY29uc3QgQXRvbWljU3RyaW5nJiBuYW1lKQoreworICAgIGlmICghZnJhbWUgfHwgIWZy
YW1lLT5wYWdlKCkpCisgICAgICAgIHJldHVybiAwOworICAgIHJldHVybiBmcmFtZS0+cGFnZSgp
LT5yZXF1aXJlU3VwcGxlbWVudChuYW1lKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlU3VwcGxlbWVudC5oIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9QYWdlU3VwcGxlbWVudC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmU3NTljOGJjMzI0Yzg0
OTIyNmI4YjU4ZGNkOTNlNTk5MjJiN2VkZTcKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL1BhZ2VTdXBwbGVtZW50LmgKQEAgLTAsMCArMSw1MSBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAxMiBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogICogUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJT
IGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVCBPV05FUiBP
UgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJ
VFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNp
Zm5kZWYgUGFnZVN1cHBsZW1lbnRfaAorI2RlZmluZSBQYWdlU3VwcGxlbWVudF9oCisKKyNpbmNs
dWRlIDx3dGYvRm9yd2FyZC5oPgorI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgorI2luY2x1
ZGUgPHd0Zi90ZXh0L0F0b21pY1N0cmluZy5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2Ns
YXNzIFBhZ2U7CitjbGFzcyBGcmFtZTsKKworCitjbGFzcyBQYWdlU3VwcGxlbWVudCB7CitwdWJs
aWM6CisgICAgdmlydHVhbCB+UGFnZVN1cHBsZW1lbnQoKTsKKyAgICB2aXJ0dWFsIHZvaWQgcGFn
ZURlc3Ryb3llZCgpOworCisgICAgc3RhdGljIHZvaWQgcHJvdmlkZVRvKFBhZ2UqLCBjb25zdCBB
dG9taWNTdHJpbmcmLCBQYXNzT3duUHRyPFBhZ2VTdXBwbGVtZW50Pik7CisgICAgc3RhdGljIFBh
Z2VTdXBwbGVtZW50KiByZXF1aXJlT2YoUGFnZSosIGNvbnN0IEF0b21pY1N0cmluZyYpOworICAg
IHN0YXRpYyBQYWdlU3VwcGxlbWVudCogcmVxdWlyZU9mKEZyYW1lKiwgY29uc3QgQXRvbWljU3Ry
aW5nJik7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBQYWdlU3Vw
cGxlbWVudF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvZ3JhcGhpY3MvU1ZHSW1h
Z2UuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL2dyYXBoaWNzL1NWR0ltYWdlLmNwcAppbmRleCBi
YmNjOTFiNTJlM2Y5MWFlYmM0Y2Q0NTBmYzcwMTk2MTMxYWFmMjBlLi43ZTFjZTI4NTRkZDBjNjcy
YTg4YWZmNDY4NmNlZjVmZjA0NTg1M2Y3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcv
Z3JhcGhpY3MvU1ZHSW1hZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9ncmFwaGljcy9T
VkdJbWFnZS5jcHAKQEAgLTMzNywxMiArMzM3LDYgQEAgYm9vbCBTVkdJbWFnZTo6ZGF0YUNoYW5n
ZWQoYm9vbCBhbGxEYXRhUmVjZWl2ZWQpCiAjZW5kaWYKICAgICAgICAgc3RhdGljIEluc3BlY3Rv
ckNsaWVudCogZHVtbXlJbnNwZWN0b3JDbGllbnQgPSBuZXcgRW1wdHlJbnNwZWN0b3JDbGllbnQ7
CiAgICAgICAgIHBhZ2VDbGllbnRzLmluc3BlY3RvckNsaWVudCA9IGR1bW15SW5zcGVjdG9yQ2xp
ZW50OwotI2lmIEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJT04pCi0gICAgICAgIHN0YXRpYyBEZXZp
Y2VNb3Rpb25DbGllbnQqIGR1bW15RGV2aWNlTW90aW9uQ2xpZW50ID0gbmV3IEVtcHR5RGV2aWNl
TW90aW9uQ2xpZW50OwotICAgICAgICBwYWdlQ2xpZW50cy5kZXZpY2VNb3Rpb25DbGllbnQgPSBk
dW1teURldmljZU1vdGlvbkNsaWVudDsKLSAgICAgICAgc3RhdGljIERldmljZU9yaWVudGF0aW9u
Q2xpZW50KiBkdW1teURldmljZU9yaWVudGF0aW9uQ2xpZW50ID0gbmV3IEVtcHR5RGV2aWNlT3Jp
ZW50YXRpb25DbGllbnQ7Ci0gICAgICAgIHBhZ2VDbGllbnRzLmRldmljZU9yaWVudGF0aW9uQ2xp
ZW50ID0gZHVtbXlEZXZpY2VPcmllbnRhdGlvbkNsaWVudDsKLSNlbmRpZgogCiAgICAgICAgIC8v
IEZJWE1FOiBJZiB0aGlzIFNWRyBlbmRzIHVwIGxvYWRpbmcgaXRzZWxmLCB3ZSBtaWdodCBsZWFr
IHRoZSB3b3JsZC4KICAgICAgICAgLy8gVGhlIENhY2hlIGNvZGUgZG9lcyBub3Qga25vdyBhYm91
dCBDYWNoZWRJbWFnZXMgaG9sZGluZyBGcmFtZXMgYW5kCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3NyYy9XZWJWaWV3SW1wbC5jcHAKaW5kZXggMGM5ZTQ2NTBmMzA1NGE0YzkxZDA2MTE4NDRiZGQ4
ZmZiODUwNWYxZi4uN2VjMzNkMmNkODdhODRkN2Y5OWY4NGJkY2E3MmNhZDAwYTI3ZDZhMCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmNwcApAQCAtMzkzLDcgKzM5
Myw2IEBAIFdlYlZpZXdJbXBsOjpXZWJWaWV3SW1wbChXZWJWaWV3Q2xpZW50KiBjbGllbnQpCiAj
aWYgRU5BQkxFKElOUFVUX1NQRUVDSCkKICAgICBwYWdlQ2xpZW50cy5zcGVlY2hJbnB1dENsaWVu
dCA9IG1fc3BlZWNoSW5wdXRDbGllbnQuZ2V0KCk7CiAjZW5kaWYKLSAgICBwYWdlQ2xpZW50cy5k
ZXZpY2VPcmllbnRhdGlvbkNsaWVudCA9IG1fZGV2aWNlT3JpZW50YXRpb25DbGllbnRQcm94eS5n
ZXQoKTsKICAgICBwYWdlQ2xpZW50cy5nZW9sb2NhdGlvbkNsaWVudCA9IG1fZ2VvbG9jYXRpb25D
bGllbnRQcm94eS5nZXQoKTsKICNpZiBFTkFCTEUoTk9USUZJQ0FUSU9OUykKICAgICBwYWdlQ2xp
ZW50cy5ub3RpZmljYXRpb25DbGllbnQgPSBub3RpZmljYXRpb25QcmVzZW50ZXJJbXBsKCk7CkBA
IC00MDQsNyArNDAzLDcgQEAgV2ViVmlld0ltcGw6OldlYlZpZXdJbXBsKFdlYlZpZXdDbGllbnQq
IGNsaWVudCkKICNlbmRpZgogCiAgICAgbV9wYWdlID0gYWRvcHRQdHIobmV3IFBhZ2UocGFnZUNs
aWVudHMpKTsKLQorICAgIHByb3ZpZGVEZXZpY2VPcmllbnRhdGlvblRvKG1fcGFnZS5nZXQoKSwg
bV9kZXZpY2VPcmllbnRhdGlvbkNsaWVudFByb3h5LmdldCgpKTsKICAgICBtX2dlb2xvY2F0aW9u
Q2xpZW50UHJveHktPnNldENvbnRyb2xsZXIobV9wYWdlLT5nZW9sb2NhdGlvbkNvbnRyb2xsZXIo
KSk7CiAKICAgICBtX3BhZ2UtPnNldEdyb3VwTmFtZShwYWdlR3JvdXBOYW1lKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlldy5tbSBiL1NvdXJjZS9XZWJLaXQv
bWFjL1dlYlZpZXcvV2ViVmlldy5tbQppbmRleCA0NTI1Y2JhOWZjMzg5NGFhNGI0ZmI0ZTA1YTJj
ZWU2YzBiZDhjODAyLi45MzIwNmYwNGRmYWNmOTUxZTlkMTY4MTc5MDMxNGU5YmY5NTFhYmE5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXcubW0KKysrIGIvU291
cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCkBAIC03NDUsMTAgKzc0NSwxMCBAQCBz
dGF0aWMgTlNTdHJpbmcgKmxlYWtPdXRsb29rUXVpcmtzVXNlclNjcmlwdENvbnRlbnRzKCkKICNp
ZiBFTkFCTEUoTk9USUZJQ0FUSU9OUykKICAgICBwYWdlQ2xpZW50cy5ub3RpZmljYXRpb25DbGll
bnQgPSBuZXcgV2ViTm90aWZpY2F0aW9uQ2xpZW50KHNlbGYpOwogI2VuZGlmCisgICAgX3ByaXZh
dGUtPnBhZ2UgPSBuZXcgUGFnZShwYWdlQ2xpZW50cyk7CiAjaWYgRU5BQkxFKERFVklDRV9PUklF
TlRBVElPTikKLSAgICBwYWdlQ2xpZW50cy5kZXZpY2VPcmllbnRhdGlvbkNsaWVudCA9IG5ldyBX
ZWJEZXZpY2VPcmllbnRhdGlvbkNsaWVudChzZWxmKTsKKyAgICBXZWJDb3JlOjpwcm92aWRlRGV2
aWNlT3JpZW50YXRpb25UbyhfcHJpdmF0ZS0+cGFnZSwgbmV3IFdlYkRldmljZU9yaWVudGF0aW9u
Q2xpZW50KHNlbGYpKTsKICNlbmRpZgotICAgIF9wcml2YXRlLT5wYWdlID0gbmV3IFBhZ2UocGFn
ZUNsaWVudHMpOwogCiAgICAgX3ByaXZhdGUtPnBhZ2UtPnNldENhblN0YXJ0TWVkaWEoW3NlbGYg
d2luZG93XSk7CiAgICAgX3ByaXZhdGUtPnBhZ2UtPnNldHRpbmdzKCktPnNldExvY2FsU3RvcmFn
ZURhdGFiYXNlUGF0aChbW3NlbGYgcHJlZmVyZW5jZXNdIF9sb2NhbFN0b3JhZ2VEYXRhYmFzZVBh
dGhdKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvcXQvQXBpL3F3ZWJwYWdlLmNwcCBiL1Nv
dXJjZS9XZWJLaXQvcXQvQXBpL3F3ZWJwYWdlLmNwcAppbmRleCBmOTRkNDQ1ODlmOTY1MzJiYTU5
OWZkNDQ5YzMwMjAyYzljNzc2MzkyLi5mMTk0MzM4Nzc0ZDI0NjEwZDY5NjM0NGE5ODc4NDY1Mjlm
NjU5MGYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3F0L0FwaS9xd2VicGFnZS5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9xdC9BcGkvcXdlYnBhZ2UuY3BwCkBAIC0zMjIsMTQgKzMyMiw2IEBA
IFFXZWJQYWdlUHJpdmF0ZTo6UVdlYlBhZ2VQcml2YXRlKFFXZWJQYWdlICpxcSkKICAgICBwYWdl
Q2xpZW50cy5lZGl0b3JDbGllbnQgPSBuZXcgRWRpdG9yQ2xpZW50UXQocSk7CiAgICAgcGFnZUNs
aWVudHMuZHJhZ0NsaWVudCA9IG5ldyBEcmFnQ2xpZW50UXQocSk7CiAgICAgcGFnZUNsaWVudHMu
aW5zcGVjdG9yQ2xpZW50ID0gbmV3IEluc3BlY3RvckNsaWVudFF0KHEpOwotI2lmIEVOQUJMRShE
RVZJQ0VfT1JJRU5UQVRJT04pCi0gICAgaWYgKHVzZU1vY2spCi0gICAgICAgIHBhZ2VDbGllbnRz
LmRldmljZU9yaWVudGF0aW9uQ2xpZW50ID0gbmV3IERldmljZU9yaWVudGF0aW9uQ2xpZW50TW9j
azsKLSAgICBlbHNlCi0gICAgICAgIHBhZ2VDbGllbnRzLmRldmljZU9yaWVudGF0aW9uQ2xpZW50
ID0gbmV3IERldmljZU9yaWVudGF0aW9uQ2xpZW50UXQ7Ci0KLSAgICBwYWdlQ2xpZW50cy5kZXZp
Y2VNb3Rpb25DbGllbnQgPSBuZXcgRGV2aWNlTW90aW9uQ2xpZW50UXQ7Ci0jZW5kaWYKICNpZiBF
TkFCTEUoQ0xJRU5UX0JBU0VEX0dFT0xPQ0FUSU9OKQogICAgIGlmICh1c2VNb2NrKQogICAgICAg
ICBwYWdlQ2xpZW50cy5nZW9sb2NhdGlvbkNsaWVudCA9IG5ldyBHZW9sb2NhdGlvbkNsaWVudE1v
Y2s7CkBAIC0zNDAsNiArMzMyLDEzIEBAIFFXZWJQYWdlUHJpdmF0ZTo6UVdlYlBhZ2VQcml2YXRl
KFFXZWJQYWdlICpxcSkKICAgICBwYWdlQ2xpZW50cy5ub3RpZmljYXRpb25DbGllbnQgPSBOb3Rp
ZmljYXRpb25QcmVzZW50ZXJDbGllbnRRdDo6bm90aWZpY2F0aW9uUHJlc2VudGVyKCk7CiAjZW5k
aWYKICAgICBwYWdlID0gbmV3IFBhZ2UocGFnZUNsaWVudHMpOworI2lmIEVOQUJMRShERVZJQ0Vf
T1JJRU5UQVRJT04pCisgICAgaWYgKHVzZU1vY2spCisgICAgICAgIFdlYkNvcmU6OnByb3ZpZGVE
ZXZpY2VPcmllbnRhdGlvblRvKHBhZ2UsIG5ldyBEZXZpY2VPcmllbnRhdGlvbkNsaWVudE1vY2sp
OworICAgIGVsc2UKKyAgICAgICAgV2ViQ29yZTo6cHJvdmlkZURldmljZU9yaWVudGF0aW9uVG8o
cGFnZSwgbmV3IERldmljZU9yaWVudGF0aW9uQ2xpZW50UXQpOworICAgIFdlYkNvcmU6OnByb3Zp
ZGVEZXZpY2VNb3Rpb25UbyhwYWdlLCBuZXcgRGV2aWNlTW90aW9uQ2xpZW50UXQpOworI2VuZGlm
CiAKICAgICAvLyBCeSBkZWZhdWx0IGVhY2ggcGFnZSBpcyBwdXQgaW50byB0aGVpciBvd24gdW5p
cXVlIHBhZ2UgZ3JvdXAsIHdoaWNoIGFmZmVjdHMgcG9wdXAgd2luZG93cwogICAgIC8vIGFuZCB2
aXNpdGVkIGxpbmtzLiBQYWdlIGdyb3VwcyAocGVyIHByb2Nlc3Mgb25seSkgaXMgYSBmZWF0dXJl
IG1ha2luZyBpdCBwb3NzaWJsZSB0byB1c2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvcXQv
V2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQuY3BwIGIvU291cmNlL1dlYktp
dC9xdC9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRRdC5jcHAKaW5kZXggOTAy
NTRhZWNhNzA2OWVkNzk3OTE4YjNkNjVkNmZhZDNkZGVhMWY5MS4uODAwZjczYjdkZThmNjJjNjY4
ZGY0YTJhZDg0ZTY3Mjk3MjRmZGJhMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9xdC9XZWJD
b3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRRdC5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9xdC9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRRdC5jcHAKQEAgLTg1Nyw3
ICs4NTcsNyBAQCB2b2lkIER1bXBSZW5kZXJUcmVlU3VwcG9ydFF0OjpzZXRNb2NrRGV2aWNlT3Jp
ZW50YXRpb24oUVdlYlBhZ2UqIHBhZ2UsIGJvb2wgY2FuUAogewogI2lmIEVOQUJMRShERVZJQ0Vf
T1JJRU5UQVRJT04pCiAgICAgUGFnZSogY29yZVBhZ2UgPSBRV2ViUGFnZVByaXZhdGU6OmNvcmUo
cGFnZSk7Ci0gICAgRGV2aWNlT3JpZW50YXRpb25DbGllbnRNb2NrKiBtb2NrQ2xpZW50ID0gdG9E
ZXZpY2VPcmllbnRhdGlvbkNsaWVudE1vY2soY29yZVBhZ2UtPmRldmljZU9yaWVudGF0aW9uQ29u
dHJvbGxlcigpLT5jbGllbnQoKSk7CisgICAgRGV2aWNlT3JpZW50YXRpb25DbGllbnRNb2NrKiBt
b2NrQ2xpZW50ID0gdG9EZXZpY2VPcmllbnRhdGlvbkNsaWVudE1vY2soRGV2aWNlT3JpZW50YXRp
b25Db250cm9sbGVyOjpyZXF1aXJlT2YoY29yZVBhZ2UpLT5jbGllbnQoKSk7CiAgICAgbW9ja0Ns
aWVudC0+c2V0T3JpZW50YXRpb24oRGV2aWNlT3JpZW50YXRpb246OmNyZWF0ZShjYW5Qcm92aWRl
QWxwaGEsIGFscGhhLCBjYW5Qcm92aWRlQmV0YSwgYmV0YSwgY2FuUHJvdmlkZUdhbW1hLCBnYW1t
YSkpOwogI2VuZGlmCiB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>126689</attachid>
            <date>2012-02-12 16:48:28 -0800</date>
            <delta_ts>2012-02-12 16:49:55 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-78085-20120213094826.patch</filename>
            <type>text/plain</type>
            <size>41855</size>
            <attacher name="Hajime Morrita">morrita</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA3NTE1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYmRjMDEwZGI4NWZkYWQ2
ZGVhZmMyODQyZTliZDdiYmEwNmRjMzVlMi4uNTdhNGIyOWEyODJhNDExZTZkNjUyZmIxMTUzYmRh
MjExY2EyZGYzOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDg1IEBACisyMDEyLTAyLTA5ICBIYWpp
bWUgTW9ycml0YSAgPG1vcnJpdGFAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFBhZ2Ugc2hvdWxk
IGhhdmUgbGVzcyBpbnRydXNpdmUgd2F5IHRvIGFzc29jaWF0ZSBBUEkgaW1wbGVtZW50YXRpb24g
b2JqZWN0cy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTc4MDg1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
SW50cm9kdWNpbmcgUGFnZVN1cHBsZW1lbnQgaW50ZXJmYWNlIHRvIGF0dGFjaCBiZWhpbmQtdGhl
LWZsYWctaXNoCisgICAgICAgIG9iamVjdHMgdG8gUGFnZSBpbnN0YW5jZXMuCisKKyAgICAgICAg
VGhpcyBjaGFuZ2UgYWltcyB0byBpbXByb3ZlIG1vZHVsYXJpdHkgb2YgTW9kdWxlcy8gZW50cmll
cy4gV2l0aAorICAgICAgICBQYWdlU3VwcGxlbWVudCBtZWNoaW5hcnksIHdlIGNhbiBlbGltaW5h
dGUgaWZkZWYgY29uZGl0aW9uYWxzIGZyb20KKyAgICAgICAgUGFnZS5oL1BhZ2UuY3BwIGFuZCBh
cmUgYWJsZSB0byBhZGQgTW9kdWxlcy8gZW50cmllcyB3aXRob3V0CisgICAgICAgIHRvdWNoaW5n
IG5vbi1Nb2R1bGUgV2ViQ29yZSBmaWxlcy4gV2ViS2l0IEFQSSBjbGFzc2VzIGxpa2UgV2ViUGFn
ZQorICAgICAgICBjYW4gInByb3ZpZGUiIHRoZXNlIG9iamVjdHMgZHluYW1pY2FsbHkgZHVyaW5n
IHRoZSBQYWdlIHNldHVwIHBoYXNlLgorCisgICAgICAgIEluIHRoaXMgY2hhbmdlLCBEZXZpY2VN
b3Rpb25Db250cm9sbGVyIGFuZAorICAgICAgICBEZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXIg
aXMgdXBkYXRlZCB0byBhZG9wdCBQYWdlU3VwcGxlbWVudAorICAgICAgICBpbnRlZmFjZSBmb3Ig
YW4gaWxsdXN0cmF0aXZlIHB1cnBvc2UgYmVjYXVzZSB0aGV5IGFyZSBnb2luZyB0bworICAgICAg
ICBtb3ZlIGludG8gTW9kdWxlcy8gc2hvcnRseS4gT3RoZXIgUGFnZSBhc3NvY2lhdGVkIEFQSSBi
YWNraW5nCisgICAgICAgIG9iamVjdHMgYWxzbyBzaG91bGQgYmUgdHJhbnNmb3JtZWQgdG8gUGFn
ZVN1cHBsZW1lbnQgZmFtaWx5LgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIE5vIG5ldyB0ZXN0cy4gTm8gYmVoYXZpb3IgY2hhbmdlLgorCisgICAgICAg
ICogQ01ha2VMaXN0cy50eHQ6CisgICAgICAgICogR05VbWFrZWZpbGUubGlzdC5hbToKKyAgICAg
ICAgKiBUYXJnZXQucHJpOgorICAgICAgICAqIFdlYkNvcmUuZ3lwaToKKyAgICAgICAgKiBXZWJD
b3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvajoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2o6CisgICAgICAgICogZG9tL0RldmljZU1vdGlvbkNsaWVudC5oOgorICAg
ICAgICAoV2ViQ29yZSk6CisgICAgICAgICogZG9tL0RldmljZU1vdGlvbkNvbnRyb2xsZXIuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6RGV2aWNlTW90aW9uQ29udHJvbGxlcjo6c3VwcGxlbWVudE5h
bWUpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpEZXZpY2VNb3Rpb25D
b250cm9sbGVyOjppc0FjdGl2ZUF0KToKKyAgICAgICAgKFdlYkNvcmU6OnByb3ZpZGVEZXZpY2VN
b3Rpb25Ubyk6CisgICAgICAgICogZG9tL0RldmljZU1vdGlvbkNvbnRyb2xsZXIuaDoKKyAgICAg
ICAgKERldmljZU1vdGlvbkNvbnRyb2xsZXIpOgorICAgICAgICAoV2ViQ29yZTo6RGV2aWNlTW90
aW9uQ29udHJvbGxlcjo6ZnJvbSk6CisgICAgICAgICogZG9tL0RldmljZU9yaWVudGF0aW9uQ2xp
ZW50Lmg6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKiBkb20vRGV2aWNlT3JpZW50YXRp
b25Db250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRldmljZU9yaWVudGF0aW9uQ29u
dHJvbGxlcjo6c3VwcGxlbWVudE5hbWUpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChX
ZWJDb3JlOjpEZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXI6OmlzQWN0aXZlQXQpOgorICAgICAg
ICAoV2ViQ29yZTo6cHJvdmlkZURldmljZU9yaWVudGF0aW9uVG8pOgorICAgICAgICAqIGRvbS9E
ZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXIuaDoKKyAgICAgICAgKERldmljZU9yaWVudGF0aW9u
Q29udHJvbGxlcik6CisgICAgICAgIChXZWJDb3JlOjpEZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xs
ZXI6OmZyb20pOgorICAgICAgICAqIGRvbS9Eb2N1bWVudC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpEb2N1bWVudDo6c3VzcGVuZEFjdGl2ZURPTU9iamVjdHMpOgorICAgICAgICAoV2ViQ29yZTo6
RG9jdW1lbnQ6OnJlc3VtZUFjdGl2ZURPTU9iamVjdHMpOgorICAgICAgICAqIGhpc3RvcnkvUGFn
ZUNhY2hlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmxvZ0NhbkNhY2hlUGFnZURlY2lzaW9uKToK
KyAgICAgICAgKFdlYkNvcmU6OlBhZ2VDYWNoZTo6Y2FuQ2FjaGUpOgorICAgICAgICAqIHBhZ2Uv
RE9NV2luZG93LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRPTVdpbmRvdzo6YWRkRXZlbnRMaXN0
ZW5lcik6CisgICAgICAgIChXZWJDb3JlOjpET01XaW5kb3c6OnJlbW92ZUV2ZW50TGlzdGVuZXIp
OgorICAgICAgICAoV2ViQ29yZTo6RE9NV2luZG93OjpyZW1vdmVBbGxFdmVudExpc3RlbmVycyk6
CisgICAgICAgICogcGFnZS9QYWdlU3VwcGxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQ
YWdlU3VwcGxlbWVudDo6flBhZ2VTdXBwbGVtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2VT
dXBwbGVtZW50Ojpwcm92aWRlVG8pOgorICAgICAgICAoV2ViQ29yZTo6UGFnZVN1cHBsZW1lbnQ6
OmZyb20pOgorICAgICAgICAqIHBhZ2UvUGFnZVN1cHBsZW1lbnQuaDoKKyAgICAgICAgKiBwYWdl
L1BhZ2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UGFnZTo6UGFnZSk6CisgICAgICAgIChXZWJD
b3JlOjpQYWdlOjp+UGFnZSk6CisgICAgICAgIChXZWJDb3JlOjpQYWdlOjpwcm92aWRlU3VwcGxl
bWVudCk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2U6OnJlcXVp
cmVTdXBwbGVtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2U6Om5vdGlmeURlc3Ryb3llZFRv
U3VwcGxlbWVudHMpOgorICAgICAgICAoV2ViQ29yZTo6UGFnZTo6UGFnZUNsaWVudHM6OlBhZ2VD
bGllbnRzKToKKyAgICAgICAgKiBwYWdlL1BhZ2UuaDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAg
ICAgICAoUGFnZUNsaWVudHMpOgorICAgICAgICAoUGFnZSk6CisgICAgICAgICogc3ZnL2dyYXBo
aWNzL1NWR0ltYWdlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0ltYWdlOjpkYXRhQ2hhbmdl
ZCk6CisKIDIwMTItMDItMTIgIERhdmlkIFJldmVtYW4gIDxyZXZlbWFuQGNocm9taXVtLm9yZz4K
IAogICAgICAgICBbQ2hyb21pdW1dIEF2b2lkIHVubmVjZXNzYXJ5IG1lbXNldCBpbiBwZXItdGls
ZSBsYXllciB1cGRhdGVyLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFu
Z2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwppbmRleCAyNzhlMjA0NWE4
ZDVkMzFjNWE3NDg4YTU4YTNhODAxNWUzOGJlNmI0Li43MTNlZTZmM2M2ZmM4ZWM5N2E3YzcxMTQ4
OTJmYzFmZjA4YzI0ODVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5n
ZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEz
IEBACisyMDEyLTAyLTA5ICBIYWppbWUgTW9ycml0YSAgPG1vcnJpdGFAY2hyb21pdW0ub3JnPgor
CisgICAgICAgIFBhZ2Ugc2hvdWxkIGhhdmUgbGVzcyBpbnRydXNpdmUgd2F5IHRvIGFzc29jaWF0
ZSBBUEkgaW1wbGVtZW50YXRpb24gb2JqZWN0cy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTc4MDg1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgKiBzcmMvV2ViVmlld0ltcGwuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpXZWJWaWV3SW1wbDo6V2ViVmlld0ltcGwpOgorCiAyMDEyLTAyLTEwICBEYXZpZCBHcm9n
YW4gIDxkZ3JvZ2FuQGNocm9taXVtLm9yZz4KIAogICAgICAgICBEaXNhYmxlIEluZGV4ZWREQiBw
ZXJtaXNzaW9ucyBjaGVjayBmcm9tIHNoYXJlZCB3b3JrZXJzCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L21hYy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKaW5kZXgg
NWMzOGNhYzIxNGE2Mzg1ZGQ4ZGQ1MzNkNzRjZWIwZDNjMDU5ZWIzNy4uYjJmN2M5OWUxODU5MmM3
YzFiNjEwZjY3NjllMmQ3NjMxZmE5Y2Y4YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMv
Q2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEz
IEBACisyMDEyLTAyLTA5ICBIYWppbWUgTW9ycml0YSAgPG1vcnJpdGFAY2hyb21pdW0ub3JnPgor
CisgICAgICAgIFBhZ2Ugc2hvdWxkIGhhdmUgbGVzcyBpbnRydXNpdmUgd2F5IHRvIGFzc29jaWF0
ZSBBUEkgaW1wbGVtZW50YXRpb24gb2JqZWN0cy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTc4MDg1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgKiBXZWJWaWV3L1dlYlZpZXcubW06CisgICAgICAgICgtW1dl
YlZpZXcgX2NvbW1vbkluaXRpYWxpemF0aW9uV2l0aEZyYW1lTmFtZTpncm91cE5hbWU6XSk6CisK
IDIwMTItMDItMTEgIFNoZXJpZmYgQm90ICA8d2Via2l0LnJldmlldy5ib3RAZ21haWwuY29tPgog
CiAgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHIxMDc0MzUuCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L3F0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvcXQvQ2hhbmdlTG9nCmlu
ZGV4IDE0OGEyNzM2OTgwZTJiMjg5ZWY1YjBhMjg0NTdlMGY5ZWNmYThmMWUuLmFhMTA1MDRjMDU3
Njg4N2VhYWQ5MWI2YzI1NDkwYmM3Nzg4NjI0ZWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
cXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvcXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MTUgQEAKKzIwMTItMDItMDkgIEhhamltZSBNb3JyaXRhICA8bW9ycml0YUBjaHJvbWl1bS5vcmc+
CisKKyAgICAgICAgUGFnZSBzaG91bGQgaGF2ZSBsZXNzIGludHJ1c2l2ZSB3YXkgdG8gYXNzb2Np
YXRlIEFQSSBpbXBsZW1lbnRhdGlvbiBvYmplY3RzLgorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzgwODUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICAqIEFwaS9xd2VicGFnZS5jcHA6CisgICAgICAgIChRV2Vi
UGFnZVByaXZhdGU6OlFXZWJQYWdlUHJpdmF0ZSk6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQv
RHVtcFJlbmRlclRyZWVTdXBwb3J0UXQuY3BwOgorICAgICAgICAoRHVtcFJlbmRlclRyZWVTdXBw
b3J0UXQ6OnNldE1vY2tEZXZpY2VPcmllbnRhdGlvbik6CisKIDIwMTItMDItMDkgIFNpbW9uIEhh
dXNtYW5uICA8c2ltb24uaGF1c21hbm5Abm9raWEuY29tPgogCiAgICAgICAgIFtRdF0gRml4IGNv
bXBpbGF0aW9uIHdpdGggbmV3ZXIgUXQ1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DTWFr
ZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CmluZGV4IDhjMzE1ZDYy
NzMxNzgwNzAyOWY1MzQ4MGI1NzA1NmQxYzNlZjEyM2IuLjM0YjQ1NDkyYjg0YzFkZDJmZDM3MGNl
ZDg1YWE1M2E2NWNlOWNjZmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMu
dHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CkBAIC0xMDI0LDYgKzEwMjQs
NyBAQCBTRVQoV2ViQ29yZV9TT1VSQ0VTCiAgICAgcGFnZS9QYWdlR3JvdXAuY3BwCiAgICAgcGFn
ZS9QYWdlR3JvdXBMb2FkRGVmZXJyZXIuY3BwCiAgICAgcGFnZS9QYWdlU2VyaWFsaXplci5jcHAK
KyAgICBwYWdlL1BhZ2VTdXBwbGVtZW50LmNwcAogICAgIHBhZ2UvUGFnZVZpc2liaWxpdHlTdGF0
ZS5jcHAKICAgICBwYWdlL1BlcmZvcm1hbmNlLmNwcAogICAgIHBhZ2UvUGVyZm9ybWFuY2VOYXZp
Z2F0aW9uLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5h
bSBiL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KaW5kZXggMjEwODQ2MmUxY2Y1
YTVkNGZhM2EzMzYxODY5ODZjNGI2NGEwZDM2NS4uMzQ4YTY1MWFlZTMzMGZjMTAwMWNhNWNlZjBl
NDliMjEwZGJhYWI0YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlz
dC5hbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCkBAIC0yNzMwLDYg
KzI3MzAsOCBAQCB3ZWJjb3JlX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9XZWJDb3JlL3BhZ2UvUGFn
ZUdyb3VwTG9hZERlZmVycmVyLmggXAogCVNvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZVNlcmlhbGl6
ZXIuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VTZXJpYWxpemVyLmggXAorCVNvdXJj
ZS9XZWJDb3JlL3BhZ2UvUGFnZVN1cHBsZW1lbnQuY3BwIFwKKwlTb3VyY2UvV2ViQ29yZS9wYWdl
L1BhZ2VTdXBwbGVtZW50LmggXAogCVNvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZVZpc2liaWxpdHlT
dGF0ZS5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZVZpc2liaWxpdHlTdGF0ZS5oIFwK
IAlTb3VyY2UvV2ViQ29yZS9wYWdlL1BlcmZvcm1hbmNlLmNwcCBcCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9UYXJnZXQucHJpIGIvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQppbmRleCAx
NDNmNzhjZWQ3MGNhZjllNTVhZjIxYjBmYzI1Mjc3MzUxNzUwOTI0Li44ZTRlOTA3YzI0MGRjODQ1
NDUyNDJjNTJjMmJmOGJjNGNhZWRhY2Q1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9UYXJn
ZXQucHJpCisrKyBiL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkKQEAgLTEwMDAsNiArMTAwMCw3
IEBAIFNPVVJDRVMgKz0gXAogICAgIHBhZ2UvUGFnZS5jcHAgXAogICAgIHBhZ2UvUGFnZUdyb3Vw
LmNwcCBcCiAgICAgcGFnZS9QYWdlR3JvdXBMb2FkRGVmZXJyZXIuY3BwIFwKKyAgICBwYWdlL1Bh
Z2VTdXBwbGVtZW50LmNwcCBcCiAgICAgcGFnZS9QYWdlVmlzaWJpbGl0eVN0YXRlLmNwcCBcCiAg
ICAgcGFnZS9QZXJmb3JtYW5jZS5jcHAgXAogICAgIHBhZ2UvUGVyZm9ybWFuY2VOYXZpZ2F0aW9u
LmNwcCBcCkBAIC0yMDYyLDYgKzIwNjMsNyBAQCBIRUFERVJTICs9IFwKICAgICBwYWdlL1BhZ2VH
cm91cC5oIFwKICAgICBwYWdlL1BhZ2VHcm91cExvYWREZWZlcnJlci5oIFwKICAgICBwYWdlL1Bh
Z2UuaCBcCisgICAgcGFnZS9QYWdlU3VwcGxlbWVudC5oIFwKICAgICBwYWdlL1BhZ2VWaXNpYmls
aXR5U3RhdGUuaCBcCiAgICAgcGFnZS9QcmludENvbnRleHQuaCBcCiAgICAgcGFnZS9TY3JlZW4u
aCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkgYi9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLmd5cGkKaW5kZXggNWZlODAxODNmYjMyNDY0NWVhYzM5ZDY2OWNkYWI5NDJl
YzI0YzZhZi4uNzFjNTI2NDFkMWU4YmVhMjRmNGU2MzQxMzAyZGVmOGU1NjQ5NzkzZiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUuZ3lwaQpAQCAtMjE5LDYgKzIxOSw3IEBACiAgICAgICAgICAgICAncGFnZS9QYWdlLmgn
LAogICAgICAgICAgICAgJ3BhZ2UvUGFnZUdyb3VwLmgnLAogICAgICAgICAgICAgJ3BhZ2UvUGFn
ZVNlcmlhbGl6ZXIuaCcsCisgICAgICAgICAgICAncGFnZS9QYWdlU3VwcGxlbWVudC5oJywKICAg
ICAgICAgICAgICdwYWdlL1BhZ2VWaXNpYmlsaXR5U3RhdGUuaCcsCiAgICAgICAgICAgICAncGFn
ZS9Qb3NpdGlvbkNhbGxiYWNrLmgnLAogICAgICAgICAgICAgJ3BhZ2UvUG9zaXRpb25FcnJvci5o
JywKQEAgLTI2NDEsNiArMjY0Miw3IEBACiAgICAgICAgICAgICAncGFnZS9QYWdlR3JvdXBMb2Fk
RGVmZXJyZXIuY3BwJywKICAgICAgICAgICAgICdwYWdlL1BhZ2VHcm91cExvYWREZWZlcnJlci5o
JywKICAgICAgICAgICAgICdwYWdlL1BhZ2VTZXJpYWxpemVyLmNwcCcsCisgICAgICAgICAgICAn
cGFnZS9QYWdlU3VwcGxlbWVudC5jcHAnLAogICAgICAgICAgICAgJ3BhZ2UvUGFnZVZpc2liaWxp
dHlTdGF0ZS5jcHAnLAogICAgICAgICAgICAgJ3BhZ2UvUGVyZm9ybWFuY2UuY3BwJywKICAgICAg
ICAgICAgICdwYWdlL1BlcmZvcm1hbmNlLmgnLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZj
cHJvai9XZWJDb3JlLnZjcHJvagppbmRleCAwYTMxMzEyZDc3MDdhY2NjZTE3NjgwZGQ2MDgzOWQ2
YmM3ZDBjOTI2Li41MGUwMGZmNTJhOWNhNjM3ZTE4NjgyNzU4N2M1YjFmY2Q4NjI1MTM0IDEwMDc1
NQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagpAQCAtMjU1NTgs
NiArMjU1NTgsMTQgQEAKIAkJCQk+CiAJCQk8L0ZpbGU+CiAJCQk8RmlsZQorCQkJCVJlbGF0aXZl
UGF0aD0iLi5ccGFnZVxQYWdlU3VwcGxlbWVudC5jcHAiCisJCQkJPgorCQkJPC9GaWxlPgorCQkJ
PEZpbGUKKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHBhZ2VcUGFnZVN1cHBsZW1lbnQuaCIKKwkJCQk+
CisJCQk8L0ZpbGU+CisJCQk8RmlsZQogCQkJCVJlbGF0aXZlUGF0aD0iLi5ccGFnZVxQYWdlVmlz
aWJpbGl0eVN0YXRlLmNwcCIKIAkJCQk+CiAJCQk8L0ZpbGU+CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggZTk2MTc5M2FiMjgwN2Vj
MmQ4ZjY1NzZjY2U0YzA5MzdjYjRkZTgzZC4uOGI1MThjZTUzZmYzN2E5ZTUyMjE1NzQ2YTdkZTA4
MjVhYTUwYjM3YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagpAQCAtMzU0NSw2ICszNTQ1LDggQEAKIAkJQTcxNUU2NTMxMzRCQkJFQzAw
RDhFNzEzIC8qIFByb2dyZXNzU2hhZG93RWxlbWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTcxNUU2NTExMzRCQkJFQzAwRDhFNzEzIC8qIFByb2dy
ZXNzU2hhZG93RWxlbWVudC5oICovOyB9OwogCQlBNzE4NzYwRTBCMkExMjAxMDBBMTZFQ0UgLyog
RHJhZ0FjdGlvbnMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEE3MTg3NjBEMEIyQTEyMDEwMEExNkVDRSAvKiBEcmFnQWN0aW9ucy5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUE3MTg3ODkwMEIyRDA0QUMw
MEExNkVDRSAvKiBEcmFnQ29udHJvbGxlck1hYy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3MTg3ODhGMEIyRDA0QUMwMEExNkVDRSAvKiBEcmFnQ29u
dHJvbGxlck1hYy5tbSAqLzsgfTsKKwkJQTcxRTA4MzcxNEUzQ0VBRjAwNkE0NjE5IC8qIFBhZ2VT
dXBwbGVtZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEE3MUUwODM1MTRFM0NFQUYwMDZBNDYxOSAvKiBQYWdlU3VwcGxlbWVudC5jcHAgKi87IH07
CisJCUE3MUUwODM4MTRFM0NFQUYwMDZBNDYxOSAvKiBQYWdlU3VwcGxlbWVudC5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTcxRTA4MzYxNEUzQ0VBRjAw
NkE0NjE5IC8qIFBhZ2VTdXBwbGVtZW50LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAo
UHJpdmF0ZSwgKTsgfTsgfTsKIAkJQTcyM0Y3N0IxNDg0Q0E0QzAwOEM2REJFIC8qIFBsYXRmb3Jt
RXhwb3J0TWFjcm9zLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBBNzIzRjc3QTE0ODRDQTRDMDA4QzZEQkUgLyogUGxhdGZvcm1FeHBvcnRNYWNyb3MuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlBNzNGOTVG
RTEyQzk3QkZFMDAzMUFBRjkgLyogUm91bmRlZFJlY3QuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTczRjk1RkMxMkM5N0JGRTAwMzFBQUY5IC8qIFJv
dW5kZWRSZWN0LmNwcCAqLzsgfTsKIAkJQTczRjk1RkYxMkM5N0JGRTAwMzFBQUY5IC8qIFJvdW5k
ZWRSZWN0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBB
NzNGOTVGRDEyQzk3QkZFMDAzMUFBRjkgLyogUm91bmRlZFJlY3QuaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtMTA0MDMsNiArMTA0MDUsOCBAQAog
CQlBNzE4NzYwRDBCMkExMjAxMDBBMTZFQ0UgLyogRHJhZ0FjdGlvbnMuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gRHJhZ0FjdGlvbnMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJQTcxODc4OEYwQjJEMDRBQzAwQTE2RUNFIC8qIERyYWdDb250cm9sbGVyTWFjLm1t
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gRHJhZ0NvbnRyb2xsZXJN
YWMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE3MUE3MEM5MTFBRkIwMjAwMDk4
OUQ2RCAvKiBIVE1MTWV0ZXJFbGVtZW50LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBIVE1M
TWV0ZXJFbGVtZW50LmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQTcxRTA4MzUx
NEUzQ0VBRjAwNkE0NjE5IC8qIFBhZ2VTdXBwbGVtZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IFBhZ2VTdXBwbGVtZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJQTcxRTA4MzYxNEUzQ0VBRjAwNkE0NjE5IC8qIFBhZ2VTdXBwbGVtZW50Lmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBhZ2VTdXBwbGVtZW50Lmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE3MjNGNzdBMTQ4NENBNEMwMDhDNkRCRSAvKiBQbGF0
Zm9ybUV4cG9ydE1hY3Jvcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQbGF0
Zm9ybUV4cG9ydE1hY3Jvcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBNzNGOTVG
QzEyQzk3QkZFMDAzMUFBRjkgLyogUm91bmRlZFJlY3QuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gUm91bmRlZFJlY3QuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQlBNzNGOTVGRDEyQzk3QkZFMDAzMUFBRjkgLyogUm91bmRlZFJlY3QuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUm91bmRlZFJlY3QuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKQEAgLTE1MjA1LDYgKzE1MjA5LDggQEAKIAkJCQk3QTY3NEJEQTBGOUVCRjRF
MDA2Q0YwOTkgLyogUGFnZUdyb3VwTG9hZERlZmVycmVyLmggKi8sCiAJCQkJMzcxRTY1Q0QxMzY2
MUVFRDAwQkVFREIwIC8qIFBhZ2VTZXJpYWxpemVyLmNwcCAqLywKIAkJCQkzNzFFNjVDQjEzNjYx
RURDMDBCRUVEQjAgLyogUGFnZVNlcmlhbGl6ZXIuaCAqLywKKwkJCQlBNzFFMDgzNTE0RTNDRUFG
MDA2QTQ2MTkgLyogUGFnZVN1cHBsZW1lbnQuY3BwICovLAorCQkJCUE3MUUwODM2MTRFM0NFQUYw
MDZBNDYxOSAvKiBQYWdlU3VwcGxlbWVudC5oICovLAogCQkJCUZGRDVCOTc3MTM1Q0M5NzgwMEQ1
RTkyQSAvKiBQYWdlVmlzaWJpbGl0eVN0YXRlLmNwcCAqLywKIAkJCQlGRkQ1Qjk3ODEzNUNDOTc4
MDBENUU5MkEgLyogUGFnZVZpc2liaWxpdHlTdGF0ZS5oICovLAogCQkJCThBODQ0RDAxMTFEM0Mx
OEUwMDE0MDY1QyAvKiBQZXJmb3JtYW5jZS5jcHAgKi8sCkBAIC0yMzIyNyw2ICsyMzIzMyw3IEBA
CiAJCQkJRjM4MjA4OTUxNDdEMzVGOTAwMTBCQzA2IC8qIFBhZ2VSdW50aW1lQWdlbnQuaCBpbiBI
ZWFkZXJzICovLAogCQkJCUYzNDc0MkU1MTM0MzYzM0MwMDUzMUJDMiAvKiBQYWdlU2NyaXB0RGVi
dWdTZXJ2ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTM3MUU2NUNDMTM2NjFFREMwMEJFRURCMCAv
KiBQYWdlU2VyaWFsaXplci5oIGluIEhlYWRlcnMgKi8sCisJCQkJQTcxRTA4MzgxNEUzQ0VBRjAw
NkE0NjE5IC8qIFBhZ2VTdXBwbGVtZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlFMTI4NEFFMTEw
NDQ3RDQ1MDBFQUVCNTIgLyogUGFnZVRyYW5zaXRpb25FdmVudC5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJNTFFMUVDQzMwQzkxQzkwNDAwREMyNTVCIC8qIFBhZ2VVUkxSZWNvcmQuaCBpbiBIZWFkZXJz
ICovLAogCQkJCUZGRDVCOTdCMTM1Q0M5NzgwMEQ1RTkyQSAvKiBQYWdlVmlzaWJpbGl0eVN0YXRl
LmggaW4gSGVhZGVycyAqLywKQEAgLTI2MzYwLDYgKzI2MzY3LDcgQEAKIAkJCQlGMzgyMDg5NDE0
N0QzNUY5MDAxMEJDMDYgLyogUGFnZVJ1bnRpbWVBZ2VudC5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQlGMzQ3NDJFNDEzNDM2MzNDMDA1MzFCQzIgLyogUGFnZVNjcmlwdERlYnVnU2VydmVyLmNwcCBp
biBTb3VyY2VzICovLAogCQkJCTM3MUU2NUNFMTM2NjFFRUQwMEJFRURCMCAvKiBQYWdlU2VyaWFs
aXplci5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlBNzFFMDgzNzE0RTNDRUFGMDA2QTQ2MTkgLyog
UGFnZVN1cHBsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRTEyODRBRUExMDQ0N0RFRTAw
RUFFQjUyIC8qIFBhZ2VUcmFuc2l0aW9uRXZlbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNTFF
MUVDQzIwQzkxQzkwNDAwREMyNTVCIC8qIFBhZ2VVUkxSZWNvcmQuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJRkZENUI5N0ExMzVDQzk3ODAwRDVFOTJBIC8qIFBhZ2VWaXNpYmlsaXR5U3RhdGUuY3Bw
IGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRGV2aWNlTW90
aW9uQ2xpZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRGV2aWNlTW90aW9uQ2xpZW50LmgKaW5k
ZXggNDViZjExYWVhYjNjMmZjYzFkNGQzMDc2OGIxMThiZjdiNTFmNTk5Mi4uMzRlMjhlMmIyMTI1
N2I5NDNlZWY1MWVlNzEzYTk3OGM5YzdjNTYzZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
ZG9tL0RldmljZU1vdGlvbkNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9EZXZpY2VN
b3Rpb25DbGllbnQuaApAQCAtMzAsNiArMzAsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNs
YXNzIERldmljZU1vdGlvbkNvbnRyb2xsZXI7CiBjbGFzcyBEZXZpY2VNb3Rpb25EYXRhOworY2xh
c3MgUGFnZTsKIAogY2xhc3MgRGV2aWNlTW90aW9uQ2xpZW50IHsKIHB1YmxpYzoKQEAgLTQxLDYg
KzQyLDggQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBkZXZpY2VNb3Rpb25Db250cm9sbGVy
RGVzdHJveWVkKCkgPSAwOwogfTsKIAordm9pZCBwcm92aWRlRGV2aWNlTW90aW9uVG8oUGFnZSos
IERldmljZU1vdGlvbkNsaWVudCopOworCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRp
ZiAvLyBEZXZpY2VNb3Rpb25DbGllbnRfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9t
L0RldmljZU1vdGlvbkNvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0RldmljZU1v
dGlvbkNvbnRyb2xsZXIuY3BwCmluZGV4IGQ3YWMzMDU5ZjdkMWU0OWEyZmRiMTRjMTk1NGJkM2M3
ZGE1ZGQ2YWEuLmFjZWVjMDI1N2EyZGRlYTYxN2Y2ZTRkYmYxNjViYmQ5ZmNkOWJhNjYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9EZXZpY2VNb3Rpb25Db250cm9sbGVyLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vRGV2aWNlTW90aW9uQ29udHJvbGxlci5jcHAKQEAgLTEzNSw0
ICsxMzUsMjIgQEAgdm9pZCBEZXZpY2VNb3Rpb25Db250cm9sbGVyOjpkaWRDaGFuZ2VEZXZpY2VN
b3Rpb24oRGV2aWNlTW90aW9uRGF0YSogZGV2aWNlTW90aW8KICAgICAgICAgbGlzdGVuZXJzVmVj
dG9yW2ldLT5kaXNwYXRjaEV2ZW50KGV2ZW50KTsKIH0KIAorY29uc3QgQXRvbWljU3RyaW5nJiBE
ZXZpY2VNb3Rpb25Db250cm9sbGVyOjpzdXBwbGVtZW50TmFtZSgpCit7CisgICAgREVGSU5FX1NU
QVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIG5hbWUsICgiZGV2aWNlTW90aW9uIikpOworICAgIHJl
dHVybiBuYW1lOworfQorCitib29sIERldmljZU1vdGlvbkNvbnRyb2xsZXI6OmlzQWN0aXZlQXQo
UGFnZSogcGFnZSkKK3sKKyAgICBpZiAoRGV2aWNlTW90aW9uQ29udHJvbGxlciogc2VsZiA9IERl
dmljZU1vdGlvbkNvbnRyb2xsZXI6OmZyb20ocGFnZSkpCisgICAgICAgIHJldHVybiBzZWxmLT5p
c0FjdGl2ZSgpOworICAgIHJldHVybiBmYWxzZTsKK30KKwordm9pZCBwcm92aWRlRGV2aWNlTW90
aW9uVG8oUGFnZSogcGFnZSwgRGV2aWNlTW90aW9uQ2xpZW50KiBjbGllbnQpCit7CisgICAgUGFn
ZVN1cHBsZW1lbnQ6OnByb3ZpZGVUbyhwYWdlLCBEZXZpY2VNb3Rpb25Db250cm9sbGVyOjpzdXBw
bGVtZW50TmFtZSgpLCBEZXZpY2VNb3Rpb25Db250cm9sbGVyOjpjcmVhdGUoY2xpZW50KSk7Cit9
CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9EZXZpY2VNb3Rpb25Db250cm9sbGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRGV2aWNlTW90
aW9uQ29udHJvbGxlci5oCmluZGV4IGJiOGNjYTk2MTI0NjM1ZjA3ZjMwYzRlNDJlYzNiMTlhZDY1
NjBkYzYuLjk5NmM5ODg2MTVkNTA4ZDA0ZjMzM2Y5MGEyZGNmYWFlZTY3NjRkY2QgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9EZXZpY2VNb3Rpb25Db250cm9sbGVyLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvZG9tL0RldmljZU1vdGlvbkNvbnRyb2xsZXIuaApAQCAtMjcsNiArMjcsNyBA
QAogI2RlZmluZSBEZXZpY2VNb3Rpb25Db250cm9sbGVyX2gKIAogI2luY2x1ZGUgIkRPTVdpbmRv
dy5oIgorI2luY2x1ZGUgIlBhZ2VTdXBwbGVtZW50LmgiCiAjaW5jbHVkZSAiVGltZXIuaCIKICNp
bmNsdWRlIDx3dGYvSGFzaENvdW50ZWRTZXQuaD4KIApAQCAtMzUsNyArMzYsNyBAQCBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiBjbGFzcyBEZXZpY2VNb3Rpb25EYXRhOwogY2xhc3MgRGV2aWNlTW90aW9u
Q2xpZW50OwogCi1jbGFzcyBEZXZpY2VNb3Rpb25Db250cm9sbGVyIHsKK2NsYXNzIERldmljZU1v
dGlvbkNvbnRyb2xsZXIgOiBwdWJsaWMgUGFnZVN1cHBsZW1lbnQgewogcHVibGljOgogICAgIH5E
ZXZpY2VNb3Rpb25Db250cm9sbGVyKCk7CiAKQEAgLTUyLDYgKzUzLDExIEBAIHB1YmxpYzoKIAog
ICAgIGJvb2wgaXNBY3RpdmUoKSB7IHJldHVybiAhbV9saXN0ZW5lcnMuaXNFbXB0eSgpOyB9CiAK
KyAgICBzdGF0aWMgY29uc3QgQXRvbWljU3RyaW5nJiBzdXBwbGVtZW50TmFtZSgpOworICAgIHN0
YXRpYyBEZXZpY2VNb3Rpb25Db250cm9sbGVyKiBmcm9tKEZyYW1lKiBmcmFtZSkgeyByZXR1cm4g
c3RhdGljX2Nhc3Q8RGV2aWNlTW90aW9uQ29udHJvbGxlcio+KFBhZ2VTdXBwbGVtZW50Ojpmcm9t
KGZyYW1lLCBzdXBwbGVtZW50TmFtZSgpKSk7IH0KKyAgICBzdGF0aWMgRGV2aWNlTW90aW9uQ29u
dHJvbGxlciogZnJvbShQYWdlKiBwYWdlKSB7IHJldHVybiBzdGF0aWNfY2FzdDxEZXZpY2VNb3Rp
b25Db250cm9sbGVyKj4oUGFnZVN1cHBsZW1lbnQ6OmZyb20ocGFnZSwgc3VwcGxlbWVudE5hbWUo
KSkpOyB9CisgICAgc3RhdGljIGJvb2wgaXNBY3RpdmVBdChQYWdlKik7CisKIHByaXZhdGU6CiAg
ICAgRGV2aWNlTW90aW9uQ29udHJvbGxlcihEZXZpY2VNb3Rpb25DbGllbnQqKTsKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RldmljZU9yaWVudGF0aW9uQ2xpZW50LmggYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vRGV2aWNlT3JpZW50YXRpb25DbGllbnQuaAppbmRleCAzNDdjM2IzOTlh
MWRhMTFhM2QyNzQyMDhiNzhmYmRmYzRkNzQ0MTcwLi4yYzE2YjBjZDhiYzdhNzg1MDkxNmY4YmQw
MWQ2NThmNWZmMDY5YzRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRGV2aWNlT3Jp
ZW50YXRpb25DbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRGV2aWNlT3JpZW50YXRp
b25DbGllbnQuaApAQCAtMzAsNiArMzAsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNz
IERldmljZU9yaWVudGF0aW9uOwogY2xhc3MgRGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyOwor
Y2xhc3MgUGFnZTsKIAogY2xhc3MgRGV2aWNlT3JpZW50YXRpb25DbGllbnQgewogcHVibGljOgpA
QCAtNDIsNiArNDMsOCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGRldmljZU9yaWVudGF0
aW9uQ29udHJvbGxlckRlc3Ryb3llZCgpID0gMDsKIH07CiAKK3ZvaWQgcHJvdmlkZURldmljZU9y
aWVudGF0aW9uVG8oUGFnZSosIERldmljZU9yaWVudGF0aW9uQ2xpZW50Kik7CisKIH0gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIERldmljZU9yaWVudGF0aW9uQ2xpZW50X2gKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9EZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXIu
Y3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0RldmljZU9yaWVudGF0aW9uQ29udHJvbGxlci5jcHAK
aW5kZXggNjg2ODNmZDA1MDYzZmM4Y2I4NTZjM2QzMGIyZTJlNGVhOTNjNDJkOC4uMDUxNTM0OTBk
NTViNzFiZmUxYjVmNzc2NzM4MzFkNTE0ZmVlNzkzNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvZG9tL0RldmljZU9yaWVudGF0aW9uQ29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvZG9tL0RldmljZU9yaWVudGF0aW9uQ29udHJvbGxlci5jcHAKQEAgLTEzNyw0ICsxMzcsMjIg
QEAgdm9pZCBEZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXI6OmRpZENoYW5nZURldmljZU9yaWVu
dGF0aW9uKERldmljZU9yaWVudGF0aW9uKgogICAgICAgICBsaXN0ZW5lcnNWZWN0b3JbaV0tPmRp
c3BhdGNoRXZlbnQoZXZlbnQpOwogfQogCitjb25zdCBBdG9taWNTdHJpbmcmIERldmljZU9yaWVu
dGF0aW9uQ29udHJvbGxlcjo6c3VwcGxlbWVudE5hbWUoKQoreworICAgIERFRklORV9TVEFUSUNf
TE9DQUwoQXRvbWljU3RyaW5nLCBuYW1lLCAoImRldmljZU9yaWVudGF0aW9uIikpOworICAgIHJl
dHVybiBuYW1lOworfQorCitib29sIERldmljZU9yaWVudGF0aW9uQ29udHJvbGxlcjo6aXNBY3Rp
dmVBdChQYWdlKiBwYWdlKQoreworICAgIGlmIChEZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXIq
IHNlbGYgPSBEZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXI6OmZyb20ocGFnZSkpCisgICAgICAg
IHJldHVybiBzZWxmLT5pc0FjdGl2ZSgpOworICAgIHJldHVybiBmYWxzZTsKK30KKwordm9pZCBw
cm92aWRlRGV2aWNlT3JpZW50YXRpb25UbyhQYWdlKiBwYWdlLCBEZXZpY2VPcmllbnRhdGlvbkNs
aWVudCogY2xpZW50KQoreworICAgIFBhZ2VTdXBwbGVtZW50Ojpwcm92aWRlVG8ocGFnZSwgRGV2
aWNlT3JpZW50YXRpb25Db250cm9sbGVyOjpzdXBwbGVtZW50TmFtZSgpLCBEZXZpY2VPcmllbnRh
dGlvbkNvbnRyb2xsZXI6OmNyZWF0ZShwYWdlLCBjbGllbnQpKTsKK30KKwogfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RldmljZU9yaWVudGF0
aW9uQ29udHJvbGxlci5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0RldmljZU9yaWVudGF0aW9uQ29u
dHJvbGxlci5oCmluZGV4IDFiODc5OThkOTU3YjM3NzVmZGNlNWVmYTI5OTAwNjY0MzgwMzYxZjUu
LmQ4ZWZhY2EzOWRhNTQyMmFhZjVkMmYxZTU3ZmJjOGQ1N2MyNDRjYTQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9EZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXIuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vRGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyLmgKQEAgLTI3LDYgKzI3
LDcgQEAKICNkZWZpbmUgRGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyX2gKIAogI2luY2x1ZGUg
IkRPTVdpbmRvdy5oIgorI2luY2x1ZGUgIlBhZ2VTdXBwbGVtZW50LmgiCiAjaW5jbHVkZSAiVGlt
ZXIuaCIKIAogI2luY2x1ZGUgPHd0Zi9IYXNoQ291bnRlZFNldC5oPgpAQCAtMzcsNyArMzgsNyBA
QCBjbGFzcyBEZXZpY2VPcmllbnRhdGlvbjsKIGNsYXNzIERldmljZU9yaWVudGF0aW9uQ2xpZW50
OwogY2xhc3MgUGFnZTsKIAotY2xhc3MgRGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyIHsKK2Ns
YXNzIERldmljZU9yaWVudGF0aW9uQ29udHJvbGxlciA6IHB1YmxpYyBQYWdlU3VwcGxlbWVudCB7
CiBwdWJsaWM6CiAgICAgfkRldmljZU9yaWVudGF0aW9uQ29udHJvbGxlcigpOwogCkBAIC01Niw2
ICs1NywxMSBAQCBwdWJsaWM6CiAKICAgICBEZXZpY2VPcmllbnRhdGlvbkNsaWVudCogY2xpZW50
KCkgY29uc3QgeyByZXR1cm4gbV9jbGllbnQ7IH0KIAorICAgIHN0YXRpYyBjb25zdCBBdG9taWNT
dHJpbmcmIHN1cHBsZW1lbnROYW1lKCk7CisgICAgc3RhdGljIERldmljZU9yaWVudGF0aW9uQ29u
dHJvbGxlciogZnJvbShGcmFtZSogZnJhbWUpIHsgcmV0dXJuIHN0YXRpY19jYXN0PERldmljZU9y
aWVudGF0aW9uQ29udHJvbGxlcio+KFBhZ2VTdXBwbGVtZW50Ojpmcm9tKGZyYW1lLCBzdXBwbGVt
ZW50TmFtZSgpKSk7IH0KKyAgICBzdGF0aWMgRGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyKiBm
cm9tKFBhZ2UqIHBhZ2UpIHsgcmV0dXJuIHN0YXRpY19jYXN0PERldmljZU9yaWVudGF0aW9uQ29u
dHJvbGxlcio+KFBhZ2VTdXBwbGVtZW50Ojpmcm9tKHBhZ2UsIHN1cHBsZW1lbnROYW1lKCkpKTsg
fQorICAgIHN0YXRpYyBib29sIGlzQWN0aXZlQXQoUGFnZSopOworCiBwcml2YXRlOgogICAgIERl
dmljZU9yaWVudGF0aW9uQ29udHJvbGxlcihQYWdlKiwgRGV2aWNlT3JpZW50YXRpb25DbGllbnQq
KTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKaW5kZXggMmM0ZGM4NjRmNTMyNzY0NGNiMjExNWM1
MzFhZmExNGE2OTUzNDNjMy4uNjJlZWZmOWI5OTlkOGI3OTVlNDk2MjllMzQ5NzA2ODk0MWM5ZmQ4
MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCkBAIC0xOTQ2LDEwICsxOTQ2LDExIEBAIHZvaWQg
RG9jdW1lbnQ6OnN1c3BlbmRBY3RpdmVET01PYmplY3RzKEFjdGl2ZURPTU9iamVjdDo6UmVhc29u
Rm9yU3VzcGVuc2lvbiB3aHkpCiAgICAgaWYgKCFwYWdlKCkpCiAgICAgICAgIHJldHVybjsKIAot
ICAgIGlmIChwYWdlKCktPmRldmljZU1vdGlvbkNvbnRyb2xsZXIoKSkKLSAgICAgICAgcGFnZSgp
LT5kZXZpY2VNb3Rpb25Db250cm9sbGVyKCktPnN1c3BlbmRFdmVudHNGb3JBbGxMaXN0ZW5lcnMo
ZG9tV2luZG93KCkpOwotICAgIGlmIChwYWdlKCktPmRldmljZU9yaWVudGF0aW9uQ29udHJvbGxl
cigpKQotICAgICAgICBwYWdlKCktPmRldmljZU9yaWVudGF0aW9uQ29udHJvbGxlcigpLT5zdXNw
ZW5kRXZlbnRzRm9yQWxsTGlzdGVuZXJzKGRvbVdpbmRvdygpKTsKKyAgICBpZiAoRGV2aWNlTW90
aW9uQ29udHJvbGxlciogY29udHJvbGxlciA9IERldmljZU1vdGlvbkNvbnRyb2xsZXI6OmZyb20o
cGFnZSgpKSkKKyAgICAgICAgY29udHJvbGxlci0+c3VzcGVuZEV2ZW50c0ZvckFsbExpc3RlbmVy
cyhkb21XaW5kb3coKSk7CisgICAgaWYgKERldmljZU9yaWVudGF0aW9uQ29udHJvbGxlciogY29u
dHJvbGxlciA9IERldmljZU9yaWVudGF0aW9uQ29udHJvbGxlcjo6ZnJvbShwYWdlKCkpKQorICAg
ICAgICBjb250cm9sbGVyLT5zdXNwZW5kRXZlbnRzRm9yQWxsTGlzdGVuZXJzKGRvbVdpbmRvdygp
KTsKKwogI2VuZGlmCiB9CiAKQEAgLTE5NjEsMTAgKzE5NjIsMTAgQEAgdm9pZCBEb2N1bWVudDo6
cmVzdW1lQWN0aXZlRE9NT2JqZWN0cygpCiAgICAgaWYgKCFwYWdlKCkpCiAgICAgICAgIHJldHVy
bjsKIAotICAgIGlmIChwYWdlKCktPmRldmljZU1vdGlvbkNvbnRyb2xsZXIoKSkKLSAgICAgICAg
cGFnZSgpLT5kZXZpY2VNb3Rpb25Db250cm9sbGVyKCktPnJlc3VtZUV2ZW50c0ZvckFsbExpc3Rl
bmVycyhkb21XaW5kb3coKSk7Ci0gICAgaWYgKHBhZ2UoKS0+ZGV2aWNlT3JpZW50YXRpb25Db250
cm9sbGVyKCkpCi0gICAgICAgIHBhZ2UoKS0+ZGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyKCkt
PnJlc3VtZUV2ZW50c0ZvckFsbExpc3RlbmVycyhkb21XaW5kb3coKSk7CisgICAgaWYgKERldmlj
ZU1vdGlvbkNvbnRyb2xsZXIqIGNvbnRyb2xsZXIgPSBEZXZpY2VNb3Rpb25Db250cm9sbGVyOjpm
cm9tKHBhZ2UoKSkpCisgICAgICAgIGNvbnRyb2xsZXItPnJlc3VtZUV2ZW50c0ZvckFsbExpc3Rl
bmVycyhkb21XaW5kb3coKSk7CisgICAgaWYgKERldmljZU9yaWVudGF0aW9uQ29udHJvbGxlciog
Y29udHJvbGxlciA9IERldmljZU9yaWVudGF0aW9uQ29udHJvbGxlcjo6ZnJvbShwYWdlKCkpKQor
ICAgICAgICBjb250cm9sbGVyLT5yZXN1bWVFdmVudHNGb3JBbGxMaXN0ZW5lcnMoZG9tV2luZG93
KCkpOwogI2VuZGlmCiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2hpc3RvcnkvUGFn
ZUNhY2hlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2hpc3RvcnkvUGFnZUNhY2hlLmNwcAppbmRleCAy
YTA4MzYxOWM5ZjBkY2IyMGE1NmZlZDc1ZDMzNzdkMzY3NzNlMzYyLi5lOTY0Yzg4MjIyOGI4MDZj
MmVmYzc0ZmVhODUzMGY3NjAzNGJjZmJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9oaXN0
b3J5L1BhZ2VDYWNoZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaGlzdG9yeS9QYWdlQ2FjaGUu
Y3BwCkBAIC0xOTksMTEgKzE5OSwxMSBAQCBzdGF0aWMgdm9pZCBsb2dDYW5DYWNoZVBhZ2VEZWNp
c2lvbihQYWdlKiBwYWdlKQogICAgICAgICBjYW5ub3RDYWNoZSA9IHRydWU7CiAgICAgfQogI2lm
IEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJT04pCi0gICAgaWYgKHBhZ2UtPmRldmljZU1vdGlvbkNv
bnRyb2xsZXIoKSAmJiBwYWdlLT5kZXZpY2VNb3Rpb25Db250cm9sbGVyKCktPmlzQWN0aXZlKCkp
IHsKKyAgICBpZiAoRGV2aWNlTW90aW9uQ29udHJvbGxlcjo6aXNBY3RpdmVBdChwYWdlKSkgewog
ICAgICAgICBQQ0xPRygiICAgLVBhZ2UgaXMgdXNpbmcgRGV2aWNlTW90aW9uIik7CiAgICAgICAg
IGNhbm5vdENhY2hlID0gdHJ1ZTsKICAgICB9Ci0gICAgaWYgKHBhZ2UtPmRldmljZU9yaWVudGF0
aW9uQ29udHJvbGxlcigpICYmIHBhZ2UtPmRldmljZU9yaWVudGF0aW9uQ29udHJvbGxlcigpLT5p
c0FjdGl2ZSgpKSB7CisgICAgaWYgKERldmljZU9yaWVudGF0aW9uQ29udHJvbGxlcjo6aXNBY3Rp
dmVBdChwYWdlKSkgewogICAgICAgICBQQ0xPRygiICAgLVBhZ2UgaXMgdXNpbmcgRGV2aWNlT3Jp
ZW50YXRpb24iKTsKICAgICAgICAgY2Fubm90Q2FjaGUgPSB0cnVlOwogICAgIH0KQEAgLTI5Niw4
ICsyOTYsOCBAQCBib29sIFBhZ2VDYWNoZTo6Y2FuQ2FjaGUoUGFnZSogcGFnZSkKICAgICAgICAg
JiYgcGFnZS0+YmFja0ZvcndhcmQoKS0+aXNBY3RpdmUoKQogICAgICAgICAmJiBwYWdlLT5zZXR0
aW5ncygpLT51c2VzUGFnZUNhY2hlKCkKICNpZiBFTkFCTEUoREVWSUNFX09SSUVOVEFUSU9OKQot
ICAgICAgICAmJiAhKHBhZ2UtPmRldmljZU1vdGlvbkNvbnRyb2xsZXIoKSAmJiBwYWdlLT5kZXZp
Y2VNb3Rpb25Db250cm9sbGVyKCktPmlzQWN0aXZlKCkpCi0gICAgICAgICYmICEocGFnZS0+ZGV2
aWNlT3JpZW50YXRpb25Db250cm9sbGVyKCkgJiYgcGFnZS0+ZGV2aWNlT3JpZW50YXRpb25Db250
cm9sbGVyKCktPmlzQWN0aXZlKCkpCisgICAgICAgICYmICFEZXZpY2VNb3Rpb25Db250cm9sbGVy
Ojppc0FjdGl2ZUF0KHBhZ2UpCisgICAgICAgICYmICFEZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xs
ZXI6OmlzQWN0aXZlQXQocGFnZSkKICNlbmRpZgogICAgICAgICAmJiBsb2FkVHlwZSAhPSBGcmFt
ZUxvYWRUeXBlUmVsb2FkCiAgICAgICAgICYmIGxvYWRUeXBlICE9IEZyYW1lTG9hZFR5cGVSZWxv
YWRGcm9tT3JpZ2luCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAKaW5kZXggOGVmMGQyY2RiNzEy
YzVmYzI0Y2Q2NTAzZTIyYTJhOTM3NDQwZmI3Mi4uMjFjN2IwOTBhZDAwZmYzZmYzMmM1OWFjYzQy
NTc1YWI4Y2IzNzJmYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNwcApAQCAtMTU2MSwxMCAr
MTU2MSwxMyBAQCBib29sIERPTVdpbmRvdzo6YWRkRXZlbnRMaXN0ZW5lcihjb25zdCBBdG9taWNT
dHJpbmcmIGV2ZW50VHlwZSwgUGFzc1JlZlB0cjxFdmVudAogICAgIGVsc2UgaWYgKGV2ZW50VHlw
ZSA9PSBldmVudE5hbWVzKCkuYmVmb3JldW5sb2FkRXZlbnQgJiYgYWxsb3dzQmVmb3JlVW5sb2Fk
TGlzdGVuZXJzKHRoaXMpKQogICAgICAgICBhZGRCZWZvcmVVbmxvYWRFdmVudExpc3RlbmVyKHRo
aXMpOwogI2lmIEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJT04pCi0gICAgZWxzZSBpZiAoZXZlbnRU
eXBlID09IGV2ZW50TmFtZXMoKS5kZXZpY2Vtb3Rpb25FdmVudCAmJiBmcmFtZSgpICYmIGZyYW1l
KCktPnBhZ2UoKSAmJiBmcmFtZSgpLT5wYWdlKCktPmRldmljZU1vdGlvbkNvbnRyb2xsZXIoKSkK
LSAgICAgICAgZnJhbWUoKS0+cGFnZSgpLT5kZXZpY2VNb3Rpb25Db250cm9sbGVyKCktPmFkZExp
c3RlbmVyKHRoaXMpOwotICAgIGVsc2UgaWYgKGV2ZW50VHlwZSA9PSBldmVudE5hbWVzKCkuZGV2
aWNlb3JpZW50YXRpb25FdmVudCAmJiBmcmFtZSgpICYmIGZyYW1lKCktPnBhZ2UoKSAmJiBmcmFt
ZSgpLT5wYWdlKCktPmRldmljZU9yaWVudGF0aW9uQ29udHJvbGxlcigpKQotICAgICAgICBmcmFt
ZSgpLT5wYWdlKCktPmRldmljZU9yaWVudGF0aW9uQ29udHJvbGxlcigpLT5hZGRMaXN0ZW5lcih0
aGlzKTsKKyAgICBlbHNlIGlmIChldmVudFR5cGUgPT0gZXZlbnROYW1lcygpLmRldmljZW1vdGlv
bkV2ZW50KSB7CisgICAgICAgIGlmIChEZXZpY2VNb3Rpb25Db250cm9sbGVyKiBjb250cm9sbGVy
ID0gRGV2aWNlTW90aW9uQ29udHJvbGxlcjo6ZnJvbShmcmFtZSgpKSkKKyAgICAgICAgICAgIGNv
bnRyb2xsZXItPmFkZExpc3RlbmVyKHRoaXMpOworICAgIH0gZWxzZSBpZiAoZXZlbnRUeXBlID09
IGV2ZW50TmFtZXMoKS5kZXZpY2VvcmllbnRhdGlvbkV2ZW50KSB7CisgICAgICAgIGlmIChEZXZp
Y2VPcmllbnRhdGlvbkNvbnRyb2xsZXIqIGNvbnRyb2xsZXIgPSBEZXZpY2VPcmllbnRhdGlvbkNv
bnRyb2xsZXI6OmZyb20oZnJhbWUoKSkpCisgICAgICAgICAgICBjb250cm9sbGVyLT5hZGRMaXN0
ZW5lcih0aGlzKTsKKyAgICB9CiAjZW5kaWYKIAogICAgIHJldHVybiB0cnVlOwpAQCAtMTU4NSwx
MCArMTU4OCwxMyBAQCBib29sIERPTVdpbmRvdzo6cmVtb3ZlRXZlbnRMaXN0ZW5lcihjb25zdCBB
dG9taWNTdHJpbmcmIGV2ZW50VHlwZSwgRXZlbnRMaXN0ZW5lcgogICAgIGVsc2UgaWYgKGV2ZW50
VHlwZSA9PSBldmVudE5hbWVzKCkuYmVmb3JldW5sb2FkRXZlbnQgJiYgYWxsb3dzQmVmb3JlVW5s
b2FkTGlzdGVuZXJzKHRoaXMpKQogICAgICAgICByZW1vdmVCZWZvcmVVbmxvYWRFdmVudExpc3Rl
bmVyKHRoaXMpOwogI2lmIEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJT04pCi0gICAgZWxzZSBpZiAo
ZXZlbnRUeXBlID09IGV2ZW50TmFtZXMoKS5kZXZpY2Vtb3Rpb25FdmVudCAmJiBmcmFtZSgpICYm
IGZyYW1lKCktPnBhZ2UoKSAmJiBmcmFtZSgpLT5wYWdlKCktPmRldmljZU1vdGlvbkNvbnRyb2xs
ZXIoKSkKLSAgICAgICAgZnJhbWUoKS0+cGFnZSgpLT5kZXZpY2VNb3Rpb25Db250cm9sbGVyKCkt
PnJlbW92ZUxpc3RlbmVyKHRoaXMpOwotICAgIGVsc2UgaWYgKGV2ZW50VHlwZSA9PSBldmVudE5h
bWVzKCkuZGV2aWNlb3JpZW50YXRpb25FdmVudCAmJiBmcmFtZSgpICYmIGZyYW1lKCktPnBhZ2Uo
KSAmJiBmcmFtZSgpLT5wYWdlKCktPmRldmljZU9yaWVudGF0aW9uQ29udHJvbGxlcigpKQotICAg
ICAgICBmcmFtZSgpLT5wYWdlKCktPmRldmljZU9yaWVudGF0aW9uQ29udHJvbGxlcigpLT5yZW1v
dmVMaXN0ZW5lcih0aGlzKTsKKyAgICBlbHNlIGlmIChldmVudFR5cGUgPT0gZXZlbnROYW1lcygp
LmRldmljZW1vdGlvbkV2ZW50KSB7CisgICAgICAgIGlmIChEZXZpY2VNb3Rpb25Db250cm9sbGVy
KiBjb250cm9sbGVyID0gRGV2aWNlTW90aW9uQ29udHJvbGxlcjo6ZnJvbShmcmFtZSgpKSkKKyAg
ICAgICAgICAgIGNvbnRyb2xsZXItPnJlbW92ZUxpc3RlbmVyKHRoaXMpOworICAgIH0gZWxzZSBp
ZiAoZXZlbnRUeXBlID09IGV2ZW50TmFtZXMoKS5kZXZpY2VvcmllbnRhdGlvbkV2ZW50KSB7Cisg
ICAgICAgIGlmIChEZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXIqIGNvbnRyb2xsZXIgPSBEZXZp
Y2VPcmllbnRhdGlvbkNvbnRyb2xsZXI6OmZyb20oZnJhbWUoKSkpCisgICAgICAgICAgICBjb250
cm9sbGVyLT5yZW1vdmVMaXN0ZW5lcih0aGlzKTsKKyAgICB9CiAjZW5kaWYKIAogICAgIHJldHVy
biB0cnVlOwpAQCAtMTY0MSwxMCArMTY0NywxMCBAQCB2b2lkIERPTVdpbmRvdzo6cmVtb3ZlQWxs
RXZlbnRMaXN0ZW5lcnMoKQogICAgIEV2ZW50VGFyZ2V0OjpyZW1vdmVBbGxFdmVudExpc3RlbmVy
cygpOwogCiAjaWYgRU5BQkxFKERFVklDRV9PUklFTlRBVElPTikKLSAgICBpZiAoZnJhbWUoKSAm
JiBmcmFtZSgpLT5wYWdlKCkgJiYgZnJhbWUoKS0+cGFnZSgpLT5kZXZpY2VNb3Rpb25Db250cm9s
bGVyKCkpCi0gICAgICAgIGZyYW1lKCktPnBhZ2UoKS0+ZGV2aWNlTW90aW9uQ29udHJvbGxlcigp
LT5yZW1vdmVBbGxMaXN0ZW5lcnModGhpcyk7Ci0gICAgaWYgKGZyYW1lKCkgJiYgZnJhbWUoKS0+
cGFnZSgpICYmIGZyYW1lKCktPnBhZ2UoKS0+ZGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyKCkp
Ci0gICAgICAgIGZyYW1lKCktPnBhZ2UoKS0+ZGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyKCkt
PnJlbW92ZUFsbExpc3RlbmVycyh0aGlzKTsKKyAgICBpZiAoRGV2aWNlTW90aW9uQ29udHJvbGxl
ciogY29udHJvbGxlciA9IERldmljZU1vdGlvbkNvbnRyb2xsZXI6OmZyb20oZnJhbWUoKSkpCisg
ICAgICAgIGNvbnRyb2xsZXItPmFkZExpc3RlbmVyKHRoaXMpOworICAgIGlmIChEZXZpY2VPcmll
bnRhdGlvbkNvbnRyb2xsZXIqIGNvbnRyb2xsZXIgPSBEZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xs
ZXI6OmZyb20oZnJhbWUoKSkpCisgICAgICAgIGNvbnRyb2xsZXItPmFkZExpc3RlbmVyKHRoaXMp
OwogI2VuZGlmCiAKICAgICByZW1vdmVBbGxVbmxvYWRFdmVudExpc3RlbmVycyh0aGlzKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL1BhZ2UuY3BwCmluZGV4IGM0YWZhODk3MDVlZTQ2M2YxYzhjOWU4ZjA5MTFjZDg5OTgxMGFh
YWUuLjM5MDU2MTk5NDg4N2RkYzg1Y2U2OGNjMTMyOGVmZTg0OGFjYWQ4ZDUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9Q
YWdlLmNwcApAQCAtMjksOCArMjksNiBAQAogI2luY2x1ZGUgIkNvbnRleHRNZW51Q2xpZW50Lmgi
CiAjaW5jbHVkZSAiQ29udGV4dE1lbnVDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAiRE9NV2luZG93
LmgiCi0jaW5jbHVkZSAiRGV2aWNlTW90aW9uQ29udHJvbGxlci5oIgotI2luY2x1ZGUgIkRldmlj
ZU9yaWVudGF0aW9uQ29udHJvbGxlci5oIgogI2luY2x1ZGUgIkRvY3VtZW50TWFya2VyQ29udHJv
bGxlci5oIgogI2luY2x1ZGUgIkRyYWdDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAiRWRpdG9yQ2xp
ZW50LmgiCkBAIC0xNDAsMTAgKzEzOCw2IEBAIFBhZ2U6OlBhZ2UoUGFnZUNsaWVudHMmIHBhZ2VD
bGllbnRzKQogI2lmIEVOQUJMRShDTElFTlRfQkFTRURfR0VPTE9DQVRJT04pCiAgICAgLCBtX2dl
b2xvY2F0aW9uQ29udHJvbGxlcihHZW9sb2NhdGlvbkNvbnRyb2xsZXI6OmNyZWF0ZSh0aGlzLCBw
YWdlQ2xpZW50cy5nZW9sb2NhdGlvbkNsaWVudCkpCiAjZW5kaWYKLSNpZiBFTkFCTEUoREVWSUNF
X09SSUVOVEFUSU9OKQotICAgICwgbV9kZXZpY2VNb3Rpb25Db250cm9sbGVyKFJ1bnRpbWVFbmFi
bGVkRmVhdHVyZXM6OmRldmljZU1vdGlvbkVuYWJsZWQoKSA/IERldmljZU1vdGlvbkNvbnRyb2xs
ZXI6OmNyZWF0ZShwYWdlQ2xpZW50cy5kZXZpY2VNb3Rpb25DbGllbnQpIDogbnVsbHB0cikKLSAg
ICAsIG1fZGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyKFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6
OmRldmljZU9yaWVudGF0aW9uRW5hYmxlZCgpID8gRGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVy
OjpjcmVhdGUodGhpcywgcGFnZUNsaWVudHMuZGV2aWNlT3JpZW50YXRpb25DbGllbnQpIDogbnVs
bHB0cikKLSNlbmRpZgogI2lmIEVOQUJMRShOT1RJRklDQVRJT05TKQogICAgICwgbV9ub3RpZmlj
YXRpb25Db250cm9sbGVyKE5vdGlmaWNhdGlvbkNvbnRyb2xsZXI6OmNyZWF0ZSh0aGlzLCBwYWdl
Q2xpZW50cy5ub3RpZmljYXRpb25DbGllbnQpKQogI2VuZGlmCkBAIC0yMzIsNiArMjI2LDcgQEAg
UGFnZTo6flBhZ2UoKQogI2lmbmRlZiBOREVCVUcKICAgICBwYWdlQ291bnRlci5kZWNyZW1lbnQo
KTsKICNlbmRpZgorCiB9CiAKIFZpZXdwb3J0QXJndW1lbnRzIFBhZ2U6OnZpZXdwb3J0QXJndW1l
bnRzKCkgY29uc3QKQEAgLTEwOTAsNiArMTA4NSwxNyBAQCB2b2lkIFBhZ2U6OmFkZFJlbGV2YW50
UmVwYWludGVkT2JqZWN0KFJlbmRlck9iamVjdCogb2JqZWN0LCBjb25zdCBJbnRSZWN0JiBvYmpl
YwogICAgIH0KIH0KIAordm9pZCBQYWdlOjpwcm92aWRlU3VwcGxlbWVudChjb25zdCBBdG9taWNT
dHJpbmcmIG5hbWUsIFBhc3NPd25QdHI8UGFnZVN1cHBsZW1lbnQ+IHN1cHBsZW1lbnQpCit7Cisg
ICAgQVNTRVJUKCFtX3N1cHBsaW1lbnRzLmdldChuYW1lLmltcGwoKSkpOworICAgIG1fc3VwcGxp
bWVudHMuc2V0KG5hbWUuaW1wbCgpLCBzdXBwbGVtZW50KTsKK30KKworUGFnZVN1cHBsZW1lbnQq
IFBhZ2U6OnJlcXVpcmVTdXBwbGVtZW50KGNvbnN0IEF0b21pY1N0cmluZyYgbmFtZSkKK3sKKyAg
ICByZXR1cm4gbV9zdXBwbGltZW50cy5nZXQobmFtZS5pbXBsKCkpOworfQorCiBQYWdlOjpQYWdl
Q2xpZW50czo6UGFnZUNsaWVudHMoKQogICAgIDogY2hyb21lQ2xpZW50KDApCiAgICAgLCBjb250
ZXh0TWVudUNsaWVudCgwKQpAQCAtMTA5Nyw4ICsxMTAzLDYgQEAgUGFnZTo6UGFnZUNsaWVudHM6
OlBhZ2VDbGllbnRzKCkKICAgICAsIGRyYWdDbGllbnQoMCkKICAgICAsIGluc3BlY3RvckNsaWVu
dCgwKQogICAgICwgZ2VvbG9jYXRpb25DbGllbnQoMCkKLSAgICAsIGRldmljZU1vdGlvbkNsaWVu
dCgwKQotICAgICwgZGV2aWNlT3JpZW50YXRpb25DbGllbnQoMCkKICAgICAsIHNwZWVjaElucHV0
Q2xpZW50KDApCiAgICAgLCBub3RpZmljYXRpb25DbGllbnQoMCkKICAgICAsIHVzZXJNZWRpYUNs
aWVudCgwKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmggYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL1BhZ2UuaAppbmRleCA1ZjZlMjA2NDlhODEyOGE1YzhiODRhOGU5MTNlNzMw
ZDNhODliMDk0Li4wNjZmYzRkM2NlNjZjZmQzMGIwMDEyN2NkNzk2ZTIzZmU1NmExMzVkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL1BhZ2UuaApAQCAtMjQsMTEgKzI0LDEzIEBACiAjaW5jbHVkZSAiRnJhbWVMb2FkZXJUeXBl
cy5oIgogI2luY2x1ZGUgIkZpbmRPcHRpb25zLmgiCiAjaW5jbHVkZSAiTGF5b3V0VHlwZXMuaCIK
KyNpbmNsdWRlICJQYWdlU3VwcGxlbWVudC5oIgogI2luY2x1ZGUgIlBhZ2VWaXNpYmlsaXR5U3Rh
dGUuaCIKICNpbmNsdWRlICJQbGF0Zm9ybVNjcmVlbi5oIgogI2luY2x1ZGUgIlBsYXRmb3JtU3Ry
aW5nLmgiCiAjaW5jbHVkZSAiVmlld3BvcnRBcmd1bWVudHMuaCIKICNpbmNsdWRlIDx3dGYvRm9y
d2FyZC5oPgorI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hTZXQu
aD4KICNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4KIApAQCAtNTIsMTAgKzU0LDYgQEAgbmFt
ZXNwYWNlIFdlYkNvcmUgewogICAgIGNsYXNzIENocm9tZUNsaWVudDsKICAgICBjbGFzcyBDb250
ZXh0TWVudUNsaWVudDsKICAgICBjbGFzcyBDb250ZXh0TWVudUNvbnRyb2xsZXI7Ci0gICAgY2xh
c3MgRGV2aWNlTW90aW9uQ2xpZW50OwotICAgIGNsYXNzIERldmljZU1vdGlvbkNvbnRyb2xsZXI7
Ci0gICAgY2xhc3MgRGV2aWNlT3JpZW50YXRpb25DbGllbnQ7Ci0gICAgY2xhc3MgRGV2aWNlT3Jp
ZW50YXRpb25Db250cm9sbGVyOwogICAgIGNsYXNzIERvY3VtZW50OwogICAgIGNsYXNzIERyYWdD
YXJldENvbnRyb2xsZXI7CiAgICAgY2xhc3MgRHJhZ0NsaWVudDsKQEAgLTExOCw4ICsxMTYsNiBA
QCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgICAgICBEcmFnQ2xpZW50KiBkcmFnQ2xpZW50
OwogICAgICAgICAgICAgSW5zcGVjdG9yQ2xpZW50KiBpbnNwZWN0b3JDbGllbnQ7CiAgICAgICAg
ICAgICBHZW9sb2NhdGlvbkNsaWVudCogZ2VvbG9jYXRpb25DbGllbnQ7Ci0gICAgICAgICAgICBE
ZXZpY2VNb3Rpb25DbGllbnQqIGRldmljZU1vdGlvbkNsaWVudDsKLSAgICAgICAgICAgIERldmlj
ZU9yaWVudGF0aW9uQ2xpZW50KiBkZXZpY2VPcmllbnRhdGlvbkNsaWVudDsKICAgICAgICAgICAg
IFJlZlB0cjxCYWNrRm9yd2FyZExpc3Q+IGJhY2tGb3J3YXJkQ2xpZW50OwogICAgICAgICAgICAg
U3BlZWNoSW5wdXRDbGllbnQqIHNwZWVjaElucHV0Q2xpZW50OwogICAgICAgICAgICAgTm90aWZp
Y2F0aW9uUHJlc2VudGVyKiBub3RpZmljYXRpb25DbGllbnQ7CkBAIC0xODQsMTAgKzE4MCw2IEBA
IG5hbWVzcGFjZSBXZWJDb3JlIHsKICNpZiBFTkFCTEUoQ0xJRU5UX0JBU0VEX0dFT0xPQ0FUSU9O
KQogICAgICAgICBHZW9sb2NhdGlvbkNvbnRyb2xsZXIqIGdlb2xvY2F0aW9uQ29udHJvbGxlcigp
IGNvbnN0IHsgcmV0dXJuIG1fZ2VvbG9jYXRpb25Db250cm9sbGVyLmdldCgpOyB9CiAjZW5kaWYK
LSNpZiBFTkFCTEUoREVWSUNFX09SSUVOVEFUSU9OKQotICAgICAgICBEZXZpY2VNb3Rpb25Db250
cm9sbGVyKiBkZXZpY2VNb3Rpb25Db250cm9sbGVyKCkgY29uc3QgeyByZXR1cm4gbV9kZXZpY2VN
b3Rpb25Db250cm9sbGVyLmdldCgpOyB9Ci0gICAgICAgIERldmljZU9yaWVudGF0aW9uQ29udHJv
bGxlciogZGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyKCkgY29uc3QgeyByZXR1cm4gbV9kZXZp
Y2VPcmllbnRhdGlvbkNvbnRyb2xsZXIuZ2V0KCk7IH0KLSNlbmRpZgogI2lmIEVOQUJMRShOT1RJ
RklDQVRJT05TKQogICAgICAgICBOb3RpZmljYXRpb25Db250cm9sbGVyKiBub3RpZmljYXRpb25D
b250cm9sbGVyKCkgY29uc3QgeyByZXR1cm4gbV9ub3RpZmljYXRpb25Db250cm9sbGVyLmdldCgp
OyB9CiAjZW5kaWYKQEAgLTM1Miw5ICszNDQsMTYgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAg
ICAgICB2b2lkIHNldFJlbGV2YW50UmVwYWludGVkT2JqZWN0c0NvdW50ZXJUaHJlc2hvbGQodWlu
dDY0X3QpOwogICAgICAgICB2b2lkIHN0YXJ0Q291bnRpbmdSZWxldmFudFJlcGFpbnRlZE9iamVj
dHMoKTsKICAgICAgICAgdm9pZCBhZGRSZWxldmFudFJlcGFpbnRlZE9iamVjdChSZW5kZXJPYmpl
Y3QqLCBjb25zdCBJbnRSZWN0JiBvYmplY3RQYWludFJlY3QpOwotICAgICAgICAKKworICAgICAg
ICB2b2lkIHByb3ZpZGVTdXBwbGVtZW50KGNvbnN0IEF0b21pY1N0cmluZyYsIFBhc3NPd25QdHI8
UGFnZVN1cHBsZW1lbnQ+KTsKKyAgICAgICAgUGFnZVN1cHBsZW1lbnQqIHJlcXVpcmVTdXBwbGVt
ZW50KGNvbnN0IEF0b21pY1N0cmluZyYpOworCiAgICAgcHJpdmF0ZToKICAgICAgICAgdm9pZCBp
bml0R3JvdXAoKTsKKyAgICAgICAgdm9pZCBub3RpZnlEZXN0cm95ZWRUb1N1cHBsZW1lbnRzKCk7
CisKKyAgICAgICAgdHlwZWRlZiBIYXNoTWFwPEF0b21pY1N0cmluZ0ltcGwqLCBPd25QdHI8UGFn
ZVN1cHBsZW1lbnQ+ID4gUGFnZVN1cHBsZW1lbnRNYXA7CisgICAgICAgIFBhZ2VTdXBwbGVtZW50
TWFwIG1fc3VwcGxpbWVudHM7CiAKICNpZiBBU1NFUlRfRElTQUJMRUQKICAgICAgICAgdm9pZCBj
aGVja0ZyYW1lQ291bnRDb25zaXN0ZW5jeSgpIGNvbnN0IHsgfQpAQCAtMzgzLDEwICszODIsNiBA
QCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAjaWYgRU5BQkxFKENMSUVOVF9CQVNFRF9HRU9MT0NBVElP
TikKICAgICAgICAgT3duUHRyPEdlb2xvY2F0aW9uQ29udHJvbGxlcj4gbV9nZW9sb2NhdGlvbkNv
bnRyb2xsZXI7CiAjZW5kaWYKLSNpZiBFTkFCTEUoREVWSUNFX09SSUVOVEFUSU9OKQotICAgICAg
ICBPd25QdHI8RGV2aWNlTW90aW9uQ29udHJvbGxlcj4gbV9kZXZpY2VNb3Rpb25Db250cm9sbGVy
OwotICAgICAgICBPd25QdHI8RGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyPiBtX2RldmljZU9y
aWVudGF0aW9uQ29udHJvbGxlcjsKLSNlbmRpZgogI2lmIEVOQUJMRShOT1RJRklDQVRJT05TKQog
ICAgICAgICBPd25QdHI8Tm90aWZpY2F0aW9uQ29udHJvbGxlcj4gbV9ub3RpZmljYXRpb25Db250
cm9sbGVyOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VTdXBw
bGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZVN1cHBsZW1lbnQuY3BwCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmZiOGMxZTc3ZWNmODFkNzY4MGM3YzRmMTczNjllMTdlMTE1YzgzODEKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VTdXBwbGVtZW50LmNwcApAQCAtMCww
ICsxLDU3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIEdvb2dsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisg
KiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFM
TCBUSEUgQ09QWVJJR0hUIE9XTkVSIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwg
T1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAq
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlBhZ2VT
dXBwbGVtZW50LmgiCisKKyNpbmNsdWRlICJGcmFtZS5oIgorI2luY2x1ZGUgIlBhZ2UuaCIKKwor
bmFtZXNwYWNlIFdlYkNvcmUgeworCitQYWdlU3VwcGxlbWVudDo6flBhZ2VTdXBwbGVtZW50KCkK
K3sKK30KKwordm9pZCBQYWdlU3VwcGxlbWVudDo6cHJvdmlkZVRvKFBhZ2UqIHBhZ2UsIGNvbnN0
IEF0b21pY1N0cmluZyYga2V5LCBQYXNzT3duUHRyPFBhZ2VTdXBwbGVtZW50PiBzdXBwbGVtZW50
KQoreworICAgIHBhZ2UtPnByb3ZpZGVTdXBwbGVtZW50KGtleSwgc3VwcGxlbWVudCk7Cit9CisK
K1BhZ2VTdXBwbGVtZW50KiBQYWdlU3VwcGxlbWVudDo6ZnJvbShQYWdlKiBwYWdlLCBjb25zdCBB
dG9taWNTdHJpbmcmIG5hbWUpCit7CisgICAgaWYgKCFwYWdlKQorICAgICAgICByZXR1cm4gMDsK
KyAgICByZXR1cm4gcGFnZS0+cmVxdWlyZVN1cHBsZW1lbnQobmFtZSk7Cit9CisKK1BhZ2VTdXBw
bGVtZW50KiBQYWdlU3VwcGxlbWVudDo6ZnJvbShGcmFtZSogZnJhbWUsIGNvbnN0IEF0b21pY1N0
cmluZyYgbmFtZSkKK3sKKyAgICBpZiAoIWZyYW1lIHx8ICFmcmFtZS0+cGFnZSgpKQorICAgICAg
ICByZXR1cm4gMDsKKyAgICByZXR1cm4gZnJhbWUtPnBhZ2UoKS0+cmVxdWlyZVN1cHBsZW1lbnQo
bmFtZSk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvUGFnZVN1cHBsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZVN1
cHBsZW1lbnQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45NjdmOGU3MjBiODlhOWE3M2U5NGNlYmExN2YzYzI1NjM0
YjY4Yjg2Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlU3VwcGxl
bWVudC5oCkBAIC0wLDAgKzEsNTMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgKiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBgYEFTIElTJycgQU5EIEFOWQor
ICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElO
IE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQgT1dORVIgT1IKKyAqIENPTlRSSUJVVE9SUyBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAor
ICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFBhZ2VTdXBwbGVtZW50
X2gKKyNkZWZpbmUgUGFnZVN1cHBsZW1lbnRfaAorCisjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4K
KyNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4KKyNpbmNsdWRlIDx3dGYvT3duUHRyLmg+Cisj
aW5jbHVkZSA8d3RmL3RleHQvQXRvbWljU3RyaW5nLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsK
KworY2xhc3MgUGFnZTsKK2NsYXNzIEZyYW1lOworCisKK2NsYXNzIFBhZ2VTdXBwbGVtZW50IHsK
K3B1YmxpYzoKKyAgICB2aXJ0dWFsIH5QYWdlU3VwcGxlbWVudCgpOworCisgICAgc3RhdGljIHZv
aWQgcHJvdmlkZVRvKFBhZ2UqLCBjb25zdCBBdG9taWNTdHJpbmcmLCBQYXNzT3duUHRyPFBhZ2VT
dXBwbGVtZW50Pik7CisgICAgc3RhdGljIFBhZ2VTdXBwbGVtZW50KiBmcm9tKFBhZ2UqLCBjb25z
dCBBdG9taWNTdHJpbmcmKTsKKyAgICBzdGF0aWMgUGFnZVN1cHBsZW1lbnQqIGZyb20oRnJhbWUq
LCBjb25zdCBBdG9taWNTdHJpbmcmKTsKK3ByaXZhdGU6CisgICAgT3duUHRyPFBhZ2VTdXBwbGVt
ZW50PiBtX3NlbGY7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBQ
YWdlU3VwcGxlbWVudF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvZ3JhcGhpY3Mv
U1ZHSW1hZ2UuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL2dyYXBoaWNzL1NWR0ltYWdlLmNwcApp
bmRleCBiYmNjOTFiNTJlM2Y5MWFlYmM0Y2Q0NTBmYzcwMTk2MTMxYWFmMjBlLi43ZTFjZTI4NTRk
ZDBjNjcyYTg4YWZmNDY4NmNlZjVmZjA0NTg1M2Y3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9zdmcvZ3JhcGhpY3MvU1ZHSW1hZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9ncmFw
aGljcy9TVkdJbWFnZS5jcHAKQEAgLTMzNywxMiArMzM3LDYgQEAgYm9vbCBTVkdJbWFnZTo6ZGF0
YUNoYW5nZWQoYm9vbCBhbGxEYXRhUmVjZWl2ZWQpCiAjZW5kaWYKICAgICAgICAgc3RhdGljIElu
c3BlY3RvckNsaWVudCogZHVtbXlJbnNwZWN0b3JDbGllbnQgPSBuZXcgRW1wdHlJbnNwZWN0b3JD
bGllbnQ7CiAgICAgICAgIHBhZ2VDbGllbnRzLmluc3BlY3RvckNsaWVudCA9IGR1bW15SW5zcGVj
dG9yQ2xpZW50OwotI2lmIEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJT04pCi0gICAgICAgIHN0YXRp
YyBEZXZpY2VNb3Rpb25DbGllbnQqIGR1bW15RGV2aWNlTW90aW9uQ2xpZW50ID0gbmV3IEVtcHR5
RGV2aWNlTW90aW9uQ2xpZW50OwotICAgICAgICBwYWdlQ2xpZW50cy5kZXZpY2VNb3Rpb25DbGll
bnQgPSBkdW1teURldmljZU1vdGlvbkNsaWVudDsKLSAgICAgICAgc3RhdGljIERldmljZU9yaWVu
dGF0aW9uQ2xpZW50KiBkdW1teURldmljZU9yaWVudGF0aW9uQ2xpZW50ID0gbmV3IEVtcHR5RGV2
aWNlT3JpZW50YXRpb25DbGllbnQ7Ci0gICAgICAgIHBhZ2VDbGllbnRzLmRldmljZU9yaWVudGF0
aW9uQ2xpZW50ID0gZHVtbXlEZXZpY2VPcmllbnRhdGlvbkNsaWVudDsKLSNlbmRpZgogCiAgICAg
ICAgIC8vIEZJWE1FOiBJZiB0aGlzIFNWRyBlbmRzIHVwIGxvYWRpbmcgaXRzZWxmLCB3ZSBtaWdo
dCBsZWFrIHRoZSB3b3JsZC4KICAgICAgICAgLy8gVGhlIENhY2hlIGNvZGUgZG9lcyBub3Qga25v
dyBhYm91dCBDYWNoZWRJbWFnZXMgaG9sZGluZyBGcmFtZXMgYW5kCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL3NyYy9XZWJWaWV3SW1wbC5jcHAKaW5kZXggMGYzNTM3OTA2ODQ3ZjQ1MjI2ZjQ3YzFl
ZTY3MDk4N2E4OTE0YjEzYS4uNzNjODZiMzg0NGIxNTk3MGRkMTI1YzBiY2RlZTI1YmIxNzA1YzU3
OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmNwcApAQCAtMzkz
LDcgKzM5Myw2IEBAIFdlYlZpZXdJbXBsOjpXZWJWaWV3SW1wbChXZWJWaWV3Q2xpZW50KiBjbGll
bnQpCiAjaWYgRU5BQkxFKElOUFVUX1NQRUVDSCkKICAgICBwYWdlQ2xpZW50cy5zcGVlY2hJbnB1
dENsaWVudCA9IG1fc3BlZWNoSW5wdXRDbGllbnQuZ2V0KCk7CiAjZW5kaWYKLSAgICBwYWdlQ2xp
ZW50cy5kZXZpY2VPcmllbnRhdGlvbkNsaWVudCA9IG1fZGV2aWNlT3JpZW50YXRpb25DbGllbnRQ
cm94eS5nZXQoKTsKICAgICBwYWdlQ2xpZW50cy5nZW9sb2NhdGlvbkNsaWVudCA9IG1fZ2VvbG9j
YXRpb25DbGllbnRQcm94eS5nZXQoKTsKICNpZiBFTkFCTEUoTk9USUZJQ0FUSU9OUykKICAgICBw
YWdlQ2xpZW50cy5ub3RpZmljYXRpb25DbGllbnQgPSBub3RpZmljYXRpb25QcmVzZW50ZXJJbXBs
KCk7CkBAIC00MDQsNyArNDAzLDcgQEAgV2ViVmlld0ltcGw6OldlYlZpZXdJbXBsKFdlYlZpZXdD
bGllbnQqIGNsaWVudCkKICNlbmRpZgogCiAgICAgbV9wYWdlID0gYWRvcHRQdHIobmV3IFBhZ2Uo
cGFnZUNsaWVudHMpKTsKLQorICAgIHByb3ZpZGVEZXZpY2VPcmllbnRhdGlvblRvKG1fcGFnZS5n
ZXQoKSwgbV9kZXZpY2VPcmllbnRhdGlvbkNsaWVudFByb3h5LmdldCgpKTsKICAgICBtX2dlb2xv
Y2F0aW9uQ2xpZW50UHJveHktPnNldENvbnRyb2xsZXIobV9wYWdlLT5nZW9sb2NhdGlvbkNvbnRy
b2xsZXIoKSk7CiAKICAgICBtX3BhZ2UtPnNldEdyb3VwTmFtZShwYWdlR3JvdXBOYW1lKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlldy5tbSBiL1NvdXJjZS9X
ZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQppbmRleCAzOGZhYjU1ODU2ZjI2NjJjNzIyMGE5
NjBhMGE3ZjExNzc0ODVkMDk2Li40ZGY3NzU4ZDAyZTE2YmNhOGM1YzVjZDg1MzNiMTBlMDc0Y2Ex
ODM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXcubW0KKysr
IGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCkBAIC03NDUsMTAgKzc0NSwx
MCBAQCBzdGF0aWMgTlNTdHJpbmcgKmxlYWtPdXRsb29rUXVpcmtzVXNlclNjcmlwdENvbnRlbnRz
KCkKICNpZiBFTkFCTEUoTk9USUZJQ0FUSU9OUykKICAgICBwYWdlQ2xpZW50cy5ub3RpZmljYXRp
b25DbGllbnQgPSBuZXcgV2ViTm90aWZpY2F0aW9uQ2xpZW50KHNlbGYpOwogI2VuZGlmCisgICAg
X3ByaXZhdGUtPnBhZ2UgPSBuZXcgUGFnZShwYWdlQ2xpZW50cyk7CiAjaWYgRU5BQkxFKERFVklD
RV9PUklFTlRBVElPTikKLSAgICBwYWdlQ2xpZW50cy5kZXZpY2VPcmllbnRhdGlvbkNsaWVudCA9
IG5ldyBXZWJEZXZpY2VPcmllbnRhdGlvbkNsaWVudChzZWxmKTsKKyAgICBXZWJDb3JlOjpwcm92
aWRlRGV2aWNlT3JpZW50YXRpb25UbyhfcHJpdmF0ZS0+cGFnZSwgbmV3IFdlYkRldmljZU9yaWVu
dGF0aW9uQ2xpZW50KHNlbGYpKTsKICNlbmRpZgotICAgIF9wcml2YXRlLT5wYWdlID0gbmV3IFBh
Z2UocGFnZUNsaWVudHMpOwogCiAgICAgX3ByaXZhdGUtPnBhZ2UtPnNldENhblN0YXJ0TWVkaWEo
W3NlbGYgd2luZG93XSk7CiAgICAgX3ByaXZhdGUtPnBhZ2UtPnNldHRpbmdzKCktPnNldExvY2Fs
U3RvcmFnZURhdGFiYXNlUGF0aChbW3NlbGYgcHJlZmVyZW5jZXNdIF9sb2NhbFN0b3JhZ2VEYXRh
YmFzZVBhdGhdKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvcXQvQXBpL3F3ZWJwYWdlLmNw
cCBiL1NvdXJjZS9XZWJLaXQvcXQvQXBpL3F3ZWJwYWdlLmNwcAppbmRleCA1MzVjODVkMWUyOTM2
NmEzOGNmZDU3ODYyM2UxOTVlMDIxNjI4NzI5Li44ZWQ3YzFjOTliYmJlYjExNWJjMTc3M2RmOGZj
ZjU4ODQwN2ExYzBhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3F0L0FwaS9xd2VicGFnZS5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9xdC9BcGkvcXdlYnBhZ2UuY3BwCkBAIC0zMjIsMTQgKzMy
Miw2IEBAIFFXZWJQYWdlUHJpdmF0ZTo6UVdlYlBhZ2VQcml2YXRlKFFXZWJQYWdlICpxcSkKICAg
ICBwYWdlQ2xpZW50cy5lZGl0b3JDbGllbnQgPSBuZXcgRWRpdG9yQ2xpZW50UXQocSk7CiAgICAg
cGFnZUNsaWVudHMuZHJhZ0NsaWVudCA9IG5ldyBEcmFnQ2xpZW50UXQocSk7CiAgICAgcGFnZUNs
aWVudHMuaW5zcGVjdG9yQ2xpZW50ID0gbmV3IEluc3BlY3RvckNsaWVudFF0KHEpOwotI2lmIEVO
QUJMRShERVZJQ0VfT1JJRU5UQVRJT04pCi0gICAgaWYgKHVzZU1vY2spCi0gICAgICAgIHBhZ2VD
bGllbnRzLmRldmljZU9yaWVudGF0aW9uQ2xpZW50ID0gbmV3IERldmljZU9yaWVudGF0aW9uQ2xp
ZW50TW9jazsKLSAgICBlbHNlCi0gICAgICAgIHBhZ2VDbGllbnRzLmRldmljZU9yaWVudGF0aW9u
Q2xpZW50ID0gbmV3IERldmljZU9yaWVudGF0aW9uQ2xpZW50UXQ7Ci0KLSAgICBwYWdlQ2xpZW50
cy5kZXZpY2VNb3Rpb25DbGllbnQgPSBuZXcgRGV2aWNlTW90aW9uQ2xpZW50UXQ7Ci0jZW5kaWYK
ICNpZiBFTkFCTEUoQ0xJRU5UX0JBU0VEX0dFT0xPQ0FUSU9OKQogICAgIGlmICh1c2VNb2NrKQog
ICAgICAgICBwYWdlQ2xpZW50cy5nZW9sb2NhdGlvbkNsaWVudCA9IG5ldyBHZW9sb2NhdGlvbkNs
aWVudE1vY2s7CkBAIC0zNDAsNiArMzMyLDEzIEBAIFFXZWJQYWdlUHJpdmF0ZTo6UVdlYlBhZ2VQ
cml2YXRlKFFXZWJQYWdlICpxcSkKICAgICBwYWdlQ2xpZW50cy5ub3RpZmljYXRpb25DbGllbnQg
PSBOb3RpZmljYXRpb25QcmVzZW50ZXJDbGllbnRRdDo6bm90aWZpY2F0aW9uUHJlc2VudGVyKCk7
CiAjZW5kaWYKICAgICBwYWdlID0gbmV3IFBhZ2UocGFnZUNsaWVudHMpOworI2lmIEVOQUJMRShE
RVZJQ0VfT1JJRU5UQVRJT04pCisgICAgaWYgKHVzZU1vY2spCisgICAgICAgIFdlYkNvcmU6OnBy
b3ZpZGVEZXZpY2VPcmllbnRhdGlvblRvKHBhZ2UsIG5ldyBEZXZpY2VPcmllbnRhdGlvbkNsaWVu
dE1vY2spOworICAgIGVsc2UKKyAgICAgICAgV2ViQ29yZTo6cHJvdmlkZURldmljZU9yaWVudGF0
aW9uVG8ocGFnZSwgbmV3IERldmljZU9yaWVudGF0aW9uQ2xpZW50UXQpOworICAgIFdlYkNvcmU6
OnByb3ZpZGVEZXZpY2VNb3Rpb25UbyhwYWdlLCBuZXcgRGV2aWNlTW90aW9uQ2xpZW50UXQpOwor
I2VuZGlmCiAKICAgICAvLyBCeSBkZWZhdWx0IGVhY2ggcGFnZSBpcyBwdXQgaW50byB0aGVpciBv
d24gdW5pcXVlIHBhZ2UgZ3JvdXAsIHdoaWNoIGFmZmVjdHMgcG9wdXAgd2luZG93cwogICAgIC8v
IGFuZCB2aXNpdGVkIGxpbmtzLiBQYWdlIGdyb3VwcyAocGVyIHByb2Nlc3Mgb25seSkgaXMgYSBm
ZWF0dXJlIG1ha2luZyBpdCBwb3NzaWJsZSB0byB1c2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvcXQvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQuY3BwIGIvU291cmNl
L1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRRdC5jcHAKaW5k
ZXggZjAwNjcwNjhhM2Q3NmFhNDU2Zjk0NDFkMTJkNjZkMWQ4NDk1MzE3My4uMDEzYTE0OTYwYzc0
MTNhYjM3ZjAwZDE4ZDhlODA5ODczYzk4YzVlYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9x
dC9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRRdC5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRRdC5jcHAKQEAg
LTg1Nyw3ICs4NTcsNyBAQCB2b2lkIER1bXBSZW5kZXJUcmVlU3VwcG9ydFF0OjpzZXRNb2NrRGV2
aWNlT3JpZW50YXRpb24oUVdlYlBhZ2UqIHBhZ2UsIGJvb2wgY2FuUAogewogI2lmIEVOQUJMRShE
RVZJQ0VfT1JJRU5UQVRJT04pCiAgICAgUGFnZSogY29yZVBhZ2UgPSBRV2ViUGFnZVByaXZhdGU6
OmNvcmUocGFnZSk7Ci0gICAgRGV2aWNlT3JpZW50YXRpb25DbGllbnRNb2NrKiBtb2NrQ2xpZW50
ID0gdG9EZXZpY2VPcmllbnRhdGlvbkNsaWVudE1vY2soY29yZVBhZ2UtPmRldmljZU9yaWVudGF0
aW9uQ29udHJvbGxlcigpLT5jbGllbnQoKSk7CisgICAgRGV2aWNlT3JpZW50YXRpb25DbGllbnRN
b2NrKiBtb2NrQ2xpZW50ID0gdG9EZXZpY2VPcmllbnRhdGlvbkNsaWVudE1vY2soRGV2aWNlT3Jp
ZW50YXRpb25Db250cm9sbGVyOjpmcm9tKGNvcmVQYWdlKS0+Y2xpZW50KCkpOwogICAgIG1vY2tD
bGllbnQtPnNldE9yaWVudGF0aW9uKERldmljZU9yaWVudGF0aW9uOjpjcmVhdGUoY2FuUHJvdmlk
ZUFscGhhLCBhbHBoYSwgY2FuUHJvdmlkZUJldGEsIGJldGEsIGNhblByb3ZpZGVHYW1tYSwgZ2Ft
bWEpKTsKICNlbmRpZgogfQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>126690</attachid>
            <date>2012-02-12 16:50:03 -0800</date>
            <delta_ts>2012-02-12 17:18:45 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-78085-20120213095001.patch</filename>
            <type>text/plain</type>
            <size>41835</size>
            <attacher name="Hajime Morrita">morrita</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA3NTE1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYmRjMDEwZGI4NWZkYWQ2
ZGVhZmMyODQyZTliZDdiYmEwNmRjMzVlMi4uNTQyZjFjOTIwY2U5NTk5NDkyZWU1ZmUyNDc5OWRl
NDA0MmZlMzY3NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDg1IEBACisyMDEyLTAyLTA5ICBIYWpp
bWUgTW9ycml0YSAgPG1vcnJpdGFAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFBhZ2Ugc2hvdWxk
IGhhdmUgbGVzcyBpbnRydXNpdmUgd2F5IHRvIGFzc29jaWF0ZSBBUEkgaW1wbGVtZW50YXRpb24g
b2JqZWN0cy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTc4MDg1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQWRhbSBCYXJ0aC4KKworICAgICAgICBJbnRy
b2R1Y2luZyBQYWdlU3VwcGxlbWVudCBpbnRlcmZhY2UgdG8gYXR0YWNoIGJlaGluZC10aGUtZmxh
Zy1pc2gKKyAgICAgICAgb2JqZWN0cyB0byBQYWdlIGluc3RhbmNlcy4KKworICAgICAgICBUaGlz
IGNoYW5nZSBhaW1zIHRvIGltcHJvdmUgbW9kdWxhcml0eSBvZiBNb2R1bGVzLyBlbnRyaWVzLiBX
aXRoCisgICAgICAgIFBhZ2VTdXBwbGVtZW50IG1lY2hpbmFyeSwgd2UgY2FuIGVsaW1pbmF0ZSBp
ZmRlZiBjb25kaXRpb25hbHMgZnJvbQorICAgICAgICBQYWdlLmgvUGFnZS5jcHAgYW5kIGFyZSBh
YmxlIHRvIGFkZCBNb2R1bGVzLyBlbnRyaWVzIHdpdGhvdXQKKyAgICAgICAgdG91Y2hpbmcgbm9u
LU1vZHVsZSBXZWJDb3JlIGZpbGVzLiBXZWJLaXQgQVBJIGNsYXNzZXMgbGlrZSBXZWJQYWdlCisg
ICAgICAgIGNhbiAicHJvdmlkZSIgdGhlc2Ugb2JqZWN0cyBkeW5hbWljYWxseSBkdXJpbmcgdGhl
IFBhZ2Ugc2V0dXAgcGhhc2UuCisKKyAgICAgICAgSW4gdGhpcyBjaGFuZ2UsIERldmljZU1vdGlv
bkNvbnRyb2xsZXIgYW5kCisgICAgICAgIERldmljZU9yaWVudGF0aW9uQ29udHJvbGxlciBpcyB1
cGRhdGVkIHRvIGFkb3B0IFBhZ2VTdXBwbGVtZW50CisgICAgICAgIGludGVmYWNlIGZvciBhbiBp
bGx1c3RyYXRpdmUgcHVycG9zZSBiZWNhdXNlIHRoZXkgYXJlIGdvaW5nIHRvCisgICAgICAgIG1v
dmUgaW50byBNb2R1bGVzLyBzaG9ydGx5LiBPdGhlciBQYWdlIGFzc29jaWF0ZWQgQVBJIGJhY2tp
bmcKKyAgICAgICAgb2JqZWN0cyBhbHNvIHNob3VsZCBiZSB0cmFuc2Zvcm1lZCB0byBQYWdlU3Vw
cGxlbWVudCBmYW1pbHkuCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQWRhbSBCYXJ0aC4KKworICAg
ICAgICBObyBuZXcgdGVzdHMuIE5vIGJlaGF2aW9yIGNoYW5nZS4KKworICAgICAgICAqIENNYWtl
TGlzdHMudHh0OgorICAgICAgICAqIEdOVW1ha2VmaWxlLmxpc3QuYW06CisgICAgICAgICogVGFy
Z2V0LnByaToKKyAgICAgICAgKiBXZWJDb3JlLmd5cGk6CisgICAgICAgICogV2ViQ29yZS52Y3By
b2ovV2ViQ29yZS52Y3Byb2o6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qOgorICAgICAgICAqIGRvbS9EZXZpY2VNb3Rpb25DbGllbnQuaDoKKyAgICAgICAgKFdl
YkNvcmUpOgorICAgICAgICAqIGRvbS9EZXZpY2VNb3Rpb25Db250cm9sbGVyLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkRldmljZU1vdGlvbkNvbnRyb2xsZXI6OnN1cHBsZW1lbnROYW1lKToKKyAg
ICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6RGV2aWNlTW90aW9uQ29udHJvbGxl
cjo6aXNBY3RpdmVBdCk6CisgICAgICAgIChXZWJDb3JlOjpwcm92aWRlRGV2aWNlTW90aW9uVG8p
OgorICAgICAgICAqIGRvbS9EZXZpY2VNb3Rpb25Db250cm9sbGVyLmg6CisgICAgICAgIChEZXZp
Y2VNb3Rpb25Db250cm9sbGVyKToKKyAgICAgICAgKFdlYkNvcmU6OkRldmljZU1vdGlvbkNvbnRy
b2xsZXI6OmZyb20pOgorICAgICAgICAqIGRvbS9EZXZpY2VPcmllbnRhdGlvbkNsaWVudC5oOgor
ICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgICogZG9tL0RldmljZU9yaWVudGF0aW9uQ29udHJv
bGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXI6
OnN1cHBsZW1lbnROYW1lKToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6
RGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyOjppc0FjdGl2ZUF0KToKKyAgICAgICAgKFdlYkNv
cmU6OnByb3ZpZGVEZXZpY2VPcmllbnRhdGlvblRvKToKKyAgICAgICAgKiBkb20vRGV2aWNlT3Jp
ZW50YXRpb25Db250cm9sbGVyLmg6CisgICAgICAgIChEZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xs
ZXIpOgorICAgICAgICAoV2ViQ29yZTo6RGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyOjpmcm9t
KToKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1l
bnQ6OnN1c3BlbmRBY3RpdmVET01PYmplY3RzKToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50
OjpyZXN1bWVBY3RpdmVET01PYmplY3RzKToKKyAgICAgICAgKiBoaXN0b3J5L1BhZ2VDYWNoZS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpsb2dDYW5DYWNoZVBhZ2VEZWNpc2lvbik6CisgICAgICAg
IChXZWJDb3JlOjpQYWdlQ2FjaGU6OmNhbkNhY2hlKToKKyAgICAgICAgKiBwYWdlL0RPTVdpbmRv
dy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpET01XaW5kb3c6OmFkZEV2ZW50TGlzdGVuZXIpOgor
ICAgICAgICAoV2ViQ29yZTo6RE9NV2luZG93OjpyZW1vdmVFdmVudExpc3RlbmVyKToKKyAgICAg
ICAgKFdlYkNvcmU6OkRPTVdpbmRvdzo6cmVtb3ZlQWxsRXZlbnRMaXN0ZW5lcnMpOgorICAgICAg
ICAqIHBhZ2UvUGFnZVN1cHBsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UGFnZVN1cHBs
ZW1lbnQ6On5QYWdlU3VwcGxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpQYWdlU3VwcGxlbWVu
dDo6cHJvdmlkZVRvKToKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2VTdXBwbGVtZW50Ojpmcm9tKToK
KyAgICAgICAgKiBwYWdlL1BhZ2VTdXBwbGVtZW50Lmg6CisgICAgICAgICogcGFnZS9QYWdlLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2U6OlBhZ2UpOgorICAgICAgICAoV2ViQ29yZTo6UGFn
ZTo6flBhZ2UpOgorICAgICAgICAoV2ViQ29yZTo6UGFnZTo6cHJvdmlkZVN1cHBsZW1lbnQpOgor
ICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpQYWdlOjpyZXF1aXJlU3VwcGxl
bWVudCk6CisgICAgICAgIChXZWJDb3JlOjpQYWdlOjpub3RpZnlEZXN0cm95ZWRUb1N1cHBsZW1l
bnRzKToKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2U6OlBhZ2VDbGllbnRzOjpQYWdlQ2xpZW50cyk6
CisgICAgICAgICogcGFnZS9QYWdlLmg6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFBh
Z2VDbGllbnRzKToKKyAgICAgICAgKFBhZ2UpOgorICAgICAgICAqIHN2Zy9ncmFwaGljcy9TVkdJ
bWFnZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdJbWFnZTo6ZGF0YUNoYW5nZWQpOgorCiAy
MDEyLTAyLTEyICBEYXZpZCBSZXZlbWFuICA8cmV2ZW1hbkBjaHJvbWl1bS5vcmc+CiAKICAgICAg
ICAgW0Nocm9taXVtXSBBdm9pZCB1bm5lY2Vzc2FyeSBtZW1zZXQgaW4gcGVyLXRpbGUgbGF5ZXIg
dXBkYXRlci4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nIGIv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXggMjc4ZTIwNDVhOGQ1ZDMxYzVh
NzQ4OGE1OGEzYTgwMTVlMzhiZTZiNC4uNTk3NDIxNTMxMjUxMjZhNDA0ZGIxYmY4Zjk0YjBhZDg5
MDdkY2RmNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKKysr
IGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAx
Mi0wMi0wOSAgSGFqaW1lIE1vcnJpdGEgIDxtb3JyaXRhQGNocm9taXVtLm9yZz4KKworICAgICAg
ICBQYWdlIHNob3VsZCBoYXZlIGxlc3MgaW50cnVzaXZlIHdheSB0byBhc3NvY2lhdGUgQVBJIGlt
cGxlbWVudGF0aW9uIG9iamVjdHMuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD03ODA4NQorCisgICAgICAgIFJldmlld2VkIGJ5IEFkYW0gQmFydGguCisK
KyAgICAgICAgKiBzcmMvV2ViVmlld0ltcGwuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3
SW1wbDo6V2ViVmlld0ltcGwpOgorCiAyMDEyLTAyLTEwICBEYXZpZCBHcm9nYW4gIDxkZ3JvZ2Fu
QGNocm9taXVtLm9yZz4KIAogICAgICAgICBEaXNhYmxlIEluZGV4ZWREQiBwZXJtaXNzaW9ucyBj
aGVjayBmcm9tIHNoYXJlZCB3b3JrZXJzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKaW5kZXggNWMzOGNhYzIxNGE2
Mzg1ZGQ4ZGQ1MzNkNzRjZWIwZDNjMDU5ZWIzNy4uOThmZDFjN2QyZjlhYzRiMjFkYjcwYzliYzFk
NjMyZDdmYmI5NWZjNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCisr
KyBiL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDEyLTAy
LTA5ICBIYWppbWUgTW9ycml0YSAgPG1vcnJpdGFAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFBh
Z2Ugc2hvdWxkIGhhdmUgbGVzcyBpbnRydXNpdmUgd2F5IHRvIGFzc29jaWF0ZSBBUEkgaW1wbGVt
ZW50YXRpb24gb2JqZWN0cy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTc4MDg1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQWRhbSBCYXJ0aC4KKworICAg
ICAgICAqIFdlYlZpZXcvV2ViVmlldy5tbToKKyAgICAgICAgKC1bV2ViVmlldyBfY29tbW9uSW5p
dGlhbGl6YXRpb25XaXRoRnJhbWVOYW1lOmdyb3VwTmFtZTpdKToKKwogMjAxMi0wMi0xMSAgU2hl
cmlmZiBCb3QgIDx3ZWJraXQucmV2aWV3LmJvdEBnbWFpbC5jb20+CiAKICAgICAgICAgVW5yZXZp
ZXdlZCwgcm9sbGluZyBvdXQgcjEwNzQzNS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvcXQv
Q2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9xdC9DaGFuZ2VMb2cKaW5kZXggMTQ4YTI3MzY5ODBl
MmIyODllZjViMGEyODQ1N2UwZjllY2ZhOGYxZS4uMDg4ZDdiZjJkODYyODVjYjdiMTZlNjk1ZmVm
MjdmYTcxYjJkOGE5NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9xdC9DaGFuZ2VMb2cKKysr
IGIvU291cmNlL1dlYktpdC9xdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAxMi0wMi0w
OSAgSGFqaW1lIE1vcnJpdGEgIDxtb3JyaXRhQGNocm9taXVtLm9yZz4KKworICAgICAgICBQYWdl
IHNob3VsZCBoYXZlIGxlc3MgaW50cnVzaXZlIHdheSB0byBhc3NvY2lhdGUgQVBJIGltcGxlbWVu
dGF0aW9uIG9iamVjdHMuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD03ODA4NQorCisgICAgICAgIFJldmlld2VkIGJ5IEFkYW0gQmFydGguCisKKyAgICAg
ICAgKiBBcGkvcXdlYnBhZ2UuY3BwOgorICAgICAgICAoUVdlYlBhZ2VQcml2YXRlOjpRV2ViUGFn
ZVByaXZhdGUpOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9y
dFF0LmNwcDoKKyAgICAgICAgKER1bXBSZW5kZXJUcmVlU3VwcG9ydFF0OjpzZXRNb2NrRGV2aWNl
T3JpZW50YXRpb24pOgorCiAyMDEyLTAyLTA5ICBTaW1vbiBIYXVzbWFubiAgPHNpbW9uLmhhdXNt
YW5uQG5va2lhLmNvbT4KIAogICAgICAgICBbUXRdIEZpeCBjb21waWxhdGlvbiB3aXRoIG5ld2Vy
IFF0NQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2Uv
V2ViQ29yZS9DTWFrZUxpc3RzLnR4dAppbmRleCA4YzMxNWQ2MjczMTc4MDcwMjlmNTM0ODBiNTcw
NTZkMWMzZWYxMjNiLi4zNGI0NTQ5MmI4NGMxZGQyZmQzNzBjZWQ4NWFhNTNhNjVjZTljY2ZiIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9DTWFrZUxpc3RzLnR4dApAQCAtMTAyNCw2ICsxMDI0LDcgQEAgU0VUKFdlYkNvcmVfU09V
UkNFUwogICAgIHBhZ2UvUGFnZUdyb3VwLmNwcAogICAgIHBhZ2UvUGFnZUdyb3VwTG9hZERlZmVy
cmVyLmNwcAogICAgIHBhZ2UvUGFnZVNlcmlhbGl6ZXIuY3BwCisgICAgcGFnZS9QYWdlU3VwcGxl
bWVudC5jcHAKICAgICBwYWdlL1BhZ2VWaXNpYmlsaXR5U3RhdGUuY3BwCiAgICAgcGFnZS9QZXJm
b3JtYW5jZS5jcHAKICAgICBwYWdlL1BlcmZvcm1hbmNlTmF2aWdhdGlvbi5jcHAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0gYi9Tb3VyY2UvV2ViQ29yZS9H
TlVtYWtlZmlsZS5saXN0LmFtCmluZGV4IDIxMDg0NjJlMWNmNWE1ZDRmYTNhMzM2MTg2OTg2YzRi
NjRhMGQzNjUuLjM0OGE2NTFhZWUzMzBmYzEwMDFjYTVjZWYwZTQ5YjIxMGRiYWFiNGIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KKysrIGIvU291cmNlL1dl
YkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQpAQCAtMjczMCw2ICsyNzMwLDggQEAgd2ViY29yZV9z
b3VyY2VzICs9IFwKIAlTb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VHcm91cExvYWREZWZlcnJlci5o
IFwKIAlTb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VTZXJpYWxpemVyLmNwcCBcCiAJU291cmNlL1dl
YkNvcmUvcGFnZS9QYWdlU2VyaWFsaXplci5oIFwKKwlTb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VT
dXBwbGVtZW50LmNwcCBcCisJU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlU3VwcGxlbWVudC5oIFwK
IAlTb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VWaXNpYmlsaXR5U3RhdGUuY3BwIFwKIAlTb3VyY2Uv
V2ViQ29yZS9wYWdlL1BhZ2VWaXNpYmlsaXR5U3RhdGUuaCBcCiAJU291cmNlL1dlYkNvcmUvcGFn
ZS9QZXJmb3JtYW5jZS5jcHAgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnBy
aSBiL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkKaW5kZXggMTQzZjc4Y2VkNzBjYWY5ZTU1YWYy
MWIwZmMyNTI3NzM1MTc1MDkyNC4uOGU0ZTkwN2MyNDBkYzg0NTQ1MjQyYzUyYzJiZjhiYzRjYWVk
YWNkNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9UYXJnZXQucHJpCkBAIC0xMDAwLDYgKzEwMDAsNyBAQCBTT1VSQ0VTICs9IFwKICAg
ICBwYWdlL1BhZ2UuY3BwIFwKICAgICBwYWdlL1BhZ2VHcm91cC5jcHAgXAogICAgIHBhZ2UvUGFn
ZUdyb3VwTG9hZERlZmVycmVyLmNwcCBcCisgICAgcGFnZS9QYWdlU3VwcGxlbWVudC5jcHAgXAog
ICAgIHBhZ2UvUGFnZVZpc2liaWxpdHlTdGF0ZS5jcHAgXAogICAgIHBhZ2UvUGVyZm9ybWFuY2Uu
Y3BwIFwKICAgICBwYWdlL1BlcmZvcm1hbmNlTmF2aWdhdGlvbi5jcHAgXApAQCAtMjA2Miw2ICsy
MDYzLDcgQEAgSEVBREVSUyArPSBcCiAgICAgcGFnZS9QYWdlR3JvdXAuaCBcCiAgICAgcGFnZS9Q
YWdlR3JvdXBMb2FkRGVmZXJyZXIuaCBcCiAgICAgcGFnZS9QYWdlLmggXAorICAgIHBhZ2UvUGFn
ZVN1cHBsZW1lbnQuaCBcCiAgICAgcGFnZS9QYWdlVmlzaWJpbGl0eVN0YXRlLmggXAogICAgIHBh
Z2UvUHJpbnRDb250ZXh0LmggXAogICAgIHBhZ2UvU2NyZWVuLmggXApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCmlu
ZGV4IDVmZTgwMTgzZmIzMjQ2NDVlYWMzOWQ2NjljZGFiOTQyZWMyNGM2YWYuLjcxYzUyNjQxZDFl
OGJlYTI0ZjRlNjM0MTMwMmRlZjhlNTY0OTc5M2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUuZ3lwaQorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKQEAgLTIxOSw2
ICsyMTksNyBAQAogICAgICAgICAgICAgJ3BhZ2UvUGFnZS5oJywKICAgICAgICAgICAgICdwYWdl
L1BhZ2VHcm91cC5oJywKICAgICAgICAgICAgICdwYWdlL1BhZ2VTZXJpYWxpemVyLmgnLAorICAg
ICAgICAgICAgJ3BhZ2UvUGFnZVN1cHBsZW1lbnQuaCcsCiAgICAgICAgICAgICAncGFnZS9QYWdl
VmlzaWJpbGl0eVN0YXRlLmgnLAogICAgICAgICAgICAgJ3BhZ2UvUG9zaXRpb25DYWxsYmFjay5o
JywKICAgICAgICAgICAgICdwYWdlL1Bvc2l0aW9uRXJyb3IuaCcsCkBAIC0yNjQxLDYgKzI2NDIs
NyBAQAogICAgICAgICAgICAgJ3BhZ2UvUGFnZUdyb3VwTG9hZERlZmVycmVyLmNwcCcsCiAgICAg
ICAgICAgICAncGFnZS9QYWdlR3JvdXBMb2FkRGVmZXJyZXIuaCcsCiAgICAgICAgICAgICAncGFn
ZS9QYWdlU2VyaWFsaXplci5jcHAnLAorICAgICAgICAgICAgJ3BhZ2UvUGFnZVN1cHBsZW1lbnQu
Y3BwJywKICAgICAgICAgICAgICdwYWdlL1BhZ2VWaXNpYmlsaXR5U3RhdGUuY3BwJywKICAgICAg
ICAgICAgICdwYWdlL1BlcmZvcm1hbmNlLmNwcCcsCiAgICAgICAgICAgICAncGFnZS9QZXJmb3Jt
YW5jZS5oJywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNv
cmUudmNwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oK
aW5kZXggMGEzMTMxMmQ3NzA3YWNjY2UxNzY4MGRkNjA4MzlkNmJjN2QwYzkyNi4uNTBlMDBmZjUy
YTljYTYzN2UxODY4Mjc1ODdjNWIxZmNkODYyNTEzNCAxMDA3NTUKLS0tIGEvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKQEAgLTI1NTU4LDYgKzI1NTU4LDE0IEBACiAJCQkJ
PgogCQkJPC9GaWxlPgogCQkJPEZpbGUKKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHBhZ2VcUGFnZVN1
cHBsZW1lbnQuY3BwIgorCQkJCT4KKwkJCTwvRmlsZT4KKwkJCTxGaWxlCisJCQkJUmVsYXRpdmVQ
YXRoPSIuLlxwYWdlXFBhZ2VTdXBwbGVtZW50LmgiCisJCQkJPgorCQkJPC9GaWxlPgorCQkJPEZp
bGUKIAkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHBhZ2VcUGFnZVZpc2liaWxpdHlTdGF0ZS5jcHAiCiAJ
CQkJPgogCQkJPC9GaWxlPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCmluZGV4IGU5NjE3OTNhYjI4MDdlYzJkOGY2NTc2Y2NlNGMwOTM3Y2I0
ZGU4M2QuLjhiNTE4Y2U1M2ZmMzdhOWU1MjIxNTc0NmE3ZGUwODI1YWE1MGIzN2MgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTM1
NDUsNiArMzU0NSw4IEBACiAJCUE3MTVFNjUzMTM0QkJCRUMwMEQ4RTcxMyAvKiBQcm9ncmVzc1No
YWRvd0VsZW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEE3MTVFNjUxMTM0QkJCRUMwMEQ4RTcxMyAvKiBQcm9ncmVzc1NoYWRvd0VsZW1lbnQuaCAq
LzsgfTsKIAkJQTcxODc2MEUwQjJBMTIwMTAwQTE2RUNFIC8qIERyYWdBY3Rpb25zLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNzE4NzYwRDBCMkExMjAx
MDBBMTZFQ0UgLyogRHJhZ0FjdGlvbnMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9OyB9OwogCQlBNzE4Nzg5MDBCMkQwNEFDMDBBMTZFQ0UgLyogRHJhZ0NvbnRy
b2xsZXJNYWMubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBBNzE4Nzg4RjBCMkQwNEFDMDBBMTZFQ0UgLyogRHJhZ0NvbnRyb2xsZXJNYWMubW0gKi87IH07
CisJCUE3MUUwODM3MTRFM0NFQUYwMDZBNDYxOSAvKiBQYWdlU3VwcGxlbWVudC5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNzFFMDgzNTE0RTNDRUFG
MDA2QTQ2MTkgLyogUGFnZVN1cHBsZW1lbnQuY3BwICovOyB9OworCQlBNzFFMDgzODE0RTNDRUFG
MDA2QTQ2MTkgLyogUGFnZVN1cHBsZW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEE3MUUwODM2MTRFM0NFQUYwMDZBNDYxOSAvKiBQYWdlU3VwcGxl
bWVudC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJ
CUE3MjNGNzdCMTQ4NENBNEMwMDhDNkRCRSAvKiBQbGF0Zm9ybUV4cG9ydE1hY3Jvcy5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTcyM0Y3N0ExNDg0Q0E0
QzAwOEM2REJFIC8qIFBsYXRmb3JtRXhwb3J0TWFjcm9zLmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQTczRjk1RkUxMkM5N0JGRTAwMzFBQUY5IC8q
IFJvdW5kZWRSZWN0LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEE3M0Y5NUZDMTJDOTdCRkUwMDMxQUFGOSAvKiBSb3VuZGVkUmVjdC5jcHAgKi87IH07
CiAJCUE3M0Y5NUZGMTJDOTdCRkUwMDMxQUFGOSAvKiBSb3VuZGVkUmVjdC5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTczRjk1RkQxMkM5N0JGRTAwMzFB
QUY5IC8qIFJvdW5kZWRSZWN0LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKQEAgLTEwNDAzLDYgKzEwNDA1LDggQEAKIAkJQTcxODc2MEQwQjJBMTIwMTAw
QTE2RUNFIC8qIERyYWdBY3Rpb25zLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IERyYWdBY3Rpb25zLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE3MTg3ODhGMEIy
RDA0QUMwMEExNkVDRSAvKiBEcmFnQ29udHJvbGxlck1hYy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLm9iamNwcDsgcGF0aCA9IERyYWdDb250cm9sbGVyTWFjLm1tOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQlBNzFBNzBDOTExQUZCMDIwMDA5ODlENkQgLyogSFRNTE1ldGVyRWxl
bWVudC5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gSFRNTE1ldGVyRWxlbWVudC5pZGw7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUE3MUUwODM1MTRFM0NFQUYwMDZBNDYxOSAvKiBQ
YWdlU3VwcGxlbWVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBQ
YWdlU3VwcGxlbWVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUE3MUUwODM2
MTRFM0NFQUYwMDZBNDYxOSAvKiBQYWdlU3VwcGxlbWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBQYWdlU3VwcGxlbWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQlBNzIzRjc3QTE0ODRDQTRDMDA4QzZEQkUgLyogUGxhdGZvcm1FeHBvcnRNYWNyb3MuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUGxhdGZvcm1FeHBvcnRNYWNyb3MuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTczRjk1RkMxMkM5N0JGRTAwMzFBQUY5IC8q
IFJvdW5kZWRSZWN0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJv
dW5kZWRSZWN0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTczRjk1RkQxMkM5
N0JGRTAwMzFBQUY5IC8qIFJvdW5kZWRSZWN0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFJvdW5kZWRSZWN0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xNTIw
NSw2ICsxNTIwOSw4IEBACiAJCQkJN0E2NzRCREEwRjlFQkY0RTAwNkNGMDk5IC8qIFBhZ2VHcm91
cExvYWREZWZlcnJlci5oICovLAogCQkJCTM3MUU2NUNEMTM2NjFFRUQwMEJFRURCMCAvKiBQYWdl
U2VyaWFsaXplci5jcHAgKi8sCiAJCQkJMzcxRTY1Q0IxMzY2MUVEQzAwQkVFREIwIC8qIFBhZ2VT
ZXJpYWxpemVyLmggKi8sCisJCQkJQTcxRTA4MzUxNEUzQ0VBRjAwNkE0NjE5IC8qIFBhZ2VTdXBw
bGVtZW50LmNwcCAqLywKKwkJCQlBNzFFMDgzNjE0RTNDRUFGMDA2QTQ2MTkgLyogUGFnZVN1cHBs
ZW1lbnQuaCAqLywKIAkJCQlGRkQ1Qjk3NzEzNUNDOTc4MDBENUU5MkEgLyogUGFnZVZpc2liaWxp
dHlTdGF0ZS5jcHAgKi8sCiAJCQkJRkZENUI5NzgxMzVDQzk3ODAwRDVFOTJBIC8qIFBhZ2VWaXNp
YmlsaXR5U3RhdGUuaCAqLywKIAkJCQk4QTg0NEQwMTExRDNDMThFMDAxNDA2NUMgLyogUGVyZm9y
bWFuY2UuY3BwICovLApAQCAtMjMyMjcsNiArMjMyMzMsNyBAQAogCQkJCUYzODIwODk1MTQ3RDM1
RjkwMDEwQkMwNiAvKiBQYWdlUnVudGltZUFnZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlGMzQ3
NDJFNTEzNDM2MzNDMDA1MzFCQzIgLyogUGFnZVNjcmlwdERlYnVnU2VydmVyLmggaW4gSGVhZGVy
cyAqLywKIAkJCQkzNzFFNjVDQzEzNjYxRURDMDBCRUVEQjAgLyogUGFnZVNlcmlhbGl6ZXIuaCBp
biBIZWFkZXJzICovLAorCQkJCUE3MUUwODM4MTRFM0NFQUYwMDZBNDYxOSAvKiBQYWdlU3VwcGxl
bWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTEyODRBRTExMDQ0N0Q0NTAwRUFFQjUyIC8qIFBh
Z2VUcmFuc2l0aW9uRXZlbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTUxRTFFQ0MzMEM5MUM5MDQw
MERDMjU1QiAvKiBQYWdlVVJMUmVjb3JkLmggaW4gSGVhZGVycyAqLywKIAkJCQlGRkQ1Qjk3QjEz
NUNDOTc4MDBENUU5MkEgLyogUGFnZVZpc2liaWxpdHlTdGF0ZS5oIGluIEhlYWRlcnMgKi8sCkBA
IC0yNjM2MCw2ICsyNjM2Nyw3IEBACiAJCQkJRjM4MjA4OTQxNDdEMzVGOTAwMTBCQzA2IC8qIFBh
Z2VSdW50aW1lQWdlbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRjM0NzQyRTQxMzQzNjMzQzAw
NTMxQkMyIC8qIFBhZ2VTY3JpcHREZWJ1Z1NlcnZlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkz
NzFFNjVDRTEzNjYxRUVEMDBCRUVEQjAgLyogUGFnZVNlcmlhbGl6ZXIuY3BwIGluIFNvdXJjZXMg
Ki8sCisJCQkJQTcxRTA4MzcxNEUzQ0VBRjAwNkE0NjE5IC8qIFBhZ2VTdXBwbGVtZW50LmNwcCBp
biBTb3VyY2VzICovLAogCQkJCUUxMjg0QUVBMTA0NDdERUUwMEVBRUI1MiAvKiBQYWdlVHJhbnNp
dGlvbkV2ZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTUxRTFFQ0MyMEM5MUM5MDQwMERDMjU1
QiAvKiBQYWdlVVJMUmVjb3JkLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUZGRDVCOTdBMTM1Q0M5
NzgwMEQ1RTkyQSAvKiBQYWdlVmlzaWJpbGl0eVN0YXRlLmNwcCBpbiBTb3VyY2VzICovLApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RldmljZU1vdGlvbkNsaWVudC5oIGIvU291cmNl
L1dlYkNvcmUvZG9tL0RldmljZU1vdGlvbkNsaWVudC5oCmluZGV4IDQ1YmYxMWFlYWIzYzJmY2Mx
ZDRkMzA3NjhiMTE4YmY3YjUxZjU5OTIuLjM0ZTI4ZTJiMjEyNTdiOTQzZWVmNTFlZTcxM2E5Nzhj
OWM3YzU2M2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9EZXZpY2VNb3Rpb25DbGll
bnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRGV2aWNlTW90aW9uQ2xpZW50LmgKQEAgLTMw
LDYgKzMwLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBEZXZpY2VNb3Rpb25Db250
cm9sbGVyOwogY2xhc3MgRGV2aWNlTW90aW9uRGF0YTsKK2NsYXNzIFBhZ2U7CiAKIGNsYXNzIERl
dmljZU1vdGlvbkNsaWVudCB7CiBwdWJsaWM6CkBAIC00MSw2ICs0Miw4IEBAIHB1YmxpYzoKICAg
ICB2aXJ0dWFsIHZvaWQgZGV2aWNlTW90aW9uQ29udHJvbGxlckRlc3Ryb3llZCgpID0gMDsKIH07
CiAKK3ZvaWQgcHJvdmlkZURldmljZU1vdGlvblRvKFBhZ2UqLCBEZXZpY2VNb3Rpb25DbGllbnQq
KTsKKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gRGV2aWNlTW90aW9uQ2xp
ZW50X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9EZXZpY2VNb3Rpb25Db250cm9s
bGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9EZXZpY2VNb3Rpb25Db250cm9sbGVyLmNwcApp
bmRleCBkN2FjMzA1OWY3ZDFlNDlhMmZkYjE0YzE5NTRiZDNjN2RhNWRkNmFhLi5hY2VlYzAyNTdh
MmRkZWE2MTdmNmU0ZGJmMTY1YmJkOWZjZDliYTY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vRGV2aWNlTW90aW9uQ29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9t
L0RldmljZU1vdGlvbkNvbnRyb2xsZXIuY3BwCkBAIC0xMzUsNCArMTM1LDIyIEBAIHZvaWQgRGV2
aWNlTW90aW9uQ29udHJvbGxlcjo6ZGlkQ2hhbmdlRGV2aWNlTW90aW9uKERldmljZU1vdGlvbkRh
dGEqIGRldmljZU1vdGlvCiAgICAgICAgIGxpc3RlbmVyc1ZlY3RvcltpXS0+ZGlzcGF0Y2hFdmVu
dChldmVudCk7CiB9CiAKK2NvbnN0IEF0b21pY1N0cmluZyYgRGV2aWNlTW90aW9uQ29udHJvbGxl
cjo6c3VwcGxlbWVudE5hbWUoKQoreworICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3Ry
aW5nLCBuYW1lLCAoImRldmljZU1vdGlvbiIpKTsKKyAgICByZXR1cm4gbmFtZTsKK30KKworYm9v
bCBEZXZpY2VNb3Rpb25Db250cm9sbGVyOjppc0FjdGl2ZUF0KFBhZ2UqIHBhZ2UpCit7CisgICAg
aWYgKERldmljZU1vdGlvbkNvbnRyb2xsZXIqIHNlbGYgPSBEZXZpY2VNb3Rpb25Db250cm9sbGVy
Ojpmcm9tKHBhZ2UpKQorICAgICAgICByZXR1cm4gc2VsZi0+aXNBY3RpdmUoKTsKKyAgICByZXR1
cm4gZmFsc2U7Cit9CisKK3ZvaWQgcHJvdmlkZURldmljZU1vdGlvblRvKFBhZ2UqIHBhZ2UsIERl
dmljZU1vdGlvbkNsaWVudCogY2xpZW50KQoreworICAgIFBhZ2VTdXBwbGVtZW50Ojpwcm92aWRl
VG8ocGFnZSwgRGV2aWNlTW90aW9uQ29udHJvbGxlcjo6c3VwcGxlbWVudE5hbWUoKSwgRGV2aWNl
TW90aW9uQ29udHJvbGxlcjo6Y3JlYXRlKGNsaWVudCkpOworfQorCiB9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRGV2aWNlTW90aW9uQ29udHJv
bGxlci5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0RldmljZU1vdGlvbkNvbnRyb2xsZXIuaAppbmRl
eCBiYjhjY2E5NjEyNDYzNWYwN2YzMGM0ZTQyZWMzYjE5YWQ2NTYwZGM2Li45OTZjOTg4NjE1ZDUw
OGQwNGYzMzNmOTBhMmRjZmFhZWU2NzY0ZGNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9k
b20vRGV2aWNlTW90aW9uQ29udHJvbGxlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9EZXZp
Y2VNb3Rpb25Db250cm9sbGVyLmgKQEAgLTI3LDYgKzI3LDcgQEAKICNkZWZpbmUgRGV2aWNlTW90
aW9uQ29udHJvbGxlcl9oCiAKICNpbmNsdWRlICJET01XaW5kb3cuaCIKKyNpbmNsdWRlICJQYWdl
U3VwcGxlbWVudC5oIgogI2luY2x1ZGUgIlRpbWVyLmgiCiAjaW5jbHVkZSA8d3RmL0hhc2hDb3Vu
dGVkU2V0Lmg+CiAKQEAgLTM1LDcgKzM2LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3Mg
RGV2aWNlTW90aW9uRGF0YTsKIGNsYXNzIERldmljZU1vdGlvbkNsaWVudDsKIAotY2xhc3MgRGV2
aWNlTW90aW9uQ29udHJvbGxlciB7CitjbGFzcyBEZXZpY2VNb3Rpb25Db250cm9sbGVyIDogcHVi
bGljIFBhZ2VTdXBwbGVtZW50IHsKIHB1YmxpYzoKICAgICB+RGV2aWNlTW90aW9uQ29udHJvbGxl
cigpOwogCkBAIC01Miw2ICs1MywxMSBAQCBwdWJsaWM6CiAKICAgICBib29sIGlzQWN0aXZlKCkg
eyByZXR1cm4gIW1fbGlzdGVuZXJzLmlzRW1wdHkoKTsgfQogCisgICAgc3RhdGljIGNvbnN0IEF0
b21pY1N0cmluZyYgc3VwcGxlbWVudE5hbWUoKTsKKyAgICBzdGF0aWMgRGV2aWNlTW90aW9uQ29u
dHJvbGxlciogZnJvbShGcmFtZSogZnJhbWUpIHsgcmV0dXJuIHN0YXRpY19jYXN0PERldmljZU1v
dGlvbkNvbnRyb2xsZXIqPihQYWdlU3VwcGxlbWVudDo6ZnJvbShmcmFtZSwgc3VwcGxlbWVudE5h
bWUoKSkpOyB9CisgICAgc3RhdGljIERldmljZU1vdGlvbkNvbnRyb2xsZXIqIGZyb20oUGFnZSog
cGFnZSkgeyByZXR1cm4gc3RhdGljX2Nhc3Q8RGV2aWNlTW90aW9uQ29udHJvbGxlcio+KFBhZ2VT
dXBwbGVtZW50Ojpmcm9tKHBhZ2UsIHN1cHBsZW1lbnROYW1lKCkpKTsgfQorICAgIHN0YXRpYyBi
b29sIGlzQWN0aXZlQXQoUGFnZSopOworCiBwcml2YXRlOgogICAgIERldmljZU1vdGlvbkNvbnRy
b2xsZXIoRGV2aWNlTW90aW9uQ2xpZW50Kik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9EZXZpY2VPcmllbnRhdGlvbkNsaWVudC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0Rldmlj
ZU9yaWVudGF0aW9uQ2xpZW50LmgKaW5kZXggMzQ3YzNiMzk5YTFkYTExYTNkMjc0MjA4Yjc4ZmJk
ZmM0ZDc0NDE3MC4uMmMxNmIwY2Q4YmM3YTc4NTA5MTZmOGJkMDFkNjU4ZjVmZjA2OWM0YiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RldmljZU9yaWVudGF0aW9uQ2xpZW50LmgKKysr
IGIvU291cmNlL1dlYkNvcmUvZG9tL0RldmljZU9yaWVudGF0aW9uQ2xpZW50LmgKQEAgLTMwLDYg
KzMwLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBEZXZpY2VPcmllbnRhdGlvbjsK
IGNsYXNzIERldmljZU9yaWVudGF0aW9uQ29udHJvbGxlcjsKK2NsYXNzIFBhZ2U7CiAKIGNsYXNz
IERldmljZU9yaWVudGF0aW9uQ2xpZW50IHsKIHB1YmxpYzoKQEAgLTQyLDYgKzQzLDggQEAgcHVi
bGljOgogICAgIHZpcnR1YWwgdm9pZCBkZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXJEZXN0cm95
ZWQoKSA9IDA7CiB9OwogCit2b2lkIHByb3ZpZGVEZXZpY2VPcmllbnRhdGlvblRvKFBhZ2UqLCBE
ZXZpY2VPcmllbnRhdGlvbkNsaWVudCopOworCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNl
bmRpZiAvLyBEZXZpY2VPcmllbnRhdGlvbkNsaWVudF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vRGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9EZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXIuY3BwCmluZGV4IDY4NjgzZmQwNTA2M2Zj
OGNiODU2YzNkMzBiMmUyZTRlYTkzYzQyZDguLjA1MTUzNDkwZDU1YjcxYmZlMWI1Zjc3NjczODMx
ZDUxNGZlZTc5MzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9EZXZpY2VPcmllbnRh
dGlvbkNvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9EZXZpY2VPcmllbnRh
dGlvbkNvbnRyb2xsZXIuY3BwCkBAIC0xMzcsNCArMTM3LDIyIEBAIHZvaWQgRGV2aWNlT3JpZW50
YXRpb25Db250cm9sbGVyOjpkaWRDaGFuZ2VEZXZpY2VPcmllbnRhdGlvbihEZXZpY2VPcmllbnRh
dGlvbioKICAgICAgICAgbGlzdGVuZXJzVmVjdG9yW2ldLT5kaXNwYXRjaEV2ZW50KGV2ZW50KTsK
IH0KIAorY29uc3QgQXRvbWljU3RyaW5nJiBEZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXI6OnN1
cHBsZW1lbnROYW1lKCkKK3sKKyAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywg
bmFtZSwgKCJkZXZpY2VPcmllbnRhdGlvbiIpKTsKKyAgICByZXR1cm4gbmFtZTsKK30KKworYm9v
bCBEZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXI6OmlzQWN0aXZlQXQoUGFnZSogcGFnZSkKK3sK
KyAgICBpZiAoRGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyKiBzZWxmID0gRGV2aWNlT3JpZW50
YXRpb25Db250cm9sbGVyOjpmcm9tKHBhZ2UpKQorICAgICAgICByZXR1cm4gc2VsZi0+aXNBY3Rp
dmUoKTsKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK3ZvaWQgcHJvdmlkZURldmljZU9yaWVudGF0
aW9uVG8oUGFnZSogcGFnZSwgRGV2aWNlT3JpZW50YXRpb25DbGllbnQqIGNsaWVudCkKK3sKKyAg
ICBQYWdlU3VwcGxlbWVudDo6cHJvdmlkZVRvKHBhZ2UsIERldmljZU9yaWVudGF0aW9uQ29udHJv
bGxlcjo6c3VwcGxlbWVudE5hbWUoKSwgRGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyOjpjcmVh
dGUocGFnZSwgY2xpZW50KSk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9EZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXIuaCBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9EZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXIuaAppbmRleCAxYjg3
OTk4ZDk1N2IzNzc1ZmRjZTVlZmEyOTkwMDY2NDM4MDM2MWY1Li5kOGVmYWNhMzlkYTU0MjJhYWY1
ZDJmMWU1N2ZiYzhkNTdjMjQ0Y2E0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRGV2
aWNlT3JpZW50YXRpb25Db250cm9sbGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0Rldmlj
ZU9yaWVudGF0aW9uQ29udHJvbGxlci5oCkBAIC0yNyw2ICsyNyw3IEBACiAjZGVmaW5lIERldmlj
ZU9yaWVudGF0aW9uQ29udHJvbGxlcl9oCiAKICNpbmNsdWRlICJET01XaW5kb3cuaCIKKyNpbmNs
dWRlICJQYWdlU3VwcGxlbWVudC5oIgogI2luY2x1ZGUgIlRpbWVyLmgiCiAKICNpbmNsdWRlIDx3
dGYvSGFzaENvdW50ZWRTZXQuaD4KQEAgLTM3LDcgKzM4LDcgQEAgY2xhc3MgRGV2aWNlT3JpZW50
YXRpb247CiBjbGFzcyBEZXZpY2VPcmllbnRhdGlvbkNsaWVudDsKIGNsYXNzIFBhZ2U7CiAKLWNs
YXNzIERldmljZU9yaWVudGF0aW9uQ29udHJvbGxlciB7CitjbGFzcyBEZXZpY2VPcmllbnRhdGlv
bkNvbnRyb2xsZXIgOiBwdWJsaWMgUGFnZVN1cHBsZW1lbnQgewogcHVibGljOgogICAgIH5EZXZp
Y2VPcmllbnRhdGlvbkNvbnRyb2xsZXIoKTsKIApAQCAtNTYsNiArNTcsMTEgQEAgcHVibGljOgog
CiAgICAgRGV2aWNlT3JpZW50YXRpb25DbGllbnQqIGNsaWVudCgpIGNvbnN0IHsgcmV0dXJuIG1f
Y2xpZW50OyB9CiAKKyAgICBzdGF0aWMgY29uc3QgQXRvbWljU3RyaW5nJiBzdXBwbGVtZW50TmFt
ZSgpOworICAgIHN0YXRpYyBEZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXIqIGZyb20oRnJhbWUq
IGZyYW1lKSB7IHJldHVybiBzdGF0aWNfY2FzdDxEZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXIq
PihQYWdlU3VwcGxlbWVudDo6ZnJvbShmcmFtZSwgc3VwcGxlbWVudE5hbWUoKSkpOyB9CisgICAg
c3RhdGljIERldmljZU9yaWVudGF0aW9uQ29udHJvbGxlciogZnJvbShQYWdlKiBwYWdlKSB7IHJl
dHVybiBzdGF0aWNfY2FzdDxEZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXIqPihQYWdlU3VwcGxl
bWVudDo6ZnJvbShwYWdlLCBzdXBwbGVtZW50TmFtZSgpKSk7IH0KKyAgICBzdGF0aWMgYm9vbCBp
c0FjdGl2ZUF0KFBhZ2UqKTsKKwogcHJpdmF0ZToKICAgICBEZXZpY2VPcmllbnRhdGlvbkNvbnRy
b2xsZXIoUGFnZSosIERldmljZU9yaWVudGF0aW9uQ2xpZW50Kik7CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1l
bnQuY3BwCmluZGV4IDJjNGRjODY0ZjUzMjc2NDRjYjIxMTVjNTMxYWZhMTRhNjk1MzQzYzMuLjYy
ZWVmZjliOTk5ZDhiNzk1ZTQ5NjI5ZTM0OTcwNjg5NDFjOWZkODMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3Vt
ZW50LmNwcApAQCAtMTk0NiwxMCArMTk0NiwxMSBAQCB2b2lkIERvY3VtZW50OjpzdXNwZW5kQWN0
aXZlRE9NT2JqZWN0cyhBY3RpdmVET01PYmplY3Q6OlJlYXNvbkZvclN1c3BlbnNpb24gd2h5KQog
ICAgIGlmICghcGFnZSgpKQogICAgICAgICByZXR1cm47CiAKLSAgICBpZiAocGFnZSgpLT5kZXZp
Y2VNb3Rpb25Db250cm9sbGVyKCkpCi0gICAgICAgIHBhZ2UoKS0+ZGV2aWNlTW90aW9uQ29udHJv
bGxlcigpLT5zdXNwZW5kRXZlbnRzRm9yQWxsTGlzdGVuZXJzKGRvbVdpbmRvdygpKTsKLSAgICBp
ZiAocGFnZSgpLT5kZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXIoKSkKLSAgICAgICAgcGFnZSgp
LT5kZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXIoKS0+c3VzcGVuZEV2ZW50c0ZvckFsbExpc3Rl
bmVycyhkb21XaW5kb3coKSk7CisgICAgaWYgKERldmljZU1vdGlvbkNvbnRyb2xsZXIqIGNvbnRy
b2xsZXIgPSBEZXZpY2VNb3Rpb25Db250cm9sbGVyOjpmcm9tKHBhZ2UoKSkpCisgICAgICAgIGNv
bnRyb2xsZXItPnN1c3BlbmRFdmVudHNGb3JBbGxMaXN0ZW5lcnMoZG9tV2luZG93KCkpOworICAg
IGlmIChEZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXIqIGNvbnRyb2xsZXIgPSBEZXZpY2VPcmll
bnRhdGlvbkNvbnRyb2xsZXI6OmZyb20ocGFnZSgpKSkKKyAgICAgICAgY29udHJvbGxlci0+c3Vz
cGVuZEV2ZW50c0ZvckFsbExpc3RlbmVycyhkb21XaW5kb3coKSk7CisKICNlbmRpZgogfQogCkBA
IC0xOTYxLDEwICsxOTYyLDEwIEBAIHZvaWQgRG9jdW1lbnQ6OnJlc3VtZUFjdGl2ZURPTU9iamVj
dHMoKQogICAgIGlmICghcGFnZSgpKQogICAgICAgICByZXR1cm47CiAKLSAgICBpZiAocGFnZSgp
LT5kZXZpY2VNb3Rpb25Db250cm9sbGVyKCkpCi0gICAgICAgIHBhZ2UoKS0+ZGV2aWNlTW90aW9u
Q29udHJvbGxlcigpLT5yZXN1bWVFdmVudHNGb3JBbGxMaXN0ZW5lcnMoZG9tV2luZG93KCkpOwot
ICAgIGlmIChwYWdlKCktPmRldmljZU9yaWVudGF0aW9uQ29udHJvbGxlcigpKQotICAgICAgICBw
YWdlKCktPmRldmljZU9yaWVudGF0aW9uQ29udHJvbGxlcigpLT5yZXN1bWVFdmVudHNGb3JBbGxM
aXN0ZW5lcnMoZG9tV2luZG93KCkpOworICAgIGlmIChEZXZpY2VNb3Rpb25Db250cm9sbGVyKiBj
b250cm9sbGVyID0gRGV2aWNlTW90aW9uQ29udHJvbGxlcjo6ZnJvbShwYWdlKCkpKQorICAgICAg
ICBjb250cm9sbGVyLT5yZXN1bWVFdmVudHNGb3JBbGxMaXN0ZW5lcnMoZG9tV2luZG93KCkpOwor
ICAgIGlmIChEZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXIqIGNvbnRyb2xsZXIgPSBEZXZpY2VP
cmllbnRhdGlvbkNvbnRyb2xsZXI6OmZyb20ocGFnZSgpKSkKKyAgICAgICAgY29udHJvbGxlci0+
cmVzdW1lRXZlbnRzRm9yQWxsTGlzdGVuZXJzKGRvbVdpbmRvdygpKTsKICNlbmRpZgogfQogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9oaXN0b3J5L1BhZ2VDYWNoZS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9oaXN0b3J5L1BhZ2VDYWNoZS5jcHAKaW5kZXggMmEwODM2MTljOWYwZGNiMjBhNTZm
ZWQ3NWQzMzc3ZDM2NzczZTM2Mi4uZTk2NGM4ODIyMjhiODA2YzJlZmM3NGZlYTg1MzBmNzYwMzRi
Y2ZiZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaGlzdG9yeS9QYWdlQ2FjaGUuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2hpc3RvcnkvUGFnZUNhY2hlLmNwcApAQCAtMTk5LDExICsxOTks
MTEgQEAgc3RhdGljIHZvaWQgbG9nQ2FuQ2FjaGVQYWdlRGVjaXNpb24oUGFnZSogcGFnZSkKICAg
ICAgICAgY2Fubm90Q2FjaGUgPSB0cnVlOwogICAgIH0KICNpZiBFTkFCTEUoREVWSUNFX09SSUVO
VEFUSU9OKQotICAgIGlmIChwYWdlLT5kZXZpY2VNb3Rpb25Db250cm9sbGVyKCkgJiYgcGFnZS0+
ZGV2aWNlTW90aW9uQ29udHJvbGxlcigpLT5pc0FjdGl2ZSgpKSB7CisgICAgaWYgKERldmljZU1v
dGlvbkNvbnRyb2xsZXI6OmlzQWN0aXZlQXQocGFnZSkpIHsKICAgICAgICAgUENMT0coIiAgIC1Q
YWdlIGlzIHVzaW5nIERldmljZU1vdGlvbiIpOwogICAgICAgICBjYW5ub3RDYWNoZSA9IHRydWU7
CiAgICAgfQotICAgIGlmIChwYWdlLT5kZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXIoKSAmJiBw
YWdlLT5kZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXIoKS0+aXNBY3RpdmUoKSkgeworICAgIGlm
IChEZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXI6OmlzQWN0aXZlQXQocGFnZSkpIHsKICAgICAg
ICAgUENMT0coIiAgIC1QYWdlIGlzIHVzaW5nIERldmljZU9yaWVudGF0aW9uIik7CiAgICAgICAg
IGNhbm5vdENhY2hlID0gdHJ1ZTsKICAgICB9CkBAIC0yOTYsOCArMjk2LDggQEAgYm9vbCBQYWdl
Q2FjaGU6OmNhbkNhY2hlKFBhZ2UqIHBhZ2UpCiAgICAgICAgICYmIHBhZ2UtPmJhY2tGb3J3YXJk
KCktPmlzQWN0aXZlKCkKICAgICAgICAgJiYgcGFnZS0+c2V0dGluZ3MoKS0+dXNlc1BhZ2VDYWNo
ZSgpCiAjaWYgRU5BQkxFKERFVklDRV9PUklFTlRBVElPTikKLSAgICAgICAgJiYgIShwYWdlLT5k
ZXZpY2VNb3Rpb25Db250cm9sbGVyKCkgJiYgcGFnZS0+ZGV2aWNlTW90aW9uQ29udHJvbGxlcigp
LT5pc0FjdGl2ZSgpKQotICAgICAgICAmJiAhKHBhZ2UtPmRldmljZU9yaWVudGF0aW9uQ29udHJv
bGxlcigpICYmIHBhZ2UtPmRldmljZU9yaWVudGF0aW9uQ29udHJvbGxlcigpLT5pc0FjdGl2ZSgp
KQorICAgICAgICAmJiAhRGV2aWNlTW90aW9uQ29udHJvbGxlcjo6aXNBY3RpdmVBdChwYWdlKQor
ICAgICAgICAmJiAhRGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyOjppc0FjdGl2ZUF0KHBhZ2Up
CiAjZW5kaWYKICAgICAgICAgJiYgbG9hZFR5cGUgIT0gRnJhbWVMb2FkVHlwZVJlbG9hZAogICAg
ICAgICAmJiBsb2FkVHlwZSAhPSBGcmFtZUxvYWRUeXBlUmVsb2FkRnJvbU9yaWdpbgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9ET01XaW5kb3cuY3BwCmluZGV4IDhlZjBkMmNkYjcxMmM1ZmMyNGNkNjUwM2UyMmEyYTkz
NzQ0MGZiNzIuLjIxYzdiMDkwYWQwMGZmM2ZmMzJjNTlhY2M0MjU3NWFiOGNiMzcyZmEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0RPTVdpbmRvdy5jcHAKQEAgLTE1NjEsMTAgKzE1NjEsMTMgQEAgYm9vbCBET01X
aW5kb3c6OmFkZEV2ZW50TGlzdGVuZXIoY29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGUsIFBh
c3NSZWZQdHI8RXZlbnQKICAgICBlbHNlIGlmIChldmVudFR5cGUgPT0gZXZlbnROYW1lcygpLmJl
Zm9yZXVubG9hZEV2ZW50ICYmIGFsbG93c0JlZm9yZVVubG9hZExpc3RlbmVycyh0aGlzKSkKICAg
ICAgICAgYWRkQmVmb3JlVW5sb2FkRXZlbnRMaXN0ZW5lcih0aGlzKTsKICNpZiBFTkFCTEUoREVW
SUNFX09SSUVOVEFUSU9OKQotICAgIGVsc2UgaWYgKGV2ZW50VHlwZSA9PSBldmVudE5hbWVzKCku
ZGV2aWNlbW90aW9uRXZlbnQgJiYgZnJhbWUoKSAmJiBmcmFtZSgpLT5wYWdlKCkgJiYgZnJhbWUo
KS0+cGFnZSgpLT5kZXZpY2VNb3Rpb25Db250cm9sbGVyKCkpCi0gICAgICAgIGZyYW1lKCktPnBh
Z2UoKS0+ZGV2aWNlTW90aW9uQ29udHJvbGxlcigpLT5hZGRMaXN0ZW5lcih0aGlzKTsKLSAgICBl
bHNlIGlmIChldmVudFR5cGUgPT0gZXZlbnROYW1lcygpLmRldmljZW9yaWVudGF0aW9uRXZlbnQg
JiYgZnJhbWUoKSAmJiBmcmFtZSgpLT5wYWdlKCkgJiYgZnJhbWUoKS0+cGFnZSgpLT5kZXZpY2VP
cmllbnRhdGlvbkNvbnRyb2xsZXIoKSkKLSAgICAgICAgZnJhbWUoKS0+cGFnZSgpLT5kZXZpY2VP
cmllbnRhdGlvbkNvbnRyb2xsZXIoKS0+YWRkTGlzdGVuZXIodGhpcyk7CisgICAgZWxzZSBpZiAo
ZXZlbnRUeXBlID09IGV2ZW50TmFtZXMoKS5kZXZpY2Vtb3Rpb25FdmVudCkgeworICAgICAgICBp
ZiAoRGV2aWNlTW90aW9uQ29udHJvbGxlciogY29udHJvbGxlciA9IERldmljZU1vdGlvbkNvbnRy
b2xsZXI6OmZyb20oZnJhbWUoKSkpCisgICAgICAgICAgICBjb250cm9sbGVyLT5hZGRMaXN0ZW5l
cih0aGlzKTsKKyAgICB9IGVsc2UgaWYgKGV2ZW50VHlwZSA9PSBldmVudE5hbWVzKCkuZGV2aWNl
b3JpZW50YXRpb25FdmVudCkgeworICAgICAgICBpZiAoRGV2aWNlT3JpZW50YXRpb25Db250cm9s
bGVyKiBjb250cm9sbGVyID0gRGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyOjpmcm9tKGZyYW1l
KCkpKQorICAgICAgICAgICAgY29udHJvbGxlci0+YWRkTGlzdGVuZXIodGhpcyk7CisgICAgfQog
I2VuZGlmCiAKICAgICByZXR1cm4gdHJ1ZTsKQEAgLTE1ODUsMTAgKzE1ODgsMTMgQEAgYm9vbCBE
T01XaW5kb3c6OnJlbW92ZUV2ZW50TGlzdGVuZXIoY29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5
cGUsIEV2ZW50TGlzdGVuZXIKICAgICBlbHNlIGlmIChldmVudFR5cGUgPT0gZXZlbnROYW1lcygp
LmJlZm9yZXVubG9hZEV2ZW50ICYmIGFsbG93c0JlZm9yZVVubG9hZExpc3RlbmVycyh0aGlzKSkK
ICAgICAgICAgcmVtb3ZlQmVmb3JlVW5sb2FkRXZlbnRMaXN0ZW5lcih0aGlzKTsKICNpZiBFTkFC
TEUoREVWSUNFX09SSUVOVEFUSU9OKQotICAgIGVsc2UgaWYgKGV2ZW50VHlwZSA9PSBldmVudE5h
bWVzKCkuZGV2aWNlbW90aW9uRXZlbnQgJiYgZnJhbWUoKSAmJiBmcmFtZSgpLT5wYWdlKCkgJiYg
ZnJhbWUoKS0+cGFnZSgpLT5kZXZpY2VNb3Rpb25Db250cm9sbGVyKCkpCi0gICAgICAgIGZyYW1l
KCktPnBhZ2UoKS0+ZGV2aWNlTW90aW9uQ29udHJvbGxlcigpLT5yZW1vdmVMaXN0ZW5lcih0aGlz
KTsKLSAgICBlbHNlIGlmIChldmVudFR5cGUgPT0gZXZlbnROYW1lcygpLmRldmljZW9yaWVudGF0
aW9uRXZlbnQgJiYgZnJhbWUoKSAmJiBmcmFtZSgpLT5wYWdlKCkgJiYgZnJhbWUoKS0+cGFnZSgp
LT5kZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXIoKSkKLSAgICAgICAgZnJhbWUoKS0+cGFnZSgp
LT5kZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXIoKS0+cmVtb3ZlTGlzdGVuZXIodGhpcyk7Cisg
ICAgZWxzZSBpZiAoZXZlbnRUeXBlID09IGV2ZW50TmFtZXMoKS5kZXZpY2Vtb3Rpb25FdmVudCkg
eworICAgICAgICBpZiAoRGV2aWNlTW90aW9uQ29udHJvbGxlciogY29udHJvbGxlciA9IERldmlj
ZU1vdGlvbkNvbnRyb2xsZXI6OmZyb20oZnJhbWUoKSkpCisgICAgICAgICAgICBjb250cm9sbGVy
LT5yZW1vdmVMaXN0ZW5lcih0aGlzKTsKKyAgICB9IGVsc2UgaWYgKGV2ZW50VHlwZSA9PSBldmVu
dE5hbWVzKCkuZGV2aWNlb3JpZW50YXRpb25FdmVudCkgeworICAgICAgICBpZiAoRGV2aWNlT3Jp
ZW50YXRpb25Db250cm9sbGVyKiBjb250cm9sbGVyID0gRGV2aWNlT3JpZW50YXRpb25Db250cm9s
bGVyOjpmcm9tKGZyYW1lKCkpKQorICAgICAgICAgICAgY29udHJvbGxlci0+cmVtb3ZlTGlzdGVu
ZXIodGhpcyk7CisgICAgfQogI2VuZGlmCiAKICAgICByZXR1cm4gdHJ1ZTsKQEAgLTE2NDEsMTAg
KzE2NDcsMTAgQEAgdm9pZCBET01XaW5kb3c6OnJlbW92ZUFsbEV2ZW50TGlzdGVuZXJzKCkKICAg
ICBFdmVudFRhcmdldDo6cmVtb3ZlQWxsRXZlbnRMaXN0ZW5lcnMoKTsKIAogI2lmIEVOQUJMRShE
RVZJQ0VfT1JJRU5UQVRJT04pCi0gICAgaWYgKGZyYW1lKCkgJiYgZnJhbWUoKS0+cGFnZSgpICYm
IGZyYW1lKCktPnBhZ2UoKS0+ZGV2aWNlTW90aW9uQ29udHJvbGxlcigpKQotICAgICAgICBmcmFt
ZSgpLT5wYWdlKCktPmRldmljZU1vdGlvbkNvbnRyb2xsZXIoKS0+cmVtb3ZlQWxsTGlzdGVuZXJz
KHRoaXMpOwotICAgIGlmIChmcmFtZSgpICYmIGZyYW1lKCktPnBhZ2UoKSAmJiBmcmFtZSgpLT5w
YWdlKCktPmRldmljZU9yaWVudGF0aW9uQ29udHJvbGxlcigpKQotICAgICAgICBmcmFtZSgpLT5w
YWdlKCktPmRldmljZU9yaWVudGF0aW9uQ29udHJvbGxlcigpLT5yZW1vdmVBbGxMaXN0ZW5lcnMo
dGhpcyk7CisgICAgaWYgKERldmljZU1vdGlvbkNvbnRyb2xsZXIqIGNvbnRyb2xsZXIgPSBEZXZp
Y2VNb3Rpb25Db250cm9sbGVyOjpmcm9tKGZyYW1lKCkpKQorICAgICAgICBjb250cm9sbGVyLT5h
ZGRMaXN0ZW5lcih0aGlzKTsKKyAgICBpZiAoRGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyKiBj
b250cm9sbGVyID0gRGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyOjpmcm9tKGZyYW1lKCkpKQor
ICAgICAgICBjb250cm9sbGVyLT5hZGRMaXN0ZW5lcih0aGlzKTsKICNlbmRpZgogCiAgICAgcmVt
b3ZlQWxsVW5sb2FkRXZlbnRMaXN0ZW5lcnModGhpcyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL1BhZ2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcAppbmRleCBj
NGFmYTg5NzA1ZWU0NjNmMWM4YzllOGYwOTExY2Q4OTk4MTBhYWFlLi4zOTA1NjE5OTQ4ODdkZGM4
NWNlNjhjYzEzMjhlZmU4NDhhY2FkOGQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L1BhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAKQEAgLTI5LDggKzI5
LDYgQEAKICNpbmNsdWRlICJDb250ZXh0TWVudUNsaWVudC5oIgogI2luY2x1ZGUgIkNvbnRleHRN
ZW51Q29udHJvbGxlci5oIgogI2luY2x1ZGUgIkRPTVdpbmRvdy5oIgotI2luY2x1ZGUgIkRldmlj
ZU1vdGlvbkNvbnRyb2xsZXIuaCIKLSNpbmNsdWRlICJEZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xs
ZXIuaCIKICNpbmNsdWRlICJEb2N1bWVudE1hcmtlckNvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJE
cmFnQ29udHJvbGxlci5oIgogI2luY2x1ZGUgIkVkaXRvckNsaWVudC5oIgpAQCAtMTQwLDEwICsx
MzgsNiBAQCBQYWdlOjpQYWdlKFBhZ2VDbGllbnRzJiBwYWdlQ2xpZW50cykKICNpZiBFTkFCTEUo
Q0xJRU5UX0JBU0VEX0dFT0xPQ0FUSU9OKQogICAgICwgbV9nZW9sb2NhdGlvbkNvbnRyb2xsZXIo
R2VvbG9jYXRpb25Db250cm9sbGVyOjpjcmVhdGUodGhpcywgcGFnZUNsaWVudHMuZ2VvbG9jYXRp
b25DbGllbnQpKQogI2VuZGlmCi0jaWYgRU5BQkxFKERFVklDRV9PUklFTlRBVElPTikKLSAgICAs
IG1fZGV2aWNlTW90aW9uQ29udHJvbGxlcihSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpkZXZpY2VN
b3Rpb25FbmFibGVkKCkgPyBEZXZpY2VNb3Rpb25Db250cm9sbGVyOjpjcmVhdGUocGFnZUNsaWVu
dHMuZGV2aWNlTW90aW9uQ2xpZW50KSA6IG51bGxwdHIpCi0gICAgLCBtX2RldmljZU9yaWVudGF0
aW9uQ29udHJvbGxlcihSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpkZXZpY2VPcmllbnRhdGlvbkVu
YWJsZWQoKSA/IERldmljZU9yaWVudGF0aW9uQ29udHJvbGxlcjo6Y3JlYXRlKHRoaXMsIHBhZ2VD
bGllbnRzLmRldmljZU9yaWVudGF0aW9uQ2xpZW50KSA6IG51bGxwdHIpCi0jZW5kaWYKICNpZiBF
TkFCTEUoTk9USUZJQ0FUSU9OUykKICAgICAsIG1fbm90aWZpY2F0aW9uQ29udHJvbGxlcihOb3Rp
ZmljYXRpb25Db250cm9sbGVyOjpjcmVhdGUodGhpcywgcGFnZUNsaWVudHMubm90aWZpY2F0aW9u
Q2xpZW50KSkKICNlbmRpZgpAQCAtMjMyLDYgKzIyNiw3IEBAIFBhZ2U6On5QYWdlKCkKICNpZm5k
ZWYgTkRFQlVHCiAgICAgcGFnZUNvdW50ZXIuZGVjcmVtZW50KCk7CiAjZW5kaWYKKwogfQogCiBW
aWV3cG9ydEFyZ3VtZW50cyBQYWdlOjp2aWV3cG9ydEFyZ3VtZW50cygpIGNvbnN0CkBAIC0xMDkw
LDYgKzEwODUsMTcgQEAgdm9pZCBQYWdlOjphZGRSZWxldmFudFJlcGFpbnRlZE9iamVjdChSZW5k
ZXJPYmplY3QqIG9iamVjdCwgY29uc3QgSW50UmVjdCYgb2JqZWMKICAgICB9CiB9CiAKK3ZvaWQg
UGFnZTo6cHJvdmlkZVN1cHBsZW1lbnQoY29uc3QgQXRvbWljU3RyaW5nJiBuYW1lLCBQYXNzT3du
UHRyPFBhZ2VTdXBwbGVtZW50PiBzdXBwbGVtZW50KQoreworICAgIEFTU0VSVCghbV9zdXBwbGlt
ZW50cy5nZXQobmFtZS5pbXBsKCkpKTsKKyAgICBtX3N1cHBsaW1lbnRzLnNldChuYW1lLmltcGwo
KSwgc3VwcGxlbWVudCk7Cit9CisKK1BhZ2VTdXBwbGVtZW50KiBQYWdlOjpyZXF1aXJlU3VwcGxl
bWVudChjb25zdCBBdG9taWNTdHJpbmcmIG5hbWUpCit7CisgICAgcmV0dXJuIG1fc3VwcGxpbWVu
dHMuZ2V0KG5hbWUuaW1wbCgpKTsKK30KKwogUGFnZTo6UGFnZUNsaWVudHM6OlBhZ2VDbGllbnRz
KCkKICAgICA6IGNocm9tZUNsaWVudCgwKQogICAgICwgY29udGV4dE1lbnVDbGllbnQoMCkKQEAg
LTEwOTcsOCArMTEwMyw2IEBAIFBhZ2U6OlBhZ2VDbGllbnRzOjpQYWdlQ2xpZW50cygpCiAgICAg
LCBkcmFnQ2xpZW50KDApCiAgICAgLCBpbnNwZWN0b3JDbGllbnQoMCkKICAgICAsIGdlb2xvY2F0
aW9uQ2xpZW50KDApCi0gICAgLCBkZXZpY2VNb3Rpb25DbGllbnQoMCkKLSAgICAsIGRldmljZU9y
aWVudGF0aW9uQ2xpZW50KDApCiAgICAgLCBzcGVlY2hJbnB1dENsaWVudCgwKQogICAgICwgbm90
aWZpY2F0aW9uQ2xpZW50KDApCiAgICAgLCB1c2VyTWVkaWFDbGllbnQoMCkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmgK
aW5kZXggNWY2ZTIwNjQ5YTgxMjhhNWM4Yjg0YThlOTEzZTczMGQzYTg5YjA5NC4uMDY2ZmM0ZDNj
ZTY2Y2ZkMzBiMDAxMjdjZDc5NmUyM2ZlNTZhMTM1ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGFnZS9QYWdlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmgKQEAgLTI0LDEx
ICsyNCwxMyBAQAogI2luY2x1ZGUgIkZyYW1lTG9hZGVyVHlwZXMuaCIKICNpbmNsdWRlICJGaW5k
T3B0aW9ucy5oIgogI2luY2x1ZGUgIkxheW91dFR5cGVzLmgiCisjaW5jbHVkZSAiUGFnZVN1cHBs
ZW1lbnQuaCIKICNpbmNsdWRlICJQYWdlVmlzaWJpbGl0eVN0YXRlLmgiCiAjaW5jbHVkZSAiUGxh
dGZvcm1TY3JlZW4uaCIKICNpbmNsdWRlICJQbGF0Zm9ybVN0cmluZy5oIgogI2luY2x1ZGUgIlZp
ZXdwb3J0QXJndW1lbnRzLmgiCiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KKyNpbmNsdWRlIDx3
dGYvSGFzaE1hcC5oPgogI2luY2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+CiAjaW5jbHVkZSA8d3RmL05v
bmNvcHlhYmxlLmg+CiAKQEAgLTUyLDEwICs1NCw2IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAg
ICBjbGFzcyBDaHJvbWVDbGllbnQ7CiAgICAgY2xhc3MgQ29udGV4dE1lbnVDbGllbnQ7CiAgICAg
Y2xhc3MgQ29udGV4dE1lbnVDb250cm9sbGVyOwotICAgIGNsYXNzIERldmljZU1vdGlvbkNsaWVu
dDsKLSAgICBjbGFzcyBEZXZpY2VNb3Rpb25Db250cm9sbGVyOwotICAgIGNsYXNzIERldmljZU9y
aWVudGF0aW9uQ2xpZW50OwotICAgIGNsYXNzIERldmljZU9yaWVudGF0aW9uQ29udHJvbGxlcjsK
ICAgICBjbGFzcyBEb2N1bWVudDsKICAgICBjbGFzcyBEcmFnQ2FyZXRDb250cm9sbGVyOwogICAg
IGNsYXNzIERyYWdDbGllbnQ7CkBAIC0xMTgsOCArMTE2LDYgQEAgbmFtZXNwYWNlIFdlYkNvcmUg
ewogICAgICAgICAgICAgRHJhZ0NsaWVudCogZHJhZ0NsaWVudDsKICAgICAgICAgICAgIEluc3Bl
Y3RvckNsaWVudCogaW5zcGVjdG9yQ2xpZW50OwogICAgICAgICAgICAgR2VvbG9jYXRpb25DbGll
bnQqIGdlb2xvY2F0aW9uQ2xpZW50OwotICAgICAgICAgICAgRGV2aWNlTW90aW9uQ2xpZW50KiBk
ZXZpY2VNb3Rpb25DbGllbnQ7Ci0gICAgICAgICAgICBEZXZpY2VPcmllbnRhdGlvbkNsaWVudCog
ZGV2aWNlT3JpZW50YXRpb25DbGllbnQ7CiAgICAgICAgICAgICBSZWZQdHI8QmFja0ZvcndhcmRM
aXN0PiBiYWNrRm9yd2FyZENsaWVudDsKICAgICAgICAgICAgIFNwZWVjaElucHV0Q2xpZW50KiBz
cGVlY2hJbnB1dENsaWVudDsKICAgICAgICAgICAgIE5vdGlmaWNhdGlvblByZXNlbnRlciogbm90
aWZpY2F0aW9uQ2xpZW50OwpAQCAtMTg0LDEwICsxODAsNiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAjaWYgRU5BQkxFKENMSUVOVF9CQVNFRF9HRU9MT0NBVElPTikKICAgICAgICAgR2VvbG9jYXRp
b25Db250cm9sbGVyKiBnZW9sb2NhdGlvbkNvbnRyb2xsZXIoKSBjb25zdCB7IHJldHVybiBtX2dl
b2xvY2F0aW9uQ29udHJvbGxlci5nZXQoKTsgfQogI2VuZGlmCi0jaWYgRU5BQkxFKERFVklDRV9P
UklFTlRBVElPTikKLSAgICAgICAgRGV2aWNlTW90aW9uQ29udHJvbGxlciogZGV2aWNlTW90aW9u
Q29udHJvbGxlcigpIGNvbnN0IHsgcmV0dXJuIG1fZGV2aWNlTW90aW9uQ29udHJvbGxlci5nZXQo
KTsgfQotICAgICAgICBEZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXIqIGRldmljZU9yaWVudGF0
aW9uQ29udHJvbGxlcigpIGNvbnN0IHsgcmV0dXJuIG1fZGV2aWNlT3JpZW50YXRpb25Db250cm9s
bGVyLmdldCgpOyB9Ci0jZW5kaWYKICNpZiBFTkFCTEUoTk9USUZJQ0FUSU9OUykKICAgICAgICAg
Tm90aWZpY2F0aW9uQ29udHJvbGxlciogbm90aWZpY2F0aW9uQ29udHJvbGxlcigpIGNvbnN0IHsg
cmV0dXJuIG1fbm90aWZpY2F0aW9uQ29udHJvbGxlci5nZXQoKTsgfQogI2VuZGlmCkBAIC0zNTIs
OSArMzQ0LDE2IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgdm9pZCBzZXRSZWxldmFu
dFJlcGFpbnRlZE9iamVjdHNDb3VudGVyVGhyZXNob2xkKHVpbnQ2NF90KTsKICAgICAgICAgdm9p
ZCBzdGFydENvdW50aW5nUmVsZXZhbnRSZXBhaW50ZWRPYmplY3RzKCk7CiAgICAgICAgIHZvaWQg
YWRkUmVsZXZhbnRSZXBhaW50ZWRPYmplY3QoUmVuZGVyT2JqZWN0KiwgY29uc3QgSW50UmVjdCYg
b2JqZWN0UGFpbnRSZWN0KTsKLSAgICAgICAgCisKKyAgICAgICAgdm9pZCBwcm92aWRlU3VwcGxl
bWVudChjb25zdCBBdG9taWNTdHJpbmcmLCBQYXNzT3duUHRyPFBhZ2VTdXBwbGVtZW50Pik7Cisg
ICAgICAgIFBhZ2VTdXBwbGVtZW50KiByZXF1aXJlU3VwcGxlbWVudChjb25zdCBBdG9taWNTdHJp
bmcmKTsKKwogICAgIHByaXZhdGU6CiAgICAgICAgIHZvaWQgaW5pdEdyb3VwKCk7CisgICAgICAg
IHZvaWQgbm90aWZ5RGVzdHJveWVkVG9TdXBwbGVtZW50cygpOworCisgICAgICAgIHR5cGVkZWYg
SGFzaE1hcDxBdG9taWNTdHJpbmdJbXBsKiwgT3duUHRyPFBhZ2VTdXBwbGVtZW50PiA+IFBhZ2VT
dXBwbGVtZW50TWFwOworICAgICAgICBQYWdlU3VwcGxlbWVudE1hcCBtX3N1cHBsaW1lbnRzOwog
CiAjaWYgQVNTRVJUX0RJU0FCTEVECiAgICAgICAgIHZvaWQgY2hlY2tGcmFtZUNvdW50Q29uc2lz
dGVuY3koKSBjb25zdCB7IH0KQEAgLTM4MywxMCArMzgyLDYgQEAgbmFtZXNwYWNlIFdlYkNvcmUg
ewogI2lmIEVOQUJMRShDTElFTlRfQkFTRURfR0VPTE9DQVRJT04pCiAgICAgICAgIE93blB0cjxH
ZW9sb2NhdGlvbkNvbnRyb2xsZXI+IG1fZ2VvbG9jYXRpb25Db250cm9sbGVyOwogI2VuZGlmCi0j
aWYgRU5BQkxFKERFVklDRV9PUklFTlRBVElPTikKLSAgICAgICAgT3duUHRyPERldmljZU1vdGlv
bkNvbnRyb2xsZXI+IG1fZGV2aWNlTW90aW9uQ29udHJvbGxlcjsKLSAgICAgICAgT3duUHRyPERl
dmljZU9yaWVudGF0aW9uQ29udHJvbGxlcj4gbV9kZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXI7
Ci0jZW5kaWYKICNpZiBFTkFCTEUoTk9USUZJQ0FUSU9OUykKICAgICAgICAgT3duUHRyPE5vdGlm
aWNhdGlvbkNvbnRyb2xsZXI+IG1fbm90aWZpY2F0aW9uQ29udHJvbGxlcjsKICNlbmRpZgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlU3VwcGxlbWVudC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL1BhZ2VTdXBwbGVtZW50LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mYjhjMWU3N2VjZjgx
ZDc2ODBjN2M0ZjE3MzY5ZTE3ZTExNWM4MzgxCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9QYWdlU3VwcGxlbWVudC5jcHAKQEAgLTAsMCArMSw1NyBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAxMiBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogICogUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xE
RVJTIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVCBPV05F
UiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBS
T0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkg
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
KyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJQYWdlU3VwcGxlbWVudC5oIgorCisjaW5j
bHVkZSAiRnJhbWUuaCIKKyNpbmNsdWRlICJQYWdlLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsK
KworUGFnZVN1cHBsZW1lbnQ6On5QYWdlU3VwcGxlbWVudCgpCit7Cit9CisKK3ZvaWQgUGFnZVN1
cHBsZW1lbnQ6OnByb3ZpZGVUbyhQYWdlKiBwYWdlLCBjb25zdCBBdG9taWNTdHJpbmcmIGtleSwg
UGFzc093blB0cjxQYWdlU3VwcGxlbWVudD4gc3VwcGxlbWVudCkKK3sKKyAgICBwYWdlLT5wcm92
aWRlU3VwcGxlbWVudChrZXksIHN1cHBsZW1lbnQpOworfQorCitQYWdlU3VwcGxlbWVudCogUGFn
ZVN1cHBsZW1lbnQ6OmZyb20oUGFnZSogcGFnZSwgY29uc3QgQXRvbWljU3RyaW5nJiBuYW1lKQor
eworICAgIGlmICghcGFnZSkKKyAgICAgICAgcmV0dXJuIDA7CisgICAgcmV0dXJuIHBhZ2UtPnJl
cXVpcmVTdXBwbGVtZW50KG5hbWUpOworfQorCitQYWdlU3VwcGxlbWVudCogUGFnZVN1cHBsZW1l
bnQ6OmZyb20oRnJhbWUqIGZyYW1lLCBjb25zdCBBdG9taWNTdHJpbmcmIG5hbWUpCit7CisgICAg
aWYgKCFmcmFtZSB8fCAhZnJhbWUtPnBhZ2UoKSkKKyAgICAgICAgcmV0dXJuIDA7CisgICAgcmV0
dXJuIGZyYW1lLT5wYWdlKCktPnJlcXVpcmVTdXBwbGVtZW50KG5hbWUpOworfQorCit9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VTdXBw
bGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VTdXBwbGVtZW50LmgKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uOTY3ZjhlNzIwYjg5YTlhNzNlOTRjZWJhMTdmM2MyNTYzNGI2OGI4NgotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZVN1cHBsZW1lbnQuaApAQCAtMCwwICsxLDUz
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAg
KiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUg
Q09QWVJJR0hUIEhPTERFUlMgYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBUSEUg
Q09QWVJJR0hUIE9XTkVSIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBS
T0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworI2lmbmRlZiBQYWdlU3VwcGxlbWVudF9oCisjZGVmaW5lIFBhZ2VTdXBw
bGVtZW50X2gKKworI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CisjaW5jbHVkZSA8d3RmL05vbmNv
cHlhYmxlLmg+CisjaW5jbHVkZSA8d3RmL093blB0ci5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L0F0
b21pY1N0cmluZy5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFBhZ2U7CitjbGFz
cyBGcmFtZTsKKworCitjbGFzcyBQYWdlU3VwcGxlbWVudCB7CitwdWJsaWM6CisgICAgdmlydHVh
bCB+UGFnZVN1cHBsZW1lbnQoKTsKKworICAgIHN0YXRpYyB2b2lkIHByb3ZpZGVUbyhQYWdlKiwg
Y29uc3QgQXRvbWljU3RyaW5nJiwgUGFzc093blB0cjxQYWdlU3VwcGxlbWVudD4pOworICAgIHN0
YXRpYyBQYWdlU3VwcGxlbWVudCogZnJvbShQYWdlKiwgY29uc3QgQXRvbWljU3RyaW5nJik7Cisg
ICAgc3RhdGljIFBhZ2VTdXBwbGVtZW50KiBmcm9tKEZyYW1lKiwgY29uc3QgQXRvbWljU3RyaW5n
Jik7Citwcml2YXRlOgorICAgIE93blB0cjxQYWdlU3VwcGxlbWVudD4gbV9zZWxmOworfTsKKwor
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gUGFnZVN1cHBsZW1lbnRfaApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL2dyYXBoaWNzL1NWR0ltYWdlLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9ncmFwaGljcy9TVkdJbWFnZS5jcHAKaW5kZXggYmJjYzkxYjUyZTNmOTFh
ZWJjNGNkNDUwZmM3MDE5NjEzMWFhZjIwZS4uN2UxY2UyODU0ZGQwYzY3MmE4OGFmZjQ2ODZjZWY1
ZmYwNDU4NTNmNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL2dyYXBoaWNzL1NWR0lt
YWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvZ3JhcGhpY3MvU1ZHSW1hZ2UuY3BwCkBA
IC0zMzcsMTIgKzMzNyw2IEBAIGJvb2wgU1ZHSW1hZ2U6OmRhdGFDaGFuZ2VkKGJvb2wgYWxsRGF0
YVJlY2VpdmVkKQogI2VuZGlmCiAgICAgICAgIHN0YXRpYyBJbnNwZWN0b3JDbGllbnQqIGR1bW15
SW5zcGVjdG9yQ2xpZW50ID0gbmV3IEVtcHR5SW5zcGVjdG9yQ2xpZW50OwogICAgICAgICBwYWdl
Q2xpZW50cy5pbnNwZWN0b3JDbGllbnQgPSBkdW1teUluc3BlY3RvckNsaWVudDsKLSNpZiBFTkFC
TEUoREVWSUNFX09SSUVOVEFUSU9OKQotICAgICAgICBzdGF0aWMgRGV2aWNlTW90aW9uQ2xpZW50
KiBkdW1teURldmljZU1vdGlvbkNsaWVudCA9IG5ldyBFbXB0eURldmljZU1vdGlvbkNsaWVudDsK
LSAgICAgICAgcGFnZUNsaWVudHMuZGV2aWNlTW90aW9uQ2xpZW50ID0gZHVtbXlEZXZpY2VNb3Rp
b25DbGllbnQ7Ci0gICAgICAgIHN0YXRpYyBEZXZpY2VPcmllbnRhdGlvbkNsaWVudCogZHVtbXlE
ZXZpY2VPcmllbnRhdGlvbkNsaWVudCA9IG5ldyBFbXB0eURldmljZU9yaWVudGF0aW9uQ2xpZW50
OwotICAgICAgICBwYWdlQ2xpZW50cy5kZXZpY2VPcmllbnRhdGlvbkNsaWVudCA9IGR1bW15RGV2
aWNlT3JpZW50YXRpb25DbGllbnQ7Ci0jZW5kaWYKIAogICAgICAgICAvLyBGSVhNRTogSWYgdGhp
cyBTVkcgZW5kcyB1cCBsb2FkaW5nIGl0c2VsZiwgd2UgbWlnaHQgbGVhayB0aGUgd29ybGQuCiAg
ICAgICAgIC8vIFRoZSBDYWNoZSBjb2RlIGRvZXMgbm90IGtub3cgYWJvdXQgQ2FjaGVkSW1hZ2Vz
IGhvbGRpbmcgRnJhbWVzIGFuZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9z
cmMvV2ViVmlld0ltcGwuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0lt
cGwuY3BwCmluZGV4IDBmMzUzNzkwNjg0N2Y0NTIyNmY0N2MxZWU2NzA5ODdhODkxNGIxM2EuLjcz
Yzg2YjM4NDRiMTU5NzBkZDEyNWMwYmNkZWUyNWJiMTcwNWM1NzggMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5jcHAKQEAgLTM5Myw3ICszOTMsNiBAQCBXZWJWaWV3
SW1wbDo6V2ViVmlld0ltcGwoV2ViVmlld0NsaWVudCogY2xpZW50KQogI2lmIEVOQUJMRShJTlBV
VF9TUEVFQ0gpCiAgICAgcGFnZUNsaWVudHMuc3BlZWNoSW5wdXRDbGllbnQgPSBtX3NwZWVjaElu
cHV0Q2xpZW50LmdldCgpOwogI2VuZGlmCi0gICAgcGFnZUNsaWVudHMuZGV2aWNlT3JpZW50YXRp
b25DbGllbnQgPSBtX2RldmljZU9yaWVudGF0aW9uQ2xpZW50UHJveHkuZ2V0KCk7CiAgICAgcGFn
ZUNsaWVudHMuZ2VvbG9jYXRpb25DbGllbnQgPSBtX2dlb2xvY2F0aW9uQ2xpZW50UHJveHkuZ2V0
KCk7CiAjaWYgRU5BQkxFKE5PVElGSUNBVElPTlMpCiAgICAgcGFnZUNsaWVudHMubm90aWZpY2F0
aW9uQ2xpZW50ID0gbm90aWZpY2F0aW9uUHJlc2VudGVySW1wbCgpOwpAQCAtNDA0LDcgKzQwMyw3
IEBAIFdlYlZpZXdJbXBsOjpXZWJWaWV3SW1wbChXZWJWaWV3Q2xpZW50KiBjbGllbnQpCiAjZW5k
aWYKIAogICAgIG1fcGFnZSA9IGFkb3B0UHRyKG5ldyBQYWdlKHBhZ2VDbGllbnRzKSk7Ci0KKyAg
ICBwcm92aWRlRGV2aWNlT3JpZW50YXRpb25UbyhtX3BhZ2UuZ2V0KCksIG1fZGV2aWNlT3JpZW50
YXRpb25DbGllbnRQcm94eS5nZXQoKSk7CiAgICAgbV9nZW9sb2NhdGlvbkNsaWVudFByb3h5LT5z
ZXRDb250cm9sbGVyKG1fcGFnZS0+Z2VvbG9jYXRpb25Db250cm9sbGVyKCkpOwogCiAgICAgbV9w
YWdlLT5zZXRHcm91cE5hbWUocGFnZUdyb3VwTmFtZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L21hYy9XZWJWaWV3L1dlYlZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dl
YlZpZXcubW0KaW5kZXggMzhmYWI1NTg1NmYyNjYyYzcyMjBhOTYwYTBhN2YxMTc3NDg1ZDA5Ni4u
NGRmNzc1OGQwMmUxNmJjYThjNWM1Y2Q4NTMzYjEwZTA3NGNhMTgzNSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFj
L1dlYlZpZXcvV2ViVmlldy5tbQpAQCAtNzQ1LDEwICs3NDUsMTAgQEAgc3RhdGljIE5TU3RyaW5n
ICpsZWFrT3V0bG9va1F1aXJrc1VzZXJTY3JpcHRDb250ZW50cygpCiAjaWYgRU5BQkxFKE5PVElG
SUNBVElPTlMpCiAgICAgcGFnZUNsaWVudHMubm90aWZpY2F0aW9uQ2xpZW50ID0gbmV3IFdlYk5v
dGlmaWNhdGlvbkNsaWVudChzZWxmKTsKICNlbmRpZgorICAgIF9wcml2YXRlLT5wYWdlID0gbmV3
IFBhZ2UocGFnZUNsaWVudHMpOwogI2lmIEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJT04pCi0gICAg
cGFnZUNsaWVudHMuZGV2aWNlT3JpZW50YXRpb25DbGllbnQgPSBuZXcgV2ViRGV2aWNlT3JpZW50
YXRpb25DbGllbnQoc2VsZik7CisgICAgV2ViQ29yZTo6cHJvdmlkZURldmljZU9yaWVudGF0aW9u
VG8oX3ByaXZhdGUtPnBhZ2UsIG5ldyBXZWJEZXZpY2VPcmllbnRhdGlvbkNsaWVudChzZWxmKSk7
CiAjZW5kaWYKLSAgICBfcHJpdmF0ZS0+cGFnZSA9IG5ldyBQYWdlKHBhZ2VDbGllbnRzKTsKIAog
ICAgIF9wcml2YXRlLT5wYWdlLT5zZXRDYW5TdGFydE1lZGlhKFtzZWxmIHdpbmRvd10pOwogICAg
IF9wcml2YXRlLT5wYWdlLT5zZXR0aW5ncygpLT5zZXRMb2NhbFN0b3JhZ2VEYXRhYmFzZVBhdGgo
W1tzZWxmIHByZWZlcmVuY2VzXSBfbG9jYWxTdG9yYWdlRGF0YWJhc2VQYXRoXSk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L3F0L0FwaS9xd2VicGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L3F0
L0FwaS9xd2VicGFnZS5jcHAKaW5kZXggNTM1Yzg1ZDFlMjkzNjZhMzhjZmQ1Nzg2MjNlMTk1ZTAy
MTYyODcyOS4uOGVkN2MxYzk5YmJiZWIxMTViYzE3NzNkZjhmY2Y1ODg0MDdhMWMwYSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9xdC9BcGkvcXdlYnBhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvcXQvQXBpL3F3ZWJwYWdlLmNwcApAQCAtMzIyLDE0ICszMjIsNiBAQCBRV2ViUGFnZVByaXZh
dGU6OlFXZWJQYWdlUHJpdmF0ZShRV2ViUGFnZSAqcXEpCiAgICAgcGFnZUNsaWVudHMuZWRpdG9y
Q2xpZW50ID0gbmV3IEVkaXRvckNsaWVudFF0KHEpOwogICAgIHBhZ2VDbGllbnRzLmRyYWdDbGll
bnQgPSBuZXcgRHJhZ0NsaWVudFF0KHEpOwogICAgIHBhZ2VDbGllbnRzLmluc3BlY3RvckNsaWVu
dCA9IG5ldyBJbnNwZWN0b3JDbGllbnRRdChxKTsKLSNpZiBFTkFCTEUoREVWSUNFX09SSUVOVEFU
SU9OKQotICAgIGlmICh1c2VNb2NrKQotICAgICAgICBwYWdlQ2xpZW50cy5kZXZpY2VPcmllbnRh
dGlvbkNsaWVudCA9IG5ldyBEZXZpY2VPcmllbnRhdGlvbkNsaWVudE1vY2s7Ci0gICAgZWxzZQot
ICAgICAgICBwYWdlQ2xpZW50cy5kZXZpY2VPcmllbnRhdGlvbkNsaWVudCA9IG5ldyBEZXZpY2VP
cmllbnRhdGlvbkNsaWVudFF0OwotCi0gICAgcGFnZUNsaWVudHMuZGV2aWNlTW90aW9uQ2xpZW50
ID0gbmV3IERldmljZU1vdGlvbkNsaWVudFF0OwotI2VuZGlmCiAjaWYgRU5BQkxFKENMSUVOVF9C
QVNFRF9HRU9MT0NBVElPTikKICAgICBpZiAodXNlTW9jaykKICAgICAgICAgcGFnZUNsaWVudHMu
Z2VvbG9jYXRpb25DbGllbnQgPSBuZXcgR2VvbG9jYXRpb25DbGllbnRNb2NrOwpAQCAtMzQwLDYg
KzMzMiwxMyBAQCBRV2ViUGFnZVByaXZhdGU6OlFXZWJQYWdlUHJpdmF0ZShRV2ViUGFnZSAqcXEp
CiAgICAgcGFnZUNsaWVudHMubm90aWZpY2F0aW9uQ2xpZW50ID0gTm90aWZpY2F0aW9uUHJlc2Vu
dGVyQ2xpZW50UXQ6Om5vdGlmaWNhdGlvblByZXNlbnRlcigpOwogI2VuZGlmCiAgICAgcGFnZSA9
IG5ldyBQYWdlKHBhZ2VDbGllbnRzKTsKKyNpZiBFTkFCTEUoREVWSUNFX09SSUVOVEFUSU9OKQor
ICAgIGlmICh1c2VNb2NrKQorICAgICAgICBXZWJDb3JlOjpwcm92aWRlRGV2aWNlT3JpZW50YXRp
b25UbyhwYWdlLCBuZXcgRGV2aWNlT3JpZW50YXRpb25DbGllbnRNb2NrKTsKKyAgICBlbHNlCisg
ICAgICAgIFdlYkNvcmU6OnByb3ZpZGVEZXZpY2VPcmllbnRhdGlvblRvKHBhZ2UsIG5ldyBEZXZp
Y2VPcmllbnRhdGlvbkNsaWVudFF0KTsKKyAgICBXZWJDb3JlOjpwcm92aWRlRGV2aWNlTW90aW9u
VG8ocGFnZSwgbmV3IERldmljZU1vdGlvbkNsaWVudFF0KTsKKyNlbmRpZgogCiAgICAgLy8gQnkg
ZGVmYXVsdCBlYWNoIHBhZ2UgaXMgcHV0IGludG8gdGhlaXIgb3duIHVuaXF1ZSBwYWdlIGdyb3Vw
LCB3aGljaCBhZmZlY3RzIHBvcHVwIHdpbmRvd3MKICAgICAvLyBhbmQgdmlzaXRlZCBsaW5rcy4g
UGFnZSBncm91cHMgKHBlciBwcm9jZXNzIG9ubHkpIGlzIGEgZmVhdHVyZSBtYWtpbmcgaXQgcG9z
c2libGUgdG8gdXNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0
L0R1bXBSZW5kZXJUcmVlU3VwcG9ydFF0LmNwcCBiL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1
cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQuY3BwCmluZGV4IGYwMDY3MDY4YTNkNzZhYTQ1
NmY5NDQxZDEyZDY2ZDFkODQ5NTMxNzMuLjAxM2ExNDk2MGM3NDEzYWIzN2YwMGQxOGQ4ZTgwOTg3
M2M5OGM1ZWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRHVt
cFJlbmRlclRyZWVTdXBwb3J0UXQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1
cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQuY3BwCkBAIC04NTcsNyArODU3LDcgQEAgdm9p
ZCBEdW1wUmVuZGVyVHJlZVN1cHBvcnRRdDo6c2V0TW9ja0RldmljZU9yaWVudGF0aW9uKFFXZWJQ
YWdlKiBwYWdlLCBib29sIGNhblAKIHsKICNpZiBFTkFCTEUoREVWSUNFX09SSUVOVEFUSU9OKQog
ICAgIFBhZ2UqIGNvcmVQYWdlID0gUVdlYlBhZ2VQcml2YXRlOjpjb3JlKHBhZ2UpOwotICAgIERl
dmljZU9yaWVudGF0aW9uQ2xpZW50TW9jayogbW9ja0NsaWVudCA9IHRvRGV2aWNlT3JpZW50YXRp
b25DbGllbnRNb2NrKGNvcmVQYWdlLT5kZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXIoKS0+Y2xp
ZW50KCkpOworICAgIERldmljZU9yaWVudGF0aW9uQ2xpZW50TW9jayogbW9ja0NsaWVudCA9IHRv
RGV2aWNlT3JpZW50YXRpb25DbGllbnRNb2NrKERldmljZU9yaWVudGF0aW9uQ29udHJvbGxlcjo6
ZnJvbShjb3JlUGFnZSktPmNsaWVudCgpKTsKICAgICBtb2NrQ2xpZW50LT5zZXRPcmllbnRhdGlv
bihEZXZpY2VPcmllbnRhdGlvbjo6Y3JlYXRlKGNhblByb3ZpZGVBbHBoYSwgYWxwaGEsIGNhblBy
b3ZpZGVCZXRhLCBiZXRhLCBjYW5Qcm92aWRlR2FtbWEsIGdhbW1hKSk7CiAjZW5kaWYKIH0K
</data>

          </attachment>
      

    </bug>

</bugzilla>