<?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>81862</bug_id>
          
          <creation_ts>2012-03-21 18:37:56 -0700</creation_ts>
          <short_desc>REGRESSION(r111616): broke chromium mac (Requested by eae on #webkit).</short_desc>
          <delta_ts>2012-03-21 18:44:14 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>81437</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="WebKit Review Bot">webkit.review.bot</reporter>
          <assigned_to name="WebKit Review Bot">webkit.review.bot</assigned_to>
          <cc>danakj</cc>
    
    <cc>eae</cc>
    
    <cc>enne</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>584878</commentid>
    <comment_count>0</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-03-21 18:37:56 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/111616 broke the build:
broke chromium mac (Requested by eae on #webkit).

This is an automatic bug report generated by the sheriff-bot. If this bug
report was created because of a flaky test, please file a bug for the flaky
test (if we don&apos;t already have one on file) and dup this bug against that bug
so that we can track how often these flaky tests case pain.

&quot;Only you can prevent forest fires.&quot; -- Smokey the Bear</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>584879</commentid>
    <comment_count>1</comment_count>
      <attachid>133165</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-03-21 18:38:28 -0700</bug_when>
    <thetext>Created attachment 133165
ROLLOUT of r111616

Any committer can land this patch automatically by marking it commit-queue+.  The commit-queue will build and test the patch before landing to ensure that the rollout will be successful.  This process takes approximately 15 minutes.

If you would like to land the rollout faster, you can use the following command:

  webkit-patch land-attachment ATTACHMENT_ID

where ATTACHMENT_ID is the ID of this attachment.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>584880</commentid>
    <comment_count>2</comment_count>
    <who name="Emil A Eklund">eae</who>
    <bug_when>2012-03-21 18:40:29 -0700</bug_when>
    <thetext>
/Users/chrome-bot/Desktop/WebKit-BuildSlave/chromium-mac-release/build/Source/WebKit/chromium/tests/CCAnimationTestCommon.cpp:65:87: error: reference to &apos;Fixed&apos; is ambiguous
    operations.operations().append(TranslateTransformOperation::create(Length(deltaX, Fixed), Length(deltaY, Fixed), TransformOperation::TRANSLATE_X));
                                                                                      ^
/Developer/SDKs/MacOSX10.5.sdk/System/Library/Frameworks/CoreServices.framework/Headers/../Frameworks/CarbonCore.framework/Headers/MacTypes.h:163:41: note: candidate found by name lookup is &apos;Fixed&apos;
typedef SInt32                          Fixed;
                                        ^
../../WebCore/platform/Length.h:36:44: note: candidate found by name lookup is &apos;WebCore::LengthType::Fixed&apos;
enum LengthType { Auto, Relative, Percent, Fixed, Intrinsic, MinIntrinsic, Calculated, Undefined };
                                           ^
1 error generated.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>584881</commentid>
    <comment_count>3</comment_count>
      <attachid>133165</attachid>
    <who name="Emil A Eklund">eae</who>
    <bug_when>2012-03-21 18:44:11 -0700</bug_when>
    <thetext>Comment on attachment 133165
ROLLOUT of r111616

Clearing flags on attachment: 133165

Committed r111638: &lt;http://trac.webkit.org/changeset/111638&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>584882</commentid>
    <comment_count>4</comment_count>
    <who name="Emil A Eklund">eae</who>
    <bug_when>2012-03-21 18:44:14 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>133165</attachid>
            <date>2012-03-21 18:38:28 -0700</date>
            <delta_ts>2012-03-21 18:44:10 -0700</delta_ts>
            <desc>ROLLOUT of r111616</desc>
            <filename>bug-81862-20120322014108.patch</filename>
            <type>text/plain</type>
            <size>59075</size>
            <attacher name="WebKit Review Bot">webkit.review.bot</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTExNjM3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDkxOTdiNDYxZTk2MGNj
ZDBmNDFiNzlhYjhkYWM3NzJkYzUzZGI5NC4uYTQyNTRiNzc2YjE3N2U3ZTc1NjQwYmI4MmIyZDk2
NGY2Mjk4MTIxMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUzIEBACisyMDEyLTAzLTIxICBTaGVy
aWZmIEJvdCAgPHdlYmtpdC5yZXZpZXcuYm90QGdtYWlsLmNvbT4KKworICAgICAgICBVbnJldmll
d2VkLCByb2xsaW5nIG91dCByMTExNjE2LgorICAgICAgICBodHRwOi8vdHJhYy53ZWJraXQub3Jn
L2NoYW5nZXNldC8xMTE2MTYKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTgxODYyCisKKyAgICAgICAgYnJva2UgY2hyb21pdW0gbWFjIChSZXF1ZXN0ZWQg
YnkgZWFlIG9uICN3ZWJraXQpLgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21p
dW0vY2MvQ0NMYXllckltcGwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q0NMYXllckltcGw6OmFw
cGVuZFF1YWRzKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xh
eWVySW1wbC5oOgorICAgICAgICAoQ0NMYXllckltcGwpOgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJUcmVlSG9zdEltcGwuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6Q0NMYXllclRyZWVIb3N0SW1wbDo6Y2FsY3VsYXRlUmVuZGVyUGFzc2VzKToKKyAgICAg
ICAgKFdlYkNvcmU6OkNDTGF5ZXJUcmVlSG9zdEltcGw6OmRyYXdMYXllcnMpOgorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJUcmVlSG9zdEltcGwuaDoKKyAg
ICAgICAgKENDTGF5ZXJUcmVlSG9zdEltcGwpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L2Nocm9taXVtL2NjL0NDUXVhZEN1bGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDQ1F1YWRD
dWxsZXI6OmFwcGVuZCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2Mv
Q0NRdWFkQ3VsbGVyLmg6CisgICAgICAgIChDQ1F1YWRDdWxsZXIpOgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDUmVuZGVyUGFzcy5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpDQ1JlbmRlclBhc3M6OmFwcGVuZFF1YWRzRm9yTGF5ZXIpOgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDUmVuZGVyUGFzcy5oOgorICAgICAgICAoQ0NSZW5k
ZXJQYXNzKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1Njcm9s
bGJhckxheWVySW1wbC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDQ1Njcm9sbGJhckxheWVySW1w
bDo6YXBwZW5kUXVhZHMpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2Nj
L0NDU2Nyb2xsYmFyTGF5ZXJJbXBsLmg6CisgICAgICAgIChDQ1Njcm9sbGJhckxheWVySW1wbCk6
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NTaW5nbGVUaHJlYWRQ
cm94eS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDQ1NpbmdsZVRocmVhZFByb3h5Ojpkb0NvbXBv
c2l0ZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NTb2xpZENv
bG9yTGF5ZXJJbXBsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNDU29saWRDb2xvckxheWVySW1w
bDo6YXBwZW5kUXVhZHMpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2Nj
L0NDU29saWRDb2xvckxheWVySW1wbC5oOgorICAgICAgICAoQ0NTb2xpZENvbG9yTGF5ZXJJbXBs
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1RleHR1cmVMYXll
ckltcGwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q0NUZXh0dXJlTGF5ZXJJbXBsOjphcHBlbmRR
dWFkcyk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NUZXh0dXJl
TGF5ZXJJbXBsLmg6CisgICAgICAgIChDQ1RleHR1cmVMYXllckltcGwpOgorICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDVGhyZWFkUHJveHkuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6Q0NUaHJlYWRQcm94eTo6c2NoZWR1bGVkQWN0aW9uRHJhd0FuZFN3YXApOgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDVGlsZWRMYXllckltcGwuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6Q0NUaWxlZExheWVySW1wbDo6YXBwZW5kUXVhZHMpOgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDVGlsZWRMYXllckltcGwuaDoK
KyAgICAgICAgKENDVGlsZWRMYXllckltcGwpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L2Nocm9taXVtL2NjL0NDVmlkZW9MYXllckltcGwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q0NW
aWRlb0xheWVySW1wbDo6YXBwZW5kUXVhZHMpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L2Nocm9taXVtL2NjL0NDVmlkZW9MYXllckltcGwuaDoKKyAgICAgICAgKENDVmlkZW9MYXllcklt
cGwpOgorCiAyMDEyLTAzLTIxICBCZXRoIERha2luICA8YmRha2luQGFwcGxlLmNvbT4KIAogICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODAzMjIKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXggOGNiNGViYzQ4Y2M0OTY1MzI1NTliODk5MzI5ZGM5N2U3
YjQxZjVkNy4uMWQ3YjczMTQ2OTIwOGYxZWIwODZjMDY3ZjBmOThlZWM5ZjQzODQ4MCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMSBAQAorMjAxMi0wMy0yMSAgU2hlcmlm
ZiBCb3QgIDx3ZWJraXQucmV2aWV3LmJvdEBnbWFpbC5jb20+CisKKyAgICAgICAgVW5yZXZpZXdl
ZCwgcm9sbGluZyBvdXQgcjExMTYxNi4KKyAgICAgICAgaHR0cDovL3RyYWMud2Via2l0Lm9yZy9j
aGFuZ2VzZXQvMTExNjE2CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD04MTg2MgorCisgICAgICAgIGJyb2tlIGNocm9taXVtIG1hYyAoUmVxdWVzdGVkIGJ5
IGVhZSBvbiAjd2Via2l0KS4KKworICAgICAgICAqIHRlc3RzL0NDQW5pbWF0aW9uVGVzdENvbW1v
bi5jcHA6CisgICAgICAgICogdGVzdHMvQ0NBbmltYXRpb25UZXN0Q29tbW9uLmg6CisgICAgICAg
IChXZWJLaXRUZXN0cyk6CisgICAgICAgICogdGVzdHMvQ0NMYXllclRyZWVIb3N0SW1wbFRlc3Qu
Y3BwOgorICAgICAgICAoV2ViS2l0OjpURVNUX0YpOgorICAgICAgICAoRGlkRHJhd0NoZWNrTGF5
ZXIpOgorICAgICAgICAoV2ViS2l0OjpEaWREcmF3Q2hlY2tMYXllcjo6RGlkRHJhd0NoZWNrTGF5
ZXIpOgorICAgICAgICAoV2ViS2l0OjpCbGVuZFN0YXRlQ2hlY2tMYXllcjo6YXBwZW5kUXVhZHMp
OgorICAgICAgICAqIHRlc3RzL0NDTGF5ZXJUcmVlSG9zdFRlc3QuY3BwOgorICAgICAgICAoV1RG
OjpNb2NrTGF5ZXJUcmVlSG9zdEltcGw6OmRyYXdMYXllcnMpOgorICAgICAgICAqIHRlc3RzL0ND
UXVhZEN1bGxlclRlc3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6YXBwZW5kUXVhZHMpOgorICAg
ICAgICAqIHRlc3RzL0NDU29saWRDb2xvckxheWVySW1wbFRlc3QuY3BwOgorICAgICAgICAoQ0NM
YXllclRlc3RDb21tb246OlRFU1QpOgorICAgICAgICAqIHRlc3RzL0NDVGlsZWRMYXllckltcGxU
ZXN0LmNwcDoKKyAgICAgICAgKENDTGF5ZXJUZXN0Q29tbW9uOjpURVNUKToKKyAgICAgICAgKEND
TGF5ZXJUZXN0Q29tbW9uOjpnZXRRdWFkcyk6CisgICAgICAgICogdGVzdHMvTW9ja0NDUXVhZEN1
bGxlci5oOgorICAgICAgICAoV2ViQ29yZTo6TW9ja0NDUXVhZEN1bGxlcjo6YXBwZW5kKToKKwog
MjAxMi0wMy0yMSAgRGFuYSBKYW5zZW5zICA8ZGFuYWtqQGNocm9taXVtLm9yZz4KIAogICAgICAg
ICBbY2hyb21pdW1dIEVhcmx5IG91dCBpbiBhIG5ldyBwcmVwYXJlVG9EcmF3KCkgc3RlcCBpZiBj
aGVja2VyYm9hcmRpbmcgYW4gYWNjZWxlcmF0ZWQgYW5pbWF0aW9uIGluIG9yZGVyIHRvIHNraXAg
dGhlIGZyYW1lCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
aHJvbWl1bS9jYy9DQ0xheWVySW1wbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jaHJvbWl1bS9jYy9DQ0xheWVySW1wbC5jcHAKaW5kZXggMmFmYjlkOGZmNzQxZjkzMzU5
NTY2YTE2OWZkNDM3Mjk3MDJhNzk2OS4uNjlmMDYxZjAwZGQ0YzJkNjhjZjU2ODc3NjU5Y2I4YTM3
YzU3MWI2NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hy
b21pdW0vY2MvQ0NMYXllckltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJJbXBsLmNwcApAQCAtMTM2LDcgKzEzNiw3IEBAIFBh
c3NPd25QdHI8Q0NTaGFyZWRRdWFkU3RhdGU+IENDTGF5ZXJJbXBsOjpjcmVhdGVTaGFyZWRRdWFk
U3RhdGUoKSBjb25zdAogICAgIHJldHVybiBDQ1NoYXJlZFF1YWRTdGF0ZTo6Y3JlYXRlKHF1YWRU
cmFuc2Zvcm0oKSwgZHJhd1RyYW5zZm9ybSgpLCB2aXNpYmxlTGF5ZXJSZWN0KCksIGxheWVyQ2xp
cFJlY3QsIGRyYXdPcGFjaXR5KCksIG9wYXF1ZSgpKTsKIH0KIAotdm9pZCBDQ0xheWVySW1wbDo6
YXBwZW5kUXVhZHMoQ0NRdWFkQ3VsbGVyJiBxdWFkTGlzdCwgY29uc3QgQ0NTaGFyZWRRdWFkU3Rh
dGUqIHNoYXJlZFF1YWRTdGF0ZSwgYm9vbCYpCit2b2lkIENDTGF5ZXJJbXBsOjphcHBlbmRRdWFk
cyhDQ1F1YWRDdWxsZXImIHF1YWRMaXN0LCBjb25zdCBDQ1NoYXJlZFF1YWRTdGF0ZSogc2hhcmVk
UXVhZFN0YXRlKQogewogICAgIGFwcGVuZEd1dHRlclF1YWRzKHF1YWRMaXN0LCBzaGFyZWRRdWFk
U3RhdGUpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2hyb21pdW0vY2MvQ0NMYXllckltcGwuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJJbXBsLmgKaW5kZXggNzRhMDM5ZWZiMGU0M2E5MGRhNzI2
MTUyMWYwYTAzODM3NWM5MWZjOC4uYmVlOWYxYmI1Y2YwMTU1YmQwN2Q4ZDM4ZDAwOTAxZDAzNzUy
NjM3YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21p
dW0vY2MvQ0NMYXllckltcGwuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jaHJvbWl1bS9jYy9DQ0xheWVySW1wbC5oCkBAIC04NCw3ICs4NCw3IEBAIHB1YmxpYzoKIAog
ICAgIFBhc3NPd25QdHI8Q0NTaGFyZWRRdWFkU3RhdGU+IGNyZWF0ZVNoYXJlZFF1YWRTdGF0ZSgp
IGNvbnN0OwogICAgIHZpcnR1YWwgdm9pZCB3aWxsRHJhdyhMYXllclJlbmRlcmVyQ2hyb21pdW0q
KSB7IH0KLSAgICB2aXJ0dWFsIHZvaWQgYXBwZW5kUXVhZHMoQ0NRdWFkQ3VsbGVyJiwgY29uc3Qg
Q0NTaGFyZWRRdWFkU3RhdGUqLCBib29sJiB1c2VkQ2hlY2tlcmJvYXJkKTsKKyAgICB2aXJ0dWFs
IHZvaWQgYXBwZW5kUXVhZHMoQ0NRdWFkQ3VsbGVyJiwgY29uc3QgQ0NTaGFyZWRRdWFkU3RhdGUq
KTsKICAgICB2aXJ0dWFsIHZvaWQgZGlkRHJhdygpIHsgfQogICAgIHZvaWQgYXBwZW5kRGVidWdC
b3JkZXJRdWFkKENDUXVhZEN1bGxlciYsIGNvbnN0IENDU2hhcmVkUXVhZFN0YXRlKikgY29uc3Q7
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVt
L2NjL0NDTGF5ZXJUcmVlSG9zdEltcGwuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllclRyZWVIb3N0SW1wbC5jcHAKaW5kZXggNDQzYTFmZmFh
NzdiYTBlZTUyMDI5ZGYwZTNhYjE0OTY3ZjRjNTJkYi4uMGFiZmFlMTg4ZGI5ZmUyM2U3ZTMzMzU1
NjRmMzAzMmViNTk1NjlhZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllclRyZWVIb3N0SW1wbC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllclRyZWVIb3N0SW1wbC5j
cHAKQEAgLTIyMCwxMCArMjIwLDkgQEAgc3RhdGljIEZsb2F0UmVjdCBkYW1hZ2VJblN1cmZhY2VT
cGFjZShDQ0xheWVySW1wbCogcmVuZGVyU3VyZmFjZUxheWVyLCBjb25zdCBGbG8KICAgICByZXR1
cm4gc3VyZmFjZURhbWFnZVJlY3Q7CiB9CiAKLWJvb2wgQ0NMYXllclRyZWVIb3N0SW1wbDo6Y2Fs
Y3VsYXRlUmVuZGVyUGFzc2VzKENDUmVuZGVyUGFzc0xpc3QmIHBhc3NlcywgQ0NMYXllckxpc3Qm
IHJlbmRlclN1cmZhY2VMYXllckxpc3QpCit2b2lkIENDTGF5ZXJUcmVlSG9zdEltcGw6OmNhbGN1
bGF0ZVJlbmRlclBhc3NlcyhDQ1JlbmRlclBhc3NMaXN0JiBwYXNzZXMsIENDTGF5ZXJMaXN0JiBy
ZW5kZXJTdXJmYWNlTGF5ZXJMaXN0KQogewotICAgIEFTU0VSVChwYXNzZXMuaXNFbXB0eSgpKTsK
LSAgICBBU1NFUlQocmVuZGVyU3VyZmFjZUxheWVyTGlzdC5pc0VtcHR5KCkpOworICAgIFRSQUNF
X0VWRU5UMSgid2Via2l0IiwgIkNDTGF5ZXJUcmVlSG9zdEltcGw6OmNhbGN1bGF0ZVJlbmRlclBh
c3NlcyIsICJyZW5kZXJTdXJmYWNlTGF5ZXJMaXN0LnNpemUoKSIsIHN0YXRpY19jYXN0PGxvbmcg
bG9uZyB1bnNpZ25lZD4ocmVuZGVyU3VyZmFjZUxheWVyTGlzdC5zaXplKCkpKTsKIAogICAgIHJl
bmRlclN1cmZhY2VMYXllckxpc3QuYXBwZW5kKHJvb3RMYXllcigpKTsKIApAQCAtMjQwLDggKzIz
OSw2IEBAIGJvb2wgQ0NMYXllclRyZWVIb3N0SW1wbDo6Y2FsY3VsYXRlUmVuZGVyUGFzc2VzKEND
UmVuZGVyUGFzc0xpc3QmIHBhc3NlcywgQ0NMYXllCiAgICAgICAgIENDTGF5ZXJUcmVlSG9zdENv
bW1vbjo6Y2FsY3VsYXRlRHJhd1RyYW5zZm9ybXNBbmRWaXNpYmlsaXR5KHJvb3RMYXllcigpLCBy
b290TGF5ZXIoKSwgaWRlbnRpdHlNYXRyaXgsIGlkZW50aXR5TWF0cml4LCByZW5kZXJTdXJmYWNl
TGF5ZXJMaXN0LCByb290TGF5ZXIoKS0+cmVuZGVyU3VyZmFjZSgpLT5sYXllckxpc3QoKSwgJm1f
bGF5ZXJTb3J0ZXIsIGxheWVyUmVuZGVyZXJDYXBhYmlsaXRpZXMoKS5tYXhUZXh0dXJlU2l6ZSk7
CiAgICAgfQogCi0gICAgVFJBQ0VfRVZFTlQxKCJ3ZWJraXQiLCAiQ0NMYXllclRyZWVIb3N0SW1w
bDo6Y2FsY3VsYXRlUmVuZGVyUGFzc2VzIiwgInJlbmRlclN1cmZhY2VMYXllckxpc3Quc2l6ZSgp
Iiwgc3RhdGljX2Nhc3Q8bG9uZyBsb25nIHVuc2lnbmVkPihyZW5kZXJTdXJmYWNlTGF5ZXJMaXN0
LnNpemUoKSkpOwotCiAgICAgaWYgKGxheWVyUmVuZGVyZXJDYXBhYmlsaXRpZXMoKS51c2luZ1Bh
cnRpYWxTd2FwKQogICAgICAgICB0cmFja0RhbWFnZUZvckFsbFN1cmZhY2VzKHJvb3RMYXllcigp
LCByZW5kZXJTdXJmYWNlTGF5ZXJMaXN0KTsKICAgICBtX3Jvb3REYW1hZ2VSZWN0ID0gcm9vdExh
eWVyKCktPnJlbmRlclN1cmZhY2UoKS0+ZGFtYWdlVHJhY2tlcigpLT5jdXJyZW50RGFtYWdlUmVj
dCgpOwpAQCAtMjc1LDkgKzI3Miw2IEBAIGJvb2wgQ0NMYXllclRyZWVIb3N0SW1wbDo6Y2FsY3Vs
YXRlUmVuZGVyUGFzc2VzKENDUmVuZGVyUGFzc0xpc3QmIHBhc3NlcywgQ0NMYXllCiAgICAgLy8g
QWRkIHF1YWRzIHRvIHRoZSBSZW5kZXIgcGFzc2VzIGluIEZyb250VG9CYWNrIG9yZGVyIHRvIGFs
bG93IGZvciB0ZXN0aW5nIG9jY2x1c2lvbiBhbmQgcGVyZm9ybWluZyBjdWxsaW5nIGR1cmluZyB0
aGUgdHJlZSB3YWxrLgogICAgIHR5cGVkZWYgQ0NMYXllckl0ZXJhdG9yPENDTGF5ZXJJbXBsLCBW
ZWN0b3I8Q0NMYXllckltcGwqPiwgQ0NSZW5kZXJTdXJmYWNlLCBDQ0xheWVySXRlcmF0b3JBY3Rp
b25zOjpGcm9udFRvQmFjaz4gQ0NMYXllckl0ZXJhdG9yVHlwZTsKIAotICAgIC8vIElmIHdlIGFy
ZSB1bmFibGUgdG8gZHJhdyBhbiBhbmltYXRpb24gb24gc29tZSBsYXllciwgdGhlbiB3ZSBhYm9y
dCB0aGUgZW50aXJlIGZyYW1lLgotICAgIGJvb2wgZHJhd0ZyYW1lID0gdHJ1ZTsKLQogICAgIEND
TGF5ZXJJdGVyYXRvclR5cGUgZW5kID0gQ0NMYXllckl0ZXJhdG9yVHlwZTo6ZW5kKCZyZW5kZXJT
dXJmYWNlTGF5ZXJMaXN0KTsKICAgICBmb3IgKENDTGF5ZXJJdGVyYXRvclR5cGUgaXQgPSBDQ0xh
eWVySXRlcmF0b3JUeXBlOjpiZWdpbigmcmVuZGVyU3VyZmFjZUxheWVyTGlzdCk7IGl0ICE9IGVu
ZDsgKytpdCkgewogICAgICAgICBDQ1JlbmRlclN1cmZhY2UqIHJlbmRlclN1cmZhY2UgPSBpdC50
YXJnZXRSZW5kZXJTdXJmYWNlTGF5ZXIoKS0+cmVuZGVyU3VyZmFjZSgpOwpAQCAtMzAxLDIzICsy
OTUsMTEgQEAgYm9vbCBDQ0xheWVyVHJlZUhvc3RJbXBsOjpjYWxjdWxhdGVSZW5kZXJQYXNzZXMo
Q0NSZW5kZXJQYXNzTGlzdCYgcGFzc2VzLCBDQ0xheWUKICAgICAgICAgfQogCiAgICAgICAgIGl0
LT53aWxsRHJhdyhtX2xheWVyUmVuZGVyZXIuZ2V0KCkpOwotCi0gICAgICAgIGJvb2wgdXNlZENo
ZWNrZXJib2FyZCA9IGZhbHNlOwotICAgICAgICBwYXNzLT5hcHBlbmRRdWFkc0ZvckxheWVyKCpp
dCwgJm9jY2x1c2lvblRyYWNrZXIsIHVzZWRDaGVja2VyYm9hcmQpOwotICAgICAgICBpZiAodXNl
ZENoZWNrZXJib2FyZCkgewotICAgICAgICAgICAgYm9vbCBsYXllckhhc0FuaW1hdGluZ1RyYW5z
Zm9ybSA9IGl0LT5zY3JlZW5TcGFjZVRyYW5zZm9ybUlzQW5pbWF0aW5nKCkgfHwgaXQtPmRyYXdU
cmFuc2Zvcm1Jc0FuaW1hdGluZygpOwotICAgICAgICAgICAgaWYgKGxheWVySGFzQW5pbWF0aW5n
VHJhbnNmb3JtKSB7Ci0gICAgICAgICAgICAgICAgZHJhd0ZyYW1lID0gZmFsc2U7Ci0gICAgICAg
ICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLQorICAgICAgICBwYXNz
LT5hcHBlbmRRdWFkc0ZvckxheWVyKCppdCwgJm9jY2x1c2lvblRyYWNrZXIpOwogICAgICAgICBv
Y2NsdXNpb25UcmFja2VyLm1hcmtPY2NsdWRlZEJlaGluZExheWVyKCppdCk7CiAgICAgfQogCi0g
ICAgaWYgKGRyYXdGcmFtZSkKLSAgICAgICAgb2NjbHVzaW9uVHJhY2tlci5vdmVyZHJhd01ldHJp
Y3MoKS5yZWNvcmRNZXRyaWNzKHRoaXMpOwotICAgIHJldHVybiBkcmF3RnJhbWU7CisgICAgb2Nj
bHVzaW9uVHJhY2tlci5vdmVyZHJhd01ldHJpY3MoKS5yZWNvcmRNZXRyaWNzKHRoaXMpOwogfQog
CiB2b2lkIENDTGF5ZXJUcmVlSG9zdEltcGw6OmFuaW1hdGVMYXllcnNSZWN1cnNpdmUoQ0NMYXll
ckltcGwqIGN1cnJlbnQsIGRvdWJsZSBtb25vdG9uaWNUaW1lLCBkb3VibGUgd2FsbENsb2NrVGlt
ZSwgQ0NBbmltYXRpb25FdmVudHNWZWN0b3IqIGV2ZW50cywgYm9vbCYgZGlkQW5pbWF0ZSwgYm9v
bCYgbmVlZHNBbmltYXRlTGF5ZXJzKQpAQCAtMzU3LDM5ICszMzksMjYgQEAgSW50U2l6ZSBDQ0xh
eWVyVHJlZUhvc3RJbXBsOjpjb250ZW50U2l6ZSgpIGNvbnN0CiAgICAgcmV0dXJuIG1fc2Nyb2xs
TGF5ZXJJbXBsLT5jaGlsZHJlbigpWzBdLT5jb250ZW50Qm91bmRzKCk7CiB9CiAKLWJvb2wgQ0NM
YXllclRyZWVIb3N0SW1wbDo6cHJlcGFyZVRvRHJhdyhGcmFtZURhdGEmIGZyYW1lKQordm9pZCBD
Q0xheWVyVHJlZUhvc3RJbXBsOjpkcmF3TGF5ZXJzKCkKIHsKLSAgICBUUkFDRV9FVkVOVCgiQ0NM
YXllclRyZWVIb3N0SW1wbDo6cHJlcGFyZVRvRHJhdyIsIHRoaXMsIDApOwotCi0gICAgZnJhbWUu
cmVuZGVyUGFzc2VzLmNsZWFyKCk7Ci0gICAgZnJhbWUucmVuZGVyU3VyZmFjZUxheWVyTGlzdC5j
bGVhcigpOworICAgIFRSQUNFX0VWRU5UKCJDQ0xheWVyVHJlZUhvc3RJbXBsOjpkcmF3TGF5ZXJz
IiwgdGhpcywgMCk7CisgICAgQVNTRVJUKG1fbGF5ZXJSZW5kZXJlcik7CiAKICAgICBpZiAoIXJv
b3RMYXllcigpKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICBpZiAoIWNhbGN1bGF0ZVJl
bmRlclBhc3NlcyhmcmFtZS5yZW5kZXJQYXNzZXMsIGZyYW1lLnJlbmRlclN1cmZhY2VMYXllckxp
c3QpKSB7Ci0gICAgICAgIGZyYW1lLnJlbmRlclBhc3Nlcy5jbGVhcigpOwotICAgICAgICBmcmFt
ZS5yZW5kZXJTdXJmYWNlTGF5ZXJMaXN0LmNsZWFyKCk7Ci0gICAgICAgIHJldHVybiBmYWxzZTsK
LSAgICB9CisgICAgICAgIHJldHVybjsKIAotICAgIC8vIElmIHdlIHJldHVybiB0cnVlLCB0aGVu
IHdlIGV4cGVjdCBkcmF3TGF5ZXJzKCkgdG8gYmUgY2FsbGVkIGJlZm9yZSB0aGlzIGZ1bmN0aW9u
IGlzIGNhbGxlZCBhZ2Fpbi4KLSAgICByZXR1cm4gdHJ1ZTsKLX0KLQotdm9pZCBDQ0xheWVyVHJl
ZUhvc3RJbXBsOjpkcmF3TGF5ZXJzKGNvbnN0IEZyYW1lRGF0YSYgZnJhbWUpCi17Ci0gICAgVFJB
Q0VfRVZFTlQoIkNDTGF5ZXJUcmVlSG9zdEltcGw6OmRyYXdMYXllcnMiLCB0aGlzLCAwKTsKLSAg
ICBBU1NFUlQobV9sYXllclJlbmRlcmVyKTsKKyAgICBDQ1JlbmRlclBhc3NMaXN0IHBhc3NlczsK
KyAgICBDQ0xheWVyTGlzdCByZW5kZXJTdXJmYWNlTGF5ZXJMaXN0OworICAgIGNhbGN1bGF0ZVJl
bmRlclBhc3NlcyhwYXNzZXMsIHJlbmRlclN1cmZhY2VMYXllckxpc3QpOwogCiAgICAgbV9sYXll
clJlbmRlcmVyLT5iZWdpbkRyYXdpbmdGcmFtZSgpOwotICAgIGZvciAoc2l6ZV90IGkgPSAwOyBp
IDwgZnJhbWUucmVuZGVyUGFzc2VzLnNpemUoKTsgKytpKQotICAgICAgICBtX2xheWVyUmVuZGVy
ZXItPmRyYXdSZW5kZXJQYXNzKGZyYW1lLnJlbmRlclBhc3Nlc1tpXS5nZXQoKSk7CisgICAgZm9y
IChzaXplX3QgaSA9IDA7IGkgPCBwYXNzZXMuc2l6ZSgpOyArK2kpCisgICAgICAgIG1fbGF5ZXJS
ZW5kZXJlci0+ZHJhd1JlbmRlclBhc3MocGFzc2VzW2ldLmdldCgpKTsKIAogICAgIHR5cGVkZWYg
Q0NMYXllckl0ZXJhdG9yPENDTGF5ZXJJbXBsLCBWZWN0b3I8Q0NMYXllckltcGwqPiwgQ0NSZW5k
ZXJTdXJmYWNlLCBDQ0xheWVySXRlcmF0b3JBY3Rpb25zOjpCYWNrVG9Gcm9udD4gQ0NMYXllckl0
ZXJhdG9yVHlwZTsKIAotICAgIENDTGF5ZXJJdGVyYXRvclR5cGUgZW5kID0gQ0NMYXllckl0ZXJh
dG9yVHlwZTo6ZW5kKCZmcmFtZS5yZW5kZXJTdXJmYWNlTGF5ZXJMaXN0KTsKLSAgICBmb3IgKEND
TGF5ZXJJdGVyYXRvclR5cGUgaXQgPSBDQ0xheWVySXRlcmF0b3JUeXBlOjpiZWdpbigmZnJhbWUu
cmVuZGVyU3VyZmFjZUxheWVyTGlzdCk7IGl0ICE9IGVuZDsgKytpdCkgeworICAgIENDTGF5ZXJJ
dGVyYXRvclR5cGUgZW5kID0gQ0NMYXllckl0ZXJhdG9yVHlwZTo6ZW5kKCZyZW5kZXJTdXJmYWNl
TGF5ZXJMaXN0KTsKKyAgICBmb3IgKENDTGF5ZXJJdGVyYXRvclR5cGUgaXQgPSBDQ0xheWVySXRl
cmF0b3JUeXBlOjpiZWdpbigmcmVuZGVyU3VyZmFjZUxheWVyTGlzdCk7IGl0ICE9IGVuZDsgKytp
dCkgewogICAgICAgICBpZiAoaXQucmVwcmVzZW50c0l0c2VsZigpICYmICFpdC0+dmlzaWJsZUxh
eWVyUmVjdCgpLmlzRW1wdHkoKSkKICAgICAgICAgICAgIGl0LT5kaWREcmF3KCk7CiAgICAgfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2Mv
Q0NMYXllclRyZWVIb3N0SW1wbC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2hyb21pdW0vY2MvQ0NMYXllclRyZWVIb3N0SW1wbC5oCmluZGV4IGUwYzZlNzNhMzM0MjBkZDQ3
ZDA5NTQyODYyY2I5YTQ4YTBhZDFjYjAuLjMxNDk0NzRjNGI1OGE1YzVkMGVlNzBiNjNhNjExYWUy
ZTgyYzEyYzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2No
cm9taXVtL2NjL0NDTGF5ZXJUcmVlSG9zdEltcGwuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVyVHJlZUhvc3RJbXBsLmgKQEAgLTYwLDgg
KzYwLDYgQEAgcHVibGljOgogLy8gQ0NMYXllclRyZWVIb3N0SW1wbCBvd25zIHRoZSBDQ0xheWVy
SW1wbCB0cmVlIGFzIHdlbGwgYXMgYXNzb2NpYXRlZCByZW5kZXJpbmcgc3RhdGUKIGNsYXNzIEND
TGF5ZXJUcmVlSG9zdEltcGwgOiBwdWJsaWMgQ0NJbnB1dEhhbmRsZXJDbGllbnQsIExheWVyUmVu
ZGVyZXJDaHJvbWl1bUNsaWVudCB7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoQ0NMYXllclRy
ZWVIb3N0SW1wbCk7Ci0gICAgdHlwZWRlZiBWZWN0b3I8Q0NMYXllckltcGwqPiBDQ0xheWVyTGlz
dDsKLQogcHVibGljOgogICAgIHN0YXRpYyBQYXNzT3duUHRyPENDTGF5ZXJUcmVlSG9zdEltcGw+
IGNyZWF0ZShjb25zdCBDQ1NldHRpbmdzJiwgQ0NMYXllclRyZWVIb3N0SW1wbENsaWVudCopOwog
ICAgIHZpcnR1YWwgfkNDTGF5ZXJUcmVlSG9zdEltcGwoKTsKQEAgLTc5LDE3ICs3NywxMSBAQCBw
dWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHNldEFjdGl2ZUdlc3R1cmVBbmltYXRpb24oUGFzc093
blB0cjxDQ0FjdGl2ZUdlc3R1cmVBbmltYXRpb24+KTsKICAgICB2aXJ0dWFsIHZvaWQgc2NoZWR1
bGVBbmltYXRpb24oKTsKIAotICAgIHN0cnVjdCBGcmFtZURhdGEgewotICAgICAgICBDQ1JlbmRl
clBhc3NMaXN0IHJlbmRlclBhc3NlczsKLSAgICAgICAgQ0NMYXllckxpc3QgcmVuZGVyU3VyZmFj
ZUxheWVyTGlzdDsKLSAgICB9OwotCiAgICAgLy8gVmlydHVhbCBmb3IgdGVzdGluZy4KICAgICB2
aXJ0dWFsIHZvaWQgYmVnaW5Db21taXQoKTsKICAgICB2aXJ0dWFsIHZvaWQgY29tbWl0Q29tcGxl
dGUoKTsKICAgICB2aXJ0dWFsIHZvaWQgYW5pbWF0ZShkb3VibGUgbW9ub3RvbmljVGltZSwgZG91
YmxlIHdhbGxDbG9ja1RpbWUpOwotICAgIHZpcnR1YWwgYm9vbCBwcmVwYXJlVG9EcmF3KEZyYW1l
RGF0YSYpOwotICAgIHZpcnR1YWwgdm9pZCBkcmF3TGF5ZXJzKGNvbnN0IEZyYW1lRGF0YSYpOwor
ICAgIHZpcnR1YWwgdm9pZCBkcmF3TGF5ZXJzKCk7CiAKICAgICAvLyBMYXllclJlbmRlcmVyQ2hy
b21pdW1DbGllbnQgaW1wbGVtZW50YXRpb24KICAgICB2aXJ0dWFsIGNvbnN0IEludFNpemUmIHZp
ZXdwb3J0U2l6ZSgpIGNvbnN0IHsgcmV0dXJuIG1fdmlld3BvcnRTaXplOyB9CkBAIC0xNTksNiAr
MTUxLDggQEAgcHJvdGVjdGVkOgogICAgIGludCBtX2ZyYW1lTnVtYmVyOwogCiBwcml2YXRlOgor
ICAgIHR5cGVkZWYgVmVjdG9yPENDTGF5ZXJJbXBsKj4gQ0NMYXllckxpc3Q7CisKICAgICB2b2lk
IGNvbXB1dGVEb3VibGVUYXBab29tRGVsdGFzKENDU2Nyb2xsQW5kU2NhbGVTZXQqIHNjcm9sbElu
Zm8pOwogICAgIHZvaWQgY29tcHV0ZVBpbmNoWm9vbURlbHRhcyhDQ1Njcm9sbEFuZFNjYWxlU2V0
KiBzY3JvbGxJbmZvKTsKICAgICB2b2lkIG1ha2VTY3JvbGxBbmRTY2FsZVNldChDQ1Njcm9sbEFu
ZFNjYWxlU2V0KiBzY3JvbGxJbmZvLCBjb25zdCBJbnRTaXplJiBzY3JvbGxPZmZzZXQsIGZsb2F0
IHBhZ2VTY2FsZSk7CkBAIC0xNjgsOCArMTYyLDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIGFkanVz
dFNjcm9sbHNGb3JQYWdlU2NhbGVDaGFuZ2UoZmxvYXQpOwogICAgIHZvaWQgdXBkYXRlTWF4U2Ny
b2xsUG9zaXRpb24oKTsKICAgICB2b2lkIHRyYWNrRGFtYWdlRm9yQWxsU3VyZmFjZXMoQ0NMYXll
ckltcGwqIHJvb3REcmF3TGF5ZXIsIGNvbnN0IENDTGF5ZXJMaXN0JiByZW5kZXJTdXJmYWNlTGF5
ZXJMaXN0KTsKLSAgICAvLyBSZXR1cm5zIGZhbHNlIGlmIHRoZSBmcmFtZSBzaG91bGQgbm90IGJl
IGRpc3BsYXllZC4KLSAgICBib29sIGNhbGN1bGF0ZVJlbmRlclBhc3NlcyhDQ1JlbmRlclBhc3NM
aXN0JiwgQ0NMYXllckxpc3QmIHJlbmRlclN1cmZhY2VMYXllckxpc3QpOworICAgIHZvaWQgY2Fs
Y3VsYXRlUmVuZGVyUGFzc2VzKENDUmVuZGVyUGFzc0xpc3QmLCBDQ0xheWVyTGlzdCYgcmVuZGVy
U3VyZmFjZUxheWVyTGlzdCk7CiAgICAgdm9pZCBhbmltYXRlTGF5ZXJzUmVjdXJzaXZlKENDTGF5
ZXJJbXBsKiwgZG91YmxlIG1vbm90b25pY1RpbWUsIGRvdWJsZSB3YWxsQ2xvY2tUaW1lLCBDQ0Fu
aW1hdGlvbkV2ZW50c1ZlY3RvciosIGJvb2wmIGRpZEFuaW1hdGUsIGJvb2wmIG5lZWRzQW5pbWF0
ZUxheWVycyk7CiAgICAgSW50U2l6ZSBjb250ZW50U2l6ZSgpIGNvbnN0OwogICAgIHZvaWQgc2Vu
ZERpZExvc2VDb250ZXh0UmVjdXJzaXZlKENDTGF5ZXJJbXBsKik7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1F1YWRDdWxsZXIuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NRdWFkQ3Vs
bGVyLmNwcAppbmRleCAzNWQxOTQ2MTc3OTU5MmZlYjRlZjg0NzFiMzhmZTBkNWVmOWM4NDQwLi5m
MmE4NTg3MTcwYzNiYTVhZTIyZTFiMzg4ZjNmODgyNmQwZWZkM2FjIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1F1YWRDdWxsZXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDUXVh
ZEN1bGxlci5jcHAKQEAgLTQ3LDcgKzQ3LDcgQEAgQ0NRdWFkQ3VsbGVyOjpDQ1F1YWRDdWxsZXIo
Q0NRdWFkTGlzdCYgcXVhZExpc3QsIENDTGF5ZXJJbXBsKiBsYXllciwgQ0NPY2NsdXNpb24KIHsK
IH0KIAotYm9vbCBDQ1F1YWRDdWxsZXI6OmFwcGVuZChQYXNzT3duUHRyPENDRHJhd1F1YWQ+IHBh
c3NEcmF3UXVhZCkKK3ZvaWQgQ0NRdWFkQ3VsbGVyOjphcHBlbmQoUGFzc093blB0cjxDQ0RyYXdR
dWFkPiBwYXNzRHJhd1F1YWQpCiB7CiAgICAgT3duUHRyPENDRHJhd1F1YWQ+IGRyYXdRdWFkKHBh
c3NEcmF3UXVhZCk7CiAgICAgSW50UmVjdCBjdWxsZWRSZWN0ID0gbV9vY2NsdXNpb25UcmFja2Vy
LT51bm9jY2x1ZGVkQ29udGVudFJlY3QobV9sYXllciwgZHJhd1F1YWQtPnF1YWRSZWN0KCkpOwpA
QCAtNjEsNyArNjEsNiBAQCBib29sIENDUXVhZEN1bGxlcjo6YXBwZW5kKFBhc3NPd25QdHI8Q0NE
cmF3UXVhZD4gcGFzc0RyYXdRdWFkKQogICAgIC8vIFJlbGVhc2UgdGhlIHF1YWQgYWZ0ZXIgd2Un
cmUgZG9uZSB1c2luZyBpdC4KICAgICBpZiAoa2VlcFF1YWQpCiAgICAgICAgIG1fcXVhZExpc3Qu
YXBwZW5kKGRyYXdRdWFkLnJlbGVhc2UoKSk7Ci0gICAgcmV0dXJuIGtlZXBRdWFkOwogfQogCiB9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1F1YWRDdWxsZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDUXVhZEN1bGxlci5oCmluZGV4IDM0MzViNzJm
NWQzNTAzYjllOTllNTBmODI0ODgyNmMxYzk4ZWUwODEuLjFmNGI5MjA1NjJhZTk1YzU2ZGY3MDY5
M2Q4YjljMTcwOGZjOTk3MjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2Nocm9taXVtL2NjL0NDUXVhZEN1bGxlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDUXVhZEN1bGxlci5oCkBAIC0zOCw4ICszOCw3
IEBAIHB1YmxpYzoKICAgICAvLyBkb25lIHRvIGVzdGltYXRlIG92ZXIgZHJhdyBzdGF0aXN0aWNz
LgogICAgIENDUXVhZEN1bGxlcihDQ1F1YWRMaXN0JiwgQ0NMYXllckltcGwqLCBDQ09jY2x1c2lv
blRyYWNrZXJJbXBsKik7CiAKLSAgICAvLyBSZXR1cm5zIHRydWUgaWYgdGhlIHF1YWQgaXMgYWRk
ZWQgdG8gdGhlIGxpc3QsIGFuZCBmYWxzZSBpZiB0aGUgcXVhZCBpcyBlbnRpcmVseSBjdWxsZWQu
Ci0gICAgdmlydHVhbCBib29sIGFwcGVuZChQYXNzT3duUHRyPENDRHJhd1F1YWQ+IHBhc3NEcmF3
UXVhZCk7CisgICAgdmlydHVhbCB2b2lkIGFwcGVuZChQYXNzT3duUHRyPENDRHJhd1F1YWQ+IHBh
c3NEcmF3UXVhZCk7CiAKIHByaXZhdGU6CiAgICAgQ0NRdWFkTGlzdCYgbV9xdWFkTGlzdDsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0ND
UmVuZGVyUGFzcy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1
bS9jYy9DQ1JlbmRlclBhc3MuY3BwCmluZGV4IGNmNDdiNmNiODdhNDM3NjAyMTAzMDdkY2RmOTA2
OTA3MWU0YTRlMGMuLmExMmJmYmI1OWY0YTdiOTM5NjNkMjQzNGVjNjBjYmU4NTAwNTYzNGEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0ND
UmVuZGVyUGFzcy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hy
b21pdW0vY2MvQ0NSZW5kZXJQYXNzLmNwcApAQCAtNDYsMTIgKzQ2LDEyIEBAIENDUmVuZGVyUGFz
czo6Q0NSZW5kZXJQYXNzKENDUmVuZGVyU3VyZmFjZSogdGFyZ2V0U3VyZmFjZSkKICAgICBBU1NF
UlQobV90YXJnZXRTdXJmYWNlKTsKIH0KIAotdm9pZCBDQ1JlbmRlclBhc3M6OmFwcGVuZFF1YWRz
Rm9yTGF5ZXIoQ0NMYXllckltcGwqIGxheWVyLCBDQ09jY2x1c2lvblRyYWNrZXJJbXBsKiBvY2Ns
dXNpb25UcmFja2VyLCBib29sJiB1c2VkQ2hlY2tlcmJvYXJkKQordm9pZCBDQ1JlbmRlclBhc3M6
OmFwcGVuZFF1YWRzRm9yTGF5ZXIoQ0NMYXllckltcGwqIGxheWVyLCBDQ09jY2x1c2lvblRyYWNr
ZXJJbXBsKiBvY2NsdXNpb25UcmFja2VyKQogewogICAgIENDUXVhZEN1bGxlciBxdWFkQ3VsbGVy
KG1fcXVhZExpc3QsIGxheWVyLCBvY2NsdXNpb25UcmFja2VyKTsKIAogICAgIE93blB0cjxDQ1No
YXJlZFF1YWRTdGF0ZT4gc2hhcmVkUXVhZFN0YXRlID0gbGF5ZXItPmNyZWF0ZVNoYXJlZFF1YWRT
dGF0ZSgpOwotICAgIGxheWVyLT5hcHBlbmRRdWFkcyhxdWFkQ3VsbGVyLCBzaGFyZWRRdWFkU3Rh
dGUuZ2V0KCksIHVzZWRDaGVja2VyYm9hcmQpOworICAgIGxheWVyLT5hcHBlbmRRdWFkcyhxdWFk
Q3VsbGVyLCBzaGFyZWRRdWFkU3RhdGUuZ2V0KCkpOwogICAgIGxheWVyLT5hcHBlbmREZWJ1Z0Jv
cmRlclF1YWQocXVhZEN1bGxlciwgc2hhcmVkUXVhZFN0YXRlLmdldCgpKTsKICAgICBtX3NoYXJl
ZFF1YWRTdGF0ZUxpc3QuYXBwZW5kKHNoYXJlZFF1YWRTdGF0ZS5yZWxlYXNlKCkpOwogfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NS
ZW5kZXJQYXNzLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9j
Yy9DQ1JlbmRlclBhc3MuaAppbmRleCA1OTkwMWM4YzU4Y2YzNzZhMGMxZjBjYzA5YzU3OGVlMDRk
MzE2MmUzLi5hYzhkYmMxYTBkMjZhODQ3NjY1N2ZiNjcyYzJmMTVhYWIyNGM4ZWUxIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1JlbmRl
clBhc3MuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9j
Yy9DQ1JlbmRlclBhc3MuaApAQCAtNTQsNyArNTQsNyBAQCBjbGFzcyBDQ1JlbmRlclBhc3Mgewog
cHVibGljOgogICAgIHN0YXRpYyBQYXNzT3duUHRyPENDUmVuZGVyUGFzcz4gY3JlYXRlKENDUmVu
ZGVyU3VyZmFjZSopOwogCi0gICAgdm9pZCBhcHBlbmRRdWFkc0ZvckxheWVyKENDTGF5ZXJJbXBs
KiwgQ0NPY2NsdXNpb25UcmFja2VySW1wbCosIGJvb2wmIHVzZWRDaGVja2VyYm9hcmQpOworICAg
IHZvaWQgYXBwZW5kUXVhZHNGb3JMYXllcihDQ0xheWVySW1wbCosIENDT2NjbHVzaW9uVHJhY2tl
ckltcGwqKTsKICAgICB2b2lkIGFwcGVuZFF1YWRzRm9yUmVuZGVyU3VyZmFjZUxheWVyKENDTGF5
ZXJJbXBsKik7CiAKICAgICBjb25zdCBDQ1F1YWRMaXN0JiBxdWFkTGlzdCgpIGNvbnN0IHsgcmV0
dXJuIG1fcXVhZExpc3Q7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2Nocm9taXVtL2NjL0NDU2Nyb2xsYmFyTGF5ZXJJbXBsLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDU2Nyb2xsYmFyTGF5ZXJJbXBsLmNw
cAppbmRleCAxNTIwNjVkMDhlMTExZDlhZTFjZGI1ZmQ2MzMxZTgxOTQwMTBjNWRhLi40MzdmNGY3
NzZkOGIwN2Q1YjlhZmNkMWMwYzUwM2RkOGM4OTE0MmE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1Njcm9sbGJhckxheWVySW1wbC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NT
Y3JvbGxiYXJMYXllckltcGwuY3BwCkBAIC03OSw3ICs3OSw3IEBAIHZvaWQgQ0NTY3JvbGxiYXJM
YXllckltcGw6OndpbGxEcmF3KExheWVyUmVuZGVyZXJDaHJvbWl1bSogbGF5ZXJSZW5kZXJlcikK
ICAgICB9CiB9CiAKLXZvaWQgQ0NTY3JvbGxiYXJMYXllckltcGw6OmFwcGVuZFF1YWRzKENDUXVh
ZEN1bGxlciYgcXVhZExpc3QsIGNvbnN0IENDU2hhcmVkUXVhZFN0YXRlKiBzaGFyZWRRdWFkU3Rh
dGUsIGJvb2wmKQordm9pZCBDQ1Njcm9sbGJhckxheWVySW1wbDo6YXBwZW5kUXVhZHMoQ0NRdWFk
Q3VsbGVyJiBxdWFkTGlzdCwgY29uc3QgQ0NTaGFyZWRRdWFkU3RhdGUqIHNoYXJlZFF1YWRTdGF0
ZSkKIHsKICAgICBpZiAoIW1fdGV4dHVyZS0+aXNSZXNlcnZlZCgpKQogICAgICAgICByZXR1cm47
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9j
Yy9DQ1Njcm9sbGJhckxheWVySW1wbC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY2hyb21pdW0vY2MvQ0NTY3JvbGxiYXJMYXllckltcGwuaAppbmRleCBiMDNlNDUxZWIzOTIz
NTAxYzJlNjUzOWZkY2FjNmY0Nzg1YTljNzg2Li5mY2VjMTEwZTI0MTgzMWJkYjIxZjg2NzJiYmQw
YzczNzIxMWQzZmNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jaHJvbWl1bS9jYy9DQ1Njcm9sbGJhckxheWVySW1wbC5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDU2Nyb2xsYmFyTGF5ZXJJbXBsLmgKQEAg
LTYwLDcgKzYwLDcgQEAgcHVibGljOgogICAgIHZvaWQgc2V0U2Nyb2xsTGF5ZXIoQ0NMYXllcklt
cGwqIHNjcm9sbExheWVyKSB7IG1fc2Nyb2xsTGF5ZXIgPSBzY3JvbGxMYXllcjsgfQogCiAgICAg
dmlydHVhbCB2b2lkIHdpbGxEcmF3KExheWVyUmVuZGVyZXJDaHJvbWl1bSopOwotICAgIHZpcnR1
YWwgdm9pZCBhcHBlbmRRdWFkcyhDQ1F1YWRDdWxsZXImLCBjb25zdCBDQ1NoYXJlZFF1YWRTdGF0
ZSosIGJvb2wmIHVzZWRDaGVja2VyYm9hcmQpOworICAgIHZpcnR1YWwgdm9pZCBhcHBlbmRRdWFk
cyhDQ1F1YWRDdWxsZXImLCBjb25zdCBDQ1NoYXJlZFF1YWRTdGF0ZSopOwogICAgIHZpcnR1YWwg
dm9pZCBkaWREcmF3KCk7CiAKIHByb3RlY3RlZDoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDU2luZ2xlVGhyZWFkUHJveHkuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NTaW5nbGVUaHJl
YWRQcm94eS5jcHAKaW5kZXggNjA3YjM4YWY3YTIyY2M3NzRmZjZhMTcyNzkzZDNkZTU5ZTQwMzY4
Yi4uYjZmYzc2YjUyZThiZGY0ZmVhOTc1NTBhMjE2ZWYxMzJmZjdiNWJmNSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NTaW5nbGVUaHJl
YWRQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21p
dW0vY2MvQ0NTaW5nbGVUaHJlYWRQcm94eS5jcHAKQEAgLTI5OCw5ICsyOTgsNyBAQCBib29sIEND
U2luZ2xlVGhyZWFkUHJveHk6OmRvQ29tcG9zaXRlKCkKICAgICAgIGRvdWJsZSB3YWxsQ2xvY2tU
aW1lID0gY3VycmVudFRpbWUoKTsKIAogICAgICAgbV9sYXllclRyZWVIb3N0SW1wbC0+YW5pbWF0
ZShtb25vdG9uaWNUaW1lLCB3YWxsQ2xvY2tUaW1lKTsKLSAgICAgIENDTGF5ZXJUcmVlSG9zdElt
cGw6OkZyYW1lRGF0YSBmcmFtZTsKLSAgICAgIG1fbGF5ZXJUcmVlSG9zdEltcGwtPnByZXBhcmVU
b0RyYXcoZnJhbWUpOwotICAgICAgbV9sYXllclRyZWVIb3N0SW1wbC0+ZHJhd0xheWVycyhmcmFt
ZSk7CisgICAgICBtX2xheWVyVHJlZUhvc3RJbXBsLT5kcmF3TGF5ZXJzKCk7CiAgICAgfQogCiAg
ICAgaWYgKG1fbGF5ZXJUcmVlSG9zdEltcGwtPmlzQ29udGV4dExvc3QoKSkgewpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NTb2xpZENv
bG9yTGF5ZXJJbXBsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9t
aXVtL2NjL0NDU29saWRDb2xvckxheWVySW1wbC5jcHAKaW5kZXggNmFlM2ExNzI5OGU5YzZjMzE4
MjdhZDY5ZWFiNDZiOWU4ZWQzZTQ2My4uYmY2NzBlY2M4OWUxYjBmYTE3ZmVlNzYwMzgzOWVjMjdj
YmZkNDkxNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hy
b21pdW0vY2MvQ0NTb2xpZENvbG9yTGF5ZXJJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1NvbGlkQ29sb3JMYXllckltcGwuY3BwCkBA
IC01Nyw3ICs1Nyw3IEBAIFRyYW5zZm9ybWF0aW9uTWF0cml4IENDU29saWRDb2xvckxheWVySW1w
bDo6cXVhZFRyYW5zZm9ybSgpIGNvbnN0CiAgICAgcmV0dXJuIHNvbGlkQ29sb3JUcmFuc2Zvcm07
CiB9CiAKLXZvaWQgQ0NTb2xpZENvbG9yTGF5ZXJJbXBsOjphcHBlbmRRdWFkcyhDQ1F1YWRDdWxs
ZXImIHF1YWRMaXN0LCBjb25zdCBDQ1NoYXJlZFF1YWRTdGF0ZSogc2hhcmVkUXVhZFN0YXRlLCBi
b29sJikKK3ZvaWQgQ0NTb2xpZENvbG9yTGF5ZXJJbXBsOjphcHBlbmRRdWFkcyhDQ1F1YWRDdWxs
ZXImIHF1YWRMaXN0LCBjb25zdCBDQ1NoYXJlZFF1YWRTdGF0ZSogc2hhcmVkUXVhZFN0YXRlKQog
ewogICAgIC8vIFdlIGNyZWF0ZSBhIHNlcmllcyBvZiBzbWFsbGVyIHF1YWRzIGluc3RlYWQgb2Yg
anVzdCBvbmUgbGFyZ2Ugb25lIHNvIHRoYXQgdGhlCiAgICAgLy8gY3VsbGVyIGNhbiByZWR1Y2Ug
dGhlIHRvdGFsIHBpeGVscyBkcmF3bi4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDU29saWRDb2xvckxheWVySW1wbC5oIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NTb2xpZENvbG9yTGF5ZXJJ
bXBsLmgKaW5kZXggMTBjNmFkZTNmNDczYjU0ZGJiYTc5MDQ1M2YyYzBkZThhNWI2YWNlOS4uN2Qw
NzY3MzhjZjNhMGNjY2M5ODJiNDIyZWFiZDhkYTAwYjAxYmViYSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NTb2xpZENvbG9yTGF5ZXJJ
bXBsLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2Mv
Q0NTb2xpZENvbG9yTGF5ZXJJbXBsLmgKQEAgLTQyLDcgKzQyLDcgQEAgcHVibGljOgogICAgIHZp
cnR1YWwgfkNDU29saWRDb2xvckxheWVySW1wbCgpOwogCiAgICAgdmlydHVhbCBUcmFuc2Zvcm1h
dGlvbk1hdHJpeCBxdWFkVHJhbnNmb3JtKCkgY29uc3Q7Ci0gICAgdmlydHVhbCB2b2lkIGFwcGVu
ZFF1YWRzKENDUXVhZEN1bGxlciYsIGNvbnN0IENDU2hhcmVkUXVhZFN0YXRlKiwgYm9vbCYgdXNl
ZENoZWNrZXJib2FyZCk7CisgICAgdmlydHVhbCB2b2lkIGFwcGVuZFF1YWRzKENDUXVhZEN1bGxl
ciYsIGNvbnN0IENDU2hhcmVkUXVhZFN0YXRlKik7CiAKIHByb3RlY3RlZDoKICAgICBleHBsaWNp
dCBDQ1NvbGlkQ29sb3JMYXllckltcGwoaW50IGlkKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDVGV4dHVyZUxheWVySW1wbC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1RleHR1cmVM
YXllckltcGwuY3BwCmluZGV4IDEyY2JhYjYyNTcwNjY3Yzg4ZGM4NzcwOTY2ODgzMjM4OGMyNGY5
NGYuLmUwNmY3MmY2ZjI0OWI2MWM3MWFhM2RhZDMzNjQzMWE4YjJlNjJiM2MgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDVGV4dHVyZUxh
eWVySW1wbC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21p
dW0vY2MvQ0NUZXh0dXJlTGF5ZXJJbXBsLmNwcApAQCAtOTAsNyArOTAsNyBAQCB2b2lkIENDVGV4
dHVyZUxheWVySW1wbDo6d2lsbERyYXcoTGF5ZXJSZW5kZXJlckNocm9taXVtKiBsYXllclJlbmRl
cmVyKQogICAgIH0KIH0KIAotdm9pZCBDQ1RleHR1cmVMYXllckltcGw6OmFwcGVuZFF1YWRzKEND
UXVhZEN1bGxlciYgcXVhZExpc3QsIGNvbnN0IENDU2hhcmVkUXVhZFN0YXRlKiBzaGFyZWRRdWFk
U3RhdGUsIGJvb2wmKQordm9pZCBDQ1RleHR1cmVMYXllckltcGw6OmFwcGVuZFF1YWRzKENDUXVh
ZEN1bGxlciYgcXVhZExpc3QsIGNvbnN0IENDU2hhcmVkUXVhZFN0YXRlKiBzaGFyZWRRdWFkU3Rh
dGUpCiB7CiAgICAgSW50UmVjdCBxdWFkUmVjdChJbnRQb2ludCgpLCBib3VuZHMoKSk7CiAgICAg
cXVhZExpc3QuYXBwZW5kKENDVGV4dHVyZURyYXdRdWFkOjpjcmVhdGUoc2hhcmVkUXVhZFN0YXRl
LCBxdWFkUmVjdCwgbV90ZXh0dXJlSWQsIG1faGFzQWxwaGEsIG1fcHJlbXVsdGlwbGllZEFscGhh
LCBtX3V2UmVjdCwgbV9mbGlwcGVkLCBtX2lvU3VyZmFjZVNpemUsIG1faW9TdXJmYWNlVGV4dHVy
ZUlkKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJv
bWl1bS9jYy9DQ1RleHR1cmVMYXllckltcGwuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2Nocm9taXVtL2NjL0NDVGV4dHVyZUxheWVySW1wbC5oCmluZGV4IDkyZDFhOTBiOWZm
Y2Q1NDgyMTFiYzhjNjUxOTYxY2RhYjM2N2M5ZjMuLmE4MWMzNjE2YWVkYjY0NWEyMWE3MzUwYjkx
YmQ5M2Q2MDdmOGJjNzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2Nocm9taXVtL2NjL0NDVGV4dHVyZUxheWVySW1wbC5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDVGV4dHVyZUxheWVySW1wbC5oCkBAIC00
MCw3ICs0MCw3IEBAIHB1YmxpYzoKICAgICB9CiAgICAgdmlydHVhbCB+Q0NUZXh0dXJlTGF5ZXJJ
bXBsKCk7CiAKLSAgICB2aXJ0dWFsIHZvaWQgYXBwZW5kUXVhZHMoQ0NRdWFkQ3VsbGVyJiwgY29u
c3QgQ0NTaGFyZWRRdWFkU3RhdGUqLCBib29sJiB1c2VkQ2hlY2tlcmJvYXJkKTsKKyAgICB2aXJ0
dWFsIHZvaWQgYXBwZW5kUXVhZHMoQ0NRdWFkQ3VsbGVyJiwgY29uc3QgQ0NTaGFyZWRRdWFkU3Rh
dGUqKTsKIAogICAgIHR5cGVkZWYgUHJvZ3JhbUJpbmRpbmc8VmVydGV4U2hhZGVyUG9zVGV4LCBG
cmFnbWVudFNoYWRlclJHQkFUZXhGbGlwQWxwaGE+IFByb2dyYW1GbGlwOwogICAgIHR5cGVkZWYg
UHJvZ3JhbUJpbmRpbmc8VmVydGV4U2hhZGVyUG9zVGV4U3RyZXRjaCwgRnJhZ21lbnRTaGFkZXJS
R0JBVGV4QWxwaGE+IFByb2dyYW1TdHJldGNoOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NUaHJlYWRQcm94eS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1RocmVhZFByb3h5LmNwcApp
bmRleCBlNDE3M2E4YWQ2MTEzZjdlZGM0YjkwMmFiMGE3Zjg1MDg2M2ExNDVmLi44NzlhYWJmY2Nk
MWM2OGYwZTM4OTNmOThiMzUwZGM4OWMwMGM2NTVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1RocmVhZFByb3h5LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1RocmVhZFByb3h5
LmNwcApAQCAtNTU1LDkgKzU1NSw3IEBAIHZvaWQgQ0NUaHJlYWRQcm94eTo6c2NoZWR1bGVkQWN0
aW9uRHJhd0FuZFN3YXAoKQogCiAgICAgbV9pbnB1dEhhbmRsZXJPbkltcGxUaHJlYWQtPmFuaW1h
dGUobW9ub3RvbmljVGltZSk7CiAgICAgbV9sYXllclRyZWVIb3N0SW1wbC0+YW5pbWF0ZShtb25v
dG9uaWNUaW1lLCB3YWxsQ2xvY2tUaW1lKTsKLSAgICBDQ0xheWVyVHJlZUhvc3RJbXBsOjpGcmFt
ZURhdGEgZnJhbWU7Ci0gICAgbV9sYXllclRyZWVIb3N0SW1wbC0+cHJlcGFyZVRvRHJhdyhmcmFt
ZSk7Ci0gICAgbV9sYXllclRyZWVIb3N0SW1wbC0+ZHJhd0xheWVycyhmcmFtZSk7CisgICAgbV9s
YXllclRyZWVIb3N0SW1wbC0+ZHJhd0xheWVycygpOwogCiAgICAgLy8gQ2hlY2sgZm9yIGEgcGVu
ZGluZyBjb21wb3NpdGVBbmRSZWFkYmFjay4KICAgICBpZiAobV9yZWFkYmFja1JlcXVlc3RPbklt
cGxUaHJlYWQpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2Nocm9taXVtL2NjL0NDVGlsZWRMYXllckltcGwuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NUaWxlZExheWVySW1wbC5jcHAKaW5kZXggM2Y3YjBi
M2FjMjE5YTc2MDc3NWE1ZWJmMDAxOGRmZDg5NDIzNzc3OS4uYTE4NzdiOTg3YWY2NWVjZjcxNThi
ODcyODVlNmQ4ODA5YWE1N2ZlNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NUaWxlZExheWVySW1wbC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NUaWxlZExheWVySW1wbC5jcHAK
QEAgLTEyMyw3ICsxMjMsNyBAQCBUcmFuc2Zvcm1hdGlvbk1hdHJpeCBDQ1RpbGVkTGF5ZXJJbXBs
OjpxdWFkVHJhbnNmb3JtKCkgY29uc3QKICAgICByZXR1cm4gdHJhbnNmb3JtOwogfQogCi12b2lk
IENDVGlsZWRMYXllckltcGw6OmFwcGVuZFF1YWRzKENDUXVhZEN1bGxlciYgcXVhZExpc3QsIGNv
bnN0IENDU2hhcmVkUXVhZFN0YXRlKiBzaGFyZWRRdWFkU3RhdGUsIGJvb2wmIHVzZWRDaGVja2Vy
Ym9hcmQpCit2b2lkIENDVGlsZWRMYXllckltcGw6OmFwcGVuZFF1YWRzKENDUXVhZEN1bGxlciYg
cXVhZExpc3QsIGNvbnN0IENDU2hhcmVkUXVhZFN0YXRlKiBzaGFyZWRRdWFkU3RhdGUpCiB7CiAg
ICAgY29uc3QgSW50UmVjdCYgbGF5ZXJSZWN0ID0gdmlzaWJsZUxheWVyUmVjdCgpOwogCkBAIC0x
NDksNyArMTQ5LDcgQEAgdm9pZCBDQ1RpbGVkTGF5ZXJJbXBsOjphcHBlbmRRdWFkcyhDQ1F1YWRD
dWxsZXImIHF1YWRMaXN0LCBjb25zdCBDQ1NoYXJlZFF1YWRTdGEKICAgICAgICAgICAgICAgICBj
b250aW51ZTsKIAogICAgICAgICAgICAgaWYgKCF0aWxlIHx8ICF0aWxlLT50ZXh0dXJlSWQoKSkg
ewotICAgICAgICAgICAgICAgIHVzZWRDaGVja2VyYm9hcmQgfD0gcXVhZExpc3QuYXBwZW5kKEND
U29saWRDb2xvckRyYXdRdWFkOjpjcmVhdGUoc2hhcmVkUXVhZFN0YXRlLCB0aWxlUmVjdCwgYmFj
a2dyb3VuZENvbG9yKCkpKTsKKyAgICAgICAgICAgICAgICBxdWFkTGlzdC5hcHBlbmQoQ0NTb2xp
ZENvbG9yRHJhd1F1YWQ6OmNyZWF0ZShzaGFyZWRRdWFkU3RhdGUsIHRpbGVSZWN0LCBiYWNrZ3Jv
dW5kQ29sb3IoKSkpOwogICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICAgfQog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9j
Yy9DQ1RpbGVkTGF5ZXJJbXBsLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
aHJvbWl1bS9jYy9DQ1RpbGVkTGF5ZXJJbXBsLmgKaW5kZXggMzBhNGFhNjM4ZmFlMjhhYjhiOTBm
ZDUxMGQ0ZGY4ZWNjZGM4YWViYS4uMGJlNjU3NzQzOGMwMDM2MzE3NDRiNzc3MzVjYTY5YWQyODM4
NTRhZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21p
dW0vY2MvQ0NUaWxlZExheWVySW1wbC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2Nocm9taXVtL2NjL0NDVGlsZWRMYXllckltcGwuaApAQCAtNDMsNyArNDMsNyBAQCBw
dWJsaWM6CiAgICAgfQogICAgIHZpcnR1YWwgfkNDVGlsZWRMYXllckltcGwoKTsKIAotICAgIHZp
cnR1YWwgdm9pZCBhcHBlbmRRdWFkcyhDQ1F1YWRDdWxsZXImLCBjb25zdCBDQ1NoYXJlZFF1YWRT
dGF0ZSosIGJvb2wmIHVzZWRDaGVja2VyYm9hcmQpOworICAgIHZpcnR1YWwgdm9pZCBhcHBlbmRR
dWFkcyhDQ1F1YWRDdWxsZXImLCBjb25zdCBDQ1NoYXJlZFF1YWRTdGF0ZSopOwogCiAgICAgdmly
dHVhbCB2b2lkIGJpbmRDb250ZW50c1RleHR1cmUoTGF5ZXJSZW5kZXJlckNocm9taXVtKik7CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2Nj
L0NDVmlkZW9MYXllckltcGwuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2hyb21pdW0vY2MvQ0NWaWRlb0xheWVySW1wbC5jcHAKaW5kZXggYTU2Y2Y1ODkxM2Q1NGQ2MmVm
OGMzNDAxNmU4MDdiYTg2YTg0MTliMS4uYjVhYTNlMTcxNTBmZTA1NGY3M2U1MWVmMDAyYTZmZGFi
ZjdmYzY0NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hy
b21pdW0vY2MvQ0NWaWRlb0xheWVySW1wbC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NWaWRlb0xheWVySW1wbC5jcHAKQEAgLTE1NCw3ICsx
NTQsNyBAQCB2b2lkIENDVmlkZW9MYXllckltcGw6OndpbGxEcmF3KExheWVyUmVuZGVyZXJDaHJv
bWl1bSogbGF5ZXJSZW5kZXJlcikKICAgICB9CiB9CiAKLXZvaWQgQ0NWaWRlb0xheWVySW1wbDo6
YXBwZW5kUXVhZHMoQ0NRdWFkQ3VsbGVyJiBxdWFkTGlzdCwgY29uc3QgQ0NTaGFyZWRRdWFkU3Rh
dGUqIHNoYXJlZFF1YWRTdGF0ZSwgYm9vbCYpCit2b2lkIENDVmlkZW9MYXllckltcGw6OmFwcGVu
ZFF1YWRzKENDUXVhZEN1bGxlciYgcXVhZExpc3QsIGNvbnN0IENDU2hhcmVkUXVhZFN0YXRlKiBz
aGFyZWRRdWFkU3RhdGUpCiB7CiAgICAgaWYgKCFtX2ZyYW1lKQogICAgICAgICByZXR1cm47CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9D
Q1ZpZGVvTGF5ZXJJbXBsLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJv
bWl1bS9jYy9DQ1ZpZGVvTGF5ZXJJbXBsLmgKaW5kZXggZGRiMjc5YzgzYWZlZmQ4N2RmMzY2NzYx
ZTExY2U2YTg5ZjdhZTNhMi4uNGZiNDVlYmQ5NzBmYjNmOWM5MzllOTBiNjllMDRjZGJkYTBhZGQy
ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0v
Y2MvQ0NWaWRlb0xheWVySW1wbC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2Nocm9taXVtL2NjL0NDVmlkZW9MYXllckltcGwuaApAQCAtNTAsNyArNTAsNyBAQCBwdWJs
aWM6CiAgICAgdmlydHVhbCB+Q0NWaWRlb0xheWVySW1wbCgpOwogCiAgICAgdmlydHVhbCB2b2lk
IHdpbGxEcmF3KExheWVyUmVuZGVyZXJDaHJvbWl1bSopOwotICAgIHZpcnR1YWwgdm9pZCBhcHBl
bmRRdWFkcyhDQ1F1YWRDdWxsZXImLCBjb25zdCBDQ1NoYXJlZFF1YWRTdGF0ZSosIGJvb2wmIHVz
ZWRDaGVja2VyYm9hcmQpOworICAgIHZpcnR1YWwgdm9pZCBhcHBlbmRRdWFkcyhDQ1F1YWRDdWxs
ZXImLCBjb25zdCBDQ1NoYXJlZFF1YWRTdGF0ZSopOwogICAgIHZpcnR1YWwgdm9pZCBkaWREcmF3
KCk7CiAKICAgICB0eXBlZGVmIFByb2dyYW1CaW5kaW5nPFZlcnRleFNoYWRlclBvc1RleFRyYW5z
Zm9ybSwgRnJhZ21lbnRTaGFkZXJSR0JBVGV4RmxpcEFscGhhPiBSR0JBUHJvZ3JhbTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvQ0NBbmltYXRpb25UZXN0Q29tbW9u
LmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvQ0NBbmltYXRpb25UZXN0Q29tbW9u
LmNwcAppbmRleCA3ZTlhODFjOWUxM2EwNGZmZDQzNDEyMjc2NDUxMTY5YjhmODk1NWE1Li5hMWQ5
N2E1MWJiNDczMTRkMGJhOTVjNTQ5MWQ3NzYwMDUyZjc3OTNkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3Rlc3RzL0NDQW5pbWF0aW9uVGVzdENvbW1vbi5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9DQ0FuaW1hdGlvblRlc3RDb21tb24uY3BwCkBAIC0y
OCw5ICsyOCw3IEBACiAKICNpbmNsdWRlICJHcmFwaGljc0xheWVyLmgiCiAjaW5jbHVkZSAiTGF5
ZXJDaHJvbWl1bS5oIgotI2luY2x1ZGUgIlRyYW5zbGF0ZVRyYW5zZm9ybU9wZXJhdGlvbi5oIgog
I2luY2x1ZGUgImNjL0NDTGF5ZXJBbmltYXRpb25Db250cm9sbGVyLmgiCi0jaW5jbHVkZSAiY2Mv
Q0NMYXllckltcGwuaCIKIAogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKQEAgLTU1LDI0ICs1
Myw2IEBAIHZvaWQgYWRkT3BhY2l0eVRyYW5zaXRpb24oVGFyZ2V0JiB0YXJnZXQsIGRvdWJsZSBk
dXJhdGlvbiwgZmxvYXQgc3RhcnRPcGFjaXR5LCBmCiAgICAgdGFyZ2V0LmFkZEFuaW1hdGlvbih2
YWx1ZXMsIGJveFNpemUsIGFuaW1hdGlvbi5nZXQoKSwgMCwgMCwgMCk7CiB9CiAKLXRlbXBsYXRl
IDxjbGFzcyBUYXJnZXQ+Ci12b2lkIGFkZEFuaW1hdGVkVHJhbnNmb3JtKFRhcmdldCYgdGFyZ2V0
LCBkb3VibGUgZHVyYXRpb24sIGludCBkZWx0YVgsIGludCBkZWx0YVkpCi17Ci0gICAgc3RhdGlj
IGludCBpZCA9IDA7Ci0gICAgV2ViQ29yZTo6S2V5ZnJhbWVWYWx1ZUxpc3QgdmFsdWVzKEFuaW1h
dGVkUHJvcGVydHlXZWJraXRUcmFuc2Zvcm0pOwotCi0gICAgVHJhbnNmb3JtT3BlcmF0aW9ucyBv
cGVyYXRpb25zOwotICAgIG9wZXJhdGlvbnMub3BlcmF0aW9ucygpLmFwcGVuZChUcmFuc2xhdGVU
cmFuc2Zvcm1PcGVyYXRpb246OmNyZWF0ZShMZW5ndGgoZGVsdGFYLCBGaXhlZCksIExlbmd0aChk
ZWx0YVksIEZpeGVkKSwgVHJhbnNmb3JtT3BlcmF0aW9uOjpUUkFOU0xBVEVfWCkpOwotICAgIHZh
bHVlcy5pbnNlcnQobmV3IFRyYW5zZm9ybUFuaW1hdGlvblZhbHVlKDAsICZvcGVyYXRpb25zKSk7
Ci0KLSAgICBSZWZQdHI8QW5pbWF0aW9uPiBhbmltYXRpb24gPSBBbmltYXRpb246OmNyZWF0ZSgp
OwotICAgIGFuaW1hdGlvbi0+c2V0RHVyYXRpb24oZHVyYXRpb24pOwotCi0gICAgSW50U2l6ZSBi
b3hTaXplOwotCi0gICAgdGFyZ2V0LmFkZEFuaW1hdGlvbih2YWx1ZXMsIGJveFNpemUsIGFuaW1h
dGlvbi5nZXQoKSwgKytpZCwgMCwgMCk7Ci19Ci0KIH0gLy8gbmFtZXNwYWNlCiAKIG5hbWVzcGFj
ZSBXZWJLaXRUZXN0cyB7CkBAIC0xNTMsMTkgKzEzMyw0IEBAIHZvaWQgYWRkT3BhY2l0eVRyYW5z
aXRpb25Ub0xheWVyKFdlYkNvcmU6OkxheWVyQ2hyb21pdW0mIGxheWVyLCBkb3VibGUgZHVyYXRp
b24sCiAgICAgYWRkT3BhY2l0eVRyYW5zaXRpb24obGF5ZXIsIGR1cmF0aW9uLCBzdGFydE9wYWNp
dHksIGVuZE9wYWNpdHksIHVzZVRpbWluZ0Z1bmN0aW9uKTsKIH0KIAotdm9pZCBhZGRPcGFjaXR5
VHJhbnNpdGlvblRvTGF5ZXIoV2ViQ29yZTo6Q0NMYXllckltcGwmIGxheWVyLCBkb3VibGUgZHVy
YXRpb24sIGZsb2F0IHN0YXJ0T3BhY2l0eSwgZmxvYXQgZW5kT3BhY2l0eSwgYm9vbCB1c2VUaW1p
bmdGdW5jdGlvbikKLXsKLSAgICBhZGRPcGFjaXR5VHJhbnNpdGlvbigqbGF5ZXIubGF5ZXJBbmlt
YXRpb25Db250cm9sbGVyKCksIGR1cmF0aW9uLCBzdGFydE9wYWNpdHksIGVuZE9wYWNpdHksIHVz
ZVRpbWluZ0Z1bmN0aW9uKTsKLX0KLQotdm9pZCBhZGRBbmltYXRlZFRyYW5zZm9ybVRvTGF5ZXIo
V2ViQ29yZTo6TGF5ZXJDaHJvbWl1bSYgbGF5ZXIsIGRvdWJsZSBkdXJhdGlvbiwgaW50IGRlbHRh
WCwgaW50IGRlbHRhWSkKLXsKLSAgICBhZGRBbmltYXRlZFRyYW5zZm9ybShsYXllciwgZHVyYXRp
b24sIGRlbHRhWCwgZGVsdGFZKTsKLX0KLQotdm9pZCBhZGRBbmltYXRlZFRyYW5zZm9ybVRvTGF5
ZXIoV2ViQ29yZTo6Q0NMYXllckltcGwmIGxheWVyLCBkb3VibGUgZHVyYXRpb24sIGludCBkZWx0
YVgsIGludCBkZWx0YVkpCi17Ci0gICAgYWRkQW5pbWF0ZWRUcmFuc2Zvcm0oKmxheWVyLmxheWVy
QW5pbWF0aW9uQ29udHJvbGxlcigpLCBkdXJhdGlvbiwgZGVsdGFYLCBkZWx0YVkpOwotfQotCiB9
IC8vIG5hbWVzcGFjZSBXZWJLaXRUZXN0cwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJv
bWl1bS90ZXN0cy9DQ0FuaW1hdGlvblRlc3RDb21tb24uaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vdGVzdHMvQ0NBbmltYXRpb25UZXN0Q29tbW9uLmgKaW5kZXggMjAzM2JmOWQwMGUzYWM5MGU3
NzFiMTljMzg5ODQyYzE0NThhMWIxZC4uMTFhNzZiOGFjYjA3Y2Y4YWJhNzk5NTJmZTgxNDYwMzQw
NmUzOWRhNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9DQ0FuaW1h
dGlvblRlc3RDb21tb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0NDQW5p
bWF0aW9uVGVzdENvbW1vbi5oCkBAIC0zMSw3ICszMSw2IEBACiAjaW5jbHVkZSA8d3RmL093blB0
ci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7Ci1jbGFzcyBDQ0xheWVySW1wbDsKIGNsYXNzIExh
eWVyQ2hyb21pdW07CiB9CiAKQEAgLTk5LDEwICs5OCw2IEBAIHByaXZhdGU6CiB2b2lkIGFkZE9w
YWNpdHlUcmFuc2l0aW9uVG9Db250cm9sbGVyKFdlYkNvcmU6OkNDTGF5ZXJBbmltYXRpb25Db250
cm9sbGVyJiwgZG91YmxlIGR1cmF0aW9uLCBmbG9hdCBzdGFydE9wYWNpdHksIGZsb2F0IGVuZE9w
YWNpdHksIGJvb2wgdXNlVGltaW5nRnVuY3Rpb24pOwogCiB2b2lkIGFkZE9wYWNpdHlUcmFuc2l0
aW9uVG9MYXllcihXZWJDb3JlOjpMYXllckNocm9taXVtJiwgZG91YmxlIGR1cmF0aW9uLCBmbG9h
dCBzdGFydE9wYWNpdHksIGZsb2F0IGVuZE9wYWNpdHksIGJvb2wgdXNlVGltaW5nRnVuY3Rpb24p
Owotdm9pZCBhZGRPcGFjaXR5VHJhbnNpdGlvblRvTGF5ZXIoV2ViQ29yZTo6Q0NMYXllckltcGwm
LCBkb3VibGUgZHVyYXRpb24sIGZsb2F0IHN0YXJ0T3BhY2l0eSwgZmxvYXQgZW5kT3BhY2l0eSwg
Ym9vbCB1c2VUaW1pbmdGdW5jdGlvbik7Ci0KLXZvaWQgYWRkQW5pbWF0ZWRUcmFuc2Zvcm1Ub0xh
eWVyKFdlYkNvcmU6OkxheWVyQ2hyb21pdW0mLCBkb3VibGUgZHVyYXRpb24sIGludCBkZWx0YVgs
IGludCBkZWx0YVkpOwotdm9pZCBhZGRBbmltYXRlZFRyYW5zZm9ybVRvTGF5ZXIoV2ViQ29yZTo6
Q0NMYXllckltcGwmLCBkb3VibGUgZHVyYXRpb24sIGludCBkZWx0YVgsIGludCBkZWx0YVkpOwog
CiB9IC8vIG5hbWVzcGFjZSBXZWJLaXRUZXN0cwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL3Rlc3RzL0NDTGF5ZXJUcmVlSG9zdEltcGxUZXN0LmNwcCBiL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vdGVzdHMvQ0NMYXllclRyZWVIb3N0SW1wbFRlc3QuY3BwCmluZGV4IDQ0ZGNk
MTQyNDJmNTMxMGZhY2ZmZmY3NGE3OGFjN2MyZTNjZWE4YWIuLmExOTJiYTU1N2JmMGVhMTZjMjFl
NGMwNDI0MmNiMjVkMDkwYTE3NjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
dGVzdHMvQ0NMYXllclRyZWVIb3N0SW1wbFRlc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vdGVzdHMvQ0NMYXllclRyZWVIb3N0SW1wbFRlc3QuY3BwCkBAIC0yNiw3ICsyNiw2IEBA
CiAKICNpbmNsdWRlICJjYy9DQ0xheWVyVHJlZUhvc3RJbXBsLmgiCiAKLSNpbmNsdWRlICJDQ0Fu
aW1hdGlvblRlc3RDb21tb24uaCIKICNpbmNsdWRlICJGYWtlV2ViR3JhcGhpY3NDb250ZXh0M0Qu
aCIKICNpbmNsdWRlICJHcmFwaGljc0NvbnRleHQzRFByaXZhdGUuaCIKICNpbmNsdWRlICJMYXll
clJlbmRlcmVyQ2hyb21pdW0uaCIKQEAgLTM3LDcgKzM2LDYgQEAKIAogdXNpbmcgbmFtZXNwYWNl
IFdlYkNvcmU7CiB1c2luZyBuYW1lc3BhY2UgV2ViS2l0OwotdXNpbmcgbmFtZXNwYWNlIFdlYktp
dFRlc3RzOwogCiBuYW1lc3BhY2UgewogCkBAIC0yNTIsOSArMjUwLDcgQEAgVEVTVF9GKENDTGF5
ZXJUcmVlSG9zdEltcGxUZXN0LCBub25GYXN0U2Nyb2xsYWJsZVJlZ2lvbldpdGhPZmZzZXQpCiAg
ICAgcm9vdC0+c2V0Tm9uRmFzdFNjcm9sbGFibGVSZWdpb24oSW50UmVjdCgwLCAwLCA1MCwgNTAp
KTsKICAgICByb290LT5zZXRQb3NpdGlvbihGbG9hdFBvaW50KC0yNSwgMCkpOwogICAgIG1faG9z
dEltcGwtPnNldFJvb3RMYXllcihyb290LnJlbGVhc2UoKSk7Ci0gICAgQ0NMYXllclRyZWVIb3N0
SW1wbDo6RnJhbWVEYXRhIGZyYW1lOwotICAgIEVYUEVDVF9UUlVFKG1faG9zdEltcGwtPnByZXBh
cmVUb0RyYXcoZnJhbWUpKTsKLSAgICBtX2hvc3RJbXBsLT5kcmF3TGF5ZXJzKGZyYW1lKTsgLy8g
VXBkYXRlIGRyYXcgdHJhbnNmb3JtcyBzbyB3ZSBjYW4gY29ycmVjdGx5IG1hcCBwb2ludHMgaW50
byBsYXllciBzcGFjZS4KKyAgICBtX2hvc3RJbXBsLT5kcmF3TGF5ZXJzKCk7IC8vIFVwZGF0ZSBk
cmF3IHRyYW5zZm9ybXMgc28gd2UgY2FuIGNvcnJlY3RseSBtYXAgcG9pbnRzIGludG8gbGF5ZXIg
c3BhY2UuCiAKICAgICAvLyBUaGlzIHBvaW50IHdvdWxkIGZhbGwgaW50byB0aGUgbm9uLWZhc3Qg
c2Nyb2xsYWJsZSByZWdpb24gZXhjZXB0IHRoYXQgd2UndmUgbW92ZWQgdGhlIGxheWVyIGRvd24g
YnkgMjUgcGl4ZWxzLgogICAgIEVYUEVDVF9FUShtX2hvc3RJbXBsLT5zY3JvbGxCZWdpbihJbnRQ
b2ludCg0MCwgMTApLCBDQ0lucHV0SGFuZGxlckNsaWVudDo6V2hlZWwpLCBDQ0lucHV0SGFuZGxl
ckNsaWVudDo6U2Nyb2xsU3RhcnRlZCk7CkBAIC0zOTQsNyArMzkwLDcgQEAgVEVTVF9GKENDTGF5
ZXJUcmVlSG9zdEltcGxUZXN0LCBwYWdlU2NhbGVBbmltYXRpb24pCiAgICAgfQogfQogCi1jbGFz
cyBEaWREcmF3Q2hlY2tMYXllciA6IHB1YmxpYyBDQ1RpbGVkTGF5ZXJJbXBsIHsKK2NsYXNzIERp
ZERyYXdDaGVja0xheWVyIDogcHVibGljIENDTGF5ZXJJbXBsIHsKIHB1YmxpYzoKICAgICBzdGF0
aWMgUGFzc093blB0cjxEaWREcmF3Q2hlY2tMYXllcj4gY3JlYXRlKGludCBpZCkgeyByZXR1cm4g
YWRvcHRQdHIobmV3IERpZERyYXdDaGVja0xheWVyKGlkKSk7IH0KIApAQCAtNDExLDkgKzQwNyw5
IEBAIHB1YmxpYzoKICAgICBib29sIGRpZERyYXdDYWxsZWQoKSBjb25zdCB7IHJldHVybiBtX2Rp
ZERyYXdDYWxsZWQ7IH0KICAgICBib29sIHdpbGxEcmF3Q2FsbGVkKCkgY29uc3QgeyByZXR1cm4g
bV93aWxsRHJhd0NhbGxlZDsgfQogCi1wcm90ZWN0ZWQ6Citwcml2YXRlOgogICAgIGV4cGxpY2l0
IERpZERyYXdDaGVja0xheWVyKGludCBpZCkKLSAgICAgICAgOiBDQ1RpbGVkTGF5ZXJJbXBsKGlk
KQorICAgICAgICA6IENDTGF5ZXJJbXBsKGlkKQogICAgICAgICAsIG1fZGlkRHJhd0NhbGxlZChm
YWxzZSkKICAgICAgICAgLCBtX3dpbGxEcmF3Q2FsbGVkKGZhbHNlKQogICAgIHsKQEAgLTQyMiw3
ICs0MTgsNiBAQCBwcm90ZWN0ZWQ6CiAgICAgICAgIHNldERyYXdzQ29udGVudCh0cnVlKTsKICAg
ICB9CiAKLXByaXZhdGU6CiAgICAgYm9vbCBtX2RpZERyYXdDYWxsZWQ7CiAgICAgYm9vbCBtX3dp
bGxEcmF3Q2FsbGVkOwogfTsKQEAgLTQzNywxMyArNDMyLDEwIEBAIFRFU1RfRihDQ0xheWVyVHJl
ZUhvc3RJbXBsVGVzdCwgZGlkRHJhd05vdENhbGxlZE9uSGlkZGVuTGF5ZXIpCiAgICAgbV9ob3N0
SW1wbC0+c2V0Um9vdExheWVyKERpZERyYXdDaGVja0xheWVyOjpjcmVhdGUoMCkpOwogICAgIERp
ZERyYXdDaGVja0xheWVyKiByb290ID0gc3RhdGljX2Nhc3Q8RGlkRHJhd0NoZWNrTGF5ZXIqPiht
X2hvc3RJbXBsLT5yb290TGF5ZXIoKSk7CiAKLSAgICBDQ0xheWVyVHJlZUhvc3RJbXBsOjpGcmFt
ZURhdGEgZnJhbWU7Ci0KICAgICBFWFBFQ1RfRkFMU0Uocm9vdC0+d2lsbERyYXdDYWxsZWQoKSk7
CiAgICAgRVhQRUNUX0ZBTFNFKHJvb3QtPmRpZERyYXdDYWxsZWQoKSk7CiAKLSAgICBFWFBFQ1Rf
VFJVRShtX2hvc3RJbXBsLT5wcmVwYXJlVG9EcmF3KGZyYW1lKSk7Ci0gICAgbV9ob3N0SW1wbC0+
ZHJhd0xheWVycyhmcmFtZSk7CisgICAgbV9ob3N0SW1wbC0+ZHJhd0xheWVycygpOwogCiAgICAg
RVhQRUNUX0ZBTFNFKHJvb3QtPndpbGxEcmF3Q2FsbGVkKCkpOwogICAgIEVYUEVDVF9GQUxTRShy
b290LT5kaWREcmF3Q2FsbGVkKCkpOwpAQCAtNDU2LDggKzQ0OCw3IEBAIFRFU1RfRihDQ0xheWVy
VHJlZUhvc3RJbXBsVGVzdCwgZGlkRHJhd05vdENhbGxlZE9uSGlkZGVuTGF5ZXIpCiAgICAgRVhQ
RUNUX0ZBTFNFKHJvb3QtPndpbGxEcmF3Q2FsbGVkKCkpOwogICAgIEVYUEVDVF9GQUxTRShyb290
LT5kaWREcmF3Q2FsbGVkKCkpOwogCi0gICAgRVhQRUNUX1RSVUUobV9ob3N0SW1wbC0+cHJlcGFy
ZVRvRHJhdyhmcmFtZSkpOwotICAgIG1faG9zdEltcGwtPmRyYXdMYXllcnMoZnJhbWUpOworICAg
IG1faG9zdEltcGwtPmRyYXdMYXllcnMoKTsKIAogICAgIEVYUEVDVF9UUlVFKHJvb3QtPndpbGxE
cmF3Q2FsbGVkKCkpOwogICAgIEVYUEVDVF9UUlVFKHJvb3QtPmRpZERyYXdDYWxsZWQoKSk7CkBA
IC00ODYsOSArNDc3LDcgQEAgVEVTVF9GKENDTGF5ZXJUcmVlSG9zdEltcGxUZXN0LCBkaWREcmF3
Q2FsbGVkT25BbGxMYXllcnMpCiAgICAgRVhQRUNUX0ZBTFNFKGxheWVyMS0+ZGlkRHJhd0NhbGxl
ZCgpKTsKICAgICBFWFBFQ1RfRkFMU0UobGF5ZXIyLT5kaWREcmF3Q2FsbGVkKCkpOwogCi0gICAg
Q0NMYXllclRyZWVIb3N0SW1wbDo6RnJhbWVEYXRhIGZyYW1lOwotICAgIEVYUEVDVF9UUlVFKG1f
aG9zdEltcGwtPnByZXBhcmVUb0RyYXcoZnJhbWUpKTsKLSAgICBtX2hvc3RJbXBsLT5kcmF3TGF5
ZXJzKGZyYW1lKTsKKyAgICBtX2hvc3RJbXBsLT5kcmF3TGF5ZXJzKCk7CiAKICAgICBFWFBFQ1Rf
VFJVRShyb290LT5kaWREcmF3Q2FsbGVkKCkpOwogICAgIEVYUEVDVF9UUlVFKGxheWVyMS0+ZGlk
RHJhd0NhbGxlZCgpKTsKQEAgLTQ5OCw2OCArNDg3LDYgQEAgVEVTVF9GKENDTGF5ZXJUcmVlSG9z
dEltcGxUZXN0LCBkaWREcmF3Q2FsbGVkT25BbGxMYXllcnMpCiAgICAgRVhQRUNUX1RSVUUoISFs
YXllcjEtPnJlbmRlclN1cmZhY2UoKSk7CiB9CiAKLWNsYXNzIE1pc3NpbmdUZXh0dXJlQW5pbWF0
aW5nTGF5ZXIgOiBwdWJsaWMgRGlkRHJhd0NoZWNrTGF5ZXIgewotcHVibGljOgotICAgIHN0YXRp
YyBQYXNzT3duUHRyPE1pc3NpbmdUZXh0dXJlQW5pbWF0aW5nTGF5ZXI+IGNyZWF0ZShpbnQgaWQs
IGJvb2wgdGlsZU1pc3NpbmcsIGJvb2wgc2tpcHNEcmF3LCBib29sIGFuaW1hdGluZykgeyByZXR1
cm4gYWRvcHRQdHIobmV3IE1pc3NpbmdUZXh0dXJlQW5pbWF0aW5nTGF5ZXIoaWQsIHRpbGVNaXNz
aW5nLCBza2lwc0RyYXcsIGFuaW1hdGluZykpOyB9Ci0KLXByaXZhdGU6Ci0gICAgZXhwbGljaXQg
TWlzc2luZ1RleHR1cmVBbmltYXRpbmdMYXllcihpbnQgaWQsIGJvb2wgdGlsZU1pc3NpbmcsIGJv
b2wgc2tpcHNEcmF3LCBib29sIGFuaW1hdGluZykKLSAgICAgICAgOiBEaWREcmF3Q2hlY2tMYXll
cihpZCkKLSAgICB7Ci0gICAgICAgIE93blB0cjxDQ0xheWVyVGlsaW5nRGF0YT4gdGlsaW5nRGF0
YSA9IENDTGF5ZXJUaWxpbmdEYXRhOjpjcmVhdGUoSW50U2l6ZSgxMCwgMTApLCBDQ0xheWVyVGls
aW5nRGF0YTo6Tm9Cb3JkZXJUZXhlbHMpOwotICAgICAgICB0aWxpbmdEYXRhLT5zZXRCb3VuZHMo
Ym91bmRzKCkpOwotICAgICAgICBzZXRUaWxpbmdEYXRhKCp0aWxpbmdEYXRhLmdldCgpKTsKLSAg
ICAgICAgc2V0U2tpcHNEcmF3KHNraXBzRHJhdyk7Ci0gICAgICAgIGlmICghdGlsZU1pc3Npbmcp
Ci0gICAgICAgICAgICBwdXNoVGlsZVByb3BlcnRpZXMoMCwgMCwgMSwgSW50UmVjdCgpKTsKLSAg
ICAgICAgaWYgKGFuaW1hdGluZykKLSAgICAgICAgICAgIGFkZEFuaW1hdGVkVHJhbnNmb3JtVG9M
YXllcigqdGhpcywgMTAsIDMsIDApOwotICAgIH0KLX07Ci0KLVRFU1RfRihDQ0xheWVyVHJlZUhv
c3RJbXBsVGVzdCwgcHJlcGFyZVRvRHJhd0ZhaWxzV2hlbkFuaW1hdGlvblVzZXNDaGVja2VyYm9h
cmQpCi17Ci0gICAgbV9ob3N0SW1wbC0+aW5pdGlhbGl6ZUxheWVyUmVuZGVyZXIoY3JlYXRlQ29u
dGV4dCgpKTsKLSAgICBtX2hvc3RJbXBsLT5zZXRWaWV3cG9ydFNpemUoSW50U2l6ZSgxMCwgMTAp
KTsKLQotICAgIC8vIFdoZW4gdGhlIHRleHR1cmUgaXMgbm90IG1pc3NpbmcsIHdlIGRyYXcgYXMg
dXN1YWwuCi0gICAgbV9ob3N0SW1wbC0+c2V0Um9vdExheWVyKERpZERyYXdDaGVja0xheWVyOjpj
cmVhdGUoMCkpOwotICAgIERpZERyYXdDaGVja0xheWVyKiByb290ID0gc3RhdGljX2Nhc3Q8RGlk
RHJhd0NoZWNrTGF5ZXIqPihtX2hvc3RJbXBsLT5yb290TGF5ZXIoKSk7Ci0gICAgcm9vdC0+YWRk
Q2hpbGQoTWlzc2luZ1RleHR1cmVBbmltYXRpbmdMYXllcjo6Y3JlYXRlKDEsIGZhbHNlLCBmYWxz
ZSwgdHJ1ZSkpOwotICAgIERpZERyYXdDaGVja0xheWVyKiBsYXllciA9IHN0YXRpY19jYXN0PE1p
c3NpbmdUZXh0dXJlQW5pbWF0aW5nTGF5ZXIqPihyb290LT5jaGlsZHJlbigpWzBdLmdldCgpKTsK
LQotICAgIENDTGF5ZXJUcmVlSG9zdEltcGw6OkZyYW1lRGF0YSBmcmFtZTsKLQotICAgIEVYUEVD
VF9UUlVFKG1faG9zdEltcGwtPnByZXBhcmVUb0RyYXcoZnJhbWUpKTsKLSAgICBtX2hvc3RJbXBs
LT5kcmF3TGF5ZXJzKGZyYW1lKTsKLQotICAgIC8vIFdoZW4gYSB0ZXh0dXJlIGlzIG1pc3Npbmcg
YW5kIHdlJ3JlIG5vdCBhbmltYXRpbmcsIHdlIGRyYXcgYXMgdXN1YWwgd2l0aCBjaGVja2VyYm9h
cmRpbmcuCi0gICAgbV9ob3N0SW1wbC0+c2V0Um9vdExheWVyKERpZERyYXdDaGVja0xheWVyOjpj
cmVhdGUoMCkpOwotICAgIHJvb3QgPSBzdGF0aWNfY2FzdDxEaWREcmF3Q2hlY2tMYXllcio+KG1f
aG9zdEltcGwtPnJvb3RMYXllcigpKTsKLSAgICByb290LT5hZGRDaGlsZChNaXNzaW5nVGV4dHVy
ZUFuaW1hdGluZ0xheWVyOjpjcmVhdGUoMSwgdHJ1ZSwgZmFsc2UsIGZhbHNlKSk7Ci0gICAgbGF5
ZXIgPSBzdGF0aWNfY2FzdDxNaXNzaW5nVGV4dHVyZUFuaW1hdGluZ0xheWVyKj4ocm9vdC0+Y2hp
bGRyZW4oKVswXS5nZXQoKSk7Ci0KLSAgICBFWFBFQ1RfVFJVRShtX2hvc3RJbXBsLT5wcmVwYXJl
VG9EcmF3KGZyYW1lKSk7Ci0gICAgbV9ob3N0SW1wbC0+ZHJhd0xheWVycyhmcmFtZSk7Ci0KLSAg
ICAvLyBXaGVuIGEgdGV4dHVyZSBpcyBtaXNzaW5nIGFuZCB3ZSdyZSBhbmltYXRpbmcsIHdlIGRv
bid0IGRyYXcgYW55dGhpbmcuCi0gICAgbV9ob3N0SW1wbC0+c2V0Um9vdExheWVyKERpZERyYXdD
aGVja0xheWVyOjpjcmVhdGUoMCkpOwotICAgIHJvb3QgPSBzdGF0aWNfY2FzdDxEaWREcmF3Q2hl
Y2tMYXllcio+KG1faG9zdEltcGwtPnJvb3RMYXllcigpKTsKLSAgICByb290LT5hZGRDaGlsZChN
aXNzaW5nVGV4dHVyZUFuaW1hdGluZ0xheWVyOjpjcmVhdGUoMSwgdHJ1ZSwgZmFsc2UsIHRydWUp
KTsKLSAgICBsYXllciA9IHN0YXRpY19jYXN0PE1pc3NpbmdUZXh0dXJlQW5pbWF0aW5nTGF5ZXIq
Pihyb290LT5jaGlsZHJlbigpWzBdLmdldCgpKTsKLQotICAgIEVYUEVDVF9GQUxTRShtX2hvc3RJ
bXBsLT5wcmVwYXJlVG9EcmF3KGZyYW1lKSk7Ci0KLSAgICAvLyBXaGVuIHRoZSBsYXllciBza2lw
cyBkcmF3IGFuZCB3ZSdyZSBhbmltYXRpbmcsIHdlIHN0aWxsIGRyYXcgdGhlIGZyYW1lLgotICAg
IG1faG9zdEltcGwtPnNldFJvb3RMYXllcihEaWREcmF3Q2hlY2tMYXllcjo6Y3JlYXRlKDApKTsK
LSAgICByb290ID0gc3RhdGljX2Nhc3Q8RGlkRHJhd0NoZWNrTGF5ZXIqPihtX2hvc3RJbXBsLT5y
b290TGF5ZXIoKSk7Ci0gICAgcm9vdC0+YWRkQ2hpbGQoTWlzc2luZ1RleHR1cmVBbmltYXRpbmdM
YXllcjo6Y3JlYXRlKDEsIGZhbHNlLCB0cnVlLCB0cnVlKSk7Ci0gICAgbGF5ZXIgPSBzdGF0aWNf
Y2FzdDxNaXNzaW5nVGV4dHVyZUFuaW1hdGluZ0xheWVyKj4ocm9vdC0+Y2hpbGRyZW4oKVswXS5n
ZXQoKSk7Ci0KLSAgICBFWFBFQ1RfVFJVRShtX2hvc3RJbXBsLT5wcmVwYXJlVG9EcmF3KGZyYW1l
KSk7Ci0gICAgbV9ob3N0SW1wbC0+ZHJhd0xheWVycyhmcmFtZSk7Ci19Ci0KIGNsYXNzIEJsZW5k
U3RhdGVUcmFja2VyQ29udGV4dDogcHVibGljIEZha2VXZWJHcmFwaGljc0NvbnRleHQzRCB7CiBw
dWJsaWM6CiAgICAgQmxlbmRTdGF0ZVRyYWNrZXJDb250ZXh0KCkgOiBtX2JsZW5kKGZhbHNlKSB7
IH0KQEAgLTU4Niw3ICs1MTMsNyBAQCBjbGFzcyBCbGVuZFN0YXRlQ2hlY2tMYXllciA6IHB1Ymxp
YyBDQ0xheWVySW1wbCB7CiBwdWJsaWM6CiAgICAgc3RhdGljIFBhc3NPd25QdHI8QmxlbmRTdGF0
ZUNoZWNrTGF5ZXI+IGNyZWF0ZShpbnQgaWQpIHsgcmV0dXJuIGFkb3B0UHRyKG5ldyBCbGVuZFN0
YXRlQ2hlY2tMYXllcihpZCkpOyB9CiAKLSAgICB2aXJ0dWFsIHZvaWQgYXBwZW5kUXVhZHMoQ0NR
dWFkQ3VsbGVyJiBxdWFkTGlzdCwgY29uc3QgQ0NTaGFyZWRRdWFkU3RhdGUqIHNoYXJlZFF1YWRT
dGF0ZSwgYm9vbCYpCisgICAgdmlydHVhbCB2b2lkIGFwcGVuZFF1YWRzKENDUXVhZEN1bGxlciYg
cXVhZExpc3QsIGNvbnN0IENDU2hhcmVkUXVhZFN0YXRlKiBzaGFyZWRRdWFkU3RhdGUpCiAgICAg
ewogICAgICAgICBtX3F1YWRzQXBwZW5kZWQgPSB0cnVlOwogCkBAIC02NTcsMzAgKzU4NCwyNSBA
QCBURVNUX0YoQ0NMYXllclRyZWVIb3N0SW1wbFRlc3QsIGJsZW5kaW5nT2ZmV2hlbkRyYXdpbmdP
cGFxdWVMYXllcnMpCiAgICAgcm9vdC0+YWRkQ2hpbGQoQmxlbmRTdGF0ZUNoZWNrTGF5ZXI6OmNy
ZWF0ZSgxKSk7CiAgICAgQmxlbmRTdGF0ZUNoZWNrTGF5ZXIqIGxheWVyMSA9IHN0YXRpY19jYXN0
PEJsZW5kU3RhdGVDaGVja0xheWVyKj4ocm9vdC0+Y2hpbGRyZW4oKVswXS5nZXQoKSk7CiAKLSAg
ICBDQ0xheWVyVHJlZUhvc3RJbXBsOjpGcmFtZURhdGEgZnJhbWU7Ci0KICAgICAvLyBPcGFxdWUg
bGF5ZXIsIGRyYXduIHdpdGhvdXQgYmxlbmRpbmcuCiAgICAgbGF5ZXIxLT5zZXRPcGFxdWUodHJ1
ZSk7CiAgICAgbGF5ZXIxLT5zZXRPcGFxdWVDb250ZW50cyh0cnVlKTsKICAgICBsYXllcjEtPnNl
dEV4cGVjdGF0aW9uKGZhbHNlLCBmYWxzZSk7Ci0gICAgRVhQRUNUX1RSVUUobV9ob3N0SW1wbC0+
cHJlcGFyZVRvRHJhdyhmcmFtZSkpOwotICAgIG1faG9zdEltcGwtPmRyYXdMYXllcnMoZnJhbWUp
OworICAgIG1faG9zdEltcGwtPmRyYXdMYXllcnMoKTsKICAgICBFWFBFQ1RfVFJVRShsYXllcjEt
PnF1YWRzQXBwZW5kZWQoKSk7CiAKICAgICAvLyBMYXllciB3aXRoIHRyYW5zbHVjZW50IGNvbnRl
bnQsIGJ1dCBvcGFxdWUgY29udGVudCwgc28gZHJhd24gd2l0aG91dCBibGVuZGluZy4KICAgICBs
YXllcjEtPnNldE9wYXF1ZShmYWxzZSk7CiAgICAgbGF5ZXIxLT5zZXRPcGFxdWVDb250ZW50cyh0
cnVlKTsKICAgICBsYXllcjEtPnNldEV4cGVjdGF0aW9uKGZhbHNlLCBmYWxzZSk7Ci0gICAgRVhQ
RUNUX1RSVUUobV9ob3N0SW1wbC0+cHJlcGFyZVRvRHJhdyhmcmFtZSkpOwotICAgIG1faG9zdElt
cGwtPmRyYXdMYXllcnMoZnJhbWUpOworICAgIG1faG9zdEltcGwtPmRyYXdMYXllcnMoKTsKICAg
ICBFWFBFQ1RfVFJVRShsYXllcjEtPnF1YWRzQXBwZW5kZWQoKSk7CiAKICAgICAvLyBMYXllciB3
aXRoIHRyYW5zbHVjZW50IGNvbnRlbnQgYW5kIHBhaW50aW5nLCBzbyBkcmF3biB3aXRoIGJsZW5k
aW5nLgogICAgIGxheWVyMS0+c2V0T3BhcXVlKGZhbHNlKTsKICAgICBsYXllcjEtPnNldE9wYXF1
ZUNvbnRlbnRzKGZhbHNlKTsKICAgICBsYXllcjEtPnNldEV4cGVjdGF0aW9uKHRydWUsIGZhbHNl
KTsKLSAgICBFWFBFQ1RfVFJVRShtX2hvc3RJbXBsLT5wcmVwYXJlVG9EcmF3KGZyYW1lKSk7Ci0g
ICAgbV9ob3N0SW1wbC0+ZHJhd0xheWVycyhmcmFtZSk7CisgICAgbV9ob3N0SW1wbC0+ZHJhd0xh
eWVycygpOwogICAgIEVYUEVDVF9UUlVFKGxheWVyMS0+cXVhZHNBcHBlbmRlZCgpKTsKIAogICAg
IC8vIExheWVyIHdpdGggdHJhbnNsdWNlbnQgb3BhY2l0eSwgZHJhd24gd2l0aCBibGVuZGluZy4K
QEAgLTY4OCw4ICs2MTAsNyBAQCBURVNUX0YoQ0NMYXllclRyZWVIb3N0SW1wbFRlc3QsIGJsZW5k
aW5nT2ZmV2hlbkRyYXdpbmdPcGFxdWVMYXllcnMpCiAgICAgbGF5ZXIxLT5zZXRPcGFxdWVDb250
ZW50cyh0cnVlKTsKICAgICBsYXllcjEtPnNldE9wYWNpdHkoMC41KTsKICAgICBsYXllcjEtPnNl
dEV4cGVjdGF0aW9uKHRydWUsIGZhbHNlKTsKLSAgICBFWFBFQ1RfVFJVRShtX2hvc3RJbXBsLT5w
cmVwYXJlVG9EcmF3KGZyYW1lKSk7Ci0gICAgbV9ob3N0SW1wbC0+ZHJhd0xheWVycyhmcmFtZSk7
CisgICAgbV9ob3N0SW1wbC0+ZHJhd0xheWVycygpOwogICAgIEVYUEVDVF9UUlVFKGxheWVyMS0+
cXVhZHNBcHBlbmRlZCgpKTsKIAogICAgIC8vIExheWVyIHdpdGggdHJhbnNsdWNlbnQgb3BhY2l0
eSBhbmQgcGFpbnRpbmcsIGRyYXduIHdpdGggYmxlbmRpbmcuCkBAIC02OTcsOCArNjE4LDcgQEAg
VEVTVF9GKENDTGF5ZXJUcmVlSG9zdEltcGxUZXN0LCBibGVuZGluZ09mZldoZW5EcmF3aW5nT3Bh
cXVlTGF5ZXJzKQogICAgIGxheWVyMS0+c2V0T3BhcXVlQ29udGVudHMoZmFsc2UpOwogICAgIGxh
eWVyMS0+c2V0T3BhY2l0eSgwLjUpOwogICAgIGxheWVyMS0+c2V0RXhwZWN0YXRpb24odHJ1ZSwg
ZmFsc2UpOwotICAgIEVYUEVDVF9UUlVFKG1faG9zdEltcGwtPnByZXBhcmVUb0RyYXcoZnJhbWUp
KTsKLSAgICBtX2hvc3RJbXBsLT5kcmF3TGF5ZXJzKGZyYW1lKTsKKyAgICBtX2hvc3RJbXBsLT5k
cmF3TGF5ZXJzKCk7CiAgICAgRVhQRUNUX1RSVUUobGF5ZXIxLT5xdWFkc0FwcGVuZGVkKCkpOwog
CiAgICAgbGF5ZXIxLT5hZGRDaGlsZChCbGVuZFN0YXRlQ2hlY2tMYXllcjo6Y3JlYXRlKDIpKTsK
QEAgLTcxMyw4ICs2MzMsNyBAQCBURVNUX0YoQ0NMYXllclRyZWVIb3N0SW1wbFRlc3QsIGJsZW5k
aW5nT2ZmV2hlbkRyYXdpbmdPcGFxdWVMYXllcnMpCiAgICAgbGF5ZXIyLT5zZXRPcGFxdWVDb250
ZW50cyh0cnVlKTsKICAgICBsYXllcjItPnNldE9wYWNpdHkoMSk7CiAgICAgbGF5ZXIyLT5zZXRF
eHBlY3RhdGlvbihmYWxzZSwgZmFsc2UpOwotICAgIEVYUEVDVF9UUlVFKG1faG9zdEltcGwtPnBy
ZXBhcmVUb0RyYXcoZnJhbWUpKTsKLSAgICBtX2hvc3RJbXBsLT5kcmF3TGF5ZXJzKGZyYW1lKTsK
KyAgICBtX2hvc3RJbXBsLT5kcmF3TGF5ZXJzKCk7CiAgICAgRVhQRUNUX1RSVUUobGF5ZXIxLT5x
dWFkc0FwcGVuZGVkKCkpOwogICAgIEVYUEVDVF9UUlVFKGxheWVyMi0+cXVhZHNBcHBlbmRlZCgp
KTsKIApAQCAtNzI0LDggKzY0Myw3IEBAIFRFU1RfRihDQ0xheWVyVHJlZUhvc3RJbXBsVGVzdCwg
YmxlbmRpbmdPZmZXaGVuRHJhd2luZ09wYXF1ZUxheWVycykKICAgICBsYXllcjEtPnNldE9wYXF1
ZUNvbnRlbnRzKGZhbHNlKTsKICAgICBsYXllcjEtPnNldEV4cGVjdGF0aW9uKHRydWUsIGZhbHNl
KTsKICAgICBsYXllcjItPnNldEV4cGVjdGF0aW9uKGZhbHNlLCBmYWxzZSk7Ci0gICAgRVhQRUNU
X1RSVUUobV9ob3N0SW1wbC0+cHJlcGFyZVRvRHJhdyhmcmFtZSkpOwotICAgIG1faG9zdEltcGwt
PmRyYXdMYXllcnMoZnJhbWUpOworICAgIG1faG9zdEltcGwtPmRyYXdMYXllcnMoKTsKICAgICBF
WFBFQ1RfVFJVRShsYXllcjEtPnF1YWRzQXBwZW5kZWQoKSk7CiAgICAgRVhQRUNUX1RSVUUobGF5
ZXIyLT5xdWFkc0FwcGVuZGVkKCkpOwogCkBAIC03MzUsOCArNjUzLDcgQEAgVEVTVF9GKENDTGF5
ZXJUcmVlSG9zdEltcGxUZXN0LCBibGVuZGluZ09mZldoZW5EcmF3aW5nT3BhcXVlTGF5ZXJzKQog
ICAgIGxheWVyMS0+c2V0T3BhcXVlQ29udGVudHModHJ1ZSk7CiAgICAgbGF5ZXIxLT5zZXRFeHBl
Y3RhdGlvbihmYWxzZSwgZmFsc2UpOwogICAgIGxheWVyMi0+c2V0RXhwZWN0YXRpb24oZmFsc2Us
IGZhbHNlKTsKLSAgICBFWFBFQ1RfVFJVRShtX2hvc3RJbXBsLT5wcmVwYXJlVG9EcmF3KGZyYW1l
KSk7Ci0gICAgbV9ob3N0SW1wbC0+ZHJhd0xheWVycyhmcmFtZSk7CisgICAgbV9ob3N0SW1wbC0+
ZHJhd0xheWVycygpOwogICAgIEVYUEVDVF9UUlVFKGxheWVyMS0+cXVhZHNBcHBlbmRlZCgpKTsK
ICAgICBFWFBFQ1RfVFJVRShsYXllcjItPnF1YWRzQXBwZW5kZWQoKSk7CiAKQEAgLTc1MCw4ICs2
NjcsNyBAQCBURVNUX0YoQ0NMYXllclRyZWVIb3N0SW1wbFRlc3QsIGJsZW5kaW5nT2ZmV2hlbkRy
YXdpbmdPcGFxdWVMYXllcnMpCiAgICAgbGF5ZXIxLT5zZXRPcGFjaXR5KDAuNSk7CiAgICAgbGF5
ZXIxLT5zZXRFeHBlY3RhdGlvbihmYWxzZSwgdHJ1ZSk7CiAgICAgbGF5ZXIyLT5zZXRFeHBlY3Rh
dGlvbihmYWxzZSwgZmFsc2UpOwotICAgIEVYUEVDVF9UUlVFKG1faG9zdEltcGwtPnByZXBhcmVU
b0RyYXcoZnJhbWUpKTsKLSAgICBtX2hvc3RJbXBsLT5kcmF3TGF5ZXJzKGZyYW1lKTsKKyAgICBt
X2hvc3RJbXBsLT5kcmF3TGF5ZXJzKCk7CiAgICAgRVhQRUNUX1RSVUUobGF5ZXIxLT5xdWFkc0Fw
cGVuZGVkKCkpOwogICAgIEVYUEVDVF9UUlVFKGxheWVyMi0+cXVhZHNBcHBlbmRlZCgpKTsKIApA
QCAtNzY1LDggKzY4MSw3IEBAIFRFU1RfRihDQ0xheWVyVHJlZUhvc3RJbXBsVGVzdCwgYmxlbmRp
bmdPZmZXaGVuRHJhd2luZ09wYXF1ZUxheWVycykKICAgICBsYXllcjItPnNldE9wYXF1ZUNvbnRl
bnRzKHRydWUpOwogICAgIGxheWVyMi0+c2V0T3BhY2l0eSgwLjUpOwogICAgIGxheWVyMi0+c2V0
RXhwZWN0YXRpb24odHJ1ZSwgZmFsc2UpOwotICAgIEVYUEVDVF9UUlVFKG1faG9zdEltcGwtPnBy
ZXBhcmVUb0RyYXcoZnJhbWUpKTsKLSAgICBtX2hvc3RJbXBsLT5kcmF3TGF5ZXJzKGZyYW1lKTsK
KyAgICBtX2hvc3RJbXBsLT5kcmF3TGF5ZXJzKCk7CiAgICAgRVhQRUNUX1RSVUUobGF5ZXIxLT5x
dWFkc0FwcGVuZGVkKCkpOwogICAgIEVYUEVDVF9UUlVFKGxheWVyMi0+cXVhZHNBcHBlbmRlZCgp
KTsKIApAQCAtNzc4LDggKzY5Myw3IEBAIFRFU1RfRihDQ0xheWVyVHJlZUhvc3RJbXBsVGVzdCwg
YmxlbmRpbmdPZmZXaGVuRHJhd2luZ09wYXF1ZUxheWVycykKICAgICBsYXllcjItPnNldE9wYXF1
ZUNvbnRlbnRzKGZhbHNlKTsKICAgICBsYXllcjItPnNldE9wYWNpdHkoMSk7CiAgICAgbGF5ZXIy
LT5zZXRFeHBlY3RhdGlvbih0cnVlLCBmYWxzZSk7Ci0gICAgRVhQRUNUX1RSVUUobV9ob3N0SW1w
bC0+cHJlcGFyZVRvRHJhdyhmcmFtZSkpOwotICAgIG1faG9zdEltcGwtPmRyYXdMYXllcnMoZnJh
bWUpOworICAgIG1faG9zdEltcGwtPmRyYXdMYXllcnMoKTsKICAgICBFWFBFQ1RfVFJVRShsYXll
cjEtPnF1YWRzQXBwZW5kZWQoKSk7CiAgICAgRVhQRUNUX1RSVUUobGF5ZXIyLT5xdWFkc0FwcGVu
ZGVkKCkpOwogCkBAIC03OTEsOCArNzA1LDcgQEAgVEVTVF9GKENDTGF5ZXJUcmVlSG9zdEltcGxU
ZXN0LCBibGVuZGluZ09mZldoZW5EcmF3aW5nT3BhcXVlTGF5ZXJzKQogICAgIGxheWVyMi0+c2V0
T3BhcXVlQ29udGVudHModHJ1ZSk7CiAgICAgbGF5ZXIyLT5zZXRPcGFjaXR5KDEpOwogICAgIGxh
eWVyMi0+c2V0RXhwZWN0YXRpb24oZmFsc2UsIGZhbHNlKTsKLSAgICBFWFBFQ1RfVFJVRShtX2hv
c3RJbXBsLT5wcmVwYXJlVG9EcmF3KGZyYW1lKSk7Ci0gICAgbV9ob3N0SW1wbC0+ZHJhd0xheWVy
cyhmcmFtZSk7CisgICAgbV9ob3N0SW1wbC0+ZHJhd0xheWVycygpOwogICAgIEVYUEVDVF9UUlVF
KGxheWVyMS0+cXVhZHNBcHBlbmRlZCgpKTsKICAgICBFWFBFQ1RfVFJVRShsYXllcjItPnF1YWRz
QXBwZW5kZWQoKSk7CiAKQEAgLTgwMyw4ICs3MTYsNyBAQCBURVNUX0YoQ0NMYXllclRyZWVIb3N0
SW1wbFRlc3QsIGJsZW5kaW5nT2ZmV2hlbkRyYXdpbmdPcGFxdWVMYXllcnMpCiAgICAgbGF5ZXIx
LT5zZXRPcGFxdWVDb250ZW50cyhmYWxzZSk7CiAgICAgbGF5ZXIxLT5zZXRPcGFxdWVDb250ZW50
UmVjdChJbnRSZWN0KDUsIDUsIDIsIDUpKTsKICAgICBsYXllcjEtPnNldEV4cGVjdGF0aW9uKHRy
dWUsIGZhbHNlKTsKLSAgICBFWFBFQ1RfVFJVRShtX2hvc3RJbXBsLT5wcmVwYXJlVG9EcmF3KGZy
YW1lKSk7Ci0gICAgbV9ob3N0SW1wbC0+ZHJhd0xheWVycyhmcmFtZSk7CisgICAgbV9ob3N0SW1w
bC0+ZHJhd0xheWVycygpOwogICAgIEVYUEVDVF9UUlVFKGxheWVyMS0+cXVhZHNBcHBlbmRlZCgp
KTsKIAogICAgIC8vIExheWVyIHdpdGggcGFydGlhbGx5IG9wYXF1ZSBjb250ZW50cyBwYXJ0aWFs
bHkgY3VsbGVkLCBkcmF3biB3aXRoIGJsZW5kaW5nLgpAQCAtODE0LDggKzcyNiw3IEBAIFRFU1Rf
RihDQ0xheWVyVHJlZUhvc3RJbXBsVGVzdCwgYmxlbmRpbmdPZmZXaGVuRHJhd2luZ09wYXF1ZUxh
eWVycykKICAgICBsYXllcjEtPnNldE9wYXF1ZUNvbnRlbnRzKGZhbHNlKTsKICAgICBsYXllcjEt
PnNldE9wYXF1ZUNvbnRlbnRSZWN0KEludFJlY3QoNSwgNSwgMiwgNSkpOwogICAgIGxheWVyMS0+
c2V0RXhwZWN0YXRpb24odHJ1ZSwgZmFsc2UpOwotICAgIEVYUEVDVF9UUlVFKG1faG9zdEltcGwt
PnByZXBhcmVUb0RyYXcoZnJhbWUpKTsKLSAgICBtX2hvc3RJbXBsLT5kcmF3TGF5ZXJzKGZyYW1l
KTsKKyAgICBtX2hvc3RJbXBsLT5kcmF3TGF5ZXJzKCk7CiAgICAgRVhQRUNUX1RSVUUobGF5ZXIx
LT5xdWFkc0FwcGVuZGVkKCkpOwogCiAgICAgLy8gTGF5ZXIgd2l0aCBwYXJ0aWFsbHkgb3BhcXVl
IGNvbnRlbnRzIGN1bGxlZCwgZHJhd24gd2l0aCBibGVuZGluZy4KQEAgLTgyNSw4ICs3MzYsNyBA
QCBURVNUX0YoQ0NMYXllclRyZWVIb3N0SW1wbFRlc3QsIGJsZW5kaW5nT2ZmV2hlbkRyYXdpbmdP
cGFxdWVMYXllcnMpCiAgICAgbGF5ZXIxLT5zZXRPcGFxdWVDb250ZW50cyhmYWxzZSk7CiAgICAg
bGF5ZXIxLT5zZXRPcGFxdWVDb250ZW50UmVjdChJbnRSZWN0KDUsIDUsIDIsIDUpKTsKICAgICBs
YXllcjEtPnNldEV4cGVjdGF0aW9uKHRydWUsIGZhbHNlKTsKLSAgICBFWFBFQ1RfVFJVRShtX2hv
c3RJbXBsLT5wcmVwYXJlVG9EcmF3KGZyYW1lKSk7Ci0gICAgbV9ob3N0SW1wbC0+ZHJhd0xheWVy
cyhmcmFtZSk7CisgICAgbV9ob3N0SW1wbC0+ZHJhd0xheWVycygpOwogICAgIEVYUEVDVF9UUlVF
KGxheWVyMS0+cXVhZHNBcHBlbmRlZCgpKTsKIAogICAgIC8vIExheWVyIHdpdGggcGFydGlhbGx5
IG9wYXF1ZSBjb250ZW50cyBhbmQgdHJhbnNsdWNlbnQgY29udGVudHMgY3VsbGVkLCBkcmF3biB3
aXRob3V0IGJsZW5kaW5nLgpAQCAtODM2LDggKzc0Niw3IEBAIFRFU1RfRihDQ0xheWVyVHJlZUhv
c3RJbXBsVGVzdCwgYmxlbmRpbmdPZmZXaGVuRHJhd2luZ09wYXF1ZUxheWVycykKICAgICBsYXll
cjEtPnNldE9wYXF1ZUNvbnRlbnRzKGZhbHNlKTsKICAgICBsYXllcjEtPnNldE9wYXF1ZUNvbnRl
bnRSZWN0KEludFJlY3QoNSwgNSwgMiwgNSkpOwogICAgIGxheWVyMS0+c2V0RXhwZWN0YXRpb24o
ZmFsc2UsIGZhbHNlKTsKLSAgICBFWFBFQ1RfVFJVRShtX2hvc3RJbXBsLT5wcmVwYXJlVG9EcmF3
KGZyYW1lKSk7Ci0gICAgbV9ob3N0SW1wbC0+ZHJhd0xheWVycyhmcmFtZSk7CisgICAgbV9ob3N0
SW1wbC0+ZHJhd0xheWVycygpOwogICAgIEVYUEVDVF9UUlVFKGxheWVyMS0+cXVhZHNBcHBlbmRl
ZCgpKTsKIAogfQpAQCAtODc5LDkgKzc4OCw3IEBAIFRFU1RfRihDQ0xheWVyVHJlZUhvc3RJbXBs
VGVzdCwgcmVzaGFwZU5vdENhbGxlZFVudGlsRHJhdykKICAgICBtX2hvc3RJbXBsLT5zZXRSb290
TGF5ZXIoYWRvcHRQdHIocm9vdCkpOwogICAgIEVYUEVDVF9GQUxTRShyZXNoYXBlVHJhY2tlci0+
cmVzaGFwZUNhbGxlZCgpKTsKIAotICAgIENDTGF5ZXJUcmVlSG9zdEltcGw6OkZyYW1lRGF0YSBm
cmFtZTsKLSAgICBFWFBFQ1RfVFJVRShtX2hvc3RJbXBsLT5wcmVwYXJlVG9EcmF3KGZyYW1lKSk7
Ci0gICAgbV9ob3N0SW1wbC0+ZHJhd0xheWVycyhmcmFtZSk7CisgICAgbV9ob3N0SW1wbC0+ZHJh
d0xheWVycygpOwogICAgIEVYUEVDVF9UUlVFKHJlc2hhcGVUcmFja2VyLT5yZXNoYXBlQ2FsbGVk
KCkpOwogfQogCkBAIC05MzMsMTEgKzg0MCw4IEBAIFRFU1RfRihDQ0xheWVyVHJlZUhvc3RJbXBs
VGVzdCwgcGFydGlhbFN3YXBSZWNlaXZlc0RhbWFnZVJlY3QpCiAgICAgcm9vdC0+YWRkQ2hpbGQo
YWRvcHRQdHIoY2hpbGQpKTsKICAgICBsYXllclRyZWVIb3N0SW1wbC0+c2V0Um9vdExheWVyKGFk
b3B0UHRyKHJvb3QpKTsKIAotICAgIENDTGF5ZXJUcmVlSG9zdEltcGw6OkZyYW1lRGF0YSBmcmFt
ZTsKLQogICAgIC8vIEZpcnN0IGZyYW1lLCB0aGUgZW50aXJlIHNjcmVlbiBzaG91bGQgZ2V0IHN3
YXBwZWQuCi0gICAgRVhQRUNUX1RSVUUobGF5ZXJUcmVlSG9zdEltcGwtPnByZXBhcmVUb0RyYXco
ZnJhbWUpKTsKLSAgICBsYXllclRyZWVIb3N0SW1wbC0+ZHJhd0xheWVycyhmcmFtZSk7CisgICAg
bGF5ZXJUcmVlSG9zdEltcGwtPmRyYXdMYXllcnMoKTsKICAgICBsYXllclRyZWVIb3N0SW1wbC0+
c3dhcEJ1ZmZlcnMoKTsKICAgICBJbnRSZWN0IGFjdHVhbFN3YXBSZWN0ID0gcGFydGlhbFN3YXBU
cmFja2VyLT5wYXJ0aWFsU3dhcFJlY3QoKTsKICAgICBJbnRSZWN0IGV4cGVjdGVkU3dhcFJlY3Qg
PSBJbnRSZWN0KEludFBvaW50Ojp6ZXJvKCksIEludFNpemUoNTAwLCA1MDApKTsKQEAgLTk1MSw4
ICs4NTUsNyBAQCBURVNUX0YoQ0NMYXllclRyZWVIb3N0SW1wbFRlc3QsIHBhcnRpYWxTd2FwUmVj
ZWl2ZXNEYW1hZ2VSZWN0KQogICAgIC8vIGV4cGVjdGVkIGRhbWFnZSByZWN0OiBJbnRSZWN0KElu
dFBvaW50Ojp6ZXJvKCksIEludFNpemUoMjYsIDI4KSk7CiAgICAgLy8gZXhwZWN0ZWQgc3dhcCBy
ZWN0OiB2ZXJ0aWNhbGx5IGZsaXBwZWQsIHdpdGggb3JpZ2luIGF0IGJvdHRvbSBsZWZ0IGNvcm5l
ci4KICAgICBjaGlsZC0+c2V0UG9zaXRpb24oRmxvYXRQb2ludCgwLCAwKSk7Ci0gICAgRVhQRUNU
X1RSVUUobGF5ZXJUcmVlSG9zdEltcGwtPnByZXBhcmVUb0RyYXcoZnJhbWUpKTsKLSAgICBsYXll
clRyZWVIb3N0SW1wbC0+ZHJhd0xheWVycyhmcmFtZSk7CisgICAgbGF5ZXJUcmVlSG9zdEltcGwt
PmRyYXdMYXllcnMoKTsKICAgICBsYXllclRyZWVIb3N0SW1wbC0+c3dhcEJ1ZmZlcnMoKTsKICAg
ICBhY3R1YWxTd2FwUmVjdCA9IHBhcnRpYWxTd2FwVHJhY2tlci0+cGFydGlhbFN3YXBSZWN0KCk7
CiAgICAgZXhwZWN0ZWRTd2FwUmVjdCA9IEludFJlY3QoSW50UG9pbnQoMCwgNTAwLTI4KSwgSW50
U2l6ZSgyNiwgMjgpKTsKQEAgLTk2Niw4ICs4NjksNyBAQCBURVNUX0YoQ0NMYXllclRyZWVIb3N0
SW1wbFRlc3QsIHBhcnRpYWxTd2FwUmVjZWl2ZXNEYW1hZ2VSZWN0KQogICAgIC8vIGV4cGVjdGVk
IHN3YXAgcmVjdDogZmxpcHBlZCBkYW1hZ2UgcmVjdCwgYnV0IGFsc28gY2xhbXBlZCB0byB2aWV3
cG9ydAogICAgIGxheWVyVHJlZUhvc3RJbXBsLT5zZXRWaWV3cG9ydFNpemUoSW50U2l6ZSgxMCwg
MTApKTsKICAgICByb290LT5zZXRPcGFjaXR5KDAuNyk7IC8vIHRoaXMgd2lsbCBkYW1hZ2UgZXZl
cnl0aGluZwotICAgIEVYUEVDVF9UUlVFKGxheWVyVHJlZUhvc3RJbXBsLT5wcmVwYXJlVG9EcmF3
KGZyYW1lKSk7Ci0gICAgbGF5ZXJUcmVlSG9zdEltcGwtPmRyYXdMYXllcnMoZnJhbWUpOworICAg
IGxheWVyVHJlZUhvc3RJbXBsLT5kcmF3TGF5ZXJzKCk7CiAgICAgbGF5ZXJUcmVlSG9zdEltcGwt
PnN3YXBCdWZmZXJzKCk7CiAgICAgYWN0dWFsU3dhcFJlY3QgPSBwYXJ0aWFsU3dhcFRyYWNrZXIt
PnBhcnRpYWxTd2FwUmVjdCgpOwogICAgIGV4cGVjdGVkU3dhcFJlY3QgPSBJbnRSZWN0KEludFBv
aW50Ojp6ZXJvKCksIEludFNpemUoMTAsIDEwKSk7CkBAIC05OTgsMjQgKzkwMCwxOSBAQCBURVNU
X0YoQ0NMYXllclRyZWVIb3N0SW1wbFRlc3QsIHZpc2liaWxpdHlDaGFuZ2VSZXNldHNEYW1hZ2Up
CiAgICAgcm9vdC0+c2V0RHJhd3NDb250ZW50KHRydWUpOwogICAgIGxheWVyVHJlZUhvc3RJbXBs
LT5zZXRSb290TGF5ZXIoYWRvcHRQdHIocm9vdCkpOwogCi0gICAgQ0NMYXllclRyZWVIb3N0SW1w
bDo6RnJhbWVEYXRhIGZyYW1lOwotCiAgICAgLy8gRmlyc3QgZnJhbWU6IGlnbm9yZS4KLSAgICBF
WFBFQ1RfVFJVRShsYXllclRyZWVIb3N0SW1wbC0+cHJlcGFyZVRvRHJhdyhmcmFtZSkpOwotICAg
IGxheWVyVHJlZUhvc3RJbXBsLT5kcmF3TGF5ZXJzKGZyYW1lKTsKKyAgICBsYXllclRyZWVIb3N0
SW1wbC0+ZHJhd0xheWVycygpOwogICAgIGxheWVyVHJlZUhvc3RJbXBsLT5zd2FwQnVmZmVycygp
OwogCiAgICAgLy8gU2Vjb25kIGZyYW1lOiBub3RoaW5nIGhhcyBjaGFuZ2VkIC0tLSBzbyB3ZSBz
b3VsZG4ndCBwdXNoIGFueXRoaW5nIHdpdGggcGFydGlhbCBzd2FwLgotICAgIEVYUEVDVF9UUlVF
KGxheWVyVHJlZUhvc3RJbXBsLT5wcmVwYXJlVG9EcmF3KGZyYW1lKSk7Ci0gICAgbGF5ZXJUcmVl
SG9zdEltcGwtPmRyYXdMYXllcnMoZnJhbWUpOworICAgIGxheWVyVHJlZUhvc3RJbXBsLT5kcmF3
TGF5ZXJzKCk7CiAgICAgbGF5ZXJUcmVlSG9zdEltcGwtPnN3YXBCdWZmZXJzKCk7CiAgICAgRVhQ
RUNUX1RSVUUocGFydGlhbFN3YXBUcmFja2VyLT5wYXJ0aWFsU3dhcFJlY3QoKS5pc0VtcHR5KCkp
OwogCiAgICAgLy8gVGhpcmQgZnJhbWU6IHZpc2liaWxpdHkgY2hhbmdlIC0tLSBzbyB3ZSBzaG91
bGQgcHVzaCBhIGZ1bGwgZnJhbWUgd2l0aCBwYXJ0aWFsIHN3YXAuCiAgICAgbGF5ZXJUcmVlSG9z
dEltcGwtPnNldFZpc2libGUoZmFsc2UpOwogICAgIGxheWVyVHJlZUhvc3RJbXBsLT5zZXRWaXNp
YmxlKHRydWUpOwotICAgIEVYUEVDVF9UUlVFKGxheWVyVHJlZUhvc3RJbXBsLT5wcmVwYXJlVG9E
cmF3KGZyYW1lKSk7Ci0gICAgbGF5ZXJUcmVlSG9zdEltcGwtPmRyYXdMYXllcnMoZnJhbWUpOwor
ICAgIGxheWVyVHJlZUhvc3RJbXBsLT5kcmF3TGF5ZXJzKCk7CiAgICAgbGF5ZXJUcmVlSG9zdElt
cGwtPnN3YXBCdWZmZXJzKCk7CiAgICAgSW50UmVjdCBhY3R1YWxTd2FwUmVjdCA9IHBhcnRpYWxT
d2FwVHJhY2tlci0+cGFydGlhbFN3YXBSZWN0KCk7CiAgICAgSW50UmVjdCBleHBlY3RlZFN3YXBS
ZWN0ID0gSW50UmVjdChJbnRQb2ludDo6emVybygpLCBJbnRTaXplKDUwMCwgNTAwKSk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0NDTGF5ZXJUcmVlSG9zdFRlc3Qu
Y3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9DQ0xheWVyVHJlZUhvc3RUZXN0LmNw
cAppbmRleCBjNzIzODM3MDJjMTEzZTIxMGMzNDQyNjc5NzdkOTVhODkzMWI0ZWUyLi41ZjdmYmNh
MGMwZjZiZDUzYjA3NzZiYmNjNDgwOTc0ODQxN2IyNWQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3Rlc3RzL0NDTGF5ZXJUcmVlSG9zdFRlc3QuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vdGVzdHMvQ0NMYXllclRyZWVIb3N0VGVzdC5jcHAKQEAgLTYzLDcgKzYz
LDYgQEAgY2xhc3MgVGVzdEhvb2tzIDogcHVibGljIENDTGF5ZXJBbmltYXRpb25EZWxlZ2F0ZSB7
CiBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGJlZ2luQ29tbWl0T25DQ1RocmVhZChDQ0xheWVy
VHJlZUhvc3RJbXBsKikgeyB9CiAgICAgdmlydHVhbCB2b2lkIGNvbW1pdENvbXBsZXRlT25DQ1Ro
cmVhZChDQ0xheWVyVHJlZUhvc3RJbXBsKikgeyB9Ci0gICAgdmlydHVhbCB2b2lkIHByZXBhcmVU
b0RyYXdPbkNDVGhyZWFkKENDTGF5ZXJUcmVlSG9zdEltcGwqKSB7IH0KICAgICB2aXJ0dWFsIHZv
aWQgZHJhd0xheWVyc09uQ0NUaHJlYWQoQ0NMYXllclRyZWVIb3N0SW1wbCopIHsgfQogICAgIHZp
cnR1YWwgdm9pZCBhbmltYXRlTGF5ZXJzKENDTGF5ZXJUcmVlSG9zdEltcGwqLCBkb3VibGUgbW9u
b3RvbmljVGltZSkgeyB9CiAgICAgdmlydHVhbCB2b2lkIGFwcGx5U2Nyb2xsQW5kU2NhbGUoY29u
c3QgSW50U2l6ZSYsIGZsb2F0KSB7IH0KQEAgLTk2LDE2ICs5NSw5IEBAIHB1YmxpYzoKICAgICAg
ICAgbV90ZXN0SG9va3MtPmNvbW1pdENvbXBsZXRlT25DQ1RocmVhZCh0aGlzKTsKICAgICB9CiAK
LSAgICB2aXJ0dWFsIGJvb2wgcHJlcGFyZVRvRHJhdyhGcmFtZURhdGEmIGZyYW1lKQorICAgIHZp
cnR1YWwgdm9pZCBkcmF3TGF5ZXJzKCkKICAgICB7Ci0gICAgICAgIGJvb2wgcmVzdWx0ID0gQ0NM
YXllclRyZWVIb3N0SW1wbDo6cHJlcGFyZVRvRHJhdyhmcmFtZSk7Ci0gICAgICAgIG1fdGVzdEhv
b2tzLT5wcmVwYXJlVG9EcmF3T25DQ1RocmVhZCh0aGlzKTsKLSAgICAgICAgcmV0dXJuIHJlc3Vs
dDsKLSAgICB9Ci0KLSAgICB2aXJ0dWFsIHZvaWQgZHJhd0xheWVycyhjb25zdCBGcmFtZURhdGEm
IGZyYW1lKQotICAgIHsKLSAgICAgICAgQ0NMYXllclRyZWVIb3N0SW1wbDo6ZHJhd0xheWVycyhm
cmFtZSk7CisgICAgICAgIENDTGF5ZXJUcmVlSG9zdEltcGw6OmRyYXdMYXllcnMoKTsKICAgICAg
ICAgbV90ZXN0SG9va3MtPmRyYXdMYXllcnNPbkNDVGhyZWFkKHRoaXMpOwogICAgIH0KIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9DQ1F1YWRDdWxsZXJUZXN0LmNw
cCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvQ0NRdWFkQ3VsbGVyVGVzdC5jcHAKaW5k
ZXggYWVmMGQ2ZWY1YTk2YzU3NDFhYWY1ZmJiMzU0YWJjZDBlNjc3NWQ3NC4uYzFiYmNlNjI1MjZk
MTUzYmU1ODI5ZTVhOWFmYWY5OTdmODE3OWQ4YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9j
aHJvbWl1bS90ZXN0cy9DQ1F1YWRDdWxsZXJUZXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL3Rlc3RzL0NDUXVhZEN1bGxlclRlc3QuY3BwCkBAIC04Miw4ICs4Miw3IEBAIHN0YXRp
YyB2b2lkIGFwcGVuZFF1YWRzKENDUXVhZExpc3QmIHF1YWRMaXN0LCBWZWN0b3I8T3duUHRyPEND
U2hhcmVkUXVhZFN0YXRlPiA+CiB7CiAgICAgQ0NRdWFkQ3VsbGVyIHF1YWRDdWxsZXIocXVhZExp
c3QsIGxheWVyLCAmb2NjbHVzaW9uVHJhY2tlcik7CiAgICAgT3duUHRyPENDU2hhcmVkUXVhZFN0
YXRlPiBzaGFyZWRRdWFkU3RhdGUgPSBsYXllci0+Y3JlYXRlU2hhcmVkUXVhZFN0YXRlKCk7Ci0g
ICAgYm9vbCB1c2VkQ2hlY2tlcmJvYXJkID0gZmFsc2U7Ci0gICAgbGF5ZXItPmFwcGVuZFF1YWRz
KHF1YWRDdWxsZXIsIHNoYXJlZFF1YWRTdGF0ZS5nZXQoKSwgdXNlZENoZWNrZXJib2FyZCk7Cisg
ICAgbGF5ZXItPmFwcGVuZFF1YWRzKHF1YWRDdWxsZXIsIHNoYXJlZFF1YWRTdGF0ZS5nZXQoKSk7
CiAgICAgc2hhcmVkU3RhdGVMaXN0LmFwcGVuZChzaGFyZWRRdWFkU3RhdGUucmVsZWFzZSgpKTsK
IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9DQ1NvbGlkQ29s
b3JMYXllckltcGxUZXN0LmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvQ0NTb2xp
ZENvbG9yTGF5ZXJJbXBsVGVzdC5jcHAKaW5kZXggMTJmOGMyMjRkZTUxZmM3OWNlYzRlZDRkOTRh
YTUwM2I5N2IwZDIxZC4uN2M3NDNkMmE3NjZhYzAyNzU2NzI5NDY1N2FkNGY0ODFmYjhhYzIxNyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9DQ1NvbGlkQ29sb3JMYXll
ckltcGxUZXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0NDU29saWRD
b2xvckxheWVySW1wbFRlc3QuY3BwCkBAIC01Miw4ICs1Miw3IEBAIFRFU1QoQ0NTb2xpZENvbG9y
TGF5ZXJJbXBsVGVzdCwgdmVyaWZ5VGlsaW5nQ29tcGxldGVBbmROb092ZXJsYXApCiAgICAgbGF5
ZXItPnNldEJvdW5kcyhsYXllclNpemUpOwogCiAgICAgT3duUHRyPENDU2hhcmVkUXVhZFN0YXRl
PiBzaGFyZWRRdWFkU3RhdGUgPSBsYXllci0+Y3JlYXRlU2hhcmVkUXVhZFN0YXRlKCk7Ci0gICAg
Ym9vbCB1c2VkQ2hlY2tlcmJvYXJkID0gZmFsc2U7Ci0gICAgbGF5ZXItPmFwcGVuZFF1YWRzKHF1
YWRDdWxsZXIsIHNoYXJlZFF1YWRTdGF0ZS5nZXQoKSwgdXNlZENoZWNrZXJib2FyZCk7CisgICAg
bGF5ZXItPmFwcGVuZFF1YWRzKHF1YWRDdWxsZXIsIHNoYXJlZFF1YWRTdGF0ZS5nZXQoKSk7CiAK
ICAgICB2ZXJpZnlRdWFkc0V4YWN0bHlDb3ZlclJlY3QocXVhZEN1bGxlci5xdWFkTGlzdCgpLCB2
aXNpYmxlTGF5ZXJSZWN0KTsKIH0KQEAgLTc0LDggKzczLDcgQEAgVEVTVChDQ1NvbGlkQ29sb3JM
YXllckltcGxUZXN0LCB2ZXJpZnlDb3JyZWN0QmFja2dyb3VuZENvbG9ySW5RdWFkKQogICAgIGxh
eWVyLT5zZXRCYWNrZ3JvdW5kQ29sb3IodGVzdENvbG9yKTsKIAogICAgIE93blB0cjxDQ1NoYXJl
ZFF1YWRTdGF0ZT4gc2hhcmVkUXVhZFN0YXRlID0gbGF5ZXItPmNyZWF0ZVNoYXJlZFF1YWRTdGF0
ZSgpOwotICAgIGJvb2wgdXNlZENoZWNrZXJib2FyZCA9IGZhbHNlOwotICAgIGxheWVyLT5hcHBl
bmRRdWFkcyhxdWFkQ3VsbGVyLCBzaGFyZWRRdWFkU3RhdGUuZ2V0KCksIHVzZWRDaGVja2VyYm9h
cmQpOworICAgIGxheWVyLT5hcHBlbmRRdWFkcyhxdWFkQ3VsbGVyLCBzaGFyZWRRdWFkU3RhdGUu
Z2V0KCkpOwogCiAgICAgQVNTRVJUX0VRKHF1YWRDdWxsZXIucXVhZExpc3QoKS5zaXplKCksIDFV
KTsKICAgICBFWFBFQ1RfRVEocXVhZEN1bGxlci5xdWFkTGlzdCgpWzBdLT50b1NvbGlkQ29sb3JE
cmF3UXVhZCgpLT5jb2xvcigpLCB0ZXN0Q29sb3IpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9jaHJvbWl1bS90ZXN0cy9DQ1RpbGVkTGF5ZXJJbXBsVGVzdC5jcHAgYi9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL3Rlc3RzL0NDVGlsZWRMYXllckltcGxUZXN0LmNwcAppbmRleCA1N2NhYTdkYzE3
MTRhMWY5ZTUyZTUyMWM1OGQ0MDM5MjUzNTM3YmI5Li5mZThjYThlYjAyMTdhZjUyMzMyNGUyMGNj
NzRlYWYxYzUzZGRhOGZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3Rz
L0NDVGlsZWRMYXllckltcGxUZXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rl
c3RzL0NDVGlsZWRMYXllckltcGxUZXN0LmNwcApAQCAtNzIsOCArNzIsNyBAQCBURVNUKENDVGls
ZWRMYXllckltcGxUZXN0LCBlbXB0eVF1YWRMaXN0KQogICAgICAgICBPd25QdHI8Q0NUaWxlZExh
eWVySW1wbD4gbGF5ZXIgPSBjcmVhdGVMYXllcih0aWxlU2l6ZSwgbGF5ZXJTaXplLCBDQ0xheWVy
VGlsaW5nRGF0YTo6Tm9Cb3JkZXJUZXhlbHMpOwogICAgICAgICBNb2NrQ0NRdWFkQ3VsbGVyIHF1
YWRDdWxsZXI7CiAgICAgICAgIE93blB0cjxDQ1NoYXJlZFF1YWRTdGF0ZT4gc2hhcmVkUXVhZFN0
YXRlID0gbGF5ZXItPmNyZWF0ZVNoYXJlZFF1YWRTdGF0ZSgpOwotICAgICAgICBib29sIHVzZWRD
aGVja2VyYm9hcmQgPSBmYWxzZTsKLSAgICAgICAgbGF5ZXItPmFwcGVuZFF1YWRzKHF1YWRDdWxs
ZXIsIHNoYXJlZFF1YWRTdGF0ZS5nZXQoKSwgdXNlZENoZWNrZXJib2FyZCk7CisgICAgICAgIGxh
eWVyLT5hcHBlbmRRdWFkcyhxdWFkQ3VsbGVyLCBzaGFyZWRRdWFkU3RhdGUuZ2V0KCkpOwogICAg
ICAgICBjb25zdCB1bnNpZ25lZCBudW1UaWxlcyA9IG51bVRpbGVzWCAqIG51bVRpbGVzWTsKICAg
ICAgICAgRVhQRUNUX0VRKHF1YWRDdWxsZXIucXVhZExpc3QoKS5zaXplKCksIG51bVRpbGVzKTsK
ICAgICB9CkBAIC04NSw4ICs4NCw3IEBAIFRFU1QoQ0NUaWxlZExheWVySW1wbFRlc3QsIGVtcHR5
UXVhZExpc3QpCiAKICAgICAgICAgTW9ja0NDUXVhZEN1bGxlciBxdWFkQ3VsbGVyOwogICAgICAg
ICBPd25QdHI8Q0NTaGFyZWRRdWFkU3RhdGU+IHNoYXJlZFF1YWRTdGF0ZSA9IGxheWVyLT5jcmVh
dGVTaGFyZWRRdWFkU3RhdGUoKTsKLSAgICAgICAgYm9vbCB1c2VkQ2hlY2tlcmJvYXJkID0gZmFs
c2U7Ci0gICAgICAgIGxheWVyLT5hcHBlbmRRdWFkcyhxdWFkQ3VsbGVyLCBzaGFyZWRRdWFkU3Rh
dGUuZ2V0KCksIHVzZWRDaGVja2VyYm9hcmQpOworICAgICAgICBsYXllci0+YXBwZW5kUXVhZHMo
cXVhZEN1bGxlciwgc2hhcmVkUXVhZFN0YXRlLmdldCgpKTsKICAgICAgICAgRVhQRUNUX0VRKHF1
YWRDdWxsZXIucXVhZExpc3QoKS5zaXplKCksIDB1KTsKICAgICB9CiAKQEAgLTk5LDggKzk3LDcg
QEAgVEVTVChDQ1RpbGVkTGF5ZXJJbXBsVGVzdCwgZW1wdHlRdWFkTGlzdCkKIAogICAgICAgICBN
b2NrQ0NRdWFkQ3VsbGVyIHF1YWRDdWxsZXI7CiAgICAgICAgIE93blB0cjxDQ1NoYXJlZFF1YWRT
dGF0ZT4gc2hhcmVkUXVhZFN0YXRlID0gbGF5ZXItPmNyZWF0ZVNoYXJlZFF1YWRTdGF0ZSgpOwot
ICAgICAgICBib29sIHVzZWRDaGVja2VyYm9hcmQgPSBmYWxzZTsKLSAgICAgICAgbGF5ZXItPmFw
cGVuZFF1YWRzKHF1YWRDdWxsZXIsIHNoYXJlZFF1YWRTdGF0ZS5nZXQoKSwgdXNlZENoZWNrZXJi
b2FyZCk7CisgICAgICAgIGxheWVyLT5hcHBlbmRRdWFkcyhxdWFkQ3VsbGVyLCBzaGFyZWRRdWFk
U3RhdGUuZ2V0KCkpOwogICAgICAgICBFWFBFQ1RfRVEocXVhZEN1bGxlci5xdWFkTGlzdCgpLnNp
emUoKSwgMHUpOwogICAgIH0KIApAQCAtMTExLDggKzEwOCw3IEBAIFRFU1QoQ0NUaWxlZExheWVy
SW1wbFRlc3QsIGVtcHR5UXVhZExpc3QpCiAKICAgICAgICAgTW9ja0NDUXVhZEN1bGxlciBxdWFk
Q3VsbGVyOwogICAgICAgICBPd25QdHI8Q0NTaGFyZWRRdWFkU3RhdGU+IHNoYXJlZFF1YWRTdGF0
ZSA9IGxheWVyLT5jcmVhdGVTaGFyZWRRdWFkU3RhdGUoKTsKLSAgICAgICAgYm9vbCB1c2VkQ2hl
Y2tlcmJvYXJkID0gZmFsc2U7Ci0gICAgICAgIGxheWVyLT5hcHBlbmRRdWFkcyhxdWFkQ3VsbGVy
LCBzaGFyZWRRdWFkU3RhdGUuZ2V0KCksIHVzZWRDaGVja2VyYm9hcmQpOworICAgICAgICBsYXll
ci0+YXBwZW5kUXVhZHMocXVhZEN1bGxlciwgc2hhcmVkUXVhZFN0YXRlLmdldCgpKTsKICAgICAg
ICAgRVhQRUNUX0VRKHF1YWRDdWxsZXIucXVhZExpc3QoKS5zaXplKCksIDB1KTsKICAgICB9CiB9
CkBAIC0xMzIsMTAgKzEyOCw4IEBAIFRFU1QoQ0NUaWxlZExheWVySW1wbFRlc3QsIGNoZWNrZXJi
b2FyZGluZykKICAgICAvLyBObyBjaGVja2VyYm9hcmRpbmcKICAgICB7CiAgICAgICAgIE1vY2tD
Q1F1YWRDdWxsZXIgcXVhZEN1bGxlcjsKLSAgICAgICAgYm9vbCB1c2VkQ2hlY2tlcmJvYXJkID0g
ZmFsc2U7Ci0gICAgICAgIGxheWVyLT5hcHBlbmRRdWFkcyhxdWFkQ3VsbGVyLCBzaGFyZWRRdWFk
U3RhdGUuZ2V0KCksIHVzZWRDaGVja2VyYm9hcmQpOworICAgICAgICBsYXllci0+YXBwZW5kUXVh
ZHMocXVhZEN1bGxlciwgc2hhcmVkUXVhZFN0YXRlLmdldCgpKTsKICAgICAgICAgRVhQRUNUX0VR
KHF1YWRDdWxsZXIucXVhZExpc3QoKS5zaXplKCksIDR1KTsKLSAgICAgICAgRVhQRUNUX0ZBTFNF
KHVzZWRDaGVja2VyYm9hcmQpOwogCiAgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgcXVh
ZEN1bGxlci5xdWFkTGlzdCgpLnNpemUoKTsgKytpKQogICAgICAgICAgICAgRVhQRUNUX0VRKHF1
YWRDdWxsZXIucXVhZExpc3QoKVtpXS0+bWF0ZXJpYWwoKSwgQ0NEcmF3UXVhZDo6VGlsZWRDb250
ZW50KTsKQEAgLTE0OCw5ICsxNDIsNyBAQCBURVNUKENDVGlsZWRMYXllckltcGxUZXN0LCBjaGVj
a2VyYm9hcmRpbmcpCiAgICAgLy8gQWxsIGNoZWNrZXJib2FyZGluZwogICAgIHsKICAgICAgICAg
TW9ja0NDUXVhZEN1bGxlciBxdWFkQ3VsbGVyOwotICAgICAgICBib29sIHVzZWRDaGVja2VyYm9h
cmQgPSBmYWxzZTsKLSAgICAgICAgbGF5ZXItPmFwcGVuZFF1YWRzKHF1YWRDdWxsZXIsIHNoYXJl
ZFF1YWRTdGF0ZS5nZXQoKSwgdXNlZENoZWNrZXJib2FyZCk7Ci0gICAgICAgIEVYUEVDVF9UUlVF
KHVzZWRDaGVja2VyYm9hcmQpOworICAgICAgICBsYXllci0+YXBwZW5kUXVhZHMocXVhZEN1bGxl
ciwgc2hhcmVkUXVhZFN0YXRlLmdldCgpKTsKICAgICAgICAgRVhQRUNUX0VRKHF1YWRDdWxsZXIu
cXVhZExpc3QoKS5zaXplKCksIDR1KTsKICAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBx
dWFkQ3VsbGVyLnF1YWRMaXN0KCkuc2l6ZSgpOyArK2kpCiAgICAgICAgICAgICBFWFBFQ1RfRVEo
cXVhZEN1bGxlci5xdWFkTGlzdCgpW2ldLT5tYXRlcmlhbCgpLCBDQ0RyYXdRdWFkOjpTb2xpZENv
bG9yKTsKQEAgLTE2NSw4ICsxNTcsNyBAQCBzdGF0aWMgUGFzc093blB0cjxDQ1NoYXJlZFF1YWRT
dGF0ZT4gZ2V0UXVhZHMoQ0NRdWFkTGlzdCYgcXVhZHMsIEludFNpemUgdGlsZVNpegogCiAgICAg
TW9ja0NDUXVhZEN1bGxlciBxdWFkQ3VsbGVyKHF1YWRzKTsKICAgICBPd25QdHI8Q0NTaGFyZWRR
dWFkU3RhdGU+IHNoYXJlZFF1YWRTdGF0ZSA9IGxheWVyLT5jcmVhdGVTaGFyZWRRdWFkU3RhdGUo
KTsKLSAgICBib29sIHVzZWRDaGVja2VyYm9hcmQgPSBmYWxzZTsKLSAgICBsYXllci0+YXBwZW5k
UXVhZHMocXVhZEN1bGxlciwgc2hhcmVkUXVhZFN0YXRlLmdldCgpLCB1c2VkQ2hlY2tlcmJvYXJk
KTsKKyAgICBsYXllci0+YXBwZW5kUXVhZHMocXVhZEN1bGxlciwgc2hhcmVkUXVhZFN0YXRlLmdl
dCgpKTsKICAgICByZXR1cm4gc2hhcmVkUXVhZFN0YXRlLnJlbGVhc2UoKTsgLy8gVGhlIHNoYXJl
ZCBkYXRhIG11c3QgYmUgb3duZWQgYXMgbG9uZyBhcyB0aGUgcXVhZCBsaXN0IGV4aXN0cy4KIH0K
IApAQCAtMjg0LDggKzI3NSw3IEBAIFRFU1QoQ0NUaWxlZExheWVySW1wbFRlc3QsIGJhY2tncm91
bmRDb3ZlcnNWaWV3cG9ydCkKICAgICAgICAgT3duUHRyPENDU2hhcmVkUXVhZFN0YXRlPiBzaGFy
ZWRRdWFkU3RhdGUgPSBsYXllci0+Y3JlYXRlU2hhcmVkUXVhZFN0YXRlKCk7CiAKICAgICAgICAg
TW9ja0NDUXVhZEN1bGxlciBxdWFkQ3VsbGVyOwotICAgICAgICBib29sIHVzZWRDaGVja2VyYm9h
cmQgPSBmYWxzZTsKLSAgICAgICAgbGF5ZXItPmFwcGVuZFF1YWRzKHF1YWRDdWxsZXIsIHNoYXJl
ZFF1YWRTdGF0ZS5nZXQoKSwgdXNlZENoZWNrZXJib2FyZCk7CisgICAgICAgIGxheWVyLT5hcHBl
bmRRdWFkcyhxdWFkQ3VsbGVyLCBzaGFyZWRRdWFkU3RhdGUuZ2V0KCkpOwogICAgICAgICBFWFBF
Q1RfRVEocXVhZEN1bGxlci5xdWFkTGlzdCgpLnNpemUoKSwgbnVtVGlsZXMpOwogCiAgICAgICAg
IGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgcXVhZEN1bGxlci5xdWFkTGlzdCgpLnNpemUoKTsgKytp
KQpAQCAtMzAwLDggKzI5MCw3IEBAIFRFU1QoQ0NUaWxlZExheWVySW1wbFRlc3QsIGJhY2tncm91
bmRDb3ZlcnNWaWV3cG9ydCkKIAogICAgICAgICBPd25QdHI8Q0NTaGFyZWRRdWFkU3RhdGU+IHNo
YXJlZFF1YWRTdGF0ZSA9IGxheWVyLT5jcmVhdGVTaGFyZWRRdWFkU3RhdGUoKTsKICAgICAgICAg
TW9ja0NDUXVhZEN1bGxlciBxdWFkQ3VsbGVyOwotICAgICAgICBib29sIHVzZWRDaGVja2VyYm9h
cmQgPSBmYWxzZTsKLSAgICAgICAgbGF5ZXItPmFwcGVuZFF1YWRzKHF1YWRDdWxsZXIsIHNoYXJl
ZFF1YWRTdGF0ZS5nZXQoKSwgdXNlZENoZWNrZXJib2FyZCk7CisgICAgICAgIGxheWVyLT5hcHBl
bmRRdWFkcyhxdWFkQ3VsbGVyLCBzaGFyZWRRdWFkU3RhdGUuZ2V0KCkpOwogCiAgICAgICAgIGZv
ciAoc2l6ZV90IGkgPSAwOyBpIDwgcXVhZEN1bGxlci5xdWFkTGlzdCgpLnNpemUoKTsgKytpKQog
ICAgICAgICAgICAgRVhQRUNUX0VRKHF1YWRDdWxsZXIucXVhZExpc3QoKVtpXS0+bWF0ZXJpYWwo
KSwgQ0NEcmF3UXVhZDo6U29saWRDb2xvcik7CkBAIC0zMTcsOCArMzA2LDcgQEAgVEVTVChDQ1Rp
bGVkTGF5ZXJJbXBsVGVzdCwgYmFja2dyb3VuZENvdmVyc1ZpZXdwb3J0KQogCiAgICAgICAgIE93
blB0cjxDQ1NoYXJlZFF1YWRTdGF0ZT4gc2hhcmVkUXVhZFN0YXRlID0gbGF5ZXItPmNyZWF0ZVNo
YXJlZFF1YWRTdGF0ZSgpOwogICAgICAgICBNb2NrQ0NRdWFkQ3VsbGVyIHF1YWRDdWxsZXI7Ci0g
ICAgICAgIGJvb2wgdXNlZENoZWNrZXJib2FyZCA9IGZhbHNlOwotICAgICAgICBsYXllci0+YXBw
ZW5kUXVhZHMocXVhZEN1bGxlciwgc2hhcmVkUXVhZFN0YXRlLmdldCgpLCB1c2VkQ2hlY2tlcmJv
YXJkKTsKKyAgICAgICAgbGF5ZXItPmFwcGVuZFF1YWRzKHF1YWRDdWxsZXIsIHNoYXJlZFF1YWRT
dGF0ZS5nZXQoKSk7CiAKICAgICAgICAgdW5zaWduZWQgbnVtQ29udGVudFRpbGVzID0gMCwgbnVt
R3V0dGVyVGlsZXMgPSAwOwogICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHF1YWRDdWxs
ZXIucXVhZExpc3QoKS5zaXplKCk7ICsraSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9j
aHJvbWl1bS90ZXN0cy9Nb2NrQ0NRdWFkQ3VsbGVyLmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3Rlc3RzL01vY2tDQ1F1YWRDdWxsZXIuaAppbmRleCBkOWNkMzEzMjY4MzBiZDEyMjAzMWNmMGM4
ZTE4ZWRjZDkwZWM5NWM3Li43OTFhZjUwMzNmNzhmNjYxMGFhMjY2NTJiMzRiYjhkZmUwN2Y4ZGI5
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL01vY2tDQ1F1YWRDdWxs
ZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL01vY2tDQ1F1YWRDdWxsZXIu
aApAQCAtNDQsMTQgKzQ0LDExIEBAIHB1YmxpYzoKICAgICAgICAgLCBtX2FjdGl2ZVF1YWRMaXN0
KGV4dGVybmFsUXVhZExpc3QpCiAgICAgeyB9CiAKLSAgICB2aXJ0dWFsIGJvb2wgYXBwZW5kKFdU
Rjo6UGFzc093blB0cjxXZWJDb3JlOjpDQ0RyYXdRdWFkPiBuZXdRdWFkKQorICAgIHZpcnR1YWwg
dm9pZCBhcHBlbmQoV1RGOjpQYXNzT3duUHRyPFdlYkNvcmU6OkNDRHJhd1F1YWQ+IG5ld1F1YWQp
CiAgICAgewogICAgICAgICBPd25QdHI8V2ViQ29yZTo6Q0NEcmF3UXVhZD4gZHJhd1F1YWQgPSBu
ZXdRdWFkOwotICAgICAgICBpZiAoIWRyYXdRdWFkLT5xdWFkUmVjdCgpLmlzRW1wdHkoKSkgewor
ICAgICAgICBpZiAoIWRyYXdRdWFkLT5xdWFkUmVjdCgpLmlzRW1wdHkoKSkKICAgICAgICAgICAg
IG1fYWN0aXZlUXVhZExpc3QuYXBwZW5kKGRyYXdRdWFkLnJlbGVhc2UoKSk7Ci0gICAgICAgICAg
ICByZXR1cm4gdHJ1ZTsKLSAgICAgICAgfQotICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQog
CiAgICAgY29uc3QgV2ViQ29yZTo6Q0NRdWFkTGlzdCYgcXVhZExpc3QoKSBjb25zdCB7IHJldHVy
biBtX2FjdGl2ZVF1YWRMaXN0OyB9Owo=
</data>

          </attachment>
      

    </bug>

</bugzilla>