<?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>29508</bug_id>
          
          <creation_ts>2009-09-18 14:59:45 -0700</creation_ts>
          <short_desc>Add ENABLE(ORIENTATION_EVENTS)</short_desc>
          <delta_ts>2009-09-21 16:10:59 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebCore JavaScript</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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Greg Bolsinga">bolsinga</reporter>
          <assigned_to name="Greg Bolsinga">bolsinga</assigned_to>
          <cc>ddkilzer</cc>
    
    <cc>sam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>148404</commentid>
    <comment_count>0</comment_count>
    <who name="Greg Bolsinga">bolsinga</who>
    <bug_when>2009-09-18 14:59:45 -0700</bug_when>
    <thetext>iPhone has support for onorientationevent, which fires when the device is rotated. Here&apos;s the documentation:

http://developer.apple.com/safari/library/documentation/AppleApplications/Reference/SafariWebContent/HandlingEvents/HandlingEvents.html#//apple_ref/doc/uid/TP40006511-SW16</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>148412</commentid>
    <comment_count>1</comment_count>
      <attachid>39796</attachid>
    <who name="Greg Bolsinga">bolsinga</who>
    <bug_when>2009-09-18 15:10:36 -0700</bug_when>
    <thetext>Created attachment 39796
patch to implement bug fix

There are no tests, since this feature isn&apos;t on by default in Open Source, and the platform it works with iPhone is not yet in this repository.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>148440</commentid>
    <comment_count>2</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2009-09-18 16:49:46 -0700</bug_when>
    <thetext>Greg, Geoff Garen is working on a rather large patch to simplify events and this will unfortunately conflict with it.  Would it be all right to hold off landing this for a day or so and then re-merge then?  I can help with any conflicts on that side.

Sorry for the inconvenience.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>148445</commentid>
    <comment_count>3</comment_count>
    <who name="Greg Bolsinga">bolsinga</who>
    <bug_when>2009-09-18 17:25:37 -0700</bug_when>
    <thetext>I don&apos;t mind. But iPhone WebKit will be based upon this patch, so a review of this version would help out too. Especially since it&apos;s the one that can be tested! :) Thanks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>148565</commentid>
    <comment_count>4</comment_count>
      <attachid>39796</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2009-09-20 09:20:36 -0700</bug_when>
    <thetext>Comment on attachment 39796
patch to implement bug fix

&gt; +#if ENABLE(ORIENTATION_EVENTS)
&gt; +EventListener* HTMLBodyElement::onorientationchange() const
&gt; +{
&gt; +    return document()-&gt;getWindowAttributeEventListener(eventNames().orientationchangeEvent);
&gt; +}
&gt; +
&gt; +void HTMLBodyElement::setOnorientationchange(PassRefPtr&lt;EventListener&gt; eventListener)
&gt; +{
&gt; +    document()-&gt;setAttributeEventListener(eventNames().orientationchangeEvent, eventListener);

This should be setWindowAttributeEventListener.

&gt;
&gt;  
&gt; +#if ENABLE(ORIENTATION_EVENTS)
&gt; +EventListener* HTMLFrameSetElement::onorientationchange() const
&gt; +{
&gt; +    return document()-&gt;getWindowAttributeEventListener(eventNames().orientationchangeEvent);
&gt; +}
&gt; +
&gt; +void HTMLFrameSetElement::setOnorientationchange(PassRefPtr&lt;EventListener&gt; eventListener)
&gt; +{
&gt; +    document()-&gt;setAttributeEventListener(eventNames().orientationchangeEvent, eventListener);

This should also be setWindowAttributeEventListener.

&gt; +#if ENABLE(ORIENTATION_EVENTS)
&gt; +        void sendOrientationChangeEvent(int orientation);
&gt; +        int orientation() const;

These don&apos;t seem to be implemented anywhere.  Why should it be implemented per platform? Shouldn&apos;t it just store the new orientation and dispatch the event?

r-</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>148759</commentid>
    <comment_count>5</comment_count>
    <who name="Greg Bolsinga">bolsinga</who>
    <bug_when>2009-09-21 12:04:13 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; This should be setWindowAttributeEventListener.

Thanks for catching these.

&gt; &gt; +#if ENABLE(ORIENTATION_EVENTS)
&gt; &gt; +        void sendOrientationChangeEvent(int orientation);
&gt; &gt; +        int orientation() const;
&gt; 
&gt; These don&apos;t seem to be implemented anywhere.  Why should it be implemented per
&gt; platform? Shouldn&apos;t it just store the new orientation and dispatch the event?

It is/was in FrameiPhone.mm on iPhone. Good catch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>148760</commentid>
    <comment_count>6</comment_count>
      <attachid>39863</attachid>
    <who name="Greg Bolsinga">bolsinga</who>
    <bug_when>2009-09-21 12:11:47 -0700</bug_when>
    <thetext>Created attachment 39863
address Sam&apos;s review comments</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>148777</commentid>
    <comment_count>7</comment_count>
      <attachid>39867</attachid>
    <who name="Greg Bolsinga">bolsinga</who>
    <bug_when>2009-09-21 13:13:38 -0700</bug_when>
    <thetext>Created attachment 39867
Add onorientationchange to HTMLAttributeNames.in</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>148792</commentid>
    <comment_count>8</comment_count>
      <attachid>39870</attachid>
    <who name="Greg Bolsinga">bolsinga</who>
    <bug_when>2009-09-21 13:37:48 -0700</bug_when>
    <thetext>Created attachment 39870
And add it to EventNames.h as well.

This now links for Mac OS X when it is turned on, although nothing send this event along to WebCore there.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>148817</commentid>
    <comment_count>9</comment_count>
      <attachid>39870</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2009-09-21 14:07:46 -0700</bug_when>
    <thetext>Comment on attachment 39870
And add it to EventNames.h as well.

&gt; diff --git a/WebCore/ChangeLog b/WebCore/ChangeLog

&gt; +        No new tests. (OOPS!)

You should remove or fix this line.

&gt; diff --git a/WebCore/page/DOMWindow.h b/WebCore/page/DOMWindow.h
&gt; index db4edda..3fb12eb 100644
&gt; --- a/WebCore/page/DOMWindow.h
&gt; +++ b/WebCore/page/DOMWindow.h
&gt; @@ -85,6 +85,10 @@ namespace WebCore {
&gt;  
&gt;          void clear();
&gt;  
&gt; +#if ENABLE(ORIENTATION_EVENTS)
&gt; +        int orientation() const;
&gt; +#endif

This needs a comment to say what the value means. It&apos;s arbitrary degrees, should it be a float?

&gt; +#if defined(ENABLE_ORIENTATION_EVENTS) &amp;&amp; ENABLE_ORIENTATION_EVENTS
&gt; +        readonly attribute long orientation;
&gt; +#endif

This needs a comment to say what the value is.

&gt; +#if ENABLE(ORIENTATION_EVENTS)
&gt; +        int m_orientation;
&gt; +#endif

Anther place that needs a comment to say what the value means.

I&apos;m a little wary about adding properties to the window object that are not standardized, and don&apos;t have the webkit prefix, especially since other browsers are talking about using &apos;orientation&apos; for events which are related, but different. So I&apos;m not going to r= this without approval from Maciej or Darin.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>148871</commentid>
    <comment_count>10</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2009-09-21 15:38:31 -0700</bug_when>
    <thetext>&gt; I&apos;m a little wary about adding properties to the window object that are not
&gt; standardized, and don&apos;t have the webkit prefix, especially since other browsers
&gt; are talking about using &apos;orientation&apos; for events which are related, but
&gt; different. So I&apos;m not going to r= this without approval from Maciej or Darin.

I discussed this with Greg and Maciej and we decided that this should go in given that this has already shipped on the iPhone and is behind a #define.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>148882</commentid>
    <comment_count>11</comment_count>
      <attachid>39870</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2009-09-21 16:03:39 -0700</bug_when>
    <thetext>Comment on attachment 39870
And add it to EventNames.h as well.

r=me with the previously mentioned comments addressed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>148886</commentid>
    <comment_count>12</comment_count>
    <who name="Greg Bolsinga">bolsinga</who>
    <bug_when>2009-09-21 16:10:59 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/48609</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>39796</attachid>
            <date>2009-09-18 15:10:36 -0700</date>
            <delta_ts>2009-09-21 12:11:47 -0700</delta_ts>
            <desc>patch to implement bug fix</desc>
            <filename>0001-JavaScriptCore-Add-ENABLE-ORIENTATION_EVENTS.patch</filename>
            <type>text/plain</type>
            <size>22006</size>
            <attacher name="Greg Bolsinga">bolsinga</attacher>
            
              <data encoding="base64">RnJvbSBhZGQ3MjY4NzA4NzNhODQzYTM3MGUxZjc3Mzg5NDg4NzlkMDkxNDgzIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBHcmVnIEJvbHNpbmdhIDxib2xzaW5nYUBhcHBsZS5jb20+CkRh
dGU6IEZyaSwgMTggU2VwIDIwMDkgMTU6MDk6MTIgLTA3MDAKU3ViamVjdDogW1BBVENIXSBKYXZh
U2NyaXB0Q29yZTogQWRkIEVOQUJMRShPUklFTlRBVElPTl9FVkVOVFMpCiBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Mjk1MDgKClJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgoKKiB3dGYvUGxhdGZvcm0uaDogQWxzbyBzb3J0IFBMQVRGT1JNKElQSE9ORSkgI2RlZmlu
ZXMuCgpXZWJDb3JlOiBBZGQgRU5BQkxFKE9SSUVOVEFUSU9OX0VWRU5UUykKaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI5NTA4CgpSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KClNlZSBkb2N1bWVudGF0aW9uIGhlcmU6CgpodHRwOi8vZGV2ZWxvcGVyLmFwcGxlLmNv
bS9zYWZhcmkvbGlicmFyeS9kb2N1bWVudGF0aW9uL0FwcGxlQXBwbGljYXRpb25zL1JlZmVyZW5j
ZS9TYWZhcmlXZWJDb250ZW50L0hhbmRsaW5nRXZlbnRzL0hhbmRsaW5nRXZlbnRzLmh0bWwjLy9h
cHBsZV9yZWYvZG9jL3VpZC9UUDQwMDA2NTExLVNXMTYKCk5vIG5ldyB0ZXN0cy4gKE9PUFMhKQoK
KiBEZXJpdmVkU291cmNlcy5tYWtlOiBVc2UgbmV3IFdlYkNvcmUuT3JpZW50YXRpb25FdmVudHMu
ZXhwIGZpbGUgaWYgRU5BQkxFX09SSUVOVEFUSU9OX0VWRU5UUy4KQWRkIEVOQUJMRV9PUklFTlRB
VElPTl9FVkVOVFMgdG8gdGhlIG5ldyBBRERJVElPTkFMX0lETF9ERUZJTkVTIHZhcmlhYmxlIHRo
YXQgaXMgcGFzc2VkIHRvIHRoZSBJREwKY29kZSBnZW5lcmF0b3IuIFRoaXMgaXMgYmVjYXVzZSBF
TkFCTEVfT1JJRU5UQVRJT05fRVZFTlRTIGlzIG5vdCBpbiBGRUFUVVJFX0RFRklORVMuCiogV2Vi
Q29yZS5PcmllbnRhdGlvbkV2ZW50cy5leHA6IEFkZGVkLgoqIFdlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvajogQWRkIFdlYkNvcmUuT3JpZW50YXRpb25FdmVudHMuZXhwLgoqIGh0bWwv
SFRNTEJvZHlFbGVtZW50LmNwcDogSGFuZGxlIG9ub3JpZW50YXRpb25jaGFuZ2UgcHJvcGVybHku
CihXZWJDb3JlOjpIVE1MQm9keUVsZW1lbnQ6OnBhcnNlTWFwcGVkQXR0cmlidXRlKToKKFdlYkNv
cmU6OkhUTUxCb2R5RWxlbWVudDo6b25vcmllbnRhdGlvbmNoYW5nZSk6CihXZWJDb3JlOjpIVE1M
Qm9keUVsZW1lbnQ6OnNldE9ub3JpZW50YXRpb25jaGFuZ2UpOgoqIGh0bWwvSFRNTEJvZHlFbGVt
ZW50Lmg6IERpdHRvLgoqIGh0bWwvSFRNTEJvZHlFbGVtZW50LmlkbDogRGl0dG8uCiogaHRtbC9I
VE1MRnJhbWVTZXRFbGVtZW50LmNwcDogRGl0dG8uCihXZWJDb3JlOjpIVE1MRnJhbWVTZXRFbGVt
ZW50OjpwYXJzZU1hcHBlZEF0dHJpYnV0ZSk6CihXZWJDb3JlOjpIVE1MRnJhbWVTZXRFbGVtZW50
Ojpvbm9yaWVudGF0aW9uY2hhbmdlKToKKFdlYkNvcmU6OkhUTUxGcmFtZVNldEVsZW1lbnQ6OnNl
dE9ub3JpZW50YXRpb25jaGFuZ2UpOgoqIGh0bWwvSFRNTEZyYW1lU2V0RWxlbWVudC5oOiBEaXR0
by4KKiBodG1sL0hUTUxGcmFtZVNldEVsZW1lbnQuaWRsOiBEaXR0by4KKiBwYWdlL0RPTVdpbmRv
dy5jcHA6IERpdHRvLgooV2ViQ29yZTo6RE9NV2luZG93OjpvcmllbnRhdGlvbik6IENhbGxzIHVw
IHRoZSB0byB0aGUgRnJhbWUgZm9yIHRoZSBvcmllbnRhdGlvbiB2YWx1ZS4KKFdlYkNvcmU6OkRP
TVdpbmRvdzo6b25vcmllbnRhdGlvbmNoYW5nZSk6CihXZWJDb3JlOjpET01XaW5kb3c6OnNldE9u
b3JpZW50YXRpb25jaGFuZ2UpOgoqIHBhZ2UvRE9NV2luZG93Lmg6IEhhbmRsZSBvbm9yaWVudGF0
aW9uY2hhbmdlIHByb3Blcmx5LgoqIHBhZ2UvRE9NV2luZG93LmlkbDogRGl0dG8uCiogcGFnZS9G
cmFtZS5jcHA6IFN0b3JlcyB0aGUgb3JpZW50YXRpb24gdmFsdWUuCihXZWJDb3JlOjpGcmFtZTo6
RnJhbWUpOgoqIHBhZ2UvRnJhbWUuaDogc2VuZE9yaWVudGF0aW9uQ2hhbmdlRXZlbnQoKSBpcyB0
byBiZSBpbXBsZW1lbnRlZCBwZXItcGxhdGZvcm0uCi0tLQogSmF2YVNjcmlwdENvcmUvQ2hhbmdl
TG9nICAgICAgICAgICAgICAgICAgfCAgICA5ICsrKysrKwogSmF2YVNjcmlwdENvcmUvd3RmL1Bs
YXRmb3JtLmggICAgICAgICAgICAgfCAgIDE1ICsrKysrKystLS0KIFdlYkNvcmUvQ2hhbmdlTG9n
ICAgICAgICAgICAgICAgICAgICAgICAgIHwgICA0MCArKysrKysrKysrKysrKysrKysrKysrKysr
KysrKwogV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlICAgICAgICAgICAgICAgfCAgIDE3ICsr
KysrKysrKysrLQogV2ViQ29yZS9XZWJDb3JlLk9yaWVudGF0aW9uRXZlbnRzLmV4cCAgICAgfCAg
ICAxICsKIFdlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIHwgICAgMiAr
CiBXZWJDb3JlL2h0bWwvSFRNTEJvZHlFbGVtZW50LmNwcCAgICAgICAgICB8ICAgMTYgKysrKysr
KysrKysKIFdlYkNvcmUvaHRtbC9IVE1MQm9keUVsZW1lbnQuaCAgICAgICAgICAgIHwgICAgNCAr
KysKIFdlYkNvcmUvaHRtbC9IVE1MQm9keUVsZW1lbnQuaWRsICAgICAgICAgIHwgICAgNCArKysK
IFdlYkNvcmUvaHRtbC9IVE1MRnJhbWVTZXRFbGVtZW50LmNwcCAgICAgIHwgICAxNiArKysrKysr
KysrKwogV2ViQ29yZS9odG1sL0hUTUxGcmFtZVNldEVsZW1lbnQuaCAgICAgICAgfCAgICA0ICsr
KwogV2ViQ29yZS9odG1sL0hUTUxGcmFtZVNldEVsZW1lbnQuaWRsICAgICAgfCAgICA0ICsrKwog
V2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAgICAgICAgICAgICAgICAgfCAgIDIyICsrKysrKysr
KysrKysrKysKIFdlYkNvcmUvcGFnZS9ET01XaW5kb3cuaCAgICAgICAgICAgICAgICAgIHwgICAx
MCArKysrKystCiBXZWJDb3JlL3BhZ2UvRE9NV2luZG93LmlkbCAgICAgICAgICAgICAgICB8ICAg
IDcgKysrKysKIFdlYkNvcmUvcGFnZS9GcmFtZS5jcHAgICAgICAgICAgICAgICAgICAgIHwgICAg
MyArKwogV2ViQ29yZS9wYWdlL0ZyYW1lLmggICAgICAgICAgICAgICAgICAgICAgfCAgICA5ICsr
KysrKwogMTcgZmlsZXMgY2hhbmdlZCwgMTc1IGluc2VydGlvbnMoKyksIDggZGVsZXRpb25zKC0p
CiBjcmVhdGUgbW9kZSAxMDA2NDQgV2ViQ29yZS9XZWJDb3JlLk9yaWVudGF0aW9uRXZlbnRzLmV4
cAoKZGlmZiAtLWdpdCBhL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZyBiL0phdmFTY3JpcHRDb3Jl
L0NoYW5nZUxvZwppbmRleCA0MmRmNmU2Li43NDhmNDVlIDEwMDY0NAotLS0gYS9KYXZhU2NyaXB0
Q29yZS9DaGFuZ2VMb2cKKysrIGIvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MTIgQEAKKzIwMDktMDktMTggIEdyZWcgQm9sc2luZ2EgIDxib2xzaW5nYUBhcHBsZS5jb20+CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIEVOQUJM
RShPUklFTlRBVElPTl9FVkVOVFMpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yOTUwOAorCisgICAgICAgICogd3RmL1BsYXRmb3JtLmg6IEFsc28gc29y
dCBQTEFURk9STShJUEhPTkUpICNkZWZpbmVzLgorCiAyMDA5LTA5LTE4ICBHYWJvciBMb2tpICA8
bG9raUBpbmYudS1zemVnZWQuaHU+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgR2F2aW4gQmFycmFj
bG91Z2guCmRpZmYgLS1naXQgYS9KYXZhU2NyaXB0Q29yZS93dGYvUGxhdGZvcm0uaCBiL0phdmFT
Y3JpcHRDb3JlL3d0Zi9QbGF0Zm9ybS5oCmluZGV4IDI4OTRkNDMuLjdkZGZjOTUgMTAwNjQ0Ci0t
LSBhL0phdmFTY3JpcHRDb3JlL3d0Zi9QbGF0Zm9ybS5oCisrKyBiL0phdmFTY3JpcHRDb3JlL3d0
Zi9QbGF0Zm9ybS5oCkBAIC00MjMsMTggKzQyMywxOSBAQAogI2VuZGlmCiAKICNpZiBQTEFURk9S
TShJUEhPTkUpCi0jZGVmaW5lIFdURl9QTEFURk9STV9DRiAxCi0jZGVmaW5lIFdURl9VU0VfUFRI
UkVBRFMgMQogI2RlZmluZSBFTkFCTEVfQ09OVEVYVF9NRU5VUyAwCiAjZGVmaW5lIEVOQUJMRV9E
UkFHX1NVUFBPUlQgMAogI2RlZmluZSBFTkFCTEVfRlRQRElSIDEKKyNkZWZpbmUgRU5BQkxFX0dF
T0xPQ0FUSU9OIDEKKyNkZWZpbmUgRU5BQkxFX0lDT05EQVRBQkFTRSAwCiAjZGVmaW5lIEVOQUJM
RV9JTlNQRUNUT1IgMAogI2RlZmluZSBFTkFCTEVfTUFDX0pBVkFfQlJJREdFIDAKLSNkZWZpbmUg
RU5BQkxFX0lDT05EQVRBQkFTRSAwCi0jZGVmaW5lIEVOQUJMRV9HRU9MT0NBVElPTiAxCiAjZGVm
aW5lIEVOQUJMRV9ORVRTQ0FQRV9QTFVHSU5fQVBJIDAKLSNkZWZpbmUgSEFWRV9SRUFETElORSAx
CisjZGVmaW5lIEVOQUJMRV9PUklFTlRBVElPTl9FVkVOVFMgMQogI2RlZmluZSBFTkFCTEVfUkVQ
QUlOVF9USFJPVFRMSU5HIDEKKyNkZWZpbmUgSEFWRV9SRUFETElORSAxCisjZGVmaW5lIFdURl9Q
TEFURk9STV9DRiAxCisjZGVmaW5lIFdURl9VU0VfUFRIUkVBRFMgMQogI2VuZGlmCiAKICNpZiBQ
TEFURk9STShXSU4pCkBAIC01OTQsNiArNTk1LDEwIEBACiAjZGVmaW5lIEVOQUJMRV9ORVRTQ0FQ
RV9QTFVHSU5fQVBJIDEKICNlbmRpZgogCisjaWYgIWRlZmluZWQoRU5BQkxFX09SSUVOVEFUSU9O
X0VWRU5UUykKKyNkZWZpbmUgRU5BQkxFX09SSUVOVEFUSU9OX0VWRU5UUyAwCisjZW5kaWYKKwog
I2lmICFkZWZpbmVkKEVOQUJMRV9PUENPREVfU1RBVFMpCiAjZGVmaW5lIEVOQUJMRV9PUENPREVf
U1RBVFMgMAogI2VuZGlmCmRpZmYgLS1naXQgYS9XZWJDb3JlL0NoYW5nZUxvZyBiL1dlYkNvcmUv
Q2hhbmdlTG9nCmluZGV4IGFlZjE5Y2MuLjIyMTJlNDYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvQ2hh
bmdlTG9nCisrKyBiL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDMgQEAKKzIwMDktMDkt
MTggIEdyZWcgQm9sc2luZ2EgIDxib2xzaW5nYUBhcHBsZS5jb20+CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIEVOQUJMRShPUklFTlRBVElPTl9F
VkVOVFMpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0y
OTUwOAorICAgICAgICAKKyAgICAgICAgU2VlIGRvY3VtZW50YXRpb24gaGVyZToKKyAgICAgICAg
CisgICAgICAgIGh0dHA6Ly9kZXZlbG9wZXIuYXBwbGUuY29tL3NhZmFyaS9saWJyYXJ5L2RvY3Vt
ZW50YXRpb24vQXBwbGVBcHBsaWNhdGlvbnMvUmVmZXJlbmNlL1NhZmFyaVdlYkNvbnRlbnQvSGFu
ZGxpbmdFdmVudHMvSGFuZGxpbmdFdmVudHMuaHRtbCMvL2FwcGxlX3JlZi9kb2MvdWlkL1RQNDAw
MDY1MTEtU1cxNgorCisgICAgICAgIE5vIG5ldyB0ZXN0cy4gKE9PUFMhKQorCisgICAgICAgICog
RGVyaXZlZFNvdXJjZXMubWFrZTogVXNlIG5ldyBXZWJDb3JlLk9yaWVudGF0aW9uRXZlbnRzLmV4
cCBmaWxlIGlmIEVOQUJMRV9PUklFTlRBVElPTl9FVkVOVFMuIAorICAgICAgICBBZGQgRU5BQkxF
X09SSUVOVEFUSU9OX0VWRU5UUyB0byB0aGUgbmV3IEFERElUSU9OQUxfSURMX0RFRklORVMgdmFy
aWFibGUgdGhhdCBpcyBwYXNzZWQgdG8gdGhlIElETAorICAgICAgICBjb2RlIGdlbmVyYXRvci4g
VGhpcyBpcyBiZWNhdXNlIEVOQUJMRV9PUklFTlRBVElPTl9FVkVOVFMgaXMgbm90IGluIEZFQVRV
UkVfREVGSU5FUy4KKyAgICAgICAgKiBXZWJDb3JlLk9yaWVudGF0aW9uRXZlbnRzLmV4cDogQWRk
ZWQuCisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOiBBZGQgV2Vi
Q29yZS5PcmllbnRhdGlvbkV2ZW50cy5leHAuCisgICAgICAgICogaHRtbC9IVE1MQm9keUVsZW1l
bnQuY3BwOiBIYW5kbGUgb25vcmllbnRhdGlvbmNoYW5nZSBwcm9wZXJseS4KKyAgICAgICAgKFdl
YkNvcmU6OkhUTUxCb2R5RWxlbWVudDo6cGFyc2VNYXBwZWRBdHRyaWJ1dGUpOgorICAgICAgICAo
V2ViQ29yZTo6SFRNTEJvZHlFbGVtZW50Ojpvbm9yaWVudGF0aW9uY2hhbmdlKToKKyAgICAgICAg
KFdlYkNvcmU6OkhUTUxCb2R5RWxlbWVudDo6c2V0T25vcmllbnRhdGlvbmNoYW5nZSk6CisgICAg
ICAgICogaHRtbC9IVE1MQm9keUVsZW1lbnQuaDogRGl0dG8uCisgICAgICAgICogaHRtbC9IVE1M
Qm9keUVsZW1lbnQuaWRsOiBEaXR0by4KKyAgICAgICAgKiBodG1sL0hUTUxGcmFtZVNldEVsZW1l
bnQuY3BwOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUxGcmFtZVNldEVsZW1lbnQ6OnBh
cnNlTWFwcGVkQXR0cmlidXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxGcmFtZVNldEVsZW1l
bnQ6Om9ub3JpZW50YXRpb25jaGFuZ2UpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTEZyYW1lU2V0
RWxlbWVudDo6c2V0T25vcmllbnRhdGlvbmNoYW5nZSk6CisgICAgICAgICogaHRtbC9IVE1MRnJh
bWVTZXRFbGVtZW50Lmg6IERpdHRvLgorICAgICAgICAqIGh0bWwvSFRNTEZyYW1lU2V0RWxlbWVu
dC5pZGw6IERpdHRvLgorICAgICAgICAqIHBhZ2UvRE9NV2luZG93LmNwcDogRGl0dG8uCisgICAg
ICAgIChXZWJDb3JlOjpET01XaW5kb3c6Om9yaWVudGF0aW9uKTogQ2FsbHMgdXAgdGhlIHRvIHRo
ZSBGcmFtZSBmb3IgdGhlIG9yaWVudGF0aW9uIHZhbHVlLgorICAgICAgICAoV2ViQ29yZTo6RE9N
V2luZG93Ojpvbm9yaWVudGF0aW9uY2hhbmdlKToKKyAgICAgICAgKFdlYkNvcmU6OkRPTVdpbmRv
dzo6c2V0T25vcmllbnRhdGlvbmNoYW5nZSk6CisgICAgICAgICogcGFnZS9ET01XaW5kb3cuaDog
SGFuZGxlIG9ub3JpZW50YXRpb25jaGFuZ2UgcHJvcGVybHkuCisgICAgICAgICogcGFnZS9ET01X
aW5kb3cuaWRsOiBEaXR0by4KKyAgICAgICAgKiBwYWdlL0ZyYW1lLmNwcDogU3RvcmVzIHRoZSBv
cmllbnRhdGlvbiB2YWx1ZS4KKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lOjpGcmFtZSk6CisgICAg
ICAgICogcGFnZS9GcmFtZS5oOiBzZW5kT3JpZW50YXRpb25DaGFuZ2VFdmVudCgpIGlzIHRvIGJl
IGltcGxlbWVudGVkIHBlci1wbGF0Zm9ybS4KKwogMjAwOS0wOS0xOCAgQW5kZXJzIENhcmxzc29u
ICA8YW5kZXJzY2FAYXBwbGUuY29tPgogCiAgICAgICAgIFRyeSBmaXhpbmcgdGhlIGJ1aWxkIGFn
YWluLgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlIGIvV2ViQ29yZS9E
ZXJpdmVkU291cmNlcy5tYWtlCmluZGV4IGQ4MmQ0NDkuLmFmNWExNjYgMTAwNjQ0Ci0tLSBhL1dl
YkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQorKysgYi9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1h
a2UKQEAgLTQ0Nyw2ICs0NDcsOCBAQCBhbGwgOiBcCiAKICMgLS0tLS0tLS0KIAorQURESVRJT05B
TF9JRExfREVGSU5FUyA6PQorCiBpZmVxICgkKE9TKSxNQUNPUykKIAogRlJBTUVXT1JLX0ZMQUdT
ID0gJChzaGVsbCBlY2hvICQoRlJBTUVXT1JLX1NFQVJDSF9QQVRIUykgfCBwZXJsIC1lICdwcmlu
dCAiLUYgIiAuIGpvaW4oIiAtRiAiLCBzcGxpdCgiICIsIDw+KSk7JykKQEAgLTQ4MSw2ICs0ODMs
MTMgQEAgZWxzZQogICAgIEVOQUJMRV9JTlNQRUNUT1IgPSAwCiBlbmRpZgogCitpZmVxICgkKHNo
ZWxsIGdjYyAtaXN5c3Jvb3QgJChTREtST09UKSAtRSAtUCAtZE0gLUYgJChCVUlMVF9QUk9EVUNU
U19ESVIpICQoRlJBTUVXT1JLX0ZMQUdTKSBXZWJDb3JlL0ZvcndhcmRpbmdIZWFkZXJzL3d0Zi9Q
bGF0Zm9ybS5oIHwgZ3JlcCBFTkFCTEVfT1JJRU5UQVRJT05fRVZFTlRTIHwgY3V0IC1kJyAnIC1m
MyksIDEpCisgICAgRU5BQkxFX09SSUVOVEFUSU9OX0VWRU5UUyA9IDEKKyAgICBBRERJVElPTkFM
X0lETF9ERUZJTkVTIDo9ICQoQURESVRJT05BTF9JRExfREVGSU5FUykgRU5BQkxFX09SSUVOVEFU
SU9OX0VWRU5UUworZWxzZQorICAgIEVOQUJMRV9PUklFTlRBVElPTl9FVkVOVFMgPSAwCitlbmRp
ZgorCiAjIENTUyBwcm9wZXJ0eSBuYW1lcyBhbmQgdmFsdWUga2V5d29yZHMKIAogV0VCQ09SRV9D
U1NfUFJPUEVSVFlfTkFNRVMgOj0gJChXZWJDb3JlKS9jc3MvQ1NTUHJvcGVydHlOYW1lcy5pbgpA
QCAtNzM5LDcgKzc0OCw3IEBAIEdFTkVSQVRFX0JJTkRJTkdTX1NDUklQVFMgPSBcCiAjCiAKIEpT
JS5oIDogJS5pZGwgJChHRU5FUkFURV9CSU5ESU5HU19TQ1JJUFRTKSBiaW5kaW5ncy9zY3JpcHRz
L0NvZGVHZW5lcmF0b3JKUy5wbQotCSQoR0VORVJBVEVfQklORElOR1MpIC0tZGVmaW5lcyAiJChG
RUFUVVJFX0RFRklORVMpIExBTkdVQUdFX0pBVkFTQ1JJUFQiIC0tZ2VuZXJhdG9yIEpTICQ8CisJ
JChHRU5FUkFURV9CSU5ESU5HUykgLS1kZWZpbmVzICIkKEZFQVRVUkVfREVGSU5FUykgJChBRERJ
VElPTkFMX0lETF9ERUZJTkVTKSBMQU5HVUFHRV9KQVZBU0NSSVBUIiAtLWdlbmVyYXRvciBKUyAk
PAogCiAtaW5jbHVkZSAkKEpTX0RPTV9IRUFERVJTOi5oPS5kZXApCiAKQEAgLTc5MSw2ICs4MDAs
MTAgQEAgaWZlcSAoJChFTkFCTEVfSU5TUEVDVE9SKSwgMSkKICAgICBXRUJDT1JFX0VYUE9SVF9E
RVBFTkRFTkNJRVMgOj0gJChXRUJDT1JFX0VYUE9SVF9ERVBFTkRFTkNJRVMpIFdlYkNvcmUuSW5z
cGVjdG9yLmV4cAogZW5kaWYKIAoraWZlcSAoJChFTkFCTEVfT1JJRU5UQVRJT05fRVZFTlRTKSwg
MSkKKyAgICBXRUJDT1JFX0VYUE9SVF9ERVBFTkRFTkNJRVMgOj0gJChXRUJDT1JFX0VYUE9SVF9E
RVBFTkRFTkNJRVMpIFdlYkNvcmUuT3JpZW50YXRpb25FdmVudHMuZXhwCitlbmRpZgorCiBpZmVx
ICgkKGZpbmRzdHJpbmcgMTAuNCwkKE1BQ09TWF9ERVBMT1lNRU5UX1RBUkdFVCkpLCAxMC40KQog
ICAgIFdFQkNPUkVfRVhQT1JUX0RFUEVOREVOQ0lFUyA6PSAkKFdFQkNPUkVfRVhQT1JUX0RFUEVO
REVOQ0lFUykgV2ViQ29yZS5UaWdlci5leHAKIGVuZGlmCkBAIC04MDcsNyArODIwLDcgQEAgV2Vi
Q29yZS5leHAgOiBXZWJDb3JlLmJhc2UuZXhwICQoV0VCQ09SRV9FWFBPUlRfREVQRU5ERU5DSUVT
KQogIyBPYmplY3RpdmUtQyBiaW5kaW5ncwogCiBET00lLmggOiAlLmlkbCAkKEdFTkVSQVRFX0JJ
TkRJTkdTX1NDUklQVFMpIGJpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvck9iakMucG0gYmlu
ZGluZ3Mvb2JqYy9QdWJsaWNET01JbnRlcmZhY2VzLmgKLQkkKEdFTkVSQVRFX0JJTkRJTkdTKSAt
LWRlZmluZXMgIiQoRkVBVFVSRV9ERUZJTkVTKSBMQU5HVUFHRV9PQkpFQ1RJVkVfQyIgLS1nZW5l
cmF0b3IgT2JqQyAkPAorCSQoR0VORVJBVEVfQklORElOR1MpIC0tZGVmaW5lcyAiJChGRUFUVVJF
X0RFRklORVMpICQoQURESVRJT05BTF9JRExfREVGSU5FUykgTEFOR1VBR0VfT0JKRUNUSVZFX0Mi
IC0tZ2VuZXJhdG9yIE9iakMgJDwKIAogLWluY2x1ZGUgJChPQkpDX0RPTV9IRUFERVJTOi5oPS5k
ZXApCiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvV2ViQ29yZS5PcmllbnRhdGlvbkV2ZW50cy5leHAg
Yi9XZWJDb3JlL1dlYkNvcmUuT3JpZW50YXRpb25FdmVudHMuZXhwCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAuLmVjMDk3OGQKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJDb3JlL1dl
YkNvcmUuT3JpZW50YXRpb25FdmVudHMuZXhwCkBAIC0wLDAgKzEgQEAKK19fWk43V2ViQ29yZTVG
cmFtZTI2c2VuZE9yaWVudGF0aW9uQ2hhbmdlRXZlbnRFaQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9X
ZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9XZWJDb3JlL1dlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA1YjE1MWJkLi42ZWFlNmM0IDEwMDY0NAotLS0gYS9X
ZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9XZWJDb3JlL1dl
YkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtOTgxMyw2ICs5ODEzLDcgQEAKIAkJ
RjkxNkM0OEMwREI1MTBGODAwNzZDRDgzIC8qIEpTWE1MSHR0cFJlcXVlc3RQcm9ncmVzc0V2ZW50
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU1hNTEh0dHBSZXF1ZXN0UHJv
Z3Jlc3NFdmVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGOUYwRUQ3NzBEQjUw
Q0EyMDBEMTZEQjkgLyogWE1MSHR0cFJlcXVlc3RQcm9ncmVzc0V2ZW50LmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBYTUxIdHRwUmVxdWVzdFByb2dyZXNzRXZlbnQuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjlGMEVENzgwREI1MENBMjAwRDE2REI5IC8qIFhN
TEh0dHBSZXF1ZXN0UHJvZ3Jlc3NFdmVudC5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFhN
TEh0dHBSZXF1ZXN0UHJvZ3Jlc3NFdmVudC5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCUZFMTM2QUU3MTA2NDNCRTUwMDc4Q0Y2RCAvKiBXZWJDb3JlLk9yaWVudGF0aW9uRXZlbnRz
LmV4cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuZXhwb3J0czsgcGF0aCA9IFdlYkNvcmUuT3JpZW50
YXRpb25FdmVudHMuZXhwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGRTQ5QkQzMDEw
NjE3MTkxMDBEMEUxQUUgLyogV2ViQ29yZS5JbnNwZWN0b3IuZXhwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5leHBvcnRzOyBwYXRoID0gV2ViQ29yZS5JbnNwZWN0b3IuZXhwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQlGRTQ5RUY5NzBEQzUxNDYyMDA0MjY2RTEgLyogRGFzaGJvYXJkU3Vw
cG9ydENTU1Byb3BlcnR5TmFtZXMuaW4gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gRGFzaGJvYXJk
U3VwcG9ydENTU1Byb3BlcnR5TmFtZXMuaW47IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CUZFNkZENDg1MEY2NzZFNTcwMDA5Mjg3MyAvKiBDb29yZGluYXRlcy5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBDb29yZGluYXRlcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwpAQCAtMTA0NDgsNiArMTA0NDksNyBAQAogCQkJCTQ0OTE5NTlDMEZCRTE3RDcwMEQ5Rjgy
NCAvKiBXZWJDb3JlLkpOSS5leHAgKi8sCiAJCQkJNDQ5MTk1OUIwRkJFMTdENzAwRDlGODI0IC8q
IFdlYkNvcmUuTFA2NC5leHAgKi8sCiAJCQkJNDQ5MTk1OUEwRkJFMTdENzAwRDlGODI0IC8qIFdl
YkNvcmUuTlBBUEkuZXhwICovLAorCQkJCUZFMTM2QUU3MTA2NDNCRTUwMDc4Q0Y2RCAvKiBXZWJD
b3JlLk9yaWVudGF0aW9uRXZlbnRzLmV4cCAqLywKIAkJCQk0NDkxOTU5OTBGQkUxN0Q3MDBEOUY4
MjQgLyogV2ViQ29yZS5TVkcuQW5pbWF0aW9uLmV4cCAqLywKIAkJCQk0NDkxOTU5ODBGQkUxN0Q3
MDBEOUY4MjQgLyogV2ViQ29yZS5TVkcuZXhwICovLAogCQkJCTQ0OTE5NTk3MEZCRTE3RDcwMEQ5
RjgyNCAvKiBXZWJDb3JlLlNWRy5GaWx0ZXJzLmV4cCAqLywKZGlmZiAtLWdpdCBhL1dlYkNvcmUv
aHRtbC9IVE1MQm9keUVsZW1lbnQuY3BwIGIvV2ViQ29yZS9odG1sL0hUTUxCb2R5RWxlbWVudC5j
cHAKaW5kZXggMzgxMzE3Ny4uMDU0OTMzOSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9odG1sL0hUTUxC
b2R5RWxlbWVudC5jcHAKKysrIGIvV2ViQ29yZS9odG1sL0hUTUxCb2R5RWxlbWVudC5jcHAKQEAg
LTE0Myw2ICsxNDMsMTAgQEAgdm9pZCBIVE1MQm9keUVsZW1lbnQ6OnBhcnNlTWFwcGVkQXR0cmli
dXRlKE1hcHBlZEF0dHJpYnV0ZSAqYXR0cikKICAgICAgICAgZG9jdW1lbnQoKS0+c2V0V2luZG93
QXR0cmlidXRlRXZlbnRMaXN0ZW5lcihldmVudE5hbWVzKCkuYmx1ckV2ZW50LCBjcmVhdGVBdHRy
aWJ1dGVFdmVudExpc3RlbmVyKGRvY3VtZW50KCktPmZyYW1lKCksIGF0dHIpKTsKICAgICBlbHNl
IGlmIChhdHRyLT5uYW1lKCkgPT0gb25mb2N1c0F0dHIpCiAgICAgICAgIGRvY3VtZW50KCktPnNl
dFdpbmRvd0F0dHJpYnV0ZUV2ZW50TGlzdGVuZXIoZXZlbnROYW1lcygpLmZvY3VzRXZlbnQsIGNy
ZWF0ZUF0dHJpYnV0ZUV2ZW50TGlzdGVuZXIoZG9jdW1lbnQoKS0+ZnJhbWUoKSwgYXR0cikpOwor
I2lmIEVOQUJMRShPUklFTlRBVElPTl9FVkVOVFMpCisgICAgZWxzZSBpZiAoYXR0ci0+bmFtZSgp
ID09IG9ub3JpZW50YXRpb25jaGFuZ2VBdHRyKQorICAgICAgICBkb2N1bWVudCgpLT5zZXRXaW5k
b3dBdHRyaWJ1dGVFdmVudExpc3RlbmVyKGV2ZW50TmFtZXMoKS5vcmllbnRhdGlvbmNoYW5nZUV2
ZW50LCBjcmVhdGVBdHRyaWJ1dGVFdmVudExpc3RlbmVyKGRvY3VtZW50KCktPmZyYW1lKCksIGF0
dHIpKTsKKyNlbmRpZgogICAgIGVsc2UgaWYgKGF0dHItPm5hbWUoKSA9PSBvbmhhc2hjaGFuZ2VB
dHRyKQogICAgICAgICBkb2N1bWVudCgpLT5zZXRXaW5kb3dBdHRyaWJ1dGVFdmVudExpc3RlbmVy
KGV2ZW50TmFtZXMoKS5oYXNoY2hhbmdlRXZlbnQsIGNyZWF0ZUF0dHJpYnV0ZUV2ZW50TGlzdGVu
ZXIoZG9jdW1lbnQoKS0+ZnJhbWUoKSwgYXR0cikpOwogICAgIGVsc2UgaWYgKGF0dHItPm5hbWUo
KSA9PSBvbnJlc2l6ZUF0dHIpCkBAIC00MTIsNiArNDE2LDE4IEBAIHZvaWQgSFRNTEJvZHlFbGVt
ZW50OjpzZXRPbm9ubGluZShQYXNzUmVmUHRyPEV2ZW50TGlzdGVuZXI+IGV2ZW50TGlzdGVuZXIp
CiAgICAgZG9jdW1lbnQoKS0+c2V0V2luZG93QXR0cmlidXRlRXZlbnRMaXN0ZW5lcihldmVudE5h
bWVzKCkub25saW5lRXZlbnQsIGV2ZW50TGlzdGVuZXIpOwogfQogCisjaWYgRU5BQkxFKE9SSUVO
VEFUSU9OX0VWRU5UUykKK0V2ZW50TGlzdGVuZXIqIEhUTUxCb2R5RWxlbWVudDo6b25vcmllbnRh
dGlvbmNoYW5nZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIGRvY3VtZW50KCktPmdldFdpbmRvd0F0
dHJpYnV0ZUV2ZW50TGlzdGVuZXIoZXZlbnROYW1lcygpLm9yaWVudGF0aW9uY2hhbmdlRXZlbnQp
OworfQorCit2b2lkIEhUTUxCb2R5RWxlbWVudDo6c2V0T25vcmllbnRhdGlvbmNoYW5nZShQYXNz
UmVmUHRyPEV2ZW50TGlzdGVuZXI+IGV2ZW50TGlzdGVuZXIpCit7CisgICAgZG9jdW1lbnQoKS0+
c2V0QXR0cmlidXRlRXZlbnRMaXN0ZW5lcihldmVudE5hbWVzKCkub3JpZW50YXRpb25jaGFuZ2VF
dmVudCwgZXZlbnRMaXN0ZW5lcik7Cit9CisjZW5kaWYKKwogRXZlbnRMaXN0ZW5lciogSFRNTEJv
ZHlFbGVtZW50OjpvbnJlc2l6ZSgpIGNvbnN0CiB7CiAgICAgcmV0dXJuIGRvY3VtZW50KCktPmdl
dFdpbmRvd0F0dHJpYnV0ZUV2ZW50TGlzdGVuZXIoZXZlbnROYW1lcygpLnJlc2l6ZUV2ZW50KTsK
ZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9IVE1MQm9keUVsZW1lbnQuaCBiL1dlYkNvcmUvaHRt
bC9IVE1MQm9keUVsZW1lbnQuaAppbmRleCBkNWVmYWIzLi5lMGQ0OTk2IDEwMDY0NAotLS0gYS9X
ZWJDb3JlL2h0bWwvSFRNTEJvZHlFbGVtZW50LmgKKysrIGIvV2ViQ29yZS9odG1sL0hUTUxCb2R5
RWxlbWVudC5oCkBAIC02Myw2ICs2MywxMCBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRPbm9mZmxp
bmUoUGFzc1JlZlB0cjxFdmVudExpc3RlbmVyPik7CiAgICAgRXZlbnRMaXN0ZW5lciogb25vbmxp
bmUoKSBjb25zdDsKICAgICB2b2lkIHNldE9ub25saW5lKFBhc3NSZWZQdHI8RXZlbnRMaXN0ZW5l
cj4pOworI2lmIEVOQUJMRShPUklFTlRBVElPTl9FVkVOVFMpCisgICAgRXZlbnRMaXN0ZW5lciog
b25vcmllbnRhdGlvbmNoYW5nZSgpIGNvbnN0OworICAgIHZvaWQgc2V0T25vcmllbnRhdGlvbmNo
YW5nZShQYXNzUmVmUHRyPEV2ZW50TGlzdGVuZXI+KTsKKyNlbmRpZgogICAgIEV2ZW50TGlzdGVu
ZXIqIG9ucmVzaXplKCkgY29uc3Q7CiAgICAgdm9pZCBzZXRPbnJlc2l6ZShQYXNzUmVmUHRyPEV2
ZW50TGlzdGVuZXI+KTsKICAgICBFdmVudExpc3RlbmVyKiBvbnN0b3JhZ2UoKSBjb25zdDsKZGlm
ZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9IVE1MQm9keUVsZW1lbnQuaWRsIGIvV2ViQ29yZS9odG1s
L0hUTUxCb2R5RWxlbWVudC5pZGwKaW5kZXggN2JlNjgwMy4uMmU5M2UyZSAxMDA2NDQKLS0tIGEv
V2ViQ29yZS9odG1sL0hUTUxCb2R5RWxlbWVudC5pZGwKKysrIGIvV2ViQ29yZS9odG1sL0hUTUxC
b2R5RWxlbWVudC5pZGwKQEAgLTQ0LDYgKzQ0LDEwIEBAIG1vZHVsZSBodG1sIHsKICAgICAgICAg
YXR0cmlidXRlIFtEb250RW51bV0gRXZlbnRMaXN0ZW5lciBvbnN0b3JhZ2U7CiAgICAgICAgIGF0
dHJpYnV0ZSBbRG9udEVudW1dIEV2ZW50TGlzdGVuZXIgb251bmxvYWQ7CiAKKyNpZiBkZWZpbmVk
KEVOQUJMRV9PUklFTlRBVElPTl9FVkVOVFMpICYmIEVOQUJMRV9PUklFTlRBVElPTl9FVkVOVFMK
KyAgICAgICAgYXR0cmlidXRlIFtEb250RW51bV0gRXZlbnRMaXN0ZW5lciBvbm9yaWVudGF0aW9u
Y2hhbmdlOworI2VuZGlmCisKICAgICAgICAgLy8gT3ZlcnJpZGVzIG9mIEVsZW1lbnQgYXR0cmli
dXRlcyAobGVmdCBpbiBmb3IgY29tcGxldGVuZXNzKS4KICAgICAgICAgLy8gYXR0cmlidXRlIFtE
b250RW51bV0gRXZlbnRMaXN0ZW5lciBvbmJsdXI7CiAgICAgICAgIC8vIGF0dHJpYnV0ZSBbRG9u
dEVudW1dIEV2ZW50TGlzdGVuZXIgb25lcnJvcjsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9I
VE1MRnJhbWVTZXRFbGVtZW50LmNwcCBiL1dlYkNvcmUvaHRtbC9IVE1MRnJhbWVTZXRFbGVtZW50
LmNwcAppbmRleCA4ZGMzOTY0Li44NmZlYzMwIDEwMDY0NAotLS0gYS9XZWJDb3JlL2h0bWwvSFRN
TEZyYW1lU2V0RWxlbWVudC5jcHAKKysrIGIvV2ViQ29yZS9odG1sL0hUTUxGcmFtZVNldEVsZW1l
bnQuY3BwCkBAIC0xMzUsNiArMTM1LDEwIEBAIHZvaWQgSFRNTEZyYW1lU2V0RWxlbWVudDo6cGFy
c2VNYXBwZWRBdHRyaWJ1dGUoTWFwcGVkQXR0cmlidXRlICphdHRyKQogICAgICAgICBkb2N1bWVu
dCgpLT5zZXRXaW5kb3dBdHRyaWJ1dGVFdmVudExpc3RlbmVyKGV2ZW50TmFtZXMoKS5ibHVyRXZl
bnQsIGNyZWF0ZUF0dHJpYnV0ZUV2ZW50TGlzdGVuZXIoZG9jdW1lbnQoKS0+ZnJhbWUoKSwgYXR0
cikpOwogICAgIGVsc2UgaWYgKGF0dHItPm5hbWUoKSA9PSBvbmZvY3VzQXR0cikKICAgICAgICAg
ZG9jdW1lbnQoKS0+c2V0V2luZG93QXR0cmlidXRlRXZlbnRMaXN0ZW5lcihldmVudE5hbWVzKCku
Zm9jdXNFdmVudCwgY3JlYXRlQXR0cmlidXRlRXZlbnRMaXN0ZW5lcihkb2N1bWVudCgpLT5mcmFt
ZSgpLCBhdHRyKSk7CisjaWYgRU5BQkxFKE9SSUVOVEFUSU9OX0VWRU5UUykKKyAgICBlbHNlIGlm
IChhdHRyLT5uYW1lKCkgPT0gb25vcmllbnRhdGlvbmNoYW5nZUF0dHIpCisgICAgICAgIGRvY3Vt
ZW50KCktPnNldFdpbmRvd0F0dHJpYnV0ZUV2ZW50TGlzdGVuZXIoZXZlbnROYW1lcygpLm9yaWVu
dGF0aW9uY2hhbmdlRXZlbnQsIGNyZWF0ZUF0dHJpYnV0ZUV2ZW50TGlzdGVuZXIoZG9jdW1lbnQo
KS0+ZnJhbWUoKSwgYXR0cikpOworI2VuZGlmCiAgICAgZWxzZSBpZiAoYXR0ci0+bmFtZSgpID09
IG9uaGFzaGNoYW5nZUF0dHIpCiAgICAgICAgIGRvY3VtZW50KCktPnNldFdpbmRvd0F0dHJpYnV0
ZUV2ZW50TGlzdGVuZXIoZXZlbnROYW1lcygpLmhhc2hjaGFuZ2VFdmVudCwgY3JlYXRlQXR0cmli
dXRlRXZlbnRMaXN0ZW5lcihkb2N1bWVudCgpLT5mcmFtZSgpLCBhdHRyKSk7CiAgICAgZWxzZSBp
ZiAoYXR0ci0+bmFtZSgpID09IG9ucmVzaXplQXR0cikKQEAgLTMyMCw2ICszMjQsMTggQEAgdm9p
ZCBIVE1MRnJhbWVTZXRFbGVtZW50OjpzZXRPbm9ubGluZShQYXNzUmVmUHRyPEV2ZW50TGlzdGVu
ZXI+IGV2ZW50TGlzdGVuZXIpCiAgICAgZG9jdW1lbnQoKS0+c2V0V2luZG93QXR0cmlidXRlRXZl
bnRMaXN0ZW5lcihldmVudE5hbWVzKCkub25saW5lRXZlbnQsIGV2ZW50TGlzdGVuZXIpOwogfQog
CisjaWYgRU5BQkxFKE9SSUVOVEFUSU9OX0VWRU5UUykKK0V2ZW50TGlzdGVuZXIqIEhUTUxGcmFt
ZVNldEVsZW1lbnQ6Om9ub3JpZW50YXRpb25jaGFuZ2UoKSBjb25zdAoreworICAgIHJldHVybiBk
b2N1bWVudCgpLT5nZXRXaW5kb3dBdHRyaWJ1dGVFdmVudExpc3RlbmVyKGV2ZW50TmFtZXMoKS5v
cmllbnRhdGlvbmNoYW5nZUV2ZW50KTsKK30KKwordm9pZCBIVE1MRnJhbWVTZXRFbGVtZW50Ojpz
ZXRPbm9yaWVudGF0aW9uY2hhbmdlKFBhc3NSZWZQdHI8RXZlbnRMaXN0ZW5lcj4gZXZlbnRMaXN0
ZW5lcikKK3sKKyAgICBkb2N1bWVudCgpLT5zZXRBdHRyaWJ1dGVFdmVudExpc3RlbmVyKGV2ZW50
TmFtZXMoKS5vcmllbnRhdGlvbmNoYW5nZUV2ZW50LCBldmVudExpc3RlbmVyKTsKK30KKyNlbmRp
ZgorICAgIAogRXZlbnRMaXN0ZW5lciogSFRNTEZyYW1lU2V0RWxlbWVudDo6b25yZXNpemUoKSBj
b25zdAogewogICAgIHJldHVybiBkb2N1bWVudCgpLT5nZXRXaW5kb3dBdHRyaWJ1dGVFdmVudExp
c3RlbmVyKGV2ZW50TmFtZXMoKS5yZXNpemVFdmVudCk7CmRpZmYgLS1naXQgYS9XZWJDb3JlL2h0
bWwvSFRNTEZyYW1lU2V0RWxlbWVudC5oIGIvV2ViQ29yZS9odG1sL0hUTUxGcmFtZVNldEVsZW1l
bnQuaAppbmRleCBiNTFlNzAyLi4wZGVhY2YxIDEwMDY0NAotLS0gYS9XZWJDb3JlL2h0bWwvSFRN
TEZyYW1lU2V0RWxlbWVudC5oCisrKyBiL1dlYkNvcmUvaHRtbC9IVE1MRnJhbWVTZXRFbGVtZW50
LmgKQEAgLTg3LDYgKzg3LDEwIEBAIHB1YmxpYzoKICAgICB2b2lkIHNldE9ub2ZmbGluZShQYXNz
UmVmUHRyPEV2ZW50TGlzdGVuZXI+KTsKICAgICBFdmVudExpc3RlbmVyKiBvbm9ubGluZSgpIGNv
bnN0OwogICAgIHZvaWQgc2V0T25vbmxpbmUoUGFzc1JlZlB0cjxFdmVudExpc3RlbmVyPik7Cisj
aWYgRU5BQkxFKE9SSUVOVEFUSU9OX0VWRU5UUykKKyAgICBFdmVudExpc3RlbmVyKiBvbm9yaWVu
dGF0aW9uY2hhbmdlKCkgY29uc3Q7CisgICAgdm9pZCBzZXRPbm9yaWVudGF0aW9uY2hhbmdlKFBh
c3NSZWZQdHI8RXZlbnRMaXN0ZW5lcj4pOworI2VuZGlmCiAgICAgRXZlbnRMaXN0ZW5lciogb25y
ZXNpemUoKSBjb25zdDsKICAgICB2b2lkIHNldE9ucmVzaXplKFBhc3NSZWZQdHI8RXZlbnRMaXN0
ZW5lcj4pOwogICAgIEV2ZW50TGlzdGVuZXIqIG9uc3RvcmFnZSgpIGNvbnN0OwpkaWZmIC0tZ2l0
IGEvV2ViQ29yZS9odG1sL0hUTUxGcmFtZVNldEVsZW1lbnQuaWRsIGIvV2ViQ29yZS9odG1sL0hU
TUxGcmFtZVNldEVsZW1lbnQuaWRsCmluZGV4IDAzNzVjMGEuLmI0NGEwNzEgMTAwNjQ0Ci0tLSBh
L1dlYkNvcmUvaHRtbC9IVE1MRnJhbWVTZXRFbGVtZW50LmlkbAorKysgYi9XZWJDb3JlL2h0bWwv
SFRNTEZyYW1lU2V0RWxlbWVudC5pZGwKQEAgLTQxLDYgKzQxLDEwIEBAIG1vZHVsZSBodG1sIHsK
ICAgICAgICAgYXR0cmlidXRlIFtEb250RW51bV0gRXZlbnRMaXN0ZW5lciBvbnN0b3JhZ2U7CiAg
ICAgICAgIGF0dHJpYnV0ZSBbRG9udEVudW1dIEV2ZW50TGlzdGVuZXIgb251bmxvYWQ7CiAKKyNp
ZiBkZWZpbmVkKEVOQUJMRV9PUklFTlRBVElPTl9FVkVOVFMpICYmIEVOQUJMRV9PUklFTlRBVElP
Tl9FVkVOVFMKKyAgICAgICAgYXR0cmlidXRlIFtEb250RW51bV0gRXZlbnRMaXN0ZW5lciBvbm9y
aWVudGF0aW9uY2hhbmdlOworI2VuZGlmCisKICAgICAgICAgLy8gT3ZlcnJpZGVzIG9mIEVsZW1l
bnQgYXR0cmlidXRlcyAobGVmdCBpbiBmb3IgY29tcGxldGVuZXNzKS4KICAgICAgICAgLy8gYXR0
cmlidXRlIFtEb250RW51bV0gRXZlbnRMaXN0ZW5lciBvbmJsdXI7CiAgICAgICAgIC8vIGF0dHJp
YnV0ZSBbRG9udEVudW1dIEV2ZW50TGlzdGVuZXIgb25lcnJvcjsKZGlmZiAtLWdpdCBhL1dlYkNv
cmUvcGFnZS9ET01XaW5kb3cuY3BwIGIvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAKaW5kZXgg
NzgzZjkzZC4uOTQzZjExOSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAK
KysrIGIvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAKQEAgLTQ2Miw2ICs0NjIsMTYgQEAgdm9p
ZCBET01XaW5kb3c6OmNsZWFyKCkKICNlbmRpZgogfQogCisjaWYgRU5BQkxFKE9SSUVOVEFUSU9O
X0VWRU5UUykKK2ludCBET01XaW5kb3c6Om9yaWVudGF0aW9uKCkgY29uc3QKK3sKKyAgICBpZiAo
IW1fZnJhbWUpCisgICAgICAgIHJldHVybiAwOworICAgIAorICAgIHJldHVybiBtX2ZyYW1lLT5v
cmllbnRhdGlvbigpOworfQorI2VuZGlmCisgICAgCiBTY3JlZW4qIERPTVdpbmRvdzo6c2NyZWVu
KCkgY29uc3QKIHsKICAgICBpZiAoIW1fc2NyZWVuKQpAQCAtMjA4OCw2ICsyMDk4LDE4IEBAIHZv
aWQgRE9NV2luZG93OjpzZXRPbmludmFsaWQoUGFzc1JlZlB0cjxFdmVudExpc3RlbmVyPiBldmVu
dExpc3RlbmVyKQogICAgIHNldEF0dHJpYnV0ZUV2ZW50TGlzdGVuZXIoZXZlbnROYW1lcygpLmlu
dmFsaWRFdmVudCwgZXZlbnRMaXN0ZW5lcik7CiB9CiAKKyNpZiBFTkFCTEUoT1JJRU5UQVRJT05f
RVZFTlRTKQorRXZlbnRMaXN0ZW5lciogRE9NV2luZG93Ojpvbm9yaWVudGF0aW9uY2hhbmdlKCkg
Y29uc3QKK3sKKyAgICByZXR1cm4gZ2V0QXR0cmlidXRlRXZlbnRMaXN0ZW5lcihldmVudE5hbWVz
KCkub3JpZW50YXRpb25jaGFuZ2VFdmVudCk7Cit9CisKK3ZvaWQgRE9NV2luZG93OjpzZXRPbm9y
aWVudGF0aW9uY2hhbmdlKFBhc3NSZWZQdHI8RXZlbnRMaXN0ZW5lcj4gZXZlbnRMaXN0ZW5lcikK
K3sKKyAgICBzZXRBdHRyaWJ1dGVFdmVudExpc3RlbmVyKGV2ZW50TmFtZXMoKS5vcmllbnRhdGlv
bmNoYW5nZUV2ZW50LCBldmVudExpc3RlbmVyKTsKK30KKyNlbmRpZgorCiB2b2lkIERPTVdpbmRv
dzo6Y2FwdHVyZUV2ZW50cygpCiB7CiAgICAgLy8gTm90IGltcGxlbWVudGVkLgpkaWZmIC0tZ2l0
IGEvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5oIGIvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5oCmlu
ZGV4IGRiNGVkZGEuLjJhZTdmMjkgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cu
aAorKysgYi9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmgKQEAgLTg1LDYgKzg1LDEwIEBAIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAogICAgICAgICB2b2lkIGNsZWFyKCk7CiAKKyNpZiBFTkFCTEUoT1JJ
RU5UQVRJT05fRVZFTlRTKQorICAgICAgICBpbnQgb3JpZW50YXRpb24oKSBjb25zdDsKKyNlbmRp
ZgorICAgICAgICAKICAgICAgICAgdm9pZCBzZXRTZWN1cml0eU9yaWdpbihTZWN1cml0eU9yaWdp
biogc2VjdXJpdHlPcmlnaW4pIHsgbV9zZWN1cml0eU9yaWdpbiA9IHNlY3VyaXR5T3JpZ2luOyB9
CiAgICAgICAgIFNlY3VyaXR5T3JpZ2luKiBzZWN1cml0eU9yaWdpbigpIGNvbnN0IHsgcmV0dXJu
IG1fc2VjdXJpdHlPcmlnaW4uZ2V0KCk7IH0KIApAQCAtMzgzLDcgKzM4NywxMSBAQCBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAgICAgICAgIHZvaWQgc2V0T25jb250ZXh0bWVudShQYXNzUmVmUHRyPEV2
ZW50TGlzdGVuZXI+KTsKICAgICAgICAgRXZlbnRMaXN0ZW5lciogb25pbnZhbGlkKCkgY29uc3Q7
CiAgICAgICAgIHZvaWQgc2V0T25pbnZhbGlkKFBhc3NSZWZQdHI8RXZlbnRMaXN0ZW5lcj4pOwot
CisjaWYgRU5BQkxFKE9SSUVOVEFUSU9OX0VWRU5UUykKKyAgICAgICAgRXZlbnRMaXN0ZW5lciog
b25vcmllbnRhdGlvbmNoYW5nZSgpIGNvbnN0OworICAgICAgICB2b2lkIHNldE9ub3JpZW50YXRp
b25jaGFuZ2UoUGFzc1JlZlB0cjxFdmVudExpc3RlbmVyPik7CisjZW5kaWYKKyAgICAgICAgCiAg
ICAgICAgIHZvaWQgY2FwdHVyZUV2ZW50cygpOwogICAgICAgICB2b2lkIHJlbGVhc2VFdmVudHMo
KTsKIApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5pZGwgYi9XZWJDb3JlL3Bh
Z2UvRE9NV2luZG93LmlkbAppbmRleCA4NzVmNGVhLi4wZDQ5MmJjIDEwMDY0NAotLS0gYS9XZWJD
b3JlL3BhZ2UvRE9NV2luZG93LmlkbAorKysgYi9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmlkbApA
QCAtMTcwLDYgKzE3MCwxMCBAQCBtb2R1bGUgd2luZG93IHsKICAgICAgICAgcmVhZG9ubHkgYXR0
cmlidXRlIE5vdGlmaWNhdGlvbkNlbnRlciB3ZWJraXROb3RpZmljYXRpb25zOwogI2VuZGlmCiAK
KyNpZiBkZWZpbmVkKEVOQUJMRV9PUklFTlRBVElPTl9FVkVOVFMpICYmIEVOQUJMRV9PUklFTlRB
VElPTl9FVkVOVFMKKyAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIGxvbmcgb3JpZW50YXRpb247
CisjZW5kaWYKKwogICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgW1JlcGxhY2VhYmxlXSBDb25z
b2xlIGNvbnNvbGU7CiAKICAgICAgICAgLy8gY3Jvc3MtZG9jdW1lbnQgbWVzc2FnaW5nCkBAIC0y
NzgsNiArMjgyLDkgQEAgbW9kdWxlIHdpbmRvdyB7CiAgICAgICAgIGF0dHJpYnV0ZSBFdmVudExp
c3RlbmVyIG9ud2Via2l0YW5pbWF0aW9uaXRlcmF0aW9uOwogICAgICAgICBhdHRyaWJ1dGUgRXZl
bnRMaXN0ZW5lciBvbndlYmtpdGFuaW1hdGlvbnN0YXJ0OwogICAgICAgICBhdHRyaWJ1dGUgRXZl
bnRMaXN0ZW5lciBvbndlYmtpdHRyYW5zaXRpb25lbmQ7CisjaWYgZGVmaW5lZChFTkFCTEVfT1JJ
RU5UQVRJT05fRVZFTlRTKSAmJiBFTkFCTEVfT1JJRU5UQVRJT05fRVZFTlRTCisgICAgICAgIGF0
dHJpYnV0ZSBFdmVudExpc3RlbmVyIG9ub3JpZW50YXRpb25jaGFuZ2U7CisjZW5kaWYKIAogICAg
ICAgICAvLyBFdmVudFRhcmdldCBpbnRlcmZhY2UKICAgICAgICAgW0N1c3RvbV0gdm9pZCBhZGRF
dmVudExpc3RlbmVyKGluIERPTVN0cmluZyB0eXBlLApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wYWdl
L0ZyYW1lLmNwcCBiL1dlYkNvcmUvcGFnZS9GcmFtZS5jcHAKaW5kZXggN2EzZWQyNy4uNGMzYzJm
OCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wYWdlL0ZyYW1lLmNwcAorKysgYi9XZWJDb3JlL3BhZ2Uv
RnJhbWUuY3BwCkBAIC0xMjcsNiArMTI3LDkgQEAgRnJhbWU6OkZyYW1lKFBhZ2UqIHBhZ2UsIEhU
TUxGcmFtZU93bmVyRWxlbWVudCogb3duZXJFbGVtZW50LCBGcmFtZUxvYWRlckNsaWVudCoKICAg
ICAsIG1fZXZlbnRIYW5kbGVyKHRoaXMpCiAgICAgLCBtX2FuaW1hdGlvbkNvbnRyb2xsZXIodGhp
cykKICAgICAsIG1fbGlmZVN1cHBvcnRUaW1lcih0aGlzLCAmRnJhbWU6OmxpZmVTdXBwb3J0VGlt
ZXJGaXJlZCkKKyNpZiBFTkFCTEUoT1JJRU5UQVRJT05fRVZFTlRTKQorICAgICwgbV9vcmllbnRh
dGlvbigwKQorI2VuZGlmCiAgICAgLCBtX2NhcmV0VmlzaWJsZShmYWxzZSkKICAgICAsIG1fY2Fy
ZXRQYWludCh0cnVlKQogICAgICwgbV9oaWdobGlnaHRUZXh0TWF0Y2hlcyhmYWxzZSkKZGlmZiAt
LWdpdCBhL1dlYkNvcmUvcGFnZS9GcmFtZS5oIGIvV2ViQ29yZS9wYWdlL0ZyYW1lLmgKaW5kZXgg
ZWY4MDNmMS4uYTQ1Y2VjNyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wYWdlL0ZyYW1lLmgKKysrIGIv
V2ViQ29yZS9wYWdlL0ZyYW1lLmgKQEAgLTE1Myw2ICsxNTMsMTEgQEAgbmFtZXNwYWNlIFdlYkNv
cmUgewogCiAgICAgICAgIHZvaWQgc2V0RG9jdW1lbnQoUGFzc1JlZlB0cjxEb2N1bWVudD4pOwog
CisjaWYgRU5BQkxFKE9SSUVOVEFUSU9OX0VWRU5UUykKKyAgICAgICAgdm9pZCBzZW5kT3JpZW50
YXRpb25DaGFuZ2VFdmVudChpbnQgb3JpZW50YXRpb24pOworICAgICAgICBpbnQgb3JpZW50YXRp
b24oKSBjb25zdDsKKyNlbmRpZgorCiAgICAgICAgIHZvaWQgY2xlYXJUaW1lcnMoKTsKICAgICAg
ICAgc3RhdGljIHZvaWQgY2xlYXJUaW1lcnMoRnJhbWVWaWV3KiwgRG9jdW1lbnQqKTsKIApAQCAt
MzU0LDYgKzM1OSwxMCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICAgICAgICAgVGltZXI8RnJh
bWU+IG1fbGlmZVN1cHBvcnRUaW1lcjsKIAorI2lmIEVOQUJMRShPUklFTlRBVElPTl9FVkVOVFMp
CisgICAgICAgIGludCBtX29yaWVudGF0aW9uOworI2VuZGlmCisgICAgICAgIAogICAgICAgICBi
b29sIG1fY2FyZXRWaXNpYmxlOwogICAgICAgICBib29sIG1fY2FyZXRQYWludDsKIAotLSAKMS42
LjIKCg==
</data>
<flag name="review"
          id="20931"
          type_id="1"
          status="-"
          setter="sam"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>39863</attachid>
            <date>2009-09-21 12:11:47 -0700</date>
            <delta_ts>2009-09-21 13:13:38 -0700</delta_ts>
            <desc>address Sam&apos;s review comments</desc>
            <filename>0001-JavaScriptCore-Add-ENABLE-ORIENTATION_EVENTS.patch</filename>
            <type>text/plain</type>
            <size>22494</size>
            <attacher name="Greg Bolsinga">bolsinga</attacher>
            
              <data encoding="base64">RnJvbSA2ODM3NDI4ODVkNjYyMjU5MDkyMzQ1ZGJhM2E3ZDlmMWIyY2MwMWU4IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBHcmVnIEJvbHNpbmdhIDxib2xzaW5nYUBhcHBsZS5jb20+CkRh
dGU6IE1vbiwgMjEgU2VwIDIwMDkgMTI6MTA6NDggLTA3MDAKU3ViamVjdDogW1BBVENIXSBKYXZh
U2NyaXB0Q29yZTogQWRkIEVOQUJMRShPUklFTlRBVElPTl9FVkVOVFMpCiBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Mjk1MDgKClJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgoKKiB3dGYvUGxhdGZvcm0uaDogQWxzbyBzb3J0IFBMQVRGT1JNKElQSE9ORSkgI2RlZmlu
ZXMuCgpXZWJDb3JlOiBBZGQgRU5BQkxFKE9SSUVOVEFUSU9OX0VWRU5UUykKaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI5NTA4CgpSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KClNlZSBkb2N1bWVudGF0aW9uIGhlcmU6Cmh0dHA6Ly9kZXZlbG9wZXIuYXBwbGUuY29t
L3NhZmFyaS9saWJyYXJ5L2RvY3VtZW50YXRpb24vQXBwbGVBcHBsaWNhdGlvbnMvUmVmZXJlbmNl
L1NhZmFyaVdlYkNvbnRlbnQvSGFuZGxpbmdFdmVudHMvSGFuZGxpbmdFdmVudHMuaHRtbCMvL2Fw
cGxlX3JlZi9kb2MvdWlkL1RQNDAwMDY1MTEtU1cxNgoKTm8gbmV3IHRlc3RzLiAoT09QUyEpCgoq
IERlcml2ZWRTb3VyY2VzLm1ha2U6IFVzZSBuZXcgV2ViQ29yZS5PcmllbnRhdGlvbkV2ZW50cy5l
eHAgZmlsZSBpZiBFTkFCTEVfT1JJRU5UQVRJT05fRVZFTlRTLgpBZGQgRU5BQkxFX09SSUVOVEFU
SU9OX0VWRU5UUyB0byB0aGUgbmV3IEFERElUSU9OQUxfSURMX0RFRklORVMgdmFyaWFibGUgdGhh
dCBpcyBwYXNzZWQgdG8gdGhlIElETApjb2RlIGdlbmVyYXRvci4gVGhpcyBpcyBiZWNhdXNlIEVO
QUJMRV9PUklFTlRBVElPTl9FVkVOVFMgaXMgbm90IGluIEZFQVRVUkVfREVGSU5FUy4KKiBXZWJD
b3JlLk9yaWVudGF0aW9uRXZlbnRzLmV4cDogQWRkZWQuCiogV2ViQ29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qOiBBZGQgV2ViQ29yZS5PcmllbnRhdGlvbkV2ZW50cy5leHAuCiogaHRtbC9I
VE1MQm9keUVsZW1lbnQuY3BwOiBIYW5kbGUgb25vcmllbnRhdGlvbmNoYW5nZSBwcm9wZXJseS4K
KFdlYkNvcmU6OkhUTUxCb2R5RWxlbWVudDo6cGFyc2VNYXBwZWRBdHRyaWJ1dGUpOgooV2ViQ29y
ZTo6SFRNTEJvZHlFbGVtZW50Ojpvbm9yaWVudGF0aW9uY2hhbmdlKToKKFdlYkNvcmU6OkhUTUxC
b2R5RWxlbWVudDo6c2V0T25vcmllbnRhdGlvbmNoYW5nZSk6CiogaHRtbC9IVE1MQm9keUVsZW1l
bnQuaDogRGl0dG8uCiogaHRtbC9IVE1MQm9keUVsZW1lbnQuaWRsOiBEaXR0by4KKiBodG1sL0hU
TUxGcmFtZVNldEVsZW1lbnQuY3BwOiBEaXR0by4KKFdlYkNvcmU6OkhUTUxGcmFtZVNldEVsZW1l
bnQ6OnBhcnNlTWFwcGVkQXR0cmlidXRlKToKKFdlYkNvcmU6OkhUTUxGcmFtZVNldEVsZW1lbnQ6
Om9ub3JpZW50YXRpb25jaGFuZ2UpOgooV2ViQ29yZTo6SFRNTEZyYW1lU2V0RWxlbWVudDo6c2V0
T25vcmllbnRhdGlvbmNoYW5nZSk6CiogaHRtbC9IVE1MRnJhbWVTZXRFbGVtZW50Lmg6IERpdHRv
LgoqIGh0bWwvSFRNTEZyYW1lU2V0RWxlbWVudC5pZGw6IERpdHRvLgoqIHBhZ2UvRE9NV2luZG93
LmNwcDogRGl0dG8uCihXZWJDb3JlOjpET01XaW5kb3c6Om9yaWVudGF0aW9uKTogQ2FsbHMgdXAg
dGhlIHRvIHRoZSBGcmFtZSBmb3IgdGhlIG9yaWVudGF0aW9uIHZhbHVlLgooV2ViQ29yZTo6RE9N
V2luZG93Ojpvbm9yaWVudGF0aW9uY2hhbmdlKToKKFdlYkNvcmU6OkRPTVdpbmRvdzo6c2V0T25v
cmllbnRhdGlvbmNoYW5nZSk6CiogcGFnZS9ET01XaW5kb3cuaDogSGFuZGxlIG9ub3JpZW50YXRp
b25jaGFuZ2UgcHJvcGVybHkuCiogcGFnZS9ET01XaW5kb3cuaWRsOiBEaXR0by4KKiBwYWdlL0Zy
YW1lLmNwcDogRGl0dG8uCihXZWJDb3JlOjpGcmFtZTo6RnJhbWUpOgooV2ViQ29yZTo6c2VuZE9y
aWVudGF0aW9uQ2hhbmdlRXZlbnQpOgoqIHBhZ2UvRnJhbWUuaDogRGl0dG8uCihXZWJDb3JlOjpG
cmFtZTo6b3JpZW50YXRpb24pOgotLS0KIEphdmFTY3JpcHRDb3JlL0NoYW5nZUxvZyAgICAgICAg
ICAgICAgICAgIHwgICAgOSArKysrKysKIEphdmFTY3JpcHRDb3JlL3d0Zi9QbGF0Zm9ybS5oICAg
ICAgICAgICAgIHwgICAxNSArKysrKysrLS0tCiBXZWJDb3JlL0NoYW5nZUxvZyAgICAgICAgICAg
ICAgICAgICAgICAgICB8ICAgNDEgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKIFdlYkNv
cmUvRGVyaXZlZFNvdXJjZXMubWFrZSAgICAgICAgICAgICAgIHwgICAxNyArKysrKysrKysrLQog
V2ViQ29yZS9XZWJDb3JlLk9yaWVudGF0aW9uRXZlbnRzLmV4cCAgICAgfCAgICAxICsKIFdlYkNv
cmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIHwgICAgMiArCiBXZWJDb3JlL2h0
bWwvSFRNTEJvZHlFbGVtZW50LmNwcCAgICAgICAgICB8ICAgMTYgKysrKysrKysrKysKIFdlYkNv
cmUvaHRtbC9IVE1MQm9keUVsZW1lbnQuaCAgICAgICAgICAgIHwgICAgNCArKysKIFdlYkNvcmUv
aHRtbC9IVE1MQm9keUVsZW1lbnQuaWRsICAgICAgICAgIHwgICAgNCArKysKIFdlYkNvcmUvaHRt
bC9IVE1MRnJhbWVTZXRFbGVtZW50LmNwcCAgICAgIHwgICAxNiArKysrKysrKysrKwogV2ViQ29y
ZS9odG1sL0hUTUxGcmFtZVNldEVsZW1lbnQuaCAgICAgICAgfCAgICA0ICsrKwogV2ViQ29yZS9o
dG1sL0hUTUxGcmFtZVNldEVsZW1lbnQuaWRsICAgICAgfCAgICA0ICsrKwogV2ViQ29yZS9wYWdl
L0RPTVdpbmRvdy5jcHAgICAgICAgICAgICAgICAgfCAgIDIyICsrKysrKysrKysrKysrKwogV2Vi
Q29yZS9wYWdlL0RPTVdpbmRvdy5oICAgICAgICAgICAgICAgICAgfCAgICA4ICsrKysrCiBXZWJD
b3JlL3BhZ2UvRE9NV2luZG93LmlkbCAgICAgICAgICAgICAgICB8ICAgIDcgKysrKysKIFdlYkNv
cmUvcGFnZS9GcmFtZS5jcHAgICAgICAgICAgICAgICAgICAgIHwgICAxMiArKysrKysrKwogV2Vi
Q29yZS9wYWdlL0ZyYW1lLmggICAgICAgICAgICAgICAgICAgICAgfCAgICA5ICsrKysrKwogMTcg
ZmlsZXMgY2hhbmdlZCwgMTg0IGluc2VydGlvbnMoKyksIDcgZGVsZXRpb25zKC0pCiBjcmVhdGUg
bW9kZSAxMDA2NDQgV2ViQ29yZS9XZWJDb3JlLk9yaWVudGF0aW9uRXZlbnRzLmV4cAoKZGlmZiAt
LWdpdCBhL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZyBiL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxv
ZwppbmRleCA0MmRmNmU2Li45ZDUxZjIyIDEwMDY0NAotLS0gYS9KYXZhU2NyaXB0Q29yZS9DaGFu
Z2VMb2cKKysrIGIvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIw
MDktMDktMjEgIEdyZWcgQm9sc2luZ2EgIDxib2xzaW5nYUBhcHBsZS5jb20+CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIEVOQUJMRShPUklFTlRB
VElPTl9FVkVOVFMpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yOTUwOAorCisgICAgICAgICogd3RmL1BsYXRmb3JtLmg6IEFsc28gc29ydCBQTEFURk9S
TShJUEhPTkUpICNkZWZpbmVzLgorCiAyMDA5LTA5LTE4ICBHYWJvciBMb2tpICA8bG9raUBpbmYu
dS1zemVnZWQuaHU+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgR2F2aW4gQmFycmFjbG91Z2guCmRp
ZmYgLS1naXQgYS9KYXZhU2NyaXB0Q29yZS93dGYvUGxhdGZvcm0uaCBiL0phdmFTY3JpcHRDb3Jl
L3d0Zi9QbGF0Zm9ybS5oCmluZGV4IDI4OTRkNDMuLjdkZGZjOTUgMTAwNjQ0Ci0tLSBhL0phdmFT
Y3JpcHRDb3JlL3d0Zi9QbGF0Zm9ybS5oCisrKyBiL0phdmFTY3JpcHRDb3JlL3d0Zi9QbGF0Zm9y
bS5oCkBAIC00MjMsMTggKzQyMywxOSBAQAogI2VuZGlmCiAKICNpZiBQTEFURk9STShJUEhPTkUp
Ci0jZGVmaW5lIFdURl9QTEFURk9STV9DRiAxCi0jZGVmaW5lIFdURl9VU0VfUFRIUkVBRFMgMQog
I2RlZmluZSBFTkFCTEVfQ09OVEVYVF9NRU5VUyAwCiAjZGVmaW5lIEVOQUJMRV9EUkFHX1NVUFBP
UlQgMAogI2RlZmluZSBFTkFCTEVfRlRQRElSIDEKKyNkZWZpbmUgRU5BQkxFX0dFT0xPQ0FUSU9O
IDEKKyNkZWZpbmUgRU5BQkxFX0lDT05EQVRBQkFTRSAwCiAjZGVmaW5lIEVOQUJMRV9JTlNQRUNU
T1IgMAogI2RlZmluZSBFTkFCTEVfTUFDX0pBVkFfQlJJREdFIDAKLSNkZWZpbmUgRU5BQkxFX0lD
T05EQVRBQkFTRSAwCi0jZGVmaW5lIEVOQUJMRV9HRU9MT0NBVElPTiAxCiAjZGVmaW5lIEVOQUJM
RV9ORVRTQ0FQRV9QTFVHSU5fQVBJIDAKLSNkZWZpbmUgSEFWRV9SRUFETElORSAxCisjZGVmaW5l
IEVOQUJMRV9PUklFTlRBVElPTl9FVkVOVFMgMQogI2RlZmluZSBFTkFCTEVfUkVQQUlOVF9USFJP
VFRMSU5HIDEKKyNkZWZpbmUgSEFWRV9SRUFETElORSAxCisjZGVmaW5lIFdURl9QTEFURk9STV9D
RiAxCisjZGVmaW5lIFdURl9VU0VfUFRIUkVBRFMgMQogI2VuZGlmCiAKICNpZiBQTEFURk9STShX
SU4pCkBAIC01OTQsNiArNTk1LDEwIEBACiAjZGVmaW5lIEVOQUJMRV9ORVRTQ0FQRV9QTFVHSU5f
QVBJIDEKICNlbmRpZgogCisjaWYgIWRlZmluZWQoRU5BQkxFX09SSUVOVEFUSU9OX0VWRU5UUykK
KyNkZWZpbmUgRU5BQkxFX09SSUVOVEFUSU9OX0VWRU5UUyAwCisjZW5kaWYKKwogI2lmICFkZWZp
bmVkKEVOQUJMRV9PUENPREVfU1RBVFMpCiAjZGVmaW5lIEVOQUJMRV9PUENPREVfU1RBVFMgMAog
I2VuZGlmCmRpZmYgLS1naXQgYS9XZWJDb3JlL0NoYW5nZUxvZyBiL1dlYkNvcmUvQ2hhbmdlTG9n
CmluZGV4IGFlZjE5Y2MuLjliNDk5OTAgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvQ2hhbmdlTG9nCisr
KyBiL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDQgQEAKKzIwMDktMDktMjEgIEdyZWcg
Qm9sc2luZ2EgIDxib2xzaW5nYUBhcHBsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIEVOQUJMRShPUklFTlRBVElPTl9FVkVOVFMpCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yOTUwOAorICAg
ICAgICAKKyAgICAgICAgU2VlIGRvY3VtZW50YXRpb24gaGVyZToKKyAgICAgICAgaHR0cDovL2Rl
dmVsb3Blci5hcHBsZS5jb20vc2FmYXJpL2xpYnJhcnkvZG9jdW1lbnRhdGlvbi9BcHBsZUFwcGxp
Y2F0aW9ucy9SZWZlcmVuY2UvU2FmYXJpV2ViQ29udGVudC9IYW5kbGluZ0V2ZW50cy9IYW5kbGlu
Z0V2ZW50cy5odG1sIy8vYXBwbGVfcmVmL2RvYy91aWQvVFA0MDAwNjUxMS1TVzE2CisKKyAgICAg
ICAgTm8gbmV3IHRlc3RzLiAoT09QUyEpCisKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy5tYWtl
OiBVc2UgbmV3IFdlYkNvcmUuT3JpZW50YXRpb25FdmVudHMuZXhwIGZpbGUgaWYgRU5BQkxFX09S
SUVOVEFUSU9OX0VWRU5UUy4KKyAgICAgICAgQWRkIEVOQUJMRV9PUklFTlRBVElPTl9FVkVOVFMg
dG8gdGhlIG5ldyBBRERJVElPTkFMX0lETF9ERUZJTkVTIHZhcmlhYmxlIHRoYXQgaXMgcGFzc2Vk
IHRvIHRoZSBJREwKKyAgICAgICAgY29kZSBnZW5lcmF0b3IuIFRoaXMgaXMgYmVjYXVzZSBFTkFC
TEVfT1JJRU5UQVRJT05fRVZFTlRTIGlzIG5vdCBpbiBGRUFUVVJFX0RFRklORVMuCisgICAgICAg
ICogV2ViQ29yZS5PcmllbnRhdGlvbkV2ZW50cy5leHA6IEFkZGVkLgorICAgICAgICAqIFdlYkNv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajogQWRkIFdlYkNvcmUuT3JpZW50YXRpb25FdmVu
dHMuZXhwLgorICAgICAgICAqIGh0bWwvSFRNTEJvZHlFbGVtZW50LmNwcDogSGFuZGxlIG9ub3Jp
ZW50YXRpb25jaGFuZ2UgcHJvcGVybHkuCisgICAgICAgIChXZWJDb3JlOjpIVE1MQm9keUVsZW1l
bnQ6OnBhcnNlTWFwcGVkQXR0cmlidXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxCb2R5RWxl
bWVudDo6b25vcmllbnRhdGlvbmNoYW5nZSk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MQm9keUVs
ZW1lbnQ6OnNldE9ub3JpZW50YXRpb25jaGFuZ2UpOgorICAgICAgICAqIGh0bWwvSFRNTEJvZHlF
bGVtZW50Lmg6IERpdHRvLgorICAgICAgICAqIGh0bWwvSFRNTEJvZHlFbGVtZW50LmlkbDogRGl0
dG8uCisgICAgICAgICogaHRtbC9IVE1MRnJhbWVTZXRFbGVtZW50LmNwcDogRGl0dG8uCisgICAg
ICAgIChXZWJDb3JlOjpIVE1MRnJhbWVTZXRFbGVtZW50OjpwYXJzZU1hcHBlZEF0dHJpYnV0ZSk6
CisgICAgICAgIChXZWJDb3JlOjpIVE1MRnJhbWVTZXRFbGVtZW50Ojpvbm9yaWVudGF0aW9uY2hh
bmdlKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxGcmFtZVNldEVsZW1lbnQ6OnNldE9ub3JpZW50
YXRpb25jaGFuZ2UpOgorICAgICAgICAqIGh0bWwvSFRNTEZyYW1lU2V0RWxlbWVudC5oOiBEaXR0
by4KKyAgICAgICAgKiBodG1sL0hUTUxGcmFtZVNldEVsZW1lbnQuaWRsOiBEaXR0by4KKyAgICAg
ICAgKiBwYWdlL0RPTVdpbmRvdy5jcHA6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6RE9NV2lu
ZG93OjpvcmllbnRhdGlvbik6IENhbGxzIHVwIHRoZSB0byB0aGUgRnJhbWUgZm9yIHRoZSBvcmll
bnRhdGlvbiB2YWx1ZS4KKyAgICAgICAgKFdlYkNvcmU6OkRPTVdpbmRvdzo6b25vcmllbnRhdGlv
bmNoYW5nZSk6CisgICAgICAgIChXZWJDb3JlOjpET01XaW5kb3c6OnNldE9ub3JpZW50YXRpb25j
aGFuZ2UpOgorICAgICAgICAqIHBhZ2UvRE9NV2luZG93Lmg6IEhhbmRsZSBvbm9yaWVudGF0aW9u
Y2hhbmdlIHByb3Blcmx5LgorICAgICAgICAqIHBhZ2UvRE9NV2luZG93LmlkbDogRGl0dG8uCisg
ICAgICAgICogcGFnZS9GcmFtZS5jcHA6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6RnJhbWU6
OkZyYW1lKToKKyAgICAgICAgKFdlYkNvcmU6OnNlbmRPcmllbnRhdGlvbkNoYW5nZUV2ZW50KToK
KyAgICAgICAgKiBwYWdlL0ZyYW1lLmg6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6RnJhbWU6
Om9yaWVudGF0aW9uKToKKwogMjAwOS0wOS0xOCAgQW5kZXJzIENhcmxzc29uICA8YW5kZXJzY2FA
YXBwbGUuY29tPgogCiAgICAgICAgIFRyeSBmaXhpbmcgdGhlIGJ1aWxkIGFnYWluLgpkaWZmIC0t
Z2l0IGEvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlIGIvV2ViQ29yZS9EZXJpdmVkU291cmNl
cy5tYWtlCmluZGV4IGQ4MmQ0NDkuLmFmNWExNjYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvRGVyaXZl
ZFNvdXJjZXMubWFrZQorKysgYi9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKQEAgLTQ0Nyw2
ICs0NDcsOCBAQCBhbGwgOiBcCiAKICMgLS0tLS0tLS0KIAorQURESVRJT05BTF9JRExfREVGSU5F
UyA6PQorCiBpZmVxICgkKE9TKSxNQUNPUykKIAogRlJBTUVXT1JLX0ZMQUdTID0gJChzaGVsbCBl
Y2hvICQoRlJBTUVXT1JLX1NFQVJDSF9QQVRIUykgfCBwZXJsIC1lICdwcmludCAiLUYgIiAuIGpv
aW4oIiAtRiAiLCBzcGxpdCgiICIsIDw+KSk7JykKQEAgLTQ4MSw2ICs0ODMsMTMgQEAgZWxzZQog
ICAgIEVOQUJMRV9JTlNQRUNUT1IgPSAwCiBlbmRpZgogCitpZmVxICgkKHNoZWxsIGdjYyAtaXN5
c3Jvb3QgJChTREtST09UKSAtRSAtUCAtZE0gLUYgJChCVUlMVF9QUk9EVUNUU19ESVIpICQoRlJB
TUVXT1JLX0ZMQUdTKSBXZWJDb3JlL0ZvcndhcmRpbmdIZWFkZXJzL3d0Zi9QbGF0Zm9ybS5oIHwg
Z3JlcCBFTkFCTEVfT1JJRU5UQVRJT05fRVZFTlRTIHwgY3V0IC1kJyAnIC1mMyksIDEpCisgICAg
RU5BQkxFX09SSUVOVEFUSU9OX0VWRU5UUyA9IDEKKyAgICBBRERJVElPTkFMX0lETF9ERUZJTkVT
IDo9ICQoQURESVRJT05BTF9JRExfREVGSU5FUykgRU5BQkxFX09SSUVOVEFUSU9OX0VWRU5UUwor
ZWxzZQorICAgIEVOQUJMRV9PUklFTlRBVElPTl9FVkVOVFMgPSAwCitlbmRpZgorCiAjIENTUyBw
cm9wZXJ0eSBuYW1lcyBhbmQgdmFsdWUga2V5d29yZHMKIAogV0VCQ09SRV9DU1NfUFJPUEVSVFlf
TkFNRVMgOj0gJChXZWJDb3JlKS9jc3MvQ1NTUHJvcGVydHlOYW1lcy5pbgpAQCAtNzM5LDcgKzc0
OCw3IEBAIEdFTkVSQVRFX0JJTkRJTkdTX1NDUklQVFMgPSBcCiAjCiAKIEpTJS5oIDogJS5pZGwg
JChHRU5FUkFURV9CSU5ESU5HU19TQ1JJUFRTKSBiaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0
b3JKUy5wbQotCSQoR0VORVJBVEVfQklORElOR1MpIC0tZGVmaW5lcyAiJChGRUFUVVJFX0RFRklO
RVMpIExBTkdVQUdFX0pBVkFTQ1JJUFQiIC0tZ2VuZXJhdG9yIEpTICQ8CisJJChHRU5FUkFURV9C
SU5ESU5HUykgLS1kZWZpbmVzICIkKEZFQVRVUkVfREVGSU5FUykgJChBRERJVElPTkFMX0lETF9E
RUZJTkVTKSBMQU5HVUFHRV9KQVZBU0NSSVBUIiAtLWdlbmVyYXRvciBKUyAkPAogCiAtaW5jbHVk
ZSAkKEpTX0RPTV9IRUFERVJTOi5oPS5kZXApCiAKQEAgLTc5MSw2ICs4MDAsMTAgQEAgaWZlcSAo
JChFTkFCTEVfSU5TUEVDVE9SKSwgMSkKICAgICBXRUJDT1JFX0VYUE9SVF9ERVBFTkRFTkNJRVMg
Oj0gJChXRUJDT1JFX0VYUE9SVF9ERVBFTkRFTkNJRVMpIFdlYkNvcmUuSW5zcGVjdG9yLmV4cAog
ZW5kaWYKIAoraWZlcSAoJChFTkFCTEVfT1JJRU5UQVRJT05fRVZFTlRTKSwgMSkKKyAgICBXRUJD
T1JFX0VYUE9SVF9ERVBFTkRFTkNJRVMgOj0gJChXRUJDT1JFX0VYUE9SVF9ERVBFTkRFTkNJRVMp
IFdlYkNvcmUuT3JpZW50YXRpb25FdmVudHMuZXhwCitlbmRpZgorCiBpZmVxICgkKGZpbmRzdHJp
bmcgMTAuNCwkKE1BQ09TWF9ERVBMT1lNRU5UX1RBUkdFVCkpLCAxMC40KQogICAgIFdFQkNPUkVf
RVhQT1JUX0RFUEVOREVOQ0lFUyA6PSAkKFdFQkNPUkVfRVhQT1JUX0RFUEVOREVOQ0lFUykgV2Vi
Q29yZS5UaWdlci5leHAKIGVuZGlmCkBAIC04MDcsNyArODIwLDcgQEAgV2ViQ29yZS5leHAgOiBX
ZWJDb3JlLmJhc2UuZXhwICQoV0VCQ09SRV9FWFBPUlRfREVQRU5ERU5DSUVTKQogIyBPYmplY3Rp
dmUtQyBiaW5kaW5ncwogCiBET00lLmggOiAlLmlkbCAkKEdFTkVSQVRFX0JJTkRJTkdTX1NDUklQ
VFMpIGJpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvck9iakMucG0gYmluZGluZ3Mvb2JqYy9Q
dWJsaWNET01JbnRlcmZhY2VzLmgKLQkkKEdFTkVSQVRFX0JJTkRJTkdTKSAtLWRlZmluZXMgIiQo
RkVBVFVSRV9ERUZJTkVTKSBMQU5HVUFHRV9PQkpFQ1RJVkVfQyIgLS1nZW5lcmF0b3IgT2JqQyAk
PAorCSQoR0VORVJBVEVfQklORElOR1MpIC0tZGVmaW5lcyAiJChGRUFUVVJFX0RFRklORVMpICQo
QURESVRJT05BTF9JRExfREVGSU5FUykgTEFOR1VBR0VfT0JKRUNUSVZFX0MiIC0tZ2VuZXJhdG9y
IE9iakMgJDwKIAogLWluY2x1ZGUgJChPQkpDX0RPTV9IRUFERVJTOi5oPS5kZXApCiAKZGlmZiAt
LWdpdCBhL1dlYkNvcmUvV2ViQ29yZS5PcmllbnRhdGlvbkV2ZW50cy5leHAgYi9XZWJDb3JlL1dl
YkNvcmUuT3JpZW50YXRpb25FdmVudHMuZXhwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAuLmVjMDk3OGQKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJDb3JlL1dlYkNvcmUuT3JpZW50
YXRpb25FdmVudHMuZXhwCkBAIC0wLDAgKzEgQEAKK19fWk43V2ViQ29yZTVGcmFtZTI2c2VuZE9y
aWVudGF0aW9uQ2hhbmdlRXZlbnRFaQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9XZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2ogYi9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagppbmRleCA1YjE1MWJkLi42ZWFlNmM0IDEwMDY0NAotLS0gYS9XZWJDb3JlL1dlYkNv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9XZWJDb3JlL1dlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagpAQCAtOTgxMyw2ICs5ODEzLDcgQEAKIAkJRjkxNkM0OEMwREI1
MTBGODAwNzZDRDgzIC8qIEpTWE1MSHR0cFJlcXVlc3RQcm9ncmVzc0V2ZW50LmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU1hNTEh0dHBSZXF1ZXN0UHJvZ3Jlc3NFdmVudC5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGOUYwRUQ3NzBEQjUwQ0EyMDBEMTZEQjkg
LyogWE1MSHR0cFJlcXVlc3RQcm9ncmVzc0V2ZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBYTUxIdHRwUmVxdWVzdFByb2dyZXNzRXZlbnQuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJRjlGMEVENzgwREI1MENBMjAwRDE2REI5IC8qIFhNTEh0dHBSZXF1ZXN0
UHJvZ3Jlc3NFdmVudC5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFhNTEh0dHBSZXF1ZXN0
UHJvZ3Jlc3NFdmVudC5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUZFMTM2QUU3
MTA2NDNCRTUwMDc4Q0Y2RCAvKiBXZWJDb3JlLk9yaWVudGF0aW9uRXZlbnRzLmV4cCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuZXhwb3J0czsgcGF0aCA9IFdlYkNvcmUuT3JpZW50YXRpb25FdmVudHMu
ZXhwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGRTQ5QkQzMDEwNjE3MTkxMDBEMEUx
QUUgLyogV2ViQ29yZS5JbnNwZWN0b3IuZXhwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5leHBvcnRz
OyBwYXRoID0gV2ViQ29yZS5JbnNwZWN0b3IuZXhwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQlGRTQ5RUY5NzBEQzUxNDYyMDA0MjY2RTEgLyogRGFzaGJvYXJkU3VwcG9ydENTU1Byb3Bl
cnR5TmFtZXMuaW4gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gRGFzaGJvYXJkU3VwcG9ydENTU1By
b3BlcnR5TmFtZXMuaW47IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUZFNkZENDg1MEY2
NzZFNTcwMDA5Mjg3MyAvKiBDb29yZGluYXRlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBDb29yZGluYXRlcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTA0
NDgsNiArMTA0NDksNyBAQAogCQkJCTQ0OTE5NTlDMEZCRTE3RDcwMEQ5RjgyNCAvKiBXZWJDb3Jl
LkpOSS5leHAgKi8sCiAJCQkJNDQ5MTk1OUIwRkJFMTdENzAwRDlGODI0IC8qIFdlYkNvcmUuTFA2
NC5leHAgKi8sCiAJCQkJNDQ5MTk1OUEwRkJFMTdENzAwRDlGODI0IC8qIFdlYkNvcmUuTlBBUEku
ZXhwICovLAorCQkJCUZFMTM2QUU3MTA2NDNCRTUwMDc4Q0Y2RCAvKiBXZWJDb3JlLk9yaWVudGF0
aW9uRXZlbnRzLmV4cCAqLywKIAkJCQk0NDkxOTU5OTBGQkUxN0Q3MDBEOUY4MjQgLyogV2ViQ29y
ZS5TVkcuQW5pbWF0aW9uLmV4cCAqLywKIAkJCQk0NDkxOTU5ODBGQkUxN0Q3MDBEOUY4MjQgLyog
V2ViQ29yZS5TVkcuZXhwICovLAogCQkJCTQ0OTE5NTk3MEZCRTE3RDcwMEQ5RjgyNCAvKiBXZWJD
b3JlLlNWRy5GaWx0ZXJzLmV4cCAqLywKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9IVE1MQm9k
eUVsZW1lbnQuY3BwIGIvV2ViQ29yZS9odG1sL0hUTUxCb2R5RWxlbWVudC5jcHAKaW5kZXggMzgx
MzE3Ny4uOTI0YjhmNiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9odG1sL0hUTUxCb2R5RWxlbWVudC5j
cHAKKysrIGIvV2ViQ29yZS9odG1sL0hUTUxCb2R5RWxlbWVudC5jcHAKQEAgLTE0Myw2ICsxNDMs
MTAgQEAgdm9pZCBIVE1MQm9keUVsZW1lbnQ6OnBhcnNlTWFwcGVkQXR0cmlidXRlKE1hcHBlZEF0
dHJpYnV0ZSAqYXR0cikKICAgICAgICAgZG9jdW1lbnQoKS0+c2V0V2luZG93QXR0cmlidXRlRXZl
bnRMaXN0ZW5lcihldmVudE5hbWVzKCkuYmx1ckV2ZW50LCBjcmVhdGVBdHRyaWJ1dGVFdmVudExp
c3RlbmVyKGRvY3VtZW50KCktPmZyYW1lKCksIGF0dHIpKTsKICAgICBlbHNlIGlmIChhdHRyLT5u
YW1lKCkgPT0gb25mb2N1c0F0dHIpCiAgICAgICAgIGRvY3VtZW50KCktPnNldFdpbmRvd0F0dHJp
YnV0ZUV2ZW50TGlzdGVuZXIoZXZlbnROYW1lcygpLmZvY3VzRXZlbnQsIGNyZWF0ZUF0dHJpYnV0
ZUV2ZW50TGlzdGVuZXIoZG9jdW1lbnQoKS0+ZnJhbWUoKSwgYXR0cikpOworI2lmIEVOQUJMRShP
UklFTlRBVElPTl9FVkVOVFMpCisgICAgZWxzZSBpZiAoYXR0ci0+bmFtZSgpID09IG9ub3JpZW50
YXRpb25jaGFuZ2VBdHRyKQorICAgICAgICBkb2N1bWVudCgpLT5zZXRXaW5kb3dBdHRyaWJ1dGVF
dmVudExpc3RlbmVyKGV2ZW50TmFtZXMoKS5vcmllbnRhdGlvbmNoYW5nZUV2ZW50LCBjcmVhdGVB
dHRyaWJ1dGVFdmVudExpc3RlbmVyKGRvY3VtZW50KCktPmZyYW1lKCksIGF0dHIpKTsKKyNlbmRp
ZgogICAgIGVsc2UgaWYgKGF0dHItPm5hbWUoKSA9PSBvbmhhc2hjaGFuZ2VBdHRyKQogICAgICAg
ICBkb2N1bWVudCgpLT5zZXRXaW5kb3dBdHRyaWJ1dGVFdmVudExpc3RlbmVyKGV2ZW50TmFtZXMo
KS5oYXNoY2hhbmdlRXZlbnQsIGNyZWF0ZUF0dHJpYnV0ZUV2ZW50TGlzdGVuZXIoZG9jdW1lbnQo
KS0+ZnJhbWUoKSwgYXR0cikpOwogICAgIGVsc2UgaWYgKGF0dHItPm5hbWUoKSA9PSBvbnJlc2l6
ZUF0dHIpCkBAIC00MTIsNiArNDE2LDE4IEBAIHZvaWQgSFRNTEJvZHlFbGVtZW50OjpzZXRPbm9u
bGluZShQYXNzUmVmUHRyPEV2ZW50TGlzdGVuZXI+IGV2ZW50TGlzdGVuZXIpCiAgICAgZG9jdW1l
bnQoKS0+c2V0V2luZG93QXR0cmlidXRlRXZlbnRMaXN0ZW5lcihldmVudE5hbWVzKCkub25saW5l
RXZlbnQsIGV2ZW50TGlzdGVuZXIpOwogfQogCisjaWYgRU5BQkxFKE9SSUVOVEFUSU9OX0VWRU5U
UykKK0V2ZW50TGlzdGVuZXIqIEhUTUxCb2R5RWxlbWVudDo6b25vcmllbnRhdGlvbmNoYW5nZSgp
IGNvbnN0Cit7CisgICAgcmV0dXJuIGRvY3VtZW50KCktPmdldFdpbmRvd0F0dHJpYnV0ZUV2ZW50
TGlzdGVuZXIoZXZlbnROYW1lcygpLm9yaWVudGF0aW9uY2hhbmdlRXZlbnQpOworfQorCit2b2lk
IEhUTUxCb2R5RWxlbWVudDo6c2V0T25vcmllbnRhdGlvbmNoYW5nZShQYXNzUmVmUHRyPEV2ZW50
TGlzdGVuZXI+IGV2ZW50TGlzdGVuZXIpCit7CisgICAgZG9jdW1lbnQoKS0+c2V0V2luZG93QXR0
cmlidXRlRXZlbnRMaXN0ZW5lcihldmVudE5hbWVzKCkub3JpZW50YXRpb25jaGFuZ2VFdmVudCwg
ZXZlbnRMaXN0ZW5lcik7Cit9CisjZW5kaWYKKwogRXZlbnRMaXN0ZW5lciogSFRNTEJvZHlFbGVt
ZW50OjpvbnJlc2l6ZSgpIGNvbnN0CiB7CiAgICAgcmV0dXJuIGRvY3VtZW50KCktPmdldFdpbmRv
d0F0dHJpYnV0ZUV2ZW50TGlzdGVuZXIoZXZlbnROYW1lcygpLnJlc2l6ZUV2ZW50KTsKZGlmZiAt
LWdpdCBhL1dlYkNvcmUvaHRtbC9IVE1MQm9keUVsZW1lbnQuaCBiL1dlYkNvcmUvaHRtbC9IVE1M
Qm9keUVsZW1lbnQuaAppbmRleCBkNWVmYWIzLi5lMGQ0OTk2IDEwMDY0NAotLS0gYS9XZWJDb3Jl
L2h0bWwvSFRNTEJvZHlFbGVtZW50LmgKKysrIGIvV2ViQ29yZS9odG1sL0hUTUxCb2R5RWxlbWVu
dC5oCkBAIC02Myw2ICs2MywxMCBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRPbm9mZmxpbmUoUGFz
c1JlZlB0cjxFdmVudExpc3RlbmVyPik7CiAgICAgRXZlbnRMaXN0ZW5lciogb25vbmxpbmUoKSBj
b25zdDsKICAgICB2b2lkIHNldE9ub25saW5lKFBhc3NSZWZQdHI8RXZlbnRMaXN0ZW5lcj4pOwor
I2lmIEVOQUJMRShPUklFTlRBVElPTl9FVkVOVFMpCisgICAgRXZlbnRMaXN0ZW5lciogb25vcmll
bnRhdGlvbmNoYW5nZSgpIGNvbnN0OworICAgIHZvaWQgc2V0T25vcmllbnRhdGlvbmNoYW5nZShQ
YXNzUmVmUHRyPEV2ZW50TGlzdGVuZXI+KTsKKyNlbmRpZgogICAgIEV2ZW50TGlzdGVuZXIqIG9u
cmVzaXplKCkgY29uc3Q7CiAgICAgdm9pZCBzZXRPbnJlc2l6ZShQYXNzUmVmUHRyPEV2ZW50TGlz
dGVuZXI+KTsKICAgICBFdmVudExpc3RlbmVyKiBvbnN0b3JhZ2UoKSBjb25zdDsKZGlmZiAtLWdp
dCBhL1dlYkNvcmUvaHRtbC9IVE1MQm9keUVsZW1lbnQuaWRsIGIvV2ViQ29yZS9odG1sL0hUTUxC
b2R5RWxlbWVudC5pZGwKaW5kZXggN2JlNjgwMy4uMmU5M2UyZSAxMDA2NDQKLS0tIGEvV2ViQ29y
ZS9odG1sL0hUTUxCb2R5RWxlbWVudC5pZGwKKysrIGIvV2ViQ29yZS9odG1sL0hUTUxCb2R5RWxl
bWVudC5pZGwKQEAgLTQ0LDYgKzQ0LDEwIEBAIG1vZHVsZSBodG1sIHsKICAgICAgICAgYXR0cmli
dXRlIFtEb250RW51bV0gRXZlbnRMaXN0ZW5lciBvbnN0b3JhZ2U7CiAgICAgICAgIGF0dHJpYnV0
ZSBbRG9udEVudW1dIEV2ZW50TGlzdGVuZXIgb251bmxvYWQ7CiAKKyNpZiBkZWZpbmVkKEVOQUJM
RV9PUklFTlRBVElPTl9FVkVOVFMpICYmIEVOQUJMRV9PUklFTlRBVElPTl9FVkVOVFMKKyAgICAg
ICAgYXR0cmlidXRlIFtEb250RW51bV0gRXZlbnRMaXN0ZW5lciBvbm9yaWVudGF0aW9uY2hhbmdl
OworI2VuZGlmCisKICAgICAgICAgLy8gT3ZlcnJpZGVzIG9mIEVsZW1lbnQgYXR0cmlidXRlcyAo
bGVmdCBpbiBmb3IgY29tcGxldGVuZXNzKS4KICAgICAgICAgLy8gYXR0cmlidXRlIFtEb250RW51
bV0gRXZlbnRMaXN0ZW5lciBvbmJsdXI7CiAgICAgICAgIC8vIGF0dHJpYnV0ZSBbRG9udEVudW1d
IEV2ZW50TGlzdGVuZXIgb25lcnJvcjsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9IVE1MRnJh
bWVTZXRFbGVtZW50LmNwcCBiL1dlYkNvcmUvaHRtbC9IVE1MRnJhbWVTZXRFbGVtZW50LmNwcApp
bmRleCA4ZGMzOTY0Li43OTM4MWJlIDEwMDY0NAotLS0gYS9XZWJDb3JlL2h0bWwvSFRNTEZyYW1l
U2V0RWxlbWVudC5jcHAKKysrIGIvV2ViQ29yZS9odG1sL0hUTUxGcmFtZVNldEVsZW1lbnQuY3Bw
CkBAIC0xMzUsNiArMTM1LDEwIEBAIHZvaWQgSFRNTEZyYW1lU2V0RWxlbWVudDo6cGFyc2VNYXBw
ZWRBdHRyaWJ1dGUoTWFwcGVkQXR0cmlidXRlICphdHRyKQogICAgICAgICBkb2N1bWVudCgpLT5z
ZXRXaW5kb3dBdHRyaWJ1dGVFdmVudExpc3RlbmVyKGV2ZW50TmFtZXMoKS5ibHVyRXZlbnQsIGNy
ZWF0ZUF0dHJpYnV0ZUV2ZW50TGlzdGVuZXIoZG9jdW1lbnQoKS0+ZnJhbWUoKSwgYXR0cikpOwog
ICAgIGVsc2UgaWYgKGF0dHItPm5hbWUoKSA9PSBvbmZvY3VzQXR0cikKICAgICAgICAgZG9jdW1l
bnQoKS0+c2V0V2luZG93QXR0cmlidXRlRXZlbnRMaXN0ZW5lcihldmVudE5hbWVzKCkuZm9jdXNF
dmVudCwgY3JlYXRlQXR0cmlidXRlRXZlbnRMaXN0ZW5lcihkb2N1bWVudCgpLT5mcmFtZSgpLCBh
dHRyKSk7CisjaWYgRU5BQkxFKE9SSUVOVEFUSU9OX0VWRU5UUykKKyAgICBlbHNlIGlmIChhdHRy
LT5uYW1lKCkgPT0gb25vcmllbnRhdGlvbmNoYW5nZUF0dHIpCisgICAgICAgIGRvY3VtZW50KCkt
PnNldFdpbmRvd0F0dHJpYnV0ZUV2ZW50TGlzdGVuZXIoZXZlbnROYW1lcygpLm9yaWVudGF0aW9u
Y2hhbmdlRXZlbnQsIGNyZWF0ZUF0dHJpYnV0ZUV2ZW50TGlzdGVuZXIoZG9jdW1lbnQoKS0+ZnJh
bWUoKSwgYXR0cikpOworI2VuZGlmCiAgICAgZWxzZSBpZiAoYXR0ci0+bmFtZSgpID09IG9uaGFz
aGNoYW5nZUF0dHIpCiAgICAgICAgIGRvY3VtZW50KCktPnNldFdpbmRvd0F0dHJpYnV0ZUV2ZW50
TGlzdGVuZXIoZXZlbnROYW1lcygpLmhhc2hjaGFuZ2VFdmVudCwgY3JlYXRlQXR0cmlidXRlRXZl
bnRMaXN0ZW5lcihkb2N1bWVudCgpLT5mcmFtZSgpLCBhdHRyKSk7CiAgICAgZWxzZSBpZiAoYXR0
ci0+bmFtZSgpID09IG9ucmVzaXplQXR0cikKQEAgLTMyMCw2ICszMjQsMTggQEAgdm9pZCBIVE1M
RnJhbWVTZXRFbGVtZW50OjpzZXRPbm9ubGluZShQYXNzUmVmUHRyPEV2ZW50TGlzdGVuZXI+IGV2
ZW50TGlzdGVuZXIpCiAgICAgZG9jdW1lbnQoKS0+c2V0V2luZG93QXR0cmlidXRlRXZlbnRMaXN0
ZW5lcihldmVudE5hbWVzKCkub25saW5lRXZlbnQsIGV2ZW50TGlzdGVuZXIpOwogfQogCisjaWYg
RU5BQkxFKE9SSUVOVEFUSU9OX0VWRU5UUykKK0V2ZW50TGlzdGVuZXIqIEhUTUxGcmFtZVNldEVs
ZW1lbnQ6Om9ub3JpZW50YXRpb25jaGFuZ2UoKSBjb25zdAoreworICAgIHJldHVybiBkb2N1bWVu
dCgpLT5nZXRXaW5kb3dBdHRyaWJ1dGVFdmVudExpc3RlbmVyKGV2ZW50TmFtZXMoKS5vcmllbnRh
dGlvbmNoYW5nZUV2ZW50KTsKK30KKwordm9pZCBIVE1MRnJhbWVTZXRFbGVtZW50OjpzZXRPbm9y
aWVudGF0aW9uY2hhbmdlKFBhc3NSZWZQdHI8RXZlbnRMaXN0ZW5lcj4gZXZlbnRMaXN0ZW5lcikK
K3sKKyAgICBkb2N1bWVudCgpLT5zZXRXaW5kb3dBdHRyaWJ1dGVFdmVudExpc3RlbmVyKGV2ZW50
TmFtZXMoKS5vcmllbnRhdGlvbmNoYW5nZUV2ZW50LCBldmVudExpc3RlbmVyKTsKK30KKyNlbmRp
ZgorICAgIAogRXZlbnRMaXN0ZW5lciogSFRNTEZyYW1lU2V0RWxlbWVudDo6b25yZXNpemUoKSBj
b25zdAogewogICAgIHJldHVybiBkb2N1bWVudCgpLT5nZXRXaW5kb3dBdHRyaWJ1dGVFdmVudExp
c3RlbmVyKGV2ZW50TmFtZXMoKS5yZXNpemVFdmVudCk7CmRpZmYgLS1naXQgYS9XZWJDb3JlL2h0
bWwvSFRNTEZyYW1lU2V0RWxlbWVudC5oIGIvV2ViQ29yZS9odG1sL0hUTUxGcmFtZVNldEVsZW1l
bnQuaAppbmRleCBiNTFlNzAyLi4wZGVhY2YxIDEwMDY0NAotLS0gYS9XZWJDb3JlL2h0bWwvSFRN
TEZyYW1lU2V0RWxlbWVudC5oCisrKyBiL1dlYkNvcmUvaHRtbC9IVE1MRnJhbWVTZXRFbGVtZW50
LmgKQEAgLTg3LDYgKzg3LDEwIEBAIHB1YmxpYzoKICAgICB2b2lkIHNldE9ub2ZmbGluZShQYXNz
UmVmUHRyPEV2ZW50TGlzdGVuZXI+KTsKICAgICBFdmVudExpc3RlbmVyKiBvbm9ubGluZSgpIGNv
bnN0OwogICAgIHZvaWQgc2V0T25vbmxpbmUoUGFzc1JlZlB0cjxFdmVudExpc3RlbmVyPik7Cisj
aWYgRU5BQkxFKE9SSUVOVEFUSU9OX0VWRU5UUykKKyAgICBFdmVudExpc3RlbmVyKiBvbm9yaWVu
dGF0aW9uY2hhbmdlKCkgY29uc3Q7CisgICAgdm9pZCBzZXRPbm9yaWVudGF0aW9uY2hhbmdlKFBh
c3NSZWZQdHI8RXZlbnRMaXN0ZW5lcj4pOworI2VuZGlmCiAgICAgRXZlbnRMaXN0ZW5lciogb25y
ZXNpemUoKSBjb25zdDsKICAgICB2b2lkIHNldE9ucmVzaXplKFBhc3NSZWZQdHI8RXZlbnRMaXN0
ZW5lcj4pOwogICAgIEV2ZW50TGlzdGVuZXIqIG9uc3RvcmFnZSgpIGNvbnN0OwpkaWZmIC0tZ2l0
IGEvV2ViQ29yZS9odG1sL0hUTUxGcmFtZVNldEVsZW1lbnQuaWRsIGIvV2ViQ29yZS9odG1sL0hU
TUxGcmFtZVNldEVsZW1lbnQuaWRsCmluZGV4IDAzNzVjMGEuLmI0NGEwNzEgMTAwNjQ0Ci0tLSBh
L1dlYkNvcmUvaHRtbC9IVE1MRnJhbWVTZXRFbGVtZW50LmlkbAorKysgYi9XZWJDb3JlL2h0bWwv
SFRNTEZyYW1lU2V0RWxlbWVudC5pZGwKQEAgLTQxLDYgKzQxLDEwIEBAIG1vZHVsZSBodG1sIHsK
ICAgICAgICAgYXR0cmlidXRlIFtEb250RW51bV0gRXZlbnRMaXN0ZW5lciBvbnN0b3JhZ2U7CiAg
ICAgICAgIGF0dHJpYnV0ZSBbRG9udEVudW1dIEV2ZW50TGlzdGVuZXIgb251bmxvYWQ7CiAKKyNp
ZiBkZWZpbmVkKEVOQUJMRV9PUklFTlRBVElPTl9FVkVOVFMpICYmIEVOQUJMRV9PUklFTlRBVElP
Tl9FVkVOVFMKKyAgICAgICAgYXR0cmlidXRlIFtEb250RW51bV0gRXZlbnRMaXN0ZW5lciBvbm9y
aWVudGF0aW9uY2hhbmdlOworI2VuZGlmCisKICAgICAgICAgLy8gT3ZlcnJpZGVzIG9mIEVsZW1l
bnQgYXR0cmlidXRlcyAobGVmdCBpbiBmb3IgY29tcGxldGVuZXNzKS4KICAgICAgICAgLy8gYXR0
cmlidXRlIFtEb250RW51bV0gRXZlbnRMaXN0ZW5lciBvbmJsdXI7CiAgICAgICAgIC8vIGF0dHJp
YnV0ZSBbRG9udEVudW1dIEV2ZW50TGlzdGVuZXIgb25lcnJvcjsKZGlmZiAtLWdpdCBhL1dlYkNv
cmUvcGFnZS9ET01XaW5kb3cuY3BwIGIvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAKaW5kZXgg
NzgzZjkzZC4uOTQzZjExOSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAK
KysrIGIvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAKQEAgLTQ2Miw2ICs0NjIsMTYgQEAgdm9p
ZCBET01XaW5kb3c6OmNsZWFyKCkKICNlbmRpZgogfQogCisjaWYgRU5BQkxFKE9SSUVOVEFUSU9O
X0VWRU5UUykKK2ludCBET01XaW5kb3c6Om9yaWVudGF0aW9uKCkgY29uc3QKK3sKKyAgICBpZiAo
IW1fZnJhbWUpCisgICAgICAgIHJldHVybiAwOworICAgIAorICAgIHJldHVybiBtX2ZyYW1lLT5v
cmllbnRhdGlvbigpOworfQorI2VuZGlmCisgICAgCiBTY3JlZW4qIERPTVdpbmRvdzo6c2NyZWVu
KCkgY29uc3QKIHsKICAgICBpZiAoIW1fc2NyZWVuKQpAQCAtMjA4OCw2ICsyMDk4LDE4IEBAIHZv
aWQgRE9NV2luZG93OjpzZXRPbmludmFsaWQoUGFzc1JlZlB0cjxFdmVudExpc3RlbmVyPiBldmVu
dExpc3RlbmVyKQogICAgIHNldEF0dHJpYnV0ZUV2ZW50TGlzdGVuZXIoZXZlbnROYW1lcygpLmlu
dmFsaWRFdmVudCwgZXZlbnRMaXN0ZW5lcik7CiB9CiAKKyNpZiBFTkFCTEUoT1JJRU5UQVRJT05f
RVZFTlRTKQorRXZlbnRMaXN0ZW5lciogRE9NV2luZG93Ojpvbm9yaWVudGF0aW9uY2hhbmdlKCkg
Y29uc3QKK3sKKyAgICByZXR1cm4gZ2V0QXR0cmlidXRlRXZlbnRMaXN0ZW5lcihldmVudE5hbWVz
KCkub3JpZW50YXRpb25jaGFuZ2VFdmVudCk7Cit9CisKK3ZvaWQgRE9NV2luZG93OjpzZXRPbm9y
aWVudGF0aW9uY2hhbmdlKFBhc3NSZWZQdHI8RXZlbnRMaXN0ZW5lcj4gZXZlbnRMaXN0ZW5lcikK
K3sKKyAgICBzZXRBdHRyaWJ1dGVFdmVudExpc3RlbmVyKGV2ZW50TmFtZXMoKS5vcmllbnRhdGlv
bmNoYW5nZUV2ZW50LCBldmVudExpc3RlbmVyKTsKK30KKyNlbmRpZgorCiB2b2lkIERPTVdpbmRv
dzo6Y2FwdHVyZUV2ZW50cygpCiB7CiAgICAgLy8gTm90IGltcGxlbWVudGVkLgpkaWZmIC0tZ2l0
IGEvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5oIGIvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5oCmlu
ZGV4IGRiNGVkZGEuLjNmYjEyZWIgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cu
aAorKysgYi9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmgKQEAgLTg1LDYgKzg1LDEwIEBAIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAogICAgICAgICB2b2lkIGNsZWFyKCk7CiAKKyNpZiBFTkFCTEUoT1JJ
RU5UQVRJT05fRVZFTlRTKQorICAgICAgICBpbnQgb3JpZW50YXRpb24oKSBjb25zdDsKKyNlbmRp
ZgorCiAgICAgICAgIHZvaWQgc2V0U2VjdXJpdHlPcmlnaW4oU2VjdXJpdHlPcmlnaW4qIHNlY3Vy
aXR5T3JpZ2luKSB7IG1fc2VjdXJpdHlPcmlnaW4gPSBzZWN1cml0eU9yaWdpbjsgfQogICAgICAg
ICBTZWN1cml0eU9yaWdpbiogc2VjdXJpdHlPcmlnaW4oKSBjb25zdCB7IHJldHVybiBtX3NlY3Vy
aXR5T3JpZ2luLmdldCgpOyB9CiAKQEAgLTM4Myw2ICszODcsMTAgQEAgbmFtZXNwYWNlIFdlYkNv
cmUgewogICAgICAgICB2b2lkIHNldE9uY29udGV4dG1lbnUoUGFzc1JlZlB0cjxFdmVudExpc3Rl
bmVyPik7CiAgICAgICAgIEV2ZW50TGlzdGVuZXIqIG9uaW52YWxpZCgpIGNvbnN0OwogICAgICAg
ICB2b2lkIHNldE9uaW52YWxpZChQYXNzUmVmUHRyPEV2ZW50TGlzdGVuZXI+KTsKKyNpZiBFTkFC
TEUoT1JJRU5UQVRJT05fRVZFTlRTKQorICAgICAgICBFdmVudExpc3RlbmVyKiBvbm9yaWVudGF0
aW9uY2hhbmdlKCkgY29uc3Q7CisgICAgICAgIHZvaWQgc2V0T25vcmllbnRhdGlvbmNoYW5nZShQ
YXNzUmVmUHRyPEV2ZW50TGlzdGVuZXI+KTsKKyNlbmRpZgogCiAgICAgICAgIHZvaWQgY2FwdHVy
ZUV2ZW50cygpOwogICAgICAgICB2b2lkIHJlbGVhc2VFdmVudHMoKTsKZGlmZiAtLWdpdCBhL1dl
YkNvcmUvcGFnZS9ET01XaW5kb3cuaWRsIGIvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5pZGwKaW5k
ZXggODc1ZjRlYS4uMGQ0OTJiYyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5p
ZGwKKysrIGIvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5pZGwKQEAgLTE3MCw2ICsxNzAsMTAgQEAg
bW9kdWxlIHdpbmRvdyB7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBOb3RpZmljYXRpb25D
ZW50ZXIgd2Via2l0Tm90aWZpY2F0aW9uczsKICNlbmRpZgogCisjaWYgZGVmaW5lZChFTkFCTEVf
T1JJRU5UQVRJT05fRVZFTlRTKSAmJiBFTkFCTEVfT1JJRU5UQVRJT05fRVZFTlRTCisgICAgICAg
IHJlYWRvbmx5IGF0dHJpYnV0ZSBsb25nIG9yaWVudGF0aW9uOworI2VuZGlmCisKICAgICAgICAg
ICAgICAgICAgYXR0cmlidXRlIFtSZXBsYWNlYWJsZV0gQ29uc29sZSBjb25zb2xlOwogCiAgICAg
ICAgIC8vIGNyb3NzLWRvY3VtZW50IG1lc3NhZ2luZwpAQCAtMjc4LDYgKzI4Miw5IEBAIG1vZHVs
ZSB3aW5kb3cgewogICAgICAgICBhdHRyaWJ1dGUgRXZlbnRMaXN0ZW5lciBvbndlYmtpdGFuaW1h
dGlvbml0ZXJhdGlvbjsKICAgICAgICAgYXR0cmlidXRlIEV2ZW50TGlzdGVuZXIgb253ZWJraXRh
bmltYXRpb25zdGFydDsKICAgICAgICAgYXR0cmlidXRlIEV2ZW50TGlzdGVuZXIgb253ZWJraXR0
cmFuc2l0aW9uZW5kOworI2lmIGRlZmluZWQoRU5BQkxFX09SSUVOVEFUSU9OX0VWRU5UUykgJiYg
RU5BQkxFX09SSUVOVEFUSU9OX0VWRU5UUworICAgICAgICBhdHRyaWJ1dGUgRXZlbnRMaXN0ZW5l
ciBvbm9yaWVudGF0aW9uY2hhbmdlOworI2VuZGlmCiAKICAgICAgICAgLy8gRXZlbnRUYXJnZXQg
aW50ZXJmYWNlCiAgICAgICAgIFtDdXN0b21dIHZvaWQgYWRkRXZlbnRMaXN0ZW5lcihpbiBET01T
dHJpbmcgdHlwZSwKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGFnZS9GcmFtZS5jcHAgYi9XZWJDb3Jl
L3BhZ2UvRnJhbWUuY3BwCmluZGV4IDdhM2VkMjcuLmM3MmZjMDcgMTAwNjQ0Ci0tLSBhL1dlYkNv
cmUvcGFnZS9GcmFtZS5jcHAKKysrIGIvV2ViQ29yZS9wYWdlL0ZyYW1lLmNwcApAQCAtMTI3LDYg
KzEyNyw5IEBAIEZyYW1lOjpGcmFtZShQYWdlKiBwYWdlLCBIVE1MRnJhbWVPd25lckVsZW1lbnQq
IG93bmVyRWxlbWVudCwgRnJhbWVMb2FkZXJDbGllbnQqCiAgICAgLCBtX2V2ZW50SGFuZGxlcih0
aGlzKQogICAgICwgbV9hbmltYXRpb25Db250cm9sbGVyKHRoaXMpCiAgICAgLCBtX2xpZmVTdXBw
b3J0VGltZXIodGhpcywgJkZyYW1lOjpsaWZlU3VwcG9ydFRpbWVyRmlyZWQpCisjaWYgRU5BQkxF
KE9SSUVOVEFUSU9OX0VWRU5UUykKKyAgICAsIG1fb3JpZW50YXRpb24oMCkKKyNlbmRpZgogICAg
ICwgbV9jYXJldFZpc2libGUoZmFsc2UpCiAgICAgLCBtX2NhcmV0UGFpbnQodHJ1ZSkKICAgICAs
IG1faGlnaGxpZ2h0VGV4dE1hdGNoZXMoZmFsc2UpCkBAIC0yNjgsNiArMjcxLDE1IEBAIHZvaWQg
RnJhbWU6OnNldERvY3VtZW50KFBhc3NSZWZQdHI8RG9jdW1lbnQ+IG5ld0RvYykKICAgICBtX3Nj
cmlwdC51cGRhdGVEb2N1bWVudCgpOwogfQogCisjaWYgRU5BQkxFKE9SSUVOVEFUSU9OX0VWRU5U
UykKK3ZvaWQgc2VuZE9yaWVudGF0aW9uQ2hhbmdlRXZlbnQoaW50IG9yaWVudGF0aW9uKQorewor
ICAgIG1fb3JpZW50YXRpb24gPSBvcmllbnRhdGlvbjsKKyAgICBpZiAoRG9jdW1lbnQqIGRvYyA9
IGRvY3VtZW50KCkpCisgICAgICAgIGRvYy0+ZGlzcGF0Y2hXaW5kb3dFdmVudChldmVudE5hbWVz
KCkub3JpZW50YXRpb25jaGFuZ2VFdmVudCwgZmFsc2UsIGZhbHNlKTsKK30KKyNlbmRpZiAvLyBF
TkFCTEUoT1JJRU5UQVRJT05fRVZFTlRTKQorICAgIAogU2V0dGluZ3MqIEZyYW1lOjpzZXR0aW5n
cygpIGNvbnN0CiB7CiAgICAgcmV0dXJuIG1fcGFnZSA/IG1fcGFnZS0+c2V0dGluZ3MoKSA6IDA7
CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BhZ2UvRnJhbWUuaCBiL1dlYkNvcmUvcGFnZS9GcmFtZS5o
CmluZGV4IGVmODAzZjEuLjkyNjAwNTAgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGFnZS9GcmFtZS5o
CisrKyBiL1dlYkNvcmUvcGFnZS9GcmFtZS5oCkBAIC0xNTMsNiArMTUzLDExIEBAIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAogICAgICAgICB2b2lkIHNldERvY3VtZW50KFBhc3NSZWZQdHI8RG9jdW1l
bnQ+KTsKIAorI2lmIEVOQUJMRShPUklFTlRBVElPTl9FVkVOVFMpCisgICAgICAgIHZvaWQgc2Vu
ZE9yaWVudGF0aW9uQ2hhbmdlRXZlbnQoaW50IG9yaWVudGF0aW9uKTsKKyAgICAgICAgaW50IG9y
aWVudGF0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9vcmllbnRhdGlvbjsgfQorI2VuZGlmCisKICAg
ICAgICAgdm9pZCBjbGVhclRpbWVycygpOwogICAgICAgICBzdGF0aWMgdm9pZCBjbGVhclRpbWVy
cyhGcmFtZVZpZXcqLCBEb2N1bWVudCopOwogCkBAIC0zNTQsNiArMzU5LDEwIEBAIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAogICAgICAgICBUaW1lcjxGcmFtZT4gbV9saWZlU3VwcG9ydFRpbWVyOwog
CisjaWYgRU5BQkxFKE9SSUVOVEFUSU9OX0VWRU5UUykKKyAgICAgICAgaW50IG1fb3JpZW50YXRp
b247CisjZW5kaWYKKyAgICAgICAgCiAgICAgICAgIGJvb2wgbV9jYXJldFZpc2libGU7CiAgICAg
ICAgIGJvb2wgbV9jYXJldFBhaW50OwogCi0tIAoxLjYuMgoK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>39867</attachid>
            <date>2009-09-21 13:13:38 -0700</date>
            <delta_ts>2009-09-21 13:37:48 -0700</delta_ts>
            <desc>Add onorientationchange to HTMLAttributeNames.in</desc>
            <filename>0001-JavaScriptCore-Add-ENABLE-ORIENTATION_EVENTS.patch</filename>
            <type>text/plain</type>
            <size>22981</size>
            <attacher name="Greg Bolsinga">bolsinga</attacher>
            
              <data encoding="base64">RnJvbSBmYTBlMDQxOTQ3ZmY1ZjdmMTI4ZjlhNTJiOTY1MjVlNGE2NWZhNzE2IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBHcmVnIEJvbHNpbmdhIDxib2xzaW5nYUBhcHBsZS5jb20+CkRh
dGU6IE1vbiwgMjEgU2VwIDIwMDkgMTM6MTI6MjIgLTA3MDAKU3ViamVjdDogW1BBVENIXSBKYXZh
U2NyaXB0Q29yZTogQWRkIEVOQUJMRShPUklFTlRBVElPTl9FVkVOVFMpCiBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Mjk1MDgKClJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgoKKiB3dGYvUGxhdGZvcm0uaDogQWxzbyBzb3J0IFBMQVRGT1JNKElQSE9ORSkgI2RlZmlu
ZXMuCgpXZWJDb3JlOiBBZGQgRU5BQkxFKE9SSUVOVEFUSU9OX0VWRU5UUykKaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI5NTA4CgpSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KClNlZSBkb2N1bWVudGF0aW9uIGhlcmU6Cmh0dHA6Ly9kZXZlbG9wZXIuYXBwbGUuY29t
L3NhZmFyaS9saWJyYXJ5L2RvY3VtZW50YXRpb24vQXBwbGVBcHBsaWNhdGlvbnMvUmVmZXJlbmNl
L1NhZmFyaVdlYkNvbnRlbnQvSGFuZGxpbmdFdmVudHMvSGFuZGxpbmdFdmVudHMuaHRtbCMvL2Fw
cGxlX3JlZi9kb2MvdWlkL1RQNDAwMDY1MTEtU1cxNgoKTm8gbmV3IHRlc3RzLiAoT09QUyEpCgoq
IERlcml2ZWRTb3VyY2VzLm1ha2U6IFVzZSBuZXcgV2ViQ29yZS5PcmllbnRhdGlvbkV2ZW50cy5l
eHAgZmlsZSBpZiBFTkFCTEVfT1JJRU5UQVRJT05fRVZFTlRTLgpBZGQgRU5BQkxFX09SSUVOVEFU
SU9OX0VWRU5UUyB0byB0aGUgbmV3IEFERElUSU9OQUxfSURMX0RFRklORVMgdmFyaWFibGUgdGhh
dCBpcyBwYXNzZWQgdG8gdGhlIElETApjb2RlIGdlbmVyYXRvci4gVGhpcyBpcyBiZWNhdXNlIEVO
QUJMRV9PUklFTlRBVElPTl9FVkVOVFMgaXMgbm90IGluIEZFQVRVUkVfREVGSU5FUy4KKiBXZWJD
b3JlLk9yaWVudGF0aW9uRXZlbnRzLmV4cDogQWRkZWQuCiogV2ViQ29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qOiBBZGQgV2ViQ29yZS5PcmllbnRhdGlvbkV2ZW50cy5leHAuCiogaHRtbC9I
VE1MQXR0cmlidXRlTmFtZXMuaW46IEFkZCBvbm9yaWVudGF0aW9uY2hhbmdlLgoqIGh0bWwvSFRN
TEJvZHlFbGVtZW50LmNwcDogSGFuZGxlIG9ub3JpZW50YXRpb25jaGFuZ2UgcHJvcGVybHkuCihX
ZWJDb3JlOjpIVE1MQm9keUVsZW1lbnQ6OnBhcnNlTWFwcGVkQXR0cmlidXRlKToKKFdlYkNvcmU6
OkhUTUxCb2R5RWxlbWVudDo6b25vcmllbnRhdGlvbmNoYW5nZSk6CihXZWJDb3JlOjpIVE1MQm9k
eUVsZW1lbnQ6OnNldE9ub3JpZW50YXRpb25jaGFuZ2UpOgoqIGh0bWwvSFRNTEJvZHlFbGVtZW50
Lmg6IERpdHRvLgoqIGh0bWwvSFRNTEJvZHlFbGVtZW50LmlkbDogRGl0dG8uCiogaHRtbC9IVE1M
RnJhbWVTZXRFbGVtZW50LmNwcDogRGl0dG8uCihXZWJDb3JlOjpIVE1MRnJhbWVTZXRFbGVtZW50
OjpwYXJzZU1hcHBlZEF0dHJpYnV0ZSk6CihXZWJDb3JlOjpIVE1MRnJhbWVTZXRFbGVtZW50Ojpv
bm9yaWVudGF0aW9uY2hhbmdlKToKKFdlYkNvcmU6OkhUTUxGcmFtZVNldEVsZW1lbnQ6OnNldE9u
b3JpZW50YXRpb25jaGFuZ2UpOgoqIGh0bWwvSFRNTEZyYW1lU2V0RWxlbWVudC5oOiBEaXR0by4K
KiBodG1sL0hUTUxGcmFtZVNldEVsZW1lbnQuaWRsOiBEaXR0by4KKiBwYWdlL0RPTVdpbmRvdy5j
cHA6IERpdHRvLgooV2ViQ29yZTo6RE9NV2luZG93OjpvcmllbnRhdGlvbik6IENhbGxzIHVwIHRo
ZSB0byB0aGUgRnJhbWUgZm9yIHRoZSBvcmllbnRhdGlvbiB2YWx1ZS4KKFdlYkNvcmU6OkRPTVdp
bmRvdzo6b25vcmllbnRhdGlvbmNoYW5nZSk6CihXZWJDb3JlOjpET01XaW5kb3c6OnNldE9ub3Jp
ZW50YXRpb25jaGFuZ2UpOgoqIHBhZ2UvRE9NV2luZG93Lmg6IEhhbmRsZSBvbm9yaWVudGF0aW9u
Y2hhbmdlIHByb3Blcmx5LgoqIHBhZ2UvRE9NV2luZG93LmlkbDogRGl0dG8uCiogcGFnZS9GcmFt
ZS5jcHA6IERpdHRvLgooV2ViQ29yZTo6RnJhbWU6OkZyYW1lKToKKFdlYkNvcmU6OnNlbmRPcmll
bnRhdGlvbkNoYW5nZUV2ZW50KToKKiBwYWdlL0ZyYW1lLmg6IERpdHRvLgooV2ViQ29yZTo6RnJh
bWU6Om9yaWVudGF0aW9uKToKLS0tCiBKYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgICAgICAgICAg
ICAgICAgICB8ICAgIDkgKysrKysrCiBKYXZhU2NyaXB0Q29yZS93dGYvUGxhdGZvcm0uaCAgICAg
ICAgICAgICB8ICAgMTUgKysrKysrKy0tLQogV2ViQ29yZS9DaGFuZ2VMb2cgICAgICAgICAgICAg
ICAgICAgICAgICAgfCAgIDQyICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrCiBXZWJDb3Jl
L0Rlcml2ZWRTb3VyY2VzLm1ha2UgICAgICAgICAgICAgICB8ICAgMTcgKysrKysrKysrKy0KIFdl
YkNvcmUvV2ViQ29yZS5PcmllbnRhdGlvbkV2ZW50cy5leHAgICAgIHwgICAgMSArCiBXZWJDb3Jl
L1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiB8ICAgIDIgKwogV2ViQ29yZS9odG1s
L0hUTUxBdHRyaWJ1dGVOYW1lcy5pbiAgICAgICAgfCAgICAxICsKIFdlYkNvcmUvaHRtbC9IVE1M
Qm9keUVsZW1lbnQuY3BwICAgICAgICAgIHwgICAxNiArKysrKysrKysrKwogV2ViQ29yZS9odG1s
L0hUTUxCb2R5RWxlbWVudC5oICAgICAgICAgICAgfCAgICA0ICsrKwogV2ViQ29yZS9odG1sL0hU
TUxCb2R5RWxlbWVudC5pZGwgICAgICAgICAgfCAgICA0ICsrKwogV2ViQ29yZS9odG1sL0hUTUxG
cmFtZVNldEVsZW1lbnQuY3BwICAgICAgfCAgIDE2ICsrKysrKysrKysrCiBXZWJDb3JlL2h0bWwv
SFRNTEZyYW1lU2V0RWxlbWVudC5oICAgICAgICB8ICAgIDQgKysrCiBXZWJDb3JlL2h0bWwvSFRN
TEZyYW1lU2V0RWxlbWVudC5pZGwgICAgICB8ICAgIDQgKysrCiBXZWJDb3JlL3BhZ2UvRE9NV2lu
ZG93LmNwcCAgICAgICAgICAgICAgICB8ICAgMjIgKysrKysrKysrKysrKysrCiBXZWJDb3JlL3Bh
Z2UvRE9NV2luZG93LmggICAgICAgICAgICAgICAgICB8ICAgIDggKysrKysKIFdlYkNvcmUvcGFn
ZS9ET01XaW5kb3cuaWRsICAgICAgICAgICAgICAgIHwgICAgNyArKysrKwogV2ViQ29yZS9wYWdl
L0ZyYW1lLmNwcCAgICAgICAgICAgICAgICAgICAgfCAgIDEyICsrKysrKysrCiBXZWJDb3JlL3Bh
Z2UvRnJhbWUuaCAgICAgICAgICAgICAgICAgICAgICB8ICAgIDkgKysrKysrCiAxOCBmaWxlcyBj
aGFuZ2VkLCAxODYgaW5zZXJ0aW9ucygrKSwgNyBkZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEw
MDY0NCBXZWJDb3JlL1dlYkNvcmUuT3JpZW50YXRpb25FdmVudHMuZXhwCgpkaWZmIC0tZ2l0IGEv
SmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nIGIvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4
IDQyZGY2ZTYuLjlkNTFmMjIgMTAwNjQ0Ci0tLSBhL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwor
KysgYi9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMiBAQAorMjAwOS0wOS0y
MSAgR3JlZyBCb2xzaW5nYSAgPGJvbHNpbmdhQGFwcGxlLmNvbT4KKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgRU5BQkxFKE9SSUVOVEFUSU9OX0VW
RU5UUykKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI5
NTA4CisKKyAgICAgICAgKiB3dGYvUGxhdGZvcm0uaDogQWxzbyBzb3J0IFBMQVRGT1JNKElQSE9O
RSkgI2RlZmluZXMuCisKIDIwMDktMDktMTggIEdhYm9yIExva2kgIDxsb2tpQGluZi51LXN6ZWdl
ZC5odT4KIAogICAgICAgICBSZXZpZXdlZCBieSBHYXZpbiBCYXJyYWNsb3VnaC4KZGlmZiAtLWdp
dCBhL0phdmFTY3JpcHRDb3JlL3d0Zi9QbGF0Zm9ybS5oIGIvSmF2YVNjcmlwdENvcmUvd3RmL1Bs
YXRmb3JtLmgKaW5kZXggMjg5NGQ0My4uN2RkZmM5NSAxMDA2NDQKLS0tIGEvSmF2YVNjcmlwdENv
cmUvd3RmL1BsYXRmb3JtLmgKKysrIGIvSmF2YVNjcmlwdENvcmUvd3RmL1BsYXRmb3JtLmgKQEAg
LTQyMywxOCArNDIzLDE5IEBACiAjZW5kaWYKIAogI2lmIFBMQVRGT1JNKElQSE9ORSkKLSNkZWZp
bmUgV1RGX1BMQVRGT1JNX0NGIDEKLSNkZWZpbmUgV1RGX1VTRV9QVEhSRUFEUyAxCiAjZGVmaW5l
IEVOQUJMRV9DT05URVhUX01FTlVTIDAKICNkZWZpbmUgRU5BQkxFX0RSQUdfU1VQUE9SVCAwCiAj
ZGVmaW5lIEVOQUJMRV9GVFBESVIgMQorI2RlZmluZSBFTkFCTEVfR0VPTE9DQVRJT04gMQorI2Rl
ZmluZSBFTkFCTEVfSUNPTkRBVEFCQVNFIDAKICNkZWZpbmUgRU5BQkxFX0lOU1BFQ1RPUiAwCiAj
ZGVmaW5lIEVOQUJMRV9NQUNfSkFWQV9CUklER0UgMAotI2RlZmluZSBFTkFCTEVfSUNPTkRBVEFC
QVNFIDAKLSNkZWZpbmUgRU5BQkxFX0dFT0xPQ0FUSU9OIDEKICNkZWZpbmUgRU5BQkxFX05FVFND
QVBFX1BMVUdJTl9BUEkgMAotI2RlZmluZSBIQVZFX1JFQURMSU5FIDEKKyNkZWZpbmUgRU5BQkxF
X09SSUVOVEFUSU9OX0VWRU5UUyAxCiAjZGVmaW5lIEVOQUJMRV9SRVBBSU5UX1RIUk9UVExJTkcg
MQorI2RlZmluZSBIQVZFX1JFQURMSU5FIDEKKyNkZWZpbmUgV1RGX1BMQVRGT1JNX0NGIDEKKyNk
ZWZpbmUgV1RGX1VTRV9QVEhSRUFEUyAxCiAjZW5kaWYKIAogI2lmIFBMQVRGT1JNKFdJTikKQEAg
LTU5NCw2ICs1OTUsMTAgQEAKICNkZWZpbmUgRU5BQkxFX05FVFNDQVBFX1BMVUdJTl9BUEkgMQog
I2VuZGlmCiAKKyNpZiAhZGVmaW5lZChFTkFCTEVfT1JJRU5UQVRJT05fRVZFTlRTKQorI2RlZmlu
ZSBFTkFCTEVfT1JJRU5UQVRJT05fRVZFTlRTIDAKKyNlbmRpZgorCiAjaWYgIWRlZmluZWQoRU5B
QkxFX09QQ09ERV9TVEFUUykKICNkZWZpbmUgRU5BQkxFX09QQ09ERV9TVEFUUyAwCiAjZW5kaWYK
ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
YWVmMTljYy4uMzJjMDUxYiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0NSBAQAorMjAwOS0wOS0yMSAgR3JlZyBCb2xzaW5n
YSAgPGJvbHNpbmdhQGFwcGxlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBBZGQgRU5BQkxFKE9SSUVOVEFUSU9OX0VWRU5UUykKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI5NTA4CisgICAgICAgIAor
ICAgICAgICBTZWUgZG9jdW1lbnRhdGlvbiBoZXJlOgorICAgICAgICBodHRwOi8vZGV2ZWxvcGVy
LmFwcGxlLmNvbS9zYWZhcmkvbGlicmFyeS9kb2N1bWVudGF0aW9uL0FwcGxlQXBwbGljYXRpb25z
L1JlZmVyZW5jZS9TYWZhcmlXZWJDb250ZW50L0hhbmRsaW5nRXZlbnRzL0hhbmRsaW5nRXZlbnRz
Lmh0bWwjLy9hcHBsZV9yZWYvZG9jL3VpZC9UUDQwMDA2NTExLVNXMTYKKworICAgICAgICBObyBu
ZXcgdGVzdHMuIChPT1BTISkKKworICAgICAgICAqIERlcml2ZWRTb3VyY2VzLm1ha2U6IFVzZSBu
ZXcgV2ViQ29yZS5PcmllbnRhdGlvbkV2ZW50cy5leHAgZmlsZSBpZiBFTkFCTEVfT1JJRU5UQVRJ
T05fRVZFTlRTLgorICAgICAgICBBZGQgRU5BQkxFX09SSUVOVEFUSU9OX0VWRU5UUyB0byB0aGUg
bmV3IEFERElUSU9OQUxfSURMX0RFRklORVMgdmFyaWFibGUgdGhhdCBpcyBwYXNzZWQgdG8gdGhl
IElETAorICAgICAgICBjb2RlIGdlbmVyYXRvci4gVGhpcyBpcyBiZWNhdXNlIEVOQUJMRV9PUklF
TlRBVElPTl9FVkVOVFMgaXMgbm90IGluIEZFQVRVUkVfREVGSU5FUy4KKyAgICAgICAgKiBXZWJD
b3JlLk9yaWVudGF0aW9uRXZlbnRzLmV4cDogQWRkZWQuCisgICAgICAgICogV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qOiBBZGQgV2ViQ29yZS5PcmllbnRhdGlvbkV2ZW50cy5leHAu
CisgICAgICAgICogaHRtbC9IVE1MQXR0cmlidXRlTmFtZXMuaW46IEFkZCBvbm9yaWVudGF0aW9u
Y2hhbmdlLgorICAgICAgICAqIGh0bWwvSFRNTEJvZHlFbGVtZW50LmNwcDogSGFuZGxlIG9ub3Jp
ZW50YXRpb25jaGFuZ2UgcHJvcGVybHkuCisgICAgICAgIChXZWJDb3JlOjpIVE1MQm9keUVsZW1l
bnQ6OnBhcnNlTWFwcGVkQXR0cmlidXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxCb2R5RWxl
bWVudDo6b25vcmllbnRhdGlvbmNoYW5nZSk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MQm9keUVs
ZW1lbnQ6OnNldE9ub3JpZW50YXRpb25jaGFuZ2UpOgorICAgICAgICAqIGh0bWwvSFRNTEJvZHlF
bGVtZW50Lmg6IERpdHRvLgorICAgICAgICAqIGh0bWwvSFRNTEJvZHlFbGVtZW50LmlkbDogRGl0
dG8uCisgICAgICAgICogaHRtbC9IVE1MRnJhbWVTZXRFbGVtZW50LmNwcDogRGl0dG8uCisgICAg
ICAgIChXZWJDb3JlOjpIVE1MRnJhbWVTZXRFbGVtZW50OjpwYXJzZU1hcHBlZEF0dHJpYnV0ZSk6
CisgICAgICAgIChXZWJDb3JlOjpIVE1MRnJhbWVTZXRFbGVtZW50Ojpvbm9yaWVudGF0aW9uY2hh
bmdlKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxGcmFtZVNldEVsZW1lbnQ6OnNldE9ub3JpZW50
YXRpb25jaGFuZ2UpOgorICAgICAgICAqIGh0bWwvSFRNTEZyYW1lU2V0RWxlbWVudC5oOiBEaXR0
by4KKyAgICAgICAgKiBodG1sL0hUTUxGcmFtZVNldEVsZW1lbnQuaWRsOiBEaXR0by4KKyAgICAg
ICAgKiBwYWdlL0RPTVdpbmRvdy5jcHA6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6RE9NV2lu
ZG93OjpvcmllbnRhdGlvbik6IENhbGxzIHVwIHRoZSB0byB0aGUgRnJhbWUgZm9yIHRoZSBvcmll
bnRhdGlvbiB2YWx1ZS4KKyAgICAgICAgKFdlYkNvcmU6OkRPTVdpbmRvdzo6b25vcmllbnRhdGlv
bmNoYW5nZSk6CisgICAgICAgIChXZWJDb3JlOjpET01XaW5kb3c6OnNldE9ub3JpZW50YXRpb25j
aGFuZ2UpOgorICAgICAgICAqIHBhZ2UvRE9NV2luZG93Lmg6IEhhbmRsZSBvbm9yaWVudGF0aW9u
Y2hhbmdlIHByb3Blcmx5LgorICAgICAgICAqIHBhZ2UvRE9NV2luZG93LmlkbDogRGl0dG8uCisg
ICAgICAgICogcGFnZS9GcmFtZS5jcHA6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6RnJhbWU6
OkZyYW1lKToKKyAgICAgICAgKFdlYkNvcmU6OnNlbmRPcmllbnRhdGlvbkNoYW5nZUV2ZW50KToK
KyAgICAgICAgKiBwYWdlL0ZyYW1lLmg6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6RnJhbWU6
Om9yaWVudGF0aW9uKToKKwogMjAwOS0wOS0xOCAgQW5kZXJzIENhcmxzc29uICA8YW5kZXJzY2FA
YXBwbGUuY29tPgogCiAgICAgICAgIFRyeSBmaXhpbmcgdGhlIGJ1aWxkIGFnYWluLgpkaWZmIC0t
Z2l0IGEvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlIGIvV2ViQ29yZS9EZXJpdmVkU291cmNl
cy5tYWtlCmluZGV4IGQ4MmQ0NDkuLmFmNWExNjYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvRGVyaXZl
ZFNvdXJjZXMubWFrZQorKysgYi9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKQEAgLTQ0Nyw2
ICs0NDcsOCBAQCBhbGwgOiBcCiAKICMgLS0tLS0tLS0KIAorQURESVRJT05BTF9JRExfREVGSU5F
UyA6PQorCiBpZmVxICgkKE9TKSxNQUNPUykKIAogRlJBTUVXT1JLX0ZMQUdTID0gJChzaGVsbCBl
Y2hvICQoRlJBTUVXT1JLX1NFQVJDSF9QQVRIUykgfCBwZXJsIC1lICdwcmludCAiLUYgIiAuIGpv
aW4oIiAtRiAiLCBzcGxpdCgiICIsIDw+KSk7JykKQEAgLTQ4MSw2ICs0ODMsMTMgQEAgZWxzZQog
ICAgIEVOQUJMRV9JTlNQRUNUT1IgPSAwCiBlbmRpZgogCitpZmVxICgkKHNoZWxsIGdjYyAtaXN5
c3Jvb3QgJChTREtST09UKSAtRSAtUCAtZE0gLUYgJChCVUlMVF9QUk9EVUNUU19ESVIpICQoRlJB
TUVXT1JLX0ZMQUdTKSBXZWJDb3JlL0ZvcndhcmRpbmdIZWFkZXJzL3d0Zi9QbGF0Zm9ybS5oIHwg
Z3JlcCBFTkFCTEVfT1JJRU5UQVRJT05fRVZFTlRTIHwgY3V0IC1kJyAnIC1mMyksIDEpCisgICAg
RU5BQkxFX09SSUVOVEFUSU9OX0VWRU5UUyA9IDEKKyAgICBBRERJVElPTkFMX0lETF9ERUZJTkVT
IDo9ICQoQURESVRJT05BTF9JRExfREVGSU5FUykgRU5BQkxFX09SSUVOVEFUSU9OX0VWRU5UUwor
ZWxzZQorICAgIEVOQUJMRV9PUklFTlRBVElPTl9FVkVOVFMgPSAwCitlbmRpZgorCiAjIENTUyBw
cm9wZXJ0eSBuYW1lcyBhbmQgdmFsdWUga2V5d29yZHMKIAogV0VCQ09SRV9DU1NfUFJPUEVSVFlf
TkFNRVMgOj0gJChXZWJDb3JlKS9jc3MvQ1NTUHJvcGVydHlOYW1lcy5pbgpAQCAtNzM5LDcgKzc0
OCw3IEBAIEdFTkVSQVRFX0JJTkRJTkdTX1NDUklQVFMgPSBcCiAjCiAKIEpTJS5oIDogJS5pZGwg
JChHRU5FUkFURV9CSU5ESU5HU19TQ1JJUFRTKSBiaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0
b3JKUy5wbQotCSQoR0VORVJBVEVfQklORElOR1MpIC0tZGVmaW5lcyAiJChGRUFUVVJFX0RFRklO
RVMpIExBTkdVQUdFX0pBVkFTQ1JJUFQiIC0tZ2VuZXJhdG9yIEpTICQ8CisJJChHRU5FUkFURV9C
SU5ESU5HUykgLS1kZWZpbmVzICIkKEZFQVRVUkVfREVGSU5FUykgJChBRERJVElPTkFMX0lETF9E
RUZJTkVTKSBMQU5HVUFHRV9KQVZBU0NSSVBUIiAtLWdlbmVyYXRvciBKUyAkPAogCiAtaW5jbHVk
ZSAkKEpTX0RPTV9IRUFERVJTOi5oPS5kZXApCiAKQEAgLTc5MSw2ICs4MDAsMTAgQEAgaWZlcSAo
JChFTkFCTEVfSU5TUEVDVE9SKSwgMSkKICAgICBXRUJDT1JFX0VYUE9SVF9ERVBFTkRFTkNJRVMg
Oj0gJChXRUJDT1JFX0VYUE9SVF9ERVBFTkRFTkNJRVMpIFdlYkNvcmUuSW5zcGVjdG9yLmV4cAog
ZW5kaWYKIAoraWZlcSAoJChFTkFCTEVfT1JJRU5UQVRJT05fRVZFTlRTKSwgMSkKKyAgICBXRUJD
T1JFX0VYUE9SVF9ERVBFTkRFTkNJRVMgOj0gJChXRUJDT1JFX0VYUE9SVF9ERVBFTkRFTkNJRVMp
IFdlYkNvcmUuT3JpZW50YXRpb25FdmVudHMuZXhwCitlbmRpZgorCiBpZmVxICgkKGZpbmRzdHJp
bmcgMTAuNCwkKE1BQ09TWF9ERVBMT1lNRU5UX1RBUkdFVCkpLCAxMC40KQogICAgIFdFQkNPUkVf
RVhQT1JUX0RFUEVOREVOQ0lFUyA6PSAkKFdFQkNPUkVfRVhQT1JUX0RFUEVOREVOQ0lFUykgV2Vi
Q29yZS5UaWdlci5leHAKIGVuZGlmCkBAIC04MDcsNyArODIwLDcgQEAgV2ViQ29yZS5leHAgOiBX
ZWJDb3JlLmJhc2UuZXhwICQoV0VCQ09SRV9FWFBPUlRfREVQRU5ERU5DSUVTKQogIyBPYmplY3Rp
dmUtQyBiaW5kaW5ncwogCiBET00lLmggOiAlLmlkbCAkKEdFTkVSQVRFX0JJTkRJTkdTX1NDUklQ
VFMpIGJpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvck9iakMucG0gYmluZGluZ3Mvb2JqYy9Q
dWJsaWNET01JbnRlcmZhY2VzLmgKLQkkKEdFTkVSQVRFX0JJTkRJTkdTKSAtLWRlZmluZXMgIiQo
RkVBVFVSRV9ERUZJTkVTKSBMQU5HVUFHRV9PQkpFQ1RJVkVfQyIgLS1nZW5lcmF0b3IgT2JqQyAk
PAorCSQoR0VORVJBVEVfQklORElOR1MpIC0tZGVmaW5lcyAiJChGRUFUVVJFX0RFRklORVMpICQo
QURESVRJT05BTF9JRExfREVGSU5FUykgTEFOR1VBR0VfT0JKRUNUSVZFX0MiIC0tZ2VuZXJhdG9y
IE9iakMgJDwKIAogLWluY2x1ZGUgJChPQkpDX0RPTV9IRUFERVJTOi5oPS5kZXApCiAKZGlmZiAt
LWdpdCBhL1dlYkNvcmUvV2ViQ29yZS5PcmllbnRhdGlvbkV2ZW50cy5leHAgYi9XZWJDb3JlL1dl
YkNvcmUuT3JpZW50YXRpb25FdmVudHMuZXhwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAuLmVjMDk3OGQKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJDb3JlL1dlYkNvcmUuT3JpZW50
YXRpb25FdmVudHMuZXhwCkBAIC0wLDAgKzEgQEAKK19fWk43V2ViQ29yZTVGcmFtZTI2c2VuZE9y
aWVudGF0aW9uQ2hhbmdlRXZlbnRFaQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9XZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2ogYi9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagppbmRleCA1YjE1MWJkLi42ZWFlNmM0IDEwMDY0NAotLS0gYS9XZWJDb3JlL1dlYkNv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9XZWJDb3JlL1dlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagpAQCAtOTgxMyw2ICs5ODEzLDcgQEAKIAkJRjkxNkM0OEMwREI1
MTBGODAwNzZDRDgzIC8qIEpTWE1MSHR0cFJlcXVlc3RQcm9ncmVzc0V2ZW50LmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU1hNTEh0dHBSZXF1ZXN0UHJvZ3Jlc3NFdmVudC5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGOUYwRUQ3NzBEQjUwQ0EyMDBEMTZEQjkg
LyogWE1MSHR0cFJlcXVlc3RQcm9ncmVzc0V2ZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBYTUxIdHRwUmVxdWVzdFByb2dyZXNzRXZlbnQuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJRjlGMEVENzgwREI1MENBMjAwRDE2REI5IC8qIFhNTEh0dHBSZXF1ZXN0
UHJvZ3Jlc3NFdmVudC5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFhNTEh0dHBSZXF1ZXN0
UHJvZ3Jlc3NFdmVudC5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUZFMTM2QUU3
MTA2NDNCRTUwMDc4Q0Y2RCAvKiBXZWJDb3JlLk9yaWVudGF0aW9uRXZlbnRzLmV4cCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuZXhwb3J0czsgcGF0aCA9IFdlYkNvcmUuT3JpZW50YXRpb25FdmVudHMu
ZXhwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGRTQ5QkQzMDEwNjE3MTkxMDBEMEUx
QUUgLyogV2ViQ29yZS5JbnNwZWN0b3IuZXhwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5leHBvcnRz
OyBwYXRoID0gV2ViQ29yZS5JbnNwZWN0b3IuZXhwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQlGRTQ5RUY5NzBEQzUxNDYyMDA0MjY2RTEgLyogRGFzaGJvYXJkU3VwcG9ydENTU1Byb3Bl
cnR5TmFtZXMuaW4gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gRGFzaGJvYXJkU3VwcG9ydENTU1By
b3BlcnR5TmFtZXMuaW47IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUZFNkZENDg1MEY2
NzZFNTcwMDA5Mjg3MyAvKiBDb29yZGluYXRlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBDb29yZGluYXRlcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTA0
NDgsNiArMTA0NDksNyBAQAogCQkJCTQ0OTE5NTlDMEZCRTE3RDcwMEQ5RjgyNCAvKiBXZWJDb3Jl
LkpOSS5leHAgKi8sCiAJCQkJNDQ5MTk1OUIwRkJFMTdENzAwRDlGODI0IC8qIFdlYkNvcmUuTFA2
NC5leHAgKi8sCiAJCQkJNDQ5MTk1OUEwRkJFMTdENzAwRDlGODI0IC8qIFdlYkNvcmUuTlBBUEku
ZXhwICovLAorCQkJCUZFMTM2QUU3MTA2NDNCRTUwMDc4Q0Y2RCAvKiBXZWJDb3JlLk9yaWVudGF0
aW9uRXZlbnRzLmV4cCAqLywKIAkJCQk0NDkxOTU5OTBGQkUxN0Q3MDBEOUY4MjQgLyogV2ViQ29y
ZS5TVkcuQW5pbWF0aW9uLmV4cCAqLywKIAkJCQk0NDkxOTU5ODBGQkUxN0Q3MDBEOUY4MjQgLyog
V2ViQ29yZS5TVkcuZXhwICovLAogCQkJCTQ0OTE5NTk3MEZCRTE3RDcwMEQ5RjgyNCAvKiBXZWJD
b3JlLlNWRy5GaWx0ZXJzLmV4cCAqLywKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9IVE1MQXR0
cmlidXRlTmFtZXMuaW4gYi9XZWJDb3JlL2h0bWwvSFRNTEF0dHJpYnV0ZU5hbWVzLmluCmluZGV4
IGYyNThiZDcuLjYzYTVjMjEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaHRtbC9IVE1MQXR0cmlidXRl
TmFtZXMuaW4KKysrIGIvV2ViQ29yZS9odG1sL0hUTUxBdHRyaWJ1dGVOYW1lcy5pbgpAQCAtMTY3
LDYgKzE2Nyw3IEBAIG9ubW91c2V1cAogb25tb3VzZXdoZWVsCiBvbm9ubGluZQogb25vZmZsaW5l
Citvbm9yaWVudGF0aW9uY2hhbmdlCiBvbnBhZ2VoaWRlCiBvbnBhZ2VzaG93CiBvbnBhc3RlCmRp
ZmYgLS1naXQgYS9XZWJDb3JlL2h0bWwvSFRNTEJvZHlFbGVtZW50LmNwcCBiL1dlYkNvcmUvaHRt
bC9IVE1MQm9keUVsZW1lbnQuY3BwCmluZGV4IDM4MTMxNzcuLjkyNGI4ZjYgMTAwNjQ0Ci0tLSBh
L1dlYkNvcmUvaHRtbC9IVE1MQm9keUVsZW1lbnQuY3BwCisrKyBiL1dlYkNvcmUvaHRtbC9IVE1M
Qm9keUVsZW1lbnQuY3BwCkBAIC0xNDMsNiArMTQzLDEwIEBAIHZvaWQgSFRNTEJvZHlFbGVtZW50
OjpwYXJzZU1hcHBlZEF0dHJpYnV0ZShNYXBwZWRBdHRyaWJ1dGUgKmF0dHIpCiAgICAgICAgIGRv
Y3VtZW50KCktPnNldFdpbmRvd0F0dHJpYnV0ZUV2ZW50TGlzdGVuZXIoZXZlbnROYW1lcygpLmJs
dXJFdmVudCwgY3JlYXRlQXR0cmlidXRlRXZlbnRMaXN0ZW5lcihkb2N1bWVudCgpLT5mcmFtZSgp
LCBhdHRyKSk7CiAgICAgZWxzZSBpZiAoYXR0ci0+bmFtZSgpID09IG9uZm9jdXNBdHRyKQogICAg
ICAgICBkb2N1bWVudCgpLT5zZXRXaW5kb3dBdHRyaWJ1dGVFdmVudExpc3RlbmVyKGV2ZW50TmFt
ZXMoKS5mb2N1c0V2ZW50LCBjcmVhdGVBdHRyaWJ1dGVFdmVudExpc3RlbmVyKGRvY3VtZW50KCkt
PmZyYW1lKCksIGF0dHIpKTsKKyNpZiBFTkFCTEUoT1JJRU5UQVRJT05fRVZFTlRTKQorICAgIGVs
c2UgaWYgKGF0dHItPm5hbWUoKSA9PSBvbm9yaWVudGF0aW9uY2hhbmdlQXR0cikKKyAgICAgICAg
ZG9jdW1lbnQoKS0+c2V0V2luZG93QXR0cmlidXRlRXZlbnRMaXN0ZW5lcihldmVudE5hbWVzKCku
b3JpZW50YXRpb25jaGFuZ2VFdmVudCwgY3JlYXRlQXR0cmlidXRlRXZlbnRMaXN0ZW5lcihkb2N1
bWVudCgpLT5mcmFtZSgpLCBhdHRyKSk7CisjZW5kaWYKICAgICBlbHNlIGlmIChhdHRyLT5uYW1l
KCkgPT0gb25oYXNoY2hhbmdlQXR0cikKICAgICAgICAgZG9jdW1lbnQoKS0+c2V0V2luZG93QXR0
cmlidXRlRXZlbnRMaXN0ZW5lcihldmVudE5hbWVzKCkuaGFzaGNoYW5nZUV2ZW50LCBjcmVhdGVB
dHRyaWJ1dGVFdmVudExpc3RlbmVyKGRvY3VtZW50KCktPmZyYW1lKCksIGF0dHIpKTsKICAgICBl
bHNlIGlmIChhdHRyLT5uYW1lKCkgPT0gb25yZXNpemVBdHRyKQpAQCAtNDEyLDYgKzQxNiwxOCBA
QCB2b2lkIEhUTUxCb2R5RWxlbWVudDo6c2V0T25vbmxpbmUoUGFzc1JlZlB0cjxFdmVudExpc3Rl
bmVyPiBldmVudExpc3RlbmVyKQogICAgIGRvY3VtZW50KCktPnNldFdpbmRvd0F0dHJpYnV0ZUV2
ZW50TGlzdGVuZXIoZXZlbnROYW1lcygpLm9ubGluZUV2ZW50LCBldmVudExpc3RlbmVyKTsKIH0K
IAorI2lmIEVOQUJMRShPUklFTlRBVElPTl9FVkVOVFMpCitFdmVudExpc3RlbmVyKiBIVE1MQm9k
eUVsZW1lbnQ6Om9ub3JpZW50YXRpb25jaGFuZ2UoKSBjb25zdAoreworICAgIHJldHVybiBkb2N1
bWVudCgpLT5nZXRXaW5kb3dBdHRyaWJ1dGVFdmVudExpc3RlbmVyKGV2ZW50TmFtZXMoKS5vcmll
bnRhdGlvbmNoYW5nZUV2ZW50KTsKK30KKwordm9pZCBIVE1MQm9keUVsZW1lbnQ6OnNldE9ub3Jp
ZW50YXRpb25jaGFuZ2UoUGFzc1JlZlB0cjxFdmVudExpc3RlbmVyPiBldmVudExpc3RlbmVyKQor
eworICAgIGRvY3VtZW50KCktPnNldFdpbmRvd0F0dHJpYnV0ZUV2ZW50TGlzdGVuZXIoZXZlbnRO
YW1lcygpLm9yaWVudGF0aW9uY2hhbmdlRXZlbnQsIGV2ZW50TGlzdGVuZXIpOworfQorI2VuZGlm
CisKIEV2ZW50TGlzdGVuZXIqIEhUTUxCb2R5RWxlbWVudDo6b25yZXNpemUoKSBjb25zdAogewog
ICAgIHJldHVybiBkb2N1bWVudCgpLT5nZXRXaW5kb3dBdHRyaWJ1dGVFdmVudExpc3RlbmVyKGV2
ZW50TmFtZXMoKS5yZXNpemVFdmVudCk7CmRpZmYgLS1naXQgYS9XZWJDb3JlL2h0bWwvSFRNTEJv
ZHlFbGVtZW50LmggYi9XZWJDb3JlL2h0bWwvSFRNTEJvZHlFbGVtZW50LmgKaW5kZXggZDVlZmFi
My4uZTBkNDk5NiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9odG1sL0hUTUxCb2R5RWxlbWVudC5oCisr
KyBiL1dlYkNvcmUvaHRtbC9IVE1MQm9keUVsZW1lbnQuaApAQCAtNjMsNiArNjMsMTAgQEAgcHVi
bGljOgogICAgIHZvaWQgc2V0T25vZmZsaW5lKFBhc3NSZWZQdHI8RXZlbnRMaXN0ZW5lcj4pOwog
ICAgIEV2ZW50TGlzdGVuZXIqIG9ub25saW5lKCkgY29uc3Q7CiAgICAgdm9pZCBzZXRPbm9ubGlu
ZShQYXNzUmVmUHRyPEV2ZW50TGlzdGVuZXI+KTsKKyNpZiBFTkFCTEUoT1JJRU5UQVRJT05fRVZF
TlRTKQorICAgIEV2ZW50TGlzdGVuZXIqIG9ub3JpZW50YXRpb25jaGFuZ2UoKSBjb25zdDsKKyAg
ICB2b2lkIHNldE9ub3JpZW50YXRpb25jaGFuZ2UoUGFzc1JlZlB0cjxFdmVudExpc3RlbmVyPik7
CisjZW5kaWYKICAgICBFdmVudExpc3RlbmVyKiBvbnJlc2l6ZSgpIGNvbnN0OwogICAgIHZvaWQg
c2V0T25yZXNpemUoUGFzc1JlZlB0cjxFdmVudExpc3RlbmVyPik7CiAgICAgRXZlbnRMaXN0ZW5l
ciogb25zdG9yYWdlKCkgY29uc3Q7CmRpZmYgLS1naXQgYS9XZWJDb3JlL2h0bWwvSFRNTEJvZHlF
bGVtZW50LmlkbCBiL1dlYkNvcmUvaHRtbC9IVE1MQm9keUVsZW1lbnQuaWRsCmluZGV4IDdiZTY4
MDMuLjJlOTNlMmUgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaHRtbC9IVE1MQm9keUVsZW1lbnQuaWRs
CisrKyBiL1dlYkNvcmUvaHRtbC9IVE1MQm9keUVsZW1lbnQuaWRsCkBAIC00NCw2ICs0NCwxMCBA
QCBtb2R1bGUgaHRtbCB7CiAgICAgICAgIGF0dHJpYnV0ZSBbRG9udEVudW1dIEV2ZW50TGlzdGVu
ZXIgb25zdG9yYWdlOwogICAgICAgICBhdHRyaWJ1dGUgW0RvbnRFbnVtXSBFdmVudExpc3RlbmVy
IG9udW5sb2FkOwogCisjaWYgZGVmaW5lZChFTkFCTEVfT1JJRU5UQVRJT05fRVZFTlRTKSAmJiBF
TkFCTEVfT1JJRU5UQVRJT05fRVZFTlRTCisgICAgICAgIGF0dHJpYnV0ZSBbRG9udEVudW1dIEV2
ZW50TGlzdGVuZXIgb25vcmllbnRhdGlvbmNoYW5nZTsKKyNlbmRpZgorCiAgICAgICAgIC8vIE92
ZXJyaWRlcyBvZiBFbGVtZW50IGF0dHJpYnV0ZXMgKGxlZnQgaW4gZm9yIGNvbXBsZXRlbmVzcyku
CiAgICAgICAgIC8vIGF0dHJpYnV0ZSBbRG9udEVudW1dIEV2ZW50TGlzdGVuZXIgb25ibHVyOwog
ICAgICAgICAvLyBhdHRyaWJ1dGUgW0RvbnRFbnVtXSBFdmVudExpc3RlbmVyIG9uZXJyb3I7CmRp
ZmYgLS1naXQgYS9XZWJDb3JlL2h0bWwvSFRNTEZyYW1lU2V0RWxlbWVudC5jcHAgYi9XZWJDb3Jl
L2h0bWwvSFRNTEZyYW1lU2V0RWxlbWVudC5jcHAKaW5kZXggOGRjMzk2NC4uNzkzODFiZSAxMDA2
NDQKLS0tIGEvV2ViQ29yZS9odG1sL0hUTUxGcmFtZVNldEVsZW1lbnQuY3BwCisrKyBiL1dlYkNv
cmUvaHRtbC9IVE1MRnJhbWVTZXRFbGVtZW50LmNwcApAQCAtMTM1LDYgKzEzNSwxMCBAQCB2b2lk
IEhUTUxGcmFtZVNldEVsZW1lbnQ6OnBhcnNlTWFwcGVkQXR0cmlidXRlKE1hcHBlZEF0dHJpYnV0
ZSAqYXR0cikKICAgICAgICAgZG9jdW1lbnQoKS0+c2V0V2luZG93QXR0cmlidXRlRXZlbnRMaXN0
ZW5lcihldmVudE5hbWVzKCkuYmx1ckV2ZW50LCBjcmVhdGVBdHRyaWJ1dGVFdmVudExpc3RlbmVy
KGRvY3VtZW50KCktPmZyYW1lKCksIGF0dHIpKTsKICAgICBlbHNlIGlmIChhdHRyLT5uYW1lKCkg
PT0gb25mb2N1c0F0dHIpCiAgICAgICAgIGRvY3VtZW50KCktPnNldFdpbmRvd0F0dHJpYnV0ZUV2
ZW50TGlzdGVuZXIoZXZlbnROYW1lcygpLmZvY3VzRXZlbnQsIGNyZWF0ZUF0dHJpYnV0ZUV2ZW50
TGlzdGVuZXIoZG9jdW1lbnQoKS0+ZnJhbWUoKSwgYXR0cikpOworI2lmIEVOQUJMRShPUklFTlRB
VElPTl9FVkVOVFMpCisgICAgZWxzZSBpZiAoYXR0ci0+bmFtZSgpID09IG9ub3JpZW50YXRpb25j
aGFuZ2VBdHRyKQorICAgICAgICBkb2N1bWVudCgpLT5zZXRXaW5kb3dBdHRyaWJ1dGVFdmVudExp
c3RlbmVyKGV2ZW50TmFtZXMoKS5vcmllbnRhdGlvbmNoYW5nZUV2ZW50LCBjcmVhdGVBdHRyaWJ1
dGVFdmVudExpc3RlbmVyKGRvY3VtZW50KCktPmZyYW1lKCksIGF0dHIpKTsKKyNlbmRpZgogICAg
IGVsc2UgaWYgKGF0dHItPm5hbWUoKSA9PSBvbmhhc2hjaGFuZ2VBdHRyKQogICAgICAgICBkb2N1
bWVudCgpLT5zZXRXaW5kb3dBdHRyaWJ1dGVFdmVudExpc3RlbmVyKGV2ZW50TmFtZXMoKS5oYXNo
Y2hhbmdlRXZlbnQsIGNyZWF0ZUF0dHJpYnV0ZUV2ZW50TGlzdGVuZXIoZG9jdW1lbnQoKS0+ZnJh
bWUoKSwgYXR0cikpOwogICAgIGVsc2UgaWYgKGF0dHItPm5hbWUoKSA9PSBvbnJlc2l6ZUF0dHIp
CkBAIC0zMjAsNiArMzI0LDE4IEBAIHZvaWQgSFRNTEZyYW1lU2V0RWxlbWVudDo6c2V0T25vbmxp
bmUoUGFzc1JlZlB0cjxFdmVudExpc3RlbmVyPiBldmVudExpc3RlbmVyKQogICAgIGRvY3VtZW50
KCktPnNldFdpbmRvd0F0dHJpYnV0ZUV2ZW50TGlzdGVuZXIoZXZlbnROYW1lcygpLm9ubGluZUV2
ZW50LCBldmVudExpc3RlbmVyKTsKIH0KIAorI2lmIEVOQUJMRShPUklFTlRBVElPTl9FVkVOVFMp
CitFdmVudExpc3RlbmVyKiBIVE1MRnJhbWVTZXRFbGVtZW50Ojpvbm9yaWVudGF0aW9uY2hhbmdl
KCkgY29uc3QKK3sKKyAgICByZXR1cm4gZG9jdW1lbnQoKS0+Z2V0V2luZG93QXR0cmlidXRlRXZl
bnRMaXN0ZW5lcihldmVudE5hbWVzKCkub3JpZW50YXRpb25jaGFuZ2VFdmVudCk7Cit9CisKK3Zv
aWQgSFRNTEZyYW1lU2V0RWxlbWVudDo6c2V0T25vcmllbnRhdGlvbmNoYW5nZShQYXNzUmVmUHRy
PEV2ZW50TGlzdGVuZXI+IGV2ZW50TGlzdGVuZXIpCit7CisgICAgZG9jdW1lbnQoKS0+c2V0V2lu
ZG93QXR0cmlidXRlRXZlbnRMaXN0ZW5lcihldmVudE5hbWVzKCkub3JpZW50YXRpb25jaGFuZ2VF
dmVudCwgZXZlbnRMaXN0ZW5lcik7Cit9CisjZW5kaWYKKyAgICAKIEV2ZW50TGlzdGVuZXIqIEhU
TUxGcmFtZVNldEVsZW1lbnQ6Om9ucmVzaXplKCkgY29uc3QKIHsKICAgICByZXR1cm4gZG9jdW1l
bnQoKS0+Z2V0V2luZG93QXR0cmlidXRlRXZlbnRMaXN0ZW5lcihldmVudE5hbWVzKCkucmVzaXpl
RXZlbnQpOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1sL0hUTUxGcmFtZVNldEVsZW1lbnQuaCBi
L1dlYkNvcmUvaHRtbC9IVE1MRnJhbWVTZXRFbGVtZW50LmgKaW5kZXggYjUxZTcwMi4uMGRlYWNm
MSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9odG1sL0hUTUxGcmFtZVNldEVsZW1lbnQuaAorKysgYi9X
ZWJDb3JlL2h0bWwvSFRNTEZyYW1lU2V0RWxlbWVudC5oCkBAIC04Nyw2ICs4NywxMCBAQCBwdWJs
aWM6CiAgICAgdm9pZCBzZXRPbm9mZmxpbmUoUGFzc1JlZlB0cjxFdmVudExpc3RlbmVyPik7CiAg
ICAgRXZlbnRMaXN0ZW5lciogb25vbmxpbmUoKSBjb25zdDsKICAgICB2b2lkIHNldE9ub25saW5l
KFBhc3NSZWZQdHI8RXZlbnRMaXN0ZW5lcj4pOworI2lmIEVOQUJMRShPUklFTlRBVElPTl9FVkVO
VFMpCisgICAgRXZlbnRMaXN0ZW5lciogb25vcmllbnRhdGlvbmNoYW5nZSgpIGNvbnN0OworICAg
IHZvaWQgc2V0T25vcmllbnRhdGlvbmNoYW5nZShQYXNzUmVmUHRyPEV2ZW50TGlzdGVuZXI+KTsK
KyNlbmRpZgogICAgIEV2ZW50TGlzdGVuZXIqIG9ucmVzaXplKCkgY29uc3Q7CiAgICAgdm9pZCBz
ZXRPbnJlc2l6ZShQYXNzUmVmUHRyPEV2ZW50TGlzdGVuZXI+KTsKICAgICBFdmVudExpc3RlbmVy
KiBvbnN0b3JhZ2UoKSBjb25zdDsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9IVE1MRnJhbWVT
ZXRFbGVtZW50LmlkbCBiL1dlYkNvcmUvaHRtbC9IVE1MRnJhbWVTZXRFbGVtZW50LmlkbAppbmRl
eCAwMzc1YzBhLi5iNDRhMDcxIDEwMDY0NAotLS0gYS9XZWJDb3JlL2h0bWwvSFRNTEZyYW1lU2V0
RWxlbWVudC5pZGwKKysrIGIvV2ViQ29yZS9odG1sL0hUTUxGcmFtZVNldEVsZW1lbnQuaWRsCkBA
IC00MSw2ICs0MSwxMCBAQCBtb2R1bGUgaHRtbCB7CiAgICAgICAgIGF0dHJpYnV0ZSBbRG9udEVu
dW1dIEV2ZW50TGlzdGVuZXIgb25zdG9yYWdlOwogICAgICAgICBhdHRyaWJ1dGUgW0RvbnRFbnVt
XSBFdmVudExpc3RlbmVyIG9udW5sb2FkOwogCisjaWYgZGVmaW5lZChFTkFCTEVfT1JJRU5UQVRJ
T05fRVZFTlRTKSAmJiBFTkFCTEVfT1JJRU5UQVRJT05fRVZFTlRTCisgICAgICAgIGF0dHJpYnV0
ZSBbRG9udEVudW1dIEV2ZW50TGlzdGVuZXIgb25vcmllbnRhdGlvbmNoYW5nZTsKKyNlbmRpZgor
CiAgICAgICAgIC8vIE92ZXJyaWRlcyBvZiBFbGVtZW50IGF0dHJpYnV0ZXMgKGxlZnQgaW4gZm9y
IGNvbXBsZXRlbmVzcykuCiAgICAgICAgIC8vIGF0dHJpYnV0ZSBbRG9udEVudW1dIEV2ZW50TGlz
dGVuZXIgb25ibHVyOwogICAgICAgICAvLyBhdHRyaWJ1dGUgW0RvbnRFbnVtXSBFdmVudExpc3Rl
bmVyIG9uZXJyb3I7CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNwcCBiL1dl
YkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwCmluZGV4IDc4M2Y5M2QuLjk0M2YxMTkgMTAwNjQ0Ci0t
LSBhL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwCisrKyBiL1dlYkNvcmUvcGFnZS9ET01XaW5k
b3cuY3BwCkBAIC00NjIsNiArNDYyLDE2IEBAIHZvaWQgRE9NV2luZG93OjpjbGVhcigpCiAjZW5k
aWYKIH0KIAorI2lmIEVOQUJMRShPUklFTlRBVElPTl9FVkVOVFMpCitpbnQgRE9NV2luZG93Ojpv
cmllbnRhdGlvbigpIGNvbnN0Cit7CisgICAgaWYgKCFtX2ZyYW1lKQorICAgICAgICByZXR1cm4g
MDsKKyAgICAKKyAgICByZXR1cm4gbV9mcmFtZS0+b3JpZW50YXRpb24oKTsKK30KKyNlbmRpZgor
ICAgIAogU2NyZWVuKiBET01XaW5kb3c6OnNjcmVlbigpIGNvbnN0CiB7CiAgICAgaWYgKCFtX3Nj
cmVlbikKQEAgLTIwODgsNiArMjA5OCwxOCBAQCB2b2lkIERPTVdpbmRvdzo6c2V0T25pbnZhbGlk
KFBhc3NSZWZQdHI8RXZlbnRMaXN0ZW5lcj4gZXZlbnRMaXN0ZW5lcikKICAgICBzZXRBdHRyaWJ1
dGVFdmVudExpc3RlbmVyKGV2ZW50TmFtZXMoKS5pbnZhbGlkRXZlbnQsIGV2ZW50TGlzdGVuZXIp
OwogfQogCisjaWYgRU5BQkxFKE9SSUVOVEFUSU9OX0VWRU5UUykKK0V2ZW50TGlzdGVuZXIqIERP
TVdpbmRvdzo6b25vcmllbnRhdGlvbmNoYW5nZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIGdldEF0
dHJpYnV0ZUV2ZW50TGlzdGVuZXIoZXZlbnROYW1lcygpLm9yaWVudGF0aW9uY2hhbmdlRXZlbnQp
OworfQorCit2b2lkIERPTVdpbmRvdzo6c2V0T25vcmllbnRhdGlvbmNoYW5nZShQYXNzUmVmUHRy
PEV2ZW50TGlzdGVuZXI+IGV2ZW50TGlzdGVuZXIpCit7CisgICAgc2V0QXR0cmlidXRlRXZlbnRM
aXN0ZW5lcihldmVudE5hbWVzKCkub3JpZW50YXRpb25jaGFuZ2VFdmVudCwgZXZlbnRMaXN0ZW5l
cik7Cit9CisjZW5kaWYKKwogdm9pZCBET01XaW5kb3c6OmNhcHR1cmVFdmVudHMoKQogewogICAg
IC8vIE5vdCBpbXBsZW1lbnRlZC4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cu
aCBiL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuaAppbmRleCBkYjRlZGRhLi4zZmIxMmViIDEwMDY0
NAotLS0gYS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmgKKysrIGIvV2ViQ29yZS9wYWdlL0RPTVdp
bmRvdy5oCkBAIC04NSw2ICs4NSwxMCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICAgICAgICAg
dm9pZCBjbGVhcigpOwogCisjaWYgRU5BQkxFKE9SSUVOVEFUSU9OX0VWRU5UUykKKyAgICAgICAg
aW50IG9yaWVudGF0aW9uKCkgY29uc3Q7CisjZW5kaWYKKwogICAgICAgICB2b2lkIHNldFNlY3Vy
aXR5T3JpZ2luKFNlY3VyaXR5T3JpZ2luKiBzZWN1cml0eU9yaWdpbikgeyBtX3NlY3VyaXR5T3Jp
Z2luID0gc2VjdXJpdHlPcmlnaW47IH0KICAgICAgICAgU2VjdXJpdHlPcmlnaW4qIHNlY3VyaXR5
T3JpZ2luKCkgY29uc3QgeyByZXR1cm4gbV9zZWN1cml0eU9yaWdpbi5nZXQoKTsgfQogCkBAIC0z
ODMsNiArMzg3LDEwIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgdm9pZCBzZXRPbmNv
bnRleHRtZW51KFBhc3NSZWZQdHI8RXZlbnRMaXN0ZW5lcj4pOwogICAgICAgICBFdmVudExpc3Rl
bmVyKiBvbmludmFsaWQoKSBjb25zdDsKICAgICAgICAgdm9pZCBzZXRPbmludmFsaWQoUGFzc1Jl
ZlB0cjxFdmVudExpc3RlbmVyPik7CisjaWYgRU5BQkxFKE9SSUVOVEFUSU9OX0VWRU5UUykKKyAg
ICAgICAgRXZlbnRMaXN0ZW5lciogb25vcmllbnRhdGlvbmNoYW5nZSgpIGNvbnN0OworICAgICAg
ICB2b2lkIHNldE9ub3JpZW50YXRpb25jaGFuZ2UoUGFzc1JlZlB0cjxFdmVudExpc3RlbmVyPik7
CisjZW5kaWYKIAogICAgICAgICB2b2lkIGNhcHR1cmVFdmVudHMoKTsKICAgICAgICAgdm9pZCBy
ZWxlYXNlRXZlbnRzKCk7CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmlkbCBi
L1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuaWRsCmluZGV4IDg3NWY0ZWEuLjBkNDkyYmMgMTAwNjQ0
Ci0tLSBhL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuaWRsCisrKyBiL1dlYkNvcmUvcGFnZS9ET01X
aW5kb3cuaWRsCkBAIC0xNzAsNiArMTcwLDEwIEBAIG1vZHVsZSB3aW5kb3cgewogICAgICAgICBy
ZWFkb25seSBhdHRyaWJ1dGUgTm90aWZpY2F0aW9uQ2VudGVyIHdlYmtpdE5vdGlmaWNhdGlvbnM7
CiAjZW5kaWYKIAorI2lmIGRlZmluZWQoRU5BQkxFX09SSUVOVEFUSU9OX0VWRU5UUykgJiYgRU5B
QkxFX09SSUVOVEFUSU9OX0VWRU5UUworICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgbG9uZyBv
cmllbnRhdGlvbjsKKyNlbmRpZgorCiAgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBbUmVwbGFj
ZWFibGVdIENvbnNvbGUgY29uc29sZTsKIAogICAgICAgICAvLyBjcm9zcy1kb2N1bWVudCBtZXNz
YWdpbmcKQEAgLTI3OCw2ICsyODIsOSBAQCBtb2R1bGUgd2luZG93IHsKICAgICAgICAgYXR0cmli
dXRlIEV2ZW50TGlzdGVuZXIgb253ZWJraXRhbmltYXRpb25pdGVyYXRpb247CiAgICAgICAgIGF0
dHJpYnV0ZSBFdmVudExpc3RlbmVyIG9ud2Via2l0YW5pbWF0aW9uc3RhcnQ7CiAgICAgICAgIGF0
dHJpYnV0ZSBFdmVudExpc3RlbmVyIG9ud2Via2l0dHJhbnNpdGlvbmVuZDsKKyNpZiBkZWZpbmVk
KEVOQUJMRV9PUklFTlRBVElPTl9FVkVOVFMpICYmIEVOQUJMRV9PUklFTlRBVElPTl9FVkVOVFMK
KyAgICAgICAgYXR0cmlidXRlIEV2ZW50TGlzdGVuZXIgb25vcmllbnRhdGlvbmNoYW5nZTsKKyNl
bmRpZgogCiAgICAgICAgIC8vIEV2ZW50VGFyZ2V0IGludGVyZmFjZQogICAgICAgICBbQ3VzdG9t
XSB2b2lkIGFkZEV2ZW50TGlzdGVuZXIoaW4gRE9NU3RyaW5nIHR5cGUsCmRpZmYgLS1naXQgYS9X
ZWJDb3JlL3BhZ2UvRnJhbWUuY3BwIGIvV2ViQ29yZS9wYWdlL0ZyYW1lLmNwcAppbmRleCA3YTNl
ZDI3Li5jNzJmYzA3IDEwMDY0NAotLS0gYS9XZWJDb3JlL3BhZ2UvRnJhbWUuY3BwCisrKyBiL1dl
YkNvcmUvcGFnZS9GcmFtZS5jcHAKQEAgLTEyNyw2ICsxMjcsOSBAQCBGcmFtZTo6RnJhbWUoUGFn
ZSogcGFnZSwgSFRNTEZyYW1lT3duZXJFbGVtZW50KiBvd25lckVsZW1lbnQsIEZyYW1lTG9hZGVy
Q2xpZW50KgogICAgICwgbV9ldmVudEhhbmRsZXIodGhpcykKICAgICAsIG1fYW5pbWF0aW9uQ29u
dHJvbGxlcih0aGlzKQogICAgICwgbV9saWZlU3VwcG9ydFRpbWVyKHRoaXMsICZGcmFtZTo6bGlm
ZVN1cHBvcnRUaW1lckZpcmVkKQorI2lmIEVOQUJMRShPUklFTlRBVElPTl9FVkVOVFMpCisgICAg
LCBtX29yaWVudGF0aW9uKDApCisjZW5kaWYKICAgICAsIG1fY2FyZXRWaXNpYmxlKGZhbHNlKQog
ICAgICwgbV9jYXJldFBhaW50KHRydWUpCiAgICAgLCBtX2hpZ2hsaWdodFRleHRNYXRjaGVzKGZh
bHNlKQpAQCAtMjY4LDYgKzI3MSwxNSBAQCB2b2lkIEZyYW1lOjpzZXREb2N1bWVudChQYXNzUmVm
UHRyPERvY3VtZW50PiBuZXdEb2MpCiAgICAgbV9zY3JpcHQudXBkYXRlRG9jdW1lbnQoKTsKIH0K
IAorI2lmIEVOQUJMRShPUklFTlRBVElPTl9FVkVOVFMpCit2b2lkIHNlbmRPcmllbnRhdGlvbkNo
YW5nZUV2ZW50KGludCBvcmllbnRhdGlvbikKK3sKKyAgICBtX29yaWVudGF0aW9uID0gb3JpZW50
YXRpb247CisgICAgaWYgKERvY3VtZW50KiBkb2MgPSBkb2N1bWVudCgpKQorICAgICAgICBkb2Mt
PmRpc3BhdGNoV2luZG93RXZlbnQoZXZlbnROYW1lcygpLm9yaWVudGF0aW9uY2hhbmdlRXZlbnQs
IGZhbHNlLCBmYWxzZSk7Cit9CisjZW5kaWYgLy8gRU5BQkxFKE9SSUVOVEFUSU9OX0VWRU5UUykK
KyAgICAKIFNldHRpbmdzKiBGcmFtZTo6c2V0dGluZ3MoKSBjb25zdAogewogICAgIHJldHVybiBt
X3BhZ2UgPyBtX3BhZ2UtPnNldHRpbmdzKCkgOiAwOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wYWdl
L0ZyYW1lLmggYi9XZWJDb3JlL3BhZ2UvRnJhbWUuaAppbmRleCBlZjgwM2YxLi45MjYwMDUwIDEw
MDY0NAotLS0gYS9XZWJDb3JlL3BhZ2UvRnJhbWUuaAorKysgYi9XZWJDb3JlL3BhZ2UvRnJhbWUu
aApAQCAtMTUzLDYgKzE1MywxMSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICAgICAgICAgdm9p
ZCBzZXREb2N1bWVudChQYXNzUmVmUHRyPERvY3VtZW50Pik7CiAKKyNpZiBFTkFCTEUoT1JJRU5U
QVRJT05fRVZFTlRTKQorICAgICAgICB2b2lkIHNlbmRPcmllbnRhdGlvbkNoYW5nZUV2ZW50KGlu
dCBvcmllbnRhdGlvbik7CisgICAgICAgIGludCBvcmllbnRhdGlvbigpIGNvbnN0IHsgcmV0dXJu
IG1fb3JpZW50YXRpb247IH0KKyNlbmRpZgorCiAgICAgICAgIHZvaWQgY2xlYXJUaW1lcnMoKTsK
ICAgICAgICAgc3RhdGljIHZvaWQgY2xlYXJUaW1lcnMoRnJhbWVWaWV3KiwgRG9jdW1lbnQqKTsK
IApAQCAtMzU0LDYgKzM1OSwxMCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICAgICAgICAgVGlt
ZXI8RnJhbWU+IG1fbGlmZVN1cHBvcnRUaW1lcjsKIAorI2lmIEVOQUJMRShPUklFTlRBVElPTl9F
VkVOVFMpCisgICAgICAgIGludCBtX29yaWVudGF0aW9uOworI2VuZGlmCisgICAgICAgIAogICAg
ICAgICBib29sIG1fY2FyZXRWaXNpYmxlOwogICAgICAgICBib29sIG1fY2FyZXRQYWludDsKIAot
LSAKMS42LjIKCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>39870</attachid>
            <date>2009-09-21 13:37:48 -0700</date>
            <delta_ts>2009-09-21 16:03:38 -0700</delta_ts>
            <desc>And add it to EventNames.h as well.</desc>
            <filename>0001-JavaScriptCore-Add-ENABLE-ORIENTATION_EVENTS.patch</filename>
            <type>text/plain</type>
            <size>23463</size>
            <attacher name="Greg Bolsinga">bolsinga</attacher>
            
              <data encoding="base64">RnJvbSAzMDBiMDI5ZTIyNThiM2Y0MGQ2MWIxNGQyYjI0NGU3MTY0MWYzODJmIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBHcmVnIEJvbHNpbmdhIDxib2xzaW5nYUBhcHBsZS5jb20+CkRh
dGU6IE1vbiwgMjEgU2VwIDIwMDkgMTM6MzY6MzkgLTA3MDAKU3ViamVjdDogW1BBVENIXSBKYXZh
U2NyaXB0Q29yZTogQWRkIEVOQUJMRShPUklFTlRBVElPTl9FVkVOVFMpCiBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Mjk1MDgKClJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgoKKiB3dGYvUGxhdGZvcm0uaDogQWxzbyBzb3J0IFBMQVRGT1JNKElQSE9ORSkgI2RlZmlu
ZXMuCgpXZWJDb3JlOiBBZGQgRU5BQkxFKE9SSUVOVEFUSU9OX0VWRU5UUykKaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI5NTA4CgpSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KClNlZSBkb2N1bWVudGF0aW9uIGhlcmU6Cmh0dHA6Ly9kZXZlbG9wZXIuYXBwbGUuY29t
L3NhZmFyaS9saWJyYXJ5L2RvY3VtZW50YXRpb24vQXBwbGVBcHBsaWNhdGlvbnMvUmVmZXJlbmNl
L1NhZmFyaVdlYkNvbnRlbnQvSGFuZGxpbmdFdmVudHMvSGFuZGxpbmdFdmVudHMuaHRtbCMvL2Fw
cGxlX3JlZi9kb2MvdWlkL1RQNDAwMDY1MTEtU1cxNgoKTm8gbmV3IHRlc3RzLiAoT09QUyEpCgoq
IERlcml2ZWRTb3VyY2VzLm1ha2U6IFVzZSBuZXcgV2ViQ29yZS5PcmllbnRhdGlvbkV2ZW50cy5l
eHAgZmlsZSBpZiBFTkFCTEVfT1JJRU5UQVRJT05fRVZFTlRTLgpBZGQgRU5BQkxFX09SSUVOVEFU
SU9OX0VWRU5UUyB0byB0aGUgbmV3IEFERElUSU9OQUxfSURMX0RFRklORVMgdmFyaWFibGUgdGhh
dCBpcyBwYXNzZWQgdG8gdGhlIElETApjb2RlIGdlbmVyYXRvci4gVGhpcyBpcyBiZWNhdXNlIEVO
QUJMRV9PUklFTlRBVElPTl9FVkVOVFMgaXMgbm90IGluIEZFQVRVUkVfREVGSU5FUy4KKiBXZWJD
b3JlLk9yaWVudGF0aW9uRXZlbnRzLmV4cDogQWRkZWQuCiogV2ViQ29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qOiBBZGQgV2ViQ29yZS5PcmllbnRhdGlvbkV2ZW50cy5leHAuCiogZG9tL0V2
ZW50TmFtZXMuaDogQWRkIG9ub3JpZW50YXRpb25jaGFuZ2UuCiogaHRtbC9IVE1MQXR0cmlidXRl
TmFtZXMuaW46IERpdHRvLgoqIGh0bWwvSFRNTEJvZHlFbGVtZW50LmNwcDogSGFuZGxlIG9ub3Jp
ZW50YXRpb25jaGFuZ2UgcHJvcGVybHkuCihXZWJDb3JlOjpIVE1MQm9keUVsZW1lbnQ6OnBhcnNl
TWFwcGVkQXR0cmlidXRlKToKKFdlYkNvcmU6OkhUTUxCb2R5RWxlbWVudDo6b25vcmllbnRhdGlv
bmNoYW5nZSk6CihXZWJDb3JlOjpIVE1MQm9keUVsZW1lbnQ6OnNldE9ub3JpZW50YXRpb25jaGFu
Z2UpOgoqIGh0bWwvSFRNTEJvZHlFbGVtZW50Lmg6IERpdHRvLgoqIGh0bWwvSFRNTEJvZHlFbGVt
ZW50LmlkbDogRGl0dG8uCiogaHRtbC9IVE1MRnJhbWVTZXRFbGVtZW50LmNwcDogRGl0dG8uCihX
ZWJDb3JlOjpIVE1MRnJhbWVTZXRFbGVtZW50OjpwYXJzZU1hcHBlZEF0dHJpYnV0ZSk6CihXZWJD
b3JlOjpIVE1MRnJhbWVTZXRFbGVtZW50Ojpvbm9yaWVudGF0aW9uY2hhbmdlKToKKFdlYkNvcmU6
OkhUTUxGcmFtZVNldEVsZW1lbnQ6OnNldE9ub3JpZW50YXRpb25jaGFuZ2UpOgoqIGh0bWwvSFRN
TEZyYW1lU2V0RWxlbWVudC5oOiBEaXR0by4KKiBodG1sL0hUTUxGcmFtZVNldEVsZW1lbnQuaWRs
OiBEaXR0by4KKiBwYWdlL0RPTVdpbmRvdy5jcHA6IERpdHRvLgooV2ViQ29yZTo6RE9NV2luZG93
OjpvcmllbnRhdGlvbik6IENhbGxzIHVwIHRoZSB0byB0aGUgRnJhbWUgZm9yIHRoZSBvcmllbnRh
dGlvbiB2YWx1ZS4KKFdlYkNvcmU6OkRPTVdpbmRvdzo6b25vcmllbnRhdGlvbmNoYW5nZSk6CihX
ZWJDb3JlOjpET01XaW5kb3c6OnNldE9ub3JpZW50YXRpb25jaGFuZ2UpOgoqIHBhZ2UvRE9NV2lu
ZG93Lmg6IEhhbmRsZSBvbm9yaWVudGF0aW9uY2hhbmdlIHByb3Blcmx5LgoqIHBhZ2UvRE9NV2lu
ZG93LmlkbDogRGl0dG8uCiogcGFnZS9GcmFtZS5jcHA6IERpdHRvLgooV2ViQ29yZTo6RnJhbWU6
OkZyYW1lKToKKFdlYkNvcmU6OkZyYW1lOjpzZW5kT3JpZW50YXRpb25DaGFuZ2VFdmVudCk6Ciog
cGFnZS9GcmFtZS5oOiBEaXR0by4KKFdlYkNvcmU6OkZyYW1lOjpvcmllbnRhdGlvbik6Ci0tLQog
SmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgfCAgICA5ICsrKysrKwog
SmF2YVNjcmlwdENvcmUvd3RmL1BsYXRmb3JtLmggICAgICAgICAgICAgfCAgIDE1ICsrKysrKyst
LS0KIFdlYkNvcmUvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgIHwgICA0MyArKysr
KysrKysrKysrKysrKysrKysrKysrKysrKwogV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlICAg
ICAgICAgICAgICAgfCAgIDE3ICsrKysrKysrKystCiBXZWJDb3JlL1dlYkNvcmUuT3JpZW50YXRp
b25FdmVudHMuZXhwICAgICB8ICAgIDEgKwogV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2ogfCAgICAyICsKIFdlYkNvcmUvZG9tL0V2ZW50TmFtZXMuaCAgICAgICAgICAg
ICAgICAgIHwgICAgMiArCiBXZWJDb3JlL2h0bWwvSFRNTEF0dHJpYnV0ZU5hbWVzLmluICAgICAg
ICB8ICAgIDEgKwogV2ViQ29yZS9odG1sL0hUTUxCb2R5RWxlbWVudC5jcHAgICAgICAgICAgfCAg
IDE2ICsrKysrKysrKysrCiBXZWJDb3JlL2h0bWwvSFRNTEJvZHlFbGVtZW50LmggICAgICAgICAg
ICB8ICAgIDQgKysrCiBXZWJDb3JlL2h0bWwvSFRNTEJvZHlFbGVtZW50LmlkbCAgICAgICAgICB8
ICAgIDQgKysrCiBXZWJDb3JlL2h0bWwvSFRNTEZyYW1lU2V0RWxlbWVudC5jcHAgICAgICB8ICAg
MTYgKysrKysrKysrKysKIFdlYkNvcmUvaHRtbC9IVE1MRnJhbWVTZXRFbGVtZW50LmggICAgICAg
IHwgICAgNCArKysKIFdlYkNvcmUvaHRtbC9IVE1MRnJhbWVTZXRFbGVtZW50LmlkbCAgICAgIHwg
ICAgNCArKysKIFdlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwICAgICAgICAgICAgICAgIHwgICAy
MiArKysrKysrKysrKysrKysKIFdlYkNvcmUvcGFnZS9ET01XaW5kb3cuaCAgICAgICAgICAgICAg
ICAgIHwgICAgOCArKysrKwogV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5pZGwgICAgICAgICAgICAg
ICAgfCAgICA3ICsrKysrCiBXZWJDb3JlL3BhZ2UvRnJhbWUuY3BwICAgICAgICAgICAgICAgICAg
ICB8ICAgMTIgKysrKysrKysKIFdlYkNvcmUvcGFnZS9GcmFtZS5oICAgICAgICAgICAgICAgICAg
ICAgIHwgICAgOSArKysrKysKIDE5IGZpbGVzIGNoYW5nZWQsIDE4OSBpbnNlcnRpb25zKCspLCA3
IGRlbGV0aW9ucygtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IFdlYkNvcmUvV2ViQ29yZS5PcmllbnRh
dGlvbkV2ZW50cy5leHAKCmRpZmYgLS1naXQgYS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgYi9K
YXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKaW5kZXggNDJkZjZlNi4uOWQ1MWYyMiAxMDA2NDQKLS0t
IGEvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCisrKyBiL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDEyIEBACisyMDA5LTA5LTIxICBHcmVnIEJvbHNpbmdhICA8Ym9sc2luZ2FA
YXBwbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIEFkZCBFTkFCTEUoT1JJRU5UQVRJT05fRVZFTlRTKQorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Mjk1MDgKKworICAgICAgICAqIHd0Zi9QbGF0Zm9y
bS5oOiBBbHNvIHNvcnQgUExBVEZPUk0oSVBIT05FKSAjZGVmaW5lcy4KKwogMjAwOS0wOS0xOCAg
R2Fib3IgTG9raSAgPGxva2lAaW5mLnUtc3plZ2VkLmh1PgogCiAgICAgICAgIFJldmlld2VkIGJ5
IEdhdmluIEJhcnJhY2xvdWdoLgpkaWZmIC0tZ2l0IGEvSmF2YVNjcmlwdENvcmUvd3RmL1BsYXRm
b3JtLmggYi9KYXZhU2NyaXB0Q29yZS93dGYvUGxhdGZvcm0uaAppbmRleCAyODk0ZDQzLi43ZGRm
Yzk1IDEwMDY0NAotLS0gYS9KYXZhU2NyaXB0Q29yZS93dGYvUGxhdGZvcm0uaAorKysgYi9KYXZh
U2NyaXB0Q29yZS93dGYvUGxhdGZvcm0uaApAQCAtNDIzLDE4ICs0MjMsMTkgQEAKICNlbmRpZgog
CiAjaWYgUExBVEZPUk0oSVBIT05FKQotI2RlZmluZSBXVEZfUExBVEZPUk1fQ0YgMQotI2RlZmlu
ZSBXVEZfVVNFX1BUSFJFQURTIDEKICNkZWZpbmUgRU5BQkxFX0NPTlRFWFRfTUVOVVMgMAogI2Rl
ZmluZSBFTkFCTEVfRFJBR19TVVBQT1JUIDAKICNkZWZpbmUgRU5BQkxFX0ZUUERJUiAxCisjZGVm
aW5lIEVOQUJMRV9HRU9MT0NBVElPTiAxCisjZGVmaW5lIEVOQUJMRV9JQ09OREFUQUJBU0UgMAog
I2RlZmluZSBFTkFCTEVfSU5TUEVDVE9SIDAKICNkZWZpbmUgRU5BQkxFX01BQ19KQVZBX0JSSURH
RSAwCi0jZGVmaW5lIEVOQUJMRV9JQ09OREFUQUJBU0UgMAotI2RlZmluZSBFTkFCTEVfR0VPTE9D
QVRJT04gMQogI2RlZmluZSBFTkFCTEVfTkVUU0NBUEVfUExVR0lOX0FQSSAwCi0jZGVmaW5lIEhB
VkVfUkVBRExJTkUgMQorI2RlZmluZSBFTkFCTEVfT1JJRU5UQVRJT05fRVZFTlRTIDEKICNkZWZp
bmUgRU5BQkxFX1JFUEFJTlRfVEhST1RUTElORyAxCisjZGVmaW5lIEhBVkVfUkVBRExJTkUgMQor
I2RlZmluZSBXVEZfUExBVEZPUk1fQ0YgMQorI2RlZmluZSBXVEZfVVNFX1BUSFJFQURTIDEKICNl
bmRpZgogCiAjaWYgUExBVEZPUk0oV0lOKQpAQCAtNTk0LDYgKzU5NSwxMCBAQAogI2RlZmluZSBF
TkFCTEVfTkVUU0NBUEVfUExVR0lOX0FQSSAxCiAjZW5kaWYKIAorI2lmICFkZWZpbmVkKEVOQUJM
RV9PUklFTlRBVElPTl9FVkVOVFMpCisjZGVmaW5lIEVOQUJMRV9PUklFTlRBVElPTl9FVkVOVFMg
MAorI2VuZGlmCisKICNpZiAhZGVmaW5lZChFTkFCTEVfT1BDT0RFX1NUQVRTKQogI2RlZmluZSBF
TkFCTEVfT1BDT0RFX1NUQVRTIDAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9DaGFuZ2VM
b2cgYi9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBhZWYxOWNjLi5mOGYzOWY2IDEwMDY0NAotLS0g
YS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ2
IEBACisyMDA5LTA5LTIxICBHcmVnIEJvbHNpbmdhICA8Ym9sc2luZ2FAYXBwbGUuY29tPgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBFTkFCTEUo
T1JJRU5UQVRJT05fRVZFTlRTKQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9Mjk1MDgKKyAgICAgICAgCisgICAgICAgIFNlZSBkb2N1bWVudGF0aW9uIGhl
cmU6CisgICAgICAgIGh0dHA6Ly9kZXZlbG9wZXIuYXBwbGUuY29tL3NhZmFyaS9saWJyYXJ5L2Rv
Y3VtZW50YXRpb24vQXBwbGVBcHBsaWNhdGlvbnMvUmVmZXJlbmNlL1NhZmFyaVdlYkNvbnRlbnQv
SGFuZGxpbmdFdmVudHMvSGFuZGxpbmdFdmVudHMuaHRtbCMvL2FwcGxlX3JlZi9kb2MvdWlkL1RQ
NDAwMDY1MTEtU1cxNgorCisgICAgICAgIE5vIG5ldyB0ZXN0cy4gKE9PUFMhKQorCisgICAgICAg
ICogRGVyaXZlZFNvdXJjZXMubWFrZTogVXNlIG5ldyBXZWJDb3JlLk9yaWVudGF0aW9uRXZlbnRz
LmV4cCBmaWxlIGlmIEVOQUJMRV9PUklFTlRBVElPTl9FVkVOVFMuCisgICAgICAgIEFkZCBFTkFC
TEVfT1JJRU5UQVRJT05fRVZFTlRTIHRvIHRoZSBuZXcgQURESVRJT05BTF9JRExfREVGSU5FUyB2
YXJpYWJsZSB0aGF0IGlzIHBhc3NlZCB0byB0aGUgSURMCisgICAgICAgIGNvZGUgZ2VuZXJhdG9y
LiBUaGlzIGlzIGJlY2F1c2UgRU5BQkxFX09SSUVOVEFUSU9OX0VWRU5UUyBpcyBub3QgaW4gRkVB
VFVSRV9ERUZJTkVTLgorICAgICAgICAqIFdlYkNvcmUuT3JpZW50YXRpb25FdmVudHMuZXhwOiBB
ZGRlZC4KKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6IEFkZCBX
ZWJDb3JlLk9yaWVudGF0aW9uRXZlbnRzLmV4cC4KKyAgICAgICAgKiBkb20vRXZlbnROYW1lcy5o
OiBBZGQgb25vcmllbnRhdGlvbmNoYW5nZS4KKyAgICAgICAgKiBodG1sL0hUTUxBdHRyaWJ1dGVO
YW1lcy5pbjogRGl0dG8uCisgICAgICAgICogaHRtbC9IVE1MQm9keUVsZW1lbnQuY3BwOiBIYW5k
bGUgb25vcmllbnRhdGlvbmNoYW5nZSBwcm9wZXJseS4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUxC
b2R5RWxlbWVudDo6cGFyc2VNYXBwZWRBdHRyaWJ1dGUpOgorICAgICAgICAoV2ViQ29yZTo6SFRN
TEJvZHlFbGVtZW50Ojpvbm9yaWVudGF0aW9uY2hhbmdlKToKKyAgICAgICAgKFdlYkNvcmU6OkhU
TUxCb2R5RWxlbWVudDo6c2V0T25vcmllbnRhdGlvbmNoYW5nZSk6CisgICAgICAgICogaHRtbC9I
VE1MQm9keUVsZW1lbnQuaDogRGl0dG8uCisgICAgICAgICogaHRtbC9IVE1MQm9keUVsZW1lbnQu
aWRsOiBEaXR0by4KKyAgICAgICAgKiBodG1sL0hUTUxGcmFtZVNldEVsZW1lbnQuY3BwOiBEaXR0
by4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUxGcmFtZVNldEVsZW1lbnQ6OnBhcnNlTWFwcGVkQXR0
cmlidXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxGcmFtZVNldEVsZW1lbnQ6Om9ub3JpZW50
YXRpb25jaGFuZ2UpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTEZyYW1lU2V0RWxlbWVudDo6c2V0
T25vcmllbnRhdGlvbmNoYW5nZSk6CisgICAgICAgICogaHRtbC9IVE1MRnJhbWVTZXRFbGVtZW50
Lmg6IERpdHRvLgorICAgICAgICAqIGh0bWwvSFRNTEZyYW1lU2V0RWxlbWVudC5pZGw6IERpdHRv
LgorICAgICAgICAqIHBhZ2UvRE9NV2luZG93LmNwcDogRGl0dG8uCisgICAgICAgIChXZWJDb3Jl
OjpET01XaW5kb3c6Om9yaWVudGF0aW9uKTogQ2FsbHMgdXAgdGhlIHRvIHRoZSBGcmFtZSBmb3Ig
dGhlIG9yaWVudGF0aW9uIHZhbHVlLgorICAgICAgICAoV2ViQ29yZTo6RE9NV2luZG93Ojpvbm9y
aWVudGF0aW9uY2hhbmdlKToKKyAgICAgICAgKFdlYkNvcmU6OkRPTVdpbmRvdzo6c2V0T25vcmll
bnRhdGlvbmNoYW5nZSk6CisgICAgICAgICogcGFnZS9ET01XaW5kb3cuaDogSGFuZGxlIG9ub3Jp
ZW50YXRpb25jaGFuZ2UgcHJvcGVybHkuCisgICAgICAgICogcGFnZS9ET01XaW5kb3cuaWRsOiBE
aXR0by4KKyAgICAgICAgKiBwYWdlL0ZyYW1lLmNwcDogRGl0dG8uCisgICAgICAgIChXZWJDb3Jl
OjpGcmFtZTo6RnJhbWUpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWU6OnNlbmRPcmllbnRhdGlv
bkNoYW5nZUV2ZW50KToKKyAgICAgICAgKiBwYWdlL0ZyYW1lLmg6IERpdHRvLgorICAgICAgICAo
V2ViQ29yZTo6RnJhbWU6Om9yaWVudGF0aW9uKToKKwogMjAwOS0wOS0xOCAgQW5kZXJzIENhcmxz
c29uICA8YW5kZXJzY2FAYXBwbGUuY29tPgogCiAgICAgICAgIFRyeSBmaXhpbmcgdGhlIGJ1aWxk
IGFnYWluLgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlIGIvV2ViQ29y
ZS9EZXJpdmVkU291cmNlcy5tYWtlCmluZGV4IGQ4MmQ0NDkuLmFmNWExNjYgMTAwNjQ0Ci0tLSBh
L1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQorKysgYi9XZWJDb3JlL0Rlcml2ZWRTb3VyY2Vz
Lm1ha2UKQEAgLTQ0Nyw2ICs0NDcsOCBAQCBhbGwgOiBcCiAKICMgLS0tLS0tLS0KIAorQURESVRJ
T05BTF9JRExfREVGSU5FUyA6PQorCiBpZmVxICgkKE9TKSxNQUNPUykKIAogRlJBTUVXT1JLX0ZM
QUdTID0gJChzaGVsbCBlY2hvICQoRlJBTUVXT1JLX1NFQVJDSF9QQVRIUykgfCBwZXJsIC1lICdw
cmludCAiLUYgIiAuIGpvaW4oIiAtRiAiLCBzcGxpdCgiICIsIDw+KSk7JykKQEAgLTQ4MSw2ICs0
ODMsMTMgQEAgZWxzZQogICAgIEVOQUJMRV9JTlNQRUNUT1IgPSAwCiBlbmRpZgogCitpZmVxICgk
KHNoZWxsIGdjYyAtaXN5c3Jvb3QgJChTREtST09UKSAtRSAtUCAtZE0gLUYgJChCVUlMVF9QUk9E
VUNUU19ESVIpICQoRlJBTUVXT1JLX0ZMQUdTKSBXZWJDb3JlL0ZvcndhcmRpbmdIZWFkZXJzL3d0
Zi9QbGF0Zm9ybS5oIHwgZ3JlcCBFTkFCTEVfT1JJRU5UQVRJT05fRVZFTlRTIHwgY3V0IC1kJyAn
IC1mMyksIDEpCisgICAgRU5BQkxFX09SSUVOVEFUSU9OX0VWRU5UUyA9IDEKKyAgICBBRERJVElP
TkFMX0lETF9ERUZJTkVTIDo9ICQoQURESVRJT05BTF9JRExfREVGSU5FUykgRU5BQkxFX09SSUVO
VEFUSU9OX0VWRU5UUworZWxzZQorICAgIEVOQUJMRV9PUklFTlRBVElPTl9FVkVOVFMgPSAwCitl
bmRpZgorCiAjIENTUyBwcm9wZXJ0eSBuYW1lcyBhbmQgdmFsdWUga2V5d29yZHMKIAogV0VCQ09S
RV9DU1NfUFJPUEVSVFlfTkFNRVMgOj0gJChXZWJDb3JlKS9jc3MvQ1NTUHJvcGVydHlOYW1lcy5p
bgpAQCAtNzM5LDcgKzc0OCw3IEBAIEdFTkVSQVRFX0JJTkRJTkdTX1NDUklQVFMgPSBcCiAjCiAK
IEpTJS5oIDogJS5pZGwgJChHRU5FUkFURV9CSU5ESU5HU19TQ1JJUFRTKSBiaW5kaW5ncy9zY3Jp
cHRzL0NvZGVHZW5lcmF0b3JKUy5wbQotCSQoR0VORVJBVEVfQklORElOR1MpIC0tZGVmaW5lcyAi
JChGRUFUVVJFX0RFRklORVMpIExBTkdVQUdFX0pBVkFTQ1JJUFQiIC0tZ2VuZXJhdG9yIEpTICQ8
CisJJChHRU5FUkFURV9CSU5ESU5HUykgLS1kZWZpbmVzICIkKEZFQVRVUkVfREVGSU5FUykgJChB
RERJVElPTkFMX0lETF9ERUZJTkVTKSBMQU5HVUFHRV9KQVZBU0NSSVBUIiAtLWdlbmVyYXRvciBK
UyAkPAogCiAtaW5jbHVkZSAkKEpTX0RPTV9IRUFERVJTOi5oPS5kZXApCiAKQEAgLTc5MSw2ICs4
MDAsMTAgQEAgaWZlcSAoJChFTkFCTEVfSU5TUEVDVE9SKSwgMSkKICAgICBXRUJDT1JFX0VYUE9S
VF9ERVBFTkRFTkNJRVMgOj0gJChXRUJDT1JFX0VYUE9SVF9ERVBFTkRFTkNJRVMpIFdlYkNvcmUu
SW5zcGVjdG9yLmV4cAogZW5kaWYKIAoraWZlcSAoJChFTkFCTEVfT1JJRU5UQVRJT05fRVZFTlRT
KSwgMSkKKyAgICBXRUJDT1JFX0VYUE9SVF9ERVBFTkRFTkNJRVMgOj0gJChXRUJDT1JFX0VYUE9S
VF9ERVBFTkRFTkNJRVMpIFdlYkNvcmUuT3JpZW50YXRpb25FdmVudHMuZXhwCitlbmRpZgorCiBp
ZmVxICgkKGZpbmRzdHJpbmcgMTAuNCwkKE1BQ09TWF9ERVBMT1lNRU5UX1RBUkdFVCkpLCAxMC40
KQogICAgIFdFQkNPUkVfRVhQT1JUX0RFUEVOREVOQ0lFUyA6PSAkKFdFQkNPUkVfRVhQT1JUX0RF
UEVOREVOQ0lFUykgV2ViQ29yZS5UaWdlci5leHAKIGVuZGlmCkBAIC04MDcsNyArODIwLDcgQEAg
V2ViQ29yZS5leHAgOiBXZWJDb3JlLmJhc2UuZXhwICQoV0VCQ09SRV9FWFBPUlRfREVQRU5ERU5D
SUVTKQogIyBPYmplY3RpdmUtQyBiaW5kaW5ncwogCiBET00lLmggOiAlLmlkbCAkKEdFTkVSQVRF
X0JJTkRJTkdTX1NDUklQVFMpIGJpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvck9iakMucG0g
YmluZGluZ3Mvb2JqYy9QdWJsaWNET01JbnRlcmZhY2VzLmgKLQkkKEdFTkVSQVRFX0JJTkRJTkdT
KSAtLWRlZmluZXMgIiQoRkVBVFVSRV9ERUZJTkVTKSBMQU5HVUFHRV9PQkpFQ1RJVkVfQyIgLS1n
ZW5lcmF0b3IgT2JqQyAkPAorCSQoR0VORVJBVEVfQklORElOR1MpIC0tZGVmaW5lcyAiJChGRUFU
VVJFX0RFRklORVMpICQoQURESVRJT05BTF9JRExfREVGSU5FUykgTEFOR1VBR0VfT0JKRUNUSVZF
X0MiIC0tZ2VuZXJhdG9yIE9iakMgJDwKIAogLWluY2x1ZGUgJChPQkpDX0RPTV9IRUFERVJTOi5o
PS5kZXApCiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvV2ViQ29yZS5PcmllbnRhdGlvbkV2ZW50cy5l
eHAgYi9XZWJDb3JlL1dlYkNvcmUuT3JpZW50YXRpb25FdmVudHMuZXhwCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAuLmVjMDk3OGQKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJDb3Jl
L1dlYkNvcmUuT3JpZW50YXRpb25FdmVudHMuZXhwCkBAIC0wLDAgKzEgQEAKK19fWk43V2ViQ29y
ZTVGcmFtZTI2c2VuZE9yaWVudGF0aW9uQ2hhbmdlRXZlbnRFaQpkaWZmIC0tZ2l0IGEvV2ViQ29y
ZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9XZWJDb3JlL1dlYkNvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA1YjE1MWJkLi42ZWFlNmM0IDEwMDY0NAotLS0g
YS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9XZWJDb3Jl
L1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtOTgxMyw2ICs5ODEzLDcgQEAK
IAkJRjkxNkM0OEMwREI1MTBGODAwNzZDRDgzIC8qIEpTWE1MSHR0cFJlcXVlc3RQcm9ncmVzc0V2
ZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU1hNTEh0dHBSZXF1ZXN0
UHJvZ3Jlc3NFdmVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGOUYwRUQ3NzBE
QjUwQ0EyMDBEMTZEQjkgLyogWE1MSHR0cFJlcXVlc3RQcm9ncmVzc0V2ZW50LmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBYTUxIdHRwUmVxdWVzdFByb2dyZXNzRXZlbnQuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjlGMEVENzgwREI1MENBMjAwRDE2REI5IC8q
IFhNTEh0dHBSZXF1ZXN0UHJvZ3Jlc3NFdmVudC5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9
IFhNTEh0dHBSZXF1ZXN0UHJvZ3Jlc3NFdmVudC5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCUZFMTM2QUU3MTA2NDNCRTUwMDc4Q0Y2RCAvKiBXZWJDb3JlLk9yaWVudGF0aW9uRXZl
bnRzLmV4cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuZXhwb3J0czsgcGF0aCA9IFdlYkNvcmUuT3Jp
ZW50YXRpb25FdmVudHMuZXhwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGRTQ5QkQz
MDEwNjE3MTkxMDBEMEUxQUUgLyogV2ViQ29yZS5JbnNwZWN0b3IuZXhwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5leHBvcnRzOyBwYXRoID0gV2ViQ29yZS5JbnNwZWN0b3IuZXhwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQlGRTQ5RUY5NzBEQzUxNDYyMDA0MjY2RTEgLyogRGFzaGJvYXJk
U3VwcG9ydENTU1Byb3BlcnR5TmFtZXMuaW4gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gRGFzaGJv
YXJkU3VwcG9ydENTU1Byb3BlcnR5TmFtZXMuaW47IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCUZFNkZENDg1MEY2NzZFNTcwMDA5Mjg3MyAvKiBDb29yZGluYXRlcy5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBDb29yZGluYXRlcy5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwpAQCAtMTA0NDgsNiArMTA0NDksNyBAQAogCQkJCTQ0OTE5NTlDMEZCRTE3RDcwMEQ5
RjgyNCAvKiBXZWJDb3JlLkpOSS5leHAgKi8sCiAJCQkJNDQ5MTk1OUIwRkJFMTdENzAwRDlGODI0
IC8qIFdlYkNvcmUuTFA2NC5leHAgKi8sCiAJCQkJNDQ5MTk1OUEwRkJFMTdENzAwRDlGODI0IC8q
IFdlYkNvcmUuTlBBUEkuZXhwICovLAorCQkJCUZFMTM2QUU3MTA2NDNCRTUwMDc4Q0Y2RCAvKiBX
ZWJDb3JlLk9yaWVudGF0aW9uRXZlbnRzLmV4cCAqLywKIAkJCQk0NDkxOTU5OTBGQkUxN0Q3MDBE
OUY4MjQgLyogV2ViQ29yZS5TVkcuQW5pbWF0aW9uLmV4cCAqLywKIAkJCQk0NDkxOTU5ODBGQkUx
N0Q3MDBEOUY4MjQgLyogV2ViQ29yZS5TVkcuZXhwICovLAogCQkJCTQ0OTE5NTk3MEZCRTE3RDcw
MEQ5RjgyNCAvKiBXZWJDb3JlLlNWRy5GaWx0ZXJzLmV4cCAqLywKZGlmZiAtLWdpdCBhL1dlYkNv
cmUvZG9tL0V2ZW50TmFtZXMuaCBiL1dlYkNvcmUvZG9tL0V2ZW50TmFtZXMuaAppbmRleCAzODJi
YmY3Li4wNTgxYzk1IDEwMDY0NAotLS0gYS9XZWJDb3JlL2RvbS9FdmVudE5hbWVzLmgKKysrIGIv
V2ViQ29yZS9kb20vRXZlbnROYW1lcy5oCkBAIC0xMzYsNiArMTM2LDggQEAgbmFtZXNwYWNlIFdl
YkNvcmUgewogICAgIFwKICAgICBtYWNybyh3ZWJraXRUcmFuc2l0aW9uRW5kKSBcCiAgICAgXAor
ICAgIG1hY3JvKG9yaWVudGF0aW9uY2hhbmdlKSBcCisgICAgXAogLy8gZW5kIG9mIERPTV9FVkVO
VF9OQU1FU19GT1JfRUFDSAogCiAgICAgY2xhc3MgRXZlbnROYW1lcyB7CmRpZmYgLS1naXQgYS9X
ZWJDb3JlL2h0bWwvSFRNTEF0dHJpYnV0ZU5hbWVzLmluIGIvV2ViQ29yZS9odG1sL0hUTUxBdHRy
aWJ1dGVOYW1lcy5pbgppbmRleCBmMjU4YmQ3Li42M2E1YzIxIDEwMDY0NAotLS0gYS9XZWJDb3Jl
L2h0bWwvSFRNTEF0dHJpYnV0ZU5hbWVzLmluCisrKyBiL1dlYkNvcmUvaHRtbC9IVE1MQXR0cmli
dXRlTmFtZXMuaW4KQEAgLTE2Nyw2ICsxNjcsNyBAQCBvbm1vdXNldXAKIG9ubW91c2V3aGVlbAog
b25vbmxpbmUKIG9ub2ZmbGluZQorb25vcmllbnRhdGlvbmNoYW5nZQogb25wYWdlaGlkZQogb25w
YWdlc2hvdwogb25wYXN0ZQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1sL0hUTUxCb2R5RWxlbWVu
dC5jcHAgYi9XZWJDb3JlL2h0bWwvSFRNTEJvZHlFbGVtZW50LmNwcAppbmRleCAzODEzMTc3Li45
MjRiOGY2IDEwMDY0NAotLS0gYS9XZWJDb3JlL2h0bWwvSFRNTEJvZHlFbGVtZW50LmNwcAorKysg
Yi9XZWJDb3JlL2h0bWwvSFRNTEJvZHlFbGVtZW50LmNwcApAQCAtMTQzLDYgKzE0MywxMCBAQCB2
b2lkIEhUTUxCb2R5RWxlbWVudDo6cGFyc2VNYXBwZWRBdHRyaWJ1dGUoTWFwcGVkQXR0cmlidXRl
ICphdHRyKQogICAgICAgICBkb2N1bWVudCgpLT5zZXRXaW5kb3dBdHRyaWJ1dGVFdmVudExpc3Rl
bmVyKGV2ZW50TmFtZXMoKS5ibHVyRXZlbnQsIGNyZWF0ZUF0dHJpYnV0ZUV2ZW50TGlzdGVuZXIo
ZG9jdW1lbnQoKS0+ZnJhbWUoKSwgYXR0cikpOwogICAgIGVsc2UgaWYgKGF0dHItPm5hbWUoKSA9
PSBvbmZvY3VzQXR0cikKICAgICAgICAgZG9jdW1lbnQoKS0+c2V0V2luZG93QXR0cmlidXRlRXZl
bnRMaXN0ZW5lcihldmVudE5hbWVzKCkuZm9jdXNFdmVudCwgY3JlYXRlQXR0cmlidXRlRXZlbnRM
aXN0ZW5lcihkb2N1bWVudCgpLT5mcmFtZSgpLCBhdHRyKSk7CisjaWYgRU5BQkxFKE9SSUVOVEFU
SU9OX0VWRU5UUykKKyAgICBlbHNlIGlmIChhdHRyLT5uYW1lKCkgPT0gb25vcmllbnRhdGlvbmNo
YW5nZUF0dHIpCisgICAgICAgIGRvY3VtZW50KCktPnNldFdpbmRvd0F0dHJpYnV0ZUV2ZW50TGlz
dGVuZXIoZXZlbnROYW1lcygpLm9yaWVudGF0aW9uY2hhbmdlRXZlbnQsIGNyZWF0ZUF0dHJpYnV0
ZUV2ZW50TGlzdGVuZXIoZG9jdW1lbnQoKS0+ZnJhbWUoKSwgYXR0cikpOworI2VuZGlmCiAgICAg
ZWxzZSBpZiAoYXR0ci0+bmFtZSgpID09IG9uaGFzaGNoYW5nZUF0dHIpCiAgICAgICAgIGRvY3Vt
ZW50KCktPnNldFdpbmRvd0F0dHJpYnV0ZUV2ZW50TGlzdGVuZXIoZXZlbnROYW1lcygpLmhhc2hj
aGFuZ2VFdmVudCwgY3JlYXRlQXR0cmlidXRlRXZlbnRMaXN0ZW5lcihkb2N1bWVudCgpLT5mcmFt
ZSgpLCBhdHRyKSk7CiAgICAgZWxzZSBpZiAoYXR0ci0+bmFtZSgpID09IG9ucmVzaXplQXR0cikK
QEAgLTQxMiw2ICs0MTYsMTggQEAgdm9pZCBIVE1MQm9keUVsZW1lbnQ6OnNldE9ub25saW5lKFBh
c3NSZWZQdHI8RXZlbnRMaXN0ZW5lcj4gZXZlbnRMaXN0ZW5lcikKICAgICBkb2N1bWVudCgpLT5z
ZXRXaW5kb3dBdHRyaWJ1dGVFdmVudExpc3RlbmVyKGV2ZW50TmFtZXMoKS5vbmxpbmVFdmVudCwg
ZXZlbnRMaXN0ZW5lcik7CiB9CiAKKyNpZiBFTkFCTEUoT1JJRU5UQVRJT05fRVZFTlRTKQorRXZl
bnRMaXN0ZW5lciogSFRNTEJvZHlFbGVtZW50Ojpvbm9yaWVudGF0aW9uY2hhbmdlKCkgY29uc3QK
K3sKKyAgICByZXR1cm4gZG9jdW1lbnQoKS0+Z2V0V2luZG93QXR0cmlidXRlRXZlbnRMaXN0ZW5l
cihldmVudE5hbWVzKCkub3JpZW50YXRpb25jaGFuZ2VFdmVudCk7Cit9CisKK3ZvaWQgSFRNTEJv
ZHlFbGVtZW50OjpzZXRPbm9yaWVudGF0aW9uY2hhbmdlKFBhc3NSZWZQdHI8RXZlbnRMaXN0ZW5l
cj4gZXZlbnRMaXN0ZW5lcikKK3sKKyAgICBkb2N1bWVudCgpLT5zZXRXaW5kb3dBdHRyaWJ1dGVF
dmVudExpc3RlbmVyKGV2ZW50TmFtZXMoKS5vcmllbnRhdGlvbmNoYW5nZUV2ZW50LCBldmVudExp
c3RlbmVyKTsKK30KKyNlbmRpZgorCiBFdmVudExpc3RlbmVyKiBIVE1MQm9keUVsZW1lbnQ6Om9u
cmVzaXplKCkgY29uc3QKIHsKICAgICByZXR1cm4gZG9jdW1lbnQoKS0+Z2V0V2luZG93QXR0cmli
dXRlRXZlbnRMaXN0ZW5lcihldmVudE5hbWVzKCkucmVzaXplRXZlbnQpOwpkaWZmIC0tZ2l0IGEv
V2ViQ29yZS9odG1sL0hUTUxCb2R5RWxlbWVudC5oIGIvV2ViQ29yZS9odG1sL0hUTUxCb2R5RWxl
bWVudC5oCmluZGV4IGQ1ZWZhYjMuLmUwZDQ5OTYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaHRtbC9I
VE1MQm9keUVsZW1lbnQuaAorKysgYi9XZWJDb3JlL2h0bWwvSFRNTEJvZHlFbGVtZW50LmgKQEAg
LTYzLDYgKzYzLDEwIEBAIHB1YmxpYzoKICAgICB2b2lkIHNldE9ub2ZmbGluZShQYXNzUmVmUHRy
PEV2ZW50TGlzdGVuZXI+KTsKICAgICBFdmVudExpc3RlbmVyKiBvbm9ubGluZSgpIGNvbnN0Owog
ICAgIHZvaWQgc2V0T25vbmxpbmUoUGFzc1JlZlB0cjxFdmVudExpc3RlbmVyPik7CisjaWYgRU5B
QkxFKE9SSUVOVEFUSU9OX0VWRU5UUykKKyAgICBFdmVudExpc3RlbmVyKiBvbm9yaWVudGF0aW9u
Y2hhbmdlKCkgY29uc3Q7CisgICAgdm9pZCBzZXRPbm9yaWVudGF0aW9uY2hhbmdlKFBhc3NSZWZQ
dHI8RXZlbnRMaXN0ZW5lcj4pOworI2VuZGlmCiAgICAgRXZlbnRMaXN0ZW5lciogb25yZXNpemUo
KSBjb25zdDsKICAgICB2b2lkIHNldE9ucmVzaXplKFBhc3NSZWZQdHI8RXZlbnRMaXN0ZW5lcj4p
OwogICAgIEV2ZW50TGlzdGVuZXIqIG9uc3RvcmFnZSgpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvV2Vi
Q29yZS9odG1sL0hUTUxCb2R5RWxlbWVudC5pZGwgYi9XZWJDb3JlL2h0bWwvSFRNTEJvZHlFbGVt
ZW50LmlkbAppbmRleCA3YmU2ODAzLi4yZTkzZTJlIDEwMDY0NAotLS0gYS9XZWJDb3JlL2h0bWwv
SFRNTEJvZHlFbGVtZW50LmlkbAorKysgYi9XZWJDb3JlL2h0bWwvSFRNTEJvZHlFbGVtZW50Lmlk
bApAQCAtNDQsNiArNDQsMTAgQEAgbW9kdWxlIGh0bWwgewogICAgICAgICBhdHRyaWJ1dGUgW0Rv
bnRFbnVtXSBFdmVudExpc3RlbmVyIG9uc3RvcmFnZTsKICAgICAgICAgYXR0cmlidXRlIFtEb250
RW51bV0gRXZlbnRMaXN0ZW5lciBvbnVubG9hZDsKIAorI2lmIGRlZmluZWQoRU5BQkxFX09SSUVO
VEFUSU9OX0VWRU5UUykgJiYgRU5BQkxFX09SSUVOVEFUSU9OX0VWRU5UUworICAgICAgICBhdHRy
aWJ1dGUgW0RvbnRFbnVtXSBFdmVudExpc3RlbmVyIG9ub3JpZW50YXRpb25jaGFuZ2U7CisjZW5k
aWYKKwogICAgICAgICAvLyBPdmVycmlkZXMgb2YgRWxlbWVudCBhdHRyaWJ1dGVzIChsZWZ0IGlu
IGZvciBjb21wbGV0ZW5lc3MpLgogICAgICAgICAvLyBhdHRyaWJ1dGUgW0RvbnRFbnVtXSBFdmVu
dExpc3RlbmVyIG9uYmx1cjsKICAgICAgICAgLy8gYXR0cmlidXRlIFtEb250RW51bV0gRXZlbnRM
aXN0ZW5lciBvbmVycm9yOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1sL0hUTUxGcmFtZVNldEVs
ZW1lbnQuY3BwIGIvV2ViQ29yZS9odG1sL0hUTUxGcmFtZVNldEVsZW1lbnQuY3BwCmluZGV4IDhk
YzM5NjQuLjc5MzgxYmUgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaHRtbC9IVE1MRnJhbWVTZXRFbGVt
ZW50LmNwcAorKysgYi9XZWJDb3JlL2h0bWwvSFRNTEZyYW1lU2V0RWxlbWVudC5jcHAKQEAgLTEz
NSw2ICsxMzUsMTAgQEAgdm9pZCBIVE1MRnJhbWVTZXRFbGVtZW50OjpwYXJzZU1hcHBlZEF0dHJp
YnV0ZShNYXBwZWRBdHRyaWJ1dGUgKmF0dHIpCiAgICAgICAgIGRvY3VtZW50KCktPnNldFdpbmRv
d0F0dHJpYnV0ZUV2ZW50TGlzdGVuZXIoZXZlbnROYW1lcygpLmJsdXJFdmVudCwgY3JlYXRlQXR0
cmlidXRlRXZlbnRMaXN0ZW5lcihkb2N1bWVudCgpLT5mcmFtZSgpLCBhdHRyKSk7CiAgICAgZWxz
ZSBpZiAoYXR0ci0+bmFtZSgpID09IG9uZm9jdXNBdHRyKQogICAgICAgICBkb2N1bWVudCgpLT5z
ZXRXaW5kb3dBdHRyaWJ1dGVFdmVudExpc3RlbmVyKGV2ZW50TmFtZXMoKS5mb2N1c0V2ZW50LCBj
cmVhdGVBdHRyaWJ1dGVFdmVudExpc3RlbmVyKGRvY3VtZW50KCktPmZyYW1lKCksIGF0dHIpKTsK
KyNpZiBFTkFCTEUoT1JJRU5UQVRJT05fRVZFTlRTKQorICAgIGVsc2UgaWYgKGF0dHItPm5hbWUo
KSA9PSBvbm9yaWVudGF0aW9uY2hhbmdlQXR0cikKKyAgICAgICAgZG9jdW1lbnQoKS0+c2V0V2lu
ZG93QXR0cmlidXRlRXZlbnRMaXN0ZW5lcihldmVudE5hbWVzKCkub3JpZW50YXRpb25jaGFuZ2VF
dmVudCwgY3JlYXRlQXR0cmlidXRlRXZlbnRMaXN0ZW5lcihkb2N1bWVudCgpLT5mcmFtZSgpLCBh
dHRyKSk7CisjZW5kaWYKICAgICBlbHNlIGlmIChhdHRyLT5uYW1lKCkgPT0gb25oYXNoY2hhbmdl
QXR0cikKICAgICAgICAgZG9jdW1lbnQoKS0+c2V0V2luZG93QXR0cmlidXRlRXZlbnRMaXN0ZW5l
cihldmVudE5hbWVzKCkuaGFzaGNoYW5nZUV2ZW50LCBjcmVhdGVBdHRyaWJ1dGVFdmVudExpc3Rl
bmVyKGRvY3VtZW50KCktPmZyYW1lKCksIGF0dHIpKTsKICAgICBlbHNlIGlmIChhdHRyLT5uYW1l
KCkgPT0gb25yZXNpemVBdHRyKQpAQCAtMzIwLDYgKzMyNCwxOCBAQCB2b2lkIEhUTUxGcmFtZVNl
dEVsZW1lbnQ6OnNldE9ub25saW5lKFBhc3NSZWZQdHI8RXZlbnRMaXN0ZW5lcj4gZXZlbnRMaXN0
ZW5lcikKICAgICBkb2N1bWVudCgpLT5zZXRXaW5kb3dBdHRyaWJ1dGVFdmVudExpc3RlbmVyKGV2
ZW50TmFtZXMoKS5vbmxpbmVFdmVudCwgZXZlbnRMaXN0ZW5lcik7CiB9CiAKKyNpZiBFTkFCTEUo
T1JJRU5UQVRJT05fRVZFTlRTKQorRXZlbnRMaXN0ZW5lciogSFRNTEZyYW1lU2V0RWxlbWVudDo6
b25vcmllbnRhdGlvbmNoYW5nZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIGRvY3VtZW50KCktPmdl
dFdpbmRvd0F0dHJpYnV0ZUV2ZW50TGlzdGVuZXIoZXZlbnROYW1lcygpLm9yaWVudGF0aW9uY2hh
bmdlRXZlbnQpOworfQorCit2b2lkIEhUTUxGcmFtZVNldEVsZW1lbnQ6OnNldE9ub3JpZW50YXRp
b25jaGFuZ2UoUGFzc1JlZlB0cjxFdmVudExpc3RlbmVyPiBldmVudExpc3RlbmVyKQoreworICAg
IGRvY3VtZW50KCktPnNldFdpbmRvd0F0dHJpYnV0ZUV2ZW50TGlzdGVuZXIoZXZlbnROYW1lcygp
Lm9yaWVudGF0aW9uY2hhbmdlRXZlbnQsIGV2ZW50TGlzdGVuZXIpOworfQorI2VuZGlmCisgICAg
CiBFdmVudExpc3RlbmVyKiBIVE1MRnJhbWVTZXRFbGVtZW50OjpvbnJlc2l6ZSgpIGNvbnN0CiB7
CiAgICAgcmV0dXJuIGRvY3VtZW50KCktPmdldFdpbmRvd0F0dHJpYnV0ZUV2ZW50TGlzdGVuZXIo
ZXZlbnROYW1lcygpLnJlc2l6ZUV2ZW50KTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9IVE1M
RnJhbWVTZXRFbGVtZW50LmggYi9XZWJDb3JlL2h0bWwvSFRNTEZyYW1lU2V0RWxlbWVudC5oCmlu
ZGV4IGI1MWU3MDIuLjBkZWFjZjEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaHRtbC9IVE1MRnJhbWVT
ZXRFbGVtZW50LmgKKysrIGIvV2ViQ29yZS9odG1sL0hUTUxGcmFtZVNldEVsZW1lbnQuaApAQCAt
ODcsNiArODcsMTAgQEAgcHVibGljOgogICAgIHZvaWQgc2V0T25vZmZsaW5lKFBhc3NSZWZQdHI8
RXZlbnRMaXN0ZW5lcj4pOwogICAgIEV2ZW50TGlzdGVuZXIqIG9ub25saW5lKCkgY29uc3Q7CiAg
ICAgdm9pZCBzZXRPbm9ubGluZShQYXNzUmVmUHRyPEV2ZW50TGlzdGVuZXI+KTsKKyNpZiBFTkFC
TEUoT1JJRU5UQVRJT05fRVZFTlRTKQorICAgIEV2ZW50TGlzdGVuZXIqIG9ub3JpZW50YXRpb25j
aGFuZ2UoKSBjb25zdDsKKyAgICB2b2lkIHNldE9ub3JpZW50YXRpb25jaGFuZ2UoUGFzc1JlZlB0
cjxFdmVudExpc3RlbmVyPik7CisjZW5kaWYKICAgICBFdmVudExpc3RlbmVyKiBvbnJlc2l6ZSgp
IGNvbnN0OwogICAgIHZvaWQgc2V0T25yZXNpemUoUGFzc1JlZlB0cjxFdmVudExpc3RlbmVyPik7
CiAgICAgRXZlbnRMaXN0ZW5lciogb25zdG9yYWdlKCkgY29uc3Q7CmRpZmYgLS1naXQgYS9XZWJD
b3JlL2h0bWwvSFRNTEZyYW1lU2V0RWxlbWVudC5pZGwgYi9XZWJDb3JlL2h0bWwvSFRNTEZyYW1l
U2V0RWxlbWVudC5pZGwKaW5kZXggMDM3NWMwYS4uYjQ0YTA3MSAxMDA2NDQKLS0tIGEvV2ViQ29y
ZS9odG1sL0hUTUxGcmFtZVNldEVsZW1lbnQuaWRsCisrKyBiL1dlYkNvcmUvaHRtbC9IVE1MRnJh
bWVTZXRFbGVtZW50LmlkbApAQCAtNDEsNiArNDEsMTAgQEAgbW9kdWxlIGh0bWwgewogICAgICAg
ICBhdHRyaWJ1dGUgW0RvbnRFbnVtXSBFdmVudExpc3RlbmVyIG9uc3RvcmFnZTsKICAgICAgICAg
YXR0cmlidXRlIFtEb250RW51bV0gRXZlbnRMaXN0ZW5lciBvbnVubG9hZDsKIAorI2lmIGRlZmlu
ZWQoRU5BQkxFX09SSUVOVEFUSU9OX0VWRU5UUykgJiYgRU5BQkxFX09SSUVOVEFUSU9OX0VWRU5U
UworICAgICAgICBhdHRyaWJ1dGUgW0RvbnRFbnVtXSBFdmVudExpc3RlbmVyIG9ub3JpZW50YXRp
b25jaGFuZ2U7CisjZW5kaWYKKwogICAgICAgICAvLyBPdmVycmlkZXMgb2YgRWxlbWVudCBhdHRy
aWJ1dGVzIChsZWZ0IGluIGZvciBjb21wbGV0ZW5lc3MpLgogICAgICAgICAvLyBhdHRyaWJ1dGUg
W0RvbnRFbnVtXSBFdmVudExpc3RlbmVyIG9uYmx1cjsKICAgICAgICAgLy8gYXR0cmlidXRlIFtE
b250RW51bV0gRXZlbnRMaXN0ZW5lciBvbmVycm9yOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wYWdl
L0RPTVdpbmRvdy5jcHAgYi9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNwcAppbmRleCA3ODNmOTNk
Li45NDNmMTE5IDEwMDY0NAotLS0gYS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNwcAorKysgYi9X
ZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNwcApAQCAtNDYyLDYgKzQ2MiwxNiBAQCB2b2lkIERPTVdp
bmRvdzo6Y2xlYXIoKQogI2VuZGlmCiB9CiAKKyNpZiBFTkFCTEUoT1JJRU5UQVRJT05fRVZFTlRT
KQoraW50IERPTVdpbmRvdzo6b3JpZW50YXRpb24oKSBjb25zdAoreworICAgIGlmICghbV9mcmFt
ZSkKKyAgICAgICAgcmV0dXJuIDA7CisgICAgCisgICAgcmV0dXJuIG1fZnJhbWUtPm9yaWVudGF0
aW9uKCk7Cit9CisjZW5kaWYKKyAgICAKIFNjcmVlbiogRE9NV2luZG93OjpzY3JlZW4oKSBjb25z
dAogewogICAgIGlmICghbV9zY3JlZW4pCkBAIC0yMDg4LDYgKzIwOTgsMTggQEAgdm9pZCBET01X
aW5kb3c6OnNldE9uaW52YWxpZChQYXNzUmVmUHRyPEV2ZW50TGlzdGVuZXI+IGV2ZW50TGlzdGVu
ZXIpCiAgICAgc2V0QXR0cmlidXRlRXZlbnRMaXN0ZW5lcihldmVudE5hbWVzKCkuaW52YWxpZEV2
ZW50LCBldmVudExpc3RlbmVyKTsKIH0KIAorI2lmIEVOQUJMRShPUklFTlRBVElPTl9FVkVOVFMp
CitFdmVudExpc3RlbmVyKiBET01XaW5kb3c6Om9ub3JpZW50YXRpb25jaGFuZ2UoKSBjb25zdAor
eworICAgIHJldHVybiBnZXRBdHRyaWJ1dGVFdmVudExpc3RlbmVyKGV2ZW50TmFtZXMoKS5vcmll
bnRhdGlvbmNoYW5nZUV2ZW50KTsKK30KKwordm9pZCBET01XaW5kb3c6OnNldE9ub3JpZW50YXRp
b25jaGFuZ2UoUGFzc1JlZlB0cjxFdmVudExpc3RlbmVyPiBldmVudExpc3RlbmVyKQoreworICAg
IHNldEF0dHJpYnV0ZUV2ZW50TGlzdGVuZXIoZXZlbnROYW1lcygpLm9yaWVudGF0aW9uY2hhbmdl
RXZlbnQsIGV2ZW50TGlzdGVuZXIpOworfQorI2VuZGlmCisKIHZvaWQgRE9NV2luZG93OjpjYXB0
dXJlRXZlbnRzKCkKIHsKICAgICAvLyBOb3QgaW1wbGVtZW50ZWQuCmRpZmYgLS1naXQgYS9XZWJD
b3JlL3BhZ2UvRE9NV2luZG93LmggYi9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmgKaW5kZXggZGI0
ZWRkYS4uM2ZiMTJlYiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5oCisrKyBi
L1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuaApAQCAtODUsNiArODUsMTAgQEAgbmFtZXNwYWNlIFdl
YkNvcmUgewogCiAgICAgICAgIHZvaWQgY2xlYXIoKTsKIAorI2lmIEVOQUJMRShPUklFTlRBVElP
Tl9FVkVOVFMpCisgICAgICAgIGludCBvcmllbnRhdGlvbigpIGNvbnN0OworI2VuZGlmCisKICAg
ICAgICAgdm9pZCBzZXRTZWN1cml0eU9yaWdpbihTZWN1cml0eU9yaWdpbiogc2VjdXJpdHlPcmln
aW4pIHsgbV9zZWN1cml0eU9yaWdpbiA9IHNlY3VyaXR5T3JpZ2luOyB9CiAgICAgICAgIFNlY3Vy
aXR5T3JpZ2luKiBzZWN1cml0eU9yaWdpbigpIGNvbnN0IHsgcmV0dXJuIG1fc2VjdXJpdHlPcmln
aW4uZ2V0KCk7IH0KIApAQCAtMzgzLDYgKzM4NywxMCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAg
ICAgICAgIHZvaWQgc2V0T25jb250ZXh0bWVudShQYXNzUmVmUHRyPEV2ZW50TGlzdGVuZXI+KTsK
ICAgICAgICAgRXZlbnRMaXN0ZW5lciogb25pbnZhbGlkKCkgY29uc3Q7CiAgICAgICAgIHZvaWQg
c2V0T25pbnZhbGlkKFBhc3NSZWZQdHI8RXZlbnRMaXN0ZW5lcj4pOworI2lmIEVOQUJMRShPUklF
TlRBVElPTl9FVkVOVFMpCisgICAgICAgIEV2ZW50TGlzdGVuZXIqIG9ub3JpZW50YXRpb25jaGFu
Z2UoKSBjb25zdDsKKyAgICAgICAgdm9pZCBzZXRPbm9yaWVudGF0aW9uY2hhbmdlKFBhc3NSZWZQ
dHI8RXZlbnRMaXN0ZW5lcj4pOworI2VuZGlmCiAKICAgICAgICAgdm9pZCBjYXB0dXJlRXZlbnRz
KCk7CiAgICAgICAgIHZvaWQgcmVsZWFzZUV2ZW50cygpOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9w
YWdlL0RPTVdpbmRvdy5pZGwgYi9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmlkbAppbmRleCA4NzVm
NGVhLi4wZDQ5MmJjIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmlkbAorKysg
Yi9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmlkbApAQCAtMTcwLDYgKzE3MCwxMCBAQCBtb2R1bGUg
d2luZG93IHsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIE5vdGlmaWNhdGlvbkNlbnRlciB3
ZWJraXROb3RpZmljYXRpb25zOwogI2VuZGlmCiAKKyNpZiBkZWZpbmVkKEVOQUJMRV9PUklFTlRB
VElPTl9FVkVOVFMpICYmIEVOQUJMRV9PUklFTlRBVElPTl9FVkVOVFMKKyAgICAgICAgcmVhZG9u
bHkgYXR0cmlidXRlIGxvbmcgb3JpZW50YXRpb247CisjZW5kaWYKKwogICAgICAgICAgICAgICAg
ICBhdHRyaWJ1dGUgW1JlcGxhY2VhYmxlXSBDb25zb2xlIGNvbnNvbGU7CiAKICAgICAgICAgLy8g
Y3Jvc3MtZG9jdW1lbnQgbWVzc2FnaW5nCkBAIC0yNzgsNiArMjgyLDkgQEAgbW9kdWxlIHdpbmRv
dyB7CiAgICAgICAgIGF0dHJpYnV0ZSBFdmVudExpc3RlbmVyIG9ud2Via2l0YW5pbWF0aW9uaXRl
cmF0aW9uOwogICAgICAgICBhdHRyaWJ1dGUgRXZlbnRMaXN0ZW5lciBvbndlYmtpdGFuaW1hdGlv
bnN0YXJ0OwogICAgICAgICBhdHRyaWJ1dGUgRXZlbnRMaXN0ZW5lciBvbndlYmtpdHRyYW5zaXRp
b25lbmQ7CisjaWYgZGVmaW5lZChFTkFCTEVfT1JJRU5UQVRJT05fRVZFTlRTKSAmJiBFTkFCTEVf
T1JJRU5UQVRJT05fRVZFTlRTCisgICAgICAgIGF0dHJpYnV0ZSBFdmVudExpc3RlbmVyIG9ub3Jp
ZW50YXRpb25jaGFuZ2U7CisjZW5kaWYKIAogICAgICAgICAvLyBFdmVudFRhcmdldCBpbnRlcmZh
Y2UKICAgICAgICAgW0N1c3RvbV0gdm9pZCBhZGRFdmVudExpc3RlbmVyKGluIERPTVN0cmluZyB0
eXBlLApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wYWdlL0ZyYW1lLmNwcCBiL1dlYkNvcmUvcGFnZS9G
cmFtZS5jcHAKaW5kZXggN2EzZWQyNy4uMWVkZGI2ZSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wYWdl
L0ZyYW1lLmNwcAorKysgYi9XZWJDb3JlL3BhZ2UvRnJhbWUuY3BwCkBAIC0xMjcsNiArMTI3LDkg
QEAgRnJhbWU6OkZyYW1lKFBhZ2UqIHBhZ2UsIEhUTUxGcmFtZU93bmVyRWxlbWVudCogb3duZXJF
bGVtZW50LCBGcmFtZUxvYWRlckNsaWVudCoKICAgICAsIG1fZXZlbnRIYW5kbGVyKHRoaXMpCiAg
ICAgLCBtX2FuaW1hdGlvbkNvbnRyb2xsZXIodGhpcykKICAgICAsIG1fbGlmZVN1cHBvcnRUaW1l
cih0aGlzLCAmRnJhbWU6OmxpZmVTdXBwb3J0VGltZXJGaXJlZCkKKyNpZiBFTkFCTEUoT1JJRU5U
QVRJT05fRVZFTlRTKQorICAgICwgbV9vcmllbnRhdGlvbigwKQorI2VuZGlmCiAgICAgLCBtX2Nh
cmV0VmlzaWJsZShmYWxzZSkKICAgICAsIG1fY2FyZXRQYWludCh0cnVlKQogICAgICwgbV9oaWdo
bGlnaHRUZXh0TWF0Y2hlcyhmYWxzZSkKQEAgLTI2OCw2ICsyNzEsMTUgQEAgdm9pZCBGcmFtZTo6
c2V0RG9jdW1lbnQoUGFzc1JlZlB0cjxEb2N1bWVudD4gbmV3RG9jKQogICAgIG1fc2NyaXB0LnVw
ZGF0ZURvY3VtZW50KCk7CiB9CiAKKyNpZiBFTkFCTEUoT1JJRU5UQVRJT05fRVZFTlRTKQordm9p
ZCBGcmFtZTo6c2VuZE9yaWVudGF0aW9uQ2hhbmdlRXZlbnQoaW50IG9yaWVudGF0aW9uKQorewor
ICAgIG1fb3JpZW50YXRpb24gPSBvcmllbnRhdGlvbjsKKyAgICBpZiAoRG9jdW1lbnQqIGRvYyA9
IGRvY3VtZW50KCkpCisgICAgICAgIGRvYy0+ZGlzcGF0Y2hXaW5kb3dFdmVudChldmVudE5hbWVz
KCkub3JpZW50YXRpb25jaGFuZ2VFdmVudCwgZmFsc2UsIGZhbHNlKTsKK30KKyNlbmRpZiAvLyBF
TkFCTEUoT1JJRU5UQVRJT05fRVZFTlRTKQorICAgIAogU2V0dGluZ3MqIEZyYW1lOjpzZXR0aW5n
cygpIGNvbnN0CiB7CiAgICAgcmV0dXJuIG1fcGFnZSA/IG1fcGFnZS0+c2V0dGluZ3MoKSA6IDA7
CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BhZ2UvRnJhbWUuaCBiL1dlYkNvcmUvcGFnZS9GcmFtZS5o
CmluZGV4IGVmODAzZjEuLjkyNjAwNTAgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGFnZS9GcmFtZS5o
CisrKyBiL1dlYkNvcmUvcGFnZS9GcmFtZS5oCkBAIC0xNTMsNiArMTUzLDExIEBAIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAogICAgICAgICB2b2lkIHNldERvY3VtZW50KFBhc3NSZWZQdHI8RG9jdW1l
bnQ+KTsKIAorI2lmIEVOQUJMRShPUklFTlRBVElPTl9FVkVOVFMpCisgICAgICAgIHZvaWQgc2Vu
ZE9yaWVudGF0aW9uQ2hhbmdlRXZlbnQoaW50IG9yaWVudGF0aW9uKTsKKyAgICAgICAgaW50IG9y
aWVudGF0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9vcmllbnRhdGlvbjsgfQorI2VuZGlmCisKICAg
ICAgICAgdm9pZCBjbGVhclRpbWVycygpOwogICAgICAgICBzdGF0aWMgdm9pZCBjbGVhclRpbWVy
cyhGcmFtZVZpZXcqLCBEb2N1bWVudCopOwogCkBAIC0zNTQsNiArMzU5LDEwIEBAIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAogICAgICAgICBUaW1lcjxGcmFtZT4gbV9saWZlU3VwcG9ydFRpbWVyOwog
CisjaWYgRU5BQkxFKE9SSUVOVEFUSU9OX0VWRU5UUykKKyAgICAgICAgaW50IG1fb3JpZW50YXRp
b247CisjZW5kaWYKKyAgICAgICAgCiAgICAgICAgIGJvb2wgbV9jYXJldFZpc2libGU7CiAgICAg
ICAgIGJvb2wgbV9jYXJldFBhaW50OwogCi0tIAoxLjYuMgoK
</data>
<flag name="review"
          id="21008"
          type_id="1"
          status="+"
          setter="simon.fraser"
    />
          </attachment>
      

    </bug>

</bugzilla>