<?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>234880</bug_id>
          
          <creation_ts>2022-01-05 05:24:23 -0800</creation_ts>
          <short_desc>computed style for transition longhand properties is wrong</short_desc>
          <delta_ts>2022-01-12 12:38:19 -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>Animations</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></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar, WebExposed</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>235130</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Antoine Quint">graouts</reporter>
          <assigned_to name="Antoine Quint">graouts</assigned_to>
          <cc>changseok</cc>
    
    <cc>dino</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>graouts</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>koivisto</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>macpherson</cc>
    
    <cc>menard</cc>
    
    <cc>pdr</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1828253</commentid>
    <comment_count>0</comment_count>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2022-01-05 05:24:23 -0800</bug_when>
    <thetext>computed style for transition longhand properties is wrong</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1828256</commentid>
    <comment_count>1</comment_count>
      <attachid>448380</attachid>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2022-01-05 05:29:53 -0800</bug_when>
    <thetext>Created attachment 448380
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1828260</commentid>
    <comment_count>2</comment_count>
      <attachid>448380</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2022-01-05 05:41:35 -0800</bug_when>
    <thetext>Comment on attachment 448380
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=448380&amp;action=review

&gt; Source/WebCore/css/CSSComputedStyleDeclaration.cpp:1497
&gt; +    std::optional&lt;size_t&gt; firstImplicitValueIndex;
&gt; +    if (property == CSSPropertyAnimationDuration || property == CSSPropertyTransitionDuration)
&gt; +        firstImplicitValueIndex = animationList.firstImplicitDurationIndex();
&gt; +    else if (property == CSSPropertyAnimationDelay || property == CSSPropertyTransitionDelay)
&gt; +        firstImplicitValueIndex = animationList.firstImplicitDelayIndex();
&gt; +    else if (property == CSSPropertyAnimationTimingFunction || property == CSSPropertyTransitionTimingFunction)
&gt; +        firstImplicitValueIndex = animationList.firstImplicitTimingFunctionIndex();
&gt; +    else if (property == CSSPropertyAnimationDirection)
&gt; +        firstImplicitValueIndex = animationList.firstImplicitDirectionIndex();
&gt; +    else if (property == CSSPropertyAnimationIterationCount)
&gt; +        firstImplicitValueIndex = animationList.firstImplicitIterationCountIndex();
&gt; +    else if (property == CSSPropertyAnimationFillMode)
&gt; +        firstImplicitValueIndex = animationList.firstImplicitFillModeIndex();
&gt; +    else if (property == CSSPropertyAnimationPlayState)
&gt; +        firstImplicitValueIndex = animationList.firstImplicitPlayStateIndex();
&gt; +    else if (property == CSSPropertyTransitionProperty)
&gt; +        firstImplicitValueIndex = animationList.firstImplicitPropertyIndex();

I&apos;d write this as lambda that uses switch and returns std::optional&lt;size_t&gt; firstImplicitValueIndex

Or at least use switch.

&gt; Source/WebCore/platform/animation/AnimationList.h:84
&gt; +    std::optional&lt;size_t&gt; m_firstImplicitDelayIndex;
&gt; +    std::optional&lt;size_t&gt; m_firstImplicitDirectionIndex;
&gt; +    std::optional&lt;size_t&gt; m_firstImplicitDurationIndex;
&gt; +    std::optional&lt;size_t&gt; m_firstImplicitFillModeIndex;
&gt; +    std::optional&lt;size_t&gt; m_firstImplicitIterationCountIndex;
&gt; +    std::optional&lt;size_t&gt; m_firstImplicitPlayStateIndex;
&gt; +    std::optional&lt;size_t&gt; m_firstImplicitPropertyIndex;
&gt; +    std::optional&lt;size_t&gt; m_firstImplicitTimingFunctionIndex;

This would be pretty wasteful if we cared about AnimationList memory use. But maybe we don&apos;t?

Why can&apos;t this just be a bit in Animation?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1828262</commentid>
    <comment_count>3</comment_count>
      <attachid>448383</attachid>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2022-01-05 06:57:32 -0800</bug_when>
    <thetext>Created attachment 448383
Alternative patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1828263</commentid>
    <comment_count>4</comment_count>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2022-01-05 06:59:52 -0800</bug_when>
    <thetext>(In reply to Antti Koivisto from comment #2)
&gt; Comment on attachment 448380 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=448380&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/css/CSSComputedStyleDeclaration.cpp:1497
&gt; &gt; +    std::optional&lt;size_t&gt; firstImplicitValueIndex;
&gt; &gt; +    if (property == CSSPropertyAnimationDuration || property == CSSPropertyTransitionDuration)
&gt; &gt; +        firstImplicitValueIndex = animationList.firstImplicitDurationIndex();
&gt; &gt; +    else if (property == CSSPropertyAnimationDelay || property == CSSPropertyTransitionDelay)
&gt; &gt; +        firstImplicitValueIndex = animationList.firstImplicitDelayIndex();
&gt; &gt; +    else if (property == CSSPropertyAnimationTimingFunction || property == CSSPropertyTransitionTimingFunction)
&gt; &gt; +        firstImplicitValueIndex = animationList.firstImplicitTimingFunctionIndex();
&gt; &gt; +    else if (property == CSSPropertyAnimationDirection)
&gt; &gt; +        firstImplicitValueIndex = animationList.firstImplicitDirectionIndex();
&gt; &gt; +    else if (property == CSSPropertyAnimationIterationCount)
&gt; &gt; +        firstImplicitValueIndex = animationList.firstImplicitIterationCountIndex();
&gt; &gt; +    else if (property == CSSPropertyAnimationFillMode)
&gt; &gt; +        firstImplicitValueIndex = animationList.firstImplicitFillModeIndex();
&gt; &gt; +    else if (property == CSSPropertyAnimationPlayState)
&gt; &gt; +        firstImplicitValueIndex = animationList.firstImplicitPlayStateIndex();
&gt; &gt; +    else if (property == CSSPropertyTransitionProperty)
&gt; &gt; +        firstImplicitValueIndex = animationList.firstImplicitPropertyIndex();
&gt; 
&gt; I&apos;d write this as lambda that uses switch and returns std::optional&lt;size_t&gt;
&gt; firstImplicitValueIndex
&gt; 
&gt; Or at least use switch.

Lambda + switch would be much better, agreed. If we go with this patch, I&apos;ll make that change.

&gt; &gt; Source/WebCore/platform/animation/AnimationList.h:84
&gt; &gt; +    std::optional&lt;size_t&gt; m_firstImplicitDelayIndex;
&gt; &gt; +    std::optional&lt;size_t&gt; m_firstImplicitDirectionIndex;
&gt; &gt; +    std::optional&lt;size_t&gt; m_firstImplicitDurationIndex;
&gt; &gt; +    std::optional&lt;size_t&gt; m_firstImplicitFillModeIndex;
&gt; &gt; +    std::optional&lt;size_t&gt; m_firstImplicitIterationCountIndex;
&gt; &gt; +    std::optional&lt;size_t&gt; m_firstImplicitPlayStateIndex;
&gt; &gt; +    std::optional&lt;size_t&gt; m_firstImplicitPropertyIndex;
&gt; &gt; +    std::optional&lt;size_t&gt; m_firstImplicitTimingFunctionIndex;
&gt; 
&gt; This would be pretty wasteful if we cared about AnimationList memory use.
&gt; But maybe we don&apos;t?
&gt; 
&gt; Why can&apos;t this just be a bit in Animation?

I felt like knowing which of the values were filled was more of a concern of AnimationList than Animation items themselves, and also we&apos;d only need to store one but per list rather than on each Animation. I did however make an alternative patch which stores this information on Animation, so you can see if you think this is better or worse.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1828515</commentid>
    <comment_count>5</comment_count>
      <attachid>448383</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2022-01-06 00:43:55 -0800</bug_when>
    <thetext>Comment on attachment 448383
Alternative patch

View in context: https://bugs.webkit.org/attachment.cgi?id=448383&amp;action=review

&gt; Source/WebCore/css/CSSComputedStyleDeclaration.cpp:1448
&gt; +    if (property == CSSPropertyAnimationDuration || property == CSSPropertyTransitionDuration) {

switch?

&gt; Source/WebCore/platform/animation/Animation.cpp:93
&gt;      , m_timingFunctionSet(o.m_timingFunctionSet)
&gt;      , m_compositeOperationSet(o.m_compositeOperationSet)
&gt;      , m_isNone(o.m_isNone)
&gt; +    , m_delayFilled(o.m_delayFilled)
&gt; +    , m_directionFilled(o.m_directionFilled)
&gt; +    , m_durationFilled(o.m_durationFilled)
&gt; +    , m_fillModeFilled(o.m_fillModeFilled)
&gt; +    , m_iterationCountFilled(o.m_iterationCountFilled)
&gt; +    , m_playStateFilled(o.m_playStateFilled)
&gt; +    , m_propertyFilled(o.m_propertyFilled)
&gt; +    , m_timingFunctionFilled(o.m_timingFunctionFilled)

Does this really need an explicit copy constructor? Doesn&apos;t

Animation::Animation(const Animation&amp;) = default;

work?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1828539</commentid>
    <comment_count>6</comment_count>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2022-01-06 02:43:52 -0800</bug_when>
    <thetext>(In reply to Antti Koivisto from comment #5)
&gt; Comment on attachment 448383 [details]
&gt; Alternative patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=448383&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/css/CSSComputedStyleDeclaration.cpp:1448
&gt; &gt; +    if (property == CSSPropertyAnimationDuration || property == CSSPropertyTransitionDuration) {
&gt; 
&gt; switch?

Not a fan of a switch in this case, it ends up being messy because ideally it would return a CSSValue, but we wouldn&apos;t return on in all control paths, which means either fallthroughs or repeated return statements. I&apos;d rather leave it as-is for now.

&gt; &gt; Source/WebCore/platform/animation/Animation.cpp:93
&gt; &gt;      , m_timingFunctionSet(o.m_timingFunctionSet)
&gt; &gt;      , m_compositeOperationSet(o.m_compositeOperationSet)
&gt; &gt;      , m_isNone(o.m_isNone)
&gt; &gt; +    , m_delayFilled(o.m_delayFilled)
&gt; &gt; +    , m_directionFilled(o.m_directionFilled)
&gt; &gt; +    , m_durationFilled(o.m_durationFilled)
&gt; &gt; +    , m_fillModeFilled(o.m_fillModeFilled)
&gt; &gt; +    , m_iterationCountFilled(o.m_iterationCountFilled)
&gt; &gt; +    , m_playStateFilled(o.m_playStateFilled)
&gt; &gt; +    , m_propertyFilled(o.m_propertyFilled)
&gt; &gt; +    , m_timingFunctionFilled(o.m_timingFunctionFilled)
&gt; 
&gt; Does this really need an explicit copy constructor? Doesn&apos;t
&gt; 
&gt; Animation::Animation(const Animation&amp;) = default;
&gt; 
&gt; work?

It doesn&apos;t *just* work, I get this error:

    error: explicitly defaulted copy constructor is implicitly deleted [-Werror,-Wdefaulted-function-deleted]
        Animation(const Animation&amp;) = default;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1828540</commentid>
    <comment_count>7</comment_count>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2022-01-06 02:46:34 -0800</bug_when>
    <thetext>Committed r287678 (245775@trunk): &lt;https://commits.webkit.org/245775@trunk&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1828541</commentid>
    <comment_count>8</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2022-01-06 02:47:23 -0800</bug_when>
    <thetext>&lt;rdar://problem/87189586&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>448380</attachid>
            <date>2022-01-05 05:29:53 -0800</date>
            <delta_ts>2022-01-06 02:45:06 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-234880-20220105142952.patch</filename>
            <type>text/plain</type>
            <size>20065</size>
            <attacher name="Antoine Quint">graouts</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg3NjA3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDQwOGYzOTNlN2ZkMTJk
YzU0N2NjNDk2YTgxZjIxOTUwMjU5NWUzZi4uZWYyNWU4OTM3YzMyNzVjN2QyODI5ZWE1Y2M1NDRj
ZjNjNTY4Y2M1ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM1IEBACisyMDIyLTAxLTA1ICBBbnRv
aW5lIFF1aW50ICA8Z3Jhb3V0c0B3ZWJraXQub3JnPgorCisgICAgICAgIGNvbXB1dGVkIHN0eWxl
IGZvciB0cmFuc2l0aW9uIGxvbmdoYW5kIHByb3BlcnRpZXMgaXMgd3JvbmcKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzNDg4MAorCisgICAgICAgIFdl
IGhhZCB0d28gaXNzdWVzIGluIHRoZSB3YXkgd2UgdHJlYXRlZCBhbmltYXRpb24gbGlzdHMuCisK
KyAgICAgICAgRmlyc3QsIHdlIHdvdWxkIGFsd2F5cyBvdXRwdXQgdGhlIGZpbGxlZC1pbiB2YWx1
ZXMgaW4gdGhlIGNvbXB1dGVkIHN0eWxlLCB3aGljaAorICAgICAgICBtZWFudCB0aGF0IHNldHRp
bmcgYGFuaW1hdGlvbi1uYW1lOiBvbmUsIHR3bzsgYW5pbWF0aW9uLWR1cmF0aW9uOiAxc2Agd291
bGQgeWllbGQKKyAgICAgICAgYDFzLCAxc2AgaW5zdGVhZCBvZiBqdXN0IGAxc2AgZm9yIGFuaW1h
dGlvbi1kdXJhdGlvbi4KKworICAgICAgICBTZWNvbmQsIGluIFJlbmRlclN0eWxlOjphZGp1c3RU
cmFuc2l0aW9ucygpLCB3ZSB3b3VsZCBtaXN0YWtlbmx5IHRyeSB0byByZW1vdmUgZW50cmllcwor
ICAgICAgICBpZiB3ZSBmb3VuZCBhIHRyYW5zaXRpb24tcHJvcGVydHkgcmVwZWF0ZWQuIEhvd2V2
ZXIsIHRoaXMgaXMgdmFsaWQuCisKKyAgICAgICAgKiBjc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xh
cmF0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Omhhc0ltcGxpY2l0VmFsdWVGb3JQcm9wZXJ0
eUluQW5pbWF0aW9uTGlzdEF0SW5kZXgpOgorICAgICAgICAoV2ViQ29yZTo6dmFsdWVMaXN0Rm9y
QW5pbWF0aW9uT3JUcmFuc2l0aW9uUHJvcGVydHkpOgorICAgICAgICAqIHBsYXRmb3JtL2FuaW1h
dGlvbi9BbmltYXRpb25MaXN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFuaW1hdGlvbkxpc3Q6
OkFuaW1hdGlvbkxpc3QpOgorICAgICAgICAoV2ViQ29yZTo6QW5pbWF0aW9uTGlzdDo6ZmlsbFVu
c2V0UHJvcGVydGllcyk6CisgICAgICAgICogcGxhdGZvcm0vYW5pbWF0aW9uL0FuaW1hdGlvbkxp
c3QuaDoKKyAgICAgICAgKFdlYkNvcmU6OkFuaW1hdGlvbkxpc3Q6OmZpcnN0SW1wbGljaXREZWxh
eUluZGV4IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkFuaW1hdGlvbkxpc3Q6OmZpcnN0SW1w
bGljaXREaXJlY3Rpb25JbmRleCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpBbmltYXRpb25M
aXN0OjpmaXJzdEltcGxpY2l0RHVyYXRpb25JbmRleCBjb25zdCk6CisgICAgICAgIChXZWJDb3Jl
OjpBbmltYXRpb25MaXN0OjpmaXJzdEltcGxpY2l0RmlsbE1vZGVJbmRleCBjb25zdCk6CisgICAg
ICAgIChXZWJDb3JlOjpBbmltYXRpb25MaXN0OjpmaXJzdEltcGxpY2l0SXRlcmF0aW9uQ291bnRJ
bmRleCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpBbmltYXRpb25MaXN0OjpmaXJzdEltcGxp
Y2l0UGxheVN0YXRlSW5kZXggY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6QW5pbWF0aW9uTGlz
dDo6Zmlyc3RJbXBsaWNpdFByb3BlcnR5SW5kZXggY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6
QW5pbWF0aW9uTGlzdDo6Zmlyc3RJbXBsaWNpdFRpbWluZ0Z1bmN0aW9uSW5kZXggY29uc3QpOgor
ICAgICAgICAqIHJlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpSZW5kZXJTdHlsZTo6YWRqdXN0VHJhbnNpdGlvbnMpOgorCiAyMDIyLTAxLTA1ICBNYXJ0
aW4gUm9iaW5zb24gIDxtcm9iaW5zb25Ad2Via2l0Lm9yZz4KIAogICAgICAgICBDU1MgYHRyYW5z
Zm9ybWAgcHJvcGVydHkgIHNob3VsZCB0YWtlIGludG8gYWNjb3VudCB0cmFuc2Zvcm0gcmVmZXJl
bmNlIGJveApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0NvbXB1dGVkU3R5bGVE
ZWNsYXJhdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xh
cmF0aW9uLmNwcAppbmRleCAyMmZmNWYzMTc0M2U0ZTNiY2RjNjY1ODk3ZmU4NDAxZjM2NTllMjk0
Li5jN2NmNTNhZDc0YWE0MzlhZWNlNzU4OTdjZTQ2YjE2ZjUyZGNlZmE3IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcApAQCAtMTQ3
MywxMiArMTQ3Myw0MCBAQCB2b2lkIENvbXB1dGVkU3R5bGVFeHRyYWN0b3I6OmFkZFZhbHVlRm9y
QW5pbWF0aW9uUHJvcGVydHlUb0xpc3QoQ1NTVmFsdWVMaXN0JiBsaQogICAgICAgICBBU1NFUlRf
Tk9UX1JFQUNIRUQoKTsKIH0KIAorc3RhdGljIGJvb2wgaGFzSW1wbGljaXRWYWx1ZUZvclByb3Bl
cnR5SW5BbmltYXRpb25MaXN0QXRJbmRleChDU1NQcm9wZXJ0eUlEIHByb3BlcnR5LCBjb25zdCBB
bmltYXRpb25MaXN0JiBhbmltYXRpb25MaXN0LCBzaXplX3QgaSkKK3sKKyAgICBpZiAoIWkpCisg
ICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIHN0ZDo6b3B0aW9uYWw8c2l6ZV90PiBmaXJzdElt
cGxpY2l0VmFsdWVJbmRleDsKKyAgICBpZiAocHJvcGVydHkgPT0gQ1NTUHJvcGVydHlBbmltYXRp
b25EdXJhdGlvbiB8fCBwcm9wZXJ0eSA9PSBDU1NQcm9wZXJ0eVRyYW5zaXRpb25EdXJhdGlvbikK
KyAgICAgICAgZmlyc3RJbXBsaWNpdFZhbHVlSW5kZXggPSBhbmltYXRpb25MaXN0LmZpcnN0SW1w
bGljaXREdXJhdGlvbkluZGV4KCk7CisgICAgZWxzZSBpZiAocHJvcGVydHkgPT0gQ1NTUHJvcGVy
dHlBbmltYXRpb25EZWxheSB8fCBwcm9wZXJ0eSA9PSBDU1NQcm9wZXJ0eVRyYW5zaXRpb25EZWxh
eSkKKyAgICAgICAgZmlyc3RJbXBsaWNpdFZhbHVlSW5kZXggPSBhbmltYXRpb25MaXN0LmZpcnN0
SW1wbGljaXREZWxheUluZGV4KCk7CisgICAgZWxzZSBpZiAocHJvcGVydHkgPT0gQ1NTUHJvcGVy
dHlBbmltYXRpb25UaW1pbmdGdW5jdGlvbiB8fCBwcm9wZXJ0eSA9PSBDU1NQcm9wZXJ0eVRyYW5z
aXRpb25UaW1pbmdGdW5jdGlvbikKKyAgICAgICAgZmlyc3RJbXBsaWNpdFZhbHVlSW5kZXggPSBh
bmltYXRpb25MaXN0LmZpcnN0SW1wbGljaXRUaW1pbmdGdW5jdGlvbkluZGV4KCk7CisgICAgZWxz
ZSBpZiAocHJvcGVydHkgPT0gQ1NTUHJvcGVydHlBbmltYXRpb25EaXJlY3Rpb24pCisgICAgICAg
IGZpcnN0SW1wbGljaXRWYWx1ZUluZGV4ID0gYW5pbWF0aW9uTGlzdC5maXJzdEltcGxpY2l0RGly
ZWN0aW9uSW5kZXgoKTsKKyAgICBlbHNlIGlmIChwcm9wZXJ0eSA9PSBDU1NQcm9wZXJ0eUFuaW1h
dGlvbkl0ZXJhdGlvbkNvdW50KQorICAgICAgICBmaXJzdEltcGxpY2l0VmFsdWVJbmRleCA9IGFu
aW1hdGlvbkxpc3QuZmlyc3RJbXBsaWNpdEl0ZXJhdGlvbkNvdW50SW5kZXgoKTsKKyAgICBlbHNl
IGlmIChwcm9wZXJ0eSA9PSBDU1NQcm9wZXJ0eUFuaW1hdGlvbkZpbGxNb2RlKQorICAgICAgICBm
aXJzdEltcGxpY2l0VmFsdWVJbmRleCA9IGFuaW1hdGlvbkxpc3QuZmlyc3RJbXBsaWNpdEZpbGxN
b2RlSW5kZXgoKTsKKyAgICBlbHNlIGlmIChwcm9wZXJ0eSA9PSBDU1NQcm9wZXJ0eUFuaW1hdGlv
blBsYXlTdGF0ZSkKKyAgICAgICAgZmlyc3RJbXBsaWNpdFZhbHVlSW5kZXggPSBhbmltYXRpb25M
aXN0LmZpcnN0SW1wbGljaXRQbGF5U3RhdGVJbmRleCgpOworICAgIGVsc2UgaWYgKHByb3BlcnR5
ID09IENTU1Byb3BlcnR5VHJhbnNpdGlvblByb3BlcnR5KQorICAgICAgICBmaXJzdEltcGxpY2l0
VmFsdWVJbmRleCA9IGFuaW1hdGlvbkxpc3QuZmlyc3RJbXBsaWNpdFByb3BlcnR5SW5kZXgoKTsK
KworICAgIHJldHVybiBmaXJzdEltcGxpY2l0VmFsdWVJbmRleCAmJiBpID49ICpmaXJzdEltcGxp
Y2l0VmFsdWVJbmRleDsKK30KKwogc3RhdGljIFJlZjxDU1NWYWx1ZUxpc3Q+IHZhbHVlTGlzdEZv
ckFuaW1hdGlvbk9yVHJhbnNpdGlvblByb3BlcnR5KENTU1Byb3BlcnR5SUQgcHJvcGVydHksIGNv
bnN0IEFuaW1hdGlvbkxpc3QqIGFuaW1hdGlvbkxpc3QpCiB7CiAgICAgYXV0byBsaXN0ID0gQ1NT
VmFsdWVMaXN0OjpjcmVhdGVDb21tYVNlcGFyYXRlZCgpOwogICAgIGlmIChhbmltYXRpb25MaXN0
KSB7Ci0gICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgYW5pbWF0aW9uTGlzdC0+c2l6ZSgp
OyArK2kpCi0gICAgICAgICAgICBDb21wdXRlZFN0eWxlRXh0cmFjdG9yOjphZGRWYWx1ZUZvckFu
aW1hdGlvblByb3BlcnR5VG9MaXN0KGxpc3QuZ2V0KCksIHByb3BlcnR5LCAmYW5pbWF0aW9uTGlz
dC0+YW5pbWF0aW9uKGkpKTsKKyAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBhbmltYXRp
b25MaXN0LT5zaXplKCk7ICsraSkgeworICAgICAgICAgICAgaWYgKCFoYXNJbXBsaWNpdFZhbHVl
Rm9yUHJvcGVydHlJbkFuaW1hdGlvbkxpc3RBdEluZGV4KHByb3BlcnR5LCAqYW5pbWF0aW9uTGlz
dCwgaSkpCisgICAgICAgICAgICAgICAgQ29tcHV0ZWRTdHlsZUV4dHJhY3Rvcjo6YWRkVmFsdWVG
b3JBbmltYXRpb25Qcm9wZXJ0eVRvTGlzdChsaXN0LmdldCgpLCBwcm9wZXJ0eSwgJmFuaW1hdGlv
bkxpc3QtPmFuaW1hdGlvbihpKSk7CisgICAgICAgIH0KICAgICB9IGVsc2UKICAgICAgICAgQ29t
cHV0ZWRTdHlsZUV4dHJhY3Rvcjo6YWRkVmFsdWVGb3JBbmltYXRpb25Qcm9wZXJ0eVRvTGlzdChs
aXN0LmdldCgpLCBwcm9wZXJ0eSwgbnVsbHB0cik7CiAgICAgcmV0dXJuIGxpc3Q7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hbmltYXRpb24vQW5pbWF0aW9uTGlzdC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hbmltYXRpb24vQW5pbWF0aW9uTGlzdC5jcHAKaW5k
ZXggMzUxNjBmOTNlYzM2ZDY2YzMwMjQ0ZmY3YjFhNDU1NWZjYmNkNTI3ZS4uNDA0NGI2Njc0M2I0
MDBjYTQ4MTc0OTY4YTNjNWJlM2Q0ZmI3NWZlYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vYW5pbWF0aW9uL0FuaW1hdGlvbkxpc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2FuaW1hdGlvbi9BbmltYXRpb25MaXN0LmNwcApAQCAtMjYsOSArMjYsMTEgQEAK
IAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi0jZGVmaW5lIEZJTExfVU5TRVRfUFJPUEVSVFkodGVz
dCwgcHJvcEdldCwgcHJvcFNldCkgXAorI2RlZmluZSBGSUxMX1VOU0VUX1BST1BFUlRZKHRlc3Qs
IHByb3BHZXQsIHByb3BTZXQsIGZpcnN0SW1wbGljaXRJbmRleCkgXAogZm9yIChpID0gMDsgaSA8
IHNpemUoKSAmJiBhbmltYXRpb24oaSkudGVzdCgpOyArK2kpIHsgfSBcCiBpZiAoaSkgeyBcCisg
ICAgaWYgKCFmaXJzdEltcGxpY2l0SW5kZXggJiYgaSA8IHNpemUoKSkgXAorICAgICAgICBmaXJz
dEltcGxpY2l0SW5kZXggPSBpOyBcCiAgICAgZm9yIChzaXplX3QgaiA9IDA7IGkgPCBzaXplKCk7
ICsraSwgKytqKSBcCiAgICAgICAgIGFuaW1hdGlvbihpKS5wcm9wU2V0KGFuaW1hdGlvbihqKS5w
cm9wR2V0KCkpOyBcCiB9CkBAIC00NSwxOSArNDcsMjggQEAgQW5pbWF0aW9uTGlzdDo6QW5pbWF0
aW9uTGlzdChjb25zdCBBbmltYXRpb25MaXN0JiBvdGhlciwgQ29weUJlaGF2aW9yIGNvcHlCZWhh
dmkKICAgICAgICAgZWxzZQogICAgICAgICAgICAgbV9hbmltYXRpb25zLnVuY2hlY2tlZEFwcGVu
ZChBbmltYXRpb246OmNyZWF0ZShhbmltYXRpb24uZ2V0KCkpKTsKICAgICB9CisKKyAgICBtX2Zp
cnN0SW1wbGljaXREZWxheUluZGV4ID0gb3RoZXIubV9maXJzdEltcGxpY2l0RGVsYXlJbmRleDsK
KyAgICBtX2ZpcnN0SW1wbGljaXREaXJlY3Rpb25JbmRleCA9IG90aGVyLm1fZmlyc3RJbXBsaWNp
dERpcmVjdGlvbkluZGV4OworICAgIG1fZmlyc3RJbXBsaWNpdER1cmF0aW9uSW5kZXggPSBvdGhl
ci5tX2ZpcnN0SW1wbGljaXREdXJhdGlvbkluZGV4OworICAgIG1fZmlyc3RJbXBsaWNpdEZpbGxN
b2RlSW5kZXggPSBvdGhlci5tX2ZpcnN0SW1wbGljaXRGaWxsTW9kZUluZGV4OworICAgIG1fZmly
c3RJbXBsaWNpdEl0ZXJhdGlvbkNvdW50SW5kZXggPSBvdGhlci5tX2ZpcnN0SW1wbGljaXRJdGVy
YXRpb25Db3VudEluZGV4OworICAgIG1fZmlyc3RJbXBsaWNpdFBsYXlTdGF0ZUluZGV4ID0gb3Ro
ZXIubV9maXJzdEltcGxpY2l0UGxheVN0YXRlSW5kZXg7CisgICAgbV9maXJzdEltcGxpY2l0UHJv
cGVydHlJbmRleCA9IG90aGVyLm1fZmlyc3RJbXBsaWNpdFByb3BlcnR5SW5kZXg7CisgICAgbV9m
aXJzdEltcGxpY2l0VGltaW5nRnVuY3Rpb25JbmRleCA9IG90aGVyLm1fZmlyc3RJbXBsaWNpdFRp
bWluZ0Z1bmN0aW9uSW5kZXg7CiB9CiAKIHZvaWQgQW5pbWF0aW9uTGlzdDo6ZmlsbFVuc2V0UHJv
cGVydGllcygpCiB7CiAgICAgc2l6ZV90IGk7Ci0gICAgRklMTF9VTlNFVF9QUk9QRVJUWShpc0Rl
bGF5U2V0LCBkZWxheSwgc2V0RGVsYXkpOwotICAgIEZJTExfVU5TRVRfUFJPUEVSVFkoaXNEaXJl
Y3Rpb25TZXQsIGRpcmVjdGlvbiwgc2V0RGlyZWN0aW9uKTsKLSAgICBGSUxMX1VOU0VUX1BST1BF
UlRZKGlzRHVyYXRpb25TZXQsIGR1cmF0aW9uLCBzZXREdXJhdGlvbik7Ci0gICAgRklMTF9VTlNF
VF9QUk9QRVJUWShpc0ZpbGxNb2RlU2V0LCBmaWxsTW9kZSwgc2V0RmlsbE1vZGUpOwotICAgIEZJ
TExfVU5TRVRfUFJPUEVSVFkoaXNJdGVyYXRpb25Db3VudFNldCwgaXRlcmF0aW9uQ291bnQsIHNl
dEl0ZXJhdGlvbkNvdW50KTsKLSAgICBGSUxMX1VOU0VUX1BST1BFUlRZKGlzUGxheVN0YXRlU2V0
LCBwbGF5U3RhdGUsIHNldFBsYXlTdGF0ZSk7Ci0gICAgRklMTF9VTlNFVF9QUk9QRVJUWShpc1Rp
bWluZ0Z1bmN0aW9uU2V0LCB0aW1pbmdGdW5jdGlvbiwgc2V0VGltaW5nRnVuY3Rpb24pOwotICAg
IEZJTExfVU5TRVRfUFJPUEVSVFkoaXNQcm9wZXJ0eVNldCwgcHJvcGVydHksIHNldFByb3BlcnR5
KTsKKyAgICBGSUxMX1VOU0VUX1BST1BFUlRZKGlzRGVsYXlTZXQsIGRlbGF5LCBzZXREZWxheSwg
bV9maXJzdEltcGxpY2l0RGVsYXlJbmRleCk7CisgICAgRklMTF9VTlNFVF9QUk9QRVJUWShpc0Rp
cmVjdGlvblNldCwgZGlyZWN0aW9uLCBzZXREaXJlY3Rpb24sIG1fZmlyc3RJbXBsaWNpdERpcmVj
dGlvbkluZGV4KTsKKyAgICBGSUxMX1VOU0VUX1BST1BFUlRZKGlzRHVyYXRpb25TZXQsIGR1cmF0
aW9uLCBzZXREdXJhdGlvbiwgbV9maXJzdEltcGxpY2l0RHVyYXRpb25JbmRleCk7CisgICAgRklM
TF9VTlNFVF9QUk9QRVJUWShpc0ZpbGxNb2RlU2V0LCBmaWxsTW9kZSwgc2V0RmlsbE1vZGUsIG1f
Zmlyc3RJbXBsaWNpdEZpbGxNb2RlSW5kZXgpOworICAgIEZJTExfVU5TRVRfUFJPUEVSVFkoaXNJ
dGVyYXRpb25Db3VudFNldCwgaXRlcmF0aW9uQ291bnQsIHNldEl0ZXJhdGlvbkNvdW50LCBtX2Zp
cnN0SW1wbGljaXRJdGVyYXRpb25Db3VudEluZGV4KTsKKyAgICBGSUxMX1VOU0VUX1BST1BFUlRZ
KGlzUGxheVN0YXRlU2V0LCBwbGF5U3RhdGUsIHNldFBsYXlTdGF0ZSwgbV9maXJzdEltcGxpY2l0
UGxheVN0YXRlSW5kZXgpOworICAgIEZJTExfVU5TRVRfUFJPUEVSVFkoaXNUaW1pbmdGdW5jdGlv
blNldCwgdGltaW5nRnVuY3Rpb24sIHNldFRpbWluZ0Z1bmN0aW9uLCBtX2ZpcnN0SW1wbGljaXRU
aW1pbmdGdW5jdGlvbkluZGV4KTsKKyAgICBGSUxMX1VOU0VUX1BST1BFUlRZKGlzUHJvcGVydHlT
ZXQsIHByb3BlcnR5LCBzZXRQcm9wZXJ0eSwgbV9maXJzdEltcGxpY2l0UHJvcGVydHlJbmRleCk7
CiB9CiAKIGJvb2wgQW5pbWF0aW9uTGlzdDo6b3BlcmF0b3I9PShjb25zdCBBbmltYXRpb25MaXN0
JiBvdGhlcikgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2FuaW1h
dGlvbi9BbmltYXRpb25MaXN0LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hbmltYXRpb24v
QW5pbWF0aW9uTGlzdC5oCmluZGV4IGZlYzljNDUzZjVhY2QyY2U2YzU2ZjZlNmVmMWIyZjhhMDY4
YTRhN2UuLmM3NzdjMGQ4NjkyOGJkNmFhZWZhZTY0ZjljMmM1MjA2YmNlNGY2NzQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2FuaW1hdGlvbi9BbmltYXRpb25MaXN0LmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYW5pbWF0aW9uL0FuaW1hdGlvbkxpc3QuaApAQCAt
NTQsNyArNTQsMTYgQEAgcHVibGljOgogCiAgICAgQW5pbWF0aW9uJiBhbmltYXRpb24oc2l6ZV90
IGkpIHsgcmV0dXJuIG1fYW5pbWF0aW9uc1tpXS5nZXQoKTsgfQogICAgIGNvbnN0IEFuaW1hdGlv
biYgYW5pbWF0aW9uKHNpemVfdCBpKSBjb25zdCB7IHJldHVybiBtX2FuaW1hdGlvbnNbaV0uZ2V0
KCk7IH0KLSAgICAKKworICAgIHN0ZDo6b3B0aW9uYWw8c2l6ZV90PiBmaXJzdEltcGxpY2l0RGVs
YXlJbmRleCgpIGNvbnN0IHsgcmV0dXJuIG1fZmlyc3RJbXBsaWNpdERlbGF5SW5kZXg7IH0KKyAg
ICBzdGQ6Om9wdGlvbmFsPHNpemVfdD4gZmlyc3RJbXBsaWNpdERpcmVjdGlvbkluZGV4KCkgY29u
c3QgeyByZXR1cm4gbV9maXJzdEltcGxpY2l0RGlyZWN0aW9uSW5kZXg7IH0KKyAgICBzdGQ6Om9w
dGlvbmFsPHNpemVfdD4gZmlyc3RJbXBsaWNpdER1cmF0aW9uSW5kZXgoKSBjb25zdCB7IHJldHVy
biBtX2ZpcnN0SW1wbGljaXREdXJhdGlvbkluZGV4OyB9CisgICAgc3RkOjpvcHRpb25hbDxzaXpl
X3Q+IGZpcnN0SW1wbGljaXRGaWxsTW9kZUluZGV4KCkgY29uc3QgeyByZXR1cm4gbV9maXJzdElt
cGxpY2l0RmlsbE1vZGVJbmRleDsgfQorICAgIHN0ZDo6b3B0aW9uYWw8c2l6ZV90PiBmaXJzdElt
cGxpY2l0SXRlcmF0aW9uQ291bnRJbmRleCgpIGNvbnN0IHsgcmV0dXJuIG1fZmlyc3RJbXBsaWNp
dEl0ZXJhdGlvbkNvdW50SW5kZXg7IH0KKyAgICBzdGQ6Om9wdGlvbmFsPHNpemVfdD4gZmlyc3RJ
bXBsaWNpdFBsYXlTdGF0ZUluZGV4KCkgY29uc3QgeyByZXR1cm4gbV9maXJzdEltcGxpY2l0UGxh
eVN0YXRlSW5kZXg7IH0KKyAgICBzdGQ6Om9wdGlvbmFsPHNpemVfdD4gZmlyc3RJbXBsaWNpdFBy
b3BlcnR5SW5kZXgoKSBjb25zdCB7IHJldHVybiBtX2ZpcnN0SW1wbGljaXRQcm9wZXJ0eUluZGV4
OyB9CisgICAgc3RkOjpvcHRpb25hbDxzaXplX3Q+IGZpcnN0SW1wbGljaXRUaW1pbmdGdW5jdGlv
bkluZGV4KCkgY29uc3QgeyByZXR1cm4gbV9maXJzdEltcGxpY2l0VGltaW5nRnVuY3Rpb25JbmRl
eDsgfQorCiBwcml2YXRlOgogICAgIEFuaW1hdGlvbkxpc3QoKTsKIApAQCAtNjQsNyArNzMsMTYg
QEAgcHJpdmF0ZToKICAgICBBbmltYXRpb25MaXN0JiBvcGVyYXRvcj0oY29uc3QgQW5pbWF0aW9u
TGlzdCYpOwogCiAgICAgVmVjdG9yPFJlZjxBbmltYXRpb24+LCAwLCBDcmFzaE9uT3ZlcmZsb3cs
IDA+IG1fYW5pbWF0aW9uczsKLX07ICAgIAorCisgICAgc3RkOjpvcHRpb25hbDxzaXplX3Q+IG1f
Zmlyc3RJbXBsaWNpdERlbGF5SW5kZXg7CisgICAgc3RkOjpvcHRpb25hbDxzaXplX3Q+IG1fZmly
c3RJbXBsaWNpdERpcmVjdGlvbkluZGV4OworICAgIHN0ZDo6b3B0aW9uYWw8c2l6ZV90PiBtX2Zp
cnN0SW1wbGljaXREdXJhdGlvbkluZGV4OworICAgIHN0ZDo6b3B0aW9uYWw8c2l6ZV90PiBtX2Zp
cnN0SW1wbGljaXRGaWxsTW9kZUluZGV4OworICAgIHN0ZDo6b3B0aW9uYWw8c2l6ZV90PiBtX2Zp
cnN0SW1wbGljaXRJdGVyYXRpb25Db3VudEluZGV4OworICAgIHN0ZDo6b3B0aW9uYWw8c2l6ZV90
PiBtX2ZpcnN0SW1wbGljaXRQbGF5U3RhdGVJbmRleDsKKyAgICBzdGQ6Om9wdGlvbmFsPHNpemVf
dD4gbV9maXJzdEltcGxpY2l0UHJvcGVydHlJbmRleDsKKyAgICBzdGQ6Om9wdGlvbmFsPHNpemVf
dD4gbV9maXJzdEltcGxpY2l0VGltaW5nRnVuY3Rpb25JbmRleDsKK307CiAKIFdURjo6VGV4dFN0
cmVhbSYgb3BlcmF0b3I8PChXVEY6OlRleHRTdHJlYW0mLCBjb25zdCBBbmltYXRpb25MaXN0Jik7
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHls
ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuY3BwCmlu
ZGV4IGUyNGU2ODljMzQxYjQ4NGJkNTg5NTQ3Mjc0NzNjMjJiNjM4NDQwMTcuLjlhN2Y2N2VlODdh
MDZhMWNjMDM5NDU4NTFjMDIzMmM1OTg3NWMxOWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmNwcApAQCAtMTc3OCwxOCArMTc3OCw2IEBAIHZvaWQg
UmVuZGVyU3R5bGU6OmFkanVzdFRyYW5zaXRpb25zKCkKIAogICAgIC8vIFJlcGVhdCBwYXR0ZXJu
cyBpbnRvIGxheWVycyB0aGF0IGRvbid0IGhhdmUgc29tZSBwcm9wZXJ0aWVzIHNldC4KICAgICB0
cmFuc2l0aW9uTGlzdC0+ZmlsbFVuc2V0UHJvcGVydGllcygpOwotCi0gICAgLy8gTWFrZSBzdXJl
IHRoZXJlIGFyZSBubyBkdXBsaWNhdGUgcHJvcGVydGllcy4KLSAgICAvLyBUaGlzIGlzIGFuIE8o
bl4yKSBhbGdvcml0aG0gYnV0IHRoZSBsaXN0cyB0ZW5kIHRvIGJlIHNob3J0LCBzbyBpdCBpcyBw
cm9iYWJseSBPSy4KLSAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHRyYW5zaXRpb25MaXN0LT5z
aXplKCk7ICsraSkgewotICAgICAgICBmb3IgKHNpemVfdCBqID0gaSArIDE7IGogPCB0cmFuc2l0
aW9uTGlzdC0+c2l6ZSgpOyArK2opIHsKLSAgICAgICAgICAgIGlmICh0cmFuc2l0aW9uTGlzdC0+
YW5pbWF0aW9uKGkpLnByb3BlcnR5KCkuaWQgPT0gdHJhbnNpdGlvbkxpc3QtPmFuaW1hdGlvbihq
KS5wcm9wZXJ0eSgpLmlkKSB7Ci0gICAgICAgICAgICAgICAgLy8gdG9zcyBpCi0gICAgICAgICAg
ICAgICAgdHJhbnNpdGlvbkxpc3QtPnJlbW92ZShpKTsKLSAgICAgICAgICAgICAgICBqID0gaTsK
LSAgICAgICAgICAgIH0KLSAgICAgICAgfQotICAgIH0KIH0KIAogQW5pbWF0aW9uTGlzdCYgUmVu
ZGVyU3R5bGU6OmVuc3VyZUFuaW1hdGlvbnMoKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGQ3ODY3OTFhMWFiODIyNjFkMzg3
OWE2NDQ5NDY0NmU0ZWMxMWNmMzEuLmRhOGQ5NzYzYWNhYWFjNWQxYzcxOTJjMWZjYzRhNmJmODIy
NWMwMTAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAyMi0wMS0wNSAgQW50b2luZSBRdWludCAg
PGdyYW91dHNAd2Via2l0Lm9yZz4KKworICAgICAgICBjb21wdXRlZCBzdHlsZSBmb3IgdHJhbnNp
dGlvbiBsb25naGFuZCBwcm9wZXJ0aWVzIGlzIHdyb25nCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzQ4ODAKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIHRlc3Qgd2FzIGluY29ycmVjdCBzaW5jZSBp
dCBhc3N1bWVkIHRoYXQgZmlsbGVkLWluIHZhbHVlcyBpbiBhbmltYXRpb24gbGlzdHMKKyAgICAg
ICAgd291bGQgYmUgcGFydCBvZiB0aGUgY29tcHV0ZWQgc3R5bGUuCisKKyAgICAgICAgKiBhbmlt
YXRpb25zL2ZpbGwtdW5zZXQtcHJvcGVydGllcy5odG1sOgorCiAyMDIyLTAxLTA1ICBZb3Vlbm4g
RmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBXZWJQYWdlUHJveHk6OnJlcXVl
c3RVc2VyTWVkaWFQZXJtaXNzaW9uRm9yU3BlZWNoUmVjb2duaXRpb24gc2hvdWxkIHJldHVybiBl
YXJseSBpbiBjYXNlIG9mIG5vIGNhcHR1cmUgZGV2aWNlcwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFu
Z2VMb2cKaW5kZXggYjMyOWZmNTY2NDAxNGZhN2U1NDZiZTgwMmUzMDI4MTBmMzIxNjlkOS4uNTA2
NTVlYzAwZmJjYjdhMjk2MjdhZTMwZjYxZjU5YWE0OGRiZjdmMyAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2MvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTkgQEAKKzIwMjItMDEtMDUgIEFudG9pbmUgUXVpbnQg
IDxncmFvdXRzQHdlYmtpdC5vcmc+CisKKyAgICAgICAgY29tcHV0ZWQgc3R5bGUgZm9yIHRyYW5z
aXRpb24gbG9uZ2hhbmQgcHJvcGVydGllcyBpcyB3cm9uZworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM0ODgwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTWFyayBXUFQgcHJvZ3Jlc3Npb25zLgorCisgICAg
ICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtdHJhbnNpdGlvbnMvcGFyc2luZy90cmFu
c2l0aW9uLWRlbGF5LWNvbXB1dGVkLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZv
cm0tdGVzdHMvY3NzL2Nzcy10cmFuc2l0aW9ucy9wYXJzaW5nL3RyYW5zaXRpb24tZHVyYXRpb24t
Y29tcHV0ZWQtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9jc3Mv
Y3NzLXRyYW5zaXRpb25zL3BhcnNpbmcvdHJhbnNpdGlvbi1wcm9wZXJ0eS1jb21wdXRlZC1leHBl
Y3RlZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtdHJhbnNpdGlv
bnMvcGFyc2luZy90cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbi1jb21wdXRlZC1leHBlY3RlZC50
eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtdHJhbnNpdGlvbnMvdHJh
bnNpdGlvbi1kZWxheS0wMDEtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10
ZXN0cy9jc3MvY3NzLXRyYW5zaXRpb25zL3RyYW5zaXRpb24tZHVyYXRpb24tMDAxLWV4cGVjdGVk
LnR4dDoKKwogMjAyMi0wMS0wNSAgTWFydGluIFJvYmluc29uICA8bXJvYmluc29uQHdlYmtpdC5v
cmc+CiAKICAgICAgICAgQ1NTIGB0cmFuc2Zvcm1gIHByb3BlcnR5ICBzaG91bGQgdGFrZSBpbnRv
IGFjY291bnQgdHJhbnNmb3JtIHJlZmVyZW5jZSBib3gKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2FuaW1hdGlvbnMvZmlsbC11bnNldC1wcm9wZXJ0aWVzLmh0bWwgYi9MYXlvdXRUZXN0cy9hbmlt
YXRpb25zL2ZpbGwtdW5zZXQtcHJvcGVydGllcy5odG1sCmluZGV4IGU1YTI5MGQwZTYwMmZhZGY4
YzVhMDdlM2JmZTI5ZDI2YWMwMTZmMDcuLmMxYzBkNDUwNDJmNzczMGU3ZThiMWQ0MWU3Y2E0NGM0
ZjU4ZTY0YzkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2FuaW1hdGlvbnMvZmlsbC11bnNldC1w
cm9wZXJ0aWVzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvYW5pbWF0aW9ucy9maWxsLXVuc2V0LXBy
b3BlcnRpZXMuaHRtbApAQCAtMjYsMTQgKzI2LDE0IEBACiAgICAgICAgIHRlc3RSdW5uZXIuZHVt
cEFzVGV4dCgpOwogICAKICAgICBjb25zdCBrRXhwZWN0ZWRSZXN1bHRzID0gWwotICAgICAgeyAn
cHJvcGVydHknOiAnd2Via2l0VHJhbnNpdGlvbkR1cmF0aW9uJywgJ3ZhbHVlJzogJzJzLCAycywg
MXMsIDFzLCAycycgfSwKLSAgICAgIHsgJ3Byb3BlcnR5JzogJ3dlYmtpdFRyYW5zaXRpb25Qcm9w
ZXJ0eScsICd2YWx1ZSc6ICdsZWZ0LCB0b3AsIHdpZHRoLCBoZWlnaHQsIG9wYWNpdHknIH0sCi0g
ICAgICB7ICdwcm9wZXJ0eSc6ICd3ZWJraXRUcmFuc2l0aW9uRGVsYXknLCAgICAndmFsdWUnOiAn
NHMsIDNzLCA0cywgM3MsIDRzJyB9LAotICAgICAgeyAncHJvcGVydHknOiAnd2Via2l0VHJhbnNp
dGlvblRpbWluZ0Z1bmN0aW9uJywgJ3ZhbHVlJzogJ2xpbmVhciwgbGluZWFyLCBsaW5lYXIsIGxp
bmVhciwgbGluZWFyJyB9LAorICAgICAgeyAncHJvcGVydHknOiAnd2Via2l0VHJhbnNpdGlvbkR1
cmF0aW9uJywgJ3ZhbHVlJzogJzFzLCAycycgfSwKKyAgICAgIHsgJ3Byb3BlcnR5JzogJ3dlYmtp
dFRyYW5zaXRpb25Qcm9wZXJ0eScsICd2YWx1ZSc6ICdvcGFjaXR5LCBsZWZ0LCBvcGFjaXR5LCB0
b3AsIHdpZHRoLCBvcGFjaXR5LCBoZWlnaHQsIG9wYWNpdHknIH0sCisgICAgICB7ICdwcm9wZXJ0
eSc6ICd3ZWJraXRUcmFuc2l0aW9uRGVsYXknLCAgICAndmFsdWUnOiAnM3MsIDRzLCA1cycgfSwK
KyAgICAgIHsgJ3Byb3BlcnR5JzogJ3dlYmtpdFRyYW5zaXRpb25UaW1pbmdGdW5jdGlvbicsICd2
YWx1ZSc6ICdsaW5lYXInIH0sCiAgICAgICB7ICdwcm9wZXJ0eSc6ICd3ZWJraXRBbmltYXRpb25O
YW1lJywgICAgICAndmFsdWUnOiAnYSwgYiwgYywgZCwgZScgfSwKLSAgICAgIHsgJ3Byb3BlcnR5
JzogJ3dlYmtpdEFuaW1hdGlvbkR1cmF0aW9uJywgICd2YWx1ZSc6ICcxMHMsIDIwcywgMTBzLCAy
MHMsIDEwcycgfSwKLSAgICAgIHsgJ3Byb3BlcnR5JzogJ3dlYmtpdEFuaW1hdGlvbkRlbGF5Jywg
ICAgICd2YWx1ZSc6ICcxcywgMXMsIDFzLCAxcywgMXMnIH0sCi0gICAgICB7ICdwcm9wZXJ0eSc6
ICd3ZWJraXRBbmltYXRpb25GaWxsTW9kZScsICAndmFsdWUnOiAnZm9yd2FyZHMsIGJhY2t3YXJk
cywgZm9yd2FyZHMsIGJhY2t3YXJkcywgZm9yd2FyZHMnIH0sCisgICAgICB7ICdwcm9wZXJ0eSc6
ICd3ZWJraXRBbmltYXRpb25EdXJhdGlvbicsICAndmFsdWUnOiAnMTBzLCAyMHMnIH0sCisgICAg
ICB7ICdwcm9wZXJ0eSc6ICd3ZWJraXRBbmltYXRpb25EZWxheScsICAgICAndmFsdWUnOiAnMXMn
IH0sCisgICAgICB7ICdwcm9wZXJ0eSc6ICd3ZWJraXRBbmltYXRpb25GaWxsTW9kZScsICAndmFs
dWUnOiAnZm9yd2FyZHMsIGJhY2t3YXJkcycgfSwKICAgICBdOwogICAgIAogICAgIGZ1bmN0aW9u
IHN0YXJ0KCkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvY3NzL2Nzcy10cmFuc2l0aW9ucy9wYXJzaW5nL3RyYW5zaXRpb24tZGVsYXktY29t
cHV0ZWQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9jc3MvY3NzLXRyYW5zaXRpb25zL3BhcnNpbmcvdHJhbnNpdGlvbi1kZWxheS1jb21w
dXRlZC1leHBlY3RlZC50eHQKaW5kZXggZDJmYTc4NzI3NWRhM2YwOWVlZjA3NDI2OTlhNTllYmQ1
NWE0N2FmYS4uY2JjNTk0ZjQ4YjAxN2RhZjc1NzQ1ZWQ4MTZhMDQ0ODEyMGFlOWNiYSAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nz
LXRyYW5zaXRpb25zL3BhcnNpbmcvdHJhbnNpdGlvbi1kZWxheS1jb21wdXRlZC1leHBlY3RlZC50
eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3Mv
Y3NzLXRyYW5zaXRpb25zL3BhcnNpbmcvdHJhbnNpdGlvbi1kZWxheS1jb21wdXRlZC1leHBlY3Rl
ZC50eHQKQEAgLTEsMyArMSwzIEBACiAKLUZBSUwgUHJvcGVydHkgdHJhbnNpdGlvbi1kZWxheSB2
YWx1ZSAnLTUwMG1zLCBjYWxjKDIgKiAzcyknIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkICItMC41
cywgNnMiIGJ1dCBnb3QgIjZzIgorUEFTUyBQcm9wZXJ0eSB0cmFuc2l0aW9uLWRlbGF5IHZhbHVl
ICctNTAwbXMsIGNhbGMoMiAqIDNzKScKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXRyYW5zaXRpb25zL3BhcnNpbmcvdHJh
bnNpdGlvbi1kdXJhdGlvbi1jb21wdXRlZC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtdHJhbnNpdGlvbnMvcGFyc2luZy90
cmFuc2l0aW9uLWR1cmF0aW9uLWNvbXB1dGVkLWV4cGVjdGVkLnR4dAppbmRleCA3Y2Q1NTg3N2M5
ZjlkZjY3ZjY3ZTA5ODRmMmQ5NmU0ZDVhNTJkZDA2Li4xMTExYTc4ZjFkYmZjNjBiZDg1ZTE0OTRm
MjZjZjk1MTFhZTM3Mzg4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtdHJhbnNpdGlvbnMvcGFyc2luZy90cmFuc2l0aW9uLWR1
cmF0aW9uLWNvbXB1dGVkLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtdHJhbnNpdGlvbnMvcGFyc2luZy90cmFuc2l0
aW9uLWR1cmF0aW9uLWNvbXB1dGVkLWV4cGVjdGVkLnR4dApAQCAtMSw1ICsxLDUgQEAKIAogUEFT
UyBQcm9wZXJ0eSB0cmFuc2l0aW9uLWR1cmF0aW9uIHZhbHVlICc1MDBtcycKIFBBU1MgUHJvcGVy
dHkgdHJhbnNpdGlvbi1kdXJhdGlvbiB2YWx1ZSAnY2FsYygyICogM3MpJwotRkFJTCBQcm9wZXJ0
eSB0cmFuc2l0aW9uLWR1cmF0aW9uIHZhbHVlICcyMHMsIDEwcycgYXNzZXJ0X2VxdWFsczogZXhw
ZWN0ZWQgIjIwcywgMTBzIiBidXQgZ290ICIxMHMiCitQQVNTIFByb3BlcnR5IHRyYW5zaXRpb24t
ZHVyYXRpb24gdmFsdWUgJzIwcywgMTBzJwogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtdHJhbnNpdGlvbnMvcGFyc2luZy90
cmFuc2l0aW9uLXByb3BlcnR5LWNvbXB1dGVkLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy10cmFuc2l0aW9ucy9wYXJzaW5n
L3RyYW5zaXRpb24tcHJvcGVydHktY29tcHV0ZWQtZXhwZWN0ZWQudHh0CmluZGV4IDYyODFkZjE0
NjkzYjRiODc2MmI3MzU2N2E5YTViMDNiZDAxNWQxMTIuLjBiZTk0NDc3ZjRhYzZkNDYxZGVhYWQ1
MDc1NWM3M2EwOTRmZWE4NGQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy10cmFuc2l0aW9ucy9wYXJzaW5nL3RyYW5zaXRpb24t
cHJvcGVydHktY29tcHV0ZWQtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy10cmFuc2l0aW9ucy9wYXJzaW5nL3RyYW5z
aXRpb24tcHJvcGVydHktY29tcHV0ZWQtZXhwZWN0ZWQudHh0CkBAIC0xLDQgKzEsNCBAQAogCiBQ
QVNTIFByb3BlcnR5IHRyYW5zaXRpb24tcHJvcGVydHkgdmFsdWUgJ2xlZnQsIHRvcCwgcmlnaHQs
IGJvdHRvbScKLUZBSUwgUHJvcGVydHkgdHJhbnNpdGlvbi1wcm9wZXJ0eSB2YWx1ZSAnb25lLCB0
d28sIHRocmVlJyBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAib25lLCB0d28sIHRocmVlIiBidXQg
Z290ICJ0aHJlZSIKK1BBU1MgUHJvcGVydHkgdHJhbnNpdGlvbi1wcm9wZXJ0eSB2YWx1ZSAnb25l
LCB0d28sIHRocmVlJwogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtdHJhbnNpdGlvbnMvcGFyc2luZy90cmFuc2l0aW9uLXRp
bWluZy1mdW5jdGlvbi1jb21wdXRlZC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtdHJhbnNpdGlvbnMvcGFyc2luZy90cmFu
c2l0aW9uLXRpbWluZy1mdW5jdGlvbi1jb21wdXRlZC1leHBlY3RlZC50eHQKaW5kZXggYzE5NjUy
ZTdlNzRmM2MwYTZjMWRmZGNkNTE1Mjk1NjMxZWQ3YzRmMS4uMjFhNjEyNDNlYmQ1Nzc4YWEwMGJl
M2MyOWMyZTRmZWIwNzJiY2Y2YSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXRyYW5zaXRpb25zL3BhcnNpbmcvdHJhbnNpdGlv
bi10aW1pbmctZnVuY3Rpb24tY29tcHV0ZWQtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy10cmFuc2l0aW9ucy9wYXJz
aW5nL3RyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uLWNvbXB1dGVkLWV4cGVjdGVkLnR4dApAQCAt
MTYsNSArMTYsNSBAQCBQQVNTIFByb3BlcnR5IHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uIHZh
bHVlICdzdGVwcygyLCBqdW1wLXN0YXJ0KScKIFBBU1MgUHJvcGVydHkgdHJhbnNpdGlvbi10aW1p
bmctZnVuY3Rpb24gdmFsdWUgJ3N0ZXBzKDIsIGp1bXAtZW5kKScKIFBBU1MgUHJvcGVydHkgdHJh
bnNpdGlvbi10aW1pbmctZnVuY3Rpb24gdmFsdWUgJ3N0ZXBzKDIsIGp1bXAtYm90aCknCiBQQVNT
IFByb3BlcnR5IHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uIHZhbHVlICdzdGVwcygyLCBqdW1w
LW5vbmUpJwotRkFJTCBQcm9wZXJ0eSB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbiB2YWx1ZSAn
bGluZWFyLCBlYXNlLCBsaW5lYXInIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkICJsaW5lYXIsIGVh
c2UsIGxpbmVhciIgYnV0IGdvdCAibGluZWFyIgorUEFTUyBQcm9wZXJ0eSB0cmFuc2l0aW9uLXRp
bWluZy1mdW5jdGlvbiB2YWx1ZSAnbGluZWFyLCBlYXNlLCBsaW5lYXInCiAKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy10cmFu
c2l0aW9ucy90cmFuc2l0aW9uLWRlbGF5LTAwMS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtdHJhbnNpdGlvbnMvdHJhbnNp
dGlvbi1kZWxheS0wMDEtZXhwZWN0ZWQudHh0CmluZGV4IGQ4NTljMGFjN2ZkODg4ZmJkZTAwNGVm
MmQ1YTZjNWY1MDRkMDk2YzkuLjEyZGVhOGRlYmU5NWI2ZmNlNjVlY2ZkYTZhODc1N2ZmYmE0N2Iw
ODggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvY3NzL2Nzcy10cmFuc2l0aW9ucy90cmFuc2l0aW9uLWRlbGF5LTAwMS1leHBlY3RlZC50eHQK
KysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nz
LXRyYW5zaXRpb25zL3RyYW5zaXRpb24tZGVsYXktMDAxLWV4cGVjdGVkLnR4dApAQCAtMTgsNiAr
MTgsNiBAQCBQQVNTIHBhcnNlICc5bXMnCiBQQVNTIHBhcnNlICcxbXMnCiBQQVNTIHBhcnNlICcw
bXMnCiBQQVNTIHBhcnNlICctNTAwbXMnCi1GQUlMIHBhcnNlICcxcywgMC4xcywgMTBtcycgYXNz
ZXJ0X2VxdWFsczogRXhwZWN0ZWQgY29tcHV0ZWQgdmFsdWUgZXhwZWN0ZWQgIjFzLCAwLjFzLCAw
LjAxcyIgYnV0IGdvdCAiMC4wMXMiCitQQVNTIHBhcnNlICcxcywgMC4xcywgMTBtcycKIFBBU1Mg
cGFyc2UgJ2Zvb2JhcicKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXRyYW5zaXRpb25zL3RyYW5zaXRpb24tZHVyYXRpb24t
MDAxLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvY3NzL2Nzcy10cmFuc2l0aW9ucy90cmFuc2l0aW9uLWR1cmF0aW9uLTAwMS1leHBlY3Rl
ZC50eHQKaW5kZXggZDg1OWMwYWM3ZmQ4ODhmYmRlMDA0ZWYyZDVhNmM1ZjUwNGQwOTZjOS4uMTJk
ZWE4ZGViZTk1YjZmY2U2NWVjZmRhNmE4NzU3ZmZiYTQ3YjA4OCAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXRyYW5zaXRpb25z
L3RyYW5zaXRpb24tZHVyYXRpb24tMDAxLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtdHJhbnNpdGlvbnMvdHJhbnNp
dGlvbi1kdXJhdGlvbi0wMDEtZXhwZWN0ZWQudHh0CkBAIC0xOCw2ICsxOCw2IEBAIFBBU1MgcGFy
c2UgJzltcycKIFBBU1MgcGFyc2UgJzFtcycKIFBBU1MgcGFyc2UgJzBtcycKIFBBU1MgcGFyc2Ug
Jy01MDBtcycKLUZBSUwgcGFyc2UgJzFzLCAwLjFzLCAxMG1zJyBhc3NlcnRfZXF1YWxzOiBFeHBl
Y3RlZCBjb21wdXRlZCB2YWx1ZSBleHBlY3RlZCAiMXMsIDAuMXMsIDAuMDFzIiBidXQgZ290ICIw
LjAxcyIKK1BBU1MgcGFyc2UgJzFzLCAwLjFzLCAxMG1zJwogUEFTUyBwYXJzZSAnZm9vYmFyJwog
Cg==
</data>
<flag name="review"
          id="474230"
          type_id="1"
          status="+"
          setter="koivisto"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>448383</attachid>
            <date>2022-01-05 06:57:32 -0800</date>
            <delta_ts>2022-01-06 00:43:55 -0800</delta_ts>
            <desc>Alternative patch</desc>
            <filename>bug-234880-20220105155730.patch</filename>
            <type>text/plain</type>
            <size>27142</size>
            <attacher name="Antoine Quint">graouts</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg3NjA3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDQwOGYzOTNlN2ZkMTJk
YzU0N2NjNDk2YTgxZjIxOTUwMjU5NWUzZi4uOGFiZTE4NDk5Y2MzMmY4ZDMyZjMwYWM0YTA4NWFl
NzZmNTcyYmNiMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU3IEBACisyMDIyLTAxLTA1ICBBbnRv
aW5lIFF1aW50ICA8Z3Jhb3V0c0B3ZWJraXQub3JnPgorCisgICAgICAgIGNvbXB1dGVkIHN0eWxl
IGZvciB0cmFuc2l0aW9uIGxvbmdoYW5kIHByb3BlcnRpZXMgaXMgd3JvbmcKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzNDg4MAorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFdlIGhhZCB0d28gaXNzdWVzIGlu
IHRoZSB3YXkgd2UgdHJlYXRlZCBhbmltYXRpb24gbGlzdHMuCisKKyAgICAgICAgRmlyc3QsIHdl
IHdvdWxkIGFsd2F5cyBvdXRwdXQgdGhlIGZpbGxlZC1pbiB2YWx1ZXMgaW4gdGhlIGNvbXB1dGVk
IHN0eWxlLCB3aGljaAorICAgICAgICBtZWFudCB0aGF0IHNldHRpbmcgYGFuaW1hdGlvbi1uYW1l
OiBvbmUsIHR3bzsgYW5pbWF0aW9uLWR1cmF0aW9uOiAxc2Agd291bGQgeWllbGQKKyAgICAgICAg
YDFzLCAxc2AgaW5zdGVhZCBvZiBqdXN0IGAxc2AgZm9yIGFuaW1hdGlvbi1kdXJhdGlvbi4gU28g
d2Ugbm93IG1haW50YWluIGEgYml0CisgICAgICAgIG9uIEFuaW1hdGlvbiB0byBpbmRpY2F0ZSB3
aGV0aGVyIGEgZ2l2ZW4gdmFsdWUgd2FzIHNldCBmb3IgZmlsbGluZyBhbmQKKyAgICAgICAgQ29t
cHV0ZWRTdHlsZUV4dHJhY3Rvcjo6YWRkVmFsdWVGb3JBbmltYXRpb25Qcm9wZXJ0eVRvTGlzdCgp
IGNhbiBub3cgcXVlcnkgaXQKKyAgICAgICAgYmVmb3JlIGFkZGluZyB0aGlzIHZhbHVlIHdoZW4g
cmV0dXJuaW5nIHRoZSBjb21wdXRlZCBzdHlsZS4KKworICAgICAgICBTZWNvbmQsIGluIFJlbmRl
clN0eWxlOjphZGp1c3RUcmFuc2l0aW9ucygpLCB3ZSB3b3VsZCBtaXN0YWtlbmx5IHRyeSB0byBy
ZW1vdmUgZW50cmllcworICAgICAgICBpZiB3ZSBmb3VuZCBhIHRyYW5zaXRpb24tcHJvcGVydHkg
cmVwZWF0ZWQuIEhvd2V2ZXIsIHRoaXMgaXMgdmFsaWQgc28gd2UgcmVtb3ZlIHRoZQorICAgICAg
ICBjb2RlIHJlbGF0ZWQgdG8gdGhpcyBlbnRpcmVseS4KKworICAgICAgICAqIGNzcy9DU1NDb21w
dXRlZFN0eWxlRGVjbGFyYXRpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q29tcHV0ZWRTdHls
ZUV4dHJhY3Rvcjo6YWRkVmFsdWVGb3JBbmltYXRpb25Qcm9wZXJ0eVRvTGlzdCk6CisgICAgICAg
ICogcGxhdGZvcm0vYW5pbWF0aW9uL0FuaW1hdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpB
bmltYXRpb246OkFuaW1hdGlvbik6CisgICAgICAgICogcGxhdGZvcm0vYW5pbWF0aW9uL0FuaW1h
dGlvbi5oOgorICAgICAgICAoV2ViQ29yZTo6QW5pbWF0aW9uOjpjbGVhckRlbGF5KToKKyAgICAg
ICAgKFdlYkNvcmU6OkFuaW1hdGlvbjo6Y2xlYXJEaXJlY3Rpb24pOgorICAgICAgICAoV2ViQ29y
ZTo6QW5pbWF0aW9uOjpjbGVhckR1cmF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkFuaW1hdGlv
bjo6Y2xlYXJGaWxsTW9kZSk6CisgICAgICAgIChXZWJDb3JlOjpBbmltYXRpb246OmNsZWFySXRl
cmF0aW9uQ291bnQpOgorICAgICAgICAoV2ViQ29yZTo6QW5pbWF0aW9uOjpjbGVhclBsYXlTdGF0
ZSk6CisgICAgICAgIChXZWJDb3JlOjpBbmltYXRpb246OmNsZWFyUHJvcGVydHkpOgorICAgICAg
ICAoV2ViQ29yZTo6QW5pbWF0aW9uOjpjbGVhclRpbWluZ0Z1bmN0aW9uKToKKyAgICAgICAgKFdl
YkNvcmU6OkFuaW1hdGlvbjo6ZmlsbERlbGF5KToKKyAgICAgICAgKFdlYkNvcmU6OkFuaW1hdGlv
bjo6ZmlsbERpcmVjdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpBbmltYXRpb246OmZpbGxEdXJh
dGlvbik6CisgICAgICAgIChXZWJDb3JlOjpBbmltYXRpb246OmZpbGxGaWxsTW9kZSk6CisgICAg
ICAgIChXZWJDb3JlOjpBbmltYXRpb246OmZpbGxJdGVyYXRpb25Db3VudCk6CisgICAgICAgIChX
ZWJDb3JlOjpBbmltYXRpb246OmZpbGxQbGF5U3RhdGUpOgorICAgICAgICAoV2ViQ29yZTo6QW5p
bWF0aW9uOjpmaWxsUHJvcGVydHkpOgorICAgICAgICAoV2ViQ29yZTo6QW5pbWF0aW9uOjpmaWxs
VGltaW5nRnVuY3Rpb24pOgorICAgICAgICAoV2ViQ29yZTo6QW5pbWF0aW9uOjppc0RlbGF5Rmls
bGVkIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkFuaW1hdGlvbjo6aXNEaXJlY3Rpb25GaWxs
ZWQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6QW5pbWF0aW9uOjppc0R1cmF0aW9uRmlsbGVk
IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkFuaW1hdGlvbjo6aXNGaWxsTW9kZUZpbGxlZCBj
b25zdCk6CisgICAgICAgIChXZWJDb3JlOjpBbmltYXRpb246OmlzSXRlcmF0aW9uQ291bnRGaWxs
ZWQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6QW5pbWF0aW9uOjppc1BsYXlTdGF0ZUZpbGxl
ZCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpBbmltYXRpb246OmlzUHJvcGVydHlGaWxsZWQg
Y29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6QW5pbWF0aW9uOjppc1RpbWluZ0Z1bmN0aW9uRmls
bGVkIGNvbnN0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9hbmltYXRpb24vQW5pbWF0aW9uTGlzdC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpBbmltYXRpb25MaXN0OjpmaWxsVW5zZXRQcm9wZXJ0aWVz
KToKKyAgICAgICAgKiByZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6UmVuZGVyU3R5bGU6OmFkanVzdFRyYW5zaXRpb25zKToKKwogMjAyMi0wMS0wNSAg
TWFydGluIFJvYmluc29uICA8bXJvYmluc29uQHdlYmtpdC5vcmc+CiAKICAgICAgICAgQ1NTIGB0
cmFuc2Zvcm1gIHByb3BlcnR5ICBzaG91bGQgdGFrZSBpbnRvIGFjY291bnQgdHJhbnNmb3JtIHJl
ZmVyZW5jZSBib3gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDb21wdXRlZFN0
eWxlRGVjbGFyYXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0NvbXB1dGVkU3R5bGVE
ZWNsYXJhdGlvbi5jcHAKaW5kZXggMjJmZjVmMzE3NDNlNGUzYmNkYzY2NTg5N2ZlODQwMWYzNjU5
ZTI5NC4uNTg4NWUxYjljZWM2ZDMyN2M4NzBhNzk1YTcwNjkxOTFlOTkyYjVmNCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHAKQEAg
LTE0NDUsMjkgKzE0NDUsMzcgQEAgc3RhdGljIFJlZjxDU1NWYWx1ZT4gdmFsdWVGb3JBbmltYXRp
b25UaW1pbmdGdW5jdGlvbihjb25zdCBUaW1pbmdGdW5jdGlvbiYgdGltaW4KIAogdm9pZCBDb21w
dXRlZFN0eWxlRXh0cmFjdG9yOjphZGRWYWx1ZUZvckFuaW1hdGlvblByb3BlcnR5VG9MaXN0KENT
U1ZhbHVlTGlzdCYgbGlzdCwgQ1NTUHJvcGVydHlJRCBwcm9wZXJ0eSwgY29uc3QgQW5pbWF0aW9u
KiBhbmltYXRpb24pCiB7Ci0gICAgaWYgKHByb3BlcnR5ID09IENTU1Byb3BlcnR5QW5pbWF0aW9u
RHVyYXRpb24gfHwgcHJvcGVydHkgPT0gQ1NTUHJvcGVydHlUcmFuc2l0aW9uRHVyYXRpb24pCi0g
ICAgICAgIGxpc3QuYXBwZW5kKHZhbHVlRm9yQW5pbWF0aW9uRHVyYXRpb24oYW5pbWF0aW9uID8g
YW5pbWF0aW9uLT5kdXJhdGlvbigpIDogQW5pbWF0aW9uOjppbml0aWFsRHVyYXRpb24oKSkpOwot
ICAgIGVsc2UgaWYgKHByb3BlcnR5ID09IENTU1Byb3BlcnR5QW5pbWF0aW9uRGVsYXkgfHwgcHJv
cGVydHkgPT0gQ1NTUHJvcGVydHlUcmFuc2l0aW9uRGVsYXkpCi0gICAgICAgIGxpc3QuYXBwZW5k
KHZhbHVlRm9yQW5pbWF0aW9uRGVsYXkoYW5pbWF0aW9uID8gYW5pbWF0aW9uLT5kZWxheSgpIDog
QW5pbWF0aW9uOjppbml0aWFsRGVsYXkoKSkpOwotICAgIGVsc2UgaWYgKHByb3BlcnR5ID09IENT
U1Byb3BlcnR5QW5pbWF0aW9uSXRlcmF0aW9uQ291bnQpCi0gICAgICAgIGxpc3QuYXBwZW5kKHZh
bHVlRm9yQW5pbWF0aW9uSXRlcmF0aW9uQ291bnQoYW5pbWF0aW9uID8gYW5pbWF0aW9uLT5pdGVy
YXRpb25Db3VudCgpIDogQW5pbWF0aW9uOjppbml0aWFsSXRlcmF0aW9uQ291bnQoKSkpOwotICAg
IGVsc2UgaWYgKHByb3BlcnR5ID09IENTU1Byb3BlcnR5QW5pbWF0aW9uRGlyZWN0aW9uKQotICAg
ICAgICBsaXN0LmFwcGVuZCh2YWx1ZUZvckFuaW1hdGlvbkRpcmVjdGlvbihhbmltYXRpb24gPyBh
bmltYXRpb24tPmRpcmVjdGlvbigpIDogQW5pbWF0aW9uOjppbml0aWFsRGlyZWN0aW9uKCkpKTsK
LSAgICBlbHNlIGlmIChwcm9wZXJ0eSA9PSBDU1NQcm9wZXJ0eUFuaW1hdGlvbkZpbGxNb2RlKQot
ICAgICAgICBsaXN0LmFwcGVuZCh2YWx1ZUZvckFuaW1hdGlvbkZpbGxNb2RlKGFuaW1hdGlvbiA/
IGFuaW1hdGlvbi0+ZmlsbE1vZGUoKSA6IEFuaW1hdGlvbjo6aW5pdGlhbEZpbGxNb2RlKCkpKTsK
LSAgICBlbHNlIGlmIChwcm9wZXJ0eSA9PSBDU1NQcm9wZXJ0eUFuaW1hdGlvblBsYXlTdGF0ZSkK
LSAgICAgICAgbGlzdC5hcHBlbmQodmFsdWVGb3JBbmltYXRpb25QbGF5U3RhdGUoYW5pbWF0aW9u
ID8gYW5pbWF0aW9uLT5wbGF5U3RhdGUoKSA6IEFuaW1hdGlvbjo6aW5pdGlhbFBsYXlTdGF0ZSgp
KSk7Ci0gICAgZWxzZSBpZiAocHJvcGVydHkgPT0gQ1NTUHJvcGVydHlBbmltYXRpb25OYW1lKQor
ICAgIGlmIChwcm9wZXJ0eSA9PSBDU1NQcm9wZXJ0eUFuaW1hdGlvbkR1cmF0aW9uIHx8IHByb3Bl
cnR5ID09IENTU1Byb3BlcnR5VHJhbnNpdGlvbkR1cmF0aW9uKSB7CisgICAgICAgIGlmICghYW5p
bWF0aW9uIHx8ICFhbmltYXRpb24tPmlzRHVyYXRpb25GaWxsZWQoKSkKKyAgICAgICAgICAgIGxp
c3QuYXBwZW5kKHZhbHVlRm9yQW5pbWF0aW9uRHVyYXRpb24oYW5pbWF0aW9uID8gYW5pbWF0aW9u
LT5kdXJhdGlvbigpIDogQW5pbWF0aW9uOjppbml0aWFsRHVyYXRpb24oKSkpOworICAgIH0gZWxz
ZSBpZiAocHJvcGVydHkgPT0gQ1NTUHJvcGVydHlBbmltYXRpb25EZWxheSB8fCBwcm9wZXJ0eSA9
PSBDU1NQcm9wZXJ0eVRyYW5zaXRpb25EZWxheSkgeworICAgICAgICBpZiAoIWFuaW1hdGlvbiB8
fCAhYW5pbWF0aW9uLT5pc0RlbGF5RmlsbGVkKCkpCisgICAgICAgICAgICBsaXN0LmFwcGVuZCh2
YWx1ZUZvckFuaW1hdGlvbkRlbGF5KGFuaW1hdGlvbiA/IGFuaW1hdGlvbi0+ZGVsYXkoKSA6IEFu
aW1hdGlvbjo6aW5pdGlhbERlbGF5KCkpKTsKKyAgICB9IGVsc2UgaWYgKHByb3BlcnR5ID09IENT
U1Byb3BlcnR5QW5pbWF0aW9uSXRlcmF0aW9uQ291bnQpIHsKKyAgICAgICAgaWYgKCFhbmltYXRp
b24gfHwgIWFuaW1hdGlvbi0+aXNJdGVyYXRpb25Db3VudEZpbGxlZCgpKQorICAgICAgICAgICAg
bGlzdC5hcHBlbmQodmFsdWVGb3JBbmltYXRpb25JdGVyYXRpb25Db3VudChhbmltYXRpb24gPyBh
bmltYXRpb24tPml0ZXJhdGlvbkNvdW50KCkgOiBBbmltYXRpb246OmluaXRpYWxJdGVyYXRpb25D
b3VudCgpKSk7CisgICAgfSBlbHNlIGlmIChwcm9wZXJ0eSA9PSBDU1NQcm9wZXJ0eUFuaW1hdGlv
bkRpcmVjdGlvbikgeworICAgICAgICBpZiAoIWFuaW1hdGlvbiB8fCAhYW5pbWF0aW9uLT5pc0Rp
cmVjdGlvbkZpbGxlZCgpKQorICAgICAgICAgICAgbGlzdC5hcHBlbmQodmFsdWVGb3JBbmltYXRp
b25EaXJlY3Rpb24oYW5pbWF0aW9uID8gYW5pbWF0aW9uLT5kaXJlY3Rpb24oKSA6IEFuaW1hdGlv
bjo6aW5pdGlhbERpcmVjdGlvbigpKSk7CisgICAgfSBlbHNlIGlmIChwcm9wZXJ0eSA9PSBDU1NQ
cm9wZXJ0eUFuaW1hdGlvbkZpbGxNb2RlKSB7CisgICAgICAgIGlmICghYW5pbWF0aW9uIHx8ICFh
bmltYXRpb24tPmlzRmlsbE1vZGVGaWxsZWQoKSkKKyAgICAgICAgICAgIGxpc3QuYXBwZW5kKHZh
bHVlRm9yQW5pbWF0aW9uRmlsbE1vZGUoYW5pbWF0aW9uID8gYW5pbWF0aW9uLT5maWxsTW9kZSgp
IDogQW5pbWF0aW9uOjppbml0aWFsRmlsbE1vZGUoKSkpOworICAgIH0gZWxzZSBpZiAocHJvcGVy
dHkgPT0gQ1NTUHJvcGVydHlBbmltYXRpb25QbGF5U3RhdGUpIHsKKyAgICAgICAgaWYgKCFhbmlt
YXRpb24gfHwgIWFuaW1hdGlvbi0+aXNQbGF5U3RhdGVGaWxsZWQoKSkKKyAgICAgICAgICAgIGxp
c3QuYXBwZW5kKHZhbHVlRm9yQW5pbWF0aW9uUGxheVN0YXRlKGFuaW1hdGlvbiA/IGFuaW1hdGlv
bi0+cGxheVN0YXRlKCkgOiBBbmltYXRpb246OmluaXRpYWxQbGF5U3RhdGUoKSkpOworICAgIH0g
ZWxzZSBpZiAocHJvcGVydHkgPT0gQ1NTUHJvcGVydHlBbmltYXRpb25OYW1lKQogICAgICAgICBs
aXN0LmFwcGVuZCh2YWx1ZUZvckFuaW1hdGlvbk5hbWUoYW5pbWF0aW9uID8gYW5pbWF0aW9uLT5u
YW1lKCkgOiBBbmltYXRpb246OmluaXRpYWxOYW1lKCkpKTsKICAgICBlbHNlIGlmIChwcm9wZXJ0
eSA9PSBDU1NQcm9wZXJ0eVRyYW5zaXRpb25Qcm9wZXJ0eSkgewotICAgICAgICBpZiAoYW5pbWF0
aW9uKQotICAgICAgICAgICAgbGlzdC5hcHBlbmQoY3JlYXRlVHJhbnNpdGlvblByb3BlcnR5VmFs
dWUoKmFuaW1hdGlvbikpOwotICAgICAgICBlbHNlCisgICAgICAgIGlmIChhbmltYXRpb24pIHsK
KyAgICAgICAgICAgIGlmICghYW5pbWF0aW9uLT5pc1Byb3BlcnR5RmlsbGVkKCkpCisgICAgICAg
ICAgICAgICAgbGlzdC5hcHBlbmQoY3JlYXRlVHJhbnNpdGlvblByb3BlcnR5VmFsdWUoKmFuaW1h
dGlvbikpOworICAgICAgICB9IGVsc2UKICAgICAgICAgICAgIGxpc3QuYXBwZW5kKENTU1ZhbHVl
UG9vbDo6c2luZ2xldG9uKCkuY3JlYXRlSWRlbnRpZmllclZhbHVlKENTU1ZhbHVlQWxsKSk7CiAg
ICAgfSBlbHNlIGlmIChwcm9wZXJ0eSA9PSBDU1NQcm9wZXJ0eUFuaW1hdGlvblRpbWluZ0Z1bmN0
aW9uIHx8IHByb3BlcnR5ID09IENTU1Byb3BlcnR5VHJhbnNpdGlvblRpbWluZ0Z1bmN0aW9uKSB7
Ci0gICAgICAgIGlmIChhbmltYXRpb24pCi0gICAgICAgICAgICBsaXN0LmFwcGVuZCh2YWx1ZUZv
ckFuaW1hdGlvblRpbWluZ0Z1bmN0aW9uKCphbmltYXRpb24tPnRpbWluZ0Z1bmN0aW9uKCkpKTsK
LSAgICAgICAgZWxzZQorICAgICAgICBpZiAoYW5pbWF0aW9uKSB7CisgICAgICAgICAgICBpZiAo
IWFuaW1hdGlvbi0+aXNUaW1pbmdGdW5jdGlvbkZpbGxlZCgpKQorICAgICAgICAgICAgICAgIGxp
c3QuYXBwZW5kKHZhbHVlRm9yQW5pbWF0aW9uVGltaW5nRnVuY3Rpb24oKmFuaW1hdGlvbi0+dGlt
aW5nRnVuY3Rpb24oKSkpOworICAgICAgICB9IGVsc2UKICAgICAgICAgICAgIGxpc3QuYXBwZW5k
KHZhbHVlRm9yQW5pbWF0aW9uVGltaW5nRnVuY3Rpb24oQ3ViaWNCZXppZXJUaW1pbmdGdW5jdGlv
bjo6ZGVmYXVsdFRpbWluZ0Z1bmN0aW9uKCkpKTsKICAgICB9IGVsc2UKICAgICAgICAgQVNTRVJU
X05PVF9SRUFDSEVEKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hbmlt
YXRpb24vQW5pbWF0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2FuaW1hdGlvbi9B
bmltYXRpb24uY3BwCmluZGV4IDk4YmVjMDc2M2RhMzY5MTc2MzhkOTMxZGQ4YzE1OTRjZjAzNGMx
ZDAuLjY4YjdmNzhjODkzOTkxNTlkYTMzODBmOWU0OTA4MTc2ZWE2ZWYyMWQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2FuaW1hdGlvbi9BbmltYXRpb24uY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2FuaW1hdGlvbi9BbmltYXRpb24uY3BwCkBAIC00OCw2ICs0
OCwxNCBAQCBBbmltYXRpb246OkFuaW1hdGlvbigpCiAgICAgLCBtX3RpbWluZ0Z1bmN0aW9uU2V0
KGZhbHNlKQogICAgICwgbV9jb21wb3NpdGVPcGVyYXRpb25TZXQoZmFsc2UpCiAgICAgLCBtX2lz
Tm9uZShmYWxzZSkKKyAgICAsIG1fZGVsYXlGaWxsZWQoZmFsc2UpCisgICAgLCBtX2RpcmVjdGlv
bkZpbGxlZChmYWxzZSkKKyAgICAsIG1fZHVyYXRpb25GaWxsZWQoZmFsc2UpCisgICAgLCBtX2Zp
bGxNb2RlRmlsbGVkKGZhbHNlKQorICAgICwgbV9pdGVyYXRpb25Db3VudEZpbGxlZChmYWxzZSkK
KyAgICAsIG1fcGxheVN0YXRlRmlsbGVkKGZhbHNlKQorICAgICwgbV9wcm9wZXJ0eUZpbGxlZChm
YWxzZSkKKyAgICAsIG1fdGltaW5nRnVuY3Rpb25GaWxsZWQoZmFsc2UpCiB7CiB9CiAKQEAgLTc1
LDYgKzgzLDE0IEBAIEFuaW1hdGlvbjo6QW5pbWF0aW9uKGNvbnN0IEFuaW1hdGlvbiYgbykKICAg
ICAsIG1fdGltaW5nRnVuY3Rpb25TZXQoby5tX3RpbWluZ0Z1bmN0aW9uU2V0KQogICAgICwgbV9j
b21wb3NpdGVPcGVyYXRpb25TZXQoby5tX2NvbXBvc2l0ZU9wZXJhdGlvblNldCkKICAgICAsIG1f
aXNOb25lKG8ubV9pc05vbmUpCisgICAgLCBtX2RlbGF5RmlsbGVkKG8ubV9kZWxheUZpbGxlZCkK
KyAgICAsIG1fZGlyZWN0aW9uRmlsbGVkKG8ubV9kaXJlY3Rpb25GaWxsZWQpCisgICAgLCBtX2R1
cmF0aW9uRmlsbGVkKG8ubV9kdXJhdGlvbkZpbGxlZCkKKyAgICAsIG1fZmlsbE1vZGVGaWxsZWQo
by5tX2ZpbGxNb2RlRmlsbGVkKQorICAgICwgbV9pdGVyYXRpb25Db3VudEZpbGxlZChvLm1faXRl
cmF0aW9uQ291bnRGaWxsZWQpCisgICAgLCBtX3BsYXlTdGF0ZUZpbGxlZChvLm1fcGxheVN0YXRl
RmlsbGVkKQorICAgICwgbV9wcm9wZXJ0eUZpbGxlZChvLm1fcHJvcGVydHlGaWxsZWQpCisgICAg
LCBtX3RpbWluZ0Z1bmN0aW9uRmlsbGVkKG8ubV90aW1pbmdGdW5jdGlvbkZpbGxlZCkKIHsKIH0K
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYW5pbWF0aW9uL0FuaW1hdGlv
bi5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYW5pbWF0aW9uL0FuaW1hdGlvbi5oCmluZGV4
IDdlYTExNGFjOTQxOWM2ODU4MmVlMjZkZGZmNWQ0ODNlMWQ3OTI0YmQuLjlhYzE3OGMyNTQwMWQx
MDcxNzUzNzlkNTRlZDYxMjcyZGQxMGJkYmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2FuaW1hdGlvbi9BbmltYXRpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9hbmltYXRpb24vQW5pbWF0aW9uLmgKQEAgLTcwLDE1ICs3MCwxNSBAQCBwdWJsaWM6CiAgICAg
ICAgIHJldHVybiBpc0VtcHR5KCkgfHwgKG1fZHVyYXRpb24gPT0gMCAmJiBtX2RlbGF5IDw9IDAp
OwogICAgIH0KIAotICAgIHZvaWQgY2xlYXJEZWxheSgpIHsgbV9kZWxheVNldCA9IGZhbHNlOyB9
Ci0gICAgdm9pZCBjbGVhckRpcmVjdGlvbigpIHsgbV9kaXJlY3Rpb25TZXQgPSBmYWxzZTsgfQot
ICAgIHZvaWQgY2xlYXJEdXJhdGlvbigpIHsgbV9kdXJhdGlvblNldCA9IGZhbHNlOyB9Ci0gICAg
dm9pZCBjbGVhckZpbGxNb2RlKCkgeyBtX2ZpbGxNb2RlU2V0ID0gZmFsc2U7IH0KLSAgICB2b2lk
IGNsZWFySXRlcmF0aW9uQ291bnQoKSB7IG1faXRlcmF0aW9uQ291bnRTZXQgPSBmYWxzZTsgfQor
ICAgIHZvaWQgY2xlYXJEZWxheSgpIHsgbV9kZWxheVNldCA9IGZhbHNlOyBtX2RlbGF5RmlsbGVk
ID0gZmFsc2U7IH0KKyAgICB2b2lkIGNsZWFyRGlyZWN0aW9uKCkgeyBtX2RpcmVjdGlvblNldCA9
IGZhbHNlOyBtX2RpcmVjdGlvbkZpbGxlZCA9IGZhbHNlOyB9CisgICAgdm9pZCBjbGVhckR1cmF0
aW9uKCkgeyBtX2R1cmF0aW9uU2V0ID0gZmFsc2U7IG1fZHVyYXRpb25GaWxsZWQgPSBmYWxzZTsg
fQorICAgIHZvaWQgY2xlYXJGaWxsTW9kZSgpIHsgbV9maWxsTW9kZVNldCA9IGZhbHNlOyBtX2Zp
bGxNb2RlRmlsbGVkID0gZmFsc2U7IH0KKyAgICB2b2lkIGNsZWFySXRlcmF0aW9uQ291bnQoKSB7
IG1faXRlcmF0aW9uQ291bnRTZXQgPSBmYWxzZTsgbV9pdGVyYXRpb25Db3VudEZpbGxlZCA9IGZh
bHNlOyB9CiAgICAgdm9pZCBjbGVhck5hbWUoKSB7IG1fbmFtZVNldCA9IGZhbHNlOyB9Ci0gICAg
dm9pZCBjbGVhclBsYXlTdGF0ZSgpIHsgbV9wbGF5U3RhdGVTZXQgPSBmYWxzZTsgfQotICAgIHZv
aWQgY2xlYXJQcm9wZXJ0eSgpIHsgbV9wcm9wZXJ0eVNldCA9IGZhbHNlOyB9Ci0gICAgdm9pZCBj
bGVhclRpbWluZ0Z1bmN0aW9uKCkgeyBtX3RpbWluZ0Z1bmN0aW9uU2V0ID0gZmFsc2U7IH0KKyAg
ICB2b2lkIGNsZWFyUGxheVN0YXRlKCkgeyBtX3BsYXlTdGF0ZVNldCA9IGZhbHNlOyBtX3BsYXlT
dGF0ZUZpbGxlZCA9IGZhbHNlOyB9CisgICAgdm9pZCBjbGVhclByb3BlcnR5KCkgeyBtX3Byb3Bl
cnR5U2V0ID0gZmFsc2U7IG1fcHJvcGVydHlGaWxsZWQgPSBmYWxzZTsgfQorICAgIHZvaWQgY2xl
YXJUaW1pbmdGdW5jdGlvbigpIHsgbV90aW1pbmdGdW5jdGlvblNldCA9IGZhbHNlOyBtX3RpbWlu
Z0Z1bmN0aW9uRmlsbGVkID0gZmFsc2U7IH0KICAgICB2b2lkIGNsZWFyQ29tcG9zaXRlT3BlcmF0
aW9uKCkgeyBtX2NvbXBvc2l0ZU9wZXJhdGlvblNldCA9IGZhbHNlOyB9CiAKICAgICB2b2lkIGNs
ZWFyQWxsKCkKQEAgLTE1OSw2ICsxNTksMjQgQEAgcHVibGljOgogCiAgICAgdm9pZCBzZXRJc05v
bmVBbmltYXRpb24oYm9vbCBuKSB7IG1faXNOb25lID0gbjsgfQogCisgICAgdm9pZCBmaWxsRGVs
YXkoZG91YmxlIGRlbGF5KSB7IHNldERlbGF5KGRlbGF5KTsgbV9kZWxheUZpbGxlZCA9IHRydWU7
IH0KKyAgICB2b2lkIGZpbGxEaXJlY3Rpb24oQW5pbWF0aW9uRGlyZWN0aW9uIGRpcmVjdGlvbikg
eyBzZXREaXJlY3Rpb24oZGlyZWN0aW9uKTsgbV9kaXJlY3Rpb25GaWxsZWQgPSB0cnVlOyB9Cisg
ICAgdm9pZCBmaWxsRHVyYXRpb24oZG91YmxlIGR1cmF0aW9uKSB7IHNldER1cmF0aW9uKGR1cmF0
aW9uKTsgbV9kdXJhdGlvbkZpbGxlZCA9IHRydWU7IH0KKyAgICB2b2lkIGZpbGxGaWxsTW9kZShB
bmltYXRpb25GaWxsTW9kZSBmaWxsTW9kZSkgeyBzZXRGaWxsTW9kZShmaWxsTW9kZSk7IG1fZmls
bE1vZGVGaWxsZWQgPSB0cnVlOyB9CisgICAgdm9pZCBmaWxsSXRlcmF0aW9uQ291bnQoZG91Ymxl
IGl0ZXJhdGlvbkNvdW50KSB7IHNldEl0ZXJhdGlvbkNvdW50KGl0ZXJhdGlvbkNvdW50KTsgbV9p
dGVyYXRpb25Db3VudEZpbGxlZCA9IHRydWU7IH0KKyAgICB2b2lkIGZpbGxQbGF5U3RhdGUoQW5p
bWF0aW9uUGxheVN0YXRlIHBsYXlTdGF0ZSkgeyBzZXRQbGF5U3RhdGUocGxheVN0YXRlKTsgbV9w
bGF5U3RhdGVGaWxsZWQgPSB0cnVlOyB9CisgICAgdm9pZCBmaWxsUHJvcGVydHkoVHJhbnNpdGlv
blByb3BlcnR5IHByb3BlcnR5KSB7IHNldFByb3BlcnR5KHByb3BlcnR5KTsgbV9wcm9wZXJ0eUZp
bGxlZCA9IHRydWU7IH0KKyAgICB2b2lkIGZpbGxUaW1pbmdGdW5jdGlvbihSZWZQdHI8VGltaW5n
RnVuY3Rpb24+JiYgdGltaW5nRnVuY3Rpb24pIHsgc2V0VGltaW5nRnVuY3Rpb24oV1RGTW92ZSh0
aW1pbmdGdW5jdGlvbikpOyBtX3RpbWluZ0Z1bmN0aW9uRmlsbGVkID0gdHJ1ZTsgfQorCisgICAg
Ym9vbCBpc0RlbGF5RmlsbGVkKCkgY29uc3QgeyByZXR1cm4gbV9kZWxheUZpbGxlZDsgfQorICAg
IGJvb2wgaXNEaXJlY3Rpb25GaWxsZWQoKSBjb25zdCB7IHJldHVybiBtX2RpcmVjdGlvbkZpbGxl
ZDsgfQorICAgIGJvb2wgaXNEdXJhdGlvbkZpbGxlZCgpIGNvbnN0IHsgcmV0dXJuIG1fZHVyYXRp
b25GaWxsZWQ7IH0KKyAgICBib29sIGlzRmlsbE1vZGVGaWxsZWQoKSBjb25zdCB7IHJldHVybiBt
X2ZpbGxNb2RlRmlsbGVkOyB9CisgICAgYm9vbCBpc0l0ZXJhdGlvbkNvdW50RmlsbGVkKCkgY29u
c3QgeyByZXR1cm4gbV9pdGVyYXRpb25Db3VudEZpbGxlZDsgfQorICAgIGJvb2wgaXNQbGF5U3Rh
dGVGaWxsZWQoKSBjb25zdCB7IHJldHVybiBtX3BsYXlTdGF0ZUZpbGxlZDsgfQorICAgIGJvb2wg
aXNQcm9wZXJ0eUZpbGxlZCgpIGNvbnN0IHsgcmV0dXJuIG1fcHJvcGVydHlGaWxsZWQ7IH0KKyAg
ICBib29sIGlzVGltaW5nRnVuY3Rpb25GaWxsZWQoKSBjb25zdCB7IHJldHVybiBtX3RpbWluZ0Z1
bmN0aW9uRmlsbGVkOyB9CisKICAgICBBbmltYXRpb24mIG9wZXJhdG9yPShjb25zdCBBbmltYXRp
b24mKTsKIAogICAgIC8vIHJldHVybiB0cnVlIGlmIGFsbCBtZW1iZXJzIG9mIHRoaXMgY2xhc3Mg
bWF0Y2ggKGV4Y2x1ZGluZyBtX25leHQpCkBAIC0yMTAsNiArMjI4LDE1IEBAIHByaXZhdGU6CiAK
ICAgICBib29sIG1faXNOb25lIDogMTsKIAorICAgIGJvb2wgbV9kZWxheUZpbGxlZCA6IDE7Cisg
ICAgYm9vbCBtX2RpcmVjdGlvbkZpbGxlZCA6IDE7CisgICAgYm9vbCBtX2R1cmF0aW9uRmlsbGVk
IDogMTsKKyAgICBib29sIG1fZmlsbE1vZGVGaWxsZWQgOiAxOworICAgIGJvb2wgbV9pdGVyYXRp
b25Db3VudEZpbGxlZCA6IDE7CisgICAgYm9vbCBtX3BsYXlTdGF0ZUZpbGxlZCA6IDE7CisgICAg
Ym9vbCBtX3Byb3BlcnR5RmlsbGVkIDogMTsKKyAgICBib29sIG1fdGltaW5nRnVuY3Rpb25GaWxs
ZWQgOiAxOworCiBwdWJsaWM6CiAgICAgc3RhdGljIGRvdWJsZSBpbml0aWFsRGVsYXkoKSB7IHJl
dHVybiAwOyB9CiAgICAgc3RhdGljIEFuaW1hdGlvbkRpcmVjdGlvbiBpbml0aWFsRGlyZWN0aW9u
KCkgeyByZXR1cm4gQW5pbWF0aW9uRGlyZWN0aW9uTm9ybWFsOyB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9hbmltYXRpb24vQW5pbWF0aW9uTGlzdC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9hbmltYXRpb24vQW5pbWF0aW9uTGlzdC5jcHAKaW5kZXggMzUxNjBm
OTNlYzM2ZDY2YzMwMjQ0ZmY3YjFhNDU1NWZjYmNkNTI3ZS4uMDM3YjQ2ZWI2ZTM1NmNjYzM5Yzk2
YzQ2ZmY3ODQ1ZmVmNjQwY2IzNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
YW5pbWF0aW9uL0FuaW1hdGlvbkxpc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2FuaW1hdGlvbi9BbmltYXRpb25MaXN0LmNwcApAQCAtNTAsMTQgKzUwLDE0IEBAIEFuaW1hdGlv
bkxpc3Q6OkFuaW1hdGlvbkxpc3QoY29uc3QgQW5pbWF0aW9uTGlzdCYgb3RoZXIsIENvcHlCZWhh
dmlvciBjb3B5QmVoYXZpCiB2b2lkIEFuaW1hdGlvbkxpc3Q6OmZpbGxVbnNldFByb3BlcnRpZXMo
KQogewogICAgIHNpemVfdCBpOwotICAgIEZJTExfVU5TRVRfUFJPUEVSVFkoaXNEZWxheVNldCwg
ZGVsYXksIHNldERlbGF5KTsKLSAgICBGSUxMX1VOU0VUX1BST1BFUlRZKGlzRGlyZWN0aW9uU2V0
LCBkaXJlY3Rpb24sIHNldERpcmVjdGlvbik7Ci0gICAgRklMTF9VTlNFVF9QUk9QRVJUWShpc0R1
cmF0aW9uU2V0LCBkdXJhdGlvbiwgc2V0RHVyYXRpb24pOwotICAgIEZJTExfVU5TRVRfUFJPUEVS
VFkoaXNGaWxsTW9kZVNldCwgZmlsbE1vZGUsIHNldEZpbGxNb2RlKTsKLSAgICBGSUxMX1VOU0VU
X1BST1BFUlRZKGlzSXRlcmF0aW9uQ291bnRTZXQsIGl0ZXJhdGlvbkNvdW50LCBzZXRJdGVyYXRp
b25Db3VudCk7Ci0gICAgRklMTF9VTlNFVF9QUk9QRVJUWShpc1BsYXlTdGF0ZVNldCwgcGxheVN0
YXRlLCBzZXRQbGF5U3RhdGUpOwotICAgIEZJTExfVU5TRVRfUFJPUEVSVFkoaXNUaW1pbmdGdW5j
dGlvblNldCwgdGltaW5nRnVuY3Rpb24sIHNldFRpbWluZ0Z1bmN0aW9uKTsKLSAgICBGSUxMX1VO
U0VUX1BST1BFUlRZKGlzUHJvcGVydHlTZXQsIHByb3BlcnR5LCBzZXRQcm9wZXJ0eSk7CisgICAg
RklMTF9VTlNFVF9QUk9QRVJUWShpc0RlbGF5U2V0LCBkZWxheSwgZmlsbERlbGF5KTsKKyAgICBG
SUxMX1VOU0VUX1BST1BFUlRZKGlzRGlyZWN0aW9uU2V0LCBkaXJlY3Rpb24sIGZpbGxEaXJlY3Rp
b24pOworICAgIEZJTExfVU5TRVRfUFJPUEVSVFkoaXNEdXJhdGlvblNldCwgZHVyYXRpb24sIGZp
bGxEdXJhdGlvbik7CisgICAgRklMTF9VTlNFVF9QUk9QRVJUWShpc0ZpbGxNb2RlU2V0LCBmaWxs
TW9kZSwgZmlsbEZpbGxNb2RlKTsKKyAgICBGSUxMX1VOU0VUX1BST1BFUlRZKGlzSXRlcmF0aW9u
Q291bnRTZXQsIGl0ZXJhdGlvbkNvdW50LCBmaWxsSXRlcmF0aW9uQ291bnQpOworICAgIEZJTExf
VU5TRVRfUFJPUEVSVFkoaXNQbGF5U3RhdGVTZXQsIHBsYXlTdGF0ZSwgZmlsbFBsYXlTdGF0ZSk7
CisgICAgRklMTF9VTlNFVF9QUk9QRVJUWShpc1RpbWluZ0Z1bmN0aW9uU2V0LCB0aW1pbmdGdW5j
dGlvbiwgZmlsbFRpbWluZ0Z1bmN0aW9uKTsKKyAgICBGSUxMX1VOU0VUX1BST1BFUlRZKGlzUHJv
cGVydHlTZXQsIHByb3BlcnR5LCBmaWxsUHJvcGVydHkpOwogfQogCiBib29sIEFuaW1hdGlvbkxp
c3Q6Om9wZXJhdG9yPT0oY29uc3QgQW5pbWF0aW9uTGlzdCYgb3RoZXIpIGNvbnN0CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuY3BwIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmNwcAppbmRleCBlMjRlNjg5
YzM0MWI0ODRiZDU4OTU0NzI3NDczYzIyYjYzODQ0MDE3Li45YTdmNjdlZTg3YTA2YTFjYzAzOTQ1
ODUxYzAyMzJjNTk4NzVjMTlmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
c3R5bGUvUmVuZGVyU3R5bGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHls
ZS9SZW5kZXJTdHlsZS5jcHAKQEAgLTE3NzgsMTggKzE3NzgsNiBAQCB2b2lkIFJlbmRlclN0eWxl
OjphZGp1c3RUcmFuc2l0aW9ucygpCiAKICAgICAvLyBSZXBlYXQgcGF0dGVybnMgaW50byBsYXll
cnMgdGhhdCBkb24ndCBoYXZlIHNvbWUgcHJvcGVydGllcyBzZXQuCiAgICAgdHJhbnNpdGlvbkxp
c3QtPmZpbGxVbnNldFByb3BlcnRpZXMoKTsKLQotICAgIC8vIE1ha2Ugc3VyZSB0aGVyZSBhcmUg
bm8gZHVwbGljYXRlIHByb3BlcnRpZXMuCi0gICAgLy8gVGhpcyBpcyBhbiBPKG5eMikgYWxnb3Jp
dGhtIGJ1dCB0aGUgbGlzdHMgdGVuZCB0byBiZSBzaG9ydCwgc28gaXQgaXMgcHJvYmFibHkgT0su
Ci0gICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCB0cmFuc2l0aW9uTGlzdC0+c2l6ZSgpOyArK2kp
IHsKLSAgICAgICAgZm9yIChzaXplX3QgaiA9IGkgKyAxOyBqIDwgdHJhbnNpdGlvbkxpc3QtPnNp
emUoKTsgKytqKSB7Ci0gICAgICAgICAgICBpZiAodHJhbnNpdGlvbkxpc3QtPmFuaW1hdGlvbihp
KS5wcm9wZXJ0eSgpLmlkID09IHRyYW5zaXRpb25MaXN0LT5hbmltYXRpb24oaikucHJvcGVydHko
KS5pZCkgewotICAgICAgICAgICAgICAgIC8vIHRvc3MgaQotICAgICAgICAgICAgICAgIHRyYW5z
aXRpb25MaXN0LT5yZW1vdmUoaSk7Ci0gICAgICAgICAgICAgICAgaiA9IGk7Ci0gICAgICAgICAg
ICB9Ci0gICAgICAgIH0KLSAgICB9CiB9CiAKIEFuaW1hdGlvbkxpc3QmIFJlbmRlclN0eWxlOjpl
bnN1cmVBbmltYXRpb25zKCkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xh
eW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBkNzg2NzkxYTFhYjgyMjYxZDM4NzlhNjQ0OTQ2NDZl
NGVjMTFjZjMxLi44MWQzMmE5YjE2NGFkMzcyN2YwODM2NzYyYWZjOTRmNTNkYzQ5ZTE0IDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMTcgQEAKKzIwMjItMDEtMDUgIEFudG9pbmUgUXVpbnQgIDxncmFvdXRzQHdl
YmtpdC5vcmc+CisKKyAgICAgICAgY29tcHV0ZWQgc3R5bGUgZm9yIHRyYW5zaXRpb24gbG9uZ2hh
bmQgcHJvcGVydGllcyBpcyB3cm9uZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjM0ODgwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgVGhpcyB0ZXN0IHdhcyBpbmNvcnJlY3Qgc2luY2UgaXQgYXNzdW1lZCB0
aGF0IGZpbGxlZC1pbiB2YWx1ZXMgaW4gYW5pbWF0aW9uIGxpc3RzCisgICAgICAgIHdvdWxkIGJl
IHBhcnQgb2YgdGhlIGNvbXB1dGVkIHN0eWxlLiBXZSB1cGRhdGUgdGhlIGV4cGVjdGF0aW9uIGFu
ZCBhZGQgb3RoZXIgcHJvcGVydGllcworICAgICAgICB0aGF0IHdlcmVuJ3QgYmVpbmcgdGVzdGVk
LgorCisgICAgICAgICogYW5pbWF0aW9ucy9maWxsLXVuc2V0LXByb3BlcnRpZXMtZXhwZWN0ZWQu
dHh0OgorICAgICAgICAqIGFuaW1hdGlvbnMvZmlsbC11bnNldC1wcm9wZXJ0aWVzLmh0bWw6CisK
IDIwMjItMDEtMDUgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAg
IFdlYlBhZ2VQcm94eTo6cmVxdWVzdFVzZXJNZWRpYVBlcm1pc3Npb25Gb3JTcGVlY2hSZWNvZ25p
dGlvbiBzaG91bGQgcmV0dXJuIGVhcmx5IGluIGNhc2Ugb2Ygbm8gY2FwdHVyZSBkZXZpY2VzCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZwppbmRleCBiMzI5ZmY1NjY0MDE0ZmE3ZTU0NmJlODAy
ZTMwMjgxMGYzMjE2OWQ5Li41MDY1NWVjMDBmYmNiN2EyOTYyN2FlMzBmNjFmNTlhYTQ4ZGJmN2Yz
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCisrKyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOSBAQAorMjAyMi0w
MS0wNSAgQW50b2luZSBRdWludCAgPGdyYW91dHNAd2Via2l0Lm9yZz4KKworICAgICAgICBjb21w
dXRlZCBzdHlsZSBmb3IgdHJhbnNpdGlvbiBsb25naGFuZCBwcm9wZXJ0aWVzIGlzIHdyb25nCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzQ4ODAKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBNYXJrIFdQVCBw
cm9ncmVzc2lvbnMuCisKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy10cmFu
c2l0aW9ucy9wYXJzaW5nL3RyYW5zaXRpb24tZGVsYXktY29tcHV0ZWQtZXhwZWN0ZWQudHh0Ogor
ICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXRyYW5zaXRpb25zL3BhcnNpbmcv
dHJhbnNpdGlvbi1kdXJhdGlvbi1jb21wdXRlZC1leHBlY3RlZC50eHQ6CisgICAgICAgICogd2Vi
LXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtdHJhbnNpdGlvbnMvcGFyc2luZy90cmFuc2l0aW9uLXBy
b3BlcnR5LWNvbXB1dGVkLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVz
dHMvY3NzL2Nzcy10cmFuc2l0aW9ucy9wYXJzaW5nL3RyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9u
LWNvbXB1dGVkLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvY3Nz
L2Nzcy10cmFuc2l0aW9ucy90cmFuc2l0aW9uLWRlbGF5LTAwMS1leHBlY3RlZC50eHQ6CisgICAg
ICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtdHJhbnNpdGlvbnMvdHJhbnNpdGlvbi1k
dXJhdGlvbi0wMDEtZXhwZWN0ZWQudHh0OgorCiAyMDIyLTAxLTA1ICBNYXJ0aW4gUm9iaW5zb24g
IDxtcm9iaW5zb25Ad2Via2l0Lm9yZz4KIAogICAgICAgICBDU1MgYHRyYW5zZm9ybWAgcHJvcGVy
dHkgIHNob3VsZCB0YWtlIGludG8gYWNjb3VudCB0cmFuc2Zvcm0gcmVmZXJlbmNlIGJveApkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvYW5pbWF0aW9ucy9maWxsLXVuc2V0LXByb3BlcnRpZXMtZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvYW5pbWF0aW9ucy9maWxsLXVuc2V0LXByb3BlcnRpZXMt
ZXhwZWN0ZWQudHh0CmluZGV4IGMzZGZmYTVlMzIzNDcwOGQxN2VmNTJlYjFkOWQ4MGY3ZDZkMzc3
ODkuLmM3NmU2ZjM5YTliMjMxOWFhNmUwNGIyNDk4MzM2MWI2ZDYzZTM5OTMgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2FuaW1hdGlvbnMvZmlsbC11bnNldC1wcm9wZXJ0aWVzLWV4cGVjdGVkLnR4
dAorKysgYi9MYXlvdXRUZXN0cy9hbmltYXRpb25zL2ZpbGwtdW5zZXQtcHJvcGVydGllcy1leHBl
Y3RlZC50eHQKQEAgLTEsOSArMSwxMyBAQAotVGVzdGluZyB3ZWJraXRUcmFuc2l0aW9uRHVyYXRp
b246IFBBU1MKLVRlc3Rpbmcgd2Via2l0VHJhbnNpdGlvblByb3BlcnR5OiBQQVNTCi1UZXN0aW5n
IHdlYmtpdFRyYW5zaXRpb25EZWxheTogUEFTUwotVGVzdGluZyB3ZWJraXRUcmFuc2l0aW9uVGlt
aW5nRnVuY3Rpb246IFBBU1MKLVRlc3Rpbmcgd2Via2l0QW5pbWF0aW9uTmFtZTogUEFTUwotVGVz
dGluZyB3ZWJraXRBbmltYXRpb25EdXJhdGlvbjogUEFTUwotVGVzdGluZyB3ZWJraXRBbmltYXRp
b25EZWxheTogUEFTUwotVGVzdGluZyB3ZWJraXRBbmltYXRpb25GaWxsTW9kZTogUEFTUworVGVz
dGluZyB0cmFuc2l0aW9uRHVyYXRpb246IFBBU1MKK1Rlc3RpbmcgdHJhbnNpdGlvblByb3BlcnR5
OiBQQVNTCitUZXN0aW5nIHRyYW5zaXRpb25EZWxheTogUEFTUworVGVzdGluZyB0cmFuc2l0aW9u
VGltaW5nRnVuY3Rpb246IFBBU1MKK1Rlc3RpbmcgYW5pbWF0aW9uTmFtZTogUEFTUworVGVzdGlu
ZyBhbmltYXRpb25EdXJhdGlvbjogUEFTUworVGVzdGluZyBhbmltYXRpb25EZWxheTogUEFTUwor
VGVzdGluZyBhbmltYXRpb25EaXJlY3Rpb246IFBBU1MKK1Rlc3RpbmcgYW5pbWF0aW9uRmlsbE1v
ZGU6IFBBU1MKK1Rlc3RpbmcgYW5pbWF0aW9uUGxheVN0YXRlOiBQQVNTCitUZXN0aW5nIGFuaW1h
dGlvbkl0ZXJhdGlvbkNvdW50OiBQQVNTCitUZXN0aW5nIGFuaW1hdGlvblRpbWluZ0Z1bmN0aW9u
OiBQQVNTCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2FuaW1hdGlvbnMvZmlsbC11bnNldC1w
cm9wZXJ0aWVzLmh0bWwgYi9MYXlvdXRUZXN0cy9hbmltYXRpb25zL2ZpbGwtdW5zZXQtcHJvcGVy
dGllcy5odG1sCmluZGV4IGU1YTI5MGQwZTYwMmZhZGY4YzVhMDdlM2JmZTI5ZDI2YWMwMTZmMDcu
LjkzZTQyYzBkZjkzMTAyZGJjY2VmNWE3Y2E2NzBhMTZkNjFkMjM1YzkgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2FuaW1hdGlvbnMvZmlsbC11bnNldC1wcm9wZXJ0aWVzLmh0bWwKKysrIGIvTGF5
b3V0VGVzdHMvYW5pbWF0aW9ucy9maWxsLXVuc2V0LXByb3BlcnRpZXMuaHRtbApAQCAtNiwzNCAr
Niw0NCBAQAogICAgIGhlaWdodDogNTBweDsKICAgICB3aWR0aDogMjAwcHg7CiAgICAgYmFja2dy
b3VuZC1jb2xvcjogYmx1ZTsKLSAgICAtd2Via2l0LXRyYW5zaXRpb24tZHVyYXRpb246IDFzLDJz
OwotICAgIC13ZWJraXQtdHJhbnNpdGlvbi1wcm9wZXJ0eTogb3BhY2l0eSwgbGVmdCwgb3BhY2l0
eSwgdG9wLCB3aWR0aCwgb3BhY2l0eSwgaGVpZ2h0LCBvcGFjaXR5OwotICAgIC13ZWJraXQtdHJh
bnNpdGlvbi1kZWxheTogM3MsNHMsNXM7Ci0gICAgLXdlYmtpdC10cmFuc2l0aW9uLXRpbWluZy1m
dW5jdGlvbjogbGluZWFyOwotICAgIC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6IGEsIGIsIGMsIGQs
IGU7Ci0gICAgLXdlYmtpdC1hbmltYXRpb24tZHVyYXRpb246IDEwcywgMjBzOwotICAgIC13ZWJr
aXQtYW5pbWF0aW9uLWRlbGF5OiAxczsKLSAgICAtd2Via2l0LWFuaW1hdGlvbi1maWxsLW1vZGU6
IGZvcndhcmRzLCBiYWNrd2FyZHM7CisKKyAgICB0cmFuc2l0aW9uLXByb3BlcnR5OiBvcGFjaXR5
LCBsZWZ0LCBvcGFjaXR5LCB0b3AsIHdpZHRoLCBvcGFjaXR5LCBoZWlnaHQsIG9wYWNpdHk7Cisg
ICAgdHJhbnNpdGlvbi1kdXJhdGlvbjogMXMsMnM7CisgICAgdHJhbnNpdGlvbi1kZWxheTogM3Ms
NHMsNXM7CisgICAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjsKKyAgICAKKyAg
ICBhbmltYXRpb24tbmFtZTogYSwgYiwgYywgZCwgZTsKKyAgICBhbmltYXRpb24tZHVyYXRpb246
IDEwcywgMjBzOworICAgIGFuaW1hdGlvbi1kZWxheTogMXM7CisgICAgYW5pbWF0aW9uLWRpcmVj
dGlvbjogbm9ybWFsLCBhbHRlcm5hdGUsIHJldmVyc2UsIGFsdGVybmF0ZS1yZXZlcnNlOworICAg
IGFuaW1hdGlvbi1maWxsLW1vZGU6IGZvcndhcmRzLCBiYWNrd2FyZHM7CisgICAgYW5pbWF0aW9u
LXBsYXktc3RhdGU6IHJ1bm5pbmcsIHBhdXNlZCwgcnVubmluZzsKKyAgICBhbmltYXRpb24taXRl
cmF0aW9uLWNvdW50OiAxLCAyLCAzOworICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGxp
bmVhcjsKIH0KLUAtd2Via2l0LWtleWZyYW1lcyBhIHsgfQotQC13ZWJraXQta2V5ZnJhbWVzIGIg
eyB9Ci1ALXdlYmtpdC1rZXlmcmFtZXMgYyB7IH0KLUAtd2Via2l0LWtleWZyYW1lcyBkIHsgfQot
QC13ZWJraXQta2V5ZnJhbWVzIGUgeyB9CitAa2V5ZnJhbWVzIGEgeyB9CitAa2V5ZnJhbWVzIGIg
eyB9CitAa2V5ZnJhbWVzIGMgeyB9CitAa2V5ZnJhbWVzIGQgeyB9CitAa2V5ZnJhbWVzIGUgeyB9
CiA8L3N0eWxlPgogICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgY2hhcnNldD0idXRm
LTgiPgogICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKICAgICAgICAgdGVzdFJ1bm5lci5kdW1w
QXNUZXh0KCk7CiAgIAogICAgIGNvbnN0IGtFeHBlY3RlZFJlc3VsdHMgPSBbCi0gICAgICB7ICdw
cm9wZXJ0eSc6ICd3ZWJraXRUcmFuc2l0aW9uRHVyYXRpb24nLCAndmFsdWUnOiAnMnMsIDJzLCAx
cywgMXMsIDJzJyB9LAotICAgICAgeyAncHJvcGVydHknOiAnd2Via2l0VHJhbnNpdGlvblByb3Bl
cnR5JywgJ3ZhbHVlJzogJ2xlZnQsIHRvcCwgd2lkdGgsIGhlaWdodCwgb3BhY2l0eScgfSwKLSAg
ICAgIHsgJ3Byb3BlcnR5JzogJ3dlYmtpdFRyYW5zaXRpb25EZWxheScsICAgICd2YWx1ZSc6ICc0
cywgM3MsIDRzLCAzcywgNHMnIH0sCi0gICAgICB7ICdwcm9wZXJ0eSc6ICd3ZWJraXRUcmFuc2l0
aW9uVGltaW5nRnVuY3Rpb24nLCAndmFsdWUnOiAnbGluZWFyLCBsaW5lYXIsIGxpbmVhciwgbGlu
ZWFyLCBsaW5lYXInIH0sCi0gICAgICB7ICdwcm9wZXJ0eSc6ICd3ZWJraXRBbmltYXRpb25OYW1l
JywgICAgICAndmFsdWUnOiAnYSwgYiwgYywgZCwgZScgfSwKLSAgICAgIHsgJ3Byb3BlcnR5Jzog
J3dlYmtpdEFuaW1hdGlvbkR1cmF0aW9uJywgICd2YWx1ZSc6ICcxMHMsIDIwcywgMTBzLCAyMHMs
IDEwcycgfSwKLSAgICAgIHsgJ3Byb3BlcnR5JzogJ3dlYmtpdEFuaW1hdGlvbkRlbGF5JywgICAg
ICd2YWx1ZSc6ICcxcywgMXMsIDFzLCAxcywgMXMnIH0sCi0gICAgICB7ICdwcm9wZXJ0eSc6ICd3
ZWJraXRBbmltYXRpb25GaWxsTW9kZScsICAndmFsdWUnOiAnZm9yd2FyZHMsIGJhY2t3YXJkcywg
Zm9yd2FyZHMsIGJhY2t3YXJkcywgZm9yd2FyZHMnIH0sCisgICAgICB7ICdwcm9wZXJ0eSc6ICd0
cmFuc2l0aW9uRHVyYXRpb24nLCAndmFsdWUnOiAnMXMsIDJzJyB9LAorICAgICAgeyAncHJvcGVy
dHknOiAndHJhbnNpdGlvblByb3BlcnR5JywgJ3ZhbHVlJzogJ29wYWNpdHksIGxlZnQsIG9wYWNp
dHksIHRvcCwgd2lkdGgsIG9wYWNpdHksIGhlaWdodCwgb3BhY2l0eScgfSwKKyAgICAgIHsgJ3By
b3BlcnR5JzogJ3RyYW5zaXRpb25EZWxheScsICAgICd2YWx1ZSc6ICczcywgNHMsIDVzJyB9LAor
ICAgICAgeyAncHJvcGVydHknOiAndHJhbnNpdGlvblRpbWluZ0Z1bmN0aW9uJywgJ3ZhbHVlJzog
J2xpbmVhcicgfSwKKyAgICAgIHsgJ3Byb3BlcnR5JzogJ2FuaW1hdGlvbk5hbWUnLCAgICAgICd2
YWx1ZSc6ICdhLCBiLCBjLCBkLCBlJyB9LAorICAgICAgeyAncHJvcGVydHknOiAnYW5pbWF0aW9u
RHVyYXRpb24nLCAgJ3ZhbHVlJzogJzEwcywgMjBzJyB9LAorICAgICAgeyAncHJvcGVydHknOiAn
YW5pbWF0aW9uRGVsYXknLCAgICAgJ3ZhbHVlJzogJzFzJyB9LAorICAgICAgeyAncHJvcGVydHkn
OiAnYW5pbWF0aW9uRGlyZWN0aW9uJywgJ3ZhbHVlJzogJ25vcm1hbCwgYWx0ZXJuYXRlLCByZXZl
cnNlLCBhbHRlcm5hdGUtcmV2ZXJzZScgfSwKKyAgICAgIHsgJ3Byb3BlcnR5JzogJ2FuaW1hdGlv
bkZpbGxNb2RlJywgICd2YWx1ZSc6ICdmb3J3YXJkcywgYmFja3dhcmRzJyB9LAorICAgICAgeyAn
cHJvcGVydHknOiAnYW5pbWF0aW9uUGxheVN0YXRlJywgJ3ZhbHVlJzogJ3J1bm5pbmcsIHBhdXNl
ZCwgcnVubmluZycgfSwKKyAgICAgIHsgJ3Byb3BlcnR5JzogJ2FuaW1hdGlvbkl0ZXJhdGlvbkNv
dW50JywgJ3ZhbHVlJzogJzEsIDIsIDMnIH0sCisgICAgICB7ICdwcm9wZXJ0eSc6ICdhbmltYXRp
b25UaW1pbmdGdW5jdGlvbicsICd2YWx1ZSc6ICdsaW5lYXInIH0KICAgICBdOwogICAgIAogICAg
IGZ1bmN0aW9uIHN0YXJ0KCkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy10cmFuc2l0aW9ucy9wYXJzaW5nL3RyYW5zaXRpb24t
ZGVsYXktY29tcHV0ZWQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXRyYW5zaXRpb25zL3BhcnNpbmcvdHJhbnNpdGlvbi1k
ZWxheS1jb21wdXRlZC1leHBlY3RlZC50eHQKaW5kZXggZDJmYTc4NzI3NWRhM2YwOWVlZjA3NDI2
OTlhNTllYmQ1NWE0N2FmYS4uY2JjNTk0ZjQ4YjAxN2RhZjc1NzQ1ZWQ4MTZhMDQ0ODEyMGFlOWNi
YSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9jc3MvY3NzLXRyYW5zaXRpb25zL3BhcnNpbmcvdHJhbnNpdGlvbi1kZWxheS1jb21wdXRlZC1l
eHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9jc3MvY3NzLXRyYW5zaXRpb25zL3BhcnNpbmcvdHJhbnNpdGlvbi1kZWxheS1jb21wdXRl
ZC1leHBlY3RlZC50eHQKQEAgLTEsMyArMSwzIEBACiAKLUZBSUwgUHJvcGVydHkgdHJhbnNpdGlv
bi1kZWxheSB2YWx1ZSAnLTUwMG1zLCBjYWxjKDIgKiAzcyknIGFzc2VydF9lcXVhbHM6IGV4cGVj
dGVkICItMC41cywgNnMiIGJ1dCBnb3QgIjZzIgorUEFTUyBQcm9wZXJ0eSB0cmFuc2l0aW9uLWRl
bGF5IHZhbHVlICctNTAwbXMsIGNhbGMoMiAqIDNzKScKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXRyYW5zaXRpb25zL3Bh
cnNpbmcvdHJhbnNpdGlvbi1kdXJhdGlvbi1jb21wdXRlZC1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtdHJhbnNpdGlvbnMv
cGFyc2luZy90cmFuc2l0aW9uLWR1cmF0aW9uLWNvbXB1dGVkLWV4cGVjdGVkLnR4dAppbmRleCA3
Y2Q1NTg3N2M5ZjlkZjY3ZjY3ZTA5ODRmMmQ5NmU0ZDVhNTJkZDA2Li4xMTExYTc4ZjFkYmZjNjBi
ZDg1ZTE0OTRmMjZjZjk1MTFhZTM3Mzg4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtdHJhbnNpdGlvbnMvcGFyc2luZy90cmFu
c2l0aW9uLWR1cmF0aW9uLWNvbXB1dGVkLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtdHJhbnNpdGlvbnMvcGFyc2lu
Zy90cmFuc2l0aW9uLWR1cmF0aW9uLWNvbXB1dGVkLWV4cGVjdGVkLnR4dApAQCAtMSw1ICsxLDUg
QEAKIAogUEFTUyBQcm9wZXJ0eSB0cmFuc2l0aW9uLWR1cmF0aW9uIHZhbHVlICc1MDBtcycKIFBB
U1MgUHJvcGVydHkgdHJhbnNpdGlvbi1kdXJhdGlvbiB2YWx1ZSAnY2FsYygyICogM3MpJwotRkFJ
TCBQcm9wZXJ0eSB0cmFuc2l0aW9uLWR1cmF0aW9uIHZhbHVlICcyMHMsIDEwcycgYXNzZXJ0X2Vx
dWFsczogZXhwZWN0ZWQgIjIwcywgMTBzIiBidXQgZ290ICIxMHMiCitQQVNTIFByb3BlcnR5IHRy
YW5zaXRpb24tZHVyYXRpb24gdmFsdWUgJzIwcywgMTBzJwogCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtdHJhbnNpdGlvbnMv
cGFyc2luZy90cmFuc2l0aW9uLXByb3BlcnR5LWNvbXB1dGVkLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy10cmFuc2l0aW9u
cy9wYXJzaW5nL3RyYW5zaXRpb24tcHJvcGVydHktY29tcHV0ZWQtZXhwZWN0ZWQudHh0CmluZGV4
IDYyODFkZjE0NjkzYjRiODc2MmI3MzU2N2E5YTViMDNiZDAxNWQxMTIuLjBiZTk0NDc3ZjRhYzZk
NDYxZGVhYWQ1MDc1NWM3M2EwOTRmZWE4NGQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy10cmFuc2l0aW9ucy9wYXJzaW5nL3Ry
YW5zaXRpb24tcHJvcGVydHktY29tcHV0ZWQtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy10cmFuc2l0aW9ucy9wYXJz
aW5nL3RyYW5zaXRpb24tcHJvcGVydHktY29tcHV0ZWQtZXhwZWN0ZWQudHh0CkBAIC0xLDQgKzEs
NCBAQAogCiBQQVNTIFByb3BlcnR5IHRyYW5zaXRpb24tcHJvcGVydHkgdmFsdWUgJ2xlZnQsIHRv
cCwgcmlnaHQsIGJvdHRvbScKLUZBSUwgUHJvcGVydHkgdHJhbnNpdGlvbi1wcm9wZXJ0eSB2YWx1
ZSAnb25lLCB0d28sIHRocmVlJyBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAib25lLCB0d28sIHRo
cmVlIiBidXQgZ290ICJ0aHJlZSIKK1BBU1MgUHJvcGVydHkgdHJhbnNpdGlvbi1wcm9wZXJ0eSB2
YWx1ZSAnb25lLCB0d28sIHRocmVlJwogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtdHJhbnNpdGlvbnMvcGFyc2luZy90cmFu
c2l0aW9uLXRpbWluZy1mdW5jdGlvbi1jb21wdXRlZC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtdHJhbnNpdGlvbnMvcGFy
c2luZy90cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbi1jb21wdXRlZC1leHBlY3RlZC50eHQKaW5k
ZXggYzE5NjUyZTdlNzRmM2MwYTZjMWRmZGNkNTE1Mjk1NjMxZWQ3YzRmMS4uMjFhNjEyNDNlYmQ1
Nzc4YWEwMGJlM2MyOWMyZTRmZWIwNzJiY2Y2YSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXRyYW5zaXRpb25zL3BhcnNpbmcv
dHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb24tY29tcHV0ZWQtZXhwZWN0ZWQudHh0CisrKyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy10cmFuc2l0
aW9ucy9wYXJzaW5nL3RyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uLWNvbXB1dGVkLWV4cGVjdGVk
LnR4dApAQCAtMTYsNSArMTYsNSBAQCBQQVNTIFByb3BlcnR5IHRyYW5zaXRpb24tdGltaW5nLWZ1
bmN0aW9uIHZhbHVlICdzdGVwcygyLCBqdW1wLXN0YXJ0KScKIFBBU1MgUHJvcGVydHkgdHJhbnNp
dGlvbi10aW1pbmctZnVuY3Rpb24gdmFsdWUgJ3N0ZXBzKDIsIGp1bXAtZW5kKScKIFBBU1MgUHJv
cGVydHkgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb24gdmFsdWUgJ3N0ZXBzKDIsIGp1bXAtYm90
aCknCiBQQVNTIFByb3BlcnR5IHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uIHZhbHVlICdzdGVw
cygyLCBqdW1wLW5vbmUpJwotRkFJTCBQcm9wZXJ0eSB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlv
biB2YWx1ZSAnbGluZWFyLCBlYXNlLCBsaW5lYXInIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkICJs
aW5lYXIsIGVhc2UsIGxpbmVhciIgYnV0IGdvdCAibGluZWFyIgorUEFTUyBQcm9wZXJ0eSB0cmFu
c2l0aW9uLXRpbWluZy1mdW5jdGlvbiB2YWx1ZSAnbGluZWFyLCBlYXNlLCBsaW5lYXInCiAKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3Nz
L2Nzcy10cmFuc2l0aW9ucy90cmFuc2l0aW9uLWRlbGF5LTAwMS1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtdHJhbnNpdGlv
bnMvdHJhbnNpdGlvbi1kZWxheS0wMDEtZXhwZWN0ZWQudHh0CmluZGV4IGQ4NTljMGFjN2ZkODg4
ZmJkZTAwNGVmMmQ1YTZjNWY1MDRkMDk2YzkuLjEyZGVhOGRlYmU5NWI2ZmNlNjVlY2ZkYTZhODc1
N2ZmYmE0N2IwODggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvY3NzL2Nzcy10cmFuc2l0aW9ucy90cmFuc2l0aW9uLWRlbGF5LTAwMS1leHBl
Y3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9jc3MvY3NzLXRyYW5zaXRpb25zL3RyYW5zaXRpb24tZGVsYXktMDAxLWV4cGVjdGVkLnR4dApA
QCAtMTgsNiArMTgsNiBAQCBQQVNTIHBhcnNlICc5bXMnCiBQQVNTIHBhcnNlICcxbXMnCiBQQVNT
IHBhcnNlICcwbXMnCiBQQVNTIHBhcnNlICctNTAwbXMnCi1GQUlMIHBhcnNlICcxcywgMC4xcywg
MTBtcycgYXNzZXJ0X2VxdWFsczogRXhwZWN0ZWQgY29tcHV0ZWQgdmFsdWUgZXhwZWN0ZWQgIjFz
LCAwLjFzLCAwLjAxcyIgYnV0IGdvdCAiMC4wMXMiCitQQVNTIHBhcnNlICcxcywgMC4xcywgMTBt
cycKIFBBU1MgcGFyc2UgJ2Zvb2JhcicKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXRyYW5zaXRpb25zL3RyYW5zaXRpb24t
ZHVyYXRpb24tMDAxLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy10cmFuc2l0aW9ucy90cmFuc2l0aW9uLWR1cmF0aW9uLTAw
MS1leHBlY3RlZC50eHQKaW5kZXggZDg1OWMwYWM3ZmQ4ODhmYmRlMDA0ZWYyZDVhNmM1ZjUwNGQw
OTZjOS4uMTJkZWE4ZGViZTk1YjZmY2U2NWVjZmRhNmE4NzU3ZmZiYTQ3YjA4OCAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXRy
YW5zaXRpb25zL3RyYW5zaXRpb24tZHVyYXRpb24tMDAxLWV4cGVjdGVkLnR4dAorKysgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtdHJhbnNpdGlv
bnMvdHJhbnNpdGlvbi1kdXJhdGlvbi0wMDEtZXhwZWN0ZWQudHh0CkBAIC0xOCw2ICsxOCw2IEBA
IFBBU1MgcGFyc2UgJzltcycKIFBBU1MgcGFyc2UgJzFtcycKIFBBU1MgcGFyc2UgJzBtcycKIFBB
U1MgcGFyc2UgJy01MDBtcycKLUZBSUwgcGFyc2UgJzFzLCAwLjFzLCAxMG1zJyBhc3NlcnRfZXF1
YWxzOiBFeHBlY3RlZCBjb21wdXRlZCB2YWx1ZSBleHBlY3RlZCAiMXMsIDAuMXMsIDAuMDFzIiBi
dXQgZ290ICIwLjAxcyIKK1BBU1MgcGFyc2UgJzFzLCAwLjFzLCAxMG1zJwogUEFTUyBwYXJzZSAn
Zm9vYmFyJwogCg==
</data>
<flag name="review"
          id="474232"
          type_id="1"
          status="+"
          setter="koivisto"
    />
          </attachment>
      

    </bug>

</bugzilla>