<?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>90911</bug_id>
          
          <creation_ts>2012-07-10 14:45:12 -0700</creation_ts>
          <short_desc>[BlackBerry] Implement Date/Time picker</short_desc>
          <delta_ts>2012-07-11 13:21:18 -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>WebKit BlackBerry</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>
          
          
          <everconfirmed>0</everconfirmed>
          <reporter name="Crystal Zhang">haizhang</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>mifenton</cc>
    
    <cc>rakuco</cc>
    
    <cc>tonikitoo</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>666073</commentid>
    <comment_count>0</comment_count>
    <who name="Crystal Zhang">haizhang</who>
    <bug_when>2012-07-10 14:45:12 -0700</bug_when>
    <thetext>Implement HTML Date/Time picker.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>666092</commentid>
    <comment_count>1</comment_count>
      <attachid>151535</attachid>
    <who name="Crystal Zhang">haizhang</who>
    <bug_when>2012-07-10 15:03:34 -0700</bug_when>
    <thetext>Created attachment 151535
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>666100</commentid>
    <comment_count>2</comment_count>
      <attachid>151535</attachid>
    <who name="Rob Buis">rwlbuis</who>
    <bug_when>2012-07-10 15:16:26 -0700</bug_when>
    <thetext>Comment on attachment 151535
patch

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

Can be improved some more.

&gt; Source/WebKit/blackberry/WebCoreSupport/DatePickerClient.h:44
&gt; +    void generateHTML(BlackBerry::Platform::BlackBerryInputType, const BlackBerry::WebKit::WebString&amp; value, const BlackBerry::WebKit::WebString&amp; min, const BlackBerry::WebKit::WebString&amp; max, double step);

You can probably make some stuff more private, this is probably internal.

&gt; Source/WebKit/blackberry/WebKitSupport/InputHandler.cpp:504
&gt; +        WTF::String value = element-&gt;value();

WTF:: prefix can go in this file.

&gt; Source/WebKit/blackberry/WebKitSupport/InputHandler.cpp:509
&gt; +        DatePickerClient* client = new DatePickerClient(type, value, min, max, step,  m_webPage, element);

Who deletes client?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>666101</commentid>
    <comment_count>3</comment_count>
    <who name="Crystal Zhang">haizhang</who>
    <bug_when>2012-07-10 15:21:02 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 151535 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=151535&amp;action=review
&gt; 
&gt; Can be improved some more.
&gt; 
&gt; &gt; Source/WebKit/blackberry/WebCoreSupport/DatePickerClient.h:44
&gt; &gt; +    void generateHTML(BlackBerry::Platform::BlackBerryInputType, const BlackBerry::WebKit::WebString&amp; value, const BlackBerry::WebKit::WebString&amp; min, const BlackBerry::WebKit::WebString&amp; max, double step);
&gt; 
&gt; You can probably make some stuff more private, this is probably internal.
The parameters passed from ctor that needed have been made private, others are just for generating HTML.
&gt; 
&gt; &gt; Source/WebKit/blackberry/WebKitSupport/InputHandler.cpp:504
&gt; &gt; +        WTF::String value = element-&gt;value();
&gt; 
&gt; WTF:: prefix can go in this file.
ok.
&gt; 
&gt; &gt; Source/WebKit/blackberry/WebKitSupport/InputHandler.cpp:509
&gt; &gt; +        DatePickerClient* client = new DatePickerClient(type, value, min, max, step,  m_webPage, element);
&gt; 
&gt; Who deletes client?
DatePickerClient will be passed to PagePopupBlackBerry as an OwnPtr, and will be deleted automatically.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>666103</commentid>
    <comment_count>4</comment_count>
      <attachid>151535</attachid>
    <who name="Rob Buis">rwlbuis</who>
    <bug_when>2012-07-10 15:29:36 -0700</bug_when>
    <thetext>Comment on attachment 151535
patch

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

&gt; Source/WebKit/blackberry/WebCoreSupport/DatePickerClient.h:37
&gt; +class PagePopup;

I think you can actually remove the last reference.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>666906</commentid>
    <comment_count>5</comment_count>
      <attachid>151739</attachid>
    <who name="Crystal Zhang">haizhang</who>
    <bug_when>2012-07-11 11:30:16 -0700</bug_when>
    <thetext>Created attachment 151739
updated patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>666924</commentid>
    <comment_count>6</comment_count>
      <attachid>151739</attachid>
    <who name="Rob Buis">rwlbuis</who>
    <bug_when>2012-07-11 11:52:22 -0700</bug_when>
    <thetext>Comment on attachment 151739
updated patch

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

Looks good, found some small stuff.

&gt; Source/WebKit/blackberry/WebCoreSupport/DatePickerClient.h:22
&gt; +#include &quot;IntSize.h&quot;

You can use forward reference.

&gt; Source/WebKit/blackberry/WebCoreSupport/DatePickerClient.h:25
&gt; +#include &quot;WebString.h&quot;

Ditto.

&gt; Source/WebKit/blackberry/WebCoreSupport/DatePickerClient.h:55
&gt; +    HTMLInputElement* m_element;

Can you recheck the private situation again? I think at least the member vars can be made private.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>666942</commentid>
    <comment_count>7</comment_count>
      <attachid>151748</attachid>
    <who name="Crystal Zhang">haizhang</who>
    <bug_when>2012-07-11 12:20:03 -0700</bug_when>
    <thetext>Created attachment 151748
updated patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>666948</commentid>
    <comment_count>8</comment_count>
      <attachid>151748</attachid>
    <who name="Rob Buis">rwlbuis</who>
    <bug_when>2012-07-11 12:24:46 -0700</bug_when>
    <thetext>Comment on attachment 151748
updated patch

LGTM.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>667005</commentid>
    <comment_count>9</comment_count>
      <attachid>151748</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-07-11 13:21:13 -0700</bug_when>
    <thetext>Comment on attachment 151748
updated patch

Clearing flags on attachment: 151748

Committed r122364: &lt;http://trac.webkit.org/changeset/122364&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>667006</commentid>
    <comment_count>10</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-07-11 13:21:18 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>151535</attachid>
            <date>2012-07-10 15:03:34 -0700</date>
            <delta_ts>2012-07-11 11:30:16 -0700</delta_ts>
            <desc>patch</desc>
            <filename>0001-2012-07-10-Crystal-Zhang-haizhang-rim.com.patch</filename>
            <type>text/plain</type>
            <size>13873</size>
            <attacher name="Crystal Zhang">haizhang</attacher>
            
              <data encoding="base64">RnJvbSA1YzkzM2I3M2E5ODViODAwM2E0NjI0ZTI5MzlkNjI3OTBkYzExN2QwIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBDcnlzdGFsIFpoYW5nIDxoYWl6aGFuZ0ByaW0uY29tPgpEYXRl
OiBUdWUsIDEwIEp1bCAyMDEyIDE3OjUxOjQyIC0wNDAwClN1YmplY3Q6IFtQQVRDSF0gMjAxMi0w
Ny0xMCAgQ3J5c3RhbCBaaGFuZyAgPGhhaXpoYW5nQHJpbS5jb20+CgogICAgICAgIFtCbGFja0Jl
cnJ5XSBJbXBsZW1lbnQgRGF0ZS9UaW1lIHBpY2tlcgogICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD05MDkxMQoKICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KCiAgICAgICAgSW1wbGVtZW50IEhUTUwgRGF0ZS9UaW1lIHBpY2tlci4KCiAgICAg
ICAgKiBXZWJDb3JlU3VwcG9ydC9EYXRlUGlja2VyQ2xpZW50LmNwcDogQWRkZWQuCiAgICAgICAg
KFdlYkNvcmUpOgogICAgICAgIChXZWJDb3JlOjpEYXRlUGlja2VyQ2xpZW50OjpEYXRlUGlja2Vy
Q2xpZW50KToKICAgICAgICAoV2ViQ29yZTo6RGF0ZVBpY2tlckNsaWVudDo6fkRhdGVQaWNrZXJD
bGllbnQpOgogICAgICAgIChXZWJDb3JlOjpEYXRlUGlja2VyQ2xpZW50OjpnZW5lcmF0ZUhUTUwp
OgogICAgICAgIChXZWJDb3JlOjpEYXRlUGlja2VyQ2xpZW50OjpjbG9zZVBvcHVwKToKICAgICAg
ICAoV2ViQ29yZTo6RGF0ZVBpY2tlckNsaWVudDo6Y29udGVudFNpemUpOgogICAgICAgIChXZWJD
b3JlOjpEYXRlUGlja2VyQ2xpZW50OjpodG1sU291cmNlKToKICAgICAgICAoV2ViQ29yZTo6RGF0
ZVBpY2tlckNsaWVudDo6c2V0VmFsdWVBbmRDbG9zZVBvcHVwKToKICAgICAgICAoV2ViQ29yZTo6
RGF0ZVBpY2tlckNsaWVudDo6ZGlkQ2xvc2VQb3B1cCk6CiAgICAgICAgKFdlYkNvcmU6OkRhdGVQ
aWNrZXJDbGllbnQ6OndyaXRlRG9jdW1lbnQpOgogICAgICAgICogV2ViQ29yZVN1cHBvcnQvRGF0
ZVBpY2tlckNsaWVudC5oOiBBZGRlZC4KICAgICAgICAoV2ViS2l0KToKICAgICAgICAoV2ViQ29y
ZSk6CiAgICAgICAgKERhdGVQaWNrZXJDbGllbnQpOgogICAgICAgICogV2ViS2l0U3VwcG9ydC9J
bnB1dEhhbmRsZXIuY3BwOgogICAgICAgIChCbGFja0JlcnJ5OjpXZWJLaXQ6OklucHV0SGFuZGxl
cjo6b3BlbkRhdGVQb3B1cCk6Ci0tLQogU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgfCAgIDExICsrCiBTb3VyY2UvV2ViS2l0L1BsYXRmb3JtQmxhY2tC
ZXJyeS5jbWFrZSAgICAgICAgICAgICB8ICAgIDEgKwogU291cmNlL1dlYktpdC9ibGFja2JlcnJ5
L0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgfCAgIDI3ICsrKysKIC4uLi9ibGFja2JlcnJ5L1dl
YkNvcmVTdXBwb3J0L0RhdGVQaWNrZXJDbGllbnQuY3BwIHwgIDEzOCArKysrKysrKysrKysrKysr
KysrKwogLi4uL2JsYWNrYmVycnkvV2ViQ29yZVN1cHBvcnQvRGF0ZVBpY2tlckNsaWVudC5oICAg
fCAgIDU5ICsrKysrKysrKwogLi4uL2JsYWNrYmVycnkvV2ViS2l0U3VwcG9ydC9JbnB1dEhhbmRs
ZXIuY3BwICAgICAgfCAgIDI4ICsrLS0KIDYgZmlsZXMgY2hhbmdlZCwgMjU2IGluc2VydGlvbnMo
KyksIDggZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgU291cmNlL1dlYktpdC9ibGFj
a2JlcnJ5L1dlYkNvcmVTdXBwb3J0L0RhdGVQaWNrZXJDbGllbnQuY3BwCiBjcmVhdGUgbW9kZSAx
MDA2NDQgU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYkNvcmVTdXBwb3J0L0RhdGVQaWNrZXJD
bGllbnQuaAoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dl
YktpdC9DaGFuZ2VMb2cKaW5kZXggODhmZTI3My4uODFjODIyMSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwxNCBAQAorMjAxMi0wNy0xMCAgQ3J5c3RhbCBaaGFuZyAgPGhhaXpoYW5nQHJpbS5jb20+CisK
KyAgICAgICAgW0JsYWNrQmVycnldIEltcGxlbWVudCBEYXRlL1RpbWUgcGlja2VyCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05MDkxMQorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBmaWxlcyBpbnRvIG1h
a2UgZmlsZS4KKworICAgICAgICAqIFBsYXRmb3JtQmxhY2tCZXJyeS5jbWFrZToKKwogMjAxMi0w
Ny0wOSAgQ2hyaXN0b3BoZSBEdW1leiAgPGNocmlzdG9waGUuZHVtZXpAaW50ZWwuY29tPgogCiAg
ICAgICAgIFtFRkxdIEJhdHRlcnkgc3RhdHVzIGNvZGUgbmVlZHMgcmVmYWN0b3JpbmcgdG8gYmUg
cmV1c2VkIGluIFdlYktpdDIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm1CbGFj
a0JlcnJ5LmNtYWtlIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybUJsYWNrQmVycnkuY21ha2UKaW5k
ZXggZmE2MWI4Yi4uYWFjMDY4YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybUJs
YWNrQmVycnkuY21ha2UKKysrIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybUJsYWNrQmVycnkuY21h
a2UKQEAgLTkxLDYgKzkxLDcgQEAgTElTVChBUFBFTkQgV2ViS2l0X1NPVVJDRVMKICAgICBibGFj
a2JlcnJ5L1dlYkNvcmVTdXBwb3J0L1ZpYnJhdGlvbkNsaWVudEJsYWNrQmVycnkuY3BwCiAgICAg
YmxhY2tiZXJyeS9XZWJDb3JlU3VwcG9ydC9QYWdlUG9wdXBCbGFja0JlcnJ5LmNwcAogICAgIGJs
YWNrYmVycnkvV2ViQ29yZVN1cHBvcnQvU2VsZWN0UG9wdXBDbGllbnQuY3BwCisgICAgYmxhY2ti
ZXJyeS9XZWJDb3JlU3VwcG9ydC9EYXRlUGlja2VyQ2xpZW50LmNwcAogICAgIGJsYWNrYmVycnkv
V2ViS2l0U3VwcG9ydC9CYWNraW5nU3RvcmVDb21wb3NpdGluZ1N1cmZhY2UuY3BwCiAgICAgYmxh
Y2tiZXJyeS9XZWJLaXRTdXBwb3J0L0JhY2tpbmdTdG9yZVRpbGUuY3BwCiAgICAgYmxhY2tiZXJy
eS9XZWJLaXRTdXBwb3J0L0JhY2tpbmdTdG9yZUNsaWVudC5jcHAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvYmxhY2tiZXJyeS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkv
Q2hhbmdlTG9nCmluZGV4IGEzMDY1YWMuLjcxYzYzMTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvYmxhY2tiZXJyeS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0No
YW5nZUxvZwpAQCAtMSwzICsxLDMwIEBACisyMDEyLTA3LTEwICBDcnlzdGFsIFpoYW5nICA8aGFp
emhhbmdAcmltLmNvbT4KKworICAgICAgICBbQmxhY2tCZXJyeV0gSW1wbGVtZW50IERhdGUvVGlt
ZSBwaWNrZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTkwOTExCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
SW1wbGVtZW50IEhUTUwgRGF0ZS9UaW1lIHBpY2tlci4KKworICAgICAgICAqIFdlYkNvcmVTdXBw
b3J0L0RhdGVQaWNrZXJDbGllbnQuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmUpOgorICAg
ICAgICAoV2ViQ29yZTo6RGF0ZVBpY2tlckNsaWVudDo6RGF0ZVBpY2tlckNsaWVudCk6CisgICAg
ICAgIChXZWJDb3JlOjpEYXRlUGlja2VyQ2xpZW50Ojp+RGF0ZVBpY2tlckNsaWVudCk6CisgICAg
ICAgIChXZWJDb3JlOjpEYXRlUGlja2VyQ2xpZW50OjpnZW5lcmF0ZUhUTUwpOgorICAgICAgICAo
V2ViQ29yZTo6RGF0ZVBpY2tlckNsaWVudDo6Y2xvc2VQb3B1cCk6CisgICAgICAgIChXZWJDb3Jl
OjpEYXRlUGlja2VyQ2xpZW50Ojpjb250ZW50U2l6ZSk6CisgICAgICAgIChXZWJDb3JlOjpEYXRl
UGlja2VyQ2xpZW50OjpodG1sU291cmNlKToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGVQaWNrZXJD
bGllbnQ6OnNldFZhbHVlQW5kQ2xvc2VQb3B1cCk6CisgICAgICAgIChXZWJDb3JlOjpEYXRlUGlj
a2VyQ2xpZW50OjpkaWRDbG9zZVBvcHVwKToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGVQaWNrZXJD
bGllbnQ6OndyaXRlRG9jdW1lbnQpOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0RhdGVQaWNr
ZXJDbGllbnQuaDogQWRkZWQuCisgICAgICAgIChXZWJLaXQpOgorICAgICAgICAoV2ViQ29yZSk6
CisgICAgICAgIChEYXRlUGlja2VyQ2xpZW50KToKKyAgICAgICAgKiBXZWJLaXRTdXBwb3J0L0lu
cHV0SGFuZGxlci5jcHA6CisgICAgICAgIChCbGFja0JlcnJ5OjpXZWJLaXQ6OklucHV0SGFuZGxl
cjo6b3BlbkRhdGVQb3B1cCk6CisKIDIwMTItMDctMTAgIEFkYW0gQmFydGggIDxhYmFydGhAd2Vi
a2l0Lm9yZz4KIAogICAgICAgICBMYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQ29uZmlndXJhdGlv
bkZvclZpZXdwb3J0IHNob3VsZCBtb3ZlIHRvIEludGVybmFscwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9ibGFja2JlcnJ5L1dlYkNvcmVTdXBwb3J0L0RhdGVQaWNrZXJDbGllbnQuY3BwIGIv
U291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYkNvcmVTdXBwb3J0L0RhdGVQaWNrZXJDbGllbnQu
Y3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjVlMjAzZTQKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViQ29yZVN1cHBvcnQvRGF0ZVBp
Y2tlckNsaWVudC5jcHAKQEAgLTAsMCArMSwxMzggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTIgUmVzZWFyY2ggSW4gTW90aW9uIExpbWl0ZWQuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0
IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBH
ZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdh
cmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChh
dCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBsaWJyYXJ5IGlz
IGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQg
V0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBv
ZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NF
LiAgU2VlIHRoZSBHTlUKKyAqIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3Jl
IGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUg
R05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhbG9uZyB3aXRoIHRoaXMgbGli
cmFyeTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQorICogRm91bmRhdGlvbiwg
SW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwgQm9zdG9uLCBNQSAgMDIxMTAt
MTMwMSAgVVNBCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkRhdGVQaWNr
ZXJDbGllbnQuaCIKKworI2luY2x1ZGUgIkNocm9tZS5oIgorI2luY2x1ZGUgIkNocm9tZUNsaWVu
dC5oIgorI2luY2x1ZGUgIkRvY3VtZW50LmgiCisjaW5jbHVkZSAiRG9jdW1lbnRXcml0ZXIuaCIK
KyNpbmNsdWRlICJIVE1MSW5wdXRFbGVtZW50LmgiCisjaW5jbHVkZSAiUGFnZS5oIgorI2luY2x1
ZGUgIlBhZ2VQb3B1cC5oIgorI2luY2x1ZGUgIlBvcHVwUGlja2VyLmgiCisjaW5jbHVkZSAiUmVu
ZGVyT2JqZWN0LmgiCisjaW5jbHVkZSAiV2ViUGFnZV9wLmgiCisKKyNpbmNsdWRlIDx3dGYvdGV4
dC9TdHJpbmdCdWlsZGVyLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworRGF0ZVBpY2tlckNs
aWVudDo6RGF0ZVBpY2tlckNsaWVudChCbGFja0JlcnJ5OjpQbGF0Zm9ybTo6QmxhY2tCZXJyeUlu
cHV0VHlwZSB0eXBlLCBjb25zdCBCbGFja0JlcnJ5OjpXZWJLaXQ6OldlYlN0cmluZyYgdmFsdWUs
IGNvbnN0IEJsYWNrQmVycnk6OldlYktpdDo6V2ViU3RyaW5nJiBtaW4sIGNvbnN0IEJsYWNrQmVy
cnk6OldlYktpdDo6V2ViU3RyaW5nJiBtYXgsIGRvdWJsZSBzdGVwLCBCbGFja0JlcnJ5OjpXZWJL
aXQ6OldlYlBhZ2VQcml2YXRlKiB3ZWJQYWdlLCBIVE1MSW5wdXRFbGVtZW50KiBlbGVtZW50KQor
ICAgIDogbV90eXBlKHR5cGUpCisgICAgLCBtX3dlYlBhZ2Uod2ViUGFnZSkKKyAgICAsIG1fZWxl
bWVudChlbGVtZW50KQoreworICAgIGdlbmVyYXRlSFRNTCh0eXBlLCB2YWx1ZSwgbWluLCBtYXgs
IHN0ZXApOworfQorCitEYXRlUGlja2VyQ2xpZW50Ojp+RGF0ZVBpY2tlckNsaWVudCgpCit7Cit9
CisKK3ZvaWQgRGF0ZVBpY2tlckNsaWVudDo6Z2VuZXJhdGVIVE1MKEJsYWNrQmVycnk6OlBsYXRm
b3JtOjpCbGFja0JlcnJ5SW5wdXRUeXBlIHR5cGUsIGNvbnN0IEJsYWNrQmVycnk6OldlYktpdDo6
V2ViU3RyaW5nJiB2YWx1ZSwgY29uc3QgQmxhY2tCZXJyeTo6V2ViS2l0OjpXZWJTdHJpbmcmIG1p
biwgY29uc3QgQmxhY2tCZXJyeTo6V2ViS2l0OjpXZWJTdHJpbmcmIG1heCwgZG91YmxlIHN0ZXAp
Cit7CisgICAgU3RyaW5nQnVpbGRlciBzb3VyY2U7CisgICAgc291cmNlLmFwcGVuZCgiPGh0bWw+
PGhlYWQ+PG1ldGEgaHR0cC1lcXVpdj1cIkNvbnRlbnQtVHlwZVwiIGNvbnRlbnQ9XCJ0ZXh0L2h0
bWw7IGNoYXJzZXQ9VVRGLThcIi8+PHN0eWxlPlxuIik7CisgICAgLy8gSW5jbHVkZSBDU1MgZmls
ZS4KKyAgICBzb3VyY2UuYXBwZW5kKHBvcHVwQ29udHJvbEJsYWNrQmVycnlDc3MsCisgICAgICAg
ICAgICBzaXplb2YocG9wdXBDb250cm9sQmxhY2tCZXJyeUNzcykpOworICAgIHNvdXJjZS5hcHBl
bmQoIjwvc3R5bGU+XG48c3R5bGU+Iik7CisgICAgc291cmNlLmFwcGVuZCh0aW1lQ29udHJvbEJs
YWNrQmVycnlDc3MsCisgICAgICAgICAgICBzaXplb2YodGltZUNvbnRyb2xCbGFja0JlcnJ5Q3Nz
KSk7CisgICAgc291cmNlLmFwcGVuZCgiPC9zdHlsZT48L2hlYWQ+PGJvZHk+XG4iKTsKKyAgICBz
b3VyY2UuYXBwZW5kKCI8c2NyaXB0PlxuIik7CisgICAgc291cmNlLmFwcGVuZCgid2luZG93LmFk
ZEV2ZW50TGlzdGVuZXIoJ2xvYWQnLCBmdW5jdGlvbiAoKSB7Iik7CisgICAgc3dpdGNoICh0eXBl
KSB7CisgICAgY2FzZSBCbGFja0JlcnJ5OjpQbGF0Zm9ybTo6SW5wdXRUeXBlRGF0ZToKKyAgICAg
ICAgc291cmNlLmFwcGVuZCgid2luZG93LnBvcHVwY29udHJvbC5zaG93KFwiRGF0ZVwiLCAiKTsK
KyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBCbGFja0JlcnJ5OjpQbGF0Zm9ybTo6SW5wdXRUeXBl
VGltZToKKyAgICAgICAgc291cmNlLmFwcGVuZCgid2luZG93LnBvcHVwY29udHJvbC5zaG93KFwi
VGltZVwiLCAiKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBCbGFja0JlcnJ5OjpQbGF0Zm9y
bTo6SW5wdXRUeXBlRGF0ZVRpbWU6CisgICAgICAgIHNvdXJjZS5hcHBlbmQoIndpbmRvdy5wb3B1
cGNvbnRyb2wuc2hvdyhcIkRhdGVUaW1lXCIsICIpOworICAgICAgICBicmVhazsKKyAgICBjYXNl
IEJsYWNrQmVycnk6OlBsYXRmb3JtOjpJbnB1dFR5cGVEYXRlVGltZUxvY2FsOgorICAgICAgICBz
b3VyY2UuYXBwZW5kKCJ3aW5kb3cucG9wdXBjb250cm9sLnNob3coXCJEYXRlVGltZUxvY2FsXCIs
ICIpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIEJsYWNrQmVycnk6OlBsYXRmb3JtOjpJbnB1
dFR5cGVNb250aDoKKyAgICBjYXNlIEJsYWNrQmVycnk6OlBsYXRmb3JtOjpJbnB1dFR5cGVXZWVr
OgorICAgIGRlZmF1bHQ6CisgICAgICAgIGJyZWFrOworICAgIH0KKyAgICBpZiAoIXZhbHVlLmlz
RW1wdHkoKSkKKyAgICAgICAgc291cmNlLmFwcGVuZCgiXCIiICsgU3RyaW5nKHZhbHVlLmltcGwo
KSkgKyAiXCIsICIpOworICAgIGVsc2UKKyAgICAgICAgc291cmNlLmFwcGVuZCgiMCwgIik7CisK
KyAgICBpZiAoIW1pbi5pc0VtcHR5KCkpCisgICAgICAgIHNvdXJjZS5hcHBlbmQoU3RyaW5nKG1p
bi5pbXBsKCkpICsgIiwgIik7CisgICAgZWxzZQorICAgICAgICBzb3VyY2UuYXBwZW5kKCIwLCAi
KTsKKyAgICBpZiAoIW1heC5pc0VtcHR5KCkpCisgICAgICAgIHNvdXJjZS5hcHBlbmQoU3RyaW5n
KG1heC5pbXBsKCkpICsgIiwgIik7CisgICAgZWxzZQorICAgICAgICBzb3VyY2UuYXBwZW5kKCIw
LCAiKTsKKyAgICBzb3VyY2UuYXBwZW5kKFN0cmluZzo6bnVtYmVyKHN0ZXApKTsKKyAgICBzb3Vy
Y2UuYXBwZW5kKCIpOyBcbiB9KTsgXG4iKTsKKyAgICBzb3VyY2UuYXBwZW5kKHRpbWVDb250cm9s
QmxhY2tCZXJyeUpzLCBzaXplb2YodGltZUNvbnRyb2xCbGFja0JlcnJ5SnMpKTsKKyAgICBzb3Vy
Y2UuYXBwZW5kKCI8L3NjcmlwdD5cbiIpOworICAgIHNvdXJjZS5hcHBlbmQoIjwvYm9keT4gPC9o
dG1sPlxuIik7CisgICAgbV9zb3VyY2UgPSBzb3VyY2UudG9TdHJpbmcoKTsKK30KKwordm9pZCBE
YXRlUGlja2VyQ2xpZW50OjpjbG9zZVBvcHVwKCkKK3sKKyAgICBBU1NFUlQobV93ZWJQYWdlKTsK
KyAgICBtX3dlYlBhZ2UtPm1fcGFnZS0+Y2hyb21lKCktPmNsaWVudCgpLT5jbG9zZVBhZ2VQb3B1
cCgwKTsKK30KKworSW50U2l6ZSBEYXRlUGlja2VyQ2xpZW50Ojpjb250ZW50U2l6ZSgpCit7Cisg
ICAgLy8gRml4bWU6IHdpbGwgZ2VuZXJhdGUgY29udGVudCBzaXplIGR5bmFtaWNhbGx5CisgICAg
cmV0dXJuIEludFNpemUoMzIwLCAyNTYpOworfQorCitTdHJpbmcgRGF0ZVBpY2tlckNsaWVudDo6
aHRtbFNvdXJjZSgpCit7CisgICAgcmV0dXJuIG1fc291cmNlOworfQorCit2b2lkIERhdGVQaWNr
ZXJDbGllbnQ6OnNldFZhbHVlQW5kQ2xvc2VQb3B1cChpbnQsIGNvbnN0IFN0cmluZyYgdmFsdWUp
Cit7CisgICAgLy8gUmV0dXJuIC0xIGlmIHVzZXIgY2FuY2VsIHRoZSBzZWxlY3Rpb24uCisgICAg
aWYgKCF2YWx1ZS5jb250YWlucygiLTEiKSkKKyAgICAgICAgbV9lbGVtZW50LT5zZXRWYWx1ZSh2
YWx1ZSk7CisgICAgY2xvc2VQb3B1cCgpOworfQorCit2b2lkIERhdGVQaWNrZXJDbGllbnQ6OmRp
ZENsb3NlUG9wdXAoKQoreworICAgIG1fd2ViUGFnZSA9IDA7Cit9CisKK3ZvaWQgRGF0ZVBpY2tl
ckNsaWVudDo6d3JpdGVEb2N1bWVudChEb2N1bWVudFdyaXRlciYgd3JpdGVyKQoreworICAgIHdy
aXRlci5zZXRNSU1FVHlwZSgidGV4dC9odG1sIik7CisgICAgd3JpdGVyLmJlZ2luKEtVUkwoKSk7
CisgICAgd3JpdGVyLmFkZERhdGEobV9zb3VyY2UudXRmOCgpLmRhdGEoKSwgbV9zb3VyY2UudXRm
OCgpLmxlbmd0aCgpKTsKKyAgICB3cml0ZXIuZW5kKCk7Cit9Cit9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViQ29yZVN1cHBvcnQvRGF0ZVBpY2tlckNsaWVudC5oIGIv
U291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYkNvcmVTdXBwb3J0L0RhdGVQaWNrZXJDbGllbnQu
aApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mYTFmZmJjCi0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYkNvcmVTdXBwb3J0L0RhdGVQaWNr
ZXJDbGllbnQuaApAQCAtMCwwICsxLDU5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIFJl
c2VhcmNoIEluIE1vdGlvbiBMaW1pdGVkLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFRo
aXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQv
b3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJh
bCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZv
dW5kYXRpb247IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91
ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0
cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhP
VVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAq
IE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNl
ZSB0aGUgR05VCisgKiBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRh
aWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBM
ZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7
IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKKyAqIEZvdW5kYXRpb24sIEluYy4s
IDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgIDAyMTEwLTEzMDEg
IFVTQQorICovCisKKyNpZm5kZWYgRGF0ZVBpY2tlckNsaWVudF9oCisjZGVmaW5lIERhdGVQaWNr
ZXJDbGllbnRfaAorCisjaW5jbHVkZSAiSW50U2l6ZS5oIgorI2luY2x1ZGUgIlBhZ2VQb3B1cENs
aWVudC5oIgorI2luY2x1ZGUgIldURlN0cmluZy5oIgorI2luY2x1ZGUgIldlYlN0cmluZy5oIgor
I2luY2x1ZGUgPEJsYWNrQmVycnlQbGF0Zm9ybUlucHV0RXZlbnRzLmg+CisKK25hbWVzcGFjZSBC
bGFja0JlcnJ5IHsKK25hbWVzcGFjZSBXZWJLaXQgeworY2xhc3MgV2ViUGFnZVByaXZhdGU7Cit9
Cit9CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKK2NsYXNzIERvY3VtZW50V3JpdGVyOworY2xhc3Mg
SFRNTElucHV0RWxlbWVudDsKK2NsYXNzIFBhZ2VQb3B1cDsKKworY2xhc3MgRGF0ZVBpY2tlckNs
aWVudCA6IHB1YmxpYyBQYWdlUG9wdXBDbGllbnQgeworcHVibGljOgorICAgIERhdGVQaWNrZXJD
bGllbnQoQmxhY2tCZXJyeTo6UGxhdGZvcm06OkJsYWNrQmVycnlJbnB1dFR5cGUsIGNvbnN0IEJs
YWNrQmVycnk6OldlYktpdDo6V2ViU3RyaW5nJiB2YWx1ZSwgY29uc3QgQmxhY2tCZXJyeTo6V2Vi
S2l0OjpXZWJTdHJpbmcmIG1pbiwgY29uc3QgQmxhY2tCZXJyeTo6V2ViS2l0OjpXZWJTdHJpbmcm
IG1heCwgZG91YmxlIHN0ZXAsIEJsYWNrQmVycnk6OldlYktpdDo6V2ViUGFnZVByaXZhdGUqLCBI
VE1MSW5wdXRFbGVtZW50Kik7CisgICAgfkRhdGVQaWNrZXJDbGllbnQoKTsKKworICAgIHZvaWQg
Z2VuZXJhdGVIVE1MKEJsYWNrQmVycnk6OlBsYXRmb3JtOjpCbGFja0JlcnJ5SW5wdXRUeXBlLCBj
b25zdCBCbGFja0JlcnJ5OjpXZWJLaXQ6OldlYlN0cmluZyYgdmFsdWUsIGNvbnN0IEJsYWNrQmVy
cnk6OldlYktpdDo6V2ViU3RyaW5nJiBtaW4sIGNvbnN0IEJsYWNrQmVycnk6OldlYktpdDo6V2Vi
U3RyaW5nJiBtYXgsIGRvdWJsZSBzdGVwKTsKKworICAgIHZvaWQgd3JpdGVEb2N1bWVudChEb2N1
bWVudFdyaXRlciYpOworICAgIHZpcnR1YWwgSW50U2l6ZSBjb250ZW50U2l6ZSgpOworICAgIHZp
cnR1YWwgU3RyaW5nIGh0bWxTb3VyY2UoKTsKKyAgICB2b2lkIHNldFZhbHVlQW5kQ2xvc2VQb3B1
cChpbnQsIGNvbnN0IFN0cmluZyYpOworICAgIHZvaWQgZGlkQ2xvc2VQb3B1cCgpOworICAgIHZv
aWQgY2xvc2VQb3B1cCgpOworCisgICAgQmxhY2tCZXJyeTo6UGxhdGZvcm06OkJsYWNrQmVycnlJ
bnB1dFR5cGUgbV90eXBlOworICAgIFN0cmluZyBtX3NvdXJjZTsKKyAgICBCbGFja0JlcnJ5OjpX
ZWJLaXQ6OldlYlBhZ2VQcml2YXRlKiBtX3dlYlBhZ2U7CisgICAgSFRNTElucHV0RWxlbWVudCog
bV9lbGVtZW50OworfTsKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKyNlbmRpZgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYktpdFN1cHBvcnQvSW5wdXRIYW5kbGVyLmNw
cCBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJLaXRTdXBwb3J0L0lucHV0SGFuZGxlci5j
cHAKaW5kZXggYjNmNTQxMy4uMmU1YTdjYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9ibGFj
a2JlcnJ5L1dlYktpdFN1cHBvcnQvSW5wdXRIYW5kbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L2JsYWNrYmVycnkvV2ViS2l0U3VwcG9ydC9JbnB1dEhhbmRsZXIuY3BwCkBAIC0yNSw2ICsyNSw3
IEBACiAjaW5jbHVkZSAiQ1N0cmluZy5oIgogI2luY2x1ZGUgIkNocm9tZS5oIgogI2luY2x1ZGUg
IkRPTVN1cHBvcnQuaCIKKyNpbmNsdWRlICJEYXRlUGlja2VyQ2xpZW50LmgiCiAjaW5jbHVkZSAi
RG9jdW1lbnQuaCIKICNpbmNsdWRlICJEb2N1bWVudExvYWRlci5oIgogI2luY2x1ZGUgIkRvY3Vt
ZW50TWFya2VyQ29udHJvbGxlci5oIgpAQCAtNDk1LDE1ICs0OTYsMjYgQEAgYm9vbCBJbnB1dEhh
bmRsZXI6Om9wZW5EYXRlUG9wdXAoSFRNTElucHV0RWxlbWVudCogZWxlbWVudCwgQmxhY2tCZXJy
eUlucHV0VHlwZQogICAgIGlmIChpc0FjdGl2ZVRleHRFZGl0KCkpCiAgICAgICAgIGNsZWFyQ3Vy
cmVudEZvY3VzRWxlbWVudCgpOwogCi0gICAgbV9jdXJyZW50Rm9jdXNFbGVtZW50ID0gZWxlbWVu
dDsKLSAgICBtX2N1cnJlbnRGb2N1c0VsZW1lbnRUeXBlID0gVGV4dFBvcHVwOworICAgIHN3aXRj
aCAodHlwZSkgeworICAgIGNhc2UgQmxhY2tCZXJyeTo6UGxhdGZvcm06OklucHV0VHlwZURhdGU6
CisgICAgY2FzZSBCbGFja0JlcnJ5OjpQbGF0Zm9ybTo6SW5wdXRUeXBlVGltZToKKyAgICBjYXNl
IEJsYWNrQmVycnk6OlBsYXRmb3JtOjpJbnB1dFR5cGVEYXRlVGltZToKKyAgICBjYXNlIEJsYWNr
QmVycnk6OlBsYXRmb3JtOjpJbnB1dFR5cGVEYXRlVGltZUxvY2FsOiB7CisgICAgICAgIFdURjo6
U3RyaW5nIHZhbHVlID0gZWxlbWVudC0+dmFsdWUoKTsKKyAgICAgICAgV1RGOjpTdHJpbmcgbWlu
ID0gZWxlbWVudC0+Z2V0QXR0cmlidXRlKEhUTUxOYW1lczo6bWluQXR0cikuc3RyaW5nKCk7Cisg
ICAgICAgIFdURjo6U3RyaW5nIG1heCA9IGVsZW1lbnQtPmdldEF0dHJpYnV0ZShIVE1MTmFtZXM6
Om1heEF0dHIpLnN0cmluZygpOworICAgICAgICBkb3VibGUgc3RlcCA9IGVsZW1lbnQtPmdldEF0
dHJpYnV0ZShIVE1MTmFtZXM6OnN0ZXBBdHRyKS50b0RvdWJsZSgpOworCisgICAgICAgIERhdGVQ
aWNrZXJDbGllbnQqIGNsaWVudCA9IG5ldyBEYXRlUGlja2VyQ2xpZW50KHR5cGUsIHZhbHVlLCBt
aW4sIG1heCwgc3RlcCwgIG1fd2ViUGFnZSwgZWxlbWVudCk7CisgICAgICAgIC8vIEZhaWwgdG8g
Y3JlYXRlIEhUTUwgcG9wdXAsIHVzZSB0aGUgb2xkIHBhdGgKKyAgICAgICAgaWYgKCFtX3dlYlBh
Z2UtPm1fcGFnZS0+Y2hyb21lKCktPmNsaWVudCgpLT5vcGVuUGFnZVBvcHVwKGNsaWVudCwgIFdl
YkNvcmU6OkludFJlY3QoKSkpCisgICAgICAgICAgICBtX3dlYlBhZ2UtPm1fY2xpZW50LT5vcGVu
RGF0ZVRpbWVQb3B1cCh0eXBlLCB2YWx1ZSwgbWluLCBtYXgsIHN0ZXApOwogCi0gICAgV1RGOjpT
dHJpbmcgdmFsdWUgPSBlbGVtZW50LT52YWx1ZSgpOwotICAgIFdURjo6U3RyaW5nIG1pbiA9IGVs
ZW1lbnQtPmdldEF0dHJpYnV0ZShIVE1MTmFtZXM6Om1pbkF0dHIpLnN0cmluZygpOwotICAgIFdU
Rjo6U3RyaW5nIG1heCA9IGVsZW1lbnQtPmdldEF0dHJpYnV0ZShIVE1MTmFtZXM6Om1heEF0dHIp
LnN0cmluZygpOwotICAgIGRvdWJsZSBzdGVwID0gZWxlbWVudC0+Z2V0QXR0cmlidXRlKEhUTUxO
YW1lczo6c3RlcEF0dHIpLnRvRG91YmxlKCk7Ci0gICAgbV93ZWJQYWdlLT5tX2NsaWVudC0+b3Bl
bkRhdGVUaW1lUG9wdXAodHlwZSwgdmFsdWUsIG1pbiwgbWF4LCBzdGVwKTsKLSAgICByZXR1cm4g
dHJ1ZTsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0KKyAgICBkZWZhdWx0OiAvLyBP
dGhlciB0eXBlcyBub3Qgc3VwcG9ydGVkCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CiB9
CiAKIGJvb2wgSW5wdXRIYW5kbGVyOjpvcGVuQ29sb3JQb3B1cChIVE1MSW5wdXRFbGVtZW50KiBl
bGVtZW50KQotLSAKMS43LjEwLjEKCg==
</data>
<flag name="review"
          id="160026"
          type_id="1"
          status="-"
          setter="rwlbuis"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>151739</attachid>
            <date>2012-07-11 11:30:16 -0700</date>
            <delta_ts>2012-07-11 12:20:03 -0700</delta_ts>
            <desc>updated patch</desc>
            <filename>0001-2012-07-10-Crystal-Zhang-haizhang-rim.com.patch</filename>
            <type>text/plain</type>
            <size>14827</size>
            <attacher name="Crystal Zhang">haizhang</attacher>
            
              <data encoding="base64">RnJvbSBlZjNiYzI0MTZkMzk3YzlkNjNhYjY0ZjgzMTYxNTRmZjJhY2IyYjNiIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBDcnlzdGFsIFpoYW5nIDxoYWl6aGFuZ0ByaW0uY29tPgpEYXRl
OiBUdWUsIDEwIEp1bCAyMDEyIDE3OjUxOjQyIC0wNDAwClN1YmplY3Q6IFtQQVRDSCAxLzJdIDIw
MTItMDctMTAgIENyeXN0YWwgWmhhbmcgIDxoYWl6aGFuZ0ByaW0uY29tPgoKICAgICAgICBbQmxh
Y2tCZXJyeV0gSW1wbGVtZW50IERhdGUvVGltZSBwaWNrZXIKICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTA5MTEKCiAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCgogICAgICAgIEltcGxlbWVudCBIVE1MIERhdGUvVGltZSBwaWNrZXIuCgog
ICAgICAgICogV2ViQ29yZVN1cHBvcnQvRGF0ZVBpY2tlckNsaWVudC5jcHA6IEFkZGVkLgogICAg
ICAgIChXZWJDb3JlKToKICAgICAgICAoV2ViQ29yZTo6RGF0ZVBpY2tlckNsaWVudDo6RGF0ZVBp
Y2tlckNsaWVudCk6CiAgICAgICAgKFdlYkNvcmU6OkRhdGVQaWNrZXJDbGllbnQ6On5EYXRlUGlj
a2VyQ2xpZW50KToKICAgICAgICAoV2ViQ29yZTo6RGF0ZVBpY2tlckNsaWVudDo6Z2VuZXJhdGVI
VE1MKToKICAgICAgICAoV2ViQ29yZTo6RGF0ZVBpY2tlckNsaWVudDo6Y2xvc2VQb3B1cCk6CiAg
ICAgICAgKFdlYkNvcmU6OkRhdGVQaWNrZXJDbGllbnQ6OmNvbnRlbnRTaXplKToKICAgICAgICAo
V2ViQ29yZTo6RGF0ZVBpY2tlckNsaWVudDo6aHRtbFNvdXJjZSk6CiAgICAgICAgKFdlYkNvcmU6
OkRhdGVQaWNrZXJDbGllbnQ6OnNldFZhbHVlQW5kQ2xvc2VQb3B1cCk6CiAgICAgICAgKFdlYkNv
cmU6OkRhdGVQaWNrZXJDbGllbnQ6OmRpZENsb3NlUG9wdXApOgogICAgICAgIChXZWJDb3JlOjpE
YXRlUGlja2VyQ2xpZW50Ojp3cml0ZURvY3VtZW50KToKICAgICAgICAqIFdlYkNvcmVTdXBwb3J0
L0RhdGVQaWNrZXJDbGllbnQuaDogQWRkZWQuCiAgICAgICAgKFdlYktpdCk6CiAgICAgICAgKFdl
YkNvcmUpOgogICAgICAgIChEYXRlUGlja2VyQ2xpZW50KToKICAgICAgICAqIFdlYktpdFN1cHBv
cnQvSW5wdXRIYW5kbGVyLmNwcDoKICAgICAgICAoQmxhY2tCZXJyeTo6V2ViS2l0OjpJbnB1dEhh
bmRsZXI6Om9wZW5EYXRlUG9wdXApOgotLS0KIFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHwgICAxMSArKwogU291cmNlL1dlYktpdC9QbGF0Zm9ybUJs
YWNrQmVycnkuY21ha2UgICAgICAgICAgICAgfCAgICAxICsKIFNvdXJjZS9XZWJLaXQvYmxhY2ti
ZXJyeS9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgIHwgICAyOSArKysrCiAuLi4vV2ViQ29yZVN1
cHBvcnQvQ2hyb21lQ2xpZW50QmxhY2tCZXJyeS5jcHAgICAgICB8ICAgIDEgKwogLi4uL2JsYWNr
YmVycnkvV2ViQ29yZVN1cHBvcnQvRGF0ZVBpY2tlckNsaWVudC5jcHAgfCAgMTQxICsrKysrKysr
KysrKysrKysrKysrCiAuLi4vYmxhY2tiZXJyeS9XZWJDb3JlU3VwcG9ydC9EYXRlUGlja2VyQ2xp
ZW50LmggICB8ICAgNTggKysrKysrKysKIC4uLi9ibGFja2JlcnJ5L1dlYktpdFN1cHBvcnQvSW5w
dXRIYW5kbGVyLmNwcCAgICAgIHwgICAzMCArKystLQogNyBmaWxlcyBjaGFuZ2VkLCAyNjMgaW5z
ZXJ0aW9ucygrKSwgOCBkZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBTb3VyY2UvV2Vi
S2l0L2JsYWNrYmVycnkvV2ViQ29yZVN1cHBvcnQvRGF0ZVBpY2tlckNsaWVudC5jcHAKIGNyZWF0
ZSBtb2RlIDEwMDY0NCBTb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViQ29yZVN1cHBvcnQvRGF0
ZVBpY2tlckNsaWVudC5oCgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9T
b3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCA4OGZlMjczLi44MWM4MjIxIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpA
QCAtMSwzICsxLDE0IEBACisyMDEyLTA3LTEwICBDcnlzdGFsIFpoYW5nICA8aGFpemhhbmdAcmlt
LmNvbT4KKworICAgICAgICBbQmxhY2tCZXJyeV0gSW1wbGVtZW50IERhdGUvVGltZSBwaWNrZXIK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTkwOTExCisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIGZpbGVz
IGludG8gbWFrZSBmaWxlLgorCisgICAgICAgICogUGxhdGZvcm1CbGFja0JlcnJ5LmNtYWtlOgor
CiAyMDEyLTA3LTA5ICBDaHJpc3RvcGhlIER1bWV6ICA8Y2hyaXN0b3BoZS5kdW1lekBpbnRlbC5j
b20+CiAKICAgICAgICAgW0VGTF0gQmF0dGVyeSBzdGF0dXMgY29kZSBuZWVkcyByZWZhY3Rvcmlu
ZyB0byBiZSByZXVzZWQgaW4gV2ViS2l0MgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9QbGF0
Zm9ybUJsYWNrQmVycnkuY21ha2UgYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtQmxhY2tCZXJyeS5j
bWFrZQppbmRleCBmYTYxYjhiLi5hYWMwNjhiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1Bs
YXRmb3JtQmxhY2tCZXJyeS5jbWFrZQorKysgYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtQmxhY2tC
ZXJyeS5jbWFrZQpAQCAtOTEsNiArOTEsNyBAQCBMSVNUKEFQUEVORCBXZWJLaXRfU09VUkNFUwog
ICAgIGJsYWNrYmVycnkvV2ViQ29yZVN1cHBvcnQvVmlicmF0aW9uQ2xpZW50QmxhY2tCZXJyeS5j
cHAKICAgICBibGFja2JlcnJ5L1dlYkNvcmVTdXBwb3J0L1BhZ2VQb3B1cEJsYWNrQmVycnkuY3Bw
CiAgICAgYmxhY2tiZXJyeS9XZWJDb3JlU3VwcG9ydC9TZWxlY3RQb3B1cENsaWVudC5jcHAKKyAg
ICBibGFja2JlcnJ5L1dlYkNvcmVTdXBwb3J0L0RhdGVQaWNrZXJDbGllbnQuY3BwCiAgICAgYmxh
Y2tiZXJyeS9XZWJLaXRTdXBwb3J0L0JhY2tpbmdTdG9yZUNvbXBvc2l0aW5nU3VyZmFjZS5jcHAK
ICAgICBibGFja2JlcnJ5L1dlYktpdFN1cHBvcnQvQmFja2luZ1N0b3JlVGlsZS5jcHAKICAgICBi
bGFja2JlcnJ5L1dlYktpdFN1cHBvcnQvQmFja2luZ1N0b3JlQ2xpZW50LmNwcApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvYmxh
Y2tiZXJyeS9DaGFuZ2VMb2cKaW5kZXggYTMwNjVhYy4uYWMzYmE5MCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9ibGFja2JlcnJ5L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L2JsYWNr
YmVycnkvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzIgQEAKKzIwMTItMDctMTAgIENyeXN0YWwgWmhh
bmcgIDxoYWl6aGFuZ0ByaW0uY29tPgorCisgICAgICAgIFtCbGFja0JlcnJ5XSBJbXBsZW1lbnQg
RGF0ZS9UaW1lIHBpY2tlcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9OTA5MTEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBJbXBsZW1lbnQgSFRNTCBEYXRlL1RpbWUgcGlja2VyLCBhbHNvIHNob3VsZCBkZWxl
dGUgcG9wdXAgd2hlbiBjbG9zaW5nIHBvcHVwLgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQv
Q2hyb21lQ2xpZW50QmxhY2tCZXJyeS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDaHJvbWVDbGll
bnRCbGFja0JlcnJ5OjpjbG9zZVBhZ2VQb3B1cCk6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQv
RGF0ZVBpY2tlckNsaWVudC5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAg
IChXZWJDb3JlOjpEYXRlUGlja2VyQ2xpZW50OjpEYXRlUGlja2VyQ2xpZW50KToKKyAgICAgICAg
KFdlYkNvcmU6OkRhdGVQaWNrZXJDbGllbnQ6On5EYXRlUGlja2VyQ2xpZW50KToKKyAgICAgICAg
KFdlYkNvcmU6OkRhdGVQaWNrZXJDbGllbnQ6OmdlbmVyYXRlSFRNTCk6CisgICAgICAgIChXZWJD
b3JlOjpEYXRlUGlja2VyQ2xpZW50OjpjbG9zZVBvcHVwKToKKyAgICAgICAgKFdlYkNvcmU6OkRh
dGVQaWNrZXJDbGllbnQ6OmNvbnRlbnRTaXplKToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGVQaWNr
ZXJDbGllbnQ6Omh0bWxTb3VyY2UpOgorICAgICAgICAoV2ViQ29yZTo6RGF0ZVBpY2tlckNsaWVu
dDo6c2V0VmFsdWVBbmRDbG9zZVBvcHVwKToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGVQaWNrZXJD
bGllbnQ6OmRpZENsb3NlUG9wdXApOgorICAgICAgICAoV2ViQ29yZTo6RGF0ZVBpY2tlckNsaWVu
dDo6d3JpdGVEb2N1bWVudCk6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvRGF0ZVBpY2tlckNs
aWVudC5oOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdCk6CisgICAgICAgIChXZWJDb3JlKToKKyAg
ICAgICAgKERhdGVQaWNrZXJDbGllbnQpOgorICAgICAgICAqIFdlYktpdFN1cHBvcnQvSW5wdXRI
YW5kbGVyLmNwcDoKKyAgICAgICAgKEJsYWNrQmVycnk6OldlYktpdDo6SW5wdXRIYW5kbGVyOjpv
cGVuRGF0ZVBvcHVwKToKKwogMjAxMi0wNy0xMCAgQWRhbSBCYXJ0aCAgPGFiYXJ0aEB3ZWJraXQu
b3JnPgogCiAgICAgICAgIExheW91dFRlc3RDb250cm9sbGVyLmR1bXBDb25maWd1cmF0aW9uRm9y
Vmlld3BvcnQgc2hvdWxkIG1vdmUgdG8gSW50ZXJuYWxzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L2JsYWNrYmVycnkvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50QmxhY2tCZXJyeS5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50Qmxh
Y2tCZXJyeS5jcHAKaW5kZXggMjlkZTgwMC4uNmMwOWM2NCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9ibGFja2JlcnJ5L1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEJsYWNrQmVycnkuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGll
bnRCbGFja0JlcnJ5LmNwcApAQCAtMzIxLDYgKzMyMSw3IEBAIHZvaWQgQ2hyb21lQ2xpZW50Qmxh
Y2tCZXJyeTo6Y2xvc2VQYWdlUG9wdXAoUGFnZVBvcHVwKikKIAogICAgIFBhZ2VQb3B1cEJsYWNr
QmVycnkqIHdlYlBvcHVwID0gbV93ZWJQYWdlUHJpdmF0ZS0+bV93ZWJQYWdlLT5wb3B1cCgpOwog
ICAgIHdlYlBvcHVwLT5jbG9zZVBvcHVwKCk7CisgICAgZGVsZXRlIHdlYlBvcHVwOwogfQogCiB2
b2lkIENocm9tZUNsaWVudEJsYWNrQmVycnk6OnNldFRvb2xiYXJzVmlzaWJsZShib29sKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYkNvcmVTdXBwb3J0L0RhdGVQaWNr
ZXJDbGllbnQuY3BwIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYkNvcmVTdXBwb3J0L0Rh
dGVQaWNrZXJDbGllbnQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjg1
NWRkMTIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViQ29y
ZVN1cHBvcnQvRGF0ZVBpY2tlckNsaWVudC5jcHAKQEAgLTAsMCArMSwxNDEgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTIgUmVzZWFyY2ggSW4gTW90aW9uIExpbWl0ZWQuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4g
cmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0
aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkg
dGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhl
IExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICog
VGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1
c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1w
bGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqIExlc3NlciBHZW5lcmFsIFB1YmxpYyBM
aWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVk
IGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhbG9u
ZyB3aXRoIHRoaXMgbGlicmFyeTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQor
ICogRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwgQm9z
dG9uLCBNQSAgMDIxMTAtMTMwMSAgVVNBCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2lu
Y2x1ZGUgIkRhdGVQaWNrZXJDbGllbnQuaCIKKworI2luY2x1ZGUgIkNocm9tZS5oIgorI2luY2x1
ZGUgIkNocm9tZUNsaWVudC5oIgorI2luY2x1ZGUgIkRvY3VtZW50LmgiCisjaW5jbHVkZSAiRG9j
dW1lbnRXcml0ZXIuaCIKKyNpbmNsdWRlICJIVE1MSW5wdXRFbGVtZW50LmgiCisjaW5jbHVkZSAi
UGFnZS5oIgorI2luY2x1ZGUgIlBhZ2VQb3B1cC5oIgorI2luY2x1ZGUgIlBvcHVwUGlja2VyLmgi
CisjaW5jbHVkZSAiUmVuZGVyT2JqZWN0LmgiCisjaW5jbHVkZSAiV2ViUGFnZV9wLmgiCisKKyNp
bmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdCdWlsZGVyLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsK
KworRGF0ZVBpY2tlckNsaWVudDo6RGF0ZVBpY2tlckNsaWVudChCbGFja0JlcnJ5OjpQbGF0Zm9y
bTo6QmxhY2tCZXJyeUlucHV0VHlwZSB0eXBlLCBjb25zdCBCbGFja0JlcnJ5OjpXZWJLaXQ6Oldl
YlN0cmluZyYgdmFsdWUsIGNvbnN0IEJsYWNrQmVycnk6OldlYktpdDo6V2ViU3RyaW5nJiBtaW4s
IGNvbnN0IEJsYWNrQmVycnk6OldlYktpdDo6V2ViU3RyaW5nJiBtYXgsIGRvdWJsZSBzdGVwLCBC
bGFja0JlcnJ5OjpXZWJLaXQ6OldlYlBhZ2VQcml2YXRlKiB3ZWJQYWdlLCBIVE1MSW5wdXRFbGVt
ZW50KiBlbGVtZW50KQorICAgIDogbV90eXBlKHR5cGUpCisgICAgLCBtX3dlYlBhZ2Uod2ViUGFn
ZSkKKyAgICAsIG1fZWxlbWVudChlbGVtZW50KQoreworICAgIGdlbmVyYXRlSFRNTCh0eXBlLCB2
YWx1ZSwgbWluLCBtYXgsIHN0ZXApOworfQorCitEYXRlUGlja2VyQ2xpZW50Ojp+RGF0ZVBpY2tl
ckNsaWVudCgpCit7Cit9CisKK3ZvaWQgRGF0ZVBpY2tlckNsaWVudDo6Z2VuZXJhdGVIVE1MKEJs
YWNrQmVycnk6OlBsYXRmb3JtOjpCbGFja0JlcnJ5SW5wdXRUeXBlIHR5cGUsIGNvbnN0IEJsYWNr
QmVycnk6OldlYktpdDo6V2ViU3RyaW5nJiB2YWx1ZSwgY29uc3QgQmxhY2tCZXJyeTo6V2ViS2l0
OjpXZWJTdHJpbmcmIG1pbiwgY29uc3QgQmxhY2tCZXJyeTo6V2ViS2l0OjpXZWJTdHJpbmcmIG1h
eCwgZG91YmxlIHN0ZXApCit7CisgICAgU3RyaW5nQnVpbGRlciBzb3VyY2U7CisgICAgc291cmNl
LmFwcGVuZCgiPGh0bWw+PGhlYWQ+PG1ldGEgaHR0cC1lcXVpdj1cIkNvbnRlbnQtVHlwZVwiIGNv
bnRlbnQ9XCJ0ZXh0L2h0bWw7IGNoYXJzZXQ9VVRGLThcIi8+PHN0eWxlPlxuIik7CisgICAgLy8g
SW5jbHVkZSBDU1MgZmlsZS4KKyAgICBzb3VyY2UuYXBwZW5kKHBvcHVwQ29udHJvbEJsYWNrQmVy
cnlDc3MsCisgICAgICAgICAgICBzaXplb2YocG9wdXBDb250cm9sQmxhY2tCZXJyeUNzcykpOwor
ICAgIHNvdXJjZS5hcHBlbmQoIjwvc3R5bGU+XG48c3R5bGU+Iik7CisgICAgc291cmNlLmFwcGVu
ZCh0aW1lQ29udHJvbEJsYWNrQmVycnlDc3MsCisgICAgICAgICAgICBzaXplb2YodGltZUNvbnRy
b2xCbGFja0JlcnJ5Q3NzKSk7CisgICAgc291cmNlLmFwcGVuZCgiPC9zdHlsZT48L2hlYWQ+PGJv
ZHk+XG4iKTsKKyAgICBzb3VyY2UuYXBwZW5kKCI8c2NyaXB0PlxuIik7CisgICAgc291cmNlLmFw
cGVuZCgid2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ2xvYWQnLCBmdW5jdGlvbiAoKSB7Iik7Cisg
ICAgc3dpdGNoICh0eXBlKSB7CisgICAgY2FzZSBCbGFja0JlcnJ5OjpQbGF0Zm9ybTo6SW5wdXRU
eXBlRGF0ZToKKyAgICAgICAgc291cmNlLmFwcGVuZCgid2luZG93LnBvcHVwY29udHJvbC5zaG93
KFwiRGF0ZVwiLCAiKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBCbGFja0JlcnJ5OjpQbGF0
Zm9ybTo6SW5wdXRUeXBlVGltZToKKyAgICAgICAgc291cmNlLmFwcGVuZCgid2luZG93LnBvcHVw
Y29udHJvbC5zaG93KFwiVGltZVwiLCAiKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBCbGFj
a0JlcnJ5OjpQbGF0Zm9ybTo6SW5wdXRUeXBlRGF0ZVRpbWU6CisgICAgICAgIHNvdXJjZS5hcHBl
bmQoIndpbmRvdy5wb3B1cGNvbnRyb2wuc2hvdyhcIkRhdGVUaW1lXCIsICIpOworICAgICAgICBi
cmVhazsKKyAgICBjYXNlIEJsYWNrQmVycnk6OlBsYXRmb3JtOjpJbnB1dFR5cGVEYXRlVGltZUxv
Y2FsOgorICAgICAgICBzb3VyY2UuYXBwZW5kKCJ3aW5kb3cucG9wdXBjb250cm9sLnNob3coXCJE
YXRlVGltZUxvY2FsXCIsICIpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIEJsYWNrQmVycnk6
OlBsYXRmb3JtOjpJbnB1dFR5cGVNb250aDoKKyAgICBjYXNlIEJsYWNrQmVycnk6OlBsYXRmb3Jt
OjpJbnB1dFR5cGVXZWVrOgorICAgIGRlZmF1bHQ6CisgICAgICAgIGJyZWFrOworICAgIH0KKyAg
ICBpZiAoIXZhbHVlLmlzRW1wdHkoKSkKKyAgICAgICAgc291cmNlLmFwcGVuZCgiXCIiICsgU3Ry
aW5nKHZhbHVlLmltcGwoKSkgKyAiXCIsICIpOworICAgIGVsc2UKKyAgICAgICAgc291cmNlLmFw
cGVuZCgiMCwgIik7CisKKyAgICBpZiAoIW1pbi5pc0VtcHR5KCkpCisgICAgICAgIHNvdXJjZS5h
cHBlbmQoU3RyaW5nKG1pbi5pbXBsKCkpICsgIiwgIik7CisgICAgZWxzZQorICAgICAgICBzb3Vy
Y2UuYXBwZW5kKCIwLCAiKTsKKyAgICBpZiAoIW1heC5pc0VtcHR5KCkpCisgICAgICAgIHNvdXJj
ZS5hcHBlbmQoU3RyaW5nKG1heC5pbXBsKCkpICsgIiwgIik7CisgICAgZWxzZQorICAgICAgICBz
b3VyY2UuYXBwZW5kKCIwLCAiKTsKKyAgICBzb3VyY2UuYXBwZW5kKFN0cmluZzo6bnVtYmVyKHN0
ZXApKTsKKyAgICBzb3VyY2UuYXBwZW5kKCIpOyBcbiB9KTsgXG4iKTsKKyAgICBzb3VyY2UuYXBw
ZW5kKHRpbWVDb250cm9sQmxhY2tCZXJyeUpzLCBzaXplb2YodGltZUNvbnRyb2xCbGFja0JlcnJ5
SnMpKTsKKyAgICBzb3VyY2UuYXBwZW5kKCI8L3NjcmlwdD5cbiIpOworICAgIHNvdXJjZS5hcHBl
bmQoIjwvYm9keT4gPC9odG1sPlxuIik7CisgICAgbV9zb3VyY2UgPSBzb3VyY2UudG9TdHJpbmco
KTsKK30KKwordm9pZCBEYXRlUGlja2VyQ2xpZW50OjpjbG9zZVBvcHVwKCkKK3sKKyAgICBBU1NF
UlQobV93ZWJQYWdlKTsKKyAgICBtX3dlYlBhZ2UtPm1fcGFnZS0+Y2hyb21lKCktPmNsaWVudCgp
LT5jbG9zZVBhZ2VQb3B1cCgwKTsKK30KKworSW50U2l6ZSBEYXRlUGlja2VyQ2xpZW50Ojpjb250
ZW50U2l6ZSgpCit7CisgICAgLy8gRml4bWU6IHdpbGwgZ2VuZXJhdGUgY29udGVudCBzaXplIGR5
bmFtaWNhbGx5CisgICAgcmV0dXJuIEludFNpemUoMzIwLCAyNTYpOworfQorCitTdHJpbmcgRGF0
ZVBpY2tlckNsaWVudDo6aHRtbFNvdXJjZSgpCit7CisgICAgcmV0dXJuIG1fc291cmNlOworfQor
Cit2b2lkIERhdGVQaWNrZXJDbGllbnQ6OnNldFZhbHVlQW5kQ2xvc2VQb3B1cChpbnQsIGNvbnN0
IFN0cmluZyYgdmFsdWUpCit7CisgICAgLy8gUmV0dXJuIC0xIGlmIHVzZXIgY2FuY2VsIHRoZSBz
ZWxlY3Rpb24uCisgICAgQVNTRVJUKG1fZWxlbWVudCk7CisKKyAgICBpZiAoIXZhbHVlLmNvbnRh
aW5zKCItMSIpKQorICAgICAgICBtX2VsZW1lbnQtPnNldFZhbHVlKHZhbHVlKTsKKyAgICBjbG9z
ZVBvcHVwKCk7Cit9CisKK3ZvaWQgRGF0ZVBpY2tlckNsaWVudDo6ZGlkQ2xvc2VQb3B1cCgpCit7
CisgICAgbV93ZWJQYWdlID0gMDsKKyAgICBtX2VsZW1lbnQgPSAwOworfQorCit2b2lkIERhdGVQ
aWNrZXJDbGllbnQ6OndyaXRlRG9jdW1lbnQoRG9jdW1lbnRXcml0ZXImIHdyaXRlcikKK3sKKyAg
ICB3cml0ZXIuc2V0TUlNRVR5cGUoInRleHQvaHRtbCIpOworICAgIHdyaXRlci5iZWdpbihLVVJM
KCkpOworICAgIHdyaXRlci5hZGREYXRhKG1fc291cmNlLnV0ZjgoKS5kYXRhKCksIG1fc291cmNl
LnV0ZjgoKS5sZW5ndGgoKSk7CisgICAgd3JpdGVyLmVuZCgpOworfQorfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYkNvcmVTdXBwb3J0L0RhdGVQaWNrZXJDbGllbnQu
aCBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJDb3JlU3VwcG9ydC9EYXRlUGlja2VyQ2xp
ZW50LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjZjZDk5ZgotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJDb3JlU3VwcG9ydC9EYXRl
UGlja2VyQ2xpZW50LmgKQEAgLTAsMCArMSw1OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAx
MiBSZXNlYXJjaCBJbiBNb3Rpb24gTGltaXRlZC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQg
YW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdl
bmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2Fy
ZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0
IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMg
ZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBX
SVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9m
CisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0Uu
ICBTZWUgdGhlIEdOVQorICogTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUg
ZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBH
TlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFsb25nIHdpdGggdGhpcyBsaWJy
YXJ5OyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCisgKiBGb3VuZGF0aW9uLCBJ
bmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1BICAwMjExMC0x
MzAxICBVU0EKKyAqLworCisjaWZuZGVmIERhdGVQaWNrZXJDbGllbnRfaAorI2RlZmluZSBEYXRl
UGlja2VyQ2xpZW50X2gKKworI2luY2x1ZGUgIkludFNpemUuaCIKKyNpbmNsdWRlICJQYWdlUG9w
dXBDbGllbnQuaCIKKyNpbmNsdWRlICJXVEZTdHJpbmcuaCIKKyNpbmNsdWRlICJXZWJTdHJpbmcu
aCIKKyNpbmNsdWRlIDxCbGFja0JlcnJ5UGxhdGZvcm1JbnB1dEV2ZW50cy5oPgorCituYW1lc3Bh
Y2UgQmxhY2tCZXJyeSB7CituYW1lc3BhY2UgV2ViS2l0IHsKK2NsYXNzIFdlYlBhZ2VQcml2YXRl
OworfQorfQorCituYW1lc3BhY2UgV2ViQ29yZSB7CitjbGFzcyBEb2N1bWVudFdyaXRlcjsKK2Ns
YXNzIEhUTUxJbnB1dEVsZW1lbnQ7CisKK2NsYXNzIERhdGVQaWNrZXJDbGllbnQgOiBwdWJsaWMg
UGFnZVBvcHVwQ2xpZW50IHsKK3B1YmxpYzoKKyAgICBEYXRlUGlja2VyQ2xpZW50KEJsYWNrQmVy
cnk6OlBsYXRmb3JtOjpCbGFja0JlcnJ5SW5wdXRUeXBlLCBjb25zdCBCbGFja0JlcnJ5OjpXZWJL
aXQ6OldlYlN0cmluZyYgdmFsdWUsIGNvbnN0IEJsYWNrQmVycnk6OldlYktpdDo6V2ViU3RyaW5n
JiBtaW4sIGNvbnN0IEJsYWNrQmVycnk6OldlYktpdDo6V2ViU3RyaW5nJiBtYXgsIGRvdWJsZSBz
dGVwLCBCbGFja0JlcnJ5OjpXZWJLaXQ6OldlYlBhZ2VQcml2YXRlKiwgSFRNTElucHV0RWxlbWVu
dCopOworICAgIH5EYXRlUGlja2VyQ2xpZW50KCk7CisKKyAgICB2b2lkIGdlbmVyYXRlSFRNTChC
bGFja0JlcnJ5OjpQbGF0Zm9ybTo6QmxhY2tCZXJyeUlucHV0VHlwZSwgY29uc3QgQmxhY2tCZXJy
eTo6V2ViS2l0OjpXZWJTdHJpbmcmIHZhbHVlLCBjb25zdCBCbGFja0JlcnJ5OjpXZWJLaXQ6Oldl
YlN0cmluZyYgbWluLCBjb25zdCBCbGFja0JlcnJ5OjpXZWJLaXQ6OldlYlN0cmluZyYgbWF4LCBk
b3VibGUgc3RlcCk7CisKKyAgICB2b2lkIHdyaXRlRG9jdW1lbnQoRG9jdW1lbnRXcml0ZXImKTsK
KyAgICB2aXJ0dWFsIEludFNpemUgY29udGVudFNpemUoKTsKKyAgICB2aXJ0dWFsIFN0cmluZyBo
dG1sU291cmNlKCk7CisgICAgdm9pZCBzZXRWYWx1ZUFuZENsb3NlUG9wdXAoaW50LCBjb25zdCBT
dHJpbmcmKTsKKyAgICB2b2lkIGRpZENsb3NlUG9wdXAoKTsKKyAgICB2b2lkIGNsb3NlUG9wdXAo
KTsKKworICAgIEJsYWNrQmVycnk6OlBsYXRmb3JtOjpCbGFja0JlcnJ5SW5wdXRUeXBlIG1fdHlw
ZTsKKyAgICBTdHJpbmcgbV9zb3VyY2U7CisgICAgQmxhY2tCZXJyeTo6V2ViS2l0OjpXZWJQYWdl
UHJpdmF0ZSogbV93ZWJQYWdlOworICAgIEhUTUxJbnB1dEVsZW1lbnQqIG1fZWxlbWVudDsKK307
Cit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvYmxhY2tiZXJyeS9XZWJLaXRTdXBwb3J0L0lucHV0SGFuZGxlci5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L2JsYWNrYmVycnkvV2ViS2l0U3VwcG9ydC9JbnB1dEhhbmRsZXIuY3BwCmluZGV4IGIzZjU0
MTMuLmM5YzUyMDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJLaXRT
dXBwb3J0L0lucHV0SGFuZGxlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dl
YktpdFN1cHBvcnQvSW5wdXRIYW5kbGVyLmNwcApAQCAtMjUsNiArMjUsNyBAQAogI2luY2x1ZGUg
IkNTdHJpbmcuaCIKICNpbmNsdWRlICJDaHJvbWUuaCIKICNpbmNsdWRlICJET01TdXBwb3J0Lmgi
CisjaW5jbHVkZSAiRGF0ZVBpY2tlckNsaWVudC5oIgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAj
aW5jbHVkZSAiRG9jdW1lbnRMb2FkZXIuaCIKICNpbmNsdWRlICJEb2N1bWVudE1hcmtlckNvbnRy
b2xsZXIuaCIKQEAgLTQ5NSwxNSArNDk2LDI4IEBAIGJvb2wgSW5wdXRIYW5kbGVyOjpvcGVuRGF0
ZVBvcHVwKEhUTUxJbnB1dEVsZW1lbnQqIGVsZW1lbnQsIEJsYWNrQmVycnlJbnB1dFR5cGUKICAg
ICBpZiAoaXNBY3RpdmVUZXh0RWRpdCgpKQogICAgICAgICBjbGVhckN1cnJlbnRGb2N1c0VsZW1l
bnQoKTsKIAotICAgIG1fY3VycmVudEZvY3VzRWxlbWVudCA9IGVsZW1lbnQ7Ci0gICAgbV9jdXJy
ZW50Rm9jdXNFbGVtZW50VHlwZSA9IFRleHRQb3B1cDsKKyAgICBzd2l0Y2ggKHR5cGUpIHsKKyAg
ICBjYXNlIEJsYWNrQmVycnk6OlBsYXRmb3JtOjpJbnB1dFR5cGVEYXRlOgorICAgIGNhc2UgQmxh
Y2tCZXJyeTo6UGxhdGZvcm06OklucHV0VHlwZVRpbWU6CisgICAgY2FzZSBCbGFja0JlcnJ5OjpQ
bGF0Zm9ybTo6SW5wdXRUeXBlRGF0ZVRpbWU6CisgICAgY2FzZSBCbGFja0JlcnJ5OjpQbGF0Zm9y
bTo6SW5wdXRUeXBlRGF0ZVRpbWVMb2NhbDogeworICAgICAgICAvLyBDaGVjayBpZiBwb3B1cCBh
bHJlYWR5IGV4aXN0cywgY2xvc2UgaXQgaWYgZG9lcy4KKyAgICAgICAgbV93ZWJQYWdlLT5tX3Bh
Z2UtPmNocm9tZSgpLT5jbGllbnQoKS0+Y2xvc2VQYWdlUG9wdXAoMCk7CisgICAgICAgIFN0cmlu
ZyB2YWx1ZSA9IGVsZW1lbnQtPnZhbHVlKCk7CisgICAgICAgIFN0cmluZyBtaW4gPSBlbGVtZW50
LT5nZXRBdHRyaWJ1dGUoSFRNTE5hbWVzOjptaW5BdHRyKS5zdHJpbmcoKTsKKyAgICAgICAgU3Ry
aW5nIG1heCA9IGVsZW1lbnQtPmdldEF0dHJpYnV0ZShIVE1MTmFtZXM6Om1heEF0dHIpLnN0cmlu
ZygpOworICAgICAgICBkb3VibGUgc3RlcCA9IGVsZW1lbnQtPmdldEF0dHJpYnV0ZShIVE1MTmFt
ZXM6OnN0ZXBBdHRyKS50b0RvdWJsZSgpOworCisgICAgICAgIERhdGVQaWNrZXJDbGllbnQqIGNs
aWVudCA9IG5ldyBEYXRlUGlja2VyQ2xpZW50KHR5cGUsIHZhbHVlLCBtaW4sIG1heCwgc3RlcCwg
IG1fd2ViUGFnZSwgZWxlbWVudCk7CisgICAgICAgIC8vIEZhaWwgdG8gY3JlYXRlIEhUTUwgcG9w
dXAsIHVzZSB0aGUgb2xkIHBhdGgKKyAgICAgICAgaWYgKCFtX3dlYlBhZ2UtPm1fcGFnZS0+Y2hy
b21lKCktPmNsaWVudCgpLT5vcGVuUGFnZVBvcHVwKGNsaWVudCwgIFdlYkNvcmU6OkludFJlY3Qo
KSkpCisgICAgICAgICAgICBtX3dlYlBhZ2UtPm1fY2xpZW50LT5vcGVuRGF0ZVRpbWVQb3B1cCh0
eXBlLCB2YWx1ZSwgbWluLCBtYXgsIHN0ZXApOwogCi0gICAgV1RGOjpTdHJpbmcgdmFsdWUgPSBl
bGVtZW50LT52YWx1ZSgpOwotICAgIFdURjo6U3RyaW5nIG1pbiA9IGVsZW1lbnQtPmdldEF0dHJp
YnV0ZShIVE1MTmFtZXM6Om1pbkF0dHIpLnN0cmluZygpOwotICAgIFdURjo6U3RyaW5nIG1heCA9
IGVsZW1lbnQtPmdldEF0dHJpYnV0ZShIVE1MTmFtZXM6Om1heEF0dHIpLnN0cmluZygpOwotICAg
IGRvdWJsZSBzdGVwID0gZWxlbWVudC0+Z2V0QXR0cmlidXRlKEhUTUxOYW1lczo6c3RlcEF0dHIp
LnRvRG91YmxlKCk7Ci0gICAgbV93ZWJQYWdlLT5tX2NsaWVudC0+b3BlbkRhdGVUaW1lUG9wdXAo
dHlwZSwgdmFsdWUsIG1pbiwgbWF4LCBzdGVwKTsKLSAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAg
cmV0dXJuIHRydWU7CisgICAgICAgIH0KKyAgICBkZWZhdWx0OiAvLyBPdGhlciB0eXBlcyBub3Qg
c3VwcG9ydGVkCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CiB9CiAKIGJvb2wgSW5wdXRI
YW5kbGVyOjpvcGVuQ29sb3JQb3B1cChIVE1MSW5wdXRFbGVtZW50KiBlbGVtZW50KQotLSAKMS43
LjEwLjEKCg==
</data>
<flag name="review"
          id="160261"
          type_id="1"
          status="-"
          setter="rwlbuis"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>151748</attachid>
            <date>2012-07-11 12:20:03 -0700</date>
            <delta_ts>2012-07-11 13:21:13 -0700</delta_ts>
            <desc>updated patch</desc>
            <filename>0001-2012-07-10-Crystal-Zhang-haizhang-rim.com.patch</filename>
            <type>text/plain</type>
            <size>14809</size>
            <attacher name="Crystal Zhang">haizhang</attacher>
            
              <data encoding="base64">RnJvbSA3OWE4OTE3ZGY1YTRjZDA1MmEwMjRjMGM2NGQ2ZWU3OGJlZjQyZWUwIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBDcnlzdGFsIFpoYW5nIDxoYWl6aGFuZ0ByaW0uY29tPgpEYXRl
OiBUdWUsIDEwIEp1bCAyMDEyIDE3OjUxOjQyIC0wNDAwClN1YmplY3Q6IFtQQVRDSCAxLzJdIDIw
MTItMDctMTAgIENyeXN0YWwgWmhhbmcgIDxoYWl6aGFuZ0ByaW0uY29tPgoKICAgICAgICBbQmxh
Y2tCZXJyeV0gSW1wbGVtZW50IERhdGUvVGltZSBwaWNrZXIKICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTA5MTEKCiAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCgogICAgICAgIEltcGxlbWVudCBIVE1MIERhdGUvVGltZSBwaWNrZXIuCgog
ICAgICAgICogV2ViQ29yZVN1cHBvcnQvRGF0ZVBpY2tlckNsaWVudC5jcHA6IEFkZGVkLgogICAg
ICAgIChXZWJDb3JlKToKICAgICAgICAoV2ViQ29yZTo6RGF0ZVBpY2tlckNsaWVudDo6RGF0ZVBp
Y2tlckNsaWVudCk6CiAgICAgICAgKFdlYkNvcmU6OkRhdGVQaWNrZXJDbGllbnQ6On5EYXRlUGlj
a2VyQ2xpZW50KToKICAgICAgICAoV2ViQ29yZTo6RGF0ZVBpY2tlckNsaWVudDo6Z2VuZXJhdGVI
VE1MKToKICAgICAgICAoV2ViQ29yZTo6RGF0ZVBpY2tlckNsaWVudDo6Y2xvc2VQb3B1cCk6CiAg
ICAgICAgKFdlYkNvcmU6OkRhdGVQaWNrZXJDbGllbnQ6OmNvbnRlbnRTaXplKToKICAgICAgICAo
V2ViQ29yZTo6RGF0ZVBpY2tlckNsaWVudDo6aHRtbFNvdXJjZSk6CiAgICAgICAgKFdlYkNvcmU6
OkRhdGVQaWNrZXJDbGllbnQ6OnNldFZhbHVlQW5kQ2xvc2VQb3B1cCk6CiAgICAgICAgKFdlYkNv
cmU6OkRhdGVQaWNrZXJDbGllbnQ6OmRpZENsb3NlUG9wdXApOgogICAgICAgIChXZWJDb3JlOjpE
YXRlUGlja2VyQ2xpZW50Ojp3cml0ZURvY3VtZW50KToKICAgICAgICAqIFdlYkNvcmVTdXBwb3J0
L0RhdGVQaWNrZXJDbGllbnQuaDogQWRkZWQuCiAgICAgICAgKFdlYktpdCk6CiAgICAgICAgKFdl
YkNvcmUpOgogICAgICAgIChEYXRlUGlja2VyQ2xpZW50KToKICAgICAgICAqIFdlYktpdFN1cHBv
cnQvSW5wdXRIYW5kbGVyLmNwcDoKICAgICAgICAoQmxhY2tCZXJyeTo6V2ViS2l0OjpJbnB1dEhh
bmRsZXI6Om9wZW5EYXRlUG9wdXApOgotLS0KIFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHwgICAxMSArKwogU291cmNlL1dlYktpdC9QbGF0Zm9ybUJs
YWNrQmVycnkuY21ha2UgICAgICAgICAgICAgfCAgICAxICsKIFNvdXJjZS9XZWJLaXQvYmxhY2ti
ZXJyeS9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgIHwgICAyOSArKysrCiAuLi4vV2ViQ29yZVN1
cHBvcnQvQ2hyb21lQ2xpZW50QmxhY2tCZXJyeS5jcHAgICAgICB8ICAgIDEgKwogLi4uL2JsYWNr
YmVycnkvV2ViQ29yZVN1cHBvcnQvRGF0ZVBpY2tlckNsaWVudC5jcHAgfCAgMTQyICsrKysrKysr
KysrKysrKysrKysrCiAuLi4vYmxhY2tiZXJyeS9XZWJDb3JlU3VwcG9ydC9EYXRlUGlja2VyQ2xp
ZW50LmggICB8ICAgNTcgKysrKysrKysKIC4uLi9ibGFja2JlcnJ5L1dlYktpdFN1cHBvcnQvSW5w
dXRIYW5kbGVyLmNwcCAgICAgIHwgICAzMCArKystLQogNyBmaWxlcyBjaGFuZ2VkLCAyNjMgaW5z
ZXJ0aW9ucygrKSwgOCBkZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBTb3VyY2UvV2Vi
S2l0L2JsYWNrYmVycnkvV2ViQ29yZVN1cHBvcnQvRGF0ZVBpY2tlckNsaWVudC5jcHAKIGNyZWF0
ZSBtb2RlIDEwMDY0NCBTb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViQ29yZVN1cHBvcnQvRGF0
ZVBpY2tlckNsaWVudC5oCgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9T
b3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCA4OGZlMjczLi44MWM4MjIxIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpA
QCAtMSwzICsxLDE0IEBACisyMDEyLTA3LTEwICBDcnlzdGFsIFpoYW5nICA8aGFpemhhbmdAcmlt
LmNvbT4KKworICAgICAgICBbQmxhY2tCZXJyeV0gSW1wbGVtZW50IERhdGUvVGltZSBwaWNrZXIK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTkwOTExCisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIGZpbGVz
IGludG8gbWFrZSBmaWxlLgorCisgICAgICAgICogUGxhdGZvcm1CbGFja0JlcnJ5LmNtYWtlOgor
CiAyMDEyLTA3LTA5ICBDaHJpc3RvcGhlIER1bWV6ICA8Y2hyaXN0b3BoZS5kdW1lekBpbnRlbC5j
b20+CiAKICAgICAgICAgW0VGTF0gQmF0dGVyeSBzdGF0dXMgY29kZSBuZWVkcyByZWZhY3Rvcmlu
ZyB0byBiZSByZXVzZWQgaW4gV2ViS2l0MgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9QbGF0
Zm9ybUJsYWNrQmVycnkuY21ha2UgYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtQmxhY2tCZXJyeS5j
bWFrZQppbmRleCBmYTYxYjhiLi5hYWMwNjhiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1Bs
YXRmb3JtQmxhY2tCZXJyeS5jbWFrZQorKysgYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtQmxhY2tC
ZXJyeS5jbWFrZQpAQCAtOTEsNiArOTEsNyBAQCBMSVNUKEFQUEVORCBXZWJLaXRfU09VUkNFUwog
ICAgIGJsYWNrYmVycnkvV2ViQ29yZVN1cHBvcnQvVmlicmF0aW9uQ2xpZW50QmxhY2tCZXJyeS5j
cHAKICAgICBibGFja2JlcnJ5L1dlYkNvcmVTdXBwb3J0L1BhZ2VQb3B1cEJsYWNrQmVycnkuY3Bw
CiAgICAgYmxhY2tiZXJyeS9XZWJDb3JlU3VwcG9ydC9TZWxlY3RQb3B1cENsaWVudC5jcHAKKyAg
ICBibGFja2JlcnJ5L1dlYkNvcmVTdXBwb3J0L0RhdGVQaWNrZXJDbGllbnQuY3BwCiAgICAgYmxh
Y2tiZXJyeS9XZWJLaXRTdXBwb3J0L0JhY2tpbmdTdG9yZUNvbXBvc2l0aW5nU3VyZmFjZS5jcHAK
ICAgICBibGFja2JlcnJ5L1dlYktpdFN1cHBvcnQvQmFja2luZ1N0b3JlVGlsZS5jcHAKICAgICBi
bGFja2JlcnJ5L1dlYktpdFN1cHBvcnQvQmFja2luZ1N0b3JlQ2xpZW50LmNwcApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvYmxh
Y2tiZXJyeS9DaGFuZ2VMb2cKaW5kZXggYTMwNjVhYy4uYWMzYmE5MCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9ibGFja2JlcnJ5L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L2JsYWNr
YmVycnkvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzIgQEAKKzIwMTItMDctMTAgIENyeXN0YWwgWmhh
bmcgIDxoYWl6aGFuZ0ByaW0uY29tPgorCisgICAgICAgIFtCbGFja0JlcnJ5XSBJbXBsZW1lbnQg
RGF0ZS9UaW1lIHBpY2tlcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9OTA5MTEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBJbXBsZW1lbnQgSFRNTCBEYXRlL1RpbWUgcGlja2VyLCBhbHNvIHNob3VsZCBkZWxl
dGUgcG9wdXAgd2hlbiBjbG9zaW5nIHBvcHVwLgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQv
Q2hyb21lQ2xpZW50QmxhY2tCZXJyeS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDaHJvbWVDbGll
bnRCbGFja0JlcnJ5OjpjbG9zZVBhZ2VQb3B1cCk6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQv
RGF0ZVBpY2tlckNsaWVudC5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAg
IChXZWJDb3JlOjpEYXRlUGlja2VyQ2xpZW50OjpEYXRlUGlja2VyQ2xpZW50KToKKyAgICAgICAg
KFdlYkNvcmU6OkRhdGVQaWNrZXJDbGllbnQ6On5EYXRlUGlja2VyQ2xpZW50KToKKyAgICAgICAg
KFdlYkNvcmU6OkRhdGVQaWNrZXJDbGllbnQ6OmdlbmVyYXRlSFRNTCk6CisgICAgICAgIChXZWJD
b3JlOjpEYXRlUGlja2VyQ2xpZW50OjpjbG9zZVBvcHVwKToKKyAgICAgICAgKFdlYkNvcmU6OkRh
dGVQaWNrZXJDbGllbnQ6OmNvbnRlbnRTaXplKToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGVQaWNr
ZXJDbGllbnQ6Omh0bWxTb3VyY2UpOgorICAgICAgICAoV2ViQ29yZTo6RGF0ZVBpY2tlckNsaWVu
dDo6c2V0VmFsdWVBbmRDbG9zZVBvcHVwKToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGVQaWNrZXJD
bGllbnQ6OmRpZENsb3NlUG9wdXApOgorICAgICAgICAoV2ViQ29yZTo6RGF0ZVBpY2tlckNsaWVu
dDo6d3JpdGVEb2N1bWVudCk6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvRGF0ZVBpY2tlckNs
aWVudC5oOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdCk6CisgICAgICAgIChXZWJDb3JlKToKKyAg
ICAgICAgKERhdGVQaWNrZXJDbGllbnQpOgorICAgICAgICAqIFdlYktpdFN1cHBvcnQvSW5wdXRI
YW5kbGVyLmNwcDoKKyAgICAgICAgKEJsYWNrQmVycnk6OldlYktpdDo6SW5wdXRIYW5kbGVyOjpv
cGVuRGF0ZVBvcHVwKToKKwogMjAxMi0wNy0xMCAgQWRhbSBCYXJ0aCAgPGFiYXJ0aEB3ZWJraXQu
b3JnPgogCiAgICAgICAgIExheW91dFRlc3RDb250cm9sbGVyLmR1bXBDb25maWd1cmF0aW9uRm9y
Vmlld3BvcnQgc2hvdWxkIG1vdmUgdG8gSW50ZXJuYWxzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L2JsYWNrYmVycnkvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50QmxhY2tCZXJyeS5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50Qmxh
Y2tCZXJyeS5jcHAKaW5kZXggMjlkZTgwMC4uNmMwOWM2NCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9ibGFja2JlcnJ5L1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEJsYWNrQmVycnkuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGll
bnRCbGFja0JlcnJ5LmNwcApAQCAtMzIxLDYgKzMyMSw3IEBAIHZvaWQgQ2hyb21lQ2xpZW50Qmxh
Y2tCZXJyeTo6Y2xvc2VQYWdlUG9wdXAoUGFnZVBvcHVwKikKIAogICAgIFBhZ2VQb3B1cEJsYWNr
QmVycnkqIHdlYlBvcHVwID0gbV93ZWJQYWdlUHJpdmF0ZS0+bV93ZWJQYWdlLT5wb3B1cCgpOwog
ICAgIHdlYlBvcHVwLT5jbG9zZVBvcHVwKCk7CisgICAgZGVsZXRlIHdlYlBvcHVwOwogfQogCiB2
b2lkIENocm9tZUNsaWVudEJsYWNrQmVycnk6OnNldFRvb2xiYXJzVmlzaWJsZShib29sKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYkNvcmVTdXBwb3J0L0RhdGVQaWNr
ZXJDbGllbnQuY3BwIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYkNvcmVTdXBwb3J0L0Rh
dGVQaWNrZXJDbGllbnQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQ3
MGRjNGYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViQ29y
ZVN1cHBvcnQvRGF0ZVBpY2tlckNsaWVudC5jcHAKQEAgLTAsMCArMSwxNDIgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTIgUmVzZWFyY2ggSW4gTW90aW9uIExpbWl0ZWQuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4g
cmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0
aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkg
dGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhl
IExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICog
VGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1
c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1w
bGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqIExlc3NlciBHZW5lcmFsIFB1YmxpYyBM
aWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVk
IGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhbG9u
ZyB3aXRoIHRoaXMgbGlicmFyeTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQor
ICogRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwgQm9z
dG9uLCBNQSAgMDIxMTAtMTMwMSAgVVNBCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2lu
Y2x1ZGUgIkRhdGVQaWNrZXJDbGllbnQuaCIKKworI2luY2x1ZGUgIkNocm9tZS5oIgorI2luY2x1
ZGUgIkNocm9tZUNsaWVudC5oIgorI2luY2x1ZGUgIkRvY3VtZW50LmgiCisjaW5jbHVkZSAiRG9j
dW1lbnRXcml0ZXIuaCIKKyNpbmNsdWRlICJIVE1MSW5wdXRFbGVtZW50LmgiCisjaW5jbHVkZSAi
UGFnZS5oIgorI2luY2x1ZGUgIlBhZ2VQb3B1cC5oIgorI2luY2x1ZGUgIlBvcHVwUGlja2VyLmgi
CisjaW5jbHVkZSAiUmVuZGVyT2JqZWN0LmgiCisjaW5jbHVkZSAiV2ViUGFnZV9wLmgiCisjaW5j
bHVkZSAiV2ViU3RyaW5nLmgiCisKKyNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdCdWlsZGVyLmg+
CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworRGF0ZVBpY2tlckNsaWVudDo6RGF0ZVBpY2tlckNs
aWVudChCbGFja0JlcnJ5OjpQbGF0Zm9ybTo6QmxhY2tCZXJyeUlucHV0VHlwZSB0eXBlLCBjb25z
dCBCbGFja0JlcnJ5OjpXZWJLaXQ6OldlYlN0cmluZyYgdmFsdWUsIGNvbnN0IEJsYWNrQmVycnk6
OldlYktpdDo6V2ViU3RyaW5nJiBtaW4sIGNvbnN0IEJsYWNrQmVycnk6OldlYktpdDo6V2ViU3Ry
aW5nJiBtYXgsIGRvdWJsZSBzdGVwLCBCbGFja0JlcnJ5OjpXZWJLaXQ6OldlYlBhZ2VQcml2YXRl
KiB3ZWJQYWdlLCBIVE1MSW5wdXRFbGVtZW50KiBlbGVtZW50KQorICAgIDogbV90eXBlKHR5cGUp
CisgICAgLCBtX3dlYlBhZ2Uod2ViUGFnZSkKKyAgICAsIG1fZWxlbWVudChlbGVtZW50KQorewor
ICAgIGdlbmVyYXRlSFRNTCh0eXBlLCB2YWx1ZSwgbWluLCBtYXgsIHN0ZXApOworfQorCitEYXRl
UGlja2VyQ2xpZW50Ojp+RGF0ZVBpY2tlckNsaWVudCgpCit7Cit9CisKK3ZvaWQgRGF0ZVBpY2tl
ckNsaWVudDo6Z2VuZXJhdGVIVE1MKEJsYWNrQmVycnk6OlBsYXRmb3JtOjpCbGFja0JlcnJ5SW5w
dXRUeXBlIHR5cGUsIGNvbnN0IEJsYWNrQmVycnk6OldlYktpdDo6V2ViU3RyaW5nJiB2YWx1ZSwg
Y29uc3QgQmxhY2tCZXJyeTo6V2ViS2l0OjpXZWJTdHJpbmcmIG1pbiwgY29uc3QgQmxhY2tCZXJy
eTo6V2ViS2l0OjpXZWJTdHJpbmcmIG1heCwgZG91YmxlIHN0ZXApCit7CisgICAgU3RyaW5nQnVp
bGRlciBzb3VyY2U7CisgICAgc291cmNlLmFwcGVuZCgiPGh0bWw+PGhlYWQ+PG1ldGEgaHR0cC1l
cXVpdj1cIkNvbnRlbnQtVHlwZVwiIGNvbnRlbnQ9XCJ0ZXh0L2h0bWw7IGNoYXJzZXQ9VVRGLThc
Ii8+PHN0eWxlPlxuIik7CisgICAgLy8gSW5jbHVkZSBDU1MgZmlsZS4KKyAgICBzb3VyY2UuYXBw
ZW5kKHBvcHVwQ29udHJvbEJsYWNrQmVycnlDc3MsCisgICAgICAgICAgICBzaXplb2YocG9wdXBD
b250cm9sQmxhY2tCZXJyeUNzcykpOworICAgIHNvdXJjZS5hcHBlbmQoIjwvc3R5bGU+XG48c3R5
bGU+Iik7CisgICAgc291cmNlLmFwcGVuZCh0aW1lQ29udHJvbEJsYWNrQmVycnlDc3MsCisgICAg
ICAgICAgICBzaXplb2YodGltZUNvbnRyb2xCbGFja0JlcnJ5Q3NzKSk7CisgICAgc291cmNlLmFw
cGVuZCgiPC9zdHlsZT48L2hlYWQ+PGJvZHk+XG4iKTsKKyAgICBzb3VyY2UuYXBwZW5kKCI8c2Ny
aXB0PlxuIik7CisgICAgc291cmNlLmFwcGVuZCgid2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ2xv
YWQnLCBmdW5jdGlvbiAoKSB7Iik7CisgICAgc3dpdGNoICh0eXBlKSB7CisgICAgY2FzZSBCbGFj
a0JlcnJ5OjpQbGF0Zm9ybTo6SW5wdXRUeXBlRGF0ZToKKyAgICAgICAgc291cmNlLmFwcGVuZCgi
d2luZG93LnBvcHVwY29udHJvbC5zaG93KFwiRGF0ZVwiLCAiKTsKKyAgICAgICAgYnJlYWs7Cisg
ICAgY2FzZSBCbGFja0JlcnJ5OjpQbGF0Zm9ybTo6SW5wdXRUeXBlVGltZToKKyAgICAgICAgc291
cmNlLmFwcGVuZCgid2luZG93LnBvcHVwY29udHJvbC5zaG93KFwiVGltZVwiLCAiKTsKKyAgICAg
ICAgYnJlYWs7CisgICAgY2FzZSBCbGFja0JlcnJ5OjpQbGF0Zm9ybTo6SW5wdXRUeXBlRGF0ZVRp
bWU6CisgICAgICAgIHNvdXJjZS5hcHBlbmQoIndpbmRvdy5wb3B1cGNvbnRyb2wuc2hvdyhcIkRh
dGVUaW1lXCIsICIpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIEJsYWNrQmVycnk6OlBsYXRm
b3JtOjpJbnB1dFR5cGVEYXRlVGltZUxvY2FsOgorICAgICAgICBzb3VyY2UuYXBwZW5kKCJ3aW5k
b3cucG9wdXBjb250cm9sLnNob3coXCJEYXRlVGltZUxvY2FsXCIsICIpOworICAgICAgICBicmVh
azsKKyAgICBjYXNlIEJsYWNrQmVycnk6OlBsYXRmb3JtOjpJbnB1dFR5cGVNb250aDoKKyAgICBj
YXNlIEJsYWNrQmVycnk6OlBsYXRmb3JtOjpJbnB1dFR5cGVXZWVrOgorICAgIGRlZmF1bHQ6Cisg
ICAgICAgIGJyZWFrOworICAgIH0KKyAgICBpZiAoIXZhbHVlLmlzRW1wdHkoKSkKKyAgICAgICAg
c291cmNlLmFwcGVuZCgiXCIiICsgU3RyaW5nKHZhbHVlLmltcGwoKSkgKyAiXCIsICIpOworICAg
IGVsc2UKKyAgICAgICAgc291cmNlLmFwcGVuZCgiMCwgIik7CisKKyAgICBpZiAoIW1pbi5pc0Vt
cHR5KCkpCisgICAgICAgIHNvdXJjZS5hcHBlbmQoU3RyaW5nKG1pbi5pbXBsKCkpICsgIiwgIik7
CisgICAgZWxzZQorICAgICAgICBzb3VyY2UuYXBwZW5kKCIwLCAiKTsKKyAgICBpZiAoIW1heC5p
c0VtcHR5KCkpCisgICAgICAgIHNvdXJjZS5hcHBlbmQoU3RyaW5nKG1heC5pbXBsKCkpICsgIiwg
Iik7CisgICAgZWxzZQorICAgICAgICBzb3VyY2UuYXBwZW5kKCIwLCAiKTsKKyAgICBzb3VyY2Uu
YXBwZW5kKFN0cmluZzo6bnVtYmVyKHN0ZXApKTsKKyAgICBzb3VyY2UuYXBwZW5kKCIpOyBcbiB9
KTsgXG4iKTsKKyAgICBzb3VyY2UuYXBwZW5kKHRpbWVDb250cm9sQmxhY2tCZXJyeUpzLCBzaXpl
b2YodGltZUNvbnRyb2xCbGFja0JlcnJ5SnMpKTsKKyAgICBzb3VyY2UuYXBwZW5kKCI8L3Njcmlw
dD5cbiIpOworICAgIHNvdXJjZS5hcHBlbmQoIjwvYm9keT4gPC9odG1sPlxuIik7CisgICAgbV9z
b3VyY2UgPSBzb3VyY2UudG9TdHJpbmcoKTsKK30KKwordm9pZCBEYXRlUGlja2VyQ2xpZW50Ojpj
bG9zZVBvcHVwKCkKK3sKKyAgICBBU1NFUlQobV93ZWJQYWdlKTsKKyAgICBtX3dlYlBhZ2UtPm1f
cGFnZS0+Y2hyb21lKCktPmNsaWVudCgpLT5jbG9zZVBhZ2VQb3B1cCgwKTsKK30KKworSW50U2l6
ZSBEYXRlUGlja2VyQ2xpZW50Ojpjb250ZW50U2l6ZSgpCit7CisgICAgLy8gRml4bWU6IHdpbGwg
Z2VuZXJhdGUgY29udGVudCBzaXplIGR5bmFtaWNhbGx5CisgICAgcmV0dXJuIEludFNpemUoMzIw
LCAyNTYpOworfQorCitTdHJpbmcgRGF0ZVBpY2tlckNsaWVudDo6aHRtbFNvdXJjZSgpCit7Cisg
ICAgcmV0dXJuIG1fc291cmNlOworfQorCit2b2lkIERhdGVQaWNrZXJDbGllbnQ6OnNldFZhbHVl
QW5kQ2xvc2VQb3B1cChpbnQsIGNvbnN0IFN0cmluZyYgdmFsdWUpCit7CisgICAgLy8gUmV0dXJu
IC0xIGlmIHVzZXIgY2FuY2VsIHRoZSBzZWxlY3Rpb24uCisgICAgQVNTRVJUKG1fZWxlbWVudCk7
CisKKyAgICBpZiAoIXZhbHVlLmNvbnRhaW5zKCItMSIpKQorICAgICAgICBtX2VsZW1lbnQtPnNl
dFZhbHVlKHZhbHVlKTsKKyAgICBjbG9zZVBvcHVwKCk7Cit9CisKK3ZvaWQgRGF0ZVBpY2tlckNs
aWVudDo6ZGlkQ2xvc2VQb3B1cCgpCit7CisgICAgbV93ZWJQYWdlID0gMDsKKyAgICBtX2VsZW1l
bnQgPSAwOworfQorCit2b2lkIERhdGVQaWNrZXJDbGllbnQ6OndyaXRlRG9jdW1lbnQoRG9jdW1l
bnRXcml0ZXImIHdyaXRlcikKK3sKKyAgICB3cml0ZXIuc2V0TUlNRVR5cGUoInRleHQvaHRtbCIp
OworICAgIHdyaXRlci5iZWdpbihLVVJMKCkpOworICAgIHdyaXRlci5hZGREYXRhKG1fc291cmNl
LnV0ZjgoKS5kYXRhKCksIG1fc291cmNlLnV0ZjgoKS5sZW5ndGgoKSk7CisgICAgd3JpdGVyLmVu
ZCgpOworfQorfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYkNvcmVT
dXBwb3J0L0RhdGVQaWNrZXJDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJD
b3JlU3VwcG9ydC9EYXRlUGlja2VyQ2xpZW50LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMC4uYmM2NDExYgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvYmxhY2ti
ZXJyeS9XZWJDb3JlU3VwcG9ydC9EYXRlUGlja2VyQ2xpZW50LmgKQEAgLTAsMCArMSw1NyBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBSZXNlYXJjaCBJbiBNb3Rpb24gTGltaXRlZC4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsg
eW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRl
cm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxp
c2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24g
MiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4K
KyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3
aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVu
IHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogTGVzc2VyIEdlbmVyYWwg
UHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUg
cmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisgKiBMaWNl
bnNlIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNv
ZnR3YXJlCisgKiBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZs
b29yLCBCb3N0b24sIE1BICAwMjExMC0xMzAxICBVU0EKKyAqLworCisjaWZuZGVmIERhdGVQaWNr
ZXJDbGllbnRfaAorI2RlZmluZSBEYXRlUGlja2VyQ2xpZW50X2gKKworI2luY2x1ZGUgIlBhZ2VQ
b3B1cENsaWVudC5oIgorI2luY2x1ZGUgPEJsYWNrQmVycnlQbGF0Zm9ybUlucHV0RXZlbnRzLmg+
CisKK25hbWVzcGFjZSBCbGFja0JlcnJ5IHsKK25hbWVzcGFjZSBXZWJLaXQgeworY2xhc3MgV2Vi
UGFnZVByaXZhdGU7CitjbGFzcyBXZWJTdHJpbmc7Cit9Cit9CisKK25hbWVzcGFjZSBXZWJDb3Jl
IHsKK2NsYXNzIERvY3VtZW50V3JpdGVyOworY2xhc3MgSFRNTElucHV0RWxlbWVudDsKKworY2xh
c3MgRGF0ZVBpY2tlckNsaWVudCA6IHB1YmxpYyBQYWdlUG9wdXBDbGllbnQgeworcHVibGljOgor
ICAgIERhdGVQaWNrZXJDbGllbnQoQmxhY2tCZXJyeTo6UGxhdGZvcm06OkJsYWNrQmVycnlJbnB1
dFR5cGUsIGNvbnN0IEJsYWNrQmVycnk6OldlYktpdDo6V2ViU3RyaW5nJiB2YWx1ZSwgY29uc3Qg
QmxhY2tCZXJyeTo6V2ViS2l0OjpXZWJTdHJpbmcmIG1pbiwgY29uc3QgQmxhY2tCZXJyeTo6V2Vi
S2l0OjpXZWJTdHJpbmcmIG1heCwgZG91YmxlIHN0ZXAsIEJsYWNrQmVycnk6OldlYktpdDo6V2Vi
UGFnZVByaXZhdGUqLCBIVE1MSW5wdXRFbGVtZW50Kik7CisgICAgfkRhdGVQaWNrZXJDbGllbnQo
KTsKKworICAgIHZvaWQgZ2VuZXJhdGVIVE1MKEJsYWNrQmVycnk6OlBsYXRmb3JtOjpCbGFja0Jl
cnJ5SW5wdXRUeXBlLCBjb25zdCBCbGFja0JlcnJ5OjpXZWJLaXQ6OldlYlN0cmluZyYgdmFsdWUs
IGNvbnN0IEJsYWNrQmVycnk6OldlYktpdDo6V2ViU3RyaW5nJiBtaW4sIGNvbnN0IEJsYWNrQmVy
cnk6OldlYktpdDo6V2ViU3RyaW5nJiBtYXgsIGRvdWJsZSBzdGVwKTsKKworICAgIHZvaWQgd3Jp
dGVEb2N1bWVudChEb2N1bWVudFdyaXRlciYpOworICAgIHZpcnR1YWwgSW50U2l6ZSBjb250ZW50
U2l6ZSgpOworICAgIHZpcnR1YWwgU3RyaW5nIGh0bWxTb3VyY2UoKTsKKyAgICB2b2lkIHNldFZh
bHVlQW5kQ2xvc2VQb3B1cChpbnQsIGNvbnN0IFN0cmluZyYpOworICAgIHZvaWQgZGlkQ2xvc2VQ
b3B1cCgpOworICAgIHZvaWQgY2xvc2VQb3B1cCgpOworCitwcml2YXRlOgorICAgIEJsYWNrQmVy
cnk6OlBsYXRmb3JtOjpCbGFja0JlcnJ5SW5wdXRUeXBlIG1fdHlwZTsKKyAgICBTdHJpbmcgbV9z
b3VyY2U7CisgICAgQmxhY2tCZXJyeTo6V2ViS2l0OjpXZWJQYWdlUHJpdmF0ZSogbV93ZWJQYWdl
OworICAgIEhUTUxJbnB1dEVsZW1lbnQqIG1fZWxlbWVudDsKK307Cit9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJL
aXRTdXBwb3J0L0lucHV0SGFuZGxlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2Vi
S2l0U3VwcG9ydC9JbnB1dEhhbmRsZXIuY3BwCmluZGV4IGIzZjU0MTMuLmM5YzUyMDAgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJLaXRTdXBwb3J0L0lucHV0SGFuZGxl
ci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYktpdFN1cHBvcnQvSW5wdXRI
YW5kbGVyLmNwcApAQCAtMjUsNiArMjUsNyBAQAogI2luY2x1ZGUgIkNTdHJpbmcuaCIKICNpbmNs
dWRlICJDaHJvbWUuaCIKICNpbmNsdWRlICJET01TdXBwb3J0LmgiCisjaW5jbHVkZSAiRGF0ZVBp
Y2tlckNsaWVudC5oIgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiRG9jdW1lbnRM
b2FkZXIuaCIKICNpbmNsdWRlICJEb2N1bWVudE1hcmtlckNvbnRyb2xsZXIuaCIKQEAgLTQ5NSwx
NSArNDk2LDI4IEBAIGJvb2wgSW5wdXRIYW5kbGVyOjpvcGVuRGF0ZVBvcHVwKEhUTUxJbnB1dEVs
ZW1lbnQqIGVsZW1lbnQsIEJsYWNrQmVycnlJbnB1dFR5cGUKICAgICBpZiAoaXNBY3RpdmVUZXh0
RWRpdCgpKQogICAgICAgICBjbGVhckN1cnJlbnRGb2N1c0VsZW1lbnQoKTsKIAotICAgIG1fY3Vy
cmVudEZvY3VzRWxlbWVudCA9IGVsZW1lbnQ7Ci0gICAgbV9jdXJyZW50Rm9jdXNFbGVtZW50VHlw
ZSA9IFRleHRQb3B1cDsKKyAgICBzd2l0Y2ggKHR5cGUpIHsKKyAgICBjYXNlIEJsYWNrQmVycnk6
OlBsYXRmb3JtOjpJbnB1dFR5cGVEYXRlOgorICAgIGNhc2UgQmxhY2tCZXJyeTo6UGxhdGZvcm06
OklucHV0VHlwZVRpbWU6CisgICAgY2FzZSBCbGFja0JlcnJ5OjpQbGF0Zm9ybTo6SW5wdXRUeXBl
RGF0ZVRpbWU6CisgICAgY2FzZSBCbGFja0JlcnJ5OjpQbGF0Zm9ybTo6SW5wdXRUeXBlRGF0ZVRp
bWVMb2NhbDogeworICAgICAgICAvLyBDaGVjayBpZiBwb3B1cCBhbHJlYWR5IGV4aXN0cywgY2xv
c2UgaXQgaWYgZG9lcy4KKyAgICAgICAgbV93ZWJQYWdlLT5tX3BhZ2UtPmNocm9tZSgpLT5jbGll
bnQoKS0+Y2xvc2VQYWdlUG9wdXAoMCk7CisgICAgICAgIFN0cmluZyB2YWx1ZSA9IGVsZW1lbnQt
PnZhbHVlKCk7CisgICAgICAgIFN0cmluZyBtaW4gPSBlbGVtZW50LT5nZXRBdHRyaWJ1dGUoSFRN
TE5hbWVzOjptaW5BdHRyKS5zdHJpbmcoKTsKKyAgICAgICAgU3RyaW5nIG1heCA9IGVsZW1lbnQt
PmdldEF0dHJpYnV0ZShIVE1MTmFtZXM6Om1heEF0dHIpLnN0cmluZygpOworICAgICAgICBkb3Vi
bGUgc3RlcCA9IGVsZW1lbnQtPmdldEF0dHJpYnV0ZShIVE1MTmFtZXM6OnN0ZXBBdHRyKS50b0Rv
dWJsZSgpOworCisgICAgICAgIERhdGVQaWNrZXJDbGllbnQqIGNsaWVudCA9IG5ldyBEYXRlUGlj
a2VyQ2xpZW50KHR5cGUsIHZhbHVlLCBtaW4sIG1heCwgc3RlcCwgIG1fd2ViUGFnZSwgZWxlbWVu
dCk7CisgICAgICAgIC8vIEZhaWwgdG8gY3JlYXRlIEhUTUwgcG9wdXAsIHVzZSB0aGUgb2xkIHBh
dGgKKyAgICAgICAgaWYgKCFtX3dlYlBhZ2UtPm1fcGFnZS0+Y2hyb21lKCktPmNsaWVudCgpLT5v
cGVuUGFnZVBvcHVwKGNsaWVudCwgIFdlYkNvcmU6OkludFJlY3QoKSkpCisgICAgICAgICAgICBt
X3dlYlBhZ2UtPm1fY2xpZW50LT5vcGVuRGF0ZVRpbWVQb3B1cCh0eXBlLCB2YWx1ZSwgbWluLCBt
YXgsIHN0ZXApOwogCi0gICAgV1RGOjpTdHJpbmcgdmFsdWUgPSBlbGVtZW50LT52YWx1ZSgpOwot
ICAgIFdURjo6U3RyaW5nIG1pbiA9IGVsZW1lbnQtPmdldEF0dHJpYnV0ZShIVE1MTmFtZXM6Om1p
bkF0dHIpLnN0cmluZygpOwotICAgIFdURjo6U3RyaW5nIG1heCA9IGVsZW1lbnQtPmdldEF0dHJp
YnV0ZShIVE1MTmFtZXM6Om1heEF0dHIpLnN0cmluZygpOwotICAgIGRvdWJsZSBzdGVwID0gZWxl
bWVudC0+Z2V0QXR0cmlidXRlKEhUTUxOYW1lczo6c3RlcEF0dHIpLnRvRG91YmxlKCk7Ci0gICAg
bV93ZWJQYWdlLT5tX2NsaWVudC0+b3BlbkRhdGVUaW1lUG9wdXAodHlwZSwgdmFsdWUsIG1pbiwg
bWF4LCBzdGVwKTsKLSAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAg
ICAgIH0KKyAgICBkZWZhdWx0OiAvLyBPdGhlciB0eXBlcyBub3Qgc3VwcG9ydGVkCisgICAgICAg
IHJldHVybiBmYWxzZTsKKyAgICB9CiB9CiAKIGJvb2wgSW5wdXRIYW5kbGVyOjpvcGVuQ29sb3JQ
b3B1cChIVE1MSW5wdXRFbGVtZW50KiBlbGVtZW50KQotLSAKMS43LjEwLjEKCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>