<?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>109468</bug_id>
          
          <creation_ts>2013-02-11 11:53:40 -0800</creation_ts>
          <short_desc>[Qt][WK2] Favor QUrl and QString over WTF::String in the Qt API layer</short_desc>
          <delta_ts>2013-03-12 04:13:33 -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>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>109564</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Jocelyn Turcotte">jturcotte</reporter>
          <assigned_to name="Jocelyn Turcotte">jturcotte</assigned_to>
          <cc>abecsi</cc>
    
    <cc>allan.jensen</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>hausmann</cc>
    
    <cc>jturcotte</cc>
    
    <cc>menard</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>829960</commentid>
    <comment_count>0</comment_count>
    <who name="Jocelyn Turcotte">jturcotte</who>
    <bug_when>2013-02-11 11:53:40 -0800</bug_when>
    <thetext>[Qt][WK2] Favor QUrl to WTF::String in the Qt API layer</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>829963</commentid>
    <comment_count>1</comment_count>
      <attachid>187631</attachid>
    <who name="Jocelyn Turcotte">jturcotte</who>
    <bug_when>2013-02-11 11:55:56 -0800</bug_when>
    <thetext>Created attachment 187631
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>830824</commentid>
    <comment_count>2</comment_count>
      <attachid>187631</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2013-02-12 05:35:27 -0800</bug_when>
    <thetext>Comment on attachment 187631
Patch

nice</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>830855</commentid>
    <comment_count>3</comment_count>
      <attachid>187631</attachid>
    <who name="Allan Sandfeld Jensen">allan.jensen</who>
    <bug_when>2013-02-12 06:06:20 -0800</bug_when>
    <thetext>Comment on attachment 187631
Patch

LGTM, but needs owner to approve.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>831729</commentid>
    <comment_count>4</comment_count>
      <attachid>187631</attachid>
    <who name="Simon Hausmann">hausmann</who>
    <bug_when>2013-02-13 01:56:40 -0800</bug_when>
    <thetext>Comment on attachment 187631
Patch

Are you sure that this is the way to go? I recall Tor Arne deliberately converting from QUrl to WTFString for m_currentURL, etc. after a fair amount of thought.

WKURLRef is backed by a WebURL, which is a WTFString. It also has a KURL member that is parsed on-demand. Creating a WTFString from a QString is virtually free (we adopt the QStringData). Later when converting such a WTFString back to a QString, it is also free (if it was previously adopted).

QUrl on the other hand does actual url parsing as the first thing in its constructor. I feel that we only need to do this when returning a URL through our API layer, but for everything below I&apos;m not sure QUrl&apos;s parsing gives us anything.

Perhaps we need a WKURLCreateWithQString?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>831739</commentid>
    <comment_count>5</comment_count>
    <who name="Jocelyn Turcotte">jturcotte</who>
    <bug_when>2013-02-13 02:14:19 -0800</bug_when>
    <thetext>(In reply to comment #4)
&gt; (From update of attachment 187631 [details])
&gt; Are you sure that this is the way to go? I recall Tor Arne deliberately converting from QUrl to WTFString for m_currentURL, etc. after a fair amount of thought.

No I&apos;m not sure actually, see my comment on bug #109564.

&gt; WKURLRef is backed by a WebURL, which is a WTFString. It also has a KURL member that is parsed on-demand. Creating a WTFString from a QString is virtually free (we adopt the QStringData). Later when converting such a WTFString back to a QString, it is also free (if it was previously adopted).
&gt; 
&gt; QUrl on the other hand does actual url parsing as the first thing in its constructor. I feel that we only need to do this when returning a URL through our API layer, but for everything below I&apos;m not sure QUrl&apos;s parsing gives us anything.
&gt; 
&gt; Perhaps we need a WKURLCreateWithQString?

This sounds like a better idea, let me investigate this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>833024</commentid>
    <comment_count>6</comment_count>
      <attachid>188338</attachid>
    <who name="Jocelyn Turcotte">jturcotte</who>
    <bug_when>2013-02-14 06:30:52 -0800</bug_when>
    <thetext>Created attachment 188338
Patch

Now using QUrl only for the icon URL, QString for the page URL.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>833025</commentid>
    <comment_count>7</comment_count>
    <who name="Jocelyn Turcotte">jturcotte</who>
    <bug_when>2013-02-14 06:32:08 -0800</bug_when>
    <thetext>WKURLCreateWithQString is going to be added in the patch for bug 109564.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>833914</commentid>
    <comment_count>8</comment_count>
      <attachid>188338</attachid>
    <who name="Allan Sandfeld Jensen">allan.jensen</who>
    <bug_when>2013-02-15 05:10:24 -0800</bug_when>
    <thetext>Comment on attachment 188338
Patch

LGTM, but needs approval by owners.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>852735</commentid>
    <comment_count>9</comment_count>
      <attachid>188338</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2013-03-11 14:38:45 -0700</bug_when>
    <thetext>Comment on attachment 188338
Patch

Signed off by me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>853310</commentid>
    <comment_count>10</comment_count>
    <who name="Jocelyn Turcotte">jturcotte</who>
    <bug_when>2013-03-12 04:13:33 -0700</bug_when>
    <thetext>Committed r145512: &lt;http://trac.webkit.org/changeset/145512&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>187631</attachid>
            <date>2013-02-11 11:55:56 -0800</date>
            <delta_ts>2013-02-14 06:30:49 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-109468-20130211205226.patch</filename>
            <type>text/plain</type>
            <size>13907</size>
            <attacher name="Jocelyn Turcotte">jturcotte</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQyMjUwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggNzEzNWFhMzk4NTI1Zjhm
ZGVhZmZmZmQ3YTBkZGI0ODZiNjZkNjA4NS4uMWRiZDdiNmY5MDViNjJkMGRhMDE1OGRmZWZjZjMy
YjY3NjA4Mjc2ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDM4IEBACiAyMDEzLTAyLTExICBKb2Nl
bHluIFR1cmNvdHRlICA8am9jZWx5bi50dXJjb3R0ZUBkaWdpYS5jb20+CiAKKyAgICAgICAgW1F0
XVtXSzJdIEZhdm9yIFFVcmwgdG8gV1RGOjpTdHJpbmcgaW4gdGhlIFF0IEFQSSBsYXllcgorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA5NDY4CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhlIFF0IEFQSSBl
eHBvc2VzIGl0J3MgVVJMIHByb3BlcnRpZXMgYW5kIHNpZ25hbCB0aHJvdWdoIHRoZSBRVXJsIHR5
cGUuCisgICAgICAgIFRoZSBXZWJLaXQyIEMgQVBJIGFsc28gYWxsb3dzIGEgZ29vZCBzdXBwb3J0
IG9mIFFVcmwgdGhyb3VnaCBXS1VSTFJlZi4KKworICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvcXQv
cXF1aWNrd2Vidmlldy5jcHA6CisgICAgICAgIChRUXVpY2tXZWJWaWV3UHJpdmF0ZTo6aW5pdGlh
bGl6ZSk6CisgICAgICAgIChRUXVpY2tXZWJWaWV3UHJpdmF0ZTo6X3Ffb25JY29uQ2hhbmdlZEZv
clBhZ2VVUkwpOgorICAgICAgICAoUVF1aWNrV2ViVmlld1ByaXZhdGU6OnVwZGF0ZUljb24pOgor
ICAgICAgICAoUVF1aWNrV2ViVmlldzo6dXJsKToKKyAgICAgICAgKFFRdWlja1dlYlZpZXc6OmVt
aXRVcmxDaGFuZ2VJZk5lZWRlZCk6CisgICAgICAgIChRUXVpY2tXZWJWaWV3OjppY29uKToKKyAg
ICAgICAgKiBVSVByb2Nlc3MvQVBJL3F0L3FxdWlja3dlYnZpZXdfcC5oOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9BUEkvcXQvcXF1aWNrd2Vidmlld19wX3AuaDoKKyAgICAgICAgKFFRdWlja1dlYlZp
ZXdQcml2YXRlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL3F0L3F3ZWJpY29uaW1hZ2Vwcm92
aWRlci5jcHA6CisgICAgICAgIChRV2ViSWNvbkltYWdlUHJvdmlkZXI6Omljb25VUkxGb3JQYWdl
VVJMSW5Db250ZXh0KToKKyAgICAgICAgKFFXZWJJY29uSW1hZ2VQcm92aWRlcjo6cmVxdWVzdElt
YWdlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL3F0L3F3ZWJpY29uaW1hZ2Vwcm92aWRlcl9w
Lmg6CisgICAgICAgICogVUlQcm9jZXNzL3F0L1F0V2ViSWNvbkRhdGFiYXNlQ2xpZW50LmNwcDoK
KyAgICAgICAgKFdlYktpdDo6UXRXZWJJY29uRGF0YWJhc2VDbGllbnQ6OmRpZENoYW5nZUljb25G
b3JQYWdlVVJMKToKKyAgICAgICAgKFdlYktpdDo6UXRXZWJJY29uRGF0YWJhc2VDbGllbnQ6Omlj
b25Gb3JQYWdlVVJMKToKKyAgICAgICAgKFdlYktpdDo6UXRXZWJJY29uRGF0YWJhc2VDbGllbnQ6
Omljb25JbWFnZUZvclBhZ2VVUkwpOgorICAgICAgICAoV2ViS2l0OjpRdFdlYkljb25EYXRhYmFz
ZUNsaWVudDo6cmV0YWluSWNvbkZvclBhZ2VVUkwpOgorICAgICAgICAoV2ViS2l0OjpRdFdlYklj
b25EYXRhYmFzZUNsaWVudDo6cmVsZWFzZUljb25Gb3JQYWdlVVJMKToKKyAgICAgICAgKiBVSVBy
b2Nlc3MvcXQvUXRXZWJJY29uRGF0YWJhc2VDbGllbnQuaDoKKyAgICAgICAgKFF0V2ViSWNvbkRh
dGFiYXNlQ2xpZW50KToKKworMjAxMy0wMi0xMSAgSm9jZWx5biBUdXJjb3R0ZSAgPGpvY2VseW4u
dHVyY290dGVAZGlnaWEuY29tPgorCiAgICAgICAgIFtXSzJdIEFsbG93IHVzaW5nIHRoZSB2YWx1
ZSBvZiBXZWJDb250ZXh0OjpwbGF0Zm9ybURlZmF1bHRJY29uRGF0YWJhc2VQYXRoIGZyb20gdGhl
IEMgQVBJCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
MDk0NTUKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xcXVp
Y2t3ZWJ2aWV3LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXF1aWNrd2Vi
dmlldy5jcHAKaW5kZXggM2E4MDEwYThiZDcyYjY4ZGE1NTNkYzU3NGYyMTUyYWQyMjliMGJjMS4u
N2Y2MjQyY2M1ZjE2MzE0MDZiYWFlNjE5MjMyNmUzNTcxNmUxYjliYSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xcXVpY2t3ZWJ2aWV3LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3FxdWlja3dlYnZpZXcuY3BwCkBAIC0zNTQsNyAr
MzU0LDcgQEAgdm9pZCBRUXVpY2tXZWJWaWV3UHJpdmF0ZTo6aW5pdGlhbGl6ZShXS0NvbnRleHRS
ZWYgY29udGV4dFJlZiwgV0tQYWdlR3JvdXBSZWYgcGEKICAgICBuYXZpZ2F0aW9uSGlzdG9yeSA9
IGFkb3B0UHRyKFFXZWJOYXZpZ2F0aW9uSGlzdG9yeVByaXZhdGU6OmNyZWF0ZUhpc3Rvcnkod2Vi
UGFnZS5nZXQoKSkpOwogCiAgICAgUXRXZWJJY29uRGF0YWJhc2VDbGllbnQqIGljb25EYXRhYmFz
ZSA9IGNvbnRleHQtPmljb25EYXRhYmFzZSgpOwotICAgIFFPYmplY3Q6OmNvbm5lY3QoaWNvbkRh
dGFiYXNlLCBTSUdOQUwoaWNvbkNoYW5nZWRGb3JQYWdlVVJMKFFTdHJpbmcpKSwgcV9wdHIsIFNM
T1QoX3Ffb25JY29uQ2hhbmdlZEZvclBhZ2VVUkwoUVN0cmluZykpKTsKKyAgICBRT2JqZWN0Ojpj
b25uZWN0KGljb25EYXRhYmFzZSwgU0lHTkFMKGljb25DaGFuZ2VkRm9yUGFnZVVSTChRVXJsKSks
IHFfcHRyLCBTTE9UKF9xX29uSWNvbkNoYW5nZWRGb3JQYWdlVVJMKFFVcmwpKSk7CiAKICAgICAv
LyBBbnkgcGFnZSBzZXR0aW5nIHNob3VsZCBwcmVmZXJyYWJsZSBiZSBzZXQgYmVmb3JlIGNyZWF0
aW5nIHRoZSBwYWdlLgogICAgIHdlYlBhZ2VQcm94eS0+cGFnZUdyb3VwKCktPnByZWZlcmVuY2Vz
KCktPnNldEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdFbmFibGVkKHRydWUpOwpAQCAtNjIwLDkgKzYy
MCw5IEBAIHZvaWQgUVF1aWNrV2ViVmlld1ByaXZhdGU6Ol9xX29uVXJsQ2hhbmdlZCgpCiAgICAg
dXBkYXRlSWNvbigpOwogfQogCi12b2lkIFFRdWlja1dlYlZpZXdQcml2YXRlOjpfcV9vbkljb25D
aGFuZ2VkRm9yUGFnZVVSTChjb25zdCBRU3RyaW5nJiBwYWdlVXJsKQordm9pZCBRUXVpY2tXZWJW
aWV3UHJpdmF0ZTo6X3Ffb25JY29uQ2hhbmdlZEZvclBhZ2VVUkwoY29uc3QgUVVybCYgcGFnZVVy
bCkKIHsKLSAgICBpZiAocGFnZVVybCAhPSBRU3RyaW5nKG1fY3VycmVudFVybCkpCisgICAgaWYg
KHBhZ2VVcmwgIT0gbV9jdXJyZW50VXJsKQogICAgICAgICByZXR1cm47CiAKICAgICB1cGRhdGVJ
Y29uKCk7CkBAIC02NDIsNyArNjQyLDcgQEAgdm9pZCBRUXVpY2tXZWJWaWV3UHJpdmF0ZTo6dXBk
YXRlSWNvbigpCiAgICAgaWYgKCFwcm92aWRlcikKICAgICAgICAgcmV0dXJuOwogCi0gICAgV1RG
OjpTdHJpbmcgaWNvblVybCA9IHByb3ZpZGVyLT5pY29uVVJMRm9yUGFnZVVSTEluQ29udGV4dCht
X2N1cnJlbnRVcmwsIGNvbnRleHQuZ2V0KCkpOworICAgIFFVcmwgaWNvblVybCA9IHByb3ZpZGVy
LT5pY29uVVJMRm9yUGFnZVVSTEluQ29udGV4dChtX2N1cnJlbnRVcmwsIGNvbnRleHQuZ2V0KCkp
OwogCiAgICAgaWYgKGljb25VcmwgPT0gbV9pY29uVXJsKQogICAgICAgICByZXR1cm47CkBAIC0x
NjYyLDcgKzE2NjIsNyBAQCBRVXJsIFFRdWlja1dlYlZpZXc6OnVybCgpIGNvbnN0CiAgICAgLy8g
RklYTUU6IEVuYWJsZSBvbmNlIHdlIGFyZSBzdXJlIHRoaXMgc2hvdWxkIG5vdCB0cmlnZ2VyCiAg
ICAgLy8gUV9BU1NFUlQoZC0+bV9jdXJyZW50VXJsID09IGQtPndlYlBhZ2VQcm94eS0+YWN0aXZl
VVJMKCkpOwogCi0gICAgcmV0dXJuIFFVcmwoZC0+bV9jdXJyZW50VXJsKTsKKyAgICByZXR1cm4g
ZC0+bV9jdXJyZW50VXJsOwogfQogCiB2b2lkIFFRdWlja1dlYlZpZXc6OnNldFVybChjb25zdCBR
VXJsJiB1cmwpCkBAIC0xNjgyLDcgKzE2ODIsNyBAQCB2b2lkIFFRdWlja1dlYlZpZXc6OmVtaXRV
cmxDaGFuZ2VJZk5lZWRlZCgpCiB7CiAgICAgUV9EKFFRdWlja1dlYlZpZXcpOwogCi0gICAgV1RG
OjpTdHJpbmcgYWN0aXZlVXJsID0gZC0+d2ViUGFnZVByb3h5LT5hY3RpdmVVUkwoKTsKKyAgICBR
VXJsIGFjdGl2ZVVybChkLT53ZWJQYWdlUHJveHktPmFjdGl2ZVVSTCgpKTsKICAgICBpZiAoYWN0
aXZlVXJsICE9IGQtPm1fY3VycmVudFVybCkgewogICAgICAgICBkLT5tX2N1cnJlbnRVcmwgPSBh
Y3RpdmVVcmw7CiAgICAgICAgIGVtaXQgdXJsQ2hhbmdlZCgpOwpAQCAtMTcxMCw3ICsxNzEwLDcg
QEAgdm9pZCBRUXVpY2tXZWJWaWV3OjplbWl0VXJsQ2hhbmdlSWZOZWVkZWQoKQogUVVybCBRUXVp
Y2tXZWJWaWV3OjppY29uKCkgY29uc3QKIHsKICAgICBRX0QoY29uc3QgUVF1aWNrV2ViVmlldyk7
Ci0gICAgcmV0dXJuIFFVcmwoZC0+bV9pY29uVXJsKTsKKyAgICByZXR1cm4gZC0+bV9pY29uVXJs
OwogfQogCiAvKiEKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQv
cXF1aWNrd2Vidmlld19wLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3FxdWlj
a3dlYnZpZXdfcC5oCmluZGV4IDQ1N2RlNjVlMjUyNDk3YjhkYzY1MjYxOGI2MTRhZWVhZjMwOTky
OTIuLjA3MWRhZWQxMTRiNmRhYWI5YWRkNWZkZjFmMmI3ZmRkMGYwODcxOTEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXF1aWNrd2Vidmlld19wLmgKKysrIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xcXVpY2t3ZWJ2aWV3X3AuaApAQCAtMjEz
LDcgKzIxMyw3IEBAIHByaXZhdGU6CiAgICAgUV9QUklWQVRFX1NMT1QoZF9mdW5jKCksIHZvaWQg
X3Ffb25WaXNpYmxlQ2hhbmdlZCgpKTsKICAgICBRX1BSSVZBVEVfU0xPVChkX2Z1bmMoKSwgdm9p
ZCBfcV9vblVybENoYW5nZWQoKSk7CiAgICAgUV9QUklWQVRFX1NMT1QoZF9mdW5jKCksIHZvaWQg
X3Ffb25SZWNlaXZlZFJlc3BvbnNlRnJvbURvd25sb2FkKFFXZWJEb3dubG9hZEl0ZW0qKSk7Ci0g
ICAgUV9QUklWQVRFX1NMT1QoZF9mdW5jKCksIHZvaWQgX3Ffb25JY29uQ2hhbmdlZEZvclBhZ2VV
UkwoY29uc3QgUVN0cmluZyYpKTsKKyAgICBRX1BSSVZBVEVfU0xPVChkX2Z1bmMoKSwgdm9pZCBf
cV9vbkljb25DaGFuZ2VkRm9yUGFnZVVSTChjb25zdCBRVXJsJikpOwogCiAgICAgLy8gSGlkZXMg
UU9iamVjdDo6ZF9wdHIgYWxsb3dpbmcgdXMgdG8gdXNlIHRoZSBjb252ZW5pZW5jZSBtYWNyb3Mu
CiAgICAgUVNjb3BlZFBvaW50ZXI8UVF1aWNrV2ViVmlld1ByaXZhdGU+IGRfcHRyOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xcXVpY2t3ZWJ2aWV3X3BfcC5o
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xcXVpY2t3ZWJ2aWV3X3BfcC5oCmlu
ZGV4IGI5MTY2MTQwYWRkNzE0MTJmMTRhNTM5YzIyMGI5NmRhMTgyMTg5ODIuLjQyNzNjYTUyMzFh
OTNjZTRjOTJiNDBmYzQ0YTc5MzA1MDUyODgxOGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvcXQvcXF1aWNrd2Vidmlld19wX3AuaAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL3F0L3FxdWlja3dlYnZpZXdfcF9wLmgKQEAgLTk0LDcgKzk0LDcgQEAg
cHVibGljOgogICAgIHZvaWQgX3Ffb25WaXNpYmxlQ2hhbmdlZCgpOwogICAgIHZvaWQgX3Ffb25V
cmxDaGFuZ2VkKCk7CiAgICAgdm9pZCBfcV9vblJlY2VpdmVkUmVzcG9uc2VGcm9tRG93bmxvYWQo
UVdlYkRvd25sb2FkSXRlbSopOwotICAgIHZvaWQgX3Ffb25JY29uQ2hhbmdlZEZvclBhZ2VVUkwo
Y29uc3QgUVN0cmluZyYpOworICAgIHZvaWQgX3Ffb25JY29uQ2hhbmdlZEZvclBhZ2VVUkwoY29u
c3QgUVVybCYpOwogCiAgICAgdm9pZCBjaG9vc2VGaWxlcyhXS09wZW5QYW5lbFJlc3VsdExpc3Rl
bmVyUmVmLCBjb25zdCBRU3RyaW5nTGlzdCYgc2VsZWN0ZWRGaWxlTmFtZXMsIFdlYktpdDo6UXRX
ZWJQYWdlVUlDbGllbnQ6OkZpbGVDaG9vc2VyVHlwZSk7CiAgICAgcXVpbnQ2NCBleGNlZWRlZERh
dGFiYXNlUXVvdGEoY29uc3QgUVN0cmluZyYgZGF0YWJhc2VOYW1lLCBjb25zdCBRU3RyaW5nJiBk
aXNwbGF5TmFtZSwgV0tTZWN1cml0eU9yaWdpblJlZiBzZWN1cml0eU9yaWdpbiwgcXVpbnQ2NCBj
dXJyZW50UXVvdGEsIHF1aW50NjQgY3VycmVudE9yaWdpblVzYWdlLCBxdWludDY0IGN1cnJlbnRE
YXRhYmFzZVVzYWdlLCBxdWludDY0IGV4cGVjdGVkVXNhZ2UpOwpAQCAtMjAxLDkgKzIwMSw5IEBA
IHByb3RlY3RlZDoKICAgICBib29sIG1fbmF2aWdhdG9yUXRPYmplY3RFbmFibGVkOwogICAgIGJv
b2wgbV9yZW5kZXJUb09mZnNjcmVlbkJ1ZmZlcjsKICAgICBib29sIG1fYWxsb3dBbnlIVFRQU0Nl
cnRpZmljYXRlRm9yTG9jYWxIb3N0OwotICAgIFdURjo6U3RyaW5nIG1faWNvblVybDsKKyAgICBR
VXJsIG1faWNvblVybDsKICAgICBpbnQgbV9sb2FkUHJvZ3Jlc3M7Ci0gICAgV1RGOjpTdHJpbmcg
bV9jdXJyZW50VXJsOworICAgIFFVcmwgbV9jdXJyZW50VXJsOwogfTsKIAogY2xhc3MgUVF1aWNr
V2ViVmlld0xlZ2FjeVByaXZhdGUgOiBwdWJsaWMgUVF1aWNrV2ViVmlld1ByaXZhdGUgewpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xd2ViaWNvbmltYWdlcHJv
dmlkZXIuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xd2ViaWNvbmltYWdl
cHJvdmlkZXIuY3BwCmluZGV4IGFhMjZjMDczNzg3Y2M5MWFhMTI1OTgwYTgyMzBkNmU2N2FkYjM1
MWMuLjAzYmJlYzk2ZDFjM2I1MDIyYWQzYjdkMzMyZTEwNzY3YmQ1ZGViMGQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXdlYmljb25pbWFnZXByb3ZpZGVyLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3F3ZWJpY29uaW1hZ2Vwcm92
aWRlci5jcHAKQEAgLTM4LDM0ICszOCwzNCBAQCBRV2ViSWNvbkltYWdlUHJvdmlkZXI6On5RV2Vi
SWNvbkltYWdlUHJvdmlkZXIoKQogewogfQogCi1XVEY6OlN0cmluZyBRV2ViSWNvbkltYWdlUHJv
dmlkZXI6Omljb25VUkxGb3JQYWdlVVJMSW5Db250ZXh0KGNvbnN0IFdURjo6U3RyaW5nICZwYWdl
VVJMLCBRdFdlYkNvbnRleHQqIGNvbnRleHQpCitRVXJsIFFXZWJJY29uSW1hZ2VQcm92aWRlcjo6
aWNvblVSTEZvclBhZ2VVUkxJbkNvbnRleHQoY29uc3QgUVVybCYgcGFnZVVSTCwgUXRXZWJDb250
ZXh0KiBjb250ZXh0KQogewogICAgIFF0V2ViSWNvbkRhdGFiYXNlQ2xpZW50KiBpY29uRGF0YWJh
c2UgPSBjb250ZXh0LT5pY29uRGF0YWJhc2UoKTsKLSAgICBXVEY6OlN0cmluZyBpY29uVVJMID0g
aWNvbkRhdGFiYXNlLT5pY29uRm9yUGFnZVVSTChwYWdlVVJMKTsKKyAgICBRVXJsIGljb25VUkwg
PSBpY29uRGF0YWJhc2UtPmljb25Gb3JQYWdlVVJMKHBhZ2VVUkwpOwogCiAgICAgaWYgKGljb25V
UkwuaXNFbXB0eSgpKQotICAgICAgICByZXR1cm4gU3RyaW5nKCk7CisgICAgICAgIHJldHVybiBR
VXJsKCk7CiAKICAgICBRVXJsIHVybDsKICAgICB1cmwuc2V0U2NoZW1lKFFTdHJpbmdMaXRlcmFs
KCJpbWFnZSIpKTsKICAgICB1cmwuc2V0SG9zdChRV2ViSWNvbkltYWdlUHJvdmlkZXI6OmlkZW50
aWZpZXIoKSk7CiAgICAgLy8gTWFrZSBzdXJlIHRoYXQgUU1MIGRvZXNuJ3Qgc2hvdyBjYWNoZWQg
dmVyc2lvbnMgb2YgdGhlIHByZXZpb3VzIGljb24gaWYgdGhlIGljb24gbG9jYXRpb24gY2hhbmdl
ZC4KLSAgICB1cmwuc2V0UGF0aChRTGF0aW4xQ2hhcignLycpICsgUVN0cmluZzo6bnVtYmVyKFdU
Rjo6U3RyaW5nSGFzaDo6aGFzaChpY29uVVJMKSkpOworICAgIHVybC5zZXRQYXRoKFFMYXRpbjFD
aGFyKCcvJykgKyBRU3RyaW5nOjpudW1iZXIoV1RGOjpTdHJpbmdIYXNoOjpoYXNoKGljb25VUkwu
dG9TdHJpbmcoKSkpKTsKIAogICAgIC8vIEZJWE1FOiBVc2UgUVVybDo6RGVjb2RlZE1vZGUgd2hl
biBsYW5kZWQgaW4gUXQKLSAgICB1cmwuc2V0RnJhZ21lbnQoUVN0cmluZzo6ZnJvbUxhdGluMShR
Qnl0ZUFycmF5KFFTdHJpbmcocGFnZVVSTCkudG9VdGY4KCkpLnRvQmFzZTY0KCkpKTsKKyAgICB1
cmwuc2V0RnJhZ21lbnQoUVN0cmluZzo6ZnJvbUxhdGluMShRQnl0ZUFycmF5KHBhZ2VVUkwudG9F
bmNvZGVkKCkpLnRvQmFzZTY0KCkpKTsKIAogICAgIC8vIEZJWE1FOiBXZSBjYW4ndCBrbm93IHdo
ZW4gdGhlIGljb24gdXJsIGlzIG5vIGxvbmdlciBpbiB1c2UsCiAgICAgLy8gc28gd2UgbmV2ZXIg
cmVsZWFzZSB0aGVzZSBpY29ucy4gQXQgc29tZSBwb2ludCB3ZSBtaWdodCB3YW50CiAgICAgLy8g
dG8gaW50cm9kdWNlIGV4cGlyeSBvZiBpY29ucyB0byBlbGV2YXRlIHRoaXMgaXNzdWUuCiAgICAg
aWNvbkRhdGFiYXNlLT5yZXRhaW5JY29uRm9yUGFnZVVSTChwYWdlVVJMKTsKIAotICAgIHJldHVy
biB1cmwudG9TdHJpbmcoUVVybDo6RnVsbHlFbmNvZGVkKTsKKyAgICByZXR1cm4gdXJsOwogfQog
CiBRSW1hZ2UgUVdlYkljb25JbWFnZVByb3ZpZGVyOjpyZXF1ZXN0SW1hZ2UoY29uc3QgUVN0cmlu
ZyYgaWQsIFFTaXplKiBzaXplLCBjb25zdCBRU2l6ZSYgcmVxdWVzdGVkU2l6ZSkKIHsKLSAgICBR
U3RyaW5nIHBhZ2VVUkwgPSBRU3RyaW5nOjpmcm9tVXRmOChRQnl0ZUFycmF5Ojpmcm9tQmFzZTY0
KGlkLm1pZFJlZihpZC5pbmRleE9mKCcjJykgKyAxKS50b0xhdGluMSgpKSk7CisgICAgUVVybCBw
YWdlVVJMID0gUVVybDo6ZnJvbUVuY29kZWQoUUJ5dGVBcnJheTo6ZnJvbUJhc2U2NChpZC5taWRS
ZWYoaWQuaW5kZXhPZignIycpICsgMSkudG9MYXRpbjEoKSkpOwogCiAgICAgUXRXZWJJY29uRGF0
YWJhc2VDbGllbnQqIGljb25EYXRhYmFzZSA9IFF0V2ViQ29udGV4dDo6aWNvbkRhdGFiYXNlKCk7
CiAgICAgaWYgKCFpY29uRGF0YWJhc2UpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL3F0L3F3ZWJpY29uaW1hZ2Vwcm92aWRlcl9wLmggYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL3F0L3F3ZWJpY29uaW1hZ2Vwcm92aWRlcl9wLmgKaW5kZXggN2VmZTIxYTE0
MTllNmY1MDg1ZWM1ZGUwNjRiNDZkMzIzZjdkNjg2My4uMWY4MGM4YWU4MzlhN2MyNDdjZTNhZWU5
NDNjMzgzMWNmYmQ1YWM3YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9xdC9xd2ViaWNvbmltYWdlcHJvdmlkZXJfcC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvcXQvcXdlYmljb25pbWFnZXByb3ZpZGVyX3AuaApAQCAtMzYsNyArMzYsNyBAQCBw
dWJsaWM6CiAKICAgICBzdGF0aWMgUVN0cmluZyBpZGVudGlmaWVyKCkgeyByZXR1cm4gUVN0cmlu
Z0xpdGVyYWwoIndlYmljb24iKTsgfQogCi0gICAgV1RGOjpTdHJpbmcgaWNvblVSTEZvclBhZ2VV
UkxJbkNvbnRleHQoY29uc3QgV1RGOjpTdHJpbmcmIHBhZ2VVUkwsIFdlYktpdDo6UXRXZWJDb250
ZXh0KiBjb250ZXh0KTsKKyAgICBRVXJsIGljb25VUkxGb3JQYWdlVVJMSW5Db250ZXh0KGNvbnN0
IFFVcmwmIHBhZ2VVUkwsIFdlYktpdDo6UXRXZWJDb250ZXh0KiBjb250ZXh0KTsKICAgICB2aXJ0
dWFsIFFJbWFnZSByZXF1ZXN0SW1hZ2UoY29uc3QgUVN0cmluZyYgaWQsIFFTaXplKiBzaXplLCBj
b25zdCBRU2l6ZSYgcmVxdWVzdGVkU2l6ZSk7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvcXQvUXRXZWJJY29uRGF0YWJhc2VDbGllbnQuY3BwIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL3F0L1F0V2ViSWNvbkRhdGFiYXNlQ2xpZW50LmNwcAppbmRleCA3ZGJi
MjczZmQxMmZhMzliYjc3YzVjMzIwMDBiMzgxNDVkOTFkYWYzLi40OTc5OTY5NTFiMzA0NTYyNjU2
ZDIwN2I4ZmRkYWUzY2VjYjdkMmVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvcXQvUXRXZWJJY29uRGF0YWJhc2VDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9xdC9RdFdlYkljb25EYXRhYmFzZUNsaWVudC5jcHAKQEAgLTYyLDQ3ICs2Miw0NyBA
QCBRdFdlYkljb25EYXRhYmFzZUNsaWVudDo6flF0V2ViSWNvbkRhdGFiYXNlQ2xpZW50KCkKIAog
dm9pZCBRdFdlYkljb25EYXRhYmFzZUNsaWVudDo6ZGlkQ2hhbmdlSWNvbkZvclBhZ2VVUkwoV0tJ
Y29uRGF0YWJhc2VSZWYsIFdLVVJMUmVmIHBhZ2VVUkwsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8p
CiB7Ci0gICAgZW1pdCB0b1F0V2ViSWNvbkRhdGFiYXNlQ2xpZW50KGNsaWVudEluZm8pLT5pY29u
Q2hhbmdlZEZvclBhZ2VVUkwodG9JbXBsKHBhZ2VVUkwpLT5zdHJpbmcoKSk7CisgICAgZW1pdCB0
b1F0V2ViSWNvbkRhdGFiYXNlQ2xpZW50KGNsaWVudEluZm8pLT5pY29uQ2hhbmdlZEZvclBhZ2VV
UkwoV0tVUkxDb3B5UVVybChwYWdlVVJMKSk7CiB9CiAKLVdURjo6U3RyaW5nIFF0V2ViSWNvbkRh
dGFiYXNlQ2xpZW50OjppY29uRm9yUGFnZVVSTChjb25zdCBXVEY6OlN0cmluZyYgcGFnZVVSTCkK
K1FVcmwgUXRXZWJJY29uRGF0YWJhc2VDbGllbnQ6Omljb25Gb3JQYWdlVVJMKGNvbnN0IFFVcmwm
IHBhZ2VVUkwpCiB7CiAgICAgU3RyaW5nIGljb25VUkw7Ci0gICAgbV9pY29uRGF0YWJhc2UtPnN5
bmNocm9ub3VzSWNvblVSTEZvclBhZ2VVUkwocGFnZVVSTCwgaWNvblVSTCk7CisgICAgbV9pY29u
RGF0YWJhc2UtPnN5bmNocm9ub3VzSWNvblVSTEZvclBhZ2VVUkwocGFnZVVSTC50b1N0cmluZyhR
VXJsOjpGdWxseUVuY29kZWQpLCBpY29uVVJMKTsKIAogICAgIGlmIChpY29uVVJMLmlzRW1wdHko
KSkKLSAgICAgICAgcmV0dXJuIFN0cmluZygpOworICAgICAgICByZXR1cm4gUVVybCgpOwogCiAg
ICAgLy8gVmVyaWZ5IHRoYXQgdGhlIGltYWdlIGRhdGEgaXMgYWN0dWFsbHkgYXZhaWxhYmxlIGJl
Zm9yZSByZXBvcnRpbmcgYmFjawogICAgIC8vIGEgdXJsLCBzaW5jZSBjbGllbnRzIGFzc3VtZSB0
aGF0IHRoZSB1cmwgY2FuIGJlIHVzZWQgZGlyZWN0bHkuCi0gICAgV2ViQ29yZTo6SW1hZ2UqIGlj
b25JbWFnZSA9IG1faWNvbkRhdGFiYXNlLT5pbWFnZUZvclBhZ2VVUkwocGFnZVVSTCk7CisgICAg
V2ViQ29yZTo6SW1hZ2UqIGljb25JbWFnZSA9IG1faWNvbkRhdGFiYXNlLT5pbWFnZUZvclBhZ2VV
UkwocGFnZVVSTC50b1N0cmluZyhRVXJsOjpGdWxseUVuY29kZWQpKTsKICAgICBpZiAoIWljb25J
bWFnZSB8fCBpY29uSW1hZ2UtPmlzTnVsbCgpKQotICAgICAgICByZXR1cm4gU3RyaW5nKCk7Cisg
ICAgICAgIHJldHVybiBRVXJsKCk7CiAKLSAgICByZXR1cm4gaWNvblVSTDsKKyAgICByZXR1cm4g
UVVybChpY29uVVJMKTsKIH0KIAotUUltYWdlIFF0V2ViSWNvbkRhdGFiYXNlQ2xpZW50OjppY29u
SW1hZ2VGb3JQYWdlVVJMKGNvbnN0IFdURjo6U3RyaW5nJiBwYWdlVVJMLCBjb25zdCBRU2l6ZSYg
aWNvblNpemUpCitRSW1hZ2UgUXRXZWJJY29uRGF0YWJhc2VDbGllbnQ6Omljb25JbWFnZUZvclBh
Z2VVUkwoY29uc3QgUVVybCYgcGFnZVVSTCwgY29uc3QgUVNpemUmIGljb25TaXplKQogewogICAg
IE11dGV4TG9ja2VyIGxvY2tlcihtX2ltYWdlTG9jayk7CiAKICAgICBXZWJDb3JlOjpJbnRTaXpl
IHNpemUoaWNvblNpemUud2lkdGgoKSwgaWNvblNpemUuaGVpZ2h0KCkpOwogCi0gICAgUVBpeG1h
cCogbmF0aXZlSW1hZ2UgPSBtX2ljb25EYXRhYmFzZS0+bmF0aXZlSW1hZ2VGb3JQYWdlVVJMKHBh
Z2VVUkwsIHNpemUpOworICAgIFFQaXhtYXAqIG5hdGl2ZUltYWdlID0gbV9pY29uRGF0YWJhc2Ut
Pm5hdGl2ZUltYWdlRm9yUGFnZVVSTChwYWdlVVJMLnRvU3RyaW5nKFFVcmw6OkZ1bGx5RW5jb2Rl
ZCksIHNpemUpOwogICAgIGlmICghbmF0aXZlSW1hZ2UpCiAgICAgICAgIHJldHVybiBRSW1hZ2Uo
KTsKIAogICAgIHJldHVybiBuYXRpdmVJbWFnZS0+dG9JbWFnZSgpOwogfQogCi12b2lkIFF0V2Vi
SWNvbkRhdGFiYXNlQ2xpZW50OjpyZXRhaW5JY29uRm9yUGFnZVVSTChjb25zdCBTdHJpbmcmIHBh
Z2VVUkwpCit2b2lkIFF0V2ViSWNvbkRhdGFiYXNlQ2xpZW50OjpyZXRhaW5JY29uRm9yUGFnZVVS
TChjb25zdCBRVXJsJiBwYWdlVVJMKQogewotICAgIG1faWNvbkRhdGFiYXNlLT5yZXRhaW5JY29u
Rm9yUGFnZVVSTChwYWdlVVJMKTsKKyAgICBtX2ljb25EYXRhYmFzZS0+cmV0YWluSWNvbkZvclBh
Z2VVUkwocGFnZVVSTC50b1N0cmluZyhRVXJsOjpGdWxseUVuY29kZWQpKTsKIH0KIAotdm9pZCBR
dFdlYkljb25EYXRhYmFzZUNsaWVudDo6cmVsZWFzZUljb25Gb3JQYWdlVVJMKGNvbnN0IFN0cmlu
ZyYgcGFnZVVSTCkKK3ZvaWQgUXRXZWJJY29uRGF0YWJhc2VDbGllbnQ6OnJlbGVhc2VJY29uRm9y
UGFnZVVSTChjb25zdCBRVXJsJiBwYWdlVVJMKQogewotICAgIG1faWNvbkRhdGFiYXNlLT5yZWxl
YXNlSWNvbkZvclBhZ2VVUkwocGFnZVVSTCk7CisgICAgbV9pY29uRGF0YWJhc2UtPnJlbGVhc2VJ
Y29uRm9yUGFnZVVSTChwYWdlVVJMLnRvU3RyaW5nKFFVcmw6OkZ1bGx5RW5jb2RlZCkpOwogfQog
CiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9xdC9RdFdlYkljb25EYXRhYmFzZUNsaWVudC5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL3F0L1F0V2ViSWNvbkRhdGFiYXNlQ2xpZW50LmgKaW5kZXggOTcxOTdkOGQ2NmU5NTUxNWI2
MjI5ODlhMTBkMzA2YjI4YzFhYzRjNi4uYmE1MDliNzQyZDljMDlhNmFkYTQ0ZTZiMTM3ZTY1M2Ey
Zjc0OTI1YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L1F0V2ViSWNv
bkRhdGFiYXNlQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L1F0V2Vi
SWNvbkRhdGFiYXNlQ2xpZW50LmgKQEAgLTMzLDEwICszMyw2IEBAIGNsYXNzIFFJbWFnZTsKIGNs
YXNzIFFVcmw7CiBRVF9FTkRfTkFNRVNQQUNFCiAKLW5hbWVzcGFjZSBXVEYgewotY2xhc3MgU3Ry
aW5nOwotfQotCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogY2xhc3MgV2ViQ29udGV4dDsKQEAgLTQ5
LDE0ICs0NSwxNCBAQCBwdWJsaWM6CiAgICAgUXRXZWJJY29uRGF0YWJhc2VDbGllbnQoV2ViQ29u
dGV4dCopOwogICAgIH5RdFdlYkljb25EYXRhYmFzZUNsaWVudCgpOwogCi0gICAgV1RGOjpTdHJp
bmcgaWNvbkZvclBhZ2VVUkwoY29uc3QgV1RGOjpTdHJpbmcmIHBhZ2VVUkwpOwotICAgIFFJbWFn
ZSBpY29uSW1hZ2VGb3JQYWdlVVJMKGNvbnN0IFdURjo6U3RyaW5nJiBwYWdlVVJMLCBjb25zdCBR
U2l6ZSYgaWNvblNpemUgPSBRU2l6ZSgzMiwgMzIpKTsKKyAgICBRVXJsIGljb25Gb3JQYWdlVVJM
KGNvbnN0IFFVcmwmIHBhZ2VVUkwpOworICAgIFFJbWFnZSBpY29uSW1hZ2VGb3JQYWdlVVJMKGNv
bnN0IFFVcmwmIHBhZ2VVUkwsIGNvbnN0IFFTaXplJiBpY29uU2l6ZSA9IFFTaXplKDMyLCAzMikp
OwogCi0gICAgdm9pZCByZXRhaW5JY29uRm9yUGFnZVVSTChjb25zdCBXVEY6OlN0cmluZyYpOwot
ICAgIHZvaWQgcmVsZWFzZUljb25Gb3JQYWdlVVJMKGNvbnN0IFdURjo6U3RyaW5nJik7CisgICAg
dm9pZCByZXRhaW5JY29uRm9yUGFnZVVSTChjb25zdCBRVXJsJik7CisgICAgdm9pZCByZWxlYXNl
SWNvbkZvclBhZ2VVUkwoY29uc3QgUVVybCYpOwogCiBwdWJsaWM6Ci0gICAgUV9TSUdOQUwgdm9p
ZCBpY29uQ2hhbmdlZEZvclBhZ2VVUkwoY29uc3QgUVN0cmluZyYgcGFnZVVSTCk7CisgICAgUV9T
SUdOQUwgdm9pZCBpY29uQ2hhbmdlZEZvclBhZ2VVUkwoY29uc3QgUVVybCYgcGFnZVVSTCk7CiAK
IHByaXZhdGU6CiAgICAgc3RhdGljIHZvaWQgZGlkQ2hhbmdlSWNvbkZvclBhZ2VVUkwoV0tJY29u
RGF0YWJhc2VSZWYsIFdLVVJMUmVmIHBhZ2VVUkwsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>188338</attachid>
            <date>2013-02-14 06:30:52 -0800</date>
            <delta_ts>2013-03-11 14:38:45 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-109468-20130214152720.patch</filename>
            <type>text/plain</type>
            <size>9992</size>
            <attacher name="Jocelyn Turcotte">jturcotte</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQyMjUwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggNzEzNWFhMzk4NTI1Zjhm
ZGVhZmZmZmQ3YTBkZGI0ODZiNjZkNjA4NS4uNDQzNDdmNjBiZDQxYzYyNGNjNGQ5ODc0ZWNmMGU1
YWQ3ZGY2YzI5ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM1IEBACisyMDEzLTAyLTE0ICBKb2Nl
bHluIFR1cmNvdHRlICA8am9jZWx5bi50dXJjb3R0ZUBkaWdpYS5jb20+CisKKyAgICAgICAgW1F0
XVtXSzJdIEZhdm9yIFFVcmwgYW5kIFFTdHJpbmcgb3ZlciBXVEY6OlN0cmluZyBpbiB0aGUgUXQg
QVBJIGxheWVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xMDk0NjgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBJbiBwcmVwYXJhdGlvbiBmb3IgcGF0Y2hlcyB1c2luZyB0aGUgQyBBUEkgdHlwZXMgaW4gc29t
ZSBhcmVhcywgcmVtb3ZlIHRoZQorICAgICAgICB1c2FnZSBvZiBXVEY6OlN0cmluZyBvbiB0aGUg
YWZmZWN0ZWQgbGluZS4KKworICAgICAgICBVc2UgYSBRVXJsIGZvciBpY29uIFVSTCB0byBhdm9p
ZCB1bm5lY2Vzc2FyeSBjb252ZXJzaW9uLgorICAgICAgICBVc2UgYSBRU3RyaW5nIGZvciB0aGUg
cGFnZSBVUkwgdG8ga2VlcCBpdCBjb21wYXRpYmxlIHdpdGggV2ViUGFnZVByb3h5IGFuZAorICAg
ICAgICBXZWJJY29uRGF0YWJhc2UgYW5kIGF2b2lkIFFVcmwgcGFyc2luZy4KKworICAgICAgICAq
IFVJUHJvY2Vzcy9BUEkvcXQvcXF1aWNrd2Vidmlldy5jcHA6CisgICAgICAgIChRUXVpY2tXZWJW
aWV3UHJpdmF0ZTo6X3Ffb25JY29uQ2hhbmdlZEZvclBhZ2VVUkwpOgorICAgICAgICAoUVF1aWNr
V2ViVmlld1ByaXZhdGU6OnVwZGF0ZUljb24pOgorICAgICAgICAoUVF1aWNrV2ViVmlldzo6ZW1p
dFVybENoYW5nZUlmTmVlZGVkKToKKyAgICAgICAgKFFRdWlja1dlYlZpZXc6Omljb24pOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9BUEkvcXQvcXF1aWNrd2Vidmlld19wX3AuaDoKKyAgICAgICAgKFFR
dWlja1dlYlZpZXdQcml2YXRlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL3F0L3F3ZWJpY29u
aW1hZ2Vwcm92aWRlci5jcHA6CisgICAgICAgIChRV2ViSWNvbkltYWdlUHJvdmlkZXI6Omljb25V
UkxGb3JQYWdlVVJMSW5Db250ZXh0KToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL3F0L3F3ZWJp
Y29uaW1hZ2Vwcm92aWRlcl9wLmg6CisgICAgICAgICogVUlQcm9jZXNzL3F0L1F0V2ViSWNvbkRh
dGFiYXNlQ2xpZW50LmNwcDoKKyAgICAgICAgKFdlYktpdDo6UXRXZWJJY29uRGF0YWJhc2VDbGll
bnQ6Omljb25Gb3JQYWdlVVJMKToKKyAgICAgICAgKFdlYktpdDo6UXRXZWJJY29uRGF0YWJhc2VD
bGllbnQ6Omljb25JbWFnZUZvclBhZ2VVUkwpOgorICAgICAgICAoV2ViS2l0OjpRdFdlYkljb25E
YXRhYmFzZUNsaWVudDo6cmV0YWluSWNvbkZvclBhZ2VVUkwpOgorICAgICAgICAoV2ViS2l0OjpR
dFdlYkljb25EYXRhYmFzZUNsaWVudDo6cmVsZWFzZUljb25Gb3JQYWdlVVJMKToKKyAgICAgICAg
KiBVSVByb2Nlc3MvcXQvUXRXZWJJY29uRGF0YWJhc2VDbGllbnQuaDoKKyAgICAgICAgKFF0V2Vi
SWNvbkRhdGFiYXNlQ2xpZW50KToKKwogMjAxMy0wMi0xMSAgSm9jZWx5biBUdXJjb3R0ZSAgPGpv
Y2VseW4udHVyY290dGVAZGlnaWEuY29tPgogCiAgICAgICAgIFtXSzJdIEFsbG93IHVzaW5nIHRo
ZSB2YWx1ZSBvZiBXZWJDb250ZXh0OjpwbGF0Zm9ybURlZmF1bHRJY29uRGF0YWJhc2VQYXRoIGZy
b20gdGhlIEMgQVBJCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0
L3FxdWlja3dlYnZpZXcuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xcXVp
Y2t3ZWJ2aWV3LmNwcAppbmRleCAzYTgwMTBhOGJkNzJiNjhkYTU1M2RjNTc0ZjIxNTJhZDIyOWIw
YmMxLi5iZjJkMTdkNWNiNmM5NGIzNzJhOTc2Y2QwYmYzYjUwMGMzYzJiZDZlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3FxdWlja3dlYnZpZXcuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXF1aWNrd2Vidmlldy5jcHAKQEAgLTYy
Miw3ICs2MjIsNyBAQCB2b2lkIFFRdWlja1dlYlZpZXdQcml2YXRlOjpfcV9vblVybENoYW5nZWQo
KQogCiB2b2lkIFFRdWlja1dlYlZpZXdQcml2YXRlOjpfcV9vbkljb25DaGFuZ2VkRm9yUGFnZVVS
TChjb25zdCBRU3RyaW5nJiBwYWdlVXJsKQogewotICAgIGlmIChwYWdlVXJsICE9IFFTdHJpbmco
bV9jdXJyZW50VXJsKSkKKyAgICBpZiAocGFnZVVybCAhPSBtX2N1cnJlbnRVcmwpCiAgICAgICAg
IHJldHVybjsKIAogICAgIHVwZGF0ZUljb24oKTsKQEAgLTY0Miw3ICs2NDIsNyBAQCB2b2lkIFFR
dWlja1dlYlZpZXdQcml2YXRlOjp1cGRhdGVJY29uKCkKICAgICBpZiAoIXByb3ZpZGVyKQogICAg
ICAgICByZXR1cm47CiAKLSAgICBXVEY6OlN0cmluZyBpY29uVXJsID0gcHJvdmlkZXItPmljb25V
UkxGb3JQYWdlVVJMSW5Db250ZXh0KG1fY3VycmVudFVybCwgY29udGV4dC5nZXQoKSk7CisgICAg
UVVybCBpY29uVXJsID0gcHJvdmlkZXItPmljb25VUkxGb3JQYWdlVVJMSW5Db250ZXh0KG1fY3Vy
cmVudFVybCwgY29udGV4dC5nZXQoKSk7CiAKICAgICBpZiAoaWNvblVybCA9PSBtX2ljb25Vcmwp
CiAgICAgICAgIHJldHVybjsKQEAgLTE2ODIsNyArMTY4Miw3IEBAIHZvaWQgUVF1aWNrV2ViVmll
dzo6ZW1pdFVybENoYW5nZUlmTmVlZGVkKCkKIHsKICAgICBRX0QoUVF1aWNrV2ViVmlldyk7CiAK
LSAgICBXVEY6OlN0cmluZyBhY3RpdmVVcmwgPSBkLT53ZWJQYWdlUHJveHktPmFjdGl2ZVVSTCgp
OworICAgIFFTdHJpbmcgYWN0aXZlVXJsID0gZC0+d2ViUGFnZVByb3h5LT5hY3RpdmVVUkwoKTsK
ICAgICBpZiAoYWN0aXZlVXJsICE9IGQtPm1fY3VycmVudFVybCkgewogICAgICAgICBkLT5tX2N1
cnJlbnRVcmwgPSBhY3RpdmVVcmw7CiAgICAgICAgIGVtaXQgdXJsQ2hhbmdlZCgpOwpAQCAtMTcx
MCw3ICsxNzEwLDcgQEAgdm9pZCBRUXVpY2tXZWJWaWV3OjplbWl0VXJsQ2hhbmdlSWZOZWVkZWQo
KQogUVVybCBRUXVpY2tXZWJWaWV3OjppY29uKCkgY29uc3QKIHsKICAgICBRX0QoY29uc3QgUVF1
aWNrV2ViVmlldyk7Ci0gICAgcmV0dXJuIFFVcmwoZC0+bV9pY29uVXJsKTsKKyAgICByZXR1cm4g
ZC0+bV9pY29uVXJsOwogfQogCiAvKiEKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvcXQvcXF1aWNrd2Vidmlld19wX3AuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvcXQvcXF1aWNrd2Vidmlld19wX3AuaAppbmRleCBiOTE2NjE0MGFkZDcxNDEyZjE0YTUz
OWMyMjBiOTZkYTE4MjE4OTgyLi4wODI1YmQ1NzM0OWVlM2E1NmViMmNhMmJmMzQ3YjgyNjhlZDA3
YThlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3FxdWlja3dl
YnZpZXdfcF9wLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xcXVpY2t3
ZWJ2aWV3X3BfcC5oCkBAIC0yMDEsOSArMjAxLDkgQEAgcHJvdGVjdGVkOgogICAgIGJvb2wgbV9u
YXZpZ2F0b3JRdE9iamVjdEVuYWJsZWQ7CiAgICAgYm9vbCBtX3JlbmRlclRvT2Zmc2NyZWVuQnVm
ZmVyOwogICAgIGJvb2wgbV9hbGxvd0FueUhUVFBTQ2VydGlmaWNhdGVGb3JMb2NhbEhvc3Q7Ci0g
ICAgV1RGOjpTdHJpbmcgbV9pY29uVXJsOworICAgIFFVcmwgbV9pY29uVXJsOwogICAgIGludCBt
X2xvYWRQcm9ncmVzczsKLSAgICBXVEY6OlN0cmluZyBtX2N1cnJlbnRVcmw7CisgICAgUVN0cmlu
ZyBtX2N1cnJlbnRVcmw7CiB9OwogCiBjbGFzcyBRUXVpY2tXZWJWaWV3TGVnYWN5UHJpdmF0ZSA6
IHB1YmxpYyBRUXVpY2tXZWJWaWV3UHJpdmF0ZSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL3F0L3F3ZWJpY29uaW1hZ2Vwcm92aWRlci5jcHAgYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3F3ZWJpY29uaW1hZ2Vwcm92aWRlci5jcHAKaW5kZXggYWEy
NmMwNzM3ODdjYzkxYWExMjU5ODBhODIzMGQ2ZTY3YWRiMzUxYy4uZTYyNWNkNzNiOTk0MmU0ZjQ4
NjEwNjAzNGUzNmE3NTFmMTVjY2ViZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9xdC9xd2ViaWNvbmltYWdlcHJvdmlkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvcXQvcXdlYmljb25pbWFnZXByb3ZpZGVyLmNwcApAQCAtMzgsMjkgKzM4
LDI5IEBAIFFXZWJJY29uSW1hZ2VQcm92aWRlcjo6flFXZWJJY29uSW1hZ2VQcm92aWRlcigpCiB7
CiB9CiAKLVdURjo6U3RyaW5nIFFXZWJJY29uSW1hZ2VQcm92aWRlcjo6aWNvblVSTEZvclBhZ2VV
UkxJbkNvbnRleHQoY29uc3QgV1RGOjpTdHJpbmcgJnBhZ2VVUkwsIFF0V2ViQ29udGV4dCogY29u
dGV4dCkKK1FVcmwgUVdlYkljb25JbWFnZVByb3ZpZGVyOjppY29uVVJMRm9yUGFnZVVSTEluQ29u
dGV4dChjb25zdCBRU3RyaW5nICZwYWdlVVJMLCBRdFdlYkNvbnRleHQqIGNvbnRleHQpCiB7CiAg
ICAgUXRXZWJJY29uRGF0YWJhc2VDbGllbnQqIGljb25EYXRhYmFzZSA9IGNvbnRleHQtPmljb25E
YXRhYmFzZSgpOwotICAgIFdURjo6U3RyaW5nIGljb25VUkwgPSBpY29uRGF0YWJhc2UtPmljb25G
b3JQYWdlVVJMKHBhZ2VVUkwpOworICAgIFFVcmwgaWNvblVSTCA9IGljb25EYXRhYmFzZS0+aWNv
bkZvclBhZ2VVUkwocGFnZVVSTCk7CiAKICAgICBpZiAoaWNvblVSTC5pc0VtcHR5KCkpCi0gICAg
ICAgIHJldHVybiBTdHJpbmcoKTsKKyAgICAgICAgcmV0dXJuIFFVcmwoKTsKIAogICAgIFFVcmwg
dXJsOwogICAgIHVybC5zZXRTY2hlbWUoUVN0cmluZ0xpdGVyYWwoImltYWdlIikpOwogICAgIHVy
bC5zZXRIb3N0KFFXZWJJY29uSW1hZ2VQcm92aWRlcjo6aWRlbnRpZmllcigpKTsKICAgICAvLyBN
YWtlIHN1cmUgdGhhdCBRTUwgZG9lc24ndCBzaG93IGNhY2hlZCB2ZXJzaW9ucyBvZiB0aGUgcHJl
dmlvdXMgaWNvbiBpZiB0aGUgaWNvbiBsb2NhdGlvbiBjaGFuZ2VkLgotICAgIHVybC5zZXRQYXRo
KFFMYXRpbjFDaGFyKCcvJykgKyBRU3RyaW5nOjpudW1iZXIoV1RGOjpTdHJpbmdIYXNoOjpoYXNo
KGljb25VUkwpKSk7CisgICAgdXJsLnNldFBhdGgoUUxhdGluMUNoYXIoJy8nKSArIFFTdHJpbmc6
Om51bWJlcihXVEY6OlN0cmluZ0hhc2g6Omhhc2goaWNvblVSTC50b1N0cmluZygpKSkpOwogCiAg
ICAgLy8gRklYTUU6IFVzZSBRVXJsOjpEZWNvZGVkTW9kZSB3aGVuIGxhbmRlZCBpbiBRdAotICAg
IHVybC5zZXRGcmFnbWVudChRU3RyaW5nOjpmcm9tTGF0aW4xKFFCeXRlQXJyYXkoUVN0cmluZyhw
YWdlVVJMKS50b1V0ZjgoKSkudG9CYXNlNjQoKSkpOworICAgIHVybC5zZXRGcmFnbWVudChRU3Ry
aW5nOjpmcm9tTGF0aW4xKHBhZ2VVUkwudG9VdGY4KCkudG9CYXNlNjQoKSkpOwogCiAgICAgLy8g
RklYTUU6IFdlIGNhbid0IGtub3cgd2hlbiB0aGUgaWNvbiB1cmwgaXMgbm8gbG9uZ2VyIGluIHVz
ZSwKICAgICAvLyBzbyB3ZSBuZXZlciByZWxlYXNlIHRoZXNlIGljb25zLiBBdCBzb21lIHBvaW50
IHdlIG1pZ2h0IHdhbnQKICAgICAvLyB0byBpbnRyb2R1Y2UgZXhwaXJ5IG9mIGljb25zIHRvIGVs
ZXZhdGUgdGhpcyBpc3N1ZS4KICAgICBpY29uRGF0YWJhc2UtPnJldGFpbkljb25Gb3JQYWdlVVJM
KHBhZ2VVUkwpOwogCi0gICAgcmV0dXJuIHVybC50b1N0cmluZyhRVXJsOjpGdWxseUVuY29kZWQp
OworICAgIHJldHVybiB1cmw7CiB9CiAKIFFJbWFnZSBRV2ViSWNvbkltYWdlUHJvdmlkZXI6OnJl
cXVlc3RJbWFnZShjb25zdCBRU3RyaW5nJiBpZCwgUVNpemUqIHNpemUsIGNvbnN0IFFTaXplJiBy
ZXF1ZXN0ZWRTaXplKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9x
dC9xd2ViaWNvbmltYWdlcHJvdmlkZXJfcC5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9xdC9xd2ViaWNvbmltYWdlcHJvdmlkZXJfcC5oCmluZGV4IDdlZmUyMWExNDE5ZTZmNTA4NWVj
NWRlMDY0YjQ2ZDMyM2Y3ZDY4NjMuLjJkZjk3YzJlZDAxOGI5MWU0MzgyZjM2ZjI2ZjJkNDhmODQ1
MTQ0N2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXdlYmlj
b25pbWFnZXByb3ZpZGVyX3AuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0
L3F3ZWJpY29uaW1hZ2Vwcm92aWRlcl9wLmgKQEAgLTM2LDcgKzM2LDcgQEAgcHVibGljOgogCiAg
ICAgc3RhdGljIFFTdHJpbmcgaWRlbnRpZmllcigpIHsgcmV0dXJuIFFTdHJpbmdMaXRlcmFsKCJ3
ZWJpY29uIik7IH0KIAotICAgIFdURjo6U3RyaW5nIGljb25VUkxGb3JQYWdlVVJMSW5Db250ZXh0
KGNvbnN0IFdURjo6U3RyaW5nJiBwYWdlVVJMLCBXZWJLaXQ6OlF0V2ViQ29udGV4dCogY29udGV4
dCk7CisgICAgUVVybCBpY29uVVJMRm9yUGFnZVVSTEluQ29udGV4dChjb25zdCBRU3RyaW5nJiBw
YWdlVVJMLCBXZWJLaXQ6OlF0V2ViQ29udGV4dCogY29udGV4dCk7CiAgICAgdmlydHVhbCBRSW1h
Z2UgcmVxdWVzdEltYWdlKGNvbnN0IFFTdHJpbmcmIGlkLCBRU2l6ZSogc2l6ZSwgY29uc3QgUVNp
emUmIHJlcXVlc3RlZFNpemUpOwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL3F0L1F0V2ViSWNvbkRhdGFiYXNlQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9xdC9RdFdlYkljb25EYXRhYmFzZUNsaWVudC5jcHAKaW5kZXggN2RiYjI3M2ZkMTJm
YTM5YmI3N2M1YzMyMDAwYjM4MTQ1ZDkxZGFmMy4uM2YzOGQ2NDk0NzA5YWRiYzE4Yjk1N2UyMjEz
NDVlYjFkZmM5YWM2YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L1F0
V2ViSWNvbkRhdGFiYXNlQ2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
cXQvUXRXZWJJY29uRGF0YWJhc2VDbGllbnQuY3BwCkBAIC02NSwyNCArNjUsMjQgQEAgdm9pZCBR
dFdlYkljb25EYXRhYmFzZUNsaWVudDo6ZGlkQ2hhbmdlSWNvbkZvclBhZ2VVUkwoV0tJY29uRGF0
YWJhc2VSZWYsIFdLVVJMUmUKICAgICBlbWl0IHRvUXRXZWJJY29uRGF0YWJhc2VDbGllbnQoY2xp
ZW50SW5mbyktPmljb25DaGFuZ2VkRm9yUGFnZVVSTCh0b0ltcGwocGFnZVVSTCktPnN0cmluZygp
KTsKIH0KIAotV1RGOjpTdHJpbmcgUXRXZWJJY29uRGF0YWJhc2VDbGllbnQ6Omljb25Gb3JQYWdl
VVJMKGNvbnN0IFdURjo6U3RyaW5nJiBwYWdlVVJMKQorUVVybCBRdFdlYkljb25EYXRhYmFzZUNs
aWVudDo6aWNvbkZvclBhZ2VVUkwoY29uc3QgUVN0cmluZyYgcGFnZVVSTCkKIHsKICAgICBTdHJp
bmcgaWNvblVSTDsKICAgICBtX2ljb25EYXRhYmFzZS0+c3luY2hyb25vdXNJY29uVVJMRm9yUGFn
ZVVSTChwYWdlVVJMLCBpY29uVVJMKTsKIAogICAgIGlmIChpY29uVVJMLmlzRW1wdHkoKSkKLSAg
ICAgICAgcmV0dXJuIFN0cmluZygpOworICAgICAgICByZXR1cm4gUVVybCgpOwogCiAgICAgLy8g
VmVyaWZ5IHRoYXQgdGhlIGltYWdlIGRhdGEgaXMgYWN0dWFsbHkgYXZhaWxhYmxlIGJlZm9yZSBy
ZXBvcnRpbmcgYmFjawogICAgIC8vIGEgdXJsLCBzaW5jZSBjbGllbnRzIGFzc3VtZSB0aGF0IHRo
ZSB1cmwgY2FuIGJlIHVzZWQgZGlyZWN0bHkuCiAgICAgV2ViQ29yZTo6SW1hZ2UqIGljb25JbWFn
ZSA9IG1faWNvbkRhdGFiYXNlLT5pbWFnZUZvclBhZ2VVUkwocGFnZVVSTCk7CiAgICAgaWYgKCFp
Y29uSW1hZ2UgfHwgaWNvbkltYWdlLT5pc051bGwoKSkKLSAgICAgICAgcmV0dXJuIFN0cmluZygp
OworICAgICAgICByZXR1cm4gUVVybCgpOwogCi0gICAgcmV0dXJuIGljb25VUkw7CisgICAgcmV0
dXJuIFFVcmwoaWNvblVSTCk7CiB9CiAKLVFJbWFnZSBRdFdlYkljb25EYXRhYmFzZUNsaWVudDo6
aWNvbkltYWdlRm9yUGFnZVVSTChjb25zdCBXVEY6OlN0cmluZyYgcGFnZVVSTCwgY29uc3QgUVNp
emUmIGljb25TaXplKQorUUltYWdlIFF0V2ViSWNvbkRhdGFiYXNlQ2xpZW50OjppY29uSW1hZ2VG
b3JQYWdlVVJMKGNvbnN0IFFTdHJpbmcmIHBhZ2VVUkwsIGNvbnN0IFFTaXplJiBpY29uU2l6ZSkK
IHsKICAgICBNdXRleExvY2tlciBsb2NrZXIobV9pbWFnZUxvY2spOwogCkBAIC05NSwxMiArOTUs
MTIgQEAgUUltYWdlIFF0V2ViSWNvbkRhdGFiYXNlQ2xpZW50OjppY29uSW1hZ2VGb3JQYWdlVVJM
KGNvbnN0IFdURjo6U3RyaW5nJiBwYWdlVVJMLAogICAgIHJldHVybiBuYXRpdmVJbWFnZS0+dG9J
bWFnZSgpOwogfQogCi12b2lkIFF0V2ViSWNvbkRhdGFiYXNlQ2xpZW50OjpyZXRhaW5JY29uRm9y
UGFnZVVSTChjb25zdCBTdHJpbmcmIHBhZ2VVUkwpCit2b2lkIFF0V2ViSWNvbkRhdGFiYXNlQ2xp
ZW50OjpyZXRhaW5JY29uRm9yUGFnZVVSTChjb25zdCBRU3RyaW5nJiBwYWdlVVJMKQogewogICAg
IG1faWNvbkRhdGFiYXNlLT5yZXRhaW5JY29uRm9yUGFnZVVSTChwYWdlVVJMKTsKIH0KIAotdm9p
ZCBRdFdlYkljb25EYXRhYmFzZUNsaWVudDo6cmVsZWFzZUljb25Gb3JQYWdlVVJMKGNvbnN0IFN0
cmluZyYgcGFnZVVSTCkKK3ZvaWQgUXRXZWJJY29uRGF0YWJhc2VDbGllbnQ6OnJlbGVhc2VJY29u
Rm9yUGFnZVVSTChjb25zdCBRU3RyaW5nJiBwYWdlVVJMKQogewogICAgIG1faWNvbkRhdGFiYXNl
LT5yZWxlYXNlSWNvbkZvclBhZ2VVUkwocGFnZVVSTCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvcXQvUXRXZWJJY29uRGF0YWJhc2VDbGllbnQuaCBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9xdC9RdFdlYkljb25EYXRhYmFzZUNsaWVudC5oCmluZGV4IDk3MTk3
ZDhkNjZlOTU1MTViNjIyOTg5YTEwZDMwNmIyOGMxYWM0YzYuLjliNTMwN2YxZWM0MjkwYzQwODkz
M2I5ZTc1OGI0ODk0NDVmZWQzYjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9xdC9RdFdlYkljb25EYXRhYmFzZUNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9xdC9RdFdlYkljb25EYXRhYmFzZUNsaWVudC5oCkBAIC0zMywxMCArMzMsNiBAQCBjbGFz
cyBRSW1hZ2U7CiBjbGFzcyBRVXJsOwogUVRfRU5EX05BTUVTUEFDRQogCi1uYW1lc3BhY2UgV1RG
IHsKLWNsYXNzIFN0cmluZzsKLX0KLQogbmFtZXNwYWNlIFdlYktpdCB7CiAKIGNsYXNzIFdlYkNv
bnRleHQ7CkBAIC00OSwxMSArNDUsMTEgQEAgcHVibGljOgogICAgIFF0V2ViSWNvbkRhdGFiYXNl
Q2xpZW50KFdlYkNvbnRleHQqKTsKICAgICB+UXRXZWJJY29uRGF0YWJhc2VDbGllbnQoKTsKIAot
ICAgIFdURjo6U3RyaW5nIGljb25Gb3JQYWdlVVJMKGNvbnN0IFdURjo6U3RyaW5nJiBwYWdlVVJM
KTsKLSAgICBRSW1hZ2UgaWNvbkltYWdlRm9yUGFnZVVSTChjb25zdCBXVEY6OlN0cmluZyYgcGFn
ZVVSTCwgY29uc3QgUVNpemUmIGljb25TaXplID0gUVNpemUoMzIsIDMyKSk7CisgICAgUVVybCBp
Y29uRm9yUGFnZVVSTChjb25zdCBRU3RyaW5nJiBwYWdlVVJMKTsKKyAgICBRSW1hZ2UgaWNvbklt
YWdlRm9yUGFnZVVSTChjb25zdCBRU3RyaW5nJiBwYWdlVVJMLCBjb25zdCBRU2l6ZSYgaWNvblNp
emUgPSBRU2l6ZSgzMiwgMzIpKTsKIAotICAgIHZvaWQgcmV0YWluSWNvbkZvclBhZ2VVUkwoY29u
c3QgV1RGOjpTdHJpbmcmKTsKLSAgICB2b2lkIHJlbGVhc2VJY29uRm9yUGFnZVVSTChjb25zdCBX
VEY6OlN0cmluZyYpOworICAgIHZvaWQgcmV0YWluSWNvbkZvclBhZ2VVUkwoY29uc3QgUVN0cmlu
ZyYpOworICAgIHZvaWQgcmVsZWFzZUljb25Gb3JQYWdlVVJMKGNvbnN0IFFTdHJpbmcmKTsKIAog
cHVibGljOgogICAgIFFfU0lHTkFMIHZvaWQgaWNvbkNoYW5nZWRGb3JQYWdlVVJMKGNvbnN0IFFT
dHJpbmcmIHBhZ2VVUkwpOwo=
</data>
<flag name="review"
          id="208421"
          type_id="1"
          status="+"
          setter="allan.jensen"
    />
          </attachment>
      

    </bug>

</bugzilla>