<?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>177134</bug_id>
          
          <creation_ts>2017-09-19 06:40:47 -0700</creation_ts>
          <short_desc>WebDriver: Implement commands to get and set the window rect</short_desc>
          <delta_ts>2017-09-27 12:29:06 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebDriver</component>
          <version>WebKit 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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Carlos Garcia Campos">cgarcia</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>bburg</cc>
    
    <cc>buildbot</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1350292</commentid>
    <comment_count>0</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2017-09-19 06:40:47 -0700</bug_when>
    <thetext>We are currently implementing the selenium legacy ones, we should implement the w3c ones instead.

https://w3c.github.io/webdriver/webdriver-spec.html#resizing-and-positioning-windows</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1350293</commentid>
    <comment_count>1</comment_count>
      <attachid>321196</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2017-09-19 06:47:09 -0700</bug_when>
    <thetext>Created attachment 321196
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1350294</commentid>
    <comment_count>2</comment_count>
    <who name="Build Bot">buildbot</who>
    <bug_when>2017-09-19 06:49:30 -0700</bug_when>
    <thetext>Attachment 321196 did not pass style-queue:


ERROR: Source/WebDriver/WebDriverService.h:82:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebDriver/WebDriverService.h:83:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebDriver/Session.h:89:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebDriver/Session.h:90:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebDriver/Session.h:123:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebDriver/Session.h:124:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebDriver/Session.h:125:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebDriver/WebDriverService.cpp:786:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebDriver/WebDriverService.cpp:809:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebDriver/Session.cpp:639:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebDriver/Session.cpp:678:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebDriver/Session.cpp:695:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebDriver/Session.cpp:712:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebDriver/Session.cpp:728:  Extra space before ( in function call  [whitespace/parens] [4]
Total errors found: 14 in 5 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1350316</commentid>
    <comment_count>3</comment_count>
      <attachid>321196</attachid>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2017-09-19 08:45:03 -0700</bug_when>
    <thetext>Comment on attachment 321196
Patch

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

r=me

&gt; Source/WebDriver/ChangeLog:13
&gt; +        (WebDriver::Session::getToplevelBrowsingContextRect): Helper to get the window rext. This is used by both get

Nit: &apos;rect&apos;

&gt; Source/WebDriver/Session.cpp:678
&gt; +void Session::moveToplevelBrowsingContextwindow(double x, double y, Function&lt;void (CommandResult&amp;&amp;)&gt;&amp;&amp; completionHandler)

Nit: &apos;moveToplevelBrowsingContextWindow&apos;

&gt; Source/WebDriver/Session.cpp:695
&gt; +void Session::resizeToplevelBrowsingContextwindow(double width, double height, Function&lt;void (CommandResult&amp;&amp;)&gt;&amp;&amp; completionHandler)

Ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1350680</commentid>
    <comment_count>4</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2017-09-19 23:32:45 -0700</bug_when>
    <thetext>Committed r222256: &lt;http://trac.webkit.org/changeset/222256&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1353418</commentid>
    <comment_count>5</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2017-09-27 12:29:06 -0700</bug_when>
    <thetext>&lt;rdar://problem/34693357&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>321196</attachid>
            <date>2017-09-19 06:47:09 -0700</date>
            <delta_ts>2017-09-19 08:45:03 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>wd-window-rect.diff</filename>
            <type>text/plain</type>
            <size>21350</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJEcml2ZXIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkRyaXZl
ci9DaGFuZ2VMb2cKaW5kZXggMzAxMmM2OWY0YTUuLmU1ZmQxZWJlYmMyIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViRHJpdmVyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViRHJpdmVyL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDMwIEBACisyMDE3LTA5LTE5ICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNn
YXJjaWFAaWdhbGlhLmNvbT4KKworICAgICAgICBXZWJEcml2ZXI6IEltcGxlbWVudCBjb21tYW5k
cyB0byBnZXQgYW5kIHNldCB0aGUgd2luZG93IHJlY3QKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3NzEzNAorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIFdlIGFyZSBjdXJyZW50bHkgaW1wbGVtZW50aW5nIHRo
ZSBzZWxlbml1bSBsZWdhY3kgb25lcywgd2Ugc2hvdWxkIGltcGxlbWVudCB0aGUgdzNjIG9uZXMg
aW5zdGVhZC4KKworICAgICAgICBodHRwczovL3czYy5naXRodWIuaW8vd2ViZHJpdmVyL3dlYmRy
aXZlci1zcGVjLmh0bWwjcmVzaXppbmctYW5kLXBvc2l0aW9uaW5nLXdpbmRvd3MKKworICAgICAg
ICAqIFNlc3Npb24uY3BwOgorICAgICAgICAoV2ViRHJpdmVyOjpTZXNzaW9uOjpnZXRUb3BsZXZl
bEJyb3dzaW5nQ29udGV4dFJlY3QpOiBIZWxwZXIgdG8gZ2V0IHRoZSB3aW5kb3cgcmV4dC4gVGhp
cyBpcyB1c2VkIGJ5IGJvdGggZ2V0CisgICAgICAgIGFuZCBzZXQgd2luZG93IHJlY3QgY29tbWFu
ZHMuCisgICAgICAgIChXZWJEcml2ZXI6OlNlc3Npb246Om1vdmVUb3BsZXZlbEJyb3dzaW5nQ29u
dGV4dHdpbmRvdyk6IEhlbHBlciB0byBhc2sgYXV0b21hdGlvbiB0byBtb3ZlIHRoZSB3aW5kb3cu
CisgICAgICAgIChXZWJEcml2ZXI6OlNlc3Npb246OnJlc2l6ZVRvcGxldmVsQnJvd3NpbmdDb250
ZXh0d2luZG93KTogSGVscGVyIHRvIGFzayBhdXRvbWF0aW9uIHRvIHJlc2l6ZSB0aGUgd2luZG93
LgorICAgICAgICAoV2ViRHJpdmVyOjpTZXNzaW9uOjpnZXRXaW5kb3dSZWN0KTogSGFuZGxlIHBy
b21wdHMgYW5kIHRoZW4gY2FsbCBnZXRUb3BsZXZlbEJyb3dzaW5nQ29udGV4dFJlY3QoKS4KKyAg
ICAgICAgKFdlYkRyaXZlcjo6U2Vzc2lvbjo6c2V0V2luZG93UmVjdCk6IEhhbmRsZSBwcm9tcHRz
IGFuZCB0aGVuIG1vdmUgYW5kIHJlc2l6ZSB0aGUgd2luZG93IGFjY29yZGluZyB0byB0aGUgZ2l2
ZW4KKyAgICAgICAgcGFyYW1ldGVycyBhbmQgZmluaXNoIHRoZSBvcGVyYXRpb24gY2FsbGluZyBn
ZXRUb3BsZXZlbEJyb3dzaW5nQ29udGV4dFJlY3QoKS4KKyAgICAgICAgKiBTZXNzaW9uLmg6Cisg
ICAgICAgICogV2ViRHJpdmVyU2VydmljZS5jcHA6CisgICAgICAgIChXZWJEcml2ZXI6OldlYkRy
aXZlclNlcnZpY2U6OmdldFdpbmRvd1JlY3QpOiBBc2sgdGhlIHNlc3Npb24gdG8gZ2V0IHRoZSB3
aW5kb3cgcmVjdC4KKyAgICAgICAgKFdlYkRyaXZlcjo6dmFsdWVBc051bWJlckluUmFuZ2UpOiBI
ZWxwZXIgdG8gY2hlY2sgYSB2YWx1ZSBpcyBhIHZhbGlkIG51bWJlciBpbiB0aGUgZ2l2ZW4gcmFu
Z2UuCisgICAgICAgIChXZWJEcml2ZXI6OldlYkRyaXZlclNlcnZpY2U6OnNldFdpbmRvd1JlY3Qp
OiBHZXQgYW5kIGNoZWNrIHNpemUgYW5kIHBvc2l0aW9uIGZyb20gcGFyYW1ldGVycyBhbmQgdGhl
biBhc2sgdGhlCisgICAgICAgIHNlc3Npb24gdG8gc2V0IHRoZSB3aW5kb3cgcmVjdC4KKyAgICAg
ICAgKiBXZWJEcml2ZXJTZXJ2aWNlLmg6CisKIDIwMTctMDktMTkgIENhcmxvcyBHYXJjaWEgQ2Ft
cG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29tPgogCiAgICAgICAgIFdlYkRyaXZlcjogd3JvbmcgcmVz
cG9uc2UgaW4gY2FzZSBvZiBlcnJvcnMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJEcml2ZXIvU2Vz
c2lvbi5jcHAgYi9Tb3VyY2UvV2ViRHJpdmVyL1Nlc3Npb24uY3BwCmluZGV4IDVlY2ViOWM1YzQx
Li5jMTg5OTQzYTg1ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkRyaXZlci9TZXNzaW9uLmNwcAor
KysgYi9Tb3VyY2UvV2ViRHJpdmVyL1Nlc3Npb24uY3BwCkBAIC02MzYsMTMgKzYzNiw4IEBAIHZv
aWQgU2Vzc2lvbjo6c3dpdGNoVG9QYXJlbnRGcmFtZShGdW5jdGlvbjx2b2lkIChDb21tYW5kUmVz
dWx0JiYpPiYmIGNvbXBsZXRpb25ICiAgICAgfSk7CiB9CiAKLXZvaWQgU2Vzc2lvbjo6Z2V0V2lu
ZG93UG9zaXRpb24oRnVuY3Rpb248dm9pZCAoQ29tbWFuZFJlc3VsdCYmKT4mJiBjb21wbGV0aW9u
SGFuZGxlcikKK3ZvaWQgU2Vzc2lvbjo6Z2V0VG9wbGV2ZWxCcm93c2luZ0NvbnRleHRSZWN0KEZ1
bmN0aW9uPHZvaWQgKENvbW1hbmRSZXN1bHQmJik+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7Ci0g
ICAgaWYgKCFtX3RvcGxldmVsQnJvd3NpbmdDb250ZXh0KSB7Ci0gICAgICAgIGNvbXBsZXRpb25I
YW5kbGVyKENvbW1hbmRSZXN1bHQ6OmZhaWwoQ29tbWFuZFJlc3VsdDo6RXJyb3JDb2RlOjpOb1N1
Y2hXaW5kb3cpKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQogICAgIFJlZlB0cjxJbnNwZWN0
b3JPYmplY3Q+IHBhcmFtZXRlcnMgPSBJbnNwZWN0b3JPYmplY3Q6OmNyZWF0ZSgpOwogICAgIHBh
cmFtZXRlcnMtPnNldFN0cmluZyhBU0NJSUxpdGVyYWwoImhhbmRsZSIpLCBtX3RvcGxldmVsQnJv
d3NpbmdDb250ZXh0LnZhbHVlKCkpOwogICAgIG1faG9zdC0+c2VuZENvbW1hbmRUb0JhY2tlbmQo
QVNDSUlMaXRlcmFsKCJnZXRCcm93c2luZ0NvbnRleHQiKSwgV1RGTW92ZShwYXJhbWV0ZXJzKSwg
W3RoaXMsIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwgY29tcGxldGlvbkhhbmRsZXIg
PSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0oU2Vzc2lvbkhvc3Q6OkNvbW1hbmRSZXNwb25z
ZSYmIHJlc3BvbnNlKSB7CkBAIC02NTYsMjYgKzY1MSwzNyBAQCB2b2lkIFNlc3Npb246OmdldFdp
bmRvd1Bvc2l0aW9uKEZ1bmN0aW9uPHZvaWQgKENvbW1hbmRSZXN1bHQmJik+JiYgY29tcGxldGlv
bkhhbgogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAgICAgICAgIFJlZlB0cjxJbnNw
ZWN0b3JPYmplY3Q+IHdpbmRvd09yaWdpbjsKLSAgICAgICAgaWYgKCFicm93c2luZ0NvbnRleHQt
PmdldE9iamVjdChBU0NJSUxpdGVyYWwoIndpbmRvd09yaWdpbiIpLCB3aW5kb3dPcmlnaW4pKSB7
CisgICAgICAgIGRvdWJsZSB4LCB5OworICAgICAgICBpZiAoIWJyb3dzaW5nQ29udGV4dC0+Z2V0
T2JqZWN0KEFTQ0lJTGl0ZXJhbCgid2luZG93T3JpZ2luIiksIHdpbmRvd09yaWdpbikKKyAgICAg
ICAgICAgIHx8ICF3aW5kb3dPcmlnaW4tPmdldERvdWJsZShBU0NJSUxpdGVyYWwoIngiKSwgeCkK
KyAgICAgICAgICAgIHx8ICF3aW5kb3dPcmlnaW4tPmdldERvdWJsZShBU0NJSUxpdGVyYWwoInki
KSwgeSkpIHsKICAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKENvbW1hbmRSZXN1bHQ6OmZh
aWwoQ29tbWFuZFJlc3VsdDo6RXJyb3JDb2RlOjpVbmtub3duRXJyb3IpKTsKICAgICAgICAgICAg
IHJldHVybjsKICAgICAgICAgfQotICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihDb21tYW5kUmVz
dWx0OjpzdWNjZXNzKFdURk1vdmUod2luZG93T3JpZ2luKSkpOworICAgICAgICBSZWZQdHI8SW5z
cGVjdG9yT2JqZWN0PiB3aW5kb3dTaXplOworICAgICAgICBkb3VibGUgd2lkdGgsIGhlaWdodDsK
KyAgICAgICAgaWYgKCFicm93c2luZ0NvbnRleHQtPmdldE9iamVjdChBU0NJSUxpdGVyYWwoIndp
bmRvd1NpemUiKSwgd2luZG93U2l6ZSkKKyAgICAgICAgICAgIHx8ICF3aW5kb3dTaXplLT5nZXRE
b3VibGUoQVNDSUlMaXRlcmFsKCJ3aWR0aCIpLCB3aWR0aCkKKyAgICAgICAgICAgIHx8ICF3aW5k
b3dTaXplLT5nZXREb3VibGUoQVNDSUlMaXRlcmFsKCJoZWlnaHQiKSwgd2lkdGgpKSB7CisgICAg
ICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihDb21tYW5kUmVzdWx0OjpmYWlsKENvbW1hbmRSZXN1
bHQ6OkVycm9yQ29kZTo6VW5rbm93bkVycm9yKSk7CisgICAgICAgICAgICByZXR1cm47CisgICAg
ICAgIH0KKyAgICAgICAgYXV0byB3aW5kb3dSZWN0ID0gSW5zcGVjdG9yT2JqZWN0OjpjcmVhdGUo
KTsKKyAgICAgICAgd2luZG93UmVjdC0+c2V0RG91YmxlKEFTQ0lJTGl0ZXJhbCgieCIpLCB4KTsK
KyAgICAgICAgd2luZG93UmVjdC0+c2V0RG91YmxlKEFTQ0lJTGl0ZXJhbCgieSIpLCB5KTsKKyAg
ICAgICAgd2luZG93UmVjdC0+c2V0RG91YmxlKEFTQ0lJTGl0ZXJhbCgid2lkdGgiKSwgd2lkdGgp
OworICAgICAgICB3aW5kb3dSZWN0LT5zZXREb3VibGUoQVNDSUlMaXRlcmFsKCJoZWlnaHQiKSwg
aGVpZ2h0KTsKKyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoQ29tbWFuZFJlc3VsdDo6c3VjY2Vz
cyhXVEZNb3ZlKHdpbmRvd1JlY3QpKSk7CiAgICAgfSk7CiB9CiAKLXZvaWQgU2Vzc2lvbjo6c2V0
V2luZG93UG9zaXRpb24oaW50IHdpbmRvd1gsIGludCB3aW5kb3dZLCBGdW5jdGlvbjx2b2lkIChD
b21tYW5kUmVzdWx0JiYpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQordm9pZCBTZXNzaW9uOjptb3Zl
VG9wbGV2ZWxCcm93c2luZ0NvbnRleHR3aW5kb3coZG91YmxlIHgsIGRvdWJsZSB5LCBGdW5jdGlv
bjx2b2lkIChDb21tYW5kUmVzdWx0JiYpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewotICAgIGlm
ICghbV90b3BsZXZlbEJyb3dzaW5nQ29udGV4dCkgewotICAgICAgICBjb21wbGV0aW9uSGFuZGxl
cihDb21tYW5kUmVzdWx0OjpmYWlsKENvbW1hbmRSZXN1bHQ6OkVycm9yQ29kZTo6Tm9TdWNoV2lu
ZG93KSk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KICAgICBSZWZQdHI8SW5zcGVjdG9yT2Jq
ZWN0PiBwYXJhbWV0ZXJzID0gSW5zcGVjdG9yT2JqZWN0OjpjcmVhdGUoKTsKICAgICBwYXJhbWV0
ZXJzLT5zZXRTdHJpbmcoQVNDSUlMaXRlcmFsKCJoYW5kbGUiKSwgbV90b3BsZXZlbEJyb3dzaW5n
Q29udGV4dC52YWx1ZSgpKTsKICAgICBSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiB3aW5kb3dPcmln
aW4gPSBJbnNwZWN0b3JPYmplY3Q6OmNyZWF0ZSgpOwotICAgIHdpbmRvd09yaWdpbi0+c2V0SW50
ZWdlcigieCIsIHdpbmRvd1gpOwotICAgIHdpbmRvd09yaWdpbi0+c2V0SW50ZWdlcigieSIsIHdp
bmRvd1kpOworICAgIHdpbmRvd09yaWdpbi0+c2V0RG91YmxlKCJ4IiwgeCk7CisgICAgd2luZG93
T3JpZ2luLT5zZXREb3VibGUoInkiLCB5KTsKICAgICBwYXJhbWV0ZXJzLT5zZXRPYmplY3QoQVND
SUlMaXRlcmFsKCJvcmlnaW4iKSwgV1RGTW92ZSh3aW5kb3dPcmlnaW4pKTsKICAgICBtX2hvc3Qt
PnNlbmRDb21tYW5kVG9CYWNrZW5kKEFTQ0lJTGl0ZXJhbCgibW92ZVdpbmRvd09mQnJvd3NpbmdD
b250ZXh0IiksIFdURk1vdmUocGFyYW1ldGVycyksIFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFr
ZVJlZigqdGhpcyksIGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxl
cildKFNlc3Npb25Ib3N0OjpDb21tYW5kUmVzcG9uc2UmJiByZXNwb25zZSkgewogICAgICAgICBp
ZiAocmVzcG9uc2UuaXNFcnJvcikgewpAQCAtNjg2LDUzICs2OTIsODYgQEAgdm9pZCBTZXNzaW9u
OjpzZXRXaW5kb3dQb3NpdGlvbihpbnQgd2luZG93WCwgaW50IHdpbmRvd1ksIEZ1bmN0aW9uPHZv
aWQgKENvbW1hbmQKICAgICB9KTsKIH0KIAotdm9pZCBTZXNzaW9uOjpnZXRXaW5kb3dTaXplKEZ1
bmN0aW9uPHZvaWQgKENvbW1hbmRSZXN1bHQmJik+JiYgY29tcGxldGlvbkhhbmRsZXIpCit2b2lk
IFNlc3Npb246OnJlc2l6ZVRvcGxldmVsQnJvd3NpbmdDb250ZXh0d2luZG93KGRvdWJsZSB3aWR0
aCwgZG91YmxlIGhlaWdodCwgRnVuY3Rpb248dm9pZCAoQ29tbWFuZFJlc3VsdCYmKT4mJiBjb21w
bGV0aW9uSGFuZGxlcikKIHsKLSAgICBpZiAoIW1fdG9wbGV2ZWxCcm93c2luZ0NvbnRleHQpIHsK
LSAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoQ29tbWFuZFJlc3VsdDo6ZmFpbChDb21tYW5kUmVz
dWx0OjpFcnJvckNvZGU6Ok5vU3VjaFdpbmRvdykpOwotICAgICAgICByZXR1cm47Ci0gICAgfQot
CiAgICAgUmVmUHRyPEluc3BlY3Rvck9iamVjdD4gcGFyYW1ldGVycyA9IEluc3BlY3Rvck9iamVj
dDo6Y3JlYXRlKCk7CiAgICAgcGFyYW1ldGVycy0+c2V0U3RyaW5nKEFTQ0lJTGl0ZXJhbCgiaGFu
ZGxlIiksIG1fdG9wbGV2ZWxCcm93c2luZ0NvbnRleHQudmFsdWUoKSk7Ci0gICAgbV9ob3N0LT5z
ZW5kQ29tbWFuZFRvQmFja2VuZChBU0NJSUxpdGVyYWwoImdldEJyb3dzaW5nQ29udGV4dCIpLCBX
VEZNb3ZlKHBhcmFtZXRlcnMpLCBbdGhpcywgcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMp
LCBjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXShTZXNzaW9u
SG9zdDo6Q29tbWFuZFJlc3BvbnNlJiYgcmVzcG9uc2UpIHsKLSAgICAgICAgaWYgKHJlc3BvbnNl
LmlzRXJyb3IgfHwgIXJlc3BvbnNlLnJlc3BvbnNlT2JqZWN0KSB7CisgICAgUmVmUHRyPEluc3Bl
Y3Rvck9iamVjdD4gd2luZG93U2l6ZSA9IEluc3BlY3Rvck9iamVjdDo6Y3JlYXRlKCk7CisgICAg
d2luZG93U2l6ZS0+c2V0RG91YmxlKCJ3aWR0aCIsIHdpZHRoKTsKKyAgICB3aW5kb3dTaXplLT5z
ZXREb3VibGUoImhlaWdodCIsIGhlaWdodCk7CisgICAgcGFyYW1ldGVycy0+c2V0T2JqZWN0KEFT
Q0lJTGl0ZXJhbCgic2l6ZSIpLCBXVEZNb3ZlKHdpbmRvd1NpemUpKTsKKyAgICBtX2hvc3QtPnNl
bmRDb21tYW5kVG9CYWNrZW5kKEFTQ0lJTGl0ZXJhbCgicmVzaXplV2luZG93T2ZCcm93c2luZ0Nv
bnRleHQiKSwgV1RGTW92ZShwYXJhbWV0ZXJzKSwgW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBtYWtl
UmVmKCp0aGlzKSwgY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVy
KV0oU2Vzc2lvbkhvc3Q6OkNvbW1hbmRSZXNwb25zZSYmIHJlc3BvbnNlKSB7CisgICAgICAgIGlm
IChyZXNwb25zZS5pc0Vycm9yKSB7CiAgICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihDb21t
YW5kUmVzdWx0OjpmYWlsKFdURk1vdmUocmVzcG9uc2UucmVzcG9uc2VPYmplY3QpKSk7CiAgICAg
ICAgICAgICByZXR1cm47CiAgICAgICAgIH0KLSAgICAgICAgUmVmUHRyPEluc3BlY3Rvck9iamVj
dD4gYnJvd3NpbmdDb250ZXh0OwotICAgICAgICBpZiAoIXJlc3BvbnNlLnJlc3BvbnNlT2JqZWN0
LT5nZXRPYmplY3QoQVNDSUlMaXRlcmFsKCJjb250ZXh0IiksIGJyb3dzaW5nQ29udGV4dCkpIHsK
LSAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKENvbW1hbmRSZXN1bHQ6OmZhaWwoQ29tbWFu
ZFJlc3VsdDo6RXJyb3JDb2RlOjpVbmtub3duRXJyb3IpKTsKLSAgICAgICAgICAgIHJldHVybjsK
LSAgICAgICAgfQotICAgICAgICBSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiB3aW5kb3dTaXplOwot
ICAgICAgICBpZiAoIWJyb3dzaW5nQ29udGV4dC0+Z2V0T2JqZWN0KEFTQ0lJTGl0ZXJhbCgid2lu
ZG93U2l6ZSIpLCB3aW5kb3dTaXplKSkgewotICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIo
Q29tbWFuZFJlc3VsdDo6ZmFpbChDb21tYW5kUmVzdWx0OjpFcnJvckNvZGU6OlVua25vd25FcnJv
cikpOworICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihDb21tYW5kUmVzdWx0OjpzdWNjZXNzKCkp
OworICAgIH0pOworfQorCit2b2lkIFNlc3Npb246OmdldFdpbmRvd1JlY3QoRnVuY3Rpb248dm9p
ZCAoQ29tbWFuZFJlc3VsdCYmKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3sKKyAgICBpZiAoIW1f
dG9wbGV2ZWxCcm93c2luZ0NvbnRleHQpIHsKKyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoQ29t
bWFuZFJlc3VsdDo6ZmFpbChDb21tYW5kUmVzdWx0OjpFcnJvckNvZGU6Ok5vU3VjaFdpbmRvdykp
OworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgaGFuZGxlVXNlclByb21wdHMoW3RoaXMs
IGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcildKENvbW1hbmRS
ZXN1bHQmJiByZXN1bHQpIG11dGFibGUgeworICAgICAgICBpZiAocmVzdWx0LmlzRXJyb3IoKSkg
eworICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoV1RGTW92ZShyZXN1bHQpKTsKICAgICAg
ICAgICAgIHJldHVybjsKICAgICAgICAgfQotICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihDb21t
YW5kUmVzdWx0OjpzdWNjZXNzKFdURk1vdmUod2luZG93U2l6ZSkpKTsKKyAgICAgICAgZ2V0VG9w
bGV2ZWxCcm93c2luZ0NvbnRleHRSZWN0KFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKICAg
ICB9KTsKIH0KIAotdm9pZCBTZXNzaW9uOjpzZXRXaW5kb3dTaXplKGludCB3aW5kb3dXaWR0aCwg
aW50IHdpbmRvd0hlaWdodCwgRnVuY3Rpb248dm9pZCAoQ29tbWFuZFJlc3VsdCYmKT4mJiBjb21w
bGV0aW9uSGFuZGxlcikKK3ZvaWQgU2Vzc2lvbjo6c2V0V2luZG93UmVjdChzdGQ6Om9wdGlvbmFs
PGRvdWJsZT4geCwgc3RkOjpvcHRpb25hbDxkb3VibGU+IHksIHN0ZDo6b3B0aW9uYWw8ZG91Ymxl
PiB3aWR0aCwgc3RkOjpvcHRpb25hbDxkb3VibGU+IGhlaWdodCwgRnVuY3Rpb248dm9pZCAoQ29t
bWFuZFJlc3VsdCYmKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBpZiAoIW1fdG9wbGV2
ZWxCcm93c2luZ0NvbnRleHQpIHsKICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoQ29tbWFuZFJl
c3VsdDo6ZmFpbChDb21tYW5kUmVzdWx0OjpFcnJvckNvZGU6Ok5vU3VjaFdpbmRvdykpOwogICAg
ICAgICByZXR1cm47CiAgICAgfQogCi0gICAgUmVmUHRyPEluc3BlY3Rvck9iamVjdD4gcGFyYW1l
dGVycyA9IEluc3BlY3Rvck9iamVjdDo6Y3JlYXRlKCk7Ci0gICAgcGFyYW1ldGVycy0+c2V0U3Ry
aW5nKEFTQ0lJTGl0ZXJhbCgiaGFuZGxlIiksIG1fdG9wbGV2ZWxCcm93c2luZ0NvbnRleHQudmFs
dWUoKSk7Ci0gICAgUmVmUHRyPEluc3BlY3Rvck9iamVjdD4gd2luZG93U2l6ZSA9IEluc3BlY3Rv
ck9iamVjdDo6Y3JlYXRlKCk7Ci0gICAgd2luZG93U2l6ZS0+c2V0SW50ZWdlcigid2lkdGgiLCB3
aW5kb3dXaWR0aCk7Ci0gICAgd2luZG93U2l6ZS0+c2V0SW50ZWdlcigiaGVpZ2h0Iiwgd2luZG93
SGVpZ2h0KTsKLSAgICBwYXJhbWV0ZXJzLT5zZXRPYmplY3QoQVNDSUlMaXRlcmFsKCJzaXplIiks
IFdURk1vdmUod2luZG93U2l6ZSkpOwotICAgIG1faG9zdC0+c2VuZENvbW1hbmRUb0JhY2tlbmQo
QVNDSUlMaXRlcmFsKCJyZXNpemVXaW5kb3dPZkJyb3dzaW5nQ29udGV4dCIpLCBXVEZNb3ZlKHBh
cmFtZXRlcnMpLCBbdGhpcywgcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpLCBjb21wbGV0
aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXShTZXNzaW9uSG9zdDo6Q29t
bWFuZFJlc3BvbnNlJiYgcmVzcG9uc2UpIHsKLSAgICAgICAgaWYgKHJlc3BvbnNlLmlzRXJyb3Ip
IHsKLSAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKENvbW1hbmRSZXN1bHQ6OmZhaWwoV1RG
TW92ZShyZXNwb25zZS5yZXNwb25zZU9iamVjdCkpKTsKKyAgICBoYW5kbGVVc2VyUHJvbXB0cyhb
dGhpcywgeCwgeSwgd2lkdGgsIGhlaWdodCwgY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNv
bXBsZXRpb25IYW5kbGVyKV0oQ29tbWFuZFJlc3VsdCYmIHJlc3VsdCkgbXV0YWJsZSB7CisgICAg
ICAgIGlmIChyZXN1bHQuaXNFcnJvcigpKSB7CisgICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxl
cihXVEZNb3ZlKHJlc3VsdCkpOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9Ci0gICAg
ICAgIGNvbXBsZXRpb25IYW5kbGVyKENvbW1hbmRSZXN1bHQ6OnN1Y2Nlc3MoKSk7CisKKyAgICAg
ICAgaWYgKHdpZHRoICYmIGhlaWdodCkgIHsKKyAgICAgICAgICAgIHJlc2l6ZVRvcGxldmVsQnJv
d3NpbmdDb250ZXh0d2luZG93KHdpZHRoLnZhbHVlKCksIGhlaWdodC52YWx1ZSgpLCBbdGhpcywg
eCwgeSwgY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0oQ29t
bWFuZFJlc3VsdCYmIHJlc3VsdCkgbXV0YWJsZSB7CisgICAgICAgICAgICAgICAgaWYgKHJlc3Vs
dC5pc0Vycm9yKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoV1RG
TW92ZShyZXN1bHQpKTsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAg
ICAgIH0KKyAgICAgICAgICAgICAgICBpZiAoIXggfHwgIXkpIHsKKyAgICAgICAgICAgICAgICAg
ICAgZ2V0VG9wbGV2ZWxCcm93c2luZ0NvbnRleHRSZWN0KFdURk1vdmUoY29tcGxldGlvbkhhbmRs
ZXIpKTsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgICAgIH0KKwor
ICAgICAgICAgICAgICAgIG1vdmVUb3BsZXZlbEJyb3dzaW5nQ29udGV4dHdpbmRvdyh4LnZhbHVl
KCksIHkudmFsdWUoKSwgW3RoaXMsIGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0
aW9uSGFuZGxlcildKENvbW1hbmRSZXN1bHQmJiByZXN1bHQpIG11dGFibGUgeworICAgICAgICAg
ICAgICAgICAgICBpZiAocmVzdWx0LmlzRXJyb3IoKSkgeworICAgICAgICAgICAgICAgICAgICAg
ICAgY29tcGxldGlvbkhhbmRsZXIoV1RGTW92ZShyZXN1bHQpKTsKKyAgICAgICAgICAgICAgICAg
ICAgICAgIHJldHVybjsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAg
ICBnZXRUb3BsZXZlbEJyb3dzaW5nQ29udGV4dFJlY3QoV1RGTW92ZShjb21wbGV0aW9uSGFuZGxl
cikpOworICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgfSk7CisgICAgICAgICAgICBy
ZXR1cm47CisgICAgICAgIH0KKworICAgICAgICBpZiAoeCAmJiB5KSB7CisgICAgICAgICAgICBt
b3ZlVG9wbGV2ZWxCcm93c2luZ0NvbnRleHR3aW5kb3coeC52YWx1ZSgpLCB5LnZhbHVlKCksIFt0
aGlzLCBjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXShDb21t
YW5kUmVzdWx0JiYgcmVzdWx0KSBtdXRhYmxlIHsKKyAgICAgICAgICAgICAgICBpZiAocmVzdWx0
LmlzRXJyb3IoKSkgeworICAgICAgICAgICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihXVEZN
b3ZlKHJlc3VsdCkpOworICAgICAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICAg
ICAgfQorICAgICAgICAgICAgICAgIGdldFRvcGxldmVsQnJvd3NpbmdDb250ZXh0UmVjdChXVEZN
b3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHJl
dHVybjsKKyAgICAgICAgfQorCisgICAgICAgIGdldFRvcGxldmVsQnJvd3NpbmdDb250ZXh0UmVj
dChXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CiAgICAgfSk7CiB9CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJEcml2ZXIvU2Vzc2lvbi5oIGIvU291cmNlL1dlYkRyaXZlci9TZXNzaW9uLmgK
aW5kZXggMTk2YWVmYWEwOWUuLjQ2NzU3ZGU5NzBhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViRHJp
dmVyL1Nlc3Npb24uaAorKysgYi9Tb3VyY2UvV2ViRHJpdmVyL1Nlc3Npb24uaApAQCAtODYsMTAg
Kzg2LDggQEAgcHVibGljOgogICAgIHZvaWQgZ2V0V2luZG93SGFuZGxlcyhGdW5jdGlvbjx2b2lk
IChDb21tYW5kUmVzdWx0JiYpPiYmKTsKICAgICB2b2lkIHN3aXRjaFRvRnJhbWUoUmVmUHRyPElu
c3BlY3Rvcjo6SW5zcGVjdG9yVmFsdWU+JiYsIEZ1bmN0aW9uPHZvaWQgKENvbW1hbmRSZXN1bHQm
Jik+JiYpOwogICAgIHZvaWQgc3dpdGNoVG9QYXJlbnRGcmFtZShGdW5jdGlvbjx2b2lkIChDb21t
YW5kUmVzdWx0JiYpPiYmKTsKLSAgICB2b2lkIGdldFdpbmRvd1Bvc2l0aW9uKEZ1bmN0aW9uPHZv
aWQgKENvbW1hbmRSZXN1bHQmJik+JiYpOwotICAgIHZvaWQgc2V0V2luZG93UG9zaXRpb24oaW50
IHdpbmRvd1gsIGludCB3aW5kb3dZLCBGdW5jdGlvbjx2b2lkIChDb21tYW5kUmVzdWx0JiYpPiYm
KTsKLSAgICB2b2lkIGdldFdpbmRvd1NpemUoRnVuY3Rpb248dm9pZCAoQ29tbWFuZFJlc3VsdCYm
KT4mJik7Ci0gICAgdm9pZCBzZXRXaW5kb3dTaXplKGludCB3aW5kb3dXaWR0aCwgaW50IHdpbmRv
d0hlaWdodCwgRnVuY3Rpb248dm9pZCAoQ29tbWFuZFJlc3VsdCYmKT4mJik7CisgICAgdm9pZCBn
ZXRXaW5kb3dSZWN0KEZ1bmN0aW9uPHZvaWQgKENvbW1hbmRSZXN1bHQmJik+JiYpOworICAgIHZv
aWQgc2V0V2luZG93UmVjdChzdGQ6Om9wdGlvbmFsPGRvdWJsZT4geCwgc3RkOjpvcHRpb25hbDxk
b3VibGU+IHksIHN0ZDo6b3B0aW9uYWw8ZG91YmxlPiB3aWR0aCwgc3RkOjpvcHRpb25hbDxkb3Vi
bGU+IGhlaWdodCwgRnVuY3Rpb248dm9pZCAoQ29tbWFuZFJlc3VsdCYmKT4mJik7CiAgICAgdm9p
ZCBmaW5kRWxlbWVudHMoY29uc3QgU3RyaW5nJiBzdHJhdGVneSwgY29uc3QgU3RyaW5nJiBzZWxl
Y3RvciwgRmluZEVsZW1lbnRzTW9kZSwgY29uc3QgU3RyaW5nJiByb290RWxlbWVudElELCBGdW5j
dGlvbjx2b2lkIChDb21tYW5kUmVzdWx0JiYpPiYmKTsKICAgICB2b2lkIGlzRWxlbWVudFNlbGVj
dGVkKGNvbnN0IFN0cmluZyYgZWxlbWVudElELCBGdW5jdGlvbjx2b2lkIChDb21tYW5kUmVzdWx0
JiYpPiYmKTsKICAgICB2b2lkIGdldEVsZW1lbnRUZXh0KGNvbnN0IFN0cmluZyYgZWxlbWVudElE
LCBGdW5jdGlvbjx2b2lkIChDb21tYW5kUmVzdWx0JiYpPiYmKTsKQEAgLTEyMiw2ICsxMjAsMTAg
QEAgcHJpdmF0ZToKICAgICB2b2lkIGNsb3NlVG9wTGV2ZWxCcm93c2luZ0NvbnRleHQoY29uc3Qg
U3RyaW5nJiB0b3BsZXZlbEJyb3dzaW5nQ29udGV4dCwgRnVuY3Rpb248dm9pZCAoQ29tbWFuZFJl
c3VsdCYmKT4mJik7CiAgICAgdm9pZCBjbG9zZUFsbFRvcGxldmVsQnJvd3NpbmdDb250ZXh0cyhj
b25zdCBTdHJpbmcmIHRvcGxldmVsQnJvd3NpbmdDb250ZXh0LCBGdW5jdGlvbjx2b2lkIChDb21t
YW5kUmVzdWx0JiYpPiYmKTsKIAorICAgIHZvaWQgZ2V0VG9wbGV2ZWxCcm93c2luZ0NvbnRleHRS
ZWN0KEZ1bmN0aW9uPHZvaWQgKENvbW1hbmRSZXN1bHQmJik+JiYpOworICAgIHZvaWQgbW92ZVRv
cGxldmVsQnJvd3NpbmdDb250ZXh0d2luZG93KGRvdWJsZSB4LCBkb3VibGUgeSwgRnVuY3Rpb248
dm9pZCAoQ29tbWFuZFJlc3VsdCYmKT4mJik7CisgICAgdm9pZCByZXNpemVUb3BsZXZlbEJyb3dz
aW5nQ29udGV4dHdpbmRvdyhkb3VibGUgd2lkdGgsIGRvdWJsZSBoZWlnaHQsIEZ1bmN0aW9uPHZv
aWQgKENvbW1hbmRSZXN1bHQmJik+JiYpOworCiAgICAgc3RkOjpvcHRpb25hbDxTdHJpbmc+IHBh
Z2VMb2FkU3RyYXRlZ3lTdHJpbmcoKSBjb25zdDsKIAogICAgIHZvaWQgaGFuZGxlVXNlclByb21w
dHMoRnVuY3Rpb248dm9pZCAoQ29tbWFuZFJlc3VsdCYmKT4mJik7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViRHJpdmVyL1dlYkRyaXZlclNlcnZpY2UuY3BwIGIvU291cmNlL1dlYkRyaXZlci9XZWJE
cml2ZXJTZXJ2aWNlLmNwcAppbmRleCBjYjc0NWM1NWU5NS4uNWVlYzJmMGUwZTcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJEcml2ZXIvV2ViRHJpdmVyU2VydmljZS5jcHAKKysrIGIvU291cmNlL1dl
YkRyaXZlci9XZWJEcml2ZXJTZXJ2aWNlLmNwcApAQCAtMTE4LDEyICsxMTgsOCBAQCBjb25zdCBX
ZWJEcml2ZXJTZXJ2aWNlOjpDb21tYW5kIFdlYkRyaXZlclNlcnZpY2U6OnNfY29tbWFuZHNbXSA9
IHsKICAgICB7IEhUVFBNZXRob2Q6OkdldCwgIi9zZXNzaW9uLyRzZXNzaW9uSWQvd2luZG93L2hh
bmRsZXMiLCAmV2ViRHJpdmVyU2VydmljZTo6Z2V0V2luZG93SGFuZGxlcyB9LAogICAgIHsgSFRU
UE1ldGhvZDo6UG9zdCwgIi9zZXNzaW9uLyRzZXNzaW9uSWQvZnJhbWUiLCAmV2ViRHJpdmVyU2Vy
dmljZTo6c3dpdGNoVG9GcmFtZSB9LAogICAgIHsgSFRUUE1ldGhvZDo6UG9zdCwgIi9zZXNzaW9u
LyRzZXNzaW9uSWQvZnJhbWUvcGFyZW50IiwgJldlYkRyaXZlclNlcnZpY2U6OnN3aXRjaFRvUGFy
ZW50RnJhbWUgfSwKLQotICAgIC8vIEZJWE1FOiBOb3QgaW4gdGhlIHNwZWMsIGJ1dCBzdGlsbCB1
c2VkIGJ5IFNlbGVuaXVtLgotICAgIHsgSFRUUE1ldGhvZDo6R2V0LCAiL3Nlc3Npb24vJHNlc3Np
b25JZC93aW5kb3cvcG9zaXRpb24iLCAmV2ViRHJpdmVyU2VydmljZTo6Z2V0V2luZG93UG9zaXRp
b24gfSwKLSAgICB7IEhUVFBNZXRob2Q6OlBvc3QsICIvc2Vzc2lvbi8kc2Vzc2lvbklkL3dpbmRv
dy9wb3NpdGlvbiIsICZXZWJEcml2ZXJTZXJ2aWNlOjpzZXRXaW5kb3dQb3NpdGlvbiB9LAotICAg
IHsgSFRUUE1ldGhvZDo6R2V0LCAiL3Nlc3Npb24vJHNlc3Npb25JZC93aW5kb3cvc2l6ZSIsICZX
ZWJEcml2ZXJTZXJ2aWNlOjpnZXRXaW5kb3dTaXplIH0sCi0gICAgeyBIVFRQTWV0aG9kOjpQb3N0
LCAiL3Nlc3Npb24vJHNlc3Npb25JZC93aW5kb3cvc2l6ZSIsICZXZWJEcml2ZXJTZXJ2aWNlOjpz
ZXRXaW5kb3dTaXplIH0sCisgICAgeyBIVFRQTWV0aG9kOjpHZXQsICIvc2Vzc2lvbi8kc2Vzc2lv
bklkL3dpbmRvdy9yZWN0IiwgJldlYkRyaXZlclNlcnZpY2U6OmdldFdpbmRvd1JlY3QgfSwKKyAg
ICB7IEhUVFBNZXRob2Q6OlBvc3QsICIvc2Vzc2lvbi8kc2Vzc2lvbklkL3dpbmRvdy9yZWN0Iiwg
JldlYkRyaXZlclNlcnZpY2U6OnNldFdpbmRvd1JlY3QgfSwKIAogICAgIHsgSFRUUE1ldGhvZDo6
UG9zdCwgIi9zZXNzaW9uLyRzZXNzaW9uSWQvZWxlbWVudCIsICZXZWJEcml2ZXJTZXJ2aWNlOjpm
aW5kRWxlbWVudCB9LAogICAgIHsgSFRUUE1ldGhvZDo6UG9zdCwgIi9zZXNzaW9uLyRzZXNzaW9u
SWQvZWxlbWVudHMiLCAmV2ViRHJpdmVyU2VydmljZTo6ZmluZEVsZW1lbnRzIH0sCkBAIC03OTks
NTggKzc5NSw3NiBAQCB2b2lkIFdlYkRyaXZlclNlcnZpY2U6OmdldFdpbmRvd0hhbmRsZShSZWZQ
dHI8SW5zcGVjdG9yT2JqZWN0PiYmIHBhcmFtZXRlcnMsIEZ1bgogICAgICAgICBzZXNzaW9uLT5n
ZXRXaW5kb3dIYW5kbGUoV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOwogfQogCi12b2lkIFdl
YkRyaXZlclNlcnZpY2U6OmdldFdpbmRvd1Bvc2l0aW9uKFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+
JiYgcGFyYW1ldGVycywgRnVuY3Rpb248dm9pZCAoQ29tbWFuZFJlc3VsdCYmKT4mJiBjb21wbGV0
aW9uSGFuZGxlcikKK3ZvaWQgV2ViRHJpdmVyU2VydmljZTo6Z2V0V2luZG93UmVjdChSZWZQdHI8
SW5zcGVjdG9yT2JqZWN0PiYmIHBhcmFtZXRlcnMsIEZ1bmN0aW9uPHZvaWQgKENvbW1hbmRSZXN1
bHQmJik+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CisgICAgLy8gwqcxMC43LjEgR2V0IFdpbmRv
dyBSZWN0LgorICAgIC8vIGh0dHBzOi8vdzNjLmdpdGh1Yi5pby93ZWJkcml2ZXIvd2ViZHJpdmVy
LXNwZWMuaHRtbCNnZXQtd2luZG93LXJlY3QKICAgICBpZiAoYXV0byBzZXNzaW9uID0gZmluZFNl
c3Npb25PckNvbXBsZXRlV2l0aEVycm9yKCpwYXJhbWV0ZXJzLCBjb21wbGV0aW9uSGFuZGxlcikp
Ci0gICAgICAgIHNlc3Npb24tPmdldFdpbmRvd1Bvc2l0aW9uKFdURk1vdmUoY29tcGxldGlvbkhh
bmRsZXIpKTsKKyAgICAgICAgc2Vzc2lvbi0+Z2V0V2luZG93UmVjdChXVEZNb3ZlKGNvbXBsZXRp
b25IYW5kbGVyKSk7CiB9CiAKLXZvaWQgV2ViRHJpdmVyU2VydmljZTo6c2V0V2luZG93UG9zaXRp
b24oUmVmUHRyPEluc3BlY3Rvck9iamVjdD4mJiBwYXJhbWV0ZXJzLCBGdW5jdGlvbjx2b2lkIChD
b21tYW5kUmVzdWx0JiYpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQorc3RhdGljIHN0ZDo6b3B0aW9u
YWw8ZG91YmxlPiB2YWx1ZUFzTnVtYmVySW5SYW5nZShjb25zdCBJbnNwZWN0b3JWYWx1ZSYgdmFs
dWUsIGRvdWJsZSBtaW5BbGxvd2VkID0gMCwgZG91YmxlIG1heEFsbG93ZWQgPSBJTlRfTUFYKQog
ewotICAgIGF1dG8gc2Vzc2lvbiA9IGZpbmRTZXNzaW9uT3JDb21wbGV0ZVdpdGhFcnJvcigqcGFy
YW1ldGVycywgY29tcGxldGlvbkhhbmRsZXIpOwotICAgIGlmICghc2Vzc2lvbikKLSAgICAgICAg
cmV0dXJuOwotCi0gICAgaW50IHdpbmRvd1g7Ci0gICAgaWYgKCFwYXJhbWV0ZXJzLT5nZXRJbnRl
Z2VyKEFTQ0lJTGl0ZXJhbCgieCIpLCB3aW5kb3dYKSkgewotICAgICAgICBjb21wbGV0aW9uSGFu
ZGxlcihDb21tYW5kUmVzdWx0OjpmYWlsKENvbW1hbmRSZXN1bHQ6OkVycm9yQ29kZTo6SW52YWxp
ZEFyZ3VtZW50KSk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9CisgICAgZG91YmxlIG51bWJlcjsK
KyAgICBpZiAoIXZhbHVlLmFzRG91YmxlKG51bWJlcikpCisgICAgICAgIHJldHVybiBzdGQ6Om51
bGxvcHQ7CiAKLSAgICBpbnQgd2luZG93WTsKLSAgICBpZiAoIXBhcmFtZXRlcnMtPmdldEludGVn
ZXIoQVNDSUlMaXRlcmFsKCJ5IiksIHdpbmRvd1kpKSB7Ci0gICAgICAgIGNvbXBsZXRpb25IYW5k
bGVyKENvbW1hbmRSZXN1bHQ6OmZhaWwoQ29tbWFuZFJlc3VsdDo6RXJyb3JDb2RlOjpJbnZhbGlk
QXJndW1lbnQpKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KKyAgICBpZiAoc3RkOjppc25hbihu
dW1iZXIpIHx8IHN0ZDo6aXNpbmYobnVtYmVyKSkKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9w
dDsKIAotICAgIHNlc3Npb24tPnNldFdpbmRvd1Bvc2l0aW9uKHdpbmRvd1gsIHdpbmRvd1ksIFdU
Rk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKLX0KKyAgICBpZiAobnVtYmVyIDwgbWluQWxsb3dl
ZCB8fCBudW1iZXIgPiBtYXhBbGxvd2VkKQorICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0Owog
Ci12b2lkIFdlYkRyaXZlclNlcnZpY2U6OmdldFdpbmRvd1NpemUoUmVmUHRyPEluc3BlY3Rvck9i
amVjdD4mJiBwYXJhbWV0ZXJzLCBGdW5jdGlvbjx2b2lkIChDb21tYW5kUmVzdWx0JiYpPiYmIGNv
bXBsZXRpb25IYW5kbGVyKQotewotICAgIGlmIChhdXRvIHNlc3Npb24gPSBmaW5kU2Vzc2lvbk9y
Q29tcGxldGVXaXRoRXJyb3IoKnBhcmFtZXRlcnMsIGNvbXBsZXRpb25IYW5kbGVyKSkKLSAgICAg
ICAgc2Vzc2lvbi0+Z2V0V2luZG93U2l6ZShXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7Cisg
ICAgcmV0dXJuIG51bWJlcjsKIH0KIAotdm9pZCBXZWJEcml2ZXJTZXJ2aWNlOjpzZXRXaW5kb3dT
aXplKFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+JiYgcGFyYW1ldGVycywgRnVuY3Rpb248dm9pZCAo
Q29tbWFuZFJlc3VsdCYmKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3ZvaWQgV2ViRHJpdmVyU2Vy
dmljZTo6c2V0V2luZG93UmVjdChSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiYmIHBhcmFtZXRlcnMs
IEZ1bmN0aW9uPHZvaWQgKENvbW1hbmRSZXN1bHQmJik+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7
Ci0gICAgYXV0byBzZXNzaW9uID0gZmluZFNlc3Npb25PckNvbXBsZXRlV2l0aEVycm9yKCpwYXJh
bWV0ZXJzLCBjb21wbGV0aW9uSGFuZGxlcik7Ci0gICAgaWYgKCFzZXNzaW9uKQotICAgICAgICBy
ZXR1cm47Ci0KLSAgICBpbnQgd2luZG93V2lkdGg7Ci0gICAgaWYgKCFwYXJhbWV0ZXJzLT5nZXRJ
bnRlZ2VyKEFTQ0lJTGl0ZXJhbCgid2lkdGgiKSwgd2luZG93V2lkdGgpKSB7Ci0gICAgICAgIGNv
bXBsZXRpb25IYW5kbGVyKENvbW1hbmRSZXN1bHQ6OmZhaWwoQ29tbWFuZFJlc3VsdDo6RXJyb3JD
b2RlOjpJbnZhbGlkQXJndW1lbnQpKTsKLSAgICAgICAgcmV0dXJuOworICAgIC8vIMKnMTAuNy4y
IFNldCBXaW5kb3cgUmVjdC4KKyAgICAvLyBodHRwczovL3czYy5naXRodWIuaW8vd2ViZHJpdmVy
L3dlYmRyaXZlci1zcGVjLmh0bWwjc2V0LXdpbmRvdy1yZWN0CisgICAgUmVmUHRyPEluc3BlY3Rv
clZhbHVlPiB2YWx1ZTsKKyAgICBzdGQ6Om9wdGlvbmFsPGRvdWJsZT4gd2lkdGg7CisgICAgaWYg
KHBhcmFtZXRlcnMtPmdldFZhbHVlKEFTQ0lJTGl0ZXJhbCgid2lkdGgiKSwgdmFsdWUpKSB7Cisg
ICAgICAgIGlmIChhdXRvIG51bWJlciA9IHZhbHVlQXNOdW1iZXJJblJhbmdlKCp2YWx1ZSkpCisg
ICAgICAgICAgICB3aWR0aCA9IG51bWJlcjsKKyAgICAgICAgZWxzZSBpZiAoIXZhbHVlLT5pc051
bGwoKSkgeworICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoQ29tbWFuZFJlc3VsdDo6ZmFp
bChDb21tYW5kUmVzdWx0OjpFcnJvckNvZGU6OkludmFsaWRBcmd1bWVudCkpOworICAgICAgICAg
ICAgcmV0dXJuOworICAgICAgICB9CiAgICAgfQotCi0gICAgaW50IHdpbmRvd0hlaWdodDsKLSAg
ICBpZiAoIXBhcmFtZXRlcnMtPmdldEludGVnZXIoQVNDSUlMaXRlcmFsKCJoZWlnaHQiKSwgd2lu
ZG93SGVpZ2h0KSkgewotICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihDb21tYW5kUmVzdWx0Ojpm
YWlsKENvbW1hbmRSZXN1bHQ6OkVycm9yQ29kZTo6SW52YWxpZEFyZ3VtZW50KSk7Ci0gICAgICAg
IHJldHVybjsKKyAgICBzdGQ6Om9wdGlvbmFsPGRvdWJsZT4gaGVpZ2h0OworICAgIGlmIChwYXJh
bWV0ZXJzLT5nZXRWYWx1ZShBU0NJSUxpdGVyYWwoImhlaWdodCIpLCB2YWx1ZSkpIHsKKyAgICAg
ICAgaWYgKGF1dG8gbnVtYmVyID0gdmFsdWVBc051bWJlckluUmFuZ2UoKnZhbHVlKSkKKyAgICAg
ICAgICAgIGhlaWdodCA9IG51bWJlcjsKKyAgICAgICAgZWxzZSBpZiAoIXZhbHVlLT5pc051bGwo
KSkgeworICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoQ29tbWFuZFJlc3VsdDo6ZmFpbChD
b21tYW5kUmVzdWx0OjpFcnJvckNvZGU6OkludmFsaWRBcmd1bWVudCkpOworICAgICAgICAgICAg
cmV0dXJuOworICAgICAgICB9CisgICAgfQorICAgIHN0ZDo6b3B0aW9uYWw8ZG91YmxlPiB4Owor
ICAgIGlmIChwYXJhbWV0ZXJzLT5nZXRWYWx1ZShBU0NJSUxpdGVyYWwoIngiKSwgdmFsdWUpKSB7
CisgICAgICAgIGlmIChhdXRvIG51bWJlciA9IHZhbHVlQXNOdW1iZXJJblJhbmdlKCp2YWx1ZSwg
SU5UX01JTikpCisgICAgICAgICAgICB4ID0gbnVtYmVyOworICAgICAgICBlbHNlIGlmICghdmFs
dWUtPmlzTnVsbCgpKSB7CisgICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihDb21tYW5kUmVz
dWx0OjpmYWlsKENvbW1hbmRSZXN1bHQ6OkVycm9yQ29kZTo6SW52YWxpZEFyZ3VtZW50KSk7Cisg
ICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICB9CisgICAgc3RkOjpvcHRpb25hbDxk
b3VibGU+IHk7CisgICAgaWYgKHBhcmFtZXRlcnMtPmdldFZhbHVlKEFTQ0lJTGl0ZXJhbCgieSIp
LCB2YWx1ZSkpIHsKKyAgICAgICAgaWYgKGF1dG8gbnVtYmVyID0gdmFsdWVBc051bWJlckluUmFu
Z2UoKnZhbHVlLCBJTlRfTUlOKSkKKyAgICAgICAgICAgIHkgPSBudW1iZXI7CisgICAgICAgIGVs
c2UgaWYgKCF2YWx1ZS0+aXNOdWxsKCkpIHsKKyAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVy
KENvbW1hbmRSZXN1bHQ6OmZhaWwoQ29tbWFuZFJlc3VsdDo6RXJyb3JDb2RlOjpJbnZhbGlkQXJn
dW1lbnQpKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQogICAgIH0KIAotICAgIHNl
c3Npb24tPnNldFdpbmRvd1NpemUod2luZG93V2lkdGgsIHdpbmRvd0hlaWdodCwgV1RGTW92ZShj
b21wbGV0aW9uSGFuZGxlcikpOworICAgIC8vIEZJWE1FOiBJZiB0aGUgcmVtb3RlIGVuZCBkb2Vz
IG5vdCBzdXBwb3J0IHRoZSBTZXQgV2luZG93IFJlY3QgY29tbWFuZCBmb3IgdGhlIGN1cnJlbnQK
KyAgICAvLyB0b3AtbGV2ZWwgYnJvd3NpbmcgY29udGV4dCBmb3IgYW55IHJlYXNvbiwgcmV0dXJu
IGVycm9yIHdpdGggZXJyb3IgY29kZSB1bnN1cHBvcnRlZCBvcGVyYXRpb24uCisKKyAgICBpZiAo
YXV0byBzZXNzaW9uID0gZmluZFNlc3Npb25PckNvbXBsZXRlV2l0aEVycm9yKCpwYXJhbWV0ZXJz
LCBjb21wbGV0aW9uSGFuZGxlcikpCisgICAgICAgIHNlc3Npb24tPnNldFdpbmRvd1JlY3QoeCwg
eSwgd2lkdGgsIGhlaWdodCwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOwogfQogCiB2b2lk
IFdlYkRyaXZlclNlcnZpY2U6OmNsb3NlV2luZG93KFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+JiYg
cGFyYW1ldGVycywgRnVuY3Rpb248dm9pZCAoQ29tbWFuZFJlc3VsdCYmKT4mJiBjb21wbGV0aW9u
SGFuZGxlcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJEcml2ZXIvV2ViRHJpdmVyU2VydmljZS5o
IGIvU291cmNlL1dlYkRyaXZlci9XZWJEcml2ZXJTZXJ2aWNlLmgKaW5kZXggMGUwMmNmMmE3NWUu
LmZlODczNTgwNTM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViRHJpdmVyL1dlYkRyaXZlclNlcnZp
Y2UuaAorKysgYi9Tb3VyY2UvV2ViRHJpdmVyL1dlYkRyaXZlclNlcnZpY2UuaApAQCAtNzksMTAg
Kzc5LDggQEAgcHJpdmF0ZToKICAgICB2b2lkIGdldFdpbmRvd0hhbmRsZXMoUmVmUHRyPEluc3Bl
Y3Rvcjo6SW5zcGVjdG9yT2JqZWN0PiYmLCBGdW5jdGlvbjx2b2lkIChDb21tYW5kUmVzdWx0JiYp
PiYmKTsKICAgICB2b2lkIHN3aXRjaFRvRnJhbWUoUmVmUHRyPEluc3BlY3Rvcjo6SW5zcGVjdG9y
T2JqZWN0PiYmLCBGdW5jdGlvbjx2b2lkIChDb21tYW5kUmVzdWx0JiYpPiYmKTsKICAgICB2b2lk
IHN3aXRjaFRvUGFyZW50RnJhbWUoUmVmUHRyPEluc3BlY3Rvcjo6SW5zcGVjdG9yT2JqZWN0PiYm
LCBGdW5jdGlvbjx2b2lkIChDb21tYW5kUmVzdWx0JiYpPiYmKTsKLSAgICB2b2lkIGdldFdpbmRv
d1Bvc2l0aW9uKFJlZlB0cjxJbnNwZWN0b3I6Okluc3BlY3Rvck9iamVjdD4mJiwgRnVuY3Rpb248
dm9pZCAoQ29tbWFuZFJlc3VsdCYmKT4mJik7Ci0gICAgdm9pZCBzZXRXaW5kb3dQb3NpdGlvbihS
ZWZQdHI8SW5zcGVjdG9yOjpJbnNwZWN0b3JPYmplY3Q+JiYsIEZ1bmN0aW9uPHZvaWQgKENvbW1h
bmRSZXN1bHQmJik+JiYpOwotICAgIHZvaWQgZ2V0V2luZG93U2l6ZShSZWZQdHI8SW5zcGVjdG9y
OjpJbnNwZWN0b3JPYmplY3Q+JiYsIEZ1bmN0aW9uPHZvaWQgKENvbW1hbmRSZXN1bHQmJik+JiYp
OwotICAgIHZvaWQgc2V0V2luZG93U2l6ZShSZWZQdHI8SW5zcGVjdG9yOjpJbnNwZWN0b3JPYmpl
Y3Q+JiYsIEZ1bmN0aW9uPHZvaWQgKENvbW1hbmRSZXN1bHQmJik+JiYpOworICAgIHZvaWQgZ2V0
V2luZG93UmVjdChSZWZQdHI8SW5zcGVjdG9yOjpJbnNwZWN0b3JPYmplY3Q+JiYsIEZ1bmN0aW9u
PHZvaWQgKENvbW1hbmRSZXN1bHQmJik+JiYpOworICAgIHZvaWQgc2V0V2luZG93UmVjdChSZWZQ
dHI8SW5zcGVjdG9yOjpJbnNwZWN0b3JPYmplY3Q+JiYsIEZ1bmN0aW9uPHZvaWQgKENvbW1hbmRS
ZXN1bHQmJik+JiYpOwogICAgIHZvaWQgZmluZEVsZW1lbnQoUmVmUHRyPEluc3BlY3Rvcjo6SW5z
cGVjdG9yT2JqZWN0PiYmLCBGdW5jdGlvbjx2b2lkIChDb21tYW5kUmVzdWx0JiYpPiYmKTsKICAg
ICB2b2lkIGZpbmRFbGVtZW50cyhSZWZQdHI8SW5zcGVjdG9yOjpJbnNwZWN0b3JPYmplY3Q+JiYs
IEZ1bmN0aW9uPHZvaWQgKENvbW1hbmRSZXN1bHQmJik+JiYpOwogICAgIHZvaWQgZmluZEVsZW1l
bnRGcm9tRWxlbWVudChSZWZQdHI8SW5zcGVjdG9yOjpJbnNwZWN0b3JPYmplY3Q+JiYsIEZ1bmN0
aW9uPHZvaWQgKENvbW1hbmRSZXN1bHQmJik+JiYpOwo=
</data>
<flag name="review"
          id="341221"
          type_id="1"
          status="+"
          setter="bburg"
    />
          </attachment>
      

    </bug>

</bugzilla>