<?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>107685</bug_id>
          
          <creation_ts>2013-01-23 06:08:00 -0800</creation_ts>
          <short_desc>[EFL][WK2] RequestManagerClientEfl, DownloadManagerEfl and ContextHistoryClientEfl should be based on C API</short_desc>
          <delta_ts>2013-01-31 00:51:35 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit EFL</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>107657</blocked>
    
    <blocked>107666</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Mikhail Pozdnyakov">mikhail.pozdnyakov</reporter>
          <assigned_to name="Mikhail Pozdnyakov">mikhail.pozdnyakov</assigned_to>
          <cc>ap</cc>
    
    <cc>benjamin</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>kenneth</cc>
    
    <cc>lucas.de.marchi</cc>
    
    <cc>rakuco</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>814143</commentid>
    <comment_count>0</comment_count>
    <who name="Mikhail Pozdnyakov">mikhail.pozdnyakov</who>
    <bug_when>2013-01-23 06:08:00 -0800</bug_when>
    <thetext>SSIA</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>814162</commentid>
    <comment_count>1</comment_count>
      <attachid>184222</attachid>
    <who name="Mikhail Pozdnyakov">mikhail.pozdnyakov</who>
    <bug_when>2013-01-23 06:39:35 -0800</bug_when>
    <thetext>Created attachment 184222
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>815476</commentid>
    <comment_count>2</comment_count>
      <attachid>184222</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2013-01-24 08:02:22 -0800</bug_when>
    <thetext>Comment on attachment 184222
patch

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

&gt; Source/WebKit2/UIProcess/efl/RequestManagerClientEfl.cpp:72
&gt; -    ASSERT(context);
&gt; +    ASSERT(m_soupRequestManager);

where is this change explained?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>815508</commentid>
    <comment_count>3</comment_count>
      <attachid>184222</attachid>
    <who name="Mikhail Pozdnyakov">mikhail.pozdnyakov</who>
    <bug_when>2013-01-24 08:35:08 -0800</bug_when>
    <thetext>Comment on attachment 184222
patch

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

&gt;&gt; Source/WebKit2/UIProcess/efl/RequestManagerClientEfl.cpp:72
&gt;&gt; +    ASSERT(m_soupRequestManager);
&gt; 
&gt; where is this change explained?

ASSERT(context); was erroneous here, as context is used already before this line</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>816422</commentid>
    <comment_count>4</comment_count>
      <attachid>184222</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2013-01-25 02:47:54 -0800</bug_when>
    <thetext>Comment on attachment 184222
patch

LGTM.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>819315</commentid>
    <comment_count>5</comment_count>
      <attachid>184222</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2013-01-29 14:12:20 -0800</bug_when>
    <thetext>Comment on attachment 184222
patch

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

Looks like a step in the right direction. Some comments:

&gt; Source/WebKit2/UIProcess/efl/ContextHistoryClientEfl.cpp:109
&gt; -ContextHistoryClientEfl::ContextHistoryClientEfl(PassRefPtr&lt;WebContext&gt; context)
&gt; +ContextHistoryClientEfl::ContextHistoryClientEfl(WKContextRef context)

I see you include DownloadProxy.h in this file, is that intentional?

&gt; Source/WebKit2/UIProcess/efl/ContextHistoryClientEfl.h:29
&gt; +#include &quot;WKRetainPtr.h&quot;

I would use #include &lt;WebKit2/WKRetainPtr.h&gt; to simplify the include paths. Then order the #includes.

&gt; Source/WebKit2/UIProcess/efl/DownloadManagerEfl.h:29
&gt; +#include &quot;WKRetainPtr.h&quot;

Ditto.

&gt; Source/WebKit2/UIProcess/efl/RequestManagerClientEfl.cpp:70
&gt; -RequestManagerClientEfl::RequestManagerClientEfl(EwkContext* context)
&gt; -    : m_soupRequestManager(WKContextGetSoupRequestManager(toAPI(context-&gt;webContext().get())))
&gt; +RequestManagerClientEfl::RequestManagerClientEfl(WKContextRef context)
&gt; +    : m_soupRequestManager(WKContextGetSoupRequestManager(context))

This class uses WebSoupRequestManagerProxy directly. It looks like it could easily switch to the C API.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>819887</commentid>
    <comment_count>6</comment_count>
      <attachid>184222</attachid>
    <who name="Mikhail Pozdnyakov">mikhail.pozdnyakov</who>
    <bug_when>2013-01-30 00:42:17 -0800</bug_when>
    <thetext>Comment on attachment 184222
patch

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

&gt;&gt; Source/WebKit2/UIProcess/efl/ContextHistoryClientEfl.cpp:109
&gt;&gt; +ContextHistoryClientEfl::ContextHistoryClientEfl(WKContextRef context)
&gt; 
&gt; I see you include DownloadProxy.h in this file, is that intentional?

apparently not :) thanks for the catch

&gt;&gt; Source/WebKit2/UIProcess/efl/ContextHistoryClientEfl.h:29
&gt;&gt; +#include &quot;WKRetainPtr.h&quot;
&gt; 
&gt; I would use #include &lt;WebKit2/WKRetainPtr.h&gt; to simplify the include paths. Then order the #includes.

sure it is better

&gt;&gt; Source/WebKit2/UIProcess/efl/RequestManagerClientEfl.cpp:70
&gt;&gt; +    : m_soupRequestManager(WKContextGetSoupRequestManager(context))
&gt; 
&gt; This class uses WebSoupRequestManagerProxy directly. It looks like it could easily switch to the C API.

mm.. I guess it&apos;s in place already &apos;WKRetainPtr&lt;WKSoupRequestManagerRef&gt; m_soupRequestManager&apos;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>819899</commentid>
    <comment_count>7</comment_count>
      <attachid>185419</attachid>
    <who name="Mikhail Pozdnyakov">mikhail.pozdnyakov</who>
    <bug_when>2013-01-30 00:48:30 -0800</bug_when>
    <thetext>Created attachment 185419
patch v2

Took comments from Benjamin into consideration.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>819904</commentid>
    <comment_count>8</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2013-01-30 00:52:38 -0800</bug_when>
    <thetext>&gt; mm.. I guess it&apos;s in place already &apos;WKRetainPtr&lt;WKSoupRequestManagerRef&gt; m_soupRequestManager&apos;

Here:
    toImpl(m_soupRequestManager.get())-&gt;registerURIScheme(scheme);</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>819947</commentid>
    <comment_count>9</comment_count>
    <who name="Mikhail Pozdnyakov">mikhail.pozdnyakov</who>
    <bug_when>2013-01-30 01:31:10 -0800</bug_when>
    <thetext>(In reply to comment #8)
&gt; &gt; mm.. I guess it&apos;s in place already &apos;WKRetainPtr&lt;WKSoupRequestManagerRef&gt; m_soupRequestManager&apos;
&gt; 
&gt; Here:
&gt;     toImpl(m_soupRequestManager.get())-&gt;registerURIScheme(scheme);

indeed.. I haven&apos;t noticed :( Thanks for pointing out</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>820176</commentid>
    <comment_count>10</comment_count>
      <attachid>185498</attachid>
    <who name="Mikhail Pozdnyakov">mikhail.pozdnyakov</who>
    <bug_when>2013-01-30 07:03:09 -0800</bug_when>
    <thetext>Created attachment 185498
patch v3

Removed remaining WK2 internal usage in RequestManagerClientEfl::registerURLSchemeHandler.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>820440</commentid>
    <comment_count>11</comment_count>
      <attachid>185498</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2013-01-30 12:55:34 -0800</bug_when>
    <thetext>Comment on attachment 185498
patch v3

Looks good.

Just remove #include &quot;WebSoupRequestManagerProxy.h&quot; from RequestManagerClientEfl.cpp.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>821226</commentid>
    <comment_count>12</comment_count>
    <who name="Mikhail Pozdnyakov">mikhail.pozdnyakov</who>
    <bug_when>2013-01-31 00:51:35 -0800</bug_when>
    <thetext>Committed r141389: &lt;http://trac.webkit.org/changeset/141389&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>184222</attachid>
            <date>2013-01-23 06:39:35 -0800</date>
            <delta_ts>2013-01-30 00:48:30 -0800</delta_ts>
            <desc>patch</desc>
            <filename>bug107685</filename>
            <type>text/plain</type>
            <size>10791</size>
            <attacher name="Mikhail Pozdnyakov">mikhail.pozdnyakov</attacher>
            
              <data encoding="base64">Y29tbWl0IDViMWUzZmJiMWJjYzFiMjEwMDQyY2Y1MTBlYzdlYWViYTJkYzgzYmUKQXV0aG9yOiBN
aWtoYWlsIFBvemRueWFrb3YgPG1pa2hhaWwucG96ZG55YWtvdkBpbnRlbC5jb20+CkRhdGU6ICAg
V2VkIEphbiAyMyAxNjozNTowNSAyMDEzICswMjAwCgogICAgYnVnMTA3Njg1CgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmlu
ZGV4IDVkNjJkOWYuLjJhNGNkNjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxv
ZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMyBAQAorMjAxMy0w
MS0yMyAgTWlraGFpbCBQb3pkbnlha292ICA8bWlraGFpbC5wb3pkbnlha292QGludGVsLmNvbT4K
KworICAgICAgICBbRUZMXVtXSzJdIFJlcXVlc3RNYW5hZ2VyQ2xpZW50RWZsLCBEb3dubG9hZE1h
bmFnZXJFZmwgYW5kIENvbnRleHRIaXN0b3J5Q2xpZW50RWZsIHNob3VsZCBiZSBiYXNlZCBvbiBD
IEFQSQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA3
Njg1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVx
dWVzdE1hbmFnZXJDbGllbnRFZmwsIERvd25sb2FkTWFuYWdlckVmbCBhbmQgQ29udGV4dEhpc3Rv
cnlDbGllbnRFZmwKKyAgICAgICAgc2hvdWxkIGJlIGJhc2VkIG9uIEMgQVBJIHNvIHRoYXQgQVBJ
IGxheWVyaW5nIGlzIG5vdCB2aW9sYXRlZC4KKworICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZWZs
L2V3a19jb250ZXh0LmNwcDoKKyAgICAgICAgKEV3a0NvbnRleHQ6OkV3a0NvbnRleHQpOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9lZmwvQ29udGV4dEhpc3RvcnlDbGllbnRFZmwuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpDb250ZXh0SGlzdG9yeUNsaWVudEVmbDo6Q29udGV4dEhpc3RvcnlDbGllbnRF
ZmwpOgorICAgICAgICAoV2ViS2l0OjpDb250ZXh0SGlzdG9yeUNsaWVudEVmbDo6fkNvbnRleHRI
aXN0b3J5Q2xpZW50RWZsKToKKyAgICAgICAgKiBVSVByb2Nlc3MvZWZsL0NvbnRleHRIaXN0b3J5
Q2xpZW50RWZsLmg6CisgICAgICAgIChXZWJLaXQ6OkNvbnRleHRIaXN0b3J5Q2xpZW50RWZsOjpj
cmVhdGUpOgorICAgICAgICAoQ29udGV4dEhpc3RvcnlDbGllbnRFZmwpOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9lZmwvRG93bmxvYWRNYW5hZ2VyRWZsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6RG93
bmxvYWRNYW5hZ2VyRWZsOjpEb3dubG9hZE1hbmFnZXJFZmwpOgorICAgICAgICAoV2ViS2l0OjpE
b3dubG9hZE1hbmFnZXJFZmw6On5Eb3dubG9hZE1hbmFnZXJFZmwpOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9lZmwvRG93bmxvYWRNYW5hZ2VyRWZsLmg6CisgICAgICAgIChXZWJLaXQ6OkRvd25sb2Fk
TWFuYWdlckVmbDo6Y3JlYXRlKToKKyAgICAgICAgKERvd25sb2FkTWFuYWdlckVmbCk6CisgICAg
ICAgICogVUlQcm9jZXNzL2VmbC9SZXF1ZXN0TWFuYWdlckNsaWVudEVmbC5jcHA6CisgICAgICAg
IChXZWJLaXQ6OlJlcXVlc3RNYW5hZ2VyQ2xpZW50RWZsOjpSZXF1ZXN0TWFuYWdlckNsaWVudEVm
bCk6CisgICAgICAgICogVUlQcm9jZXNzL2VmbC9SZXF1ZXN0TWFuYWdlckNsaWVudEVmbC5oOgor
ICAgICAgICAoV2ViS2l0OjpSZXF1ZXN0TWFuYWdlckNsaWVudEVmbDo6Y3JlYXRlKToKKyAgICAg
ICAgKFJlcXVlc3RNYW5hZ2VyQ2xpZW50RWZsKToKKwogMjAxMy0wMS0yMiAgQW5kZXJzIENhcmxz
c29uICA8YW5kZXJzY2FAYXBwbGUuY29tPgogCiAgICAgICAgIFVzZSBhIHBsYXRmb3JvbSBzdHJh
dGVneSBmb3IgbG9jYWwgc3RvcmFnZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9lZmwvZXdrX2NvbnRleHQuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9lZmwvZXdrX2NvbnRleHQuY3BwCmluZGV4IGUzNGE2ZjQuLjJhM2NkM2YgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19jb250ZXh0LmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfY29udGV4dC5jcHAKQEAgLTczLDkg
KzczLDkgQEAgRXdrQ29udGV4dDo6RXdrQ29udGV4dChQYXNzUmVmUHRyPFdlYkNvbnRleHQ+IGNv
bnRleHQpCiAjaWYgRU5BQkxFKE5FVFdPUktfSU5GTykKICAgICAsIG1fbmV0d29ya0luZm9Qcm92
aWRlcihOZXR3b3JrSW5mb1Byb3ZpZGVyOjpjcmVhdGUobV9jb250ZXh0KSkKICNlbmRpZgotICAg
ICwgbV9kb3dubG9hZE1hbmFnZXIoRG93bmxvYWRNYW5hZ2VyRWZsOjpjcmVhdGUodGhpcykpCi0g
ICAgLCBtX3JlcXVlc3RNYW5hZ2VyQ2xpZW50KFJlcXVlc3RNYW5hZ2VyQ2xpZW50RWZsOjpjcmVh
dGUodGhpcykpCi0gICAgLCBtX2hpc3RvcnlDbGllbnQoQ29udGV4dEhpc3RvcnlDbGllbnRFZmw6
OmNyZWF0ZShtX2NvbnRleHQpKQorICAgICwgbV9kb3dubG9hZE1hbmFnZXIoRG93bmxvYWRNYW5h
Z2VyRWZsOjpjcmVhdGUodG9BUEkobV9jb250ZXh0LmdldCgpKSkpCisgICAgLCBtX3JlcXVlc3RN
YW5hZ2VyQ2xpZW50KFJlcXVlc3RNYW5hZ2VyQ2xpZW50RWZsOjpjcmVhdGUodG9BUEkobV9jb250
ZXh0LmdldCgpKSkpCisgICAgLCBtX2hpc3RvcnlDbGllbnQoQ29udGV4dEhpc3RvcnlDbGllbnRF
Zmw6OmNyZWF0ZSh0b0FQSShtX2NvbnRleHQuZ2V0KCkpKSkKIHsKICAgICBDb250ZXh0TWFwOjpB
ZGRSZXN1bHQgcmVzdWx0ID0gY29udGV4dE1hcCgpLmFkZChtX2NvbnRleHQuZ2V0KCksIHRoaXMp
OwogICAgIEFTU0VSVF9VTlVTRUQocmVzdWx0LCByZXN1bHQuaXNOZXdFbnRyeSk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZsL0NvbnRleHRIaXN0b3J5Q2xpZW50RWZs
LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvQ29udGV4dEhpc3RvcnlDbGllbnRF
ZmwuY3BwCmluZGV4IDBlODAyNjguLjA3ODIwNDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9lZmwvQ29udGV4dEhpc3RvcnlDbGllbnRFZmwuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9lZmwvQ29udGV4dEhpc3RvcnlDbGllbnRFZmwuY3BwCkBAIC0xMDYs
NyArMTA2LDcgQEAgdm9pZCBDb250ZXh0SGlzdG9yeUNsaWVudEVmbDo6cG9wdWxhdGVWaXNpdGVk
TGlua3MoV0tDb250ZXh0UmVmLCBjb25zdCB2b2lkKiBjbGkKICAgICBoaXN0b3J5Q2xpZW50LT5t
X3BvcHVsYXRlVmlzaXRlZExpbmtzKGhpc3RvcnlDbGllbnQtPm1fdXNlckRhdGEpOwogfQogCi1D
b250ZXh0SGlzdG9yeUNsaWVudEVmbDo6Q29udGV4dEhpc3RvcnlDbGllbnRFZmwoUGFzc1JlZlB0
cjxXZWJDb250ZXh0PiBjb250ZXh0KQorQ29udGV4dEhpc3RvcnlDbGllbnRFZmw6OkNvbnRleHRI
aXN0b3J5Q2xpZW50RWZsKFdLQ29udGV4dFJlZiBjb250ZXh0KQogICAgIDogbV9jb250ZXh0KGNv
bnRleHQpCiAgICAgLCBtX3VzZXJEYXRhKDApCiAgICAgLCBtX25hdmlnYXRlKDApCkBAIC0xMjks
MTIgKzEyOSwxMiBAQCBDb250ZXh0SGlzdG9yeUNsaWVudEVmbDo6Q29udGV4dEhpc3RvcnlDbGll
bnRFZmwoUGFzc1JlZlB0cjxXZWJDb250ZXh0PiBjb250ZXh0KQogICAgIHdrSGlzdG9yeUNsaWVu
dC5kaWRVcGRhdGVIaXN0b3J5VGl0bGUgPSBkaWRVcGRhdGVIaXN0b3J5VGl0bGU7CiAgICAgd2tI
aXN0b3J5Q2xpZW50LnBvcHVsYXRlVmlzaXRlZExpbmtzID0gcG9wdWxhdGVWaXNpdGVkTGlua3M7
CiAKLSAgICBtX2NvbnRleHQtPmluaXRpYWxpemVIaXN0b3J5Q2xpZW50KCZ3a0hpc3RvcnlDbGll
bnQpOworICAgIFdLQ29udGV4dFNldEhpc3RvcnlDbGllbnQobV9jb250ZXh0LmdldCgpLCAmd2tI
aXN0b3J5Q2xpZW50KTsKIH0KIAogQ29udGV4dEhpc3RvcnlDbGllbnRFZmw6On5Db250ZXh0SGlz
dG9yeUNsaWVudEVmbCgpCiB7Ci0gICAgbV9jb250ZXh0LT5pbml0aWFsaXplSGlzdG9yeUNsaWVu
dCgwKTsKKyAgICBXS0NvbnRleHRTZXRIaXN0b3J5Q2xpZW50KG1fY29udGV4dC5nZXQoKSwgMCk7
CiB9CiAKIHZvaWQgQ29udGV4dEhpc3RvcnlDbGllbnRFZmw6OnNldENhbGxiYWNrcyhFd2tfSGlz
dG9yeV9OYXZpZ2F0aW9uX0NiIG5hdmlnYXRlLCBFd2tfSGlzdG9yeV9DbGllbnRfUmVkaXJlY3Rp
b25fQ2IgY2xpZW50UmVkaXJlY3QsIEV3a19IaXN0b3J5X1NlcnZlcl9SZWRpcmVjdGlvbl9DYiBz
ZXJ2ZXJSZWRpcmVjdCwgRXdrX0hpc3RvcnlfVGl0bGVfVXBkYXRlX0NiIHRpdGxlVXBkYXRlLCBF
d2tfSGlzdG9yeV9Qb3B1bGF0ZV9WaXNpdGVkX0xpbmtzX0NiIHBvcHVsYXRlVmlzaXRlZExpbmtz
LCB2b2lkKiBkYXRhKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2VmbC9D
b250ZXh0SGlzdG9yeUNsaWVudEVmbC5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2VmbC9D
b250ZXh0SGlzdG9yeUNsaWVudEVmbC5oCmluZGV4IGM3YjNhMjAuLmJiODMzMGUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvQ29udGV4dEhpc3RvcnlDbGllbnRFZmwu
aAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZsL0NvbnRleHRIaXN0b3J5Q2xpZW50
RWZsLmgKQEAgLTI2LDcgKzI2LDcgQEAKICNpZm5kZWYgQ29udGV4dEhpc3RvcnlDbGllbnRFZmxf
aAogI2RlZmluZSBDb250ZXh0SGlzdG9yeUNsaWVudEVmbF9oCiAKLSNpbmNsdWRlICJXZWJDb250
ZXh0LmgiCisjaW5jbHVkZSAiV0tSZXRhaW5QdHIuaCIKICNpbmNsdWRlICJld2tfY29udGV4dC5o
IgogI2luY2x1ZGUgPFdlYktpdDIvV0tCYXNlLmg+CiAjaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIu
aD4KQEAgLTM1LDcgKzM1LDcgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiAKIGNsYXNzIENvbnRleHRI
aXN0b3J5Q2xpZW50RWZsIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc093blB0cjxDb250ZXh0
SGlzdG9yeUNsaWVudEVmbD4gY3JlYXRlKFBhc3NSZWZQdHI8V2ViQ29udGV4dD4gY29udGV4dCkK
KyAgICBzdGF0aWMgUGFzc093blB0cjxDb250ZXh0SGlzdG9yeUNsaWVudEVmbD4gY3JlYXRlKFdL
Q29udGV4dFJlZiBjb250ZXh0KQogICAgIHsKICAgICAgICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBD
b250ZXh0SGlzdG9yeUNsaWVudEVmbChjb250ZXh0KSk7CiAgICAgfQpAQCAtNDUsNyArNDUsNyBA
QCBwdWJsaWM6CiAgICAgdm9pZCBzZXRDYWxsYmFja3MoRXdrX0hpc3RvcnlfTmF2aWdhdGlvbl9D
YiwgRXdrX0hpc3RvcnlfQ2xpZW50X1JlZGlyZWN0aW9uX0NiLCBFd2tfSGlzdG9yeV9TZXJ2ZXJf
UmVkaXJlY3Rpb25fQ2IsIEV3a19IaXN0b3J5X1RpdGxlX1VwZGF0ZV9DYiwgRXdrX0hpc3Rvcnlf
UG9wdWxhdGVfVmlzaXRlZF9MaW5rc19DYiwgdm9pZCopOwogCiBwcml2YXRlOgotICAgIGV4cGxp
Y2l0IENvbnRleHRIaXN0b3J5Q2xpZW50RWZsKFBhc3NSZWZQdHI8V2ViQ29udGV4dD4pOworICAg
IGV4cGxpY2l0IENvbnRleHRIaXN0b3J5Q2xpZW50RWZsKFdLQ29udGV4dFJlZik7CiAKICAgICBz
dGF0aWMgdm9pZCBkaWROYXZpZ2F0ZVdpdGhOYXZpZ2F0aW9uRGF0YShXS0NvbnRleHRSZWYsIFdL
UGFnZVJlZiwgV0tOYXZpZ2F0aW9uRGF0YVJlZiwgV0tGcmFtZVJlZiwgY29uc3Qgdm9pZCopOwog
ICAgIHN0YXRpYyB2b2lkIGRpZFBlcmZvcm1DbGllbnRSZWRpcmVjdChXS0NvbnRleHRSZWYsIFdL
UGFnZVJlZiwgV0tVUkxSZWYgc291cmNlVVJMLCBXS1VSTFJlZiwgV0tGcmFtZVJlZiwgY29uc3Qg
dm9pZCopOwpAQCAtNTMsNyArNTMsNyBAQCBwcml2YXRlOgogICAgIHN0YXRpYyB2b2lkIGRpZFVw
ZGF0ZUhpc3RvcnlUaXRsZShXS0NvbnRleHRSZWYsIFdLUGFnZVJlZiwgV0tTdHJpbmdSZWYsIFdL
VVJMUmVmLCBXS0ZyYW1lUmVmLCBjb25zdCB2b2lkKik7CiAgICAgc3RhdGljIHZvaWQgcG9wdWxh
dGVWaXNpdGVkTGlua3MoV0tDb250ZXh0UmVmLCBjb25zdCB2b2lkKik7CiAKLSAgICBSZWZQdHI8
V2ViQ29udGV4dD4gbV9jb250ZXh0OworICAgIFdLUmV0YWluUHRyPFdLQ29udGV4dFJlZj4gbV9j
b250ZXh0OwogICAgIHZvaWQqIG1fdXNlckRhdGE7CiAgICAgRXdrX0hpc3RvcnlfTmF2aWdhdGlv
bl9DYiBtX25hdmlnYXRlOwogICAgIEV3a19IaXN0b3J5X0NsaWVudF9SZWRpcmVjdGlvbl9DYiBt
X2NsaWVudFJlZGlyZWN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2Vm
bC9Eb3dubG9hZE1hbmFnZXJFZmwuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2VmbC9E
b3dubG9hZE1hbmFnZXJFZmwuY3BwCmluZGV4IDkzYTdkYjAuLmIxOTE5MTMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvRG93bmxvYWRNYW5hZ2VyRWZsLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZsL0Rvd25sb2FkTWFuYWdlckVmbC5jcHAKQEAg
LTEyMCw3ICsxMjAsNyBAQCB2b2lkIERvd25sb2FkTWFuYWdlckVmbDo6ZGlkRmluaXNoKFdLQ29u
dGV4dFJlZiwgV0tEb3dubG9hZFJlZiB3a0Rvd25sb2FkLCBjb25zdAogICAgIGRvd25sb2FkTWFu
YWdlci0+dW5yZWdpc3RlckRvd25sb2FkSm9iKGRvd25sb2FkSWQpOwogfQogCi1Eb3dubG9hZE1h
bmFnZXJFZmw6OkRvd25sb2FkTWFuYWdlckVmbChFd2tDb250ZXh0KiBjb250ZXh0KQorRG93bmxv
YWRNYW5hZ2VyRWZsOjpEb3dubG9hZE1hbmFnZXJFZmwoV0tDb250ZXh0UmVmIGNvbnRleHQpCiAg
ICAgOiBtX2NvbnRleHQoY29udGV4dCkKIHsKICAgICBXS0NvbnRleHREb3dubG9hZENsaWVudCB3
a0Rvd25sb2FkQ2xpZW50OwpAQCAtMTM2LDEyICsxMzYsMTIgQEAgRG93bmxvYWRNYW5hZ2VyRWZs
OjpEb3dubG9hZE1hbmFnZXJFZmwoRXdrQ29udGV4dCogY29udGV4dCkKICAgICB3a0Rvd25sb2Fk
Q2xpZW50LmRpZEZhaWwgPSBkaWRGYWlsOwogICAgIHdrRG93bmxvYWRDbGllbnQuZGlkRmluaXNo
ID0gZGlkRmluaXNoOwogCi0gICAgV0tDb250ZXh0U2V0RG93bmxvYWRDbGllbnQodG9BUEkoY29u
dGV4dC0+d2ViQ29udGV4dCgpLmdldCgpKSwgJndrRG93bmxvYWRDbGllbnQpOworICAgIFdLQ29u
dGV4dFNldERvd25sb2FkQ2xpZW50KG1fY29udGV4dC5nZXQoKSwgJndrRG93bmxvYWRDbGllbnQp
OwogfQogCiBEb3dubG9hZE1hbmFnZXJFZmw6On5Eb3dubG9hZE1hbmFnZXJFZmwoKQogewotICAg
IFdLQ29udGV4dFNldERvd25sb2FkQ2xpZW50KHRvQVBJKG1fY29udGV4dC0+d2ViQ29udGV4dCgp
LmdldCgpKSwgMCk7CisgICAgV0tDb250ZXh0U2V0RG93bmxvYWRDbGllbnQobV9jb250ZXh0Lmdl
dCgpLCAwKTsKIH0KIAogdm9pZCBEb3dubG9hZE1hbmFnZXJFZmw6OnJlZ2lzdGVyRG93bmxvYWQo
RG93bmxvYWRQcm94eSogZG93bmxvYWQsIEV3a1ZpZXdJbXBsKiB2aWV3SW1wbCkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvRG93bmxvYWRNYW5hZ2VyRWZsLmggYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZsL0Rvd25sb2FkTWFuYWdlckVmbC5oCmluZGV4IGQz
NzI4YzMuLmY3ZWJmNDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwv
RG93bmxvYWRNYW5hZ2VyRWZsLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2VmbC9E
b3dubG9hZE1hbmFnZXJFZmwuaApAQCAtMjYsMTkgKzI2LDE3IEBACiAjaWZuZGVmIERvd25sb2Fk
TWFuYWdlckVmbF9oCiAjZGVmaW5lIERvd25sb2FkTWFuYWdlckVmbF9oCiAKKyNpbmNsdWRlICJX
S1JldGFpblB0ci5oIgogI2luY2x1ZGUgImV3a19kb3dubG9hZF9qb2JfcHJpdmF0ZS5oIgogI2lu
Y2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CiAjaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KICNpbmNs
dWRlIDx3dGYvUmVmUHRyLmg+CiAKLWNsYXNzIEV3a0NvbnRleHQ7Ci1jbGFzcyBFd2tEb3dubG9h
ZEpvYjsKLQogbmFtZXNwYWNlIFdlYktpdCB7CiAKIGNsYXNzIERvd25sb2FkTWFuYWdlckVmbCB7
CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NPd25QdHI8RG93bmxvYWRNYW5hZ2VyRWZsPiBjcmVh
dGUoRXdrQ29udGV4dCogY29udGV4dCkKKyAgICBzdGF0aWMgUGFzc093blB0cjxEb3dubG9hZE1h
bmFnZXJFZmw+IGNyZWF0ZShXS0NvbnRleHRSZWYgY29udGV4dCkKICAgICB7CiAgICAgICAgIHJl
dHVybiBhZG9wdFB0cihuZXcgRG93bmxvYWRNYW5hZ2VyRWZsKGNvbnRleHQpKTsKICAgICB9CkBA
IC00OCw3ICs0Niw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHJlZ2lzdGVyRG93bmxvYWQoRG93bmxv
YWRQcm94eSosIEV3a1ZpZXdJbXBsKik7CiAKIHByaXZhdGU6Ci0gICAgZXhwbGljaXQgRG93bmxv
YWRNYW5hZ2VyRWZsKEV3a0NvbnRleHQqKTsKKyAgICBleHBsaWNpdCBEb3dubG9hZE1hbmFnZXJF
ZmwoV0tDb250ZXh0UmVmKTsKIAogICAgIEV3a0Rvd25sb2FkSm9iKiBkb3dubG9hZEpvYih1aW50
NjRfdCBpZCkgY29uc3Q7CiAgICAgdm9pZCB1bnJlZ2lzdGVyRG93bmxvYWRKb2IodWludDY0X3Qg
aWQpOwpAQCAtNjEsNyArNTksNyBAQCBwcml2YXRlOgogICAgIHN0YXRpYyB2b2lkIGRpZENhbmNl
bChXS0NvbnRleHRSZWYsIFdLRG93bmxvYWRSZWYsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pOwog
ICAgIHN0YXRpYyB2b2lkIGRpZEZpbmlzaChXS0NvbnRleHRSZWYsIFdLRG93bmxvYWRSZWYsIGNv
bnN0IHZvaWQqIGNsaWVudEluZm8pOwogCi0gICAgRXdrQ29udGV4dCogbV9jb250ZXh0OworICAg
IFdLUmV0YWluUHRyPFdLQ29udGV4dFJlZj4gbV9jb250ZXh0OwogICAgIEhhc2hNYXA8dWludDY0
X3QsIFJlZlB0cjxFd2tEb3dubG9hZEpvYj4gPiBtX2Rvd25sb2FkSm9iczsKIH07CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvUmVxdWVzdE1hbmFnZXJDbGllbnRF
ZmwuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2VmbC9SZXF1ZXN0TWFuYWdlckNsaWVu
dEVmbC5jcHAKaW5kZXggZTIxZDY5OS4uMGE5YzhmMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL2VmbC9SZXF1ZXN0TWFuYWdlckNsaWVudEVmbC5jcHAKKysrIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL2VmbC9SZXF1ZXN0TWFuYWdlckNsaWVudEVmbC5jcHAKQEAgLTY2
LDEwICs2NiwxMCBAQCB2b2lkIFJlcXVlc3RNYW5hZ2VyQ2xpZW50RWZsOjpkaWRSZWNlaXZlVVJJ
UmVxdWVzdChXS1NvdXBSZXF1ZXN0TWFuYWdlclJlZiBzb3VwUgogICAgIGhhbmRsZXIuY2FsbGJh
Y2soc2NoZW1lUmVxdWVzdC5nZXQoKSwgaGFuZGxlci51c2VyRGF0YSk7CiB9CiAKLVJlcXVlc3RN
YW5hZ2VyQ2xpZW50RWZsOjpSZXF1ZXN0TWFuYWdlckNsaWVudEVmbChFd2tDb250ZXh0KiBjb250
ZXh0KQotICAgIDogbV9zb3VwUmVxdWVzdE1hbmFnZXIoV0tDb250ZXh0R2V0U291cFJlcXVlc3RN
YW5hZ2VyKHRvQVBJKGNvbnRleHQtPndlYkNvbnRleHQoKS5nZXQoKSkpKQorUmVxdWVzdE1hbmFn
ZXJDbGllbnRFZmw6OlJlcXVlc3RNYW5hZ2VyQ2xpZW50RWZsKFdLQ29udGV4dFJlZiBjb250ZXh0
KQorICAgIDogbV9zb3VwUmVxdWVzdE1hbmFnZXIoV0tDb250ZXh0R2V0U291cFJlcXVlc3RNYW5h
Z2VyKGNvbnRleHQpKQogewotICAgIEFTU0VSVChjb250ZXh0KTsKKyAgICBBU1NFUlQobV9zb3Vw
UmVxdWVzdE1hbmFnZXIpOwogCiAgICAgV0tTb3VwUmVxdWVzdE1hbmFnZXJDbGllbnQgd2tSZXF1
ZXN0TWFuYWdlckNsaWVudDsKICAgICBtZW1zZXQoJndrUmVxdWVzdE1hbmFnZXJDbGllbnQsIDAs
IHNpemVvZihXS1NvdXBSZXF1ZXN0TWFuYWdlckNsaWVudCkpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL2VmbC9SZXF1ZXN0TWFuYWdlckNsaWVudEVmbC5oIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL2VmbC9SZXF1ZXN0TWFuYWdlckNsaWVudEVmbC5oCmluZGV4IDM1
M2JjMjUuLmQyMWM4NmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwv
UmVxdWVzdE1hbmFnZXJDbGllbnRFZmwuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
ZWZsL1JlcXVlc3RNYW5hZ2VyQ2xpZW50RWZsLmgKQEAgLTM4LDcgKzM4LDcgQEAgbmFtZXNwYWNl
IFdlYktpdCB7CiBjbGFzcyBSZXF1ZXN0TWFuYWdlckNsaWVudEVmbCB7CiBwdWJsaWM6CiAgICAg
flJlcXVlc3RNYW5hZ2VyQ2xpZW50RWZsKCk7Ci0gICAgc3RhdGljIFBhc3NPd25QdHI8UmVxdWVz
dE1hbmFnZXJDbGllbnRFZmw+IGNyZWF0ZShFd2tDb250ZXh0KiBjb250ZXh0KQorICAgIHN0YXRp
YyBQYXNzT3duUHRyPFJlcXVlc3RNYW5hZ2VyQ2xpZW50RWZsPiBjcmVhdGUoV0tDb250ZXh0UmVm
IGNvbnRleHQpCiAgICAgewogICAgICAgICByZXR1cm4gYWRvcHRQdHIobmV3IFJlcXVlc3RNYW5h
Z2VyQ2xpZW50RWZsKGNvbnRleHQpKTsKICAgICB9CkBAIC00Niw3ICs0Niw3IEBAIHB1YmxpYzoK
ICAgICB2b2lkIHJlZ2lzdGVyVVJMU2NoZW1lSGFuZGxlcihjb25zdCBTdHJpbmcmIHNjaGVtZSwg
RXdrX1VybF9TY2hlbWVfUmVxdWVzdF9DYiBjYWxsYmFjaywgdm9pZCogdXNlckRhdGEpOwogCiBw
cml2YXRlOgotICAgIGV4cGxpY2l0IFJlcXVlc3RNYW5hZ2VyQ2xpZW50RWZsKEV3a0NvbnRleHQq
KTsKKyAgICBleHBsaWNpdCBSZXF1ZXN0TWFuYWdlckNsaWVudEVmbChXS0NvbnRleHRSZWYpOwog
CiAgICAgc3RhdGljIHZvaWQgZGlkUmVjZWl2ZVVSSVJlcXVlc3QoV0tTb3VwUmVxdWVzdE1hbmFn
ZXJSZWYsIFdLVVJMUmVmLCBXS1BhZ2VSZWYsIHVpbnQ2NF90IHJlcXVlc3RJRCwgY29uc3Qgdm9p
ZCogY2xpZW50SW5mbyk7CiAK
</data>
<flag name="review"
          id="202884"
          type_id="1"
          status="-"
          setter="benjamin"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>185419</attachid>
            <date>2013-01-30 00:48:30 -0800</date>
            <delta_ts>2013-01-30 07:03:09 -0800</delta_ts>
            <desc>patch v2</desc>
            <filename>bug107685_v2</filename>
            <type>text/plain</type>
            <size>11279</size>
            <attacher name="Mikhail Pozdnyakov">mikhail.pozdnyakov</attacher>
            
              <data encoding="base64">Y29tbWl0IGJkNmQxNjZlMDU0Yzg0NGI5NDU3YmZjZWVkZTRmMjUyZmM2NmU5ZmQKQXV0aG9yOiBN
aWtoYWlsIFBvemRueWFrb3YgPG1pa2hhaWwucG96ZG55YWtvdkBpbnRlbC5jb20+CkRhdGU6ICAg
V2VkIEphbiAyMyAxNjozNTowNSAyMDEzICswMjAwCgogICAgYnVnMTA3Njg1CgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmlu
ZGV4IGEzMjMyNzQuLjNjYWViMzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxv
ZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMyBAQAorMjAxMy0w
MS0yMyAgTWlraGFpbCBQb3pkbnlha292ICA8bWlraGFpbC5wb3pkbnlha292QGludGVsLmNvbT4K
KworICAgICAgICBbRUZMXVtXSzJdIFJlcXVlc3RNYW5hZ2VyQ2xpZW50RWZsLCBEb3dubG9hZE1h
bmFnZXJFZmwgYW5kIENvbnRleHRIaXN0b3J5Q2xpZW50RWZsIHNob3VsZCBiZSBiYXNlZCBvbiBD
IEFQSQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA3
Njg1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVx
dWVzdE1hbmFnZXJDbGllbnRFZmwsIERvd25sb2FkTWFuYWdlckVmbCBhbmQgQ29udGV4dEhpc3Rv
cnlDbGllbnRFZmwKKyAgICAgICAgc2hvdWxkIGJlIGJhc2VkIG9uIEMgQVBJIHNvIHRoYXQgQVBJ
IGxheWVyaW5nIGlzIG5vdCB2aW9sYXRlZC4KKworICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZWZs
L2V3a19jb250ZXh0LmNwcDoKKyAgICAgICAgKEV3a0NvbnRleHQ6OkV3a0NvbnRleHQpOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9lZmwvQ29udGV4dEhpc3RvcnlDbGllbnRFZmwuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpDb250ZXh0SGlzdG9yeUNsaWVudEVmbDo6Q29udGV4dEhpc3RvcnlDbGllbnRF
ZmwpOgorICAgICAgICAoV2ViS2l0OjpDb250ZXh0SGlzdG9yeUNsaWVudEVmbDo6fkNvbnRleHRI
aXN0b3J5Q2xpZW50RWZsKToKKyAgICAgICAgKiBVSVByb2Nlc3MvZWZsL0NvbnRleHRIaXN0b3J5
Q2xpZW50RWZsLmg6CisgICAgICAgIChXZWJLaXQ6OkNvbnRleHRIaXN0b3J5Q2xpZW50RWZsOjpj
cmVhdGUpOgorICAgICAgICAoQ29udGV4dEhpc3RvcnlDbGllbnRFZmwpOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9lZmwvRG93bmxvYWRNYW5hZ2VyRWZsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6RG93
bmxvYWRNYW5hZ2VyRWZsOjpEb3dubG9hZE1hbmFnZXJFZmwpOgorICAgICAgICAoV2ViS2l0OjpE
b3dubG9hZE1hbmFnZXJFZmw6On5Eb3dubG9hZE1hbmFnZXJFZmwpOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9lZmwvRG93bmxvYWRNYW5hZ2VyRWZsLmg6CisgICAgICAgIChXZWJLaXQ6OkRvd25sb2Fk
TWFuYWdlckVmbDo6Y3JlYXRlKToKKyAgICAgICAgKERvd25sb2FkTWFuYWdlckVmbCk6CisgICAg
ICAgICogVUlQcm9jZXNzL2VmbC9SZXF1ZXN0TWFuYWdlckNsaWVudEVmbC5jcHA6CisgICAgICAg
IChXZWJLaXQ6OlJlcXVlc3RNYW5hZ2VyQ2xpZW50RWZsOjpSZXF1ZXN0TWFuYWdlckNsaWVudEVm
bCk6CisgICAgICAgICogVUlQcm9jZXNzL2VmbC9SZXF1ZXN0TWFuYWdlckNsaWVudEVmbC5oOgor
ICAgICAgICAoV2ViS2l0OjpSZXF1ZXN0TWFuYWdlckNsaWVudEVmbDo6Y3JlYXRlKToKKyAgICAg
ICAgKFJlcXVlc3RNYW5hZ2VyQ2xpZW50RWZsKToKKwogMjAxMy0wMS0zMCAgSHVhbmcgRG9uZ3N1
bmcgIDxsdXh0ZWxsYUBjb21wYW55MTAwLm5ldD4KIAogICAgICAgICBDb29yZGluYXRlZCBHcmFw
aGljczogUmVtb3ZlIG1fcGVuZGluZ1N5bmNCYWNraW5nU3RvcmVzIGluIExheWVyVHJlZVJlbmRl
cmVyLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2Nv
bnRleHQuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2NvbnRleHQu
Y3BwCmluZGV4IDc5YzdiODIzLi5jODc4NWQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL2VmbC9ld2tfY29udGV4dC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9lZmwvZXdrX2NvbnRleHQuY3BwCkBAIC03NCw5ICs3NCw5IEBAIEV3a0NvbnRl
eHQ6OkV3a0NvbnRleHQoUGFzc1JlZlB0cjxXZWJDb250ZXh0PiBjb250ZXh0KQogI2lmIEVOQUJM
RShORVRXT1JLX0lORk8pCiAgICAgLCBtX25ldHdvcmtJbmZvUHJvdmlkZXIoTmV0d29ya0luZm9Q
cm92aWRlcjo6Y3JlYXRlKG1fY29udGV4dCkpCiAjZW5kaWYKLSAgICAsIG1fZG93bmxvYWRNYW5h
Z2VyKERvd25sb2FkTWFuYWdlckVmbDo6Y3JlYXRlKHRoaXMpKQotICAgICwgbV9yZXF1ZXN0TWFu
YWdlckNsaWVudChSZXF1ZXN0TWFuYWdlckNsaWVudEVmbDo6Y3JlYXRlKHRoaXMpKQotICAgICwg
bV9oaXN0b3J5Q2xpZW50KENvbnRleHRIaXN0b3J5Q2xpZW50RWZsOjpjcmVhdGUobV9jb250ZXh0
KSkKKyAgICAsIG1fZG93bmxvYWRNYW5hZ2VyKERvd25sb2FkTWFuYWdlckVmbDo6Y3JlYXRlKHRv
QVBJKG1fY29udGV4dC5nZXQoKSkpKQorICAgICwgbV9yZXF1ZXN0TWFuYWdlckNsaWVudChSZXF1
ZXN0TWFuYWdlckNsaWVudEVmbDo6Y3JlYXRlKHRvQVBJKG1fY29udGV4dC5nZXQoKSkpKQorICAg
ICwgbV9oaXN0b3J5Q2xpZW50KENvbnRleHRIaXN0b3J5Q2xpZW50RWZsOjpjcmVhdGUodG9BUEko
bV9jb250ZXh0LmdldCgpKSkpCiB7CiAgICAgQ29udGV4dE1hcDo6QWRkUmVzdWx0IHJlc3VsdCA9
IGNvbnRleHRNYXAoKS5hZGQobV9jb250ZXh0LmdldCgpLCB0aGlzKTsKICAgICBBU1NFUlRfVU5V
U0VEKHJlc3VsdCwgcmVzdWx0LmlzTmV3RW50cnkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL2VmbC9Db250ZXh0SGlzdG9yeUNsaWVudEVmbC5jcHAgYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvZWZsL0NvbnRleHRIaXN0b3J5Q2xpZW50RWZsLmNwcAppbmRleCBiZWFj
N2M5Li4yNTllNDEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZsL0Nv
bnRleHRIaXN0b3J5Q2xpZW50RWZsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
ZWZsL0NvbnRleHRIaXN0b3J5Q2xpZW50RWZsLmNwcApAQCAtMjYsNyArMjYsNiBAQAogI2luY2x1
ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkNvbnRleHRIaXN0b3J5Q2xpZW50RWZsLmgiCiAKLSNp
bmNsdWRlICJEb3dubG9hZFByb3h5LmgiCiAjaW5jbHVkZSAiRXdrVmlldy5oIgogI2luY2x1ZGUg
IldLQVBJQ2FzdC5oIgogI2luY2x1ZGUgIldLQ29udGV4dC5oIgpAQCAtMTA2LDcgKzEwNSw3IEBA
IHZvaWQgQ29udGV4dEhpc3RvcnlDbGllbnRFZmw6OnBvcHVsYXRlVmlzaXRlZExpbmtzKFdLQ29u
dGV4dFJlZiwgY29uc3Qgdm9pZCogY2xpCiAgICAgaGlzdG9yeUNsaWVudC0+bV9wb3B1bGF0ZVZp
c2l0ZWRMaW5rcyhoaXN0b3J5Q2xpZW50LT5tX3VzZXJEYXRhKTsKIH0KIAotQ29udGV4dEhpc3Rv
cnlDbGllbnRFZmw6OkNvbnRleHRIaXN0b3J5Q2xpZW50RWZsKFBhc3NSZWZQdHI8V2ViQ29udGV4
dD4gY29udGV4dCkKK0NvbnRleHRIaXN0b3J5Q2xpZW50RWZsOjpDb250ZXh0SGlzdG9yeUNsaWVu
dEVmbChXS0NvbnRleHRSZWYgY29udGV4dCkKICAgICA6IG1fY29udGV4dChjb250ZXh0KQogICAg
ICwgbV91c2VyRGF0YSgwKQogICAgICwgbV9uYXZpZ2F0ZSgwKQpAQCAtMTI5LDEyICsxMjgsMTIg
QEAgQ29udGV4dEhpc3RvcnlDbGllbnRFZmw6OkNvbnRleHRIaXN0b3J5Q2xpZW50RWZsKFBhc3NS
ZWZQdHI8V2ViQ29udGV4dD4gY29udGV4dCkKICAgICB3a0hpc3RvcnlDbGllbnQuZGlkVXBkYXRl
SGlzdG9yeVRpdGxlID0gZGlkVXBkYXRlSGlzdG9yeVRpdGxlOwogICAgIHdrSGlzdG9yeUNsaWVu
dC5wb3B1bGF0ZVZpc2l0ZWRMaW5rcyA9IHBvcHVsYXRlVmlzaXRlZExpbmtzOwogCi0gICAgbV9j
b250ZXh0LT5pbml0aWFsaXplSGlzdG9yeUNsaWVudCgmd2tIaXN0b3J5Q2xpZW50KTsKKyAgICBX
S0NvbnRleHRTZXRIaXN0b3J5Q2xpZW50KG1fY29udGV4dC5nZXQoKSwgJndrSGlzdG9yeUNsaWVu
dCk7CiB9CiAKIENvbnRleHRIaXN0b3J5Q2xpZW50RWZsOjp+Q29udGV4dEhpc3RvcnlDbGllbnRF
ZmwoKQogewotICAgIG1fY29udGV4dC0+aW5pdGlhbGl6ZUhpc3RvcnlDbGllbnQoMCk7CisgICAg
V0tDb250ZXh0U2V0SGlzdG9yeUNsaWVudChtX2NvbnRleHQuZ2V0KCksIDApOwogfQogCiB2b2lk
IENvbnRleHRIaXN0b3J5Q2xpZW50RWZsOjpzZXRDYWxsYmFja3MoRXdrX0hpc3RvcnlfTmF2aWdh
dGlvbl9DYiBuYXZpZ2F0ZSwgRXdrX0hpc3RvcnlfQ2xpZW50X1JlZGlyZWN0aW9uX0NiIGNsaWVu
dFJlZGlyZWN0LCBFd2tfSGlzdG9yeV9TZXJ2ZXJfUmVkaXJlY3Rpb25fQ2Igc2VydmVyUmVkaXJl
Y3QsIEV3a19IaXN0b3J5X1RpdGxlX1VwZGF0ZV9DYiB0aXRsZVVwZGF0ZSwgRXdrX0hpc3Rvcnlf
UG9wdWxhdGVfVmlzaXRlZF9MaW5rc19DYiBwb3B1bGF0ZVZpc2l0ZWRMaW5rcywgdm9pZCogZGF0
YSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvQ29udGV4dEhpc3Rv
cnlDbGllbnRFZmwuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvQ29udGV4dEhpc3Rv
cnlDbGllbnRFZmwuaAppbmRleCBjN2IzYTIwLi5mZmViZmFiIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvZWZsL0NvbnRleHRIaXN0b3J5Q2xpZW50RWZsLmgKKysrIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL2VmbC9Db250ZXh0SGlzdG9yeUNsaWVudEVmbC5oCkBAIC0y
NiwxNiArMjYsMTYgQEAKICNpZm5kZWYgQ29udGV4dEhpc3RvcnlDbGllbnRFZmxfaAogI2RlZmlu
ZSBDb250ZXh0SGlzdG9yeUNsaWVudEVmbF9oCiAKLSNpbmNsdWRlICJXZWJDb250ZXh0LmgiCiAj
aW5jbHVkZSAiZXdrX2NvbnRleHQuaCIKICNpbmNsdWRlIDxXZWJLaXQyL1dLQmFzZS5oPgorI2lu
Y2x1ZGUgPFdlYktpdDIvV0tSZXRhaW5QdHIuaD4KICNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5o
PgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogY2xhc3MgQ29udGV4dEhpc3RvcnlDbGllbnRFZmwg
ewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzT3duUHRyPENvbnRleHRIaXN0b3J5Q2xpZW50RWZs
PiBjcmVhdGUoUGFzc1JlZlB0cjxXZWJDb250ZXh0PiBjb250ZXh0KQorICAgIHN0YXRpYyBQYXNz
T3duUHRyPENvbnRleHRIaXN0b3J5Q2xpZW50RWZsPiBjcmVhdGUoV0tDb250ZXh0UmVmIGNvbnRl
eHQpCiAgICAgewogICAgICAgICByZXR1cm4gYWRvcHRQdHIobmV3IENvbnRleHRIaXN0b3J5Q2xp
ZW50RWZsKGNvbnRleHQpKTsKICAgICB9CkBAIC00NSw3ICs0NSw3IEBAIHB1YmxpYzoKICAgICB2
b2lkIHNldENhbGxiYWNrcyhFd2tfSGlzdG9yeV9OYXZpZ2F0aW9uX0NiLCBFd2tfSGlzdG9yeV9D
bGllbnRfUmVkaXJlY3Rpb25fQ2IsIEV3a19IaXN0b3J5X1NlcnZlcl9SZWRpcmVjdGlvbl9DYiwg
RXdrX0hpc3RvcnlfVGl0bGVfVXBkYXRlX0NiLCBFd2tfSGlzdG9yeV9Qb3B1bGF0ZV9WaXNpdGVk
X0xpbmtzX0NiLCB2b2lkKik7CiAKIHByaXZhdGU6Ci0gICAgZXhwbGljaXQgQ29udGV4dEhpc3Rv
cnlDbGllbnRFZmwoUGFzc1JlZlB0cjxXZWJDb250ZXh0Pik7CisgICAgZXhwbGljaXQgQ29udGV4
dEhpc3RvcnlDbGllbnRFZmwoV0tDb250ZXh0UmVmKTsKIAogICAgIHN0YXRpYyB2b2lkIGRpZE5h
dmlnYXRlV2l0aE5hdmlnYXRpb25EYXRhKFdLQ29udGV4dFJlZiwgV0tQYWdlUmVmLCBXS05hdmln
YXRpb25EYXRhUmVmLCBXS0ZyYW1lUmVmLCBjb25zdCB2b2lkKik7CiAgICAgc3RhdGljIHZvaWQg
ZGlkUGVyZm9ybUNsaWVudFJlZGlyZWN0KFdLQ29udGV4dFJlZiwgV0tQYWdlUmVmLCBXS1VSTFJl
ZiBzb3VyY2VVUkwsIFdLVVJMUmVmLCBXS0ZyYW1lUmVmLCBjb25zdCB2b2lkKik7CkBAIC01Myw3
ICs1Myw3IEBAIHByaXZhdGU6CiAgICAgc3RhdGljIHZvaWQgZGlkVXBkYXRlSGlzdG9yeVRpdGxl
KFdLQ29udGV4dFJlZiwgV0tQYWdlUmVmLCBXS1N0cmluZ1JlZiwgV0tVUkxSZWYsIFdLRnJhbWVS
ZWYsIGNvbnN0IHZvaWQqKTsKICAgICBzdGF0aWMgdm9pZCBwb3B1bGF0ZVZpc2l0ZWRMaW5rcyhX
S0NvbnRleHRSZWYsIGNvbnN0IHZvaWQqKTsKIAotICAgIFJlZlB0cjxXZWJDb250ZXh0PiBtX2Nv
bnRleHQ7CisgICAgV0tSZXRhaW5QdHI8V0tDb250ZXh0UmVmPiBtX2NvbnRleHQ7CiAgICAgdm9p
ZCogbV91c2VyRGF0YTsKICAgICBFd2tfSGlzdG9yeV9OYXZpZ2F0aW9uX0NiIG1fbmF2aWdhdGU7
CiAgICAgRXdrX0hpc3RvcnlfQ2xpZW50X1JlZGlyZWN0aW9uX0NiIG1fY2xpZW50UmVkaXJlY3Q7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZsL0Rvd25sb2FkTWFuYWdl
ckVmbC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZsL0Rvd25sb2FkTWFuYWdlckVm
bC5jcHAKaW5kZXggODljM2UyZi4uYjFlYjBmYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL2VmbC9Eb3dubG9hZE1hbmFnZXJFZmwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9lZmwvRG93bmxvYWRNYW5hZ2VyRWZsLmNwcApAQCAtMTE3LDcgKzExNyw3IEBA
IHZvaWQgRG93bmxvYWRNYW5hZ2VyRWZsOjpkaWRGaW5pc2goV0tDb250ZXh0UmVmLCBXS0Rvd25s
b2FkUmVmIHdrRG93bmxvYWQsIGNvbnN0CiAgICAgZG93bmxvYWRNYW5hZ2VyLT51bnJlZ2lzdGVy
RG93bmxvYWRKb2Iod2tEb3dubG9hZCk7CiB9CiAKLURvd25sb2FkTWFuYWdlckVmbDo6RG93bmxv
YWRNYW5hZ2VyRWZsKEV3a0NvbnRleHQqIGNvbnRleHQpCitEb3dubG9hZE1hbmFnZXJFZmw6OkRv
d25sb2FkTWFuYWdlckVmbChXS0NvbnRleHRSZWYgY29udGV4dCkKICAgICA6IG1fY29udGV4dChj
b250ZXh0KQogewogICAgIFdLQ29udGV4dERvd25sb2FkQ2xpZW50IHdrRG93bmxvYWRDbGllbnQ7
CkBAIC0xMzMsMTIgKzEzMywxMiBAQCBEb3dubG9hZE1hbmFnZXJFZmw6OkRvd25sb2FkTWFuYWdl
ckVmbChFd2tDb250ZXh0KiBjb250ZXh0KQogICAgIHdrRG93bmxvYWRDbGllbnQuZGlkRmFpbCA9
IGRpZEZhaWw7CiAgICAgd2tEb3dubG9hZENsaWVudC5kaWRGaW5pc2ggPSBkaWRGaW5pc2g7CiAK
LSAgICBXS0NvbnRleHRTZXREb3dubG9hZENsaWVudCh0b0FQSShjb250ZXh0LT53ZWJDb250ZXh0
KCkuZ2V0KCkpLCAmd2tEb3dubG9hZENsaWVudCk7CisgICAgV0tDb250ZXh0U2V0RG93bmxvYWRD
bGllbnQobV9jb250ZXh0LmdldCgpLCAmd2tEb3dubG9hZENsaWVudCk7CiB9CiAKIERvd25sb2Fk
TWFuYWdlckVmbDo6fkRvd25sb2FkTWFuYWdlckVmbCgpCiB7Ci0gICAgV0tDb250ZXh0U2V0RG93
bmxvYWRDbGllbnQodG9BUEkobV9jb250ZXh0LT53ZWJDb250ZXh0KCkuZ2V0KCkpLCAwKTsKKyAg
ICBXS0NvbnRleHRTZXREb3dubG9hZENsaWVudChtX2NvbnRleHQuZ2V0KCksIDApOwogfQogCiB2
b2lkIERvd25sb2FkTWFuYWdlckVmbDo6cmVnaXN0ZXJEb3dubG9hZEpvYihXS0Rvd25sb2FkUmVm
IGRvd25sb2FkLCBFd2tWaWV3KiB2aWV3SW1wbCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9lZmwvRG93bmxvYWRNYW5hZ2VyRWZsLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvZWZsL0Rvd25sb2FkTWFuYWdlckVmbC5oCmluZGV4IDI4M2RhYTQuLjAzMTdhOWQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvRG93bmxvYWRNYW5hZ2VyRWZs
LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2VmbC9Eb3dubG9hZE1hbmFnZXJFZmwu
aApAQCAtMjcsMTggKzI3LDE2IEBACiAjZGVmaW5lIERvd25sb2FkTWFuYWdlckVmbF9oCiAKICNp
bmNsdWRlICJld2tfZG93bmxvYWRfam9iX3ByaXZhdGUuaCIKKyNpbmNsdWRlIDxXZWJLaXQyL1dL
UmV0YWluUHRyLmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KICNpbmNsdWRlIDx3dGYvUGFz
c093blB0ci5oPgogI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KIAotY2xhc3MgRXdrQ29udGV4dDsK
LWNsYXNzIEV3a0Rvd25sb2FkSm9iOwotCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogY2xhc3MgRG93
bmxvYWRNYW5hZ2VyRWZsIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc093blB0cjxEb3dubG9h
ZE1hbmFnZXJFZmw+IGNyZWF0ZShFd2tDb250ZXh0KiBjb250ZXh0KQorICAgIHN0YXRpYyBQYXNz
T3duUHRyPERvd25sb2FkTWFuYWdlckVmbD4gY3JlYXRlKFdLQ29udGV4dFJlZiBjb250ZXh0KQog
ICAgIHsKICAgICAgICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBEb3dubG9hZE1hbmFnZXJFZmwoY29u
dGV4dCkpOwogICAgIH0KQEAgLTQ4LDcgKzQ2LDcgQEAgcHVibGljOgogICAgIHZvaWQgcmVnaXN0
ZXJEb3dubG9hZEpvYihXS0Rvd25sb2FkUmVmLCBFd2tWaWV3Kik7CiAKIHByaXZhdGU6Ci0gICAg
ZXhwbGljaXQgRG93bmxvYWRNYW5hZ2VyRWZsKEV3a0NvbnRleHQqKTsKKyAgICBleHBsaWNpdCBE
b3dubG9hZE1hbmFnZXJFZmwoV0tDb250ZXh0UmVmKTsKIAogICAgIEV3a0Rvd25sb2FkSm9iKiBl
d2tEb3dubG9hZEpvYihXS0Rvd25sb2FkUmVmKTsKICAgICB2b2lkIHVucmVnaXN0ZXJEb3dubG9h
ZEpvYihXS0Rvd25sb2FkUmVmKTsKQEAgLTYxLDcgKzU5LDcgQEAgcHJpdmF0ZToKICAgICBzdGF0
aWMgdm9pZCBkaWRDYW5jZWwoV0tDb250ZXh0UmVmLCBXS0Rvd25sb2FkUmVmLCBjb25zdCB2b2lk
KiBjbGllbnRJbmZvKTsKICAgICBzdGF0aWMgdm9pZCBkaWRGaW5pc2goV0tDb250ZXh0UmVmLCBX
S0Rvd25sb2FkUmVmLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKTsKIAotICAgIEV3a0NvbnRleHQq
IG1fY29udGV4dDsKKyAgICBXS1JldGFpblB0cjxXS0NvbnRleHRSZWY+IG1fY29udGV4dDsKICAg
ICBIYXNoTWFwPHVpbnQ2NF90LCBSZWZQdHI8RXdrRG93bmxvYWRKb2I+ID4gbV9kb3dubG9hZEpv
YnM7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZsL1JlcXVl
c3RNYW5hZ2VyQ2xpZW50RWZsLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvUmVx
dWVzdE1hbmFnZXJDbGllbnRFZmwuY3BwCmluZGV4IGUyMWQ2OTkuLjBhOWM4ZjAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvUmVxdWVzdE1hbmFnZXJDbGllbnRFZmwu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvUmVxdWVzdE1hbmFnZXJDbGll
bnRFZmwuY3BwCkBAIC02NiwxMCArNjYsMTAgQEAgdm9pZCBSZXF1ZXN0TWFuYWdlckNsaWVudEVm
bDo6ZGlkUmVjZWl2ZVVSSVJlcXVlc3QoV0tTb3VwUmVxdWVzdE1hbmFnZXJSZWYgc291cFIKICAg
ICBoYW5kbGVyLmNhbGxiYWNrKHNjaGVtZVJlcXVlc3QuZ2V0KCksIGhhbmRsZXIudXNlckRhdGEp
OwogfQogCi1SZXF1ZXN0TWFuYWdlckNsaWVudEVmbDo6UmVxdWVzdE1hbmFnZXJDbGllbnRFZmwo
RXdrQ29udGV4dCogY29udGV4dCkKLSAgICA6IG1fc291cFJlcXVlc3RNYW5hZ2VyKFdLQ29udGV4
dEdldFNvdXBSZXF1ZXN0TWFuYWdlcih0b0FQSShjb250ZXh0LT53ZWJDb250ZXh0KCkuZ2V0KCkp
KSkKK1JlcXVlc3RNYW5hZ2VyQ2xpZW50RWZsOjpSZXF1ZXN0TWFuYWdlckNsaWVudEVmbChXS0Nv
bnRleHRSZWYgY29udGV4dCkKKyAgICA6IG1fc291cFJlcXVlc3RNYW5hZ2VyKFdLQ29udGV4dEdl
dFNvdXBSZXF1ZXN0TWFuYWdlcihjb250ZXh0KSkKIHsKLSAgICBBU1NFUlQoY29udGV4dCk7Cisg
ICAgQVNTRVJUKG1fc291cFJlcXVlc3RNYW5hZ2VyKTsKIAogICAgIFdLU291cFJlcXVlc3RNYW5h
Z2VyQ2xpZW50IHdrUmVxdWVzdE1hbmFnZXJDbGllbnQ7CiAgICAgbWVtc2V0KCZ3a1JlcXVlc3RN
YW5hZ2VyQ2xpZW50LCAwLCBzaXplb2YoV0tTb3VwUmVxdWVzdE1hbmFnZXJDbGllbnQpKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvUmVxdWVzdE1hbmFnZXJDbGll
bnRFZmwuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvUmVxdWVzdE1hbmFnZXJDbGll
bnRFZmwuaAppbmRleCAzNTNiYzI1Li5jZDZmMjI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvZWZsL1JlcXVlc3RNYW5hZ2VyQ2xpZW50RWZsLmgKKysrIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL2VmbC9SZXF1ZXN0TWFuYWdlckNsaWVudEVmbC5oCkBAIC0yNiw5ICsy
Niw5IEBACiAjaWZuZGVmIFJlcXVlc3RNYW5hZ2VyQ2xpZW50RWZsX2gKICNkZWZpbmUgUmVxdWVz
dE1hbmFnZXJDbGllbnRFZmxfaAogCi0jaW5jbHVkZSAiV0tSZXRhaW5QdHIuaCIKICNpbmNsdWRl
ICJld2tfY29udGV4dF9wcml2YXRlLmgiCiAjaW5jbHVkZSA8V2ViS2l0Mi9XS0Jhc2UuaD4KKyNp
bmNsdWRlIDxXZWJLaXQyL1dLUmV0YWluUHRyLmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4K
ICNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmlu
Zy5oPgpAQCAtMzgsNyArMzgsNyBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIGNsYXNzIFJlcXVlc3RN
YW5hZ2VyQ2xpZW50RWZsIHsKIHB1YmxpYzoKICAgICB+UmVxdWVzdE1hbmFnZXJDbGllbnRFZmwo
KTsKLSAgICBzdGF0aWMgUGFzc093blB0cjxSZXF1ZXN0TWFuYWdlckNsaWVudEVmbD4gY3JlYXRl
KEV3a0NvbnRleHQqIGNvbnRleHQpCisgICAgc3RhdGljIFBhc3NPd25QdHI8UmVxdWVzdE1hbmFn
ZXJDbGllbnRFZmw+IGNyZWF0ZShXS0NvbnRleHRSZWYgY29udGV4dCkKICAgICB7CiAgICAgICAg
IHJldHVybiBhZG9wdFB0cihuZXcgUmVxdWVzdE1hbmFnZXJDbGllbnRFZmwoY29udGV4dCkpOwog
ICAgIH0KQEAgLTQ2LDcgKzQ2LDcgQEAgcHVibGljOgogICAgIHZvaWQgcmVnaXN0ZXJVUkxTY2hl
bWVIYW5kbGVyKGNvbnN0IFN0cmluZyYgc2NoZW1lLCBFd2tfVXJsX1NjaGVtZV9SZXF1ZXN0X0Ni
IGNhbGxiYWNrLCB2b2lkKiB1c2VyRGF0YSk7CiAKIHByaXZhdGU6Ci0gICAgZXhwbGljaXQgUmVx
dWVzdE1hbmFnZXJDbGllbnRFZmwoRXdrQ29udGV4dCopOworICAgIGV4cGxpY2l0IFJlcXVlc3RN
YW5hZ2VyQ2xpZW50RWZsKFdLQ29udGV4dFJlZik7CiAKICAgICBzdGF0aWMgdm9pZCBkaWRSZWNl
aXZlVVJJUmVxdWVzdChXS1NvdXBSZXF1ZXN0TWFuYWdlclJlZiwgV0tVUkxSZWYsIFdLUGFnZVJl
ZiwgdWludDY0X3QgcmVxdWVzdElELCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKTsKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>185498</attachid>
            <date>2013-01-30 07:03:09 -0800</date>
            <delta_ts>2013-01-30 12:55:34 -0800</delta_ts>
            <desc>patch v3</desc>
            <filename>bug107685_v3</filename>
            <type>text/plain</type>
            <size>11686</size>
            <attacher name="Mikhail Pozdnyakov">mikhail.pozdnyakov</attacher>
            
              <data encoding="base64">Y29tbWl0IDIzNDU4NzhiYzY2Y2I1ZWI5ODg5NGI2MzY5Y2RhNTBlZjlkYWQ0MmUKQXV0aG9yOiBN
aWtoYWlsIFBvemRueWFrb3YgPG1pa2hhaWwucG96ZG55YWtvdkBpbnRlbC5jb20+CkRhdGU6ICAg
V2VkIEphbiAyMyAxNjozNTowNSAyMDEzICswMjAwCgogICAgYnVnMTA3Njg1CgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmlu
ZGV4IGEzMjMyNzQuLjNjYWViMzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxv
ZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMyBAQAorMjAxMy0w
MS0yMyAgTWlraGFpbCBQb3pkbnlha292ICA8bWlraGFpbC5wb3pkbnlha292QGludGVsLmNvbT4K
KworICAgICAgICBbRUZMXVtXSzJdIFJlcXVlc3RNYW5hZ2VyQ2xpZW50RWZsLCBEb3dubG9hZE1h
bmFnZXJFZmwgYW5kIENvbnRleHRIaXN0b3J5Q2xpZW50RWZsIHNob3VsZCBiZSBiYXNlZCBvbiBD
IEFQSQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA3
Njg1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVx
dWVzdE1hbmFnZXJDbGllbnRFZmwsIERvd25sb2FkTWFuYWdlckVmbCBhbmQgQ29udGV4dEhpc3Rv
cnlDbGllbnRFZmwKKyAgICAgICAgc2hvdWxkIGJlIGJhc2VkIG9uIEMgQVBJIHNvIHRoYXQgQVBJ
IGxheWVyaW5nIGlzIG5vdCB2aW9sYXRlZC4KKworICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZWZs
L2V3a19jb250ZXh0LmNwcDoKKyAgICAgICAgKEV3a0NvbnRleHQ6OkV3a0NvbnRleHQpOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9lZmwvQ29udGV4dEhpc3RvcnlDbGllbnRFZmwuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpDb250ZXh0SGlzdG9yeUNsaWVudEVmbDo6Q29udGV4dEhpc3RvcnlDbGllbnRF
ZmwpOgorICAgICAgICAoV2ViS2l0OjpDb250ZXh0SGlzdG9yeUNsaWVudEVmbDo6fkNvbnRleHRI
aXN0b3J5Q2xpZW50RWZsKToKKyAgICAgICAgKiBVSVByb2Nlc3MvZWZsL0NvbnRleHRIaXN0b3J5
Q2xpZW50RWZsLmg6CisgICAgICAgIChXZWJLaXQ6OkNvbnRleHRIaXN0b3J5Q2xpZW50RWZsOjpj
cmVhdGUpOgorICAgICAgICAoQ29udGV4dEhpc3RvcnlDbGllbnRFZmwpOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9lZmwvRG93bmxvYWRNYW5hZ2VyRWZsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6RG93
bmxvYWRNYW5hZ2VyRWZsOjpEb3dubG9hZE1hbmFnZXJFZmwpOgorICAgICAgICAoV2ViS2l0OjpE
b3dubG9hZE1hbmFnZXJFZmw6On5Eb3dubG9hZE1hbmFnZXJFZmwpOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9lZmwvRG93bmxvYWRNYW5hZ2VyRWZsLmg6CisgICAgICAgIChXZWJLaXQ6OkRvd25sb2Fk
TWFuYWdlckVmbDo6Y3JlYXRlKToKKyAgICAgICAgKERvd25sb2FkTWFuYWdlckVmbCk6CisgICAg
ICAgICogVUlQcm9jZXNzL2VmbC9SZXF1ZXN0TWFuYWdlckNsaWVudEVmbC5jcHA6CisgICAgICAg
IChXZWJLaXQ6OlJlcXVlc3RNYW5hZ2VyQ2xpZW50RWZsOjpSZXF1ZXN0TWFuYWdlckNsaWVudEVm
bCk6CisgICAgICAgICogVUlQcm9jZXNzL2VmbC9SZXF1ZXN0TWFuYWdlckNsaWVudEVmbC5oOgor
ICAgICAgICAoV2ViS2l0OjpSZXF1ZXN0TWFuYWdlckNsaWVudEVmbDo6Y3JlYXRlKToKKyAgICAg
ICAgKFJlcXVlc3RNYW5hZ2VyQ2xpZW50RWZsKToKKwogMjAxMy0wMS0zMCAgSHVhbmcgRG9uZ3N1
bmcgIDxsdXh0ZWxsYUBjb21wYW55MTAwLm5ldD4KIAogICAgICAgICBDb29yZGluYXRlZCBHcmFw
aGljczogUmVtb3ZlIG1fcGVuZGluZ1N5bmNCYWNraW5nU3RvcmVzIGluIExheWVyVHJlZVJlbmRl
cmVyLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2Nv
bnRleHQuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2NvbnRleHQu
Y3BwCmluZGV4IDc5YzdiODIzLi5jODc4NWQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL2VmbC9ld2tfY29udGV4dC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9lZmwvZXdrX2NvbnRleHQuY3BwCkBAIC03NCw5ICs3NCw5IEBAIEV3a0NvbnRl
eHQ6OkV3a0NvbnRleHQoUGFzc1JlZlB0cjxXZWJDb250ZXh0PiBjb250ZXh0KQogI2lmIEVOQUJM
RShORVRXT1JLX0lORk8pCiAgICAgLCBtX25ldHdvcmtJbmZvUHJvdmlkZXIoTmV0d29ya0luZm9Q
cm92aWRlcjo6Y3JlYXRlKG1fY29udGV4dCkpCiAjZW5kaWYKLSAgICAsIG1fZG93bmxvYWRNYW5h
Z2VyKERvd25sb2FkTWFuYWdlckVmbDo6Y3JlYXRlKHRoaXMpKQotICAgICwgbV9yZXF1ZXN0TWFu
YWdlckNsaWVudChSZXF1ZXN0TWFuYWdlckNsaWVudEVmbDo6Y3JlYXRlKHRoaXMpKQotICAgICwg
bV9oaXN0b3J5Q2xpZW50KENvbnRleHRIaXN0b3J5Q2xpZW50RWZsOjpjcmVhdGUobV9jb250ZXh0
KSkKKyAgICAsIG1fZG93bmxvYWRNYW5hZ2VyKERvd25sb2FkTWFuYWdlckVmbDo6Y3JlYXRlKHRv
QVBJKG1fY29udGV4dC5nZXQoKSkpKQorICAgICwgbV9yZXF1ZXN0TWFuYWdlckNsaWVudChSZXF1
ZXN0TWFuYWdlckNsaWVudEVmbDo6Y3JlYXRlKHRvQVBJKG1fY29udGV4dC5nZXQoKSkpKQorICAg
ICwgbV9oaXN0b3J5Q2xpZW50KENvbnRleHRIaXN0b3J5Q2xpZW50RWZsOjpjcmVhdGUodG9BUEko
bV9jb250ZXh0LmdldCgpKSkpCiB7CiAgICAgQ29udGV4dE1hcDo6QWRkUmVzdWx0IHJlc3VsdCA9
IGNvbnRleHRNYXAoKS5hZGQobV9jb250ZXh0LmdldCgpLCB0aGlzKTsKICAgICBBU1NFUlRfVU5V
U0VEKHJlc3VsdCwgcmVzdWx0LmlzTmV3RW50cnkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL2VmbC9Db250ZXh0SGlzdG9yeUNsaWVudEVmbC5jcHAgYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvZWZsL0NvbnRleHRIaXN0b3J5Q2xpZW50RWZsLmNwcAppbmRleCBiZWFj
N2M5Li4yNTllNDEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZsL0Nv
bnRleHRIaXN0b3J5Q2xpZW50RWZsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
ZWZsL0NvbnRleHRIaXN0b3J5Q2xpZW50RWZsLmNwcApAQCAtMjYsNyArMjYsNiBAQAogI2luY2x1
ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkNvbnRleHRIaXN0b3J5Q2xpZW50RWZsLmgiCiAKLSNp
bmNsdWRlICJEb3dubG9hZFByb3h5LmgiCiAjaW5jbHVkZSAiRXdrVmlldy5oIgogI2luY2x1ZGUg
IldLQVBJQ2FzdC5oIgogI2luY2x1ZGUgIldLQ29udGV4dC5oIgpAQCAtMTA2LDcgKzEwNSw3IEBA
IHZvaWQgQ29udGV4dEhpc3RvcnlDbGllbnRFZmw6OnBvcHVsYXRlVmlzaXRlZExpbmtzKFdLQ29u
dGV4dFJlZiwgY29uc3Qgdm9pZCogY2xpCiAgICAgaGlzdG9yeUNsaWVudC0+bV9wb3B1bGF0ZVZp
c2l0ZWRMaW5rcyhoaXN0b3J5Q2xpZW50LT5tX3VzZXJEYXRhKTsKIH0KIAotQ29udGV4dEhpc3Rv
cnlDbGllbnRFZmw6OkNvbnRleHRIaXN0b3J5Q2xpZW50RWZsKFBhc3NSZWZQdHI8V2ViQ29udGV4
dD4gY29udGV4dCkKK0NvbnRleHRIaXN0b3J5Q2xpZW50RWZsOjpDb250ZXh0SGlzdG9yeUNsaWVu
dEVmbChXS0NvbnRleHRSZWYgY29udGV4dCkKICAgICA6IG1fY29udGV4dChjb250ZXh0KQogICAg
ICwgbV91c2VyRGF0YSgwKQogICAgICwgbV9uYXZpZ2F0ZSgwKQpAQCAtMTI5LDEyICsxMjgsMTIg
QEAgQ29udGV4dEhpc3RvcnlDbGllbnRFZmw6OkNvbnRleHRIaXN0b3J5Q2xpZW50RWZsKFBhc3NS
ZWZQdHI8V2ViQ29udGV4dD4gY29udGV4dCkKICAgICB3a0hpc3RvcnlDbGllbnQuZGlkVXBkYXRl
SGlzdG9yeVRpdGxlID0gZGlkVXBkYXRlSGlzdG9yeVRpdGxlOwogICAgIHdrSGlzdG9yeUNsaWVu
dC5wb3B1bGF0ZVZpc2l0ZWRMaW5rcyA9IHBvcHVsYXRlVmlzaXRlZExpbmtzOwogCi0gICAgbV9j
b250ZXh0LT5pbml0aWFsaXplSGlzdG9yeUNsaWVudCgmd2tIaXN0b3J5Q2xpZW50KTsKKyAgICBX
S0NvbnRleHRTZXRIaXN0b3J5Q2xpZW50KG1fY29udGV4dC5nZXQoKSwgJndrSGlzdG9yeUNsaWVu
dCk7CiB9CiAKIENvbnRleHRIaXN0b3J5Q2xpZW50RWZsOjp+Q29udGV4dEhpc3RvcnlDbGllbnRF
ZmwoKQogewotICAgIG1fY29udGV4dC0+aW5pdGlhbGl6ZUhpc3RvcnlDbGllbnQoMCk7CisgICAg
V0tDb250ZXh0U2V0SGlzdG9yeUNsaWVudChtX2NvbnRleHQuZ2V0KCksIDApOwogfQogCiB2b2lk
IENvbnRleHRIaXN0b3J5Q2xpZW50RWZsOjpzZXRDYWxsYmFja3MoRXdrX0hpc3RvcnlfTmF2aWdh
dGlvbl9DYiBuYXZpZ2F0ZSwgRXdrX0hpc3RvcnlfQ2xpZW50X1JlZGlyZWN0aW9uX0NiIGNsaWVu
dFJlZGlyZWN0LCBFd2tfSGlzdG9yeV9TZXJ2ZXJfUmVkaXJlY3Rpb25fQ2Igc2VydmVyUmVkaXJl
Y3QsIEV3a19IaXN0b3J5X1RpdGxlX1VwZGF0ZV9DYiB0aXRsZVVwZGF0ZSwgRXdrX0hpc3Rvcnlf
UG9wdWxhdGVfVmlzaXRlZF9MaW5rc19DYiBwb3B1bGF0ZVZpc2l0ZWRMaW5rcywgdm9pZCogZGF0
YSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvQ29udGV4dEhpc3Rv
cnlDbGllbnRFZmwuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvQ29udGV4dEhpc3Rv
cnlDbGllbnRFZmwuaAppbmRleCBjN2IzYTIwLi5mZmViZmFiIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvZWZsL0NvbnRleHRIaXN0b3J5Q2xpZW50RWZsLmgKKysrIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL2VmbC9Db250ZXh0SGlzdG9yeUNsaWVudEVmbC5oCkBAIC0y
NiwxNiArMjYsMTYgQEAKICNpZm5kZWYgQ29udGV4dEhpc3RvcnlDbGllbnRFZmxfaAogI2RlZmlu
ZSBDb250ZXh0SGlzdG9yeUNsaWVudEVmbF9oCiAKLSNpbmNsdWRlICJXZWJDb250ZXh0LmgiCiAj
aW5jbHVkZSAiZXdrX2NvbnRleHQuaCIKICNpbmNsdWRlIDxXZWJLaXQyL1dLQmFzZS5oPgorI2lu
Y2x1ZGUgPFdlYktpdDIvV0tSZXRhaW5QdHIuaD4KICNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5o
PgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogY2xhc3MgQ29udGV4dEhpc3RvcnlDbGllbnRFZmwg
ewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzT3duUHRyPENvbnRleHRIaXN0b3J5Q2xpZW50RWZs
PiBjcmVhdGUoUGFzc1JlZlB0cjxXZWJDb250ZXh0PiBjb250ZXh0KQorICAgIHN0YXRpYyBQYXNz
T3duUHRyPENvbnRleHRIaXN0b3J5Q2xpZW50RWZsPiBjcmVhdGUoV0tDb250ZXh0UmVmIGNvbnRl
eHQpCiAgICAgewogICAgICAgICByZXR1cm4gYWRvcHRQdHIobmV3IENvbnRleHRIaXN0b3J5Q2xp
ZW50RWZsKGNvbnRleHQpKTsKICAgICB9CkBAIC00NSw3ICs0NSw3IEBAIHB1YmxpYzoKICAgICB2
b2lkIHNldENhbGxiYWNrcyhFd2tfSGlzdG9yeV9OYXZpZ2F0aW9uX0NiLCBFd2tfSGlzdG9yeV9D
bGllbnRfUmVkaXJlY3Rpb25fQ2IsIEV3a19IaXN0b3J5X1NlcnZlcl9SZWRpcmVjdGlvbl9DYiwg
RXdrX0hpc3RvcnlfVGl0bGVfVXBkYXRlX0NiLCBFd2tfSGlzdG9yeV9Qb3B1bGF0ZV9WaXNpdGVk
X0xpbmtzX0NiLCB2b2lkKik7CiAKIHByaXZhdGU6Ci0gICAgZXhwbGljaXQgQ29udGV4dEhpc3Rv
cnlDbGllbnRFZmwoUGFzc1JlZlB0cjxXZWJDb250ZXh0Pik7CisgICAgZXhwbGljaXQgQ29udGV4
dEhpc3RvcnlDbGllbnRFZmwoV0tDb250ZXh0UmVmKTsKIAogICAgIHN0YXRpYyB2b2lkIGRpZE5h
dmlnYXRlV2l0aE5hdmlnYXRpb25EYXRhKFdLQ29udGV4dFJlZiwgV0tQYWdlUmVmLCBXS05hdmln
YXRpb25EYXRhUmVmLCBXS0ZyYW1lUmVmLCBjb25zdCB2b2lkKik7CiAgICAgc3RhdGljIHZvaWQg
ZGlkUGVyZm9ybUNsaWVudFJlZGlyZWN0KFdLQ29udGV4dFJlZiwgV0tQYWdlUmVmLCBXS1VSTFJl
ZiBzb3VyY2VVUkwsIFdLVVJMUmVmLCBXS0ZyYW1lUmVmLCBjb25zdCB2b2lkKik7CkBAIC01Myw3
ICs1Myw3IEBAIHByaXZhdGU6CiAgICAgc3RhdGljIHZvaWQgZGlkVXBkYXRlSGlzdG9yeVRpdGxl
KFdLQ29udGV4dFJlZiwgV0tQYWdlUmVmLCBXS1N0cmluZ1JlZiwgV0tVUkxSZWYsIFdLRnJhbWVS
ZWYsIGNvbnN0IHZvaWQqKTsKICAgICBzdGF0aWMgdm9pZCBwb3B1bGF0ZVZpc2l0ZWRMaW5rcyhX
S0NvbnRleHRSZWYsIGNvbnN0IHZvaWQqKTsKIAotICAgIFJlZlB0cjxXZWJDb250ZXh0PiBtX2Nv
bnRleHQ7CisgICAgV0tSZXRhaW5QdHI8V0tDb250ZXh0UmVmPiBtX2NvbnRleHQ7CiAgICAgdm9p
ZCogbV91c2VyRGF0YTsKICAgICBFd2tfSGlzdG9yeV9OYXZpZ2F0aW9uX0NiIG1fbmF2aWdhdGU7
CiAgICAgRXdrX0hpc3RvcnlfQ2xpZW50X1JlZGlyZWN0aW9uX0NiIG1fY2xpZW50UmVkaXJlY3Q7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZsL0Rvd25sb2FkTWFuYWdl
ckVmbC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZsL0Rvd25sb2FkTWFuYWdlckVm
bC5jcHAKaW5kZXggODljM2UyZi4uYjFlYjBmYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL2VmbC9Eb3dubG9hZE1hbmFnZXJFZmwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9lZmwvRG93bmxvYWRNYW5hZ2VyRWZsLmNwcApAQCAtMTE3LDcgKzExNyw3IEBA
IHZvaWQgRG93bmxvYWRNYW5hZ2VyRWZsOjpkaWRGaW5pc2goV0tDb250ZXh0UmVmLCBXS0Rvd25s
b2FkUmVmIHdrRG93bmxvYWQsIGNvbnN0CiAgICAgZG93bmxvYWRNYW5hZ2VyLT51bnJlZ2lzdGVy
RG93bmxvYWRKb2Iod2tEb3dubG9hZCk7CiB9CiAKLURvd25sb2FkTWFuYWdlckVmbDo6RG93bmxv
YWRNYW5hZ2VyRWZsKEV3a0NvbnRleHQqIGNvbnRleHQpCitEb3dubG9hZE1hbmFnZXJFZmw6OkRv
d25sb2FkTWFuYWdlckVmbChXS0NvbnRleHRSZWYgY29udGV4dCkKICAgICA6IG1fY29udGV4dChj
b250ZXh0KQogewogICAgIFdLQ29udGV4dERvd25sb2FkQ2xpZW50IHdrRG93bmxvYWRDbGllbnQ7
CkBAIC0xMzMsMTIgKzEzMywxMiBAQCBEb3dubG9hZE1hbmFnZXJFZmw6OkRvd25sb2FkTWFuYWdl
ckVmbChFd2tDb250ZXh0KiBjb250ZXh0KQogICAgIHdrRG93bmxvYWRDbGllbnQuZGlkRmFpbCA9
IGRpZEZhaWw7CiAgICAgd2tEb3dubG9hZENsaWVudC5kaWRGaW5pc2ggPSBkaWRGaW5pc2g7CiAK
LSAgICBXS0NvbnRleHRTZXREb3dubG9hZENsaWVudCh0b0FQSShjb250ZXh0LT53ZWJDb250ZXh0
KCkuZ2V0KCkpLCAmd2tEb3dubG9hZENsaWVudCk7CisgICAgV0tDb250ZXh0U2V0RG93bmxvYWRD
bGllbnQobV9jb250ZXh0LmdldCgpLCAmd2tEb3dubG9hZENsaWVudCk7CiB9CiAKIERvd25sb2Fk
TWFuYWdlckVmbDo6fkRvd25sb2FkTWFuYWdlckVmbCgpCiB7Ci0gICAgV0tDb250ZXh0U2V0RG93
bmxvYWRDbGllbnQodG9BUEkobV9jb250ZXh0LT53ZWJDb250ZXh0KCkuZ2V0KCkpLCAwKTsKKyAg
ICBXS0NvbnRleHRTZXREb3dubG9hZENsaWVudChtX2NvbnRleHQuZ2V0KCksIDApOwogfQogCiB2
b2lkIERvd25sb2FkTWFuYWdlckVmbDo6cmVnaXN0ZXJEb3dubG9hZEpvYihXS0Rvd25sb2FkUmVm
IGRvd25sb2FkLCBFd2tWaWV3KiB2aWV3SW1wbCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9lZmwvRG93bmxvYWRNYW5hZ2VyRWZsLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvZWZsL0Rvd25sb2FkTWFuYWdlckVmbC5oCmluZGV4IDI4M2RhYTQuLjAzMTdhOWQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvRG93bmxvYWRNYW5hZ2VyRWZs
LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2VmbC9Eb3dubG9hZE1hbmFnZXJFZmwu
aApAQCAtMjcsMTggKzI3LDE2IEBACiAjZGVmaW5lIERvd25sb2FkTWFuYWdlckVmbF9oCiAKICNp
bmNsdWRlICJld2tfZG93bmxvYWRfam9iX3ByaXZhdGUuaCIKKyNpbmNsdWRlIDxXZWJLaXQyL1dL
UmV0YWluUHRyLmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KICNpbmNsdWRlIDx3dGYvUGFz
c093blB0ci5oPgogI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KIAotY2xhc3MgRXdrQ29udGV4dDsK
LWNsYXNzIEV3a0Rvd25sb2FkSm9iOwotCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogY2xhc3MgRG93
bmxvYWRNYW5hZ2VyRWZsIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc093blB0cjxEb3dubG9h
ZE1hbmFnZXJFZmw+IGNyZWF0ZShFd2tDb250ZXh0KiBjb250ZXh0KQorICAgIHN0YXRpYyBQYXNz
T3duUHRyPERvd25sb2FkTWFuYWdlckVmbD4gY3JlYXRlKFdLQ29udGV4dFJlZiBjb250ZXh0KQog
ICAgIHsKICAgICAgICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBEb3dubG9hZE1hbmFnZXJFZmwoY29u
dGV4dCkpOwogICAgIH0KQEAgLTQ4LDcgKzQ2LDcgQEAgcHVibGljOgogICAgIHZvaWQgcmVnaXN0
ZXJEb3dubG9hZEpvYihXS0Rvd25sb2FkUmVmLCBFd2tWaWV3Kik7CiAKIHByaXZhdGU6Ci0gICAg
ZXhwbGljaXQgRG93bmxvYWRNYW5hZ2VyRWZsKEV3a0NvbnRleHQqKTsKKyAgICBleHBsaWNpdCBE
b3dubG9hZE1hbmFnZXJFZmwoV0tDb250ZXh0UmVmKTsKIAogICAgIEV3a0Rvd25sb2FkSm9iKiBl
d2tEb3dubG9hZEpvYihXS0Rvd25sb2FkUmVmKTsKICAgICB2b2lkIHVucmVnaXN0ZXJEb3dubG9h
ZEpvYihXS0Rvd25sb2FkUmVmKTsKQEAgLTYxLDcgKzU5LDcgQEAgcHJpdmF0ZToKICAgICBzdGF0
aWMgdm9pZCBkaWRDYW5jZWwoV0tDb250ZXh0UmVmLCBXS0Rvd25sb2FkUmVmLCBjb25zdCB2b2lk
KiBjbGllbnRJbmZvKTsKICAgICBzdGF0aWMgdm9pZCBkaWRGaW5pc2goV0tDb250ZXh0UmVmLCBX
S0Rvd25sb2FkUmVmLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKTsKIAotICAgIEV3a0NvbnRleHQq
IG1fY29udGV4dDsKKyAgICBXS1JldGFpblB0cjxXS0NvbnRleHRSZWY+IG1fY29udGV4dDsKICAg
ICBIYXNoTWFwPHVpbnQ2NF90LCBSZWZQdHI8RXdrRG93bmxvYWRKb2I+ID4gbV9kb3dubG9hZEpv
YnM7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZsL1JlcXVl
c3RNYW5hZ2VyQ2xpZW50RWZsLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvUmVx
dWVzdE1hbmFnZXJDbGllbnRFZmwuY3BwCmluZGV4IGUyMWQ2OTkuLjBjODIxOGQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvUmVxdWVzdE1hbmFnZXJDbGllbnRFZmwu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvUmVxdWVzdE1hbmFnZXJDbGll
bnRFZmwuY3BwCkBAIC02NiwxMCArNjYsMTAgQEAgdm9pZCBSZXF1ZXN0TWFuYWdlckNsaWVudEVm
bDo6ZGlkUmVjZWl2ZVVSSVJlcXVlc3QoV0tTb3VwUmVxdWVzdE1hbmFnZXJSZWYgc291cFIKICAg
ICBoYW5kbGVyLmNhbGxiYWNrKHNjaGVtZVJlcXVlc3QuZ2V0KCksIGhhbmRsZXIudXNlckRhdGEp
OwogfQogCi1SZXF1ZXN0TWFuYWdlckNsaWVudEVmbDo6UmVxdWVzdE1hbmFnZXJDbGllbnRFZmwo
RXdrQ29udGV4dCogY29udGV4dCkKLSAgICA6IG1fc291cFJlcXVlc3RNYW5hZ2VyKFdLQ29udGV4
dEdldFNvdXBSZXF1ZXN0TWFuYWdlcih0b0FQSShjb250ZXh0LT53ZWJDb250ZXh0KCkuZ2V0KCkp
KSkKK1JlcXVlc3RNYW5hZ2VyQ2xpZW50RWZsOjpSZXF1ZXN0TWFuYWdlckNsaWVudEVmbChXS0Nv
bnRleHRSZWYgY29udGV4dCkKKyAgICA6IG1fc291cFJlcXVlc3RNYW5hZ2VyKFdLQ29udGV4dEdl
dFNvdXBSZXF1ZXN0TWFuYWdlcihjb250ZXh0KSkKIHsKLSAgICBBU1NFUlQoY29udGV4dCk7Cisg
ICAgQVNTRVJUKG1fc291cFJlcXVlc3RNYW5hZ2VyKTsKIAogICAgIFdLU291cFJlcXVlc3RNYW5h
Z2VyQ2xpZW50IHdrUmVxdWVzdE1hbmFnZXJDbGllbnQ7CiAgICAgbWVtc2V0KCZ3a1JlcXVlc3RN
YW5hZ2VyQ2xpZW50LCAwLCBzaXplb2YoV0tTb3VwUmVxdWVzdE1hbmFnZXJDbGllbnQpKTsKQEAg
LTkwLDcgKzkwLDcgQEAgdm9pZCBSZXF1ZXN0TWFuYWdlckNsaWVudEVmbDo6cmVnaXN0ZXJVUkxT
Y2hlbWVIYW5kbGVyKGNvbnN0IFN0cmluZyYgc2NoZW1lLCBFd2sKICAgICBBU1NFUlQoY2FsbGJh
Y2spOwogCiAgICAgbV91cmxTY2hlbWVIYW5kbGVycy5zZXQoc2NoZW1lLCBFd2tVcmxTY2hlbWVI
YW5kbGVyKGNhbGxiYWNrLCB1c2VyRGF0YSkpOwotICAgIHRvSW1wbChtX3NvdXBSZXF1ZXN0TWFu
YWdlci5nZXQoKSktPnJlZ2lzdGVyVVJJU2NoZW1lKHNjaGVtZSk7CisgICAgV0tTb3VwUmVxdWVz
dE1hbmFnZXJSZWdpc3RlclVSSVNjaGVtZShtX3NvdXBSZXF1ZXN0TWFuYWdlci5nZXQoKSwgYWRv
cHRXSyh0b0NvcGllZEFQSShzY2hlbWUpKS5nZXQoKSk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdl
YktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2VmbC9SZXF1ZXN0TWFu
YWdlckNsaWVudEVmbC5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2VmbC9SZXF1ZXN0TWFu
YWdlckNsaWVudEVmbC5oCmluZGV4IDM1M2JjMjUuLmNkNmYyMjUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvUmVxdWVzdE1hbmFnZXJDbGllbnRFZmwuaAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZsL1JlcXVlc3RNYW5hZ2VyQ2xpZW50RWZsLmgKQEAg
LTI2LDkgKzI2LDkgQEAKICNpZm5kZWYgUmVxdWVzdE1hbmFnZXJDbGllbnRFZmxfaAogI2RlZmlu
ZSBSZXF1ZXN0TWFuYWdlckNsaWVudEVmbF9oCiAKLSNpbmNsdWRlICJXS1JldGFpblB0ci5oIgog
I2luY2x1ZGUgImV3a19jb250ZXh0X3ByaXZhdGUuaCIKICNpbmNsdWRlIDxXZWJLaXQyL1dLQmFz
ZS5oPgorI2luY2x1ZGUgPFdlYktpdDIvV0tSZXRhaW5QdHIuaD4KICNpbmNsdWRlIDx3dGYvSGFz
aE1hcC5oPgogI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQv
V1RGU3RyaW5nLmg+CkBAIC0zOCw3ICszOCw3IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogY2xhc3Mg
UmVxdWVzdE1hbmFnZXJDbGllbnRFZmwgewogcHVibGljOgogICAgIH5SZXF1ZXN0TWFuYWdlckNs
aWVudEVmbCgpOwotICAgIHN0YXRpYyBQYXNzT3duUHRyPFJlcXVlc3RNYW5hZ2VyQ2xpZW50RWZs
PiBjcmVhdGUoRXdrQ29udGV4dCogY29udGV4dCkKKyAgICBzdGF0aWMgUGFzc093blB0cjxSZXF1
ZXN0TWFuYWdlckNsaWVudEVmbD4gY3JlYXRlKFdLQ29udGV4dFJlZiBjb250ZXh0KQogICAgIHsK
ICAgICAgICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBSZXF1ZXN0TWFuYWdlckNsaWVudEVmbChjb250
ZXh0KSk7CiAgICAgfQpAQCAtNDYsNyArNDYsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCByZWdpc3Rl
clVSTFNjaGVtZUhhbmRsZXIoY29uc3QgU3RyaW5nJiBzY2hlbWUsIEV3a19VcmxfU2NoZW1lX1Jl
cXVlc3RfQ2IgY2FsbGJhY2ssIHZvaWQqIHVzZXJEYXRhKTsKIAogcHJpdmF0ZToKLSAgICBleHBs
aWNpdCBSZXF1ZXN0TWFuYWdlckNsaWVudEVmbChFd2tDb250ZXh0Kik7CisgICAgZXhwbGljaXQg
UmVxdWVzdE1hbmFnZXJDbGllbnRFZmwoV0tDb250ZXh0UmVmKTsKIAogICAgIHN0YXRpYyB2b2lk
IGRpZFJlY2VpdmVVUklSZXF1ZXN0KFdLU291cFJlcXVlc3RNYW5hZ2VyUmVmLCBXS1VSTFJlZiwg
V0tQYWdlUmVmLCB1aW50NjRfdCByZXF1ZXN0SUQsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pOwog
Cg==
</data>
<flag name="review"
          id="204575"
          type_id="1"
          status="+"
          setter="benjamin"
    />
    <flag name="commit-queue"
          id="204576"
          type_id="3"
          status="-"
          setter="benjamin"
    />
          </attachment>
      

    </bug>

</bugzilla>