<?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>136528</bug_id>
          
          <creation_ts>2014-09-04 04:04:19 -0700</creation_ts>
          <short_desc>Remove Qt cruft: MIMESniffing.cpp and MIMESniffing.h</short_desc>
          <delta_ts>2014-09-04 09:46:44 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</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="Nagy Renátó">rnagy</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>staikos</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1033186</commentid>
    <comment_count>0</comment_count>
    <who name="Nagy Renátó">rnagy</who>
    <bug_when>2014-09-04 04:04:19 -0700</bug_when>
    <thetext>We can delete MIMESniffing.cpp and MIMESniffing.h, because they are not used since Qt dropped.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1033187</commentid>
    <comment_count>1</comment_count>
      <attachid>237619</attachid>
    <who name="Nagy Renátó">rnagy</who>
    <bug_when>2014-09-04 04:05:31 -0700</bug_when>
    <thetext>Created attachment 237619
Proposed patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1033224</commentid>
    <comment_count>2</comment_count>
      <attachid>237619</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-09-04 09:46:42 -0700</bug_when>
    <thetext>Comment on attachment 237619
Proposed patch

Clearing flags on attachment: 237619

Committed r173261: &lt;http://trac.webkit.org/changeset/173261&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1033225</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-09-04 09:46:44 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>237619</attachid>
            <date>2014-09-04 04:05:31 -0700</date>
            <delta_ts>2014-09-04 09:46:41 -0700</delta_ts>
            <desc>Proposed patch</desc>
            <filename>0001-Remove-Qt-cruft-MIMESniffing.cpp-and-MIMESniffing.h.patch</filename>
            <type>text/plain</type>
            <size>21978</size>
            <attacher name="Nagy Renátó">rnagy</attacher>
            
              <data encoding="base64">RnJvbSBlZjU1MWE2MDljMTQzOTAxYjQ5YzUxNGMxYjNmMTE2YjBhMWE0ZWNlIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBSZW5hdG8gTmFneSA8cm5hZ3lAaW5mLnUtc3plZ2VkLmh1PgpE
YXRlOiBUaHUsIDQgU2VwIDIwMTQgMTM6MDI6MTIgKzAyMDAKU3ViamVjdDogW1BBVENIXSBSZW1v
dmUgUXQgY3J1ZnQ6IE1JTUVTbmlmZmluZy5jcHAgYW5kIE1JTUVTbmlmZmluZy5oCgotLS0KIFNv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAgICB8ICAxMCArCiBT
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL01JTUVTbmlmZmluZy5jcHAgfCA1MjEgLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0KIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvTUlN
RVNuaWZmaW5nLmggICB8ICA0MSAtLQogMyBmaWxlcyBjaGFuZ2VkLCAxMCBpbnNlcnRpb25zKCsp
LCA1NjIgZGVsZXRpb25zKC0pCiBkZWxldGUgbW9kZSAxMDA2NDQgU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbmV0d29yay9NSU1FU25pZmZpbmcuY3BwCiBkZWxldGUgbW9kZSAxMDA2NDQgU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9NSU1FU25pZmZpbmcuaAoKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBm
MzEwYTMwLi5lZjI1ZGI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysr
IGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTQtMDktMDQg
IFJlbmF0byBOYWd5ICA8cm5hZ3lAaW5mLnUtc3plZ2VkLmh1PgorCisgICAgICAgIFJlbW92ZSBR
dCBjcnVmdDogTUlNRVNuaWZmaW5nLmNwcCBhbmQgTUlNRVNuaWZmaW5nLmgKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzNjUyOAorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9N
SU1FU25pZmZpbmcuY3BwOiBSZW1vdmVkLgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvTUlN
RVNuaWZmaW5nLmg6IFJlbW92ZWQuCisKIDIwMTQtMDgtMzEgIEd5dXlvdW5nIEtpbSAgPGd5dXlv
dW5nLmtpbUBzYW1zdW5nLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLCBmaXggYnVpbGQgYnJl
YWsgb24gRUZMIGFuZCBHVEsgc2luY2UgcjE3MzE1Mi4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL25ldHdvcmsvTUlNRVNuaWZmaW5nLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL25ldHdvcmsvTUlNRVNuaWZmaW5nLmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMjdhZWZjYi4uMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3
b3JrL01JTUVTbmlmZmluZy5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSw1MjEgKzAsMCBAQAotLyoK
LSAgICBDb3B5cmlnaHQgKEMpIDIwMTEgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJz
aWRpYXJ5KC1pZXMpCi0KLSAgICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNh
biByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCi0gICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBv
ZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKLSAgICBMaWNlbnNlIGFzIHB1Ymxpc2hl
ZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKLSAgICB2ZXJzaW9uIDIg
b2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCi0K
LSAgICBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxs
IGJlIHVzZWZ1bCwKLSAgICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0
aGUgaW1wbGllZCB3YXJyYW50eSBvZgotICAgIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCi0gICAgTGlicmFyeSBHZW5lcmFs
IFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCi0KLSAgICBZb3Ugc2hvdWxkIGhhdmUg
cmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNl
Ci0gICAgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4g
IElmIG5vdCwgd3JpdGUgdG8KLSAgICB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMu
LCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAotICAgIEJvc3RvbiwgTUEgMDIxMTAt
MTMwMSwgVVNBLgotKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIk1JTUVTbmlm
ZmluZy5oIgotCi0jaW5jbHVkZSA8Y3N0cmluZz4KLSNpbmNsdWRlIDxzdGRpbnQuaD4KLSNpbmNs
dWRlIDx3dGYvU3RkTGliRXh0cmFzLmg+Ci0KLXVzaW5nIG5hbWVzcGFjZSBzdGQ7Ci0KLS8vIE1J
TUUgdHlwZSBzbmlmZmluZyBpbXBsZW1lbnRhdGlvbiBiYXNlZCBvbiBodHRwOi8vdG9vbHMuaWV0
Zi5vcmcvaHRtbC9kcmFmdC1hYmFydGgtbWltZS1zbmlmZi0wNgotCi1uYW1lc3BhY2UgewotCi1z
dGF0aWMgaW5saW5lIGJvb2wgaXNUZXh0SW5MaXN0KGNvbnN0IGNoYXIqIHRleHQsIHNpemVfdCBz
aXplLCBjb25zdCBjaGFyKiogZGF0YSkKLXsKLSAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHNp
emU7ICsraSkgewotICAgICAgICBpZiAoIXN0cmNtcCh0ZXh0LCBkYXRhW2ldKSkKLSAgICAgICAg
ICAgIHJldHVybiB0cnVlOwotICAgIH0KLSAgICByZXR1cm4gZmFsc2U7Ci0KLX0KLQotLy8gaHR0
cDovL3Rvb2xzLmlldGYub3JnL2h0bWwvZHJhZnQtYWJhcnRoLW1pbWUtc25pZmYtMDYjcGFnZS02
Ci1jb25zdCBjaGFyKiB0ZXh0VHlwZXNbXSA9IHsKLSAgICAidGV4dC9wbGFpbiIsCi0gICAgInRl
eHQvcGxhaW47IGNoYXJzZXQ9SVNPLTg4NTktMSIsCi0gICAgInRleHQvcGxhaW47IGNoYXJzZXQ9
aXNvLTg4NTktMSIsCi0gICAgInRleHQvcGxhaW47IGNoYXJzZXQ9VVRGLTgiCi19OwotY29uc3Qg
c2l6ZV90IHRleHRUeXBlc1NpemUgPSBzaXplb2YodGV4dFR5cGVzKSAvIHNpemVvZih0ZXh0VHlw
ZXNbMF0pOwotCi1zdGF0aWMgaW5saW5lIGJvb2wgaXNUZXh0T3JCaW5hcnlUeXBlKGNvbnN0IGNo
YXIqIHR5cGUpCi17Ci0gICAgcmV0dXJuIGlzVGV4dEluTGlzdCh0eXBlLCB0ZXh0VHlwZXNTaXpl
LCB0ZXh0VHlwZXMpOwotfQotCi0vLyBodHRwOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9kcmFmdC1h
YmFydGgtbWltZS1zbmlmZi0wNiNwYWdlLTYKLWNvbnN0IGNoYXIqIHVua25vd25UeXBlc1tdID0g
ewotICAgICIiLAotICAgICJ1bmtub3duL3Vua25vd24iLAotICAgICJhcHBsaWNhdGlvbi91bmtu
b3duIiwKLSAgICAiKi8qIgotfTsKLWNvbnN0IHNpemVfdCB1bmtub3duVHlwZXNTaXplID0gc2l6
ZW9mKHVua25vd25UeXBlcykgLyBzaXplb2YodW5rbm93blR5cGVzWzBdKTsKLQotc3RhdGljIGlu
bGluZSBib29sIGlzVW5rbm93blR5cGUoY29uc3QgY2hhciogdHlwZSkKLXsKLSAgICBpZiAoaXNU
ZXh0SW5MaXN0KHR5cGUsIHVua25vd25UeXBlc1NpemUsIHVua25vd25UeXBlcykpCi0gICAgICAg
IHJldHVybiB0cnVlOwotICAgIGlmICghc3RyY2hyKHR5cGUsICcvJykpIHsKLSAgICAgICAgLy8g
RmlyZWZveC9DaHJvbWUgcmVqZWN0cyBhIG1pbWUgdHlwZSBpZiBpdCBkb2VzIG5vdCBjb250YWlu
IGEgc2xhc2guCi0gICAgICAgIHJldHVybiB0cnVlOwotICAgIH0KLSAgICByZXR1cm4gZmFsc2U7
Ci19Ci0KLWNvbnN0IGNoYXIqIHhtbFR5cGVzW10gPSB7Ci0gICAgInRleHQveG1sIiwKLSAgICAi
YXBwbGljYXRpb24veG1sIgotfTsKLWNvbnN0IHNpemVfdCB4bWxUeXBlc1NpemUgPSBzaXplb2Yo
eG1sVHlwZXMpIC8gc2l6ZW9mKHhtbFR5cGVzWzBdKTsKLQotY29uc3QgY2hhciB4bWxTdWZmaXhb
XSA9ICIreG1sIjsKLQotc3RhdGljIGlubGluZSBib29sIGlzWE1MVHlwZShjb25zdCBjaGFyKiB0
eXBlKQotewotICAgIGNvbnN0IHNpemVfdCB4bWxTdWZmaXhTaXplID0gc2l6ZW9mKHhtbFN1ZmZp
eCkgLSAxOwotICAgIHNpemVfdCB0eXBlU2l6ZSA9IHN0cmxlbih0eXBlKTsKLSAgICBpZiAodHlw
ZVNpemUgPj0geG1sU3VmZml4U2l6ZSAmJiAhbWVtY21wKHR5cGUgKyB0eXBlU2l6ZSAtIHhtbFN1
ZmZpeFNpemUsIHhtbFN1ZmZpeCwgeG1sU3VmZml4U2l6ZSkpCi0gICAgICAgIHJldHVybiB0cnVl
OwotCi0gICAgcmV0dXJuIGlzVGV4dEluTGlzdCh0eXBlLCB4bWxUeXBlc1NpemUsIHhtbFR5cGVz
KTsKLX0KLQotLy8gaHR0cDovL3Rvb2xzLmlldGYub3JnL2h0bWwvZHJhZnQtYWJhcnRoLW1pbWUt
c25pZmYtMDYjcGFnZS04Ci1jb25zdCBjaGFyIGJpbmFyeUZsYWdzWzI1Nl0gPSB7Ci0gICAgMSwg
MSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMCwgMCwgMSwgMCwgMCwgMSwgMSwKLSAgICAxLCAxLCAx
LCAxLCAxLCAxLCAxLCAxLCAxLCAxLCAxLCAwLCAxLCAxLCAxLCAxLAotICAgIDAsIDAsIDAsIDAs
IDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsCi0gICAgMCwgMCwgMCwgMCwgMCwg
MCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwKLSAgICAwLCAwLCAwLCAwLCAwLCAwLCAw
LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLAotICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAs
IDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsCi0gICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwg
MCwgMCwgMCwgMCwgMCwgMCwgMCwKLSAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAw
LCAwLCAwLCAwLCAwLCAwLAotICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAs
IDAsIDAsIDAsIDAsCi0gICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwg
MCwgMCwgMCwKLSAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAw
LCAwLAotICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAs
Ci0gICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwKLSAg
ICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLAotICAgIDAs
IDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsCi0gICAgMCwgMCwg
MCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMAotfTsKLQotc3RhdGljIGlu
bGluZSBib29sIGlzQmluYXJ5Q2hhcih1bnNpZ25lZCBjaGFyIGRhdGEpCi17Ci0gICAgcmV0dXJu
IGJpbmFyeUZsYWdzW2RhdGFdOwotfQotCi1zdGF0aWMgaW5saW5lIGJvb2wgaXNCaW5hcnlEYXRh
KGNvbnN0IGNoYXIqIGRhdGEsIHNpemVfdCBzaXplKQotewotICAgIGZvciAoc2l6ZV90IGkgPSAw
OyBpIDwgc2l6ZTsgKytpKSB7Ci0gICAgICAgIGlmIChpc0JpbmFyeUNoYXIoZGF0YVtpXSkpCi0g
ICAgICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICB9Ci0gICAgcmV0dXJuIGZhbHNlOwotfQotCi0v
LyBodHRwOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9kcmFmdC1hYmFydGgtbWltZS1zbmlmZi0wNiNw
YWdlLTExCi1jb25zdCBjaGFyIHdoaXRlU3BhY2VDaGFyc1syNTZdID0gewotICAgIDAsIDAsIDAs
IDAsIDAsIDAsIDAsIDAsIDAsIDEsIDEsIDAsIDEsIDEsIDAsIDAsCi0gICAgMCwgMCwgMCwgMCwg
MCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwKLSAgICAxLCAwLCAwLCAwLCAwLCAw
LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLAotICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAs
IDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsCi0gICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwg
MCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwKLSAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAw
LCAwLCAwLCAwLCAwLCAwLCAwLAotICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAs
IDAsIDAsIDAsIDAsIDAsCi0gICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwg
MCwgMCwgMCwgMCwKLSAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAw
LCAwLCAwLAotICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAs
IDAsCi0gICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwK
LSAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLAotICAg
IDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsCi0gICAgMCwg
MCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwKLSAgICAwLCAwLCAw
LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLAotICAgIDAsIDAsIDAsIDAs
IDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAKLX07Ci0KLXN0YXRpYyBpbmxpbmUg
Ym9vbCBpc1doaXRlU3BhY2UodW5zaWduZWQgY2hhciBkYXRhKQotewotICAgIHJldHVybiB3aGl0
ZVNwYWNlQ2hhcnNbZGF0YV07Ci19Ci0KLXN0YXRpYyBpbmxpbmUgdm9pZCBza2lwV2hpdGVTcGFj
ZShjb25zdCBjaGFyKiBkYXRhLCBzaXplX3QmIHBvcywgc2l6ZV90IGRhdGFTaXplKQotewotICAg
IHdoaWxlIChwb3MgPCBkYXRhU2l6ZSAmJiBpc1doaXRlU3BhY2UoZGF0YVtwb3NdKSkKLSAgICAg
ICAgKytwb3M7Ci19Ci0KLWVudW0gewotICAgIFNraXBXaGl0ZVNwYWNlID0gMSwKLSAgICBUcmFp
bGluZ1NwYWNlT3JCcmFja2V0ID0gMgotfTsKLQotc3RydWN0IE1hZ2ljTnVtYmVycyB7Ci0gICAg
Y29uc3QgY2hhciogcGF0dGVybjsKLSAgICBjb25zdCBjaGFyKiBtYXNrOwotICAgIGNvbnN0IGNo
YXIqIG1pbWVUeXBlOwotICAgIHNpemVfdCBzaXplOwotICAgIGludCBmbGFnczsKLX07Ci0KLSNk
ZWZpbmUgTUFHSUNfTlVNQkVSU19NQVNLRUQocGF0dGVybiwgbWFzaywgbWltZVR5cGUsIGZsYWdz
KSB7KHBhdHRlcm4pLCAobWFzayksIChtaW1lVHlwZSksIHNpemVvZihwYXR0ZXJuKSAtIDEsIChm
bGFncyl9Ci0jZGVmaW5lIE1BR0lDX05VTUJFUlNfU0lNUExFKHBhdHRlcm4sIG1pbWVUeXBlKSB7
KHBhdHRlcm4pLCAwLCAobWltZVR5cGUpLCBzaXplb2YocGF0dGVybikgLSAxLCAwfQotCi0vLyBo
dHRwOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9kcmFmdC1hYmFydGgtbWltZS1zbmlmZi0wNiNwYWdl
LTEyCi1jb25zdCBNYWdpY051bWJlcnMgc2VjdXJpdHlDb25zdHJhaW5lZFR5cGVzW10gPSB7Ci0g
ICAgTUFHSUNfTlVNQkVSU19NQVNLRUQoIjwhRE9DVFlQRSBIVE1MIiwgIlx4RkZceEZGXHhERlx4
REZceERGXHhERlx4REZceERGXHhERlx4RkZceERGXHhERlx4REZceERGIiwgInRleHQvaHRtbCIs
IFNraXBXaGl0ZVNwYWNlIHwgVHJhaWxpbmdTcGFjZU9yQnJhY2tldCksCi0gICAgTUFHSUNfTlVN
QkVSU19NQVNLRUQoIjxIVE1MIiwgIlx4RkZceERGXHhERlx4REZceERGIiwgInRleHQvaHRtbCIs
IFNraXBXaGl0ZVNwYWNlIHwgVHJhaWxpbmdTcGFjZU9yQnJhY2tldCksCi0gICAgTUFHSUNfTlVN
QkVSU19NQVNLRUQoIjxIRUFEIiwgIlx4RkZceERGXHhERlx4REZceERGIiwgInRleHQvaHRtbCIs
IFNraXBXaGl0ZVNwYWNlIHwgVHJhaWxpbmdTcGFjZU9yQnJhY2tldCksCi0gICAgTUFHSUNfTlVN
QkVSU19NQVNLRUQoIjxTQ1JJUFQiLCAiXHhGRlx4REZceERGXHhERlx4REZceERGXHhERiIsICJ0
ZXh0L2h0bWwiLCBTa2lwV2hpdGVTcGFjZSB8IFRyYWlsaW5nU3BhY2VPckJyYWNrZXQpLAotICAg
IE1BR0lDX05VTUJFUlNfTUFTS0VEKCI8SUZSQU1FIiwgIlx4RkZceERGXHhERlx4REZceERGXHhE
Rlx4REYiLCAidGV4dC9odG1sIiwgU2tpcFdoaXRlU3BhY2UgfCBUcmFpbGluZ1NwYWNlT3JCcmFj
a2V0KSwKLSAgICBNQUdJQ19OVU1CRVJTX01BU0tFRCgiPEgxIiwgIlx4RkZceERGXHhGRiIsICJ0
ZXh0L2h0bWwiLCBTa2lwV2hpdGVTcGFjZSB8IFRyYWlsaW5nU3BhY2VPckJyYWNrZXQpLAotICAg
IE1BR0lDX05VTUJFUlNfTUFTS0VEKCI8RElWIiwgIlx4RkZceERGXHhERlx4REYiLCAidGV4dC9o
dG1sIiwgU2tpcFdoaXRlU3BhY2UgfCBUcmFpbGluZ1NwYWNlT3JCcmFja2V0KSwKLSAgICBNQUdJ
Q19OVU1CRVJTX01BU0tFRCgiPEZPTlQiLCAiXHhGRlx4REZceERGXHhERlx4REYiLCAidGV4dC9o
dG1sIiwgU2tpcFdoaXRlU3BhY2UgfCBUcmFpbGluZ1NwYWNlT3JCcmFja2V0KSwKLSAgICBNQUdJ
Q19OVU1CRVJTX01BU0tFRCgiPFRBQkxFIiwgIlx4RkZceERGXHhERlx4REZceERGXHhERiIsICJ0
ZXh0L2h0bWwiLCBTa2lwV2hpdGVTcGFjZSB8IFRyYWlsaW5nU3BhY2VPckJyYWNrZXQpLAotICAg
IE1BR0lDX05VTUJFUlNfTUFTS0VEKCI8QSIsICJceEZGXHhERiIsICJ0ZXh0L2h0bWwiLCBTa2lw
V2hpdGVTcGFjZSB8IFRyYWlsaW5nU3BhY2VPckJyYWNrZXQpLAotICAgIE1BR0lDX05VTUJFUlNf
TUFTS0VEKCI8U1RZTEUiLCAiXHhGRlx4REZceERGXHhERlx4REZceERGIiwgInRleHQvaHRtbCIs
IFNraXBXaGl0ZVNwYWNlIHwgVHJhaWxpbmdTcGFjZU9yQnJhY2tldCksCi0gICAgTUFHSUNfTlVN
QkVSU19NQVNLRUQoIjxUSVRMRSIsICJceEZGXHhERlx4REZceERGXHhERlx4REYiLCAidGV4dC9o
dG1sIiwgU2tpcFdoaXRlU3BhY2UgfCBUcmFpbGluZ1NwYWNlT3JCcmFja2V0KSwKLSAgICBNQUdJ
Q19OVU1CRVJTX01BU0tFRCgiPEIiLCAiXHhGRlx4REYiLCAidGV4dC9odG1sIiwgU2tpcFdoaXRl
U3BhY2UgfCBUcmFpbGluZ1NwYWNlT3JCcmFja2V0KSwKLSAgICBNQUdJQ19OVU1CRVJTX01BU0tF
RCgiPEJPRFkiLCAiXHhGRlx4REZceERGXHhERlx4REYiLCAidGV4dC9odG1sIiwgU2tpcFdoaXRl
U3BhY2UgfCBUcmFpbGluZ1NwYWNlT3JCcmFja2V0KSwKLSAgICBNQUdJQ19OVU1CRVJTX01BU0tF
RCgiPEJSIiwgIlx4RkZceERGXHhERiIsICJ0ZXh0L2h0bWwiLCBTa2lwV2hpdGVTcGFjZSB8IFRy
YWlsaW5nU3BhY2VPckJyYWNrZXQpLAotICAgIE1BR0lDX05VTUJFUlNfTUFTS0VEKCI8UCIsICJc
eEZGXHhERiIsICJ0ZXh0L2h0bWwiLCBTa2lwV2hpdGVTcGFjZSB8IFRyYWlsaW5nU3BhY2VPckJy
YWNrZXQpLAotICAgIE1BR0lDX05VTUJFUlNfTUFTS0VEKCI8IS0tIiwgMCwgInRleHQvaHRtbCIs
IFNraXBXaGl0ZVNwYWNlIHwgVHJhaWxpbmdTcGFjZU9yQnJhY2tldCksCi0gICAgTUFHSUNfTlVN
QkVSU19NQVNLRUQoIjw/eG1sIiwgMCwgInRleHQveG1sIiwgU2tpcFdoaXRlU3BhY2UpLAotICAg
IE1BR0lDX05VTUJFUlNfU0lNUExFKCIlUERGLSIsICJhcHBsaWNhdGlvbi9wZGYiKQotfTsKLWNv
bnN0IHNpemVfdCBzZWN1cml0eUNvbnN0cmFpbmVkVHlwZXNTaXplID0gc2l6ZW9mKHNlY3VyaXR5
Q29uc3RyYWluZWRUeXBlcykgLyBzaXplb2Yoc2VjdXJpdHlDb25zdHJhaW5lZFR5cGVzWzBdKTsK
LQotLy8gaHR0cDovL3Rvb2xzLmlldGYub3JnL2h0bWwvZHJhZnQtYWJhcnRoLW1pbWUtc25pZmYt
MDYjcGFnZS04Ci1jb25zdCBNYWdpY051bWJlcnMgYm9tVHlwZXNbXSA9IHsKLSAgICBNQUdJQ19O
VU1CRVJTX1NJTVBMRSgiXHhGRVx4RkYiLCAidGV4dC9wbGFpbiIpLCAvLyBVVEYtMTZCRSBCT00K
LSAgICBNQUdJQ19OVU1CRVJTX1NJTVBMRSgiXHhGRlx4RkUiLCAidGV4dC9wbGFpbiIpLCAvLyBV
VEYtMTZMRSBCT00KLSAgICBNQUdJQ19OVU1CRVJTX1NJTVBMRSgiXHhFRlx4QkJceEJGIiwgInRl
eHQvcGxhaW4iKSAvLyBVVEYtOCBCT00KLX07Ci1jb25zdCBzaXplX3QgYm9tVHlwZXNTaXplID0g
c2l6ZW9mKGJvbVR5cGVzKSAvIHNpemVvZihib21UeXBlc1swXSk7Ci0KLS8vIGh0dHA6Ly90b29s
cy5pZXRmLm9yZy9odG1sL2RyYWZ0LWFiYXJ0aC1taW1lLXNuaWZmLTA2I3BhZ2UtMTMKLWNvbnN0
IE1hZ2ljTnVtYmVycyBzYWZlVHlwZXNbXSA9IHsKLSAgICBNQUdJQ19OVU1CRVJTX1NJTVBMRSgi
JSFQUy1BZG9iZS0iLCAiYXBwbGljYXRpb24vcG9zdHNjcmlwdCIpLAotICAgIE1BR0lDX05VTUJF
UlNfU0lNUExFKCJceDRGXHg2N1x4NjdceDUzXHgwMCIsICJhcHBsaWNhdGlvbi9vZ2ciKSwgLy8g
QW4gT2dnIFZvcmJpcyBhdWRpbyBvciB2aWRlbyBzaWduYXR1cmUuCi0gICAgTUFHSUNfTlVNQkVS
U19NQVNLRUQoIlJJRkZceDAwXHgwMFx4MDBceDAwV0FWRSIsICJceEZGXHhGRlx4RkZceEZGXHgw
MFx4MDBceDAwXHgwMFx4RkZceEZGXHhGRlx4RkYiLCAiYXVkaW8veC13YXZlIiwgMCksIC8vICJS
SUZGIiBmb2xsb3dlZCBieSBmb3VyIGJ5dGVzLCBmb2xsb3dlZCBieSAiV0FWRSIuCi0gICAgTUFH
SUNfTlVNQkVSU19TSU1QTEUoIlx4MUFceDQ1XHhERlx4QTMiLCAidmlkZW8vd2VibSIpLCAvLyBU
aGUgV2ViTSBzaWduYXR1cmUuCi0gICAgTUFHSUNfTlVNQkVSU19TSU1QTEUoIlJhciFceDFBXHgw
N1x4MDAiLCAiYXBwbGljYXRpb24veC1yYXItY29tcHJlc3NlZCIpLCAvLyBBIFJBUiBhcmNoaXZl
LgotICAgIE1BR0lDX05VTUJFUlNfU0lNUExFKCJceDUwXHg0Qlx4MDNceDA0IiwgImFwcGxpY2F0
aW9uL3ppcCIpLCAvLyBBIFpJUCBhcmNoaXZlLgotICAgIE1BR0lDX05VTUJFUlNfU0lNUExFKCJc
eDFGXHg4Qlx4MDgiLCAiYXBwbGljYXRpb24veC1nemlwIikgLy8gQSBHWklQIGFyY2hpdmUuCi19
OwotY29uc3Qgc2l6ZV90IHNhZmVUeXBlc1NpemUgPSBzaXplb2Yoc2FmZVR5cGVzKSAvIHNpemVv
ZihzYWZlVHlwZXNbMF0pOwotCi0vLyBodHRwOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9kcmFmdC1h
YmFydGgtbWltZS1zbmlmZi0wNiNwYWdlLTE2Ci1jb25zdCBNYWdpY051bWJlcnMgaW1hZ2VUeXBl
c1tdID0gewotICAgIE1BR0lDX05VTUJFUlNfTUFTS0VEKCJSSUZGXHgwMFx4MDBceDAwXHgwMFdF
QlBWUCIsICJceEZGXHhGRlx4RkZceEZGXHgwMFx4MDBceDAwXHgwMFx4RkZceEZGXHhGRlx4RkZc
eEZGXHhGRiIsICJpbWFnZS93ZWJwIiwgMCksIC8vICJSSUZGIiBmb2xsb3dlZCBieSBmb3VyIGJ5
dGVzLCBmb2xsb3dlZCBieSAiV0VCUFZQIi4KLSAgICBNQUdJQ19OVU1CRVJTX1NJTVBMRSgiR0lG
ODdhIiwgImltYWdlL2dpZiIpLAotICAgIE1BR0lDX05VTUJFUlNfU0lNUExFKCJHSUY4OWEiLCAi
aW1hZ2UvZ2lmIiksCi0gICAgTUFHSUNfTlVNQkVSU19TSU1QTEUoIlx4ODlceDUwXHg0RVx4NDdc
eDBEXHgwQVx4MUFceDBBIiwgImltYWdlL3BuZyIpLAotICAgIE1BR0lDX05VTUJFUlNfU0lNUExF
KCJceEZGXHhEOFx4RkYiLCAiaW1hZ2UvanBlZyIpLAotICAgIE1BR0lDX05VTUJFUlNfU0lNUExF
KCJCTSIsICJpbWFnZS9ibXAiKSwKLSAgICBNQUdJQ19OVU1CRVJTX1NJTVBMRSgiXHgwMFx4MDBc
eDAxXHgwMCIsICJpbWFnZS92bmQubWljcm9zb2Z0Lmljb24iKSAvLyBBIFdpbmRvd3MgSWNvbiBz
aWduYXR1cmUuCi19OwotY29uc3Qgc2l6ZV90IGltYWdlVHlwZXNTaXplID0gc2l6ZW9mKGltYWdl
VHlwZXMpIC8gc2l6ZW9mKGltYWdlVHlwZXNbMF0pOwotCi1zdGF0aWMgaW5saW5lIHNpemVfdCBk
YXRhU2l6ZU5lZWRlZEZvckltYWdlU25pZmZpbmcoKQotewotICAgIHNpemVfdCByZXN1bHQgPSAw
OwotICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgaW1hZ2VUeXBlc1NpemU7ICsraSkgewotICAg
ICAgICBpZiAoaW1hZ2VUeXBlc1tpXS5zaXplID4gcmVzdWx0KQotICAgICAgICAgICAgcmVzdWx0
ID0gaW1hZ2VUeXBlc1tpXS5zaXplOwotICAgIH0KLSAgICByZXR1cm4gcmVzdWx0OwotfQotCi1z
dGF0aWMgaW5saW5lIGJvb2wgbWFza2VkQ29tcGFyZVNsb3dDYXNlKGNvbnN0IE1hZ2ljTnVtYmVy
cyYgaW5mbywgY29uc3QgY2hhciogZGF0YSkKLXsKLSAgICBjb25zdCBjaGFyKiBwYXR0ZXJuID0g
cmVpbnRlcnByZXRfY2FzdDxjb25zdCBjaGFyKj4oaW5mby5wYXR0ZXJuKTsKLSAgICBjb25zdCBj
aGFyKiBtYXNrID0gcmVpbnRlcnByZXRfY2FzdDxjb25zdCBjaGFyKj4oaW5mby5tYXNrKTsKLQot
ICAgIHNpemVfdCBjb3VudCA9IGluZm8uc2l6ZTsKLQotICAgIGZvciAoc2l6ZV90IGkgPSAwOyBp
IDwgY291bnQ7ICsraSkgewotICAgICAgICBpZiAoKCpkYXRhKysgJiAqbWFzaysrKSAhPSAqcGF0
dGVybisrKQotICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIH0KLSAgICByZXR1cm4gdHJ1
ZTsKLX0KLQotc3RhdGljIGlubGluZSBib29sIG1hc2tlZENvbXBhcmUoY29uc3QgTWFnaWNOdW1i
ZXJzJiBpbmZvLCBjb25zdCBjaGFyKiBkYXRhLCBzaXplX3QgZGF0YVNpemUpCi17Ci0gICAgaWYg
KGRhdGFTaXplIDwgaW5mby5zaXplKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICBpZiAo
IWlzUG9pbnRlclR5cGVBbGlnbm1lbnRPa2F5KHN0YXRpY19jYXN0PGNvbnN0IHVpbnQzMl90Kj4o
c3RhdGljX2Nhc3Q8Y29uc3Qgdm9pZCo+KGRhdGEpKSkpCi0gICAgICAgIHJldHVybiBtYXNrZWRD
b21wYXJlU2xvd0Nhc2UoaW5mbywgZGF0YSk7Ci0KLSAgICBjb25zdCB1aW50MzJfdCogcGF0dGVy
bjMyID0gcmVpbnRlcnByZXRfY2FzdF9wdHI8Y29uc3QgdWludDMyX3QqPihpbmZvLnBhdHRlcm4p
OwotICAgIGNvbnN0IHVpbnQzMl90KiBtYXNrMzIgPSByZWludGVycHJldF9jYXN0X3B0cjxjb25z
dCB1aW50MzJfdCo+KGluZm8ubWFzayk7Ci0gICAgY29uc3QgdWludDMyX3QqIGRhdGEzMiA9IHJl
aW50ZXJwcmV0X2Nhc3RfcHRyPGNvbnN0IHVpbnQzMl90Kj4oZGF0YSk7Ci0KLSAgICBzaXplX3Qg
Y291bnQgPSBpbmZvLnNpemUgPj4gMjsKLQotICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgY291
bnQ7ICsraSkgewotICAgICAgICBpZiAoKCpkYXRhMzIrKyAmICptYXNrMzIrKykgIT0gKnBhdHRl
cm4zMisrKQotICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIH0KLQotICAgIGNvbnN0IGNo
YXIqIHAgPSByZWludGVycHJldF9jYXN0PGNvbnN0IGNoYXIqPihwYXR0ZXJuMzIpOwotICAgIGNv
bnN0IGNoYXIqIG0gPSByZWludGVycHJldF9jYXN0PGNvbnN0IGNoYXIqPihtYXNrMzIpOwotICAg
IGNvbnN0IGNoYXIqIGQgPSByZWludGVycHJldF9jYXN0PGNvbnN0IGNoYXIqPihkYXRhMzIpOwot
Ci0gICAgY291bnQgPSBpbmZvLnNpemUgJiAzOwotCi0gICAgZm9yIChzaXplX3QgaSA9IDA7IGkg
PCBjb3VudDsgKytpKSB7Ci0gICAgICAgIGlmICgoKmQrKyAmICptKyspICE9ICpwKyspCi0gICAg
ICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgfQotCi0gICAgcmV0dXJuIHRydWU7Ci19Ci0KLS8v
IGh0dHA6Ly90b29scy5pZXRmLm9yZy9odG1sL2RyYWZ0LWFiYXJ0aC1taW1lLXNuaWZmLTA2I3Bh
Z2UtMTEKLXN0YXRpYyBpbmxpbmUgYm9vbCBjaGVja1NwYWNlT3JCcmFja2V0KGNvbnN0IGNoYXIq
IGRhdGEpCi17Ci0gICAgcmV0dXJuIGlzV2hpdGVTcGFjZSgqZGF0YSkgfHwgKmRhdGEgPT0gMHgz
RTsKLX0KLQotc3RhdGljIGlubGluZSBib29sIGNvbXBhcmUoY29uc3QgTWFnaWNOdW1iZXJzJiBp
bmZvLCBjb25zdCBjaGFyKiBkYXRhLCBzaXplX3QgZGF0YVNpemUpCi17Ci0gICAgaWYgKGluZm8u
ZmxhZ3MgJiBTa2lwV2hpdGVTcGFjZSkgewotICAgICAgICBzaXplX3QgcG9zID0gMDsKLSAgICAg
ICAgc2tpcFdoaXRlU3BhY2UoZGF0YSwgcG9zLCBkYXRhU2l6ZSk7Ci0gICAgICAgIGRhdGEgKz0g
cG9zOwotICAgICAgICBkYXRhU2l6ZSAtPSBwb3M7Ci0gICAgfQotCi0gICAgYm9vbCByZXN1bHQ7
Ci0gICAgaWYgKGluZm8ubWFzaykKLSAgICAgICAgcmVzdWx0ID0gbWFza2VkQ29tcGFyZShpbmZv
LCBkYXRhLCBpbmZvLnNpemUpOwotICAgIGVsc2UKLSAgICAgICAgcmVzdWx0ID0gZGF0YVNpemUg
Pj0gaW5mby5zaXplICYmICFtZW1jbXAoZGF0YSwgaW5mby5wYXR0ZXJuLCBpbmZvLnNpemUpOwot
Ci0gICAgcmV0dXJuIHJlc3VsdCAmJiAoIShpbmZvLmZsYWdzICYgVHJhaWxpbmdTcGFjZU9yQnJh
Y2tldCkgfHwgY2hlY2tTcGFjZU9yQnJhY2tldChkYXRhICsgaW5mby5zaXplKSk7Ci19Ci0KLXN0
YXRpYyBpbmxpbmUgY29uc3QgY2hhciogZmluZE1JTUVUeXBlKGNvbnN0IGNoYXIqIGRhdGEsIHNp
emVfdCBkYXRhU2l6ZSwgY29uc3QgTWFnaWNOdW1iZXJzKiB0eXBlcywgc2l6ZV90IHR5cGVzQ291
bnQpCi17Ci0gICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCB0eXBlc0NvdW50OyArK2kpIHsKLSAg
ICAgICAgaWYgKGNvbXBhcmUodHlwZXNbaV0sIGRhdGEsIGRhdGFTaXplKSkKLSAgICAgICAgICAg
IHJldHVybiB0eXBlc1tpXS5taW1lVHlwZTsKLSAgICB9Ci0gICAgcmV0dXJuIDA7Ci19Ci0KLXN0
YXRpYyBpbmxpbmUgY29uc3QgY2hhciogZmluZFNpbXBsZU1JTUVUeXBlKGNvbnN0IGNoYXIqIGRh
dGEsIHNpemVfdCBkYXRhU2l6ZSwgY29uc3QgTWFnaWNOdW1iZXJzKiB0eXBlcywgc2l6ZV90IHR5
cGVzQ291bnQpCi17Ci0gICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCB0eXBlc0NvdW50OyArK2kp
IHsKLSAgICAgICAgQVNTRVJUKCF0eXBlc1tpXS5tYXNrKTsKLSAgICAgICAgQVNTRVJUKCF0eXBl
c1tpXS5mbGFncyk7Ci0KLSAgICAgICAgaWYgKGRhdGFTaXplID49IHR5cGVzW2ldLnNpemUgJiYg
IW1lbWNtcChkYXRhLCB0eXBlc1tpXS5wYXR0ZXJuLCB0eXBlc1tpXS5zaXplKSkKLSAgICAgICAg
ICAgIHJldHVybiB0eXBlc1tpXS5taW1lVHlwZTsKLSAgICB9Ci0gICAgcmV0dXJuIDA7Ci19Ci0K
LWJvb2wgaXNUeXBlSW5MaXN0KGNvbnN0IGNoYXIqIHR5cGUsIGNvbnN0IE1hZ2ljTnVtYmVycyog
dHlwZXMsIHNpemVfdCB0eXBlc0NvdW50KQotewotICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwg
dHlwZXNDb3VudDsgKytpKSB7Ci0gICAgICAgIGlmICghc3RyY21wKHR5cGUsIHR5cGVzW2ldLm1p
bWVUeXBlKSkKLSAgICAgICAgICAgIHJldHVybiB0cnVlOwotICAgIH0KLSAgICByZXR1cm4gZmFs
c2U7Ci19Ci0KLS8vIGh0dHA6Ly90b29scy5pZXRmLm9yZy9odG1sL2RyYWZ0LWFiYXJ0aC1taW1l
LXNuaWZmLTA2I3BhZ2UtOAotc3RhdGljIGNvbnN0IGNoYXIqIGludGVybmFsVGV4dE9yQmluYXJ5
VHlwZVNuaWZmaW5nUHJvY2VkdXJlKGNvbnN0IGNoYXIqIGRhdGEsIHNpemVfdCBkYXRhU2l6ZSkK
LXsKLSAgICBjb25zdCBjaGFyKiBtaW1lVHlwZSA9IDA7Ci0KLSAgICBtaW1lVHlwZSA9IGZpbmRT
aW1wbGVNSU1FVHlwZShkYXRhLCBkYXRhU2l6ZSwgYm9tVHlwZXMsIGJvbVR5cGVzU2l6ZSk7Ci0g
ICAgaWYgKG1pbWVUeXBlKQotICAgICAgICByZXR1cm4gbWltZVR5cGU7Ci0KLSAgICBpZiAoIWlz
QmluYXJ5RGF0YShkYXRhLCBkYXRhU2l6ZSkpCi0gICAgICAgIHJldHVybiAidGV4dC9wbGFpbiI7
Ci0KLSAgICBtaW1lVHlwZSA9IGZpbmRNSU1FVHlwZShkYXRhLCBkYXRhU2l6ZSwgc2FmZVR5cGVz
LCBzYWZlVHlwZXNTaXplKTsKLSAgICBpZiAobWltZVR5cGUpCi0gICAgICAgIHJldHVybiBtaW1l
VHlwZTsKLQotICAgIG1pbWVUeXBlID0gZmluZE1JTUVUeXBlKGRhdGEsIGRhdGFTaXplLCBpbWFn
ZVR5cGVzLCBpbWFnZVR5cGVzU2l6ZSk7Ci0gICAgaWYgKG1pbWVUeXBlKQotICAgICAgICByZXR1
cm4gbWltZVR5cGU7Ci0KLSAgICByZXR1cm4gImFwcGxpY2F0aW9uL29jdGV0LXN0cmVhbSI7Ci19
Ci0KLXN0YXRpYyBjb25zdCBjaGFyKiB0ZXh0T3JCaW5hcnlUeXBlU25pZmZpbmdQcm9jZWR1cmUo
Y29uc3QgY2hhciogZGF0YSwgc2l6ZV90IGRhdGFTaXplKQotewotICAgIGNvbnN0IGNoYXIqIHJl
c3VsdCA9IGludGVybmFsVGV4dE9yQmluYXJ5VHlwZVNuaWZmaW5nUHJvY2VkdXJlKGRhdGEsIGRh
dGFTaXplKTsKLSAgICBBU1NFUlQoIWlzVHlwZUluTGlzdChyZXN1bHQsIHNlY3VyaXR5Q29uc3Ry
YWluZWRUeXBlcywgc2VjdXJpdHlDb25zdHJhaW5lZFR5cGVzU2l6ZSkpOwotICAgIHJldHVybiBy
ZXN1bHQ7Ci19Ci0KLS8vIGh0dHA6Ly90b29scy5pZXRmLm9yZy9odG1sL2RyYWZ0LWFiYXJ0aC1t
aW1lLXNuaWZmLTA2I3BhZ2UtMTAKLXN0YXRpYyBjb25zdCBjaGFyKiB1bmtub3duVHlwZVNuaWZm
aW5nUHJvY2VkdXJlKGNvbnN0IGNoYXIqIGRhdGEsIHNpemVfdCBkYXRhU2l6ZSkKLXsKLSAgICBj
b25zdCBjaGFyKiBtaW1lVHlwZSA9IDA7Ci0KLSAgICBtaW1lVHlwZSA9IGZpbmRNSU1FVHlwZShk
YXRhLCBkYXRhU2l6ZSwgc2VjdXJpdHlDb25zdHJhaW5lZFR5cGVzLCBzZWN1cml0eUNvbnN0cmFp
bmVkVHlwZXNTaXplKTsKLSAgICBpZiAobWltZVR5cGUpCi0gICAgICAgIHJldHVybiBtaW1lVHlw
ZTsKLQotICAgIG1pbWVUeXBlID0gZmluZFNpbXBsZU1JTUVUeXBlKGRhdGEsIGRhdGFTaXplLCBi
b21UeXBlcywgYm9tVHlwZXNTaXplKTsKLSAgICBpZiAobWltZVR5cGUpCi0gICAgICAgIHJldHVy
biBtaW1lVHlwZTsKLQotICAgIG1pbWVUeXBlID0gZmluZE1JTUVUeXBlKGRhdGEsIGRhdGFTaXpl
LCBzYWZlVHlwZXMsIHNhZmVUeXBlc1NpemUpOwotICAgIGlmIChtaW1lVHlwZSkKLSAgICAgICAg
cmV0dXJuIG1pbWVUeXBlOwotCi0gICAgbWltZVR5cGUgPSBmaW5kTUlNRVR5cGUoZGF0YSwgZGF0
YVNpemUsIGltYWdlVHlwZXMsIGltYWdlVHlwZXNTaXplKTsKLSAgICBpZiAobWltZVR5cGUpCi0g
ICAgICAgIHJldHVybiBtaW1lVHlwZTsKLQotICAgIGlmICghaXNCaW5hcnlEYXRhKGRhdGEsIGRh
dGFTaXplKSkKLSAgICAgICAgcmV0dXJuICJ0ZXh0L3BsYWluIjsKLQotICAgIHJldHVybiAiYXBw
bGljYXRpb24vb2N0ZXQtc3RyZWFtIjsKLX0KLQotLy8gaHR0cDovL3Rvb2xzLmlldGYub3JnL2h0
bWwvZHJhZnQtYWJhcnRoLW1pbWUtc25pZmYtMDYjcGFnZS0xNgotc3RhdGljIGNvbnN0IGNoYXIq
IGltYWdlVHlwZVNuaWZmaW5nUHJvY2VkdXJlKGNvbnN0IGNoYXIqIGRhdGEsIHNpemVfdCBkYXRh
U2l6ZSkKLXsKLSAgICByZXR1cm4gZmluZE1JTUVUeXBlKGRhdGEsIGRhdGFTaXplLCBpbWFnZVR5
cGVzLCBpbWFnZVR5cGVzU2l6ZSk7Ci19Ci0KLXN0YXRpYyBpbmxpbmUgYm9vbCBjaGVja1RleHQo
Y29uc3QgY2hhciogZGF0YSwgc2l6ZV90JiBwb3MsIHNpemVfdCBkYXRhU2l6ZSwgY29uc3QgY2hh
ciogdGV4dCwgc2l6ZV90IHRleHRTaXplKQotewotICAgIGlmIChkYXRhU2l6ZSAtIHBvcyA8IHRl
eHRTaXplIHx8IG1lbWNtcChkYXRhICsgcG9zLCB0ZXh0LCB0ZXh0U2l6ZSkpCi0gICAgICAgIHJl
dHVybiBmYWxzZTsKLQotICAgIHBvcyArPSB0ZXh0U2l6ZTsKLSAgICByZXR1cm4gdHJ1ZTsKLX0K
LQotY29uc3QgY2hhciByc3NVcmxbXSA9ICJodHRwOi8vcHVybC5vcmcvcnNzLzEuMCI7Ci1jb25z
dCBjaGFyIHJkZlVybFtdID0gImh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRh
eC1ucyMiOwotCi1zdGF0aWMgaW5saW5lIGNvbnN0IGNoYXIqIGNoZWNrUkRGKGNvbnN0IGNoYXIq
IGRhdGEsIHNpemVfdCBwb3MsIHNpemVfdCBkYXRhU2l6ZSkKLXsKLSAgICBib29sIGlzUkRGID0g
ZmFsc2U7Ci0gICAgYm9vbCBpc1JTUyA9IGZhbHNlOwotCi0gICAgd2hpbGUgKHBvcyA8PSBkYXRh
U2l6ZSkgewotICAgICAgICBpZiAoY2hlY2tUZXh0KGRhdGEsIHBvcywgZGF0YVNpemUsIHJzc1Vy
bCwgc2l6ZW9mKHJzc1VybCkgLSAxKSkgewotICAgICAgICAgICAgaXNSU1MgPSB0cnVlOwotICAg
ICAgICAgICAgY29udGludWU7Ci0gICAgICAgIH0KLQotICAgICAgICBpZiAoY2hlY2tUZXh0KGRh
dGEsIHBvcywgZGF0YVNpemUsIHJkZlVybCwgc2l6ZW9mKHJkZlVybCkgLSAxKSkgewotICAgICAg
ICAgICAgaXNSREYgPSB0cnVlOwotICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgIH0KLQot
ICAgICAgICArK3BvczsKLQotICAgICAgICBpZiAoaXNSU1MgJiYgaXNSREYpCi0gICAgICAgICAg
ICByZXR1cm4gImFwcGxpY2F0aW9uL3JkZit4bWwiOwotICAgIH0KLQotICAgIHJldHVybiAwOwot
fQotCi1zdGF0aWMgaW5saW5lIGJvb2wgc2tpcFRhZyhjb25zdCBjaGFyKiYgZGF0YSwgc2l6ZV90
JiBwb3MsIHNpemVfdCBkYXRhU2l6ZSwgY29uc3QgY2hhciogdGFnLCBzaXplX3QgdGFnU2l6ZSwg
Y29uc3QgY2hhciogdGFnRW5kLCBzaXplX3QgdGFnRW5kU2l6ZSkKLXsKLSAgICBpZiAoIWNoZWNr
VGV4dChkYXRhLCBwb3MsIGRhdGFTaXplLCB0YWcsIHRhZ1NpemUpKQotICAgICAgICByZXR1cm4g
ZmFsc2U7Ci0KLSAgICB3aGlsZSAocG9zIDwgZGF0YVNpemUgJiYgIWNoZWNrVGV4dChkYXRhLCBw
b3MsIGRhdGFTaXplLCB0YWdFbmQsIHRhZ0VuZFNpemUpKQotICAgICAgICArK3BvczsKLQotICAg
IHJldHVybiB0cnVlOwotfQotCi0vLyBodHRwOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9kcmFmdC1h
YmFydGgtbWltZS1zbmlmZi0wNiNwYWdlLTE3Ci1zdGF0aWMgY29uc3QgY2hhciogZmVlZFR5cGVT
bmlmZmluZ1Byb2NlZHVyZShjb25zdCBjaGFyKiBkYXRhLCBzaXplX3QgZGF0YVNpemUpCi17Ci0g
ICAgc2l6ZV90IHBvcyA9IDA7Ci0KLSAgICBpZiAoZGF0YVNpemUgPj0gMyAmJiAhbWVtY21wKGRh
dGEsICJceEVGXHhCQlx4QkYiLCAzKSkKLSAgICAgICAgcG9zICs9IDM7Ci0KLSAgICB3aGlsZSAo
cG9zIDwgZGF0YVNpemUpIHsKLSAgICAgICAgc2tpcFdoaXRlU3BhY2UoZGF0YSwgcG9zLCBkYXRh
U2l6ZSk7Ci0KLSAgICAgICAgaWYgKCFza2lwVGFnKGRhdGEsIHBvcywgZGF0YVNpemUsICI8IS0t
IiwgNCwgIi0tPiIsIDMpICYmICFza2lwVGFnKGRhdGEsIHBvcywgZGF0YVNpemUsICI8ISIsIDIs
ICIhPiIsIDIpICYmICFza2lwVGFnKGRhdGEsIHBvcywgZGF0YVNpemUsICI8PyIsIDIsICI/PiIs
IDIpKQotICAgICAgICAgICAgYnJlYWs7Ci0gICAgfQotCi0gICAgaWYgKGNoZWNrVGV4dChkYXRh
LCBwb3MsIGRhdGFTaXplLCAiPHJzcyIsIDQpKQotICAgICAgICByZXR1cm4gImFwcGxpY2F0aW9u
L3Jzcyt4bWwiOwotCi0gICAgaWYgKGNoZWNrVGV4dChkYXRhLCBwb3MsIGRhdGFTaXplLCAiPGZl
ZWQiLCA1KSkKLSAgICAgICAgcmV0dXJuICJhcHBsaWNhdGlvbi9hdG9tK3htbCI7Ci0KLSAgICBp
ZiAoY2hlY2tUZXh0KGRhdGEsIHBvcywgZGF0YVNpemUsICI8cmRmOlJERiIsIDgpKQotICAgICAg
ICByZXR1cm4gY2hlY2tSREYoZGF0YSwgcG9zLCBkYXRhU2l6ZSk7Ci0KLSAgICByZXR1cm4gMDsK
LX0KLQotfQotCi0vLyBodHRwOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9kcmFmdC1hYmFydGgtbWlt
ZS1zbmlmZi0wNiNwYWdlLTYKLU1JTUVTbmlmZmVyOjpNSU1FU25pZmZlcihjb25zdCBjaGFyKiBh
ZHZlcnRpc2VkTUlNRVR5cGUsIGJvb2wgaXNTdXBwb3J0ZWRJbWFnZVR5cGUpCi0gICAgOiBtX2Rh
dGFTaXplKDApCi0gICAgLCBtX2Z1bmN0aW9uKDApCi17Ci0gICAgaWYgKCFhZHZlcnRpc2VkTUlN
RVR5cGUpIHsKLSAgICAgICAgbV9kYXRhU2l6ZSA9IDUxMjsKLSAgICAgICAgbV9mdW5jdGlvbiA9
ICZ1bmtub3duVHlwZVNuaWZmaW5nUHJvY2VkdXJlOwotICAgICAgICByZXR1cm47Ci0gICAgfQot
Ci0gICAgaWYgKGlzVGV4dE9yQmluYXJ5VHlwZShhZHZlcnRpc2VkTUlNRVR5cGUpKSB7Ci0gICAg
ICAgIG1fZGF0YVNpemUgPSA1MTI7Ci0gICAgICAgIG1fZnVuY3Rpb24gPSAmdGV4dE9yQmluYXJ5
VHlwZVNuaWZmaW5nUHJvY2VkdXJlOwotICAgICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgaWYg
KGlzVW5rbm93blR5cGUoYWR2ZXJ0aXNlZE1JTUVUeXBlKSkgewotICAgICAgICBtX2RhdGFTaXpl
ID0gNTEyOwotICAgICAgICBtX2Z1bmN0aW9uID0gJnVua25vd25UeXBlU25pZmZpbmdQcm9jZWR1
cmU7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICBpZiAoaXNYTUxUeXBlKGFkdmVydGlz
ZWRNSU1FVHlwZSkpCi0gICAgICAgIHJldHVybjsKLQotICAgIGlmIChpc1N1cHBvcnRlZEltYWdl
VHlwZSkgewotICAgICAgICBzdGF0aWMgY29uc3Qgc2l6ZV90IGRhdGFTaXplID0gZGF0YVNpemVO
ZWVkZWRGb3JJbWFnZVNuaWZmaW5nKCk7Ci0gICAgICAgIG1fZGF0YVNpemUgPSBkYXRhU2l6ZTsK
LSAgICAgICAgbV9mdW5jdGlvbiA9ICZpbWFnZVR5cGVTbmlmZmluZ1Byb2NlZHVyZTsKLSAgICAg
ICAgcmV0dXJuOwotICAgIH0KLQotICAgIGlmICghc3RyY21wKGFkdmVydGlzZWRNSU1FVHlwZSwg
InRleHQvaHRtbCIpKSB7Ci0gICAgICAgIG1fZGF0YVNpemUgPSA1MTI7Ci0gICAgICAgIG1fZnVu
Y3Rpb24gPSAmZmVlZFR5cGVTbmlmZmluZ1Byb2NlZHVyZTsKLSAgICAgICAgcmV0dXJuOwotICAg
IH0KLX0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvTUlNRVNu
aWZmaW5nLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL01JTUVTbmlmZmluZy5o
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjZDFjNTJiLi4wMDAwMDAwCi0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvTUlNRVNuaWZmaW5nLmgKKysrIC9kZXYvbnVs
bApAQCAtMSw0MSArMCwwIEBACi0vKgotICAgIENvcHlyaWdodCAoQykgMjAxMSBOb2tpYSBDb3Jw
b3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykKLQotICAgIFRoaXMgbGlicmFyeSBp
cyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKLSAgICBtb2Rp
ZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwot
ICAgIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247
IGVpdGhlcgotICAgIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9u
KSBhbnkgbGF0ZXIgdmVyc2lvbi4KLQotICAgIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBp
biB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAotICAgIGJ1dCBXSVRIT1VUIEFOWSBX
QVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCi0gICAgTUVSQ0hB
TlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBH
TlUKLSAgICBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4K
LQotICAgIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5
IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKLSAgICBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2Vl
IHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bwotICAgIHRoZSBGcmVlIFNv
ZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3Is
Ci0gICAgQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCi0qLwotCi0jaWZuZGVmIE1JTUVTbmlm
ZmluZ19oCi0jZGVmaW5lIE1JTUVTbmlmZmluZ19oCi0KLSNpbmNsdWRlIDxzdGRkZWYuaD4KLQot
Ly8gTUlNRSB0eXBlIHNuaWZmaW5nIGltcGxlbWVudGF0aW9uIGJhc2VkIG9uIGh0dHA6Ly90b29s
cy5pZXRmLm9yZy9odG1sL2RyYWZ0LWFiYXJ0aC1taW1lLXNuaWZmLTA2Ci0KLWNsYXNzIE1JTUVT
bmlmZmVyIHsKLXB1YmxpYzoKLSAgICBNSU1FU25pZmZlcihjb25zdCBjaGFyKiBhZHZlcnRpc2Vk
TUlNRVR5cGUsIGJvb2wgaXNTdXBwb3J0ZWRJbWFnZVR5cGUpOwotCi0gICAgc2l6ZV90IGRhdGFT
aXplKCkgY29uc3QgeyByZXR1cm4gbV9kYXRhU2l6ZTsgfQotICAgIGNvbnN0IGNoYXIqIHNuaWZm
KGNvbnN0IGNoYXIqIGRhdGEsIHNpemVfdCBzaXplKSBjb25zdCB7IHJldHVybiBtX2Z1bmN0aW9u
ID8gIG1fZnVuY3Rpb24oZGF0YSwgc2l6ZSkgOiAwOyB9Ci0gICAgYm9vbCBpc1ZhbGlkKCkgY29u
c3QgeyByZXR1cm4gbV9kYXRhU2l6ZSA+IDA7IH0KLQotcHJpdmF0ZToKLSAgICB0eXBlZGVmIGNv
bnN0IGNoYXIqICgqU25pZmZGdW5jdGlvbikoY29uc3QgY2hhciosIHNpemVfdCk7Ci0gICAgc2l6
ZV90IG1fZGF0YVNpemU7Ci0gICAgU25pZmZGdW5jdGlvbiBtX2Z1bmN0aW9uOwotfTsKLQotI2Vu
ZGlmIC8vIE1JTUVTbmlmZmluZ19oCi0tIAoxLjkuMQoK
</data>

          </attachment>
      

    </bug>

</bugzilla>