<?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>49692</bug_id>
          
          <creation_ts>2010-11-17 15:27:25 -0800</creation_ts>
          <short_desc>Rebaseline server: add loupe for image diffs</short_desc>
          <delta_ts>2010-11-17 16:42:36 -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>Tools / Tests</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</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>47761</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Mihai Parparita">mihaip</reporter>
          <assigned_to name="Mihai Parparita">mihaip</assigned_to>
          <cc>tony</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>310562</commentid>
    <comment_count>0</comment_count>
    <who name="Mihai Parparita">mihaip</who>
    <bug_when>2010-11-17 15:27:25 -0800</bug_when>
    <thetext>Rebaseline server: add loupe for image diffs</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>310563</commentid>
    <comment_count>1</comment_count>
      <attachid>74163</attachid>
    <who name="Mihai Parparita">mihaip</who>
    <bug_when>2010-11-17 15:29:27 -0800</bug_when>
    <thetext>Created attachment 74163
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>310600</commentid>
    <comment_count>2</comment_count>
      <attachid>74163</attachid>
    <who name="Tony Chang">tony</who>
    <bug_when>2010-11-17 16:26:09 -0800</bug_when>
    <thetext>Comment on attachment 74163
Patch

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

This sounds awesome.  I&apos;ll have to try the rebaseline tool after this lands.  r- for naming style, otherwise, this looks good.

&gt; WebKitTools/Scripts/webkitpy/tool/commands/data/rebaselineserver/loupe.js:37
&gt; +    this.node_ = $(&apos;loupe&apos;);
&gt; +    this.currentCornerX_ = -1;
&gt; +    this.currentCornerY_ = -1;

There&apos;s no real webkit style for JS objects.  Ojan and I discussed briefly and he suggested just using _node and _currentCornerX for the following reasons:
1) JS outside of google seems to use prefix _ more than suffix _.
2) It&apos;s similar to PEP8 and JS seems more like python than C++.

&gt; WebKitTools/Scripts/webkitpy/tool/commands/data/rebaselineserver/loupe.js:55
&gt; +Loupe.prototype.handleOutputClick_ = function(event)

To go with the above recommendation, this would be _handleOutputClick.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>310603</commentid>
    <comment_count>3</comment_count>
      <attachid>74176</attachid>
    <who name="Mihai Parparita">mihaip</who>
    <bug_when>2010-11-17 16:34:33 -0800</bug_when>
    <thetext>Created attachment 74176
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>310604</commentid>
    <comment_count>4</comment_count>
    <who name="Mihai Parparita">mihaip</who>
    <bug_when>2010-11-17 16:34:57 -0800</bug_when>
    <thetext>Switched to leading underscore in new version of the patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>310607</commentid>
    <comment_count>5</comment_count>
    <who name="Mihai Parparita">mihaip</who>
    <bug_when>2010-11-17 16:42:36 -0800</bug_when>
    <thetext>Committed r72262: &lt;http://trac.webkit.org/changeset/72262&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>74163</attachid>
            <date>2010-11-17 15:29:27 -0800</date>
            <delta_ts>2010-11-17 16:34:30 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-49692-20101117152926.patch</filename>
            <type>text/plain</type>
            <size>14591</size>
            <attacher name="Mihai Parparita">mihaip</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0NoYW5nZUxvZyBiL1dlYktpdFRvb2xzL0NoYW5nZUxv
ZwppbmRleCBmOGMzZjYxYTEwYTU3NDQxNjI3NjAyNDE1MjgwMTVmODRmZWQ1MWVkLi4wMzViOTM1
MGU1ODg2MTgzZTg4ODE2MWYyMWE1ZWNlZTc1YTFiMmVlIDEwMDY0NAotLS0gYS9XZWJLaXRUb29s
cy9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAK
KzIwMTAtMTEtMTcgIE1paGFpIFBhcnBhcml0YSAgPG1paGFpcEBjaHJvbWl1bS5vcmc+CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmViYXNlbGluZSBz
ZXJ2ZXI6IGFkZCBsb3VwZSBmb3IgaW1hZ2UgZGlmZnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ5NjkyCisgICAgICAgIAorICAgICAgICBBZGQgYSBs
b3VwZSAobWFnbmlmaXlpbmcgZ2xhc3MpIGZvciBpbnNwZWN0aW5nIGltYWdlIGRpZmZzLiBTaG93
cyBhbgorICAgICAgICBlbmxhcmdlZCBhcmVhIG9mIHRoZSBleHBlY3RlZCwgYWN0dWFsIGFuZCBk
aWZmIGltYWdlcyBzaWRlIGJ5IHNpZGUuCisKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3Rv
b2wvY29tbWFuZHMvZGF0YS9yZWJhc2VsaW5lc2VydmVyL2luZGV4Lmh0bWw6CisgICAgICAgICog
U2NyaXB0cy93ZWJraXRweS90b29sL2NvbW1hbmRzL2RhdGEvcmViYXNlbGluZXNlcnZlci9sb3Vw
ZS5qczogQWRkZWQuCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS90b29sL2NvbW1hbmRzL2Rh
dGEvcmViYXNlbGluZXNlcnZlci9tYWluLmpzOgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkv
dG9vbC9jb21tYW5kcy9yZWJhc2VsaW5lc2VydmVyLnB5OgorCiAyMDEwLTExLTE3ICBTYXRpc2gg
U2FtcGF0aCAgPHNhdGlzaEBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgSmVy
ZW15IE9ybG93LgpkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29s
L2NvbW1hbmRzL2RhdGEvcmViYXNlbGluZXNlcnZlci9pbmRleC5odG1sIGIvV2ViS2l0VG9vbHMv
U2NyaXB0cy93ZWJraXRweS90b29sL2NvbW1hbmRzL2RhdGEvcmViYXNlbGluZXNlcnZlci9pbmRl
eC5odG1sCmluZGV4IGFmZDJmZmZkYmVjMTk4MTYzYzEzODA2NGNhYWRkYWQ0M2VlZjY1NmUuLjhj
YzQ4YzEyZmQ3YzgwNjhkYjVlNTlhMmUxNWMyMWY5YzExY2QzODggMTAwNjQ0Ci0tLSBhL1dlYktp
dFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9jb21tYW5kcy9kYXRhL3JlYmFzZWxpbmVzZXJ2
ZXIvaW5kZXguaHRtbAorKysgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvY29t
bWFuZHMvZGF0YS9yZWJhc2VsaW5lc2VydmVyL2luZGV4Lmh0bWwKQEAgLTMzLDYgKzMzLDcgQEAK
ICAgPHRpdGxlPkxheW91dCBUZXN0IFJlYmFzZWxpbmUgU2VydmVyPC90aXRsZT4KICAgPGxpbmsg
cmVsPSJzdHlsZXNoZWV0IiBocmVmPSIvbWFpbi5jc3MiIHR5cGU9InRleHQvY3NzIj4KICAgPHNj
cmlwdCBzcmM9Ii91dGlsLmpzIj48L3NjcmlwdD4KKyAgPHNjcmlwdCBzcmM9Ii9sb3VwZS5qcyI+
PC9zY3JpcHQ+CiAgIDxzY3JpcHQgc3JjPSIvbWFpbi5qcyI+PC9zY3JpcHQ+CiA8L2hlYWQ+CiA8
Ym9keSBjbGFzcz0ibG9hZGluZyI+CkBAIC0xMDAsNSArMTAxLDM5IEBACiAgIDwvdGJvZHk+CiA8
L3RhYmxlPgogCis8dGFibGUgaWQ9ImxvdXBlIiBzdHlsZT0iZGlzcGxheTogbm9uZSI+CisgIDx0
cj4KKyAgICA8dGQgY29sc3Bhbj0iMyIgaWQ9ImxvdXBlLWluZm8iPgorICAgICAgPHNwYW4gaWQ9
ImxvdXBlLWNsb3NlIiBjbGFzcz0ibGluayI+Q2xvc2U8L3NwYW4+CisgICAgICA8bGFiZWw+Q29v
cmRpbmF0ZTogPHNwYW4gaWQ9ImxvdXBlLWNvb3JkaW5hdGUiPjwvc3Bhbj48L2xhYmVsPgorICAg
IDwvdGQ+CisgIDwvdHI+CisgIDx0cj4KKyAgICA8dGQ+CisgICAgICA8ZGl2IGNsYXNzPSJsb3Vw
ZS1jb250YWluZXIiPgorICAgICAgICA8Y2FudmFzIGlkPSJleHBlY3RlZC1sb3VwZSIgd2lkdGg9
IjIxMCIgaGVpZ2h0PSIyMTAiPjwvY2FudmFzPgorICAgICAgICA8ZGl2IGNsYXNzPSJjZW50ZXIt
aGlnaGxpZ2h0Ij48L2Rpdj4KKyAgICAgIDwvZGl2PgorICAgIDwvdGQ+CisgICAgPHRkPgorICAg
ICAgPGRpdiBjbGFzcz0ibG91cGUtY29udGFpbmVyIj4KKyAgICAgICAgPGNhbnZhcyBpZD0iYWN0
dWFsLWxvdXBlIiB3aWR0aD0iMjEwIiBoZWlnaHQ9IjIxMCI+PC9jYW52YXM+CisgICAgICAgIDxk
aXYgY2xhc3M9ImNlbnRlci1oaWdobGlnaHQiPjwvZGl2PgorICAgICAgPC9kaXY+CisgICAgPC90
ZD4KKyAgICA8dGQ+CisgICAgICA8ZGl2IGNsYXNzPSJsb3VwZS1jb250YWluZXIiPgorICAgICAg
ICA8Y2FudmFzIGlkPSJkaWZmLWxvdXBlIiB3aWR0aD0iMjEwIiBoZWlnaHQ9IjIxMCI+PC9jYW52
YXM+CisgICAgICAgIDxkaXYgY2xhc3M9ImNlbnRlci1oaWdobGlnaHQiPjwvZGl2PgorICAgICAg
PC9kaXY+CisgICAgPC90ZD4KKyAgPC90cj4KKyAgPHRyIGlkPSJsb3VwZS1jb2xvcnMiPgorICAg
IDx0ZD48bGFiZWw+RXhwLiBjb2xvcjogPHNwYW4gaWQ9ImV4cGVjdGVkLWxvdXBlLWNvbG9yIj48
L3NwYW4+PC9sYWJlbD48L3RkPgorICAgIDx0ZD48bGFiZWw+QWN0dWFsIGNvbG9yOiA8c3BhbiBp
ZD0iYWN0dWFsLWxvdXBlLWNvbG9yIj48L3NwYW4+PC9sYWJlbD48L3RkPgorICAgIDx0ZD48bGFi
ZWw+RGlmZiBjb2xvcjogPHNwYW4gaWQ9ImRpZmYtbG91cGUtY29sb3IiPjwvc3Bhbj48L2xhYmVs
PjwvdGQ+CisgIDwvdHI+Cis8L3RhYmxlPgorCiA8L2JvZHk+CiA8L2h0bWw+CmRpZmYgLS1naXQg
YS9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMvZGF0YS9yZWJhc2Vs
aW5lc2VydmVyL2xvdXBlLmpzIGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2Nv
bW1hbmRzL2RhdGEvcmViYXNlbGluZXNlcnZlci9sb3VwZS5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41YjQyZTMz
YjM2Zjk1NDY3ZjdjZmU1YzFlZjlhZmQzYmIxMDI0N2IyCi0tLSAvZGV2L251bGwKKysrIGIvV2Vi
S2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2NvbW1hbmRzL2RhdGEvcmViYXNlbGluZXNl
cnZlci9sb3VwZS5qcwpAQCAtMCwwICsxLDE0NCBAQAorLyoKKyAqIENvcHlyaWdodCAoYykgMjAx
MCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAg
ICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAgICAg
KiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisg
KiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3Rz
IGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdy
aXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRI
RSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElN
SVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisg
KiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKK3ZhciBMT1VQRV9NQUdOSUZJQ0FUSU9OX0ZB
Q1RPUiA9IDEwOworCitmdW5jdGlvbiBMb3VwZSgpCit7CisgICAgdGhpcy5ub2RlXyA9ICQoJ2xv
dXBlJyk7CisgICAgdGhpcy5jdXJyZW50Q29ybmVyWF8gPSAtMTsKKyAgICB0aGlzLmN1cnJlbnRD
b3JuZXJZXyA9IC0xOworCisgICAgdmFyIHNlbGYgPSB0aGlzOworCisgICAgZnVuY3Rpb24gaGFu
ZGxlT3V0cHV0Q2xpY2soZXZlbnQpIHsgc2VsZi5oYW5kbGVPdXRwdXRDbGlja18oZXZlbnQpOyB9
CisgICAgJCgnZXhwZWN0ZWQtaW1hZ2UnKS5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIGhhbmRs
ZU91dHB1dENsaWNrKTsKKyAgICAkKCdhY3R1YWwtaW1hZ2UnKS5hZGRFdmVudExpc3RlbmVyKCdj
bGljaycsIGhhbmRsZU91dHB1dENsaWNrKTsKKyAgICAkKCdkaWZmLWNhbnZhcycpLmFkZEV2ZW50
TGlzdGVuZXIoJ2NsaWNrJywgaGFuZGxlT3V0cHV0Q2xpY2spOworCisgICAgZnVuY3Rpb24gaGFu
ZGxlTG91cGVDbGljayhldmVudCkgeyBzZWxmLmhhbmRsZUxvdXBlQ2xpY2tfKGV2ZW50KTsgfQor
ICAgICQoJ2V4cGVjdGVkLWxvdXBlJykuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBoYW5kbGVM
b3VwZUNsaWNrKTsKKyAgICAkKCdhY3R1YWwtbG91cGUnKS5hZGRFdmVudExpc3RlbmVyKCdjbGlj
aycsIGhhbmRsZUxvdXBlQ2xpY2spOworICAgICQoJ2RpZmYtbG91cGUnKS5hZGRFdmVudExpc3Rl
bmVyKCdjbGljaycsIGhhbmRsZUxvdXBlQ2xpY2spOworCisgICAgZnVuY3Rpb24gaGlkZShldmVu
dCkgeyBzZWxmLmhpZGUoKTsgfQorICAgICQoJ2xvdXBlLWNsb3NlJykuYWRkRXZlbnRMaXN0ZW5l
cignY2xpY2snLCBoaWRlKTsKK30KKworTG91cGUucHJvdG90eXBlLmhhbmRsZU91dHB1dENsaWNr
XyA9IGZ1bmN0aW9uKGV2ZW50KQoreworICAgIC8vIFRoZSAtMSBjb21wZW5zYXRlcyBmb3IgdGhl
IGJvcmRlciBhcm91bmQgdGhlIGltYWdlL2NhbnZhcy4KKyAgICB0aGlzLnNob3dGb3JfKGV2ZW50
Lm9mZnNldFggLSAxLCBldmVudC5vZmZzZXRZIC0gMSk7Cit9OworCitMb3VwZS5wcm90b3R5cGUu
aGFuZGxlTG91cGVDbGlja18gPSBmdW5jdGlvbihldmVudCkKK3sKKyAgICB2YXIgZGVsdGFYID0g
TWF0aC5mbG9vcihldmVudC5vZmZzZXRYL0xPVVBFX01BR05JRklDQVRJT05fRkFDVE9SKTsKKyAg
ICB2YXIgZGVsdGFZID0gTWF0aC5mbG9vcihldmVudC5vZmZzZXRZL0xPVVBFX01BR05JRklDQVRJ
T05fRkFDVE9SKTsKKworICAgIHRoaXMuc2hvd0Zvcl8oCisgICAgICAgIHRoaXMuY3VycmVudENv
cm5lclhfICsgZGVsdGFYLCB0aGlzLmN1cnJlbnRDb3JuZXJZXyArIGRlbHRhWSk7Cit9CisKK0xv
dXBlLnByb3RvdHlwZS5oaWRlID0gZnVuY3Rpb24oKQoreworICAgIHRoaXMubm9kZV8uc3R5bGUu
ZGlzcGxheSA9ICdub25lJzsKK307CisKK0xvdXBlLnByb3RvdHlwZS5zaG93Rm9yXyA9IGZ1bmN0
aW9uKHgsIHkpCit7CisgICAgdGhpcy5maWxsRnJvbUltYWdlXyh4LCB5LCAnZXhwZWN0ZWQnLCAk
KCdleHBlY3RlZC1pbWFnZScpKTsKKyAgICB0aGlzLmZpbGxGcm9tSW1hZ2VfKHgsIHksICdhY3R1
YWwnLCAkKCdhY3R1YWwtaW1hZ2UnKSk7CisgICAgdGhpcy5maWxsRnJvbUNhbnZhc18oeCwgeSwg
J2RpZmYnLCAkKCdkaWZmLWNhbnZhcycpKTsKKworICAgIHRoaXMubm9kZV8uc3R5bGUuZGlzcGxh
eSA9ICcnOworfTsKKworTG91cGUucHJvdG90eXBlLmZpbGxGcm9tSW1hZ2VfID0gZnVuY3Rpb24o
eCwgeSwgdHlwZSwgc291cmNlSW1hZ2UpCit7CisgICAgdmFyIHRlbXBDYW52YXMgPSBkb2N1bWVu
dC5jcmVhdGVFbGVtZW50KCdjYW52YXMnKTsKKyAgICB0ZW1wQ2FudmFzLndpZHRoID0gc291cmNl
SW1hZ2Uud2lkdGg7CisgICAgdGVtcENhbnZhcy5oZWlnaHQgPSBzb3VyY2VJbWFnZS5oZWlnaHQ7
CisgICAgdmFyIHRlbXBDb250ZXh0ID0gdGVtcENhbnZhcy5nZXRDb250ZXh0KCcyZCcpOworCisg
ICAgdGVtcENvbnRleHQuZHJhd0ltYWdlKHNvdXJjZUltYWdlLCAwLCAwKTsKKworICAgIHRoaXMu
ZmlsbEZyb21DYW52YXNfKHgsIHksIHR5cGUsIHRlbXBDYW52YXMpOworfTsKKworTG91cGUucHJv
dG90eXBlLmZpbGxGcm9tQ2FudmFzXyA9IGZ1bmN0aW9uKHgsIHksIHR5cGUsIGNhbnZhcykKK3sK
KyAgICB2YXIgY29udGV4dCA9IGNhbnZhcy5nZXRDb250ZXh0KCcyZCcpOworICAgIHZhciBzb3Vy
Y2VJbWFnZURhdGEgPQorICAgICAgICBjb250ZXh0LmdldEltYWdlRGF0YSgwLCAwLCBjYW52YXMu
d2lkdGgsIGNhbnZhcy5oZWlnaHQpOworCisgICAgdmFyIHRhcmdldENhbnZhcyA9ICQodHlwZSAr
ICctbG91cGUnKTsKKyAgICB2YXIgdGFyZ2V0Q29udGV4dCA9IHRhcmdldENhbnZhcy5nZXRDb250
ZXh0KCcyZCcpOworICAgIHRhcmdldENvbnRleHQuZmlsbFN0eWxlID0gJ3JnYmEoMjU1LCAyNTUs
IDI1NSwgMSknOworICAgIHRhcmdldENvbnRleHQuZmlsbFJlY3QoMCwgMCwgdGFyZ2V0Q2FudmFz
LndpZHRoLCB0YXJnZXRDYW52YXMuaGVpZ2h0KTsKKworICAgIHZhciBzb3VyY2VYT2Zmc2V0ID0g
KHRhcmdldENhbnZhcy53aWR0aC9MT1VQRV9NQUdOSUZJQ0FUSU9OX0ZBQ1RPUiAtIDEpLzI7Cisg
ICAgdmFyIHNvdXJjZVlPZmZzZXQgPSAodGFyZ2V0Q2FudmFzLmhlaWdodC9MT1VQRV9NQUdOSUZJ
Q0FUSU9OX0ZBQ1RPUiAtIDEpLzI7CisKKyAgICBmdW5jdGlvbiByZWFkUGl4ZWxDb21wb25lbnQo
eCwgeSwgY29tcG9uZW50KSB7CisgICAgICAgIHZhciBvZmZzZXQgPSAoeSAqIHNvdXJjZUltYWdl
RGF0YS53aWR0aCArIHgpICogNCArIGNvbXBvbmVudDsKKyAgICAgICAgcmV0dXJuIHNvdXJjZUlt
YWdlRGF0YS5kYXRhW29mZnNldF07CisgICAgfQorCisgICAgZm9yICh2YXIgaSA9IC1zb3VyY2VY
T2Zmc2V0OyBpIDw9IHNvdXJjZVhPZmZzZXQ7IGkrKykgeworICAgICAgICBmb3IgKHZhciBqID0g
LXNvdXJjZVlPZmZzZXQ7IGogPD0gc291cmNlWU9mZnNldDsgaisrKSB7CisgICAgICAgICAgICB2
YXIgc291cmNlWCA9IHggKyBpOworICAgICAgICAgICAgdmFyIHNvdXJjZVkgPSB5ICsgajsKKwor
ICAgICAgICAgICAgdmFyIHNvdXJjZVIgPSByZWFkUGl4ZWxDb21wb25lbnQoc291cmNlWCwgc291
cmNlWSwgMCk7CisgICAgICAgICAgICB2YXIgc291cmNlRyA9IHJlYWRQaXhlbENvbXBvbmVudChz
b3VyY2VYLCBzb3VyY2VZLCAxKTsKKyAgICAgICAgICAgIHZhciBzb3VyY2VCID0gcmVhZFBpeGVs
Q29tcG9uZW50KHNvdXJjZVgsIHNvdXJjZVksIDIpOworICAgICAgICAgICAgdmFyIHNvdXJjZUEg
PSByZWFkUGl4ZWxDb21wb25lbnQoc291cmNlWCwgc291cmNlWSwgMykvMjU1OworICAgICAgICAg
ICAgc291cmNlQSA9IE1hdGgucm91bmQoc291cmNlQSAqIDEwKS8xMDsKKworICAgICAgICAgICAg
dmFyIHRhcmdldFggPSAoaSArIHNvdXJjZVhPZmZzZXQpICogTE9VUEVfTUFHTklGSUNBVElPTl9G
QUNUT1I7CisgICAgICAgICAgICB2YXIgdGFyZ2V0WSA9IChqICsgc291cmNlWU9mZnNldCkgKiBM
T1VQRV9NQUdOSUZJQ0FUSU9OX0ZBQ1RPUjsKKyAgICAgICAgICAgIHZhciBjb2xvclN0cmluZyA9
CisgICAgICAgICAgICAgICAgc291cmNlUiArICcsICcgKyBzb3VyY2VHICsgJywgJyArIHNvdXJj
ZUIgKyAnLCAnICsgc291cmNlQTsKKyAgICAgICAgICAgIHRhcmdldENvbnRleHQuZmlsbFN0eWxl
ID0gJ3JnYmEoJyArIGNvbG9yU3RyaW5nICsgJyknOworICAgICAgICAgICAgdGFyZ2V0Q29udGV4
dC5maWxsUmVjdCgKKyAgICAgICAgICAgICAgICB0YXJnZXRYLCB0YXJnZXRZLAorICAgICAgICAg
ICAgICAgIExPVVBFX01BR05JRklDQVRJT05fRkFDVE9SLCBMT1VQRV9NQUdOSUZJQ0FUSU9OX0ZB
Q1RPUik7CisKKyAgICAgICAgICAgIGlmIChpID09IDAgJiYgaiA9PSAwKSB7CisgICAgICAgICAg
ICAgICAgJCgnbG91cGUtY29vcmRpbmF0ZScpLnRleHRDb250ZW50ID0gc291cmNlWCArICcsICcg
KyBzb3VyY2VZOworICAgICAgICAgICAgICAgICQodHlwZSArICctbG91cGUtY29sb3InKS50ZXh0
Q29udGVudCA9IGNvbG9yU3RyaW5nOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQor
CisgICAgdGhpcy5jdXJyZW50Q29ybmVyWF8gPSB4IC0gc291cmNlWE9mZnNldDsKKyAgICB0aGlz
LmN1cnJlbnRDb3JuZXJZXyA9IHkgLSBzb3VyY2VZT2Zmc2V0OworfTsKZGlmZiAtLWdpdCBhL1dl
YktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9jb21tYW5kcy9kYXRhL3JlYmFzZWxpbmVz
ZXJ2ZXIvbWFpbi5jc3MgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFu
ZHMvZGF0YS9yZWJhc2VsaW5lc2VydmVyL21haW4uY3NzCmluZGV4IGJkMmNkOTgzYTY3NzdhNmM3
NTljY2NhNjA5ZjE4NWM5NWIyZTA4ZDIuLjlmYWMxNzY3MDEzZDk2NGI4YzQwZWU1NzA0NDQxOTRm
NGM2ZjVjMzcgMTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9j
b21tYW5kcy9kYXRhL3JlYmFzZWxpbmVzZXJ2ZXIvbWFpbi5jc3MKKysrIGIvV2ViS2l0VG9vbHMv
U2NyaXB0cy93ZWJraXRweS90b29sL2NvbW1hbmRzL2RhdGEvcmViYXNlbGluZXNlcnZlci9tYWlu
LmNzcwpAQCAtMTIwLDYgKzEyMCw3IEBAIGEsIC5saW5rIHsKICAgYm9yZGVyOiBzb2xpZCAxcHgg
I2RkZDsKICAgLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTsKICAgLXdlYmtpdC11c2VyLWRyYWc6
IG5vbmU7CisgIGN1cnNvcjogY3Jvc3NoYWlyOyAgCiB9CiAKICNpbWFnZS1vdXRwdXRzIGltZy5s
b2FkaW5nLApAQCAtMTQ4LDMgKzE0OSw2NSBAQCBhLCAubGluayB7CiAgIG1hcmdpbjogMDsKICAg
YmFja2dyb3VuZDogI2VlZTsKIH0KKworI2xvdXBlIHsKKyAgLXdlYmtpdC1ib3gtc2hhZG93OiAy
cHggMnB4IDVweCByZ2JhKDAsIDAsIDAsIC41KTsKKyAgcG9zaXRpb246IGFic29sdXRlOworICB3
aWR0aDogNjM0cHg7CisgIHRvcDogNTAlOworICBsZWZ0OiA1MCU7CisgIG1hcmdpbi1sZWZ0OiAt
MTUxcHg7CisgIG1hcmdpbi10b3A6IC01MHB4OworICBiYWNrZ3JvdW5kOiAjZmZmOworICBib3Jk
ZXItc3BhY2luZzogMDsKKyAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTsKK30KKworI2xvdXBl
IHRkIHsKKyAgcGFkZGluZzogMDsKKyAgYm9yZGVyOiBzb2xpZCAxcHggI2NjYzsgICAgIAorfQor
CisjbG91cGUgbGFiZWwgeworICBjb2xvcjogIzk5OTsKKyAgcGFkZGluZy1yaWdodDogMWVtOwor
fQorCisjbG91cGUgc3BhbiB7CisgIGNvbG9yOiAjMDAwOworICBmb250LXdlaWdodDogYm9sZDsK
K30KKworI2xvdXBlIGNhbnZhcyB7CisgIGN1cnNvcjogY3Jvc3NoYWlyOworfQorCisjbG91cGUg
I2xvdXBlLWNsb3NlIHsKKyAgZmxvYXQ6IHJpZ2h0OworfQorCisjbG91cGUgI2xvdXBlLWluZm8g
eworICBiYWNrZ3JvdW5kOiAjZWVlOworICBwYWRkaW5nOiAuM2VtIC41ZW07Cit9CisKKyNsb3Vw
ZSAjbG91cGUtY29sb3JzIHRkIHsKKyAgdGV4dC1hbGlnbjogY2VudGVyOworfQorCisjbG91cGUg
LmxvdXBlLWNvbnRhaW5lciB7CisgIHBvc2l0aW9uOiByZWxhdGl2ZTsKKyAgd2lkdGg6IDIxMHB4
OworICBoZWlnaHQ6IDIxMHB4OworfQorCisjbG91cGUgLmNlbnRlci1oaWdobGlnaHQgeworICBw
b3NpdGlvbjogYWJzb2x1dGU7CisgIHdpZHRoOiAxMHB4OworICBoZWlnaHQ6IDEwcHg7CisgIHRv
cDogNTAlOworICBsZWZ0OiA1MCU7CisgIG1hcmdpbi1sZWZ0OiAtNXB4OworICBtYXJnaW4tdG9w
OiAtNXB4OworICBvdXRsaW5lOiBzb2xpZCAxcHggIzk5OTsKK30KXCBObyBuZXdsaW5lIGF0IGVu
ZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wv
Y29tbWFuZHMvZGF0YS9yZWJhc2VsaW5lc2VydmVyL21haW4uanMgYi9XZWJLaXRUb29scy9TY3Jp
cHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMvZGF0YS9yZWJhc2VsaW5lc2VydmVyL21haW4uanMK
aW5kZXggMjFkMThiNzI4OWJmNjI3ZThlMTY5ZWQwZDBjM2U5YTAxMDQ5N2Y0My4uZmEwMzdiM2Jl
NWE0ZTU4MzQ2MzViNDczYzYzMDFjOTFmNzJmZTcxZSAxMDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMv
U2NyaXB0cy93ZWJraXRweS90b29sL2NvbW1hbmRzL2RhdGEvcmViYXNlbGluZXNlcnZlci9tYWlu
LmpzCisrKyBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9jb21tYW5kcy9kYXRh
L3JlYmFzZWxpbmVzZXJ2ZXIvbWFpbi5qcwpAQCAtMzQsNiArMzQsNyBAQCB2YXIgcmVzdWx0czsK
IHZhciB0ZXN0c0J5RmFpbHVyZVR5cGUgPSB7fTsKIHZhciB0ZXN0c0J5RGlyZWN0b3J5ID0ge307
CiB2YXIgc2VsZWN0ZWRUZXN0cyA9IFtdOwordmFyIGxvdXBlOwogCiBmdW5jdGlvbiBtYWluKCkK
IHsKQEAgLTQzLDYgKzQ0LDggQEAgZnVuY3Rpb24gbWFpbigpCiAgICAgJCgnbmV4dC10ZXN0Jyku
YWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBuZXh0VGVzdCk7CiAgICAgJCgncHJldmlvdXMtdGVz
dCcpLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgcHJldmlvdXNUZXN0KTsKIAorICAgIGxvdXBl
ID0gbmV3IExvdXBlKCk7CisKICAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdrZXlkb3du
JywgZnVuY3Rpb24oZXZlbnQpIHsKICAgICAgICAgaWYgKGV2ZW50LmFsdEtleSB8fCBldmVudC5j
dHJsS2V5IHx8IGV2ZW50Lm1ldGFLZXkgfHwgZXZlbnQuc2hpZnRLZXkpIHsKICAgICAgICAgICAg
IHJldHVybjsKQEAgLTIxMCw2ICsyMTMsNyBAQCBmdW5jdGlvbiBzZWxlY3RUZXN0KCkKICAgICB9
CiAKICAgICB1cGRhdGVTdGF0ZSgpOworICAgIGxvdXBlLmhpZGUoKTsKIH0KIAogZnVuY3Rpb24g
dXBkYXRlU3RhdGUoKQpAQCAtMjQxLDcgKzI0NSw3IEBAIGZ1bmN0aW9uIGRpc3BsYXlJbWFnZVJl
c3VsdHModGVzdE5hbWUpCiAgICAgICAgICYmIGN1cnJlbnRFeHBlY3RlZEltYWdlVGVzdCA9PSB0
ZXN0TmFtZSkgewogICAgICAgICByZXR1cm47CiAgICAgfQotICAgIAorCiAgICAgZnVuY3Rpb24g
ZGlzcGxheUltYWdlUmVzdWx0KG1vZGUsIGNhbGxiYWNrKSB7CiAgICAgICAgIHZhciBpbWFnZSA9
ICQobW9kZSk7CiAgICAgICAgIGltYWdlLmNsYXNzTmFtZSA9ICdsb2FkaW5nJzsKQEAgLTI3NCw0
NSArMjc4LDQ1IEBAIGZ1bmN0aW9uIGRpc3BsYXlJbWFnZVJlc3VsdHModGVzdE5hbWUpCiBmdW5j
dGlvbiB1cGRhdGVJbWFnZURpZmYoKSB7CiAgICAgaWYgKGN1cnJlbnRFeHBlY3RlZEltYWdlVGVz
dCAhPSBjdXJyZW50QWN0dWFsSW1hZ2VUZXN0KQogICAgICAgICByZXR1cm47Ci0gICAgICAgIAor
CiAgICAgdmFyIGV4cGVjdGVkSW1hZ2UgPSAkKCdleHBlY3RlZC1pbWFnZScpOwogICAgIHZhciBh
Y3R1YWxJbWFnZSA9ICQoJ2FjdHVhbC1pbWFnZScpOwotICAgIAorCiAgICAgZnVuY3Rpb24gZ2V0
SW1hZ2VEYXRhKGltYWdlKSB7CiAgICAgICAgIHZhciBpbWFnZUNhbnZhcyA9IGRvY3VtZW50LmNy
ZWF0ZUVsZW1lbnQoJ2NhbnZhcycpOwogICAgICAgICBpbWFnZUNhbnZhcy53aWR0aCA9IGltYWdl
LndpZHRoOwogICAgICAgICBpbWFnZUNhbnZhcy5oZWlnaHQgPSBpbWFnZS5oZWlnaHQ7CiAgICAg
ICAgIGltYWdlQ2FudmFzQ29udGV4dCA9IGltYWdlQ2FudmFzLmdldENvbnRleHQoJzJkJyk7Ci0g
ICAgICAgIAorCiAgICAgICAgIGltYWdlQ2FudmFzQ29udGV4dC5maWxsU3R5bGUgPSAncmdiYSgy
NTUsIDI1NSwgMjU1LCAxKSc7CiAgICAgICAgIGltYWdlQ2FudmFzQ29udGV4dC5maWxsUmVjdCgK
ICAgICAgICAgICAgIDAsIDAsIGltYWdlLndpZHRoLCBpbWFnZS5oZWlnaHQpOwotICAgICAgICAg
ICAgCisKICAgICAgICAgaW1hZ2VDYW52YXNDb250ZXh0LmRyYXdJbWFnZShpbWFnZSwgMCwgMCk7
CiAgICAgICAgIHJldHVybiBpbWFnZUNhbnZhc0NvbnRleHQuZ2V0SW1hZ2VEYXRhKAotICAgICAg
ICAgICAgMCwgMCwgaW1hZ2Uud2lkdGgsIGltYWdlLmhlaWdodCk7ICAKKyAgICAgICAgICAgIDAs
IDAsIGltYWdlLndpZHRoLCBpbWFnZS5oZWlnaHQpOwogICAgIH0KLSAgICAKKwogICAgIHZhciBl
eHBlY3RlZEltYWdlRGF0YSA9IGdldEltYWdlRGF0YShleHBlY3RlZEltYWdlKTsKICAgICB2YXIg
YWN0dWFsSW1hZ2VEYXRhID0gZ2V0SW1hZ2VEYXRhKGFjdHVhbEltYWdlKTsKLSAgICAKKwogICAg
IHZhciBkaWZmQ2FudmFzID0gJCgnZGlmZi1jYW52YXMnKTsKICAgICB2YXIgZGlmZkNhbnZhc0Nv
bnRleHQgPSBkaWZmQ2FudmFzLmdldENvbnRleHQoJzJkJyk7CiAgICAgdmFyIGRpZmZJbWFnZURh
dGEgPQogICAgICAgICBkaWZmQ2FudmFzQ29udGV4dC5jcmVhdGVJbWFnZURhdGEoZGlmZkNhbnZh
cy53aWR0aCwgZGlmZkNhbnZhcy5oZWlnaHQpOwotICAKKwogICAgIC8vIEF2b2lkaW5nIHByb3Bl
cnR5IGxvb2t1cHMgZm9yIGFsbCB0aGVzZSBkdXJpbmcgdGhlIHBlci1waXhlbCBsb29wIGJlbG93
CiAgICAgLy8gcHJvdmlkZXMgYSBzaWduaWZpY2FudCBwZXJmb3JtYW5jZSBiZW5lZml0LgogICAg
IHZhciBleHBlY3RlZFdpZHRoID0gZXhwZWN0ZWRJbWFnZS53aWR0aDsKICAgICB2YXIgZXhwZWN0
ZWRIZWlnaHQgPSBleHBlY3RlZEltYWdlLmhlaWdodDsKICAgICB2YXIgZXhwZWN0ZWQgPSBleHBl
Y3RlZEltYWdlRGF0YS5kYXRhOwotICAgIAorCiAgICAgdmFyIGFjdHVhbFdpZHRoID0gYWN0dWFs
SW1hZ2Uud2lkdGg7CiAgICAgdmFyIGFjdHVhbCA9IGFjdHVhbEltYWdlRGF0YS5kYXRhOwotICAK
KwogICAgIHZhciBkaWZmV2lkdGggPSBkaWZmSW1hZ2VEYXRhLndpZHRoOwogICAgIHZhciBkaWZm
ID0gZGlmZkltYWdlRGF0YS5kYXRhOwotICAgIAorCiAgICAgZm9yICh2YXIgeCA9IDA7IHggPCBl
eHBlY3RlZFdpZHRoOyB4KyspIHsKICAgICAgICAgZm9yICh2YXIgeSA9IDA7IHkgPCBleHBlY3Rl
ZEhlaWdodDsgeSsrKSB7CiAgICAgICAgICAgICB2YXIgZXhwZWN0ZWRPZmZzZXQgPSAoeSAqIGV4
cGVjdGVkV2lkdGggKyB4KSAqIDQ7CkBAIC0zMzQsNyArMzM4LDcgQEAgZnVuY3Rpb24gdXBkYXRl
SW1hZ2VEaWZmKCkgewogICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAgfQotICAgIAorCiAg
ICAgZGlmZkNhbnZhc0NvbnRleHQucHV0SW1hZ2VEYXRhKAogICAgICAgICBkaWZmSW1hZ2VEYXRh
LAogICAgICAgICAwLCAwLApkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRw
eS90b29sL2NvbW1hbmRzL3JlYmFzZWxpbmVzZXJ2ZXIucHkgYi9XZWJLaXRUb29scy9TY3JpcHRz
L3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMvcmViYXNlbGluZXNlcnZlci5weQppbmRleCAzYWE0NjRh
YTFjZjg0M2QwOGFhNDhiMDA2NjViMzAxZmE1ZmVlYmExLi5hYmIyYWY0YjIwMmZjNTczMTFiNjJi
ZWE3ODU2Y2MzMTE0ZjQ4MjhiIDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtp
dHB5L3Rvb2wvY29tbWFuZHMvcmViYXNlbGluZXNlcnZlci5weQorKysgYi9XZWJLaXRUb29scy9T
Y3JpcHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMvcmViYXNlbGluZXNlcnZlci5weQpAQCAtNTgs
NiArNTgsNyBAQCBjbGFzcyBSZWJhc2VsaW5lSFRUUFNlcnZlcihCYXNlSFRUUFNlcnZlci5IVFRQ
U2VydmVyKToKIGNsYXNzIFJlYmFzZWxpbmVIVFRQUmVxdWVzdEhhbmRsZXIoQmFzZUhUVFBTZXJ2
ZXIuQmFzZUhUVFBSZXF1ZXN0SGFuZGxlcik6CiAgICAgU1RBVElDX0ZJTEVfTkFNRVMgPSBmcm96
ZW5zZXQoWwogICAgICAgICAiaW5kZXguaHRtbCIsCisgICAgICAgICJsb3VwZS5qcyIsCiAgICAg
ICAgICJtYWluLmpzIiwKICAgICAgICAgIm1haW4uY3NzIiwKICAgICAgICAgInV0aWwuanMiLAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>74176</attachid>
            <date>2010-11-17 16:34:33 -0800</date>
            <delta_ts>2010-11-17 16:39:11 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-49692-20101117163432.patch</filename>
            <type>text/plain</type>
            <size>14563</size>
            <attacher name="Mihai Parparita">mihaip</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0NoYW5nZUxvZyBiL1dlYktpdFRvb2xzL0NoYW5nZUxv
ZwppbmRleCBmOGMzZjYxYTEwYTU3NDQxNjI3NjAyNDE1MjgwMTVmODRmZWQ1MWVkLi4wMzViOTM1
MGU1ODg2MTgzZTg4ODE2MWYyMWE1ZWNlZTc1YTFiMmVlIDEwMDY0NAotLS0gYS9XZWJLaXRUb29s
cy9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAK
KzIwMTAtMTEtMTcgIE1paGFpIFBhcnBhcml0YSAgPG1paGFpcEBjaHJvbWl1bS5vcmc+CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmViYXNlbGluZSBz
ZXJ2ZXI6IGFkZCBsb3VwZSBmb3IgaW1hZ2UgZGlmZnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ5NjkyCisgICAgICAgIAorICAgICAgICBBZGQgYSBs
b3VwZSAobWFnbmlmaXlpbmcgZ2xhc3MpIGZvciBpbnNwZWN0aW5nIGltYWdlIGRpZmZzLiBTaG93
cyBhbgorICAgICAgICBlbmxhcmdlZCBhcmVhIG9mIHRoZSBleHBlY3RlZCwgYWN0dWFsIGFuZCBk
aWZmIGltYWdlcyBzaWRlIGJ5IHNpZGUuCisKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3Rv
b2wvY29tbWFuZHMvZGF0YS9yZWJhc2VsaW5lc2VydmVyL2luZGV4Lmh0bWw6CisgICAgICAgICog
U2NyaXB0cy93ZWJraXRweS90b29sL2NvbW1hbmRzL2RhdGEvcmViYXNlbGluZXNlcnZlci9sb3Vw
ZS5qczogQWRkZWQuCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS90b29sL2NvbW1hbmRzL2Rh
dGEvcmViYXNlbGluZXNlcnZlci9tYWluLmpzOgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkv
dG9vbC9jb21tYW5kcy9yZWJhc2VsaW5lc2VydmVyLnB5OgorCiAyMDEwLTExLTE3ICBTYXRpc2gg
U2FtcGF0aCAgPHNhdGlzaEBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgSmVy
ZW15IE9ybG93LgpkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29s
L2NvbW1hbmRzL2RhdGEvcmViYXNlbGluZXNlcnZlci9pbmRleC5odG1sIGIvV2ViS2l0VG9vbHMv
U2NyaXB0cy93ZWJraXRweS90b29sL2NvbW1hbmRzL2RhdGEvcmViYXNlbGluZXNlcnZlci9pbmRl
eC5odG1sCmluZGV4IGFmZDJmZmZkYmVjMTk4MTYzYzEzODA2NGNhYWRkYWQ0M2VlZjY1NmUuLjhj
YzQ4YzEyZmQ3YzgwNjhkYjVlNTlhMmUxNWMyMWY5YzExY2QzODggMTAwNjQ0Ci0tLSBhL1dlYktp
dFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9jb21tYW5kcy9kYXRhL3JlYmFzZWxpbmVzZXJ2
ZXIvaW5kZXguaHRtbAorKysgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvY29t
bWFuZHMvZGF0YS9yZWJhc2VsaW5lc2VydmVyL2luZGV4Lmh0bWwKQEAgLTMzLDYgKzMzLDcgQEAK
ICAgPHRpdGxlPkxheW91dCBUZXN0IFJlYmFzZWxpbmUgU2VydmVyPC90aXRsZT4KICAgPGxpbmsg
cmVsPSJzdHlsZXNoZWV0IiBocmVmPSIvbWFpbi5jc3MiIHR5cGU9InRleHQvY3NzIj4KICAgPHNj
cmlwdCBzcmM9Ii91dGlsLmpzIj48L3NjcmlwdD4KKyAgPHNjcmlwdCBzcmM9Ii9sb3VwZS5qcyI+
PC9zY3JpcHQ+CiAgIDxzY3JpcHQgc3JjPSIvbWFpbi5qcyI+PC9zY3JpcHQ+CiA8L2hlYWQ+CiA8
Ym9keSBjbGFzcz0ibG9hZGluZyI+CkBAIC0xMDAsNSArMTAxLDM5IEBACiAgIDwvdGJvZHk+CiA8
L3RhYmxlPgogCis8dGFibGUgaWQ9ImxvdXBlIiBzdHlsZT0iZGlzcGxheTogbm9uZSI+CisgIDx0
cj4KKyAgICA8dGQgY29sc3Bhbj0iMyIgaWQ9ImxvdXBlLWluZm8iPgorICAgICAgPHNwYW4gaWQ9
ImxvdXBlLWNsb3NlIiBjbGFzcz0ibGluayI+Q2xvc2U8L3NwYW4+CisgICAgICA8bGFiZWw+Q29v
cmRpbmF0ZTogPHNwYW4gaWQ9ImxvdXBlLWNvb3JkaW5hdGUiPjwvc3Bhbj48L2xhYmVsPgorICAg
IDwvdGQ+CisgIDwvdHI+CisgIDx0cj4KKyAgICA8dGQ+CisgICAgICA8ZGl2IGNsYXNzPSJsb3Vw
ZS1jb250YWluZXIiPgorICAgICAgICA8Y2FudmFzIGlkPSJleHBlY3RlZC1sb3VwZSIgd2lkdGg9
IjIxMCIgaGVpZ2h0PSIyMTAiPjwvY2FudmFzPgorICAgICAgICA8ZGl2IGNsYXNzPSJjZW50ZXIt
aGlnaGxpZ2h0Ij48L2Rpdj4KKyAgICAgIDwvZGl2PgorICAgIDwvdGQ+CisgICAgPHRkPgorICAg
ICAgPGRpdiBjbGFzcz0ibG91cGUtY29udGFpbmVyIj4KKyAgICAgICAgPGNhbnZhcyBpZD0iYWN0
dWFsLWxvdXBlIiB3aWR0aD0iMjEwIiBoZWlnaHQ9IjIxMCI+PC9jYW52YXM+CisgICAgICAgIDxk
aXYgY2xhc3M9ImNlbnRlci1oaWdobGlnaHQiPjwvZGl2PgorICAgICAgPC9kaXY+CisgICAgPC90
ZD4KKyAgICA8dGQ+CisgICAgICA8ZGl2IGNsYXNzPSJsb3VwZS1jb250YWluZXIiPgorICAgICAg
ICA8Y2FudmFzIGlkPSJkaWZmLWxvdXBlIiB3aWR0aD0iMjEwIiBoZWlnaHQ9IjIxMCI+PC9jYW52
YXM+CisgICAgICAgIDxkaXYgY2xhc3M9ImNlbnRlci1oaWdobGlnaHQiPjwvZGl2PgorICAgICAg
PC9kaXY+CisgICAgPC90ZD4KKyAgPC90cj4KKyAgPHRyIGlkPSJsb3VwZS1jb2xvcnMiPgorICAg
IDx0ZD48bGFiZWw+RXhwLiBjb2xvcjogPHNwYW4gaWQ9ImV4cGVjdGVkLWxvdXBlLWNvbG9yIj48
L3NwYW4+PC9sYWJlbD48L3RkPgorICAgIDx0ZD48bGFiZWw+QWN0dWFsIGNvbG9yOiA8c3BhbiBp
ZD0iYWN0dWFsLWxvdXBlLWNvbG9yIj48L3NwYW4+PC9sYWJlbD48L3RkPgorICAgIDx0ZD48bGFi
ZWw+RGlmZiBjb2xvcjogPHNwYW4gaWQ9ImRpZmYtbG91cGUtY29sb3IiPjwvc3Bhbj48L2xhYmVs
PjwvdGQ+CisgIDwvdHI+Cis8L3RhYmxlPgorCiA8L2JvZHk+CiA8L2h0bWw+CmRpZmYgLS1naXQg
YS9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMvZGF0YS9yZWJhc2Vs
aW5lc2VydmVyL2xvdXBlLmpzIGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2Nv
bW1hbmRzL2RhdGEvcmViYXNlbGluZXNlcnZlci9sb3VwZS5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40MWY5Nzdh
YzgyNjA3YjAzNzA5MzRiNjk4ZTQwZDE4MDVjY2Q1Y2FkCi0tLSAvZGV2L251bGwKKysrIGIvV2Vi
S2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2NvbW1hbmRzL2RhdGEvcmViYXNlbGluZXNl
cnZlci9sb3VwZS5qcwpAQCAtMCwwICsxLDE0NCBAQAorLyoKKyAqIENvcHlyaWdodCAoYykgMjAx
MCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAg
ICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAgICAg
KiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisg
KiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3Rz
IGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdy
aXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRI
RSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElN
SVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisg
KiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKK3ZhciBMT1VQRV9NQUdOSUZJQ0FUSU9OX0ZB
Q1RPUiA9IDEwOworCitmdW5jdGlvbiBMb3VwZSgpCit7CisgICAgdGhpcy5fbm9kZSA9ICQoJ2xv
dXBlJyk7CisgICAgdGhpcy5fY3VycmVudENvcm5lclggPSAtMTsKKyAgICB0aGlzLl9jdXJyZW50
Q29ybmVyWSA9IC0xOworCisgICAgdmFyIHNlbGYgPSB0aGlzOworCisgICAgZnVuY3Rpb24gaGFu
ZGxlT3V0cHV0Q2xpY2soZXZlbnQpIHsgc2VsZi5faGFuZGxlT3V0cHV0Q2xpY2soZXZlbnQpOyB9
CisgICAgJCgnZXhwZWN0ZWQtaW1hZ2UnKS5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIGhhbmRs
ZU91dHB1dENsaWNrKTsKKyAgICAkKCdhY3R1YWwtaW1hZ2UnKS5hZGRFdmVudExpc3RlbmVyKCdj
bGljaycsIGhhbmRsZU91dHB1dENsaWNrKTsKKyAgICAkKCdkaWZmLWNhbnZhcycpLmFkZEV2ZW50
TGlzdGVuZXIoJ2NsaWNrJywgaGFuZGxlT3V0cHV0Q2xpY2spOworCisgICAgZnVuY3Rpb24gaGFu
ZGxlTG91cGVDbGljayhldmVudCkgeyBzZWxmLl9oYW5kbGVMb3VwZUNsaWNrKGV2ZW50KTsgfQor
ICAgICQoJ2V4cGVjdGVkLWxvdXBlJykuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBoYW5kbGVM
b3VwZUNsaWNrKTsKKyAgICAkKCdhY3R1YWwtbG91cGUnKS5hZGRFdmVudExpc3RlbmVyKCdjbGlj
aycsIGhhbmRsZUxvdXBlQ2xpY2spOworICAgICQoJ2RpZmYtbG91cGUnKS5hZGRFdmVudExpc3Rl
bmVyKCdjbGljaycsIGhhbmRsZUxvdXBlQ2xpY2spOworCisgICAgZnVuY3Rpb24gaGlkZShldmVu
dCkgeyBzZWxmLmhpZGUoKTsgfQorICAgICQoJ2xvdXBlLWNsb3NlJykuYWRkRXZlbnRMaXN0ZW5l
cignY2xpY2snLCBoaWRlKTsKK30KKworTG91cGUucHJvdG90eXBlLl9oYW5kbGVPdXRwdXRDbGlj
ayA9IGZ1bmN0aW9uKGV2ZW50KQoreworICAgIC8vIFRoZSAtMSBjb21wZW5zYXRlcyBmb3IgdGhl
IGJvcmRlciBhcm91bmQgdGhlIGltYWdlL2NhbnZhcy4KKyAgICB0aGlzLl9zaG93Rm9yKGV2ZW50
Lm9mZnNldFggLSAxLCBldmVudC5vZmZzZXRZIC0gMSk7Cit9OworCitMb3VwZS5wcm90b3R5cGUu
X2hhbmRsZUxvdXBlQ2xpY2sgPSBmdW5jdGlvbihldmVudCkKK3sKKyAgICB2YXIgZGVsdGFYID0g
TWF0aC5mbG9vcihldmVudC5vZmZzZXRYL0xPVVBFX01BR05JRklDQVRJT05fRkFDVE9SKTsKKyAg
ICB2YXIgZGVsdGFZID0gTWF0aC5mbG9vcihldmVudC5vZmZzZXRZL0xPVVBFX01BR05JRklDQVRJ
T05fRkFDVE9SKTsKKworICAgIHRoaXMuX3Nob3dGb3IoCisgICAgICAgIHRoaXMuX2N1cnJlbnRD
b3JuZXJYICsgZGVsdGFYLCB0aGlzLl9jdXJyZW50Q29ybmVyWSArIGRlbHRhWSk7Cit9CisKK0xv
dXBlLnByb3RvdHlwZS5oaWRlID0gZnVuY3Rpb24oKQoreworICAgIHRoaXMuX25vZGUuc3R5bGUu
ZGlzcGxheSA9ICdub25lJzsKK307CisKK0xvdXBlLnByb3RvdHlwZS5fc2hvd0ZvciA9IGZ1bmN0
aW9uKHgsIHkpCit7CisgICAgdGhpcy5fZmlsbEZyb21JbWFnZSh4LCB5LCAnZXhwZWN0ZWQnLCAk
KCdleHBlY3RlZC1pbWFnZScpKTsKKyAgICB0aGlzLl9maWxsRnJvbUltYWdlKHgsIHksICdhY3R1
YWwnLCAkKCdhY3R1YWwtaW1hZ2UnKSk7CisgICAgdGhpcy5fZmlsbEZyb21DYW52YXMoeCwgeSwg
J2RpZmYnLCAkKCdkaWZmLWNhbnZhcycpKTsKKworICAgIHRoaXMuX25vZGUuc3R5bGUuZGlzcGxh
eSA9ICcnOworfTsKKworTG91cGUucHJvdG90eXBlLl9maWxsRnJvbUltYWdlID0gZnVuY3Rpb24o
eCwgeSwgdHlwZSwgc291cmNlSW1hZ2UpCit7CisgICAgdmFyIHRlbXBDYW52YXMgPSBkb2N1bWVu
dC5jcmVhdGVFbGVtZW50KCdjYW52YXMnKTsKKyAgICB0ZW1wQ2FudmFzLndpZHRoID0gc291cmNl
SW1hZ2Uud2lkdGg7CisgICAgdGVtcENhbnZhcy5oZWlnaHQgPSBzb3VyY2VJbWFnZS5oZWlnaHQ7
CisgICAgdmFyIHRlbXBDb250ZXh0ID0gdGVtcENhbnZhcy5nZXRDb250ZXh0KCcyZCcpOworCisg
ICAgdGVtcENvbnRleHQuZHJhd0ltYWdlKHNvdXJjZUltYWdlLCAwLCAwKTsKKworICAgIHRoaXMu
X2ZpbGxGcm9tQ2FudmFzKHgsIHksIHR5cGUsIHRlbXBDYW52YXMpOworfTsKKworTG91cGUucHJv
dG90eXBlLl9maWxsRnJvbUNhbnZhcyA9IGZ1bmN0aW9uKHgsIHksIHR5cGUsIGNhbnZhcykKK3sK
KyAgICB2YXIgY29udGV4dCA9IGNhbnZhcy5nZXRDb250ZXh0KCcyZCcpOworICAgIHZhciBzb3Vy
Y2VJbWFnZURhdGEgPQorICAgICAgICBjb250ZXh0LmdldEltYWdlRGF0YSgwLCAwLCBjYW52YXMu
d2lkdGgsIGNhbnZhcy5oZWlnaHQpOworCisgICAgdmFyIHRhcmdldENhbnZhcyA9ICQodHlwZSAr
ICctbG91cGUnKTsKKyAgICB2YXIgdGFyZ2V0Q29udGV4dCA9IHRhcmdldENhbnZhcy5nZXRDb250
ZXh0KCcyZCcpOworICAgIHRhcmdldENvbnRleHQuZmlsbFN0eWxlID0gJ3JnYmEoMjU1LCAyNTUs
IDI1NSwgMSknOworICAgIHRhcmdldENvbnRleHQuZmlsbFJlY3QoMCwgMCwgdGFyZ2V0Q2FudmFz
LndpZHRoLCB0YXJnZXRDYW52YXMuaGVpZ2h0KTsKKworICAgIHZhciBzb3VyY2VYT2Zmc2V0ID0g
KHRhcmdldENhbnZhcy53aWR0aC9MT1VQRV9NQUdOSUZJQ0FUSU9OX0ZBQ1RPUiAtIDEpLzI7Cisg
ICAgdmFyIHNvdXJjZVlPZmZzZXQgPSAodGFyZ2V0Q2FudmFzLmhlaWdodC9MT1VQRV9NQUdOSUZJ
Q0FUSU9OX0ZBQ1RPUiAtIDEpLzI7CisKKyAgICBmdW5jdGlvbiByZWFkUGl4ZWxDb21wb25lbnQo
eCwgeSwgY29tcG9uZW50KSB7CisgICAgICAgIHZhciBvZmZzZXQgPSAoeSAqIHNvdXJjZUltYWdl
RGF0YS53aWR0aCArIHgpICogNCArIGNvbXBvbmVudDsKKyAgICAgICAgcmV0dXJuIHNvdXJjZUlt
YWdlRGF0YS5kYXRhW29mZnNldF07CisgICAgfQorCisgICAgZm9yICh2YXIgaSA9IC1zb3VyY2VY
T2Zmc2V0OyBpIDw9IHNvdXJjZVhPZmZzZXQ7IGkrKykgeworICAgICAgICBmb3IgKHZhciBqID0g
LXNvdXJjZVlPZmZzZXQ7IGogPD0gc291cmNlWU9mZnNldDsgaisrKSB7CisgICAgICAgICAgICB2
YXIgc291cmNlWCA9IHggKyBpOworICAgICAgICAgICAgdmFyIHNvdXJjZVkgPSB5ICsgajsKKwor
ICAgICAgICAgICAgdmFyIHNvdXJjZVIgPSByZWFkUGl4ZWxDb21wb25lbnQoc291cmNlWCwgc291
cmNlWSwgMCk7CisgICAgICAgICAgICB2YXIgc291cmNlRyA9IHJlYWRQaXhlbENvbXBvbmVudChz
b3VyY2VYLCBzb3VyY2VZLCAxKTsKKyAgICAgICAgICAgIHZhciBzb3VyY2VCID0gcmVhZFBpeGVs
Q29tcG9uZW50KHNvdXJjZVgsIHNvdXJjZVksIDIpOworICAgICAgICAgICAgdmFyIHNvdXJjZUEg
PSByZWFkUGl4ZWxDb21wb25lbnQoc291cmNlWCwgc291cmNlWSwgMykvMjU1OworICAgICAgICAg
ICAgc291cmNlQSA9IE1hdGgucm91bmQoc291cmNlQSAqIDEwKS8xMDsKKworICAgICAgICAgICAg
dmFyIHRhcmdldFggPSAoaSArIHNvdXJjZVhPZmZzZXQpICogTE9VUEVfTUFHTklGSUNBVElPTl9G
QUNUT1I7CisgICAgICAgICAgICB2YXIgdGFyZ2V0WSA9IChqICsgc291cmNlWU9mZnNldCkgKiBM
T1VQRV9NQUdOSUZJQ0FUSU9OX0ZBQ1RPUjsKKyAgICAgICAgICAgIHZhciBjb2xvclN0cmluZyA9
CisgICAgICAgICAgICAgICAgc291cmNlUiArICcsICcgKyBzb3VyY2VHICsgJywgJyArIHNvdXJj
ZUIgKyAnLCAnICsgc291cmNlQTsKKyAgICAgICAgICAgIHRhcmdldENvbnRleHQuZmlsbFN0eWxl
ID0gJ3JnYmEoJyArIGNvbG9yU3RyaW5nICsgJyknOworICAgICAgICAgICAgdGFyZ2V0Q29udGV4
dC5maWxsUmVjdCgKKyAgICAgICAgICAgICAgICB0YXJnZXRYLCB0YXJnZXRZLAorICAgICAgICAg
ICAgICAgIExPVVBFX01BR05JRklDQVRJT05fRkFDVE9SLCBMT1VQRV9NQUdOSUZJQ0FUSU9OX0ZB
Q1RPUik7CisKKyAgICAgICAgICAgIGlmIChpID09IDAgJiYgaiA9PSAwKSB7CisgICAgICAgICAg
ICAgICAgJCgnbG91cGUtY29vcmRpbmF0ZScpLnRleHRDb250ZW50ID0gc291cmNlWCArICcsICcg
KyBzb3VyY2VZOworICAgICAgICAgICAgICAgICQodHlwZSArICctbG91cGUtY29sb3InKS50ZXh0
Q29udGVudCA9IGNvbG9yU3RyaW5nOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQor
CisgICAgdGhpcy5fY3VycmVudENvcm5lclggPSB4IC0gc291cmNlWE9mZnNldDsKKyAgICB0aGlz
Ll9jdXJyZW50Q29ybmVyWSA9IHkgLSBzb3VyY2VZT2Zmc2V0OworfTsKZGlmZiAtLWdpdCBhL1dl
YktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9jb21tYW5kcy9kYXRhL3JlYmFzZWxpbmVz
ZXJ2ZXIvbWFpbi5jc3MgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFu
ZHMvZGF0YS9yZWJhc2VsaW5lc2VydmVyL21haW4uY3NzCmluZGV4IGJkMmNkOTgzYTY3NzdhNmM3
NTljY2NhNjA5ZjE4NWM5NWIyZTA4ZDIuLjZlOTBmZTQwMjhjYmNhMTUwNDVjMTU0NmEwZjc0OGUy
MzNlOGM5NDEgMTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9j
b21tYW5kcy9kYXRhL3JlYmFzZWxpbmVzZXJ2ZXIvbWFpbi5jc3MKKysrIGIvV2ViS2l0VG9vbHMv
U2NyaXB0cy93ZWJraXRweS90b29sL2NvbW1hbmRzL2RhdGEvcmViYXNlbGluZXNlcnZlci9tYWlu
LmNzcwpAQCAtMTIwLDYgKzEyMCw3IEBAIGEsIC5saW5rIHsKICAgYm9yZGVyOiBzb2xpZCAxcHgg
I2RkZDsKICAgLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTsKICAgLXdlYmtpdC11c2VyLWRyYWc6
IG5vbmU7CisgIGN1cnNvcjogY3Jvc3NoYWlyOyAgCiB9CiAKICNpbWFnZS1vdXRwdXRzIGltZy5s
b2FkaW5nLApAQCAtMTQ4LDMgKzE0OSw2NSBAQCBhLCAubGluayB7CiAgIG1hcmdpbjogMDsKICAg
YmFja2dyb3VuZDogI2VlZTsKIH0KKworI2xvdXBlIHsKKyAgLXdlYmtpdC1ib3gtc2hhZG93OiAy
cHggMnB4IDVweCByZ2JhKDAsIDAsIDAsIC41KTsKKyAgcG9zaXRpb246IGFic29sdXRlOworICB3
aWR0aDogNjM0cHg7CisgIHRvcDogNTAlOworICBsZWZ0OiA1MCU7CisgIG1hcmdpbi1sZWZ0OiAt
MTUxcHg7CisgIG1hcmdpbi10b3A6IC01MHB4OworICBiYWNrZ3JvdW5kOiAjZmZmOworICBib3Jk
ZXItc3BhY2luZzogMDsKKyAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTsKK30KKworI2xvdXBl
IHRkIHsKKyAgcGFkZGluZzogMDsKKyAgYm9yZGVyOiBzb2xpZCAxcHggI2NjYzsgICAgIAorfQor
CisjbG91cGUgbGFiZWwgeworICBjb2xvcjogIzk5OTsKKyAgcGFkZGluZy1yaWdodDogMWVtOwor
fQorCisjbG91cGUgc3BhbiB7CisgIGNvbG9yOiAjMDAwOworICBmb250LXdlaWdodDogYm9sZDsK
K30KKworI2xvdXBlIGNhbnZhcyB7CisgIGN1cnNvcjogY3Jvc3NoYWlyOworfQorCisjbG91cGUg
I2xvdXBlLWNsb3NlIHsKKyAgZmxvYXQ6IHJpZ2h0OworfQorCisjbG91cGUgI2xvdXBlLWluZm8g
eworICBiYWNrZ3JvdW5kOiAjZWVlOworICBwYWRkaW5nOiAuM2VtIC41ZW07Cit9CisKKyNsb3Vw
ZSAjbG91cGUtY29sb3JzIHRkIHsKKyAgdGV4dC1hbGlnbjogY2VudGVyOworfQorCisjbG91cGUg
LmxvdXBlLWNvbnRhaW5lciB7CisgIHBvc2l0aW9uOiByZWxhdGl2ZTsKKyAgd2lkdGg6IDIxMHB4
OworICBoZWlnaHQ6IDIxMHB4OworfQorCisjbG91cGUgLmNlbnRlci1oaWdobGlnaHQgeworICBw
b3NpdGlvbjogYWJzb2x1dGU7CisgIHdpZHRoOiAxMHB4OworICBoZWlnaHQ6IDEwcHg7CisgIHRv
cDogNTAlOworICBsZWZ0OiA1MCU7CisgIG1hcmdpbi1sZWZ0OiAtNXB4OworICBtYXJnaW4tdG9w
OiAtNXB4OworICBvdXRsaW5lOiBzb2xpZCAxcHggIzk5OTsKK30KZGlmZiAtLWdpdCBhL1dlYktp
dFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9jb21tYW5kcy9kYXRhL3JlYmFzZWxpbmVzZXJ2
ZXIvbWFpbi5qcyBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9jb21tYW5kcy9k
YXRhL3JlYmFzZWxpbmVzZXJ2ZXIvbWFpbi5qcwppbmRleCAyMWQxOGI3Mjg5YmY2MjdlOGUxNjll
ZDBkMGMzZTlhMDEwNDk3ZjQzLi5mYTAzN2IzYmU1YTRlNTgzNDYzNWI0NzNjNjMwMWM5MWY3MmZl
NzFlIDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFu
ZHMvZGF0YS9yZWJhc2VsaW5lc2VydmVyL21haW4uanMKKysrIGIvV2ViS2l0VG9vbHMvU2NyaXB0
cy93ZWJraXRweS90b29sL2NvbW1hbmRzL2RhdGEvcmViYXNlbGluZXNlcnZlci9tYWluLmpzCkBA
IC0zNCw2ICszNCw3IEBAIHZhciByZXN1bHRzOwogdmFyIHRlc3RzQnlGYWlsdXJlVHlwZSA9IHt9
OwogdmFyIHRlc3RzQnlEaXJlY3RvcnkgPSB7fTsKIHZhciBzZWxlY3RlZFRlc3RzID0gW107Cit2
YXIgbG91cGU7CiAKIGZ1bmN0aW9uIG1haW4oKQogewpAQCAtNDMsNiArNDQsOCBAQCBmdW5jdGlv
biBtYWluKCkKICAgICAkKCduZXh0LXRlc3QnKS5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIG5l
eHRUZXN0KTsKICAgICAkKCdwcmV2aW91cy10ZXN0JykuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2sn
LCBwcmV2aW91c1Rlc3QpOwogCisgICAgbG91cGUgPSBuZXcgTG91cGUoKTsKKwogICAgIGRvY3Vt
ZW50LmFkZEV2ZW50TGlzdGVuZXIoJ2tleWRvd24nLCBmdW5jdGlvbihldmVudCkgewogICAgICAg
ICBpZiAoZXZlbnQuYWx0S2V5IHx8IGV2ZW50LmN0cmxLZXkgfHwgZXZlbnQubWV0YUtleSB8fCBl
dmVudC5zaGlmdEtleSkgewogICAgICAgICAgICAgcmV0dXJuOwpAQCAtMjEwLDYgKzIxMyw3IEBA
IGZ1bmN0aW9uIHNlbGVjdFRlc3QoKQogICAgIH0KIAogICAgIHVwZGF0ZVN0YXRlKCk7CisgICAg
bG91cGUuaGlkZSgpOwogfQogCiBmdW5jdGlvbiB1cGRhdGVTdGF0ZSgpCkBAIC0yNDEsNyArMjQ1
LDcgQEAgZnVuY3Rpb24gZGlzcGxheUltYWdlUmVzdWx0cyh0ZXN0TmFtZSkKICAgICAgICAgJiYg
Y3VycmVudEV4cGVjdGVkSW1hZ2VUZXN0ID09IHRlc3ROYW1lKSB7CiAgICAgICAgIHJldHVybjsK
ICAgICB9Ci0gICAgCisKICAgICBmdW5jdGlvbiBkaXNwbGF5SW1hZ2VSZXN1bHQobW9kZSwgY2Fs
bGJhY2spIHsKICAgICAgICAgdmFyIGltYWdlID0gJChtb2RlKTsKICAgICAgICAgaW1hZ2UuY2xh
c3NOYW1lID0gJ2xvYWRpbmcnOwpAQCAtMjc0LDQ1ICsyNzgsNDUgQEAgZnVuY3Rpb24gZGlzcGxh
eUltYWdlUmVzdWx0cyh0ZXN0TmFtZSkKIGZ1bmN0aW9uIHVwZGF0ZUltYWdlRGlmZigpIHsKICAg
ICBpZiAoY3VycmVudEV4cGVjdGVkSW1hZ2VUZXN0ICE9IGN1cnJlbnRBY3R1YWxJbWFnZVRlc3Qp
CiAgICAgICAgIHJldHVybjsKLSAgICAgICAgCisKICAgICB2YXIgZXhwZWN0ZWRJbWFnZSA9ICQo
J2V4cGVjdGVkLWltYWdlJyk7CiAgICAgdmFyIGFjdHVhbEltYWdlID0gJCgnYWN0dWFsLWltYWdl
Jyk7Ci0gICAgCisKICAgICBmdW5jdGlvbiBnZXRJbWFnZURhdGEoaW1hZ2UpIHsKICAgICAgICAg
dmFyIGltYWdlQ2FudmFzID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnY2FudmFzJyk7CiAgICAg
ICAgIGltYWdlQ2FudmFzLndpZHRoID0gaW1hZ2Uud2lkdGg7CiAgICAgICAgIGltYWdlQ2FudmFz
LmhlaWdodCA9IGltYWdlLmhlaWdodDsKICAgICAgICAgaW1hZ2VDYW52YXNDb250ZXh0ID0gaW1h
Z2VDYW52YXMuZ2V0Q29udGV4dCgnMmQnKTsKLSAgICAgICAgCisKICAgICAgICAgaW1hZ2VDYW52
YXNDb250ZXh0LmZpbGxTdHlsZSA9ICdyZ2JhKDI1NSwgMjU1LCAyNTUsIDEpJzsKICAgICAgICAg
aW1hZ2VDYW52YXNDb250ZXh0LmZpbGxSZWN0KAogICAgICAgICAgICAgMCwgMCwgaW1hZ2Uud2lk
dGgsIGltYWdlLmhlaWdodCk7Ci0gICAgICAgICAgICAKKwogICAgICAgICBpbWFnZUNhbnZhc0Nv
bnRleHQuZHJhd0ltYWdlKGltYWdlLCAwLCAwKTsKICAgICAgICAgcmV0dXJuIGltYWdlQ2FudmFz
Q29udGV4dC5nZXRJbWFnZURhdGEoCi0gICAgICAgICAgICAwLCAwLCBpbWFnZS53aWR0aCwgaW1h
Z2UuaGVpZ2h0KTsgIAorICAgICAgICAgICAgMCwgMCwgaW1hZ2Uud2lkdGgsIGltYWdlLmhlaWdo
dCk7CiAgICAgfQotICAgIAorCiAgICAgdmFyIGV4cGVjdGVkSW1hZ2VEYXRhID0gZ2V0SW1hZ2VE
YXRhKGV4cGVjdGVkSW1hZ2UpOwogICAgIHZhciBhY3R1YWxJbWFnZURhdGEgPSBnZXRJbWFnZURh
dGEoYWN0dWFsSW1hZ2UpOwotICAgIAorCiAgICAgdmFyIGRpZmZDYW52YXMgPSAkKCdkaWZmLWNh
bnZhcycpOwogICAgIHZhciBkaWZmQ2FudmFzQ29udGV4dCA9IGRpZmZDYW52YXMuZ2V0Q29udGV4
dCgnMmQnKTsKICAgICB2YXIgZGlmZkltYWdlRGF0YSA9CiAgICAgICAgIGRpZmZDYW52YXNDb250
ZXh0LmNyZWF0ZUltYWdlRGF0YShkaWZmQ2FudmFzLndpZHRoLCBkaWZmQ2FudmFzLmhlaWdodCk7
Ci0gIAorCiAgICAgLy8gQXZvaWRpbmcgcHJvcGVydHkgbG9va3VwcyBmb3IgYWxsIHRoZXNlIGR1
cmluZyB0aGUgcGVyLXBpeGVsIGxvb3AgYmVsb3cKICAgICAvLyBwcm92aWRlcyBhIHNpZ25pZmlj
YW50IHBlcmZvcm1hbmNlIGJlbmVmaXQuCiAgICAgdmFyIGV4cGVjdGVkV2lkdGggPSBleHBlY3Rl
ZEltYWdlLndpZHRoOwogICAgIHZhciBleHBlY3RlZEhlaWdodCA9IGV4cGVjdGVkSW1hZ2UuaGVp
Z2h0OwogICAgIHZhciBleHBlY3RlZCA9IGV4cGVjdGVkSW1hZ2VEYXRhLmRhdGE7Ci0gICAgCisK
ICAgICB2YXIgYWN0dWFsV2lkdGggPSBhY3R1YWxJbWFnZS53aWR0aDsKICAgICB2YXIgYWN0dWFs
ID0gYWN0dWFsSW1hZ2VEYXRhLmRhdGE7Ci0gIAorCiAgICAgdmFyIGRpZmZXaWR0aCA9IGRpZmZJ
bWFnZURhdGEud2lkdGg7CiAgICAgdmFyIGRpZmYgPSBkaWZmSW1hZ2VEYXRhLmRhdGE7Ci0gICAg
CisKICAgICBmb3IgKHZhciB4ID0gMDsgeCA8IGV4cGVjdGVkV2lkdGg7IHgrKykgewogICAgICAg
ICBmb3IgKHZhciB5ID0gMDsgeSA8IGV4cGVjdGVkSGVpZ2h0OyB5KyspIHsKICAgICAgICAgICAg
IHZhciBleHBlY3RlZE9mZnNldCA9ICh5ICogZXhwZWN0ZWRXaWR0aCArIHgpICogNDsKQEAgLTMz
NCw3ICszMzgsNyBAQCBmdW5jdGlvbiB1cGRhdGVJbWFnZURpZmYoKSB7CiAgICAgICAgICAgICB9
CiAgICAgICAgIH0KICAgICB9Ci0gICAgCisKICAgICBkaWZmQ2FudmFzQ29udGV4dC5wdXRJbWFn
ZURhdGEoCiAgICAgICAgIGRpZmZJbWFnZURhdGEsCiAgICAgICAgIDAsIDAsCmRpZmYgLS1naXQg
YS9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMvcmViYXNlbGluZXNl
cnZlci5weSBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9jb21tYW5kcy9yZWJh
c2VsaW5lc2VydmVyLnB5CmluZGV4IDNhYTQ2NGFhMWNmODQzZDA4YWE0OGIwMDY2NWIzMDFmYTVm
ZWViYTEuLmFiYjJhZjRiMjAyZmM1NzMxMWI2MmJlYTc4NTZjYzMxMTRmNDgyOGIgMTAwNjQ0Ci0t
LSBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9jb21tYW5kcy9yZWJhc2VsaW5l
c2VydmVyLnB5CisrKyBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9jb21tYW5k
cy9yZWJhc2VsaW5lc2VydmVyLnB5CkBAIC01OCw2ICs1OCw3IEBAIGNsYXNzIFJlYmFzZWxpbmVI
VFRQU2VydmVyKEJhc2VIVFRQU2VydmVyLkhUVFBTZXJ2ZXIpOgogY2xhc3MgUmViYXNlbGluZUhU
VFBSZXF1ZXN0SGFuZGxlcihCYXNlSFRUUFNlcnZlci5CYXNlSFRUUFJlcXVlc3RIYW5kbGVyKToK
ICAgICBTVEFUSUNfRklMRV9OQU1FUyA9IGZyb3plbnNldChbCiAgICAgICAgICJpbmRleC5odG1s
IiwKKyAgICAgICAgImxvdXBlLmpzIiwKICAgICAgICAgIm1haW4uanMiLAogICAgICAgICAibWFp
bi5jc3MiLAogICAgICAgICAidXRpbC5qcyIsCg==
</data>
<flag name="review"
          id="64733"
          type_id="1"
          status="+"
          setter="tony"
    />
          </attachment>
      

    </bug>

</bugzilla>