<?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>78788</bug_id>
          
          <creation_ts>2012-02-16 01:56:21 -0800</creation_ts>
          <short_desc>[Qt] Move event conversion functions from WebCore to WebKit</short_desc>
          <delta_ts>2012-02-16 02:31:30 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>78109</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Simon Hausmann">hausmann</reporter>
          <assigned_to name="Simon Hausmann">hausmann</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>557991</commentid>
    <comment_count>0</comment_count>
    <who name="Simon Hausmann">hausmann</who>
    <bug_when>2012-02-16 01:56:21 -0800</bug_when>
    <thetext>[Qt] Move event conversion functions from WebCore to WebKit</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>557993</commentid>
    <comment_count>1</comment_count>
      <attachid>127330</attachid>
    <who name="Simon Hausmann">hausmann</who>
    <bug_when>2012-02-16 02:00:38 -0800</bug_when>
    <thetext>Created attachment 127330
[Qt] Move event conversion functions from WebCore to WebKit</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>558000</commentid>
    <comment_count>2</comment_count>
      <attachid>127330</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2012-02-16 02:12:37 -0800</bug_when>
    <thetext>Comment on attachment 127330
[Qt] Move event conversion functions from WebCore to WebKit

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

&gt; Source/WebKit/qt/WebCoreSupport/WebEventConversion.cpp:131
&gt; +WebKitPlatformMouseEvent::WebKitPlatformMouseEvent(QInputEvent* event, int clickCount)

WebPlatformMouseEvent? :-)

&gt; Source/WebKit/qt/WebCoreSupport/WebEventConversion.cpp:163
&gt; +PlatformMouseEvent convertMouseEvent(QInputEvent* event, int clickCount)
&gt; +{
&gt; +    return WebKitPlatformMouseEvent(event, clickCount);
&gt; +}

What do you gain with these methods? I am not sure they make the code clearer</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>558001</commentid>
    <comment_count>3</comment_count>
      <attachid>127330</attachid>
    <who name="Simon Hausmann">hausmann</who>
    <bug_when>2012-02-16 02:15:38 -0800</bug_when>
    <thetext>Comment on attachment 127330
[Qt] Move event conversion functions from WebCore to WebKit

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

&gt;&gt; Source/WebKit/qt/WebCoreSupport/WebEventConversion.cpp:131
&gt;&gt; +WebKitPlatformMouseEvent::WebKitPlatformMouseEvent(QInputEvent* event, int clickCount)
&gt; 
&gt; WebPlatformMouseEvent? :-)

In WebKit2 the same &quot;class&quot; is called WebKit2PlatformMouseEvent, so I thought I&apos;d be consistent.

&gt;&gt; Source/WebKit/qt/WebCoreSupport/WebEventConversion.cpp:163
&gt;&gt; +}
&gt; 
&gt; What do you gain with these methods? I am not sure they make the code clearer

I can also make these classes public if you prefer that, I choose that method because it&apos;s also used in WK2&apos;s WebEventConversion.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>558003</commentid>
    <comment_count>4</comment_count>
      <attachid>127330</attachid>
    <who name="Simon Hausmann">hausmann</who>
    <bug_when>2012-02-16 02:17:34 -0800</bug_when>
    <thetext>Comment on attachment 127330
[Qt] Move event conversion functions from WebCore to WebKit

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

&gt; Source/WebKit/qt/WebCoreSupport/WebEventConversion.cpp:206
&gt; +    // ### PlatformEvent(PlatformEvent::Wheel, e-&gt;modifiers() &amp; Qt::ShiftModifier, e-&gt;modifiers() &amp; Qt::ControlModifier, e-&gt;modifiers() &amp; Qt::AltModifier, e-&gt;modifiers() &amp; Qt::MetaModifier, WTF::currentTime())

Ooops, I meant to fix this. Will upload a new patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>558005</commentid>
    <comment_count>5</comment_count>
      <attachid>127332</attachid>
    <who name="Simon Hausmann">hausmann</who>
    <bug_when>2012-02-16 02:20:54 -0800</bug_when>
    <thetext>Created attachment 127332
[Qt] Move event conversion functions from WebCore to WebKit</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>558007</commentid>
    <comment_count>6</comment_count>
      <attachid>127332</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2012-02-16 02:25:20 -0800</bug_when>
    <thetext>Comment on attachment 127332
[Qt] Move event conversion functions from WebCore to WebKit

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

rs=me

&gt; Source/WebKit/qt/WebCoreSupport/WebEventConversion.cpp:136
&gt; +#ifndef QT_NO_CONTEXTMENU

didnt we want to get rid of these?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>558011</commentid>
    <comment_count>7</comment_count>
    <who name="Simon Hausmann">hausmann</who>
    <bug_when>2012-02-16 02:31:30 -0800</bug_when>
    <thetext>Committed r107915: &lt;http://trac.webkit.org/changeset/107915&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>127330</attachid>
            <date>2012-02-16 02:00:38 -0800</date>
            <delta_ts>2012-02-16 02:20:48 -0800</delta_ts>
            <desc>[Qt] Move event conversion functions from WebCore to WebKit</desc>
            <filename>bug-78788-20120216110036.patch</filename>
            <type>text/plain</type>
            <size>23372</size>
            <attacher name="Simon Hausmann">hausmann</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA3OTA5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTU2NTFlYzk4ZDc1YTAy
ZDgyMjk2ZGY0ZTRiZjNiZTQzYzA4ODg4YS4uOTU3NDkzYjg0MTVhYTMyNzc1NzEyZDc4MjBhNTZh
MGM4NzdkZmQ2NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDEyLTAyLTE2ICBTaW1v
biBIYXVzbWFubiAgPHNpbW9uLmhhdXNtYW5uQG5va2lhLmNvbT4KKworICAgICAgICBbUXRdIE1v
dmUgZXZlbnQgY29udmVyc2lvbiBmdW5jdGlvbnMgZnJvbSBXZWJDb3JlIHRvIFdlYktpdAorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Nzg3ODgKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBNb3ZlIFF0V2lkZ2V0
cyBkZXBlbmRlbnQgbW91c2UgZXZlbnQgY29uc3RydWN0b3JzIG91dCBvZiBXZWJDb3JlCisgICAg
ICAgIGludG8gV2ViS2l0LCBzaW1pbGFyIHRvIHRoZSB3ZWIgZXZlbnQgY29udmVyc2lvbnMgb2Yg
V2ViS2l0Mi4KKworICAgICAgICAqIFRhcmdldC5wcmk6CisgICAgICAgICogcGxhdGZvcm0vUGxh
dGZvcm1Nb3VzZUV2ZW50Lmg6CisgICAgICAgIChQbGF0Zm9ybU1vdXNlRXZlbnQpOgorICAgICAg
ICAqIHBsYXRmb3JtL1BsYXRmb3JtV2hlZWxFdmVudC5oOgorICAgICAgICAoUGxhdGZvcm1XaGVl
bEV2ZW50KToKKwogMjAxMi0wMi0xNSAgUGF0cmljayBHYW5zdGVyZXIgIDxwYXJvZ2FAd2Via2l0
Lm9yZz4KIAogICAgICAgICBXaW5kb3dzIGJ1aWxkIGZpeCBmb3IgIUVOQUJMRShDU1NfRklMVEVS
UykgYWZ0ZXIgcjEwNjU5My4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvcXQvQ2hhbmdlTG9n
IGIvU291cmNlL1dlYktpdC9xdC9DaGFuZ2VMb2cKaW5kZXggNGU2YWY4ZmQyMWJkMTQ1NDc4ZjAy
ZGNkNjJjYzJmMDc0ODQyNmU4Yi4uNzA5ZjZlMjkyYmRkY2FiMzg4OWM0Y2ZmOTcwYTVmYmUzNmM1
MDgwYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9xdC9DaGFuZ2VMb2cKKysrIGIvU291cmNl
L1dlYktpdC9xdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzNyBAQAorMjAxMi0wMi0xNiAgU2ltb24g
SGF1c21hbm4gIDxzaW1vbi5oYXVzbWFubkBub2tpYS5jb20+CisKKyAgICAgICAgW1F0XSBNb3Zl
IGV2ZW50IGNvbnZlcnNpb24gZnVuY3Rpb25zIGZyb20gV2ViQ29yZSB0byBXZWJLaXQKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc4Nzg4CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTW92ZSBRdFdpZGdldHMg
ZGVwZW5kZW50IG1vdXNlIGV2ZW50IGNvbnN0cnVjdG9ycyBvdXQgb2YgV2ViQ29yZQorICAgICAg
ICBpbnRvIFdlYktpdCwgc2ltaWxhciB0byB0aGUgd2ViIGV2ZW50IGNvbnZlcnNpb25zIG9mIFdl
YktpdDIuCisKKyAgICAgICAgKiBBcGkvcXdlYnBhZ2UuY3BwOgorICAgICAgICAoUVdlYlBhZ2VQ
cml2YXRlOjptb3VzZU1vdmVFdmVudCk6CisgICAgICAgIChRV2ViUGFnZVByaXZhdGU6Om1vdXNl
UHJlc3NFdmVudCk6CisgICAgICAgIChRV2ViUGFnZVByaXZhdGU6Om1vdXNlRG91YmxlQ2xpY2tF
dmVudCk6CisgICAgICAgIChRV2ViUGFnZVByaXZhdGU6Om1vdXNlVHJpcGxlQ2xpY2tFdmVudCk6
CisgICAgICAgIChRV2ViUGFnZVByaXZhdGU6Om1vdXNlUmVsZWFzZUV2ZW50KToKKyAgICAgICAg
KFFXZWJQYWdlUHJpdmF0ZTo6d2hlZWxFdmVudCk6CisgICAgICAgIChRV2ViUGFnZTo6c3dhbGxv
d0NvbnRleHRNZW51RXZlbnQpOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVy
Q2xpZW50UXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXJDbGllbnRRdDo6cG9z
dFByb2dyZXNzRmluaXNoZWROb3RpZmljYXRpb24pOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0
L1dlYkV2ZW50Q29udmVyc2lvbi5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZSk6CisgICAg
ICAgIChXZWJDb3JlOjptb3VzZUV2ZW50TW9kaWZpZXJzRnJvbVF0S2V5Ym9hcmRNb2RpZmllcnMp
OgorICAgICAgICAoV2ViQ29yZTo6bW91c2VFdmVudFR5cGVBbmRNb3VzZUJ1dHRvbkZyb21RRXZl
bnQpOgorICAgICAgICAoV2ViS2l0UGxhdGZvcm1Nb3VzZUV2ZW50KToKKyAgICAgICAgKFdlYkNv
cmU6OldlYktpdFBsYXRmb3JtTW91c2VFdmVudDo6V2ViS2l0UGxhdGZvcm1Nb3VzZUV2ZW50KToK
KyAgICAgICAgKFdlYkNvcmU6OmNvbnZlcnRNb3VzZUV2ZW50KToKKyAgICAgICAgKFdlYktpdFBs
YXRmb3JtV2hlZWxFdmVudCk6CisgICAgICAgIChXZWJDb3JlOjpXZWJLaXRQbGF0Zm9ybVdoZWVs
RXZlbnQ6OmFwcGx5RGVsdGEpOgorICAgICAgICAoV2ViQ29yZTo6V2ViS2l0UGxhdGZvcm1XaGVl
bEV2ZW50OjpXZWJLaXRQbGF0Zm9ybVdoZWVsRXZlbnQpOgorICAgICAgICAoV2ViQ29yZTo6Y29u
dmVydFdoZWVsRXZlbnQpOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkV2ZW50Q29udmVy
c2lvbi5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmUpOgorCiAyMDEyLTAyLTE1ICBTYWRydWwg
SGFiaWIgQ2hvd2RodXJ5ICA8c2FkcnVsQGNocm9taXVtLm9yZz4KIAogICAgICAgICBOb3RpZnkg
Q2hyb21lQ2xpZW50IHdoZW4gdG91Y2gtZXZlbnQgaGFuZGxlcnMgYXJlIGluc3RhbGxlZC9yZW1v
dmVkLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaSBiL1NvdXJjZS9XZWJD
b3JlL1RhcmdldC5wcmkKaW5kZXggYjFjZDI1ZjE0NjlmNmM5NTMwMzFlNzgyYTRlZDBjMWM4OTQ2
ZjQ3My4uYTVjOWEzY2YwYzRmYTgzMzYzMDZmZWIyMjdkNTdjZjdjNzgzMmQ2MyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQorKysgYi9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQu
cHJpCkBAIC0yODI4LDcgKzI4MjgsNiBAQCBTT1VSQ0VTICs9IFwKICAgICBwbGF0Zm9ybS9xdC9N
SU1FVHlwZVJlZ2lzdHJ5UXQuY3BwIFwKICAgICBwbGF0Zm9ybS9xdC9QYXN0ZWJvYXJkUXQuY3Bw
IFwKICAgICBwbGF0Zm9ybS9xdC9QbGF0Zm9ybUtleWJvYXJkRXZlbnRRdC5jcHAgXAotICAgIHBs
YXRmb3JtL3F0L1BsYXRmb3JtTW91c2VFdmVudFF0LmNwcCBcCiAgICAgcGxhdGZvcm0vcXQvUGxh
dGZvcm1TY3JlZW5RdC5jcHAgXAogICAgIHBsYXRmb3JtL3F0L1BsYXRmb3JtVG91Y2hFdmVudFF0
LmNwcCBcCiAgICAgcGxhdGZvcm0vcXQvUGxhdGZvcm1Ub3VjaFBvaW50UXQuY3BwIFwKQEAgLTI4
NDQsNyArMjg0Myw2IEBAIFNPVVJDRVMgKz0gXAogICAgIHBsYXRmb3JtL3RleHQvcXQvVGV4dEJv
dW5kYXJpZXNRdC5jcHAgXAogICAgIHBsYXRmb3JtL3RleHQvcXQvVGV4dEJyZWFrSXRlcmF0b3JJ
bnRlcm5hbElDVVF0LmNwcCBcCiAgICAgcGxhdGZvcm0vdGV4dC9xdC9UZXh0Q29kZWNRdC5jcHAg
XAotICAgIHBsYXRmb3JtL3F0L1doZWVsRXZlbnRRdC5jcHAgXAogICAgIHBsYXRmb3JtL3F0L1dp
ZGdldFF0LmNwcAogCiAhY29udGFpbnMoREVGSU5FUywgV1RGX1VTRV9MSUJYTUwyPTEpIHsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3JtTW91c2VFdmVudC5oIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1Nb3VzZUV2ZW50LmgKaW5kZXggYTNkY2Nl
NDkwZDNmNzgwNjJkOWVjNzhiNjgxN2QzOTg4OWU0ZTRlZS4uMjBhZWNmMTA3ODM2OTNhNGRkZTk2
MTkwYTM5MWM4ZmFlYjI2NWQ5YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
UGxhdGZvcm1Nb3VzZUV2ZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZv
cm1Nb3VzZUV2ZW50LmgKQEAgLTQwLDEzICs0MCw2IEBAIHR5cGVkZWYgc3RydWN0IF9FdmFzX0V2
ZW50X01vdXNlX1VwIEV2YXNfRXZlbnRfTW91c2VfVXA7CiB0eXBlZGVmIHN0cnVjdCBfRXZhc19F
dmVudF9Nb3VzZV9Nb3ZlIEV2YXNfRXZlbnRfTW91c2VfTW92ZTsKICNlbmRpZgogCi0jaWYgUExB
VEZPUk0oUVQpCi1RVF9CRUdJTl9OQU1FU1BBQ0UKLWNsYXNzIFFJbnB1dEV2ZW50OwotY2xhc3Mg
UUdyYXBoaWNzU2NlbmVNb3VzZUV2ZW50OwotUVRfRU5EX05BTUVTUEFDRQotI2VuZGlmCi0KICNp
ZiBQTEFURk9STShXSU4pCiB0eXBlZGVmIHN0cnVjdCBIV05EX18qIEhXTkQ7CiB0eXBlZGVmIHVu
c2lnbmVkIFVJTlQ7CkBAIC0xMjIsMTEgKzExNSw2IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAg
ICAgICAgaW50IGV2ZW50TnVtYmVyKCkgY29uc3QgeyByZXR1cm4gbV9ldmVudE51bWJlcjsgfQog
I2VuZGlmCiAKLSNpZiBQTEFURk9STShRVCkKLSAgICAgICAgUGxhdGZvcm1Nb3VzZUV2ZW50KFFJ
bnB1dEV2ZW50KiwgaW50IGNsaWNrQ291bnQpOwotICAgICAgICBQbGF0Zm9ybU1vdXNlRXZlbnQo
UUdyYXBoaWNzU2NlbmVNb3VzZUV2ZW50KiwgaW50IGNsaWNrQ291bnQpOwotI2VuZGlmCi0KICNp
ZiBQTEFURk9STShXSU4pCiAgICAgICAgIFBsYXRmb3JtTW91c2VFdmVudChIV05ELCBVSU5ULCBX
UEFSQU0sIExQQVJBTSwgYm9vbCBkaWRBY3RpdmF0ZVdlYlZpZXcgPSBmYWxzZSk7CiAgICAgICAg
IHZvaWQgc2V0Q2xpY2tDb3VudChpbnQgY291bnQpIHsgbV9jbGlja0NvdW50ID0gY291bnQ7IH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3JtV2hlZWxFdmVudC5o
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1XaGVlbEV2ZW50LmgKaW5kZXggZjc2
ZjRjOTU4YTMxZTk5ZjAyYzkzOGRlYWMzMjQ2OTkzZjM1YTZkNy4uNjRlMGYyNDYzMmM0YTgxNmY0
NDdkYzc1NzZmYmRhYzYxMjliYThmMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vUGxhdGZvcm1XaGVlbEV2ZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxh
dGZvcm1XaGVlbEV2ZW50LmgKQEAgLTM3LDEzICszNyw2IEBAIHR5cGVkZWYgc3RydWN0IF9HZGtF
dmVudFNjcm9sbCBHZGtFdmVudFNjcm9sbDsKIHR5cGVkZWYgc3RydWN0IF9FdmFzX0V2ZW50X01v
dXNlX1doZWVsIEV2YXNfRXZlbnRfTW91c2VfV2hlZWw7CiAjZW5kaWYKIAotI2lmIFBMQVRGT1JN
KFFUKQotUVRfQkVHSU5fTkFNRVNQQUNFCi1jbGFzcyBRV2hlZWxFdmVudDsKLWNsYXNzIFFHcmFw
aGljc1NjZW5lV2hlZWxFdmVudDsKLVFUX0VORF9OQU1FU1BBQ0UKLSNlbmRpZgotCiAjaWYgUExB
VEZPUk0oV0lOKQogdHlwZWRlZiBzdHJ1Y3QgSFdORF9fKiBIV05EOwogdHlwZWRlZiB1bnNpZ25l
ZCBXUEFSQU07CkBAIC0xNjEsMTIgKzE1NCw2IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAg
ICAgYm9vbCBoYXNQcmVjaXNlU2Nyb2xsaW5nRGVsdGFzKCkgY29uc3QgeyByZXR1cm4gbV9oYXNQ
cmVjaXNlU2Nyb2xsaW5nRGVsdGFzOyB9CiAjZW5kaWYKIAotI2lmIFBMQVRGT1JNKFFUKQotICAg
ICAgICBQbGF0Zm9ybVdoZWVsRXZlbnQoUVdoZWVsRXZlbnQqKTsKLSAgICAgICAgUGxhdGZvcm1X
aGVlbEV2ZW50KFFHcmFwaGljc1NjZW5lV2hlZWxFdmVudCopOwotICAgICAgICB2b2lkIGFwcGx5
RGVsdGEoaW50IGRlbHRhLCBRdDo6T3JpZW50YXRpb24pOwotI2VuZGlmCi0KICNpZiBQTEFURk9S
TShXSU4pCiAgICAgICAgIFBsYXRmb3JtV2hlZWxFdmVudChIV05ELCBXUEFSQU0sIExQQVJBTSwg
Ym9vbCBpc01vdXNlSFdoZWVsKTsKICAgICAgICAgUGxhdGZvcm1XaGVlbEV2ZW50KEhXTkQsIGNv
bnN0IEZsb2F0U2l6ZSYgZGVsdGEsIGNvbnN0IEZsb2F0UG9pbnQmIGxvY2F0aW9uKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvcXQvQXBpL3F3ZWJwYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQv
cXQvQXBpL3F3ZWJwYWdlLmNwcAppbmRleCA0MjM0ZmJiNjlhZjdhODk1NWMyOWFjNjliYTAwZjg0
NmZiMjMwZTZhLi41YjI0YjE3ODRjNGNmYzk2MGRlNjZkYjA5MTM1ZGUwNDc1NDFlYmI1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3F0L0FwaS9xd2VicGFnZS5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9xdC9BcGkvcXdlYnBhZ2UuY3BwCkBAIC0xMTIsNiArMTEyLDcgQEAKICNlbmRpZiAvLyBR
X09TX1dJTjMyCiAjaW5jbHVkZSAiVGV4dEl0ZXJhdG9yLmgiCiAjaW5jbHVkZSAiVXRpbHNRdC5o
IgorI2luY2x1ZGUgIldlYkV2ZW50Q29udmVyc2lvbi5oIgogI2luY2x1ZGUgIldpbmRvd0ZlYXR1
cmVzLmgiCiAjaW5jbHVkZSAiV29ya2VyVGhyZWFkLmgiCiAKQEAgLTY3OCw3ICs2NzksNyBAQCB2
b2lkIFFXZWJQYWdlUHJpdmF0ZTo6bW91c2VNb3ZlRXZlbnQoVCogZXYpCiAgICAgaWYgKCFmcmFt
ZS0+dmlldygpKQogICAgICAgICByZXR1cm47CiAKLSAgICBib29sIGFjY2VwdGVkID0gZnJhbWUt
PmV2ZW50SGFuZGxlcigpLT5tb3VzZU1vdmVkKFBsYXRmb3JtTW91c2VFdmVudChldiwgMCkpOwor
ICAgIGJvb2wgYWNjZXB0ZWQgPSBmcmFtZS0+ZXZlbnRIYW5kbGVyKCktPm1vdXNlTW92ZWQoY29u
dmVydE1vdXNlRXZlbnQoZXYsIDApKTsKICAgICBldi0+c2V0QWNjZXB0ZWQoYWNjZXB0ZWQpOwog
fQogCkBAIC03MDMsNyArNzA0LDcgQEAgdm9pZCBRV2ViUGFnZVByaXZhdGU6Om1vdXNlUHJlc3NF
dmVudChUKiBldikKIAogICAgIGJvb2wgYWNjZXB0ZWQgPSBmYWxzZTsKICAgICBhZGp1c3RQb2lu
dEZvckNsaWNraW5nKGV2KTsKLSAgICBQbGF0Zm9ybU1vdXNlRXZlbnQgbWV2KGV2LCAxKTsKKyAg
ICBQbGF0Zm9ybU1vdXNlRXZlbnQgbWV2ID0gY29udmVydE1vdXNlRXZlbnQoZXYsIDEpOwogICAg
IC8vIGlnbm9yZSB0aGUgZXZlbnQgaWYgd2UgY2FuJ3QgbWFwIFF0J3MgbW91c2UgYnV0dG9ucyB0
byBXZWJDb3JlOjpNb3VzZUJ1dHRvbgogICAgIGlmIChtZXYuYnV0dG9uKCkgIT0gTm9CdXR0b24p
CiAgICAgICAgIGFjY2VwdGVkID0gZnJhbWUtPmV2ZW50SGFuZGxlcigpLT5oYW5kbGVNb3VzZVBy
ZXNzRXZlbnQobWV2KTsKQEAgLTcyNiw3ICs3MjcsNyBAQCB2b2lkIFFXZWJQYWdlUHJpdmF0ZTo6
bW91c2VEb3VibGVDbGlja0V2ZW50KFQgKmV2KQogICAgICAgICByZXR1cm47CiAKICAgICBib29s
IGFjY2VwdGVkID0gZmFsc2U7Ci0gICAgUGxhdGZvcm1Nb3VzZUV2ZW50IG1ldihldiwgMik7Cisg
ICAgUGxhdGZvcm1Nb3VzZUV2ZW50IG1ldiA9IGNvbnZlcnRNb3VzZUV2ZW50KGV2LCAyKTsKICAg
ICAvLyBpZ25vcmUgdGhlIGV2ZW50IGlmIHdlIGNhbid0IG1hcCBRdCdzIG1vdXNlIGJ1dHRvbnMg
dG8gV2ViQ29yZTo6TW91c2VCdXR0b24KICAgICBpZiAobWV2LmJ1dHRvbigpICE9IE5vQnV0dG9u
KQogICAgICAgICBhY2NlcHRlZCA9IGZyYW1lLT5ldmVudEhhbmRsZXIoKS0+aGFuZGxlTW91c2VQ
cmVzc0V2ZW50KG1ldik7CkBAIC03NDQsNyArNzQ1LDcgQEAgdm9pZCBRV2ViUGFnZVByaXZhdGU6
Om1vdXNlVHJpcGxlQ2xpY2tFdmVudChUICpldikKICAgICAgICAgcmV0dXJuOwogCiAgICAgYm9v
bCBhY2NlcHRlZCA9IGZhbHNlOwotICAgIFBsYXRmb3JtTW91c2VFdmVudCBtZXYoZXYsIDMpOwor
ICAgIFBsYXRmb3JtTW91c2VFdmVudCBtZXYgPSBjb252ZXJ0TW91c2VFdmVudChldiwgMyk7CiAg
ICAgLy8gaWdub3JlIHRoZSBldmVudCBpZiB3ZSBjYW4ndCBtYXAgUXQncyBtb3VzZSBidXR0b25z
IHRvIFdlYkNvcmU6Ok1vdXNlQnV0dG9uCiAgICAgaWYgKG1ldi5idXR0b24oKSAhPSBOb0J1dHRv
bikKICAgICAgICAgYWNjZXB0ZWQgPSBmcmFtZS0+ZXZlbnRIYW5kbGVyKCktPmhhbmRsZU1vdXNl
UHJlc3NFdmVudChtZXYpOwpAQCAtNzgzLDcgKzc4NCw3IEBAIHZvaWQgUVdlYlBhZ2VQcml2YXRl
Ojptb3VzZVJlbGVhc2VFdmVudChUICpldikKIAogICAgIGJvb2wgYWNjZXB0ZWQgPSBmYWxzZTsK
ICAgICBhZGp1c3RQb2ludEZvckNsaWNraW5nKGV2KTsKLSAgICBQbGF0Zm9ybU1vdXNlRXZlbnQg
bWV2KGV2LCAwKTsKKyAgICBQbGF0Zm9ybU1vdXNlRXZlbnQgbWV2ID0gY29udmVydE1vdXNlRXZl
bnQoZXYsIDApOwogICAgIC8vIGlnbm9yZSB0aGUgZXZlbnQgaWYgd2UgY2FuJ3QgbWFwIFF0J3Mg
bW91c2UgYnV0dG9ucyB0byBXZWJDb3JlOjpNb3VzZUJ1dHRvbgogICAgIGlmIChtZXYuYnV0dG9u
KCkgIT0gTm9CdXR0b24pCiAgICAgICAgIGFjY2VwdGVkID0gZnJhbWUtPmV2ZW50SGFuZGxlcigp
LT5oYW5kbGVNb3VzZVJlbGVhc2VFdmVudChtZXYpOwpAQCAtODUzLDcgKzg1NCw3IEBAIHZvaWQg
UVdlYlBhZ2VQcml2YXRlOjp3aGVlbEV2ZW50KFQgKmV2KQogICAgIGlmICghZnJhbWUtPnZpZXco
KSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgV2ViQ29yZTo6UGxhdGZvcm1XaGVlbEV2ZW50IHBl
dihldik7CisgICAgUGxhdGZvcm1XaGVlbEV2ZW50IHBldiA9IGNvbnZlcnRXaGVlbEV2ZW50KGV2
KTsKICAgICBib29sIGFjY2VwdGVkID0gZnJhbWUtPmV2ZW50SGFuZGxlcigpLT5oYW5kbGVXaGVl
bEV2ZW50KHBldik7CiAgICAgZXYtPnNldEFjY2VwdGVkKGFjY2VwdGVkKTsKIH0KQEAgLTMyNDAs
MTQgKzMyNDEsMTQgQEAgYm9vbCBRV2ViUGFnZTo6c3dhbGxvd0NvbnRleHRNZW51RXZlbnQoUUNv
bnRleHRNZW51RXZlbnQgKmV2ZW50KQogICAgIGlmICghUmVuZGVyVGhlbWVRdDo6dXNlTW9iaWxl
VGhlbWUoKSkgewogICAgICAgICBpZiAoUVdlYkZyYW1lKiB3ZWJGcmFtZSA9IGZyYW1lQXQoZXZl
bnQtPnBvcygpKSkgewogICAgICAgICAgICAgRnJhbWUqIGZyYW1lID0gUVdlYkZyYW1lUHJpdmF0
ZTo6Y29yZSh3ZWJGcmFtZSk7Ci0gICAgICAgICAgICBpZiAoU2Nyb2xsYmFyKiBzY3JvbGxiYXIg
PSBmcmFtZS0+dmlldygpLT5zY3JvbGxiYXJBdFBvaW50KFBsYXRmb3JtTW91c2VFdmVudChldmVu
dCwgMSkucG9zaXRpb24oKSkpCi0gICAgICAgICAgICAgICAgcmV0dXJuIHNjcm9sbGJhci0+Y29u
dGV4dE1lbnUoUGxhdGZvcm1Nb3VzZUV2ZW50KGV2ZW50LCAxKSk7CisgICAgICAgICAgICBpZiAo
U2Nyb2xsYmFyKiBzY3JvbGxiYXIgPSBmcmFtZS0+dmlldygpLT5zY3JvbGxiYXJBdFBvaW50KGNv
bnZlcnRNb3VzZUV2ZW50KGV2ZW50LCAxKS5wb3NpdGlvbigpKSkKKyAgICAgICAgICAgICAgICBy
ZXR1cm4gc2Nyb2xsYmFyLT5jb250ZXh0TWVudShjb252ZXJ0TW91c2VFdmVudChldmVudCwgMSkp
OwogICAgICAgICB9CiAgICAgfQogI2VuZGlmCiAKICAgICBXZWJDb3JlOjpGcmFtZSogZm9jdXNl
ZEZyYW1lID0gZC0+cGFnZS0+Zm9jdXNDb250cm9sbGVyKCktPmZvY3VzZWRPck1haW5GcmFtZSgp
OwotICAgIGZvY3VzZWRGcmFtZS0+ZXZlbnRIYW5kbGVyKCktPnNlbmRDb250ZXh0TWVudUV2ZW50
KFBsYXRmb3JtTW91c2VFdmVudChldmVudCwgMSkpOworICAgIGZvY3VzZWRGcmFtZS0+ZXZlbnRI
YW5kbGVyKCktPnNlbmRDb250ZXh0TWVudUV2ZW50KGNvbnZlcnRNb3VzZUV2ZW50KGV2ZW50LCAx
KSk7CiAgICAgQ29udGV4dE1lbnUgKm1lbnUgPSBkLT5wYWdlLT5jb250ZXh0TWVudUNvbnRyb2xs
ZXIoKS0+Y29udGV4dE1lbnUoKTsKICAgICAvLyBJZiB0aGUgd2Vic2l0ZSBkZWZpbmVzIGl0cyBv
d24gaGFuZGxlciB0aGVuIHNlbmRDb250ZXh0TWVudUV2ZW50IHRha2VzIGNhcmUgb2YKICAgICAv
LyBjYWxsaW5nL3Nob3dpbmcgaXQgYW5kIHRoZSBjb250ZXh0IG1lbnUgcG9pbnRlciB3aWxsIGJl
IHplcm8uIFRoaXMgaXMgdGhlIGNhc2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvcXQvV2Vi
Q29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRRdC5jcHAgYi9Tb3VyY2UvV2ViS2l0L3F0L1dl
YkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50UXQuY3BwCmluZGV4IGFiN2U5NWNhNmE1OTMw
NjA3NWM5OTE1NzMyMDE3ZWRmNDc2NDVkNjkuLjgzNjQyMTlkNmZiNTg4NGIyMmZiN2ZjMGYxNDhm
ZDU0ZDUxOGM5Y2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQv
RnJhbWVMb2FkZXJDbGllbnRRdC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3Vw
cG9ydC9GcmFtZUxvYWRlckNsaWVudFF0LmNwcApAQCAtNzMsNiArNzMsNyBAQAogI2luY2x1ZGUg
IlY4RE9NV2luZG93LmgiCiAjZW5kaWYKICNpbmNsdWRlICJWaWV3cG9ydEFyZ3VtZW50cy5oIgor
I2luY2x1ZGUgIldlYkV2ZW50Q29udmVyc2lvbi5oIgogCiAjaW5jbHVkZSAicXdlYmZyYW1lLmgi
CiAjaW5jbHVkZSAicXdlYmZyYW1lX3AuaCIKQEAgLTYwNiw3ICs2MDcsNyBAQCB2b2lkIEZyYW1l
TG9hZGVyQ2xpZW50UXQ6OnBvc3RQcm9ncmVzc0ZpbmlzaGVkTm90aWZpY2F0aW9uKCkKICAgICAg
ICAgICAgIFFQb2ludCBsb2NhbFBvcyA9IHZpZXctPm1hcEZyb21HbG9iYWwoUUN1cnNvcjo6cG9z
KCkpOwogICAgICAgICAgICAgaWYgKHZpZXctPnJlY3QoKS5jb250YWlucyhsb2NhbFBvcykpIHsK
ICAgICAgICAgICAgICAgICBRTW91c2VFdmVudCBldmVudChRRXZlbnQ6Ok1vdXNlTW92ZSwgbG9j
YWxQb3MsIFF0OjpOb0J1dHRvbiwgUXQ6Ok5vQnV0dG9uLCBRdDo6Tm9Nb2RpZmllcik7Ci0gICAg
ICAgICAgICAgICAgbV9mcmFtZS0+ZXZlbnRIYW5kbGVyKCktPm1vdXNlTW92ZWQoUGxhdGZvcm1N
b3VzZUV2ZW50KCZldmVudCwgMCkpOworICAgICAgICAgICAgICAgIG1fZnJhbWUtPmV2ZW50SGFu
ZGxlcigpLT5tb3VzZU1vdmVkKGNvbnZlcnRNb3VzZUV2ZW50KCZldmVudCwgMCkpOwogICAgICAg
ICAgICAgfQogICAgICAgICB9CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9xdC9X
ZWJDb3JlU3VwcG9ydC9XZWJFdmVudENvbnZlcnNpb24uY3BwIGIvU291cmNlL1dlYktpdC9xdC9X
ZWJDb3JlU3VwcG9ydC9XZWJFdmVudENvbnZlcnNpb24uY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmEwYWM0NjUw
YTNkMjRkOGNmZTZmMjY3Y2YzY2NkN2U2ZjFkYmM3ZTUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L1dlYkV2ZW50Q29udmVyc2lvbi5jcHAKQEAgLTAs
MCArMSwyMzUgQEAKKy8qCisgICAgQ29weXJpZ2h0IChDKSAyMDEyIE5va2lhIENvcnBvcmF0aW9u
IGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKQorICAgIENvcHlyaWdodCAoQykgMjAwNiBaYWNr
IFJ1c2luIDx6YWNrQGtkZS5vcmc+CisgICAgQ29weXJpZ2h0IChDKSAyMDExIFJlc2VhcmNoIElu
IE1vdGlvbiBMaW1pdGVkLgorCisgICAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlv
dSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICAgIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVy
bXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgICAgTGljZW5zZSBhcyBwdWJs
aXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgICAgdmVyc2lv
biAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9u
LgorCisgICAgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQg
d2lsbCBiZSB1c2VmdWwsCisgICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2
ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAgICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICAgIExpYnJhcnkgR2Vu
ZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorCisgICAgWW91IHNob3VsZCBo
YXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGlj
ZW5zZQorICAgIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5M
SUIuICBJZiBub3QsIHdyaXRlIHRvCisgICAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwg
SW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAgICBCb3N0b24sIE1BIDAy
MTEwLTEzMDEsIFVTQS4KKyovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXZWJF
dmVudENvbnZlcnNpb24uaCIKKworI2luY2x1ZGUgIlBsYXRmb3JtTW91c2VFdmVudC5oIgorI2lu
Y2x1ZGUgIlBsYXRmb3JtV2hlZWxFdmVudC5oIgorI2luY2x1ZGUgPFFBcHBsaWNhdGlvbj4KKyNp
bmNsdWRlIDxRR3JhcGhpY3NTY2VuZU1vdXNlRXZlbnQ+CisjaW5jbHVkZSA8UVdoZWVsRXZlbnQ+
CisjaW5jbHVkZSA8d3RmL0N1cnJlbnRUaW1lLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwor
c3RhdGljIHZvaWQgbW91c2VFdmVudE1vZGlmaWVyc0Zyb21RdEtleWJvYXJkTW9kaWZpZXJzKFF0
OjpLZXlib2FyZE1vZGlmaWVycyBrZXlib2FyZE1vZGlmaWVycywgdW5zaWduZWQmIG1vZGlmaWVy
cykKK3sKKyAgICBtb2RpZmllcnMgPSAwOworICAgIGlmIChrZXlib2FyZE1vZGlmaWVycyAmIFF0
OjpTaGlmdE1vZGlmaWVyKQorICAgICAgICBtb2RpZmllcnMgfD0gUGxhdGZvcm1FdmVudDo6U2hp
ZnRLZXk7CisgICAgaWYgKGtleWJvYXJkTW9kaWZpZXJzICYgUXQ6OkNvbnRyb2xNb2RpZmllcikK
KyAgICAgICAgbW9kaWZpZXJzIHw9IFBsYXRmb3JtRXZlbnQ6OkN0cmxLZXk7CisgICAgaWYgKGtl
eWJvYXJkTW9kaWZpZXJzICYgUXQ6OkFsdE1vZGlmaWVyKQorICAgICAgICBtb2RpZmllcnMgfD0g
UGxhdGZvcm1FdmVudDo6QWx0S2V5OworICAgIGlmIChrZXlib2FyZE1vZGlmaWVycyAmIFF0OjpN
ZXRhTW9kaWZpZXIpCisgICAgICAgIG1vZGlmaWVycyB8PSBQbGF0Zm9ybUV2ZW50OjpNZXRhS2V5
OworfQorCitzdGF0aWMgdm9pZCBtb3VzZUV2ZW50VHlwZUFuZE1vdXNlQnV0dG9uRnJvbVFFdmVu
dChjb25zdCBRRXZlbnQqIGV2ZW50LCBQbGF0Zm9ybUV2ZW50OjpUeXBlJiBtb3VzZUV2ZW50VHlw
ZSwgTW91c2VCdXR0b24mIG1vdXNlQnV0dG9uKQoreworICAgIGVudW0geyBNb3VzZUV2ZW50LCBH
cmFwaGljc1NjZW5lTW91c2VFdmVudCB9IGZyYW1ld29ya01vdXNlRXZlbnRUeXBlOworICAgIHN3
aXRjaCAoZXZlbnQtPnR5cGUoKSkgeworICAgIGNhc2UgUUV2ZW50OjpNb3VzZUJ1dHRvbkRibENs
aWNrOgorICAgIGNhc2UgUUV2ZW50OjpNb3VzZUJ1dHRvblByZXNzOgorICAgICAgICBmcmFtZXdv
cmtNb3VzZUV2ZW50VHlwZSA9IE1vdXNlRXZlbnQ7CisgICAgICAgIG1vdXNlRXZlbnRUeXBlID0g
UGxhdGZvcm1FdmVudDo6TW91c2VQcmVzc2VkOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFFF
dmVudDo6TW91c2VCdXR0b25SZWxlYXNlOgorICAgICAgICBmcmFtZXdvcmtNb3VzZUV2ZW50VHlw
ZSA9IE1vdXNlRXZlbnQ7CisgICAgICAgIG1vdXNlRXZlbnRUeXBlID0gUGxhdGZvcm1FdmVudDo6
TW91c2VSZWxlYXNlZDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRRXZlbnQ6Ok1vdXNlTW92
ZToKKyAgICAgICAgZnJhbWV3b3JrTW91c2VFdmVudFR5cGUgPSBNb3VzZUV2ZW50OworICAgICAg
ICBtb3VzZUV2ZW50VHlwZSA9IFBsYXRmb3JtRXZlbnQ6Ok1vdXNlTW92ZWQ7CisgICAgICAgIGJy
ZWFrOworICAgIGNhc2UgUUV2ZW50OjpHcmFwaGljc1NjZW5lTW91c2VEb3VibGVDbGljazoKKyAg
ICBjYXNlIFFFdmVudDo6R3JhcGhpY3NTY2VuZU1vdXNlUHJlc3M6CisgICAgICAgIGZyYW1ld29y
a01vdXNlRXZlbnRUeXBlID0gR3JhcGhpY3NTY2VuZU1vdXNlRXZlbnQ7CisgICAgICAgIG1vdXNl
RXZlbnRUeXBlID0gUGxhdGZvcm1FdmVudDo6TW91c2VQcmVzc2VkOworICAgICAgICBicmVhazsK
KyAgICBjYXNlIFFFdmVudDo6R3JhcGhpY3NTY2VuZU1vdXNlUmVsZWFzZToKKyAgICAgICAgZnJh
bWV3b3JrTW91c2VFdmVudFR5cGUgPSBHcmFwaGljc1NjZW5lTW91c2VFdmVudDsKKyAgICAgICAg
bW91c2VFdmVudFR5cGUgPSBQbGF0Zm9ybUV2ZW50OjpNb3VzZVJlbGVhc2VkOworICAgICAgICBi
cmVhazsKKyAgICBjYXNlIFFFdmVudDo6R3JhcGhpY3NTY2VuZU1vdXNlTW92ZToKKyAgICAgICAg
ZnJhbWV3b3JrTW91c2VFdmVudFR5cGUgPSBHcmFwaGljc1NjZW5lTW91c2VFdmVudDsKKyAgICAg
ICAgbW91c2VFdmVudFR5cGUgPSBQbGF0Zm9ybUV2ZW50OjpNb3VzZU1vdmVkOworICAgICAgICBi
cmVhazsKKyAgICBkZWZhdWx0OgorICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAg
ICAgZnJhbWV3b3JrTW91c2VFdmVudFR5cGUgPSBNb3VzZUV2ZW50OworICAgICAgICBtb3VzZUV2
ZW50VHlwZSA9IFBsYXRmb3JtRXZlbnQ6Ok1vdXNlTW92ZWQ7CisgICAgICAgIGJyZWFrOworICAg
IH0KKworICAgIFF0OjpNb3VzZUJ1dHRvbnMgbW91c2VCdXR0b25zOworICAgIHN3aXRjaCAoZnJh
bWV3b3JrTW91c2VFdmVudFR5cGUpIHsKKyAgICBjYXNlIE1vdXNlRXZlbnQ6IHsKKyAgICAgICAg
Y29uc3QgUU1vdXNlRXZlbnQqIG1vdXNlRXZlbnQgPSBzdGF0aWNfY2FzdDxjb25zdCBRTW91c2VF
dmVudCo+KGV2ZW50KTsKKyAgICAgICAgbW91c2VCdXR0b25zID0gbW91c2VFdmVudFR5cGUgPT0g
UGxhdGZvcm1FdmVudDo6TW91c2VNb3ZlZCA/IG1vdXNlRXZlbnQtPmJ1dHRvbnMoKSA6IG1vdXNl
RXZlbnQtPmJ1dHRvbigpOworICAgICAgICBicmVhazsKKyAgICB9CisgICAgY2FzZSBHcmFwaGlj
c1NjZW5lTW91c2VFdmVudDogeworICAgICAgICBjb25zdCBRR3JhcGhpY3NTY2VuZU1vdXNlRXZl
bnQqIG1vdXNlRXZlbnQgPSBzdGF0aWNfY2FzdDxjb25zdCBRR3JhcGhpY3NTY2VuZU1vdXNlRXZl
bnQqPihldmVudCk7CisgICAgICAgIG1vdXNlQnV0dG9ucyA9IG1vdXNlRXZlbnRUeXBlID09IFBs
YXRmb3JtRXZlbnQ6Ok1vdXNlTW92ZWQgPyBtb3VzZUV2ZW50LT5idXR0b25zKCkgOiBtb3VzZUV2
ZW50LT5idXR0b24oKTsKKyAgICAgICAgYnJlYWs7CisgICAgfQorICAgIH0KKworICAgIGlmICht
b3VzZUJ1dHRvbnMgJiBRdDo6TGVmdEJ1dHRvbikKKyAgICAgICAgbW91c2VCdXR0b24gPSBMZWZ0
QnV0dG9uOworICAgIGVsc2UgaWYgKG1vdXNlQnV0dG9ucyAmIFF0OjpSaWdodEJ1dHRvbikKKyAg
ICAgICAgbW91c2VCdXR0b24gPSBSaWdodEJ1dHRvbjsKKyAgICBlbHNlIGlmIChtb3VzZUJ1dHRv
bnMgJiBRdDo6TWlkQnV0dG9uKQorICAgICAgICBtb3VzZUJ1dHRvbiA9IE1pZGRsZUJ1dHRvbjsK
KyAgICBlbHNlCisgICAgICAgIG1vdXNlQnV0dG9uID0gTm9CdXR0b247Cit9CisKK2NsYXNzIFdl
YktpdFBsYXRmb3JtTW91c2VFdmVudCA6IHB1YmxpYyBQbGF0Zm9ybU1vdXNlRXZlbnQgeworcHVi
bGljOgorICAgIFdlYktpdFBsYXRmb3JtTW91c2VFdmVudChRR3JhcGhpY3NTY2VuZU1vdXNlRXZl
bnQqLCBpbnQgY2xpY2tDb3VudCk7CisgICAgV2ViS2l0UGxhdGZvcm1Nb3VzZUV2ZW50KFFJbnB1
dEV2ZW50KiwgaW50IGNsaWNrQ291bnQpOworfTsKKworV2ViS2l0UGxhdGZvcm1Nb3VzZUV2ZW50
OjpXZWJLaXRQbGF0Zm9ybU1vdXNlRXZlbnQoUUdyYXBoaWNzU2NlbmVNb3VzZUV2ZW50KiBldmVu
dCwgaW50IGNsaWNrQ291bnQpCit7CisgICAgbV90aW1lc3RhbXAgPSBXVEY6OmN1cnJlbnRUaW1l
KCk7CisKKyAgICAvLyBGSVhNRTogV2h5IGRvbid0IHdlIGhhbmRsZSBhIGNvbnRleHQgbWVudSBl
dmVudCBoZXJlIGFzIHdlIGRvIGluIFBsYXRmb3JtTW91c2VFdmVudChRSW5wdXRFdmVudCosIGlu
dCk/CisgICAgLy8gU2VlIDxodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
NjA3Mjg+LgorICAgIFBsYXRmb3JtRXZlbnQ6OlR5cGUgdHlwZTsKKyAgICBtb3VzZUV2ZW50VHlw
ZUFuZE1vdXNlQnV0dG9uRnJvbVFFdmVudChldmVudCwgdHlwZSwgbV9idXR0b24pOworCisgICAg
bV90eXBlID0gdHlwZTsKKyAgICBtX3Bvc2l0aW9uID0gSW50UG9pbnQoZXZlbnQtPnBvcygpLnRv
UG9pbnQoKSk7CisgICAgbV9nbG9iYWxQb3NpdGlvbiA9IEludFBvaW50KGV2ZW50LT5zY3JlZW5Q
b3MoKSk7CisKKyAgICBtX2NsaWNrQ291bnQgPSBjbGlja0NvdW50OworICAgIG1vdXNlRXZlbnRN
b2RpZmllcnNGcm9tUXRLZXlib2FyZE1vZGlmaWVycyhldmVudC0+bW9kaWZpZXJzKCksIG1fbW9k
aWZpZXJzKTsKK30KKworV2ViS2l0UGxhdGZvcm1Nb3VzZUV2ZW50OjpXZWJLaXRQbGF0Zm9ybU1v
dXNlRXZlbnQoUUlucHV0RXZlbnQqIGV2ZW50LCBpbnQgY2xpY2tDb3VudCkKK3sKKyAgICBtX3Rp
bWVzdGFtcCA9IFdURjo6Y3VycmVudFRpbWUoKTsKKworICAgIGJvb2wgaXNDb250ZXh0TWVudUV2
ZW50ID0gZmFsc2U7CisjaWZuZGVmIFFUX05PX0NPTlRFWFRNRU5VCisgICAgaWYgKGV2ZW50LT50
eXBlKCkgPT0gUUV2ZW50OjpDb250ZXh0TWVudSkgeworICAgICAgICBpc0NvbnRleHRNZW51RXZl
bnQgPSB0cnVlOworICAgICAgICBtX3R5cGUgPSBQbGF0Zm9ybUV2ZW50OjpNb3VzZVByZXNzZWQ7
CisgICAgICAgIFFDb250ZXh0TWVudUV2ZW50KiBjZSA9IHN0YXRpY19jYXN0PFFDb250ZXh0TWVu
dUV2ZW50Kj4oZXZlbnQpOworICAgICAgICBtX3Bvc2l0aW9uID0gSW50UG9pbnQoY2UtPnBvcygp
KTsKKyAgICAgICAgbV9nbG9iYWxQb3NpdGlvbiA9IEludFBvaW50KGNlLT5nbG9iYWxQb3MoKSk7
CisgICAgICAgIG1fYnV0dG9uID0gUmlnaHRCdXR0b247CisgICAgfQorI2VuZGlmCisgICAgaWYg
KCFpc0NvbnRleHRNZW51RXZlbnQpIHsKKyAgICAgICAgUGxhdGZvcm1FdmVudDo6VHlwZSB0eXBl
OworICAgICAgICBtb3VzZUV2ZW50VHlwZUFuZE1vdXNlQnV0dG9uRnJvbVFFdmVudChldmVudCwg
dHlwZSwgbV9idXR0b24pOworICAgICAgICBRTW91c2VFdmVudCogbW91c2VFdmVudCA9IHN0YXRp
Y19jYXN0PFFNb3VzZUV2ZW50Kj4oZXZlbnQpOworCisgICAgICAgIG1fdHlwZSA9IHR5cGU7Cisg
ICAgICAgIG1fcG9zaXRpb24gPSBJbnRQb2ludChtb3VzZUV2ZW50LT5wb3MoKSk7CisgICAgICAg
IG1fZ2xvYmFsUG9zaXRpb24gPSBJbnRQb2ludChtb3VzZUV2ZW50LT5nbG9iYWxQb3MoKSk7Cisg
ICAgfQorCisgICAgbV9jbGlja0NvdW50ID0gY2xpY2tDb3VudDsKKyAgICBtb3VzZUV2ZW50TW9k
aWZpZXJzRnJvbVF0S2V5Ym9hcmRNb2RpZmllcnMoZXZlbnQtPm1vZGlmaWVycygpLCBtX21vZGlm
aWVycyk7Cit9CisKK1BsYXRmb3JtTW91c2VFdmVudCBjb252ZXJ0TW91c2VFdmVudChRSW5wdXRF
dmVudCogZXZlbnQsIGludCBjbGlja0NvdW50KQoreworICAgIHJldHVybiBXZWJLaXRQbGF0Zm9y
bU1vdXNlRXZlbnQoZXZlbnQsIGNsaWNrQ291bnQpOworfQorCitQbGF0Zm9ybU1vdXNlRXZlbnQg
Y29udmVydE1vdXNlRXZlbnQoUUdyYXBoaWNzU2NlbmVNb3VzZUV2ZW50KiBldmVudCwgaW50IGNs
aWNrQ291bnQpCit7CisgICAgcmV0dXJuIFdlYktpdFBsYXRmb3JtTW91c2VFdmVudChldmVudCwg
Y2xpY2tDb3VudCk7Cit9CisKK2NsYXNzIFdlYktpdFBsYXRmb3JtV2hlZWxFdmVudCA6IHB1Ymxp
YyBQbGF0Zm9ybVdoZWVsRXZlbnQgeworcHVibGljOgorICAgIFdlYktpdFBsYXRmb3JtV2hlZWxF
dmVudChRR3JhcGhpY3NTY2VuZVdoZWVsRXZlbnQqKTsKKyAgICBXZWJLaXRQbGF0Zm9ybVdoZWVs
RXZlbnQoUVdoZWVsRXZlbnQqKTsKKworcHJpdmF0ZToKKyAgICB2b2lkIGFwcGx5RGVsdGEoaW50
IGRlbHRhLCBRdDo6T3JpZW50YXRpb24pOworfTsKKwordm9pZCBXZWJLaXRQbGF0Zm9ybVdoZWVs
RXZlbnQ6OmFwcGx5RGVsdGEoaW50IGRlbHRhLCBRdDo6T3JpZW50YXRpb24gb3JpZW50YXRpb24p
Cit7CisgICAgLy8gQSBkZWx0YSB0aGF0IGlzIG5vdCBtb2QgMTIwIGluZGljYXRlcyBhIGRldmlj
ZSB0aGF0IGlzIHNlbmRpbmcKKyAgICAvLyBmaW5lLXJlc29sdXRpb24gc2Nyb2xsIGV2ZW50cywg
c28gdXNlIHRoZSBkZWx0YSBhcyBudW1iZXIgb2Ygd2hlZWwgdGlja3MKKyAgICAvLyBhbmQgbnVt
YmVyIG9mIHBpeGVscyB0byBzY3JvbGwuU2VlIGFsc28gd2Via2l0Lm9yZy9iLzI5NjAxCisgICAg
Ym9vbCBmdWxsVGljayA9ICEoZGVsdGEgJSAxMjApOworCisgICAgaWYgKG9yaWVudGF0aW9uID09
IFF0OjpIb3Jpem9udGFsKSB7CisgICAgICAgIG1fZGVsdGFYID0gKGZ1bGxUaWNrKSA/IGRlbHRh
IC8gMTIwLjBmIDogZGVsdGE7CisgICAgICAgIG1fZGVsdGFZID0gMDsKKyAgICB9IGVsc2Ugewor
ICAgICAgICBtX2RlbHRhWCA9IDA7CisgICAgICAgIG1fZGVsdGFZID0gKGZ1bGxUaWNrKSA/IGRl
bHRhIC8gMTIwLjBmIDogZGVsdGE7CisgICAgfQorCisgICAgbV93aGVlbFRpY2tzWCA9IG1fZGVs
dGFYOworICAgIG1fd2hlZWxUaWNrc1kgPSBtX2RlbHRhWTsKKworICAgIC8vIFVzZSB0aGUgc2Ft
ZSBzaW5nbGUgc2Nyb2xsIHN0ZXAgYXMgUVRleHRFZGl0CisgICAgLy8gKGluIFFUZXh0RWRpdFBy
aXZhdGU6OmluaXQgW2gsdl1iYXItPnNldFNpbmdsZVN0ZXApCisgICAgc3RhdGljIGNvbnN0IGZs
b2F0IGNEZWZhdWx0UXRTY3JvbGxTdGVwID0gMjAuZjsKKyAgICBtX2RlbHRhWCAqPSAoZnVsbFRp
Y2spID8gUUFwcGxpY2F0aW9uOjp3aGVlbFNjcm9sbExpbmVzKCkgKiBjRGVmYXVsdFF0U2Nyb2xs
U3RlcCA6IDE7CisgICAgbV9kZWx0YVkgKj0gKGZ1bGxUaWNrKSA/IFFBcHBsaWNhdGlvbjo6d2hl
ZWxTY3JvbGxMaW5lcygpICogY0RlZmF1bHRRdFNjcm9sbFN0ZXAgOiAxOworfQorCitXZWJLaXRQ
bGF0Zm9ybVdoZWVsRXZlbnQ6OldlYktpdFBsYXRmb3JtV2hlZWxFdmVudChRR3JhcGhpY3NTY2Vu
ZVdoZWVsRXZlbnQqIGUpCit7CisgICAgLy8gIyMjIFBsYXRmb3JtRXZlbnQoUGxhdGZvcm1FdmVu
dDo6V2hlZWwsIGUtPm1vZGlmaWVycygpICYgUXQ6OlNoaWZ0TW9kaWZpZXIsIGUtPm1vZGlmaWVy
cygpICYgUXQ6OkNvbnRyb2xNb2RpZmllciwgZS0+bW9kaWZpZXJzKCkgJiBRdDo6QWx0TW9kaWZp
ZXIsIGUtPm1vZGlmaWVycygpICYgUXQ6Ok1ldGFNb2RpZmllciwgV1RGOjpjdXJyZW50VGltZSgp
KQorICAgIG1fcG9zaXRpb24gPSBlLT5wb3MoKS50b1BvaW50KCk7CisgICAgbV9nbG9iYWxQb3Np
dGlvbiA9IGUtPnNjcmVlblBvcygpOworICAgIG1fZ3JhbnVsYXJpdHkgPSBTY3JvbGxCeVBpeGVs
V2hlZWxFdmVudDsKKyAgICBtX2RpcmVjdGlvbkludmVydGVkRnJvbURldmljZSA9IGZhbHNlOwor
ICAgIGFwcGx5RGVsdGEoZS0+ZGVsdGEoKSwgZS0+b3JpZW50YXRpb24oKSk7Cit9CisKK1dlYktp
dFBsYXRmb3JtV2hlZWxFdmVudDo6V2ViS2l0UGxhdGZvcm1XaGVlbEV2ZW50KFFXaGVlbEV2ZW50
KiBlKQoreworICAgIC8vICMjIyBQbGF0Zm9ybUV2ZW50KFBsYXRmb3JtRXZlbnQ6OldoZWVsLCBl
LT5tb2RpZmllcnMoKSAmIFF0OjpTaGlmdE1vZGlmaWVyLCBlLT5tb2RpZmllcnMoKSAmIFF0OjpD
b250cm9sTW9kaWZpZXIsIGUtPm1vZGlmaWVycygpICYgUXQ6OkFsdE1vZGlmaWVyLCBlLT5tb2Rp
ZmllcnMoKSAmIFF0OjpNZXRhTW9kaWZpZXIsIFdURjo6Y3VycmVudFRpbWUoKSkKKyAgICBtX3Bv
c2l0aW9uID0gZS0+cG9zKCk7CisgICAgbV9nbG9iYWxQb3NpdGlvbiA9IGUtPmdsb2JhbFBvcygp
OworICAgIG1fZ3JhbnVsYXJpdHkgPSBTY3JvbGxCeVBpeGVsV2hlZWxFdmVudDsKKyAgICBtX2Rp
cmVjdGlvbkludmVydGVkRnJvbURldmljZSA9IGZhbHNlOworICAgIGFwcGx5RGVsdGEoZS0+ZGVs
dGEoKSwgZS0+b3JpZW50YXRpb24oKSk7Cit9CisKKworUGxhdGZvcm1XaGVlbEV2ZW50IGNvbnZl
cnRXaGVlbEV2ZW50KFFXaGVlbEV2ZW50KiBldmVudCkKK3sKKyAgICByZXR1cm4gV2ViS2l0UGxh
dGZvcm1XaGVlbEV2ZW50KGV2ZW50KTsKK30KKworUGxhdGZvcm1XaGVlbEV2ZW50IGNvbnZlcnRX
aGVlbEV2ZW50KFFHcmFwaGljc1NjZW5lV2hlZWxFdmVudCogZXZlbnQpCit7CisgICAgcmV0dXJu
IFdlYktpdFBsYXRmb3JtV2hlZWxFdmVudChldmVudCk7Cit9CisKK30KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvV2ViRXZlbnRDb252ZXJzaW9uLmggYi9Tb3Vy
Y2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L1dlYkV2ZW50Q29udmVyc2lvbi5oCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjI1ZDAyZGYyMjFjNjg1MTIyZTIxOTI2NWI2NDI2MjE0M2M0NGVjZTAKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L1dlYkV2ZW50Q29udmVyc2lv
bi5oCkBAIC0wLDAgKzEsNDEgQEAKKy8qCisgICAgQ29weXJpZ2h0IChDKSAyMDEyIE5va2lhIENv
cnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKQorICAgIENvcHlyaWdodCAoQykg
MjAwNiBaYWNrIFJ1c2luIDx6YWNrQGtkZS5vcmc+CisgICAgQ29weXJpZ2h0IChDKSAyMDExIFJl
c2VhcmNoIEluIE1vdGlvbiBMaW1pdGVkLgorCisgICAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29m
dHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICAgIG1vZGlmeSBpdCB1bmRl
ciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgICAgTGljZW5z
ZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisg
ICAgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRl
ciB2ZXJzaW9uLgorCisgICAgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3Bl
IHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3
aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAgICBNRVJDSEFOVEFCSUxJVFkg
b3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICAgIExp
YnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorCisgICAgWW91
IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQ
dWJsaWMgTGljZW5zZQorICAgIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUg
Q09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgICAgdGhlIEZyZWUgU29mdHdhcmUgRm91
bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAgICBCb3N0
b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyovCisKKyNpbmNsdWRlIDxxZ2xvYmFsLmg+CisKK1FU
X0JFR0lOX05BTUVTUEFDRQorY2xhc3MgUUlucHV0RXZlbnQ7CitjbGFzcyBRR3JhcGhpY3NTY2Vu
ZU1vdXNlRXZlbnQ7CitjbGFzcyBRV2hlZWxFdmVudDsKK2NsYXNzIFFHcmFwaGljc1NjZW5lV2hl
ZWxFdmVudDsKK1FUX0VORF9OQU1FU1BBQ0UKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFz
cyBQbGF0Zm9ybU1vdXNlRXZlbnQ7CitjbGFzcyBQbGF0Zm9ybVdoZWVsRXZlbnQ7CisKK1BsYXRm
b3JtTW91c2VFdmVudCBjb252ZXJ0TW91c2VFdmVudChRSW5wdXRFdmVudCosIGludCBjbGlja0Nv
dW50KTsKK1BsYXRmb3JtTW91c2VFdmVudCBjb252ZXJ0TW91c2VFdmVudChRR3JhcGhpY3NTY2Vu
ZU1vdXNlRXZlbnQqLCBpbnQgY2xpY2tDb3VudCk7CitQbGF0Zm9ybVdoZWVsRXZlbnQgY29udmVy
dFdoZWVsRXZlbnQoUVdoZWVsRXZlbnQqKTsKK1BsYXRmb3JtV2hlZWxFdmVudCBjb252ZXJ0V2hl
ZWxFdmVudChRR3JhcGhpY3NTY2VuZVdoZWVsRXZlbnQqKTsKKworfQpkaWZmIC0tZ2l0IGEvU291
cmNlL2FwaS5wcmkgYi9Tb3VyY2UvYXBpLnByaQppbmRleCAyZGNhM2Y0NjgyNTcyZmE5MjdlNjM4
Zjc4NTIxYTI3OWRmZGI2NDU5Li5kYjFjN2ViNWM3NzU1MjVkMDM4ZmM1Y2UwYTBiZTM5MzBjMTVm
YjMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvYXBpLnByaQorKysgYi9Tb3VyY2UvYXBpLnByaQpAQCAt
NjMsNyArNjMsOCBAQCBTT1VSQ0VTICs9IFwKICAgICAkJFBXRC9XZWJLaXQvcXQvV2ViQ29yZVN1
cHBvcnQvUXRQbGF0Zm9ybVBsdWdpbi5jcHAgXAogICAgICQkUFdEL1dlYktpdC9xdC9XZWJDb3Jl
U3VwcG9ydC9TZWFyY2hQb3B1cE1lbnVRdC5jcHAgXAogICAgICQkUFdEL1dlYktpdC9xdC9XZWJD
b3JlU3VwcG9ydC9UZXh0Q2hlY2tlckNsaWVudFF0LmNwcCBcCi0gICAgJCRQV0QvV2ViS2l0L3F0
L1dlYkNvcmVTdXBwb3J0L1BsYXRmb3JtU3RyYXRlZ2llc1F0LmNwcAorICAgICQkUFdEL1dlYktp
dC9xdC9XZWJDb3JlU3VwcG9ydC9QbGF0Zm9ybVN0cmF0ZWdpZXNRdC5jcHAgXAorICAgICQkUFdE
L1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9XZWJFdmVudENvbnZlcnNpb24uY3BwCiAKIEhFQURF
UlMgKz0gXAogICAgICQkUFdEL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9Jbml0V2ViQ29yZVF0
LmggXApAQCAtNzksNyArODAsOCBAQCBIRUFERVJTICs9IFwKICAgICAkJFBXRC9XZWJLaXQvcXQv
V2ViQ29yZVN1cHBvcnQvUG9wdXBNZW51UXQuaCBcCiAgICAgJCRQV0QvV2ViS2l0L3F0L1dlYkNv
cmVTdXBwb3J0L1NlYXJjaFBvcHVwTWVudVF0LmggXAogICAgICQkUFdEL1dlYktpdC9xdC9XZWJD
b3JlU3VwcG9ydC9UZXh0Q2hlY2tlckNsaWVudFF0LmggXAotICAgICQkUFdEL1dlYktpdC9xdC9X
ZWJDb3JlU3VwcG9ydC9QbGF0Zm9ybVN0cmF0ZWdpZXNRdC5oCisgICAgJCRQV0QvV2ViS2l0L3F0
L1dlYkNvcmVTdXBwb3J0L1BsYXRmb3JtU3RyYXRlZ2llc1F0LmggXAorICAgICQkUFdEL1dlYktp
dC9xdC9XZWJDb3JlU3VwcG9ydC9XZWJFdmVudENvbnZlcnNpb24uaAogCiBJTkNMVURFUEFUSCAr
PSBcCiAgICAgJCRQV0QvV2ViS2l0L3F0L0FwaSBcCmRpZmYgLS1naXQgYS9DaGFuZ2VMb2cgYi9D
aGFuZ2VMb2cKaW5kZXggZjVlNjk1YTlmYTlhNzUzYTE3NWU5MzYzMGNkYjViMmQ3NDJjYWQ2Yi4u
MGY5MTdkMDhhNWZiNDdkNjMzYTkzOTY5MmUwMTBkOGYwOTU0MTAxNSAxMDA2NDQKLS0tIGEvQ2hh
bmdlTG9nCisrKyBiL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyIEBACisyMDEyLTAyLTE2ICBTaW1v
biBIYXVzbWFubiAgPHNpbW9uLmhhdXNtYW5uQG5va2lhLmNvbT4KKworICAgICAgICBbUXRdIE1v
dmUgZXZlbnQgY29udmVyc2lvbiBmdW5jdGlvbnMgZnJvbSBXZWJDb3JlIHRvIFdlYktpdAorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Nzg3ODgKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFNvdXJjZS9hcGku
cHJpOiBBZGQgbmV3IGZpbGVzIHRvIHRoZSBidWlsZC4KKwogMjAxMi0wMi0xNCAgUmFwaGFlbCBL
dWJvIGRhIENvc3RhICA8a3Vib0Bwcm9mdXNpb24ubW9iaT4KIAogICAgICAgICBbQ01ha2VdIFJl
bW92ZSB1bnVzZWQgUGtnQ29uZmlnIG1vZHVsZSBpbXBvcnQgZnJvbSBGaW5kQ0ZMaXRlLmNtYWtl
Lgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>127332</attachid>
            <date>2012-02-16 02:20:54 -0800</date>
            <delta_ts>2012-02-16 02:25:20 -0800</delta_ts>
            <desc>[Qt] Move event conversion functions from WebCore to WebKit</desc>
            <filename>bug-78788-20120216112052.patch</filename>
            <type>text/plain</type>
            <size>23253</size>
            <attacher name="Simon Hausmann">hausmann</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA3OTEzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYWM4ZjEwZWRkNGFiYzdl
NWNlNmFjN2E0NTMyYWMzMjA3YTQ5NjViYy4uMjVhZTE3YzRmMzNkMmJhZjc3NGQwY2VjZmRhMjg2
MGQ1MzkzODA3ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDIxIEBACiAyMDEyLTAyLTE2ICBTaW1v
biBIYXVzbWFubiAgPHNpbW9uLmhhdXNtYW5uQG5va2lhLmNvbT4KIAorICAgICAgICBbUXRdIE1v
dmUgZXZlbnQgY29udmVyc2lvbiBmdW5jdGlvbnMgZnJvbSBXZWJDb3JlIHRvIFdlYktpdAorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Nzg3ODgKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBNb3ZlIFF0V2lkZ2V0
cyBkZXBlbmRlbnQgbW91c2UgZXZlbnQgY29uc3RydWN0b3JzIG91dCBvZiBXZWJDb3JlCisgICAg
ICAgIGludG8gV2ViS2l0LCBzaW1pbGFyIHRvIHRoZSB3ZWIgZXZlbnQgY29udmVyc2lvbnMgb2Yg
V2ViS2l0Mi4KKworICAgICAgICAqIFRhcmdldC5wcmk6CisgICAgICAgICogcGxhdGZvcm0vUGxh
dGZvcm1Nb3VzZUV2ZW50Lmg6CisgICAgICAgIChQbGF0Zm9ybU1vdXNlRXZlbnQpOgorICAgICAg
ICAqIHBsYXRmb3JtL1BsYXRmb3JtV2hlZWxFdmVudC5oOgorICAgICAgICAoUGxhdGZvcm1XaGVl
bEV2ZW50KToKKworMjAxMi0wMi0xNiAgU2ltb24gSGF1c21hbm4gIDxzaW1vbi5oYXVzbWFubkBu
b2tpYS5jb20+CisKICAgICAgICAgVW5yZXZpZXdlZCBwcm9zcGVjdGl2ZSBRdCA0LjgvTWFjIGJ1
aWxkIGZpeC4KIAogICAgICAgICBDYXN0IHRoZSBQbGF0Zm9ybVdpZGdldCBmcm9tIFFPYmplY3Qq
IHRvIFFXaWRnZXQqIHRvIGdhaW4gYWNjZXNzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3F0
L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvcXQvQ2hhbmdlTG9nCmluZGV4IDRlNmFmOGZkMjFi
ZDE0NTQ3OGYwMmRjZDYyY2MyZjA3NDg0MjZlOGIuLjcwOWY2ZTI5MmJkZGNhYjM4ODljNGNmZjk3
MGE1ZmJlMzZjNTA4MGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvcXQvQ2hhbmdlTG9nCisr
KyBiL1NvdXJjZS9XZWJLaXQvcXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzcgQEAKKzIwMTItMDIt
MTYgIFNpbW9uIEhhdXNtYW5uICA8c2ltb24uaGF1c21hbm5Abm9raWEuY29tPgorCisgICAgICAg
IFtRdF0gTW92ZSBldmVudCBjb252ZXJzaW9uIGZ1bmN0aW9ucyBmcm9tIFdlYkNvcmUgdG8gV2Vi
S2l0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03ODc4
OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE1vdmUg
UXRXaWRnZXRzIGRlcGVuZGVudCBtb3VzZSBldmVudCBjb25zdHJ1Y3RvcnMgb3V0IG9mIFdlYkNv
cmUKKyAgICAgICAgaW50byBXZWJLaXQsIHNpbWlsYXIgdG8gdGhlIHdlYiBldmVudCBjb252ZXJz
aW9ucyBvZiBXZWJLaXQyLgorCisgICAgICAgICogQXBpL3F3ZWJwYWdlLmNwcDoKKyAgICAgICAg
KFFXZWJQYWdlUHJpdmF0ZTo6bW91c2VNb3ZlRXZlbnQpOgorICAgICAgICAoUVdlYlBhZ2VQcml2
YXRlOjptb3VzZVByZXNzRXZlbnQpOgorICAgICAgICAoUVdlYlBhZ2VQcml2YXRlOjptb3VzZURv
dWJsZUNsaWNrRXZlbnQpOgorICAgICAgICAoUVdlYlBhZ2VQcml2YXRlOjptb3VzZVRyaXBsZUNs
aWNrRXZlbnQpOgorICAgICAgICAoUVdlYlBhZ2VQcml2YXRlOjptb3VzZVJlbGVhc2VFdmVudCk6
CisgICAgICAgIChRV2ViUGFnZVByaXZhdGU6OndoZWVsRXZlbnQpOgorICAgICAgICAoUVdlYlBh
Z2U6OnN3YWxsb3dDb250ZXh0TWVudUV2ZW50KToKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9G
cmFtZUxvYWRlckNsaWVudFF0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyQ2xp
ZW50UXQ6OnBvc3RQcm9ncmVzc0ZpbmlzaGVkTm90aWZpY2F0aW9uKToKKyAgICAgICAgKiBXZWJD
b3JlU3VwcG9ydC9XZWJFdmVudENvbnZlcnNpb24uY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNv
cmUpOgorICAgICAgICAoV2ViQ29yZTo6bW91c2VFdmVudE1vZGlmaWVyc0Zyb21RdEtleWJvYXJk
TW9kaWZpZXJzKToKKyAgICAgICAgKFdlYkNvcmU6Om1vdXNlRXZlbnRUeXBlQW5kTW91c2VCdXR0
b25Gcm9tUUV2ZW50KToKKyAgICAgICAgKFdlYktpdFBsYXRmb3JtTW91c2VFdmVudCk6CisgICAg
ICAgIChXZWJDb3JlOjpXZWJLaXRQbGF0Zm9ybU1vdXNlRXZlbnQ6OldlYktpdFBsYXRmb3JtTW91
c2VFdmVudCk6CisgICAgICAgIChXZWJDb3JlOjpjb252ZXJ0TW91c2VFdmVudCk6CisgICAgICAg
IChXZWJLaXRQbGF0Zm9ybVdoZWVsRXZlbnQpOgorICAgICAgICAoV2ViQ29yZTo6V2ViS2l0UGxh
dGZvcm1XaGVlbEV2ZW50OjphcHBseURlbHRhKToKKyAgICAgICAgKFdlYkNvcmU6OldlYktpdFBs
YXRmb3JtV2hlZWxFdmVudDo6V2ViS2l0UGxhdGZvcm1XaGVlbEV2ZW50KToKKyAgICAgICAgKFdl
YkNvcmU6OmNvbnZlcnRXaGVlbEV2ZW50KToKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJF
dmVudENvbnZlcnNpb24uaDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlKToKKwogMjAxMi0wMi0x
NSAgU2FkcnVsIEhhYmliIENob3dkaHVyeSAgPHNhZHJ1bEBjaHJvbWl1bS5vcmc+CiAKICAgICAg
ICAgTm90aWZ5IENocm9tZUNsaWVudCB3aGVuIHRvdWNoLWV2ZW50IGhhbmRsZXJzIGFyZSBpbnN0
YWxsZWQvcmVtb3ZlZC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkgYi9T
b3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpCmluZGV4IGIxY2QyNWYxNDY5ZjZjOTUzMDMxZTc4MmE0
ZWQwYzFjODk0NmY0NzMuLmE1YzlhM2NmMGM0ZmE4MzM2MzA2ZmViMjI3ZDU3Y2Y3Yzc4MzJkNjMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkKKysrIGIvU291cmNlL1dlYkNv
cmUvVGFyZ2V0LnByaQpAQCAtMjgyOCw3ICsyODI4LDYgQEAgU09VUkNFUyArPSBcCiAgICAgcGxh
dGZvcm0vcXQvTUlNRVR5cGVSZWdpc3RyeVF0LmNwcCBcCiAgICAgcGxhdGZvcm0vcXQvUGFzdGVi
b2FyZFF0LmNwcCBcCiAgICAgcGxhdGZvcm0vcXQvUGxhdGZvcm1LZXlib2FyZEV2ZW50UXQuY3Bw
IFwKLSAgICBwbGF0Zm9ybS9xdC9QbGF0Zm9ybU1vdXNlRXZlbnRRdC5jcHAgXAogICAgIHBsYXRm
b3JtL3F0L1BsYXRmb3JtU2NyZWVuUXQuY3BwIFwKICAgICBwbGF0Zm9ybS9xdC9QbGF0Zm9ybVRv
dWNoRXZlbnRRdC5jcHAgXAogICAgIHBsYXRmb3JtL3F0L1BsYXRmb3JtVG91Y2hQb2ludFF0LmNw
cCBcCkBAIC0yODQ0LDcgKzI4NDMsNiBAQCBTT1VSQ0VTICs9IFwKICAgICBwbGF0Zm9ybS90ZXh0
L3F0L1RleHRCb3VuZGFyaWVzUXQuY3BwIFwKICAgICBwbGF0Zm9ybS90ZXh0L3F0L1RleHRCcmVh
a0l0ZXJhdG9ySW50ZXJuYWxJQ1VRdC5jcHAgXAogICAgIHBsYXRmb3JtL3RleHQvcXQvVGV4dENv
ZGVjUXQuY3BwIFwKLSAgICBwbGF0Zm9ybS9xdC9XaGVlbEV2ZW50UXQuY3BwIFwKICAgICBwbGF0
Zm9ybS9xdC9XaWRnZXRRdC5jcHAKIAogIWNvbnRhaW5zKERFRklORVMsIFdURl9VU0VfTElCWE1M
Mj0xKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybU1vdXNl
RXZlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3JtTW91c2VFdmVudC5oCmlu
ZGV4IGEzZGNjZTQ5MGQzZjc4MDYyZDllYzc4YjY4MTdkMzk4ODllNGU0ZWUuLjIwYWVjZjEwNzgz
NjkzYTRkZGU5NjE5MGEzOTFjOGZhZWIyNjVkOWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL1BsYXRmb3JtTW91c2VFdmVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL1BsYXRmb3JtTW91c2VFdmVudC5oCkBAIC00MCwxMyArNDAsNiBAQCB0eXBlZGVmIHN0cnVj
dCBfRXZhc19FdmVudF9Nb3VzZV9VcCBFdmFzX0V2ZW50X01vdXNlX1VwOwogdHlwZWRlZiBzdHJ1
Y3QgX0V2YXNfRXZlbnRfTW91c2VfTW92ZSBFdmFzX0V2ZW50X01vdXNlX01vdmU7CiAjZW5kaWYK
IAotI2lmIFBMQVRGT1JNKFFUKQotUVRfQkVHSU5fTkFNRVNQQUNFCi1jbGFzcyBRSW5wdXRFdmVu
dDsKLWNsYXNzIFFHcmFwaGljc1NjZW5lTW91c2VFdmVudDsKLVFUX0VORF9OQU1FU1BBQ0UKLSNl
bmRpZgotCiAjaWYgUExBVEZPUk0oV0lOKQogdHlwZWRlZiBzdHJ1Y3QgSFdORF9fKiBIV05EOwog
dHlwZWRlZiB1bnNpZ25lZCBVSU5UOwpAQCAtMTIyLDExICsxMTUsNiBAQCBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAgICAgICAgIGludCBldmVudE51bWJlcigpIGNvbnN0IHsgcmV0dXJuIG1fZXZlbnRO
dW1iZXI7IH0KICNlbmRpZgogCi0jaWYgUExBVEZPUk0oUVQpCi0gICAgICAgIFBsYXRmb3JtTW91
c2VFdmVudChRSW5wdXRFdmVudCosIGludCBjbGlja0NvdW50KTsKLSAgICAgICAgUGxhdGZvcm1N
b3VzZUV2ZW50KFFHcmFwaGljc1NjZW5lTW91c2VFdmVudCosIGludCBjbGlja0NvdW50KTsKLSNl
bmRpZgotCiAjaWYgUExBVEZPUk0oV0lOKQogICAgICAgICBQbGF0Zm9ybU1vdXNlRXZlbnQoSFdO
RCwgVUlOVCwgV1BBUkFNLCBMUEFSQU0sIGJvb2wgZGlkQWN0aXZhdGVXZWJWaWV3ID0gZmFsc2Up
OwogICAgICAgICB2b2lkIHNldENsaWNrQ291bnQoaW50IGNvdW50KSB7IG1fY2xpY2tDb3VudCA9
IGNvdW50OyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybVdo
ZWVsRXZlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3JtV2hlZWxFdmVudC5o
CmluZGV4IGY3NmY0Yzk1OGEzMWU5OWYwMmM5MzhkZWFjMzI0Njk5M2YzNWE2ZDcuLjY0ZTBmMjQ2
MzJjNGE4MTZmNDQ3ZGM3NTc2ZmJkYWM2MTI5YmE4ZjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL1BsYXRmb3JtV2hlZWxFdmVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL1BsYXRmb3JtV2hlZWxFdmVudC5oCkBAIC0zNywxMyArMzcsNiBAQCB0eXBlZGVmIHN0
cnVjdCBfR2RrRXZlbnRTY3JvbGwgR2RrRXZlbnRTY3JvbGw7CiB0eXBlZGVmIHN0cnVjdCBfRXZh
c19FdmVudF9Nb3VzZV9XaGVlbCBFdmFzX0V2ZW50X01vdXNlX1doZWVsOwogI2VuZGlmCiAKLSNp
ZiBQTEFURk9STShRVCkKLVFUX0JFR0lOX05BTUVTUEFDRQotY2xhc3MgUVdoZWVsRXZlbnQ7Ci1j
bGFzcyBRR3JhcGhpY3NTY2VuZVdoZWVsRXZlbnQ7Ci1RVF9FTkRfTkFNRVNQQUNFCi0jZW5kaWYK
LQogI2lmIFBMQVRGT1JNKFdJTikKIHR5cGVkZWYgc3RydWN0IEhXTkRfXyogSFdORDsKIHR5cGVk
ZWYgdW5zaWduZWQgV1BBUkFNOwpAQCAtMTYxLDEyICsxNTQsNiBAQCBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAgICAgICAgIGJvb2wgaGFzUHJlY2lzZVNjcm9sbGluZ0RlbHRhcygpIGNvbnN0IHsgcmV0
dXJuIG1faGFzUHJlY2lzZVNjcm9sbGluZ0RlbHRhczsgfQogI2VuZGlmCiAKLSNpZiBQTEFURk9S
TShRVCkKLSAgICAgICAgUGxhdGZvcm1XaGVlbEV2ZW50KFFXaGVlbEV2ZW50Kik7Ci0gICAgICAg
IFBsYXRmb3JtV2hlZWxFdmVudChRR3JhcGhpY3NTY2VuZVdoZWVsRXZlbnQqKTsKLSAgICAgICAg
dm9pZCBhcHBseURlbHRhKGludCBkZWx0YSwgUXQ6Ok9yaWVudGF0aW9uKTsKLSNlbmRpZgotCiAj
aWYgUExBVEZPUk0oV0lOKQogICAgICAgICBQbGF0Zm9ybVdoZWVsRXZlbnQoSFdORCwgV1BBUkFN
LCBMUEFSQU0sIGJvb2wgaXNNb3VzZUhXaGVlbCk7CiAgICAgICAgIFBsYXRmb3JtV2hlZWxFdmVu
dChIV05ELCBjb25zdCBGbG9hdFNpemUmIGRlbHRhLCBjb25zdCBGbG9hdFBvaW50JiBsb2NhdGlv
bik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3F0L0FwaS9xd2VicGFnZS5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L3F0L0FwaS9xd2VicGFnZS5jcHAKaW5kZXggNDIzNGZiYjY5YWY3YTg5NTVjMjlh
YzY5YmEwMGY4NDZmYjIzMGU2YS4uNWIyNGIxNzg0YzRjZmM5NjBkZTY2ZGIwOTEzNWRlMDQ3NTQx
ZWJiNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9xdC9BcGkvcXdlYnBhZ2UuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvcXQvQXBpL3F3ZWJwYWdlLmNwcApAQCAtMTEyLDYgKzExMiw3IEBACiAj
ZW5kaWYgLy8gUV9PU19XSU4zMgogI2luY2x1ZGUgIlRleHRJdGVyYXRvci5oIgogI2luY2x1ZGUg
IlV0aWxzUXQuaCIKKyNpbmNsdWRlICJXZWJFdmVudENvbnZlcnNpb24uaCIKICNpbmNsdWRlICJX
aW5kb3dGZWF0dXJlcy5oIgogI2luY2x1ZGUgIldvcmtlclRocmVhZC5oIgogCkBAIC02NzgsNyAr
Njc5LDcgQEAgdm9pZCBRV2ViUGFnZVByaXZhdGU6Om1vdXNlTW92ZUV2ZW50KFQqIGV2KQogICAg
IGlmICghZnJhbWUtPnZpZXcoKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgYm9vbCBhY2NlcHRl
ZCA9IGZyYW1lLT5ldmVudEhhbmRsZXIoKS0+bW91c2VNb3ZlZChQbGF0Zm9ybU1vdXNlRXZlbnQo
ZXYsIDApKTsKKyAgICBib29sIGFjY2VwdGVkID0gZnJhbWUtPmV2ZW50SGFuZGxlcigpLT5tb3Vz
ZU1vdmVkKGNvbnZlcnRNb3VzZUV2ZW50KGV2LCAwKSk7CiAgICAgZXYtPnNldEFjY2VwdGVkKGFj
Y2VwdGVkKTsKIH0KIApAQCAtNzAzLDcgKzcwNCw3IEBAIHZvaWQgUVdlYlBhZ2VQcml2YXRlOjpt
b3VzZVByZXNzRXZlbnQoVCogZXYpCiAKICAgICBib29sIGFjY2VwdGVkID0gZmFsc2U7CiAgICAg
YWRqdXN0UG9pbnRGb3JDbGlja2luZyhldik7Ci0gICAgUGxhdGZvcm1Nb3VzZUV2ZW50IG1ldihl
diwgMSk7CisgICAgUGxhdGZvcm1Nb3VzZUV2ZW50IG1ldiA9IGNvbnZlcnRNb3VzZUV2ZW50KGV2
LCAxKTsKICAgICAvLyBpZ25vcmUgdGhlIGV2ZW50IGlmIHdlIGNhbid0IG1hcCBRdCdzIG1vdXNl
IGJ1dHRvbnMgdG8gV2ViQ29yZTo6TW91c2VCdXR0b24KICAgICBpZiAobWV2LmJ1dHRvbigpICE9
IE5vQnV0dG9uKQogICAgICAgICBhY2NlcHRlZCA9IGZyYW1lLT5ldmVudEhhbmRsZXIoKS0+aGFu
ZGxlTW91c2VQcmVzc0V2ZW50KG1ldik7CkBAIC03MjYsNyArNzI3LDcgQEAgdm9pZCBRV2ViUGFn
ZVByaXZhdGU6Om1vdXNlRG91YmxlQ2xpY2tFdmVudChUICpldikKICAgICAgICAgcmV0dXJuOwog
CiAgICAgYm9vbCBhY2NlcHRlZCA9IGZhbHNlOwotICAgIFBsYXRmb3JtTW91c2VFdmVudCBtZXYo
ZXYsIDIpOworICAgIFBsYXRmb3JtTW91c2VFdmVudCBtZXYgPSBjb252ZXJ0TW91c2VFdmVudChl
diwgMik7CiAgICAgLy8gaWdub3JlIHRoZSBldmVudCBpZiB3ZSBjYW4ndCBtYXAgUXQncyBtb3Vz
ZSBidXR0b25zIHRvIFdlYkNvcmU6Ok1vdXNlQnV0dG9uCiAgICAgaWYgKG1ldi5idXR0b24oKSAh
PSBOb0J1dHRvbikKICAgICAgICAgYWNjZXB0ZWQgPSBmcmFtZS0+ZXZlbnRIYW5kbGVyKCktPmhh
bmRsZU1vdXNlUHJlc3NFdmVudChtZXYpOwpAQCAtNzQ0LDcgKzc0NSw3IEBAIHZvaWQgUVdlYlBh
Z2VQcml2YXRlOjptb3VzZVRyaXBsZUNsaWNrRXZlbnQoVCAqZXYpCiAgICAgICAgIHJldHVybjsK
IAogICAgIGJvb2wgYWNjZXB0ZWQgPSBmYWxzZTsKLSAgICBQbGF0Zm9ybU1vdXNlRXZlbnQgbWV2
KGV2LCAzKTsKKyAgICBQbGF0Zm9ybU1vdXNlRXZlbnQgbWV2ID0gY29udmVydE1vdXNlRXZlbnQo
ZXYsIDMpOwogICAgIC8vIGlnbm9yZSB0aGUgZXZlbnQgaWYgd2UgY2FuJ3QgbWFwIFF0J3MgbW91
c2UgYnV0dG9ucyB0byBXZWJDb3JlOjpNb3VzZUJ1dHRvbgogICAgIGlmIChtZXYuYnV0dG9uKCkg
IT0gTm9CdXR0b24pCiAgICAgICAgIGFjY2VwdGVkID0gZnJhbWUtPmV2ZW50SGFuZGxlcigpLT5o
YW5kbGVNb3VzZVByZXNzRXZlbnQobWV2KTsKQEAgLTc4Myw3ICs3ODQsNyBAQCB2b2lkIFFXZWJQ
YWdlUHJpdmF0ZTo6bW91c2VSZWxlYXNlRXZlbnQoVCAqZXYpCiAKICAgICBib29sIGFjY2VwdGVk
ID0gZmFsc2U7CiAgICAgYWRqdXN0UG9pbnRGb3JDbGlja2luZyhldik7Ci0gICAgUGxhdGZvcm1N
b3VzZUV2ZW50IG1ldihldiwgMCk7CisgICAgUGxhdGZvcm1Nb3VzZUV2ZW50IG1ldiA9IGNvbnZl
cnRNb3VzZUV2ZW50KGV2LCAwKTsKICAgICAvLyBpZ25vcmUgdGhlIGV2ZW50IGlmIHdlIGNhbid0
IG1hcCBRdCdzIG1vdXNlIGJ1dHRvbnMgdG8gV2ViQ29yZTo6TW91c2VCdXR0b24KICAgICBpZiAo
bWV2LmJ1dHRvbigpICE9IE5vQnV0dG9uKQogICAgICAgICBhY2NlcHRlZCA9IGZyYW1lLT5ldmVu
dEhhbmRsZXIoKS0+aGFuZGxlTW91c2VSZWxlYXNlRXZlbnQobWV2KTsKQEAgLTg1Myw3ICs4NTQs
NyBAQCB2b2lkIFFXZWJQYWdlUHJpdmF0ZTo6d2hlZWxFdmVudChUICpldikKICAgICBpZiAoIWZy
YW1lLT52aWV3KCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIFdlYkNvcmU6OlBsYXRmb3JtV2hl
ZWxFdmVudCBwZXYoZXYpOworICAgIFBsYXRmb3JtV2hlZWxFdmVudCBwZXYgPSBjb252ZXJ0V2hl
ZWxFdmVudChldik7CiAgICAgYm9vbCBhY2NlcHRlZCA9IGZyYW1lLT5ldmVudEhhbmRsZXIoKS0+
aGFuZGxlV2hlZWxFdmVudChwZXYpOwogICAgIGV2LT5zZXRBY2NlcHRlZChhY2NlcHRlZCk7CiB9
CkBAIC0zMjQwLDE0ICszMjQxLDE0IEBAIGJvb2wgUVdlYlBhZ2U6OnN3YWxsb3dDb250ZXh0TWVu
dUV2ZW50KFFDb250ZXh0TWVudUV2ZW50ICpldmVudCkKICAgICBpZiAoIVJlbmRlclRoZW1lUXQ6
OnVzZU1vYmlsZVRoZW1lKCkpIHsKICAgICAgICAgaWYgKFFXZWJGcmFtZSogd2ViRnJhbWUgPSBm
cmFtZUF0KGV2ZW50LT5wb3MoKSkpIHsKICAgICAgICAgICAgIEZyYW1lKiBmcmFtZSA9IFFXZWJG
cmFtZVByaXZhdGU6OmNvcmUod2ViRnJhbWUpOwotICAgICAgICAgICAgaWYgKFNjcm9sbGJhciog
c2Nyb2xsYmFyID0gZnJhbWUtPnZpZXcoKS0+c2Nyb2xsYmFyQXRQb2ludChQbGF0Zm9ybU1vdXNl
RXZlbnQoZXZlbnQsIDEpLnBvc2l0aW9uKCkpKQotICAgICAgICAgICAgICAgIHJldHVybiBzY3Jv
bGxiYXItPmNvbnRleHRNZW51KFBsYXRmb3JtTW91c2VFdmVudChldmVudCwgMSkpOworICAgICAg
ICAgICAgaWYgKFNjcm9sbGJhciogc2Nyb2xsYmFyID0gZnJhbWUtPnZpZXcoKS0+c2Nyb2xsYmFy
QXRQb2ludChjb252ZXJ0TW91c2VFdmVudChldmVudCwgMSkucG9zaXRpb24oKSkpCisgICAgICAg
ICAgICAgICAgcmV0dXJuIHNjcm9sbGJhci0+Y29udGV4dE1lbnUoY29udmVydE1vdXNlRXZlbnQo
ZXZlbnQsIDEpKTsKICAgICAgICAgfQogICAgIH0KICNlbmRpZgogCiAgICAgV2ViQ29yZTo6RnJh
bWUqIGZvY3VzZWRGcmFtZSA9IGQtPnBhZ2UtPmZvY3VzQ29udHJvbGxlcigpLT5mb2N1c2VkT3JN
YWluRnJhbWUoKTsKLSAgICBmb2N1c2VkRnJhbWUtPmV2ZW50SGFuZGxlcigpLT5zZW5kQ29udGV4
dE1lbnVFdmVudChQbGF0Zm9ybU1vdXNlRXZlbnQoZXZlbnQsIDEpKTsKKyAgICBmb2N1c2VkRnJh
bWUtPmV2ZW50SGFuZGxlcigpLT5zZW5kQ29udGV4dE1lbnVFdmVudChjb252ZXJ0TW91c2VFdmVu
dChldmVudCwgMSkpOwogICAgIENvbnRleHRNZW51ICptZW51ID0gZC0+cGFnZS0+Y29udGV4dE1l
bnVDb250cm9sbGVyKCktPmNvbnRleHRNZW51KCk7CiAgICAgLy8gSWYgdGhlIHdlYnNpdGUgZGVm
aW5lcyBpdHMgb3duIGhhbmRsZXIgdGhlbiBzZW5kQ29udGV4dE1lbnVFdmVudCB0YWtlcyBjYXJl
IG9mCiAgICAgLy8gY2FsbGluZy9zaG93aW5nIGl0IGFuZCB0aGUgY29udGV4dCBtZW51IHBvaW50
ZXIgd2lsbCBiZSB6ZXJvLiBUaGlzIGlzIHRoZSBjYXNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L3F0L1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50UXQuY3BwIGIvU291cmNlL1dl
YktpdC9xdC9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudFF0LmNwcAppbmRleCBhYjdl
OTVjYTZhNTkzMDYwNzVjOTkxNTczMjAxN2VkZjQ3NjQ1ZDY5Li44MzY0MjE5ZDZmYjU4ODRiMjJm
YjdmYzBmMTQ4ZmQ1NGQ1MThjOWNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNv
cmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50UXQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvcXQv
V2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRRdC5jcHAKQEAgLTczLDYgKzczLDcgQEAK
ICNpbmNsdWRlICJWOERPTVdpbmRvdy5oIgogI2VuZGlmCiAjaW5jbHVkZSAiVmlld3BvcnRBcmd1
bWVudHMuaCIKKyNpbmNsdWRlICJXZWJFdmVudENvbnZlcnNpb24uaCIKIAogI2luY2x1ZGUgInF3
ZWJmcmFtZS5oIgogI2luY2x1ZGUgInF3ZWJmcmFtZV9wLmgiCkBAIC02MDYsNyArNjA3LDcgQEAg
dm9pZCBGcmFtZUxvYWRlckNsaWVudFF0Ojpwb3N0UHJvZ3Jlc3NGaW5pc2hlZE5vdGlmaWNhdGlv
bigpCiAgICAgICAgICAgICBRUG9pbnQgbG9jYWxQb3MgPSB2aWV3LT5tYXBGcm9tR2xvYmFsKFFD
dXJzb3I6OnBvcygpKTsKICAgICAgICAgICAgIGlmICh2aWV3LT5yZWN0KCkuY29udGFpbnMobG9j
YWxQb3MpKSB7CiAgICAgICAgICAgICAgICAgUU1vdXNlRXZlbnQgZXZlbnQoUUV2ZW50OjpNb3Vz
ZU1vdmUsIGxvY2FsUG9zLCBRdDo6Tm9CdXR0b24sIFF0OjpOb0J1dHRvbiwgUXQ6Ok5vTW9kaWZp
ZXIpOwotICAgICAgICAgICAgICAgIG1fZnJhbWUtPmV2ZW50SGFuZGxlcigpLT5tb3VzZU1vdmVk
KFBsYXRmb3JtTW91c2VFdmVudCgmZXZlbnQsIDApKTsKKyAgICAgICAgICAgICAgICBtX2ZyYW1l
LT5ldmVudEhhbmRsZXIoKS0+bW91c2VNb3ZlZChjb252ZXJ0TW91c2VFdmVudCgmZXZlbnQsIDAp
KTsKICAgICAgICAgICAgIH0KICAgICAgICAgfQogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvV2ViRXZlbnRDb252ZXJzaW9uLmNwcCBiL1NvdXJjZS9X
ZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvV2ViRXZlbnRDb252ZXJzaW9uLmNwcApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li4zMjRkYWE5MmIyOGZjZmU3ZDlkZjZlODQ1OWQxMDJlNDdkZDA1OTNmCi0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9XZWJFdmVudENvbnZlcnNpb24u
Y3BwCkBAIC0wLDAgKzEsMjM3IEBACisvKgorICAgIENvcHlyaWdodCAoQykgMjAxMiBOb2tpYSBD
b3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykKKyAgICBDb3B5cmlnaHQgKEMp
IDIwMDYgWmFjayBSdXNpbiA8emFja0BrZGUub3JnPgorICAgIENvcHlyaWdodCAoQykgMjAxMSBS
ZXNlYXJjaCBJbiBNb3Rpb24gTGltaXRlZC4KKworICAgIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNv
ZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAgICBtb2RpZnkgaXQgdW5k
ZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICAgIExpY2Vu
c2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgor
ICAgIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0
ZXIgdmVyc2lvbi4KKworICAgIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9w
ZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsg
d2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgICAgTUVSQ0hBTlRBQklMSVRZ
IG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAgICBM
aWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKworICAgIFlv
dSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwg
UHVibGljIExpY2Vuc2UKKyAgICBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxl
IENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICAgIHRoZSBGcmVlIFNvZnR3YXJlIEZv
dW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgICAgQm9z
dG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5j
bHVkZSAiV2ViRXZlbnRDb252ZXJzaW9uLmgiCisKKyNpbmNsdWRlICJQbGF0Zm9ybU1vdXNlRXZl
bnQuaCIKKyNpbmNsdWRlICJQbGF0Zm9ybVdoZWVsRXZlbnQuaCIKKyNpbmNsdWRlIDxRQXBwbGlj
YXRpb24+CisjaW5jbHVkZSA8UUdyYXBoaWNzU2NlbmVNb3VzZUV2ZW50PgorI2luY2x1ZGUgPFFX
aGVlbEV2ZW50PgorI2luY2x1ZGUgPHd0Zi9DdXJyZW50VGltZS5oPgorCituYW1lc3BhY2UgV2Vi
Q29yZSB7CisKK3N0YXRpYyB2b2lkIG1vdXNlRXZlbnRNb2RpZmllcnNGcm9tUXRLZXlib2FyZE1v
ZGlmaWVycyhRdDo6S2V5Ym9hcmRNb2RpZmllcnMga2V5Ym9hcmRNb2RpZmllcnMsIHVuc2lnbmVk
JiBtb2RpZmllcnMpCit7CisgICAgbW9kaWZpZXJzID0gMDsKKyAgICBpZiAoa2V5Ym9hcmRNb2Rp
ZmllcnMgJiBRdDo6U2hpZnRNb2RpZmllcikKKyAgICAgICAgbW9kaWZpZXJzIHw9IFBsYXRmb3Jt
RXZlbnQ6OlNoaWZ0S2V5OworICAgIGlmIChrZXlib2FyZE1vZGlmaWVycyAmIFF0OjpDb250cm9s
TW9kaWZpZXIpCisgICAgICAgIG1vZGlmaWVycyB8PSBQbGF0Zm9ybUV2ZW50OjpDdHJsS2V5Owor
ICAgIGlmIChrZXlib2FyZE1vZGlmaWVycyAmIFF0OjpBbHRNb2RpZmllcikKKyAgICAgICAgbW9k
aWZpZXJzIHw9IFBsYXRmb3JtRXZlbnQ6OkFsdEtleTsKKyAgICBpZiAoa2V5Ym9hcmRNb2RpZmll
cnMgJiBRdDo6TWV0YU1vZGlmaWVyKQorICAgICAgICBtb2RpZmllcnMgfD0gUGxhdGZvcm1FdmVu
dDo6TWV0YUtleTsKK30KKworc3RhdGljIHZvaWQgbW91c2VFdmVudFR5cGVBbmRNb3VzZUJ1dHRv
bkZyb21RRXZlbnQoY29uc3QgUUV2ZW50KiBldmVudCwgUGxhdGZvcm1FdmVudDo6VHlwZSYgbW91
c2VFdmVudFR5cGUsIE1vdXNlQnV0dG9uJiBtb3VzZUJ1dHRvbikKK3sKKyAgICBlbnVtIHsgTW91
c2VFdmVudCwgR3JhcGhpY3NTY2VuZU1vdXNlRXZlbnQgfSBmcmFtZXdvcmtNb3VzZUV2ZW50VHlw
ZTsKKyAgICBzd2l0Y2ggKGV2ZW50LT50eXBlKCkpIHsKKyAgICBjYXNlIFFFdmVudDo6TW91c2VC
dXR0b25EYmxDbGljazoKKyAgICBjYXNlIFFFdmVudDo6TW91c2VCdXR0b25QcmVzczoKKyAgICAg
ICAgZnJhbWV3b3JrTW91c2VFdmVudFR5cGUgPSBNb3VzZUV2ZW50OworICAgICAgICBtb3VzZUV2
ZW50VHlwZSA9IFBsYXRmb3JtRXZlbnQ6Ok1vdXNlUHJlc3NlZDsKKyAgICAgICAgYnJlYWs7Cisg
ICAgY2FzZSBRRXZlbnQ6Ok1vdXNlQnV0dG9uUmVsZWFzZToKKyAgICAgICAgZnJhbWV3b3JrTW91
c2VFdmVudFR5cGUgPSBNb3VzZUV2ZW50OworICAgICAgICBtb3VzZUV2ZW50VHlwZSA9IFBsYXRm
b3JtRXZlbnQ6Ok1vdXNlUmVsZWFzZWQ7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUUV2ZW50
OjpNb3VzZU1vdmU6CisgICAgICAgIGZyYW1ld29ya01vdXNlRXZlbnRUeXBlID0gTW91c2VFdmVu
dDsKKyAgICAgICAgbW91c2VFdmVudFR5cGUgPSBQbGF0Zm9ybUV2ZW50OjpNb3VzZU1vdmVkOwor
ICAgICAgICBicmVhazsKKyAgICBjYXNlIFFFdmVudDo6R3JhcGhpY3NTY2VuZU1vdXNlRG91Ymxl
Q2xpY2s6CisgICAgY2FzZSBRRXZlbnQ6OkdyYXBoaWNzU2NlbmVNb3VzZVByZXNzOgorICAgICAg
ICBmcmFtZXdvcmtNb3VzZUV2ZW50VHlwZSA9IEdyYXBoaWNzU2NlbmVNb3VzZUV2ZW50OworICAg
ICAgICBtb3VzZUV2ZW50VHlwZSA9IFBsYXRmb3JtRXZlbnQ6Ok1vdXNlUHJlc3NlZDsKKyAgICAg
ICAgYnJlYWs7CisgICAgY2FzZSBRRXZlbnQ6OkdyYXBoaWNzU2NlbmVNb3VzZVJlbGVhc2U6Cisg
ICAgICAgIGZyYW1ld29ya01vdXNlRXZlbnRUeXBlID0gR3JhcGhpY3NTY2VuZU1vdXNlRXZlbnQ7
CisgICAgICAgIG1vdXNlRXZlbnRUeXBlID0gUGxhdGZvcm1FdmVudDo6TW91c2VSZWxlYXNlZDsK
KyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBRRXZlbnQ6OkdyYXBoaWNzU2NlbmVNb3VzZU1vdmU6
CisgICAgICAgIGZyYW1ld29ya01vdXNlRXZlbnRUeXBlID0gR3JhcGhpY3NTY2VuZU1vdXNlRXZl
bnQ7CisgICAgICAgIG1vdXNlRXZlbnRUeXBlID0gUGxhdGZvcm1FdmVudDo6TW91c2VNb3ZlZDsK
KyAgICAgICAgYnJlYWs7CisgICAgZGVmYXVsdDoKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVE
KCk7CisgICAgICAgIGZyYW1ld29ya01vdXNlRXZlbnRUeXBlID0gTW91c2VFdmVudDsKKyAgICAg
ICAgbW91c2VFdmVudFR5cGUgPSBQbGF0Zm9ybUV2ZW50OjpNb3VzZU1vdmVkOworICAgICAgICBi
cmVhazsKKyAgICB9CisKKyAgICBRdDo6TW91c2VCdXR0b25zIG1vdXNlQnV0dG9uczsKKyAgICBz
d2l0Y2ggKGZyYW1ld29ya01vdXNlRXZlbnRUeXBlKSB7CisgICAgY2FzZSBNb3VzZUV2ZW50OiB7
CisgICAgICAgIGNvbnN0IFFNb3VzZUV2ZW50KiBtb3VzZUV2ZW50ID0gc3RhdGljX2Nhc3Q8Y29u
c3QgUU1vdXNlRXZlbnQqPihldmVudCk7CisgICAgICAgIG1vdXNlQnV0dG9ucyA9IG1vdXNlRXZl
bnRUeXBlID09IFBsYXRmb3JtRXZlbnQ6Ok1vdXNlTW92ZWQgPyBtb3VzZUV2ZW50LT5idXR0b25z
KCkgOiBtb3VzZUV2ZW50LT5idXR0b24oKTsKKyAgICAgICAgYnJlYWs7CisgICAgfQorICAgIGNh
c2UgR3JhcGhpY3NTY2VuZU1vdXNlRXZlbnQ6IHsKKyAgICAgICAgY29uc3QgUUdyYXBoaWNzU2Nl
bmVNb3VzZUV2ZW50KiBtb3VzZUV2ZW50ID0gc3RhdGljX2Nhc3Q8Y29uc3QgUUdyYXBoaWNzU2Nl
bmVNb3VzZUV2ZW50Kj4oZXZlbnQpOworICAgICAgICBtb3VzZUJ1dHRvbnMgPSBtb3VzZUV2ZW50
VHlwZSA9PSBQbGF0Zm9ybUV2ZW50OjpNb3VzZU1vdmVkID8gbW91c2VFdmVudC0+YnV0dG9ucygp
IDogbW91c2VFdmVudC0+YnV0dG9uKCk7CisgICAgICAgIGJyZWFrOworICAgIH0KKyAgICB9CisK
KyAgICBpZiAobW91c2VCdXR0b25zICYgUXQ6OkxlZnRCdXR0b24pCisgICAgICAgIG1vdXNlQnV0
dG9uID0gTGVmdEJ1dHRvbjsKKyAgICBlbHNlIGlmIChtb3VzZUJ1dHRvbnMgJiBRdDo6UmlnaHRC
dXR0b24pCisgICAgICAgIG1vdXNlQnV0dG9uID0gUmlnaHRCdXR0b247CisgICAgZWxzZSBpZiAo
bW91c2VCdXR0b25zICYgUXQ6Ok1pZEJ1dHRvbikKKyAgICAgICAgbW91c2VCdXR0b24gPSBNaWRk
bGVCdXR0b247CisgICAgZWxzZQorICAgICAgICBtb3VzZUJ1dHRvbiA9IE5vQnV0dG9uOworfQor
CitjbGFzcyBXZWJLaXRQbGF0Zm9ybU1vdXNlRXZlbnQgOiBwdWJsaWMgUGxhdGZvcm1Nb3VzZUV2
ZW50IHsKK3B1YmxpYzoKKyAgICBXZWJLaXRQbGF0Zm9ybU1vdXNlRXZlbnQoUUdyYXBoaWNzU2Nl
bmVNb3VzZUV2ZW50KiwgaW50IGNsaWNrQ291bnQpOworICAgIFdlYktpdFBsYXRmb3JtTW91c2VF
dmVudChRSW5wdXRFdmVudCosIGludCBjbGlja0NvdW50KTsKK307CisKK1dlYktpdFBsYXRmb3Jt
TW91c2VFdmVudDo6V2ViS2l0UGxhdGZvcm1Nb3VzZUV2ZW50KFFHcmFwaGljc1NjZW5lTW91c2VF
dmVudCogZXZlbnQsIGludCBjbGlja0NvdW50KQoreworICAgIG1fdGltZXN0YW1wID0gV1RGOjpj
dXJyZW50VGltZSgpOworCisgICAgLy8gRklYTUU6IFdoeSBkb24ndCB3ZSBoYW5kbGUgYSBjb250
ZXh0IG1lbnUgZXZlbnQgaGVyZSBhcyB3ZSBkbyBpbiBQbGF0Zm9ybU1vdXNlRXZlbnQoUUlucHV0
RXZlbnQqLCBpbnQpPworICAgIC8vIFNlZSA8aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTYwNzI4Pi4KKyAgICBQbGF0Zm9ybUV2ZW50OjpUeXBlIHR5cGU7CisgICAgbW91
c2VFdmVudFR5cGVBbmRNb3VzZUJ1dHRvbkZyb21RRXZlbnQoZXZlbnQsIHR5cGUsIG1fYnV0dG9u
KTsKKworICAgIG1fdHlwZSA9IHR5cGU7CisgICAgbV9wb3NpdGlvbiA9IEludFBvaW50KGV2ZW50
LT5wb3MoKS50b1BvaW50KCkpOworICAgIG1fZ2xvYmFsUG9zaXRpb24gPSBJbnRQb2ludChldmVu
dC0+c2NyZWVuUG9zKCkpOworCisgICAgbV9jbGlja0NvdW50ID0gY2xpY2tDb3VudDsKKyAgICBt
b3VzZUV2ZW50TW9kaWZpZXJzRnJvbVF0S2V5Ym9hcmRNb2RpZmllcnMoZXZlbnQtPm1vZGlmaWVy
cygpLCBtX21vZGlmaWVycyk7Cit9CisKK1dlYktpdFBsYXRmb3JtTW91c2VFdmVudDo6V2ViS2l0
UGxhdGZvcm1Nb3VzZUV2ZW50KFFJbnB1dEV2ZW50KiBldmVudCwgaW50IGNsaWNrQ291bnQpCit7
CisgICAgbV90aW1lc3RhbXAgPSBXVEY6OmN1cnJlbnRUaW1lKCk7CisKKyAgICBib29sIGlzQ29u
dGV4dE1lbnVFdmVudCA9IGZhbHNlOworI2lmbmRlZiBRVF9OT19DT05URVhUTUVOVQorICAgIGlm
IChldmVudC0+dHlwZSgpID09IFFFdmVudDo6Q29udGV4dE1lbnUpIHsKKyAgICAgICAgaXNDb250
ZXh0TWVudUV2ZW50ID0gdHJ1ZTsKKyAgICAgICAgbV90eXBlID0gUGxhdGZvcm1FdmVudDo6TW91
c2VQcmVzc2VkOworICAgICAgICBRQ29udGV4dE1lbnVFdmVudCogY2UgPSBzdGF0aWNfY2FzdDxR
Q29udGV4dE1lbnVFdmVudCo+KGV2ZW50KTsKKyAgICAgICAgbV9wb3NpdGlvbiA9IEludFBvaW50
KGNlLT5wb3MoKSk7CisgICAgICAgIG1fZ2xvYmFsUG9zaXRpb24gPSBJbnRQb2ludChjZS0+Z2xv
YmFsUG9zKCkpOworICAgICAgICBtX2J1dHRvbiA9IFJpZ2h0QnV0dG9uOworICAgIH0KKyNlbmRp
ZgorICAgIGlmICghaXNDb250ZXh0TWVudUV2ZW50KSB7CisgICAgICAgIFBsYXRmb3JtRXZlbnQ6
OlR5cGUgdHlwZTsKKyAgICAgICAgbW91c2VFdmVudFR5cGVBbmRNb3VzZUJ1dHRvbkZyb21RRXZl
bnQoZXZlbnQsIHR5cGUsIG1fYnV0dG9uKTsKKyAgICAgICAgUU1vdXNlRXZlbnQqIG1vdXNlRXZl
bnQgPSBzdGF0aWNfY2FzdDxRTW91c2VFdmVudCo+KGV2ZW50KTsKKworICAgICAgICBtX3R5cGUg
PSB0eXBlOworICAgICAgICBtX3Bvc2l0aW9uID0gSW50UG9pbnQobW91c2VFdmVudC0+cG9zKCkp
OworICAgICAgICBtX2dsb2JhbFBvc2l0aW9uID0gSW50UG9pbnQobW91c2VFdmVudC0+Z2xvYmFs
UG9zKCkpOworICAgIH0KKworICAgIG1fY2xpY2tDb3VudCA9IGNsaWNrQ291bnQ7CisgICAgbW91
c2VFdmVudE1vZGlmaWVyc0Zyb21RdEtleWJvYXJkTW9kaWZpZXJzKGV2ZW50LT5tb2RpZmllcnMo
KSwgbV9tb2RpZmllcnMpOworfQorCitQbGF0Zm9ybU1vdXNlRXZlbnQgY29udmVydE1vdXNlRXZl
bnQoUUlucHV0RXZlbnQqIGV2ZW50LCBpbnQgY2xpY2tDb3VudCkKK3sKKyAgICByZXR1cm4gV2Vi
S2l0UGxhdGZvcm1Nb3VzZUV2ZW50KGV2ZW50LCBjbGlja0NvdW50KTsKK30KKworUGxhdGZvcm1N
b3VzZUV2ZW50IGNvbnZlcnRNb3VzZUV2ZW50KFFHcmFwaGljc1NjZW5lTW91c2VFdmVudCogZXZl
bnQsIGludCBjbGlja0NvdW50KQoreworICAgIHJldHVybiBXZWJLaXRQbGF0Zm9ybU1vdXNlRXZl
bnQoZXZlbnQsIGNsaWNrQ291bnQpOworfQorCitjbGFzcyBXZWJLaXRQbGF0Zm9ybVdoZWVsRXZl
bnQgOiBwdWJsaWMgUGxhdGZvcm1XaGVlbEV2ZW50IHsKK3B1YmxpYzoKKyAgICBXZWJLaXRQbGF0
Zm9ybVdoZWVsRXZlbnQoUUdyYXBoaWNzU2NlbmVXaGVlbEV2ZW50Kik7CisgICAgV2ViS2l0UGxh
dGZvcm1XaGVlbEV2ZW50KFFXaGVlbEV2ZW50Kik7CisKK3ByaXZhdGU6CisgICAgdm9pZCBhcHBs
eURlbHRhKGludCBkZWx0YSwgUXQ6Ok9yaWVudGF0aW9uKTsKK307CisKK3ZvaWQgV2ViS2l0UGxh
dGZvcm1XaGVlbEV2ZW50OjphcHBseURlbHRhKGludCBkZWx0YSwgUXQ6Ok9yaWVudGF0aW9uIG9y
aWVudGF0aW9uKQoreworICAgIC8vIEEgZGVsdGEgdGhhdCBpcyBub3QgbW9kIDEyMCBpbmRpY2F0
ZXMgYSBkZXZpY2UgdGhhdCBpcyBzZW5kaW5nCisgICAgLy8gZmluZS1yZXNvbHV0aW9uIHNjcm9s
bCBldmVudHMsIHNvIHVzZSB0aGUgZGVsdGEgYXMgbnVtYmVyIG9mIHdoZWVsIHRpY2tzCisgICAg
Ly8gYW5kIG51bWJlciBvZiBwaXhlbHMgdG8gc2Nyb2xsLlNlZSBhbHNvIHdlYmtpdC5vcmcvYi8y
OTYwMQorICAgIGJvb2wgZnVsbFRpY2sgPSAhKGRlbHRhICUgMTIwKTsKKworICAgIGlmIChvcmll
bnRhdGlvbiA9PSBRdDo6SG9yaXpvbnRhbCkgeworICAgICAgICBtX2RlbHRhWCA9IChmdWxsVGlj
aykgPyBkZWx0YSAvIDEyMC4wZiA6IGRlbHRhOworICAgICAgICBtX2RlbHRhWSA9IDA7CisgICAg
fSBlbHNlIHsKKyAgICAgICAgbV9kZWx0YVggPSAwOworICAgICAgICBtX2RlbHRhWSA9IChmdWxs
VGljaykgPyBkZWx0YSAvIDEyMC4wZiA6IGRlbHRhOworICAgIH0KKworICAgIG1fd2hlZWxUaWNr
c1ggPSBtX2RlbHRhWDsKKyAgICBtX3doZWVsVGlja3NZID0gbV9kZWx0YVk7CisKKyAgICAvLyBV
c2UgdGhlIHNhbWUgc2luZ2xlIHNjcm9sbCBzdGVwIGFzIFFUZXh0RWRpdAorICAgIC8vIChpbiBR
VGV4dEVkaXRQcml2YXRlOjppbml0IFtoLHZdYmFyLT5zZXRTaW5nbGVTdGVwKQorICAgIHN0YXRp
YyBjb25zdCBmbG9hdCBjRGVmYXVsdFF0U2Nyb2xsU3RlcCA9IDIwLmY7CisgICAgbV9kZWx0YVgg
Kj0gKGZ1bGxUaWNrKSA/IFFBcHBsaWNhdGlvbjo6d2hlZWxTY3JvbGxMaW5lcygpICogY0RlZmF1
bHRRdFNjcm9sbFN0ZXAgOiAxOworICAgIG1fZGVsdGFZICo9IChmdWxsVGljaykgPyBRQXBwbGlj
YXRpb246OndoZWVsU2Nyb2xsTGluZXMoKSAqIGNEZWZhdWx0UXRTY3JvbGxTdGVwIDogMTsKK30K
KworV2ViS2l0UGxhdGZvcm1XaGVlbEV2ZW50OjpXZWJLaXRQbGF0Zm9ybVdoZWVsRXZlbnQoUUdy
YXBoaWNzU2NlbmVXaGVlbEV2ZW50KiBlKQoreworICAgIG1fdGltZXN0YW1wID0gV1RGOjpjdXJy
ZW50VGltZSgpOworICAgIG1vdXNlRXZlbnRNb2RpZmllcnNGcm9tUXRLZXlib2FyZE1vZGlmaWVy
cyhlLT5tb2RpZmllcnMoKSwgJm1fbW9kaWZpZXJzKTsKKyAgICBtX3Bvc2l0aW9uID0gZS0+cG9z
KCkudG9Qb2ludCgpOworICAgIG1fZ2xvYmFsUG9zaXRpb24gPSBlLT5zY3JlZW5Qb3MoKTsKKyAg
ICBtX2dyYW51bGFyaXR5ID0gU2Nyb2xsQnlQaXhlbFdoZWVsRXZlbnQ7CisgICAgbV9kaXJlY3Rp
b25JbnZlcnRlZEZyb21EZXZpY2UgPSBmYWxzZTsKKyAgICBhcHBseURlbHRhKGUtPmRlbHRhKCks
IGUtPm9yaWVudGF0aW9uKCkpOworfQorCitXZWJLaXRQbGF0Zm9ybVdoZWVsRXZlbnQ6OldlYktp
dFBsYXRmb3JtV2hlZWxFdmVudChRV2hlZWxFdmVudCogZSkKK3sKKyAgICBtX3RpbWVzdGFtcCA9
IFdURjo6Y3VycmVudFRpbWUoKTsKKyAgICBtb3VzZUV2ZW50TW9kaWZpZXJzRnJvbVF0S2V5Ym9h
cmRNb2RpZmllcnMoZS0+bW9kaWZpZXJzKCksICZtX21vZGlmaWVycyk7CisgICAgbV9wb3NpdGlv
biA9IGUtPnBvcygpOworICAgIG1fZ2xvYmFsUG9zaXRpb24gPSBlLT5nbG9iYWxQb3MoKTsKKyAg
ICBtX2dyYW51bGFyaXR5ID0gU2Nyb2xsQnlQaXhlbFdoZWVsRXZlbnQ7CisgICAgbV9kaXJlY3Rp
b25JbnZlcnRlZEZyb21EZXZpY2UgPSBmYWxzZTsKKyAgICBhcHBseURlbHRhKGUtPmRlbHRhKCks
IGUtPm9yaWVudGF0aW9uKCkpOworfQorCisKK1BsYXRmb3JtV2hlZWxFdmVudCBjb252ZXJ0V2hl
ZWxFdmVudChRV2hlZWxFdmVudCogZXZlbnQpCit7CisgICAgcmV0dXJuIFdlYktpdFBsYXRmb3Jt
V2hlZWxFdmVudChldmVudCk7Cit9CisKK1BsYXRmb3JtV2hlZWxFdmVudCBjb252ZXJ0V2hlZWxF
dmVudChRR3JhcGhpY3NTY2VuZVdoZWVsRXZlbnQqIGV2ZW50KQoreworICAgIHJldHVybiBXZWJL
aXRQbGF0Zm9ybVdoZWVsRXZlbnQoZXZlbnQpOworfQorCit9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L1dlYkV2ZW50Q29udmVyc2lvbi5oIGIvU291cmNlL1dl
YktpdC9xdC9XZWJDb3JlU3VwcG9ydC9XZWJFdmVudENvbnZlcnNpb24uaApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4y
NWQwMmRmMjIxYzY4NTEyMmUyMTkyNjViNjQyNjIxNDNjNDRlY2UwCi0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9XZWJFdmVudENvbnZlcnNpb24uaApA
QCAtMCwwICsxLDQxIEBACisvKgorICAgIENvcHlyaWdodCAoQykgMjAxMiBOb2tpYSBDb3Jwb3Jh
dGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykKKyAgICBDb3B5cmlnaHQgKEMpIDIwMDYg
WmFjayBSdXNpbiA8emFja0BrZGUub3JnPgorICAgIENvcHlyaWdodCAoQykgMjAxMSBSZXNlYXJj
aCBJbiBNb3Rpb24gTGltaXRlZC4KKworICAgIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJl
OyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAgICBtb2RpZnkgaXQgdW5kZXIgdGhl
IHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICAgIExpY2Vuc2UgYXMg
cHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICAgIHZl
cnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVy
c2lvbi4KKworICAgIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0
IGl0IHdpbGwgYmUgdXNlZnVsLAorICAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91
dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAgICBMaWJyYXJ5
IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKworICAgIFlvdSBzaG91
bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGlj
IExpY2Vuc2UKKyAgICBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJ
TkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICAgIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRp
b24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgICAgQm9zdG9uLCBN
QSAwMjExMC0xMzAxLCBVU0EuCisqLworCisjaW5jbHVkZSA8cWdsb2JhbC5oPgorCitRVF9CRUdJ
Tl9OQU1FU1BBQ0UKK2NsYXNzIFFJbnB1dEV2ZW50OworY2xhc3MgUUdyYXBoaWNzU2NlbmVNb3Vz
ZUV2ZW50OworY2xhc3MgUVdoZWVsRXZlbnQ7CitjbGFzcyBRR3JhcGhpY3NTY2VuZVdoZWVsRXZl
bnQ7CitRVF9FTkRfTkFNRVNQQUNFCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgUGxh
dGZvcm1Nb3VzZUV2ZW50OworY2xhc3MgUGxhdGZvcm1XaGVlbEV2ZW50OworCitQbGF0Zm9ybU1v
dXNlRXZlbnQgY29udmVydE1vdXNlRXZlbnQoUUlucHV0RXZlbnQqLCBpbnQgY2xpY2tDb3VudCk7
CitQbGF0Zm9ybU1vdXNlRXZlbnQgY29udmVydE1vdXNlRXZlbnQoUUdyYXBoaWNzU2NlbmVNb3Vz
ZUV2ZW50KiwgaW50IGNsaWNrQ291bnQpOworUGxhdGZvcm1XaGVlbEV2ZW50IGNvbnZlcnRXaGVl
bEV2ZW50KFFXaGVlbEV2ZW50Kik7CitQbGF0Zm9ybVdoZWVsRXZlbnQgY29udmVydFdoZWVsRXZl
bnQoUUdyYXBoaWNzU2NlbmVXaGVlbEV2ZW50Kik7CisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9h
cGkucHJpIGIvU291cmNlL2FwaS5wcmkKaW5kZXggMmRjYTNmNDY4MjU3MmZhOTI3ZTYzOGY3ODUy
MWEyNzlkZmRiNjQ1OS4uZGIxYzdlYjVjNzc1NTI1ZDAzOGZjNWNlMGEwYmUzOTMwYzE1ZmIzMCAx
MDA2NDQKLS0tIGEvU291cmNlL2FwaS5wcmkKKysrIGIvU291cmNlL2FwaS5wcmkKQEAgLTYzLDcg
KzYzLDggQEAgU09VUkNFUyArPSBcCiAgICAgJCRQV0QvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0
L1F0UGxhdGZvcm1QbHVnaW4uY3BwIFwKICAgICAkJFBXRC9XZWJLaXQvcXQvV2ViQ29yZVN1cHBv
cnQvU2VhcmNoUG9wdXBNZW51UXQuY3BwIFwKICAgICAkJFBXRC9XZWJLaXQvcXQvV2ViQ29yZVN1
cHBvcnQvVGV4dENoZWNrZXJDbGllbnRRdC5jcHAgXAotICAgICQkUFdEL1dlYktpdC9xdC9XZWJD
b3JlU3VwcG9ydC9QbGF0Zm9ybVN0cmF0ZWdpZXNRdC5jcHAKKyAgICAkJFBXRC9XZWJLaXQvcXQv
V2ViQ29yZVN1cHBvcnQvUGxhdGZvcm1TdHJhdGVnaWVzUXQuY3BwIFwKKyAgICAkJFBXRC9XZWJL
aXQvcXQvV2ViQ29yZVN1cHBvcnQvV2ViRXZlbnRDb252ZXJzaW9uLmNwcAogCiBIRUFERVJTICs9
IFwKICAgICAkJFBXRC9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvSW5pdFdlYkNvcmVRdC5oIFwK
QEAgLTc5LDcgKzgwLDggQEAgSEVBREVSUyArPSBcCiAgICAgJCRQV0QvV2ViS2l0L3F0L1dlYkNv
cmVTdXBwb3J0L1BvcHVwTWVudVF0LmggXAogICAgICQkUFdEL1dlYktpdC9xdC9XZWJDb3JlU3Vw
cG9ydC9TZWFyY2hQb3B1cE1lbnVRdC5oIFwKICAgICAkJFBXRC9XZWJLaXQvcXQvV2ViQ29yZVN1
cHBvcnQvVGV4dENoZWNrZXJDbGllbnRRdC5oIFwKLSAgICAkJFBXRC9XZWJLaXQvcXQvV2ViQ29y
ZVN1cHBvcnQvUGxhdGZvcm1TdHJhdGVnaWVzUXQuaAorICAgICQkUFdEL1dlYktpdC9xdC9XZWJD
b3JlU3VwcG9ydC9QbGF0Zm9ybVN0cmF0ZWdpZXNRdC5oIFwKKyAgICAkJFBXRC9XZWJLaXQvcXQv
V2ViQ29yZVN1cHBvcnQvV2ViRXZlbnRDb252ZXJzaW9uLmgKIAogSU5DTFVERVBBVEggKz0gXAog
ICAgICQkUFdEL1dlYktpdC9xdC9BcGkgXApkaWZmIC0tZ2l0IGEvQ2hhbmdlTG9nIGIvQ2hhbmdl
TG9nCmluZGV4IGY1ZTY5NWE5ZmE5YTc1M2ExNzVlOTM2MzBjZGI1YjJkNzQyY2FkNmIuLjBmOTE3
ZDA4YTVmYjQ3ZDYzM2E5Mzk2OTJlMDEwZDhmMDk1NDEwMTUgMTAwNjQ0Ci0tLSBhL0NoYW5nZUxv
ZworKysgYi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMiBAQAorMjAxMi0wMi0xNiAgU2ltb24gSGF1
c21hbm4gIDxzaW1vbi5oYXVzbWFubkBub2tpYS5jb20+CisKKyAgICAgICAgW1F0XSBNb3ZlIGV2
ZW50IGNvbnZlcnNpb24gZnVuY3Rpb25zIGZyb20gV2ViQ29yZSB0byBXZWJLaXQKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc4Nzg4CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBTb3VyY2UvYXBpLnByaTog
QWRkIG5ldyBmaWxlcyB0byB0aGUgYnVpbGQuCisKIDIwMTItMDItMTQgIFJhcGhhZWwgS3VibyBk
YSBDb3N0YSAgPGt1Ym9AcHJvZnVzaW9uLm1vYmk+CiAKICAgICAgICAgW0NNYWtlXSBSZW1vdmUg
dW51c2VkIFBrZ0NvbmZpZyBtb2R1bGUgaW1wb3J0IGZyb20gRmluZENGTGl0ZS5jbWFrZS4K
</data>
<flag name="review"
          id="129428"
          type_id="1"
          status="+"
          setter="kenneth"
    />
          </attachment>
      

    </bug>

</bugzilla>