<?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>49881</bug_id>
          
          <creation_ts>2010-11-21 06:41:42 -0800</creation_ts>
          <short_desc>Use WTF_ARRAY_LENGTH in WebCore/platform directory</short_desc>
          <delta_ts>2010-11-21 09:09:51 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Patrick R. Gansterer">paroga</reporter>
          <assigned_to name="Patrick R. Gansterer">paroga</assigned_to>
          <cc>buildbot</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dglazkov</cc>
    
    <cc>eric</cc>
    
    <cc>gustavo</cc>
    
    <cc>webkit-ews</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>xan.lopez</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>312082</commentid>
    <comment_count>0</comment_count>
    <who name="Patrick R. Gansterer">paroga</who>
    <bug_when>2010-11-21 06:41:42 -0800</bug_when>
    <thetext>see patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>312083</commentid>
    <comment_count>1</comment_count>
      <attachid>74502</attachid>
    <who name="Patrick R. Gansterer">paroga</who>
    <bug_when>2010-11-21 06:44:57 -0800</bug_when>
    <thetext>Created attachment 74502
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>312084</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-11-21 06:48:48 -0800</bug_when>
    <thetext>Attachment 74502 did not build on chromium:
Build output: http://queues.webkit.org/results/6227103</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>312085</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-11-21 06:48:53 -0800</bug_when>
    <thetext>Attachment 74502 did not build on gtk:
Build output: http://queues.webkit.org/results/6251074</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>312086</commentid>
    <comment_count>4</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-11-21 06:54:50 -0800</bug_when>
    <thetext>Attachment 74502 did not build on mac:
Build output: http://queues.webkit.org/results/6254094</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>312087</commentid>
    <comment_count>5</comment_count>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2010-11-21 06:55:04 -0800</bug_when>
    <thetext>Attachment 74502 did not build on qt:
Build output: http://queues.webkit.org/results/6134094</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>312088</commentid>
    <comment_count>6</comment_count>
      <attachid>74503</attachid>
    <who name="Patrick R. Gansterer">paroga</who>
    <bug_when>2010-11-21 06:58:49 -0800</bug_when>
    <thetext>Created attachment 74503
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>312089</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-11-21 07:01:18 -0800</bug_when>
    <thetext>Attachment 74503 did not build on gtk:
Build output: http://queues.webkit.org/results/6279033</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>312090</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-11-21 07:02:54 -0800</bug_when>
    <thetext>Attachment 74503 did not build on chromium:
Build output: http://queues.webkit.org/results/6286012</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>312091</commentid>
    <comment_count>9</comment_count>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2010-11-21 07:07:31 -0800</bug_when>
    <thetext>Attachment 74503 did not build on qt:
Build output: http://queues.webkit.org/results/6236097</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>312092</commentid>
    <comment_count>10</comment_count>
      <attachid>74504</attachid>
    <who name="Patrick R. Gansterer">paroga</who>
    <bug_when>2010-11-21 07:07:53 -0800</bug_when>
    <thetext>Created attachment 74504
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>312093</commentid>
    <comment_count>11</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-11-21 07:11:18 -0800</bug_when>
    <thetext>Attachment 74504 did not build on chromium:
Build output: http://queues.webkit.org/results/6281028</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>312094</commentid>
    <comment_count>12</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-11-21 07:11:30 -0800</bug_when>
    <thetext>Attachment 74504 did not build on gtk:
Build output: http://queues.webkit.org/results/6153095</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>312096</commentid>
    <comment_count>13</comment_count>
      <attachid>74505</attachid>
    <who name="Patrick R. Gansterer">paroga</who>
    <bug_when>2010-11-21 07:12:52 -0800</bug_when>
    <thetext>Created attachment 74505
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>312097</commentid>
    <comment_count>14</comment_count>
    <who name="Build Bot">buildbot</who>
    <bug_when>2010-11-21 07:14:47 -0800</bug_when>
    <thetext>Attachment 74502 did not build on win:
Build output: http://queues.webkit.org/results/6237087</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>312099</commentid>
    <comment_count>15</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-11-21 07:17:00 -0800</bug_when>
    <thetext>Attachment 74504 did not build on mac:
Build output: http://queues.webkit.org/results/6155095</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>312100</commentid>
    <comment_count>16</comment_count>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2010-11-21 07:18:12 -0800</bug_when>
    <thetext>Attachment 74504 did not build on qt:
Build output: http://queues.webkit.org/results/6152096</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>312102</commentid>
    <comment_count>17</comment_count>
    <who name="Build Bot">buildbot</who>
    <bug_when>2010-11-21 07:23:59 -0800</bug_when>
    <thetext>Attachment 74504 did not build on win:
Build output: http://queues.webkit.org/results/6270041</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>312103</commentid>
    <comment_count>18</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-11-21 07:25:42 -0800</bug_when>
    <thetext>Attachment 74504 did not build on chromium:
Build output: http://queues.webkit.org/results/6143100</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>312110</commentid>
    <comment_count>19</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-11-21 08:01:03 -0800</bug_when>
    <thetext>Attachment 74503 did not build on mac:
Build output: http://queues.webkit.org/results/6264064</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>312116</commentid>
    <comment_count>20</comment_count>
      <attachid>74505</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-11-21 09:09:44 -0800</bug_when>
    <thetext>Comment on attachment 74505
Patch

Clearing flags on attachment: 74505

Committed r72498: &lt;http://trac.webkit.org/changeset/72498&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>312117</commentid>
    <comment_count>21</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-11-21 09:09:51 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>74502</attachid>
            <date>2010-11-21 06:44:57 -0800</date>
            <delta_ts>2010-11-21 06:58:49 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-49881.patch</filename>
            <type>text/plain</type>
            <size>23737</size>
            <attacher name="Patrick R. Gansterer">paroga</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
ZWM5YmJiNC4uZmQzNWNhNyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0NyBAQAorMjAxMC0xMS0yMSAgUGF0cmljayBHYW5z
dGVyZXIgIDxwYXJvZ2FAd2Via2l0Lm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBVc2UgV1RGX0FSUkFZX0xFTkdUSCBpbiBXZWJDb3JlL3BsYXRm
b3JtIGRpcmVjdG9yeQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9NDk4ODEKKworICAgICAgICAqIHBsYXRmb3JtL0tVUkwuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6cG9ydEFsbG93ZWQpOgorICAgICAgICAqIHBsYXRmb3JtL0tVUkxHb29nbGUuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6cG9ydEFsbG93ZWQpOgorICAgICAgICAqIHBsYXRmb3JtL01JTUVU
eXBlUmVnaXN0cnkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6aW5pdGlhbGl6ZVN1cHBvcnRlZElt
YWdlTUlNRVR5cGVzKToKKyAgICAgICAgKFdlYkNvcmU6OmluaXRpYWxpemVTdXBwb3J0ZWRKYXZh
U2NyaXB0TUlNRVR5cGVzKToKKyAgICAgICAgKFdlYkNvcmU6OmluaXRpYWxpemVTdXBwb3J0ZWRO
b25JbWFnZU1pbWVUeXBlcyk6CisgICAgICAgICogcGxhdGZvcm0vVVVJRC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpjcmVhdGVDYW5vbmljYWxVVUlEU3RyaW5nKToKKyAgICAgICAgKiBwbGF0Zm9y
bS9lZmwvUmVuZGVyVGhlbWVFZmwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWVF
Zmw6OmFwcGx5RWRqZVN0YXRlRnJvbUZvcm0pOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L0dyYXBoaWNzVHlwZXMuY3BwOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVt
L0ZvbnRDYWNoZUNocm9taXVtV2luLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZvbnRDb2RlcGFn
ZTo6aWYpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0ZvbnRVdGlsc0No
cm9taXVtV2luLmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9tYWMvQ29tcGxleFRl
eHRDb250cm9sbGVyQ29yZVRleHQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q29tcGxleFRleHRD
b250cm9sbGVyOjpjb2xsZWN0Q29tcGxleFRleHRSdW5zRm9yQ2hhcmFjdGVyc0NvcmVUZXh0KToK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9tYWMvTWVkaWFQbGF5ZXJQcml2YXRlUVRLaXQu
bW06CisgICAgICAgIChXZWJDb3JlOjpkaXNhYmxlQ29tcG9uZW50c09uY2UpOgorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL21hYy9TaW1wbGVGb250RGF0YUFUU1VJLm1tOgorICAgICAgICAo
V2ViQ29yZTo6U2ltcGxlRm9udERhdGE6OmNoZWNrU2hhcGVzQXJhYmljKToKKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy9tYWMvU2ltcGxlRm9udERhdGFDb3JlVGV4dC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpTaW1wbGVGb250RGF0YTo6Z2V0Q0ZTdHJpbmdBdHRyaWJ1dGVzKToKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy93aW4vR3JhcGhpY3NDb250ZXh0Q0dXaW4uY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0OjpkcmF3TGluZUZvclRleHRDaGVja2luZyk6
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL01lZGlhUGxheWVyUHJpdmF0ZVF1aWNr
VGltZVZpc3VhbENvbnRleHQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6ZGlzYWJsZUNvbXBvbmVu
dHNPbmNlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy93aW4vUVRNb3ZpZS5jcHA6Cisg
ICAgICAgIChRVE1vdmllOjpsb2FkKToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL2NmL1Nv
Y2tldFN0cmVhbUhhbmRsZUNGTmV0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNvY2tldFN0cmVh
bUhhbmRsZTo6Y3JlYXRlU3RyZWFtcyk6CisgICAgICAgICogcGxhdGZvcm0vdGV4dC9UZXh0RW5j
b2RpbmdSZWdpc3RyeS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpwcnVuZUJsYWNrbGlzdGVkQ29k
ZWNzKToKKyAgICAgICAgKiBwbGF0Zm9ybS90ZXh0L3RyYW5zY29kZXIvRm9udFRyYW5zY29kZXIu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6Rm9udFRyYW5zY29kZXI6OkZvbnRUcmFuc2NvZGVyKToK
KwogMjAxMC0xMS0yMCAgQW5kcmVhcyBLbGluZyAgPGtsaW5nQHdlYmtpdC5vcmc+CiAKICAgICAg
ICAgUnViYmVyLXN0YW1wZWQgYnkgQW50b25pbyBHb21lcy4KZGlmZiAtLWdpdCBhL1dlYkNvcmUv
cGxhdGZvcm0vS1VSTC5jcHAgYi9XZWJDb3JlL3BsYXRmb3JtL0tVUkwuY3BwCmluZGV4IDNhYzVk
ODYuLmNhNjNkYjcgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vS1VSTC5jcHAKKysrIGIv
V2ViQ29yZS9wbGF0Zm9ybS9LVVJMLmNwcApAQCAtMTc5Niw3ICsxNzk2LDcgQEAgYm9vbCBwb3J0
QWxsb3dlZChjb25zdCBLVVJMJiB1cmwpCiAgICAgICAgIDY2NjksIC8vIEFsdGVybmF0ZSBJUkMg
W0FwcGxlIGFkZGl0aW9uXQogICAgICAgICBpbnZhbGlkUG9ydE51bWJlciwgLy8gVXNlZCB0byBi
bG9jayBhbGwgaW52YWxpZCBwb3J0IG51bWJlcnMKICAgICB9OwotICAgIGNvbnN0IHVuc2lnbmVk
IHNob3J0KiBjb25zdCBibG9ja2VkUG9ydExpc3RFbmQgPSBibG9ja2VkUG9ydExpc3QgKyBzaXpl
b2YoYmxvY2tlZFBvcnRMaXN0KSAvIHNpemVvZihibG9ja2VkUG9ydExpc3RbMF0pOworICAgIGNv
bnN0IHVuc2lnbmVkIHNob3J0KiBjb25zdCBibG9ja2VkUG9ydExpc3RFbmQgPSBibG9ja2VkUG9y
dExpc3QgKyBBUlJBWV9MRU5HVEgoYmxvY2tlZFBvcnRMaXN0KTsKIAogI2lmbmRlZiBOREVCVUcK
ICAgICAvLyBUaGUgcG9ydCBsaXN0IG11c3QgYmUgc29ydGVkIGZvciBiaW5hcnlfc2VhcmNoIHRv
IHdvcmsuCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL0tVUkxHb29nbGUuY3BwIGIvV2Vi
Q29yZS9wbGF0Zm9ybS9LVVJMR29vZ2xlLmNwcAppbmRleCA3MjZiYzU3Li5lZmRkNDQyIDEwMDY0
NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL0tVUkxHb29nbGUuY3BwCisrKyBiL1dlYkNvcmUvcGxh
dGZvcm0vS1VSTEdvb2dsZS5jcHAKQEAgLTg5Myw3ICs4OTMsNyBAQCBib29sIHBvcnRBbGxvd2Vk
KGNvbnN0IEtVUkwmIHVybCkKICAgICAgICAgNjY2OSwgLy8gQWx0ZXJuYXRlIElSQyBbQXBwbGUg
YWRkaXRpb25dCiAgICAgICAgIGludmFsaWRQb3J0TnVtYmVyLCAvLyBVc2VkIHRvIGJsb2NrIGFs
bCBpbnZhbGlkIHBvcnQgbnVtYmVycwogICAgIH07Ci0gICAgY29uc3QgdW5zaWduZWQgc2hvcnQq
IGNvbnN0IGJsb2NrZWRQb3J0TGlzdEVuZCA9IGJsb2NrZWRQb3J0TGlzdCArIHNpemVvZihibG9j
a2VkUG9ydExpc3QpIC8gc2l6ZW9mKGJsb2NrZWRQb3J0TGlzdFswXSk7CisgICAgY29uc3QgdW5z
aWduZWQgc2hvcnQqIGNvbnN0IGJsb2NrZWRQb3J0TGlzdEVuZCA9IGJsb2NrZWRQb3J0TGlzdCAr
IEFSUkFZX0xFTkdUSChibG9ja2VkUG9ydExpc3QpOwogCiAjaWZuZGVmIE5ERUJVRwogICAgIC8v
IFRoZSBwb3J0IGxpc3QgbXVzdCBiZSBzb3J0ZWQgZm9yIGJpbmFyeV9zZWFyY2ggdG8gd29yay4K
ZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vTUlNRVR5cGVSZWdpc3RyeS5jcHAgYi9XZWJD
b3JlL3BsYXRmb3JtL01JTUVUeXBlUmVnaXN0cnkuY3BwCmluZGV4IGMxNTJhMzYuLjg1NWQ5YzMg
MTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vTUlNRVR5cGVSZWdpc3RyeS5jcHAKKysrIGIv
V2ViQ29yZS9wbGF0Zm9ybS9NSU1FVHlwZVJlZ2lzdHJ5LmNwcApAQCAtMTE5LDcgKzExOSw3IEBA
IHN0YXRpYyB2b2lkIGluaXRpYWxpemVTdXBwb3J0ZWRJbWFnZU1JTUVUeXBlcygpCiAgICAgICAg
ICJpbWFnZS94LWljb24iLCAgICAvLyBpY28KICAgICAgICAgImltYWdlL3gteGJpdG1hcCIgIC8v
IHhibQogICAgIH07Ci0gICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBzaXplb2YodHlwZXMpIC8g
c2l6ZW9mKHR5cGVzWzBdKTsgKytpKSB7CisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBBUlJB
WV9MRU5HVEgodHlwZXMpOyArK2kpIHsKICAgICAgICAgc3VwcG9ydGVkSW1hZ2VNSU1FVHlwZXMt
PmFkZCh0eXBlc1tpXSk7CiAgICAgICAgIHN1cHBvcnRlZEltYWdlUmVzb3VyY2VNSU1FVHlwZXMt
PmFkZCh0eXBlc1tpXSk7CiAgICAgfQpAQCAtMTg3LDcgKzE4Nyw3IEBAIHN0YXRpYyB2b2lkIGlu
aXRpYWxpemVTdXBwb3J0ZWRKYXZhU2NyaXB0TUlNRVR5cGVzKCkKICAgICAgICAgInRleHQvanNj
cmlwdCIsCiAgICAgICAgICJ0ZXh0L2xpdmVzY3JpcHQiLAogICAgIH07Ci0gICAgZm9yIChzaXpl
X3QgaSA9IDA7IGkgPCBzaXplb2YodHlwZXMpIC8gc2l6ZW9mKHR5cGVzWzBdKTsgKytpKQorICAg
IGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgQVJSQVlfTEVOR1RIKHR5cGVzKTsgKytpKQogICAgICAg
c3VwcG9ydGVkSmF2YVNjcmlwdE1JTUVUeXBlcy0+YWRkKHR5cGVzW2ldKTsKIH0KIApAQCAtMjIy
LDcgKzIyMiw3IEBAIHN0YXRpYyB2b2lkIGluaXRpYWxpemVTdXBwb3J0ZWROb25JbWFnZU1pbWVU
eXBlcygpCiAgICAgQ09NUElMRV9BU1NFUlQoc2l6ZW9mKHR5cGVzKSAvIHNpemVvZih0eXBlc1sw
XSkgPD0gMTYsCiAgICAgICAgICAgICAgICAgICAgbm9uaW1hZ2VfbWltZV90eXBlc19tdXN0X2Jl
X2xlc3NfdGhhbl9vcl9lcXVhbF90b18xNik7CiAKLSAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8
IHNpemVvZih0eXBlcykvc2l6ZW9mKHR5cGVzWzBdKTsgKytpKQorICAgIGZvciAoc2l6ZV90IGkg
PSAwOyBpIDwgQVJSQVlfTEVOR1RIKHR5cGVzKTsgKytpKQogICAgICAgICBzdXBwb3J0ZWROb25J
bWFnZU1JTUVUeXBlcy0+YWRkKHR5cGVzW2ldKTsKIAogICAgIEFyY2hpdmVGYWN0b3J5OjpyZWdp
c3Rlcktub3duQXJjaGl2ZU1JTUVUeXBlcygpOwpAQCAtMzIyLDIxICszMjIsMTkgQEAgc3RhdGlj
IE1lZGlhTUlNRVR5cGVNYXAmIG1lZGlhTUlNRVR5cGVNYXAoKQogICAgIGlmICghbWVkaWFNSU1F
VHlwZUZvckV4dGVuc2lvbk1hcC5pc0VtcHR5KCkpCiAgICAgICAgIHJldHVybiBtZWRpYU1JTUVU
eXBlRm9yRXh0ZW5zaW9uTWFwOwogCi0gICAgY29uc3QgdW5zaWduZWQgbnVtUGFpcnMgPSBzaXpl
b2YocGFpcnMpIC8gc2l6ZW9mKHBhaXJzWzBdKTsKLSAgICBmb3IgKHVuc2lnbmVkIG5keCA9IDA7
IG5keCA8IG51bVBhaXJzOyArK25keCkgewotCi0gICAgICAgIGlmIChtZWRpYU1JTUVUeXBlRm9y
RXh0ZW5zaW9uTWFwLmNvbnRhaW5zKHBhaXJzW25keF0uZXh0ZW5zaW9uKSkKLSAgICAgICAgICAg
IG1lZGlhTUlNRVR5cGVGb3JFeHRlbnNpb25NYXAuZ2V0KHBhaXJzW25keF0uZXh0ZW5zaW9uKS0+
YXBwZW5kKHBhaXJzW25keF0udHlwZSk7CisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBBUlJB
WV9MRU5HVEgocGFpcnMpOyArK2kpIHsKKyAgICAgICAgaWYgKG1lZGlhTUlNRVR5cGVGb3JFeHRl
bnNpb25NYXAuY29udGFpbnMocGFpcnNbaV0uZXh0ZW5zaW9uKSkKKyAgICAgICAgICAgIG1lZGlh
TUlNRVR5cGVGb3JFeHRlbnNpb25NYXAuZ2V0KHBhaXJzW2ldLmV4dGVuc2lvbiktPmFwcGVuZChw
YWlyc1tpXS50eXBlKTsKICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICBWZWN0b3I8U3RyaW5n
Piogc3lub255bXMgPSBuZXcgVmVjdG9yPFN0cmluZz47CiAKICAgICAgICAgICAgIC8vIElmIHRo
ZXJlIGlzIGEgc3lzdGVtIHNwZWNpZmljIHR5cGUgZm9yIHRoaXMgZXh0ZW5zaW9uLCBhZGQgaXQg
YXMgdGhlIGZpcnN0IHR5cGUgc28KICAgICAgICAgICAgIC8vIGdldE1lZGlhTUlNRVR5cGVGb3JF
eHRlbnNpb24gd2lsbCBhbHdheXMgcmV0dXJuIGl0LgotICAgICAgICAgICAgU3RyaW5nIHN5c3Rl
bVR5cGUgPSBNSU1FVHlwZVJlZ2lzdHJ5OjpnZXRNSU1FVHlwZUZvckV4dGVuc2lvbihwYWlyc1tu
ZHhdLmV4dGVuc2lvbik7Ci0gICAgICAgICAgICBpZiAoIXN5c3RlbVR5cGUuaXNFbXB0eSgpICYm
IHBhaXJzW25keF0udHlwZSAhPSBzeXN0ZW1UeXBlKQorICAgICAgICAgICAgU3RyaW5nIHN5c3Rl
bVR5cGUgPSBNSU1FVHlwZVJlZ2lzdHJ5OjpnZXRNSU1FVHlwZUZvckV4dGVuc2lvbihwYWlyc1tp
XS5leHRlbnNpb24pOworICAgICAgICAgICAgaWYgKCFzeXN0ZW1UeXBlLmlzRW1wdHkoKSAmJiBw
YWlyc1tpXS50eXBlICE9IHN5c3RlbVR5cGUpCiAgICAgICAgICAgICAgICAgc3lub255bXMtPmFw
cGVuZChzeXN0ZW1UeXBlKTsKLSAgICAgICAgICAgIHN5bm9ueW1zLT5hcHBlbmQocGFpcnNbbmR4
XS50eXBlKTsKLSAgICAgICAgICAgIG1lZGlhTUlNRVR5cGVGb3JFeHRlbnNpb25NYXAuYWRkKHBh
aXJzW25keF0uZXh0ZW5zaW9uLCBzeW5vbnltcyk7CisgICAgICAgICAgICBzeW5vbnltcy0+YXBw
ZW5kKHBhaXJzW2ldLnR5cGUpOworICAgICAgICAgICAgbWVkaWFNSU1FVHlwZUZvckV4dGVuc2lv
bk1hcC5hZGQocGFpcnNbaV0uZXh0ZW5zaW9uLCBzeW5vbnltcyk7CiAgICAgICAgIH0KICAgICB9
CiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vVVVJRC5jcHAgYi9XZWJDb3JlL3BsYXRm
b3JtL1VVSUQuY3BwCmluZGV4IGViNzIxZTAuLmEwMDJjOGIgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUv
cGxhdGZvcm0vVVVJRC5jcHAKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9VVUlELmNwcApAQCAtOTUs
NyArOTUsNyBAQCBTdHJpbmcgY3JlYXRlQ2Fub25pY2FsVVVJRFN0cmluZygpCiAgICAgcmV0dXJu
IGNhbm9uaWNhbFV1aWRTdHI7CiAjZWxpZiBPUyhMSU5VWCkgJiYgUExBVEZPUk0oQ0hST01JVU0p
CiAgICAgdW5zaWduZWQgcmFuZG9tRGF0YVs0XTsKLSAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8
IHNpemVvZihyYW5kb21EYXRhKSAvIHNpemVvZihyYW5kb21EYXRhWzBdKTsgKytpKQorICAgIGZv
ciAoc2l6ZV90IGkgPSAwOyBpIDwgQVJSQVlfTEVOR1RIKHJhbmRvbURhdGEpOyArK2kpCiAgICAg
ICAgIHJhbmRvbURhdGFbaV0gPSBzdGF0aWNfY2FzdDx1bnNpZ25lZD4ocmFuZG9tTnVtYmVyKCkg
KiAoc3RkOjpudW1lcmljX2xpbWl0czx1bnNpZ25lZD46Om1heCgpICsgMS4wKSk7CiAKICAgICAv
LyBGb3JtYXQgYXMgVmVyc2lvbiA0IFVVSUQuCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3Jt
L2VmbC9SZW5kZXJUaGVtZUVmbC5jcHAgYi9XZWJDb3JlL3BsYXRmb3JtL2VmbC9SZW5kZXJUaGVt
ZUVmbC5jcHAKaW5kZXggNjA3Njc0Ny4uZTA4ZWM5NiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0
Zm9ybS9lZmwvUmVuZGVyVGhlbWVFZmwuY3BwCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vZWZsL1Jl
bmRlclRoZW1lRWZsLmNwcApAQCAtMjQ3LDExICsyNDcsMTAgQEAgdm9pZCBSZW5kZXJUaGVtZUVm
bDo6YXBwbHlFZGplU3RhdGVGcm9tRm9ybShFdmFzX09iamVjdCogbywgQ29udHJvbFN0YXRlcyBz
dGF0ZXMKICAgICAgICAgIndpbmRvdy1pbmFjdGl2ZSIsCiAgICAgICAgICJpbmRldGVybWluYXRl
IgogICAgIH07Ci0gICAgc2l6ZV90IGksIGxhc3QgPSBzaXplb2Yoc2lnbmFscykgLyBzaXplb2Yo
c2lnbmFsc1swXSk7CiAKICAgICBlZGplX29iamVjdF9zaWduYWxfZW1pdChvLCAicmVzZXQiLCAi
Iik7CiAKLSAgICBmb3IgKGkgPSAwOyBpIDwgbGFzdDsgaSsrKSB7CisgICAgZm9yIChzaXplX3Qg
aSA9IDA7IGkgPCBBUlJBWV9MRU5HVEgoc2lnbmFscyk7ICsraSkgewogICAgICAgICBpZiAoc3Rh
dGVzICYgKDEgPDwgaSkpCiAgICAgICAgICAgICBlZGplX29iamVjdF9zaWduYWxfZW1pdChvLCBz
aWduYWxzW2ldLCAiIik7CiAgICAgfQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9HcmFwaGljc1R5cGVzLmNwcCBiL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhp
Y3NUeXBlcy5jcHAKaW5kZXggNzYxYmY0MC4uMDRiZTcwNiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc1R5cGVzLmNwcAorKysgYi9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL0dyYXBoaWNzVHlwZXMuY3BwCkBAIC00Nyw3ICs0Nyw3IEBAIHN0YXRpYyBjb25z
dCBjaGFyKiBjb25zdCBjb21wb3NpdGVPcGVyYXRvck5hbWVzW10gPSB7CiAgICAgImhpZ2hsaWdo
dCIsCiAgICAgImxpZ2h0ZXIiCiB9OwotY29uc3QgaW50IG51bUNvbXBvc2l0ZU9wZXJhdG9yTmFt
ZXMgPSBzaXplb2YoY29tcG9zaXRlT3BlcmF0b3JOYW1lcykgLyBzaXplb2YoY29tcG9zaXRlT3Bl
cmF0b3JOYW1lc1swXSk7Citjb25zdCBpbnQgbnVtQ29tcG9zaXRlT3BlcmF0b3JOYW1lcyA9IEFS
UkFZX0xFTkdUSChjb21wb3NpdGVPcGVyYXRvck5hbWVzKTsKIAogYm9vbCBwYXJzZUNvbXBvc2l0
ZU9wZXJhdG9yKGNvbnN0IFN0cmluZyYgcywgQ29tcG9zaXRlT3BlcmF0b3ImIG9wKQogewpkaWZm
IC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9Gb250Q2FjaGVDaHJv
bWl1bVdpbi5jcHAgYi9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0ZvbnRDYWNo
ZUNocm9taXVtV2luLmNwcAppbmRleCAzODRiMWM1Li4wYTM3M2FmIDEwMDY0NAotLS0gYS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0ZvbnRDYWNoZUNocm9taXVtV2luLmNwcAor
KysgYi9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0ZvbnRDYWNoZUNocm9taXVt
V2luLmNwcApAQCAtMjExLDkgKzIxMSw4IEBAIHN0YXRpYyBib29sIExvb2t1cEFsdE5hbWUoY29u
c3QgU3RyaW5nJiBuYW1lLCBTdHJpbmcmIGFsdE5hbWUpCiAgICAgc3RhdGljIE5hbWVNYXAqIGZv
bnROYW1lTWFwID0gMDsKIAogICAgIGlmICghZm9udE5hbWVNYXApIHsKLSAgICAgICAgc2l6ZV90
IG51bUVsZW1lbnRzID0gc2l6ZW9mKG5hbWVQYWlycykgLyBzaXplb2YoTmFtZVBhaXIpOwogICAg
ICAgICBmb250TmFtZU1hcCA9IG5ldyBOYW1lTWFwOwotICAgICAgICBmb3IgKHNpemVfdCBpID0g
MDsgaSA8IG51bUVsZW1lbnRzOyArK2kpCisgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwg
QVJSQVlfTEVOR1RIKG5hbWVQYWlycyk7ICsraSkKICAgICAgICAgICAgIGZvbnROYW1lTWFwLT5z
ZXQoU3RyaW5nKG5hbWVQYWlyc1tpXS5uYW1lKSwgJihuYW1lUGFpcnNbaV0uYWx0TmFtZUNvZGVw
YWdlKSk7CiAgICAgfQogCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2No
cm9taXVtL0ZvbnRVdGlsc0Nocm9taXVtV2luLmNwcCBiL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY2hyb21pdW0vRm9udFV0aWxzQ2hyb21pdW1XaW4uY3BwCmluZGV4IGU3MjVjNTAuLjZlYzgz
NDIgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vRm9udFV0
aWxzQ2hyb21pdW1XaW4uY3BwCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21p
dW0vRm9udFV0aWxzQ2hyb21pdW1XaW4uY3BwCkBAIC0xNTAsMTQgKzE1MCwxNCBAQCB2b2lkIGlu
aXRpYWxpemVTY3JpcHRGb250TWFwKFNjcmlwdFRvRm9udE1hcCYgc2NyaXB0Rm9udE1hcCkKICAg
ICAgICAge1VTQ1JJUFRfTVlBTk1BUiwgbXlhbm1hckZvbnRzfSwKICAgICB9OwogCi0gICAgZm9y
IChpbnQgaSA9IDA7IGkgPCBzaXplb2YoZm9udE1hcCkgLyBzaXplb2YoZm9udE1hcFswXSk7ICsr
aSkKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IEFSUkFZX0xFTkdUSChmb250TWFwKTsgKytp
KQogICAgICAgICBzY3JpcHRGb250TWFwW2ZvbnRNYXBbaV0uc2NyaXB0XSA9IGZvbnRNYXBbaV0u
ZmFtaWx5OwogCiAgICAgLy8gRklYTUU6IEluc3RlYWQgb2Ygc2Nhbm5pbmcgdGhlIGhhcmQtY29k
ZWQgbGlzdCwgd2UgaGF2ZSB0byAKICAgICAvLyB1c2UgRW51bUZvbnQqIHRvICdpbnNwZWN0JyBm
b250cyB0byBwaWNrIHVwIGZvbnRzIGNvdmVyaW5nIHNjcmlwdHMKICAgICAvLyB3aGVuIGl0J3Mg
cG9zc2libGUgKGUuZy4gdXNpbmcgT1MvMiB0YWJsZSkuIElmIHdlIGRvIHRoYXQsIHRoaXMgCiAg
ICAgLy8gaGFkIGJldHRlciBiZSBwdWxsZWQgb3V0IG9mIGhlcmUuCi0gICAgZm9yIChpbnQgaSA9
IDA7IGkgPCBzaXplb2Yoc2NyaXB0VG9Gb250RmFtaWxpZXMpIC8gc2l6ZW9mKHNjcmlwdFRvRm9u
dEZhbWlsaWVzWzBdKTsgKytpKSB7CisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBBUlJBWV9M
RU5HVEgoc2NyaXB0VG9Gb250RmFtaWxpZXMpOyArK2kpIHsKICAgICAgICAgVVNjcmlwdENvZGUg
c2NyaXB0ID0gc2NyaXB0VG9Gb250RmFtaWxpZXNbaV0uc2NyaXB0OwogICAgICAgICBzY3JpcHRG
b250TWFwW3NjcmlwdF0gPSAwOwogICAgICAgICBjb25zdCBVQ2hhcioqIGZhbWlseVB0ciA9IHNj
cmlwdFRvRm9udEZhbWlsaWVzW2ldLmZhbWlsaWVzOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9tYWMvQ29tcGxleFRleHRDb250cm9sbGVyQ29yZVRleHQuY3BwIGIvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvQ29tcGxleFRleHRDb250cm9sbGVyQ29yZVRleHQu
Y3BwCmluZGV4IGNiYjc2MTAuLjU4MTE0YTcgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvbWFjL0NvbXBsZXhUZXh0Q29udHJvbGxlckNvcmVUZXh0LmNwcAorKysgYi9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9Db21wbGV4VGV4dENvbnRyb2xsZXJDb3JlVGV4dC5j
cHAKQEAgLTEzOCw4ICsxMzgsOCBAQCB2b2lkIENvbXBsZXhUZXh0Q29udHJvbGxlcjo6Y29sbGVj
dENvbXBsZXhUZXh0UnVuc0ZvckNoYXJhY3RlcnNDb3JlVGV4dChjb25zdCBVQwogICAgICAgICBj
b25zdCBzaG9ydCBydGxGb3JjZWRFbWJlZGRpbmdMZXZlbFZhbHVlID0gMTsKICAgICAgICAgc3Rh
dGljIGNvbnN0IHZvaWQqIGx0ck9wdGlvblZhbHVlc1tdID0geyBDRk51bWJlckNyZWF0ZShrQ0ZB
bGxvY2F0b3JEZWZhdWx0LCBrQ0ZOdW1iZXJTaG9ydFR5cGUsICZsdHJGb3JjZWRFbWJlZGRpbmdM
ZXZlbFZhbHVlKSB9OwogICAgICAgICBzdGF0aWMgY29uc3Qgdm9pZCogcnRsT3B0aW9uVmFsdWVz
W10gPSB7IENGTnVtYmVyQ3JlYXRlKGtDRkFsbG9jYXRvckRlZmF1bHQsIGtDRk51bWJlclNob3J0
VHlwZSwgJnJ0bEZvcmNlZEVtYmVkZGluZ0xldmVsVmFsdWUpIH07Ci0gICAgICAgIHN0YXRpYyBD
RkRpY3Rpb25hcnlSZWYgbHRyVHlwZXNldHRlck9wdGlvbnMgPSBDRkRpY3Rpb25hcnlDcmVhdGUo
a0NGQWxsb2NhdG9yRGVmYXVsdCwgb3B0aW9uS2V5cywgbHRyT3B0aW9uVmFsdWVzLCBzaXplb2Yo
b3B0aW9uS2V5cykgLyBzaXplb2YoKm9wdGlvbktleXMpLCAma0NGQ29weVN0cmluZ0RpY3Rpb25h
cnlLZXlDYWxsQmFja3MsICZrQ0ZUeXBlRGljdGlvbmFyeVZhbHVlQ2FsbEJhY2tzKTsKLSAgICAg
ICAgc3RhdGljIENGRGljdGlvbmFyeVJlZiBydGxUeXBlc2V0dGVyT3B0aW9ucyA9IENGRGljdGlv
bmFyeUNyZWF0ZShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBvcHRpb25LZXlzLCBydGxPcHRpb25WYWx1
ZXMsIHNpemVvZihvcHRpb25LZXlzKSAvIHNpemVvZigqb3B0aW9uS2V5cyksICZrQ0ZDb3B5U3Ry
aW5nRGljdGlvbmFyeUtleUNhbGxCYWNrcywgJmtDRlR5cGVEaWN0aW9uYXJ5VmFsdWVDYWxsQmFj
a3MpOworICAgICAgICBzdGF0aWMgQ0ZEaWN0aW9uYXJ5UmVmIGx0clR5cGVzZXR0ZXJPcHRpb25z
ID0gQ0ZEaWN0aW9uYXJ5Q3JlYXRlKGtDRkFsbG9jYXRvckRlZmF1bHQsIG9wdGlvbktleXMsIGx0
ck9wdGlvblZhbHVlcywgQVJSQVlfTEVOR1RIKG9wdGlvbktleXMpLCAma0NGQ29weVN0cmluZ0Rp
Y3Rpb25hcnlLZXlDYWxsQmFja3MsICZrQ0ZUeXBlRGljdGlvbmFyeVZhbHVlQ2FsbEJhY2tzKTsK
KyAgICAgICAgc3RhdGljIENGRGljdGlvbmFyeVJlZiBydGxUeXBlc2V0dGVyT3B0aW9ucyA9IENG
RGljdGlvbmFyeUNyZWF0ZShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBvcHRpb25LZXlzLCBydGxPcHRp
b25WYWx1ZXMsIEFSUkFZX0xFTkdUSChvcHRpb25LZXlzKSwgJmtDRkNvcHlTdHJpbmdEaWN0aW9u
YXJ5S2V5Q2FsbEJhY2tzLCAma0NGVHlwZURpY3Rpb25hcnlWYWx1ZUNhbGxCYWNrcyk7CiAKICNp
ZiAhZGVmaW5lZChCVUlMRElOR19PTl9USUdFUikgJiYgIWRlZmluZWQoQlVJTERJTkdfT05fTEVP
UEFSRCkgJiYgIWRlZmluZWQoQlVJTERJTkdfT05fU05PV19MRU9QQVJEKQogICAgICAgICBQcm92
aWRlckluZm8gaW5mbyA9IHsgY3AsIGxlbmd0aCwgZm9udERhdGEtPmdldENGU3RyaW5nQXR0cmli
dXRlcyhtX2ZvbnQudHlwZXNldHRpbmdGZWF0dXJlcygpKSB9OwpkaWZmIC0tZ2l0IGEvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvTWVkaWFQbGF5ZXJQcml2YXRlUVRLaXQubW0gYi9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9NZWRpYVBsYXllclByaXZhdGVRVEtpdC5tbQppbmRl
eCA2ZGEwZGExLi5mMmZiNWIzIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L21hYy9NZWRpYVBsYXllclByaXZhdGVRVEtpdC5tbQorKysgYi9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL21hYy9NZWRpYVBsYXllclByaXZhdGVRVEtpdC5tbQpAQCAtMzE2LDcgKzMxNiw3IEBA
IHN0YXRpYyB2b2lkIGRpc2FibGVDb21wb25lbnRzT25jZSgpCiAgICAgICAgIHsnaW1kYycsICdw
ZGYgJywgJ2FwcGwnLCAwLCAwfSwgIAogICAgIH07CiAKLSAgICBmb3IgKHNpemVfdCBpID0gMDsg
aSA8IHNpemVvZihjb21wb25lbnRzVG9EaXNhYmxlKS9zaXplb2YoY29tcG9uZW50c1RvRGlzYWJs
ZVswXSk7ICsraSkgCisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBBUlJBWV9MRU5HVEgoY29t
cG9uZW50c1RvRGlzYWJsZSk7ICsraSkgCiAgICAgICAgIHdrUVRNb3ZpZURpc2FibGVDb21wb25l
bnQoY29tcG9uZW50c1RvRGlzYWJsZVtpXSk7CiB9CiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvbWFjL1NpbXBsZUZvbnREYXRhQVRTVUkubW0gYi9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL21hYy9TaW1wbGVGb250RGF0YUFUU1VJLm1tCmluZGV4IGJlZWEwMTguLjZi
ZjRkNmQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL1NpbXBsZUZv
bnREYXRhQVRTVUkubW0KKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvU2ltcGxl
Rm9udERhdGFBVFNVSS5tbQpAQCAtNTksNyArNTksNyBAQCB2b2lkIFNpbXBsZUZvbnREYXRhOjpj
aGVja1NoYXBlc0FyYWJpYygpIGNvbnN0CiAgICAgLy8gaGV1cmlzdGljIGlzIHRoYXQgaWYgc3Vj
aCBhIGZvbnQgaGFzIGEgZ2x5cGggbWV0YW1vcnBob3NpcyB0YWJsZSwgdGhlbgogICAgIC8vIGl0
IGluY2x1ZGVzIHNoYXBpbmcgaW5mb3JtYXRpb24gZm9yIEFyYWJpYy4KICAgICBGb3VyQ2hhckNv
ZGUgdGFibGVzW10gPSB7ICdtb3J4JywgJ21vcnQnIH07Ci0gICAgZm9yICh1bnNpZ25lZCBpID0g
MDsgaSA8IHNpemVvZih0YWJsZXMpIC8gc2l6ZW9mKHRhYmxlc1swXSk7ICsraSkgeworICAgIGZv
ciAoc2l6ZV90IGkgPSAwOyBpIDwgQVJSQVlfTEVOR1RIKHRhYmxlcyk7ICsraSkgewogICAgICAg
ICBCeXRlQ291bnQgdGFibGVTaXplOwogICAgICAgICBPU1N0YXR1cyBzdGF0dXMgPSBBVFNGb250
R2V0VGFibGUoZm9udElELCB0YWJsZXNbaV0sIDAsIDAsIDAsICZ0YWJsZVNpemUpOwogICAgICAg
ICBpZiAoc3RhdHVzID09IG5vRXJyKSB7CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL21hYy9TaW1wbGVGb250RGF0YUNvcmVUZXh0LmNwcCBiL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvbWFjL1NpbXBsZUZvbnREYXRhQ29yZVRleHQuY3BwCmluZGV4IGRiNmRlNDkuLjYw
OGJjYTYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL1NpbXBsZUZv
bnREYXRhQ29yZVRleHQuY3BwCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL1Np
bXBsZUZvbnREYXRhQ29yZVRleHQuY3BwCkBAIC02MiwxNSArNjIsMTMgQEAgQ0ZEaWN0aW9uYXJ5
UmVmIFNpbXBsZUZvbnREYXRhOjpnZXRDRlN0cmluZ0F0dHJpYnV0ZXMoVHlwZXNldHRpbmdGZWF0
dXJlcyB0eXBlc2UKICAgICAgICAgY29uc3Qgdm9pZCogdmFsdWVzV2l0aEtlcm5pbmdEaXNhYmxl
ZFtdID0geyBwbGF0Zm9ybURhdGEoKS5jdEZvbnQoKSwga2VybmluZ0FkanVzdG1lbnQsIGFsbG93
TGlnYXR1cmVzCiAgICAgICAgICAgICA/IGxpZ2F0dXJlc0FsbG93ZWQgOiBsaWdhdHVyZXNOb3RB
bGxvd2VkLCBvcmllbnRhdGlvbigpID09IFZlcnRpY2FsID8ga0NGQm9vbGVhblRydWUgOiBrQ0ZC
b29sZWFuRmFsc2UgfTsKICAgICAgICAgYXR0cmlidXRlc0RpY3Rpb25hcnkuYWRvcHRDRihDRkRp
Y3Rpb25hcnlDcmVhdGUoMCwga2V5c1dpdGhLZXJuaW5nRGlzYWJsZWQsIHZhbHVlc1dpdGhLZXJu
aW5nRGlzYWJsZWQsCi0gICAgICAgICAgICBzaXplb2Yoa2V5c1dpdGhLZXJuaW5nRGlzYWJsZWQp
IC8gc2l6ZW9mKCprZXlzV2l0aEtlcm5pbmdEaXNhYmxlZCksCi0gICAgICAgICAgICAma0NGQ29w
eVN0cmluZ0RpY3Rpb25hcnlLZXlDYWxsQmFja3MsICZrQ0ZUeXBlRGljdGlvbmFyeVZhbHVlQ2Fs
bEJhY2tzKSk7CisgICAgICAgICAgICBBUlJBWV9MRU5HVEgoa2V5c1dpdGhLZXJuaW5nRGlzYWJs
ZWQpLCAma0NGQ29weVN0cmluZ0RpY3Rpb25hcnlLZXlDYWxsQmFja3MsICZrQ0ZUeXBlRGljdGlv
bmFyeVZhbHVlQ2FsbEJhY2tzKSk7CiAgICAgfSBlbHNlIHsKICAgICAgICAgLy8gQnkgb21pdHRp
bmcgdGhlIGtDVEtlcm5BdHRyaWJ1dGVOYW1lIGF0dHJpYnV0ZSwgd2UgZ2V0IENvcmUgVGV4dCdz
IHN0YW5kYXJkIGtlcm5pbmcuCiAgICAgICAgIHN0YXRpYyBjb25zdCB2b2lkKiBrZXlzV2l0aEtl
cm5pbmdFbmFibGVkW10gPSB7IGtDVEZvbnRBdHRyaWJ1dGVOYW1lLCBrQ1RMaWdhdHVyZUF0dHJp
YnV0ZU5hbWUsIGtDVFZlcnRpY2FsRm9ybXNBdHRyaWJ1dGVOYW1lIH07CiAgICAgICAgIGNvbnN0
IHZvaWQqIHZhbHVlc1dpdGhLZXJuaW5nRW5hYmxlZFtdID0geyBwbGF0Zm9ybURhdGEoKS5jdEZv
bnQoKSwgYWxsb3dMaWdhdHVyZXMgPyBsaWdhdHVyZXNBbGxvd2VkIDogbGlnYXR1cmVzTm90QWxs
b3dlZCwgb3JpZW50YXRpb24oKSA9PSBWZXJ0aWNhbCA/IGtDRkJvb2xlYW5UcnVlIDoga0NGQm9v
bGVhbkZhbHNlIH07CiAgICAgICAgIGF0dHJpYnV0ZXNEaWN0aW9uYXJ5LmFkb3B0Q0YoQ0ZEaWN0
aW9uYXJ5Q3JlYXRlKDAsIGtleXNXaXRoS2VybmluZ0VuYWJsZWQsIHZhbHVlc1dpdGhLZXJuaW5n
RW5hYmxlZCwKLSAgICAgICAgICAgIHNpemVvZihrZXlzV2l0aEtlcm5pbmdFbmFibGVkKSAvIHNp
emVvZigqa2V5c1dpdGhLZXJuaW5nRW5hYmxlZCksCi0gICAgICAgICAgICAma0NGQ29weVN0cmlu
Z0RpY3Rpb25hcnlLZXlDYWxsQmFja3MsICZrQ0ZUeXBlRGljdGlvbmFyeVZhbHVlQ2FsbEJhY2tz
KSk7CisgICAgICAgICAgICBBUlJBWV9MRU5HVEgoa2V5c1dpdGhLZXJuaW5nRW5hYmxlZCksICZr
Q0ZDb3B5U3RyaW5nRGljdGlvbmFyeUtleUNhbGxCYWNrcywgJmtDRlR5cGVEaWN0aW9uYXJ5VmFs
dWVDYWxsQmFja3MpKTsKICAgICB9CiAKICAgICByZXR1cm4gYXR0cmlidXRlc0RpY3Rpb25hcnku
Z2V0KCk7CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9HcmFwaGlj
c0NvbnRleHRDR1dpbi5jcHAgYi9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9HcmFwaGlj
c0NvbnRleHRDR1dpbi5jcHAKaW5kZXggYzkyODhlNS4uM2M3YmU3NSAxMDA2NDQKLS0tIGEvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vR3JhcGhpY3NDb250ZXh0Q0dXaW4uY3BwCisrKyBi
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0dyYXBoaWNzQ29udGV4dENHV2luLmNwcApA
QCAtMjI4LDIwICsyMjgsMTcgQEAgdm9pZCBHcmFwaGljc0NvbnRleHQ6OmRyYXdMaW5lRm9yVGV4
dENoZWNraW5nKGNvbnN0IEludFBvaW50JiBwb2ludCwgaW50IHdpZHRoLAogICAgIGNvbnN0IGZs
b2F0IGxvd2VyT3BhY2l0eSA9IDAuODhmOwogCiAgICAgLy9Ub3AgbGluZQotICAgIENHQ29udGV4
dFNldExpbmVEYXNoKGNvbnRleHQsIGVkZ2Vfb2Zmc2V0LCBlZGdlX2Rhc2hfbGVuZ3RocywgCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZW9mKGVkZ2VfZGFzaF9sZW5ndGhzKSAvIHNpemVv
ZihlZGdlX2Rhc2hfbGVuZ3Roc1swXSkpOworICAgIENHQ29udGV4dFNldExpbmVEYXNoKGNvbnRl
eHQsIGVkZ2Vfb2Zmc2V0LCBlZGdlX2Rhc2hfbGVuZ3RocywgQVJSQVlfTEVOR1RIKGVkZ2VfZGFz
aF9sZW5ndGhzKSk7CiAgICAgQ0dDb250ZXh0U2V0QWxwaGEoY29udGV4dCwgdXBwZXJPcGFjaXR5
KTsKICAgICBDR0NvbnRleHRTdHJva2VMaW5lU2VnbWVudHMoY29udGV4dCwgdXBwZXJQb2ludHMs
IDIpOwogIAogICAgIC8vIE1pZGRsZSBsaW5lCi0gICAgQ0dDb250ZXh0U2V0TGluZURhc2goY29u
dGV4dCwgbWlkZGxlX29mZnNldCwgbWlkZGxlX2Rhc2hfbGVuZ3RocywgCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgc2l6ZW9mKG1pZGRsZV9kYXNoX2xlbmd0aHMpIC8gc2l6ZW9mKG1pZGRsZV9k
YXNoX2xlbmd0aHNbMF0pKTsKKyAgICBDR0NvbnRleHRTZXRMaW5lRGFzaChjb250ZXh0LCBtaWRk
bGVfb2Zmc2V0LCBtaWRkbGVfZGFzaF9sZW5ndGhzLCBBUlJBWV9MRU5HVEgobWlkZGxlX2Rhc2hf
bGVuZ3RocykpOwogICAgIENHQ29udGV4dFNldEFscGhhKGNvbnRleHQsIG1pZGRsZU9wYWNpdHkp
OwogICAgIENHQ29udGV4dFN0cm9rZUxpbmVTZWdtZW50cyhjb250ZXh0LCBtaWRkbGVQb2ludHMs
IDIpOwogICAgIAogICAgIC8vIEJvdHRvbSBsaW5lCi0gICAgQ0dDb250ZXh0U2V0TGluZURhc2go
Y29udGV4dCwgZWRnZV9vZmZzZXQsIGVkZ2VfZGFzaF9sZW5ndGhzLAotICAgICAgICAgICAgICAg
ICAgICAgICAgIHNpemVvZihlZGdlX2Rhc2hfbGVuZ3RocykgLyBzaXplb2YoZWRnZV9kYXNoX2xl
bmd0aHNbMF0pKTsKKyAgICBDR0NvbnRleHRTZXRMaW5lRGFzaChjb250ZXh0LCBlZGdlX29mZnNl
dCwgZWRnZV9kYXNoX2xlbmd0aHMsIEFSUkFZX0xFTkdUSChlZGdlX2Rhc2hfbGVuZ3RocykpOwog
ICAgIENHQ29udGV4dFNldEFscGhhKGNvbnRleHQsIGxvd2VyT3BhY2l0eSk7CiAgICAgQ0dDb250
ZXh0U3Ryb2tlTGluZVNlZ21lbnRzKGNvbnRleHQsIGxvd2VyUG9pbnRzLCAyKTsKIApkaWZmIC0t
Z2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vTWVkaWFQbGF5ZXJQcml2YXRlUXVp
Y2tUaW1lVmlzdWFsQ29udGV4dC5jcHAgYi9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9N
ZWRpYVBsYXllclByaXZhdGVRdWlja1RpbWVWaXN1YWxDb250ZXh0LmNwcAppbmRleCA4ZWFmMmE5
Li44NjRiNDBiIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9NZWRp
YVBsYXllclByaXZhdGVRdWlja1RpbWVWaXN1YWxDb250ZXh0LmNwcAorKysgYi9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL3dpbi9NZWRpYVBsYXllclByaXZhdGVRdWlja1RpbWVWaXN1YWxDb250
ZXh0LmNwcApAQCAtMzE2LDcgKzMxNiw3IEBAIHN0YXRpYyB2b2lkIGRpc2FibGVDb21wb25lbnRz
T25jZSgpCiAgICAgICAgIHsnZWF0ICcsICdURVhUJywgJ3R4M2cnLCAwLCAwfSwgIAogICAgIH07
CiAKLSAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHNpemVvZihjb21wb25lbnRzVG9EaXNhYmxl
KSAvIHNpemVvZihjb21wb25lbnRzVG9EaXNhYmxlWzBdKTsgKytpKSAKKyAgICBmb3IgKHNpemVf
dCBpID0gMDsgaSA8IEFSUkFZX0xFTkdUSChjb21wb25lbnRzVG9EaXNhYmxlKTsgKytpKSAKICAg
ICAgICAgUVRNb3ZpZTo6ZGlzYWJsZUNvbXBvbmVudChjb21wb25lbnRzVG9EaXNhYmxlW2ldKTsK
IH0KIApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vUVRNb3ZpZS5j
cHAgYi9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9RVE1vdmllLmNwcAppbmRleCBlNDI1
YmY4Li45NjIxZDhkIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9R
VE1vdmllLmNwcAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9RVE1vdmllLmNw
cApAQCAtNTQ4LDcgKzU0OCw3IEBAIHZvaWQgUVRNb3ZpZTo6bG9hZChDRlVSTFJlZiB1cmwsIGJv
b2wgcHJlc2VydmVzUGl0Y2gpCiAgICAgbW92aWVQcm9wc1ttb3ZpZVByb3BDb3VudF0ucHJvcFN0
YXR1cyA9IDA7IAogICAgIG1vdmllUHJvcENvdW50Kys7IAogCi0gICAgQVNTRVJUKG1vdmllUHJv
cENvdW50IDw9IHNpemVvZihtb3ZpZVByb3BzKSAvIHNpemVvZihtb3ZpZVByb3BzWzBdKSk7Cisg
ICAgQVNTRVJUKG1vdmllUHJvcENvdW50IDw9IEFSUkFZX0xFTkdUSChtb3ZpZVByb3BzKSk7CiAg
ICAgbV9wcml2YXRlLT5tX2xvYWRFcnJvciA9IE5ld01vdmllRnJvbVByb3BlcnRpZXMobW92aWVQ
cm9wQ291bnQsIG1vdmllUHJvcHMsIDAsIDAsICZtX3ByaXZhdGUtPm1fbW92aWUpOwogCiBlbmQ6
CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvU29ja2V0U3RyZWFtSGFu
ZGxlQ0ZOZXQuY3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL1NvY2tldFN0cmVhbUhh
bmRsZUNGTmV0LmNwcAppbmRleCA4MDAzMDFhLi40ZWJjMWQ5IDEwMDY0NAotLS0gYS9XZWJDb3Jl
L3BsYXRmb3JtL25ldHdvcmsvY2YvU29ja2V0U3RyZWFtSGFuZGxlQ0ZOZXQuY3BwCisrKyBiL1dl
YkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9Tb2NrZXRTdHJlYW1IYW5kbGVDRk5ldC5jcHAKQEAg
LTMzMiw3ICszMzIsNyBAQCB2b2lkIFNvY2tldFN0cmVhbUhhbmRsZTo6Y3JlYXRlU3RyZWFtcygp
CiAgICAgICAgIC8vIEJ1dCBTT0NLUzUgY3JlZGVudGlhbHMgZG9uJ3Qgd29yayBhdCB0aGUgdGlt
ZSBvZiB0aGlzIHdyaXRpbmcgYW55d2F5LCBzZWUgPHJkYXI6Ly82Nzc2Njk4Pi4KICAgICAgICAg
Y29uc3Qgdm9pZCogcHJveHlLZXlzW10gPSB7IGtDRlN0cmVhbVByb3BlcnR5U09DS1NQcm94eUhv
c3QsIGtDRlN0cmVhbVByb3BlcnR5U09DS1NQcm94eVBvcnQgfTsKICAgICAgICAgY29uc3Qgdm9p
ZCogcHJveHlWYWx1ZXNbXSA9IHsgbV9wcm94eUhvc3QuZ2V0KCksIG1fcHJveHlQb3J0LmdldCgp
IH07Ci0gICAgICAgIFJldGFpblB0cjxDRkRpY3Rpb25hcnlSZWY+IGNvbm5lY3REaWN0aW9uYXJ5
KEFkb3B0Q0YsIENGRGljdGlvbmFyeUNyZWF0ZSgwLCBwcm94eUtleXMsIHByb3h5VmFsdWVzLCBz
aXplb2YocHJveHlLZXlzKSAvIHNpemVvZigqcHJveHlLZXlzKSwgJmtDRlR5cGVEaWN0aW9uYXJ5
S2V5Q2FsbEJhY2tzLCAma0NGVHlwZURpY3Rpb25hcnlWYWx1ZUNhbGxCYWNrcykpOworICAgICAg
ICBSZXRhaW5QdHI8Q0ZEaWN0aW9uYXJ5UmVmPiBjb25uZWN0RGljdGlvbmFyeShBZG9wdENGLCBD
RkRpY3Rpb25hcnlDcmVhdGUoMCwgcHJveHlLZXlzLCBwcm94eVZhbHVlcywgQVJSQVlfTEVOR1RI
KHByb3h5S2V5cyksICZrQ0ZUeXBlRGljdGlvbmFyeUtleUNhbGxCYWNrcywgJmtDRlR5cGVEaWN0
aW9uYXJ5VmFsdWVDYWxsQmFja3MpKTsKICAgICAgICAgQ0ZSZWFkU3RyZWFtU2V0UHJvcGVydHko
bV9yZWFkU3RyZWFtLmdldCgpLCBrQ0ZTdHJlYW1Qcm9wZXJ0eVNPQ0tTUHJveHksIGNvbm5lY3RE
aWN0aW9uYXJ5LmdldCgpKTsKICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KQEAgLTM0NCw3ICsz
NDQsNyBAQCB2b2lkIFNvY2tldFN0cmVhbUhhbmRsZTo6Y3JlYXRlU3RyZWFtcygpCiAgICAgaWYg
KHNob3VsZFVzZVNTTCgpKSB7CiAgICAgICAgIGNvbnN0IHZvaWQqIGtleXNbXSA9IHsga0NGU3Ry
ZWFtU1NMUGVlck5hbWUsIGtDRlN0cmVhbVNTTExldmVsIH07CiAgICAgICAgIGNvbnN0IHZvaWQq
IHZhbHVlc1tdID0geyBob3N0LmdldCgpLCBrQ0ZTdHJlYW1Tb2NrZXRTZWN1cml0eUxldmVsTmVn
b3RpYXRlZFNTTCB9OwotICAgICAgICBSZXRhaW5QdHI8Q0ZEaWN0aW9uYXJ5UmVmPiBzZXR0aW5n
cyhBZG9wdENGLCBDRkRpY3Rpb25hcnlDcmVhdGUoMCwga2V5cywgdmFsdWVzLCBzaXplb2Yoa2V5
cykgLyBzaXplb2YoKmtleXMpLCAma0NGVHlwZURpY3Rpb25hcnlLZXlDYWxsQmFja3MsICZrQ0ZU
eXBlRGljdGlvbmFyeVZhbHVlQ2FsbEJhY2tzKSk7CisgICAgICAgIFJldGFpblB0cjxDRkRpY3Rp
b25hcnlSZWY+IHNldHRpbmdzKEFkb3B0Q0YsIENGRGljdGlvbmFyeUNyZWF0ZSgwLCBrZXlzLCB2
YWx1ZXMsIEFSUkFZX0xFTkdUSChrZXlzKSwgJmtDRlR5cGVEaWN0aW9uYXJ5S2V5Q2FsbEJhY2tz
LCAma0NGVHlwZURpY3Rpb25hcnlWYWx1ZUNhbGxCYWNrcykpOwogICAgICAgICBDRlJlYWRTdHJl
YW1TZXRQcm9wZXJ0eShtX3JlYWRTdHJlYW0uZ2V0KCksIGtDRlN0cmVhbVByb3BlcnR5U1NMU2V0
dGluZ3MsIHNldHRpbmdzLmdldCgpKTsKICAgICAgICAgQ0ZXcml0ZVN0cmVhbVNldFByb3BlcnR5
KG1fd3JpdGVTdHJlYW0uZ2V0KCksIGtDRlN0cmVhbVByb3BlcnR5U1NMU2V0dGluZ3MsIHNldHRp
bmdzLmdldCgpKTsKICAgICB9CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvVGV4
dEVuY29kaW5nUmVnaXN0cnkuY3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L1RleHRFbmNvZGlu
Z1JlZ2lzdHJ5LmNwcAppbmRleCBmYmU1ODI2Li5kNDg0NTE2IDEwMDY0NAotLS0gYS9XZWJDb3Jl
L3BsYXRmb3JtL3RleHQvVGV4dEVuY29kaW5nUmVnaXN0cnkuY3BwCisrKyBiL1dlYkNvcmUvcGxh
dGZvcm0vdGV4dC9UZXh0RW5jb2RpbmdSZWdpc3RyeS5jcHAKQEAgLTE4OSw4ICsxODksNyBAQCBz
dGF0aWMgdm9pZCBhZGRUb1RleHRDb2RlY01hcChjb25zdCBjaGFyKiBuYW1lLCBOZXdUZXh0Q29k
ZWNGdW5jdGlvbiBmdW5jdGlvbiwgYwogCiBzdGF0aWMgdm9pZCBwcnVuZUJsYWNrbGlzdGVkQ29k
ZWNzKCkKIHsKLSAgICBzaXplX3QgYmxhY2tsaXN0ZWRDb2RlY0xpc3RMZW5ndGggPSBzaXplb2Yo
dGV4dEVuY29kaW5nTmFtZUJsYWNrbGlzdCkgLyBzaXplb2YodGV4dEVuY29kaW5nTmFtZUJsYWNr
bGlzdFswXSk7Ci0gICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBibGFja2xpc3RlZENvZGVjTGlz
dExlbmd0aDsgKytpKSB7CisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBiQVJSQVlfTEVOR1RI
KHRleHRFbmNvZGluZ05hbWVCbGFja2xpc3QpOyArK2kpIHsKICAgICAgICAgY29uc3QgY2hhciog
YXRvbWljTmFtZSA9IHRleHRFbmNvZGluZ05hbWVNYXAtPmdldCh0ZXh0RW5jb2RpbmdOYW1lQmxh
Y2tsaXN0W2ldKTsKICAgICAgICAgaWYgKCFhdG9taWNOYW1lKQogICAgICAgICAgICAgY29udGlu
dWU7CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvdHJhbnNjb2Rlci9Gb250VHJh
bnNjb2Rlci5jcHAgYi9XZWJDb3JlL3BsYXRmb3JtL3RleHQvdHJhbnNjb2Rlci9Gb250VHJhbnNj
b2Rlci5jcHAKaW5kZXggOGUyZjMzZi4uM2U4Y2ZhYSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0
Zm9ybS90ZXh0L3RyYW5zY29kZXIvRm9udFRyYW5zY29kZXIuY3BwCisrKyBiL1dlYkNvcmUvcGxh
dGZvcm0vdGV4dC90cmFuc2NvZGVyL0ZvbnRUcmFuc2NvZGVyLmNwcApAQCAtNDEsMjMgKzQxLDIz
IEBAIEZvbnRUcmFuc2NvZGVyOjpGb250VHJhbnNjb2RlcigpCiB7CiAgICAgbV9jb252ZXJ0ZXJU
eXBlcy5hZGQoIk1TIFBHb3RoaWMiLCBCYWNrc2xhc2hUb1llblNpZ24pOwogICAgIFVDaGFyIHVu
aWNvZGVOYW1lTVNQR290aGljW10gPSB7MHhGRjJELCAweEZGMzMsIDB4MDAyMCwgMHhGRjMwLCAw
eDMwQjQsIDB4MzBCNywgMHgzMEMzLCAweDMwQUZ9OwotICAgIG1fY29udmVydGVyVHlwZXMuYWRk
KEF0b21pY1N0cmluZyh1bmljb2RlTmFtZU1TUEdvdGhpYywgc2l6ZW9mKHVuaWNvZGVOYW1lTVNQ
R290aGljKSAvIHNpemVvZihVQ2hhcikpLCBCYWNrc2xhc2hUb1llblNpZ24pOworICAgIG1fY29u
dmVydGVyVHlwZXMuYWRkKEF0b21pY1N0cmluZyh1bmljb2RlTmFtZU1TUEdvdGhpYywgQVJSQVlf
TEVOR1RIKHVuaWNvZGVOYW1lTVNQR290aGljKSksIEJhY2tzbGFzaFRvWWVuU2lnbik7CiAKICAg
ICBtX2NvbnZlcnRlclR5cGVzLmFkZCgiTVMgUE1pbmNobyIsIEJhY2tzbGFzaFRvWWVuU2lnbik7
CiAgICAgVUNoYXIgdW5pY29kZU5hbWVNU1BNaW5jaG9bXSA9IHsweEZGMkQsIDB4RkYzMywgMHgw
MDIwLCAweEZGMzAsIDB4NjYwRSwgMHg2NzFEfTsKLSAgICBtX2NvbnZlcnRlclR5cGVzLmFkZChB
dG9taWNTdHJpbmcodW5pY29kZU5hbWVNU1BNaW5jaG8sIHNpemVvZih1bmljb2RlTmFtZU1TUE1p
bmNobykgLyBzaXplb2YoVUNoYXIpKSwgQmFja3NsYXNoVG9ZZW5TaWduKTsKKyAgICBtX2NvbnZl
cnRlclR5cGVzLmFkZChBdG9taWNTdHJpbmcodW5pY29kZU5hbWVNU1BNaW5jaG8sIEFSUkFZX0xF
TkdUSCh1bmljb2RlTmFtZU1TUE1pbmNobykpLCBCYWNrc2xhc2hUb1llblNpZ24pOwogCiAgICAg
bV9jb252ZXJ0ZXJUeXBlcy5hZGQoIk1TIEdvdGhpYyIsIEJhY2tzbGFzaFRvWWVuU2lnbik7CiAg
ICAgVUNoYXIgdW5pY29kZU5hbWVNU0dvdGhpY1tdID0gezB4RkYyRCwgMHhGRjMzLCAweDAwMjAs
IDB4MzBCNCwgMHgzMEI3LCAweDMwQzMsIDB4MzBBRn07Ci0gICAgbV9jb252ZXJ0ZXJUeXBlcy5h
ZGQoQXRvbWljU3RyaW5nKHVuaWNvZGVOYW1lTVNHb3RoaWMsIHNpemVvZih1bmljb2RlTmFtZU1T
R290aGljKSAvIHNpemVvZihVQ2hhcikpLCBCYWNrc2xhc2hUb1llblNpZ24pOworICAgIG1fY29u
dmVydGVyVHlwZXMuYWRkKEF0b21pY1N0cmluZyh1bmljb2RlTmFtZU1TR290aGljLCBBUlJBWV9M
RU5HVEgodW5pY29kZU5hbWVNU0dvdGhpYykpLCBCYWNrc2xhc2hUb1llblNpZ24pOwogCiAgICAg
bV9jb252ZXJ0ZXJUeXBlcy5hZGQoIk1TIE1pbmNobyIsIEJhY2tzbGFzaFRvWWVuU2lnbik7CiAg
ICAgVUNoYXIgdW5pY29kZU5hbWVNU01pbmNob1tdID0gezB4RkYyRCwgMHhGRjMzLCAweDAwMjAs
IDB4NjYwRSwgMHg2NzFEfTsKLSAgICBtX2NvbnZlcnRlclR5cGVzLmFkZChBdG9taWNTdHJpbmco
dW5pY29kZU5hbWVNU01pbmNobywgc2l6ZW9mKHVuaWNvZGVOYW1lTVNNaW5jaG8pIC8gc2l6ZW9m
KFVDaGFyKSksIEJhY2tzbGFzaFRvWWVuU2lnbik7CisgICAgbV9jb252ZXJ0ZXJUeXBlcy5hZGQo
QXRvbWljU3RyaW5nKHVuaWNvZGVOYW1lTVNNaW5jaG8sIEFSUkFZX0xFTkdUSCh1bmljb2RlTmFt
ZU1TTWluY2hvKSksIEJhY2tzbGFzaFRvWWVuU2lnbik7CiAKICAgICBtX2NvbnZlcnRlclR5cGVz
LmFkZCgiTWVpcnlvIiwgQmFja3NsYXNoVG9ZZW5TaWduKTsKICAgICBVQ2hhciB1bmljb2RlTmFt
ZU1laXJ5b1tdID0gezB4MzBFMSwgMHgzMEE0LCAweDMwRUEsIDB4MzBBQX07Ci0gICAgbV9jb252
ZXJ0ZXJUeXBlcy5hZGQoQXRvbWljU3RyaW5nKHVuaWNvZGVOYW1lTWVpcnlvLCBzaXplb2YodW5p
Y29kZU5hbWVNZWlyeW8pIC8gc2l6ZW9mKFVDaGFyKSksIEJhY2tzbGFzaFRvWWVuU2lnbik7Cisg
ICAgbV9jb252ZXJ0ZXJUeXBlcy5hZGQoQXRvbWljU3RyaW5nKHVuaWNvZGVOYW1lTWVpcnlvLCBB
UlJBWV9MRU5HVEgodW5pY29kZU5hbWVNZWlyeW8pKSwgQmFja3NsYXNoVG9ZZW5TaWduKTsKIH0K
IAogRm9udFRyYW5zY29kZXI6OkNvbnZlcnRlclR5cGUgRm9udFRyYW5zY29kZXI6OmNvbnZlcnRl
clR5cGUoY29uc3QgRm9udERlc2NyaXB0aW9uJiBmb250RGVzY3JpcHRpb24sIGNvbnN0IFRleHRF
bmNvZGluZyogZW5jb2RpbmcpIGNvbnN0Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>74503</attachid>
            <date>2010-11-21 06:58:49 -0800</date>
            <delta_ts>2010-11-21 07:07:53 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-49881.patch</filename>
            <type>text/plain</type>
            <size>23861</size>
            <attacher name="Patrick R. Gansterer">paroga</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
ZWM5YmJiNC4uZmQzNWNhNyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0NyBAQAorMjAxMC0xMS0yMSAgUGF0cmljayBHYW5z
dGVyZXIgIDxwYXJvZ2FAd2Via2l0Lm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBVc2UgV1RGX0FSUkFZX0xFTkdUSCBpbiBXZWJDb3JlL3BsYXRm
b3JtIGRpcmVjdG9yeQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9NDk4ODEKKworICAgICAgICAqIHBsYXRmb3JtL0tVUkwuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6cG9ydEFsbG93ZWQpOgorICAgICAgICAqIHBsYXRmb3JtL0tVUkxHb29nbGUuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6cG9ydEFsbG93ZWQpOgorICAgICAgICAqIHBsYXRmb3JtL01JTUVU
eXBlUmVnaXN0cnkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6aW5pdGlhbGl6ZVN1cHBvcnRlZElt
YWdlTUlNRVR5cGVzKToKKyAgICAgICAgKFdlYkNvcmU6OmluaXRpYWxpemVTdXBwb3J0ZWRKYXZh
U2NyaXB0TUlNRVR5cGVzKToKKyAgICAgICAgKFdlYkNvcmU6OmluaXRpYWxpemVTdXBwb3J0ZWRO
b25JbWFnZU1pbWVUeXBlcyk6CisgICAgICAgICogcGxhdGZvcm0vVVVJRC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpjcmVhdGVDYW5vbmljYWxVVUlEU3RyaW5nKToKKyAgICAgICAgKiBwbGF0Zm9y
bS9lZmwvUmVuZGVyVGhlbWVFZmwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWVF
Zmw6OmFwcGx5RWRqZVN0YXRlRnJvbUZvcm0pOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L0dyYXBoaWNzVHlwZXMuY3BwOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVt
L0ZvbnRDYWNoZUNocm9taXVtV2luLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZvbnRDb2RlcGFn
ZTo6aWYpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0ZvbnRVdGlsc0No
cm9taXVtV2luLmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9tYWMvQ29tcGxleFRl
eHRDb250cm9sbGVyQ29yZVRleHQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q29tcGxleFRleHRD
b250cm9sbGVyOjpjb2xsZWN0Q29tcGxleFRleHRSdW5zRm9yQ2hhcmFjdGVyc0NvcmVUZXh0KToK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9tYWMvTWVkaWFQbGF5ZXJQcml2YXRlUVRLaXQu
bW06CisgICAgICAgIChXZWJDb3JlOjpkaXNhYmxlQ29tcG9uZW50c09uY2UpOgorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL21hYy9TaW1wbGVGb250RGF0YUFUU1VJLm1tOgorICAgICAgICAo
V2ViQ29yZTo6U2ltcGxlRm9udERhdGE6OmNoZWNrU2hhcGVzQXJhYmljKToKKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy9tYWMvU2ltcGxlRm9udERhdGFDb3JlVGV4dC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpTaW1wbGVGb250RGF0YTo6Z2V0Q0ZTdHJpbmdBdHRyaWJ1dGVzKToKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy93aW4vR3JhcGhpY3NDb250ZXh0Q0dXaW4uY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0OjpkcmF3TGluZUZvclRleHRDaGVja2luZyk6
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL01lZGlhUGxheWVyUHJpdmF0ZVF1aWNr
VGltZVZpc3VhbENvbnRleHQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6ZGlzYWJsZUNvbXBvbmVu
dHNPbmNlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy93aW4vUVRNb3ZpZS5jcHA6Cisg
ICAgICAgIChRVE1vdmllOjpsb2FkKToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL2NmL1Nv
Y2tldFN0cmVhbUhhbmRsZUNGTmV0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNvY2tldFN0cmVh
bUhhbmRsZTo6Y3JlYXRlU3RyZWFtcyk6CisgICAgICAgICogcGxhdGZvcm0vdGV4dC9UZXh0RW5j
b2RpbmdSZWdpc3RyeS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpwcnVuZUJsYWNrbGlzdGVkQ29k
ZWNzKToKKyAgICAgICAgKiBwbGF0Zm9ybS90ZXh0L3RyYW5zY29kZXIvRm9udFRyYW5zY29kZXIu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6Rm9udFRyYW5zY29kZXI6OkZvbnRUcmFuc2NvZGVyKToK
KwogMjAxMC0xMS0yMCAgQW5kcmVhcyBLbGluZyAgPGtsaW5nQHdlYmtpdC5vcmc+CiAKICAgICAg
ICAgUnViYmVyLXN0YW1wZWQgYnkgQW50b25pbyBHb21lcy4KZGlmZiAtLWdpdCBhL1dlYkNvcmUv
cGxhdGZvcm0vS1VSTC5jcHAgYi9XZWJDb3JlL3BsYXRmb3JtL0tVUkwuY3BwCmluZGV4IDNhYzVk
ODYuLmNhNjNkYjcgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vS1VSTC5jcHAKKysrIGIv
V2ViQ29yZS9wbGF0Zm9ybS9LVVJMLmNwcApAQCAtMTc5Niw3ICsxNzk2LDcgQEAgYm9vbCBwb3J0
QWxsb3dlZChjb25zdCBLVVJMJiB1cmwpCiAgICAgICAgIDY2NjksIC8vIEFsdGVybmF0ZSBJUkMg
W0FwcGxlIGFkZGl0aW9uXQogICAgICAgICBpbnZhbGlkUG9ydE51bWJlciwgLy8gVXNlZCB0byBi
bG9jayBhbGwgaW52YWxpZCBwb3J0IG51bWJlcnMKICAgICB9OwotICAgIGNvbnN0IHVuc2lnbmVk
IHNob3J0KiBjb25zdCBibG9ja2VkUG9ydExpc3RFbmQgPSBibG9ja2VkUG9ydExpc3QgKyBzaXpl
b2YoYmxvY2tlZFBvcnRMaXN0KSAvIHNpemVvZihibG9ja2VkUG9ydExpc3RbMF0pOworICAgIGNv
bnN0IHVuc2lnbmVkIHNob3J0KiBjb25zdCBibG9ja2VkUG9ydExpc3RFbmQgPSBibG9ja2VkUG9y
dExpc3QgKyBXVEZfQVJSQVlfTEVOR1RIKGJsb2NrZWRQb3J0TGlzdCk7CiAKICNpZm5kZWYgTkRF
QlVHCiAgICAgLy8gVGhlIHBvcnQgbGlzdCBtdXN0IGJlIHNvcnRlZCBmb3IgYmluYXJ5X3NlYXJj
aCB0byB3b3JrLgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9LVVJMR29vZ2xlLmNwcCBi
L1dlYkNvcmUvcGxhdGZvcm0vS1VSTEdvb2dsZS5jcHAKaW5kZXggNzI2YmM1Ny4uZWZkZDQ0MiAx
MDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9LVVJMR29vZ2xlLmNwcAorKysgYi9XZWJDb3Jl
L3BsYXRmb3JtL0tVUkxHb29nbGUuY3BwCkBAIC04OTMsNyArODkzLDcgQEAgYm9vbCBwb3J0QWxs
b3dlZChjb25zdCBLVVJMJiB1cmwpCiAgICAgICAgIDY2NjksIC8vIEFsdGVybmF0ZSBJUkMgW0Fw
cGxlIGFkZGl0aW9uXQogICAgICAgICBpbnZhbGlkUG9ydE51bWJlciwgLy8gVXNlZCB0byBibG9j
ayBhbGwgaW52YWxpZCBwb3J0IG51bWJlcnMKICAgICB9OwotICAgIGNvbnN0IHVuc2lnbmVkIHNo
b3J0KiBjb25zdCBibG9ja2VkUG9ydExpc3RFbmQgPSBibG9ja2VkUG9ydExpc3QgKyBzaXplb2Yo
YmxvY2tlZFBvcnRMaXN0KSAvIHNpemVvZihibG9ja2VkUG9ydExpc3RbMF0pOworICAgIGNvbnN0
IHVuc2lnbmVkIHNob3J0KiBjb25zdCBibG9ja2VkUG9ydExpc3RFbmQgPSBibG9ja2VkUG9ydExp
c3QgKyBXVEZfQVJSQVlfTEVOR1RIKGJsb2NrZWRQb3J0TGlzdCk7CiAKICNpZm5kZWYgTkRFQlVH
CiAgICAgLy8gVGhlIHBvcnQgbGlzdCBtdXN0IGJlIHNvcnRlZCBmb3IgYmluYXJ5X3NlYXJjaCB0
byB3b3JrLgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9NSU1FVHlwZVJlZ2lzdHJ5LmNw
cCBiL1dlYkNvcmUvcGxhdGZvcm0vTUlNRVR5cGVSZWdpc3RyeS5jcHAKaW5kZXggYzE1MmEzNi4u
ODU1ZDljMyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9NSU1FVHlwZVJlZ2lzdHJ5LmNw
cAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL01JTUVUeXBlUmVnaXN0cnkuY3BwCkBAIC0xMTksNyAr
MTE5LDcgQEAgc3RhdGljIHZvaWQgaW5pdGlhbGl6ZVN1cHBvcnRlZEltYWdlTUlNRVR5cGVzKCkK
ICAgICAgICAgImltYWdlL3gtaWNvbiIsICAgIC8vIGljbwogICAgICAgICAiaW1hZ2UveC14Yml0
bWFwIiAgLy8geGJtCiAgICAgfTsKLSAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHNpemVvZih0
eXBlcykgLyBzaXplb2YodHlwZXNbMF0pOyArK2kpIHsKKyAgICBmb3IgKHNpemVfdCBpID0gMDsg
aSA8IFdURl9BUlJBWV9MRU5HVEgodHlwZXMpOyArK2kpIHsKICAgICAgICAgc3VwcG9ydGVkSW1h
Z2VNSU1FVHlwZXMtPmFkZCh0eXBlc1tpXSk7CiAgICAgICAgIHN1cHBvcnRlZEltYWdlUmVzb3Vy
Y2VNSU1FVHlwZXMtPmFkZCh0eXBlc1tpXSk7CiAgICAgfQpAQCAtMTg3LDcgKzE4Nyw3IEBAIHN0
YXRpYyB2b2lkIGluaXRpYWxpemVTdXBwb3J0ZWRKYXZhU2NyaXB0TUlNRVR5cGVzKCkKICAgICAg
ICAgInRleHQvanNjcmlwdCIsCiAgICAgICAgICJ0ZXh0L2xpdmVzY3JpcHQiLAogICAgIH07Ci0g
ICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBzaXplb2YodHlwZXMpIC8gc2l6ZW9mKHR5cGVzWzBd
KTsgKytpKQorICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgV1RGX0FSUkFZX0xFTkdUSCh0eXBl
cyk7ICsraSkKICAgICAgIHN1cHBvcnRlZEphdmFTY3JpcHRNSU1FVHlwZXMtPmFkZCh0eXBlc1tp
XSk7CiB9CiAKQEAgLTIyMiw3ICsyMjIsNyBAQCBzdGF0aWMgdm9pZCBpbml0aWFsaXplU3VwcG9y
dGVkTm9uSW1hZ2VNaW1lVHlwZXMoKQogICAgIENPTVBJTEVfQVNTRVJUKHNpemVvZih0eXBlcykg
LyBzaXplb2YodHlwZXNbMF0pIDw9IDE2LAogICAgICAgICAgICAgICAgICAgIG5vbmltYWdlX21p
bWVfdHlwZXNfbXVzdF9iZV9sZXNzX3RoYW5fb3JfZXF1YWxfdG9fMTYpOwogCi0gICAgZm9yIChz
aXplX3QgaSA9IDA7IGkgPCBzaXplb2YodHlwZXMpL3NpemVvZih0eXBlc1swXSk7ICsraSkKKyAg
ICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IFdURl9BUlJBWV9MRU5HVEgodHlwZXMpOyArK2kpCiAg
ICAgICAgIHN1cHBvcnRlZE5vbkltYWdlTUlNRVR5cGVzLT5hZGQodHlwZXNbaV0pOwogCiAgICAg
QXJjaGl2ZUZhY3Rvcnk6OnJlZ2lzdGVyS25vd25BcmNoaXZlTUlNRVR5cGVzKCk7CkBAIC0zMjIs
MjEgKzMyMiwxOSBAQCBzdGF0aWMgTWVkaWFNSU1FVHlwZU1hcCYgbWVkaWFNSU1FVHlwZU1hcCgp
CiAgICAgaWYgKCFtZWRpYU1JTUVUeXBlRm9yRXh0ZW5zaW9uTWFwLmlzRW1wdHkoKSkKICAgICAg
ICAgcmV0dXJuIG1lZGlhTUlNRVR5cGVGb3JFeHRlbnNpb25NYXA7CiAKLSAgICBjb25zdCB1bnNp
Z25lZCBudW1QYWlycyA9IHNpemVvZihwYWlycykgLyBzaXplb2YocGFpcnNbMF0pOwotICAgIGZv
ciAodW5zaWduZWQgbmR4ID0gMDsgbmR4IDwgbnVtUGFpcnM7ICsrbmR4KSB7Ci0KLSAgICAgICAg
aWYgKG1lZGlhTUlNRVR5cGVGb3JFeHRlbnNpb25NYXAuY29udGFpbnMocGFpcnNbbmR4XS5leHRl
bnNpb24pKQotICAgICAgICAgICAgbWVkaWFNSU1FVHlwZUZvckV4dGVuc2lvbk1hcC5nZXQocGFp
cnNbbmR4XS5leHRlbnNpb24pLT5hcHBlbmQocGFpcnNbbmR4XS50eXBlKTsKKyAgICBmb3IgKHNp
emVfdCBpID0gMDsgaSA8IFdURl9BUlJBWV9MRU5HVEgocGFpcnMpOyArK2kpIHsKKyAgICAgICAg
aWYgKG1lZGlhTUlNRVR5cGVGb3JFeHRlbnNpb25NYXAuY29udGFpbnMocGFpcnNbaV0uZXh0ZW5z
aW9uKSkKKyAgICAgICAgICAgIG1lZGlhTUlNRVR5cGVGb3JFeHRlbnNpb25NYXAuZ2V0KHBhaXJz
W2ldLmV4dGVuc2lvbiktPmFwcGVuZChwYWlyc1tpXS50eXBlKTsKICAgICAgICAgZWxzZSB7CiAg
ICAgICAgICAgICBWZWN0b3I8U3RyaW5nPiogc3lub255bXMgPSBuZXcgVmVjdG9yPFN0cmluZz47
CiAKICAgICAgICAgICAgIC8vIElmIHRoZXJlIGlzIGEgc3lzdGVtIHNwZWNpZmljIHR5cGUgZm9y
IHRoaXMgZXh0ZW5zaW9uLCBhZGQgaXQgYXMgdGhlIGZpcnN0IHR5cGUgc28KICAgICAgICAgICAg
IC8vIGdldE1lZGlhTUlNRVR5cGVGb3JFeHRlbnNpb24gd2lsbCBhbHdheXMgcmV0dXJuIGl0Lgot
ICAgICAgICAgICAgU3RyaW5nIHN5c3RlbVR5cGUgPSBNSU1FVHlwZVJlZ2lzdHJ5OjpnZXRNSU1F
VHlwZUZvckV4dGVuc2lvbihwYWlyc1tuZHhdLmV4dGVuc2lvbik7Ci0gICAgICAgICAgICBpZiAo
IXN5c3RlbVR5cGUuaXNFbXB0eSgpICYmIHBhaXJzW25keF0udHlwZSAhPSBzeXN0ZW1UeXBlKQor
ICAgICAgICAgICAgU3RyaW5nIHN5c3RlbVR5cGUgPSBNSU1FVHlwZVJlZ2lzdHJ5OjpnZXRNSU1F
VHlwZUZvckV4dGVuc2lvbihwYWlyc1tpXS5leHRlbnNpb24pOworICAgICAgICAgICAgaWYgKCFz
eXN0ZW1UeXBlLmlzRW1wdHkoKSAmJiBwYWlyc1tpXS50eXBlICE9IHN5c3RlbVR5cGUpCiAgICAg
ICAgICAgICAgICAgc3lub255bXMtPmFwcGVuZChzeXN0ZW1UeXBlKTsKLSAgICAgICAgICAgIHN5
bm9ueW1zLT5hcHBlbmQocGFpcnNbbmR4XS50eXBlKTsKLSAgICAgICAgICAgIG1lZGlhTUlNRVR5
cGVGb3JFeHRlbnNpb25NYXAuYWRkKHBhaXJzW25keF0uZXh0ZW5zaW9uLCBzeW5vbnltcyk7Cisg
ICAgICAgICAgICBzeW5vbnltcy0+YXBwZW5kKHBhaXJzW2ldLnR5cGUpOworICAgICAgICAgICAg
bWVkaWFNSU1FVHlwZUZvckV4dGVuc2lvbk1hcC5hZGQocGFpcnNbaV0uZXh0ZW5zaW9uLCBzeW5v
bnltcyk7CiAgICAgICAgIH0KICAgICB9CiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0v
VVVJRC5jcHAgYi9XZWJDb3JlL3BsYXRmb3JtL1VVSUQuY3BwCmluZGV4IGViNzIxZTAuLmEwMDJj
OGIgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vVVVJRC5jcHAKKysrIGIvV2ViQ29yZS9w
bGF0Zm9ybS9VVUlELmNwcApAQCAtOTUsNyArOTUsNyBAQCBTdHJpbmcgY3JlYXRlQ2Fub25pY2Fs
VVVJRFN0cmluZygpCiAgICAgcmV0dXJuIGNhbm9uaWNhbFV1aWRTdHI7CiAjZWxpZiBPUyhMSU5V
WCkgJiYgUExBVEZPUk0oQ0hST01JVU0pCiAgICAgdW5zaWduZWQgcmFuZG9tRGF0YVs0XTsKLSAg
ICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHNpemVvZihyYW5kb21EYXRhKSAvIHNpemVvZihyYW5k
b21EYXRhWzBdKTsgKytpKQorICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgV1RGX0FSUkFZX0xF
TkdUSChyYW5kb21EYXRhKTsgKytpKQogICAgICAgICByYW5kb21EYXRhW2ldID0gc3RhdGljX2Nh
c3Q8dW5zaWduZWQ+KHJhbmRvbU51bWJlcigpICogKHN0ZDo6bnVtZXJpY19saW1pdHM8dW5zaWdu
ZWQ+OjptYXgoKSArIDEuMCkpOwogCiAgICAgLy8gRm9ybWF0IGFzIFZlcnNpb24gNCBVVUlELgpk
aWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9lZmwvUmVuZGVyVGhlbWVFZmwuY3BwIGIvV2Vi
Q29yZS9wbGF0Zm9ybS9lZmwvUmVuZGVyVGhlbWVFZmwuY3BwCmluZGV4IDYwNzY3NDcuLmUwOGVj
OTYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vZWZsL1JlbmRlclRoZW1lRWZsLmNwcAor
KysgYi9XZWJDb3JlL3BsYXRmb3JtL2VmbC9SZW5kZXJUaGVtZUVmbC5jcHAKQEAgLTI0NywxMSAr
MjQ3LDEwIEBAIHZvaWQgUmVuZGVyVGhlbWVFZmw6OmFwcGx5RWRqZVN0YXRlRnJvbUZvcm0oRXZh
c19PYmplY3QqIG8sIENvbnRyb2xTdGF0ZXMgc3RhdGVzCiAgICAgICAgICJ3aW5kb3ctaW5hY3Rp
dmUiLAogICAgICAgICAiaW5kZXRlcm1pbmF0ZSIKICAgICB9OwotICAgIHNpemVfdCBpLCBsYXN0
ID0gc2l6ZW9mKHNpZ25hbHMpIC8gc2l6ZW9mKHNpZ25hbHNbMF0pOwogCiAgICAgZWRqZV9vYmpl
Y3Rfc2lnbmFsX2VtaXQobywgInJlc2V0IiwgIiIpOwogCi0gICAgZm9yIChpID0gMDsgaSA8IGxh
c3Q7IGkrKykgeworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgV1RGX0FSUkFZX0xFTkdUSChz
aWduYWxzKTsgKytpKSB7CiAgICAgICAgIGlmIChzdGF0ZXMgJiAoMSA8PCBpKSkKICAgICAgICAg
ICAgIGVkamVfb2JqZWN0X3NpZ25hbF9lbWl0KG8sIHNpZ25hbHNbaV0sICIiKTsKICAgICB9CmRp
ZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzVHlwZXMuY3BwIGIv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc1R5cGVzLmNwcAppbmRleCA3NjFiZjQw
Li4wNGJlNzA2IDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNz
VHlwZXMuY3BwCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NUeXBlcy5j
cHAKQEAgLTQ3LDcgKzQ3LDcgQEAgc3RhdGljIGNvbnN0IGNoYXIqIGNvbnN0IGNvbXBvc2l0ZU9w
ZXJhdG9yTmFtZXNbXSA9IHsKICAgICAiaGlnaGxpZ2h0IiwKICAgICAibGlnaHRlciIKIH07Ci1j
b25zdCBpbnQgbnVtQ29tcG9zaXRlT3BlcmF0b3JOYW1lcyA9IHNpemVvZihjb21wb3NpdGVPcGVy
YXRvck5hbWVzKSAvIHNpemVvZihjb21wb3NpdGVPcGVyYXRvck5hbWVzWzBdKTsKK2NvbnN0IGlu
dCBudW1Db21wb3NpdGVPcGVyYXRvck5hbWVzID0gV1RGX0FSUkFZX0xFTkdUSChjb21wb3NpdGVP
cGVyYXRvck5hbWVzKTsKIAogYm9vbCBwYXJzZUNvbXBvc2l0ZU9wZXJhdG9yKGNvbnN0IFN0cmlu
ZyYgcywgQ29tcG9zaXRlT3BlcmF0b3ImIG9wKQogewpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9Gb250Q2FjaGVDaHJvbWl1bVdpbi5jcHAgYi9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0ZvbnRDYWNoZUNocm9taXVtV2luLmNwcAppbmRl
eCAzODRiMWM1Li4wYTM3M2FmIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2Nocm9taXVtL0ZvbnRDYWNoZUNocm9taXVtV2luLmNwcAorKysgYi9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2Nocm9taXVtL0ZvbnRDYWNoZUNocm9taXVtV2luLmNwcApAQCAtMjExLDkgKzIx
MSw4IEBAIHN0YXRpYyBib29sIExvb2t1cEFsdE5hbWUoY29uc3QgU3RyaW5nJiBuYW1lLCBTdHJp
bmcmIGFsdE5hbWUpCiAgICAgc3RhdGljIE5hbWVNYXAqIGZvbnROYW1lTWFwID0gMDsKIAogICAg
IGlmICghZm9udE5hbWVNYXApIHsKLSAgICAgICAgc2l6ZV90IG51bUVsZW1lbnRzID0gc2l6ZW9m
KG5hbWVQYWlycykgLyBzaXplb2YoTmFtZVBhaXIpOwogICAgICAgICBmb250TmFtZU1hcCA9IG5l
dyBOYW1lTWFwOwotICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG51bUVsZW1lbnRzOyAr
K2kpCisgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgV1RGX0FSUkFZX0xFTkdUSChuYW1l
UGFpcnMpOyArK2kpCiAgICAgICAgICAgICBmb250TmFtZU1hcC0+c2V0KFN0cmluZyhuYW1lUGFp
cnNbaV0ubmFtZSksICYobmFtZVBhaXJzW2ldLmFsdE5hbWVDb2RlcGFnZSkpOwogICAgIH0KIApk
aWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9Gb250VXRpbHND
aHJvbWl1bVdpbi5jcHAgYi9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0ZvbnRV
dGlsc0Nocm9taXVtV2luLmNwcAppbmRleCBlNzI1YzUwLi42ZWM4MzQyIDEwMDY0NAotLS0gYS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0ZvbnRVdGlsc0Nocm9taXVtV2luLmNw
cAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0ZvbnRVdGlsc0Nocm9t
aXVtV2luLmNwcApAQCAtMTUwLDE0ICsxNTAsMTQgQEAgdm9pZCBpbml0aWFsaXplU2NyaXB0Rm9u
dE1hcChTY3JpcHRUb0ZvbnRNYXAmIHNjcmlwdEZvbnRNYXApCiAgICAgICAgIHtVU0NSSVBUX01Z
QU5NQVIsIG15YW5tYXJGb250c30sCiAgICAgfTsKIAotICAgIGZvciAoaW50IGkgPSAwOyBpIDwg
c2l6ZW9mKGZvbnRNYXApIC8gc2l6ZW9mKGZvbnRNYXBbMF0pOyArK2kpCisgICAgZm9yIChzaXpl
X3QgaSA9IDA7IGkgPCBXVEZfQVJSQVlfTEVOR1RIKGZvbnRNYXApOyArK2kpCiAgICAgICAgIHNj
cmlwdEZvbnRNYXBbZm9udE1hcFtpXS5zY3JpcHRdID0gZm9udE1hcFtpXS5mYW1pbHk7CiAKICAg
ICAvLyBGSVhNRTogSW5zdGVhZCBvZiBzY2FubmluZyB0aGUgaGFyZC1jb2RlZCBsaXN0LCB3ZSBo
YXZlIHRvIAogICAgIC8vIHVzZSBFbnVtRm9udCogdG8gJ2luc3BlY3QnIGZvbnRzIHRvIHBpY2sg
dXAgZm9udHMgY292ZXJpbmcgc2NyaXB0cwogICAgIC8vIHdoZW4gaXQncyBwb3NzaWJsZSAoZS5n
LiB1c2luZyBPUy8yIHRhYmxlKS4gSWYgd2UgZG8gdGhhdCwgdGhpcyAKICAgICAvLyBoYWQgYmV0
dGVyIGJlIHB1bGxlZCBvdXQgb2YgaGVyZS4KLSAgICBmb3IgKGludCBpID0gMDsgaSA8IHNpemVv
ZihzY3JpcHRUb0ZvbnRGYW1pbGllcykgLyBzaXplb2Yoc2NyaXB0VG9Gb250RmFtaWxpZXNbMF0p
OyArK2kpIHsKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IFdURl9BUlJBWV9MRU5HVEgoc2Ny
aXB0VG9Gb250RmFtaWxpZXMpOyArK2kpIHsKICAgICAgICAgVVNjcmlwdENvZGUgc2NyaXB0ID0g
c2NyaXB0VG9Gb250RmFtaWxpZXNbaV0uc2NyaXB0OwogICAgICAgICBzY3JpcHRGb250TWFwW3Nj
cmlwdF0gPSAwOwogICAgICAgICBjb25zdCBVQ2hhcioqIGZhbWlseVB0ciA9IHNjcmlwdFRvRm9u
dEZhbWlsaWVzW2ldLmZhbWlsaWVzOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9tYWMvQ29tcGxleFRleHRDb250cm9sbGVyQ29yZVRleHQuY3BwIGIvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9tYWMvQ29tcGxleFRleHRDb250cm9sbGVyQ29yZVRleHQuY3BwCmluZGV4
IGNiYjc2MTAuLjU4MTE0YTcgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
bWFjL0NvbXBsZXhUZXh0Q29udHJvbGxlckNvcmVUZXh0LmNwcAorKysgYi9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL21hYy9Db21wbGV4VGV4dENvbnRyb2xsZXJDb3JlVGV4dC5jcHAKQEAgLTEz
OCw4ICsxMzgsOCBAQCB2b2lkIENvbXBsZXhUZXh0Q29udHJvbGxlcjo6Y29sbGVjdENvbXBsZXhU
ZXh0UnVuc0ZvckNoYXJhY3RlcnNDb3JlVGV4dChjb25zdCBVQwogICAgICAgICBjb25zdCBzaG9y
dCBydGxGb3JjZWRFbWJlZGRpbmdMZXZlbFZhbHVlID0gMTsKICAgICAgICAgc3RhdGljIGNvbnN0
IHZvaWQqIGx0ck9wdGlvblZhbHVlc1tdID0geyBDRk51bWJlckNyZWF0ZShrQ0ZBbGxvY2F0b3JE
ZWZhdWx0LCBrQ0ZOdW1iZXJTaG9ydFR5cGUsICZsdHJGb3JjZWRFbWJlZGRpbmdMZXZlbFZhbHVl
KSB9OwogICAgICAgICBzdGF0aWMgY29uc3Qgdm9pZCogcnRsT3B0aW9uVmFsdWVzW10gPSB7IENG
TnVtYmVyQ3JlYXRlKGtDRkFsbG9jYXRvckRlZmF1bHQsIGtDRk51bWJlclNob3J0VHlwZSwgJnJ0
bEZvcmNlZEVtYmVkZGluZ0xldmVsVmFsdWUpIH07Ci0gICAgICAgIHN0YXRpYyBDRkRpY3Rpb25h
cnlSZWYgbHRyVHlwZXNldHRlck9wdGlvbnMgPSBDRkRpY3Rpb25hcnlDcmVhdGUoa0NGQWxsb2Nh
dG9yRGVmYXVsdCwgb3B0aW9uS2V5cywgbHRyT3B0aW9uVmFsdWVzLCBzaXplb2Yob3B0aW9uS2V5
cykgLyBzaXplb2YoKm9wdGlvbktleXMpLCAma0NGQ29weVN0cmluZ0RpY3Rpb25hcnlLZXlDYWxs
QmFja3MsICZrQ0ZUeXBlRGljdGlvbmFyeVZhbHVlQ2FsbEJhY2tzKTsKLSAgICAgICAgc3RhdGlj
IENGRGljdGlvbmFyeVJlZiBydGxUeXBlc2V0dGVyT3B0aW9ucyA9IENGRGljdGlvbmFyeUNyZWF0
ZShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBvcHRpb25LZXlzLCBydGxPcHRpb25WYWx1ZXMsIHNpemVv
ZihvcHRpb25LZXlzKSAvIHNpemVvZigqb3B0aW9uS2V5cyksICZrQ0ZDb3B5U3RyaW5nRGljdGlv
bmFyeUtleUNhbGxCYWNrcywgJmtDRlR5cGVEaWN0aW9uYXJ5VmFsdWVDYWxsQmFja3MpOworICAg
ICAgICBzdGF0aWMgQ0ZEaWN0aW9uYXJ5UmVmIGx0clR5cGVzZXR0ZXJPcHRpb25zID0gQ0ZEaWN0
aW9uYXJ5Q3JlYXRlKGtDRkFsbG9jYXRvckRlZmF1bHQsIG9wdGlvbktleXMsIGx0ck9wdGlvblZh
bHVlcywgV1RGX0FSUkFZX0xFTkdUSChvcHRpb25LZXlzKSwgJmtDRkNvcHlTdHJpbmdEaWN0aW9u
YXJ5S2V5Q2FsbEJhY2tzLCAma0NGVHlwZURpY3Rpb25hcnlWYWx1ZUNhbGxCYWNrcyk7CisgICAg
ICAgIHN0YXRpYyBDRkRpY3Rpb25hcnlSZWYgcnRsVHlwZXNldHRlck9wdGlvbnMgPSBDRkRpY3Rp
b25hcnlDcmVhdGUoa0NGQWxsb2NhdG9yRGVmYXVsdCwgb3B0aW9uS2V5cywgcnRsT3B0aW9uVmFs
dWVzLCBXVEZfQVJSQVlfTEVOR1RIKG9wdGlvbktleXMpLCAma0NGQ29weVN0cmluZ0RpY3Rpb25h
cnlLZXlDYWxsQmFja3MsICZrQ0ZUeXBlRGljdGlvbmFyeVZhbHVlQ2FsbEJhY2tzKTsKIAogI2lm
ICFkZWZpbmVkKEJVSUxESU5HX09OX1RJR0VSKSAmJiAhZGVmaW5lZChCVUlMRElOR19PTl9MRU9Q
QVJEKSAmJiAhZGVmaW5lZChCVUlMRElOR19PTl9TTk9XX0xFT1BBUkQpCiAgICAgICAgIFByb3Zp
ZGVySW5mbyBpbmZvID0geyBjcCwgbGVuZ3RoLCBmb250RGF0YS0+Z2V0Q0ZTdHJpbmdBdHRyaWJ1
dGVzKG1fZm9udC50eXBlc2V0dGluZ0ZlYXR1cmVzKCkpIH07CmRpZmYgLS1naXQgYS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL21hYy9NZWRpYVBsYXllclByaXZhdGVRVEtpdC5tbSBiL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL01lZGlhUGxheWVyUHJpdmF0ZVFUS2l0Lm1tCmluZGV4
IDZkYTBkYTEuLmYyZmI1YjMgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
bWFjL01lZGlhUGxheWVyUHJpdmF0ZVFUS2l0Lm1tCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvbWFjL01lZGlhUGxheWVyUHJpdmF0ZVFUS2l0Lm1tCkBAIC0zMTYsNyArMzE2LDcgQEAg
c3RhdGljIHZvaWQgZGlzYWJsZUNvbXBvbmVudHNPbmNlKCkKICAgICAgICAgeydpbWRjJywgJ3Bk
ZiAnLCAnYXBwbCcsIDAsIDB9LCAgCiAgICAgfTsKIAotICAgIGZvciAoc2l6ZV90IGkgPSAwOyBp
IDwgc2l6ZW9mKGNvbXBvbmVudHNUb0Rpc2FibGUpL3NpemVvZihjb21wb25lbnRzVG9EaXNhYmxl
WzBdKTsgKytpKSAKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IFdURl9BUlJBWV9MRU5HVEgo
Y29tcG9uZW50c1RvRGlzYWJsZSk7ICsraSkgCiAgICAgICAgIHdrUVRNb3ZpZURpc2FibGVDb21w
b25lbnQoY29tcG9uZW50c1RvRGlzYWJsZVtpXSk7CiB9CiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvbWFjL1NpbXBsZUZvbnREYXRhQVRTVUkubW0gYi9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL21hYy9TaW1wbGVGb250RGF0YUFUU1VJLm1tCmluZGV4IGJlZWEwMTgu
LjZiZjRkNmQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL1NpbXBs
ZUZvbnREYXRhQVRTVUkubW0KKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvU2lt
cGxlRm9udERhdGFBVFNVSS5tbQpAQCAtNTksNyArNTksNyBAQCB2b2lkIFNpbXBsZUZvbnREYXRh
OjpjaGVja1NoYXBlc0FyYWJpYygpIGNvbnN0CiAgICAgLy8gaGV1cmlzdGljIGlzIHRoYXQgaWYg
c3VjaCBhIGZvbnQgaGFzIGEgZ2x5cGggbWV0YW1vcnBob3NpcyB0YWJsZSwgdGhlbgogICAgIC8v
IGl0IGluY2x1ZGVzIHNoYXBpbmcgaW5mb3JtYXRpb24gZm9yIEFyYWJpYy4KICAgICBGb3VyQ2hh
ckNvZGUgdGFibGVzW10gPSB7ICdtb3J4JywgJ21vcnQnIH07Ci0gICAgZm9yICh1bnNpZ25lZCBp
ID0gMDsgaSA8IHNpemVvZih0YWJsZXMpIC8gc2l6ZW9mKHRhYmxlc1swXSk7ICsraSkgeworICAg
IGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgV1RGX0FSUkFZX0xFTkdUSCh0YWJsZXMpOyArK2kpIHsK
ICAgICAgICAgQnl0ZUNvdW50IHRhYmxlU2l6ZTsKICAgICAgICAgT1NTdGF0dXMgc3RhdHVzID0g
QVRTRm9udEdldFRhYmxlKGZvbnRJRCwgdGFibGVzW2ldLCAwLCAwLCAwLCAmdGFibGVTaXplKTsK
ICAgICAgICAgaWYgKHN0YXR1cyA9PSBub0VycikgewpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9tYWMvU2ltcGxlRm9udERhdGFDb3JlVGV4dC5jcHAgYi9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL21hYy9TaW1wbGVGb250RGF0YUNvcmVUZXh0LmNwcAppbmRleCBkYjZk
ZTQ5Li42MDhiY2E2IDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9T
aW1wbGVGb250RGF0YUNvcmVUZXh0LmNwcAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L21hYy9TaW1wbGVGb250RGF0YUNvcmVUZXh0LmNwcApAQCAtNjIsMTUgKzYyLDEzIEBAIENGRGlj
dGlvbmFyeVJlZiBTaW1wbGVGb250RGF0YTo6Z2V0Q0ZTdHJpbmdBdHRyaWJ1dGVzKFR5cGVzZXR0
aW5nRmVhdHVyZXMgdHlwZXNlCiAgICAgICAgIGNvbnN0IHZvaWQqIHZhbHVlc1dpdGhLZXJuaW5n
RGlzYWJsZWRbXSA9IHsgcGxhdGZvcm1EYXRhKCkuY3RGb250KCksIGtlcm5pbmdBZGp1c3RtZW50
LCBhbGxvd0xpZ2F0dXJlcwogICAgICAgICAgICAgPyBsaWdhdHVyZXNBbGxvd2VkIDogbGlnYXR1
cmVzTm90QWxsb3dlZCwgb3JpZW50YXRpb24oKSA9PSBWZXJ0aWNhbCA/IGtDRkJvb2xlYW5UcnVl
IDoga0NGQm9vbGVhbkZhbHNlIH07CiAgICAgICAgIGF0dHJpYnV0ZXNEaWN0aW9uYXJ5LmFkb3B0
Q0YoQ0ZEaWN0aW9uYXJ5Q3JlYXRlKDAsIGtleXNXaXRoS2VybmluZ0Rpc2FibGVkLCB2YWx1ZXNX
aXRoS2VybmluZ0Rpc2FibGVkLAotICAgICAgICAgICAgc2l6ZW9mKGtleXNXaXRoS2VybmluZ0Rp
c2FibGVkKSAvIHNpemVvZigqa2V5c1dpdGhLZXJuaW5nRGlzYWJsZWQpLAotICAgICAgICAgICAg
JmtDRkNvcHlTdHJpbmdEaWN0aW9uYXJ5S2V5Q2FsbEJhY2tzLCAma0NGVHlwZURpY3Rpb25hcnlW
YWx1ZUNhbGxCYWNrcykpOworICAgICAgICAgICAgV1RGX0FSUkFZX0xFTkdUSChrZXlzV2l0aEtl
cm5pbmdEaXNhYmxlZCksICZrQ0ZDb3B5U3RyaW5nRGljdGlvbmFyeUtleUNhbGxCYWNrcywgJmtD
RlR5cGVEaWN0aW9uYXJ5VmFsdWVDYWxsQmFja3MpKTsKICAgICB9IGVsc2UgewogICAgICAgICAv
LyBCeSBvbWl0dGluZyB0aGUga0NUS2VybkF0dHJpYnV0ZU5hbWUgYXR0cmlidXRlLCB3ZSBnZXQg
Q29yZSBUZXh0J3Mgc3RhbmRhcmQga2VybmluZy4KICAgICAgICAgc3RhdGljIGNvbnN0IHZvaWQq
IGtleXNXaXRoS2VybmluZ0VuYWJsZWRbXSA9IHsga0NURm9udEF0dHJpYnV0ZU5hbWUsIGtDVExp
Z2F0dXJlQXR0cmlidXRlTmFtZSwga0NUVmVydGljYWxGb3Jtc0F0dHJpYnV0ZU5hbWUgfTsKICAg
ICAgICAgY29uc3Qgdm9pZCogdmFsdWVzV2l0aEtlcm5pbmdFbmFibGVkW10gPSB7IHBsYXRmb3Jt
RGF0YSgpLmN0Rm9udCgpLCBhbGxvd0xpZ2F0dXJlcyA/IGxpZ2F0dXJlc0FsbG93ZWQgOiBsaWdh
dHVyZXNOb3RBbGxvd2VkLCBvcmllbnRhdGlvbigpID09IFZlcnRpY2FsID8ga0NGQm9vbGVhblRy
dWUgOiBrQ0ZCb29sZWFuRmFsc2UgfTsKICAgICAgICAgYXR0cmlidXRlc0RpY3Rpb25hcnkuYWRv
cHRDRihDRkRpY3Rpb25hcnlDcmVhdGUoMCwga2V5c1dpdGhLZXJuaW5nRW5hYmxlZCwgdmFsdWVz
V2l0aEtlcm5pbmdFbmFibGVkLAotICAgICAgICAgICAgc2l6ZW9mKGtleXNXaXRoS2VybmluZ0Vu
YWJsZWQpIC8gc2l6ZW9mKCprZXlzV2l0aEtlcm5pbmdFbmFibGVkKSwKLSAgICAgICAgICAgICZr
Q0ZDb3B5U3RyaW5nRGljdGlvbmFyeUtleUNhbGxCYWNrcywgJmtDRlR5cGVEaWN0aW9uYXJ5VmFs
dWVDYWxsQmFja3MpKTsKKyAgICAgICAgICAgIFdURl9BUlJBWV9MRU5HVEgoa2V5c1dpdGhLZXJu
aW5nRW5hYmxlZCksICZrQ0ZDb3B5U3RyaW5nRGljdGlvbmFyeUtleUNhbGxCYWNrcywgJmtDRlR5
cGVEaWN0aW9uYXJ5VmFsdWVDYWxsQmFja3MpKTsKICAgICB9CiAKICAgICByZXR1cm4gYXR0cmli
dXRlc0RpY3Rpb25hcnkuZ2V0KCk7CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL3dpbi9HcmFwaGljc0NvbnRleHRDR1dpbi5jcHAgYi9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL3dpbi9HcmFwaGljc0NvbnRleHRDR1dpbi5jcHAKaW5kZXggYzkyODhlNS4uM2M3YmU3NSAx
MDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vR3JhcGhpY3NDb250ZXh0
Q0dXaW4uY3BwCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0dyYXBoaWNzQ29u
dGV4dENHV2luLmNwcApAQCAtMjI4LDIwICsyMjgsMTcgQEAgdm9pZCBHcmFwaGljc0NvbnRleHQ6
OmRyYXdMaW5lRm9yVGV4dENoZWNraW5nKGNvbnN0IEludFBvaW50JiBwb2ludCwgaW50IHdpZHRo
LAogICAgIGNvbnN0IGZsb2F0IGxvd2VyT3BhY2l0eSA9IDAuODhmOwogCiAgICAgLy9Ub3AgbGlu
ZQotICAgIENHQ29udGV4dFNldExpbmVEYXNoKGNvbnRleHQsIGVkZ2Vfb2Zmc2V0LCBlZGdlX2Rh
c2hfbGVuZ3RocywgCi0gICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZW9mKGVkZ2VfZGFzaF9s
ZW5ndGhzKSAvIHNpemVvZihlZGdlX2Rhc2hfbGVuZ3Roc1swXSkpOworICAgIENHQ29udGV4dFNl
dExpbmVEYXNoKGNvbnRleHQsIGVkZ2Vfb2Zmc2V0LCBlZGdlX2Rhc2hfbGVuZ3RocywgV1RGX0FS
UkFZX0xFTkdUSChlZGdlX2Rhc2hfbGVuZ3RocykpOwogICAgIENHQ29udGV4dFNldEFscGhhKGNv
bnRleHQsIHVwcGVyT3BhY2l0eSk7CiAgICAgQ0dDb250ZXh0U3Ryb2tlTGluZVNlZ21lbnRzKGNv
bnRleHQsIHVwcGVyUG9pbnRzLCAyKTsKICAKICAgICAvLyBNaWRkbGUgbGluZQotICAgIENHQ29u
dGV4dFNldExpbmVEYXNoKGNvbnRleHQsIG1pZGRsZV9vZmZzZXQsIG1pZGRsZV9kYXNoX2xlbmd0
aHMsIAotICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVvZihtaWRkbGVfZGFzaF9sZW5ndGhz
KSAvIHNpemVvZihtaWRkbGVfZGFzaF9sZW5ndGhzWzBdKSk7CisgICAgQ0dDb250ZXh0U2V0TGlu
ZURhc2goY29udGV4dCwgbWlkZGxlX29mZnNldCwgbWlkZGxlX2Rhc2hfbGVuZ3RocywgV1RGX0FS
UkFZX0xFTkdUSChtaWRkbGVfZGFzaF9sZW5ndGhzKSk7CiAgICAgQ0dDb250ZXh0U2V0QWxwaGEo
Y29udGV4dCwgbWlkZGxlT3BhY2l0eSk7CiAgICAgQ0dDb250ZXh0U3Ryb2tlTGluZVNlZ21lbnRz
KGNvbnRleHQsIG1pZGRsZVBvaW50cywgMik7CiAgICAgCiAgICAgLy8gQm90dG9tIGxpbmUKLSAg
ICBDR0NvbnRleHRTZXRMaW5lRGFzaChjb250ZXh0LCBlZGdlX29mZnNldCwgZWRnZV9kYXNoX2xl
bmd0aHMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZW9mKGVkZ2VfZGFzaF9sZW5ndGhz
KSAvIHNpemVvZihlZGdlX2Rhc2hfbGVuZ3Roc1swXSkpOworICAgIENHQ29udGV4dFNldExpbmVE
YXNoKGNvbnRleHQsIGVkZ2Vfb2Zmc2V0LCBlZGdlX2Rhc2hfbGVuZ3RocywgV1RGX0FSUkFZX0xF
TkdUSChlZGdlX2Rhc2hfbGVuZ3RocykpOwogICAgIENHQ29udGV4dFNldEFscGhhKGNvbnRleHQs
IGxvd2VyT3BhY2l0eSk7CiAgICAgQ0dDb250ZXh0U3Ryb2tlTGluZVNlZ21lbnRzKGNvbnRleHQs
IGxvd2VyUG9pbnRzLCAyKTsKIApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy93aW4vTWVkaWFQbGF5ZXJQcml2YXRlUXVpY2tUaW1lVmlzdWFsQ29udGV4dC5jcHAgYi9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9NZWRpYVBsYXllclByaXZhdGVRdWlja1RpbWVWaXN1
YWxDb250ZXh0LmNwcAppbmRleCA4ZWFmMmE5Li44NjRiNDBiIDEwMDY0NAotLS0gYS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9NZWRpYVBsYXllclByaXZhdGVRdWlja1RpbWVWaXN1YWxD
b250ZXh0LmNwcAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9NZWRpYVBsYXll
clByaXZhdGVRdWlja1RpbWVWaXN1YWxDb250ZXh0LmNwcApAQCAtMzE2LDcgKzMxNiw3IEBAIHN0
YXRpYyB2b2lkIGRpc2FibGVDb21wb25lbnRzT25jZSgpCiAgICAgICAgIHsnZWF0ICcsICdURVhU
JywgJ3R4M2cnLCAwLCAwfSwgIAogICAgIH07CiAKLSAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8
IHNpemVvZihjb21wb25lbnRzVG9EaXNhYmxlKSAvIHNpemVvZihjb21wb25lbnRzVG9EaXNhYmxl
WzBdKTsgKytpKSAKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IFdURl9BUlJBWV9MRU5HVEgo
Y29tcG9uZW50c1RvRGlzYWJsZSk7ICsraSkgCiAgICAgICAgIFFUTW92aWU6OmRpc2FibGVDb21w
b25lbnQoY29tcG9uZW50c1RvRGlzYWJsZVtpXSk7CiB9CiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3Mvd2luL1FUTW92aWUuY3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy93aW4vUVRNb3ZpZS5jcHAKaW5kZXggZTQyNWJmOC4uOTYyMWQ4ZCAxMDA2NDQKLS0tIGEv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vUVRNb3ZpZS5jcHAKKysrIGIvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy93aW4vUVRNb3ZpZS5jcHAKQEAgLTU0OCw3ICs1NDgsNyBAQCB2b2lk
IFFUTW92aWU6OmxvYWQoQ0ZVUkxSZWYgdXJsLCBib29sIHByZXNlcnZlc1BpdGNoKQogICAgIG1v
dmllUHJvcHNbbW92aWVQcm9wQ291bnRdLnByb3BTdGF0dXMgPSAwOyAKICAgICBtb3ZpZVByb3BD
b3VudCsrOyAKIAotICAgIEFTU0VSVChtb3ZpZVByb3BDb3VudCA8PSBzaXplb2YobW92aWVQcm9w
cykgLyBzaXplb2YobW92aWVQcm9wc1swXSkpOworICAgIEFTU0VSVChtb3ZpZVByb3BDb3VudCA8
PSBXVEZfQVJSQVlfTEVOR1RIKG1vdmllUHJvcHMpKTsKICAgICBtX3ByaXZhdGUtPm1fbG9hZEVy
cm9yID0gTmV3TW92aWVGcm9tUHJvcGVydGllcyhtb3ZpZVByb3BDb3VudCwgbW92aWVQcm9wcywg
MCwgMCwgJm1fcHJpdmF0ZS0+bV9tb3ZpZSk7CiAKIGVuZDoKZGlmZiAtLWdpdCBhL1dlYkNvcmUv
cGxhdGZvcm0vbmV0d29yay9jZi9Tb2NrZXRTdHJlYW1IYW5kbGVDRk5ldC5jcHAgYi9XZWJDb3Jl
L3BsYXRmb3JtL25ldHdvcmsvY2YvU29ja2V0U3RyZWFtSGFuZGxlQ0ZOZXQuY3BwCmluZGV4IDgw
MDMwMWEuLjRlYmMxZDkgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9T
b2NrZXRTdHJlYW1IYW5kbGVDRk5ldC5jcHAKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3Jr
L2NmL1NvY2tldFN0cmVhbUhhbmRsZUNGTmV0LmNwcApAQCAtMzMyLDcgKzMzMiw3IEBAIHZvaWQg
U29ja2V0U3RyZWFtSGFuZGxlOjpjcmVhdGVTdHJlYW1zKCkKICAgICAgICAgLy8gQnV0IFNPQ0tT
NSBjcmVkZW50aWFscyBkb24ndCB3b3JrIGF0IHRoZSB0aW1lIG9mIHRoaXMgd3JpdGluZyBhbnl3
YXksIHNlZSA8cmRhcjovLzY3NzY2OTg+LgogICAgICAgICBjb25zdCB2b2lkKiBwcm94eUtleXNb
XSA9IHsga0NGU3RyZWFtUHJvcGVydHlTT0NLU1Byb3h5SG9zdCwga0NGU3RyZWFtUHJvcGVydHlT
T0NLU1Byb3h5UG9ydCB9OwogICAgICAgICBjb25zdCB2b2lkKiBwcm94eVZhbHVlc1tdID0geyBt
X3Byb3h5SG9zdC5nZXQoKSwgbV9wcm94eVBvcnQuZ2V0KCkgfTsKLSAgICAgICAgUmV0YWluUHRy
PENGRGljdGlvbmFyeVJlZj4gY29ubmVjdERpY3Rpb25hcnkoQWRvcHRDRiwgQ0ZEaWN0aW9uYXJ5
Q3JlYXRlKDAsIHByb3h5S2V5cywgcHJveHlWYWx1ZXMsIHNpemVvZihwcm94eUtleXMpIC8gc2l6
ZW9mKCpwcm94eUtleXMpLCAma0NGVHlwZURpY3Rpb25hcnlLZXlDYWxsQmFja3MsICZrQ0ZUeXBl
RGljdGlvbmFyeVZhbHVlQ2FsbEJhY2tzKSk7CisgICAgICAgIFJldGFpblB0cjxDRkRpY3Rpb25h
cnlSZWY+IGNvbm5lY3REaWN0aW9uYXJ5KEFkb3B0Q0YsIENGRGljdGlvbmFyeUNyZWF0ZSgwLCBw
cm94eUtleXMsIHByb3h5VmFsdWVzLCBXVEZfQVJSQVlfTEVOR1RIKHByb3h5S2V5cyksICZrQ0ZU
eXBlRGljdGlvbmFyeUtleUNhbGxCYWNrcywgJmtDRlR5cGVEaWN0aW9uYXJ5VmFsdWVDYWxsQmFj
a3MpKTsKICAgICAgICAgQ0ZSZWFkU3RyZWFtU2V0UHJvcGVydHkobV9yZWFkU3RyZWFtLmdldCgp
LCBrQ0ZTdHJlYW1Qcm9wZXJ0eVNPQ0tTUHJveHksIGNvbm5lY3REaWN0aW9uYXJ5LmdldCgpKTsK
ICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KQEAgLTM0NCw3ICszNDQsNyBAQCB2b2lkIFNvY2tl
dFN0cmVhbUhhbmRsZTo6Y3JlYXRlU3RyZWFtcygpCiAgICAgaWYgKHNob3VsZFVzZVNTTCgpKSB7
CiAgICAgICAgIGNvbnN0IHZvaWQqIGtleXNbXSA9IHsga0NGU3RyZWFtU1NMUGVlck5hbWUsIGtD
RlN0cmVhbVNTTExldmVsIH07CiAgICAgICAgIGNvbnN0IHZvaWQqIHZhbHVlc1tdID0geyBob3N0
LmdldCgpLCBrQ0ZTdHJlYW1Tb2NrZXRTZWN1cml0eUxldmVsTmVnb3RpYXRlZFNTTCB9OwotICAg
ICAgICBSZXRhaW5QdHI8Q0ZEaWN0aW9uYXJ5UmVmPiBzZXR0aW5ncyhBZG9wdENGLCBDRkRpY3Rp
b25hcnlDcmVhdGUoMCwga2V5cywgdmFsdWVzLCBzaXplb2Yoa2V5cykgLyBzaXplb2YoKmtleXMp
LCAma0NGVHlwZURpY3Rpb25hcnlLZXlDYWxsQmFja3MsICZrQ0ZUeXBlRGljdGlvbmFyeVZhbHVl
Q2FsbEJhY2tzKSk7CisgICAgICAgIFJldGFpblB0cjxDRkRpY3Rpb25hcnlSZWY+IHNldHRpbmdz
KEFkb3B0Q0YsIENGRGljdGlvbmFyeUNyZWF0ZSgwLCBrZXlzLCB2YWx1ZXMsIFdURl9BUlJBWV9M
RU5HVEgoa2V5cyksICZrQ0ZUeXBlRGljdGlvbmFyeUtleUNhbGxCYWNrcywgJmtDRlR5cGVEaWN0
aW9uYXJ5VmFsdWVDYWxsQmFja3MpKTsKICAgICAgICAgQ0ZSZWFkU3RyZWFtU2V0UHJvcGVydHko
bV9yZWFkU3RyZWFtLmdldCgpLCBrQ0ZTdHJlYW1Qcm9wZXJ0eVNTTFNldHRpbmdzLCBzZXR0aW5n
cy5nZXQoKSk7CiAgICAgICAgIENGV3JpdGVTdHJlYW1TZXRQcm9wZXJ0eShtX3dyaXRlU3RyZWFt
LmdldCgpLCBrQ0ZTdHJlYW1Qcm9wZXJ0eVNTTFNldHRpbmdzLCBzZXR0aW5ncy5nZXQoKSk7CiAg
ICAgfQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L1RleHRFbmNvZGluZ1JlZ2lz
dHJ5LmNwcCBiL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9UZXh0RW5jb2RpbmdSZWdpc3RyeS5jcHAK
aW5kZXggZmJlNTgyNi4uZDQ4NDUxNiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0
L1RleHRFbmNvZGluZ1JlZ2lzdHJ5LmNwcAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL3RleHQvVGV4
dEVuY29kaW5nUmVnaXN0cnkuY3BwCkBAIC0xODksOCArMTg5LDcgQEAgc3RhdGljIHZvaWQgYWRk
VG9UZXh0Q29kZWNNYXAoY29uc3QgY2hhciogbmFtZSwgTmV3VGV4dENvZGVjRnVuY3Rpb24gZnVu
Y3Rpb24sIGMKIAogc3RhdGljIHZvaWQgcHJ1bmVCbGFja2xpc3RlZENvZGVjcygpCiB7Ci0gICAg
c2l6ZV90IGJsYWNrbGlzdGVkQ29kZWNMaXN0TGVuZ3RoID0gc2l6ZW9mKHRleHRFbmNvZGluZ05h
bWVCbGFja2xpc3QpIC8gc2l6ZW9mKHRleHRFbmNvZGluZ05hbWVCbGFja2xpc3RbMF0pOwotICAg
IGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgYmxhY2tsaXN0ZWRDb2RlY0xpc3RMZW5ndGg7ICsraSkg
eworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgYldURl9BUlJBWV9MRU5HVEgodGV4dEVuY29k
aW5nTmFtZUJsYWNrbGlzdCk7ICsraSkgewogICAgICAgICBjb25zdCBjaGFyKiBhdG9taWNOYW1l
ID0gdGV4dEVuY29kaW5nTmFtZU1hcC0+Z2V0KHRleHRFbmNvZGluZ05hbWVCbGFja2xpc3RbaV0p
OwogICAgICAgICBpZiAoIWF0b21pY05hbWUpCiAgICAgICAgICAgICBjb250aW51ZTsKZGlmZiAt
LWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC90cmFuc2NvZGVyL0ZvbnRUcmFuc2NvZGVyLmNw
cCBiL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC90cmFuc2NvZGVyL0ZvbnRUcmFuc2NvZGVyLmNwcApp
bmRleCA4ZTJmMzNmLi4zZThjZmFhIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL3RleHQv
dHJhbnNjb2Rlci9Gb250VHJhbnNjb2Rlci5jcHAKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0
L3RyYW5zY29kZXIvRm9udFRyYW5zY29kZXIuY3BwCkBAIC00MSwyMyArNDEsMjMgQEAgRm9udFRy
YW5zY29kZXI6OkZvbnRUcmFuc2NvZGVyKCkKIHsKICAgICBtX2NvbnZlcnRlclR5cGVzLmFkZCgi
TVMgUEdvdGhpYyIsIEJhY2tzbGFzaFRvWWVuU2lnbik7CiAgICAgVUNoYXIgdW5pY29kZU5hbWVN
U1BHb3RoaWNbXSA9IHsweEZGMkQsIDB4RkYzMywgMHgwMDIwLCAweEZGMzAsIDB4MzBCNCwgMHgz
MEI3LCAweDMwQzMsIDB4MzBBRn07Ci0gICAgbV9jb252ZXJ0ZXJUeXBlcy5hZGQoQXRvbWljU3Ry
aW5nKHVuaWNvZGVOYW1lTVNQR290aGljLCBzaXplb2YodW5pY29kZU5hbWVNU1BHb3RoaWMpIC8g
c2l6ZW9mKFVDaGFyKSksIEJhY2tzbGFzaFRvWWVuU2lnbik7CisgICAgbV9jb252ZXJ0ZXJUeXBl
cy5hZGQoQXRvbWljU3RyaW5nKHVuaWNvZGVOYW1lTVNQR290aGljLCBXVEZfQVJSQVlfTEVOR1RI
KHVuaWNvZGVOYW1lTVNQR290aGljKSksIEJhY2tzbGFzaFRvWWVuU2lnbik7CiAKICAgICBtX2Nv
bnZlcnRlclR5cGVzLmFkZCgiTVMgUE1pbmNobyIsIEJhY2tzbGFzaFRvWWVuU2lnbik7CiAgICAg
VUNoYXIgdW5pY29kZU5hbWVNU1BNaW5jaG9bXSA9IHsweEZGMkQsIDB4RkYzMywgMHgwMDIwLCAw
eEZGMzAsIDB4NjYwRSwgMHg2NzFEfTsKLSAgICBtX2NvbnZlcnRlclR5cGVzLmFkZChBdG9taWNT
dHJpbmcodW5pY29kZU5hbWVNU1BNaW5jaG8sIHNpemVvZih1bmljb2RlTmFtZU1TUE1pbmNobykg
LyBzaXplb2YoVUNoYXIpKSwgQmFja3NsYXNoVG9ZZW5TaWduKTsKKyAgICBtX2NvbnZlcnRlclR5
cGVzLmFkZChBdG9taWNTdHJpbmcodW5pY29kZU5hbWVNU1BNaW5jaG8sIFdURl9BUlJBWV9MRU5H
VEgodW5pY29kZU5hbWVNU1BNaW5jaG8pKSwgQmFja3NsYXNoVG9ZZW5TaWduKTsKIAogICAgIG1f
Y29udmVydGVyVHlwZXMuYWRkKCJNUyBHb3RoaWMiLCBCYWNrc2xhc2hUb1llblNpZ24pOwogICAg
IFVDaGFyIHVuaWNvZGVOYW1lTVNHb3RoaWNbXSA9IHsweEZGMkQsIDB4RkYzMywgMHgwMDIwLCAw
eDMwQjQsIDB4MzBCNywgMHgzMEMzLCAweDMwQUZ9OwotICAgIG1fY29udmVydGVyVHlwZXMuYWRk
KEF0b21pY1N0cmluZyh1bmljb2RlTmFtZU1TR290aGljLCBzaXplb2YodW5pY29kZU5hbWVNU0dv
dGhpYykgLyBzaXplb2YoVUNoYXIpKSwgQmFja3NsYXNoVG9ZZW5TaWduKTsKKyAgICBtX2NvbnZl
cnRlclR5cGVzLmFkZChBdG9taWNTdHJpbmcodW5pY29kZU5hbWVNU0dvdGhpYywgV1RGX0FSUkFZ
X0xFTkdUSCh1bmljb2RlTmFtZU1TR290aGljKSksIEJhY2tzbGFzaFRvWWVuU2lnbik7CiAKICAg
ICBtX2NvbnZlcnRlclR5cGVzLmFkZCgiTVMgTWluY2hvIiwgQmFja3NsYXNoVG9ZZW5TaWduKTsK
ICAgICBVQ2hhciB1bmljb2RlTmFtZU1TTWluY2hvW10gPSB7MHhGRjJELCAweEZGMzMsIDB4MDAy
MCwgMHg2NjBFLCAweDY3MUR9OwotICAgIG1fY29udmVydGVyVHlwZXMuYWRkKEF0b21pY1N0cmlu
Zyh1bmljb2RlTmFtZU1TTWluY2hvLCBzaXplb2YodW5pY29kZU5hbWVNU01pbmNobykgLyBzaXpl
b2YoVUNoYXIpKSwgQmFja3NsYXNoVG9ZZW5TaWduKTsKKyAgICBtX2NvbnZlcnRlclR5cGVzLmFk
ZChBdG9taWNTdHJpbmcodW5pY29kZU5hbWVNU01pbmNobywgV1RGX0FSUkFZX0xFTkdUSCh1bmlj
b2RlTmFtZU1TTWluY2hvKSksIEJhY2tzbGFzaFRvWWVuU2lnbik7CiAKICAgICBtX2NvbnZlcnRl
clR5cGVzLmFkZCgiTWVpcnlvIiwgQmFja3NsYXNoVG9ZZW5TaWduKTsKICAgICBVQ2hhciB1bmlj
b2RlTmFtZU1laXJ5b1tdID0gezB4MzBFMSwgMHgzMEE0LCAweDMwRUEsIDB4MzBBQX07Ci0gICAg
bV9jb252ZXJ0ZXJUeXBlcy5hZGQoQXRvbWljU3RyaW5nKHVuaWNvZGVOYW1lTWVpcnlvLCBzaXpl
b2YodW5pY29kZU5hbWVNZWlyeW8pIC8gc2l6ZW9mKFVDaGFyKSksIEJhY2tzbGFzaFRvWWVuU2ln
bik7CisgICAgbV9jb252ZXJ0ZXJUeXBlcy5hZGQoQXRvbWljU3RyaW5nKHVuaWNvZGVOYW1lTWVp
cnlvLCBXVEZfQVJSQVlfTEVOR1RIKHVuaWNvZGVOYW1lTWVpcnlvKSksIEJhY2tzbGFzaFRvWWVu
U2lnbik7CiB9CiAKIEZvbnRUcmFuc2NvZGVyOjpDb252ZXJ0ZXJUeXBlIEZvbnRUcmFuc2NvZGVy
Ojpjb252ZXJ0ZXJUeXBlKGNvbnN0IEZvbnREZXNjcmlwdGlvbiYgZm9udERlc2NyaXB0aW9uLCBj
b25zdCBUZXh0RW5jb2RpbmcqIGVuY29kaW5nKSBjb25zdAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>74504</attachid>
            <date>2010-11-21 07:07:53 -0800</date>
            <delta_ts>2010-11-21 07:12:52 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-49881.patch</filename>
            <type>text/plain</type>
            <size>22166</size>
            <attacher name="Patrick R. Gansterer">paroga</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
ZWM5YmJiNC4uZmQzNWNhNyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0NyBAQAorMjAxMC0xMS0yMSAgUGF0cmljayBHYW5z
dGVyZXIgIDxwYXJvZ2FAd2Via2l0Lm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBVc2UgV1RGX0FSUkFZX0xFTkdUSCBpbiBXZWJDb3JlL3BsYXRm
b3JtIGRpcmVjdG9yeQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9NDk4ODEKKworICAgICAgICAqIHBsYXRmb3JtL0tVUkwuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6cG9ydEFsbG93ZWQpOgorICAgICAgICAqIHBsYXRmb3JtL0tVUkxHb29nbGUuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6cG9ydEFsbG93ZWQpOgorICAgICAgICAqIHBsYXRmb3JtL01JTUVU
eXBlUmVnaXN0cnkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6aW5pdGlhbGl6ZVN1cHBvcnRlZElt
YWdlTUlNRVR5cGVzKToKKyAgICAgICAgKFdlYkNvcmU6OmluaXRpYWxpemVTdXBwb3J0ZWRKYXZh
U2NyaXB0TUlNRVR5cGVzKToKKyAgICAgICAgKFdlYkNvcmU6OmluaXRpYWxpemVTdXBwb3J0ZWRO
b25JbWFnZU1pbWVUeXBlcyk6CisgICAgICAgICogcGxhdGZvcm0vVVVJRC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpjcmVhdGVDYW5vbmljYWxVVUlEU3RyaW5nKToKKyAgICAgICAgKiBwbGF0Zm9y
bS9lZmwvUmVuZGVyVGhlbWVFZmwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWVF
Zmw6OmFwcGx5RWRqZVN0YXRlRnJvbUZvcm0pOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L0dyYXBoaWNzVHlwZXMuY3BwOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVt
L0ZvbnRDYWNoZUNocm9taXVtV2luLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZvbnRDb2RlcGFn
ZTo6aWYpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0ZvbnRVdGlsc0No
cm9taXVtV2luLmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9tYWMvQ29tcGxleFRl
eHRDb250cm9sbGVyQ29yZVRleHQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q29tcGxleFRleHRD
b250cm9sbGVyOjpjb2xsZWN0Q29tcGxleFRleHRSdW5zRm9yQ2hhcmFjdGVyc0NvcmVUZXh0KToK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9tYWMvTWVkaWFQbGF5ZXJQcml2YXRlUVRLaXQu
bW06CisgICAgICAgIChXZWJDb3JlOjpkaXNhYmxlQ29tcG9uZW50c09uY2UpOgorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL21hYy9TaW1wbGVGb250RGF0YUFUU1VJLm1tOgorICAgICAgICAo
V2ViQ29yZTo6U2ltcGxlRm9udERhdGE6OmNoZWNrU2hhcGVzQXJhYmljKToKKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy9tYWMvU2ltcGxlRm9udERhdGFDb3JlVGV4dC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpTaW1wbGVGb250RGF0YTo6Z2V0Q0ZTdHJpbmdBdHRyaWJ1dGVzKToKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy93aW4vR3JhcGhpY3NDb250ZXh0Q0dXaW4uY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0OjpkcmF3TGluZUZvclRleHRDaGVja2luZyk6
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL01lZGlhUGxheWVyUHJpdmF0ZVF1aWNr
VGltZVZpc3VhbENvbnRleHQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6ZGlzYWJsZUNvbXBvbmVu
dHNPbmNlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy93aW4vUVRNb3ZpZS5jcHA6Cisg
ICAgICAgIChRVE1vdmllOjpsb2FkKToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL2NmL1Nv
Y2tldFN0cmVhbUhhbmRsZUNGTmV0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNvY2tldFN0cmVh
bUhhbmRsZTo6Y3JlYXRlU3RyZWFtcyk6CisgICAgICAgICogcGxhdGZvcm0vdGV4dC9UZXh0RW5j
b2RpbmdSZWdpc3RyeS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpwcnVuZUJsYWNrbGlzdGVkQ29k
ZWNzKToKKyAgICAgICAgKiBwbGF0Zm9ybS90ZXh0L3RyYW5zY29kZXIvRm9udFRyYW5zY29kZXIu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6Rm9udFRyYW5zY29kZXI6OkZvbnRUcmFuc2NvZGVyKToK
KwogMjAxMC0xMS0yMCAgQW5kcmVhcyBLbGluZyAgPGtsaW5nQHdlYmtpdC5vcmc+CiAKICAgICAg
ICAgUnViYmVyLXN0YW1wZWQgYnkgQW50b25pbyBHb21lcy4KZGlmZiAtLWdpdCBhL1dlYkNvcmUv
cGxhdGZvcm0vS1VSTC5jcHAgYi9XZWJDb3JlL3BsYXRmb3JtL0tVUkwuY3BwCmluZGV4IDNhYzVk
ODYuLmNhNjNkYjcgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vS1VSTC5jcHAKKysrIGIv
V2ViQ29yZS9wbGF0Zm9ybS9LVVJMLmNwcApAQCAtMTc5Niw3ICsxNzk2LDcgQEAgYm9vbCBwb3J0
QWxsb3dlZChjb25zdCBLVVJMJiB1cmwpCiAgICAgICAgIDY2NjksIC8vIEFsdGVybmF0ZSBJUkMg
W0FwcGxlIGFkZGl0aW9uXQogICAgICAgICBpbnZhbGlkUG9ydE51bWJlciwgLy8gVXNlZCB0byBi
bG9jayBhbGwgaW52YWxpZCBwb3J0IG51bWJlcnMKICAgICB9OwotICAgIGNvbnN0IHVuc2lnbmVk
IHNob3J0KiBjb25zdCBibG9ja2VkUG9ydExpc3RFbmQgPSBibG9ja2VkUG9ydExpc3QgKyBzaXpl
b2YoYmxvY2tlZFBvcnRMaXN0KSAvIHNpemVvZihibG9ja2VkUG9ydExpc3RbMF0pOworICAgIGNv
bnN0IHVuc2lnbmVkIHNob3J0KiBjb25zdCBibG9ja2VkUG9ydExpc3RFbmQgPSBibG9ja2VkUG9y
dExpc3QgKyBBUlJBWV9MRU5HVEgoYmxvY2tlZFBvcnRMaXN0KTsKIAogI2lmbmRlZiBOREVCVUcK
ICAgICAvLyBUaGUgcG9ydCBsaXN0IG11c3QgYmUgc29ydGVkIGZvciBiaW5hcnlfc2VhcmNoIHRv
IHdvcmsuCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL0tVUkxHb29nbGUuY3BwIGIvV2Vi
Q29yZS9wbGF0Zm9ybS9LVVJMR29vZ2xlLmNwcAppbmRleCA3MjZiYzU3Li5lZmRkNDQyIDEwMDY0
NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL0tVUkxHb29nbGUuY3BwCisrKyBiL1dlYkNvcmUvcGxh
dGZvcm0vS1VSTEdvb2dsZS5jcHAKQEAgLTg5Myw3ICs4OTMsNyBAQCBib29sIHBvcnRBbGxvd2Vk
KGNvbnN0IEtVUkwmIHVybCkKICAgICAgICAgNjY2OSwgLy8gQWx0ZXJuYXRlIElSQyBbQXBwbGUg
YWRkaXRpb25dCiAgICAgICAgIGludmFsaWRQb3J0TnVtYmVyLCAvLyBVc2VkIHRvIGJsb2NrIGFs
bCBpbnZhbGlkIHBvcnQgbnVtYmVycwogICAgIH07Ci0gICAgY29uc3QgdW5zaWduZWQgc2hvcnQq
IGNvbnN0IGJsb2NrZWRQb3J0TGlzdEVuZCA9IGJsb2NrZWRQb3J0TGlzdCArIHNpemVvZihibG9j
a2VkUG9ydExpc3QpIC8gc2l6ZW9mKGJsb2NrZWRQb3J0TGlzdFswXSk7CisgICAgY29uc3QgdW5z
aWduZWQgc2hvcnQqIGNvbnN0IGJsb2NrZWRQb3J0TGlzdEVuZCA9IGJsb2NrZWRQb3J0TGlzdCAr
IEFSUkFZX0xFTkdUSChibG9ja2VkUG9ydExpc3QpOwogCiAjaWZuZGVmIE5ERUJVRwogICAgIC8v
IFRoZSBwb3J0IGxpc3QgbXVzdCBiZSBzb3J0ZWQgZm9yIGJpbmFyeV9zZWFyY2ggdG8gd29yay4K
ZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vTUlNRVR5cGVSZWdpc3RyeS5jcHAgYi9XZWJD
b3JlL3BsYXRmb3JtL01JTUVUeXBlUmVnaXN0cnkuY3BwCmluZGV4IGMxNTJhMzYuLjk5NDdiZmUg
MTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vTUlNRVR5cGVSZWdpc3RyeS5jcHAKKysrIGIv
V2ViQ29yZS9wbGF0Zm9ybS9NSU1FVHlwZVJlZ2lzdHJ5LmNwcApAQCAtMTE5LDcgKzExOSw3IEBA
IHN0YXRpYyB2b2lkIGluaXRpYWxpemVTdXBwb3J0ZWRJbWFnZU1JTUVUeXBlcygpCiAgICAgICAg
ICJpbWFnZS94LWljb24iLCAgICAvLyBpY28KICAgICAgICAgImltYWdlL3gteGJpdG1hcCIgIC8v
IHhibQogICAgIH07Ci0gICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBzaXplb2YodHlwZXMpIC8g
c2l6ZW9mKHR5cGVzWzBdKTsgKytpKSB7CisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBBUlJB
WV9MRU5HVEgodHlwZXMpOyArK2kpIHsKICAgICAgICAgc3VwcG9ydGVkSW1hZ2VNSU1FVHlwZXMt
PmFkZCh0eXBlc1tpXSk7CiAgICAgICAgIHN1cHBvcnRlZEltYWdlUmVzb3VyY2VNSU1FVHlwZXMt
PmFkZCh0eXBlc1tpXSk7CiAgICAgfQpAQCAtMTg3LDcgKzE4Nyw3IEBAIHN0YXRpYyB2b2lkIGlu
aXRpYWxpemVTdXBwb3J0ZWRKYXZhU2NyaXB0TUlNRVR5cGVzKCkKICAgICAgICAgInRleHQvanNj
cmlwdCIsCiAgICAgICAgICJ0ZXh0L2xpdmVzY3JpcHQiLAogICAgIH07Ci0gICAgZm9yIChzaXpl
X3QgaSA9IDA7IGkgPCBzaXplb2YodHlwZXMpIC8gc2l6ZW9mKHR5cGVzWzBdKTsgKytpKQorICAg
IGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgQVJSQVlfTEVOR1RIKHR5cGVzKTsgKytpKQogICAgICAg
c3VwcG9ydGVkSmF2YVNjcmlwdE1JTUVUeXBlcy0+YWRkKHR5cGVzW2ldKTsKIH0KIApAQCAtMjIy
LDcgKzIyMiw3IEBAIHN0YXRpYyB2b2lkIGluaXRpYWxpemVTdXBwb3J0ZWROb25JbWFnZU1pbWVU
eXBlcygpCiAgICAgQ09NUElMRV9BU1NFUlQoc2l6ZW9mKHR5cGVzKSAvIHNpemVvZih0eXBlc1sw
XSkgPD0gMTYsCiAgICAgICAgICAgICAgICAgICAgbm9uaW1hZ2VfbWltZV90eXBlc19tdXN0X2Jl
X2xlc3NfdGhhbl9vcl9lcXVhbF90b18xNik7CiAKLSAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8
IHNpemVvZih0eXBlcykvc2l6ZW9mKHR5cGVzWzBdKTsgKytpKQorICAgIGZvciAoc2l6ZV90IGkg
PSAwOyBpIDwgQVJSQVlfTEVOR1RIKHR5cGVzKTsgKytpKQogICAgICAgICBzdXBwb3J0ZWROb25J
bWFnZU1JTUVUeXBlcy0+YWRkKHR5cGVzW2ldKTsKIAogICAgIEFyY2hpdmVGYWN0b3J5OjpyZWdp
c3Rlcktub3duQXJjaGl2ZU1JTUVUeXBlcygpOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9y
bS9VVUlELmNwcCBiL1dlYkNvcmUvcGxhdGZvcm0vVVVJRC5jcHAKaW5kZXggZWI3MjFlMC4uYTAw
MmM4YiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9VVUlELmNwcAorKysgYi9XZWJDb3Jl
L3BsYXRmb3JtL1VVSUQuY3BwCkBAIC05NSw3ICs5NSw3IEBAIFN0cmluZyBjcmVhdGVDYW5vbmlj
YWxVVUlEU3RyaW5nKCkKICAgICByZXR1cm4gY2Fub25pY2FsVXVpZFN0cjsKICNlbGlmIE9TKExJ
TlVYKSAmJiBQTEFURk9STShDSFJPTUlVTSkKICAgICB1bnNpZ25lZCByYW5kb21EYXRhWzRdOwot
ICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgc2l6ZW9mKHJhbmRvbURhdGEpIC8gc2l6ZW9mKHJh
bmRvbURhdGFbMF0pOyArK2kpCisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBBUlJBWV9MRU5H
VEgocmFuZG9tRGF0YSk7ICsraSkKICAgICAgICAgcmFuZG9tRGF0YVtpXSA9IHN0YXRpY19jYXN0
PHVuc2lnbmVkPihyYW5kb21OdW1iZXIoKSAqIChzdGQ6Om51bWVyaWNfbGltaXRzPHVuc2lnbmVk
Pjo6bWF4KCkgKyAxLjApKTsKIAogICAgIC8vIEZvcm1hdCBhcyBWZXJzaW9uIDQgVVVJRC4KZGlm
ZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vZWZsL1JlbmRlclRoZW1lRWZsLmNwcCBiL1dlYkNv
cmUvcGxhdGZvcm0vZWZsL1JlbmRlclRoZW1lRWZsLmNwcAppbmRleCA2MDc2NzQ3Li5lMDhlYzk2
IDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL2VmbC9SZW5kZXJUaGVtZUVmbC5jcHAKKysr
IGIvV2ViQ29yZS9wbGF0Zm9ybS9lZmwvUmVuZGVyVGhlbWVFZmwuY3BwCkBAIC0yNDcsMTEgKzI0
NywxMCBAQCB2b2lkIFJlbmRlclRoZW1lRWZsOjphcHBseUVkamVTdGF0ZUZyb21Gb3JtKEV2YXNf
T2JqZWN0KiBvLCBDb250cm9sU3RhdGVzIHN0YXRlcwogICAgICAgICAid2luZG93LWluYWN0aXZl
IiwKICAgICAgICAgImluZGV0ZXJtaW5hdGUiCiAgICAgfTsKLSAgICBzaXplX3QgaSwgbGFzdCA9
IHNpemVvZihzaWduYWxzKSAvIHNpemVvZihzaWduYWxzWzBdKTsKIAogICAgIGVkamVfb2JqZWN0
X3NpZ25hbF9lbWl0KG8sICJyZXNldCIsICIiKTsKIAotICAgIGZvciAoaSA9IDA7IGkgPCBsYXN0
OyBpKyspIHsKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IEFSUkFZX0xFTkdUSChzaWduYWxz
KTsgKytpKSB7CiAgICAgICAgIGlmIChzdGF0ZXMgJiAoMSA8PCBpKSkKICAgICAgICAgICAgIGVk
amVfb2JqZWN0X3NpZ25hbF9lbWl0KG8sIHNpZ25hbHNbaV0sICIiKTsKICAgICB9CmRpZmYgLS1n
aXQgYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzVHlwZXMuY3BwIGIvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc1R5cGVzLmNwcAppbmRleCA3NjFiZjQwLi4wNGJl
NzA2IDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzVHlwZXMu
Y3BwCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NUeXBlcy5jcHAKQEAg
LTQ3LDcgKzQ3LDcgQEAgc3RhdGljIGNvbnN0IGNoYXIqIGNvbnN0IGNvbXBvc2l0ZU9wZXJhdG9y
TmFtZXNbXSA9IHsKICAgICAiaGlnaGxpZ2h0IiwKICAgICAibGlnaHRlciIKIH07Ci1jb25zdCBp
bnQgbnVtQ29tcG9zaXRlT3BlcmF0b3JOYW1lcyA9IHNpemVvZihjb21wb3NpdGVPcGVyYXRvck5h
bWVzKSAvIHNpemVvZihjb21wb3NpdGVPcGVyYXRvck5hbWVzWzBdKTsKK2NvbnN0IGludCBudW1D
b21wb3NpdGVPcGVyYXRvck5hbWVzID0gQVJSQVlfTEVOR1RIKGNvbXBvc2l0ZU9wZXJhdG9yTmFt
ZXMpOwogCiBib29sIHBhcnNlQ29tcG9zaXRlT3BlcmF0b3IoY29uc3QgU3RyaW5nJiBzLCBDb21w
b3NpdGVPcGVyYXRvciYgb3ApCiB7CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2Nocm9taXVtL0ZvbnRDYWNoZUNocm9taXVtV2luLmNwcCBiL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY2hyb21pdW0vRm9udENhY2hlQ2hyb21pdW1XaW4uY3BwCmluZGV4IDM4NGIxYzUu
LjBhMzczYWYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0v
Rm9udENhY2hlQ2hyb21pdW1XaW4uY3BwCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2hyb21pdW0vRm9udENhY2hlQ2hyb21pdW1XaW4uY3BwCkBAIC0yMTEsOSArMjExLDggQEAgc3Rh
dGljIGJvb2wgTG9va3VwQWx0TmFtZShjb25zdCBTdHJpbmcmIG5hbWUsIFN0cmluZyYgYWx0TmFt
ZSkKICAgICBzdGF0aWMgTmFtZU1hcCogZm9udE5hbWVNYXAgPSAwOwogCiAgICAgaWYgKCFmb250
TmFtZU1hcCkgewotICAgICAgICBzaXplX3QgbnVtRWxlbWVudHMgPSBzaXplb2YobmFtZVBhaXJz
KSAvIHNpemVvZihOYW1lUGFpcik7CiAgICAgICAgIGZvbnROYW1lTWFwID0gbmV3IE5hbWVNYXA7
Ci0gICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbnVtRWxlbWVudHM7ICsraSkKKyAgICAg
ICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBBUlJBWV9MRU5HVEgobmFtZVBhaXJzKTsgKytpKQog
ICAgICAgICAgICAgZm9udE5hbWVNYXAtPnNldChTdHJpbmcobmFtZVBhaXJzW2ldLm5hbWUpLCAm
KG5hbWVQYWlyc1tpXS5hbHROYW1lQ29kZXBhZ2UpKTsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vRm9udFV0aWxzQ2hyb21pdW1XaW4uY3Bw
IGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9Gb250VXRpbHNDaHJvbWl1bVdp
bi5jcHAKaW5kZXggZTcyNWM1MC4uNmVjODM0MiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jaHJvbWl1bS9Gb250VXRpbHNDaHJvbWl1bVdpbi5jcHAKKysrIGIvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9Gb250VXRpbHNDaHJvbWl1bVdpbi5jcHAKQEAg
LTE1MCwxNCArMTUwLDE0IEBAIHZvaWQgaW5pdGlhbGl6ZVNjcmlwdEZvbnRNYXAoU2NyaXB0VG9G
b250TWFwJiBzY3JpcHRGb250TWFwKQogICAgICAgICB7VVNDUklQVF9NWUFOTUFSLCBteWFubWFy
Rm9udHN9LAogICAgIH07CiAKLSAgICBmb3IgKGludCBpID0gMDsgaSA8IHNpemVvZihmb250TWFw
KSAvIHNpemVvZihmb250TWFwWzBdKTsgKytpKQorICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwg
QVJSQVlfTEVOR1RIKGZvbnRNYXApOyArK2kpCiAgICAgICAgIHNjcmlwdEZvbnRNYXBbZm9udE1h
cFtpXS5zY3JpcHRdID0gZm9udE1hcFtpXS5mYW1pbHk7CiAKICAgICAvLyBGSVhNRTogSW5zdGVh
ZCBvZiBzY2FubmluZyB0aGUgaGFyZC1jb2RlZCBsaXN0LCB3ZSBoYXZlIHRvIAogICAgIC8vIHVz
ZSBFbnVtRm9udCogdG8gJ2luc3BlY3QnIGZvbnRzIHRvIHBpY2sgdXAgZm9udHMgY292ZXJpbmcg
c2NyaXB0cwogICAgIC8vIHdoZW4gaXQncyBwb3NzaWJsZSAoZS5nLiB1c2luZyBPUy8yIHRhYmxl
KS4gSWYgd2UgZG8gdGhhdCwgdGhpcyAKICAgICAvLyBoYWQgYmV0dGVyIGJlIHB1bGxlZCBvdXQg
b2YgaGVyZS4KLSAgICBmb3IgKGludCBpID0gMDsgaSA8IHNpemVvZihzY3JpcHRUb0ZvbnRGYW1p
bGllcykgLyBzaXplb2Yoc2NyaXB0VG9Gb250RmFtaWxpZXNbMF0pOyArK2kpIHsKKyAgICBmb3Ig
KHNpemVfdCBpID0gMDsgaSA8IEFSUkFZX0xFTkdUSChzY3JpcHRUb0ZvbnRGYW1pbGllcyk7ICsr
aSkgewogICAgICAgICBVU2NyaXB0Q29kZSBzY3JpcHQgPSBzY3JpcHRUb0ZvbnRGYW1pbGllc1tp
XS5zY3JpcHQ7CiAgICAgICAgIHNjcmlwdEZvbnRNYXBbc2NyaXB0XSA9IDA7CiAgICAgICAgIGNv
bnN0IFVDaGFyKiogZmFtaWx5UHRyID0gc2NyaXB0VG9Gb250RmFtaWxpZXNbaV0uZmFtaWxpZXM7
CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9Db21wbGV4VGV4dENv
bnRyb2xsZXJDb3JlVGV4dC5jcHAgYi9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9Db21w
bGV4VGV4dENvbnRyb2xsZXJDb3JlVGV4dC5jcHAKaW5kZXggY2JiNzYxMC4uNTgxMTRhNyAxMDA2
NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvQ29tcGxleFRleHRDb250cm9s
bGVyQ29yZVRleHQuY3BwCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0NvbXBs
ZXhUZXh0Q29udHJvbGxlckNvcmVUZXh0LmNwcApAQCAtMTM4LDggKzEzOCw4IEBAIHZvaWQgQ29t
cGxleFRleHRDb250cm9sbGVyOjpjb2xsZWN0Q29tcGxleFRleHRSdW5zRm9yQ2hhcmFjdGVyc0Nv
cmVUZXh0KGNvbnN0IFVDCiAgICAgICAgIGNvbnN0IHNob3J0IHJ0bEZvcmNlZEVtYmVkZGluZ0xl
dmVsVmFsdWUgPSAxOwogICAgICAgICBzdGF0aWMgY29uc3Qgdm9pZCogbHRyT3B0aW9uVmFsdWVz
W10gPSB7IENGTnVtYmVyQ3JlYXRlKGtDRkFsbG9jYXRvckRlZmF1bHQsIGtDRk51bWJlclNob3J0
VHlwZSwgJmx0ckZvcmNlZEVtYmVkZGluZ0xldmVsVmFsdWUpIH07CiAgICAgICAgIHN0YXRpYyBj
b25zdCB2b2lkKiBydGxPcHRpb25WYWx1ZXNbXSA9IHsgQ0ZOdW1iZXJDcmVhdGUoa0NGQWxsb2Nh
dG9yRGVmYXVsdCwga0NGTnVtYmVyU2hvcnRUeXBlLCAmcnRsRm9yY2VkRW1iZWRkaW5nTGV2ZWxW
YWx1ZSkgfTsKLSAgICAgICAgc3RhdGljIENGRGljdGlvbmFyeVJlZiBsdHJUeXBlc2V0dGVyT3B0
aW9ucyA9IENGRGljdGlvbmFyeUNyZWF0ZShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBvcHRpb25LZXlz
LCBsdHJPcHRpb25WYWx1ZXMsIHNpemVvZihvcHRpb25LZXlzKSAvIHNpemVvZigqb3B0aW9uS2V5
cyksICZrQ0ZDb3B5U3RyaW5nRGljdGlvbmFyeUtleUNhbGxCYWNrcywgJmtDRlR5cGVEaWN0aW9u
YXJ5VmFsdWVDYWxsQmFja3MpOwotICAgICAgICBzdGF0aWMgQ0ZEaWN0aW9uYXJ5UmVmIHJ0bFR5
cGVzZXR0ZXJPcHRpb25zID0gQ0ZEaWN0aW9uYXJ5Q3JlYXRlKGtDRkFsbG9jYXRvckRlZmF1bHQs
IG9wdGlvbktleXMsIHJ0bE9wdGlvblZhbHVlcywgc2l6ZW9mKG9wdGlvbktleXMpIC8gc2l6ZW9m
KCpvcHRpb25LZXlzKSwgJmtDRkNvcHlTdHJpbmdEaWN0aW9uYXJ5S2V5Q2FsbEJhY2tzLCAma0NG
VHlwZURpY3Rpb25hcnlWYWx1ZUNhbGxCYWNrcyk7CisgICAgICAgIHN0YXRpYyBDRkRpY3Rpb25h
cnlSZWYgbHRyVHlwZXNldHRlck9wdGlvbnMgPSBDRkRpY3Rpb25hcnlDcmVhdGUoa0NGQWxsb2Nh
dG9yRGVmYXVsdCwgb3B0aW9uS2V5cywgbHRyT3B0aW9uVmFsdWVzLCBBUlJBWV9MRU5HVEgob3B0
aW9uS2V5cyksICZrQ0ZDb3B5U3RyaW5nRGljdGlvbmFyeUtleUNhbGxCYWNrcywgJmtDRlR5cGVE
aWN0aW9uYXJ5VmFsdWVDYWxsQmFja3MpOworICAgICAgICBzdGF0aWMgQ0ZEaWN0aW9uYXJ5UmVm
IHJ0bFR5cGVzZXR0ZXJPcHRpb25zID0gQ0ZEaWN0aW9uYXJ5Q3JlYXRlKGtDRkFsbG9jYXRvckRl
ZmF1bHQsIG9wdGlvbktleXMsIHJ0bE9wdGlvblZhbHVlcywgQVJSQVlfTEVOR1RIKG9wdGlvbktl
eXMpLCAma0NGQ29weVN0cmluZ0RpY3Rpb25hcnlLZXlDYWxsQmFja3MsICZrQ0ZUeXBlRGljdGlv
bmFyeVZhbHVlQ2FsbEJhY2tzKTsKIAogI2lmICFkZWZpbmVkKEJVSUxESU5HX09OX1RJR0VSKSAm
JiAhZGVmaW5lZChCVUlMRElOR19PTl9MRU9QQVJEKSAmJiAhZGVmaW5lZChCVUlMRElOR19PTl9T
Tk9XX0xFT1BBUkQpCiAgICAgICAgIFByb3ZpZGVySW5mbyBpbmZvID0geyBjcCwgbGVuZ3RoLCBm
b250RGF0YS0+Z2V0Q0ZTdHJpbmdBdHRyaWJ1dGVzKG1fZm9udC50eXBlc2V0dGluZ0ZlYXR1cmVz
KCkpIH07CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9NZWRpYVBs
YXllclByaXZhdGVRVEtpdC5tbSBiL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL01lZGlh
UGxheWVyUHJpdmF0ZVFUS2l0Lm1tCmluZGV4IDZkYTBkYTEuLmYyZmI1YjMgMTAwNjQ0Ci0tLSBh
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL01lZGlhUGxheWVyUHJpdmF0ZVFUS2l0Lm1t
CisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL01lZGlhUGxheWVyUHJpdmF0ZVFU
S2l0Lm1tCkBAIC0zMTYsNyArMzE2LDcgQEAgc3RhdGljIHZvaWQgZGlzYWJsZUNvbXBvbmVudHNP
bmNlKCkKICAgICAgICAgeydpbWRjJywgJ3BkZiAnLCAnYXBwbCcsIDAsIDB9LCAgCiAgICAgfTsK
IAotICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgc2l6ZW9mKGNvbXBvbmVudHNUb0Rpc2FibGUp
L3NpemVvZihjb21wb25lbnRzVG9EaXNhYmxlWzBdKTsgKytpKSAKKyAgICBmb3IgKHNpemVfdCBp
ID0gMDsgaSA8IEFSUkFZX0xFTkdUSChjb21wb25lbnRzVG9EaXNhYmxlKTsgKytpKSAKICAgICAg
ICAgd2tRVE1vdmllRGlzYWJsZUNvbXBvbmVudChjb21wb25lbnRzVG9EaXNhYmxlW2ldKTsKIH0K
IApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvU2ltcGxlRm9udERh
dGFBVFNVSS5tbSBiL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL1NpbXBsZUZvbnREYXRh
QVRTVUkubW0KaW5kZXggYmVlYTAxOC4uNmJmNGQ2ZCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9tYWMvU2ltcGxlRm9udERhdGFBVFNVSS5tbQorKysgYi9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL21hYy9TaW1wbGVGb250RGF0YUFUU1VJLm1tCkBAIC01OSw3ICs1OSw3
IEBAIHZvaWQgU2ltcGxlRm9udERhdGE6OmNoZWNrU2hhcGVzQXJhYmljKCkgY29uc3QKICAgICAv
LyBoZXVyaXN0aWMgaXMgdGhhdCBpZiBzdWNoIGEgZm9udCBoYXMgYSBnbHlwaCBtZXRhbW9ycGhv
c2lzIHRhYmxlLCB0aGVuCiAgICAgLy8gaXQgaW5jbHVkZXMgc2hhcGluZyBpbmZvcm1hdGlvbiBm
b3IgQXJhYmljLgogICAgIEZvdXJDaGFyQ29kZSB0YWJsZXNbXSA9IHsgJ21vcngnLCAnbW9ydCcg
fTsKLSAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgc2l6ZW9mKHRhYmxlcykgLyBzaXplb2Yo
dGFibGVzWzBdKTsgKytpKSB7CisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBBUlJBWV9MRU5H
VEgodGFibGVzKTsgKytpKSB7CiAgICAgICAgIEJ5dGVDb3VudCB0YWJsZVNpemU7CiAgICAgICAg
IE9TU3RhdHVzIHN0YXR1cyA9IEFUU0ZvbnRHZXRUYWJsZShmb250SUQsIHRhYmxlc1tpXSwgMCwg
MCwgMCwgJnRhYmxlU2l6ZSk7CiAgICAgICAgIGlmIChzdGF0dXMgPT0gbm9FcnIpIHsKZGlmZiAt
LWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL1NpbXBsZUZvbnREYXRhQ29yZVRl
eHQuY3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvU2ltcGxlRm9udERhdGFDb3Jl
VGV4dC5jcHAKaW5kZXggZGI2ZGU0OS4uNjA4YmNhNiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9tYWMvU2ltcGxlRm9udERhdGFDb3JlVGV4dC5jcHAKKysrIGIvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvU2ltcGxlRm9udERhdGFDb3JlVGV4dC5jcHAKQEAgLTYy
LDE1ICs2MiwxMyBAQCBDRkRpY3Rpb25hcnlSZWYgU2ltcGxlRm9udERhdGE6OmdldENGU3RyaW5n
QXR0cmlidXRlcyhUeXBlc2V0dGluZ0ZlYXR1cmVzIHR5cGVzZQogICAgICAgICBjb25zdCB2b2lk
KiB2YWx1ZXNXaXRoS2VybmluZ0Rpc2FibGVkW10gPSB7IHBsYXRmb3JtRGF0YSgpLmN0Rm9udCgp
LCBrZXJuaW5nQWRqdXN0bWVudCwgYWxsb3dMaWdhdHVyZXMKICAgICAgICAgICAgID8gbGlnYXR1
cmVzQWxsb3dlZCA6IGxpZ2F0dXJlc05vdEFsbG93ZWQsIG9yaWVudGF0aW9uKCkgPT0gVmVydGlj
YWwgPyBrQ0ZCb29sZWFuVHJ1ZSA6IGtDRkJvb2xlYW5GYWxzZSB9OwogICAgICAgICBhdHRyaWJ1
dGVzRGljdGlvbmFyeS5hZG9wdENGKENGRGljdGlvbmFyeUNyZWF0ZSgwLCBrZXlzV2l0aEtlcm5p
bmdEaXNhYmxlZCwgdmFsdWVzV2l0aEtlcm5pbmdEaXNhYmxlZCwKLSAgICAgICAgICAgIHNpemVv
ZihrZXlzV2l0aEtlcm5pbmdEaXNhYmxlZCkgLyBzaXplb2YoKmtleXNXaXRoS2VybmluZ0Rpc2Fi
bGVkKSwKLSAgICAgICAgICAgICZrQ0ZDb3B5U3RyaW5nRGljdGlvbmFyeUtleUNhbGxCYWNrcywg
JmtDRlR5cGVEaWN0aW9uYXJ5VmFsdWVDYWxsQmFja3MpKTsKKyAgICAgICAgICAgIEFSUkFZX0xF
TkdUSChrZXlzV2l0aEtlcm5pbmdEaXNhYmxlZCksICZrQ0ZDb3B5U3RyaW5nRGljdGlvbmFyeUtl
eUNhbGxCYWNrcywgJmtDRlR5cGVEaWN0aW9uYXJ5VmFsdWVDYWxsQmFja3MpKTsKICAgICB9IGVs
c2UgewogICAgICAgICAvLyBCeSBvbWl0dGluZyB0aGUga0NUS2VybkF0dHJpYnV0ZU5hbWUgYXR0
cmlidXRlLCB3ZSBnZXQgQ29yZSBUZXh0J3Mgc3RhbmRhcmQga2VybmluZy4KICAgICAgICAgc3Rh
dGljIGNvbnN0IHZvaWQqIGtleXNXaXRoS2VybmluZ0VuYWJsZWRbXSA9IHsga0NURm9udEF0dHJp
YnV0ZU5hbWUsIGtDVExpZ2F0dXJlQXR0cmlidXRlTmFtZSwga0NUVmVydGljYWxGb3Jtc0F0dHJp
YnV0ZU5hbWUgfTsKICAgICAgICAgY29uc3Qgdm9pZCogdmFsdWVzV2l0aEtlcm5pbmdFbmFibGVk
W10gPSB7IHBsYXRmb3JtRGF0YSgpLmN0Rm9udCgpLCBhbGxvd0xpZ2F0dXJlcyA/IGxpZ2F0dXJl
c0FsbG93ZWQgOiBsaWdhdHVyZXNOb3RBbGxvd2VkLCBvcmllbnRhdGlvbigpID09IFZlcnRpY2Fs
ID8ga0NGQm9vbGVhblRydWUgOiBrQ0ZCb29sZWFuRmFsc2UgfTsKICAgICAgICAgYXR0cmlidXRl
c0RpY3Rpb25hcnkuYWRvcHRDRihDRkRpY3Rpb25hcnlDcmVhdGUoMCwga2V5c1dpdGhLZXJuaW5n
RW5hYmxlZCwgdmFsdWVzV2l0aEtlcm5pbmdFbmFibGVkLAotICAgICAgICAgICAgc2l6ZW9mKGtl
eXNXaXRoS2VybmluZ0VuYWJsZWQpIC8gc2l6ZW9mKCprZXlzV2l0aEtlcm5pbmdFbmFibGVkKSwK
LSAgICAgICAgICAgICZrQ0ZDb3B5U3RyaW5nRGljdGlvbmFyeUtleUNhbGxCYWNrcywgJmtDRlR5
cGVEaWN0aW9uYXJ5VmFsdWVDYWxsQmFja3MpKTsKKyAgICAgICAgICAgIEFSUkFZX0xFTkdUSChr
ZXlzV2l0aEtlcm5pbmdFbmFibGVkKSwgJmtDRkNvcHlTdHJpbmdEaWN0aW9uYXJ5S2V5Q2FsbEJh
Y2tzLCAma0NGVHlwZURpY3Rpb25hcnlWYWx1ZUNhbGxCYWNrcykpOwogICAgIH0KIAogICAgIHJl
dHVybiBhdHRyaWJ1dGVzRGljdGlvbmFyeS5nZXQoKTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3Mvd2luL0dyYXBoaWNzQ29udGV4dENHV2luLmNwcCBiL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3Mvd2luL0dyYXBoaWNzQ29udGV4dENHV2luLmNwcAppbmRleCBjOTI4OGU1
Li4zYzdiZTc1IDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9HcmFw
aGljc0NvbnRleHRDR1dpbi5jcHAKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4v
R3JhcGhpY3NDb250ZXh0Q0dXaW4uY3BwCkBAIC0yMjgsMjAgKzIyOCwxNyBAQCB2b2lkIEdyYXBo
aWNzQ29udGV4dDo6ZHJhd0xpbmVGb3JUZXh0Q2hlY2tpbmcoY29uc3QgSW50UG9pbnQmIHBvaW50
LCBpbnQgd2lkdGgsCiAgICAgY29uc3QgZmxvYXQgbG93ZXJPcGFjaXR5ID0gMC44OGY7CiAKICAg
ICAvL1RvcCBsaW5lCi0gICAgQ0dDb250ZXh0U2V0TGluZURhc2goY29udGV4dCwgZWRnZV9vZmZz
ZXQsIGVkZ2VfZGFzaF9sZW5ndGhzLCAKLSAgICAgICAgICAgICAgICAgICAgICAgICBzaXplb2Yo
ZWRnZV9kYXNoX2xlbmd0aHMpIC8gc2l6ZW9mKGVkZ2VfZGFzaF9sZW5ndGhzWzBdKSk7CisgICAg
Q0dDb250ZXh0U2V0TGluZURhc2goY29udGV4dCwgZWRnZV9vZmZzZXQsIGVkZ2VfZGFzaF9sZW5n
dGhzLCBBUlJBWV9MRU5HVEgoZWRnZV9kYXNoX2xlbmd0aHMpKTsKICAgICBDR0NvbnRleHRTZXRB
bHBoYShjb250ZXh0LCB1cHBlck9wYWNpdHkpOwogICAgIENHQ29udGV4dFN0cm9rZUxpbmVTZWdt
ZW50cyhjb250ZXh0LCB1cHBlclBvaW50cywgMik7CiAgCiAgICAgLy8gTWlkZGxlIGxpbmUKLSAg
ICBDR0NvbnRleHRTZXRMaW5lRGFzaChjb250ZXh0LCBtaWRkbGVfb2Zmc2V0LCBtaWRkbGVfZGFz
aF9sZW5ndGhzLCAKLSAgICAgICAgICAgICAgICAgICAgICAgICBzaXplb2YobWlkZGxlX2Rhc2hf
bGVuZ3RocykgLyBzaXplb2YobWlkZGxlX2Rhc2hfbGVuZ3Roc1swXSkpOworICAgIENHQ29udGV4
dFNldExpbmVEYXNoKGNvbnRleHQsIG1pZGRsZV9vZmZzZXQsIG1pZGRsZV9kYXNoX2xlbmd0aHMs
IEFSUkFZX0xFTkdUSChtaWRkbGVfZGFzaF9sZW5ndGhzKSk7CiAgICAgQ0dDb250ZXh0U2V0QWxw
aGEoY29udGV4dCwgbWlkZGxlT3BhY2l0eSk7CiAgICAgQ0dDb250ZXh0U3Ryb2tlTGluZVNlZ21l
bnRzKGNvbnRleHQsIG1pZGRsZVBvaW50cywgMik7CiAgICAgCiAgICAgLy8gQm90dG9tIGxpbmUK
LSAgICBDR0NvbnRleHRTZXRMaW5lRGFzaChjb250ZXh0LCBlZGdlX29mZnNldCwgZWRnZV9kYXNo
X2xlbmd0aHMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZW9mKGVkZ2VfZGFzaF9sZW5n
dGhzKSAvIHNpemVvZihlZGdlX2Rhc2hfbGVuZ3Roc1swXSkpOworICAgIENHQ29udGV4dFNldExp
bmVEYXNoKGNvbnRleHQsIGVkZ2Vfb2Zmc2V0LCBlZGdlX2Rhc2hfbGVuZ3RocywgQVJSQVlfTEVO
R1RIKGVkZ2VfZGFzaF9sZW5ndGhzKSk7CiAgICAgQ0dDb250ZXh0U2V0QWxwaGEoY29udGV4dCwg
bG93ZXJPcGFjaXR5KTsKICAgICBDR0NvbnRleHRTdHJva2VMaW5lU2VnbWVudHMoY29udGV4dCwg
bG93ZXJQb2ludHMsIDIpOwogCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L3dpbi9NZWRpYVBsYXllclByaXZhdGVRdWlja1RpbWVWaXN1YWxDb250ZXh0LmNwcCBiL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL01lZGlhUGxheWVyUHJpdmF0ZVF1aWNrVGltZVZpc3Vh
bENvbnRleHQuY3BwCmluZGV4IDhlYWYyYTkuLjg2NGI0MGIgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3Mvd2luL01lZGlhUGxheWVyUHJpdmF0ZVF1aWNrVGltZVZpc3VhbENv
bnRleHQuY3BwCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL01lZGlhUGxheWVy
UHJpdmF0ZVF1aWNrVGltZVZpc3VhbENvbnRleHQuY3BwCkBAIC0zMTYsNyArMzE2LDcgQEAgc3Rh
dGljIHZvaWQgZGlzYWJsZUNvbXBvbmVudHNPbmNlKCkKICAgICAgICAgeydlYXQgJywgJ1RFWFQn
LCAndHgzZycsIDAsIDB9LCAgCiAgICAgfTsKIAotICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwg
c2l6ZW9mKGNvbXBvbmVudHNUb0Rpc2FibGUpIC8gc2l6ZW9mKGNvbXBvbmVudHNUb0Rpc2FibGVb
MF0pOyArK2kpIAorICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgQVJSQVlfTEVOR1RIKGNvbXBv
bmVudHNUb0Rpc2FibGUpOyArK2kpIAogICAgICAgICBRVE1vdmllOjpkaXNhYmxlQ29tcG9uZW50
KGNvbXBvbmVudHNUb0Rpc2FibGVbaV0pOwogfQogCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL3dpbi9RVE1vdmllLmNwcCBiL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
d2luL1FUTW92aWUuY3BwCmluZGV4IGU0MjViZjguLjk2MjFkOGQgMTAwNjQ0Ci0tLSBhL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL1FUTW92aWUuY3BwCisrKyBiL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3Mvd2luL1FUTW92aWUuY3BwCkBAIC01NDgsNyArNTQ4LDcgQEAgdm9pZCBRVE1v
dmllOjpsb2FkKENGVVJMUmVmIHVybCwgYm9vbCBwcmVzZXJ2ZXNQaXRjaCkKICAgICBtb3ZpZVBy
b3BzW21vdmllUHJvcENvdW50XS5wcm9wU3RhdHVzID0gMDsgCiAgICAgbW92aWVQcm9wQ291bnQr
KzsgCiAKLSAgICBBU1NFUlQobW92aWVQcm9wQ291bnQgPD0gc2l6ZW9mKG1vdmllUHJvcHMpIC8g
c2l6ZW9mKG1vdmllUHJvcHNbMF0pKTsKKyAgICBBU1NFUlQobW92aWVQcm9wQ291bnQgPD0gQVJS
QVlfTEVOR1RIKG1vdmllUHJvcHMpKTsKICAgICBtX3ByaXZhdGUtPm1fbG9hZEVycm9yID0gTmV3
TW92aWVGcm9tUHJvcGVydGllcyhtb3ZpZVByb3BDb3VudCwgbW92aWVQcm9wcywgMCwgMCwgJm1f
cHJpdmF0ZS0+bV9tb3ZpZSk7CiAKIGVuZDoKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0v
bmV0d29yay9jZi9Tb2NrZXRTdHJlYW1IYW5kbGVDRk5ldC5jcHAgYi9XZWJDb3JlL3BsYXRmb3Jt
L25ldHdvcmsvY2YvU29ja2V0U3RyZWFtSGFuZGxlQ0ZOZXQuY3BwCmluZGV4IDgwMDMwMWEuLjRl
YmMxZDkgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9Tb2NrZXRTdHJl
YW1IYW5kbGVDRk5ldC5jcHAKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL1NvY2tl
dFN0cmVhbUhhbmRsZUNGTmV0LmNwcApAQCAtMzMyLDcgKzMzMiw3IEBAIHZvaWQgU29ja2V0U3Ry
ZWFtSGFuZGxlOjpjcmVhdGVTdHJlYW1zKCkKICAgICAgICAgLy8gQnV0IFNPQ0tTNSBjcmVkZW50
aWFscyBkb24ndCB3b3JrIGF0IHRoZSB0aW1lIG9mIHRoaXMgd3JpdGluZyBhbnl3YXksIHNlZSA8
cmRhcjovLzY3NzY2OTg+LgogICAgICAgICBjb25zdCB2b2lkKiBwcm94eUtleXNbXSA9IHsga0NG
U3RyZWFtUHJvcGVydHlTT0NLU1Byb3h5SG9zdCwga0NGU3RyZWFtUHJvcGVydHlTT0NLU1Byb3h5
UG9ydCB9OwogICAgICAgICBjb25zdCB2b2lkKiBwcm94eVZhbHVlc1tdID0geyBtX3Byb3h5SG9z
dC5nZXQoKSwgbV9wcm94eVBvcnQuZ2V0KCkgfTsKLSAgICAgICAgUmV0YWluUHRyPENGRGljdGlv
bmFyeVJlZj4gY29ubmVjdERpY3Rpb25hcnkoQWRvcHRDRiwgQ0ZEaWN0aW9uYXJ5Q3JlYXRlKDAs
IHByb3h5S2V5cywgcHJveHlWYWx1ZXMsIHNpemVvZihwcm94eUtleXMpIC8gc2l6ZW9mKCpwcm94
eUtleXMpLCAma0NGVHlwZURpY3Rpb25hcnlLZXlDYWxsQmFja3MsICZrQ0ZUeXBlRGljdGlvbmFy
eVZhbHVlQ2FsbEJhY2tzKSk7CisgICAgICAgIFJldGFpblB0cjxDRkRpY3Rpb25hcnlSZWY+IGNv
bm5lY3REaWN0aW9uYXJ5KEFkb3B0Q0YsIENGRGljdGlvbmFyeUNyZWF0ZSgwLCBwcm94eUtleXMs
IHByb3h5VmFsdWVzLCBBUlJBWV9MRU5HVEgocHJveHlLZXlzKSwgJmtDRlR5cGVEaWN0aW9uYXJ5
S2V5Q2FsbEJhY2tzLCAma0NGVHlwZURpY3Rpb25hcnlWYWx1ZUNhbGxCYWNrcykpOwogICAgICAg
ICBDRlJlYWRTdHJlYW1TZXRQcm9wZXJ0eShtX3JlYWRTdHJlYW0uZ2V0KCksIGtDRlN0cmVhbVBy
b3BlcnR5U09DS1NQcm94eSwgY29ubmVjdERpY3Rpb25hcnkuZ2V0KCkpOwogICAgICAgICBicmVh
azsKICAgICAgICAgfQpAQCAtMzQ0LDcgKzM0NCw3IEBAIHZvaWQgU29ja2V0U3RyZWFtSGFuZGxl
OjpjcmVhdGVTdHJlYW1zKCkKICAgICBpZiAoc2hvdWxkVXNlU1NMKCkpIHsKICAgICAgICAgY29u
c3Qgdm9pZCoga2V5c1tdID0geyBrQ0ZTdHJlYW1TU0xQZWVyTmFtZSwga0NGU3RyZWFtU1NMTGV2
ZWwgfTsKICAgICAgICAgY29uc3Qgdm9pZCogdmFsdWVzW10gPSB7IGhvc3QuZ2V0KCksIGtDRlN0
cmVhbVNvY2tldFNlY3VyaXR5TGV2ZWxOZWdvdGlhdGVkU1NMIH07Ci0gICAgICAgIFJldGFpblB0
cjxDRkRpY3Rpb25hcnlSZWY+IHNldHRpbmdzKEFkb3B0Q0YsIENGRGljdGlvbmFyeUNyZWF0ZSgw
LCBrZXlzLCB2YWx1ZXMsIHNpemVvZihrZXlzKSAvIHNpemVvZigqa2V5cyksICZrQ0ZUeXBlRGlj
dGlvbmFyeUtleUNhbGxCYWNrcywgJmtDRlR5cGVEaWN0aW9uYXJ5VmFsdWVDYWxsQmFja3MpKTsK
KyAgICAgICAgUmV0YWluUHRyPENGRGljdGlvbmFyeVJlZj4gc2V0dGluZ3MoQWRvcHRDRiwgQ0ZE
aWN0aW9uYXJ5Q3JlYXRlKDAsIGtleXMsIHZhbHVlcywgQVJSQVlfTEVOR1RIKGtleXMpLCAma0NG
VHlwZURpY3Rpb25hcnlLZXlDYWxsQmFja3MsICZrQ0ZUeXBlRGljdGlvbmFyeVZhbHVlQ2FsbEJh
Y2tzKSk7CiAgICAgICAgIENGUmVhZFN0cmVhbVNldFByb3BlcnR5KG1fcmVhZFN0cmVhbS5nZXQo
KSwga0NGU3RyZWFtUHJvcGVydHlTU0xTZXR0aW5ncywgc2V0dGluZ3MuZ2V0KCkpOwogICAgICAg
ICBDRldyaXRlU3RyZWFtU2V0UHJvcGVydHkobV93cml0ZVN0cmVhbS5nZXQoKSwga0NGU3RyZWFt
UHJvcGVydHlTU0xTZXR0aW5ncywgc2V0dGluZ3MuZ2V0KCkpOwogICAgIH0KZGlmZiAtLWdpdCBh
L1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9UZXh0RW5jb2RpbmdSZWdpc3RyeS5jcHAgYi9XZWJDb3Jl
L3BsYXRmb3JtL3RleHQvVGV4dEVuY29kaW5nUmVnaXN0cnkuY3BwCmluZGV4IGZiZTU4MjYuLmZj
M2IzOTYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9UZXh0RW5jb2RpbmdSZWdp
c3RyeS5jcHAKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L1RleHRFbmNvZGluZ1JlZ2lzdHJ5
LmNwcApAQCAtMTg5LDggKzE4OSw3IEBAIHN0YXRpYyB2b2lkIGFkZFRvVGV4dENvZGVjTWFwKGNv
bnN0IGNoYXIqIG5hbWUsIE5ld1RleHRDb2RlY0Z1bmN0aW9uIGZ1bmN0aW9uLCBjCiAKIHN0YXRp
YyB2b2lkIHBydW5lQmxhY2tsaXN0ZWRDb2RlY3MoKQogewotICAgIHNpemVfdCBibGFja2xpc3Rl
ZENvZGVjTGlzdExlbmd0aCA9IHNpemVvZih0ZXh0RW5jb2RpbmdOYW1lQmxhY2tsaXN0KSAvIHNp
emVvZih0ZXh0RW5jb2RpbmdOYW1lQmxhY2tsaXN0WzBdKTsKLSAgICBmb3IgKHNpemVfdCBpID0g
MDsgaSA8IGJsYWNrbGlzdGVkQ29kZWNMaXN0TGVuZ3RoOyArK2kpIHsKKyAgICBmb3IgKHNpemVf
dCBpID0gMDsgaSA8IEFSUkFZX0xFTkdUSCh0ZXh0RW5jb2RpbmdOYW1lQmxhY2tsaXN0KTsgKytp
KSB7CiAgICAgICAgIGNvbnN0IGNoYXIqIGF0b21pY05hbWUgPSB0ZXh0RW5jb2RpbmdOYW1lTWFw
LT5nZXQodGV4dEVuY29kaW5nTmFtZUJsYWNrbGlzdFtpXSk7CiAgICAgICAgIGlmICghYXRvbWlj
TmFtZSkKICAgICAgICAgICAgIGNvbnRpbnVlOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9y
bS90ZXh0L3RyYW5zY29kZXIvRm9udFRyYW5zY29kZXIuY3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS90
ZXh0L3RyYW5zY29kZXIvRm9udFRyYW5zY29kZXIuY3BwCmluZGV4IDhlMmYzM2YuLjNlOGNmYWEg
MTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC90cmFuc2NvZGVyL0ZvbnRUcmFuc2Nv
ZGVyLmNwcAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL3RleHQvdHJhbnNjb2Rlci9Gb250VHJhbnNj
b2Rlci5jcHAKQEAgLTQxLDIzICs0MSwyMyBAQCBGb250VHJhbnNjb2Rlcjo6Rm9udFRyYW5zY29k
ZXIoKQogewogICAgIG1fY29udmVydGVyVHlwZXMuYWRkKCJNUyBQR290aGljIiwgQmFja3NsYXNo
VG9ZZW5TaWduKTsKICAgICBVQ2hhciB1bmljb2RlTmFtZU1TUEdvdGhpY1tdID0gezB4RkYyRCwg
MHhGRjMzLCAweDAwMjAsIDB4RkYzMCwgMHgzMEI0LCAweDMwQjcsIDB4MzBDMywgMHgzMEFGfTsK
LSAgICBtX2NvbnZlcnRlclR5cGVzLmFkZChBdG9taWNTdHJpbmcodW5pY29kZU5hbWVNU1BHb3Ro
aWMsIHNpemVvZih1bmljb2RlTmFtZU1TUEdvdGhpYykgLyBzaXplb2YoVUNoYXIpKSwgQmFja3Ns
YXNoVG9ZZW5TaWduKTsKKyAgICBtX2NvbnZlcnRlclR5cGVzLmFkZChBdG9taWNTdHJpbmcodW5p
Y29kZU5hbWVNU1BHb3RoaWMsIEFSUkFZX0xFTkdUSCh1bmljb2RlTmFtZU1TUEdvdGhpYykpLCBC
YWNrc2xhc2hUb1llblNpZ24pOwogCiAgICAgbV9jb252ZXJ0ZXJUeXBlcy5hZGQoIk1TIFBNaW5j
aG8iLCBCYWNrc2xhc2hUb1llblNpZ24pOwogICAgIFVDaGFyIHVuaWNvZGVOYW1lTVNQTWluY2hv
W10gPSB7MHhGRjJELCAweEZGMzMsIDB4MDAyMCwgMHhGRjMwLCAweDY2MEUsIDB4NjcxRH07Ci0g
ICAgbV9jb252ZXJ0ZXJUeXBlcy5hZGQoQXRvbWljU3RyaW5nKHVuaWNvZGVOYW1lTVNQTWluY2hv
LCBzaXplb2YodW5pY29kZU5hbWVNU1BNaW5jaG8pIC8gc2l6ZW9mKFVDaGFyKSksIEJhY2tzbGFz
aFRvWWVuU2lnbik7CisgICAgbV9jb252ZXJ0ZXJUeXBlcy5hZGQoQXRvbWljU3RyaW5nKHVuaWNv
ZGVOYW1lTVNQTWluY2hvLCBBUlJBWV9MRU5HVEgodW5pY29kZU5hbWVNU1BNaW5jaG8pKSwgQmFj
a3NsYXNoVG9ZZW5TaWduKTsKIAogICAgIG1fY29udmVydGVyVHlwZXMuYWRkKCJNUyBHb3RoaWMi
LCBCYWNrc2xhc2hUb1llblNpZ24pOwogICAgIFVDaGFyIHVuaWNvZGVOYW1lTVNHb3RoaWNbXSA9
IHsweEZGMkQsIDB4RkYzMywgMHgwMDIwLCAweDMwQjQsIDB4MzBCNywgMHgzMEMzLCAweDMwQUZ9
OwotICAgIG1fY29udmVydGVyVHlwZXMuYWRkKEF0b21pY1N0cmluZyh1bmljb2RlTmFtZU1TR290
aGljLCBzaXplb2YodW5pY29kZU5hbWVNU0dvdGhpYykgLyBzaXplb2YoVUNoYXIpKSwgQmFja3Ns
YXNoVG9ZZW5TaWduKTsKKyAgICBtX2NvbnZlcnRlclR5cGVzLmFkZChBdG9taWNTdHJpbmcodW5p
Y29kZU5hbWVNU0dvdGhpYywgQVJSQVlfTEVOR1RIKHVuaWNvZGVOYW1lTVNHb3RoaWMpKSwgQmFj
a3NsYXNoVG9ZZW5TaWduKTsKIAogICAgIG1fY29udmVydGVyVHlwZXMuYWRkKCJNUyBNaW5jaG8i
LCBCYWNrc2xhc2hUb1llblNpZ24pOwogICAgIFVDaGFyIHVuaWNvZGVOYW1lTVNNaW5jaG9bXSA9
IHsweEZGMkQsIDB4RkYzMywgMHgwMDIwLCAweDY2MEUsIDB4NjcxRH07Ci0gICAgbV9jb252ZXJ0
ZXJUeXBlcy5hZGQoQXRvbWljU3RyaW5nKHVuaWNvZGVOYW1lTVNNaW5jaG8sIHNpemVvZih1bmlj
b2RlTmFtZU1TTWluY2hvKSAvIHNpemVvZihVQ2hhcikpLCBCYWNrc2xhc2hUb1llblNpZ24pOwor
ICAgIG1fY29udmVydGVyVHlwZXMuYWRkKEF0b21pY1N0cmluZyh1bmljb2RlTmFtZU1TTWluY2hv
LCBBUlJBWV9MRU5HVEgodW5pY29kZU5hbWVNU01pbmNobykpLCBCYWNrc2xhc2hUb1llblNpZ24p
OwogCiAgICAgbV9jb252ZXJ0ZXJUeXBlcy5hZGQoIk1laXJ5byIsIEJhY2tzbGFzaFRvWWVuU2ln
bik7CiAgICAgVUNoYXIgdW5pY29kZU5hbWVNZWlyeW9bXSA9IHsweDMwRTEsIDB4MzBBNCwgMHgz
MEVBLCAweDMwQUF9OwotICAgIG1fY29udmVydGVyVHlwZXMuYWRkKEF0b21pY1N0cmluZyh1bmlj
b2RlTmFtZU1laXJ5bywgc2l6ZW9mKHVuaWNvZGVOYW1lTWVpcnlvKSAvIHNpemVvZihVQ2hhcikp
LCBCYWNrc2xhc2hUb1llblNpZ24pOworICAgIG1fY29udmVydGVyVHlwZXMuYWRkKEF0b21pY1N0
cmluZyh1bmljb2RlTmFtZU1laXJ5bywgQVJSQVlfTEVOR1RIKHVuaWNvZGVOYW1lTWVpcnlvKSks
IEJhY2tzbGFzaFRvWWVuU2lnbik7CiB9CiAKIEZvbnRUcmFuc2NvZGVyOjpDb252ZXJ0ZXJUeXBl
IEZvbnRUcmFuc2NvZGVyOjpjb252ZXJ0ZXJUeXBlKGNvbnN0IEZvbnREZXNjcmlwdGlvbiYgZm9u
dERlc2NyaXB0aW9uLCBjb25zdCBUZXh0RW5jb2RpbmcqIGVuY29kaW5nKSBjb25zdAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>74505</attachid>
            <date>2010-11-21 07:12:52 -0800</date>
            <delta_ts>2010-11-21 09:09:44 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-49881.patch</filename>
            <type>text/plain</type>
            <size>22286</size>
            <attacher name="Patrick R. Gansterer">paroga</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
ZWM5YmJiNC4uZmQzNWNhNyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0NyBAQAorMjAxMC0xMS0yMSAgUGF0cmljayBHYW5z
dGVyZXIgIDxwYXJvZ2FAd2Via2l0Lm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBVc2UgV1RGX0FSUkFZX0xFTkdUSCBpbiBXZWJDb3JlL3BsYXRm
b3JtIGRpcmVjdG9yeQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9NDk4ODEKKworICAgICAgICAqIHBsYXRmb3JtL0tVUkwuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6cG9ydEFsbG93ZWQpOgorICAgICAgICAqIHBsYXRmb3JtL0tVUkxHb29nbGUuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6cG9ydEFsbG93ZWQpOgorICAgICAgICAqIHBsYXRmb3JtL01JTUVU
eXBlUmVnaXN0cnkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6aW5pdGlhbGl6ZVN1cHBvcnRlZElt
YWdlTUlNRVR5cGVzKToKKyAgICAgICAgKFdlYkNvcmU6OmluaXRpYWxpemVTdXBwb3J0ZWRKYXZh
U2NyaXB0TUlNRVR5cGVzKToKKyAgICAgICAgKFdlYkNvcmU6OmluaXRpYWxpemVTdXBwb3J0ZWRO
b25JbWFnZU1pbWVUeXBlcyk6CisgICAgICAgICogcGxhdGZvcm0vVVVJRC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpjcmVhdGVDYW5vbmljYWxVVUlEU3RyaW5nKToKKyAgICAgICAgKiBwbGF0Zm9y
bS9lZmwvUmVuZGVyVGhlbWVFZmwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWVF
Zmw6OmFwcGx5RWRqZVN0YXRlRnJvbUZvcm0pOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L0dyYXBoaWNzVHlwZXMuY3BwOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVt
L0ZvbnRDYWNoZUNocm9taXVtV2luLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZvbnRDb2RlcGFn
ZTo6aWYpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0ZvbnRVdGlsc0No
cm9taXVtV2luLmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9tYWMvQ29tcGxleFRl
eHRDb250cm9sbGVyQ29yZVRleHQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q29tcGxleFRleHRD
b250cm9sbGVyOjpjb2xsZWN0Q29tcGxleFRleHRSdW5zRm9yQ2hhcmFjdGVyc0NvcmVUZXh0KToK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9tYWMvTWVkaWFQbGF5ZXJQcml2YXRlUVRLaXQu
bW06CisgICAgICAgIChXZWJDb3JlOjpkaXNhYmxlQ29tcG9uZW50c09uY2UpOgorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL21hYy9TaW1wbGVGb250RGF0YUFUU1VJLm1tOgorICAgICAgICAo
V2ViQ29yZTo6U2ltcGxlRm9udERhdGE6OmNoZWNrU2hhcGVzQXJhYmljKToKKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy9tYWMvU2ltcGxlRm9udERhdGFDb3JlVGV4dC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpTaW1wbGVGb250RGF0YTo6Z2V0Q0ZTdHJpbmdBdHRyaWJ1dGVzKToKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy93aW4vR3JhcGhpY3NDb250ZXh0Q0dXaW4uY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0OjpkcmF3TGluZUZvclRleHRDaGVja2luZyk6
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL01lZGlhUGxheWVyUHJpdmF0ZVF1aWNr
VGltZVZpc3VhbENvbnRleHQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6ZGlzYWJsZUNvbXBvbmVu
dHNPbmNlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy93aW4vUVRNb3ZpZS5jcHA6Cisg
ICAgICAgIChRVE1vdmllOjpsb2FkKToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL2NmL1Nv
Y2tldFN0cmVhbUhhbmRsZUNGTmV0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNvY2tldFN0cmVh
bUhhbmRsZTo6Y3JlYXRlU3RyZWFtcyk6CisgICAgICAgICogcGxhdGZvcm0vdGV4dC9UZXh0RW5j
b2RpbmdSZWdpc3RyeS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpwcnVuZUJsYWNrbGlzdGVkQ29k
ZWNzKToKKyAgICAgICAgKiBwbGF0Zm9ybS90ZXh0L3RyYW5zY29kZXIvRm9udFRyYW5zY29kZXIu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6Rm9udFRyYW5zY29kZXI6OkZvbnRUcmFuc2NvZGVyKToK
KwogMjAxMC0xMS0yMCAgQW5kcmVhcyBLbGluZyAgPGtsaW5nQHdlYmtpdC5vcmc+CiAKICAgICAg
ICAgUnViYmVyLXN0YW1wZWQgYnkgQW50b25pbyBHb21lcy4KZGlmZiAtLWdpdCBhL1dlYkNvcmUv
cGxhdGZvcm0vS1VSTC5jcHAgYi9XZWJDb3JlL3BsYXRmb3JtL0tVUkwuY3BwCmluZGV4IDNhYzVk
ODYuLmNhNjNkYjcgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vS1VSTC5jcHAKKysrIGIv
V2ViQ29yZS9wbGF0Zm9ybS9LVVJMLmNwcApAQCAtMTc5Niw3ICsxNzk2LDcgQEAgYm9vbCBwb3J0
QWxsb3dlZChjb25zdCBLVVJMJiB1cmwpCiAgICAgICAgIDY2NjksIC8vIEFsdGVybmF0ZSBJUkMg
W0FwcGxlIGFkZGl0aW9uXQogICAgICAgICBpbnZhbGlkUG9ydE51bWJlciwgLy8gVXNlZCB0byBi
bG9jayBhbGwgaW52YWxpZCBwb3J0IG51bWJlcnMKICAgICB9OwotICAgIGNvbnN0IHVuc2lnbmVk
IHNob3J0KiBjb25zdCBibG9ja2VkUG9ydExpc3RFbmQgPSBibG9ja2VkUG9ydExpc3QgKyBzaXpl
b2YoYmxvY2tlZFBvcnRMaXN0KSAvIHNpemVvZihibG9ja2VkUG9ydExpc3RbMF0pOworICAgIGNv
bnN0IHVuc2lnbmVkIHNob3J0KiBjb25zdCBibG9ja2VkUG9ydExpc3RFbmQgPSBibG9ja2VkUG9y
dExpc3QgKyBXVEZfQVJSQVlfTEVOR1RIKGJsb2NrZWRQb3J0TGlzdCk7CiAKICNpZm5kZWYgTkRF
QlVHCiAgICAgLy8gVGhlIHBvcnQgbGlzdCBtdXN0IGJlIHNvcnRlZCBmb3IgYmluYXJ5X3NlYXJj
aCB0byB3b3JrLgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9LVVJMR29vZ2xlLmNwcCBi
L1dlYkNvcmUvcGxhdGZvcm0vS1VSTEdvb2dsZS5jcHAKaW5kZXggNzI2YmM1Ny4uZWZkZDQ0MiAx
MDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9LVVJMR29vZ2xlLmNwcAorKysgYi9XZWJDb3Jl
L3BsYXRmb3JtL0tVUkxHb29nbGUuY3BwCkBAIC04OTMsNyArODkzLDcgQEAgYm9vbCBwb3J0QWxs
b3dlZChjb25zdCBLVVJMJiB1cmwpCiAgICAgICAgIDY2NjksIC8vIEFsdGVybmF0ZSBJUkMgW0Fw
cGxlIGFkZGl0aW9uXQogICAgICAgICBpbnZhbGlkUG9ydE51bWJlciwgLy8gVXNlZCB0byBibG9j
ayBhbGwgaW52YWxpZCBwb3J0IG51bWJlcnMKICAgICB9OwotICAgIGNvbnN0IHVuc2lnbmVkIHNo
b3J0KiBjb25zdCBibG9ja2VkUG9ydExpc3RFbmQgPSBibG9ja2VkUG9ydExpc3QgKyBzaXplb2Yo
YmxvY2tlZFBvcnRMaXN0KSAvIHNpemVvZihibG9ja2VkUG9ydExpc3RbMF0pOworICAgIGNvbnN0
IHVuc2lnbmVkIHNob3J0KiBjb25zdCBibG9ja2VkUG9ydExpc3RFbmQgPSBibG9ja2VkUG9ydExp
c3QgKyBXVEZfQVJSQVlfTEVOR1RIKGJsb2NrZWRQb3J0TGlzdCk7CiAKICNpZm5kZWYgTkRFQlVH
CiAgICAgLy8gVGhlIHBvcnQgbGlzdCBtdXN0IGJlIHNvcnRlZCBmb3IgYmluYXJ5X3NlYXJjaCB0
byB3b3JrLgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9NSU1FVHlwZVJlZ2lzdHJ5LmNw
cCBiL1dlYkNvcmUvcGxhdGZvcm0vTUlNRVR5cGVSZWdpc3RyeS5jcHAKaW5kZXggYzE1MmEzNi4u
OTk0N2JmZSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9NSU1FVHlwZVJlZ2lzdHJ5LmNw
cAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL01JTUVUeXBlUmVnaXN0cnkuY3BwCkBAIC0xMTksNyAr
MTE5LDcgQEAgc3RhdGljIHZvaWQgaW5pdGlhbGl6ZVN1cHBvcnRlZEltYWdlTUlNRVR5cGVzKCkK
ICAgICAgICAgImltYWdlL3gtaWNvbiIsICAgIC8vIGljbwogICAgICAgICAiaW1hZ2UveC14Yml0
bWFwIiAgLy8geGJtCiAgICAgfTsKLSAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHNpemVvZih0
eXBlcykgLyBzaXplb2YodHlwZXNbMF0pOyArK2kpIHsKKyAgICBmb3IgKHNpemVfdCBpID0gMDsg
aSA8IFdURl9BUlJBWV9MRU5HVEgodHlwZXMpOyArK2kpIHsKICAgICAgICAgc3VwcG9ydGVkSW1h
Z2VNSU1FVHlwZXMtPmFkZCh0eXBlc1tpXSk7CiAgICAgICAgIHN1cHBvcnRlZEltYWdlUmVzb3Vy
Y2VNSU1FVHlwZXMtPmFkZCh0eXBlc1tpXSk7CiAgICAgfQpAQCAtMTg3LDcgKzE4Nyw3IEBAIHN0
YXRpYyB2b2lkIGluaXRpYWxpemVTdXBwb3J0ZWRKYXZhU2NyaXB0TUlNRVR5cGVzKCkKICAgICAg
ICAgInRleHQvanNjcmlwdCIsCiAgICAgICAgICJ0ZXh0L2xpdmVzY3JpcHQiLAogICAgIH07Ci0g
ICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBzaXplb2YodHlwZXMpIC8gc2l6ZW9mKHR5cGVzWzBd
KTsgKytpKQorICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgV1RGX0FSUkFZX0xFTkdUSCh0eXBl
cyk7ICsraSkKICAgICAgIHN1cHBvcnRlZEphdmFTY3JpcHRNSU1FVHlwZXMtPmFkZCh0eXBlc1tp
XSk7CiB9CiAKQEAgLTIyMiw3ICsyMjIsNyBAQCBzdGF0aWMgdm9pZCBpbml0aWFsaXplU3VwcG9y
dGVkTm9uSW1hZ2VNaW1lVHlwZXMoKQogICAgIENPTVBJTEVfQVNTRVJUKHNpemVvZih0eXBlcykg
LyBzaXplb2YodHlwZXNbMF0pIDw9IDE2LAogICAgICAgICAgICAgICAgICAgIG5vbmltYWdlX21p
bWVfdHlwZXNfbXVzdF9iZV9sZXNzX3RoYW5fb3JfZXF1YWxfdG9fMTYpOwogCi0gICAgZm9yIChz
aXplX3QgaSA9IDA7IGkgPCBzaXplb2YodHlwZXMpL3NpemVvZih0eXBlc1swXSk7ICsraSkKKyAg
ICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IFdURl9BUlJBWV9MRU5HVEgodHlwZXMpOyArK2kpCiAg
ICAgICAgIHN1cHBvcnRlZE5vbkltYWdlTUlNRVR5cGVzLT5hZGQodHlwZXNbaV0pOwogCiAgICAg
QXJjaGl2ZUZhY3Rvcnk6OnJlZ2lzdGVyS25vd25BcmNoaXZlTUlNRVR5cGVzKCk7CmRpZmYgLS1n
aXQgYS9XZWJDb3JlL3BsYXRmb3JtL1VVSUQuY3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS9VVUlELmNw
cAppbmRleCBlYjcyMWUwLi5hMDAyYzhiIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL1VV
SUQuY3BwCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vVVVJRC5jcHAKQEAgLTk1LDcgKzk1LDcgQEAg
U3RyaW5nIGNyZWF0ZUNhbm9uaWNhbFVVSURTdHJpbmcoKQogICAgIHJldHVybiBjYW5vbmljYWxV
dWlkU3RyOwogI2VsaWYgT1MoTElOVVgpICYmIFBMQVRGT1JNKENIUk9NSVVNKQogICAgIHVuc2ln
bmVkIHJhbmRvbURhdGFbNF07Ci0gICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBzaXplb2YocmFu
ZG9tRGF0YSkgLyBzaXplb2YocmFuZG9tRGF0YVswXSk7ICsraSkKKyAgICBmb3IgKHNpemVfdCBp
ID0gMDsgaSA8IFdURl9BUlJBWV9MRU5HVEgocmFuZG9tRGF0YSk7ICsraSkKICAgICAgICAgcmFu
ZG9tRGF0YVtpXSA9IHN0YXRpY19jYXN0PHVuc2lnbmVkPihyYW5kb21OdW1iZXIoKSAqIChzdGQ6
Om51bWVyaWNfbGltaXRzPHVuc2lnbmVkPjo6bWF4KCkgKyAxLjApKTsKIAogICAgIC8vIEZvcm1h
dCBhcyBWZXJzaW9uIDQgVVVJRC4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vZWZsL1Jl
bmRlclRoZW1lRWZsLmNwcCBiL1dlYkNvcmUvcGxhdGZvcm0vZWZsL1JlbmRlclRoZW1lRWZsLmNw
cAppbmRleCA2MDc2NzQ3Li5lMDhlYzk2IDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL2Vm
bC9SZW5kZXJUaGVtZUVmbC5jcHAKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9lZmwvUmVuZGVyVGhl
bWVFZmwuY3BwCkBAIC0yNDcsMTEgKzI0NywxMCBAQCB2b2lkIFJlbmRlclRoZW1lRWZsOjphcHBs
eUVkamVTdGF0ZUZyb21Gb3JtKEV2YXNfT2JqZWN0KiBvLCBDb250cm9sU3RhdGVzIHN0YXRlcwog
ICAgICAgICAid2luZG93LWluYWN0aXZlIiwKICAgICAgICAgImluZGV0ZXJtaW5hdGUiCiAgICAg
fTsKLSAgICBzaXplX3QgaSwgbGFzdCA9IHNpemVvZihzaWduYWxzKSAvIHNpemVvZihzaWduYWxz
WzBdKTsKIAogICAgIGVkamVfb2JqZWN0X3NpZ25hbF9lbWl0KG8sICJyZXNldCIsICIiKTsKIAot
ICAgIGZvciAoaSA9IDA7IGkgPCBsYXN0OyBpKyspIHsKKyAgICBmb3IgKHNpemVfdCBpID0gMDsg
aSA8IFdURl9BUlJBWV9MRU5HVEgoc2lnbmFscyk7ICsraSkgewogICAgICAgICBpZiAoc3RhdGVz
ICYgKDEgPDwgaSkpCiAgICAgICAgICAgICBlZGplX29iamVjdF9zaWduYWxfZW1pdChvLCBzaWdu
YWxzW2ldLCAiIik7CiAgICAgfQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9HcmFwaGljc1R5cGVzLmNwcCBiL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NU
eXBlcy5jcHAKaW5kZXggNzYxYmY0MC4uMDRiZTcwNiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9HcmFwaGljc1R5cGVzLmNwcAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL0dyYXBoaWNzVHlwZXMuY3BwCkBAIC00Nyw3ICs0Nyw3IEBAIHN0YXRpYyBjb25zdCBj
aGFyKiBjb25zdCBjb21wb3NpdGVPcGVyYXRvck5hbWVzW10gPSB7CiAgICAgImhpZ2hsaWdodCIs
CiAgICAgImxpZ2h0ZXIiCiB9OwotY29uc3QgaW50IG51bUNvbXBvc2l0ZU9wZXJhdG9yTmFtZXMg
PSBzaXplb2YoY29tcG9zaXRlT3BlcmF0b3JOYW1lcykgLyBzaXplb2YoY29tcG9zaXRlT3BlcmF0
b3JOYW1lc1swXSk7Citjb25zdCBpbnQgbnVtQ29tcG9zaXRlT3BlcmF0b3JOYW1lcyA9IFdURl9B
UlJBWV9MRU5HVEgoY29tcG9zaXRlT3BlcmF0b3JOYW1lcyk7CiAKIGJvb2wgcGFyc2VDb21wb3Np
dGVPcGVyYXRvcihjb25zdCBTdHJpbmcmIHMsIENvbXBvc2l0ZU9wZXJhdG9yJiBvcCkKIHsKZGlm
ZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vRm9udENhY2hlQ2hy
b21pdW1XaW4uY3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9Gb250Q2Fj
aGVDaHJvbWl1bVdpbi5jcHAKaW5kZXggMzg0YjFjNS4uMGEzNzNhZiAxMDA2NDQKLS0tIGEvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9Gb250Q2FjaGVDaHJvbWl1bVdpbi5jcHAK
KysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9Gb250Q2FjaGVDaHJvbWl1
bVdpbi5jcHAKQEAgLTIxMSw5ICsyMTEsOCBAQCBzdGF0aWMgYm9vbCBMb29rdXBBbHROYW1lKGNv
bnN0IFN0cmluZyYgbmFtZSwgU3RyaW5nJiBhbHROYW1lKQogICAgIHN0YXRpYyBOYW1lTWFwKiBm
b250TmFtZU1hcCA9IDA7CiAKICAgICBpZiAoIWZvbnROYW1lTWFwKSB7Ci0gICAgICAgIHNpemVf
dCBudW1FbGVtZW50cyA9IHNpemVvZihuYW1lUGFpcnMpIC8gc2l6ZW9mKE5hbWVQYWlyKTsKICAg
ICAgICAgZm9udE5hbWVNYXAgPSBuZXcgTmFtZU1hcDsKLSAgICAgICAgZm9yIChzaXplX3QgaSA9
IDA7IGkgPCBudW1FbGVtZW50czsgKytpKQorICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8
IFdURl9BUlJBWV9MRU5HVEgobmFtZVBhaXJzKTsgKytpKQogICAgICAgICAgICAgZm9udE5hbWVN
YXAtPnNldChTdHJpbmcobmFtZVBhaXJzW2ldLm5hbWUpLCAmKG5hbWVQYWlyc1tpXS5hbHROYW1l
Q29kZXBhZ2UpKTsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY2hyb21pdW0vRm9udFV0aWxzQ2hyb21pdW1XaW4uY3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jaHJvbWl1bS9Gb250VXRpbHNDaHJvbWl1bVdpbi5jcHAKaW5kZXggZTcyNWM1MC4u
NmVjODM0MiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9G
b250VXRpbHNDaHJvbWl1bVdpbi5jcHAKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
aHJvbWl1bS9Gb250VXRpbHNDaHJvbWl1bVdpbi5jcHAKQEAgLTE1MCwxNCArMTUwLDE0IEBAIHZv
aWQgaW5pdGlhbGl6ZVNjcmlwdEZvbnRNYXAoU2NyaXB0VG9Gb250TWFwJiBzY3JpcHRGb250TWFw
KQogICAgICAgICB7VVNDUklQVF9NWUFOTUFSLCBteWFubWFyRm9udHN9LAogICAgIH07CiAKLSAg
ICBmb3IgKGludCBpID0gMDsgaSA8IHNpemVvZihmb250TWFwKSAvIHNpemVvZihmb250TWFwWzBd
KTsgKytpKQorICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgV1RGX0FSUkFZX0xFTkdUSChmb250
TWFwKTsgKytpKQogICAgICAgICBzY3JpcHRGb250TWFwW2ZvbnRNYXBbaV0uc2NyaXB0XSA9IGZv
bnRNYXBbaV0uZmFtaWx5OwogCiAgICAgLy8gRklYTUU6IEluc3RlYWQgb2Ygc2Nhbm5pbmcgdGhl
IGhhcmQtY29kZWQgbGlzdCwgd2UgaGF2ZSB0byAKICAgICAvLyB1c2UgRW51bUZvbnQqIHRvICdp
bnNwZWN0JyBmb250cyB0byBwaWNrIHVwIGZvbnRzIGNvdmVyaW5nIHNjcmlwdHMKICAgICAvLyB3
aGVuIGl0J3MgcG9zc2libGUgKGUuZy4gdXNpbmcgT1MvMiB0YWJsZSkuIElmIHdlIGRvIHRoYXQs
IHRoaXMgCiAgICAgLy8gaGFkIGJldHRlciBiZSBwdWxsZWQgb3V0IG9mIGhlcmUuCi0gICAgZm9y
IChpbnQgaSA9IDA7IGkgPCBzaXplb2Yoc2NyaXB0VG9Gb250RmFtaWxpZXMpIC8gc2l6ZW9mKHNj
cmlwdFRvRm9udEZhbWlsaWVzWzBdKTsgKytpKSB7CisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkg
PCBXVEZfQVJSQVlfTEVOR1RIKHNjcmlwdFRvRm9udEZhbWlsaWVzKTsgKytpKSB7CiAgICAgICAg
IFVTY3JpcHRDb2RlIHNjcmlwdCA9IHNjcmlwdFRvRm9udEZhbWlsaWVzW2ldLnNjcmlwdDsKICAg
ICAgICAgc2NyaXB0Rm9udE1hcFtzY3JpcHRdID0gMDsKICAgICAgICAgY29uc3QgVUNoYXIqKiBm
YW1pbHlQdHIgPSBzY3JpcHRUb0ZvbnRGYW1pbGllc1tpXS5mYW1pbGllczsKZGlmZiAtLWdpdCBh
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0NvbXBsZXhUZXh0Q29udHJvbGxlckNvcmVU
ZXh0LmNwcCBiL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0NvbXBsZXhUZXh0Q29udHJv
bGxlckNvcmVUZXh0LmNwcAppbmRleCBjYmI3NjEwLi41ODExNGE3IDEwMDY0NAotLS0gYS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9Db21wbGV4VGV4dENvbnRyb2xsZXJDb3JlVGV4dC5j
cHAKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvQ29tcGxleFRleHRDb250cm9s
bGVyQ29yZVRleHQuY3BwCkBAIC0xMzgsOCArMTM4LDggQEAgdm9pZCBDb21wbGV4VGV4dENvbnRy
b2xsZXI6OmNvbGxlY3RDb21wbGV4VGV4dFJ1bnNGb3JDaGFyYWN0ZXJzQ29yZVRleHQoY29uc3Qg
VUMKICAgICAgICAgY29uc3Qgc2hvcnQgcnRsRm9yY2VkRW1iZWRkaW5nTGV2ZWxWYWx1ZSA9IDE7
CiAgICAgICAgIHN0YXRpYyBjb25zdCB2b2lkKiBsdHJPcHRpb25WYWx1ZXNbXSA9IHsgQ0ZOdW1i
ZXJDcmVhdGUoa0NGQWxsb2NhdG9yRGVmYXVsdCwga0NGTnVtYmVyU2hvcnRUeXBlLCAmbHRyRm9y
Y2VkRW1iZWRkaW5nTGV2ZWxWYWx1ZSkgfTsKICAgICAgICAgc3RhdGljIGNvbnN0IHZvaWQqIHJ0
bE9wdGlvblZhbHVlc1tdID0geyBDRk51bWJlckNyZWF0ZShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBr
Q0ZOdW1iZXJTaG9ydFR5cGUsICZydGxGb3JjZWRFbWJlZGRpbmdMZXZlbFZhbHVlKSB9OwotICAg
ICAgICBzdGF0aWMgQ0ZEaWN0aW9uYXJ5UmVmIGx0clR5cGVzZXR0ZXJPcHRpb25zID0gQ0ZEaWN0
aW9uYXJ5Q3JlYXRlKGtDRkFsbG9jYXRvckRlZmF1bHQsIG9wdGlvbktleXMsIGx0ck9wdGlvblZh
bHVlcywgc2l6ZW9mKG9wdGlvbktleXMpIC8gc2l6ZW9mKCpvcHRpb25LZXlzKSwgJmtDRkNvcHlT
dHJpbmdEaWN0aW9uYXJ5S2V5Q2FsbEJhY2tzLCAma0NGVHlwZURpY3Rpb25hcnlWYWx1ZUNhbGxC
YWNrcyk7Ci0gICAgICAgIHN0YXRpYyBDRkRpY3Rpb25hcnlSZWYgcnRsVHlwZXNldHRlck9wdGlv
bnMgPSBDRkRpY3Rpb25hcnlDcmVhdGUoa0NGQWxsb2NhdG9yRGVmYXVsdCwgb3B0aW9uS2V5cywg
cnRsT3B0aW9uVmFsdWVzLCBzaXplb2Yob3B0aW9uS2V5cykgLyBzaXplb2YoKm9wdGlvbktleXMp
LCAma0NGQ29weVN0cmluZ0RpY3Rpb25hcnlLZXlDYWxsQmFja3MsICZrQ0ZUeXBlRGljdGlvbmFy
eVZhbHVlQ2FsbEJhY2tzKTsKKyAgICAgICAgc3RhdGljIENGRGljdGlvbmFyeVJlZiBsdHJUeXBl
c2V0dGVyT3B0aW9ucyA9IENGRGljdGlvbmFyeUNyZWF0ZShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBv
cHRpb25LZXlzLCBsdHJPcHRpb25WYWx1ZXMsIFdURl9BUlJBWV9MRU5HVEgob3B0aW9uS2V5cyks
ICZrQ0ZDb3B5U3RyaW5nRGljdGlvbmFyeUtleUNhbGxCYWNrcywgJmtDRlR5cGVEaWN0aW9uYXJ5
VmFsdWVDYWxsQmFja3MpOworICAgICAgICBzdGF0aWMgQ0ZEaWN0aW9uYXJ5UmVmIHJ0bFR5cGVz
ZXR0ZXJPcHRpb25zID0gQ0ZEaWN0aW9uYXJ5Q3JlYXRlKGtDRkFsbG9jYXRvckRlZmF1bHQsIG9w
dGlvbktleXMsIHJ0bE9wdGlvblZhbHVlcywgV1RGX0FSUkFZX0xFTkdUSChvcHRpb25LZXlzKSwg
JmtDRkNvcHlTdHJpbmdEaWN0aW9uYXJ5S2V5Q2FsbEJhY2tzLCAma0NGVHlwZURpY3Rpb25hcnlW
YWx1ZUNhbGxCYWNrcyk7CiAKICNpZiAhZGVmaW5lZChCVUlMRElOR19PTl9USUdFUikgJiYgIWRl
ZmluZWQoQlVJTERJTkdfT05fTEVPUEFSRCkgJiYgIWRlZmluZWQoQlVJTERJTkdfT05fU05PV19M
RU9QQVJEKQogICAgICAgICBQcm92aWRlckluZm8gaW5mbyA9IHsgY3AsIGxlbmd0aCwgZm9udERh
dGEtPmdldENGU3RyaW5nQXR0cmlidXRlcyhtX2ZvbnQudHlwZXNldHRpbmdGZWF0dXJlcygpKSB9
OwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvTWVkaWFQbGF5ZXJQ
cml2YXRlUVRLaXQubW0gYi9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9NZWRpYVBsYXll
clByaXZhdGVRVEtpdC5tbQppbmRleCA2ZGEwZGExLi5mMmZiNWIzIDEwMDY0NAotLS0gYS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9NZWRpYVBsYXllclByaXZhdGVRVEtpdC5tbQorKysg
Yi9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9NZWRpYVBsYXllclByaXZhdGVRVEtpdC5t
bQpAQCAtMzE2LDcgKzMxNiw3IEBAIHN0YXRpYyB2b2lkIGRpc2FibGVDb21wb25lbnRzT25jZSgp
CiAgICAgICAgIHsnaW1kYycsICdwZGYgJywgJ2FwcGwnLCAwLCAwfSwgIAogICAgIH07CiAKLSAg
ICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHNpemVvZihjb21wb25lbnRzVG9EaXNhYmxlKS9zaXpl
b2YoY29tcG9uZW50c1RvRGlzYWJsZVswXSk7ICsraSkgCisgICAgZm9yIChzaXplX3QgaSA9IDA7
IGkgPCBXVEZfQVJSQVlfTEVOR1RIKGNvbXBvbmVudHNUb0Rpc2FibGUpOyArK2kpIAogICAgICAg
ICB3a1FUTW92aWVEaXNhYmxlQ29tcG9uZW50KGNvbXBvbmVudHNUb0Rpc2FibGVbaV0pOwogfQog
CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9TaW1wbGVGb250RGF0
YUFUU1VJLm1tIGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvU2ltcGxlRm9udERhdGFB
VFNVSS5tbQppbmRleCBiZWVhMDE4Li42YmY0ZDZkIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL21hYy9TaW1wbGVGb250RGF0YUFUU1VJLm1tCisrKyBiL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvbWFjL1NpbXBsZUZvbnREYXRhQVRTVUkubW0KQEAgLTU5LDcgKzU5LDcg
QEAgdm9pZCBTaW1wbGVGb250RGF0YTo6Y2hlY2tTaGFwZXNBcmFiaWMoKSBjb25zdAogICAgIC8v
IGhldXJpc3RpYyBpcyB0aGF0IGlmIHN1Y2ggYSBmb250IGhhcyBhIGdseXBoIG1ldGFtb3JwaG9z
aXMgdGFibGUsIHRoZW4KICAgICAvLyBpdCBpbmNsdWRlcyBzaGFwaW5nIGluZm9ybWF0aW9uIGZv
ciBBcmFiaWMuCiAgICAgRm91ckNoYXJDb2RlIHRhYmxlc1tdID0geyAnbW9yeCcsICdtb3J0JyB9
OwotICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBzaXplb2YodGFibGVzKSAvIHNpemVvZih0
YWJsZXNbMF0pOyArK2kpIHsKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IFdURl9BUlJBWV9M
RU5HVEgodGFibGVzKTsgKytpKSB7CiAgICAgICAgIEJ5dGVDb3VudCB0YWJsZVNpemU7CiAgICAg
ICAgIE9TU3RhdHVzIHN0YXR1cyA9IEFUU0ZvbnRHZXRUYWJsZShmb250SUQsIHRhYmxlc1tpXSwg
MCwgMCwgMCwgJnRhYmxlU2l6ZSk7CiAgICAgICAgIGlmIChzdGF0dXMgPT0gbm9FcnIpIHsKZGlm
ZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL1NpbXBsZUZvbnREYXRhQ29y
ZVRleHQuY3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvU2ltcGxlRm9udERhdGFD
b3JlVGV4dC5jcHAKaW5kZXggZGI2ZGU0OS4uNjA4YmNhNiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9tYWMvU2ltcGxlRm9udERhdGFDb3JlVGV4dC5jcHAKKysrIGIvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvU2ltcGxlRm9udERhdGFDb3JlVGV4dC5jcHAKQEAg
LTYyLDE1ICs2MiwxMyBAQCBDRkRpY3Rpb25hcnlSZWYgU2ltcGxlRm9udERhdGE6OmdldENGU3Ry
aW5nQXR0cmlidXRlcyhUeXBlc2V0dGluZ0ZlYXR1cmVzIHR5cGVzZQogICAgICAgICBjb25zdCB2
b2lkKiB2YWx1ZXNXaXRoS2VybmluZ0Rpc2FibGVkW10gPSB7IHBsYXRmb3JtRGF0YSgpLmN0Rm9u
dCgpLCBrZXJuaW5nQWRqdXN0bWVudCwgYWxsb3dMaWdhdHVyZXMKICAgICAgICAgICAgID8gbGln
YXR1cmVzQWxsb3dlZCA6IGxpZ2F0dXJlc05vdEFsbG93ZWQsIG9yaWVudGF0aW9uKCkgPT0gVmVy
dGljYWwgPyBrQ0ZCb29sZWFuVHJ1ZSA6IGtDRkJvb2xlYW5GYWxzZSB9OwogICAgICAgICBhdHRy
aWJ1dGVzRGljdGlvbmFyeS5hZG9wdENGKENGRGljdGlvbmFyeUNyZWF0ZSgwLCBrZXlzV2l0aEtl
cm5pbmdEaXNhYmxlZCwgdmFsdWVzV2l0aEtlcm5pbmdEaXNhYmxlZCwKLSAgICAgICAgICAgIHNp
emVvZihrZXlzV2l0aEtlcm5pbmdEaXNhYmxlZCkgLyBzaXplb2YoKmtleXNXaXRoS2VybmluZ0Rp
c2FibGVkKSwKLSAgICAgICAgICAgICZrQ0ZDb3B5U3RyaW5nRGljdGlvbmFyeUtleUNhbGxCYWNr
cywgJmtDRlR5cGVEaWN0aW9uYXJ5VmFsdWVDYWxsQmFja3MpKTsKKyAgICAgICAgICAgIFdURl9B
UlJBWV9MRU5HVEgoa2V5c1dpdGhLZXJuaW5nRGlzYWJsZWQpLCAma0NGQ29weVN0cmluZ0RpY3Rp
b25hcnlLZXlDYWxsQmFja3MsICZrQ0ZUeXBlRGljdGlvbmFyeVZhbHVlQ2FsbEJhY2tzKSk7CiAg
ICAgfSBlbHNlIHsKICAgICAgICAgLy8gQnkgb21pdHRpbmcgdGhlIGtDVEtlcm5BdHRyaWJ1dGVO
YW1lIGF0dHJpYnV0ZSwgd2UgZ2V0IENvcmUgVGV4dCdzIHN0YW5kYXJkIGtlcm5pbmcuCiAgICAg
ICAgIHN0YXRpYyBjb25zdCB2b2lkKiBrZXlzV2l0aEtlcm5pbmdFbmFibGVkW10gPSB7IGtDVEZv
bnRBdHRyaWJ1dGVOYW1lLCBrQ1RMaWdhdHVyZUF0dHJpYnV0ZU5hbWUsIGtDVFZlcnRpY2FsRm9y
bXNBdHRyaWJ1dGVOYW1lIH07CiAgICAgICAgIGNvbnN0IHZvaWQqIHZhbHVlc1dpdGhLZXJuaW5n
RW5hYmxlZFtdID0geyBwbGF0Zm9ybURhdGEoKS5jdEZvbnQoKSwgYWxsb3dMaWdhdHVyZXMgPyBs
aWdhdHVyZXNBbGxvd2VkIDogbGlnYXR1cmVzTm90QWxsb3dlZCwgb3JpZW50YXRpb24oKSA9PSBW
ZXJ0aWNhbCA/IGtDRkJvb2xlYW5UcnVlIDoga0NGQm9vbGVhbkZhbHNlIH07CiAgICAgICAgIGF0
dHJpYnV0ZXNEaWN0aW9uYXJ5LmFkb3B0Q0YoQ0ZEaWN0aW9uYXJ5Q3JlYXRlKDAsIGtleXNXaXRo
S2VybmluZ0VuYWJsZWQsIHZhbHVlc1dpdGhLZXJuaW5nRW5hYmxlZCwKLSAgICAgICAgICAgIHNp
emVvZihrZXlzV2l0aEtlcm5pbmdFbmFibGVkKSAvIHNpemVvZigqa2V5c1dpdGhLZXJuaW5nRW5h
YmxlZCksCi0gICAgICAgICAgICAma0NGQ29weVN0cmluZ0RpY3Rpb25hcnlLZXlDYWxsQmFja3Ms
ICZrQ0ZUeXBlRGljdGlvbmFyeVZhbHVlQ2FsbEJhY2tzKSk7CisgICAgICAgICAgICBXVEZfQVJS
QVlfTEVOR1RIKGtleXNXaXRoS2VybmluZ0VuYWJsZWQpLCAma0NGQ29weVN0cmluZ0RpY3Rpb25h
cnlLZXlDYWxsQmFja3MsICZrQ0ZUeXBlRGljdGlvbmFyeVZhbHVlQ2FsbEJhY2tzKSk7CiAgICAg
fQogCiAgICAgcmV0dXJuIGF0dHJpYnV0ZXNEaWN0aW9uYXJ5LmdldCgpOwpkaWZmIC0tZ2l0IGEv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vR3JhcGhpY3NDb250ZXh0Q0dXaW4uY3BwIGIv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vR3JhcGhpY3NDb250ZXh0Q0dXaW4uY3BwCmlu
ZGV4IGM5Mjg4ZTUuLjNjN2JlNzUgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3Mvd2luL0dyYXBoaWNzQ29udGV4dENHV2luLmNwcAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL3dpbi9HcmFwaGljc0NvbnRleHRDR1dpbi5jcHAKQEAgLTIyOCwyMCArMjI4LDE3IEBA
IHZvaWQgR3JhcGhpY3NDb250ZXh0OjpkcmF3TGluZUZvclRleHRDaGVja2luZyhjb25zdCBJbnRQ
b2ludCYgcG9pbnQsIGludCB3aWR0aCwKICAgICBjb25zdCBmbG9hdCBsb3dlck9wYWNpdHkgPSAw
Ljg4ZjsKIAogICAgIC8vVG9wIGxpbmUKLSAgICBDR0NvbnRleHRTZXRMaW5lRGFzaChjb250ZXh0
LCBlZGdlX29mZnNldCwgZWRnZV9kYXNoX2xlbmd0aHMsIAotICAgICAgICAgICAgICAgICAgICAg
ICAgIHNpemVvZihlZGdlX2Rhc2hfbGVuZ3RocykgLyBzaXplb2YoZWRnZV9kYXNoX2xlbmd0aHNb
MF0pKTsKKyAgICBDR0NvbnRleHRTZXRMaW5lRGFzaChjb250ZXh0LCBlZGdlX29mZnNldCwgZWRn
ZV9kYXNoX2xlbmd0aHMsIFdURl9BUlJBWV9MRU5HVEgoZWRnZV9kYXNoX2xlbmd0aHMpKTsKICAg
ICBDR0NvbnRleHRTZXRBbHBoYShjb250ZXh0LCB1cHBlck9wYWNpdHkpOwogICAgIENHQ29udGV4
dFN0cm9rZUxpbmVTZWdtZW50cyhjb250ZXh0LCB1cHBlclBvaW50cywgMik7CiAgCiAgICAgLy8g
TWlkZGxlIGxpbmUKLSAgICBDR0NvbnRleHRTZXRMaW5lRGFzaChjb250ZXh0LCBtaWRkbGVfb2Zm
c2V0LCBtaWRkbGVfZGFzaF9sZW5ndGhzLCAKLSAgICAgICAgICAgICAgICAgICAgICAgICBzaXpl
b2YobWlkZGxlX2Rhc2hfbGVuZ3RocykgLyBzaXplb2YobWlkZGxlX2Rhc2hfbGVuZ3Roc1swXSkp
OworICAgIENHQ29udGV4dFNldExpbmVEYXNoKGNvbnRleHQsIG1pZGRsZV9vZmZzZXQsIG1pZGRs
ZV9kYXNoX2xlbmd0aHMsIFdURl9BUlJBWV9MRU5HVEgobWlkZGxlX2Rhc2hfbGVuZ3RocykpOwog
ICAgIENHQ29udGV4dFNldEFscGhhKGNvbnRleHQsIG1pZGRsZU9wYWNpdHkpOwogICAgIENHQ29u
dGV4dFN0cm9rZUxpbmVTZWdtZW50cyhjb250ZXh0LCBtaWRkbGVQb2ludHMsIDIpOwogICAgIAog
ICAgIC8vIEJvdHRvbSBsaW5lCi0gICAgQ0dDb250ZXh0U2V0TGluZURhc2goY29udGV4dCwgZWRn
ZV9vZmZzZXQsIGVkZ2VfZGFzaF9sZW5ndGhzLAotICAgICAgICAgICAgICAgICAgICAgICAgIHNp
emVvZihlZGdlX2Rhc2hfbGVuZ3RocykgLyBzaXplb2YoZWRnZV9kYXNoX2xlbmd0aHNbMF0pKTsK
KyAgICBDR0NvbnRleHRTZXRMaW5lRGFzaChjb250ZXh0LCBlZGdlX29mZnNldCwgZWRnZV9kYXNo
X2xlbmd0aHMsIFdURl9BUlJBWV9MRU5HVEgoZWRnZV9kYXNoX2xlbmd0aHMpKTsKICAgICBDR0Nv
bnRleHRTZXRBbHBoYShjb250ZXh0LCBsb3dlck9wYWNpdHkpOwogICAgIENHQ29udGV4dFN0cm9r
ZUxpbmVTZWdtZW50cyhjb250ZXh0LCBsb3dlclBvaW50cywgMik7CiAKZGlmZiAtLWdpdCBhL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL01lZGlhUGxheWVyUHJpdmF0ZVF1aWNrVGltZVZp
c3VhbENvbnRleHQuY3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vTWVkaWFQbGF5
ZXJQcml2YXRlUXVpY2tUaW1lVmlzdWFsQ29udGV4dC5jcHAKaW5kZXggOGVhZjJhOS4uODY0YjQw
YiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vTWVkaWFQbGF5ZXJQ
cml2YXRlUXVpY2tUaW1lVmlzdWFsQ29udGV4dC5jcHAKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy93aW4vTWVkaWFQbGF5ZXJQcml2YXRlUXVpY2tUaW1lVmlzdWFsQ29udGV4dC5jcHAK
QEAgLTMxNiw3ICszMTYsNyBAQCBzdGF0aWMgdm9pZCBkaXNhYmxlQ29tcG9uZW50c09uY2UoKQog
ICAgICAgICB7J2VhdCAnLCAnVEVYVCcsICd0eDNnJywgMCwgMH0sICAKICAgICB9OwogCi0gICAg
Zm9yIChzaXplX3QgaSA9IDA7IGkgPCBzaXplb2YoY29tcG9uZW50c1RvRGlzYWJsZSkgLyBzaXpl
b2YoY29tcG9uZW50c1RvRGlzYWJsZVswXSk7ICsraSkgCisgICAgZm9yIChzaXplX3QgaSA9IDA7
IGkgPCBXVEZfQVJSQVlfTEVOR1RIKGNvbXBvbmVudHNUb0Rpc2FibGUpOyArK2kpIAogICAgICAg
ICBRVE1vdmllOjpkaXNhYmxlQ29tcG9uZW50KGNvbXBvbmVudHNUb0Rpc2FibGVbaV0pOwogfQog
CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9RVE1vdmllLmNwcCBi
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL1FUTW92aWUuY3BwCmluZGV4IGU0MjViZjgu
Ljk2MjFkOGQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL1FUTW92
aWUuY3BwCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL1FUTW92aWUuY3BwCkBA
IC01NDgsNyArNTQ4LDcgQEAgdm9pZCBRVE1vdmllOjpsb2FkKENGVVJMUmVmIHVybCwgYm9vbCBw
cmVzZXJ2ZXNQaXRjaCkKICAgICBtb3ZpZVByb3BzW21vdmllUHJvcENvdW50XS5wcm9wU3RhdHVz
ID0gMDsgCiAgICAgbW92aWVQcm9wQ291bnQrKzsgCiAKLSAgICBBU1NFUlQobW92aWVQcm9wQ291
bnQgPD0gc2l6ZW9mKG1vdmllUHJvcHMpIC8gc2l6ZW9mKG1vdmllUHJvcHNbMF0pKTsKKyAgICBB
U1NFUlQobW92aWVQcm9wQ291bnQgPD0gV1RGX0FSUkFZX0xFTkdUSChtb3ZpZVByb3BzKSk7CiAg
ICAgbV9wcml2YXRlLT5tX2xvYWRFcnJvciA9IE5ld01vdmllRnJvbVByb3BlcnRpZXMobW92aWVQ
cm9wQ291bnQsIG1vdmllUHJvcHMsIDAsIDAsICZtX3ByaXZhdGUtPm1fbW92aWUpOwogCiBlbmQ6
CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvU29ja2V0U3RyZWFtSGFu
ZGxlQ0ZOZXQuY3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL1NvY2tldFN0cmVhbUhh
bmRsZUNGTmV0LmNwcAppbmRleCA4MDAzMDFhLi40ZWJjMWQ5IDEwMDY0NAotLS0gYS9XZWJDb3Jl
L3BsYXRmb3JtL25ldHdvcmsvY2YvU29ja2V0U3RyZWFtSGFuZGxlQ0ZOZXQuY3BwCisrKyBiL1dl
YkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9Tb2NrZXRTdHJlYW1IYW5kbGVDRk5ldC5jcHAKQEAg
LTMzMiw3ICszMzIsNyBAQCB2b2lkIFNvY2tldFN0cmVhbUhhbmRsZTo6Y3JlYXRlU3RyZWFtcygp
CiAgICAgICAgIC8vIEJ1dCBTT0NLUzUgY3JlZGVudGlhbHMgZG9uJ3Qgd29yayBhdCB0aGUgdGlt
ZSBvZiB0aGlzIHdyaXRpbmcgYW55d2F5LCBzZWUgPHJkYXI6Ly82Nzc2Njk4Pi4KICAgICAgICAg
Y29uc3Qgdm9pZCogcHJveHlLZXlzW10gPSB7IGtDRlN0cmVhbVByb3BlcnR5U09DS1NQcm94eUhv
c3QsIGtDRlN0cmVhbVByb3BlcnR5U09DS1NQcm94eVBvcnQgfTsKICAgICAgICAgY29uc3Qgdm9p
ZCogcHJveHlWYWx1ZXNbXSA9IHsgbV9wcm94eUhvc3QuZ2V0KCksIG1fcHJveHlQb3J0LmdldCgp
IH07Ci0gICAgICAgIFJldGFpblB0cjxDRkRpY3Rpb25hcnlSZWY+IGNvbm5lY3REaWN0aW9uYXJ5
KEFkb3B0Q0YsIENGRGljdGlvbmFyeUNyZWF0ZSgwLCBwcm94eUtleXMsIHByb3h5VmFsdWVzLCBz
aXplb2YocHJveHlLZXlzKSAvIHNpemVvZigqcHJveHlLZXlzKSwgJmtDRlR5cGVEaWN0aW9uYXJ5
S2V5Q2FsbEJhY2tzLCAma0NGVHlwZURpY3Rpb25hcnlWYWx1ZUNhbGxCYWNrcykpOworICAgICAg
ICBSZXRhaW5QdHI8Q0ZEaWN0aW9uYXJ5UmVmPiBjb25uZWN0RGljdGlvbmFyeShBZG9wdENGLCBD
RkRpY3Rpb25hcnlDcmVhdGUoMCwgcHJveHlLZXlzLCBwcm94eVZhbHVlcywgV1RGX0FSUkFZX0xF
TkdUSChwcm94eUtleXMpLCAma0NGVHlwZURpY3Rpb25hcnlLZXlDYWxsQmFja3MsICZrQ0ZUeXBl
RGljdGlvbmFyeVZhbHVlQ2FsbEJhY2tzKSk7CiAgICAgICAgIENGUmVhZFN0cmVhbVNldFByb3Bl
cnR5KG1fcmVhZFN0cmVhbS5nZXQoKSwga0NGU3RyZWFtUHJvcGVydHlTT0NLU1Byb3h5LCBjb25u
ZWN0RGljdGlvbmFyeS5nZXQoKSk7CiAgICAgICAgIGJyZWFrOwogICAgICAgICB9CkBAIC0zNDQs
NyArMzQ0LDcgQEAgdm9pZCBTb2NrZXRTdHJlYW1IYW5kbGU6OmNyZWF0ZVN0cmVhbXMoKQogICAg
IGlmIChzaG91bGRVc2VTU0woKSkgewogICAgICAgICBjb25zdCB2b2lkKiBrZXlzW10gPSB7IGtD
RlN0cmVhbVNTTFBlZXJOYW1lLCBrQ0ZTdHJlYW1TU0xMZXZlbCB9OwogICAgICAgICBjb25zdCB2
b2lkKiB2YWx1ZXNbXSA9IHsgaG9zdC5nZXQoKSwga0NGU3RyZWFtU29ja2V0U2VjdXJpdHlMZXZl
bE5lZ290aWF0ZWRTU0wgfTsKLSAgICAgICAgUmV0YWluUHRyPENGRGljdGlvbmFyeVJlZj4gc2V0
dGluZ3MoQWRvcHRDRiwgQ0ZEaWN0aW9uYXJ5Q3JlYXRlKDAsIGtleXMsIHZhbHVlcywgc2l6ZW9m
KGtleXMpIC8gc2l6ZW9mKCprZXlzKSwgJmtDRlR5cGVEaWN0aW9uYXJ5S2V5Q2FsbEJhY2tzLCAm
a0NGVHlwZURpY3Rpb25hcnlWYWx1ZUNhbGxCYWNrcykpOworICAgICAgICBSZXRhaW5QdHI8Q0ZE
aWN0aW9uYXJ5UmVmPiBzZXR0aW5ncyhBZG9wdENGLCBDRkRpY3Rpb25hcnlDcmVhdGUoMCwga2V5
cywgdmFsdWVzLCBXVEZfQVJSQVlfTEVOR1RIKGtleXMpLCAma0NGVHlwZURpY3Rpb25hcnlLZXlD
YWxsQmFja3MsICZrQ0ZUeXBlRGljdGlvbmFyeVZhbHVlQ2FsbEJhY2tzKSk7CiAgICAgICAgIENG
UmVhZFN0cmVhbVNldFByb3BlcnR5KG1fcmVhZFN0cmVhbS5nZXQoKSwga0NGU3RyZWFtUHJvcGVy
dHlTU0xTZXR0aW5ncywgc2V0dGluZ3MuZ2V0KCkpOwogICAgICAgICBDRldyaXRlU3RyZWFtU2V0
UHJvcGVydHkobV93cml0ZVN0cmVhbS5nZXQoKSwga0NGU3RyZWFtUHJvcGVydHlTU0xTZXR0aW5n
cywgc2V0dGluZ3MuZ2V0KCkpOwogICAgIH0KZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0v
dGV4dC9UZXh0RW5jb2RpbmdSZWdpc3RyeS5jcHAgYi9XZWJDb3JlL3BsYXRmb3JtL3RleHQvVGV4
dEVuY29kaW5nUmVnaXN0cnkuY3BwCmluZGV4IGZiZTU4MjYuLmZjM2IzOTYgMTAwNjQ0Ci0tLSBh
L1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9UZXh0RW5jb2RpbmdSZWdpc3RyeS5jcHAKKysrIGIvV2Vi
Q29yZS9wbGF0Zm9ybS90ZXh0L1RleHRFbmNvZGluZ1JlZ2lzdHJ5LmNwcApAQCAtMTg5LDggKzE4
OSw3IEBAIHN0YXRpYyB2b2lkIGFkZFRvVGV4dENvZGVjTWFwKGNvbnN0IGNoYXIqIG5hbWUsIE5l
d1RleHRDb2RlY0Z1bmN0aW9uIGZ1bmN0aW9uLCBjCiAKIHN0YXRpYyB2b2lkIHBydW5lQmxhY2ts
aXN0ZWRDb2RlY3MoKQogewotICAgIHNpemVfdCBibGFja2xpc3RlZENvZGVjTGlzdExlbmd0aCA9
IHNpemVvZih0ZXh0RW5jb2RpbmdOYW1lQmxhY2tsaXN0KSAvIHNpemVvZih0ZXh0RW5jb2RpbmdO
YW1lQmxhY2tsaXN0WzBdKTsKLSAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGJsYWNrbGlzdGVk
Q29kZWNMaXN0TGVuZ3RoOyArK2kpIHsKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IFdURl9B
UlJBWV9MRU5HVEgodGV4dEVuY29kaW5nTmFtZUJsYWNrbGlzdCk7ICsraSkgewogICAgICAgICBj
b25zdCBjaGFyKiBhdG9taWNOYW1lID0gdGV4dEVuY29kaW5nTmFtZU1hcC0+Z2V0KHRleHRFbmNv
ZGluZ05hbWVCbGFja2xpc3RbaV0pOwogICAgICAgICBpZiAoIWF0b21pY05hbWUpCiAgICAgICAg
ICAgICBjb250aW51ZTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC90cmFuc2Nv
ZGVyL0ZvbnRUcmFuc2NvZGVyLmNwcCBiL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC90cmFuc2NvZGVy
L0ZvbnRUcmFuc2NvZGVyLmNwcAppbmRleCA4ZTJmMzNmLi4zZThjZmFhIDEwMDY0NAotLS0gYS9X
ZWJDb3JlL3BsYXRmb3JtL3RleHQvdHJhbnNjb2Rlci9Gb250VHJhbnNjb2Rlci5jcHAKKysrIGIv
V2ViQ29yZS9wbGF0Zm9ybS90ZXh0L3RyYW5zY29kZXIvRm9udFRyYW5zY29kZXIuY3BwCkBAIC00
MSwyMyArNDEsMjMgQEAgRm9udFRyYW5zY29kZXI6OkZvbnRUcmFuc2NvZGVyKCkKIHsKICAgICBt
X2NvbnZlcnRlclR5cGVzLmFkZCgiTVMgUEdvdGhpYyIsIEJhY2tzbGFzaFRvWWVuU2lnbik7CiAg
ICAgVUNoYXIgdW5pY29kZU5hbWVNU1BHb3RoaWNbXSA9IHsweEZGMkQsIDB4RkYzMywgMHgwMDIw
LCAweEZGMzAsIDB4MzBCNCwgMHgzMEI3LCAweDMwQzMsIDB4MzBBRn07Ci0gICAgbV9jb252ZXJ0
ZXJUeXBlcy5hZGQoQXRvbWljU3RyaW5nKHVuaWNvZGVOYW1lTVNQR290aGljLCBzaXplb2YodW5p
Y29kZU5hbWVNU1BHb3RoaWMpIC8gc2l6ZW9mKFVDaGFyKSksIEJhY2tzbGFzaFRvWWVuU2lnbik7
CisgICAgbV9jb252ZXJ0ZXJUeXBlcy5hZGQoQXRvbWljU3RyaW5nKHVuaWNvZGVOYW1lTVNQR290
aGljLCBXVEZfQVJSQVlfTEVOR1RIKHVuaWNvZGVOYW1lTVNQR290aGljKSksIEJhY2tzbGFzaFRv
WWVuU2lnbik7CiAKICAgICBtX2NvbnZlcnRlclR5cGVzLmFkZCgiTVMgUE1pbmNobyIsIEJhY2tz
bGFzaFRvWWVuU2lnbik7CiAgICAgVUNoYXIgdW5pY29kZU5hbWVNU1BNaW5jaG9bXSA9IHsweEZG
MkQsIDB4RkYzMywgMHgwMDIwLCAweEZGMzAsIDB4NjYwRSwgMHg2NzFEfTsKLSAgICBtX2NvbnZl
cnRlclR5cGVzLmFkZChBdG9taWNTdHJpbmcodW5pY29kZU5hbWVNU1BNaW5jaG8sIHNpemVvZih1
bmljb2RlTmFtZU1TUE1pbmNobykgLyBzaXplb2YoVUNoYXIpKSwgQmFja3NsYXNoVG9ZZW5TaWdu
KTsKKyAgICBtX2NvbnZlcnRlclR5cGVzLmFkZChBdG9taWNTdHJpbmcodW5pY29kZU5hbWVNU1BN
aW5jaG8sIFdURl9BUlJBWV9MRU5HVEgodW5pY29kZU5hbWVNU1BNaW5jaG8pKSwgQmFja3NsYXNo
VG9ZZW5TaWduKTsKIAogICAgIG1fY29udmVydGVyVHlwZXMuYWRkKCJNUyBHb3RoaWMiLCBCYWNr
c2xhc2hUb1llblNpZ24pOwogICAgIFVDaGFyIHVuaWNvZGVOYW1lTVNHb3RoaWNbXSA9IHsweEZG
MkQsIDB4RkYzMywgMHgwMDIwLCAweDMwQjQsIDB4MzBCNywgMHgzMEMzLCAweDMwQUZ9OwotICAg
IG1fY29udmVydGVyVHlwZXMuYWRkKEF0b21pY1N0cmluZyh1bmljb2RlTmFtZU1TR290aGljLCBz
aXplb2YodW5pY29kZU5hbWVNU0dvdGhpYykgLyBzaXplb2YoVUNoYXIpKSwgQmFja3NsYXNoVG9Z
ZW5TaWduKTsKKyAgICBtX2NvbnZlcnRlclR5cGVzLmFkZChBdG9taWNTdHJpbmcodW5pY29kZU5h
bWVNU0dvdGhpYywgV1RGX0FSUkFZX0xFTkdUSCh1bmljb2RlTmFtZU1TR290aGljKSksIEJhY2tz
bGFzaFRvWWVuU2lnbik7CiAKICAgICBtX2NvbnZlcnRlclR5cGVzLmFkZCgiTVMgTWluY2hvIiwg
QmFja3NsYXNoVG9ZZW5TaWduKTsKICAgICBVQ2hhciB1bmljb2RlTmFtZU1TTWluY2hvW10gPSB7
MHhGRjJELCAweEZGMzMsIDB4MDAyMCwgMHg2NjBFLCAweDY3MUR9OwotICAgIG1fY29udmVydGVy
VHlwZXMuYWRkKEF0b21pY1N0cmluZyh1bmljb2RlTmFtZU1TTWluY2hvLCBzaXplb2YodW5pY29k
ZU5hbWVNU01pbmNobykgLyBzaXplb2YoVUNoYXIpKSwgQmFja3NsYXNoVG9ZZW5TaWduKTsKKyAg
ICBtX2NvbnZlcnRlclR5cGVzLmFkZChBdG9taWNTdHJpbmcodW5pY29kZU5hbWVNU01pbmNobywg
V1RGX0FSUkFZX0xFTkdUSCh1bmljb2RlTmFtZU1TTWluY2hvKSksIEJhY2tzbGFzaFRvWWVuU2ln
bik7CiAKICAgICBtX2NvbnZlcnRlclR5cGVzLmFkZCgiTWVpcnlvIiwgQmFja3NsYXNoVG9ZZW5T
aWduKTsKICAgICBVQ2hhciB1bmljb2RlTmFtZU1laXJ5b1tdID0gezB4MzBFMSwgMHgzMEE0LCAw
eDMwRUEsIDB4MzBBQX07Ci0gICAgbV9jb252ZXJ0ZXJUeXBlcy5hZGQoQXRvbWljU3RyaW5nKHVu
aWNvZGVOYW1lTWVpcnlvLCBzaXplb2YodW5pY29kZU5hbWVNZWlyeW8pIC8gc2l6ZW9mKFVDaGFy
KSksIEJhY2tzbGFzaFRvWWVuU2lnbik7CisgICAgbV9jb252ZXJ0ZXJUeXBlcy5hZGQoQXRvbWlj
U3RyaW5nKHVuaWNvZGVOYW1lTWVpcnlvLCBXVEZfQVJSQVlfTEVOR1RIKHVuaWNvZGVOYW1lTWVp
cnlvKSksIEJhY2tzbGFzaFRvWWVuU2lnbik7CiB9CiAKIEZvbnRUcmFuc2NvZGVyOjpDb252ZXJ0
ZXJUeXBlIEZvbnRUcmFuc2NvZGVyOjpjb252ZXJ0ZXJUeXBlKGNvbnN0IEZvbnREZXNjcmlwdGlv
biYgZm9udERlc2NyaXB0aW9uLCBjb25zdCBUZXh0RW5jb2RpbmcqIGVuY29kaW5nKSBjb25zdAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>