<?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>46131</bug_id>
          
          <creation_ts>2010-09-20 15:36:01 -0700</creation_ts>
          <short_desc>[chromium] Remove GLES2Context and WebGLES2Context</short_desc>
          <delta_ts>2010-09-21 17:34:50 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebCore Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>45912</dependson>
    
    <dependson>46231</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Kenneth Russell">kbr</reporter>
          <assigned_to name="Kenneth Russell">kbr</assigned_to>
          <cc>hclam</cc>
    
    <cc>jamesr</cc>
    
    <cc>scherkus</cc>
    
    <cc>senorblanco</cc>
    
    <cc>vangelis</cc>
    
    <cc>vrk</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>281861</commentid>
    <comment_count>0</comment_count>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2010-09-20 15:36:01 -0700</bug_when>
    <thetext>Now that Chromium&apos;s compositor has been switched over to use GraphicsContext3D for its rendering, the GLES2Context and WebGLES2Context abstractions need to be removed. Their presence is breaking the Windows multi-DLL build due to multiple inclusions of the command buffer client code and its thread-local variables.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>282685</commentid>
    <comment_count>1</comment_count>
      <attachid>68317</attachid>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2010-09-21 17:25:20 -0700</bug_when>
    <thetext>Created attachment 68317
Patch

From the ChangeLog:

Removed now-obsolete GLES2Context and WebGLES2Context classes, and dependency on command buffer client code from WebCore. Built and tested 3D CSS and WebGL content on Mac OS X to test.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>282687</commentid>
    <comment_count>2</comment_count>
      <attachid>68317</attachid>
    <who name="James Robinson">jamesr</who>
    <bug_when>2010-09-21 17:26:47 -0700</bug_when>
    <thetext>Comment on attachment 68317
Patch

R=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>282692</commentid>
    <comment_count>3</comment_count>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2010-09-21 17:34:50 -0700</bug_when>
    <thetext>Committed r68000: &lt;http://trac.webkit.org/changeset/68000&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>68317</attachid>
            <date>2010-09-21 17:25:20 -0700</date>
            <delta_ts>2010-09-21 17:26:47 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>gles2context-removal.patch</filename>
            <type>text/plain</type>
            <size>26227</size>
            <attacher name="Kenneth Russell">kbr</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA2Nzk5NikKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTggQEAKKzIwMTAtMDktMjEgIEtlbm5ldGggUnVzc2VsbCAgPGtickBnb29nbGUu
Y29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFtj
aHJvbWl1bV0gUmVtb3ZlIEdMRVMyQ29udGV4dCBhbmQgV2ViR0xFUzJDb250ZXh0CisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00NjEzMQorCisgICAgICAg
IFJlbW92ZWQgbm93LW9ic29sZXRlIEdMRVMyQ29udGV4dCBhbmQgV2ViR0xFUzJDb250ZXh0IGNs
YXNzZXMsIGFuZAorICAgICAgICBkZXBlbmRlbmN5IG9uIGNvbW1hbmQgYnVmZmVyIGNsaWVudCBj
b2RlIGZyb20gV2ViQ29yZS4gQnVpbHQgYW5kCisgICAgICAgIHRlc3RlZCAzRCBDU1MgYW5kIFdl
YkdMIGNvbnRlbnQgb24gTWFjIE9TIFggdG8gdGVzdC4KKworICAgICAgICAqIFdlYkNvcmUuZ3lw
aToKKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9HTEVTMkNvbnRleHQuaDogUmVtb3ZlZC4K
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9za2lhL0ltYWdlU2tpYS5jcHA6CisKIDIwMTAt
MDktMjEgIFByYXRpayBTb2xhbmtpICA8cHNvbGFua2lAYXBwbGUuY29tPgogCiAgICAgICAgIFJl
dmlld2VkIGJ5IEdlb2ZmcmV5IEdhcmVuIGFuZCBEYXJpbiBBZGxlci4KSW5kZXg6IFdlYkNvcmUv
V2ViQ29yZS5neXBpCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvV2ViQ29yZS5neXBpCShyZXZpc2lv
biA2Nzk5MikKKysrIFdlYkNvcmUvV2ViQ29yZS5neXBpCSh3b3JraW5nIGNvcHkpCkBAIC0yMjIx
LDcgKzIyMjEsNiBAQAogICAgICAgICAgICAgJ3BsYXRmb3JtL2Nocm9taXVtL0ZyYW1lbGVzc1Nj
cm9sbFZpZXdDbGllbnQuaCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vY2hyb21pdW0vR2VvbG9j
YXRpb25TZXJ2aWNlQ2hyb21pdW0uY3BwJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9jaHJvbWl1
bS9HZW9sb2NhdGlvblNlcnZpY2VDaHJvbWl1bS5oJywKLSAgICAgICAgICAgICdwbGF0Zm9ybS9j
aHJvbWl1bS9HTEVTMkNvbnRleHQuaCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vY2hyb21pdW0v
S2V5Q29kZUNvbnZlcnNpb24uaCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vY2hyb21pdW0vS2V5
Q29kZUNvbnZlcnNpb25HdGsuY3BwJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9jaHJvbWl1bS9M
YW5ndWFnZS5jcHAnLApJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9HTEVTMkNvbnRl
eHQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL0dMRVMyQ29udGV4
dC5oCShyZXZpc2lvbiA2Nzk5MikKKysrIFdlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vR0xFUzJD
b250ZXh0LmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNzAgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdo
dCAoQykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zIGFyZQotICogbWV0OgotICoKLSAqICAgICAqIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCi0gKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlCi0gKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCi0gKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCi0gKiBkaXN0cmlidXRpb24u
Ci0gKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMg
b2YgaXRzCi0gKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3Rl
IHByb2R1Y3RzIGRlcml2ZWQgZnJvbQotICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmlj
IHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCi0gKiAiQVMgSVMi
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VAotICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SCi0gKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAotICogT1dORVIgT1IgQ09OVFJJQlVU
T1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCi0gKiBT
UEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UCi0gKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKLSAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQotICogVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAot
ICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpZm5kZWYgR0xFUzJDb250
ZXh0X2gKLSNkZWZpbmUgR0xFUzJDb250ZXh0X2gKLQotI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJs
ZS5oPgotI2luY2x1ZGUgPHd0Zi9Pd25QdHIuaD4KLSNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5o
PgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLWNsYXNzIEdMRVMyQ29udGV4dEludGVybmFsOwot
Y2xhc3MgSW50U2l6ZTsKLWNsYXNzIFBhZ2U7Ci0KLWNsYXNzIEdMRVMyQ29udGV4dCA6IHB1Ymxp
YyBOb25jb3B5YWJsZSB7Ci1wdWJsaWM6Ci0gICAgLy8gVXNlZCBieSB0aGUgaW1wbGVtZW50YXRp
b24gb25seQotICAgIHN0YXRpYyBQYXNzT3duUHRyPEdMRVMyQ29udGV4dD4gY3JlYXRlKFBhc3NP
d25QdHI8R0xFUzJDb250ZXh0SW50ZXJuYWw+KTsKLSAgICB+R0xFUzJDb250ZXh0KCk7Ci0KLSAg
ICBib29sIG1ha2VDdXJyZW50KCk7Ci0gICAgYm9vbCBkZXN0cm95KCk7Ci0gICAgYm9vbCBzd2Fw
QnVmZmVycygpOwotCi0gICAgLy8gT25seSB2YWxpZCBmb3Igb2Zmc2NyZWVuIGNvbnRleHRzLgot
ICAgIHZvaWQgcmVzaXplT2Zmc2NyZWVuQ29udGVudChjb25zdCBJbnRTaXplJik7Ci0KLSAgICAv
LyBSZXR1cm5zIHRoZSBJRCBvZiB0aGUgdGV4dHVyZSB1c2VkIGZvciBvZmZzY3JlZW4gcmVuZGVy
aW5nIGluIHRoZSBjb250ZXh0IG9mIHRoZSBwYXJlbnQuCi0gICAgLy8gVGhpcyB0ZXh0dXJlIGlz
IGFjY2Vzc2libGUgYnkgdGhlIEdQVSBwYWdlIGNvbXBvc2l0b3IuCi0gICAgdW5zaWduZWQgZ2V0
T2Zmc2NyZWVuQ29udGVudFBhcmVudFRleHR1cmVJZCgpOwotCi1wcml2YXRlOgotICAgIEdMRVMy
Q29udGV4dCgpOwotCi0gICAgZnJpZW5kIGNsYXNzIEdMRVMyQ29udGV4dEludGVybmFsOwotICAg
IE93blB0cjxHTEVTMkNvbnRleHRJbnRlcm5hbD4gbV9pbnRlcm5hbDsKLX07Ci0KLX0gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKLQotI2VuZGlmCkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L3NraWEvSW1hZ2VTa2lhLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL3NraWEvSW1hZ2VTa2lhLmNwcAkocmV2aXNpb24gNjc5OTIpCisrKyBXZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL3NraWEvSW1hZ2VTa2lhLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzYsNyAr
MzYsNiBAQAogI2luY2x1ZGUgIkZsb2F0Q29udmVyc2lvbi5oIgogI2luY2x1ZGUgIkZsb2F0UmVj
dC5oIgogI2luY2x1ZGUgIkdMRVMyQ2FudmFzLmgiCi0jaW5jbHVkZSAiR0xFUzJDb250ZXh0Lmgi
CiAjaW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0LmgiCiAjaW5jbHVkZSAiTG9nZ2luZy5oIgogI2lu
Y2x1ZGUgIk5hdGl2ZUltYWdlU2tpYS5oIgpJbmRleDogV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxv
Zwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBXZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCShyZXZpc2lvbiA2Nzk5
NikKKysrIFdlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyAr
MSwyOCBAQAorMjAxMC0wOS0yMSAgS2VubmV0aCBSdXNzZWxsICA8a2JyQGdvb2dsZS5jb20+CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgW2Nocm9taXVt
XSBSZW1vdmUgR0xFUzJDb250ZXh0IGFuZCBXZWJHTEVTMkNvbnRleHQKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ2MTMxCisKKyAgICAgICAgUmVtb3Zl
ZCBub3ctb2Jzb2xldGUgR0xFUzJDb250ZXh0IGFuZCBXZWJHTEVTMkNvbnRleHQgY2xhc3Nlcywg
YW5kCisgICAgICAgIGRlcGVuZGVuY3kgb24gY29tbWFuZCBidWZmZXIgY2xpZW50IGNvZGUgZnJv
bSBXZWJDb3JlLiBCdWlsdCBhbmQKKyAgICAgICAgdGVzdGVkIDNEIENTUyBhbmQgV2ViR0wgY29u
dGVudCBvbiBNYWMgT1MgWCB0byB0ZXN0LgorCisgICAgICAgICogV2ViS2l0Lmd5cDoKKyAgICAg
ICAgKiBwdWJsaWMvV2ViR0xFUzJDb250ZXh0Lmg6IFJlbW92ZWQuCisgICAgICAgICogcHVibGlj
L1dlYkdyYXBoaWNzQ29udGV4dDNELmg6CisgICAgICAgICogcHVibGljL1dlYktpdENsaWVudC5o
OgorICAgICAgICAqIHB1YmxpYy9XZWJWaWV3Lmg6CisgICAgICAgICogc3JjL0Nocm9tZUNsaWVu
dEltcGwuY3BwOgorICAgICAgICAqIHNyYy9HTEVTMkNvbnRleHQuY3BwOiBSZW1vdmVkLgorICAg
ICAgICAqIHNyYy9HTEVTMkNvbnRleHRJbnRlcm5hbC5jcHA6IFJlbW92ZWQuCisgICAgICAgICog
c3JjL0dMRVMyQ29udGV4dEludGVybmFsLmg6IFJlbW92ZWQuCisgICAgICAgICogc3JjL1dlYkdy
YXBoaWNzQ29udGV4dDNERGVmYXVsdEltcGwuY3BwOgorICAgICAgICAqIHNyYy9XZWJHcmFwaGlj
c0NvbnRleHQzRERlZmF1bHRJbXBsLmg6CisgICAgICAgICogc3JjL1dlYlZpZXdJbXBsLmNwcDoK
KyAgICAgICAgKiBzcmMvV2ViVmlld0ltcGwuaDoKKwogMjAxMC0wOS0yMSAgS2VubmV0aCBSdXNz
ZWxsICA8a2JyQGdvb2dsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgSmFtZXMgUm9iaW5z
b24uCkluZGV4OiBXZWJLaXQvY2hyb21pdW0vV2ViS2l0Lmd5cAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJL
aXQvY2hyb21pdW0vV2ViS2l0Lmd5cAkocmV2aXNpb24gNjc5OTIpCisrKyBXZWJLaXQvY2hyb21p
dW0vV2ViS2l0Lmd5cAkod29ya2luZyBjb3B5KQpAQCAtMTcwLDcgKzE3MCw2IEBACiAgICAgICAg
ICAgICAgICAgJ3B1YmxpYy9XZWJHZW9sb2NhdGlvblNlcnZpY2VCcmlkZ2UuaCcsCiAgICAgICAg
ICAgICAgICAgJ3B1YmxpYy9XZWJHZW9sb2NhdGlvblNlcnZpY2VNb2NrLmgnLAogICAgICAgICAg
ICAgICAgICdwdWJsaWMvV2ViR2x5cGhDYWNoZS5oJywKLSAgICAgICAgICAgICAgICAncHVibGlj
L1dlYkdMRVMyQ29udGV4dC5oJywKICAgICAgICAgICAgICAgICAncHVibGljL1dlYkdyYXBoaWNz
Q29udGV4dDNELmgnLAogICAgICAgICAgICAgICAgICdwdWJsaWMvV2ViSGlzdG9yeUl0ZW0uaCcs
CiAgICAgICAgICAgICAgICAgJ3B1YmxpYy9XZWJIVFRQQm9keS5oJywKQEAgLTMyMyw5ICszMjIs
NiBAQAogICAgICAgICAgICAgICAgICdzcmMvRnJhbWVMb2FkZXJDbGllbnRJbXBsLmNwcCcsCiAg
ICAgICAgICAgICAgICAgJ3NyYy9GcmFtZUxvYWRlckNsaWVudEltcGwuaCcsCiAgICAgICAgICAg
ICAgICAgJ3NyYy9GcmFtZU5ldHdvcmtpbmdDb250ZXh0SW1wbC5oJywKLSAgICAgICAgICAgICAg
ICAnc3JjL0dMRVMyQ29udGV4dC5jcHAnLAotICAgICAgICAgICAgICAgICdzcmMvR0xFUzJDb250
ZXh0SW50ZXJuYWwuY3BwJywKLSAgICAgICAgICAgICAgICAnc3JjL0dMRVMyQ29udGV4dEludGVy
bmFsLmgnLAogICAgICAgICAgICAgICAgICdzcmMvR3JhcGhpY3NDb250ZXh0M0QuY3BwJywKICAg
ICAgICAgICAgICAgICAnc3JjL0dyYXBoaWNzQ29udGV4dDNESW50ZXJuYWwuaCcsCiAgICAgICAg
ICAgICAgICAgJ3NyYy9ndGsvV2ViRm9udEluZm8uY3BwJywKQEAgLTU1MSw3ICs1NDcsNiBAQAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICdkZXBlbmRlbmNpZXMnOiBbCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICcuLi8uLi9XZWJDb3JlL1dlYkNvcmUuZ3lwL1dlYkNvcmUu
Z3lwOndlYmNvcmVfYmluZGluZ3MnLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAn
PChjaHJvbWl1bV9zcmNfZGlyKS9idWlsZC90ZW1wX2d5cC9nb29nbGV1cmwuZ3lwOmdvb2dsZXVy
bCcsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICc8KGNocm9taXVtX3NyY19kaXIp
L2dwdS9ncHUuZ3lwOmdsZXMyX2NfbGliJywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgJzwoY2hyb21pdW1fc3JjX2RpcikvdGhpcmRfcGFydHkvaWN1L2ljdS5neXA6KicsCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICc8KGNocm9taXVtX3NyY19kaXIpL3RoaXJkX3Bh
cnR5L2xpYmpwZWcvbGlianBlZy5neXA6bGlianBlZycsCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICc8KGNocm9taXVtX3NyY19kaXIpL3RoaXJkX3BhcnR5L2xpYnBuZy9saWJwbmcu
Z3lwOmxpYnBuZycsCkBAIC03MzEsNyArNzI2LDYgQEAKICAgICAgICAgICAgICAgICAgICAgICAg
ICc8KGNocm9taXVtX3NyY19kaXIpL2Jhc2UvYmFzZS5neXA6YmFzZScsCiAgICAgICAgICAgICAg
ICAgICAgICAgICAnPChjaHJvbWl1bV9zcmNfZGlyKS9iYXNlL2Jhc2UuZ3lwOmJhc2VfaTE4bics
CiAgICAgICAgICAgICAgICAgICAgICAgICAnPChjaHJvbWl1bV9zcmNfZGlyKS9iYXNlL2Jhc2Uu
Z3lwOnRlc3Rfc3VwcG9ydF9iYXNlJywKLSAgICAgICAgICAgICAgICAgICAgICAgICc8KGNocm9t
aXVtX3NyY19kaXIpL2dwdS9ncHUuZ3lwOmdsZXMyX2NfbGliJywKICAgICAgICAgICAgICAgICAg
ICAgICAgICc8KGNocm9taXVtX3NyY19kaXIpL3dlYmtpdC9zdXBwb3J0L3dlYmtpdF9zdXBwb3J0
Lmd5cDpibG9iJywKICAgICAgICAgICAgICAgICAgICAgICAgICc8KGNocm9taXVtX3NyY19kaXIp
L3dlYmtpdC9zdXBwb3J0L3dlYmtpdF9zdXBwb3J0Lmd5cDp3ZWJraXRfc3VwcG9ydCcsCiAgICAg
ICAgICAgICAgICAgICAgIF0sCkBAIC04MTMsNyArODA3LDYgQEAKICAgICAgICAgICAgICAgICAn
PChjaHJvbWl1bV9zcmNfZGlyKS93ZWJraXQvc3VwcG9ydC93ZWJraXRfc3VwcG9ydC5neXA6Ymxv
YicsCiAgICAgICAgICAgICAgICAgJzwoY2hyb21pdW1fc3JjX2Rpcikvd2Via2l0L3N1cHBvcnQv
d2Via2l0X3N1cHBvcnQuZ3lwOmNvcHlfbnBhcGlfbGF5b3V0X3Rlc3RfcGx1Z2luJywKICAgICAg
ICAgICAgICAgICAnPChjaHJvbWl1bV9zcmNfZGlyKS93ZWJraXQvc3VwcG9ydC93ZWJraXRfc3Vw
cG9ydC5neXA6d2Via2l0X3N1cHBvcnQnLAotICAgICAgICAgICAgICAgICc8KGNocm9taXVtX3Ny
Y19kaXIpL2dwdS9ncHUuZ3lwOmdsZXMyX2NfbGliJwogICAgICAgICAgICAgXSwKICAgICAgICAg
ICAgICdpbmNsdWRlX2RpcnMnOiBbCiAgICAgICAgICAgICAgICAgJy4nLApJbmRleDogV2ViS2l0
L2Nocm9taXVtL3B1YmxpYy9XZWJHTEVTMkNvbnRleHQuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQv
Y2hyb21pdW0vcHVibGljL1dlYkdMRVMyQ29udGV4dC5oCShyZXZpc2lvbiA2Nzk5MikKKysrIFdl
YktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViR0xFUzJDb250ZXh0LmgJKHdvcmtpbmcgY29weSkKQEAg
LTEsNzEgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQotICog
bWV0OgotICoKLSAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAgICAgKiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCi0gKiBjb3B5cmlnaHQg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyCi0gKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlCi0gKiBkaXN0cmlidXRpb24uCi0gKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1l
IG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCi0gKiBjb250cmlidXRvcnMgbWF5
IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQotICog
dGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4K
LSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVS
UyBBTkQgQ09OVFJJQlVUT1JTCi0gKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAotICogTElNSVRFRCBUTywgVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCi0gKiBBIFBB
UlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENP
UFlSSUdIVAotICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCi0gKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCi0gKiBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKLSAq
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWQotICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgotICovCi0KLSNpZm5kZWYgV2ViR0xFUzJDb250ZXh0X2gKLSNkZWZpbmUgV2ViR0xFUzJD
b250ZXh0X2gKLQotI2luY2x1ZGUgIldlYkNvbW1vbi5oIgotI2luY2x1ZGUgIldlYk5vbkNvcHlh
YmxlLmgiCi0KLW5hbWVzcGFjZSBXZWJLaXQgewotCi1zdHJ1Y3QgV2ViU2l6ZTsKLWNsYXNzIFdl
YlZpZXc7Ci0KLS8vIFRoaXMgaW50ZXJmYWNlIGFic3RyYWN0cyB0aGUgY3JlYXRpb24gYW5kIG1h
bmFnZW1lbnQgb2YgYW4KLS8vIE9wZW5HTCBFUyAyLjAgY29udGV4dC4KLQotY2xhc3MgV2ViR0xF
UzJDb250ZXh0IDogcHVibGljIFdlYk5vbkNvcHlhYmxlIHsKLXB1YmxpYzoKLSAgICB2aXJ0dWFs
IH5XZWJHTEVTMkNvbnRleHQoKSB7fQotCi0gICAgdmlydHVhbCBib29sIGluaXRpYWxpemUoV2Vi
VmlldyosIFdlYkdMRVMyQ29udGV4dCogcGFyZW50KSA9IDA7Ci0gICAgdmlydHVhbCBib29sIG1h
a2VDdXJyZW50KCkgPSAwOwotICAgIHZpcnR1YWwgYm9vbCBkZXN0cm95KCkgPSAwOwotICAgIHZp
cnR1YWwgYm9vbCBzd2FwQnVmZmVycygpID0gMDsKLQotICAgIC8vIFRoZSBmb2xsb3cgdHdvIGZ1
bmN0aW9ucyBhcmUgZm9yIG1hbmFnaW5nIGEgY29udGV4dCB0aGF0IHJlbmRlcnMgb2Zmc2NyZWVu
LgotCi0gICAgLy8gUmVzaXplcyB0aGUgYmFja2luZyBzdG9yZSB1c2VkIGZvciBvZmZzY3JlZW4g
cmVuZGVyaW5nLgotICAgIHZpcnR1YWwgdm9pZCByZXNpemVPZmZzY3JlZW5Db250ZW50KGNvbnN0
IFdlYlNpemUmKSA9IDA7Ci0KLSAgICAvLyBSZXR1cm5zIHRoZSBJRCBvZiB0aGUgdGV4dHVyZSB1
c2VkIGZvciBvZmZzY3JlZW4gcmVuZGVyaW5nIGluIHRoZSBjb250ZXh0IG9mIHRoZSBwYXJlbnQu
Ci0gICAgdmlydHVhbCB1bnNpZ25lZCBnZXRPZmZzY3JlZW5Db250ZW50UGFyZW50VGV4dHVyZUlk
KCkgPSAwOwotCi0gICAgLy8gVGhlIGZvbGxvd2luZyBmdW5jdGlvbiBpcyB1c2VkIG9ubHkgb24g
TWFjIE9TIFggYW5kIGlzIG5lZWRlZAotICAgIC8vIGluIG9yZGVyIHRvIHJlcG9ydCB3aW5kb3cg
c2l6ZSBjaGFuZ2VzLgotI2lmIGRlZmluZWQoX19BUFBMRV9fKQotICAgIHZpcnR1YWwgdm9pZCBy
ZXNpemVPbnNjcmVlbkNvbnRlbnQoY29uc3QgV2ViU2l6ZSYpID0gMDsKLSNlbmRpZgotfTsKLQot
fSAvLyBuYW1lc3BhY2UgV2ViS2l0Ci0KLSNlbmRpZgpJbmRleDogV2ViS2l0L2Nocm9taXVtL3B1
YmxpYy9XZWJHcmFwaGljc0NvbnRleHQzRC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9jaHJvbWl1
bS9wdWJsaWMvV2ViR3JhcGhpY3NDb250ZXh0M0QuaAkocmV2aXNpb24gNjc5OTIpCisrKyBXZWJL
aXQvY2hyb21pdW0vcHVibGljL1dlYkdyYXBoaWNzQ29udGV4dDNELmgJKHdvcmtpbmcgY29weSkK
QEAgLTg1LDExICs4NSw2IEBAIHB1YmxpYzoKICAgICAvLyBvbiBuZXdseS1jb25zdHJ1Y3RlZCBp
bnN0YW5jZXMuIFJldHVybnMgdHJ1ZSBvbiBzdWNjZXNzLgogICAgIHZpcnR1YWwgYm9vbCBpbml0
aWFsaXplKEF0dHJpYnV0ZXMsIFdlYlZpZXcqLCBib29sIHJlbmRlckRpcmVjdGx5VG9XZWJWaWV3
KSA9IDA7CiAKLSAgICAvLyBJbml0aWFsaXplcyB0aGUgZ3JhcGhpY3MgY29udGV4dDsgc2hvdWxk
IGJlIHRoZSBmaXJzdCBvcGVyYXRpb24gcGVyZm9ybWVkCi0gICAgLy8gb24gbmV3bHktY29uc3Ry
dWN0ZWQgaW5zdGFuY2VzLiBSZXR1cm5zIHRydWUgb24gc3VjY2Vzcy4KLSAgICAvLyBGSVhNRTog
cmVtb3ZlIHRoaXMgZW50cnkgcG9pbnQgb25jZSB0aGUgY29tcG9zaXRvciBpcyBzd2l0Y2hlZCB0
byB1c2UgR3JhcGhpY3NDb250ZXh0M0QuCi0gICAgdmlydHVhbCBib29sIGluaXRpYWxpemUoQXR0
cmlidXRlcywgV2ViVmlldyopID0gMDsKLQogICAgIC8vIE1ha2VzIHRoZSBPcGVuR0wgY29udGV4
dCBjdXJyZW50IG9uIHRoZSBjdXJyZW50IHRocmVhZC4gUmV0dXJucyB0cnVlIG9uCiAgICAgLy8g
c3VjY2Vzcy4KICAgICB2aXJ0dWFsIGJvb2wgbWFrZUNvbnRleHRDdXJyZW50KCkgPSAwOwpJbmRl
eDogV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJLaXRDbGllbnQuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBX
ZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYktpdENsaWVudC5oCShyZXZpc2lvbiA2Nzk5MikKKysr
IFdlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViS2l0Q2xpZW50LmgJKHdvcmtpbmcgY29weSkKQEAg
LTUzLDcgKzUzLDYgQEAgY2xhc3MgV2ViQ2xpcGJvYXJkOwogY2xhc3MgV2ViQ29va2llSmFyOwog
Y2xhc3MgV2ViRmlsZVN5c3RlbTsKIGNsYXNzIFdlYkZpbGVVdGlsaXRpZXM7Ci1jbGFzcyBXZWJH
TEVTMkNvbnRleHQ7CiBjbGFzcyBXZWJHcmFwaGljc0NvbnRleHQzRDsKIGNsYXNzIFdlYklEQkZh
Y3Rvcnk7CiBjbGFzcyBXZWJJREJLZXk7CkBAIC0yNzAsMTIgKzI2OSw2IEBAIHB1YmxpYzoKICAg
ICAvLyBSZXR1cm5zIG5ld2x5IGFsbG9jYXRlZCBXZWJHcmFwaGljc0NvbnRleHQzRCBpbnN0YW5j
ZS4KICAgICB2aXJ0dWFsIFdlYkdyYXBoaWNzQ29udGV4dDNEKiBjcmVhdGVHcmFwaGljc0NvbnRl
eHQzRCgpIHsgcmV0dXJuIDA7IH0KIAotICAgIC8vIEdMRVMyICAtLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotCi0gICAgLy8gUmV0
dXJucyBuZXdseSBhbGxvY2F0ZWQgV2ViR0xFUzJDb250ZXh0IGluc3RhbmNlLgotICAgIC8vIE1h
eSByZXR1cm4gbnVsbCBpZiBpdCBmYWlscyB0byBjcmVhdGUgdGhlIGNvbnRleHQuCi0gICAgdmly
dHVhbCBXZWJHTEVTMkNvbnRleHQqIGNyZWF0ZUdMRVMyQ29udGV4dCgpIHsgcmV0dXJuIDA7IH0K
LQogICAgIC8vIEZpbGVTeXN0ZW0gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogCiAgICAgLy8gTXVzdCByZXR1cm4gbm9uLW51bGwuCklu
ZGV4OiBXZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlZpZXcuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJL
aXQvY2hyb21pdW0vcHVibGljL1dlYlZpZXcuaAkocmV2aXNpb24gNjc5OTIpCisrKyBXZWJLaXQv
Y2hyb21pdW0vcHVibGljL1dlYlZpZXcuaAkod29ya2luZyBjb3B5KQpAQCAtNDQsNyArNDQsNiBA
QCBjbGFzcyBXZWJEZXZUb29sc0FnZW50Q2xpZW50OwogY2xhc3MgV2ViRHJhZ0RhdGE7CiBjbGFz
cyBXZWJGcmFtZTsKIGNsYXNzIFdlYkZyYW1lQ2xpZW50OwotY2xhc3MgV2ViR0xFUzJDb250ZXh0
OwogY2xhc3MgV2ViR3JhcGhpY3NDb250ZXh0M0Q7CiBjbGFzcyBXZWJOb2RlOwogY2xhc3MgV2Vi
U2V0dGluZ3M7CkBAIC0zNDEsMTIgKzM0MCw2IEBAIHB1YmxpYzoKIAogICAgIC8vIEdQVSBhY2Nl
bGVyYXRpb24gc3VwcG9ydCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLQogCi0gICAgLy8gUmV0dXJucyB0aGUgR0xFUzJDb250ZXh0IGFzc29jaWF0ZWQgd2l0aCB0
aGlzIFdlYlZpZXcuIE9uZSB3aWxsIGJlCi0gICAgLy8gY3JlYXRlZCBpZiBpdCBkb2Vzbid0IGFs
cmVhZHkgZXhpc3QuCi0gICAgLy8gRklYTUU6IHJlbW92ZSB0aGlzIG1ldGhvZCBvbmNlIHRoZSBj
b21wb3NpdG9yIGlzIGZ1bGx5IHN3aXRjaGVkCi0gICAgLy8gb3ZlciB0byBHcmFwaGljc0NvbnRl
eHQzRC4KLSAgICB2aXJ0dWFsIFdlYkdMRVMyQ29udGV4dCogZ2xlczJDb250ZXh0KCkgPSAwOwot
CiAgICAgLy8gUmV0dXJucyB0aGUgKG9uLXNjcmVlbikgV2ViR3JhcGhpY3NDb250ZXh0M0QgYXNz
b2NpYXRlZCB3aXRoCiAgICAgLy8gdGhpcyBXZWJWaWV3LiBPbmUgd2lsbCBiZSBjcmVhdGVkIGlm
IGl0IGRvZXNuJ3QgYWxyZWFkeSBleGlzdC4KICAgICAvLyBUaGlzIGlzIHVzZWQgdG8gc2V0IHVw
IHNoYXJpbmcgYmV0d2VlbiB0aGlzIGNvbnRleHQgKHdoaWNoIGlzCkluZGV4OiBXZWJLaXQvY2hy
b21pdW0vc3JjL0Nocm9tZUNsaWVudEltcGwuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9jaHJv
bWl1bS9zcmMvQ2hyb21lQ2xpZW50SW1wbC5jcHAJKHJldmlzaW9uIDY3OTkyKQorKysgV2ViS2l0
L2Nocm9taXVtL3NyYy9DaHJvbWVDbGllbnRJbXBsLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDQs
NyArNDQsNiBAQAogI2luY2x1ZGUgIkZsb2F0UmVjdC5oIgogI2luY2x1ZGUgIkZyYW1lTG9hZFJl
cXVlc3QuaCIKICNpbmNsdWRlICJGcmFtZVZpZXcuaCIKLSNpbmNsdWRlICJHTEVTMkNvbnRleHQu
aCIKICNpbmNsdWRlICJHZW9sb2NhdGlvbi5oIgogI2luY2x1ZGUgIkdlb2xvY2F0aW9uU2Vydmlj
ZS5oIgogI2luY2x1ZGUgIkdlb2xvY2F0aW9uU2VydmljZUNocm9taXVtLmgiCkluZGV4OiBXZWJL
aXQvY2hyb21pdW0vc3JjL0dMRVMyQ29udGV4dC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L2No
cm9taXVtL3NyYy9HTEVTMkNvbnRleHQuY3BwCShyZXZpc2lvbiA2Nzk5MikKKysrIFdlYktpdC9j
aHJvbWl1bS9zcmMvR0xFUzJDb250ZXh0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMSwxMTUgKzAs
MCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQotICogbWV0OgotICoK
LSAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0Ci0gKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCi0gKiBjb3B5cmlnaHQgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCi0gKiBp
biB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlCi0gKiBkaXN0cmlidXRpb24uCi0gKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2ds
ZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCi0gKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQg
dG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQotICogdGhpcyBzb2Z0
d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLSAqCi0gKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09O
VFJJQlVUT1JTCi0gKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVAotICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCi0gKiBBIFBBUlRJQ1VMQVIg
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAot
ICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsCi0gKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCi0gKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKLSAqIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWQotICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICov
Ci0KLSNpbmNsdWRlICJjb25maWcuaCIKLQotI2luY2x1ZGUgIkdMRVMyQ29udGV4dC5oIgotI2lu
Y2x1ZGUgIkdMRVMyQ29udGV4dEludGVybmFsLmgiCi0jaW5jbHVkZSAiSW50U2l6ZS5oIgotI2lu
Y2x1ZGUgIldlYkdMRVMyQ29udGV4dC5oIgotI2luY2x1ZGUgIldlYktpdC5oIgotI2luY2x1ZGUg
IldlYktpdENsaWVudC5oIgotI2luY2x1ZGUgIldlYlZpZXdJbXBsLmgiCi0jaW5jbHVkZSA8d3Rm
L093blB0ci5oPgotCi0vLyBUaGVyZSBhcmUgdHdvIGxldmVscyBvZiBkZWxlZ2F0aW9uIGluIHRo
aXMgZmlsZToKLS8vCi0vLyAgIDEuIEdMRVMyQ29udGV4dCBkZWxlZ2F0ZXMgdG8gR0xFUzJDb250
ZXh0SW50ZXJuYWwuIFRoaXMgaXMgZG9uZQotLy8gICAgICBzbyB0aGF0IHdlIGhhdmUgc29tZSBw
bGFjZSB0byBzdG9yZSBkYXRhIG1lbWJlcnMgY29tbW9uIGFtb25nCi0vLyAgICAgIGltcGxlbWVu
dGF0aW9ucy4KLS8vCi0vLyAgIDIuIEdMRVMyQ29udGV4dEludGVybmFsIGRlbGVnYXRlcyB0byBh
biBpbXBsZW1lbnRhdGlvbiBvZgotLy8gICAgICBXZWJHTEVTMkNvbnRleHQuIFRoaXMgaXMgZG9u
ZSBzbyB3ZSBoYXZlIGEgcGxhY2UgdG8gaW5qZWN0IGFuCi0vLyAgICAgIGltcGxlbWVudGF0aW9u
IHdoaWNoIGNyZWF0ZXMgdGhlIEdMIEVTIGNvbnRleHQuCi0KLXVzaW5nIG5hbWVzcGFjZSBXZWJL
aXQ7Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotUGFzc093blB0cjxHTEVTMkNvbnRleHRJbnRl
cm5hbD4gR0xFUzJDb250ZXh0SW50ZXJuYWw6OmNyZWF0ZShXZWJHTEVTMkNvbnRleHQqIGltcGws
IGJvb2wgb3ducykKLXsKLSAgICBQYXNzT3duUHRyPEdMRVMyQ29udGV4dEludGVybmFsPiByZXN1
bHQgPSBuZXcgR0xFUzJDb250ZXh0SW50ZXJuYWwoaW1wbCwgb3ducyk7Ci0gICAgcmV0dXJuIHJl
c3VsdDsKLX0KLQotUGFzc093blB0cjxHTEVTMkNvbnRleHQ+IEdMRVMyQ29udGV4dDo6Y3JlYXRl
KFBhc3NPd25QdHI8R0xFUzJDb250ZXh0SW50ZXJuYWw+IGludGVybmFsKQotewotICAgIFBhc3NP
d25QdHI8R0xFUzJDb250ZXh0PiByZXN1bHQgPSBuZXcgR0xFUzJDb250ZXh0KCk7Ci0gICAgcmVz
dWx0LT5tX2ludGVybmFsID0gaW50ZXJuYWw7Ci0gICAgcmV0dXJuIHJlc3VsdDsKLX0KLQotR0xF
UzJDb250ZXh0OjpHTEVTMkNvbnRleHQoKQotewotfQotCi1HTEVTMkNvbnRleHQ6On5HTEVTMkNv
bnRleHQoKQotewotfQotCi1ib29sIEdMRVMyQ29udGV4dDo6bWFrZUN1cnJlbnQoKQotewotICAg
IFdlYkdMRVMyQ29udGV4dCogd2ViQ29udGV4dCA9IG1faW50ZXJuYWwtPmdldFdlYkdMRVMyQ29u
dGV4dCgpOwotICAgIGlmICghd2ViQ29udGV4dCkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAg
IHJldHVybiB3ZWJDb250ZXh0LT5tYWtlQ3VycmVudCgpOwotfQotCi1ib29sIEdMRVMyQ29udGV4
dDo6ZGVzdHJveSgpCi17Ci0gICAgV2ViR0xFUzJDb250ZXh0KiB3ZWJDb250ZXh0ID0gbV9pbnRl
cm5hbC0+Z2V0V2ViR0xFUzJDb250ZXh0KCk7Ci0gICAgaWYgKCF3ZWJDb250ZXh0KQotICAgICAg
ICByZXR1cm4gZmFsc2U7Ci0gICAgcmV0dXJuIHdlYkNvbnRleHQtPmRlc3Ryb3koKTsKLX0KLQot
Ym9vbCBHTEVTMkNvbnRleHQ6OnN3YXBCdWZmZXJzKCkKLXsKLSAgICBXZWJHTEVTMkNvbnRleHQq
IHdlYkNvbnRleHQgPSBtX2ludGVybmFsLT5nZXRXZWJHTEVTMkNvbnRleHQoKTsKLSAgICBpZiAo
IXdlYkNvbnRleHQpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICByZXR1cm4gd2ViQ29udGV4
dC0+c3dhcEJ1ZmZlcnMoKTsKLX0KLQotdm9pZCBHTEVTMkNvbnRleHQ6OnJlc2l6ZU9mZnNjcmVl
bkNvbnRlbnQoY29uc3QgSW50U2l6ZSYgc2l6ZSkKLXsKLSAgICBXZWJHTEVTMkNvbnRleHQqIHdl
YkNvbnRleHQgPSBtX2ludGVybmFsLT5nZXRXZWJHTEVTMkNvbnRleHQoKTsKLSAgICBBU1NFUlQo
d2ViQ29udGV4dCk7Ci0gICAgd2ViQ29udGV4dC0+cmVzaXplT2Zmc2NyZWVuQ29udGVudChzaXpl
KTsKLX0KLQotdW5zaWduZWQgR0xFUzJDb250ZXh0OjpnZXRPZmZzY3JlZW5Db250ZW50UGFyZW50
VGV4dHVyZUlkKCkKLXsKLSAgICBXZWJHTEVTMkNvbnRleHQqIHdlYkNvbnRleHQgPSBtX2ludGVy
bmFsLT5nZXRXZWJHTEVTMkNvbnRleHQoKTsKLSAgICBBU1NFUlQod2ViQ29udGV4dCk7Ci0gICAg
cmV0dXJuIHdlYkNvbnRleHQtPmdldE9mZnNjcmVlbkNvbnRlbnRQYXJlbnRUZXh0dXJlSWQoKTsK
LX0KLQotfSAgLy8gbmFtZXNwYWNlIFdlYkNvcmUKSW5kZXg6IFdlYktpdC9jaHJvbWl1bS9zcmMv
R0xFUzJDb250ZXh0SW50ZXJuYWwuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9jaHJvbWl1bS9z
cmMvR0xFUzJDb250ZXh0SW50ZXJuYWwuY3BwCShyZXZpc2lvbiA2Nzk5MikKKysrIFdlYktpdC9j
aHJvbWl1bS9zcmMvR0xFUzJDb250ZXh0SW50ZXJuYWwuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0x
LDUyICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKLSAqIG1l
dDoKLSAqCi0gKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogICAgICogUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQotICogY29weXJpZ2h0IG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
cgotICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZQotICogZGlzdHJpYnV0aW9uLgotICogICAgICogTmVpdGhlciB0aGUgbmFtZSBv
ZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwotICogY29udHJpYnV0b3JzIG1heSBi
ZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KLSAqIHRo
aXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0g
KgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMg
QU5EIENPTlRSSUJVVE9SUwotICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKLSAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgotICogQSBQQVJU
SUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZ
UklHSFQKLSAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLAotICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAotICogTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0gKiBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkKLSAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0KLSNpbmNsdWRlICJHTEVTMkNvbnRleHRJ
bnRlcm5hbC5oIgotCi0jaW5jbHVkZSAiV2ViR0xFUzJDb250ZXh0LmgiCi0KLW5hbWVzcGFjZSBX
ZWJDb3JlIHsKLQotR0xFUzJDb250ZXh0SW50ZXJuYWw6OkdMRVMyQ29udGV4dEludGVybmFsKFdl
YktpdDo6V2ViR0xFUzJDb250ZXh0KiBpbXBsLCBib29sIG93bnMpCi0gICAgOiBtX2ltcGwoaW1w
bCkKLSAgICAsIG1fb3ducyhvd25zKQotewotfQotCi1HTEVTMkNvbnRleHRJbnRlcm5hbDo6fkdM
RVMyQ29udGV4dEludGVybmFsKCkKLXsKLSAgICBpZiAobV9vd25zKQotICAgICAgICBkZWxldGUg
bV9pbXBsOwotfQotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCi0KSW5kZXg6IFdlYktpdC9jaHJv
bWl1bS9zcmMvR0xFUzJDb250ZXh0SW50ZXJuYWwuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvY2hy
b21pdW0vc3JjL0dMRVMyQ29udGV4dEludGVybmFsLmgJKHJldmlzaW9uIDY3OTkyKQorKysgV2Vi
S2l0L2Nocm9taXVtL3NyYy9HTEVTMkNvbnRleHRJbnRlcm5hbC5oCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDU1ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKLSAq
IG1ldDoKLSAqCi0gKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogICAgICogUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQotICogY29weXJpZ2h0
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lcgotICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZQotICogZGlzdHJpYnV0aW9uLgotICogICAgICogTmVpdGhlciB0aGUgbmFt
ZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwotICogY29udHJpYnV0b3JzIG1h
eSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KLSAq
IHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24u
Ci0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERF
UlMgQU5EIENPTlRSSUJVVE9SUwotICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKLSAqIExJTUlURUQgVE8sIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgotICogQSBQ
QVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBD
T1BZUklHSFQKLSAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLAotICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAotICogTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0g
KiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkKLSAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KLSAqLwotCi0jaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KLQotbmFtZXNwYWNlIFdl
YktpdCB7Ci1jbGFzcyBXZWJHTEVTMkNvbnRleHQ7Ci19Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsK
LQotY2xhc3MgR0xFUzJDb250ZXh0SW50ZXJuYWwgewotcHVibGljOgotICAgIC8vIElmICdvd25z
JyBpcyBzZXQgdG8gdHJ1ZSwgdGhpcyBHTEVTMkNvbnRleHRJbnRlcm5hbCB0YWtlcyBvd25lcnNo
aXAgb2YgdGhlIHBhc3NlZCBpbiBXZWJLaXQ6OldlYkdMRVMyQ29udGV4dC4KLSAgICBzdGF0aWMg
UGFzc093blB0cjxHTEVTMkNvbnRleHRJbnRlcm5hbD4gY3JlYXRlKFdlYktpdDo6V2ViR0xFUzJD
b250ZXh0KiBpbXBsLCBib29sIG93bnMpOwotCi0gICAgV2ViS2l0OjpXZWJHTEVTMkNvbnRleHQq
IGdldFdlYkdMRVMyQ29udGV4dCgpIHsgcmV0dXJuIG1faW1wbDsgfQotCi0gICAgfkdMRVMyQ29u
dGV4dEludGVybmFsKCk7Ci0KLXByaXZhdGU6Ci0gICAgR0xFUzJDb250ZXh0SW50ZXJuYWwoV2Vi
S2l0OjpXZWJHTEVTMkNvbnRleHQqIGltcGwsIGJvb2wgb3ducyk7Ci0KLSAgICBXZWJLaXQ6Oldl
YkdMRVMyQ29udGV4dCogbV9pbXBsOwotICAgIGJvb2wgbV9vd25zOwotfTsKLQotfQpJbmRleDog
V2ViS2l0L2Nocm9taXVtL3NyYy9XZWJHcmFwaGljc0NvbnRleHQzRERlZmF1bHRJbXBsLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBXZWJLaXQvY2hyb21pdW0vc3JjL1dlYkdyYXBoaWNzQ29udGV4dDNERGVm
YXVsdEltcGwuY3BwCShyZXZpc2lvbiA2Nzk5MikKKysrIFdlYktpdC9jaHJvbWl1bS9zcmMvV2Vi
R3JhcGhpY3NDb250ZXh0M0REZWZhdWx0SW1wbC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTExOSwx
MSArMTE5LDYgQEAgYm9vbCBXZWJHcmFwaGljc0NvbnRleHQzRERlZmF1bHRJbXBsOjppbgogICAg
IHJldHVybiB0cnVlOwogfQogCi1ib29sIFdlYkdyYXBoaWNzQ29udGV4dDNERGVmYXVsdEltcGw6
OmluaXRpYWxpemUoV2ViR3JhcGhpY3NDb250ZXh0M0Q6OkF0dHJpYnV0ZXMgYXR0cmlidXRlcywg
V2ViVmlldyogd2ViVmlldykKLXsKLSAgICByZXR1cm4gaW5pdGlhbGl6ZShhdHRyaWJ1dGVzLCB3
ZWJWaWV3LCBmYWxzZSk7Ci19Ci0KIHZvaWQgV2ViR3JhcGhpY3NDb250ZXh0M0REZWZhdWx0SW1w
bDo6dmFsaWRhdGVBdHRyaWJ1dGVzKCkKIHsKICAgICBjb25zdCBjaGFyKiBleHRlbnNpb25zID0g
cmVpbnRlcnByZXRfY2FzdDxjb25zdCBjaGFyKj4oZ2xHZXRTdHJpbmcoR0xfRVhURU5TSU9OUykp
OwpJbmRleDogV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJHcmFwaGljc0NvbnRleHQzRERlZmF1bHRJ
bXBsLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJHcmFwaGljc0NvbnRl
eHQzRERlZmF1bHRJbXBsLmgJKHJldmlzaW9uIDY3OTkyKQorKysgV2ViS2l0L2Nocm9taXVtL3Ny
Yy9XZWJHcmFwaGljc0NvbnRleHQzRERlZmF1bHRJbXBsLmgJKHdvcmtpbmcgY29weSkKQEAgLTYw
LDggKzYwLDYgQEAgcHVibGljOgogICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICAgIC8vIFdlYkdyYXBo
aWNzQ29udGV4dDNEIG1ldGhvZHMKICAgICB2aXJ0dWFsIGJvb2wgaW5pdGlhbGl6ZShXZWJHcmFw
aGljc0NvbnRleHQzRDo6QXR0cmlidXRlcyBhdHRyaWJ1dGVzLCBXZWJWaWV3KiwgYm9vbCk7Ci0g
ICAgLy8gRklYTUU6IHJlbW92ZSBvbmNlIGNvbXBvc2l0b3IgaXMgc3dpdGNoZWQgb3ZlciB0byBH
cmFwaGljc0NvbnRleHQzRC4KLSAgICB2aXJ0dWFsIGJvb2wgaW5pdGlhbGl6ZShXZWJHcmFwaGlj
c0NvbnRleHQzRDo6QXR0cmlidXRlcyBhdHRyaWJ1dGVzLCBXZWJWaWV3Kik7CiAgICAgdmlydHVh
bCBib29sIG1ha2VDb250ZXh0Q3VycmVudCgpOwogCiAgICAgdmlydHVhbCBpbnQgd2lkdGgoKTsK
SW5kZXg6IFdlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFdlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuY3BwCShyZXZpc2lvbiA2Nzk5MikKKysr
IFdlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0y
NDMxLDExICsyNDMxLDYgQEAgU2hhcmVkR3JhcGhpY3NDb250ZXh0M0QqIFdlYlZpZXdJbXBsOjpn
ZQogICAgIHJldHVybiBtX3NoYXJlZENvbnRleHQzRC5nZXQoKTsKIH0KIAotV2ViR0xFUzJDb250
ZXh0KiBXZWJWaWV3SW1wbDo6Z2xlczJDb250ZXh0KCkKLXsKLSAgICByZXR1cm4gMDsKLX0KLQog
V2ViR3JhcGhpY3NDb250ZXh0M0QqIFdlYlZpZXdJbXBsOjpncmFwaGljc0NvbnRleHQzRCgpCiB7
CiAjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQpJbmRleDogV2ViS2l0L2Nocm9taXVt
L3NyYy9XZWJWaWV3SW1wbC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9jaHJvbWl1bS9zcmMvV2Vi
Vmlld0ltcGwuaAkocmV2aXNpb24gNjc5OTIpCisrKyBXZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZp
ZXdJbXBsLmgJKHdvcmtpbmcgY29weSkKQEAgLTMzMiw5ICszMzIsNiBAQCBwdWJsaWM6CiAgICAg
dm9pZCBzY3JvbGxSb290TGF5ZXJSZWN0KGNvbnN0IFdlYkNvcmU6OkludFNpemUmIHNjcm9sbERl
bHRhLCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiBjbGlwUmVjdCk7CiAgICAgdm9pZCBpbnZhbGlk
YXRlUm9vdExheWVyUmVjdChjb25zdCBXZWJDb3JlOjpJbnRSZWN0Jik7CiAjZW5kaWYKLSAgICAv
LyBGSVhNRTogcmVtb3ZlIHRoaXMgbWV0aG9kIG9uY2UgdGhlIGNvbXBvc2l0b3IgaXMgZnVsbHkg
c3dpdGNoZWQKLSAgICAvLyBvdmVyIHRvIEdyYXBoaWNzQ29udGV4dDNELgotICAgIHZpcnR1YWwg
V2ViR0xFUzJDb250ZXh0KiBnbGVzMkNvbnRleHQoKTsKIAogICAgIC8vIFJldHVybnMgdGhlIG9u
c2NyZWVuIDNEIGNvbnRleHQgdXNlZCBieSB0aGUgY29tcG9zaXRvci4gVGhpcyBpcwogICAgIC8v
IHVzZWQgYnkgdGhlIHJlbmRlcmVyJ3MgY29kZSB0byBzZXQgdXAgcmVzb3VyY2Ugc2hhcmluZyBi
ZXR3ZWVuCg==
</data>
<flag name="review"
          id="57826"
          type_id="1"
          status="+"
          setter="jamesr"
    />
    <flag name="commit-queue"
          id="57827"
          type_id="3"
          status="-"
          setter="kbr"
    />
          </attachment>
      

    </bug>

</bugzilla>