<?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>163764</bug_id>
          
          <creation_ts>2016-10-20 16:29:55 -0700</creation_ts>
          <short_desc>[Web IDL] Support unions in our overload resolution algorithm</short_desc>
          <delta_ts>2016-10-22 19:18:05 -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>Bindings</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc>https://heycam.github.io/webidl/#es-overloads</bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>163767</dependson>
          <blocked>163792</blocked>
    
    <blocked>163795</blocked>
    
    <blocked>163816</blocked>
    
    <blocked>163859</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>sam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1242645</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2016-10-20 16:29:55 -0700</bug_when>
    <thetext>We should support unions in our overload resolution algorithm now that we start using unions.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1242766</commentid>
    <comment_count>1</comment_count>
      <attachid>292320</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2016-10-20 21:09:02 -0700</bug_when>
    <thetext>Created attachment 292320
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1242909</commentid>
    <comment_count>2</comment_count>
      <attachid>292320</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-10-21 09:14:55 -0700</bug_when>
    <thetext>Comment on attachment 292320
Patch

Clearing flags on attachment: 292320

Committed r207674: &lt;http://trac.webkit.org/changeset/207674&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1242910</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-10-21 09:15:00 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>292320</attachid>
            <date>2016-10-20 21:09:02 -0700</date>
            <delta_ts>2016-10-21 09:14:55 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-163764-20161020210523.patch</filename>
            <type>text/plain</type>
            <size>22478</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA3NjUzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjdiZjkwYmZiODFkMDMy
OTM4YTJhMGQyNmNjMDk4OTE3YzllZmE4OC4uNWE0Y2UxOWRhYjRiNzJhZDJiZjBmMTQ3ZjEwZDQ3
ODFlNzFjNGQ2YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDE2LTEwLTIwICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgW1dlYiBJRExdIFN1cHBvcnQg
dW5pb25zIGluIG91ciBvdmVybG9hZCByZXNvbHV0aW9uIGFsZ29yaXRobQorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTYzNzY0CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgU3VwcG9ydCB1bmlvbnMgaW4gb3Vy
IG92ZXJsb2FkIHJlc29sdXRpb24gYWxnb3JpdGhtIGFzIHBlcjoKKyAgICAgICAgLSBodHRwczov
L2hleWNhbS5naXRodWIuaW8vd2ViaWRsLyNlcy1vdmVybG9hZHMKKyAgICAgICAgLSBodHRwczov
L2hleWNhbS5naXRodWIuaW8vd2ViaWRsLyNkZm4tZGlzdGluZ3Vpc2hhYmxlCisKKyAgICAgICAg
KiBiaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbToKKyAgICAgICAgKElzSURMVHlw
ZURpc3Rpbmd1aXNoYWJsZVdpdGhVbmlvbkZvck92ZXJsb2FkUmVzb2x1dGlvbik6CisgICAgICAg
IChBcmVUeXBlc0Rpc3Rpbmd1aXNoYWJsZUZvck92ZXJsb2FkUmVzb2x1dGlvbik6CisgICAgICAg
IChHZXRPdmVybG9hZFRoYXRNYXRjaGVzKToKKyAgICAgICAgKEdlbmVyYXRlT3ZlcmxvYWRlZEZ1
bmN0aW9uT3JDb25zdHJ1Y3Rvcik6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pT
L0pTVGVzdE9iai5jcHA6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Rlc3RPYmou
aWRsOgorCiAyMDE2LTEwLTIwICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CiAKICAg
ICAgICAgVGhlIHRyYWNraW5nIG9mIHRoZSBjb2Fyc2UtZ3JhaW4gSGVhcCBzdGF0ZSAoYWxsb2Nh
dGluZyBvciBub3QsIGNvbGxlY3RvciBvciBub3QsIGVkZW4gdnMgZnVsbCkgc2hvdWxkIHJlc3Bl
Y3QgdGhlIG9ydGhvZ29uYWxpdHkgYmV0d2VlbiBhbGxvY2F0aW5nIGFuZCBjb2xsZWN0aW5nCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JK
Uy5wbSBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBt
CmluZGV4IDQ3NmE5NjYzZGNkMjI1ZGM2MWM5MmZlYzE1MjM2NWYxYzRhMWFlMzcuLjdiZDhiOTg1
OGYyNmNiMjhiOThiZmI0NzQwNTRkMmVmMjdlNGEwMGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCkBAIC0xOTQ1LDYgKzE5NDUs
MTcgQEAgc3ViIENvbXB1dGVFZmZlY3RpdmVPdmVybG9hZFNldAogICAgIHJldHVybiAlYWxsU2V0
czsKIH0KIAorc3ViIElzSURMVHlwZURpc3Rpbmd1aXNoYWJsZVdpdGhVbmlvbkZvck92ZXJsb2Fk
UmVzb2x1dGlvbgoreworICAgIG15ICgkaWRsVHlwZSwgJHVuaW9uU3VidHlwZXMpID0gQF87CisK
KyAgICBhc3NlcnQoIkZpcnN0IHR5cGUgc2hvdWxkIG5vdCBiZSBhIHVuaW9uIikgaWYgJGlkbFR5
cGUtPmlzVW5pb247CisgICAgZm9yIG15ICR1bmlvblN1YlR5cGUgKEAkdW5pb25TdWJ0eXBlcykg
eworICAgICAgICByZXR1cm4gMCB1bmxlc3MgQXJlVHlwZXNEaXN0aW5ndWlzaGFibGVGb3JPdmVy
bG9hZFJlc29sdXRpb24oJGlkbFR5cGUsICR1bmlvblN1YlR5cGUpOworICAgIH0KKyAgICByZXR1
cm4gMTsKK30KKwogIyBEZXRlcm1pbmVzIGlmIHR3byB0eXBlcyBhcmUgZGlzdGluZ3Vpc2hhYmxl
IGluIHRoZSBjb250ZXh0IG9mIG92ZXJsb2FkIHJlc29sdXRpb24sCiAjIGFjY29yZGluZyB0byB0
aGUgV2ViIElETCBzcGVjaWZpY2F0aW9uOgogIyBodHRwOi8vaGV5Y2FtLmdpdGh1Yi5pby93ZWJp
ZGwvI2Rmbi1kaXN0aW5ndWlzaGFibGUKQEAgLTE5NjAsMTcgKzE5NzEsMjYgQEAgc3ViIEFyZVR5
cGVzRGlzdGluZ3Vpc2hhYmxlRm9yT3ZlcmxvYWRSZXNvbHV0aW9uCiAgICAgICAgIG15ICR0eXBl
ID0gc2hpZnQ7CiAgICAgICAgIHJldHVybiAkY29kZUdlbmVyYXRvci0+SXNGdW5jdGlvbk9ubHlD
YWxsYmFja0ludGVyZmFjZSgkdHlwZSkgfHwgJiRpc0RpY3Rpb25hcnkoJHR5cGUpOwogICAgIH07
Ci0gICAgCi0gICAgIyBGSVhNRTogQWRkIHN1cHBvcnQgZm9yIHVuaW9uIHR5cGVzLgotICAgICMg
aWRsVHlwZUEgYW5kIGlkbFR5cGVCICBhcmUgZGlzdGluZ3Vpc2hhYmxlIGlmOgotICAgICMgLSBP
bmUgdHlwZSBpcyBhIHVuaW9uIHR5cGUgb3IgbnVsbGFibGUgdW5pb24gdHlwZSwgdGhlIG90aGVy
IGlzIG5laXRoZXIgYSB1bmlvbiB0eXBlIG5vciBhIG51bGxhYmxlCi0gICAgIyAgIHVuaW9uIHR5
cGUsIGFuZCBlYWNoIG1lbWJlciB0eXBlIG9mIHRoZSBmaXJzdCBpcyBkaXN0aW5ndWlzaGFibGUg
d2l0aCB0aGUgc2Vjb25kLgotICAgICMgLSBCb3RoIHR5cGVzIGFyZSBlaXRoZXIgYSB1bmlvbiB0
eXBlIG9yIG51bGxhYmxlIHVuaW9uIHR5cGUsIGFuZCBlYWNoIG1lbWJlciB0eXBlIG9mIHRoZSBv
bmUgaXMKLSAgICAjICAgZGlzdGluZ3Vpc2hhYmxlIHdpdGggZWFjaCBtZW1iZXIgdHlwZSBvZiB0
aGUgb3RoZXIuCiAKICAgICAjIEZJWE1FOiBUaGUgV2ViSURMIG1hbmRhdGVzIHRoaXMgYnV0IHRo
aXMgY3VycmVudGx5IGRvZXMgbm90IHdvcmsgYmVjYXVzZSBzb21lIG9mIG91ciBJREwgaXMgd3Jv
bmcuCiAgICAgIyByZXR1cm4gMCBpZiAkaWRsVHlwZUEtPmlzTnVsbGFibGUgJiYgJGlkbFR5cGVC
LT5pc051bGxhYmxlOwogCisgICAgIyBVbmlvbiB0eXBlczogaWRsVHlwZUEgYW5kIGlkbFR5cGVC
ICBhcmUgZGlzdGluZ3Vpc2hhYmxlIGlmOgorICAgICMgLSBCb3RoIHR5cGVzIGFyZSBlaXRoZXIg
YSB1bmlvbiB0eXBlIG9yIG51bGxhYmxlIHVuaW9uIHR5cGUsIGFuZCBlYWNoIG1lbWJlciB0eXBl
IG9mIHRoZSBvbmUgaXMKKyAgICAjICAgZGlzdGluZ3Vpc2hhYmxlIHdpdGggZWFjaCBtZW1iZXIg
dHlwZSBvZiB0aGUgb3RoZXIuCisgICAgIyAtIE9uZSB0eXBlIGlzIGEgdW5pb24gdHlwZSBvciBu
dWxsYWJsZSB1bmlvbiB0eXBlLCB0aGUgb3RoZXIgaXMgbmVpdGhlciBhIHVuaW9uIHR5cGUgbm9y
IGEgbnVsbGFibGUKKyAgICAjICAgdW5pb24gdHlwZSwgYW5kIGVhY2ggbWVtYmVyIHR5cGUgb2Yg
dGhlIGZpcnN0IGlzIGRpc3Rpbmd1aXNoYWJsZSB3aXRoIHRoZSBzZWNvbmQuCisgICAgaWYgKCRp
ZGxUeXBlQS0+aXNVbmlvbiAmJiAkaWRsVHlwZUItPmlzVW5pb24pIHsKKyAgICAgICAgZm9yIG15
ICR1bmlvbkFTdWJUeXBlIChAeyRpZGxUeXBlQS0+c3VidHlwZXN9KSB7CisgICAgICAgICAgICBy
ZXR1cm4gMCB1bmxlc3MgSXNJRExUeXBlRGlzdGluZ3Vpc2hhYmxlV2l0aFVuaW9uRm9yT3Zlcmxv
YWRSZXNvbHV0aW9uKCR1bmlvbkFTdWJUeXBlLCAkaWRsVHlwZUItPnN1YnR5cGVzKTsKKyAgICAg
ICAgfQorICAgICAgICByZXR1cm4gMTsKKyAgICB9IGVsc2lmICgkaWRsVHlwZUEtPmlzVW5pb24p
IHsKKyAgICAgICAgcmV0dXJuIElzSURMVHlwZURpc3Rpbmd1aXNoYWJsZVdpdGhVbmlvbkZvck92
ZXJsb2FkUmVzb2x1dGlvbigkaWRsVHlwZUIsICRpZGxUeXBlQS0+c3VidHlwZXMpOworICAgIH0g
ZWxzaWYgKCRpZGxUeXBlQi0+aXNVbmlvbikgeworICAgICAgICByZXR1cm4gSXNJRExUeXBlRGlz
dGluZ3Vpc2hhYmxlV2l0aFVuaW9uRm9yT3ZlcmxvYWRSZXNvbHV0aW9uKCRpZGxUeXBlQSwgJGlk
bFR5cGVCLT5zdWJ0eXBlcyk7CisgICAgfQorCiAgICAgcmV0dXJuIDAgaWYgJGlkbFR5cGVBLT5u
YW1lIGVxICRpZGxUeXBlQi0+bmFtZTsKICAgICByZXR1cm4gMCBpZiAkaWRsVHlwZUEtPm5hbWUg
ZXEgIm9iamVjdCIgb3IgJGlkbFR5cGVCLT5uYW1lIGVxICJvYmplY3QiOwogICAgIHJldHVybiAw
IGlmICRjb2RlR2VuZXJhdG9yLT5Jc051bWVyaWNUeXBlKCRpZGxUeXBlQS0+bmFtZSkgJiYgJGNv
ZGVHZW5lcmF0b3ItPklzTnVtZXJpY1R5cGUoJGlkbFR5cGVCLT5uYW1lKTsKQEAgLTIwMDcsNyAr
MjAyNywxMyBAQCBzdWIgR2V0T3ZlcmxvYWRUaGF0TWF0Y2hlcwogICAgIGZvciBteSAkdHVwbGUg
KEB7JFN9KSB7CiAgICAgICAgIG15ICRpZGxUeXBlID0gQHtAeyR0dXBsZX1bMV19WyRwYXJhbWV0
ZXJJbmRleF07CiAgICAgICAgIG15ICRvcHRpb25hbGl0eSA9IEB7QHskdHVwbGV9WzJdfVskcGFy
YW1ldGVySW5kZXhdOwotICAgICAgICByZXR1cm4gQHskdHVwbGV9WzBdIGlmICRtYXRjaGVzLT4o
JGlkbFR5cGUsICRvcHRpb25hbGl0eSk7CisgICAgICAgIGlmICgkaWRsVHlwZS0+aXNVbmlvbikg
eworICAgICAgICAgICAgZm9yIG15ICRpZGxTdWJ0eXBlIChHZXRGbGF0dGVuZWRNZW1iZXJUeXBl
cygkaWRsVHlwZSkpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gQHskdHVwbGV9WzBdIGlmICRt
YXRjaGVzLT4oJGlkbFN1YnR5cGUsICRvcHRpb25hbGl0eSk7CisgICAgICAgICAgICB9CisgICAg
ICAgIH0gZWxzZSB7CisgICAgICAgICAgICByZXR1cm4gQHskdHVwbGV9WzBdIGlmICRtYXRjaGVz
LT4oJGlkbFR5cGUsICRvcHRpb25hbGl0eSk7CisgICAgICAgIH0KICAgICB9CiB9CiAKQEAgLTIx
NDUsMTMgKzIxNzEsMTcgQEAgRU5ECiAgICAgICAgICAgICBmb3IgbXkgJHR1cGxlIChAeyRTfSkg
ewogICAgICAgICAgICAgICAgIG15ICRvdmVybG9hZCA9IEB7JHR1cGxlfVswXTsKICAgICAgICAg
ICAgICAgICBteSAkaWRsVHlwZSA9IEB7QHskdHVwbGV9WzFdfVskZF07Ci0gICAgICAgICAgICAg
ICAgbXkgJHR5cGUgPSAkaWRsVHlwZS0+bmFtZTsKLSAgICAgICAgICAgICAgICBpZiAoJGNvZGVH
ZW5lcmF0b3ItPklzV3JhcHBlclR5cGUoJHR5cGUpIHx8ICRjb2RlR2VuZXJhdG9yLT5Jc1R5cGVk
QXJyYXlUeXBlKCR0eXBlKSkgewotICAgICAgICAgICAgICAgICAgICBpZiAoJHR5cGUgZXEgIkRP
TVdpbmRvdyIpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIEFkZFRvSW1wbEluY2x1ZGVzKCJK
U0RPTVdpbmRvd1NoZWxsLmgiKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICYkZ2VuZXJhdGVP
dmVybG9hZENhbGxJZk5lY2Vzc2FyeSgkb3ZlcmxvYWQsICJkaXN0aW5ndWlzaGluZ0FyZy5pc09i
amVjdCgpICYmIChhc09iamVjdChkaXN0aW5ndWlzaGluZ0FyZyktPmluaGVyaXRzKEpTRE9NV2lu
ZG93U2hlbGw6OmluZm8oKSkgfHwgYXNPYmplY3QoZGlzdGluZ3Vpc2hpbmdBcmcpLT5pbmhlcml0
cyhKU0RPTVdpbmRvdzo6aW5mbygpKSkiKTsKLSAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsK
LSAgICAgICAgICAgICAgICAgICAgICAgICYkZ2VuZXJhdGVPdmVybG9hZENhbGxJZk5lY2Vzc2Fy
eSgkb3ZlcmxvYWQsICJkaXN0aW5ndWlzaGluZ0FyZy5pc09iamVjdCgpICYmIGFzT2JqZWN0KGRp
c3Rpbmd1aXNoaW5nQXJnKS0+aW5oZXJpdHMoSlMke3R5cGV9OjppbmZvKCkpIik7CisKKyAgICAg
ICAgICAgICAgICBteSBAaWRsU3VidHlwZXMgPSAkaWRsVHlwZS0+aXNVbmlvbiA/IEdldEZsYXR0
ZW5lZE1lbWJlclR5cGVzKCRpZGxUeXBlKSA6ICggJGlkbFR5cGUgKTsKKyAgICAgICAgICAgICAg
ICBmb3IgbXkgJGlkbFN1YnR5cGUgKEBpZGxTdWJ0eXBlcykgeworICAgICAgICAgICAgICAgICAg
ICBteSAkdHlwZSA9ICRpZGxTdWJ0eXBlLT5uYW1lOworICAgICAgICAgICAgICAgICAgICBpZiAo
JGNvZGVHZW5lcmF0b3ItPklzV3JhcHBlclR5cGUoJHR5cGUpIHx8ICRjb2RlR2VuZXJhdG9yLT5J
c1R5cGVkQXJyYXlUeXBlKCR0eXBlKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCR0
eXBlIGVxICJET01XaW5kb3ciKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgQWRkVG9J
bXBsSW5jbHVkZXMoIkpTRE9NV2luZG93U2hlbGwuaCIpOworICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICYkZ2VuZXJhdGVPdmVybG9hZENhbGxJZk5lY2Vzc2FyeSgkb3ZlcmxvYWQsICJkaXN0
aW5ndWlzaGluZ0FyZy5pc09iamVjdCgpICYmIChhc09iamVjdChkaXN0aW5ndWlzaGluZ0FyZykt
PmluaGVyaXRzKEpTRE9NV2luZG93U2hlbGw6OmluZm8oKSkgfHwgYXNPYmplY3QoZGlzdGluZ3Vp
c2hpbmdBcmcpLT5pbmhlcml0cyhKU0RPTVdpbmRvdzo6aW5mbygpKSkiKTsKKyAgICAgICAgICAg
ICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgJiRnZW5l
cmF0ZU92ZXJsb2FkQ2FsbElmTmVjZXNzYXJ5KCRvdmVybG9hZCwgImRpc3Rpbmd1aXNoaW5nQXJn
LmlzT2JqZWN0KCkgJiYgYXNPYmplY3QoZGlzdGluZ3Vpc2hpbmdBcmcpLT5pbmhlcml0cyhKUyR7
dHlwZX06OmluZm8oKSkiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAg
ICAgICAgICAgfQogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouY3BwIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5jcHAKaW5k
ZXggYzgyN2VhZTg1M2Y4MGY0MzY0NTAxMDU1NGJiMjBlNDlkNGU1ZjJiMC4uMmFlNTdkOTJhZTQ4
MDNiY2Q3YzJkM2Y2N2MyY2Q5MmRhYzdiMzc5YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5jcHAKQEAgLTQ4LDYgKzQ4LDcg
QEAKICNpbmNsdWRlICJKU1NWR1BvaW50LmgiCiAjaW5jbHVkZSAiSlNUZXN0Q2FsbGJhY2suaCIK
ICNpbmNsdWRlICJKU1Rlc3RDYWxsYmFja0Z1bmN0aW9uLmgiCisjaW5jbHVkZSAiSlNUZXN0SW50
ZXJmYWNlLmgiCiAjaW5jbHVkZSAiSlNUZXN0Tm9kZS5oIgogI2luY2x1ZGUgIkpTVGVzdE9iai5o
IgogI2luY2x1ZGUgIkpTVGVzdFN0YW5kYWxvbmVEaWN0aW9uYXJ5LmgiCkBAIC05NTYsNiArOTU3
LDkgQEAgSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlw
ZUZ1bmN0aW9uQ29uZGl0aW9uYWxNZXRob2QzKEoKICNlbmRpZgogSlNDOjpFbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uT3ZlcmxvYWRlZE1ldGhv
ZChKU0M6OkV4ZWNTdGF0ZSopOwogSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpz
VGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uT3ZlcmxvYWRlZE1ldGhvZFdpdGhPcHRpb25hbFBhcmFt
ZXRlcihKU0M6OkV4ZWNTdGF0ZSopOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxM
IGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uT3ZlcmxvYWRlZE1ldGhvZFdpdGhEaXN0aW5ndWlz
aGluZ1VuaW9uKEpTQzo6RXhlY1N0YXRlKik7CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NU
X0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25PdmVybG9hZGVkTWV0aG9kV2l0aDJEaXN0
aW5ndWlzaGluZ1VuaW9ucyhKU0M6OkV4ZWNTdGF0ZSopOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBK
U0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uT3ZlcmxvYWRlZE1ldGhvZFdp
dGhOb25EaXN0aW5ndWlzaGluZ1VuaW9uKEpTQzo6RXhlY1N0YXRlKik7CiBKU0M6OkVuY29kZWRK
U1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqQ29uc3RydWN0b3JGdW5jdGlvbkNsYXNzTWV0
aG9kKEpTQzo6RXhlY1N0YXRlKik7CiBKU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwg
anNUZXN0T2JqQ29uc3RydWN0b3JGdW5jdGlvbkNsYXNzTWV0aG9kV2l0aE9wdGlvbmFsKEpTQzo6
RXhlY1N0YXRlKik7CiBKU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2Jq
Q29uc3RydWN0b3JGdW5jdGlvbkNsYXNzTWV0aG9kMihKU0M6OkV4ZWNTdGF0ZSopOwpAQCAtMTU3
NCw2ICsxNTc4LDkgQEAgc3RhdGljIGNvbnN0IEhhc2hUYWJsZVZhbHVlIEpTVGVzdE9ialByb3Rv
dHlwZVRhYmxlVmFsdWVzW10gPQogI2VuZGlmCiAgICAgeyAib3ZlcmxvYWRlZE1ldGhvZCIsIEpT
Qzo6RnVuY3Rpb24sIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxOYXRpdmVG
dW5jdGlvbj4oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25PdmVybG9hZGVkTWV0aG9kKSwgKGlu
dHB0cl90KSAoMCkgfSB9LAogICAgIHsgIm92ZXJsb2FkZWRNZXRob2RXaXRoT3B0aW9uYWxQYXJh
bWV0ZXIiLCBKU0M6OkZ1bmN0aW9uLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nh
c3Q8TmF0aXZlRnVuY3Rpb24+KGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uT3ZlcmxvYWRlZE1l
dGhvZFdpdGhPcHRpb25hbFBhcmFtZXRlciksIChpbnRwdHJfdCkgKDEpIH0gfSwKKyAgICB7ICJv
dmVybG9hZGVkTWV0aG9kV2l0aERpc3Rpbmd1aXNoaW5nVW5pb24iLCBKU0M6OkZ1bmN0aW9uLCBO
b0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8TmF0aXZlRnVuY3Rpb24+KGpzVGVz
dE9ialByb3RvdHlwZUZ1bmN0aW9uT3ZlcmxvYWRlZE1ldGhvZFdpdGhEaXN0aW5ndWlzaGluZ1Vu
aW9uKSwgKGludHB0cl90KSAoMSkgfSB9LAorICAgIHsgIm92ZXJsb2FkZWRNZXRob2RXaXRoMkRp
c3Rpbmd1aXNoaW5nVW5pb25zIiwgSlNDOjpGdW5jdGlvbiwgTm9JbnRyaW5zaWMsIHsgKGludHB0
cl90KXN0YXRpY19jYXN0PE5hdGl2ZUZ1bmN0aW9uPihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlv
bk92ZXJsb2FkZWRNZXRob2RXaXRoMkRpc3Rpbmd1aXNoaW5nVW5pb25zKSwgKGludHB0cl90KSAo
MSkgfSB9LAorICAgIHsgIm92ZXJsb2FkZWRNZXRob2RXaXRoTm9uRGlzdGluZ3Vpc2hpbmdVbmlv
biIsIEpTQzo6RnVuY3Rpb24sIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxO
YXRpdmVGdW5jdGlvbj4oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25PdmVybG9hZGVkTWV0aG9k
V2l0aE5vbkRpc3Rpbmd1aXNoaW5nVW5pb24pLCAoaW50cHRyX3QpICgyKSB9IH0sCiAgICAgeyAi
Y2xhc3NNZXRob2RXaXRoQ2xhbXAiLCBKU0M6OkZ1bmN0aW9uLCBOb0ludHJpbnNpYywgeyAoaW50
cHRyX3Qpc3RhdGljX2Nhc3Q8TmF0aXZlRnVuY3Rpb24+KGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0
aW9uQ2xhc3NNZXRob2RXaXRoQ2xhbXApLCAoaW50cHRyX3QpICgyKSB9IH0sCiAgICAgeyAiY2xh
c3NNZXRob2RXaXRoRW5mb3JjZVJhbmdlIiwgSlNDOjpGdW5jdGlvbiwgTm9JbnRyaW5zaWMsIHsg
KGludHB0cl90KXN0YXRpY19jYXN0PE5hdGl2ZUZ1bmN0aW9uPihqc1Rlc3RPYmpQcm90b3R5cGVG
dW5jdGlvbkNsYXNzTWV0aG9kV2l0aEVuZm9yY2VSYW5nZSksIChpbnRwdHJfdCkgKDIpIH0gfSwK
ICAgICB7ICJtZXRob2RXaXRoVW5zaWduZWRMb25nU2VxdWVuY2UiLCBKU0M6OkZ1bmN0aW9uLCBO
b0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8TmF0aXZlRnVuY3Rpb24+KGpzVGVz
dE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aFVuc2lnbmVkTG9uZ1NlcXVlbmNlKSwgKGlu
dHB0cl90KSAoMSkgfSB9LApAQCAtNjg0MSw2ICs2ODQ4LDE4OCBAQCBFbmNvZGVkSlNWYWx1ZSBK
U0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uT3ZlcmxvYWRlZE1ldGhvZFdp
dGhPcHRpbwogICAgIHJldHVybiBhcmdzQ291bnQgPCAxID8gdGhyb3dWTUVycm9yKHN0YXRlLCB0
aHJvd1Njb3BlLCBjcmVhdGVOb3RFbm91Z2hBcmd1bWVudHNFcnJvcihzdGF0ZSkpIDogdGhyb3dW
TVR5cGVFcnJvcihzdGF0ZSwgdGhyb3dTY29wZSk7CiB9CiAKK3N0YXRpYyBpbmxpbmUgSlNDOjpF
bmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk92ZXJsb2FkZWRNZXRob2RX
aXRoRGlzdGluZ3Vpc2hpbmdVbmlvbjFDYWxsZXIoSlNDOjpFeGVjU3RhdGUqLCBKU1Rlc3RPYmoq
LCBKU0M6OlRocm93U2NvcGUmKTsKKworc3RhdGljIGlubGluZSBFbmNvZGVkSlNWYWx1ZSBqc1Rl
c3RPYmpQcm90b3R5cGVGdW5jdGlvbk92ZXJsb2FkZWRNZXRob2RXaXRoRGlzdGluZ3Vpc2hpbmdV
bmlvbjEoRXhlY1N0YXRlKiBzdGF0ZSkKK3sKKyAgICByZXR1cm4gQmluZGluZ0NhbGxlcjxKU1Rl
c3RPYmo+OjpjYWxsT3BlcmF0aW9uPGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uT3ZlcmxvYWRl
ZE1ldGhvZFdpdGhEaXN0aW5ndWlzaGluZ1VuaW9uMUNhbGxlcj4oc3RhdGUsICJvdmVybG9hZGVk
TWV0aG9kV2l0aERpc3Rpbmd1aXNoaW5nVW5pb24iKTsKK30KKworc3RhdGljIGlubGluZSBKU0M6
OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uT3ZlcmxvYWRlZE1ldGhv
ZFdpdGhEaXN0aW5ndWlzaGluZ1VuaW9uMUNhbGxlcihKU0M6OkV4ZWNTdGF0ZSogc3RhdGUsIEpT
VGVzdE9iaiogY2FzdGVkVGhpcywgSlNDOjpUaHJvd1Njb3BlJiB0aHJvd1Njb3BlKQoreworICAg
IFVOVVNFRF9QQVJBTShzdGF0ZSk7CisgICAgVU5VU0VEX1BBUkFNKHRocm93U2NvcGUpOworICAg
IGF1dG8mIGltcGwgPSBjYXN0ZWRUaGlzLT53cmFwcGVkKCk7CisgICAgaWYgKFVOTElLRUxZKHN0
YXRlLT5hcmd1bWVudENvdW50KCkgPCAxKSkKKyAgICAgICAgcmV0dXJuIHRocm93Vk1FcnJvcihz
dGF0ZSwgdGhyb3dTY29wZSwgY3JlYXRlTm90RW5vdWdoQXJndW1lbnRzRXJyb3Ioc3RhdGUpKTsK
KyAgICBhdXRvIG9iamVjdE9yTm9kZSA9IGNvbnZlcnQ8SURMVW5pb248SURMSW50ZXJmYWNlPFRl
c3RPYmo+LCBJRExJbnRlcmZhY2U8VGVzdE5vZGU+Pj4oKnN0YXRlLCBzdGF0ZS0+dW5jaGVja2Vk
QXJndW1lbnQoMCkpOworICAgIFJFVFVSTl9JRl9FWENFUFRJT04odGhyb3dTY29wZSwgZW5jb2Rl
ZEpTVmFsdWUoKSk7CisgICAgaW1wbC5vdmVybG9hZGVkTWV0aG9kV2l0aERpc3Rpbmd1aXNoaW5n
VW5pb24oV1RGTW92ZShvYmplY3RPck5vZGUpKTsKKyAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2Rl
KGpzVW5kZWZpbmVkKCkpOworfQorCitzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUg
anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25PdmVybG9hZGVkTWV0aG9kV2l0aERpc3Rpbmd1aXNo
aW5nVW5pb24yQ2FsbGVyKEpTQzo6RXhlY1N0YXRlKiwgSlNUZXN0T2JqKiwgSlNDOjpUaHJvd1Nj
b3BlJik7CisKK3N0YXRpYyBpbmxpbmUgRW5jb2RlZEpTVmFsdWUganNUZXN0T2JqUHJvdG90eXBl
RnVuY3Rpb25PdmVybG9hZGVkTWV0aG9kV2l0aERpc3Rpbmd1aXNoaW5nVW5pb24yKEV4ZWNTdGF0
ZSogc3RhdGUpCit7CisgICAgcmV0dXJuIEJpbmRpbmdDYWxsZXI8SlNUZXN0T2JqPjo6Y2FsbE9w
ZXJhdGlvbjxqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk92ZXJsb2FkZWRNZXRob2RXaXRoRGlz
dGluZ3Vpc2hpbmdVbmlvbjJDYWxsZXI+KHN0YXRlLCAib3ZlcmxvYWRlZE1ldGhvZFdpdGhEaXN0
aW5ndWlzaGluZ1VuaW9uIik7Cit9CisKK3N0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1
ZSBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk92ZXJsb2FkZWRNZXRob2RXaXRoRGlzdGluZ3Vp
c2hpbmdVbmlvbjJDYWxsZXIoSlNDOjpFeGVjU3RhdGUqIHN0YXRlLCBKU1Rlc3RPYmoqIGNhc3Rl
ZFRoaXMsIEpTQzo6VGhyb3dTY29wZSYgdGhyb3dTY29wZSkKK3sKKyAgICBVTlVTRURfUEFSQU0o
c3RhdGUpOworICAgIFVOVVNFRF9QQVJBTSh0aHJvd1Njb3BlKTsKKyAgICBhdXRvJiBpbXBsID0g
Y2FzdGVkVGhpcy0+d3JhcHBlZCgpOworICAgIGlmIChVTkxJS0VMWShzdGF0ZS0+YXJndW1lbnRD
b3VudCgpIDwgMSkpCisgICAgICAgIHJldHVybiB0aHJvd1ZNRXJyb3Ioc3RhdGUsIHRocm93U2Nv
cGUsIGNyZWF0ZU5vdEVub3VnaEFyZ3VtZW50c0Vycm9yKHN0YXRlKSk7CisgICAgYXV0byB2YWx1
ZSA9IGNvbnZlcnQ8SURMTG9uZz4oKnN0YXRlLCBzdGF0ZS0+dW5jaGVja2VkQXJndW1lbnQoMCks
IE5vcm1hbENvbnZlcnNpb24pOworICAgIFJFVFVSTl9JRl9FWENFUFRJT04odGhyb3dTY29wZSwg
ZW5jb2RlZEpTVmFsdWUoKSk7CisgICAgaW1wbC5vdmVybG9hZGVkTWV0aG9kV2l0aERpc3Rpbmd1
aXNoaW5nVW5pb24oV1RGTW92ZSh2YWx1ZSkpOworICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUo
anNVbmRlZmluZWQoKSk7Cit9CisKK0VuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0
T2JqUHJvdG90eXBlRnVuY3Rpb25PdmVybG9hZGVkTWV0aG9kV2l0aERpc3Rpbmd1aXNoaW5nVW5p
b24oRXhlY1N0YXRlKiBzdGF0ZSkKK3sKKyAgICBWTSYgdm0gPSBzdGF0ZS0+dm0oKTsKKyAgICBh
dXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKKyAgICBVTlVTRURfUEFS
QU0odGhyb3dTY29wZSk7CisgICAgc2l6ZV90IGFyZ3NDb3VudCA9IHN0ZDo6bWluPHNpemVfdD4o
MSwgc3RhdGUtPmFyZ3VtZW50Q291bnQoKSk7CisgICAgaWYgKGFyZ3NDb3VudCA9PSAxKSB7Cisg
ICAgICAgIEpTVmFsdWUgZGlzdGluZ3Vpc2hpbmdBcmcgPSBzdGF0ZS0+dW5jaGVja2VkQXJndW1l
bnQoMCk7CisgICAgICAgIGlmIChkaXN0aW5ndWlzaGluZ0FyZy5pc09iamVjdCgpICYmIGFzT2Jq
ZWN0KGRpc3Rpbmd1aXNoaW5nQXJnKS0+aW5oZXJpdHMoSlNUZXN0T2JqOjppbmZvKCkpKQorICAg
ICAgICAgICAgcmV0dXJuIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uT3ZlcmxvYWRlZE1ldGhv
ZFdpdGhEaXN0aW5ndWlzaGluZ1VuaW9uMShzdGF0ZSk7CisgICAgICAgIGlmIChkaXN0aW5ndWlz
aGluZ0FyZy5pc09iamVjdCgpICYmIGFzT2JqZWN0KGRpc3Rpbmd1aXNoaW5nQXJnKS0+aW5oZXJp
dHMoSlNUZXN0Tm9kZTo6aW5mbygpKSkKKyAgICAgICAgICAgIHJldHVybiBqc1Rlc3RPYmpQcm90
b3R5cGVGdW5jdGlvbk92ZXJsb2FkZWRNZXRob2RXaXRoRGlzdGluZ3Vpc2hpbmdVbmlvbjEoc3Rh
dGUpOworICAgICAgICBpZiAoZGlzdGluZ3Vpc2hpbmdBcmcuaXNOdW1iZXIoKSkKKyAgICAgICAg
ICAgIHJldHVybiBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk92ZXJsb2FkZWRNZXRob2RXaXRo
RGlzdGluZ3Vpc2hpbmdVbmlvbjIoc3RhdGUpOworICAgICAgICByZXR1cm4ganNUZXN0T2JqUHJv
dG90eXBlRnVuY3Rpb25PdmVybG9hZGVkTWV0aG9kV2l0aERpc3Rpbmd1aXNoaW5nVW5pb24yKHN0
YXRlKTsKKyAgICB9CisgICAgcmV0dXJuIGFyZ3NDb3VudCA8IDEgPyB0aHJvd1ZNRXJyb3Ioc3Rh
dGUsIHRocm93U2NvcGUsIGNyZWF0ZU5vdEVub3VnaEFyZ3VtZW50c0Vycm9yKHN0YXRlKSkgOiB0
aHJvd1ZNVHlwZUVycm9yKHN0YXRlLCB0aHJvd1Njb3BlKTsKK30KKworc3RhdGljIGlubGluZSBK
U0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uT3ZlcmxvYWRlZE1l
dGhvZFdpdGgyRGlzdGluZ3Vpc2hpbmdVbmlvbnMxQ2FsbGVyKEpTQzo6RXhlY1N0YXRlKiwgSlNU
ZXN0T2JqKiwgSlNDOjpUaHJvd1Njb3BlJik7CisKK3N0YXRpYyBpbmxpbmUgRW5jb2RlZEpTVmFs
dWUganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25PdmVybG9hZGVkTWV0aG9kV2l0aDJEaXN0aW5n
dWlzaGluZ1VuaW9uczEoRXhlY1N0YXRlKiBzdGF0ZSkKK3sKKyAgICByZXR1cm4gQmluZGluZ0Nh
bGxlcjxKU1Rlc3RPYmo+OjpjYWxsT3BlcmF0aW9uPGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9u
T3ZlcmxvYWRlZE1ldGhvZFdpdGgyRGlzdGluZ3Vpc2hpbmdVbmlvbnMxQ2FsbGVyPihzdGF0ZSwg
Im92ZXJsb2FkZWRNZXRob2RXaXRoMkRpc3Rpbmd1aXNoaW5nVW5pb25zIik7Cit9CisKK3N0YXRp
YyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk92
ZXJsb2FkZWRNZXRob2RXaXRoMkRpc3Rpbmd1aXNoaW5nVW5pb25zMUNhbGxlcihKU0M6OkV4ZWNT
dGF0ZSogc3RhdGUsIEpTVGVzdE9iaiogY2FzdGVkVGhpcywgSlNDOjpUaHJvd1Njb3BlJiB0aHJv
d1Njb3BlKQoreworICAgIFVOVVNFRF9QQVJBTShzdGF0ZSk7CisgICAgVU5VU0VEX1BBUkFNKHRo
cm93U2NvcGUpOworICAgIGF1dG8mIGltcGwgPSBjYXN0ZWRUaGlzLT53cmFwcGVkKCk7CisgICAg
aWYgKFVOTElLRUxZKHN0YXRlLT5hcmd1bWVudENvdW50KCkgPCAxKSkKKyAgICAgICAgcmV0dXJu
IHRocm93Vk1FcnJvcihzdGF0ZSwgdGhyb3dTY29wZSwgY3JlYXRlTm90RW5vdWdoQXJndW1lbnRz
RXJyb3Ioc3RhdGUpKTsKKyAgICBhdXRvIG9iamVjdE9yTm9kZSA9IGNvbnZlcnQ8SURMVW5pb248
SURMSW50ZXJmYWNlPFRlc3RPYmo+LCBJRExJbnRlcmZhY2U8VGVzdE5vZGU+Pj4oKnN0YXRlLCBz
dGF0ZS0+dW5jaGVja2VkQXJndW1lbnQoMCkpOworICAgIFJFVFVSTl9JRl9FWENFUFRJT04odGhy
b3dTY29wZSwgZW5jb2RlZEpTVmFsdWUoKSk7CisgICAgaW1wbC5vdmVybG9hZGVkTWV0aG9kV2l0
aDJEaXN0aW5ndWlzaGluZ1VuaW9ucyhXVEZNb3ZlKG9iamVjdE9yTm9kZSkpOworICAgIHJldHVy
biBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7Cit9CisKK3N0YXRpYyBpbmxpbmUgSlND
OjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk92ZXJsb2FkZWRNZXRo
b2RXaXRoMkRpc3Rpbmd1aXNoaW5nVW5pb25zMkNhbGxlcihKU0M6OkV4ZWNTdGF0ZSosIEpTVGVz
dE9iaiosIEpTQzo6VGhyb3dTY29wZSYpOworCitzdGF0aWMgaW5saW5lIEVuY29kZWRKU1ZhbHVl
IGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uT3ZlcmxvYWRlZE1ldGhvZFdpdGgyRGlzdGluZ3Vp
c2hpbmdVbmlvbnMyKEV4ZWNTdGF0ZSogc3RhdGUpCit7CisgICAgcmV0dXJuIEJpbmRpbmdDYWxs
ZXI8SlNUZXN0T2JqPjo6Y2FsbE9wZXJhdGlvbjxqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk92
ZXJsb2FkZWRNZXRob2RXaXRoMkRpc3Rpbmd1aXNoaW5nVW5pb25zMkNhbGxlcj4oc3RhdGUsICJv
dmVybG9hZGVkTWV0aG9kV2l0aDJEaXN0aW5ndWlzaGluZ1VuaW9ucyIpOworfQorCitzdGF0aWMg
aW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25PdmVy
bG9hZGVkTWV0aG9kV2l0aDJEaXN0aW5ndWlzaGluZ1VuaW9uczJDYWxsZXIoSlNDOjpFeGVjU3Rh
dGUqIHN0YXRlLCBKU1Rlc3RPYmoqIGNhc3RlZFRoaXMsIEpTQzo6VGhyb3dTY29wZSYgdGhyb3dT
Y29wZSkKK3sKKyAgICBVTlVTRURfUEFSQU0oc3RhdGUpOworICAgIFVOVVNFRF9QQVJBTSh0aHJv
d1Njb3BlKTsKKyAgICBhdXRvJiBpbXBsID0gY2FzdGVkVGhpcy0+d3JhcHBlZCgpOworICAgIGlm
IChVTkxJS0VMWShzdGF0ZS0+YXJndW1lbnRDb3VudCgpIDwgMSkpCisgICAgICAgIHJldHVybiB0
aHJvd1ZNRXJyb3Ioc3RhdGUsIHRocm93U2NvcGUsIGNyZWF0ZU5vdEVub3VnaEFyZ3VtZW50c0Vy
cm9yKHN0YXRlKSk7CisgICAgYXV0byB2YWx1ZSA9IGNvbnZlcnQ8SURMVW5pb248SURMSW50ZXJm
YWNlPFRlc3RJbnRlcmZhY2U+LCBJRExET01TdHJpbmcsIElETExvbmc+Pigqc3RhdGUsIHN0YXRl
LT51bmNoZWNrZWRBcmd1bWVudCgwKSk7CisgICAgUkVUVVJOX0lGX0VYQ0VQVElPTih0aHJvd1Nj
b3BlLCBlbmNvZGVkSlNWYWx1ZSgpKTsKKyAgICBpbXBsLm92ZXJsb2FkZWRNZXRob2RXaXRoMkRp
c3Rpbmd1aXNoaW5nVW5pb25zKFdURk1vdmUodmFsdWUpKTsKKyAgICByZXR1cm4gSlNWYWx1ZTo6
ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOworfQorCitFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxM
IGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uT3ZlcmxvYWRlZE1ldGhvZFdpdGgyRGlzdGluZ3Vp
c2hpbmdVbmlvbnMoRXhlY1N0YXRlKiBzdGF0ZSkKK3sKKyAgICBWTSYgdm0gPSBzdGF0ZS0+dm0o
KTsKKyAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKKyAgICBV
TlVTRURfUEFSQU0odGhyb3dTY29wZSk7CisgICAgc2l6ZV90IGFyZ3NDb3VudCA9IHN0ZDo6bWlu
PHNpemVfdD4oMSwgc3RhdGUtPmFyZ3VtZW50Q291bnQoKSk7CisgICAgaWYgKGFyZ3NDb3VudCA9
PSAxKSB7CisgICAgICAgIEpTVmFsdWUgZGlzdGluZ3Vpc2hpbmdBcmcgPSBzdGF0ZS0+dW5jaGVj
a2VkQXJndW1lbnQoMCk7CisgICAgICAgIGlmIChkaXN0aW5ndWlzaGluZ0FyZy5pc09iamVjdCgp
ICYmIGFzT2JqZWN0KGRpc3Rpbmd1aXNoaW5nQXJnKS0+aW5oZXJpdHMoSlNUZXN0T2JqOjppbmZv
KCkpKQorICAgICAgICAgICAgcmV0dXJuIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uT3Zlcmxv
YWRlZE1ldGhvZFdpdGgyRGlzdGluZ3Vpc2hpbmdVbmlvbnMxKHN0YXRlKTsKKyAgICAgICAgaWYg
KGRpc3Rpbmd1aXNoaW5nQXJnLmlzT2JqZWN0KCkgJiYgYXNPYmplY3QoZGlzdGluZ3Vpc2hpbmdB
cmcpLT5pbmhlcml0cyhKU1Rlc3ROb2RlOjppbmZvKCkpKQorICAgICAgICAgICAgcmV0dXJuIGpz
VGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uT3ZlcmxvYWRlZE1ldGhvZFdpdGgyRGlzdGluZ3Vpc2hp
bmdVbmlvbnMxKHN0YXRlKTsKKyAgICAgICAgaWYgKGRpc3Rpbmd1aXNoaW5nQXJnLmlzT2JqZWN0
KCkgJiYgYXNPYmplY3QoZGlzdGluZ3Vpc2hpbmdBcmcpLT5pbmhlcml0cyhKU1Rlc3RJbnRlcmZh
Y2U6OmluZm8oKSkpCisgICAgICAgICAgICByZXR1cm4ganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rp
b25PdmVybG9hZGVkTWV0aG9kV2l0aDJEaXN0aW5ndWlzaGluZ1VuaW9uczIoc3RhdGUpOworICAg
ICAgICBpZiAoZGlzdGluZ3Vpc2hpbmdBcmcuaXNOdW1iZXIoKSkKKyAgICAgICAgICAgIHJldHVy
biBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk92ZXJsb2FkZWRNZXRob2RXaXRoMkRpc3Rpbmd1
aXNoaW5nVW5pb25zMihzdGF0ZSk7CisgICAgICAgIHJldHVybiBqc1Rlc3RPYmpQcm90b3R5cGVG
dW5jdGlvbk92ZXJsb2FkZWRNZXRob2RXaXRoMkRpc3Rpbmd1aXNoaW5nVW5pb25zMihzdGF0ZSk7
CisgICAgfQorICAgIHJldHVybiBhcmdzQ291bnQgPCAxID8gdGhyb3dWTUVycm9yKHN0YXRlLCB0
aHJvd1Njb3BlLCBjcmVhdGVOb3RFbm91Z2hBcmd1bWVudHNFcnJvcihzdGF0ZSkpIDogdGhyb3dW
TVR5cGVFcnJvcihzdGF0ZSwgdGhyb3dTY29wZSk7Cit9CisKK3N0YXRpYyBpbmxpbmUgSlNDOjpF
bmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk92ZXJsb2FkZWRNZXRob2RX
aXRoTm9uRGlzdGluZ3Vpc2hpbmdVbmlvbjFDYWxsZXIoSlNDOjpFeGVjU3RhdGUqLCBKU1Rlc3RP
YmoqLCBKU0M6OlRocm93U2NvcGUmKTsKKworc3RhdGljIGlubGluZSBFbmNvZGVkSlNWYWx1ZSBq
c1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk92ZXJsb2FkZWRNZXRob2RXaXRoTm9uRGlzdGluZ3Vp
c2hpbmdVbmlvbjEoRXhlY1N0YXRlKiBzdGF0ZSkKK3sKKyAgICByZXR1cm4gQmluZGluZ0NhbGxl
cjxKU1Rlc3RPYmo+OjpjYWxsT3BlcmF0aW9uPGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uT3Zl
cmxvYWRlZE1ldGhvZFdpdGhOb25EaXN0aW5ndWlzaGluZ1VuaW9uMUNhbGxlcj4oc3RhdGUsICJv
dmVybG9hZGVkTWV0aG9kV2l0aE5vbkRpc3Rpbmd1aXNoaW5nVW5pb24iKTsKK30KKworc3RhdGlj
IGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uT3Zl
cmxvYWRlZE1ldGhvZFdpdGhOb25EaXN0aW5ndWlzaGluZ1VuaW9uMUNhbGxlcihKU0M6OkV4ZWNT
dGF0ZSogc3RhdGUsIEpTVGVzdE9iaiogY2FzdGVkVGhpcywgSlNDOjpUaHJvd1Njb3BlJiB0aHJv
d1Njb3BlKQoreworICAgIFVOVVNFRF9QQVJBTShzdGF0ZSk7CisgICAgVU5VU0VEX1BBUkFNKHRo
cm93U2NvcGUpOworICAgIGF1dG8mIGltcGwgPSBjYXN0ZWRUaGlzLT53cmFwcGVkKCk7CisgICAg
aWYgKFVOTElLRUxZKHN0YXRlLT5hcmd1bWVudENvdW50KCkgPCAyKSkKKyAgICAgICAgcmV0dXJu
IHRocm93Vk1FcnJvcihzdGF0ZSwgdGhyb3dTY29wZSwgY3JlYXRlTm90RW5vdWdoQXJndW1lbnRz
RXJyb3Ioc3RhdGUpKTsKKyAgICBhdXRvIG9iamVjdE9yTm9kZSA9IGNvbnZlcnQ8SURMVW5pb248
SURMSW50ZXJmYWNlPFRlc3RPYmo+LCBJRExJbnRlcmZhY2U8VGVzdE5vZGU+Pj4oKnN0YXRlLCBz
dGF0ZS0+dW5jaGVja2VkQXJndW1lbnQoMCkpOworICAgIFJFVFVSTl9JRl9FWENFUFRJT04odGhy
b3dTY29wZSwgZW5jb2RlZEpTVmFsdWUoKSk7CisgICAgYXV0byBvYmplY3QgPSBKU1Rlc3RPYmo6
OnRvV3JhcHBlZChzdGF0ZS0+dW5jaGVja2VkQXJndW1lbnQoMSkpOworICAgIGlmIChVTkxJS0VM
WSghb2JqZWN0KSkKKyAgICAgICAgcmV0dXJuIHRocm93QXJndW1lbnRUeXBlRXJyb3IoKnN0YXRl
LCB0aHJvd1Njb3BlLCAxLCAib2JqZWN0IiwgIlRlc3RPYmplY3QiLCAib3ZlcmxvYWRlZE1ldGhv
ZFdpdGhOb25EaXN0aW5ndWlzaGluZ1VuaW9uIiwgIlRlc3RPYmoiKTsKKyAgICBpbXBsLm92ZXJs
b2FkZWRNZXRob2RXaXRoTm9uRGlzdGluZ3Vpc2hpbmdVbmlvbihXVEZNb3ZlKG9iamVjdE9yTm9k
ZSksICpvYmplY3QpOworICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7
Cit9CisKK3N0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpQcm90b3R5
cGVGdW5jdGlvbk92ZXJsb2FkZWRNZXRob2RXaXRoTm9uRGlzdGluZ3Vpc2hpbmdVbmlvbjJDYWxs
ZXIoSlNDOjpFeGVjU3RhdGUqLCBKU1Rlc3RPYmoqLCBKU0M6OlRocm93U2NvcGUmKTsKKworc3Rh
dGljIGlubGluZSBFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk92ZXJs
b2FkZWRNZXRob2RXaXRoTm9uRGlzdGluZ3Vpc2hpbmdVbmlvbjIoRXhlY1N0YXRlKiBzdGF0ZSkK
K3sKKyAgICByZXR1cm4gQmluZGluZ0NhbGxlcjxKU1Rlc3RPYmo+OjpjYWxsT3BlcmF0aW9uPGpz
VGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uT3ZlcmxvYWRlZE1ldGhvZFdpdGhOb25EaXN0aW5ndWlz
aGluZ1VuaW9uMkNhbGxlcj4oc3RhdGUsICJvdmVybG9hZGVkTWV0aG9kV2l0aE5vbkRpc3Rpbmd1
aXNoaW5nVW5pb24iKTsKK30KKworc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpz
VGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uT3ZlcmxvYWRlZE1ldGhvZFdpdGhOb25EaXN0aW5ndWlz
aGluZ1VuaW9uMkNhbGxlcihKU0M6OkV4ZWNTdGF0ZSogc3RhdGUsIEpTVGVzdE9iaiogY2FzdGVk
VGhpcywgSlNDOjpUaHJvd1Njb3BlJiB0aHJvd1Njb3BlKQoreworICAgIFVOVVNFRF9QQVJBTShz
dGF0ZSk7CisgICAgVU5VU0VEX1BBUkFNKHRocm93U2NvcGUpOworICAgIGF1dG8mIGltcGwgPSBj
YXN0ZWRUaGlzLT53cmFwcGVkKCk7CisgICAgaWYgKFVOTElLRUxZKHN0YXRlLT5hcmd1bWVudENv
dW50KCkgPCAyKSkKKyAgICAgICAgcmV0dXJuIHRocm93Vk1FcnJvcihzdGF0ZSwgdGhyb3dTY29w
ZSwgY3JlYXRlTm90RW5vdWdoQXJndW1lbnRzRXJyb3Ioc3RhdGUpKTsKKyAgICBhdXRvIG9iamVj
dE9yTm9kZSA9IGNvbnZlcnQ8SURMVW5pb248SURMSW50ZXJmYWNlPFRlc3RPYmo+LCBJRExJbnRl
cmZhY2U8VGVzdE5vZGU+Pj4oKnN0YXRlLCBzdGF0ZS0+dW5jaGVja2VkQXJndW1lbnQoMCkpOwor
ICAgIFJFVFVSTl9JRl9FWENFUFRJT04odGhyb3dTY29wZSwgZW5jb2RlZEpTVmFsdWUoKSk7Cisg
ICAgYXV0byBub2RlID0gSlNUZXN0Tm9kZTo6dG9XcmFwcGVkKHN0YXRlLT51bmNoZWNrZWRBcmd1
bWVudCgxKSk7CisgICAgaWYgKFVOTElLRUxZKCFub2RlKSkKKyAgICAgICAgcmV0dXJuIHRocm93
QXJndW1lbnRUeXBlRXJyb3IoKnN0YXRlLCB0aHJvd1Njb3BlLCAxLCAibm9kZSIsICJUZXN0T2Jq
ZWN0IiwgIm92ZXJsb2FkZWRNZXRob2RXaXRoTm9uRGlzdGluZ3Vpc2hpbmdVbmlvbiIsICJUZXN0
Tm9kZSIpOworICAgIGltcGwub3ZlcmxvYWRlZE1ldGhvZFdpdGhOb25EaXN0aW5ndWlzaGluZ1Vu
aW9uKFdURk1vdmUob2JqZWN0T3JOb2RlKSwgKm5vZGUpOworICAgIHJldHVybiBKU1ZhbHVlOjpl
bmNvZGUoanNVbmRlZmluZWQoKSk7Cit9CisKK0VuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwg
anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25PdmVybG9hZGVkTWV0aG9kV2l0aE5vbkRpc3Rpbmd1
aXNoaW5nVW5pb24oRXhlY1N0YXRlKiBzdGF0ZSkKK3sKKyAgICBWTSYgdm0gPSBzdGF0ZS0+dm0o
KTsKKyAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKKyAgICBV
TlVTRURfUEFSQU0odGhyb3dTY29wZSk7CisgICAgc2l6ZV90IGFyZ3NDb3VudCA9IHN0ZDo6bWlu
PHNpemVfdD4oMiwgc3RhdGUtPmFyZ3VtZW50Q291bnQoKSk7CisgICAgaWYgKGFyZ3NDb3VudCA9
PSAyKSB7CisgICAgICAgIEpTVmFsdWUgZGlzdGluZ3Vpc2hpbmdBcmcgPSBzdGF0ZS0+dW5jaGVj
a2VkQXJndW1lbnQoMSk7CisgICAgICAgIGlmIChkaXN0aW5ndWlzaGluZ0FyZy5pc09iamVjdCgp
ICYmIGFzT2JqZWN0KGRpc3Rpbmd1aXNoaW5nQXJnKS0+aW5oZXJpdHMoSlNUZXN0T2JqOjppbmZv
KCkpKQorICAgICAgICAgICAgcmV0dXJuIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uT3Zlcmxv
YWRlZE1ldGhvZFdpdGhOb25EaXN0aW5ndWlzaGluZ1VuaW9uMShzdGF0ZSk7CisgICAgICAgIGlm
IChkaXN0aW5ndWlzaGluZ0FyZy5pc09iamVjdCgpICYmIGFzT2JqZWN0KGRpc3Rpbmd1aXNoaW5n
QXJnKS0+aW5oZXJpdHMoSlNUZXN0Tm9kZTo6aW5mbygpKSkKKyAgICAgICAgICAgIHJldHVybiBq
c1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk92ZXJsb2FkZWRNZXRob2RXaXRoTm9uRGlzdGluZ3Vp
c2hpbmdVbmlvbjIoc3RhdGUpOworICAgIH0KKyAgICByZXR1cm4gYXJnc0NvdW50IDwgMiA/IHRo
cm93Vk1FcnJvcihzdGF0ZSwgdGhyb3dTY29wZSwgY3JlYXRlTm90RW5vdWdoQXJndW1lbnRzRXJy
b3Ioc3RhdGUpKSA6IHRocm93Vk1UeXBlRXJyb3Ioc3RhdGUsIHRocm93U2NvcGUpOworfQorCiBF
bmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9iakNvbnN0cnVjdG9yRnVuY3Rpb25D
bGFzc01ldGhvZChFeGVjU3RhdGUqIHN0YXRlKQogewogICAgIFZNJiB2bSA9IHN0YXRlLT52bSgp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Rlc3RP
YmouaWRsIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Rlc3RPYmouaWRs
CmluZGV4IDE3ZWRiZjljYzIwMGQwMzJlNjFjMTQxYjY2MGY1ZjA5YTU4NDk1MmYuLmI3NWJjZGY1
ZjAyOWRlM2FiNTc3NDg2ZTlmNmZlZWI4Y2I2N2I2ZDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9UZXN0T2JqLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVGVzdE9iai5pZGwKQEAgLTI5OCw2ICsyOTgsMTUgQEAg
ZW51bSBUZXN0Q29uZmlkZW5jZSB7ICJoaWdoIiwgImtpbmRhLWxvdyIgfTsKIAogICAgIHZvaWQg
b3ZlcmxvYWRlZE1ldGhvZFdpdGhPcHRpb25hbFBhcmFtZXRlcihET01TdHJpbmcgc3RyQXJnLCBv
cHRpb25hbCBUZXN0T2JqPyBvYmpBcmcgPSBudWxsKTsKICAgICB2b2lkIG92ZXJsb2FkZWRNZXRo
b2RXaXRoT3B0aW9uYWxQYXJhbWV0ZXIoVGVzdE9iaj8gb2JqQXJnLCBvcHRpb25hbCBsb25nIGxv
bmdBcmcpOworCisgICAgdm9pZCBvdmVybG9hZGVkTWV0aG9kV2l0aERpc3Rpbmd1aXNoaW5nVW5p
b24oKFRlc3RPYmogb3IgVGVzdE5vZGUpIG9iamVjdE9yTm9kZSk7CisgICAgdm9pZCBvdmVybG9h
ZGVkTWV0aG9kV2l0aERpc3Rpbmd1aXNoaW5nVW5pb24obG9uZyB2YWx1ZSk7CisKKyAgICB2b2lk
IG92ZXJsb2FkZWRNZXRob2RXaXRoMkRpc3Rpbmd1aXNoaW5nVW5pb25zKChUZXN0T2JqIG9yIFRl
c3ROb2RlKSBvYmplY3RPck5vZGUpOworICAgIHZvaWQgb3ZlcmxvYWRlZE1ldGhvZFdpdGgyRGlz
dGluZ3Vpc2hpbmdVbmlvbnMoKFRlc3RJbnRlcmZhY2Ugb3IgRE9NU3RyaW5nIG9yIGxvbmcpIHZh
bHVlKTsKKworICAgIHZvaWQgb3ZlcmxvYWRlZE1ldGhvZFdpdGhOb25EaXN0aW5ndWlzaGluZ1Vu
aW9uKChUZXN0T2JqIG9yIFRlc3ROb2RlKSBvYmplY3RPck5vZGUsIFRlc3RPYmogb2JqZWN0KTsK
KyAgICB2b2lkIG92ZXJsb2FkZWRNZXRob2RXaXRoTm9uRGlzdGluZ3Vpc2hpbmdVbmlvbigoVGVz
dE9iaiBvciBUZXN0Tm9kZSkgb2JqZWN0T3JOb2RlLCBUZXN0Tm9kZSBub2RlKTsKICNlbmRpZgog
CiAgICAgLy8gQ2xhc3MgbWV0aG9kcyB3aXRoaW4gSmF2YVNjcmlwdCAobGlrZSB3aGF0J3MgdXNl
ZCBmb3IgSURCS2V5UmFuZ2UpLgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>