<?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>40370</bug_id>
          
          <creation_ts>2010-06-09 11:01:50 -0700</creation_ts>
          <short_desc>Failing LayoutTests/canvas/philip/tests/2d.shadow.enable.blur.html</short_desc>
          <delta_ts>2010-06-10 09:49:29 -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>DOM</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P3</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Chang Shu">cshu</reporter>
          <assigned_to name="Chang Shu">cshu</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>dglazkov</cc>
    
    <cc>gustavo</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>xan.lopez</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>235878</commentid>
    <comment_count>0</comment_count>
    <who name="Chang Shu">cshu</who>
    <bug_when>2010-06-09 11:01:50 -0700</bug_when>
    <thetext>The above test case fails on all platforms but works on Firefox.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>235943</commentid>
    <comment_count>1</comment_count>
      <attachid>58278</attachid>
    <who name="Chang Shu">cshu</who>
    <bug_when>2010-06-09 12:39:52 -0700</bug_when>
    <thetext>Created attachment 58278
fix patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>235944</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-06-09 12:43:11 -0700</bug_when>
    <thetext>Attachment 58278 did not pass style-queue:

Failed to run &quot;[&apos;WebKitTools/Scripts/check-webkit-style&apos;, &apos;--no-squash&apos;]&quot; exit_code: 1
WebCore/platform/graphics/wx/GraphicsContextWx.cpp:557:  Missing space after ,  [whitespace/comma] [3]
Total errors found: 1 in 19 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>235967</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-06-09 13:29:24 -0700</bug_when>
    <thetext>Attachment 58278 did not build on chromium:
Build output: http://webkit-commit-queue.appspot.com/results/3179105</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>236003</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-06-09 14:12:49 -0700</bug_when>
    <thetext>Attachment 58278 did not build on gtk:
Build output: http://webkit-commit-queue.appspot.com/results/3183114</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>236018</commentid>
    <comment_count>5</comment_count>
      <attachid>58298</attachid>
    <who name="Chang Shu">cshu</who>
    <bug_when>2010-06-09 14:42:45 -0700</bug_when>
    <thetext>Created attachment 58298
fix patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>236056</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-06-09 15:46:53 -0700</bug_when>
    <thetext>Attachment 58298 did not build on gtk:
Build output: http://webkit-commit-queue.appspot.com/results/3205100</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>236112</commentid>
    <comment_count>7</comment_count>
      <attachid>58318</attachid>
    <who name="Chang Shu">cshu</who>
    <bug_when>2010-06-09 18:12:43 -0700</bug_when>
    <thetext>Created attachment 58318
fix patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>236398</commentid>
    <comment_count>8</comment_count>
      <attachid>58318</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-06-10 09:49:23 -0700</bug_when>
    <thetext>Comment on attachment 58318
fix patch

Clearing flags on attachment: 58318

Committed r60961: &lt;http://trac.webkit.org/changeset/60961&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>236399</commentid>
    <comment_count>9</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-06-10 09:49:29 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>58278</attachid>
            <date>2010-06-09 12:39:52 -0700</date>
            <delta_ts>2010-06-09 14:42:45 -0700</delta_ts>
            <desc>fix patch</desc>
            <filename>bug40370_1.patch</filename>
            <type>text/plain</type>
            <size>18206</size>
            <attacher name="Chang Shu">cshu</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA2MDkwNSkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsNTcgQEAKKzIwMTAtMDYtMDkgIENoYW5nIFNodSAgPGNoYW5nLnNodUBub2tpYS5j
b20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQ2hh
bmdlIHRoZSB0eXBlIG9mIFNoYWRvd0JsdXIgZnJvbSBpbnQgdG8gZmxvYXQgaW4gR3JhcGhpY3ND
b250ZXh0LgorICAgICAgICBVc2luZyBpbnQgZm9yIFNoYWRvd0JsdXIgbG9zZXMgcHJlY2lzaW9u
IGFuZCBmYWlscyB0aGUgdGVzdC4KKyAgICAgICAgTm90ZTogVGhpcyBjb2RlIGNoYW5nZSBmaXhl
cyBRdCBwb3J0IGJ1dCBNYWMgaXMgc3RpbGwgZmFpbGluZyBkdWUgdG8KKyAgICAgICAgcGxhdGZv
cm0gaXNzdWUuIEZ1bmN0aW9uIENHQ29udGV4dFNldFNoYWRvd1dpdGhDb2xvcigpIGRvZXMgbm90
IHRha2UKKyAgICAgICAgYSBibHVyIHZhbHVlIGxlc3MgdGhhbiAwLjUuCisKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQwMzcwCisKKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
R3JhcGhpY3NDb250ZXh0OjpzZXRTaGFkb3cpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3ND
b250ZXh0OjpnZXRTaGFkb3cpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNz
Q29udGV4dC5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dFBy
aXZhdGUuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9Gb250Q2Fpcm8uY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6Rm9udDo6ZHJhd0dseXBocyk6CisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvY2Fpcm8vR3JhcGhpY3NDb250ZXh0Q2Fpcm8uY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6R3JhcGhpY3NDb250ZXh0OjpzZXRQbGF0Zm9ybVNoYWRvdyk6CisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3MvY2cvR3JhcGhpY3NDb250ZXh0Q0cuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6R3JhcGhpY3NDb250ZXh0OjpzZXRQbGF0Zm9ybVNoYWRvdyk6CisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvZ3RrL0ZvbnRHdGsuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Rm9udDo6ZHJh
d0NvbXBsZXhUZXh0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9oYWlrdS9HcmFwaGlj
c0NvbnRleHRIYWlrdS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQ6OnNl
dFBsYXRmb3JtU2hhZG93KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9tYWMvRm9udE1h
Yy5tbToKKyAgICAgICAgKFdlYkNvcmU6OkZvbnQ6OmRyYXdHbHlwaHMpOgorICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL29wZW52Zy9HcmFwaGljc0NvbnRleHRPcGVuVkcuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0OjpzZXRQbGF0Zm9ybVNoYWRvdyk6CisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvcXQvRm9udFF0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZv
bnQ6OmRyYXdDb21wbGV4VGV4dCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvcXQvR3Jh
cGhpY3NDb250ZXh0UXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0Ojpk
cmF3UmVjdCk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQ6OmRyYXdMaW5lKToK
KyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDo6c3Ryb2tlQXJjKToKKyAgICAgICAg
KFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDo6ZHJhd0NvbnZleFBvbHlnb24pOgorICAgICAgICAo
V2ViQ29yZTo6ZHJhd0ZpbGxlZFNoYWRvd1BhdGgpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhp
Y3NDb250ZXh0OjpzdHJva2VQYXRoKToKKyAgICAgICAgKFdlYkNvcmU6OmRyYXdCb3JkZXJsZXNz
UmVjdFNoYWRvdyk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQ6OnNldFBsYXRm
b3JtU2hhZG93KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9xdC9JbWFnZVF0LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkJpdG1hcEltYWdlOjpkcmF3KToKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9za2lhL0dyYXBoaWNzQ29udGV4dFNraWEuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6R3JhcGhpY3NDb250ZXh0OjpzZXRQbGF0Zm9ybVNoYWRvdyk6CisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3Mvd2luL0ZvbnRDR1dpbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpkcmF3R0RJ
R2x5cGhzKToKKyAgICAgICAgKFdlYkNvcmU6OkZvbnQ6OmRyYXdHbHlwaHMpOgorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL3dpbmNlL0dyYXBoaWNzQ29udGV4dFdpbmNlLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDo6c2V0UGxhdGZvcm1TaGFkb3cpOgorICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL3d4L0dyYXBoaWNzQ29udGV4dFd4LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDo6c2V0UGxhdGZvcm1TaGFkb3cpOgorCiAyMDEwLTA2
LTA5ICBBbmRlcnMgQmFra2VuICA8YWdiYWtrZW5AZ21haWwuY29tPgogCiAgICAgICAgIFJldmll
d2VkIGJ5IERhdmlkIExldmluLgpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFw
aGljc0NvbnRleHQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
R3JhcGhpY3NDb250ZXh0LmNwcAkocmV2aXNpb24gNjA4ODcpCisrKyBXZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEyOSw3ICsx
MjksNyBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dDo6c2V0U3Ryb2tlQ29sb3IoY29uCiAgICAgc2V0
UGxhdGZvcm1TdHJva2VDb2xvcihjb2xvciwgY29sb3JTcGFjZSk7CiB9CiAKLXZvaWQgR3JhcGhp
Y3NDb250ZXh0OjpzZXRTaGFkb3coY29uc3QgSW50U2l6ZSYgc2l6ZSwgaW50IGJsdXIsIGNvbnN0
IENvbG9yJiBjb2xvciwgQ29sb3JTcGFjZSBjb2xvclNwYWNlKQordm9pZCBHcmFwaGljc0NvbnRl
eHQ6OnNldFNoYWRvdyhjb25zdCBJbnRTaXplJiBzaXplLCBmbG9hdCBibHVyLCBjb25zdCBDb2xv
ciYgY29sb3IsIENvbG9yU3BhY2UgY29sb3JTcGFjZSkKIHsKICAgICBtX2NvbW1vbi0+c3RhdGUu
c2hhZG93U2l6ZSA9IHNpemU7CiAgICAgbV9jb21tb24tPnN0YXRlLnNoYWRvd0JsdXIgPSBibHVy
OwpAQCAtMTQ1LDcgKzE0NSw3IEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0OjpjbGVhclNoYWRvdygp
CiAgICAgY2xlYXJQbGF0Zm9ybVNoYWRvdygpOwogfQogCi1ib29sIEdyYXBoaWNzQ29udGV4dDo6
Z2V0U2hhZG93KEludFNpemUmIHNpemUsIGludCYgYmx1ciwgQ29sb3ImIGNvbG9yKSBjb25zdAor
Ym9vbCBHcmFwaGljc0NvbnRleHQ6OmdldFNoYWRvdyhJbnRTaXplJiBzaXplLCBmbG9hdCYgYmx1
ciwgQ29sb3ImIGNvbG9yKSBjb25zdAogewogICAgIHNpemUgPSBtX2NvbW1vbi0+c3RhdGUuc2hh
ZG93U2l6ZTsKICAgICBibHVyID0gbV9jb21tb24tPnN0YXRlLnNoYWRvd0JsdXI7CkluZGV4OiBX
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dC5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0LmgJKHJldmlzaW9uIDYw
ODg3KQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQuaAkod29y
a2luZyBjb3B5KQpAQCAtMjYzLDggKzI2Myw4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAg
ICAgdm9pZCBiZWdpblRyYW5zcGFyZW5jeUxheWVyKGZsb2F0IG9wYWNpdHkpOwogICAgICAgICB2
b2lkIGVuZFRyYW5zcGFyZW5jeUxheWVyKCk7CiAKLSAgICAgICAgdm9pZCBzZXRTaGFkb3coY29u
c3QgSW50U2l6ZSYsIGludCBibHVyLCBjb25zdCBDb2xvciYsIENvbG9yU3BhY2UpOwotICAgICAg
ICBib29sIGdldFNoYWRvdyhJbnRTaXplJiwgaW50JiwgQ29sb3ImKSBjb25zdDsKKyAgICAgICAg
dm9pZCBzZXRTaGFkb3coY29uc3QgSW50U2l6ZSYsIGZsb2F0IGJsdXIsIGNvbnN0IENvbG9yJiwg
Q29sb3JTcGFjZSk7CisgICAgICAgIGJvb2wgZ2V0U2hhZG93KEludFNpemUmLCBmbG9hdCYsIENv
bG9yJikgY29uc3Q7CiAgICAgICAgIHZvaWQgY2xlYXJTaGFkb3coKTsKIAogICAgICAgICB2b2lk
IGRyYXdGb2N1c1JpbmcoY29uc3QgVmVjdG9yPEludFJlY3Q+JiwgaW50IHdpZHRoLCBpbnQgb2Zm
c2V0LCBjb25zdCBDb2xvciYpOwpAQCAtNDA5LDcgKzQwOSw3IEBAIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAogICAgICAgICB2b2lkIHNldFBsYXRmb3JtU2hvdWxkQW50aWFsaWFzKGJvb2wgYik7CiAK
LSAgICAgICAgdm9pZCBzZXRQbGF0Zm9ybVNoYWRvdyhjb25zdCBJbnRTaXplJiwgaW50IGJsdXIs
IGNvbnN0IENvbG9yJiwgQ29sb3JTcGFjZSk7CisgICAgICAgIHZvaWQgc2V0UGxhdGZvcm1TaGFk
b3coY29uc3QgSW50U2l6ZSYsIGZsb2F0IGJsdXIsIGNvbnN0IENvbG9yJiwgQ29sb3JTcGFjZSk7
CiAgICAgICAgIHZvaWQgY2xlYXJQbGF0Zm9ybVNoYWRvdygpOwogCiAgICAgICAgIHN0YXRpYyB2
b2lkIGFkanVzdExpbmVUb1BpeGVsQm91bmRhcmllcyhGbG9hdFBvaW50JiBwMSwgRmxvYXRQb2lu
dCYgcDIsIGZsb2F0IHN0cm9rZVdpZHRoLCBjb25zdCBTdHJva2VTdHlsZSYpOwpJbmRleDogV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHRQcml2YXRlLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHRQcml2YXRlLmgJ
KHJldmlzaW9uIDYwODg3KQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0Nv
bnRleHRQcml2YXRlLmgJKHdvcmtpbmcgY29weSkKQEAgLTczLDcgKzczLDcgQEAgbmFtZXNwYWNl
IFdlYkNvcmUgewogICAgICAgICBib29sIHBhaW50aW5nRGlzYWJsZWQ7CiAgICAgICAgIAogICAg
ICAgICBJbnRTaXplIHNoYWRvd1NpemU7Ci0gICAgICAgIHVuc2lnbmVkIHNoYWRvd0JsdXI7Cisg
ICAgICAgIGZsb2F0IHNoYWRvd0JsdXI7CiAgICAgICAgIENvbG9yIHNoYWRvd0NvbG9yOwogCiAg
ICAgICAgIGJvb2wgc2hhZG93c0lnbm9yZVRyYW5zZm9ybXM7CkluZGV4OiBXZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2NhaXJvL0ZvbnRDYWlyby5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jYWlyby9Gb250Q2Fpcm8uY3BwCShyZXZpc2lvbiA2MDg4NykKKysr
IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vRm9udENhaXJvLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtNzEsNyArNzEsNyBAQCB2b2lkIEZvbnQ6OmRyYXdHbHlwaHMoR3JhcGhpY3NDb250
ZXh0KiBjCiAKICAgICAvLyBUZXh0IHNoYWRvdywgaW5zcGlyZWQgYnkgRm9udE1hYwogICAgIElu
dFNpemUgc2hhZG93U2l6ZTsKLSAgICBpbnQgc2hhZG93Qmx1ciA9IDA7CisgICAgZmxvYXQgc2hh
ZG93Qmx1ciA9IDA7CiAgICAgQ29sb3Igc2hhZG93Q29sb3I7CiAgICAgYm9vbCBoYXNTaGFkb3cg
PSBjb250ZXh0LT50ZXh0RHJhd2luZ01vZGUoKSA9PSBjVGV4dEZpbGwgJiYKICAgICAgICAgY29u
dGV4dC0+Z2V0U2hhZG93KHNoYWRvd1NpemUsIHNoYWRvd0JsdXIsIHNoYWRvd0NvbG9yKTsKSW5k
ZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vR3JhcGhpY3NDb250ZXh0Q2Fpcm8u
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vR3JhcGhp
Y3NDb250ZXh0Q2Fpcm8uY3BwCShyZXZpc2lvbiA2MDg4NykKKysrIFdlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY2Fpcm8vR3JhcGhpY3NDb250ZXh0Q2Fpcm8uY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC04NDEsNyArODQxLDcgQEAgdm9pZCBHcmFwaGljc0NvbnRleHQ6OmNsaXBUb0ltYWdlQnVmZmVy
KAogICAgIG5vdEltcGxlbWVudGVkKCk7CiB9CiAKLXZvaWQgR3JhcGhpY3NDb250ZXh0OjpzZXRQ
bGF0Zm9ybVNoYWRvdyhJbnRTaXplIGNvbnN0JiBzaXplLCBpbnQsIENvbG9yIGNvbnN0JiwgQ29s
b3JTcGFjZSkKK3ZvaWQgR3JhcGhpY3NDb250ZXh0OjpzZXRQbGF0Zm9ybVNoYWRvdyhJbnRTaXpl
IGNvbnN0JiBzaXplLCBmbG9hdCwgQ29sb3IgY29uc3QmLCBDb2xvclNwYWNlKQogewogICAgIC8v
IENhaXJvIGRvZXNuJ3Qgc3VwcG9ydCBzaGFkb3dzIG5hdGl2ZWx5LCB0aGV5IGFyZSBkcmF3biBt
YW51YWxseSBpbiB0aGUgZHJhdyoKICAgICAvLyBmdW5jdGlvbnMKSW5kZXg6IFdlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY2cvR3JhcGhpY3NDb250ZXh0Q0cuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvR3JhcGhpY3NDb250ZXh0Q0cuY3BwCShyZXZpc2lv
biA2MDg4NykKKysrIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvR3JhcGhpY3NDb250ZXh0
Q0cuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC03NjQsNyArNzY0LDcgQEAgdm9pZCBHcmFwaGljc0Nv
bnRleHQ6OmVuZFRyYW5zcGFyZW5jeUxheQogICAgIG1fZGF0YS0+bV91c2VyVG9EZXZpY2VUcmFu
c2Zvcm1Lbm93blRvQmVJZGVudGl0eSA9IGZhbHNlOwogfQogCi12b2lkIEdyYXBoaWNzQ29udGV4
dDo6c2V0UGxhdGZvcm1TaGFkb3coY29uc3QgSW50U2l6ZSYgb2Zmc2V0LCBpbnQgYmx1ciwgY29u
c3QgQ29sb3ImIGNvbG9yLCBDb2xvclNwYWNlIGNvbG9yU3BhY2UpCit2b2lkIEdyYXBoaWNzQ29u
dGV4dDo6c2V0UGxhdGZvcm1TaGFkb3coY29uc3QgSW50U2l6ZSYgb2Zmc2V0LCBmbG9hdCBibHVy
LCBjb25zdCBDb2xvciYgY29sb3IsIENvbG9yU3BhY2UgY29sb3JTcGFjZSkKIHsKICAgICBpZiAo
cGFpbnRpbmdEaXNhYmxlZCgpKQogICAgICAgICByZXR1cm47CkluZGV4OiBXZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2d0ay9Gb250R3RrLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2d0ay9Gb250R3RrLmNwcAkocmV2aXNpb24gNjA4ODcpCisrKyBXZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2d0ay9Gb250R3RrLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjEx
LDcgKzIxMSw3IEBAIHZvaWQgRm9udDo6ZHJhd0NvbXBsZXhUZXh0KEdyYXBoaWNzQ29udGUKIAog
ICAgIC8vIFRleHQgc2hhZG93LCBpbnNwaXJlZCBieSBGb250TWFjCiAgICAgSW50U2l6ZSBzaGFk
b3dTaXplOwotICAgIGludCBzaGFkb3dCbHVyID0gMDsKKyAgICBmbG9hdCBzaGFkb3dCbHVyID0g
MDsKICAgICBDb2xvciBzaGFkb3dDb2xvcjsKICAgICBib29sIGhhc1NoYWRvdyA9IGNvbnRleHQt
PnRleHREcmF3aW5nTW9kZSgpID09IGNUZXh0RmlsbCAmJgogICAgICAgICBjb250ZXh0LT5nZXRT
aGFkb3coc2hhZG93U2l6ZSwgc2hhZG93Qmx1ciwgc2hhZG93Q29sb3IpOwpJbmRleDogV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9oYWlrdS9HcmFwaGljc0NvbnRleHRIYWlrdS5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9oYWlrdS9HcmFwaGljc0NvbnRleHRI
YWlrdS5jcHAJKHJldmlzaW9uIDYwODg3KQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9o
YWlrdS9HcmFwaGljc0NvbnRleHRIYWlrdS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTUzNiw3ICs1
MzYsNyBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dDo6Y2xlYXJQbGF0Zm9ybVNoYWRvCiAgICAgbm90
SW1wbGVtZW50ZWQoKTsKIH0KIAotdm9pZCBHcmFwaGljc0NvbnRleHQ6OnNldFBsYXRmb3JtU2hh
ZG93KEludFNpemUgY29uc3QmLCBpbnQsIENvbG9yIGNvbnN0JiwgQ29sb3JTcGFjZSkKK3ZvaWQg
R3JhcGhpY3NDb250ZXh0OjpzZXRQbGF0Zm9ybVNoYWRvdyhJbnRTaXplIGNvbnN0JiwgZmxvYXQs
IENvbG9yIGNvbnN0JiwgQ29sb3JTcGFjZSkKIHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwogfQpJ
bmRleDogV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvRm9udE1hYy5tbQo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9Gb250TWFjLm1tCShyZXZpc2lvbiA2
MDg4NykKKysrIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0ZvbnRNYWMubW0JKHdvcmtp
bmcgY29weSkKQEAgLTEzNiw3ICsxMzYsNyBAQCB2b2lkIEZvbnQ6OmRyYXdHbHlwaHMoR3JhcGhp
Y3NDb250ZXh0KiBjCiAKIAogICAgIEludFNpemUgc2hhZG93U2l6ZTsKLSAgICBpbnQgc2hhZG93
Qmx1cjsKKyAgICBmbG9hdCBzaGFkb3dCbHVyOwogICAgIENvbG9yIHNoYWRvd0NvbG9yOwogICAg
IENvbG9yU3BhY2UgZmlsbENvbG9yU3BhY2UgPSBjb250ZXh0LT5maWxsQ29sb3JTcGFjZSgpOwog
ICAgIGNvbnRleHQtPmdldFNoYWRvdyhzaGFkb3dTaXplLCBzaGFkb3dCbHVyLCBzaGFkb3dDb2xv
cik7CkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW52Zy9HcmFwaGljc0NvbnRl
eHRPcGVuVkcuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3Bl
bnZnL0dyYXBoaWNzQ29udGV4dE9wZW5WRy5jcHAJKHJldmlzaW9uIDYwODg3KQorKysgV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVudmcvR3JhcGhpY3NDb250ZXh0T3BlblZHLmNwcAkod29y
a2luZyBjb3B5KQpAQCAtMjkyLDcgKzI5Miw3IEBAIEZsb2F0UmVjdCBHcmFwaGljc0NvbnRleHQ6
OnJvdW5kVG9EZXZpY2UKICAgICByZXR1cm4gRmxvYXRSZWN0KGVuY2xvc2luZ0ludFJlY3QobV9k
YXRhLT50cmFuc2Zvcm1hdGlvbigpLm1hcFJlY3QocmVjdCkpKTsKIH0KIAotdm9pZCBHcmFwaGlj
c0NvbnRleHQ6OnNldFBsYXRmb3JtU2hhZG93KGNvbnN0IEludFNpemUmIHNpemUsIGludCBibHVy
LCBjb25zdCBDb2xvciYgY29sb3IsIENvbG9yU3BhY2UgY29sb3JTcGFjZSkKK3ZvaWQgR3JhcGhp
Y3NDb250ZXh0OjpzZXRQbGF0Zm9ybVNoYWRvdyhjb25zdCBJbnRTaXplJiBzaXplLCBmbG9hdCBi
bHVyLCBjb25zdCBDb2xvciYgY29sb3IsIENvbG9yU3BhY2UgY29sb3JTcGFjZSkKIHsKICAgICBp
ZiAocGFpbnRpbmdEaXNhYmxlZCgpKQogICAgICAgICByZXR1cm47CkluZGV4OiBXZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL3F0L0ZvbnRRdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9xdC9Gb250UXQuY3BwCShyZXZpc2lvbiA2MDg4NykKKysrIFdlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvcXQvRm9udFF0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTA1LDcg
KzEwNSw3IEBAIHZvaWQgRm9udDo6ZHJhd0NvbXBsZXhUZXh0KEdyYXBoaWNzQ29udGUKIAogICAg
IC8vIHRleHQgc2hhZG93CiAgICAgSW50U2l6ZSBzaGFkb3dTaXplOwotICAgIGludCBzaGFkb3dC
bHVyOworICAgIGZsb2F0IHNoYWRvd0JsdXI7CiAgICAgQ29sb3Igc2hhZG93Q29sb3I7CiAgICAg
Ym9vbCBoYXNTaGFkb3cgPSBjdHgtPnRleHREcmF3aW5nTW9kZSgpID09IGNUZXh0RmlsbCAmJiBj
dHgtPmdldFNoYWRvdyhzaGFkb3dTaXplLCBzaGFkb3dCbHVyLCBzaGFkb3dDb2xvcik7CiAKSW5k
ZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvcXQvR3JhcGhpY3NDb250ZXh0UXQuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvcXQvR3JhcGhpY3NDb250ZXh0
UXQuY3BwCShyZXZpc2lvbiA2MDg4NykKKysrIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvcXQv
R3JhcGhpY3NDb250ZXh0UXQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMzQsNyArMzM0LDcgQEAg
dm9pZCBHcmFwaGljc0NvbnRleHQ6OmRyYXdSZWN0KGNvbnN0IEludAogCiAgICAgaWYgKG1fY29t
bW9uLT5zdGF0ZS5zaGFkb3dDb2xvci5pc1ZhbGlkKCkpIHsKICAgICAgICAgSW50U2l6ZSBzaGFk
b3dTaXplOwotICAgICAgICBpbnQgc2hhZG93Qmx1cjsKKyAgICAgICAgZmxvYXQgc2hhZG93Qmx1
cjsKICAgICAgICAgQ29sb3Igc2hhZG93Q29sb3I7CiAgICAgICAgIGlmIChnZXRTaGFkb3coc2hh
ZG93U2l6ZSwgc2hhZG93Qmx1ciwgc2hhZG93Q29sb3IpKSB7CiAgICAgICAgICAgICBJbnRSZWN0
IHNoYWRvd1JlY3QgPSByZWN0OwpAQCAtMzcyLDcgKzM3Miw3IEBAIHZvaWQgR3JhcGhpY3NDb250
ZXh0OjpkcmF3TGluZShjb25zdCBJbnQKICAgICBhZGp1c3RMaW5lVG9QaXhlbEJvdW5kYXJpZXMo
cDEsIHAyLCB3aWR0aCwgc3R5bGUpOwogCiAgICAgSW50U2l6ZSBzaGFkb3dTaXplOwotICAgIGlu
dCBzaGFkb3dCbHVyOworICAgIGZsb2F0IHNoYWRvd0JsdXI7CiAgICAgQ29sb3Igc2hhZG93Q29s
b3I7CiAgICAgaWYgKHRleHREcmF3aW5nTW9kZSgpID09IGNUZXh0RmlsbCAmJiBnZXRTaGFkb3co
c2hhZG93U2l6ZSwgc2hhZG93Qmx1ciwgc2hhZG93Q29sb3IpKSB7CiAgICAgICAgIHAtPnNhdmUo
KTsKQEAgLTQ3NCw3ICs0NzQsNyBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dDo6c3Ryb2tlQXJjKGNv
bnN0IEluCiAgICAgcC0+c2V0UmVuZGVySGludChRUGFpbnRlcjo6QW50aWFsaWFzaW5nLCB0cnVl
KTsKIAogICAgIEludFNpemUgc2hhZG93U2l6ZTsKLSAgICBpbnQgc2hhZG93Qmx1cjsKKyAgICBm
bG9hdCBzaGFkb3dCbHVyOwogICAgIENvbG9yIHNoYWRvd0NvbG9yOwogICAgIHN0YXJ0QW5nbGUg
Kj0gMTY7CiAgICAgYW5nbGVTcGFuICo9IDE2OwpAQCAtNTA5LDcgKzUwOSw3IEBAIHZvaWQgR3Jh
cGhpY3NDb250ZXh0OjpkcmF3Q29udmV4UG9seWdvbigKICAgICBwLT5zYXZlKCk7CiAgICAgcC0+
c2V0UmVuZGVySGludChRUGFpbnRlcjo6QW50aWFsaWFzaW5nLCBzaG91bGRBbnRpYWxpYXMpOwog
ICAgIEludFNpemUgc2hhZG93U2l6ZTsKLSAgICBpbnQgc2hhZG93Qmx1cjsKKyAgICBmbG9hdCBz
aGFkb3dCbHVyOwogICAgIENvbG9yIHNoYWRvd0NvbG9yOwogICAgIGlmIChnZXRTaGFkb3coc2hh
ZG93U2l6ZSwgc2hhZG93Qmx1ciwgc2hhZG93Q29sb3IpKSB7CiAgICAgICAgIHAtPnNhdmUoKTsK
QEAgLTU0MCw3ICs1NDAsNyBAQCBRUGVuIEdyYXBoaWNzQ29udGV4dDo6cGVuKCkKIHN0YXRpYyB2
b2lkIGlubGluZSBkcmF3RmlsbGVkU2hhZG93UGF0aChHcmFwaGljc0NvbnRleHQqIGNvbnRleHQs
IFFQYWludGVyKiBwLCBjb25zdCBRUGFpbnRlclBhdGgmIHBhdGgpCiB7CiAgICAgSW50U2l6ZSBz
aGFkb3dTaXplOwotICAgIGludCBzaGFkb3dCbHVyOworICAgIGZsb2F0IHNoYWRvd0JsdXI7CiAg
ICAgQ29sb3Igc2hhZG93Q29sb3I7CiAgICAgaWYgKGNvbnRleHQtPmdldFNoYWRvdyhzaGFkb3dT
aXplLCBzaGFkb3dCbHVyLCBzaGFkb3dDb2xvcikpIHsKICAgICAgICAgcC0+dHJhbnNsYXRlKHNo
YWRvd1NpemUud2lkdGgoKSwgc2hhZG93U2l6ZS5oZWlnaHQoKSk7CkBAIC01ODcsNyArNTg3LDcg
QEAgdm9pZCBHcmFwaGljc0NvbnRleHQ6OnN0cm9rZVBhdGgoKQogCiAgICAgaWYgKG1fY29tbW9u
LT5zdGF0ZS5zdHJva2VQYXR0ZXJuIHx8IG1fY29tbW9uLT5zdGF0ZS5zdHJva2VHcmFkaWVudCB8
fCBzdHJva2VDb2xvcigpLmFscGhhKCkpIHsKICAgICAgICAgSW50U2l6ZSBzaGFkb3dTaXplOwot
ICAgICAgICBpbnQgc2hhZG93Qmx1cjsKKyAgICAgICAgZmxvYXQgc2hhZG93Qmx1cjsKICAgICAg
ICAgQ29sb3Igc2hhZG93Q29sb3I7CiAgICAgICAgIGlmIChnZXRTaGFkb3coc2hhZG93U2l6ZSwg
c2hhZG93Qmx1ciwgc2hhZG93Q29sb3IpKSB7CiAgICAgICAgICAgICBRVHJhbnNmb3JtIHQocC0+
d29ybGRUcmFuc2Zvcm0oKSk7CkBAIC02MTksNyArNjE5LDcgQEAgdm9pZCBHcmFwaGljc0NvbnRl
eHQ6OnN0cm9rZVBhdGgoKQogc3RhdGljIGlubGluZSB2b2lkIGRyYXdCb3JkZXJsZXNzUmVjdFNo
YWRvdyhHcmFwaGljc0NvbnRleHQqIGNvbnRleHQsIFFQYWludGVyKiBwLCBjb25zdCBGbG9hdFJl
Y3QmIHJlY3QpCiB7CiAgICAgSW50U2l6ZSBzaGFkb3dTaXplOwotICAgIGludCBzaGFkb3dCbHVy
OworICAgIGZsb2F0IHNoYWRvd0JsdXI7CiAgICAgQ29sb3Igc2hhZG93Q29sb3I7CiAgICAgaWYg
KGNvbnRleHQtPmdldFNoYWRvdyhzaGFkb3dTaXplLCBzaGFkb3dCbHVyLCBzaGFkb3dDb2xvcikp
IHsKICAgICAgICAgRmxvYXRSZWN0IHNoYWRvd1JlY3QocmVjdCk7CkBAIC04MjAsNyArODIwLDcg
QEAgRmxvYXRSZWN0IEdyYXBoaWNzQ29udGV4dDo6cm91bmRUb0RldmljZQogICAgIHJldHVybiBG
bG9hdFJlY3Qocm91bmRlZE9yaWdpbiwgcm91bmRlZExvd2VyUmlnaHQgLSByb3VuZGVkT3JpZ2lu
KTsKIH0KIAotdm9pZCBHcmFwaGljc0NvbnRleHQ6OnNldFBsYXRmb3JtU2hhZG93KGNvbnN0IElu
dFNpemUmIHNpemUsIGludCwgY29uc3QgQ29sb3ImLCBDb2xvclNwYWNlKQordm9pZCBHcmFwaGlj
c0NvbnRleHQ6OnNldFBsYXRmb3JtU2hhZG93KGNvbnN0IEludFNpemUmIHNpemUsIGZsb2F0LCBj
b25zdCBDb2xvciYsIENvbG9yU3BhY2UpCiB7CiAgICAgLy8gUXQgZG9lc24ndCBzdXBwb3J0IHNo
YWRvd3MgbmF0aXZlbHksIHRoZXkgYXJlIGRyYXduIG1hbnVhbGx5IGluIHRoZSBkcmF3KgogICAg
IC8vIGZ1bmN0aW9ucwpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9xdC9JbWFnZVF0
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3F0L0ltYWdlUXQu
Y3BwCShyZXZpc2lvbiA2MDg4NykKKysrIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvcXQvSW1h
Z2VRdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE4OCw3ICsxODgsNyBAQCB2b2lkIEJpdG1hcElt
YWdlOjpkcmF3KEdyYXBoaWNzQ29udGV4dCogCiAgICAgICAgIHBhaW50ZXItPnNldENvbXBvc2l0
aW9uTW9kZShRUGFpbnRlcjo6Q29tcG9zaXRpb25Nb2RlX1NvdXJjZSk7CiAKICAgICBJbnRTaXpl
IHNoYWRvd1NpemU7Ci0gICAgaW50IHNoYWRvd0JsdXI7CisgICAgZmxvYXQgc2hhZG93Qmx1cjsK
ICAgICBDb2xvciBzaGFkb3dDb2xvcjsKICAgICBpZiAoY3R4dC0+Z2V0U2hhZG93KHNoYWRvd1Np
emUsIHNoYWRvd0JsdXIsIHNoYWRvd0NvbG9yKSkgewogICAgICAgICBGbG9hdFJlY3Qgc2hhZG93
SW1hZ2VSZWN0KGRzdCk7CkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3NraWEvR3Jh
cGhpY3NDb250ZXh0U2tpYS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9za2lhL0dyYXBoaWNzQ29udGV4dFNraWEuY3BwCShyZXZpc2lvbiA2MDg4NykKKysrIFdl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc2tpYS9HcmFwaGljc0NvbnRleHRTa2lhLmNwcAkod29y
a2luZyBjb3B5KQpAQCAtOTc4LDcgKzk3OCw3IEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0OjpzZXRQ
bGF0Zm9ybUZpbGxQYXQKIH0KIAogdm9pZCBHcmFwaGljc0NvbnRleHQ6OnNldFBsYXRmb3JtU2hh
ZG93KGNvbnN0IEludFNpemUmIHNpemUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgaW50IGJsdXJJbnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgZmxvYXQgYmx1ckZsb2F0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGNvbnN0IENvbG9yJiBjb2xvciwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBDb2xvclNwYWNlIGNvbG9yU3BhY2UpCiB7CkBAIC05OTMsNyArOTkzLDcgQEAg
dm9pZCBHcmFwaGljc0NvbnRleHQ6OnNldFBsYXRmb3JtU2hhZG93KAogCiAgICAgZG91YmxlIHdp
ZHRoID0gc2l6ZS53aWR0aCgpOwogICAgIGRvdWJsZSBoZWlnaHQgPSBzaXplLmhlaWdodCgpOwot
ICAgIGRvdWJsZSBibHVyID0gYmx1ckludDsKKyAgICBkb3VibGUgYmx1ciA9IGJsdXJGbG9hdDsK
IAogICAgIC8vIFRPRE8odGMpOiBUaGlzIHN0aWxsIGRvZXMgbm90IGFkZHJlc3MgdGhlIGlzc3Vl
IHRoYXQgc2hhZG93cwogICAgIC8vIHdpdGhpbiBjYW52YXMgZWxlbWVudHMgc2hvdWxkIGlnbm9y
ZSB0cmFuc2Zvcm1zLgpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vRm9udENH
V2luLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9Gb250
Q0dXaW4uY3BwCShyZXZpc2lvbiA2MDg4NykKKysrIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
d2luL0ZvbnRDR1dpbi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE0MSw3ICsxNDEsNyBAQCBzdGF0
aWMgdm9pZCBkcmF3R0RJR2x5cGhzKEdyYXBoaWNzQ29udGV4CiAgICAgICAgIGRyYXdJbnRvQml0
bWFwID0gZmlsbENvbG9yLmFscGhhKCkgIT0gMjU1IHx8IGdyYXBoaWNzQ29udGV4dC0+aW5UcmFu
c3BhcmVuY3lMYXllcigpOwogICAgICAgICBpZiAoIWRyYXdJbnRvQml0bWFwKSB7CiAgICAgICAg
ICAgICBJbnRTaXplIHNpemU7Ci0gICAgICAgICAgICBpbnQgYmx1cjsKKyAgICAgICAgICAgIGZs
b2F0IGJsdXI7CiAgICAgICAgICAgICBDb2xvciBjb2xvcjsKICAgICAgICAgICAgIGdyYXBoaWNz
Q29udGV4dC0+Z2V0U2hhZG93KHNpemUsIGJsdXIsIGNvbG9yKTsKICAgICAgICAgICAgIGRyYXdJ
bnRvQml0bWFwID0gIXNpemUuaXNFbXB0eSgpIHx8IGJsdXI7CkBAIC0zNTAsNyArMzUwLDcgQEAg
dm9pZCBGb250OjpkcmF3R2x5cGhzKEdyYXBoaWNzQ29udGV4dCogZwogICAgIHdrU2V0Q0dDb250
ZXh0Rm9udFJlbmRlcmluZ1N0eWxlKGNnQ29udGV4dCwgZm9udC0+aXNTeXN0ZW1Gb250KCksIGZh
bHNlLCBmb250LT5wbGF0Zm9ybURhdGEoKS51c2VHREkoKSk7CiAKICAgICBJbnRTaXplIHNoYWRv
d1NpemU7Ci0gICAgaW50IHNoYWRvd0JsdXI7CisgICAgZmxvYXQgc2hhZG93Qmx1cjsKICAgICBD
b2xvciBzaGFkb3dDb2xvcjsKICAgICBncmFwaGljc0NvbnRleHQtPmdldFNoYWRvdyhzaGFkb3dT
aXplLCBzaGFkb3dCbHVyLCBzaGFkb3dDb2xvcik7CiAKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3Mvd2luY2UvR3JhcGhpY3NDb250ZXh0V2luY2UuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luY2UvR3JhcGhpY3NDb250ZXh0V2luY2UuY3BwCShy
ZXZpc2lvbiA2MDg4NykKKysrIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luY2UvR3JhcGhp
Y3NDb250ZXh0V2luY2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNTUwLDcgKzE1NTAsNyBAQCB2
b2lkIEdyYXBoaWNzQ29udGV4dDo6ZmlsbFJlY3QoY29uc3QgRmxvCiAgICAgICAgIGZpbGxSZWN0
KHJlY3QsIGZpbGxDb2xvcigpLCBEZXZpY2VDb2xvclNwYWNlKTsKIH0KIAotdm9pZCBHcmFwaGlj
c0NvbnRleHQ6OnNldFBsYXRmb3JtU2hhZG93KGNvbnN0IEludFNpemUmLCBpbnQsIGNvbnN0IENv
bG9yJiwgQ29sb3JTcGFjZSkKK3ZvaWQgR3JhcGhpY3NDb250ZXh0OjpzZXRQbGF0Zm9ybVNoYWRv
dyhjb25zdCBJbnRTaXplJiwgZmxvYXQsIGNvbnN0IENvbG9yJiwgQ29sb3JTcGFjZSkKIHsKICAg
ICBub3RJbXBsZW1lbnRlZCgpOwogfQpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93
eC9HcmFwaGljc0NvbnRleHRXeC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy93eC9HcmFwaGljc0NvbnRleHRXeC5jcHAJKHJldmlzaW9uIDYwODg3KQorKysgV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy93eC9HcmFwaGljc0NvbnRleHRXeC5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTU1NCw3ICs1NTQsNyBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dDo6ZmlsbFJlY3Qo
Y29uc3QgRmxvCiAgICAgICAgIHJldHVybjsKIH0KIAotdm9pZCBHcmFwaGljc0NvbnRleHQ6OnNl
dFBsYXRmb3JtU2hhZG93KEludFNpemUgY29uc3QmLGludCxDb2xvciBjb25zdCYsIENvbG9yU3Bh
Y2UpIAordm9pZCBHcmFwaGljc0NvbnRleHQ6OnNldFBsYXRmb3JtU2hhZG93KEludFNpemUgY29u
c3QmLGZsb2F0LENvbG9yIGNvbnN0JiwgQ29sb3JTcGFjZSkgCiB7IAogICAgIG5vdEltcGxlbWVu
dGVkKCk7IAogfQpJbmRleDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExh
eW91dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNpb24gNjA5MDUpCisrKyBMYXlvdXRUZXN0cy9DaGFu
Z2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxMSBAQAorMjAxMC0wNi0wOSAgQ2hhbmcg
U2h1ICA8Y2hhbmcuc2h1QG5va2lhLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBbUXRdIFVuc2tpcCBjYW52YXMvcGhpbGlwL3Rlc3RzLzJkLnNo
YWRvdy5lbmFibGUuYmx1ci5odG1sLgorCisgICAgICAgICogcGxhdGZvcm0vcXQvU2tpcHBlZDoK
KwogMjAxMC0wNi0wOSAgS2VubmV0aCBSdXNzZWxsICA8a2JyQGdvb2dsZS5jb20+CiAKICAgICAg
ICAgUmV2aWV3ZWQgYnkgRGltaXRyaSBHbGF6a292LgpJbmRleDogTGF5b3V0VGVzdHMvcGxhdGZv
cm0vcXQvU2tpcHBlZAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9Ta2lw
cGVkCShyZXZpc2lvbiA2MDg4NykKKysrIExheW91dFRlc3RzL3BsYXRmb3JtL3F0L1NraXBwZWQJ
KHdvcmtpbmcgY29weSkKQEAgLTUzNDUsNyArNTM0NSw2IEBAIGNhbnZhcy9waGlsaXAvdGVzdHMv
MmQuc2hhZG93LmFscGhhLjUuaHQKIGNhbnZhcy9waGlsaXAvdGVzdHMvMmQuc2hhZG93LmNhbnZh
cy5hbHBoYS5odG1sCiBjYW52YXMvcGhpbGlwL3Rlc3RzLzJkLnNoYWRvdy5jYW52YXMuYmFzaWMu
aHRtbAogY2FudmFzL3BoaWxpcC90ZXN0cy8yZC5zaGFkb3cuY2FudmFzLnRyYW5zcGFyZW50LjIu
aHRtbAotY2FudmFzL3BoaWxpcC90ZXN0cy8yZC5zaGFkb3cuZW5hYmxlLmJsdXIuaHRtbAogY2Fu
dmFzL3BoaWxpcC90ZXN0cy8yZC5zaGFkb3cuZW5hYmxlLnguaHRtbAogY2FudmFzL3BoaWxpcC90
ZXN0cy8yZC5zaGFkb3cuZW5hYmxlLnkuaHRtbAogY2FudmFzL3BoaWxpcC90ZXN0cy8yZC5zaGFk
b3cuZ3JhZGllbnQuYWxwaGEuaHRtbAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>58298</attachid>
            <date>2010-06-09 14:42:45 -0700</date>
            <delta_ts>2010-06-09 18:12:43 -0700</delta_ts>
            <desc>fix patch</desc>
            <filename>bug40370_2.patch</filename>
            <type>text/plain</type>
            <size>19068</size>
            <attacher name="Chang Shu">cshu</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA2MDkxMykKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsNTkgQEAKKzIwMTAtMDYtMDkgIENoYW5nIFNodSAgPGNoYW5nLnNodUBub2tpYS5j
b20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQ2hh
bmdlIHRoZSB0eXBlIG9mIFNoYWRvd0JsdXIgZnJvbSBpbnQgdG8gZmxvYXQgaW4gR3JhcGhpY3ND
b250ZXh0LgorICAgICAgICBVc2luZyBpbnQgZm9yIFNoYWRvd0JsdXIgbG9zZXMgcHJlY2lzaW9u
IGFuZCBmYWlscyB0aGUgdGVzdC4KKyAgICAgICAgTm90ZTogVGhpcyBjb2RlIGNoYW5nZSBmaXhl
cyBRdCBwb3J0IGJ1dCBNYWMgaXMgc3RpbGwgZmFpbGluZyBkdWUgdG8KKyAgICAgICAgcGxhdGZv
cm0gaXNzdWUuIEZ1bmN0aW9uIENHQ29udGV4dFNldFNoYWRvd1dpdGhDb2xvcigpIGRvZXMgbm90
IHRha2UKKyAgICAgICAgYSBibHVyIHZhbHVlIGxlc3MgdGhhbiAwLjUuCisKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQwMzcwCisKKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
R3JhcGhpY3NDb250ZXh0OjpzZXRTaGFkb3cpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3ND
b250ZXh0OjpnZXRTaGFkb3cpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNz
Q29udGV4dC5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dFBy
aXZhdGUuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9Gb250Q2Fpcm8uY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6Rm9udDo6ZHJhd0dseXBocyk6CisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvY2Fpcm8vR3JhcGhpY3NDb250ZXh0Q2Fpcm8uY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6ZHJhd1BhdGhTaGFkb3cpOgorICAgICAgICAoV2ViQ29yZTo6ZHJhd0JvcmRlcmxlc3NS
ZWN0U2hhZG93KToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDo6c2V0UGxhdGZv
cm1TaGFkb3cpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NnL0dyYXBoaWNzQ29udGV4
dENHLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDo6c2V0UGxhdGZvcm1T
aGFkb3cpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2d0ay9Gb250R3RrLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkZvbnQ6OmRyYXdDb21wbGV4VGV4dCk6CisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvaGFpa3UvR3JhcGhpY3NDb250ZXh0SGFpa3UuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6R3JhcGhpY3NDb250ZXh0OjpzZXRQbGF0Zm9ybVNoYWRvdyk6CisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3MvbWFjL0ZvbnRNYWMubW06CisgICAgICAgIChXZWJDb3JlOjpGb250Ojpk
cmF3R2x5cGhzKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9vcGVudmcvR3JhcGhpY3ND
b250ZXh0T3BlblZHLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDo6c2V0
UGxhdGZvcm1TaGFkb3cpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3F0L0ZvbnRRdC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpGb250OjpkcmF3Q29tcGxleFRleHQpOgorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL3F0L0dyYXBoaWNzQ29udGV4dFF0LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkdyYXBoaWNzQ29udGV4dDo6ZHJhd1JlY3QpOgorICAgICAgICAoV2ViQ29yZTo6R3Jh
cGhpY3NDb250ZXh0OjpkcmF3TGluZSk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRl
eHQ6OnN0cm9rZUFyYyk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQ6OmRyYXdD
b252ZXhQb2x5Z29uKToKKyAgICAgICAgKFdlYkNvcmU6OmRyYXdGaWxsZWRTaGFkb3dQYXRoKToK
KyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDo6c3Ryb2tlUGF0aCk6CisgICAgICAg
IChXZWJDb3JlOjpkcmF3Qm9yZGVybGVzc1JlY3RTaGFkb3cpOgorICAgICAgICAoV2ViQ29yZTo6
R3JhcGhpY3NDb250ZXh0OjpzZXRQbGF0Zm9ybVNoYWRvdyk6CisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvcXQvSW1hZ2VRdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpCaXRtYXBJbWFnZTo6
ZHJhdyk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvc2tpYS9HcmFwaGljc0NvbnRleHRT
a2lhLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDo6c2V0UGxhdGZvcm1T
aGFkb3cpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3dpbi9Gb250Q0dXaW4uY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6ZHJhd0dESUdseXBocyk6CisgICAgICAgIChXZWJDb3JlOjpGb250
OjpkcmF3R2x5cGhzKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy93aW5jZS9HcmFwaGlj
c0NvbnRleHRXaW5jZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQ6OnNl
dFBsYXRmb3JtU2hhZG93KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy93eC9HcmFwaGlj
c0NvbnRleHRXeC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQ6OnNldFBs
YXRmb3JtU2hhZG93KToKKwogMjAxMC0wNi0wOSAgRW5yaWNvIFJvcyAgPGVyb3NAY29kZWF1cm9y
YS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgQXJpeWEgSGlkYXlhdC4KSW5kZXg6IFdlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0LmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBX
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dC5jcHAJKHJldmlzaW9uIDYw
ODg3KQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC0xMjksNyArMTI5LDcgQEAgdm9pZCBHcmFwaGljc0NvbnRleHQ6OnNl
dFN0cm9rZUNvbG9yKGNvbgogICAgIHNldFBsYXRmb3JtU3Ryb2tlQ29sb3IoY29sb3IsIGNvbG9y
U3BhY2UpOwogfQogCi12b2lkIEdyYXBoaWNzQ29udGV4dDo6c2V0U2hhZG93KGNvbnN0IEludFNp
emUmIHNpemUsIGludCBibHVyLCBjb25zdCBDb2xvciYgY29sb3IsIENvbG9yU3BhY2UgY29sb3JT
cGFjZSkKK3ZvaWQgR3JhcGhpY3NDb250ZXh0OjpzZXRTaGFkb3coY29uc3QgSW50U2l6ZSYgc2l6
ZSwgZmxvYXQgYmx1ciwgY29uc3QgQ29sb3ImIGNvbG9yLCBDb2xvclNwYWNlIGNvbG9yU3BhY2Up
CiB7CiAgICAgbV9jb21tb24tPnN0YXRlLnNoYWRvd1NpemUgPSBzaXplOwogICAgIG1fY29tbW9u
LT5zdGF0ZS5zaGFkb3dCbHVyID0gYmx1cjsKQEAgLTE0NSw3ICsxNDUsNyBAQCB2b2lkIEdyYXBo
aWNzQ29udGV4dDo6Y2xlYXJTaGFkb3coKQogICAgIGNsZWFyUGxhdGZvcm1TaGFkb3coKTsKIH0K
IAotYm9vbCBHcmFwaGljc0NvbnRleHQ6OmdldFNoYWRvdyhJbnRTaXplJiBzaXplLCBpbnQmIGJs
dXIsIENvbG9yJiBjb2xvcikgY29uc3QKK2Jvb2wgR3JhcGhpY3NDb250ZXh0OjpnZXRTaGFkb3co
SW50U2l6ZSYgc2l6ZSwgZmxvYXQmIGJsdXIsIENvbG9yJiBjb2xvcikgY29uc3QKIHsKICAgICBz
aXplID0gbV9jb21tb24tPnN0YXRlLnNoYWRvd1NpemU7CiAgICAgYmx1ciA9IG1fY29tbW9uLT5z
dGF0ZS5zaGFkb3dCbHVyOwpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGlj
c0NvbnRleHQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBo
aWNzQ29udGV4dC5oCShyZXZpc2lvbiA2MDg4NykKKysrIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvR3JhcGhpY3NDb250ZXh0LmgJKHdvcmtpbmcgY29weSkKQEAgLTI2Myw4ICsyNjMsOCBAQCBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIHZvaWQgYmVnaW5UcmFuc3BhcmVuY3lMYXllcihm
bG9hdCBvcGFjaXR5KTsKICAgICAgICAgdm9pZCBlbmRUcmFuc3BhcmVuY3lMYXllcigpOwogCi0g
ICAgICAgIHZvaWQgc2V0U2hhZG93KGNvbnN0IEludFNpemUmLCBpbnQgYmx1ciwgY29uc3QgQ29s
b3ImLCBDb2xvclNwYWNlKTsKLSAgICAgICAgYm9vbCBnZXRTaGFkb3coSW50U2l6ZSYsIGludCYs
IENvbG9yJikgY29uc3Q7CisgICAgICAgIHZvaWQgc2V0U2hhZG93KGNvbnN0IEludFNpemUmLCBm
bG9hdCBibHVyLCBjb25zdCBDb2xvciYsIENvbG9yU3BhY2UpOworICAgICAgICBib29sIGdldFNo
YWRvdyhJbnRTaXplJiwgZmxvYXQmLCBDb2xvciYpIGNvbnN0OwogICAgICAgICB2b2lkIGNsZWFy
U2hhZG93KCk7CiAKICAgICAgICAgdm9pZCBkcmF3Rm9jdXNSaW5nKGNvbnN0IFZlY3RvcjxJbnRS
ZWN0PiYsIGludCB3aWR0aCwgaW50IG9mZnNldCwgY29uc3QgQ29sb3ImKTsKQEAgLTQwOSw3ICs0
MDksNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICAgICAgICAgdm9pZCBzZXRQbGF0Zm9ybVNo
b3VsZEFudGlhbGlhcyhib29sIGIpOwogCi0gICAgICAgIHZvaWQgc2V0UGxhdGZvcm1TaGFkb3co
Y29uc3QgSW50U2l6ZSYsIGludCBibHVyLCBjb25zdCBDb2xvciYsIENvbG9yU3BhY2UpOworICAg
ICAgICB2b2lkIHNldFBsYXRmb3JtU2hhZG93KGNvbnN0IEludFNpemUmLCBmbG9hdCBibHVyLCBj
b25zdCBDb2xvciYsIENvbG9yU3BhY2UpOwogICAgICAgICB2b2lkIGNsZWFyUGxhdGZvcm1TaGFk
b3coKTsKIAogICAgICAgICBzdGF0aWMgdm9pZCBhZGp1c3RMaW5lVG9QaXhlbEJvdW5kYXJpZXMo
RmxvYXRQb2ludCYgcDEsIEZsb2F0UG9pbnQmIHAyLCBmbG9hdCBzdHJva2VXaWR0aCwgY29uc3Qg
U3Ryb2tlU3R5bGUmKTsKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3ND
b250ZXh0UHJpdmF0ZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
R3JhcGhpY3NDb250ZXh0UHJpdmF0ZS5oCShyZXZpc2lvbiA2MDg4NykKKysrIFdlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0UHJpdmF0ZS5oCSh3b3JraW5nIGNvcHkpCkBA
IC03Myw3ICs3Myw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgYm9vbCBwYWludGlu
Z0Rpc2FibGVkOwogICAgICAgICAKICAgICAgICAgSW50U2l6ZSBzaGFkb3dTaXplOwotICAgICAg
ICB1bnNpZ25lZCBzaGFkb3dCbHVyOworICAgICAgICBmbG9hdCBzaGFkb3dCbHVyOwogICAgICAg
ICBDb2xvciBzaGFkb3dDb2xvcjsKIAogICAgICAgICBib29sIHNoYWRvd3NJZ25vcmVUcmFuc2Zv
cm1zOwpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9Gb250Q2Fpcm8uY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vRm9udENhaXJv
LmNwcAkocmV2aXNpb24gNjA4ODcpCisrKyBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJv
L0ZvbnRDYWlyby5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTcxLDcgKzcxLDcgQEAgdm9pZCBGb250
OjpkcmF3R2x5cGhzKEdyYXBoaWNzQ29udGV4dCogYwogCiAgICAgLy8gVGV4dCBzaGFkb3csIGlu
c3BpcmVkIGJ5IEZvbnRNYWMKICAgICBJbnRTaXplIHNoYWRvd1NpemU7Ci0gICAgaW50IHNoYWRv
d0JsdXIgPSAwOworICAgIGZsb2F0IHNoYWRvd0JsdXIgPSAwOwogICAgIENvbG9yIHNoYWRvd0Nv
bG9yOwogICAgIGJvb2wgaGFzU2hhZG93ID0gY29udGV4dC0+dGV4dERyYXdpbmdNb2RlKCkgPT0g
Y1RleHRGaWxsICYmCiAgICAgICAgIGNvbnRleHQtPmdldFNoYWRvdyhzaGFkb3dTaXplLCBzaGFk
b3dCbHVyLCBzaGFkb3dDb2xvcik7CkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nh
aXJvL0dyYXBoaWNzQ29udGV4dENhaXJvLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2NhaXJvL0dyYXBoaWNzQ29udGV4dENhaXJvLmNwcAkocmV2aXNpb24gNjA4
ODcpCisrKyBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0dyYXBoaWNzQ29udGV4dENh
aXJvLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTYyLDcgKzE2Miw3IEBAIHN0YXRpYyBpbmxpbmUg
dm9pZCBkcmF3UGF0aFNoYWRvdyhHcmFwaGkKIHsKICNpZiBFTkFCTEUoRklMVEVSUykKICAgICBJ
bnRTaXplIHNoYWRvd1NpemU7Ci0gICAgaW50IHNoYWRvd0JsdXI7CisgICAgZmxvYXQgc2hhZG93
Qmx1cjsKICAgICBDb2xvciBzaGFkb3dDb2xvcjsKICAgICBpZiAoIWNvbnRleHQtPmdldFNoYWRv
dyhzaGFkb3dTaXplLCBzaGFkb3dCbHVyLCBzaGFkb3dDb2xvcikpCiAgICAgICAgIHJldHVybjsK
QEAgLTU2MCw3ICs1NjAsNyBAQCBzdGF0aWMgdm9pZCBkcmF3Qm9yZGVybGVzc1JlY3RTaGFkb3co
R3JhCiB7CiAjaWYgRU5BQkxFKEZJTFRFUlMpCiAgICAgSW50U2l6ZSBzaGFkb3dTaXplOwotICAg
IGludCBzaGFkb3dCbHVyOworICAgIGZsb2F0IHNoYWRvd0JsdXI7CiAgICAgQ29sb3Igc2hhZG93
Q29sb3I7CiAKICAgICBpZiAoIWNvbnRleHQtPmdldFNoYWRvdyhzaGFkb3dTaXplLCBzaGFkb3dC
bHVyLCBzaGFkb3dDb2xvcikpCkBAIC04NDEsNyArODQxLDcgQEAgdm9pZCBHcmFwaGljc0NvbnRl
eHQ6OmNsaXBUb0ltYWdlQnVmZmVyKAogICAgIG5vdEltcGxlbWVudGVkKCk7CiB9CiAKLXZvaWQg
R3JhcGhpY3NDb250ZXh0OjpzZXRQbGF0Zm9ybVNoYWRvdyhJbnRTaXplIGNvbnN0JiBzaXplLCBp
bnQsIENvbG9yIGNvbnN0JiwgQ29sb3JTcGFjZSkKK3ZvaWQgR3JhcGhpY3NDb250ZXh0OjpzZXRQ
bGF0Zm9ybVNoYWRvdyhJbnRTaXplIGNvbnN0JiBzaXplLCBmbG9hdCwgQ29sb3IgY29uc3QmLCBD
b2xvclNwYWNlKQogewogICAgIC8vIENhaXJvIGRvZXNuJ3Qgc3VwcG9ydCBzaGFkb3dzIG5hdGl2
ZWx5LCB0aGV5IGFyZSBkcmF3biBtYW51YWxseSBpbiB0aGUgZHJhdyoKICAgICAvLyBmdW5jdGlv
bnMKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvR3JhcGhpY3NDb250ZXh0Q0cu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvR3JhcGhpY3ND
b250ZXh0Q0cuY3BwCShyZXZpc2lvbiA2MDg4NykKKysrIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY2cvR3JhcGhpY3NDb250ZXh0Q0cuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC03NjQsNyArNzY0
LDcgQEAgdm9pZCBHcmFwaGljc0NvbnRleHQ6OmVuZFRyYW5zcGFyZW5jeUxheQogICAgIG1fZGF0
YS0+bV91c2VyVG9EZXZpY2VUcmFuc2Zvcm1Lbm93blRvQmVJZGVudGl0eSA9IGZhbHNlOwogfQog
Ci12b2lkIEdyYXBoaWNzQ29udGV4dDo6c2V0UGxhdGZvcm1TaGFkb3coY29uc3QgSW50U2l6ZSYg
b2Zmc2V0LCBpbnQgYmx1ciwgY29uc3QgQ29sb3ImIGNvbG9yLCBDb2xvclNwYWNlIGNvbG9yU3Bh
Y2UpCit2b2lkIEdyYXBoaWNzQ29udGV4dDo6c2V0UGxhdGZvcm1TaGFkb3coY29uc3QgSW50U2l6
ZSYgb2Zmc2V0LCBmbG9hdCBibHVyLCBjb25zdCBDb2xvciYgY29sb3IsIENvbG9yU3BhY2UgY29s
b3JTcGFjZSkKIHsKICAgICBpZiAocGFpbnRpbmdEaXNhYmxlZCgpKQogICAgICAgICByZXR1cm47
CkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2d0ay9Gb250R3RrLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2d0ay9Gb250R3RrLmNwcAkocmV2aXNp
b24gNjA4ODcpCisrKyBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2d0ay9Gb250R3RrLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMjExLDcgKzIxMSw3IEBAIHZvaWQgRm9udDo6ZHJhd0NvbXBsZXhU
ZXh0KEdyYXBoaWNzQ29udGUKIAogICAgIC8vIFRleHQgc2hhZG93LCBpbnNwaXJlZCBieSBGb250
TWFjCiAgICAgSW50U2l6ZSBzaGFkb3dTaXplOwotICAgIGludCBzaGFkb3dCbHVyID0gMDsKKyAg
ICBmbG9hdCBzaGFkb3dCbHVyID0gMDsKICAgICBDb2xvciBzaGFkb3dDb2xvcjsKICAgICBib29s
IGhhc1NoYWRvdyA9IGNvbnRleHQtPnRleHREcmF3aW5nTW9kZSgpID09IGNUZXh0RmlsbCAmJgog
ICAgICAgICBjb250ZXh0LT5nZXRTaGFkb3coc2hhZG93U2l6ZSwgc2hhZG93Qmx1ciwgc2hhZG93
Q29sb3IpOwpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9oYWlrdS9HcmFwaGljc0Nv
bnRleHRIYWlrdS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9o
YWlrdS9HcmFwaGljc0NvbnRleHRIYWlrdS5jcHAJKHJldmlzaW9uIDYwODg3KQorKysgV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9oYWlrdS9HcmFwaGljc0NvbnRleHRIYWlrdS5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTUzNiw3ICs1MzYsNyBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dDo6Y2xlYXJQ
bGF0Zm9ybVNoYWRvCiAgICAgbm90SW1wbGVtZW50ZWQoKTsKIH0KIAotdm9pZCBHcmFwaGljc0Nv
bnRleHQ6OnNldFBsYXRmb3JtU2hhZG93KEludFNpemUgY29uc3QmLCBpbnQsIENvbG9yIGNvbnN0
JiwgQ29sb3JTcGFjZSkKK3ZvaWQgR3JhcGhpY3NDb250ZXh0OjpzZXRQbGF0Zm9ybVNoYWRvdyhJ
bnRTaXplIGNvbnN0JiwgZmxvYXQsIENvbG9yIGNvbnN0JiwgQ29sb3JTcGFjZSkKIHsKICAgICBu
b3RJbXBsZW1lbnRlZCgpOwogfQpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMv
Rm9udE1hYy5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9G
b250TWFjLm1tCShyZXZpc2lvbiA2MDg4NykKKysrIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
bWFjL0ZvbnRNYWMubW0JKHdvcmtpbmcgY29weSkKQEAgLTEzNiw3ICsxMzYsNyBAQCB2b2lkIEZv
bnQ6OmRyYXdHbHlwaHMoR3JhcGhpY3NDb250ZXh0KiBjCiAKIAogICAgIEludFNpemUgc2hhZG93
U2l6ZTsKLSAgICBpbnQgc2hhZG93Qmx1cjsKKyAgICBmbG9hdCBzaGFkb3dCbHVyOwogICAgIENv
bG9yIHNoYWRvd0NvbG9yOwogICAgIENvbG9yU3BhY2UgZmlsbENvbG9yU3BhY2UgPSBjb250ZXh0
LT5maWxsQ29sb3JTcGFjZSgpOwogICAgIGNvbnRleHQtPmdldFNoYWRvdyhzaGFkb3dTaXplLCBz
aGFkb3dCbHVyLCBzaGFkb3dDb2xvcik7CkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L29wZW52Zy9HcmFwaGljc0NvbnRleHRPcGVuVkcuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbnZnL0dyYXBoaWNzQ29udGV4dE9wZW5WRy5jcHAJKHJldmlz
aW9uIDYwODg3KQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVudmcvR3JhcGhpY3ND
b250ZXh0T3BlblZHLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjkyLDcgKzI5Miw3IEBAIEZsb2F0
UmVjdCBHcmFwaGljc0NvbnRleHQ6OnJvdW5kVG9EZXZpY2UKICAgICByZXR1cm4gRmxvYXRSZWN0
KGVuY2xvc2luZ0ludFJlY3QobV9kYXRhLT50cmFuc2Zvcm1hdGlvbigpLm1hcFJlY3QocmVjdCkp
KTsKIH0KIAotdm9pZCBHcmFwaGljc0NvbnRleHQ6OnNldFBsYXRmb3JtU2hhZG93KGNvbnN0IElu
dFNpemUmIHNpemUsIGludCBibHVyLCBjb25zdCBDb2xvciYgY29sb3IsIENvbG9yU3BhY2UgY29s
b3JTcGFjZSkKK3ZvaWQgR3JhcGhpY3NDb250ZXh0OjpzZXRQbGF0Zm9ybVNoYWRvdyhjb25zdCBJ
bnRTaXplJiBzaXplLCBmbG9hdCBibHVyLCBjb25zdCBDb2xvciYgY29sb3IsIENvbG9yU3BhY2Ug
Y29sb3JTcGFjZSkKIHsKICAgICBpZiAocGFpbnRpbmdEaXNhYmxlZCgpKQogICAgICAgICByZXR1
cm47CkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3F0L0ZvbnRRdC5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9xdC9Gb250UXQuY3BwCShyZXZpc2lv
biA2MDg4NykKKysrIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvcXQvRm9udFF0LmNwcAkod29y
a2luZyBjb3B5KQpAQCAtMTA1LDcgKzEwNSw3IEBAIHZvaWQgRm9udDo6ZHJhd0NvbXBsZXhUZXh0
KEdyYXBoaWNzQ29udGUKIAogICAgIC8vIHRleHQgc2hhZG93CiAgICAgSW50U2l6ZSBzaGFkb3dT
aXplOwotICAgIGludCBzaGFkb3dCbHVyOworICAgIGZsb2F0IHNoYWRvd0JsdXI7CiAgICAgQ29s
b3Igc2hhZG93Q29sb3I7CiAgICAgYm9vbCBoYXNTaGFkb3cgPSBjdHgtPnRleHREcmF3aW5nTW9k
ZSgpID09IGNUZXh0RmlsbCAmJiBjdHgtPmdldFNoYWRvdyhzaGFkb3dTaXplLCBzaGFkb3dCbHVy
LCBzaGFkb3dDb2xvcik7CiAKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvcXQvR3Jh
cGhpY3NDb250ZXh0UXQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvcXQvR3JhcGhpY3NDb250ZXh0UXQuY3BwCShyZXZpc2lvbiA2MDg4NykKKysrIFdlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvcXQvR3JhcGhpY3NDb250ZXh0UXQuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0zMzQsNyArMzM0LDcgQEAgdm9pZCBHcmFwaGljc0NvbnRleHQ6OmRyYXdSZWN0KGNvbnN0
IEludAogCiAgICAgaWYgKG1fY29tbW9uLT5zdGF0ZS5zaGFkb3dDb2xvci5pc1ZhbGlkKCkpIHsK
ICAgICAgICAgSW50U2l6ZSBzaGFkb3dTaXplOwotICAgICAgICBpbnQgc2hhZG93Qmx1cjsKKyAg
ICAgICAgZmxvYXQgc2hhZG93Qmx1cjsKICAgICAgICAgQ29sb3Igc2hhZG93Q29sb3I7CiAgICAg
ICAgIGlmIChnZXRTaGFkb3coc2hhZG93U2l6ZSwgc2hhZG93Qmx1ciwgc2hhZG93Q29sb3IpKSB7
CiAgICAgICAgICAgICBJbnRSZWN0IHNoYWRvd1JlY3QgPSByZWN0OwpAQCAtMzcyLDcgKzM3Miw3
IEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0OjpkcmF3TGluZShjb25zdCBJbnQKICAgICBhZGp1c3RM
aW5lVG9QaXhlbEJvdW5kYXJpZXMocDEsIHAyLCB3aWR0aCwgc3R5bGUpOwogCiAgICAgSW50U2l6
ZSBzaGFkb3dTaXplOwotICAgIGludCBzaGFkb3dCbHVyOworICAgIGZsb2F0IHNoYWRvd0JsdXI7
CiAgICAgQ29sb3Igc2hhZG93Q29sb3I7CiAgICAgaWYgKHRleHREcmF3aW5nTW9kZSgpID09IGNU
ZXh0RmlsbCAmJiBnZXRTaGFkb3coc2hhZG93U2l6ZSwgc2hhZG93Qmx1ciwgc2hhZG93Q29sb3Ip
KSB7CiAgICAgICAgIHAtPnNhdmUoKTsKQEAgLTQ3NCw3ICs0NzQsNyBAQCB2b2lkIEdyYXBoaWNz
Q29udGV4dDo6c3Ryb2tlQXJjKGNvbnN0IEluCiAgICAgcC0+c2V0UmVuZGVySGludChRUGFpbnRl
cjo6QW50aWFsaWFzaW5nLCB0cnVlKTsKIAogICAgIEludFNpemUgc2hhZG93U2l6ZTsKLSAgICBp
bnQgc2hhZG93Qmx1cjsKKyAgICBmbG9hdCBzaGFkb3dCbHVyOwogICAgIENvbG9yIHNoYWRvd0Nv
bG9yOwogICAgIHN0YXJ0QW5nbGUgKj0gMTY7CiAgICAgYW5nbGVTcGFuICo9IDE2OwpAQCAtNTA5
LDcgKzUwOSw3IEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0OjpkcmF3Q29udmV4UG9seWdvbigKICAg
ICBwLT5zYXZlKCk7CiAgICAgcC0+c2V0UmVuZGVySGludChRUGFpbnRlcjo6QW50aWFsaWFzaW5n
LCBzaG91bGRBbnRpYWxpYXMpOwogICAgIEludFNpemUgc2hhZG93U2l6ZTsKLSAgICBpbnQgc2hh
ZG93Qmx1cjsKKyAgICBmbG9hdCBzaGFkb3dCbHVyOwogICAgIENvbG9yIHNoYWRvd0NvbG9yOwog
ICAgIGlmIChnZXRTaGFkb3coc2hhZG93U2l6ZSwgc2hhZG93Qmx1ciwgc2hhZG93Q29sb3IpKSB7
CiAgICAgICAgIHAtPnNhdmUoKTsKQEAgLTU0MCw3ICs1NDAsNyBAQCBRUGVuIEdyYXBoaWNzQ29u
dGV4dDo6cGVuKCkKIHN0YXRpYyB2b2lkIGlubGluZSBkcmF3RmlsbGVkU2hhZG93UGF0aChHcmFw
aGljc0NvbnRleHQqIGNvbnRleHQsIFFQYWludGVyKiBwLCBjb25zdCBRUGFpbnRlclBhdGgmIHBh
dGgpCiB7CiAgICAgSW50U2l6ZSBzaGFkb3dTaXplOwotICAgIGludCBzaGFkb3dCbHVyOworICAg
IGZsb2F0IHNoYWRvd0JsdXI7CiAgICAgQ29sb3Igc2hhZG93Q29sb3I7CiAgICAgaWYgKGNvbnRl
eHQtPmdldFNoYWRvdyhzaGFkb3dTaXplLCBzaGFkb3dCbHVyLCBzaGFkb3dDb2xvcikpIHsKICAg
ICAgICAgcC0+dHJhbnNsYXRlKHNoYWRvd1NpemUud2lkdGgoKSwgc2hhZG93U2l6ZS5oZWlnaHQo
KSk7CkBAIC01ODcsNyArNTg3LDcgQEAgdm9pZCBHcmFwaGljc0NvbnRleHQ6OnN0cm9rZVBhdGgo
KQogCiAgICAgaWYgKG1fY29tbW9uLT5zdGF0ZS5zdHJva2VQYXR0ZXJuIHx8IG1fY29tbW9uLT5z
dGF0ZS5zdHJva2VHcmFkaWVudCB8fCBzdHJva2VDb2xvcigpLmFscGhhKCkpIHsKICAgICAgICAg
SW50U2l6ZSBzaGFkb3dTaXplOwotICAgICAgICBpbnQgc2hhZG93Qmx1cjsKKyAgICAgICAgZmxv
YXQgc2hhZG93Qmx1cjsKICAgICAgICAgQ29sb3Igc2hhZG93Q29sb3I7CiAgICAgICAgIGlmIChn
ZXRTaGFkb3coc2hhZG93U2l6ZSwgc2hhZG93Qmx1ciwgc2hhZG93Q29sb3IpKSB7CiAgICAgICAg
ICAgICBRVHJhbnNmb3JtIHQocC0+d29ybGRUcmFuc2Zvcm0oKSk7CkBAIC02MTksNyArNjE5LDcg
QEAgdm9pZCBHcmFwaGljc0NvbnRleHQ6OnN0cm9rZVBhdGgoKQogc3RhdGljIGlubGluZSB2b2lk
IGRyYXdCb3JkZXJsZXNzUmVjdFNoYWRvdyhHcmFwaGljc0NvbnRleHQqIGNvbnRleHQsIFFQYWlu
dGVyKiBwLCBjb25zdCBGbG9hdFJlY3QmIHJlY3QpCiB7CiAgICAgSW50U2l6ZSBzaGFkb3dTaXpl
OwotICAgIGludCBzaGFkb3dCbHVyOworICAgIGZsb2F0IHNoYWRvd0JsdXI7CiAgICAgQ29sb3Ig
c2hhZG93Q29sb3I7CiAgICAgaWYgKGNvbnRleHQtPmdldFNoYWRvdyhzaGFkb3dTaXplLCBzaGFk
b3dCbHVyLCBzaGFkb3dDb2xvcikpIHsKICAgICAgICAgRmxvYXRSZWN0IHNoYWRvd1JlY3QocmVj
dCk7CkBAIC04MjAsNyArODIwLDcgQEAgRmxvYXRSZWN0IEdyYXBoaWNzQ29udGV4dDo6cm91bmRU
b0RldmljZQogICAgIHJldHVybiBGbG9hdFJlY3Qocm91bmRlZE9yaWdpbiwgcm91bmRlZExvd2Vy
UmlnaHQgLSByb3VuZGVkT3JpZ2luKTsKIH0KIAotdm9pZCBHcmFwaGljc0NvbnRleHQ6OnNldFBs
YXRmb3JtU2hhZG93KGNvbnN0IEludFNpemUmIHNpemUsIGludCwgY29uc3QgQ29sb3ImLCBDb2xv
clNwYWNlKQordm9pZCBHcmFwaGljc0NvbnRleHQ6OnNldFBsYXRmb3JtU2hhZG93KGNvbnN0IElu
dFNpemUmIHNpemUsIGZsb2F0LCBjb25zdCBDb2xvciYsIENvbG9yU3BhY2UpCiB7CiAgICAgLy8g
UXQgZG9lc24ndCBzdXBwb3J0IHNoYWRvd3MgbmF0aXZlbHksIHRoZXkgYXJlIGRyYXduIG1hbnVh
bGx5IGluIHRoZSBkcmF3KgogICAgIC8vIGZ1bmN0aW9ucwpJbmRleDogV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9xdC9JbWFnZVF0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL3F0L0ltYWdlUXQuY3BwCShyZXZpc2lvbiA2MDg4NykKKysrIFdlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvcXQvSW1hZ2VRdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE4OCw3ICsx
ODgsNyBAQCB2b2lkIEJpdG1hcEltYWdlOjpkcmF3KEdyYXBoaWNzQ29udGV4dCogCiAgICAgICAg
IHBhaW50ZXItPnNldENvbXBvc2l0aW9uTW9kZShRUGFpbnRlcjo6Q29tcG9zaXRpb25Nb2RlX1Nv
dXJjZSk7CiAKICAgICBJbnRTaXplIHNoYWRvd1NpemU7Ci0gICAgaW50IHNoYWRvd0JsdXI7Cisg
ICAgZmxvYXQgc2hhZG93Qmx1cjsKICAgICBDb2xvciBzaGFkb3dDb2xvcjsKICAgICBpZiAoY3R4
dC0+Z2V0U2hhZG93KHNoYWRvd1NpemUsIHNoYWRvd0JsdXIsIHNoYWRvd0NvbG9yKSkgewogICAg
ICAgICBGbG9hdFJlY3Qgc2hhZG93SW1hZ2VSZWN0KGRzdCk7CkluZGV4OiBXZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL3NraWEvR3JhcGhpY3NDb250ZXh0U2tpYS5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9za2lhL0dyYXBoaWNzQ29udGV4dFNraWEuY3BwCShy
ZXZpc2lvbiA2MDg4NykKKysrIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc2tpYS9HcmFwaGlj
c0NvbnRleHRTa2lhLmNwcAkod29ya2luZyBjb3B5KQpAQCAtOTc4LDcgKzk3OCw3IEBAIHZvaWQg
R3JhcGhpY3NDb250ZXh0OjpzZXRQbGF0Zm9ybUZpbGxQYXQKIH0KIAogdm9pZCBHcmFwaGljc0Nv
bnRleHQ6OnNldFBsYXRmb3JtU2hhZG93KGNvbnN0IEludFNpemUmIHNpemUsCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGJsdXJJbnQsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgZmxvYXQgYmx1ckZsb2F0LAogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IENvbG9yJiBjb2xvciwKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb2xvclNwYWNlIGNvbG9yU3BhY2UpCiB7
CkBAIC05ODYsMTQgKzk4NiwxNCBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dDo6c2V0UGxhdGZvcm1T
aGFkb3coCiAgICAgICAgIHJldHVybjsKIAogICAgIC8vIERldGVjdCB3aGVuIHRoZXJlJ3Mgbm8g
ZWZmZWN0aXZlIHNoYWRvdyBhbmQgY2xlYXIgdGhlIGxvb3Blci4KLSAgICBpZiAoIXNpemUud2lk
dGgoKSAmJiAhc2l6ZS5oZWlnaHQoKSAmJiAhYmx1ckludCkgeworICAgIGlmICghc2l6ZS53aWR0
aCgpICYmICFzaXplLmhlaWdodCgpICYmICFibHVyRmxvYXQpIHsKICAgICAgICAgcGxhdGZvcm1D
b250ZXh0KCktPnNldERyYXdMb29wZXIoMCk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKICAg
ICBkb3VibGUgd2lkdGggPSBzaXplLndpZHRoKCk7CiAgICAgZG91YmxlIGhlaWdodCA9IHNpemUu
aGVpZ2h0KCk7Ci0gICAgZG91YmxlIGJsdXIgPSBibHVySW50OworICAgIGRvdWJsZSBibHVyID0g
Ymx1ckZsb2F0OwogCiAgICAgLy8gVE9ETyh0Yyk6IFRoaXMgc3RpbGwgZG9lcyBub3QgYWRkcmVz
cyB0aGUgaXNzdWUgdGhhdCBzaGFkb3dzCiAgICAgLy8gd2l0aGluIGNhbnZhcyBlbGVtZW50cyBz
aG91bGQgaWdub3JlIHRyYW5zZm9ybXMuCkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L3dpbi9Gb250Q0dXaW4uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3Mvd2luL0ZvbnRDR1dpbi5jcHAJKHJldmlzaW9uIDYwODg3KQorKysgV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy93aW4vRm9udENHV2luLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTQxLDcgKzE0
MSw3IEBAIHN0YXRpYyB2b2lkIGRyYXdHRElHbHlwaHMoR3JhcGhpY3NDb250ZXgKICAgICAgICAg
ZHJhd0ludG9CaXRtYXAgPSBmaWxsQ29sb3IuYWxwaGEoKSAhPSAyNTUgfHwgZ3JhcGhpY3NDb250
ZXh0LT5pblRyYW5zcGFyZW5jeUxheWVyKCk7CiAgICAgICAgIGlmICghZHJhd0ludG9CaXRtYXAp
IHsKICAgICAgICAgICAgIEludFNpemUgc2l6ZTsKLSAgICAgICAgICAgIGludCBibHVyOworICAg
ICAgICAgICAgZmxvYXQgYmx1cjsKICAgICAgICAgICAgIENvbG9yIGNvbG9yOwogICAgICAgICAg
ICAgZ3JhcGhpY3NDb250ZXh0LT5nZXRTaGFkb3coc2l6ZSwgYmx1ciwgY29sb3IpOwogICAgICAg
ICAgICAgZHJhd0ludG9CaXRtYXAgPSAhc2l6ZS5pc0VtcHR5KCkgfHwgYmx1cjsKQEAgLTM1MCw3
ICszNTAsNyBAQCB2b2lkIEZvbnQ6OmRyYXdHbHlwaHMoR3JhcGhpY3NDb250ZXh0KiBnCiAgICAg
d2tTZXRDR0NvbnRleHRGb250UmVuZGVyaW5nU3R5bGUoY2dDb250ZXh0LCBmb250LT5pc1N5c3Rl
bUZvbnQoKSwgZmFsc2UsIGZvbnQtPnBsYXRmb3JtRGF0YSgpLnVzZUdESSgpKTsKIAogICAgIElu
dFNpemUgc2hhZG93U2l6ZTsKLSAgICBpbnQgc2hhZG93Qmx1cjsKKyAgICBmbG9hdCBzaGFkb3dC
bHVyOwogICAgIENvbG9yIHNoYWRvd0NvbG9yOwogICAgIGdyYXBoaWNzQ29udGV4dC0+Z2V0U2hh
ZG93KHNoYWRvd1NpemUsIHNoYWRvd0JsdXIsIHNoYWRvd0NvbG9yKTsKIApJbmRleDogV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy93aW5jZS9HcmFwaGljc0NvbnRleHRXaW5jZS5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW5jZS9HcmFwaGljc0NvbnRleHRX
aW5jZS5jcHAJKHJldmlzaW9uIDYwODg3KQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93
aW5jZS9HcmFwaGljc0NvbnRleHRXaW5jZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE1NTAsNyAr
MTU1MCw3IEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0OjpmaWxsUmVjdChjb25zdCBGbG8KICAgICAg
ICAgZmlsbFJlY3QocmVjdCwgZmlsbENvbG9yKCksIERldmljZUNvbG9yU3BhY2UpOwogfQogCi12
b2lkIEdyYXBoaWNzQ29udGV4dDo6c2V0UGxhdGZvcm1TaGFkb3coY29uc3QgSW50U2l6ZSYsIGlu
dCwgY29uc3QgQ29sb3ImLCBDb2xvclNwYWNlKQordm9pZCBHcmFwaGljc0NvbnRleHQ6OnNldFBs
YXRmb3JtU2hhZG93KGNvbnN0IEludFNpemUmLCBmbG9hdCwgY29uc3QgQ29sb3ImLCBDb2xvclNw
YWNlKQogewogICAgIG5vdEltcGxlbWVudGVkKCk7CiB9CkluZGV4OiBXZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL3d4L0dyYXBoaWNzQ29udGV4dFd4LmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL3d4L0dyYXBoaWNzQ29udGV4dFd4LmNwcAkocmV2aXNpb24gNjA4
ODcpCisrKyBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3d4L0dyYXBoaWNzQ29udGV4dFd4LmNw
cAkod29ya2luZyBjb3B5KQpAQCAtNTU0LDcgKzU1NCw3IEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0
OjpmaWxsUmVjdChjb25zdCBGbG8KICAgICAgICAgcmV0dXJuOwogfQogCi12b2lkIEdyYXBoaWNz
Q29udGV4dDo6c2V0UGxhdGZvcm1TaGFkb3coSW50U2l6ZSBjb25zdCYsaW50LENvbG9yIGNvbnN0
JiwgQ29sb3JTcGFjZSkgCit2b2lkIEdyYXBoaWNzQ29udGV4dDo6c2V0UGxhdGZvcm1TaGFkb3co
SW50U2l6ZSBjb25zdCYsIGZsb2F0LCBDb2xvciBjb25zdCYsIENvbG9yU3BhY2UpIAogeyAKICAg
ICBub3RJbXBsZW1lbnRlZCgpOyAKIH0KSW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHJldmlzaW9uIDYwOTEzKQorKysgTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTEgQEAKKzIwMTAt
MDYtMDkgIENoYW5nIFNodSAgPGNoYW5nLnNodUBub2tpYS5jb20+CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgW1F0XSBVbnNraXAgY2FudmFzL3BoaWxp
cC90ZXN0cy8yZC5zaGFkb3cuZW5hYmxlLmJsdXIuaHRtbC4KKworICAgICAgICAqIHBsYXRmb3Jt
L3F0L1NraXBwZWQ6CisKIDIwMTAtMDYtMDkgIEFkYW0gQmFydGggIDxhYmFydGhAd2Via2l0Lm9y
Zz4KIAogICAgICAgICBSZXZpZXdlZCBieSBFcmljIFNlaWRlbC4KSW5kZXg6IExheW91dFRlc3Rz
L3BsYXRmb3JtL3F0L1NraXBwZWQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0v
cXQvU2tpcHBlZAkocmV2aXNpb24gNjA4ODcpCisrKyBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9T
a2lwcGVkCSh3b3JraW5nIGNvcHkpCkBAIC01MzQ1LDcgKzUzNDUsNiBAQCBjYW52YXMvcGhpbGlw
L3Rlc3RzLzJkLnNoYWRvdy5hbHBoYS41Lmh0CiBjYW52YXMvcGhpbGlwL3Rlc3RzLzJkLnNoYWRv
dy5jYW52YXMuYWxwaGEuaHRtbAogY2FudmFzL3BoaWxpcC90ZXN0cy8yZC5zaGFkb3cuY2FudmFz
LmJhc2ljLmh0bWwKIGNhbnZhcy9waGlsaXAvdGVzdHMvMmQuc2hhZG93LmNhbnZhcy50cmFuc3Bh
cmVudC4yLmh0bWwKLWNhbnZhcy9waGlsaXAvdGVzdHMvMmQuc2hhZG93LmVuYWJsZS5ibHVyLmh0
bWwKIGNhbnZhcy9waGlsaXAvdGVzdHMvMmQuc2hhZG93LmVuYWJsZS54Lmh0bWwKIGNhbnZhcy9w
aGlsaXAvdGVzdHMvMmQuc2hhZG93LmVuYWJsZS55Lmh0bWwKIGNhbnZhcy9waGlsaXAvdGVzdHMv
MmQuc2hhZG93LmdyYWRpZW50LmFscGhhLmh0bWwK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>58318</attachid>
            <date>2010-06-09 18:12:43 -0700</date>
            <delta_ts>2010-06-10 09:49:23 -0700</delta_ts>
            <desc>fix patch</desc>
            <filename>bug40370_3.patch</filename>
            <type>text/plain</type>
            <size>23860</size>
            <attacher name="Chang Shu">cshu</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA2MDkyNikKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsNjkgQEAKKzIwMTAtMDYtMDkgIFNodSBDaGFuZyAgPGNoYW5nLnNodUBub2tpYS5j
b20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQ2hh
bmdlIHRoZSB0eXBlIG9mIFNoYWRvd0JsdXIgZnJvbSBpbnQgdG8gZmxvYXQgaW4gR3JhcGhpY3ND
b250ZXh0LgorICAgICAgICBVc2luZyBpbnQgZm9yIFNoYWRvd0JsdXIgbG9zZXMgcHJlY2lzaW9u
IGFuZCBmYWlscyB0aGUgdGVzdC4KKyAgICAgICAgTm90ZTogVGhpcyBjb2RlIGNoYW5nZSBmaXhl
cyBRdCBwb3J0IGJ1dCBNYWMgaXMgc3RpbGwgZmFpbGluZyBkdWUgdG8KKyAgICAgICAgcGxhdGZv
cm0gaXNzdWUuIEZ1bmN0aW9uIENHQ29udGV4dFNldFNoYWRvd1dpdGhDb2xvcigpIGRvZXMgbm90
IHRha2UKKyAgICAgICAgYSBibHVyIHZhbHVlIGxlc3MgdGhhbiAwLjUuCisKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQwMzcwCisKKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
R3JhcGhpY3NDb250ZXh0OjpzZXRTaGFkb3cpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3ND
b250ZXh0OjpnZXRTaGFkb3cpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNz
Q29udGV4dC5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dFBy
aXZhdGUuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9Gb250Q2Fpcm8uY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6Rm9udDo6ZHJhd0dseXBocyk6CisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvY2Fpcm8vR3JhcGhpY3NDb250ZXh0Q2Fpcm8uY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6R3JhcGhpY3NDb250ZXh0OjpjYWxjdWxhdGVTaGFkb3dCdWZmZXJEaW1lbnNpb25zKToK
KyAgICAgICAgKFdlYkNvcmU6OmRyYXdQYXRoU2hhZG93KToKKyAgICAgICAgKFdlYkNvcmU6OmRy
YXdCb3JkZXJsZXNzUmVjdFNoYWRvdyk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRl
eHQ6OnNldFBsYXRmb3JtU2hhZG93KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jYWly
by9JbWFnZUNhaXJvLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkJpdG1hcEltYWdlOjpkcmF3KToK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jZy9HcmFwaGljc0NvbnRleHRDRy5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQ6OnNldFBsYXRmb3JtU2hhZG93KToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9Gb250Q2hyb21pdW1XaW4uY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6VHJhbnNwYXJlbmN5QXdhcmVGb250UGFpbnRlcjo6VHJhbnNwYXJl
bmN5QXdhcmVHbHlwaFBhaW50ZXI6OmRyYXdHbHlwaHMpOgorICAgICAgICAoV2ViQ29yZTo6Rm9u
dDo6ZHJhd0NvbXBsZXhUZXh0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9ndGsvRm9u
dEd0ay5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGb250OjpkcmF3Q29tcGxleFRleHQpOgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2hhaWt1L0dyYXBoaWNzQ29udGV4dEhhaWt1LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDo6c2V0UGxhdGZvcm1TaGFkb3cpOgor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL21hYy9Gb250TWFjLm1tOgorICAgICAgICAoV2Vi
Q29yZTo6Rm9udDo6ZHJhd0dseXBocyk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvb3Bl
bnZnL0dyYXBoaWNzQ29udGV4dE9wZW5WRy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGlj
c0NvbnRleHQ6OnNldFBsYXRmb3JtU2hhZG93KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9xdC9Gb250UXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Rm9udDo6ZHJhd0NvbXBsZXhUZXh0
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9xdC9HcmFwaGljc0NvbnRleHRRdC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQ6OmRyYXdSZWN0KToKKyAgICAgICAg
KFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDo6ZHJhd0xpbmUpOgorICAgICAgICAoV2ViQ29yZTo6
R3JhcGhpY3NDb250ZXh0OjpzdHJva2VBcmMpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3ND
b250ZXh0OjpkcmF3Q29udmV4UG9seWdvbik6CisgICAgICAgIChXZWJDb3JlOjpkcmF3RmlsbGVk
U2hhZG93UGF0aCk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQ6OnN0cm9rZVBh
dGgpOgorICAgICAgICAoV2ViQ29yZTo6ZHJhd0JvcmRlcmxlc3NSZWN0U2hhZG93KToKKyAgICAg
ICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDo6c2V0UGxhdGZvcm1TaGFkb3cpOgorICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL3F0L0ltYWdlUXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
Qml0bWFwSW1hZ2U6OmRyYXcpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3NraWEvR3Jh
cGhpY3NDb250ZXh0U2tpYS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQ6
OnNldFBsYXRmb3JtU2hhZG93KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9za2lhL1Nr
aWFGb250V2luLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OndpbmRvd3NDYW5IYW5kbGVEcmF3VGV4
dFNoYWRvdyk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0ZvbnRDR1dpbi5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpkcmF3R0RJR2x5cGhzKToKKyAgICAgICAgKFdlYkNvcmU6OkZv
bnQ6OmRyYXdHbHlwaHMpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3dpbmNlL0dyYXBo
aWNzQ29udGV4dFdpbmNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDo6
ZmlsbFJvdW5kZWRSZWN0KToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDo6c2V0
UGxhdGZvcm1TaGFkb3cpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0OjpkcmF3
VGV4dCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvd3gvR3JhcGhpY3NDb250ZXh0V3gu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0OjpzZXRQbGF0Zm9ybVNoYWRv
dyk6CisKIDIwMTAtMDYtMDkgIEFkYW0gQmFydGggIDxhYmFydGhAd2Via2l0Lm9yZz4KIAogICAg
ICAgICBSZXZpZXdlZCBieSBFcmljIFNlaWRlbC4KSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvR3JhcGhpY3NDb250ZXh0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dC5jcHAJKHJldmlzaW9uIDYwOTI1KQorKysgV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0xMjksNyArMTI5LDcgQEAgdm9pZCBHcmFwaGljc0NvbnRleHQ6OnNldFN0cm9rZUNvbG9yKGNv
bgogICAgIHNldFBsYXRmb3JtU3Ryb2tlQ29sb3IoY29sb3IsIGNvbG9yU3BhY2UpOwogfQogCi12
b2lkIEdyYXBoaWNzQ29udGV4dDo6c2V0U2hhZG93KGNvbnN0IEludFNpemUmIHNpemUsIGludCBi
bHVyLCBjb25zdCBDb2xvciYgY29sb3IsIENvbG9yU3BhY2UgY29sb3JTcGFjZSkKK3ZvaWQgR3Jh
cGhpY3NDb250ZXh0OjpzZXRTaGFkb3coY29uc3QgSW50U2l6ZSYgc2l6ZSwgZmxvYXQgYmx1ciwg
Y29uc3QgQ29sb3ImIGNvbG9yLCBDb2xvclNwYWNlIGNvbG9yU3BhY2UpCiB7CiAgICAgbV9jb21t
b24tPnN0YXRlLnNoYWRvd1NpemUgPSBzaXplOwogICAgIG1fY29tbW9uLT5zdGF0ZS5zaGFkb3dC
bHVyID0gYmx1cjsKQEAgLTE0NSw3ICsxNDUsNyBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dDo6Y2xl
YXJTaGFkb3coKQogICAgIGNsZWFyUGxhdGZvcm1TaGFkb3coKTsKIH0KIAotYm9vbCBHcmFwaGlj
c0NvbnRleHQ6OmdldFNoYWRvdyhJbnRTaXplJiBzaXplLCBpbnQmIGJsdXIsIENvbG9yJiBjb2xv
cikgY29uc3QKK2Jvb2wgR3JhcGhpY3NDb250ZXh0OjpnZXRTaGFkb3coSW50U2l6ZSYgc2l6ZSwg
ZmxvYXQmIGJsdXIsIENvbG9yJiBjb2xvcikgY29uc3QKIHsKICAgICBzaXplID0gbV9jb21tb24t
PnN0YXRlLnNoYWRvd1NpemU7CiAgICAgYmx1ciA9IG1fY29tbW9uLT5zdGF0ZS5zaGFkb3dCbHVy
OwpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dC5oCShy
ZXZpc2lvbiA2MDkyNSkKKysrIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250
ZXh0LmgJKHdvcmtpbmcgY29weSkKQEAgLTI2Myw4ICsyNjMsOCBAQCBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAgICAgICAgIHZvaWQgYmVnaW5UcmFuc3BhcmVuY3lMYXllcihmbG9hdCBvcGFjaXR5KTsK
ICAgICAgICAgdm9pZCBlbmRUcmFuc3BhcmVuY3lMYXllcigpOwogCi0gICAgICAgIHZvaWQgc2V0
U2hhZG93KGNvbnN0IEludFNpemUmLCBpbnQgYmx1ciwgY29uc3QgQ29sb3ImLCBDb2xvclNwYWNl
KTsKLSAgICAgICAgYm9vbCBnZXRTaGFkb3coSW50U2l6ZSYsIGludCYsIENvbG9yJikgY29uc3Q7
CisgICAgICAgIHZvaWQgc2V0U2hhZG93KGNvbnN0IEludFNpemUmLCBmbG9hdCBibHVyLCBjb25z
dCBDb2xvciYsIENvbG9yU3BhY2UpOworICAgICAgICBib29sIGdldFNoYWRvdyhJbnRTaXplJiwg
ZmxvYXQmLCBDb2xvciYpIGNvbnN0OwogICAgICAgICB2b2lkIGNsZWFyU2hhZG93KCk7CiAKICAg
ICAgICAgdm9pZCBkcmF3Rm9jdXNSaW5nKGNvbnN0IFZlY3RvcjxJbnRSZWN0PiYsIGludCB3aWR0
aCwgaW50IG9mZnNldCwgY29uc3QgQ29sb3ImKTsKQEAgLTI3OSw3ICsyNzksNyBAQCBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAjaWYgUExBVEZPUk0oQ0FJUk8pCiAgICAgICAgIGZsb2F0IGdldEFscGhh
KCk7CiAgICAgICAgIHZvaWQgY3JlYXRlUGxhdGZvcm1TaGFkb3coUGFzc093blB0cjxJbWFnZUJ1
ZmZlcj4gYnVmZmVyLCBjb25zdCBDb2xvciYgc2hhZG93Q29sb3IsIGNvbnN0IEZsb2F0UmVjdCYg
c2hhZG93UmVjdCwgZmxvYXQga2VybmVsU2l6ZSk7Ci0gICAgICAgIHN0YXRpYyB2b2lkIGNhbGN1
bGF0ZVNoYWRvd0J1ZmZlckRpbWVuc2lvbnMoSW50U2l6ZSYgc2hhZG93QnVmZmVyU2l6ZSwgRmxv
YXRSZWN0JiBzaGFkb3dSZWN0LCBmbG9hdCYga2VybmVsU2l6ZSwgY29uc3QgRmxvYXRSZWN0JiBz
b3VyY2VSZWN0LCBjb25zdCBJbnRTaXplJiBzaGFkb3dTaXplLCBpbnQgc2hhZG93Qmx1cik7Cisg
ICAgICAgIHN0YXRpYyB2b2lkIGNhbGN1bGF0ZVNoYWRvd0J1ZmZlckRpbWVuc2lvbnMoSW50U2l6
ZSYgc2hhZG93QnVmZmVyU2l6ZSwgRmxvYXRSZWN0JiBzaGFkb3dSZWN0LCBmbG9hdCYga2VybmVs
U2l6ZSwgY29uc3QgRmxvYXRSZWN0JiBzb3VyY2VSZWN0LCBjb25zdCBJbnRTaXplJiBzaGFkb3dT
aXplLCBmbG9hdCBzaGFkb3dCbHVyKTsKICNlbmRpZgogCiAgICAgICAgIHZvaWQgc2V0Q29tcG9z
aXRlT3BlcmF0aW9uKENvbXBvc2l0ZU9wZXJhdG9yKTsKQEAgLTQwOSw3ICs0MDksNyBAQCBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKICAgICAgICAgdm9pZCBzZXRQbGF0Zm9ybVNob3VsZEFudGlhbGlh
cyhib29sIGIpOwogCi0gICAgICAgIHZvaWQgc2V0UGxhdGZvcm1TaGFkb3coY29uc3QgSW50U2l6
ZSYsIGludCBibHVyLCBjb25zdCBDb2xvciYsIENvbG9yU3BhY2UpOworICAgICAgICB2b2lkIHNl
dFBsYXRmb3JtU2hhZG93KGNvbnN0IEludFNpemUmLCBmbG9hdCBibHVyLCBjb25zdCBDb2xvciYs
IENvbG9yU3BhY2UpOwogICAgICAgICB2b2lkIGNsZWFyUGxhdGZvcm1TaGFkb3coKTsKIAogICAg
ICAgICBzdGF0aWMgdm9pZCBhZGp1c3RMaW5lVG9QaXhlbEJvdW5kYXJpZXMoRmxvYXRQb2ludCYg
cDEsIEZsb2F0UG9pbnQmIHAyLCBmbG9hdCBzdHJva2VXaWR0aCwgY29uc3QgU3Ryb2tlU3R5bGUm
KTsKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0UHJpdmF0
ZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250
ZXh0UHJpdmF0ZS5oCShyZXZpc2lvbiA2MDkyNSkKKysrIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvR3JhcGhpY3NDb250ZXh0UHJpdmF0ZS5oCSh3b3JraW5nIGNvcHkpCkBAIC03Myw3ICs3Myw3
IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgYm9vbCBwYWludGluZ0Rpc2FibGVkOwog
ICAgICAgICAKICAgICAgICAgSW50U2l6ZSBzaGFkb3dTaXplOwotICAgICAgICB1bnNpZ25lZCBz
aGFkb3dCbHVyOworICAgICAgICBmbG9hdCBzaGFkb3dCbHVyOwogICAgICAgICBDb2xvciBzaGFk
b3dDb2xvcjsKIAogICAgICAgICBib29sIHNoYWRvd3NJZ25vcmVUcmFuc2Zvcm1zOwpJbmRleDog
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9Gb250Q2Fpcm8uY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vRm9udENhaXJvLmNwcAkocmV2aXNp
b24gNjA5MjUpCisrKyBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0ZvbnRDYWlyby5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTcxLDcgKzcxLDcgQEAgdm9pZCBGb250OjpkcmF3R2x5cGhz
KEdyYXBoaWNzQ29udGV4dCogYwogCiAgICAgLy8gVGV4dCBzaGFkb3csIGluc3BpcmVkIGJ5IEZv
bnRNYWMKICAgICBJbnRTaXplIHNoYWRvd1NpemU7Ci0gICAgaW50IHNoYWRvd0JsdXIgPSAwOwor
ICAgIGZsb2F0IHNoYWRvd0JsdXIgPSAwOwogICAgIENvbG9yIHNoYWRvd0NvbG9yOwogICAgIGJv
b2wgaGFzU2hhZG93ID0gY29udGV4dC0+dGV4dERyYXdpbmdNb2RlKCkgPT0gY1RleHRGaWxsICYm
CiAgICAgICAgIGNvbnRleHQtPmdldFNoYWRvdyhzaGFkb3dTaXplLCBzaGFkb3dCbHVyLCBzaGFk
b3dDb2xvcik7CkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0dyYXBoaWNz
Q29udGV4dENhaXJvLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2NhaXJvL0dyYXBoaWNzQ29udGV4dENhaXJvLmNwcAkocmV2aXNpb24gNjA5MjUpCisrKyBXZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0dyYXBoaWNzQ29udGV4dENhaXJvLmNwcAkod29y
a2luZyBjb3B5KQpAQCAtMTQzLDcgKzE0Myw3IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBjb3B5Q29u
dGV4dFByb3BlcnRpZXMKICAgICBjYWlyb19zZXRfZmlsbF9ydWxlKGRzdENyLCBjYWlyb19nZXRf
ZmlsbF9ydWxlKHNyY0NyKSk7CiB9CiAKLXZvaWQgR3JhcGhpY3NDb250ZXh0OjpjYWxjdWxhdGVT
aGFkb3dCdWZmZXJEaW1lbnNpb25zKEludFNpemUmIHNoYWRvd0J1ZmZlclNpemUsIEZsb2F0UmVj
dCYgc2hhZG93UmVjdCwgZmxvYXQmIGtlcm5lbFNpemUsIGNvbnN0IEZsb2F0UmVjdCYgc291cmNl
UmVjdCwgY29uc3QgSW50U2l6ZSYgc2hhZG93U2l6ZSwgaW50IHNoYWRvd0JsdXIpCit2b2lkIEdy
YXBoaWNzQ29udGV4dDo6Y2FsY3VsYXRlU2hhZG93QnVmZmVyRGltZW5zaW9ucyhJbnRTaXplJiBz
aGFkb3dCdWZmZXJTaXplLCBGbG9hdFJlY3QmIHNoYWRvd1JlY3QsIGZsb2F0JiBrZXJuZWxTaXpl
LCBjb25zdCBGbG9hdFJlY3QmIHNvdXJjZVJlY3QsIGNvbnN0IEludFNpemUmIHNoYWRvd1NpemUs
IGZsb2F0IHNoYWRvd0JsdXIpCiB7CiAjaWYgRU5BQkxFKEZJTFRFUlMpCiAgICAgLy8gY2FsY3Vs
YXRlIHRoZSBrZXJuZWwgc2l6ZSBhY2NvcmRpbmcgdG8gdGhlIEhUTUw1IGNhbnZhcyBzaGFkb3cg
c3BlY2lmaWNhdGlvbgpAQCAtMTYyLDcgKzE2Miw3IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBkcmF3
UGF0aFNoYWRvdyhHcmFwaGkKIHsKICNpZiBFTkFCTEUoRklMVEVSUykKICAgICBJbnRTaXplIHNo
YWRvd1NpemU7Ci0gICAgaW50IHNoYWRvd0JsdXI7CisgICAgZmxvYXQgc2hhZG93Qmx1cjsKICAg
ICBDb2xvciBzaGFkb3dDb2xvcjsKICAgICBpZiAoIWNvbnRleHQtPmdldFNoYWRvdyhzaGFkb3dT
aXplLCBzaGFkb3dCbHVyLCBzaGFkb3dDb2xvcikpCiAgICAgICAgIHJldHVybjsKQEAgLTU2MCw3
ICs1NjAsNyBAQCBzdGF0aWMgdm9pZCBkcmF3Qm9yZGVybGVzc1JlY3RTaGFkb3coR3JhCiB7CiAj
aWYgRU5BQkxFKEZJTFRFUlMpCiAgICAgSW50U2l6ZSBzaGFkb3dTaXplOwotICAgIGludCBzaGFk
b3dCbHVyOworICAgIGZsb2F0IHNoYWRvd0JsdXI7CiAgICAgQ29sb3Igc2hhZG93Q29sb3I7CiAK
ICAgICBpZiAoIWNvbnRleHQtPmdldFNoYWRvdyhzaGFkb3dTaXplLCBzaGFkb3dCbHVyLCBzaGFk
b3dDb2xvcikpCkBAIC04NDEsNyArODQxLDcgQEAgdm9pZCBHcmFwaGljc0NvbnRleHQ6OmNsaXBU
b0ltYWdlQnVmZmVyKAogICAgIG5vdEltcGxlbWVudGVkKCk7CiB9CiAKLXZvaWQgR3JhcGhpY3ND
b250ZXh0OjpzZXRQbGF0Zm9ybVNoYWRvdyhJbnRTaXplIGNvbnN0JiBzaXplLCBpbnQsIENvbG9y
IGNvbnN0JiwgQ29sb3JTcGFjZSkKK3ZvaWQgR3JhcGhpY3NDb250ZXh0OjpzZXRQbGF0Zm9ybVNo
YWRvdyhJbnRTaXplIGNvbnN0JiBzaXplLCBmbG9hdCwgQ29sb3IgY29uc3QmLCBDb2xvclNwYWNl
KQogewogICAgIC8vIENhaXJvIGRvZXNuJ3Qgc3VwcG9ydCBzaGFkb3dzIG5hdGl2ZWx5LCB0aGV5
IGFyZSBkcmF3biBtYW51YWxseSBpbiB0aGUgZHJhdyoKICAgICAvLyBmdW5jdGlvbnMKSW5kZXg6
IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vSW1hZ2VDYWlyby5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9JbWFnZUNhaXJvLmNwcAkocmV2
aXNpb24gNjA5MjUpCisrKyBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0ltYWdlQ2Fp
cm8uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMzUsNyArMTM1LDcgQEAgdm9pZCBCaXRtYXBJbWFn
ZTo6ZHJhdyhHcmFwaGljc0NvbnRleHQqIAogICAgIC8vIERyYXcgdGhlIHNoYWRvdwogI2lmIEVO
QUJMRShGSUxURVJTKQogICAgIEludFNpemUgc2hhZG93U2l6ZTsKLSAgICBpbnQgc2hhZG93Qmx1
cjsKKyAgICBmbG9hdCBzaGFkb3dCbHVyOwogICAgIENvbG9yIHNoYWRvd0NvbG9yOwogICAgIGlm
IChjb250ZXh0LT5nZXRTaGFkb3coc2hhZG93U2l6ZSwgc2hhZG93Qmx1ciwgc2hhZG93Q29sb3Ip
KSB7CiAgICAgICAgIEludFNpemUgc2hhZG93QnVmZmVyU2l6ZTsKSW5kZXg6IFdlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY2cvR3JhcGhpY3NDb250ZXh0Q0cuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvR3JhcGhpY3NDb250ZXh0Q0cuY3BwCShyZXZpc2lv
biA2MDkyNSkKKysrIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvR3JhcGhpY3NDb250ZXh0
Q0cuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC03NjQsNyArNzY0LDcgQEAgdm9pZCBHcmFwaGljc0Nv
bnRleHQ6OmVuZFRyYW5zcGFyZW5jeUxheQogICAgIG1fZGF0YS0+bV91c2VyVG9EZXZpY2VUcmFu
c2Zvcm1Lbm93blRvQmVJZGVudGl0eSA9IGZhbHNlOwogfQogCi12b2lkIEdyYXBoaWNzQ29udGV4
dDo6c2V0UGxhdGZvcm1TaGFkb3coY29uc3QgSW50U2l6ZSYgb2Zmc2V0LCBpbnQgYmx1ciwgY29u
c3QgQ29sb3ImIGNvbG9yLCBDb2xvclNwYWNlIGNvbG9yU3BhY2UpCit2b2lkIEdyYXBoaWNzQ29u
dGV4dDo6c2V0UGxhdGZvcm1TaGFkb3coY29uc3QgSW50U2l6ZSYgb2Zmc2V0LCBmbG9hdCBibHVy
LCBjb25zdCBDb2xvciYgY29sb3IsIENvbG9yU3BhY2UgY29sb3JTcGFjZSkKIHsKICAgICBpZiAo
cGFpbnRpbmdEaXNhYmxlZCgpKQogICAgICAgICByZXR1cm47CkluZGV4OiBXZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2Nocm9taXVtL0ZvbnRDaHJvbWl1bVdpbi5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9Gb250Q2hyb21pdW1XaW4uY3BwCShy
ZXZpc2lvbiA2MDkyNSkKKysrIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vRm9u
dENocm9taXVtV2luLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjc0LDcgKzI3NCw3IEBAIGJvb2wg
VHJhbnNwYXJlbmN5QXdhcmVHbHlwaFBhaW50ZXI6OmRyYXcKICAgICAvLyBJZiB0aGVyZSBpcyBh
IG5vbi1ibHVyIHNoYWRvdyBhbmQgYm90aCB0aGUgZmlsbCBjb2xvciBhbmQgc2hhZG93IGNvbG9y
IAogICAgIC8vIGFyZSBvcGFxdWUsIGhhbmRsZSB3aXRob3V0IHNraWEuIAogICAgIEludFNpemUg
c2hhZG93U2l6ZTsKLSAgICBpbnQgc2hhZG93Qmx1cjsKKyAgICBmbG9hdCBzaGFkb3dCbHVyOwog
ICAgIENvbG9yIHNoYWRvd0NvbG9yOwogICAgIGlmIChtX2dyYXBoaWNzQ29udGV4dC0+Z2V0U2hh
ZG93KHNoYWRvd1NpemUsIHNoYWRvd0JsdXIsIHNoYWRvd0NvbG9yKSkgewogICAgICAgICAvLyBJ
ZiB0aGVyZSBpcyBhIHNoYWRvdyBhbmQgdGhpcyBjb2RlIGlzIHJlYWNoZWQsIHdpbmRvd3NDYW5I
YW5kbGVEcmF3VGV4dFNoYWRvdygpCkBAIC00ODQsNyArNDg0LDcgQEAgdm9pZCBGb250OjpkcmF3
Q29tcGxleFRleHQoR3JhcGhpY3NDb250ZQogICAgIC8vIElmIHRoZXJlIGlzIGEgbm9uLWJsdXIg
c2hhZG93IGFuZCBib3RoIHRoZSBmaWxsIGNvbG9yIGFuZCBzaGFkb3cgY29sb3IgCiAgICAgLy8g
YXJlIG9wYXF1ZSwgaGFuZGxlIHdpdGhvdXQgc2tpYS4gCiAgICAgSW50U2l6ZSBzaGFkb3dTaXpl
OwotICAgIGludCBzaGFkb3dCbHVyOworICAgIGZsb2F0IHNoYWRvd0JsdXI7CiAgICAgQ29sb3Ig
c2hhZG93Q29sb3I7CiAgICAgaWYgKGdyYXBoaWNzQ29udGV4dC0+Z2V0U2hhZG93KHNoYWRvd1Np
emUsIHNoYWRvd0JsdXIsIHNoYWRvd0NvbG9yKSAmJiB3aW5kb3dzQ2FuSGFuZGxlRHJhd1RleHRT
aGFkb3coZ3JhcGhpY3NDb250ZXh0KSkgewogICAgICAgICBDT0xPUlJFRiB0ZXh0Q29sb3IgPSBz
a2lhOjpTa0NvbG9yVG9DT0xPUlJFRihTa0NvbG9yU2V0QVJHQigyNTUsIHNoYWRvd0NvbG9yLnJl
ZCgpLCBzaGFkb3dDb2xvci5ncmVlbigpLCBzaGFkb3dDb2xvci5ibHVlKCkpKTsKSW5kZXg6IFdl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3RrL0ZvbnRHdGsuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3RrL0ZvbnRHdGsuY3BwCShyZXZpc2lvbiA2MDkyNSkK
KysrIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3RrL0ZvbnRHdGsuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC0yMTEsNyArMjExLDcgQEAgdm9pZCBGb250OjpkcmF3Q29tcGxleFRleHQoR3JhcGhp
Y3NDb250ZQogCiAgICAgLy8gVGV4dCBzaGFkb3csIGluc3BpcmVkIGJ5IEZvbnRNYWMKICAgICBJ
bnRTaXplIHNoYWRvd1NpemU7Ci0gICAgaW50IHNoYWRvd0JsdXIgPSAwOworICAgIGZsb2F0IHNo
YWRvd0JsdXIgPSAwOwogICAgIENvbG9yIHNoYWRvd0NvbG9yOwogICAgIGJvb2wgaGFzU2hhZG93
ID0gY29udGV4dC0+dGV4dERyYXdpbmdNb2RlKCkgPT0gY1RleHRGaWxsICYmCiAgICAgICAgIGNv
bnRleHQtPmdldFNoYWRvdyhzaGFkb3dTaXplLCBzaGFkb3dCbHVyLCBzaGFkb3dDb2xvcik7Cklu
ZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2hhaWt1L0dyYXBoaWNzQ29udGV4dEhhaWt1
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2hhaWt1L0dyYXBo
aWNzQ29udGV4dEhhaWt1LmNwcAkocmV2aXNpb24gNjA5MjUpCisrKyBXZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2hhaWt1L0dyYXBoaWNzQ29udGV4dEhhaWt1LmNwcAkod29ya2luZyBjb3B5KQpA
QCAtNTM2LDcgKzUzNiw3IEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0OjpjbGVhclBsYXRmb3JtU2hh
ZG8KICAgICBub3RJbXBsZW1lbnRlZCgpOwogfQogCi12b2lkIEdyYXBoaWNzQ29udGV4dDo6c2V0
UGxhdGZvcm1TaGFkb3coSW50U2l6ZSBjb25zdCYsIGludCwgQ29sb3IgY29uc3QmLCBDb2xvclNw
YWNlKQordm9pZCBHcmFwaGljc0NvbnRleHQ6OnNldFBsYXRmb3JtU2hhZG93KEludFNpemUgY29u
c3QmLCBmbG9hdCwgQ29sb3IgY29uc3QmLCBDb2xvclNwYWNlKQogewogICAgIG5vdEltcGxlbWVu
dGVkKCk7CiB9CkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9Gb250TWFjLm1t
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0ZvbnRNYWMubW0J
KHJldmlzaW9uIDYwOTI1KQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvRm9udE1h
Yy5tbQkod29ya2luZyBjb3B5KQpAQCAtMTM2LDcgKzEzNiw3IEBAIHZvaWQgRm9udDo6ZHJhd0ds
eXBocyhHcmFwaGljc0NvbnRleHQqIGMKIAogCiAgICAgSW50U2l6ZSBzaGFkb3dTaXplOwotICAg
IGludCBzaGFkb3dCbHVyOworICAgIGZsb2F0IHNoYWRvd0JsdXI7CiAgICAgQ29sb3Igc2hhZG93
Q29sb3I7CiAgICAgQ29sb3JTcGFjZSBmaWxsQ29sb3JTcGFjZSA9IGNvbnRleHQtPmZpbGxDb2xv
clNwYWNlKCk7CiAgICAgY29udGV4dC0+Z2V0U2hhZG93KHNoYWRvd1NpemUsIHNoYWRvd0JsdXIs
IHNoYWRvd0NvbG9yKTsKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbnZnL0dy
YXBoaWNzQ29udGV4dE9wZW5WRy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9vcGVudmcvR3JhcGhpY3NDb250ZXh0T3BlblZHLmNwcAkocmV2aXNpb24gNjA5MjUp
CisrKyBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW52Zy9HcmFwaGljc0NvbnRleHRPcGVu
VkcuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yOTIsNyArMjkyLDcgQEAgRmxvYXRSZWN0IEdyYXBo
aWNzQ29udGV4dDo6cm91bmRUb0RldmljZQogICAgIHJldHVybiBGbG9hdFJlY3QoZW5jbG9zaW5n
SW50UmVjdChtX2RhdGEtPnRyYW5zZm9ybWF0aW9uKCkubWFwUmVjdChyZWN0KSkpOwogfQogCi12
b2lkIEdyYXBoaWNzQ29udGV4dDo6c2V0UGxhdGZvcm1TaGFkb3coY29uc3QgSW50U2l6ZSYgc2l6
ZSwgaW50IGJsdXIsIGNvbnN0IENvbG9yJiBjb2xvciwgQ29sb3JTcGFjZSBjb2xvclNwYWNlKQor
dm9pZCBHcmFwaGljc0NvbnRleHQ6OnNldFBsYXRmb3JtU2hhZG93KGNvbnN0IEludFNpemUmIHNp
emUsIGZsb2F0IGJsdXIsIGNvbnN0IENvbG9yJiBjb2xvciwgQ29sb3JTcGFjZSBjb2xvclNwYWNl
KQogewogICAgIGlmIChwYWludGluZ0Rpc2FibGVkKCkpCiAgICAgICAgIHJldHVybjsKSW5kZXg6
IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvcXQvRm9udFF0LmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBX
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3F0L0ZvbnRRdC5jcHAJKHJldmlzaW9uIDYwOTI1KQor
KysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9xdC9Gb250UXQuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0xMDUsNyArMTA1LDcgQEAgdm9pZCBGb250OjpkcmF3Q29tcGxleFRleHQoR3JhcGhpY3ND
b250ZQogCiAgICAgLy8gdGV4dCBzaGFkb3cKICAgICBJbnRTaXplIHNoYWRvd1NpemU7Ci0gICAg
aW50IHNoYWRvd0JsdXI7CisgICAgZmxvYXQgc2hhZG93Qmx1cjsKICAgICBDb2xvciBzaGFkb3dD
b2xvcjsKICAgICBib29sIGhhc1NoYWRvdyA9IGN0eC0+dGV4dERyYXdpbmdNb2RlKCkgPT0gY1Rl
eHRGaWxsICYmIGN0eC0+Z2V0U2hhZG93KHNoYWRvd1NpemUsIHNoYWRvd0JsdXIsIHNoYWRvd0Nv
bG9yKTsKIApJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9xdC9HcmFwaGljc0NvbnRl
eHRRdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9xdC9HcmFw
aGljc0NvbnRleHRRdC5jcHAJKHJldmlzaW9uIDYwOTI1KQorKysgV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9xdC9HcmFwaGljc0NvbnRleHRRdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMzNCw3
ICszMzQsNyBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dDo6ZHJhd1JlY3QoY29uc3QgSW50CiAKICAg
ICBpZiAobV9jb21tb24tPnN0YXRlLnNoYWRvd0NvbG9yLmlzVmFsaWQoKSkgewogICAgICAgICBJ
bnRTaXplIHNoYWRvd1NpemU7Ci0gICAgICAgIGludCBzaGFkb3dCbHVyOworICAgICAgICBmbG9h
dCBzaGFkb3dCbHVyOwogICAgICAgICBDb2xvciBzaGFkb3dDb2xvcjsKICAgICAgICAgaWYgKGdl
dFNoYWRvdyhzaGFkb3dTaXplLCBzaGFkb3dCbHVyLCBzaGFkb3dDb2xvcikpIHsKICAgICAgICAg
ICAgIEludFJlY3Qgc2hhZG93UmVjdCA9IHJlY3Q7CkBAIC0zNzIsNyArMzcyLDcgQEAgdm9pZCBH
cmFwaGljc0NvbnRleHQ6OmRyYXdMaW5lKGNvbnN0IEludAogICAgIGFkanVzdExpbmVUb1BpeGVs
Qm91bmRhcmllcyhwMSwgcDIsIHdpZHRoLCBzdHlsZSk7CiAKICAgICBJbnRTaXplIHNoYWRvd1Np
emU7Ci0gICAgaW50IHNoYWRvd0JsdXI7CisgICAgZmxvYXQgc2hhZG93Qmx1cjsKICAgICBDb2xv
ciBzaGFkb3dDb2xvcjsKICAgICBpZiAodGV4dERyYXdpbmdNb2RlKCkgPT0gY1RleHRGaWxsICYm
IGdldFNoYWRvdyhzaGFkb3dTaXplLCBzaGFkb3dCbHVyLCBzaGFkb3dDb2xvcikpIHsKICAgICAg
ICAgcC0+c2F2ZSgpOwpAQCAtNDc0LDcgKzQ3NCw3IEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0Ojpz
dHJva2VBcmMoY29uc3QgSW4KICAgICBwLT5zZXRSZW5kZXJIaW50KFFQYWludGVyOjpBbnRpYWxp
YXNpbmcsIHRydWUpOwogCiAgICAgSW50U2l6ZSBzaGFkb3dTaXplOwotICAgIGludCBzaGFkb3dC
bHVyOworICAgIGZsb2F0IHNoYWRvd0JsdXI7CiAgICAgQ29sb3Igc2hhZG93Q29sb3I7CiAgICAg
c3RhcnRBbmdsZSAqPSAxNjsKICAgICBhbmdsZVNwYW4gKj0gMTY7CkBAIC01MDksNyArNTA5LDcg
QEAgdm9pZCBHcmFwaGljc0NvbnRleHQ6OmRyYXdDb252ZXhQb2x5Z29uKAogICAgIHAtPnNhdmUo
KTsKICAgICBwLT5zZXRSZW5kZXJIaW50KFFQYWludGVyOjpBbnRpYWxpYXNpbmcsIHNob3VsZEFu
dGlhbGlhcyk7CiAgICAgSW50U2l6ZSBzaGFkb3dTaXplOwotICAgIGludCBzaGFkb3dCbHVyOwor
ICAgIGZsb2F0IHNoYWRvd0JsdXI7CiAgICAgQ29sb3Igc2hhZG93Q29sb3I7CiAgICAgaWYgKGdl
dFNoYWRvdyhzaGFkb3dTaXplLCBzaGFkb3dCbHVyLCBzaGFkb3dDb2xvcikpIHsKICAgICAgICAg
cC0+c2F2ZSgpOwpAQCAtNTQwLDcgKzU0MCw3IEBAIFFQZW4gR3JhcGhpY3NDb250ZXh0OjpwZW4o
KQogc3RhdGljIHZvaWQgaW5saW5lIGRyYXdGaWxsZWRTaGFkb3dQYXRoKEdyYXBoaWNzQ29udGV4
dCogY29udGV4dCwgUVBhaW50ZXIqIHAsIGNvbnN0IFFQYWludGVyUGF0aCYgcGF0aCkKIHsKICAg
ICBJbnRTaXplIHNoYWRvd1NpemU7Ci0gICAgaW50IHNoYWRvd0JsdXI7CisgICAgZmxvYXQgc2hh
ZG93Qmx1cjsKICAgICBDb2xvciBzaGFkb3dDb2xvcjsKICAgICBpZiAoY29udGV4dC0+Z2V0U2hh
ZG93KHNoYWRvd1NpemUsIHNoYWRvd0JsdXIsIHNoYWRvd0NvbG9yKSkgewogICAgICAgICBwLT50
cmFuc2xhdGUoc2hhZG93U2l6ZS53aWR0aCgpLCBzaGFkb3dTaXplLmhlaWdodCgpKTsKQEAgLTU4
Nyw3ICs1ODcsNyBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dDo6c3Ryb2tlUGF0aCgpCiAKICAgICBp
ZiAobV9jb21tb24tPnN0YXRlLnN0cm9rZVBhdHRlcm4gfHwgbV9jb21tb24tPnN0YXRlLnN0cm9r
ZUdyYWRpZW50IHx8IHN0cm9rZUNvbG9yKCkuYWxwaGEoKSkgewogICAgICAgICBJbnRTaXplIHNo
YWRvd1NpemU7Ci0gICAgICAgIGludCBzaGFkb3dCbHVyOworICAgICAgICBmbG9hdCBzaGFkb3dC
bHVyOwogICAgICAgICBDb2xvciBzaGFkb3dDb2xvcjsKICAgICAgICAgaWYgKGdldFNoYWRvdyhz
aGFkb3dTaXplLCBzaGFkb3dCbHVyLCBzaGFkb3dDb2xvcikpIHsKICAgICAgICAgICAgIFFUcmFu
c2Zvcm0gdChwLT53b3JsZFRyYW5zZm9ybSgpKTsKQEAgLTYxOSw3ICs2MTksNyBAQCB2b2lkIEdy
YXBoaWNzQ29udGV4dDo6c3Ryb2tlUGF0aCgpCiBzdGF0aWMgaW5saW5lIHZvaWQgZHJhd0JvcmRl
cmxlc3NSZWN0U2hhZG93KEdyYXBoaWNzQ29udGV4dCogY29udGV4dCwgUVBhaW50ZXIqIHAsIGNv
bnN0IEZsb2F0UmVjdCYgcmVjdCkKIHsKICAgICBJbnRTaXplIHNoYWRvd1NpemU7Ci0gICAgaW50
IHNoYWRvd0JsdXI7CisgICAgZmxvYXQgc2hhZG93Qmx1cjsKICAgICBDb2xvciBzaGFkb3dDb2xv
cjsKICAgICBpZiAoY29udGV4dC0+Z2V0U2hhZG93KHNoYWRvd1NpemUsIHNoYWRvd0JsdXIsIHNo
YWRvd0NvbG9yKSkgewogICAgICAgICBGbG9hdFJlY3Qgc2hhZG93UmVjdChyZWN0KTsKQEAgLTgy
MCw3ICs4MjAsNyBAQCBGbG9hdFJlY3QgR3JhcGhpY3NDb250ZXh0Ojpyb3VuZFRvRGV2aWNlCiAg
ICAgcmV0dXJuIEZsb2F0UmVjdChyb3VuZGVkT3JpZ2luLCByb3VuZGVkTG93ZXJSaWdodCAtIHJv
dW5kZWRPcmlnaW4pOwogfQogCi12b2lkIEdyYXBoaWNzQ29udGV4dDo6c2V0UGxhdGZvcm1TaGFk
b3coY29uc3QgSW50U2l6ZSYgc2l6ZSwgaW50LCBjb25zdCBDb2xvciYsIENvbG9yU3BhY2UpCit2
b2lkIEdyYXBoaWNzQ29udGV4dDo6c2V0UGxhdGZvcm1TaGFkb3coY29uc3QgSW50U2l6ZSYgc2l6
ZSwgZmxvYXQsIGNvbnN0IENvbG9yJiwgQ29sb3JTcGFjZSkKIHsKICAgICAvLyBRdCBkb2Vzbid0
IHN1cHBvcnQgc2hhZG93cyBuYXRpdmVseSwgdGhleSBhcmUgZHJhd24gbWFudWFsbHkgaW4gdGhl
IGRyYXcqCiAgICAgLy8gZnVuY3Rpb25zCkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L3F0L0ltYWdlUXQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
cXQvSW1hZ2VRdC5jcHAJKHJldmlzaW9uIDYwOTI1KQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9xdC9JbWFnZVF0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTg4LDcgKzE4OCw3IEBAIHZv
aWQgQml0bWFwSW1hZ2U6OmRyYXcoR3JhcGhpY3NDb250ZXh0KiAKICAgICAgICAgcGFpbnRlci0+
c2V0Q29tcG9zaXRpb25Nb2RlKFFQYWludGVyOjpDb21wb3NpdGlvbk1vZGVfU291cmNlKTsKIAog
ICAgIEludFNpemUgc2hhZG93U2l6ZTsKLSAgICBpbnQgc2hhZG93Qmx1cjsKKyAgICBmbG9hdCBz
aGFkb3dCbHVyOwogICAgIENvbG9yIHNoYWRvd0NvbG9yOwogICAgIGlmIChjdHh0LT5nZXRTaGFk
b3coc2hhZG93U2l6ZSwgc2hhZG93Qmx1ciwgc2hhZG93Q29sb3IpKSB7CiAgICAgICAgIEZsb2F0
UmVjdCBzaGFkb3dJbWFnZVJlY3QoZHN0KTsKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3Mvc2tpYS9HcmFwaGljc0NvbnRleHRTa2lhLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL3NraWEvR3JhcGhpY3NDb250ZXh0U2tpYS5jcHAJKHJldmlzaW9uIDYw
OTI1KQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9za2lhL0dyYXBoaWNzQ29udGV4dFNr
aWEuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC05NzgsNyArOTc4LDcgQEAgdm9pZCBHcmFwaGljc0Nv
bnRleHQ6OnNldFBsYXRmb3JtRmlsbFBhdAogfQogCiB2b2lkIEdyYXBoaWNzQ29udGV4dDo6c2V0
UGxhdGZvcm1TaGFkb3coY29uc3QgSW50U2l6ZSYgc2l6ZSwKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBpbnQgYmx1ckludCwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBmbG9hdCBibHVyRmxvYXQsCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgY29uc3QgQ29sb3ImIGNvbG9yLAogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIENvbG9yU3BhY2UgY29sb3JTcGFjZSkKIHsKQEAgLTk4Niwx
NCArOTg2LDE0IEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0OjpzZXRQbGF0Zm9ybVNoYWRvdygKICAg
ICAgICAgcmV0dXJuOwogCiAgICAgLy8gRGV0ZWN0IHdoZW4gdGhlcmUncyBubyBlZmZlY3RpdmUg
c2hhZG93IGFuZCBjbGVhciB0aGUgbG9vcGVyLgotICAgIGlmICghc2l6ZS53aWR0aCgpICYmICFz
aXplLmhlaWdodCgpICYmICFibHVySW50KSB7CisgICAgaWYgKCFzaXplLndpZHRoKCkgJiYgIXNp
emUuaGVpZ2h0KCkgJiYgIWJsdXJGbG9hdCkgewogICAgICAgICBwbGF0Zm9ybUNvbnRleHQoKS0+
c2V0RHJhd0xvb3BlcigwKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAogICAgIGRvdWJsZSB3
aWR0aCA9IHNpemUud2lkdGgoKTsKICAgICBkb3VibGUgaGVpZ2h0ID0gc2l6ZS5oZWlnaHQoKTsK
LSAgICBkb3VibGUgYmx1ciA9IGJsdXJJbnQ7CisgICAgZG91YmxlIGJsdXIgPSBibHVyRmxvYXQ7
CiAKICAgICAvLyBUT0RPKHRjKTogVGhpcyBzdGlsbCBkb2VzIG5vdCBhZGRyZXNzIHRoZSBpc3N1
ZSB0aGF0IHNoYWRvd3MKICAgICAvLyB3aXRoaW4gY2FudmFzIGVsZW1lbnRzIHNob3VsZCBpZ25v
cmUgdHJhbnNmb3Jtcy4KSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc2tpYS9Ta2lh
Rm9udFdpbi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9za2lh
L1NraWFGb250V2luLmNwcAkocmV2aXNpb24gNjA5MjUpCisrKyBXZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL3NraWEvU2tpYUZvbnRXaW4uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yMjMsNyArMjIz
LDcgQEAgdm9pZCBTa2lhV2luT3V0bGluZUNhY2hlOjpyZW1vdmVQYXRoc0ZvcgogYm9vbCB3aW5k
b3dzQ2FuSGFuZGxlRHJhd1RleHRTaGFkb3coV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0ICpjb250
ZXh0KQogewogICAgIEludFNpemUgc2hhZG93U2l6ZTsKLSAgICBpbnQgc2hhZG93Qmx1cjsKKyAg
ICBmbG9hdCBzaGFkb3dCbHVyOwogICAgIENvbG9yIHNoYWRvd0NvbG9yOwogCiAgICAgYm9vbCBo
YXNTaGFkb3cgPSBjb250ZXh0LT5nZXRTaGFkb3coc2hhZG93U2l6ZSwgc2hhZG93Qmx1ciwgc2hh
ZG93Q29sb3IpOwpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vRm9udENHV2lu
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9Gb250Q0dX
aW4uY3BwCShyZXZpc2lvbiA2MDkyNSkKKysrIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2lu
L0ZvbnRDR1dpbi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE0MSw3ICsxNDEsNyBAQCBzdGF0aWMg
dm9pZCBkcmF3R0RJR2x5cGhzKEdyYXBoaWNzQ29udGV4CiAgICAgICAgIGRyYXdJbnRvQml0bWFw
ID0gZmlsbENvbG9yLmFscGhhKCkgIT0gMjU1IHx8IGdyYXBoaWNzQ29udGV4dC0+aW5UcmFuc3Bh
cmVuY3lMYXllcigpOwogICAgICAgICBpZiAoIWRyYXdJbnRvQml0bWFwKSB7CiAgICAgICAgICAg
ICBJbnRTaXplIHNpemU7Ci0gICAgICAgICAgICBpbnQgYmx1cjsKKyAgICAgICAgICAgIGZsb2F0
IGJsdXI7CiAgICAgICAgICAgICBDb2xvciBjb2xvcjsKICAgICAgICAgICAgIGdyYXBoaWNzQ29u
dGV4dC0+Z2V0U2hhZG93KHNpemUsIGJsdXIsIGNvbG9yKTsKICAgICAgICAgICAgIGRyYXdJbnRv
Qml0bWFwID0gIXNpemUuaXNFbXB0eSgpIHx8IGJsdXI7CkBAIC0zNTAsNyArMzUwLDcgQEAgdm9p
ZCBGb250OjpkcmF3R2x5cGhzKEdyYXBoaWNzQ29udGV4dCogZwogICAgIHdrU2V0Q0dDb250ZXh0
Rm9udFJlbmRlcmluZ1N0eWxlKGNnQ29udGV4dCwgZm9udC0+aXNTeXN0ZW1Gb250KCksIGZhbHNl
LCBmb250LT5wbGF0Zm9ybURhdGEoKS51c2VHREkoKSk7CiAKICAgICBJbnRTaXplIHNoYWRvd1Np
emU7Ci0gICAgaW50IHNoYWRvd0JsdXI7CisgICAgZmxvYXQgc2hhZG93Qmx1cjsKICAgICBDb2xv
ciBzaGFkb3dDb2xvcjsKICAgICBncmFwaGljc0NvbnRleHQtPmdldFNoYWRvdyhzaGFkb3dTaXpl
LCBzaGFkb3dCbHVyLCBzaGFkb3dDb2xvcik7CiAKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3Mvd2luY2UvR3JhcGhpY3NDb250ZXh0V2luY2UuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luY2UvR3JhcGhpY3NDb250ZXh0V2luY2UuY3BwCShyZXZp
c2lvbiA2MDkyNSkKKysrIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luY2UvR3JhcGhpY3ND
b250ZXh0V2luY2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMjUwLDcgKzEyNTAsNyBAQCB2b2lk
IEdyYXBoaWNzQ29udGV4dDo6ZmlsbFJvdW5kZWRSZWN0KGNvCiAgICAgICAgIHJldHVybjsKIAog
ICAgIEludFNpemUgc2hhZG93U2l6ZTsKLSAgICBpbnQgc2hhZG93Qmx1ciA9IDA7CisgICAgZmxv
YXQgc2hhZG93Qmx1ciA9IDA7CiAgICAgQ29sb3Igc2hhZG93Q29sb3I7CiAgICAgICAgIAogICAg
IGdldFNoYWRvdyhzaGFkb3dTaXplLCBzaGFkb3dCbHVyLCBzaGFkb3dDb2xvcik7CkBAIC0xNTUw
LDcgKzE1NTAsNyBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dDo6ZmlsbFJlY3QoY29uc3QgRmxvCiAg
ICAgICAgIGZpbGxSZWN0KHJlY3QsIGZpbGxDb2xvcigpLCBEZXZpY2VDb2xvclNwYWNlKTsKIH0K
IAotdm9pZCBHcmFwaGljc0NvbnRleHQ6OnNldFBsYXRmb3JtU2hhZG93KGNvbnN0IEludFNpemUm
LCBpbnQsIGNvbnN0IENvbG9yJiwgQ29sb3JTcGFjZSkKK3ZvaWQgR3JhcGhpY3NDb250ZXh0Ojpz
ZXRQbGF0Zm9ybVNoYWRvdyhjb25zdCBJbnRTaXplJiwgZmxvYXQsIGNvbnN0IENvbG9yJiwgQ29s
b3JTcGFjZSkKIHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwogfQpAQCAtMTY3Myw3ICsxNjczLDcg
QEAgdm9pZCBHcmFwaGljc0NvbnRleHQ6OmRyYXdUZXh0KGNvbnN0IFNpbQogICAgIH0KIAogICAg
IEludFNpemUgc2hhZG93U2l6ZTsKLSAgICBpbnQgc2hhZG93Qmx1ciA9IDA7CisgICAgZmxvYXQg
c2hhZG93Qmx1ciA9IDA7CiAgICAgQ29sb3Igc2hhZG93Q29sb3I7CiAgICAgYm9vbCBoYXNTaGFk
b3cgPSB0ZXh0RHJhd2luZ01vZGUoKSA9PSBjVGV4dEZpbGwKICAgICAgICAgJiYgZ2V0U2hhZG93
KHNoYWRvd1NpemUsIHNoYWRvd0JsdXIsIHNoYWRvd0NvbG9yKQpJbmRleDogV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy93eC9HcmFwaGljc0NvbnRleHRXeC5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy93eC9HcmFwaGljc0NvbnRleHRXeC5jcHAJKHJldmlzaW9u
IDYwOTI1KQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93eC9HcmFwaGljc0NvbnRleHRX
eC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTU1NCw3ICs1NTQsNyBAQCB2b2lkIEdyYXBoaWNzQ29u
dGV4dDo6ZmlsbFJlY3QoY29uc3QgRmxvCiAgICAgICAgIHJldHVybjsKIH0KIAotdm9pZCBHcmFw
aGljc0NvbnRleHQ6OnNldFBsYXRmb3JtU2hhZG93KEludFNpemUgY29uc3QmLGludCxDb2xvciBj
b25zdCYsIENvbG9yU3BhY2UpIAordm9pZCBHcmFwaGljc0NvbnRleHQ6OnNldFBsYXRmb3JtU2hh
ZG93KEludFNpemUgY29uc3QmLCBmbG9hdCwgQ29sb3IgY29uc3QmLCBDb2xvclNwYWNlKSAKIHsg
CiAgICAgbm90SW1wbGVtZW50ZWQoKTsgCiB9CkluZGV4OiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCShyZXZpc2lvbiA2MDkyNikKKysr
IExheW91dFRlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDExIEBACisy
MDEwLTA2LTA5ICBDaGFuZyBTaHUgIDxjaGFuZy5zaHVAbm9raWEuY29tPgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFtRdF0gVW5za2lwIGNhbnZhcy9w
aGlsaXAvdGVzdHMvMmQuc2hhZG93LmVuYWJsZS5ibHVyLmh0bWwuCisKKyAgICAgICAgKiBwbGF0
Zm9ybS9xdC9Ta2lwcGVkOgorCiAyMDEwLTA2LTA5ICBBZGFtIEJhcnRoICA8YWJhcnRoQHdlYmtp
dC5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRXJpYyBTZWlkZWwuCkluZGV4OiBMYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9xdC9Ta2lwcGVkCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3BsYXRm
b3JtL3F0L1NraXBwZWQJKHJldmlzaW9uIDYwOTI1KQorKysgTGF5b3V0VGVzdHMvcGxhdGZvcm0v
cXQvU2tpcHBlZAkod29ya2luZyBjb3B5KQpAQCAtNTM0NCw3ICs1MzQ0LDYgQEAgY2FudmFzL3Bo
aWxpcC90ZXN0cy8yZC5zaGFkb3cuYWxwaGEuNS5odAogY2FudmFzL3BoaWxpcC90ZXN0cy8yZC5z
aGFkb3cuY2FudmFzLmFscGhhLmh0bWwKIGNhbnZhcy9waGlsaXAvdGVzdHMvMmQuc2hhZG93LmNh
bnZhcy5iYXNpYy5odG1sCiBjYW52YXMvcGhpbGlwL3Rlc3RzLzJkLnNoYWRvdy5jYW52YXMudHJh
bnNwYXJlbnQuMi5odG1sCi1jYW52YXMvcGhpbGlwL3Rlc3RzLzJkLnNoYWRvdy5lbmFibGUuYmx1
ci5odG1sCiBjYW52YXMvcGhpbGlwL3Rlc3RzLzJkLnNoYWRvdy5lbmFibGUueC5odG1sCiBjYW52
YXMvcGhpbGlwL3Rlc3RzLzJkLnNoYWRvdy5lbmFibGUueS5odG1sCiBjYW52YXMvcGhpbGlwL3Rl
c3RzLzJkLnNoYWRvdy5ncmFkaWVudC5hbHBoYS5odG1sCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>