Add installer script, prepare 2.0.0-alpha.1.
This commit is contained in:
parent
cb560a92d7
commit
405070fa1b
345
publish/setup-files/license.rtf
Executable file
345
publish/setup-files/license.rtf
Executable file
@ -0,0 +1,345 @@
|
|||||||
|
{\rtf1\adeflang1025\ansi\ansicpg1252\uc1\adeff41\deff0\stshfdbch31505\stshfloch31506\stshfhich31506\stshfbi31507\deflang1031\deflangfe1031\themelang1031\themelangfe0\themelangcs0{\fonttbl{\f0\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\f0\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}
|
||||||
|
{\f37\fbidi \fswiss\fcharset0\fprq2{\*\panose 020f0502020204030204}Calibri;}{\f40\fbidi \fswiss\fcharset128\fprq2{\*\panose 00000000000000000000}Liberation Sans{\*\falt Arial};}{\f41\fbidi \fswiss\fcharset0\fprq2{\*\panose 020b0502040204020203}Segoe UI;}
|
||||||
|
{\f43\fbidi \fswiss\fcharset128\fprq2{\*\panose 00000000000000000000}@Liberation Sans;}{\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 \froman\fcharset0\fprq2{\*\panose 02040503050406030204}Cambria;}
|
||||||
|
{\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;}{\f44\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}{\f45\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;}
|
||||||
|
{\f47\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}{\f48\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}{\f49\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}{\f50\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);}
|
||||||
|
{\f51\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}{\f52\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}{\f44\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}{\f45\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;}
|
||||||
|
{\f47\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}{\f48\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}{\f49\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}{\f50\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);}
|
||||||
|
{\f51\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}{\f52\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}{\f414\fbidi \fswiss\fcharset238\fprq2 Calibri CE;}{\f415\fbidi \fswiss\fcharset204\fprq2 Calibri Cyr;}
|
||||||
|
{\f417\fbidi \fswiss\fcharset161\fprq2 Calibri Greek;}{\f418\fbidi \fswiss\fcharset162\fprq2 Calibri Tur;}{\f421\fbidi \fswiss\fcharset186\fprq2 Calibri Baltic;}{\f422\fbidi \fswiss\fcharset163\fprq2 Calibri (Vietnamese);}
|
||||||
|
{\f454\fbidi \fswiss\fcharset238\fprq2 Segoe UI CE;}{\f455\fbidi \fswiss\fcharset204\fprq2 Segoe UI Cyr;}{\f457\fbidi \fswiss\fcharset161\fprq2 Segoe UI Greek;}{\f458\fbidi \fswiss\fcharset162\fprq2 Segoe UI Tur;}
|
||||||
|
{\f460\fbidi \fswiss\fcharset178\fprq2 Segoe UI (Arabic);}{\f461\fbidi \fswiss\fcharset186\fprq2 Segoe UI Baltic;}{\f462\fbidi \fswiss\fcharset163\fprq2 Segoe UI (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 \froman\fcharset238\fprq2 Cambria CE;}{\fhimajor\f31529\fbidi \froman\fcharset204\fprq2 Cambria Cyr;}{\fhimajor\f31531\fbidi \froman\fcharset161\fprq2 Cambria Greek;}{\fhimajor\f31532\fbidi \froman\fcharset162\fprq2 Cambria Tur;}
|
||||||
|
{\fhimajor\f31535\fbidi \froman\fcharset186\fprq2 Cambria Baltic;}{\fhimajor\f31536\fbidi \froman\fcharset163\fprq2 Cambria (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\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;}{\*\defchp
|
||||||
|
\fs22\loch\af31506\hich\af31506\dbch\af31505 }{\*\defpap \ql \li0\ri0\sa200\sl276\slmult1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 }\noqfpromote {\stylesheet{
|
||||||
|
\ql \li0\ri0\sa170\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 \rtlch\fcs1 \af41\afs22\alang1081 \ltrch\fcs0 \fs22\cf1\lang1031\langfe1031\kerning1\loch\f41\hich\af31506\dbch\af0\cgrid\langnp1031\langfenp1031 \snext0 \sqformat \spriority0 Normal;}{\*
|
||||||
|
\cs10 \additive \ssemihidden \sunhideused \spriority1 Default Paragraph Font;}{\*
|
||||||
|
\ts11\tsrowd\trftsWidthB3\trpaddl108\trpaddr108\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3\trcbpat1\trcfpat1\tblind0\tblindtype3\tsvertalt\tsbrdrt\tsbrdrl\tsbrdrb\tsbrdrr\tsbrdrdgl\tsbrdrdgr\tsbrdrh\tsbrdrv \ql \li0\ri0\sa200\sl276\slmult1
|
||||||
|
\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \rtlch\fcs1 \af31507\afs22\alang1025 \ltrch\fcs0 \fs22\lang1031\langfe1031\loch\f31506\hich\af31506\dbch\af31505\cgrid\langnp1031\langfenp1031 \snext11 \ssemihidden \sunhideused
|
||||||
|
Normal Table;}{\*\cs15 \additive \ul\cf9\lang255\langfe255\langnp255\langfenp255\ulc1 Internet Link;}{\s16\ql \li0\ri0\sb240\sa120\keepn\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 \rtlch\fcs1 \af40\afs28\alang1081 \ltrch\fcs0
|
||||||
|
\fs28\cf1\lang1031\langfe1031\kerning1\loch\f40\hich\af31506\dbch\af0\cgrid\langnp1031\langfenp1031 \sbasedon0 \snext17 Heading;}{\s17\ql \li0\ri0\sa140\sl288\slmult1\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 \rtlch\fcs1 \af41\afs22\alang1081
|
||||||
|
\ltrch\fcs0 \fs22\cf1\lang1031\langfe1031\kerning1\loch\f41\hich\af31506\dbch\af0\cgrid\langnp1031\langfenp1031 \sbasedon0 \snext17 Text Body;}{\s18\ql \li0\ri0\sa140\sl288\slmult1\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 \rtlch\fcs1
|
||||||
|
\af40\afs22\alang1081 \ltrch\fcs0 \fs22\cf1\lang1031\langfe1031\kerning1\loch\f40\hich\af31506\dbch\af0\cgrid\langnp1031\langfenp1031 \sbasedon17 \snext18 List;}{\s19\ql \li0\ri0\sb120\sa120\nowidctlpar\noline\wrapdefault\faauto\rin0\lin0\itap0
|
||||||
|
\rtlch\fcs1 \ai\af40\afs20\alang1081 \ltrch\fcs0 \i\fs20\cf1\lang1031\langfe1031\kerning1\loch\f40\hich\af31506\dbch\af0\cgrid\langnp1031\langfenp1031 \sbasedon0 \snext19 \sqformat caption;}{
|
||||||
|
\s20\ql \li0\ri0\sa170\nowidctlpar\noline\wrapdefault\faauto\rin0\lin0\itap0 \rtlch\fcs1 \af40\afs20\alang1081 \ltrch\fcs0 \fs20\cf1\lang1031\langfe1031\kerning1\loch\f40\hich\af31506\dbch\af0\cgrid\langnp1031\langfenp1031 \sbasedon0 \snext20 Index;}}
|
||||||
|
{\*\rsidtbl \rsid4605650\rsid15302586}{\mmathPr\mmathFont34\mbrkBin0\mbrkBinSub0\msmallFrac0\mdispDef1\mlMargin0\mrMargin0\mdefJc1\mwrapIndent1440\mintLim0\mnaryLim1}{\info{\author Daniel Kraus}{\operator Daniel Kraus}{\creatim\yr2015\mo1\dy28\hr17\min3}
|
||||||
|
{\revtim\yr2015\mo1\dy28\hr17\min5}{\version2}{\edmins0}{\nofpages3}{\nofwords1381}{\nofchars8701}{\nofcharsws10062}{\vern49247}}{\*\xmlnstbl {\xmlns1 http://schemas.microsoft.com/office/word/2003/wordml}}
|
||||||
|
\paperw12240\paperh15840\margl1800\margr1800\margt1440\margb1440\gutter0\ltrsect
|
||||||
|
\widowctrl\ftnbj\aenddoc\hyphhotz425\trackmoves0\trackformatting1\donotembedsysfont0\relyonvml0\donotembedlingdata1\grfdocevents0\validatexml0\showplaceholdtext0\ignoremixedcontent0\saveinvalidxml0\showxmlerrors0\formshade\horzdoc\dghspace120\dgvspace120
|
||||||
|
\dghorigin1701\dgvorigin1984\dghshow0\dgvshow3\jcompress\viewkind1\viewscale150\rsidroot4605650 \fet0{\*\wgrffmtfilter 2450}\ilfomacatclnup0{\*\ftnsep \ltrpar \pard\plain \ltrpar\ql \li0\ri0\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 \rtlch\fcs1
|
||||||
|
\af41\afs22\alang1081 \ltrch\fcs0 \fs22\cf1\lang1031\langfe1031\kerning1\loch\af41\hich\af31506\dbch\af0\cgrid\langnp1031\langfenp1031 {\rtlch\fcs1 \af31507\afs24\alang1025 \ltrch\fcs0 \fs24\cf0\kerning0\loch\af40\dbch\af40\insrsid15302586
|
||||||
|
\par }}{\*\ftnsepc \ltrpar \pard\plain \ltrpar\ql \li0\ri0\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 \rtlch\fcs1 \af41\afs22\alang1081 \ltrch\fcs0 \fs22\cf1\lang1031\langfe1031\kerning1\loch\af41\hich\af31506\dbch\af0\cgrid\langnp1031\langfenp1031 {
|
||||||
|
\rtlch\fcs1 \af41 \ltrch\fcs0 \insrsid15302586 \chftnsepc
|
||||||
|
\par }}{\*\aftnsep \ltrpar \pard\plain \ltrpar\ql \li0\ri0\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 \rtlch\fcs1 \af41\afs22\alang1081 \ltrch\fcs0 \fs22\cf1\lang1031\langfe1031\kerning1\loch\af41\hich\af31506\dbch\af0\cgrid\langnp1031\langfenp1031 {
|
||||||
|
\rtlch\fcs1 \af41 \ltrch\fcs0 \insrsid15302586 \chftnsep
|
||||||
|
\par }}{\*\aftnsepc \ltrpar \pard\plain \ltrpar\ql \li0\ri0\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 \rtlch\fcs1 \af41\afs22\alang1081 \ltrch\fcs0 \fs22\cf1\lang1031\langfe1031\kerning1\loch\af41\hich\af31506\dbch\af0\cgrid\langnp1031\langfenp1031 {
|
||||||
|
\rtlch\fcs1 \af41 \ltrch\fcs0 \insrsid15302586 \chftnsepc
|
||||||
|
\par }}\ltrpar \sectd \ltrsect\sbknone\linex0\sectunlocked1\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
|
||||||
|
\qj \li0\ri0\sa40\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0\pararsid4605650 \rtlch\fcs1 \af41\afs22\alang1081 \ltrch\fcs0 \fs22\cf1\lang1031\langfe1031\kerning1\loch\af41\hich\af31506\dbch\af0\cgrid\langnp1031\langfenp1031 {\rtlch\fcs1
|
||||||
|
\ai\af41\afs18 \ltrch\fcs0 \i\fs18\lang1033\langfe1031\langnp1033\insrsid15302586\charrsid4605650 \hich\af31506\dbch\af0\loch\f41 Daniel}{\rtlch\fcs1 \ai\af41\afs18 \ltrch\fcs0 \i\fs18\lang1033\langfe1031\langnp1033\insrsid15302586\charrsid4605650
|
||||||
|
\loch\af41\dbch\af0\hich\f31506 \rquote }{\rtlch\fcs1 \ai\af41\afs18 \ltrch\fcs0 \i\fs18\lang1033\langfe1031\langnp1033\insrsid15302586\charrsid4605650 \hich\af31506\dbch\af0\loch\f41 s XL Toolbox NG is distributed under the A
|
||||||
|
\hich\af31506\dbch\af0\loch\f41 pache License, Version 2.0, which allows you to use this add-in free of charge in any environment (e.g., academic or commercial), but does not give any warranty. Please see the license text below for details.}{\rtlch\fcs1
|
||||||
|
\af41 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid15302586\charrsid4605650
|
||||||
|
\par }{\rtlch\fcs1 \af31507\afs24 \ltrch\fcs0 \i\fs18\lang1033\langfe1031\langnp1033\insrsid15302586\charrsid4605650 \hich\af31506\dbch\af0\loch\f41 The add-in contains code whose copyright is own\hich\af31506\dbch\af0\loch\f41 ed by others:}{\rtlch\fcs1
|
||||||
|
\af31507\afs24 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid15302586\charrsid4605650
|
||||||
|
\par }{\rtlch\fcs1 \af31507\afs24 \ltrch\fcs0 \i\fs18\lang1033\langfe1031\langnp1033\insrsid15302586\charrsid4605650 \hich\af31506\dbch\af0\loch\f41
|
||||||
|
DLLs from the Visual Studio Tools for Office runtime and the Expression Blend software development kit (SDK) are }{\rtlch\fcs1 \af31507\afs24 \ltrch\fcs0 \i\fs18\lang1033\langfe1031\langnp1033\insrsid15302586\charrsid4605650
|
||||||
|
\loch\af41\dbch\af0\hich\f31506 \'a9}{\rtlch\fcs1 \af31507\afs24 \ltrch\fcs0 \i\fs18\lang1033\langfe1031\langnp1033\insrsid15302586\charrsid4605650 \hich\af31506\dbch\af0\loch\f41 copyright Microsoft Corporation.}{\rtlch\fcs1 \af31507\afs24 \ltrch\fcs0
|
||||||
|
\lang1033\langfe1031\langnp1033\insrsid15302586\charrsid4605650
|
||||||
|
\par }{\rtlch\fcs1 \af31507\afs24 \ltrch\fcs0 \i\fs18\lang1033\langfe1031\langnp1033\insrsid15302586\charrsid4605650 \hich\af31506\dbch\af0\loch\f41 The FreeImage library is }{\rtlch\fcs1 \af31507\afs24 \ltrch\fcs0
|
||||||
|
\i\fs18\lang1033\langfe1031\langnp1033\insrsid15302586\charrsid4605650 \loch\af41\dbch\af0\hich\f31506 \'a9}{\rtlch\fcs1 \af31507\afs24 \ltrch\fcs0 \i\fs18\lang1033\langfe1031\langnp1033\insrsid15302586\charrsid4605650 \hich\af31506\dbch\af0\loch\f41
|
||||||
|
copyright Herv}{\rtlch\fcs1 \af31507\afs24 \ltrch\fcs0 \i\fs18\lang1033\langfe1031\langnp1033\insrsid15302586\charrsid4605650 \loch\af41\dbch\af0\hich\f31506 \'e9}{\rtlch\fcs1 \af31507\afs24 \ltrch\fcs0
|
||||||
|
\i\fs18\lang1033\langfe1031\langnp1033\insrsid15302586\charrsid4605650 \hich\af31506\dbch\af0\loch\f41 Drolon and others and is used under the FreeImage P\hich\af31506\dbch\af0\loch\f41
|
||||||
|
ublic License (FIPL). The source code of the FreeImage library is available at }{\field\flddirty{\*\fldinst {\rtlch\fcs1 \af31507\afs24 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid15302586\charrsid4605650 \hich\af31506\dbch\af0\loch\f41
|
||||||
|
HYPERLINK "http://freeimage.sf.net" }{\rtlch\fcs1 \af31507\afs24 \ltrch\fcs0 \insrsid4605650 {\*\datafield
|
||||||
|
00d0c9ea79f9bace118c8200aa004ba90b0200000003000000e0c9ea79f9bace118c8200aa004ba90b4a00000068007400740070003a002f002f00660072006500650069006d006100670065002e00730066002e006e00650074002f000000795881f43b1d7f48af2c825dc485276300000000a5ab0000}}}{\fldrslt {
|
||||||
|
\rtlch\fcs1 \af31507\afs24 \ltrch\fcs0 \i\fs18\ul\cf9\lang255\langfe255\langnp255\langfenp255\ulc1\insrsid15302586 \hich\af31506\dbch\af0\loch\f41 http://freeimage.sf.net}}}\sectd \ltrsect\sbknone\linex0\sectunlocked1\sectdefaultcl\sftnbj {\rtlch\fcs1
|
||||||
|
\af31507\afs24 \ltrch\fcs0 \i\fs18\lang1033\langfe1031\langnp1033\insrsid15302586\charrsid4605650 \hich\af31506\dbch\af0\loch\f41 and in the XL Toolbox code repository at }{\field\flddirty{\*\fldinst {\rtlch\fcs1 \af31507\afs24 \ltrch\fcs0
|
||||||
|
\lang1033\langfe1031\langnp1033\insrsid15302586\charrsid4605650 \hich\af31506\dbch\af0\loch\f41 HYPERLINK "http://sf.net/p/xltoolbox/ng-code" }{\rtlch\fcs1 \af31507\afs24 \ltrch\fcs0 \insrsid4605650 {\*\datafield
|
||||||
|
00d0c9ea79f9bace118c8200aa004ba90b0200000003000000e0c9ea79f9bace118c8200aa004ba90b5c00000068007400740070003a002f002f00730066002e006e00650074002f0070002f0078006c0074006f006f006c0062006f0078002f006e0067002d0063006f00640065000000795881f43b1d7f48af2c825dc485
|
||||||
|
276300000000a5ab0000}}}{\fldrslt {\rtlch\fcs1 \af31507\afs24 \ltrch\fcs0 \i\fs18\ul\cf9\lang255\langfe255\langnp255\langfenp255\ulc1\insrsid15302586 \hich\af31506\dbch\af0\loch\f41 http://sf.net/p/xltoolbox/n\hich\af31506\dbch\af0\loch\f41 g-code}}}
|
||||||
|
\sectd \ltrsect\sbknone\linex0\sectunlocked1\sectdefaultcl\sftnbj {\rtlch\fcs1 \af31507\afs24 \ltrch\fcs0 \i\fs18\lang1033\langfe1031\langnp1033\insrsid15302586\charrsid4605650 .}{\rtlch\fcs1 \af31507\afs24 \ltrch\fcs0
|
||||||
|
\i\fs18\lang1033\langfe1031\langnp1033\insrsid15302586
|
||||||
|
\par }{\rtlch\fcs1 \af31507\afs24 \ltrch\fcs0 \i\fs18\lang1033\langfe1031\langnp1033\insrsid4605650 \hich\af31506\dbch\af0\loch\f41 The LittleCMS2 library is }{\rtlch\fcs1 \af0\afs24 \ltrch\fcs0
|
||||||
|
\i\fs18\lang1033\langfe1031\langnp1033\insrsid4605650\charrsid4605650 \loch\af41\dbch\af0\hich\f31506 \'a9}{\rtlch\fcs1 \af0\afs24 \ltrch\fcs0 \i\fs18\lang1033\langfe1031\langnp1033\insrsid4605650\charrsid4605650 \hich\af31506\dbch\af0\loch\f41 copyright
|
||||||
|
}{\rtlch\fcs1 \af0\afs24 \ltrch\fcs0 \i\fs18\lang1033\langfe1031\langnp1033\insrsid4605650 \hich\af31506\dbch\af0\loch\f41 }{\rtlch\fcs1 \af0\afs24 \ltrch\fcs0 \i\fs18\lang1033\langfe1031\langnp1033\insrsid4605650\charrsid4605650
|
||||||
|
\hich\af31506\dbch\af0\loch\f41 Marti Maria Saguer}{\rtlch\fcs1 \af0\afs24 \ltrch\fcs0 \i\fs18\lang1033\langfe1031\langnp1033\insrsid4605650 \hich\af31506\dbch\af0\loch\f41 and is used under the MIT license.}{\rtlch\fcs1 \af31507\afs24 \ltrch\fcs0
|
||||||
|
\lang1033\langfe1031\langnp1033\insrsid4605650\charrsid4605650
|
||||||
|
\par }\pard \ltrpar\qc \li0\ri0\sa40\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0\pararsid4605650 {\rtlch\fcs1 \af31507\afs24 \ltrch\fcs0 \fs18\lang1033\langfe1031\langnp1033\insrsid15302586\charrsid4605650 \loch\af41\dbch\af0\hich\f31506 \emdash \emdash
|
||||||
|
\emdash \emdash \emdash }{\rtlch\fcs1 \af31507\afs24 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid15302586\charrsid4605650
|
||||||
|
\par }{\rtlch\fcs1 \af31507\afs24 \ltrch\fcs0 \b\fs18\lang1033\langfe1031\langnp1033\insrsid15302586\charrsid4605650 \hich\af31506\dbch\af0\loch\f41 Apache License}{\rtlch\fcs1 \af31507\afs24 \ltrch\fcs0
|
||||||
|
\fs18\lang1033\langfe1031\langnp1033\insrsid15302586\charrsid4605650 \line }{\rtlch\fcs1 \af31507\afs24 \ltrch\fcs0 \b\fs18\lang1033\langfe1031\langnp1033\insrsid15302586\charrsid4605650 \hich\af31506\dbch\af0\loch\f41 Version 2.0, January 2004}{
|
||||||
|
\rtlch\fcs1 \af31507\afs24 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid15302586\charrsid4605650
|
||||||
|
\par }{\field\flddirty{\*\fldinst {\rtlch\fcs1 \af31507\afs24 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid15302586\charrsid4605650 \hich\af31506\dbch\af0\loch\f41 HYPERLINK "http://www.apache.org/licenses/" }{\rtlch\fcs1 \af31507\afs24 \ltrch\fcs0
|
||||||
|
\insrsid4605650 {\*\datafield
|
||||||
|
00d0c9ea79f9bace118c8200aa004ba90b0200000003000000e0c9ea79f9bace118c8200aa004ba90b5800000068007400740070003a002f002f007700770077002e006100700061006300680065002e006f00720067002f006c006900630065006e007300650073002f000000795881f43b1d7f48af2c825dc48527630000
|
||||||
|
0000a5ab0000}}}{\fldrslt {\rtlch\fcs1 \af31507\afs24 \ltrch\fcs0 \fs18\ul\cf9\lang255\langfe255\langnp255\langfenp255\ulc1\insrsid15302586 \hich\af31506\dbch\af0\loch\f41 http://www.apache.org/licenses/}}}\sectd \ltrsect
|
||||||
|
\sbknone\linex0\sectunlocked1\sectdefaultcl\sftnbj {\rtlch\fcs1 \af31507\afs24 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid15302586\charrsid4605650
|
||||||
|
\par }\pard \ltrpar\qj \li0\ri0\sa40\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0\pararsid4605650 {\rtlch\fcs1 \af31507\afs24 \ltrch\fcs0 \b\fs18\lang1033\langfe1031\langnp1033\insrsid15302586\charrsid4605650 \hich\af31506\dbch\af0\loch\f41
|
||||||
|
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION}{\rtlch\fcs1 \af31507\afs24 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid15302586\charrsid4605650
|
||||||
|
\par }{\rtlch\fcs1 \af31507\afs24 \ltrch\fcs0 \b\fs18\lang1033\langfe1031\langnp1033\insrsid15302586\charrsid4605650 \hich\af31506\dbch\af0\loch\f41 1. Definitions}{\rtlch\fcs1 \af31507\afs24 \ltrch\fcs0
|
||||||
|
\fs18\lang1033\langfe1031\langnp1033\insrsid15302586\charrsid4605650 .}{\rtlch\fcs1 \af31507\afs24 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid15302586\charrsid4605650
|
||||||
|
\par }{\rtlch\fcs1 \af31507\afs24 \ltrch\fcs0 \fs18\lang1033\langfe1031\langnp1033\insrsid15302586\charrsid4605650 \loch\af41\dbch\af0\hich\f31506 \'93}{\rtlch\fcs1 \af31507\afs24 \ltrch\fcs0
|
||||||
|
\fs18\lang1033\langfe1031\langnp1033\insrsid15302586\charrsid4605650 \hich\af31506\dbch\af0\loch\f41 License}{\rtlch\fcs1 \af31507\afs24 \ltrch\fcs0 \fs18\lang1033\langfe1031\langnp1033\insrsid15302586\charrsid4605650 \loch\af41\dbch\af0\hich\f31506 \'94}
|
||||||
|
{\rtlch\fcs1 \af31507\afs24 \ltrch\fcs0 \fs18\lang1033\langfe1031\langnp1033\insrsid15302586\charrsid4605650 \hich\af31506\dbch\af0\loch\f41 shall mean the terms and conditi\hich\af31506\dbch\af0\loch\f41
|
||||||
|
ons for use, reproduction, and distribution as defined by Sections 1 through 9 of this document.}{\rtlch\fcs1 \af31507\afs24 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid15302586\charrsid4605650
|
||||||
|
\par }{\rtlch\fcs1 \af31507\afs24 \ltrch\fcs0 \fs18\lang1033\langfe1031\langnp1033\insrsid15302586\charrsid4605650 \loch\af41\dbch\af0\hich\f31506 \'93}{\rtlch\fcs1 \af31507\afs24 \ltrch\fcs0
|
||||||
|
\fs18\lang1033\langfe1031\langnp1033\insrsid15302586\charrsid4605650 \hich\af31506\dbch\af0\loch\f41 Licensor}{\rtlch\fcs1 \af31507\afs24 \ltrch\fcs0 \fs18\lang1033\langfe1031\langnp1033\insrsid15302586\charrsid4605650 \loch\af41\dbch\af0\hich\f31506 \'94
|
||||||
|
}{\rtlch\fcs1 \af31507\afs24 \ltrch\fcs0 \fs18\lang1033\langfe1031\langnp1033\insrsid15302586\charrsid4605650 \hich\af31506\dbch\af0\loch\f41 shall mean the copyright owner or entity authorized by the copyright owner that is granting the License.}{
|
||||||
|
\rtlch\fcs1 \af31507\afs24 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid15302586\charrsid4605650
|
||||||
|
\par }{\rtlch\fcs1 \af31507\afs24 \ltrch\fcs0 \fs18\lang1033\langfe1031\langnp1033\insrsid15302586\charrsid4605650 \loch\af41\dbch\af0\hich\f31506 \'93}{\rtlch\fcs1 \af31507\afs24 \ltrch\fcs0
|
||||||
|
\fs18\lang1033\langfe1031\langnp1033\insrsid15302586\charrsid4605650 \hich\af31506\dbch\af0\loch\f41 Legal Entity}{\rtlch\fcs1 \af31507\afs24 \ltrch\fcs0 \fs18\lang1033\langfe1031\langnp1033\insrsid15302586\charrsid4605650 \loch\af41\dbch\af0\hich\f31506
|
||||||
|
\'94}{\rtlch\fcs1 \af31507\afs24 \ltrch\fcs0 \fs18\lang1033\langfe1031\langnp1033\insrsid15302586\charrsid4605650 \hich\af31506\dbch\af0\loch\f41 shall mean the union of the \hich\af31506\dbch\af0\loch\f41
|
||||||
|
acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, }{\rtlch\fcs1 \af31507\afs24 \ltrch\fcs0
|
||||||
|
\fs18\lang1033\langfe1031\langnp1033\insrsid15302586\charrsid4605650 \loch\af41\dbch\af0\hich\f31506 \'93}{\rtlch\fcs1 \af31507\afs24 \ltrch\fcs0 \fs18\lang1033\langfe1031\langnp1033\insrsid15302586\charrsid4605650 \hich\af31506\dbch\af0\loch\f41 control}
|
||||||
|
{\rtlch\fcs1 \af31507\afs24 \ltrch\fcs0 \fs18\lang1033\langfe1031\langnp1033\insrsid15302586\charrsid4605650 \loch\af41\dbch\af0\hich\f31506 \'94}{\rtlch\fcs1 \af31507\afs24 \ltrch\fcs0 \fs18\lang1033\langfe1031\langnp1033\insrsid15302586\charrsid4605650
|
||||||
|
\hich\af31506\dbch\af0\loch\f41 means (i) the power, direct or indirect, to cause the direction or management of such entity,\hich\af31506\dbch\af0\loch\f41
|
||||||
|
whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity.}{\rtlch\fcs1 \af31507\afs24 \ltrch\fcs0
|
||||||
|
\lang1033\langfe1031\langnp1033\insrsid15302586\charrsid4605650
|
||||||
|
\par }{\rtlch\fcs1 \af31507\afs24 \ltrch\fcs0 \fs18\lang1033\langfe1031\langnp1033\insrsid15302586\charrsid4605650 \loch\af41\dbch\af0\hich\f31506 \'93}{\rtlch\fcs1 \af31507\afs24 \ltrch\fcs0
|
||||||
|
\fs18\lang1033\langfe1031\langnp1033\insrsid15302586\charrsid4605650 \hich\af31506\dbch\af0\loch\f41 You}{\rtlch\fcs1 \af31507\afs24 \ltrch\fcs0 \fs18\lang1033\langfe1031\langnp1033\insrsid15302586\charrsid4605650 \loch\af41\dbch\af0\hich\f31506 \'94}{
|
||||||
|
\rtlch\fcs1 \af31507\afs24 \ltrch\fcs0 \fs18\lang1033\langfe1031\langnp1033\insrsid15302586\charrsid4605650 \hich\af31506\dbch\af0\loch\f41 (or }{\rtlch\fcs1 \af31507\afs24 \ltrch\fcs0 \fs18\lang1033\langfe1031\langnp1033\insrsid15302586\charrsid4605650
|
||||||
|
\loch\af41\dbch\af0\hich\f31506 \'93}{\rtlch\fcs1 \af31507\afs24 \ltrch\fcs0 \fs18\lang1033\langfe1031\langnp1033\insrsid15302586\charrsid4605650 \hich\af31506\dbch\af0\loch\f41 Your}{\rtlch\fcs1 \af31507\afs24 \ltrch\fcs0
|
||||||
|
\fs18\lang1033\langfe1031\langnp1033\insrsid15302586\charrsid4605650 \loch\af41\dbch\af0\hich\f31506 \'94}{\rtlch\fcs1 \af31507\afs24 \ltrch\fcs0 \fs18\lang1033\langfe1031\langnp1033\insrsid15302586\charrsid4605650 \hich\af31506\dbch\af0\loch\f41
|
||||||
|
) shall mean an individual or Legal Entity exercising permissions granted by this L\hich\af31506\dbch\af0\loch\f41 icense.}{\rtlch\fcs1 \af31507\afs24 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid15302586\charrsid4605650
|
||||||
|
\par }{\rtlch\fcs1 \af31507\afs24 \ltrch\fcs0 \fs18\lang1033\langfe1031\langnp1033\insrsid15302586\charrsid4605650 \loch\af41\dbch\af0\hich\f31506 \'93}{\rtlch\fcs1 \af31507\afs24 \ltrch\fcs0
|
||||||
|
\fs18\lang1033\langfe1031\langnp1033\insrsid15302586\charrsid4605650 \hich\af31506\dbch\af0\loch\f41 Source}{\rtlch\fcs1 \af31507\afs24 \ltrch\fcs0 \fs18\lang1033\langfe1031\langnp1033\insrsid15302586\charrsid4605650 \loch\af41\dbch\af0\hich\f31506 \'94}{
|
||||||
|
\rtlch\fcs1 \af31507\afs24 \ltrch\fcs0 \fs18\lang1033\langfe1031\langnp1033\insrsid15302586\charrsid4605650 \hich\af31506\dbch\af0\loch\f41
|
||||||
|
form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files.}{\rtlch\fcs1 \af31507\afs24 \ltrch\fcs0
|
||||||
|
\lang1033\langfe1031\langnp1033\insrsid15302586\charrsid4605650
|
||||||
|
\par }{\rtlch\fcs1 \af31507\afs24 \ltrch\fcs0 \fs18\lang1033\langfe1031\langnp1033\insrsid15302586\charrsid4605650 \loch\af41\dbch\af0\hich\f31506 \'93}{\rtlch\fcs1 \af31507\afs24 \ltrch\fcs0
|
||||||
|
\fs18\lang1033\langfe1031\langnp1033\insrsid15302586\charrsid4605650 \hich\af31506\dbch\af0\loch\f41 Object}{\rtlch\fcs1 \af31507\afs24 \ltrch\fcs0 \fs18\lang1033\langfe1031\langnp1033\insrsid15302586\charrsid4605650 \loch\af41\dbch\af0\hich\f31506 \'94}{
|
||||||
|
\rtlch\fcs1 \af31507\afs24 \ltrch\fcs0 \fs18\lang1033\langfe1031\langnp1033\insrsid15302586\charrsid4605650 \hich\af31506\dbch\af0\loch\f41 form shall mean any form resulting from mechanical transformation or tr\hich\af31506\dbch\af0\loch\f41
|
||||||
|
anslation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types.}{\rtlch\fcs1 \af31507\afs24 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid15302586\charrsid4605650
|
||||||
|
\par }{\rtlch\fcs1 \af31507\afs24 \ltrch\fcs0 \fs18\lang1033\langfe1031\langnp1033\insrsid15302586\charrsid4605650 \loch\af41\dbch\af0\hich\f31506 \'93}{\rtlch\fcs1 \af31507\afs24 \ltrch\fcs0
|
||||||
|
\fs18\lang1033\langfe1031\langnp1033\insrsid15302586\charrsid4605650 \hich\af31506\dbch\af0\loch\f41 Work}{\rtlch\fcs1 \af31507\afs24 \ltrch\fcs0 \fs18\lang1033\langfe1031\langnp1033\insrsid15302586\charrsid4605650 \loch\af41\dbch\af0\hich\f31506 \'94}{
|
||||||
|
\rtlch\fcs1 \af31507\afs24 \ltrch\fcs0 \fs18\lang1033\langfe1031\langnp1033\insrsid15302586\charrsid4605650 \hich\af31506\dbch\af0\loch\f41
|
||||||
|
shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below).}{\rtlch\fcs1
|
||||||
|
\af31507\afs24 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid15302586\charrsid4605650
|
||||||
|
\par }{\rtlch\fcs1 \af31507\afs24 \ltrch\fcs0 \fs18\lang1033\langfe1031\langnp1033\insrsid15302586\charrsid4605650 \loch\af41\dbch\af0\hich\f31506 \'93}{\rtlch\fcs1 \af31507\afs24 \ltrch\fcs0
|
||||||
|
\fs18\lang1033\langfe1031\langnp1033\insrsid15302586\charrsid4605650 \hich\af31506\dbch\af0\loch\f41 Derivative Works}{\rtlch\fcs1 \af31507\afs24 \ltrch\fcs0 \fs18\lang1033\langfe1031\langnp1033\insrsid15302586\charrsid4605650
|
||||||
|
\loch\af41\dbch\af0\hich\f31506 \'94}{\rtlch\fcs1 \af31507\afs24 \ltrch\fcs0 \fs18\lang1033\langfe1031\langnp1033\insrsid15302586\charrsid4605650 \hich\af31506\dbch\af0\loch\f41 shall \hich\af31506\dbch\af0\loch\f41
|
||||||
|
mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship. For the purposes o
|
||||||
|
\hich\af31506\dbch\af0\loch\f41 f\hich\af31506\dbch\af0\loch\f41 this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof.}{
|
||||||
|
\rtlch\fcs1 \af31507\afs24 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid15302586\charrsid4605650
|
||||||
|
\par }{\rtlch\fcs1 \af31507\afs24 \ltrch\fcs0 \fs18\lang1033\langfe1031\langnp1033\insrsid15302586\charrsid4605650 \loch\af41\dbch\af0\hich\f31506 \'93}{\rtlch\fcs1 \af31507\afs24 \ltrch\fcs0
|
||||||
|
\fs18\lang1033\langfe1031\langnp1033\insrsid15302586\charrsid4605650 \hich\af31506\dbch\af0\loch\f41 Contribution}{\rtlch\fcs1 \af31507\afs24 \ltrch\fcs0 \fs18\lang1033\langfe1031\langnp1033\insrsid15302586\charrsid4605650 \loch\af41\dbch\af0\hich\f31506
|
||||||
|
\'94}{\rtlch\fcs1 \af31507\afs24 \ltrch\fcs0 \fs18\lang1033\langfe1031\langnp1033\insrsid15302586\charrsid4605650 \hich\af31506\dbch\af0\loch\f41 shall mean any work of authorship, including the original versi\hich\af31506\dbch\af0\loch\f41
|
||||||
|
on of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted to Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to submit on behalf of
|
||||||
|
\hich\af31506\dbch\af0\loch\f41 t\hich\af31506\dbch\af0\loch\f41 he copyright owner. For the purposes of this definition, }{\rtlch\fcs1 \af31507\afs24 \ltrch\fcs0 \fs18\lang1033\langfe1031\langnp1033\insrsid15302586\charrsid4605650
|
||||||
|
\loch\af41\dbch\af0\hich\f31506 \'93}{\rtlch\fcs1 \af31507\afs24 \ltrch\fcs0 \fs18\lang1033\langfe1031\langnp1033\insrsid15302586\charrsid4605650 \hich\af31506\dbch\af0\loch\f41 submitted}{\rtlch\fcs1 \af31507\afs24 \ltrch\fcs0
|
||||||
|
\fs18\lang1033\langfe1031\langnp1033\insrsid15302586\charrsid4605650 \loch\af41\dbch\af0\hich\f31506 \'94}{\rtlch\fcs1 \af31507\afs24 \ltrch\fcs0 \fs18\lang1033\langfe1031\langnp1033\insrsid15302586\charrsid4605650 \hich\af31506\dbch\af0\loch\f41
|
||||||
|
means any form of electronic, verbal, or written communication sent to the Licensor or its representatives, including but not limited to communication on electronic mailing lists, source \hich\af31506\dbch\af0\loch\f41
|
||||||
|
code control systems, and issue tracking systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the co
|
||||||
|
\hich\af31506\dbch\af0\loch\f41 p\hich\af31506\dbch\af0\loch\f41 yright owner as }{\rtlch\fcs1 \af31507\afs24 \ltrch\fcs0 \fs18\lang1033\langfe1031\langnp1033\insrsid15302586\charrsid4605650 \loch\af41\dbch\af0\hich\f31506 \'93}{\rtlch\fcs1
|
||||||
|
\af31507\afs24 \ltrch\fcs0 \fs18\lang1033\langfe1031\langnp1033\insrsid15302586\charrsid4605650 \hich\af31506\dbch\af0\loch\f41 Not a Contribution.}{\rtlch\fcs1 \af31507\afs24 \ltrch\fcs0
|
||||||
|
\fs18\lang1033\langfe1031\langnp1033\insrsid15302586\charrsid4605650 \loch\af41\dbch\af0\hich\f31506 \'94}{\rtlch\fcs1 \af31507\afs24 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid15302586\charrsid4605650
|
||||||
|
\par }{\rtlch\fcs1 \af31507\afs24 \ltrch\fcs0 \fs18\lang1033\langfe1031\langnp1033\insrsid15302586\charrsid4605650 \loch\af41\dbch\af0\hich\f31506 \'93}{\rtlch\fcs1 \af31507\afs24 \ltrch\fcs0
|
||||||
|
\fs18\lang1033\langfe1031\langnp1033\insrsid15302586\charrsid4605650 \hich\af31506\dbch\af0\loch\f41 Contributor}{\rtlch\fcs1 \af31507\afs24 \ltrch\fcs0 \fs18\lang1033\langfe1031\langnp1033\insrsid15302586\charrsid4605650 \loch\af41\dbch\af0\hich\f31506
|
||||||
|
\'94}{\rtlch\fcs1 \af31507\afs24 \ltrch\fcs0 \fs18\lang1033\langfe1031\langnp1033\insrsid15302586\charrsid4605650 \hich\af31506\dbch\af0\loch\f41
|
||||||
|
shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work.}{\rtlch\fcs1 \af31507\afs24 \ltrch\fcs0
|
||||||
|
\lang1033\langfe1031\langnp1033\insrsid15302586\charrsid4605650
|
||||||
|
\par }{\rtlch\fcs1 \af31507\afs24 \ltrch\fcs0 \b\fs18\lang1033\langfe1031\langnp1033\insrsid15302586\charrsid4605650 \hich\af31506\dbch\af0\loch\f41 2. Grant of Copyright License}{\rtlch\fcs1 \af31507\afs24 \ltrch\fcs0
|
||||||
|
\fs18\lang1033\langfe1031\langnp1033\insrsid15302586\charrsid4605650 \hich\af31506\dbch\af0\loch\f41
|
||||||
|
. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicl
|
||||||
|
\hich\af31506\dbch\af0\loch\f41 y\hich\af31506\dbch\af0\loch\f41 perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form.}{\rtlch\fcs1 \af31507\afs24 \ltrch\fcs0
|
||||||
|
\lang1033\langfe1031\langnp1033\insrsid15302586\charrsid4605650
|
||||||
|
\par }{\rtlch\fcs1 \af31507\afs24 \ltrch\fcs0 \b\fs18\lang1033\langfe1031\langnp1033\insrsid15302586\charrsid4605650 \hich\af31506\dbch\af0\loch\f41 3. Grant of Patent License}{\rtlch\fcs1 \af31507\afs24 \ltrch\fcs0
|
||||||
|
\fs18\lang1033\langfe1031\langnp1033\insrsid15302586\charrsid4605650 \hich\af31506\dbch\af0\loch\f41 . Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive,
|
||||||
|
\hich\af31506\dbch\af0\loch\f41
|
||||||
|
no-charge, royalty-free, irrevocable (except as stated in this section) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the Work, where such license applies only to those patent claims licensable by such Contrib
|
||||||
|
\hich\af31506\dbch\af0\loch\f41 u\hich\af31506\dbch\af0\loch\f41
|
||||||
|
tor that are necessarily infringed by their Contribution(s) alone or by combination of their Contribution(s) with the Work to which such Contribution(s) was submitted. If You institute patent litigation against any entity (including a cross-claim or count
|
||||||
|
\hich\af31506\dbch\af0\loch\f41 e\hich\af31506\dbch\af0\loch\f41
|
||||||
|
rclaim in a lawsuit) alleging that the Work or a Contribution incorporated within the Work constitutes direct or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such
|
||||||
|
\hich\af31506\dbch\af0\loch\f41 \hich\af31506\dbch\af0\loch\f41 litigation is filed.}{\rtlch\fcs1 \af31507\afs24 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid15302586\charrsid4605650
|
||||||
|
\par }{\rtlch\fcs1 \af31507\afs24 \ltrch\fcs0 \b\fs18\lang1033\langfe1031\langnp1033\insrsid15302586\charrsid4605650 \hich\af31506\dbch\af0\loch\f41 4. Redistribution}{\rtlch\fcs1 \af31507\afs24 \ltrch\fcs0
|
||||||
|
\fs18\lang1033\langfe1031\langnp1033\insrsid15302586\charrsid4605650 \hich\af31506\dbch\af0\loch\f41
|
||||||
|
. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions:}{\rtlch\fcs1 \af31507\afs24 \ltrch\fcs0
|
||||||
|
\lang1033\langfe1031\langnp1033\insrsid15302586\charrsid4605650
|
||||||
|
\par }\pard \ltrpar\qj \fi-360\li360\ri0\sa40\nowidctlpar\wrapdefault\faauto\rin0\lin360\itap0\pararsid4605650 {\rtlch\fcs1 \af31507\afs24 \ltrch\fcs0 \fs18\lang1033\langfe1031\langnp1033\insrsid15302586\charrsid4605650 \hich\af31506\dbch\af0\loch\f41 1.\tab
|
||||||
|
You must\hich\af31506\dbch\af0\loch\f41 give any other recipients of the Work or Derivative Works a copy of this License; and}{\rtlch\fcs1 \af31507\afs24 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid15302586\charrsid4605650
|
||||||
|
\par }{\rtlch\fcs1 \af31507\afs24 \ltrch\fcs0 \fs18\lang1033\langfe1031\langnp1033\insrsid15302586\charrsid4605650 \hich\af31506\dbch\af0\loch\f41 2.\tab You must cause any modified files to carry prominent notices stating that You changed the files; and}{
|
||||||
|
\rtlch\fcs1 \af31507\afs24 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid15302586\charrsid4605650
|
||||||
|
\par }{\rtlch\fcs1 \af31507\afs24 \ltrch\fcs0 \fs18\lang1033\langfe1031\langnp1033\insrsid15302586\charrsid4605650 \hich\af31506\dbch\af0\loch\f41 3.\tab You must retain, in the Source form of any Derivative Works th\hich\af31506\dbch\af0\loch\f41
|
||||||
|
at You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and}{\rtlch\fcs1 \af31507\afs24 \ltrch\fcs0
|
||||||
|
\lang1033\langfe1031\langnp1033\insrsid15302586\charrsid4605650
|
||||||
|
\par }{\rtlch\fcs1 \af31507\afs24 \ltrch\fcs0 \fs18\lang1033\langfe1031\langnp1033\insrsid15302586\charrsid4605650 \hich\af31506\dbch\af0\loch\f41 4.\tab If the Work includes a }{\rtlch\fcs1 \af31507\afs24 \ltrch\fcs0
|
||||||
|
\fs18\lang1033\langfe1031\langnp1033\insrsid15302586\charrsid4605650 \loch\af41\dbch\af0\hich\f31506 \'93}{\rtlch\fcs1 \af31507\afs24 \ltrch\fcs0 \fs18\lang1033\langfe1031\langnp1033\insrsid15302586\charrsid4605650 \hich\af31506\dbch\af0\loch\f41 NOTICE}{
|
||||||
|
\rtlch\fcs1 \af31507\afs24 \ltrch\fcs0 \fs18\lang1033\langfe1031\langnp1033\insrsid15302586\charrsid4605650 \loch\af41\dbch\af0\hich\f31506 \'94}{\rtlch\fcs1 \af31507\afs24 \ltrch\fcs0 \fs18\lang1033\langfe1031\langnp1033\insrsid15302586\charrsid4605650
|
||||||
|
\hich\af31506\dbch\af0\loch\f41 text file as part of its \hich\af31506\dbch\af0\loch\f41
|
||||||
|
distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not pertain to any part of the Derivative Works, in at least one of the
|
||||||
|
\hich\af31506\dbch\af0\loch\f41 f\hich\af31506\dbch\af0\loch\f41
|
||||||
|
ollowing places: within a NOTICE text file distributed as part of the Derivative Works; within the Source form or documentation, if provided along with the Derivative Works; or, within a display generated by the Derivative Works, if and wherever such thir
|
||||||
|
\hich\af31506\dbch\af0\loch\f41 d\hich\af31506\dbch\af0\loch\f41
|
||||||
|
-party notices normally appear. The contents of the NOTICE file are for informational purposes only and do not modify the License. You may add Your own attribution notices within Derivative Works that You distribute, alongside or as an addendum to the NOT
|
||||||
|
\hich\af31506\dbch\af0\loch\f41 I\hich\af31506\dbch\af0\loch\f41 CE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License.\line \line
|
||||||
|
You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions fo\hich\af31506\dbch\af0\loch\f41 r\hich\af31506\dbch\af0\loch\f41
|
||||||
|
use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License.}{\rtlch\fcs1
|
||||||
|
\af31507\afs24 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid15302586\charrsid4605650
|
||||||
|
\par }\pard \ltrpar\qj \li0\ri0\sa40\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0\pararsid4605650 {\rtlch\fcs1 \af31507\afs24 \ltrch\fcs0 \b\fs18\lang1033\langfe1031\langnp1033\insrsid15302586\charrsid4605650 \hich\af31506\dbch\af0\loch\f41
|
||||||
|
5. Submission of Contributi\hich\af31506\dbch\af0\loch\f41 ons}{\rtlch\fcs1 \af31507\afs24 \ltrch\fcs0 \fs18\lang1033\langfe1031\langnp1033\insrsid15302586\charrsid4605650 \hich\af31506\dbch\af0\loch\f41
|
||||||
|
. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of this License, without any additional terms or conditions. Notwithstanding the a
|
||||||
|
\hich\af31506\dbch\af0\loch\f41 bove, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions.}{\rtlch\fcs1 \af31507\afs24 \ltrch\fcs0
|
||||||
|
\lang1033\langfe1031\langnp1033\insrsid15302586\charrsid4605650
|
||||||
|
\par }{\rtlch\fcs1 \af31507\afs24 \ltrch\fcs0 \b\fs18\lang1033\langfe1031\langnp1033\insrsid15302586\charrsid4605650 \hich\af31506\dbch\af0\loch\f41 6. Trademarks}{\rtlch\fcs1 \af31507\afs24 \ltrch\fcs0
|
||||||
|
\fs18\lang1033\langfe1031\langnp1033\insrsid15302586\charrsid4605650 \hich\af31506\dbch\af0\loch\f41 . This License does not grant permission to use the trade names, trademarks, service m\hich\af31506\dbch\af0\loch\f41
|
||||||
|
arks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file.}{\rtlch\fcs1 \af31507\afs24 \ltrch\fcs0
|
||||||
|
\lang1033\langfe1031\langnp1033\insrsid15302586\charrsid4605650
|
||||||
|
\par }{\rtlch\fcs1 \af31507\afs24 \ltrch\fcs0 \b\fs18\lang1033\langfe1031\langnp1033\insrsid15302586\charrsid4605650 \hich\af31506\dbch\af0\loch\f41 7. Disclaimer of Warranty}{\rtlch\fcs1 \af31507\afs24 \ltrch\fcs0
|
||||||
|
\fs18\lang1033\langfe1031\langnp1033\insrsid15302586\charrsid4605650 \hich\af31506\dbch\af0\loch\f41 . Unless required by applicable law or agreed to in wr\hich\af31506\dbch\af0\loch\f41
|
||||||
|
iting, Licensor provides the Work (and each Contributor provides its Contributions) on an }{\rtlch\fcs1 \af31507\afs24 \ltrch\fcs0 \fs18\lang1033\langfe1031\langnp1033\insrsid15302586\charrsid4605650 \loch\af41\dbch\af0\hich\f31506 \'93}{\rtlch\fcs1
|
||||||
|
\af31507\afs24 \ltrch\fcs0 \fs18\lang1033\langfe1031\langnp1033\insrsid15302586\charrsid4605650 \hich\af31506\dbch\af0\loch\f41 AS IS}{\rtlch\fcs1 \af31507\afs24 \ltrch\fcs0 \fs18\lang1033\langfe1031\langnp1033\insrsid15302586\charrsid4605650
|
||||||
|
\loch\af41\dbch\af0\hich\f31506 \'94}{\rtlch\fcs1 \af31507\afs24 \ltrch\fcs0 \fs18\lang1033\langfe1031\langnp1033\insrsid15302586\charrsid4605650 \hich\af31506\dbch\af0\loch\f41
|
||||||
|
BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFR\hich\af31506\dbch\af0\loch\f41
|
||||||
|
INGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License.}{
|
||||||
|
\rtlch\fcs1 \af31507\afs24 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid15302586\charrsid4605650
|
||||||
|
\par }{\rtlch\fcs1 \af31507\afs24 \ltrch\fcs0 \b\fs18\lang1033\langfe1031\langnp1033\insrsid15302586\charrsid4605650 \hich\af31506\dbch\af0\loch\f41 8. Limi\hich\af31506\dbch\af0\loch\f41 tation of Liability}{\rtlch\fcs1 \af31507\afs24 \ltrch\fcs0
|
||||||
|
\fs18\lang1033\langfe1031\langnp1033\insrsid15302586\charrsid4605650 \hich\af31506\dbch\af0\loch\f41
|
||||||
|
. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly negligent acts) or agreed to in writing, shall any Contributor be
|
||||||
|
\hich\af31506\dbch\af0\loch\f41
|
||||||
|
liable to You for damages, including any direct, indirect, special, incidental, or consequential damages of any character arising as a result of this License or out of the use or inability to use the Work (including but not limited to damages for loss of
|
||||||
|
\hich\af31506\dbch\af0\loch\f41 g\hich\af31506\dbch\af0\loch\f41 oodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages.}{
|
||||||
|
\rtlch\fcs1 \af31507\afs24 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid15302586\charrsid4605650
|
||||||
|
\par }{\rtlch\fcs1 \af31507\afs24 \ltrch\fcs0 \b\fs18\lang1033\langfe1031\langnp1033\insrsid15302586\charrsid4605650 \hich\af31506\dbch\af0\loch\f41 9. Accepting Warranty or Additional Liability}{\rtlch\fcs1 \af31507\afs24 \ltrch\fcs0
|
||||||
|
\fs18\lang1033\langfe1031\langnp1033\insrsid15302586\charrsid4605650 \hich\af31506\dbch\af0\loch\f41 . While redistributing t\hich\af31506\dbch\af0\loch\f41
|
||||||
|
he Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, or other liability obligations and/or rights consistent with this License. However, in accepting such obligations, You may act
|
||||||
|
\hich\af31506\dbch\af0\loch\f41 o\hich\af31506\dbch\af0\loch\f41
|
||||||
|
nly on Your own behalf and on Your sole responsibility, not on behalf of any other Contributor, and only if You agree to indemnify, defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by r
|
||||||
|
\hich\af31506\dbch\af0\loch\f41 e\hich\af31506\dbch\af0\loch\f41 ason of your accepting any such warranty or additional liability.}{\rtlch\fcs1 \af31507\afs24 \ltrch\fcs0 \lang1033\langfe1031\langnp1033\insrsid15302586\charrsid4605650
|
||||||
|
\par }\pard \ltrpar\qc \li0\ri0\sa40\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0\pararsid4605650 {\rtlch\fcs1 \af31507\afs24 \ltrch\fcs0 \fs18\insrsid15302586 \loch\af41\dbch\af0\hich\f31506 \emdash \emdash \emdash \emdash \emdash }{\rtlch\fcs1
|
||||||
|
\af31507\afs24 \ltrch\fcs0 \insrsid15302586
|
||||||
|
\par }{\*\themedata 504b030414000600080000002100e9de0fbfff0000001c020000130000005b436f6e74656e745f54797065735d2e786d6cac91cb4ec3301045f748fc83e52d4a
|
||||||
|
9cb2400825e982c78ec7a27cc0c8992416c9d8b2a755fbf74cd25442a820166c2cd933f79e3be372bd1f07b5c3989ca74aaff2422b24eb1b475da5df374fd9ad
|
||||||
|
5689811a183c61a50f98f4babebc2837878049899a52a57be670674cb23d8e90721f90a4d2fa3802cb35762680fd800ecd7551dc18eb899138e3c943d7e503b6
|
||||||
|
b01d583deee5f99824e290b4ba3f364eac4a430883b3c092d4eca8f946c916422ecab927f52ea42b89a1cd59c254f919b0e85e6535d135a8de20f20b8c12c3b0
|
||||||
|
0c895fcf6720192de6bf3b9e89ecdbd6596cbcdd8eb28e7c365ecc4ec1ff1460f53fe813d3cc7f5b7f020000ffff0300504b030414000600080000002100a5d6
|
||||||
|
a7e7c0000000360100000b0000005f72656c732f2e72656c73848fcf6ac3300c87ef85bd83d17d51d2c31825762fa590432fa37d00e1287f68221bdb1bebdb4f
|
||||||
|
c7060abb0884a4eff7a93dfeae8bf9e194e720169aaa06c3e2433fcb68e1763dbf7f82c985a4a725085b787086a37bdbb55fbc50d1a33ccd311ba548b6309512
|
||||||
|
0f88d94fbc52ae4264d1c910d24a45db3462247fa791715fd71f989e19e0364cd3f51652d73760ae8fa8c9ffb3c330cc9e4fc17faf2ce545046e37944c69e462
|
||||||
|
a1a82fe353bd90a865aad41ed0b5b8f9d6fd010000ffff0300504b0304140006000800000021006b799616830000008a0000001c0000007468656d652f746865
|
||||||
|
6d652f7468656d654d616e616765722e786d6c0ccc4d0ac3201040e17da17790d93763bb284562b2cbaebbf600439c1a41c7a0d29fdbd7e5e38337cedf14d59b
|
||||||
|
4b0d592c9c070d8a65cd2e88b7f07c2ca71ba8da481cc52c6ce1c715e6e97818c9b48d13df49c873517d23d59085adb5dd20d6b52bd521ef2cdd5eb9246a3d8b
|
||||||
|
4757e8d3f729e245eb2b260a0238fd010000ffff0300504b03041400060008000000210060ffbff5a4060000a21b0000160000007468656d652f7468656d652f
|
||||||
|
7468656d65312e786d6cec594f6f1b4514bf23f11d467b6f6327761a4775aad8b11b6852a2d82dea71bc3bde9d66766735334eea1b6a8f484888823850891b07
|
||||||
|
04546a252ee5d3048aa048fd0abc99d95defc46b92b411ada039b4f6ec6fdefff79b37ebabd7eec50c1d1221294fda5efd72cd4324f1794093b0eddd1af62fad
|
||||||
|
79482a9c0498f184b4bd2991deb58df7dfbb8ad755446282607f22d771db8b944ad79796a40fcb585ee62949e0d9988b182bf82ac2a540e023901bb3a5e55a6d
|
||||||
|
7529c634f150826310bb830595127b1bb9dc1e03e189927ac16762a0a5920a707050d71039955d26d021666d0f7404fc6848ee290f312c153c687b35f3e72d6d
|
||||||
|
5c5dc2ebd926a616ec2dedeb9bbf6c5fb6213858363a45382a94d6fb8dd695ad42be0130358febf57add5ebd906700d8f7c1556b4b5966a3bf56efe4324b20fb
|
||||||
|
715e76b7d6ac355c7c49feca9ccdad4ea7d36c65b658a106643f36e6f06bb5d5c6e6b28337208b6fcee11b9dcd6e77d5c11b90c5afcee1fb575aab0d176f4011
|
||||||
|
a3c9c11c5a27b4dfcfa417903167db95f03580afd532f80c05d55094975631e6895a586c31becb451f101ac9b0a20952d3948cb10f25dcc5f14850ac35e07582
|
||||||
|
4b4fec922fe796b432247d4153d5f63e4c31b4c34cdecb673fbc7cf6041ddf7f7a7cffe7e3070f8eefff640539bbb671129677bdf8eef3bf1e7d82fe7cf2ed8b
|
||||||
|
875f56e36519ffdb8f9ffefacb17d540e89f9939cfbf7afcfbd3c7cfbffeec8fef1f56c037051e95e1431a13896e9223b4cf6370cc44c5b59c8cc4f9760c234c
|
||||||
|
cb3b369350e2046b2d15f27b2a72d037a79865d971ece8103782b705f04715f0fae4ae63f0201213452b34df886207b8cb39eb705119851b5a5729ccc3491256
|
||||||
|
2b1793326e1fe3c32add5d9c38f9ed4d5260cebc2c1dc7bb1171ccdc63385138240951483fe30784547877875227aebbd4175cf2b1427728ea605a1992211d39
|
||||||
|
d534dbb44d63c8cbb4ca67c8b7139bdddba8c35995d75be4d0454257605661fc9030278cd7f144e1b84ae410c7ac1cf01daca22a230753e197713da920d32161
|
||||||
|
1cf502a2cfb4f9d2ff4880bfa5a4dfc040599569df65d3d8450a450faa64ee60cecbc82d7ed08d709c5661073489cad80fe4019428467b5c55c177b9db21fa3b
|
||||||
|
e401270bd37d9b1227dda7b3c12d1a3a26cd0a443f99888a285e27dca9dfc1948d31315403acee70754c937f226e4681b9ad868b236ea0cae7df3caab0fb6da5
|
||||||
|
ec4d38bdaa7a66fb04512fc29da4e72e17017dfbd9790b4f923d020d31dfa7efc8f91d397bff79725ed4cf174fc933160682d6b3889db4cddc1d2f1ebbc794b1
|
||||||
|
819a32b223cde42de1f009fab0a8379afb2629ee6169041f752b830607170a6cf620c1d5c754458308a730b5d73d2d249499e850a2944bb82e9ae54ad91a0f93
|
||||||
|
bfb297cda6be8658ea9058edf2c02eafe8e5fcb65188315685e64e9b2b5ad102ceaa6ce54a26147c7b1565756dd499b5d58d6986151d6d85cb3ac4e65e0e212f
|
||||||
|
5c83c5229a30d520988520caab70e3d7aae1b683190974dc6d8ef2b4982c5c648a64840392e548fb3d9fa3ba49525e2b738e683f6c31e8abe329512b696b69b1
|
||||||
|
afa1ed2c492aab6b2c509767ef75b29457f02c4b20ed643bb2a4dc9c2c41476dafd55c6e7ac8c769db1bc345193ec629645dea4112b3105e35f94ad8b23fb599
|
||||||
|
4d97cfb2d9ca1d739ba00e2f3f6cdce71c76782015526d6119d9d2308fb2126089d664ed5f6e42582fca810a363a9b152b6b500c6fcc0a88a39b5a321e135f95
|
||||||
|
935d5ad1b1b35f332ae51345c4200a8ed0884dc43e86f4eb52057f022ae17d876104fd05decee9689b472e39674d577e276670761db334c219ddea16cd3bd9c2
|
||||||
|
0d211536986f25f3c0b74adb8d73e777c5b4fc05b9522ee3ff992bfa3c81d70f2b81ce800f2f860546ba53da1e172ae2c0426944fdbe80c9c17007540bbce185
|
||||||
|
c75054f07adafc2fc8a1fedff69c9561da1a6e916a9f864850388f542408d9035a32d5778ab07a767659912c13642aaa64ae4cadd9237248d85073e0aa3edb3d
|
||||||
|
1441a91b36c968c0e04ed69ffb3deba051a8879c72bf394c569cbdb607feedc9c7363338e5f2b01968f2f8172616e3c1ec54b5fbcdf6fcec2d3ba21fccc6ac46
|
||||||
|
de15a0ac7414b4b2b67f4513ce79d45ac69af378b9991b07599cf718168b812885974848ff03e71f153e23a68cf5813ae4fbc0ad087ebed0c2a06ca0aa2fd9c1
|
||||||
|
036982b48b23189ceca22d262dca86361b9d74d4f2c3fa8227dd42ef89606bcbce92ef7306bb18ce5c754e2f5e64b0b3083bb1b66b0b430d993dd9a2b034ce6f
|
||||||
|
322631e647b2f28f597c741712bd053f1a4c9892a698e0972a8161861e983e80e6b71acdd68dbf010000ffff0300504b0304140006000800000021000dd1909f
|
||||||
|
b60000001b010000270000007468656d652f7468656d652f5f72656c732f7468656d654d616e616765722e786d6c2e72656c73848f4d0ac2301484f78277086f
|
||||||
|
6fd3ba109126dd88d0add40384e4350d363f2451eced0dae2c082e8761be9969bb979dc9136332de3168aa1a083ae995719ac16db8ec8e4052164e89d93b64b0
|
||||||
|
60828e6f37ed1567914b284d262452282e3198720e274a939cd08a54f980ae38a38f56e422a3a641c8bbd048f7757da0f19b017cc524bd62107bd5001996509a
|
||||||
|
ffb3fd381a89672f1f165dfe514173d9850528a2c6cce0239baa4c04ca5bbabac4df000000ffff0300504b01022d0014000600080000002100e9de0fbfff0000
|
||||||
|
001c0200001300000000000000000000000000000000005b436f6e74656e745f54797065735d2e786d6c504b01022d0014000600080000002100a5d6a7e7c000
|
||||||
|
0000360100000b00000000000000000000000000300100005f72656c732f2e72656c73504b01022d00140006000800000021006b799616830000008a0000001c
|
||||||
|
00000000000000000000000000190200007468656d652f7468656d652f7468656d654d616e616765722e786d6c504b01022d001400060008000000210060ffbf
|
||||||
|
f5a4060000a21b00001600000000000000000000000000d60200007468656d652f7468656d652f7468656d65312e786d6c504b01022d00140006000800000021
|
||||||
|
000dd1909fb60000001b0100002700000000000000000000000000ae0900007468656d652f7468656d652f5f72656c732f7468656d654d616e616765722e786d6c2e72656c73504b050600000000050005005d010000a90a00000000}
|
||||||
|
{\*\colorschememapping 3c3f786d6c2076657273696f6e3d22312e302220656e636f64696e673d225554462d3822207374616e64616c6f6e653d22796573223f3e0d0a3c613a636c724d
|
||||||
|
617020786d6c6e733a613d22687474703a2f2f736368656d61732e6f70656e786d6c666f726d6174732e6f72672f64726177696e676d6c2f323030362f6d6169
|
||||||
|
6e22206267313d226c743122207478313d22646b3122206267323d226c743222207478323d22646b322220616363656e74313d22616363656e74312220616363
|
||||||
|
656e74323d22616363656e74322220616363656e74333d22616363656e74332220616363656e74343d22616363656e74342220616363656e74353d22616363656e74352220616363656e74363d22616363656e74362220686c696e6b3d22686c696e6b2220666f6c486c696e6b3d22666f6c486c696e6b222f3e}
|
||||||
|
{\*\latentstyles\lsdstimax267\lsdlockeddef0\lsdsemihiddendef1\lsdunhideuseddef1\lsdqformatdef0\lsdprioritydef99{\lsdlockedexcept \lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority0 \lsdlocked0 Normal;
|
||||||
|
\lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority9 \lsdlocked0 heading 1;\lsdqformat1 \lsdpriority9 \lsdlocked0 heading 2;\lsdqformat1 \lsdpriority9 \lsdlocked0 heading 3;\lsdqformat1 \lsdpriority9 \lsdlocked0 heading 4;
|
||||||
|
\lsdqformat1 \lsdpriority9 \lsdlocked0 heading 5;\lsdqformat1 \lsdpriority9 \lsdlocked0 heading 6;\lsdqformat1 \lsdpriority9 \lsdlocked0 heading 7;\lsdqformat1 \lsdpriority9 \lsdlocked0 heading 8;\lsdqformat1 \lsdpriority9 \lsdlocked0 heading 9;
|
||||||
|
\lsdpriority39 \lsdlocked0 toc 1;\lsdpriority39 \lsdlocked0 toc 2;\lsdpriority39 \lsdlocked0 toc 3;\lsdpriority39 \lsdlocked0 toc 4;\lsdpriority39 \lsdlocked0 toc 5;\lsdpriority39 \lsdlocked0 toc 6;\lsdpriority39 \lsdlocked0 toc 7;
|
||||||
|
\lsdpriority39 \lsdlocked0 toc 8;\lsdpriority39 \lsdlocked0 toc 9;\lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdlocked0 caption;\lsdunhideused0 \lsdlocked0 List;\lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority10 \lsdlocked0 Title;
|
||||||
|
\lsdpriority1 \lsdlocked0 Default Paragraph Font;\lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority11 \lsdlocked0 Subtitle;\lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority22 \lsdlocked0 Strong;
|
||||||
|
\lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority20 \lsdlocked0 Emphasis;\lsdsemihidden0 \lsdunhideused0 \lsdpriority59 \lsdlocked0 Table Grid;\lsdunhideused0 \lsdlocked0 Placeholder Text;
|
||||||
|
\lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority1 \lsdlocked0 No Spacing;\lsdsemihidden0 \lsdunhideused0 \lsdpriority60 \lsdlocked0 Light Shading;\lsdsemihidden0 \lsdunhideused0 \lsdpriority61 \lsdlocked0 Light List;
|
||||||
|
\lsdsemihidden0 \lsdunhideused0 \lsdpriority62 \lsdlocked0 Light Grid;\lsdsemihidden0 \lsdunhideused0 \lsdpriority63 \lsdlocked0 Medium Shading 1;\lsdsemihidden0 \lsdunhideused0 \lsdpriority64 \lsdlocked0 Medium Shading 2;
|
||||||
|
\lsdsemihidden0 \lsdunhideused0 \lsdpriority65 \lsdlocked0 Medium List 1;\lsdsemihidden0 \lsdunhideused0 \lsdpriority66 \lsdlocked0 Medium List 2;\lsdsemihidden0 \lsdunhideused0 \lsdpriority67 \lsdlocked0 Medium Grid 1;
|
||||||
|
\lsdsemihidden0 \lsdunhideused0 \lsdpriority68 \lsdlocked0 Medium Grid 2;\lsdsemihidden0 \lsdunhideused0 \lsdpriority69 \lsdlocked0 Medium Grid 3;\lsdsemihidden0 \lsdunhideused0 \lsdpriority70 \lsdlocked0 Dark List;
|
||||||
|
\lsdsemihidden0 \lsdunhideused0 \lsdpriority71 \lsdlocked0 Colorful Shading;\lsdsemihidden0 \lsdunhideused0 \lsdpriority72 \lsdlocked0 Colorful List;\lsdsemihidden0 \lsdunhideused0 \lsdpriority73 \lsdlocked0 Colorful Grid;
|
||||||
|
\lsdsemihidden0 \lsdunhideused0 \lsdpriority60 \lsdlocked0 Light Shading Accent 1;\lsdsemihidden0 \lsdunhideused0 \lsdpriority61 \lsdlocked0 Light List Accent 1;\lsdsemihidden0 \lsdunhideused0 \lsdpriority62 \lsdlocked0 Light Grid Accent 1;
|
||||||
|
\lsdsemihidden0 \lsdunhideused0 \lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 1;\lsdsemihidden0 \lsdunhideused0 \lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 1;\lsdsemihidden0 \lsdunhideused0 \lsdpriority65 \lsdlocked0 Medium List 1 Accent 1;
|
||||||
|
\lsdunhideused0 \lsdlocked0 Revision;\lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority34 \lsdlocked0 List Paragraph;\lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority29 \lsdlocked0 Quote;
|
||||||
|
\lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority30 \lsdlocked0 Intense Quote;\lsdsemihidden0 \lsdunhideused0 \lsdpriority66 \lsdlocked0 Medium List 2 Accent 1;\lsdsemihidden0 \lsdunhideused0 \lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 1;
|
||||||
|
\lsdsemihidden0 \lsdunhideused0 \lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 1;\lsdsemihidden0 \lsdunhideused0 \lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 1;\lsdsemihidden0 \lsdunhideused0 \lsdpriority70 \lsdlocked0 Dark List Accent 1;
|
||||||
|
\lsdsemihidden0 \lsdunhideused0 \lsdpriority71 \lsdlocked0 Colorful Shading Accent 1;\lsdsemihidden0 \lsdunhideused0 \lsdpriority72 \lsdlocked0 Colorful List Accent 1;\lsdsemihidden0 \lsdunhideused0 \lsdpriority73 \lsdlocked0 Colorful Grid Accent 1;
|
||||||
|
\lsdsemihidden0 \lsdunhideused0 \lsdpriority60 \lsdlocked0 Light Shading Accent 2;\lsdsemihidden0 \lsdunhideused0 \lsdpriority61 \lsdlocked0 Light List Accent 2;\lsdsemihidden0 \lsdunhideused0 \lsdpriority62 \lsdlocked0 Light Grid Accent 2;
|
||||||
|
\lsdsemihidden0 \lsdunhideused0 \lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 2;\lsdsemihidden0 \lsdunhideused0 \lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 2;\lsdsemihidden0 \lsdunhideused0 \lsdpriority65 \lsdlocked0 Medium List 1 Accent 2;
|
||||||
|
\lsdsemihidden0 \lsdunhideused0 \lsdpriority66 \lsdlocked0 Medium List 2 Accent 2;\lsdsemihidden0 \lsdunhideused0 \lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 2;\lsdsemihidden0 \lsdunhideused0 \lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 2;
|
||||||
|
\lsdsemihidden0 \lsdunhideused0 \lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 2;\lsdsemihidden0 \lsdunhideused0 \lsdpriority70 \lsdlocked0 Dark List Accent 2;\lsdsemihidden0 \lsdunhideused0 \lsdpriority71 \lsdlocked0 Colorful Shading Accent 2;
|
||||||
|
\lsdsemihidden0 \lsdunhideused0 \lsdpriority72 \lsdlocked0 Colorful List Accent 2;\lsdsemihidden0 \lsdunhideused0 \lsdpriority73 \lsdlocked0 Colorful Grid Accent 2;\lsdsemihidden0 \lsdunhideused0 \lsdpriority60 \lsdlocked0 Light Shading Accent 3;
|
||||||
|
\lsdsemihidden0 \lsdunhideused0 \lsdpriority61 \lsdlocked0 Light List Accent 3;\lsdsemihidden0 \lsdunhideused0 \lsdpriority62 \lsdlocked0 Light Grid Accent 3;\lsdsemihidden0 \lsdunhideused0 \lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 3;
|
||||||
|
\lsdsemihidden0 \lsdunhideused0 \lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 3;\lsdsemihidden0 \lsdunhideused0 \lsdpriority65 \lsdlocked0 Medium List 1 Accent 3;\lsdsemihidden0 \lsdunhideused0 \lsdpriority66 \lsdlocked0 Medium List 2 Accent 3;
|
||||||
|
\lsdsemihidden0 \lsdunhideused0 \lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 3;\lsdsemihidden0 \lsdunhideused0 \lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 3;\lsdsemihidden0 \lsdunhideused0 \lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 3;
|
||||||
|
\lsdsemihidden0 \lsdunhideused0 \lsdpriority70 \lsdlocked0 Dark List Accent 3;\lsdsemihidden0 \lsdunhideused0 \lsdpriority71 \lsdlocked0 Colorful Shading Accent 3;\lsdsemihidden0 \lsdunhideused0 \lsdpriority72 \lsdlocked0 Colorful List Accent 3;
|
||||||
|
\lsdsemihidden0 \lsdunhideused0 \lsdpriority73 \lsdlocked0 Colorful Grid Accent 3;\lsdsemihidden0 \lsdunhideused0 \lsdpriority60 \lsdlocked0 Light Shading Accent 4;\lsdsemihidden0 \lsdunhideused0 \lsdpriority61 \lsdlocked0 Light List Accent 4;
|
||||||
|
\lsdsemihidden0 \lsdunhideused0 \lsdpriority62 \lsdlocked0 Light Grid Accent 4;\lsdsemihidden0 \lsdunhideused0 \lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 4;\lsdsemihidden0 \lsdunhideused0 \lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 4;
|
||||||
|
\lsdsemihidden0 \lsdunhideused0 \lsdpriority65 \lsdlocked0 Medium List 1 Accent 4;\lsdsemihidden0 \lsdunhideused0 \lsdpriority66 \lsdlocked0 Medium List 2 Accent 4;\lsdsemihidden0 \lsdunhideused0 \lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 4;
|
||||||
|
\lsdsemihidden0 \lsdunhideused0 \lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 4;\lsdsemihidden0 \lsdunhideused0 \lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 4;\lsdsemihidden0 \lsdunhideused0 \lsdpriority70 \lsdlocked0 Dark List Accent 4;
|
||||||
|
\lsdsemihidden0 \lsdunhideused0 \lsdpriority71 \lsdlocked0 Colorful Shading Accent 4;\lsdsemihidden0 \lsdunhideused0 \lsdpriority72 \lsdlocked0 Colorful List Accent 4;\lsdsemihidden0 \lsdunhideused0 \lsdpriority73 \lsdlocked0 Colorful Grid Accent 4;
|
||||||
|
\lsdsemihidden0 \lsdunhideused0 \lsdpriority60 \lsdlocked0 Light Shading Accent 5;\lsdsemihidden0 \lsdunhideused0 \lsdpriority61 \lsdlocked0 Light List Accent 5;\lsdsemihidden0 \lsdunhideused0 \lsdpriority62 \lsdlocked0 Light Grid Accent 5;
|
||||||
|
\lsdsemihidden0 \lsdunhideused0 \lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 5;\lsdsemihidden0 \lsdunhideused0 \lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 5;\lsdsemihidden0 \lsdunhideused0 \lsdpriority65 \lsdlocked0 Medium List 1 Accent 5;
|
||||||
|
\lsdsemihidden0 \lsdunhideused0 \lsdpriority66 \lsdlocked0 Medium List 2 Accent 5;\lsdsemihidden0 \lsdunhideused0 \lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 5;\lsdsemihidden0 \lsdunhideused0 \lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 5;
|
||||||
|
\lsdsemihidden0 \lsdunhideused0 \lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 5;\lsdsemihidden0 \lsdunhideused0 \lsdpriority70 \lsdlocked0 Dark List Accent 5;\lsdsemihidden0 \lsdunhideused0 \lsdpriority71 \lsdlocked0 Colorful Shading Accent 5;
|
||||||
|
\lsdsemihidden0 \lsdunhideused0 \lsdpriority72 \lsdlocked0 Colorful List Accent 5;\lsdsemihidden0 \lsdunhideused0 \lsdpriority73 \lsdlocked0 Colorful Grid Accent 5;\lsdsemihidden0 \lsdunhideused0 \lsdpriority60 \lsdlocked0 Light Shading Accent 6;
|
||||||
|
\lsdsemihidden0 \lsdunhideused0 \lsdpriority61 \lsdlocked0 Light List Accent 6;\lsdsemihidden0 \lsdunhideused0 \lsdpriority62 \lsdlocked0 Light Grid Accent 6;\lsdsemihidden0 \lsdunhideused0 \lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 6;
|
||||||
|
\lsdsemihidden0 \lsdunhideused0 \lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 6;\lsdsemihidden0 \lsdunhideused0 \lsdpriority65 \lsdlocked0 Medium List 1 Accent 6;\lsdsemihidden0 \lsdunhideused0 \lsdpriority66 \lsdlocked0 Medium List 2 Accent 6;
|
||||||
|
\lsdsemihidden0 \lsdunhideused0 \lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 6;\lsdsemihidden0 \lsdunhideused0 \lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 6;\lsdsemihidden0 \lsdunhideused0 \lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 6;
|
||||||
|
\lsdsemihidden0 \lsdunhideused0 \lsdpriority70 \lsdlocked0 Dark List Accent 6;\lsdsemihidden0 \lsdunhideused0 \lsdpriority71 \lsdlocked0 Colorful Shading Accent 6;\lsdsemihidden0 \lsdunhideused0 \lsdpriority72 \lsdlocked0 Colorful List Accent 6;
|
||||||
|
\lsdsemihidden0 \lsdunhideused0 \lsdpriority73 \lsdlocked0 Colorful Grid Accent 6;\lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority19 \lsdlocked0 Subtle Emphasis;
|
||||||
|
\lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority21 \lsdlocked0 Intense Emphasis;\lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority31 \lsdlocked0 Subtle Reference;
|
||||||
|
\lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority32 \lsdlocked0 Intense Reference;\lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority33 \lsdlocked0 Book Title;\lsdpriority37 \lsdlocked0 Bibliography;
|
||||||
|
\lsdqformat1 \lsdpriority39 \lsdlocked0 TOC Heading;}}{\*\datastore 0105000002000000180000004d73786d6c322e534158584d4c5265616465722e362e3000000000000000000000060000
|
||||||
|
d0cf11e0a1b11ae1000000000000000000000000000000003e000300feff090006000000000000000000000001000000010000000000000000100000feffffff00000000feffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
|
||||||
|
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
|
||||||
|
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
|
||||||
|
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
|
||||||
|
fffffffffffffffffdfffffffeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
|
||||||
|
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
|
||||||
|
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
|
||||||
|
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
|
||||||
|
ffffffffffffffffffffffffffffffff52006f006f007400200045006e00740072007900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000016000500ffffffffffffffffffffffff0c6ad98892f1d411a65f0040963251e500000000000000000000000010db
|
||||||
|
9f3f143bd001feffffff00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffff00000000000000000000000000000000000000000000000000000000
|
||||||
|
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffff0000000000000000000000000000000000000000000000000000
|
||||||
|
000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffff000000000000000000000000000000000000000000000000
|
||||||
|
0000000000000000000000000000000000000000000000000105000000000000}}
|
760
publish/zaaReloaded2.iss
Executable file
760
publish/zaaReloaded2.iss
Executable file
@ -0,0 +1,760 @@
|
|||||||
|
; Inno Setup script for zaaReloaded2
|
||||||
|
; (c) 2015 Daniel Kraus
|
||||||
|
; Apache License Version 2.0
|
||||||
|
|
||||||
|
[Setup]
|
||||||
|
; #define DEBUG
|
||||||
|
|
||||||
|
; Read the semantic and the installer file version from the VERSION file
|
||||||
|
#define FILE_HANDLE FileOpen("..\zaaReloaded2\VERSION")
|
||||||
|
#define SEMVER FileRead(FILE_HANDLE)
|
||||||
|
#define VER FileRead(FILE_HANDLE)
|
||||||
|
#expr FileClose(FILE_HANDLE)
|
||||||
|
|
||||||
|
#define YEAR "2015"
|
||||||
|
#define DEV "Daniel Kraus"
|
||||||
|
#define LOGFILE "INST-LOG.TXT"
|
||||||
|
#define REGKEY "Software\Microsoft\Office\Word\Addins\zaaReloaded2"
|
||||||
|
#define APPNAME "zaaReloaded"
|
||||||
|
#define SLOGAN "Word-Addin, das Lauris-Laborwerte in der Zentralen Arztbriefablage formatiert"
|
||||||
|
#define UNINSTALLDIR "{app}\setup"
|
||||||
|
#define ADDINNAME "zaaReloaded2"
|
||||||
|
#define DOTNETSHA1 "58da3d74db353aad03588cbb5cea8234166d8b99"
|
||||||
|
#define VSTORSHA1 "ad1dcc5325cb31754105c8c783995649e2208571"
|
||||||
|
|
||||||
|
#ifndef DEBUG
|
||||||
|
#define SOURCEDIR "Release"
|
||||||
|
#define VSTORURL "http://download.microsoft.com/download/2/E/9/2E9D2603-6D1F-4B12-BD37-DB1410B23597/vstor_redist.exe"
|
||||||
|
#define DOTNETURL "http://download.microsoft.com/download/9/5/A/95A9616B-7A37-4AF6-BC36-D6EA96C8DAAE/dotNetFx40_Full_x86_x64.exe"
|
||||||
|
; Build the solution with Release configuration
|
||||||
|
#expr Exec("C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE\devenv.com", \
|
||||||
|
"x:\Code\zaaReloaded2\zaaReloaded2\zaaReloaded2.csproj /Build Release")
|
||||||
|
#else
|
||||||
|
#define SOURCEDIR "Debug"
|
||||||
|
#define VSTORURL "http://vhost/vstor_redist.exe"
|
||||||
|
#define DOTNETURL "http://vhost/dotNetFx40_Full_x86_x64.exe"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
; Specific AppID - NEVER CHANGE THIS!
|
||||||
|
AppId={{8520B887-3AB1-422B-AB6B-A265D14FE4E5}
|
||||||
|
|
||||||
|
; Compiler info
|
||||||
|
OutputDir=release
|
||||||
|
#ifndef DEBUG
|
||||||
|
OutputBaseFilename=zaaReloaded-{#SEMVER}
|
||||||
|
#else
|
||||||
|
OutputBaseFilename=zaaReloaded-debug
|
||||||
|
#endif
|
||||||
|
Compression=lzma
|
||||||
|
InternalCompressLevel=max
|
||||||
|
SolidCompression=true
|
||||||
|
LicenseFile=setup-files\license.rtf
|
||||||
|
|
||||||
|
; Application name, version, etc.
|
||||||
|
AppName={#APPNAME}
|
||||||
|
AppVersion={#SEMVER}
|
||||||
|
AppPublisher={#DEV}
|
||||||
|
AppCopyright=2008-{#YEAR} {#DEV}
|
||||||
|
AppComments={#SLOGAN}
|
||||||
|
VersionInfoDescription={#SLOGAN}
|
||||||
|
VersionInfoVersion={#VER}
|
||||||
|
VersionInfoProductVersion={#VER}
|
||||||
|
VersionInfoTextVersion={#SEMVER}
|
||||||
|
VersionInfoProductTextVersion={#SEMVER}
|
||||||
|
AppContact={#DEV}
|
||||||
|
AppPublisherURL=http://zaa.nephrowiki.de
|
||||||
|
AppSupportURL=http://zaa.nephrowiki.de
|
||||||
|
AppUpdatesURL=http://zaa.nephrowiki.de
|
||||||
|
|
||||||
|
; Setup wizard
|
||||||
|
;SetupIconFile=setup-files\xltoolbox.ico
|
||||||
|
;WizardImageFile=setup-files\installbanner.bmp
|
||||||
|
;WizardSmallImageFile=setup-files\icon-48.bmp
|
||||||
|
ArchitecturesAllowed=x86 x64
|
||||||
|
ArchitecturesInstallIn64BitMode=x64
|
||||||
|
DisableProgramGroupPage=true
|
||||||
|
DisableDirPage=false
|
||||||
|
DisableReadyPage=false
|
||||||
|
LanguageDetectionMethod=locale
|
||||||
|
TimeStampsInUTC=false
|
||||||
|
PrivilegesRequired=lowest
|
||||||
|
WizardImageStretch=false
|
||||||
|
WizardImageBackColor=clWhite
|
||||||
|
; ChangesAssociations=true
|
||||||
|
AppendDefaultDirName=false
|
||||||
|
DefaultDirName={code:SuggestInstallDir}
|
||||||
|
CreateAppDir=true
|
||||||
|
CloseApplicationsFilter=*.*
|
||||||
|
DefaultDialogFontName=Segoe UI
|
||||||
|
|
||||||
|
; Uninstall
|
||||||
|
;UninstallDisplayIcon={#UNINSTALLDIR}\xltoolbox.ico
|
||||||
|
UninstallFilesDir={#UNINSTALLDIR}
|
||||||
|
|
||||||
|
; Inno Downloader Plugin is required for this
|
||||||
|
; Note that this include directive MUST be located at the end of the [setup]
|
||||||
|
; section.
|
||||||
|
#include <idp.iss>
|
||||||
|
|
||||||
|
[Languages]
|
||||||
|
Name: en; MessagesFile: compiler:Default.isl;
|
||||||
|
Name: de; MessagesFile: compiler:Languages\German.isl;
|
||||||
|
; Name: Brasileiro; MessagesFile: compiler:Languages\BrazilianPortuguese.isl;
|
||||||
|
; Name: Portugues; MessagesFile: compiler:Languages\Portuguese.isl;
|
||||||
|
#include "c:\Program Files (x86)\Inno Download Plugin\Unicode\idplang\german.iss"
|
||||||
|
|
||||||
|
[Files]
|
||||||
|
Source: "..\zaaReloaded2\bin\{#SOURCEDIR}\*"; DestDir: "{app}"; Flags: ignoreversion createallsubdirs recursesubdirs
|
||||||
|
; Source: "setup-files\xltoolbox.ico"; DestDir: "{#UNINSTALLDIR}"
|
||||||
|
; NOTE: Don't use "Flags: ignoreversion" on any shared system files
|
||||||
|
|
||||||
|
[Registry]
|
||||||
|
; Keys for single-user install (HKCU)
|
||||||
|
Check: not IsMultiUserInstall; ValueName: Description; ValueData: {#SLOGAN}; ValueType: string; Root: HKCU; Subkey: {#REGKEY}; Flags: uninsdeletekey
|
||||||
|
Check: not IsMultiUserInstall; ValueName: FriendlyName; ValueData: {#APPNAME}; ValueType: string; Root: HKCU; Subkey: {#REGKEY}; Flags: uninsdeletekey
|
||||||
|
Check: not IsMultiUserInstall; ValueName: LoadBehavior; ValueData: 3; ValueType: dword; Root: HKCU; Subkey: {#REGKEY}; Flags: uninsdeletekey
|
||||||
|
Check: not IsMultiUserInstall; ValueName: Warmup; ValueData: 1; ValueType: dword; Root: HKCU; Subkey: {#REGKEY}; Flags: uninsdeletekey
|
||||||
|
Check: not IsMultiUserInstall; ValueName: Manifest; ValueData: file:///{code:ConvertSlash|{app}}/{#ADDINNAME}.vsto|vstolocal; ValueType: string; Root: HKCU; Subkey: {#REGKEY}; Flags: uninsdeletekey
|
||||||
|
|
||||||
|
; Same keys again, this time for multi-user install (HKLM)
|
||||||
|
Check: IsMultiUserInstall; ValueName: Description; ValueData: {#SLOGAN}; ValueType: string; Root: HKLM; Subkey: {#REGKEY}; Flags: uninsdeletekey
|
||||||
|
Check: IsMultiUserInstall; ValueName: FriendlyName; ValueData: {#APPNAME}; ValueType: string; Root: HKLM; Subkey: {#REGKEY}; Flags: uninsdeletekey
|
||||||
|
Check: IsMultiUserInstall; ValueName: LoadBehavior; ValueData: 3; ValueType: dword; Root: HKLM; Subkey: {#REGKEY}; Flags: uninsdeletekey
|
||||||
|
Check: IsMultiUserInstall; ValueName: Warmup; ValueData: 1; ValueType: dword; Root: HKLM; Subkey: {#REGKEY}; Flags: uninsdeletekey
|
||||||
|
Check: IsMultiUserInstall; ValueName: Manifest; ValueData: file:///{code:ConvertSlash|{app}}/{#ADDINNAME}.vsto|vstolocal; ValueType: string; Root: HKLM; Subkey: {#REGKEY}; Flags: uninsdeletekey
|
||||||
|
|
||||||
|
[Run]
|
||||||
|
; Filename: http://xltoolbox.sourceforge.net/welcome.html; Flags: shellexec nowait; Check: ShowWelcomePageInBrowser
|
||||||
|
|
||||||
|
[UninstallRun]
|
||||||
|
; Filename: http://xltoolbox.sourceforge.net/uninstall.html; Flags: shellexec nowait
|
||||||
|
|
||||||
|
[CustomMessages]
|
||||||
|
; General messages [EN]
|
||||||
|
en.SingleOrMulti=Single-user or system-wide install
|
||||||
|
en.SingleOrMultiSubcaption=Install for the current user only or for all users
|
||||||
|
en.SingleOrMultiDesc=Please indicate the scope of this installation:
|
||||||
|
en.SingleOrMultiSingle=Single user (only for me)
|
||||||
|
en.SingleOrMultiAll=All users (system-wide)
|
||||||
|
en.Word2007Required=zaaReloaded requires Word 2007 or later.
|
||||||
|
|
||||||
|
; CannotInstallPage [EN]
|
||||||
|
en.CannotInstallCaption=Administrator privileges required
|
||||||
|
en.CannotInstallDesc=You do not have the necessary rights to install additional required runtime files.
|
||||||
|
en.CannotInstallMsg=Additional runtime files from Microsoft are required to run this add-in. You may continue the installation, but the add-in won't start unless the required runtime files are installed by an administrator. Note: On Windows Vista and newer, right-click the installer file and choose 'Run as administrator'.
|
||||||
|
en.CannotInstallCont=Continue anyway, although it won't work without the required runtime files
|
||||||
|
en.CannotInstallAbort=Abort the installation (come back when the admin has installed the files)
|
||||||
|
|
||||||
|
; DownloadInfoPage [EN]
|
||||||
|
en.RequiredCaption=Additional runtime files required
|
||||||
|
en.RequiredDesc=Additional runtime files for the .NET framework from Microsoft are required in order to run the add-in.
|
||||||
|
en.RequiredMsg=%d file(s) totalling about %s MiB need to be downloaded from the Microsoft servers. Click 'Next' to start downloading.
|
||||||
|
|
||||||
|
; InstallInfoPage [EN]
|
||||||
|
en.InstallCaption=Runtime files downloaded
|
||||||
|
en.InstallDesc=The required runtime files are ready to install.
|
||||||
|
en.InstallMsg=Click 'Next' to beginn the installation.
|
||||||
|
|
||||||
|
en.StillNotInstalled=The required additional runtime files are still not installed. Setup cannot continue. You may try again, or abort the add-in installation.
|
||||||
|
en.DownloadNotValidated=A downloaded file has unexpected content. It may have not been downloaded correctly, or someone might have hampered with it. You may click 'Back' and then 'Next' to download it again.
|
||||||
|
|
||||||
|
; General messages [DE]
|
||||||
|
de.SingleOrMulti=Einzelner oder alle Benutzer
|
||||||
|
de.SingleOrMultiSubcaption=Geben Sie an, für wen die Installation sein soll
|
||||||
|
de.SingleOrMultiDesc=Bitte geben Sie an, ob das Addin nur für Sie oder für alle Benutzer installiert werden soll.
|
||||||
|
de.SingleOrMultiSingle=Ein Benutzer (nur für mich)
|
||||||
|
de.SingleOrMultiAll=Alle Benutzer (systemweit)
|
||||||
|
de.Word2007Required=Dieses Addin erfordert mindestens Word 2007.
|
||||||
|
|
||||||
|
; "Download required" messages (.NET and VSTOR runtimes) [DE]
|
||||||
|
de.CannotInstallCaption=Administratorrechte benötigt
|
||||||
|
de.CannotInstallDesc=Sie haben nicht die erforderlichen Benutzerrechte, um weitere benötigte Laufzeitdateien zu installieren.
|
||||||
|
de.CannotInstallMsg=Sie können mit der Installation fortfahren, aber das Addin wird nicht starten, solange die VSTO-Laufzeitdateien nicht von einem Admin installiert wurden. Tipp: Wenn Sie Windows Vista oder neuer verwenden, klicken Sie mit der rechten Maustaste auf die Installationsdatei und wählen "Als Administrator ausführen".
|
||||||
|
de.CannotInstallCont=Trotzdem installieren, obwohl es nicht funktionieren wird
|
||||||
|
de.CannotInstallAbort=Installation abbrechen
|
||||||
|
|
||||||
|
; DownloadInfoPage [EN]
|
||||||
|
de.RequiredCaption=Weitere Laufzeitdateien erforderlich
|
||||||
|
de.RequiredDesc=Weitere Laufzeitdateien für das .NET-Framework von Microsoft werden benötigt, um das Addin verwenden zu können.
|
||||||
|
de.RequiredMsg=%d Datei(en) mit ca. %s MiB muß/müssen von den Microsoft-Servern heruntergeladen werden. Klicken Sie 'Weiter', um den Download zu beginnen.
|
||||||
|
|
||||||
|
; InstallInfoPage [EN]
|
||||||
|
de.InstallCaption=Weitere .NET-Laufzeitdateien heruntergeladen
|
||||||
|
de.InstallDesc=Die zusätzlichen benötigten Dateien von Microsoft können jetzt installiert werden.
|
||||||
|
de.InstallMsg=Klicken Sie 'Weiter', um mit der Installation zu beginnen.
|
||||||
|
|
||||||
|
de.StillNotInstalled=Die zusätzlichen benötigten Dateien wurden leider nicht korrekt installiert, so daß die Installation nicht fortgesetzt werden kann.
|
||||||
|
de.DownloadNotValidated=Es wurde unerwarteter Inhalt in einer heruntergeladenen Datei gefunden. Die Installation kann so nicht fortgesetzt werden. Sie können aber 'Zurück' und dann 'Weiter' klicken, um den Download neu zu beginnen.
|
||||||
|
|
||||||
|
[Code]
|
||||||
|
const
|
||||||
|
maxWord = 24; //< highest Word version number to check for.
|
||||||
|
|
||||||
|
var
|
||||||
|
PageDevelopmentInfo: TInputOptionWizardPage;
|
||||||
|
PageSingleOrMultiUser: TInputOptionWizardPage;
|
||||||
|
PageCannotInstall: TInputOptionWizardPage;
|
||||||
|
PageDownloadInfo: TOutputMsgWizardPage;
|
||||||
|
PageInstallInfo: TOutputMsgWizardPage;
|
||||||
|
prerequisitesChecked: boolean;
|
||||||
|
prerequisitesMet: boolean;
|
||||||
|
|
||||||
|
/// Returns the path for the Wow6432Node registry tree if the current operating
|
||||||
|
/// system is 64-bit, i.e., simulates WOW64 redirection.
|
||||||
|
function GetWowNode(): string;
|
||||||
|
begin
|
||||||
|
if IsWin64 then
|
||||||
|
begin
|
||||||
|
result := 'Wow6432Node\';
|
||||||
|
end
|
||||||
|
else
|
||||||
|
begin
|
||||||
|
result := '';
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
|
/// Checks if a given Word version is installed
|
||||||
|
function IsWordVersionInstalled(version: integer): boolean;
|
||||||
|
var key: string;
|
||||||
|
var lookup1, lookup2: boolean;
|
||||||
|
begin
|
||||||
|
key := 'Microsoft\Office\' + IntToStr(version) + '.0\Word\InstallRoot';
|
||||||
|
lookup1 := RegKeyExists(HKEY_LOCAL_MACHINE, 'SOFTWARE\' + GetWowNode + key);
|
||||||
|
|
||||||
|
// If checking for version >= 14.0 ("2010"), which was the first version
|
||||||
|
// that was produced in both 32-bit and 64-bit, on a 64-bit system we
|
||||||
|
// also need to check a path without 'Wow6434Node'.
|
||||||
|
if IsWin64 and (version >= 14) then
|
||||||
|
begin
|
||||||
|
lookup2 := RegKeyExists(HKEY_LOCAL_MACHINE, 'SOFTWARE\' + key);
|
||||||
|
end;
|
||||||
|
|
||||||
|
result := lookup1 or lookup2;
|
||||||
|
end;
|
||||||
|
|
||||||
|
/// Checks if only Word 2007 is installed
|
||||||
|
function IsOnlyWord2007Installed(): boolean;
|
||||||
|
var
|
||||||
|
i: integer;
|
||||||
|
begin
|
||||||
|
result := IsWordVersionInstalled(12);
|
||||||
|
|
||||||
|
// Iterate through all
|
||||||
|
for i := 14 to maxWord do
|
||||||
|
begin
|
||||||
|
if IsWordVersionInstalled(i) then
|
||||||
|
begin
|
||||||
|
result := false;
|
||||||
|
break;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
|
/// Checks if hotfix KB976477 is installed. This hotfix
|
||||||
|
/// is required to make Word 2007 recognize add-ins in
|
||||||
|
/// the HKLM hive as well.
|
||||||
|
function IsHotfixInstalled(): boolean;
|
||||||
|
begin
|
||||||
|
result := RegKeyExists(HKEY_LOCAL_MACHINE,
|
||||||
|
'SOFTWARE\Microsoft\Windows\Current Version\Uninstall\KB976477');
|
||||||
|
end;
|
||||||
|
|
||||||
|
/// Retrieves the build number of an installed Office version
|
||||||
|
/// in OutBuild. Returns true if the requested Office version
|
||||||
|
/// is installed and false if it is not installed.
|
||||||
|
function GetOfficeBuild(OfficeVersion: integer; var OutBuild: integer): boolean;
|
||||||
|
var
|
||||||
|
key: string;
|
||||||
|
value: string;
|
||||||
|
build: string;
|
||||||
|
begin
|
||||||
|
key := 'SOFTWARE\' + GetWowNode + 'Microsoft\Office\' +
|
||||||
|
IntToStr(OfficeVersion) + '.0\Common\ProductVersion';
|
||||||
|
if RegQueryStringValue(HKEY_LOCAL_MACHINE, key, 'LastProduct', value) then
|
||||||
|
begin
|
||||||
|
// Office build numbers always have 4 digits, at least as of Feb. 2015;
|
||||||
|
// from a string '14.0.1234.5000' simply copy 4 characters from the 5th
|
||||||
|
// position to get the build number. TODO: Make this future-proof.
|
||||||
|
build := Copy(value, 6, 4);
|
||||||
|
Log('Found ProductVersion "' + value + '" for queried Office version '
|
||||||
|
+ IntToStr(OfficeVersion) + ', extracted build number ' + build);
|
||||||
|
OutBuild := StrToInt(build);
|
||||||
|
result := true;
|
||||||
|
end
|
||||||
|
else
|
||||||
|
Log('Did not find LastProduct key for Office version ' +
|
||||||
|
IntToStr(OfficeVersion) + '.0.');
|
||||||
|
end;
|
||||||
|
|
||||||
|
/// Asserts if Office 2007 is installed. Does not check whether other Office
|
||||||
|
/// versions are concurrently installed.
|
||||||
|
function IsOffice2007Installed(): boolean;
|
||||||
|
begin
|
||||||
|
result := IsWordVersionInstalled(12);
|
||||||
|
if result then Log('Detected Office 2007.');
|
||||||
|
end;
|
||||||
|
|
||||||
|
/// Asserts if Office 2010 without service pack is installed.
|
||||||
|
/// For build number, see http://support.microsoft.com/kb/2121559/en-us
|
||||||
|
function IsOffice2010NoSpInstalled(): boolean;
|
||||||
|
var
|
||||||
|
build: integer;
|
||||||
|
begin
|
||||||
|
if GetOfficeBuild(14, build) then
|
||||||
|
begin
|
||||||
|
result := build = 4763; // 4763 is the original Office 2007 build
|
||||||
|
if result then
|
||||||
|
Log('Detected Office 2010 without service pack (v. 14.0, build 4763)')
|
||||||
|
else
|
||||||
|
Log('Detected Office 2010, apparently with some service pack (build ' +
|
||||||
|
IntToStr(build) + ').');
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
|
/// Checks if the VSTO runtime is installed. This is relevant if only
|
||||||
|
/// Word 2007 is installed. Since Office 2010, the CLR is
|
||||||
|
/// automatically included.
|
||||||
|
/// The presence of the VSTO runtime is indicated by the presence one of
|
||||||
|
/// four possible registry keys.
|
||||||
|
/// See: http://xltoolbox.sf.net/blog/2015/01/net-vsto-add-ins-getting-prerequisites-right
|
||||||
|
/// HKLM\SOFTWARE\Microsoft\VSTO Runtime Setup\v4R (32-bit)
|
||||||
|
/// HKLM\SOFTWARE\Wow6432Node\Microsoft\VSTO Runtime Setup\v4R (64-bit)
|
||||||
|
function IsVstorInstalled(): boolean;
|
||||||
|
var
|
||||||
|
software, vstorPath: string;
|
||||||
|
begin
|
||||||
|
software := 'SOFTWARE\';
|
||||||
|
vstorPath := 'Microsoft\VSTO Runtime Setup\v4R';
|
||||||
|
result := RegKeyExists(HKEY_LOCAL_MACHINE, software + GetWowNode + vstorPath);
|
||||||
|
end;
|
||||||
|
|
||||||
|
/// Checks if the .NET 4.0 (or 4.5) runtime is installed.
|
||||||
|
/// See https://msdn.microsoft.com/en-us/library/hh925568
|
||||||
|
function IsNetInstalled(): boolean;
|
||||||
|
begin
|
||||||
|
result := RegKeyExists(HKEY_LOCAL_MACHINE,
|
||||||
|
'SOFTWARE\' + GetWowNode + 'Microsoft\NET Framework Setup\NDP\v4');
|
||||||
|
end;
|
||||||
|
|
||||||
|
/// Asserts if the VSTO runtime for .NET 4.0 redistributable needs to be
|
||||||
|
/// downloaded and installed.
|
||||||
|
/// If Office 2010 SP 1 or newer is installed on the system, the VSTOR runtime
|
||||||
|
/// will be automagically configured as long as the .NET 4.0 runtime is present.
|
||||||
|
/// Office 2007 and Office 2010 without service pack need the VSTO runtime
|
||||||
|
/// redistributable. For details, see:
|
||||||
|
/// http://xltoolbox.sf.net/blog/2015/01/net-vsto-add-ins-getting-prerequisites-right
|
||||||
|
function NeedToInstallVstor(): boolean;
|
||||||
|
begin
|
||||||
|
result := false; // Default for Office 2010 SP1 or newer
|
||||||
|
if IsOffice2007Installed or IsOffice2010NoSpInstalled then
|
||||||
|
result := not IsVstorInstalled;
|
||||||
|
end;
|
||||||
|
|
||||||
|
/// Checks if all required prerequisites are met, i.e. if the necessary
|
||||||
|
/// runtimes are installed on the system
|
||||||
|
function PrerequisitesAreMet(): boolean;
|
||||||
|
begin
|
||||||
|
// Cache check result to avoid multiple registry lookups and log messages
|
||||||
|
if not prerequisitesChecked then
|
||||||
|
begin
|
||||||
|
prerequisitesMet := IsNetInstalled and not NeedToInstallVstor;
|
||||||
|
prerequisitesChecked := true;
|
||||||
|
end;
|
||||||
|
result := prerequisitesMet;
|
||||||
|
end;
|
||||||
|
|
||||||
|
/// Checks if a file exists and has a valid Sha1 sum.
|
||||||
|
function IsFileValid(file: string; expectedSha1: string): boolean;
|
||||||
|
var
|
||||||
|
actualSha1: string;
|
||||||
|
begin
|
||||||
|
try
|
||||||
|
if FileExists(file) then
|
||||||
|
begin
|
||||||
|
actualSha1 := GetSHA1OfFile(file);
|
||||||
|
end;
|
||||||
|
finally
|
||||||
|
result := actualSha1 = expectedSha1;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
|
/// Returns the path to the downloaded VSTO runtime installer.
|
||||||
|
function GetVstorInstallerPath(): string;
|
||||||
|
begin
|
||||||
|
result := ExpandConstant('{%temp}\vstor_redist_40.exe');
|
||||||
|
end;
|
||||||
|
|
||||||
|
/// Returns the path to the downloaded .NET runtime installer.
|
||||||
|
function GetNetInstallerPath(): string;
|
||||||
|
begin
|
||||||
|
result := ExpandConstant('{%temp}\dotNetFx40_Full_x86_x64.exe');
|
||||||
|
end;
|
||||||
|
|
||||||
|
/// Checks if the VSTO runtime redistributable setup file has already been
|
||||||
|
/// downloaded by comparing SHA1 checksums.
|
||||||
|
function IsVstorDownloaded(): boolean;
|
||||||
|
begin
|
||||||
|
result := IsFileValid(GetVstorInstallerPath, '{#VSTORSHA1}');
|
||||||
|
end;
|
||||||
|
|
||||||
|
/// Checks if the .NET runtime setup file has already been
|
||||||
|
/// downloaded by comparing SHA1 checksums.
|
||||||
|
function IsNetDownloaded(): boolean;
|
||||||
|
begin
|
||||||
|
result := IsFileValid(GetNetInstallerPath, '{#DOTNETSHA1}');
|
||||||
|
end;
|
||||||
|
|
||||||
|
/// Determines if the VSTO runtime needs to be downloaded.
|
||||||
|
/// This is not the case it the runtime is already installed,
|
||||||
|
/// or if there is a file with a valid Sha1 sum.
|
||||||
|
function NeedToDownloadVstor: boolean;
|
||||||
|
begin
|
||||||
|
result := NeedToInstallVstor and not IsVstorDownloaded;
|
||||||
|
end;
|
||||||
|
|
||||||
|
/// Determines if the VSTO runtime needs to be downloaded.
|
||||||
|
/// This is not the case it the runtime is already installed,
|
||||||
|
/// or if there is a file with a valid Sha1 sum.
|
||||||
|
function NeedToDownloadNet: boolean;
|
||||||
|
begin
|
||||||
|
result := not IsNetInstalled and not IsNetDownloaded;
|
||||||
|
end;
|
||||||
|
|
||||||
|
/// Determines whether or not a system-wide installation
|
||||||
|
/// is possible. This depends on whether the current user
|
||||||
|
/// is an administrator, and whether the hotfix KB976477
|
||||||
|
/// is present on the system if Word 2007 is the only version
|
||||||
|
/// of Word that is present (without that hotfix, Word
|
||||||
|
/// 2007 does not load add-ins that are registered in the
|
||||||
|
/// HKLM hive).
|
||||||
|
function CanInstallSystemWide(): boolean;
|
||||||
|
begin
|
||||||
|
if IsAdminLoggedOn then
|
||||||
|
begin
|
||||||
|
if IsOnlyWord2007Installed then
|
||||||
|
begin
|
||||||
|
result := IsHotfixInstalled;
|
||||||
|
end
|
||||||
|
else
|
||||||
|
begin
|
||||||
|
result := true;
|
||||||
|
end;
|
||||||
|
end
|
||||||
|
else
|
||||||
|
begin
|
||||||
|
result := false;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure CreateSingleOrAllUserPage();
|
||||||
|
begin
|
||||||
|
PageSingleOrMultiUser := CreateInputOptionPage(wpLicense,
|
||||||
|
CustomMessage('SingleOrMulti'), CustomMessage('SingleOrMultiSubcaption'),
|
||||||
|
CustomMessage('SingleOrMultiDesc'), True, False);
|
||||||
|
PageSingleOrMultiUser.Add(CustomMessage('SingleOrMultiSingle'));
|
||||||
|
PageSingleOrMultiUser.Add(CustomMessage('SingleOrMultiAll'));
|
||||||
|
if CanInstallSystemWide then
|
||||||
|
begin
|
||||||
|
PageSingleOrMultiUser.Values[1] := True;
|
||||||
|
end
|
||||||
|
else
|
||||||
|
begin
|
||||||
|
PageSingleOrMultiUser.Values[0] := True;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure CreateCannotInstallPage();
|
||||||
|
begin
|
||||||
|
PageCannotInstall := CreateInputOptionPage(wpWelcome,
|
||||||
|
CustomMessage('CannotInstallCaption'),
|
||||||
|
CustomMessage('CannotInstallDesc'),
|
||||||
|
CustomMessage('CannotInstallMsg'), True, False);
|
||||||
|
PageCannotInstall.Add(CustomMessage('CannotInstallCont'));
|
||||||
|
PageCannotInstall.Add(CustomMessage('CannotInstallAbort'));
|
||||||
|
PageCannotInstall.Values[1] := True;
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure CreateDownloadInfoPage();
|
||||||
|
var
|
||||||
|
bytes: Int64;
|
||||||
|
mib: Single;
|
||||||
|
size: String;
|
||||||
|
begin
|
||||||
|
if idpGetFilesSize(bytes) then
|
||||||
|
begin
|
||||||
|
mib := bytes / 1048576;
|
||||||
|
size := Format('%.1f', [ mib ]);
|
||||||
|
end
|
||||||
|
else
|
||||||
|
begin
|
||||||
|
size := '[?]'
|
||||||
|
end;
|
||||||
|
PageDownloadInfo := CreateOutputMsgPage(PageSingleOrMultiUser.Id,
|
||||||
|
CustomMessage('RequiredCaption'),
|
||||||
|
CustomMessage('RequiredDesc'),
|
||||||
|
Format(CustomMessage('RequiredMsg'), [idpFilesCount, size]));
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure CreateInstallInfoPage();
|
||||||
|
begin
|
||||||
|
PageInstallInfo := CreateOutputMsgPage(PageDownloadInfo.Id,
|
||||||
|
CustomMessage('InstallCaption'),
|
||||||
|
CustomMessage('InstallDesc'),
|
||||||
|
CustomMessage('InstallMsg'));
|
||||||
|
end;
|
||||||
|
|
||||||
|
|
||||||
|
function InitializeSetup(): boolean;
|
||||||
|
var
|
||||||
|
minWordInstalled: boolean;
|
||||||
|
i: integer;
|
||||||
|
begin
|
||||||
|
// Determine if Word 2007 or newer is installed (absolute requirement
|
||||||
|
// for this VSTO add-in). Word 2007 ist version 12.0.
|
||||||
|
for i := 12 to maxWord do
|
||||||
|
begin
|
||||||
|
minWordInstalled := minWordInstalled or IsWordVersionInstalled(i);
|
||||||
|
end;
|
||||||
|
|
||||||
|
if not minWordInstalled then
|
||||||
|
begin
|
||||||
|
result := False;
|
||||||
|
Log('Informing user that Word 2007 or newer is required.');
|
||||||
|
MsgBox(CustomMessage('Word2007Required'), mbInformation, MB_OK);
|
||||||
|
end
|
||||||
|
else
|
||||||
|
begin
|
||||||
|
result := True;
|
||||||
|
end
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure InitializeWizard();
|
||||||
|
begin
|
||||||
|
// CreateDevelopmentInfoPage;
|
||||||
|
CreateSingleOrAllUserPage;
|
||||||
|
if not PrerequisitesAreMet then
|
||||||
|
begin
|
||||||
|
Log('Not all prerequisites are met...');
|
||||||
|
CreateCannotInstallPage;
|
||||||
|
if NeedToDownloadNet then
|
||||||
|
begin
|
||||||
|
Log('Mark {#DOTNETURL} for download.');
|
||||||
|
idpAddFileSize('{#DOTNETURL}', GetNetInstallerPath, 50449456);
|
||||||
|
end;
|
||||||
|
if NeedToDownloadVstor then
|
||||||
|
begin
|
||||||
|
Log('Mark {#VSTORURL} for download.');
|
||||||
|
idpAddFileSize('{#VSTORURL}', GetVstorInstallerPath, 40123576);
|
||||||
|
end;
|
||||||
|
CreateDownloadInfoPage;
|
||||||
|
CreateInstallInfoPage;
|
||||||
|
idpDownloadAfter(PageDownloadInfo.Id);
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
|
function ExecuteNetSetup(): boolean;
|
||||||
|
var
|
||||||
|
exitCode: integer;
|
||||||
|
begin
|
||||||
|
result := true;
|
||||||
|
if not IsNetInstalled then
|
||||||
|
begin
|
||||||
|
if IsNetDownloaded then
|
||||||
|
begin
|
||||||
|
Log('Valid .NET runtime download found, installing.');
|
||||||
|
Exec(GetNetInstallerPath, '/norestart',
|
||||||
|
'', SW_SHOW, ewWaitUntilTerminated, exitCode);
|
||||||
|
BringToFrontAndRestore;
|
||||||
|
if not IsNetInstalled then
|
||||||
|
begin
|
||||||
|
MsgBox(CustomMessage('StillNotInstalled'), mbInformation, MB_OK);
|
||||||
|
result := False;
|
||||||
|
end;
|
||||||
|
end
|
||||||
|
else
|
||||||
|
begin
|
||||||
|
Log('No or invalid .NET runtime download found, will not install.');
|
||||||
|
MsgBox(CustomMessage('DownloadNotValidated'), mbInformation, MB_OK);
|
||||||
|
result := False;
|
||||||
|
end;
|
||||||
|
end; // not IsNetInstalled
|
||||||
|
end;
|
||||||
|
|
||||||
|
function ExecuteVstorSetup(): boolean;
|
||||||
|
var
|
||||||
|
exitCode: integer;
|
||||||
|
begin
|
||||||
|
result := true;
|
||||||
|
if NeedToInstallVstor then
|
||||||
|
begin
|
||||||
|
if IsVstorDownloaded then
|
||||||
|
begin
|
||||||
|
Log('Valid VSTO runtime download found, installing.');
|
||||||
|
Exec(GetVstorInstallerPath, '/norestart', '', SW_SHOW,
|
||||||
|
ewWaitUntilTerminated, exitCode);
|
||||||
|
BringToFrontAndRestore;
|
||||||
|
if not IsVstorInstalled then
|
||||||
|
begin
|
||||||
|
MsgBox(CustomMessage('StillNotInstalled'), mbInformation, MB_OK);
|
||||||
|
result := False;
|
||||||
|
end;
|
||||||
|
end
|
||||||
|
else
|
||||||
|
begin
|
||||||
|
Log('No or invalid VSTO runtime download found, will not install.');
|
||||||
|
MsgBox(CustomMessage('DownloadNotValidated'), mbInformation, MB_OK);
|
||||||
|
result := False;
|
||||||
|
end;
|
||||||
|
end; // not IsVstorInstalled
|
||||||
|
end;
|
||||||
|
|
||||||
|
function NextButtonClick(CurPageID: Integer): Boolean;
|
||||||
|
begin
|
||||||
|
result := True;
|
||||||
|
{
|
||||||
|
if not WizardSilent then
|
||||||
|
begin
|
||||||
|
if CurPageID = PageDevelopmentInfo.Id then
|
||||||
|
begin
|
||||||
|
if PageDevelopmentInfo.Values[0] = False then
|
||||||
|
begin
|
||||||
|
Log('Requesting user to acknowledge use of a developmental version.');
|
||||||
|
MsgBox(CustomMessage('DevVerMsgBox'), mbInformation, MB_OK);
|
||||||
|
result := False;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
}
|
||||||
|
|
||||||
|
if not PrerequisitesAreMet then
|
||||||
|
begin
|
||||||
|
// Abort the installation if any of the runtimes are missing, the user
|
||||||
|
// is not an administrator, and requested to abort the installation.
|
||||||
|
if CurPageID = PageCannotInstall.ID then
|
||||||
|
begin
|
||||||
|
if PageCannotInstall.Values[1] = true then
|
||||||
|
begin
|
||||||
|
WizardForm.Close;
|
||||||
|
result := False;
|
||||||
|
end
|
||||||
|
else
|
||||||
|
begin
|
||||||
|
Log('Non-admin user continues although not all required runtimes are installed.');
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
|
if CurPageID = PageInstallInfo.ID then
|
||||||
|
begin
|
||||||
|
// Return true if installation succeeds (or no installation required)
|
||||||
|
result := ExecuteNetSetup and ExecuteVstorSetup;
|
||||||
|
end;
|
||||||
|
end; // not PrerequisitesAreMet
|
||||||
|
end;
|
||||||
|
|
||||||
|
/// Skips the folder selection, single/multi user, and ready pages for
|
||||||
|
/// normal users without power privileges.
|
||||||
|
/// This function also takes care of dynamically determining what wizard
|
||||||
|
/// pages to install, depending on the current system setup and whether
|
||||||
|
/// the current user is an administrator.
|
||||||
|
function ShouldSkipPage(PageID: Integer): Boolean;
|
||||||
|
begin
|
||||||
|
result := False;
|
||||||
|
|
||||||
|
if not PrerequisitesAreMet then
|
||||||
|
begin
|
||||||
|
// The PageDownloadCannotInstall will only have been initialized if
|
||||||
|
// PrerequisitesAreMet returned false.
|
||||||
|
if PageID = PageCannotInstall.ID then
|
||||||
|
begin
|
||||||
|
// Skip the warning if the user is an admin.
|
||||||
|
result := IsAdminLoggedOn
|
||||||
|
if not result then
|
||||||
|
begin
|
||||||
|
Log('Warning user that required runtimes cannot be installed due to missing privileges');
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
|
if PageID = PageDownloadInfo.ID then
|
||||||
|
begin
|
||||||
|
// Skip page informing about downloads if no files need to be downloaded.
|
||||||
|
result := idpFilesCount = 0;
|
||||||
|
end;
|
||||||
|
|
||||||
|
if PageID = IDPForm.Page.ID then
|
||||||
|
begin
|
||||||
|
// Skip downloader plugin if there are no files to download.
|
||||||
|
result := idpFilesCount = 0;
|
||||||
|
if not result then
|
||||||
|
begin
|
||||||
|
Log('Beginning download of ' + IntToStr(idpFilesCount) + ' file(s).');
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
end; // not PrerequisitesAreMet
|
||||||
|
|
||||||
|
if PageID = PageSingleOrMultiUser.ID then
|
||||||
|
begin
|
||||||
|
if IsOnlyWord2007Installed then
|
||||||
|
begin
|
||||||
|
Log('Only Word 2007 appears to be installed on this system.');
|
||||||
|
if IsHotfixInstalled then
|
||||||
|
begin
|
||||||
|
Log('Hotfix KB976477 found; can install for all users.');
|
||||||
|
end
|
||||||
|
else
|
||||||
|
begin
|
||||||
|
Log('Hotfix KB976477 not found; cannot install for all users.');
|
||||||
|
end;
|
||||||
|
end
|
||||||
|
else
|
||||||
|
begin
|
||||||
|
Log('Word 2010 or newer found on this system.');
|
||||||
|
end;
|
||||||
|
if CanInstallSystemWide then
|
||||||
|
begin
|
||||||
|
Log('Offer installation for all users.');
|
||||||
|
result := False;
|
||||||
|
end
|
||||||
|
else
|
||||||
|
begin
|
||||||
|
Log('Offer single-user installation only.');
|
||||||
|
result := True;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
|
if (PageID = wpSelectDir) or (PageID = wpReady) then
|
||||||
|
begin
|
||||||
|
// Do not show the pages to select the target directory, and the ready
|
||||||
|
// page if the user is not an admin.
|
||||||
|
result := not IsAdminLoggedOn;
|
||||||
|
end
|
||||||
|
end;
|
||||||
|
|
||||||
|
/// Helper function that evaluates the custom PageSingleOrMultiUser page.
|
||||||
|
function IsMultiUserInstall(): Boolean;
|
||||||
|
begin
|
||||||
|
result := PageSingleOrMultiUser.Values[1];
|
||||||
|
end;
|
||||||
|
|
||||||
|
/// Suggest an initial target directory depending on whether
|
||||||
|
/// the installer is run with admin privileges.
|
||||||
|
function SuggestInstallDir(Param: string): string;
|
||||||
|
var
|
||||||
|
dir: string;
|
||||||
|
begin
|
||||||
|
if CanInstallSystemWide then
|
||||||
|
begin
|
||||||
|
dir := ExpandConstant('{pf}');
|
||||||
|
end
|
||||||
|
else
|
||||||
|
begin
|
||||||
|
dir := ExpandConstant('{userappdata}');
|
||||||
|
end;
|
||||||
|
result := AddBackslash(dir) + 'zaaReloaded';
|
||||||
|
end;
|
||||||
|
|
||||||
|
/// Converts backslashes to forward slashes.
|
||||||
|
function ConvertSlash(Value: string): string;
|
||||||
|
begin
|
||||||
|
StringChangeEx(Value, '\', '/', True);
|
||||||
|
Result := Value;
|
||||||
|
end;
|
4
www/versioninfo.txt
Normal file
4
www/versioninfo.txt
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
2.0.0-alpha.1
|
||||||
|
0e0620c09c28cc494352dd3901245e7402ea5b64 publish/release/zaaReloaded-2.0.0-alpha.1.exe
|
||||||
|
http://zaa.nephrowiki.de/downloads/zaaReloaded-2.0.0-alpha.1.exe
|
||||||
|
|
@ -1 +1,2 @@
|
|||||||
2.0.0-alpha.1
|
2.0.0-alpha.1
|
||||||
|
2.0.0.1
|
||||||
|
Loading…
Reference in New Issue
Block a user