<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://jogamp.org/bugzilla/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.2"
          urlbase="https://jogamp.org/bugzilla/"
          
          maintainer="sgothel@jausoft.com"
>

    <bug>
          <bug_id>995</bug_id>
          
          <creation_ts>2014-03-06 00:13:15 +0100</creation_ts>
          <short_desc>Linux + Java 7 + Dual screen issue</short_desc>
          <delta_ts>2014-06-03 23:27:05 +0200</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>3</classification_id>
          <classification>JogAmp</classification>
          <product>Jogl</product>
          <component>x11</component>
          <version>2</version>
          <rep_platform>All</rep_platform>
          <op_sys>linux</op_sys>
          <bug_status>UNCONFIRMED</bug_status>
          <resolution></resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>---</priority>
          <bug_severity>major</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>0</everconfirmed>
          <reporter name="Kendzi">kendzi</reporter>
          <assigned_to name="Sven Gothel">sgothel</assigned_to>
          <cc>kendzi</cc>
          
          <cf_type>---</cf_type>
          <cf_scm_refs></cf_scm_refs>
          <cf_workaround>---</cf_workaround>

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>3831</commentid>
    <comment_count>0</comment_count>
    <who name="Kendzi">kendzi</who>
    <bug_when>2014-03-06 00:13:15 +0100</bug_when>
    <thetext>It is not possible to use JOGL application on dual screen linux with java 7.

This is upstream from http://forum.jogamp.org/Linux-Java-7-Dual-screen-issue-td4030862.html#a4031778

It seems that JOGL create context correctly only for one of the screens. When application windows is launched on “first” screen, content is shown and application is working correctly. But when window is moved to “second” screen window become is blank. No error is throw. When I move window back to “first” screen correct content of window will appear again. So in short Jogl application is working correctly only on one of the screens. 

This bug appear only when I try to run application using java 7. On java 6 application is working on both screens correctly.

I&apos;m working on Ubuntu 64 13.10, graphic card is integrated intel with jogl 2.1.4. 

Work wrong on Java7 JDK 64 1.7.0_45-b18. 
Work correct on Java6 JDK 64 1.6.0_45-b06. 

Test case:
https://github.com/sgothel/jogl-demos/blob/master/src/demos/gears/Gears.java

In line 63 replace new GLCanvas(); with call of function:
 
public static GLCanvas createCanvas() {
   // create a profile, in this case OpenGL 2 or later
   GLProfile profile = GLProfile.get(GLProfile.GL2);

   // configure context
   GLCapabilities capabilities = new GLCapabilities(profile);

   // setup z-buffer
   capabilities.setDepthBits(16);

   // for anti-aliasing
   // FIXME cause problem:
   capabilities.setSampleBuffers(true);
   capabilities.setNumSamples(2);

   // initialize a GLDrawable of your choice
   return new GLCanvas(capabilities);
}

When setSampleBuffers and setNumSamples is comment out application is working correctly, but when un-commented application freeze. 

This example freeze on both screens but my application (kendzi3d) freeze only when moving to second screen. In both case commenting out of setSampleBuffers and setNumSamples solve problem.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>3832</commentid>
    <comment_count>1</comment_count>
      <attachid>605</attachid>
    <who name="Kendzi">kendzi</who>
    <bug_when>2014-03-06 00:14:20 +0100</bug_when>
    <thetext>Created attachment 605
TestCase</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>3940</commentid>
    <comment_count>2</comment_count>
    <who name="Kendzi">kendzi</who>
    <bug_when>2014-06-03 23:26:39 +0200</bug_when>
    <thetext>Any ideas or updates?</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>605</attachid>
            <date>2014-03-06 00:14:20 +0100</date>
            <delta_ts>2014-03-06 00:14:20 +0100</delta_ts>
            <desc>TestCase</desc>
            <filename>Gears.java</filename>
            <type>text/x-java</type>
            <size>18000</size>
            <attacher name="Kendzi">kendzi</attacher>
            
              <data encoding="base64">cGFja2FnZSBrZW5kemkuam9zbS5rZW5kemkzZC5qb2dsLm1vZGVsLnJvb2YubWsudWk7CgppbXBv
cnQgamF2YXgubWVkaWEub3BlbmdsLkdMOwppbXBvcnQgamF2YXgubWVkaWEub3BlbmdsLkdMMjsK
aW1wb3J0IGphdmF4Lm1lZGlhLm9wZW5nbC5HTDJHTDM7CmltcG9ydCBqYXZheC5tZWRpYS5vcGVu
Z2wuR0xBdXRvRHJhd2FibGU7CmltcG9ydCBqYXZheC5tZWRpYS5vcGVuZ2wuR0xDYXBhYmlsaXRp
ZXM7CmltcG9ydCBqYXZheC5tZWRpYS5vcGVuZ2wuR0xFdmVudExpc3RlbmVyOwppbXBvcnQgamF2
YXgubWVkaWEub3BlbmdsLkdMUHJvZmlsZTsKaW1wb3J0IGphdmF4Lm1lZGlhLm9wZW5nbC5hd3Qu
R0xDYW52YXM7CmltcG9ydCBqYXZheC5tZWRpYS5vcGVuZ2wuZml4ZWRmdW5jLkdMTGlnaHRpbmdG
dW5jOwppbXBvcnQgamF2YXgubWVkaWEub3BlbmdsLmZpeGVkZnVuYy5HTE1hdHJpeEZ1bmM7Cgpp
bXBvcnQgY29tLmpvZ2FtcC5uZXd0LldpbmRvdzsKaW1wb3J0IGNvbS5qb2dhbXAubmV3dC5ldmVu
dC5JbnB1dEV2ZW50OwppbXBvcnQgY29tLmpvZ2FtcC5uZXd0LmV2ZW50LktleUFkYXB0ZXI7Cmlt
cG9ydCBjb20uam9nYW1wLm5ld3QuZXZlbnQuS2V5RXZlbnQ7CmltcG9ydCBjb20uam9nYW1wLm5l
d3QuZXZlbnQuS2V5TGlzdGVuZXI7CmltcG9ydCBjb20uam9nYW1wLm5ld3QuZXZlbnQuTW91c2VB
ZGFwdGVyOwppbXBvcnQgY29tLmpvZ2FtcC5uZXd0LmV2ZW50Lk1vdXNlRXZlbnQ7CmltcG9ydCBj
b20uam9nYW1wLm5ld3QuZXZlbnQuTW91c2VMaXN0ZW5lcjsKaW1wb3J0IGNvbS5qb2dhbXAubmV3
dC5ldmVudC5hd3QuQVdUS2V5QWRhcHRlcjsKaW1wb3J0IGNvbS5qb2dhbXAubmV3dC5ldmVudC5h
d3QuQVdUTW91c2VBZGFwdGVyOwppbXBvcnQgY29tLmpvZ2FtcC5vcGVuZ2wudXRpbC5BbmltYXRv
cjsKCi8qKgogKiBHZWFycy5qYXZhIDxCUj4KICogYXV0aG9yOiBCcmlhbiBQYXVsIChjb252ZXJ0
ZWQgdG8gSmF2YSBieSBSb24gQ2VtZXIgYW5kIFN2ZW4gR290aGVsKQogKiA8UD4KICogCiAqIFRo
aXMgdmVyc2lvbiBpcyBlcXVhbCB0byBCcmlhbiBQYXVsJ3MgdmVyc2lvbiAxLjIgMTk5OS8xMC8y
MQogKi8KCnB1YmxpYyBjbGFzcyBHZWFycyBpbXBsZW1lbnRzIEdMRXZlbnRMaXN0ZW5lciB7CiAg
ICBwcml2YXRlIGZsb2F0IHZpZXdfcm90eCA9IDIwLjBmLCB2aWV3X3JvdHkgPSAzMC4wZiwgdmll
d19yb3R6ID0gMC4wZjsKICAgIHByaXZhdGUgaW50IGdlYXIxID0gMCwgZ2VhcjIgPSAwLCBnZWFy
MyA9IDA7CiAgICBwcml2YXRlIGZsb2F0IGFuZ2xlID0gMC4wZjsKICAgIHByaXZhdGUgaW50IHN3
YXBJbnRlcnZhbDsKCiAgICBwcml2YXRlIGJvb2xlYW4gbW91c2VSQnV0dG9uRG93biA9IGZhbHNl
OwogICAgcHJpdmF0ZSBpbnQgcHJldk1vdXNlWCwgcHJldk1vdXNlWTsKCiAgICBwdWJsaWMgc3Rh
dGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmdzKSB7CiAgICAgICAgLy8gc2V0IGFyZ3VtZW50ICdO
b3RGaXJzdFVJQWN0aW9uT25Qcm9jZXNzJyBpbiB0aGUgSk5MUCdzCiAgICAgICAgLy8gYXBwbGlj
YXRpb24tZGVzYyB0YWcgZm9yIGV4YW1wbGUKICAgICAgICAvLyA8YXBwbGljYXRpb24tZGVzYyBt
YWluLWNsYXNzPSJkZW1vcy5qMmQuVGV4dEN1YmUiLz4KICAgICAgICAvLyA8YXJndW1lbnQ+Tm90
Rmlyc3RVSUFjdGlvbk9uUHJvY2VzczwvYXJndW1lbnQ+CiAgICAgICAgLy8gPC9hcHBsaWNhdGlv
bi1kZXNjPgogICAgICAgIC8vIGJvb2xlYW4gZmlyc3RVSUFjdGlvbk9uUHJvY2VzcyA9IDA9PWFy
Z3MubGVuZ3RoIHx8CiAgICAgICAgLy8gIWFyZ3NbMF0uZXF1YWxzKCJOb3RGaXJzdFVJQWN0aW9u
T25Qcm9jZXNzIikgOwoKICAgICAgICBqYXZhLmF3dC5GcmFtZSBmcmFtZSA9IG5ldyBqYXZhLmF3
dC5GcmFtZSgiR2VhciBEZW1vIik7CiAgICAgICAgZnJhbWUuc2V0U2l6ZSgzMDAsIDMwMCk7CiAg
ICAgICAgZnJhbWUuc2V0TGF5b3V0KG5ldyBqYXZhLmF3dC5Cb3JkZXJMYXlvdXQoKSk7CgogICAg
ICAgIGZpbmFsIEFuaW1hdG9yIGFuaW1hdG9yID0gbmV3IEFuaW1hdG9yKCk7CiAgICAgICAgZnJh
bWUuYWRkV2luZG93TGlzdGVuZXIobmV3IGphdmEuYXd0LmV2ZW50LldpbmRvd0FkYXB0ZXIoKSB7
CiAgICAgICAgICAgIEBPdmVycmlkZQogICAgICAgICAgICBwdWJsaWMgdm9pZCB3aW5kb3dDbG9z
aW5nKGphdmEuYXd0LmV2ZW50LldpbmRvd0V2ZW50IGUpIHsKICAgICAgICAgICAgICAgIC8vIFJ1
biB0aGlzIG9uIGFub3RoZXIgdGhyZWFkIHRoYW4gdGhlIEFXVCBldmVudCBxdWV1ZSB0bwogICAg
ICAgICAgICAgICAgLy8gbWFrZSBzdXJlIHRoZSBjYWxsIHRvIEFuaW1hdG9yLnN0b3AoKSBjb21w
bGV0ZXMgYmVmb3JlCiAgICAgICAgICAgICAgICAvLyBleGl0aW5nCiAgICAgICAgICAgICAgICBu
ZXcgVGhyZWFkKG5ldyBSdW5uYWJsZSgpIHsKICAgICAgICAgICAgICAgICAgICBAT3ZlcnJpZGUK
ICAgICAgICAgICAgICAgICAgICBwdWJsaWMgdm9pZCBydW4oKSB7CiAgICAgICAgICAgICAgICAg
ICAgICAgIGFuaW1hdG9yLnN0b3AoKTsKICAgICAgICAgICAgICAgICAgICAgICAgU3lzdGVtLmV4
aXQoMCk7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfSkuc3RhcnQoKTsK
ICAgICAgICAgICAgfQogICAgICAgIH0pOwoKICAgICAgICBHTENhbnZhcyBjYW52YXMgPSBjYW52
YXMgPSBjcmVhdGVDYW52YXMoKTsKICAgICAgICAvLyBHTENhbnZhcyBjYW52YXMgPSBuZXcgR0xD
YW52YXMoKTsKICAgICAgICBhbmltYXRvci5hZGQoY2FudmFzKTsKICAgICAgICAvLyBHTENhcGFi
aWxpdGllcyBjYXBzID0gbmV3IEdMQ2FwYWJpbGl0aWVzKEdMUHJvZmlsZS5nZXREZWZhdWx0KCkp
OwogICAgICAgIC8vIEdMQ2FudmFzIGNhbnZhcyA9IG5ldyBHTENhbnZhcyhjYXBzKTsKCiAgICAg
ICAgZmluYWwgR2VhcnMgZ2VhcnMgPSBuZXcgR2VhcnMoKTsKICAgICAgICBjYW52YXMuYWRkR0xF
dmVudExpc3RlbmVyKGdlYXJzKTsKCiAgICAgICAgZnJhbWUuYWRkKGNhbnZhcywgamF2YS5hd3Qu
Qm9yZGVyTGF5b3V0LkNFTlRFUik7CiAgICAgICAgZnJhbWUudmFsaWRhdGUoKTsKCiAgICAgICAg
ZnJhbWUuc2V0VmlzaWJsZSh0cnVlKTsKICAgICAgICBhbmltYXRvci5zdGFydCgpOwogICAgfQoK
ICAgIC8qKgogICAgICogQHJldHVybgogICAgICovCiAgICBwdWJsaWMgc3RhdGljIEdMQ2FudmFz
IGNyZWF0ZUNhbnZhcygpIHsKICAgICAgICAvLyBjcmVhdGUgYSBwcm9maWxlLCBpbiB0aGlzIGNh
c2UgT3BlbkdMIDIgb3IgbGF0ZXIKICAgICAgICBHTFByb2ZpbGUgcHJvZmlsZSA9IEdMUHJvZmls
ZS5nZXQoR0xQcm9maWxlLkdMMik7CgogICAgICAgIC8vIGNvbmZpZ3VyZSBjb250ZXh0CiAgICAg
ICAgR0xDYXBhYmlsaXRpZXMgY2FwYWJpbGl0aWVzID0gbmV3IEdMQ2FwYWJpbGl0aWVzKHByb2Zp
bGUpOwoKICAgICAgICAvLyBzZXR1cCB6LWJ1ZmZlcgogICAgICAgIGNhcGFiaWxpdGllcy5zZXRE
ZXB0aEJpdHMoMTYpOwoKICAgICAgICAvLyBmb3IgYW50aS1hbGlhc2luZwogICAgICAgIC8vIEZJ
WE1FIGNhdXNlIHByb2JsZW06CiAgICAgICAgY2FwYWJpbGl0aWVzLnNldFNhbXBsZUJ1ZmZlcnMo
dHJ1ZSk7CiAgICAgICAgY2FwYWJpbGl0aWVzLnNldE51bVNhbXBsZXMoMik7CgogICAgICAgIC8v
IGluaXRpYWxpemUgYSBHTERyYXdhYmxlIG9mIHlvdXIgY2hvaWNlCiAgICAgICAgcmV0dXJuIG5l
dyBHTENhbnZhcyhjYXBhYmlsaXRpZXMpOwogICAgfQoKICAgIHB1YmxpYyBHZWFycyhpbnQgc3dh
cEludGVydmFsKSB7CiAgICAgICAgdGhpcy5zd2FwSW50ZXJ2YWwgPSBzd2FwSW50ZXJ2YWw7CiAg
ICB9CgogICAgcHVibGljIEdlYXJzKCkgewogICAgICAgIHRoaXMuc3dhcEludGVydmFsID0gMTsK
ICAgIH0KCiAgICBwdWJsaWMgdm9pZCBzZXRHZWFycyhpbnQgZzEsIGludCBnMiwgaW50IGczKSB7
CiAgICAgICAgZ2VhcjEgPSBnMTsKICAgICAgICBnZWFyMiA9IGcyOwogICAgICAgIGdlYXIzID0g
ZzM7CiAgICB9CgogICAgLyoqCiAgICAgKiBAcmV0dXJuIGRpc3BsYXkgbGlzdCBnZWFyMQogICAg
ICovCiAgICBwdWJsaWMgaW50IGdldEdlYXIxKCkgewogICAgICAgIHJldHVybiBnZWFyMTsKICAg
IH0KCiAgICAvKioKICAgICAqIEByZXR1cm4gZGlzcGxheSBsaXN0IGdlYXIyCiAgICAgKi8KICAg
IHB1YmxpYyBpbnQgZ2V0R2VhcjIoKSB7CiAgICAgICAgcmV0dXJuIGdlYXIyOwogICAgfQoKICAg
IC8qKgogICAgICogQHJldHVybiBkaXNwbGF5IGxpc3QgZ2VhcjMKICAgICAqLwogICAgcHVibGlj
IGludCBnZXRHZWFyMygpIHsKICAgICAgICByZXR1cm4gZ2VhcjM7CiAgICB9CgogICAgQE92ZXJy
aWRlCiAgICBwdWJsaWMgdm9pZCBpbml0KEdMQXV0b0RyYXdhYmxlIGRyYXdhYmxlKSB7CiAgICAg
ICAgU3lzdGVtLmVyci5wcmludGxuKCJHZWFyczogSW5pdDogIiArIGRyYXdhYmxlKTsKICAgICAg
ICAvLyBVc2UgZGVidWcgcGlwZWxpbmUKICAgICAgICAvLyBkcmF3YWJsZS5zZXRHTChuZXcgRGVi
dWdHTChkcmF3YWJsZS5nZXRHTCgpKSk7CgogICAgICAgIEdMMiBnbCA9IGRyYXdhYmxlLmdldEdM
KCkuZ2V0R0wyKCk7CgogICAgICAgIFN5c3RlbS5lcnIucHJpbnRsbigiQ2hvc2VuIEdMQ2FwYWJp
bGl0aWVzOiAiICsgZHJhd2FibGUuZ2V0Q2hvc2VuR0xDYXBhYmlsaXRpZXMoKSk7CiAgICAgICAg
U3lzdGVtLmVyci5wcmludGxuKCJJTklUIEdMIElTOiAiICsgZ2wuZ2V0Q2xhc3MoKS5nZXROYW1l
KCkpOwogICAgICAgIFN5c3RlbS5lcnIucHJpbnRsbigiR0xfVkVORE9SOiAiICsgZ2wuZ2xHZXRT
dHJpbmcoR0wuR0xfVkVORE9SKSk7CiAgICAgICAgU3lzdGVtLmVyci5wcmludGxuKCJHTF9SRU5E
RVJFUjogIiArIGdsLmdsR2V0U3RyaW5nKEdMLkdMX1JFTkRFUkVSKSk7CiAgICAgICAgU3lzdGVt
LmVyci5wcmludGxuKCJHTF9WRVJTSU9OOiAiICsgZ2wuZ2xHZXRTdHJpbmcoR0wuR0xfVkVSU0lP
TikpOwoKICAgICAgICBmbG9hdCBwb3NbXSA9IHsgNS4wZiwgNS4wZiwgMTAuMGYsIDAuMGYgfTsK
ICAgICAgICBmbG9hdCByZWRbXSA9IHsgMC44ZiwgMC4xZiwgMC4wZiwgMC43ZiB9OwogICAgICAg
IGZsb2F0IGdyZWVuW10gPSB7IDAuMGYsIDAuOGYsIDAuMmYsIDAuN2YgfTsKICAgICAgICBmbG9h
dCBibHVlW10gPSB7IDAuMmYsIDAuMmYsIDEuMGYsIDAuN2YgfTsKCiAgICAgICAgZ2wuZ2xMaWdo
dGZ2KEdMTGlnaHRpbmdGdW5jLkdMX0xJR0hUMCwgR0xMaWdodGluZ0Z1bmMuR0xfUE9TSVRJT04s
IHBvcywgMCk7CiAgICAgICAgZ2wuZ2xFbmFibGUoR0wuR0xfQ1VMTF9GQUNFKTsKICAgICAgICBn
bC5nbEVuYWJsZShHTExpZ2h0aW5nRnVuYy5HTF9MSUdIVElORyk7CiAgICAgICAgZ2wuZ2xFbmFi
bGUoR0xMaWdodGluZ0Z1bmMuR0xfTElHSFQwKTsKICAgICAgICBnbC5nbEVuYWJsZShHTC5HTF9E
RVBUSF9URVNUKTsKCiAgICAgICAgLyogbWFrZSB0aGUgZ2VhcnMgKi8KICAgICAgICBpZiAoMCA+
PSBnZWFyMSkgewogICAgICAgICAgICBnZWFyMSA9IGdsLmdsR2VuTGlzdHMoMSk7CiAgICAgICAg
ICAgIGdsLmdsTmV3TGlzdChnZWFyMSwgR0wyLkdMX0NPTVBJTEUpOwogICAgICAgICAgICBnbC5n
bE1hdGVyaWFsZnYoR0wuR0xfRlJPTlQsIEdMTGlnaHRpbmdGdW5jLkdMX0FNQklFTlRfQU5EX0RJ
RkZVU0UsIHJlZCwgMCk7CiAgICAgICAgICAgIGdlYXIoZ2wsIDEuMGYsIDQuMGYsIDEuMGYsIDIw
LCAwLjdmKTsKICAgICAgICAgICAgZ2wuZ2xFbmRMaXN0KCk7CiAgICAgICAgICAgIFN5c3RlbS5l
cnIucHJpbnRsbigiZ2VhcjEgbGlzdCBjcmVhdGVkOiAiICsgZ2VhcjEpOwogICAgICAgIH0gZWxz
ZSB7CiAgICAgICAgICAgIFN5c3RlbS5lcnIucHJpbnRsbigiZ2VhcjEgbGlzdCByZXVzZWQ6ICIg
KyBnZWFyMSk7CiAgICAgICAgfQoKICAgICAgICBpZiAoMCA+PSBnZWFyMikgewogICAgICAgICAg
ICBnZWFyMiA9IGdsLmdsR2VuTGlzdHMoMSk7CiAgICAgICAgICAgIGdsLmdsTmV3TGlzdChnZWFy
MiwgR0wyLkdMX0NPTVBJTEUpOwogICAgICAgICAgICBnbC5nbE1hdGVyaWFsZnYoR0wuR0xfRlJP
TlQsIEdMTGlnaHRpbmdGdW5jLkdMX0FNQklFTlRfQU5EX0RJRkZVU0UsIGdyZWVuLCAwKTsKICAg
ICAgICAgICAgZ2VhcihnbCwgMC41ZiwgMi4wZiwgMi4wZiwgMTAsIDAuN2YpOwogICAgICAgICAg
ICBnbC5nbEVuZExpc3QoKTsKICAgICAgICAgICAgU3lzdGVtLmVyci5wcmludGxuKCJnZWFyMiBs
aXN0IGNyZWF0ZWQ6ICIgKyBnZWFyMik7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgU3lz
dGVtLmVyci5wcmludGxuKCJnZWFyMiBsaXN0IHJldXNlZDogIiArIGdlYXIyKTsKICAgICAgICB9
CgogICAgICAgIGlmICgwID49IGdlYXIzKSB7CiAgICAgICAgICAgIGdlYXIzID0gZ2wuZ2xHZW5M
aXN0cygxKTsKICAgICAgICAgICAgZ2wuZ2xOZXdMaXN0KGdlYXIzLCBHTDIuR0xfQ09NUElMRSk7
CiAgICAgICAgICAgIGdsLmdsTWF0ZXJpYWxmdihHTC5HTF9GUk9OVCwgR0xMaWdodGluZ0Z1bmMu
R0xfQU1CSUVOVF9BTkRfRElGRlVTRSwgYmx1ZSwgMCk7CiAgICAgICAgICAgIGdlYXIoZ2wsIDEu
M2YsIDIuMGYsIDAuNWYsIDEwLCAwLjdmKTsKICAgICAgICAgICAgZ2wuZ2xFbmRMaXN0KCk7CiAg
ICAgICAgICAgIFN5c3RlbS5lcnIucHJpbnRsbigiZ2VhcjMgbGlzdCBjcmVhdGVkOiAiICsgZ2Vh
cjMpOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIFN5c3RlbS5lcnIucHJpbnRsbigiZ2Vh
cjMgbGlzdCByZXVzZWQ6ICIgKyBnZWFyMyk7CiAgICAgICAgfQoKICAgICAgICBnbC5nbEVuYWJs
ZShHTExpZ2h0aW5nRnVuYy5HTF9OT1JNQUxJWkUpOwoKICAgICAgICAvLyBNb3VzZUxpc3RlbmVy
IGdlYXJzTW91c2UgPSBuZXcgVHJhY2VNb3VzZUFkYXB0ZXIobmV3CiAgICAgICAgLy8gR2VhcnNN
b3VzZUFkYXB0ZXIoKSk7CiAgICAgICAgTW91c2VMaXN0ZW5lciBnZWFyc01vdXNlID0gbmV3IEdl
YXJzTW91c2VBZGFwdGVyKCk7CiAgICAgICAgS2V5TGlzdGVuZXIgZ2VhcnNLZXlzID0gbmV3IEdl
YXJzS2V5QWRhcHRlcigpOwoKICAgICAgICBpZiAoZHJhd2FibGUgaW5zdGFuY2VvZiBXaW5kb3cp
IHsKICAgICAgICAgICAgV2luZG93IHdpbmRvdyA9IChXaW5kb3cpIGRyYXdhYmxlOwogICAgICAg
ICAgICB3aW5kb3cuYWRkTW91c2VMaXN0ZW5lcihnZWFyc01vdXNlKTsKICAgICAgICAgICAgd2lu
ZG93LmFkZEtleUxpc3RlbmVyKGdlYXJzS2V5cyk7CiAgICAgICAgfSBlbHNlIGlmIChHTFByb2Zp
bGUuaXNBV1RBdmFpbGFibGUoKSAmJiBkcmF3YWJsZSBpbnN0YW5jZW9mIGphdmEuYXd0LkNvbXBv
bmVudCkgewogICAgICAgICAgICBqYXZhLmF3dC5Db21wb25lbnQgY29tcCA9IChqYXZhLmF3dC5D
b21wb25lbnQpIGRyYXdhYmxlOwogICAgICAgICAgICBuZXcgQVdUTW91c2VBZGFwdGVyKGdlYXJz
TW91c2UpLmFkZFRvKGNvbXApOwogICAgICAgICAgICBuZXcgQVdUS2V5QWRhcHRlcihnZWFyc0tl
eXMpLmFkZFRvKGNvbXApOwogICAgICAgIH0KICAgIH0KCiAgICBAT3ZlcnJpZGUKICAgIHB1Ymxp
YyB2b2lkIHJlc2hhcGUoR0xBdXRvRHJhd2FibGUgZHJhd2FibGUsIGludCB4LCBpbnQgeSwgaW50
IHdpZHRoLCBpbnQgaGVpZ2h0KSB7CiAgICAgICAgU3lzdGVtLmVyci5wcmludGxuKCJHZWFyczog
UmVzaGFwZSAiICsgeCArICIvIiArIHkgKyAiICIgKyB3aWR0aCArICJ4IiArIGhlaWdodCk7CiAg
ICAgICAgR0wyIGdsID0gZHJhd2FibGUuZ2V0R0woKS5nZXRHTDIoKTsKCiAgICAgICAgZ2wuc2V0
U3dhcEludGVydmFsKHN3YXBJbnRlcnZhbCk7CgogICAgICAgIGZsb2F0IGggPSAoZmxvYXQpIGhl
aWdodCAvIChmbG9hdCkgd2lkdGg7CgogICAgICAgIGdsLmdsTWF0cml4TW9kZShHTE1hdHJpeEZ1
bmMuR0xfUFJPSkVDVElPTik7CgogICAgICAgIGdsLmdsTG9hZElkZW50aXR5KCk7CiAgICAgICAg
Z2wuZ2xGcnVzdHVtKC0xLjBmLCAxLjBmLCAtaCwgaCwgNS4wZiwgNjAuMGYpOwogICAgICAgIGds
LmdsTWF0cml4TW9kZShHTE1hdHJpeEZ1bmMuR0xfTU9ERUxWSUVXKTsKICAgICAgICBnbC5nbExv
YWRJZGVudGl0eSgpOwogICAgICAgIGdsLmdsVHJhbnNsYXRlZigwLjBmLCAwLjBmLCAtNDAuMGYp
OwogICAgfQoKICAgIEBPdmVycmlkZQogICAgcHVibGljIHZvaWQgZGlzcG9zZShHTEF1dG9EcmF3
YWJsZSBkcmF3YWJsZSkgewogICAgICAgIFN5c3RlbS5lcnIucHJpbnRsbigiR2VhcnM6IERpc3Bv
c2UiKTsKICAgICAgICBzZXRHZWFycygwLCAwLCAwKTsKICAgIH0KCiAgICBAT3ZlcnJpZGUKICAg
IHB1YmxpYyB2b2lkIGRpc3BsYXkoR0xBdXRvRHJhd2FibGUgZHJhd2FibGUpIHsKICAgICAgICAv
LyBUdXJuIHRoZSBnZWFycycgdGVldGgKICAgICAgICBhbmdsZSArPSAyLjBmOwoKICAgICAgICAv
LyBHZXQgdGhlIEdMIGNvcnJlc3BvbmRpbmcgdG8gdGhlIGRyYXdhYmxlIHdlIGFyZSBhbmltYXRp
bmcKICAgICAgICBHTDIgZ2wgPSBkcmF3YWJsZS5nZXRHTCgpLmdldEdMMigpOwoKICAgICAgICBn
bC5nbENsZWFyQ29sb3IoMC4wZiwgMC4wZiwgMC4wZiwgMC4wZik7CgogICAgICAgIC8vIFNwZWNp
YWwgaGFuZGxpbmcgZm9yIHRoZSBjYXNlIHdoZXJlIHRoZSBHTEpQYW5lbCBpcyB0cmFuc2x1Y2Vu
dAogICAgICAgIC8vIGFuZCB3YW50cyB0byBiZSBjb21wb3NpdGVkIHdpdGggb3RoZXIgSmF2YSAy
RCBjb250ZW50CiAgICAgICAgaWYgKEdMUHJvZmlsZS5pc0FXVEF2YWlsYWJsZSgpICYmIGRyYXdh
YmxlIGluc3RhbmNlb2YgamF2YXgubWVkaWEub3BlbmdsLmF3dC5HTEpQYW5lbAogICAgICAgICAg
ICAgICAgJiYgISgoamF2YXgubWVkaWEub3BlbmdsLmF3dC5HTEpQYW5lbCkgZHJhd2FibGUpLmlz
T3BhcXVlKCkKICAgICAgICAgICAgICAgICYmICgoamF2YXgubWVkaWEub3BlbmdsLmF3dC5HTEpQ
YW5lbCkgZHJhd2FibGUpLnNob3VsZFByZXNlcnZlQ29sb3JCdWZmZXJJZlRyYW5zbHVjZW50KCkp
IHsKICAgICAgICAgICAgZ2wuZ2xDbGVhcihHTC5HTF9ERVBUSF9CVUZGRVJfQklUKTsKICAgICAg
ICB9IGVsc2UgewogICAgICAgICAgICBnbC5nbENsZWFyKEdMLkdMX0NPTE9SX0JVRkZFUl9CSVQg
fCBHTC5HTF9ERVBUSF9CVUZGRVJfQklUKTsKICAgICAgICB9CgogICAgICAgIC8vIFJvdGF0ZSB0
aGUgZW50aXJlIGFzc2VtYmx5IG9mIGdlYXJzIGJhc2VkIG9uIGhvdyB0aGUgdXNlcgogICAgICAg
IC8vIGRyYWdnZWQgdGhlIG1vdXNlIGFyb3VuZAogICAgICAgIGdsLmdsUHVzaE1hdHJpeCgpOwog
ICAgICAgIGdsLmdsUm90YXRlZih2aWV3X3JvdHgsIDEuMGYsIDAuMGYsIDAuMGYpOwogICAgICAg
IGdsLmdsUm90YXRlZih2aWV3X3JvdHksIDAuMGYsIDEuMGYsIDAuMGYpOwogICAgICAgIGdsLmds
Um90YXRlZih2aWV3X3JvdHosIDAuMGYsIDAuMGYsIDEuMGYpOwoKICAgICAgICAvLyBQbGFjZSB0
aGUgZmlyc3QgZ2VhciBhbmQgY2FsbCBpdHMgZGlzcGxheSBsaXN0CiAgICAgICAgZ2wuZ2xQdXNo
TWF0cml4KCk7CiAgICAgICAgZ2wuZ2xUcmFuc2xhdGVmKC0zLjBmLCAtMi4wZiwgMC4wZik7CiAg
ICAgICAgZ2wuZ2xSb3RhdGVmKGFuZ2xlLCAwLjBmLCAwLjBmLCAxLjBmKTsKICAgICAgICBnbC5n
bENhbGxMaXN0KGdlYXIxKTsKICAgICAgICBnbC5nbFBvcE1hdHJpeCgpOwoKICAgICAgICAvLyBQ
bGFjZSB0aGUgc2Vjb25kIGdlYXIgYW5kIGNhbGwgaXRzIGRpc3BsYXkgbGlzdAogICAgICAgIGds
LmdsUHVzaE1hdHJpeCgpOwogICAgICAgIGdsLmdsVHJhbnNsYXRlZigzLjFmLCAtMi4wZiwgMC4w
Zik7CiAgICAgICAgZ2wuZ2xSb3RhdGVmKC0yLjBmICogYW5nbGUgLSA5LjBmLCAwLjBmLCAwLjBm
LCAxLjBmKTsKICAgICAgICBnbC5nbENhbGxMaXN0KGdlYXIyKTsKICAgICAgICBnbC5nbFBvcE1h
dHJpeCgpOwoKICAgICAgICAvLyBQbGFjZSB0aGUgdGhpcmQgZ2VhciBhbmQgY2FsbCBpdHMgZGlz
cGxheSBsaXN0CiAgICAgICAgZ2wuZ2xQdXNoTWF0cml4KCk7CiAgICAgICAgZ2wuZ2xUcmFuc2xh
dGVmKC0zLjFmLCA0LjJmLCAwLjBmKTsKICAgICAgICBnbC5nbFJvdGF0ZWYoLTIuMGYgKiBhbmds
ZSAtIDI1LjBmLCAwLjBmLCAwLjBmLCAxLjBmKTsKICAgICAgICBnbC5nbENhbGxMaXN0KGdlYXIz
KTsKICAgICAgICBnbC5nbFBvcE1hdHJpeCgpOwoKICAgICAgICAvLyBSZW1lbWJlciB0aGF0IGV2
ZXJ5IHB1c2ggbmVlZHMgYSBwb3A7IHRoaXMgb25lIGlzIHBhaXJlZCB3aXRoCiAgICAgICAgLy8g
cm90YXRpbmcgdGhlIGVudGlyZSBnZWFyIGFzc2VtYmx5CiAgICAgICAgZ2wuZ2xQb3BNYXRyaXgo
KTsKICAgIH0KCiAgICBwdWJsaWMgc3RhdGljIHZvaWQgZ2VhcihHTDIgZ2wsIGZsb2F0IGlubmVy
X3JhZGl1cywgZmxvYXQgb3V0ZXJfcmFkaXVzLCBmbG9hdCB3aWR0aCwgaW50IHRlZXRoLCBmbG9h
dCB0b290aF9kZXB0aCkgewogICAgICAgIGludCBpOwogICAgICAgIGZsb2F0IHIwLCByMSwgcjI7
CiAgICAgICAgZmxvYXQgYW5nbGUsIGRhOwogICAgICAgIGZsb2F0IHUsIHYsIGxlbjsKCiAgICAg
ICAgcjAgPSBpbm5lcl9yYWRpdXM7CiAgICAgICAgcjEgPSBvdXRlcl9yYWRpdXMgLSB0b290aF9k
ZXB0aCAvIDIuMGY7CiAgICAgICAgcjIgPSBvdXRlcl9yYWRpdXMgKyB0b290aF9kZXB0aCAvIDIu
MGY7CgogICAgICAgIGRhID0gMi4wZiAqIChmbG9hdCkgTWF0aC5QSSAvIHRlZXRoIC8gNC4wZjsK
CiAgICAgICAgZ2wuZ2xTaGFkZU1vZGVsKEdMTGlnaHRpbmdGdW5jLkdMX0ZMQVQpOwoKICAgICAg
ICBnbC5nbE5vcm1hbDNmKDAuMGYsIDAuMGYsIDEuMGYpOwoKICAgICAgICAvKiBkcmF3IGZyb250
IGZhY2UgKi8KICAgICAgICBnbC5nbEJlZ2luKEdMMi5HTF9RVUFEX1NUUklQKTsKICAgICAgICBm
b3IgKGkgPSAwOyBpIDw9IHRlZXRoOyBpKyspIHsKICAgICAgICAgICAgYW5nbGUgPSBpICogMi4w
ZiAqIChmbG9hdCkgTWF0aC5QSSAvIHRlZXRoOwogICAgICAgICAgICBnbC5nbFZlcnRleDNmKHIw
ICogKGZsb2F0KSBNYXRoLmNvcyhhbmdsZSksIHIwICogKGZsb2F0KSBNYXRoLnNpbihhbmdsZSks
IHdpZHRoICogMC41Zik7CiAgICAgICAgICAgIGdsLmdsVmVydGV4M2YocjEgKiAoZmxvYXQpIE1h
dGguY29zKGFuZ2xlKSwgcjEgKiAoZmxvYXQpIE1hdGguc2luKGFuZ2xlKSwgd2lkdGggKiAwLjVm
KTsKICAgICAgICAgICAgaWYgKGkgPCB0ZWV0aCkgewogICAgICAgICAgICAgICAgZ2wuZ2xWZXJ0
ZXgzZihyMCAqIChmbG9hdCkgTWF0aC5jb3MoYW5nbGUpLCByMCAqIChmbG9hdCkgTWF0aC5zaW4o
YW5nbGUpLCB3aWR0aCAqIDAuNWYpOwogICAgICAgICAgICAgICAgZ2wuZ2xWZXJ0ZXgzZihyMSAq
IChmbG9hdCkgTWF0aC5jb3MoYW5nbGUgKyAzLjBmICogZGEpLCByMSAqIChmbG9hdCkgTWF0aC5z
aW4oYW5nbGUgKyAzLjBmICogZGEpLCB3aWR0aCAqIDAuNWYpOwogICAgICAgICAgICB9CiAgICAg
ICAgfQogICAgICAgIGdsLmdsRW5kKCk7CgogICAgICAgIC8qIGRyYXcgZnJvbnQgc2lkZXMgb2Yg
dGVldGggKi8KICAgICAgICBnbC5nbEJlZ2luKEdMMkdMMy5HTF9RVUFEUyk7CiAgICAgICAgZm9y
IChpID0gMDsgaSA8IHRlZXRoOyBpKyspIHsKICAgICAgICAgICAgYW5nbGUgPSBpICogMi4wZiAq
IChmbG9hdCkgTWF0aC5QSSAvIHRlZXRoOwogICAgICAgICAgICBnbC5nbFZlcnRleDNmKHIxICog
KGZsb2F0KSBNYXRoLmNvcyhhbmdsZSksIHIxICogKGZsb2F0KSBNYXRoLnNpbihhbmdsZSksIHdp
ZHRoICogMC41Zik7CiAgICAgICAgICAgIGdsLmdsVmVydGV4M2YocjIgKiAoZmxvYXQpIE1hdGgu
Y29zKGFuZ2xlICsgZGEpLCByMiAqIChmbG9hdCkgTWF0aC5zaW4oYW5nbGUgKyBkYSksIHdpZHRo
ICogMC41Zik7CiAgICAgICAgICAgIGdsLmdsVmVydGV4M2YocjIgKiAoZmxvYXQpIE1hdGguY29z
KGFuZ2xlICsgMi4wZiAqIGRhKSwgcjIgKiAoZmxvYXQpIE1hdGguc2luKGFuZ2xlICsgMi4wZiAq
IGRhKSwgd2lkdGggKiAwLjVmKTsKICAgICAgICAgICAgZ2wuZ2xWZXJ0ZXgzZihyMSAqIChmbG9h
dCkgTWF0aC5jb3MoYW5nbGUgKyAzLjBmICogZGEpLCByMSAqIChmbG9hdCkgTWF0aC5zaW4oYW5n
bGUgKyAzLjBmICogZGEpLCB3aWR0aCAqIDAuNWYpOwogICAgICAgIH0KICAgICAgICBnbC5nbEVu
ZCgpOwoKICAgICAgICAvKiBkcmF3IGJhY2sgZmFjZSAqLwogICAgICAgIGdsLmdsQmVnaW4oR0wy
LkdMX1FVQURfU1RSSVApOwogICAgICAgIGZvciAoaSA9IDA7IGkgPD0gdGVldGg7IGkrKykgewog
ICAgICAgICAgICBhbmdsZSA9IGkgKiAyLjBmICogKGZsb2F0KSBNYXRoLlBJIC8gdGVldGg7CiAg
ICAgICAgICAgIGdsLmdsVmVydGV4M2YocjEgKiAoZmxvYXQpIE1hdGguY29zKGFuZ2xlKSwgcjEg
KiAoZmxvYXQpIE1hdGguc2luKGFuZ2xlKSwgLXdpZHRoICogMC41Zik7CiAgICAgICAgICAgIGds
LmdsVmVydGV4M2YocjAgKiAoZmxvYXQpIE1hdGguY29zKGFuZ2xlKSwgcjAgKiAoZmxvYXQpIE1h
dGguc2luKGFuZ2xlKSwgLXdpZHRoICogMC41Zik7CiAgICAgICAgICAgIGdsLmdsVmVydGV4M2Yo
cjEgKiAoZmxvYXQpIE1hdGguY29zKGFuZ2xlICsgMyAqIGRhKSwgcjEgKiAoZmxvYXQpIE1hdGgu
c2luKGFuZ2xlICsgMyAqIGRhKSwgLXdpZHRoICogMC41Zik7CiAgICAgICAgICAgIGdsLmdsVmVy
dGV4M2YocjAgKiAoZmxvYXQpIE1hdGguY29zKGFuZ2xlKSwgcjAgKiAoZmxvYXQpIE1hdGguc2lu
KGFuZ2xlKSwgLXdpZHRoICogMC41Zik7CiAgICAgICAgfQogICAgICAgIGdsLmdsRW5kKCk7Cgog
ICAgICAgIC8qIGRyYXcgYmFjayBzaWRlcyBvZiB0ZWV0aCAqLwogICAgICAgIGdsLmdsQmVnaW4o
R0wyR0wzLkdMX1FVQURTKTsKICAgICAgICBmb3IgKGkgPSAwOyBpIDwgdGVldGg7IGkrKykgewog
ICAgICAgICAgICBhbmdsZSA9IGkgKiAyLjBmICogKGZsb2F0KSBNYXRoLlBJIC8gdGVldGg7CiAg
ICAgICAgICAgIGdsLmdsVmVydGV4M2YocjEgKiAoZmxvYXQpIE1hdGguY29zKGFuZ2xlICsgMyAq
IGRhKSwgcjEgKiAoZmxvYXQpIE1hdGguc2luKGFuZ2xlICsgMyAqIGRhKSwgLXdpZHRoICogMC41
Zik7CiAgICAgICAgICAgIGdsLmdsVmVydGV4M2YocjIgKiAoZmxvYXQpIE1hdGguY29zKGFuZ2xl
ICsgMiAqIGRhKSwgcjIgKiAoZmxvYXQpIE1hdGguc2luKGFuZ2xlICsgMiAqIGRhKSwgLXdpZHRo
ICogMC41Zik7CiAgICAgICAgICAgIGdsLmdsVmVydGV4M2YocjIgKiAoZmxvYXQpIE1hdGguY29z
KGFuZ2xlICsgZGEpLCByMiAqIChmbG9hdCkgTWF0aC5zaW4oYW5nbGUgKyBkYSksIC13aWR0aCAq
IDAuNWYpOwogICAgICAgICAgICBnbC5nbFZlcnRleDNmKHIxICogKGZsb2F0KSBNYXRoLmNvcyhh
bmdsZSksIHIxICogKGZsb2F0KSBNYXRoLnNpbihhbmdsZSksIC13aWR0aCAqIDAuNWYpOwogICAg
ICAgIH0KICAgICAgICBnbC5nbEVuZCgpOwoKICAgICAgICAvKiBkcmF3IG91dHdhcmQgZmFjZXMg
b2YgdGVldGggKi8KICAgICAgICBnbC5nbEJlZ2luKEdMMi5HTF9RVUFEX1NUUklQKTsKICAgICAg
ICBmb3IgKGkgPSAwOyBpIDwgdGVldGg7IGkrKykgewogICAgICAgICAgICBhbmdsZSA9IGkgKiAy
LjBmICogKGZsb2F0KSBNYXRoLlBJIC8gdGVldGg7CiAgICAgICAgICAgIGdsLmdsVmVydGV4M2Yo
cjEgKiAoZmxvYXQpIE1hdGguY29zKGFuZ2xlKSwgcjEgKiAoZmxvYXQpIE1hdGguc2luKGFuZ2xl
KSwgd2lkdGggKiAwLjVmKTsKICAgICAgICAgICAgZ2wuZ2xWZXJ0ZXgzZihyMSAqIChmbG9hdCkg
TWF0aC5jb3MoYW5nbGUpLCByMSAqIChmbG9hdCkgTWF0aC5zaW4oYW5nbGUpLCAtd2lkdGggKiAw
LjVmKTsKICAgICAgICAgICAgdSA9IHIyICogKGZsb2F0KSBNYXRoLmNvcyhhbmdsZSArIGRhKSAt
IHIxICogKGZsb2F0KSBNYXRoLmNvcyhhbmdsZSk7CiAgICAgICAgICAgIHYgPSByMiAqIChmbG9h
dCkgTWF0aC5zaW4oYW5nbGUgKyBkYSkgLSByMSAqIChmbG9hdCkgTWF0aC5zaW4oYW5nbGUpOwog
ICAgICAgICAgICBsZW4gPSAoZmxvYXQpIE1hdGguc3FydCh1ICogdSArIHYgKiB2KTsKICAgICAg
ICAgICAgdSAvPSBsZW47CiAgICAgICAgICAgIHYgLz0gbGVuOwogICAgICAgICAgICBnbC5nbE5v
cm1hbDNmKHYsIC11LCAwLjBmKTsKICAgICAgICAgICAgZ2wuZ2xWZXJ0ZXgzZihyMiAqIChmbG9h
dCkgTWF0aC5jb3MoYW5nbGUgKyBkYSksIHIyICogKGZsb2F0KSBNYXRoLnNpbihhbmdsZSArIGRh
KSwgd2lkdGggKiAwLjVmKTsKICAgICAgICAgICAgZ2wuZ2xWZXJ0ZXgzZihyMiAqIChmbG9hdCkg
TWF0aC5jb3MoYW5nbGUgKyBkYSksIHIyICogKGZsb2F0KSBNYXRoLnNpbihhbmdsZSArIGRhKSwg
LXdpZHRoICogMC41Zik7CiAgICAgICAgICAgIGdsLmdsTm9ybWFsM2YoKGZsb2F0KSBNYXRoLmNv
cyhhbmdsZSksIChmbG9hdCkgTWF0aC5zaW4oYW5nbGUpLCAwLjBmKTsKICAgICAgICAgICAgZ2wu
Z2xWZXJ0ZXgzZihyMiAqIChmbG9hdCkgTWF0aC5jb3MoYW5nbGUgKyAyICogZGEpLCByMiAqIChm
bG9hdCkgTWF0aC5zaW4oYW5nbGUgKyAyICogZGEpLCB3aWR0aCAqIDAuNWYpOwogICAgICAgICAg
ICBnbC5nbFZlcnRleDNmKHIyICogKGZsb2F0KSBNYXRoLmNvcyhhbmdsZSArIDIgKiBkYSksIHIy
ICogKGZsb2F0KSBNYXRoLnNpbihhbmdsZSArIDIgKiBkYSksIC13aWR0aCAqIDAuNWYpOwogICAg
ICAgICAgICB1ID0gcjEgKiAoZmxvYXQpIE1hdGguY29zKGFuZ2xlICsgMyAqIGRhKSAtIHIyICog
KGZsb2F0KSBNYXRoLmNvcyhhbmdsZSArIDIgKiBkYSk7CiAgICAgICAgICAgIHYgPSByMSAqIChm
bG9hdCkgTWF0aC5zaW4oYW5nbGUgKyAzICogZGEpIC0gcjIgKiAoZmxvYXQpIE1hdGguc2luKGFu
Z2xlICsgMiAqIGRhKTsKICAgICAgICAgICAgZ2wuZ2xOb3JtYWwzZih2LCAtdSwgMC4wZik7CiAg
ICAgICAgICAgIGdsLmdsVmVydGV4M2YocjEgKiAoZmxvYXQpIE1hdGguY29zKGFuZ2xlICsgMyAq
IGRhKSwgcjEgKiAoZmxvYXQpIE1hdGguc2luKGFuZ2xlICsgMyAqIGRhKSwgd2lkdGggKiAwLjVm
KTsKICAgICAgICAgICAgZ2wuZ2xWZXJ0ZXgzZihyMSAqIChmbG9hdCkgTWF0aC5jb3MoYW5nbGUg
KyAzICogZGEpLCByMSAqIChmbG9hdCkgTWF0aC5zaW4oYW5nbGUgKyAzICogZGEpLCAtd2lkdGgg
KiAwLjVmKTsKICAgICAgICAgICAgZ2wuZ2xOb3JtYWwzZigoZmxvYXQpIE1hdGguY29zKGFuZ2xl
KSwgKGZsb2F0KSBNYXRoLnNpbihhbmdsZSksIDAuMGYpOwogICAgICAgIH0KICAgICAgICBnbC5n
bFZlcnRleDNmKHIxICogKGZsb2F0KSBNYXRoLmNvcygwKSwgcjEgKiAoZmxvYXQpIE1hdGguc2lu
KDApLCB3aWR0aCAqIDAuNWYpOwogICAgICAgIGdsLmdsVmVydGV4M2YocjEgKiAoZmxvYXQpIE1h
dGguY29zKDApLCByMSAqIChmbG9hdCkgTWF0aC5zaW4oMCksIC13aWR0aCAqIDAuNWYpOwogICAg
ICAgIGdsLmdsRW5kKCk7CgogICAgICAgIGdsLmdsU2hhZGVNb2RlbChHTExpZ2h0aW5nRnVuYy5H
TF9TTU9PVEgpOwoKICAgICAgICAvKiBkcmF3IGluc2lkZSByYWRpdXMgY3lsaW5kZXIgKi8KICAg
ICAgICBnbC5nbEJlZ2luKEdMMi5HTF9RVUFEX1NUUklQKTsKICAgICAgICBmb3IgKGkgPSAwOyBp
IDw9IHRlZXRoOyBpKyspIHsKICAgICAgICAgICAgYW5nbGUgPSBpICogMi4wZiAqIChmbG9hdCkg
TWF0aC5QSSAvIHRlZXRoOwogICAgICAgICAgICBnbC5nbE5vcm1hbDNmKC0oZmxvYXQpIE1hdGgu
Y29zKGFuZ2xlKSwgLShmbG9hdCkgTWF0aC5zaW4oYW5nbGUpLCAwLjBmKTsKICAgICAgICAgICAg
Z2wuZ2xWZXJ0ZXgzZihyMCAqIChmbG9hdCkgTWF0aC5jb3MoYW5nbGUpLCByMCAqIChmbG9hdCkg
TWF0aC5zaW4oYW5nbGUpLCAtd2lkdGggKiAwLjVmKTsKICAgICAgICAgICAgZ2wuZ2xWZXJ0ZXgz
ZihyMCAqIChmbG9hdCkgTWF0aC5jb3MoYW5nbGUpLCByMCAqIChmbG9hdCkgTWF0aC5zaW4oYW5n
bGUpLCB3aWR0aCAqIDAuNWYpOwogICAgICAgIH0KICAgICAgICBnbC5nbEVuZCgpOwogICAgfQoK
ICAgIGNsYXNzIEdlYXJzS2V5QWRhcHRlciBleHRlbmRzIEtleUFkYXB0ZXIgewogICAgICAgIEBP
dmVycmlkZQogICAgICAgIHB1YmxpYyB2b2lkIGtleVByZXNzZWQoS2V5RXZlbnQgZSkgewogICAg
ICAgICAgICBpbnQga2MgPSBlLmdldEtleUNvZGUoKTsKICAgICAgICAgICAgaWYgKEtleUV2ZW50
LlZLX0xFRlQgPT0ga2MpIHsKICAgICAgICAgICAgICAgIHZpZXdfcm90eSAtPSAxOwogICAgICAg
ICAgICB9IGVsc2UgaWYgKEtleUV2ZW50LlZLX1JJR0hUID09IGtjKSB7CiAgICAgICAgICAgICAg
ICB2aWV3X3JvdHkgKz0gMTsKICAgICAgICAgICAgfSBlbHNlIGlmIChLZXlFdmVudC5WS19VUCA9
PSBrYykgewogICAgICAgICAgICAgICAgdmlld19yb3R4IC09IDE7CiAgICAgICAgICAgIH0gZWxz
ZSBpZiAoS2V5RXZlbnQuVktfRE9XTiA9PSBrYykgewogICAgICAgICAgICAgICAgdmlld19yb3R4
ICs9IDE7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CgogICAgY2xhc3MgR2VhcnNNb3Vz
ZUFkYXB0ZXIgZXh0ZW5kcyBNb3VzZUFkYXB0ZXIgewogICAgICAgIEBPdmVycmlkZQogICAgICAg
IHB1YmxpYyB2b2lkIG1vdXNlUHJlc3NlZChNb3VzZUV2ZW50IGUpIHsKICAgICAgICAgICAgcHJl
dk1vdXNlWCA9IGUuZ2V0WCgpOwogICAgICAgICAgICBwcmV2TW91c2VZID0gZS5nZXRZKCk7CiAg
ICAgICAgICAgIGlmICgoZS5nZXRNb2RpZmllcnMoKSAmIElucHV0RXZlbnQuQlVUVE9OM19NQVNL
KSAhPSAwKSB7CiAgICAgICAgICAgICAgICBtb3VzZVJCdXR0b25Eb3duID0gdHJ1ZTsKICAgICAg
ICAgICAgfQogICAgICAgIH0KCiAgICAgICAgQE92ZXJyaWRlCiAgICAgICAgcHVibGljIHZvaWQg
bW91c2VSZWxlYXNlZChNb3VzZUV2ZW50IGUpIHsKICAgICAgICAgICAgaWYgKChlLmdldE1vZGlm
aWVycygpICYgSW5wdXRFdmVudC5CVVRUT04zX01BU0spICE9IDApIHsKICAgICAgICAgICAgICAg
IG1vdXNlUkJ1dHRvbkRvd24gPSBmYWxzZTsKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAg
ICAgQE92ZXJyaWRlCiAgICAgICAgcHVibGljIHZvaWQgbW91c2VEcmFnZ2VkKE1vdXNlRXZlbnQg
ZSkgewogICAgICAgICAgICBpbnQgeCA9IGUuZ2V0WCgpOwogICAgICAgICAgICBpbnQgeSA9IGUu
Z2V0WSgpOwogICAgICAgICAgICBpbnQgd2lkdGggPSAwLCBoZWlnaHQgPSAwOwogICAgICAgICAg
ICBPYmplY3Qgc291cmNlID0gZS5nZXRTb3VyY2UoKTsKICAgICAgICAgICAgaWYgKHNvdXJjZSBp
bnN0YW5jZW9mIFdpbmRvdykgewogICAgICAgICAgICAgICAgV2luZG93IHdpbmRvdyA9IChXaW5k
b3cpIHNvdXJjZTsKICAgICAgICAgICAgICAgIHdpZHRoID0gd2luZG93LmdldFdpZHRoKCk7CiAg
ICAgICAgICAgICAgICBoZWlnaHQgPSB3aW5kb3cuZ2V0SGVpZ2h0KCk7CiAgICAgICAgICAgIH0g
ZWxzZSBpZiAoR0xQcm9maWxlLmlzQVdUQXZhaWxhYmxlKCkgJiYgc291cmNlIGluc3RhbmNlb2Yg
amF2YS5hd3QuQ29tcG9uZW50KSB7CiAgICAgICAgICAgICAgICBqYXZhLmF3dC5Db21wb25lbnQg
Y29tcCA9IChqYXZhLmF3dC5Db21wb25lbnQpIHNvdXJjZTsKICAgICAgICAgICAgICAgIHdpZHRo
ID0gY29tcC5nZXRXaWR0aCgpOwogICAgICAgICAgICAgICAgaGVpZ2h0ID0gY29tcC5nZXRIZWln
aHQoKTsKICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgIHRocm93IG5ldyBSdW50
aW1lRXhjZXB0aW9uKCJFdmVudCBzb3VyY2UgbmVpdGhlciBXaW5kb3cgbm9yIENvbXBvbmVudDog
IiArIHNvdXJjZSk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZmxvYXQgdGhldGFZID0gMzYw
LjBmICogKChmbG9hdCkgKHggLSBwcmV2TW91c2VYKSAvIChmbG9hdCkgd2lkdGgpOwogICAgICAg
ICAgICBmbG9hdCB0aGV0YVggPSAzNjAuMGYgKiAoKGZsb2F0KSAocHJldk1vdXNlWSAtIHkpIC8g
KGZsb2F0KSBoZWlnaHQpOwoKICAgICAgICAgICAgcHJldk1vdXNlWCA9IHg7CiAgICAgICAgICAg
IHByZXZNb3VzZVkgPSB5OwoKICAgICAgICAgICAgdmlld19yb3R4ICs9IHRoZXRhWDsKICAgICAg
ICAgICAgdmlld19yb3R5ICs9IHRoZXRhWTsKICAgICAgICB9CiAgICB9Cn0K
</data>

          </attachment>
      

    </bug>

</bugzilla>