<?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>175942</bug_id>
          
          <creation_ts>2017-08-24 10:21:42 -0700</creation_ts>
          <short_desc>[GTK][Wayland] Opening FedoraProject&apos;s pastebin chews CPU</short_desc>
          <delta_ts>2018-02-23 13:12:33 -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>WebKitGTK</component>
          <version>Other</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=183091</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Bastien Nocera">bugzilla</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>bugs-noreply</cc>
    
    <cc>buildbot</cc>
    
    <cc>cgarcia</cc>
    
    <cc>clopez</cc>
    
    <cc>magomez</cc>
    
    <cc>mcatanzaro</cc>
    
    <cc>zan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1342084</commentid>
    <comment_count>0</comment_count>
    <who name="Bastien Nocera">bugzilla</who>
    <bug_when>2017-08-24 10:21:42 -0700</bug_when>
    <thetext>webkitgtk4-2.17.91-1.fc28.x86_64

Opening &quot;https://paste.fedoraproject.org/paste/KPHOZTH~E8zjRJtXkOQEcQ&quot; (for example) in MiniBrowse or epiphany eats through CPU, with the WebKitProcess taking 2/3 of a core, and the browser binary taking the other 1/3.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1343915</commentid>
    <comment_count>1</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2017-08-31 06:35:40 -0700</bug_when>
    <thetext>I can reproduce this, but only under wayland (doesn&apos;t happen using GDK_BACKEND=x11) and with AC enabled.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1343916</commentid>
    <comment_count>2</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2017-08-31 06:52:54 -0700</bug_when>
    <thetext>It seems we are rendering at a crazy frame rate, I guess because of the display monitor thing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1343919</commentid>
    <comment_count>3</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2017-08-31 07:04:13 -0700</bug_when>
    <thetext>This regressed when we introduced the display refresh monitor. The monitor schedules updates immediately, because we removed the option to not do frame sync in X11 to let swapBuffers do the throttling. That doesn&apos;t happen in Wayland, so I guess we need to properly implement the frame request callbacks in the nested compositor.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1343934</commentid>
    <comment_count>4</comment_count>
      <attachid>319463</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2017-08-31 08:54:42 -0700</bug_when>
    <thetext>Created attachment 319463
WIP

This is a WIP patch, it fixes the issue, but also introduces locks. Now I remember this was the other reason why we didn&apos;t implement the frame callbacks this way. Problem is that mesa calls wl_display_dispatch_queue in a loop, but the main thread is blocking trying to make a sync threaded compositing task (for repaint). See the bt:

Thread 13 (Thread 0x7f74077fe700 (LWP 20452)):
#0  0x00007f747505966d in poll () at ../sysdeps/unix/syscall-template.S:84
#1  0x00007f7475bb6769 in ?? () from /usr/lib/x86_64-linux-gnu/libwayland-client.so.0
#2  0x00007f7475bb7dac in wl_display_dispatch_queue () from /usr/lib/x86_64-linux-gnu/libwayland-client.so.0
#3  0x00007f747d619d0b in ?? () from /usr/lib/x86_64-linux-gnu/libEGL.so.1
#4  0x00007f747d61a14c in ?? () from /usr/lib/x86_64-linux-gnu/libEGL.so.1
#5  0x00007f747d61a224 in ?? () from /usr/lib/x86_64-linux-gnu/libEGL.so.1
#6  0x00007f7417ab2848 in ?? () from /usr/lib/x86_64-linux-gnu/dri/i965_dri.so
#7  0x00007f7417ab2ba1 in ?? () from /usr/lib/x86_64-linux-gnu/dri/i965_dri.so
#8  0x00007f7417a9dc84 in ?? () from /usr/lib/x86_64-linux-gnu/dri/i965_dri.so
#9  0x00007f7483338437 in WebCore::GraphicsContext3D::clear(unsigned int) () from /home/cgarcia/src/git/gnome/WebKit/WebKitBuild/Release/lib/libwebkit2gtk-4.0.so.37
#10 0x00007f748265cc0b in WebKit::CoordinatedGraphicsScene::paintToCurrentGLContext(WebCore::TransformationMatrix const&amp;, float, WebCore::FloatRect const&amp;, WebCore::Color const&amp;, bool, WebCore::FloatPoint const&amp;, unsigned int) () from /home/cgarcia/src/git/gnome/WebKit/WebKitBuild/Release/lib/libwebkit2gtk-4.0.so.37
#11 0x00007f7482666ab1 in WebKit::ThreadedCompositor::renderLayerTree() () from /home/cgarcia/src/git/gnome/WebKit/WebKitBuild/Release/lib/libwebkit2gtk-4.0.so.37


Thread 1 (Thread 0x7f7484c8ea80 (LWP 20432)):
#0  pthread_cond_wait@@GLIBC_2.3.2 () at ../sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:185
#1  0x00007f747f2240eb in WTF::ThreadCondition::timedWait(WTF::Mutex&amp;, double) () from /home/cgarcia/src/git/gnome/WebKit/WebKitBuild/Release/lib/libjavascriptcoregtk-4.0.so.18
#2  0x00007f747f1eb9e3 in WTF::ParkingLot::parkConditionallyImpl(void const*, WTF::ScopedLambda&lt;bool ()&gt; const&amp;, WTF::ScopedLambda&lt;void ()&gt; const&amp;, WTF::TimeWithDynamicClockType const&amp;) ()
   from /home/cgarcia/src/git/gnome/WebKit/WebKitBuild/Release/lib/libjavascriptcoregtk-4.0.so.18
#3  0x00007f7482664004 in WebKit::CompositingRunLoop::performTaskSync(WTF::Function&lt;void ()&gt;&amp;&amp;) () from /home/cgarcia/src/git/gnome/WebKit/WebKitBuild/Release/lib/libwebkit2gtk-4.0.so.37
#4  0x00007f7482666600 in WebKit::ThreadedCompositor::forceRepaint() () from /home/cgarcia/src/git/gnome/WebKit/WebKitBuild/Release/lib/libwebkit2gtk-4.0.so.37
#5  0x00007f74827b432f in WebKit::AcceleratedDrawingArea::layerHostDidFlushLayers() () from /home/cgarcia/src/git/gnome/WebKit/WebKitBuild/Release/lib/libwebkit2gtk-4.0.so.37
#6  0x00007f74827bc14e in WebKit::CoordinatedLayerTreeHost::layerFlushTimerFired() () from /home/cgarcia/src/git/gnome/WebKit/WebKitBuild/Release/lib/libwebkit2gtk-4.0.so.37

Any idea?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1344381</commentid>
    <comment_count>5</comment_count>
      <attachid>319593</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2017-09-01 05:23:09 -0700</bug_when>
    <thetext>Created attachment 319593
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1344382</commentid>
    <comment_count>6</comment_count>
    <who name="Build Bot">buildbot</who>
    <bug_when>2017-09-01 05:25:28 -0700</bug_when>
    <thetext>Attachment 319593 did not pass style-queue:


ERROR: Source/WebKit/UIProcess/gtk/WaylandCompositor.h:90:  The parameter name &quot;webPage&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Total errors found: 1 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>1344383</commentid>
    <comment_count>7</comment_count>
      <attachid>319594</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2017-09-01 05:28:36 -0700</bug_when>
    <thetext>Created attachment 319594
Patch

Fix coding style</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1344414</commentid>
    <comment_count>8</comment_count>
      <attachid>319600</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2017-09-01 09:14:41 -0700</bug_when>
    <thetext>Created attachment 319600
Patch

Fixed changelog entry, for some reaosn the first line was missing, shrug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1344753</commentid>
    <comment_count>9</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2017-09-02 00:05:58 -0700</bug_when>
    <thetext>Committed r221514: &lt;http://trac.webkit.org/changeset/221514&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1401795</commentid>
    <comment_count>10</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2018-02-23 13:12:23 -0800</bug_when>
    <thetext>Regression: bug #183091.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>319463</attachid>
            <date>2017-08-31 08:54:42 -0700</date>
            <delta_ts>2017-09-01 05:23:09 -0700</delta_ts>
            <desc>WIP</desc>
            <filename>wk-wip-wayland-frames.diff</filename>
            <type>text/plain</type>
            <size>5204</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2d0ay9BY2NlbGVyYXRlZEJhY2tp
bmdTdG9yZVdheWxhbmQuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvZ3RrL0FjY2VsZXJh
dGVkQmFja2luZ1N0b3JlV2F5bGFuZC5jcHAKaW5kZXggMTJlMDNjNDNmNTkuLmMwMGZiZDZkMGIz
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9ndGsvQWNjZWxlcmF0ZWRCYWNr
aW5nU3RvcmVXYXlsYW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9ndGsvQWNj
ZWxlcmF0ZWRCYWNraW5nU3RvcmVXYXlsYW5kLmNwcApAQCAtMTAwLDYgKzEwMCw5IEBAIGJvb2wg
QWNjZWxlcmF0ZWRCYWNraW5nU3RvcmVXYXlsYW5kOjpwYWludChjYWlyb190KiBjciwgY29uc3Qg
SW50UmVjdCYgY2xpcFJlY3QpCiAgICAgaWYgKGNhbkdka1VzZUdMKCkpIHsKICAgICAgICAgZ2Rr
X2NhaXJvX2RyYXdfZnJvbV9nbChjciwgZ3RrX3dpZGdldF9nZXRfd2luZG93KG1fd2ViUGFnZS52
aWV3V2lkZ2V0KCkpLCB0ZXh0dXJlLCBHTF9URVhUVVJFLCBtX3dlYlBhZ2UuZGV2aWNlU2NhbGVG
YWN0b3IoKSwgMCwgMCwgdGV4dHVyZVNpemUud2lkdGgoKSwgdGV4dHVyZVNpemUuaGVpZ2h0KCkp
OwogICAgICAgICBjYWlyb19yZXN0b3JlKGNyKTsKKworICAgICAgICBXYXlsYW5kQ29tcG9zaXRv
cjo6c2luZ2xldG9uKCkuZGlkRHJhdyhtX3dlYlBhZ2UpOworCiAgICAgICAgIHJldHVybiB0cnVl
OwogICAgIH0KICNlbmRpZgpAQCAtMTU3LDYgKzE2MCw4IEBAIGJvb2wgQWNjZWxlcmF0ZWRCYWNr
aW5nU3RvcmVXYXlsYW5kOjpwYWludChjYWlyb190KiBjciwgY29uc3QgSW50UmVjdCYgY2xpcFJl
Y3QpCiAKICAgICBjYWlyb19yZXN0b3JlKGNyKTsKIAorICAgIFdheWxhbmRDb21wb3NpdG9yOjpz
aW5nbGV0b24oKS5kaWREcmF3KG1fd2ViUGFnZSk7CisKICAgICByZXR1cm4gdHJ1ZTsKIH0KIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvZ3RrL1dheWxhbmRDb21wb3NpdG9y
LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2d0ay9XYXlsYW5kQ29tcG9zaXRvci5jcHAK
aW5kZXggNjQ2OTJkYThmZTguLjZmMWQ5MDMxZDQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9ndGsvV2F5bGFuZENvbXBvc2l0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL2d0ay9XYXlsYW5kQ29tcG9zaXRvci5jcHAKQEAgLTE1Nyw2ICsxNTcsOSBAQCBX
YXlsYW5kQ29tcG9zaXRvcjo6U3VyZmFjZTo6U3VyZmFjZSgpCiBXYXlsYW5kQ29tcG9zaXRvcjo6
U3VyZmFjZTo6flN1cmZhY2UoKQogewogICAgIC8vIERlc3Ryb3kgcGVuZGluZyBmcmFtZSBjYWxs
YmFja3MuCisgICAgYXV0byBwZW5kaW5nTGlzdCA9IFdURk1vdmUobV9wZW5kaW5nRnJhbWVDYWxs
YmFja0xpc3QpOworICAgIGZvciAoYXV0byogcmVzb3VyY2UgOiBwZW5kaW5nTGlzdCkKKyAgICAg
ICAgd2xfcmVzb3VyY2VfZGVzdHJveShyZXNvdXJjZSk7CiAgICAgYXV0byBsaXN0ID0gV1RGTW92
ZShtX2ZyYW1lQ2FsbGJhY2tMaXN0KTsKICAgICBmb3IgKGF1dG8qIHJlc291cmNlIDogbGlzdCkK
ICAgICAgICAgd2xfcmVzb3VyY2VfZGVzdHJveShyZXNvdXJjZSk7CkBAIC0xOTksMTAgKzIwMiwx
MCBAQCB2b2lkIFdheWxhbmRDb21wb3NpdG9yOjpTdXJmYWNlOjpyZXF1ZXN0RnJhbWUoc3RydWN0
IHdsX3Jlc291cmNlKiByZXNvdXJjZSkKIHsKICAgICB3bF9yZXNvdXJjZV9zZXRfaW1wbGVtZW50
YXRpb24ocmVzb3VyY2UsIG51bGxwdHIsIHRoaXMsIFtdKHN0cnVjdCB3bF9yZXNvdXJjZSogcmVz
b3VyY2UpIHsKICAgICAgICAgYXV0byogc3VyZmFjZSA9IHN0YXRpY19jYXN0PFdheWxhbmRDb21w
b3NpdG9yOjpTdXJmYWNlKj4od2xfcmVzb3VyY2VfZ2V0X3VzZXJfZGF0YShyZXNvdXJjZSkpOwot
ICAgICAgICBpZiAoc2l6ZV90IGl0ZW0gPSBzdXJmYWNlLT5tX2ZyYW1lQ2FsbGJhY2tMaXN0LmZp
bmQocmVzb3VyY2UpICE9IG5vdEZvdW5kKQotICAgICAgICAgICAgc3VyZmFjZS0+bV9mcmFtZUNh
bGxiYWNrTGlzdC5yZW1vdmUoaXRlbSk7CisgICAgICAgIGlmIChzaXplX3QgaXRlbSA9IHN1cmZh
Y2UtPm1fcGVuZGluZ0ZyYW1lQ2FsbGJhY2tMaXN0LmZpbmQocmVzb3VyY2UpICE9IG5vdEZvdW5k
KQorICAgICAgICAgICAgc3VyZmFjZS0+bV9wZW5kaW5nRnJhbWVDYWxsYmFja0xpc3QucmVtb3Zl
KGl0ZW0pOwogICAgIH0pOwotICAgIG1fZnJhbWVDYWxsYmFja0xpc3QuYXBwZW5kKHJlc291cmNl
KTsKKyAgICBtX3BlbmRpbmdGcmFtZUNhbGxiYWNrTGlzdC5hcHBlbmQocmVzb3VyY2UpOwogfQog
CiBib29sIFdheWxhbmRDb21wb3NpdG9yOjpTdXJmYWNlOjpwcmVwYXJlVGV4dHVyZUZvclBhaW50
aW5nKHVuc2lnbmVkJiB0ZXh0dXJlLCBJbnRTaXplJiB0ZXh0dXJlU2l6ZSkKQEAgLTIxOCw2ICsy
MjEsMTUgQEAgYm9vbCBXYXlsYW5kQ29tcG9zaXRvcjo6U3VyZmFjZTo6cHJlcGFyZVRleHR1cmVG
b3JQYWludGluZyh1bnNpZ25lZCYgdGV4dHVyZSwgSW4KICAgICByZXR1cm4gdHJ1ZTsKIH0KIAor
dm9pZCBXYXlsYW5kQ29tcG9zaXRvcjo6U3VyZmFjZTo6cHJvY2Vzc0ZyYW1lQ2FsbGJhY2tzKCkK
K3sKKyAgICBhdXRvIGxpc3QgPSBXVEZNb3ZlKG1fZnJhbWVDYWxsYmFja0xpc3QpOworICAgIGZv
ciAoYXV0byogcmVzb3VyY2UgOiBsaXN0KSB7CisgICAgICAgIHdsX2NhbGxiYWNrX3NlbmRfZG9u
ZShyZXNvdXJjZSwgMCk7CisgICAgICAgIHdsX3Jlc291cmNlX2Rlc3Ryb3kocmVzb3VyY2UpOwor
ICAgIH0KK30KKwogdm9pZCBXYXlsYW5kQ29tcG9zaXRvcjo6U3VyZmFjZTo6Y29tbWl0KCkKIHsK
ICAgICBFR0xEaXNwbGF5IGVnbERpc3BsYXkgPSBQbGF0Zm9ybURpc3BsYXk6OnNoYXJlZERpc3Bs
YXkoKS5lZ2xEaXNwbGF5KCk7CkBAIC0yMzMsMTUgKzI0NSw4IEBAIHZvaWQgV2F5bGFuZENvbXBv
c2l0b3I6OlN1cmZhY2U6OmNvbW1pdCgpCiAgICAgaWYgKG1fd2ViUGFnZSkKICAgICAgICAgbV93
ZWJQYWdlLT5zZXRWaWV3TmVlZHNEaXNwbGF5KEludFJlY3QoSW50UG9pbnQ6Onplcm8oKSwgbV93
ZWJQYWdlLT52aWV3U2l6ZSgpKSk7CiAKLSAgICAvLyBGcm9tIGEgV2F5bGFuZCBwb2ludC1vZi12
aWV3IGZyYW1lIGNhbGxiYWNrcyBzaG91bGQgYmUgZmlyZWQgd2hlcmUgdGhlCi0gICAgLy8gY29t
cG9zaXRvciBrbm93cyBpdCBoYXMgKnVzZWQqIHRoZSBjb21taXR0ZWQgY29udGVudHMsIHNvIGZp
cmluZyB0aGVtIGhlcmUKLSAgICAvLyBjYW4gYmUgc3VycHJpc2luZyBidXQgd2UgZG9uJ3QgbmVl
ZCB0aGVtIGFzIGEgdGhyb3R0bGluZyBtZWNoYW5pc20gYmVjYXVzZQotICAgIC8vIHJlbmRlcmlu
ZyBzeW5jaHJvbml6YXRpb24gaXMgaGFuZGxlZCBlbHNld2hlcmUgYnkgV2ViS2l0LgotICAgIGF1
dG8gbGlzdCA9IFdURk1vdmUobV9mcmFtZUNhbGxiYWNrTGlzdCk7Ci0gICAgZm9yIChhdXRvKiBy
ZXNvdXJjZSA6IGxpc3QpIHsKLSAgICAgICAgd2xfY2FsbGJhY2tfc2VuZF9kb25lKHJlc291cmNl
LCAwKTsKLSAgICAgICAgd2xfcmVzb3VyY2VfZGVzdHJveShyZXNvdXJjZSk7Ci0gICAgfQorICAg
IGF1dG8gbGlzdCA9IFdURk1vdmUobV9wZW5kaW5nRnJhbWVDYWxsYmFja0xpc3QpOworICAgIG1f
ZnJhbWVDYWxsYmFja0xpc3QuYXBwZW5kVmVjdG9yKGxpc3QpOwogfQogCiBzdGF0aWMgY29uc3Qg
c3RydWN0IHdsX3N1cmZhY2VfaW50ZXJmYWNlIHN1cmZhY2VJbnRlcmZhY2UgPSB7CkBAIC00ODgs
NiArNDkzLDEyIEBAIGJvb2wgV2F5bGFuZENvbXBvc2l0b3I6OmdldFRleHR1cmUoV2ViUGFnZVBy
b3h5JiB3ZWJQYWdlLCB1bnNpZ25lZCYgdGV4dHVyZSwgSW50CiAgICAgcmV0dXJuIGZhbHNlOwog
fQogCit2b2lkIFdheWxhbmRDb21wb3NpdG9yOjpkaWREcmF3KFdlYlBhZ2VQcm94eSYgd2ViUGFn
ZSkKK3sKKyAgICBpZiAoYXV0byogc3VyZmFjZSA9IG1fcGFnZU1hcC5nZXQoJndlYlBhZ2UpKQor
ICAgICAgICBzdXJmYWNlLT5wcm9jZXNzRnJhbWVDYWxsYmFja3MoKTsKK30KKwogdm9pZCBXYXls
YW5kQ29tcG9zaXRvcjo6YmluZFN1cmZhY2VUb1dlYlBhZ2UoV2F5bGFuZENvbXBvc2l0b3I6OlN1
cmZhY2UqIHN1cmZhY2UsIHVpbnQ2NF90IHBhZ2VJRCkKIHsKICAgICBXZWJQYWdlUHJveHkqIHdl
YlBhZ2UgPSBudWxscHRyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvZ3Rr
L1dheWxhbmRDb21wb3NpdG9yLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9ndGsvV2F5bGFu
ZENvbXBvc2l0b3IuaAppbmRleCAxNGI5YTgzNmQ5NS4uMjhlM2IzYmI1MzYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2d0ay9XYXlsYW5kQ29tcG9zaXRvci5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL2d0ay9XYXlsYW5kQ29tcG9zaXRvci5oCkBAIC04OSw2ICs4
OSw3IEBAIHB1YmxpYzoKIAogICAgICAgICB2b2lkIHNldFdlYlBhZ2UoV2ViUGFnZVByb3h5KiB3
ZWJQYWdlKSB7IG1fd2ViUGFnZSA9IHdlYlBhZ2U7IH0KICAgICAgICAgYm9vbCBwcmVwYXJlVGV4
dHVyZUZvclBhaW50aW5nKHVuc2lnbmVkJiwgV2ViQ29yZTo6SW50U2l6ZSYpOworICAgICAgICB2
b2lkIHByb2Nlc3NGcmFtZUNhbGxiYWNrcygpOwogCiAgICAgcHJpdmF0ZToKICAgICAgICAgdm9p
ZCBtYWtlUGVuZGluZ0J1ZmZlckN1cnJlbnQoKTsKQEAgLTk4LDYgKzk5LDcgQEAgcHVibGljOgog
ICAgICAgICB1bnNpZ25lZCBtX3RleHR1cmU7CiAgICAgICAgIEVHTEltYWdlS0hSIG1faW1hZ2U7
CiAgICAgICAgIFdlYkNvcmU6OkludFNpemUgbV9pbWFnZVNpemU7CisgICAgICAgIFZlY3Rvcjx3
bF9yZXNvdXJjZSo+IG1fcGVuZGluZ0ZyYW1lQ2FsbGJhY2tMaXN0OwogICAgICAgICBWZWN0b3I8
d2xfcmVzb3VyY2UqPiBtX2ZyYW1lQ2FsbGJhY2tMaXN0OwogICAgICAgICBXZWJQYWdlUHJveHkq
IG1fd2ViUGFnZSB7IG51bGxwdHIgfTsKICAgICB9OwpAQCAtMTEwLDYgKzExMiw3IEBAIHB1Ymxp
YzoKICAgICB2b2lkIHVucmVnaXN0ZXJXZWJQYWdlKFdlYlBhZ2VQcm94eSYpOwogCiAgICAgYm9v
bCBnZXRUZXh0dXJlKFdlYlBhZ2VQcm94eSYsIHVuc2lnbmVkJiwgV2ViQ29yZTo6SW50U2l6ZSYp
OworICAgIHZvaWQgZGlkRHJhdyhXZWJQYWdlUHJveHkmKTsKIAogcHJpdmF0ZToKICAgICBXYXls
YW5kQ29tcG9zaXRvcigpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>319593</attachid>
            <date>2017-09-01 05:23:09 -0700</date>
            <delta_ts>2017-09-01 05:28:36 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>wk2-wayland-frame-callabcks.diff</filename>
            <type>text/plain</type>
            <size>10195</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFu
Z2VMb2cKaW5kZXggYjYyYjdlZTU2MWYuLjU2NzE0NmVkN2ExIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsx
LDM1IEBACisKKworICAgICAgICBbR1RLXVtXYXlsYW5kXSBPcGVuaW5nIEZlZG9yYVByb2plY3Qn
cyBwYXN0ZWJpbiBjaGV3cyBDUFUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTE3NTk0MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIFRoaXMgcmVncmVzc2VkIHdoZW4gd2UgaW50cm9kdWNlZCB0aGUgZGlzcGxh
eSByZWZyZXNoIG1vbml0b3IuIFRoZSBtb25pdG9yIHNjaGVkdWxlcyB1cGRhdGVzIGltbWVkaWF0
ZWx5LAorICAgICAgICBiZWNhdXNlIHdlIHJlbW92ZWQgdGhlIG9wdGlvbiB0byBub3QgZG8gZnJh
bWUgc3luYyBpbiBYMTEgdG8gbGV0IHN3YXBCdWZmZXJzIGRvIHRoZSB0aHJvdHRsaW5nLCBidXQg
dGhhdCdzCisgICAgICAgIG5vdCBoYXBwZW5pbmcgaW4gV2F5bGFuZCBiZWNhdXNlIHRoZSBuZXN0
ZWQgY29tcG9zaXRvciBpcyBkaXNwYXRjaGluZyBmcmFtZSBjYWxsYmFja3Mgb24gc3VyZmFjZSBj
b21taXQuCisgICAgICAgIFdlIG5lZWQgdG8gZW5zdXJlIHRoYXQgZnJhbWUgY2FsbGJhY2tzIGFy
ZSBkaXNwYXRjaGVkIG9uIGV2ZXJ5IG1vbml0b3IgcmVmcmVzaCwgYmVjYXVzZSBzd2FwQnVmZmVy
cyB3YWl0cyBmb3IKKyAgICAgICAgZnJhbWUgY2FsbGJhY2tzIHRvIGJlIHF1ZXVlZCBvbiBkaXNw
bGF5LgorCisgICAgICAgICogVUlQcm9jZXNzL2d0ay9XYXlsYW5kQ29tcG9zaXRvci5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6OldheWxhbmRDb21wb3NpdG9yOjpTdXJmYWNlOjp+U3VyZmFjZSk6IERl
c3Ryb3kgcGVuZGluZyBmcmFtZSBjYWxsYmFja3MgdG9vLgorICAgICAgICAoV2ViS2l0OjpXYXls
YW5kQ29tcG9zaXRvcjo6U3VyZmFjZTo6c2V0V2ViUGFnZSk6IEFkZCBhIHRpY2sgY2FsbGJhY2sg
dG8gdGhlIHdlYiB2aWV3IHdpZGdldCB0byBmbHVzaCBhbGwKKyAgICAgICAgY29tbWl0dGVkIGZy
YW1lIGNhbGxiYWNrcyBvbiBldmVyeSBmcmFtZSB1cGRhdGUuCisgICAgICAgIChXZWJLaXQ6Oldh
eWxhbmRDb21wb3NpdG9yOjpTdXJmYWNlOjpyZXF1ZXN0RnJhbWUpOiBBZGQgdGhlIGNhbGxiYWNr
cyB0byBtX3BlbmRpbmdGcmFtZUNhbGxiYWNrTGlzdC4KKyAgICAgICAgKFdlYktpdDo6V2F5bGFu
ZENvbXBvc2l0b3I6OlN1cmZhY2U6OmZsdXNoRnJhbWVDYWxsYmFja3MpOiBEaXNwYXRjaCBhbGwg
Y29tbWl0dGVkIGZyYW1lIGNhbGxhYmNrcy4KKyAgICAgICAgKFdlYktpdDo6V2F5bGFuZENvbXBv
c2l0b3I6OlN1cmZhY2U6OmZsdXNoUGVuZGluZ0ZyYW1lQ2FsbGJhY2tzKTogRGlzcGF0Y2ggYWxs
IHBlbmRpbmcgZnJhbWUgY2FsbGJhY2tzLgorICAgICAgICAoV2ViS2l0OjpXYXlsYW5kQ29tcG9z
aXRvcjo6U3VyZmFjZTo6Y29tbWl0KTogRG8gbm90IGRpc3BhdGNoIGZyYW1lIGNhbGxiYWNrcyBo
ZXJlLCBtb3ZlIHRoZW0gdG8gdGhlIGxpc3Qgb2YKKyAgICAgICAgY29tbWl0dGVkIGZyYW1lIGNh
bGxiYWNrcyB0aGF0IHdpbGwgYmUgZGlzcGF0Y2hlZCBvbiB0aGUgbmV4dCBmcmFtZSBjbG9jayB1
cGRhdGUuCisgICAgICAgICogVUlQcm9jZXNzL2d0ay9XYXlsYW5kQ29tcG9zaXRvci5oOgorICAg
ICAgICAoV2ViS2l0OjpXYXlsYW5kQ29tcG9zaXRvcjo6U3VyZmFjZTo6c2V0V2ViUGFnZSk6IE1v
dmVkIHRvIHRoZSBjcHAuCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL2d0ay9BY2NlbGVy
YXRlZFN1cmZhY2VXYXlsYW5kLmNwcDoKKyAgICAgICAgKFdlYktpdDo6QWNjZWxlcmF0ZWRTdXJm
YWNlV2F5bGFuZDo6QWNjZWxlcmF0ZWRTdXJmYWNlV2F5bGFuZCk6IE1vdmUgc3VyZmFjZSBpbml0
aWFsaXphdGlvbiBhbmQgZGVzdHJ1Y3Rpb24gdG8KKyAgICAgICAgdGhlIGNvbXBvc2l0aW5nIHRo
cmVhZC4KKyAgICAgICAgKFdlYktpdDo6QWNjZWxlcmF0ZWRTdXJmYWNlV2F5bGFuZDo6aW5pdGlh
bGl6ZSk6CisgICAgICAgIChXZWJLaXQ6OkFjY2VsZXJhdGVkU3VyZmFjZVdheWxhbmQ6OmZpbmFs
aXplKToKKyAgICAgICAgKFdlYktpdDo6QWNjZWxlcmF0ZWRTdXJmYWNlV2F5bGFuZDo6fkFjY2Vs
ZXJhdGVkU3VyZmFjZVdheWxhbmQpOiBEZWxldGVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvV2Vi
UGFnZS9ndGsvQWNjZWxlcmF0ZWRTdXJmYWNlV2F5bGFuZC5oOgorCiAyMDE3LTA4LTMxICBBbmR5
IEVzdGVzICA8YWVzdGVzQGFwcGxlLmNvbT4KIAogICAgICAgICBbTWFjXSBVcHN0cmVhbSBBcHBL
aXQtcmVsYXRlZCBXZWJLaXRTeXN0ZW1JbnRlcmZhY2UgZnVuY3Rpb25zCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9ndGsvV2F5bGFuZENvbXBvc2l0b3IuY3BwIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvZ3RrL1dheWxhbmRDb21wb3NpdG9yLmNwcAppbmRleCA2NDY5MmRh
OGZlOC4uNzU5NDQ0NDg4ZDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2d0
ay9XYXlsYW5kQ29tcG9zaXRvci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvZ3Rr
L1dheWxhbmRDb21wb3NpdG9yLmNwcApAQCAtMTU2LDcgKzE1NiwxMiBAQCBXYXlsYW5kQ29tcG9z
aXRvcjo6U3VyZmFjZTo6U3VyZmFjZSgpCiAKIFdheWxhbmRDb21wb3NpdG9yOjpTdXJmYWNlOjp+
U3VyZmFjZSgpCiB7CisgICAgc2V0V2ViUGFnZShudWxscHRyKTsKKwogICAgIC8vIERlc3Ryb3kg
cGVuZGluZyBmcmFtZSBjYWxsYmFja3MuCisgICAgYXV0byBwZW5kaW5nTGlzdCA9IFdURk1vdmUo
bV9wZW5kaW5nRnJhbWVDYWxsYmFja0xpc3QpOworICAgIGZvciAoYXV0byogcmVzb3VyY2UgOiBw
ZW5kaW5nTGlzdCkKKyAgICAgICAgd2xfcmVzb3VyY2VfZGVzdHJveShyZXNvdXJjZSk7CiAgICAg
YXV0byBsaXN0ID0gV1RGTW92ZShtX2ZyYW1lQ2FsbGJhY2tMaXN0KTsKICAgICBmb3IgKGF1dG8q
IHJlc291cmNlIDogbGlzdCkKICAgICAgICAgd2xfcmVzb3VyY2VfZGVzdHJveShyZXNvdXJjZSk7
CkBAIC0xNzAsNiArMTc1LDI2IEBAIFdheWxhbmRDb21wb3NpdG9yOjpTdXJmYWNlOjp+U3VyZmFj
ZSgpCiAgICAgZ2xEZWxldGVUZXh0dXJlcygxLCAmbV90ZXh0dXJlKTsKIH0KIAordm9pZCBXYXls
YW5kQ29tcG9zaXRvcjo6U3VyZmFjZTo6c2V0V2ViUGFnZShXZWJQYWdlUHJveHkqIHdlYlBhZ2Up
Cit7CisgICAgaWYgKG1fd2ViUGFnZSkgeworICAgICAgICBmbHVzaFBlbmRpbmdGcmFtZUNhbGxi
YWNrcygpOworICAgICAgICBmbHVzaEZyYW1lQ2FsbGJhY2tzKCk7CisgICAgICAgIGd0a193aWRn
ZXRfcmVtb3ZlX3RpY2tfY2FsbGJhY2sobV93ZWJQYWdlLT52aWV3V2lkZ2V0KCksIG1fdGlja0Nh
bGxiYWNrSUQpOworICAgICAgICBtX3RpY2tDYWxsYmFja0lEID0gMDsKKyAgICB9CisKKyAgICBt
X3dlYlBhZ2UgPSB3ZWJQYWdlOworICAgIGlmICghbV93ZWJQYWdlKQorICAgICAgICByZXR1cm47
CisKKyAgICBtX3RpY2tDYWxsYmFja0lEID0gZ3RrX3dpZGdldF9hZGRfdGlja19jYWxsYmFjayht
X3dlYlBhZ2UtPnZpZXdXaWRnZXQoKSwgW10oR3RrV2lkZ2V0KiwgR2RrRnJhbWVDbG9jayosIGdw
b2ludGVyIHVzZXJEYXRhKSAtPiBnYm9vbGVhbiB7CisgICAgICAgIGF1dG8qIHN1cmZhY2UgPSBz
dGF0aWNfY2FzdDxTdXJmYWNlKj4odXNlckRhdGEpOworICAgICAgICBzdXJmYWNlLT5mbHVzaEZy
YW1lQ2FsbGJhY2tzKCk7CisgICAgICAgIHJldHVybiBHX1NPVVJDRV9DT05USU5VRTsKKyAgICB9
LCB0aGlzLCBudWxscHRyKTsKK30KKwogdm9pZCBXYXlsYW5kQ29tcG9zaXRvcjo6U3VyZmFjZTo6
bWFrZVBlbmRpbmdCdWZmZXJDdXJyZW50KCkKIHsKICAgICBpZiAobV9wZW5kaW5nQnVmZmVyID09
IG1fYnVmZmVyKQpAQCAtMTk5LDEwICsyMjQsMTAgQEAgdm9pZCBXYXlsYW5kQ29tcG9zaXRvcjo6
U3VyZmFjZTo6cmVxdWVzdEZyYW1lKHN0cnVjdCB3bF9yZXNvdXJjZSogcmVzb3VyY2UpCiB7CiAg
ICAgd2xfcmVzb3VyY2Vfc2V0X2ltcGxlbWVudGF0aW9uKHJlc291cmNlLCBudWxscHRyLCB0aGlz
LCBbXShzdHJ1Y3Qgd2xfcmVzb3VyY2UqIHJlc291cmNlKSB7CiAgICAgICAgIGF1dG8qIHN1cmZh
Y2UgPSBzdGF0aWNfY2FzdDxXYXlsYW5kQ29tcG9zaXRvcjo6U3VyZmFjZSo+KHdsX3Jlc291cmNl
X2dldF91c2VyX2RhdGEocmVzb3VyY2UpKTsKLSAgICAgICAgaWYgKHNpemVfdCBpdGVtID0gc3Vy
ZmFjZS0+bV9mcmFtZUNhbGxiYWNrTGlzdC5maW5kKHJlc291cmNlKSAhPSBub3RGb3VuZCkKLSAg
ICAgICAgICAgIHN1cmZhY2UtPm1fZnJhbWVDYWxsYmFja0xpc3QucmVtb3ZlKGl0ZW0pOworICAg
ICAgICBpZiAoc2l6ZV90IGl0ZW0gPSBzdXJmYWNlLT5tX3BlbmRpbmdGcmFtZUNhbGxiYWNrTGlz
dC5maW5kKHJlc291cmNlKSAhPSBub3RGb3VuZCkKKyAgICAgICAgICAgIHN1cmZhY2UtPm1fcGVu
ZGluZ0ZyYW1lQ2FsbGJhY2tMaXN0LnJlbW92ZShpdGVtKTsKICAgICB9KTsKLSAgICBtX2ZyYW1l
Q2FsbGJhY2tMaXN0LmFwcGVuZChyZXNvdXJjZSk7CisgICAgbV9wZW5kaW5nRnJhbWVDYWxsYmFj
a0xpc3QuYXBwZW5kKHJlc291cmNlKTsKIH0KIAogYm9vbCBXYXlsYW5kQ29tcG9zaXRvcjo6U3Vy
ZmFjZTo6cHJlcGFyZVRleHR1cmVGb3JQYWludGluZyh1bnNpZ25lZCYgdGV4dHVyZSwgSW50U2l6
ZSYgdGV4dHVyZVNpemUpCkBAIC0yMTgsOCArMjQzLDMyIEBAIGJvb2wgV2F5bGFuZENvbXBvc2l0
b3I6OlN1cmZhY2U6OnByZXBhcmVUZXh0dXJlRm9yUGFpbnRpbmcodW5zaWduZWQmIHRleHR1cmUs
IEluCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKK3ZvaWQgV2F5bGFuZENvbXBvc2l0b3I6OlN1cmZh
Y2U6OmZsdXNoRnJhbWVDYWxsYmFja3MoKQoreworICAgIGF1dG8gbGlzdCA9IFdURk1vdmUobV9m
cmFtZUNhbGxiYWNrTGlzdCk7CisgICAgZm9yIChhdXRvKiByZXNvdXJjZSA6IGxpc3QpIHsKKyAg
ICAgICAgd2xfY2FsbGJhY2tfc2VuZF9kb25lKHJlc291cmNlLCAwKTsKKyAgICAgICAgd2xfcmVz
b3VyY2VfZGVzdHJveShyZXNvdXJjZSk7CisgICAgfQorfQorCit2b2lkIFdheWxhbmRDb21wb3Np
dG9yOjpTdXJmYWNlOjpmbHVzaFBlbmRpbmdGcmFtZUNhbGxiYWNrcygpCit7CisgICAgYXV0byBs
aXN0ID0gV1RGTW92ZShtX3BlbmRpbmdGcmFtZUNhbGxiYWNrTGlzdCk7CisgICAgZm9yIChhdXRv
KiByZXNvdXJjZSA6IGxpc3QpIHsKKyAgICAgICAgd2xfY2FsbGJhY2tfc2VuZF9kb25lKHJlc291
cmNlLCAwKTsKKyAgICAgICAgd2xfcmVzb3VyY2VfZGVzdHJveShyZXNvdXJjZSk7CisgICAgfQor
fQorCiB2b2lkIFdheWxhbmRDb21wb3NpdG9yOjpTdXJmYWNlOjpjb21taXQoKQogeworICAgIGlm
ICghbV93ZWJQYWdlKSB7CisgICAgICAgIG1ha2VQZW5kaW5nQnVmZmVyQ3VycmVudCgpOworICAg
ICAgICBmbHVzaFBlbmRpbmdGcmFtZUNhbGxiYWNrcygpOworICAgICAgICByZXR1cm47CisgICAg
fQorCiAgICAgRUdMRGlzcGxheSBlZ2xEaXNwbGF5ID0gUGxhdGZvcm1EaXNwbGF5OjpzaGFyZWRE
aXNwbGF5KCkuZWdsRGlzcGxheSgpOwogICAgIGlmIChtX2ltYWdlICE9IEVHTF9OT19JTUFHRV9L
SFIpCiAgICAgICAgIGVnbERlc3Ryb3lJbWFnZShlZ2xEaXNwbGF5LCBtX2ltYWdlKTsKQEAgLTIz
MCwxOCArMjc5LDExIEBAIHZvaWQgV2F5bGFuZENvbXBvc2l0b3I6OlN1cmZhY2U6OmNvbW1pdCgp
CiAgICAgbV9pbWFnZVNpemUgPSBtX3BlbmRpbmdCdWZmZXItPnNpemUoKTsKIAogICAgIG1ha2VQ
ZW5kaW5nQnVmZmVyQ3VycmVudCgpOwotICAgIGlmIChtX3dlYlBhZ2UpCi0gICAgICAgIG1fd2Vi
UGFnZS0+c2V0Vmlld05lZWRzRGlzcGxheShJbnRSZWN0KEludFBvaW50Ojp6ZXJvKCksIG1fd2Vi
UGFnZS0+dmlld1NpemUoKSkpOwogCi0gICAgLy8gRnJvbSBhIFdheWxhbmQgcG9pbnQtb2Ytdmll
dyBmcmFtZSBjYWxsYmFja3Mgc2hvdWxkIGJlIGZpcmVkIHdoZXJlIHRoZQotICAgIC8vIGNvbXBv
c2l0b3Iga25vd3MgaXQgaGFzICp1c2VkKiB0aGUgY29tbWl0dGVkIGNvbnRlbnRzLCBzbyBmaXJp
bmcgdGhlbSBoZXJlCi0gICAgLy8gY2FuIGJlIHN1cnByaXNpbmcgYnV0IHdlIGRvbid0IG5lZWQg
dGhlbSBhcyBhIHRocm90dGxpbmcgbWVjaGFuaXNtIGJlY2F1c2UKLSAgICAvLyByZW5kZXJpbmcg
c3luY2hyb25pemF0aW9uIGlzIGhhbmRsZWQgZWxzZXdoZXJlIGJ5IFdlYktpdC4KLSAgICBhdXRv
IGxpc3QgPSBXVEZNb3ZlKG1fZnJhbWVDYWxsYmFja0xpc3QpOwotICAgIGZvciAoYXV0byogcmVz
b3VyY2UgOiBsaXN0KSB7Ci0gICAgICAgIHdsX2NhbGxiYWNrX3NlbmRfZG9uZShyZXNvdXJjZSwg
MCk7Ci0gICAgICAgIHdsX3Jlc291cmNlX2Rlc3Ryb3kocmVzb3VyY2UpOwotICAgIH0KKyAgICBt
X3dlYlBhZ2UtPnNldFZpZXdOZWVkc0Rpc3BsYXkoSW50UmVjdChJbnRQb2ludDo6emVybygpLCBt
X3dlYlBhZ2UtPnZpZXdTaXplKCkpKTsKKworICAgIGF1dG8gbGlzdCA9IFdURk1vdmUobV9wZW5k
aW5nRnJhbWVDYWxsYmFja0xpc3QpOworICAgIG1fZnJhbWVDYWxsYmFja0xpc3QuYXBwZW5kVmVj
dG9yKGxpc3QpOwogfQogCiBzdGF0aWMgY29uc3Qgc3RydWN0IHdsX3N1cmZhY2VfaW50ZXJmYWNl
IHN1cmZhY2VJbnRlcmZhY2UgPSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9ndGsvV2F5bGFuZENvbXBvc2l0b3IuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2d0ay9X
YXlsYW5kQ29tcG9zaXRvci5oCmluZGV4IDE0YjlhODM2ZDk1Li40NzE3NzU3MDM0ZiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvZ3RrL1dheWxhbmRDb21wb3NpdG9yLmgKKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvZ3RrL1dheWxhbmRDb21wb3NpdG9yLmgKQEAgLTg3
LDEwICs4NywxMiBAQCBwdWJsaWM6CiAgICAgICAgIHZvaWQgcmVxdWVzdEZyYW1lKHN0cnVjdCB3
bF9yZXNvdXJjZSopOwogICAgICAgICB2b2lkIGNvbW1pdCgpOwogCi0gICAgICAgIHZvaWQgc2V0
V2ViUGFnZShXZWJQYWdlUHJveHkqIHdlYlBhZ2UpIHsgbV93ZWJQYWdlID0gd2ViUGFnZTsgfQor
ICAgICAgICB2b2lkIHNldFdlYlBhZ2UoV2ViUGFnZVByb3h5KiB3ZWJQYWdlKTsKICAgICAgICAg
Ym9vbCBwcmVwYXJlVGV4dHVyZUZvclBhaW50aW5nKHVuc2lnbmVkJiwgV2ViQ29yZTo6SW50U2l6
ZSYpOwogCiAgICAgcHJpdmF0ZToKKyAgICAgICAgdm9pZCBmbHVzaEZyYW1lQ2FsbGJhY2tzKCk7
CisgICAgICAgIHZvaWQgZmx1c2hQZW5kaW5nRnJhbWVDYWxsYmFja3MoKTsKICAgICAgICAgdm9p
ZCBtYWtlUGVuZGluZ0J1ZmZlckN1cnJlbnQoKTsKIAogICAgICAgICBXZWFrUHRyPEJ1ZmZlcj4g
bV9idWZmZXI7CkBAIC05OCw4ICsxMDAsMTAgQEAgcHVibGljOgogICAgICAgICB1bnNpZ25lZCBt
X3RleHR1cmU7CiAgICAgICAgIEVHTEltYWdlS0hSIG1faW1hZ2U7CiAgICAgICAgIFdlYkNvcmU6
OkludFNpemUgbV9pbWFnZVNpemU7CisgICAgICAgIFZlY3Rvcjx3bF9yZXNvdXJjZSo+IG1fcGVu
ZGluZ0ZyYW1lQ2FsbGJhY2tMaXN0OwogICAgICAgICBWZWN0b3I8d2xfcmVzb3VyY2UqPiBtX2Zy
YW1lQ2FsbGJhY2tMaXN0OwogICAgICAgICBXZWJQYWdlUHJveHkqIG1fd2ViUGFnZSB7IG51bGxw
dHIgfTsKKyAgICAgICAgdW5zaWduZWQgbV90aWNrQ2FsbGJhY2tJRCB7IDAgfTsKICAgICB9Owog
CiAgICAgYm9vbCBpc1J1bm5pbmcoKSBjb25zdCB7IHJldHVybiAhIW1fZGlzcGxheTsgfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvZ3RrL0FjY2VsZXJhdGVk
U3VyZmFjZVdheWxhbmQuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvZ3Rr
L0FjY2VsZXJhdGVkU3VyZmFjZVdheWxhbmQuY3BwCmluZGV4IGM3MzMyYjY0MjQxLi40Nzg3Yzk5
MDQyNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvZ3RrL0Fj
Y2VsZXJhdGVkU3VyZmFjZVdheWxhbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJQYWdlL2d0ay9BY2NlbGVyYXRlZFN1cmZhY2VXYXlsYW5kLmNwcApAQCAtNDMsMTMgKzQz
LDE3IEBAIHN0ZDo6dW5pcXVlX3B0cjxBY2NlbGVyYXRlZFN1cmZhY2VXYXlsYW5kPiBBY2NlbGVy
YXRlZFN1cmZhY2VXYXlsYW5kOjpjcmVhdGUoV2ViCiAKIEFjY2VsZXJhdGVkU3VyZmFjZVdheWxh
bmQ6OkFjY2VsZXJhdGVkU3VyZmFjZVdheWxhbmQoV2ViUGFnZSYgd2ViUGFnZSwgQ2xpZW50JiBj
bGllbnQpCiAgICAgOiBBY2NlbGVyYXRlZFN1cmZhY2Uod2ViUGFnZSwgY2xpZW50KQotICAgICwg
bV9zdXJmYWNlKFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLndheWxhbmRDb21wb3NpdG9yRGlzcGxh
eSgpLT5jcmVhdGVTdXJmYWNlKCkpCi0gICAgLCBtX3dpbmRvdyh3bF9lZ2xfd2luZG93X2NyZWF0
ZShtX3N1cmZhY2UuZ2V0KCksIHN0ZDo6bWF4KDEsIG1fc2l6ZS53aWR0aCgpKSwgc3RkOjptYXgo
MSwgbV9zaXplLmhlaWdodCgpKSkpCiB7Cit9CisKK3ZvaWQgQWNjZWxlcmF0ZWRTdXJmYWNlV2F5
bGFuZDo6aW5pdGlhbGl6ZSgpCit7CisgICAgbV9zdXJmYWNlID0gV2ViUHJvY2Vzczo6c2luZ2xl
dG9uKCkud2F5bGFuZENvbXBvc2l0b3JEaXNwbGF5KCktPmNyZWF0ZVN1cmZhY2UoKTsKKyAgICBt
X3dpbmRvdyA9IHdsX2VnbF93aW5kb3dfY3JlYXRlKG1fc3VyZmFjZS5nZXQoKSwgc3RkOjptYXgo
MSwgbV9zaXplLndpZHRoKCkpLCBzdGQ6Om1heCgxLCBtX3NpemUuaGVpZ2h0KCkpKTsKICAgICBX
ZWJQcm9jZXNzOjpzaW5nbGV0b24oKS53YXlsYW5kQ29tcG9zaXRvckRpc3BsYXkoKS0+YmluZFN1
cmZhY2VUb1BhZ2UobV9zdXJmYWNlLmdldCgpLCBtX3dlYlBhZ2UpOwogfQogCi1BY2NlbGVyYXRl
ZFN1cmZhY2VXYXlsYW5kOjp+QWNjZWxlcmF0ZWRTdXJmYWNlV2F5bGFuZCgpCit2b2lkIEFjY2Vs
ZXJhdGVkU3VyZmFjZVdheWxhbmQ6OmZpbmFsaXplKCkKIHsKICAgICB3bF9lZ2xfd2luZG93X2Rl
c3Ryb3kobV93aW5kb3cpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYlBhZ2UvZ3RrL0FjY2VsZXJhdGVkU3VyZmFjZVdheWxhbmQuaCBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJQYWdlL2d0ay9BY2NlbGVyYXRlZFN1cmZhY2VXYXlsYW5kLmgKaW5kZXgg
YzNjODg2ZTU5ZTkuLjQzMjAyMTViZGY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViUGFnZS9ndGsvQWNjZWxlcmF0ZWRTdXJmYWNlV2F5bGFuZC5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL2d0ay9BY2NlbGVyYXRlZFN1cmZhY2VXYXlsYW5k
LmgKQEAgLTM4LDEzICszOCwxNSBAQCBjbGFzcyBBY2NlbGVyYXRlZFN1cmZhY2VXYXlsYW5kIGZp
bmFsIDogcHVibGljIEFjY2VsZXJhdGVkU3VyZmFjZSB7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFC
TEUoQWNjZWxlcmF0ZWRTdXJmYWNlV2F5bGFuZCk7IFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwog
cHVibGljOgogICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8QWNjZWxlcmF0ZWRTdXJmYWNlV2F5
bGFuZD4gY3JlYXRlKFdlYlBhZ2UmLCBDbGllbnQmKTsKLSAgICB+QWNjZWxlcmF0ZWRTdXJmYWNl
V2F5bGFuZCgpOworICAgIH5BY2NlbGVyYXRlZFN1cmZhY2VXYXlsYW5kKCkgPSBkZWZhdWx0Owog
CiAgICAgdWludDY0X3Qgd2luZG93KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gcmVpbnRlcnBy
ZXRfY2FzdDx1aW50NjRfdD4obV93aW5kb3cpOyB9CiAgICAgdWludDY0X3Qgc3VyZmFjZUlEKCkg
Y29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gbV93ZWJQYWdlLnBhZ2VJRCgpOyB9CiAgICAgYm9vbCBy
ZXNpemUoY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYpIG92ZXJyaWRlOwogICAgIGJvb2wgc2hvdWxk
UGFpbnRNaXJyb3JlZCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0KIAorICAgIHZv
aWQgaW5pdGlhbGl6ZSgpIG92ZXJyaWRlOworICAgIHZvaWQgZmluYWxpemUoKSBvdmVycmlkZTsK
ICAgICB2b2lkIGRpZFJlbmRlckZyYW1lKCkgb3ZlcnJpZGU7CiAKIHByaXZhdGU6Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>319594</attachid>
            <date>2017-09-01 05:28:36 -0700</date>
            <delta_ts>2017-09-01 09:14:41 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>wk2-wayland-frame-callabcks.diff</filename>
            <type>text/plain</type>
            <size>10187</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFu
Z2VMb2cKaW5kZXggYjYyYjdlZTU2MWYuLjU2NzE0NmVkN2ExIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsx
LDM1IEBACisKKworICAgICAgICBbR1RLXVtXYXlsYW5kXSBPcGVuaW5nIEZlZG9yYVByb2plY3Qn
cyBwYXN0ZWJpbiBjaGV3cyBDUFUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTE3NTk0MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIFRoaXMgcmVncmVzc2VkIHdoZW4gd2UgaW50cm9kdWNlZCB0aGUgZGlzcGxh
eSByZWZyZXNoIG1vbml0b3IuIFRoZSBtb25pdG9yIHNjaGVkdWxlcyB1cGRhdGVzIGltbWVkaWF0
ZWx5LAorICAgICAgICBiZWNhdXNlIHdlIHJlbW92ZWQgdGhlIG9wdGlvbiB0byBub3QgZG8gZnJh
bWUgc3luYyBpbiBYMTEgdG8gbGV0IHN3YXBCdWZmZXJzIGRvIHRoZSB0aHJvdHRsaW5nLCBidXQg
dGhhdCdzCisgICAgICAgIG5vdCBoYXBwZW5pbmcgaW4gV2F5bGFuZCBiZWNhdXNlIHRoZSBuZXN0
ZWQgY29tcG9zaXRvciBpcyBkaXNwYXRjaGluZyBmcmFtZSBjYWxsYmFja3Mgb24gc3VyZmFjZSBj
b21taXQuCisgICAgICAgIFdlIG5lZWQgdG8gZW5zdXJlIHRoYXQgZnJhbWUgY2FsbGJhY2tzIGFy
ZSBkaXNwYXRjaGVkIG9uIGV2ZXJ5IG1vbml0b3IgcmVmcmVzaCwgYmVjYXVzZSBzd2FwQnVmZmVy
cyB3YWl0cyBmb3IKKyAgICAgICAgZnJhbWUgY2FsbGJhY2tzIHRvIGJlIHF1ZXVlZCBvbiBkaXNw
bGF5LgorCisgICAgICAgICogVUlQcm9jZXNzL2d0ay9XYXlsYW5kQ29tcG9zaXRvci5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6OldheWxhbmRDb21wb3NpdG9yOjpTdXJmYWNlOjp+U3VyZmFjZSk6IERl
c3Ryb3kgcGVuZGluZyBmcmFtZSBjYWxsYmFja3MgdG9vLgorICAgICAgICAoV2ViS2l0OjpXYXls
YW5kQ29tcG9zaXRvcjo6U3VyZmFjZTo6c2V0V2ViUGFnZSk6IEFkZCBhIHRpY2sgY2FsbGJhY2sg
dG8gdGhlIHdlYiB2aWV3IHdpZGdldCB0byBmbHVzaCBhbGwKKyAgICAgICAgY29tbWl0dGVkIGZy
YW1lIGNhbGxiYWNrcyBvbiBldmVyeSBmcmFtZSB1cGRhdGUuCisgICAgICAgIChXZWJLaXQ6Oldh
eWxhbmRDb21wb3NpdG9yOjpTdXJmYWNlOjpyZXF1ZXN0RnJhbWUpOiBBZGQgdGhlIGNhbGxiYWNr
cyB0byBtX3BlbmRpbmdGcmFtZUNhbGxiYWNrTGlzdC4KKyAgICAgICAgKFdlYktpdDo6V2F5bGFu
ZENvbXBvc2l0b3I6OlN1cmZhY2U6OmZsdXNoRnJhbWVDYWxsYmFja3MpOiBEaXNwYXRjaCBhbGwg
Y29tbWl0dGVkIGZyYW1lIGNhbGxhYmNrcy4KKyAgICAgICAgKFdlYktpdDo6V2F5bGFuZENvbXBv
c2l0b3I6OlN1cmZhY2U6OmZsdXNoUGVuZGluZ0ZyYW1lQ2FsbGJhY2tzKTogRGlzcGF0Y2ggYWxs
IHBlbmRpbmcgZnJhbWUgY2FsbGJhY2tzLgorICAgICAgICAoV2ViS2l0OjpXYXlsYW5kQ29tcG9z
aXRvcjo6U3VyZmFjZTo6Y29tbWl0KTogRG8gbm90IGRpc3BhdGNoIGZyYW1lIGNhbGxiYWNrcyBo
ZXJlLCBtb3ZlIHRoZW0gdG8gdGhlIGxpc3Qgb2YKKyAgICAgICAgY29tbWl0dGVkIGZyYW1lIGNh
bGxiYWNrcyB0aGF0IHdpbGwgYmUgZGlzcGF0Y2hlZCBvbiB0aGUgbmV4dCBmcmFtZSBjbG9jayB1
cGRhdGUuCisgICAgICAgICogVUlQcm9jZXNzL2d0ay9XYXlsYW5kQ29tcG9zaXRvci5oOgorICAg
ICAgICAoV2ViS2l0OjpXYXlsYW5kQ29tcG9zaXRvcjo6U3VyZmFjZTo6c2V0V2ViUGFnZSk6IE1v
dmVkIHRvIHRoZSBjcHAuCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL2d0ay9BY2NlbGVy
YXRlZFN1cmZhY2VXYXlsYW5kLmNwcDoKKyAgICAgICAgKFdlYktpdDo6QWNjZWxlcmF0ZWRTdXJm
YWNlV2F5bGFuZDo6QWNjZWxlcmF0ZWRTdXJmYWNlV2F5bGFuZCk6IE1vdmUgc3VyZmFjZSBpbml0
aWFsaXphdGlvbiBhbmQgZGVzdHJ1Y3Rpb24gdG8KKyAgICAgICAgdGhlIGNvbXBvc2l0aW5nIHRo
cmVhZC4KKyAgICAgICAgKFdlYktpdDo6QWNjZWxlcmF0ZWRTdXJmYWNlV2F5bGFuZDo6aW5pdGlh
bGl6ZSk6CisgICAgICAgIChXZWJLaXQ6OkFjY2VsZXJhdGVkU3VyZmFjZVdheWxhbmQ6OmZpbmFs
aXplKToKKyAgICAgICAgKFdlYktpdDo6QWNjZWxlcmF0ZWRTdXJmYWNlV2F5bGFuZDo6fkFjY2Vs
ZXJhdGVkU3VyZmFjZVdheWxhbmQpOiBEZWxldGVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvV2Vi
UGFnZS9ndGsvQWNjZWxlcmF0ZWRTdXJmYWNlV2F5bGFuZC5oOgorCiAyMDE3LTA4LTMxICBBbmR5
IEVzdGVzICA8YWVzdGVzQGFwcGxlLmNvbT4KIAogICAgICAgICBbTWFjXSBVcHN0cmVhbSBBcHBL
aXQtcmVsYXRlZCBXZWJLaXRTeXN0ZW1JbnRlcmZhY2UgZnVuY3Rpb25zCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9ndGsvV2F5bGFuZENvbXBvc2l0b3IuY3BwIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvZ3RrL1dheWxhbmRDb21wb3NpdG9yLmNwcAppbmRleCA2NDY5MmRh
OGZlOC4uNzU5NDQ0NDg4ZDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2d0
ay9XYXlsYW5kQ29tcG9zaXRvci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvZ3Rr
L1dheWxhbmRDb21wb3NpdG9yLmNwcApAQCAtMTU2LDcgKzE1NiwxMiBAQCBXYXlsYW5kQ29tcG9z
aXRvcjo6U3VyZmFjZTo6U3VyZmFjZSgpCiAKIFdheWxhbmRDb21wb3NpdG9yOjpTdXJmYWNlOjp+
U3VyZmFjZSgpCiB7CisgICAgc2V0V2ViUGFnZShudWxscHRyKTsKKwogICAgIC8vIERlc3Ryb3kg
cGVuZGluZyBmcmFtZSBjYWxsYmFja3MuCisgICAgYXV0byBwZW5kaW5nTGlzdCA9IFdURk1vdmUo
bV9wZW5kaW5nRnJhbWVDYWxsYmFja0xpc3QpOworICAgIGZvciAoYXV0byogcmVzb3VyY2UgOiBw
ZW5kaW5nTGlzdCkKKyAgICAgICAgd2xfcmVzb3VyY2VfZGVzdHJveShyZXNvdXJjZSk7CiAgICAg
YXV0byBsaXN0ID0gV1RGTW92ZShtX2ZyYW1lQ2FsbGJhY2tMaXN0KTsKICAgICBmb3IgKGF1dG8q
IHJlc291cmNlIDogbGlzdCkKICAgICAgICAgd2xfcmVzb3VyY2VfZGVzdHJveShyZXNvdXJjZSk7
CkBAIC0xNzAsNiArMTc1LDI2IEBAIFdheWxhbmRDb21wb3NpdG9yOjpTdXJmYWNlOjp+U3VyZmFj
ZSgpCiAgICAgZ2xEZWxldGVUZXh0dXJlcygxLCAmbV90ZXh0dXJlKTsKIH0KIAordm9pZCBXYXls
YW5kQ29tcG9zaXRvcjo6U3VyZmFjZTo6c2V0V2ViUGFnZShXZWJQYWdlUHJveHkqIHdlYlBhZ2Up
Cit7CisgICAgaWYgKG1fd2ViUGFnZSkgeworICAgICAgICBmbHVzaFBlbmRpbmdGcmFtZUNhbGxi
YWNrcygpOworICAgICAgICBmbHVzaEZyYW1lQ2FsbGJhY2tzKCk7CisgICAgICAgIGd0a193aWRn
ZXRfcmVtb3ZlX3RpY2tfY2FsbGJhY2sobV93ZWJQYWdlLT52aWV3V2lkZ2V0KCksIG1fdGlja0Nh
bGxiYWNrSUQpOworICAgICAgICBtX3RpY2tDYWxsYmFja0lEID0gMDsKKyAgICB9CisKKyAgICBt
X3dlYlBhZ2UgPSB3ZWJQYWdlOworICAgIGlmICghbV93ZWJQYWdlKQorICAgICAgICByZXR1cm47
CisKKyAgICBtX3RpY2tDYWxsYmFja0lEID0gZ3RrX3dpZGdldF9hZGRfdGlja19jYWxsYmFjayht
X3dlYlBhZ2UtPnZpZXdXaWRnZXQoKSwgW10oR3RrV2lkZ2V0KiwgR2RrRnJhbWVDbG9jayosIGdw
b2ludGVyIHVzZXJEYXRhKSAtPiBnYm9vbGVhbiB7CisgICAgICAgIGF1dG8qIHN1cmZhY2UgPSBz
dGF0aWNfY2FzdDxTdXJmYWNlKj4odXNlckRhdGEpOworICAgICAgICBzdXJmYWNlLT5mbHVzaEZy
YW1lQ2FsbGJhY2tzKCk7CisgICAgICAgIHJldHVybiBHX1NPVVJDRV9DT05USU5VRTsKKyAgICB9
LCB0aGlzLCBudWxscHRyKTsKK30KKwogdm9pZCBXYXlsYW5kQ29tcG9zaXRvcjo6U3VyZmFjZTo6
bWFrZVBlbmRpbmdCdWZmZXJDdXJyZW50KCkKIHsKICAgICBpZiAobV9wZW5kaW5nQnVmZmVyID09
IG1fYnVmZmVyKQpAQCAtMTk5LDEwICsyMjQsMTAgQEAgdm9pZCBXYXlsYW5kQ29tcG9zaXRvcjo6
U3VyZmFjZTo6cmVxdWVzdEZyYW1lKHN0cnVjdCB3bF9yZXNvdXJjZSogcmVzb3VyY2UpCiB7CiAg
ICAgd2xfcmVzb3VyY2Vfc2V0X2ltcGxlbWVudGF0aW9uKHJlc291cmNlLCBudWxscHRyLCB0aGlz
LCBbXShzdHJ1Y3Qgd2xfcmVzb3VyY2UqIHJlc291cmNlKSB7CiAgICAgICAgIGF1dG8qIHN1cmZh
Y2UgPSBzdGF0aWNfY2FzdDxXYXlsYW5kQ29tcG9zaXRvcjo6U3VyZmFjZSo+KHdsX3Jlc291cmNl
X2dldF91c2VyX2RhdGEocmVzb3VyY2UpKTsKLSAgICAgICAgaWYgKHNpemVfdCBpdGVtID0gc3Vy
ZmFjZS0+bV9mcmFtZUNhbGxiYWNrTGlzdC5maW5kKHJlc291cmNlKSAhPSBub3RGb3VuZCkKLSAg
ICAgICAgICAgIHN1cmZhY2UtPm1fZnJhbWVDYWxsYmFja0xpc3QucmVtb3ZlKGl0ZW0pOworICAg
ICAgICBpZiAoc2l6ZV90IGl0ZW0gPSBzdXJmYWNlLT5tX3BlbmRpbmdGcmFtZUNhbGxiYWNrTGlz
dC5maW5kKHJlc291cmNlKSAhPSBub3RGb3VuZCkKKyAgICAgICAgICAgIHN1cmZhY2UtPm1fcGVu
ZGluZ0ZyYW1lQ2FsbGJhY2tMaXN0LnJlbW92ZShpdGVtKTsKICAgICB9KTsKLSAgICBtX2ZyYW1l
Q2FsbGJhY2tMaXN0LmFwcGVuZChyZXNvdXJjZSk7CisgICAgbV9wZW5kaW5nRnJhbWVDYWxsYmFj
a0xpc3QuYXBwZW5kKHJlc291cmNlKTsKIH0KIAogYm9vbCBXYXlsYW5kQ29tcG9zaXRvcjo6U3Vy
ZmFjZTo6cHJlcGFyZVRleHR1cmVGb3JQYWludGluZyh1bnNpZ25lZCYgdGV4dHVyZSwgSW50U2l6
ZSYgdGV4dHVyZVNpemUpCkBAIC0yMTgsOCArMjQzLDMyIEBAIGJvb2wgV2F5bGFuZENvbXBvc2l0
b3I6OlN1cmZhY2U6OnByZXBhcmVUZXh0dXJlRm9yUGFpbnRpbmcodW5zaWduZWQmIHRleHR1cmUs
IEluCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKK3ZvaWQgV2F5bGFuZENvbXBvc2l0b3I6OlN1cmZh
Y2U6OmZsdXNoRnJhbWVDYWxsYmFja3MoKQoreworICAgIGF1dG8gbGlzdCA9IFdURk1vdmUobV9m
cmFtZUNhbGxiYWNrTGlzdCk7CisgICAgZm9yIChhdXRvKiByZXNvdXJjZSA6IGxpc3QpIHsKKyAg
ICAgICAgd2xfY2FsbGJhY2tfc2VuZF9kb25lKHJlc291cmNlLCAwKTsKKyAgICAgICAgd2xfcmVz
b3VyY2VfZGVzdHJveShyZXNvdXJjZSk7CisgICAgfQorfQorCit2b2lkIFdheWxhbmRDb21wb3Np
dG9yOjpTdXJmYWNlOjpmbHVzaFBlbmRpbmdGcmFtZUNhbGxiYWNrcygpCit7CisgICAgYXV0byBs
aXN0ID0gV1RGTW92ZShtX3BlbmRpbmdGcmFtZUNhbGxiYWNrTGlzdCk7CisgICAgZm9yIChhdXRv
KiByZXNvdXJjZSA6IGxpc3QpIHsKKyAgICAgICAgd2xfY2FsbGJhY2tfc2VuZF9kb25lKHJlc291
cmNlLCAwKTsKKyAgICAgICAgd2xfcmVzb3VyY2VfZGVzdHJveShyZXNvdXJjZSk7CisgICAgfQor
fQorCiB2b2lkIFdheWxhbmRDb21wb3NpdG9yOjpTdXJmYWNlOjpjb21taXQoKQogeworICAgIGlm
ICghbV93ZWJQYWdlKSB7CisgICAgICAgIG1ha2VQZW5kaW5nQnVmZmVyQ3VycmVudCgpOworICAg
ICAgICBmbHVzaFBlbmRpbmdGcmFtZUNhbGxiYWNrcygpOworICAgICAgICByZXR1cm47CisgICAg
fQorCiAgICAgRUdMRGlzcGxheSBlZ2xEaXNwbGF5ID0gUGxhdGZvcm1EaXNwbGF5OjpzaGFyZWRE
aXNwbGF5KCkuZWdsRGlzcGxheSgpOwogICAgIGlmIChtX2ltYWdlICE9IEVHTF9OT19JTUFHRV9L
SFIpCiAgICAgICAgIGVnbERlc3Ryb3lJbWFnZShlZ2xEaXNwbGF5LCBtX2ltYWdlKTsKQEAgLTIz
MCwxOCArMjc5LDExIEBAIHZvaWQgV2F5bGFuZENvbXBvc2l0b3I6OlN1cmZhY2U6OmNvbW1pdCgp
CiAgICAgbV9pbWFnZVNpemUgPSBtX3BlbmRpbmdCdWZmZXItPnNpemUoKTsKIAogICAgIG1ha2VQ
ZW5kaW5nQnVmZmVyQ3VycmVudCgpOwotICAgIGlmIChtX3dlYlBhZ2UpCi0gICAgICAgIG1fd2Vi
UGFnZS0+c2V0Vmlld05lZWRzRGlzcGxheShJbnRSZWN0KEludFBvaW50Ojp6ZXJvKCksIG1fd2Vi
UGFnZS0+dmlld1NpemUoKSkpOwogCi0gICAgLy8gRnJvbSBhIFdheWxhbmQgcG9pbnQtb2Ytdmll
dyBmcmFtZSBjYWxsYmFja3Mgc2hvdWxkIGJlIGZpcmVkIHdoZXJlIHRoZQotICAgIC8vIGNvbXBv
c2l0b3Iga25vd3MgaXQgaGFzICp1c2VkKiB0aGUgY29tbWl0dGVkIGNvbnRlbnRzLCBzbyBmaXJp
bmcgdGhlbSBoZXJlCi0gICAgLy8gY2FuIGJlIHN1cnByaXNpbmcgYnV0IHdlIGRvbid0IG5lZWQg
dGhlbSBhcyBhIHRocm90dGxpbmcgbWVjaGFuaXNtIGJlY2F1c2UKLSAgICAvLyByZW5kZXJpbmcg
c3luY2hyb25pemF0aW9uIGlzIGhhbmRsZWQgZWxzZXdoZXJlIGJ5IFdlYktpdC4KLSAgICBhdXRv
IGxpc3QgPSBXVEZNb3ZlKG1fZnJhbWVDYWxsYmFja0xpc3QpOwotICAgIGZvciAoYXV0byogcmVz
b3VyY2UgOiBsaXN0KSB7Ci0gICAgICAgIHdsX2NhbGxiYWNrX3NlbmRfZG9uZShyZXNvdXJjZSwg
MCk7Ci0gICAgICAgIHdsX3Jlc291cmNlX2Rlc3Ryb3kocmVzb3VyY2UpOwotICAgIH0KKyAgICBt
X3dlYlBhZ2UtPnNldFZpZXdOZWVkc0Rpc3BsYXkoSW50UmVjdChJbnRQb2ludDo6emVybygpLCBt
X3dlYlBhZ2UtPnZpZXdTaXplKCkpKTsKKworICAgIGF1dG8gbGlzdCA9IFdURk1vdmUobV9wZW5k
aW5nRnJhbWVDYWxsYmFja0xpc3QpOworICAgIG1fZnJhbWVDYWxsYmFja0xpc3QuYXBwZW5kVmVj
dG9yKGxpc3QpOwogfQogCiBzdGF0aWMgY29uc3Qgc3RydWN0IHdsX3N1cmZhY2VfaW50ZXJmYWNl
IHN1cmZhY2VJbnRlcmZhY2UgPSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9ndGsvV2F5bGFuZENvbXBvc2l0b3IuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2d0ay9X
YXlsYW5kQ29tcG9zaXRvci5oCmluZGV4IDE0YjlhODM2ZDk1Li45YmJlYjdhN2NkYiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvZ3RrL1dheWxhbmRDb21wb3NpdG9yLmgKKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvZ3RrL1dheWxhbmRDb21wb3NpdG9yLmgKQEAgLTg3
LDEwICs4NywxMiBAQCBwdWJsaWM6CiAgICAgICAgIHZvaWQgcmVxdWVzdEZyYW1lKHN0cnVjdCB3
bF9yZXNvdXJjZSopOwogICAgICAgICB2b2lkIGNvbW1pdCgpOwogCi0gICAgICAgIHZvaWQgc2V0
V2ViUGFnZShXZWJQYWdlUHJveHkqIHdlYlBhZ2UpIHsgbV93ZWJQYWdlID0gd2ViUGFnZTsgfQor
ICAgICAgICB2b2lkIHNldFdlYlBhZ2UoV2ViUGFnZVByb3h5Kik7CiAgICAgICAgIGJvb2wgcHJl
cGFyZVRleHR1cmVGb3JQYWludGluZyh1bnNpZ25lZCYsIFdlYkNvcmU6OkludFNpemUmKTsKIAog
ICAgIHByaXZhdGU6CisgICAgICAgIHZvaWQgZmx1c2hGcmFtZUNhbGxiYWNrcygpOworICAgICAg
ICB2b2lkIGZsdXNoUGVuZGluZ0ZyYW1lQ2FsbGJhY2tzKCk7CiAgICAgICAgIHZvaWQgbWFrZVBl
bmRpbmdCdWZmZXJDdXJyZW50KCk7CiAKICAgICAgICAgV2Vha1B0cjxCdWZmZXI+IG1fYnVmZmVy
OwpAQCAtOTgsOCArMTAwLDEwIEBAIHB1YmxpYzoKICAgICAgICAgdW5zaWduZWQgbV90ZXh0dXJl
OwogICAgICAgICBFR0xJbWFnZUtIUiBtX2ltYWdlOwogICAgICAgICBXZWJDb3JlOjpJbnRTaXpl
IG1faW1hZ2VTaXplOworICAgICAgICBWZWN0b3I8d2xfcmVzb3VyY2UqPiBtX3BlbmRpbmdGcmFt
ZUNhbGxiYWNrTGlzdDsKICAgICAgICAgVmVjdG9yPHdsX3Jlc291cmNlKj4gbV9mcmFtZUNhbGxi
YWNrTGlzdDsKICAgICAgICAgV2ViUGFnZVByb3h5KiBtX3dlYlBhZ2UgeyBudWxscHRyIH07Cisg
ICAgICAgIHVuc2lnbmVkIG1fdGlja0NhbGxiYWNrSUQgeyAwIH07CiAgICAgfTsKIAogICAgIGJv
b2wgaXNSdW5uaW5nKCkgY29uc3QgeyByZXR1cm4gISFtX2Rpc3BsYXk7IH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL2d0ay9BY2NlbGVyYXRlZFN1cmZhY2VX
YXlsYW5kLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL2d0ay9BY2NlbGVy
YXRlZFN1cmZhY2VXYXlsYW5kLmNwcAppbmRleCBjNzMzMmI2NDI0MS4uNDc4N2M5OTA0MjUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL2d0ay9BY2NlbGVyYXRl
ZFN1cmZhY2VXYXlsYW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFn
ZS9ndGsvQWNjZWxlcmF0ZWRTdXJmYWNlV2F5bGFuZC5jcHAKQEAgLTQzLDEzICs0MywxNyBAQCBz
dGQ6OnVuaXF1ZV9wdHI8QWNjZWxlcmF0ZWRTdXJmYWNlV2F5bGFuZD4gQWNjZWxlcmF0ZWRTdXJm
YWNlV2F5bGFuZDo6Y3JlYXRlKFdlYgogCiBBY2NlbGVyYXRlZFN1cmZhY2VXYXlsYW5kOjpBY2Nl
bGVyYXRlZFN1cmZhY2VXYXlsYW5kKFdlYlBhZ2UmIHdlYlBhZ2UsIENsaWVudCYgY2xpZW50KQog
ICAgIDogQWNjZWxlcmF0ZWRTdXJmYWNlKHdlYlBhZ2UsIGNsaWVudCkKLSAgICAsIG1fc3VyZmFj
ZShXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS53YXlsYW5kQ29tcG9zaXRvckRpc3BsYXkoKS0+Y3Jl
YXRlU3VyZmFjZSgpKQotICAgICwgbV93aW5kb3cod2xfZWdsX3dpbmRvd19jcmVhdGUobV9zdXJm
YWNlLmdldCgpLCBzdGQ6Om1heCgxLCBtX3NpemUud2lkdGgoKSksIHN0ZDo6bWF4KDEsIG1fc2l6
ZS5oZWlnaHQoKSkpKQogeworfQorCit2b2lkIEFjY2VsZXJhdGVkU3VyZmFjZVdheWxhbmQ6Omlu
aXRpYWxpemUoKQoreworICAgIG1fc3VyZmFjZSA9IFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLndh
eWxhbmRDb21wb3NpdG9yRGlzcGxheSgpLT5jcmVhdGVTdXJmYWNlKCk7CisgICAgbV93aW5kb3cg
PSB3bF9lZ2xfd2luZG93X2NyZWF0ZShtX3N1cmZhY2UuZ2V0KCksIHN0ZDo6bWF4KDEsIG1fc2l6
ZS53aWR0aCgpKSwgc3RkOjptYXgoMSwgbV9zaXplLmhlaWdodCgpKSk7CiAgICAgV2ViUHJvY2Vz
czo6c2luZ2xldG9uKCkud2F5bGFuZENvbXBvc2l0b3JEaXNwbGF5KCktPmJpbmRTdXJmYWNlVG9Q
YWdlKG1fc3VyZmFjZS5nZXQoKSwgbV93ZWJQYWdlKTsKIH0KIAotQWNjZWxlcmF0ZWRTdXJmYWNl
V2F5bGFuZDo6fkFjY2VsZXJhdGVkU3VyZmFjZVdheWxhbmQoKQordm9pZCBBY2NlbGVyYXRlZFN1
cmZhY2VXYXlsYW5kOjpmaW5hbGl6ZSgpCiB7CiAgICAgd2xfZWdsX3dpbmRvd19kZXN0cm95KG1f
d2luZG93KTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdl
L2d0ay9BY2NlbGVyYXRlZFN1cmZhY2VXYXlsYW5kLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViUGFnZS9ndGsvQWNjZWxlcmF0ZWRTdXJmYWNlV2F5bGFuZC5oCmluZGV4IGMzYzg4NmU1
OWU5Li40MzIwMjE1YmRmNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YlBhZ2UvZ3RrL0FjY2VsZXJhdGVkU3VyZmFjZVdheWxhbmQuaAorKysgYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViUGFnZS9ndGsvQWNjZWxlcmF0ZWRTdXJmYWNlV2F5bGFuZC5oCkBAIC0z
OCwxMyArMzgsMTUgQEAgY2xhc3MgQWNjZWxlcmF0ZWRTdXJmYWNlV2F5bGFuZCBmaW5hbCA6IHB1
YmxpYyBBY2NlbGVyYXRlZFN1cmZhY2UgewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKEFjY2Vs
ZXJhdGVkU3VyZmFjZVdheWxhbmQpOyBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoK
ICAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPEFjY2VsZXJhdGVkU3VyZmFjZVdheWxhbmQ+IGNy
ZWF0ZShXZWJQYWdlJiwgQ2xpZW50Jik7Ci0gICAgfkFjY2VsZXJhdGVkU3VyZmFjZVdheWxhbmQo
KTsKKyAgICB+QWNjZWxlcmF0ZWRTdXJmYWNlV2F5bGFuZCgpID0gZGVmYXVsdDsKIAogICAgIHVp
bnQ2NF90IHdpbmRvdygpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8
dWludDY0X3Q+KG1fd2luZG93KTsgfQogICAgIHVpbnQ2NF90IHN1cmZhY2VJRCgpIGNvbnN0IG92
ZXJyaWRlIHsgcmV0dXJuIG1fd2ViUGFnZS5wYWdlSUQoKTsgfQogICAgIGJvb2wgcmVzaXplKGNv
bnN0IFdlYkNvcmU6OkludFNpemUmKSBvdmVycmlkZTsKICAgICBib29sIHNob3VsZFBhaW50TWly
cm9yZWQoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiB0cnVlOyB9CiAKKyAgICB2b2lkIGluaXRp
YWxpemUoKSBvdmVycmlkZTsKKyAgICB2b2lkIGZpbmFsaXplKCkgb3ZlcnJpZGU7CiAgICAgdm9p
ZCBkaWRSZW5kZXJGcmFtZSgpIG92ZXJyaWRlOwogCiBwcml2YXRlOgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>319600</attachid>
            <date>2017-09-01 09:14:41 -0700</date>
            <delta_ts>2017-09-01 10:26:33 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>wk2-wayland-frame-callabcks.diff</filename>
            <type>text/plain</type>
            <size>10241</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFu
Z2VMb2cKaW5kZXggYjYyYjdlZTU2MWYuLjU3ZDZlMDI5YjQ3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsx
LDM1IEBACisyMDE3LTA5LTAxICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNnYXJjaWFAaWdhbGlh
LmNvbT4KKworICAgICAgICBbR1RLXVtXYXlsYW5kXSBPcGVuaW5nIEZlZG9yYVByb2plY3QncyBw
YXN0ZWJpbiBjaGV3cyBDUFUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTE3NTk0MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIFRoaXMgcmVncmVzc2VkIHdoZW4gd2UgaW50cm9kdWNlZCB0aGUgZGlzcGxheSBy
ZWZyZXNoIG1vbml0b3IuIFRoZSBtb25pdG9yIHNjaGVkdWxlcyB1cGRhdGVzIGltbWVkaWF0ZWx5
LAorICAgICAgICBiZWNhdXNlIHdlIHJlbW92ZWQgdGhlIG9wdGlvbiB0byBub3QgZG8gZnJhbWUg
c3luYyBpbiBYMTEgdG8gbGV0IHN3YXBCdWZmZXJzIGRvIHRoZSB0aHJvdHRsaW5nLCBidXQgdGhh
dCdzCisgICAgICAgIG5vdCBoYXBwZW5pbmcgaW4gV2F5bGFuZCBiZWNhdXNlIHRoZSBuZXN0ZWQg
Y29tcG9zaXRvciBpcyBkaXNwYXRjaGluZyBmcmFtZSBjYWxsYmFja3Mgb24gc3VyZmFjZSBjb21t
aXQuCisgICAgICAgIFdlIG5lZWQgdG8gZW5zdXJlIHRoYXQgZnJhbWUgY2FsbGJhY2tzIGFyZSBk
aXNwYXRjaGVkIG9uIGV2ZXJ5IG1vbml0b3IgcmVmcmVzaCwgYmVjYXVzZSBzd2FwQnVmZmVycyB3
YWl0cyBmb3IKKyAgICAgICAgZnJhbWUgY2FsbGJhY2tzIHRvIGJlIHF1ZXVlZCBvbiBkaXNwbGF5
LgorCisgICAgICAgICogVUlQcm9jZXNzL2d0ay9XYXlsYW5kQ29tcG9zaXRvci5jcHA6CisgICAg
ICAgIChXZWJLaXQ6OldheWxhbmRDb21wb3NpdG9yOjpTdXJmYWNlOjp+U3VyZmFjZSk6IERlc3Ry
b3kgcGVuZGluZyBmcmFtZSBjYWxsYmFja3MgdG9vLgorICAgICAgICAoV2ViS2l0OjpXYXlsYW5k
Q29tcG9zaXRvcjo6U3VyZmFjZTo6c2V0V2ViUGFnZSk6IEFkZCBhIHRpY2sgY2FsbGJhY2sgdG8g
dGhlIHdlYiB2aWV3IHdpZGdldCB0byBmbHVzaCBhbGwKKyAgICAgICAgY29tbWl0dGVkIGZyYW1l
IGNhbGxiYWNrcyBvbiBldmVyeSBmcmFtZSB1cGRhdGUuCisgICAgICAgIChXZWJLaXQ6OldheWxh
bmRDb21wb3NpdG9yOjpTdXJmYWNlOjpyZXF1ZXN0RnJhbWUpOiBBZGQgdGhlIGNhbGxiYWNrcyB0
byBtX3BlbmRpbmdGcmFtZUNhbGxiYWNrTGlzdC4KKyAgICAgICAgKFdlYktpdDo6V2F5bGFuZENv
bXBvc2l0b3I6OlN1cmZhY2U6OmZsdXNoRnJhbWVDYWxsYmFja3MpOiBEaXNwYXRjaCBhbGwgY29t
bWl0dGVkIGZyYW1lIGNhbGxhYmNrcy4KKyAgICAgICAgKFdlYktpdDo6V2F5bGFuZENvbXBvc2l0
b3I6OlN1cmZhY2U6OmZsdXNoUGVuZGluZ0ZyYW1lQ2FsbGJhY2tzKTogRGlzcGF0Y2ggYWxsIHBl
bmRpbmcgZnJhbWUgY2FsbGJhY2tzLgorICAgICAgICAoV2ViS2l0OjpXYXlsYW5kQ29tcG9zaXRv
cjo6U3VyZmFjZTo6Y29tbWl0KTogRG8gbm90IGRpc3BhdGNoIGZyYW1lIGNhbGxiYWNrcyBoZXJl
LCBtb3ZlIHRoZW0gdG8gdGhlIGxpc3Qgb2YKKyAgICAgICAgY29tbWl0dGVkIGZyYW1lIGNhbGxi
YWNrcyB0aGF0IHdpbGwgYmUgZGlzcGF0Y2hlZCBvbiB0aGUgbmV4dCBmcmFtZSBjbG9jayB1cGRh
dGUuCisgICAgICAgICogVUlQcm9jZXNzL2d0ay9XYXlsYW5kQ29tcG9zaXRvci5oOgorICAgICAg
ICAoV2ViS2l0OjpXYXlsYW5kQ29tcG9zaXRvcjo6U3VyZmFjZTo6c2V0V2ViUGFnZSk6IE1vdmVk
IHRvIHRoZSBjcHAuCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL2d0ay9BY2NlbGVyYXRl
ZFN1cmZhY2VXYXlsYW5kLmNwcDoKKyAgICAgICAgKFdlYktpdDo6QWNjZWxlcmF0ZWRTdXJmYWNl
V2F5bGFuZDo6QWNjZWxlcmF0ZWRTdXJmYWNlV2F5bGFuZCk6IE1vdmUgc3VyZmFjZSBpbml0aWFs
aXphdGlvbiBhbmQgZGVzdHJ1Y3Rpb24gdG8KKyAgICAgICAgdGhlIGNvbXBvc2l0aW5nIHRocmVh
ZC4KKyAgICAgICAgKFdlYktpdDo6QWNjZWxlcmF0ZWRTdXJmYWNlV2F5bGFuZDo6aW5pdGlhbGl6
ZSk6CisgICAgICAgIChXZWJLaXQ6OkFjY2VsZXJhdGVkU3VyZmFjZVdheWxhbmQ6OmZpbmFsaXpl
KToKKyAgICAgICAgKFdlYktpdDo6QWNjZWxlcmF0ZWRTdXJmYWNlV2F5bGFuZDo6fkFjY2VsZXJh
dGVkU3VyZmFjZVdheWxhbmQpOiBEZWxldGVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFn
ZS9ndGsvQWNjZWxlcmF0ZWRTdXJmYWNlV2F5bGFuZC5oOgorCiAyMDE3LTA4LTMxICBBbmR5IEVz
dGVzICA8YWVzdGVzQGFwcGxlLmNvbT4KIAogICAgICAgICBbTWFjXSBVcHN0cmVhbSBBcHBLaXQt
cmVsYXRlZCBXZWJLaXRTeXN0ZW1JbnRlcmZhY2UgZnVuY3Rpb25zCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9ndGsvV2F5bGFuZENvbXBvc2l0b3IuY3BwIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvZ3RrL1dheWxhbmRDb21wb3NpdG9yLmNwcAppbmRleCA2NDY5MmRhOGZl
OC4uNzU5NDQ0NDg4ZDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2d0ay9X
YXlsYW5kQ29tcG9zaXRvci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvZ3RrL1dh
eWxhbmRDb21wb3NpdG9yLmNwcApAQCAtMTU2LDcgKzE1NiwxMiBAQCBXYXlsYW5kQ29tcG9zaXRv
cjo6U3VyZmFjZTo6U3VyZmFjZSgpCiAKIFdheWxhbmRDb21wb3NpdG9yOjpTdXJmYWNlOjp+U3Vy
ZmFjZSgpCiB7CisgICAgc2V0V2ViUGFnZShudWxscHRyKTsKKwogICAgIC8vIERlc3Ryb3kgcGVu
ZGluZyBmcmFtZSBjYWxsYmFja3MuCisgICAgYXV0byBwZW5kaW5nTGlzdCA9IFdURk1vdmUobV9w
ZW5kaW5nRnJhbWVDYWxsYmFja0xpc3QpOworICAgIGZvciAoYXV0byogcmVzb3VyY2UgOiBwZW5k
aW5nTGlzdCkKKyAgICAgICAgd2xfcmVzb3VyY2VfZGVzdHJveShyZXNvdXJjZSk7CiAgICAgYXV0
byBsaXN0ID0gV1RGTW92ZShtX2ZyYW1lQ2FsbGJhY2tMaXN0KTsKICAgICBmb3IgKGF1dG8qIHJl
c291cmNlIDogbGlzdCkKICAgICAgICAgd2xfcmVzb3VyY2VfZGVzdHJveShyZXNvdXJjZSk7CkBA
IC0xNzAsNiArMTc1LDI2IEBAIFdheWxhbmRDb21wb3NpdG9yOjpTdXJmYWNlOjp+U3VyZmFjZSgp
CiAgICAgZ2xEZWxldGVUZXh0dXJlcygxLCAmbV90ZXh0dXJlKTsKIH0KIAordm9pZCBXYXlsYW5k
Q29tcG9zaXRvcjo6U3VyZmFjZTo6c2V0V2ViUGFnZShXZWJQYWdlUHJveHkqIHdlYlBhZ2UpCit7
CisgICAgaWYgKG1fd2ViUGFnZSkgeworICAgICAgICBmbHVzaFBlbmRpbmdGcmFtZUNhbGxiYWNr
cygpOworICAgICAgICBmbHVzaEZyYW1lQ2FsbGJhY2tzKCk7CisgICAgICAgIGd0a193aWRnZXRf
cmVtb3ZlX3RpY2tfY2FsbGJhY2sobV93ZWJQYWdlLT52aWV3V2lkZ2V0KCksIG1fdGlja0NhbGxi
YWNrSUQpOworICAgICAgICBtX3RpY2tDYWxsYmFja0lEID0gMDsKKyAgICB9CisKKyAgICBtX3dl
YlBhZ2UgPSB3ZWJQYWdlOworICAgIGlmICghbV93ZWJQYWdlKQorICAgICAgICByZXR1cm47CisK
KyAgICBtX3RpY2tDYWxsYmFja0lEID0gZ3RrX3dpZGdldF9hZGRfdGlja19jYWxsYmFjayhtX3dl
YlBhZ2UtPnZpZXdXaWRnZXQoKSwgW10oR3RrV2lkZ2V0KiwgR2RrRnJhbWVDbG9jayosIGdwb2lu
dGVyIHVzZXJEYXRhKSAtPiBnYm9vbGVhbiB7CisgICAgICAgIGF1dG8qIHN1cmZhY2UgPSBzdGF0
aWNfY2FzdDxTdXJmYWNlKj4odXNlckRhdGEpOworICAgICAgICBzdXJmYWNlLT5mbHVzaEZyYW1l
Q2FsbGJhY2tzKCk7CisgICAgICAgIHJldHVybiBHX1NPVVJDRV9DT05USU5VRTsKKyAgICB9LCB0
aGlzLCBudWxscHRyKTsKK30KKwogdm9pZCBXYXlsYW5kQ29tcG9zaXRvcjo6U3VyZmFjZTo6bWFr
ZVBlbmRpbmdCdWZmZXJDdXJyZW50KCkKIHsKICAgICBpZiAobV9wZW5kaW5nQnVmZmVyID09IG1f
YnVmZmVyKQpAQCAtMTk5LDEwICsyMjQsMTAgQEAgdm9pZCBXYXlsYW5kQ29tcG9zaXRvcjo6U3Vy
ZmFjZTo6cmVxdWVzdEZyYW1lKHN0cnVjdCB3bF9yZXNvdXJjZSogcmVzb3VyY2UpCiB7CiAgICAg
d2xfcmVzb3VyY2Vfc2V0X2ltcGxlbWVudGF0aW9uKHJlc291cmNlLCBudWxscHRyLCB0aGlzLCBb
XShzdHJ1Y3Qgd2xfcmVzb3VyY2UqIHJlc291cmNlKSB7CiAgICAgICAgIGF1dG8qIHN1cmZhY2Ug
PSBzdGF0aWNfY2FzdDxXYXlsYW5kQ29tcG9zaXRvcjo6U3VyZmFjZSo+KHdsX3Jlc291cmNlX2dl
dF91c2VyX2RhdGEocmVzb3VyY2UpKTsKLSAgICAgICAgaWYgKHNpemVfdCBpdGVtID0gc3VyZmFj
ZS0+bV9mcmFtZUNhbGxiYWNrTGlzdC5maW5kKHJlc291cmNlKSAhPSBub3RGb3VuZCkKLSAgICAg
ICAgICAgIHN1cmZhY2UtPm1fZnJhbWVDYWxsYmFja0xpc3QucmVtb3ZlKGl0ZW0pOworICAgICAg
ICBpZiAoc2l6ZV90IGl0ZW0gPSBzdXJmYWNlLT5tX3BlbmRpbmdGcmFtZUNhbGxiYWNrTGlzdC5m
aW5kKHJlc291cmNlKSAhPSBub3RGb3VuZCkKKyAgICAgICAgICAgIHN1cmZhY2UtPm1fcGVuZGlu
Z0ZyYW1lQ2FsbGJhY2tMaXN0LnJlbW92ZShpdGVtKTsKICAgICB9KTsKLSAgICBtX2ZyYW1lQ2Fs
bGJhY2tMaXN0LmFwcGVuZChyZXNvdXJjZSk7CisgICAgbV9wZW5kaW5nRnJhbWVDYWxsYmFja0xp
c3QuYXBwZW5kKHJlc291cmNlKTsKIH0KIAogYm9vbCBXYXlsYW5kQ29tcG9zaXRvcjo6U3VyZmFj
ZTo6cHJlcGFyZVRleHR1cmVGb3JQYWludGluZyh1bnNpZ25lZCYgdGV4dHVyZSwgSW50U2l6ZSYg
dGV4dHVyZVNpemUpCkBAIC0yMTgsOCArMjQzLDMyIEBAIGJvb2wgV2F5bGFuZENvbXBvc2l0b3I6
OlN1cmZhY2U6OnByZXBhcmVUZXh0dXJlRm9yUGFpbnRpbmcodW5zaWduZWQmIHRleHR1cmUsIElu
CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKK3ZvaWQgV2F5bGFuZENvbXBvc2l0b3I6OlN1cmZhY2U6
OmZsdXNoRnJhbWVDYWxsYmFja3MoKQoreworICAgIGF1dG8gbGlzdCA9IFdURk1vdmUobV9mcmFt
ZUNhbGxiYWNrTGlzdCk7CisgICAgZm9yIChhdXRvKiByZXNvdXJjZSA6IGxpc3QpIHsKKyAgICAg
ICAgd2xfY2FsbGJhY2tfc2VuZF9kb25lKHJlc291cmNlLCAwKTsKKyAgICAgICAgd2xfcmVzb3Vy
Y2VfZGVzdHJveShyZXNvdXJjZSk7CisgICAgfQorfQorCit2b2lkIFdheWxhbmRDb21wb3NpdG9y
OjpTdXJmYWNlOjpmbHVzaFBlbmRpbmdGcmFtZUNhbGxiYWNrcygpCit7CisgICAgYXV0byBsaXN0
ID0gV1RGTW92ZShtX3BlbmRpbmdGcmFtZUNhbGxiYWNrTGlzdCk7CisgICAgZm9yIChhdXRvKiBy
ZXNvdXJjZSA6IGxpc3QpIHsKKyAgICAgICAgd2xfY2FsbGJhY2tfc2VuZF9kb25lKHJlc291cmNl
LCAwKTsKKyAgICAgICAgd2xfcmVzb3VyY2VfZGVzdHJveShyZXNvdXJjZSk7CisgICAgfQorfQor
CiB2b2lkIFdheWxhbmRDb21wb3NpdG9yOjpTdXJmYWNlOjpjb21taXQoKQogeworICAgIGlmICgh
bV93ZWJQYWdlKSB7CisgICAgICAgIG1ha2VQZW5kaW5nQnVmZmVyQ3VycmVudCgpOworICAgICAg
ICBmbHVzaFBlbmRpbmdGcmFtZUNhbGxiYWNrcygpOworICAgICAgICByZXR1cm47CisgICAgfQor
CiAgICAgRUdMRGlzcGxheSBlZ2xEaXNwbGF5ID0gUGxhdGZvcm1EaXNwbGF5OjpzaGFyZWREaXNw
bGF5KCkuZWdsRGlzcGxheSgpOwogICAgIGlmIChtX2ltYWdlICE9IEVHTF9OT19JTUFHRV9LSFIp
CiAgICAgICAgIGVnbERlc3Ryb3lJbWFnZShlZ2xEaXNwbGF5LCBtX2ltYWdlKTsKQEAgLTIzMCwx
OCArMjc5LDExIEBAIHZvaWQgV2F5bGFuZENvbXBvc2l0b3I6OlN1cmZhY2U6OmNvbW1pdCgpCiAg
ICAgbV9pbWFnZVNpemUgPSBtX3BlbmRpbmdCdWZmZXItPnNpemUoKTsKIAogICAgIG1ha2VQZW5k
aW5nQnVmZmVyQ3VycmVudCgpOwotICAgIGlmIChtX3dlYlBhZ2UpCi0gICAgICAgIG1fd2ViUGFn
ZS0+c2V0Vmlld05lZWRzRGlzcGxheShJbnRSZWN0KEludFBvaW50Ojp6ZXJvKCksIG1fd2ViUGFn
ZS0+dmlld1NpemUoKSkpOwogCi0gICAgLy8gRnJvbSBhIFdheWxhbmQgcG9pbnQtb2YtdmlldyBm
cmFtZSBjYWxsYmFja3Mgc2hvdWxkIGJlIGZpcmVkIHdoZXJlIHRoZQotICAgIC8vIGNvbXBvc2l0
b3Iga25vd3MgaXQgaGFzICp1c2VkKiB0aGUgY29tbWl0dGVkIGNvbnRlbnRzLCBzbyBmaXJpbmcg
dGhlbSBoZXJlCi0gICAgLy8gY2FuIGJlIHN1cnByaXNpbmcgYnV0IHdlIGRvbid0IG5lZWQgdGhl
bSBhcyBhIHRocm90dGxpbmcgbWVjaGFuaXNtIGJlY2F1c2UKLSAgICAvLyByZW5kZXJpbmcgc3lu
Y2hyb25pemF0aW9uIGlzIGhhbmRsZWQgZWxzZXdoZXJlIGJ5IFdlYktpdC4KLSAgICBhdXRvIGxp
c3QgPSBXVEZNb3ZlKG1fZnJhbWVDYWxsYmFja0xpc3QpOwotICAgIGZvciAoYXV0byogcmVzb3Vy
Y2UgOiBsaXN0KSB7Ci0gICAgICAgIHdsX2NhbGxiYWNrX3NlbmRfZG9uZShyZXNvdXJjZSwgMCk7
Ci0gICAgICAgIHdsX3Jlc291cmNlX2Rlc3Ryb3kocmVzb3VyY2UpOwotICAgIH0KKyAgICBtX3dl
YlBhZ2UtPnNldFZpZXdOZWVkc0Rpc3BsYXkoSW50UmVjdChJbnRQb2ludDo6emVybygpLCBtX3dl
YlBhZ2UtPnZpZXdTaXplKCkpKTsKKworICAgIGF1dG8gbGlzdCA9IFdURk1vdmUobV9wZW5kaW5n
RnJhbWVDYWxsYmFja0xpc3QpOworICAgIG1fZnJhbWVDYWxsYmFja0xpc3QuYXBwZW5kVmVjdG9y
KGxpc3QpOwogfQogCiBzdGF0aWMgY29uc3Qgc3RydWN0IHdsX3N1cmZhY2VfaW50ZXJmYWNlIHN1
cmZhY2VJbnRlcmZhY2UgPSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9n
dGsvV2F5bGFuZENvbXBvc2l0b3IuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2d0ay9XYXls
YW5kQ29tcG9zaXRvci5oCmluZGV4IDE0YjlhODM2ZDk1Li45YmJlYjdhN2NkYiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvZ3RrL1dheWxhbmRDb21wb3NpdG9yLmgKKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvZ3RrL1dheWxhbmRDb21wb3NpdG9yLmgKQEAgLTg3LDEw
ICs4NywxMiBAQCBwdWJsaWM6CiAgICAgICAgIHZvaWQgcmVxdWVzdEZyYW1lKHN0cnVjdCB3bF9y
ZXNvdXJjZSopOwogICAgICAgICB2b2lkIGNvbW1pdCgpOwogCi0gICAgICAgIHZvaWQgc2V0V2Vi
UGFnZShXZWJQYWdlUHJveHkqIHdlYlBhZ2UpIHsgbV93ZWJQYWdlID0gd2ViUGFnZTsgfQorICAg
ICAgICB2b2lkIHNldFdlYlBhZ2UoV2ViUGFnZVByb3h5Kik7CiAgICAgICAgIGJvb2wgcHJlcGFy
ZVRleHR1cmVGb3JQYWludGluZyh1bnNpZ25lZCYsIFdlYkNvcmU6OkludFNpemUmKTsKIAogICAg
IHByaXZhdGU6CisgICAgICAgIHZvaWQgZmx1c2hGcmFtZUNhbGxiYWNrcygpOworICAgICAgICB2
b2lkIGZsdXNoUGVuZGluZ0ZyYW1lQ2FsbGJhY2tzKCk7CiAgICAgICAgIHZvaWQgbWFrZVBlbmRp
bmdCdWZmZXJDdXJyZW50KCk7CiAKICAgICAgICAgV2Vha1B0cjxCdWZmZXI+IG1fYnVmZmVyOwpA
QCAtOTgsOCArMTAwLDEwIEBAIHB1YmxpYzoKICAgICAgICAgdW5zaWduZWQgbV90ZXh0dXJlOwog
ICAgICAgICBFR0xJbWFnZUtIUiBtX2ltYWdlOwogICAgICAgICBXZWJDb3JlOjpJbnRTaXplIG1f
aW1hZ2VTaXplOworICAgICAgICBWZWN0b3I8d2xfcmVzb3VyY2UqPiBtX3BlbmRpbmdGcmFtZUNh
bGxiYWNrTGlzdDsKICAgICAgICAgVmVjdG9yPHdsX3Jlc291cmNlKj4gbV9mcmFtZUNhbGxiYWNr
TGlzdDsKICAgICAgICAgV2ViUGFnZVByb3h5KiBtX3dlYlBhZ2UgeyBudWxscHRyIH07CisgICAg
ICAgIHVuc2lnbmVkIG1fdGlja0NhbGxiYWNrSUQgeyAwIH07CiAgICAgfTsKIAogICAgIGJvb2wg
aXNSdW5uaW5nKCkgY29uc3QgeyByZXR1cm4gISFtX2Rpc3BsYXk7IH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL2d0ay9BY2NlbGVyYXRlZFN1cmZhY2VXYXls
YW5kLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL2d0ay9BY2NlbGVyYXRl
ZFN1cmZhY2VXYXlsYW5kLmNwcAppbmRleCBjNzMzMmI2NDI0MS4uNDc4N2M5OTA0MjUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL2d0ay9BY2NlbGVyYXRlZFN1
cmZhY2VXYXlsYW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9n
dGsvQWNjZWxlcmF0ZWRTdXJmYWNlV2F5bGFuZC5jcHAKQEAgLTQzLDEzICs0MywxNyBAQCBzdGQ6
OnVuaXF1ZV9wdHI8QWNjZWxlcmF0ZWRTdXJmYWNlV2F5bGFuZD4gQWNjZWxlcmF0ZWRTdXJmYWNl
V2F5bGFuZDo6Y3JlYXRlKFdlYgogCiBBY2NlbGVyYXRlZFN1cmZhY2VXYXlsYW5kOjpBY2NlbGVy
YXRlZFN1cmZhY2VXYXlsYW5kKFdlYlBhZ2UmIHdlYlBhZ2UsIENsaWVudCYgY2xpZW50KQogICAg
IDogQWNjZWxlcmF0ZWRTdXJmYWNlKHdlYlBhZ2UsIGNsaWVudCkKLSAgICAsIG1fc3VyZmFjZShX
ZWJQcm9jZXNzOjpzaW5nbGV0b24oKS53YXlsYW5kQ29tcG9zaXRvckRpc3BsYXkoKS0+Y3JlYXRl
U3VyZmFjZSgpKQotICAgICwgbV93aW5kb3cod2xfZWdsX3dpbmRvd19jcmVhdGUobV9zdXJmYWNl
LmdldCgpLCBzdGQ6Om1heCgxLCBtX3NpemUud2lkdGgoKSksIHN0ZDo6bWF4KDEsIG1fc2l6ZS5o
ZWlnaHQoKSkpKQogeworfQorCit2b2lkIEFjY2VsZXJhdGVkU3VyZmFjZVdheWxhbmQ6OmluaXRp
YWxpemUoKQoreworICAgIG1fc3VyZmFjZSA9IFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLndheWxh
bmRDb21wb3NpdG9yRGlzcGxheSgpLT5jcmVhdGVTdXJmYWNlKCk7CisgICAgbV93aW5kb3cgPSB3
bF9lZ2xfd2luZG93X2NyZWF0ZShtX3N1cmZhY2UuZ2V0KCksIHN0ZDo6bWF4KDEsIG1fc2l6ZS53
aWR0aCgpKSwgc3RkOjptYXgoMSwgbV9zaXplLmhlaWdodCgpKSk7CiAgICAgV2ViUHJvY2Vzczo6
c2luZ2xldG9uKCkud2F5bGFuZENvbXBvc2l0b3JEaXNwbGF5KCktPmJpbmRTdXJmYWNlVG9QYWdl
KG1fc3VyZmFjZS5nZXQoKSwgbV93ZWJQYWdlKTsKIH0KIAotQWNjZWxlcmF0ZWRTdXJmYWNlV2F5
bGFuZDo6fkFjY2VsZXJhdGVkU3VyZmFjZVdheWxhbmQoKQordm9pZCBBY2NlbGVyYXRlZFN1cmZh
Y2VXYXlsYW5kOjpmaW5hbGl6ZSgpCiB7CiAgICAgd2xfZWdsX3dpbmRvd19kZXN0cm95KG1fd2lu
ZG93KTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL2d0
ay9BY2NlbGVyYXRlZFN1cmZhY2VXYXlsYW5kLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViUGFnZS9ndGsvQWNjZWxlcmF0ZWRTdXJmYWNlV2F5bGFuZC5oCmluZGV4IGMzYzg4NmU1OWU5
Li40MzIwMjE1YmRmNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBh
Z2UvZ3RrL0FjY2VsZXJhdGVkU3VyZmFjZVdheWxhbmQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViUGFnZS9ndGsvQWNjZWxlcmF0ZWRTdXJmYWNlV2F5bGFuZC5oCkBAIC0zOCwx
MyArMzgsMTUgQEAgY2xhc3MgQWNjZWxlcmF0ZWRTdXJmYWNlV2F5bGFuZCBmaW5hbCA6IHB1Ymxp
YyBBY2NlbGVyYXRlZFN1cmZhY2UgewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKEFjY2VsZXJh
dGVkU3VyZmFjZVdheWxhbmQpOyBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKICAg
ICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPEFjY2VsZXJhdGVkU3VyZmFjZVdheWxhbmQ+IGNyZWF0
ZShXZWJQYWdlJiwgQ2xpZW50Jik7Ci0gICAgfkFjY2VsZXJhdGVkU3VyZmFjZVdheWxhbmQoKTsK
KyAgICB+QWNjZWxlcmF0ZWRTdXJmYWNlV2F5bGFuZCgpID0gZGVmYXVsdDsKIAogICAgIHVpbnQ2
NF90IHdpbmRvdygpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8dWlu
dDY0X3Q+KG1fd2luZG93KTsgfQogICAgIHVpbnQ2NF90IHN1cmZhY2VJRCgpIGNvbnN0IG92ZXJy
aWRlIHsgcmV0dXJuIG1fd2ViUGFnZS5wYWdlSUQoKTsgfQogICAgIGJvb2wgcmVzaXplKGNvbnN0
IFdlYkNvcmU6OkludFNpemUmKSBvdmVycmlkZTsKICAgICBib29sIHNob3VsZFBhaW50TWlycm9y
ZWQoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiB0cnVlOyB9CiAKKyAgICB2b2lkIGluaXRpYWxp
emUoKSBvdmVycmlkZTsKKyAgICB2b2lkIGZpbmFsaXplKCkgb3ZlcnJpZGU7CiAgICAgdm9pZCBk
aWRSZW5kZXJGcmFtZSgpIG92ZXJyaWRlOwogCiBwcml2YXRlOgo=
</data>
<flag name="review"
          id="339848"
          type_id="1"
          status="+"
          setter="zan"
    />
          </attachment>
      

    </bug>

</bugzilla>