These license and copyright statements are included in the dependencies that
Runway uses for its client-side JavaScript. Refer to the individual projects'
source code for more information.
License file in runway-browser
and runway-compiler
:
The MIT License (MIT)
Copyright (c) 2015-2016, Salesforce.com, Inc.
All rights reserved.
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
 IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
Within node_modules/runway-compiler
:
// The code below comes straight from Parsimmon and is covered by Parsimmon's
// MIT license, as reproduced here.
//
// MIT license. See http://www.opensource.org/licenses/mit-license.php
//
// Copyright (c) 2011-2016 J. Adkisson (http://jneen.net).
//
// Permission is hereby granted, free of charge, to any person obtaining a copy
// of this software and associated documentation files (the "Software"), to deal
// in the Software without restriction, including without limitation the rights
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
// copies of the Software, and to permit persons to whom the Software is
// furnished to do so, subject to the following conditions:
//
// The above copyright notice and this permission notice shall be included in
// all copies or substantial portions of the Software.
 IN NO EVENT SHALL THE
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
// THE SOFTWARE.
Within node_modules/amdefine
:
/** vim: et:ts=4:sw=4:sts=4
* @license amdefine 1.0.0 Copyright (c) 2011-2015, The Dojo Foundation All Rights Reserved.
* Available via the MIT or new BSD license.
* see: http://github.com/jrburke/amdefine for details
*/
License file node_modules/babel-standalone/LICENSE
:
The MIT License (MIT)
Copyright (c) 2015 Daniel Lo Nigro
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
 IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
Within node_modules/babel-standalone
:
/* WEBPACK VAR INJECTION */
// Copyright Joyent, Inc. and other Node contributors.
//
// Permission is hereby granted, free of charge, to any person obtaining a
// copy of this software and associated documentation files (the
// "Software"), to deal in the Software without restriction, including
// without limitation the rights to use, copy, modify, merge, publish,
// distribute, sublicense, and/or sell copies of the Software, and to permit
// persons to whom the Software is furnished to do so, subject to the
// following conditions:
//
// The above copyright notice and this permission notice shall be included
// in all copies or substantial portions of the Software.
 IN
// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
// USE OR OTHER DEALINGS IN THE SOFTWARE.
/*
* Copyright 2011 Mozilla Foundation and contributors
* Licensed under the New BSD license. See LICENSE or:
* http://opensource.org/licenses/BSD-3-Clause
*/
// http://wiki.commonjs.org/wiki/Unit_Testing/1.0
//
// THIS IS NOT TESTED NOR LIKELY TO WORK OUTSIDE V8!
//
// Originally from narwhal.js (http://narwhaljs.org)
// Copyright (c) 2009 Thomas Robinson <280north.com>
//
// Permission is hereby granted, free of charge, to any person obtaining a copy
// of this software and associated documentation files (the 'Software'), to
// deal in the Software without restriction, including without limitation the
// rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
// sell copies of the Software, and to permit persons to whom the Software is
// furnished to do so, subject to the following conditions:
//
// The above copyright notice and this permission notice shall be included in
// all copies or substantial portions of the Software.
 IN NO EVENT SHALL THE
// AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
// ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
/**
* Copyright (c) 2014, Facebook, Inc.
* All rights reserved.
*
* This source code is licensed under the BSD-style license found in the
* https://raw.github.com/facebook/regenerator/master/LICENSE file. An
* additional grant of patent rights can be found in the PATENTS file in
* the same directory.
*/
/*
Copyright (C) 2013-2014 Yusuke Suzuki
Copyright (C) 2014 Ivan Nikulin
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:
* Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.

*/
/*
* Copyright 2011 Mozilla Foundation and contributors
* Licensed under the New BSD license. See LICENSE or:
* http://opensource.org/licenses/BSD-3-Clause
*
* Based on the Base 64 VLQ implementation in Closure Compiler:
* https://code.google.com/p/closure-compiler/source/browse/trunk/src/com/google/debugging/sourcemap/Base64VLQ.java
*
* Copyright 2011 The Closure Compiler Authors. All rights reserved.
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are
* met:
*
* * Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* * Redistributions in binary form must reproduce the above
* copyright notice, this list of conditions and the following
* disclaimer in the documentation and/or other materials provided
* with the distribution.
* * Neither the name of Google Inc. nor the names of its
* contributors may be used to endorse or promote products derived
* from this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
/*
* Copyright 2009-2011 Mozilla Foundation and contributors
* Licensed under the New BSD license. See LICENSE.txt or:
* http://opensource.org/licenses/BSD-3-Clause
*/
/*
Copyright (C) 2013 Yusuke Suzuki
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:
* Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.

*/
// Copyright 2014, 2015 Simon Lydell
// X11 ("MIT") Licensed. (See LICENSE.)
/**
* Copyright 2013-2015, Facebook, Inc.
* All rights reserved.
*
* This source code is licensed under the BSD-style license found in the
* LICENSE file in the root directory of this source tree. An additional grant
* of patent rights can be found in the PATENTS file in the same directory.
*/
/*
* Copyright 2014 Mozilla Foundation and contributors
* Licensed under the New BSD license. See LICENSE or:
* http://opensource.org/licenses/BSD-3-Clause
*/
/*!
* RegJSGen
* Copyright 2014 Benjamin Tan
* Available under MIT license
*/
/*
Copyright (C) 2013 Yusuke Suzuki
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:
* Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.

*/
/**
* Based on the comment attachment algorithm used in espree and estraverse.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* * Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* * Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL BE LIABLE FOR ANY
* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
License file node_modules/base62/LICENSE
:
Copyright (c) 2012 Andrew Nesbitt
Permission is hereby granted, free of charge, to any person obtaining
a copy of this software and associated documentation files (the
"Software"), to deal in the Software without restriction, including
without limitation the rights to use, copy, modify, merge, publish,
distribute, sublicense, and/or sell copies of the Software, and to
permit persons to whom the Software is furnished to do so, subject to
the following conditions:
The above copyright notice and this permission notice shall be
included in all copies or substantial portions of the Software.
 IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
License file node_modules/bootstrap/LICENSE
:
The MIT License (MIT)
Copyright (c) 2011-2015 Twitter, Inc
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
 IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.
Within node_modules/bootstrap
:
/*!
* Bootstrap v3.3.6 (http://getbootstrap.com)
* Copyright 2011-2015 Twitter, Inc.
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
*/
/*!
* Bootstrap v3.3.6 (http://getbootstrap.com)
* Copyright 2011-2015 Twitter, Inc.
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
*/
/*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */
/*! Source: https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css */
/*!
* Bootstrap v3.3.6 (http://getbootstrap.com)
* Copyright 2011-2015 Twitter, Inc.
* Licensed under the MIT license
*/
/* ========================================================================
* Copyright 2011-2015 Twitter, Inc.
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
* ======================================================================== */
License file node_modules/colorbrewer/LICENSE.txt
:
Apache-Style Software License for ColorBrewer software and ColorBrewer Color
Schemes
Copyright (c) 2002 Cynthia Brewer, Mark Harrower, and The Pennsylvania State
University.
Licensed under the Apache License, Version 2.0 (the "License"); you may not
use this file except in compliance with the License. You may obtain a copy of
the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
License for the specific language governing permissions and limitations under
the License.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:
1. Redistributions as source code must retain the above copyright notice, this
list of conditions and the following disclaimer.
2. The end-user documentation included with the redistribution, if any, must
include the following acknowledgment: "This product includes color
specifications and designs developed by Cynthia Brewer
(http://colorbrewer.org/)." Alternately, this acknowledgment may appear in the
software itself, if and wherever such third-party acknowledgments normally
appear.
4. The name "ColorBrewer" must not be used to endorse or promote products
derived from this software without prior written permission. For written
permission, please contact Cynthia Brewer at<EMAIL_ADDRESS>5. Products derived from this software may not be called "ColorBrewer", nor
may "ColorBrewer" appear in their name, without prior written permission of
Cynthia Brewer.
License file node_modules/core-js/LICENSE
:
Copyright (c) 2015 Denis Pushkarev
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
 IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.
License file node_modules/d3/LICENSE
:
Copyright (c) 2010-2016, Michael Bostock
All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:
* Redistributions of source code must retain the above copyright notice, this
list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright notice,
this list of conditions and the following disclaimer in the documentation
and/or other materials provided with the distribution.
* The name Michael Bostock may not be used to endorse or promote products
derived from this software without specific prior written permission.
 IN NO EVENT SHALL MICHAEL BOSTOCK BE LIABLE FOR ANY DIRECT,
INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
License file node_modules/docopt/LICENSE-MIT
:
Copyright (c) 2012 Vladimir Keleshev,
Andrew Kassen,
Permission is hereby granted, free of charge, to any person obtaining a copy of
this software and associated documentation files (the "Software"), to deal in
the Software without restriction, including without limitation the rights to
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
of the Software, and to permit persons to whom the Software is furnished to do
so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
 IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
Within node_modules/esprima-fb
:
/*
Copyright (C) 2012 Ariya Hidayat
Copyright (C) 2011 Ariya Hidayat
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:
* Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.

*/
/*
Copyright (C) 2012 Ariya Hidayat
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:
* Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.

*/
/*
Copyright (C) 2013 Ariya Hidayat
Copyright (C) 2013 Thaddee Tyl
Copyright (C) 2012 Ariya Hidayat
Copyright (C) 2012 Mathias Bynens
Copyright (C) 2012 Joost-Wim Boekesteijn
Copyright (C) 2012 Kris Kowal
Copyright (C) 2012 Yusuke Suzuki
Copyright (C) 2012 Arpad Borsos
Copyright (C) 2011 Ariya Hidayat
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:
* Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.

*/
/*
Copyright (C) 2012 Joost-Wim Boekesteijn
Copyright (C) 2011 Ariya Hidayat
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:
* Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.

*/
/*
* Any copyright is dedicated to the Public Domain.
* http://creativecommons.org/licenses/publicdomain/
*/
/*
Copyright (C) 2012 Yusuke Suzuki
Copyright (C) 2012 Ariya Hidayat
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:
* Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.

*/
/*
Copyright (C) 2012 Ariya Hidayat
Copyright (C) 2012 Joost-Wim Boekesteijn
Copyright (C) 2012 Yusuke Suzuki
Copyright (C) 2012 Arpad Borsos
Copyright (C) 2011 Ariya Hidayat
Copyright (C) 2011 Yusuke Suzuki
Copyright (C) 2011 Arpad Borsos
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:
* Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.

*/
License file node_modules/fbjs/LICENSE
:
BSD License
For fbjs software
Copyright (c) 2013-2015, Facebook, Inc.
All rights reserved.
Redistribution and use in source and binary forms, with or without modification,
are permitted provided that the following conditions are met:
* Redistributions of source code must retain the above copyright notice, this
list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright notice,
this list of conditions and the following disclaimer in the documentation
and/or other materials provided with the distribution.
* Neither the name Facebook nor the names of its contributors may be used to
endorse or promote products derived from this software without specific
prior written permission.

Within node_modules/fbjs
:
/**
* Copyright 2013-2015, Facebook, Inc.
* All rights reserved.
*
* This source code is licensed under the BSD-style license found in the
* LICENSE file in the root directory of this source tree. An additional grant
* of patent rights can be found in the PATENTS file in the same directory.
*/
/**
* Checks if two values are equal. Values may be primitives, arrays, or objects.
* Returns true if both arguments have the same keys and values.
*
* @see http://underscorejs.org
* @copyright 2009-2013 Jeremy Ashkenas, DocumentCloud Inc.
* @license MIT
*/
/**
* Copyright 2013-2015, Facebook, Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*
* @providesModule EventListener
* @typechecks
*/
/**
* @see https://github.com/jonschlinkert/arr-flatten
* @copyright 2014-2015 Jon Schlinkert
* @license MIT
*/
License file node_modules/jquery/LICENSE.txt
:
Copyright jQuery Foundation and other contributors, https://jquery.org/
This software consists of voluntary contributions made by many
individuals. For exact contribution history, see the revision history
available at https://github.com/jquery/jquery
The following license applies to all parts of this software except as
documented below:
====
Permission is hereby granted, free of charge, to any person obtaining
a copy of this software and associated documentation files (the
"Software"), to deal in the Software without restriction, including
without limitation the rights to use, copy, modify, merge, publish,
distribute, sublicense, and/or sell copies of the Software, and to
permit persons to whom the Software is furnished to do so, subject to
the following conditions:
The above copyright notice and this permission notice shall be
included in all copies or substantial portions of the Software.
 IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
====
All files located in the node_modules and external directories are
externally maintained libraries used by this software which have their
own licenses; we recommend you read them, as their terms may differ from
the terms above.
Within node_modules/jquery
:
/*!
* jQuery JavaScript Library v2.2.3
* http://jquery.com/
*
* Includes Sizzle.js
* http://sizzlejs.com/
*
* Copyright jQuery Foundation and other contributors
* Released under the MIT license
* http://jquery.org/license
*
* Date: 2016-04-05T19:26Z
*/
/*!
* Sizzle CSS Selector Engine v2.2.1
* http://sizzlejs.com/
*
* Copyright jQuery Foundation and other contributors
* Released under the MIT license
* http://jquery.org/license
*
* Date: 2015-10-17
*/
/*!
* jQuery JavaScript Library v3.0.0-beta1 -ajax,-ajax/jsonp,-ajax/load,-ajax/parseJSON,-ajax/parseXML,-ajax/script,-ajax/var/location,-ajax/var/nonce,-ajax/var/rquery,-ajax/xhr,-manipulation/_evalUrl,-event/ajax,-effects,-effects/Tween,-effects/animatedSelector,-deprecated
* https://jquery.com/
*
* Includes Sizzle.js
* https://sizzlejs.com/
*
* Copyright jQuery Foundation and other contributors
* Released under the MIT license
* https://jquery.org/license
*
* Date: 2016-01-14T23:07Z
*/
/*!
* Sizzle CSS Selector Engine v2.3.0
* https://sizzlejs.com/
*
* Copyright jQuery Foundation and other contributors
* Released under the MIT license
* http://jquery.org/license
*
* Date: 2016-01-04
*/
/*!
* jQuery JavaScript Library v@VERSION
* http://jquery.com/
*
* Includes Sizzle.js
* http://sizzlejs.com/
*
* Copyright jQuery Foundation and other contributors
* Released under the MIT license
* http://jquery.org/license
*
* Date: @DATE
*/
License file node_modules/jquery/sizzle/LICENSE.txt
:
Copyright jQuery Foundation and other contributors, https://jquery.org/
This software consists of voluntary contributions made by many
individuals. For exact contribution history, see the revision history
available at https://github.com/jquery/sizzle
The following license applies to all parts of this software except as
documented below:
====
Permission is hereby granted, free of charge, to any person obtaining
a copy of this software and associated documentation files (the
"Software"), to deal in the Software without restriction, including
without limitation the rights to use, copy, modify, merge, publish,
distribute, sublicense, and/or sell copies of the Software, and to
permit persons to whom the Software is furnished to do so, subject to
the following conditions:
The above copyright notice and this permission notice shall be
included in all copies or substantial portions of the Software.
 IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
====
All files located in the node_modules and external directories are
externally maintained libraries used by this software which have their
own licenses; we recommend you read them, as their terms may differ from
the terms above.
License file node_modules/js-tokens/LICENSE
:
The MIT License (MIT)
Copyright (c) 2014, 2015, 2016 Simon Lydell
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
 IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.
Within node_modules/js-tokens
:
// Copyright 2014, 2015, 2016 Simon Lydell
// X11 ("MIT") Licensed. (See LICENSE.)
License file node_modules/jstransform/LICENSE
:
Apache License
Version 2.0, January 2004
http://www.apache.org/licenses/
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
1. Definitions.
"License" shall mean the terms and conditions for use, reproduction,
and distribution as defined by Sections 1 through 9 of this document.
"Licensor" shall mean the copyright owner or entity authorized by
the copyright owner that is granting the License.
"Legal Entity" shall mean the union of the acting entity and all
other entities that control, are controlled by, or are under common
control with that entity. For the purposes of this definition,
"control" means (i) the power, direct or indirect, to cause the
direction or management of such entity, whether by contract or
otherwise, or (ii) ownership of fifty percent (50%) or more of the
outstanding shares, or (iii) beneficial ownership of such entity.
"You" (or "Your") shall mean an individual or Legal Entity
exercising permissions granted by this License.
"Source" form shall mean the preferred form for making modifications,
including but not limited to software source code, documentation
source, and configuration files.
"Object" form shall mean any form resulting from mechanical
transformation or translation of a Source form, including but
not limited to compiled object code, generated documentation,
and conversions to other media types.
"Work" shall mean the work of authorship, whether in Source or
Object form, made available under the License, as indicated by a
copyright notice that is included in or attached to the work
(an example is provided in the Appendix below).
"Derivative Works" shall mean any work, whether in Source or Object
form, that is based on (or derived from) the Work and for which the
editorial revisions, annotations, elaborations, or other modifications
represent, as a whole, an original work of authorship. For the purposes
of this License, Derivative Works shall not include works that remain
separable from, or merely link (or bind by name) to the interfaces of,
the Work and Derivative Works thereof.
"Contribution" shall mean any work of authorship, including
the original version of the Work and any modifications or additions
to that Work or Derivative Works thereof, that is intentionally
submitted to Licensor for inclusion in the Work by the copyright owner
or by an individual or Legal Entity authorized to submit on behalf of
the copyright owner. For the purposes of this definition, "submitted"
means any form of electronic, verbal, or written communication sent
to the Licensor or its representatives, including but not limited to
communication on electronic mailing lists, source code control systems,
and issue tracking systems that are managed by, or on behalf of, the
Licensor for the purpose of discussing and improving the Work, but
excluding communication that is conspicuously marked or otherwise
designated in writing by the copyright owner as "Not a Contribution."
"Contributor" shall mean Licensor and any individual or Legal Entity
on behalf of whom a Contribution has been received by Licensor and
subsequently incorporated within the Work.
2. Grant of Copyright License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
copyright license to reproduce, prepare Derivative Works of,
publicly display, publicly perform, sublicense, and distribute the
Work and such Derivative Works in Source or Object form.
3. Grant of Patent License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
(except as stated in this section) patent license to make, have made,
use, offer to sell, sell, import, and otherwise transfer the Work,
where such license applies only to those patent claims licensable
by such Contributor that are necessarily infringed by their
Contribution(s) alone or by combination of their Contribution(s)
with the Work to which such Contribution(s) was submitted. If You
institute patent litigation against any entity (including a
cross-claim or counterclaim in a lawsuit) alleging that the Work
or a Contribution incorporated within the Work constitutes direct
or contributory patent infringement, then any patent licenses
granted to You under this License for that Work shall terminate
as of the date such litigation is filed.
4. Redistribution. You may reproduce and distribute copies of the
Work or Derivative Works thereof in any medium, with or without
modifications, and in Source or Object form, provided that You
meet the following conditions:
(a) You must give any other recipients of the Work or
Derivative Works a copy of this License; and
(b) You must cause any modified files to carry prominent notices
stating that You changed the files; and
(c) You must retain, in the Source form of any Derivative Works
that You distribute, all copyright, patent, trademark, and
attribution notices from the Source form of the Work,
excluding those notices that do not pertain to any part of
the Derivative Works; and
(d) If the Work includes a "NOTICE" text file as part of its
distribution, then any Derivative Works that You distribute must
include a readable copy of the attribution notices contained
within such NOTICE file, excluding those notices that do not
pertain to any part of the Derivative Works, in at least one
of the following places: within a NOTICE text file distributed
as part of the Derivative Works; within the Source form or
documentation, if provided along with the Derivative Works; or,
within a display generated by the Derivative Works, if and
wherever such third-party notices normally appear. The contents
of the NOTICE file are for informational purposes only and
do not modify the License. You may add Your own attribution
notices within Derivative Works that You distribute, alongside
or as an addendum to the NOTICE text from the Work, provided
that such additional attribution notices cannot be construed
as modifying the License.
You may add Your own copyright statement to Your modifications and
may provide additional or different license terms and conditions
for use, reproduction, or distribution of Your modifications, or
for any such Derivative Works as a whole, provided Your use,
reproduction, and distribution of the Work otherwise complies with
the conditions stated in this License.
5. Submission of Contributions. Unless You explicitly state otherwise,
any Contribution intentionally submitted for inclusion in the Work
by You to the Licensor shall be under the terms and conditions of
this License, without any additional terms or conditions.
Notwithstanding the above, nothing herein shall supersede or modify
the terms of any separate license agreement you may have executed
with Licensor regarding such Contributions.
6. Trademarks. This License does not grant permission to use the trade
names, trademarks, service marks, or product names of the Licensor,
except as required for reasonable and customary use in describing the
origin of the Work and reproducing the content of the NOTICE file.
7. Disclaimer of Warranty. Unless required by applicable law or
agreed to in writing, Licensor provides the Work (and each
Contributor provides its Contributions) on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
implied, including, without limitation, any warranties or conditions
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
PARTICULAR PURPOSE. You are solely responsible for determining the
appropriateness of using or redistributing the Work and assume any
risks associated with Your exercise of permissions under this License.
8. Limitation of Liability. In no event and under no legal theory,
whether in tort (including negligence), contract, or otherwise,
unless required by applicable law (such as deliberate and grossly
negligent acts) or agreed to in writing, shall any Contributor be
liable to You for damages, including any direct, indirect, special,
incidental, or consequential damages of any character arising as a
result of this License or out of the use or inability to use the
Work (including but not limited to damages for loss of goodwill,
work stoppage, computer failure or malfunction, or any and all
other commercial damages or losses), even if such Contributor
has been advised of the possibility of such damages.
9. Accepting Warranty or Additional Liability. While redistributing
the Work or Derivative Works thereof, You may choose to offer,
and charge a fee for, acceptance of support, warranty, indemnity,
or other liability obligations and/or rights consistent with this
License. However, in accepting such obligations, You may act only
on Your own behalf and on Your sole responsibility, not on behalf
of any other Contributor, and only if You agree to indemnify,
defend, and hold each Contributor harmless for any liability
incurred by, or claims asserted against, such Contributor by reason
of your accepting any such warranty or additional liability.
END OF TERMS AND CONDITIONS
APPENDIX: How to apply the Apache License to your work.
To apply the Apache License to your work, attach the following
boilerplate notice, with the fields enclosed by brackets "[]"
replaced with your own identifying information. (Don't include
the brackets!) The text should be enclosed in the appropriate
comment syntax for the file format. We also recommend that a
file or class name and description of purpose be included on the
same "printed page" as the copyright notice for easier
identification within third-party archives.
Copyright [yyyy] [name of copyright owner]
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
Within node_modules/jstransform
:
/*
* Copyright 2009-2012 Mozilla Foundation and contributors
* Licensed under the New BSD license. See LICENSE.txt or:
* http://opensource.org/licenses/BSD-3-Clause
*/
/*
* Copyright 2011 Mozilla Foundation and contributors
* Licensed under the New BSD license. See LICENSE or:
* http://opensource.org/licenses/BSD-3-Clause
*
* Based on the Base 64 VLQ implementation in Closure Compiler:
* https://code.google.com/p/closure-compiler/source/browse/trunk/src/com/google/debugging/sourcemap/Base64VLQ.java
*
* Copyright 2011 The Closure Compiler Authors. All rights reserved.
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are
* met:
*
* * Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* * Redistributions in binary form must reproduce the above
* copyright notice, this list of conditions and the following
* disclaimer in the documentation and/or other materials provided
* with the distribution.
* * Neither the name of Google Inc. nor the names of its
* contributors may be used to endorse or promote products derived
* from this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
/**
* Copyright 2013-2014 Facebook, Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
/**
* Copyright 2004-present Facebook. All Rights Reserved.
*/
/**
* Copyright 2014 Facebook, Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
/**
* Copyright 2014 Facebook, Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*
*/
/**
* Code adapted from https://github.com/spicyj/es3ify
* The MIT License (MIT)
* Copyright (c) 2014 Ben Alpert
*/
License file node_modules/jstransform/node_modules/source-map/LICENSE
:
Copyright (c) 2009-2011, Mozilla Foundation and contributors
All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:
* Redistributions of source code must retain the above copyright notice, this
list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright notice,
this list of conditions and the following disclaimer in the documentation
and/or other materials provided with the distribution.
* Neither the names of the Mozilla Foundation nor the names of project
contributors may be used to endorse or promote products derived from this
software without specific prior written permission.

Within node_modules/jstransform/node_modules/source-map
:
/*
* Copyright 2009-2011 Mozilla Foundation and contributors
* Licensed under the New BSD license. See LICENSE or:
* http://opensource.org/licenses/BSD-3-Clause
*/
/*
* Copyright 2011 Mozilla Foundation and contributors
* Licensed under the New BSD license. See LICENSE or:
* http://opensource.org/licenses/BSD-3-Clause
*
* Based on the Base 64 VLQ implementation in Closure Compiler:
* https://code.google.com/p/closure-compiler/source/browse/trunk/src/com/google/debugging/sourcemap/Base64VLQ.java
*
* Copyright 2011 The Closure Compiler Authors. All rights reserved.
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are
* met:
*
* * Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* * Redistributions in binary form must reproduce the above
* copyright notice, this list of conditions and the following
* disclaimer in the documentation and/or other materials provided
* with the distribution.
* * Neither the name of Google Inc. nor the names of its
* contributors may be used to endorse or promote products derived
* from this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
/*
* Copyright 2012 Mozilla Foundation and contributors
* Licensed under the New BSD license. See LICENSE or:
* http://opensource.org/licenses/BSD-3-Clause
*/
License file node_modules/lodash/LICENSE
:
Copyright jQuery Foundation and other contributors
Based on Underscore.js, copyright Jeremy Ashkenas,
DocumentCloud and Investigative Reporters Editors
This software consists of voluntary contributions made by many
individuals. For exact contribution history, see the revision history
available at https://github.com/lodash/lodash
The following license applies to all parts of this software except as
documented below:
====
Permission is hereby granted, free of charge, to any person obtaining
a copy of this software and associated documentation files (the
"Software"), to deal in the Software without restriction, including
without limitation the rights to use, copy, modify, merge, publish,
distribute, sublicense, and/or sell copies of the Software, and to
permit persons to whom the Software is furnished to do so, subject to
the following conditions:
The above copyright notice and this permission notice shall be
included in all copies or substantial portions of the Software.
 IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
====
Copyright and related rights for sample code are waived via CC0. Sample
code is defined as all source code displayed within the prose of the
documentation.
CC0: http://creativecommons.org/publicdomain/zero/1.0/
====
Files located in the node_modules and vendor directories are externally
maintained libraries used by this software which have their own
licenses; we recommend you read them, as their terms may differ from the
terms above.
Within node_modules/lodash
:
/**
* @license
* lodash 4.11.1 (Custom Build)
* Build: `lodash -d -o ./foo/lodash.js`
* Copyright jQuery Foundation and other contributors
* Released under MIT license
* Based on Underscore.js 1.8.3
* Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters Editors
*/
License file node_modules/performance-now/license.txt
:
Copyright (c) 2013 Meryn Stol
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
 IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
License file node_modules/promise/LICENSE
:
Copyright (c) 2014 Forbes Lindesay
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
 IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.
License file node_modules/react-dom/LICENSE
:
BSD License
For React software
Copyright (c) 2013-2015, Facebook, Inc.
All rights reserved.
Redistribution and use in source and binary forms, with or without modification,
are permitted provided that the following conditions are met:
* Redistributions of source code must retain the above copyright notice, this
list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright notice,
this list of conditions and the following disclaimer in the documentation
and/or other materials provided with the distribution.
* Neither the name Facebook nor the names of its contributors may be used to
endorse or promote products derived from this software without specific
prior written permission.

Within node_modules/react-dom
:
/**
* ReactDOMServer v0.14.8
*
* Copyright 2013-2015, Facebook, Inc.
* All rights reserved.
*
* This source code is licensed under the BSD-style license found in the
* LICENSE file in the root directory of this source tree. An additional grant
* of patent rights can be found in the PATENTS file in the same directory.
*
*/
License file node_modules/react/LICENSE
:
BSD License
For React software
Copyright (c) 2013-2015, Facebook, Inc.
All rights reserved.
Redistribution and use in source and binary forms, with or without modification,
are permitted provided that the following conditions are met:
* Redistributions of source code must retain the above copyright notice, this
list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright notice,
this list of conditions and the following disclaimer in the documentation
and/or other materials provided with the distribution.
* Neither the name Facebook nor the names of its contributors may be used to
endorse or promote products derived from this software without specific
prior written permission.

Within node_modules/react
:
/**
* Copyright 2013-2015, Facebook, Inc.
* All rights reserved.
*
* This source code is licensed under the BSD-style license found in the
* LICENSE file in the root directory of this source tree. An additional grant
* of patent rights can be found in the PATENTS file in the same directory.
*/
/**
* Copyright 2013-2015, Facebook, Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*
* @providesModule EventListener
* @typechecks
*/
/**
* @license
* Copyright (c) 2014 The Polymer Project Authors. All rights reserved.
* This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
* The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
* The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
* Code distributed by Google as part of the polymer project is also
* subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
* @providesModule WebComponents
*/
License file node_modules/solarized-light-syntax/LICENSE.md
:
Copyright (c) 2014 GitHub Inc.
Permission is hereby granted, free of charge, to any person obtaining
a copy of this software and associated documentation files (the
"Software"), to deal in the Software without restriction, including
without limitation the rights to use, copy, modify, merge, publish,
distribute, sublicense, and/or sell copies of the Software, and to
permit persons to whom the Software is furnished to do so, subject to
the following conditions:
The above copyright notice and this permission notice shall be
included in all copies or substantial portions of the Software.
 IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
License file node_modules/through/LICENSE.APACHE2
:
Apache License, Version 2.0
Copyright (c) 2011 Dominic Tarr
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
License file node_modules/through/LICENSE.MIT
:
The MIT License
Copyright (c) 2011 Dominic Tarr
Permission is hereby granted, free of charge,
to any person obtaining a copy of this software and
associated documentation files (the "Software"), to
deal in the Software without restriction, including
without limitation the rights to use, copy, modify,
merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom
the Software is furnished to do so,
subject to the following conditions:
The above copyright notice and this permission notice
shall be included in all copies or substantial portions of the Software.

IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR
ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Within node_modules/ua-parser-js
:
/**
* UAParser.js v0.7.10
* Lightweight JavaScript-based User-Agent string parser
* https://github.com/faisalman/ua-parser-js
*
* Copyright © 2012-2015 Faisal Salman
* Dual licensed under GPLv2 & MIT
*/
License file node_modules/whatwg-fetch/LICENSE
:
Copyright (c) 2014-2015 GitHub, Inc.
Permission is hereby granted, free of charge, to any person obtaining
a copy of this software and associated documentation files (the
"Software"), to deal in the Software without restriction, including
without limitation the rights to use, copy, modify, merge, publish,
distribute, sublicense, and/or sell copies of the Software, and to
permit persons to whom the Software is furnished to do so, subject to
the following conditions:
The above copyright notice and this permission notice shall be
included in all copies or substantial portions of the Software.
 IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.


12
1 Yahweh said to Moses,
2 "Speak to the people of Israel, saying, 'If a woman conceives and gives birth to a male child, then she will be unclean for seven days, just as she is unclean during the days of her monthly period.
3 On the eighth day the flesh of a baby boy's foreskin must be circumcised.
4 Then the mother's purification from her bleeding will continue for thirty-three days. She must not touch any holy thing or come into the tabernacle area until the days of her purification are finished.
5 But if she gives birth to a female child, then she will be unclean for two weeks, as she is during her period. Then the mother's purification will continue for sixty-six days.
6 When the days of her purification are finished, for a son or for a daughter, she must bring a one year old lamb as a burnt offering, and a young pigeon or dove as a sin offering, to the entrance of the tent of meeting, to the priest.
7 Then he will offer it before Yahweh and make atonement for her, and she will be cleansed from the flow of her blood. This is the law regarding a woman who gives birth to either a male or a female child.
8 If she is not able to afford a lamb, then she must take two doves or two young pigeons, one as a burnt offering and the other as a sin offering, and the priest will make atonement for her; then she will be clean.' "


# Authors: Cedric Rommel<EMAIL_ADDRESS>#
# License: BSD (3-clause)
import numpy as np
import torch
from torch import nn
from .modules import Expression, Ensure4d, MaxNormLinear, CausalConv1d
from .functions import transpose_time_to_spat
[docs]class ATCNet(nn.Module):
"""ATCNet model from [1]_
Pytorch implementation based on official tensorflow code [2]_.
Parameters
----------
n_channels : int
Number of EEG channels.
n_classes : int
Number of target classes.
input_size_s : float, optional
Time length of inputs, in secods. Defaults to 4.5 s, as in BCI-IV 2a
dataset.
sfreq : int, optional
Sampling frequency of the inputs, in Hz. Default to 250 Hz, as in
BCI-IV 2a dataset.
conv_block_n_filters : int
Number temporal filters in the first convolutional layer of the
convolutional block, denoted F1 in figure 2 of the paper [1]_. Defaults
to 16 as in [1]_.
conv_block_kernel_length_1 : int
Length of temporal filters in the first convolutional layer of the
convolutional block, denoted Kc in table 1 of the paper [1]_. Defaults
to 64 as in [1]_.
conv_block_kernel_length_2 : int
Length of temporal filters in the last convolutional layer of the
convolutional block. Defaults to 16 as in [1]_.
conv_block_pool_size_1 : int
Length of first average pooling kernel in the convolutional block.
Defaults to 8 as in [1]_.
conv_block_pool_size_2 : int
Length of first average pooling kernel in the convolutional block,
denoted P2 in table 1 of the paper [1]_. Defaults to 7 as in [1]_.
conv_block_depth_mult : int
Depth multiplier of depthwise convolution in the convolutional block,
denoted D in table 1 of the paper [1]_. Defaults to 2 as in [1]_.
conv_block_dropout : float
Dropout probability used in the convolution block, denoted pc in
table 1 of the paper [1]_. Defaults to 0.3 as in [1]_.
n_windows : int
Number of sliding windows, denoted n in [1]_. Defaults to 5 as in [1]_.
att_head_dim : int
Embedding dimension used in each self-attention head, denoted dh in
table 1 of the paper [1]_. Defaults to 8 as in [1]_.
att_num_heads : int
Number of attention heads, denoted H in table 1 of the paper [1]_.
Defaults to 2 as in [1_.
att_dropout : float
Dropout probability used in the attention block, denoted pa in table 1
of the paper [1]_. Defaults to 0.5 as in [1]_.
tcn_depth : int
Depth of Temporal Convolutional Network block (i.e. number of TCN
Residual blocks), denoted L in table 1 of the paper [1]_. Defaults to 2
as in [1]_.
tcn_kernel_size : int
Temporal kernel size used in TCN block, denoted Kt in table 1 of the
paper [1]_. Defaults to 4 as in [1]_.
tcn_n_filters : int
Number of filters used in TCN convolutional layers (Ft). Defaults to
32 as in [1]_.
tcn_dropout : float
Dropout probability used in the TCN block, denoted pt in table 1
of the paper [1]_. Defaults to 0.3 as in [1]_.
tcn_activation : torch.nn.Module
Nonlinear activation to use. Defaults to nn.ELU().
concat : bool
When ``True``, concatenates each slidding window embedding before
feeding it to a fully-connected layer, as done in [1]_. When ``False``,
maps each slidding window to `n_classes` logits and average them.
Defaults to ``False`` contrary to what is reported in [1]_, but
matching what the official code does [2]_.
max_norm_const : float
Maximum L2-norm constraint imposed on weights of the last
fully-connected layer. Defaults to 0.25.
References
----------
.. [1] H. Altaheri, G. Muhammad and M. Alsulaiman, "Physics-informed
attention temporal convolutional network for EEG-based motor imagery
classification," in IEEE Transactions on Industrial Informatics,
2022, doi: 10.1109/TII.2022.3197419.
.. [2] https://github.com/Altaheri/EEG-ATCNet/blob/main/models.py
"""
def __init__(
self,
n_channels,
n_classes,
input_size_s=4.5,
sfreq=250,
conv_block_n_filters=16,
conv_block_kernel_length_1=64,
conv_block_kernel_length_2=16,
conv_block_pool_size_1=8,
conv_block_pool_size_2=7,
conv_block_depth_mult=2,
conv_block_dropout=0.3,
n_windows=5,
att_head_dim=8,
att_num_heads=2,
att_dropout=0.5,
tcn_depth=2,
tcn_kernel_size=4,
tcn_n_filters=32,
tcn_dropout=0.3,
tcn_activation=nn.ELU(),
concat=False,
max_norm_const=0.25,
):
super().__init__()
self.n_channels = n_channels
self.n_classes = n_classes
self.input_size_s = input_size_s
self.sfreq = sfreq
self.conv_block_n_filters = conv_block_n_filters
self.conv_block_kernel_length_1 = conv_block_kernel_length_1
self.conv_block_kernel_length_2 = conv_block_kernel_length_2
self.conv_block_pool_size_1 = conv_block_pool_size_1
self.conv_block_pool_size_2 = conv_block_pool_size_2
self.conv_block_depth_mult = conv_block_depth_mult
self.conv_block_dropout = conv_block_dropout
self.n_windows = n_windows
self.att_head_dim = att_head_dim
self.att_num_heads = att_num_heads
self.att_dropout = att_dropout
self.tcn_depth = tcn_depth
self.tcn_kernel_size = tcn_kernel_size
self.tcn_n_filters = tcn_n_filters
self.tcn_dropout = tcn_dropout
self.tcn_activation = tcn_activation
self.concat = concat
self.max_norm_const = max_norm_const
self.ensuredims = Ensure4d()
self.dimshuffle = Expression(transpose_time_to_spat)
self.conv_block = _ConvBlock(
n_channels=n_channels, # input shape: (batch_size, 1, T, C)
n_filters=conv_block_n_filters,
kernel_length_1=conv_block_kernel_length_1,
kernel_length_2=conv_block_kernel_length_2,
pool_size_1=conv_block_pool_size_1,
pool_size_2=conv_block_pool_size_2,
depth_mult=conv_block_depth_mult,
dropout=conv_block_dropout
)
self.F2 = int(conv_block_depth_mult * conv_block_n_filters)
self.Tc = int(input_size_s * sfreq / (
conv_block_pool_size_1 * conv_block_pool_size_2))
self.Tw = self.Tc - self.n_windows + 1
self.attention_blocks = nn.ModuleList([
_AttentionBlock(
in_shape=self.F2,
head_dim=self.att_head_dim,
num_heads=att_num_heads,
dropout=att_dropout,
) for _ in range(self.n_windows)
])
self.temporal_conv_nets = nn.ModuleList([
nn.Sequential(
*[_TCNResidualBlock(
in_channels=self.F2,
kernel_size=tcn_kernel_size,
n_filters=tcn_n_filters,
dropout=tcn_dropout,
activation=tcn_activation,
dilation=2**i
) for i in range(tcn_depth)]
) for _ in range(self.n_windows)
])
if self.concat:
self.max_norm_linears = nn.ModuleList([
MaxNormLinear(
in_features=self.F2 * self.n_windows,
out_features=self.n_classes,
max_norm_val=self.max_norm_const
)
])
else:
self.max_norm_linears = nn.ModuleList([
MaxNormLinear(
in_features=self.F2,
out_features=self.n_classes,
max_norm_val=self.max_norm_const
) for _ in range(self.n_windows)
])
self.sfmx = nn.LogSoftmax(dim=1)
[docs] def forward(self, X):
# Dimension: (batch_size, C, T)
X = self.ensuredims(X)
# Dimension: (batch_size, C, T, 1)
X = self.dimshuffle(X)
# Dimension: (batch_size, 1, T, C)
# ----- Sliding window -----
conv_feat = self.conv_block(X)
# Dimension: (batch_size, F2, Tc, 1)
conv_feat = conv_feat.view(-1, self.F2, self.Tc)
# Dimension: (batch_size, F2, Tc)
# ----- Sliding window -----
sw_concat = [] # to store sliding window outputs
for w in range(self.n_windows):
conv_feat_w = conv_feat[..., w:w + self.Tw]
# Dimension: (batch_size, F2, Tw)
# ----- Attention block -----
att_feat = self.attention_blocks[w](conv_feat_w)
# Dimension: (batch_size, F2, Tw)
# ----- Temporal convolutional network (TCN) -----
tcn_feat = self.temporal_conv_nets[w](att_feat)[..., -1]
# Dimension: (batch_size, F2)
# Outputs of sliding window can be either averaged after being
# mapped by dense layer or concatenated then mapped by a dense
# layer
if not self.concat:
tcn_feat = self.max_norm_linears[w](tcn_feat)
sw_concat.append(tcn_feat)
# ----- Aggregation and prediction -----
if self.concat:
sw_concat = torch.cat(sw_concat, dim=1)
sw_concat = self.max_norm_linears[0](sw_concat)
else:
if len(sw_concat) > 1: # more than one window
sw_concat = torch.stack(sw_concat, dim=0)
sw_concat = torch.mean(sw_concat, dim=0)
else: # one window (# windows = 1)
sw_concat = sw_concat[0]
return self.sfmx(sw_concat)
class _ConvBlock(nn.Module):
""" Convolutional block proposed in ATCNet [1]_, inspired by the EEGNet
architecture [2]_.
References
----------
.. [1] H. Altaheri, G. Muhammad and M. Alsulaiman, "Physics-informed
attention temporal convolutional network for EEG-based motor imagery
classification," in IEEE Transactions on Industrial Informatics,
2022, doi: 10.1109/TII.2022.3197419.
.. [2] Lawhern, V. J., Solon, A. J., Waytowich, N. R., Gordon,
S. M., Hung, C. P., & Lance, B. J. (2018).
EEGNet: A Compact Convolutional Network for EEG-based
Brain-Computer Interfaces.
arXiv preprint arXiv:1611.08024.
"""
def __init__(
self,
n_channels,
n_filters=16,
kernel_length_1=64,
kernel_length_2=16,
pool_size_1=8,
pool_size_2=7,
depth_mult=2,
dropout=0.3,
):
super().__init__()
self.conv1 = nn.Conv2d(
in_channels=1,
out_channels=n_filters,
kernel_size=(kernel_length_1, 1),
padding="same",
bias=False,
)
self.bn1 = nn.BatchNorm2d(num_features=n_filters, eps=1e-4)
n_depth_kernels = n_filters * depth_mult
self.conv2 = nn.Conv2d(
in_channels=n_filters,
out_channels=n_depth_kernels,
groups=n_filters,
kernel_size=(1, n_channels),
padding="valid",
bias=False,
)
self.bn2 = nn.BatchNorm2d(num_features=n_depth_kernels, eps=1e-4)
self.activation2 = nn.ELU()
self.pool2 = nn.AvgPool2d(kernel_size=(pool_size_1, 1))
self.drop2 = nn.Dropout2d(dropout)
self.conv3 = nn.Conv2d(
in_channels=n_depth_kernels,
out_channels=n_depth_kernels,
kernel_size=(kernel_length_2, 1),
padding="same",
bias=False,
)
self.bn3 = nn.BatchNorm2d(num_features=n_depth_kernels, eps=1e-4)
self.activation3 = nn.ELU()
self.pool3 = nn.AvgPool2d(kernel_size=(pool_size_2, 1))
self.drop3 = nn.Dropout2d(dropout)
def forward(self, X):
# ----- Temporal convolution -----
# Dimension: (batch_size, 1, T, C)
X = self.conv1(X)
X = self.bn1(X)
# Dimension: (batch_size, F1, T, C)
# ----- Depthwise channels convolution -----
X = self.conv2(X)
X = self.bn2(X)
X = self.activation2(X)
# Dimension: (batch_size, F1*D, T, 1)
X = self.pool2(X)
X = self.drop2(X)
# Dimension: (batch_size, F1*D, T/P1, 1)
# ----- "Spatial" convolution -----
X = self.conv3(X)
X = self.bn3(X)
X = self.activation3(X)
# Dimension: (batch_size, F1*D, T/P1, 1)
X = self.pool3(X)
X = self.drop3(X)
# Dimension: (batch_size, F1*D, T/(P1*P2), 1)
return X
class _AttentionBlock(nn.Module):
"""Multi Head self Attention (MHA) block used in ATCNet [1]_, inspired from
[2]_.
References
----------
.. [1] H. Altaheri, G. Muhammad and M. Alsulaiman, "Physics-informed
attention temporal convolutional network for EEG-based motor imagery
classification," in IEEE Transactions on Industrial Informatics,
2022, doi: 10.1109/TII.2022.3197419.
.. [2] Vaswani, A. et al., "Attention is all you need",
in Advances in neural information processing systems, 2017.
"""
def __init__(
self,
in_shape=32,
head_dim=8,
num_heads=2,
dropout=0.5,
):
super().__init__()
self.in_shape = in_shape
self.head_dim = head_dim
self.num_heads = num_heads
# Puts time dimension at -2 and feature dim at -1
self.dimshuffle = Expression(lambda x: x.permute(0, 2, 1))
# Layer normalization
self.ln = nn.LayerNorm(normalized_shape=in_shape, eps=1e-6)
# Multi-head self-attention layer
# (We had to reimplement it since the original code is in tensorflow,
# where it is possible to have an embedding dimension different than
# the input and output dimensions, which is not possible in pytorch.)
self.mha = _MHA(
input_dim=in_shape,
head_dim=head_dim,
output_dim=in_shape,
num_heads=num_heads,
dropout=dropout,
)
# XXX: This line in the official code is weird, as there is already
# dropout in the MultiheadAttention layer. They also don't mention
# any additional dropout between the attention block and TCN in the
# paper. We are adding it here however to follo so we are removing this
# for now.
self.drop = nn.Dropout(0.3)
def forward(self, X):
# Dimension: (batch_size, F2, Tw)
X = self.dimshuffle(X)
# Dimension: (batch_size, Tw, F2)
# ----- Layer norm -----
out = self.ln(X)
# ----- Self-Attention -----
out = self.mha(out, out, out)
# Dimension: (batch_size, Tw, F2)
# XXX In the paper fig. 1, it is drawn that layer normalization is
# performed before the skip connection, while it is done afterwards
# in the official code. Here we follow the code.
# ----- Skip connection -----
out = X + self.drop(out)
# Move back to shape (batch_size, F2, Tw) from the beginning
return self.dimshuffle(out)
class _TCNResidualBlock(nn.Module):
""" Modified TCN Residual block as proposed in [1]_. Inspired from
Temporal Convolutional Networks (TCN) [2]_.
References
----------
.. [1] H. Altaheri, G. Muhammad and M. Alsulaiman, "Physics-informed
attention temporal convolutional network for EEG-based motor imagery
classification," in IEEE Transactions on Industrial Informatics,
2022, doi: 10.1109/TII.2022.3197419.
.. [2] Bai, S., Kolter, J. Z., & Koltun, V.
"An empirical evaluation of generic convolutional and recurrent
networks for sequence modeling", 2018.
"""
def __init__(
self,
in_channels,
kernel_size=4,
n_filters=32,
dropout=0.3,
activation=nn.ELU(),
dilation=1
):
super().__init__()
self.activation = activation
self.dilation = dilation
self.dropout = dropout
self.n_filters = n_filters
self.kernel_size = kernel_size
self.in_channels = in_channels
self.conv1 = CausalConv1d(
in_channels=in_channels,
out_channels=n_filters,
kernel_size=kernel_size,
dilation=dilation,
)
nn.init.kaiming_uniform_(self.conv1.weight)
self.bn1 = nn.BatchNorm1d(n_filters)
self.drop1 = nn.Dropout(dropout)
self.conv2 = CausalConv1d(
in_channels=n_filters,
out_channels=n_filters,
kernel_size=kernel_size,
dilation=dilation,
)
nn.init.kaiming_uniform_(self.conv2.weight)
self.bn2 = nn.BatchNorm1d(n_filters)
self.drop2 = nn.Dropout(dropout)
# Reshape the input for the residual connection when necessary
if in_channels != n_filters:
self.reshaping_conv = nn.Conv1d(
n_filters,
kernel_size=1,
padding='same',
)
else:
self.reshaping_conv = nn.Identity()
def forward(self, X):
# Dimension: (batch_size, F2, Tw)
# ----- Double dilated convolutions -----
out = self.conv1(X)
out = self.bn1(out)
out = self.activation(out)
out = self.drop1(out)
out = self.conv2(out)
out = self.bn2(out)
out = self.activation(out)
out = self.drop2(out)
out = self.reshaping_conv(out)
# ----- Residual connection -----
out = X + out
return self.activation(out)
class _MHA(nn.Module):
def __init__(
self,
input_dim: int,
head_dim: int,
output_dim: int,
num_heads: int,
dropout: float = 0.,
):
"""Multi-head Attention
The difference between this module and torch.nn.MultiheadAttention is
that this module supports embedding dimensions different then input
and output ones. It also does not support sequences of different
length.
Parameters
----------
input_dim : int
Dimension of query, key and value inputs.
head_dim : int
Dimension of embed query, key and value in each head,
before computing attention.
output_dim : int
Output dimension.
num_heads : int
Number of heads in the multi-head architecture.
dropout : float, optional
Dropout probability on output weights. Default: 0.0 (no dropout).
"""
super(_MHA, self).__init__()
self.input_dim = input_dim
self.head_dim = head_dim
# typical choice for the split dimension of the heads
self.embed_dim = head_dim * num_heads
# embeddings for multi-head projections
self.fc_q = nn.Linear(input_dim, self.embed_dim)
self.fc_k = nn.Linear(input_dim, self.embed_dim)
self.fc_v = nn.Linear(input_dim, self.embed_dim)
# output mapping
self.fc_o = nn.Linear(self.embed_dim, output_dim)
# dropout
self.dropout = nn.Dropout(dropout)
def forward(
self,
Q: torch.Tensor,
K: torch.Tensor,
V: torch.Tensor
) -> torch.Tensor:
""" Compute MHA(Q, K, V)
Parameters
----------
Q: torch.Tensor of size (batch_size, seq_len, input_dim)
Input query (Q) sequence.
K: torch.Tensor of size (batch_size, seq_len, input_dim)
Input key (K) sequence.
V: torch.Tensor of size (batch_size, seq_len, input_dim)
Input value (V) sequence.
Returns
-------
O: torch.Tensor of size (batch_size, seq_len, output_dim)
Output MHA(Q, K, V)
"""
assert Q.shape[-1] == K.shape[-1] == V.shape[-1] == self.input_dim
batch_size, _, _ = Q.shape
# embedding for multi-head projections (masked or not)
Q = self.fc_q(Q) # (B, S, D)
K, V = self.fc_k(K), self.fc_v(V) # (B, S, D)
# Split into num_head vectors (num_heads * batch_size, n/m, head_dim)
Q_ = torch.cat(Q.split(self.head_dim, -1), 0) # (B', S, D')
K_ = torch.cat(K.split(self.head_dim, -1), 0) # (B', S, D')
V_ = torch.cat(V.split(self.head_dim, -1), 0) # (B', S, D')
# Attention weights of size (num_heads * batch_size, n, m):
# measures how similar each pair of Q and K is.
W = torch.softmax(
Q_.bmm(
K_.transpose(-2, -1) # (B', D', S)
)
/ np.sqrt(self.head_dim),
-1
) # (B', N, M)
# Multihead output (batch_size, seq_len, dim):
# weighted sum of V where a value gets more weight if its corresponding
# key has larger dot product with the query.
H = torch.cat(
(
W # (B', S, S)
.bmm(V_) # (B', S, D')
).split(batch_size, 0), # [(B, S, D')] * num_heads
-1
) # (B, S, D)
out = self.fc_o(H)
return self.dropout(out)


{% extends "account/email/base.html" %}
{% block body %}
Hello {{ user['fullname'] }},
You submitted a request to create or update the
{{ template['name'] }} template. Unfortunately, we didn't
think that the proposed changes were suitable for the following reason:
{{ reason }}
Please get in touch at
{{ config.CONTACT_EMAIL }}
for further guidance.
Regards,
{{ config.BRAND }} Team
{% endblock %}


A channel to discuss trading. For useful links and more info click the pinned messages to the right.
100 messages
Before 05-Dec-19 12:00 AM
Malti22-Jun-19 08:32 AM
And then that would be the fault of Linux?
coingirl8722-Jun-19 08:32 AM
Yes...but it was a big fail to komodo...because marketing make announces of big partnership
That is what is in peoples head
jl777c22-Jun-19 08:33 AM
i think by the end of this year, nobody will feel that kmd marketing is a fail
Malti22-Jun-19 08:33 AM
Indeed
Go check evolve.komodoplatform.com
Check developers.komodoplatform.com
coingirl8722-Jun-19 08:34 AM
Its pitty that komodo is not willing to reflect bad actions in marketing
Malti22-Jun-19 08:34 AM
Techies love developers.komodo.....

Malti22-Jun-19 08:35 AM
Nothing else
jl777c22-Jun-19 08:35 AM
i dont see how that changes much of anything
coingirl8722-Jun-19 08:36 AM
No jl777 but...you make an announcement and than nothing happened
I dont care about the video
Its only a video
jl777c22-Jun-19 08:36 AM
we announced about dico tech, dico tech released
Malti22-Jun-19 08:36 AM
How were the early days of the internet? Remember dialing up the connection? This was a tech focused community. And then came the ‘normies’
coingirl8722-Jun-19 08:36 AM
But i care about the word of marketing
jl777c22-Jun-19 08:36 AM
then please feedback the evolve antara campaign!
let us look forward
coingirl8722-Jun-19 08:37 AM
And when the word is not true than its not good
jl777c22-Jun-19 08:37 AM
we admit in the past, it was not as good as it should have been
well, a lot of people keep asking us to hype (as in stuff that is not true to pump the price)
Malti22-Jun-19 08:37 AM
Are you planning to use the kmd ecosystem @coingirl87 or do you just want your bags pumped?
Duck Tape22-Jun-19 08:37 AM
The point is, the price of Komodo is going down too much and we need someone are something to blame. If it goes up again, everyone will stop complaining. I will stop complaining.
jl777c22-Jun-19 08:38 AM
yes, BTC dominance getting to 60% (highest mark in recent years) that has nothing to do with the price of all alts going down
just wait for the second half of this year
i cannot divulge any details
but i am buying KMD
Malti22-Jun-19 08:39 AM
I’m trying to convince devs to move from hyperledger to kmd because of the opportunities it will bring. Therefore marketing aimed at them (which it will be) is 10000000x more value able than some banner at CMC to pump the price
coingirl8722-Jun-19 08:39 AM
I will use the ecosystem but like a said yesterday...the only buyers st the moment are the supernet team
The bags increase from 6 million to 10 million in last weeks
That was the whale
No other oeople buy kmd...maybe some small fishes
Malti22-Jun-19 08:39 AM
I don’t believe supernet team buys on CEX
jl777c22-Jun-19 08:39 AM
I did manage to do OTC deals
coingirl8722-Jun-19 08:39 AM
Thats why we need marketing
jl777c22-Jun-19 08:40 AM
likely some of them used cex
Malti22-Jun-19 08:40 AM
But you’re talking coin buying marketing
Tek22-Jun-19 08:40 AM
@jl777c bruh why r you buying kmd
you already have over a million of them
if not 10 mil in your fund
jl777c22-Jun-19 08:40 AM
i have a lot less now...
Tek22-Jun-19 08:40 AM
leave some for us plebs
KMD is gonna be the investment of my life
I hope
jl777c22-Jun-19 08:41 AM
its time will come after BTC peaks in this bull market
like all the alts
and the days when BTC dominance peaks is when altcoin prices are lowest
and i like to do OTC deals during these times
Tek22-Jun-19 08:41 AM
I understand you dont like to market to traders. but you should market to exchanges.
having pairs is important
jl777c22-Jun-19 08:42 AM
you mean pay them big giant fees?
Tek22-Jun-19 08:42 AM
Personally I would pay some of them.
its worth it
coingirl8722-Jun-19 08:42 AM
So when you like otc deals....maybe kmd should implement otc feature
jl777c22-Jun-19 08:42 AM
ok, send me the BTC and I will use it to pay for listings
Malti22-Jun-19 08:42 AM
BTC massive bull atm
Alt season coming
KMD sell pressure almost dry
Antara/evolve launching 15th of July
This can’t get any better
Tek22-Jun-19 08:42 AM
you should do like a big kmd holder voting round and just pay a listing fee with your interestes
jl777c22-Jun-19 08:43 AM
i am pretty unique, i think many people trust me enough to send first
coingirl8722-Jun-19 08:43 AM
Yes...pay feees...thats marketing
Marketing needs money
Malti22-Jun-19 08:43 AM
Lol but what listings do we need?

 Don’t know if they have DEX Tech tho(edited)
Duck Tape22-Jun-19 08:46 AM
Will Resistance Dex not be more popular than Atomicdex? There is some serious competition, or not?
coingirl8722-Jun-19 08:46 AM
So guys...sorry for my complainings...i believe in jl777 words...so i will try to be positive in future....hope you are right
jl777c22-Jun-19 08:47 AM
no idea about resistance dex, they started by being based on mm1
but for trading, the competition is all the CEX
grewalsatinder22-Jun-19 08:47 AM
The marketing atomicDEX as I understand will be much greater with word of mouth as I see it's working success rate of atomic swaps over mobile


--- layout: attachment title: KELLER ABRAMS date: 2012-03-31 23:03:03.000000000 +05:30 categories: [] tags: [] status: inherit type: attachment published: false meta: _wp_attached_file: 2012/03/AP0507060132451.jpeg _wp_attachment_metadata: a:6:{s:5:"width";s:4:"3504";s:6:"height";s:4:"2336";s:14:"hwstring_small";s:23:"height='85' width='128'";s:4:"file";s:28:"2012/03/AP0507060132451.jpeg";s:5:"sizes";a:3:{s:9:"thumbnail";a:3:{s:4:"file";s:27:"AP0507060132451-150x150.jpg";s:5:"width";s:3:"150";s:6:"height";s:3:"150";}s:6:"medium";a:3:{s:4:"file";s:27:"AP0507060132451-300x200.jpg";s:5:"width";s:3:"300";s:6:"height";s:3:"200";}s:5:"large";a:3:{s:4:"file";s:28:"AP0507060132451-1024x682.jpg";s:5:"width";s:4:"1024";s:6:"height";s:3:"682";}}s:10:"image_meta";a:10:{s:8:"aperture";s:1:"0";s:6:"credit";s:16:"ASSOCIATED PRESS";s:6:"camera";s:0:"";s:7:"caption";s:401:"New York Times Executive Editor Bill Keller speaks with attorney Floyd Abrams, rear, outside Federal District Court in Washington on Wednesday, July 6, 2005. A federal judge Wednesday ordered Times reporter Judith Miller to be jailed immediately after she again refused to cooperate with a grand jury investigating the disclosure of the identity of a covert C.I.A. operative. (AP Photo/Gerald Herbert)";s:17:"created_timestamp";s:10:"1120660190";s:9:"copyright";s:6:"AP2005";s:12:"focal_length";s:1:"0";s:3:"iso";s:1:"0";s:13:"shutter_speed";s:1:"0";s:5:"title";s:13:"KELLER ABRAMS";}} author: login: cvlewis email<EMAIL_ADDRESS>display_name: Carl V. Lewis first_name: Carl V. last_name: Lewis excerpt: !ruby/object:Hpricot::Doc options: {} ---
New York Times Executive Editor Bill Keller speaks with attorney Floyd Abrams, rear, outside Federal District Court in Washington on Wednesday, July 6, 2005. A federal judge Wednesday ordered Times reporter Judith Miller to be jailed immediately after she again refused to cooperate with a grand jury investigating the disclosure of the identity of a covert C.I.A. operative. (AP Photo/Gerald Herbert)


Welcome to CST Options
NOTE:
Selection window is only open for a limited time
All selections are final and cannot be changed
LOG IN


interface StoryDefinition : IntentAware
(source)
The definition of a "Story". A story holds a list of actions of the same domain. The story provides a set of starter intents. When theses intents are detected, The story is started.
Story definitions should usually not directly extend this class, but instead extend SimpleStoryHandlerBase or StoryDefinitionBase.
id |
An unique identifier for a given bot. abstract val id: String |
intents |
The complete list of intents supported by the story. abstract val intents: Set<Intent> |
starterIntents |
One or more intents that start the story. Usually, you don't have the same starter intent in two different story definition. abstract val starterIntents: Set<Intent> |
steps |
The root steps of the story. abstract val steps: Set<StoryStep<*>> |
storyHandler |
The story handler of the story. abstract val storyHandler: StoryHandler |
unsupportedUserInterfaces |
When this story does not support all UserInterfaceTypes. abstract val unsupportedUserInterfaces: Set<UserInterfaceType> |
allSteps |
open fun allSteps(): Set<StoryStep<*>> |
isStarterIntent |
Is the specified intent is a starter intent? open fun isStarterIntent(intent: Intent): Boolean |
mainIntent |
The "referent" intent for this story. open fun mainIntent(): Intent |
supportIntent |
Is the specified intent is supported by this story? open fun supportIntent(intent: Intent): Boolean |
wrappedIntent |
Implementation for IntentAware. open fun wrappedIntent(): Intent |
SimpleStoryDefinition |
Simple implementation of StoryDefinition. open class SimpleStoryDefinition : StoryDefinition |
StoryDefinitionBase |
Default StoryDefinition implementation. open class StoryDefinitionBase : StoryDefinition |
StoryDefinitionExtended |
Helper methods for StoryDefinition implementation. Usually direct implementations are enums. This interface add a starter (and main) intent with intent name equals to the property of value name to the StoryDefinition. Warning: advanced usage only. interface StoryDefinitionExtended : StoryDefinition |


Chesney Henry "Chet" Baker Jr. (December 23, 1929 – May 13, 1988) was an American jazz trumpeter and vocalist. He is known for major innovations within the cool jazz subgenre leading him to be nicknamed the "prince of cool"
Baker earned much attention and critical praise through the 1950s, particularly for albums featuring his vocals (Chet Baker Sings, It Could Happen to You). Jazz historian Dave Gelly described the promise of Baker's early career as "James Dean, Sinatra, and Bix, rolled into one." His well-publicized drug habit also drove his notoriety and fame. Baker was in and out of jail frequently before enjoying a career resurgence in the late 1970s and 1980s.
Born and raised in a musical household in Yale, Oklahoma. His father, Chesney Baker Sr., was a professional guitarist, and his mother, Vera Moser, was a pianist who worked in a perfume factory.Baker began his musical career singing in a church choir. In 1940, due to the lack of work for Chet's father in Oklahoma, the family moved to Glendale, California. When Chet was thirteen his father brought home a trombone. The trombone didn't work out very well because Chet was so small compared to the trombone. Chet, Sr. took away the trombone and replaced it with a trumpet.
In 1952, Baker joined the Gerry Mulligan Quartet.He made his acting debut in the film Hell's Horizon, released in the fall of 1955. In 1956 he completed an eight-month tour of Europe, where he recorded Chet Baker in Europe.
During the 1960s, he was imprisoned in Italy on drug charges and was expelled from Germany and the UK on drug-related offences. From 1978 until his death in 1988, Baker lived and played almost exclusively in Europe, returning to the U.S. once a year for a few performances. This was Baker's most prolific era as a recording artist.
Early on May 13, 1988, Baker was found dead on the street below his room in Hotel Prins Hendrik, Amsterdam, with serious wounds to his head, apparently having fallen from the second-story window. Baker is buried at the Inglewood Park Cemetery in Inglewood, California, next to his father.
To learn more about his life and legacy visit his page at
Chet Baker Official


Lua Playground
Lua
Output
Thank you,
Tree-sitter
,
Tree-sitter HTML
and
Temple
.
See
rktjmp/html-to-temple
, built roughly, adjust expectations accordingly.


Fast translation: If enabled, then translation dialog would appear when
you select text or double click the word
Memorize option (Experimental):
"Memorize" button becomes visible at translation dialog if this option enabled.
Click on the "Memorize" button saves the word and its translation into your personal dictionary at
tran-service.com
You should sign up
at tran-service.com for proper use of this feature.
If you already have an account please sign in:
email:password


[gecode-users] operator <<, and use of a Gecode model with GUI
peter Tomson
pikapikanaoufel at gmail.com
Thu Sep 12 02:42:15 CEST 2013
Ok , thank You
but about using GUI when i just added the includes like #include < gecode/
int.hh> in my project ( i use windows form in VS2010c++) it doesn't work i
really don't know why , i reread MPG it again but no use , even the
examples , no one of them use GUI ?????
Do YOU Know any thing about that
Thank YOU Peter
2013/9/12 peter Tomson <pikapikanaoufel at gmail.com>
> Ok , thank You
>
> but about using GUI when i just added the includes like #include <
> gecode/ int.hh> in my project ( i use windows form in VS2010c++) it doesn't
> work i really don't know why , i reread it again but no use , even the
> examples , no one of them use GUI ?????
>
> Do YOU any thing about that
>
> Thank YOU Peter
>
>
> 2013/9/12 Guido Tack <tack at gecode.org>
>
>> This isn't really a gecode question, it's more about c++. Your while
>> loop makes no sense (a is never empty). And it's certainly possible to use
>> gecode in a GUI application.
>>
>> Cheers,
>> Guido
>>
>> On 12/09/2013, at 9:53 AM, peter Tomson <pikapikanaoufel at gmail.com>
>> wrote:
>>
>> hi everyOne!
>>
>> i'm new with gecode and i hope YOU can help me to solve my problem .
>>
>> i'm trying to use Gecode as my solvor in my project , i created a project
>> with VS2010c++, with some GUI,. In my class which using gecode, i have to
>> get my variables from another class .
>>
>> I read the MPG , and i find in section : Dinamiclly argument array , i
>> tryed to use it with my vector a like this :
>>
>> IntVarArgs v;
>> std::vector<int> a ;
>> for (int i=0;i<5;i++)
>> a.push_back(i);
>> int u=0;
>> while (!a.empty())
>> {
>> v<< IntVar (*this,a[u],a[u+1]);
>> u++;
>>
>> }
>>
>> but with this i can't get the elments from the array one by one , i
>> just added in each iteration 2 elemnt from array a to the IntVarargs v , is
>> there any other way to do it ???
>> Honnestly what i want to do is this : execute the code in my class that
>> contains the code developed by gecode by a click on a button in a GUI is
>> that even possibel ?? because when i added the includes of gecode to a GUI
>> it doesn't work
>>
>> thak YOU very much for any help
>> _______________________________________________
>> Gecode users mailing list
>> users at gecode.org
>> https://www.gecode.org/mailman/listinfo/gecode-users
>>
>>
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.gecode.org/pipermail/users/attachments/20130912/e031475d/attachment-0001.html>
More information about the users
mailing list