<?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>53431</bug_id>
          
          <creation_ts>2011-01-31 09:39:39 -0800</creation_ts>
          <short_desc>[Qt] WebKit fails to compile for Qt when WebGL enabled</short_desc>
          <delta_ts>2011-02-14 11:48:35 -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>WebGL</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>Linux</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>Qt, QtTriaged</keywords>
          <priority>P3</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>54138</blocked>
          <everconfirmed>0</everconfirmed>
          <reporter name="Andrew Wason">rectalogic</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>adawit</cc>
    
    <cc>benjamin</cc>
    
    <cc>cmarrin</cc>
    
    <cc>commit-queue</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>342619</commentid>
    <comment_count>0</comment_count>
    <who name="Andrew Wason">rectalogic</who>
    <bug_when>2011-01-31 09:39:39 -0800</bug_when>
    <thetext>&quot;build-webkit --qt --3d-canvas&quot; fails to compile. The Qt WebGL implementation is out of sync with changes made to to the rest of the implementation. The patch from bug 53041 is needed to enable --3d-canvas. Will attach a patch shortly.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>342648</commentid>
    <comment_count>1</comment_count>
      <attachid>80653</attachid>
    <who name="Andrew Wason">rectalogic</who>
    <bug_when>2011-01-31 10:15:44 -0800</bug_when>
    <thetext>Created attachment 80653
update Qt WebGL implementation so it builds and runs</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>342651</commentid>
    <comment_count>2</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2011-01-31 10:19:29 -0800</bug_when>
    <thetext>Does that work when compiled? I don&apos;t like the idea of adding stubs just to discover later the thing is not working when running the tests.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>342668</commentid>
    <comment_count>3</comment_count>
    <who name="Andrew Wason">rectalogic</who>
    <bug_when>2011-01-31 10:37:52 -0800</bug_when>
    <thetext>(In reply to comment #2)
&gt; Does that work when compiled? I don&apos;t like the idea of adding stubs just to discover
&gt; later the thing is not working when running the tests.

Yes, it works when compiled if &quot;Toggle use of QGraphicsView&quot; is unchecked in QtTestBrowser, or if it is checked then &quot;Toggle Accelerated Compositing&quot; must be unchecked - I think this was a requirement before this patch too.

It looks like the stubbed out DrawingBuffer is only used if ACCELERATED_2D_CANVAS is enabled. The only place I can find a call to createDrawingBuffer() is in Source/WebCore/html/canvas/CanvasRenderingContext2D.cpp:CanvasRenderingContext2D::CanvasRenderingContext2D() and it is wrapped in ACCELERATED_2D_CANVAS ifdef.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>343357</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-02-01 11:08:51 -0800</bug_when>
    <thetext>Attachment 80653 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WebCore/ChangeLog&apos;, u&apos;Source/WebCor...&quot; exit_code: 1

Source/WebCore/platform/graphics/gpu/qt/DrawingBufferQt.cpp:52:  Use 0 instead of NULL.  [readability/null] [5]
Source/WebCore/platform/graphics/gpu/qt/DrawingBufferQt.cpp:58:  Use 0 instead of NULL.  [readability/null] [5]
Total errors found: 2 in 7 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>343362</commentid>
    <comment_count>5</comment_count>
      <attachid>80791</attachid>
    <who name="Andrew Wason">rectalogic</who>
    <bug_when>2011-02-01 11:14:43 -0800</bug_when>
    <thetext>Created attachment 80791
update Qt WebGL implementation so it builds and runs

change NULL to 0 to pass style-queue</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>346186</commentid>
    <comment_count>6</comment_count>
      <attachid>81372</attachid>
    <who name="Andrew Wason">rectalogic</who>
    <bug_when>2011-02-05 14:23:50 -0800</bug_when>
    <thetext>Created attachment 81372
update Qt WebGL implementation so it builds and runs

Updated patch with more complete DrawingBufferQt.cpp implementation based on DrawingBufferMac.mm</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>348120</commentid>
    <comment_count>7</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2011-02-09 03:10:22 -0800</bug_when>
    <thetext>*** Bug 54006 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>348474</commentid>
    <comment_count>8</comment_count>
    <who name="Dawit A.">adawit</who>
    <bug_when>2011-02-09 12:43:33 -0800</bug_when>
    <thetext>A site that can be used for testing:

https://cvs.khronos.org/svn/repos/registry/trunk/public/webgl/sdk/tests/webgl-conformance-tests.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>350411</commentid>
    <comment_count>9</comment_count>
    <who name="Andreas Kling">kling</who>
    <bug_when>2011-02-13 10:47:02 -0800</bug_when>
    <thetext>*** Bug 47566 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>350773</commentid>
    <comment_count>10</comment_count>
      <attachid>81372</attachid>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2011-02-14 11:12:18 -0800</bug_when>
    <thetext>Comment on attachment 81372
update Qt WebGL implementation so it builds and runs

Looks fine to me as long as it&apos;s been built and tested.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>350796</commentid>
    <comment_count>11</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2011-02-14 11:46:39 -0800</bug_when>
    <thetext>The commit-queue encountered the following flaky tests while processing attachment 81372:

http/tests/webarchive/test-preload-resources.html bug 54404 (author: ddkilzer@webkit.org)
The commit-queue is continuing to process your patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>350800</commentid>
    <comment_count>12</comment_count>
      <attachid>81372</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2011-02-14 11:48:28 -0800</bug_when>
    <thetext>Comment on attachment 81372
update Qt WebGL implementation so it builds and runs

Clearing flags on attachment: 81372

Committed r78495: &lt;http://trac.webkit.org/changeset/78495&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>350801</commentid>
    <comment_count>13</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2011-02-14 11:48:35 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>80653</attachid>
            <date>2011-01-31 10:15:44 -0800</date>
            <delta_ts>2011-02-01 11:14:43 -0800</delta_ts>
            <desc>update Qt WebGL implementation so it builds and runs</desc>
            <filename>svn-webgl-build.diff</filename>
            <type>text/plain</type>
            <size>12372</size>
            <attacher name="Andrew Wason">rectalogic</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDc3MTM2KQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsNDQgQEAKKzIwMTEtMDEtMzEgIEFuZHJldyBX
YXNvbiAgPHJlY3RhbG9naWNAcmVjdGFsb2dpYy5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV2ViS2l0IGZhaWxzIHRvIGNvbXBpbGUgZm9yIFF0
IHdoZW4gV2ViR0wgZW5hYmxlZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9NTM0MzEKKworCisgICAgICAgICogV2ViQ29yZS5wcm86CisgICAgICAgICAg
QWRkIHNvdXJjZSBhbmQgaGVhZGVyIGZpbGVzIGFuZCBpbmNsdWRlIGRpcmVjdG9yeSB0byBRdCBw
cm9qZWN0LgorICAgICAgICAqIGh0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dC5jcHA6
CisgICAgICAgICAgRmlsZSB1c2VzICdlbWl0JyB3aGljaCBpcyBhIFF0IGtleXdvcmQgLSAjdW5k
ZWYgZW1pdC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9ncHUvcXQ6IEFkZGVkLgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dwdS9xdC9EcmF3aW5nQnVmZmVyUXQuY3BwOiBBZGRl
ZC4KKyAgICAgICAgICBTdHViYmVkIG91dCBpbXBsZW1lbnRhdGlvbiBvZiBEcmF3aW5nQnVmZmVy
IGZvciBRdC4KKyAgICAgICAgKFdlYkNvcmU6OkRyYXdpbmdCdWZmZXI6OkRyYXdpbmdCdWZmZXIp
OgorICAgICAgICAoV2ViQ29yZTo6RHJhd2luZ0J1ZmZlcjo6fkRyYXdpbmdCdWZmZXIpOgorICAg
ICAgICAoV2ViQ29yZTo6RHJhd2luZ0J1ZmZlcjo6ZGlkUmVzZXQpOgorICAgICAgICAoV2ViQ29y
ZTo6RHJhd2luZ0J1ZmZlcjo6cGxhdGZvcm1MYXllcik6CisgICAgICAgIChXZWJDb3JlOjpEcmF3
aW5nQnVmZmVyOjpwbGF0Zm9ybUNvbG9yQnVmZmVyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9xdC9FeHRlbnNpb25zM0RRdC5jcHA6CisgICAgICAgICAgU3R1YiBpbXBsZW1lbnRhdGlv
biBmb3IgcHVyZSB2aXJ0dWFsIG1ldGhvZHMgYWRkZWQgdG8gRXh0ZW5zaW9uczNELmgKKyAgICAg
ICAgKFdlYkNvcmU6OkV4dGVuc2lvbnMzRFF0OjpibGl0RnJhbWVidWZmZXIpOgorICAgICAgICAo
V2ViQ29yZTo6RXh0ZW5zaW9uczNEUXQ6OnJlbmRlcmJ1ZmZlclN0b3JhZ2VNdWx0aXNhbXBsZSk6
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvcXQvRXh0ZW5zaW9uczNEUXQuaDoKKyAgICAg
ICAgICBEZWNsYXJlIG5ldyBtZXRob2RzIGFkZGVkIHRvIEV4dGVuc2lvbnMzRC5oCisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvcXQvR3JhcGhpY3NDb250ZXh0M0RRdC5jcHA6CisgICAgICAg
ICAgUmVtb3ZlIG1ldGhvZCBpbXBsZW1lbnRhdGlvbnMgbm8gbG9uZ2VyIGluIEdyYXBoaWNzQ29u
dGV4dDNELmguCisgICAgICAgICAgQ2hhbmdlIG1fc3ludGhldGljRXJyb3JzIHRvIHVzZSB1bnNp
Z25lZCBpbnQgdG8gbWF0Y2ggbmV3CisgICAgICAgICAgR0MzRGVudW0gdHlwZS4KKyAgICAgICAg
KFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDNEOjpjcmVhdGUpOgorICAgICAgICAgQ2hhbmdlIHJl
dHVybiB0eXBlIHRvIG1hdGNoIEdyYXBoaWNzQ29udGV4dDNELmgKKyAgICAgICAgKFdlYkNvcmU6
OkdyYXBoaWNzQ29udGV4dDNEOjpsaW5lV2lkdGgpOgorICAgICAgICAgQ2hhbmdlIGFyZ3VtZW50
IHR5cGUgdG8gR0MzRGZsb2F0IHRvIG1hdGNoIEdyYXBoaWNzQ29udGV4dDNELmgKKyAgICAgICAg
KFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDNEOjpnZXRVbmlmb3JtTG9jYXRpb24pOgorICAgICAg
ICAgQ2hhbmdlIHJldHVybiB0eXBlIHRvIEdDM0RmbG9hdCB0byBtYXRjaCBHcmFwaGljc0NvbnRl
eHQzRC5oCisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQzRDo6Z2V0RXh0ZW5zaW9u
cyk6CisgICAgICAgICBOZWVkIHRvIGNhbGwgZ2V0KCkgb24gT3duUHRyLgorICAgICAgICAoV2Vi
Q29yZTo6R3JhcGhpY3NDb250ZXh0M0Q6OmdldEltYWdlRGF0YSk6CisgICAgICAgICBSZW5hbWUg
ZW51bSB2YWx1ZXMgdG8gbWF0Y2ggZGVjbGFyYXRpb25zIGluIEdyYXBoaWNzQ29udGV4dDNELmgK
KwogMjAxMS0wMS0yOCAgUGF2ZWwgRmVsZG1hbiAgPHBmZWxkbWFuQGNocm9taXVtLm9yZz4KIAog
ICAgICAgICBSZXZpZXdlZCBieSBZdXJ5IFNlbWlraGF0c2t5LgpJbmRleDogU291cmNlL1dlYkNv
cmUvV2ViQ29yZS5wcm8KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvV2ViQ29yZS5wcm8J
KHJldmlzaW9uIDc3MTMwKQorKysgU291cmNlL1dlYkNvcmUvV2ViQ29yZS5wcm8JKHdvcmtpbmcg
Y29weSkKQEAgLTM4MTQsNiArMzgxNCw3IEBAIGNvbnRhaW5zKERFRklORVMsIEVOQUJMRV9XRUJH
TD0xKSB7CiAgICAgICAgIGh0bWwvY2FudmFzL1dlYkdMQWN0aXZlSW5mby5oIFwKICAgICAgICAg
aHRtbC9jYW52YXMvV2ViR0xCdWZmZXIuaCBcCiAgICAgICAgIGh0bWwvY2FudmFzL1dlYkdMQ29u
dGV4dEF0dHJpYnV0ZXMuaCBcCisgICAgICAgIGh0bWwvY2FudmFzL1dlYkdMQ29udGV4dEV2ZW50
LmggXAogICAgICAgICBodG1sL2NhbnZhcy9XZWJHTEV4dGVuc2lvbi5oIFwKICAgICAgICAgaHRt
bC9jYW52YXMvV2ViR0xGcmFtZWJ1ZmZlci5oIFwKICAgICAgICAgaHRtbC9jYW52YXMvV2ViR0xH
ZXRJbmZvLmggXApAQCAtMzgyOCw2ICszODI5LDcgQEAgY29udGFpbnMoREVGSU5FUywgRU5BQkxF
X1dFQkdMPTEpIHsKICAgICAgICAgaHRtbC9jYW52YXMvV2ViS2l0TG9zZUNvbnRleHQuaCBcCiAg
ICAgICAgIHBsYXRmb3JtL2dyYXBoaWNzL0V4dGVuc2lvbnMzRC5oIFwKICAgICAgICAgcGxhdGZv
cm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0M0QuaCBcCisgICAgICAgIHBsYXRmb3JtL2dyYXBo
aWNzL2dwdS9EcmF3aW5nQnVmZmVyLmggXAogICAgICAgICBwbGF0Zm9ybS9ncmFwaGljcy9xdC9F
eHRlbnNpb25zM0RRdC5oCiAKICAgICAhdjggewpAQCAtMzgzOSw2ICszODQxLDcgQEAgY29udGFp
bnMoREVGSU5FUywgRU5BQkxFX1dFQkdMPTEpIHsKICAgICAgICAgaHRtbC9jYW52YXMvV2ViR0xP
YmplY3QuY3BwIFwKICAgICAgICAgaHRtbC9jYW52YXMvV2ViR0xCdWZmZXIuY3BwIFwKICAgICAg
ICAgaHRtbC9jYW52YXMvV2ViR0xDb250ZXh0QXR0cmlidXRlcy5jcHAgXAorICAgICAgICBodG1s
L2NhbnZhcy9XZWJHTENvbnRleHRFdmVudC5jcHAgXAogICAgICAgICBodG1sL2NhbnZhcy9XZWJH
TEV4dGVuc2lvbi5jcHAgXAogICAgICAgICBodG1sL2NhbnZhcy9XZWJHTEZyYW1lYnVmZmVyLmNw
cCBcCiAgICAgICAgIGh0bWwvY2FudmFzL1dlYkdMR2V0SW5mby5jcHAgXApAQCAtMzg1Miw4ICsz
ODU1LDEyIEBAIGNvbnRhaW5zKERFRklORVMsIEVOQUJMRV9XRUJHTD0xKSB7CiAgICAgICAgIGh0
bWwvY2FudmFzL1dlYkdMVW5pZm9ybUxvY2F0aW9uLmNwcCBcCiAgICAgICAgIGh0bWwvY2FudmFz
L1dlYktpdExvc2VDb250ZXh0LmNwcCBcCiAgICAgICAgIHBsYXRmb3JtL2dyYXBoaWNzL0dyYXBo
aWNzQ29udGV4dDNELmNwcCBcCisgICAgICAgIHBsYXRmb3JtL2dyYXBoaWNzL2dwdS9EcmF3aW5n
QnVmZmVyLmNwcCBcCisgICAgICAgIHBsYXRmb3JtL2dyYXBoaWNzL2dwdS9xdC9EcmF3aW5nQnVm
ZmVyUXQuY3BwIFwKICAgICAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvcXQvRXh0ZW5zaW9uczNEUXQu
Y3BwIFwKICAgICAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvcXQvR3JhcGhpY3NDb250ZXh0M0RRdC5j
cHAKKworICAgICAgICBJTkNMVURFUEFUSCArPSAkJFBXRC9wbGF0Zm9ybS9ncmFwaGljcy9ncHUK
IH0KIAogY29udGFpbnMoREVGSU5FUywgRU5BQkxFX1NZTUJJQU5fRElBTE9HX1BST1ZJREVSUykg
ewpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRl
cmluZ0NvbnRleHQuY3BwCShyZXZpc2lvbiA3NzEzMCkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwv
Y2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTY1LDYg
KzY1LDEwIEBACiAjaW5jbHVkZSA8d3RmL1Bhc3NPd25BcnJheVB0ci5oPgogI2luY2x1ZGUgPHd0
Zi90ZXh0L1N0cmluZ0J1aWxkZXIuaD4KIAorI2lmIFBMQVRGT1JNKFFUKQorI3VuZGVmIGVtaXQK
KyNlbmRpZgorCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNvbnN0IGRvdWJsZSBzZWNvbmRzQmV0
d2VlblJlc3RvcmVBdHRlbXB0cyA9IDEuMDsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2dwdS9xdC9EcmF3aW5nQnVmZmVyUXQuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9xdC9EcmF3aW5nQnVmZmVyUXQuY3BwCShy
ZXZpc2lvbiAwKQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L3F0L0Ry
YXdpbmdCdWZmZXJRdC5jcHAJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNjMgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTEgQW5kcmV3IFdhc29uIChyZWN0YWxvZ2ljQHJlY3RhbG9naWMuY29t
KQorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMu
IE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJP
RklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisK
KyNpbmNsdWRlICJjb25maWcuaCIKKworI2lmIEVOQUJMRShBQ0NFTEVSQVRFRF8yRF9DQU5WQVMp
IHx8IEVOQUJMRShXRUJHTCkKKworI2luY2x1ZGUgIkRyYXdpbmdCdWZmZXIuaCIKKworbmFtZXNw
YWNlIFdlYkNvcmUgeworCitEcmF3aW5nQnVmZmVyOjpEcmF3aW5nQnVmZmVyKEdyYXBoaWNzQ29u
dGV4dDNEKiBjb250ZXh0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBJbnRT
aXplJiBzaXplLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sIG11bHRpc2FtcGxl
RXh0ZW5zaW9uU3VwcG9ydGVkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sIHBh
Y2tlZERlcHRoU3RlbmNpbEV4dGVuc2lvblN1cHBvcnRlZCkKK3sKK30KKworRHJhd2luZ0J1ZmZl
cjo6fkRyYXdpbmdCdWZmZXIoKQoreworfQorCit2b2lkIERyYXdpbmdCdWZmZXI6OmRpZFJlc2V0
KCkKK3sKK30KKworI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKK1BsYXRmb3JtTGF5
ZXIqIERyYXdpbmdCdWZmZXI6OnBsYXRmb3JtTGF5ZXIoKQoreworICAgIHJldHVybiBOVUxMOwor
fQorI2VuZGlmCisKK1BsYXRmb3JtM0RPYmplY3QgRHJhd2luZ0J1ZmZlcjo6cGxhdGZvcm1Db2xv
ckJ1ZmZlcigpIGNvbnN0Cit7CisgICAgcmV0dXJuIE5VTEw7Cit9CisKK30KKworI2VuZGlmCklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9xdC9FeHRlbnNpb25zM0RRdC5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvcXQvRXh0
ZW5zaW9uczNEUXQuY3BwCShyZXZpc2lvbiA3NzEzMCkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL3F0L0V4dGVuc2lvbnMzRFF0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTYs
NiArNTYsMTQgQEAgaW50IEV4dGVuc2lvbnMzRFF0OjpnZXRHcmFwaGljc1Jlc2V0U3RhdAogICAg
IHJldHVybiBHcmFwaGljc0NvbnRleHQzRDo6Tk9fRVJST1I7CiB9CiAKK3ZvaWQgRXh0ZW5zaW9u
czNEUXQ6OmJsaXRGcmFtZWJ1ZmZlcihsb25nIHNyY1gwLCBsb25nIHNyY1kwLCBsb25nIHNyY1gx
LCBsb25nIHNyY1kxLCBsb25nIGRzdFgwLCBsb25nIGRzdFkwLCBsb25nIGRzdFgxLCBsb25nIGRz
dFkxLCB1bnNpZ25lZCBsb25nIG1hc2ssIHVuc2lnbmVkIGxvbmcgZmlsdGVyKQoreworfQorCit2
b2lkIEV4dGVuc2lvbnMzRFF0OjpyZW5kZXJidWZmZXJTdG9yYWdlTXVsdGlzYW1wbGUodW5zaWdu
ZWQgbG9uZyB0YXJnZXQsIHVuc2lnbmVkIGxvbmcgc2FtcGxlcywgdW5zaWduZWQgbG9uZyBpbnRl
cm5hbGZvcm1hdCwgdW5zaWduZWQgbG9uZyB3aWR0aCwgdW5zaWduZWQgbG9uZyBoZWlnaHQpCit7
Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIEVOQUJMRShXRUJHTCkK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3F0L0V4dGVuc2lvbnMzRFF0
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvcXQvRXh0
ZW5zaW9uczNEUXQuaAkocmV2aXNpb24gNzcxMzApCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9xdC9FeHRlbnNpb25zM0RRdC5oCSh3b3JraW5nIGNvcHkpCkBAIC0zOCw2ICsz
OCw4IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgc3VwcG9ydHMoY29uc3QgU3RyaW5nJik7
CiAgICAgdmlydHVhbCB2b2lkIGVuc3VyZUVuYWJsZWQoY29uc3QgU3RyaW5nJik7CiAgICAgdmly
dHVhbCBpbnQgZ2V0R3JhcGhpY3NSZXNldFN0YXR1c0FSQigpOworICAgIHZpcnR1YWwgdm9pZCBi
bGl0RnJhbWVidWZmZXIobG9uZyBzcmNYMCwgbG9uZyBzcmNZMCwgbG9uZyBzcmNYMSwgbG9uZyBz
cmNZMSwgbG9uZyBkc3RYMCwgbG9uZyBkc3RZMCwgbG9uZyBkc3RYMSwgbG9uZyBkc3RZMSwgdW5z
aWduZWQgbG9uZyBtYXNrLCB1bnNpZ25lZCBsb25nIGZpbHRlcik7CisgICAgdmlydHVhbCB2b2lk
IHJlbmRlcmJ1ZmZlclN0b3JhZ2VNdWx0aXNhbXBsZSh1bnNpZ25lZCBsb25nIHRhcmdldCwgdW5z
aWduZWQgbG9uZyBzYW1wbGVzLCB1bnNpZ25lZCBsb25nIGludGVybmFsZm9ybWF0LCB1bnNpZ25l
ZCBsb25nIHdpZHRoLCB1bnNpZ25lZCBsb25nIGhlaWdodCk7ICAgIAogCiBwcml2YXRlOgogICAg
IC8vIFRoaXMgY2xhc3Mgb25seSBuZWVkcyB0byBiZSBpbnN0YW50aWF0ZWQgYnkgR3JhcGhpY3ND
b250ZXh0M0QgaW1wbGVtZW50YXRpb25zLgpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvcXQvR3JhcGhpY3NDb250ZXh0M0RRdC5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvcXQvR3JhcGhpY3NDb250ZXh0M0RRdC5jcHAJKHJl
dmlzaW9uIDc3MTMwKQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvcXQvR3Jh
cGhpY3NDb250ZXh0M0RRdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI1Miw3ICsyNTIsNyBAQCBw
dWJsaWM6CiAgICAgR0x1aW50IG1fY3VycmVudEZibzsKICAgICBHTHVpbnQgbV9kZXB0aEJ1ZmZl
cjsKICAgICBRSW1hZ2UgbV9waXhlbHM7Ci0gICAgTGlzdEhhc2hTZXQ8dW5zaWduZWQgbG9uZz4g
bV9zeW50aGV0aWNFcnJvcnM7CisgICAgTGlzdEhhc2hTZXQ8dW5zaWduZWQgaW50PiBtX3N5bnRo
ZXRpY0Vycm9yczsKIAogICAgIE93blB0cjxFeHRlbnNpb25zM0RRdD4gbV9leHRlbnNpb25zOwog
CkBAIC0yNzcsMjQgKzI3Nyw2IEBAIGJvb2wgR3JhcGhpY3NDb250ZXh0M0Q6OmlzR0xFUzJDb21w
bGlhbnQKICNlbmRpZgogfQogCi0vLyBFdmVuIHdpdGggdW5kZXJseWluZyBHTEVTMiBkcml2ZXIs
IHRoZSBiZWxvdyBmbGFncyBzaG91bGQgc3RpbGwgYmUgc2V0IHRvCi0vLyBmYWxzZSBpZiBleHRl
bnRpb25zIGV4aXN0IChhbmQgdGhleSBhbG1vc3QgYWx3YXlzIGRvKS4KLWJvb2wgR3JhcGhpY3ND
b250ZXh0M0Q6OmlzR0xFUzJOUE9UU3RyaWN0KCkgY29uc3QKLXsKLSAgICByZXR1cm4gZmFsc2U7
Ci19Ci0KLWJvb2wgR3JhcGhpY3NDb250ZXh0M0Q6OmlzRXJyb3JHZW5lcmF0ZWRPbk91dE9mQm91
bmRzQWNjZXNzZXMoKSBjb25zdAotewotICAgIHJldHVybiBmYWxzZTsKLX0KLQotaW50IEdyYXBo
aWNzQ29udGV4dDNEOjpnZXRHcmFwaGljc1Jlc2V0U3RhdHVzQVJCKCkKLXsKLSAgICByZXR1cm4g
Tk9fRVJST1I7Ci19Ci0KLSAKIEdyYXBoaWNzQ29udGV4dDNESW50ZXJuYWw6OkdyYXBoaWNzQ29u
dGV4dDNESW50ZXJuYWwoR3JhcGhpY3NDb250ZXh0M0Q6OkF0dHJpYnV0ZXMgYXR0cnMsIEhvc3RX
aW5kb3cqIGhvc3RXaW5kb3cpCiAgICAgOiBtX2F0dHJzKGF0dHJzKQogICAgICwgbV9ob3N0V2lu
ZG93KGhvc3RXaW5kb3cpCkBAIC00OTksMTIgKzQ4MSwxMiBAQCB2b2lkKiBHcmFwaGljc0NvbnRl
eHQzREludGVybmFsOjpnZXRQcm9jCiAgICAgcmV0dXJuIDA7CiB9CiAKLVBhc3NPd25QdHI8R3Jh
cGhpY3NDb250ZXh0M0Q+IEdyYXBoaWNzQ29udGV4dDNEOjpjcmVhdGUoR3JhcGhpY3NDb250ZXh0
M0Q6OkF0dHJpYnV0ZXMgYXR0cnMsIEhvc3RXaW5kb3cqIGhvc3RXaW5kb3csIEdyYXBoaWNzQ29u
dGV4dDNEOjpSZW5kZXJTdHlsZSByZW5kZXJTdHlsZSkKK1Bhc3NSZWZQdHI8R3JhcGhpY3NDb250
ZXh0M0Q+IEdyYXBoaWNzQ29udGV4dDNEOjpjcmVhdGUoR3JhcGhpY3NDb250ZXh0M0Q6OkF0dHJp
YnV0ZXMgYXR0cnMsIEhvc3RXaW5kb3cqIGhvc3RXaW5kb3csIEdyYXBoaWNzQ29udGV4dDNEOjpS
ZW5kZXJTdHlsZSByZW5kZXJTdHlsZSkKIHsKICAgICAvLyBUaGlzIGltcGxlbWVudGF0aW9uIGRv
ZXNuJ3QgY3VycmVudGx5IHN1cHBvcnQgcmVuZGVyaW5nIGRpcmVjdGx5IHRvIHRoZSBIb3N0V2lu
ZG93LgogICAgIGlmIChyZW5kZXJTdHlsZSA9PSBSZW5kZXJEaXJlY3RseVRvSG9zdFdpbmRvdykK
ICAgICAgICAgcmV0dXJuIDA7Ci0gICAgT3duUHRyPEdyYXBoaWNzQ29udGV4dDNEPiBjb250ZXh0
KG5ldyBHcmFwaGljc0NvbnRleHQzRChhdHRycywgaG9zdFdpbmRvdywgZmFsc2UpKTsKKyAgICBS
ZWZQdHI8R3JhcGhpY3NDb250ZXh0M0Q+IGNvbnRleHQgPSBhZG9wdFJlZihuZXcgR3JhcGhpY3ND
b250ZXh0M0QoYXR0cnMsIGhvc3RXaW5kb3csIGZhbHNlKSk7CiAgICAgcmV0dXJuIGNvbnRleHQt
Pm1faW50ZXJuYWwgPyBjb250ZXh0LnJlbGVhc2UoKSA6IDA7CiB9CiAKQEAgLTEwMzgsNyArMTAy
MCw3IEBAIEdDM0Rib29sZWFuIEdyYXBoaWNzQ29udGV4dDNEOjppc1RleHR1cmUKICAgICByZXR1
cm4gZ2xJc1RleHR1cmUodGV4dHVyZSk7CiB9CiAKLXZvaWQgR3JhcGhpY3NDb250ZXh0M0Q6Omxp
bmVXaWR0aChkb3VibGUgd2lkdGgpCit2b2lkIEdyYXBoaWNzQ29udGV4dDNEOjpsaW5lV2lkdGgo
R0MzRGZsb2F0IHdpZHRoKQogewogICAgIG1faW50ZXJuYWwtPm1fZ2xXaWRnZXQtPm1ha2VDdXJy
ZW50KCk7CiAgICAgZ2xMaW5lV2lkdGgoc3RhdGljX2Nhc3Q8ZmxvYXQ+KHdpZHRoKSk7CkBAIC0x
NDg5LDcgKzE0NzEsNyBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dDNEOjpnZXRVbmlmb3JtaXYoUGxh
CiAgICAgbV9pbnRlcm5hbC0+Z2V0VW5pZm9ybWl2KHByb2dyYW0sIGxvY2F0aW9uLCB2YWx1ZSk7
CiB9CiAKLWxvbmcgR3JhcGhpY3NDb250ZXh0M0Q6OmdldFVuaWZvcm1Mb2NhdGlvbihQbGF0Zm9y
bTNET2JqZWN0IHByb2dyYW0sIGNvbnN0IFN0cmluZyYgbmFtZSkKK0dDM0RpbnQgR3JhcGhpY3ND
b250ZXh0M0Q6OmdldFVuaWZvcm1Mb2NhdGlvbihQbGF0Zm9ybTNET2JqZWN0IHByb2dyYW0sIGNv
bnN0IFN0cmluZyYgbmFtZSkKIHsKICAgICBBU1NFUlQocHJvZ3JhbSk7CiAgICAgCkBAIC0xNjIw
LDcgKzE2MDIsNyBAQCBFeHRlbnNpb25zM0QqIEdyYXBoaWNzQ29udGV4dDNEOjpnZXRFeHRlCiB7
CiAgICAgaWYgKCFtX2ludGVybmFsLT5tX2V4dGVuc2lvbnMpCiAgICAgICAgIG1faW50ZXJuYWwt
Pm1fZXh0ZW5zaW9ucyA9IGFkb3B0UHRyKG5ldyBFeHRlbnNpb25zM0RRdCk7Ci0gICAgcmV0dXJu
IG1faW50ZXJuYWwtPm1fZXh0ZW5zaW9uczsKKyAgICByZXR1cm4gbV9pbnRlcm5hbC0+bV9leHRl
bnNpb25zLmdldCgpOwogfQogCiBib29sIEdyYXBoaWNzQ29udGV4dDNEOjpnZXRJbWFnZURhdGEo
SW1hZ2UqIGltYWdlLApAQCAtMTYzNywxMyArMTYxOSwxMyBAQCBib29sIEdyYXBoaWNzQ29udGV4
dDNEOjpnZXRJbWFnZURhdGEoSW1hCiAgICAgaWYgKCFuYXRpdmVQaXhtYXApCiAgICAgICAgIHJl
dHVybiBmYWxzZTsKIAotICAgIEFscGhhT3AgbmVlZGVkQWxwaGFPcCA9IGtBbHBoYURvTm90aGlu
ZzsKKyAgICBBbHBoYU9wIG5lZWRlZEFscGhhT3AgPSBBbHBoYURvTm90aGluZzsKICAgICBpZiAo
IXByZW11bHRpcGx5QWxwaGEpCiAgICAgICAgIC8vIEZJWE1FOiBtdXN0IGZldGNoIHRoZSBpbWFn
ZSBkYXRhIGJlZm9yZSB0aGUgcHJlbXVsdGlwbGljYXRpb24gc3RlcAotICAgICAgICBuZWVkZWRB
bHBoYU9wID0ga0FscGhhRG9Vbm11bHRpcGx5OworICAgICAgICBuZWVkZWRBbHBoYU9wID0gQWxw
aGFEb1VubXVsdGlwbHk7CiAgICAgUUltYWdlIG5hdGl2ZUltYWdlID0gbmF0aXZlUGl4bWFwLT50
b0ltYWdlKCkuY29udmVydFRvRm9ybWF0KFFJbWFnZTo6Rm9ybWF0X0FSR0IzMik7CiAgICAgb3V0
cHV0VmVjdG9yLnJlc2l6ZShuYXRpdmVJbWFnZS5ieXRlQ291bnQoKSk7Ci0gICAgcmV0dXJuIHBh
Y2tQaXhlbHMobmF0aXZlSW1hZ2UucmdiU3dhcHBlZCgpLmJpdHMoKSwga1NvdXJjZUZvcm1hdFJH
QkE4LCBpbWFnZS0+d2lkdGgoKSwgaW1hZ2UtPmhlaWdodCgpLCAwLAorICAgIHJldHVybiBwYWNr
UGl4ZWxzKG5hdGl2ZUltYWdlLnJnYlN3YXBwZWQoKS5iaXRzKCksIFNvdXJjZUZvcm1hdFJHQkE4
LCBpbWFnZS0+d2lkdGgoKSwgaW1hZ2UtPmhlaWdodCgpLCAwLAogICAgICAgICAgICAgICAgICAg
ICAgIGZvcm1hdCwgdHlwZSwgbmVlZGVkQWxwaGFPcCwgb3V0cHV0VmVjdG9yLmRhdGEoKSk7CiB9
CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>80791</attachid>
            <date>2011-02-01 11:14:43 -0800</date>
            <delta_ts>2011-02-05 14:23:50 -0800</delta_ts>
            <desc>update Qt WebGL implementation so it builds and runs</desc>
            <filename>webgl-build.diff</filename>
            <type>text/plain</type>
            <size>12366</size>
            <attacher name="Andrew Wason">rectalogic</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDc3MTM2KQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsNDQgQEAKKzIwMTEtMDEtMzEgIEFuZHJldyBX
YXNvbiAgPHJlY3RhbG9naWNAcmVjdGFsb2dpYy5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV2ViS2l0IGZhaWxzIHRvIGNvbXBpbGUgZm9yIFF0
IHdoZW4gV2ViR0wgZW5hYmxlZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9NTM0MzEKKworCisgICAgICAgICogV2ViQ29yZS5wcm86CisgICAgICAgICAg
QWRkIHNvdXJjZSBhbmQgaGVhZGVyIGZpbGVzIGFuZCBpbmNsdWRlIGRpcmVjdG9yeSB0byBRdCBw
cm9qZWN0LgorICAgICAgICAqIGh0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dC5jcHA6
CisgICAgICAgICAgRmlsZSB1c2VzICdlbWl0JyB3aGljaCBpcyBhIFF0IGtleXdvcmQgLSAjdW5k
ZWYgZW1pdC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9ncHUvcXQ6IEFkZGVkLgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dwdS9xdC9EcmF3aW5nQnVmZmVyUXQuY3BwOiBBZGRl
ZC4KKyAgICAgICAgICBTdHViYmVkIG91dCBpbXBsZW1lbnRhdGlvbiBvZiBEcmF3aW5nQnVmZmVy
IGZvciBRdC4KKyAgICAgICAgKFdlYkNvcmU6OkRyYXdpbmdCdWZmZXI6OkRyYXdpbmdCdWZmZXIp
OgorICAgICAgICAoV2ViQ29yZTo6RHJhd2luZ0J1ZmZlcjo6fkRyYXdpbmdCdWZmZXIpOgorICAg
ICAgICAoV2ViQ29yZTo6RHJhd2luZ0J1ZmZlcjo6ZGlkUmVzZXQpOgorICAgICAgICAoV2ViQ29y
ZTo6RHJhd2luZ0J1ZmZlcjo6cGxhdGZvcm1MYXllcik6CisgICAgICAgIChXZWJDb3JlOjpEcmF3
aW5nQnVmZmVyOjpwbGF0Zm9ybUNvbG9yQnVmZmVyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9xdC9FeHRlbnNpb25zM0RRdC5jcHA6CisgICAgICAgICAgU3R1YiBpbXBsZW1lbnRhdGlv
biBmb3IgcHVyZSB2aXJ0dWFsIG1ldGhvZHMgYWRkZWQgdG8gRXh0ZW5zaW9uczNELmgKKyAgICAg
ICAgKFdlYkNvcmU6OkV4dGVuc2lvbnMzRFF0OjpibGl0RnJhbWVidWZmZXIpOgorICAgICAgICAo
V2ViQ29yZTo6RXh0ZW5zaW9uczNEUXQ6OnJlbmRlcmJ1ZmZlclN0b3JhZ2VNdWx0aXNhbXBsZSk6
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvcXQvRXh0ZW5zaW9uczNEUXQuaDoKKyAgICAg
ICAgICBEZWNsYXJlIG5ldyBtZXRob2RzIGFkZGVkIHRvIEV4dGVuc2lvbnMzRC5oCisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvcXQvR3JhcGhpY3NDb250ZXh0M0RRdC5jcHA6CisgICAgICAg
ICAgUmVtb3ZlIG1ldGhvZCBpbXBsZW1lbnRhdGlvbnMgbm8gbG9uZ2VyIGluIEdyYXBoaWNzQ29u
dGV4dDNELmguCisgICAgICAgICAgQ2hhbmdlIG1fc3ludGhldGljRXJyb3JzIHRvIHVzZSB1bnNp
Z25lZCBpbnQgdG8gbWF0Y2ggbmV3CisgICAgICAgICAgR0MzRGVudW0gdHlwZS4KKyAgICAgICAg
KFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDNEOjpjcmVhdGUpOgorICAgICAgICAgQ2hhbmdlIHJl
dHVybiB0eXBlIHRvIG1hdGNoIEdyYXBoaWNzQ29udGV4dDNELmgKKyAgICAgICAgKFdlYkNvcmU6
OkdyYXBoaWNzQ29udGV4dDNEOjpsaW5lV2lkdGgpOgorICAgICAgICAgQ2hhbmdlIGFyZ3VtZW50
IHR5cGUgdG8gR0MzRGZsb2F0IHRvIG1hdGNoIEdyYXBoaWNzQ29udGV4dDNELmgKKyAgICAgICAg
KFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDNEOjpnZXRVbmlmb3JtTG9jYXRpb24pOgorICAgICAg
ICAgQ2hhbmdlIHJldHVybiB0eXBlIHRvIEdDM0RmbG9hdCB0byBtYXRjaCBHcmFwaGljc0NvbnRl
eHQzRC5oCisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQzRDo6Z2V0RXh0ZW5zaW9u
cyk6CisgICAgICAgICBOZWVkIHRvIGNhbGwgZ2V0KCkgb24gT3duUHRyLgorICAgICAgICAoV2Vi
Q29yZTo6R3JhcGhpY3NDb250ZXh0M0Q6OmdldEltYWdlRGF0YSk6CisgICAgICAgICBSZW5hbWUg
ZW51bSB2YWx1ZXMgdG8gbWF0Y2ggZGVjbGFyYXRpb25zIGluIEdyYXBoaWNzQ29udGV4dDNELmgK
KwogMjAxMS0wMS0yOCAgUGF2ZWwgRmVsZG1hbiAgPHBmZWxkbWFuQGNocm9taXVtLm9yZz4KIAog
ICAgICAgICBSZXZpZXdlZCBieSBZdXJ5IFNlbWlraGF0c2t5LgpJbmRleDogU291cmNlL1dlYkNv
cmUvV2ViQ29yZS5wcm8KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvV2ViQ29yZS5wcm8J
KHJldmlzaW9uIDc3MTMwKQorKysgU291cmNlL1dlYkNvcmUvV2ViQ29yZS5wcm8JKHdvcmtpbmcg
Y29weSkKQEAgLTM4MTQsNiArMzgxNCw3IEBAIGNvbnRhaW5zKERFRklORVMsIEVOQUJMRV9XRUJH
TD0xKSB7CiAgICAgICAgIGh0bWwvY2FudmFzL1dlYkdMQWN0aXZlSW5mby5oIFwKICAgICAgICAg
aHRtbC9jYW52YXMvV2ViR0xCdWZmZXIuaCBcCiAgICAgICAgIGh0bWwvY2FudmFzL1dlYkdMQ29u
dGV4dEF0dHJpYnV0ZXMuaCBcCisgICAgICAgIGh0bWwvY2FudmFzL1dlYkdMQ29udGV4dEV2ZW50
LmggXAogICAgICAgICBodG1sL2NhbnZhcy9XZWJHTEV4dGVuc2lvbi5oIFwKICAgICAgICAgaHRt
bC9jYW52YXMvV2ViR0xGcmFtZWJ1ZmZlci5oIFwKICAgICAgICAgaHRtbC9jYW52YXMvV2ViR0xH
ZXRJbmZvLmggXApAQCAtMzgyOCw2ICszODI5LDcgQEAgY29udGFpbnMoREVGSU5FUywgRU5BQkxF
X1dFQkdMPTEpIHsKICAgICAgICAgaHRtbC9jYW52YXMvV2ViS2l0TG9zZUNvbnRleHQuaCBcCiAg
ICAgICAgIHBsYXRmb3JtL2dyYXBoaWNzL0V4dGVuc2lvbnMzRC5oIFwKICAgICAgICAgcGxhdGZv
cm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0M0QuaCBcCisgICAgICAgIHBsYXRmb3JtL2dyYXBo
aWNzL2dwdS9EcmF3aW5nQnVmZmVyLmggXAogICAgICAgICBwbGF0Zm9ybS9ncmFwaGljcy9xdC9F
eHRlbnNpb25zM0RRdC5oCiAKICAgICAhdjggewpAQCAtMzgzOSw2ICszODQxLDcgQEAgY29udGFp
bnMoREVGSU5FUywgRU5BQkxFX1dFQkdMPTEpIHsKICAgICAgICAgaHRtbC9jYW52YXMvV2ViR0xP
YmplY3QuY3BwIFwKICAgICAgICAgaHRtbC9jYW52YXMvV2ViR0xCdWZmZXIuY3BwIFwKICAgICAg
ICAgaHRtbC9jYW52YXMvV2ViR0xDb250ZXh0QXR0cmlidXRlcy5jcHAgXAorICAgICAgICBodG1s
L2NhbnZhcy9XZWJHTENvbnRleHRFdmVudC5jcHAgXAogICAgICAgICBodG1sL2NhbnZhcy9XZWJH
TEV4dGVuc2lvbi5jcHAgXAogICAgICAgICBodG1sL2NhbnZhcy9XZWJHTEZyYW1lYnVmZmVyLmNw
cCBcCiAgICAgICAgIGh0bWwvY2FudmFzL1dlYkdMR2V0SW5mby5jcHAgXApAQCAtMzg1Miw4ICsz
ODU1LDEyIEBAIGNvbnRhaW5zKERFRklORVMsIEVOQUJMRV9XRUJHTD0xKSB7CiAgICAgICAgIGh0
bWwvY2FudmFzL1dlYkdMVW5pZm9ybUxvY2F0aW9uLmNwcCBcCiAgICAgICAgIGh0bWwvY2FudmFz
L1dlYktpdExvc2VDb250ZXh0LmNwcCBcCiAgICAgICAgIHBsYXRmb3JtL2dyYXBoaWNzL0dyYXBo
aWNzQ29udGV4dDNELmNwcCBcCisgICAgICAgIHBsYXRmb3JtL2dyYXBoaWNzL2dwdS9EcmF3aW5n
QnVmZmVyLmNwcCBcCisgICAgICAgIHBsYXRmb3JtL2dyYXBoaWNzL2dwdS9xdC9EcmF3aW5nQnVm
ZmVyUXQuY3BwIFwKICAgICAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvcXQvRXh0ZW5zaW9uczNEUXQu
Y3BwIFwKICAgICAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvcXQvR3JhcGhpY3NDb250ZXh0M0RRdC5j
cHAKKworICAgICAgICBJTkNMVURFUEFUSCArPSAkJFBXRC9wbGF0Zm9ybS9ncmFwaGljcy9ncHUK
IH0KIAogY29udGFpbnMoREVGSU5FUywgRU5BQkxFX1NZTUJJQU5fRElBTE9HX1BST1ZJREVSUykg
ewpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRl
cmluZ0NvbnRleHQuY3BwCShyZXZpc2lvbiA3NzEzMCkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwv
Y2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTY1LDYg
KzY1LDEwIEBACiAjaW5jbHVkZSA8d3RmL1Bhc3NPd25BcnJheVB0ci5oPgogI2luY2x1ZGUgPHd0
Zi90ZXh0L1N0cmluZ0J1aWxkZXIuaD4KIAorI2lmIFBMQVRGT1JNKFFUKQorI3VuZGVmIGVtaXQK
KyNlbmRpZgorCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNvbnN0IGRvdWJsZSBzZWNvbmRzQmV0
d2VlblJlc3RvcmVBdHRlbXB0cyA9IDEuMDsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2dwdS9xdC9EcmF3aW5nQnVmZmVyUXQuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9xdC9EcmF3aW5nQnVmZmVyUXQuY3BwCShy
ZXZpc2lvbiAwKQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L3F0L0Ry
YXdpbmdCdWZmZXJRdC5jcHAJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNjMgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTEgQW5kcmV3IFdhc29uIChyZWN0YWxvZ2ljQHJlY3RhbG9naWMuY29t
KQorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMu
IE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJP
RklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisK
KyNpbmNsdWRlICJjb25maWcuaCIKKworI2lmIEVOQUJMRShBQ0NFTEVSQVRFRF8yRF9DQU5WQVMp
IHx8IEVOQUJMRShXRUJHTCkKKworI2luY2x1ZGUgIkRyYXdpbmdCdWZmZXIuaCIKKworbmFtZXNw
YWNlIFdlYkNvcmUgeworCitEcmF3aW5nQnVmZmVyOjpEcmF3aW5nQnVmZmVyKEdyYXBoaWNzQ29u
dGV4dDNEKiBjb250ZXh0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBJbnRT
aXplJiBzaXplLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sIG11bHRpc2FtcGxl
RXh0ZW5zaW9uU3VwcG9ydGVkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sIHBh
Y2tlZERlcHRoU3RlbmNpbEV4dGVuc2lvblN1cHBvcnRlZCkKK3sKK30KKworRHJhd2luZ0J1ZmZl
cjo6fkRyYXdpbmdCdWZmZXIoKQoreworfQorCit2b2lkIERyYXdpbmdCdWZmZXI6OmRpZFJlc2V0
KCkKK3sKK30KKworI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKK1BsYXRmb3JtTGF5
ZXIqIERyYXdpbmdCdWZmZXI6OnBsYXRmb3JtTGF5ZXIoKQoreworICAgIHJldHVybiAwOworfQor
I2VuZGlmCisKK1BsYXRmb3JtM0RPYmplY3QgRHJhd2luZ0J1ZmZlcjo6cGxhdGZvcm1Db2xvckJ1
ZmZlcigpIGNvbnN0Cit7CisgICAgcmV0dXJuIDA7Cit9CisKK30KKworI2VuZGlmCkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9xdC9FeHRlbnNpb25zM0RRdC5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvcXQvRXh0ZW5zaW9u
czNEUXQuY3BwCShyZXZpc2lvbiA3NzEzMCkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL3F0L0V4dGVuc2lvbnMzRFF0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTYsNiArNTYs
MTQgQEAgaW50IEV4dGVuc2lvbnMzRFF0OjpnZXRHcmFwaGljc1Jlc2V0U3RhdAogICAgIHJldHVy
biBHcmFwaGljc0NvbnRleHQzRDo6Tk9fRVJST1I7CiB9CiAKK3ZvaWQgRXh0ZW5zaW9uczNEUXQ6
OmJsaXRGcmFtZWJ1ZmZlcihsb25nIHNyY1gwLCBsb25nIHNyY1kwLCBsb25nIHNyY1gxLCBsb25n
IHNyY1kxLCBsb25nIGRzdFgwLCBsb25nIGRzdFkwLCBsb25nIGRzdFgxLCBsb25nIGRzdFkxLCB1
bnNpZ25lZCBsb25nIG1hc2ssIHVuc2lnbmVkIGxvbmcgZmlsdGVyKQoreworfQorCit2b2lkIEV4
dGVuc2lvbnMzRFF0OjpyZW5kZXJidWZmZXJTdG9yYWdlTXVsdGlzYW1wbGUodW5zaWduZWQgbG9u
ZyB0YXJnZXQsIHVuc2lnbmVkIGxvbmcgc2FtcGxlcywgdW5zaWduZWQgbG9uZyBpbnRlcm5hbGZv
cm1hdCwgdW5zaWduZWQgbG9uZyB3aWR0aCwgdW5zaWduZWQgbG9uZyBoZWlnaHQpCit7Cit9CisK
IH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIEVOQUJMRShXRUJHTCkKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3F0L0V4dGVuc2lvbnMzRFF0LmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvcXQvRXh0ZW5zaW9u
czNEUXQuaAkocmV2aXNpb24gNzcxMzApCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9xdC9FeHRlbnNpb25zM0RRdC5oCSh3b3JraW5nIGNvcHkpCkBAIC0zOCw2ICszOCw4IEBA
IHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgc3VwcG9ydHMoY29uc3QgU3RyaW5nJik7CiAgICAg
dmlydHVhbCB2b2lkIGVuc3VyZUVuYWJsZWQoY29uc3QgU3RyaW5nJik7CiAgICAgdmlydHVhbCBp
bnQgZ2V0R3JhcGhpY3NSZXNldFN0YXR1c0FSQigpOworICAgIHZpcnR1YWwgdm9pZCBibGl0RnJh
bWVidWZmZXIobG9uZyBzcmNYMCwgbG9uZyBzcmNZMCwgbG9uZyBzcmNYMSwgbG9uZyBzcmNZMSwg
bG9uZyBkc3RYMCwgbG9uZyBkc3RZMCwgbG9uZyBkc3RYMSwgbG9uZyBkc3RZMSwgdW5zaWduZWQg
bG9uZyBtYXNrLCB1bnNpZ25lZCBsb25nIGZpbHRlcik7CisgICAgdmlydHVhbCB2b2lkIHJlbmRl
cmJ1ZmZlclN0b3JhZ2VNdWx0aXNhbXBsZSh1bnNpZ25lZCBsb25nIHRhcmdldCwgdW5zaWduZWQg
bG9uZyBzYW1wbGVzLCB1bnNpZ25lZCBsb25nIGludGVybmFsZm9ybWF0LCB1bnNpZ25lZCBsb25n
IHdpZHRoLCB1bnNpZ25lZCBsb25nIGhlaWdodCk7ICAgIAogCiBwcml2YXRlOgogICAgIC8vIFRo
aXMgY2xhc3Mgb25seSBuZWVkcyB0byBiZSBpbnN0YW50aWF0ZWQgYnkgR3JhcGhpY3NDb250ZXh0
M0QgaW1wbGVtZW50YXRpb25zLgpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvcXQvR3JhcGhpY3NDb250ZXh0M0RRdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvcXQvR3JhcGhpY3NDb250ZXh0M0RRdC5jcHAJKHJldmlzaW9u
IDc3MTMwKQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvcXQvR3JhcGhpY3ND
b250ZXh0M0RRdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI1Miw3ICsyNTIsNyBAQCBwdWJsaWM6
CiAgICAgR0x1aW50IG1fY3VycmVudEZibzsKICAgICBHTHVpbnQgbV9kZXB0aEJ1ZmZlcjsKICAg
ICBRSW1hZ2UgbV9waXhlbHM7Ci0gICAgTGlzdEhhc2hTZXQ8dW5zaWduZWQgbG9uZz4gbV9zeW50
aGV0aWNFcnJvcnM7CisgICAgTGlzdEhhc2hTZXQ8dW5zaWduZWQgaW50PiBtX3N5bnRoZXRpY0Vy
cm9yczsKIAogICAgIE93blB0cjxFeHRlbnNpb25zM0RRdD4gbV9leHRlbnNpb25zOwogCkBAIC0y
NzcsMjQgKzI3Nyw2IEBAIGJvb2wgR3JhcGhpY3NDb250ZXh0M0Q6OmlzR0xFUzJDb21wbGlhbnQK
ICNlbmRpZgogfQogCi0vLyBFdmVuIHdpdGggdW5kZXJseWluZyBHTEVTMiBkcml2ZXIsIHRoZSBi
ZWxvdyBmbGFncyBzaG91bGQgc3RpbGwgYmUgc2V0IHRvCi0vLyBmYWxzZSBpZiBleHRlbnRpb25z
IGV4aXN0IChhbmQgdGhleSBhbG1vc3QgYWx3YXlzIGRvKS4KLWJvb2wgR3JhcGhpY3NDb250ZXh0
M0Q6OmlzR0xFUzJOUE9UU3RyaWN0KCkgY29uc3QKLXsKLSAgICByZXR1cm4gZmFsc2U7Ci19Ci0K
LWJvb2wgR3JhcGhpY3NDb250ZXh0M0Q6OmlzRXJyb3JHZW5lcmF0ZWRPbk91dE9mQm91bmRzQWNj
ZXNzZXMoKSBjb25zdAotewotICAgIHJldHVybiBmYWxzZTsKLX0KLQotaW50IEdyYXBoaWNzQ29u
dGV4dDNEOjpnZXRHcmFwaGljc1Jlc2V0U3RhdHVzQVJCKCkKLXsKLSAgICByZXR1cm4gTk9fRVJS
T1I7Ci19Ci0KLSAKIEdyYXBoaWNzQ29udGV4dDNESW50ZXJuYWw6OkdyYXBoaWNzQ29udGV4dDNE
SW50ZXJuYWwoR3JhcGhpY3NDb250ZXh0M0Q6OkF0dHJpYnV0ZXMgYXR0cnMsIEhvc3RXaW5kb3cq
IGhvc3RXaW5kb3cpCiAgICAgOiBtX2F0dHJzKGF0dHJzKQogICAgICwgbV9ob3N0V2luZG93KGhv
c3RXaW5kb3cpCkBAIC00OTksMTIgKzQ4MSwxMiBAQCB2b2lkKiBHcmFwaGljc0NvbnRleHQzRElu
dGVybmFsOjpnZXRQcm9jCiAgICAgcmV0dXJuIDA7CiB9CiAKLVBhc3NPd25QdHI8R3JhcGhpY3ND
b250ZXh0M0Q+IEdyYXBoaWNzQ29udGV4dDNEOjpjcmVhdGUoR3JhcGhpY3NDb250ZXh0M0Q6OkF0
dHJpYnV0ZXMgYXR0cnMsIEhvc3RXaW5kb3cqIGhvc3RXaW5kb3csIEdyYXBoaWNzQ29udGV4dDNE
OjpSZW5kZXJTdHlsZSByZW5kZXJTdHlsZSkKK1Bhc3NSZWZQdHI8R3JhcGhpY3NDb250ZXh0M0Q+
IEdyYXBoaWNzQ29udGV4dDNEOjpjcmVhdGUoR3JhcGhpY3NDb250ZXh0M0Q6OkF0dHJpYnV0ZXMg
YXR0cnMsIEhvc3RXaW5kb3cqIGhvc3RXaW5kb3csIEdyYXBoaWNzQ29udGV4dDNEOjpSZW5kZXJT
dHlsZSByZW5kZXJTdHlsZSkKIHsKICAgICAvLyBUaGlzIGltcGxlbWVudGF0aW9uIGRvZXNuJ3Qg
Y3VycmVudGx5IHN1cHBvcnQgcmVuZGVyaW5nIGRpcmVjdGx5IHRvIHRoZSBIb3N0V2luZG93Lgog
ICAgIGlmIChyZW5kZXJTdHlsZSA9PSBSZW5kZXJEaXJlY3RseVRvSG9zdFdpbmRvdykKICAgICAg
ICAgcmV0dXJuIDA7Ci0gICAgT3duUHRyPEdyYXBoaWNzQ29udGV4dDNEPiBjb250ZXh0KG5ldyBH
cmFwaGljc0NvbnRleHQzRChhdHRycywgaG9zdFdpbmRvdywgZmFsc2UpKTsKKyAgICBSZWZQdHI8
R3JhcGhpY3NDb250ZXh0M0Q+IGNvbnRleHQgPSBhZG9wdFJlZihuZXcgR3JhcGhpY3NDb250ZXh0
M0QoYXR0cnMsIGhvc3RXaW5kb3csIGZhbHNlKSk7CiAgICAgcmV0dXJuIGNvbnRleHQtPm1faW50
ZXJuYWwgPyBjb250ZXh0LnJlbGVhc2UoKSA6IDA7CiB9CiAKQEAgLTEwMzgsNyArMTAyMCw3IEBA
IEdDM0Rib29sZWFuIEdyYXBoaWNzQ29udGV4dDNEOjppc1RleHR1cmUKICAgICByZXR1cm4gZ2xJ
c1RleHR1cmUodGV4dHVyZSk7CiB9CiAKLXZvaWQgR3JhcGhpY3NDb250ZXh0M0Q6OmxpbmVXaWR0
aChkb3VibGUgd2lkdGgpCit2b2lkIEdyYXBoaWNzQ29udGV4dDNEOjpsaW5lV2lkdGgoR0MzRGZs
b2F0IHdpZHRoKQogewogICAgIG1faW50ZXJuYWwtPm1fZ2xXaWRnZXQtPm1ha2VDdXJyZW50KCk7
CiAgICAgZ2xMaW5lV2lkdGgoc3RhdGljX2Nhc3Q8ZmxvYXQ+KHdpZHRoKSk7CkBAIC0xNDg5LDcg
KzE0NzEsNyBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dDNEOjpnZXRVbmlmb3JtaXYoUGxhCiAgICAg
bV9pbnRlcm5hbC0+Z2V0VW5pZm9ybWl2KHByb2dyYW0sIGxvY2F0aW9uLCB2YWx1ZSk7CiB9CiAK
LWxvbmcgR3JhcGhpY3NDb250ZXh0M0Q6OmdldFVuaWZvcm1Mb2NhdGlvbihQbGF0Zm9ybTNET2Jq
ZWN0IHByb2dyYW0sIGNvbnN0IFN0cmluZyYgbmFtZSkKK0dDM0RpbnQgR3JhcGhpY3NDb250ZXh0
M0Q6OmdldFVuaWZvcm1Mb2NhdGlvbihQbGF0Zm9ybTNET2JqZWN0IHByb2dyYW0sIGNvbnN0IFN0
cmluZyYgbmFtZSkKIHsKICAgICBBU1NFUlQocHJvZ3JhbSk7CiAgICAgCkBAIC0xNjIwLDcgKzE2
MDIsNyBAQCBFeHRlbnNpb25zM0QqIEdyYXBoaWNzQ29udGV4dDNEOjpnZXRFeHRlCiB7CiAgICAg
aWYgKCFtX2ludGVybmFsLT5tX2V4dGVuc2lvbnMpCiAgICAgICAgIG1faW50ZXJuYWwtPm1fZXh0
ZW5zaW9ucyA9IGFkb3B0UHRyKG5ldyBFeHRlbnNpb25zM0RRdCk7Ci0gICAgcmV0dXJuIG1faW50
ZXJuYWwtPm1fZXh0ZW5zaW9uczsKKyAgICByZXR1cm4gbV9pbnRlcm5hbC0+bV9leHRlbnNpb25z
LmdldCgpOwogfQogCiBib29sIEdyYXBoaWNzQ29udGV4dDNEOjpnZXRJbWFnZURhdGEoSW1hZ2Uq
IGltYWdlLApAQCAtMTYzNywxMyArMTYxOSwxMyBAQCBib29sIEdyYXBoaWNzQ29udGV4dDNEOjpn
ZXRJbWFnZURhdGEoSW1hCiAgICAgaWYgKCFuYXRpdmVQaXhtYXApCiAgICAgICAgIHJldHVybiBm
YWxzZTsKIAotICAgIEFscGhhT3AgbmVlZGVkQWxwaGFPcCA9IGtBbHBoYURvTm90aGluZzsKKyAg
ICBBbHBoYU9wIG5lZWRlZEFscGhhT3AgPSBBbHBoYURvTm90aGluZzsKICAgICBpZiAoIXByZW11
bHRpcGx5QWxwaGEpCiAgICAgICAgIC8vIEZJWE1FOiBtdXN0IGZldGNoIHRoZSBpbWFnZSBkYXRh
IGJlZm9yZSB0aGUgcHJlbXVsdGlwbGljYXRpb24gc3RlcAotICAgICAgICBuZWVkZWRBbHBoYU9w
ID0ga0FscGhhRG9Vbm11bHRpcGx5OworICAgICAgICBuZWVkZWRBbHBoYU9wID0gQWxwaGFEb1Vu
bXVsdGlwbHk7CiAgICAgUUltYWdlIG5hdGl2ZUltYWdlID0gbmF0aXZlUGl4bWFwLT50b0ltYWdl
KCkuY29udmVydFRvRm9ybWF0KFFJbWFnZTo6Rm9ybWF0X0FSR0IzMik7CiAgICAgb3V0cHV0VmVj
dG9yLnJlc2l6ZShuYXRpdmVJbWFnZS5ieXRlQ291bnQoKSk7Ci0gICAgcmV0dXJuIHBhY2tQaXhl
bHMobmF0aXZlSW1hZ2UucmdiU3dhcHBlZCgpLmJpdHMoKSwga1NvdXJjZUZvcm1hdFJHQkE4LCBp
bWFnZS0+d2lkdGgoKSwgaW1hZ2UtPmhlaWdodCgpLCAwLAorICAgIHJldHVybiBwYWNrUGl4ZWxz
KG5hdGl2ZUltYWdlLnJnYlN3YXBwZWQoKS5iaXRzKCksIFNvdXJjZUZvcm1hdFJHQkE4LCBpbWFn
ZS0+d2lkdGgoKSwgaW1hZ2UtPmhlaWdodCgpLCAwLAogICAgICAgICAgICAgICAgICAgICAgIGZv
cm1hdCwgdHlwZSwgbmVlZGVkQWxwaGFPcCwgb3V0cHV0VmVjdG9yLmRhdGEoKSk7CiB9CiAK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>81372</attachid>
            <date>2011-02-05 14:23:50 -0800</date>
            <delta_ts>2011-02-14 11:48:28 -0800</delta_ts>
            <desc>update Qt WebGL implementation so it builds and runs</desc>
            <filename>qtwebgl-build.diff</filename>
            <type>text/plain</type>
            <size>13846</size>
            <attacher name="Andrew Wason">rectalogic</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDc3NzUwKQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsNDUgQEAKKzIwMTEtMDItMDUgIEFuZHJldyBX
YXNvbiAgPHJlY3RhbG9naWNAcmVjdGFsb2dpYy5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgW1F0XSBXZWJLaXQgZmFpbHMgdG8gY29tcGlsZSBm
b3IgUXQgd2hlbiBXZWJHTCBlbmFibGVkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD01MzQzMQorCisgICAgICAgIE5vIG5ldyB0ZXN0cy4KKworICAgICAg
ICAqIFdlYkNvcmUucHJvOgorICAgICAgICAgIEFkZCBzb3VyY2UgYW5kIGhlYWRlciBmaWxlcyBh
bmQgaW5jbHVkZSBkaXJlY3RvcnkgdG8gUXQgcHJvamVjdC4KKyAgICAgICAgKiBodG1sL2NhbnZh
cy9XZWJHTFJlbmRlcmluZ0NvbnRleHQuY3BwOgorICAgICAgICAgIEZpbGUgdXNlcyAnZW1pdCcg
d2hpY2ggaXMgYSBRdCBrZXl3b3JkIC0gI3VuZGVmIGVtaXQuCisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvZ3B1L3F0OiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9ncHUv
cXQvRHJhd2luZ0J1ZmZlclF0LmNwcDogQWRkZWQuCisgICAgICAgICAgUGFydGlhbCBpbXBsZW1l
bnRhdGlvbiBvZiBEcmF3aW5nQnVmZmVyIGZvciBRdC4KKyAgICAgICAgKFdlYkNvcmU6OkRyYXdp
bmdCdWZmZXI6OkRyYXdpbmdCdWZmZXIpOgorICAgICAgICAoV2ViQ29yZTo6RHJhd2luZ0J1ZmZl
cjo6fkRyYXdpbmdCdWZmZXIpOgorICAgICAgICAoV2ViQ29yZTo6RHJhd2luZ0J1ZmZlcjo6ZGlk
UmVzZXQpOgorICAgICAgICAoV2ViQ29yZTo6RHJhd2luZ0J1ZmZlcjo6cGxhdGZvcm1MYXllcik6
CisgICAgICAgIChXZWJDb3JlOjpEcmF3aW5nQnVmZmVyOjpwbGF0Zm9ybUNvbG9yQnVmZmVyKToK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9xdC9FeHRlbnNpb25zM0RRdC5jcHA6CisgICAg
ICAgICAgTm9vcCBpbXBsZW1lbnRhdGlvbiBmb3IgcHVyZSB2aXJ0dWFsIG1ldGhvZHMgYWRkZWQg
dG8gRXh0ZW5zaW9uczNELmgKKyAgICAgICAgKFdlYkNvcmU6OkV4dGVuc2lvbnMzRFF0OjpibGl0
RnJhbWVidWZmZXIpOgorICAgICAgICAoV2ViQ29yZTo6RXh0ZW5zaW9uczNEUXQ6OnJlbmRlcmJ1
ZmZlclN0b3JhZ2VNdWx0aXNhbXBsZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvcXQv
RXh0ZW5zaW9uczNEUXQuaDoKKyAgICAgICAgICBEZWNsYXJlIG5ldyBtZXRob2RzIGFkZGVkIHRv
IEV4dGVuc2lvbnMzRC5oCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvcXQvR3JhcGhpY3ND
b250ZXh0M0RRdC5jcHA6CisgICAgICAgICAgUmVtb3ZlIG1ldGhvZCBpbXBsZW1lbnRhdGlvbnMg
bm8gbG9uZ2VyIGluIEdyYXBoaWNzQ29udGV4dDNELmguCisgICAgICAgICAgQ2hhbmdlIG1fc3lu
dGhldGljRXJyb3JzIHRvIHVzZSB1bnNpZ25lZCBpbnQgdG8gbWF0Y2ggbmV3CisgICAgICAgICAg
R0MzRGVudW0gdHlwZS4KKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDNEOjpjcmVh
dGUpOgorICAgICAgICAgQ2hhbmdlIHJldHVybiB0eXBlIHRvIG1hdGNoIEdyYXBoaWNzQ29udGV4
dDNELmgKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDNEOjpsaW5lV2lkdGgpOgor
ICAgICAgICAgQ2hhbmdlIGFyZ3VtZW50IHR5cGUgdG8gR0MzRGZsb2F0IHRvIG1hdGNoIEdyYXBo
aWNzQ29udGV4dDNELmgKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDNEOjpnZXRV
bmlmb3JtTG9jYXRpb24pOgorICAgICAgICAgQ2hhbmdlIHJldHVybiB0eXBlIHRvIEdDM0RmbG9h
dCB0byBtYXRjaCBHcmFwaGljc0NvbnRleHQzRC5oCisgICAgICAgIChXZWJDb3JlOjpHcmFwaGlj
c0NvbnRleHQzRDo6Z2V0RXh0ZW5zaW9ucyk6CisgICAgICAgICBOZWVkIHRvIGNhbGwgZ2V0KCkg
b24gT3duUHRyLgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0M0Q6OmdldEltYWdl
RGF0YSk6CisgICAgICAgICBSZW5hbWUgZW51bSB2YWx1ZXMgdG8gbWF0Y2ggZGVjbGFyYXRpb25z
IGluIEdyYXBoaWNzQ29udGV4dDNELmgKKwogMjAxMS0wMi0wNSAgUGF0cmljayBHYW5zdGVyZXIg
IDxwYXJvZ2FAd2Via2l0Lm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBBbGV4ZXkgUHJvc2t1
cnlha292LgpJbmRleDogU291cmNlL1dlYkNvcmUvV2ViQ29yZS5wcm8KPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvV2ViQ29yZS5wcm8JKHJldmlzaW9uIDc3NzQ0KQorKysgU291cmNlL1dl
YkNvcmUvV2ViQ29yZS5wcm8JKHdvcmtpbmcgY29weSkKQEAgLTM4MjIsNiArMzgyMiw3IEBAIGNv
bnRhaW5zKERFRklORVMsIEVOQUJMRV9XRUJHTD0xKSB7CiAgICAgICAgIGh0bWwvY2FudmFzL1dl
YkdMQWN0aXZlSW5mby5oIFwKICAgICAgICAgaHRtbC9jYW52YXMvV2ViR0xCdWZmZXIuaCBcCiAg
ICAgICAgIGh0bWwvY2FudmFzL1dlYkdMQ29udGV4dEF0dHJpYnV0ZXMuaCBcCisgICAgICAgIGh0
bWwvY2FudmFzL1dlYkdMQ29udGV4dEV2ZW50LmggXAogICAgICAgICBodG1sL2NhbnZhcy9XZWJH
TEV4dGVuc2lvbi5oIFwKICAgICAgICAgaHRtbC9jYW52YXMvV2ViR0xGcmFtZWJ1ZmZlci5oIFwK
ICAgICAgICAgaHRtbC9jYW52YXMvV2ViR0xHZXRJbmZvLmggXApAQCAtMzgzNiw2ICszODM3LDcg
QEAgY29udGFpbnMoREVGSU5FUywgRU5BQkxFX1dFQkdMPTEpIHsKICAgICAgICAgaHRtbC9jYW52
YXMvV2ViS2l0TG9zZUNvbnRleHQuaCBcCiAgICAgICAgIHBsYXRmb3JtL2dyYXBoaWNzL0V4dGVu
c2lvbnMzRC5oIFwKICAgICAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0M0Qu
aCBcCisgICAgICAgIHBsYXRmb3JtL2dyYXBoaWNzL2dwdS9EcmF3aW5nQnVmZmVyLmggXAogICAg
ICAgICBwbGF0Zm9ybS9ncmFwaGljcy9xdC9FeHRlbnNpb25zM0RRdC5oCiAKICAgICAhdjggewpA
QCAtMzg0Nyw2ICszODQ5LDcgQEAgY29udGFpbnMoREVGSU5FUywgRU5BQkxFX1dFQkdMPTEpIHsK
ICAgICAgICAgaHRtbC9jYW52YXMvV2ViR0xPYmplY3QuY3BwIFwKICAgICAgICAgaHRtbC9jYW52
YXMvV2ViR0xCdWZmZXIuY3BwIFwKICAgICAgICAgaHRtbC9jYW52YXMvV2ViR0xDb250ZXh0QXR0
cmlidXRlcy5jcHAgXAorICAgICAgICBodG1sL2NhbnZhcy9XZWJHTENvbnRleHRFdmVudC5jcHAg
XAogICAgICAgICBodG1sL2NhbnZhcy9XZWJHTEV4dGVuc2lvbi5jcHAgXAogICAgICAgICBodG1s
L2NhbnZhcy9XZWJHTEZyYW1lYnVmZmVyLmNwcCBcCiAgICAgICAgIGh0bWwvY2FudmFzL1dlYkdM
R2V0SW5mby5jcHAgXApAQCAtMzg2MCw4ICszODYzLDEyIEBAIGNvbnRhaW5zKERFRklORVMsIEVO
QUJMRV9XRUJHTD0xKSB7CiAgICAgICAgIGh0bWwvY2FudmFzL1dlYkdMVW5pZm9ybUxvY2F0aW9u
LmNwcCBcCiAgICAgICAgIGh0bWwvY2FudmFzL1dlYktpdExvc2VDb250ZXh0LmNwcCBcCiAgICAg
ICAgIHBsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dDNELmNwcCBcCisgICAgICAgIHBs
YXRmb3JtL2dyYXBoaWNzL2dwdS9EcmF3aW5nQnVmZmVyLmNwcCBcCisgICAgICAgIHBsYXRmb3Jt
L2dyYXBoaWNzL2dwdS9xdC9EcmF3aW5nQnVmZmVyUXQuY3BwIFwKICAgICAgICAgcGxhdGZvcm0v
Z3JhcGhpY3MvcXQvRXh0ZW5zaW9uczNEUXQuY3BwIFwKICAgICAgICAgcGxhdGZvcm0vZ3JhcGhp
Y3MvcXQvR3JhcGhpY3NDb250ZXh0M0RRdC5jcHAKKworICAgICAgICBJTkNMVURFUEFUSCArPSAk
JFBXRC9wbGF0Zm9ybS9ncmFwaGljcy9ncHUKIH0KIAogY29udGFpbnMoREVGSU5FUywgRU5BQkxF
X1NZTUJJQU5fRElBTE9HX1BST1ZJREVSUykgewpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9j
YW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHQuY3BwCShyZXZpc2lvbiA3Nzc0
NCkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dC5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTY1LDYgKzY1LDEwIEBACiAjaW5jbHVkZSA8d3RmL1Bhc3NP
d25BcnJheVB0ci5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0J1aWxkZXIuaD4KIAorI2lm
IFBMQVRGT1JNKFFUKQorI3VuZGVmIGVtaXQKKyNlbmRpZgorCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKIGNvbnN0IGRvdWJsZSBzZWNvbmRzQmV0d2VlblJlc3RvcmVBdHRlbXB0cyA9IDEuMDsKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9xdC9EcmF3aW5nQnVmZmVy
UXQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dw
dS9xdC9EcmF3aW5nQnVmZmVyUXQuY3BwCShyZXZpc2lvbiAwKQorKysgU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L3F0L0RyYXdpbmdCdWZmZXJRdC5jcHAJKHJldmlzaW9uIDAp
CkBAIC0wLDAgKzEsMTAwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDExIEFuZHJldyBXYXNv
biAocmVjdGFsb2dpY0ByZWN0YWxvZ2ljLmNvbSkKKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
VEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVN
UExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisKKyNpZiBF
TkFCTEUoQUNDRUxFUkFURURfMkRfQ0FOVkFTKSB8fCBFTkFCTEUoV0VCR0wpCisKKyNpbmNsdWRl
ICJEcmF3aW5nQnVmZmVyLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworRHJhd2luZ0J1ZmZl
cjo6RHJhd2luZ0J1ZmZlcihHcmFwaGljc0NvbnRleHQzRCogY29udGV4dCwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgY29uc3QgSW50U2l6ZSYgc2l6ZSwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgYm9vbCBtdWx0aXNhbXBsZUV4dGVuc2lvblN1cHBvcnRlZCwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgYm9vbCBwYWNrZWREZXB0aFN0ZW5jaWxFeHRlbnNpb25TdXBw
b3J0ZWQpCisgICAgOiBtX2NvbnRleHQoY29udGV4dCkKKyAgICAsIG1fc2l6ZSgtMSwgLTEpCisg
ICAgLCBtX211bHRpc2FtcGxlRXh0ZW5zaW9uU3VwcG9ydGVkKG11bHRpc2FtcGxlRXh0ZW5zaW9u
U3VwcG9ydGVkKQorICAgICwgbV9wYWNrZWREZXB0aFN0ZW5jaWxFeHRlbnNpb25TdXBwb3J0ZWQo
cGFja2VkRGVwdGhTdGVuY2lsRXh0ZW5zaW9uU3VwcG9ydGVkKQorICAgICwgbV9mYm8oY29udGV4
dC0+Y3JlYXRlRnJhbWVidWZmZXIoKSkKKyAgICAsIG1fY29sb3JCdWZmZXIoMCkKKyAgICAsIG1f
ZGVwdGhTdGVuY2lsQnVmZmVyKDApCisgICAgLCBtX2RlcHRoQnVmZmVyKDApCisgICAgLCBtX3N0
ZW5jaWxCdWZmZXIoMCkKKyAgICAsIG1fbXVsdGlzYW1wbGVGQk8oMCkKKyAgICAsIG1fbXVsdGlz
YW1wbGVDb2xvckJ1ZmZlcigwKQoreworICAgIEFTU0VSVChtX2Zibyk7CisgICAgaWYgKCFtX2Zi
bykgeworICAgICAgICBjbGVhcigpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgLy8g
Y3JlYXRlIGEgdGV4dHVyZSB0byByZW5kZXIgaW50bworICAgIG1fY29sb3JCdWZmZXIgPSBjb250
ZXh0LT5jcmVhdGVUZXh0dXJlKCk7CisgICAgY29udGV4dC0+YmluZFRleHR1cmUoR3JhcGhpY3ND
b250ZXh0M0Q6OlRFWFRVUkVfMkQsIG1fY29sb3JCdWZmZXIpOworICAgIGNvbnRleHQtPnRleFBh
cmFtZXRlcmYoR3JhcGhpY3NDb250ZXh0M0Q6OlRFWFRVUkVfMkQsIEdyYXBoaWNzQ29udGV4dDNE
OjpURVhUVVJFX01BR19GSUxURVIsIEdyYXBoaWNzQ29udGV4dDNEOjpMSU5FQVIpOworICAgIGNv
bnRleHQtPnRleFBhcmFtZXRlcmYoR3JhcGhpY3NDb250ZXh0M0Q6OlRFWFRVUkVfMkQsIEdyYXBo
aWNzQ29udGV4dDNEOjpURVhUVVJFX01JTl9GSUxURVIsIEdyYXBoaWNzQ29udGV4dDNEOjpMSU5F
QVIpOworICAgIGNvbnRleHQtPnRleFBhcmFtZXRlcmkoR3JhcGhpY3NDb250ZXh0M0Q6OlRFWFRV
UkVfMkQsIEdyYXBoaWNzQ29udGV4dDNEOjpURVhUVVJFX1dSQVBfUywgR3JhcGhpY3NDb250ZXh0
M0Q6OkNMQU1QX1RPX0VER0UpOworICAgIGNvbnRleHQtPnRleFBhcmFtZXRlcmkoR3JhcGhpY3ND
b250ZXh0M0Q6OlRFWFRVUkVfMkQsIEdyYXBoaWNzQ29udGV4dDNEOjpURVhUVVJFX1dSQVBfVCwg
R3JhcGhpY3NDb250ZXh0M0Q6OkNMQU1QX1RPX0VER0UpOworICAgIGNvbnRleHQtPmJpbmRUZXh0
dXJlKEdyYXBoaWNzQ29udGV4dDNEOjpURVhUVVJFXzJELCAwKTsKKworICAgIC8vIENyZWF0ZSB0
aGUgRkJPCisgICAgbV9mYm8gPSBjb250ZXh0LT5jcmVhdGVGcmFtZWJ1ZmZlcigpOworICAgIEFT
U0VSVChtX2Zibyk7CisgICAgaWYgKCFtX2ZibykgeworICAgICAgICBjbGVhcigpOworICAgICAg
ICByZXR1cm47CisgICAgfQorCisgICAgY3JlYXRlU2Vjb25kYXJ5QnVmZmVycygpOworICAgIHJl
c2V0KHNpemUpOworfQorCitEcmF3aW5nQnVmZmVyOjp+RHJhd2luZ0J1ZmZlcigpCit7CisgICAg
Y2xlYXIoKTsKK30KKwordm9pZCBEcmF3aW5nQnVmZmVyOjpkaWRSZXNldCgpCit7Cit9CisKKyNp
ZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCitQbGF0Zm9ybUxheWVyKiBEcmF3aW5nQnVm
ZmVyOjpwbGF0Zm9ybUxheWVyKCkKK3sKKyAgICByZXR1cm4gMDsKK30KKyNlbmRpZgorCitQbGF0
Zm9ybTNET2JqZWN0IERyYXdpbmdCdWZmZXI6OnBsYXRmb3JtQ29sb3JCdWZmZXIoKSBjb25zdAor
eworICAgIHJldHVybiBtX2NvbG9yQnVmZmVyOworfQorCit9CisKKyNlbmRpZgpJbmRleDogU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvcXQvRXh0ZW5zaW9uczNEUXQuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3F0L0V4dGVuc2lvbnMz
RFF0LmNwcAkocmV2aXNpb24gNzc3NDQpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9xdC9FeHRlbnNpb25zM0RRdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTU2LDYgKzU2LDE0
IEBAIGludCBFeHRlbnNpb25zM0RRdDo6Z2V0R3JhcGhpY3NSZXNldFN0YXQKICAgICByZXR1cm4g
R3JhcGhpY3NDb250ZXh0M0Q6Ok5PX0VSUk9SOwogfQogCit2b2lkIEV4dGVuc2lvbnMzRFF0Ojpi
bGl0RnJhbWVidWZmZXIobG9uZyBzcmNYMCwgbG9uZyBzcmNZMCwgbG9uZyBzcmNYMSwgbG9uZyBz
cmNZMSwgbG9uZyBkc3RYMCwgbG9uZyBkc3RZMCwgbG9uZyBkc3RYMSwgbG9uZyBkc3RZMSwgdW5z
aWduZWQgbG9uZyBtYXNrLCB1bnNpZ25lZCBsb25nIGZpbHRlcikKK3sKK30KKwordm9pZCBFeHRl
bnNpb25zM0RRdDo6cmVuZGVyYnVmZmVyU3RvcmFnZU11bHRpc2FtcGxlKHVuc2lnbmVkIGxvbmcg
dGFyZ2V0LCB1bnNpZ25lZCBsb25nIHNhbXBsZXMsIHVuc2lnbmVkIGxvbmcgaW50ZXJuYWxmb3Jt
YXQsIHVuc2lnbmVkIGxvbmcgd2lkdGgsIHVuc2lnbmVkIGxvbmcgaGVpZ2h0KQoreworfQorCiB9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBFTkFCTEUoV0VCR0wpCkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9xdC9FeHRlbnNpb25zM0RRdC5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3F0L0V4dGVuc2lvbnMz
RFF0LmgJKHJldmlzaW9uIDc3NzQ0KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvcXQvRXh0ZW5zaW9uczNEUXQuaAkod29ya2luZyBjb3B5KQpAQCAtMzgsNiArMzgsOCBAQCBw
dWJsaWM6CiAgICAgdmlydHVhbCBib29sIHN1cHBvcnRzKGNvbnN0IFN0cmluZyYpOwogICAgIHZp
cnR1YWwgdm9pZCBlbnN1cmVFbmFibGVkKGNvbnN0IFN0cmluZyYpOwogICAgIHZpcnR1YWwgaW50
IGdldEdyYXBoaWNzUmVzZXRTdGF0dXNBUkIoKTsKKyAgICB2aXJ0dWFsIHZvaWQgYmxpdEZyYW1l
YnVmZmVyKGxvbmcgc3JjWDAsIGxvbmcgc3JjWTAsIGxvbmcgc3JjWDEsIGxvbmcgc3JjWTEsIGxv
bmcgZHN0WDAsIGxvbmcgZHN0WTAsIGxvbmcgZHN0WDEsIGxvbmcgZHN0WTEsIHVuc2lnbmVkIGxv
bmcgbWFzaywgdW5zaWduZWQgbG9uZyBmaWx0ZXIpOworICAgIHZpcnR1YWwgdm9pZCByZW5kZXJi
dWZmZXJTdG9yYWdlTXVsdGlzYW1wbGUodW5zaWduZWQgbG9uZyB0YXJnZXQsIHVuc2lnbmVkIGxv
bmcgc2FtcGxlcywgdW5zaWduZWQgbG9uZyBpbnRlcm5hbGZvcm1hdCwgdW5zaWduZWQgbG9uZyB3
aWR0aCwgdW5zaWduZWQgbG9uZyBoZWlnaHQpOyAgICAKIAogcHJpdmF0ZToKICAgICAvLyBUaGlz
IGNsYXNzIG9ubHkgbmVlZHMgdG8gYmUgaW5zdGFudGlhdGVkIGJ5IEdyYXBoaWNzQ29udGV4dDNE
IGltcGxlbWVudGF0aW9ucy4KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L3F0L0dyYXBoaWNzQ29udGV4dDNEUXQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL3F0L0dyYXBoaWNzQ29udGV4dDNEUXQuY3BwCShyZXZpc2lvbiA3
Nzc0NCkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3F0L0dyYXBoaWNzQ29u
dGV4dDNEUXQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNTIsNyArMjUyLDcgQEAgcHVibGljOgog
ICAgIEdMdWludCBtX2N1cnJlbnRGYm87CiAgICAgR0x1aW50IG1fZGVwdGhCdWZmZXI7CiAgICAg
UUltYWdlIG1fcGl4ZWxzOwotICAgIExpc3RIYXNoU2V0PHVuc2lnbmVkIGxvbmc+IG1fc3ludGhl
dGljRXJyb3JzOworICAgIExpc3RIYXNoU2V0PHVuc2lnbmVkIGludD4gbV9zeW50aGV0aWNFcnJv
cnM7CiAKICAgICBPd25QdHI8RXh0ZW5zaW9uczNEUXQ+IG1fZXh0ZW5zaW9uczsKIApAQCAtMjc3
LDI0ICsyNzcsNiBAQCBib29sIEdyYXBoaWNzQ29udGV4dDNEOjppc0dMRVMyQ29tcGxpYW50CiAj
ZW5kaWYKIH0KIAotLy8gRXZlbiB3aXRoIHVuZGVybHlpbmcgR0xFUzIgZHJpdmVyLCB0aGUgYmVs
b3cgZmxhZ3Mgc2hvdWxkIHN0aWxsIGJlIHNldCB0bwotLy8gZmFsc2UgaWYgZXh0ZW50aW9ucyBl
eGlzdCAoYW5kIHRoZXkgYWxtb3N0IGFsd2F5cyBkbykuCi1ib29sIEdyYXBoaWNzQ29udGV4dDNE
Ojppc0dMRVMyTlBPVFN0cmljdCgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIGZhbHNlOwotfQotCi1i
b29sIEdyYXBoaWNzQ29udGV4dDNEOjppc0Vycm9yR2VuZXJhdGVkT25PdXRPZkJvdW5kc0FjY2Vz
c2VzKCkgY29uc3QKLXsKLSAgICByZXR1cm4gZmFsc2U7Ci19Ci0KLWludCBHcmFwaGljc0NvbnRl
eHQzRDo6Z2V0R3JhcGhpY3NSZXNldFN0YXR1c0FSQigpCi17Ci0gICAgcmV0dXJuIE5PX0VSUk9S
OwotfQotCi0gCiBHcmFwaGljc0NvbnRleHQzREludGVybmFsOjpHcmFwaGljc0NvbnRleHQzRElu
dGVybmFsKEdyYXBoaWNzQ29udGV4dDNEOjpBdHRyaWJ1dGVzIGF0dHJzLCBIb3N0V2luZG93KiBo
b3N0V2luZG93KQogICAgIDogbV9hdHRycyhhdHRycykKICAgICAsIG1faG9zdFdpbmRvdyhob3N0
V2luZG93KQpAQCAtNDk5LDEyICs0ODEsMTIgQEAgdm9pZCogR3JhcGhpY3NDb250ZXh0M0RJbnRl
cm5hbDo6Z2V0UHJvYwogICAgIHJldHVybiAwOwogfQogCi1QYXNzT3duUHRyPEdyYXBoaWNzQ29u
dGV4dDNEPiBHcmFwaGljc0NvbnRleHQzRDo6Y3JlYXRlKEdyYXBoaWNzQ29udGV4dDNEOjpBdHRy
aWJ1dGVzIGF0dHJzLCBIb3N0V2luZG93KiBob3N0V2luZG93LCBHcmFwaGljc0NvbnRleHQzRDo6
UmVuZGVyU3R5bGUgcmVuZGVyU3R5bGUpCitQYXNzUmVmUHRyPEdyYXBoaWNzQ29udGV4dDNEPiBH
cmFwaGljc0NvbnRleHQzRDo6Y3JlYXRlKEdyYXBoaWNzQ29udGV4dDNEOjpBdHRyaWJ1dGVzIGF0
dHJzLCBIb3N0V2luZG93KiBob3N0V2luZG93LCBHcmFwaGljc0NvbnRleHQzRDo6UmVuZGVyU3R5
bGUgcmVuZGVyU3R5bGUpCiB7CiAgICAgLy8gVGhpcyBpbXBsZW1lbnRhdGlvbiBkb2Vzbid0IGN1
cnJlbnRseSBzdXBwb3J0IHJlbmRlcmluZyBkaXJlY3RseSB0byB0aGUgSG9zdFdpbmRvdy4KICAg
ICBpZiAocmVuZGVyU3R5bGUgPT0gUmVuZGVyRGlyZWN0bHlUb0hvc3RXaW5kb3cpCiAgICAgICAg
IHJldHVybiAwOwotICAgIE93blB0cjxHcmFwaGljc0NvbnRleHQzRD4gY29udGV4dChuZXcgR3Jh
cGhpY3NDb250ZXh0M0QoYXR0cnMsIGhvc3RXaW5kb3csIGZhbHNlKSk7CisgICAgUmVmUHRyPEdy
YXBoaWNzQ29udGV4dDNEPiBjb250ZXh0ID0gYWRvcHRSZWYobmV3IEdyYXBoaWNzQ29udGV4dDNE
KGF0dHJzLCBob3N0V2luZG93LCBmYWxzZSkpOwogICAgIHJldHVybiBjb250ZXh0LT5tX2ludGVy
bmFsID8gY29udGV4dC5yZWxlYXNlKCkgOiAwOwogfQogCkBAIC0xMDM4LDcgKzEwMjAsNyBAQCBH
QzNEYm9vbGVhbiBHcmFwaGljc0NvbnRleHQzRDo6aXNUZXh0dXJlCiAgICAgcmV0dXJuIGdsSXNU
ZXh0dXJlKHRleHR1cmUpOwogfQogCi12b2lkIEdyYXBoaWNzQ29udGV4dDNEOjpsaW5lV2lkdGgo
ZG91YmxlIHdpZHRoKQordm9pZCBHcmFwaGljc0NvbnRleHQzRDo6bGluZVdpZHRoKEdDM0RmbG9h
dCB3aWR0aCkKIHsKICAgICBtX2ludGVybmFsLT5tX2dsV2lkZ2V0LT5tYWtlQ3VycmVudCgpOwog
ICAgIGdsTGluZVdpZHRoKHN0YXRpY19jYXN0PGZsb2F0Pih3aWR0aCkpOwpAQCAtMTQ4OSw3ICsx
NDcxLDcgQEAgdm9pZCBHcmFwaGljc0NvbnRleHQzRDo6Z2V0VW5pZm9ybWl2KFBsYQogICAgIG1f
aW50ZXJuYWwtPmdldFVuaWZvcm1pdihwcm9ncmFtLCBsb2NhdGlvbiwgdmFsdWUpOwogfQogCi1s
b25nIEdyYXBoaWNzQ29udGV4dDNEOjpnZXRVbmlmb3JtTG9jYXRpb24oUGxhdGZvcm0zRE9iamVj
dCBwcm9ncmFtLCBjb25zdCBTdHJpbmcmIG5hbWUpCitHQzNEaW50IEdyYXBoaWNzQ29udGV4dDNE
OjpnZXRVbmlmb3JtTG9jYXRpb24oUGxhdGZvcm0zRE9iamVjdCBwcm9ncmFtLCBjb25zdCBTdHJp
bmcmIG5hbWUpCiB7CiAgICAgQVNTRVJUKHByb2dyYW0pOwogICAgIApAQCAtMTYyMCw3ICsxNjAy
LDcgQEAgRXh0ZW5zaW9uczNEKiBHcmFwaGljc0NvbnRleHQzRDo6Z2V0RXh0ZQogewogICAgIGlm
ICghbV9pbnRlcm5hbC0+bV9leHRlbnNpb25zKQogICAgICAgICBtX2ludGVybmFsLT5tX2V4dGVu
c2lvbnMgPSBhZG9wdFB0cihuZXcgRXh0ZW5zaW9uczNEUXQpOwotICAgIHJldHVybiBtX2ludGVy
bmFsLT5tX2V4dGVuc2lvbnM7CisgICAgcmV0dXJuIG1faW50ZXJuYWwtPm1fZXh0ZW5zaW9ucy5n
ZXQoKTsKIH0KIAogYm9vbCBHcmFwaGljc0NvbnRleHQzRDo6Z2V0SW1hZ2VEYXRhKEltYWdlKiBp
bWFnZSwKQEAgLTE2MzcsMTMgKzE2MTksMTMgQEAgYm9vbCBHcmFwaGljc0NvbnRleHQzRDo6Z2V0
SW1hZ2VEYXRhKEltYQogICAgIGlmICghbmF0aXZlUGl4bWFwKQogICAgICAgICByZXR1cm4gZmFs
c2U7CiAKLSAgICBBbHBoYU9wIG5lZWRlZEFscGhhT3AgPSBrQWxwaGFEb05vdGhpbmc7CisgICAg
QWxwaGFPcCBuZWVkZWRBbHBoYU9wID0gQWxwaGFEb05vdGhpbmc7CiAgICAgaWYgKCFwcmVtdWx0
aXBseUFscGhhKQogICAgICAgICAvLyBGSVhNRTogbXVzdCBmZXRjaCB0aGUgaW1hZ2UgZGF0YSBi
ZWZvcmUgdGhlIHByZW11bHRpcGxpY2F0aW9uIHN0ZXAKLSAgICAgICAgbmVlZGVkQWxwaGFPcCA9
IGtBbHBoYURvVW5tdWx0aXBseTsKKyAgICAgICAgbmVlZGVkQWxwaGFPcCA9IEFscGhhRG9Vbm11
bHRpcGx5OwogICAgIFFJbWFnZSBuYXRpdmVJbWFnZSA9IG5hdGl2ZVBpeG1hcC0+dG9JbWFnZSgp
LmNvbnZlcnRUb0Zvcm1hdChRSW1hZ2U6OkZvcm1hdF9BUkdCMzIpOwogICAgIG91dHB1dFZlY3Rv
ci5yZXNpemUobmF0aXZlSW1hZ2UuYnl0ZUNvdW50KCkpOwotICAgIHJldHVybiBwYWNrUGl4ZWxz
KG5hdGl2ZUltYWdlLnJnYlN3YXBwZWQoKS5iaXRzKCksIGtTb3VyY2VGb3JtYXRSR0JBOCwgaW1h
Z2UtPndpZHRoKCksIGltYWdlLT5oZWlnaHQoKSwgMCwKKyAgICByZXR1cm4gcGFja1BpeGVscyhu
YXRpdmVJbWFnZS5yZ2JTd2FwcGVkKCkuYml0cygpLCBTb3VyY2VGb3JtYXRSR0JBOCwgaW1hZ2Ut
PndpZHRoKCksIGltYWdlLT5oZWlnaHQoKSwgMCwKICAgICAgICAgICAgICAgICAgICAgICBmb3Jt
YXQsIHR5cGUsIG5lZWRlZEFscGhhT3AsIG91dHB1dFZlY3Rvci5kYXRhKCkpOwogfQogCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>