diff --git a/LICENSE.txt b/LICENSE.txt index e3de4c2ccc2..f41c7b4f16c 100644 --- a/LICENSE.txt +++ b/LICENSE.txt @@ -537,6 +537,9 @@ https://github.com/DynamoDS/Dynamo/tree/master/tools/install/Extra/DirectX/Licen ImageMagick https://imagemagick.org/script/license.php +LiveCharts +https://github.com/Live-Charts/Live-Charts/blob/master/LICENSE.TXT + Magick.NET.Core https://github.com/dlemstra/Magick.NET/blob/main/License.txt diff --git a/doc/distrib/License.rtf b/doc/distrib/License.rtf index 8b7425cd704..96b412b73e9 100644 --- a/doc/distrib/License.rtf +++ b/doc/distrib/License.rtf @@ -1,702 +1,1697 @@ -{\rtf1\ansi\ansicpg1252\deff0\nouicompat\deflang1033\deflangfe1033{\fonttbl{\f0\fswiss\fcharset0 Helvetica-Bold;}{\f1\fswiss\fprq2\fcharset0 Helvetica;}{\f2\fswiss\fprq2\fcharset0 Verdana;}{\f3\froman\fprq2\fcharset0 Times New Roman;}} -{\colortbl ;\red165\green165\blue165;\red109\green210\blue255;\red0\green0\blue255;} -{\stylesheet{ Normal;}{\s1 heading 1;}{\s2 heading 2;}{\s3 heading 3;}{\s4 heading 4;}} -{\*\generator Riched20 10.0.22000}{\*\mmathPr\mnaryLim0\mdispDef1\mwrapIndent1440 }\viewkind4\uc1 -\pard\nowidctlpar\sb240\sl276\slmult1\cf1\b\f0\fs22 @DYNAMO v.2.18.0 \'a9 2022 Autodesk, Inc. All rights reserved.\par -Dynamo License\par - -\pard\widctlpar\b0\f1\par -Those portions created by Ian are provided with the following copyright:\par -\par -Copyright 2017 Ian Keough\par -\par -Those portions created by Autodesk employees are provided with the following copyright:\par -\par -Copyright 2022 Autodesk, Inc.\par -\par -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 {\cf2\ul{\field{\*\fldinst{HYPERLINK "https://nam11.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwww.apache.org%2Flicenses%2FLICENSE-2.0&data=04%7C01%7CJames.Conner%40autodesk.com%7Cdaecd65781944b855e7808d946251ff6%7C67bff79e7f914433a8e5c9252d2ddc1d%7C0%7C0%7C637617947520120511%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=hM4SECRXlI3Y3bhWd0n7aVFES8pYfE3tfdiIfbSsdIo%3D&reserved=0" }}{\fldrslt{http://www.apache.org/licenses/LICENSE-2.0}}}}\cf2\ul\f1\fs22 \cf1\ulnone 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.\cf2\ul\par -\cf0\ulnone\b\f2\fs20\par - -\pard\nowidctlpar\sb240\sl276\slmult1\cf1\f0\fs22 Privacy\par - -\pard\widctlpar\b0\f1 To learn more about Autodesk\rquote s online and offline privacy practices, please see the {\cf2\ul{\field{\*\fldinst{HYPERLINK "http://www.autodesk.com/company/legal-notices-trademarks/privacy-statement"}}{\fldrslt{Autodesk Privacy Statement}}}}\cf2\ul\f1\fs22 .\cf0\ulnone\f2\fs16\par -\par - -\pard\nowidctlpar\sb240\sl276\slmult1\cf1\b\f0\fs22 Autodesk Trademarks\par - -\pard\widctlpar\b0\f1 The trademarks on the {\cf2\ul{\field{\*\fldinst{HYPERLINK "https://www.autodesk.com/company/legal-notices-trademarks/intellectual-property/trademarks"}}{\fldrslt{Autodesk Trademarks page}}}}\f1\fs22 are registered trademarks or trademarks of Autodesk, Inc., and/or its subsidiaries and/or affiliates in the USA and/or other countries. \par -\par -All other brand names, product names or trademarks belong to their respective holders.\par - -\pard\nowidctlpar\sb240\sl276\slmult1\b\f0 Autodesk Cloud and Desktop Components\cf0\f2\par - -\pard\widctlpar\cf1\b0\f1 This Product or Service may incorporate or use background Autodesk online and desktop technology components.\~ For information about these components, see\cf0\f2 {\cf2\ul\f1{\field{\*\fldinst{HYPERLINK "https://www.autodesk.com/company/legal-notices-trademarks/autodesk-cloud-platform-components"}}{\fldrslt{Autodesk Cloud Platform Components}}}}\cf1\f3\fs22 \f1 and {\cf2\ul{\field{\*\fldinst{HYPERLINK "https://www.autodesk.com/company/legal-notices-trademarks/autodesk-desktop-platform-components"}}{\fldrslt{Autodesk Desktop Platform Components}}}}\cf2\ul\f1\fs22 .\par -\cf0\ulnone\f2\fs18\par - -\pard\widctlpar\sb168\cf1\b\f0\fs22 LIBG, ProtoGeometry v.2.7.0, Analytics.NET, ADP, GRegRevitAuth, AGET, IDSDK, and IDSDK Wrapper\b0\f1 are closed source files licensed by Autodesk under the license that can be found here {\cf0{\field{\*\fldinst{HYPERLINK https://github.com/DynamoDS/Dynamo/tree/master/doc/distrib/Autodesk.rtf }}{\fldrslt{https://github.com/DynamoDS/Dynamo/tree/master/doc/distrib/Autodesk.rtf\ul0\cf0}}}}\f1\fs22\par - -\pard\widctlpar\cf0\f2\fs18\par -\fs20\par -\cf1\b\f0\fs22 Third-Party Trademarks, Software Credits and Attributions\par -\cf0\b0\f2\fs18\par -\cf1\b\f0\fs22 Greg v.\cf0\b0\f3\fs24 \cf1\b\f0\fs22 2.3.0.1646:\par -\b0\f1 (The MIT License)\par -Copyright (c) 2013 Peter Boyer {\cf2\ul\f3\fs24{\field{\*\fldinst{HYPERLINK "mailto:peter.boyer@autodesk.com" }}{\fldrslt{\f1\fs22 peter.boyer@autodesk.com}}}}\f1\fs22 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:\par -\par -The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\par -\par -THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. 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.\par -\cf0\f2\fs18\par -\cf1\b\f0\fs22 Microsoft.CSharp v.4.0.0.0:\par -\b0\f1 The MIT License (MIT)\par -Copyright (c) .NET Foundation and Contributors\par -All rights reserved.\par -\par -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:\par -\ul\par -\ulnone The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\par -\par -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. 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.\par -\cf0\f2\fs18\par -\cf1\b\f0\fs22 Newtonsoft.Json v.13.0.1:\par -{\cf2\ul\b0\f1{\field{\*\fldinst{HYPERLINK "https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2FJamesNK%2FNewtonsoft.Json&data=04%7C01%7CJames.Conner%40autodesk.com%7Cdaecd65781944b855e7808d946251ff6%7C67bff79e7f914433a8e5c9252d2ddc1d%7C0%7C0%7C637617947520419200%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=hvR4mYgVhMPpQh4uLCJ3PY9Ywr8mM0vqXF98ac8mPXA%3D&reserved=0" }}{\fldrslt{https://github.com/JamesNK/Newtonsoft.Json}}}}\cf2\ul\b0\f1\fs22\par -{{\field{\*\fldinst{HYPERLINK "https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2FJamesNK%2FNewtonsoft.Json%2Fblob%2Fmaster%2FLICENSE.md&data=04%7C01%7CJames.Conner%40autodesk.com%7Cdaecd65781944b855e7808d946251ff6%7C67bff79e7f914433a8e5c9252d2ddc1d%7C0%7C0%7C637617947520429148%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=OuX0yvu%2F0kVS7X5KARjQ3p9Ycg8qvk67fFAaKNEWxbM%3D&reserved=0" }}{\fldrslt{https://github.com/JamesNK/Newtonsoft.Json/blob/master/LICENSE.md}}}}\f1\fs22\par -\cf1\ulnone The MIT License (MIT)\par -Copyright (c) 2007 James Newton-King\par -\par -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:\par -\par -The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\par -\par -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. 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.\par -\par -\b\f0 RestSharp v.106.12.0.0:\par -{\cf2\ul\b0\f1{\field{\*\fldinst{HYPERLINK "https://nam11.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwww.apache.org%2Flicenses%2FLICENSE-2.0&data=04%7C01%7CJames.Conner%40autodesk.com%7Cdaecd65781944b855e7808d946251ff6%7C67bff79e7f914433a8e5c9252d2ddc1d%7C0%7C0%7C637617947520478947%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=foUoDUPyy8Or0rkNJtlLjI9XfJO7gemOLFnuKIkflHU%3D&reserved=0" }}{\fldrslt{http://www.apache.org/licenses/LICENSE-2.0}}}}\cf2\ul\b0\f1\fs22\par -\cf1\ulnone Copyright \'a9 2021 Alexe Zimarev\par -\par -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 {\cf0{\field{\*\fldinst{HYPERLINK http://www.apache.org/licenses/LICENSE-2.0 }}{\fldrslt{http://www.apache.org/licenses/LICENSE-2.0\ul0\cf0}}}}\f1\fs22 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.\par -\cf0\f2\fs18\par - -\pard\nowidctlpar\sl288\slmult1\cf1\kerning1\b\f0\fs22 Ndesk.Options v.0.2.1.0:\par -\par - -\pard\widctlpar\kerning0\b0\f1 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:\par -\par -The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\par -\par -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. 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.\par -\cf0\f2\fs18\par - -\pard\nowidctlpar\sl288\slmult1\cf1\kerning1\b\f0\fs22 System.Collections.Immutable v.1.4.0:\par - -\pard\widctlpar\kerning0\b0\f1 Copyright (c) 2017 .NET Foundation and Contributors\par -All rights reserved.\par -\par -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:\par -\par -The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\par -\par -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. 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.\par -\cf0\f2\fs18\par - -\pard\nowidctlpar\sl288\slmult1\cf1\kerning1\b\f0\fs22\lang1031 Fontawesome v.4.7.0.37774:\par - -\pard\widctlpar {\cf2\kerning0\ul\b0\f1{\field{\*\fldinst{HYPERLINK "https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwww.nuget.org%2Fpackages%2FFontAwesome.WPF%2F&data=04%7C01%7CJames.Conner%40autodesk.com%7Cdaecd65781944b855e7808d946251ff6%7C67bff79e7f914433a8e5c9252d2ddc1d%7C0%7C0%7C637617947520190208%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=X8xzrd%2Fj2Js0LaFtQIoDfDv5iv%2FWDi31xCr9xQYz%2B80%3D&reserved=0" }}{\fldrslt{https://www.nuget.org/packages/FontAwesome.WPF/}}}}\cf2\kerning0\ul\b0\f1\fs22\par -{{\field{\*\fldinst{HYPERLINK "https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fcharri%2FFont-Awesome-WPF%2Fblob%2Fmaster%2FLICENSE&data=04%7C01%7CJames.Conner%40autodesk.com%7Cdaecd65781944b855e7808d946251ff6%7C67bff79e7f914433a8e5c9252d2ddc1d%7C0%7C0%7C637617947520200164%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=sKAHUntVBjSIV8O68z3a0dCJ%2BlRxwngZUFlVrQNRkW8%3D&reserved=0" }}{\fldrslt{https://github.com/charri/Font-Awesome-WPF/blob/master/LICENSE}}}}\f1\fs22\par -\cf1\ulnone\lang1033 The MIT License (MIT)\par -Copyright (c) 2014-2016 charri\par -\par -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:\par -\par -The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\par -\par -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. 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.\par -\cf0\f2\fs18\par - -\pard\nowidctlpar\sl288\slmult1\cf1\kerning1\b\f0\fs22 Cyotek.Drawing.BitmapFont v.1.3.4:\par - -\pard\widctlpar {\cf2\kerning0\ul\b0\f1{\field{\*\fldinst{HYPERLINK "https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fcyotek%2FCyotek.Drawing.BitmapFont&data=04%7C01%7CJames.Conner%40autodesk.com%7Cdaecd65781944b855e7808d946251ff6%7C67bff79e7f914433a8e5c9252d2ddc1d%7C0%7C0%7C637617947520160343%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=kvdO%2FPPgz3PuASG6zv93DwNJ4gPkL6T6islWBwoI9Xk%3D&reserved=0" }}{\fldrslt{https://github.com/cyotek/Cyotek.Drawing.BitmapFont}}}}\cf2\kerning0\ul\b0\f1\fs22\par -{{\field{\*\fldinst{HYPERLINK "https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fcyotek%2FCyotek.Drawing.BitmapFont%2Fblob%2Fmaster%2FLICENSE.txt&data=04%7C01%7CJames.Conner%40autodesk.com%7Cdaecd65781944b855e7808d946251ff6%7C67bff79e7f914433a8e5c9252d2ddc1d%7C0%7C0%7C637617947520170297%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=WjEf%2FyE1koklbovxfFzHrScckILOiAOQlGkhPLaZ%2FL8%3D&reserved=0" }}{\fldrslt{https://github.com/cyotek/Cyotek.Drawing.BitmapFont/blob/master/LICENSE.txt}}}}\f1\fs22\par -\cf1\ulnone The MIT License (MIT)\par -Copyright \'a9 2012-2021 Cyotek Ltd.\par -\par -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:\par -\par -The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\par -\par -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. 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.\par -\cf0\f2\fs18\par - -\pard\nowidctlpar\sl288\slmult1\cf1\kerning1\b\f0\fs22 Helix Toolkit v.2.11.0:\par - -\pard\widctlpar {\cf2\kerning0\ul\b0\f1{\field{\*\fldinst{HYPERLINK "https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fhelix-toolkit%2Fhelix-toolkit&data=04%7C01%7CJames.Conner%40autodesk.com%7Cdaecd65781944b855e7808d946251ff6%7C67bff79e7f914433a8e5c9252d2ddc1d%7C0%7C0%7C637617947520210113%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=dfWqblB8VdDL63AyawNfgrFG2TD08PCrheqsu%2B7K0Us%3D&reserved=0" }}{\fldrslt{https://github.com/helix-toolkit/helix-toolkit}}}}\cf2\kerning0\ul\b0\f1\fs22\par -{{\field{\*\fldinst{HYPERLINK "https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fhelix-toolkit%2Fhelix-toolkit%2Fblob%2Fdevelop%2FLICENSE&data=04%7C01%7CJames.Conner%40autodesk.com%7Cdaecd65781944b855e7808d946251ff6%7C67bff79e7f914433a8e5c9252d2ddc1d%7C0%7C0%7C637617947520210113%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=qUPlp6EXAxHOk9eACY7DopacUlVCn355KLenUznV%2Ft0%3D&reserved=0" }}{\fldrslt{https://github.com/helix-toolkit/helix-toolkit/blob/develop/LICENSE}}}}\f1\fs22\par -\cf1\ulnone The MIT License (MIT)\par -Copyright (c) 2019 Helix Toolkit contributors\par -\par -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:\par -\par -The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\par -\par -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. 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.\par -\cf0\f2\fs18\par - -\pard\nowidctlpar\sl288\slmult1\cf1\kerning1\b\f0\fs22 SharpDX v.4.2.0:\par - -\pard\widctlpar {\cf2\kerning0\ul\b0\f1{\field{\*\fldinst{HYPERLINK "https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fsharpdx%2FSharpDX%2Fblob%2Fmaster%2FLICENSE&data=04%7C01%7CJames.Conner%40autodesk.com%7Cdaecd65781944b855e7808d946251ff6%7C67bff79e7f914433a8e5c9252d2ddc1d%7C0%7C0%7C637617947520488895%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=VOYhb2IAZGG0jx%2FwQxJ2Q9HXN2t6XKVVP6AiBEdD%2F3E%3D&reserved=0" }}{\fldrslt{https://github.com/sharpdx/SharpDX/blob/master/LICENSE}}}}\cf2\kerning0\ul\b0\f1\fs22\par -\cf1\ulnone Copyright (c) 2010-2014 SharpDX - Alexandre Mutel\par -\par -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:\par -\par -The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\par -\par -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. 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.\par -\cf0\f2\fs18\par - -\pard\nowidctlpar\sl288\slmult1\cf1\kerning1\b\f0\fs22 ICSharpCode.AvalonEdit v.4.3.1.9430:\par - -\pard\widctlpar {\cf2\kerning0\ul\b0\f1{\field{\*\fldinst{HYPERLINK "https://nam11.safelinks.protection.outlook.com/?url=http%3A%2F%2Favalonedit.net%2F&data=04%7C01%7CJames.Conner%40autodesk.com%7Cdaecd65781944b855e7808d946251ff6%7C67bff79e7f914433a8e5c9252d2ddc1d%7C0%7C0%7C637617947520140430%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=8LzAHpLNkVoeZjdzGOhnWGFNiouDGJ8VC5KDZ082Xw4%3D&reserved=0" }}{\fldrslt{http://avalonedit.net}}}}\cf2\kerning0\ul\b0\f1\fs22\par -{{\field{\*\fldinst{HYPERLINK "https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fopensource.org%2Flicenses%2Flgpl-2.1.php&data=04%7C01%7CJames.Conner%40autodesk.com%7Cdaecd65781944b855e7808d946251ff6%7C67bff79e7f914433a8e5c9252d2ddc1d%7C0%7C0%7C637617947520140430%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=dPV5LoRJRVwXcegWvkTcHabB5Tevj64NxzAjDzFlGg8%3D&reserved=0" }}{\fldrslt{https://opensource.org/licenses/lgpl-2.1.php}}}}\f1\fs22\par -\par -\cf1\ulnone Portions related to the Avalon Edit v.4.3.1.9429 are \'a9 2014 AlphaSierraPapa for the SharpDevelop Team. All rights reserved. Avalon Edit is licensed under the GNU Lesser General Public License v.3.0, which can be found at {\cf0{\field{\*\fldinst{HYPERLINK http://opensource.org/licenses/lgpl-3.0.html }}{\fldrslt{http://opensource.org/licenses/lgpl-3.0.html\ul0\cf0}}}}\f1\fs22 . A text copy of this license is included on the media provided by Autodesk or with the download of this Autodesk software. You may obtain a copy of the source code for Avalon Edit v.4.3.1.9429 from {\cf2\ul{\field{\*\fldinst{HYPERLINK www.autodesk.com/lgplsource }}{\fldrslt{www.autodesk.com/lgplsource}}}}\f1\fs22 or by sending a written request to:\par -\cf2\ul\par -\cf1\ulnone Autodesk, Inc.\par -Attention: General Counsel\par -Legal Department\par -111 McInnis Parkway\par -San Rafael, CA 9490\par -\par -Your written request must:\par -\par -1. Contain a self-addressed CD/DVD mailer (or envelope sufficiently large to hold a DVD) with postage sufficient to cover the amount of the current U.S. Post Office First Class postage rate for CD/DVD mailers (or the envelope you have chosen) weighing 5 ounces from San Rafael, California USA to your indicated address; and\par -2. Identify:\par -\bullet this Autodesk software name and release number;\par -\bullet that you are requesting the source code for Avalon Edit v.4.3.1.9429; and\par -\bullet the above URL ({{\field{\*\fldinst{HYPERLINK www.autodesk.com/lgplsource }}{\fldrslt{www.autodesk.com/lgplsource\ul0\cf0}}}}\f1\fs22 )\par -so that Autodesk may properly respond to your request. The offer to receive this Avalon Edit source code via the above URL ({\cf2\ul{\field{\*\fldinst{HYPERLINK "http://www.autodesk.com/lgplsource" }}{\fldrslt{www.autodesk.com/lgplsource}}}}\f1\fs22 ) or by written request to Autodesk is valid for a period of three (3) years from the date you purchased your license to this Autodesk software. You may modify, debug and relink Avalon Edit to this Autodesk software as provided under the terms of the GNU Lesser General Public License v.3.0.\par -\cf0\f2\fs18\par - -\pard\nowidctlpar\sl288\slmult1\cf1\kerning1\b\f0\fs22 Google OpenSans:\par - -\pard\widctlpar\kerning0\b0\f1 OpenSans font from Google\par -{\cf2\ul{\field{\*\fldinst{HYPERLINK "https://nam11.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwww.google.com%2Ffonts%2Fspecimen%2FOpen%2BSans&data=04%7C01%7CJames.Conner%40autodesk.com%7Cdaecd65781944b855e7808d946251ff6%7C67bff79e7f914433a8e5c9252d2ddc1d%7C0%7C0%7C637617947520439110%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=uwmtTlbBUjq%2B1z%2FvJsb9jSJ7i6M8hIMll1qnznB0mDw%3D&reserved=0" }}{\fldrslt{http://www.google.com/fonts/specimen/Open+Sans}}}}\cf2\ul\f1\fs22\par -{{\field{\*\fldinst{HYPERLINK "https://nam11.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwww.apache.org%2Flicenses%2FLICENSE-2.0.html&data=04%7C01%7CJames.Conner%40autodesk.com%7Cdaecd65781944b855e7808d946251ff6%7C67bff79e7f914433a8e5c9252d2ddc1d%7C0%7C0%7C637617947520449066%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=u4S07VDF20%2BhKswWuPxfNxdMvEV6u6kUxVXid57TMkQ%3D&reserved=0" }}{\fldrslt{http://www.apache.org/licenses/LICENSE-2.0.html}}}}\f1\fs22\par -\cf1\ulnone Copyright \'a9 [yyyy] Steve Matteson\par -\par -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 {\cf0{\field{\*\fldinst{HYPERLINK http://www.apache.org/licenses/LICENSE-2.0 }}{\fldrslt{http://www.apache.org/licenses/LICENSE-2.0\ul0\cf0}}}}\cf2\ul\f3\fs22 \cf1\ulnone\f1 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.\cf2\ul\f3\par -\cf0\ulnone\f2\fs18\par - -\pard\nowidctlpar\sl288\slmult1\cf1\kerning1\b\f0\fs22 DocumentFormat.OpenXml v.2.12.3:\par - -\pard\widctlpar\kerning0\b0\f1 The MIT License (MIT)\par -Copyright (c) Microsoft Corporation\par -\par -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:\par -\par -The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\par -\par -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. 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.\par -\cf0\f2\fs18\par - -\pard\nowidctlpar\sl288\slmult1\cf1\kerning1\b\f0\fs22 IronPython.StdLib v.2.7.9:\par - -\pard\widctlpar\kerning0\b0\f1 Copyright \'a9 2018 Slide & Slozier\par -\par -1. This LICENSE AGREEMENT is between the Python Software Foundation ("PSF"), and the Individual or Organization ("Licensee") accessing and otherwise using Python 2.7.18 software in source or binary form and its associated documentation.\par -\par -2. Subject to the terms and conditions of this License Agreement, PSF hereby grants Licensee a nonexclusive, royalty-free, world-wide license to reproduce, analyze, test, perform and/or display publicly, prepare derivative works, distribute, and otherwise use Python 2.7.18 alone or in any derivative version, provided, however, that PSF's License Agreement and PSF's notice of copyright, i.e., "Copyright \'a9 2001-2020 Python Software Foundation; All Rights Reserved" are retained in Python 2.7.18 alone or in any derivative version prepared by Licensee.\par -\par -3. In the event Licensee prepares a derivative work that is based on or incorporates Python 2.7.18 or any part thereof, and wants to make the derivative work available to others as provided herein, then Licensee hereby agrees to include in any such work a brief summary of the changes made to Python 2.7.18.\par -\par -4. PSF is making Python 2.7.18 available to Licensee on an "AS IS" basis. PSF MAKES NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR IMPLIED. BY WAY OF EXAMPLE, BUT NOT LIMITATION, PSF MAKES NO AND DISCLAIMS ANY REPRESENTATION OR WARRANTY OF MERCHANTABILITY OR FITNESS FOR ANY PARTICULAR PURPOSE OR THAT THE USE OF PYTHON 2.7.18 WILL NOT INFRINGE ANY THIRD PARTY RIGHTS.\par -\par -5. PSF SHALL NOT BE LIABLE TO LICENSEE OR ANY OTHER USERS OF PYTHON 2.7.18 FOR ANY INCIDENTAL, SPECIAL, OR CONSEQUENTIAL DAMAGES OR LOSS AS A RESULT OF MODIFYING, DISTRIBUTING, OR OTHERWISE USING PYTHON 2.7.18, OR ANY DERIVATIVE THEREOF, EVEN IF ADVISED OF THE POSSIBILITY THEREOF.\par -\par -6. This License Agreement will automatically terminate upon a material breach of its terms and conditions.\par -\par -7. Nothing in this License Agreement shall be deemed to create any relationship of agency, partnership, or joint venture between PSF and Licensee. This License Agreement does not grant permission to use PSF trademarks or trade name in a trademark sense to endorse or promote products or services of Licensee, or any third party.\par -\par -8. By copying, installing or otherwise using Python 2.7.18, Licensee agrees to be bound by the terms and conditions of this License Agreement.\par -\par - -\pard\nowidctlpar\sl288\slmult1\kerning1\b\f0 IronPython v.2.7.9\par -DynamicLanguageRuntime v.1.2.2\par - -\pard\widctlpar\kerning0\b0\f1 Iron Python, Dynamic Language Runtime\par -{\cf2\ul{\field{\*\fldinst{HYPERLINK "https://nam11.safelinks.protection.outlook.com/?url=http%3A%2F%2Fironpython.net%2F&data=04%7C01%7CJames.Conner%40autodesk.com%7Cdaecd65781944b855e7808d946251ff6%7C67bff79e7f914433a8e5c9252d2ddc1d%7C0%7C0%7C637617947520230026%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=imRCR5wnzORiO%2BHcoAs4qY%2FUsg2F3%2BvpQsquG4pLPbc%3D&reserved=0" }}{\fldrslt{http://ironpython.net/}}}}\cf2\ul\f1\fs22\par -{{\field{\*\fldinst{HYPERLINK "https://nam11.safelinks.protection.outlook.com/?url=http%3A%2F%2Fopensource.org%2Flicenses%2Fapache2.0.php&data=04%7C01%7CJames.Conner%40autodesk.com%7Cdaecd65781944b855e7808d946251ff6%7C67bff79e7f914433a8e5c9252d2ddc1d%7C0%7C0%7C637617947520339551%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=GqzN3ywkegHn8Xwxmkje5HuJNO7iecwBGZU3LOoNIus%3D&reserved=0" }}{\fldrslt{http://opensource.org/licenses/apache2.0.php}}}}\f1\fs22\par -\cf1\ulnone Copyright \'a9 2018 Iron Python Community\par -\par -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 {\cf0{\field{\*\fldinst{HYPERLINK http://www.apache.org/licenses/LICENSE-2.0 }}{\fldrslt{http://www.apache.org/licenses/LICENSE-2.0\ul0\cf0}}}}\f1\fs22 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.\par -\cf0\f2\fs18\par - -\pard\nowidctlpar\sl288\slmult1\cf1\kerning1\b\f0\fs22 Python.Runtime.NETStandard v.3.7.0:\par - -\pard\widctlpar\kerning0\b0\f1 Copyright (c) 2006-2021 the contributors of the Python.NET project\par -\par -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:\par -\par -The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\par -\par -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.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.\par -\cf0\f2\fs18\par - -\pard\nowidctlpar\sl288\slmult1\cf1\kerning1\b\f0\fs22 Python.Included v.3.7.3.4\par - -\pard\widctlpar\kerning0\b0\f1 PSF LICENSE AGREEMENT FOR PYTHON 3.10.4\par -\par -1. This LICENSE AGREEMENT is between the Python Software Foundation ("PSF"), and the Individual or Organization ("Licensee") accessing and otherwise using Python 3.7.3.4 software in source or binary form and its associated documentation.\par -\par -2. Subject to the terms and conditions of this License Agreement, PSF hereby grants Licensee a nonexclusive, royalty-free, world-wide license to reproduce, analyze, test, perform and/or display publicly, prepare derivative works, distribute, and otherwise use Python 3.7.3.4 alone or in any derivative version, provided, however, that PSF's License Agreement and PSF's notice of copyright, i.e., "Copyright \'a9 2001-2022 Python Software Foundation; All Rights Reserved" are retained in Python 3.7.3.4 alone or in any derivative version prepared by Licensee.\par -\par -3. In the event Licensee prepares a derivative work that is based on or incorporates Python 3.7.3.4 or any part thereof, and wants to make the derivative work available to others as provided herein, then Licensee hereby agrees to include in any such work a brief summary of the changes made to Python 3.7.3.4.\par -\par -4. PSF is making Python 3.7.3.4 available to Licensee on an "AS IS" basis. PSF MAKES NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR IMPLIED. BY WAY OFEXAMPLE, BUT NOT LIMITATION, PSF MAKES NO AND DISCLAIMS ANY REPRESENTATION OR WARRANTY OF MERCHANTABILITY OR FITNESS FOR ANY PARTICULAR PURPOSE OR THAT THE USE OF PYTHON 3.7.3.4 WILL NOT INFRINGE ANY THIRD PARTY RIGHTS.\par -\par -5. PSF SHALL NOT BE LIABLE TO LICENSEE OR ANY OTHER USERS OF PYTHON 3.7.3.4 FOR ANY INCIDENTAL, SPECIAL, OR CONSEQUENTIAL DAMAGES OR LOSS AS A RESULT OF MODIFYING, DISTRIBUTING, OR OTHERWISE USING PYTHON 3.7.3.4, OR ANY DERIVATIVE THEREOF, EVEN IF ADVISED OF THE POSSIBILITY THEREOF.\par -\par -6. This License Agreement will automatically terminate upon a material breach of its terms and conditions.\par -\par -7. Nothing in this License Agreement shall be deemed to create any relationship of agency, partnership, or joint venture between PSF and Licensee. This License Agreement does not grant permission to use PSF trademarks or trade name in a trademark sense to endorse or promote products or services of Licensee, or any third party.\par -\par -8. By copying, installing or otherwise using Python 3.7.3.4, Licensee agrees to be bound by the terms and conditions of this License Agreement.\par -\par - -\pard\nowidctlpar\sl288\slmult1\kerning1\b\f0 IPython (autoreload.py) v.7.24.1:\par - -\pard\widctlpar {\cf2\kerning0\ul\b0\f1{\field{\*\fldinst{HYPERLINK "https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fipython%2Fipython%2Fblob%2Fmaster%2FIPython%2Fextensions%2Fautoreload.py&data=04%7C01%7CJames.Conner%40autodesk.com%7Cdaecd65781944b855e7808d946251ff6%7C67bff79e7f914433a8e5c9252d2ddc1d%7C0%7C0%7C637617947520359465%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=7AtWEHhH3h2E0eDlvyhqM0OyREJugNDsYai4S5egwXc%3D&reserved=0" }}{\fldrslt{https://github.com/ipython/ipython/blob/master/IPython/extensions/autoreload.py}}}}\cf2\kerning0\ul\b0\f1\fs22\par -{{\field{\*\fldinst{HYPERLINK "https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fipython%2Fipython%2Fblob%2Fmaster%2FLICENSE&data=04%7C01%7CJames.Conner%40autodesk.com%7Cdaecd65781944b855e7808d946251ff6%7C67bff79e7f914433a8e5c9252d2ddc1d%7C0%7C0%7C637617947520359465%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=Pilk0qSjYqpb4gwsh9CFaG42mk5wngBXOSykgiBj1EQ%3D&reserved=0" }}{\fldrslt{https://github.com/ipython/ipython/blob/master/LICENSE}}}}\f1\fs22\par -\cf1\ulnone BSD 3-Clause License\par -- Copyright (c) 2008-Present, IPython Development Team\par -\lang3082 - Copyright (c) 2001-2007, Fernando Perez \par -\lang1033 - Copyright (c) 2001, Janko Hauser \par -- Copyright (c) 2001, Nathaniel Gray \par -All rights reserved.\par -\par -Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:\par -\par -* Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.\par -* 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.\par -* Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.\par -\par -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 HOLDER 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.\par -\cf0\f2\fs18\par - -\pard\nowidctlpar\sl288\slmult1\cf1\kerning1\b\f0\fs22 Nunit v.2.6.3\par - -\pard\widctlpar {\cf2\kerning0\ul\b0\f1{\field{\*\fldinst{HYPERLINK "https://nam11.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwww.nunit.org%2F&data=04%7C01%7CJames.Conner%40autodesk.com%7Cdaecd65781944b855e7808d946251ff6%7C67bff79e7f914433a8e5c9252d2ddc1d%7C0%7C0%7C637617947520429148%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=BUfNk%2Flw%2BcIf69w2%2FUf0Rq%2FiDdxtlm4UOrklWu1jBco%3D&reserved=0" }}{\fldrslt{http://www.nunit.org/}}}}\cf2\kerning0\ul\b0\f1\fs22\par -\cf1\ulnone Copyright \'a9 2002-2013 Charlie Poole\line Copyright \'a9 2002-2004 James W. Newkirk, Michael C. Two, Alexei A. Vorontsov\line Copyright \'a9 2000-2002 Philip A. Craig\par -\par -This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software.\par -Permission is granted to anyone to use this software for any purpose, including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions:\par -\par -1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment (see the following) in the product documentation is required. Portions Copyright \'a9 2002-2009 Charlie Poole or Copyright\~\'a9 2002-2004 James W. Newkirk, Michael C. Two, Alexei A. Vorontsov or Copyright\~\'a9 2000-2002 Philip A. Craig\~\par -2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software.\~\par -3. This notice may not be removed or altered from any source distribution.\par - -\pard\widctlpar\li720\par - -\pard\widctlpar\s4 License Note\par - -\pard\widctlpar This license is based on\~{{\field{\*\fldinst{HYPERLINK "http://www.opensource.org/licenses/zlib-license.html" }}{\fldrslt{\ul\cf3 the open source zlib/libpng license}}}}\f1\fs22 ({\cf0{\field{\*\fldinst{HYPERLINK https://opensource.org/licenses/zlib-license.html }}{\fldrslt{https://opensource.org/licenses/zlib-license.html\ul0\cf0}}}}\f1\fs22 ). The idea was to keep the license as simple as possible to encourage use of NUnit in free and commercial applications and libraries, but to keep the source code together and to give credit to the NUnit contributors for their efforts. While this license allows shipping NUnit in source and binary form, if shipping a NUnit variant is the sole purpose of your product, please\~{{\field{\*\fldinst{HYPERLINK "mailto:cpoole@pooleconsulting.com" }}{\fldrslt{\ul\cf3 let us know}}}}\f1\fs22 ({{\field{\*\fldinst{HYPERLINK "mailto:cpoole@pooleconsulting.com" }}{\fldrslt{\ul\cf3 cpoole@pooleconsulting.com}}}}\f1\fs22 ).\par -\par - -\pard\nowidctlpar\sl288\slmult1\kerning1\b\f0\lang3082 Moq v.4.2.1:\par - -\pard\widctlpar {\cf2\kerning0\ul\b0\f1{\field{\*\fldinst{HYPERLINK "https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fmoq%2Fmoq4%2Fblob%2Fmaster%2FLicense.txt&data=04%7C01%7CJames.Conner%40autodesk.com%7Cdaecd65781944b855e7808d946251ff6%7C67bff79e7f914433a8e5c9252d2ddc1d%7C0%7C0%7C637617947520409253%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=H%2FwNgy%2FpMYIgd%2FFlP1IU1dbvTUCauizIJKCAU6ISQZI%3D&reserved=0" }}{\fldrslt{https://github.com/moq/moq4/blob/master/License.txt/}}}}\cf2\kerning0\ul\b0\f1\fs22\par -\cf1\ulnone\lang1033 BSD 3-Clause License\par -Copyright (c) 2007, Clarius Consulting, Manas Technology Solutions, InSTEDD, and Contributors. All rights reserved.\par -\par -Redistribution and use in source and binary forms, with or without\par -modification, are permitted provided that the following conditions are met:\par -\par -* Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.\par -* 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.\par -* Neither the names of the copyright holders nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.\par -\par -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.\par -\cf0\f2\fs18\par - -\pard\nowidctlpar\sl288\slmult1\cf1\kerning1\b\f0\fs22\lang3082 Libiconv v.1.14.0.1:\par - -\pard\widctlpar {\cf2\kerning0\ul\b0\f1{\field{\*\fldinst{HYPERLINK "https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwww.gnu.org%2Fsoftware%2Flibiconv%2F&data=04%7C01%7CJames.Conner%40autodesk.com%7Cdaecd65781944b855e7808d946251ff6%7C67bff79e7f914433a8e5c9252d2ddc1d%7C0%7C0%7C637617947520369420%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=fyvQ8axd0727ARcscr232iqeW1sGK6FTq%2FP7s1ZtC6s%3D&reserved=0" }}{\fldrslt{https://www.gnu.org/software/libiconv/}}}}\cf2\kerning0\ul\b0\f1\fs22\par -{{\field{\*\fldinst{HYPERLINK "https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwww.gnu.org%2Fsoftware%2Fgettext%2Fmanual%2Fhtml_node%2FGNU-LGPL.html%23GNU-LGPL&data=04%7C01%7CJames.Conner%40autodesk.com%7Cdaecd65781944b855e7808d946251ff6%7C67bff79e7f914433a8e5c9252d2ddc1d%7C0%7C0%7C637617947520369420%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=NZT9tNyZbyPw1WOLz%2BE6ShwxQDWHBJ9uLSyHhKPHWHk%3D&reserved=0" }}{\fldrslt{https://www.gnu.org/software/gettext/manual/html_node/GNU-LGPL.html#GNU-LGPL}}}}\f1\fs22\par -\cf1\ulnone\lang1033\'a9 1998, 2013 Free Software Foundation, Inc. \par -\par -This Autodesk software contains libiconv v. 1.14.0.1. libiconv is licensed under the GNU Lesser General Public License v.2.1, which can be found at {\cf0{\field{\*\fldinst{HYPERLINK http://www.gnu.org/licenses/oldlicenses/lgpl-2.1.txt }}{\fldrslt{http://www.gnu.org/licenses/oldlicenses/lgpl-2.1.txt\ul0\cf0}}}}\f1\fs22 . A text copy of this license is included on the media or with the download of this Autodesk software. You may obtain a copy of the source code for libiconv from {\cf2\ul{\field{\*\fldinst{HYPERLINK "http://www.autodesk.com/lgplsource" }}{\fldrslt{www.autodesk.com/lgplsource}}}}\f1\fs22 or by sending a written request to:\par -\par -Autodesk, Inc.\par -Attention: General Counsel\par -Legal Department\par -111 McInnis Parkway\par -San Rafael, CA 94903\par -Your written request must:\par -\par -Contain a self-addressed CD/DVD mailer (or envelope sufficiently large to hold a DVD) with postage sufficient to cover the amount of the current U.S. Post Office First Class postage rate for CD/DVD mailers (or the envelope you have chosen) weighing 5 ounces from San Rafael, California USA to your indicated address; and Identify:\par -\par -This Autodesk software name and release number; That you are requesting the source code for libiconvv .1.14.0.1; and The above URL ({\cf2\ul{\field{\*\fldinst{HYPERLINK "http://www.autodesk.com/lgplsource" }}{\fldrslt{www.autodesk.com/lgplsource}}}}\f1\fs22 ) so that Autodesk may properly respond to your request. The offer to receive this libiconv source code via the above URL ({\cf2\ul{\field{\*\fldinst{HYPERLINK "http://www.autodesk.com/lgplsource" }}{\fldrslt{www.autodesk.com/lgplsource}}}}\f1\fs22 ) or by written request to Autodesk is valid for a period of three (3) years from the date you purchased your license to this Autodesk software. You may modify, debug and relink libiconv to this Autodesk software as provided under the terms of the GNU Lesser General Public License v.2.1.\par -\cf0\f2\fs18\par - -\pard\nowidctlpar\sl288\slmult1\cf1\kerning1\b\f0\fs22 GNU gettext (libintl) v.0.19.8.3:\par - -\pard\widctlpar {\cf2\kerning0\ul\b0\f1{\field{\*\fldinst{HYPERLINK "https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwww.gnu.org%2Fsoftware%2Fgettext%2F&data=04%7C01%7CJames.Conner%40autodesk.com%7Cdaecd65781944b855e7808d946251ff6%7C67bff79e7f914433a8e5c9252d2ddc1d%7C0%7C0%7C637617947520200164%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=Nf21XpKiL0wk%2Fv5o95n6NHU9yBTsVWmKLfq1AJGQ1bM%3D&reserved=0" }}{\fldrslt{https://www.gnu.org/software/gettext/}}}}\cf2\kerning0\ul\b0\f1\fs22\par -{{\field{\*\fldinst{HYPERLINK "https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwww.gnu.org%2Fsoftware%2Fgettext%2Fmanual%2Fhtml_node%2FGNU-LGPL.html%23GNU-LGPL&data=04%7C01%7CJames.Conner%40autodesk.com%7Cdaecd65781944b855e7808d946251ff6%7C67bff79e7f914433a8e5c9252d2ddc1d%7C0%7C0%7C637617947520210113%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=fm4crd4P%2By6SL%2F0glLKwxCwV9NjLZs7f2LAoNHfi2QE%3D&reserved=0" }}{\fldrslt{https://www.gnu.org/software/gettext/manual/html_node/GNU-LGPL.html#GNU-LGPL}}}}\f1\fs22\par -\cf1\ulnone\'a9 Copyright \'a9 1991, 1999 Free Software Foundation, Inc.\par -\par -This Autodesk software contains libintl v.0.19.8.3. libintl is licensed under the GNU Lesser General Public License v.2.1 , which can be found at {\cf0{\field{\*\fldinst{HYPERLINK http://www.gnu.org/licenses/oldlicenses/lgpl-2.1.txt }}{\fldrslt{http://www.gnu.org/licenses/oldlicenses/lgpl-2.1.txt\ul0\cf0}}}}\cf2\ul\f1\fs22 . \cf1\ulnone A text copy of this license is included on the media or with the download of this Autodesk software. You may obtain a copy of the source code for libintl v.0.19.8.3 from {\cf2\ul{\field{\*\fldinst{HYPERLINK "http://www.autodesk.com/lgplsource" }}{\fldrslt{www.autodesk.com/lgplsource}}}}\f1\fs22 or by sending a written request to:\par -\par -Autodesk, Inc.\par -Attention: General Counsel\par -Legal Department\par -111 McInnis Parkway\par -San Rafael, CA 94903\par -\par -Your written request must:\par -1. Contain a self-addressed CD/DVD mailer (or envelope sufficiently large to hold a DVD) with postage sufficient to cover the amount of the current U.S. Post Office First Class postage rate for CD/DVD mailers (or the envelope you have chosen) weighing 5 ounces from San Rafael, California USA to your indicated address; and\par -2. Identify:\par -a. This Autodesk software name and release number;\par -b. That you are requesting the source code for libintl v.0.19.8.3; and\par -c. The above URL ({{\field{\*\fldinst{HYPERLINK www.autodesk.com/lgplsource }}{\fldrslt{www.autodesk.com/lgplsource\ul0\cf0}}}}\f1\fs22 )\par -so that Autodesk may properly respond to your request. The offer to receive this libintl source code via the above URL ({{\field{\*\fldinst{HYPERLINK www.autodesk.com/lgplsource }}{\fldrslt{www.autodesk.com/lgplsource\ul0\cf0}}}}\f1\fs22 ) or by written request to Autodesk is valid for a period of three (3) years from the date you purchased your license to this Autodesk software.\par -You may modify, debug and relink libintl to this Autodesk software as provided under the terms of the GNU Lesser General Public License v.2.1.\par -\cf0\f2\fs18\par - -\pard\nowidctlpar\sl288\slmult1\cf1\kerning1\b\f0\fs22 DynamoServices:\par - -\pard\widctlpar\kerning0\b0\f1 Copyright \'a9 Autodesk, Inc.\par -\par -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 {\cf0{\field{\*\fldinst{HYPERLINK http://www.apache.org/licenses/LICENSE-2.0 }}{\fldrslt{http://www.apache.org/licenses/LICENSE-2.0\ul0\cf0}}}}\cf2\ul\f1\fs22 \cf1\ulnone 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.\par -\cf0\f2\fs18\par -\par - -\pard\nowidctlpar\sl288\slmult1\cf1\kerning1\b\f0\fs22 CSharpAnalytics v.1.2.1:\par - -\pard\widctlpar {\cf2\kerning0\ul\b0\f1{\field{\*\fldinst{HYPERLINK "https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2FAttackPattern%2FCSharpAnalytics&data=04%7C01%7CJames.Conner%40autodesk.com%7Cdaecd65781944b855e7808d946251ff6%7C67bff79e7f914433a8e5c9252d2ddc1d%7C0%7C0%7C637617947520150383%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=x9xD7ZirRSi5GD0klfE4hyScn%2BsSPb8TJao9MYbNV%2Fg%3D&reserved=0" }}{\fldrslt{https://github.com/AttackPattern/CSharpAnalytics}}}}\cf2\kerning0\ul\b0\f1\fs22\par -{{\field{\*\fldinst{HYPERLINK "https://nam11.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwww.apache.org%2Flicenses%2FLICENSE-2.0&data=04%7C01%7CJames.Conner%40autodesk.com%7Cdaecd65781944b855e7808d946251ff6%7C67bff79e7f914433a8e5c9252d2ddc1d%7C0%7C0%7C637617947520150383%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=v9nqtyKVwRS1oYkXRTRvYKHEcAWZZj0Q6G%2BfYjDPfXg%3D&reserved=0" }}{\fldrslt{http://www.apache.org/licenses/LICENSE-2.0}}}}\f1\fs22\par -\cf1\ulnone\'a9 2012-2015 Attack Pattern LLC\par -\par -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 {\cf0{\field{\*\fldinst{HYPERLINK http://www.apache.org/licenses/LICENSE-2.0 }}{\fldrslt{http://www.apache.org/licenses/LICENSE-2.0\ul0\cf0}}}}\f1\fs22 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.\par -\cf0\f2\fs18\par -\par - -\pard\nowidctlpar\sl288\slmult1\cf1\kerning1\b\f0\fs22\lang3082 Ncalc v.1.3.8.0:\cf2\kerning0\ul\b0\f1\par - -\pard\widctlpar {{\field{\*\fldinst{HYPERLINK "https://nam11.safelinks.protection.outlook.com/?url=http%3A%2F%2Fncalc.codeplex.com%2F&data=04%7C01%7CJames.Conner%40autodesk.com%7Cdaecd65781944b855e7808d946251ff6%7C67bff79e7f914433a8e5c9252d2ddc1d%7C0%7C0%7C637617947520409253%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=MXJNaR69ECgPJDJYPSnyLqGx9AGSwz%2FQZR55FnDPv5U%3D&reserved=0" }}{\fldrslt{http://ncalc.codeplex.com/}}}}\f1\fs22\par -\cf1\ulnone\lang1033\'a9 2011 Sebastien Ros\par -\par -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:\par -\par -The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\par -\par -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. 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.\par -\cf0\f2\fs18\par - -\pard\nowidctlpar\sl288\slmult1\cf1\kerning1\b\f0\fs22 MIConvexHull.NET v.1.0.17.411\par - -\pard\widctlpar {\cf2\kerning0\ul\b0\f1{\field{\*\fldinst{HYPERLINK "https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fdesignengrlab.github.io%2FMIConvexHull%2F&data=04%7C01%7CJames.Conner%40autodesk.com%7Cdaecd65781944b855e7808d946251ff6%7C67bff79e7f914433a8e5c9252d2ddc1d%7C0%7C0%7C637617947520389325%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=NY1pGp4Rus1IhXoLEAgeQgcF3gsQK5hhpdBY1KGxtSY%3D&reserved=0" }}{\fldrslt{http://miconvexhull.codeplex.com/}}}}\cf2\kerning0\ul\b0\f1\fs22\par -{{\field{\*\fldinst{HYPERLINK "https://nam11.safelinks.protection.outlook.com/?url=http%3A%2F%2Fmiconvexhull.codeplex.com%2Flicense&data=04%7C01%7CJames.Conner%40autodesk.com%7Cdaecd65781944b855e7808d946251ff6%7C67bff79e7f914433a8e5c9252d2ddc1d%7C0%7C0%7C637617947520389325%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=hNSoZ7QXpdD4Fhf0DlaIzm2xF9XGsksCYNlWnpXQ%2BiM%3D&reserved=0" }}{\fldrslt{http://miconvexhull.codeplex.com/license}}}}\f1\fs22\par -\cf1\ulnone Copyright (c) 2010 David Sehnal, Matthew Campbell\par -\par -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:\par -\par -The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\par -\par -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. 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. \par -\cf0\f2\fs18\par - -\pard\nowidctlpar\sl288\slmult1\cf1\kerning1\b\f0\fs22 StarMath v.2.0.14:\par - -\pard\widctlpar {\cf2\kerning0\ul\b0\f1{\field{\*\fldinst{HYPERLINK "https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2FDesignEngrLab%2FStarMath%2Fblob%2Fmaster%2FLICENSE&data=04%7C01%7CJames.Conner%40autodesk.com%7Cdaecd65781944b855e7808d946251ff6%7C67bff79e7f914433a8e5c9252d2ddc1d%7C0%7C0%7C637617947520488895%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=QlLJQ5zjjCkV03%2BrjgrcdUTiz9O6pTyzKdtSv5xpHsg%3D&reserved=0" }}{\fldrslt{https://github.com/DesignEngrLab/StarMath/blob/master/LICENSE}}}}\cf2\kerning0\ul\b0\f1\fs22\par -\cf1\ulnone The MIT License (MIT)\par -Copyright (c) 2015 DesignEngrLab\par -\par -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:\par -\par -The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\par -\par -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. 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.\par -\par - -\pard\nowidctlpar\sl288\slmult1\kerning1\b\f0 DiffPlex v.1.6.3:\par - -\pard\widctlpar\kerning0\b0\f1\'a9 2020 mmanela\par -\par -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\par -{\cf0{\field{\*\fldinst{HYPERLINK http://www.apache.org/licenses/LICENSE-2.0 }}{\fldrslt{http://www.apache.org/licenses/LICENSE-2.0\ul0\cf0}}}}\cf2\ul\f1\fs22 \cf1\ulnone 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.\cf2\ul\par -\cf0\ulnone\f2\fs18\par - -\pard\nowidctlpar\sl288\slmult1\cf1\kerning1\b\f0\fs22 DiffPlex.wpf v.1.1.1:\par - -\pard\widctlpar\kerning0\b0\f1\'a9 2020 mmanela\par -\par -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 {\cf0{\field{\*\fldinst{HYPERLINK http://www.apache.org/licenses/LICENSE-2.0 }}{\fldrslt{http://www.apache.org/licenses/LICENSE-2.0\ul0\cf0}}}}\f1\fs22 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.\par -\cf0\f2\fs18\par - -\pard\nowidctlpar\sl288\slmult1\cf1\kerning1\b\f0\fs22\lang1031 FontAwesome v.4.0.7:\par - -\pard\widctlpar {\cf2\kerning0\ul\b0\f1{\field{\*\fldinst{HYPERLINK "https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwww.nuget.org%2Fpackages%2FFontAwesome.WPF%2F&data=04%7C01%7CJames.Conner%40autodesk.com%7Cdaecd65781944b855e7808d946251ff6%7C67bff79e7f914433a8e5c9252d2ddc1d%7C0%7C0%7C637617947520190208%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=X8xzrd%2Fj2Js0LaFtQIoDfDv5iv%2FWDi31xCr9xQYz%2B80%3D&reserved=0" }}{\fldrslt{https://www.nuget.org/packages/FontAwesome.WPF/}}}}\cf2\kerning0\ul\b0\f1\fs22\par -{{\field{\*\fldinst{HYPERLINK "https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fcharri%2FFont-Awesome-WPF%2Fblob%2Fmaster%2FLICENSE&data=04%7C01%7CJames.Conner%40autodesk.com%7Cdaecd65781944b855e7808d946251ff6%7C67bff79e7f914433a8e5c9252d2ddc1d%7C0%7C0%7C637617947520200164%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=sKAHUntVBjSIV8O68z3a0dCJ%2BlRxwngZUFlVrQNRkW8%3D&reserved=0" }}{\fldrslt{https://github.com/charri/Font-Awesome-WPF/blob/master/LICENSE}}}}\f1\fs17\par -\cf1\ulnone\fs22\lang1033 Copyright (c) 2014-2016 charri\par -\par -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:\par -\par -The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\par -\par -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. 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.\par -\cf0\f2\fs18\par - -\pard\nowidctlpar\sl288\slmult1\cf1\kerning1\b\f0\fs22 AngleSharp v.0.14.0: Copyright (c) 2013 - 2019 AngleSharp\par -AngleSharp.CSS v.0.14.2: Copyright \'a9 2013-2020 AngleSharp\par - -\pard\widctlpar\kerning0\b0\f1 The MIT License (MIT)\par -\par -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:\par -\par -The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\par -\par -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. 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.\par -\cf0\f2\fs18\par - -\pard\nowidctlpar\sl288\slmult1\cf1\kerning1\b\f0\fs22 HTMLSanitizer v.5.0.355:\par - -\pard\widctlpar {\cf2\kerning0\ul\b0\f1{\field{\*\fldinst{HYPERLINK "https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fmganss%2FHtmlSanitizer&data=04%7C01%7CJames.Conner%40autodesk.com%7Cdaecd65781944b855e7808d946251ff6%7C67bff79e7f914433a8e5c9252d2ddc1d%7C0%7C0%7C637617947520220149%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=t7WD0mko%2B%2FF%2FdpKKLHyM93UCXrX%2BXwo3yUYVGPZQcGs%3D&reserved=0" }}{\fldrslt{https://github.com/mganss/HtmlSanitizer}}}}\cf2\kerning0\ul\b0\f1\fs22\par -{{\field{\*\fldinst{HYPERLINK "https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fmganss%2FHtmlSanitizer%2Fblob%2Fmaster%2FLICENSE.md&data=04%7C01%7CJames.Conner%40autodesk.com%7Cdaecd65781944b855e7808d946251ff6%7C67bff79e7f914433a8e5c9252d2ddc1d%7C0%7C0%7C637617947520220149%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=phLGnloT%2FCglabebh%2FsUSc6iiDyt6D3vSMPPKA%2FgOJQ%3D&reserved=0" }}{\fldrslt{https://github.com/mganss/HtmlSanitizer/blob/master/LICENSE.md}}}}\f1\fs22\par -\cf1\ulnone The MIT License (MIT)\par -Copyright (c) 2013-2016 Michael Ganss and HtmlSanitizer contributors\par -\par -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:\par -\par -The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\par -\par -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. 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.\par -\par - -\pard\nowidctlpar\sl288\slmult1\kerning1\b\f0\lang1031 Markdig v.0.22.0:\par - -\pard\widctlpar {\cf2\kerning0\ul\b0\f1{\field{\*\fldinst{HYPERLINK "https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Flunet-io%2Fmarkdig&data=04%7C01%7CJames.Conner%40autodesk.com%7Cdaecd65781944b855e7808d946251ff6%7C67bff79e7f914433a8e5c9252d2ddc1d%7C0%7C0%7C637617947520379375%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=IkaWjqj6UwIqoUB8EQOeZKYMz4qbWg8kbbCcZ0Qa%2Fhg%3D&reserved=0" }}{\fldrslt{https://github.com/lunet-io/markdig}}}}\cf2\kerning0\ul\b0\f1\fs22\par -{{\field{\*\fldinst{HYPERLINK "https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Flunet-io%2Fmarkdig%2Fblob%2Fmaster%2Flicense.txt&data=04%7C01%7CJames.Conner%40autodesk.com%7Cdaecd65781944b855e7808d946251ff6%7C67bff79e7f914433a8e5c9252d2ddc1d%7C0%7C0%7C637617947520379375%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=eIL37c9G%2B11uq1htX8ARhSCvefpQIOMXjVAqMh1aceU%3D&reserved=0" }}{\fldrslt{https://github.com/lunet-io/markdig/blob/master/license.txt}}}}\f1\fs22\par -\cf1\ulnone\lang1033 Copyright (c) 2018-2019, Alexandre Mutel\par -All rights reserved.\par -\par -Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:\par -\par -1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.\par -\par -2. 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.\par -\par -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 HOLDER 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.\par -\cf0\f2\fs18\par - -\pard\nowidctlpar\sl288\slmult1\cf1\kerning1\b\f0\fs22 ILMerge v.3.0.41:\par - -\pard\widctlpar {\cf2\kerning0\ul\b0\f1{\field{\*\fldinst{HYPERLINK "https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fdotnet%2FILMerge&data=04%7C01%7CJames.Conner%40autodesk.com%7Cdaecd65781944b855e7808d946251ff6%7C67bff79e7f914433a8e5c9252d2ddc1d%7C0%7C0%7C637617947520349504%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=d8RTLDvFmnAX0wzlDMSok0CEEbjsHzpPM9m8e4kXlaA%3D&reserved=0" }}{\fldrslt{https://github.com/dotnet/ILMerge}}}}\cf2\kerning0\ul\b0\f1\fs22\par -{{\field{\*\fldinst{HYPERLINK "https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fdotnet%2FILMerge%2Fblob%2Fmaster%2FLICENSE&data=04%7C01%7CJames.Conner%40autodesk.com%7Cdaecd65781944b855e7808d946251ff6%7C67bff79e7f914433a8e5c9252d2ddc1d%7C0%7C0%7C637617947520349504%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=73ySd49h5gcqiGS1xohabFnwoH42CB8523UdKE%2B6dsw%3D&reserved=0" }}{\fldrslt{https://github.com/dotnet/ILMerge/blob/master/LICENSE}}}}\f1\fs22\par -\cf1\ulnone MIT License\par -Copyright (c) .NET Foundation and Contributors\par -All Rights Reserved\par -\par -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:\par -\par -The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\par -\par -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. 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.\par -\cf0\f2\fs18\par - -\pard\nowidctlpar\sl288\slmult1\cf1\kerning1\b\f0\fs22 System.Buffers v.4.5.1\par - -\pard\widctlpar\kerning0\b0\f1 The MIT License (MIT)\par -Copyright (c) .NET Foundation and Contributors\par -All rights reserved.\par -\par -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:\par -\par -The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\par -\par -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. 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.\par -\cf0\f2\fs18\par - -\pard\nowidctlpar\sl288\slmult1\cf1\kerning1\b\f0\fs22 System.Memory v.4.5.4\par - -\pard\widctlpar\kerning0\b0\f1 The MIT License (MIT)\par -Copyright (c) .NET Foundation and Contributors\par -All rights reserved.\par -\par -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:\par -\par -The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\par -\par -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. 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.\par -\cf0\f2\fs18\par - -\pard\nowidctlpar\sl288\slmult1\cf1\kerning1\b\f0\fs22 System.Numerics.Vectors v.4.5.0\par - -\pard\widctlpar\kerning0\b0\f1 The MIT License (MIT)\par -Copyright (c) .NET Foundation and Contributors\par -All rights reserved.\par -\par -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:\par -\par -The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\par -\par -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. 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.\par -\cf0\f2\fs18\par - -\pard\nowidctlpar\sl288\slmult1\cf1\kerning1\b\f0\fs22 System.Runtime.CompilerServices.Unsafe v.4.5.3\par - -\pard\widctlpar\kerning0\b0\f1 The MIT License (MIT)\par -Copyright (c) .NET Foundation and Contributors\par -All rights reserved.\par -\par -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:\par -\par -The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\par -\par -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. 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.\par -\cf0\f2\fs18\par - -\pard\nowidctlpar\sl288\slmult1\cf1\kerning1\b\f0\fs22 System.Text.Encoding.CodePages v.4.5.0 \par - -\pard\widctlpar\kerning0\b0\f1 The MIT License (MIT)\par -Copyright (c) .NET Foundation and Contributors\par -All rights reserved.\par -\par -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:\par -\par -The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\par -\par -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. 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.\par -\cf0\f2\fs18\par - -\pard\nowidctlpar\sl288\slmult1\cf1\kerning1\b\f0\fs22 Rapidjson v.1.1.0:\par - -\pard\widctlpar\kerning0\b0\f1 Copyright \'a9 2015 THL A29 Limited, a Tencent company, and Milo Yip. All rights reserved.\par -\par -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.\par -\par -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. 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. \par -\cf0\f2\fs20\par - -\pard\nowidctlpar\sl288\slmult1\cf1\kerning1\b\f0\fs22 Mono.Cecil v.0.11.4:\par - -\pard\widctlpar\kerning0\b0\f1 Copyright (c) 2008 - 2015 Jb Evain\par -Copyright (c) 2008 - 2011 Novell, Inc.\par -\par -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:\par -\par -The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\par -\par -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,\par -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. 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.\par -\cf0\f2\fs20\par - -\pard\nowidctlpar\sl288\slmult1\cf1\kerning1\b\f0\fs22 LaunchDarkly.Clientsdk v.2.0.1:\par - -\pard\widctlpar\kerning0\b0\f1 Copyright 2018 Catamorphic, Co.\par -\par -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 {\cf0{\field{\*\fldinst{HYPERLINK http://www.apache.org/licenses/LICENSE-2.0 }}{\fldrslt{http://www.apache.org/licenses/LICENSE-2.0\ul0\cf0}}}}\f1\fs22 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.\par -\cf0\f2\fs20\par - -\pard\nowidctlpar\sl288\slmult1\cf1\kerning1\b\f0\fs22 CommandLineParser v.2.8.0:\par - -\pard\widctlpar\kerning0\b0\f1 The MIT License (MIT)\par -Copyright (c) 2005 - 2015 Giacomo Stelluti Scala & Contributors\par -\par -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:\par -\par -The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\par -\par -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. 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.\par -\cf0\f2\fs20\par - -\pard\nowidctlpar\sl288\slmult1\cf1\kerning1\b\f0\fs22 Nlohmann.json v.3.7.3\par - -\pard\widctlpar\kerning0\b0\f1 Copyright \'a9 2013-2022 Niels Lohmann\par -\par -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\par -furnished to do so, subject to the following conditions:\par -\par -The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\par -\par -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. 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.\par -\cf0\f2\fs20\par - -\pard\nowidctlpar\sl288\slmult1\cf1\kerning1\b\f0\fs22 Autodesk Artifakt Fonts\par - -\pard\widctlpar\kerning0\b0\f1 Licensing information: \'a9 Autodesk, Inc. All Rights Reserved.\par -\par -The Artifakt font software is Autodesk proprietary and confidential, and may be used only by authorized users and only for Autodesk business purposes. Any use not authorized by Autodesk is not permitted and is an infringement of Autodesk's intellectual property rights as well as a breach of your agreement with Autodesk. Go to {\cf0{\field{\*\fldinst{HYPERLINK https://brand.autodesk.com/brand-system/typography }}{\fldrslt{https://brand.autodesk.com/brand-system/typography\ul0\cf0}}}}\f1\fs22 for detailed usage guidelines on when and how to use the Artifakt designer collection.\par -\cf0\f2\fs20\par - -\pard\nowidctlpar\sl288\slmult1\cf1\kerning1\b\f0\fs22 DirectX\par -{\cf2\kerning0\ul\b0\f1{\field{\*\fldinst{HYPERLINK "https://github.com/DynamoDS/Dynamo/tree/master/tools/install/Extra/DirectX/License%20Agreements/DirectX%20SDK%20EULA.txt" }}{\fldrslt{https://github.com/DynamoDS/Dynamo/tree/master/tools/install/Extra/DirectX/License Agreements/DirectX SDK EULA.txt\par -}}}}{\cf2\kerning0\ul\b0\f1\fs22{\field{\*\fldinst{HYPERLINK "https://github.com/DynamoDS/Dynamo/tree/master/tools/install/Extra/DirectX/License%20Agreements/directx%20redist.txt" }}{\fldrslt{https://github.com/DynamoDS/Dynamo/tree/master/tools/install/Extra/DirectX/License Agreements/directx redist.txt\par - -\pard\widctlpar }}}}\cf0\f1\fs24\par - -\pard\nowidctlpar\sl288\slmult1\cf1\kerning1\ulnone\b\f0\fs22 ImageMagick\par -{\cf0\kerning0\b0\f1{\field{\*\fldinst{HYPERLINK https://imagemagick.org/script/license.php }}{\fldrslt{https://imagemagick.org/script/license.php\ul0\cf0}}}}\cf2\kerning0\ul\b0\f1\fs22\par - -\pard\widctlpar\cf0\ulnone\f2\fs20\lang1053\par - -\pard\nowidctlpar\sl288\slmult1\cf1\kerning1\b\f0\fs22 Magick.NET.Core\par -{\cf0\kerning0\b0\f1{\field{\*\fldinst{HYPERLINK https://github.com/dlemstra/Magick.NET/blob/main/License.txt }}{\fldrslt{https://github.com/dlemstra/Magick.NET/blob/main/License.txt\ul0\cf0}}}}\cf2\kerning0\ul\b0\f1\fs22\par - -\pard\widctlpar\cf0\ulnone\f2\fs20\par - -\pard\nowidctlpar\sl288\slmult1\cf1\kerning1\b\f0\fs22\lang1033 Microsoft 2015 C Runtime DLLs, msvcp140.dll, msvcr140.dll\par -{\cf2\kerning0\ul\b0\f1{\field{\*\fldinst{HYPERLINK "https://docs.microsoft.com/en-us/visualstudio/productinfo/2015-redistribution-vs" }}{\fldrslt{https://docs.microsoft.com/en-us/visualstudio/productinfo/2015-redistribution-vs\par -}}}}\cf0\kerning0\b0\f1\fs24\par -\cf1\kerning1\b\f0\fs22 Open XML SDK\par -{\cf0\kerning0\b0\f1{\field{\*\fldinst{HYPERLINK https://github.com/OfficeDev/Open-XML-SDK }}{\fldrslt{https://github.com/OfficeDev/Open-XML-SDK\ul0\cf0}}}}\cf2\kerning0\ul\b0\f1\fs22\par -{\cf0\ulnone{\field{\*\fldinst{HYPERLINK https://github.com/OfficeDev/Open-XML-SDK/blob/main/LICENSE }}{\fldrslt{https://github.com/OfficeDev/Open-XML-SDK/blob/main/LICENSE\ul0\cf0}}}}\f1\fs22\par - -\pard\widctlpar\cf0\ulnone\f2\fs20\lang1053\par - -\pard\nowidctlpar\sl288\slmult1\cf1\kerning1\b\f0\fs22 Prism\par -{\cf2\kerning0\ul\b0\f1{\field{\*\fldinst{HYPERLINK "http://msdn.microsoft.com/en-us/library/gg406140.aspx" }}{\fldrslt{http://msdn.microsoft.com/en-us/library/gg406140.aspx\par -}}}}{\cf2\kerning0\ul\b0\f1\fs22{\field{\*\fldinst{HYPERLINK "http://msdn.microsoft.com/en-us/library/gg405489(PandP.40).aspx" }}{\fldrslt{http://msdn.microsoft.com/en-us/library/gg405489(PandP.40).aspx\par -}}}}\cf0\kerning1\ulnone\f1\fs24\par -\cf1\b\f0\fs22 Python Standard Library\par -{\cf2\kerning0\ul\b0\f1{\field{\*\fldinst{HYPERLINK "https://docs.python.org/2.7/library/" }}{\fldrslt{https://docs.python.org/2.7/library/\par -}}}}{\cf2\kerning0\ul\b0\f1\fs22{\field{\*\fldinst{HYPERLINK "https://docs.python.org/2.7/license.html" }}{\fldrslt{https://docs.python.org/2.7/license.html\par -}}}}\cf0\ulnone\f1\fs24\par -\cf1\kerning1\b\f0\fs22\lang1033 SimplexNoise\par -{\cf2\kerning0\ul\b0\f1{\field{\*\fldinst{HYPERLINK "https://unlicense.org/" }}{\fldrslt{https://unlicense.org/\par -}}}}\cf0\b0\f1\fs24\lang1053\par -\cf1\b\f0\fs22\lang1033 Xceed Extended WPF Toolkit\par -{\cf2\kerning0\ul\b0\f1{\field{\*\fldinst{HYPERLINK "https://opensource.org/licenses/ms-pl.html" }}{\fldrslt{Microsoft Public License\par -}}}}{\cf0\kerning0\b0\f1\fs22{\field{\*\fldinst{HYPERLINK https://github.com/xceedsoftware/wpftoolkit/blob/0ed4ed84152d6a3e2a627f2ef05f82627fdaf3fc/license.md }}{\fldrslt{https://github.com/xceedsoftware/wpftoolkit/blob/0ed4ed84152d6a3e2a627f2ef05f82627fdaf3fc/license.md\ul0\cf0}}}}\f1\fs22\par - -\pard\widctlpar\cf0\ulnone\f2\fs20\par - -\pard\nowidctlpar\sl288\slmult1\cf1\kerning1\b\f0\fs22 Microsoft.Web.WebView2 v.1.0.1264.42\par - -\pard\widctlpar\kerning0\b0\f1 Copyright (C) Microsoft Corporation. All rights reserved.\par -\par -Redistribution and use in source and binary forms, with or without\par -modification, are permitted provided that the following conditions are\par -met:\par -\par - * Redistributions of source code must retain the above copyright\par -notice, this list of conditions and the following disclaimer.\par - * Redistributions in binary form must reproduce the above\par -copyright notice, this list of conditions and the following disclaimer\par -in the documentation and/or other materials provided with the\par -distribution.\par - * The name of Microsoft Corporation, or the names of its contributors \par -may not be used to endorse or promote products derived from this\par -software without specific prior written permission.\par -\par -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\par -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\par -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\par -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\par -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\par -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\par -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\par -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\par -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\par -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\par -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\par -} - \ No newline at end of file +{\rtf1\adeflang1025\ansi\ansicpg1252\uc1\adeff31507\deff0\stshfdbch31505\stshfloch31506\stshfhich31506\stshfbi31507\deflang2057\deflangfe2057\themelang2057\themelangfe0\themelangcs0{\fonttbl{\f0\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\f4\fbidi \fnil\fcharset0\fprq2{\*\panose 00000000000000000000}Helvetica;} +{\f34\fbidi \froman\fcharset0\fprq2{\*\panose 02040503050406030204}Cambria Math;}{\f40\fbidi \fswiss\fcharset0\fprq2{\*\panose 020b0604030504040204}Verdana;} +{\f45\fbidi \fswiss\fcharset0\fprq0{\*\panose 00000000000000000000}Helvetica-Bold{\*\falt Helvetica};}{\flomajor\f31500\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;} +{\fdbmajor\f31501\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\fhimajor\f31502\fbidi \fswiss\fcharset0\fprq2{\*\panose 020f0302020204030204}Calibri Light;} +{\fbimajor\f31503\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\flominor\f31504\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;} +{\fdbminor\f31505\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\fhiminor\f31506\fbidi \fswiss\fcharset0\fprq2{\*\panose 020f0502020204030204}Calibri;} +{\fbiminor\f31507\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\f1400\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}{\f1401\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;} +{\f1403\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}{\f1404\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}{\f1405\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);} +{\f1406\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);}{\f1407\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}{\f1408\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}{\f1440\fbidi \fnil\fcharset238\fprq2 Helvetica CE;} +{\f1441\fbidi \fnil\fcharset204\fprq2 Helvetica Cyr;}{\f1443\fbidi \fnil\fcharset161\fprq2 Helvetica Greek;}{\f1444\fbidi \fnil\fcharset162\fprq2 Helvetica Tur;}{\f1445\fbidi \fnil\fcharset177\fprq2 Helvetica (Hebrew);} +{\f1446\fbidi \fnil\fcharset178\fprq2 Helvetica (Arabic);}{\f1447\fbidi \fnil\fcharset186\fprq2 Helvetica Baltic;}{\f1448\fbidi \fnil\fcharset163\fprq2 Helvetica (Vietnamese);}{\f1740\fbidi \froman\fcharset238\fprq2 Cambria Math CE;} +{\f1741\fbidi \froman\fcharset204\fprq2 Cambria Math Cyr;}{\f1743\fbidi \froman\fcharset161\fprq2 Cambria Math Greek;}{\f1744\fbidi \froman\fcharset162\fprq2 Cambria Math Tur;}{\f1747\fbidi \froman\fcharset186\fprq2 Cambria Math Baltic;} +{\f1748\fbidi \froman\fcharset163\fprq2 Cambria Math (Vietnamese);}{\f1800\fbidi \fswiss\fcharset238\fprq2 Verdana CE;}{\f1801\fbidi \fswiss\fcharset204\fprq2 Verdana Cyr;}{\f1803\fbidi \fswiss\fcharset161\fprq2 Verdana Greek;} +{\f1804\fbidi \fswiss\fcharset162\fprq2 Verdana Tur;}{\f1807\fbidi \fswiss\fcharset186\fprq2 Verdana Baltic;}{\f1808\fbidi \fswiss\fcharset163\fprq2 Verdana (Vietnamese);}{\flomajor\f31508\fbidi \froman\fcharset238\fprq2 Times New Roman CE;} +{\flomajor\f31509\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;}{\flomajor\f31511\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}{\flomajor\f31512\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;} +{\flomajor\f31513\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}{\flomajor\f31514\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);}{\flomajor\f31515\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;} +{\flomajor\f31516\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}{\fdbmajor\f31518\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}{\fdbmajor\f31519\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;} +{\fdbmajor\f31521\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}{\fdbmajor\f31522\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}{\fdbmajor\f31523\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);} +{\fdbmajor\f31524\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);}{\fdbmajor\f31525\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}{\fdbmajor\f31526\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);} +{\fhimajor\f31528\fbidi \fswiss\fcharset238\fprq2 Calibri Light CE;}{\fhimajor\f31529\fbidi \fswiss\fcharset204\fprq2 Calibri Light Cyr;}{\fhimajor\f31531\fbidi \fswiss\fcharset161\fprq2 Calibri Light Greek;} +{\fhimajor\f31532\fbidi \fswiss\fcharset162\fprq2 Calibri Light Tur;}{\fhimajor\f31533\fbidi \fswiss\fcharset177\fprq2 Calibri Light (Hebrew);}{\fhimajor\f31534\fbidi \fswiss\fcharset178\fprq2 Calibri Light (Arabic);} +{\fhimajor\f31535\fbidi \fswiss\fcharset186\fprq2 Calibri Light Baltic;}{\fhimajor\f31536\fbidi \fswiss\fcharset163\fprq2 Calibri Light (Vietnamese);}{\fbimajor\f31538\fbidi \froman\fcharset238\fprq2 Times New Roman CE;} +{\fbimajor\f31539\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;}{\fbimajor\f31541\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}{\fbimajor\f31542\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;} +{\fbimajor\f31543\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}{\fbimajor\f31544\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);}{\fbimajor\f31545\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;} +{\fbimajor\f31546\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}{\flominor\f31548\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}{\flominor\f31549\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;} +{\flominor\f31551\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}{\flominor\f31552\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}{\flominor\f31553\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);} +{\flominor\f31554\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);}{\flominor\f31555\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}{\flominor\f31556\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);} +{\fdbminor\f31558\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}{\fdbminor\f31559\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;}{\fdbminor\f31561\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;} +{\fdbminor\f31562\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}{\fdbminor\f31563\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}{\fdbminor\f31564\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);} +{\fdbminor\f31565\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}{\fdbminor\f31566\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}{\fhiminor\f31568\fbidi \fswiss\fcharset238\fprq2 Calibri CE;} +{\fhiminor\f31569\fbidi \fswiss\fcharset204\fprq2 Calibri Cyr;}{\fhiminor\f31571\fbidi \fswiss\fcharset161\fprq2 Calibri Greek;}{\fhiminor\f31572\fbidi \fswiss\fcharset162\fprq2 Calibri Tur;} +{\fhiminor\f31573\fbidi \fswiss\fcharset177\fprq2 Calibri (Hebrew);}{\fhiminor\f31574\fbidi \fswiss\fcharset178\fprq2 Calibri (Arabic);}{\fhiminor\f31575\fbidi \fswiss\fcharset186\fprq2 Calibri Baltic;} +{\fhiminor\f31576\fbidi \fswiss\fcharset163\fprq2 Calibri (Vietnamese);}{\fbiminor\f31578\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}{\fbiminor\f31579\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;} +{\fbiminor\f31581\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}{\fbiminor\f31582\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}{\fbiminor\f31583\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);} +{\fbiminor\f31584\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);}{\fbiminor\f31585\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}{\fbiminor\f31586\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}} +{\colortbl;\red0\green0\blue0;\red0\green0\blue255;\red0\green255\blue255;\red0\green255\blue0;\red255\green0\blue255;\red255\green0\blue0;\red255\green255\blue0;\red255\green255\blue255;\red0\green0\blue128;\red0\green128\blue128;\red0\green128\blue0; +\red128\green0\blue128;\red128\green0\blue0;\red128\green128\blue0;\red128\green128\blue128;\red192\green192\blue192;\red0\green0\blue0;\red0\green0\blue0;\caccentone\ctint255\cshade191\red47\green84\blue150; +\caccentone\ctint255\cshade127\red31\green55\blue99;\chyperlink\ctint255\cshade255\red5\green99\blue193;\red96\green94\blue92;\red225\green223\blue221;\red165\green165\blue165;\red109\green210\blue255;}{\*\defchp +\fs22\loch\af31506\hich\af31506\dbch\af31505 }{\*\defpap \ql \li0\ri0\sa160\sl259\slmult1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 }\noqfpromote {\stylesheet{\ql \li0\ri0\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 +\rtlch\fcs1 \af31507\afs24\alang1025 \ltrch\fcs0 \fs24\lang1033\langfe2057\loch\f45\hich\af45\dbch\af31505\cgrid\langnp1033\langfenp2057 \snext0 \sqformat \spriority0 Normal;}{\s1\ql \li0\ri0\nowidctlpar\wrapdefault\faauto\outlinelevel0\rin0\lin0\itap0 +\rtlch\fcs1 \af31507\afs24\alang1025 \ltrch\fcs0 \fs24\lang1033\langfe2057\loch\f45\hich\af45\dbch\af31505\cgrid\langnp1033\langfenp2057 \sbasedon0 \snext0 \slink15 \sqformat heading 1;}{ +\s2\ql \li0\ri0\nowidctlpar\wrapdefault\faauto\outlinelevel1\rin0\lin0\itap0 \rtlch\fcs1 \af31507\afs24\alang1025 \ltrch\fcs0 \fs24\lang1033\langfe2057\loch\f45\hich\af45\dbch\af31505\cgrid\langnp1033\langfenp2057 \sbasedon0 \snext0 \slink16 \sqformat +heading 2;}{\s3\ql \li0\ri0\nowidctlpar\wrapdefault\faauto\outlinelevel2\rin0\lin0\itap0 \rtlch\fcs1 \af31507\afs24\alang1025 \ltrch\fcs0 \fs24\lang1033\langfe2057\loch\f45\hich\af45\dbch\af31505\cgrid\langnp1033\langfenp2057 +\sbasedon0 \snext0 \slink17 \sqformat heading 3;}{\s4\ql \li0\ri0\nowidctlpar\wrapdefault\faauto\outlinelevel3\rin0\lin0\itap0 \rtlch\fcs1 \af31507\afs24\alang1025 \ltrch\fcs0 +\fs24\lang1033\langfe2057\loch\f45\hich\af45\dbch\af31505\cgrid\langnp1033\langfenp2057 \sbasedon0 \snext0 \slink18 \sqformat heading 4;}{\*\cs10 \additive \ssemihidden \sunhideused \spriority1 Default Paragraph Font;}{\* +\ts11\tsrowd\trftsWidthB3\trpaddl108\trpaddr108\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3\tblind0\tblindtype3\tsvertalt\tsbrdrt\tsbrdrl\tsbrdrb\tsbrdrr\tsbrdrdgl\tsbrdrdgr\tsbrdrh\tsbrdrv \ql \li0\ri0\sa160\sl259\slmult1 +\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \rtlch\fcs1 \af31507\afs22\alang1025 \ltrch\fcs0 \fs22\lang2057\langfe2057\loch\f31506\hich\af31506\dbch\af31505\cgrid\langnp2057\langfenp2057 \snext11 \ssemihidden \sunhideused +Normal Table;}{\*\cs15 \additive \rtlch\fcs1 \af31503\afs32 \ltrch\fcs0 \fs32\cf19\lang1033\langfe0\loch\f31502\hich\af31502\dbch\af31501\langnp1033 \sbasedon10 \slink1 \slocked \spriority9 Heading 1 Char;}{\*\cs16 \additive \rtlch\fcs1 \af31503\afs26 +\ltrch\fcs0 \fs26\cf19\lang1033\langfe0\loch\f31502\hich\af31502\dbch\af31501\langnp1033 \sbasedon10 \slink2 \slocked \ssemihidden \spriority9 Heading 2 Char;}{\*\cs17 \additive \rtlch\fcs1 \af31503\afs24 \ltrch\fcs0 +\fs24\cf20\lang1033\langfe0\loch\f31502\hich\af31502\dbch\af31501\langnp1033 \sbasedon10 \slink3 \slocked \ssemihidden \spriority9 Heading 3 Char;}{\*\cs18 \additive \rtlch\fcs1 \ai\af31503\afs24 \ltrch\fcs0 +\i\fs24\cf19\lang1033\langfe0\loch\f31502\hich\af31502\dbch\af31501\langnp1033 \sbasedon10 \slink4 \slocked \ssemihidden \spriority9 Heading 4 Char;}{\*\cs19 \additive \rtlch\fcs1 \af0 \ltrch\fcs0 \ul\cf21 \sbasedon10 \sunhideused \styrsid5709539 +Hyperlink;}{\*\cs20 \additive \rtlch\fcs1 \af0 \ltrch\fcs0 \cf22\chshdng0\chcfpat0\chcbpat23 \sbasedon10 \ssemihidden \sunhideused \styrsid5709539 Unresolved Mention;}}{\*\pgptbl {\pgp\ipgp0\itap0\li0\ri0\sb0\sa0}}{\*\rsidtbl \rsid5444290\rsid5709539} +{\mmathPr\mmathFont34\mbrkBin0\mbrkBinSub0\msmallFrac0\mdispDef1\mlMargin0\mrMargin0\mdefJc1\mwrapIndent1440\mintLim0\mnaryLim0}{\info{\operator Deyan Nenov}{\creatim\yr2023\mo1\dy10\hr21\min3}{\revtim\yr2023\mo1\dy10\hr21\min11}{\version2}{\edmins8} +{\nofpages24}{\nofwords11630}{\nofchars66296}{\nofcharsws77771}{\vern61}}{\*\xmlnstbl {\xmlns1 http://schemas.microsoft.com/office/word/2003/wordml}}\paperw12240\paperh15840\margl1440\margr1440\margt1440\margb1440\gutter0\ltrsect +\widowctrl\ftnbj\aenddoc\trackmoves0\trackformatting1\donotembedsysfont0\relyonvml0\donotembedlingdata1\grfdocevents0\validatexml0\showplaceholdtext0\ignoremixedcontent0\saveinvalidxml0\showxmlerrors0\horzdoc\dghspace120\dgvspace120\dghorigin1701 +\dgvorigin1984\dghshow0\dgvshow3\jcompress\viewkind1\viewscale130\rsidroot5709539 \nouicompat \fet0{\*\wgrffmtfilter 2450}\nofeaturethrottle1\ilfomacatclnup0\ltrpar \sectd \ltrsect\linex0\sectdefaultcl\sftnbj {\*\pnseclvl1 +\pnucrm\pnstart1\pnindent720\pnhang {\pntxta .}}{\*\pnseclvl2\pnucltr\pnstart1\pnindent720\pnhang {\pntxta .}}{\*\pnseclvl3\pndec\pnstart1\pnindent720\pnhang {\pntxta .}}{\*\pnseclvl4\pnlcltr\pnstart1\pnindent720\pnhang {\pntxta )}}{\*\pnseclvl5 +\pndec\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}{\*\pnseclvl6\pnlcltr\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}{\*\pnseclvl7\pnlcrm\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}{\*\pnseclvl8\pnlcltr\pnstart1\pnindent720\pnhang +{\pntxtb (}{\pntxta )}}{\*\pnseclvl9\pnlcrm\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}\pard\plain \ltrpar\ql \li0\ri0\sb240\sl276\slmult1\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 \rtlch\fcs1 \af31507\afs24\alang1025 \ltrch\fcs0 +\fs24\lang1033\langfe2057\loch\af45\hich\af45\dbch\af31505\cgrid\langnp1033\langfenp2057 {\rtlch\fcs1 \ab\af45\afs22 \ltrch\fcs0 \b\fs22\cf24\lang2057\langfe2057\langnp2057\insrsid5444290 \hich\af45\dbch\af31505\loch\f45 \hich\f45 @DYNAMO v.2.18.0 \'a9 +\loch\f45 2022 Autodesk, Inc. All rights reserved. +\par \hich\af45\dbch\af31505\loch\f45 Dynamo License +\par }\pard \ltrpar\ql \li0\ri0\widctlpar\wrapdefault\faauto\rin0\lin0\itap0 {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \f4\fs22\cf24\lang2057\langfe2057\langnp2057\insrsid5444290 +\par \hich\af4\dbch\af31505\loch\f4 Those portions created by Ian are provided with the following copyright: +\par +\par \hich\af4\dbch\af31505\loch\f4 Copyright 2017 Ian Keough +\par +\par \hich\af4\dbch\af31505\loch\f4 Those portions created by Autodesk employees are provided with the following copyright: +\par +\par \hich\af4\dbch\af31505\loch\f4 Copyright 2022 Autodesk, Inc. +\par +\par \hich\af4\dbch\af31505\loch\f4 Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may\hich\af4\dbch\af31505\loch\f4 obtain a copy of the License at }{\field{\*\fldinst { +\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \f4\fs22\ul\cf25\lang2057\langfe2057\langnp2057\insrsid5444290 \hich\af4\dbch\af31505\loch\f4 +HYPERLINK "https://nam11.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwww.apache.org%2Flicenses%2FLICENSE-2.0&data=04%7C01%7CJames.Conner%40autodesk.com%7Cdaecd65781944b855e7808d946251ff6%7C67bff79e7f914433a8e5c9252d2\hich\af4\dbch\af31505\loch\f4 +ddc1d%7C0%7C0%7C637617947520120511%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=hM4SECRXlI3Y3bhWd0n7aVFES8pYfE3tfdiIfbSsdIo%3D&reserved=0" }{\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 +\f4\fs22\ul\cf25\lang2057\langfe2057\langnp2057\insrsid5709539 {\*\datafield +00d0c9ea79f9bace118c8200aa004ba90b0200000003000000e0c9ea79f9bace118c8200aa004ba90b4a030000680074007400700073003a002f002f006e0061006d00310031002e0073006100660065006c0069006e006b0073002e00700072006f00740065006300740069006f006e002e006f00750074006c006f006f00 +6b002e0063006f006d002f003f00750072006c003d0068007400740070002500330041002500320046002500320046007700770077002e006100700061006300680065002e006f00720067002500320046006c006900630065006e007300650073002500320046004c004900430045004e00530045002d0032002e00300026 +0064006100740061003d0030003400250037004300300031002500370043004a0061006d00650073002e0043006f006e006e00650072002500340030006100750074006f006400650073006b002e0063006f006d00250037004300640061006500630064003600350037003800310039003400340062003800350035006500 +37003800300038006400390034003600320035003100660066003600250037004300360037006200660066003700390065003700660039003100340034003300330061003800650035006300390032003500320064003200640064006300310064002500370043003000250037004300300025003700430036003300370036 +003100370039003400370035003200300031003200300035003100310025003700430055006e006b006e006f0077006e002500370043005400570046007000620047005a0073006200330064003800650079004a00570049006a006f0069004d004300340077004c006a00410077004d004400410069004c0043004a005100 +49006a006f006900560032006c0075004d007a00490069004c0043004a004200540069004900360049006b003100680061005700770069004c0043004a00580056004300490036004d006e00300025003300440025003700430031003000300030002600730064006100740061003d0068004d003400530045004300520058 +006c004900330059003300620068005700640030006e00370061005600460045005300380070005900660045003300740066006400690049006600620053007300640049006f002500330044002600720065007300650072007600650064003d0030000000795881f43b1d7f48af2c825dc485276300000000a5ab0003}} +}{\fldrslt {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \f4\fs22\ul\cf25\lang2057\langfe2057\langnp2057\insrsid5444290 \hich\af4\dbch\af31505\loch\f4 http://www.apache.org/licenses/LICENSE-2.0}}}\sectd \ltrsect\linex0\sectdefaultcl\sftnbj {\rtlch\fcs1 \af4\afs22 +\ltrch\fcs0 \f4\fs22\ul\cf25\lang2057\langfe2057\langnp2057\insrsid5444290 \hich\af4\dbch\af31505\loch\f4 }{\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \f4\fs22\cf24\lang2057\langfe2057\langnp2057\insrsid5444290 \hich\af4\dbch\af31505\loch\f4 Unless requi +\hich\af4\dbch\af31505\loch\f4 +red 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 permissi +\hich\af4\dbch\af31505\loch\f4 o\hich\af4\dbch\af31505\loch\f4 ns and limitations under the License.}{\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \f4\fs22\ul\cf25\lang2057\langfe2057\langnp2057\insrsid5444290 +\par }{\rtlch\fcs1 \ab\af40\afs20 \ltrch\fcs0 \b\f40\fs20\lang2057\langfe2057\langnp2057\insrsid5444290 +\par }\pard \ltrpar\ql \li0\ri0\sb240\sl276\slmult1\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 {\rtlch\fcs1 \ab\af45\afs22 \ltrch\fcs0 \b\fs22\cf24\lang2057\langfe2057\langnp2057\insrsid5444290 \hich\af45\dbch\af31505\loch\f45 Privacy +\par }\pard \ltrpar\ql \li0\ri0\widctlpar\wrapdefault\faauto\rin0\lin0\itap0 {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \f4\fs22\cf24\lang2057\langfe2057\langnp2057\insrsid5444290 \hich\af4\dbch\af31505\loch\f4 To learn more about Autodesk\hich\f4 \rquote \loch\f4 +s online and offline privacy practices, please see the }{\field{\*\fldinst {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \f4\fs22\ul\cf25\lang2057\langfe2057\langnp2057\insrsid5444290 \hich\af4\dbch\af31505\loch\f4 +HYPERLINK "http://www.autodesk.com/company/legal-notices-trademarks/privacy-statement"}{\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \f4\fs22\ul\cf25\lang2057\langfe2057\langnp2057\insrsid5709539 {\*\datafield +00d0c9ea79f9bace118c8200aa004ba90b0200000003000000e0c9ea79f9bace118c8200aa004ba90bae00000068007400740070003a002f002f007700770077002e006100750074006f006400650073006b002e0063006f006d002f0063006f006d00700061006e0079002f006c006500670061006c002d006e006f007400 +69006300650073002d00740072006100640065006d00610072006b0073002f0070007200690076006100630079002d00730074006100740065006d0065006e0074000000795881f43b1d7f48af2c825dc485276300000000a5ab0003}}}{\fldrslt {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 +\f4\fs22\ul\cf25\lang2057\langfe2057\langnp2057\insrsid5444290 \hich\af4\dbch\af31505\loch\f4 Autodesk Privacy Statement}}}\sectd \ltrsect\linex0\sectdefaultcl\sftnbj {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 +\f4\fs22\ul\cf25\lang2057\langfe2057\langnp2057\insrsid5444290 .}{\rtlch\fcs1 \af40\afs16 \ltrch\fcs0 \f40\fs16\lang2057\langfe2057\langnp2057\insrsid5444290 +\par +\par }\pard \ltrpar\ql \li0\ri0\sb240\sl276\slmult1\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 {\rtlch\fcs1 \ab\af45\afs22 \ltrch\fcs0 \b\fs22\cf24\lang2057\langfe2057\langnp2057\insrsid5444290 \hich\af45\dbch\af31505\loch\f45 Autodes +\hich\af45\dbch\af31505\loch\f45 k Trademarks +\par }\pard \ltrpar\ql \li0\ri0\widctlpar\wrapdefault\faauto\rin0\lin0\itap0 {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \f4\fs22\cf24\lang2057\langfe2057\langnp2057\insrsid5444290 \hich\af4\dbch\af31505\loch\f4 The trademarks on the }{\field{\*\fldinst {\rtlch\fcs1 +\af4\afs22 \ltrch\fcs0 \f4\fs22\ul\cf25\lang2057\langfe2057\langnp2057\insrsid5444290 \hich\af4\dbch\af31505\loch\f4 HYPERLINK "https://www.autodesk.com/company/legal-notices-trademarks/intellectual-property/trademarks"}{\rtlch\fcs1 \af4\afs22 +\ltrch\fcs0 \f4\fs22\ul\cf25\lang2057\langfe2057\langnp2057\insrsid5709539 {\*\datafield +00d0c9ea79f9bace118c8200aa004ba90b0200000003000000e0c9ea79f9bace118c8200aa004ba90bce000000680074007400700073003a002f002f007700770077002e006100750074006f006400650073006b002e0063006f006d002f0063006f006d00700061006e0079002f006c006500670061006c002d006e006f00 +740069006300650073002d00740072006100640065006d00610072006b0073002f0069006e00740065006c006c00650063007400750061006c002d00700072006f00700065007200740079002f00740072006100640065006d00610072006b0073000000795881f43b1d7f48af2c825dc485276300000000a5ab0003}} +}{\fldrslt {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \f4\fs22\ul\cf25\lang2057\langfe2057\langnp2057\insrsid5444290 \hich\af4\dbch\af31505\loch\f4 Autodesk Trademarks page}}}\sectd \ltrsect\linex0\sectdefaultcl\sftnbj {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 +\f4\fs22\cf24\lang2057\langfe2057\langnp2057\insrsid5444290 \hich\af4\dbch\af31505\loch\f4 are registered trademarks or trademarks of Autodesk, Inc., and/or its subsidiaries and/or a\hich\af4\dbch\af31505\loch\f4 +ffiliates in the USA and/or other countries. +\par +\par \hich\af4\dbch\af31505\loch\f4 All other brand names, product names or trademarks belong to their respective holders. +\par }\pard \ltrpar\ql \li0\ri0\sb240\sl276\slmult1\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 {\rtlch\fcs1 \ab\af45\afs22 \ltrch\fcs0 \b\fs22\cf24\lang2057\langfe2057\langnp2057\insrsid5444290 \hich\af45\dbch\af31505\loch\f45 +Autodesk Cloud and Desktop Components}{\rtlch\fcs1 \ab\af40\afs22 \ltrch\fcs0 \b\f40\fs22\lang2057\langfe2057\langnp2057\insrsid5444290 +\par }\pard \ltrpar\ql \li0\ri0\widctlpar\wrapdefault\faauto\rin0\lin0\itap0 {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \f4\fs22\cf24\lang2057\langfe2057\langnp2057\insrsid5444290 \hich\af4\dbch\af31505\loch\f4 +This Product or Service may incorporate or use background Autodesk online and deskt\hich\af4\dbch\af31505\loch\f4 op technology components.\~ For information about these components, see}{\rtlch\fcs1 \af40\afs22 \ltrch\fcs0 +\f40\fs22\lang2057\langfe2057\langnp2057\insrsid5444290 \hich\af40\dbch\af31505\loch\f40 }{\field{\*\fldinst {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \f4\fs22\ul\cf25\lang2057\langfe2057\langnp2057\insrsid5444290 \hich\af4\dbch\af31505\loch\f4 +HYPERLINK "https://www.autodesk.com/company/legal-notices-trademarks/autodesk-cloud-platform-components"}{\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \f4\fs22\ul\cf25\lang2057\langfe2057\langnp2057\insrsid5709539 {\*\datafield +00d0c9ea79f9bace118c8200aa004ba90b0200000003000000e0c9ea79f9bace118c8200aa004ba90bd2000000680074007400700073003a002f002f007700770077002e006100750074006f006400650073006b002e0063006f006d002f0063006f006d00700061006e0079002f006c006500670061006c002d006e006f00 +740069006300650073002d00740072006100640065006d00610072006b0073002f006100750074006f006400650073006b002d0063006c006f00750064002d0070006c006100740066006f0072006d002d0063006f006d0070006f006e0065006e00740073000000795881f43b1d7f48af2c825dc485276300000000a5ab00 +03}}}{\fldrslt {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \f4\fs22\ul\cf25\lang2057\langfe2057\langnp2057\insrsid5444290 \hich\af4\dbch\af31505\loch\f4 Autodesk Cloud Platform Components}}}\sectd \ltrsect\linex0\sectdefaultcl\sftnbj {\rtlch\fcs1 \af0\afs22 +\ltrch\fcs0 \f0\fs22\cf24\lang2057\langfe2057\langnp2057\insrsid5444290 \hich\af0\dbch\af31505\loch\f0 }{\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \f4\fs22\cf24\lang2057\langfe2057\langnp2057\insrsid5444290 \hich\af4\dbch\af31505\loch\f4 and } +{\field{\*\fldinst {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \f4\fs22\ul\cf25\lang2057\langfe2057\langnp2057\insrsid5444290 \hich\af4\dbch\af31505\loch\f4 HYPERLINK "https://www.autodesk.com/com\hich\af4\dbch\af31505\loch\f4 +pany/legal-notices-trademarks/autodesk-desktop-platform-components"}{\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \f4\fs22\ul\cf25\lang2057\langfe2057\langnp2057\insrsid5709539 {\*\datafield +00d0c9ea79f9bace118c8200aa004ba90b0200000003000000e0c9ea79f9bace118c8200aa004ba90bd6000000680074007400700073003a002f002f007700770077002e006100750074006f006400650073006b002e0063006f006d002f0063006f006d00700061006e0079002f006c006500670061006c002d006e006f00 +740069006300650073002d00740072006100640065006d00610072006b0073002f006100750074006f006400650073006b002d006400650073006b0074006f0070002d0070006c006100740066006f0072006d002d0063006f006d0070006f006e0065006e00740073000000795881f43b1d7f48af2c825dc4852763000000 +00a5ab0003}}}{\fldrslt {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \f4\fs22\ul\cf25\lang2057\langfe2057\langnp2057\insrsid5444290 \hich\af4\dbch\af31505\loch\f4 Autodesk Desktop Platform Components}}}\sectd \ltrsect\linex0\sectdefaultcl\sftnbj {\rtlch\fcs1 +\af4\afs22 \ltrch\fcs0 \f4\fs22\ul\cf25\lang2057\langfe2057\langnp2057\insrsid5444290 . +\par }{\rtlch\fcs1 \af40\afs18 \ltrch\fcs0 \f40\fs18\lang2057\langfe2057\langnp2057\insrsid5444290 +\par }\pard \ltrpar\ql \li0\ri0\sb168\widctlpar\wrapdefault\faauto\rin0\lin0\itap0 {\rtlch\fcs1 \ab\af45\afs22 \ltrch\fcs0 \b\fs22\cf24\lang2057\langfe2057\langnp2057\insrsid5444290 \hich\af45\dbch\af31505\loch\f45 +LIBG, ProtoGeometry v.2.7.0, Analytics.NET, ADP, GRegRevitAuth, AGET, IDSDK, and IDSDK Wrapper}{\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \f4\fs22\cf24\lang2057\langfe2057\langnp2057\insrsid5444290 \hich\af4\dbch\af31505\loch\f4 + are closed source files licensed by Autodesk under the license that can be found here }{\field{\*\fldinst {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \f4\fs22\lang2057\langfe2057\langnp2057\insrsid5444290 \hich\af4\dbch\af31505\loch\f4 +HYPERLINK https://github.com/DynamoDS/Dynamo/tree/master/doc/distrib/Autodesk.rtf }{\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \f4\fs22\lang2057\langfe2057\langnp2057\insrsid5709539 {\*\datafield +00d0c9ea79f9bace118c8200aa004ba90b0200000003000000e0c9ea79f9bace118c8200aa004ba90ba8000000680074007400700073003a002f002f006700690074006800750062002e0063006f006d002f00440079006e0061006d006f00440053002f00440079006e0061006d006f002f0074007200650065002f006d00 +610073007400650072002f0064006f0063002f0064006900730074007200690062002f004100750074006f006400650073006b002e007200740066000000795881f43b1d7f48af2c825dc485276300000000a5ab0003}}}{\fldrslt {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 +\f4\fs22\lang2057\langfe2057\langnp2057\insrsid5444290 \hich\af4\dbch\af31505\loch\f4 https://github.com/DynamoDS/Dynamo/tree/master/doc/distrib/Autodesk.rtf}}}\sectd \ltrsect\linex0\sectdefaultcl\sftnbj {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 +\f4\fs22\cf24\lang2057\langfe2057\langnp2057\insrsid5444290 +\par }\pard \ltrpar\ql \li0\ri0\widctlpar\wrapdefault\faauto\rin0\lin0\itap0 {\rtlch\fcs1 \af40\afs18 \ltrch\fcs0 \f40\fs18\lang2057\langfe2057\langnp2057\insrsid5444290 +\par }{\rtlch\fcs1 \af40\afs20 \ltrch\fcs0 \f40\fs20\lang2057\langfe2057\langnp2057\insrsid5444290 +\par }{\rtlch\fcs1 \ab\af45\afs22 \ltrch\fcs0 \b\fs22\cf24\lang2057\langfe2057\langnp2057\insrsid5444290 \hich\af45\dbch\af31505\loch\f45 Third-Part\hich\af45\dbch\af31505\loch\f45 y Trademarks, Software Credits and Attributions +\par }{\rtlch\fcs1 \af40\afs18 \ltrch\fcs0 \f40\fs18\lang2057\langfe2057\langnp2057\insrsid5444290 +\par }{\rtlch\fcs1 \ab\af45\afs22 \ltrch\fcs0 \b\fs22\cf24\lang2057\langfe2057\langnp2057\insrsid5444290 \hich\af45\dbch\af31505\loch\f45 Greg v.}{\rtlch\fcs1 \af0 \ltrch\fcs0 \f0\lang2057\langfe2057\langnp2057\insrsid5444290 \hich\af0\dbch\af31505\loch\f0 }{ +\rtlch\fcs1 \ab\af45\afs22 \ltrch\fcs0 \b\fs22\cf24\lang2057\langfe2057\langnp2057\insrsid5444290 \hich\af45\dbch\af31505\loch\f45 2.3.0.1646: +\par }{\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \f4\fs22\cf24\lang2057\langfe2057\langnp2057\insrsid5444290 \hich\af4\dbch\af31505\loch\f4 (The MIT License) +\par \hich\af4\dbch\af31505\loch\f4 Copyright (c) 2013 Peter Boyer }{\field{\*\fldinst {\rtlch\fcs1 \af0 \ltrch\fcs0 \f0\ul\cf25\lang2057\langfe2057\langnp2057\insrsid5444290 \hich\af0\dbch\af31505\loch\f0 HYPERLINK "mailto:peter.boyer@autodesk.com" }{ +\rtlch\fcs1 \af0 \ltrch\fcs0 \f0\ul\cf25\lang2057\langfe2057\langnp2057\insrsid5709539 {\*\datafield +00d0c9ea79f9bace118c8200aa004ba90b0200000003000000e0c9ea79f9bace118c8200aa004ba90b580000006d00610069006c0074006f003a00700065007400650072002e0062006f0079006500720040006100750074006f006400650073006b002e0063006f006d000000795881f43b1d7f48af2c825dc48527630000 +0000a5ab0003}}}{\fldrslt {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \f4\fs22\ul\cf25\lang2057\langfe2057\langnp2057\insrsid5444290 \hich\af4\dbch\af31505\loch\f4 peter.boyer@autodesk.com}}}\sectd \ltrsect\linex0\sectdefaultcl\sftnbj {\rtlch\fcs1 \af4\afs22 +\ltrch\fcs0 \f4\fs22\cf24\lang2057\langfe2057\langnp2057\insrsid5444290 \hich\af4\dbch\af31505\loch\f4 + 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, +\hich\af4\dbch\af31505\loch\f4 m\hich\af4\dbch\af31505\loch\f4 erge, 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: +\par +\par \hich\af4\dbch\af31505\loch\f4 The above copyright notice and this permission notice shall be included in al\hich\af4\dbch\af31505\loch\f4 l copies or substantial portions of the Software. +\par +\par \hich\af4\dbch\af31505\loch\f4 THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN +\hich\af4\dbch\af31505\loch\f4 +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. + +\par }{\rtlch\fcs1 \af40\afs18 \ltrch\fcs0 \f40\fs18\lang2057\langfe2057\langnp2057\insrsid5444290 +\par }{\rtlch\fcs1 \ab\af45\afs22 \ltrch\fcs0 \b\fs22\cf24\lang2057\langfe2057\langnp2057\insrsid5444290 \hich\af45\dbch\af31505\loch\f45 Microsoft.CSharp v.4.0.0.0: +\par }{\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \f4\fs22\cf24\lang2057\langfe2057\langnp2057\insrsid5444290 \hich\af4\dbch\af31505\loch\f4 The MIT License (MIT) +\par \hich\af4\dbch\af31505\loch\f4 Copyright (c) .NET Foundation and Contributors +\par \hich\af4\dbch\af31505\loch\f4 All rights reserved. +\par +\par \hich\af4\dbch\af31505\loch\f4 Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "S\hich\af4\dbch\af31505\loch\f4 +oftware"), 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 +\hich\af4\dbch\af31505\loch\f4 \hich\af4\dbch\af31505\loch\f4 so, subject to the following conditions: +\par }{\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \f4\fs22\ul\cf24\lang2057\langfe2057\langnp2057\insrsid5444290 +\par }{\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \f4\fs22\cf24\lang2057\langfe2057\langnp2057\insrsid5444290 \hich\af4\dbch\af31505\loch\f4 The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +\par +\par \hich\af4\dbch\af31505\loch\f4 THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, IN\hich\af4\dbch\af31505\loch\f4 +CLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, T +\hich\af4\dbch\af31505\loch\f4 O\hich\af4\dbch\af31505\loch\f4 RT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +\par }{\rtlch\fcs1 \af40\afs18 \ltrch\fcs0 \f40\fs18\lang2057\langfe2057\langnp2057\insrsid5444290 +\par }{\rtlch\fcs1 \ab\af45\afs22 \ltrch\fcs0 \b\fs22\cf24\lang2057\langfe2057\langnp2057\insrsid5444290 \hich\af45\dbch\af31505\loch\f45 Newtonsoft.Json v.13.0.1: +\par }{\field{\*\fldinst {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \f4\fs22\ul\cf25\lang2057\langfe2057\langnp2057\insrsid5444290 \hich\af4\dbch\af31505\loch\f4 +HYPERLINK "https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2FJamesNK%2FNewtonsoft.Json&data=04%7C01%7CJames.Conner%40autodesk.com%7Cdaecd65781944b855e7808d946251ff6%7C67bff79e7f914433a8e5c9252d2ddc1d%7C0%7C0%7C6376179475204192 +0\hich\af4\dbch\af31505\loch\f4 0%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=hvR4mYgVhMPpQh4uLCJ3PY9Ywr8mM0vqXF98ac8mPXA%3D&reserved=0" }{\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 +\f4\fs22\ul\cf25\lang2057\langfe2057\langnp2057\insrsid5709539 {\*\datafield +00d0c9ea79f9bace118c8200aa004ba90b0200000003000000e0c9ea79f9bace118c8200aa004ba90b4a030000680074007400700073003a002f002f006e0061006d00310031002e0073006100660065006c0069006e006b0073002e00700072006f00740065006300740069006f006e002e006f00750074006c006f006f00 +6b002e0063006f006d002f003f00750072006c003d00680074007400700073002500330041002500320046002500320046006700690074006800750062002e0063006f006d002500320046004a0061006d00650073004e004b002500320046004e006500770074006f006e0073006f00660074002e004a0073006f006e0026 +0064006100740061003d0030003400250037004300300031002500370043004a0061006d00650073002e0043006f006e006e00650072002500340030006100750074006f006400650073006b002e0063006f006d00250037004300640061006500630064003600350037003800310039003400340062003800350035006500 +37003800300038006400390034003600320035003100660066003600250037004300360037006200660066003700390065003700660039003100340034003300330061003800650035006300390032003500320064003200640064006300310064002500370043003000250037004300300025003700430036003300370036 +003100370039003400370035003200300034003100390032003000300025003700430055006e006b006e006f0077006e002500370043005400570046007000620047005a0073006200330064003800650079004a00570049006a006f0069004d004300340077004c006a00410077004d004400410069004c0043004a005100 +49006a006f006900560032006c0075004d007a00490069004c0043004a004200540069004900360049006b003100680061005700770069004c0043004a00580056004300490036004d006e00300025003300440025003700430031003000300030002600730064006100740061003d0068007600520034006d005900670056 +0068004d005000700051006800340075004c0043004a00330050005900390059007700720038006d004d0030007600710058004600390038006100630038006d005000580041002500330044002600720065007300650072007600650064003d0030000000795881f43b1d7f48af2c825dc485276300000000a5ab0003}} +}{\fldrslt {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \f4\fs22\ul\cf25\lang2057\langfe2057\langnp2057\insrsid5444290 \hich\af4\dbch\af31505\loch\f4 https://github.com/JamesNK/Newtonsoft.Json}}}\sectd \ltrsect\linex0\sectdefaultcl\sftnbj {\rtlch\fcs1 \af4\afs22 +\ltrch\fcs0 \f4\fs22\ul\cf25\lang2057\langfe2057\langnp2057\insrsid5444290 +\par }{\field{\*\fldinst {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \f4\fs22\ul\cf25\lang2057\langfe2057\langnp2057\insrsid5444290 \hich\af4\dbch\af31505\loch\f4 HYPERLINK "https://nam11.safelinks.protection\hich\af4\dbch\af31505\loch\f4 +.outlook.com/?url=https%3A%2F%2Fgithub.com%2FJamesNK%2FNewtonsoft.Json%2Fblob%2Fmaster%2FLICENSE.md&data=04%7C01%7CJames.Conner%40autodesk.com%7Cdaecd65781944b855e7808d946251ff6%7C67bff79e7f914433a8e5c9252d2ddc1d%7C0%7C0%7C637617947520429148%7CUnknown%7CT +\hich\af4\dbch\af31505\loch\f4 W\hich\af4\dbch\af31505\loch\f4 FpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=OuX0yvu%2F0kVS7X5KARjQ3p9Ycg8qvk67fFAaKNEWxbM%3D&reserved=0" }{\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 +\f4\fs22\ul\cf25\lang2057\langfe2057\langnp2057\insrsid5709539 {\*\datafield +00d0c9ea79f9bace118c8200aa004ba90b0200000003000000e0c9ea79f9bace118c8200aa004ba90b88030000680074007400700073003a002f002f006e0061006d00310031002e0073006100660065006c0069006e006b0073002e00700072006f00740065006300740069006f006e002e006f00750074006c006f006f00 +6b002e0063006f006d002f003f00750072006c003d00680074007400700073002500330041002500320046002500320046006700690074006800750062002e0063006f006d002500320046004a0061006d00650073004e004b002500320046004e006500770074006f006e0073006f00660074002e004a0073006f006e0025 +003200460062006c006f0062002500320046006d00610073007400650072002500320046004c004900430045004e00530045002e006d006400260064006100740061003d0030003400250037004300300031002500370043004a0061006d00650073002e0043006f006e006e00650072002500340030006100750074006f00 +6400650073006b002e0063006f006d00250037004300640061006500630064003600350037003800310039003400340062003800350035006500370038003000380064003900340036003200350031006600660036002500370043003600370062006600660037003900650037006600390031003400340033003300610038 +00650035006300390032003500320064003200640064006300310064002500370043003000250037004300300025003700430036003300370036003100370039003400370035003200300034003200390031003400380025003700430055006e006b006e006f0077006e002500370043005400570046007000620047005a00 +73006200330064003800650079004a00570049006a006f0069004d004300340077004c006a00410077004d004400410069004c0043004a00510049006a006f006900560032006c0075004d007a00490069004c0043004a004200540069004900360049006b003100680061005700770069004c0043004a0058005600430049 +0036004d006e00300025003300440025003700430031003000300030002600730064006100740061003d004f0075005800300079007600750025003200460030006b00560053003700580035004b00410052006a0051003300700039005900630067003800710076006b003600370066004600410061004b004e0045005700 +780062004d002500330044002600720065007300650072007600650064003d0030000000795881f43b1d7f48af2c825dc485276300000000a5ab0003}}}{\fldrslt {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \f4\fs22\ul\cf25\lang2057\langfe2057\langnp2057\insrsid5444290 +\hich\af4\dbch\af31505\loch\f4 https://github.com/JamesNK/Newtonsoft.Json/blob/master/LICENSE.md}}}\sectd \ltrsect\linex0\sectdefaultcl\sftnbj {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \f4\fs22\ul\cf25\lang2057\langfe2057\langnp2057\insrsid5444290 +\par }{\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \f4\fs22\cf24\lang2057\langfe2057\langnp2057\insrsid5444290 \hich\af4\dbch\af31505\loch\f4 The MIT License (MIT) +\par \hich\af4\dbch\af31505\loch\f4 Copyright (c) \hich\af4\dbch\af31505\loch\f4 2007 James Newton-King +\par +\par \hich\af4\dbch\af31505\loch\f4 +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 +\hich\af4\dbch\af31505\loch\f4 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: +\par +\par \hich\af4\dbch\af31505\loch\f4 The above copyright notice and this permission notice \hich\af4\dbch\af31505\loch\f4 shall be included in all copies or substantial portions of the Software. +\par +\par \hich\af4\dbch\af31505\loch\f4 THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE A\hich\af4\dbch\af31505\loch\f4 +ND NONINFRINGEMENT. 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 DE +\hich\af4\dbch\af31505\loch\f4 A\hich\af4\dbch\af31505\loch\f4 LINGS IN THE SOFTWARE. +\par +\par }{\rtlch\fcs1 \ab\af45\afs22 \ltrch\fcs0 \b\fs22\cf24\lang2057\langfe2057\langnp2057\insrsid5444290 \hich\af45\dbch\af31505\loch\f45 RestSharp v.106.12.0.0: +\par }{\field{\*\fldinst {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \f4\fs22\ul\cf25\lang2057\langfe2057\langnp2057\insrsid5444290 \hich\af4\dbch\af31505\loch\f4 HYPERLINK "https://nam11.safelinks.protection.ou\hich\af4\dbch\af31505\loch\f4 +tlook.com/?url=http%3A%2F%2Fwww.apache.org%2Flicenses%2FLICENSE-2.0&data=04%7C01%7CJames.Conner%40autodesk.com%7Cdaecd65781944b855e7808d946251ff6%7C67bff79e7f914433a8e5c9252d2ddc1d%7C0%7C0%7C637617947520478947%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiL +\hich\af4\dbch\af31505\loch\f4 C\hich\af4\dbch\af31505\loch\f4 JQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=foUoDUPyy8Or0rkNJtlLjI9XfJO7gemOLFnuKIkflHU%3D&reserved=0" }{\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 +\f4\fs22\ul\cf25\lang2057\langfe2057\langnp2057\insrsid5709539 {\*\datafield +00d0c9ea79f9bace118c8200aa004ba90b0200000003000000e0c9ea79f9bace118c8200aa004ba90b4a030000680074007400700073003a002f002f006e0061006d00310031002e0073006100660065006c0069006e006b0073002e00700072006f00740065006300740069006f006e002e006f00750074006c006f006f00 +6b002e0063006f006d002f003f00750072006c003d0068007400740070002500330041002500320046002500320046007700770077002e006100700061006300680065002e006f00720067002500320046006c006900630065006e007300650073002500320046004c004900430045004e00530045002d0032002e00300026 +0064006100740061003d0030003400250037004300300031002500370043004a0061006d00650073002e0043006f006e006e00650072002500340030006100750074006f006400650073006b002e0063006f006d00250037004300640061006500630064003600350037003800310039003400340062003800350035006500 +37003800300038006400390034003600320035003100660066003600250037004300360037006200660066003700390065003700660039003100340034003300330061003800650035006300390032003500320064003200640064006300310064002500370043003000250037004300300025003700430036003300370036 +003100370039003400370035003200300034003700380039003400370025003700430055006e006b006e006f0077006e002500370043005400570046007000620047005a0073006200330064003800650079004a00570049006a006f0069004d004300340077004c006a00410077004d004400410069004c0043004a005100 +49006a006f006900560032006c0075004d007a00490069004c0043004a004200540069004900360049006b003100680061005700770069004c0043004a00580056004300490036004d006e00300025003300440025003700430031003000300030002600730064006100740061003d0066006f0055006f0044005500500079 +00790038004f007200300072006b004e004a0074006c004c006a0049003900580066004a004f003700670065006d004f004c0046006e0075004b0049006b0066006c00480055002500330044002600720065007300650072007600650064003d0030000000795881f43b1d7f48af2c825dc485276300000000a5ab0003}} +}{\fldrslt {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \f4\fs22\ul\cf25\lang2057\langfe2057\langnp2057\insrsid5444290 \hich\af4\dbch\af31505\loch\f4 http://www.apache.org/licenses/LICENSE-2.0}}}\sectd \ltrsect\linex0\sectdefaultcl\sftnbj {\rtlch\fcs1 \af4\afs22 +\ltrch\fcs0 \f4\fs22\ul\cf25\lang2057\langfe2057\langnp2057\insrsid5444290 +\par }{\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \f4\fs22\cf24\lang2057\langfe2057\langnp2057\insrsid5444290 \hich\af4\dbch\af31505\loch\f4 \hich\f4 Copyright \'a9\loch\f4 2021 Alexe Zimarev +\par +\par \hich\af4\dbch\af31505\loch\f4 Licensed under the Apache License, Version 2.0 (the "License"\hich\af4\dbch\af31505\loch\f4 ); you may not use this file except in compliance with the License. You may obtain a copy of the License at }{\field{\*\fldinst { +\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \f4\fs22\lang2057\langfe2057\langnp2057\insrsid5444290 \hich\af4\dbch\af31505\loch\f4 HYPERLINK http://www.apache.org/licenses/LICENSE-2.0 }{\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 +\f4\fs22\lang2057\langfe2057\langnp2057\insrsid5709539 {\*\datafield +00d0c9ea79f9bace118c8200aa004ba90b0200000003000000e0c9ea79f9bace118c8200aa004ba90b6e00000068007400740070003a002f002f007700770077002e006100700061006300680065002e006f00720067002f006c006900630065006e007300650073002f004c004900430045004e00530045002d0032002e00 +30000000795881f43b1d7f48af2c825dc485276300000000a5ab0003}}}{\fldrslt {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \f4\fs22\lang2057\langfe2057\langnp2057\insrsid5444290 \hich\af4\dbch\af31505\loch\f4 http://www.apache.org/licenses/LICENSE-2.0}}}\sectd \ltrsect +\linex0\sectdefaultcl\sftnbj {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \f4\fs22\cf24\lang2057\langfe2057\langnp2057\insrsid5444290 \hich\af4\dbch\af31505\loch\f4 Unless required by applicable law or agreed to in\hich\af4\dbch\af31505\loch\f4 + 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 +. +\par }{\rtlch\fcs1 \af40\afs18 \ltrch\fcs0 \f40\fs18\lang2057\langfe2057\langnp2057\insrsid5444290 +\par }\pard \ltrpar\ql \li0\ri0\sl288\slmult1\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 {\rtlch\fcs1 \ab\af45\afs22 \ltrch\fcs0 \b\fs22\cf24\lang2057\langfe2057\kerning1\langnp2057\insrsid5444290 \hich\af45\dbch\af31505\loch\f45 Ndesk.Options v.0.2.1.0: + +\par +\par }\pard \ltrpar\ql \li0\ri0\widctlpar\wrapdefault\faauto\rin0\lin0\itap0 {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \f4\fs22\cf24\lang2057\langfe2057\langnp2057\insrsid5444290 \hich\af4\dbch\af31505\loch\f4 +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 rig +\hich\af4\dbch\af31505\loch\f4 hts 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: +\par +\par \hich\af4\dbch\af31505\loch\f4 The above copyright notice and this permission not\hich\af4\dbch\af31505\loch\f4 ice shall be included in all copies or substantial portions of the Software. +\par +\par \hich\af4\dbch\af31505\loch\f4 THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPO\hich\af4\dbch\af31505\loch\f4 +SE AND NONINFRINGEMENT. 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 OTHE +\hich\af4\dbch\af31505\loch\f4 R\hich\af4\dbch\af31505\loch\f4 DEALINGS IN THE SOFTWARE. +\par }{\rtlch\fcs1 \af40\afs18 \ltrch\fcs0 \f40\fs18\lang2057\langfe2057\langnp2057\insrsid5444290 +\par }\pard \ltrpar\ql \li0\ri0\sl288\slmult1\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 {\rtlch\fcs1 \ab\af45\afs22 \ltrch\fcs0 \b\fs22\cf24\lang2057\langfe2057\kerning1\langnp2057\insrsid5444290 \hich\af45\dbch\af31505\loch\f45 +System.Collections.Immutable v.1.4.0: +\par }\pard \ltrpar\ql \li0\ri0\widctlpar\wrapdefault\faauto\rin0\lin0\itap0 {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \f4\fs22\cf24\lang2057\langfe2057\langnp2057\insrsid5444290 \hich\af4\dbch\af31505\loch\f4 Copyright (c) 2017 .NET Foundation and Contributors + +\par \hich\af4\dbch\af31505\loch\f4 All rights reserved. +\par +\par \hich\af4\dbch\af31505\loch\f4 Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documen\hich\af4\dbch\af31505\loch\f4 +tation 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 Softwar +\hich\af4\dbch\af31505\loch\f4 e\hich\af4\dbch\af31505\loch\f4 is furnished to do so, subject to the following conditions: +\par +\par \hich\af4\dbch\af31505\loch\f4 The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. +\par +\par \hich\af4\dbch\af31505\loch\f4 THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EX\hich\af4\dbch\af31505\loch\f4 +PRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN A +\hich\af4\dbch\af31505\loch\f4 C\hich\af4\dbch\af31505\loch\f4 TION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +\par }{\rtlch\fcs1 \af40\afs18 \ltrch\fcs0 \f40\fs18\lang2057\langfe2057\langnp2057\insrsid5444290 +\par }\pard \ltrpar\ql \li0\ri0\sl288\slmult1\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 {\rtlch\fcs1 \ab\af45\afs22 \ltrch\fcs0 \b\fs22\cf24\lang1031\langfe2057\kerning1\langnp1031\insrsid5444290 \hich\af45\dbch\af31505\loch\f45 Fontawesome v.4.7.0.37774: + +\par }\pard \ltrpar\ql \li0\ri0\widctlpar\wrapdefault\faauto\rin0\lin0\itap0 {\field{\*\fldinst {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \f4\fs22\ul\cf25\lang1031\langfe2057\langnp1031\insrsid5444290 \hich\af4\dbch\af31505\loch\f4 +HYPERLINK "https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwww.nuget.or\hich\af4\dbch\af31505\loch\f4 +g%2Fpackages%2FFontAwesome.WPF%2F&data=04%7C01%7CJames.Conner%40autodesk.com%7Cdaecd65781944b855e7808d946251ff6%7C67bff79e7f914433a8e5c9252d2ddc1d%7C0%7C0%7C637617947520190208%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJ +\hich\af4\dbch\af31505\loch\f4 X\hich\af4\dbch\af31505\loch\f4 VCI6Mn0%3D%7C1000&sdata=X8xzrd%2Fj2Js0LaFtQIoDfDv5iv%2FWDi31xCr9xQYz%2B80%3D&reserved=0" }{\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \f4\fs22\ul\cf25\lang1031\langfe2057\langnp1031\insrsid5709539 +{\*\datafield +00d0c9ea79f9bace118c8200aa004ba90b0200000003000000e0c9ea79f9bace118c8200aa004ba90b64030000680074007400700073003a002f002f006e0061006d00310031002e0073006100660065006c0069006e006b0073002e00700072006f00740065006300740069006f006e002e006f00750074006c006f006f00 +6b002e0063006f006d002f003f00750072006c003d00680074007400700073002500330041002500320046002500320046007700770077002e006e0075006700650074002e006f00720067002500320046007000610063006b00610067006500730025003200460046006f006e00740041007700650073006f006d0065002e +00570050004600250032004600260064006100740061003d0030003400250037004300300031002500370043004a0061006d00650073002e0043006f006e006e00650072002500340030006100750074006f006400650073006b002e0063006f006d0025003700430064006100650063006400360035003700380031003900 +34003400620038003500350065003700380030003800640039003400360032003500310066006600360025003700430036003700620066006600370039006500370066003900310034003400330033006100380065003500630039003200350032006400320064006400630031006400250037004300300025003700430030 +0025003700430036003300370036003100370039003400370035003200300031003900300032003000380025003700430055006e006b006e006f0077006e002500370043005400570046007000620047005a0073006200330064003800650079004a00570049006a006f0069004d004300340077004c006a00410077004d00 +4400410069004c0043004a00510049006a006f006900560032006c0075004d007a00490069004c0043004a004200540069004900360049006b003100680061005700770069004c0043004a00580056004300490036004d006e00300025003300440025003700430031003000300030002600730064006100740061003d0058 +00380078007a00720064002500320046006a0032004a00730030004c00610046007400510049006f0044006600440076003500690076002500320046005700440069003300310078004300720039007800510059007a00250032004200380030002500330044002600720065007300650072007600650064003d0030000000 +795881f43b1d7f48af2c825dc485276300000000a5ab0003}}}{\fldrslt {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \f4\fs22\ul\cf25\lang1031\langfe2057\langnp1031\insrsid5444290 \hich\af4\dbch\af31505\loch\f4 https://www.nuget.org/packages/FontAwesome.WPF/}}} +\sectd \ltrsect\linex0\sectdefaultcl\sftnbj {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \f4\fs22\ul\cf25\lang1031\langfe2057\langnp1031\insrsid5444290 +\par }{\field{\*\fldinst {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \f4\fs22\ul\cf25\lang1031\langfe2057\langnp1031\insrsid5444290 \hich\af4\dbch\af31505\loch\f4 +HYPERLINK "https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fcharri%2FFont-Awesome-WPF%2Fblob%2Fmaster%2FLICENSE&data=04%7C01%7CJames.Conner%40autodesk.com%7Cdaecd65781944b855e7808d946251ff6%7C67bff79e7f914433a8e5c9252d2ddc1d% +\hich\af4\dbch\af31505\loch\f4 7\hich\af4\dbch\af31505\loch\f4 +C0%7C0%7C637617947520200164%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=sKAHUntVBjSIV8O68z3a0dCJ%2BlRxwngZUFlVrQNRkW8%3D&reserved=0" }{\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 +\f4\fs22\ul\cf25\lang1031\langfe2057\langnp1031\insrsid5709539 {\*\datafield +00d0c9ea79f9bace118c8200aa004ba90b0200000003000000e0c9ea79f9bace118c8200aa004ba90b82030000680074007400700073003a002f002f006e0061006d00310031002e0073006100660065006c0069006e006b0073002e00700072006f00740065006300740069006f006e002e006f00750074006c006f006f00 +6b002e0063006f006d002f003f00750072006c003d00680074007400700073002500330041002500320046002500320046006700690074006800750062002e0063006f006d0025003200460063006800610072007200690025003200460046006f006e0074002d0041007700650073006f006d0065002d0057005000460025 +003200460062006c006f0062002500320046006d00610073007400650072002500320046004c004900430045004e0053004500260064006100740061003d0030003400250037004300300031002500370043004a0061006d00650073002e0043006f006e006e00650072002500340030006100750074006f00640065007300 +6b002e0063006f006d00250037004300640061006500630064003600350037003800310039003400340062003800350035006500370038003000380064003900340036003200350031006600660036002500370043003600370062006600660037003900650037006600390031003400340033003300610038006500350063 +00390032003500320064003200640064006300310064002500370043003000250037004300300025003700430036003300370036003100370039003400370035003200300032003000300031003600340025003700430055006e006b006e006f0077006e002500370043005400570046007000620047005a00730062003300 +64003800650079004a00570049006a006f0069004d004300340077004c006a00410077004d004400410069004c0043004a00510049006a006f006900560032006c0075004d007a00490069004c0043004a004200540069004900360049006b003100680061005700770069004c0043004a00580056004300490036004d006e +00300025003300440025003700430031003000300030002600730064006100740061003d0073004b004100480055006e007400560042006a0053004900560038004f00360038007a00330061003000640043004a002500320042006c005200780077006e0067005a00550046006c005600720051004e0052006b0057003800 +2500330044002600720065007300650072007600650064003d0030000000795881f43b1d7f48af2c825dc485276300000000a5ab0003}}}{\fldrslt {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \f4\fs22\ul\cf25\lang1031\langfe2057\langnp1031\insrsid5444290 \hich\af4\dbch\af31505\loch\f4 +https://github.com/charri/Font-Awesome-WPF/blob/master/LICENSE}}}\sectd \ltrsect\linex0\sectdefaultcl\sftnbj {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \f4\fs22\ul\cf25\lang1031\langfe2057\langnp1031\insrsid5444290 +\par }{\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \f4\fs22\cf24\insrsid5444290 \hich\af4\dbch\af31505\loch\f4 The MIT License (MIT) +\par \hich\af4\dbch\af31505\loch\f4 Copyright (c) 2014-2016 charri +\par +\par \hich\af4\dbch\af31505\loch\f4 +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, m +\hich\af4\dbch\af31505\loch\f4 e\hich\af4\dbch\af31505\loch\f4 rge, 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: +\par +\par \hich\af4\dbch\af31505\loch\f4 The above copyright notice and this permission notice shall be included in all\hich\af4\dbch\af31505\loch\f4 copies or substantial portions of the Software. +\par +\par \hich\af4\dbch\af31505\loch\f4 THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN N +\hich\af4\dbch\af31505\loch\f4 +O 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. + +\par }{\rtlch\fcs1 \af40\afs18 \ltrch\fcs0 \f40\fs18\insrsid5444290 +\par }\pard \ltrpar\ql \li0\ri0\sl288\slmult1\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 {\rtlch\fcs1 \ab\af45\afs22 \ltrch\fcs0 \b\fs22\cf24\kerning1\insrsid5444290 \hich\af45\dbch\af31505\loch\f45 Cyotek.Drawing.BitmapFont v.1.3.4: +\par }\pard \ltrpar\ql \li0\ri0\widctlpar\wrapdefault\faauto\rin0\lin0\itap0 {\field{\*\fldinst {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \f4\fs22\ul\cf25\insrsid5444290 \hich\af4\dbch\af31505\loch\f4 +HYPERLINK "https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fcyotek%2FCyotek.Drawing.BitmapFont&data=04%7C01%7CJames.Conner%40autodesk.com%7Cdaecd65781944b855e7808d946251ff6%7C67bff79e7f914433\hich\af4\dbch\af31505\loch\f4 +a8e5c9252d2ddc1d%7C0%7C0%7C637617947520160343%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=kvdO%2FPPgz3PuASG6zv93DwNJ4gPkL6T6islWBwoI9Xk%3D&reserved=0" }{\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 +\f4\fs22\ul\cf25\insrsid5709539 {\*\datafield +00d0c9ea79f9bace118c8200aa004ba90b0200000003000000e0c9ea79f9bace118c8200aa004ba90b60030000680074007400700073003a002f002f006e0061006d00310031002e0073006100660065006c0069006e006b0073002e00700072006f00740065006300740069006f006e002e006f00750074006c006f006f00 +6b002e0063006f006d002f003f00750072006c003d00680074007400700073002500330041002500320046002500320046006700690074006800750062002e0063006f006d00250032004600630079006f00740065006b00250032004600430079006f00740065006b002e00440072006100770069006e0067002e00420069 +0074006d006100700046006f006e007400260064006100740061003d0030003400250037004300300031002500370043004a0061006d00650073002e0043006f006e006e00650072002500340030006100750074006f006400650073006b002e0063006f006d00250037004300640061006500630064003600350037003800 +31003900340034006200380035003500650037003800300038006400390034003600320035003100660066003600250037004300360037006200660066003700390065003700660039003100340034003300330061003800650035006300390032003500320064003200640064006300310064002500370043003000250037 +004300300025003700430036003300370036003100370039003400370035003200300031003600300033003400330025003700430055006e006b006e006f0077006e002500370043005400570046007000620047005a0073006200330064003800650079004a00570049006a006f0069004d004300340077004c006a004100 +77004d004400410069004c0043004a00510049006a006f006900560032006c0075004d007a00490069004c0043004a004200540069004900360049006b003100680061005700770069004c0043004a00580056004300490036004d006e00300025003300440025003700430031003000300030002600730064006100740061 +003d006b00760064004f002500320046005000500067007a0033005000750041005300470036007a00760039003300440077004e004a003400670050006b004c00360054003600690073006c005700420077006f004900390058006b002500330044002600720065007300650072007600650064003d0030000000795881f4 +3b1d7f48af2c825dc485276300000000a5ab0003}}}{\fldrslt {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \f4\fs22\ul\cf25\insrsid5444290 \hich\af4\dbch\af31505\loch\f4 https://github.com/cyotek/Cyotek.Drawing.Bitm\hich\af4\dbch\af31505\loch\f4 apFont}}}\sectd \ltrsect +\linex0\sectdefaultcl\sftnbj {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \f4\fs22\ul\cf25\insrsid5444290 +\par }{\field{\*\fldinst {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \f4\fs22\ul\cf25\insrsid5444290 \hich\af4\dbch\af31505\loch\f4 +HYPERLINK "https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fcyotek%2FCyotek.Drawing.BitmapFont%2Fblob%2Fmaster%2FLICENSE.txt&data=04%7C01%7CJames.Conner%40autodesk.com%7Cdaecd65781944b855e7808d946251ff6%7C67bff79e7f9 +\hich\af4\dbch\af31505\loch\f4 14433a8e5c9252d2ddc1d%7C0%7C0%7C637617947520170297%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=WjEf%2FyE1koklbovxfFzHrScckILOiAOQlGkhPLaZ%2FL8%3D&reserved=0" }{ +\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \f4\fs22\ul\cf25\insrsid5709539 {\*\datafield +00d0c9ea79f9bace118c8200aa004ba90b0200000003000000e0c9ea79f9bace118c8200aa004ba90ba0030000680074007400700073003a002f002f006e0061006d00310031002e0073006100660065006c0069006e006b0073002e00700072006f00740065006300740069006f006e002e006f00750074006c006f006f00 +6b002e0063006f006d002f003f00750072006c003d00680074007400700073002500330041002500320046002500320046006700690074006800750062002e0063006f006d00250032004600630079006f00740065006b00250032004600430079006f00740065006b002e00440072006100770069006e0067002e00420069 +0074006d006100700046006f006e00740025003200460062006c006f0062002500320046006d00610073007400650072002500320046004c004900430045004e00530045002e00740078007400260064006100740061003d0030003400250037004300300031002500370043004a0061006d00650073002e0043006f006e00 +6e00650072002500340030006100750074006f006400650073006b002e0063006f006d0025003700430064006100650063006400360035003700380031003900340034006200380035003500650037003800300038006400390034003600320035003100660066003600250037004300360037006200660066003700390065 +003700660039003100340034003300330061003800650035006300390032003500320064003200640064006300310064002500370043003000250037004300300025003700430036003300370036003100370039003400370035003200300031003700300032003900370025003700430055006e006b006e006f0077006e00 +2500370043005400570046007000620047005a0073006200330064003800650079004a00570049006a006f0069004d004300340077004c006a00410077004d004400410069004c0043004a00510049006a006f006900560032006c0075004d007a00490069004c0043004a004200540069004900360049006b003100680061 +005700770069004c0043004a00580056004300490036004d006e00300025003300440025003700430031003000300030002600730064006100740061003d0057006a00450066002500320046007900450031006b006f006b006c0062006f0076007800660046007a00480072005300630063006b0049004c004f0069004100 +4f0051006c0047006b00680050004c0061005a002500320046004c0038002500330044002600720065007300650072007600650064003d0030000000795881f43b1d7f48af2c825dc485276300000000a5ab0003}}}{\fldrslt {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \f4\fs22\ul\cf25\insrsid5444290 +\hich\af4\dbch\af31505\loch\f4 https://github.com/cyotek/Cyotek.Drawi\hich\af4\dbch\af31505\loch\f4 ng.BitmapFont/blob/master/LICENSE.txt}}}\sectd \ltrsect\linex0\sectdefaultcl\sftnbj {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \f4\fs22\ul\cf25\insrsid5444290 + +\par }{\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \f4\fs22\cf24\insrsid5444290 \hich\af4\dbch\af31505\loch\f4 The MIT License (MIT) +\par \hich\af4\dbch\af31505\loch\f4 \hich\f4 Copyright \'a9\loch\f4 2012-2021 Cyotek Ltd. +\par +\par \hich\af4\dbch\af31505\loch\f4 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 \hich\af4\dbch\af31505\loch\f4 +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 fo +\hich\af4\dbch\af31505\loch\f4 l\hich\af4\dbch\af31505\loch\f4 lowing conditions: +\par +\par \hich\af4\dbch\af31505\loch\f4 The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. +\par +\par \hich\af4\dbch\af31505\loch\f4 THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITE\hich\af4\dbch\af31505\loch\f4 +D TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. 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, ARIS +\hich\af4\dbch\af31505\loch\f4 I\hich\af4\dbch\af31505\loch\f4 NG FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +\par }{\rtlch\fcs1 \af40\afs18 \ltrch\fcs0 \f40\fs18\insrsid5444290 +\par }\pard \ltrpar\ql \li0\ri0\sl288\slmult1\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 {\rtlch\fcs1 \ab\af45\afs22 \ltrch\fcs0 \b\fs22\cf24\kerning1\insrsid5444290 \hich\af45\dbch\af31505\loch\f45 Helix Toolkit v.2.11.0: +\par }\pard \ltrpar\ql \li0\ri0\widctlpar\wrapdefault\faauto\rin0\lin0\itap0 {\field{\*\fldinst {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \f4\fs22\ul\cf25\insrsid5444290 \hich\af4\dbch\af31505\loch\f4 +HYPERLINK "https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fhelix-toolkit%2Fhelix-toolkit&data=04%7C01%7\hich\af4\dbch\af31505\loch\f4 +CJames.Conner%40autodesk.com%7Cdaecd65781944b855e7808d946251ff6%7C67bff79e7f914433a8e5c9252d2ddc1d%7C0%7C0%7C637617947520210113%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=dfWqblB8VdDL63AyawNfgrF +\hich\af4\dbch\af31505\loch\f4 G\hich\af4\dbch\af31505\loch\f4 2TD08PCrheqsu%2B7K0Us%3D&reserved=0" }{\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \f4\fs22\ul\cf25\insrsid5709539 {\*\datafield +00d0c9ea79f9bace118c8200aa004ba90b0200000003000000e0c9ea79f9bace118c8200aa004ba90b56030000680074007400700073003a002f002f006e0061006d00310031002e0073006100660065006c0069006e006b0073002e00700072006f00740065006300740069006f006e002e006f00750074006c006f006f00 +6b002e0063006f006d002f003f00750072006c003d00680074007400700073002500330041002500320046002500320046006700690074006800750062002e0063006f006d00250032004600680065006c00690078002d0074006f006f006c006b0069007400250032004600680065006c00690078002d0074006f006f006c +006b0069007400260064006100740061003d0030003400250037004300300031002500370043004a0061006d00650073002e0043006f006e006e00650072002500340030006100750074006f006400650073006b002e0063006f006d0025003700430064006100650063006400360035003700380031003900340034006200 +38003500350065003700380030003800640039003400360032003500310066006600360025003700430036003700620066006600370039006500370066003900310034003400330033006100380065003500630039003200350032006400320064006400630031006400250037004300300025003700430030002500370043 +0036003300370036003100370039003400370035003200300032003100300031003100330025003700430055006e006b006e006f0077006e002500370043005400570046007000620047005a0073006200330064003800650079004a00570049006a006f0069004d004300340077004c006a00410077004d00440041006900 +4c0043004a00510049006a006f006900560032006c0075004d007a00490069004c0043004a004200540069004900360049006b003100680061005700770069004c0043004a00580056004300490036004d006e00300025003300440025003700430031003000300030002600730064006100740061003d0064006600570071 +0062006c00420038005600640044004c003600330041007900610077004e0066006700720046004700320054004400300038005000430072006800650071007300750025003200420037004b003000550073002500330044002600720065007300650072007600650064003d0030000000795881f43b1d7f48af2c825dc485 +276300000000a5ab0003}}}{\fldrslt {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \f4\fs22\ul\cf25\insrsid5444290 \hich\af4\dbch\af31505\loch\f4 https://github.com/helix-toolkit/helix-toolkit}}}\sectd \ltrsect\linex0\sectdefaultcl\sftnbj {\rtlch\fcs1 \af4\afs22 +\ltrch\fcs0 \f4\fs22\ul\cf25\insrsid5444290 +\par }{\field{\*\fldinst {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \f4\fs22\ul\cf25\insrsid5444290 \hich\af4\dbch\af31505\loch\f4 +HYPERLINK "https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fhelix-toolkit%2Fhelix-toolkit%2Fblob%2Fdevelop%2FLICENSE&data=04%7C01%7CJames.C\hich\af4\dbch\af31505\loch\f4 +onner%40autodesk.com%7Cdaecd65781944b855e7808d946251ff6%7C67bff79e7f914433a8e5c9252d2ddc1d%7C0%7C0%7C637617947520210113%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=qUPlp6EXAxHOk9eACY7DopacUlVCn35 +\hich\af4\dbch\af31505\loch\f4 5\hich\af4\dbch\af31505\loch\f4 KLenUznV%2Ft0%3D&reserved=0" }{\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \f4\fs22\ul\cf25\insrsid5709539 {\*\datafield +00d0c9ea79f9bace118c8200aa004ba90b0200000003000000e0c9ea79f9bace118c8200aa004ba90b8c030000680074007400700073003a002f002f006e0061006d00310031002e0073006100660065006c0069006e006b0073002e00700072006f00740065006300740069006f006e002e006f00750074006c006f006f00 +6b002e0063006f006d002f003f00750072006c003d00680074007400700073002500330041002500320046002500320046006700690074006800750062002e0063006f006d00250032004600680065006c00690078002d0074006f006f006c006b0069007400250032004600680065006c00690078002d0074006f006f006c +006b006900740025003200460062006c006f00620025003200460064006500760065006c006f0070002500320046004c004900430045004e0053004500260064006100740061003d0030003400250037004300300031002500370043004a0061006d00650073002e0043006f006e006e006500720025003400300061007500 +74006f006400650073006b002e0063006f006d002500370043006400610065006300640036003500370038003100390034003400620038003500350065003700380030003800640039003400360032003500310066006600360025003700430036003700620066006600370039006500370066003900310034003400330033 +0061003800650035006300390032003500320064003200640064006300310064002500370043003000250037004300300025003700430036003300370036003100370039003400370035003200300032003100300031003100330025003700430055006e006b006e006f0077006e0025003700430054005700460070006200 +47005a0073006200330064003800650079004a00570049006a006f0069004d004300340077004c006a00410077004d004400410069004c0043004a00510049006a006f006900560032006c0075004d007a00490069004c0043004a004200540069004900360049006b003100680061005700770069004c0043004a00580056 +004300490036004d006e00300025003300440025003700430031003000300030002600730064006100740061003d007100550050006c0070003600450058004100780048004f006b0039006500410043005900370044006f0070006100630055006c00560043006e003300350035004b004c0065006e0055007a006e005600 +250032004600740030002500330044002600720065007300650072007600650064003d0030000000795881f43b1d7f48af2c825dc485276300000000a5ab0003}}}{\fldrslt {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \f4\fs22\ul\cf25\insrsid5444290 \hich\af4\dbch\af31505\loch\f4 +https://github.com/helix-toolkit/helix-toolkit/blob/develop/LICENSE}}}\sectd \ltrsect\linex0\sectdefaultcl\sftnbj {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \f4\fs22\ul\cf25\insrsid5444290 +\par }{\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \f4\fs22\cf24\insrsid5444290 \hich\af4\dbch\af31505\loch\f4 The MIT License (MIT) +\par \hich\af4\dbch\af31505\loch\f4 Copyright (c) 2019 Helix Toolkit contributors +\par +\par \hich\af4\dbch\af31505\loch\f4 Permission is hereby granted, free of charge, to any person obtaining a copy of this so\hich\af4\dbch\af31505\loch\f4 +ftware 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 permi +\hich\af4\dbch\af31505\loch\f4 t\hich\af4\dbch\af31505\loch\f4 persons to whom the Software is furnished to do so, subject to the following conditions: +\par +\par \hich\af4\dbch\af31505\loch\f4 The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. +\par +\par \hich\af4\dbch\af31505\loch\f4 THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES \hich\af4\dbch\af31505\loch\f4 +OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. 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 +\hich\af4\dbch\af31505\loch\f4 I\hich\af4\dbch\af31505\loch\f4 N CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +\par }{\rtlch\fcs1 \af40\afs18 \ltrch\fcs0 \f40\fs18\insrsid5444290 +\par }\pard \ltrpar\ql \li0\ri0\sl288\slmult1\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 {\rtlch\fcs1 \ab\af45\afs22 \ltrch\fcs0 \b\fs22\cf24\kerning1\insrsid5444290 \hich\af45\dbch\af31505\loch\f45 SharpDX v.4.2.0: +\par }\pard \ltrpar\ql \li0\ri0\widctlpar\wrapdefault\faauto\rin0\lin0\itap0 {\field{\*\fldinst {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \f4\fs22\ul\cf25\insrsid5444290 \hich\af4\dbch\af31505\loch\f4 +HYPERLINK "https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fsharpdx%2FSharpDX%2Fblob%2Fmaster%2FLICENSE&data=04%7C01%7CJames.Conner\hich\af4\dbch\af31505\loch\f4 +%40autodesk.com%7Cdaecd65781944b855e7808d946251ff6%7C67bff79e7f914433a8e5c9252d2ddc1d%7C0%7C0%7C637617947520488895%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=VOYhb2IAZGG0jx%2FwQxJ2Q9HXN2t6XKVVP6 +\hich\af4\dbch\af31505\loch\f4 A\hich\af4\dbch\af31505\loch\f4 iBEdD%2F3E%3D&reserved=0" }{\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \f4\fs22\ul\cf25\insrsid5709539 {\*\datafield +00d0c9ea79f9bace118c8200aa004ba90b0200000003000000e0c9ea79f9bace118c8200aa004ba90b76030000680074007400700073003a002f002f006e0061006d00310031002e0073006100660065006c0069006e006b0073002e00700072006f00740065006300740069006f006e002e006f00750074006c006f006f00 +6b002e0063006f006d002f003f00750072006c003d00680074007400700073002500330041002500320046002500320046006700690074006800750062002e0063006f006d002500320046007300680061007200700064007800250032004600530068006100720070004400580025003200460062006c006f006200250032 +0046006d00610073007400650072002500320046004c004900430045004e0053004500260064006100740061003d0030003400250037004300300031002500370043004a0061006d00650073002e0043006f006e006e00650072002500340030006100750074006f006400650073006b002e0063006f006d00250037004300 +64006100650063006400360035003700380031003900340034006200380035003500650037003800300038006400390034003600320035003100660066003600250037004300360037006200660066003700390065003700660039003100340034003300330061003800650035006300390032003500320064003200640064 +006300310064002500370043003000250037004300300025003700430036003300370036003100370039003400370035003200300034003800380038003900350025003700430055006e006b006e006f0077006e002500370043005400570046007000620047005a0073006200330064003800650079004a00570049006a00 +6f0069004d004300340077004c006a00410077004d004400410069004c0043004a00510049006a006f006900560032006c0075004d007a00490069004c0043004a004200540069004900360049006b003100680061005700770069004c0043004a00580056004300490036004d006e00300025003300440025003700430031 +003000300030002600730064006100740061003d0056004f005900680062003200490041005a004700470030006a0078002500320046007700510078004a00320051003900480058004e0032007400360058004b00560056005000360041006900420045006400440025003200460033004500250033004400260072006500 +7300650072007600650064003d0030000000795881f43b1d7f48af2c825dc485276300000000a5ab0003}}}{\fldrslt {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \f4\fs22\ul\cf25\insrsid5444290 \hich\af4\dbch\af31505\loch\f4 https://github.com/sharpdx/SharpDX/blob/master/LICENSE}}} +\sectd \ltrsect\linex0\sectdefaultcl\sftnbj {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \f4\fs22\ul\cf25\insrsid5444290 +\par }{\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \f4\fs22\cf24\insrsid5444290 \hich\af4\dbch\af31505\loch\f4 Copyright (c) 2010-2014 SharpDX - Alexandre Mutel +\par +\par \hich\af4\dbch\af31505\loch\f4 Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentatio\hich\af4\dbch\af31505\loch\f4 +n 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 +\hich\af4\dbch\af31505\loch\f4 f\hich\af4\dbch\af31505\loch\f4 urnished to do so, subject to the following conditions: +\par +\par \hich\af4\dbch\af31505\loch\f4 The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. +\par +\par \hich\af4\dbch\af31505\loch\f4 THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS\hich\af4\dbch\af31505\loch\f4 + OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +\hich\af4\dbch\af31505\loch\f4 \hich\af4\dbch\af31505\loch\f4 OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +\par }{\rtlch\fcs1 \af40\afs18 \ltrch\fcs0 \f40\fs18\insrsid5444290 +\par }\pard \ltrpar\ql \li0\ri0\sl288\slmult1\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 {\rtlch\fcs1 \ab\af45\afs22 \ltrch\fcs0 \b\fs22\cf24\kerning1\insrsid5444290 \hich\af45\dbch\af31505\loch\f45 ICSharpCode.AvalonEdit v.4.3.1.9430: +\par }\pard \ltrpar\ql \li0\ri0\widctlpar\wrapdefault\faauto\rin0\lin0\itap0 {\field{\*\fldinst {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \f4\fs22\ul\cf25\insrsid5444290 \hich\af4\dbch\af31505\loch\f4 +HYPERLINK "https://nam11.safelinks.protection.outlook.com/?url=http%3A%2F%2Favaloned\hich\af4\dbch\af31505\loch\f4 +it.net%2F&data=04%7C01%7CJames.Conner%40autodesk.com%7Cdaecd65781944b855e7808d946251ff6%7C67bff79e7f914433a8e5c9252d2ddc1d%7C0%7C0%7C637617947520140430%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata +\hich\af4\dbch\af31505\loch\f4 =\hich\af4\dbch\af31505\loch\f4 8LzAHpLNkVoeZjdzGOhnWGFNiouDGJ8VC5KDZ082Xw4%3D&reserved=0" }{\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \f4\fs22\ul\cf25\insrsid5709539 {\*\datafield +00d0c9ea79f9bace118c8200aa004ba90b0200000003000000e0c9ea79f9bace118c8200aa004ba90b1e030000680074007400700073003a002f002f006e0061006d00310031002e0073006100660065006c0069006e006b0073002e00700072006f00740065006300740069006f006e002e006f00750074006c006f006f00 +6b002e0063006f006d002f003f00750072006c003d0068007400740070002500330041002500320046002500320046006100760061006c006f006e0065006400690074002e006e0065007400250032004600260064006100740061003d0030003400250037004300300031002500370043004a0061006d00650073002e0043 +006f006e006e00650072002500340030006100750074006f006400650073006b002e0063006f006d002500370043006400610065006300640036003500370038003100390034003400620038003500350065003700380030003800640039003400360032003500310066006600360025003700430036003700620066006600 +3700390065003700660039003100340034003300330061003800650035006300390032003500320064003200640064006300310064002500370043003000250037004300300025003700430036003300370036003100370039003400370035003200300031003400300034003300300025003700430055006e006b006e006f +0077006e002500370043005400570046007000620047005a0073006200330064003800650079004a00570049006a006f0069004d004300340077004c006a00410077004d004400410069004c0043004a00510049006a006f006900560032006c0075004d007a00490069004c0043004a004200540069004900360049006b00 +3100680061005700770069004c0043004a00580056004300490036004d006e00300025003300440025003700430031003000300030002600730064006100740061003d0038004c007a004100480070004c004e006b0056006f0065005a006a0064007a0047004f0068006e005700470046004e0069006f007500440047004a +0038005600430035004b0044005a003000380032005800770034002500330044002600720065007300650072007600650064003d0030000000795881f43b1d7f48af2c825dc485276300000000a5ab0003}}}{\fldrslt {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \f4\fs22\ul\cf25\insrsid5444290 +\hich\af4\dbch\af31505\loch\f4 http://avalonedit.net}}}\sectd \ltrsect\linex0\sectdefaultcl\sftnbj {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \f4\fs22\ul\cf25\insrsid5444290 +\par }{\field{\*\fldinst {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \f4\fs22\ul\cf25\insrsid5444290 \hich\af4\dbch\af31505\loch\f4 +HYPERLINK "https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fopensource.org%2Flicenses%2Flgpl-2.1.php&data=04%7C01%7CJames.Conner%40autodesk.com%7Cdaecd6578\hich\af4\dbch\af31505\loch\f4 +1944b855e7808d946251ff6%7C67bff79e7f914433a8e5c9252d2ddc1d%7C0%7C0%7C637617947520140430%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=dPV5LoRJRVwXcegWvkTcHabB5Tevj64NxzAjDzFlGg8%3D&reserved=0" }{ +\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \f4\fs22\ul\cf25\insrsid5709539 {\*\datafield +00d0c9ea79f9bace118c8200aa004ba90b0200000003000000e0c9ea79f9bace118c8200aa004ba90b4e030000680074007400700073003a002f002f006e0061006d00310031002e0073006100660065006c0069006e006b0073002e00700072006f00740065006300740069006f006e002e006f00750074006c006f006f00 +6b002e0063006f006d002f003f00750072006c003d00680074007400700073002500330041002500320046002500320046006f00700065006e0073006f0075007200630065002e006f00720067002500320046006c006900630065006e007300650073002500320046006c00670070006c002d0032002e0031002e00700068 +007000260064006100740061003d0030003400250037004300300031002500370043004a0061006d00650073002e0043006f006e006e00650072002500340030006100750074006f006400650073006b002e0063006f006d002500370043006400610065006300640036003500370038003100390034003400620038003500 +35006500370038003000380064003900340036003200350031006600660036002500370043003600370062006600660037003900650037006600390031003400340033003300610038006500350063003900320035003200640032006400640063003100640025003700430030002500370043003000250037004300360033 +00370036003100370039003400370035003200300031003400300034003300300025003700430055006e006b006e006f0077006e002500370043005400570046007000620047005a0073006200330064003800650079004a00570049006a006f0069004d004300340077004c006a00410077004d004400410069004c004300 +4a00510049006a006f006900560032006c0075004d007a00490069004c0043004a004200540069004900360049006b003100680061005700770069004c0043004a00580056004300490036004d006e00300025003300440025003700430031003000300030002600730064006100740061003d0064005000560035004c006f +0052004a005200560077005800630065006700570076006b0054006300480061006200420035005400650076006a00360034004e0078007a0041006a0044007a0046006c004700670038002500330044002600720065007300650072007600650064003d0030000000795881f43b1d7f48af2c825dc485276300000000a5ab +0003}}}{\fldrslt {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \f4\fs22\ul\cf25\insrsid5444290 \hich\af4\dbch\af31505\loch\f4 https\hich\af4\dbch\af31505\loch\f4 ://opensource.org/licenses/lgpl-2.1.php}}}\sectd \ltrsect\linex0\sectdefaultcl\sftnbj {\rtlch\fcs1 +\af4\afs22 \ltrch\fcs0 \f4\fs22\ul\cf25\insrsid5444290 +\par +\par }{\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \f4\fs22\cf24\insrsid5444290 \hich\af4\dbch\af31505\loch\f4 \hich\f4 Portions related to the Avalon Edit v.4.3.1.9429 are \'a9\loch\f4 + 2014 AlphaSierraPapa for the SharpDevelop Team. All rights reserved. Avalon Edit is licensed under the GNU Lesser General Public License v.3.0, which can be \hich\af4\dbch\af31505\loch\f4 found at }{\field{\*\fldinst {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 +\f4\fs22\insrsid5444290 \hich\af4\dbch\af31505\loch\f4 HYPERLINK http://opensource.org/licenses/lgpl-3.0.html }{\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \f4\fs22\insrsid5709539 {\*\datafield +00d0c9ea79f9bace118c8200aa004ba90b0200000003000000e0c9ea79f9bace118c8200aa004ba90b7200000068007400740070003a002f002f006f00700065006e0073006f0075007200630065002e006f00720067002f006c006900630065006e007300650073002f006c00670070006c002d0033002e0030002e006800 +74006d006c000000795881f43b1d7f48af2c825dc485276300000000a5ab0003}}}{\fldrslt {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \f4\fs22\insrsid5444290 \hich\af4\dbch\af31505\loch\f4 http://opensource.org/licenses/lgpl-3.0.html}}}\sectd \ltrsect +\linex0\sectdefaultcl\sftnbj {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \f4\fs22\cf24\insrsid5444290 \hich\af4\dbch\af31505\loch\f4 +. A text copy of this license is included on the media provided by Autodesk or with the download of this Autodesk software. You may obtain a copy\hich\af4\dbch\af31505\loch\f4 of the source code for Avalon Edit v.4.3.1.9429 from }{\field{\*\fldinst { +\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \f4\fs22\ul\cf25\insrsid5444290 \hich\af4\dbch\af31505\loch\f4 HYPERLINK www.autodesk.com/lgplsource }{\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \f4\fs22\ul\cf25\insrsid5709539 {\*\datafield +00d0c9ea79f9bace118c8200aa004ba90b0200000001000000e0c9ea79f9bace118c8200aa004ba90b500000007700770077002e006100750074006f006400650073006b002e0063006f006d002f006c00670070006c0073006f0075007200630065000000795881f43b1d7f48af2c825dc485276300000000a5ab0003}} +}{\fldrslt {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \f4\fs22\ul\cf25\insrsid5444290 \hich\af4\dbch\af31505\loch\f4 www.autodesk.com/lgplsource}}}\sectd \ltrsect\linex0\sectdefaultcl\sftnbj {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \f4\fs22\cf24\insrsid5444290 +\hich\af4\dbch\af31505\loch\f4 or by sending a written request to: +\par }{\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \f4\fs22\ul\cf25\insrsid5444290 +\par }{\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \f4\fs22\cf24\insrsid5444290 \hich\af4\dbch\af31505\loch\f4 Autodesk, Inc. +\par \hich\af4\dbch\af31505\loch\f4 Attention: General Counsel +\par \hich\af4\dbch\af31505\loch\f4 Legal Department +\par \hich\af4\dbch\af31505\loch\f4 111 McInnis Parkway +\par \hich\af4\dbch\af31505\loch\f4 San Rafael, CA 9490 +\par +\par \hich\af4\dbch\af31505\loch\f4 Your written request must: +\par +\par \hich\af4\dbch\af31505\loch\f4 1. Contain a self-addressed CD/DVD mailer (or enve\hich\af4\dbch\af31505\loch\f4 +lope sufficiently large to hold a DVD) with postage sufficient to cover the amount of the current U.S. Post Office First Class postage rate for CD/DVD mailers (or the envelope you have chosen) weighing 5 ounces from San Rafael, California USA to your indi +\hich\af4\dbch\af31505\loch\f4 c\hich\af4\dbch\af31505\loch\f4 ated address; and +\par \hich\af4\dbch\af31505\loch\f4 2. Identify: +\par \bullet \hich\af4\dbch\af31505\loch\f4 this Autodesk software name and release number; +\par \bullet \hich\af4\dbch\af31505\loch\f4 that you are requesting the source code for Avalon Edit v.4.3.1.9429; and +\par \bullet \hich\af4\dbch\af31505\loch\f4 the above URL (}{\field{\*\fldinst {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \f4\fs22\cf24\insrsid5444290 \hich\af4\dbch\af31505\loch\f4 HYPERLINK www.autodesk.com/lgplsource }{\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 +\f4\fs22\cf24\insrsid5709539 {\*\datafield +00d0c9ea79f9bace118c8200aa004ba90b0200000001000000e0c9ea79f9bace118c8200aa004ba90b500000007700770077002e006100750074006f006400650073006b002e0063006f006d002f006c00670070006c0073006f0075007200630065000000795881f43b1d7f48af2c825dc485276300000000a5ab0003}} +}{\fldrslt {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \f4\fs22\cf24\insrsid5444290 \hich\af4\dbch\af31505\loch\f4 www.autodesk.com/lgplsource}}}\sectd \ltrsect\linex0\sectdefaultcl\sftnbj {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \f4\fs22\cf24\insrsid5444290 +\hich\af4\dbch\af31505\loch\f4 ) +\par \hich\af4\dbch\af31505\loch\f4 so that Auto\hich\af4\dbch\af31505\loch\f4 desk may properly respond to your request. The offer to receive this Avalon Edit source code via the above URL (}{\field{\*\fldinst {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 +\f4\fs22\ul\cf25\insrsid5444290 \hich\af4\dbch\af31505\loch\f4 HYPERLINK "http://www.autodesk.com/lgplsource" }{\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \f4\fs22\ul\cf25\insrsid5709539 {\*\datafield +00d0c9ea79f9bace118c8200aa004ba90b0200000003000000e0c9ea79f9bace118c8200aa004ba90b5e00000068007400740070003a002f002f007700770077002e006100750074006f006400650073006b002e0063006f006d002f006c00670070006c0073006f0075007200630065000000795881f43b1d7f48af2c825d +c485276300000000a5ab0003}}}{\fldrslt {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \f4\fs22\ul\cf25\insrsid5444290 \hich\af4\dbch\af31505\loch\f4 www.autodesk.com/lgplsource}}}\sectd \ltrsect\linex0\sectdefaultcl\sftnbj {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 +\f4\fs22\cf24\insrsid5444290 \hich\af4\dbch\af31505\loch\f4 ) or by written request to Autodesk is valid for a period of three \hich\af4\dbch\af31505\loch\f4 +(3) years from the date you purchased your license to this Autodesk software. You may modify, debug and relink Avalon Edit to this Autodesk software as provided under the terms of the GNU Lesser General Public License v.3.0. +\par }{\rtlch\fcs1 \af40\afs18 \ltrch\fcs0 \f40\fs18\insrsid5444290 +\par }\pard \ltrpar\ql \li0\ri0\sl288\slmult1\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 {\rtlch\fcs1 \ab\af45\afs22 \ltrch\fcs0 \b\fs22\cf24\kerning1\insrsid5444290 \hich\af45\dbch\af31505\loch\f45 Google OpenSans: +\par }\pard \ltrpar\ql \li0\ri0\widctlpar\wrapdefault\faauto\rin0\lin0\itap0 {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \f4\fs22\cf24\insrsid5444290 \hich\af4\dbch\af31505\loch\f4 OpenSans font\hich\af4\dbch\af31505\loch\f4 from Google +\par }{\field{\*\fldinst {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \f4\fs22\ul\cf25\insrsid5444290 \hich\af4\dbch\af31505\loch\f4 +HYPERLINK "https://nam11.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwww.google.com%2Ffonts%2Fspecimen%2FOpen%2BSans&data=04%7C01%7CJames.Conner%40autodesk.com%7Cdaecd65781944b855e7808d946251ff6%7C67bff79e7f914433a8e5c9252d2ddc1d%7C0%7C +\hich\af4\dbch\af31505\loch\f4 0%7C637617947520439110%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=uwmtTlbBUjq%2B1z%2FvJsb9jSJ7i6M8hIMll1qnznB0mDw%3D&reserved=0" }{\rtlch\fcs1 \af4\afs22 +\ltrch\fcs0 \f4\fs22\ul\cf25\insrsid5709539 {\*\datafield +00d0c9ea79f9bace118c8200aa004ba90b0200000003000000e0c9ea79f9bace118c8200aa004ba90b62030000680074007400700073003a002f002f006e0061006d00310031002e0073006100660065006c0069006e006b0073002e00700072006f00740065006300740069006f006e002e006f00750074006c006f006f00 +6b002e0063006f006d002f003f00750072006c003d0068007400740070002500330041002500320046002500320046007700770077002e0067006f006f0067006c0065002e0063006f006d0025003200460066006f006e0074007300250032004600730070006500630069006d0065006e002500320046004f00700065006e +00250032004200530061006e007300260064006100740061003d0030003400250037004300300031002500370043004a0061006d00650073002e0043006f006e006e00650072002500340030006100750074006f006400650073006b002e0063006f006d002500370043006400610065006300640036003500370038003100 +39003400340062003800350035006500370038003000380064003900340036003200350031006600660036002500370043003600370062006600660037003900650037006600390031003400340033003300610038006500350063003900320035003200640032006400640063003100640025003700430030002500370043 +00300025003700430036003300370036003100370039003400370035003200300034003300390031003100300025003700430055006e006b006e006f0077006e002500370043005400570046007000620047005a0073006200330064003800650079004a00570049006a006f0069004d004300340077004c006a0041007700 +4d004400410069004c0043004a00510049006a006f006900560032006c0075004d007a00490069004c0043004a004200540069004900360049006b003100680061005700770069004c0043004a00580056004300490036004d006e00300025003300440025003700430031003000300030002600730064006100740061003d +00750077006d00740054006c006200420055006a00710025003200420031007a0025003200460076004a007300620039006a0053004a003700690036004d003800680049004d006c006c00310071006e007a006e00420030006d00440077002500330044002600720065007300650072007600650064003d00300000007958 +81f43b1d7f48af2c825dc485276300000000a5ab0003}}}{\fldrslt {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \f4\fs22\ul\cf25\insrsid5444290 \hich\af4\dbch\af31505\loch\f4 http://www.google.com/fonts/specimen/Open+Sans}}}\sectd \ltrsect\linex0\sectdefaultcl\sftnbj { +\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \f4\fs22\ul\cf25\insrsid5444290 +\par }{\field{\*\fldinst {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \f4\fs22\ul\cf25\insrsid5444290 \hich\af4\dbch\af31505\loch\f4 HYPERLINK "https\hich\af4\dbch\af31505\loch\f4 +://nam11.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwww.apache.org%2Flicenses%2FLICENSE-2.0.html&data=04%7C01%7CJames.Conner%40autodesk.com%7Cdaecd65781944b855e7808d946251ff6%7C67bff79e7f914433a8e5c9252d2ddc1d%7C0%7C0%7C637617947520449066%7CUnknow +\hich\af4\dbch\af31505\loch\f4 n\hich\af4\dbch\af31505\loch\f4 %7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=u4S07VDF20%2BhKswWuPxfNxdMvEV6u6kUxVXid57TMkQ%3D&reserved=0" }{\rtlch\fcs1 \af4\afs22 +\ltrch\fcs0 \f4\fs22\ul\cf25\insrsid5709539 {\*\datafield +00d0c9ea79f9bace118c8200aa004ba90b0200000003000000e0c9ea79f9bace118c8200aa004ba90b58030000680074007400700073003a002f002f006e0061006d00310031002e0073006100660065006c0069006e006b0073002e00700072006f00740065006300740069006f006e002e006f00750074006c006f006f00 +6b002e0063006f006d002f003f00750072006c003d0068007400740070002500330041002500320046002500320046007700770077002e006100700061006300680065002e006f00720067002500320046006c006900630065006e007300650073002500320046004c004900430045004e00530045002d0032002e0030002e +00680074006d006c00260064006100740061003d0030003400250037004300300031002500370043004a0061006d00650073002e0043006f006e006e00650072002500340030006100750074006f006400650073006b002e0063006f006d002500370043006400610065006300640036003500370038003100390034003400 +62003800350035006500370038003000380064003900340036003200350031006600660036002500370043003600370062006600660037003900650037006600390031003400340033003300610038006500350063003900320035003200640032006400640063003100640025003700430030002500370043003000250037 +00430036003300370036003100370039003400370035003200300034003400390030003600360025003700430055006e006b006e006f0077006e002500370043005400570046007000620047005a0073006200330064003800650079004a00570049006a006f0069004d004300340077004c006a00410077004d0044004100 +69004c0043004a00510049006a006f006900560032006c0075004d007a00490069004c0043004a004200540069004900360049006b003100680061005700770069004c0043004a00580056004300490036004d006e00300025003300440025003700430031003000300030002600730064006100740061003d007500340053 +00300037005600440046003200300025003200420068004b0073007700570075005000780066004e00780064004d007600450056003600750036006b005500780056005800690064003500370054004d006b0051002500330044002600720065007300650072007600650064003d0030000000795881f43b1d7f48af2c825d +c485276300000000a5ab0003}}}{\fldrslt {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \f4\fs22\ul\cf25\insrsid5444290 \hich\af4\dbch\af31505\loch\f4 http://www.apache.org/licenses/LICENSE-2.0.html}}}\sectd \ltrsect\linex0\sectdefaultcl\sftnbj {\rtlch\fcs1 \af4\afs22 +\ltrch\fcs0 \f4\fs22\ul\cf25\insrsid5444290 +\par }{\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \f4\fs22\cf24\insrsid5444290 \hich\af4\dbch\af31505\loch\f4 \hich\f4 Copyright \'a9\loch\f4 [yyyy] Steve Matteson +\par +\par \hich\af4\dbch\af31505\loch\f4 Licensed under\hich\af4\dbch\af31505\loch\f4 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 }{\field{\*\fldinst { +\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \f4\fs22\insrsid5444290 \hich\af4\dbch\af31505\loch\f4 HYPERLINK http://www.apache.org/licenses/LICENSE-2.0 }{\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \f4\fs22\insrsid5709539 {\*\datafield +00d0c9ea79f9bace118c8200aa004ba90b0200000003000000e0c9ea79f9bace118c8200aa004ba90b6e00000068007400740070003a002f002f007700770077002e006100700061006300680065002e006f00720067002f006c006900630065006e007300650073002f004c004900430045004e00530045002d0032002e00 +30000000795881f43b1d7f48af2c825dc485276300000000a5ab0003}}}{\fldrslt {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \f4\fs22\insrsid5444290 \hich\af4\dbch\af31505\loch\f4 http://www.apache.org/licenses/LICENSE-2.0}}}\sectd \ltrsect\linex0\sectdefaultcl\sftnbj { +\rtlch\fcs1 \af0\afs22 \ltrch\fcs0 \f0\fs22\ul\cf25\insrsid5444290 \hich\af0\dbch\af31505\loch\f0 }{\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \f4\fs22\cf24\insrsid5444290 \hich\af4\dbch\af31505\loch\f4 Un\hich\af4\dbch\af31505\loch\f4 +less 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 governin +\hich\af4\dbch\af31505\loch\f4 g\hich\af4\dbch\af31505\loch\f4 permissions and limitations under the License.}{\rtlch\fcs1 \af0\afs22 \ltrch\fcs0 \f0\fs22\ul\cf25\insrsid5444290 +\par }{\rtlch\fcs1 \af40\afs18 \ltrch\fcs0 \f40\fs18\insrsid5444290 +\par }\pard \ltrpar\ql \li0\ri0\sl288\slmult1\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 {\rtlch\fcs1 \ab\af45\afs22 \ltrch\fcs0 \b\fs22\cf24\kerning1\insrsid5444290 \hich\af45\dbch\af31505\loch\f45 DocumentFormat.OpenXml v.2.12.3: +\par }\pard \ltrpar\ql \li0\ri0\widctlpar\wrapdefault\faauto\rin0\lin0\itap0 {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \f4\fs22\cf24\insrsid5444290 \hich\af4\dbch\af31505\loch\f4 The MIT License (MIT) +\par \hich\af4\dbch\af31505\loch\f4 Copyright (c) Microsoft Corporation +\par +\par \hich\af4\dbch\af31505\loch\f4 Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated docume\hich\af4\dbch\af31505\loch\f4 +ntation 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 Softwa +\hich\af4\dbch\af31505\loch\f4 r\hich\af4\dbch\af31505\loch\f4 e is furnished to do so, subject to the following conditions: +\par +\par \hich\af4\dbch\af31505\loch\f4 The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. +\par +\par \hich\af4\dbch\af31505\loch\f4 THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, E\hich\af4\dbch\af31505\loch\f4 +XPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN +\hich\af4\dbch\af31505\loch\f4 A\hich\af4\dbch\af31505\loch\f4 CTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +\par }{\rtlch\fcs1 \af40\afs18 \ltrch\fcs0 \f40\fs18\insrsid5444290 +\par }\pard \ltrpar\ql \li0\ri0\sl288\slmult1\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 {\rtlch\fcs1 \ab\af45\afs22 \ltrch\fcs0 \b\fs22\cf24\kerning1\insrsid5444290 \hich\af45\dbch\af31505\loch\f45 IronPython.StdLib v.2.7.9: +\par }\pard \ltrpar\ql \li0\ri0\widctlpar\wrapdefault\faauto\rin0\lin0\itap0 {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \f4\fs22\cf24\insrsid5444290 \hich\af4\dbch\af31505\loch\f4 \hich\f4 Copyright \'a9\loch\f4 2018 Slide & Slozier +\par +\par \hich\af4\dbch\af31505\loch\f4 +1. This LICENSE AGREEMENT is between the Python Software Foundation ("PSF"), and the Individual or Organization ("Licensee") accessing and otherwise using Python 2.7.18 software in source or binary form and its associated documentation. +\par +\par \hich\af4\dbch\af31505\loch\f4 2. Subject to the \hich\af4\dbch\af31505\loch\f4 +terms and conditions of this License Agreement, PSF hereby grants Licensee a nonexclusive, royalty-free, world-wide license to reproduce, analyze, test, perform and/or display publicly, prepare derivative works, distribute, and otherwise use Python 2.7.18 +\hich\af4\dbch\af31505\loch\f4 \hich\af4\dbch\af31505\loch\f4 \hich\f4 alone or in any derivative version, provided, however, that PSF's License Agreement and PSF's notice of copyright, i.e., "Copyright \'a9\loch\f4 + 2001-2020 Python Software Foundation; All Rights Reserved" are retained in Python 2.7.18 alone or in any derivative versi\hich\af4\dbch\af31505\loch\f4 o\hich\af4\dbch\af31505\loch\f4 n prepared by Licensee. +\par +\par \hich\af4\dbch\af31505\loch\f4 +3. In the event Licensee prepares a derivative work that is based on or incorporates Python 2.7.18 or any part thereof, and wants to make the derivative work available to others as provided herein, then Licensee hereby agrees to in +\hich\af4\dbch\af31505\loch\f4 clude in any such work a brief summary of the changes made to Python 2.7.18. +\par +\par \hich\af4\dbch\af31505\loch\f4 4. PSF is making Python 2.7.18 available to Licensee on an "AS IS" basis. PSF MAKES NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR IMPLIED. BY WAY OF EXAMPLE, BUT NOT LIMITATION, \hich\af4\dbch\af31505\loch\f4 +PSF MAKES NO AND DISCLAIMS ANY REPRESENTATION OR WARRANTY OF MERCHANTABILITY OR FITNESS FOR ANY PARTICULAR PURPOSE OR THAT THE USE OF PYTHON 2.7.18 WILL NOT INFRINGE ANY THIRD PARTY RIGHTS. +\par +\par \hich\af4\dbch\af31505\loch\f4 5. PSF SHALL NOT BE LIABLE TO LICENSEE OR ANY OTHER USERS OF PYTH\hich\af4\dbch\af31505\loch\f4 +ON 2.7.18 FOR ANY INCIDENTAL, SPECIAL, OR CONSEQUENTIAL DAMAGES OR LOSS AS A RESULT OF MODIFYING, DISTRIBUTING, OR OTHERWISE USING PYTHON 2.7.18, OR ANY DERIVATIVE THEREOF, EVEN IF ADVISED OF THE POSSIBILITY THEREOF. +\par +\par \hich\af4\dbch\af31505\loch\f4 6. This License Agreement will automat\hich\af4\dbch\af31505\loch\f4 ically terminate upon a material breach of its terms and conditions. +\par +\par \hich\af4\dbch\af31505\loch\f4 7. Nothing in this License Agreement shall be deemed to create any relationship of agency, partnership, or joint venture between PSF and Licensee. This License Agreement does not grant \hich\af4\dbch\af31505\loch\f4 +permission to use PSF trademarks or trade name in a trademark sense to endorse or promote products or services of Licensee, or any third party. +\par +\par \hich\af4\dbch\af31505\loch\f4 8. By copying, installing or otherwise using Python 2.7.18, Licensee agrees to be bound by the terms and condit\hich\af4\dbch\af31505\loch\f4 ions of this License Agreement. +\par +\par }\pard \ltrpar\ql \li0\ri0\sl288\slmult1\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 {\rtlch\fcs1 \ab\af45\afs22 \ltrch\fcs0 \b\fs22\cf24\kerning1\insrsid5444290 \hich\af45\dbch\af31505\loch\f45 IronPython v.2.7.9 +\par \hich\af45\dbch\af31505\loch\f45 DynamicLanguageRuntime v.1.2.2 +\par }\pard \ltrpar\ql \li0\ri0\widctlpar\wrapdefault\faauto\rin0\lin0\itap0 {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \f4\fs22\cf24\insrsid5444290 \hich\af4\dbch\af31505\loch\f4 Iron Python, Dynamic Language Runtime +\par }{\field{\*\fldinst {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \f4\fs22\ul\cf25\insrsid5444290 \hich\af4\dbch\af31505\loch\f4 HYPERLINK "https://nam11.safelinks.protection.outlook.com/?url=http%3A%2F%2Fironpython.net%2F&data=04%7C01%7CJames.Conner%40autodesk.co +\hich\af4\dbch\af31505\loch\f4 +m%7Cdaecd65781944b855e7808d946251ff6%7C67bff79e7f914433a8e5c9252d2ddc1d%7C0%7C0%7C637617947520230026%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=imRCR5wnzORiO%2BHcoAs4qY%2FUsg2F3%2BvpQsquG4pLPbc% +\hich\af4\dbch\af31505\loch\f4 3\hich\af4\dbch\af31505\loch\f4 D&reserved=0" }{\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \f4\fs22\ul\cf25\insrsid5709539 {\*\datafield +00d0c9ea79f9bace118c8200aa004ba90b0200000003000000e0c9ea79f9bace118c8200aa004ba90b2a030000680074007400700073003a002f002f006e0061006d00310031002e0073006100660065006c0069006e006b0073002e00700072006f00740065006300740069006f006e002e006f00750074006c006f006f00 +6b002e0063006f006d002f003f00750072006c003d006800740074007000250033004100250032004600250032004600690072006f006e0070007900740068006f006e002e006e0065007400250032004600260064006100740061003d0030003400250037004300300031002500370043004a0061006d00650073002e0043 +006f006e006e00650072002500340030006100750074006f006400650073006b002e0063006f006d002500370043006400610065006300640036003500370038003100390034003400620038003500350065003700380030003800640039003400360032003500310066006600360025003700430036003700620066006600 +3700390065003700660039003100340034003300330061003800650035006300390032003500320064003200640064006300310064002500370043003000250037004300300025003700430036003300370036003100370039003400370035003200300032003300300030003200360025003700430055006e006b006e006f +0077006e002500370043005400570046007000620047005a0073006200330064003800650079004a00570049006a006f0069004d004300340077004c006a00410077004d004400410069004c0043004a00510049006a006f006900560032006c0075004d007a00490069004c0043004a004200540069004900360049006b00 +3100680061005700770069004c0043004a00580056004300490036004d006e00300025003300440025003700430031003000300030002600730064006100740061003d0069006d00520043005200350077006e007a004f00520069004f00250032004200480063006f00410073003400710059002500320046005500730067 +003200460033002500320042007600700051007300710075004700340070004c005000620063002500330044002600720065007300650072007600650064003d0030000000795881f43b1d7f48af2c825dc485276300000000a5ab0003}}}{\fldrslt {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 +\f4\fs22\ul\cf25\insrsid5444290 \hich\af4\dbch\af31505\loch\f4 http://ironpython.net/}}}\sectd \ltrsect\linex0\sectdefaultcl\sftnbj {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \f4\fs22\ul\cf25\insrsid5444290 +\par }{\field{\*\fldinst {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \f4\fs22\ul\cf25\insrsid5444290 \hich\af4\dbch\af31505\loch\f4 +HYPERLINK "https://nam11.safelinks.protection.outlook.com/?url=http%3A%2F%2Fopensource.org%2Flicenses%2Fapache2.0.php&data=04%7C01%7CJames.Conner%40autodesk.com%7Cdaecd65781944b855e7808d946251ff6%7C67bff79e7f914433a8\hich\af4\dbch\af31505\loch\f4 +e5c9252d2ddc1d%7C0%7C0%7C637617947520339551%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=GqzN3ywkegHn8Xwxmkje5HuJNO7iecwBGZU3LOoNIus%3D&reserved=0" }{\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 +\f4\fs22\ul\cf25\insrsid5709539 {\*\datafield +00d0c9ea79f9bace118c8200aa004ba90b0200000003000000e0c9ea79f9bace118c8200aa004ba90b4e030000680074007400700073003a002f002f006e0061006d00310031002e0073006100660065006c0069006e006b0073002e00700072006f00740065006300740069006f006e002e006f00750074006c006f006f00 +6b002e0063006f006d002f003f00750072006c003d0068007400740070002500330041002500320046002500320046006f00700065006e0073006f0075007200630065002e006f00720067002500320046006c006900630065006e0073006500730025003200460061007000610063006800650032002e0030002e00700068 +007000260064006100740061003d0030003400250037004300300031002500370043004a0061006d00650073002e0043006f006e006e00650072002500340030006100750074006f006400650073006b002e0063006f006d002500370043006400610065006300640036003500370038003100390034003400620038003500 +35006500370038003000380064003900340036003200350031006600660036002500370043003600370062006600660037003900650037006600390031003400340033003300610038006500350063003900320035003200640032006400640063003100640025003700430030002500370043003000250037004300360033 +00370036003100370039003400370035003200300033003300390035003500310025003700430055006e006b006e006f0077006e002500370043005400570046007000620047005a0073006200330064003800650079004a00570049006a006f0069004d004300340077004c006a00410077004d004400410069004c004300 +4a00510049006a006f006900560032006c0075004d007a00490069004c0043004a004200540069004900360049006b003100680061005700770069004c0043004a00580056004300490036004d006e00300025003300440025003700430031003000300030002600730064006100740061003d00470071007a004e00330079 +0077006b006500670048006e0038005800770078006d006b006a0065003500480075004a004e004f0037006900650063007700420047005a00550033004c004f006f004e004900750073002500330044002600720065007300650072007600650064003d0030000000795881f43b1d7f48af2c825dc485276300000000a5ab +0003}}}{\fldrslt {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \f4\fs22\ul\cf25\insrsid5444290 \hich\af4\dbch\af31505\loch\f4 http://opensource.org/licenses/apache2.0.php}}}\sectd \ltrsect\linex0\sectdefaultcl\sftnbj {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 +\f4\fs22\ul\cf25\insrsid5444290 +\par }{\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \f4\fs22\cf24\insrsid5444290 \hich\af4\dbch\af31505\loch\f4 C\hich\af4\dbch\af31505\loch\f4 \hich\f4 opyright \'a9\loch\f4 2018 Iron Python Community +\par +\par \hich\af4\dbch\af31505\loch\f4 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 }{\field{\*\fldinst {\rtlch\fcs1 \af4\afs22 +\ltrch\fcs0 \f4\fs22\insrsid5444290 \hich\af4\dbch\af31505\loch\f4 HYPERLINK http://www.apache.org/licenses/LICENSE\hich\af4\dbch\af31505\loch\f4 -2.0 }{\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \f4\fs22\insrsid5709539 {\*\datafield +00d0c9ea79f9bace118c8200aa004ba90b0200000003000000e0c9ea79f9bace118c8200aa004ba90b6e00000068007400740070003a002f002f007700770077002e006100700061006300680065002e006f00720067002f006c006900630065006e007300650073002f004c004900430045004e00530045002d0032002e00 +30000000795881f43b1d7f48af2c825dc485276300000000a5ab0003}}}{\fldrslt {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \f4\fs22\insrsid5444290 \hich\af4\dbch\af31505\loch\f4 http://www.apache.org/licenses/LICENSE-2.0}}}\sectd \ltrsect\linex0\sectdefaultcl\sftnbj { +\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \f4\fs22\cf24\insrsid5444290 \hich\af4\dbch\af31505\loch\f4 + 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\hich\af4\dbch\af31505\loch\f4 +. See the License for the specific language governing permissions and limitations under the License. +\par }{\rtlch\fcs1 \af40\afs18 \ltrch\fcs0 \f40\fs18\insrsid5444290 +\par }\pard \ltrpar\ql \li0\ri0\sl288\slmult1\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 {\rtlch\fcs1 \ab\af45\afs22 \ltrch\fcs0 \b\fs22\cf24\kerning1\insrsid5444290 \hich\af45\dbch\af31505\loch\f45 Python.Runtime.NETStandard v.3.7.0: +\par }\pard \ltrpar\ql \li0\ri0\widctlpar\wrapdefault\faauto\rin0\lin0\itap0 {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \f4\fs22\cf24\insrsid5444290 \hich\af4\dbch\af31505\loch\f4 Copyright (c) 2006-2021 the contributors of the Python.NET project +\par +\par \hich\af4\dbch\af31505\loch\f4 +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, m +\hich\af4\dbch\af31505\loch\f4 e\hich\af4\dbch\af31505\loch\f4 rge, 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: +\par +\par \hich\af4\dbch\af31505\loch\f4 The above copyright notice and this permission notice shall be included in all\hich\af4\dbch\af31505\loch\f4 copies or substantial portions of the Software. +\par +\par \hich\af4\dbch\af31505\loch\f4 THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO +\hich\af4\dbch\af31505\loch\f4 + 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. + +\par }{\rtlch\fcs1 \af40\afs18 \ltrch\fcs0 \f40\fs18\insrsid5444290 +\par }\pard \ltrpar\ql \li0\ri0\sl288\slmult1\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 {\rtlch\fcs1 \ab\af45\afs22 \ltrch\fcs0 \b\fs22\cf24\kerning1\insrsid5444290 \hich\af45\dbch\af31505\loch\f45 P\hich\af45\dbch\af31505\loch\f45 +ython.Included v.3.7.3.4 +\par }\pard \ltrpar\ql \li0\ri0\widctlpar\wrapdefault\faauto\rin0\lin0\itap0 {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \f4\fs22\cf24\insrsid5444290 \hich\af4\dbch\af31505\loch\f4 PSF LICENSE AGREEMENT FOR PYTHON 3.10.4 +\par +\par \hich\af4\dbch\af31505\loch\f4 1. This LICENSE AGREEMENT is between the Python Software Foundation ("PSF"), and the Individual or Organization ("Licensee") accessing and otherwise using Python 3.7.3.4 software in source o\hich\af4\dbch\af31505\loch\f4 +r binary form and its associated documentation. +\par +\par \hich\af4\dbch\af31505\loch\f4 2. Subject to the terms and conditions of this License Agreement, PSF hereby grants Licensee a nonexclusive, royalty-free, world-wide license to reproduce, analyze, test, perform and/or display publicly, pre +\hich\af4\dbch\af31505\loch\f4 \hich\f4 pare derivative works, distribute, and otherwise use Python 3.7.3.4 alone or in any derivative version, provided, however, that PSF's License Agreement and PSF's notice of copyright, i.e., "Copyright \'a9\loch\f4 + 2001-2022 Python Software Foundation; All Rights Rese\hich\af4\dbch\af31505\loch\f4 r\hich\af4\dbch\af31505\loch\f4 ved" are retained in Python 3.7.3.4 alone or in any derivative version prepared by Licensee. +\par +\par \hich\af4\dbch\af31505\loch\f4 3. In the event Licensee prepares a derivative work that is based on or incorporates Python 3.7.3.4 or any part thereof, and wants to make the derivative work ava\hich\af4\dbch\af31505\loch\f4 +ilable to others as provided herein, then Licensee hereby agrees to include in any such work a brief summary of the changes made to Python 3.7.3.4. +\par +\par \hich\af4\dbch\af31505\loch\f4 4. PSF is making Python 3.7.3.4 available to Licensee on an "AS IS" basis. PSF MAKES NO REPRESENTATIONS OR \hich\af4\dbch\af31505\loch\f4 +WARRANTIES, EXPRESS OR IMPLIED. BY WAY OFEXAMPLE, BUT NOT LIMITATION, PSF MAKES NO AND DISCLAIMS ANY REPRESENTATION OR WARRANTY OF MERCHANTABILITY OR FITNESS FOR ANY PARTICULAR PURPOSE OR THAT THE USE OF PYTHON 3.7.3.4 WILL NOT INFRINGE ANY THIRD PARTY R +\hich\af4\dbch\af31505\loch\f4 I\hich\af4\dbch\af31505\loch\f4 GHTS. +\par +\par \hich\af4\dbch\af31505\loch\f4 +5. PSF SHALL NOT BE LIABLE TO LICENSEE OR ANY OTHER USERS OF PYTHON 3.7.3.4 FOR ANY INCIDENTAL, SPECIAL, OR CONSEQUENTIAL DAMAGES OR LOSS AS A RESULT OF MODIFYING, DISTRIBUTING, OR OTHERWISE USING PYTHON 3.7.3.4, OR ANY DERIVATIVE THEREOF, EVEN IF A +\hich\af4\dbch\af31505\loch\f4 DVISED OF THE POSSIBILITY THEREOF. +\par +\par \hich\af4\dbch\af31505\loch\f4 6. This License Agreement will automatically terminate upon a material breach of its terms and conditions. +\par +\par \hich\af4\dbch\af31505\loch\f4 7. Nothing in this License Agreement shall be deemed to create any relationship of agency, partnership, or joint\hich\af4\dbch\af31505\loch\f4 + venture between PSF and Licensee. This License Agreement does not grant permission to use PSF trademarks or trade name in a trademark sense to endorse or promote products or services of Licensee, or any third party. +\par +\par \hich\af4\dbch\af31505\loch\f4 8. By copying, installing or otherwise\hich\af4\dbch\af31505\loch\f4 using Python 3.7.3.4, Licensee agrees to be bound by the terms and conditions of this License Agreement. +\par +\par }\pard \ltrpar\ql \li0\ri0\sl288\slmult1\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 {\rtlch\fcs1 \ab\af45\afs22 \ltrch\fcs0 \b\fs22\cf24\kerning1\insrsid5444290 \hich\af45\dbch\af31505\loch\f45 IPython (autoreload.py) v.7.24.1: +\par }\pard \ltrpar\ql \li0\ri0\widctlpar\wrapdefault\faauto\rin0\lin0\itap0 {\field{\*\fldinst {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \f4\fs22\ul\cf25\insrsid5444290 \hich\af4\dbch\af31505\loch\f4 +HYPERLINK "https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fipython%2Fipython%2Fblob%2Fmaster%2FIPython%2Fextensions%2Fautoreload.py&data=04%7C01%7CJames.Conner%40autodesk.com%7Cdaecd65781944b855e7808d946251ff6%7C67bff79e7f91 +\hich\af4\dbch\af31505\loch\f4 4\hich\af4\dbch\af31505\loch\f4 +433a8e5c9252d2ddc1d%7C0%7C0%7C637617947520359465%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=7AtWEHhH3h2E0eDlvyhqM0OyREJugNDsYai4S5egwXc%3D&reserved=0" }{\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 +\f4\fs22\ul\cf25\insrsid5709539 {\*\datafield +00d0c9ea79f9bace118c8200aa004ba90b0200000003000000e0c9ea79f9bace118c8200aa004ba90ba8030000680074007400700073003a002f002f006e0061006d00310031002e0073006100660065006c0069006e006b0073002e00700072006f00740065006300740069006f006e002e006f00750074006c006f006f00 +6b002e0063006f006d002f003f00750072006c003d00680074007400700073002500330041002500320046002500320046006700690074006800750062002e0063006f006d00250032004600690070007900740068006f006e00250032004600690070007900740068006f006e0025003200460062006c006f006200250032 +0046006d0061007300740065007200250032004600490050007900740068006f006e0025003200460065007800740065006e00730069006f006e0073002500320046006100750074006f00720065006c006f00610064002e0070007900260064006100740061003d0030003400250037004300300031002500370043004a00 +61006d00650073002e0043006f006e006e00650072002500340030006100750074006f006400650073006b002e0063006f006d00250037004300640061006500630064003600350037003800310039003400340062003800350035006500370038003000380064003900340036003200350031006600660036002500370043 +00360037006200660066003700390065003700660039003100340034003300330061003800650035006300390032003500320064003200640064006300310064002500370043003000250037004300300025003700430036003300370036003100370039003400370035003200300033003500390034003600350025003700 +430055006e006b006e006f0077006e002500370043005400570046007000620047005a0073006200330064003800650079004a00570049006a006f0069004d004300340077004c006a00410077004d004400410069004c0043004a00510049006a006f006900560032006c0075004d007a00490069004c0043004a00420054 +0069004900360049006b003100680061005700770069004c0043004a00580056004300490036004d006e00300025003300440025003700430031003000300030002600730064006100740061003d003700410074005700450048006800480033006800320045003000650044006c0076007900680071004d0030004f007900 +520045004a00750067004e0044007300590061006900340053003500650067007700580063002500330044002600720065007300650072007600650064003d0030000000795881f43b1d7f48af2c825dc485276300000000a5ab0003}}}{\fldrslt {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 +\f4\fs22\ul\cf25\insrsid5444290 \hich\af4\dbch\af31505\loch\f4 https://github.com/ipython/ipython/blob/mast\hich\af4\dbch\af31505\loch\f4 er/IPython/extensions/autoreload.py}}}\sectd \ltrsect\linex0\sectdefaultcl\sftnbj {\rtlch\fcs1 \af4\afs22 +\ltrch\fcs0 \f4\fs22\ul\cf25\insrsid5444290 +\par }{\field{\*\fldinst {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \f4\fs22\ul\cf25\insrsid5444290 \hich\af4\dbch\af31505\loch\f4 +HYPERLINK "https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fipython%2Fipython%2Fblob%2Fmaster%2FLICENSE&data=04%7C01%7CJames.Conner%40autodesk.com%7Cdaecd65781944b855e7808d946251ff6%7C67bff79e7f914433a8e5c9252d2ddc1d%7C0%7C0% +\hich\af4\dbch\af31505\loch\f4 7\hich\af4\dbch\af31505\loch\f4 C637617947520359465%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=Pilk0qSjYqpb4gwsh9CFaG42mk5wngBXOSykgiBj1EQ%3D&reserved=0" }{ +\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \f4\fs22\ul\cf25\insrsid5709539 {\*\datafield +00d0c9ea79f9bace118c8200aa004ba90b0200000003000000e0c9ea79f9bace118c8200aa004ba90b6e030000680074007400700073003a002f002f006e0061006d00310031002e0073006100660065006c0069006e006b0073002e00700072006f00740065006300740069006f006e002e006f00750074006c006f006f00 +6b002e0063006f006d002f003f00750072006c003d00680074007400700073002500330041002500320046002500320046006700690074006800750062002e0063006f006d00250032004600690070007900740068006f006e00250032004600690070007900740068006f006e0025003200460062006c006f006200250032 +0046006d00610073007400650072002500320046004c004900430045004e0053004500260064006100740061003d0030003400250037004300300031002500370043004a0061006d00650073002e0043006f006e006e00650072002500340030006100750074006f006400650073006b002e0063006f006d00250037004300 +64006100650063006400360035003700380031003900340034006200380035003500650037003800300038006400390034003600320035003100660066003600250037004300360037006200660066003700390065003700660039003100340034003300330061003800650035006300390032003500320064003200640064 +006300310064002500370043003000250037004300300025003700430036003300370036003100370039003400370035003200300033003500390034003600350025003700430055006e006b006e006f0077006e002500370043005400570046007000620047005a0073006200330064003800650079004a00570049006a00 +6f0069004d004300340077004c006a00410077004d004400410069004c0043004a00510049006a006f006900560032006c0075004d007a00490069004c0043004a004200540069004900360049006b003100680061005700770069004c0043004a00580056004300490036004d006e00300025003300440025003700430031 +003000300030002600730064006100740061003d00500069006c006b003000710053006a0059007100700062003400670077007300680039004300460061004700340032006d006b00350077006e006700420058004f00530079006b006700690042006a003100450051002500330044002600720065007300650072007600 +650064003d0030000000795881f43b1d7f48af2c825dc485276300000000a5ab0003}}}{\fldrslt {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \f4\fs22\ul\cf25\insrsid5444290 \hich\af4\dbch\af31505\loch\f4 https://github.com/ipython/ipython/blob/master/LICENSE}}}\sectd \ltrsect +\linex0\sectdefaultcl\sftnbj {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \f4\fs22\ul\cf25\insrsid5444290 +\par }{\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \f4\fs22\cf24\insrsid5444290 \hich\af4\dbch\af31505\loch\f4 BSD 3-Clause Li\hich\af4\dbch\af31505\loch\f4 cense +\par \hich\af4\dbch\af31505\loch\f4 - Copyright (c) 2008-Present, IPython Development Team +\par }{\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \f4\fs22\cf24\lang3082\langfe2057\langnp3082\insrsid5444290 \hich\af4\dbch\af31505\loch\f4 - Copyright (c) 2001-2007, Fernando Perez +\par }{\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \f4\fs22\cf24\insrsid5444290 \hich\af4\dbch\af31505\loch\f4 - Copyright (c) 2001, Janko Hauser +\par \hich\af4\dbch\af31505\loch\f4 - Copyright (c) 2001, Nathaniel Gray +\par \hich\af4\dbch\af31505\loch\f4 All rights\hich\af4\dbch\af31505\loch\f4 reserved. +\par +\par \hich\af4\dbch\af31505\loch\f4 Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: +\par +\par \hich\af4\dbch\af31505\loch\f4 * Redistributions of source code must retain the above copyright notice, this list of conditions and\hich\af4\dbch\af31505\loch\f4 the following disclaimer. +\par \hich\af4\dbch\af31505\loch\f4 * 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. +\par \hich\af4\dbch\af31505\loch\f4 * Neither the name of th\hich\af4\dbch\af31505\loch\f4 e copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. + +\par +\par \hich\af4\dbch\af31505\loch\f4 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRE\hich\af4\dbch\af31505\loch\f4 +SS 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 HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +\hich\af4\dbch\af31505\loch\f4 S\hich\af4\dbch\af31505\loch\f4 +PECIAL, 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 LI +\hich\af4\dbch\af31505\loch\f4 A\hich\af4\dbch\af31505\loch\f4 BILITY, 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. +\par }{\rtlch\fcs1 \af40\afs18 \ltrch\fcs0 \f40\fs18\insrsid5444290 +\par }\pard \ltrpar\ql \li0\ri0\sl288\slmult1\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 {\rtlch\fcs1 \ab\af45\afs22 \ltrch\fcs0 \b\fs22\cf24\kerning1\insrsid5444290 \hich\af45\dbch\af31505\loch\f45 Nunit v.2.6.3 +\par }\pard \ltrpar\ql \li0\ri0\widctlpar\wrapdefault\faauto\rin0\lin0\itap0 {\field{\*\fldinst {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \f4\fs22\ul\cf25\insrsid5444290 \hich\af4\dbch\af31505\loch\f4 +HYPERLINK "https://nam11.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwww.nunit.\hich\af4\dbch\af31505\loch\f4 +org%2F&data=04%7C01%7CJames.Conner%40autodesk.com%7Cdaecd65781944b855e7808d946251ff6%7C67bff79e7f914433a8e5c9252d2ddc1d%7C0%7C0%7C637617947520429148%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=BU +\hich\af4\dbch\af31505\loch\f4 f\hich\af4\dbch\af31505\loch\f4 Nk%2Flw%2BcIf69w2%2FUf0Rq%2FiDdxtlm4UOrklWu1jBco%3D&reserved=0" }{\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \f4\fs22\ul\cf25\insrsid5709539 {\*\datafield +00d0c9ea79f9bace118c8200aa004ba90b0200000003000000e0c9ea79f9bace118c8200aa004ba90b2c030000680074007400700073003a002f002f006e0061006d00310031002e0073006100660065006c0069006e006b0073002e00700072006f00740065006300740069006f006e002e006f00750074006c006f006f00 +6b002e0063006f006d002f003f00750072006c003d0068007400740070002500330041002500320046002500320046007700770077002e006e0075006e00690074002e006f0072006700250032004600260064006100740061003d0030003400250037004300300031002500370043004a0061006d00650073002e0043006f +006e006e00650072002500340030006100750074006f006400650073006b002e0063006f006d0025003700430064006100650063006400360035003700380031003900340034006200380035003500650037003800300038006400390034003600320035003100660066003600250037004300360037006200660066003700 +390065003700660039003100340034003300330061003800650035006300390032003500320064003200640064006300310064002500370043003000250037004300300025003700430036003300370036003100370039003400370035003200300034003200390031003400380025003700430055006e006b006e006f0077 +006e002500370043005400570046007000620047005a0073006200330064003800650079004a00570049006a006f0069004d004300340077004c006a00410077004d004400410069004c0043004a00510049006a006f006900560032006c0075004d007a00490069004c0043004a004200540069004900360049006b003100 +680061005700770069004c0043004a00580056004300490036004d006e00300025003300440025003700430031003000300030002600730064006100740061003d004200550066004e006b002500320046006c0077002500320042006300490066003600390077003200250032004600550066003000520071002500320046 +00690044006400780074006c006d00340055004f0072006b006c005700750031006a00420063006f002500330044002600720065007300650072007600650064003d0030000000795881f43b1d7f48af2c825dc485276300000000a5ab0003}}}{\fldrslt {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 +\f4\fs22\ul\cf25\insrsid5444290 \hich\af4\dbch\af31505\loch\f4 http://www.nunit.org/}}}\sectd \ltrsect\linex0\sectdefaultcl\sftnbj {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \f4\fs22\ul\cf25\insrsid5444290 +\par }{\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \f4\fs22\cf24\insrsid5444290 \hich\af4\dbch\af31505\loch\f4 \hich\f4 Copyright \'a9\loch\f4 2002-2013 Charlie Poole\line \hich\f4 Copyright \'a9\loch\f4 2002-2004 James W. Newkirk, Michael C. Two, Alexei A. Vorontsov +\line \hich\f4 Copyright \'a9\loch\f4 2000-2002 Philip A. Craig +\par +\par \hich\af4\dbch\af31505\loch\f4 This software is\hich\af4\dbch\af31505\loch\f4 provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software. +\par \hich\af4\dbch\af31505\loch\f4 Permission is granted to anyone to use this software for any purpose, including commercial applic\hich\af4\dbch\af31505\loch\f4 ations, and to alter it and redistribute it freely, subject to the following restrictions: + +\par +\par \hich\af4\dbch\af31505\loch\f4 1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknow\hich\af4\dbch\af31505\loch\f4 \hich\f4 +ledgment (see the following) in the product documentation is required. Portions Copyright \'a9\loch\f4 2002-2009 Charlie Poole or Copyright\~\hich\f4 \'a9\loch\f4 2002-2004 James W. Newkirk, Michael C. Two, Alexei A. Vorontsov or Copyright\~\hich\f4 +\'a9\loch\f4 2000-2002 Philip A. Craig\~ +\par \hich\af4\dbch\af31505\loch\f4 2. Altered source v\hich\af4\dbch\af31505\loch\f4 ersions must be plainly marked as such, and must not be misrepresented as being the original software.\~ +\par \hich\af4\dbch\af31505\loch\f4 3. This notice may not be removed or altered from any source distribution. +\par }\pard \ltrpar\ql \li720\ri0\widctlpar\wrapdefault\faauto\rin0\lin720\itap0 {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \f4\fs22\cf24\insrsid5444290 +\par }\pard\plain \ltrpar\s4\ql \li0\ri0\widctlpar\wrapdefault\faauto\outlinelevel3\rin0\lin0\itap0 \rtlch\fcs1 \af31507\afs24\alang1025 \ltrch\fcs0 \fs24\lang1033\langfe2057\loch\af45\hich\af45\dbch\af31505\cgrid\langnp1033\langfenp2057 {\rtlch\fcs1 +\af4\afs22 \ltrch\fcs0 \f4\fs22\cf24\insrsid5444290 \hich\af4\dbch\af31505\loch\f4 License Note +\par }\pard\plain \ltrpar\ql \li0\ri0\widctlpar\wrapdefault\faauto\rin0\lin0\itap0 \rtlch\fcs1 \af31507\afs24\alang1025 \ltrch\fcs0 \fs24\lang1033\langfe2057\loch\af45\hich\af45\dbch\af31505\cgrid\langnp1033\langfenp2057 {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 +\f4\fs22\cf24\insrsid5444290 \hich\af4\dbch\af31505\loch\f4 This license is based on\~}{\field{\*\fldinst {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \f4\fs22\cf24\insrsid5444290 \hich\af4\dbch\af31505\loch\f4 +HYPERLINK "http://www.opensource.org/licenses/zlib-license.html" }{\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \f4\fs22\cf24\insrsid5709539 {\*\datafield +00d0c9ea79f9bace118c8200aa004ba90b0200000003000000e0c9ea79f9bace118c8200aa004ba90b8200000068007400740070003a002f002f007700770077002e006f00700065006e0073006f0075007200630065002e006f00720067002f006c006900630065006e007300650073002f007a006c00690062002d006c00 +6900630065006e00730065002e00680074006d006c000000795881f43b1d7f48af2c825dc485276300000000a5ab0003}}}{\fldrslt {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \f4\fs22\ul\cf2\insrsid5444290 \hich\af4\dbch\af31505\loch\f4 the open source zlib/libpng license}}} +\sectd \ltrsect\linex0\sectdefaultcl\sftnbj {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \f4\fs22\cf24\insrsid5444290 \hich\af4\dbch\af31505\loch\f4 (}{\field{\*\fldinst {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \f4\fs22\insrsid5444290 \hich\af4\dbch\af31505\loch\f4 +HYPERLINK https://opensource.org/licenses/zlib-license.html }{\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \f4\fs22\insrsid5709539 {\*\datafield +00d0c9ea79f9bace118c8200aa004ba90b0200000003000000e0c9ea79f9bace118c8200aa004ba90b7c000000680074007400700073003a002f002f006f00700065006e0073006f0075007200630065002e006f00720067002f006c006900630065006e007300650073002f007a006c00690062002d006c00690063006500 +6e00730065002e00680074006d006c000000795881f43b1d7f48af2c825dc485276300000000a5ab0003}}}{\fldrslt {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \f4\fs22\insrsid5444290 \hich\af4\dbch\af31505\loch\f4 https://opensource.org/licenses/zlib-license.html}}}\sectd \ltrsect +\linex0\sectdefaultcl\sftnbj {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \f4\fs22\cf24\insrsid5444290 \hich\af4\dbch\af31505\loch\f4 ). The idea was to keep the license as \hich\af4\dbch\af31505\loch\f4 +simple as possible to encourage use of NUnit in free and commercial applications and libraries, but to keep the source code together and to give credit to the NUnit contributors for their efforts. While this license allows shipping NUnit in source and bin +\hich\af4\dbch\af31505\loch\f4 a\hich\af4\dbch\af31505\loch\f4 ry form, if shipping a NUnit variant is the sole purpose of your product, please\~}{\field{\*\fldinst {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \f4\fs22\cf24\insrsid5444290 +\hich\af4\dbch\af31505\loch\f4 HYPERLINK "mailto:cpoole@pooleconsulting.com" }{\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \f4\fs22\cf24\insrsid5709539 {\*\datafield +00d0c9ea79f9bace118c8200aa004ba90b0200000003000000e0c9ea79f9bace118c8200aa004ba90b5c0000006d00610069006c0074006f003a00630070006f006f006c006500400070006f006f006c00650063006f006e00730075006c00740069006e0067002e0063006f006d000000795881f43b1d7f48af2c825dc485 +276300000000a5ab0003}}}{\fldrslt {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \f4\fs22\ul\cf2\insrsid5444290 \hich\af4\dbch\af31505\loch\f4 let us know}}}\sectd \ltrsect\linex0\sectdefaultcl\sftnbj {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \f4\fs22\cf24\insrsid5444290 +\hich\af4\dbch\af31505\loch\f4 (}{\field{\*\fldinst {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \f4\fs22\cf24\insrsid5444290 \hich\af4\dbch\af31505\loch\f4 HYPERLINK "mailto:cpoole@pooleconsulting.com" }{\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 +\f4\fs22\cf24\insrsid5709539 {\*\datafield +00d0c9ea79f9bace118c8200aa004ba90b0200000003000000e0c9ea79f9bace118c8200aa004ba90b5c0000006d00610069006c0074006f003a00630070006f006f006c006500400070006f006f006c00650063006f006e00730075006c00740069006e0067002e0063006f006d000000795881f43b1d7f48af2c825dc485 +276300000000a5ab0003}}}{\fldrslt {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \f4\fs22\ul\cf2\insrsid5444290 \hich\af4\dbch\af31505\loch\f4 cpoole@pooleconsulting.com}}}\sectd \ltrsect\linex0\sectdefaultcl\sftnbj {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 +\f4\fs22\cf24\insrsid5444290 \hich\af4\dbch\af31505\loch\f4 ). +\par +\par }\pard \ltrpar\ql \li0\ri0\sl288\slmult1\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 {\rtlch\fcs1 \ab\af45\afs22 \ltrch\fcs0 \b\fs22\cf24\lang3082\langfe2057\kerning1\langnp3082\insrsid5444290 \hich\af45\dbch\af31505\loch\f45 Moq v.4.2.1: +\par }\pard \ltrpar\ql \li0\ri0\widctlpar\wrapdefault\faauto\rin0\lin0\itap0 {\field{\*\fldinst {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \f4\fs22\ul\cf25\lang3082\langfe2057\langnp3082\insrsid5444290 \hich\af4\dbch\af31505\loch\f4 +HYPERLINK "https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fmoq%2Fmoq4%2Fblob%2Fmaster%2FLicense.txt&data=04%7C01%7CJames.Conner%40autodesk.com%7Cdaecd65781944b855e7808d946251ff6%7C67bff79e7f914433a8e5c9252d2ddc1d%7C0%7C0%7C6 +\hich\af4\dbch\af31505\loch\f4 3\hich\af4\dbch\af31505\loch\f4 7617947520409253%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=H%2FwNgy%2FpMYIgd%2FFlP1IU1dbvTUCauizIJKCAU6ISQZI%3D&reserved=0" }{ +\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \f4\fs22\ul\cf25\lang3082\langfe2057\langnp3082\insrsid5709539 {\*\datafield +00d0c9ea79f9bace118c8200aa004ba90b0200000003000000e0c9ea79f9bace118c8200aa004ba90b74030000680074007400700073003a002f002f006e0061006d00310031002e0073006100660065006c0069006e006b0073002e00700072006f00740065006300740069006f006e002e006f00750074006c006f006f00 +6b002e0063006f006d002f003f00750072006c003d00680074007400700073002500330041002500320046002500320046006700690074006800750062002e0063006f006d002500320046006d006f0071002500320046006d006f007100340025003200460062006c006f0062002500320046006d00610073007400650072 +002500320046004c006900630065006e00730065002e00740078007400260064006100740061003d0030003400250037004300300031002500370043004a0061006d00650073002e0043006f006e006e00650072002500340030006100750074006f006400650073006b002e0063006f006d00250037004300640061006500 +63006400360035003700380031003900340034006200380035003500650037003800300038006400390034003600320035003100660066003600250037004300360037006200660066003700390065003700660039003100340034003300330061003800650035006300390032003500320064003200640064006300310064 +002500370043003000250037004300300025003700430036003300370036003100370039003400370035003200300034003000390032003500330025003700430055006e006b006e006f0077006e002500370043005400570046007000620047005a0073006200330064003800650079004a00570049006a006f0069004d00 +4300340077004c006a00410077004d004400410069004c0043004a00510049006a006f006900560032006c0075004d007a00490069004c0043004a004200540069004900360049006b003100680061005700770069004c0043004a00580056004300490036004d006e00300025003300440025003700430031003000300030 +002600730064006100740061003d00480025003200460077004e006700790025003200460070004d00590049006700640025003200460046006c00500031004900550031006400620076005400550043006100750069007a0049004a004b0043004100550036004900530051005a0049002500330044002600720065007300 +650072007600650064003d0030000000795881f43b1d7f48af2c825dc485276300000000a5ab0003}}}{\fldrslt {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \f4\fs22\ul\cf25\lang3082\langfe2057\langnp3082\insrsid5444290 \hich\af4\dbch\af31505\loch\f4 +https://github.com/moq/moq4/blob/master/License.txt/}}}\sectd \ltrsect\linex0\sectdefaultcl\sftnbj {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \f4\fs22\ul\cf25\lang3082\langfe2057\langnp3082\insrsid5444290 +\par }{\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \f4\fs22\cf24\insrsid5444290 \hich\af4\dbch\af31505\loch\f4 BSD 3-Clause L\hich\af4\dbch\af31505\loch\f4 icense +\par \hich\af4\dbch\af31505\loch\f4 Copyright (c) 2007, Clarius Consulting, Manas Technology Solutions, InSTEDD, and Contributors. All rights reserved. +\par +\par \hich\af4\dbch\af31505\loch\f4 Redistribution and use in source and binary forms, with or without +\par \hich\af4\dbch\af31505\loch\f4 modification, are permitted provided that the following condition\hich\af4\dbch\af31505\loch\f4 s are met: +\par +\par \hich\af4\dbch\af31505\loch\f4 * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. +\par \hich\af4\dbch\af31505\loch\f4 * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following\hich\af4\dbch\af31505\loch\f4 + disclaimer in the documentation and/or other materials provided with the distribution. +\par \hich\af4\dbch\af31505\loch\f4 * Neither the names of the copyright holders nor the names of its contributors may be used to endorse or promote products derived from this software without specific pr\hich\af4\dbch\af31505\loch\f4 ior written permission. + +\par +\par \hich\af4\dbch\af31505\loch\f4 +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 DI +\hich\af4\dbch\af31505\loch\f4 +SCLAIMED. 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 +\hich\af4\dbch\af31505\loch\f4 \hich\af4\dbch\af31505\loch\f4 +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 +\hich\af4\dbch\af31505\loch\f4 S\hich\af4\dbch\af31505\loch\f4 UCH DAMAGE. +\par }{\rtlch\fcs1 \af40\afs18 \ltrch\fcs0 \f40\fs18\insrsid5444290 +\par }\pard \ltrpar\ql \li0\ri0\sl288\slmult1\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 {\rtlch\fcs1 \ab\af45\afs22 \ltrch\fcs0 \b\fs22\cf24\lang3082\langfe2057\kerning1\langnp3082\insrsid5444290 \hich\af45\dbch\af31505\loch\f45 Libiconv v.1.14.0.1: + +\par }\pard \ltrpar\ql \li0\ri0\widctlpar\wrapdefault\faauto\rin0\lin0\itap0 {\field{\*\fldinst {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \f4\fs22\ul\cf25\lang3082\langfe2057\langnp3082\insrsid5444290 \hich\af4\dbch\af31505\loch\f4 +HYPERLINK "https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwww.gnu.org%2Fsoftware%2Flibiconv%2F&data=04%7C01%7CJames.Conner%40autodesk.com%7Cdaecd65781944b855e7808d946251ff6%7C67bff79e7f914433a8e5c9252d2d\hich\af4\dbch\af31505\loch\f4 +dc1d%7C0%7C0%7C637617947520369420%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=fyvQ8axd0727ARcscr232iqeW1sGK6FTq%2FP7s1ZtC6s%3D&reserved=0" }{\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 +\f4\fs22\ul\cf25\lang3082\langfe2057\langnp3082\insrsid5709539 {\*\datafield +00d0c9ea79f9bace118c8200aa004ba90b0200000003000000e0c9ea79f9bace118c8200aa004ba90b4a030000680074007400700073003a002f002f006e0061006d00310031002e0073006100660065006c0069006e006b0073002e00700072006f00740065006300740069006f006e002e006f00750074006c006f006f00 +6b002e0063006f006d002f003f00750072006c003d00680074007400700073002500330041002500320046002500320046007700770077002e0067006e0075002e006f007200670025003200460073006f006600740077006100720065002500320046006c0069006200690063006f006e0076002500320046002600640061 +00740061003d0030003400250037004300300031002500370043004a0061006d00650073002e0043006f006e006e00650072002500340030006100750074006f006400650073006b002e0063006f006d0025003700430064006100650063006400360035003700380031003900340034006200380035003500650037003800 +30003800640039003400360032003500310066006600360025003700430036003700620066006600370039006500370066003900310034003400330033006100380065003500630039003200350032006400320064006400630031006400250037004300300025003700430030002500370043003600330037003600310037 +0039003400370035003200300033003600390034003200300025003700430055006e006b006e006f0077006e002500370043005400570046007000620047005a0073006200330064003800650079004a00570049006a006f0069004d004300340077004c006a00410077004d004400410069004c0043004a00510049006a00 +6f006900560032006c0075004d007a00490069004c0043004a004200540069004900360049006b003100680061005700770069004c0043004a00580056004300490036004d006e00300025003300440025003700430031003000300030002600730064006100740061003d0066007900760051003800610078006400300037 +003200370041005200630073006300720032003300320069007100650057003100730047004b00360046005400710025003200460050003700730031005a0074004300360073002500330044002600720065007300650072007600650064003d0030000000795881f43b1d7f48af2c825dc485276300000000a5ab0003}} +}{\fldrslt {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \f4\fs22\ul\cf25\lang3082\langfe2057\langnp3082\insrsid5444290 \hich\af4\dbch\af31505\loch\f4 https://www.gnu.org/software/libiconv/}}}\sectd \ltrsect\linex0\sectdefaultcl\sftnbj {\rtlch\fcs1 \af4\afs22 +\ltrch\fcs0 \f4\fs22\ul\cf25\lang3082\langfe2057\langnp3082\insrsid5444290 +\par }{\field{\*\fldinst {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \f4\fs22\ul\cf25\lang3082\langfe2057\langnp3082\insrsid5444290 \hich\af4\dbch\af31505\loch\f4 HYPERLINK "http\hich\af4\dbch\af31505\loch\f4 +s://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwww.gnu.org%2Fsoftware%2Fgettext%2Fmanual%2Fhtml_node%2FGNU-LGPL.html%23GNU-LGPL&data=04%7C01%7CJames.Conner%40autodesk.com%7Cdaecd65781944b855e7808d946251ff6%7C67bff79e7f914433a8e5c9252d2ddc1d +\hich\af4\dbch\af31505\loch\f4 %\hich\af4\dbch\af31505\loch\f4 +7C0%7C0%7C637617947520369420%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=NZT9tNyZbyPw1WOLz%2BE6ShwxQDWHBJ9uLSyHhKPHWHk%3D&reserved=0" }{\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 +\f4\fs22\ul\cf25\lang3082\langfe2057\langnp3082\insrsid5709539 {\*\datafield +00d0c9ea79f9bace118c8200aa004ba90b0200000003000000e0c9ea79f9bace118c8200aa004ba90ba2030000680074007400700073003a002f002f006e0061006d00310031002e0073006100660065006c0069006e006b0073002e00700072006f00740065006300740069006f006e002e006f00750074006c006f006f00 +6b002e0063006f006d002f003f00750072006c003d00680074007400700073002500330041002500320046002500320046007700770077002e0067006e0075002e006f007200670025003200460073006f0066007400770061007200650025003200460067006500740074006500780074002500320046006d0061006e0075 +0061006c00250032004600680074006d006c005f006e006f006400650025003200460047004e0055002d004c00470050004c002e00680074006d006c0025003200330047004e0055002d004c00470050004c00260064006100740061003d0030003400250037004300300031002500370043004a0061006d00650073002e00 +43006f006e006e00650072002500340030006100750074006f006400650073006b002e0063006f006d0025003700430064006100650063006400360035003700380031003900340034006200380035003500650037003800300038006400390034003600320035003100660066003600250037004300360037006200660066 +003700390065003700660039003100340034003300330061003800650035006300390032003500320064003200640064006300310064002500370043003000250037004300300025003700430036003300370036003100370039003400370035003200300033003600390034003200300025003700430055006e006b006e00 +6f0077006e002500370043005400570046007000620047005a0073006200330064003800650079004a00570049006a006f0069004d004300340077004c006a00410077004d004400410069004c0043004a00510049006a006f006900560032006c0075004d007a00490069004c0043004a004200540069004900360049006b +003100680061005700770069004c0043004a00580056004300490036004d006e00300025003300440025003700430031003000300030002600730064006100740061003d004e005a005400390074004e0079005a006200790050007700310057004f004c007a00250032004200450036005300680077007800510044005700 +480042004a00390075004c0053007900480068004b0050004800570048006b002500330044002600720065007300650072007600650064003d0030000000795881f43b1d7f48af2c825dc485276300000000a5ab0003}}}{\fldrslt {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 +\f4\fs22\ul\cf25\lang3082\langfe2057\langnp3082\insrsid5444290 \hich\af4\dbch\af31505\loch\f4 https://www.gnu.org/software/gettext/manual/html_node/GNU-LGPL\hich\af4\dbch\af31505\loch\f4 .html#GNU-LGPL}}}\sectd \ltrsect\linex0\sectdefaultcl\sftnbj { +\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \f4\fs22\ul\cf25\lang3082\langfe2057\langnp3082\insrsid5444290 +\par }{\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \f4\fs22\cf24\insrsid5444290 \loch\af4\dbch\af31505\hich\f4 \'a9\loch\f4 1998, 2013 Free Software Foundation, Inc. +\par +\par \hich\af4\dbch\af31505\loch\f4 This Autodesk software contains libiconv v. 1.14.0.1. libiconv is licensed under the GNU Lesser General Public License v.2.1, which can be found at }{\field{\*\fldinst {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 +\f4\fs22\insrsid5444290 \hich\af4\dbch\af31505\loch\f4 HYPERLINK http://www.gnu.org/licenses/oldl\hich\af4\dbch\af31505\loch\f4 icenses/lgpl-2.1.txt }{\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \f4\fs22\insrsid5709539 {\*\datafield +00d0c9ea79f9bace118c8200aa004ba90b0200000003000000e0c9ea79f9bace118c8200aa004ba90b8200000068007400740070003a002f002f007700770077002e0067006e0075002e006f00720067002f006c006900630065006e007300650073002f006f006c0064006c006900630065006e007300650073002f006c00 +670070006c002d0032002e0031002e007400780074000000795881f43b1d7f48af2c825dc485276300000000a5ab0003}}}{\fldrslt {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \f4\fs22\insrsid5444290 \hich\af4\dbch\af31505\loch\f4 http://www.gnu.org/licenses/oldlicenses/lgpl-2.1.txt}}} +\sectd \ltrsect\linex0\sectdefaultcl\sftnbj {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \f4\fs22\cf24\insrsid5444290 \hich\af4\dbch\af31505\loch\f4 +. A text copy of this license is included on the media or with the download of this Autodesk software. You may obtain a copy of the source code for libiconv from }{\field{\*\fldinst {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \f4\fs22\ul\cf25\insrsid5444290 +\hich\af4\dbch\af31505\loch\f4 HYPERLINK "http:/\hich\af4\dbch\af31505\loch\f4 /www.autodesk.com/lgplsource" }{\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \f4\fs22\ul\cf25\insrsid5709539 {\*\datafield +00d0c9ea79f9bace118c8200aa004ba90b0200000003000000e0c9ea79f9bace118c8200aa004ba90b5e00000068007400740070003a002f002f007700770077002e006100750074006f006400650073006b002e0063006f006d002f006c00670070006c0073006f0075007200630065000000795881f43b1d7f48af2c825d +c485276300000000a5ab0003}}}{\fldrslt {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \f4\fs22\ul\cf25\insrsid5444290 \hich\af4\dbch\af31505\loch\f4 www.autodesk.com/lgplsource}}}\sectd \ltrsect\linex0\sectdefaultcl\sftnbj {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 +\f4\fs22\cf24\insrsid5444290 \hich\af4\dbch\af31505\loch\f4 or by sending a written request to: +\par +\par \hich\af4\dbch\af31505\loch\f4 Autodesk, Inc. +\par \hich\af4\dbch\af31505\loch\f4 Attention: General Counsel +\par \hich\af4\dbch\af31505\loch\f4 Legal Department +\par \hich\af4\dbch\af31505\loch\f4 111 McInnis Parkway +\par \hich\af4\dbch\af31505\loch\f4 San Rafael, CA 94903 +\par \hich\af4\dbch\af31505\loch\f4 Your written request must: +\par +\par \hich\af4\dbch\af31505\loch\f4 +Contain a self-addressed CD/DVD mailer (or envelope sufficiently large to hold a DVD) with postage sufficient to cover the amount of the current U.S. Post Office First Class postage rate for CD/DVD mailers (or the envelope you have chosen) weighing 5 oun +\hich\af4\dbch\af31505\loch\f4 c\hich\af4\dbch\af31505\loch\f4 es from San Rafael, California USA to your indicated address; and Identify: +\par +\par \hich\af4\dbch\af31505\loch\f4 This Autodesk software name and release number; That you are requesting the source code for libiconvv .1.14.0.1; and The above URL (}{\field{\*\fldinst {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \f4\fs22\ul\cf25\insrsid5444290 +\hich\af4\dbch\af31505\loch\f4 HYPERLINK "http://www.autodesk.com/lgplsour\hich\af4\dbch\af31505\loch\f4 ce" }{\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \f4\fs22\ul\cf25\insrsid5709539 {\*\datafield +00d0c9ea79f9bace118c8200aa004ba90b0200000003000000e0c9ea79f9bace118c8200aa004ba90b5e00000068007400740070003a002f002f007700770077002e006100750074006f006400650073006b002e0063006f006d002f006c00670070006c0073006f0075007200630065000000795881f43b1d7f48af2c825d +c485276300000000a5ab0003}}}{\fldrslt {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \f4\fs22\ul\cf25\insrsid5444290 \hich\af4\dbch\af31505\loch\f4 www.autodesk.com/lgplsource}}}\sectd \ltrsect\linex0\sectdefaultcl\sftnbj {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 +\f4\fs22\cf24\insrsid5444290 \hich\af4\dbch\af31505\loch\f4 ) so that Autodesk may properly respond to your request. The offer to receive this libiconv source code via the above URL (}{\field{\*\fldinst {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 +\f4\fs22\ul\cf25\insrsid5444290 \hich\af4\dbch\af31505\loch\f4 HYPERLINK "http://www.autodesk.com/lgplsource" }{\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \f4\fs22\ul\cf25\insrsid5709539 {\*\datafield +00d0c9ea79f9bace118c8200aa004ba90b0200000003000000e0c9ea79f9bace118c8200aa004ba90b5e00000068007400740070003a002f002f007700770077002e006100750074006f006400650073006b002e0063006f006d002f006c00670070006c0073006f0075007200630065000000795881f43b1d7f48af2c825d +c485276300000000a5ab0003}}}{\fldrslt {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \f4\fs22\ul\cf25\insrsid5444290 \hich\af4\dbch\af31505\loch\f4 www.autodesk.com/lgplsource}}}\sectd \ltrsect\linex0\sectdefaultcl\sftnbj {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 +\f4\fs22\cf24\insrsid5444290 \hich\af4\dbch\af31505\loch\f4 ) or by written reque\hich\af4\dbch\af31505\loch\f4 +st to Autodesk is valid for a period of three (3) years from the date you purchased your license to this Autodesk software. You may modify, debug and relink libiconv to this Autodesk software as provided under the terms of the GNU Lesser General Public +\hich\af4\dbch\af31505\loch\f4 L\hich\af4\dbch\af31505\loch\f4 icense v.2.1. +\par }{\rtlch\fcs1 \af40\afs18 \ltrch\fcs0 \f40\fs18\insrsid5444290 +\par }\pard \ltrpar\ql \li0\ri0\sl288\slmult1\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 {\rtlch\fcs1 \ab\af45\afs22 \ltrch\fcs0 \b\fs22\cf24\kerning1\insrsid5444290 \hich\af45\dbch\af31505\loch\f45 GNU gettext (libintl) v.0.19.8.3: +\par }\pard \ltrpar\ql \li0\ri0\widctlpar\wrapdefault\faauto\rin0\lin0\itap0 {\field{\*\fldinst {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \f4\fs22\ul\cf25\insrsid5444290 \hich\af4\dbch\af31505\loch\f4 +HYPERLINK "https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwww.gnu.org%2Fsoftware%2Fgettext%2F&data=04%7C01%7CJames.Conner%40autodesk.com%7Cdaecd65781944b855e7808d946251ff6%7C67bff79e7f9144\hich\af4\dbch\af31505\loch\f4 +33a8e5c9252d2ddc1d%7C0%7C0%7C637617947520200164%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=Nf21XpKiL0wk%2Fv5o95n6NHU9yBTsVWmKLfq1AJGQ1bM%3D&reserved=0" }{\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 +\f4\fs22\ul\cf25\insrsid5709539 {\*\datafield +00d0c9ea79f9bace118c8200aa004ba90b0200000003000000e0c9ea79f9bace118c8200aa004ba90b48030000680074007400700073003a002f002f006e0061006d00310031002e0073006100660065006c0069006e006b0073002e00700072006f00740065006300740069006f006e002e006f00750074006c006f006f00 +6b002e0063006f006d002f003f00750072006c003d00680074007400700073002500330041002500320046002500320046007700770077002e0067006e0075002e006f007200670025003200460073006f00660074007700610072006500250032004600670065007400740065007800740025003200460026006400610074 +0061003d0030003400250037004300300031002500370043004a0061006d00650073002e0043006f006e006e00650072002500340030006100750074006f006400650073006b002e0063006f006d00250037004300640061006500630064003600350037003800310039003400340062003800350035006500370038003000 +38006400390034003600320035003100660066003600250037004300360037006200660066003700390065003700660039003100340034003300330061003800650035006300390032003500320064003200640064006300310064002500370043003000250037004300300025003700430036003300370036003100370039 +003400370035003200300032003000300031003600340025003700430055006e006b006e006f0077006e002500370043005400570046007000620047005a0073006200330064003800650079004a00570049006a006f0069004d004300340077004c006a00410077004d004400410069004c0043004a00510049006a006f00 +6900560032006c0075004d007a00490069004c0043004a004200540069004900360049006b003100680061005700770069004c0043004a00580056004300490036004d006e00300025003300440025003700430031003000300030002600730064006100740061003d004e00660032003100580070004b0069004c00300077 +006b00250032004600760035006f00390035006e0036004e004800550039007900420054007300560057006d004b004c0066007100310041004a0047005100310062004d002500330044002600720065007300650072007600650064003d0030000000795881f43b1d7f48af2c825dc485276300000000a5ab0003}} +}{\fldrslt {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \f4\fs22\ul\cf25\insrsid5444290 \hich\af4\dbch\af31505\loch\f4 https://www.gnu.org/software/gettext/}}}\sectd \ltrsect\linex0\sectdefaultcl\sftnbj {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 +\f4\fs22\ul\cf25\insrsid5444290 +\par }{\field{\*\fldinst {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \f4\fs22\ul\cf25\insrsid5444290 \hich\af4\dbch\af31505\loch\f4 HY\hich\af4\dbch\af31505\loch\f4 +PERLINK "https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwww.gnu.org%2Fsoftware%2Fgettext%2Fmanual%2Fhtml_node%2FGNU-LGPL.html%23GNU-LGPL&data=04%7C01%7CJames.Conner%40autodesk.com%7Cdaecd65781944b855e7808d946251ff6%7C67bff79e7f914433a8e +\hich\af4\dbch\af31505\loch\f4 5\hich\af4\dbch\af31505\loch\f4 +c9252d2ddc1d%7C0%7C0%7C637617947520210113%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=fm4crd4P%2By6SL%2F0glLKwxCwV9NjLZs7f2LAoNHfi2QE%3D&reserved=0" }{\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 +\f4\fs22\ul\cf25\insrsid5709539 {\*\datafield +00d0c9ea79f9bace118c8200aa004ba90b0200000003000000e0c9ea79f9bace118c8200aa004ba90ba6030000680074007400700073003a002f002f006e0061006d00310031002e0073006100660065006c0069006e006b0073002e00700072006f00740065006300740069006f006e002e006f00750074006c006f006f00 +6b002e0063006f006d002f003f00750072006c003d00680074007400700073002500330041002500320046002500320046007700770077002e0067006e0075002e006f007200670025003200460073006f0066007400770061007200650025003200460067006500740074006500780074002500320046006d0061006e0075 +0061006c00250032004600680074006d006c005f006e006f006400650025003200460047004e0055002d004c00470050004c002e00680074006d006c0025003200330047004e0055002d004c00470050004c00260064006100740061003d0030003400250037004300300031002500370043004a0061006d00650073002e00 +43006f006e006e00650072002500340030006100750074006f006400650073006b002e0063006f006d0025003700430064006100650063006400360035003700380031003900340034006200380035003500650037003800300038006400390034003600320035003100660066003600250037004300360037006200660066 +003700390065003700660039003100340034003300330061003800650035006300390032003500320064003200640064006300310064002500370043003000250037004300300025003700430036003300370036003100370039003400370035003200300032003100300031003100330025003700430055006e006b006e00 +6f0077006e002500370043005400570046007000620047005a0073006200330064003800650079004a00570049006a006f0069004d004300340077004c006a00410077004d004400410069004c0043004a00510049006a006f006900560032006c0075004d007a00490069004c0043004a004200540069004900360049006b +003100680061005700770069004c0043004a00580056004300490036004d006e00300025003300440025003700430031003000300030002600730064006100740061003d0066006d003400630072006400340050002500320042007900360053004c00250032004600300067006c004c004b00770078004300770056003900 +4e006a004c005a0073003700660032004c0041006f004e004800660069003200510045002500330044002600720065007300650072007600650064003d0030000000795881f43b1d7f48af2c825dc485276300000000a5ab0003}}}{\fldrslt {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 +\f4\fs22\ul\cf25\insrsid5444290 \hich\af4\dbch\af31505\loch\f4 https://www.gnu.org/software/gettext/manual/htm\hich\af4\dbch\af31505\loch\f4 l_node/GNU-LGPL.html#GNU-LGPL}}}\sectd \ltrsect\linex0\sectdefaultcl\sftnbj {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 +\f4\fs22\ul\cf25\insrsid5444290 +\par }{\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \f4\fs22\cf24\insrsid5444290 \loch\af4\dbch\af31505\hich\f4 \'a9\loch\f4 \hich\f4 Copyright \'a9\loch\f4 1991, 1999 Free Software Foundation, Inc. +\par +\par \hich\af4\dbch\af31505\loch\f4 This Autodesk software contains libintl v.0.19.8.3. libintl is licensed under the GNU Lesser General Public License v.2.1 , which can be found at }{\field{\*\fldinst {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 +\f4\fs22\insrsid5444290 \hich\af4\dbch\af31505\loch\f4 HYPERLINK http://www.gnu.org/licenses/oldlicenses/lgpl-2.1.txt }{\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \f4\fs22\insrsid5709539 {\*\datafield +00d0c9ea79f9bace118c8200aa004ba90b0200000003000000e0c9ea79f9bace118c8200aa004ba90b8200000068007400740070003a002f002f007700770077002e0067006e0075002e006f00720067002f006c006900630065006e007300650073002f006f006c0064006c006900630065006e007300650073002f006c00 +670070006c002d0032002e0031002e007400780074000000795881f43b1d7f48af2c825dc485276300000000a5ab0003}}}{\fldrslt {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \f4\fs22\insrsid5444290 \hich\af4\dbch\af31505\loch\f4 http://www.gnu.org/licenses/oldlicenses/lgpl-2.1.txt}}} +\sectd \ltrsect\linex0\sectdefaultcl\sftnbj {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \f4\fs22\ul\cf25\insrsid5444290 \hich\af4\dbch\af31505\loch\f4 . }{\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \f4\fs22\cf24\insrsid5444290 \hich\af4\dbch\af31505\loch\f4 +A text copy of this license is included on the media or with the download of this Autodesk software. You may obtain a copy of the sourc\hich\af4\dbch\af31505\loch\f4 e code for libintl v.0.19.8.3 from }{\field{\*\fldinst {\rtlch\fcs1 \af4\afs22 +\ltrch\fcs0 \f4\fs22\ul\cf25\insrsid5444290 \hich\af4\dbch\af31505\loch\f4 HYPERLINK "http://www.autodesk.com/lgplsource" }{\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \f4\fs22\ul\cf25\insrsid5709539 {\*\datafield +00d0c9ea79f9bace118c8200aa004ba90b0200000003000000e0c9ea79f9bace118c8200aa004ba90b5e00000068007400740070003a002f002f007700770077002e006100750074006f006400650073006b002e0063006f006d002f006c00670070006c0073006f0075007200630065000000795881f43b1d7f48af2c825d +c485276300000000a5ab0003}}}{\fldrslt {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \f4\fs22\ul\cf25\insrsid5444290 \hich\af4\dbch\af31505\loch\f4 www.autodesk.com/lgplsource}}}\sectd \ltrsect\linex0\sectdefaultcl\sftnbj {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 +\f4\fs22\cf24\insrsid5444290 \hich\af4\dbch\af31505\loch\f4 or by sending a written request to: +\par +\par \hich\af4\dbch\af31505\loch\f4 Autodesk, Inc. +\par \hich\af4\dbch\af31505\loch\f4 Attention: General Counsel +\par \hich\af4\dbch\af31505\loch\f4 Legal Department +\par \hich\af4\dbch\af31505\loch\f4 111 McInnis Parkway +\par \hich\af4\dbch\af31505\loch\f4 San Rafael, CA 94903 +\par +\par \hich\af4\dbch\af31505\loch\f4 Yo\hich\af4\dbch\af31505\loch\f4 ur written request must: +\par \hich\af4\dbch\af31505\loch\f4 +1. Contain a self-addressed CD/DVD mailer (or envelope sufficiently large to hold a DVD) with postage sufficient to cover the amount of the current U.S. Post Office First Class postage rate for CD/DVD mailers (or the envelope you h +\hich\af4\dbch\af31505\loch\f4 ave chosen) weighing 5 ounces from San Rafael, California USA to your indicated address; and +\par \hich\af4\dbch\af31505\loch\f4 2. Identify: +\par \hich\af4\dbch\af31505\loch\f4 a. This Autodesk software name and release number; +\par \hich\af4\dbch\af31505\loch\f4 b. That you are requesting the source code for libintl v.0.19.8.3; and +\par \hich\af4\dbch\af31505\loch\f4 c. The above URL (}{\field{\*\fldinst {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \f4\fs22\cf24\insrsid5444290 \hich\af4\dbch\af31505\loch\f4 HYPERLIN\hich\af4\dbch\af31505\loch\f4 K www.autodesk.com/lgplsource }{\rtlch\fcs1 +\af4\afs22 \ltrch\fcs0 \f4\fs22\cf24\insrsid5709539 {\*\datafield +00d0c9ea79f9bace118c8200aa004ba90b0200000001000000e0c9ea79f9bace118c8200aa004ba90b500000007700770077002e006100750074006f006400650073006b002e0063006f006d002f006c00670070006c0073006f0075007200630065000000795881f43b1d7f48af2c825dc485276300000000a5ab0003}} +}{\fldrslt {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \f4\fs22\cf24\insrsid5444290 \hich\af4\dbch\af31505\loch\f4 www.autodesk.com/lgplsource}}}\sectd \ltrsect\linex0\sectdefaultcl\sftnbj {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \f4\fs22\cf24\insrsid5444290 +\hich\af4\dbch\af31505\loch\f4 ) +\par \hich\af4\dbch\af31505\loch\f4 so that Autodesk may properly respond to your request. The offer to receive this libintl source code via the above URL (}{\field{\*\fldinst {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \f4\fs22\cf24\insrsid5444290 +\hich\af4\dbch\af31505\loch\f4 HYPERLINK www.autodesk.com/lgplsource }{\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \f4\fs22\cf24\insrsid5709539 {\*\datafield +00d0c9ea79f9bace118c8200aa004ba90b0200000001000000e0c9ea79f9bace118c8200aa004ba90b500000007700770077002e006100750074006f006400650073006b002e0063006f006d002f006c00670070006c0073006f0075007200630065000000795881f43b1d7f48af2c825dc485276300000000a5ab0003}} +}{\fldrslt {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \f4\fs22\cf24\insrsid5444290 \hich\af4\dbch\af31505\loch\f4 www.autodesk.com/lgplsource}}}\sectd \ltrsect\linex0\sectdefaultcl\sftnbj {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \f4\fs22\cf24\insrsid5444290 +\hich\af4\dbch\af31505\loch\f4 ) or \hich\af4\dbch\af31505\loch\f4 by written request to Autodesk is valid for a period of three (3) years from the date you purchased your license to this Autodesk software. +\par \hich\af4\dbch\af31505\loch\f4 You may modify, debug and relink libintl to this Autodesk software as provided under the terms of the GNU Lesser Ge\hich\af4\dbch\af31505\loch\f4 neral Public License v.2.1. +\par }{\rtlch\fcs1 \af40\afs18 \ltrch\fcs0 \f40\fs18\insrsid5444290 +\par }\pard \ltrpar\ql \li0\ri0\sl288\slmult1\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 {\rtlch\fcs1 \ab\af45\afs22 \ltrch\fcs0 \b\fs22\cf24\kerning1\insrsid5444290 \hich\af45\dbch\af31505\loch\f45 DynamoServices: +\par }\pard \ltrpar\ql \li0\ri0\widctlpar\wrapdefault\faauto\rin0\lin0\itap0 {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \f4\fs22\cf24\insrsid5444290 \hich\af4\dbch\af31505\loch\f4 \hich\f4 Copyright \'a9\loch\f4 Autodesk, Inc. +\par +\par \hich\af4\dbch\af31505\loch\f4 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 }{\field{\*\fldinst {\rtlch\fcs1 \af4\afs22 +\ltrch\fcs0 \f4\fs22\insrsid5444290 \hich\af4\dbch\af31505\loch\f4 HYPERLINK http://www.apache.org/licenses/LICENSE-2.0 }{\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \f4\fs22\insrsid5709539 {\*\datafield +00d0c9ea79f9bace118c8200aa004ba90b0200000003000000e0c9ea79f9bace118c8200aa004ba90b6e00000068007400740070003a002f002f007700770077002e006100700061006300680065002e006f00720067002f006c006900630065006e007300650073002f004c004900430045004e00530045002d0032002e00 +30000000795881f43b1d7f48af2c825dc485276300000000a5ab0003}}}{\fldrslt {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \f4\fs22\insrsid5444290 \hich\af4\dbch\af31505\loch\f4 http://www.apache.org/licenses/LIC\hich\af4\dbch\af31505\loch\f4 ENSE-2.0}}}\sectd \ltrsect +\linex0\sectdefaultcl\sftnbj {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \f4\fs22\ul\cf25\insrsid5444290 \hich\af4\dbch\af31505\loch\f4 }{\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \f4\fs22\cf24\insrsid5444290 \hich\af4\dbch\af31505\loch\f4 +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 lang +\hich\af4\dbch\af31505\loch\f4 uage governing permissions and limitations under the License. +\par }{\rtlch\fcs1 \af40\afs18 \ltrch\fcs0 \f40\fs18\insrsid5444290 +\par +\par }\pard \ltrpar\ql \li0\ri0\sl288\slmult1\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 {\rtlch\fcs1 \ab\af45\afs22 \ltrch\fcs0 \b\fs22\cf24\kerning1\insrsid5444290 \hich\af45\dbch\af31505\loch\f45 CSharpAnalytics v.1.2.1: +\par }\pard \ltrpar\ql \li0\ri0\widctlpar\wrapdefault\faauto\rin0\lin0\itap0 {\field{\*\fldinst {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \f4\fs22\ul\cf25\insrsid5444290 \hich\af4\dbch\af31505\loch\f4 +HYPERLINK "https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2FAttackPattern%2FCSharpAnalytics&data=04%7C01%7CJames.Conner%40autodesk.com%7C\hich\af4\dbch\af31505\loch\f4 +daecd65781944b855e7808d946251ff6%7C67bff79e7f914433a8e5c9252d2ddc1d%7C0%7C0%7C637617947520150383%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=x9xD7ZirRSi5GD0klfE4hyScn%2BsSPb8TJao9MYbNV%2Fg%3D&res +\hich\af4\dbch\af31505\loch\f4 e\hich\af4\dbch\af31505\loch\f4 rved=0" }{\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \f4\fs22\ul\cf25\insrsid5709539 {\*\datafield +00d0c9ea79f9bace118c8200aa004ba90b0200000003000000e0c9ea79f9bace118c8200aa004ba90b5e030000680074007400700073003a002f002f006e0061006d00310031002e0073006100660065006c0069006e006b0073002e00700072006f00740065006300740069006f006e002e006f00750074006c006f006f00 +6b002e0063006f006d002f003f00750072006c003d00680074007400700073002500330041002500320046002500320046006700690074006800750062002e0063006f006d00250032004600410074007400610063006b005000610074007400650072006e0025003200460043005300680061007200700041006e0061006c +0079007400690063007300260064006100740061003d0030003400250037004300300031002500370043004a0061006d00650073002e0043006f006e006e00650072002500340030006100750074006f006400650073006b002e0063006f006d00250037004300640061006500630064003600350037003800310039003400 +34006200380035003500650037003800300038006400390034003600320035003100660066003600250037004300360037006200660066003700390065003700660039003100340034003300330061003800650035006300390032003500320064003200640064006300310064002500370043003000250037004300300025 +003700430036003300370036003100370039003400370035003200300031003500300033003800330025003700430055006e006b006e006f0077006e002500370043005400570046007000620047005a0073006200330064003800650079004a00570049006a006f0069004d004300340077004c006a00410077004d004400 +410069004c0043004a00510049006a006f006900560032006c0075004d007a00490069004c0043004a004200540069004900360049006b003100680061005700770069004c0043004a00580056004300490036004d006e00300025003300440025003700430031003000300030002600730064006100740061003d00780039 +007800440037005a006900720052005300690035004700440030006b006c0066004500340068007900530063006e002500320042007300530050006200380054004a0061006f0039004d00590062004e00560025003200460067002500330044002600720065007300650072007600650064003d0030000000795881f43b1d +7f48af2c825dc485276300000000a5ab0003}}}{\fldrslt {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \f4\fs22\ul\cf25\insrsid5444290 \hich\af4\dbch\af31505\loch\f4 https://github.com/AttackPattern/CSharpAnalytics}}}\sectd \ltrsect\linex0\sectdefaultcl\sftnbj { +\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \f4\fs22\ul\cf25\insrsid5444290 +\par }{\field{\*\fldinst {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \f4\fs22\ul\cf25\insrsid5444290 \hich\af4\dbch\af31505\loch\f4 +HYPERLINK "https://nam11.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwww.apache.org%2Flicenses%2FLICENSE-2.0&data=04%7C01%7CJames.Conner%40autodesk.com%7Cdaecd65781944b855e7808d946251ff6%7C\hich\af4\dbch\af31505\loch\f4 +67bff79e7f914433a8e5c9252d2ddc1d%7C0%7C0%7C637617947520150383%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=v9nqtyKVwRS1oYkXRTRvYKHEcAWZZj0Q6G%2BfYjDPfXg%3D&reserved=0" }{\rtlch\fcs1 \af4\afs22 +\ltrch\fcs0 \f4\fs22\ul\cf25\insrsid5709539 {\*\datafield +00d0c9ea79f9bace118c8200aa004ba90b0200000003000000e0c9ea79f9bace118c8200aa004ba90b4e030000680074007400700073003a002f002f006e0061006d00310031002e0073006100660065006c0069006e006b0073002e00700072006f00740065006300740069006f006e002e006f00750074006c006f006f00 +6b002e0063006f006d002f003f00750072006c003d0068007400740070002500330041002500320046002500320046007700770077002e006100700061006300680065002e006f00720067002500320046006c006900630065006e007300650073002500320046004c004900430045004e00530045002d0032002e00300026 +0064006100740061003d0030003400250037004300300031002500370043004a0061006d00650073002e0043006f006e006e00650072002500340030006100750074006f006400650073006b002e0063006f006d00250037004300640061006500630064003600350037003800310039003400340062003800350035006500 +37003800300038006400390034003600320035003100660066003600250037004300360037006200660066003700390065003700660039003100340034003300330061003800650035006300390032003500320064003200640064006300310064002500370043003000250037004300300025003700430036003300370036 +003100370039003400370035003200300031003500300033003800330025003700430055006e006b006e006f0077006e002500370043005400570046007000620047005a0073006200330064003800650079004a00570049006a006f0069004d004300340077004c006a00410077004d004400410069004c0043004a005100 +49006a006f006900560032006c0075004d007a00490069004c0043004a004200540069004900360049006b003100680061005700770069004c0043004a00580056004300490036004d006e00300025003300440025003700430031003000300030002600730064006100740061003d00760039006e007100740079004b0056 +0077005200530031006f0059006b005800520054005200760059004b00480045006300410057005a005a006a003000510036004700250032004200660059006a00440050006600580067002500330044002600720065007300650072007600650064003d0030000000795881f43b1d7f48af2c825dc485276300000000a5ab +0003}}}{\fldrslt {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \f4\fs22\ul\cf25\insrsid5444290 \hich\af4\dbch\af31505\loch\f4 http://www.apache.org/license\hich\af4\dbch\af31505\loch\f4 s/LICENSE-2.0}}}\sectd \ltrsect\linex0\sectdefaultcl\sftnbj {\rtlch\fcs1 +\af4\afs22 \ltrch\fcs0 \f4\fs22\ul\cf25\insrsid5444290 +\par }{\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \f4\fs22\cf24\insrsid5444290 \loch\af4\dbch\af31505\hich\f4 \'a9\loch\f4 2012-2015 Attack Pattern LLC +\par +\par \hich\af4\dbch\af31505\loch\f4 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 }{\field{\*\fldinst {\rtlch\fcs1 \af4\afs22 +\ltrch\fcs0 \f4\fs22\insrsid5444290 \hich\af4\dbch\af31505\loch\f4 HYPERLINK http://www.apache.org/licens\hich\af4\dbch\af31505\loch\f4 es/LICENSE-2.0 }{\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \f4\fs22\insrsid5709539 {\*\datafield +00d0c9ea79f9bace118c8200aa004ba90b0200000003000000e0c9ea79f9bace118c8200aa004ba90b6e00000068007400740070003a002f002f007700770077002e006100700061006300680065002e006f00720067002f006c006900630065006e007300650073002f004c004900430045004e00530045002d0032002e00 +30000000795881f43b1d7f48af2c825dc485276300000000a5ab0003}}}{\fldrslt {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \f4\fs22\insrsid5444290 \hich\af4\dbch\af31505\loch\f4 http://www.apache.org/licenses/LICENSE-2.0}}}\sectd \ltrsect\linex0\sectdefaultcl\sftnbj { +\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \f4\fs22\cf24\insrsid5444290 \hich\af4\dbch\af31505\loch\f4 + 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 \hich\af4\dbch\af31505\loch\f4 +or implied. See the License for the specific language governing permissions and limitations under the License. +\par }{\rtlch\fcs1 \af40\afs18 \ltrch\fcs0 \f40\fs18\insrsid5444290 +\par +\par }\pard \ltrpar\ql \li0\ri0\sl288\slmult1\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 {\rtlch\fcs1 \ab\af45\afs22 \ltrch\fcs0 \b\fs22\cf24\lang3082\langfe2057\kerning1\langnp3082\insrsid5444290 \hich\af45\dbch\af31505\loch\f45 Ncalc v.1.3.8.0:}{ +\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \f4\fs22\ul\cf25\lang3082\langfe2057\langnp3082\insrsid5444290 +\par }\pard \ltrpar\ql \li0\ri0\widctlpar\wrapdefault\faauto\rin0\lin0\itap0 {\field{\*\fldinst {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \f4\fs22\ul\cf25\lang3082\langfe2057\langnp3082\insrsid5444290 \hich\af4\dbch\af31505\loch\f4 +HYPERLINK "https://nam11.safelinks.protection.outlook.com/?url=http%3A%2F%2Fncalc.codeplex.com%2F&data=04%7C01%7CJames.Conner%\hich\af4\dbch\af31505\loch\f4 +40autodesk.com%7Cdaecd65781944b855e7808d946251ff6%7C67bff79e7f914433a8e5c9252d2ddc1d%7C0%7C0%7C637617947520409253%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=MXJNaR69ECgPJDJYPSnyLqGx9AGSwz%2FQZR5 +\hich\af4\dbch\af31505\loch\f4 5\hich\af4\dbch\af31505\loch\f4 FnDPv5U%3D&reserved=0" }{\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \f4\fs22\ul\cf25\lang3082\langfe2057\langnp3082\insrsid5709539 {\*\datafield +00d0c9ea79f9bace118c8200aa004ba90b0200000003000000e0c9ea79f9bace118c8200aa004ba90b2a030000680074007400700073003a002f002f006e0061006d00310031002e0073006100660065006c0069006e006b0073002e00700072006f00740065006300740069006f006e002e006f00750074006c006f006f00 +6b002e0063006f006d002f003f00750072006c003d0068007400740070002500330041002500320046002500320046006e00630061006c0063002e0063006f006400650070006c00650078002e0063006f006d00250032004600260064006100740061003d0030003400250037004300300031002500370043004a0061006d +00650073002e0043006f006e006e00650072002500340030006100750074006f006400650073006b002e0063006f006d00250037004300640061006500630064003600350037003800310039003400340062003800350035006500370038003000380064003900340036003200350031006600660036002500370043003600 +37006200660066003700390065003700660039003100340034003300330061003800650035006300390032003500320064003200640064006300310064002500370043003000250037004300300025003700430036003300370036003100370039003400370035003200300034003000390032003500330025003700430055 +006e006b006e006f0077006e002500370043005400570046007000620047005a0073006200330064003800650079004a00570049006a006f0069004d004300340077004c006a00410077004d004400410069004c0043004a00510049006a006f006900560032006c0075004d007a00490069004c0043004a00420054006900 +4900360049006b003100680061005700770069004c0043004a00580056004300490036004d006e00300025003300440025003700430031003000300030002600730064006100740061003d004d0058004a004e00610052003600390045004300670050004a0044004a005900500053006e0079004c00710047007800390041 +004700530077007a0025003200460051005a0052003500350046006e00440050007600350055002500330044002600720065007300650072007600650064003d0030000000795881f43b1d7f48af2c825dc485276300000000a5ab0003}}}{\fldrslt {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 +\f4\fs22\ul\cf25\lang3082\langfe2057\langnp3082\insrsid5444290 \hich\af4\dbch\af31505\loch\f4 http://ncalc.codeplex.com/}}}\sectd \ltrsect\linex0\sectdefaultcl\sftnbj {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 +\f4\fs22\ul\cf25\lang3082\langfe2057\langnp3082\insrsid5444290 +\par }{\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \f4\fs22\cf24\insrsid5444290 \loch\af4\dbch\af31505\hich\f4 \'a9\loch\f4 2011 Sebastien Ros +\par +\par \hich\af4\dbch\af31505\loch\f4 Permission is hereby granted, free of charge, to any person obtai\hich\af4\dbch\af31505\loch\f4 +ning 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 +\hich\af4\dbch\af31505\loch\f4 S\hich\af4\dbch\af31505\loch\f4 oftware, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: +\par +\par \hich\af4\dbch\af31505\loch\f4 The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. +\par +\par \hich\af4\dbch\af31505\loch\f4 THE SOFTWARE IS\hich\af4\dbch\af31505\loch\f4 + PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +\hich\af4\dbch\af31505\loch\f4 \hich\af4\dbch\af31505\loch\f4 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. + +\par }{\rtlch\fcs1 \af40\afs18 \ltrch\fcs0 \f40\fs18\insrsid5444290 +\par }\pard \ltrpar\ql \li0\ri0\sl288\slmult1\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 {\rtlch\fcs1 \ab\af45\afs22 \ltrch\fcs0 \b\fs22\cf24\kerning1\insrsid5444290 \hich\af45\dbch\af31505\loch\f45 MIConvexHull.NET v.1.0.17.411 +\par }\pard \ltrpar\ql \li0\ri0\widctlpar\wrapdefault\faauto\rin0\lin0\itap0 {\field{\*\fldinst {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \f4\fs22\ul\cf25\insrsid5444290 \hich\af4\dbch\af31505\loch\f4 HYPERLINK "https://nam11.safelinks. +\hich\af4\dbch\af31505\loch\f4 +protection.outlook.com/?url=https%3A%2F%2Fdesignengrlab.github.io%2FMIConvexHull%2F&data=04%7C01%7CJames.Conner%40autodesk.com%7Cdaecd65781944b855e7808d946251ff6%7C67bff79e7f914433a8e5c9252d2ddc1d%7C0%7C0%7C637617947520389325%7CUnknown%7CTWFpbGZsb3d8eyJWI +\hich\af4\dbch\af31505\loch\f4 j\hich\af4\dbch\af31505\loch\f4 oiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=NY1pGp4Rus1IhXoLEAgeQgcF3gsQK5hhpdBY1KGxtSY%3D&reserved=0" }{\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 +\f4\fs22\ul\cf25\insrsid5709539 {\*\datafield +00d0c9ea79f9bace118c8200aa004ba90b0200000003000000e0c9ea79f9bace118c8200aa004ba90b50030000680074007400700073003a002f002f006e0061006d00310031002e0073006100660065006c0069006e006b0073002e00700072006f00740065006300740069006f006e002e006f00750074006c006f006f00 +6b002e0063006f006d002f003f00750072006c003d0068007400740070007300250033004100250032004600250032004600640065007300690067006e0065006e00670072006c00610062002e006700690074006800750062002e0069006f002500320046004d00490043006f006e00760065007800480075006c006c0025 +0032004600260064006100740061003d0030003400250037004300300031002500370043004a0061006d00650073002e0043006f006e006e00650072002500340030006100750074006f006400650073006b002e0063006f006d00250037004300640061006500630064003600350037003800310039003400340062003800 +35003500650037003800300038006400390034003600320035003100660066003600250037004300360037006200660066003700390065003700660039003100340034003300330061003800650035006300390032003500320064003200640064006300310064002500370043003000250037004300300025003700430036 +003300370036003100370039003400370035003200300033003800390033003200350025003700430055006e006b006e006f0077006e002500370043005400570046007000620047005a0073006200330064003800650079004a00570049006a006f0069004d004300340077004c006a00410077004d004400410069004c00 +43004a00510049006a006f006900560032006c0075004d007a00490069004c0043004a004200540069004900360049006b003100680061005700770069004c0043004a00580056004300490036004d006e00300025003300440025003700430031003000300030002600730064006100740061003d004e0059003100700047 +007000340052007500730031004900680058006f004c004500410067006500510067006300460033006700730051004b00350068006800700064004200590031004b00470078007400530059002500330044002600720065007300650072007600650064003d0030000000795881f43b1d7f48af2c825dc485276300000000 +a5ab0003}}}{\fldrslt {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \f4\fs22\ul\cf25\insrsid5444290 \hich\af4\dbch\af31505\loch\f4 http://miconvexhull.codeplex.com/}}}\sectd \ltrsect\linex0\sectdefaultcl\sftnbj {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 +\f4\fs22\ul\cf25\insrsid5444290 +\par }{\field{\*\fldinst {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \f4\fs22\ul\cf25\insrsid5444290 \hich\af4\dbch\af31505\loch\f4 HYPERLINK "https://nam11.safelinks.protection.outlook.com/?url=http%3A%2F%2Fmiconvexhu\hich\af4\dbch\af31505\loch\f4 +ll.codeplex.com%2Flicense&data=04%7C01%7CJames.Conner%40autodesk.com%7Cdaecd65781944b855e7808d946251ff6%7C67bff79e7f914433a8e5c9252d2ddc1d%7C0%7C0%7C637617947520389325%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0 +\hich\af4\dbch\af31505\loch\f4 %\hich\af4\dbch\af31505\loch\f4 3D%7C1000&sdata=hNSoZ7QXpdD4Fhf0DlaIzm2xF9XGsksCYNlWnpXQ%2BiM%3D&reserved=0" }{\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \f4\fs22\ul\cf25\insrsid5709539 {\*\datafield +00d0c9ea79f9bace118c8200aa004ba90b0200000003000000e0c9ea79f9bace118c8200aa004ba90b46030000680074007400700073003a002f002f006e0061006d00310031002e0073006100660065006c0069006e006b0073002e00700072006f00740065006300740069006f006e002e006f00750074006c006f006f00 +6b002e0063006f006d002f003f00750072006c003d0068007400740070002500330041002500320046002500320046006d00690063006f006e00760065007800680075006c006c002e0063006f006400650070006c00650078002e0063006f006d002500320046006c006900630065006e0073006500260064006100740061 +003d0030003400250037004300300031002500370043004a0061006d00650073002e0043006f006e006e00650072002500340030006100750074006f006400650073006b002e0063006f006d002500370043006400610065006300640036003500370038003100390034003400620038003500350065003700380030003800 +64003900340036003200350031006600660036002500370043003600370062006600660037003900650037006600390031003400340033003300610038006500350063003900320035003200640032006400640063003100640025003700430030002500370043003000250037004300360033003700360031003700390034 +00370035003200300033003800390033003200350025003700430055006e006b006e006f0077006e002500370043005400570046007000620047005a0073006200330064003800650079004a00570049006a006f0069004d004300340077004c006a00410077004d004400410069004c0043004a00510049006a006f006900 +560032006c0075004d007a00490069004c0043004a004200540069004900360049006b003100680061005700770069004c0043004a00580056004300490036004d006e00300025003300440025003700430031003000300030002600730064006100740061003d0068004e0053006f005a0037005100580070006400440034 +00460068006600300044006c00610049007a006d0032007800460039005800470073006b007300430059004e006c0057006e0070005800510025003200420069004d002500330044002600720065007300650072007600650064003d0030000000795881f43b1d7f48af2c825dc485276300000000a5ab0003}}}{\fldrslt +{\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \f4\fs22\ul\cf25\insrsid5444290 \hich\af4\dbch\af31505\loch\f4 http://miconvexhull.codeplex.com/license}}}\sectd \ltrsect\linex0\sectdefaultcl\sftnbj {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \f4\fs22\ul\cf25\insrsid5444290 + +\par }{\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \f4\fs22\cf24\insrsid5444290 \hich\af4\dbch\af31505\loch\f4 Copyright (c) 2010 David Sehnal, Matthew Campbell +\par +\par \hich\af4\dbch\af31505\loch\f4 +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, m +\hich\af4\dbch\af31505\loch\f4 e\hich\af4\dbch\af31505\loch\f4 rge, 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: +\par +\par \hich\af4\dbch\af31505\loch\f4 The above copyright notice and this permission notice shall be included in all\hich\af4\dbch\af31505\loch\f4 copies or substantial portions of the Software. +\par +\par \hich\af4\dbch\af31505\loch\f4 THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN N +\hich\af4\dbch\af31505\loch\f4 +O 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. + +\par }{\rtlch\fcs1 \af40\afs18 \ltrch\fcs0 \f40\fs18\insrsid5444290 +\par }\pard \ltrpar\ql \li0\ri0\sl288\slmult1\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 {\rtlch\fcs1 \ab\af45\afs22 \ltrch\fcs0 \b\fs22\cf24\kerning1\insrsid5444290 \hich\af45\dbch\af31505\loch\f45 StarMath v.2.0.14: +\par }\pard \ltrpar\ql \li0\ri0\widctlpar\wrapdefault\faauto\rin0\lin0\itap0 {\field{\*\fldinst {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \f4\fs22\ul\cf25\insrsid5444290 \hich\af4\dbch\af31505\loch\f4 +HYPERLINK "https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2FDesignEngrLab%2FStarMath%2Fblob%2Fmaster%2FLICENSE&data=04%7C01%7CJames.Conner%40autodesk.com%7Cdaecd65781944b855e7808d946251ff6%7C67bff79e7f91443 +\hich\af4\dbch\af31505\loch\f4 3a8e5c9252d2ddc1d%7C0%7C0%7C637617947520488895%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=QlLJQ5zjjCkV03%2BrjgrcdUTiz9O6pTyzKdtSv5xpHsg%3D&reserved=0" }{ +\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \f4\fs22\ul\cf25\insrsid5709539 {\*\datafield +00d0c9ea79f9bace118c8200aa004ba90b0200000003000000e0c9ea79f9bace118c8200aa004ba90b80030000680074007400700073003a002f002f006e0061006d00310031002e0073006100660065006c0069006e006b0073002e00700072006f00740065006300740069006f006e002e006f00750074006c006f006f00 +6b002e0063006f006d002f003f00750072006c003d00680074007400700073002500330041002500320046002500320046006700690074006800750062002e0063006f006d00250032004600440065007300690067006e0045006e00670072004c006100620025003200460053007400610072004d00610074006800250032 +00460062006c006f0062002500320046006d00610073007400650072002500320046004c004900430045004e0053004500260064006100740061003d0030003400250037004300300031002500370043004a0061006d00650073002e0043006f006e006e00650072002500340030006100750074006f006400650073006b00 +2e0063006f006d002500370043006400610065006300640036003500370038003100390034003400620038003500350065003700380030003800640039003400360032003500310066006600360025003700430036003700620066006600370039006500370066003900310034003400330033006100380065003500630039 +0032003500320064003200640064006300310064002500370043003000250037004300300025003700430036003300370036003100370039003400370035003200300034003800380038003900350025003700430055006e006b006e006f0077006e002500370043005400570046007000620047005a007300620033006400 +3800650079004a00570049006a006f0069004d004300340077004c006a00410077004d004400410069004c0043004a00510049006a006f006900560032006c0075004d007a00490069004c0043004a004200540069004900360049006b003100680061005700770069004c0043004a00580056004300490036004d006e0030 +0025003300440025003700430031003000300030002600730064006100740061003d0051006c004c004a00510035007a006a006a0043006b0056003000330025003200420072006a0067007200630064005500540069007a0039004f0036007000540079007a004b0064007400530076003500780070004800730067002500 +330044002600720065007300650072007600650064003d0030000000795881f43b1d7f48af2c825dc485276300000000a5ab0003}}}{\fldrslt {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \f4\fs22\ul\cf25\insrsid5444290 \hich\af4\dbch\af31505\loch\f4 +https://github.com/DesignEngrLab/StarMath/bl\hich\af4\dbch\af31505\loch\f4 ob/master/LICENSE}}}\sectd \ltrsect\linex0\sectdefaultcl\sftnbj {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \f4\fs22\ul\cf25\insrsid5444290 +\par }{\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \f4\fs22\cf24\insrsid5444290 \hich\af4\dbch\af31505\loch\f4 The MIT License (MIT) +\par \hich\af4\dbch\af31505\loch\f4 Copyright (c) 2015 DesignEngrLab +\par +\par \hich\af4\dbch\af31505\loch\f4 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 \hich\af4\dbch\af31505\loch\f4 +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: + +\par +\par \hich\af4\dbch\af31505\loch\f4 T\hich\af4\dbch\af31505\loch\f4 he above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. +\par +\par \hich\af4\dbch\af31505\loch\f4 THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES O\hich\af4\dbch\af31505\loch\f4 +F MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. 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 I +\hich\af4\dbch\af31505\loch\f4 N\hich\af4\dbch\af31505\loch\f4 CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +\par +\par }\pard \ltrpar\ql \li0\ri0\sl288\slmult1\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 {\rtlch\fcs1 \ab\af45\afs22 \ltrch\fcs0 \b\fs22\cf24\kerning1\insrsid5444290 \hich\af45\dbch\af31505\loch\f45 DiffPlex v.1.6.3: +\par }\pard \ltrpar\ql \li0\ri0\widctlpar\wrapdefault\faauto\rin0\lin0\itap0 {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \f4\fs22\cf24\insrsid5444290 \loch\af4\dbch\af31505\hich\f4 \'a9\loch\f4 2020 mmanela +\par +\par \hich\af4\dbch\af31505\loch\f4 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\hich\af4\dbch\af31505\loch\f4 copy of the License at +\par }{\field{\*\fldinst {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \f4\fs22\insrsid5444290 \hich\af4\dbch\af31505\loch\f4 HYPERLINK http://www.apache.org/licenses/LICENSE-2.0 }{\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \f4\fs22\insrsid5709539 {\*\datafield +00d0c9ea79f9bace118c8200aa004ba90b0200000003000000e0c9ea79f9bace118c8200aa004ba90b6e00000068007400740070003a002f002f007700770077002e006100700061006300680065002e006f00720067002f006c006900630065006e007300650073002f004c004900430045004e00530045002d0032002e00 +30000000795881f43b1d7f48af2c825dc485276300000000a5ab0003}}}{\fldrslt {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \f4\fs22\insrsid5444290 \hich\af4\dbch\af31505\loch\f4 http://www.apache.org/licenses/LICENSE-2.0}}}\sectd \ltrsect\linex0\sectdefaultcl\sftnbj { +\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \f4\fs22\ul\cf25\insrsid5444290 \hich\af4\dbch\af31505\loch\f4 }{\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \f4\fs22\cf24\insrsid5444290 \hich\af4\dbch\af31505\loch\f4 +Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS,\hich\af4\dbch\af31505\loch\f4 + 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.}{\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \f4\fs22\ul\cf25\insrsid5444290 +\par }{\rtlch\fcs1 \af40\afs18 \ltrch\fcs0 \f40\fs18\insrsid5444290 +\par }\pard \ltrpar\ql \li0\ri0\sl288\slmult1\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 {\rtlch\fcs1 \ab\af45\afs22 \ltrch\fcs0 \b\fs22\cf24\kerning1\insrsid5444290 \hich\af45\dbch\af31505\loch\f45 DiffPlex.wpf v.1.1.1: +\par }\pard \ltrpar\ql \li0\ri0\widctlpar\wrapdefault\faauto\rin0\lin0\itap0 {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \f4\fs22\cf24\insrsid5444290 \loch\af4\dbch\af31505\hich\f4 \'a9\loch\f4 2020 mmanela +\par +\par \hich\af4\dbch\af31505\loch\f4 Licensed under the Apache License, Version 2\hich\af4\dbch\af31505\loch\f4 .0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at }{\field{\*\fldinst { +\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \f4\fs22\insrsid5444290 \hich\af4\dbch\af31505\loch\f4 HYPERLINK http://www.apache.org/licenses/LICENSE-2.0 }{\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \f4\fs22\insrsid5709539 {\*\datafield +00d0c9ea79f9bace118c8200aa004ba90b0200000003000000e0c9ea79f9bace118c8200aa004ba90b6e00000068007400740070003a002f002f007700770077002e006100700061006300680065002e006f00720067002f006c006900630065006e007300650073002f004c004900430045004e00530045002d0032002e00 +30000000795881f43b1d7f48af2c825dc485276300000000a5ab0003}}}{\fldrslt {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \f4\fs22\insrsid5444290 \hich\af4\dbch\af31505\loch\f4 http://www.apache.org/licenses/LICENSE-2.0}}}\sectd \ltrsect\linex0\sectdefaultcl\sftnbj { +\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \f4\fs22\cf24\insrsid5444290 \hich\af4\dbch\af31505\loch\f4 Unless required by applicable la\hich\af4\dbch\af31505\loch\f4 +w 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 +\hich\af4\dbch\af31505\loch\f4 u\hich\af4\dbch\af31505\loch\f4 nder the License. +\par }{\rtlch\fcs1 \af40\afs18 \ltrch\fcs0 \f40\fs18\insrsid5444290 +\par }\pard \ltrpar\ql \li0\ri0\sl288\slmult1\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 {\rtlch\fcs1 \ab\af45\afs22 \ltrch\fcs0 \b\fs22\cf24\lang1031\langfe2057\kerning1\langnp1031\insrsid5444290 \hich\af45\dbch\af31505\loch\f45 FontAwesome v.4.0.7: + +\par }\pard \ltrpar\ql \li0\ri0\widctlpar\wrapdefault\faauto\rin0\lin0\itap0 {\field{\*\fldinst {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \f4\fs22\ul\cf25\lang1031\langfe2057\langnp1031\insrsid5444290 \hich\af4\dbch\af31505\loch\f4 +HYPERLINK "https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwww.nuget.org%2Fpackages%2FFontAwesome.WPF%2F&data=04%7C01%7CJames.Conner%40autodesk.com%7Cdaecd65781944b855e7808d946251ff6%7C67bff79e7f914433a8e5c9252d2ddc1d%7C0%7C0%7C637617947 +\hich\af4\dbch\af31505\loch\f4 5\hich\af4\dbch\af31505\loch\f4 20190208%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=X8xzrd%2Fj2Js0LaFtQIoDfDv5iv%2FWDi31xCr9xQYz%2B80%3D&reserved=0" }{\rtlch\fcs1 +\af4\afs22 \ltrch\fcs0 \f4\fs22\ul\cf25\lang1031\langfe2057\langnp1031\insrsid5709539 {\*\datafield +00d0c9ea79f9bace118c8200aa004ba90b0200000003000000e0c9ea79f9bace118c8200aa004ba90b64030000680074007400700073003a002f002f006e0061006d00310031002e0073006100660065006c0069006e006b0073002e00700072006f00740065006300740069006f006e002e006f00750074006c006f006f00 +6b002e0063006f006d002f003f00750072006c003d00680074007400700073002500330041002500320046002500320046007700770077002e006e0075006700650074002e006f00720067002500320046007000610063006b00610067006500730025003200460046006f006e00740041007700650073006f006d0065002e +00570050004600250032004600260064006100740061003d0030003400250037004300300031002500370043004a0061006d00650073002e0043006f006e006e00650072002500340030006100750074006f006400650073006b002e0063006f006d0025003700430064006100650063006400360035003700380031003900 +34003400620038003500350065003700380030003800640039003400360032003500310066006600360025003700430036003700620066006600370039006500370066003900310034003400330033006100380065003500630039003200350032006400320064006400630031006400250037004300300025003700430030 +0025003700430036003300370036003100370039003400370035003200300031003900300032003000380025003700430055006e006b006e006f0077006e002500370043005400570046007000620047005a0073006200330064003800650079004a00570049006a006f0069004d004300340077004c006a00410077004d00 +4400410069004c0043004a00510049006a006f006900560032006c0075004d007a00490069004c0043004a004200540069004900360049006b003100680061005700770069004c0043004a00580056004300490036004d006e00300025003300440025003700430031003000300030002600730064006100740061003d0058 +00380078007a00720064002500320046006a0032004a00730030004c00610046007400510049006f0044006600440076003500690076002500320046005700440069003300310078004300720039007800510059007a00250032004200380030002500330044002600720065007300650072007600650064003d0030000000 +795881f43b1d7f48af2c825dc485276300000000a5ab0003}}}{\fldrslt {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \f4\fs22\ul\cf25\lang1031\langfe2057\langnp1031\insrsid5444290 \hich\af4\dbch\af31505\loch\f4 https://www.nuget.org/packages/FontAwesome.WPF/}}} +\sectd \ltrsect\linex0\sectdefaultcl\sftnbj {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \f4\fs22\ul\cf25\lang1031\langfe2057\langnp1031\insrsid5444290 +\par }{\field{\*\fldinst {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \f4\fs22\ul\cf25\lang1031\langfe2057\langnp1031\insrsid5444290 \hich\af4\dbch\af31505\loch\f4 +HYPERLINK "https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fcharri%2FFont-Awesome-WPF%2Fblob%2Fmaster%2FLICENSE&data=04%7C01%7CJames.Conner%40autodesk.com%7Cdaecd65781944b855e7808d946251ff6%7C67bff79e7f914433a8e5c9252d2ddc1d% +\hich\af4\dbch\af31505\loch\f4 7\hich\af4\dbch\af31505\loch\f4 +C0%7C0%7C637617947520200164%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=sKAHUntVBjSIV8O68z3a0dCJ%2BlRxwngZUFlVrQNRkW8%3D&reserved=0" }{\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 +\f4\fs22\ul\cf25\lang1031\langfe2057\langnp1031\insrsid5709539 {\*\datafield +00d0c9ea79f9bace118c8200aa004ba90b0200000003000000e0c9ea79f9bace118c8200aa004ba90b82030000680074007400700073003a002f002f006e0061006d00310031002e0073006100660065006c0069006e006b0073002e00700072006f00740065006300740069006f006e002e006f00750074006c006f006f00 +6b002e0063006f006d002f003f00750072006c003d00680074007400700073002500330041002500320046002500320046006700690074006800750062002e0063006f006d0025003200460063006800610072007200690025003200460046006f006e0074002d0041007700650073006f006d0065002d0057005000460025 +003200460062006c006f0062002500320046006d00610073007400650072002500320046004c004900430045004e0053004500260064006100740061003d0030003400250037004300300031002500370043004a0061006d00650073002e0043006f006e006e00650072002500340030006100750074006f00640065007300 +6b002e0063006f006d00250037004300640061006500630064003600350037003800310039003400340062003800350035006500370038003000380064003900340036003200350031006600660036002500370043003600370062006600660037003900650037006600390031003400340033003300610038006500350063 +00390032003500320064003200640064006300310064002500370043003000250037004300300025003700430036003300370036003100370039003400370035003200300032003000300031003600340025003700430055006e006b006e006f0077006e002500370043005400570046007000620047005a00730062003300 +64003800650079004a00570049006a006f0069004d004300340077004c006a00410077004d004400410069004c0043004a00510049006a006f006900560032006c0075004d007a00490069004c0043004a004200540069004900360049006b003100680061005700770069004c0043004a00580056004300490036004d006e +00300025003300440025003700430031003000300030002600730064006100740061003d0073004b004100480055006e007400560042006a0053004900560038004f00360038007a00330061003000640043004a002500320042006c005200780077006e0067005a00550046006c005600720051004e0052006b0057003800 +2500330044002600720065007300650072007600650064003d0030000000795881f43b1d7f48af2c825dc485276300000000a5ab0003}}}{\fldrslt {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \f4\fs22\ul\cf25\lang1031\langfe2057\langnp1031\insrsid5444290 \hich\af4\dbch\af31505\loch\f4 +https://github.com/charri/Font-Awesome-WPF/blob/master/LICENSE}}}\sectd \ltrsect\linex0\sectdefaultcl\sftnbj {\rtlch\fcs1 \af4\afs17 \ltrch\fcs0 \f4\fs17\ul\cf25\lang1031\langfe2057\langnp1031\insrsid5444290 +\par }{\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \f4\fs22\cf24\insrsid5444290 \hich\af4\dbch\af31505\loch\f4 Copyright (c) 2014-2016 charri +\par +\par \hich\af4\dbch\af31505\loch\f4 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 +\hich\af4\dbch\af31505\loch\f4 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: +\par +\par \hich\af4\dbch\af31505\loch\f4 The above copyright notice and this permiss\hich\af4\dbch\af31505\loch\f4 ion notice shall be included in all copies or substantial portions of the Software. +\par +\par \hich\af4\dbch\af31505\loch\f4 THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULA\hich\af4\dbch\af31505\loch\f4 +R PURPOSE AND NONINFRINGEMENT. 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 +\hich\af4\dbch\af31505\loch\f4 O\hich\af4\dbch\af31505\loch\f4 R OTHER DEALINGS IN THE SOFTWARE. +\par }{\rtlch\fcs1 \af40\afs18 \ltrch\fcs0 \f40\fs18\insrsid5444290 +\par }\pard \ltrpar\ql \li0\ri0\sl288\slmult1\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 {\rtlch\fcs1 \ab\af45\afs22 \ltrch\fcs0 \b\fs22\cf24\kerning1\insrsid5444290 \hich\af45\dbch\af31505\loch\f45 AngleSharp v.0.14.0: Copyright (c) 2013 - 2019 AngleSharp + +\par \hich\af45\dbch\af31505\loch\f45 \hich\f45 AngleSharp.CSS v.0.14.2: Copyright \'a9\loch\f45 2013-2020 AngleSharp +\par }\pard \ltrpar\ql \li0\ri0\widctlpar\wrapdefault\faauto\rin0\lin0\itap0 {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \f4\fs22\cf24\insrsid5444290 \hich\af4\dbch\af31505\loch\f4 The MIT License (MIT) +\par +\par \hich\af4\dbch\af31505\loch\f4 Permission is hereby granted, free of charge, to any person obtaining a copy of th\hich\af4\dbch\af31505\loch\f4 +is 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 +\hich\af4\dbch\af31505\loch\f4 p\hich\af4\dbch\af31505\loch\f4 ermit persons to whom the Software is furnished to do so, subject to the following conditions: +\par +\par \hich\af4\dbch\af31505\loch\f4 The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. +\par +\par \hich\af4\dbch\af31505\loch\f4 THE SOFTWARE IS PROVIDED "AS IS"\hich\af4\dbch\af31505\loch\f4 +, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES O +\hich\af4\dbch\af31505\loch\f4 R\hich\af4\dbch\af31505\loch\f4 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. +\par }{\rtlch\fcs1 \af40\afs18 \ltrch\fcs0 \f40\fs18\insrsid5444290 +\par }\pard \ltrpar\ql \li0\ri0\sl288\slmult1\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 {\rtlch\fcs1 \ab\af45\afs22 \ltrch\fcs0 \b\fs22\cf24\kerning1\insrsid5444290 \hich\af45\dbch\af31505\loch\f45 HTMLSanitizer v.5.0.355: +\par }\pard \ltrpar\ql \li0\ri0\widctlpar\wrapdefault\faauto\rin0\lin0\itap0 {\field{\*\fldinst {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \f4\fs22\ul\cf25\insrsid5444290 \hich\af4\dbch\af31505\loch\f4 HYPERLINK "https://nam11.safelinks.protection.outlook.com +\hich\af4\dbch\af31505\loch\f4 +/?url=https%3A%2F%2Fgithub.com%2Fmganss%2FHtmlSanitizer&data=04%7C01%7CJames.Conner%40autodesk.com%7Cdaecd65781944b855e7808d946251ff6%7C67bff79e7f914433a8e5c9252d2ddc1d%7C0%7C0%7C637617947520220149%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luM +\hich\af4\dbch\af31505\loch\f4 z\hich\af4\dbch\af31505\loch\f4 IiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=t7WD0mko%2B%2FF%2FdpKKLHyM93UCXrX%2BXwo3yUYVGPZQcGs%3D&reserved=0" }{\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \f4\fs22\ul\cf25\insrsid5709539 +{\*\datafield +00d0c9ea79f9bace118c8200aa004ba90b0200000003000000e0c9ea79f9bace118c8200aa004ba90b54030000680074007400700073003a002f002f006e0061006d00310031002e0073006100660065006c0069006e006b0073002e00700072006f00740065006300740069006f006e002e006f00750074006c006f006f00 +6b002e0063006f006d002f003f00750072006c003d00680074007400700073002500330041002500320046002500320046006700690074006800750062002e0063006f006d002500320046006d00670061006e0073007300250032004600480074006d006c00530061006e006900740069007a006500720026006400610074 +0061003d0030003400250037004300300031002500370043004a0061006d00650073002e0043006f006e006e00650072002500340030006100750074006f006400650073006b002e0063006f006d00250037004300640061006500630064003600350037003800310039003400340062003800350035006500370038003000 +38006400390034003600320035003100660066003600250037004300360037006200660066003700390065003700660039003100340034003300330061003800650035006300390032003500320064003200640064006300310064002500370043003000250037004300300025003700430036003300370036003100370039 +003400370035003200300032003200300031003400390025003700430055006e006b006e006f0077006e002500370043005400570046007000620047005a0073006200330064003800650079004a00570049006a006f0069004d004300340077004c006a00410077004d004400410069004c0043004a00510049006a006f00 +6900560032006c0075004d007a00490069004c0043004a004200540069004900360049006b003100680061005700770069004c0043004a00580056004300490036004d006e00300025003300440025003700430031003000300030002600730064006100740061003d00740037005700440030006d006b006f002500320042 +002500320046004600250032004600640070004b004b004c00480079004d003900330055004300580072005800250032004200580077006f0033007900550059005600470050005a0051006300470073002500330044002600720065007300650072007600650064003d0030000000795881f43b1d7f48af2c825dc4852763 +00000000a5ab0003}}}{\fldrslt {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \f4\fs22\ul\cf25\insrsid5444290 \hich\af4\dbch\af31505\loch\f4 https://github.com/mganss/HtmlSanitizer}}}\sectd \ltrsect\linex0\sectdefaultcl\sftnbj {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 +\f4\fs22\ul\cf25\insrsid5444290 +\par }{\field{\*\fldinst {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \f4\fs22\ul\cf25\insrsid5444290 \hich\af4\dbch\af31505\loch\f4 HYPERLINK "https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fmganss%2FH\hich\af4\dbch\af31505\loch\f4 +tmlSanitizer%2Fblob%2Fmaster%2FLICENSE.md&data=04%7C01%7CJames.Conner%40autodesk.com%7Cdaecd65781944b855e7808d946251ff6%7C67bff79e7f914433a8e5c9252d2ddc1d%7C0%7C0%7C637617947520220149%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1 +\hich\af4\dbch\af31505\loch\f4 h\hich\af4\dbch\af31505\loch\f4 aWwiLCJXVCI6Mn0%3D%7C1000&sdata=phLGnloT%2FCglabebh%2FsUSc6iiDyt6D3vSMPPKA%2FgOJQ%3D&reserved=0" }{\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \f4\fs22\ul\cf25\insrsid5709539 {\*\datafield +00d0c9ea79f9bace118c8200aa004ba90b0200000003000000e0c9ea79f9bace118c8200aa004ba90b8a030000680074007400700073003a002f002f006e0061006d00310031002e0073006100660065006c0069006e006b0073002e00700072006f00740065006300740069006f006e002e006f00750074006c006f006f00 +6b002e0063006f006d002f003f00750072006c003d00680074007400700073002500330041002500320046002500320046006700690074006800750062002e0063006f006d002500320046006d00670061006e0073007300250032004600480074006d006c00530061006e006900740069007a006500720025003200460062 +006c006f0062002500320046006d00610073007400650072002500320046004c004900430045004e00530045002e006d006400260064006100740061003d0030003400250037004300300031002500370043004a0061006d00650073002e0043006f006e006e00650072002500340030006100750074006f00640065007300 +6b002e0063006f006d00250037004300640061006500630064003600350037003800310039003400340062003800350035006500370038003000380064003900340036003200350031006600660036002500370043003600370062006600660037003900650037006600390031003400340033003300610038006500350063 +00390032003500320064003200640064006300310064002500370043003000250037004300300025003700430036003300370036003100370039003400370035003200300032003200300031003400390025003700430055006e006b006e006f0077006e002500370043005400570046007000620047005a00730062003300 +64003800650079004a00570049006a006f0069004d004300340077004c006a00410077004d004400410069004c0043004a00510049006a006f006900560032006c0075004d007a00490069004c0043004a004200540069004900360049006b003100680061005700770069004c0043004a00580056004300490036004d006e +00300025003300440025003700430031003000300030002600730064006100740061003d00700068004c0047006e006c006f005400250032004600430067006c00610062006500620068002500320046007300550053006300360069006900440079007400360044003300760053004d00500050004b004100250032004600 +67004f004a0051002500330044002600720065007300650072007600650064003d0030000000795881f43b1d7f48af2c825dc485276300000000a5ab0003}}}{\fldrslt {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \f4\fs22\ul\cf25\insrsid5444290 \hich\af4\dbch\af31505\loch\f4 +https://github.com/mganss/HtmlSanitizer/blob/master/LICENSE.md}}}\sectd \ltrsect\linex0\sectdefaultcl\sftnbj {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \f4\fs22\ul\cf25\insrsid5444290 +\par }{\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \f4\fs22\cf24\insrsid5444290 \hich\af4\dbch\af31505\loch\f4 The MIT License (MIT) +\par \hich\af4\dbch\af31505\loch\f4 Copyright (c) 2013-2016 Michael Ganss and HtmlSanitizer contributors +\par +\par \hich\af4\dbch\af31505\loch\f4 +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, m +\hich\af4\dbch\af31505\loch\f4 e\hich\af4\dbch\af31505\loch\f4 rge, 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: +\par +\par \hich\af4\dbch\af31505\loch\f4 The above copyright notice and this permission notice shall be included in all\hich\af4\dbch\af31505\loch\f4 copies or substantial portions of the Software. +\par +\par \hich\af4\dbch\af31505\loch\f4 THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN N +\hich\af4\dbch\af31505\loch\f4 +O 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. + +\par +\par }\pard \ltrpar\ql \li0\ri0\sl288\slmult1\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 {\rtlch\fcs1 \ab\af45\afs22 \ltrch\fcs0 \b\fs22\cf24\lang1031\langfe2057\kerning1\langnp1031\insrsid5444290 \hich\af45\dbch\af31505\loch\f45 Markdig v.0.22.0: +\par }\pard \ltrpar\ql \li0\ri0\widctlpar\wrapdefault\faauto\rin0\lin0\itap0 {\field{\*\fldinst {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \f4\fs22\ul\cf25\lang1031\langfe2057\langnp1031\insrsid5444290 \hich\af4\dbch\af31505\loch\f4 +HYPERLINK "https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Flunet-io%2Fmarkdig&data=04%7C01%7CJames.Conner%40autodesk.com%7Cdaecd65781944b855e7808d946251ff6%7C67bff79e7f914433a8e5c9252d2ddc1d%7C0%7C0%7C637617 +\hich\af4\dbch\af31505\loch\f4 947520379375%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=IkaWjqj6UwIqoUB8EQOeZKYMz4qbWg8kbbCcZ0Qa%2Fhg%3D&reserved=0" }{\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 +\f4\fs22\ul\cf25\lang1031\langfe2057\langnp1031\insrsid5709539 {\*\datafield +00d0c9ea79f9bace118c8200aa004ba90b0200000003000000e0c9ea79f9bace118c8200aa004ba90b40030000680074007400700073003a002f002f006e0061006d00310031002e0073006100660065006c0069006e006b0073002e00700072006f00740065006300740069006f006e002e006f00750074006c006f006f00 +6b002e0063006f006d002f003f00750072006c003d00680074007400700073002500330041002500320046002500320046006700690074006800750062002e0063006f006d002500320046006c0075006e00650074002d0069006f002500320046006d00610072006b00640069006700260064006100740061003d00300034 +00250037004300300031002500370043004a0061006d00650073002e0043006f006e006e00650072002500340030006100750074006f006400650073006b002e0063006f006d002500370043006400610065006300640036003500370038003100390034003400620038003500350065003700380030003800640039003400 +36003200350031006600660036002500370043003600370062006600660037003900650037006600390031003400340033003300610038006500350063003900320035003200640032006400640063003100640025003700430030002500370043003000250037004300360033003700360031003700390034003700350032 +00300033003700390033003700350025003700430055006e006b006e006f0077006e002500370043005400570046007000620047005a0073006200330064003800650079004a00570049006a006f0069004d004300340077004c006a00410077004d004400410069004c0043004a00510049006a006f006900560032006c00 +75004d007a00490069004c0043004a004200540069004900360049006b003100680061005700770069004c0043004a00580056004300490036004d006e00300025003300440025003700430031003000300030002600730064006100740061003d0049006b00610057006a0071006a00360055007700490071006f00550042 +003800450051004f0065005a004b0059004d007a003400710062005700670038006b0062006200430063005a00300051006100250032004600680067002500330044002600720065007300650072007600650064003d0030000000795881f43b1d7f48af2c825dc485276300000000a5ab0003}}}{\fldrslt { +\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \f4\fs22\ul\cf25\lang1031\langfe2057\langnp1031\insrsid5444290 \hich\af4\dbch\af31505\loch\f4 https://github.com/lunet-io/markdig}}}\sectd \ltrsect\linex0\sectdefaultcl\sftnbj {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 +\f4\fs22\ul\cf25\lang1031\langfe2057\langnp1031\insrsid5444290 +\par }{\field{\*\fldinst {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \f4\fs22\ul\cf25\lang1031\langfe2057\langnp1031\insrsid5444290 \hich\af4\dbch\af31505\loch\f4 HYPERLINK "https://nam11.safelinks.prot\hich\af4\dbch\af31505\loch\f4 +ection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Flunet-io%2Fmarkdig%2Fblob%2Fmaster%2Flicense.txt&data=04%7C01%7CJames.Conner%40autodesk.com%7Cdaecd65781944b855e7808d946251ff6%7C67bff79e7f914433a8e5c9252d2ddc1d%7C0%7C0%7C637617947520379375%7CUnknown%7CT +\hich\af4\dbch\af31505\loch\f4 W\hich\af4\dbch\af31505\loch\f4 FpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=eIL37c9G%2B11uq1htX8ARhSCvefpQIOMXjVAqMh1aceU%3D&reserved=0" }{\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 +\f4\fs22\ul\cf25\lang1031\langfe2057\langnp1031\insrsid5709539 {\*\datafield +00d0c9ea79f9bace118c8200aa004ba90b0200000003000000e0c9ea79f9bace118c8200aa004ba90b7c030000680074007400700073003a002f002f006e0061006d00310031002e0073006100660065006c0069006e006b0073002e00700072006f00740065006300740069006f006e002e006f00750074006c006f006f00 +6b002e0063006f006d002f003f00750072006c003d00680074007400700073002500330041002500320046002500320046006700690074006800750062002e0063006f006d002500320046006c0075006e00650074002d0069006f002500320046006d00610072006b0064006900670025003200460062006c006f00620025 +00320046006d00610073007400650072002500320046006c006900630065006e00730065002e00740078007400260064006100740061003d0030003400250037004300300031002500370043004a0061006d00650073002e0043006f006e006e00650072002500340030006100750074006f006400650073006b002e006300 +6f006d00250037004300640061006500630064003600350037003800310039003400340062003800350035006500370038003000380064003900340036003200350031006600660036002500370043003600370062006600660037003900650037006600390031003400340033003300610038006500350063003900320035 +00320064003200640064006300310064002500370043003000250037004300300025003700430036003300370036003100370039003400370035003200300033003700390033003700350025003700430055006e006b006e006f0077006e002500370043005400570046007000620047005a00730062003300640038006500 +79004a00570049006a006f0069004d004300340077004c006a00410077004d004400410069004c0043004a00510049006a006f006900560032006c0075004d007a00490069004c0043004a004200540069004900360049006b003100680061005700770069004c0043004a00580056004300490036004d006e003000250033 +00440025003700430031003000300030002600730064006100740061003d00650049004c0033003700630039004700250032004200310031007500710031006800740058003800410052006800530043007600650066007000510049004f004d0058006a005600410071004d00680031006100630065005500250033004400 +2600720065007300650072007600650064003d0030000000795881f43b1d7f48af2c825dc485276300000000a5ab0003}}}{\fldrslt {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \f4\fs22\ul\cf25\lang1031\langfe2057\langnp1031\insrsid5444290 \hich\af4\dbch\af31505\loch\f4 +https://github.com/lunet-io/markdig/blob/master/license.txt}}}\sectd \ltrsect\linex0\sectdefaultcl\sftnbj {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \f4\fs22\ul\cf25\lang1031\langfe2057\langnp1031\insrsid5444290 +\par }{\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \f4\fs22\cf24\insrsid5444290 \hich\af4\dbch\af31505\loch\f4 Copyright (c) 2018-2019, Alexandre Mutel +\par \hich\af4\dbch\af31505\loch\f4 A\hich\af4\dbch\af31505\loch\f4 ll rights reserved. +\par +\par \hich\af4\dbch\af31505\loch\f4 Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: +\par +\par \hich\af4\dbch\af31505\loch\f4 1. Redistributions of source code must retain the above copyright notice, this list of cond\hich\af4\dbch\af31505\loch\f4 itions and the following disclaimer. +\par +\par \hich\af4\dbch\af31505\loch\f4 2. 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. +\par +\par \hich\af4\dbch\af31505\loch\f4 THIS SOFTWA\hich\af4\dbch\af31505\loch\f4 +RE 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 +\hich\af4\dbch\af31505\loch\f4 C\hich\af4\dbch\af31505\loch\f4 +OPYRIGHT HOLDER 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 INTERRUP +\hich\af4\dbch\af31505\loch\f4 T\hich\af4\dbch\af31505\loch\f4 +ION) 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. +\par }{\rtlch\fcs1 \af40\afs18 \ltrch\fcs0 \f40\fs18\insrsid5444290 +\par }\pard \ltrpar\ql \li0\ri0\sl288\slmult1\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 {\rtlch\fcs1 \ab\af45\afs22 \ltrch\fcs0 \b\fs22\cf24\kerning1\insrsid5444290 \hich\af45\dbch\af31505\loch\f45 ILMerge v.3.0.4\hich\af45\dbch\af31505\loch\f45 1: +\par }\pard \ltrpar\ql \li0\ri0\widctlpar\wrapdefault\faauto\rin0\lin0\itap0 {\field{\*\fldinst {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \f4\fs22\ul\cf25\insrsid5444290 \hich\af4\dbch\af31505\loch\f4 +HYPERLINK "https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fdotnet%2FILMerge&data=04%7C01%7CJames.Conner%40autodesk.com%7Cdaecd65781944b855e7808d946251ff6%7C67bff79e7f914433a8e5c9252d2ddc1d%7C0%7C0%7C637617947520349504%7CUn +\hich\af4\dbch\af31505\loch\f4 known%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=d8RTLDvFmnAX0wzlDMSok0CEEbjsHzpPM9m8e4kXlaA%3D&reserved=0" }{\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 +\f4\fs22\ul\cf25\insrsid5709539 {\*\datafield +00d0c9ea79f9bace118c8200aa004ba90b0200000003000000e0c9ea79f9bace118c8200aa004ba90b38030000680074007400700073003a002f002f006e0061006d00310031002e0073006100660065006c0069006e006b0073002e00700072006f00740065006300740069006f006e002e006f00750074006c006f006f00 +6b002e0063006f006d002f003f00750072006c003d00680074007400700073002500330041002500320046002500320046006700690074006800750062002e0063006f006d0025003200460064006f0074006e006500740025003200460049004c004d006500720067006500260064006100740061003d0030003400250037 +004300300031002500370043004a0061006d00650073002e0043006f006e006e00650072002500340030006100750074006f006400650073006b002e0063006f006d00250037004300640061006500630064003600350037003800310039003400340062003800350035006500370038003000380064003900340036003200 +35003100660066003600250037004300360037006200660066003700390065003700660039003100340034003300330061003800650035006300390032003500320064003200640064006300310064002500370043003000250037004300300025003700430036003300370036003100370039003400370035003200300033 +003400390035003000340025003700430055006e006b006e006f0077006e002500370043005400570046007000620047005a0073006200330064003800650079004a00570049006a006f0069004d004300340077004c006a00410077004d004400410069004c0043004a00510049006a006f006900560032006c0075004d00 +7a00490069004c0043004a004200540069004900360049006b003100680061005700770069004c0043004a00580056004300490036004d006e00300025003300440025003700430031003000300030002600730064006100740061003d0064003800520054004c004400760046006d006e0041005800300077007a006c0044 +004d0053006f006b00300043004500450062006a00730048007a00700050004d0039006d003800650034006b0058006c00610041002500330044002600720065007300650072007600650064003d0030000000795881f43b1d7f48af2c825dc485276300000000a5ab0003}}}{\fldrslt {\rtlch\fcs1 \af4\afs22 +\ltrch\fcs0 \f4\fs22\ul\cf25\insrsid5444290 \hich\af4\dbch\af31505\loch\f4 https://github.com/dotnet/ILMerge}}}\sectd \ltrsect\linex0\sectdefaultcl\sftnbj {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \f4\fs22\ul\cf25\insrsid5444290 +\par }{\field{\*\fldinst {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \f4\fs22\ul\cf25\insrsid5444290 \hich\af4\dbch\af31505\loch\f4 HYPERLINK "https://nam11.safelinks.protection.outlook.com/?u\hich\af4\dbch\af31505\loch\f4 +rl=https%3A%2F%2Fgithub.com%2Fdotnet%2FILMerge%2Fblob%2Fmaster%2FLICENSE&data=04%7C01%7CJames.Conner%40autodesk.com%7Cdaecd65781944b855e7808d946251ff6%7C67bff79e7f914433a8e5c9252d2ddc1d%7C0%7C0%7C637617947520349504%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAw +\hich\af4\dbch\af31505\loch\f4 M\hich\af4\dbch\af31505\loch\f4 DAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=73ySd49h5gcqiGS1xohabFnwoH42CB8523UdKE%2B6dsw%3D&reserved=0" }{\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 +\f4\fs22\ul\cf25\insrsid5709539 {\*\datafield +00d0c9ea79f9bace118c8200aa004ba90b0200000003000000e0c9ea79f9bace118c8200aa004ba90b70030000680074007400700073003a002f002f006e0061006d00310031002e0073006100660065006c0069006e006b0073002e00700072006f00740065006300740069006f006e002e006f00750074006c006f006f00 +6b002e0063006f006d002f003f00750072006c003d00680074007400700073002500330041002500320046002500320046006700690074006800750062002e0063006f006d0025003200460064006f0074006e006500740025003200460049004c004d00650072006700650025003200460062006c006f0062002500320046 +006d00610073007400650072002500320046004c004900430045004e0053004500260064006100740061003d0030003400250037004300300031002500370043004a0061006d00650073002e0043006f006e006e00650072002500340030006100750074006f006400650073006b002e0063006f006d002500370043006400 +61006500630064003600350037003800310039003400340062003800350035006500370038003000380064003900340036003200350031006600660036002500370043003600370062006600660037003900650037006600390031003400340033003300610038006500350063003900320035003200640032006400640063 +00310064002500370043003000250037004300300025003700430036003300370036003100370039003400370035003200300033003400390035003000340025003700430055006e006b006e006f0077006e002500370043005400570046007000620047005a0073006200330064003800650079004a00570049006a006f00 +69004d004300340077004c006a00410077004d004400410069004c0043004a00510049006a006f006900560032006c0075004d007a00490069004c0043004a004200540069004900360049006b003100680061005700770069004c0043004a00580056004300490036004d006e003000250033004400250037004300310030 +00300030002600730064006100740061003d00370033007900530064003400390068003500670063007100690047005300310078006f0068006100620046006e0077006f00480034003200430042003800350032003300550064004b0045002500320042003600640073007700250033004400260072006500730065007200 +7600650064003d0030000000795881f43b1d7f48af2c825dc485276300000000a5ab0003}}}{\fldrslt {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \f4\fs22\ul\cf25\insrsid5444290 \hich\af4\dbch\af31505\loch\f4 https://github.com/dotnet/ILMerge/blob/master/LICENSE}}}\sectd \ltrsect +\linex0\sectdefaultcl\sftnbj {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \f4\fs22\ul\cf25\insrsid5444290 +\par }{\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \f4\fs22\cf24\insrsid5444290 \hich\af4\dbch\af31505\loch\f4 MIT License +\par \hich\af4\dbch\af31505\loch\f4 Copyright (c) .NET Foundation and Contributors +\par \hich\af4\dbch\af31505\loch\f4 All Rights Reser\hich\af4\dbch\af31505\loch\f4 ved +\par +\par \hich\af4\dbch\af31505\loch\f4 +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, modif +\hich\af4\dbch\af31505\loch\f4 y, 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: +\par +\par \hich\af4\dbch\af31505\loch\f4 The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. +\par +\par \hich\af4\dbch\af31505\loch\f4 THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES \hich\af4\dbch\af31505\loch\f4 +OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. 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 +\hich\af4\dbch\af31505\loch\f4 I\hich\af4\dbch\af31505\loch\f4 N CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +\par }{\rtlch\fcs1 \af40\afs18 \ltrch\fcs0 \f40\fs18\insrsid5444290 +\par }\pard \ltrpar\ql \li0\ri0\sl288\slmult1\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 {\rtlch\fcs1 \ab\af45\afs22 \ltrch\fcs0 \b\fs22\cf24\kerning1\insrsid5444290 \hich\af45\dbch\af31505\loch\f45 System.Buffers v.4.5.1 +\par }\pard \ltrpar\ql \li0\ri0\widctlpar\wrapdefault\faauto\rin0\lin0\itap0 {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \f4\fs22\cf24\insrsid5444290 \hich\af4\dbch\af31505\loch\f4 The MIT License (MIT) +\par \hich\af4\dbch\af31505\loch\f4 Copyright (c) .NET Foundation and Contributors +\par \hich\af4\dbch\af31505\loch\f4 All rights reserved. +\par +\par \hich\af4\dbch\af31505\loch\f4 Permission is hereby granted, free of charge, to any person obta\hich\af4\dbch\af31505\loch\f4 +ining 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 +\hich\af4\dbch\af31505\loch\f4 \hich\af4\dbch\af31505\loch\f4 Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: +\par +\par \hich\af4\dbch\af31505\loch\f4 The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. +\par +\par \hich\af4\dbch\af31505\loch\f4 THE SOFTWARE I\hich\af4\dbch\af31505\loch\f4 +S PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR AN +\hich\af4\dbch\af31505\loch\f4 Y\hich\af4\dbch\af31505\loch\f4 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. + +\par }{\rtlch\fcs1 \af40\afs18 \ltrch\fcs0 \f40\fs18\insrsid5444290 +\par }\pard \ltrpar\ql \li0\ri0\sl288\slmult1\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 {\rtlch\fcs1 \ab\af45\afs22 \ltrch\fcs0 \b\fs22\cf24\kerning1\insrsid5444290 \hich\af45\dbch\af31505\loch\f45 System.Memory v.4.5.4 +\par }\pard \ltrpar\ql \li0\ri0\widctlpar\wrapdefault\faauto\rin0\lin0\itap0 {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \f4\fs22\cf24\insrsid5444290 \hich\af4\dbch\af31505\loch\f4 The MIT License (MIT) +\par \hich\af4\dbch\af31505\loch\f4 Copyright (c) .NET Foundation and Contributors +\par \hich\af4\dbch\af31505\loch\f4 All rights reserved. +\par +\par \hich\af4\dbch\af31505\loch\f4 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 restrict\hich\af4\dbch\af31505\loch\f4 +ion, 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: +\par +\par \hich\af4\dbch\af31505\loch\f4 The above\hich\af4\dbch\af31505\loch\f4 copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. +\par +\par \hich\af4\dbch\af31505\loch\f4 THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHA\hich\af4\dbch\af31505\loch\f4 +NTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. 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 CONNEC +\hich\af4\dbch\af31505\loch\f4 T\hich\af4\dbch\af31505\loch\f4 ION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +\par }{\rtlch\fcs1 \af40\afs18 \ltrch\fcs0 \f40\fs18\insrsid5444290 +\par }\pard \ltrpar\ql \li0\ri0\sl288\slmult1\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 {\rtlch\fcs1 \ab\af45\afs22 \ltrch\fcs0 \b\fs22\cf24\kerning1\insrsid5444290 \hich\af45\dbch\af31505\loch\f45 System.Numerics.Vectors v.4.5.0 +\par }\pard \ltrpar\ql \li0\ri0\widctlpar\wrapdefault\faauto\rin0\lin0\itap0 {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \f4\fs22\cf24\insrsid5444290 \hich\af4\dbch\af31505\loch\f4 The MIT License (MIT) +\par \hich\af4\dbch\af31505\loch\f4 Copyright (c) .NET Foundation and Contributors +\par \hich\af4\dbch\af31505\loch\f4 All rights reserved. +\par +\par \hich\af4\dbch\af31505\loch\f4 +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, m +\hich\af4\dbch\af31505\loch\f4 e\hich\af4\dbch\af31505\loch\f4 rge, 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: +\par +\par \hich\af4\dbch\af31505\loch\f4 The above copyright notice and this permission notice shall be included in all\hich\af4\dbch\af31505\loch\f4 copies or substantial portions of the Software. +\par +\par \hich\af4\dbch\af31505\loch\f4 THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN N +\hich\af4\dbch\af31505\loch\f4 +O 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. + +\par }{\rtlch\fcs1 \af40\afs18 \ltrch\fcs0 \f40\fs18\insrsid5444290 +\par }\pard \ltrpar\ql \li0\ri0\sl288\slmult1\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 {\rtlch\fcs1 \ab\af45\afs22 \ltrch\fcs0 \b\fs22\cf24\kerning1\insrsid5444290 \hich\af45\dbch\af31505\loch\f45 System.Runtime.CompilerServices.Unsafe v.4.5.3 +\par }\pard \ltrpar\ql \li0\ri0\widctlpar\wrapdefault\faauto\rin0\lin0\itap0 {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \f4\fs22\cf24\insrsid5444290 \hich\af4\dbch\af31505\loch\f4 The MIT License (MIT) +\par \hich\af4\dbch\af31505\loch\f4 Copyright (c) .NET Foundation and Contributors +\par \hich\af4\dbch\af31505\loch\f4 All rights reserved. +\par +\par \hich\af4\dbch\af31505\loch\f4 Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documenta\hich\af4\dbch\af31505\loch\f4 +tion 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 +\hich\af4\dbch\af31505\loch\f4 i\hich\af4\dbch\af31505\loch\f4 s furnished to do so, subject to the following conditions: +\par +\par \hich\af4\dbch\af31505\loch\f4 The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. +\par +\par \hich\af4\dbch\af31505\loch\f4 THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPR\hich\af4\dbch\af31505\loch\f4 +ESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACT +\hich\af4\dbch\af31505\loch\f4 I\hich\af4\dbch\af31505\loch\f4 ON OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +\par }{\rtlch\fcs1 \af40\afs18 \ltrch\fcs0 \f40\fs18\insrsid5444290 +\par }\pard \ltrpar\ql \li0\ri0\sl288\slmult1\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 {\rtlch\fcs1 \ab\af45\afs22 \ltrch\fcs0 \b\fs22\cf24\kerning1\insrsid5444290 \hich\af45\dbch\af31505\loch\f45 System.Text.Encoding.CodePages v.4.5.0 +\par }\pard \ltrpar\ql \li0\ri0\widctlpar\wrapdefault\faauto\rin0\lin0\itap0 {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \f4\fs22\cf24\insrsid5444290 \hich\af4\dbch\af31505\loch\f4 The MIT License (MIT) +\par \hich\af4\dbch\af31505\loch\f4 Copyright (c) .NET Foundation and Contributors +\par \hich\af4\dbch\af31505\loch\f4 All right\hich\af4\dbch\af31505\loch\f4 s reserved. +\par +\par \hich\af4\dbch\af31505\loch\f4 +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, cop +\hich\af4\dbch\af31505\loch\f4 y, 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: +\par +\par \hich\af4\dbch\af31505\loch\f4 The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. +\par +\par \hich\af4\dbch\af31505\loch\f4 THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES \hich\af4\dbch\af31505\loch\f4 +OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. 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 +\hich\af4\dbch\af31505\loch\f4 I\hich\af4\dbch\af31505\loch\f4 N CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +\par }{\rtlch\fcs1 \af40\afs18 \ltrch\fcs0 \f40\fs18\insrsid5444290 +\par }\pard \ltrpar\ql \li0\ri0\sl288\slmult1\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 {\rtlch\fcs1 \ab\af45\afs22 \ltrch\fcs0 \b\fs22\cf24\kerning1\insrsid5444290 \hich\af45\dbch\af31505\loch\f45 Rapidjson v.1.1.0: +\par }\pard \ltrpar\ql \li0\ri0\widctlpar\wrapdefault\faauto\rin0\lin0\itap0 {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \f4\fs22\cf24\insrsid5444290 \hich\af4\dbch\af31505\loch\f4 \hich\f4 Copyright \'a9\loch\f4 + 2015 THL A29 Limited, a Tencent company, and Milo Yip. All rights reserved. +\par +\par \hich\af4\dbch\af31505\loch\f4 Permission is hereby granted, free of charge, to any person obtaining\hich\af4\dbch\af31505\loch\f4 + 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 Soft +\hich\af4\dbch\af31505\loch\f4 w\hich\af4\dbch\af31505\loch\f4 +are, 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. +\par +\par \hich\af4\dbch\af31505\loch\f4 THE SOFTWARE IS PROV\hich\af4\dbch\af31505\loch\f4 +IDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAI +\hich\af4\dbch\af31505\loch\f4 M\hich\af4\dbch\af31505\loch\f4 , 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. +\par }{\rtlch\fcs1 \af40\afs20 \ltrch\fcs0 \f40\fs20\insrsid5444290 +\par }\pard \ltrpar\ql \li0\ri0\sl288\slmult1\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 {\rtlch\fcs1 \ab\af45\afs22 \ltrch\fcs0 \b\fs22\cf24\kerning1\insrsid5444290 \hich\af45\dbch\af31505\loch\f45 Mono.Cecil v.0.11.4: +\par }\pard \ltrpar\ql \li0\ri0\widctlpar\wrapdefault\faauto\rin0\lin0\itap0 {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \f4\fs22\cf24\insrsid5444290 \hich\af4\dbch\af31505\loch\f4 Copyright (c) 2008 - 2015 Jb Evain +\par \hich\af4\dbch\af31505\loch\f4 Copyright (c)\hich\af4\dbch\af31505\loch\f4 2008 - 2011 Novell, Inc. +\par +\par \hich\af4\dbch\af31505\loch\f4 +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 righ +\hich\af4\dbch\af31505\loch\f4 ts 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: +\par +\par \hich\af4\dbch\af31505\loch\f4 The above copyright notice and this permission noti\hich\af4\dbch\af31505\loch\f4 ce shall be included in all copies or substantial portions of the Software. +\par +\par \hich\af4\dbch\af31505\loch\f4 THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +\par \hich\af4\dbch\af31505\loch\f4 EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOS\hich\af4\dbch\af31505\loch\f4 +E AND NONINFRINGEMENT. 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 +\hich\af4\dbch\af31505\loch\f4 \hich\af4\dbch\af31505\loch\f4 DEALINGS IN THE SOFTWARE. +\par }{\rtlch\fcs1 \af40\afs20 \ltrch\fcs0 \f40\fs20\insrsid5444290 +\par }\pard \ltrpar\ql \li0\ri0\sl288\slmult1\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 {\rtlch\fcs1 \ab\af45\afs22 \ltrch\fcs0 \b\fs22\cf24\kerning1\insrsid5444290 \hich\af45\dbch\af31505\loch\f45 LaunchDarkly.Clientsdk v.2.0.1: +\par }\pard \ltrpar\ql \li0\ri0\widctlpar\wrapdefault\faauto\rin0\lin0\itap0 {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \f4\fs22\cf24\insrsid5444290 \hich\af4\dbch\af31505\loch\f4 Copyright 2018 Catamorphic, Co. +\par +\par \hich\af4\dbch\af31505\loch\f4 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 Licens\hich\af4\dbch\af31505\loch\f4 e at }{\field{\*\fldinst { +\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \f4\fs22\insrsid5444290 \hich\af4\dbch\af31505\loch\f4 HYPERLINK http://www.apache.org/licenses/LICENSE-2.0 }{\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \f4\fs22\insrsid5709539 {\*\datafield +00d0c9ea79f9bace118c8200aa004ba90b0200000003000000e0c9ea79f9bace118c8200aa004ba90b6e00000068007400740070003a002f002f007700770077002e006100700061006300680065002e006f00720067002f006c006900630065006e007300650073002f004c004900430045004e00530045002d0032002e00 +30000000795881f43b1d7f48af2c825dc485276300000000a5ab0003}}}{\fldrslt {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \f4\fs22\insrsid5444290 \hich\af4\dbch\af31505\loch\f4 http://www.apache.org/licenses/LICENSE-2.0}}}\sectd \ltrsect\linex0\sectdefaultcl\sftnbj { +\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \f4\fs22\cf24\insrsid5444290 \hich\af4\dbch\af31505\loch\f4 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES +\hich\af4\dbch\af31505\loch\f4 OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. +\par }{\rtlch\fcs1 \af40\afs20 \ltrch\fcs0 \f40\fs20\insrsid5444290 +\par }\pard \ltrpar\ql \li0\ri0\sl288\slmult1\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 {\rtlch\fcs1 \ab\af45\afs22 \ltrch\fcs0 \b\fs22\cf24\kerning1\insrsid5444290 \hich\af45\dbch\af31505\loch\f45 CommandLineParser v.2.8.0: +\par }\pard \ltrpar\ql \li0\ri0\widctlpar\wrapdefault\faauto\rin0\lin0\itap0 {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \f4\fs22\cf24\insrsid5444290 \hich\af4\dbch\af31505\loch\f4 The MIT License (MIT) +\par \hich\af4\dbch\af31505\loch\f4 Copyright (c) 2005 - 2015 Giacomo Stelluti Scala & Contributors +\par +\par \hich\af4\dbch\af31505\loch\f4 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,\hich\af4\dbch\af31505\loch\f4 + 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: +\par +\par \hich\af4\dbch\af31505\loch\f4 The above cop\hich\af4\dbch\af31505\loch\f4 yright notice and this permission notice shall be included in all copies or substantial portions of the Software. +\par +\par \hich\af4\dbch\af31505\loch\f4 THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTAB\hich\af4\dbch\af31505\loch\f4 +ILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. 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 +\hich\af4\dbch\af31505\loch\f4 \hich\af4\dbch\af31505\loch\f4 WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +\par }{\rtlch\fcs1 \af40\afs20 \ltrch\fcs0 \f40\fs20\insrsid5444290 +\par }\pard \ltrpar\ql \li0\ri0\sl288\slmult1\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 {\rtlch\fcs1 \ab\af45\afs22 \ltrch\fcs0 \b\fs22\cf24\kerning1\insrsid5444290 \hich\af45\dbch\af31505\loch\f45 Nlohmann.json v.3.7.3 +\par }\pard \ltrpar\ql \li0\ri0\widctlpar\wrapdefault\faauto\rin0\lin0\itap0 {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \f4\fs22\cf24\insrsid5444290 \hich\af4\dbch\af31505\loch\f4 \hich\f4 Copyright \'a9\loch\f4 2013-2022 Niels Lohmann +\par +\par \hich\af4\dbch\af31505\loch\f4 Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (th\hich\af4\dbch\af31505\loch\f4 +e "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 +\par \hich\af4\dbch\af31505\loch\f4 furnished to\hich\af4\dbch\af31505\loch\f4 do so, subject to the following conditions: +\par +\par \hich\af4\dbch\af31505\loch\f4 The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. +\par +\par \hich\af4\dbch\af31505\loch\f4 THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED\hich\af4\dbch\af31505\loch\f4 +, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRAC +\hich\af4\dbch\af31505\loch\f4 T\hich\af4\dbch\af31505\loch\f4 , TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +\par }{\rtlch\fcs1 \af40\afs20 \ltrch\fcs0 \f40\fs20\insrsid5444290 +\par }\pard \ltrpar\ql \li0\ri0\sl288\slmult1\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 {\rtlch\fcs1 \ab\af45\afs22 \ltrch\fcs0 \b\fs22\cf24\kerning1\insrsid5444290 \hich\af45\dbch\af31505\loch\f45 Autodesk Artifakt Fonts +\par }\pard \ltrpar\ql \li0\ri0\widctlpar\wrapdefault\faauto\rin0\lin0\itap0 {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \f4\fs22\cf24\insrsid5444290 \hich\af4\dbch\af31505\loch\f4 \hich\f4 Licensing information: \'a9\loch\f4 Autodesk, Inc. All Rights Reserved. + +\par +\par \hich\af4\dbch\af31505\loch\f4 The Artifakt font software is Autodesk proprie\hich\af4\dbch\af31505\loch\f4 +tary and confidential, and may be used only by authorized users and only for Autodesk business purposes. Any use not authorized by Autodesk is not permitted and is an infringement of Autodesk's intellectual property rights as well as a breach of your agre +\hich\af4\dbch\af31505\loch\f4 e\hich\af4\dbch\af31505\loch\f4 ment with Autodesk. Go to }{\field{\*\fldinst {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \f4\fs22\insrsid5444290 \hich\af4\dbch\af31505\loch\f4 +HYPERLINK https://brand.autodesk.com/brand-system/typography }{\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \f4\fs22\insrsid5709539 {\*\datafield +00d0c9ea79f9bace118c8200aa004ba90b0200000003000000e0c9ea79f9bace118c8200aa004ba90b7e000000680074007400700073003a002f002f006200720061006e0064002e006100750074006f006400650073006b002e0063006f006d002f006200720061006e0064002d00730079007300740065006d002f007400 +790070006f006700720061007000680079000000795881f43b1d7f48af2c825dc485276300000000a5ab0003}}}{\fldrslt {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \f4\fs22\insrsid5444290 \hich\af4\dbch\af31505\loch\f4 https://brand.autodesk.com/brand-system/typography}}} +\sectd \ltrsect\linex0\sectdefaultcl\sftnbj {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \f4\fs22\cf24\insrsid5444290 \hich\af4\dbch\af31505\loch\f4 for detailed usage guidelines on when and how to use the Artifakt designer collection. +\par }{\rtlch\fcs1 \af40\afs20 \ltrch\fcs0 \f40\fs20\insrsid5444290 +\par }\pard \ltrpar\ql \li0\ri0\sl288\slmult1\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 {\rtlch\fcs1 \ab\af45\afs22 \ltrch\fcs0 \b\fs22\cf24\kerning1\insrsid5444290 \hich\af45\dbch\af31505\loch\f45 DirectX +\par }{\field{\*\fldinst {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \f4\fs22\ul\cf25\insrsid5444290 \hich\af4\dbch\af31505\loch\f4 HYPERLINK "https://\hich\af4\dbch\af31505\loch\f4 +github.com/DynamoDS/Dynamo/tree/master/tools/install/Extra/DirectX/License%20Agreements/DirectX%20SDK%20EULA.txt" }{\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \f4\fs22\ul\cf25\insrsid5709539 {\*\datafield +00d0c9ea79f9bace118c8200aa004ba90b0200000003000000e0c9ea79f9bace118c8200aa004ba90bfe000000680074007400700073003a002f002f006700690074006800750062002e0063006f006d002f00440079006e0061006d006f00440053002f00440079006e0061006d006f002f0074007200650065002f006d00 +610073007400650072002f0074006f006f006c0073002f0069006e007300740061006c006c002f00450078007400720061002f0044006900720065006300740058002f004c006900630065006e00730065002000410067007200650065006d0065006e00740073002f0044006900720065006300740058002000530044004b +002000450055004c0041002e007400780074000000795881f43b1d7f48af2c825dc485276300000000a5ab0003}}}{\fldrslt {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \f4\fs22\ul\cf25\insrsid5444290 \hich\af4\dbch\af31505\loch\f4 +https://github.com/DynamoDS/Dynamo/tree/master/tools/install/Extra/DirectX/License Agreements/DirectX SDK EULA.txt +\par }}}\pard\plain \ltrpar\ql \li0\ri0\sl288\slmult1\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 \rtlch\fcs1 \af31507\afs24\alang1025 \ltrch\fcs0 \fs24\lang1033\langfe2057\loch\af45\hich\af45\dbch\af31505\cgrid\langnp1033\langfenp2057 \sectd \ltrsect +\linex0\sectdefaultcl\sftnbj {\field{\*\fldinst {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \f4\fs22\ul\cf25\insrsid5444290 \hich\af4\dbch\af31505\loch\f4 HYPERLINK "https://githu\hich\af4\dbch\af31505\loch\f4 +b.com/DynamoDS/Dynamo/tree/master/tools/install/Extra/DirectX/License%20Agreements/directx%20redist.txt" }{\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \f4\fs22\ul\cf25\insrsid5709539 {\*\datafield +00d0c9ea79f9bace118c8200aa004ba90b0200000003000000e0c9ea79f9bace118c8200aa004ba90bfa000000680074007400700073003a002f002f006700690074006800750062002e0063006f006d002f00440079006e0061006d006f00440053002f00440079006e0061006d006f002f0074007200650065002f006d00 +610073007400650072002f0074006f006f006c0073002f0069006e007300740061006c006c002f00450078007400720061002f0044006900720065006300740058002f004c006900630065006e00730065002000410067007200650065006d0065006e00740073002f00640069007200650063007400780020007200650064 +006900730074002e007400780074000000795881f43b1d7f48af2c825dc485276300000000a5ab0003}}}{\fldrslt {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \f4\fs22\ul\cf25\insrsid5444290 \hich\af4\dbch\af31505\loch\f4 +https://github.com/DynamoDS/Dynamo/tree/master/tools/install/Extra/DirectX/License Agreements/directx redist.txt +\par }}}\pard\plain \ltrpar\ql \li0\ri0\sl288\slmult1\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 \rtlch\fcs1 \af31507\afs24\alang1025 \ltrch\fcs0 \fs24\lang1033\langfe2057\loch\af45\hich\af45\dbch\af31505\cgrid\langnp1033\langfenp2057 \sectd \ltrsect +\linex0\sectdefaultcl\sftnbj {\rtlch\fcs1 \ab\af4 \ltrch\fcs0 \b\f4\kerning1\insrsid5444290 +\par }{\rtlch\fcs1 \ab\af45\afs22 \ltrch\fcs0 \b\fs22\cf24\kerning1\insrsid5444290 \hich\af45\dbch\af31505\loch\f45 ImageMagick +\par }{\field{\*\fldinst {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \f4\fs22\insrsid5444290 \hich\af4\dbch\af31505\loch\f4 HYPERLINK https://imagemagick.org/script/license.php }{\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \f4\fs22\insrsid5709539 {\*\datafield +00d0c9ea79f9bace118c8200aa004ba90b0200000003000000e0c9ea79f9bace118c8200aa004ba90b6e000000680074007400700073003a002f002f0069006d006100670065006d0061006700690063006b002e006f00720067002f007300630072006900700074002f006c006900630065006e00730065002e0070006800 +70000000795881f43b1d7f48af2c825dc485276300000000a5ab0003}}}{\fldrslt {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \f4\fs22\insrsid5444290 \hich\af4\dbch\af31505\loch\f4 https://imagemagick.org/script/license.php}}}\sectd \ltrsect\linex0\sectdefaultcl\sftnbj { +\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \f4\fs22\insrsid5444290 +\par }{\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \f4\fs22\insrsid5709539 +\par }{\rtlch\fcs1 \ab\af45\afs22 \ltrch\fcs0 \b\fs22\cf24\kerning1\insrsid5709539\charrsid5709539 \hich\af45\dbch\af31505\loch\f45 LiveCharts}{\rtlch\fcs1 \ab\af45\afs22 \ltrch\fcs0 \b\fs22\cf24\kerning1\insrsid5709539 +\par }\pard \ltrpar\ql \li0\ri0\sl288\slmult1\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0\pararsid5709539 {\field\flddirty{\*\fldinst {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \f4\fs22\insrsid5709539 \hich\af4\dbch\af31505\loch\f4 \hich\af4\dbch\af31505\loch\f4 +HYPERLINK \hich\af4\dbch\af31505\loch\f4 "}{\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \f4\fs22\insrsid5709539\charrsid5709539 \hich\af4\dbch\af31505\loch\f4 https://v0.lvcharts.com/}{\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \f4\fs22\insrsid5709539 +\hich\af4\dbch\af31505\loch\f4 "\hich\af4\dbch\af31505\loch\f4 }}{\fldrslt {\rtlch\fcs1 \af31507 \ltrch\fcs0 \insrsid5709539\charrsid5709539 \hich\af45\dbch\af31505\loch\f45 https://v0.lvcharts.com/}}}\sectd \ltrsect\linex0\sectdefaultcl\sftnbj { +\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \f4\fs22\cf24\insrsid5709539 +\par }{\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \f4\fs22\cf24\insrsid5709539\charrsid5709539 \hich\af4\dbch\af31505\loch\f4 The MIT License (MIT) +\par \hich\af4\dbch\af31505\loch\f4 Copyright (c) 2016 Alberto Rodriguez & LiveCharts contributors +\par }{\rtlch\fcs1 \af31507 \ltrch\fcs0 \insrsid5709539\charrsid5709539 \hich\af45\dbch\af31505\loch\f45 https://github.com/Live-Charts/Live-Charts/blob/master/L\hich\af45\dbch\af31505\loch\f45 ICENSE.TXT +\par }\pard \ltrpar\ql \li0\ri0\widctlpar\wrapdefault\faauto\rin0\lin0\itap0 {\rtlch\fcs1 \af40\afs20 \ltrch\fcs0 \f40\fs20\lang1053\langfe2057\langnp1053\insrsid5444290 +\par }\pard \ltrpar\ql \li0\ri0\sl288\slmult1\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 {\rtlch\fcs1 \ab\af45\afs22 \ltrch\fcs0 \b\fs22\cf24\lang1053\langfe2057\kerning1\langnp1053\insrsid5444290 \hich\af45\dbch\af31505\loch\f45 Magick.NET.Core +\par }{\field{\*\fldinst {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \f4\fs22\lang1053\langfe2057\langnp1053\insrsid5444290 \hich\af4\dbch\af31505\loch\f4 HYPERLINK https://github.com/dlemstra/Magick.NET/blob/main/License.txt }{\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 +\f4\fs22\lang1053\langfe2057\langnp1053\insrsid5709539 {\*\datafield +00d0c9ea79f9bace118c8200aa004ba90b0200000003000000e0c9ea79f9bace118c8200aa004ba90b92000000680074007400700073003a002f002f006700690074006800750062002e0063006f006d002f0064006c0065006d0073007400720061002f004d0061006700690063006b002e004e00450054002f0062006c00 +6f0062002f006d00610069006e002f004c006900630065006e00730065002e007400780074000000795881f43b1d7f48af2c825dc485276300000000a5ab0003}}}{\fldrslt {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \f4\fs22\lang1053\langfe2057\langnp1053\insrsid5444290 +\hich\af4\dbch\af31505\loch\f4 https://github.com/dlemstra/Magick.NET/blob/main/License.txt}}}\sectd \ltrsect\linex0\sectdefaultcl\sftnbj {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \f4\fs22\ul\cf25\lang1053\langfe2057\langnp1053\insrsid5444290 +\par }\pard \ltrpar\ql \li0\ri0\widctlpar\wrapdefault\faauto\rin0\lin0\itap0 {\rtlch\fcs1 \af40\afs20 \ltrch\fcs0 \f40\fs20\lang1053\langfe2057\langnp1053\insrsid5444290 +\par }\pard \ltrpar\ql \li0\ri0\sl288\slmult1\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 {\rtlch\fcs1 \ab\af45\afs22 \ltrch\fcs0 \b\fs22\cf24\kerning1\insrsid5444290 \hich\af45\dbch\af31505\loch\f45 Microsoft 2015 C Runtime DLLs, msvcp140.dll, msvcr140.dll + +\par }{\field{\*\fldinst {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \f4\fs22\ul\cf25\insrsid5444290 \hich\af4\dbch\af31505\loch\f4 HYPERLINK "https://docs.microsoft.com/en-us/visualstudio/productinfo/2015-redistribution-vs" }{\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 +\f4\fs22\ul\cf25\insrsid5709539 {\*\datafield +00d0c9ea79f9bace118c8200aa004ba90b0200000003000000e0c9ea79f9bace118c8200aa004ba90bba000000680074007400700073003a002f002f0064006f00630073002e006d006900630072006f0073006f00660074002e0063006f006d002f0065006e002d00750073002f00760069007300750061006c0073007400 +7500640069006f002f00700072006f00640075006300740069006e0066006f002f0032003000310035002d007200650064006900730074007200690062007500740069006f006e002d00760073000000795881f43b1d7f48af2c825dc485276300000000a5ab0003}}}{\fldrslt {\rtlch\fcs1 \af4\afs22 +\ltrch\fcs0 \f4\fs22\ul\cf25\insrsid5444290 \hich\af4\dbch\af31505\loch\f4 https://docs.microsoft.com/en-us/visuals\hich\af4\dbch\af31505\loch\f4 tudio/productinfo/2015-redistribution-vs +\par }}}\pard\plain \ltrpar\ql \li0\ri0\sl288\slmult1\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 \rtlch\fcs1 \af31507\afs24\alang1025 \ltrch\fcs0 \fs24\lang1033\langfe2057\loch\af45\hich\af45\dbch\af31505\cgrid\langnp1033\langfenp2057 \sectd \ltrsect +\linex0\sectdefaultcl\sftnbj {\rtlch\fcs1 \af4 \ltrch\fcs0 \f4\insrsid5444290 +\par }{\rtlch\fcs1 \ab\af45\afs22 \ltrch\fcs0 \b\fs22\cf24\kerning1\insrsid5444290 \hich\af45\dbch\af31505\loch\f45 Open XML SDK +\par }{\field{\*\fldinst {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \f4\fs22\insrsid5444290 \hich\af4\dbch\af31505\loch\f4 HYPERLINK https://github.com/OfficeDev/Open-XML-SDK }{\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \f4\fs22\insrsid5709539 {\*\datafield +00d0c9ea79f9bace118c8200aa004ba90b0200000003000000e0c9ea79f9bace118c8200aa004ba90b6c000000680074007400700073003a002f002f006700690074006800750062002e0063006f006d002f004f00660066006900630065004400650076002f004f00700065006e002d0058004d004c002d00530044004b00 +0000795881f43b1d7f48af2c825dc485276300000000a5ab0003}}}{\fldrslt {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \f4\fs22\insrsid5444290 \hich\af4\dbch\af31505\loch\f4 https://github.com/OfficeDev/Open-XML-SDK}}}\sectd \ltrsect\linex0\sectdefaultcl\sftnbj { +\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \f4\fs22\ul\cf25\insrsid5444290 +\par }{\field{\*\fldinst {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \f4\fs22\insrsid5444290 \hich\af4\dbch\af31505\loch\f4 HYPERLINK https://github.com/OfficeDev/Open-XML-SDK/blob/main/LICENSE }{\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \f4\fs22\insrsid5709539 +{\*\datafield +00d0c9ea79f9bace118c8200aa004ba90b0200000003000000e0c9ea79f9bace118c8200aa004ba90b90000000680074007400700073003a002f002f006700690074006800750062002e0063006f006d002f004f00660066006900630065004400650076002f004f00700065006e002d0058004d004c002d00530044004b00 +2f0062006c006f0062002f006d00610069006e002f004c004900430045004e00530045000000795881f43b1d7f48af2c825dc485276300000000a5ab0003}}}{\fldrslt {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \f4\fs22\insrsid5444290 \hich\af4\dbch\af31505\loch\f4 +https://github.com/OfficeDev/Op\hich\af4\dbch\af31505\loch\f4 en-XML-SDK/blob/main/LICENSE}}}\sectd \ltrsect\linex0\sectdefaultcl\sftnbj {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \f4\fs22\ul\cf25\insrsid5444290 +\par }\pard \ltrpar\ql \li0\ri0\widctlpar\wrapdefault\faauto\rin0\lin0\itap0 {\rtlch\fcs1 \af40\afs20 \ltrch\fcs0 \f40\fs20\lang1053\langfe2057\langnp1053\insrsid5444290 +\par }\pard \ltrpar\ql \li0\ri0\sl288\slmult1\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 {\rtlch\fcs1 \ab\af45\afs22 \ltrch\fcs0 \b\fs22\cf24\lang1053\langfe2057\kerning1\langnp1053\insrsid5444290 \hich\af45\dbch\af31505\loch\f45 Prism +\par }{\field{\*\fldinst {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \f4\fs22\ul\cf25\lang1053\langfe2057\langnp1053\insrsid5444290 \hich\af4\dbch\af31505\loch\f4 HYPERLINK "http://msdn.microsoft.com/en-us/library/gg406140.aspx" }{\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 +\f4\fs22\ul\cf25\lang1053\langfe2057\langnp1053\insrsid5709539 {\*\datafield +00d0c9ea79f9bace118c8200aa004ba90b0200000003000000e0c9ea79f9bace118c8200aa004ba90b8400000068007400740070003a002f002f006d00730064006e002e006d006900630072006f0073006f00660074002e0063006f006d002f0065006e002d00750073002f006c006900620072006100720079002f006700 +67003400300036003100340030002e0061007300700078000000795881f43b1d7f48af2c825dc485276300000000a5ab0003}}}{\fldrslt {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \f4\fs22\ul\cf25\lang1053\langfe2057\langnp1053\insrsid5444290 \hich\af4\dbch\af31505\loch\f4 +http://msdn.microsoft.com/en-us/library/gg406140.aspx +\par }}}\pard\plain \ltrpar\ql \li0\ri0\sl288\slmult1\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 \rtlch\fcs1 \af31507\afs24\alang1025 \ltrch\fcs0 \fs24\lang1033\langfe2057\loch\af45\hich\af45\dbch\af31505\cgrid\langnp1033\langfenp2057 \sectd \ltrsect +\linex0\sectdefaultcl\sftnbj {\field{\*\fldinst {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \f4\fs22\ul\cf25\lang1053\langfe2057\langnp1053\insrsid5444290 \hich\af4\dbch\af31505\loch\f4 HYPERLINK "http://msdn.microsoft.com/en-us/library/gg405489(PandP.40).aspx" } +{\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \f4\fs22\ul\cf25\lang1053\langfe2057\langnp1053\insrsid5709539 {\*\datafield +00d0c9ea79f9bace118c8200aa004ba90b0200000003000000e0c9ea79f9bace118c8200aa004ba90b9800000068007400740070003a002f002f006d00730064006e002e006d006900630072006f0073006f00660074002e0063006f006d002f0065006e002d00750073002f006c006900620072006100720079002f006700 +67003400300035003400380039002800500061006e00640050002e003400300029002e0061007300700078000000795881f43b1d7f48af2c825dc485276300000000a5ab0003}}}{\fldrslt {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \f4\fs22\ul\cf25\lang1053\langfe2057\langnp1053\insrsid5444290 +\hich\af4\dbch\af31505\loch\f4 http://msdn.microsoft.com/en-us/library/gg405489(PandP.40).aspx +\par }}}\pard\plain \ltrpar\ql \li0\ri0\sl288\slmult1\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 \rtlch\fcs1 \af31507\afs24\alang1025 \ltrch\fcs0 \fs24\lang1033\langfe2057\loch\af45\hich\af45\dbch\af31505\cgrid\langnp1033\langfenp2057 \sectd \ltrsect +\linex0\sectdefaultcl\sftnbj {\rtlch\fcs1 \ab\af4 \ltrch\fcs0 \b\f4\lang1053\langfe2057\kerning1\langnp1053\insrsid5444290 +\par }{\rtlch\fcs1 \ab\af45\afs22 \ltrch\fcs0 \b\fs22\cf24\lang1053\langfe2057\kerning1\langnp1053\insrsid5444290 \hich\af45\dbch\af31505\loch\f45 Python Standard Library +\par }{\field{\*\fldinst {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \f4\fs22\ul\cf25\lang1053\langfe2057\langnp1053\insrsid5444290 \hich\af4\dbch\af31505\loch\f4 HYPERLINK "https://docs.python.org/2.7/library/" }{\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 +\f4\fs22\ul\cf25\lang1053\langfe2057\langnp1053\insrsid5709539 {\*\datafield +00d0c9ea79f9bace118c8200aa004ba90b0200000003000000e0c9ea79f9bace118c8200aa004ba90b62000000680074007400700073003a002f002f0064006f00630073002e0070007900740068006f006e002e006f00720067002f0032002e0037002f006c006900620072006100720079002f000000795881f43b1d7f48 +af2c825dc485276300000000a5ab0003}}}{\fldrslt {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \f4\fs22\ul\cf25\lang1053\langfe2057\langnp1053\insrsid5444290 \hich\af4\dbch\af31505\loch\f4 https://docs.python.org/2.7/library/ +\par }}}\pard\plain \ltrpar\ql \li0\ri0\sl288\slmult1\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 \rtlch\fcs1 \af31507\afs24\alang1025 \ltrch\fcs0 \fs24\lang1033\langfe2057\loch\af45\hich\af45\dbch\af31505\cgrid\langnp1033\langfenp2057 \sectd \ltrsect +\linex0\sectdefaultcl\sftnbj {\field{\*\fldinst {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \f4\fs22\ul\cf25\lang1053\langfe2057\langnp1053\insrsid5444290 \hich\af4\dbch\af31505\loch\f4 HYPERLINK "https://docs.python.org/2.7/license.html" }{\rtlch\fcs1 +\af4\afs22 \ltrch\fcs0 \f4\fs22\ul\cf25\lang1053\langfe2057\langnp1053\insrsid5709539 {\*\datafield +00d0c9ea79f9bace118c8200aa004ba90b0200000003000000e0c9ea79f9bace118c8200aa004ba90b6a000000680074007400700073003a002f002f0064006f00630073002e0070007900740068006f006e002e006f00720067002f0032002e0037002f006c006900630065006e00730065002e00680074006d006c000000 +795881f43b1d7f48af2c825dc485276300000000a5ab0003}}}{\fldrslt {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \f4\fs22\ul\cf25\lang1053\langfe2057\langnp1053\insrsid5444290 \hich\af4\dbch\af31505\loch\f4 https://docs.python.or\hich\af4\dbch\af31505\loch\f4 +g/2.7/license.html +\par }}}\pard\plain \ltrpar\ql \li0\ri0\sl288\slmult1\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 \rtlch\fcs1 \af31507\afs24\alang1025 \ltrch\fcs0 \fs24\lang1033\langfe2057\loch\af45\hich\af45\dbch\af31505\cgrid\langnp1033\langfenp2057 \sectd \ltrsect +\linex0\sectdefaultcl\sftnbj {\rtlch\fcs1 \ab\af4 \ltrch\fcs0 \b\f4\lang1053\langfe2057\kerning1\langnp1053\insrsid5444290 +\par }{\rtlch\fcs1 \ab\af45\afs22 \ltrch\fcs0 \b\fs22\cf24\kerning1\insrsid5444290 \hich\af45\dbch\af31505\loch\f45 SimplexNoise +\par }{\field{\*\fldinst {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \f4\fs22\ul\cf25\insrsid5444290 \hich\af4\dbch\af31505\loch\f4 HYPERLINK "https://unlicense.org/" }{\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \f4\fs22\ul\cf25\insrsid5709539 {\*\datafield +00d0c9ea79f9bace118c8200aa004ba90b0200000003000000e0c9ea79f9bace118c8200aa004ba90b46000000680074007400700073003a002f002f0075006e006c006900630065006e00730065002e006f00720067002f000000795881f43b1d7f48af2c825dc485276300000000a5ab0003}}}{\fldrslt { +\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \f4\fs22\ul\cf25\insrsid5444290 \hich\af4\dbch\af31505\loch\f4 https://unlicense.org/ +\par }}}\pard\plain \ltrpar\ql \li0\ri0\sl288\slmult1\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 \rtlch\fcs1 \af31507\afs24\alang1025 \ltrch\fcs0 \fs24\lang1033\langfe2057\loch\af45\hich\af45\dbch\af31505\cgrid\langnp1033\langfenp2057 \sectd \ltrsect +\linex0\sectdefaultcl\sftnbj {\rtlch\fcs1 \af4 \ltrch\fcs0 \f4\lang1053\langfe2057\kerning1\langnp1053\insrsid5444290 +\par }{\rtlch\fcs1 \ab\af45\afs22 \ltrch\fcs0 \b\fs22\cf24\kerning1\insrsid5444290 \hich\af45\dbch\af31505\loch\f45 Xceed Extended WPF Toolkit +\par }{\field{\*\fldinst {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \f4\fs22\ul\cf25\insrsid5444290 \hich\af4\dbch\af31505\loch\f4 HYPERLINK "https://opensource.org/licenses/ms-pl.html" }{\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \f4\fs22\ul\cf25\insrsid5709539 +{\*\datafield +00d0c9ea79f9bace118c8200aa004ba90b0200000003000000e0c9ea79f9bace118c8200aa004ba90b6e000000680074007400700073003a002f002f006f00700065006e0073006f0075007200630065002e006f00720067002f006c006900630065006e007300650073002f006d0073002d0070006c002e00680074006d00 +6c000000795881f43b1d7f48af2c825dc485276300000000a5ab0003}}}{\fldrslt {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \f4\fs22\ul\cf25\insrsid5444290 \hich\af4\dbch\af31505\loch\f4 Microsoft Public License +\par }}}\pard\plain \ltrpar\ql \li0\ri0\sl288\slmult1\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 \rtlch\fcs1 \af31507\afs24\alang1025 \ltrch\fcs0 \fs24\lang1033\langfe2057\loch\af45\hich\af45\dbch\af31505\cgrid\langnp1033\langfenp2057 \sectd \ltrsect +\linex0\sectdefaultcl\sftnbj {\field{\*\fldinst {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \f4\fs22\insrsid5444290 \hich\af4\dbch\af31505\loch\f4 HYPERLINK https://github.com/xceedsoftware/wpfto\hich\af4\dbch\af31505\loch\f4 +olkit/blob/0ed4ed84152d6a3e2a627f2ef05f82627fdaf3fc/license.md }{\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \f4\fs22\insrsid5709539 {\*\datafield +00d0c9ea79f9bace118c8200aa004ba90b0200000003000000e0c9ea79f9bace118c8200aa004ba90be2000000680074007400700073003a002f002f006700690074006800750062002e0063006f006d002f007800630065006500640073006f006600740077006100720065002f0077007000660074006f006f006c006b00 +690074002f0062006c006f0062002f0030006500640034006500640038003400310035003200640036006100330065003200610036003200370066003200650066003000350066003800320036003200370066006400610066003300660063002f006c006900630065006e00730065002e006d0064000000795881f43b1d7f +48af2c825dc485276300000000a5ab0003}}}{\fldrslt {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \f4\fs22\insrsid5444290 \hich\af4\dbch\af31505\loch\f4 https://github.com/xceedsoftware/wpftoolkit/blob/0ed4ed84152d6a3e2a627f2ef05f82627fdaf3fc/license.md}}} +\sectd \ltrsect\linex0\sectdefaultcl\sftnbj {\rtlch\fcs1 \ab\af4\afs22 \ltrch\fcs0 \b\f4\fs22\cf24\kerning1\insrsid5444290 +\par }\pard \ltrpar\ql \li0\ri0\widctlpar\wrapdefault\faauto\rin0\lin0\itap0 {\rtlch\fcs1 \ab\af40\afs20 \ltrch\fcs0 \b\f40\fs20\kerning1\insrsid5444290 +\par }\pard \ltrpar\ql \li0\ri0\sl288\slmult1\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 {\rtlch\fcs1 \ab\af45\afs22 \ltrch\fcs0 \b\fs22\cf24\kerning1\insrsid5444290 \hich\af45\dbch\af31505\loch\f45 Microsoft.Web.WebView2 v.1.0.1264.42 +\par }\pard \ltrpar\ql \li0\ri0\widctlpar\wrapdefault\faauto\rin0\lin0\itap0 {\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \f4\fs22\cf24\insrsid5444290 \hich\af4\dbch\af31505\loch\f4 Copyright (C) Microsoft Corporation. All rights reserved. +\par +\par \hich\af4\dbch\af31505\loch\f4 Redistribution and use in source and binary forms, with or without +\par \hich\af4\dbch\af31505\loch\f4 modification, are permitted provided that the following conditions are +\par \hich\af4\dbch\af31505\loch\f4 met: +\par +\par \hich\af4\dbch\af31505\loch\f4 * Redistributions of source code must retain the a\hich\af4\dbch\af31505\loch\f4 bove copyright +\par \hich\af4\dbch\af31505\loch\f4 notice, this list of conditions and the following disclaimer. +\par \hich\af4\dbch\af31505\loch\f4 * Redistributions in binary form must reproduce the above +\par \hich\af4\dbch\af31505\loch\f4 copyright notice, this list of conditions and the following disclaimer +\par \hich\af4\dbch\af31505\loch\f4 in the documentation and/or other materials pro\hich\af4\dbch\af31505\loch\f4 vided with the +\par \hich\af4\dbch\af31505\loch\f4 distribution. +\par \hich\af4\dbch\af31505\loch\f4 * The name of Microsoft Corporation, or the names of its contributors +\par \hich\af4\dbch\af31505\loch\f4 may not be used to endorse or promote products derived from this +\par \hich\af4\dbch\af31505\loch\f4 software without specific prior written permission. +\par +\par \hich\af4\dbch\af31505\loch\f4 THIS SOFTWARE IS PROVIDED BY THE CO\hich\af4\dbch\af31505\loch\f4 PYRIGHT HOLDERS AND CONTRIBUTORS +\par \hich\af4\dbch\af31505\loch\f4 "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +\par \hich\af4\dbch\af31505\loch\f4 LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +\par \hich\af4\dbch\af31505\loch\f4 A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +\par \hich\af4\dbch\af31505\loch\f4 OWNER OR CONTRIBUT\hich\af4\dbch\af31505\loch\f4 ORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +\par \hich\af4\dbch\af31505\loch\f4 SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +\par \hich\af4\dbch\af31505\loch\f4 LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +\par \hich\af4\dbch\af31505\loch\f4 DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +\par \hich\af4\dbch\af31505\loch\f4 THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +\par \hich\af4\dbch\af31505\loch\f4 (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +\par \hich\af4\dbch\af31505\loch\f4 OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.}{\rtlch\fcs1 \af4\afs22 \ltrch\fcs0 \f4\fs22\cf24\insrsid5444290 +\par }{\*\themedata 504b030414000600080000002100e9de0fbfff0000001c020000130000005b436f6e74656e745f54797065735d2e786d6cac91cb4ec3301045f748fc83e52d4a +9cb2400825e982c78ec7a27cc0c8992416c9d8b2a755fbf74cd25442a820166c2cd933f79e3be372bd1f07b5c3989ca74aaff2422b24eb1b475da5df374fd9ad +5689811a183c61a50f98f4babebc2837878049899a52a57be670674cb23d8e90721f90a4d2fa3802cb35762680fd800ecd7551dc18eb899138e3c943d7e503b6 +b01d583deee5f99824e290b4ba3f364eac4a430883b3c092d4eca8f946c916422ecab927f52ea42b89a1cd59c254f919b0e85e6535d135a8de20f20b8c12c3b0 +0c895fcf6720192de6bf3b9e89ecdbd6596cbcdd8eb28e7c365ecc4ec1ff1460f53fe813d3cc7f5b7f020000ffff0300504b030414000600080000002100a5d6 +a7e7c0000000360100000b0000005f72656c732f2e72656c73848fcf6ac3300c87ef85bd83d17d51d2c31825762fa590432fa37d00e1287f68221bdb1bebdb4f +c7060abb0884a4eff7a93dfeae8bf9e194e720169aaa06c3e2433fcb68e1763dbf7f82c985a4a725085b787086a37bdbb55fbc50d1a33ccd311ba548b6309512 +0f88d94fbc52ae4264d1c910d24a45db3462247fa791715fd71f989e19e0364cd3f51652d73760ae8fa8c9ffb3c330cc9e4fc17faf2ce545046e37944c69e462 +a1a82fe353bd90a865aad41ed0b5b8f9d6fd010000ffff0300504b0304140006000800000021006b799616830000008a0000001c0000007468656d652f746865 +6d652f7468656d654d616e616765722e786d6c0ccc4d0ac3201040e17da17790d93763bb284562b2cbaebbf600439c1a41c7a0d29fdbd7e5e38337cedf14d59b +4b0d592c9c070d8a65cd2e88b7f07c2ca71ba8da481cc52c6ce1c715e6e97818c9b48d13df49c873517d23d59085adb5dd20d6b52bd521ef2cdd5eb9246a3d8b +4757e8d3f729e245eb2b260a0238fd010000ffff0300504b030414000600080000002100b6f4679893070000c9200000160000007468656d652f7468656d652f +7468656d65312e786d6cec59cd8b1bc915bf07f23f347d97f5d5ad8fc1f2a24fcfda33b6b164873dd648a5eef2547789aad28cc56208de532e81c026e49085bd +ed21842cecc22eb9e48f31d8249b3f22afaa5bdd5552c99e191c3061463074977eefd5afde7bf5de53d5ddcf5e26d4bbc05c1096f6fcfa9d9aefe174ce16248d +7afeb3d9a4d2f13d2151ba4094a5b8e76fb0f03fbbf7eb5fdd454732c609f6403e1547a8e7c752ae8eaa5531876124eeb0154ee1bb25e30992f0caa3ea82a34b +d09bd06aa3566b55134452df4b51026a1f2f97648ebd9952e9dfdb2a1f53784da5500373caa74a35b6243476715e5708b11143cabd0b447b3eccb3609733fc52 +fa1e4542c2173dbfa6fffceabdbb5574940b517940d6909be8bf5c2e17589c37f49c3c3a2b260d823068f50bfd1a40e53e6edc1eb7c6ad429f06a0f91c569a71 +b175b61bc320c71aa0ecd1a17bd41e35eb16ded0dfdce3dc0fd5c7c26b50a63fd8c34f2643b0a285d7a00c1feee1c3417730b2f56b50866fede1dbb5fe28685b +fa3528a6243ddf43d7c25673b85d6d0159327aec8477c360d26ee4ca4b144443115d6a8a254be5a1584bd00bc6270050408a24493db959e1259a43140f112567 +9c7827248a21f056286502866b8ddaa4d684ffea13e827ed5174849121ad780113b137a4f87862cec94af6fc07a0d537206f7ffef9cdeb1fdfbcfee9cd575fbd +79fdf77c6eadca923b466964cafdf2dd1ffef3cd6fbd7ffff0ed2f5fff319b7a172f4cfcbbbffdeedd3ffef93ef5b0e2d2146ffff4fdbb1fbf7ffbe7dfffebaf +5f3bb4f7393a33e1339260e13dc297de5396c0021dfcf119bf9ec42c46c494e8a791402952b338f48f656ca11f6d10450edc00db767cce21d5b880f7d72f2cc2 +d398af2571687c182716f094313a60dc6985876a2ec3ccb3751ab927e76b13f714a10bd7dc43945a5e1eaf579063894be530c616cd2714a5124538c5d253dfb1 +738c1dabfb8210cbaea764ce99604be97d41bc01224e93ccc899154da5d03149c02f1b1741f0b7659bd3e7de8051d7aa47f8c246c2de40d4417e86a965c6fb68 +2d51e252394309350d7e8264ec2239ddf0b9891b0b099e8e3065de78818570c93ce6b05ec3e90f21cdb8dd7e4a37898de4929cbb749e20c64ce4889d0f6394ac +5cd829496313fbb938871045de13265df05366ef10f50e7e40e941773f27d872f787b3c133c8b026a53240d4376beef0e57dccacf89d6ee8126157aae9f3c44a +b17d4e9cd131584756689f604cd1255a60ec3dfbdcc160c05696cd4bd20f62c82ac7d815580f901dabea3dc5027a25d5dcece7c91322ac909de2881de073bad9 +493c1b9426881fd2fc08bc6eda7c0ca52e7105c0633a3f37818f08f480102f4ea33c16a0c308ee835a9fc4c82a60ea5db8e375c32dff5d658fc1be7c61d1b8c2 +be04197c6d1948eca6cc7b6d3343d49aa00c9819822ec3956e41c4727f29a28aab165b3be596f6a62ddd00dd91d5f42424fd6007b4d3fb84ffbbde073a8cb77f +f9c6b10f3e4ebfe3566c25ab6b763a8792c9f14e7f7308b7dbd50c195f904fbfa919a175fa04431dd9cf58b73dcd6d4fe3ffdff73487f6f36d2773a8dfb8ed64 +7ce8306e3b99fc70e5e3743265f3027d8d3af0c80e7af4b14f72f0d46749289dca0dc527421ffc08f83db398c0a092d3279eb838055cc5f0a8ca1c4c60e1228e +b48cc799fc0d91f134462b381daafb4a492472d591f0564cc0a1911e76ea5678ba4e4ed9223becacd7d5c16656590592e5782d2cc6e1a04a66e856bb3cc02bd4 +6bb6913e68dd1250b2d721614c6693683a48b4b783ca48fa58178ce620a157f65158741d2c3a4afdd6557b2c805ae115f8c1edc1cff49e1f06200242701e07cd +f942f92973f5d6bbda991fd3d3878c69450034d8db08283ddd555c0f2e4fad2e0bb52b78da2261849b4d425b46377822869fc17974aad1abd0b8aeafbba54b2d +7aca147a3e08ad9246bbf33e1637f535c8ede6069a9a9982a6de65cf6f35430899395af5fc251c1ac363b282d811ea3717a211dcbccc25cf36fc4d32cb8a0b39 +4222ce0cae934e960d122231f728497abe5a7ee1069aea1ca2b9d51b90103e59725d482b9f1a3970baed64bc5ce2b934dd6e8c284b67af90e1b35ce1fc568bdf +1cac24d91adc3d8d1797de195df3a708422c6cd795011744c0dd413db3e682c0655891c8caf8db294c79da356fa3740c65e388ae62945714339967709dca0b3a +faadb081f196af190c6a98242f8467912ab0a651ad6a5a548d8cc3c1aafb6121653923699635d3ca2aaa6abab39835c3b60cecd8f26645de60b53531e434b3c2 +67a97b37e576b7b96ea74f28aa0418bcb09fa3ea5ea12018d4cac92c6a8af17e1a56393b1fb56bc776811fa07695226164fdd656ed8edd8a1ae19c0e066f54f9 +416e376a6168b9ed2bb5a5f5adb979b1cdce5e40f2184197bba6526857c2c92e47d0104d754f92a50dd8222f65be35e0c95b73d2f3bfac85fd60d80887955a27 +1c57826650ab74c27eb3d20fc3667d1cd66ba341e31514161927f530bbb19fc00506dde4f7f67a7cefee3ed9ded1dc99b3a4caf4dd7c5513d777f7f5c6e1bb7b +8f40d2f9b2d598749bdd41abd26df627956034e854bac3d6a0326a0ddba3c9681876ba9357be77a1c141bf390c5ae34ea5551f0e2b41aba6e877ba9576d068f4 +8376bf330efaaff23606569ea58fdc16605ecdebde7f010000ffff0300504b0304140006000800000021000dd1909fb60000001b010000270000007468656d65 +2f7468656d652f5f72656c732f7468656d654d616e616765722e786d6c2e72656c73848f4d0ac2301484f78277086f6fd3ba109126dd88d0add40384e4350d36 +3f2451eced0dae2c082e8761be9969bb979dc9136332de3168aa1a083ae995719ac16db8ec8e4052164e89d93b64b060828e6f37ed1567914b284d262452282e +3198720e274a939cd08a54f980ae38a38f56e422a3a641c8bbd048f7757da0f19b017cc524bd62107bd5001996509affb3fd381a89672f1f165dfe514173d985 +0528a2c6cce0239baa4c04ca5bbabac4df000000ffff0300504b01022d0014000600080000002100e9de0fbfff0000001c020000130000000000000000000000 +0000000000005b436f6e74656e745f54797065735d2e786d6c504b01022d0014000600080000002100a5d6a7e7c0000000360100000b00000000000000000000 +000000300100005f72656c732f2e72656c73504b01022d00140006000800000021006b799616830000008a0000001c0000000000000000000000000019020000 +7468656d652f7468656d652f7468656d654d616e616765722e786d6c504b01022d0014000600080000002100b6f4679893070000c92000001600000000000000 +000000000000d60200007468656d652f7468656d652f7468656d65312e786d6c504b01022d00140006000800000021000dd1909fb60000001b01000027000000 +000000000000000000009d0a00007468656d652f7468656d652f5f72656c732f7468656d654d616e616765722e786d6c2e72656c73504b050600000000050005005d010000980b00000000} +{\*\colorschememapping 3c3f786d6c2076657273696f6e3d22312e302220656e636f64696e673d225554462d3822207374616e64616c6f6e653d22796573223f3e0d0a3c613a636c724d +617020786d6c6e733a613d22687474703a2f2f736368656d61732e6f70656e786d6c666f726d6174732e6f72672f64726177696e676d6c2f323030362f6d6169 +6e22206267313d226c743122207478313d22646b3122206267323d226c743222207478323d22646b322220616363656e74313d22616363656e74312220616363 +656e74323d22616363656e74322220616363656e74333d22616363656e74332220616363656e74343d22616363656e74342220616363656e74353d22616363656e74352220616363656e74363d22616363656e74362220686c696e6b3d22686c696e6b2220666f6c486c696e6b3d22666f6c486c696e6b222f3e} +{\*\latentstyles\lsdstimax376\lsdlockeddef0\lsdsemihiddendef0\lsdunhideuseddef0\lsdqformatdef0\lsdprioritydef99{\lsdlockedexcept \lsdqformat1 \lsdpriority0 \lsdlocked0 Normal;\lsdqformat1 \lsdlocked0 heading 1;\lsdqformat1 \lsdlocked0 heading 2; +\lsdqformat1 \lsdlocked0 heading 3;\lsdqformat1 \lsdlocked0 heading 4;\lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority9 \lsdlocked0 heading 5;\lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority9 \lsdlocked0 heading 6; +\lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority9 \lsdlocked0 heading 7;\lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority9 \lsdlocked0 heading 8;\lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority9 \lsdlocked0 heading 9; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 index 1;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 index 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 index 3;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 index 4; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 index 5;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 index 6;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 index 7;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 index 8; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 index 9;\lsdsemihidden1 \lsdunhideused1 \lsdpriority39 \lsdlocked0 toc 1;\lsdsemihidden1 \lsdunhideused1 \lsdpriority39 \lsdlocked0 toc 2;\lsdsemihidden1 \lsdunhideused1 \lsdpriority39 \lsdlocked0 toc 3; +\lsdsemihidden1 \lsdunhideused1 \lsdpriority39 \lsdlocked0 toc 4;\lsdsemihidden1 \lsdunhideused1 \lsdpriority39 \lsdlocked0 toc 5;\lsdsemihidden1 \lsdunhideused1 \lsdpriority39 \lsdlocked0 toc 6; +\lsdsemihidden1 \lsdunhideused1 \lsdpriority39 \lsdlocked0 toc 7;\lsdsemihidden1 \lsdunhideused1 \lsdpriority39 \lsdlocked0 toc 8;\lsdsemihidden1 \lsdunhideused1 \lsdpriority39 \lsdlocked0 toc 9;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Normal Indent; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 footnote text;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 annotation text;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 header;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 footer; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 index heading;\lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority35 \lsdlocked0 caption;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 table of figures; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 envelope address;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 envelope return;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 footnote reference;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 annotation reference; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 line number;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 page number;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 endnote reference;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 endnote text; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 table of authorities;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 macro;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 toa heading;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Bullet;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Number;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List 3; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List 4;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List 5;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Bullet 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Bullet 3; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Bullet 4;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Bullet 5;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Number 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Number 3; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Number 4;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Number 5;\lsdqformat1 \lsdpriority10 \lsdlocked0 Title;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Closing; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Signature;\lsdsemihidden1 \lsdunhideused1 \lsdpriority1 \lsdlocked0 Default Paragraph Font;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Body Text;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Body Text Indent; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Continue;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Continue 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Continue 3;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Continue 4; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Continue 5;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Message Header;\lsdqformat1 \lsdpriority11 \lsdlocked0 Subtitle;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Salutation; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Date;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Body Text First Indent;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Body Text First Indent 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Note Heading; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Body Text 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Body Text 3;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Body Text Indent 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Body Text Indent 3; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Block Text;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Hyperlink;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 FollowedHyperlink;\lsdqformat1 \lsdpriority22 \lsdlocked0 Strong; +\lsdqformat1 \lsdpriority20 \lsdlocked0 Emphasis;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Document Map;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Plain Text;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 E-mail Signature; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Top of Form;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Bottom of Form;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Normal (Web);\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Acronym; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Address;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Cite;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Code;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Definition; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Keyboard;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Preformatted;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Sample;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Typewriter; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Variable;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Normal Table;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 annotation subject;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 No List; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Outline List 1;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Outline List 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Outline List 3;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Simple 1; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Simple 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Simple 3;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Classic 1;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Classic 2; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Classic 3;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Classic 4;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Colorful 1;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Colorful 2; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Colorful 3;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Columns 1;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Columns 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Columns 3; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Columns 4;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Columns 5;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Grid 1;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Grid 2; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Grid 3;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Grid 4;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Grid 5;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Grid 6; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Grid 7;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Grid 8;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table List 1;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table List 2; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table List 3;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table List 4;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table List 5;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table List 6; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table List 7;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table List 8;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table 3D effects 1;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table 3D effects 2; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table 3D effects 3;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Contemporary;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Elegant;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Professional; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Subtle 1;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Subtle 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Web 1;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Web 2; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Web 3;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Balloon Text;\lsdpriority39 \lsdlocked0 Table Grid;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Theme;\lsdsemihidden1 \lsdlocked0 Placeholder Text; +\lsdqformat1 \lsdpriority1 \lsdlocked0 No Spacing;\lsdpriority60 \lsdlocked0 Light Shading;\lsdpriority61 \lsdlocked0 Light List;\lsdpriority62 \lsdlocked0 Light Grid;\lsdpriority63 \lsdlocked0 Medium Shading 1;\lsdpriority64 \lsdlocked0 Medium Shading 2; +\lsdpriority65 \lsdlocked0 Medium List 1;\lsdpriority66 \lsdlocked0 Medium List 2;\lsdpriority67 \lsdlocked0 Medium Grid 1;\lsdpriority68 \lsdlocked0 Medium Grid 2;\lsdpriority69 \lsdlocked0 Medium Grid 3;\lsdpriority70 \lsdlocked0 Dark List; +\lsdpriority71 \lsdlocked0 Colorful Shading;\lsdpriority72 \lsdlocked0 Colorful List;\lsdpriority73 \lsdlocked0 Colorful Grid;\lsdpriority60 \lsdlocked0 Light Shading Accent 1;\lsdpriority61 \lsdlocked0 Light List Accent 1; +\lsdpriority62 \lsdlocked0 Light Grid Accent 1;\lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 1;\lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 1;\lsdpriority65 \lsdlocked0 Medium List 1 Accent 1;\lsdsemihidden1 \lsdlocked0 Revision; +\lsdqformat1 \lsdpriority34 \lsdlocked0 List Paragraph;\lsdqformat1 \lsdpriority29 \lsdlocked0 Quote;\lsdqformat1 \lsdpriority30 \lsdlocked0 Intense Quote;\lsdpriority66 \lsdlocked0 Medium List 2 Accent 1;\lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 1; +\lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 1;\lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 1;\lsdpriority70 \lsdlocked0 Dark List Accent 1;\lsdpriority71 \lsdlocked0 Colorful Shading Accent 1;\lsdpriority72 \lsdlocked0 Colorful List Accent 1; +\lsdpriority73 \lsdlocked0 Colorful Grid Accent 1;\lsdpriority60 \lsdlocked0 Light Shading Accent 2;\lsdpriority61 \lsdlocked0 Light List Accent 2;\lsdpriority62 \lsdlocked0 Light Grid Accent 2;\lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 2; +\lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 2;\lsdpriority65 \lsdlocked0 Medium List 1 Accent 2;\lsdpriority66 \lsdlocked0 Medium List 2 Accent 2;\lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 2;\lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 2; +\lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 2;\lsdpriority70 \lsdlocked0 Dark List Accent 2;\lsdpriority71 \lsdlocked0 Colorful Shading Accent 2;\lsdpriority72 \lsdlocked0 Colorful List Accent 2;\lsdpriority73 \lsdlocked0 Colorful Grid Accent 2; +\lsdpriority60 \lsdlocked0 Light Shading Accent 3;\lsdpriority61 \lsdlocked0 Light List Accent 3;\lsdpriority62 \lsdlocked0 Light Grid Accent 3;\lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 3;\lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 3; +\lsdpriority65 \lsdlocked0 Medium List 1 Accent 3;\lsdpriority66 \lsdlocked0 Medium List 2 Accent 3;\lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 3;\lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 3;\lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 3; +\lsdpriority70 \lsdlocked0 Dark List Accent 3;\lsdpriority71 \lsdlocked0 Colorful Shading Accent 3;\lsdpriority72 \lsdlocked0 Colorful List Accent 3;\lsdpriority73 \lsdlocked0 Colorful Grid Accent 3;\lsdpriority60 \lsdlocked0 Light Shading Accent 4; +\lsdpriority61 \lsdlocked0 Light List Accent 4;\lsdpriority62 \lsdlocked0 Light Grid Accent 4;\lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 4;\lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 4;\lsdpriority65 \lsdlocked0 Medium List 1 Accent 4; +\lsdpriority66 \lsdlocked0 Medium List 2 Accent 4;\lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 4;\lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 4;\lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 4;\lsdpriority70 \lsdlocked0 Dark List Accent 4; +\lsdpriority71 \lsdlocked0 Colorful Shading Accent 4;\lsdpriority72 \lsdlocked0 Colorful List Accent 4;\lsdpriority73 \lsdlocked0 Colorful Grid Accent 4;\lsdpriority60 \lsdlocked0 Light Shading Accent 5;\lsdpriority61 \lsdlocked0 Light List Accent 5; +\lsdpriority62 \lsdlocked0 Light Grid Accent 5;\lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 5;\lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 5;\lsdpriority65 \lsdlocked0 Medium List 1 Accent 5;\lsdpriority66 \lsdlocked0 Medium List 2 Accent 5; +\lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 5;\lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 5;\lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 5;\lsdpriority70 \lsdlocked0 Dark List Accent 5;\lsdpriority71 \lsdlocked0 Colorful Shading Accent 5; +\lsdpriority72 \lsdlocked0 Colorful List Accent 5;\lsdpriority73 \lsdlocked0 Colorful Grid Accent 5;\lsdpriority60 \lsdlocked0 Light Shading Accent 6;\lsdpriority61 \lsdlocked0 Light List Accent 6;\lsdpriority62 \lsdlocked0 Light Grid Accent 6; +\lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 6;\lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 6;\lsdpriority65 \lsdlocked0 Medium List 1 Accent 6;\lsdpriority66 \lsdlocked0 Medium List 2 Accent 6; +\lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 6;\lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 6;\lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 6;\lsdpriority70 \lsdlocked0 Dark List Accent 6;\lsdpriority71 \lsdlocked0 Colorful Shading Accent 6; +\lsdpriority72 \lsdlocked0 Colorful List Accent 6;\lsdpriority73 \lsdlocked0 Colorful Grid Accent 6;\lsdqformat1 \lsdpriority19 \lsdlocked0 Subtle Emphasis;\lsdqformat1 \lsdpriority21 \lsdlocked0 Intense Emphasis; +\lsdqformat1 \lsdpriority31 \lsdlocked0 Subtle Reference;\lsdqformat1 \lsdpriority32 \lsdlocked0 Intense Reference;\lsdqformat1 \lsdpriority33 \lsdlocked0 Book Title;\lsdsemihidden1 \lsdunhideused1 \lsdpriority37 \lsdlocked0 Bibliography; +\lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority39 \lsdlocked0 TOC Heading;\lsdpriority41 \lsdlocked0 Plain Table 1;\lsdpriority42 \lsdlocked0 Plain Table 2;\lsdpriority43 \lsdlocked0 Plain Table 3;\lsdpriority44 \lsdlocked0 Plain Table 4; +\lsdpriority45 \lsdlocked0 Plain Table 5;\lsdpriority40 \lsdlocked0 Grid Table Light;\lsdpriority46 \lsdlocked0 Grid Table 1 Light;\lsdpriority47 \lsdlocked0 Grid Table 2;\lsdpriority48 \lsdlocked0 Grid Table 3;\lsdpriority49 \lsdlocked0 Grid Table 4; +\lsdpriority50 \lsdlocked0 Grid Table 5 Dark;\lsdpriority51 \lsdlocked0 Grid Table 6 Colorful;\lsdpriority52 \lsdlocked0 Grid Table 7 Colorful;\lsdpriority46 \lsdlocked0 Grid Table 1 Light Accent 1;\lsdpriority47 \lsdlocked0 Grid Table 2 Accent 1; +\lsdpriority48 \lsdlocked0 Grid Table 3 Accent 1;\lsdpriority49 \lsdlocked0 Grid Table 4 Accent 1;\lsdpriority50 \lsdlocked0 Grid Table 5 Dark Accent 1;\lsdpriority51 \lsdlocked0 Grid Table 6 Colorful Accent 1; +\lsdpriority52 \lsdlocked0 Grid Table 7 Colorful Accent 1;\lsdpriority46 \lsdlocked0 Grid Table 1 Light Accent 2;\lsdpriority47 \lsdlocked0 Grid Table 2 Accent 2;\lsdpriority48 \lsdlocked0 Grid Table 3 Accent 2; +\lsdpriority49 \lsdlocked0 Grid Table 4 Accent 2;\lsdpriority50 \lsdlocked0 Grid Table 5 Dark Accent 2;\lsdpriority51 \lsdlocked0 Grid Table 6 Colorful Accent 2;\lsdpriority52 \lsdlocked0 Grid Table 7 Colorful Accent 2; +\lsdpriority46 \lsdlocked0 Grid Table 1 Light Accent 3;\lsdpriority47 \lsdlocked0 Grid Table 2 Accent 3;\lsdpriority48 \lsdlocked0 Grid Table 3 Accent 3;\lsdpriority49 \lsdlocked0 Grid Table 4 Accent 3; +\lsdpriority50 \lsdlocked0 Grid Table 5 Dark Accent 3;\lsdpriority51 \lsdlocked0 Grid Table 6 Colorful Accent 3;\lsdpriority52 \lsdlocked0 Grid Table 7 Colorful Accent 3;\lsdpriority46 \lsdlocked0 Grid Table 1 Light Accent 4; +\lsdpriority47 \lsdlocked0 Grid Table 2 Accent 4;\lsdpriority48 \lsdlocked0 Grid Table 3 Accent 4;\lsdpriority49 \lsdlocked0 Grid Table 4 Accent 4;\lsdpriority50 \lsdlocked0 Grid Table 5 Dark Accent 4; +\lsdpriority51 \lsdlocked0 Grid Table 6 Colorful Accent 4;\lsdpriority52 \lsdlocked0 Grid Table 7 Colorful Accent 4;\lsdpriority46 \lsdlocked0 Grid Table 1 Light Accent 5;\lsdpriority47 \lsdlocked0 Grid Table 2 Accent 5; +\lsdpriority48 \lsdlocked0 Grid Table 3 Accent 5;\lsdpriority49 \lsdlocked0 Grid Table 4 Accent 5;\lsdpriority50 \lsdlocked0 Grid Table 5 Dark Accent 5;\lsdpriority51 \lsdlocked0 Grid Table 6 Colorful Accent 5; +\lsdpriority52 \lsdlocked0 Grid Table 7 Colorful Accent 5;\lsdpriority46 \lsdlocked0 Grid Table 1 Light Accent 6;\lsdpriority47 \lsdlocked0 Grid Table 2 Accent 6;\lsdpriority48 \lsdlocked0 Grid Table 3 Accent 6; +\lsdpriority49 \lsdlocked0 Grid Table 4 Accent 6;\lsdpriority50 \lsdlocked0 Grid Table 5 Dark Accent 6;\lsdpriority51 \lsdlocked0 Grid Table 6 Colorful Accent 6;\lsdpriority52 \lsdlocked0 Grid Table 7 Colorful Accent 6; +\lsdpriority46 \lsdlocked0 List Table 1 Light;\lsdpriority47 \lsdlocked0 List Table 2;\lsdpriority48 \lsdlocked0 List Table 3;\lsdpriority49 \lsdlocked0 List Table 4;\lsdpriority50 \lsdlocked0 List Table 5 Dark; +\lsdpriority51 \lsdlocked0 List Table 6 Colorful;\lsdpriority52 \lsdlocked0 List Table 7 Colorful;\lsdpriority46 \lsdlocked0 List Table 1 Light Accent 1;\lsdpriority47 \lsdlocked0 List Table 2 Accent 1;\lsdpriority48 \lsdlocked0 List Table 3 Accent 1; +\lsdpriority49 \lsdlocked0 List Table 4 Accent 1;\lsdpriority50 \lsdlocked0 List Table 5 Dark Accent 1;\lsdpriority51 \lsdlocked0 List Table 6 Colorful Accent 1;\lsdpriority52 \lsdlocked0 List Table 7 Colorful Accent 1; +\lsdpriority46 \lsdlocked0 List Table 1 Light Accent 2;\lsdpriority47 \lsdlocked0 List Table 2 Accent 2;\lsdpriority48 \lsdlocked0 List Table 3 Accent 2;\lsdpriority49 \lsdlocked0 List Table 4 Accent 2; +\lsdpriority50 \lsdlocked0 List Table 5 Dark Accent 2;\lsdpriority51 \lsdlocked0 List Table 6 Colorful Accent 2;\lsdpriority52 \lsdlocked0 List Table 7 Colorful Accent 2;\lsdpriority46 \lsdlocked0 List Table 1 Light Accent 3; +\lsdpriority47 \lsdlocked0 List Table 2 Accent 3;\lsdpriority48 \lsdlocked0 List Table 3 Accent 3;\lsdpriority49 \lsdlocked0 List Table 4 Accent 3;\lsdpriority50 \lsdlocked0 List Table 5 Dark Accent 3; +\lsdpriority51 \lsdlocked0 List Table 6 Colorful Accent 3;\lsdpriority52 \lsdlocked0 List Table 7 Colorful Accent 3;\lsdpriority46 \lsdlocked0 List Table 1 Light Accent 4;\lsdpriority47 \lsdlocked0 List Table 2 Accent 4; +\lsdpriority48 \lsdlocked0 List Table 3 Accent 4;\lsdpriority49 \lsdlocked0 List Table 4 Accent 4;\lsdpriority50 \lsdlocked0 List Table 5 Dark Accent 4;\lsdpriority51 \lsdlocked0 List Table 6 Colorful Accent 4; +\lsdpriority52 \lsdlocked0 List Table 7 Colorful Accent 4;\lsdpriority46 \lsdlocked0 List Table 1 Light Accent 5;\lsdpriority47 \lsdlocked0 List Table 2 Accent 5;\lsdpriority48 \lsdlocked0 List Table 3 Accent 5; +\lsdpriority49 \lsdlocked0 List Table 4 Accent 5;\lsdpriority50 \lsdlocked0 List Table 5 Dark Accent 5;\lsdpriority51 \lsdlocked0 List Table 6 Colorful Accent 5;\lsdpriority52 \lsdlocked0 List Table 7 Colorful Accent 5; +\lsdpriority46 \lsdlocked0 List Table 1 Light Accent 6;\lsdpriority47 \lsdlocked0 List Table 2 Accent 6;\lsdpriority48 \lsdlocked0 List Table 3 Accent 6;\lsdpriority49 \lsdlocked0 List Table 4 Accent 6; +\lsdpriority50 \lsdlocked0 List Table 5 Dark Accent 6;\lsdpriority51 \lsdlocked0 List Table 6 Colorful Accent 6;\lsdpriority52 \lsdlocked0 List Table 7 Colorful Accent 6;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Mention; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Smart Hyperlink;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Hashtag;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Unresolved Mention;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Smart Link;}}{\*\datastore 01050000 +02000000180000004d73786d6c322e534158584d4c5265616465722e362e3000000000000000000000060000 +d0cf11e0a1b11ae1000000000000000000000000000000003e000300feff090006000000000000000000000001000000010000000000000000100000feffffff00000000feffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffdfffffffeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffff52006f006f007400200045006e00740072007900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000016000500ffffffffffffffffffffffff0c6ad98892f1d411a65f0040963251e5000000000000000000000000d09b +2a0e3825d901feffffff00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffff00000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffff0000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffff000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000105000000000000}} \ No newline at end of file diff --git a/doc/distrib/NodeHelpFiles/CoreNodeModelsWpf.Charts.BarChartNodeModel.dyn b/doc/distrib/NodeHelpFiles/CoreNodeModelsWpf.Charts.BarChartNodeModel.dyn new file mode 100644 index 00000000000..c58a2ce7931 --- /dev/null +++ b/doc/distrib/NodeHelpFiles/CoreNodeModelsWpf.Charts.BarChartNodeModel.dyn @@ -0,0 +1,386 @@ +{ + "Uuid": "8c2ba28b-a82f-4c59-9042-0eb03618a325", + "IsCustomNode": false, + "Description": "", + "Name": "CoreNodeModelsWpf.Charts.BarChart", + "ElementResolver": { + "ResolutionMap": {} + }, + "Inputs": [], + "Outputs": [], + "Nodes": [ + { + "ConcreteType": "Dynamo.Graph.Nodes.CodeBlockNodeModel, DynamoCore", + "NodeType": "CodeBlockNode", + "Code": "[\"January\", \"February\", \"March\"];\n[[4, 12, 34],[14, 22, 14],[15, 3, 6]];", + "Id": "4f90db449387447f8b2d3856f7615cc2", + "Inputs": [], + "Outputs": [ + { + "Id": "a11430fd97ca44a2a70990454e90369a", + "Name": "", + "Description": "Value of expression at line 1", + "UsingDefaultValue": false, + "Level": 2, + "UseLevels": false, + "KeepListStructure": false + }, + { + "Id": "046741d0cd6f4ce0ba9280c25f87e78e", + "Name": "", + "Description": "Value of expression at line 2", + "UsingDefaultValue": false, + "Level": 2, + "UseLevels": false, + "KeepListStructure": false + } + ], + "Replication": "Disabled", + "Description": "Allows for DesignScript code to be authored directly" + }, + { + "ConcreteType": "CoreNodeModels.Input.ColorPalette, CoreNodeModels", + "InputValue": { + "R": 255, + "G": 20, + "B": 147, + "A": 255 + }, + "NodeType": "ColorInputNode", + "Id": "edab865157544f59a8d4dc50c4be099b", + "Inputs": [], + "Outputs": [ + { + "Id": "7e7de9f62d784e34a4366d1e8c8b19fc", + "Name": "Color", + "Description": "Selected Color.", + "UsingDefaultValue": false, + "Level": 2, + "UseLevels": false, + "KeepListStructure": false + } + ], + "Replication": "Disabled", + "Description": "Select a Color from the palette" + }, + { + "ConcreteType": "CoreNodeModels.Input.ColorPalette, CoreNodeModels", + "InputValue": { + "R": 186, + "G": 85, + "B": 211, + "A": 255 + }, + "NodeType": "ColorInputNode", + "Id": "97d3335123a54e1a83292b75ec76953e", + "Inputs": [], + "Outputs": [ + { + "Id": "e89fb0a571c34e038a9c8d32270108e4", + "Name": "Color", + "Description": "Selected Color.", + "UsingDefaultValue": false, + "Level": 2, + "UseLevels": false, + "KeepListStructure": false + } + ], + "Replication": "Disabled", + "Description": "Select a Color from the palette" + }, + { + "ConcreteType": "CoreNodeModels.Input.ColorPalette, CoreNodeModels", + "InputValue": { + "R": 135, + "G": 206, + "B": 250, + "A": 255 + }, + "NodeType": "ColorInputNode", + "Id": "4c33689587a542dfa9424dff49806307", + "Inputs": [], + "Outputs": [ + { + "Id": "b74ea336f6444433a0d6d004be0e5b0c", + "Name": "Color", + "Description": "Selected Color.", + "UsingDefaultValue": false, + "Level": 2, + "UseLevels": false, + "KeepListStructure": false + } + ], + "Replication": "Disabled", + "Description": "Select a Color from the palette" + }, + { + "ConcreteType": "CoreNodeModels.CreateList, CoreNodeModels", + "VariableInputPorts": true, + "NodeType": "ExtensionNode", + "Id": "0c939cd31bb04052b772b0634809c87d", + "Inputs": [ + { + "Id": "dcec969d2fcc450683b3c09900697e7c", + "Name": "item0", + "Description": "Item Index #0", + "UsingDefaultValue": false, + "Level": 2, + "UseLevels": false, + "KeepListStructure": false + }, + { + "Id": "30eef537505a45608dec89622682e69b", + "Name": "item1", + "Description": "Item Index #1", + "UsingDefaultValue": false, + "Level": 2, + "UseLevels": false, + "KeepListStructure": false + }, + { + "Id": "f30b08bd7b034da380985f70199dd067", + "Name": "item2", + "Description": "Item Index #2", + "UsingDefaultValue": false, + "Level": 2, + "UseLevels": false, + "KeepListStructure": false + } + ], + "Outputs": [ + { + "Id": "99395561deda47398066cd8c6072895a", + "Name": "list", + "Description": "A list (type: var[]..[])", + "UsingDefaultValue": false, + "Level": 2, + "UseLevels": false, + "KeepListStructure": false + } + ], + "Replication": "Disabled", + "Description": "Makes a new list from the given inputs" + }, + { + "ConcreteType": "CoreNodeModelsWpf.Charts.BarChartNodeModel, CoreNodeModelsWpf", + "Labels": [ + "January", + "February", + "March" + ], + "Values": [ + [ + 4.0, + 12.0, + 34.0 + ], + [ + 14.0, + 22.0, + 14.0 + ], + [ + 15.0, + 3.0, + 6.0 + ] + ], + "Colors": [ + "#FFFF1493", + "#FFBA55D3", + "#FF87CEFA" + ], + "NodeType": "ExtensionNode", + "Id": "c1d721e2c7694638a260fdfe3f40874a", + "Inputs": [ + { + "Id": "63ec628e52024be5a0c0e5275f73a8e1", + "Name": "labels", + "Description": "A list of labels for the bar chart categories.", + "UsingDefaultValue": false, + "Level": 2, + "UseLevels": false, + "KeepListStructure": false + }, + { + "Id": "1acd961443ba47f6b4e89dcf3354f610", + "Name": "values", + "Description": "A list of lists to supply values for the bars in each category.", + "UsingDefaultValue": false, + "Level": 2, + "UseLevels": false, + "KeepListStructure": false + }, + { + "Id": "b51e61c82c1748538a888f8f2c499af5", + "Name": "colors", + "Description": "A list of colors for each bar chart category.", + "UsingDefaultValue": false, + "Level": 2, + "UseLevels": false, + "KeepListStructure": false + } + ], + "Outputs": [ + { + "Id": "315acdd6032441fb9f3401889b5ac3c8", + "Name": "labels:values", + "Description": "Dictionary containing label:value key-pairs", + "UsingDefaultValue": false, + "Level": 2, + "UseLevels": false, + "KeepListStructure": false + } + ], + "Replication": "Disabled", + "Description": "Create a new Bar Chart." + } + ], + "Connectors": [ + { + "Start": "a11430fd97ca44a2a70990454e90369a", + "End": "63ec628e52024be5a0c0e5275f73a8e1", + "Id": "17188db6da43454196cabad9307ce126", + "IsHidden": "False" + }, + { + "Start": "046741d0cd6f4ce0ba9280c25f87e78e", + "End": "1acd961443ba47f6b4e89dcf3354f610", + "Id": "7affa895be9146948d51f87efc5c7b4a", + "IsHidden": "False" + }, + { + "Start": "7e7de9f62d784e34a4366d1e8c8b19fc", + "End": "dcec969d2fcc450683b3c09900697e7c", + "Id": "45e2bf7df1054bc1bc18197758129601", + "IsHidden": "False" + }, + { + "Start": "e89fb0a571c34e038a9c8d32270108e4", + "End": "30eef537505a45608dec89622682e69b", + "Id": "7a3c167b593149d5b9acd7a0a73a29c9", + "IsHidden": "False" + }, + { + "Start": "b74ea336f6444433a0d6d004be0e5b0c", + "End": "f30b08bd7b034da380985f70199dd067", + "Id": "2d3b3114833e43c5a07342072b76fa8e", + "IsHidden": "False" + }, + { + "Start": "99395561deda47398066cd8c6072895a", + "End": "b51e61c82c1748538a888f8f2c499af5", + "Id": "5bd4772bc9e840e6ad0528e553b50bc2", + "IsHidden": "False" + } + ], + "Dependencies": [], + "NodeLibraryDependencies": [], + "Thumbnail": "", + "GraphDocumentationURL": null, + "ExtensionWorkspaceData": [ + { + "ExtensionGuid": "28992e1d-abb9-417f-8b1b-05e053bee670", + "Name": "Properties", + "Version": "2.18", + "Data": {} + } + ], + "Author": "", + "Linting": { + "activeLinter": "None", + "activeLinterId": "7b75fb44-43fd-4631-a878-29f4d5d8399a", + "warningCount": 0, + "errorCount": 0 + }, + "Bindings": [], + "View": { + "Dynamo": { + "ScaleFactor": 1.0, + "HasRunWithoutCrash": true, + "IsVisibleInDynamoLibrary": true, + "Version": "2.18.0.3514", + "RunType": "Manual", + "RunPeriod": "1000" + }, + "Camera": { + "Name": "_Background Preview", + "EyeX": -17.0, + "EyeY": 24.0, + "EyeZ": 50.0, + "LookX": 12.0, + "LookY": -13.0, + "LookZ": -58.0, + "UpX": 0.0, + "UpY": 1.0, + "UpZ": 0.0 + }, + "ConnectorPins": [], + "NodeViews": [ + { + "Name": "Code Block", + "ShowGeometry": true, + "Id": "4f90db449387447f8b2d3856f7615cc2", + "IsSetAsInput": false, + "IsSetAsOutput": false, + "Excluded": false, + "X": 161.25068076975765, + "Y": 828.70884236179791 + }, + { + "Name": "Color Palette", + "ShowGeometry": true, + "Id": "edab865157544f59a8d4dc50c4be099b", + "IsSetAsInput": false, + "IsSetAsOutput": false, + "Excluded": false, + "X": -107.74931923024235, + "Y": 873.05384236179782 + }, + { + "Name": "Color Palette", + "ShowGeometry": true, + "Id": "97d3335123a54e1a83292b75ec76953e", + "IsSetAsInput": false, + "IsSetAsOutput": false, + "Excluded": false, + "X": -107.74931923024235, + "Y": 1020.0538423617977 + }, + { + "Name": "Color Palette", + "ShowGeometry": true, + "Id": "4c33689587a542dfa9424dff49806307", + "IsSetAsInput": false, + "IsSetAsOutput": false, + "Excluded": false, + "X": -107.74931923024235, + "Y": 1167.0538423617977 + }, + { + "Name": "List Create", + "ShowGeometry": true, + "Id": "0c939cd31bb04052b772b0634809c87d", + "IsSetAsInput": false, + "IsSetAsOutput": false, + "Excluded": false, + "X": 161.25068076975765, + "Y": 986.05384236179771 + }, + { + "Name": "Bar Chart", + "ShowGeometry": true, + "Id": "c1d721e2c7694638a260fdfe3f40874a", + "IsSetAsInput": false, + "IsSetAsOutput": false, + "Excluded": false, + "X": 642.25068076975765, + "Y": 869.05384236179793 + } + ], + "Annotations": [], + "X": 167.85602648766519, + "Y": -641.73828640433828, + "Zoom": 0.93960835564510869 + } +} \ No newline at end of file diff --git a/doc/distrib/NodeHelpFiles/CoreNodeModelsWpf.Charts.BarChartNodeModel.md b/doc/distrib/NodeHelpFiles/CoreNodeModelsWpf.Charts.BarChartNodeModel.md new file mode 100644 index 00000000000..42864d649c4 --- /dev/null +++ b/doc/distrib/NodeHelpFiles/CoreNodeModelsWpf.Charts.BarChartNodeModel.md @@ -0,0 +1,7 @@ +## In Depth +Bar Chart text. +___ +## Example File + +![Bar Chart](./CoreNodeModelsWpf.Charts.BarChartNodeModel_img.jpg) + diff --git a/doc/distrib/NodeHelpFiles/CoreNodeModelsWpf.Charts.BarChartNodeModel_img.jpg b/doc/distrib/NodeHelpFiles/CoreNodeModelsWpf.Charts.BarChartNodeModel_img.jpg new file mode 100644 index 00000000000..d48f9607e8e Binary files /dev/null and b/doc/distrib/NodeHelpFiles/CoreNodeModelsWpf.Charts.BarChartNodeModel_img.jpg differ diff --git a/doc/distrib/NodeHelpFiles/CoreNodeModelsWpf.Charts.BasicLineChartNodeModel.dyn b/doc/distrib/NodeHelpFiles/CoreNodeModelsWpf.Charts.BasicLineChartNodeModel.dyn new file mode 100644 index 00000000000..2cb0e1c91e3 --- /dev/null +++ b/doc/distrib/NodeHelpFiles/CoreNodeModelsWpf.Charts.BasicLineChartNodeModel.dyn @@ -0,0 +1,392 @@ +{ + "Uuid": "8c2ba28b-a82f-4c59-9042-0eb03618a325", + "IsCustomNode": false, + "Description": "", + "Name": "CoreNodeModelsWpf.Charts.BasicLineChartNodeModel", + "ElementResolver": { + "ResolutionMap": {} + }, + "Inputs": [], + "Outputs": [], + "Nodes": [ + { + "ConcreteType": "CoreNodeModels.Input.ColorPalette, CoreNodeModels", + "InputValue": { + "R": 106, + "G": 192, + "B": 231, + "A": 255 + }, + "NodeType": "ColorInputNode", + "Id": "e0ed4e19e86f4d46b45cf52d8ad014bb", + "Inputs": [], + "Outputs": [ + { + "Id": "1286046b8e5d4575860f9e9db2fc0501", + "Name": "Color", + "Description": "Selected Color.", + "UsingDefaultValue": false, + "Level": 2, + "UseLevels": false, + "KeepListStructure": false + } + ], + "Replication": "Disabled", + "Description": "Select a Color from the palette" + }, + { + "ConcreteType": "Dynamo.Graph.Nodes.CodeBlockNodeModel, DynamoCore", + "NodeType": "CodeBlockNode", + "Code": "[\"2019\",\"2020\",\"2021\"];\n[[2,53,14,45,6],[22,41,45,61,21],[34,51,34,65,2]];", + "Id": "9a69a670e4e944beb05ba16760e78cc9", + "Inputs": [], + "Outputs": [ + { + "Id": "e0eafad042b54837b03d14547d486019", + "Name": "", + "Description": "Value of expression at line 1", + "UsingDefaultValue": false, + "Level": 2, + "UseLevels": false, + "KeepListStructure": false + }, + { + "Id": "1b6ed5cca4874447aa4f9c4b379351e5", + "Name": "", + "Description": "Value of expression at line 2", + "UsingDefaultValue": false, + "Level": 2, + "UseLevels": false, + "KeepListStructure": false + } + ], + "Replication": "Disabled", + "Description": "Allows for DesignScript code to be authored directly" + }, + { + "ConcreteType": "CoreNodeModels.Input.ColorPalette, CoreNodeModels", + "InputValue": { + "R": 235, + "G": 85, + "B": 85, + "A": 255 + }, + "NodeType": "ColorInputNode", + "Id": "dad546b8cca74c018131afac97373793", + "Inputs": [], + "Outputs": [ + { + "Id": "ee95d08cf2464fe99f8a197fa1aef817", + "Name": "Color", + "Description": "Selected Color.", + "UsingDefaultValue": false, + "Level": 2, + "UseLevels": false, + "KeepListStructure": false + } + ], + "Replication": "Disabled", + "Description": "Select a Color from the palette" + }, + { + "ConcreteType": "CoreNodeModels.Input.ColorPalette, CoreNodeModels", + "InputValue": { + "R": 251, + "G": 181, + "B": 73, + "A": 255 + }, + "NodeType": "ColorInputNode", + "Id": "ae6b6e8eeda24d5f9965192579c45062", + "Inputs": [], + "Outputs": [ + { + "Id": "0861289b1a5b4bb08333e7f51e49a28c", + "Name": "Color", + "Description": "Selected Color.", + "UsingDefaultValue": false, + "Level": 2, + "UseLevels": false, + "KeepListStructure": false + } + ], + "Replication": "Disabled", + "Description": "Select a Color from the palette" + }, + { + "ConcreteType": "CoreNodeModels.CreateList, CoreNodeModels", + "VariableInputPorts": true, + "NodeType": "ExtensionNode", + "Id": "cf5d19d895144705bd3cf7630e679b47", + "Inputs": [ + { + "Id": "ff36251bdbf346a49eae8016360d05f9", + "Name": "item0", + "Description": "Item Index #0", + "UsingDefaultValue": false, + "Level": 2, + "UseLevels": false, + "KeepListStructure": false + }, + { + "Id": "ce36bb0df2d6411cbfe2c06b8718baa7", + "Name": "item1", + "Description": "Item Index #1", + "UsingDefaultValue": false, + "Level": 2, + "UseLevels": false, + "KeepListStructure": false + }, + { + "Id": "9815e154b75b4f9ea71f490a2dfb6b62", + "Name": "item2", + "Description": "Item Index #2", + "UsingDefaultValue": false, + "Level": 2, + "UseLevels": false, + "KeepListStructure": false + } + ], + "Outputs": [ + { + "Id": "df2fe13d30d54e0fbdda277826ad6f40", + "Name": "list", + "Description": "A list (type: var[]..[])", + "UsingDefaultValue": false, + "Level": 2, + "UseLevels": false, + "KeepListStructure": false + } + ], + "Replication": "Disabled", + "Description": "Makes a new list from the given inputs" + }, + { + "ConcreteType": "CoreNodeModelsWpf.Charts.BasicLineChartNodeModel, CoreNodeModelsWpf", + "Labels": [ + "2019", + "2020", + "2021" + ], + "Values": [ + [ + 2.0, + 53.0, + 14.0, + 45.0, + 6.0 + ], + [ + 22.0, + 41.0, + 45.0, + 61.0, + 21.0 + ], + [ + 34.0, + 51.0, + 34.0, + 65.0, + 2.0 + ] + ], + "Colors": [ + "#FF6AC0E7", + "#FFEB5555", + "#FFFBB549" + ], + "NodeType": "ExtensionNode", + "Id": "a9e1d206d5044a619959e7045192f54f", + "Inputs": [ + { + "Id": "ffab03d9590a4ec19eda0baee395a411", + "Name": "labels", + "Description": "A list of string labels for each line to be plotted.", + "UsingDefaultValue": false, + "Level": 2, + "UseLevels": false, + "KeepListStructure": false + }, + { + "Id": "ab14b46f65ad42e8b5516a6a14c374a6", + "Name": "values", + "Description": "List of lists each containing double values to be plotted against X-Axis values.", + "UsingDefaultValue": false, + "Level": 2, + "UseLevels": false, + "KeepListStructure": false + }, + { + "Id": "400ba7be1f0f400181f1caf7af00aa09", + "Name": "colors", + "Description": "A list of colors for each line.", + "UsingDefaultValue": false, + "Level": 2, + "UseLevels": false, + "KeepListStructure": false + } + ], + "Outputs": [ + { + "Id": "67add682d35a4cfca99bded92c91878d", + "Name": "labels:values", + "Description": "Dictionary containing label:value key-pairs", + "UsingDefaultValue": false, + "Level": 2, + "UseLevels": false, + "KeepListStructure": false + } + ], + "Replication": "Disabled", + "Description": "Create a new Basic Line Chart." + } + ], + "Connectors": [ + { + "Start": "1286046b8e5d4575860f9e9db2fc0501", + "End": "ff36251bdbf346a49eae8016360d05f9", + "Id": "b0aa68c0d0844b2788d670c362b02942", + "IsHidden": "False" + }, + { + "Start": "e0eafad042b54837b03d14547d486019", + "End": "ffab03d9590a4ec19eda0baee395a411", + "Id": "880eadfbcc0345cfa04f8c3e75a784bb", + "IsHidden": "False" + }, + { + "Start": "1b6ed5cca4874447aa4f9c4b379351e5", + "End": "ab14b46f65ad42e8b5516a6a14c374a6", + "Id": "e522cea8853646da99767021d8f8e7dc", + "IsHidden": "False" + }, + { + "Start": "ee95d08cf2464fe99f8a197fa1aef817", + "End": "ce36bb0df2d6411cbfe2c06b8718baa7", + "Id": "9580a7aa2e1e4d2f88af5d91d62f5e7c", + "IsHidden": "False" + }, + { + "Start": "0861289b1a5b4bb08333e7f51e49a28c", + "End": "9815e154b75b4f9ea71f490a2dfb6b62", + "Id": "7f93cd813ba644c9bbaf1e1c307df6e3", + "IsHidden": "False" + }, + { + "Start": "df2fe13d30d54e0fbdda277826ad6f40", + "End": "400ba7be1f0f400181f1caf7af00aa09", + "Id": "e2d120c77f1b46be996818819ea728c5", + "IsHidden": "False" + } + ], + "Dependencies": [], + "NodeLibraryDependencies": [], + "Thumbnail": "", + "GraphDocumentationURL": null, + "ExtensionWorkspaceData": [ + { + "ExtensionGuid": "28992e1d-abb9-417f-8b1b-05e053bee670", + "Name": "Properties", + "Version": "2.18", + "Data": {} + } + ], + "Author": "", + "Linting": { + "activeLinter": "None", + "activeLinterId": "7b75fb44-43fd-4631-a878-29f4d5d8399a", + "warningCount": 0, + "errorCount": 0 + }, + "Bindings": [], + "View": { + "Dynamo": { + "ScaleFactor": 1.0, + "HasRunWithoutCrash": true, + "IsVisibleInDynamoLibrary": true, + "Version": "2.18.0.3754", + "RunType": "Manual", + "RunPeriod": "1000" + }, + "Camera": { + "Name": "_Background Preview", + "EyeX": -17.0, + "EyeY": 24.0, + "EyeZ": 50.0, + "LookX": 12.0, + "LookY": -13.0, + "LookZ": -58.0, + "UpX": 0.0, + "UpY": 1.0, + "UpZ": 0.0 + }, + "ConnectorPins": [], + "NodeViews": [ + { + "Name": "Color Palette", + "ShowGeometry": true, + "Id": "e0ed4e19e86f4d46b45cf52d8ad014bb", + "IsSetAsInput": false, + "IsSetAsOutput": false, + "Excluded": false, + "X": -47.0, + "Y": 270.6725 + }, + { + "Name": "Code Block", + "ShowGeometry": true, + "Id": "9a69a670e4e944beb05ba16760e78cc9", + "IsSetAsInput": false, + "IsSetAsOutput": false, + "Excluded": false, + "X": 222.0, + "Y": 226.3275 + }, + { + "Name": "Color Palette", + "ShowGeometry": true, + "Id": "dad546b8cca74c018131afac97373793", + "IsSetAsInput": false, + "IsSetAsOutput": false, + "Excluded": false, + "X": -47.0, + "Y": 417.6725 + }, + { + "Name": "Color Palette", + "ShowGeometry": true, + "Id": "ae6b6e8eeda24d5f9965192579c45062", + "IsSetAsInput": false, + "IsSetAsOutput": false, + "Excluded": false, + "X": -47.0, + "Y": 564.6725 + }, + { + "Name": "List Create", + "ShowGeometry": true, + "Id": "cf5d19d895144705bd3cf7630e679b47", + "IsSetAsInput": false, + "IsSetAsOutput": false, + "Excluded": false, + "X": 222.0, + "Y": 383.6725 + }, + { + "Name": "Index-Value Line Plot", + "ShowGeometry": true, + "Id": "a9e1d206d5044a619959e7045192f54f", + "IsSetAsInput": false, + "IsSetAsOutput": false, + "Excluded": false, + "X": 806.84128522197523, + "Y": 224.29316361101533 + } + ], + "Annotations": [], + "X": 80.646973084072329, + "Y": 52.6204584052321, + "Zoom": 0.8033215934625979 + } +} \ No newline at end of file diff --git a/doc/distrib/NodeHelpFiles/CoreNodeModelsWpf.Charts.BasicLineChartNodeModel.md b/doc/distrib/NodeHelpFiles/CoreNodeModelsWpf.Charts.BasicLineChartNodeModel.md new file mode 100644 index 00000000000..3ec0e2bd386 --- /dev/null +++ b/doc/distrib/NodeHelpFiles/CoreNodeModelsWpf.Charts.BasicLineChartNodeModel.md @@ -0,0 +1,7 @@ +## In Depth +Index-Value Line Plot text. +___ +## Example File + +![Index-Value Line Plot](./CoreNodeModelsWpf.Charts.BasicLineChartNodeModel_img.jpg) + diff --git a/doc/distrib/NodeHelpFiles/CoreNodeModelsWpf.Charts.BasicLineChartNodeModel_img.jpg b/doc/distrib/NodeHelpFiles/CoreNodeModelsWpf.Charts.BasicLineChartNodeModel_img.jpg new file mode 100644 index 00000000000..9dcc9a07ea2 Binary files /dev/null and b/doc/distrib/NodeHelpFiles/CoreNodeModelsWpf.Charts.BasicLineChartNodeModel_img.jpg differ diff --git a/doc/distrib/NodeHelpFiles/CoreNodeModelsWpf.Charts.HeatSeriesNodeModel.dyn b/doc/distrib/NodeHelpFiles/CoreNodeModelsWpf.Charts.HeatSeriesNodeModel.dyn new file mode 100644 index 00000000000..173983df54e --- /dev/null +++ b/doc/distrib/NodeHelpFiles/CoreNodeModelsWpf.Charts.HeatSeriesNodeModel.dyn @@ -0,0 +1,403 @@ +{ + "Uuid": "8c2ba28b-a82f-4c59-9042-0eb03618a325", + "IsCustomNode": false, + "Description": "", + "Name": "Heat Series Plot", + "ElementResolver": { + "ResolutionMap": {} + }, + "Inputs": [], + "Outputs": [], + "Nodes": [ + { + "ConcreteType": "Dynamo.Graph.Nodes.CodeBlockNodeModel, DynamoCore", + "NodeType": "CodeBlockNode", + "Code": "[\"Item 1\",\"Item 2\",\"Item 3\",\"Item 4\",\"Item 5\",\"Item 6\"];\n[\"January\",\"February\",\"March\",\"April\",\"May\",\"June\"];\n[[1,2,3,4,2,1],[-12,12,4,-61,45,88],[4,4,5,5,16,-6],[-74,37,83,-262,54,44],[232,133,444,323,414,231],[332,122,98,89,89,78]];", + "Id": "62218ca505be42e38947fc8f427a6d5d", + "Inputs": [], + "Outputs": [ + { + "Id": "08edba968ff14aedbe43df81eacbc469", + "Name": "", + "Description": "Value of expression at line 1", + "UsingDefaultValue": false, + "Level": 2, + "UseLevels": false, + "KeepListStructure": false + }, + { + "Id": "6d31b40a3d234b45b9879bac6bcd6e52", + "Name": "", + "Description": "Value of expression at line 2", + "UsingDefaultValue": false, + "Level": 2, + "UseLevels": false, + "KeepListStructure": false + }, + { + "Id": "4744d7d46fbf48d69fe8de0886ad684f", + "Name": "", + "Description": "Value of expression at line 3", + "UsingDefaultValue": false, + "Level": 2, + "UseLevels": false, + "KeepListStructure": false + } + ], + "Replication": "Disabled", + "Description": "Allows for DesignScript code to be authored directly" + }, + { + "ConcreteType": "CoreNodeModels.Input.ColorPalette, CoreNodeModels", + "InputValue": { + "R": 106, + "G": 192, + "B": 231, + "A": 255 + }, + "NodeType": "ColorInputNode", + "Id": "2c3e3705aa3748a0a0f20505ff3be117", + "Inputs": [], + "Outputs": [ + { + "Id": "aac47bb67a264898946360146dc6b9bb", + "Name": "Color", + "Description": "Selected Color.", + "UsingDefaultValue": false, + "Level": 2, + "UseLevels": false, + "KeepListStructure": false + } + ], + "Replication": "Disabled", + "Description": "Select a Color from the palette" + }, + { + "ConcreteType": "CoreNodeModels.Input.ColorPalette, CoreNodeModels", + "InputValue": { + "R": 235, + "G": 85, + "B": 85, + "A": 255 + }, + "NodeType": "ColorInputNode", + "Id": "b53b43633735435ab9fa51d36a19cf4d", + "Inputs": [], + "Outputs": [ + { + "Id": "aea68af2d9674ead8fdaa8f001a191c5", + "Name": "Color", + "Description": "Selected Color.", + "UsingDefaultValue": false, + "Level": 2, + "UseLevels": false, + "KeepListStructure": false + } + ], + "Replication": "Disabled", + "Description": "Select a Color from the palette" + }, + { + "ConcreteType": "CoreNodeModels.CreateList, CoreNodeModels", + "VariableInputPorts": true, + "NodeType": "ExtensionNode", + "Id": "9e4b1a6ac0294f3092e4d38a0b1c7d0c", + "Inputs": [ + { + "Id": "88a6122f398640349aa909ab9a1546ba", + "Name": "item0", + "Description": "Item Index #0", + "UsingDefaultValue": false, + "Level": 2, + "UseLevels": false, + "KeepListStructure": false + }, + { + "Id": "9b8863388e9549439f619e067cf0dc6d", + "Name": "item1", + "Description": "Item Index #1", + "UsingDefaultValue": false, + "Level": 2, + "UseLevels": false, + "KeepListStructure": false + } + ], + "Outputs": [ + { + "Id": "cb045d04d9e54f38ad37668170bd90e4", + "Name": "list", + "Description": "A list (type: var[]..[])", + "UsingDefaultValue": false, + "Level": 2, + "UseLevels": false, + "KeepListStructure": false + } + ], + "Replication": "Disabled", + "Description": "Makes a new list from the given inputs" + }, + { + "ConcreteType": "CoreNodeModelsWpf.Charts.HeatSeriesNodeModel, CoreNodeModelsWpf", + "XLabels": [ + "Item 1", + "Item 2", + "Item 3", + "Item 4", + "Item 5", + "Item 6" + ], + "YLabels": [ + "January", + "February", + "March", + "April", + "May", + "June" + ], + "Values": [ + [ + 1.0, + 2.0, + 3.0, + 4.0, + 2.0, + 1.0 + ], + [ + -12.0, + 12.0, + 4.0, + -61.0, + 45.0, + 88.0 + ], + [ + 4.0, + 4.0, + 5.0, + 5.0, + 16.0, + -6.0 + ], + [ + -74.0, + 37.0, + 83.0, + -262.0, + 54.0, + 44.0 + ], + [ + 232.0, + 133.0, + 444.0, + 323.0, + 414.0, + 231.0 + ], + [ + 332.0, + 122.0, + 98.0, + 89.0, + 89.0, + 78.0 + ] + ], + "Colors": [ + "#FF6AC0E7", + "#FFEB5555" + ], + "NodeType": "ExtensionNode", + "Id": "8d9950cf7df344ed9799c89d3c524413", + "Inputs": [ + { + "Id": "51443b25c12e403790610104225aefe9", + "Name": "x-labels", + "Description": "A list of string labels for the x-axis.", + "UsingDefaultValue": false, + "Level": 2, + "UseLevels": false, + "KeepListStructure": false + }, + { + "Id": "e927e9faba03424db907ea5b7f1bee0c", + "Name": "y-labels", + "Description": "A list of string labels for the y-axis.", + "UsingDefaultValue": false, + "Level": 2, + "UseLevels": false, + "KeepListStructure": false + }, + { + "Id": "bf23f2786656438eaab147603f787ffb", + "Name": "values", + "Description": "A list of lists each containing double values representing items in a column.", + "UsingDefaultValue": false, + "Level": 2, + "UseLevels": false, + "KeepListStructure": false + }, + { + "Id": "5cca7b7b7eb643c3815ec089237b0e1e", + "Name": "colors", + "Description": "A list of colors used to generate a color range", + "UsingDefaultValue": false, + "Level": 2, + "UseLevels": false, + "KeepListStructure": false + } + ], + "Outputs": [ + { + "Id": "38f55c1021af4d0287516a6aab3b4eba", + "Name": "labels:values", + "Description": "Dictionary containing label:value key-pairs", + "UsingDefaultValue": false, + "Level": 2, + "UseLevels": false, + "KeepListStructure": false + } + ], + "Replication": "Disabled", + "Description": "Create a new heat series plot." + } + ], + "Connectors": [ + { + "Start": "08edba968ff14aedbe43df81eacbc469", + "End": "51443b25c12e403790610104225aefe9", + "Id": "1d5a74f5c7264c3c879d10638f07cedc", + "IsHidden": "False" + }, + { + "Start": "6d31b40a3d234b45b9879bac6bcd6e52", + "End": "e927e9faba03424db907ea5b7f1bee0c", + "Id": "cc766a33e1654716a3488c17b54e4b37", + "IsHidden": "False" + }, + { + "Start": "4744d7d46fbf48d69fe8de0886ad684f", + "End": "bf23f2786656438eaab147603f787ffb", + "Id": "9ff3d46203334d119ccf4994e9ebb314", + "IsHidden": "False" + }, + { + "Start": "aac47bb67a264898946360146dc6b9bb", + "End": "88a6122f398640349aa909ab9a1546ba", + "Id": "55073ace889c4189802149b38dee1c11", + "IsHidden": "False" + }, + { + "Start": "aea68af2d9674ead8fdaa8f001a191c5", + "End": "9b8863388e9549439f619e067cf0dc6d", + "Id": "bc6a3066dd7d457688bf54fdac04e412", + "IsHidden": "False" + }, + { + "Start": "cb045d04d9e54f38ad37668170bd90e4", + "End": "5cca7b7b7eb643c3815ec089237b0e1e", + "Id": "b53f6cf633464804a3cfb95b0d1f1b86", + "IsHidden": "False" + } + ], + "Dependencies": [], + "NodeLibraryDependencies": [], + "Thumbnail": "", + "GraphDocumentationURL": null, + "ExtensionWorkspaceData": [ + { + "ExtensionGuid": "28992e1d-abb9-417f-8b1b-05e053bee670", + "Name": "Properties", + "Version": "2.18", + "Data": {} + } + ], + "Author": "", + "Linting": { + "activeLinter": "None", + "activeLinterId": "7b75fb44-43fd-4631-a878-29f4d5d8399a", + "warningCount": 0, + "errorCount": 0 + }, + "Bindings": [], + "View": { + "Dynamo": { + "ScaleFactor": 1.0, + "HasRunWithoutCrash": true, + "IsVisibleInDynamoLibrary": true, + "Version": "2.18.0.3514", + "RunType": "Manual", + "RunPeriod": "1000" + }, + "Camera": { + "Name": "_Background Preview", + "EyeX": -17.0, + "EyeY": 24.0, + "EyeZ": 50.0, + "LookX": 12.0, + "LookY": -13.0, + "LookZ": -58.0, + "UpX": 0.0, + "UpY": 1.0, + "UpZ": 0.0 + }, + "ConnectorPins": [], + "NodeViews": [ + { + "Name": "Code Block", + "ShowGeometry": true, + "Id": "62218ca505be42e38947fc8f427a6d5d", + "IsSetAsInput": false, + "IsSetAsOutput": false, + "Excluded": false, + "X": 338.69039399351686, + "Y": 286.70745982366219 + }, + { + "Name": "Color Palette", + "ShowGeometry": true, + "Id": "2c3e3705aa3748a0a0f20505ff3be117", + "IsSetAsInput": false, + "IsSetAsOutput": false, + "Excluded": false, + "X": 69.690393993516864, + "Y": 420.22495982366223 + }, + { + "Name": "Color Palette", + "ShowGeometry": true, + "Id": "b53b43633735435ab9fa51d36a19cf4d", + "IsSetAsInput": false, + "IsSetAsOutput": false, + "Excluded": false, + "X": 69.690393993516864, + "Y": 568.22495982366218 + }, + { + "Name": "List Create", + "ShowGeometry": true, + "Id": "9e4b1a6ac0294f3092e4d38a0b1c7d0c", + "IsSetAsInput": false, + "IsSetAsOutput": false, + "Excluded": false, + "X": 338.69039399351686, + "Y": 477.22495982366223 + }, + { + "Name": "Heat Series Plot", + "ShowGeometry": true, + "Id": "8d9950cf7df344ed9799c89d3c524413", + "IsSetAsInput": false, + "IsSetAsOutput": false, + "Excluded": false, + "X": 1176.6903939935169, + "Y": 322.22495982366223 + } + ], + "Annotations": [], + "X": -51.353818569287512, + "Y": -74.854029211972659, + "Zoom": 0.76655075795131533 + } +} \ No newline at end of file diff --git a/doc/distrib/NodeHelpFiles/CoreNodeModelsWpf.Charts.HeatSeriesNodeModel.md b/doc/distrib/NodeHelpFiles/CoreNodeModelsWpf.Charts.HeatSeriesNodeModel.md new file mode 100644 index 00000000000..19c2bb7af36 --- /dev/null +++ b/doc/distrib/NodeHelpFiles/CoreNodeModelsWpf.Charts.HeatSeriesNodeModel.md @@ -0,0 +1,7 @@ +## In Depth +Heat Series Plot text. +___ +## Example File + +![Heat Series Plot](./CoreNodeModelsWpf.Charts.HeatSeriesNodeModel_img.jpg) + diff --git a/doc/distrib/NodeHelpFiles/CoreNodeModelsWpf.Charts.HeatSeriesNodeModel_img.jpg b/doc/distrib/NodeHelpFiles/CoreNodeModelsWpf.Charts.HeatSeriesNodeModel_img.jpg new file mode 100644 index 00000000000..7c38e808d61 Binary files /dev/null and b/doc/distrib/NodeHelpFiles/CoreNodeModelsWpf.Charts.HeatSeriesNodeModel_img.jpg differ diff --git a/doc/distrib/NodeHelpFiles/CoreNodeModelsWpf.Charts.PieChartNodeModel.dyn b/doc/distrib/NodeHelpFiles/CoreNodeModelsWpf.Charts.PieChartNodeModel.dyn new file mode 100644 index 00000000000..43333b743b1 --- /dev/null +++ b/doc/distrib/NodeHelpFiles/CoreNodeModelsWpf.Charts.PieChartNodeModel.dyn @@ -0,0 +1,374 @@ +{ + "Uuid": "8c2ba28b-a82f-4c59-9042-0eb03618a325", + "IsCustomNode": false, + "Description": "", + "Name": "Pie Chart", + "ElementResolver": { + "ResolutionMap": {} + }, + "Inputs": [], + "Outputs": [], + "Nodes": [ + { + "ConcreteType": "Dynamo.Graph.Nodes.CodeBlockNodeModel, DynamoCore", + "NodeType": "CodeBlockNode", + "Code": "[\"2019\",\"2020\",\"2021\"];\n[70,20,10];", + "Id": "62218ca505be42e38947fc8f427a6d5d", + "Inputs": [], + "Outputs": [ + { + "Id": "59416ee8f0f84a11bc92db264acc028d", + "Name": "", + "Description": "Value of expression at line 1", + "UsingDefaultValue": false, + "Level": 2, + "UseLevels": false, + "KeepListStructure": false + }, + { + "Id": "fd5856415d5f44878ff488a73e68bbb9", + "Name": "", + "Description": "Value of expression at line 2", + "UsingDefaultValue": false, + "Level": 2, + "UseLevels": false, + "KeepListStructure": false + } + ], + "Replication": "Disabled", + "Description": "Allows for DesignScript code to be authored directly" + }, + { + "ConcreteType": "CoreNodeModels.Input.ColorPalette, CoreNodeModels", + "InputValue": { + "R": 106, + "G": 192, + "B": 231, + "A": 255 + }, + "NodeType": "ColorInputNode", + "Id": "2c3e3705aa3748a0a0f20505ff3be117", + "Inputs": [], + "Outputs": [ + { + "Id": "aac47bb67a264898946360146dc6b9bb", + "Name": "Color", + "Description": "Selected Color.", + "UsingDefaultValue": false, + "Level": 2, + "UseLevels": false, + "KeepListStructure": false + } + ], + "Replication": "Disabled", + "Description": "Select a Color from the palette" + }, + { + "ConcreteType": "CoreNodeModels.Input.ColorPalette, CoreNodeModels", + "InputValue": { + "R": 235, + "G": 85, + "B": 85, + "A": 255 + }, + "NodeType": "ColorInputNode", + "Id": "b53b43633735435ab9fa51d36a19cf4d", + "Inputs": [], + "Outputs": [ + { + "Id": "aea68af2d9674ead8fdaa8f001a191c5", + "Name": "Color", + "Description": "Selected Color.", + "UsingDefaultValue": false, + "Level": 2, + "UseLevels": false, + "KeepListStructure": false + } + ], + "Replication": "Disabled", + "Description": "Select a Color from the palette" + }, + { + "ConcreteType": "CoreNodeModels.Input.ColorPalette, CoreNodeModels", + "InputValue": { + "R": 251, + "G": 181, + "B": 73, + "A": 255 + }, + "NodeType": "ColorInputNode", + "Id": "8f44b9ccbc6842a2a9d074fb896fd891", + "Inputs": [], + "Outputs": [ + { + "Id": "fe9737b86ad24357a4b23d4a16e76b75", + "Name": "Color", + "Description": "Selected Color.", + "UsingDefaultValue": false, + "Level": 2, + "UseLevels": false, + "KeepListStructure": false + } + ], + "Replication": "Disabled", + "Description": "Select a Color from the palette" + }, + { + "ConcreteType": "CoreNodeModels.CreateList, CoreNodeModels", + "VariableInputPorts": true, + "NodeType": "ExtensionNode", + "Id": "9e4b1a6ac0294f3092e4d38a0b1c7d0c", + "Inputs": [ + { + "Id": "88a6122f398640349aa909ab9a1546ba", + "Name": "item0", + "Description": "Item Index #0", + "UsingDefaultValue": false, + "Level": 2, + "UseLevels": false, + "KeepListStructure": false + }, + { + "Id": "9b8863388e9549439f619e067cf0dc6d", + "Name": "item1", + "Description": "Item Index #1", + "UsingDefaultValue": false, + "Level": 2, + "UseLevels": false, + "KeepListStructure": false + }, + { + "Id": "1b97eefabc75492c9ecc9bd321a4a117", + "Name": "item2", + "Description": "Item Index #2", + "UsingDefaultValue": false, + "Level": 2, + "UseLevels": false, + "KeepListStructure": false + } + ], + "Outputs": [ + { + "Id": "cb045d04d9e54f38ad37668170bd90e4", + "Name": "list", + "Description": "A list (type: var[]..[])", + "UsingDefaultValue": false, + "Level": 2, + "UseLevels": false, + "KeepListStructure": false + } + ], + "Replication": "Disabled", + "Description": "Makes a new list from the given inputs" + }, + { + "ConcreteType": "CoreNodeModelsWpf.Charts.PieChartNodeModel, CoreNodeModelsWpf", + "Labels": [ + "2019", + "2020", + "2021" + ], + "Values": [ + 70.0, + 20.0, + 10.0 + ], + "Colors": [ + "#FF6AC0E7", + "#FFEB5555", + "#FFFBB549" + ], + "NodeType": "ExtensionNode", + "Id": "f04ab85a05ef46c5a3db63421abfb01a", + "Inputs": [ + { + "Id": "f66723cfe8f1439cba948fc88ff6ecb2", + "Name": "labels", + "Description": "pie chart category labels", + "UsingDefaultValue": false, + "Level": 2, + "UseLevels": false, + "KeepListStructure": false + }, + { + "Id": "b444d3755c2f4aebb459bf557bf6804f", + "Name": "values", + "Description": "pie chart values to be compared", + "UsingDefaultValue": false, + "Level": 2, + "UseLevels": false, + "KeepListStructure": false + }, + { + "Id": "b26099d076f44a62ba79825d5be1cdb3", + "Name": "colors", + "Description": "pie chart color values", + "UsingDefaultValue": false, + "Level": 2, + "UseLevels": false, + "KeepListStructure": false + } + ], + "Outputs": [ + { + "Id": "ecf9a7a0940b4a93bdbfdf77595c8892", + "Name": "labels:values", + "Description": "Dictionary containing label:value key-pairs", + "UsingDefaultValue": false, + "Level": 2, + "UseLevels": false, + "KeepListStructure": false + } + ], + "Replication": "Disabled", + "Description": "Create a new Pie Chart." + } + ], + "Connectors": [ + { + "Start": "59416ee8f0f84a11bc92db264acc028d", + "End": "f66723cfe8f1439cba948fc88ff6ecb2", + "Id": "7b6aa25c11dd4ad09c71d46eecbe6c0b", + "IsHidden": "False" + }, + { + "Start": "fd5856415d5f44878ff488a73e68bbb9", + "End": "b444d3755c2f4aebb459bf557bf6804f", + "Id": "42df9f53267444ab8e253c637f6fd904", + "IsHidden": "False" + }, + { + "Start": "aac47bb67a264898946360146dc6b9bb", + "End": "88a6122f398640349aa909ab9a1546ba", + "Id": "55073ace889c4189802149b38dee1c11", + "IsHidden": "False" + }, + { + "Start": "aea68af2d9674ead8fdaa8f001a191c5", + "End": "9b8863388e9549439f619e067cf0dc6d", + "Id": "bc6a3066dd7d457688bf54fdac04e412", + "IsHidden": "False" + }, + { + "Start": "fe9737b86ad24357a4b23d4a16e76b75", + "End": "1b97eefabc75492c9ecc9bd321a4a117", + "Id": "e53d38cccb9e49be93592ad0fec85277", + "IsHidden": "False" + }, + { + "Start": "cb045d04d9e54f38ad37668170bd90e4", + "End": "b26099d076f44a62ba79825d5be1cdb3", + "Id": "864855c83dce40029ec3c112cc5510ba", + "IsHidden": "False" + } + ], + "Dependencies": [], + "NodeLibraryDependencies": [], + "Thumbnail": "", + "GraphDocumentationURL": null, + "ExtensionWorkspaceData": [ + { + "ExtensionGuid": "28992e1d-abb9-417f-8b1b-05e053bee670", + "Name": "Properties", + "Version": "2.18", + "Data": {} + } + ], + "Author": "", + "Linting": { + "activeLinter": "None", + "activeLinterId": "7b75fb44-43fd-4631-a878-29f4d5d8399a", + "warningCount": 0, + "errorCount": 0 + }, + "Bindings": [], + "View": { + "Dynamo": { + "ScaleFactor": 1.0, + "HasRunWithoutCrash": true, + "IsVisibleInDynamoLibrary": true, + "Version": "2.18.0.3514", + "RunType": "Manual", + "RunPeriod": "1000" + }, + "Camera": { + "Name": "_Background Preview", + "EyeX": -17.0, + "EyeY": 24.0, + "EyeZ": 50.0, + "LookX": 12.0, + "LookY": -13.0, + "LookZ": -58.0, + "UpX": 0.0, + "UpY": 1.0, + "UpZ": 0.0 + }, + "ConnectorPins": [], + "NodeViews": [ + { + "Name": "Code Block", + "ShowGeometry": true, + "Id": "62218ca505be42e38947fc8f427a6d5d", + "IsSetAsInput": false, + "IsSetAsOutput": false, + "Excluded": false, + "X": 360.54870417067457, + "Y": 205.48438350970582 + }, + { + "Name": "Color Palette", + "ShowGeometry": true, + "Id": "2c3e3705aa3748a0a0f20505ff3be117", + "IsSetAsInput": false, + "IsSetAsOutput": false, + "Excluded": false, + "X": 91.548704170674569, + "Y": 249.82938350970585 + }, + { + "Name": "Color Palette", + "ShowGeometry": true, + "Id": "b53b43633735435ab9fa51d36a19cf4d", + "IsSetAsInput": false, + "IsSetAsOutput": false, + "Excluded": false, + "X": 91.548704170674569, + "Y": 396.82938350970585 + }, + { + "Name": "Color Palette", + "ShowGeometry": true, + "Id": "8f44b9ccbc6842a2a9d074fb896fd891", + "IsSetAsInput": false, + "IsSetAsOutput": false, + "Excluded": false, + "X": 91.548704170674569, + "Y": 543.82938350970585 + }, + { + "Name": "List Create", + "ShowGeometry": true, + "Id": "9e4b1a6ac0294f3092e4d38a0b1c7d0c", + "IsSetAsInput": false, + "IsSetAsOutput": false, + "Excluded": false, + "X": 360.54870417067457, + "Y": 362.82938350970585 + }, + { + "Name": "Pie Chart", + "ShowGeometry": true, + "Id": "f04ab85a05ef46c5a3db63421abfb01a", + "IsSetAsInput": false, + "IsSetAsOutput": false, + "Excluded": false, + "X": 724.54870417067457, + "Y": 245.82938350970588 + } + ], + "Annotations": [], + "X": 139.24927822957272, + "Y": 32.787388241778217, + "Zoom": 0.93743229668600114 + } +} \ No newline at end of file diff --git a/doc/distrib/NodeHelpFiles/CoreNodeModelsWpf.Charts.PieChartNodeModel.md b/doc/distrib/NodeHelpFiles/CoreNodeModelsWpf.Charts.PieChartNodeModel.md new file mode 100644 index 00000000000..a2dedb73d95 --- /dev/null +++ b/doc/distrib/NodeHelpFiles/CoreNodeModelsWpf.Charts.PieChartNodeModel.md @@ -0,0 +1,7 @@ +## In Depth +Pie Chart text. +___ +## Example File + +![Pie Chart](./CoreNodeModelsWpf.Charts.PieChartNodeModel_img.jpg) + diff --git a/doc/distrib/NodeHelpFiles/CoreNodeModelsWpf.Charts.PieChartNodeModel_img.jpg b/doc/distrib/NodeHelpFiles/CoreNodeModelsWpf.Charts.PieChartNodeModel_img.jpg new file mode 100644 index 00000000000..4b4c9adc114 Binary files /dev/null and b/doc/distrib/NodeHelpFiles/CoreNodeModelsWpf.Charts.PieChartNodeModel_img.jpg differ diff --git a/doc/distrib/NodeHelpFiles/CoreNodeModelsWpf.Charts.ScatterPlotNodeModel.dyn b/doc/distrib/NodeHelpFiles/CoreNodeModelsWpf.Charts.ScatterPlotNodeModel.dyn new file mode 100644 index 00000000000..26baab355eb --- /dev/null +++ b/doc/distrib/NodeHelpFiles/CoreNodeModelsWpf.Charts.ScatterPlotNodeModel.dyn @@ -0,0 +1,427 @@ +{ + "Uuid": "8c2ba28b-a82f-4c59-9042-0eb03618a325", + "IsCustomNode": false, + "Description": "", + "Name": "Scatter Plot", + "ElementResolver": { + "ResolutionMap": {} + }, + "Inputs": [], + "Outputs": [], + "Nodes": [ + { + "ConcreteType": "Dynamo.Graph.Nodes.CodeBlockNodeModel, DynamoCore", + "NodeType": "CodeBlockNode", + "Code": "[\"2019\",\"2020\",\"2021\"];\n[[70,20,10],[12,24,44],[35,5,16]];\n[[30,50,40],[60,40,-13],[62,-3,28]];", + "Id": "62218ca505be42e38947fc8f427a6d5d", + "Inputs": [], + "Outputs": [ + { + "Id": "57439ed06bd64504ae3669db9750b915", + "Name": "", + "Description": "Value of expression at line 1", + "UsingDefaultValue": false, + "Level": 2, + "UseLevels": false, + "KeepListStructure": false + }, + { + "Id": "4039de7e972949c1aa92f4d59228b14a", + "Name": "", + "Description": "Value of expression at line 2", + "UsingDefaultValue": false, + "Level": 2, + "UseLevels": false, + "KeepListStructure": false + }, + { + "Id": "1c4b26309f5c41a08df19b223954869e", + "Name": "", + "Description": "Value of expression at line 3", + "UsingDefaultValue": false, + "Level": 2, + "UseLevels": false, + "KeepListStructure": false + } + ], + "Replication": "Disabled", + "Description": "Allows for DesignScript code to be authored directly" + }, + { + "ConcreteType": "CoreNodeModels.Input.ColorPalette, CoreNodeModels", + "InputValue": { + "R": 106, + "G": 192, + "B": 231, + "A": 255 + }, + "NodeType": "ColorInputNode", + "Id": "2c3e3705aa3748a0a0f20505ff3be117", + "Inputs": [], + "Outputs": [ + { + "Id": "aac47bb67a264898946360146dc6b9bb", + "Name": "Color", + "Description": "Selected Color.", + "UsingDefaultValue": false, + "Level": 2, + "UseLevels": false, + "KeepListStructure": false + } + ], + "Replication": "Disabled", + "Description": "Select a Color from the palette" + }, + { + "ConcreteType": "CoreNodeModels.Input.ColorPalette, CoreNodeModels", + "InputValue": { + "R": 235, + "G": 85, + "B": 85, + "A": 255 + }, + "NodeType": "ColorInputNode", + "Id": "b53b43633735435ab9fa51d36a19cf4d", + "Inputs": [], + "Outputs": [ + { + "Id": "aea68af2d9674ead8fdaa8f001a191c5", + "Name": "Color", + "Description": "Selected Color.", + "UsingDefaultValue": false, + "Level": 2, + "UseLevels": false, + "KeepListStructure": false + } + ], + "Replication": "Disabled", + "Description": "Select a Color from the palette" + }, + { + "ConcreteType": "CoreNodeModels.Input.ColorPalette, CoreNodeModels", + "InputValue": { + "R": 251, + "G": 181, + "B": 73, + "A": 255 + }, + "NodeType": "ColorInputNode", + "Id": "8f44b9ccbc6842a2a9d074fb896fd891", + "Inputs": [], + "Outputs": [ + { + "Id": "fe9737b86ad24357a4b23d4a16e76b75", + "Name": "Color", + "Description": "Selected Color.", + "UsingDefaultValue": false, + "Level": 2, + "UseLevels": false, + "KeepListStructure": false + } + ], + "Replication": "Disabled", + "Description": "Select a Color from the palette" + }, + { + "ConcreteType": "CoreNodeModels.CreateList, CoreNodeModels", + "VariableInputPorts": true, + "NodeType": "ExtensionNode", + "Id": "9e4b1a6ac0294f3092e4d38a0b1c7d0c", + "Inputs": [ + { + "Id": "88a6122f398640349aa909ab9a1546ba", + "Name": "item0", + "Description": "Item Index #0", + "UsingDefaultValue": false, + "Level": 2, + "UseLevels": false, + "KeepListStructure": false + }, + { + "Id": "9b8863388e9549439f619e067cf0dc6d", + "Name": "item1", + "Description": "Item Index #1", + "UsingDefaultValue": false, + "Level": 2, + "UseLevels": false, + "KeepListStructure": false + }, + { + "Id": "1b97eefabc75492c9ecc9bd321a4a117", + "Name": "item2", + "Description": "Item Index #2", + "UsingDefaultValue": false, + "Level": 2, + "UseLevels": false, + "KeepListStructure": false + } + ], + "Outputs": [ + { + "Id": "cb045d04d9e54f38ad37668170bd90e4", + "Name": "list", + "Description": "A list (type: var[]..[])", + "UsingDefaultValue": false, + "Level": 2, + "UseLevels": false, + "KeepListStructure": false + } + ], + "Replication": "Disabled", + "Description": "Makes a new list from the given inputs" + }, + { + "ConcreteType": "CoreNodeModelsWpf.Charts.ScatterPlotNodeModel, CoreNodeModelsWpf", + "Labels": [ + "2019", + "2020", + "2021" + ], + "XValues": [ + [ + 70.0, + 20.0, + 10.0 + ], + [ + 12.0, + 24.0, + 44.0 + ], + [ + 35.0, + 5.0, + 16.0 + ] + ], + "YValues": [ + [ + 30.0, + 50.0, + 40.0 + ], + [ + 60.0, + 40.0, + -13.0 + ], + [ + 62.0, + -3.0, + 28.0 + ] + ], + "Colors": [ + "#FF6AC0E7", + "#FFEB5555", + "#FFFBB549" + ], + "NodeType": "ExtensionNode", + "Id": "9775797f769b41488861aba815fc8d1c", + "Inputs": [ + { + "Id": "3b5ff599510b4e06a5814413cf504001", + "Name": "labels", + "Description": "A list of string labels for each group of points to be plotted", + "UsingDefaultValue": false, + "Level": 2, + "UseLevels": false, + "KeepListStructure": false + }, + { + "Id": "09269aaae6a443f5b78d9d3c65d19cfd", + "Name": "x-values", + "Description": "A list of lists each containing double values representing x-coordinates", + "UsingDefaultValue": false, + "Level": 2, + "UseLevels": false, + "KeepListStructure": false + }, + { + "Id": "b8d8e5ec4e804fd989f3d18d2c747e3b", + "Name": "y-values", + "Description": "A list of lists each containing double values representing y-coordinates", + "UsingDefaultValue": false, + "Level": 2, + "UseLevels": false, + "KeepListStructure": false + }, + { + "Id": "b8827e5071e7489f95acda65d5322d4b", + "Name": "colors", + "Description": "A list of color values for each group of points", + "UsingDefaultValue": false, + "Level": 2, + "UseLevels": false, + "KeepListStructure": false + } + ], + "Outputs": [ + { + "Id": "585d85481f66415ea02bb45976fcd851", + "Name": "labels:values", + "Description": "Dictionary containing label:value key-pairs", + "UsingDefaultValue": false, + "Level": 2, + "UseLevels": false, + "KeepListStructure": false + } + ], + "Replication": "Disabled", + "Description": "Create a new scatter plot." + } + ], + "Connectors": [ + { + "Start": "57439ed06bd64504ae3669db9750b915", + "End": "3b5ff599510b4e06a5814413cf504001", + "Id": "0b4a890c98e147c7bcd8e132544c490e", + "IsHidden": "False" + }, + { + "Start": "4039de7e972949c1aa92f4d59228b14a", + "End": "09269aaae6a443f5b78d9d3c65d19cfd", + "Id": "b58a28c414354c68912796ff146c78f4", + "IsHidden": "False" + }, + { + "Start": "1c4b26309f5c41a08df19b223954869e", + "End": "b8d8e5ec4e804fd989f3d18d2c747e3b", + "Id": "de7e6edfd8fb4d599d733a95187889cd", + "IsHidden": "False" + }, + { + "Start": "aac47bb67a264898946360146dc6b9bb", + "End": "88a6122f398640349aa909ab9a1546ba", + "Id": "55073ace889c4189802149b38dee1c11", + "IsHidden": "False" + }, + { + "Start": "aea68af2d9674ead8fdaa8f001a191c5", + "End": "9b8863388e9549439f619e067cf0dc6d", + "Id": "bc6a3066dd7d457688bf54fdac04e412", + "IsHidden": "False" + }, + { + "Start": "fe9737b86ad24357a4b23d4a16e76b75", + "End": "1b97eefabc75492c9ecc9bd321a4a117", + "Id": "e53d38cccb9e49be93592ad0fec85277", + "IsHidden": "False" + }, + { + "Start": "cb045d04d9e54f38ad37668170bd90e4", + "End": "b8827e5071e7489f95acda65d5322d4b", + "Id": "8779458c0bc14220bae08749e6dba27a", + "IsHidden": "False" + } + ], + "Dependencies": [], + "NodeLibraryDependencies": [], + "Thumbnail": "", + "GraphDocumentationURL": null, + "ExtensionWorkspaceData": [ + { + "ExtensionGuid": "28992e1d-abb9-417f-8b1b-05e053bee670", + "Name": "Properties", + "Version": "2.18", + "Data": {} + } + ], + "Author": "", + "Linting": { + "activeLinter": "None", + "activeLinterId": "7b75fb44-43fd-4631-a878-29f4d5d8399a", + "warningCount": 0, + "errorCount": 0 + }, + "Bindings": [], + "View": { + "Dynamo": { + "ScaleFactor": 1.0, + "HasRunWithoutCrash": true, + "IsVisibleInDynamoLibrary": true, + "Version": "2.18.0.3514", + "RunType": "Manual", + "RunPeriod": "1000" + }, + "Camera": { + "Name": "_Background Preview", + "EyeX": -17.0, + "EyeY": 24.0, + "EyeZ": 50.0, + "LookX": 12.0, + "LookY": -13.0, + "LookZ": -58.0, + "UpX": 0.0, + "UpY": 1.0, + "UpZ": 0.0 + }, + "ConnectorPins": [], + "NodeViews": [ + { + "Name": "Code Block", + "ShowGeometry": true, + "Id": "62218ca505be42e38947fc8f427a6d5d", + "IsSetAsInput": false, + "IsSetAsOutput": false, + "Excluded": false, + "X": 205.299768889332, + "Y": 214.527867014246 + }, + { + "Name": "Color Palette", + "ShowGeometry": true, + "Id": "2c3e3705aa3748a0a0f20505ff3be117", + "IsSetAsInput": false, + "IsSetAsOutput": false, + "Excluded": false, + "X": -63.700231110668483, + "Y": 257.8728670142458 + }, + { + "Name": "Color Palette", + "ShowGeometry": true, + "Id": "b53b43633735435ab9fa51d36a19cf4d", + "IsSetAsInput": false, + "IsSetAsOutput": false, + "Excluded": false, + "X": -63.700231110668483, + "Y": 405.87286701424568 + }, + { + "Name": "Color Palette", + "ShowGeometry": true, + "Id": "8f44b9ccbc6842a2a9d074fb896fd891", + "IsSetAsInput": false, + "IsSetAsOutput": false, + "Excluded": false, + "X": -63.700231110668483, + "Y": 553.8728670142458 + }, + { + "Name": "List Create", + "ShowGeometry": true, + "Id": "9e4b1a6ac0294f3092e4d38a0b1c7d0c", + "IsSetAsInput": false, + "IsSetAsOutput": false, + "Excluded": false, + "X": 205.29976888933152, + "Y": 371.8728670142458 + }, + { + "Name": "Scatter Plot", + "ShowGeometry": true, + "Id": "9775797f769b41488861aba815fc8d1c", + "IsSetAsInput": false, + "IsSetAsOutput": false, + "Excluded": false, + "X": 704.57934433571427, + "Y": 206.9054069875815 + } + ], + "Annotations": [], + "X": 22.524493987627807, + "Y": -45.16619563868619, + "Zoom": 1.0181140440913179 + } +} \ No newline at end of file diff --git a/doc/distrib/NodeHelpFiles/CoreNodeModelsWpf.Charts.ScatterPlotNodeModel.md b/doc/distrib/NodeHelpFiles/CoreNodeModelsWpf.Charts.ScatterPlotNodeModel.md new file mode 100644 index 00000000000..ae106e663c9 --- /dev/null +++ b/doc/distrib/NodeHelpFiles/CoreNodeModelsWpf.Charts.ScatterPlotNodeModel.md @@ -0,0 +1,7 @@ +## In Depth +Scatter Plot text. +___ +## Example File + +![Scatter Plot](./CoreNodeModelsWpf.Charts.ScatterPlotNodeModel_img.jpg) + diff --git a/doc/distrib/NodeHelpFiles/CoreNodeModelsWpf.Charts.ScatterPlotNodeModel_img.jpg b/doc/distrib/NodeHelpFiles/CoreNodeModelsWpf.Charts.ScatterPlotNodeModel_img.jpg new file mode 100644 index 00000000000..24ea5ad16a1 Binary files /dev/null and b/doc/distrib/NodeHelpFiles/CoreNodeModelsWpf.Charts.ScatterPlotNodeModel_img.jpg differ diff --git a/doc/distrib/NodeHelpFiles/CoreNodeModelsWpf.Charts.XYLineChartNodeModel.dyn b/doc/distrib/NodeHelpFiles/CoreNodeModelsWpf.Charts.XYLineChartNodeModel.dyn new file mode 100644 index 00000000000..63066aa70e6 --- /dev/null +++ b/doc/distrib/NodeHelpFiles/CoreNodeModelsWpf.Charts.XYLineChartNodeModel.dyn @@ -0,0 +1,427 @@ +{ + "Uuid": "67a12873-4b4a-46f5-aba6-3bf9234036e9", + "IsCustomNode": false, + "Description": "", + "Name": "CoreNodeModelsWpf.Charts.XYLineChartNodeModel", + "ElementResolver": { + "ResolutionMap": {} + }, + "Inputs": [], + "Outputs": [], + "Nodes": [ + { + "ConcreteType": "CoreNodeModels.Input.ColorPalette, CoreNodeModels", + "InputValue": { + "R": 106, + "G": 192, + "B": 231, + "A": 255 + }, + "NodeType": "ColorInputNode", + "Id": "d4a9130667ff43aca97ca51d9bf19b11", + "Inputs": [], + "Outputs": [ + { + "Id": "e8399fc415be4897b7ccac5c8730a1fe", + "Name": "Color", + "Description": "Selected Color.", + "UsingDefaultValue": false, + "Level": 2, + "UseLevels": false, + "KeepListStructure": false + } + ], + "Replication": "Disabled", + "Description": "Select a Color from the palette" + }, + { + "ConcreteType": "Dynamo.Graph.Nodes.CodeBlockNodeModel, DynamoCore", + "NodeType": "CodeBlockNode", + "Code": "[\"2019\",\"2020\",\"2021\"];\n[[5,20,50],[12,24,44],[15,25,56]];\n[[30,50,140],[160,40,43],[54,25,54]];", + "Id": "95695039ffdf48a99768823387a4fba9", + "Inputs": [], + "Outputs": [ + { + "Id": "f8e4502ea10b4050a29ee7f249716c50", + "Name": "", + "Description": "Value of expression at line 1", + "UsingDefaultValue": false, + "Level": 2, + "UseLevels": false, + "KeepListStructure": false + }, + { + "Id": "374490accacd4746998985d08c9f6f64", + "Name": "", + "Description": "Value of expression at line 2", + "UsingDefaultValue": false, + "Level": 2, + "UseLevels": false, + "KeepListStructure": false + }, + { + "Id": "75998c2176fc407898d2cf14f2c75d4a", + "Name": "", + "Description": "Value of expression at line 3", + "UsingDefaultValue": false, + "Level": 2, + "UseLevels": false, + "KeepListStructure": false + } + ], + "Replication": "Disabled", + "Description": "Allows for DesignScript code to be authored directly" + }, + { + "ConcreteType": "CoreNodeModels.Input.ColorPalette, CoreNodeModels", + "InputValue": { + "R": 235, + "G": 85, + "B": 85, + "A": 255 + }, + "NodeType": "ColorInputNode", + "Id": "98dcc052933448d594636c1a2ed02baa", + "Inputs": [], + "Outputs": [ + { + "Id": "751d69c1abaf46119bd9057a1a10028f", + "Name": "Color", + "Description": "Selected Color.", + "UsingDefaultValue": false, + "Level": 2, + "UseLevels": false, + "KeepListStructure": false + } + ], + "Replication": "Disabled", + "Description": "Select a Color from the palette" + }, + { + "ConcreteType": "CoreNodeModels.Input.ColorPalette, CoreNodeModels", + "InputValue": { + "R": 251, + "G": 181, + "B": 73, + "A": 255 + }, + "NodeType": "ColorInputNode", + "Id": "80d8721e968f47a08287dda0042c1ad8", + "Inputs": [], + "Outputs": [ + { + "Id": "c72f91dc1ee94674b42e672259f6cd5f", + "Name": "Color", + "Description": "Selected Color.", + "UsingDefaultValue": false, + "Level": 2, + "UseLevels": false, + "KeepListStructure": false + } + ], + "Replication": "Disabled", + "Description": "Select a Color from the palette" + }, + { + "ConcreteType": "CoreNodeModels.CreateList, CoreNodeModels", + "VariableInputPorts": true, + "NodeType": "ExtensionNode", + "Id": "a3cba2486e7a478380e3abb84c3fbd61", + "Inputs": [ + { + "Id": "17f23bf8e31a4b0ea5498a7487c208f0", + "Name": "item0", + "Description": "Item Index #0", + "UsingDefaultValue": false, + "Level": 2, + "UseLevels": false, + "KeepListStructure": false + }, + { + "Id": "8a0d31883e794efca4ce527f092990c5", + "Name": "item1", + "Description": "Item Index #1", + "UsingDefaultValue": false, + "Level": 2, + "UseLevels": false, + "KeepListStructure": false + }, + { + "Id": "029ec3041b35440891220b6e253f806f", + "Name": "item2", + "Description": "Item Index #2", + "UsingDefaultValue": false, + "Level": 2, + "UseLevels": false, + "KeepListStructure": false + } + ], + "Outputs": [ + { + "Id": "5cd45ac62ebd4b1eb2e28b8eedb448ee", + "Name": "list", + "Description": "A list (type: var[]..[])", + "UsingDefaultValue": false, + "Level": 2, + "UseLevels": false, + "KeepListStructure": false + } + ], + "Replication": "Disabled", + "Description": "Makes a new list from the given inputs" + }, + { + "ConcreteType": "CoreNodeModelsWpf.Charts.XYLineChartNodeModel, CoreNodeModelsWpf", + "Labels": [ + "2019", + "2020", + "2021" + ], + "XValues": [ + [ + 5.0, + 20.0, + 50.0 + ], + [ + 12.0, + 24.0, + 44.0 + ], + [ + 15.0, + 25.0, + 56.0 + ] + ], + "YValues": [ + [ + 30.0, + 50.0, + 140.0 + ], + [ + 160.0, + 40.0, + 43.0 + ], + [ + 54.0, + 25.0, + 54.0 + ] + ], + "Colors": [ + "#FF6AC0E7", + "#FFEB5555", + "#FFFBB549" + ], + "NodeType": "ExtensionNode", + "Id": "de05d65d201c429aa1a806283c217c9d", + "Inputs": [ + { + "Id": "7592febed1234351ad51a985286d4b09", + "Name": "labels", + "Description": "A list of string labels for each line to be plotted", + "UsingDefaultValue": false, + "Level": 2, + "UseLevels": false, + "KeepListStructure": false + }, + { + "Id": "9c269d2c2a82404aae312f8bb48dad39", + "Name": "x-values", + "Description": "A list of lists each containing double values representing x-coordinates for each point in a line.", + "UsingDefaultValue": false, + "Level": 2, + "UseLevels": false, + "KeepListStructure": false + }, + { + "Id": "b033cf5a563449a5867520e32261cb18", + "Name": "y-values", + "Description": "A list of lists each containing double values representing y-coordinates for each point in a line.", + "UsingDefaultValue": false, + "Level": 2, + "UseLevels": false, + "KeepListStructure": false + }, + { + "Id": "d07a128d1f7940688d8bc363200af1d5", + "Name": "colors", + "Description": "A list of colors for each line in the line plot.", + "UsingDefaultValue": false, + "Level": 2, + "UseLevels": false, + "KeepListStructure": false + } + ], + "Outputs": [ + { + "Id": "7fe7e44be1514220b782911084a5b84c", + "Name": "labels:values", + "Description": "Dictionary containing label:value key-pairs", + "UsingDefaultValue": false, + "Level": 2, + "UseLevels": false, + "KeepListStructure": false + } + ], + "Replication": "Disabled", + "Description": "Create a new XY line plot." + } + ], + "Connectors": [ + { + "Start": "e8399fc415be4897b7ccac5c8730a1fe", + "End": "17f23bf8e31a4b0ea5498a7487c208f0", + "Id": "ae65ad4012c1431494e46ede4a34a6e4", + "IsHidden": "False" + }, + { + "Start": "f8e4502ea10b4050a29ee7f249716c50", + "End": "7592febed1234351ad51a985286d4b09", + "Id": "9565892ad6c64f3484e9afc10839800f", + "IsHidden": "False" + }, + { + "Start": "374490accacd4746998985d08c9f6f64", + "End": "9c269d2c2a82404aae312f8bb48dad39", + "Id": "76b1bc91adc647558caba8f952eccb86", + "IsHidden": "False" + }, + { + "Start": "75998c2176fc407898d2cf14f2c75d4a", + "End": "b033cf5a563449a5867520e32261cb18", + "Id": "e513d0d63d674ab49b11b9659431e707", + "IsHidden": "False" + }, + { + "Start": "751d69c1abaf46119bd9057a1a10028f", + "End": "8a0d31883e794efca4ce527f092990c5", + "Id": "41dabf8a3d24401ea006bc1b8eb6a6c6", + "IsHidden": "False" + }, + { + "Start": "c72f91dc1ee94674b42e672259f6cd5f", + "End": "029ec3041b35440891220b6e253f806f", + "Id": "30a5a01db2e74a52b99b09c9651eb2ca", + "IsHidden": "False" + }, + { + "Start": "5cd45ac62ebd4b1eb2e28b8eedb448ee", + "End": "d07a128d1f7940688d8bc363200af1d5", + "Id": "1be95af458744baf9ff79a41523690e4", + "IsHidden": "False" + } + ], + "Dependencies": [], + "NodeLibraryDependencies": [], + "Thumbnail": "", + "GraphDocumentationURL": null, + "ExtensionWorkspaceData": [ + { + "ExtensionGuid": "28992e1d-abb9-417f-8b1b-05e053bee670", + "Name": "Properties", + "Version": "2.18", + "Data": {} + } + ], + "Author": "", + "Linting": { + "activeLinter": "None", + "activeLinterId": "7b75fb44-43fd-4631-a878-29f4d5d8399a", + "warningCount": 0, + "errorCount": 0 + }, + "Bindings": [], + "View": { + "Dynamo": { + "ScaleFactor": 1.0, + "HasRunWithoutCrash": true, + "IsVisibleInDynamoLibrary": true, + "Version": "2.18.0.2986", + "RunType": "Manual", + "RunPeriod": "1000" + }, + "Camera": { + "Name": "_Background Preview", + "EyeX": -17.0, + "EyeY": 24.0, + "EyeZ": 50.0, + "LookX": 12.0, + "LookY": -13.0, + "LookZ": -58.0, + "UpX": 0.0, + "UpY": 1.0, + "UpZ": 0.0 + }, + "ConnectorPins": [], + "NodeViews": [ + { + "Name": "Color Palette", + "ShowGeometry": true, + "Id": "d4a9130667ff43aca97ca51d9bf19b11", + "IsSetAsInput": false, + "IsSetAsOutput": false, + "Excluded": false, + "X": 431.86585829532828, + "Y": 1831.5842268005035 + }, + { + "Name": "Code Block", + "ShowGeometry": true, + "Id": "95695039ffdf48a99768823387a4fba9", + "IsSetAsInput": false, + "IsSetAsOutput": false, + "Excluded": false, + "X": 700.86585829532828, + "Y": 1787.2392268005037 + }, + { + "Name": "Color Palette", + "ShowGeometry": true, + "Id": "98dcc052933448d594636c1a2ed02baa", + "IsSetAsInput": false, + "IsSetAsOutput": false, + "Excluded": false, + "X": 431.86585829532828, + "Y": 1978.5842268005035 + }, + { + "Name": "Color Palette", + "ShowGeometry": true, + "Id": "80d8721e968f47a08287dda0042c1ad8", + "IsSetAsInput": false, + "IsSetAsOutput": false, + "Excluded": false, + "X": 431.86585829532828, + "Y": 2125.5842268005035 + }, + { + "Name": "List Create", + "ShowGeometry": true, + "Id": "a3cba2486e7a478380e3abb84c3fbd61", + "IsSetAsInput": false, + "IsSetAsOutput": false, + "Excluded": false, + "X": 700.86585829532828, + "Y": 1944.5842268005035 + }, + { + "Name": "XY Line Plot", + "ShowGeometry": true, + "Id": "de05d65d201c429aa1a806283c217c9d", + "IsSetAsInput": false, + "IsSetAsOutput": false, + "Excluded": false, + "X": 1266.5630942395142, + "Y": 1779.0583877517956 + } + ], + "Annotations": [], + "X": -290.79499120717924, + "Y": -1088.810832808645, + "Zoom": 0.77628314484741967 + } +} \ No newline at end of file diff --git a/doc/distrib/NodeHelpFiles/CoreNodeModelsWpf.Charts.XYLineChartNodeModel.md b/doc/distrib/NodeHelpFiles/CoreNodeModelsWpf.Charts.XYLineChartNodeModel.md new file mode 100644 index 00000000000..5f84508bb93 --- /dev/null +++ b/doc/distrib/NodeHelpFiles/CoreNodeModelsWpf.Charts.XYLineChartNodeModel.md @@ -0,0 +1,7 @@ +## In Depth +XY Line Plot text. +___ +## Example File + +![XY Line Plot](./CoreNodeModelsWpf.Charts.XYLineChartNodeModel_img.jpg) + diff --git a/doc/distrib/NodeHelpFiles/CoreNodeModelsWpf.Charts.XYLineChartNodeModel_img.jpg b/doc/distrib/NodeHelpFiles/CoreNodeModelsWpf.Charts.XYLineChartNodeModel_img.jpg new file mode 100644 index 00000000000..311be493ad9 Binary files /dev/null and b/doc/distrib/NodeHelpFiles/CoreNodeModelsWpf.Charts.XYLineChartNodeModel_img.jpg differ diff --git a/src/DynamoCoreWpf/DynamoCoreWpf.csproj b/src/DynamoCoreWpf/DynamoCoreWpf.csproj index 7d11ae72055..3445116f519 100644 --- a/src/DynamoCoreWpf/DynamoCoreWpf.csproj +++ b/src/DynamoCoreWpf/DynamoCoreWpf.csproj @@ -1258,6 +1258,13 @@ Always + + + MSBuild:Compile + Designer + Always + + MSBuild:Compile diff --git a/src/DynamoCoreWpf/UI/SharedResourceDictionary.cs b/src/DynamoCoreWpf/UI/SharedResourceDictionary.cs index 599e3353f90..d777d2b78ac 100644 --- a/src/DynamoCoreWpf/UI/SharedResourceDictionary.cs +++ b/src/DynamoCoreWpf/UI/SharedResourceDictionary.cs @@ -1,4 +1,4 @@ -using System; +using System; using System.Collections.Generic; using System.IO; using System.Reflection; @@ -66,6 +66,8 @@ public static class SharedDictionaryManager private static ResourceDictionary _sidebarGridDictionary; private static ResourceDictionary outPortsDictionary; private static ResourceDictionary inPortsDictionary; + private static ResourceDictionary _liveChartDictionary; + public static string ThemesDirectory { @@ -136,6 +138,20 @@ public static Uri SidebarGridDictionaryUri get { return new Uri(Path.Combine(ThemesDirectory, "SidebarGridStyleDictionary.xaml")); } } + public static Uri LiveChartsDictionaryUri + { + get { return new Uri(Path.Combine(ThemesDirectory, "LiveChartsStyle.xaml")); } + } + + public static ResourceDictionary LiveChartDictionary + { + get + { + return _liveChartDictionary ?? + (_liveChartDictionary = new ResourceDictionary() { Source = LiveChartsDictionaryUri }); + } + } + public static ResourceDictionary DynamoModernDictionary { get { diff --git a/src/DynamoCoreWpf/UI/Themes/Modern/LiveChartsStyle.xaml b/src/DynamoCoreWpf/UI/Themes/Modern/LiveChartsStyle.xaml new file mode 100644 index 00000000000..0b263b1b509 --- /dev/null +++ b/src/DynamoCoreWpf/UI/Themes/Modern/LiveChartsStyle.xaml @@ -0,0 +1,202 @@ + + + + + + + + + ../../Fonts/Autodesk/#Artifakt Element Regular + ../../Fonts/Autodesk/#Artifakt Element Bold + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 12 + + + 0.5 + + + 3 + + + 1.0 + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/DynamoCoreWpf/Utilities/CompactBubbleHandler.cs b/src/DynamoCoreWpf/Utilities/CompactBubbleHandler.cs index 7d0536f1c5c..420fbf41c56 100644 --- a/src/DynamoCoreWpf/Utilities/CompactBubbleHandler.cs +++ b/src/DynamoCoreWpf/Utilities/CompactBubbleHandler.cs @@ -1,5 +1,6 @@ using System; using System.Linq; +using System.Web.ModelBinding; using Dynamo.Extensions; using Dynamo.ViewModels; using Dynamo.Wpf.Properties; @@ -26,6 +27,7 @@ public static CompactBubbleViewModel Process(MirrorData value) var viewModel = ProcessThing(value, true); viewModel.SetObjectType(value.Data); viewModel.NumberOfItems = items; + return viewModel; } diff --git a/src/Libraries/CoreNodeModels/CoreNodeModels.csproj b/src/Libraries/CoreNodeModels/CoreNodeModels.csproj index fd074618fb2..d9dede55f1d 100644 --- a/src/Libraries/CoreNodeModels/CoreNodeModels.csproj +++ b/src/Libraries/CoreNodeModels/CoreNodeModels.csproj @@ -32,6 +32,19 @@ + + true + + runtime + + + + + + + + + {7858fa8c-475f-4b8e-b468-1f8200778cf8} DynamoCore @@ -102,4 +115,4 @@ - \ No newline at end of file + diff --git a/src/Libraries/CoreNodeModelsWpf/Charts/BarChartNodeModel.cs b/src/Libraries/CoreNodeModelsWpf/Charts/BarChartNodeModel.cs new file mode 100644 index 00000000000..accae76bac2 --- /dev/null +++ b/src/Libraries/CoreNodeModelsWpf/Charts/BarChartNodeModel.cs @@ -0,0 +1,319 @@ +using System; +using System.Collections; +using System.Collections.Generic; +using System.Windows; +using System.Windows.Controls; +using System.Windows.Media; +using Autodesk.DesignScript.Runtime; +using CoreNodes.ChartHelpers; +using CoreNodeModelsWpf.Charts.Controls; +using CoreNodeModelsWpf.Charts.Utilities; +using Dynamo.Graph.Nodes; +using Newtonsoft.Json; +using ProtoCore.AST.AssociativeAST; +using Dynamo.Controls; +using Dynamo.Nodes; +using Dynamo.Wpf; +using LiveCharts.Wpf; +using Dynamo.UI; +using DynamoServices; +using Dynamo.Wpf.Properties; + +namespace CoreNodeModelsWpf.Charts +{ + [IsDesignScriptCompatible] + [NodeName("Bar Chart")] + [NodeCategory("Display.Charts.Create")] + [NodeDescription("ChartsBarChartDescription", typeof(CoreNodeModelWpfResources))] + [NodeSearchTags("ChartsBarChartSearchTags", typeof(CoreNodeModelWpfResources))] + + [InPortTypes("List", "List", "List")] + [OutPortTypes("Dictionary")] + [AlsoKnownAs("CoreNodeModelsWpf.Charts.BarChart")] + public class BarChartNodeModel : NodeModel + { + #region Properties + private Random rnd = new Random(); + private bool isNestedList; + + /// + /// Bar chart labels. + /// + public List Labels { get; set; } + + /// + /// Bar chart values. + /// + public List> Values { get; set; } + + /// + /// Bar chart color values. + /// + public List Colors { get; set; } + #endregion + + #region Constructors + /// + /// Instantiate a new NodeModel instance. + /// + public BarChartNodeModel() + { + InPorts.Add(new PortModel(PortType.Input, this, new PortData("labels", "A list of labels for the bar chart categories."))); + InPorts.Add(new PortModel(PortType.Input, this, new PortData("values", "A list (of lists) to supply values for the bars in each category."))); + InPorts.Add(new PortModel(PortType.Input, this, new PortData("colors", "A list of colors for each bar chart category."))); + + OutPorts.Add(new PortModel(PortType.Output, this, new PortData("labels:values", "Dictionary containing label:value key-pairs"))); + + RegisterAllPorts(); + + PortDisconnected += BarChartNodeModel_PortDisconnected; + + ArgumentLacing = LacingStrategy.Disabled; + } + + [JsonConstructor] + /// + /// Instantiate a new NodeModel instance. + /// + public BarChartNodeModel(IEnumerable inPorts, IEnumerable outPorts) : base(inPorts, outPorts) + { + PortDisconnected += BarChartNodeModel_PortDisconnected; + } + #endregion + + #region Events + private void BarChartNodeModel_PortDisconnected(PortModel port) + { + // Clear UI when a input port is disconnected + if (port.PortType == PortType.Input && this.State == ElementState.Active) + { + Labels.Clear(); + Values.Clear(); + Colors.Clear(); + + RaisePropertyChanged("DataUpdated"); + } + } + #endregion + + #region databridge + // Use the VMDataBridge to safely retrieve our input values + + /// + /// Register the data bridge callback. + /// + protected override void OnBuilt() + { + base.OnBuilt(); + VMDataBridge.DataBridge.Instance.RegisterCallback(GUID.ToString(), DataBridgeCallback); + } + + /// + /// Callback method for DataBridge mechanism.PortDisconnected + /// This callback only gets called when + /// - The AST is executed + /// - After the BuildOutputAST function is executed + /// - The AST is fully built + /// + /// The data passed through the data bridge. + private void DataBridgeCallback(object data) + { + // Grab input data which always returned as an ArrayList + var inputs = data as ArrayList; + + // Each of the list inputs are also returned as ArrayLists + var labels = inputs[0] as ArrayList; + var values = inputs[1] as ArrayList; + var colors = inputs[2] as ArrayList; + + // Only continue if key/values match in length + if (labels.Count != values.Count && labels.Count != (values[0] as ArrayList).Count) + { + throw new Exception("Label and Values do not properly align in length."); + } + + // Update chart properties + Labels = new List(); + Values = new List>(); + Colors = new List(); + + // If the bar chart contains nested lists + if (values[0] is ArrayList) + { + isNestedList = true; + + for (var i = 0; i < labels.Count; i++) + { + Labels.Add((string)labels[i]); + + var unpackedValues = values[i] as ArrayList; + var labelValues = new List(); + + for (var j = 0; j < unpackedValues.Count; j++) + { + labelValues.Add(Convert.ToDouble(unpackedValues[j])); + } + + Values.Add(labelValues); + + Color color; + if (colors == null || colors.Count == 0 || colors.Count != labels.Count) + { + // In case colors are not provided, we supply some from the default library of colors + Info(Dynamo.Wpf.Properties.CoreNodeModelWpfResources.ProvideDefaultColorsWarningMessage); + + color = Utilities.Colors.GetColor(); + } + else + { + + var dynColor = (DSCore.Color)colors[i]; + color = Color.FromArgb(dynColor.Alpha, dynColor.Red, dynColor.Green, dynColor.Blue); + } + + SolidColorBrush brush = new SolidColorBrush(color); + brush.Freeze(); + Colors.Add(brush); + } + } + else + { + isNestedList = false; + + for (var i = 0; i < labels.Count; i++) + { + Labels.Add((string)labels[i]); + + var labelValues = new List(); + + Values.Add(new List{Convert.ToDouble(values[i])} ); + + Color color; + if (colors == null || colors.Count == 0 || colors.Count != labels.Count) + { + color = Utilities.Colors.GetColor(); + } + else + { + var dynColor = (DSCore.Color)colors[i]; + color = Color.FromArgb(dynColor.Alpha, dynColor.Red, dynColor.Green, dynColor.Blue); + } + + SolidColorBrush brush = new SolidColorBrush(color); + brush.Freeze(); + Colors.Add(brush); + } + } + + Utilities.Colors.ResetColors(); + + // Notify UI the data has been modified + RaisePropertyChanged("DataUpdated"); + } + #endregion + + #region Methods + /// + /// BuildOutputAst is where the outputs of this node are calculated. + /// This method is used to do the work that a compiler usually does + /// by parsing the inputs List inputAstNodes into an abstract syntax tree. + /// + /// + /// + [IsVisibleInDynamoLibrary(false)] + public override IEnumerable BuildOutputAst(List inputAstNodes) + { + + // WARNING!!! + // Do not throw an exception during AST creation. + + // If inputs are not connected return null + if (!InPorts[0].IsConnected || + !InPorts[1].IsConnected) + { + return new[] + { + AstFactory.BuildAssignment(GetAstIdentifierForOutputIndex(0), AstFactory.BuildNullNode()), + }; + } + + AssociativeNode inputNode; + if (isNestedList) + { + inputNode = AstFactory.BuildFunctionCall( + new Func, List>, List, Dictionary>>(BarChartFunctions.GetNodeInput), + new List { inputAstNodes[0], inputAstNodes[1], inputAstNodes[2] } + ); + } + else + { + inputNode = AstFactory.BuildFunctionCall( + new Func, List, List, Dictionary>(BarChartFunctions.GetNodeInput), + new List { inputAstNodes[0], inputAstNodes[1], inputAstNodes[2] } + ); + } + + return new[] + { + AstFactory.BuildAssignment(GetAstIdentifierForOutputIndex(0), inputNode), + AstFactory.BuildAssignment( + AstFactory.BuildIdentifier(AstIdentifierBase + "_dummy"), + VMDataBridge.DataBridge.GenerateBridgeDataAst(GUID.ToString(), AstFactory.BuildExprList(inputAstNodes) + ) + ), + }; + } + #endregion + + #region Dispose + + /// + /// Finalize the usage of this Node + /// + public override void Dispose() + { + PortDisconnected -= BarChartNodeModel_PortDisconnected; + VMDataBridge.DataBridge.Instance.UnregisterCallback(GUID.ToString()); + } + + #endregion + } + + /// + /// View customizer for CustomNodeModel Node Model. + /// + public class BarChartNodeView : INodeViewCustomization + { + private BarChartControl barChartControl; + + /// + /// At run-time, this method is called during the node + /// creation. Add custom UI element to the node view. + /// + /// The NodeModel representing the node's core logic. + /// The NodeView representing the node in the graph. + public void CustomizeView(BarChartNodeModel model, NodeView nodeView) + { + barChartControl = new BarChartControl(model); + nodeView.inputGrid.Children.Add(barChartControl); + + MenuItem exportImage = new MenuItem(); + exportImage.Header = "Export Chart as Image"; + exportImage.Click += ExportImage_Click; + + var contextMenu = (nodeView.Content as Grid).ContextMenu; + contextMenu.Items.Add(exportImage); + } + + private void ExportImage_Click(object sender, RoutedEventArgs e) + { + Export.ToPng(barChartControl.BarChart); + } + + /// + /// Here you can do any cleanup you require if you've assigned callbacks for particular + /// UI events on your node. + /// + public void Dispose() { } + } +} diff --git a/src/Libraries/CoreNodeModelsWpf/Charts/BasicLineChartNodeModel.cs b/src/Libraries/CoreNodeModelsWpf/Charts/BasicLineChartNodeModel.cs new file mode 100644 index 00000000000..113fb94963a --- /dev/null +++ b/src/Libraries/CoreNodeModelsWpf/Charts/BasicLineChartNodeModel.cs @@ -0,0 +1,284 @@ +using System; +using System.Collections; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows; +using System.Windows.Controls; +using System.Windows.Media; +using Autodesk.DesignScript.Runtime; +using CoreNodes.ChartHelpers; +using CoreNodeModelsWpf.Charts.Utilities; +using Dynamo.Controls; +using Dynamo.Graph.Nodes; +using Dynamo.Wpf; +using Newtonsoft.Json; +using ProtoCore.AST.AssociativeAST; +using DynamoServices; +using Dynamo.Wpf.Properties; + +namespace CoreNodeModelsWpf.Charts +{ + [IsDesignScriptCompatible] + [NodeName("Index-Value Line Plot")] + [NodeCategory("Display.Charts.Create")] + [NodeDescription("ChartsBasicLineChartDescription", typeof(CoreNodeModelWpfResources))] + [NodeSearchTags("ChartsBasicLineChartSearchTags", typeof(CoreNodeModelWpfResources))] + + [InPortTypes("List", "List>", "List")] + [OutPortTypes("Dictionary")] + [AlsoKnownAs("CoreNodeModelsWpf.Charts.Index-ValueLinePlot")] + public class BasicLineChartNodeModel : NodeModel + { + #region Properties + private Random rnd = new Random(); + + /// + /// A list of Labels for each line to be plotted. + /// + public List Labels { get; set; } + + /// + /// List of lists each containing double values to be plotted. + /// + public List> Values { get; set; } + + /// + /// A list of color values, one for each plotted line. + /// + public List Colors { get; set; } + #endregion + + #region Constructors + /// + /// Instantiate a new NodeModel instance. + /// + public BasicLineChartNodeModel() + { + InPorts.Add(new PortModel(PortType.Input, this, new PortData("labels", "A list of string labels for each line to be plotted."))); + InPorts.Add(new PortModel(PortType.Input, this, new PortData("values", "List of lists each containing double values to be plotted against X-Axis values."))); + InPorts.Add(new PortModel(PortType.Input, this, new PortData("colors", "A list of colors for each line."))); + + OutPorts.Add(new PortModel(PortType.Output, this, new PortData("labels:values", "Dictionary containing label:value key-pairs"))); + + RegisterAllPorts(); + + PortDisconnected += BasicLineChartNodeModel_PortDisconnected; + + ArgumentLacing = LacingStrategy.Disabled; + } + + [JsonConstructor] + /// + /// Instantiate a new NodeModel instance. + /// + public BasicLineChartNodeModel(IEnumerable inPorts, IEnumerable outPorts) : base(inPorts, outPorts) + { + PortDisconnected += BasicLineChartNodeModel_PortDisconnected; + } + #endregion + + #region Events + private void BasicLineChartNodeModel_PortDisconnected(PortModel port) + { + // Clear UI when a input port is disconnected + if (port.PortType == PortType.Input && this.State == ElementState.Active) + { + Labels.Clear(); + Values.Clear(); + Colors.Clear(); + + RaisePropertyChanged("DataUpdated"); + } + } + #endregion + + #region Databridge + // Use the VMDataBridge to safely retrieve our input values + + /// + /// Register the data bridge callback. + /// + protected override void OnBuilt() + { + base.OnBuilt(); + VMDataBridge.DataBridge.Instance.RegisterCallback(GUID.ToString(), DataBridgeCallback); + } + + /// + /// Callback method for DataBridge mechanism. + /// This callback only gets called when + /// - The AST is executed + /// - After the BuildOutputAST function is executed + /// - The AST is fully built + /// + /// The data passed through the data bridge. + private void DataBridgeCallback(object data) + { + // Grab input data which always returned as an ArrayList + var inputs = data as ArrayList; + + // Each of the list inputs are also returned as ArrayLists + var labels = inputs[0] as ArrayList; + var values = inputs[1] as ArrayList; + var colors = inputs[2] as ArrayList; + + // Only continue if key/values match in length + if (labels.Count != values.Count || labels.Count < 1) + { + throw new Exception("Label and Values do not properly align in length."); + } + + // Clear current chart values + Labels = new List(); + Values = new List>(); + Colors = new List(); + + // If color count doesn't match title count use random colors + if (colors == null || colors.Count == 0 || colors.Count != labels.Count) + { + // In case colors are not provided, we supply some from the default library of colors + Info(Dynamo.Wpf.Properties.CoreNodeModelWpfResources.ProvideDefaultColorsWarningMessage); + + for (var i = 0; i < labels.Count; i++) + { + var outputValues = new List(); + + foreach (var plotVal in values[i] as ArrayList) + { + outputValues.Add(System.Convert.ToDouble(plotVal)); + } + + Labels.Add((string)labels[i]); + Values.Add(outputValues); + + Color color = Utilities.Colors.GetColor(); + SolidColorBrush brush = new SolidColorBrush(color); + brush.Freeze(); + Colors.Add(brush); + } + + Utilities.Colors.ResetColors(); + } + else + { + for (var i = 0; i < labels.Count; i++) + { + var outputValues = new List(); + + foreach (var plotVal in values[i] as ArrayList) + { + outputValues.Add(System.Convert.ToDouble(plotVal)); + } + + Labels.Add((string)labels[i]); + Values.Add(outputValues); + + var dynColor = (DSCore.Color)colors[i]; + var convertedColor = Color.FromArgb(dynColor.Alpha, dynColor.Red, dynColor.Green, dynColor.Blue); + SolidColorBrush brush = new SolidColorBrush(convertedColor); + brush.Freeze(); + Colors.Add(brush); + } + } + + // Notify UI the data has been modified + RaisePropertyChanged("DataUpdated"); + } + #endregion + + #region Methods + /// + /// BuildOutputAst is where the outputs of this node are calculated. + /// This method is used to do the work that a compiler usually does + /// by parsing the inputs List inputAstNodes into an abstract syntax tree. + /// + /// + /// + [IsVisibleInDynamoLibrary(false)] + public override IEnumerable BuildOutputAst(List inputAstNodes) + { + // WARNING!!! + // Do not throw an exception during AST creation. + + // If inputs are not connected return null + if (!InPorts[0].IsConnected || + !InPorts[1].IsConnected) + { + return new[] + { + AstFactory.BuildAssignment(GetAstIdentifierForOutputIndex(0), AstFactory.BuildNullNode()), + }; + } + + AssociativeNode inputNode = AstFactory.BuildFunctionCall( + new Func, List>, List, Dictionary>>(BasicLineChartFunctions.GetNodeInput), + new List { inputAstNodes[0], inputAstNodes[1], inputAstNodes[2] } + ); + + return new[] + { + AstFactory.BuildAssignment(GetAstIdentifierForOutputIndex(0), inputNode), + AstFactory.BuildAssignment( + AstFactory.BuildIdentifier(AstIdentifierBase + "_dummy"), + VMDataBridge.DataBridge.GenerateBridgeDataAst(GUID.ToString(), AstFactory.BuildExprList(inputAstNodes) + ) + ), + }; + } + #endregion + + #region Dispose + + /// + /// Finalize the usage of this Node + /// + public override void Dispose() + { + PortDisconnected -= BasicLineChartNodeModel_PortDisconnected; + VMDataBridge.DataBridge.Instance.UnregisterCallback(GUID.ToString()); + } + + #endregion + } + + /// + /// View customizer for CustomNodeModel Node Model. + /// + public class BasicLineChartNodeView : INodeViewCustomization + { + + private BasicLineChartControl basicLineChartControl; + + /// + /// At run-time, this method is called during the node + /// creation. Add custom UI element to the node view. + /// + /// The NodeModel representing the node's core logic. + /// The NodeView representing the node in the graph. + public void CustomizeView(BasicLineChartNodeModel model, NodeView nodeView) + { + basicLineChartControl = new BasicLineChartControl(model); + nodeView.inputGrid.Children.Add(basicLineChartControl); + + MenuItem exportImage = new MenuItem(); + exportImage.Header = "Export Chart as Image"; + exportImage.Click += ExportImage_Click; + + var contextMenu = (nodeView.Content as Grid).ContextMenu; + contextMenu.Items.Add(exportImage); + } + + private void ExportImage_Click(object sender, RoutedEventArgs e) + { + Export.ToPng(basicLineChartControl.BasicLineChart); + } + + /// + /// Here you can do any cleanup you require if you've assigned callbacks for particular + /// UI events on your node. + /// + public void Dispose() { } + } +} diff --git a/src/Libraries/CoreNodeModelsWpf/Charts/Controls/BarChartControl.xaml b/src/Libraries/CoreNodeModelsWpf/Charts/Controls/BarChartControl.xaml new file mode 100644 index 00000000000..ea6b857014b --- /dev/null +++ b/src/Libraries/CoreNodeModelsWpf/Charts/Controls/BarChartControl.xaml @@ -0,0 +1,48 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/Libraries/CoreNodeModelsWpf/Charts/Controls/BarChartControl.xaml.cs b/src/Libraries/CoreNodeModelsWpf/Charts/Controls/BarChartControl.xaml.cs new file mode 100644 index 00000000000..0f794c11837 --- /dev/null +++ b/src/Libraries/CoreNodeModelsWpf/Charts/Controls/BarChartControl.xaml.cs @@ -0,0 +1,157 @@ +using LiveCharts; +using LiveCharts.Wpf; +using SharpDX.Direct2D1; +using System; +using System.ComponentModel; +using System.Windows; +using System.Windows.Controls; +using System.Windows.Controls.Primitives; + +namespace CoreNodeModelsWpf.Charts.Controls +{ + /// + /// Interaction logic for BarChartControl.xaml + /// + public partial class BarChartControl : UserControl, INotifyPropertyChanged + { + private Random rnd = new Random(); + private readonly BarChartNodeModel model; + + public event PropertyChangedEventHandler PropertyChanged; + private static double PADDING = 4.0; + private static double MAX_COLUMN_WIDTH = 20.0; + + private void OnPropertyChanged(string propertyName) + { + PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName)); + } + + public BarChartControl(BarChartNodeModel model) + { + InitializeComponent(); + + this.model = model; + this.model.PropertyChanged += NodeModel_PropertyChanged; + this.Unloaded += Unload; + + BuildUI(model); + + DataContext = this; + } + + private void BuildUI(BarChartNodeModel model) + { + + if (!model.InPorts[0].IsConnected && !model.InPorts[1].IsConnected && !model.InPorts[2].IsConnected) + { + BarChart.Series = new SeriesCollection + { + new ColumnSeries + { + Title = "2019", + Values = new ChartValues { 5, 6, 7, 8 }, + ColumnPadding = PADDING, + MaxColumnWidth = MAX_COLUMN_WIDTH, + }, + new ColumnSeries + { + Title = "2020", + Values = new ChartValues { 10, 12, 14, 16 }, + ColumnPadding = PADDING, + MaxColumnWidth = MAX_COLUMN_WIDTH, + }, + new ColumnSeries + { + Title = "2021", + Values = new ChartValues { 15, 18, 21, 24 }, + ColumnPadding = PADDING, + MaxColumnWidth = MAX_COLUMN_WIDTH, + } + }; + } + else if (model.InPorts[0].IsConnected && model.InPorts[1].IsConnected && model.InPorts[2].IsConnected) + { + if (model.Labels.Count == model.Values.Count && model.Labels.Count > 0) + { + var seriesRange = new ColumnSeries[model.Labels.Count]; + + for (var i = 0; i < model.Labels.Count; i++) + { + seriesRange[i] = new ColumnSeries + { + Title = model.Labels[i], + Values = new ChartValues(model.Values[i]), + Fill = model.Colors[i], + Stroke = model.Colors[i], + ColumnPadding = PADDING, + MaxColumnWidth = MAX_COLUMN_WIDTH, + }; + } + + BarChart.Series.AddRange(seriesRange); + } + } + } + + private void NodeModel_PropertyChanged(object sender, PropertyChangedEventArgs e) + { + if (e.PropertyName == "DataUpdated") + { + var model = sender as BarChartNodeModel; + + // Invoke on UI thread + this.Dispatcher.Invoke(() => + { + var seriesRange = new ColumnSeries[model.Labels.Count]; + + for (var i = 0; i < model.Labels.Count; i++) + { + seriesRange[i] = new ColumnSeries + { + Title = model.Labels[i], + Values = new ChartValues(model.Values[i]), + Fill = model.Colors[i], + Stroke = model.Colors[i], + ColumnPadding = PADDING, + MaxColumnWidth = MAX_COLUMN_WIDTH, + }; + } + + BarChart.Series.Clear(); + BarChart.Series.AddRange(seriesRange); + }); + } + } + + private void ThumbResizeThumbOnDragDeltaHandler(object sender, DragDeltaEventArgs e) + { + var yAdjust = ActualHeight + e.VerticalChange; + var xAdjust = ActualWidth + e.HorizontalChange; + + if (this.Parent.GetType() == typeof(Grid)) + { + var inputGrid = this.Parent as Grid; + + if (xAdjust >= inputGrid.MinWidth) + { + Width = xAdjust; + } + + if (yAdjust >= inputGrid.MinHeight) + { + Height = yAdjust; + } + } + } + + /// + /// Unsubscribes from ViewModel events + /// + /// + private void Unload(object sender, RoutedEventArgs e) + { + this.model.PropertyChanged -= NodeModel_PropertyChanged; + Unloaded -= Unload; + } + } +} diff --git a/src/Libraries/CoreNodeModelsWpf/Charts/Controls/BasicLineChartControl.xaml b/src/Libraries/CoreNodeModelsWpf/Charts/Controls/BasicLineChartControl.xaml new file mode 100644 index 00000000000..027a69e3f72 --- /dev/null +++ b/src/Libraries/CoreNodeModelsWpf/Charts/Controls/BasicLineChartControl.xaml @@ -0,0 +1,51 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/Libraries/CoreNodeModelsWpf/Charts/Controls/BasicLineChartControl.xaml.cs b/src/Libraries/CoreNodeModelsWpf/Charts/Controls/BasicLineChartControl.xaml.cs new file mode 100644 index 00000000000..ccea492333b --- /dev/null +++ b/src/Libraries/CoreNodeModelsWpf/Charts/Controls/BasicLineChartControl.xaml.cs @@ -0,0 +1,137 @@ +using System; +using System.Windows.Controls; +using System.Windows.Controls.Primitives; +using System.Windows.Media; +using LiveCharts; +using LiveCharts.Wpf; +using System.ComponentModel; +using System.Windows; + +namespace CoreNodeModelsWpf.Charts +{ + /// + /// Interaction logic for BasicLineChartControl.xaml + /// + public partial class BasicLineChartControl : UserControl, INotifyPropertyChanged + { + private Random rnd = new Random(); + private readonly BasicLineChartNodeModel model; + + private void OnPropertyChanged(string propertyName) + { + PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName)); + } + + public event PropertyChangedEventHandler PropertyChanged; + + public BasicLineChartControl(BasicLineChartNodeModel model) + { + InitializeComponent(); + + this.model = model; + this.model.PropertyChanged += NodeModel_PropertyChanged; + this.Unloaded += Unload; + + BuildUI(model); + + DataContext = this; + } + + private void BuildUI(BasicLineChartNodeModel model) + { + // Load sample data if any ports are not connected + if (!model.InPorts[0].IsConnected && !model.InPorts[1].IsConnected && !model.InPorts[2].IsConnected) + { + var seriesRange = new LineSeries[] + { + new LineSeries { Title = "Series 1", Values = new ChartValues { 4, 6, 5, 2, 4 } }, + new LineSeries { Title = "Series 2", Values = new ChartValues { 6, 7, 3, 4, 6 } }, + new LineSeries { Title = "Series 3", Values = new ChartValues { 4, 2, 7, 2, 7 } } + }; + + BasicLineChart.Series.AddRange(seriesRange); + } + else if (model.InPorts[0].IsConnected && model.InPorts[1].IsConnected && model.InPorts[2].IsConnected) + { + if (model.Labels.Count == model.Values.Count && model.Labels.Count > 0) + { + LineSeries[] seriesRange = new LineSeries[model.Labels.Count]; + + for (var i = 0; i < model.Labels.Count; i++) + { + seriesRange[i] = new LineSeries + { + Title = model.Labels[i], + Values = new ChartValues(model.Values[i]), + Stroke = model.Colors[i], + StrokeThickness = 2.0, + //Fill = Brushes.Transparent + }; + } + + BasicLineChart.Series.AddRange(seriesRange); + } + } + } + + private void NodeModel_PropertyChanged(object sender, PropertyChangedEventArgs e) + { + if(e.PropertyName == "DataUpdated") + { + var model = sender as BasicLineChartNodeModel; + + // Invoke on UI thread + this.Dispatcher.Invoke(() => + { + LineSeries[] seriesRange = new LineSeries[model.Labels.Count]; + + for (var i = 0; i < model.Labels.Count; i++) + { + seriesRange[i] = new LineSeries + { + Title = model.Labels[i], + Values = new ChartValues(model.Values[i]), + Stroke = model.Colors[i], + StrokeThickness = 2.0, + //Fill = Brushes.Transparent, + //PointGeometrySize = 0 + }; + } + + BasicLineChart.Series.Clear(); + BasicLineChart.Series.AddRange(seriesRange); + }); + } + } + + private void ThumbResizeThumbOnDragDeltaHandler(object sender, DragDeltaEventArgs e) + { + var yAdjust = ActualHeight + e.VerticalChange; + var xAdjust = ActualWidth + e.HorizontalChange; + + if (this.Parent.GetType() == typeof(Grid)) + { + var inputGrid = this.Parent as Grid; + + if (xAdjust >= inputGrid.MinWidth) + { + Width = xAdjust; + } + + if (yAdjust >= inputGrid.MinHeight) + { + Height = yAdjust; + } + } + } + + /// + /// Unsubscribes from ViewModel events + /// + private void Unload(object sender, RoutedEventArgs e) + { + this.model.PropertyChanged -= NodeModel_PropertyChanged; + Unloaded -= Unload; + } + } +} diff --git a/src/Libraries/CoreNodeModelsWpf/Charts/Controls/HeatSeriesControl.xaml b/src/Libraries/CoreNodeModelsWpf/Charts/Controls/HeatSeriesControl.xaml new file mode 100644 index 00000000000..db7e835bf42 --- /dev/null +++ b/src/Libraries/CoreNodeModelsWpf/Charts/Controls/HeatSeriesControl.xaml @@ -0,0 +1,45 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/Libraries/CoreNodeModelsWpf/Charts/Controls/HeatSeriesControl.xaml.cs b/src/Libraries/CoreNodeModelsWpf/Charts/Controls/HeatSeriesControl.xaml.cs new file mode 100644 index 00000000000..c4a269832fb --- /dev/null +++ b/src/Libraries/CoreNodeModelsWpf/Charts/Controls/HeatSeriesControl.xaml.cs @@ -0,0 +1,226 @@ +using System; +using System.Windows.Controls; +using System.Windows.Controls.Primitives; +using System.Windows.Media; +using LiveCharts; +using LiveCharts.Defaults; +using LiveCharts.Wpf; +using System.ComponentModel; +using System.Windows; + +namespace CoreNodeModelsWpf.Charts.Controls +{ + /// + /// Interaction logic for XYLineChartControl.xaml + /// + public partial class HeatSeriesControl : UserControl, INotifyPropertyChanged + { + private Random rnd = new Random(); + private readonly HeatSeriesNodeModel model; + + private void OnPropertyChanged(string propertyName) + { + PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName)); + } + + public event PropertyChangedEventHandler PropertyChanged; + + public HeatSeriesControl(HeatSeriesNodeModel model) + { + InitializeComponent(); + + this.model = model; + this.model.PropertyChanged += NodeModel_PropertyChanged; + this.Unloaded += Unload; + + BuildUI(model); + + DataContext = this; + } + + private void BuildUI(HeatSeriesNodeModel model) + { + // Load sample data if any ports are not connected + if (!model.InPorts[0].IsConnected && !model.InPorts[1].IsConnected && !model.InPorts[2].IsConnected && !model.InPorts[3].IsConnected) + { + // X - Products + var XLabels = new[] + { + "Item-1", + "Item-2", + "Item-3", + "Item-4", + "Item-5" + }; + + // Y - Day of the week + var YLabels = new[] + { + "Monday", + "Tuesday", + "Wednesday", + "Thursday", + "Friday", + "Saturday", + "Sunday" + }; + + // Value for each product on every day of the week + var chartValues = new ChartValues(); + + for(var i = 0; i < XLabels.Length; i++) + { + for ( var j = 0; j < YLabels.Length; j++) + { + chartValues.Add(new HeatPoint(i, j, rnd.Next(0, 10))); + } + } + + XAxis.Labels = XLabels; + YAxis.Labels = YLabels; + HeatSeriesUI.Series.Add(new HeatSeries() + { + Values = chartValues, + DrawsHeatRange = false, + }); + } + // Else load input data + else if (model.InPorts[0].IsConnected && model.InPorts[1].IsConnected && model.InPorts[2].IsConnected && model.InPorts[3].IsConnected) + { + if (model.XLabels.Count == model.Values.Count && model.XLabels.Count > 0) + { + var chartValues = new ChartValues(); + + for (var i = 0; i < model.XLabels.Count; i++) + { + for (var j = 0; j < model.YLabels.Count; j++) + { + chartValues.Add(new HeatPoint(i, j, model.Values[i][j])); + } + } + + var colors = BuildColors(model); + var hoverIconColor = new SolidColorBrush(Color.FromArgb(255, 94, 92, 90)); + + XAxis.Labels = model.XLabels; + YAxis.Labels = model.YLabels; + HeatSeriesUI.Series.Add(new HeatSeries() + { + Values = chartValues, + DrawsHeatRange = false, + GradientStopCollection = colors, + //Fill = hoverIconColor, + PointGeometry = DefaultGeometries.Square + //DataLabels = true + }); + } + } + } + + private void NodeModel_PropertyChanged(object sender, PropertyChangedEventArgs e) + { + if (e.PropertyName == "DataUpdated") + { + var model = sender as HeatSeriesNodeModel; + + // Invoke on UI thread + this.Dispatcher.Invoke(() => + { + var chartValues = new ChartValues(); + + for (var i = 0; i < model.XLabels.Count; i++) + { + for (var j = 0; j < model.YLabels.Count; j++) + { + chartValues.Add(new HeatPoint(i, j, model.Values[i][j])); + } + } + + var colors = BuildColors(model); + var hoverIconColor = new SolidColorBrush(Color.FromArgb(255, 94, 92, 90)); + + HeatSeriesUI.Series.Clear(); + XAxis.Labels = model.XLabels; + YAxis.Labels = model.YLabels; + HeatSeriesUI.Series.Add(new HeatSeries() + { + Values = chartValues, + DrawsHeatRange = false, + GradientStopCollection = colors, + //Fill = hoverIconColor, + PointGeometry = DefaultGeometries.Square + //DataLabels = true + }); + }); + } + } + + private GradientStopCollection BuildColors(HeatSeriesNodeModel model) + { + var colors = new GradientStopCollection(); + + // If provided with a single color create range from transparent white to color + if (model.Colors.Count == 1) + { + colors.Add(new GradientStop() + { + Offset = 0, + Color = Color.FromArgb(255, 255, 255, 255) + }); + + colors.Add(new GradientStop() + { + Offset = 1, + Color = model.Colors[0] + }); + } + + // If provided with several colors create a range for provided colors + else if (model.Colors.Count > 1) + { + var count = model.Colors.Count; + + for (var i = 0; i < count; i++) + { + colors.Add(new GradientStop() + { + Offset = i / (count - 1), + Color = model.Colors[i] + }); + } + } + + return colors; + } + + private void ThumbResizeThumbOnDragDeltaHandler(object sender, DragDeltaEventArgs e) + { + var yAdjust = ActualHeight + e.VerticalChange; + var xAdjust = ActualWidth + e.HorizontalChange; + + if (this.Parent.GetType() == typeof(Grid)) + { + var inputGrid = this.Parent as Grid; + + if (xAdjust >= inputGrid.MinWidth) + { + Width = xAdjust; + } + + if (yAdjust >= inputGrid.MinHeight) + { + Height = yAdjust; + } + } + } + + /// + /// Unsubscribes from ViewModel events + /// + private void Unload(object sender, RoutedEventArgs e) + { + this.model.PropertyChanged -= NodeModel_PropertyChanged; + Unloaded -= Unload; + } + } +} diff --git a/src/Libraries/CoreNodeModelsWpf/Charts/Controls/PieChartControl.xaml b/src/Libraries/CoreNodeModelsWpf/Charts/Controls/PieChartControl.xaml new file mode 100644 index 00000000000..24e7638325e --- /dev/null +++ b/src/Libraries/CoreNodeModelsWpf/Charts/Controls/PieChartControl.xaml @@ -0,0 +1,32 @@ + + + + + + + + + + + + + + + + + + diff --git a/src/Libraries/CoreNodeModelsWpf/Charts/Controls/PieChartControl.xaml.cs b/src/Libraries/CoreNodeModelsWpf/Charts/Controls/PieChartControl.xaml.cs new file mode 100644 index 00000000000..498490c6bba --- /dev/null +++ b/src/Libraries/CoreNodeModelsWpf/Charts/Controls/PieChartControl.xaml.cs @@ -0,0 +1,140 @@ +using System; +using System.Windows.Controls; +using System.Windows.Controls.Primitives; +using LiveCharts; +using LiveCharts.Wpf; +using System.ComponentModel; +using System.Windows; + +namespace CoreNodeModelsWpf.Charts.Controls +{ + /// + /// Interaction logic for PieChartControl.xaml + /// + public partial class PieChartControl : UserControl, INotifyPropertyChanged + { + //private Func PointLabel { get; set; } + private Random rnd = new Random(); + private readonly PieChartNodeModel model; + + public event PropertyChangedEventHandler PropertyChanged; + + private void OnPropertyChanged(string propertyName) + { + PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName)); + } + + public PieChartControl(PieChartNodeModel model) + { + InitializeComponent(); + + this.model = model; + this.model.PropertyChanged += NodeModel_PropertyChanged; + this.Unloaded += Unload; + + BuildUI(model); + + DataContext = this; + } + + private void BuildUI(PieChartNodeModel model) + { + if (!model.InPorts[0].IsConnected && !model.InPorts[1].IsConnected && !model.InPorts[2].IsConnected) + { + var seriesRange = new PieSeries[] + { + new PieSeries { Title = "Item1", Values = new ChartValues { 100.0 }, DataLabels = true/*, LabelPoint = PointLabel*/ }, + new PieSeries { Title = "Item2", Values = new ChartValues { 100.0 }, DataLabels = true/*, LabelPoint = PointLabel*/ }, + new PieSeries { Title = "Item3", Values = new ChartValues { 100.0 }, DataLabels = true/*, LabelPoint = PointLabel*/ } + }; + + PieChart.Series.AddRange(seriesRange); + } + + else if (model.InPorts[0].IsConnected && model.InPorts[1].IsConnected && model.InPorts[2].IsConnected) + { + if (model.Labels.Count == model.Values.Count && model.Labels.Count > 0) + { + var seriesRange = new PieSeries[model.Labels.Count]; + + for (var i = 0; i < model.Labels.Count; i++) + { + seriesRange[i] = new PieSeries + { + Title = model.Labels[i], + Values = new ChartValues { model.Values[i] }, + Fill = model.Colors[i], + DataLabels = true, + //LabelPoint = PointLabel + }; + } + + PieChart.Series.AddRange(seriesRange); + } + } + } + + private void NodeModel_PropertyChanged(object sender, PropertyChangedEventArgs e) + { + if(e.PropertyName == "DataUpdated") + { + var nodeModel = sender as PieChartNodeModel; + + // Invoke on UI thread + this.Dispatcher.Invoke(() => + { + var seriesRange = new PieSeries[nodeModel.Labels.Count]; + + for (var i = 0; i < nodeModel.Labels.Count; i++) + { + seriesRange[i] = new PieSeries + { + Title = nodeModel.Labels[i], + Fill = nodeModel.Colors[i], + //StrokeThickness = 0, + Values = new ChartValues { nodeModel.Values[i] }, + DataLabels = true, + //LabelPoint = PointLabel + }; + } + + PieChart.Series.Clear(); + PieChart.Series.AddRange(seriesRange); + }); + } + } + + + private void ThumbResizeThumbOnDragDeltaHandler(object sender, DragDeltaEventArgs e) + { + var yAdjust = ActualHeight + e.VerticalChange; + var xAdjust = ActualWidth + e.HorizontalChange; + + if (this.Parent.GetType() == typeof(Grid)) + { + var inputGrid = this.Parent as Grid; + + if (xAdjust >= inputGrid.MinWidth) + { + Width = xAdjust; + Height = xAdjust; + } + + if (yAdjust >= inputGrid.MinHeight) + { + Width = yAdjust; + Height = yAdjust; + } + } + } + + /// + /// Unsubscribes from ViewModel events + /// + private void Unload(object sender, RoutedEventArgs e) + { + this.model.PropertyChanged -= NodeModel_PropertyChanged; + Unloaded -= Unload; + } + } +} diff --git a/src/Libraries/CoreNodeModelsWpf/Charts/Controls/ScatterPlotControl.xaml b/src/Libraries/CoreNodeModelsWpf/Charts/Controls/ScatterPlotControl.xaml new file mode 100644 index 00000000000..c79c506e1d1 --- /dev/null +++ b/src/Libraries/CoreNodeModelsWpf/Charts/Controls/ScatterPlotControl.xaml @@ -0,0 +1,49 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/Libraries/CoreNodeModelsWpf/Charts/Controls/ScatterPlotControl.xaml.cs b/src/Libraries/CoreNodeModelsWpf/Charts/Controls/ScatterPlotControl.xaml.cs new file mode 100644 index 00000000000..a95a68b620a --- /dev/null +++ b/src/Libraries/CoreNodeModelsWpf/Charts/Controls/ScatterPlotControl.xaml.cs @@ -0,0 +1,174 @@ +using System; +using System.Collections.Generic; +using System.Windows.Controls; +using System.Windows.Controls.Primitives; +using System.Windows.Media; +using LiveCharts; +using LiveCharts.Defaults; +using LiveCharts.Wpf; +using System.ComponentModel; +using System.Windows; + +namespace CoreNodeModelsWpf.Charts.Controls +{ + /// + /// Interaction logic for ScatterPlotControl.xaml + /// + public partial class ScatterPlotControl : UserControl, INotifyPropertyChanged + { + private Random rnd = new Random(); + private readonly ScatterPlotNodeModel model; + + private void OnPropertyChanged(string propertyName) + { + PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName)); + } + + public event PropertyChangedEventHandler PropertyChanged; + + public ScatterPlotControl(ScatterPlotNodeModel model) + { + InitializeComponent(); + + this.model = model; + this.model.PropertyChanged += NodeModel_PropertyChanged; + this.Unloaded += Unload; + + BuildUI(model); + + DataContext = this; + } + + private void BuildUI(ScatterPlotNodeModel model) + { + // Load sample data if any ports are not connected + if (!model.InPorts[0].IsConnected && !model.InPorts[1].IsConnected && !model.InPorts[2].IsConnected && !model.InPorts[3].IsConnected) + { + var ValuesA = new ChartValues(); + var ValuesB = new ChartValues(); + var ValuesC = new ChartValues(); + + for (var i = 0; i < 20; i++) + { + ValuesA.Add(new ObservablePoint(rnd.NextDouble() * 10, rnd.NextDouble() * 10)); + ValuesB.Add(new ObservablePoint(rnd.NextDouble() * 10, rnd.NextDouble() * 10)); + ValuesC.Add(new ObservablePoint(rnd.NextDouble() * 10, rnd.NextDouble() * 10)); + } + + var plot1 = new ScatterSeries { Title = "Plot 1", Values = ValuesA }; + var plot2 = new ScatterSeries { Title = "Plot 2", Values = ValuesB }; + var plot3 = new ScatterSeries { Title = "Plot 3", Values = ValuesC }; + + var plots = new ScatterSeries[] { plot1, plot2, plot3 }; + + ScatterPlot.Series.AddRange(plots); + } + // Else load input data + else if (model.InPorts[0].IsConnected && model.InPorts[1].IsConnected && model.InPorts[2].IsConnected && model.InPorts[3].IsConnected) + { + if (model.Labels.Count == model.XValues.Count && model.XValues.Count == model.YValues.Count && model.Labels.Count > 0) + { + var plots = new List(); + + // For each set of points + for (var i = 0; i < model.Labels.Count; i++) + { + + ChartValues points = new ChartValues(); + + // For each x-value list + for (int j = 0; j < model.XValues[i].Count; j++) + { + points.Add(new ObservablePoint + { + X = model.XValues[i][j], + Y = model.YValues[i][j] + }); + } + + plots.Add(new ScatterSeries + { + Title = model.Labels[i], + Values = points, + Fill = model.Colors[i] + }); + } + + ScatterPlot.Series.AddRange(plots); + } + } + } + + private void NodeModel_PropertyChanged(object sender, PropertyChangedEventArgs e) + { + if(e.PropertyName == "DataUpdated") + { + var model = sender as ScatterPlotNodeModel; + + // Invoke on UI thread + this.Dispatcher.Invoke(() => + { + ScatterPlot.Series.Clear(); + + var plots = new List(); + + // For each set of points + for (var i = 0; i < model.Labels.Count; i++) + { + + ChartValues points = new ChartValues(); + + // For each x-value list + for (int j = 0; j < model.XValues[i].Count; j++) + { + points.Add(new ObservablePoint + { + X = model.XValues[i][j], + Y = model.YValues[i][j] + }); + } + + plots.Add(new ScatterSeries + { + Title = model.Labels[i], + Values = points, + Fill = model.Colors[i] + }); + } + + ScatterPlot.Series.AddRange(plots); + }); + } + } + + private void ThumbResizeThumbOnDragDeltaHandler(object sender, DragDeltaEventArgs e) + { + var yAdjust = ActualHeight + e.VerticalChange; + var xAdjust = ActualWidth + e.HorizontalChange; + + if (this.Parent.GetType() == typeof(Grid)) + { + var inputGrid = this.Parent as Grid; + + if (xAdjust >= 100/*inputGrid.MinWidth*/) + { + Width = xAdjust; + } + + if (yAdjust >= 100/*inputGrid.MinHeight*/) + { + Height = yAdjust; + } + } + } + + /// + /// Unsubscribes from ViewModel events + /// + private void Unload(object sender, RoutedEventArgs e) + { + this.model.PropertyChanged -= NodeModel_PropertyChanged; + Unloaded -= Unload; + } + } +} diff --git a/src/Libraries/CoreNodeModelsWpf/Charts/Controls/XYLineChartControl.xaml b/src/Libraries/CoreNodeModelsWpf/Charts/Controls/XYLineChartControl.xaml new file mode 100644 index 00000000000..35a50f20786 --- /dev/null +++ b/src/Libraries/CoreNodeModelsWpf/Charts/Controls/XYLineChartControl.xaml @@ -0,0 +1,49 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/Libraries/CoreNodeModelsWpf/Charts/Controls/XYLineChartControl.xaml.cs b/src/Libraries/CoreNodeModelsWpf/Charts/Controls/XYLineChartControl.xaml.cs new file mode 100644 index 00000000000..3c6aa3e4c0e --- /dev/null +++ b/src/Libraries/CoreNodeModelsWpf/Charts/Controls/XYLineChartControl.xaml.cs @@ -0,0 +1,190 @@ +using System; +using System.Windows.Controls; +using System.Windows.Controls.Primitives; +using System.Windows.Media; +using LiveCharts; +using LiveCharts.Defaults; +using LiveCharts.Wpf; +using System.ComponentModel; +using System.Windows; + +namespace CoreNodeModelsWpf.Charts.Controls +{ + /// + /// Interaction logic for XYLineChartControl.xaml + /// + public partial class XYLineChartControl : UserControl, INotifyPropertyChanged + { + private Random rnd = new Random(); + private readonly XYLineChartNodeModel model; + + private void OnPropertyChanged(string propertyName) + { + PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName)); + } + + public event PropertyChangedEventHandler PropertyChanged; + + public XYLineChartControl(XYLineChartNodeModel model) + { + InitializeComponent(); + + this.model = model; + this.model.PropertyChanged += NodeModel_PropertyChanged; + this.Unloaded += Unload; + + BuildUI(model); + + DataContext = this; + } + + private void BuildUI(XYLineChartNodeModel model) + { + // Load sample data if any ports are not connected + if (!model.InPorts[0].IsConnected && !model.InPorts[1].IsConnected && !model.InPorts[2].IsConnected && !model.InPorts[3].IsConnected) + { + var defaultXValues = new double[][] + { + new double[]{ 0, 1, 2, 3 }, + new double[]{ 0, 1, 2, 3 }, + new double[]{ 0, 1, 2, 3 } + }; + + var defaultYValues = new double[][] + { + new double[]{ 0, 1, 2, 3 }, + new double[]{ 1, 2, 3, 4 }, + new double[]{ 2, 3, 4, 5 } + }; + + LineSeries[] seriesRange = new LineSeries[defaultXValues.Length]; + + for (var i = 0; i < defaultXValues.Length; i++) + { + ChartValues points = new ChartValues(); + + for (int j = 0; j < defaultXValues[i].Length; j++) + { + points.Add(new ObservablePoint + { + X = defaultXValues[i][j], + Y = defaultYValues[i][j] + }); + } + + seriesRange[i] = new LineSeries + { + Values = points, + Fill = Brushes.Transparent + }; + } + + XYLineChart.Series.AddRange(seriesRange); + } + // Else load input data + else if (model.InPorts[0].IsConnected && model.InPorts[1].IsConnected && model.InPorts[2].IsConnected && model.InPorts[3].IsConnected) + { + if (model.Labels.Count == model.XValues.Count && model.XValues.Count == model.YValues.Count && model.Labels.Count > 0) + { + LineSeries[] seriesRange = new LineSeries[model.Labels.Count]; + + for (var i = 0; i < model.Labels.Count; i++) + { + ChartValues points = new ChartValues(); + + for (int j = 0; j < model.XValues[i].Count; j++) + { + points.Add(new ObservablePoint + { + X = model.XValues[i][j], + Y = model.YValues[i][j] + }); + } + + seriesRange[i] = new LineSeries + { + Title = model.Labels[i], + Values = points, + Stroke = model.Colors[i], + StrokeThickness = 2.0, + Fill = Brushes.Transparent, + }; + } + + XYLineChart.Series.AddRange(seriesRange); + } + } + } + + private void NodeModel_PropertyChanged(object sender, PropertyChangedEventArgs e) + { + if(e.PropertyName == "DataUpdated") + { + var model = sender as XYLineChartNodeModel; + + // Invoke on UI thread + this.Dispatcher.Invoke(() => + { + LineSeries[] seriesRange = new LineSeries[model.Labels.Count]; + + for (var i = 0; i < model.Labels.Count; i++) + { + ChartValues points = new ChartValues(); + + for (int j = 0; j < model.XValues[i].Count; j++) + { + points.Add(new ObservablePoint + { + X = model.XValues[i][j], + Y = model.YValues[i][j] + }); + } + + seriesRange[i] = new LineSeries + { + Title = model.Labels[i], + Values = points, + Stroke = model.Colors[i], + StrokeThickness = 2.0, + Fill = Brushes.Transparent + //PointGeometrySize = 0 + }; + } + + XYLineChart.Series.Clear(); + XYLineChart.Series.AddRange(seriesRange); + }); + } + } + + private void ThumbResizeThumbOnDragDeltaHandler(object sender, DragDeltaEventArgs e) + { + var yAdjust = ActualHeight + e.VerticalChange; + var xAdjust = ActualWidth + e.HorizontalChange; + + if (this.Parent.GetType() == typeof(Grid)) + { + var inputGrid = this.Parent as Grid; + + if (xAdjust >= inputGrid.MinWidth) + { + Width = xAdjust; + } + + if (yAdjust >= inputGrid.MinHeight) + { + Height = yAdjust; + } + } + } + + /// + /// Unsubscribes from ViewModel events + /// + private void Unload(object sender, RoutedEventArgs e) + { + this.model.PropertyChanged -= NodeModel_PropertyChanged; + Unloaded -= Unload; + } + } +} diff --git a/src/Libraries/CoreNodeModelsWpf/Charts/HeatSeriesNodeModel.cs b/src/Libraries/CoreNodeModelsWpf/Charts/HeatSeriesNodeModel.cs new file mode 100644 index 00000000000..ece3b24c7c7 --- /dev/null +++ b/src/Libraries/CoreNodeModelsWpf/Charts/HeatSeriesNodeModel.cs @@ -0,0 +1,298 @@ +using System; +using System.Collections; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows; +using System.Windows.Controls; +using System.Windows.Media; +using Autodesk.DesignScript.Runtime; +using CoreNodes.ChartHelpers; +using CoreNodeModelsWpf.Charts.Controls; +using CoreNodeModelsWpf.Charts.Utilities; +using Dynamo.Controls; +using Dynamo.Graph.Nodes; +using Dynamo.Wpf; +using Newtonsoft.Json; +using ProtoCore.AST.AssociativeAST; +using DynamoServices; +using Dynamo.Wpf.Properties; + +namespace CoreNodeModelsWpf.Charts +{ + [IsDesignScriptCompatible] + [NodeName("Heat Series Plot")] + [NodeCategory("Display.Charts.Create")] + [NodeDescription("ChartsHeatSeriesDescription", typeof(CoreNodeModelWpfResources))] + [NodeSearchTags("ChartsHeatSeriesSearchTags", typeof(CoreNodeModelWpfResources))] + + [InPortTypes("List", "List", "List>", "List")] + [OutPortTypes("object[]")] + [AlsoKnownAs("CoreNodeModelsWpf.Charts.HeatSeriesPlot")] + public class HeatSeriesNodeModel : NodeModel + { + #region Properties + private Random rnd = new Random(); + + /// + /// A list of X-axis Labels. + /// + public List XLabels { get; set; } + + /// + /// A list of Y-axis Labels. + /// + public List YLabels { get; set; } + + /// + /// List of lists each containing double values representing items in a column. + /// + public List> Values { get; set; } + + /// + /// A list of color values, one for each plotted line. + /// + public List Colors { get; set; } + #endregion + + #region Constructors + /// + /// Instantiate a new NodeModel instance. + /// + public HeatSeriesNodeModel() + { + InPorts.Add(new PortModel(PortType.Input, this, new PortData("x-labels", "A list of string labels for the x-axis."))); + InPorts.Add(new PortModel(PortType.Input, this, new PortData("y-labels", "A list of string labels for the y-axis."))); + InPorts.Add(new PortModel(PortType.Input, this, new PortData("values", "A list of lists each containing double values representing items in a column."))); + InPorts.Add(new PortModel(PortType.Input, this, new PortData("colors", "A list of colors used to generate a color range."))); + + OutPorts.Add(new PortModel(PortType.Output, this, new PortData("labels:values", "Dictionary containing label:value key-pairs"))); + + RegisterAllPorts(); + + PortDisconnected += XYLineChartNodeModel_PortDisconnected; + + ArgumentLacing = LacingStrategy.Disabled; + } + + [JsonConstructor] + /// + /// Instantiate a new NodeModel instance. + /// + public HeatSeriesNodeModel(IEnumerable inPorts, IEnumerable outPorts) : base(inPorts, outPorts) + { + PortDisconnected += XYLineChartNodeModel_PortDisconnected; + } + #endregion + + #region Events + private void XYLineChartNodeModel_PortDisconnected(PortModel port) + { + // Clear UI when a input port is disconnected + if (port.PortType == PortType.Input && this.State == ElementState.Active) + { + XLabels.Clear(); + YLabels.Clear(); + Values.Clear(); + Colors.Clear(); + + RaisePropertyChanged("DataUpdated"); + } + } + #endregion + + #region Databridge + // Use the VMDataBridge to safely retrieve our input values + + /// + /// Register the data bridge callback. + /// + protected override void OnBuilt() + { + base.OnBuilt(); + VMDataBridge.DataBridge.Instance.RegisterCallback(GUID.ToString(), DataBridgeCallback); + } + + /// + /// Callback method for DataBridge mechanism. + /// This callback only gets called when + /// - The AST is executed + /// - After the BuildOutputAST function is executed + /// - The AST is fully built + /// + /// The data passed through the data bridge. + private void DataBridgeCallback(object data) + { + // Grab input data which always returned as an ArrayList + var inputs = data as ArrayList; + + // Each of the list inputs are also returned as ArrayLists + var xLabels = inputs[0] as ArrayList; + var yLabels = inputs[1] as ArrayList; + var values = inputs[2] as ArrayList; + var colors = inputs[3] as ArrayList; + + // TODO - is it worth/possible to display jagged data + // If data is jagged throw warning + if (xLabels.Count != values.Count || xLabels.Count == 0) + { + throw new Exception("Label and Values do not properly align in length."); + } + + // Clear current chart values + XLabels = new List(); + YLabels = new List(); + Values = new List>(); + Colors = new List(); + + // Iterate the x and y values separately as they may be different lengths + for (var i = 0; i < xLabels.Count; i++) + { + XLabels.Add((string)xLabels[i]); + } + + for (var i = 0; i < yLabels.Count; i++) + { + YLabels.Add((string)yLabels[i]); + } + + // Iterate values (count should be x-labels length * y-lables length) + for (var i = 0; i < values.Count; i++) + { + var unpackedValues = values[i] as ArrayList; + var outputValues = new List(); + + for (int j = 0; j < unpackedValues.Count; j++) + { + outputValues.Add(Convert.ToDouble(unpackedValues[j])); + } + + Values.Add(outputValues); + } + + // If colors is empty add 1 random color + if (colors == null || colors.Count == 0) + { + // In case colors are not provided, we supply some from the default library of colors + Info(Dynamo.Wpf.Properties.CoreNodeModelWpfResources.ProvideDefaultColorsWarningMessage); + + Color color = Utilities.Colors.GetColor(); + Colors.Add(color); + + Utilities.Colors.ResetColors(); + } + + + // If provided with 1 color blend white to color + // Else create color range from provided color + else + { + for (var i = 0; i < colors.Count; i++) + { + var dynColor = (DSCore.Color)colors[i]; + var convertedColor = Color.FromArgb(dynColor.Alpha, dynColor.Red, dynColor.Green, dynColor.Blue); + Colors.Add(convertedColor); + } + } + + // TODO - Should this use Dynamo Scheduler to prevent timing issues with redundant calls? + // Notify UI the data has been modified + RaisePropertyChanged("DataUpdated"); + } + #endregion + + #region Methods + /// + /// BuildOutputAst is where the outputs of this node are calculated. + /// This method is used to do the work that a compiler usually does + /// by parsing the inputs List inputAstNodes into an abstract syntax tree. + /// + /// + /// + [IsVisibleInDynamoLibrary(false)] + public override IEnumerable BuildOutputAst(List inputAstNodes) + { + // WARNING!!! + // Do not throw an exception during AST creation. + + // If inputs are not connected return null + if (!InPorts[0].IsConnected || + !InPorts[1].IsConnected || + !InPorts[2].IsConnected) + { + return new[] + { + AstFactory.BuildAssignment(GetAstIdentifierForOutputIndex(0), AstFactory.BuildNullNode()), + }; + } + + AssociativeNode inputNode = AstFactory.BuildFunctionCall( + new Func, List, List>, List, Dictionary>>(HeatSeriesFunctions.GetNodeInput), + new List { inputAstNodes[0], inputAstNodes[1], inputAstNodes[2], inputAstNodes[3] } + ); + + return new[] + { + AstFactory.BuildAssignment(GetAstIdentifierForOutputIndex(0), inputNode), + AstFactory.BuildAssignment( + AstFactory.BuildIdentifier(AstIdentifierBase + "_dummy"), + VMDataBridge.DataBridge.GenerateBridgeDataAst(GUID.ToString(), AstFactory.BuildExprList(inputAstNodes) + ) + ), + }; + } + #endregion + + #region Dispose + + /// + /// Finalize the usage of this Node + /// + public override void Dispose() + { + PortDisconnected -= XYLineChartNodeModel_PortDisconnected; + VMDataBridge.DataBridge.Instance.UnregisterCallback(GUID.ToString()); + } + + #endregion + } + + /// + /// View customizer for CustomNodeModel Node Model. + /// + public class HeatSeriesNodeView : INodeViewCustomization + { + private HeatSeriesControl heatSeriesControl; + + /// + /// At run-time, this method is called during the node + /// creation. Add custom UI element to the node view. + /// + /// The NodeModel representing the node's core logic. + /// The NodeView representing the node in the graph. + public void CustomizeView(HeatSeriesNodeModel model, NodeView nodeView) + { + heatSeriesControl = new HeatSeriesControl(model); + nodeView.inputGrid.Children.Add(heatSeriesControl); + + MenuItem exportImage = new MenuItem(); + exportImage.Header = "Export Chart as Image"; + exportImage.Click += ExportImage_Click; + + var contextMenu = (nodeView.Content as Grid).ContextMenu; + contextMenu.Items.Add(exportImage); + } + + private void ExportImage_Click(object sender, RoutedEventArgs e) + { + Export.ToPng(heatSeriesControl.HeatSeriesUI); + } + + /// + /// Here you can do any cleanup you require if you've assigned callbacks for particular + /// UI events on your node. + /// + public void Dispose() { } + } +} diff --git a/src/Libraries/CoreNodeModelsWpf/Charts/PieChartNodeModel.cs b/src/Libraries/CoreNodeModelsWpf/Charts/PieChartNodeModel.cs new file mode 100644 index 00000000000..d8ece538c61 --- /dev/null +++ b/src/Libraries/CoreNodeModelsWpf/Charts/PieChartNodeModel.cs @@ -0,0 +1,267 @@ +using System; +using System.Collections; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows; +using System.Windows.Controls; +using System.Windows.Media; +using Autodesk.DesignScript.Runtime; +using CoreNodes.ChartHelpers; +using CoreNodeModelsWpf.Charts.Controls; +using CoreNodeModelsWpf.Charts.Utilities; +using Dynamo.Controls; +using Dynamo.Graph.Nodes; +using Dynamo.Wpf; +using Newtonsoft.Json; +using ProtoCore.AST.AssociativeAST; +using DynamoServices; +using Dynamo.Wpf.Properties; +using Xceed.Wpf.Toolkit; + +namespace CoreNodeModelsWpf.Charts +{ + [IsDesignScriptCompatible] + [NodeName("Pie Chart")] + [NodeCategory("Display.Charts.Create")] + [NodeDescription("ChartsPieChartDescription", typeof(CoreNodeModelWpfResources))] + [NodeSearchTags("ChartsPieChartSearchTags", typeof(CoreNodeModelWpfResources))] + + [InPortTypes("List", "List", "List")] + [OutPortTypes("Dictionary")] + [AlsoKnownAs("CoreNodeModelsWpf.Charts.PieChart")] + public class PieChartNodeModel : NodeModel + { + #region Properties + private Random rnd = new Random(); + /// + /// Pie chart labels. + /// + public List Labels { get; set; } + + /// + /// Pie chart values. + /// + public List Values { get; set; } + + /// + /// Pie chart color values. + /// + public List Colors { get; set; } + #endregion + + #region Constructors + /// + /// Instantiate a new NodeModel instance. + /// + public PieChartNodeModel() + { + InPorts.Add(new PortModel(PortType.Input, this, new PortData("labels", "A list of string labels for each segment in the pie chart."))); + InPorts.Add(new PortModel(PortType.Input, this, new PortData("values", "A list of double values to supply a value for each segment of the pie chart."))); + InPorts.Add(new PortModel(PortType.Input, this, new PortData("colors", "A list of colors for each segment of the pie chart."))); + + OutPorts.Add(new PortModel(PortType.Output, this, new PortData("labels:values", "Dictionary containing label:value key-pairs"))); + + RegisterAllPorts(); + + PortDisconnected += PieChartNodeModel_PortDisconnected; + + ArgumentLacing = LacingStrategy.Disabled; + } + + [JsonConstructor] + /// + /// Instantiate a new NodeModel instance. + /// + public PieChartNodeModel(IEnumerable inPorts, IEnumerable outPorts) : base(inPorts, outPorts) + { + PortDisconnected += PieChartNodeModel_PortDisconnected; + } + #endregion + + #region Events + private void PieChartNodeModel_PortDisconnected(PortModel port) + { + // Clear UI when a input port is disconnected + if (port.PortType == PortType.Input && this.State == ElementState.Active) + { + Labels.Clear(); + Values.Clear(); + Colors.Clear(); + + RaisePropertyChanged("DataUpdated"); + } + } + #endregion + + #region databridge + // Use the VMDataBridge to safely retrieve our input values + + /// + /// Register the data bridge callback. + /// + protected override void OnBuilt() + { + base.OnBuilt(); + VMDataBridge.DataBridge.Instance.RegisterCallback(GUID.ToString(), DataBridgeCallback); + } + + /// + /// Callback method for DataBridge mechanism. + /// This callback only gets called when + /// - The AST is executed + /// - After the BuildOutputAST function is executed + /// - The AST is fully built + /// + /// The data passed through the data bridge. + private void DataBridgeCallback(object data) + { + // Grab input data which always returned as an ArrayList + var inputs = data as ArrayList; + + // Each of the list inputs are also returned as ArrayLists + var keys = inputs[0] as ArrayList; + var values = inputs[1] as ArrayList; + var colors = inputs[2] as ArrayList; + + // Only continue if key/values match in length + if (keys.Count != values.Count || keys.Count < 1) + { + throw new Exception("Label and Values do not properly align in length."); + } + + // Update chart properties + Labels = new List(); + Values = new List(); + Colors = new List(); + + if (colors == null || colors.Count == 0 || colors.Count != keys.Count) + { + // In case colors are not provided, we supply some from the default library of colors + Info(Dynamo.Wpf.Properties.CoreNodeModelWpfResources.ProvideDefaultColorsWarningMessage); + + for (var i = 0; i < keys.Count; i++) + { + Labels.Add((string)keys[i]); + Values.Add(System.Convert.ToDouble(values[i])); + Color color = Utilities.Colors.GetColor(); + SolidColorBrush brush = new SolidColorBrush(color); + brush.Freeze(); + Colors.Add(brush); + } + + Utilities.Colors.ResetColors(); + } + else + { + for (var i = 0; i < keys.Count; i++) + { + Labels.Add((string)keys[i]); + Values.Add(System.Convert.ToDouble(values[i])); + var dynColor = (DSCore.Color)colors[i]; + var convertedColor = Color.FromArgb(dynColor.Alpha, dynColor.Red, dynColor.Green, dynColor.Blue); + SolidColorBrush brush = new SolidColorBrush(convertedColor); + brush.Freeze(); + Colors.Add(brush); + } + } + + // Notify UI the data has been modified + RaisePropertyChanged("DataUpdated"); + } + #endregion + + #region Methods + /// + /// BuildOutputAst is where the outputs of this node are calculated. + /// This method is used to do the work that a compiler usually does + /// by parsing the inputs List inputAstNodes into an abstract syntax tree. + /// + /// + /// + [IsVisibleInDynamoLibrary(false)] + public override IEnumerable BuildOutputAst(List inputAstNodes) + { + // WARNING!!! + // Do not throw an exception during AST creation. + + // If inputs are not connected return null + if (!InPorts[0].IsConnected || + !InPorts[1].IsConnected) + { + return new[] + { + AstFactory.BuildAssignment(GetAstIdentifierForOutputIndex(0), AstFactory.BuildNullNode()), + }; + } + + AssociativeNode inputNode = AstFactory.BuildFunctionCall( + new Func, List, List, Dictionary>(PieChartFunctions.GetNodeInput), + new List { inputAstNodes[0], inputAstNodes[1], inputAstNodes[2] } + ); + + return new[] + { + AstFactory.BuildAssignment(GetAstIdentifierForOutputIndex(0), inputNode), + AstFactory.BuildAssignment( + AstFactory.BuildIdentifier(AstIdentifierBase + "_dummy"), + VMDataBridge.DataBridge.GenerateBridgeDataAst(GUID.ToString(), AstFactory.BuildExprList(inputAstNodes) + ) + ), + }; + } + #endregion + + #region Dispose + + /// + /// Finalize the usage of this Node + /// + public override void Dispose() + { + PortDisconnected -= PieChartNodeModel_PortDisconnected; + VMDataBridge.DataBridge.Instance.UnregisterCallback(GUID.ToString()); + } + + #endregion + } + + /// + /// View customizer for CustomNodeModel Node Model. + /// + public class PieChartNodeView : INodeViewCustomization + { + private PieChartControl pieChartControl; + + /// + /// At run-time, this method is called during the node + /// creation. Add custom UI element to the node view. + /// + /// The NodeModel representing the node's core logic. + /// The NodeView representing the node in the graph. + public void CustomizeView(PieChartNodeModel model, NodeView nodeView) + { + pieChartControl = new PieChartControl(model); + nodeView.inputGrid.Children.Add(pieChartControl); + + MenuItem exportImage = new MenuItem(); + exportImage.Header = "Export Chart as Image"; + exportImage.Click += ExportImage_Click; + + var contextMenu = (nodeView.Content as Grid).ContextMenu; + contextMenu.Items.Add(exportImage); + } + + private void ExportImage_Click(object sender, RoutedEventArgs e) + { + Export.ToPng(pieChartControl.PieChart); + } + + /// + /// Here you can do any cleanup you require if you've assigned callbacks for particular + /// UI events on your node. + /// + public void Dispose() { } + } +} diff --git a/src/Libraries/CoreNodeModelsWpf/Charts/ScatterPlotNodeModel.cs b/src/Libraries/CoreNodeModelsWpf/Charts/ScatterPlotNodeModel.cs new file mode 100644 index 00000000000..43ec13132be --- /dev/null +++ b/src/Libraries/CoreNodeModelsWpf/Charts/ScatterPlotNodeModel.cs @@ -0,0 +1,308 @@ +using System; +using System.Collections; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows; +using System.Windows.Controls; +using System.Windows.Media; +using Autodesk.DesignScript.Runtime; +using CoreNodes.ChartHelpers; +using CoreNodeModelsWpf.Charts.Controls; +using CoreNodeModelsWpf.Charts.Utilities; +using Dynamo.Controls; +using Dynamo.Graph.Nodes; +using Dynamo.Wpf; +using Newtonsoft.Json; +using ProtoCore.AST.AssociativeAST; +using DynamoServices; +using Dynamo.Wpf.Properties; +using ProtoCore.DesignScriptParser; + +namespace CoreNodeModelsWpf.Charts +{ + [IsDesignScriptCompatible] + [NodeName("Scatter Plot")] + [NodeCategory("Display.Charts.Create")] + [NodeDescription("ChartsScatterPlotDescription", typeof(CoreNodeModelWpfResources))] + [NodeSearchTags("ChartsScatterPlotSearchTags", typeof(CoreNodeModelWpfResources))] + + [InPortTypes("List", "List>", "List>", "List")] + [OutPortTypes("Dictionary")] + [AlsoKnownAs("CoreNodeModelsWpf.Charts.ScatterPlot")] + public class ScatterPlotNodeModel : NodeModel + { + #region Properties + private Random rnd = new Random(); + + /// + /// A list of Labels for each line to be plotted. + /// + public List Labels { get; set; } + + /// + /// List of lists each containing double values representing x-coordinates. + /// + public List> XValues { get; set; } + + /// + /// List of lists each containing double values representing y-coordinates. + /// + public List> YValues { get; set; } + + /// + /// A list of color values, one for each plotted line. + /// + public List Colors { get; set; } + #endregion + + #region Constructors + /// + /// Instantiate a new NodeModel instance. + /// + public ScatterPlotNodeModel() + { + InPorts.Add(new PortModel(PortType.Input, this, new PortData("labels", "A list of string labels for each group of points to be plotted."))); + InPorts.Add(new PortModel(PortType.Input, this, new PortData("x-values", "A list of lists each containing double values representing x-coordinates."))); + InPorts.Add(new PortModel(PortType.Input, this, new PortData("y-values", "A list of lists each containing double values representing y-coordinates."))); + InPorts.Add(new PortModel(PortType.Input, this, new PortData("colors", "A list of colors for each group of points."))); + + OutPorts.Add(new PortModel(PortType.Output, this, new PortData("labels:values", "Dictionary containing label:value key-pairs"))); + + RegisterAllPorts(); + + PortDisconnected += ScatterPlotNodeModel_PortDisconnected; + + ArgumentLacing = LacingStrategy.Disabled; + } + + [JsonConstructor] + /// + /// Instantiate a new NodeModel instance. + /// + public ScatterPlotNodeModel(IEnumerable inPorts, IEnumerable outPorts) : base(inPorts, outPorts) + { + PortDisconnected += ScatterPlotNodeModel_PortDisconnected; + } + #endregion + + #region Events + private void ScatterPlotNodeModel_PortDisconnected(PortModel port) + { + // Clear UI when a input port is disconnected + if (port.PortType == PortType.Input && this.State == ElementState.Active) + { + Labels.Clear(); + XValues.Clear(); + YValues.Clear(); + Colors.Clear(); + + RaisePropertyChanged("DataUpdated"); + } + } + #endregion + + #region Databridge + // Use the VMDataBridge to safely retrieve our input values + + /// + /// Register the data bridge callback. + /// + protected override void OnBuilt() + { + base.OnBuilt(); + VMDataBridge.DataBridge.Instance.RegisterCallback(GUID.ToString(), DataBridgeCallback); + } + + /// + /// Callback method for DataBridge mechanism. + /// This callback only gets called when + /// - The AST is executed + /// - After the BuildOutputAST function is executed + /// - The AST is fully built + /// + /// The data passed through the data bridge. + private void DataBridgeCallback(object data) + { + // Grab input data which always returned as an ArrayList + var inputs = data as ArrayList; + + // Each of the list inputs are also returned as ArrayLists + var labels = inputs[0] as ArrayList; + var xValues = inputs[1] as ArrayList; + var yValues = inputs[2] as ArrayList; + var colors = inputs[3] as ArrayList; + + // Only continue if key/values match in length + if (labels.Count != xValues.Count || xValues.Count != yValues.Count || labels.Count < 1) + { + throw new Exception("Label and Values do not properly align in length."); + } + + // Clear current chart values + Labels = new List(); + XValues = new List>(); + YValues = new List>(); + Colors = new List(); + + // If color count doesn't match title count use random colors + if (colors == null || colors.Count == 0 || colors.Count != labels.Count) + { + // In case colors are not provided, we supply some from the default library of colors + Info(Dynamo.Wpf.Properties.CoreNodeModelWpfResources.ProvideDefaultColorsWarningMessage); + + for (var i = 0; i < labels.Count; i++) + { + var outputXValues = new List(); + var outputYValues = new List(); + + var unpackedXValues = xValues[i] as ArrayList; + var unpackedYValues = yValues[i] as ArrayList; + + for (var j = 0; j < unpackedXValues.Count; j++) + { + outputXValues.Add(Convert.ToDouble(unpackedXValues[j])); + outputYValues.Add(Convert.ToDouble(unpackedYValues[j])); + } + + Labels.Add((string)labels[i]); + XValues.Add(outputXValues); + YValues.Add(outputYValues); + + Color color = Utilities.Colors.GetColor(); + SolidColorBrush brush = new SolidColorBrush(color); + brush.Freeze(); + Colors.Add(brush); + } + + Utilities.Colors.ResetColors(); + } + // Else all inputs should be consistent in length + else + { + for (var i = 0; i < labels.Count; i++) + { + var outputXValues = new List(); + var outputYValues = new List(); + + var unpackedXValues = xValues[i] as ArrayList; + var unpackedYValues = yValues[i] as ArrayList; + + for (var j = 0; j < unpackedXValues.Count; j++) + { + outputXValues.Add(Convert.ToDouble(unpackedXValues[j])); + outputYValues.Add(Convert.ToDouble(unpackedYValues[j])); + } + + Labels.Add((string)labels[i]); + XValues.Add(outputXValues); + YValues.Add(outputYValues); + + var dynColor = (DSCore.Color)colors[i]; + var convertedColor = Color.FromArgb(dynColor.Alpha, dynColor.Red, dynColor.Green, dynColor.Blue); + SolidColorBrush brush = new SolidColorBrush(convertedColor); + brush.Freeze(); + Colors.Add(brush); + } + } + + // Notify UI the data has been modified + RaisePropertyChanged("DataUpdated"); + } + #endregion + + #region Methods + /// + /// BuildOutputAst is where the outputs of this node are calculated. + /// This method is used to do the work that a compiler usually does + /// by parsing the inputs List inputAstNodes into an abstract syntax tree. + /// + /// + /// + [IsVisibleInDynamoLibrary(false)] + public override IEnumerable BuildOutputAst(List inputAstNodes) + { + // WARNING!!! + // Do not throw an exception during AST creation. + + // If inputs are not connected return null + if (!InPorts[0].IsConnected || + !InPorts[1].IsConnected || + !InPorts[2].IsConnected) + { + return new[] + { + AstFactory.BuildAssignment(GetAstIdentifierForOutputIndex(0), AstFactory.BuildNullNode()), + }; + } + + AssociativeNode inputNode = AstFactory.BuildFunctionCall( + new Func, List>, List>, List, Dictionary>>>(ScatterPlotFunctions.GetNodeInput), + new List { inputAstNodes[0], inputAstNodes[1], inputAstNodes[2], inputAstNodes[3] } + ); + + return new[] + { + AstFactory.BuildAssignment(GetAstIdentifierForOutputIndex(0), inputNode), + AstFactory.BuildAssignment( + AstFactory.BuildIdentifier(AstIdentifierBase + "_dummy"), + VMDataBridge.DataBridge.GenerateBridgeDataAst(GUID.ToString(), AstFactory.BuildExprList(inputAstNodes) + ) + ), + }; + } + #endregion + + #region Dispose + + /// + /// Finalize the usage of this Node + /// + public override void Dispose() + { + PortDisconnected -= ScatterPlotNodeModel_PortDisconnected; + VMDataBridge.DataBridge.Instance.UnregisterCallback(GUID.ToString()); + } + + #endregion + } + + /// + /// View customizer for CustomNodeModel Node Model. + /// + public class ScatterPlotNodeView : INodeViewCustomization + { + private ScatterPlotControl scatterPlotControl; + + /// + /// At run-time, this method is called during the node + /// creation. Add custom UI element to the node view. + /// + /// The NodeModel representing the node's core logic. + /// The NodeView representing the node in the graph. + public void CustomizeView(ScatterPlotNodeModel model, NodeView nodeView) + { + scatterPlotControl = new ScatterPlotControl(model); + nodeView.inputGrid.Children.Add(scatterPlotControl); + + MenuItem exportImage = new MenuItem(); + exportImage.Header = "Export Chart as Image"; + exportImage.Click += ExportImage_Click; + + var contextMenu = (nodeView.Content as Grid).ContextMenu; + contextMenu.Items.Add(exportImage); + } + + private void ExportImage_Click(object sender, RoutedEventArgs e) + { + Export.ToPng(scatterPlotControl.ScatterPlot); + } + + /// + /// Here you can do any cleanup you require if you've assigned callbacks for particular + /// UI events on your node. + /// + public void Dispose() { } + } +} diff --git a/src/Libraries/CoreNodeModelsWpf/Charts/Utilities/Colors.cs b/src/Libraries/CoreNodeModelsWpf/Charts/Utilities/Colors.cs new file mode 100644 index 00000000000..cd772a28d86 --- /dev/null +++ b/src/Libraries/CoreNodeModelsWpf/Charts/Utilities/Colors.cs @@ -0,0 +1,41 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows.Media; +using Dynamo.UI; + +namespace CoreNodeModelsWpf.Charts.Utilities +{ + /// + /// Helper class providing colors based on the Dynamo color palette + /// The color palette is defined inside the LiveChartDictionary resource + /// + public static class Colors + { + private static int current = 0; + + private static List _colors => SharedDictionaryManager.LiveChartDictionary["ColorsCollection"] as List; + + /// + /// Cycles through all the colors inside the palette returning the next color + /// Loops through all colors then starts back at 0 + /// + /// + public static Color GetColor() + { + int index = current++; + if (current == _colors.Count) current = 0; + return _colors[index]; + } + + /// + /// Resets the color sequence for consistency + /// + public static void ResetColors() + { + current = 0; + } + } +} diff --git a/src/Libraries/CoreNodeModelsWpf/Charts/Utilities/Export.cs b/src/Libraries/CoreNodeModelsWpf/Charts/Utilities/Export.cs new file mode 100644 index 00000000000..02956a48c3e --- /dev/null +++ b/src/Libraries/CoreNodeModelsWpf/Charts/Utilities/Export.cs @@ -0,0 +1,41 @@ +using System; +using System.Drawing.Imaging; +using System.IO; +using System.Windows.Controls; +using System.Windows.Media; +using System.Windows.Media.Imaging; +using Microsoft.Win32; + +namespace CoreNodeModelsWpf.Charts.Utilities +{ + public static class Export + { + public static void ToPng(UserControl control) + { + RenderTargetBitmap rtb = new RenderTargetBitmap((int)control.ActualWidth, (int)control.ActualHeight, 96, 96, PixelFormats.Pbgra32); + rtb.Render(control); + + PngBitmapEncoder png = new PngBitmapEncoder(); + png.Frames.Add(BitmapFrame.Create(rtb)); + MemoryStream stream = new MemoryStream(); + png.Save(stream); + var image = System.Drawing.Image.FromStream(stream); + + SaveFileDialog dialog = new SaveFileDialog(); + dialog.FileName = "NodeModelChart"; // Default file name + dialog.DefaultExt = ".png"; // Default file extension + dialog.Filter = "Image files (*.png) | *.png"; // Filter files by extension + + // Show save file dialog box + Nullable result = dialog.ShowDialog(); + + // Process save file dialog box results + if (result == true) + { + // Save document + string filename = dialog.FileName; + image.Save(filename, ImageFormat.Png); + } + } + } +} diff --git a/src/Libraries/CoreNodeModelsWpf/Charts/XYLineChartNodeModel.cs b/src/Libraries/CoreNodeModelsWpf/Charts/XYLineChartNodeModel.cs new file mode 100644 index 00000000000..bbb5acd8bd3 --- /dev/null +++ b/src/Libraries/CoreNodeModelsWpf/Charts/XYLineChartNodeModel.cs @@ -0,0 +1,307 @@ +using System; +using System.Collections; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows; +using System.Windows.Controls; +using System.Windows.Media; +using Autodesk.DesignScript.Runtime; +using CoreNodes.ChartHelpers; +using CoreNodeModelsWpf.Charts.Controls; +using CoreNodeModelsWpf.Charts.Utilities; +using Dynamo.Controls; +using Dynamo.Graph.Nodes; +using Dynamo.Wpf; +using Newtonsoft.Json; +using ProtoCore.AST.AssociativeAST; +using DynamoServices; +using Dynamo.Wpf.Properties; + +namespace CoreNodeModelsWpf.Charts +{ + [IsDesignScriptCompatible] + [NodeName("XY Line Plot")] + [NodeCategory("Display.Charts.Create")] + [NodeDescription("ChartsXYLineChartDescription", typeof(CoreNodeModelWpfResources))] + [NodeSearchTags("ChartsXYLineChartSearchTags", typeof(CoreNodeModelWpfResources))] + + [InPortTypes("List", "List>", "List>", "List")] + [OutPortTypes("Dictionary")] + [AlsoKnownAs("CoreNodeModelsWpf.Charts.XYLinePlot")] + public class XYLineChartNodeModel : NodeModel + { + #region Properties + private Random rnd = new Random(); + + /// + /// A list of Labels for each line to be plotted. + /// + public List Labels { get; set; } + + /// + /// List of lists each containing double values representing x-coordinates. + /// + public List> XValues { get; set; } + + /// + /// List of lists each containing double values representing y-coordinates. + /// + public List> YValues { get; set; } + + /// + /// A list of color values, one for each plotted line. + /// + public List Colors { get; set; } + #endregion + + #region Constructors + /// + /// Instantiate a new NodeModel instance. + /// + public XYLineChartNodeModel() + { + InPorts.Add(new PortModel(PortType.Input, this, new PortData("labels", "A list of string labels for each line to be plotted"))); + InPorts.Add(new PortModel(PortType.Input, this, new PortData("x-values", "A list of lists each containing double values representing x-coordinates for each point in a line."))); + InPorts.Add(new PortModel(PortType.Input, this, new PortData("y-values", "A list of lists each containing double values representing y-coordinates for each point in a line."))); + InPorts.Add(new PortModel(PortType.Input, this, new PortData("colors", "A list of colors for each line in the line plot."))); + + OutPorts.Add(new PortModel(PortType.Output, this, new PortData("labels:values", "Dictionary containing label:value key-pairs"))); + + RegisterAllPorts(); + + PortDisconnected += XYLineChartNodeModel_PortDisconnected; + + ArgumentLacing = LacingStrategy.Disabled; + } + + [JsonConstructor] + /// + /// Instantiate a new NodeModel instance. + /// + public XYLineChartNodeModel(IEnumerable inPorts, IEnumerable outPorts) : base(inPorts, outPorts) + { + PortDisconnected += XYLineChartNodeModel_PortDisconnected; + } + #endregion + + #region Events + private void XYLineChartNodeModel_PortDisconnected(PortModel port) + { + // Clear UI when a input port is disconnected + if (port.PortType == PortType.Input && this.State == ElementState.Active) + { + Labels.Clear(); + XValues.Clear(); + YValues.Clear(); + Colors.Clear(); + + RaisePropertyChanged("DataUpdated"); + } + } + #endregion + + #region Databridge + // Use the VMDataBridge to safely retrieve our input values + + /// + /// Register the data bridge callback. + /// + protected override void OnBuilt() + { + base.OnBuilt(); + VMDataBridge.DataBridge.Instance.RegisterCallback(GUID.ToString(), DataBridgeCallback); + } + + /// + /// Callback method for DataBridge mechanism. + /// This callback only gets called when + /// - The AST is executed + /// - After the BuildOutputAST function is executed + /// - The AST is fully built + /// + /// The data passed through the data bridge. + private void DataBridgeCallback(object data) + { + // Grab input data which always returned as an ArrayList + var inputs = data as ArrayList; + + // Each of the list inputs are also returned as ArrayLists + var labels = inputs[0] as ArrayList; + var xValues = inputs[1] as ArrayList; + var yValues = inputs[2] as ArrayList; + var colors = inputs[3] as ArrayList; + + // Only continue if key/values match in length + if (labels.Count != xValues.Count || xValues.Count != yValues.Count || labels.Count < 1) + { + throw new Exception("Label and Values do not properly align in length."); + } + + // Clear current chart values + Labels = new List(); + XValues = new List>(); + YValues = new List>(); + Colors = new List(); + + // If color count doesn't match title count use random colors + if (colors == null || colors.Count == 0 || colors.Count != labels.Count) + { + // In case colors are not provided, we supply some from the default library of colors + Info(Dynamo.Wpf.Properties.CoreNodeModelWpfResources.ProvideDefaultColorsWarningMessage); + + for (var i = 0; i < labels.Count; i++) + { + var outputXValues = new List(); + var outputYValues = new List(); + + var unpackedXValues = xValues[i] as ArrayList; + var unpackedYValues = yValues[i] as ArrayList; + + for (var j = 0; j < unpackedXValues.Count; j++) + { + outputXValues.Add(Convert.ToDouble(unpackedXValues[j])); + outputYValues.Add(Convert.ToDouble(unpackedYValues[j])); + } + + Labels.Add((string)labels[i]); + XValues.Add(outputXValues); + YValues.Add(outputYValues); + + Color color = Utilities.Colors.GetColor(); + SolidColorBrush brush = new SolidColorBrush(color); + brush.Freeze(); + Colors.Add(brush); + } + + Utilities.Colors.ResetColors(); + } + // Else all inputs should be consistent in length + else + { + for (var i = 0; i < labels.Count; i++) + { + var outputXValues = new List(); + var outputYValues = new List(); + + var unpackedXValues = xValues[i] as ArrayList; + var unpackedYValues = yValues[i] as ArrayList; + + for (var j = 0; j < unpackedXValues.Count; j++) + { + outputXValues.Add(Convert.ToDouble(unpackedXValues[j])); + outputYValues.Add(Convert.ToDouble(unpackedYValues[j])); + } + + Labels.Add((string)labels[i]); + XValues.Add(outputXValues); + YValues.Add(outputYValues); + + var dynColor = (DSCore.Color)colors[i]; + var convertedColor = Color.FromArgb(dynColor.Alpha, dynColor.Red, dynColor.Green, dynColor.Blue); + SolidColorBrush brush = new SolidColorBrush(convertedColor); + brush.Freeze(); + Colors.Add(brush); + } + } + + // Notify UI the data has been modified + RaisePropertyChanged("DataUpdated"); + } + #endregion + + #region Methods + /// + /// BuildOutputAst is where the outputs of this node are calculated. + /// This method is used to do the work that a compiler usually does + /// by parsing the inputs List inputAstNodes into an abstract syntax tree. + /// + /// + /// + [IsVisibleInDynamoLibrary(false)] + public override IEnumerable BuildOutputAst(List inputAstNodes) + { + // WARNING!!! + // Do not throw an exception during AST creation. + + // If inputs are not connected return null + if (!InPorts[0].IsConnected || + !InPorts[1].IsConnected || + !InPorts[2].IsConnected) + { + return new[] + { + AstFactory.BuildAssignment(GetAstIdentifierForOutputIndex(0), AstFactory.BuildNullNode()), + }; + } + + AssociativeNode inputNode = AstFactory.BuildFunctionCall( + new Func, List>, List>, List, Dictionary>>>(XYLineChartFunctions.GetNodeInput), + new List { inputAstNodes[0], inputAstNodes[1], inputAstNodes[2], inputAstNodes[3] } + ); + + return new[] + { + AstFactory.BuildAssignment(GetAstIdentifierForOutputIndex(0), inputNode), + AstFactory.BuildAssignment( + AstFactory.BuildIdentifier(AstIdentifierBase + "_dummy"), + VMDataBridge.DataBridge.GenerateBridgeDataAst(GUID.ToString(), AstFactory.BuildExprList(inputAstNodes) + ) + ), + }; + } + #endregion + + #region Dispose + + /// + /// Finalize the usage of this Node + /// + public override void Dispose() + { + PortDisconnected -= XYLineChartNodeModel_PortDisconnected; + VMDataBridge.DataBridge.Instance.UnregisterCallback(GUID.ToString()); + } + + #endregion + } + + /// + /// View customizer for CustomNodeModel Node Model. + /// + public class XYLineChartNodeView : INodeViewCustomization + { + private XYLineChartControl xyLineChartControl; + + /// + /// At run-time, this method is called during the node + /// creation. Add custom UI element to the node view. + /// + /// The NodeModel representing the node's core logic. + /// The NodeView representing the node in the graph. + public void CustomizeView(XYLineChartNodeModel model, NodeView nodeView) + { + xyLineChartControl = new XYLineChartControl(model); + nodeView.inputGrid.Children.Add(xyLineChartControl); + + MenuItem exportImage = new MenuItem(); + exportImage.Header = "Export Chart as Image"; + exportImage.Click += ExportImage_Click; + + var contextMenu = (nodeView.Content as Grid).ContextMenu; + contextMenu.Items.Add(exportImage); + } + + private void ExportImage_Click(object sender, RoutedEventArgs e) + { + Export.ToPng(xyLineChartControl.XYLineChart); + } + + /// + /// Here you can do any cleanup you require if you've assigned callbacks for particular + /// UI events on your node. + /// + public void Dispose() { } + } +} diff --git a/src/Libraries/CoreNodeModelsWpf/CoreNodeModelsWpf.csproj b/src/Libraries/CoreNodeModelsWpf/CoreNodeModelsWpf.csproj index ed58160674e..0e597d58fb8 100644 --- a/src/Libraries/CoreNodeModelsWpf/CoreNodeModelsWpf.csproj +++ b/src/Libraries/CoreNodeModelsWpf/CoreNodeModelsWpf.csproj @@ -1,4 +1,4 @@ - + @@ -40,6 +40,8 @@ runtime + + $(PkgExtended_Wpf_Toolkit)\lib\net40\Xceed.Wpf.Toolkit.dll True @@ -91,6 +93,14 @@ MSBuild:Compile + + + + + + + + True @@ -119,7 +129,36 @@ CoreNodeModelWpfResources.Designer.cs + + + $(DefaultXamlRuntime) + + + $(DefaultXamlRuntime) + + + $(DefaultXamlRuntime) + + + $(DefaultXamlRuntime) + + + $(DefaultXamlRuntime) + + + $(DefaultXamlRuntime) + + + + + + + + + + + \ No newline at end of file diff --git a/src/Libraries/CoreNodeModelsWpf/CoreNodeModelsWpfImages.resx b/src/Libraries/CoreNodeModelsWpf/CoreNodeModelsWpfImages.resx new file mode 100644 index 00000000000..870c3f061f0 --- /dev/null +++ b/src/Libraries/CoreNodeModelsWpf/CoreNodeModelsWpfImages.resx @@ -0,0 +1,183 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + + + 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 + + + + diff --git a/src/Libraries/CoreNodeModelsWpf/Properties/CoreNodeModelWpfResources.Designer.cs b/src/Libraries/CoreNodeModelsWpf/Properties/CoreNodeModelWpfResources.Designer.cs index 0d7dd011c96..24ecd2bb2db 100644 --- a/src/Libraries/CoreNodeModelsWpf/Properties/CoreNodeModelWpfResources.Designer.cs +++ b/src/Libraries/CoreNodeModelsWpf/Properties/CoreNodeModelWpfResources.Designer.cs @@ -60,6 +60,114 @@ internal CoreNodeModelWpfResources() { } } + /// + /// Looks up a localized string similar to Create a new Bar Chart.. + /// + public static string ChartsBarChartDescription { + get { + return ResourceManager.GetString("ChartsBarChartDescription", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to CoreNodeModelsWpf.Charts.BarChart;Bar Chart;barchart. + /// + public static string ChartsBarChartSearchTags { + get { + return ResourceManager.GetString("ChartsBarChartSearchTags", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Create a new Basic Line Chart.. + /// + public static string ChartsBasicLineChartDescription { + get { + return ResourceManager.GetString("ChartsBasicLineChartDescription", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to CoreNodeModelsWpf.Charts.Index-ValueLinePlot;Index-Value Line Plot;indexvaluelineplot. + /// + public static string ChartsBasicLineChartSearchTags { + get { + return ResourceManager.GetString("ChartsBasicLineChartSearchTags", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Create a heat series plot.. + /// + public static string ChartsHeatSeriesDescription { + get { + return ResourceManager.GetString("ChartsHeatSeriesDescription", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to CoreNodeModelsWpf.Charts.HeatSeriesPlot;Heat Series Plot;heatseriesplot. + /// + public static string ChartsHeatSeriesSearchTags { + get { + return ResourceManager.GetString("ChartsHeatSeriesSearchTags", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Create a new Pie Chart.. + /// + public static string ChartsPieChartDescription { + get { + return ResourceManager.GetString("ChartsPieChartDescription", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to CoreNodeModelsWpf.Charts.PieChart;Pie Chart; piechart. + /// + public static string ChartsPieChartSearchTags { + get { + return ResourceManager.GetString("ChartsPieChartSearchTags", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Create a scatter plot.. + /// + public static string ChartsScatterPlotDescription { + get { + return ResourceManager.GetString("ChartsScatterPlotDescription", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to CoreNodeModelsWpf.Charts.ScatterPlot;Scatter Plot;scatterplot. + /// + public static string ChartsScatterPlotSearchTags { + get { + return ResourceManager.GetString("ChartsScatterPlotSearchTags", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Create a new XY line plot.. + /// + public static string ChartsXYLineChartDescription { + get { + return ResourceManager.GetString("ChartsXYLineChartDescription", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to CoreNodeModelsWpf.Charts.XYLinePlot;XY Line Plot;xylineplot. + /// + public static string ChartsXYLineChartSearchTags { + get { + return ResourceManager.GetString("ChartsXYLineChartSearchTags", resourceCulture); + } + } + /// /// Looks up a localized string similar to Advanced. /// @@ -122,5 +230,23 @@ public static string LblValue { return ResourceManager.GetString("LblValue", resourceCulture); } } + + /// + /// Looks up a localized string similar to Default colors are used. To define custom colors, provide an equal number of colors and labels inputs.. + /// + public static string ProvideDefaultColorsWarningMessage { + get { + return ResourceManager.GetString("ProvideDefaultColorsWarningMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Drag to modify the size of the chart. + /// + public static string ResizeThumbToolTip { + get { + return ResourceManager.GetString("ResizeThumbToolTip", resourceCulture); + } + } } } diff --git a/src/Libraries/CoreNodeModelsWpf/Properties/CoreNodeModelWpfResources.en-US.resx b/src/Libraries/CoreNodeModelsWpf/Properties/CoreNodeModelWpfResources.en-US.resx index a0ae26f9384..b702b5511b5 100644 --- a/src/Libraries/CoreNodeModelsWpf/Properties/CoreNodeModelWpfResources.en-US.resx +++ b/src/Libraries/CoreNodeModelsWpf/Properties/CoreNodeModelWpfResources.en-US.resx @@ -117,6 +117,42 @@ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + Create a new Bar Chart. + + + CoreNodeModelsWpf.Charts.BarChart;Bar Chart;barchart + + + Create a new Basic Line Chart. + + + CoreNodeModelsWpf.Charts.Index-ValueLinePlot;Index-Value Line Plot;indexvaluelineplot + + + Create a heat series plot. + + + CoreNodeModelsWpf.Charts.HeatSeriesPlot;Heat Series Plot;heatseriesplot + + + Create a new Pie Chart. + + + CoreNodeModelsWpf.Charts.PieChart;Pie Chart; piechart + + + Create a scatter plot. + + + CoreNodeModelsWpf.Charts.ScatterPlot;Scatter Plot;scatterplot + + + Create a new XY line plot. + + + CoreNodeModelsWpf.Charts.XYLinePlot;XY Line Plot;xylineplot + Advanced @@ -138,4 +174,10 @@ Value + + Default colors are used. To define custom colors, provide an equal number of colors and labels inputs. + + + Drag to modify the size of the chart + \ No newline at end of file diff --git a/src/Libraries/CoreNodeModelsWpf/Properties/CoreNodeModelWpfResources.resx b/src/Libraries/CoreNodeModelsWpf/Properties/CoreNodeModelWpfResources.resx index a0ae26f9384..b702b5511b5 100644 --- a/src/Libraries/CoreNodeModelsWpf/Properties/CoreNodeModelWpfResources.resx +++ b/src/Libraries/CoreNodeModelsWpf/Properties/CoreNodeModelWpfResources.resx @@ -117,6 +117,42 @@ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + Create a new Bar Chart. + + + CoreNodeModelsWpf.Charts.BarChart;Bar Chart;barchart + + + Create a new Basic Line Chart. + + + CoreNodeModelsWpf.Charts.Index-ValueLinePlot;Index-Value Line Plot;indexvaluelineplot + + + Create a heat series plot. + + + CoreNodeModelsWpf.Charts.HeatSeriesPlot;Heat Series Plot;heatseriesplot + + + Create a new Pie Chart. + + + CoreNodeModelsWpf.Charts.PieChart;Pie Chart; piechart + + + Create a scatter plot. + + + CoreNodeModelsWpf.Charts.ScatterPlot;Scatter Plot;scatterplot + + + Create a new XY line plot. + + + CoreNodeModelsWpf.Charts.XYLinePlot;XY Line Plot;xylineplot + Advanced @@ -138,4 +174,10 @@ Value + + Default colors are used. To define custom colors, provide an equal number of colors and labels inputs. + + + Drag to modify the size of the chart + \ No newline at end of file diff --git a/src/Libraries/CoreNodes/ChartHelpers/BarChartFunctions.cs b/src/Libraries/CoreNodes/ChartHelpers/BarChartFunctions.cs new file mode 100644 index 00000000000..de93f18b7cb --- /dev/null +++ b/src/Libraries/CoreNodes/ChartHelpers/BarChartFunctions.cs @@ -0,0 +1,50 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Autodesk.DesignScript.Runtime; + +namespace CoreNodes.ChartHelpers +{ + public class BarChartFunctions + { + private BarChartFunctions() { } + + [IsVisibleInDynamoLibrary(false)] + public static Dictionary> GetNodeInput(List labels, List> values, List colors) + { + var output = new Dictionary>(); + + if (labels.Count != values.Count) + { + return output; + } + + for (var i = 0; i < labels.Count; i++) + { + output.Add(labels[i], values[i]); + } + + return output; + } + + [IsVisibleInDynamoLibrary(false)] + public static Dictionary GetNodeInput(List labels, List values, List colors) + { + var output = new Dictionary(); + + if (labels.Count != values.Count) + { + return output; + } + + for (var i = 0; i < labels.Count; i++) + { + output.Add(labels[i], values[i]); + } + + return output; + } + } +} diff --git a/src/Libraries/CoreNodes/ChartHelpers/BasicLineChartFunctions.cs b/src/Libraries/CoreNodes/ChartHelpers/BasicLineChartFunctions.cs new file mode 100644 index 00000000000..a6df0247b21 --- /dev/null +++ b/src/Libraries/CoreNodes/ChartHelpers/BasicLineChartFunctions.cs @@ -0,0 +1,32 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Autodesk.DesignScript.Runtime; + +namespace CoreNodes.ChartHelpers +{ + public class BasicLineChartFunctions + { + private BasicLineChartFunctions() { } + + [IsVisibleInDynamoLibrary(false)] + public static Dictionary> GetNodeInput(List titles, List> values, List colors) + { + var output = new Dictionary>(); + + if (titles.Count != values.Count) + { + return output; + } + + for (var i = 0; i < titles.Count; i++) + { + output.Add(titles[i], values[i]); + } + + return output; + } + } +} diff --git a/src/Libraries/CoreNodes/ChartHelpers/HeatSeriesFunctions.cs b/src/Libraries/CoreNodes/ChartHelpers/HeatSeriesFunctions.cs new file mode 100644 index 00000000000..b14313985f1 --- /dev/null +++ b/src/Libraries/CoreNodes/ChartHelpers/HeatSeriesFunctions.cs @@ -0,0 +1,32 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Autodesk.DesignScript.Runtime; + +namespace CoreNodes.ChartHelpers +{ + public class HeatSeriesFunctions + { + private HeatSeriesFunctions() { } + + [IsVisibleInDynamoLibrary(false)] + public static Dictionary> GetNodeInput(List xLabels, List yLabels, List> values, List colors) + { + if (xLabels.Count != values.Count && xLabels.Count > 0) + { + return null; + } + + var output = new Dictionary>(); + + for (var i = 0; i < xLabels.Count; i++) + { + output.Add(xLabels[i], values[i]); + } + + return output; + } + } +} diff --git a/src/Libraries/CoreNodes/ChartHelpers/PieChartFunctions.cs b/src/Libraries/CoreNodes/ChartHelpers/PieChartFunctions.cs new file mode 100644 index 00000000000..129d1176188 --- /dev/null +++ b/src/Libraries/CoreNodes/ChartHelpers/PieChartFunctions.cs @@ -0,0 +1,35 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Autodesk.DesignScript.Runtime; + +namespace CoreNodes.ChartHelpers +{ + public class PieChartFunctions + { + private PieChartFunctions() + { + } + + [IsVisibleInDynamoLibrary(false)] + public static Dictionary GetNodeInput(List labels, List values, + List colors) + { + var output = new Dictionary(); + + if (labels.Count != values.Count) + { + return output; + } + + for (var i = 0; i < labels.Count; i++) + { + output.Add(labels[i], values[i]); + } + + return output; + } + } +} diff --git a/src/Libraries/CoreNodes/ChartHelpers/ScatterPlotFunctions.cs b/src/Libraries/CoreNodes/ChartHelpers/ScatterPlotFunctions.cs new file mode 100644 index 00000000000..94901a182f5 --- /dev/null +++ b/src/Libraries/CoreNodes/ChartHelpers/ScatterPlotFunctions.cs @@ -0,0 +1,35 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Autodesk.DesignScript.Runtime; + +namespace CoreNodes.ChartHelpers +{ + public class ScatterPlotFunctions + { + private ScatterPlotFunctions() { } + + [IsVisibleInDynamoLibrary(false)] + public static Dictionary>> GetNodeInput(List titles, List> xValues, List> yValues, List colors) + { + var output = new Dictionary>>(); + + if (titles.Count != xValues.Count || xValues.Count != yValues.Count) + { + return output; + } + + for (var i = 0; i < titles.Count; i++) + { + var coordinates = new Dictionary>(); + coordinates.Add("X", xValues[i]); + coordinates.Add("Y", yValues[i]); + output.Add(titles[i], coordinates); + } + + return output; + } + } +} diff --git a/src/Libraries/CoreNodes/ChartHelpers/XYLineChartFunctions.cs b/src/Libraries/CoreNodes/ChartHelpers/XYLineChartFunctions.cs new file mode 100644 index 00000000000..2dac51af106 --- /dev/null +++ b/src/Libraries/CoreNodes/ChartHelpers/XYLineChartFunctions.cs @@ -0,0 +1,35 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Autodesk.DesignScript.Runtime; + +namespace CoreNodes.ChartHelpers +{ + public class XYLineChartFunctions + { + private XYLineChartFunctions() { } + + [IsVisibleInDynamoLibrary(false)] + public static Dictionary>> GetNodeInput(List titles, List> xValues, List> yValues, List colors) + { + var output = new Dictionary>>(); + + if (titles.Count != xValues.Count || xValues.Count != yValues.Count) + { + return output; + } + + for (var i = 0; i < titles.Count; i++) + { + var coordinates = new Dictionary>(); + coordinates.Add("X", xValues[i]); + coordinates.Add("Y", yValues[i]); + output.Add(titles[i], coordinates); + } + + return output; + } + } +} diff --git a/src/LibraryViewExtensionWebView2/web/library/layoutSpecs.json b/src/LibraryViewExtensionWebView2/web/library/layoutSpecs.json index 7b0c36e8a06..4af5af4d265 100644 --- a/src/LibraryViewExtensionWebView2/web/library/layoutSpecs.json +++ b/src/LibraryViewExtensionWebView2/web/library/layoutSpecs.json @@ -920,89 +920,115 @@ "path": "Analysis.Analysis.Label" } ], - "childElements": [ - { - "text": "Color", - "iconUrl": "", - "elementType": "group", - "include": [ - { - "path": "DSCoreNodes.DSCore.Color.Red" - }, - { - "path": "DSCoreNodes.DSCore.Color.Green" - }, - { - "path": "DSCoreNodes.DSCore.Color.Blue" - }, - { - "path": "DSCoreNodes.DSCore.Color.Alpha" - }, - { - "path": "DSCoreNodes.DSCore.Color.ByARGB" - }, - { - "path": "DSCoreNodes.DSCore.Color.Brightness" - }, - { - "path": "DSCoreNodes.DSCore.Color.Saturation" - }, - { - "path": "DSCoreNodes.DSCore.Color.Hue" - }, - { - "path": "DSCoreNodes.DSCore.Color.Components" - }, - { - "path": "DSCoreNodes.DSCore.Color.Add" - }, - { - "path": "DSCoreNodes.DSCore.Color.Multiply" - }, - { - "path": "DSCoreNodes.DSCore.Color.Divide" - }, - { - "path": "Core.Color.Color Palette" + "childElements": [ + { + "text": "Color", + "iconUrl": "", + "elementType": "group", + "include": [ + { + "path": "DSCoreNodes.DSCore.Color.Red" + }, + { + "path": "DSCoreNodes.DSCore.Color.Green" + }, + { + "path": "DSCoreNodes.DSCore.Color.Blue" + }, + { + "path": "DSCoreNodes.DSCore.Color.Alpha" + }, + { + "path": "DSCoreNodes.DSCore.Color.ByARGB" + }, + { + "path": "DSCoreNodes.DSCore.Color.Brightness" + }, + { + "path": "DSCoreNodes.DSCore.Color.Saturation" + }, + { + "path": "DSCoreNodes.DSCore.Color.Hue" + }, + { + "path": "DSCoreNodes.DSCore.Color.Components" + }, + { + "path": "DSCoreNodes.DSCore.Color.Add" + }, + { + "path": "DSCoreNodes.DSCore.Color.Multiply" + }, + { + "path": "DSCoreNodes.DSCore.Color.Divide" + }, + { + "path": "Core.Color.Color Palette" + } + ], + "childElements": [] + }, + { + "text": "Color Range", + "iconUrl": "", + "elementType": "group", + "include": [ + { + "path": "Core.Color.Color Range" + }, + { + "path": "DSCoreNodes.DSCore.ColorRange.ByColorsAndParameters" + }, + { + "path": "DSCoreNodes.DSCore.ColorRange.GetColorAtParameter" + } + ], + "childElements": [] + }, + { + "text": "Charts", + "iconUrl": "", + "elementType": "group", + "include": [ + { + "path": "Display.Charts.XY Line Plot" + }, + { + "path": "Display.Charts.Scatter Plot" + }, + { + "path": "Display.Charts.Pie Chart" + }, + { + "path": "Display.Charts.Heat Series Plot" + }, + { + "path": "Display.Charts.Index-Value Line Plot" + }, + { + "path": "Display.Charts.Bar Chart" + } + ], + "childElements": [] + }, + { + "text": "Watch", + "iconUrl": "", + "elementType": "group", + "include": [ + { + "path": "Core.View.Watch" + }, + { + "path": "Core.View.Watch Image" + }, + { + "path": "Core.View.Watch 3D" + } + ], + "childElements": [] } - ], - "childElements": [] - }, - { - "text": "Color Range", - "iconUrl": "", - "elementType": "group", - "include": [ - { - "path": "Core.Color.Color Range" - }, - { - "path": "DSCoreNodes.DSCore.ColorRange.ByColorsAndParameters" - }, - { - "path": "DSCoreNodes.DSCore.ColorRange.GetColorAtParameter" - } - ], - "childElements": [] - }, - { - "text": "Watch", - "iconUrl": "", - "elementType": "group", - "include": [ - { - "path": "Core.View.Watch" - }, - { - "path": "Core.View.Watch Image" - }, - { - "path": "Core.View.Watch 3D" - } - ], - "childElements": [] - } - ] + ] }, { "text": "ImportExport", diff --git a/src/Resources/Display/LargeIcons/Display.Charts.BarChart.Large.png b/src/Resources/Display/LargeIcons/Display.Charts.BarChart.Large.png new file mode 100644 index 00000000000..0c84c7fe257 Binary files /dev/null and b/src/Resources/Display/LargeIcons/Display.Charts.BarChart.Large.png differ diff --git a/src/Resources/Display/LargeIcons/Display.Charts.HeatedSeriesPlot.Large.png b/src/Resources/Display/LargeIcons/Display.Charts.HeatedSeriesPlot.Large.png new file mode 100644 index 00000000000..bf1ee517c39 Binary files /dev/null and b/src/Resources/Display/LargeIcons/Display.Charts.HeatedSeriesPlot.Large.png differ diff --git a/src/Resources/Display/LargeIcons/Display.Charts.IndexValuePlot.Large.png b/src/Resources/Display/LargeIcons/Display.Charts.IndexValuePlot.Large.png new file mode 100644 index 00000000000..11337aea26e Binary files /dev/null and b/src/Resources/Display/LargeIcons/Display.Charts.IndexValuePlot.Large.png differ diff --git a/src/Resources/Display/LargeIcons/Display.Charts.PieChart.Large.png b/src/Resources/Display/LargeIcons/Display.Charts.PieChart.Large.png new file mode 100644 index 00000000000..e76abc07523 Binary files /dev/null and b/src/Resources/Display/LargeIcons/Display.Charts.PieChart.Large.png differ diff --git a/src/Resources/Display/LargeIcons/Display.Charts.ScartterPlot.Large.png b/src/Resources/Display/LargeIcons/Display.Charts.ScartterPlot.Large.png new file mode 100644 index 00000000000..7ccc1503f12 Binary files /dev/null and b/src/Resources/Display/LargeIcons/Display.Charts.ScartterPlot.Large.png differ diff --git a/src/Resources/Display/LargeIcons/Display.Charts.XYLinePlot.Large.png b/src/Resources/Display/LargeIcons/Display.Charts.XYLinePlot.Large.png new file mode 100644 index 00000000000..0219a566c14 Binary files /dev/null and b/src/Resources/Display/LargeIcons/Display.Charts.XYLinePlot.Large.png differ diff --git a/src/Resources/Display/SmallIcons/Display.Charts.BarChart.Small.png b/src/Resources/Display/SmallIcons/Display.Charts.BarChart.Small.png new file mode 100644 index 00000000000..b3c02019528 Binary files /dev/null and b/src/Resources/Display/SmallIcons/Display.Charts.BarChart.Small.png differ diff --git a/src/Resources/Display/SmallIcons/Display.Charts.HeatedSeriesPlot.Small.png b/src/Resources/Display/SmallIcons/Display.Charts.HeatedSeriesPlot.Small.png new file mode 100644 index 00000000000..7811fcf2511 Binary files /dev/null and b/src/Resources/Display/SmallIcons/Display.Charts.HeatedSeriesPlot.Small.png differ diff --git a/src/Resources/Display/SmallIcons/Display.Charts.IndexValuePlot.Small.png b/src/Resources/Display/SmallIcons/Display.Charts.IndexValuePlot.Small.png new file mode 100644 index 00000000000..5eb91a8f42e Binary files /dev/null and b/src/Resources/Display/SmallIcons/Display.Charts.IndexValuePlot.Small.png differ diff --git a/src/Resources/Display/SmallIcons/Display.Charts.PieChart.Small.png b/src/Resources/Display/SmallIcons/Display.Charts.PieChart.Small.png new file mode 100644 index 00000000000..6b518f49ca7 Binary files /dev/null and b/src/Resources/Display/SmallIcons/Display.Charts.PieChart.Small.png differ diff --git a/src/Resources/Display/SmallIcons/Display.Charts.ScartterPlot.Small.png b/src/Resources/Display/SmallIcons/Display.Charts.ScartterPlot.Small.png new file mode 100644 index 00000000000..36ee6670728 Binary files /dev/null and b/src/Resources/Display/SmallIcons/Display.Charts.ScartterPlot.Small.png differ diff --git a/src/Resources/Display/SmallIcons/Display.Charts.XYLinePlot.Small.png b/src/Resources/Display/SmallIcons/Display.Charts.XYLinePlot.Small.png new file mode 100644 index 00000000000..9a23c7c9ae9 Binary files /dev/null and b/src/Resources/Display/SmallIcons/Display.Charts.XYLinePlot.Small.png differ diff --git a/test/DynamoCoreWpfTests/LiveChartsTests.cs b/test/DynamoCoreWpfTests/LiveChartsTests.cs new file mode 100644 index 00000000000..16a5fe6aa25 --- /dev/null +++ b/test/DynamoCoreWpfTests/LiveChartsTests.cs @@ -0,0 +1,219 @@ +using Dynamo.Graph.Workspaces; +using DynamoCoreWpfTests.Utility; +using NUnit.Framework; +using System; +using System.Linq; +using SystemTestServices; +using CoreNodeModelsWpf.Charts; +using Dynamo.Graph.Nodes; +using DynCmd = Dynamo.Models.DynamoModel; + +namespace DynamoCoreWpfTests +{ + [TestFixture] + class LiveChartsTests : SystemTestBase + { + private CodeBlockNodeModel CreateCodeBlockNode() + { + var cbn = new CodeBlockNodeModel(this.Model.LibraryServices); + var command = new DynCmd.CreateNodeCommand(cbn, 0, 0, true, false); + + this.Model.ExecuteCommand(command); + + Assert.IsNotNull(cbn); + return cbn; + } + + private void UpdateCodeBlockNodeContent(CodeBlockNodeModel cbn, string value) + { + var command = new DynCmd.UpdateModelValueCommand(Guid.Empty, cbn.GUID, "Code", value); + this.Model.ExecuteCommand(command); + } + + [Test] + public void LiveChartsBarChartCreationTest() + { + var homespace = Model.CurrentWorkspace as HomeWorkspaceModel; + Assert.NotNull(homespace, "The current workspace is not a HomeWorkspaceModel"); + + var chart = new BarChartNodeModel(); + Model.AddNodeToCurrentWorkspace(chart, true); + homespace.Run(); + Assert.DoesNotThrow(DispatcherUtil.DoEvents); + Assert.AreEqual(1, homespace.Nodes.Count()); + + string codeA = "[\"January\", \"February\", \"March\"];"; + string codeB = "[[4, 12, 34],[14, 22, 14],[15, 3, 6]];"; + + //This create a new Code Block node and update the content + var codeBlockNodeA = CreateCodeBlockNode(); + var codeBlockNodeB = CreateCodeBlockNode(); + UpdateCodeBlockNodeContent(codeBlockNodeA, @codeA); + UpdateCodeBlockNodeContent(codeBlockNodeB, @codeB); + + new Dynamo.Graph.Connectors.ConnectorModel(codeBlockNodeA.OutPorts.FirstOrDefault(), chart.InPorts[0], Guid.NewGuid()); + new Dynamo.Graph.Connectors.ConnectorModel(codeBlockNodeB.OutPorts.FirstOrDefault(), chart.InPorts[1], Guid.NewGuid()); + + homespace.Run(); + Assert.DoesNotThrow(DispatcherUtil.DoEvents); + Assert.AreEqual(2, homespace.Connectors.Count()); + } + + [Test] + public void LiveChartsBasicLineChartCreationTest() + { + var homespace = Model.CurrentWorkspace as HomeWorkspaceModel; + Assert.NotNull(homespace, "The current workspace is not a HomeWorkspaceModel"); + + var chart = new BasicLineChartNodeModel(); + Model.AddNodeToCurrentWorkspace(chart, true); + homespace.Run(); + Assert.DoesNotThrow(DispatcherUtil.DoEvents); + Assert.AreEqual(1, homespace.Nodes.Count()); + + string codeA = "[\"January\", \"February\", \"March\"];"; + string codeB = "[[2,53,14,45,6],[22,41,45,61,21],[34,51,34,65,2]];"; + + //This create a new Code Block node and update the content + var codeBlockNodeA = CreateCodeBlockNode(); + var codeBlockNodeB = CreateCodeBlockNode(); + UpdateCodeBlockNodeContent(codeBlockNodeA, @codeA); + UpdateCodeBlockNodeContent(codeBlockNodeB, @codeB); + + new Dynamo.Graph.Connectors.ConnectorModel(codeBlockNodeA.OutPorts.FirstOrDefault(), chart.InPorts[0], Guid.NewGuid()); + new Dynamo.Graph.Connectors.ConnectorModel(codeBlockNodeB.OutPorts.FirstOrDefault(), chart.InPorts[1], Guid.NewGuid()); + + homespace.Run(); + Assert.DoesNotThrow(DispatcherUtil.DoEvents); + Assert.AreEqual(2, homespace.Connectors.Count()); + } + + [Test] + public void LiveChartsHeatSeriesCreationTest() + { + var homespace = Model.CurrentWorkspace as HomeWorkspaceModel; + Assert.NotNull(homespace, "The current workspace is not a HomeWorkspaceModel"); + + var chart = new HeatSeriesNodeModel(); + Model.AddNodeToCurrentWorkspace(chart, true); + homespace.Run(); + Assert.DoesNotThrow(DispatcherUtil.DoEvents); + Assert.AreEqual(1, homespace.Nodes.Count()); + + string codeA = "[\"Item 1\",\"Item 2\",\"Item 3\",\"Item 4\",\"Item 5\",\"Item 6\"];"; + string codeB = "[\"January\",\"February\",\"March\",\"April\",\"May\",\"June\"];"; + string codeC = "[[1,2,3,4,2,1],[-12,12,4,-61,45,88],[4,4,5,5,16,-6],[-74,37,83,-262,54,44],[232,133,444,323,414,231],[332,122,98,89,89,78]];"; + + //This create a new Code Block node and update the content + var codeBlockNodeA = CreateCodeBlockNode(); + var codeBlockNodeB = CreateCodeBlockNode(); + var codeBlockNodeC = CreateCodeBlockNode(); + UpdateCodeBlockNodeContent(codeBlockNodeA, @codeA); + UpdateCodeBlockNodeContent(codeBlockNodeB, @codeB); + UpdateCodeBlockNodeContent(codeBlockNodeC, @codeC); + + new Dynamo.Graph.Connectors.ConnectorModel(codeBlockNodeA.OutPorts.FirstOrDefault(), chart.InPorts[0], Guid.NewGuid()); + new Dynamo.Graph.Connectors.ConnectorModel(codeBlockNodeB.OutPorts.FirstOrDefault(), chart.InPorts[1], Guid.NewGuid()); + new Dynamo.Graph.Connectors.ConnectorModel(codeBlockNodeC.OutPorts.FirstOrDefault(), chart.InPorts[2], Guid.NewGuid()); + + homespace.Run(); + Assert.DoesNotThrow(DispatcherUtil.DoEvents); + Assert.AreEqual(3, homespace.Connectors.Count()); + } + + [Test] + public void LiveChartsPieChartCreationTest() + { + var homespace = Model.CurrentWorkspace as HomeWorkspaceModel; + Assert.NotNull(homespace, "The current workspace is not a HomeWorkspaceModel"); + + var chart = new PieChartNodeModel(); + Model.AddNodeToCurrentWorkspace(chart, true); + homespace.Run(); + Assert.DoesNotThrow(DispatcherUtil.DoEvents); + Assert.AreEqual(1, homespace.Nodes.Count()); + + string codeA = "[\"January\", \"February\", \"March\"];"; + string codeB = "[4, 12, 34];"; + + //This create a new Code Block node and update the content + var codeBlockNodeA = CreateCodeBlockNode(); + var codeBlockNodeB = CreateCodeBlockNode(); + UpdateCodeBlockNodeContent(codeBlockNodeA, @codeA); + UpdateCodeBlockNodeContent(codeBlockNodeB, @codeB); + + new Dynamo.Graph.Connectors.ConnectorModel(codeBlockNodeA.OutPorts.FirstOrDefault(), chart.InPorts[0], Guid.NewGuid()); + new Dynamo.Graph.Connectors.ConnectorModel(codeBlockNodeB.OutPorts.FirstOrDefault(), chart.InPorts[1], Guid.NewGuid()); + + homespace.Run(); + Assert.DoesNotThrow(DispatcherUtil.DoEvents); + Assert.AreEqual(2, homespace.Connectors.Count()); + } + + [Test] + public void LiveChartsScatterPlotCreationTest() + { + var homespace = Model.CurrentWorkspace as HomeWorkspaceModel; + Assert.NotNull(homespace, "The current workspace is not a HomeWorkspaceModel"); + + var chart = new ScatterPlotNodeModel(); + Model.AddNodeToCurrentWorkspace(chart, true); + homespace.Run(); + Assert.DoesNotThrow(DispatcherUtil.DoEvents); + Assert.AreEqual(1, homespace.Nodes.Count()); + + string codeA = "[\"January\", \"February\", \"March\"];"; + string codeB = "[[70,20,10],[12,24,44],[35,5,16]];"; + string codeC = "[[30,50,40],[60,40,-13],[62,-3,28]];"; + + //This create a new Code Block node and update the content + var codeBlockNodeA = CreateCodeBlockNode(); + var codeBlockNodeB = CreateCodeBlockNode(); + var codeBlockNodeC = CreateCodeBlockNode(); + UpdateCodeBlockNodeContent(codeBlockNodeA, @codeA); + UpdateCodeBlockNodeContent(codeBlockNodeB, @codeB); + UpdateCodeBlockNodeContent(codeBlockNodeC, @codeC); + + new Dynamo.Graph.Connectors.ConnectorModel(codeBlockNodeA.OutPorts.FirstOrDefault(), chart.InPorts[0], Guid.NewGuid()); + new Dynamo.Graph.Connectors.ConnectorModel(codeBlockNodeB.OutPorts.FirstOrDefault(), chart.InPorts[1], Guid.NewGuid()); + new Dynamo.Graph.Connectors.ConnectorModel(codeBlockNodeC.OutPorts.FirstOrDefault(), chart.InPorts[2], Guid.NewGuid()); + + homespace.Run(); + Assert.DoesNotThrow(DispatcherUtil.DoEvents); + Assert.AreEqual(3, homespace.Connectors.Count()); + } + + [Test] + public void LiveChartsXYLineChartCreationTest() + { + var homespace = Model.CurrentWorkspace as HomeWorkspaceModel; + Assert.NotNull(homespace, "The current workspace is not a HomeWorkspaceModel"); + + var chart = new XYLineChartNodeModel(); + Model.AddNodeToCurrentWorkspace(chart, true); + homespace.Run(); + Assert.DoesNotThrow(DispatcherUtil.DoEvents); + Assert.AreEqual(1, homespace.Nodes.Count()); + + string codeA = "[\"January\", \"February\", \"March\"];"; + string codeB = "[[5,20,50],[12,24,44],[15,25,56]];"; + string codeC = "[[30,50,140],[160,40,43],[54,25,54]];"; + + //This create a new Code Block node and update the content + var codeBlockNodeA = CreateCodeBlockNode(); + var codeBlockNodeB = CreateCodeBlockNode(); + var codeBlockNodeC = CreateCodeBlockNode(); + UpdateCodeBlockNodeContent(codeBlockNodeA, @codeA); + UpdateCodeBlockNodeContent(codeBlockNodeB, @codeB); + UpdateCodeBlockNodeContent(codeBlockNodeC, @codeC); + + new Dynamo.Graph.Connectors.ConnectorModel(codeBlockNodeA.OutPorts.FirstOrDefault(), chart.InPorts[0], Guid.NewGuid()); + new Dynamo.Graph.Connectors.ConnectorModel(codeBlockNodeB.OutPorts.FirstOrDefault(), chart.InPorts[1], Guid.NewGuid()); + new Dynamo.Graph.Connectors.ConnectorModel(codeBlockNodeC.OutPorts.FirstOrDefault(), chart.InPorts[2], Guid.NewGuid()); + + homespace.Run(); + Assert.DoesNotThrow(DispatcherUtil.DoEvents); + Assert.AreEqual(3, homespace.Connectors.Count()); + } + } +}