<?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>49258</bug_id>
          
          <creation_ts>2010-11-09 09:45:23 -0800</creation_ts>
          <short_desc>Implement Mocks for Client-based Geolocation</short_desc>
          <delta_ts>2010-11-25 05:18:19 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebCore Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>OS X 10.5</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>49259</dependson>
          <blocked>49438</blocked>
    
    <blocked>49734</blocked>
    
    <blocked>46895</blocked>
          <everconfirmed>0</everconfirmed>
          <reporter name="John Knottenbelt">jknotten</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>ap</cc>
    
    <cc>commit-queue</cc>
    
    <cc>jorlow</cc>
    
    <cc>steveblock</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>306836</commentid>
    <comment_count>0</comment_count>
    <who name="John Knottenbelt">jknotten</who>
    <bug_when>2010-11-09 09:45:23 -0800</bug_when>
    <thetext>Provide a mock implementation for WebCore::GeolocationClient</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>307292</commentid>
    <comment_count>1</comment_count>
      <attachid>73484</attachid>
    <who name="John Knottenbelt">jknotten</who>
    <bug_when>2010-11-10 04:04:35 -0800</bug_when>
    <thetext>Created attachment 73484
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>307825</commentid>
    <comment_count>2</comment_count>
      <attachid>73484</attachid>
    <who name="Steve Block">steveblock</who>
    <bug_when>2010-11-11 04:22:24 -0800</bug_when>
    <thetext>Comment on attachment 73484
Patch

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

The non-client-based mock and the Mac client-based mock both share the mock position or error between all WebViews, but this mock does not. Is this intentional? Presumably you intend this sharing to be implemented by each port, if required by the LayoutTests?

Also, we should update Mac (currently the only port using client-based Geolocation I think) to use this mock. That can be a separate patch if you like. do you have a bug?

&gt; WebCore/Android.mk:582
&gt; +	platform/mock/GeolocationClientMock.cpp \

Adding this here is fine, but for future reference, on Android we only add things to the makefiles when they&apos;re required.

&gt; WebCore/platform/mock/GeolocationClientMock.cpp:34
&gt; +#include &quot;GeolocationClientMock.h&quot;

I think the style is to keep config.h and the main header together, with the guard after them both

&gt; WebCore/platform/mock/GeolocationClientMock.cpp:55
&gt; +    ASSERT(!controller || !m_controller);

Can you explain why you test for !controller? When would this ever be called with a null controller?

&gt; WebCore/platform/mock/GeolocationClientMock.cpp:64
&gt; +        makeGeolocationCallback();

I don&apos;t think it&apos;s better to update the controller synchronously here. This means that a JS call to LayoutTestController.setMockGeolocationPosition() will result in a synchronous call back to JS. This make LayoutTests hard to debug because of the re-entrancy. I think it&apos;s best to make the callback asynchronously, as the existing Mac client-based mock does.

&gt; WebCore/platform/mock/GeolocationClientMock.cpp:77
&gt; +    m_controller = 0;

Can you explain why this is required? It looks like the controller will always stop the client before it calls this method. So there&apos;s no way we could ever try to make a callback after the controller and Geolocation objects have gone away. If you want to be sure, you could leave this in, but change line 112 to an assert?

&gt; WebCore/platform/mock/GeolocationClientMock.cpp:96
&gt; +    // FIXME: We need to add some tests regarding &quot;high accuracy&quot; mode.

Do you have a bug for this? Maybe add a link?

&gt; WebCore/platform/mock/GeolocationClientMock.cpp:110
&gt; +void GeolocationClientMock::makeGeolocationCallback()

I think &apos;Geolocation&apos; is superfluous - maybe &apos;makeCallback&apos; or &apos;updateController&apos;?

&gt; WebCore/platform/mock/GeolocationClientMock.h:65
&gt; +    virtual GeolocationPosition *lastPosition();

&apos;*&apos; should go on the left.

&gt; WebCore/platform/mock/GeolocationClientMock.h:78
&gt; +

No need for all these blank lines</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>310871</commentid>
    <comment_count>3</comment_count>
      <attachid>74242</attachid>
    <who name="John Knottenbelt">jknotten</who>
    <bug_when>2010-11-18 08:46:26 -0800</bug_when>
    <thetext>Created attachment 74242
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>310969</commentid>
    <comment_count>4</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2010-11-18 11:02:58 -0800</bug_when>
    <thetext>I still think that having mock objects in WebCore is a strategically wrong approach.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>311470</commentid>
    <comment_count>5</comment_count>
    <who name="John Knottenbelt">jknotten</who>
    <bug_when>2010-11-19 08:03:05 -0800</bug_when>
    <thetext>(In reply to comment #4)
&gt; I still think that having mock objects in WebCore is a strategically wrong approach.

For those who are not familiar with the thread on webkit-dev, here is a link
http://www.mail-archive.com/webkit-dev@lists.webkit.org/msg12162.html 

After all embedders have switched to using client-based geolocation ( https://bugs.webkit.org/show_bug.cgi?id=40373 ), we will be able to remove WebCore/platform/mock/GeolocationServiceMock.cpp altogther, so the net result will be to replace GeolocationServiceMock with GeolocationClientMock. 

As mentioned in the thread, I do think it is a good idea for the mocks to be compiled out of WebCore in production code. I have created bug https://bugs.webkit.org/show_bug.cgi?id=49806 and will raise this topic for discussion on webkit-dev when I come to look at it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>312348</commentid>
    <comment_count>6</comment_count>
      <attachid>74242</attachid>
    <who name="Steve Block">steveblock</who>
    <bug_when>2010-11-22 08:16:51 -0800</bug_when>
    <thetext>Comment on attachment 74242
Patch

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

&gt; WebCore/platform/mock/GeolocationClientMock.cpp:34
&gt; +#if ENABLE(CLIENT_BASED_GEOLOCATION)

Usually have a blank line around guards for the whole file

&gt; WebCore/platform/mock/GeolocationClientMock.cpp:75
&gt; +    // DumpRenderTree calls this before the running the next test.

I&apos;m not sure this comment is needed - and it should probably be in the header anyway.

&gt; WebCore/platform/mock/GeolocationClientMock.cpp:110
&gt; +void GeolocationClientMock::setTimer()

How about something more descriptive, like &apos;asynchronouslyUpdateController()&apos;?

&gt; WebCore/platform/mock/GeolocationClientMock.cpp:112
&gt; +    if (m_controller &amp;&amp; m_isActive &amp;&amp; !m_timer.isActive())

In updateController(), you assert m_controller. Why not the same here?

&gt; WebCore/platform/mock/GeolocationClientMock.cpp:129
&gt; +    if (m_lastError.get())

We should never have both an error and a position, so you could use an &apos;else if&apos; to make that clear.

&gt; WebCore/platform/mock/GeolocationClientMock.h:73
&gt; +    GeolocationController *m_controller;

&apos;*&apos; on left</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>312373</commentid>
    <comment_count>7</comment_count>
      <attachid>74562</attachid>
    <who name="John Knottenbelt">jknotten</who>
    <bug_when>2010-11-22 09:20:47 -0800</bug_when>
    <thetext>Created attachment 74562
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>312375</commentid>
    <comment_count>8</comment_count>
      <attachid>74562</attachid>
    <who name="John Knottenbelt">jknotten</who>
    <bug_when>2010-11-22 09:22:05 -0800</bug_when>
    <thetext>Comment on attachment 74562
Patch

Thanks for the review, I have made the suggested changes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>312684</commentid>
    <comment_count>9</comment_count>
      <attachid>74562</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-11-22 20:43:36 -0800</bug_when>
    <thetext>Comment on attachment 74562
Patch

Clearing flags on attachment: 74562

Committed r72581: &lt;http://trac.webkit.org/changeset/72581&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>312685</commentid>
    <comment_count>10</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-11-22 20:43:42 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>313710</commentid>
    <comment_count>11</comment_count>
    <who name="Steve Block">steveblock</who>
    <bug_when>2010-11-25 05:18:19 -0800</bug_when>
    <thetext>*** Bug 43925 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>73484</attachid>
            <date>2010-11-10 04:04:35 -0800</date>
            <delta_ts>2010-11-18 08:46:20 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-49258-20101110120433.patch</filename>
            <type>text/plain</type>
            <size>17522</size>
            <attacher name="John Knottenbelt">jknotten</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQW5kcm9pZC5tayBiL1dlYkNvcmUvQW5kcm9pZC5tawppbmRl
eCAxNDIxYjYzMzdhNjYyNjEzZDQwOGQ0YjQ1M2U3MmQ2NjFkZmFhMjg4Li40ZDg3ZTE5NTBhOGQ2
MDlmZDJmYzk1YmMxZmIyMTNlMzhhZTViOWJhIDEwMDY0NAotLS0gYS9XZWJDb3JlL0FuZHJvaWQu
bWsKKysrIGIvV2ViQ29yZS9BbmRyb2lkLm1rCkBAIC01NzksNiArNTc5LDcgQEAgTE9DQUxfU1JD
X0ZJTEVTIDo9ICQoTE9DQUxfU1JDX0ZJTEVTKSBcCiAJcGxhdGZvcm0vaW1hZ2UtZGVjb2RlcnMv
Z2lmL0dJRkltYWdlUmVhZGVyLmNwcCBcCiAJXAogCXBsYXRmb3JtL21vY2svRGV2aWNlT3JpZW50
YXRpb25DbGllbnRNb2NrLmNwcCBcCisJcGxhdGZvcm0vbW9jay9HZW9sb2NhdGlvbkNsaWVudE1v
Y2suY3BwIFwKIAlwbGF0Zm9ybS9tb2NrL0dlb2xvY2F0aW9uU2VydmljZU1vY2suY3BwIFwKIAlw
bGF0Zm9ybS9tb2NrL1NwZWVjaElucHV0Q2xpZW50TW9jay5jcHAgXAogCVwKZGlmZiAtLWdpdCBh
L1dlYkNvcmUvQ01ha2VMaXN0cy50eHQgYi9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CmluZGV4IDk3
YTNkMmU5NWE2OGJkNDhjNjZkYjEwOTlkOTI0MGQ0NGY2NmVmOGMuLjI2ZTc3YjUwY2I4ZWY2ZDUy
ZDgzODQzYWEzY2Y0NWQ1NmQ2NjczNWMgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvQ01ha2VMaXN0cy50
eHQKKysrIGIvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dApAQCAtMTM1OSw2ICsxMzU5LDcgQEAgU0VU
KFdlYkNvcmVfU09VUkNFUwogICAgIHBsYXRmb3JtL2ltYWdlLWRlY29kZXJzL3dlYnAvV0VCUElt
YWdlRGVjb2Rlci5jcHAKIAogICAgIHBsYXRmb3JtL21vY2svRGV2aWNlT3JpZW50YXRpb25DbGll
bnRNb2NrLmNwcAorICAgIHBsYXRmb3JtL21vY2svR2VvbG9jYXRpb25DbGllbnRNb2NrLmNwcAog
ICAgIHBsYXRmb3JtL21vY2svR2VvbG9jYXRpb25TZXJ2aWNlTW9jay5jcHAKIAogICAgIHBsYXRm
b3JtL25ldHdvcmsvQXV0aGVudGljYXRpb25DaGFsbGVuZ2VCYXNlLmNwcApkaWZmIC0tZ2l0IGEv
V2ViQ29yZS9DaGFuZ2VMb2cgYi9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBjZjI3YTljM2M5MzM2
YmVlZGNkYzk5MzM5MWI5NmQzNGFmMzVjYTA5Li4yODFhMjQ1NjAwNTkwN2I0ZDE5NzEwYzQzNjRj
MWUwMTFmNjNhY2M2IDEwMDY0NAotLS0gYS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9XZWJDb3Jl
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDM0IEBACisyMDEwLTExLTEwICBKb2huIEtub3R0ZW5iZWx0
ICA8amtub3R0ZW5AY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIEltcGxlbWVudCBtb2NrcyBmb3IgY2xpZW50LWJhc2VkIEdlb2xv
Y2F0aW9uLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
NDkyNTgKKworICAgICAgICBObyBuZXcgdGVzdHMuIChPT1BTISkKKworICAgICAgICAqIEFuZHJv
aWQubWs6CisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6CisgICAgICAgICogR05VbWFrZWZpbGUu
YW06CisgICAgICAgICogV2ViQ29yZS5neXBpOgorICAgICAgICAqIFdlYkNvcmUucHJvOgorICAg
ICAgICAqIFdlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qOgorICAgICAgICAqIFdlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBwbGF0Zm9ybS9tb2NrL0dlb2xv
Y2F0aW9uQ2xpZW50TW9jay5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6R2VvbG9jYXRp
b25DbGllbnRNb2NrOjpHZW9sb2NhdGlvbkNsaWVudE1vY2spOgorICAgICAgICAoV2ViQ29yZTo6
R2VvbG9jYXRpb25DbGllbnRNb2NrOjp+R2VvbG9jYXRpb25DbGllbnRNb2NrKToKKyAgICAgICAg
KFdlYkNvcmU6Okdlb2xvY2F0aW9uQ2xpZW50TW9jazo6c2V0Q29udHJvbGxlcik6CisgICAgICAg
IChXZWJDb3JlOjpHZW9sb2NhdGlvbkNsaWVudE1vY2s6OnNldFBvc2l0aW9uKToKKyAgICAgICAg
KFdlYkNvcmU6Okdlb2xvY2F0aW9uQ2xpZW50TW9jazo6c2V0RXJyb3IpOgorICAgICAgICAoV2Vi
Q29yZTo6R2VvbG9jYXRpb25DbGllbnRNb2NrOjpnZW9sb2NhdGlvbkRlc3Ryb3llZCk6CisgICAg
ICAgIChXZWJDb3JlOjpHZW9sb2NhdGlvbkNsaWVudE1vY2s6OnN0YXJ0VXBkYXRpbmcpOgorICAg
ICAgICAoV2ViQ29yZTo6R2VvbG9jYXRpb25DbGllbnRNb2NrOjpzdG9wVXBkYXRpbmcpOgorICAg
ICAgICAoV2ViQ29yZTo6R2VvbG9jYXRpb25DbGllbnRNb2NrOjpzZXRFbmFibGVIaWdoQWNjdXJh
Y3kpOgorICAgICAgICAoV2ViQ29yZTo6R2VvbG9jYXRpb25DbGllbnRNb2NrOjpsYXN0UG9zaXRp
b24pOgorICAgICAgICAoV2ViQ29yZTo6R2VvbG9jYXRpb25DbGllbnRNb2NrOjp0aW1lckZpcmVk
KToKKyAgICAgICAgKFdlYkNvcmU6Okdlb2xvY2F0aW9uQ2xpZW50TW9jazo6bWFrZUdlb2xvY2F0
aW9uQ2FsbGJhY2spOgorICAgICAgICAqIHBsYXRmb3JtL21vY2svR2VvbG9jYXRpb25DbGllbnRN
b2NrLmg6IEFkZGVkLgorCiAyMDEwLTExLTEwICBTaGluaWNoaXJvIEhhbWFqaSAgPGhhbWFqaUBj
aHJvbWl1bS5vcmc+CiAKICAgICAgICAgQWRkaW5nIGEgbWFudWFsIHRlc3Qgd2hpY2ggSSBmb3Jn
b3QgdG8gYWRkIGluIHI3MTYxOC4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0g
Yi9XZWJDb3JlL0dOVW1ha2VmaWxlLmFtCmluZGV4IDA0ODc4ODcyMGUyMDUxNWQyYzBlZDMwOGI3
YWIwMzI2NWI0ZTVhM2IuLmUzYTY2YWNkMDA3Yjc3M2I4MGNmNzFmOTZmMjNkMmI4OTA1MzMzN2Mg
MTAwNjQ0Ci0tLSBhL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0KKysrIGIvV2ViQ29yZS9HTlVtYWtl
ZmlsZS5hbQpAQCAtMjM5OCw2ICsyMzk4LDggQEAgd2ViY29yZV9zb3VyY2VzICs9IFwKIAlXZWJD
b3JlL3BsYXRmb3JtL01JTUVUeXBlUmVnaXN0cnkuaCBcCiAJV2ViQ29yZS9wbGF0Zm9ybS9tb2Nr
L0RldmljZU9yaWVudGF0aW9uQ2xpZW50TW9jay5jcHAgXAogCVdlYkNvcmUvcGxhdGZvcm0vbW9j
ay9EZXZpY2VPcmllbnRhdGlvbkNsaWVudE1vY2suaCBcCisJV2ViQ29yZS9wbGF0Zm9ybS9tb2Nr
L0dlb2xvY2F0aW9uQ2xpZW50TW9jay5jcHAgXAorCVdlYkNvcmUvcGxhdGZvcm0vbW9jay9HZW9s
b2NhdGlvbkNsaWVudE1vY2suaCBcCiAJV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL0dlb2xvY2F0aW9u
U2VydmljZU1vY2suY3BwIFwKIAlXZWJDb3JlL3BsYXRmb3JtL21vY2svR2VvbG9jYXRpb25TZXJ2
aWNlTW9jay5oIFwKIAlXZWJDb3JlL3BsYXRmb3JtL21vY2svU3BlZWNoSW5wdXRDbGllbnRNb2Nr
LmNwcCBcCmRpZmYgLS1naXQgYS9XZWJDb3JlL1dlYkNvcmUuZ3lwaSBiL1dlYkNvcmUvV2ViQ29y
ZS5neXBpCmluZGV4IGY3OWRiY2RiZDI1ZmRjZmQwNjJlZmVmOWFkYzIxNGEwYmM4NWU5YjcuLjgw
ZmQ3NTBhNzZmNjY2OWRkNTlhZTg4YmVlMjRhNDJhMDI4MzdhYWUgMTAwNjQ0Ci0tLSBhL1dlYkNv
cmUvV2ViQ29yZS5neXBpCisrKyBiL1dlYkNvcmUvV2ViQ29yZS5neXBpCkBAIC0zMzU5LDYgKzMz
NTksOCBAQAogICAgICAgICAgICAgJ3BsYXRmb3JtL01JTUVUeXBlUmVnaXN0cnkuaCcsCiAgICAg
ICAgICAgICAncGxhdGZvcm0vbW9jay9EZXZpY2VPcmllbnRhdGlvbkNsaWVudE1vY2suY3BwJywK
ICAgICAgICAgICAgICdwbGF0Zm9ybS9tb2NrL0RldmljZU9yaWVudGF0aW9uQ2xpZW50TW9jay5o
JywKKyAgICAgICAgICAgICdwbGF0Zm9ybS9tb2NrL0dlb2xvY2F0aW9uQ2xpZW50TW9jay5jcHAn
LAorICAgICAgICAgICAgJ3BsYXRmb3JtL21vY2svR2VvbG9jYXRpb25DbGllbnRNb2NrLmgnLAog
ICAgICAgICAgICAgJ3BsYXRmb3JtL21vY2svR2VvbG9jYXRpb25TZXJ2aWNlTW9jay5jcHAnLAog
ICAgICAgICAgICAgJ3BsYXRmb3JtL21vY2svR2VvbG9jYXRpb25TZXJ2aWNlTW9jay5oJywKICAg
ICAgICAgICAgICdwbGF0Zm9ybS9tb2NrL1NwZWVjaElucHV0Q2xpZW50TW9jay5jcHAnLApkaWZm
IC0tZ2l0IGEvV2ViQ29yZS9XZWJDb3JlLnBybyBiL1dlYkNvcmUvV2ViQ29yZS5wcm8KaW5kZXgg
OGNhMWMxZDA5YTFhYzE2NGVmMjE1YzZhYmI0NTQzMDYyYmY5NzUwNy4uODdkMTExZmNiMDhlYTNk
NGFmNTU4MjQ2ZTcwOTJmMWY0NmQyYzQ3YyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9XZWJDb3JlLnBy
bworKysgYi9XZWJDb3JlL1dlYkNvcmUucHJvCkBAIC0xMTk1LDYgKzExOTUsNyBAQCBTT1VSQ0VT
ICs9IFwKICAgICBwbGF0Zm9ybS9Mb2dnaW5nLmNwcCBcCiAgICAgcGxhdGZvcm0vTUlNRVR5cGVS
ZWdpc3RyeS5jcHAgXAogICAgIHBsYXRmb3JtL21vY2svRGV2aWNlT3JpZW50YXRpb25DbGllbnRN
b2NrLmNwcCBcCisgICAgcGxhdGZvcm0vbW9jay9HZW9sb2NhdGlvbkNsaWVudE1vY2suY3BwIFwK
ICAgICBwbGF0Zm9ybS9tb2NrL0dlb2xvY2F0aW9uU2VydmljZU1vY2suY3BwIFwKICAgICBwbGF0
Zm9ybS9tb2NrL1NwZWVjaElucHV0Q2xpZW50TW9jay5jcHAgXAogICAgIHBsYXRmb3JtL25ldHdv
cmsvQXV0aGVudGljYXRpb25DaGFsbGVuZ2VCYXNlLmNwcCBcCkBAIC0yMDQwLDYgKzIwNDEsNyBA
QCBIRUFERVJTICs9IFwKICAgICBwbGF0Zm9ybS9HZW9sb2NhdGlvblNlcnZpY2UuaCBcCiAgICAg
cGxhdGZvcm0vaW1hZ2UtZGVjb2RlcnMvSW1hZ2VEZWNvZGVyLmggXAogICAgIHBsYXRmb3JtL21v
Y2svRGV2aWNlT3JpZW50YXRpb25DbGllbnRNb2NrLmggXAorICAgIHBsYXRmb3JtL21vY2svR2Vv
bG9jYXRpb25DbGllbnRNb2NrLmNwcCBcCiAgICAgcGxhdGZvcm0vbW9jay9HZW9sb2NhdGlvblNl
cnZpY2VNb2NrLmggXAogICAgIHBsYXRmb3JtL21vY2svU3BlZWNoSW5wdXRDbGllbnRNb2NrLmgg
XAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL0JpdG1hcEltYWdlLmggXApkaWZmIC0tZ2l0IGEvV2Vi
Q29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvaiBiL1dlYkNvcmUvV2ViQ29yZS52Y3By
b2ovV2ViQ29yZS52Y3Byb2oKaW5kZXggMDE1N2FkNjdjZDIxYTZkMWY4MzU1YzIxMzM4MDJkZjFi
ZjRhYWFjZi4uNmU1ZTc0ZWU3NWQ0MmRiNjYyZmM2ZmQ3NGUxNGIxOGU2MDY0NTA0MiAxMDA2NDQK
LS0tIGEvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagorKysgYi9XZWJDb3Jl
L1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCkBAIC0zMDIwNyw2ICszMDIwNywxNCBAQAog
CQkJCQk+DQogCQkJCTwvRmlsZT4NCiAJCQkJPEZpbGUNCisJCQkJCVJlbGF0aXZlUGF0aD0iLi5c
cGxhdGZvcm1cbW9ja1xHZW9sb2NhdGlvbkNsaWVudE1vY2suY3BwIg0KKwkJCQkJPg0KKwkJCQk8
L0ZpbGU+DQorCQkJCTxGaWxlDQorCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHBsYXRmb3JtXG1vY2tc
R2VvbG9jYXRpb25DbGllbnRNb2NrLmgiDQorCQkJCQk+DQorCQkJCTwvRmlsZT4NCisJCQkJPEZp
bGUNCiAJCQkJCVJlbGF0aXZlUGF0aD0iLi5ccGxhdGZvcm1cbW9ja1xHZW9sb2NhdGlvblNlcnZp
Y2VNb2NrLmNwcCINCiAJCQkJCT4NCiAJCQkJPC9GaWxlPg0KZGlmZiAtLWdpdCBhL1dlYkNvcmUv
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvV2ViQ29yZS9XZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggZDZhY2Q5ZWQxNDVkNzliYWE2NjkxNDQ4ZjhiMjVm
MDY0MzZiNGNlYi4uOWU2ODJlMTgwZGJhZDU1MDFiODNkNmI1NzZjYmNjMWY3MjVmMDc1MyAxMDA2
NDQKLS0tIGEvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIv
V2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTM2LDYgKzM2LDgg
QEAKIAkJMDAxNDYyOEExMDNDRDFERTAwMEIyMERCIC8qIE9yaWdpbkFjY2Vzc0VudHJ5LmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDAwMTQ2Mjg4MTAz
Q0QxREUwMDBCMjBEQiAvKiBPcmlnaW5BY2Nlc3NFbnRyeS5jcHAgKi87IH07CiAJCTAwMTQ2MjhC
MTAzQ0QxREUwMDBCMjBEQiAvKiBPcmlnaW5BY2Nlc3NFbnRyeS5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDAxNDYyODkxMDNDRDFERTAwMEIyMERCIC8q
IE9yaWdpbkFjY2Vzc0VudHJ5LmggKi87IH07CiAJCTAwM0YxRkVBMTFFNkFCNDMwMDgyNThEOSAv
KiBVc2VyQ29udGVudFR5cGVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSAwMDNGMUZFOTExRTZBQjQzMDA4MjU4RDkgLyogVXNlckNvbnRlbnRUeXBlcy5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTA1MkJG
Q0U5MTI4QUJGMTUwMEZEMzM4RCAvKiBHZW9sb2NhdGlvbkNsaWVudE1vY2suY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDUyQkZDRTgxMjhBQkYxNTAw
RkQzMzhEIC8qIEdlb2xvY2F0aW9uQ2xpZW50TW9jay5jcHAgKi87IH07CisJCTA1MkJGQ0VCMTI4
QUJGMjEwMEZEMzM4RCAvKiBHZW9sb2NhdGlvbkNsaWVudE1vY2suaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA1MkJGQ0VBMTI4QUJGMjEwMEZEMzM4RCAv
KiBHZW9sb2NhdGlvbkNsaWVudE1vY2suaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9OyB9OwogCQkwNUZENjlFMDEyODQ1RDQzMDBCMkJFQjMgLyogRE9NVGltZVN0
YW1wLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNUZE
NjlERjEyODQ1RDQzMDBCMkJFQjMgLyogRE9NVGltZVN0YW1wLmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMDYwMjdDQUQwQjFDQkZDMDAwODg0QjJE
IC8qIENvbnRleHRNZW51SXRlbS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gMDYwMjdDQUMwQjFDQkZDMDAwODg0QjJEIC8qIENvbnRleHRNZW51SXRlbS5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTA2MDI3
Q0IzMEIxQ0MwM0QwMDg4NEIyRCAvKiBDb250ZXh0TWVudUl0ZW1NYWMubW0gaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNjAyN0NCMjBCMUNDMDNEMDA4ODRC
MkQgLyogQ29udGV4dE1lbnVJdGVtTWFjLm1tICovOyB9OwpAQCAtNjA4Miw2ICs2MDg0LDggQEAK
IAkJMDAxNDYyODgxMDNDRDFERTAwMEIyMERCIC8qIE9yaWdpbkFjY2Vzc0VudHJ5LmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE9yaWdpbkFjY2Vzc0VudHJ5LmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDAxNDYyODkxMDNDRDFERTAwMEIyMERCIC8q
IE9yaWdpbkFjY2Vzc0VudHJ5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE9y
aWdpbkFjY2Vzc0VudHJ5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTAwM0YxRkU5
MTFFNkFCNDMwMDgyNThEOSAvKiBVc2VyQ29udGVudFR5cGVzLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IFVzZXJDb250ZW50VHlwZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJMDUyQkZDRTgxMjhBQkYxNTAwRkQzMzhEIC8qIEdlb2xvY2F0aW9uQ2xpZW50TW9j
ay5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBHZW9sb2NhdGlvbkNs
aWVudE1vY2suY3BwOyBwYXRoID0gbW9jay9HZW9sb2NhdGlvbkNsaWVudE1vY2suY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQkwNTJCRkNFQTEyOEFCRjIxMDBGRDMzOEQgLyogR2Vv
bG9jYXRpb25DbGllbnRNb2NrLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IEdl
b2xvY2F0aW9uQ2xpZW50TW9jay5oOyBwYXRoID0gbW9jay9HZW9sb2NhdGlvbkNsaWVudE1vY2su
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDVGRDY5REYxMjg0NUQ0MzAwQjJCRUIz
IC8qIERPTVRpbWVTdGFtcC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBET01U
aW1lU3RhbXAuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDYwMjdDQUMwQjFDQkZD
MDAwODg0QjJEIC8qIENvbnRleHRNZW51SXRlbS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gQ29udGV4dE1lbnVJdGVtLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTA2MDI3Q0IyMEIxQ0MwM0QwMDg4NEIyRCAvKiBDb250ZXh0TWVudUl0ZW1NYWMubW0gKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gQ29udGV4dE1lbnVJdGVtTWFjLm1t
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTI5NTksNiArMTI5NjMsOCBAQAogCQkJ
Y2hpbGRyZW4gPSAoCiAJCQkJNTkzMDlBMTAxMUY0QUU1ODAwMjUwNjAzIC8qIERldmljZU9yaWVu
dGF0aW9uQ2xpZW50TW9jay5jcHAgKi8sCiAJCQkJNTkzMDlBMTIxMUY0QUU2QTAwMjUwNjAzIC8q
IERldmljZU9yaWVudGF0aW9uQ2xpZW50TW9jay5oICovLAorCQkJCTA1MkJGQ0U4MTI4QUJGMTUw
MEZEMzM4RCAvKiBHZW9sb2NhdGlvbkNsaWVudE1vY2suY3BwICovLAorCQkJCTA1MkJGQ0VBMTI4
QUJGMjEwMEZEMzM4RCAvKiBHZW9sb2NhdGlvbkNsaWVudE1vY2suaCAqLywKIAkJCQk3NTM1QkM5
MjEyMDIwQ0ZGMDAzN0VDNDUgLyogU3BlZWNoSW5wdXRDbGllbnRNb2NrLmNwcCAqLywKIAkJCQk3
NTM1QkM5MzEyMDIwQ0ZGMDAzN0VDNDUgLyogU3BlZWNoSW5wdXRDbGllbnRNb2NrLmggKi8sCiAJ
CQkpOwpAQCAtMjEzNDUsNiArMjEzNTEsNyBAQAogCQkJCUUxQkU1MTJFMENGNkM1MTIwMDJFQTk1
OSAvKiBYU0xUVW5pY29kZVNvcnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTk3REQ0RDg3MEZERjRE
NkUwMEVDRjlBNCAvKiBYU1NBdWRpdG9yLmggaW4gSGVhZGVycyAqLywKIAkJCQk0NjcwMEVEMTEy
N0I5NkNCMDBGNUQ1RDYgLyogRmlsZVdyaXRlclN5bmMuaCBpbiBIZWFkZXJzICovLAorCQkJCTA1
MkJGQ0VCMTI4QUJGMjEwMEZEMzM4RCAvKiBHZW9sb2NhdGlvbkNsaWVudE1vY2suaCBpbiBIZWFk
ZXJzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAw
OwogCQl9OwpAQCAtMjE0MDQsNyArMjE0MTEsNiBAQAogCQkJaXNhID0gUEJYUHJvamVjdDsKIAkJ
CWJ1aWxkQ29uZmlndXJhdGlvbkxpc3QgPSAxNDlDMjg0MzA4OTAyQjExMDA4QTlFRkMgLyogQnVp
bGQgY29uZmlndXJhdGlvbiBsaXN0IGZvciBQQlhQcm9qZWN0ICJXZWJDb3JlIiAqLzsKIAkJCWNv
bXBhdGliaWxpdHlWZXJzaW9uID0gIlhjb2RlIDIuNCI7Ci0JCQlkZXZlbG9wbWVudFJlZ2lvbiA9
IEVuZ2xpc2g7CiAJCQloYXNTY2FubmVkRm9yRW5jb2RpbmdzID0gMTsKIAkJCWtub3duUmVnaW9u
cyA9ICgKIAkJCQlFbmdsaXNoLApAQCAtMjM5MTYsNiArMjM5MjIsNyBAQAogCQkJCTk3REQ0RDg2
MEZERjRENkUwMEVDRjlBNCAvKiBYU1NBdWRpdG9yLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTQ2
NzAwRUQwMTI3Qjk2Q0IwMEY1RDVENiAvKiBGaWxlV3JpdGVyU3luYy5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQlEMENFNThGODEyNUU0Q0MyMDBGM0YxOTkgLyogUmVzb3VyY2VMb2FkU2NoZWR1bGVy
LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTA1MkJGQ0U5MTI4QUJGMTUwMEZEMzM4RCAvKiBHZW9s
b2NhdGlvbkNsaWVudE1vY2suY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZv
ckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CmRpZmYgLS1naXQgYS9XZWJDb3Jl
L3BsYXRmb3JtL21vY2svR2VvbG9jYXRpb25DbGllbnRNb2NrLmNwcCBiL1dlYkNvcmUvcGxhdGZv
cm0vbW9jay9HZW9sb2NhdGlvbkNsaWVudE1vY2suY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjI5ZGY1YjkxMWY2
MDQyNWY0NGFhMDRhNGYyY2IwN2M0NjdkZmNlYWQKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJDb3Jl
L3BsYXRmb3JtL21vY2svR2VvbG9jYXRpb25DbGllbnRNb2NrLmNwcApAQCAtMCwwICsxLDEyNCBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAq
ICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0
aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
CisgKiBkaXN0cmlidXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJ
bmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8g
ZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2Fy
ZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJ
QlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICog
T1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkg
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
KyNpbmNsdWRlICJjb25maWcuaCIKKworI2lmIEVOQUJMRShDTElFTlRfQkFTRURfR0VPTE9DQVRJ
T04pCisjaW5jbHVkZSAiR2VvbG9jYXRpb25DbGllbnRNb2NrLmgiCisKKyNpbmNsdWRlICJHZW9s
b2NhdGlvbkNvbnRyb2xsZXIuaCIKKyNpbmNsdWRlICJHZW9sb2NhdGlvbkVycm9yLmgiCisjaW5j
bHVkZSAiR2VvbG9jYXRpb25Qb3NpdGlvbi5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK0dl
b2xvY2F0aW9uQ2xpZW50TW9jazo6R2VvbG9jYXRpb25DbGllbnRNb2NrKCkKKyAgICA6IG1fY29u
dHJvbGxlcigwKQorICAgICwgbV90aW1lcih0aGlzLCAmR2VvbG9jYXRpb25DbGllbnRNb2NrOjp0
aW1lckZpcmVkKQorICAgICwgbV9pc0FjdGl2ZShmYWxzZSkKK3sKK30KKworR2VvbG9jYXRpb25D
bGllbnRNb2NrOjp+R2VvbG9jYXRpb25DbGllbnRNb2NrKCkKK3sKK30KKwordm9pZCBHZW9sb2Nh
dGlvbkNsaWVudE1vY2s6OnNldENvbnRyb2xsZXIoR2VvbG9jYXRpb25Db250cm9sbGVyICpjb250
cm9sbGVyKQoreworICAgIEFTU0VSVCghY29udHJvbGxlciB8fCAhbV9jb250cm9sbGVyKTsKKyAg
ICBtX2NvbnRyb2xsZXIgPSBjb250cm9sbGVyOworfQorCit2b2lkIEdlb2xvY2F0aW9uQ2xpZW50
TW9jazo6c2V0UG9zaXRpb24oUGFzc1JlZlB0cjxHZW9sb2NhdGlvblBvc2l0aW9uPiBwb3NpdGlv
bikKK3sKKyAgICBtX2xhc3RQb3NpdGlvbiA9IHBvc2l0aW9uOworICAgIG1fbGFzdEVycm9yID0g
MDsKKyAgICBpZiAobV9pc0FjdGl2ZSkKKyAgICAgICAgbWFrZUdlb2xvY2F0aW9uQ2FsbGJhY2so
KTsKK30KKwordm9pZCBHZW9sb2NhdGlvbkNsaWVudE1vY2s6OnNldEVycm9yKFBhc3NSZWZQdHI8
R2VvbG9jYXRpb25FcnJvcj4gZXJyb3IpCit7CisgICAgbV9sYXN0RXJyb3IgPSBlcnJvcjsKKyAg
ICBtX2xhc3RQb3NpdGlvbiA9IDA7CisgICAgaWYgKG1faXNBY3RpdmUpCisgICAgICAgIG1ha2VH
ZW9sb2NhdGlvbkNhbGxiYWNrKCk7Cit9CisKK3ZvaWQgR2VvbG9jYXRpb25DbGllbnRNb2NrOjpn
ZW9sb2NhdGlvbkRlc3Ryb3llZCgpCit7CisgICAgbV9jb250cm9sbGVyID0gMDsKK30KKwordm9p
ZCBHZW9sb2NhdGlvbkNsaWVudE1vY2s6OnN0YXJ0VXBkYXRpbmcoKQoreworICAgIEFTU0VSVCgh
bV9pc0FjdGl2ZSk7CisgICAgbV9pc0FjdGl2ZSA9IHRydWU7CisgICAgbV90aW1lci5zdGFydE9u
ZVNob3QoMCk7Cit9CisKK3ZvaWQgR2VvbG9jYXRpb25DbGllbnRNb2NrOjpzdG9wVXBkYXRpbmco
KQoreworICAgIEFTU0VSVChtX2lzQWN0aXZlKTsKKyAgICBtX2lzQWN0aXZlID0gZmFsc2U7Cisg
ICAgbV90aW1lci5zdG9wKCk7Cit9CisKK3ZvaWQgR2VvbG9jYXRpb25DbGllbnRNb2NrOjpzZXRF
bmFibGVIaWdoQWNjdXJhY3koYm9vbCkKK3sKKyAgICAvLyBGSVhNRTogV2UgbmVlZCB0byBhZGQg
c29tZSB0ZXN0cyByZWdhcmRpbmcgImhpZ2ggYWNjdXJhY3kiIG1vZGUuCit9CisKK0dlb2xvY2F0
aW9uUG9zaXRpb24qIEdlb2xvY2F0aW9uQ2xpZW50TW9jazo6bGFzdFBvc2l0aW9uKCkKK3sKKyAg
ICByZXR1cm4gbV9sYXN0UG9zaXRpb24uZ2V0KCk7Cit9CisKK3ZvaWQgR2VvbG9jYXRpb25DbGll
bnRNb2NrOjp0aW1lckZpcmVkKFRpbWVyPEdlb2xvY2F0aW9uQ2xpZW50TW9jaz4qIHRpbWVyKQor
eworICAgIEFTU0VSVF9VTlVTRUQodGltZXIsIHRpbWVyID09ICZtX3RpbWVyKTsKKyAgICBtYWtl
R2VvbG9jYXRpb25DYWxsYmFjaygpOworfQorCit2b2lkIEdlb2xvY2F0aW9uQ2xpZW50TW9jazo6
bWFrZUdlb2xvY2F0aW9uQ2FsbGJhY2soKQoreworICAgIGlmICghbV9jb250cm9sbGVyKQorICAg
ICAgICByZXR1cm47CisKKyAgICBpZiAobV9sYXN0UG9zaXRpb24uZ2V0KCkpCisgICAgICAgIG1f
Y29udHJvbGxlci0+cG9zaXRpb25DaGFuZ2VkKG1fbGFzdFBvc2l0aW9uLmdldCgpKTsKKworICAg
IGlmIChtX2xhc3RFcnJvci5nZXQoKSkKKyAgICAgICAgbV9jb250cm9sbGVyLT5lcnJvck9jY3Vy
cmVkKG1fbGFzdEVycm9yLmdldCgpKTsKK30KKworfSAvLyBXZWJDb3JlCisKKyNlbmRpZiAvLyBF
TkFCTEUoQ0xJRU5UX0JBU0VEX0dFT0xPQ0FUSU9OKQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0
Zm9ybS9tb2NrL0dlb2xvY2F0aW9uQ2xpZW50TW9jay5oIGIvV2ViQ29yZS9wbGF0Zm9ybS9tb2Nr
L0dlb2xvY2F0aW9uQ2xpZW50TW9jay5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjE3NjE3MTY4NDhjNTc4OThjM2Zk
ZGJkZWQyMzYyOWNlMWM0NWE2MjMKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJDb3JlL3BsYXRmb3Jt
L21vY2svR2VvbG9jYXRpb25DbGllbnRNb2NrLmgKQEAgLTAsMCArMSw4NiBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmli
dXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUg
bmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBw
cm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNw
ZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAi
QVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09O
VFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
CisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgR2Vv
bG9jYXRpb25DbGllbnRNb2NrX2gKKyNkZWZpbmUgR2VvbG9jYXRpb25DbGllbnRNb2NrX2gKKwor
I2lmIEVOQUJMRShDTElFTlRfQkFTRURfR0VPTE9DQVRJT04pCisKKyNpbmNsdWRlICJHZW9sb2Nh
dGlvbkNvbnRyb2xsZXJDbGllbnQuaCIKKyNpbmNsdWRlICJQbGF0Zm9ybVN0cmluZy5oIgorI2lu
Y2x1ZGUgIlRpbWVyLmgiCisKKyNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgorI2luY2x1ZGUg
PHd0Zi9SZWZQdHIuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBHZW9sb2NhdGlv
bkNvbnRyb2xsZXI7CitjbGFzcyBHZW9sb2NhdGlvblBvc2l0aW9uOworY2xhc3MgR2VvbG9jYXRp
b25FcnJvcjsKKworLy8gUHJvdmlkZXMgYSBtb2NrIG9iamVjdCBmb3IgdGhlIGdlb2xvY2F0aW9u
IGNsaWVudAorY2xhc3MgR2VvbG9jYXRpb25DbGllbnRNb2NrIDogcHVibGljIEdlb2xvY2F0aW9u
Q29udHJvbGxlckNsaWVudCB7CitwdWJsaWM6CisgICAgR2VvbG9jYXRpb25DbGllbnRNb2NrKCk7
CisgICAgdmlydHVhbCB+R2VvbG9jYXRpb25DbGllbnRNb2NrKCk7CisKKyAgICB2b2lkIHNldENv
bnRyb2xsZXIoR2VvbG9jYXRpb25Db250cm9sbGVyKik7CisKKyAgICB2b2lkIHNldEVycm9yKFBh
c3NSZWZQdHI8R2VvbG9jYXRpb25FcnJvcj4pOworICAgIHZvaWQgc2V0UG9zaXRpb24oUGFzc1Jl
ZlB0cjxHZW9sb2NhdGlvblBvc2l0aW9uPik7CisKKyAgICAvLyBHZW9sb2NhdGlvbkNvbnRyb2xs
ZXJDbGllbnQKKyAgICB2aXJ0dWFsIHZvaWQgZ2VvbG9jYXRpb25EZXN0cm95ZWQoKTsKKyAgICB2
aXJ0dWFsIHZvaWQgc3RhcnRVcGRhdGluZygpOworICAgIHZpcnR1YWwgdm9pZCBzdG9wVXBkYXRp
bmcoKTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0RW5hYmxlSGlnaEFjY3VyYWN5KGJvb2wpOworICAg
IHZpcnR1YWwgR2VvbG9jYXRpb25Qb3NpdGlvbiAqbGFzdFBvc2l0aW9uKCk7CisKK3ByaXZhdGU6
CisgICAgdm9pZCB0aW1lckZpcmVkKFRpbWVyPEdlb2xvY2F0aW9uQ2xpZW50TW9jaz4qKTsKKyAg
ICB2b2lkIG1ha2VHZW9sb2NhdGlvbkNhbGxiYWNrKCk7CisKKyAgICBHZW9sb2NhdGlvbkNvbnRy
b2xsZXIgKm1fY29udHJvbGxlcjsKKworICAgIFJlZlB0cjxHZW9sb2NhdGlvblBvc2l0aW9uPiBt
X2xhc3RQb3NpdGlvbjsKKworICAgIFJlZlB0cjxHZW9sb2NhdGlvbkVycm9yPiBtX2xhc3RFcnJv
cjsKKworICAgIFRpbWVyPEdlb2xvY2F0aW9uQ2xpZW50TW9jaz4gbV90aW1lcjsKKworICAgIGJv
b2wgbV9pc0FjdGl2ZTsKK307CisKK30KKworI2VuZGlmIC8vIEVOQUJMRShDTElFTlRfQkFTRURf
R0VPTE9DQVRJT04pCisKKyNlbmRpZgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>74242</attachid>
            <date>2010-11-18 08:46:26 -0800</date>
            <delta_ts>2010-11-22 09:20:41 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-49258-20101118164624.patch</filename>
            <type>text/plain</type>
            <size>17737</size>
            <attacher name="John Knottenbelt">jknotten</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQW5kcm9pZC5tayBiL1dlYkNvcmUvQW5kcm9pZC5tawppbmRl
eCAyM2M1OWI0MzhmOWY1ZTYyZWI1OGI2ZGQ2OTA0ZmY3NThhNDhhYjEyLi4xNTQ0Njc5NDYxMTUx
NmIyNWQzN2EzOGU0NDZhYTdjMjExNDBiYjVlIDEwMDY0NAotLS0gYS9XZWJDb3JlL0FuZHJvaWQu
bWsKKysrIGIvV2ViQ29yZS9BbmRyb2lkLm1rCkBAIC01NzgsNiArNTc4LDcgQEAgTE9DQUxfU1JD
X0ZJTEVTIDo9ICQoTE9DQUxfU1JDX0ZJTEVTKSBcCiAJcGxhdGZvcm0vaW1hZ2UtZGVjb2RlcnMv
Z2lmL0dJRkltYWdlUmVhZGVyLmNwcCBcCiAJXAogCXBsYXRmb3JtL21vY2svRGV2aWNlT3JpZW50
YXRpb25DbGllbnRNb2NrLmNwcCBcCisJcGxhdGZvcm0vbW9jay9HZW9sb2NhdGlvbkNsaWVudE1v
Y2suY3BwIFwKIAlwbGF0Zm9ybS9tb2NrL0dlb2xvY2F0aW9uU2VydmljZU1vY2suY3BwIFwKIAlw
bGF0Zm9ybS9tb2NrL1NwZWVjaElucHV0Q2xpZW50TW9jay5jcHAgXAogCVwKZGlmZiAtLWdpdCBh
L1dlYkNvcmUvQ01ha2VMaXN0cy50eHQgYi9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CmluZGV4IGEz
MGNhZjk3ZWVmYWQyOWQzZTYyYjgwZGIwZmIzOTZkNjk2ODFmMWUuLjUwNDVlOWQ0OGE2ZTBjYjNm
ZmZlNmEyMGU0ZmI1NTIyZjRkMTkxODMgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvQ01ha2VMaXN0cy50
eHQKKysrIGIvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dApAQCAtMTM1NSw2ICsxMzU1LDcgQEAgU0VU
KFdlYkNvcmVfU09VUkNFUwogICAgIHBsYXRmb3JtL2ltYWdlLWRlY29kZXJzL3dlYnAvV0VCUElt
YWdlRGVjb2Rlci5jcHAKIAogICAgIHBsYXRmb3JtL21vY2svRGV2aWNlT3JpZW50YXRpb25DbGll
bnRNb2NrLmNwcAorICAgIHBsYXRmb3JtL21vY2svR2VvbG9jYXRpb25DbGllbnRNb2NrLmNwcAog
ICAgIHBsYXRmb3JtL21vY2svR2VvbG9jYXRpb25TZXJ2aWNlTW9jay5jcHAKIAogICAgIHBsYXRm
b3JtL25ldHdvcmsvQXV0aGVudGljYXRpb25DaGFsbGVuZ2VCYXNlLmNwcApkaWZmIC0tZ2l0IGEv
V2ViQ29yZS9DaGFuZ2VMb2cgYi9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBmNWFiM2FmNzVlODI3
MjUwZmQwZTI0MDMzNjJkMjAwOTIwMDAzYTA4Li5mNzljY2M3ZGIyYmYyOWYxNmZmMGVhZmVlNGQ4
ZWVhOGNkN2FjOWUzIDEwMDY0NAotLS0gYS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9XZWJDb3Jl
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDMyIEBACisyMDEwLTExLTEwICBKb2huIEtub3R0ZW5iZWx0
ICA8amtub3R0ZW5AY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIEltcGxlbWVudCBtb2NrcyBmb3IgY2xpZW50LWJhc2VkIEdlb2xv
Y2F0aW9uLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
NDkyNTgKKworICAgICAgICAqIEFuZHJvaWQubWs6CisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6
CisgICAgICAgICogR05VbWFrZWZpbGUuYW06CisgICAgICAgICogV2ViQ29yZS5neXBpOgorICAg
ICAgICAqIFdlYkNvcmUucHJvOgorICAgICAgICAqIFdlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNw
cm9qOgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAg
ICAgKiBwbGF0Zm9ybS9tb2NrL0dlb2xvY2F0aW9uQ2xpZW50TW9jay5jcHA6IEFkZGVkLgorICAg
ICAgICAoV2ViQ29yZTo6R2VvbG9jYXRpb25DbGllbnRNb2NrOjpHZW9sb2NhdGlvbkNsaWVudE1v
Y2spOgorICAgICAgICAoV2ViQ29yZTo6R2VvbG9jYXRpb25DbGllbnRNb2NrOjp+R2VvbG9jYXRp
b25DbGllbnRNb2NrKToKKyAgICAgICAgKFdlYkNvcmU6Okdlb2xvY2F0aW9uQ2xpZW50TW9jazo6
c2V0Q29udHJvbGxlcik6CisgICAgICAgIChXZWJDb3JlOjpHZW9sb2NhdGlvbkNsaWVudE1vY2s6
OnNldFBvc2l0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6Okdlb2xvY2F0aW9uQ2xpZW50TW9jazo6
c2V0RXJyb3IpOgorICAgICAgICAoV2ViQ29yZTo6R2VvbG9jYXRpb25DbGllbnRNb2NrOjpnZW9s
b2NhdGlvbkRlc3Ryb3llZCk6CisgICAgICAgIChXZWJDb3JlOjpHZW9sb2NhdGlvbkNsaWVudE1v
Y2s6OnN0YXJ0VXBkYXRpbmcpOgorICAgICAgICAoV2ViQ29yZTo6R2VvbG9jYXRpb25DbGllbnRN
b2NrOjpzdG9wVXBkYXRpbmcpOgorICAgICAgICAoV2ViQ29yZTo6R2VvbG9jYXRpb25DbGllbnRN
b2NrOjpzZXRFbmFibGVIaWdoQWNjdXJhY3kpOgorICAgICAgICAoV2ViQ29yZTo6R2VvbG9jYXRp
b25DbGllbnRNb2NrOjpsYXN0UG9zaXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6R2VvbG9jYXRp
b25DbGllbnRNb2NrOjp0aW1lckZpcmVkKToKKyAgICAgICAgKFdlYkNvcmU6Okdlb2xvY2F0aW9u
Q2xpZW50TW9jazo6bWFrZUdlb2xvY2F0aW9uQ2FsbGJhY2spOgorICAgICAgICAqIHBsYXRmb3Jt
L21vY2svR2VvbG9jYXRpb25DbGllbnRNb2NrLmg6IEFkZGVkLgorCiAyMDEwLTExLTE4ICBOaWtv
bGFzIFppbW1lcm1hbm4gIDxuemltbWVybWFubkByaW0uY29tPgogCiAgICAgICAgIFJldmlld2Vk
IGJ5IERpcmsgU2NodWx6ZS4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0gYi9X
ZWJDb3JlL0dOVW1ha2VmaWxlLmFtCmluZGV4IDVkY2JmYzJmYzQwY2JkNDU4YzY5NGVhNWFkM2Fh
MzVhYTJlZmZhMGQuLjFlZmMyY2M5M2Q4YmI1ZDlkZmIwMzUyYmFkMTllMWEzZTg5MmY1YmUgMTAw
NjQ0Ci0tLSBhL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0KKysrIGIvV2ViQ29yZS9HTlVtYWtlZmls
ZS5hbQpAQCAtMjM5MCw2ICsyMzkwLDggQEAgd2ViY29yZV9zb3VyY2VzICs9IFwKIAlXZWJDb3Jl
L3BsYXRmb3JtL01JTUVUeXBlUmVnaXN0cnkuaCBcCiAJV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL0Rl
dmljZU9yaWVudGF0aW9uQ2xpZW50TW9jay5jcHAgXAogCVdlYkNvcmUvcGxhdGZvcm0vbW9jay9E
ZXZpY2VPcmllbnRhdGlvbkNsaWVudE1vY2suaCBcCisJV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL0dl
b2xvY2F0aW9uQ2xpZW50TW9jay5jcHAgXAorCVdlYkNvcmUvcGxhdGZvcm0vbW9jay9HZW9sb2Nh
dGlvbkNsaWVudE1vY2suaCBcCiAJV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL0dlb2xvY2F0aW9uU2Vy
dmljZU1vY2suY3BwIFwKIAlXZWJDb3JlL3BsYXRmb3JtL21vY2svR2VvbG9jYXRpb25TZXJ2aWNl
TW9jay5oIFwKIAlXZWJDb3JlL3BsYXRmb3JtL21vY2svU3BlZWNoSW5wdXRDbGllbnRNb2NrLmNw
cCBcCmRpZmYgLS1naXQgYS9XZWJDb3JlL1dlYkNvcmUuZ3lwaSBiL1dlYkNvcmUvV2ViQ29yZS5n
eXBpCmluZGV4IGRiZjhmYzQ0MGZhZmU4NDE4MmRlOTkxYzI4OGRkNjIyZTZmNjZmOGYuLjhmMDA2
OWZkZjNkY2VhYWYxZDVjZDg5MGMyMWY1ZDVjMzdkZWUxZjMgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUv
V2ViQ29yZS5neXBpCisrKyBiL1dlYkNvcmUvV2ViQ29yZS5neXBpCkBAIC0zMzU0LDYgKzMzNTQs
OCBAQAogICAgICAgICAgICAgJ3BsYXRmb3JtL01JTUVUeXBlUmVnaXN0cnkuaCcsCiAgICAgICAg
ICAgICAncGxhdGZvcm0vbW9jay9EZXZpY2VPcmllbnRhdGlvbkNsaWVudE1vY2suY3BwJywKICAg
ICAgICAgICAgICdwbGF0Zm9ybS9tb2NrL0RldmljZU9yaWVudGF0aW9uQ2xpZW50TW9jay5oJywK
KyAgICAgICAgICAgICdwbGF0Zm9ybS9tb2NrL0dlb2xvY2F0aW9uQ2xpZW50TW9jay5jcHAnLAor
ICAgICAgICAgICAgJ3BsYXRmb3JtL21vY2svR2VvbG9jYXRpb25DbGllbnRNb2NrLmgnLAogICAg
ICAgICAgICAgJ3BsYXRmb3JtL21vY2svR2VvbG9jYXRpb25TZXJ2aWNlTW9jay5jcHAnLAogICAg
ICAgICAgICAgJ3BsYXRmb3JtL21vY2svR2VvbG9jYXRpb25TZXJ2aWNlTW9jay5oJywKICAgICAg
ICAgICAgICdwbGF0Zm9ybS9tb2NrL1NwZWVjaElucHV0Q2xpZW50TW9jay5jcHAnLApkaWZmIC0t
Z2l0IGEvV2ViQ29yZS9XZWJDb3JlLnBybyBiL1dlYkNvcmUvV2ViQ29yZS5wcm8KaW5kZXggOGY2
YTc3MmNlNmE3Nzc4MzI2YjE5NTRkOTlhMWE3ZjI3N2VhY2I5Zi4uZjZkNzljYjdlMjZmOWU5MDgz
MjE1NmQ2MWQ1Nzk5Zjg3OWFkNWU0OSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9XZWJDb3JlLnBybwor
KysgYi9XZWJDb3JlL1dlYkNvcmUucHJvCkBAIC0xMTg5LDYgKzExODksNyBAQCBTT1VSQ0VTICs9
IFwKICAgICBwbGF0Zm9ybS9Mb2dnaW5nLmNwcCBcCiAgICAgcGxhdGZvcm0vTUlNRVR5cGVSZWdp
c3RyeS5jcHAgXAogICAgIHBsYXRmb3JtL21vY2svRGV2aWNlT3JpZW50YXRpb25DbGllbnRNb2Nr
LmNwcCBcCisgICAgcGxhdGZvcm0vbW9jay9HZW9sb2NhdGlvbkNsaWVudE1vY2suY3BwIFwKICAg
ICBwbGF0Zm9ybS9tb2NrL0dlb2xvY2F0aW9uU2VydmljZU1vY2suY3BwIFwKICAgICBwbGF0Zm9y
bS9tb2NrL1NwZWVjaElucHV0Q2xpZW50TW9jay5jcHAgXAogICAgIHBsYXRmb3JtL25ldHdvcmsv
QXV0aGVudGljYXRpb25DaGFsbGVuZ2VCYXNlLmNwcCBcCkBAIC0yMDMxLDYgKzIwMzIsNyBAQCBI
RUFERVJTICs9IFwKICAgICBwbGF0Zm9ybS9HZW9sb2NhdGlvblNlcnZpY2UuaCBcCiAgICAgcGxh
dGZvcm0vaW1hZ2UtZGVjb2RlcnMvSW1hZ2VEZWNvZGVyLmggXAogICAgIHBsYXRmb3JtL21vY2sv
RGV2aWNlT3JpZW50YXRpb25DbGllbnRNb2NrLmggXAorICAgIHBsYXRmb3JtL21vY2svR2VvbG9j
YXRpb25DbGllbnRNb2NrLmNwcCBcCiAgICAgcGxhdGZvcm0vbW9jay9HZW9sb2NhdGlvblNlcnZp
Y2VNb2NrLmggXAogICAgIHBsYXRmb3JtL21vY2svU3BlZWNoSW5wdXRDbGllbnRNb2NrLmggXAog
ICAgIHBsYXRmb3JtL2dyYXBoaWNzL0JpdG1hcEltYWdlLmggXApkaWZmIC0tZ2l0IGEvV2ViQ29y
ZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvaiBiL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ov
V2ViQ29yZS52Y3Byb2oKaW5kZXggZjlhNzc1ODA5YmQxNDQ3OTk0ODUxMTQwZDk5ZjY2MmFlNGE1
YmQxMi4uMzYzM2I4NjJkYzdjMTM5MDg2MmU1NmUwMzllMTQ0MDhjYjczYWEwZSAxMDA2NDQKLS0t
IGEvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagorKysgYi9XZWJDb3JlL1dl
YkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCkBAIC0zMzkwNiw2ICszMzkwNiwxNCBAQAogCQkJ
CQk+DQogCQkJCTwvRmlsZT4NCiAJCQkJPEZpbGUNCisJCQkJCVJlbGF0aXZlUGF0aD0iLi5ccGxh
dGZvcm1cbW9ja1xHZW9sb2NhdGlvbkNsaWVudE1vY2suY3BwIg0KKwkJCQkJPg0KKwkJCQk8L0Zp
bGU+DQorCQkJCTxGaWxlDQorCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHBsYXRmb3JtXG1vY2tcR2Vv
bG9jYXRpb25DbGllbnRNb2NrLmgiDQorCQkJCQk+DQorCQkJCTwvRmlsZT4NCisJCQkJPEZpbGUN
CiAJCQkJCVJlbGF0aXZlUGF0aD0iLi5ccGxhdGZvcm1cbW9ja1xHZW9sb2NhdGlvblNlcnZpY2VN
b2NrLmNwcCINCiAJCQkJCT4NCiAJCQkJPC9GaWxlPg0KZGlmZiAtLWdpdCBhL1dlYkNvcmUvV2Vi
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oKaW5kZXggM2Y3NDg1YzBkM2E4NTI4NjhhZWViY2M5MjcwNmQ1ZDcx
YmM1ZDExYS4uNzQ0YmFhMTFkZjU2ZDc1OTM3YWViN2UwZjc2NmY3NWQ2Njk0ZGNlZiAxMDA2NDQK
LS0tIGEvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvV2Vi
Q29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTM2LDYgKzM2LDggQEAK
IAkJMDAxNDYyOEExMDNDRDFERTAwMEIyMERCIC8qIE9yaWdpbkFjY2Vzc0VudHJ5LmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDAwMTQ2Mjg4MTAzQ0Qx
REUwMDBCMjBEQiAvKiBPcmlnaW5BY2Nlc3NFbnRyeS5jcHAgKi87IH07CiAJCTAwMTQ2MjhCMTAz
Q0QxREUwMDBCMjBEQiAvKiBPcmlnaW5BY2Nlc3NFbnRyeS5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDAxNDYyODkxMDNDRDFERTAwMEIyMERCIC8qIE9y
aWdpbkFjY2Vzc0VudHJ5LmggKi87IH07CiAJCTAwM0YxRkVBMTFFNkFCNDMwMDgyNThEOSAvKiBV
c2VyQ29udGVudFR5cGVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAwMDNGMUZFOTExRTZBQjQzMDA4MjU4RDkgLyogVXNlckNvbnRlbnRUeXBlcy5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTA1MkJGQ0U5
MTI4QUJGMTUwMEZEMzM4RCAvKiBHZW9sb2NhdGlvbkNsaWVudE1vY2suY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDUyQkZDRTgxMjhBQkYxNTAwRkQz
MzhEIC8qIEdlb2xvY2F0aW9uQ2xpZW50TW9jay5jcHAgKi87IH07CisJCTA1MkJGQ0VCMTI4QUJG
MjEwMEZEMzM4RCAvKiBHZW9sb2NhdGlvbkNsaWVudE1vY2suaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA1MkJGQ0VBMTI4QUJGMjEwMEZEMzM4RCAvKiBH
ZW9sb2NhdGlvbkNsaWVudE1vY2suaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2
YXRlLCApOyB9OyB9OwogCQkwNUZENjlFMDEyODQ1RDQzMDBCMkJFQjMgLyogRE9NVGltZVN0YW1w
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNUZENjlE
RjEyODQ1RDQzMDBCMkJFQjMgLyogRE9NVGltZVN0YW1wLmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMDYwMjdDQUQwQjFDQkZDMDAwODg0QjJEIC8q
IENvbnRleHRNZW51SXRlbS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gMDYwMjdDQUMwQjFDQkZDMDAwODg0QjJEIC8qIENvbnRleHRNZW51SXRlbS5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTA2MDI3Q0Iz
MEIxQ0MwM0QwMDg4NEIyRCAvKiBDb250ZXh0TWVudUl0ZW1NYWMubW0gaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNjAyN0NCMjBCMUNDMDNEMDA4ODRCMkQg
LyogQ29udGV4dE1lbnVJdGVtTWFjLm1tICovOyB9OwpAQCAtNjA2Niw2ICs2MDY4LDggQEAKIAkJ
MDAxNDYyODgxMDNDRDFERTAwMEIyMERCIC8qIE9yaWdpbkFjY2Vzc0VudHJ5LmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE9yaWdpbkFjY2Vzc0VudHJ5LmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDAxNDYyODkxMDNDRDFERTAwMEIyMERCIC8qIE9y
aWdpbkFjY2Vzc0VudHJ5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE9yaWdp
bkFjY2Vzc0VudHJ5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTAwM0YxRkU5MTFF
NkFCNDMwMDgyNThEOSAvKiBVc2VyQ29udGVudFR5cGVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFVzZXJDb250ZW50VHlwZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJMDUyQkZDRTgxMjhBQkYxNTAwRkQzMzhEIC8qIEdlb2xvY2F0aW9uQ2xpZW50TW9jay5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBHZW9sb2NhdGlvbkNsaWVu
dE1vY2suY3BwOyBwYXRoID0gbW9jay9HZW9sb2NhdGlvbkNsaWVudE1vY2suY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQkwNTJCRkNFQTEyOEFCRjIxMDBGRDMzOEQgLyogR2VvbG9j
YXRpb25DbGllbnRNb2NrLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IEdlb2xv
Y2F0aW9uQ2xpZW50TW9jay5oOyBwYXRoID0gbW9jay9HZW9sb2NhdGlvbkNsaWVudE1vY2suaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDVGRDY5REYxMjg0NUQ0MzAwQjJCRUIzIC8q
IERPTVRpbWVTdGFtcC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBET01UaW1l
U3RhbXAuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDYwMjdDQUMwQjFDQkZDMDAw
ODg0QjJEIC8qIENvbnRleHRNZW51SXRlbS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gQ29udGV4dE1lbnVJdGVtLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA2
MDI3Q0IyMEIxQ0MwM0QwMDg4NEIyRCAvKiBDb250ZXh0TWVudUl0ZW1NYWMubW0gKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gQ29udGV4dE1lbnVJdGVtTWFjLm1tOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTI5MzYsNiArMTI5NDAsOCBAQAogCQkJY2hp
bGRyZW4gPSAoCiAJCQkJNTkzMDlBMTAxMUY0QUU1ODAwMjUwNjAzIC8qIERldmljZU9yaWVudGF0
aW9uQ2xpZW50TW9jay5jcHAgKi8sCiAJCQkJNTkzMDlBMTIxMUY0QUU2QTAwMjUwNjAzIC8qIERl
dmljZU9yaWVudGF0aW9uQ2xpZW50TW9jay5oICovLAorCQkJCTA1MkJGQ0U4MTI4QUJGMTUwMEZE
MzM4RCAvKiBHZW9sb2NhdGlvbkNsaWVudE1vY2suY3BwICovLAorCQkJCTA1MkJGQ0VBMTI4QUJG
MjEwMEZEMzM4RCAvKiBHZW9sb2NhdGlvbkNsaWVudE1vY2suaCAqLywKIAkJCQk3NTM1QkM5MjEy
MDIwQ0ZGMDAzN0VDNDUgLyogU3BlZWNoSW5wdXRDbGllbnRNb2NrLmNwcCAqLywKIAkJCQk3NTM1
QkM5MzEyMDIwQ0ZGMDAzN0VDNDUgLyogU3BlZWNoSW5wdXRDbGllbnRNb2NrLmggKi8sCiAJCQkp
OwpAQCAtMTk2MzMsNiArMTk2MzksNyBAQAogCQkJCUE2MjJBOEZGMTIyQzQ0QTYwMEE3ODVCMyAv
KiBHZW5lcmljQmluZGluZy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRkU4MEQ3QzYwRTlDMUYyNTAw
MEQ2Rjc1IC8qIEdlb2xvY2F0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzU2Q0IyMzEwRDVB
QzgwMDBBNzdDNjQgLyogR2VvbG9jYXRpb25DbGllbnQuaCBpbiBIZWFkZXJzICovLAorCQkJCTA1
MkJGQ0VCMTI4QUJGMjEwMEZEMzM4RCAvKiBHZW9sb2NhdGlvbkNsaWVudE1vY2suaCBpbiBIZWFk
ZXJzICovLAogCQkJCUJDNTZDQjIyMTBENUFDODAwMEE3N0M2NCAvKiBHZW9sb2NhdGlvbkNvbnRy
b2xsZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDNTZDQjI0MTBENUFDODAwMEE3N0M2NCAvKiBH
ZW9sb2NhdGlvbkVycm9yLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzU2Q0IyNTEwRDVBQzgwMDBB
NzdDNjQgLyogR2VvbG9jYXRpb25Qb3NpdGlvbi5oIGluIEhlYWRlcnMgKi8sCkBAIC0yMjI2OSw2
ICsyMjI3Niw3IEBACiAJCQkJMTQzMkU4NDkwQzUxNDkzRjAwQjE1MDBGIC8qIEdDQ29udHJvbGxl
ci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCQ0UwNEM5NDBEQUZGOTAyMDA3QTBGNDEgLyogR2Vu
ZXJhdGVkSW1hZ2UuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRkU4MEQ3QzUwRTlDMUYyNTAwMEQ2
Rjc1IC8qIEdlb2xvY2F0aW9uLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTA1MkJGQ0U5MTI4QUJG
MTUwMEZEMzM4RCAvKiBHZW9sb2NhdGlvbkNsaWVudE1vY2suY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJQkM1NkNCMjExMEQ1QUM4MDAwQTc3QzY0IC8qIEdlb2xvY2F0aW9uQ29udHJvbGxlci5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQk1OTYyMjk3ODExMzNFRkQ3MDBEQzRDQkIgLyogR2VvbG9jYXRp
b25Qb3NpdGlvbkNhY2hlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUIyQzNEQTZEMEQwMDZDRDYw
MEVGNkYyNiAvKiBHbHlwaFBhZ2VUcmVlTm9kZS5jcHAgaW4gU291cmNlcyAqLywKZGlmZiAtLWdp
dCBhL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9HZW9sb2NhdGlvbkNsaWVudE1vY2suY3BwIGIvV2Vi
Q29yZS9wbGF0Zm9ybS9tb2NrL0dlb2xvY2F0aW9uQ2xpZW50TW9jay5jcHAKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
YjVhODdjMjE0NzMxZTdmMjkxMTJhODJhY2QwY2JhNTk5YjMwZDk1OQotLS0gL2Rldi9udWxsCisr
KyBiL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9HZW9sb2NhdGlvbkNsaWVudE1vY2suY3BwCkBAIC0w
LDAgKzEsMTM1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBt
ZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUg
b2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkg
YmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0
aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJT
IEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFS
VElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09Q
WVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICog
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkdlb2xvY2F0aW9uQ2xp
ZW50TW9jay5oIgorCisjaWYgRU5BQkxFKENMSUVOVF9CQVNFRF9HRU9MT0NBVElPTikKKyNpbmNs
dWRlICJHZW9sb2NhdGlvbkNvbnRyb2xsZXIuaCIKKyNpbmNsdWRlICJHZW9sb2NhdGlvbkVycm9y
LmgiCisjaW5jbHVkZSAiR2VvbG9jYXRpb25Qb3NpdGlvbi5oIgorCituYW1lc3BhY2UgV2ViQ29y
ZSB7CisKK0dlb2xvY2F0aW9uQ2xpZW50TW9jazo6R2VvbG9jYXRpb25DbGllbnRNb2NrKCkKKyAg
ICA6IG1fY29udHJvbGxlcigwKQorICAgICwgbV90aW1lcih0aGlzLCAmR2VvbG9jYXRpb25DbGll
bnRNb2NrOjp0aW1lckZpcmVkKQorICAgICwgbV9pc0FjdGl2ZShmYWxzZSkKK3sKK30KKworR2Vv
bG9jYXRpb25DbGllbnRNb2NrOjp+R2VvbG9jYXRpb25DbGllbnRNb2NrKCkKK3sKKyAgICBBU1NF
UlQoIW1faXNBY3RpdmUpOworfQorCit2b2lkIEdlb2xvY2F0aW9uQ2xpZW50TW9jazo6c2V0Q29u
dHJvbGxlcihHZW9sb2NhdGlvbkNvbnRyb2xsZXIgKmNvbnRyb2xsZXIpCit7CisgICAgQVNTRVJU
KGNvbnRyb2xsZXIgJiYgIW1fY29udHJvbGxlcik7CisgICAgbV9jb250cm9sbGVyID0gY29udHJv
bGxlcjsKK30KKwordm9pZCBHZW9sb2NhdGlvbkNsaWVudE1vY2s6OnNldFBvc2l0aW9uKFBhc3NS
ZWZQdHI8R2VvbG9jYXRpb25Qb3NpdGlvbj4gcG9zaXRpb24pCit7CisgICAgbV9sYXN0UG9zaXRp
b24gPSBwb3NpdGlvbjsKKyAgICBtX2xhc3RFcnJvciA9IDA7CisgICAgc2V0VGltZXIoKTsKK30K
Kwordm9pZCBHZW9sb2NhdGlvbkNsaWVudE1vY2s6OnNldEVycm9yKFBhc3NSZWZQdHI8R2VvbG9j
YXRpb25FcnJvcj4gZXJyb3IpCit7CisgICAgbV9sYXN0RXJyb3IgPSBlcnJvcjsKKyAgICBtX2xh
c3RQb3NpdGlvbiA9IDA7CisgICAgc2V0VGltZXIoKTsKK30KKwordm9pZCBHZW9sb2NhdGlvbkNs
aWVudE1vY2s6OnJlc2V0KCkKK3sKKyAgICAvLyBEdW1wUmVuZGVyVHJlZSBjYWxscyB0aGlzIGJl
Zm9yZSB0aGUgcnVubmluZyB0aGUgbmV4dCB0ZXN0LgorICAgIG1fbGFzdFBvc2l0aW9uID0gMDsK
KyAgICBtX2xhc3RFcnJvciA9IDA7Cit9CisKK3ZvaWQgR2VvbG9jYXRpb25DbGllbnRNb2NrOjpn
ZW9sb2NhdGlvbkRlc3Ryb3llZCgpCit7CisgICAgQVNTRVJUKCFtX2lzQWN0aXZlKTsKK30KKwor
dm9pZCBHZW9sb2NhdGlvbkNsaWVudE1vY2s6OnN0YXJ0VXBkYXRpbmcoKQoreworICAgIEFTU0VS
VCghbV9pc0FjdGl2ZSk7CisgICAgbV9pc0FjdGl2ZSA9IHRydWU7CisgICAgc2V0VGltZXIoKTsK
K30KKwordm9pZCBHZW9sb2NhdGlvbkNsaWVudE1vY2s6OnN0b3BVcGRhdGluZygpCit7CisgICAg
QVNTRVJUKG1faXNBY3RpdmUpOworICAgIG1faXNBY3RpdmUgPSBmYWxzZTsKKyAgICBtX3RpbWVy
LnN0b3AoKTsKK30KKwordm9pZCBHZW9sb2NhdGlvbkNsaWVudE1vY2s6OnNldEVuYWJsZUhpZ2hB
Y2N1cmFjeShib29sKQoreworICAgIC8vIEZJWE1FOiBXZSBuZWVkIHRvIGFkZCBzb21lIHRlc3Rz
IHJlZ2FyZGluZyAiaGlnaCBhY2N1cmFjeSIgbW9kZS4KKyAgICAvLyBTZWUgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ5NDM4Cit9CisKK0dlb2xvY2F0aW9uUG9zaXRp
b24qIEdlb2xvY2F0aW9uQ2xpZW50TW9jazo6bGFzdFBvc2l0aW9uKCkKK3sKKyAgICByZXR1cm4g
bV9sYXN0UG9zaXRpb24uZ2V0KCk7Cit9CisKK3ZvaWQgR2VvbG9jYXRpb25DbGllbnRNb2NrOjpz
ZXRUaW1lcigpCit7CisgICAgaWYgKG1fY29udHJvbGxlciAmJiBtX2lzQWN0aXZlICYmICFtX3Rp
bWVyLmlzQWN0aXZlKCkpCisgICAgICAgIG1fdGltZXIuc3RhcnRPbmVTaG90KDApOworfQorCit2
b2lkIEdlb2xvY2F0aW9uQ2xpZW50TW9jazo6dGltZXJGaXJlZChUaW1lcjxHZW9sb2NhdGlvbkNs
aWVudE1vY2s+KiB0aW1lcikKK3sKKyAgICBBU1NFUlRfVU5VU0VEKHRpbWVyLCB0aW1lciA9PSAm
bV90aW1lcik7CisgICAgdXBkYXRlQ29udHJvbGxlcigpOworfQorCit2b2lkIEdlb2xvY2F0aW9u
Q2xpZW50TW9jazo6dXBkYXRlQ29udHJvbGxlcigpCit7CisgICAgQVNTRVJUKG1fY29udHJvbGxl
cik7CisKKyAgICBpZiAobV9sYXN0UG9zaXRpb24uZ2V0KCkpCisgICAgICAgIG1fY29udHJvbGxl
ci0+cG9zaXRpb25DaGFuZ2VkKG1fbGFzdFBvc2l0aW9uLmdldCgpKTsKKworICAgIGlmIChtX2xh
c3RFcnJvci5nZXQoKSkKKyAgICAgICAgbV9jb250cm9sbGVyLT5lcnJvck9jY3VycmVkKG1fbGFz
dEVycm9yLmdldCgpKTsKK30KKworfSAvLyBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoQ0xJ
RU5UX0JBU0VEX0dFT0xPQ0FUSU9OKQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9tb2Nr
L0dlb2xvY2F0aW9uQ2xpZW50TW9jay5oIGIvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL0dlb2xvY2F0
aW9uQ2xpZW50TW9jay5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQ0YjJlNDZhOThiZWIyMWRiYmE2ODJlZjM3Mjg0
OGRmMjA5NmMwMzUKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL21vY2svR2Vv
bG9jYXRpb25DbGllbnRNb2NrLmgKQEAgLTAsMCArMSw4NCBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24uCisg
KiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2Yg
aXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHBy
b2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHBy
aW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAor
ICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JT
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVD
SUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICog
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgR2VvbG9jYXRpb25D
bGllbnRNb2NrX2gKKyNkZWZpbmUgR2VvbG9jYXRpb25DbGllbnRNb2NrX2gKKworI2lmIEVOQUJM
RShDTElFTlRfQkFTRURfR0VPTE9DQVRJT04pCisKKyNpbmNsdWRlICJHZW9sb2NhdGlvbkNsaWVu
dC5oIgorI2luY2x1ZGUgIlBsYXRmb3JtU3RyaW5nLmgiCisjaW5jbHVkZSAiVGltZXIuaCIKKwor
I2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CisjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgorCitu
YW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIEdlb2xvY2F0aW9uQ29udHJvbGxlcjsKK2NsYXNz
IEdlb2xvY2F0aW9uUG9zaXRpb247CitjbGFzcyBHZW9sb2NhdGlvbkVycm9yOworCisvLyBQcm92
aWRlcyBhIG1vY2sgb2JqZWN0IGZvciB0aGUgZ2VvbG9jYXRpb24gY2xpZW50CitjbGFzcyBHZW9s
b2NhdGlvbkNsaWVudE1vY2sgOiBwdWJsaWMgR2VvbG9jYXRpb25DbGllbnQgeworcHVibGljOgor
ICAgIEdlb2xvY2F0aW9uQ2xpZW50TW9jaygpOworICAgIHZpcnR1YWwgfkdlb2xvY2F0aW9uQ2xp
ZW50TW9jaygpOworCisgICAgdm9pZCByZXNldCgpOworICAgIHZvaWQgc2V0Q29udHJvbGxlcihH
ZW9sb2NhdGlvbkNvbnRyb2xsZXIqKTsKKworICAgIHZvaWQgc2V0RXJyb3IoUGFzc1JlZlB0cjxH
ZW9sb2NhdGlvbkVycm9yPik7CisgICAgdm9pZCBzZXRQb3NpdGlvbihQYXNzUmVmUHRyPEdlb2xv
Y2F0aW9uUG9zaXRpb24+KTsKKworICAgIC8vIEdlb2xvY2F0aW9uQ2xpZW50CisgICAgdmlydHVh
bCB2b2lkIGdlb2xvY2F0aW9uRGVzdHJveWVkKCk7CisgICAgdmlydHVhbCB2b2lkIHN0YXJ0VXBk
YXRpbmcoKTsKKyAgICB2aXJ0dWFsIHZvaWQgc3RvcFVwZGF0aW5nKCk7CisgICAgdmlydHVhbCB2
b2lkIHNldEVuYWJsZUhpZ2hBY2N1cmFjeShib29sKTsKKyAgICB2aXJ0dWFsIEdlb2xvY2F0aW9u
UG9zaXRpb24qIGxhc3RQb3NpdGlvbigpOworCitwcml2YXRlOgorICAgIHZvaWQgdGltZXJGaXJl
ZChUaW1lcjxHZW9sb2NhdGlvbkNsaWVudE1vY2s+Kik7CisgICAgdm9pZCBzZXRUaW1lcigpOwor
ICAgIHZvaWQgdXBkYXRlQ29udHJvbGxlcigpOworCisgICAgR2VvbG9jYXRpb25Db250cm9sbGVy
ICptX2NvbnRyb2xsZXI7CisgICAgUmVmUHRyPEdlb2xvY2F0aW9uUG9zaXRpb24+IG1fbGFzdFBv
c2l0aW9uOworICAgIFJlZlB0cjxHZW9sb2NhdGlvbkVycm9yPiBtX2xhc3RFcnJvcjsKKyAgICBU
aW1lcjxHZW9sb2NhdGlvbkNsaWVudE1vY2s+IG1fdGltZXI7CisgICAgYm9vbCBtX2lzQWN0aXZl
OworfTsKKworfQorCisjZW5kaWYgLy8gRU5BQkxFKENMSUVOVF9CQVNFRF9HRU9MT0NBVElPTikK
KworI2VuZGlmCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>74562</attachid>
            <date>2010-11-22 09:20:47 -0800</date>
            <delta_ts>2010-11-22 20:43:35 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-49258-20101122172045.patch</filename>
            <type>text/plain</type>
            <size>17780</size>
            <attacher name="John Knottenbelt">jknotten</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQW5kcm9pZC5tayBiL1dlYkNvcmUvQW5kcm9pZC5tawppbmRl
eCAyM2M1OWI0MzhmOWY1ZTYyZWI1OGI2ZGQ2OTA0ZmY3NThhNDhhYjEyLi4xNTQ0Njc5NDYxMTUx
NmIyNWQzN2EzOGU0NDZhYTdjMjExNDBiYjVlIDEwMDY0NAotLS0gYS9XZWJDb3JlL0FuZHJvaWQu
bWsKKysrIGIvV2ViQ29yZS9BbmRyb2lkLm1rCkBAIC01NzgsNiArNTc4LDcgQEAgTE9DQUxfU1JD
X0ZJTEVTIDo9ICQoTE9DQUxfU1JDX0ZJTEVTKSBcCiAJcGxhdGZvcm0vaW1hZ2UtZGVjb2RlcnMv
Z2lmL0dJRkltYWdlUmVhZGVyLmNwcCBcCiAJXAogCXBsYXRmb3JtL21vY2svRGV2aWNlT3JpZW50
YXRpb25DbGllbnRNb2NrLmNwcCBcCisJcGxhdGZvcm0vbW9jay9HZW9sb2NhdGlvbkNsaWVudE1v
Y2suY3BwIFwKIAlwbGF0Zm9ybS9tb2NrL0dlb2xvY2F0aW9uU2VydmljZU1vY2suY3BwIFwKIAlw
bGF0Zm9ybS9tb2NrL1NwZWVjaElucHV0Q2xpZW50TW9jay5jcHAgXAogCVwKZGlmZiAtLWdpdCBh
L1dlYkNvcmUvQ01ha2VMaXN0cy50eHQgYi9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CmluZGV4IDNm
YmM3YjVjNDBlMDVkMjljZTBiYmE2ZmQ1NTBiYTMzMWZiNmJiZTEuLjlkNTdhYTA0YjAwN2M3OGEz
OGRhYjhmYWFiODVmZjg5MzY2Y2NjZTEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvQ01ha2VMaXN0cy50
eHQKKysrIGIvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dApAQCAtMTM1OCw2ICsxMzU4LDcgQEAgU0VU
KFdlYkNvcmVfU09VUkNFUwogICAgIHBsYXRmb3JtL2ltYWdlLWRlY29kZXJzL3dlYnAvV0VCUElt
YWdlRGVjb2Rlci5jcHAKIAogICAgIHBsYXRmb3JtL21vY2svRGV2aWNlT3JpZW50YXRpb25DbGll
bnRNb2NrLmNwcAorICAgIHBsYXRmb3JtL21vY2svR2VvbG9jYXRpb25DbGllbnRNb2NrLmNwcAog
ICAgIHBsYXRmb3JtL21vY2svR2VvbG9jYXRpb25TZXJ2aWNlTW9jay5jcHAKIAogICAgIHBsYXRm
b3JtL25ldHdvcmsvQXV0aGVudGljYXRpb25DaGFsbGVuZ2VCYXNlLmNwcApkaWZmIC0tZ2l0IGEv
V2ViQ29yZS9DaGFuZ2VMb2cgYi9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA3Yjg3MjJkNjRjZmI5
NzE2N2FiZDU0YmI1ZDY1Yjk1ZTliNGY0ZDE1Li41MDNlZjFjZGYyNDQxNjBhZjBhZjVjZWE5ZDA5
ZDkzNDdkODlhNjY5IDEwMDY0NAotLS0gYS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9XZWJDb3Jl
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDMyIEBACisyMDEwLTExLTEwICBKb2huIEtub3R0ZW5iZWx0
ICA8amtub3R0ZW5AY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIEltcGxlbWVudCBtb2NrcyBmb3IgY2xpZW50LWJhc2VkIEdlb2xv
Y2F0aW9uLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
NDkyNTgKKworICAgICAgICAqIEFuZHJvaWQubWs6CisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6
CisgICAgICAgICogR05VbWFrZWZpbGUuYW06CisgICAgICAgICogV2ViQ29yZS5neXBpOgorICAg
ICAgICAqIFdlYkNvcmUucHJvOgorICAgICAgICAqIFdlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNw
cm9qOgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAg
ICAgKiBwbGF0Zm9ybS9tb2NrL0dlb2xvY2F0aW9uQ2xpZW50TW9jay5jcHA6IEFkZGVkLgorICAg
ICAgICAoV2ViQ29yZTo6R2VvbG9jYXRpb25DbGllbnRNb2NrOjpHZW9sb2NhdGlvbkNsaWVudE1v
Y2spOgorICAgICAgICAoV2ViQ29yZTo6R2VvbG9jYXRpb25DbGllbnRNb2NrOjp+R2VvbG9jYXRp
b25DbGllbnRNb2NrKToKKyAgICAgICAgKFdlYkNvcmU6Okdlb2xvY2F0aW9uQ2xpZW50TW9jazo6
c2V0Q29udHJvbGxlcik6CisgICAgICAgIChXZWJDb3JlOjpHZW9sb2NhdGlvbkNsaWVudE1vY2s6
OnNldFBvc2l0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6Okdlb2xvY2F0aW9uQ2xpZW50TW9jazo6
c2V0RXJyb3IpOgorICAgICAgICAoV2ViQ29yZTo6R2VvbG9jYXRpb25DbGllbnRNb2NrOjpnZW9s
b2NhdGlvbkRlc3Ryb3llZCk6CisgICAgICAgIChXZWJDb3JlOjpHZW9sb2NhdGlvbkNsaWVudE1v
Y2s6OnN0YXJ0VXBkYXRpbmcpOgorICAgICAgICAoV2ViQ29yZTo6R2VvbG9jYXRpb25DbGllbnRN
b2NrOjpzdG9wVXBkYXRpbmcpOgorICAgICAgICAoV2ViQ29yZTo6R2VvbG9jYXRpb25DbGllbnRN
b2NrOjpzZXRFbmFibGVIaWdoQWNjdXJhY3kpOgorICAgICAgICAoV2ViQ29yZTo6R2VvbG9jYXRp
b25DbGllbnRNb2NrOjpsYXN0UG9zaXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6R2VvbG9jYXRp
b25DbGllbnRNb2NrOjp0aW1lckZpcmVkKToKKyAgICAgICAgKFdlYkNvcmU6Okdlb2xvY2F0aW9u
Q2xpZW50TW9jazo6bWFrZUdlb2xvY2F0aW9uQ2FsbGJhY2spOgorICAgICAgICAqIHBsYXRmb3Jt
L21vY2svR2VvbG9jYXRpb25DbGllbnRNb2NrLmg6IEFkZGVkLgorCiAyMDEwLTExLTIyICBZYWVs
IEFoYXJvbiAgPHlhZWwuYWhhcm9uQG5va2lhLmNvbT4sIENoYW5nIFNodSAgPGNoYW5nLnNodUBu
b2tpYS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgQW50b25pbyBHb21lcy4KZGlmZiAtLWdp
dCBhL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0gYi9XZWJDb3JlL0dOVW1ha2VmaWxlLmFtCmluZGV4
IGU1ZmUyYTc5MDUyNTVlOWRhNTcyZTYyMWM5ZTYwZjgyNGQyNjY2ODYuLmYyZGU1OTM4OGNkMWNm
OTNhMjRhNGNhOTk3MjI1ZGFmYjY0ZjJlMjMgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvR05VbWFrZWZp
bGUuYW0KKysrIGIvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbQpAQCAtMjM5Miw2ICsyMzkyLDggQEAg
d2ViY29yZV9zb3VyY2VzICs9IFwKIAlXZWJDb3JlL3BsYXRmb3JtL01JTUVUeXBlUmVnaXN0cnku
aCBcCiAJV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL0RldmljZU9yaWVudGF0aW9uQ2xpZW50TW9jay5j
cHAgXAogCVdlYkNvcmUvcGxhdGZvcm0vbW9jay9EZXZpY2VPcmllbnRhdGlvbkNsaWVudE1vY2su
aCBcCisJV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL0dlb2xvY2F0aW9uQ2xpZW50TW9jay5jcHAgXAor
CVdlYkNvcmUvcGxhdGZvcm0vbW9jay9HZW9sb2NhdGlvbkNsaWVudE1vY2suaCBcCiAJV2ViQ29y
ZS9wbGF0Zm9ybS9tb2NrL0dlb2xvY2F0aW9uU2VydmljZU1vY2suY3BwIFwKIAlXZWJDb3JlL3Bs
YXRmb3JtL21vY2svR2VvbG9jYXRpb25TZXJ2aWNlTW9jay5oIFwKIAlXZWJDb3JlL3BsYXRmb3Jt
L21vY2svU3BlZWNoSW5wdXRDbGllbnRNb2NrLmNwcCBcCmRpZmYgLS1naXQgYS9XZWJDb3JlL1dl
YkNvcmUuZ3lwaSBiL1dlYkNvcmUvV2ViQ29yZS5neXBpCmluZGV4IGFmNzgyYTZiZWViYjJjZDU0
NmZmMzhiNmQwNzg2OGNmNTU1OWExZGQuLmVmN2JkODkxMGZjNjhkMzk0OGEzNzc5MDllMzY2YjA1
ODI3MmIxZDMgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvV2ViQ29yZS5neXBpCisrKyBiL1dlYkNvcmUv
V2ViQ29yZS5neXBpCkBAIC0zMzUyLDYgKzMzNTIsOCBAQAogICAgICAgICAgICAgJ3BsYXRmb3Jt
L01JTUVUeXBlUmVnaXN0cnkuaCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vbW9jay9EZXZpY2VP
cmllbnRhdGlvbkNsaWVudE1vY2suY3BwJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9tb2NrL0Rl
dmljZU9yaWVudGF0aW9uQ2xpZW50TW9jay5oJywKKyAgICAgICAgICAgICdwbGF0Zm9ybS9tb2Nr
L0dlb2xvY2F0aW9uQ2xpZW50TW9jay5jcHAnLAorICAgICAgICAgICAgJ3BsYXRmb3JtL21vY2sv
R2VvbG9jYXRpb25DbGllbnRNb2NrLmgnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL21vY2svR2Vv
bG9jYXRpb25TZXJ2aWNlTW9jay5jcHAnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL21vY2svR2Vv
bG9jYXRpb25TZXJ2aWNlTW9jay5oJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9tb2NrL1NwZWVj
aElucHV0Q2xpZW50TW9jay5jcHAnLApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9XZWJDb3JlLnBybyBi
L1dlYkNvcmUvV2ViQ29yZS5wcm8KaW5kZXggNjcxNDg5MzQwMWU4MDIwZTIyNjliYjUzNDc1YjM2
YWY5ZTVhOTZhZC4uNjI3Zjk0NTlhMTYyYTJhNDNkMTY5ZDE3Njg5NGU4NGNjYjA5NGUxZSAxMDA2
NDQKLS0tIGEvV2ViQ29yZS9XZWJDb3JlLnBybworKysgYi9XZWJDb3JlL1dlYkNvcmUucHJvCkBA
IC0xMTkyLDYgKzExOTIsNyBAQCBTT1VSQ0VTICs9IFwKICAgICBwbGF0Zm9ybS9Mb2dnaW5nLmNw
cCBcCiAgICAgcGxhdGZvcm0vTUlNRVR5cGVSZWdpc3RyeS5jcHAgXAogICAgIHBsYXRmb3JtL21v
Y2svRGV2aWNlT3JpZW50YXRpb25DbGllbnRNb2NrLmNwcCBcCisgICAgcGxhdGZvcm0vbW9jay9H
ZW9sb2NhdGlvbkNsaWVudE1vY2suY3BwIFwKICAgICBwbGF0Zm9ybS9tb2NrL0dlb2xvY2F0aW9u
U2VydmljZU1vY2suY3BwIFwKICAgICBwbGF0Zm9ybS9tb2NrL1NwZWVjaElucHV0Q2xpZW50TW9j
ay5jcHAgXAogICAgIHBsYXRmb3JtL25ldHdvcmsvQXV0aGVudGljYXRpb25DaGFsbGVuZ2VCYXNl
LmNwcCBcCkBAIC0yMDMzLDYgKzIwMzQsNyBAQCBIRUFERVJTICs9IFwKICAgICBwbGF0Zm9ybS9H
ZW9sb2NhdGlvblNlcnZpY2UuaCBcCiAgICAgcGxhdGZvcm0vaW1hZ2UtZGVjb2RlcnMvSW1hZ2VE
ZWNvZGVyLmggXAogICAgIHBsYXRmb3JtL21vY2svRGV2aWNlT3JpZW50YXRpb25DbGllbnRNb2Nr
LmggXAorICAgIHBsYXRmb3JtL21vY2svR2VvbG9jYXRpb25DbGllbnRNb2NrLmNwcCBcCiAgICAg
cGxhdGZvcm0vbW9jay9HZW9sb2NhdGlvblNlcnZpY2VNb2NrLmggXAogICAgIHBsYXRmb3JtL21v
Y2svU3BlZWNoSW5wdXRDbGllbnRNb2NrLmggXAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL0JpdG1h
cEltYWdlLmggXApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZj
cHJvaiBiL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKaW5kZXggOWNjZTZi
YjQ4YWJiZDMyYTgwM2E2ZjNkZGQ1NjU2YzM4OWY4MjVkMi4uZTFhNjIxYWU4NTJiMjMwOGE0M2Rm
ODY5M2NhOWNlZDllNzE5OGU4YyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9X
ZWJDb3JlLnZjcHJvagorKysgYi9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9q
CkBAIC0zMDA5OCw2ICszMDA5OCwxNCBAQAogCQkJCQk+DQogCQkJCTwvRmlsZT4NCiAJCQkJPEZp
bGUNCisJCQkJCVJlbGF0aXZlUGF0aD0iLi5ccGxhdGZvcm1cbW9ja1xHZW9sb2NhdGlvbkNsaWVu
dE1vY2suY3BwIg0KKwkJCQkJPg0KKwkJCQk8L0ZpbGU+DQorCQkJCTxGaWxlDQorCQkJCQlSZWxh
dGl2ZVBhdGg9Ii4uXHBsYXRmb3JtXG1vY2tcR2VvbG9jYXRpb25DbGllbnRNb2NrLmgiDQorCQkJ
CQk+DQorCQkJCTwvRmlsZT4NCisJCQkJPEZpbGUNCiAJCQkJCVJlbGF0aXZlUGF0aD0iLi5ccGxh
dGZvcm1cbW9ja1xHZW9sb2NhdGlvblNlcnZpY2VNb2NrLmNwcCINCiAJCQkJCT4NCiAJCQkJPC9G
aWxlPg0KZGlmZiAtLWdpdCBhL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qIGIvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggYzMy
NjZhMTBlMWM4ZGQxY2MwYzEyNjA5OTk0ZGEzMGRlZWYwMDUzZS4uYjg3ODdmZTYxZmU0ZThkYzVi
NDVkNTI5OTU4MmJkZmRjNjFjZTQzMSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9XZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oKQEAgLTM2LDYgKzM2LDggQEAKIAkJMDAxNDYyOEExMDNDRDFERTAwMEIyMERC
IC8qIE9yaWdpbkFjY2Vzc0VudHJ5LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDAwMTQ2Mjg4MTAzQ0QxREUwMDBCMjBEQiAvKiBPcmlnaW5BY2Nlc3NF
bnRyeS5jcHAgKi87IH07CiAJCTAwMTQ2MjhCMTAzQ0QxREUwMDBCMjBEQiAvKiBPcmlnaW5BY2Nl
c3NFbnRyeS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MDAxNDYyODkxMDNDRDFERTAwMEIyMERCIC8qIE9yaWdpbkFjY2Vzc0VudHJ5LmggKi87IH07CiAJ
CTAwM0YxRkVBMTFFNkFCNDMwMDgyNThEOSAvKiBVc2VyQ29udGVudFR5cGVzLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwMDNGMUZFOTExRTZBQjQzMDA4
MjU4RDkgLyogVXNlckNvbnRlbnRUeXBlcy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CisJCTA1MkJGQ0U5MTI4QUJGMTUwMEZEMzM4RCAvKiBHZW9sb2Nh
dGlvbkNsaWVudE1vY2suY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gMDUyQkZDRTgxMjhBQkYxNTAwRkQzMzhEIC8qIEdlb2xvY2F0aW9uQ2xpZW50TW9j
ay5jcHAgKi87IH07CisJCTA1MkJGQ0VCMTI4QUJGMjEwMEZEMzM4RCAvKiBHZW9sb2NhdGlvbkNs
aWVudE1vY2suaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDA1MkJGQ0VBMTI4QUJGMjEwMEZEMzM4RCAvKiBHZW9sb2NhdGlvbkNsaWVudE1vY2suaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkwNUZENjlFMDEy
ODQ1RDQzMDBCMkJFQjMgLyogRE9NVGltZVN0YW1wLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNUZENjlERjEyODQ1RDQzMDBCMkJFQjMgLyogRE9NVGlt
ZVN0YW1wLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
IAkJMDYwMjdDQUQwQjFDQkZDMDAwODg0QjJEIC8qIENvbnRleHRNZW51SXRlbS5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDYwMjdDQUMwQjFDQkZDMDAw
ODg0QjJEIC8qIENvbnRleHRNZW51SXRlbS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CiAJCTA2MDI3Q0IzMEIxQ0MwM0QwMDg4NEIyRCAvKiBDb250ZXh0
TWVudUl0ZW1NYWMubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAwNjAyN0NCMjBCMUNDMDNEMDA4ODRCMkQgLyogQ29udGV4dE1lbnVJdGVtTWFjLm1tICov
OyB9OwpAQCAtNjA2NCw2ICs2MDY2LDggQEAKIAkJMDAxNDYyODgxMDNDRDFERTAwMEIyMERCIC8q
IE9yaWdpbkFjY2Vzc0VudHJ5LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IE9yaWdpbkFjY2Vzc0VudHJ5LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
MDAxNDYyODkxMDNDRDFERTAwMEIyMERCIC8qIE9yaWdpbkFjY2Vzc0VudHJ5LmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE9yaWdpbkFjY2Vzc0VudHJ5Lmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTAwM0YxRkU5MTFFNkFCNDMwMDgyNThEOSAvKiBVc2VyQ29udGVu
dFR5cGVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFVzZXJDb250ZW50VHlw
ZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMDUyQkZDRTgxMjhBQkYxNTAwRkQz
MzhEIC8qIEdlb2xvY2F0aW9uQ2xpZW50TW9jay5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IG5hbWUgPSBHZW9sb2NhdGlvbkNsaWVudE1vY2suY3BwOyBwYXRoID0gbW9jay9HZW9s
b2NhdGlvbkNsaWVudE1vY2suY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkwNTJC
RkNFQTEyOEFCRjIxMDBGRDMzOEQgLyogR2VvbG9jYXRpb25DbGllbnRNb2NrLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IEdlb2xvY2F0aW9uQ2xpZW50TW9jay5oOyBwYXRoID0g
bW9jay9HZW9sb2NhdGlvbkNsaWVudE1vY2suaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJMDVGRDY5REYxMjg0NUQ0MzAwQjJCRUIzIC8qIERPTVRpbWVTdGFtcC5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBET01UaW1lU3RhbXAuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJMDYwMjdDQUMwQjFDQkZDMDAwODg0QjJEIC8qIENvbnRleHRNZW51SXRlbS5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ29udGV4dE1lbnVJdGVtLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA2MDI3Q0IyMEIxQ0MwM0QwMDg4NEIyRCAvKiBD
b250ZXh0TWVudUl0ZW1NYWMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBw
YXRoID0gQ29udGV4dE1lbnVJdGVtTWFjLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpA
QCAtMTI5MzIsNiArMTI5MzYsOCBAQAogCQkJY2hpbGRyZW4gPSAoCiAJCQkJNTkzMDlBMTAxMUY0
QUU1ODAwMjUwNjAzIC8qIERldmljZU9yaWVudGF0aW9uQ2xpZW50TW9jay5jcHAgKi8sCiAJCQkJ
NTkzMDlBMTIxMUY0QUU2QTAwMjUwNjAzIC8qIERldmljZU9yaWVudGF0aW9uQ2xpZW50TW9jay5o
ICovLAorCQkJCTA1MkJGQ0U4MTI4QUJGMTUwMEZEMzM4RCAvKiBHZW9sb2NhdGlvbkNsaWVudE1v
Y2suY3BwICovLAorCQkJCTA1MkJGQ0VBMTI4QUJGMjEwMEZEMzM4RCAvKiBHZW9sb2NhdGlvbkNs
aWVudE1vY2suaCAqLywKIAkJCQk3NTM1QkM5MjEyMDIwQ0ZGMDAzN0VDNDUgLyogU3BlZWNoSW5w
dXRDbGllbnRNb2NrLmNwcCAqLywKIAkJCQk3NTM1QkM5MzEyMDIwQ0ZGMDAzN0VDNDUgLyogU3Bl
ZWNoSW5wdXRDbGllbnRNb2NrLmggKi8sCiAJCQkpOwpAQCAtMTk2MjQsNiArMTk2MzAsNyBAQAog
CQkJCUE2MjJBOEZGMTIyQzQ0QTYwMEE3ODVCMyAvKiBHZW5lcmljQmluZGluZy5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJRkU4MEQ3QzYwRTlDMUYyNTAwMEQ2Rjc1IC8qIEdlb2xvY2F0aW9uLmggaW4g
SGVhZGVycyAqLywKIAkJCQlCQzU2Q0IyMzEwRDVBQzgwMDBBNzdDNjQgLyogR2VvbG9jYXRpb25D
bGllbnQuaCBpbiBIZWFkZXJzICovLAorCQkJCTA1MkJGQ0VCMTI4QUJGMjEwMEZEMzM4RCAvKiBH
ZW9sb2NhdGlvbkNsaWVudE1vY2suaCBpbiBIZWFkZXJzICovLAogCQkJCUJDNTZDQjIyMTBENUFD
ODAwMEE3N0M2NCAvKiBHZW9sb2NhdGlvbkNvbnRyb2xsZXIuaCBpbiBIZWFkZXJzICovLAogCQkJ
CUJDNTZDQjI0MTBENUFDODAwMEE3N0M2NCAvKiBHZW9sb2NhdGlvbkVycm9yLmggaW4gSGVhZGVy
cyAqLywKIAkJCQlCQzU2Q0IyNTEwRDVBQzgwMDBBNzdDNjQgLyogR2VvbG9jYXRpb25Qb3NpdGlv
bi5oIGluIEhlYWRlcnMgKi8sCkBAIC0yMjI1OSw2ICsyMjI2Niw3IEBACiAJCQkJMTQzMkU4NDkw
QzUxNDkzRjAwQjE1MDBGIC8qIEdDQ29udHJvbGxlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlC
Q0UwNEM5NDBEQUZGOTAyMDA3QTBGNDEgLyogR2VuZXJhdGVkSW1hZ2UuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJRkU4MEQ3QzUwRTlDMUYyNTAwMEQ2Rjc1IC8qIEdlb2xvY2F0aW9uLmNwcCBpbiBT
b3VyY2VzICovLAorCQkJCTA1MkJGQ0U5MTI4QUJGMTUwMEZEMzM4RCAvKiBHZW9sb2NhdGlvbkNs
aWVudE1vY2suY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkM1NkNCMjExMEQ1QUM4MDAwQTc3QzY0
IC8qIEdlb2xvY2F0aW9uQ29udHJvbGxlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk1OTYyMjk3
ODExMzNFRkQ3MDBEQzRDQkIgLyogR2VvbG9jYXRpb25Qb3NpdGlvbkNhY2hlLmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCUIyQzNEQTZEMEQwMDZDRDYwMEVGNkYyNiAvKiBHbHlwaFBhZ2VUcmVlTm9k
ZS5jcHAgaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9H
ZW9sb2NhdGlvbkNsaWVudE1vY2suY3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL0dlb2xvY2F0
aW9uQ2xpZW50TW9jay5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uM2M0Njk3ZjA2MDFkZTU0NmY0YTIzMDVlNDJj
MjM5MmY3NjA4M2VmMQotLS0gL2Rldi9udWxsCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9H
ZW9sb2NhdGlvbkNsaWVudE1vY2suY3BwCkBAIC0wLDAgKzEsMTM1IEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlv
bi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1l
cyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21v
dGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lm
aWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJ
UyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklC
VVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAq
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
CisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZp
Zy5oIgorI2luY2x1ZGUgIkdlb2xvY2F0aW9uQ2xpZW50TW9jay5oIgorCisjaWYgRU5BQkxFKENM
SUVOVF9CQVNFRF9HRU9MT0NBVElPTikKKworI2luY2x1ZGUgIkdlb2xvY2F0aW9uQ29udHJvbGxl
ci5oIgorI2luY2x1ZGUgIkdlb2xvY2F0aW9uRXJyb3IuaCIKKyNpbmNsdWRlICJHZW9sb2NhdGlv
blBvc2l0aW9uLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworR2VvbG9jYXRpb25DbGllbnRN
b2NrOjpHZW9sb2NhdGlvbkNsaWVudE1vY2soKQorICAgIDogbV9jb250cm9sbGVyKDApCisgICAg
LCBtX3RpbWVyKHRoaXMsICZHZW9sb2NhdGlvbkNsaWVudE1vY2s6OnRpbWVyRmlyZWQpCisgICAg
LCBtX2lzQWN0aXZlKGZhbHNlKQoreworfQorCitHZW9sb2NhdGlvbkNsaWVudE1vY2s6On5HZW9s
b2NhdGlvbkNsaWVudE1vY2soKQoreworICAgIEFTU0VSVCghbV9pc0FjdGl2ZSk7Cit9CisKK3Zv
aWQgR2VvbG9jYXRpb25DbGllbnRNb2NrOjpzZXRDb250cm9sbGVyKEdlb2xvY2F0aW9uQ29udHJv
bGxlciAqY29udHJvbGxlcikKK3sKKyAgICBBU1NFUlQoY29udHJvbGxlciAmJiAhbV9jb250cm9s
bGVyKTsKKyAgICBtX2NvbnRyb2xsZXIgPSBjb250cm9sbGVyOworfQorCit2b2lkIEdlb2xvY2F0
aW9uQ2xpZW50TW9jazo6c2V0UG9zaXRpb24oUGFzc1JlZlB0cjxHZW9sb2NhdGlvblBvc2l0aW9u
PiBwb3NpdGlvbikKK3sKKyAgICBtX2xhc3RQb3NpdGlvbiA9IHBvc2l0aW9uOworICAgIG1fbGFz
dEVycm9yID0gMDsKKyAgICBhc3luY1VwZGF0ZUNvbnRyb2xsZXIoKTsKK30KKwordm9pZCBHZW9s
b2NhdGlvbkNsaWVudE1vY2s6OnNldEVycm9yKFBhc3NSZWZQdHI8R2VvbG9jYXRpb25FcnJvcj4g
ZXJyb3IpCit7CisgICAgbV9sYXN0RXJyb3IgPSBlcnJvcjsKKyAgICBtX2xhc3RQb3NpdGlvbiA9
IDA7CisgICAgYXN5bmNVcGRhdGVDb250cm9sbGVyKCk7Cit9CisKK3ZvaWQgR2VvbG9jYXRpb25D
bGllbnRNb2NrOjpyZXNldCgpCit7CisgICAgbV9sYXN0UG9zaXRpb24gPSAwOworICAgIG1fbGFz
dEVycm9yID0gMDsKK30KKwordm9pZCBHZW9sb2NhdGlvbkNsaWVudE1vY2s6Omdlb2xvY2F0aW9u
RGVzdHJveWVkKCkKK3sKKyAgICBBU1NFUlQoIW1faXNBY3RpdmUpOworfQorCit2b2lkIEdlb2xv
Y2F0aW9uQ2xpZW50TW9jazo6c3RhcnRVcGRhdGluZygpCit7CisgICAgQVNTRVJUKCFtX2lzQWN0
aXZlKTsKKyAgICBtX2lzQWN0aXZlID0gdHJ1ZTsKKyAgICBhc3luY1VwZGF0ZUNvbnRyb2xsZXIo
KTsKK30KKwordm9pZCBHZW9sb2NhdGlvbkNsaWVudE1vY2s6OnN0b3BVcGRhdGluZygpCit7Cisg
ICAgQVNTRVJUKG1faXNBY3RpdmUpOworICAgIG1faXNBY3RpdmUgPSBmYWxzZTsKKyAgICBtX3Rp
bWVyLnN0b3AoKTsKK30KKwordm9pZCBHZW9sb2NhdGlvbkNsaWVudE1vY2s6OnNldEVuYWJsZUhp
Z2hBY2N1cmFjeShib29sKQoreworICAgIC8vIEZJWE1FOiBXZSBuZWVkIHRvIGFkZCBzb21lIHRl
c3RzIHJlZ2FyZGluZyAiaGlnaCBhY2N1cmFjeSIgbW9kZS4KKyAgICAvLyBTZWUgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ5NDM4Cit9CisKK0dlb2xvY2F0aW9uUG9z
aXRpb24qIEdlb2xvY2F0aW9uQ2xpZW50TW9jazo6bGFzdFBvc2l0aW9uKCkKK3sKKyAgICByZXR1
cm4gbV9sYXN0UG9zaXRpb24uZ2V0KCk7Cit9CisKK3ZvaWQgR2VvbG9jYXRpb25DbGllbnRNb2Nr
Ojphc3luY1VwZGF0ZUNvbnRyb2xsZXIoKQoreworICAgIEFTU0VSVChtX2NvbnRyb2xsZXIpOwor
ICAgIGlmIChtX2lzQWN0aXZlICYmICFtX3RpbWVyLmlzQWN0aXZlKCkpCisgICAgICAgIG1fdGlt
ZXIuc3RhcnRPbmVTaG90KDApOworfQorCit2b2lkIEdlb2xvY2F0aW9uQ2xpZW50TW9jazo6dGlt
ZXJGaXJlZChUaW1lcjxHZW9sb2NhdGlvbkNsaWVudE1vY2s+KiB0aW1lcikKK3sKKyAgICBBU1NF
UlRfVU5VU0VEKHRpbWVyLCB0aW1lciA9PSAmbV90aW1lcik7CisgICAgdXBkYXRlQ29udHJvbGxl
cigpOworfQorCit2b2lkIEdlb2xvY2F0aW9uQ2xpZW50TW9jazo6dXBkYXRlQ29udHJvbGxlcigp
Cit7CisgICAgQVNTRVJUKG1fY29udHJvbGxlcik7CisKKyAgICBpZiAobV9sYXN0UG9zaXRpb24u
Z2V0KCkpCisgICAgICAgIG1fY29udHJvbGxlci0+cG9zaXRpb25DaGFuZ2VkKG1fbGFzdFBvc2l0
aW9uLmdldCgpKTsKKyAgICBlbHNlIGlmIChtX2xhc3RFcnJvci5nZXQoKSkKKyAgICAgICAgbV9j
b250cm9sbGVyLT5lcnJvck9jY3VycmVkKG1fbGFzdEVycm9yLmdldCgpKTsKK30KKworfSAvLyBX
ZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoQ0xJRU5UX0JBU0VEX0dFT0xPQ0FUSU9OKQpkaWZm
IC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL0dlb2xvY2F0aW9uQ2xpZW50TW9jay5oIGIv
V2ViQ29yZS9wbGF0Zm9ybS9tb2NrL0dlb2xvY2F0aW9uQ2xpZW50TW9jay5oCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LmY1N2FmYTlhMjU1OTI1MzlkMDg3ZmVhN2M4MTY3M2M1OTQ5N2M3MmQKLS0tIC9kZXYvbnVsbAor
KysgYi9XZWJDb3JlL3BsYXRmb3JtL21vY2svR2VvbG9jYXRpb25DbGllbnRNb2NrLmgKQEAgLTAs
MCArMSw4NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0
OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
CisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9m
IEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJl
IHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhp
cyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBB
TkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJ
Q1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlS
SUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKyNpZm5kZWYgR2VvbG9jYXRpb25DbGllbnRNb2NrX2gKKyNkZWZpbmUgR2VvbG9j
YXRpb25DbGllbnRNb2NrX2gKKworI2lmIEVOQUJMRShDTElFTlRfQkFTRURfR0VPTE9DQVRJT04p
CisKKyNpbmNsdWRlICJHZW9sb2NhdGlvbkNsaWVudC5oIgorI2luY2x1ZGUgIlBsYXRmb3JtU3Ry
aW5nLmgiCisjaW5jbHVkZSAiVGltZXIuaCIKKworI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+
CisjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNz
IEdlb2xvY2F0aW9uQ29udHJvbGxlcjsKK2NsYXNzIEdlb2xvY2F0aW9uUG9zaXRpb247CitjbGFz
cyBHZW9sb2NhdGlvbkVycm9yOworCisvLyBQcm92aWRlcyBhIG1vY2sgb2JqZWN0IGZvciB0aGUg
Z2VvbG9jYXRpb24gY2xpZW50CitjbGFzcyBHZW9sb2NhdGlvbkNsaWVudE1vY2sgOiBwdWJsaWMg
R2VvbG9jYXRpb25DbGllbnQgeworcHVibGljOgorICAgIEdlb2xvY2F0aW9uQ2xpZW50TW9jaygp
OworICAgIHZpcnR1YWwgfkdlb2xvY2F0aW9uQ2xpZW50TW9jaygpOworCisgICAgdm9pZCByZXNl
dCgpOworICAgIHZvaWQgc2V0Q29udHJvbGxlcihHZW9sb2NhdGlvbkNvbnRyb2xsZXIqKTsKKwor
ICAgIHZvaWQgc2V0RXJyb3IoUGFzc1JlZlB0cjxHZW9sb2NhdGlvbkVycm9yPik7CisgICAgdm9p
ZCBzZXRQb3NpdGlvbihQYXNzUmVmUHRyPEdlb2xvY2F0aW9uUG9zaXRpb24+KTsKKworICAgIC8v
IEdlb2xvY2F0aW9uQ2xpZW50CisgICAgdmlydHVhbCB2b2lkIGdlb2xvY2F0aW9uRGVzdHJveWVk
KCk7CisgICAgdmlydHVhbCB2b2lkIHN0YXJ0VXBkYXRpbmcoKTsKKyAgICB2aXJ0dWFsIHZvaWQg
c3RvcFVwZGF0aW5nKCk7CisgICAgdmlydHVhbCB2b2lkIHNldEVuYWJsZUhpZ2hBY2N1cmFjeShi
b29sKTsKKyAgICB2aXJ0dWFsIEdlb2xvY2F0aW9uUG9zaXRpb24qIGxhc3RQb3NpdGlvbigpOwor
Citwcml2YXRlOgorICAgIHZvaWQgdGltZXJGaXJlZChUaW1lcjxHZW9sb2NhdGlvbkNsaWVudE1v
Y2s+Kik7CisgICAgdm9pZCBhc3luY1VwZGF0ZUNvbnRyb2xsZXIoKTsKKyAgICB2b2lkIHVwZGF0
ZUNvbnRyb2xsZXIoKTsKKworICAgIEdlb2xvY2F0aW9uQ29udHJvbGxlciogbV9jb250cm9sbGVy
OworICAgIFJlZlB0cjxHZW9sb2NhdGlvblBvc2l0aW9uPiBtX2xhc3RQb3NpdGlvbjsKKyAgICBS
ZWZQdHI8R2VvbG9jYXRpb25FcnJvcj4gbV9sYXN0RXJyb3I7CisgICAgVGltZXI8R2VvbG9jYXRp
b25DbGllbnRNb2NrPiBtX3RpbWVyOworICAgIGJvb2wgbV9pc0FjdGl2ZTsKK307CisKK30KKwor
I2VuZGlmIC8vIEVOQUJMRShDTElFTlRfQkFTRURfR0VPTE9DQVRJT04pCisKKyNlbmRpZgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>