<?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>89749</bug_id>
          
          <creation_ts>2012-06-22 01:43:35 -0700</creation_ts>
          <short_desc>[EFL][WK2] Add API to inspect a Web Intent</short_desc>
          <delta_ts>2012-07-01 19:13:06 -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>WebKit2</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>89275</dependson>
          <blocked>90064</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>gyuyoung.kim</cc>
    
    <cc>kenneth</cc>
    
    <cc>rakuco</cc>
    
    <cc>ryuan.choi</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>655303</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2012-06-22 01:43:35 -0700</bug_when>
    <thetext>The WK2 C API to inspect a Web Intent recently landed in Bug 89275. We now need to provide an Ewk wrapper in WK2 EFL port.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>655318</commentid>
    <comment_count>1</comment_count>
      <attachid>148982</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2012-06-22 02:20:52 -0700</bug_when>
    <thetext>Created attachment 148982
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>657540</commentid>
    <comment_count>2</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2012-06-26 05:47:37 -0700</bug_when>
    <thetext>Informal review anyone?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>658271</commentid>
    <comment_count>3</comment_count>
      <attachid>148982</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2012-06-26 19:40:52 -0700</bug_when>
    <thetext>Comment on attachment 148982
Patch

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

&gt; Source/WebKit2/UIProcess/API/efl/ewk_intent.h:25
&gt; +

It is good to write file description.

&gt; Source/WebKit2/UIProcess/API/efl/ewk_intent.h:115
&gt; +EAPI char *ewk_intent_extra_get(const Ewk_Intent *intent, const char *key);

I wonder why this APIs doesn&apos;t use const char* as other APIs. Is there any reason ?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>658369</commentid>
    <comment_count>4</comment_count>
      <attachid>148982</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2012-06-26 23:14:12 -0700</bug_when>
    <thetext>Comment on attachment 148982
Patch

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

&gt;&gt; Source/WebKit2/UIProcess/API/efl/ewk_intent.h:115
&gt;&gt; +EAPI char *ewk_intent_extra_get(const Ewk_Intent *intent, const char *key);
&gt; 
&gt; I wonder why this APIs doesn&apos;t use const char* as other APIs. Is there any reason ?

This is because using stringsharing is not easy in this case, since we have a hash table.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>658375</commentid>
    <comment_count>5</comment_count>
      <attachid>149688</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2012-06-26 23:19:13 -0700</bug_when>
    <thetext>Created attachment 149688
Patch

Add missing file description for ewk_intent.h.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>659035</commentid>
    <comment_count>6</comment_count>
      <attachid>149688</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2012-06-27 18:01:06 -0700</bug_when>
    <thetext>Comment on attachment 149688
Patch

Looks good to me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>659300</commentid>
    <comment_count>7</comment_count>
      <attachid>149896</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2012-06-28 00:36:21 -0700</bug_when>
    <thetext>Created attachment 149896
Patch

- No longer ignores intent requests coming from other frames than the main one.
- Fix signal name. It is now &quot;intent,request,new&quot; instead of &quot;title,changed&quot; (bad copy / paste).
- Rename ewk_view_intent_new() to ewk_view_intent_request_new() for clarity.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>660260</commentid>
    <comment_count>8</comment_count>
      <attachid>150110</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2012-06-29 01:07:26 -0700</bug_when>
    <thetext>Created attachment 150110
Patch

Rebase on master.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>660292</commentid>
    <comment_count>9</comment_count>
      <attachid>150110</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2012-06-29 02:08:26 -0700</bug_when>
    <thetext>Comment on attachment 150110
Patch

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

&gt; Source/WebKit2/UIProcess/API/efl/ewk_intent.cpp:46
&gt; +struct _Ewk_Intent {
&gt; +    unsigned int __ref; /**&lt; the reference count of the object */

ieck manual ref counting :-(

&gt; Source/WebKit2/UIProcess/API/efl/ewk_intent.cpp:149
&gt; +char* ewk_intent_extra_get(const Ewk_Intent* intent, const char* key)

extra what? :-) additional_metadata ? Or is this part of the spec?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>660312</commentid>
    <comment_count>10</comment_count>
      <attachid>150110</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2012-06-29 02:28:46 -0700</bug_when>
    <thetext>Comment on attachment 150110
Patch

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

&gt;&gt; Source/WebKit2/UIProcess/API/efl/ewk_intent.cpp:46
&gt;&gt; +    unsigned int __ref; /**&lt; the reference count of the object */
&gt; 
&gt; ieck manual ref counting :-(

I copied the style used in other Ewk classes.

&gt;&gt; Source/WebKit2/UIProcess/API/efl/ewk_intent.cpp:149
&gt;&gt; +char* ewk_intent_extra_get(const Ewk_Intent* intent, const char* key)
&gt; 
&gt; extra what? :-) additional_metadata ? Or is this part of the spec?

It is part of the spec, yes: http://www.w3.org/TR/web-intents/#methods</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>661225</commentid>
    <comment_count>11</comment_count>
      <attachid>150110</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-07-01 19:12:59 -0700</bug_when>
    <thetext>Comment on attachment 150110
Patch

Clearing flags on attachment: 150110

Committed r121649: &lt;http://trac.webkit.org/changeset/121649&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>661226</commentid>
    <comment_count>12</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-07-01 19:13:06 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>148982</attachid>
            <date>2012-06-22 02:20:52 -0700</date>
            <delta_ts>2012-06-26 23:19:13 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>89749_wk2_intent_efl.patch</filename>
            <type>text/plain</type>
            <size>19994</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwppbmRleCAyNTU2YTI5Li5hZDYzZjk3NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM2
IEBACisyMDEyLTA2LTIyICBDaHJpc3RvcGhlIER1bWV6ICA8Y2hyaXN0b3BoZS5kdW1lekBpbnRl
bC5jb20+CisKKyAgICAgICAgW0VGTF1bV0syXSBBZGQgQVBJIHRvIGluc3BlY3QgYSBXZWIgSW50
ZW50CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04OTc0
OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBF
RkwgQVBJIHRvIGluc3BlY3QgYSBXZWIgSW50ZW50IGFuZCBlbWl0IGEgc2lnbmFsCisgICAgICAg
IG9uIHRoZSB2aWV3IHdoZW4gYSBuZXcgaW50ZW50IHJlcXVlc3QgaXMgbWFkZS4KKworICAgICAg
ICAqIFBsYXRmb3JtRWZsLmNtYWtlOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZWZsL0VXZWJL
aXQyLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2ludGVudC5jcHA6IEFkZGVk
LgorICAgICAgICAoX0V3a19JbnRlbnQpOgorICAgICAgICAoZXdrX2ludGVudF9yZWYpOgorICAg
ICAgICAoZXdrX2ludGVudF91bnJlZik6CisgICAgICAgIChld2tfaW50ZW50X2FjdGlvbl9nZXQp
OgorICAgICAgICAoZXdrX2ludGVudF90eXBlX2dldCk6CisgICAgICAgIChld2tfaW50ZW50X3Nl
cnZpY2VfZ2V0KToKKyAgICAgICAgKGV3a19pbnRlbnRfc3VnZ2VzdGlvbnNfZ2V0KToKKyAgICAg
ICAgKGV3a19pbnRlbnRfZXh0cmFfZ2V0KToKKyAgICAgICAgKGV3a19pbnRlbnRfZXh0cmFfbmFt
ZXNfZ2V0KToKKyAgICAgICAgKGV3a19pbnRlbnRfbmV3KToKKyAgICAgICAgKiBVSVByb2Nlc3Mv
QVBJL2VmbC9ld2tfaW50ZW50Lmg6IEFkZGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZWZs
L2V3a19pbnRlbnRfcHJpdmF0ZS5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL2VmbC9ld2tfdmlld19sb2FkZXJfY2xpZW50LmNwcC4KKyAgICAgICAgKiBVSVByb2Nl
c3MvQVBJL2VmbC9ld2tfdmlldy5jcHA6CisgICAgICAgIChld2tfdmlld19pbnRlbnRfbmV3KToK
KyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2VmbC9ld2tfdmlldy5oOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9BUEkvZWZsL2V3a192aWV3X2xvYWRlcl9jbGllbnQuY3BwOgorICAgICAgICAoZGlkUmVj
ZWl2ZUludGVudEZvckZyYW1lKToKKyAgICAgICAgKGV3a192aWV3X2xvYWRlcl9jbGllbnRfYXR0
YWNoKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2VmbC9ld2tfdmlld19wcml2YXRlLmg6CisK
IDIwMTItMDYtMjEgIENocmlzdG9waGUgRHVtZXogIDxjaHJpc3RvcGhlLmR1bWV6QGludGVsLmNv
bT4KIAogICAgICAgICBbV0syXSBBZGQgQyBBUEkgdG8gaW5zcGVjdCBhIFdlYiBJbnRlbnQKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtRWZsLmNtYWtlIGIvU291cmNlL1dlYktp
dDIvUGxhdGZvcm1FZmwuY21ha2UKaW5kZXggNWY2ZTA5ZS4uOWMxODgxNCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvUGxhdGZvcm1FZmwuY21ha2UKKysrIGIvU291cmNlL1dlYktpdDIvUGxh
dGZvcm1FZmwuY21ha2UKQEAgLTMyLDYgKzMyLDcgQEAgTElTVChBUFBFTkQgV2ViS2l0Ml9TT1VS
Q0VTCiAKICAgICBVSVByb2Nlc3MvQVBJL2VmbC9QYWdlQ2xpZW50SW1wbC5jcHAKICAgICBVSVBy
b2Nlc3MvQVBJL2VmbC9ld2tfY29udGV4dC5jcHAKKyAgICBVSVByb2Nlc3MvQVBJL2VmbC9ld2tf
aW50ZW50LmNwcAogICAgIFVJUHJvY2Vzcy9BUEkvZWZsL2V3a192aWV3LmNwcAogICAgIFVJUHJv
Y2Vzcy9BUEkvZWZsL2V3a192aWV3X2xvYWRlcl9jbGllbnQuY3BwCiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL0VXZWJLaXQyLmggYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL2VmbC9FV2ViS2l0Mi5oCmluZGV4IGUxNDNiNzguLjUxZGZjMGIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL0VXZWJLaXQyLmgKKysr
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvRVdlYktpdDIuaApAQCAtMjgsNiAr
MjgsNyBAQAogI2RlZmluZSBFV2ViS2l0Ml9oCiAKICNpbmNsdWRlICJld2tfY29udGV4dC5oIgor
I2luY2x1ZGUgImV3a19pbnRlbnQuaCIKICNpbmNsdWRlICJld2tfdmlldy5oIgogCiAjZW5kaWYg
Ly8gRVdlYktpdDJfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9l
ZmwvZXdrX2ludGVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tf
aW50ZW50LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mOTQ4NjNlCi0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2lu
dGVudC5jcHAKQEAgLTAsMCArMSwxOTQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgSW50
ZWwgQ29ycG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRl
ICJjb25maWcuaCIKKyNpbmNsdWRlICJld2tfaW50ZW50LmgiCisKKyNpbmNsdWRlICJXS0FQSUNh
c3QuaCIKKyNpbmNsdWRlICJXS0FycmF5LmgiCisjaW5jbHVkZSAiV0tEaWN0aW9uYXJ5LmgiCisj
aW5jbHVkZSAiV0tJbnRlbnREYXRhLmgiCisjaW5jbHVkZSAiV0tSZXRhaW5QdHIuaCIKKyNpbmNs
dWRlICJXS1N0cmluZy5oIgorI2luY2x1ZGUgIldLVVJMLmgiCisjaW5jbHVkZSAiZXdrX2ludGVu
dF9wcml2YXRlLmgiCisjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgorCit1c2luZyBuYW1l
c3BhY2UgV2ViS2l0OworCisvKioKKyAqIFxzdHJ1Y3QgIF9Fd2tfSW50ZW50CisgKiBAYnJpZWYg
ICBDb250YWlucyB0aGUgaW50ZW50IGRhdGEuCisgKi8KK3N0cnVjdCBfRXdrX0ludGVudCB7Cisg
ICAgdW5zaWduZWQgaW50IF9fcmVmOyAvKio8IHRoZSByZWZlcmVuY2UgY291bnQgb2YgdGhlIG9i
amVjdCAqLworI2lmIEVOQUJMRShXRUJfSU5URU5UUykKKyAgICBXS1JldGFpblB0cjxXS0ludGVu
dERhdGFSZWY+IHdrSW50ZW50OworI2VuZGlmCisgICAgY29uc3QgY2hhciogYWN0aW9uOworICAg
IGNvbnN0IGNoYXIqIHR5cGU7CisgICAgY29uc3QgY2hhciogc2VydmljZTsKK307CisKKyNkZWZp
bmUgRVdLX0lOVEVOVF9XS19HRVRfT1JfUkVUVVJOKGludGVudCwgd2tJbnRlbnRfLCAuLi4pICAg
IFwKKyAgICBpZiAoIShpbnRlbnQpKSB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIFwKKyAgICAgICAgRUlOQV9MT0dfQ1JJVCgiaW50ZW50IGlzIE5VTEwuIik7ICAg
ICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgcmV0dXJuIF9fVkFfQVJHU19fOyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICB9ICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICBpZiAoIShpbnRlbnQp
LT53a0ludGVudCkgeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAg
RUlOQV9MT0dfQ1JJVCgiaW50ZW50LT53a0ludGVudCBpcyBOVUxMLiIpOyAgICAgICAgICAgIFwK
KyAgICAgICAgcmV0dXJuIF9fVkFfQVJHU19fOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIFwKKyAgICB9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIFwKKyAgICBXS0ludGVudERhdGFSZWYgd2tJbnRlbnRfID0gKGludGVu
dCktPndrSW50ZW50LmdldCgpCisKK3ZvaWQgZXdrX2ludGVudF9yZWYoRXdrX0ludGVudCogaW50
ZW50KQoreworI2lmIEVOQUJMRShXRUJfSU5URU5UUykKKyAgICBFSU5BX1NBRkVUWV9PTl9OVUxM
X1JFVFVSTihpbnRlbnQpOworICAgICsraW50ZW50LT5fX3JlZjsKKyNlbmRpZgorfQorCit2b2lk
IGV3a19pbnRlbnRfdW5yZWYoRXdrX0ludGVudCogaW50ZW50KQoreworI2lmIEVOQUJMRShXRUJf
SU5URU5UUykKKyAgICBFSU5BX1NBRkVUWV9PTl9OVUxMX1JFVFVSTihpbnRlbnQpOworCisgICAg
aWYgKC0taW50ZW50LT5fX3JlZikKKyAgICAgICAgcmV0dXJuOworCisgICAgZWluYV9zdHJpbmdz
aGFyZV9kZWwoaW50ZW50LT5hY3Rpb24pOworICAgIGVpbmFfc3RyaW5nc2hhcmVfZGVsKGludGVu
dC0+dHlwZSk7CisgICAgZWluYV9zdHJpbmdzaGFyZV9kZWwoaW50ZW50LT5zZXJ2aWNlKTsKKyAg
ICBkZWxldGUgaW50ZW50OworI2VuZGlmCit9CisKK2NvbnN0IGNoYXIqIGV3a19pbnRlbnRfYWN0
aW9uX2dldChjb25zdCBFd2tfSW50ZW50KiBpbnRlbnQpCit7CisjaWYgRU5BQkxFKFdFQl9JTlRF
TlRTKQorICAgIEVXS19JTlRFTlRfV0tfR0VUX09SX1JFVFVSTihpbnRlbnQsIHdrSW50ZW50LCAw
KTsKKworICAgIFdLUmV0YWluUHRyPFdLU3RyaW5nUmVmPiB3a0FjdGlvbihBZG9wdFdLLCBXS0lu
dGVudERhdGFDb3B5QWN0aW9uKHdrSW50ZW50KSk7CisgICAgRXdrX0ludGVudCogZXdrSW50ZW50
ID0gY29uc3RfY2FzdDxFd2tfSW50ZW50Kj4oaW50ZW50KTsKKyAgICBlaW5hX3N0cmluZ3NoYXJl
X3JlcGxhY2UoJmV3a0ludGVudC0+YWN0aW9uLCB0b0ltcGwod2tBY3Rpb24uZ2V0KCkpLT5zdHJp
bmcoKS51dGY4KCkuZGF0YSgpKTsKKyAgICByZXR1cm4gaW50ZW50LT5hY3Rpb247CisjZWxzZQor
ICAgIHJldHVybiAwOworI2VuZGlmCit9CisKK2NvbnN0IGNoYXIqIGV3a19pbnRlbnRfdHlwZV9n
ZXQoY29uc3QgRXdrX0ludGVudCogaW50ZW50KQoreworI2lmIEVOQUJMRShXRUJfSU5URU5UUykK
KyAgICBFV0tfSU5URU5UX1dLX0dFVF9PUl9SRVRVUk4oaW50ZW50LCB3a0ludGVudCwgMCk7CisK
KyAgICBXS1JldGFpblB0cjxXS1N0cmluZ1JlZj4gd2tUeXBlKEFkb3B0V0ssIFdLSW50ZW50RGF0
YUNvcHlUeXBlKHdrSW50ZW50KSk7CisgICAgRXdrX0ludGVudCogZXdrSW50ZW50ID0gY29uc3Rf
Y2FzdDxFd2tfSW50ZW50Kj4oaW50ZW50KTsKKyAgICBlaW5hX3N0cmluZ3NoYXJlX3JlcGxhY2Uo
JmV3a0ludGVudC0+dHlwZSwgdG9JbXBsKHdrVHlwZS5nZXQoKSktPnN0cmluZygpLnV0ZjgoKS5k
YXRhKCkpOworICAgIHJldHVybiBpbnRlbnQtPnR5cGU7CisjZWxzZQorICAgIHJldHVybiAwOwor
I2VuZGlmCit9CisKK2NvbnN0IGNoYXIqIGV3a19pbnRlbnRfc2VydmljZV9nZXQoY29uc3QgRXdr
X0ludGVudCogaW50ZW50KQoreworI2lmIEVOQUJMRShXRUJfSU5URU5UUykKKyAgICBFV0tfSU5U
RU5UX1dLX0dFVF9PUl9SRVRVUk4oaW50ZW50LCB3a0ludGVudCwgMCk7CisKKyAgICBXS1JldGFp
blB0cjxXS1VSTFJlZj4gd2tTZXJ2aWNlKEFkb3B0V0ssIFdLSW50ZW50RGF0YUNvcHlTZXJ2aWNl
KHdrSW50ZW50KSk7CisgICAgRXdrX0ludGVudCogZXdrSW50ZW50ID0gY29uc3RfY2FzdDxFd2tf
SW50ZW50Kj4oaW50ZW50KTsKKyAgICBlaW5hX3N0cmluZ3NoYXJlX3JlcGxhY2UoJmV3a0ludGVu
dC0+c2VydmljZSwgdG9JbXBsKHdrU2VydmljZS5nZXQoKSktPnN0cmluZygpLnV0ZjgoKS5kYXRh
KCkpOworICAgIHJldHVybiBpbnRlbnQtPnNlcnZpY2U7CisjZWxzZQorICAgIHJldHVybiAwOwor
I2VuZGlmCit9CisKK0VpbmFfTGlzdCogZXdrX2ludGVudF9zdWdnZXN0aW9uc19nZXQoY29uc3Qg
RXdrX0ludGVudCogaW50ZW50KQoreworI2lmIEVOQUJMRShXRUJfSU5URU5UUykKKyAgICBFV0tf
SU5URU5UX1dLX0dFVF9PUl9SRVRVUk4oaW50ZW50LCB3a0ludGVudCwgMCk7CisKKyAgICBFaW5h
X0xpc3QqIGxpc3RPZlN1Z2dlc3Rpb25zID0gMDsKKyAgICBXS1JldGFpblB0cjxXS0FycmF5UmVm
PiB3a1N1Z2dlc3Rpb25zKEFkb3B0V0ssIFdLSW50ZW50RGF0YUNvcHlTdWdnZXN0aW9ucyh3a0lu
dGVudCkpOworICAgIGNvbnN0IHNpemVfdCBudW1TdWdnZXN0aW9ucyA9IFdLQXJyYXlHZXRTaXpl
KHdrU3VnZ2VzdGlvbnMuZ2V0KCkpOworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbnVtU3Vn
Z2VzdGlvbnM7ICsraSkgeworICAgICAgICBXS1VSTFJlZiB3a1N1Z2dlc3Rpb24gPSBzdGF0aWNf
Y2FzdDxXS1VSTFJlZj4oV0tBcnJheUdldEl0ZW1BdEluZGV4KHdrU3VnZ2VzdGlvbnMuZ2V0KCks
IGkpKTsKKyAgICAgICAgbGlzdE9mU3VnZ2VzdGlvbnMgPSBlaW5hX2xpc3RfYXBwZW5kKGxpc3RP
ZlN1Z2dlc3Rpb25zLCBzdHJkdXAodG9JbXBsKHdrU3VnZ2VzdGlvbiktPnN0cmluZygpLnV0Zjgo
KS5kYXRhKCkpKTsKKyAgICB9CisgICAgcmV0dXJuIGxpc3RPZlN1Z2dlc3Rpb25zOworI2Vsc2UK
KyAgICByZXR1cm4gMDsKKyNlbmRpZgorfQorCitjaGFyKiBld2tfaW50ZW50X2V4dHJhX2dldChj
b25zdCBFd2tfSW50ZW50KiBpbnRlbnQsIGNvbnN0IGNoYXIqIGtleSkKK3sKKyNpZiBFTkFCTEUo
V0VCX0lOVEVOVFMpCisgICAgRVdLX0lOVEVOVF9XS19HRVRfT1JfUkVUVVJOKGludGVudCwgd2tJ
bnRlbnQsIDApOworCisgICAgV0tSZXRhaW5QdHI8V0tTdHJpbmdSZWY+IGtleVJlZiA9IGFkb3B0
V0soV0tTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoa2V5KSk7CisgICAgV0tSZXRhaW5QdHI8
V0tTdHJpbmdSZWY+IHdrVmFsdWUoQWRvcHRXSywgV0tJbnRlbnREYXRhQ29weUV4dHJhKHdrSW50
ZW50LCBrZXlSZWYuZ2V0KCkpKTsKKyAgICBTdHJpbmcgdmFsdWUgPSB0b0ltcGwod2tWYWx1ZS5n
ZXQoKSktPnN0cmluZygpOworICAgIGlmICh2YWx1ZS5pc0VtcHR5KCkpCisgICAgICAgIHJldHVy
biAwOworICAgIHJldHVybiBzdHJkdXAodmFsdWUudXRmOCgpLmRhdGEoKSk7CisjZWxzZQorICAg
IHJldHVybiAwOworI2VuZGlmCit9CisKK0VpbmFfTGlzdCogZXdrX2ludGVudF9leHRyYV9uYW1l
c19nZXQoY29uc3QgRXdrX0ludGVudCogaW50ZW50KQoreworI2lmIEVOQUJMRShXRUJfSU5URU5U
UykKKyAgICBFV0tfSU5URU5UX1dLX0dFVF9PUl9SRVRVUk4oaW50ZW50LCB3a0ludGVudCwgMCk7
CisKKyAgICBFaW5hX0xpc3QqIGxpc3RPZktleXMgPSAwOworICAgIFdLUmV0YWluUHRyPFdLRGlj
dGlvbmFyeVJlZj4gd2tFeHRyYXMoQWRvcHRXSywgV0tJbnRlbnREYXRhQ29weUV4dHJhcyh3a0lu
dGVudCkpOworICAgIFdLUmV0YWluUHRyPFdLQXJyYXlSZWY+IHdrS2V5cyhBZG9wdFdLLCBXS0Rp
Y3Rpb25hcnlDb3B5S2V5cyh3a0V4dHJhcy5nZXQoKSkpOworICAgIGNvbnN0IHNpemVfdCBudW1L
ZXlzID0gV0tBcnJheUdldFNpemUod2tLZXlzLmdldCgpKTsKKyAgICBmb3IgKHNpemVfdCBpID0g
MDsgaSA8IG51bUtleXM7ICsraSkgeworICAgICAgICBXS1N0cmluZ1JlZiB3a0tleSA9IHN0YXRp
Y19jYXN0PFdLU3RyaW5nUmVmPihXS0FycmF5R2V0SXRlbUF0SW5kZXgod2tLZXlzLmdldCgpLCBp
KSk7CisgICAgICAgIGxpc3RPZktleXMgPSBlaW5hX2xpc3RfYXBwZW5kKGxpc3RPZktleXMsIHN0
cmR1cCh0b0ltcGwod2tLZXkpLT5zdHJpbmcoKS51dGY4KCkuZGF0YSgpKSk7CisgICAgfQorICAg
IHJldHVybiBsaXN0T2ZLZXlzOworI2Vsc2UKKyAgICByZXR1cm4gMDsKKyNlbmRpZgorfQorCisj
aWYgRU5BQkxFKFdFQl9JTlRFTlRTKQorRXdrX0ludGVudCogZXdrX2ludGVudF9uZXcoV0tJbnRl
bnREYXRhUmVmIGludGVudERhdGEpCit7CisgICAgRUlOQV9TQUZFVFlfT05fTlVMTF9SRVRVUk5f
VkFMKGludGVudERhdGEsIDApOworCisgICAgRXdrX0ludGVudCogZXdrSW50ZW50ID0gc3RhdGlj
X2Nhc3Q8RXdrX0ludGVudCo+KGNhbGxvYygxLCBzaXplb2YoRXdrX0ludGVudCkpKTsKKyAgICBl
d2tJbnRlbnQtPl9fcmVmID0gMTsKKyAgICBld2tJbnRlbnQtPndrSW50ZW50ID0gaW50ZW50RGF0
YTsKKyAgICByZXR1cm4gZXdrSW50ZW50OworfQorI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfaW50ZW50LmggYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL2VmbC9ld2tfaW50ZW50LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMC4uOTRhNzFmZQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvZWZsL2V3a19pbnRlbnQuaApAQCAtMCwwICsxLDEzMSBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAxMiBJbnRlbCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI2lmbmRlZiBld2tfaW50ZW50X2gKKyNkZWZpbmUgZXdrX2ludGVudF9oCisKKyNp
bmNsdWRlIDxFaW5hLmg+CisKKyNpZmRlZiBfX2NwbHVzcGx1cworZXh0ZXJuICJDIiB7CisjZW5k
aWYKKworLyoqIENyZWF0ZXMgYSB0eXBlIG5hbWUgZm9yIF9Fd2tfSW50ZW50ICovCit0eXBlZGVm
IHN0cnVjdCBfRXdrX0ludGVudCBFd2tfSW50ZW50OworCisvKioKKyAqIEluY3JlYXNlcyB0aGUg
cmVmZXJlbmNlIGNvdW50IG9mIHRoZSBnaXZlbiBvYmplY3QuCisgKgorICogQHBhcmFtIGludGVu
dCB0aGUgaW50ZW50IG9iamVjdCB0byBpbmNyZWFzZSB0aGUgcmVmZXJlbmNlIGNvdW50CisgKi8K
K0VBUEkgdm9pZCBld2tfaW50ZW50X3JlZihFd2tfSW50ZW50ICppbnRlbnQpOworCisvKioKKyAq
IERlY3JlYXNlcyB0aGUgcmVmZXJlbmNlIGNvdW50IG9mIHRoZSBnaXZlbiBvYmplY3QsIHBvc3Np
Ymx5IGZyZWVpbmcgaXQuCisgKgorICogV2hlbiB0aGUgcmVmZXJlbmNlIGNvdW50IGl0J3MgcmVh
Y2hlZCAwLCB0aGUgaW50ZW50IGlzIGZyZWVkLgorICoKKyAqIEBwYXJhbSBpbnRlbnQgdGhlIGlu
dGVudCBvYmplY3QgdG8gZGVjcmVhc2UgdGhlIHJlZmVyZW5jZSBjb3VudAorICovCitFQVBJIHZv
aWQgZXdrX2ludGVudF91bnJlZihFd2tfSW50ZW50ICppbnRlbnQpOworCisvKioKKyAqIFF1ZXJ5
IGFjdGlvbiBmb3IgdGhpcyBpbnRlbnQuCisgKgorICogQHBhcmFtIGludGVudCBpbnRlbnQgaXRl
bSB0byBxdWVyeS4KKyAqCisgKiBAcmV0dXJuIHRoZSBhY3Rpb24gcG9pbnRlciwgdGhhdCBtYXkg
YmUgQGMgTlVMTC4gVGhpcyBwb2ludGVyIGlzCisgKiAgICAgICAgIGd1YXJhbnRlZWQgdG8gYmUg
ZWluYV9zdHJpbmdzaGFyZSwgc28gd2hlbmV2ZXIgcG9zc2libGUKKyAqICAgICAgICAgc2F2ZSB5
b3Vyc2VsZiBzb21lIGNwdSBjeWNsZXMgYW5kIHVzZQorICogICAgICAgICBlaW5hX3N0cmluZ3No
YXJlX3JlZigpIGluc3RlYWQgb2YgZWluYV9zdHJpbmdzaGFyZV9hZGQoKSBvcgorICogICAgICAg
ICBzdHJkdXAoKS4KKyAqLworRUFQSSBjb25zdCBjaGFyICpld2tfaW50ZW50X2FjdGlvbl9nZXQo
Y29uc3QgRXdrX0ludGVudCAqaW50ZW50KTsKKworLyoqCisgKiBRdWVyeSB0eXBlIGZvciB0aGlz
IGludGVudC4KKyAqCisgKiBAcGFyYW0gaW50ZW50IGludGVudCBpdGVtIHRvIHF1ZXJ5LgorICoK
KyAqIEByZXR1cm4gdGhlIHR5cGUgcG9pbnRlciwgdGhhdCBtYXkgYmUgQGMgTlVMTC4gVGhpcyBw
b2ludGVyIGlzCisgKiAgICAgICAgIGd1YXJhbnRlZWQgdG8gYmUgZWluYV9zdHJpbmdzaGFyZSwg
c28gd2hlbmV2ZXIgcG9zc2libGUKKyAqICAgICAgICAgc2F2ZSB5b3Vyc2VsZiBzb21lIGNwdSBj
eWNsZXMgYW5kIHVzZQorICogICAgICAgICBlaW5hX3N0cmluZ3NoYXJlX3JlZigpIGluc3RlYWQg
b2YgZWluYV9zdHJpbmdzaGFyZV9hZGQoKSBvcgorICogICAgICAgICBzdHJkdXAoKS4KKyAqLwor
RUFQSSBjb25zdCBjaGFyICpld2tfaW50ZW50X3R5cGVfZ2V0KGNvbnN0IEV3a19JbnRlbnQgKmlu
dGVudCk7CisKKy8qKgorICogUXVlcnkgc2VydmljZSBmb3IgdGhpcyBpbnRlbnQuCisgKgorICog
QHBhcmFtIGludGVudCBpbnRlbnQgaXRlbSB0byBxdWVyeS4KKyAqCisgKiBAcmV0dXJuIHRoZSBz
ZXJ2aWNlIHBvaW50ZXIsIHRoYXQgbWF5IGJlIEBjIE5VTEwuIFRoaXMgcG9pbnRlciBpcworICog
ICAgICAgICBndWFyYW50ZWVkIHRvIGJlIGVpbmFfc3RyaW5nc2hhcmUsIHNvIHdoZW5ldmVyIHBv
c3NpYmxlCisgKiAgICAgICAgIHNhdmUgeW91cnNlbGYgc29tZSBjcHUgY3ljbGVzIGFuZCB1c2UK
KyAqICAgICAgICAgZWluYV9zdHJpbmdzaGFyZV9yZWYoKSBpbnN0ZWFkIG9mIGVpbmFfc3RyaW5n
c2hhcmVfYWRkKCkgb3IKKyAqICAgICAgICAgc3RyZHVwKCkuCisgKi8KK0VBUEkgY29uc3QgY2hh
ciAqZXdrX2ludGVudF9zZXJ2aWNlX2dldChjb25zdCBFd2tfSW50ZW50ICppbnRlbnQpOworCisv
KioKKyAqIFF1ZXJ5IHN1Z2dlc3Rpb25zIGZvciB0aGlzIGludGVudC4KKyAqCisgKiBUaGlzIGZ1
bmN0aW9uIHByb3ZpZGVzIGEgbGlzdCBvZiAoYWJzb2x1dGUpIHN1Z2dlc3RlZCBTZXJ2aWNlIFVS
THMgb2Ygd2hpY2ggdGhlIENsaWVudAorICogaXMgYXdhcmUgYW5kIHdoaWNoIGNhbiBoYW5kbGUg
dGhlIGludGVudC4KKyAqCisgKiBAcGFyYW0gaW50ZW50IGludGVudCBpdGVtIHRvIHF1ZXJ5Lgor
ICoKKyAqIEByZXR1cm4gQGMgRWluYV9MaXN0IHdpdGggc3VnZ2VzdGVkIHNlcnZpY2UgVVJMcyBv
biBzdWNjZXNzLCBvciBAYyAwIG9uIGZhaWx1cmUsCisgKiAgICAgICAgIHRoZSBFaW5hX0xpc3Qg
YW5kIGl0cyBpdGVtcyBzaG91bGQgYmUgZnJlZWQgYWZ0ZXIgdXNlLiBVc2UgZnJlZSgpIHRvIGZy
ZWUgdGhlCisgKiAgICAgICAgIGl0ZW1zLgorICovCitFQVBJIEVpbmFfTGlzdCAqZXdrX2ludGVu
dF9zdWdnZXN0aW9uc19nZXQoY29uc3QgRXdrX0ludGVudCAqaW50ZW50KTsKKworLyoqCisgKiBS
ZXRyaWV2ZXMgdGhlIHZhbHVlIChpZiBhbnkpIGZyb20gdGhlIGV4dHJhIGRhdGEgZGljdGlvbmFy
eSB0aGlzIGludGVudCB3YXMgY29uc3RydWN0ZWQgd2l0aC4KKyAqCisgKiBAcGFyYW0gaW50ZW50
IGludGVudCBpdGVtIHRvIHF1ZXJ5LgorICogQHBhcmFtIGtleSBrZXkgdG8gcXVlcnkgaW4gdGhl
IGRpY3Rpb25hcnkuCisgKgorICogQHJldHVybiBhIG5ld2x5IGFsbG9jYXRlZCBzdHJpbmcgb3Ig
QGMgTlVMTCBpbiBjYXNlIG9mIGVycm9yIG9yIGlmIHRoZSBrZXkgZG9lcyBub3QgZXhpc3QuCisg
Ki8KK0VBUEkgY2hhciAqZXdrX2ludGVudF9leHRyYV9nZXQoY29uc3QgRXdrX0ludGVudCAqaW50
ZW50LCBjb25zdCBjaGFyICprZXkpOworCisvKioKKyAqIFJldHJpZXZlIGEgbGlzdCBvZiB0aGUg
bmFtZXMgb2YgZXh0cmEgbWV0YWRhdGEgYXNzb2NpYXRlZCB3aXRoIHRoZSBpbnRlbnQuCisgKgor
ICogQHBhcmFtIGludGVudCBpbnRlbnQgaXRlbSB0byBxdWVyeS4KKyAqCisgKiBAcmV0dXJuIEBj
IEVpbmFfTGlzdCB3aXRoIG5hbWVzIG9mIGV4dHJhIG1ldGFkYXRhIG9uIHN1Y2Nlc3MsIG9yIEBj
IDAgb24gZmFpbHVyZSwKKyAqICAgICAgICAgdGhlIEVpbmFfTGlzdCBhbmQgaXRzIGl0ZW1zIHNo
b3VsZCBiZSBmcmVlZCBhZnRlciB1c2UuIFVzZSBmcmVlKCkgdG8gZnJlZSB0aGUKKyAqICAgICAg
ICAgaXRlbXMuCisgKi8KK0VBUEkgRWluYV9MaXN0ICpld2tfaW50ZW50X2V4dHJhX25hbWVzX2dl
dChjb25zdCBFd2tfSW50ZW50ICppbnRlbnQpOworCisjaWZkZWYgX19jcGx1c3BsdXMKK30KKyNl
bmRpZgorI2VuZGlmIC8vIGV3a19pbnRlbnRfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9lZmwvZXdrX2ludGVudF9wcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL2VmbC9ld2tfaW50ZW50X3ByaXZhdGUuaApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwLi5hZDMwNGQxCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2ludGVudF9wcml2YXRlLmgKQEAgLTAsMCArMSwzOCBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBJbnRlbCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4K
KyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBld2tfaW50ZW50X3ByaXZhdGVfaAorI2Rl
ZmluZSBld2tfaW50ZW50X3ByaXZhdGVfaAorCisjaWYgRU5BQkxFKFdFQl9JTlRFTlRTKQorCisj
aW5jbHVkZSAiZXdrX2ludGVudC5oIgorI2luY2x1ZGUgPFdlYktpdDIvV0tCYXNlLmg+CisKK0V3
a19JbnRlbnQqIGV3a19pbnRlbnRfbmV3KFdLSW50ZW50RGF0YVJlZiBpbnRlbnREYXRhKTsKKwor
I2VuZGlmIC8vIEVOQUJMRShXRUJfSU5URU5UUykKKworI2VuZGlmIC8vIGV3a19pbnRlbnRfcHJp
dmF0ZV9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tf
dmlldy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfdmlldy5jcHAK
aW5kZXggZmUzODRlMy4uNGFhYzFmMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9lZmwvZXdrX3ZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvZWZsL2V3a192aWV3LmNwcApAQCAtNTY4LDYgKzU2OCwxOSBAQCB2b2lkIGV3a192aWV3X3Rp
dGxlX2NoYW5nZWQoRXZhc19PYmplY3QqIGV3a1ZpZXcsIGNvbnN0IGNoYXIqIHRpdGxlKQogICAg
IGV2YXNfb2JqZWN0X3NtYXJ0X2NhbGxiYWNrX2NhbGwoZXdrVmlldywgInRpdGxlLGNoYW5nZWQi
LCBjb25zdF9jYXN0PGNoYXIqPih0aXRsZSkpOwogfQogCisvKioKKyAqIEBpbnRlcm5hbAorICog
VGhlIHZpZXcgcmVjZWl2ZWQgYSBuZXcgaW50ZW50IHJlcXVlc3QuCisgKgorICogRW1pdHMgc2ln
bmFsOiAiaW50ZW50LG5ldyIgd2l0aCBwb2ludGVyIHRvIGEgRXdrX0ludGVudC4KKyAqLwordm9p
ZCBld2tfdmlld19pbnRlbnRfbmV3KEV2YXNfT2JqZWN0KiBld2tWaWV3LCBjb25zdCBFd2tfSW50
ZW50KiBld2tJbnRlbnQpCit7CisjaWYgRU5BQkxFKFdFQl9JTlRFTlRTKQorICAgIGV2YXNfb2Jq
ZWN0X3NtYXJ0X2NhbGxiYWNrX2NhbGwoZXdrVmlldywgInRpdGxlLGNoYW5nZWQiLCBjb25zdF9j
YXN0PEV3a19JbnRlbnQqPihld2tJbnRlbnQpKTsKKyNlbmRpZgorfQorCiB2b2lkIGV3a192aWV3
X2Rpc3BsYXkoRXZhc19PYmplY3QqIGV3a1ZpZXcsIGNvbnN0IEludFJlY3QmIHJlY3QpCiB7CiAg
ICAgRVdLX1ZJRVdfU0RfR0VUX09SX1JFVFVSTihld2tWaWV3LCBzbWFydERhdGEpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3ZpZXcuaCBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a192aWV3LmgKaW5kZXggY2I1YjY1MC4uNjRk
MTU3NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3Zp
ZXcuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfdmlldy5oCkBA
IC0yNiw2ICsyNiw3IEBACiAgKgogICogVGhlIGZvbGxvd2luZyBzaWduYWxzIChzZWUgZXZhc19v
YmplY3Rfc21hcnRfY2FsbGJhY2tfYWRkKCkpIGFyZSBlbWl0dGVkOgogICoKKyAqIC0gImludGVu
dCxuZXciLCBFd2tfSW50ZW50X1JlcXVlc3QqOiByZXBvcnRzIG5ldyBXZWIgaW50ZW50LgogICog
LSAidGl0bGUsY2hhbmdlZCIsIGNvbnN0IGNoYXIqOiB0aXRsZSBvZiB0aGUgbWFpbiBmcmFtZSB3
YXMgY2hhbmdlZC4KICAqLwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL2VmbC9ld2tfdmlld19sb2FkZXJfY2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvZWZsL2V3a192aWV3X2xvYWRlcl9jbGllbnQuY3BwCmluZGV4IGU5OGUxNTQuLmI3
YjU3NDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a192
aWV3X2xvYWRlcl9jbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
ZWZsL2V3a192aWV3X2xvYWRlcl9jbGllbnQuY3BwCkBAIC0yNiw2ICsyNiw3IEBACiAjaW5jbHVk
ZSAiY29uZmlnLmgiCiAKICNpbmNsdWRlICJXS0ZyYW1lLmgiCisjaW5jbHVkZSAiZXdrX2ludGVu
dF9wcml2YXRlLmgiCiAjaW5jbHVkZSAiZXdrX3ZpZXdfbG9hZGVyX2NsaWVudF9wcml2YXRlLmgi
CiAjaW5jbHVkZSAiZXdrX3ZpZXdfcHJpdmF0ZS5oIgogI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJp
bmcuaD4KQEAgLTQxLDYgKzQyLDE5IEBAIHN0YXRpYyB2b2lkIGRpZFJlY2VpdmVUaXRsZUZvckZy
YW1lKFdLUGFnZVJlZiwgV0tTdHJpbmdSZWYgdGl0bGUsIFdLRnJhbWVSZWYgZnJhCiAgICAgZXdr
X3ZpZXdfdGl0bGVfY2hhbmdlZChld2tWaWV3LCB0b0ltcGwodGl0bGUpLT5zdHJpbmcoKS51dGY4
KCkuZGF0YSgpKTsKIH0KIAorI2lmIEVOQUJMRShXRUJfSU5URU5UUykKK3N0YXRpYyB2b2lkIGRp
ZFJlY2VpdmVJbnRlbnRGb3JGcmFtZShXS1BhZ2VSZWYgcGFnZSwgV0tGcmFtZVJlZiBmcmFtZSwg
V0tJbnRlbnREYXRhUmVmIGludGVudCwgY29uc3Qgdm9pZCogY2xpZW50SW5mbykKK3sKKyAgICBp
ZiAoIVdLRnJhbWVJc01haW5GcmFtZShmcmFtZSkpCisgICAgICAgIHJldHVybjsKKworICAgIEV2
YXNfT2JqZWN0KiBld2tWaWV3ID0gc3RhdGljX2Nhc3Q8RXZhc19PYmplY3QqPihjb25zdF9jYXN0
PHZvaWQqPihjbGllbnRJbmZvKSk7CisgICAgRXdrX0ludGVudCogZXdrSW50ZW50ID0gZXdrX2lu
dGVudF9uZXcoaW50ZW50KTsKKyAgICBld2tfdmlld19pbnRlbnRfbmV3KGV3a1ZpZXcsIGV3a0lu
dGVudCk7CisgICAgZXdrX2ludGVudF91bnJlZihld2tJbnRlbnQpOworfQorI2VuZGlmCisKIHZv
aWQgZXdrX3ZpZXdfbG9hZGVyX2NsaWVudF9hdHRhY2goV0tQYWdlUmVmIHBhZ2VSZWYsIEV2YXNf
T2JqZWN0KiBld2tWaWV3KQogewogICAgIFdLUGFnZUxvYWRlckNsaWVudCBsb2FkQ2xpZW50OwpA
QCAtNDgsNSArNjIsOCBAQCB2b2lkIGV3a192aWV3X2xvYWRlcl9jbGllbnRfYXR0YWNoKFdLUGFn
ZVJlZiBwYWdlUmVmLCBFdmFzX09iamVjdCogZXdrVmlldykKICAgICBsb2FkQ2xpZW50LnZlcnNp
b24gPSBrV0tQYWdlTG9hZGVyQ2xpZW50Q3VycmVudFZlcnNpb247CiAgICAgbG9hZENsaWVudC5j
bGllbnRJbmZvID0gZXdrVmlldzsKICAgICBsb2FkQ2xpZW50LmRpZFJlY2VpdmVUaXRsZUZvckZy
YW1lID0gZGlkUmVjZWl2ZVRpdGxlRm9yRnJhbWU7CisjaWYgRU5BQkxFKFdFQl9JTlRFTlRTKQor
ICAgIGxvYWRDbGllbnQuZGlkUmVjZWl2ZUludGVudEZvckZyYW1lID0gZGlkUmVjZWl2ZUludGVu
dEZvckZyYW1lOworI2VuZGlmCiAgICAgV0tQYWdlU2V0UGFnZUxvYWRlckNsaWVudChwYWdlUmVm
LCAmbG9hZENsaWVudCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL2VmbC9ld2tfdmlld19wcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L2VmbC9ld2tfdmlld19wcml2YXRlLmgKaW5kZXggNjI1OThlNC4uNDlkZDQ0MSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3ZpZXdfcHJpdmF0ZS5oCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a192aWV3X3ByaXZhdGUuaApA
QCAtMzAsOCArMzAsMTEgQEAgY2xhc3MgSW50UmVjdDsKIGNsYXNzIEludFNpemU7CiB9CiAKK3R5
cGVkZWYgc3RydWN0IF9Fd2tfSW50ZW50IEV3a19JbnRlbnQ7CisKIHZvaWQgZXdrX3ZpZXdfZGlz
cGxheShFdmFzX09iamVjdCogZXdrVmlldywgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgcmVjdCk7
CiB2b2lkIGV3a192aWV3X2ltYWdlX2RhdGFfc2V0KEV2YXNfT2JqZWN0KiBld2tWaWV3LCB2b2lk
KiBpbWFnZURhdGEsIGNvbnN0IFdlYkNvcmU6OkludFNpemUmIHNpemUpOwordm9pZCBld2tfdmll
d19pbnRlbnRfbmV3KEV2YXNfT2JqZWN0KiBld2tWaWV3LCBjb25zdCBFd2tfSW50ZW50KiBld2tJ
bnRlbnQpOwogdm9pZCBld2tfdmlld190aXRsZV9jaGFuZ2VkKEV2YXNfT2JqZWN0KiBld2tWaWV3
LCBjb25zdCBjaGFyKiB0aXRsZSk7CiAKIEV2YXNfT2JqZWN0KiBld2tfdmlld19iYXNlX2FkZChF
dmFzKiBjYW52YXMsIFdLQ29udGV4dFJlZiwgV0tQYWdlR3JvdXBSZWYpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>149688</attachid>
            <date>2012-06-26 23:19:13 -0700</date>
            <delta_ts>2012-06-28 00:36:21 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>89749_wk2_ewk_intent.patch</filename>
            <type>text/plain</type>
            <size>20147</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwppbmRleCAwNjdiOTg4Li5mNjBlMzg3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMzgg
QEAKIDIwMTItMDYtMjYgIENocmlzdG9waGUgRHVtZXogIDxjaHJpc3RvcGhlLmR1bWV6QGludGVs
LmNvbT4KIAorICAgICAgICBbRUZMXVtXSzJdIEFkZCBBUEkgdG8gaW5zcGVjdCBhIFdlYiBJbnRl
bnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg5NzQ5
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIEVG
TCBBUEkgdG8gaW5zcGVjdCBhIFdlYiBJbnRlbnQgYW5kIGVtaXQgYSBzaWduYWwKKyAgICAgICAg
b24gdGhlIHZpZXcgd2hlbiBhIG5ldyBpbnRlbnQgcmVxdWVzdCBpcyBtYWRlLgorCisgICAgICAg
ICogUGxhdGZvcm1FZmwuY21ha2U6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9lZmwvRVdlYktp
dDIuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2VmbC9ld2tfaW50ZW50LmNwcDogQWRkZWQu
CisgICAgICAgIChfRXdrX0ludGVudCk6CisgICAgICAgIChld2tfaW50ZW50X3JlZik6CisgICAg
ICAgIChld2tfaW50ZW50X3VucmVmKToKKyAgICAgICAgKGV3a19pbnRlbnRfYWN0aW9uX2dldCk6
CisgICAgICAgIChld2tfaW50ZW50X3R5cGVfZ2V0KToKKyAgICAgICAgKGV3a19pbnRlbnRfc2Vy
dmljZV9nZXQpOgorICAgICAgICAoZXdrX2ludGVudF9zdWdnZXN0aW9uc19nZXQpOgorICAgICAg
ICAoZXdrX2ludGVudF9leHRyYV9nZXQpOgorICAgICAgICAoZXdrX2ludGVudF9leHRyYV9uYW1l
c19nZXQpOgorICAgICAgICAoZXdrX2ludGVudF9uZXcpOgorICAgICAgICAqIFVJUHJvY2Vzcy9B
UEkvZWZsL2V3a19pbnRlbnQuaDogQWRkZWQuCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9lZmwv
ZXdrX2ludGVudF9wcml2YXRlLmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvZWZsL2V3a192aWV3X2xvYWRlcl9jbGllbnQuY3BwLgorICAgICAgICAqIFVJUHJvY2Vz
cy9BUEkvZWZsL2V3a192aWV3LmNwcDoKKyAgICAgICAgKGV3a192aWV3X2ludGVudF9uZXcpOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZWZsL2V3a192aWV3Lmg6CisgICAgICAgICogVUlQcm9j
ZXNzL0FQSS9lZmwvZXdrX3ZpZXdfbG9hZGVyX2NsaWVudC5jcHA6CisgICAgICAgIChkaWRSZWNl
aXZlSW50ZW50Rm9yRnJhbWUpOgorICAgICAgICAoZXdrX3ZpZXdfbG9hZGVyX2NsaWVudF9hdHRh
Y2gpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZWZsL2V3a192aWV3X3ByaXZhdGUuaDoKKwor
MjAxMi0wNi0yNiAgQ2hyaXN0b3BoZSBEdW1leiAgPGNocmlzdG9waGUuZHVtZXpAaW50ZWwuY29t
PgorCiAgICAgICAgIFtXSzJdW0dUS10gVW5pbml0aWFsaXplZCB2YXJpYWJsZSBpbiBUZXh0Q2hl
Y2tlckd0ay5jcHAKICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTg5OTQ4CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtRWZsLmNtYWtl
IGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm1FZmwuY21ha2UKaW5kZXggNWY2ZTA5ZS4uOWMxODgx
NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm1FZmwuY21ha2UKKysrIGIvU291
cmNlL1dlYktpdDIvUGxhdGZvcm1FZmwuY21ha2UKQEAgLTMyLDYgKzMyLDcgQEAgTElTVChBUFBF
TkQgV2ViS2l0Ml9TT1VSQ0VTCiAKICAgICBVSVByb2Nlc3MvQVBJL2VmbC9QYWdlQ2xpZW50SW1w
bC5jcHAKICAgICBVSVByb2Nlc3MvQVBJL2VmbC9ld2tfY29udGV4dC5jcHAKKyAgICBVSVByb2Nl
c3MvQVBJL2VmbC9ld2tfaW50ZW50LmNwcAogICAgIFVJUHJvY2Vzcy9BUEkvZWZsL2V3a192aWV3
LmNwcAogICAgIFVJUHJvY2Vzcy9BUEkvZWZsL2V3a192aWV3X2xvYWRlcl9jbGllbnQuY3BwCiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL0VXZWJLaXQyLmgg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9FV2ViS2l0Mi5oCmluZGV4IGUxNDNi
NzguLjUxZGZjMGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZs
L0VXZWJLaXQyLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvRVdlYktp
dDIuaApAQCAtMjgsNiArMjgsNyBAQAogI2RlZmluZSBFV2ViS2l0Ml9oCiAKICNpbmNsdWRlICJl
d2tfY29udGV4dC5oIgorI2luY2x1ZGUgImV3a19pbnRlbnQuaCIKICNpbmNsdWRlICJld2tfdmll
dy5oIgogCiAjZW5kaWYgLy8gRVdlYktpdDJfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9lZmwvZXdrX2ludGVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL2VmbC9ld2tfaW50ZW50LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwLi5mOTQ4NjNlCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9lZmwvZXdrX2ludGVudC5jcHAKQEAgLTAsMCArMSwxOTQgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMTIgSW50ZWwgQ29ycG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
CisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJld2tfaW50ZW50LmgiCisKKyNp
bmNsdWRlICJXS0FQSUNhc3QuaCIKKyNpbmNsdWRlICJXS0FycmF5LmgiCisjaW5jbHVkZSAiV0tE
aWN0aW9uYXJ5LmgiCisjaW5jbHVkZSAiV0tJbnRlbnREYXRhLmgiCisjaW5jbHVkZSAiV0tSZXRh
aW5QdHIuaCIKKyNpbmNsdWRlICJXS1N0cmluZy5oIgorI2luY2x1ZGUgIldLVVJMLmgiCisjaW5j
bHVkZSAiZXdrX2ludGVudF9wcml2YXRlLmgiCisjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5o
PgorCit1c2luZyBuYW1lc3BhY2UgV2ViS2l0OworCisvKioKKyAqIFxzdHJ1Y3QgIF9Fd2tfSW50
ZW50CisgKiBAYnJpZWYgICBDb250YWlucyB0aGUgaW50ZW50IGRhdGEuCisgKi8KK3N0cnVjdCBf
RXdrX0ludGVudCB7CisgICAgdW5zaWduZWQgaW50IF9fcmVmOyAvKio8IHRoZSByZWZlcmVuY2Ug
Y291bnQgb2YgdGhlIG9iamVjdCAqLworI2lmIEVOQUJMRShXRUJfSU5URU5UUykKKyAgICBXS1Jl
dGFpblB0cjxXS0ludGVudERhdGFSZWY+IHdrSW50ZW50OworI2VuZGlmCisgICAgY29uc3QgY2hh
ciogYWN0aW9uOworICAgIGNvbnN0IGNoYXIqIHR5cGU7CisgICAgY29uc3QgY2hhciogc2Vydmlj
ZTsKK307CisKKyNkZWZpbmUgRVdLX0lOVEVOVF9XS19HRVRfT1JfUkVUVVJOKGludGVudCwgd2tJ
bnRlbnRfLCAuLi4pICAgIFwKKyAgICBpZiAoIShpbnRlbnQpKSB7ICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgRUlOQV9MT0dfQ1JJVCgiaW50ZW50
IGlzIE5VTEwuIik7ICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgcmV0dXJuIF9fVkFf
QVJHU19fOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICB9ICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAg
ICBpZiAoIShpbnRlbnQpLT53a0ludGVudCkgeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIFwKKyAgICAgICAgRUlOQV9MT0dfQ1JJVCgiaW50ZW50LT53a0ludGVudCBpcyBOVUxMLiIp
OyAgICAgICAgICAgIFwKKyAgICAgICAgcmV0dXJuIF9fVkFfQVJHU19fOyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICB9ICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICBXS0ludGVudERhdGFSZWYgd2tJ
bnRlbnRfID0gKGludGVudCktPndrSW50ZW50LmdldCgpCisKK3ZvaWQgZXdrX2ludGVudF9yZWYo
RXdrX0ludGVudCogaW50ZW50KQoreworI2lmIEVOQUJMRShXRUJfSU5URU5UUykKKyAgICBFSU5B
X1NBRkVUWV9PTl9OVUxMX1JFVFVSTihpbnRlbnQpOworICAgICsraW50ZW50LT5fX3JlZjsKKyNl
bmRpZgorfQorCit2b2lkIGV3a19pbnRlbnRfdW5yZWYoRXdrX0ludGVudCogaW50ZW50KQorewor
I2lmIEVOQUJMRShXRUJfSU5URU5UUykKKyAgICBFSU5BX1NBRkVUWV9PTl9OVUxMX1JFVFVSTihp
bnRlbnQpOworCisgICAgaWYgKC0taW50ZW50LT5fX3JlZikKKyAgICAgICAgcmV0dXJuOworCisg
ICAgZWluYV9zdHJpbmdzaGFyZV9kZWwoaW50ZW50LT5hY3Rpb24pOworICAgIGVpbmFfc3RyaW5n
c2hhcmVfZGVsKGludGVudC0+dHlwZSk7CisgICAgZWluYV9zdHJpbmdzaGFyZV9kZWwoaW50ZW50
LT5zZXJ2aWNlKTsKKyAgICBkZWxldGUgaW50ZW50OworI2VuZGlmCit9CisKK2NvbnN0IGNoYXIq
IGV3a19pbnRlbnRfYWN0aW9uX2dldChjb25zdCBFd2tfSW50ZW50KiBpbnRlbnQpCit7CisjaWYg
RU5BQkxFKFdFQl9JTlRFTlRTKQorICAgIEVXS19JTlRFTlRfV0tfR0VUX09SX1JFVFVSTihpbnRl
bnQsIHdrSW50ZW50LCAwKTsKKworICAgIFdLUmV0YWluUHRyPFdLU3RyaW5nUmVmPiB3a0FjdGlv
bihBZG9wdFdLLCBXS0ludGVudERhdGFDb3B5QWN0aW9uKHdrSW50ZW50KSk7CisgICAgRXdrX0lu
dGVudCogZXdrSW50ZW50ID0gY29uc3RfY2FzdDxFd2tfSW50ZW50Kj4oaW50ZW50KTsKKyAgICBl
aW5hX3N0cmluZ3NoYXJlX3JlcGxhY2UoJmV3a0ludGVudC0+YWN0aW9uLCB0b0ltcGwod2tBY3Rp
b24uZ2V0KCkpLT5zdHJpbmcoKS51dGY4KCkuZGF0YSgpKTsKKyAgICByZXR1cm4gaW50ZW50LT5h
Y3Rpb247CisjZWxzZQorICAgIHJldHVybiAwOworI2VuZGlmCit9CisKK2NvbnN0IGNoYXIqIGV3
a19pbnRlbnRfdHlwZV9nZXQoY29uc3QgRXdrX0ludGVudCogaW50ZW50KQoreworI2lmIEVOQUJM
RShXRUJfSU5URU5UUykKKyAgICBFV0tfSU5URU5UX1dLX0dFVF9PUl9SRVRVUk4oaW50ZW50LCB3
a0ludGVudCwgMCk7CisKKyAgICBXS1JldGFpblB0cjxXS1N0cmluZ1JlZj4gd2tUeXBlKEFkb3B0
V0ssIFdLSW50ZW50RGF0YUNvcHlUeXBlKHdrSW50ZW50KSk7CisgICAgRXdrX0ludGVudCogZXdr
SW50ZW50ID0gY29uc3RfY2FzdDxFd2tfSW50ZW50Kj4oaW50ZW50KTsKKyAgICBlaW5hX3N0cmlu
Z3NoYXJlX3JlcGxhY2UoJmV3a0ludGVudC0+dHlwZSwgdG9JbXBsKHdrVHlwZS5nZXQoKSktPnN0
cmluZygpLnV0ZjgoKS5kYXRhKCkpOworICAgIHJldHVybiBpbnRlbnQtPnR5cGU7CisjZWxzZQor
ICAgIHJldHVybiAwOworI2VuZGlmCit9CisKK2NvbnN0IGNoYXIqIGV3a19pbnRlbnRfc2Vydmlj
ZV9nZXQoY29uc3QgRXdrX0ludGVudCogaW50ZW50KQoreworI2lmIEVOQUJMRShXRUJfSU5URU5U
UykKKyAgICBFV0tfSU5URU5UX1dLX0dFVF9PUl9SRVRVUk4oaW50ZW50LCB3a0ludGVudCwgMCk7
CisKKyAgICBXS1JldGFpblB0cjxXS1VSTFJlZj4gd2tTZXJ2aWNlKEFkb3B0V0ssIFdLSW50ZW50
RGF0YUNvcHlTZXJ2aWNlKHdrSW50ZW50KSk7CisgICAgRXdrX0ludGVudCogZXdrSW50ZW50ID0g
Y29uc3RfY2FzdDxFd2tfSW50ZW50Kj4oaW50ZW50KTsKKyAgICBlaW5hX3N0cmluZ3NoYXJlX3Jl
cGxhY2UoJmV3a0ludGVudC0+c2VydmljZSwgdG9JbXBsKHdrU2VydmljZS5nZXQoKSktPnN0cmlu
ZygpLnV0ZjgoKS5kYXRhKCkpOworICAgIHJldHVybiBpbnRlbnQtPnNlcnZpY2U7CisjZWxzZQor
ICAgIHJldHVybiAwOworI2VuZGlmCit9CisKK0VpbmFfTGlzdCogZXdrX2ludGVudF9zdWdnZXN0
aW9uc19nZXQoY29uc3QgRXdrX0ludGVudCogaW50ZW50KQoreworI2lmIEVOQUJMRShXRUJfSU5U
RU5UUykKKyAgICBFV0tfSU5URU5UX1dLX0dFVF9PUl9SRVRVUk4oaW50ZW50LCB3a0ludGVudCwg
MCk7CisKKyAgICBFaW5hX0xpc3QqIGxpc3RPZlN1Z2dlc3Rpb25zID0gMDsKKyAgICBXS1JldGFp
blB0cjxXS0FycmF5UmVmPiB3a1N1Z2dlc3Rpb25zKEFkb3B0V0ssIFdLSW50ZW50RGF0YUNvcHlT
dWdnZXN0aW9ucyh3a0ludGVudCkpOworICAgIGNvbnN0IHNpemVfdCBudW1TdWdnZXN0aW9ucyA9
IFdLQXJyYXlHZXRTaXplKHdrU3VnZ2VzdGlvbnMuZ2V0KCkpOworICAgIGZvciAoc2l6ZV90IGkg
PSAwOyBpIDwgbnVtU3VnZ2VzdGlvbnM7ICsraSkgeworICAgICAgICBXS1VSTFJlZiB3a1N1Z2dl
c3Rpb24gPSBzdGF0aWNfY2FzdDxXS1VSTFJlZj4oV0tBcnJheUdldEl0ZW1BdEluZGV4KHdrU3Vn
Z2VzdGlvbnMuZ2V0KCksIGkpKTsKKyAgICAgICAgbGlzdE9mU3VnZ2VzdGlvbnMgPSBlaW5hX2xp
c3RfYXBwZW5kKGxpc3RPZlN1Z2dlc3Rpb25zLCBzdHJkdXAodG9JbXBsKHdrU3VnZ2VzdGlvbikt
PnN0cmluZygpLnV0ZjgoKS5kYXRhKCkpKTsKKyAgICB9CisgICAgcmV0dXJuIGxpc3RPZlN1Z2dl
c3Rpb25zOworI2Vsc2UKKyAgICByZXR1cm4gMDsKKyNlbmRpZgorfQorCitjaGFyKiBld2tfaW50
ZW50X2V4dHJhX2dldChjb25zdCBFd2tfSW50ZW50KiBpbnRlbnQsIGNvbnN0IGNoYXIqIGtleSkK
K3sKKyNpZiBFTkFCTEUoV0VCX0lOVEVOVFMpCisgICAgRVdLX0lOVEVOVF9XS19HRVRfT1JfUkVU
VVJOKGludGVudCwgd2tJbnRlbnQsIDApOworCisgICAgV0tSZXRhaW5QdHI8V0tTdHJpbmdSZWY+
IGtleVJlZiA9IGFkb3B0V0soV0tTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoa2V5KSk7Cisg
ICAgV0tSZXRhaW5QdHI8V0tTdHJpbmdSZWY+IHdrVmFsdWUoQWRvcHRXSywgV0tJbnRlbnREYXRh
Q29weUV4dHJhKHdrSW50ZW50LCBrZXlSZWYuZ2V0KCkpKTsKKyAgICBTdHJpbmcgdmFsdWUgPSB0
b0ltcGwod2tWYWx1ZS5nZXQoKSktPnN0cmluZygpOworICAgIGlmICh2YWx1ZS5pc0VtcHR5KCkp
CisgICAgICAgIHJldHVybiAwOworICAgIHJldHVybiBzdHJkdXAodmFsdWUudXRmOCgpLmRhdGEo
KSk7CisjZWxzZQorICAgIHJldHVybiAwOworI2VuZGlmCit9CisKK0VpbmFfTGlzdCogZXdrX2lu
dGVudF9leHRyYV9uYW1lc19nZXQoY29uc3QgRXdrX0ludGVudCogaW50ZW50KQoreworI2lmIEVO
QUJMRShXRUJfSU5URU5UUykKKyAgICBFV0tfSU5URU5UX1dLX0dFVF9PUl9SRVRVUk4oaW50ZW50
LCB3a0ludGVudCwgMCk7CisKKyAgICBFaW5hX0xpc3QqIGxpc3RPZktleXMgPSAwOworICAgIFdL
UmV0YWluUHRyPFdLRGljdGlvbmFyeVJlZj4gd2tFeHRyYXMoQWRvcHRXSywgV0tJbnRlbnREYXRh
Q29weUV4dHJhcyh3a0ludGVudCkpOworICAgIFdLUmV0YWluUHRyPFdLQXJyYXlSZWY+IHdrS2V5
cyhBZG9wdFdLLCBXS0RpY3Rpb25hcnlDb3B5S2V5cyh3a0V4dHJhcy5nZXQoKSkpOworICAgIGNv
bnN0IHNpemVfdCBudW1LZXlzID0gV0tBcnJheUdldFNpemUod2tLZXlzLmdldCgpKTsKKyAgICBm
b3IgKHNpemVfdCBpID0gMDsgaSA8IG51bUtleXM7ICsraSkgeworICAgICAgICBXS1N0cmluZ1Jl
ZiB3a0tleSA9IHN0YXRpY19jYXN0PFdLU3RyaW5nUmVmPihXS0FycmF5R2V0SXRlbUF0SW5kZXgo
d2tLZXlzLmdldCgpLCBpKSk7CisgICAgICAgIGxpc3RPZktleXMgPSBlaW5hX2xpc3RfYXBwZW5k
KGxpc3RPZktleXMsIHN0cmR1cCh0b0ltcGwod2tLZXkpLT5zdHJpbmcoKS51dGY4KCkuZGF0YSgp
KSk7CisgICAgfQorICAgIHJldHVybiBsaXN0T2ZLZXlzOworI2Vsc2UKKyAgICByZXR1cm4gMDsK
KyNlbmRpZgorfQorCisjaWYgRU5BQkxFKFdFQl9JTlRFTlRTKQorRXdrX0ludGVudCogZXdrX2lu
dGVudF9uZXcoV0tJbnRlbnREYXRhUmVmIGludGVudERhdGEpCit7CisgICAgRUlOQV9TQUZFVFlf
T05fTlVMTF9SRVRVUk5fVkFMKGludGVudERhdGEsIDApOworCisgICAgRXdrX0ludGVudCogZXdr
SW50ZW50ID0gc3RhdGljX2Nhc3Q8RXdrX0ludGVudCo+KGNhbGxvYygxLCBzaXplb2YoRXdrX0lu
dGVudCkpKTsKKyAgICBld2tJbnRlbnQtPl9fcmVmID0gMTsKKyAgICBld2tJbnRlbnQtPndrSW50
ZW50ID0gaW50ZW50RGF0YTsKKyAgICByZXR1cm4gZXdrSW50ZW50OworfQorI2VuZGlmCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfaW50ZW50LmggYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfaW50ZW50LmgKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZmRjZmUwMAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19pbnRlbnQuaApAQCAtMCwwICsxLDEzNiBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBJbnRlbCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4K
KyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworLyoqCisgKiBAZmlsZSAgICBld2tfaW50ZW50LmgKKyAq
IEBicmllZiAgIERlc2NyaWJlcyB0aGUgRXdrIEludGVudCBBUEkuCisgKi8KKworI2lmbmRlZiBl
d2tfaW50ZW50X2gKKyNkZWZpbmUgZXdrX2ludGVudF9oCisKKyNpbmNsdWRlIDxFaW5hLmg+CisK
KyNpZmRlZiBfX2NwbHVzcGx1cworZXh0ZXJuICJDIiB7CisjZW5kaWYKKworLyoqIENyZWF0ZXMg
YSB0eXBlIG5hbWUgZm9yIF9Fd2tfSW50ZW50ICovCit0eXBlZGVmIHN0cnVjdCBfRXdrX0ludGVu
dCBFd2tfSW50ZW50OworCisvKioKKyAqIEluY3JlYXNlcyB0aGUgcmVmZXJlbmNlIGNvdW50IG9m
IHRoZSBnaXZlbiBvYmplY3QuCisgKgorICogQHBhcmFtIGludGVudCB0aGUgaW50ZW50IG9iamVj
dCB0byBpbmNyZWFzZSB0aGUgcmVmZXJlbmNlIGNvdW50CisgKi8KK0VBUEkgdm9pZCBld2tfaW50
ZW50X3JlZihFd2tfSW50ZW50ICppbnRlbnQpOworCisvKioKKyAqIERlY3JlYXNlcyB0aGUgcmVm
ZXJlbmNlIGNvdW50IG9mIHRoZSBnaXZlbiBvYmplY3QsIHBvc3NpYmx5IGZyZWVpbmcgaXQuCisg
KgorICogV2hlbiB0aGUgcmVmZXJlbmNlIGNvdW50IGl0J3MgcmVhY2hlZCAwLCB0aGUgaW50ZW50
IGlzIGZyZWVkLgorICoKKyAqIEBwYXJhbSBpbnRlbnQgdGhlIGludGVudCBvYmplY3QgdG8gZGVj
cmVhc2UgdGhlIHJlZmVyZW5jZSBjb3VudAorICovCitFQVBJIHZvaWQgZXdrX2ludGVudF91bnJl
ZihFd2tfSW50ZW50ICppbnRlbnQpOworCisvKioKKyAqIFF1ZXJ5IGFjdGlvbiBmb3IgdGhpcyBp
bnRlbnQuCisgKgorICogQHBhcmFtIGludGVudCBpbnRlbnQgaXRlbSB0byBxdWVyeS4KKyAqCisg
KiBAcmV0dXJuIHRoZSBhY3Rpb24gcG9pbnRlciwgdGhhdCBtYXkgYmUgQGMgTlVMTC4gVGhpcyBw
b2ludGVyIGlzCisgKiAgICAgICAgIGd1YXJhbnRlZWQgdG8gYmUgZWluYV9zdHJpbmdzaGFyZSwg
c28gd2hlbmV2ZXIgcG9zc2libGUKKyAqICAgICAgICAgc2F2ZSB5b3Vyc2VsZiBzb21lIGNwdSBj
eWNsZXMgYW5kIHVzZQorICogICAgICAgICBlaW5hX3N0cmluZ3NoYXJlX3JlZigpIGluc3RlYWQg
b2YgZWluYV9zdHJpbmdzaGFyZV9hZGQoKSBvcgorICogICAgICAgICBzdHJkdXAoKS4KKyAqLwor
RUFQSSBjb25zdCBjaGFyICpld2tfaW50ZW50X2FjdGlvbl9nZXQoY29uc3QgRXdrX0ludGVudCAq
aW50ZW50KTsKKworLyoqCisgKiBRdWVyeSB0eXBlIGZvciB0aGlzIGludGVudC4KKyAqCisgKiBA
cGFyYW0gaW50ZW50IGludGVudCBpdGVtIHRvIHF1ZXJ5LgorICoKKyAqIEByZXR1cm4gdGhlIHR5
cGUgcG9pbnRlciwgdGhhdCBtYXkgYmUgQGMgTlVMTC4gVGhpcyBwb2ludGVyIGlzCisgKiAgICAg
ICAgIGd1YXJhbnRlZWQgdG8gYmUgZWluYV9zdHJpbmdzaGFyZSwgc28gd2hlbmV2ZXIgcG9zc2li
bGUKKyAqICAgICAgICAgc2F2ZSB5b3Vyc2VsZiBzb21lIGNwdSBjeWNsZXMgYW5kIHVzZQorICog
ICAgICAgICBlaW5hX3N0cmluZ3NoYXJlX3JlZigpIGluc3RlYWQgb2YgZWluYV9zdHJpbmdzaGFy
ZV9hZGQoKSBvcgorICogICAgICAgICBzdHJkdXAoKS4KKyAqLworRUFQSSBjb25zdCBjaGFyICpl
d2tfaW50ZW50X3R5cGVfZ2V0KGNvbnN0IEV3a19JbnRlbnQgKmludGVudCk7CisKKy8qKgorICog
UXVlcnkgc2VydmljZSBmb3IgdGhpcyBpbnRlbnQuCisgKgorICogQHBhcmFtIGludGVudCBpbnRl
bnQgaXRlbSB0byBxdWVyeS4KKyAqCisgKiBAcmV0dXJuIHRoZSBzZXJ2aWNlIHBvaW50ZXIsIHRo
YXQgbWF5IGJlIEBjIE5VTEwuIFRoaXMgcG9pbnRlciBpcworICogICAgICAgICBndWFyYW50ZWVk
IHRvIGJlIGVpbmFfc3RyaW5nc2hhcmUsIHNvIHdoZW5ldmVyIHBvc3NpYmxlCisgKiAgICAgICAg
IHNhdmUgeW91cnNlbGYgc29tZSBjcHUgY3ljbGVzIGFuZCB1c2UKKyAqICAgICAgICAgZWluYV9z
dHJpbmdzaGFyZV9yZWYoKSBpbnN0ZWFkIG9mIGVpbmFfc3RyaW5nc2hhcmVfYWRkKCkgb3IKKyAq
ICAgICAgICAgc3RyZHVwKCkuCisgKi8KK0VBUEkgY29uc3QgY2hhciAqZXdrX2ludGVudF9zZXJ2
aWNlX2dldChjb25zdCBFd2tfSW50ZW50ICppbnRlbnQpOworCisvKioKKyAqIFF1ZXJ5IHN1Z2dl
c3Rpb25zIGZvciB0aGlzIGludGVudC4KKyAqCisgKiBUaGlzIGZ1bmN0aW9uIHByb3ZpZGVzIGEg
bGlzdCBvZiAoYWJzb2x1dGUpIHN1Z2dlc3RlZCBTZXJ2aWNlIFVSTHMgb2Ygd2hpY2ggdGhlIENs
aWVudAorICogaXMgYXdhcmUgYW5kIHdoaWNoIGNhbiBoYW5kbGUgdGhlIGludGVudC4KKyAqCisg
KiBAcGFyYW0gaW50ZW50IGludGVudCBpdGVtIHRvIHF1ZXJ5LgorICoKKyAqIEByZXR1cm4gQGMg
RWluYV9MaXN0IHdpdGggc3VnZ2VzdGVkIHNlcnZpY2UgVVJMcyBvbiBzdWNjZXNzLCBvciBAYyAw
IG9uIGZhaWx1cmUsCisgKiAgICAgICAgIHRoZSBFaW5hX0xpc3QgYW5kIGl0cyBpdGVtcyBzaG91
bGQgYmUgZnJlZWQgYWZ0ZXIgdXNlLiBVc2UgZnJlZSgpIHRvIGZyZWUgdGhlCisgKiAgICAgICAg
IGl0ZW1zLgorICovCitFQVBJIEVpbmFfTGlzdCAqZXdrX2ludGVudF9zdWdnZXN0aW9uc19nZXQo
Y29uc3QgRXdrX0ludGVudCAqaW50ZW50KTsKKworLyoqCisgKiBSZXRyaWV2ZXMgdGhlIHZhbHVl
IChpZiBhbnkpIGZyb20gdGhlIGV4dHJhIGRhdGEgZGljdGlvbmFyeSB0aGlzIGludGVudCB3YXMg
Y29uc3RydWN0ZWQgd2l0aC4KKyAqCisgKiBAcGFyYW0gaW50ZW50IGludGVudCBpdGVtIHRvIHF1
ZXJ5LgorICogQHBhcmFtIGtleSBrZXkgdG8gcXVlcnkgaW4gdGhlIGRpY3Rpb25hcnkuCisgKgor
ICogQHJldHVybiBhIG5ld2x5IGFsbG9jYXRlZCBzdHJpbmcgb3IgQGMgTlVMTCBpbiBjYXNlIG9m
IGVycm9yIG9yIGlmIHRoZSBrZXkgZG9lcyBub3QgZXhpc3QuCisgKi8KK0VBUEkgY2hhciAqZXdr
X2ludGVudF9leHRyYV9nZXQoY29uc3QgRXdrX0ludGVudCAqaW50ZW50LCBjb25zdCBjaGFyICpr
ZXkpOworCisvKioKKyAqIFJldHJpZXZlIGEgbGlzdCBvZiB0aGUgbmFtZXMgb2YgZXh0cmEgbWV0
YWRhdGEgYXNzb2NpYXRlZCB3aXRoIHRoZSBpbnRlbnQuCisgKgorICogQHBhcmFtIGludGVudCBp
bnRlbnQgaXRlbSB0byBxdWVyeS4KKyAqCisgKiBAcmV0dXJuIEBjIEVpbmFfTGlzdCB3aXRoIG5h
bWVzIG9mIGV4dHJhIG1ldGFkYXRhIG9uIHN1Y2Nlc3MsIG9yIEBjIDAgb24gZmFpbHVyZSwKKyAq
ICAgICAgICAgdGhlIEVpbmFfTGlzdCBhbmQgaXRzIGl0ZW1zIHNob3VsZCBiZSBmcmVlZCBhZnRl
ciB1c2UuIFVzZSBmcmVlKCkgdG8gZnJlZSB0aGUKKyAqICAgICAgICAgaXRlbXMuCisgKi8KK0VB
UEkgRWluYV9MaXN0ICpld2tfaW50ZW50X2V4dHJhX25hbWVzX2dldChjb25zdCBFd2tfSW50ZW50
ICppbnRlbnQpOworCisjaWZkZWYgX19jcGx1c3BsdXMKK30KKyNlbmRpZgorI2VuZGlmIC8vIGV3
a19pbnRlbnRfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwv
ZXdrX2ludGVudF9wcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9l
d2tfaW50ZW50X3ByaXZhdGUuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5h
ZDMwNGQxCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9l
ZmwvZXdrX2ludGVudF9wcml2YXRlLmgKQEAgLTAsMCArMSwzOCBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAxMiBJbnRlbCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElU
UyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YK
KyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
CisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworI2lmbmRlZiBld2tfaW50ZW50X3ByaXZhdGVfaAorI2RlZmluZSBld2tfaW50ZW50X3By
aXZhdGVfaAorCisjaWYgRU5BQkxFKFdFQl9JTlRFTlRTKQorCisjaW5jbHVkZSAiZXdrX2ludGVu
dC5oIgorI2luY2x1ZGUgPFdlYktpdDIvV0tCYXNlLmg+CisKK0V3a19JbnRlbnQqIGV3a19pbnRl
bnRfbmV3KFdLSW50ZW50RGF0YVJlZiBpbnRlbnREYXRhKTsKKworI2VuZGlmIC8vIEVOQUJMRShX
RUJfSU5URU5UUykKKworI2VuZGlmIC8vIGV3a19pbnRlbnRfcHJpdmF0ZV9oCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfdmlldy5jcHAgYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfdmlldy5jcHAKaW5kZXggZmUzODRlMy4uNGFh
YzFmMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3Zp
ZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a192aWV3LmNw
cApAQCAtNTY4LDYgKzU2OCwxOSBAQCB2b2lkIGV3a192aWV3X3RpdGxlX2NoYW5nZWQoRXZhc19P
YmplY3QqIGV3a1ZpZXcsIGNvbnN0IGNoYXIqIHRpdGxlKQogICAgIGV2YXNfb2JqZWN0X3NtYXJ0
X2NhbGxiYWNrX2NhbGwoZXdrVmlldywgInRpdGxlLGNoYW5nZWQiLCBjb25zdF9jYXN0PGNoYXIq
Pih0aXRsZSkpOwogfQogCisvKioKKyAqIEBpbnRlcm5hbAorICogVGhlIHZpZXcgcmVjZWl2ZWQg
YSBuZXcgaW50ZW50IHJlcXVlc3QuCisgKgorICogRW1pdHMgc2lnbmFsOiAiaW50ZW50LG5ldyIg
d2l0aCBwb2ludGVyIHRvIGEgRXdrX0ludGVudC4KKyAqLwordm9pZCBld2tfdmlld19pbnRlbnRf
bmV3KEV2YXNfT2JqZWN0KiBld2tWaWV3LCBjb25zdCBFd2tfSW50ZW50KiBld2tJbnRlbnQpCit7
CisjaWYgRU5BQkxFKFdFQl9JTlRFTlRTKQorICAgIGV2YXNfb2JqZWN0X3NtYXJ0X2NhbGxiYWNr
X2NhbGwoZXdrVmlldywgInRpdGxlLGNoYW5nZWQiLCBjb25zdF9jYXN0PEV3a19JbnRlbnQqPihl
d2tJbnRlbnQpKTsKKyNlbmRpZgorfQorCiB2b2lkIGV3a192aWV3X2Rpc3BsYXkoRXZhc19PYmpl
Y3QqIGV3a1ZpZXcsIGNvbnN0IEludFJlY3QmIHJlY3QpCiB7CiAgICAgRVdLX1ZJRVdfU0RfR0VU
X09SX1JFVFVSTihld2tWaWV3LCBzbWFydERhdGEpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3ZpZXcuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvZWZsL2V3a192aWV3LmgKaW5kZXggY2I1YjY1MC4uNjRkMTU3NCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3ZpZXcuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfdmlldy5oCkBAIC0yNiw2ICsyNiw3IEBACiAg
KgogICogVGhlIGZvbGxvd2luZyBzaWduYWxzIChzZWUgZXZhc19vYmplY3Rfc21hcnRfY2FsbGJh
Y2tfYWRkKCkpIGFyZSBlbWl0dGVkOgogICoKKyAqIC0gImludGVudCxuZXciLCBFd2tfSW50ZW50
X1JlcXVlc3QqOiByZXBvcnRzIG5ldyBXZWIgaW50ZW50LgogICogLSAidGl0bGUsY2hhbmdlZCIs
IGNvbnN0IGNoYXIqOiB0aXRsZSBvZiB0aGUgbWFpbiBmcmFtZSB3YXMgY2hhbmdlZC4KICAqLwog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfdmlld19s
b2FkZXJfY2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a192
aWV3X2xvYWRlcl9jbGllbnQuY3BwCmluZGV4IGU5OGUxNTQuLmI3YjU3NDkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a192aWV3X2xvYWRlcl9jbGllbnQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a192aWV3X2xvYWRl
cl9jbGllbnQuY3BwCkBAIC0yNiw2ICsyNiw3IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAKICNp
bmNsdWRlICJXS0ZyYW1lLmgiCisjaW5jbHVkZSAiZXdrX2ludGVudF9wcml2YXRlLmgiCiAjaW5j
bHVkZSAiZXdrX3ZpZXdfbG9hZGVyX2NsaWVudF9wcml2YXRlLmgiCiAjaW5jbHVkZSAiZXdrX3Zp
ZXdfcHJpdmF0ZS5oIgogI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KQEAgLTQxLDYgKzQy
LDE5IEBAIHN0YXRpYyB2b2lkIGRpZFJlY2VpdmVUaXRsZUZvckZyYW1lKFdLUGFnZVJlZiwgV0tT
dHJpbmdSZWYgdGl0bGUsIFdLRnJhbWVSZWYgZnJhCiAgICAgZXdrX3ZpZXdfdGl0bGVfY2hhbmdl
ZChld2tWaWV3LCB0b0ltcGwodGl0bGUpLT5zdHJpbmcoKS51dGY4KCkuZGF0YSgpKTsKIH0KIAor
I2lmIEVOQUJMRShXRUJfSU5URU5UUykKK3N0YXRpYyB2b2lkIGRpZFJlY2VpdmVJbnRlbnRGb3JG
cmFtZShXS1BhZ2VSZWYgcGFnZSwgV0tGcmFtZVJlZiBmcmFtZSwgV0tJbnRlbnREYXRhUmVmIGlu
dGVudCwgY29uc3Qgdm9pZCogY2xpZW50SW5mbykKK3sKKyAgICBpZiAoIVdLRnJhbWVJc01haW5G
cmFtZShmcmFtZSkpCisgICAgICAgIHJldHVybjsKKworICAgIEV2YXNfT2JqZWN0KiBld2tWaWV3
ID0gc3RhdGljX2Nhc3Q8RXZhc19PYmplY3QqPihjb25zdF9jYXN0PHZvaWQqPihjbGllbnRJbmZv
KSk7CisgICAgRXdrX0ludGVudCogZXdrSW50ZW50ID0gZXdrX2ludGVudF9uZXcoaW50ZW50KTsK
KyAgICBld2tfdmlld19pbnRlbnRfbmV3KGV3a1ZpZXcsIGV3a0ludGVudCk7CisgICAgZXdrX2lu
dGVudF91bnJlZihld2tJbnRlbnQpOworfQorI2VuZGlmCisKIHZvaWQgZXdrX3ZpZXdfbG9hZGVy
X2NsaWVudF9hdHRhY2goV0tQYWdlUmVmIHBhZ2VSZWYsIEV2YXNfT2JqZWN0KiBld2tWaWV3KQog
ewogICAgIFdLUGFnZUxvYWRlckNsaWVudCBsb2FkQ2xpZW50OwpAQCAtNDgsNSArNjIsOCBAQCB2
b2lkIGV3a192aWV3X2xvYWRlcl9jbGllbnRfYXR0YWNoKFdLUGFnZVJlZiBwYWdlUmVmLCBFdmFz
X09iamVjdCogZXdrVmlldykKICAgICBsb2FkQ2xpZW50LnZlcnNpb24gPSBrV0tQYWdlTG9hZGVy
Q2xpZW50Q3VycmVudFZlcnNpb247CiAgICAgbG9hZENsaWVudC5jbGllbnRJbmZvID0gZXdrVmll
dzsKICAgICBsb2FkQ2xpZW50LmRpZFJlY2VpdmVUaXRsZUZvckZyYW1lID0gZGlkUmVjZWl2ZVRp
dGxlRm9yRnJhbWU7CisjaWYgRU5BQkxFKFdFQl9JTlRFTlRTKQorICAgIGxvYWRDbGllbnQuZGlk
UmVjZWl2ZUludGVudEZvckZyYW1lID0gZGlkUmVjZWl2ZUludGVudEZvckZyYW1lOworI2VuZGlm
CiAgICAgV0tQYWdlU2V0UGFnZUxvYWRlckNsaWVudChwYWdlUmVmLCAmbG9hZENsaWVudCk7CiB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfdmlld19w
cml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfdmlld19wcml2
YXRlLmgKaW5kZXggNjI1OThlNC4uNDlkZDQ0MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9lZmwvZXdrX3ZpZXdfcHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvZWZsL2V3a192aWV3X3ByaXZhdGUuaApAQCAtMzAsOCArMzAsMTEgQEAg
Y2xhc3MgSW50UmVjdDsKIGNsYXNzIEludFNpemU7CiB9CiAKK3R5cGVkZWYgc3RydWN0IF9Fd2tf
SW50ZW50IEV3a19JbnRlbnQ7CisKIHZvaWQgZXdrX3ZpZXdfZGlzcGxheShFdmFzX09iamVjdCog
ZXdrVmlldywgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgcmVjdCk7CiB2b2lkIGV3a192aWV3X2lt
YWdlX2RhdGFfc2V0KEV2YXNfT2JqZWN0KiBld2tWaWV3LCB2b2lkKiBpbWFnZURhdGEsIGNvbnN0
IFdlYkNvcmU6OkludFNpemUmIHNpemUpOwordm9pZCBld2tfdmlld19pbnRlbnRfbmV3KEV2YXNf
T2JqZWN0KiBld2tWaWV3LCBjb25zdCBFd2tfSW50ZW50KiBld2tJbnRlbnQpOwogdm9pZCBld2tf
dmlld190aXRsZV9jaGFuZ2VkKEV2YXNfT2JqZWN0KiBld2tWaWV3LCBjb25zdCBjaGFyKiB0aXRs
ZSk7CiAKIEV2YXNfT2JqZWN0KiBld2tfdmlld19iYXNlX2FkZChFdmFzKiBjYW52YXMsIFdLQ29u
dGV4dFJlZiwgV0tQYWdlR3JvdXBSZWYpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>149896</attachid>
            <date>2012-06-28 00:36:21 -0700</date>
            <delta_ts>2012-06-29 01:07:26 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>89749_wk2_ewk_intent.patch</filename>
            <type>text/plain</type>
            <size>20088</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwppbmRleCA3OGRkOTk5Li5iMTgyMGEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzYg
QEAKKzIwMTItMDYtMjggIENocmlzdG9waGUgRHVtZXogIDxjaHJpc3RvcGhlLmR1bWV6QGludGVs
LmNvbT4KKworICAgICAgICBbRUZMXVtXSzJdIEFkZCBBUEkgdG8gaW5zcGVjdCBhIFdlYiBJbnRl
bnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg5NzQ5
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIEVG
TCBBUEkgdG8gaW5zcGVjdCBhIFdlYiBJbnRlbnQgYW5kIGVtaXQgYSBzaWduYWwKKyAgICAgICAg
b24gdGhlIHZpZXcgd2hlbiBhIG5ldyBpbnRlbnQgcmVxdWVzdCBpcyBtYWRlLgorCisgICAgICAg
ICogUGxhdGZvcm1FZmwuY21ha2U6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9lZmwvRVdlYktp
dDIuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2VmbC9ld2tfaW50ZW50LmNwcDogQWRkZWQu
CisgICAgICAgIChfRXdrX0ludGVudCk6CisgICAgICAgIChld2tfaW50ZW50X3JlZik6CisgICAg
ICAgIChld2tfaW50ZW50X3VucmVmKToKKyAgICAgICAgKGV3a19pbnRlbnRfYWN0aW9uX2dldCk6
CisgICAgICAgIChld2tfaW50ZW50X3R5cGVfZ2V0KToKKyAgICAgICAgKGV3a19pbnRlbnRfc2Vy
dmljZV9nZXQpOgorICAgICAgICAoZXdrX2ludGVudF9zdWdnZXN0aW9uc19nZXQpOgorICAgICAg
ICAoZXdrX2ludGVudF9leHRyYV9nZXQpOgorICAgICAgICAoZXdrX2ludGVudF9leHRyYV9uYW1l
c19nZXQpOgorICAgICAgICAoZXdrX2ludGVudF9uZXcpOgorICAgICAgICAqIFVJUHJvY2Vzcy9B
UEkvZWZsL2V3a19pbnRlbnQuaDogQWRkZWQuCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9lZmwv
ZXdrX2ludGVudF9wcml2YXRlLmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvZWZsL2V3a192aWV3X2xvYWRlcl9jbGllbnQuY3BwLgorICAgICAgICAqIFVJUHJvY2Vz
cy9BUEkvZWZsL2V3a192aWV3LmNwcDoKKyAgICAgICAgKGV3a192aWV3X2ludGVudF9yZXF1ZXN0
X25ldyk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3ZpZXcuaDoKKyAgICAgICAg
KiBVSVByb2Nlc3MvQVBJL2VmbC9ld2tfdmlld19sb2FkZXJfY2xpZW50LmNwcDoKKyAgICAgICAg
KGRpZFJlY2VpdmVJbnRlbnRGb3JGcmFtZSk6CisgICAgICAgIChld2tfdmlld19sb2FkZXJfY2xp
ZW50X2F0dGFjaCk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3ZpZXdfcHJpdmF0
ZS5oOgorCiAyMDEyLTA2LTI3ICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNnYXJjaWFAaWdhbGlh
LmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLiBGaXggdGhlIGJ1aWxkIHdpdGhvdXQgVEVYVFVS
RV9NQVBQRVJfR0wuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybUVmbC5jbWFr
ZSBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtRWZsLmNtYWtlCmluZGV4IDVmNmUwOWUuLjljMTg4
MTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtRWZsLmNtYWtlCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1BsYXRmb3JtRWZsLmNtYWtlCkBAIC0zMiw2ICszMiw3IEBAIExJU1QoQVBQ
RU5EIFdlYktpdDJfU09VUkNFUwogCiAgICAgVUlQcm9jZXNzL0FQSS9lZmwvUGFnZUNsaWVudElt
cGwuY3BwCiAgICAgVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2NvbnRleHQuY3BwCisgICAgVUlQcm9j
ZXNzL0FQSS9lZmwvZXdrX2ludGVudC5jcHAKICAgICBVSVByb2Nlc3MvQVBJL2VmbC9ld2tfdmll
dy5jcHAKICAgICBVSVByb2Nlc3MvQVBJL2VmbC9ld2tfdmlld19sb2FkZXJfY2xpZW50LmNwcAog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9FV2ViS2l0Mi5o
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvRVdlYktpdDIuaAppbmRleCBlMTQz
Yjc4Li41MWRmYzBiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2Vm
bC9FV2ViS2l0Mi5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL0VXZWJL
aXQyLmgKQEAgLTI4LDYgKzI4LDcgQEAKICNkZWZpbmUgRVdlYktpdDJfaAogCiAjaW5jbHVkZSAi
ZXdrX2NvbnRleHQuaCIKKyNpbmNsdWRlICJld2tfaW50ZW50LmgiCiAjaW5jbHVkZSAiZXdrX3Zp
ZXcuaCIKIAogI2VuZGlmIC8vIEVXZWJLaXQyX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19pbnRlbnQuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9lZmwvZXdrX2ludGVudC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMC4uZjk0ODYzZQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvZWZsL2V3a19pbnRlbnQuY3BwCkBAIC0wLDAgKzEsMTk0IEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDEyIEludGVsIENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQg
SVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiZXdrX2ludGVudC5oIgorCisj
aW5jbHVkZSAiV0tBUElDYXN0LmgiCisjaW5jbHVkZSAiV0tBcnJheS5oIgorI2luY2x1ZGUgIldL
RGljdGlvbmFyeS5oIgorI2luY2x1ZGUgIldLSW50ZW50RGF0YS5oIgorI2luY2x1ZGUgIldLUmV0
YWluUHRyLmgiCisjaW5jbHVkZSAiV0tTdHJpbmcuaCIKKyNpbmNsdWRlICJXS1VSTC5oIgorI2lu
Y2x1ZGUgImV3a19pbnRlbnRfcHJpdmF0ZS5oIgorI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcu
aD4KKwordXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKKworLyoqCisgKiBcc3RydWN0ICBfRXdrX0lu
dGVudAorICogQGJyaWVmICAgQ29udGFpbnMgdGhlIGludGVudCBkYXRhLgorICovCitzdHJ1Y3Qg
X0V3a19JbnRlbnQgeworICAgIHVuc2lnbmVkIGludCBfX3JlZjsgLyoqPCB0aGUgcmVmZXJlbmNl
IGNvdW50IG9mIHRoZSBvYmplY3QgKi8KKyNpZiBFTkFCTEUoV0VCX0lOVEVOVFMpCisgICAgV0tS
ZXRhaW5QdHI8V0tJbnRlbnREYXRhUmVmPiB3a0ludGVudDsKKyNlbmRpZgorICAgIGNvbnN0IGNo
YXIqIGFjdGlvbjsKKyAgICBjb25zdCBjaGFyKiB0eXBlOworICAgIGNvbnN0IGNoYXIqIHNlcnZp
Y2U7Cit9OworCisjZGVmaW5lIEVXS19JTlRFTlRfV0tfR0VUX09SX1JFVFVSTihpbnRlbnQsIHdr
SW50ZW50XywgLi4uKSAgICBcCisgICAgaWYgKCEoaW50ZW50KSkgeyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgIEVJTkFfTE9HX0NSSVQoImludGVu
dCBpcyBOVUxMLiIpOyAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgIHJldHVybiBfX1ZB
X0FSR1NfXzsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgfSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisg
ICAgaWYgKCEoaW50ZW50KS0+d2tJbnRlbnQpIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBcCisgICAgICAgIEVJTkFfTE9HX0NSSVQoImludGVudC0+d2tJbnRlbnQgaXMgTlVMTC4i
KTsgICAgICAgICAgICBcCisgICAgICAgIHJldHVybiBfX1ZBX0FSR1NfXzsgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgfSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgV0tJbnRlbnREYXRhUmVmIHdr
SW50ZW50XyA9IChpbnRlbnQpLT53a0ludGVudC5nZXQoKQorCit2b2lkIGV3a19pbnRlbnRfcmVm
KEV3a19JbnRlbnQqIGludGVudCkKK3sKKyNpZiBFTkFCTEUoV0VCX0lOVEVOVFMpCisgICAgRUlO
QV9TQUZFVFlfT05fTlVMTF9SRVRVUk4oaW50ZW50KTsKKyAgICArK2ludGVudC0+X19yZWY7Cisj
ZW5kaWYKK30KKwordm9pZCBld2tfaW50ZW50X3VucmVmKEV3a19JbnRlbnQqIGludGVudCkKK3sK
KyNpZiBFTkFCTEUoV0VCX0lOVEVOVFMpCisgICAgRUlOQV9TQUZFVFlfT05fTlVMTF9SRVRVUk4o
aW50ZW50KTsKKworICAgIGlmICgtLWludGVudC0+X19yZWYpCisgICAgICAgIHJldHVybjsKKwor
ICAgIGVpbmFfc3RyaW5nc2hhcmVfZGVsKGludGVudC0+YWN0aW9uKTsKKyAgICBlaW5hX3N0cmlu
Z3NoYXJlX2RlbChpbnRlbnQtPnR5cGUpOworICAgIGVpbmFfc3RyaW5nc2hhcmVfZGVsKGludGVu
dC0+c2VydmljZSk7CisgICAgZGVsZXRlIGludGVudDsKKyNlbmRpZgorfQorCitjb25zdCBjaGFy
KiBld2tfaW50ZW50X2FjdGlvbl9nZXQoY29uc3QgRXdrX0ludGVudCogaW50ZW50KQoreworI2lm
IEVOQUJMRShXRUJfSU5URU5UUykKKyAgICBFV0tfSU5URU5UX1dLX0dFVF9PUl9SRVRVUk4oaW50
ZW50LCB3a0ludGVudCwgMCk7CisKKyAgICBXS1JldGFpblB0cjxXS1N0cmluZ1JlZj4gd2tBY3Rp
b24oQWRvcHRXSywgV0tJbnRlbnREYXRhQ29weUFjdGlvbih3a0ludGVudCkpOworICAgIEV3a19J
bnRlbnQqIGV3a0ludGVudCA9IGNvbnN0X2Nhc3Q8RXdrX0ludGVudCo+KGludGVudCk7CisgICAg
ZWluYV9zdHJpbmdzaGFyZV9yZXBsYWNlKCZld2tJbnRlbnQtPmFjdGlvbiwgdG9JbXBsKHdrQWN0
aW9uLmdldCgpKS0+c3RyaW5nKCkudXRmOCgpLmRhdGEoKSk7CisgICAgcmV0dXJuIGludGVudC0+
YWN0aW9uOworI2Vsc2UKKyAgICByZXR1cm4gMDsKKyNlbmRpZgorfQorCitjb25zdCBjaGFyKiBl
d2tfaW50ZW50X3R5cGVfZ2V0KGNvbnN0IEV3a19JbnRlbnQqIGludGVudCkKK3sKKyNpZiBFTkFC
TEUoV0VCX0lOVEVOVFMpCisgICAgRVdLX0lOVEVOVF9XS19HRVRfT1JfUkVUVVJOKGludGVudCwg
d2tJbnRlbnQsIDApOworCisgICAgV0tSZXRhaW5QdHI8V0tTdHJpbmdSZWY+IHdrVHlwZShBZG9w
dFdLLCBXS0ludGVudERhdGFDb3B5VHlwZSh3a0ludGVudCkpOworICAgIEV3a19JbnRlbnQqIGV3
a0ludGVudCA9IGNvbnN0X2Nhc3Q8RXdrX0ludGVudCo+KGludGVudCk7CisgICAgZWluYV9zdHJp
bmdzaGFyZV9yZXBsYWNlKCZld2tJbnRlbnQtPnR5cGUsIHRvSW1wbCh3a1R5cGUuZ2V0KCkpLT5z
dHJpbmcoKS51dGY4KCkuZGF0YSgpKTsKKyAgICByZXR1cm4gaW50ZW50LT50eXBlOworI2Vsc2UK
KyAgICByZXR1cm4gMDsKKyNlbmRpZgorfQorCitjb25zdCBjaGFyKiBld2tfaW50ZW50X3NlcnZp
Y2VfZ2V0KGNvbnN0IEV3a19JbnRlbnQqIGludGVudCkKK3sKKyNpZiBFTkFCTEUoV0VCX0lOVEVO
VFMpCisgICAgRVdLX0lOVEVOVF9XS19HRVRfT1JfUkVUVVJOKGludGVudCwgd2tJbnRlbnQsIDAp
OworCisgICAgV0tSZXRhaW5QdHI8V0tVUkxSZWY+IHdrU2VydmljZShBZG9wdFdLLCBXS0ludGVu
dERhdGFDb3B5U2VydmljZSh3a0ludGVudCkpOworICAgIEV3a19JbnRlbnQqIGV3a0ludGVudCA9
IGNvbnN0X2Nhc3Q8RXdrX0ludGVudCo+KGludGVudCk7CisgICAgZWluYV9zdHJpbmdzaGFyZV9y
ZXBsYWNlKCZld2tJbnRlbnQtPnNlcnZpY2UsIHRvSW1wbCh3a1NlcnZpY2UuZ2V0KCkpLT5zdHJp
bmcoKS51dGY4KCkuZGF0YSgpKTsKKyAgICByZXR1cm4gaW50ZW50LT5zZXJ2aWNlOworI2Vsc2UK
KyAgICByZXR1cm4gMDsKKyNlbmRpZgorfQorCitFaW5hX0xpc3QqIGV3a19pbnRlbnRfc3VnZ2Vz
dGlvbnNfZ2V0KGNvbnN0IEV3a19JbnRlbnQqIGludGVudCkKK3sKKyNpZiBFTkFCTEUoV0VCX0lO
VEVOVFMpCisgICAgRVdLX0lOVEVOVF9XS19HRVRfT1JfUkVUVVJOKGludGVudCwgd2tJbnRlbnQs
IDApOworCisgICAgRWluYV9MaXN0KiBsaXN0T2ZTdWdnZXN0aW9ucyA9IDA7CisgICAgV0tSZXRh
aW5QdHI8V0tBcnJheVJlZj4gd2tTdWdnZXN0aW9ucyhBZG9wdFdLLCBXS0ludGVudERhdGFDb3B5
U3VnZ2VzdGlvbnMod2tJbnRlbnQpKTsKKyAgICBjb25zdCBzaXplX3QgbnVtU3VnZ2VzdGlvbnMg
PSBXS0FycmF5R2V0U2l6ZSh3a1N1Z2dlc3Rpb25zLmdldCgpKTsKKyAgICBmb3IgKHNpemVfdCBp
ID0gMDsgaSA8IG51bVN1Z2dlc3Rpb25zOyArK2kpIHsKKyAgICAgICAgV0tVUkxSZWYgd2tTdWdn
ZXN0aW9uID0gc3RhdGljX2Nhc3Q8V0tVUkxSZWY+KFdLQXJyYXlHZXRJdGVtQXRJbmRleCh3a1N1
Z2dlc3Rpb25zLmdldCgpLCBpKSk7CisgICAgICAgIGxpc3RPZlN1Z2dlc3Rpb25zID0gZWluYV9s
aXN0X2FwcGVuZChsaXN0T2ZTdWdnZXN0aW9ucywgc3RyZHVwKHRvSW1wbCh3a1N1Z2dlc3Rpb24p
LT5zdHJpbmcoKS51dGY4KCkuZGF0YSgpKSk7CisgICAgfQorICAgIHJldHVybiBsaXN0T2ZTdWdn
ZXN0aW9uczsKKyNlbHNlCisgICAgcmV0dXJuIDA7CisjZW5kaWYKK30KKworY2hhciogZXdrX2lu
dGVudF9leHRyYV9nZXQoY29uc3QgRXdrX0ludGVudCogaW50ZW50LCBjb25zdCBjaGFyKiBrZXkp
Cit7CisjaWYgRU5BQkxFKFdFQl9JTlRFTlRTKQorICAgIEVXS19JTlRFTlRfV0tfR0VUX09SX1JF
VFVSTihpbnRlbnQsIHdrSW50ZW50LCAwKTsKKworICAgIFdLUmV0YWluUHRyPFdLU3RyaW5nUmVm
PiBrZXlSZWYgPSBhZG9wdFdLKFdLU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKGtleSkpOwor
ICAgIFdLUmV0YWluUHRyPFdLU3RyaW5nUmVmPiB3a1ZhbHVlKEFkb3B0V0ssIFdLSW50ZW50RGF0
YUNvcHlFeHRyYSh3a0ludGVudCwga2V5UmVmLmdldCgpKSk7CisgICAgU3RyaW5nIHZhbHVlID0g
dG9JbXBsKHdrVmFsdWUuZ2V0KCkpLT5zdHJpbmcoKTsKKyAgICBpZiAodmFsdWUuaXNFbXB0eSgp
KQorICAgICAgICByZXR1cm4gMDsKKyAgICByZXR1cm4gc3RyZHVwKHZhbHVlLnV0ZjgoKS5kYXRh
KCkpOworI2Vsc2UKKyAgICByZXR1cm4gMDsKKyNlbmRpZgorfQorCitFaW5hX0xpc3QqIGV3a19p
bnRlbnRfZXh0cmFfbmFtZXNfZ2V0KGNvbnN0IEV3a19JbnRlbnQqIGludGVudCkKK3sKKyNpZiBF
TkFCTEUoV0VCX0lOVEVOVFMpCisgICAgRVdLX0lOVEVOVF9XS19HRVRfT1JfUkVUVVJOKGludGVu
dCwgd2tJbnRlbnQsIDApOworCisgICAgRWluYV9MaXN0KiBsaXN0T2ZLZXlzID0gMDsKKyAgICBX
S1JldGFpblB0cjxXS0RpY3Rpb25hcnlSZWY+IHdrRXh0cmFzKEFkb3B0V0ssIFdLSW50ZW50RGF0
YUNvcHlFeHRyYXMod2tJbnRlbnQpKTsKKyAgICBXS1JldGFpblB0cjxXS0FycmF5UmVmPiB3a0tl
eXMoQWRvcHRXSywgV0tEaWN0aW9uYXJ5Q29weUtleXMod2tFeHRyYXMuZ2V0KCkpKTsKKyAgICBj
b25zdCBzaXplX3QgbnVtS2V5cyA9IFdLQXJyYXlHZXRTaXplKHdrS2V5cy5nZXQoKSk7CisgICAg
Zm9yIChzaXplX3QgaSA9IDA7IGkgPCBudW1LZXlzOyArK2kpIHsKKyAgICAgICAgV0tTdHJpbmdS
ZWYgd2tLZXkgPSBzdGF0aWNfY2FzdDxXS1N0cmluZ1JlZj4oV0tBcnJheUdldEl0ZW1BdEluZGV4
KHdrS2V5cy5nZXQoKSwgaSkpOworICAgICAgICBsaXN0T2ZLZXlzID0gZWluYV9saXN0X2FwcGVu
ZChsaXN0T2ZLZXlzLCBzdHJkdXAodG9JbXBsKHdrS2V5KS0+c3RyaW5nKCkudXRmOCgpLmRhdGEo
KSkpOworICAgIH0KKyAgICByZXR1cm4gbGlzdE9mS2V5czsKKyNlbHNlCisgICAgcmV0dXJuIDA7
CisjZW5kaWYKK30KKworI2lmIEVOQUJMRShXRUJfSU5URU5UUykKK0V3a19JbnRlbnQqIGV3a19p
bnRlbnRfbmV3KFdLSW50ZW50RGF0YVJlZiBpbnRlbnREYXRhKQoreworICAgIEVJTkFfU0FGRVRZ
X09OX05VTExfUkVUVVJOX1ZBTChpbnRlbnREYXRhLCAwKTsKKworICAgIEV3a19JbnRlbnQqIGV3
a0ludGVudCA9IHN0YXRpY19jYXN0PEV3a19JbnRlbnQqPihjYWxsb2MoMSwgc2l6ZW9mKEV3a19J
bnRlbnQpKSk7CisgICAgZXdrSW50ZW50LT5fX3JlZiA9IDE7CisgICAgZXdrSW50ZW50LT53a0lu
dGVudCA9IGludGVudERhdGE7CisgICAgcmV0dXJuIGV3a0ludGVudDsKK30KKyNlbmRpZgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2ludGVudC5oIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2ludGVudC5oCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmZkY2ZlMDAKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfaW50ZW50LmgKQEAgLTAsMCArMSwxMzYg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgSW50ZWwgQ29ycG9yYXRpb24uIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
CisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovCisKKy8qKgorICogQGZpbGUgICAgZXdrX2ludGVudC5oCisg
KiBAYnJpZWYgICBEZXNjcmliZXMgdGhlIEV3ayBJbnRlbnQgQVBJLgorICovCisKKyNpZm5kZWYg
ZXdrX2ludGVudF9oCisjZGVmaW5lIGV3a19pbnRlbnRfaAorCisjaW5jbHVkZSA8RWluYS5oPgor
CisjaWZkZWYgX19jcGx1c3BsdXMKK2V4dGVybiAiQyIgeworI2VuZGlmCisKKy8qKiBDcmVhdGVz
IGEgdHlwZSBuYW1lIGZvciBfRXdrX0ludGVudCAqLwordHlwZWRlZiBzdHJ1Y3QgX0V3a19JbnRl
bnQgRXdrX0ludGVudDsKKworLyoqCisgKiBJbmNyZWFzZXMgdGhlIHJlZmVyZW5jZSBjb3VudCBv
ZiB0aGUgZ2l2ZW4gb2JqZWN0LgorICoKKyAqIEBwYXJhbSBpbnRlbnQgdGhlIGludGVudCBvYmpl
Y3QgdG8gaW5jcmVhc2UgdGhlIHJlZmVyZW5jZSBjb3VudAorICovCitFQVBJIHZvaWQgZXdrX2lu
dGVudF9yZWYoRXdrX0ludGVudCAqaW50ZW50KTsKKworLyoqCisgKiBEZWNyZWFzZXMgdGhlIHJl
ZmVyZW5jZSBjb3VudCBvZiB0aGUgZ2l2ZW4gb2JqZWN0LCBwb3NzaWJseSBmcmVlaW5nIGl0Lgor
ICoKKyAqIFdoZW4gdGhlIHJlZmVyZW5jZSBjb3VudCBpdCdzIHJlYWNoZWQgMCwgdGhlIGludGVu
dCBpcyBmcmVlZC4KKyAqCisgKiBAcGFyYW0gaW50ZW50IHRoZSBpbnRlbnQgb2JqZWN0IHRvIGRl
Y3JlYXNlIHRoZSByZWZlcmVuY2UgY291bnQKKyAqLworRUFQSSB2b2lkIGV3a19pbnRlbnRfdW5y
ZWYoRXdrX0ludGVudCAqaW50ZW50KTsKKworLyoqCisgKiBRdWVyeSBhY3Rpb24gZm9yIHRoaXMg
aW50ZW50LgorICoKKyAqIEBwYXJhbSBpbnRlbnQgaW50ZW50IGl0ZW0gdG8gcXVlcnkuCisgKgor
ICogQHJldHVybiB0aGUgYWN0aW9uIHBvaW50ZXIsIHRoYXQgbWF5IGJlIEBjIE5VTEwuIFRoaXMg
cG9pbnRlciBpcworICogICAgICAgICBndWFyYW50ZWVkIHRvIGJlIGVpbmFfc3RyaW5nc2hhcmUs
IHNvIHdoZW5ldmVyIHBvc3NpYmxlCisgKiAgICAgICAgIHNhdmUgeW91cnNlbGYgc29tZSBjcHUg
Y3ljbGVzIGFuZCB1c2UKKyAqICAgICAgICAgZWluYV9zdHJpbmdzaGFyZV9yZWYoKSBpbnN0ZWFk
IG9mIGVpbmFfc3RyaW5nc2hhcmVfYWRkKCkgb3IKKyAqICAgICAgICAgc3RyZHVwKCkuCisgKi8K
K0VBUEkgY29uc3QgY2hhciAqZXdrX2ludGVudF9hY3Rpb25fZ2V0KGNvbnN0IEV3a19JbnRlbnQg
KmludGVudCk7CisKKy8qKgorICogUXVlcnkgdHlwZSBmb3IgdGhpcyBpbnRlbnQuCisgKgorICog
QHBhcmFtIGludGVudCBpbnRlbnQgaXRlbSB0byBxdWVyeS4KKyAqCisgKiBAcmV0dXJuIHRoZSB0
eXBlIHBvaW50ZXIsIHRoYXQgbWF5IGJlIEBjIE5VTEwuIFRoaXMgcG9pbnRlciBpcworICogICAg
ICAgICBndWFyYW50ZWVkIHRvIGJlIGVpbmFfc3RyaW5nc2hhcmUsIHNvIHdoZW5ldmVyIHBvc3Np
YmxlCisgKiAgICAgICAgIHNhdmUgeW91cnNlbGYgc29tZSBjcHUgY3ljbGVzIGFuZCB1c2UKKyAq
ICAgICAgICAgZWluYV9zdHJpbmdzaGFyZV9yZWYoKSBpbnN0ZWFkIG9mIGVpbmFfc3RyaW5nc2hh
cmVfYWRkKCkgb3IKKyAqICAgICAgICAgc3RyZHVwKCkuCisgKi8KK0VBUEkgY29uc3QgY2hhciAq
ZXdrX2ludGVudF90eXBlX2dldChjb25zdCBFd2tfSW50ZW50ICppbnRlbnQpOworCisvKioKKyAq
IFF1ZXJ5IHNlcnZpY2UgZm9yIHRoaXMgaW50ZW50LgorICoKKyAqIEBwYXJhbSBpbnRlbnQgaW50
ZW50IGl0ZW0gdG8gcXVlcnkuCisgKgorICogQHJldHVybiB0aGUgc2VydmljZSBwb2ludGVyLCB0
aGF0IG1heSBiZSBAYyBOVUxMLiBUaGlzIHBvaW50ZXIgaXMKKyAqICAgICAgICAgZ3VhcmFudGVl
ZCB0byBiZSBlaW5hX3N0cmluZ3NoYXJlLCBzbyB3aGVuZXZlciBwb3NzaWJsZQorICogICAgICAg
ICBzYXZlIHlvdXJzZWxmIHNvbWUgY3B1IGN5Y2xlcyBhbmQgdXNlCisgKiAgICAgICAgIGVpbmFf
c3RyaW5nc2hhcmVfcmVmKCkgaW5zdGVhZCBvZiBlaW5hX3N0cmluZ3NoYXJlX2FkZCgpIG9yCisg
KiAgICAgICAgIHN0cmR1cCgpLgorICovCitFQVBJIGNvbnN0IGNoYXIgKmV3a19pbnRlbnRfc2Vy
dmljZV9nZXQoY29uc3QgRXdrX0ludGVudCAqaW50ZW50KTsKKworLyoqCisgKiBRdWVyeSBzdWdn
ZXN0aW9ucyBmb3IgdGhpcyBpbnRlbnQuCisgKgorICogVGhpcyBmdW5jdGlvbiBwcm92aWRlcyBh
IGxpc3Qgb2YgKGFic29sdXRlKSBzdWdnZXN0ZWQgU2VydmljZSBVUkxzIG9mIHdoaWNoIHRoZSBD
bGllbnQKKyAqIGlzIGF3YXJlIGFuZCB3aGljaCBjYW4gaGFuZGxlIHRoZSBpbnRlbnQuCisgKgor
ICogQHBhcmFtIGludGVudCBpbnRlbnQgaXRlbSB0byBxdWVyeS4KKyAqCisgKiBAcmV0dXJuIEBj
IEVpbmFfTGlzdCB3aXRoIHN1Z2dlc3RlZCBzZXJ2aWNlIFVSTHMgb24gc3VjY2Vzcywgb3IgQGMg
MCBvbiBmYWlsdXJlLAorICogICAgICAgICB0aGUgRWluYV9MaXN0IGFuZCBpdHMgaXRlbXMgc2hv
dWxkIGJlIGZyZWVkIGFmdGVyIHVzZS4gVXNlIGZyZWUoKSB0byBmcmVlIHRoZQorICogICAgICAg
ICBpdGVtcy4KKyAqLworRUFQSSBFaW5hX0xpc3QgKmV3a19pbnRlbnRfc3VnZ2VzdGlvbnNfZ2V0
KGNvbnN0IEV3a19JbnRlbnQgKmludGVudCk7CisKKy8qKgorICogUmV0cmlldmVzIHRoZSB2YWx1
ZSAoaWYgYW55KSBmcm9tIHRoZSBleHRyYSBkYXRhIGRpY3Rpb25hcnkgdGhpcyBpbnRlbnQgd2Fz
IGNvbnN0cnVjdGVkIHdpdGguCisgKgorICogQHBhcmFtIGludGVudCBpbnRlbnQgaXRlbSB0byBx
dWVyeS4KKyAqIEBwYXJhbSBrZXkga2V5IHRvIHF1ZXJ5IGluIHRoZSBkaWN0aW9uYXJ5LgorICoK
KyAqIEByZXR1cm4gYSBuZXdseSBhbGxvY2F0ZWQgc3RyaW5nIG9yIEBjIE5VTEwgaW4gY2FzZSBv
ZiBlcnJvciBvciBpZiB0aGUga2V5IGRvZXMgbm90IGV4aXN0LgorICovCitFQVBJIGNoYXIgKmV3
a19pbnRlbnRfZXh0cmFfZ2V0KGNvbnN0IEV3a19JbnRlbnQgKmludGVudCwgY29uc3QgY2hhciAq
a2V5KTsKKworLyoqCisgKiBSZXRyaWV2ZSBhIGxpc3Qgb2YgdGhlIG5hbWVzIG9mIGV4dHJhIG1l
dGFkYXRhIGFzc29jaWF0ZWQgd2l0aCB0aGUgaW50ZW50LgorICoKKyAqIEBwYXJhbSBpbnRlbnQg
aW50ZW50IGl0ZW0gdG8gcXVlcnkuCisgKgorICogQHJldHVybiBAYyBFaW5hX0xpc3Qgd2l0aCBu
YW1lcyBvZiBleHRyYSBtZXRhZGF0YSBvbiBzdWNjZXNzLCBvciBAYyAwIG9uIGZhaWx1cmUsCisg
KiAgICAgICAgIHRoZSBFaW5hX0xpc3QgYW5kIGl0cyBpdGVtcyBzaG91bGQgYmUgZnJlZWQgYWZ0
ZXIgdXNlLiBVc2UgZnJlZSgpIHRvIGZyZWUgdGhlCisgKiAgICAgICAgIGl0ZW1zLgorICovCitF
QVBJIEVpbmFfTGlzdCAqZXdrX2ludGVudF9leHRyYV9uYW1lc19nZXQoY29uc3QgRXdrX0ludGVu
dCAqaW50ZW50KTsKKworI2lmZGVmIF9fY3BsdXNwbHVzCit9CisjZW5kaWYKKyNlbmRpZiAvLyBl
d2tfaW50ZW50X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZs
L2V3a19pbnRlbnRfcHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwv
ZXdrX2ludGVudF9wcml2YXRlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4u
YWQzMDRkMQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
ZWZsL2V3a19pbnRlbnRfcHJpdmF0ZS5oCkBAIC0wLDAgKzEsMzggQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMTIgSW50ZWwgQ29ycG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
CisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNpZm5kZWYgZXdrX2ludGVudF9wcml2YXRlX2gKKyNkZWZpbmUgZXdrX2ludGVudF9w
cml2YXRlX2gKKworI2lmIEVOQUJMRShXRUJfSU5URU5UUykKKworI2luY2x1ZGUgImV3a19pbnRl
bnQuaCIKKyNpbmNsdWRlIDxXZWJLaXQyL1dLQmFzZS5oPgorCitFd2tfSW50ZW50KiBld2tfaW50
ZW50X25ldyhXS0ludGVudERhdGFSZWYgaW50ZW50RGF0YSk7CisKKyNlbmRpZiAvLyBFTkFCTEUo
V0VCX0lOVEVOVFMpCisKKyNlbmRpZiAvLyBld2tfaW50ZW50X3ByaXZhdGVfaApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3ZpZXcuY3BwIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3ZpZXcuY3BwCmluZGV4IGZlMzg0ZTMuLmEx
OTZhOTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a192
aWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfdmlldy5j
cHAKQEAgLTU2OCw2ICs1NjgsMTkgQEAgdm9pZCBld2tfdmlld190aXRsZV9jaGFuZ2VkKEV2YXNf
T2JqZWN0KiBld2tWaWV3LCBjb25zdCBjaGFyKiB0aXRsZSkKICAgICBldmFzX29iamVjdF9zbWFy
dF9jYWxsYmFja19jYWxsKGV3a1ZpZXcsICJ0aXRsZSxjaGFuZ2VkIiwgY29uc3RfY2FzdDxjaGFy
Kj4odGl0bGUpKTsKIH0KIAorLyoqCisgKiBAaW50ZXJuYWwKKyAqIFRoZSB2aWV3IHJlY2VpdmVk
IGEgbmV3IGludGVudCByZXF1ZXN0LgorICoKKyAqIEVtaXRzIHNpZ25hbDogImludGVudCxyZXF1
ZXN0LG5ldyIgd2l0aCBwb2ludGVyIHRvIGEgRXdrX0ludGVudC4KKyAqLwordm9pZCBld2tfdmll
d19pbnRlbnRfcmVxdWVzdF9uZXcoRXZhc19PYmplY3QqIGV3a1ZpZXcsIGNvbnN0IEV3a19JbnRl
bnQqIGV3a0ludGVudCkKK3sKKyNpZiBFTkFCTEUoV0VCX0lOVEVOVFMpCisgICAgZXZhc19vYmpl
Y3Rfc21hcnRfY2FsbGJhY2tfY2FsbChld2tWaWV3LCAiaW50ZW50LHJlcXVlc3QsbmV3IiwgY29u
c3RfY2FzdDxFd2tfSW50ZW50Kj4oZXdrSW50ZW50KSk7CisjZW5kaWYKK30KKwogdm9pZCBld2tf
dmlld19kaXNwbGF5KEV2YXNfT2JqZWN0KiBld2tWaWV3LCBjb25zdCBJbnRSZWN0JiByZWN0KQog
ewogICAgIEVXS19WSUVXX1NEX0dFVF9PUl9SRVRVUk4oZXdrVmlldywgc21hcnREYXRhKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a192aWV3LmggYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfdmlldy5oCmluZGV4IGNiNWI2NTAu
LjRkZjhkMTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3
a192aWV3LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3ZpZXcu
aApAQCAtMjYsNiArMjYsNyBAQAogICoKICAqIFRoZSBmb2xsb3dpbmcgc2lnbmFscyAoc2VlIGV2
YXNfb2JqZWN0X3NtYXJ0X2NhbGxiYWNrX2FkZCgpKSBhcmUgZW1pdHRlZDoKICAqCisgKiAtICJp
bnRlbnQscmVxdWVzdCxuZXciLCBFd2tfSW50ZW50X1JlcXVlc3QqOiByZXBvcnRzIG5ldyBXZWIg
aW50ZW50IHJlcXVlc3QuCiAgKiAtICJ0aXRsZSxjaGFuZ2VkIiwgY29uc3QgY2hhcio6IHRpdGxl
IG9mIHRoZSBtYWluIGZyYW1lIHdhcyBjaGFuZ2VkLgogICovCiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a192aWV3X2xvYWRlcl9jbGllbnQuY3BwIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3ZpZXdfbG9hZGVyX2NsaWVudC5j
cHAKaW5kZXggZTk4ZTE1NC4uYTAwZWU2YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9lZmwvZXdrX3ZpZXdfbG9hZGVyX2NsaWVudC5jcHAKKysrIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3ZpZXdfbG9hZGVyX2NsaWVudC5jcHAKQEAgLTI2
LDYgKzI2LDcgQEAKICNpbmNsdWRlICJjb25maWcuaCIKIAogI2luY2x1ZGUgIldLRnJhbWUuaCIK
KyNpbmNsdWRlICJld2tfaW50ZW50X3ByaXZhdGUuaCIKICNpbmNsdWRlICJld2tfdmlld19sb2Fk
ZXJfY2xpZW50X3ByaXZhdGUuaCIKICNpbmNsdWRlICJld2tfdmlld19wcml2YXRlLmgiCiAjaW5j
bHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgpAQCAtNDEsNiArNDIsMTYgQEAgc3RhdGljIHZvaWQg
ZGlkUmVjZWl2ZVRpdGxlRm9yRnJhbWUoV0tQYWdlUmVmLCBXS1N0cmluZ1JlZiB0aXRsZSwgV0tG
cmFtZVJlZiBmcmEKICAgICBld2tfdmlld190aXRsZV9jaGFuZ2VkKGV3a1ZpZXcsIHRvSW1wbCh0
aXRsZSktPnN0cmluZygpLnV0ZjgoKS5kYXRhKCkpOwogfQogCisjaWYgRU5BQkxFKFdFQl9JTlRF
TlRTKQorc3RhdGljIHZvaWQgZGlkUmVjZWl2ZUludGVudEZvckZyYW1lKFdLUGFnZVJlZiBwYWdl
LCBXS0ZyYW1lUmVmIGZyYW1lLCBXS0ludGVudERhdGFSZWYgaW50ZW50LCBjb25zdCB2b2lkKiBj
bGllbnRJbmZvKQoreworICAgIEV2YXNfT2JqZWN0KiBld2tWaWV3ID0gc3RhdGljX2Nhc3Q8RXZh
c19PYmplY3QqPihjb25zdF9jYXN0PHZvaWQqPihjbGllbnRJbmZvKSk7CisgICAgRXdrX0ludGVu
dCogZXdrSW50ZW50ID0gZXdrX2ludGVudF9uZXcoaW50ZW50KTsKKyAgICBld2tfdmlld19pbnRl
bnRfcmVxdWVzdF9uZXcoZXdrVmlldywgZXdrSW50ZW50KTsKKyAgICBld2tfaW50ZW50X3VucmVm
KGV3a0ludGVudCk7Cit9CisjZW5kaWYKKwogdm9pZCBld2tfdmlld19sb2FkZXJfY2xpZW50X2F0
dGFjaChXS1BhZ2VSZWYgcGFnZVJlZiwgRXZhc19PYmplY3QqIGV3a1ZpZXcpCiB7CiAgICAgV0tQ
YWdlTG9hZGVyQ2xpZW50IGxvYWRDbGllbnQ7CkBAIC00OCw1ICs1OSw4IEBAIHZvaWQgZXdrX3Zp
ZXdfbG9hZGVyX2NsaWVudF9hdHRhY2goV0tQYWdlUmVmIHBhZ2VSZWYsIEV2YXNfT2JqZWN0KiBl
d2tWaWV3KQogICAgIGxvYWRDbGllbnQudmVyc2lvbiA9IGtXS1BhZ2VMb2FkZXJDbGllbnRDdXJy
ZW50VmVyc2lvbjsKICAgICBsb2FkQ2xpZW50LmNsaWVudEluZm8gPSBld2tWaWV3OwogICAgIGxv
YWRDbGllbnQuZGlkUmVjZWl2ZVRpdGxlRm9yRnJhbWUgPSBkaWRSZWNlaXZlVGl0bGVGb3JGcmFt
ZTsKKyNpZiBFTkFCTEUoV0VCX0lOVEVOVFMpCisgICAgbG9hZENsaWVudC5kaWRSZWNlaXZlSW50
ZW50Rm9yRnJhbWUgPSBkaWRSZWNlaXZlSW50ZW50Rm9yRnJhbWU7CisjZW5kaWYKICAgICBXS1Bh
Z2VTZXRQYWdlTG9hZGVyQ2xpZW50KHBhZ2VSZWYsICZsb2FkQ2xpZW50KTsKIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a192aWV3X3ByaXZhdGUuaCBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a192aWV3X3ByaXZhdGUuaAppbmRl
eCA2MjU5OGU0Li4zM2VhMjY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL2VmbC9ld2tfdmlld19wcml2YXRlLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9lZmwvZXdrX3ZpZXdfcHJpdmF0ZS5oCkBAIC0zMCw4ICszMCwxMSBAQCBjbGFzcyBJbnRS
ZWN0OwogY2xhc3MgSW50U2l6ZTsKIH0KIAordHlwZWRlZiBzdHJ1Y3QgX0V3a19JbnRlbnQgRXdr
X0ludGVudDsKKwogdm9pZCBld2tfdmlld19kaXNwbGF5KEV2YXNfT2JqZWN0KiBld2tWaWV3LCBj
b25zdCBXZWJDb3JlOjpJbnRSZWN0JiByZWN0KTsKIHZvaWQgZXdrX3ZpZXdfaW1hZ2VfZGF0YV9z
ZXQoRXZhc19PYmplY3QqIGV3a1ZpZXcsIHZvaWQqIGltYWdlRGF0YSwgY29uc3QgV2ViQ29yZTo6
SW50U2l6ZSYgc2l6ZSk7Cit2b2lkIGV3a192aWV3X2ludGVudF9yZXF1ZXN0X25ldyhFdmFzX09i
amVjdCogZXdrVmlldywgY29uc3QgRXdrX0ludGVudCogZXdrSW50ZW50KTsKIHZvaWQgZXdrX3Zp
ZXdfdGl0bGVfY2hhbmdlZChFdmFzX09iamVjdCogZXdrVmlldywgY29uc3QgY2hhciogdGl0bGUp
OwogCiBFdmFzX09iamVjdCogZXdrX3ZpZXdfYmFzZV9hZGQoRXZhcyogY2FudmFzLCBXS0NvbnRl
eHRSZWYsIFdLUGFnZUdyb3VwUmVmKTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>150110</attachid>
            <date>2012-06-29 01:07:26 -0700</date>
            <delta_ts>2012-07-01 19:12:59 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>89749_wk2_ewk_intent.patch</filename>
            <type>text/plain</type>
            <size>20291</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwppbmRleCA3MDliYWYyLi44NDA0OWIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzYg
QEAKKzIwMTItMDYtMjggIENocmlzdG9waGUgRHVtZXogIDxjaHJpc3RvcGhlLmR1bWV6QGludGVs
LmNvbT4KKworICAgICAgICBbRUZMXVtXSzJdIEFkZCBBUEkgdG8gaW5zcGVjdCBhIFdlYiBJbnRl
bnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg5NzQ5
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIEVG
TCBBUEkgdG8gaW5zcGVjdCBhIFdlYiBJbnRlbnQgYW5kIGVtaXQgYSBzaWduYWwKKyAgICAgICAg
b24gdGhlIHZpZXcgd2hlbiBhIG5ldyBpbnRlbnQgcmVxdWVzdCBpcyBtYWRlLgorCisgICAgICAg
ICogUGxhdGZvcm1FZmwuY21ha2U6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9lZmwvRVdlYktp
dDIuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2VmbC9ld2tfaW50ZW50LmNwcDogQWRkZWQu
CisgICAgICAgIChfRXdrX0ludGVudCk6CisgICAgICAgIChld2tfaW50ZW50X3JlZik6CisgICAg
ICAgIChld2tfaW50ZW50X3VucmVmKToKKyAgICAgICAgKGV3a19pbnRlbnRfYWN0aW9uX2dldCk6
CisgICAgICAgIChld2tfaW50ZW50X3R5cGVfZ2V0KToKKyAgICAgICAgKGV3a19pbnRlbnRfc2Vy
dmljZV9nZXQpOgorICAgICAgICAoZXdrX2ludGVudF9zdWdnZXN0aW9uc19nZXQpOgorICAgICAg
ICAoZXdrX2ludGVudF9leHRyYV9nZXQpOgorICAgICAgICAoZXdrX2ludGVudF9leHRyYV9uYW1l
c19nZXQpOgorICAgICAgICAoZXdrX2ludGVudF9uZXcpOgorICAgICAgICAqIFVJUHJvY2Vzcy9B
UEkvZWZsL2V3a19pbnRlbnQuaDogQWRkZWQuCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9lZmwv
ZXdrX2ludGVudF9wcml2YXRlLmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvZWZsL2V3a192aWV3X2xvYWRlcl9jbGllbnQuY3BwLgorICAgICAgICAqIFVJUHJvY2Vz
cy9BUEkvZWZsL2V3a192aWV3LmNwcDoKKyAgICAgICAgKGV3a192aWV3X2ludGVudF9yZXF1ZXN0
X25ldyk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3ZpZXcuaDoKKyAgICAgICAg
KiBVSVByb2Nlc3MvQVBJL2VmbC9ld2tfdmlld19sb2FkZXJfY2xpZW50LmNwcDoKKyAgICAgICAg
KGRpZFJlY2VpdmVJbnRlbnRGb3JGcmFtZSk6CisgICAgICAgIChld2tfdmlld19sb2FkZXJfY2xp
ZW50X2F0dGFjaCk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3ZpZXdfcHJpdmF0
ZS5oOgorCiAyMDEyLTA2LTI4ICBKb2huIFN1bGxpdmFuICA8c3VsbGl2YW5AYXBwbGUuY29tPgog
CiAgICAgICAgIDxodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTAyMTY+
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybUVmbC5jbWFrZSBiL1NvdXJjZS9X
ZWJLaXQyL1BsYXRmb3JtRWZsLmNtYWtlCmluZGV4IDVmNmUwOWUuLjljMTg4MTQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtRWZsLmNtYWtlCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1BsYXRmb3JtRWZsLmNtYWtlCkBAIC0zMiw2ICszMiw3IEBAIExJU1QoQVBQRU5EIFdlYktpdDJf
U09VUkNFUwogCiAgICAgVUlQcm9jZXNzL0FQSS9lZmwvUGFnZUNsaWVudEltcGwuY3BwCiAgICAg
VUlQcm9jZXNzL0FQSS9lZmwvZXdrX2NvbnRleHQuY3BwCisgICAgVUlQcm9jZXNzL0FQSS9lZmwv
ZXdrX2ludGVudC5jcHAKICAgICBVSVByb2Nlc3MvQVBJL2VmbC9ld2tfdmlldy5jcHAKICAgICBV
SVByb2Nlc3MvQVBJL2VmbC9ld2tfdmlld19sb2FkZXJfY2xpZW50LmNwcAogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9FV2ViS2l0Mi5oIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvRVdlYktpdDIuaAppbmRleCBlMTQzYjc4Li41MWRmYzBi
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9FV2ViS2l0Mi5o
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL0VXZWJLaXQyLmgKQEAgLTI4
LDYgKzI4LDcgQEAKICNkZWZpbmUgRVdlYktpdDJfaAogCiAjaW5jbHVkZSAiZXdrX2NvbnRleHQu
aCIKKyNpbmNsdWRlICJld2tfaW50ZW50LmgiCiAjaW5jbHVkZSAiZXdrX3ZpZXcuaCIKIAogI2Vu
ZGlmIC8vIEVXZWJLaXQyX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvZWZsL2V3a19pbnRlbnQuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwv
ZXdrX2ludGVudC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjk0ODYz
ZQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3
a19pbnRlbnQuY3BwCkBAIC0wLDAgKzEsMTk0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEy
IEludGVsIENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJV
VE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMg
Q09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5j
bHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiZXdrX2ludGVudC5oIgorCisjaW5jbHVkZSAiV0tB
UElDYXN0LmgiCisjaW5jbHVkZSAiV0tBcnJheS5oIgorI2luY2x1ZGUgIldLRGljdGlvbmFyeS5o
IgorI2luY2x1ZGUgIldLSW50ZW50RGF0YS5oIgorI2luY2x1ZGUgIldLUmV0YWluUHRyLmgiCisj
aW5jbHVkZSAiV0tTdHJpbmcuaCIKKyNpbmNsdWRlICJXS1VSTC5oIgorI2luY2x1ZGUgImV3a19p
bnRlbnRfcHJpdmF0ZS5oIgorI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KKwordXNpbmcg
bmFtZXNwYWNlIFdlYktpdDsKKworLyoqCisgKiBcc3RydWN0ICBfRXdrX0ludGVudAorICogQGJy
aWVmICAgQ29udGFpbnMgdGhlIGludGVudCBkYXRhLgorICovCitzdHJ1Y3QgX0V3a19JbnRlbnQg
eworICAgIHVuc2lnbmVkIGludCBfX3JlZjsgLyoqPCB0aGUgcmVmZXJlbmNlIGNvdW50IG9mIHRo
ZSBvYmplY3QgKi8KKyNpZiBFTkFCTEUoV0VCX0lOVEVOVFMpCisgICAgV0tSZXRhaW5QdHI8V0tJ
bnRlbnREYXRhUmVmPiB3a0ludGVudDsKKyNlbmRpZgorICAgIGNvbnN0IGNoYXIqIGFjdGlvbjsK
KyAgICBjb25zdCBjaGFyKiB0eXBlOworICAgIGNvbnN0IGNoYXIqIHNlcnZpY2U7Cit9OworCisj
ZGVmaW5lIEVXS19JTlRFTlRfV0tfR0VUX09SX1JFVFVSTihpbnRlbnQsIHdrSW50ZW50XywgLi4u
KSAgICBcCisgICAgaWYgKCEoaW50ZW50KSkgeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBcCisgICAgICAgIEVJTkFfTE9HX0NSSVQoImludGVudCBpcyBOVUxMLiIp
OyAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgIHJldHVybiBfX1ZBX0FSR1NfXzsgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgfSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgaWYgKCEoaW50
ZW50KS0+d2tJbnRlbnQpIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAg
ICAgIEVJTkFfTE9HX0NSSVQoImludGVudC0+d2tJbnRlbnQgaXMgTlVMTC4iKTsgICAgICAgICAg
ICBcCisgICAgICAgIHJldHVybiBfX1ZBX0FSR1NfXzsgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBcCisgICAgfSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBcCisgICAgV0tJbnRlbnREYXRhUmVmIHdrSW50ZW50XyA9IChp
bnRlbnQpLT53a0ludGVudC5nZXQoKQorCit2b2lkIGV3a19pbnRlbnRfcmVmKEV3a19JbnRlbnQq
IGludGVudCkKK3sKKyNpZiBFTkFCTEUoV0VCX0lOVEVOVFMpCisgICAgRUlOQV9TQUZFVFlfT05f
TlVMTF9SRVRVUk4oaW50ZW50KTsKKyAgICArK2ludGVudC0+X19yZWY7CisjZW5kaWYKK30KKwor
dm9pZCBld2tfaW50ZW50X3VucmVmKEV3a19JbnRlbnQqIGludGVudCkKK3sKKyNpZiBFTkFCTEUo
V0VCX0lOVEVOVFMpCisgICAgRUlOQV9TQUZFVFlfT05fTlVMTF9SRVRVUk4oaW50ZW50KTsKKwor
ICAgIGlmICgtLWludGVudC0+X19yZWYpCisgICAgICAgIHJldHVybjsKKworICAgIGVpbmFfc3Ry
aW5nc2hhcmVfZGVsKGludGVudC0+YWN0aW9uKTsKKyAgICBlaW5hX3N0cmluZ3NoYXJlX2RlbChp
bnRlbnQtPnR5cGUpOworICAgIGVpbmFfc3RyaW5nc2hhcmVfZGVsKGludGVudC0+c2VydmljZSk7
CisgICAgZGVsZXRlIGludGVudDsKKyNlbmRpZgorfQorCitjb25zdCBjaGFyKiBld2tfaW50ZW50
X2FjdGlvbl9nZXQoY29uc3QgRXdrX0ludGVudCogaW50ZW50KQoreworI2lmIEVOQUJMRShXRUJf
SU5URU5UUykKKyAgICBFV0tfSU5URU5UX1dLX0dFVF9PUl9SRVRVUk4oaW50ZW50LCB3a0ludGVu
dCwgMCk7CisKKyAgICBXS1JldGFpblB0cjxXS1N0cmluZ1JlZj4gd2tBY3Rpb24oQWRvcHRXSywg
V0tJbnRlbnREYXRhQ29weUFjdGlvbih3a0ludGVudCkpOworICAgIEV3a19JbnRlbnQqIGV3a0lu
dGVudCA9IGNvbnN0X2Nhc3Q8RXdrX0ludGVudCo+KGludGVudCk7CisgICAgZWluYV9zdHJpbmdz
aGFyZV9yZXBsYWNlKCZld2tJbnRlbnQtPmFjdGlvbiwgdG9JbXBsKHdrQWN0aW9uLmdldCgpKS0+
c3RyaW5nKCkudXRmOCgpLmRhdGEoKSk7CisgICAgcmV0dXJuIGludGVudC0+YWN0aW9uOworI2Vs
c2UKKyAgICByZXR1cm4gMDsKKyNlbmRpZgorfQorCitjb25zdCBjaGFyKiBld2tfaW50ZW50X3R5
cGVfZ2V0KGNvbnN0IEV3a19JbnRlbnQqIGludGVudCkKK3sKKyNpZiBFTkFCTEUoV0VCX0lOVEVO
VFMpCisgICAgRVdLX0lOVEVOVF9XS19HRVRfT1JfUkVUVVJOKGludGVudCwgd2tJbnRlbnQsIDAp
OworCisgICAgV0tSZXRhaW5QdHI8V0tTdHJpbmdSZWY+IHdrVHlwZShBZG9wdFdLLCBXS0ludGVu
dERhdGFDb3B5VHlwZSh3a0ludGVudCkpOworICAgIEV3a19JbnRlbnQqIGV3a0ludGVudCA9IGNv
bnN0X2Nhc3Q8RXdrX0ludGVudCo+KGludGVudCk7CisgICAgZWluYV9zdHJpbmdzaGFyZV9yZXBs
YWNlKCZld2tJbnRlbnQtPnR5cGUsIHRvSW1wbCh3a1R5cGUuZ2V0KCkpLT5zdHJpbmcoKS51dGY4
KCkuZGF0YSgpKTsKKyAgICByZXR1cm4gaW50ZW50LT50eXBlOworI2Vsc2UKKyAgICByZXR1cm4g
MDsKKyNlbmRpZgorfQorCitjb25zdCBjaGFyKiBld2tfaW50ZW50X3NlcnZpY2VfZ2V0KGNvbnN0
IEV3a19JbnRlbnQqIGludGVudCkKK3sKKyNpZiBFTkFCTEUoV0VCX0lOVEVOVFMpCisgICAgRVdL
X0lOVEVOVF9XS19HRVRfT1JfUkVUVVJOKGludGVudCwgd2tJbnRlbnQsIDApOworCisgICAgV0tS
ZXRhaW5QdHI8V0tVUkxSZWY+IHdrU2VydmljZShBZG9wdFdLLCBXS0ludGVudERhdGFDb3B5U2Vy
dmljZSh3a0ludGVudCkpOworICAgIEV3a19JbnRlbnQqIGV3a0ludGVudCA9IGNvbnN0X2Nhc3Q8
RXdrX0ludGVudCo+KGludGVudCk7CisgICAgZWluYV9zdHJpbmdzaGFyZV9yZXBsYWNlKCZld2tJ
bnRlbnQtPnNlcnZpY2UsIHRvSW1wbCh3a1NlcnZpY2UuZ2V0KCkpLT5zdHJpbmcoKS51dGY4KCku
ZGF0YSgpKTsKKyAgICByZXR1cm4gaW50ZW50LT5zZXJ2aWNlOworI2Vsc2UKKyAgICByZXR1cm4g
MDsKKyNlbmRpZgorfQorCitFaW5hX0xpc3QqIGV3a19pbnRlbnRfc3VnZ2VzdGlvbnNfZ2V0KGNv
bnN0IEV3a19JbnRlbnQqIGludGVudCkKK3sKKyNpZiBFTkFCTEUoV0VCX0lOVEVOVFMpCisgICAg
RVdLX0lOVEVOVF9XS19HRVRfT1JfUkVUVVJOKGludGVudCwgd2tJbnRlbnQsIDApOworCisgICAg
RWluYV9MaXN0KiBsaXN0T2ZTdWdnZXN0aW9ucyA9IDA7CisgICAgV0tSZXRhaW5QdHI8V0tBcnJh
eVJlZj4gd2tTdWdnZXN0aW9ucyhBZG9wdFdLLCBXS0ludGVudERhdGFDb3B5U3VnZ2VzdGlvbnMo
d2tJbnRlbnQpKTsKKyAgICBjb25zdCBzaXplX3QgbnVtU3VnZ2VzdGlvbnMgPSBXS0FycmF5R2V0
U2l6ZSh3a1N1Z2dlc3Rpb25zLmdldCgpKTsKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG51
bVN1Z2dlc3Rpb25zOyArK2kpIHsKKyAgICAgICAgV0tVUkxSZWYgd2tTdWdnZXN0aW9uID0gc3Rh
dGljX2Nhc3Q8V0tVUkxSZWY+KFdLQXJyYXlHZXRJdGVtQXRJbmRleCh3a1N1Z2dlc3Rpb25zLmdl
dCgpLCBpKSk7CisgICAgICAgIGxpc3RPZlN1Z2dlc3Rpb25zID0gZWluYV9saXN0X2FwcGVuZChs
aXN0T2ZTdWdnZXN0aW9ucywgc3RyZHVwKHRvSW1wbCh3a1N1Z2dlc3Rpb24pLT5zdHJpbmcoKS51
dGY4KCkuZGF0YSgpKSk7CisgICAgfQorICAgIHJldHVybiBsaXN0T2ZTdWdnZXN0aW9uczsKKyNl
bHNlCisgICAgcmV0dXJuIDA7CisjZW5kaWYKK30KKworY2hhciogZXdrX2ludGVudF9leHRyYV9n
ZXQoY29uc3QgRXdrX0ludGVudCogaW50ZW50LCBjb25zdCBjaGFyKiBrZXkpCit7CisjaWYgRU5B
QkxFKFdFQl9JTlRFTlRTKQorICAgIEVXS19JTlRFTlRfV0tfR0VUX09SX1JFVFVSTihpbnRlbnQs
IHdrSW50ZW50LCAwKTsKKworICAgIFdLUmV0YWluUHRyPFdLU3RyaW5nUmVmPiBrZXlSZWYgPSBh
ZG9wdFdLKFdLU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKGtleSkpOworICAgIFdLUmV0YWlu
UHRyPFdLU3RyaW5nUmVmPiB3a1ZhbHVlKEFkb3B0V0ssIFdLSW50ZW50RGF0YUNvcHlFeHRyYSh3
a0ludGVudCwga2V5UmVmLmdldCgpKSk7CisgICAgU3RyaW5nIHZhbHVlID0gdG9JbXBsKHdrVmFs
dWUuZ2V0KCkpLT5zdHJpbmcoKTsKKyAgICBpZiAodmFsdWUuaXNFbXB0eSgpKQorICAgICAgICBy
ZXR1cm4gMDsKKyAgICByZXR1cm4gc3RyZHVwKHZhbHVlLnV0ZjgoKS5kYXRhKCkpOworI2Vsc2UK
KyAgICByZXR1cm4gMDsKKyNlbmRpZgorfQorCitFaW5hX0xpc3QqIGV3a19pbnRlbnRfZXh0cmFf
bmFtZXNfZ2V0KGNvbnN0IEV3a19JbnRlbnQqIGludGVudCkKK3sKKyNpZiBFTkFCTEUoV0VCX0lO
VEVOVFMpCisgICAgRVdLX0lOVEVOVF9XS19HRVRfT1JfUkVUVVJOKGludGVudCwgd2tJbnRlbnQs
IDApOworCisgICAgRWluYV9MaXN0KiBsaXN0T2ZLZXlzID0gMDsKKyAgICBXS1JldGFpblB0cjxX
S0RpY3Rpb25hcnlSZWY+IHdrRXh0cmFzKEFkb3B0V0ssIFdLSW50ZW50RGF0YUNvcHlFeHRyYXMo
d2tJbnRlbnQpKTsKKyAgICBXS1JldGFpblB0cjxXS0FycmF5UmVmPiB3a0tleXMoQWRvcHRXSywg
V0tEaWN0aW9uYXJ5Q29weUtleXMod2tFeHRyYXMuZ2V0KCkpKTsKKyAgICBjb25zdCBzaXplX3Qg
bnVtS2V5cyA9IFdLQXJyYXlHZXRTaXplKHdrS2V5cy5nZXQoKSk7CisgICAgZm9yIChzaXplX3Qg
aSA9IDA7IGkgPCBudW1LZXlzOyArK2kpIHsKKyAgICAgICAgV0tTdHJpbmdSZWYgd2tLZXkgPSBz
dGF0aWNfY2FzdDxXS1N0cmluZ1JlZj4oV0tBcnJheUdldEl0ZW1BdEluZGV4KHdrS2V5cy5nZXQo
KSwgaSkpOworICAgICAgICBsaXN0T2ZLZXlzID0gZWluYV9saXN0X2FwcGVuZChsaXN0T2ZLZXlz
LCBzdHJkdXAodG9JbXBsKHdrS2V5KS0+c3RyaW5nKCkudXRmOCgpLmRhdGEoKSkpOworICAgIH0K
KyAgICByZXR1cm4gbGlzdE9mS2V5czsKKyNlbHNlCisgICAgcmV0dXJuIDA7CisjZW5kaWYKK30K
KworI2lmIEVOQUJMRShXRUJfSU5URU5UUykKK0V3a19JbnRlbnQqIGV3a19pbnRlbnRfbmV3KFdL
SW50ZW50RGF0YVJlZiBpbnRlbnREYXRhKQoreworICAgIEVJTkFfU0FGRVRZX09OX05VTExfUkVU
VVJOX1ZBTChpbnRlbnREYXRhLCAwKTsKKworICAgIEV3a19JbnRlbnQqIGV3a0ludGVudCA9IHN0
YXRpY19jYXN0PEV3a19JbnRlbnQqPihjYWxsb2MoMSwgc2l6ZW9mKEV3a19JbnRlbnQpKSk7Cisg
ICAgZXdrSW50ZW50LT5fX3JlZiA9IDE7CisgICAgZXdrSW50ZW50LT53a0ludGVudCA9IGludGVu
dERhdGE7CisgICAgcmV0dXJuIGV3a0ludGVudDsKK30KKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2ludGVudC5oIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2ludGVudC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAuLmZkY2ZlMDAKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL2VmbC9ld2tfaW50ZW50LmgKQEAgLTAsMCArMSwxMzYgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTIgSW50ZWwgQ29ycG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKy8qKgorICogQGZpbGUgICAgZXdrX2ludGVudC5oCisgKiBAYnJpZWYgICBE
ZXNjcmliZXMgdGhlIEV3ayBJbnRlbnQgQVBJLgorICovCisKKyNpZm5kZWYgZXdrX2ludGVudF9o
CisjZGVmaW5lIGV3a19pbnRlbnRfaAorCisjaW5jbHVkZSA8RWluYS5oPgorCisjaWZkZWYgX19j
cGx1c3BsdXMKK2V4dGVybiAiQyIgeworI2VuZGlmCisKKy8qKiBDcmVhdGVzIGEgdHlwZSBuYW1l
IGZvciBfRXdrX0ludGVudCAqLwordHlwZWRlZiBzdHJ1Y3QgX0V3a19JbnRlbnQgRXdrX0ludGVu
dDsKKworLyoqCisgKiBJbmNyZWFzZXMgdGhlIHJlZmVyZW5jZSBjb3VudCBvZiB0aGUgZ2l2ZW4g
b2JqZWN0LgorICoKKyAqIEBwYXJhbSBpbnRlbnQgdGhlIGludGVudCBvYmplY3QgdG8gaW5jcmVh
c2UgdGhlIHJlZmVyZW5jZSBjb3VudAorICovCitFQVBJIHZvaWQgZXdrX2ludGVudF9yZWYoRXdr
X0ludGVudCAqaW50ZW50KTsKKworLyoqCisgKiBEZWNyZWFzZXMgdGhlIHJlZmVyZW5jZSBjb3Vu
dCBvZiB0aGUgZ2l2ZW4gb2JqZWN0LCBwb3NzaWJseSBmcmVlaW5nIGl0LgorICoKKyAqIFdoZW4g
dGhlIHJlZmVyZW5jZSBjb3VudCBpdCdzIHJlYWNoZWQgMCwgdGhlIGludGVudCBpcyBmcmVlZC4K
KyAqCisgKiBAcGFyYW0gaW50ZW50IHRoZSBpbnRlbnQgb2JqZWN0IHRvIGRlY3JlYXNlIHRoZSBy
ZWZlcmVuY2UgY291bnQKKyAqLworRUFQSSB2b2lkIGV3a19pbnRlbnRfdW5yZWYoRXdrX0ludGVu
dCAqaW50ZW50KTsKKworLyoqCisgKiBRdWVyeSBhY3Rpb24gZm9yIHRoaXMgaW50ZW50LgorICoK
KyAqIEBwYXJhbSBpbnRlbnQgaW50ZW50IGl0ZW0gdG8gcXVlcnkuCisgKgorICogQHJldHVybiB0
aGUgYWN0aW9uIHBvaW50ZXIsIHRoYXQgbWF5IGJlIEBjIE5VTEwuIFRoaXMgcG9pbnRlciBpcwor
ICogICAgICAgICBndWFyYW50ZWVkIHRvIGJlIGVpbmFfc3RyaW5nc2hhcmUsIHNvIHdoZW5ldmVy
IHBvc3NpYmxlCisgKiAgICAgICAgIHNhdmUgeW91cnNlbGYgc29tZSBjcHUgY3ljbGVzIGFuZCB1
c2UKKyAqICAgICAgICAgZWluYV9zdHJpbmdzaGFyZV9yZWYoKSBpbnN0ZWFkIG9mIGVpbmFfc3Ry
aW5nc2hhcmVfYWRkKCkgb3IKKyAqICAgICAgICAgc3RyZHVwKCkuCisgKi8KK0VBUEkgY29uc3Qg
Y2hhciAqZXdrX2ludGVudF9hY3Rpb25fZ2V0KGNvbnN0IEV3a19JbnRlbnQgKmludGVudCk7CisK
Ky8qKgorICogUXVlcnkgdHlwZSBmb3IgdGhpcyBpbnRlbnQuCisgKgorICogQHBhcmFtIGludGVu
dCBpbnRlbnQgaXRlbSB0byBxdWVyeS4KKyAqCisgKiBAcmV0dXJuIHRoZSB0eXBlIHBvaW50ZXIs
IHRoYXQgbWF5IGJlIEBjIE5VTEwuIFRoaXMgcG9pbnRlciBpcworICogICAgICAgICBndWFyYW50
ZWVkIHRvIGJlIGVpbmFfc3RyaW5nc2hhcmUsIHNvIHdoZW5ldmVyIHBvc3NpYmxlCisgKiAgICAg
ICAgIHNhdmUgeW91cnNlbGYgc29tZSBjcHUgY3ljbGVzIGFuZCB1c2UKKyAqICAgICAgICAgZWlu
YV9zdHJpbmdzaGFyZV9yZWYoKSBpbnN0ZWFkIG9mIGVpbmFfc3RyaW5nc2hhcmVfYWRkKCkgb3IK
KyAqICAgICAgICAgc3RyZHVwKCkuCisgKi8KK0VBUEkgY29uc3QgY2hhciAqZXdrX2ludGVudF90
eXBlX2dldChjb25zdCBFd2tfSW50ZW50ICppbnRlbnQpOworCisvKioKKyAqIFF1ZXJ5IHNlcnZp
Y2UgZm9yIHRoaXMgaW50ZW50LgorICoKKyAqIEBwYXJhbSBpbnRlbnQgaW50ZW50IGl0ZW0gdG8g
cXVlcnkuCisgKgorICogQHJldHVybiB0aGUgc2VydmljZSBwb2ludGVyLCB0aGF0IG1heSBiZSBA
YyBOVUxMLiBUaGlzIHBvaW50ZXIgaXMKKyAqICAgICAgICAgZ3VhcmFudGVlZCB0byBiZSBlaW5h
X3N0cmluZ3NoYXJlLCBzbyB3aGVuZXZlciBwb3NzaWJsZQorICogICAgICAgICBzYXZlIHlvdXJz
ZWxmIHNvbWUgY3B1IGN5Y2xlcyBhbmQgdXNlCisgKiAgICAgICAgIGVpbmFfc3RyaW5nc2hhcmVf
cmVmKCkgaW5zdGVhZCBvZiBlaW5hX3N0cmluZ3NoYXJlX2FkZCgpIG9yCisgKiAgICAgICAgIHN0
cmR1cCgpLgorICovCitFQVBJIGNvbnN0IGNoYXIgKmV3a19pbnRlbnRfc2VydmljZV9nZXQoY29u
c3QgRXdrX0ludGVudCAqaW50ZW50KTsKKworLyoqCisgKiBRdWVyeSBzdWdnZXN0aW9ucyBmb3Ig
dGhpcyBpbnRlbnQuCisgKgorICogVGhpcyBmdW5jdGlvbiBwcm92aWRlcyBhIGxpc3Qgb2YgKGFi
c29sdXRlKSBzdWdnZXN0ZWQgU2VydmljZSBVUkxzIG9mIHdoaWNoIHRoZSBDbGllbnQKKyAqIGlz
IGF3YXJlIGFuZCB3aGljaCBjYW4gaGFuZGxlIHRoZSBpbnRlbnQuCisgKgorICogQHBhcmFtIGlu
dGVudCBpbnRlbnQgaXRlbSB0byBxdWVyeS4KKyAqCisgKiBAcmV0dXJuIEBjIEVpbmFfTGlzdCB3
aXRoIHN1Z2dlc3RlZCBzZXJ2aWNlIFVSTHMgb24gc3VjY2Vzcywgb3IgQGMgMCBvbiBmYWlsdXJl
LAorICogICAgICAgICB0aGUgRWluYV9MaXN0IGFuZCBpdHMgaXRlbXMgc2hvdWxkIGJlIGZyZWVk
IGFmdGVyIHVzZS4gVXNlIGZyZWUoKSB0byBmcmVlIHRoZQorICogICAgICAgICBpdGVtcy4KKyAq
LworRUFQSSBFaW5hX0xpc3QgKmV3a19pbnRlbnRfc3VnZ2VzdGlvbnNfZ2V0KGNvbnN0IEV3a19J
bnRlbnQgKmludGVudCk7CisKKy8qKgorICogUmV0cmlldmVzIHRoZSB2YWx1ZSAoaWYgYW55KSBm
cm9tIHRoZSBleHRyYSBkYXRhIGRpY3Rpb25hcnkgdGhpcyBpbnRlbnQgd2FzIGNvbnN0cnVjdGVk
IHdpdGguCisgKgorICogQHBhcmFtIGludGVudCBpbnRlbnQgaXRlbSB0byBxdWVyeS4KKyAqIEBw
YXJhbSBrZXkga2V5IHRvIHF1ZXJ5IGluIHRoZSBkaWN0aW9uYXJ5LgorICoKKyAqIEByZXR1cm4g
YSBuZXdseSBhbGxvY2F0ZWQgc3RyaW5nIG9yIEBjIE5VTEwgaW4gY2FzZSBvZiBlcnJvciBvciBp
ZiB0aGUga2V5IGRvZXMgbm90IGV4aXN0LgorICovCitFQVBJIGNoYXIgKmV3a19pbnRlbnRfZXh0
cmFfZ2V0KGNvbnN0IEV3a19JbnRlbnQgKmludGVudCwgY29uc3QgY2hhciAqa2V5KTsKKworLyoq
CisgKiBSZXRyaWV2ZSBhIGxpc3Qgb2YgdGhlIG5hbWVzIG9mIGV4dHJhIG1ldGFkYXRhIGFzc29j
aWF0ZWQgd2l0aCB0aGUgaW50ZW50LgorICoKKyAqIEBwYXJhbSBpbnRlbnQgaW50ZW50IGl0ZW0g
dG8gcXVlcnkuCisgKgorICogQHJldHVybiBAYyBFaW5hX0xpc3Qgd2l0aCBuYW1lcyBvZiBleHRy
YSBtZXRhZGF0YSBvbiBzdWNjZXNzLCBvciBAYyAwIG9uIGZhaWx1cmUsCisgKiAgICAgICAgIHRo
ZSBFaW5hX0xpc3QgYW5kIGl0cyBpdGVtcyBzaG91bGQgYmUgZnJlZWQgYWZ0ZXIgdXNlLiBVc2Ug
ZnJlZSgpIHRvIGZyZWUgdGhlCisgKiAgICAgICAgIGl0ZW1zLgorICovCitFQVBJIEVpbmFfTGlz
dCAqZXdrX2ludGVudF9leHRyYV9uYW1lc19nZXQoY29uc3QgRXdrX0ludGVudCAqaW50ZW50KTsK
KworI2lmZGVmIF9fY3BsdXNwbHVzCit9CisjZW5kaWYKKyNlbmRpZiAvLyBld2tfaW50ZW50X2gK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19pbnRlbnRf
cHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2ludGVudF9w
cml2YXRlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNGM2Y2Q1ZQotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19pbnRl
bnRfcHJpdmF0ZS5oCkBAIC0wLDAgKzEsMzkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIg
SW50ZWwgQ29ycG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5k
ZWYgZXdrX2ludGVudF9wcml2YXRlX2gKKyNkZWZpbmUgZXdrX2ludGVudF9wcml2YXRlX2gKKwor
I2lmIEVOQUJMRShXRUJfSU5URU5UUykKKworI2luY2x1ZGUgPFdlYktpdDIvV0tCYXNlLmg+CisK
K3R5cGVkZWYgc3RydWN0IF9Fd2tfSW50ZW50IEV3a19JbnRlbnQ7CisKK0V3a19JbnRlbnQqIGV3
a19pbnRlbnRfbmV3KFdLSW50ZW50RGF0YVJlZiBpbnRlbnREYXRhKTsKKworI2VuZGlmIC8vIEVO
QUJMRShXRUJfSU5URU5UUykKKworI2VuZGlmIC8vIGV3a19pbnRlbnRfcHJpdmF0ZV9oCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfdmlldy5jcHAgYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfdmlldy5jcHAKaW5kZXggZmUzODRl
My4uYTE5NmE5NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwv
ZXdrX3ZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a192
aWV3LmNwcApAQCAtNTY4LDYgKzU2OCwxOSBAQCB2b2lkIGV3a192aWV3X3RpdGxlX2NoYW5nZWQo
RXZhc19PYmplY3QqIGV3a1ZpZXcsIGNvbnN0IGNoYXIqIHRpdGxlKQogICAgIGV2YXNfb2JqZWN0
X3NtYXJ0X2NhbGxiYWNrX2NhbGwoZXdrVmlldywgInRpdGxlLGNoYW5nZWQiLCBjb25zdF9jYXN0
PGNoYXIqPih0aXRsZSkpOwogfQogCisvKioKKyAqIEBpbnRlcm5hbAorICogVGhlIHZpZXcgcmVj
ZWl2ZWQgYSBuZXcgaW50ZW50IHJlcXVlc3QuCisgKgorICogRW1pdHMgc2lnbmFsOiAiaW50ZW50
LHJlcXVlc3QsbmV3IiB3aXRoIHBvaW50ZXIgdG8gYSBFd2tfSW50ZW50LgorICovCit2b2lkIGV3
a192aWV3X2ludGVudF9yZXF1ZXN0X25ldyhFdmFzX09iamVjdCogZXdrVmlldywgY29uc3QgRXdr
X0ludGVudCogZXdrSW50ZW50KQoreworI2lmIEVOQUJMRShXRUJfSU5URU5UUykKKyAgICBldmFz
X29iamVjdF9zbWFydF9jYWxsYmFja19jYWxsKGV3a1ZpZXcsICJpbnRlbnQscmVxdWVzdCxuZXci
LCBjb25zdF9jYXN0PEV3a19JbnRlbnQqPihld2tJbnRlbnQpKTsKKyNlbmRpZgorfQorCiB2b2lk
IGV3a192aWV3X2Rpc3BsYXkoRXZhc19PYmplY3QqIGV3a1ZpZXcsIGNvbnN0IEludFJlY3QmIHJl
Y3QpCiB7CiAgICAgRVdLX1ZJRVdfU0RfR0VUX09SX1JFVFVSTihld2tWaWV3LCBzbWFydERhdGEp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3ZpZXcu
aCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a192aWV3LmgKaW5kZXggY2I1
YjY1MC4uNGRmOGQxOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9l
ZmwvZXdrX3ZpZXcuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tf
dmlldy5oCkBAIC0yNiw2ICsyNiw3IEBACiAgKgogICogVGhlIGZvbGxvd2luZyBzaWduYWxzIChz
ZWUgZXZhc19vYmplY3Rfc21hcnRfY2FsbGJhY2tfYWRkKCkpIGFyZSBlbWl0dGVkOgogICoKKyAq
IC0gImludGVudCxyZXF1ZXN0LG5ldyIsIEV3a19JbnRlbnRfUmVxdWVzdCo6IHJlcG9ydHMgbmV3
IFdlYiBpbnRlbnQgcmVxdWVzdC4KICAqIC0gInRpdGxlLGNoYW5nZWQiLCBjb25zdCBjaGFyKjog
dGl0bGUgb2YgdGhlIG1haW4gZnJhbWUgd2FzIGNoYW5nZWQuCiAgKi8KIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3ZpZXdfbG9hZGVyX2NsaWVudC5j
cHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfdmlld19sb2FkZXJfY2xp
ZW50LmNwcAppbmRleCBlOThlMTU0Li44M2RkZjQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfdmlld19sb2FkZXJfY2xpZW50LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfdmlld19sb2FkZXJfY2xpZW50LmNwcApA
QCAtMjYsNiArMjYsOCBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogCiAjaW5jbHVkZSAiV0tGcmFt
ZS5oIgorI2luY2x1ZGUgImV3a19pbnRlbnQuaCIKKyNpbmNsdWRlICJld2tfaW50ZW50X3ByaXZh
dGUuaCIKICNpbmNsdWRlICJld2tfdmlld19sb2FkZXJfY2xpZW50X3ByaXZhdGUuaCIKICNpbmNs
dWRlICJld2tfdmlld19wcml2YXRlLmgiCiAjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgpA
QCAtNDEsNiArNDMsMTYgQEAgc3RhdGljIHZvaWQgZGlkUmVjZWl2ZVRpdGxlRm9yRnJhbWUoV0tQ
YWdlUmVmLCBXS1N0cmluZ1JlZiB0aXRsZSwgV0tGcmFtZVJlZiBmcmEKICAgICBld2tfdmlld190
aXRsZV9jaGFuZ2VkKGV3a1ZpZXcsIHRvSW1wbCh0aXRsZSktPnN0cmluZygpLnV0ZjgoKS5kYXRh
KCkpOwogfQogCisjaWYgRU5BQkxFKFdFQl9JTlRFTlRTKQorc3RhdGljIHZvaWQgZGlkUmVjZWl2
ZUludGVudEZvckZyYW1lKFdLUGFnZVJlZiBwYWdlLCBXS0ZyYW1lUmVmIGZyYW1lLCBXS0ludGVu
dERhdGFSZWYgaW50ZW50LCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKQoreworICAgIEV2YXNfT2Jq
ZWN0KiBld2tWaWV3ID0gc3RhdGljX2Nhc3Q8RXZhc19PYmplY3QqPihjb25zdF9jYXN0PHZvaWQq
PihjbGllbnRJbmZvKSk7CisgICAgRXdrX0ludGVudCogZXdrSW50ZW50ID0gZXdrX2ludGVudF9u
ZXcoaW50ZW50KTsKKyAgICBld2tfdmlld19pbnRlbnRfcmVxdWVzdF9uZXcoZXdrVmlldywgZXdr
SW50ZW50KTsKKyAgICBld2tfaW50ZW50X3VucmVmKGV3a0ludGVudCk7Cit9CisjZW5kaWYKKwog
dm9pZCBld2tfdmlld19sb2FkZXJfY2xpZW50X2F0dGFjaChXS1BhZ2VSZWYgcGFnZVJlZiwgRXZh
c19PYmplY3QqIGV3a1ZpZXcpCiB7CiAgICAgV0tQYWdlTG9hZGVyQ2xpZW50IGxvYWRDbGllbnQ7
CkBAIC00OCw1ICs2MCw4IEBAIHZvaWQgZXdrX3ZpZXdfbG9hZGVyX2NsaWVudF9hdHRhY2goV0tQ
YWdlUmVmIHBhZ2VSZWYsIEV2YXNfT2JqZWN0KiBld2tWaWV3KQogICAgIGxvYWRDbGllbnQudmVy
c2lvbiA9IGtXS1BhZ2VMb2FkZXJDbGllbnRDdXJyZW50VmVyc2lvbjsKICAgICBsb2FkQ2xpZW50
LmNsaWVudEluZm8gPSBld2tWaWV3OwogICAgIGxvYWRDbGllbnQuZGlkUmVjZWl2ZVRpdGxlRm9y
RnJhbWUgPSBkaWRSZWNlaXZlVGl0bGVGb3JGcmFtZTsKKyNpZiBFTkFCTEUoV0VCX0lOVEVOVFMp
CisgICAgbG9hZENsaWVudC5kaWRSZWNlaXZlSW50ZW50Rm9yRnJhbWUgPSBkaWRSZWNlaXZlSW50
ZW50Rm9yRnJhbWU7CisjZW5kaWYKICAgICBXS1BhZ2VTZXRQYWdlTG9hZGVyQ2xpZW50KHBhZ2VS
ZWYsICZsb2FkQ2xpZW50KTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvZWZsL2V3a192aWV3X3ByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvZWZsL2V3a192aWV3X3ByaXZhdGUuaAppbmRleCA2MjU5OGU0Li5iZDE1ODZiIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfdmlld19wcml2YXRlLmgK
KysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3ZpZXdfcHJpdmF0ZS5o
CkBAIC0zMCwxMiArMzAsMjAgQEAgY2xhc3MgSW50UmVjdDsKIGNsYXNzIEludFNpemU7CiB9CiAK
KyNpZiBFTkFCTEUoV0VCX0lOVEVOVFMpCit0eXBlZGVmIHN0cnVjdCBfRXdrX0ludGVudCBFd2tf
SW50ZW50OworI2VuZGlmCisKIHZvaWQgZXdrX3ZpZXdfZGlzcGxheShFdmFzX09iamVjdCogZXdr
VmlldywgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgcmVjdCk7CiB2b2lkIGV3a192aWV3X2ltYWdl
X2RhdGFfc2V0KEV2YXNfT2JqZWN0KiBld2tWaWV3LCB2b2lkKiBpbWFnZURhdGEsIGNvbnN0IFdl
YkNvcmU6OkludFNpemUmIHNpemUpOwogdm9pZCBld2tfdmlld190aXRsZV9jaGFuZ2VkKEV2YXNf
T2JqZWN0KiBld2tWaWV3LCBjb25zdCBjaGFyKiB0aXRsZSk7CiAKIEV2YXNfT2JqZWN0KiBld2tf
dmlld19iYXNlX2FkZChFdmFzKiBjYW52YXMsIFdLQ29udGV4dFJlZiwgV0tQYWdlR3JvdXBSZWYp
OwogCisjaWYgRU5BQkxFKFdFQl9JTlRFTlRTKQordm9pZCBld2tfdmlld19pbnRlbnRfcmVxdWVz
dF9uZXcoRXZhc19PYmplY3QqIGV3a1ZpZXcsIGNvbnN0IEV3a19JbnRlbnQqIGV3a0ludGVudCk7
CisjZW5kaWYKKwogV2ViS2l0OjpXZWJQYWdlUHJveHkqIGV3a192aWV3X3BhZ2VfZ2V0KGNvbnN0
IEV2YXNfT2JqZWN0KiBld2tWaWV3KTsKIAogI2VuZGlmIC8vIGV3a192aWV3X3ByaXZhdGVfaAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>