<?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>96001</bug_id>
          
          <creation_ts>2012-09-06 11:10:06 -0700</creation_ts>
          <short_desc>[BlackBerry]  Implement a color picker</short_desc>
          <delta_ts>2012-09-06 21:30:41 -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>cdumez</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>keishi</cc>
    
    <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>713480</commentid>
    <comment_count>0</comment_count>
    <who name="Crystal Zhang">haizhang</who>
    <bug_when>2012-09-06 11:10:06 -0700</bug_when>
    <thetext>Implement a HTML color picker.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>713505</commentid>
    <comment_count>1</comment_count>
      <attachid>162544</attachid>
    <who name="Crystal Zhang">haizhang</who>
    <bug_when>2012-09-06 11:25:29 -0700</bug_when>
    <thetext>Created attachment 162544
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>713553</commentid>
    <comment_count>2</comment_count>
      <attachid>162544</attachid>
    <who name="Antonio Gomes">tonikitoo</who>
    <bug_when>2012-09-06 12:08:49 -0700</bug_when>
    <thetext>Comment on attachment 162544
patch

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

&gt; Source/WebKit/blackberry/WebCoreSupport/ColorPickerClient.cpp:47
&gt; +ColorPickerClient::~ColorPickerClient()
&gt; +{
&gt; +}

lets omit this?

&gt; Source/WebKit/blackberry/WebCoreSupport/ColorPickerClient.cpp:79
&gt; +IntSize ColorPickerClient::contentSize()

const

&gt; Source/WebKit/blackberry/WebCoreSupport/ColorPickerClient.cpp:81
&gt; +    // Fixme: will generate content size dynamically

FIXME*

&gt; Source/WebKit/blackberry/WebCoreSupport/ColorPickerClient.cpp:85
&gt; +String ColorPickerClient::htmlSource()

const</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>713564</commentid>
    <comment_count>3</comment_count>
      <attachid>162544</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2012-09-06 12:22:09 -0700</bug_when>
    <thetext>Comment on attachment 162544
patch

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

&gt; Source/WebKit/blackberry/WebCoreSupport/ColorPickerClient.cpp:52
&gt; +    source.append(&quot;&lt;style&gt;\n&quot;);

You should use appendLiteral() here, it is more efficient.

&gt; Source/WebKit/blackberry/WebCoreSupport/ColorPickerClient.cpp:56
&gt; +    source.append(&quot;&lt;/style&gt;\n&lt;style&gt;&quot;);

Ditto.

&gt; Source/WebKit/blackberry/WebCoreSupport/ColorPickerClient.cpp:59
&gt; +    source.append(&quot;&lt;/style&gt;&lt;/head&gt;&lt;body&gt;\n&quot;);

Ditto.

&gt; Source/WebKit/blackberry/WebCoreSupport/ColorPickerClient.cpp:60
&gt; +    source.append(&quot;&lt;script&gt;\n&quot;);

Ditto...

&gt; Source/WebKit/blackberry/WebCoreSupport/ColorPickerClient.cpp:109
&gt; +    writer.addData(m_source.utf8().data(), m_source.utf8().length());

You should probably store m_source.utf8() in a local variable to avoid copying the string twice.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>713566</commentid>
    <comment_count>4</comment_count>
      <attachid>162544</attachid>
    <who name="Rob Buis">rwlbuis</who>
    <bug_when>2012-09-06 12:23:23 -0700</bug_when>
    <thetext>Comment on attachment 162544
patch

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

Looks good, but please address Antonio and my comments.

&gt; Source/WebKit/blackberry/WebCoreSupport/ColorPickerClient.h:48
&gt; +    void closePopup();

It seems many of these can be private.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>713580</commentid>
    <comment_count>5</comment_count>
    <who name="Crystal Zhang">haizhang</who>
    <bug_when>2012-09-06 12:33:51 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; (From update of attachment 162544 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=162544&amp;action=review
&gt; 
&gt; &gt; Source/WebKit/blackberry/WebCoreSupport/ColorPickerClient.cpp:52
&gt; &gt; +    source.append(&quot;&lt;style&gt;\n&quot;);
&gt; 
&gt; You should use appendLiteral() here, it is more efficient.
&gt; 
&gt; &gt; Source/WebKit/blackberry/WebCoreSupport/ColorPickerClient.cpp:56
&gt; &gt; +    source.append(&quot;&lt;/style&gt;\n&lt;style&gt;&quot;);
&gt; 
&gt; Ditto.
&gt; 
&gt; &gt; Source/WebKit/blackberry/WebCoreSupport/ColorPickerClient.cpp:59
&gt; &gt; +    source.append(&quot;&lt;/style&gt;&lt;/head&gt;&lt;body&gt;\n&quot;);
&gt; 
&gt; Ditto.
&gt; 
&gt; &gt; Source/WebKit/blackberry/WebCoreSupport/ColorPickerClient.cpp:60
&gt; &gt; +    source.append(&quot;&lt;script&gt;\n&quot;);
&gt; 
&gt; Ditto...
&gt; 
&gt; &gt; Source/WebKit/blackberry/WebCoreSupport/ColorPickerClient.cpp:109
&gt; &gt; +    writer.addData(m_source.utf8().data(), m_source.utf8().length());
&gt; 
&gt; You should probably store m_source.utf8() in a local variable to avoid copying the string twice.
 We don&apos;t have appendLiteral() in blackberry port, so have to keep append().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>713582</commentid>
    <comment_count>6</comment_count>
    <who name="Crystal Zhang">haizhang</who>
    <bug_when>2012-09-06 12:39:20 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 162544 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=162544&amp;action=review
&gt; 
&gt; &gt; Source/WebKit/blackberry/WebCoreSupport/ColorPickerClient.cpp:47
&gt; &gt; +ColorPickerClient::~ColorPickerClient()
&gt; &gt; +{
&gt; &gt; +}
&gt; 
&gt; lets omit this?
&gt; 
&gt; &gt; Source/WebKit/blackberry/WebCoreSupport/ColorPickerClient.cpp:79
&gt; &gt; +IntSize ColorPickerClient::contentSize()
&gt; 
&gt; const
&gt; 
Can&apos;t add const here as the function comes from parent class.

&gt; &gt; Source/WebKit/blackberry/WebCoreSupport/ColorPickerClient.cpp:81
&gt; &gt; +    // Fixme: will generate content size dynamically
&gt; 
&gt; FIXME*
&gt; 
&gt; &gt; Source/WebKit/blackberry/WebCoreSupport/ColorPickerClient.cpp:85
&gt; &gt; +String ColorPickerClient::htmlSource()
&gt; 
&gt; const</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>713597</commentid>
    <comment_count>7</comment_count>
      <attachid>162560</attachid>
    <who name="Crystal Zhang">haizhang</who>
    <bug_when>2012-09-06 12:54:13 -0700</bug_when>
    <thetext>Created attachment 162560
updated patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>713605</commentid>
    <comment_count>8</comment_count>
      <attachid>162560</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2012-09-06 13:04:04 -0700</bug_when>
    <thetext>Comment on attachment 162560
updated patch

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

&gt; Source/WebKit/blackberry/WebCoreSupport/ColorPickerClient.cpp:105
&gt; +    writer.addData(m_source.utf8().data(), m_source.utf8().length());

My comment about caching m_source.utf8() in a local variable was still valid I believe. Any reason you did not fix it?
Your copying the string twice here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>713611</commentid>
    <comment_count>9</comment_count>
      <attachid>162560</attachid>
    <who name="Rob Buis">rwlbuis</who>
    <bug_when>2012-09-06 13:13:54 -0700</bug_when>
    <thetext>Comment on attachment 162560
updated patch

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

The comment needs to be fixed, and Cristophe&apos;s concern too.

&gt; Source/WebKit/blackberry/WebCoreSupport/ColorPickerClient.cpp:88
&gt; +    // Return -1 if user cancel the selection.

Comment is a bit wierd.

&gt; Source/WebKit/blackberry/WebCoreSupport/ColorPickerClient.cpp:91
&gt; +    static const char* cancelValue = &quot;-1&quot;;

I dont like using -1 in a string. Or keeping a static var for it. You also still need to convert it to a String each time. Maybe an empty string can be used to cancel? But this does not need to be fixed with this patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>713617</commentid>
    <comment_count>10</comment_count>
    <who name="Crystal Zhang">haizhang</who>
    <bug_when>2012-09-06 13:17:06 -0700</bug_when>
    <thetext>(In reply to comment #8)
&gt; (From update of attachment 162560 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=162560&amp;action=review
&gt; 
&gt; &gt; Source/WebKit/blackberry/WebCoreSupport/ColorPickerClient.cpp:105
&gt; &gt; +    writer.addData(m_source.utf8().data(), m_source.utf8().length());
&gt; 
&gt; My comment about caching m_source.utf8() in a local variable was still valid I believe. Any reason you did not fix it?
&gt; Your copying the string twice here.

ok, will add it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>713628</commentid>
    <comment_count>11</comment_count>
      <attachid>162567</attachid>
    <who name="Crystal Zhang">haizhang</who>
    <bug_when>2012-09-06 13:28:33 -0700</bug_when>
    <thetext>Created attachment 162567
updated patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>713634</commentid>
    <comment_count>12</comment_count>
      <attachid>162567</attachid>
    <who name="Rob Buis">rwlbuis</who>
    <bug_when>2012-09-06 13:32:31 -0700</bug_when>
    <thetext>Comment on attachment 162567
updated patch

Looks good.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>714059</commentid>
    <comment_count>13</comment_count>
      <attachid>162567</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-09-06 21:18:30 -0700</bug_when>
    <thetext>Comment on attachment 162567
updated patch

Clearing flags on attachment: 162567

Committed r127817: &lt;http://trac.webkit.org/changeset/127817&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>714060</commentid>
    <comment_count>14</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-09-06 21:18:34 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>162544</attachid>
            <date>2012-09-06 11:25:29 -0700</date>
            <delta_ts>2012-09-06 12:54:13 -0700</delta_ts>
            <desc>patch</desc>
            <filename>0001-2012-09-06-Crystal-Zhang-haizhang-rim.com.patch</filename>
            <type>text/plain</type>
            <size>11251</size>
            <attacher name="Crystal Zhang">haizhang</attacher>
            
              <data encoding="base64">RnJvbSAwNTdjOTlhMGY2MDM3MmM5MWJhYWJmZDA3M2ExZTA5NzRkNGU0NGM2IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBDcnlzdGFsIFpoYW5nIDxoYWl6aGFuZ0ByaW0uY29tPgpEYXRl
OiBUaHUsIDYgU2VwIDIwMTIgMTQ6MjE6MDkgLTA0MDAKU3ViamVjdDogW1BBVENIXSAyMDEyLTA5
LTA2ICBDcnlzdGFsIFpoYW5nICA8aGFpemhhbmdAcmltLmNvbT4KCiAgICAgICAgW0JsYWNrQmVy
cnldICBJbXBsZW1lbnQgYSBjb2xvciBwaWNrZXIKICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTYwMDEKCiAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCgogICAgICAgIEFkZCBmaWxlcyBmb3IgY29sb3IgcGlja2VyLCByZXBsYWNlIG9sZCBo
b29rIHRvIEFJUiBjb2xvciBwaWNrZXIuCgogICAgICAgICogV2ViQ29yZVN1cHBvcnQvQ29sb3JQ
aWNrZXJDbGllbnQuY3BwOiBBZGRlZC4KICAgICAgICAoV2ViQ29yZSk6CiAgICAgICAgKFdlYkNv
cmU6OkNvbG9yUGlja2VyQ2xpZW50OjpDb2xvclBpY2tlckNsaWVudCk6CiAgICAgICAgKFdlYkNv
cmU6OkNvbG9yUGlja2VyQ2xpZW50Ojp+Q29sb3JQaWNrZXJDbGllbnQpOgogICAgICAgIChXZWJD
b3JlOjpDb2xvclBpY2tlckNsaWVudDo6Z2VuZXJhdGVIVE1MKToKICAgICAgICAoV2ViQ29yZTo6
Q29sb3JQaWNrZXJDbGllbnQ6OmNsb3NlUG9wdXApOgogICAgICAgIChXZWJDb3JlOjpDb2xvclBp
Y2tlckNsaWVudDo6Y29udGVudFNpemUpOgogICAgICAgIChXZWJDb3JlOjpDb2xvclBpY2tlckNs
aWVudDo6aHRtbFNvdXJjZSk6CiAgICAgICAgKFdlYkNvcmU6OkNvbG9yUGlja2VyQ2xpZW50Ojpz
ZXRWYWx1ZUFuZENsb3NlUG9wdXApOgogICAgICAgIChXZWJDb3JlOjpDb2xvclBpY2tlckNsaWVu
dDo6ZGlkQ2xvc2VQb3B1cCk6CiAgICAgICAgKFdlYkNvcmU6OkNvbG9yUGlja2VyQ2xpZW50Ojp3
cml0ZURvY3VtZW50KToKICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0NvbG9yUGlja2VyQ2xpZW50
Lmg6IEFkZGVkLgogICAgICAgIChXZWJLaXQpOgogICAgICAgIChXZWJDb3JlKToKICAgICAgICAo
Q29sb3JQaWNrZXJDbGllbnQpOgogICAgICAgICogV2ViS2l0U3VwcG9ydC9JbnB1dEhhbmRsZXIu
Y3BwOgogICAgICAgIChCbGFja0JlcnJ5OjpXZWJLaXQ6OklucHV0SGFuZGxlcjo6b3BlbkNvbG9y
UG9wdXApOgotLS0KIFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHwgICAxMSArKwogU291cmNlL1dlYktpdC9QbGF0Zm9ybUJsYWNrQmVycnkuY21ha2Ug
ICAgICAgICAgICAgfCAgICAxICsKIFNvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9DaGFuZ2VMb2cg
ICAgICAgICAgICAgICAgIHwgICAyNyArKysrKwogLi4uL1dlYkNvcmVTdXBwb3J0L0NvbG9yUGlj
a2VyQ2xpZW50LmNwcCAgICAgICAgICAgfCAgMTExICsrKysrKysrKysrKysrKysrKysrCiAuLi4v
YmxhY2tiZXJyeS9XZWJDb3JlU3VwcG9ydC9Db2xvclBpY2tlckNsaWVudC5oICB8ICAgNTYgKysr
KysrKysrKwogLi4uL2JsYWNrYmVycnkvV2ViS2l0U3VwcG9ydC9JbnB1dEhhbmRsZXIuY3BwICAg
ICAgfCAgICA4ICstCiA2IGZpbGVzIGNoYW5nZWQsIDIxMiBpbnNlcnRpb25zKCspLCAyIGRlbGV0
aW9ucygtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IFNvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJD
b3JlU3VwcG9ydC9Db2xvclBpY2tlckNsaWVudC5jcHAKIGNyZWF0ZSBtb2RlIDEwMDY0NCBTb3Vy
Y2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViQ29yZVN1cHBvcnQvQ29sb3JQaWNrZXJDbGllbnQuaAoK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFu
Z2VMb2cKaW5kZXggYWRiNTNlZC4uNWEzODMxMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9D
aGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAor
MjAxMi0wOS0wNiAgQ3J5c3RhbCBaaGFuZyAgPGhhaXpoYW5nQHJpbS5jb20+CisKKyAgICAgICAg
W0JsYWNrQmVycnldICBJbXBsZW1lbnQgYSBjb2xvciBwaWNrZXIKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk2MDAxCisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIGNvbG9yIHBpY2tlciBmaWxlcyBpbnRv
IGJ1aWxkaW5nIHN5c3RlbS4KKworICAgICAgICAqIFBsYXRmb3JtQmxhY2tCZXJyeS5jbWFrZToK
KwogMjAxMi0wOS0wNiAgU2ltb24gSGF1c21hbm4gIDxzaW1vbi5oYXVzbWFubkBub2tpYS5jb20+
CiAKICAgICAgICAgW1F0XSBGaXggYnVpbGQgd2l0aCBBTkdMRSBvbiBwbGF0Zm9ybXMgdGhhdCBw
cm92aWRlIEVHTC9HTEVTdjIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm1CbGFj
a0JlcnJ5LmNtYWtlIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybUJsYWNrQmVycnkuY21ha2UKaW5k
ZXggNWQ1YTI1NS4uMzY1Y2RiZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybUJs
YWNrQmVycnkuY21ha2UKKysrIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybUJsYWNrQmVycnkuY21h
a2UKQEAgLTkyLDYgKzkyLDcgQEAgTElTVChBUFBFTkQgV2ViS2l0X1NPVVJDRVMKICAgICBibGFj
a2JlcnJ5L1dlYkNvcmVTdXBwb3J0L1BhZ2VQb3B1cEJsYWNrQmVycnkuY3BwCiAgICAgYmxhY2ti
ZXJyeS9XZWJDb3JlU3VwcG9ydC9TZWxlY3RQb3B1cENsaWVudC5jcHAKICAgICBibGFja2JlcnJ5
L1dlYkNvcmVTdXBwb3J0L0RhdGVQaWNrZXJDbGllbnQuY3BwCisgICAgYmxhY2tiZXJyeS9XZWJD
b3JlU3VwcG9ydC9Db2xvclBpY2tlckNsaWVudC5jcHAKICAgICBibGFja2JlcnJ5L1dlYktpdFN1
cHBvcnQvQWJvdXREYXRhLmNwcAogICAgIGJsYWNrYmVycnkvV2ViS2l0U3VwcG9ydC9CYWNraW5n
U3RvcmVDb21wb3NpdGluZ1N1cmZhY2UuY3BwCiAgICAgYmxhY2tiZXJyeS9XZWJLaXRTdXBwb3J0
L0JhY2tpbmdTdG9yZVRpbGUuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVy
cnkvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0NoYW5nZUxvZwppbmRleCA1
NWRmY2I3Li41NzUyNDlkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQ2hh
bmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwzMCBAQAorMjAxMi0wOS0wNiAgQ3J5c3RhbCBaaGFuZyAgPGhhaXpoYW5nQHJpbS5jb20+CisK
KyAgICAgICAgW0JsYWNrQmVycnldICBJbXBsZW1lbnQgYSBjb2xvciBwaWNrZXIKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk2MDAxCisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIGZpbGVzIGZvciBjb2xv
ciBwaWNrZXIsIHJlcGxhY2Ugb2xkIGhvb2sgdG8gQUlSIGNvbG9yIHBpY2tlci4KKworICAgICAg
ICAqIFdlYkNvcmVTdXBwb3J0L0NvbG9yUGlja2VyQ2xpZW50LmNwcDogQWRkZWQuCisgICAgICAg
IChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbG9yUGlja2VyQ2xpZW50OjpDb2xvclBp
Y2tlckNsaWVudCk6CisgICAgICAgIChXZWJDb3JlOjpDb2xvclBpY2tlckNsaWVudDo6fkNvbG9y
UGlja2VyQ2xpZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkNvbG9yUGlja2VyQ2xpZW50OjpnZW5l
cmF0ZUhUTUwpOgorICAgICAgICAoV2ViQ29yZTo6Q29sb3JQaWNrZXJDbGllbnQ6OmNsb3NlUG9w
dXApOgorICAgICAgICAoV2ViQ29yZTo6Q29sb3JQaWNrZXJDbGllbnQ6OmNvbnRlbnRTaXplKToK
KyAgICAgICAgKFdlYkNvcmU6OkNvbG9yUGlja2VyQ2xpZW50OjpodG1sU291cmNlKToKKyAgICAg
ICAgKFdlYkNvcmU6OkNvbG9yUGlja2VyQ2xpZW50OjpzZXRWYWx1ZUFuZENsb3NlUG9wdXApOgor
ICAgICAgICAoV2ViQ29yZTo6Q29sb3JQaWNrZXJDbGllbnQ6OmRpZENsb3NlUG9wdXApOgorICAg
ICAgICAoV2ViQ29yZTo6Q29sb3JQaWNrZXJDbGllbnQ6OndyaXRlRG9jdW1lbnQpOgorICAgICAg
ICAqIFdlYkNvcmVTdXBwb3J0L0NvbG9yUGlja2VyQ2xpZW50Lmg6IEFkZGVkLgorICAgICAgICAo
V2ViS2l0KToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoQ29sb3JQaWNrZXJDbGllbnQp
OgorICAgICAgICAqIFdlYktpdFN1cHBvcnQvSW5wdXRIYW5kbGVyLmNwcDoKKyAgICAgICAgKEJs
YWNrQmVycnk6OldlYktpdDo6SW5wdXRIYW5kbGVyOjpvcGVuQ29sb3JQb3B1cCk6CisKIDIwMTIt
MDktMDUgIFNhbSBXZWluaWcgIDxzYW1Ad2Via2l0Lm9yZz4KIAogICAgICAgICBQYXJ0IDIgb2Yg
cmVtb3ZpbmcgUGxhdGZvcm1TdHJpbmcuaCwgcmVtb3ZlIFBsYXRmb3JtU3RyaW5nLmgKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJDb3JlU3VwcG9ydC9Db2xvclBpY2tl
ckNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViQ29yZVN1cHBvcnQvQ29s
b3JQaWNrZXJDbGllbnQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjY4
MzdkYzUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViQ29y
ZVN1cHBvcnQvQ29sb3JQaWNrZXJDbGllbnQuY3BwCkBAIC0wLDAgKzEsMTExIEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDEyIFJlc2VhcmNoIEluIE1vdGlvbiBMaW1pdGVkLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2Fu
IHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2Yg
dGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5
IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRo
ZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAq
IFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUg
dXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGlt
cGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBMZXNzZXIgR2VuZXJhbCBQdWJsaWMg
TGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZl
ZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYWxv
bmcgd2l0aCB0aGlzIGxpYnJhcnk7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUK
KyAqIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsIEJv
c3RvbiwgTUEgIDAyMTEwLTEzMDEgIFVTQQorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNp
bmNsdWRlICJDb2xvclBpY2tlckNsaWVudC5oIgorCisjaW5jbHVkZSAiQ2hyb21lLmgiCisjaW5j
bHVkZSAiQ2hyb21lQ2xpZW50LmgiCisjaW5jbHVkZSAiRG9jdW1lbnQuaCIKKyNpbmNsdWRlICJE
b2N1bWVudFdyaXRlci5oIgorI2luY2x1ZGUgIkhUTUxJbnB1dEVsZW1lbnQuaCIKKyNpbmNsdWRl
ICJQYWdlLmgiCisjaW5jbHVkZSAiUGFnZVBvcHVwLmgiCisjaW5jbHVkZSAiUG9wdXBQaWNrZXIu
aCIKKyNpbmNsdWRlICJSZW5kZXJPYmplY3QuaCIKKyNpbmNsdWRlICJXZWJQYWdlX3AuaCIKKyNp
bmNsdWRlICJXZWJTdHJpbmcuaCIKKworI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0J1aWxkZXIu
aD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitDb2xvclBpY2tlckNsaWVudDo6Q29sb3JQaWNr
ZXJDbGllbnQoY29uc3QgQmxhY2tCZXJyeTo6V2ViS2l0OjpXZWJTdHJpbmcmIHZhbHVlLCBCbGFj
a0JlcnJ5OjpXZWJLaXQ6OldlYlBhZ2VQcml2YXRlKiB3ZWJQYWdlLCBIVE1MSW5wdXRFbGVtZW50
KiBlbGVtZW50KQorICAgIDogbV93ZWJQYWdlKHdlYlBhZ2UpCisgICAgLCBtX2VsZW1lbnQoZWxl
bWVudCkKK3sKKyAgICBnZW5lcmF0ZUhUTUwodmFsdWUpOworfQorCitDb2xvclBpY2tlckNsaWVu
dDo6fkNvbG9yUGlja2VyQ2xpZW50KCkKK3sKK30KKwordm9pZCBDb2xvclBpY2tlckNsaWVudDo6
Z2VuZXJhdGVIVE1MKGNvbnN0IEJsYWNrQmVycnk6OldlYktpdDo6V2ViU3RyaW5nJiB2YWx1ZSkK
K3sKKyAgICBTdHJpbmdCdWlsZGVyIHNvdXJjZTsKKyAgICBzb3VyY2UuYXBwZW5kKCI8c3R5bGU+
XG4iKTsKKyAgICAvLyBJbmNsdWRlIENTUyBmaWxlLgorICAgIHNvdXJjZS5hcHBlbmQocG9wdXBD
b250cm9sQmxhY2tCZXJyeUNzcywKKyAgICAgICAgICAgIHNpemVvZihwb3B1cENvbnRyb2xCbGFj
a0JlcnJ5Q3NzKSk7CisgICAgc291cmNlLmFwcGVuZCgiPC9zdHlsZT5cbjxzdHlsZT4iKTsKKyAg
ICBzb3VyY2UuYXBwZW5kKGNvbG9yQ29udHJvbEJsYWNrQmVycnlDc3MsCisgICAgICAgICAgICBz
aXplb2YoY29sb3JDb250cm9sQmxhY2tCZXJyeUNzcykpOworICAgIHNvdXJjZS5hcHBlbmQoIjwv
c3R5bGU+PC9oZWFkPjxib2R5PlxuIik7CisgICAgc291cmNlLmFwcGVuZCgiPHNjcmlwdD5cbiIp
OworICAgIHNvdXJjZS5hcHBlbmQoIndpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVu
Y3Rpb24gKCkgeyIpOworICAgIHNvdXJjZS5hcHBlbmQoIndpbmRvdy5wb3B1cGNvbnRyb2wuc2hv
dygiKTsKKyAgICBpZiAoIXZhbHVlLmlzRW1wdHkoKSkKKyAgICAgICAgc291cmNlLmFwcGVuZCgi
XCIiICsgU3RyaW5nKHZhbHVlLmltcGwoKSkgKyAiXCIpOyBcbiB9KTsgXG4iKTsKKyAgICBlbHNl
CisgICAgICAgIHNvdXJjZS5hcHBlbmQoIik7IFxuIH0pOyBcbiIpOworICAgIHNvdXJjZS5hcHBl
bmQoY29sb3JDb250cm9sQmxhY2tCZXJyeUpzLCBzaXplb2YoY29sb3JDb250cm9sQmxhY2tCZXJy
eUpzKSk7CisgICAgc291cmNlLmFwcGVuZCgiPC9zY3JpcHQ+XG4iKTsKKyAgICBzb3VyY2UuYXBw
ZW5kKCI8L2JvZHk+IDwvaHRtbD5cbiIpOworICAgIG1fc291cmNlID0gc291cmNlLnRvU3RyaW5n
KCk7Cit9CisKK3ZvaWQgQ29sb3JQaWNrZXJDbGllbnQ6OmNsb3NlUG9wdXAoKQoreworICAgIEFT
U0VSVChtX3dlYlBhZ2UpOworICAgIG1fd2ViUGFnZS0+bV9wYWdlLT5jaHJvbWUoKS0+Y2xpZW50
KCktPmNsb3NlUGFnZVBvcHVwKDApOworfQorCitJbnRTaXplIENvbG9yUGlja2VyQ2xpZW50Ojpj
b250ZW50U2l6ZSgpCit7CisgICAgLy8gRml4bWU6IHdpbGwgZ2VuZXJhdGUgY29udGVudCBzaXpl
IGR5bmFtaWNhbGx5CisgICAgcmV0dXJuIEludFNpemUoMzIwLCAyNTYpOworfQorCitTdHJpbmcg
Q29sb3JQaWNrZXJDbGllbnQ6Omh0bWxTb3VyY2UoKQoreworICAgIHJldHVybiBtX3NvdXJjZTsK
K30KKwordm9pZCBDb2xvclBpY2tlckNsaWVudDo6c2V0VmFsdWVBbmRDbG9zZVBvcHVwKGludCwg
Y29uc3QgU3RyaW5nJiB2YWx1ZSkKK3sKKyAgICAvLyBSZXR1cm4gLTEgaWYgdXNlciBjYW5jZWwg
dGhlIHNlbGVjdGlvbi4KKyAgICBBU1NFUlQobV9lbGVtZW50KTsKKworICAgIHN0YXRpYyBjb25z
dCBjaGFyKiBjYW5jZWxWYWx1ZSA9ICItMSI7CisgICAgaWYgKHZhbHVlICE9IGNhbmNlbFZhbHVl
KQorICAgICAgICBtX2VsZW1lbnQtPnNldFZhbHVlKHZhbHVlKTsKKyAgICBjbG9zZVBvcHVwKCk7
Cit9CisKK3ZvaWQgQ29sb3JQaWNrZXJDbGllbnQ6OmRpZENsb3NlUG9wdXAoKQoreworICAgIG1f
d2ViUGFnZSA9IDA7CisgICAgbV9lbGVtZW50ID0gMDsKK30KKwordm9pZCBDb2xvclBpY2tlckNs
aWVudDo6d3JpdGVEb2N1bWVudChEb2N1bWVudFdyaXRlciYgd3JpdGVyKQoreworICAgIHdyaXRl
ci5hZGREYXRhKG1fc291cmNlLnV0ZjgoKS5kYXRhKCksIG1fc291cmNlLnV0ZjgoKS5sZW5ndGgo
KSk7Cit9Cit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViQ29yZVN1
cHBvcnQvQ29sb3JQaWNrZXJDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJD
b3JlU3VwcG9ydC9Db2xvclBpY2tlckNsaWVudC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAuLjE4NTM1MGMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L2JsYWNr
YmVycnkvV2ViQ29yZVN1cHBvcnQvQ29sb3JQaWNrZXJDbGllbnQuaApAQCAtMCwwICsxLDU2IEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIFJlc2VhcmNoIEluIE1vdGlvbiBMaW1pdGVkLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJl
OyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUg
dGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVi
bGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogdmVyc2lv
biAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9u
LgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0
IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2
ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBMZXNzZXIgR2VuZXJh
bCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2
ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAqIExp
Y2Vuc2UgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUg
U29mdHdhcmUKKyAqIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGgg
Rmxvb3IsIEJvc3RvbiwgTUEgIDAyMTEwLTEzMDEgIFVTQQorICovCisKKyNpZm5kZWYgQ29sb3JQ
aWNrZXJDbGllbnRfaAorI2RlZmluZSBDb2xvclBpY2tlckNsaWVudF9oCisKKyNpbmNsdWRlICJQ
YWdlUG9wdXBDbGllbnQuaCIKKyNpbmNsdWRlIDxCbGFja0JlcnJ5UGxhdGZvcm1JbnB1dEV2ZW50
cy5oPgorCituYW1lc3BhY2UgQmxhY2tCZXJyeSB7CituYW1lc3BhY2UgV2ViS2l0IHsKK2NsYXNz
IFdlYlBhZ2VQcml2YXRlOworY2xhc3MgV2ViU3RyaW5nOworfQorfQorCituYW1lc3BhY2UgV2Vi
Q29yZSB7CitjbGFzcyBEb2N1bWVudFdyaXRlcjsKK2NsYXNzIEhUTUxJbnB1dEVsZW1lbnQ7CisK
K2NsYXNzIENvbG9yUGlja2VyQ2xpZW50IDogcHVibGljIFBhZ2VQb3B1cENsaWVudCB7CitwdWJs
aWM6CisgICAgQ29sb3JQaWNrZXJDbGllbnQoY29uc3QgQmxhY2tCZXJyeTo6V2ViS2l0OjpXZWJT
dHJpbmcmIHZhbHVlLCBCbGFja0JlcnJ5OjpXZWJLaXQ6OldlYlBhZ2VQcml2YXRlKiwgSFRNTElu
cHV0RWxlbWVudCopOworICAgIH5Db2xvclBpY2tlckNsaWVudCgpOworCisgICAgdm9pZCBnZW5l
cmF0ZUhUTUwoY29uc3QgQmxhY2tCZXJyeTo6V2ViS2l0OjpXZWJTdHJpbmcmIHZhbHVlKTsKKwor
ICAgIHZvaWQgd3JpdGVEb2N1bWVudChEb2N1bWVudFdyaXRlciYpOworICAgIEludFNpemUgY29u
dGVudFNpemUoKTsKKyAgICBTdHJpbmcgaHRtbFNvdXJjZSgpOworICAgIHZvaWQgc2V0VmFsdWVB
bmRDbG9zZVBvcHVwKGludCwgY29uc3QgU3RyaW5nJik7CisgICAgdm9pZCBkaWRDbG9zZVBvcHVw
KCk7CisgICAgdm9pZCBjbG9zZVBvcHVwKCk7CisKK3ByaXZhdGU6CisgICAgU3RyaW5nIG1fc291
cmNlOworICAgIEJsYWNrQmVycnk6OldlYktpdDo6V2ViUGFnZVByaXZhdGUqIG1fd2ViUGFnZTsK
KyAgICBIVE1MSW5wdXRFbGVtZW50KiBtX2VsZW1lbnQ7Cit9OworfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQorI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViS2l0
U3VwcG9ydC9JbnB1dEhhbmRsZXIuY3BwIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYktp
dFN1cHBvcnQvSW5wdXRIYW5kbGVyLmNwcAppbmRleCA3YzI0MzRmLi43ZTVkNDYyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViS2l0U3VwcG9ydC9JbnB1dEhhbmRsZXIu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJLaXRTdXBwb3J0L0lucHV0SGFu
ZGxlci5jcHAKQEAgLTIzLDYgKzIzLDcgQEAKICNpbmNsdWRlICJCYWNraW5nU3RvcmVDbGllbnQu
aCIKICNpbmNsdWRlICJDU1NTdHlsZURlY2xhcmF0aW9uLmgiCiAjaW5jbHVkZSAiQ2hyb21lLmgi
CisjaW5jbHVkZSAiQ29sb3JQaWNrZXJDbGllbnQuaCIKICNpbmNsdWRlICJET01TdXBwb3J0Lmgi
CiAjaW5jbHVkZSAiRGF0ZVBpY2tlckNsaWVudC5oIgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCkBA
IC05NzcsOCArOTc4LDExIEBAIGJvb2wgSW5wdXRIYW5kbGVyOjpvcGVuQ29sb3JQb3B1cChIVE1M
SW5wdXRFbGVtZW50KiBlbGVtZW50KQogICAgIG1fY3VycmVudEZvY3VzRWxlbWVudCA9IGVsZW1l
bnQ7CiAgICAgbV9jdXJyZW50Rm9jdXNFbGVtZW50VHlwZSA9IFRleHRQb3B1cDsKIAotICAgIC8v
IEZJWE1FOiBOZWVkIHRvIGFkZCBwYWdlUG9wdXAgc3VwcG9ydCBhbmQgdGhlIGNvbG91ciBkaWFs
b2cuCi0gICAgLy8gUFIgMTgwNzc4CisgICAgLy8gQ2hlY2sgaWYgcG9wdXAgYWxyZWFkeSBleGlz
dHMsIGNsb3NlIGl0IGlmIGRvZXMuCisgICAgbV93ZWJQYWdlLT5tX3BhZ2UtPmNocm9tZSgpLT5j
bGllbnQoKS0+Y2xvc2VQYWdlUG9wdXAoMCk7CisgICAgQ29sb3JQaWNrZXJDbGllbnQqIGNsaWVu
dCA9IG5ldyBDb2xvclBpY2tlckNsaWVudChlbGVtZW50LT52YWx1ZSgpLCBtX3dlYlBhZ2UsIGVs
ZW1lbnQpOworICAgIG1fd2ViUGFnZS0+bV9wYWdlLT5jaHJvbWUoKS0+Y2xpZW50KCktPm9wZW5Q
YWdlUG9wdXAoY2xpZW50LCAgV2ViQ29yZTo6SW50UmVjdCgpKTsKKyAgICByZXR1cm4gdHJ1ZTsK
IH0KIAogdm9pZCBJbnB1dEhhbmRsZXI6OnNldElucHV0VmFsdWUoY29uc3QgV1RGOjpTdHJpbmcm
IHZhbHVlKQotLSAKMS43LjEwLjEKCg==
</data>
<flag name="review"
          id="173692"
          type_id="1"
          status="-"
          setter="rwlbuis"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>162560</attachid>
            <date>2012-09-06 12:54:13 -0700</date>
            <delta_ts>2012-09-06 13:28:33 -0700</delta_ts>
            <desc>updated patch</desc>
            <filename>0001-2012-09-06-Crystal-Zhang-haizhang-rim.com.patch</filename>
            <type>text/plain</type>
            <size>11191</size>
            <attacher name="Crystal Zhang">haizhang</attacher>
            
              <data encoding="base64">RnJvbSA0NTEzNDI3ZWM1N2U2MDE1YTdiOWVlZjhiODNlY2Q2ODBiZGJiMTcwIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBDcnlzdGFsIFpoYW5nIDxoYWl6aGFuZ0ByaW0uY29tPgpEYXRl
OiBUaHUsIDYgU2VwIDIwMTIgMTQ6MjE6MDkgLTA0MDAKU3ViamVjdDogW1BBVENIIDEvMl0gMjAx
Mi0wOS0wNiAgQ3J5c3RhbCBaaGFuZyAgPGhhaXpoYW5nQHJpbS5jb20+CgogICAgICAgIFtCbGFj
a0JlcnJ5XSAgSW1wbGVtZW50IGEgY29sb3IgcGlja2VyCiAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk2MDAxCgogICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgoKICAgICAgICBBZGQgZmlsZXMgZm9yIGNvbG9yIHBpY2tlciwgcmVwbGFjZSBv
bGQgaG9vayB0byBBSVIgY29sb3IgcGlja2VyLgoKICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0Nv
bG9yUGlja2VyQ2xpZW50LmNwcDogQWRkZWQuCiAgICAgICAgKFdlYkNvcmUpOgogICAgICAgIChX
ZWJDb3JlOjpDb2xvclBpY2tlckNsaWVudDo6Q29sb3JQaWNrZXJDbGllbnQpOgogICAgICAgIChX
ZWJDb3JlOjpDb2xvclBpY2tlckNsaWVudDo6fkNvbG9yUGlja2VyQ2xpZW50KToKICAgICAgICAo
V2ViQ29yZTo6Q29sb3JQaWNrZXJDbGllbnQ6OmdlbmVyYXRlSFRNTCk6CiAgICAgICAgKFdlYkNv
cmU6OkNvbG9yUGlja2VyQ2xpZW50OjpjbG9zZVBvcHVwKToKICAgICAgICAoV2ViQ29yZTo6Q29s
b3JQaWNrZXJDbGllbnQ6OmNvbnRlbnRTaXplKToKICAgICAgICAoV2ViQ29yZTo6Q29sb3JQaWNr
ZXJDbGllbnQ6Omh0bWxTb3VyY2UpOgogICAgICAgIChXZWJDb3JlOjpDb2xvclBpY2tlckNsaWVu
dDo6c2V0VmFsdWVBbmRDbG9zZVBvcHVwKToKICAgICAgICAoV2ViQ29yZTo6Q29sb3JQaWNrZXJD
bGllbnQ6OmRpZENsb3NlUG9wdXApOgogICAgICAgIChXZWJDb3JlOjpDb2xvclBpY2tlckNsaWVu
dDo6d3JpdGVEb2N1bWVudCk6CiAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9Db2xvclBpY2tlckNs
aWVudC5oOiBBZGRlZC4KICAgICAgICAoV2ViS2l0KToKICAgICAgICAoV2ViQ29yZSk6CiAgICAg
ICAgKENvbG9yUGlja2VyQ2xpZW50KToKICAgICAgICAqIFdlYktpdFN1cHBvcnQvSW5wdXRIYW5k
bGVyLmNwcDoKICAgICAgICAoQmxhY2tCZXJyeTo6V2ViS2l0OjpJbnB1dEhhbmRsZXI6Om9wZW5D
b2xvclBvcHVwKToKLS0tCiBTb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB8ICAgMTEgKysKIFNvdXJjZS9XZWJLaXQvUGxhdGZvcm1CbGFja0JlcnJ5LmNt
YWtlICAgICAgICAgICAgIHwgICAgMSArCiBTb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQ2hhbmdl
TG9nICAgICAgICAgICAgICAgICB8ICAgMjcgKysrKysKIC4uLi9XZWJDb3JlU3VwcG9ydC9Db2xv
clBpY2tlckNsaWVudC5jcHAgICAgICAgICAgIHwgIDEwNyArKysrKysrKysrKysrKysrKysrKwog
Li4uL2JsYWNrYmVycnkvV2ViQ29yZVN1cHBvcnQvQ29sb3JQaWNrZXJDbGllbnQuaCAgfCAgIDU1
ICsrKysrKysrKysKIC4uLi9ibGFja2JlcnJ5L1dlYktpdFN1cHBvcnQvSW5wdXRIYW5kbGVyLmNw
cCAgICAgIHwgICAgOCArLQogNiBmaWxlcyBjaGFuZ2VkLCAyMDcgaW5zZXJ0aW9ucygrKSwgMiBk
ZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBTb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkv
V2ViQ29yZVN1cHBvcnQvQ29sb3JQaWNrZXJDbGllbnQuY3BwCiBjcmVhdGUgbW9kZSAxMDA2NDQg
U291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYkNvcmVTdXBwb3J0L0NvbG9yUGlja2VyQ2xpZW50
LmgKCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQv
Q2hhbmdlTG9nCmluZGV4IGFkYjUzZWQuLjVhMzgzMTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQg
QEAKKzIwMTItMDktMDYgIENyeXN0YWwgWmhhbmcgIDxoYWl6aGFuZ0ByaW0uY29tPgorCisgICAg
ICAgIFtCbGFja0JlcnJ5XSAgSW1wbGVtZW50IGEgY29sb3IgcGlja2VyCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05NjAwMQorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBjb2xvciBwaWNrZXIgZmlsZXMg
aW50byBidWlsZGluZyBzeXN0ZW0uCisKKyAgICAgICAgKiBQbGF0Zm9ybUJsYWNrQmVycnkuY21h
a2U6CisKIDIwMTItMDktMDYgIFNpbW9uIEhhdXNtYW5uICA8c2ltb24uaGF1c21hbm5Abm9raWEu
Y29tPgogCiAgICAgICAgIFtRdF0gRml4IGJ1aWxkIHdpdGggQU5HTEUgb24gcGxhdGZvcm1zIHRo
YXQgcHJvdmlkZSBFR0wvR0xFU3YyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3Jt
QmxhY2tCZXJyeS5jbWFrZSBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm1CbGFja0JlcnJ5LmNtYWtl
CmluZGV4IDVkNWEyNTUuLjM2NWNkYmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvUGxhdGZv
cm1CbGFja0JlcnJ5LmNtYWtlCisrKyBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm1CbGFja0JlcnJ5
LmNtYWtlCkBAIC05Miw2ICs5Miw3IEBAIExJU1QoQVBQRU5EIFdlYktpdF9TT1VSQ0VTCiAgICAg
YmxhY2tiZXJyeS9XZWJDb3JlU3VwcG9ydC9QYWdlUG9wdXBCbGFja0JlcnJ5LmNwcAogICAgIGJs
YWNrYmVycnkvV2ViQ29yZVN1cHBvcnQvU2VsZWN0UG9wdXBDbGllbnQuY3BwCiAgICAgYmxhY2ti
ZXJyeS9XZWJDb3JlU3VwcG9ydC9EYXRlUGlja2VyQ2xpZW50LmNwcAorICAgIGJsYWNrYmVycnkv
V2ViQ29yZVN1cHBvcnQvQ29sb3JQaWNrZXJDbGllbnQuY3BwCiAgICAgYmxhY2tiZXJyeS9XZWJL
aXRTdXBwb3J0L0Fib3V0RGF0YS5jcHAKICAgICBibGFja2JlcnJ5L1dlYktpdFN1cHBvcnQvQmFj
a2luZ1N0b3JlQ29tcG9zaXRpbmdTdXJmYWNlLmNwcAogICAgIGJsYWNrYmVycnkvV2ViS2l0U3Vw
cG9ydC9CYWNraW5nU3RvcmVUaWxlLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ibGFj
a2JlcnJ5L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9DaGFuZ2VMb2cKaW5k
ZXggNTVkZmNiNy4uNTc1MjQ5ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5
L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMzAgQEAKKzIwMTItMDktMDYgIENyeXN0YWwgWmhhbmcgIDxoYWl6aGFuZ0ByaW0uY29t
PgorCisgICAgICAgIFtCbGFja0JlcnJ5XSAgSW1wbGVtZW50IGEgY29sb3IgcGlja2VyCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05NjAwMQorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBmaWxlcyBmb3Ig
Y29sb3IgcGlja2VyLCByZXBsYWNlIG9sZCBob29rIHRvIEFJUiBjb2xvciBwaWNrZXIuCisKKyAg
ICAgICAgKiBXZWJDb3JlU3VwcG9ydC9Db2xvclBpY2tlckNsaWVudC5jcHA6IEFkZGVkLgorICAg
ICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpDb2xvclBpY2tlckNsaWVudDo6Q29s
b3JQaWNrZXJDbGllbnQpOgorICAgICAgICAoV2ViQ29yZTo6Q29sb3JQaWNrZXJDbGllbnQ6On5D
b2xvclBpY2tlckNsaWVudCk6CisgICAgICAgIChXZWJDb3JlOjpDb2xvclBpY2tlckNsaWVudDo6
Z2VuZXJhdGVIVE1MKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbG9yUGlja2VyQ2xpZW50OjpjbG9z
ZVBvcHVwKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbG9yUGlja2VyQ2xpZW50Ojpjb250ZW50U2l6
ZSk6CisgICAgICAgIChXZWJDb3JlOjpDb2xvclBpY2tlckNsaWVudDo6aHRtbFNvdXJjZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpDb2xvclBpY2tlckNsaWVudDo6c2V0VmFsdWVBbmRDbG9zZVBvcHVw
KToKKyAgICAgICAgKFdlYkNvcmU6OkNvbG9yUGlja2VyQ2xpZW50OjpkaWRDbG9zZVBvcHVwKToK
KyAgICAgICAgKFdlYkNvcmU6OkNvbG9yUGlja2VyQ2xpZW50Ojp3cml0ZURvY3VtZW50KToKKyAg
ICAgICAgKiBXZWJDb3JlU3VwcG9ydC9Db2xvclBpY2tlckNsaWVudC5oOiBBZGRlZC4KKyAgICAg
ICAgKFdlYktpdCk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKENvbG9yUGlja2VyQ2xp
ZW50KToKKyAgICAgICAgKiBXZWJLaXRTdXBwb3J0L0lucHV0SGFuZGxlci5jcHA6CisgICAgICAg
IChCbGFja0JlcnJ5OjpXZWJLaXQ6OklucHV0SGFuZGxlcjo6b3BlbkNvbG9yUG9wdXApOgorCiAy
MDEyLTA5LTA1ICBTYW0gV2VpbmlnICA8c2FtQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUGFydCAy
IG9mIHJlbW92aW5nIFBsYXRmb3JtU3RyaW5nLmgsIHJlbW92ZSBQbGF0Zm9ybVN0cmluZy5oCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViQ29yZVN1cHBvcnQvQ29sb3JQ
aWNrZXJDbGllbnQuY3BwIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYkNvcmVTdXBwb3J0
L0NvbG9yUGlja2VyQ2xpZW50LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
Li5jM2MyYjk5Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dl
YkNvcmVTdXBwb3J0L0NvbG9yUGlja2VyQ2xpZW50LmNwcApAQCAtMCwwICsxLDEwNyBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAxMiBSZXNlYXJjaCBJbiBNb3Rpb24gTGltaXRlZC4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91
IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1z
IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hl
ZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBv
ZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAq
CisgKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxs
IGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRo
ZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogTGVzc2VyIEdlbmVyYWwgUHVi
bGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVj
ZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNl
IGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3
YXJlCisgKiBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29y
LCBCb3N0b24sIE1BICAwMjExMC0xMzAxICBVU0EKKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgi
CisjaW5jbHVkZSAiQ29sb3JQaWNrZXJDbGllbnQuaCIKKworI2luY2x1ZGUgIkNocm9tZS5oIgor
I2luY2x1ZGUgIkNocm9tZUNsaWVudC5oIgorI2luY2x1ZGUgIkRvY3VtZW50LmgiCisjaW5jbHVk
ZSAiRG9jdW1lbnRXcml0ZXIuaCIKKyNpbmNsdWRlICJIVE1MSW5wdXRFbGVtZW50LmgiCisjaW5j
bHVkZSAiUGFnZS5oIgorI2luY2x1ZGUgIlBhZ2VQb3B1cC5oIgorI2luY2x1ZGUgIlBvcHVwUGlj
a2VyLmgiCisjaW5jbHVkZSAiUmVuZGVyT2JqZWN0LmgiCisjaW5jbHVkZSAiV2ViUGFnZV9wLmgi
CisjaW5jbHVkZSAiV2ViU3RyaW5nLmgiCisKKyNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdCdWls
ZGVyLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworQ29sb3JQaWNrZXJDbGllbnQ6OkNvbG9y
UGlja2VyQ2xpZW50KGNvbnN0IEJsYWNrQmVycnk6OldlYktpdDo6V2ViU3RyaW5nJiB2YWx1ZSwg
QmxhY2tCZXJyeTo6V2ViS2l0OjpXZWJQYWdlUHJpdmF0ZSogd2ViUGFnZSwgSFRNTElucHV0RWxl
bWVudCogZWxlbWVudCkKKyAgICA6IG1fd2ViUGFnZSh3ZWJQYWdlKQorICAgICwgbV9lbGVtZW50
KGVsZW1lbnQpCit7CisgICAgZ2VuZXJhdGVIVE1MKHZhbHVlKTsKK30KKwordm9pZCBDb2xvclBp
Y2tlckNsaWVudDo6Z2VuZXJhdGVIVE1MKGNvbnN0IEJsYWNrQmVycnk6OldlYktpdDo6V2ViU3Ry
aW5nJiB2YWx1ZSkKK3sKKyAgICBTdHJpbmdCdWlsZGVyIHNvdXJjZTsKKyAgICBzb3VyY2UuYXBw
ZW5kKCI8c3R5bGU+XG4iKTsKKyAgICAvLyBJbmNsdWRlIENTUyBmaWxlLgorICAgIHNvdXJjZS5h
cHBlbmQocG9wdXBDb250cm9sQmxhY2tCZXJyeUNzcywKKyAgICAgICAgICAgIHNpemVvZihwb3B1
cENvbnRyb2xCbGFja0JlcnJ5Q3NzKSk7CisgICAgc291cmNlLmFwcGVuZCgiPC9zdHlsZT5cbjxz
dHlsZT4iKTsKKyAgICBzb3VyY2UuYXBwZW5kKGNvbG9yQ29udHJvbEJsYWNrQmVycnlDc3MsCisg
ICAgICAgICAgICBzaXplb2YoY29sb3JDb250cm9sQmxhY2tCZXJyeUNzcykpOworICAgIHNvdXJj
ZS5hcHBlbmQoIjwvc3R5bGU+PC9oZWFkPjxib2R5PlxuIik7CisgICAgc291cmNlLmFwcGVuZCgi
PHNjcmlwdD5cbiIpOworICAgIHNvdXJjZS5hcHBlbmQoIndpbmRvdy5hZGRFdmVudExpc3RlbmVy
KCdsb2FkJywgZnVuY3Rpb24gKCkgeyIpOworICAgIHNvdXJjZS5hcHBlbmQoIndpbmRvdy5wb3B1
cGNvbnRyb2wuc2hvdygiKTsKKyAgICBpZiAoIXZhbHVlLmlzRW1wdHkoKSkKKyAgICAgICAgc291
cmNlLmFwcGVuZCgiXCIiICsgU3RyaW5nKHZhbHVlLmltcGwoKSkgKyAiXCIpOyBcbiB9KTsgXG4i
KTsKKyAgICBlbHNlCisgICAgICAgIHNvdXJjZS5hcHBlbmQoIik7IFxuIH0pOyBcbiIpOworICAg
IHNvdXJjZS5hcHBlbmQoY29sb3JDb250cm9sQmxhY2tCZXJyeUpzLCBzaXplb2YoY29sb3JDb250
cm9sQmxhY2tCZXJyeUpzKSk7CisgICAgc291cmNlLmFwcGVuZCgiPC9zY3JpcHQ+XG4iKTsKKyAg
ICBzb3VyY2UuYXBwZW5kKCI8L2JvZHk+IDwvaHRtbD5cbiIpOworICAgIG1fc291cmNlID0gc291
cmNlLnRvU3RyaW5nKCk7Cit9CisKK3ZvaWQgQ29sb3JQaWNrZXJDbGllbnQ6OmNsb3NlUG9wdXAo
KQoreworICAgIEFTU0VSVChtX3dlYlBhZ2UpOworICAgIG1fd2ViUGFnZS0+bV9wYWdlLT5jaHJv
bWUoKS0+Y2xpZW50KCktPmNsb3NlUGFnZVBvcHVwKDApOworfQorCitJbnRTaXplIENvbG9yUGlj
a2VyQ2xpZW50Ojpjb250ZW50U2l6ZSgpCit7CisgICAgLy8gRklYTUU6IHdpbGwgZ2VuZXJhdGUg
Y29udGVudCBzaXplIGR5bmFtaWNhbGx5CisgICAgcmV0dXJuIEludFNpemUoMzIwLCAyNTYpOwor
fQorCitTdHJpbmcgQ29sb3JQaWNrZXJDbGllbnQ6Omh0bWxTb3VyY2UoKSBjb25zdAoreworICAg
IHJldHVybiBtX3NvdXJjZTsKK30KKwordm9pZCBDb2xvclBpY2tlckNsaWVudDo6c2V0VmFsdWVB
bmRDbG9zZVBvcHVwKGludCwgY29uc3QgU3RyaW5nJiB2YWx1ZSkKK3sKKyAgICAvLyBSZXR1cm4g
LTEgaWYgdXNlciBjYW5jZWwgdGhlIHNlbGVjdGlvbi4KKyAgICBBU1NFUlQobV9lbGVtZW50KTsK
KworICAgIHN0YXRpYyBjb25zdCBjaGFyKiBjYW5jZWxWYWx1ZSA9ICItMSI7CisgICAgaWYgKHZh
bHVlICE9IGNhbmNlbFZhbHVlKQorICAgICAgICBtX2VsZW1lbnQtPnNldFZhbHVlKHZhbHVlKTsK
KyAgICBjbG9zZVBvcHVwKCk7Cit9CisKK3ZvaWQgQ29sb3JQaWNrZXJDbGllbnQ6OmRpZENsb3Nl
UG9wdXAoKQoreworICAgIG1fd2ViUGFnZSA9IDA7CisgICAgbV9lbGVtZW50ID0gMDsKK30KKwor
dm9pZCBDb2xvclBpY2tlckNsaWVudDo6d3JpdGVEb2N1bWVudChEb2N1bWVudFdyaXRlciYgd3Jp
dGVyKQoreworICAgIHdyaXRlci5hZGREYXRhKG1fc291cmNlLnV0ZjgoKS5kYXRhKCksIG1fc291
cmNlLnV0ZjgoKS5sZW5ndGgoKSk7Cit9Cit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Js
YWNrYmVycnkvV2ViQ29yZVN1cHBvcnQvQ29sb3JQaWNrZXJDbGllbnQuaCBiL1NvdXJjZS9XZWJL
aXQvYmxhY2tiZXJyeS9XZWJDb3JlU3VwcG9ydC9Db2xvclBpY2tlckNsaWVudC5oCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjhhNzVlYTQKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViQ29yZVN1cHBvcnQvQ29sb3JQaWNrZXJDbGllbnQu
aApAQCAtMCwwICsxLDU1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIFJlc2VhcmNoIElu
IE1vdGlvbiBMaW1pdGVkLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFRoaXMgbGlicmFy
eSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1v
ZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMK
KyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247
IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24p
IGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBp
biB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdB
UlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5U
QUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05V
CisgKiBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoK
KyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2Vu
ZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IGlmIG5vdCwg
d3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKKyAqIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5r
bGluIFN0cmVldCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgIDAyMTEwLTEzMDEgIFVTQQorICov
CisKKyNpZm5kZWYgQ29sb3JQaWNrZXJDbGllbnRfaAorI2RlZmluZSBDb2xvclBpY2tlckNsaWVu
dF9oCisKKyNpbmNsdWRlICJQYWdlUG9wdXBDbGllbnQuaCIKKyNpbmNsdWRlIDxCbGFja0JlcnJ5
UGxhdGZvcm1JbnB1dEV2ZW50cy5oPgorCituYW1lc3BhY2UgQmxhY2tCZXJyeSB7CituYW1lc3Bh
Y2UgV2ViS2l0IHsKK2NsYXNzIFdlYlBhZ2VQcml2YXRlOworY2xhc3MgV2ViU3RyaW5nOworfQor
fQorCituYW1lc3BhY2UgV2ViQ29yZSB7CitjbGFzcyBEb2N1bWVudFdyaXRlcjsKK2NsYXNzIEhU
TUxJbnB1dEVsZW1lbnQ7CisKK2NsYXNzIENvbG9yUGlja2VyQ2xpZW50IDogcHVibGljIFBhZ2VQ
b3B1cENsaWVudCB7CitwdWJsaWM6CisgICAgQ29sb3JQaWNrZXJDbGllbnQoY29uc3QgQmxhY2tC
ZXJyeTo6V2ViS2l0OjpXZWJTdHJpbmcmIHZhbHVlLCBCbGFja0JlcnJ5OjpXZWJLaXQ6OldlYlBh
Z2VQcml2YXRlKiwgSFRNTElucHV0RWxlbWVudCopOworCisgICAgdm9pZCBnZW5lcmF0ZUhUTUwo
Y29uc3QgQmxhY2tCZXJyeTo6V2ViS2l0OjpXZWJTdHJpbmcmIHZhbHVlKTsKKyAgICB2b2lkIHdy
aXRlRG9jdW1lbnQoRG9jdW1lbnRXcml0ZXImKTsKKyAgICBJbnRTaXplIGNvbnRlbnRTaXplKCk7
CisgICAgU3RyaW5nIGh0bWxTb3VyY2UoKSBjb25zdDsKKyAgICB2b2lkIHNldFZhbHVlQW5kQ2xv
c2VQb3B1cChpbnQsIGNvbnN0IFN0cmluZyYpOworICAgIHZvaWQgZGlkQ2xvc2VQb3B1cCgpOwor
Citwcml2YXRlOgorICAgIHZvaWQgY2xvc2VQb3B1cCgpOworCisgICAgU3RyaW5nIG1fc291cmNl
OworICAgIEJsYWNrQmVycnk6OldlYktpdDo6V2ViUGFnZVByaXZhdGUqIG1fd2ViUGFnZTsKKyAg
ICBIVE1MSW5wdXRFbGVtZW50KiBtX2VsZW1lbnQ7Cit9OworfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQorI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViS2l0U3Vw
cG9ydC9JbnB1dEhhbmRsZXIuY3BwIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYktpdFN1
cHBvcnQvSW5wdXRIYW5kbGVyLmNwcAppbmRleCA3YzI0MzRmLi43ZTVkNDYyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViS2l0U3VwcG9ydC9JbnB1dEhhbmRsZXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJLaXRTdXBwb3J0L0lucHV0SGFuZGxl
ci5jcHAKQEAgLTIzLDYgKzIzLDcgQEAKICNpbmNsdWRlICJCYWNraW5nU3RvcmVDbGllbnQuaCIK
ICNpbmNsdWRlICJDU1NTdHlsZURlY2xhcmF0aW9uLmgiCiAjaW5jbHVkZSAiQ2hyb21lLmgiCisj
aW5jbHVkZSAiQ29sb3JQaWNrZXJDbGllbnQuaCIKICNpbmNsdWRlICJET01TdXBwb3J0LmgiCiAj
aW5jbHVkZSAiRGF0ZVBpY2tlckNsaWVudC5oIgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCkBAIC05
NzcsOCArOTc4LDExIEBAIGJvb2wgSW5wdXRIYW5kbGVyOjpvcGVuQ29sb3JQb3B1cChIVE1MSW5w
dXRFbGVtZW50KiBlbGVtZW50KQogICAgIG1fY3VycmVudEZvY3VzRWxlbWVudCA9IGVsZW1lbnQ7
CiAgICAgbV9jdXJyZW50Rm9jdXNFbGVtZW50VHlwZSA9IFRleHRQb3B1cDsKIAotICAgIC8vIEZJ
WE1FOiBOZWVkIHRvIGFkZCBwYWdlUG9wdXAgc3VwcG9ydCBhbmQgdGhlIGNvbG91ciBkaWFsb2cu
Ci0gICAgLy8gUFIgMTgwNzc4CisgICAgLy8gQ2hlY2sgaWYgcG9wdXAgYWxyZWFkeSBleGlzdHMs
IGNsb3NlIGl0IGlmIGRvZXMuCisgICAgbV93ZWJQYWdlLT5tX3BhZ2UtPmNocm9tZSgpLT5jbGll
bnQoKS0+Y2xvc2VQYWdlUG9wdXAoMCk7CisgICAgQ29sb3JQaWNrZXJDbGllbnQqIGNsaWVudCA9
IG5ldyBDb2xvclBpY2tlckNsaWVudChlbGVtZW50LT52YWx1ZSgpLCBtX3dlYlBhZ2UsIGVsZW1l
bnQpOworICAgIG1fd2ViUGFnZS0+bV9wYWdlLT5jaHJvbWUoKS0+Y2xpZW50KCktPm9wZW5QYWdl
UG9wdXAoY2xpZW50LCAgV2ViQ29yZTo6SW50UmVjdCgpKTsKKyAgICByZXR1cm4gdHJ1ZTsKIH0K
IAogdm9pZCBJbnB1dEhhbmRsZXI6OnNldElucHV0VmFsdWUoY29uc3QgV1RGOjpTdHJpbmcmIHZh
bHVlKQotLSAKMS43LjEwLjEKCg==
</data>
<flag name="review"
          id="173717"
          type_id="1"
          status="-"
          setter="rwlbuis"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>162567</attachid>
            <date>2012-09-06 13:28:33 -0700</date>
            <delta_ts>2012-09-06 21:18:30 -0700</delta_ts>
            <desc>updated patch</desc>
            <filename>0001-2012-09-06-Crystal-Zhang-haizhang-rim.com.patch</filename>
            <type>text/plain</type>
            <size>11182</size>
            <attacher name="Crystal Zhang">haizhang</attacher>
            
              <data encoding="base64">RnJvbSBjYzRhMTU4MjcwNGMzOTJjZTE1MzNjNjVhZTg1MTEzODMxMWVjNjA1IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBDcnlzdGFsIFpoYW5nIDxoYWl6aGFuZ0ByaW0uY29tPgpEYXRl
OiBUaHUsIDYgU2VwIDIwMTIgMTQ6MjE6MDkgLTA0MDAKU3ViamVjdDogW1BBVENIIDEvMl0gMjAx
Mi0wOS0wNiAgQ3J5c3RhbCBaaGFuZyAgPGhhaXpoYW5nQHJpbS5jb20+CgogICAgICAgIFtCbGFj
a0JlcnJ5XSAgSW1wbGVtZW50IGEgY29sb3IgcGlja2VyCiAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk2MDAxCgogICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgoKICAgICAgICBBZGQgZmlsZXMgZm9yIGNvbG9yIHBpY2tlciwgcmVwbGFjZSBv
bGQgaG9vayB0byBBSVIgY29sb3IgcGlja2VyLgoKICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0Nv
bG9yUGlja2VyQ2xpZW50LmNwcDogQWRkZWQuCiAgICAgICAgKFdlYkNvcmUpOgogICAgICAgIChX
ZWJDb3JlOjpDb2xvclBpY2tlckNsaWVudDo6Q29sb3JQaWNrZXJDbGllbnQpOgogICAgICAgIChX
ZWJDb3JlOjpDb2xvclBpY2tlckNsaWVudDo6fkNvbG9yUGlja2VyQ2xpZW50KToKICAgICAgICAo
V2ViQ29yZTo6Q29sb3JQaWNrZXJDbGllbnQ6OmdlbmVyYXRlSFRNTCk6CiAgICAgICAgKFdlYkNv
cmU6OkNvbG9yUGlja2VyQ2xpZW50OjpjbG9zZVBvcHVwKToKICAgICAgICAoV2ViQ29yZTo6Q29s
b3JQaWNrZXJDbGllbnQ6OmNvbnRlbnRTaXplKToKICAgICAgICAoV2ViQ29yZTo6Q29sb3JQaWNr
ZXJDbGllbnQ6Omh0bWxTb3VyY2UpOgogICAgICAgIChXZWJDb3JlOjpDb2xvclBpY2tlckNsaWVu
dDo6c2V0VmFsdWVBbmRDbG9zZVBvcHVwKToKICAgICAgICAoV2ViQ29yZTo6Q29sb3JQaWNrZXJD
bGllbnQ6OmRpZENsb3NlUG9wdXApOgogICAgICAgIChXZWJDb3JlOjpDb2xvclBpY2tlckNsaWVu
dDo6d3JpdGVEb2N1bWVudCk6CiAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9Db2xvclBpY2tlckNs
aWVudC5oOiBBZGRlZC4KICAgICAgICAoV2ViS2l0KToKICAgICAgICAoV2ViQ29yZSk6CiAgICAg
ICAgKENvbG9yUGlja2VyQ2xpZW50KToKICAgICAgICAqIFdlYktpdFN1cHBvcnQvSW5wdXRIYW5k
bGVyLmNwcDoKICAgICAgICAoQmxhY2tCZXJyeTo6V2ViS2l0OjpJbnB1dEhhbmRsZXI6Om9wZW5D
b2xvclBvcHVwKToKLS0tCiBTb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB8ICAgMTEgKysKIFNvdXJjZS9XZWJLaXQvUGxhdGZvcm1CbGFja0JlcnJ5LmNt
YWtlICAgICAgICAgICAgIHwgICAgMSArCiBTb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQ2hhbmdl
TG9nICAgICAgICAgICAgICAgICB8ICAgMjcgKysrKysKIC4uLi9XZWJDb3JlU3VwcG9ydC9Db2xv
clBpY2tlckNsaWVudC5jcHAgICAgICAgICAgIHwgIDEwNyArKysrKysrKysrKysrKysrKysrKwog
Li4uL2JsYWNrYmVycnkvV2ViQ29yZVN1cHBvcnQvQ29sb3JQaWNrZXJDbGllbnQuaCAgfCAgIDU1
ICsrKysrKysrKysKIC4uLi9ibGFja2JlcnJ5L1dlYktpdFN1cHBvcnQvSW5wdXRIYW5kbGVyLmNw
cCAgICAgIHwgICAgOCArLQogNiBmaWxlcyBjaGFuZ2VkLCAyMDcgaW5zZXJ0aW9ucygrKSwgMiBk
ZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBTb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkv
V2ViQ29yZVN1cHBvcnQvQ29sb3JQaWNrZXJDbGllbnQuY3BwCiBjcmVhdGUgbW9kZSAxMDA2NDQg
U291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYkNvcmVTdXBwb3J0L0NvbG9yUGlja2VyQ2xpZW50
LmgKCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQv
Q2hhbmdlTG9nCmluZGV4IGFkYjUzZWQuLjVhMzgzMTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQg
QEAKKzIwMTItMDktMDYgIENyeXN0YWwgWmhhbmcgIDxoYWl6aGFuZ0ByaW0uY29tPgorCisgICAg
ICAgIFtCbGFja0JlcnJ5XSAgSW1wbGVtZW50IGEgY29sb3IgcGlja2VyCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05NjAwMQorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBjb2xvciBwaWNrZXIgZmlsZXMg
aW50byBidWlsZGluZyBzeXN0ZW0uCisKKyAgICAgICAgKiBQbGF0Zm9ybUJsYWNrQmVycnkuY21h
a2U6CisKIDIwMTItMDktMDYgIFNpbW9uIEhhdXNtYW5uICA8c2ltb24uaGF1c21hbm5Abm9raWEu
Y29tPgogCiAgICAgICAgIFtRdF0gRml4IGJ1aWxkIHdpdGggQU5HTEUgb24gcGxhdGZvcm1zIHRo
YXQgcHJvdmlkZSBFR0wvR0xFU3YyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3Jt
QmxhY2tCZXJyeS5jbWFrZSBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm1CbGFja0JlcnJ5LmNtYWtl
CmluZGV4IDVkNWEyNTUuLjM2NWNkYmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvUGxhdGZv
cm1CbGFja0JlcnJ5LmNtYWtlCisrKyBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm1CbGFja0JlcnJ5
LmNtYWtlCkBAIC05Miw2ICs5Miw3IEBAIExJU1QoQVBQRU5EIFdlYktpdF9TT1VSQ0VTCiAgICAg
YmxhY2tiZXJyeS9XZWJDb3JlU3VwcG9ydC9QYWdlUG9wdXBCbGFja0JlcnJ5LmNwcAogICAgIGJs
YWNrYmVycnkvV2ViQ29yZVN1cHBvcnQvU2VsZWN0UG9wdXBDbGllbnQuY3BwCiAgICAgYmxhY2ti
ZXJyeS9XZWJDb3JlU3VwcG9ydC9EYXRlUGlja2VyQ2xpZW50LmNwcAorICAgIGJsYWNrYmVycnkv
V2ViQ29yZVN1cHBvcnQvQ29sb3JQaWNrZXJDbGllbnQuY3BwCiAgICAgYmxhY2tiZXJyeS9XZWJL
aXRTdXBwb3J0L0Fib3V0RGF0YS5jcHAKICAgICBibGFja2JlcnJ5L1dlYktpdFN1cHBvcnQvQmFj
a2luZ1N0b3JlQ29tcG9zaXRpbmdTdXJmYWNlLmNwcAogICAgIGJsYWNrYmVycnkvV2ViS2l0U3Vw
cG9ydC9CYWNraW5nU3RvcmVUaWxlLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ibGFj
a2JlcnJ5L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9DaGFuZ2VMb2cKaW5k
ZXggNTVkZmNiNy4uNTc1MjQ5ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5
L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMzAgQEAKKzIwMTItMDktMDYgIENyeXN0YWwgWmhhbmcgIDxoYWl6aGFuZ0ByaW0uY29t
PgorCisgICAgICAgIFtCbGFja0JlcnJ5XSAgSW1wbGVtZW50IGEgY29sb3IgcGlja2VyCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05NjAwMQorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBmaWxlcyBmb3Ig
Y29sb3IgcGlja2VyLCByZXBsYWNlIG9sZCBob29rIHRvIEFJUiBjb2xvciBwaWNrZXIuCisKKyAg
ICAgICAgKiBXZWJDb3JlU3VwcG9ydC9Db2xvclBpY2tlckNsaWVudC5jcHA6IEFkZGVkLgorICAg
ICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpDb2xvclBpY2tlckNsaWVudDo6Q29s
b3JQaWNrZXJDbGllbnQpOgorICAgICAgICAoV2ViQ29yZTo6Q29sb3JQaWNrZXJDbGllbnQ6On5D
b2xvclBpY2tlckNsaWVudCk6CisgICAgICAgIChXZWJDb3JlOjpDb2xvclBpY2tlckNsaWVudDo6
Z2VuZXJhdGVIVE1MKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbG9yUGlja2VyQ2xpZW50OjpjbG9z
ZVBvcHVwKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbG9yUGlja2VyQ2xpZW50Ojpjb250ZW50U2l6
ZSk6CisgICAgICAgIChXZWJDb3JlOjpDb2xvclBpY2tlckNsaWVudDo6aHRtbFNvdXJjZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpDb2xvclBpY2tlckNsaWVudDo6c2V0VmFsdWVBbmRDbG9zZVBvcHVw
KToKKyAgICAgICAgKFdlYkNvcmU6OkNvbG9yUGlja2VyQ2xpZW50OjpkaWRDbG9zZVBvcHVwKToK
KyAgICAgICAgKFdlYkNvcmU6OkNvbG9yUGlja2VyQ2xpZW50Ojp3cml0ZURvY3VtZW50KToKKyAg
ICAgICAgKiBXZWJDb3JlU3VwcG9ydC9Db2xvclBpY2tlckNsaWVudC5oOiBBZGRlZC4KKyAgICAg
ICAgKFdlYktpdCk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKENvbG9yUGlja2VyQ2xp
ZW50KToKKyAgICAgICAgKiBXZWJLaXRTdXBwb3J0L0lucHV0SGFuZGxlci5jcHA6CisgICAgICAg
IChCbGFja0JlcnJ5OjpXZWJLaXQ6OklucHV0SGFuZGxlcjo6b3BlbkNvbG9yUG9wdXApOgorCiAy
MDEyLTA5LTA1ICBTYW0gV2VpbmlnICA8c2FtQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUGFydCAy
IG9mIHJlbW92aW5nIFBsYXRmb3JtU3RyaW5nLmgsIHJlbW92ZSBQbGF0Zm9ybVN0cmluZy5oCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViQ29yZVN1cHBvcnQvQ29sb3JQ
aWNrZXJDbGllbnQuY3BwIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYkNvcmVTdXBwb3J0
L0NvbG9yUGlja2VyQ2xpZW50LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
Li43ZmZjOGZlCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dl
YkNvcmVTdXBwb3J0L0NvbG9yUGlja2VyQ2xpZW50LmNwcApAQCAtMCwwICsxLDEwNyBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAxMiBSZXNlYXJjaCBJbiBNb3Rpb24gTGltaXRlZC4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91
IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1z
IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hl
ZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBv
ZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAq
CisgKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxs
IGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRo
ZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogTGVzc2VyIEdlbmVyYWwgUHVi
bGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVj
ZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNl
IGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3
YXJlCisgKiBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29y
LCBCb3N0b24sIE1BICAwMjExMC0xMzAxICBVU0EKKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgi
CisjaW5jbHVkZSAiQ29sb3JQaWNrZXJDbGllbnQuaCIKKworI2luY2x1ZGUgIkNocm9tZS5oIgor
I2luY2x1ZGUgIkNocm9tZUNsaWVudC5oIgorI2luY2x1ZGUgIkRvY3VtZW50LmgiCisjaW5jbHVk
ZSAiRG9jdW1lbnRXcml0ZXIuaCIKKyNpbmNsdWRlICJIVE1MSW5wdXRFbGVtZW50LmgiCisjaW5j
bHVkZSAiUGFnZS5oIgorI2luY2x1ZGUgIlBhZ2VQb3B1cC5oIgorI2luY2x1ZGUgIlBvcHVwUGlj
a2VyLmgiCisjaW5jbHVkZSAiUmVuZGVyT2JqZWN0LmgiCisjaW5jbHVkZSAiV2ViUGFnZV9wLmgi
CisjaW5jbHVkZSAiV2ViU3RyaW5nLmgiCisKKyNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdCdWls
ZGVyLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworQ29sb3JQaWNrZXJDbGllbnQ6OkNvbG9y
UGlja2VyQ2xpZW50KGNvbnN0IEJsYWNrQmVycnk6OldlYktpdDo6V2ViU3RyaW5nJiB2YWx1ZSwg
QmxhY2tCZXJyeTo6V2ViS2l0OjpXZWJQYWdlUHJpdmF0ZSogd2ViUGFnZSwgSFRNTElucHV0RWxl
bWVudCogZWxlbWVudCkKKyAgICA6IG1fd2ViUGFnZSh3ZWJQYWdlKQorICAgICwgbV9lbGVtZW50
KGVsZW1lbnQpCit7CisgICAgZ2VuZXJhdGVIVE1MKHZhbHVlKTsKK30KKwordm9pZCBDb2xvclBp
Y2tlckNsaWVudDo6Z2VuZXJhdGVIVE1MKGNvbnN0IEJsYWNrQmVycnk6OldlYktpdDo6V2ViU3Ry
aW5nJiB2YWx1ZSkKK3sKKyAgICBTdHJpbmdCdWlsZGVyIHNvdXJjZTsKKyAgICBzb3VyY2UuYXBw
ZW5kKCI8c3R5bGU+XG4iKTsKKyAgICAvLyBJbmNsdWRlIENTUyBmaWxlLgorICAgIHNvdXJjZS5h
cHBlbmQocG9wdXBDb250cm9sQmxhY2tCZXJyeUNzcywKKyAgICAgICAgICAgIHNpemVvZihwb3B1
cENvbnRyb2xCbGFja0JlcnJ5Q3NzKSk7CisgICAgc291cmNlLmFwcGVuZCgiPC9zdHlsZT5cbjxz
dHlsZT4iKTsKKyAgICBzb3VyY2UuYXBwZW5kKGNvbG9yQ29udHJvbEJsYWNrQmVycnlDc3MsCisg
ICAgICAgICAgICBzaXplb2YoY29sb3JDb250cm9sQmxhY2tCZXJyeUNzcykpOworICAgIHNvdXJj
ZS5hcHBlbmQoIjwvc3R5bGU+PC9oZWFkPjxib2R5PlxuIik7CisgICAgc291cmNlLmFwcGVuZCgi
PHNjcmlwdD5cbiIpOworICAgIHNvdXJjZS5hcHBlbmQoIndpbmRvdy5hZGRFdmVudExpc3RlbmVy
KCdsb2FkJywgZnVuY3Rpb24gKCkgeyIpOworICAgIHNvdXJjZS5hcHBlbmQoIndpbmRvdy5wb3B1
cGNvbnRyb2wuc2hvdygiKTsKKyAgICBpZiAoIXZhbHVlLmlzRW1wdHkoKSkKKyAgICAgICAgc291
cmNlLmFwcGVuZCgiXCIiICsgU3RyaW5nKHZhbHVlLmltcGwoKSkgKyAiXCIpOyBcbiB9KTsgXG4i
KTsKKyAgICBlbHNlCisgICAgICAgIHNvdXJjZS5hcHBlbmQoIik7IFxuIH0pOyBcbiIpOworICAg
IHNvdXJjZS5hcHBlbmQoY29sb3JDb250cm9sQmxhY2tCZXJyeUpzLCBzaXplb2YoY29sb3JDb250
cm9sQmxhY2tCZXJyeUpzKSk7CisgICAgc291cmNlLmFwcGVuZCgiPC9zY3JpcHQ+XG4iKTsKKyAg
ICBzb3VyY2UuYXBwZW5kKCI8L2JvZHk+IDwvaHRtbD5cbiIpOworICAgIG1fc291cmNlID0gc291
cmNlLnRvU3RyaW5nKCk7Cit9CisKK3ZvaWQgQ29sb3JQaWNrZXJDbGllbnQ6OmNsb3NlUG9wdXAo
KQoreworICAgIEFTU0VSVChtX3dlYlBhZ2UpOworICAgIG1fd2ViUGFnZS0+bV9wYWdlLT5jaHJv
bWUoKS0+Y2xpZW50KCktPmNsb3NlUGFnZVBvcHVwKDApOworfQorCitJbnRTaXplIENvbG9yUGlj
a2VyQ2xpZW50Ojpjb250ZW50U2l6ZSgpCit7CisgICAgLy8gRklYTUU6IHdpbGwgZ2VuZXJhdGUg
Y29udGVudCBzaXplIGR5bmFtaWNhbGx5CisgICAgcmV0dXJuIEludFNpemUoMzIwLCAyNTYpOwor
fQorCitTdHJpbmcgQ29sb3JQaWNrZXJDbGllbnQ6Omh0bWxTb3VyY2UoKSBjb25zdAoreworICAg
IHJldHVybiBtX3NvdXJjZTsKK30KKwordm9pZCBDb2xvclBpY2tlckNsaWVudDo6c2V0VmFsdWVB
bmRDbG9zZVBvcHVwKGludCwgY29uc3QgU3RyaW5nJiB2YWx1ZSkKK3sKKyAgICBBU1NFUlQobV9l
bGVtZW50KTsKKworICAgIHN0YXRpYyBjb25zdCBjaGFyKiBjYW5jZWxWYWx1ZSA9ICItMSI7Cisg
ICAgaWYgKHZhbHVlICE9IGNhbmNlbFZhbHVlKQorICAgICAgICBtX2VsZW1lbnQtPnNldFZhbHVl
KHZhbHVlKTsKKyAgICBjbG9zZVBvcHVwKCk7Cit9CisKK3ZvaWQgQ29sb3JQaWNrZXJDbGllbnQ6
OmRpZENsb3NlUG9wdXAoKQoreworICAgIG1fd2ViUGFnZSA9IDA7CisgICAgbV9lbGVtZW50ID0g
MDsKK30KKwordm9pZCBDb2xvclBpY2tlckNsaWVudDo6d3JpdGVEb2N1bWVudChEb2N1bWVudFdy
aXRlciYgd3JpdGVyKQoreworICAgIENTdHJpbmcgc291cmNlU3RyaW5nID0gbV9zb3VyY2UudXRm
OCgpOworICAgIHdyaXRlci5hZGREYXRhKHNvdXJjZVN0cmluZy5kYXRhKCksIHNvdXJjZVN0cmlu
Zy5sZW5ndGgoKSk7Cit9Cit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkv
V2ViQ29yZVN1cHBvcnQvQ29sb3JQaWNrZXJDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQvYmxhY2ti
ZXJyeS9XZWJDb3JlU3VwcG9ydC9Db2xvclBpY2tlckNsaWVudC5oCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAuLjhhNzVlYTQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
S2l0L2JsYWNrYmVycnkvV2ViQ29yZVN1cHBvcnQvQ29sb3JQaWNrZXJDbGllbnQuaApAQCAtMCww
ICsxLDU1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIFJlc2VhcmNoIEluIE1vdGlvbiBM
aW1pdGVkLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVl
IHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1
bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vu
c2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgor
ICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRl
ciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9w
ZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3
aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBv
ciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBMZXNz
ZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBz
aG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJs
aWMKKyAqIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IGlmIG5vdCwgd3JpdGUgdG8g
dGhlIEZyZWUgU29mdHdhcmUKKyAqIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVl
dCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgIDAyMTEwLTEzMDEgIFVTQQorICovCisKKyNpZm5k
ZWYgQ29sb3JQaWNrZXJDbGllbnRfaAorI2RlZmluZSBDb2xvclBpY2tlckNsaWVudF9oCisKKyNp
bmNsdWRlICJQYWdlUG9wdXBDbGllbnQuaCIKKyNpbmNsdWRlIDxCbGFja0JlcnJ5UGxhdGZvcm1J
bnB1dEV2ZW50cy5oPgorCituYW1lc3BhY2UgQmxhY2tCZXJyeSB7CituYW1lc3BhY2UgV2ViS2l0
IHsKK2NsYXNzIFdlYlBhZ2VQcml2YXRlOworY2xhc3MgV2ViU3RyaW5nOworfQorfQorCituYW1l
c3BhY2UgV2ViQ29yZSB7CitjbGFzcyBEb2N1bWVudFdyaXRlcjsKK2NsYXNzIEhUTUxJbnB1dEVs
ZW1lbnQ7CisKK2NsYXNzIENvbG9yUGlja2VyQ2xpZW50IDogcHVibGljIFBhZ2VQb3B1cENsaWVu
dCB7CitwdWJsaWM6CisgICAgQ29sb3JQaWNrZXJDbGllbnQoY29uc3QgQmxhY2tCZXJyeTo6V2Vi
S2l0OjpXZWJTdHJpbmcmIHZhbHVlLCBCbGFja0JlcnJ5OjpXZWJLaXQ6OldlYlBhZ2VQcml2YXRl
KiwgSFRNTElucHV0RWxlbWVudCopOworCisgICAgdm9pZCBnZW5lcmF0ZUhUTUwoY29uc3QgQmxh
Y2tCZXJyeTo6V2ViS2l0OjpXZWJTdHJpbmcmIHZhbHVlKTsKKyAgICB2b2lkIHdyaXRlRG9jdW1l
bnQoRG9jdW1lbnRXcml0ZXImKTsKKyAgICBJbnRTaXplIGNvbnRlbnRTaXplKCk7CisgICAgU3Ry
aW5nIGh0bWxTb3VyY2UoKSBjb25zdDsKKyAgICB2b2lkIHNldFZhbHVlQW5kQ2xvc2VQb3B1cChp
bnQsIGNvbnN0IFN0cmluZyYpOworICAgIHZvaWQgZGlkQ2xvc2VQb3B1cCgpOworCitwcml2YXRl
OgorICAgIHZvaWQgY2xvc2VQb3B1cCgpOworCisgICAgU3RyaW5nIG1fc291cmNlOworICAgIEJs
YWNrQmVycnk6OldlYktpdDo6V2ViUGFnZVByaXZhdGUqIG1fd2ViUGFnZTsKKyAgICBIVE1MSW5w
dXRFbGVtZW50KiBtX2VsZW1lbnQ7Cit9OworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorI2VuZGlm
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViS2l0U3VwcG9ydC9JbnB1
dEhhbmRsZXIuY3BwIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYktpdFN1cHBvcnQvSW5w
dXRIYW5kbGVyLmNwcAppbmRleCA3YzI0MzRmLi43ZTVkNDYyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L2JsYWNrYmVycnkvV2ViS2l0U3VwcG9ydC9JbnB1dEhhbmRsZXIuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJLaXRTdXBwb3J0L0lucHV0SGFuZGxlci5jcHAKQEAg
LTIzLDYgKzIzLDcgQEAKICNpbmNsdWRlICJCYWNraW5nU3RvcmVDbGllbnQuaCIKICNpbmNsdWRl
ICJDU1NTdHlsZURlY2xhcmF0aW9uLmgiCiAjaW5jbHVkZSAiQ2hyb21lLmgiCisjaW5jbHVkZSAi
Q29sb3JQaWNrZXJDbGllbnQuaCIKICNpbmNsdWRlICJET01TdXBwb3J0LmgiCiAjaW5jbHVkZSAi
RGF0ZVBpY2tlckNsaWVudC5oIgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCkBAIC05NzcsOCArOTc4
LDExIEBAIGJvb2wgSW5wdXRIYW5kbGVyOjpvcGVuQ29sb3JQb3B1cChIVE1MSW5wdXRFbGVtZW50
KiBlbGVtZW50KQogICAgIG1fY3VycmVudEZvY3VzRWxlbWVudCA9IGVsZW1lbnQ7CiAgICAgbV9j
dXJyZW50Rm9jdXNFbGVtZW50VHlwZSA9IFRleHRQb3B1cDsKIAotICAgIC8vIEZJWE1FOiBOZWVk
IHRvIGFkZCBwYWdlUG9wdXAgc3VwcG9ydCBhbmQgdGhlIGNvbG91ciBkaWFsb2cuCi0gICAgLy8g
UFIgMTgwNzc4CisgICAgLy8gQ2hlY2sgaWYgcG9wdXAgYWxyZWFkeSBleGlzdHMsIGNsb3NlIGl0
IGlmIGRvZXMuCisgICAgbV93ZWJQYWdlLT5tX3BhZ2UtPmNocm9tZSgpLT5jbGllbnQoKS0+Y2xv
c2VQYWdlUG9wdXAoMCk7CisgICAgQ29sb3JQaWNrZXJDbGllbnQqIGNsaWVudCA9IG5ldyBDb2xv
clBpY2tlckNsaWVudChlbGVtZW50LT52YWx1ZSgpLCBtX3dlYlBhZ2UsIGVsZW1lbnQpOworICAg
IG1fd2ViUGFnZS0+bV9wYWdlLT5jaHJvbWUoKS0+Y2xpZW50KCktPm9wZW5QYWdlUG9wdXAoY2xp
ZW50LCAgV2ViQ29yZTo6SW50UmVjdCgpKTsKKyAgICByZXR1cm4gdHJ1ZTsKIH0KIAogdm9pZCBJ
bnB1dEhhbmRsZXI6OnNldElucHV0VmFsdWUoY29uc3QgV1RGOjpTdHJpbmcmIHZhbHVlKQotLSAK
MS43LjEwLjEKCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>