unioffice/unioffice.go
2024-05-08 13:54:39 +00:00

249 lines
60 KiB
Go

//
// Copyright 2020 FoxyUtils ehf. All rights reserved.
//
// This is a commercial product and requires a license to operate.
// A trial license can be obtained at https://unidoc.io
//
// DO NOT EDIT: generated by unitwist Go source code obfuscator.
//
// Use of this source code is governed by the UniDoc End User License Agreement
// terms that can be accessed at https://unidoc.io/eula/
/*
Package unioffice provides creation, reading, and writing of ECMA 376 Office Open
XML documents, spreadsheets and presentations. It is still early in
development, but is progressing quickly. This library takes a slightly
different approach from others, in that it starts by trying to support all of
the ECMA-376 standard when marshaling/unmarshaling XML documents. From there it
adds wrappers around the ECMA-376 derived types that provide a more convenient
interface.
The raw XML based types reside in the `schema/“ directory. These types are
always accessible from the wrapper types via a `X() method that returns the
raw type. Except for the base documents (document.Document,
spreadsheet.Workbook and presentation.Presentation), the other wrapper types are
value types with non-pointer methods. They exist solely to modify and return
data from one or more XML types.
The packages of interest are github.com/unidoc/unioffice/document,
unidoc/unioffice/spreadsheet and github.com/unidoc/unioffice/presentation.
*/
package unioffice ;import (_ga "encoding/xml";_fd "errors";_ag "fmt";_cg "github.com/unidoc/unioffice/algo";_ac "github.com/unidoc/unioffice/common/logger";_d "log";_a "reflect";_c "strings";_f "unicode";);
// AbsoluteFilename returns the full path to a file from the root of the zip
// container. Index is used in some cases for files which there may be more than
// one of (e.g. worksheets/drawings/charts)
func AbsoluteFilename (dt DocType ,typ string ,index int )string {switch typ {case CorePropertiesType :return "\u0064\u006f\u0063\u0050\u0072\u006f\u0070\u0073\u002f\u0063\u006f\u0072e\u002e\u0078\u006d\u006c";case CustomPropertiesType :return "\u0064\u006f\u0063\u0050ro\u0070\u0073\u002f\u0063\u0075\u0073\u0074\u006f\u006d\u002e\u0078\u006d\u006c";
case ExtendedPropertiesType ,ExtendedPropertiesTypeStrict :return "\u0064\u006fc\u0050\u0072\u006fp\u0073\u002f\u0061\u0070\u0070\u002e\u0078\u006d\u006c";case ThumbnailType ,ThumbnailTypeStrict :return "\u0064\u006f\u0063Pr\u006f\u0070\u0073\u002f\u0074\u0068\u0075\u006d\u0062\u006e\u0061\u0069\u006c\u002e\u006a\u0070\u0065\u0067";
case CustomXMLType :return _ag .Sprintf ("c\u0075s\u0074\u006f\u006d\u0058\u006d\u006c\u002f\u0069t\u0065\u006d\u0025\u0064.x\u006d\u006c",index );case PresentationPropertiesType :return "\u0070\u0070\u0074\u002f\u0070\u0072\u0065\u0073\u0050\u0072\u006f\u0070s\u002e\u0078\u006d\u006c";
case ViewPropertiesType :switch dt {case DocTypePresentation :return "\u0070\u0070\u0074\u002f\u0076\u0069\u0065\u0077\u0050\u0072\u006f\u0070s\u002e\u0078\u006d\u006c";case DocTypeSpreadsheet :return "\u0078\u006c/\u0076\u0069\u0065w\u0050\u0072\u006f\u0070\u0073\u002e\u0078\u006d\u006c";
case DocTypeDocument :return "\u0077o\u0072d\u002f\u0076\u0069\u0065\u0077P\u0072\u006fp\u0073\u002e\u0078\u006d\u006c";};case TableStylesType :switch dt {case DocTypePresentation :return "\u0070\u0070\u0074\u002fta\u0062\u006c\u0065\u0053\u0074\u0079\u006c\u0065\u0073\u002e\u0078\u006d\u006c";
case DocTypeSpreadsheet :return "\u0078l\u002ft\u0061\u0062\u006c\u0065\u0053t\u0079\u006ce\u0073\u002e\u0078\u006d\u006c";case DocTypeDocument :return "w\u006fr\u0064\u002f\u0074\u0061\u0062\u006c\u0065\u0053t\u0079\u006c\u0065\u0073.x\u006d\u006c";};
case HyperLinkType :return "";case OfficeDocumentType ,OfficeDocumentTypeStrict :switch dt {case DocTypeSpreadsheet :return "\u0078l\u002fw\u006f\u0072\u006b\u0062\u006f\u006f\u006b\u002e\u0078\u006d\u006c";case DocTypeDocument :return "\u0077\u006f\u0072\u0064\u002f\u0064\u006f\u0063\u0075\u006d\u0065\u006et\u002e\u0078\u006d\u006c";
case DocTypePresentation :return "p\u0070t\u002f\u0070\u0072\u0065\u0073\u0065\u006e\u0074a\u0074\u0069\u006f\u006e.x\u006d\u006c";default:_ac .Log .Debug ("\u0075\u006e\u0073u\u0070\u0070\u006f\u0072t\u0065\u0064\u0020\u0074\u0079\u0070\u0065 \u0025\u0073\u0020\u0070\u0061\u0069\u0072\u0020\u0061\u006e\u0064\u0020\u0025\u0076",typ ,dt );
};case ThemeType ,ThemeTypeStrict ,ThemeContentType :switch dt {case DocTypeSpreadsheet :return _ag .Sprintf ("x\u006c/\u0074\u0068\u0065\u006d\u0065\u002f\u0074\u0068e\u006d\u0065\u0025\u0064.x\u006d\u006c",index );case DocTypeDocument :return _ag .Sprintf ("\u0077\u006f\u0072\u0064/t\u0068\u0065\u006d\u0065\u002f\u0074\u0068\u0065\u006d\u0065\u0025\u0064\u002e\u0078m\u006c",index );
case DocTypePresentation :return _ag .Sprintf ("p\u0070\u0074\u002f\u0074he\u006de\u002f\u0074\u0068\u0065\u006de\u0025\u0064\u002e\u0078\u006d\u006c",index );default:_ac .Log .Debug ("\u0075\u006e\u0073u\u0070\u0070\u006f\u0072t\u0065\u0064\u0020\u0074\u0079\u0070\u0065 \u0025\u0073\u0020\u0070\u0061\u0069\u0072\u0020\u0061\u006e\u0064\u0020\u0025\u0076",typ ,dt );
};case StylesType ,StylesTypeStrict :switch dt {case DocTypeSpreadsheet :return "\u0078\u006c\u002f\u0073\u0074\u0079\u006c\u0065\u0073\u002e\u0078\u006d\u006c";case DocTypeDocument :return "\u0077o\u0072d\u002f\u0073\u0074\u0079\u006c\u0065\u0073\u002e\u0078\u006d\u006c";
case DocTypePresentation :return "\u0070\u0070\u0074\u002f\u0073\u0074\u0079\u006c\u0065s\u002e\u0078\u006d\u006c";default:_ac .Log .Debug ("\u0075\u006e\u0073u\u0070\u0070\u006f\u0072t\u0065\u0064\u0020\u0074\u0079\u0070\u0065 \u0025\u0073\u0020\u0070\u0061\u0069\u0072\u0020\u0061\u006e\u0064\u0020\u0025\u0076",typ ,dt );
};case ChartType ,ChartTypeStrict ,ChartContentType :switch dt {case DocTypeSpreadsheet :return _ag .Sprintf ("x\u006c\u002f\u0063\u0068ar\u0074s\u002f\u0063\u0068\u0061\u0072t\u0025\u0064\u002e\u0078\u006d\u006c",index );case DocTypeDocument :return _ag .Sprintf ("\u0077\u006f\u0072d/\u0063\u0068\u0061\u0072\u0074\u0073\u002f\u0063\u0068\u0061\u0072\u0074\u0025\u0064\u002e\u0078\u006d\u006c",index );
case DocTypePresentation :return _ag .Sprintf ("\u0070\u0070\u0074\u002fch\u0061\u0072\u0074\u0073\u002f\u0063\u0068\u0061\u0072\u0074\u0025\u0064\u002e\u0078m\u006c",index );default:_ac .Log .Debug ("\u0075\u006e\u0073u\u0070\u0070\u006f\u0072t\u0065\u0064\u0020\u0074\u0079\u0070\u0065 \u0025\u0073\u0020\u0070\u0061\u0069\u0072\u0020\u0061\u006e\u0064\u0020\u0025\u0076",typ ,dt );
};case TableType ,TableTypeStrict ,TableContentType :return _ag .Sprintf ("x\u006c\u002f\u0074\u0061bl\u0065s\u002f\u0074\u0061\u0062\u006ce\u0025\u0064\u002e\u0078\u006d\u006c",index );case DrawingType ,DrawingTypeStrict ,DrawingContentType :switch dt {case DocTypeSpreadsheet :return _ag .Sprintf ("\u0078l\u002f\u0064\u0072\u0061w\u0069\u006e\u0067\u0073\u002fd\u0072a\u0077i\u006e\u0067\u0025\u0064\u002e\u0078\u006dl",index );
default:_ac .Log .Debug ("\u0075\u006e\u0073u\u0070\u0070\u006f\u0072t\u0065\u0064\u0020\u0074\u0079\u0070\u0065 \u0025\u0073\u0020\u0070\u0061\u0069\u0072\u0020\u0061\u006e\u0064\u0020\u0025\u0076",typ ,dt );};case CommentsType ,CommentsTypeStrict ,CommentsContentType :switch dt {case DocTypeSpreadsheet :return _ag .Sprintf ("\u0078\u006c\u002f\u0063\u006f\u006d\u006d\u0065\u006e\u0074\u0073\u0025d\u002e\u0078\u006d\u006c",index );
default:_ac .Log .Debug ("\u0075\u006e\u0073u\u0070\u0070\u006f\u0072t\u0065\u0064\u0020\u0074\u0079\u0070\u0065 \u0025\u0073\u0020\u0070\u0061\u0069\u0072\u0020\u0061\u006e\u0064\u0020\u0025\u0076",typ ,dt );};case VMLDrawingType ,VMLDrawingTypeStrict ,VMLDrawingContentType :switch dt {case DocTypeSpreadsheet :return _ag .Sprintf ("\u0078\u006c\u002f\u0064r\u0061\u0077\u0069\u006e\u0067\u0073\u002f\u0076\u006d\u006cD\u0072a\u0077\u0069\u006e\u0067\u0025\u0064\u002ev\u006d\u006c",index );
default:_ac .Log .Debug ("\u0075\u006e\u0073u\u0070\u0070\u006f\u0072t\u0065\u0064\u0020\u0074\u0079\u0070\u0065 \u0025\u0073\u0020\u0070\u0061\u0069\u0072\u0020\u0061\u006e\u0064\u0020\u0025\u0076",typ ,dt );};case ImageType ,ImageTypeStrict :switch dt {case DocTypeDocument :return _ag .Sprintf ("\u0077\u006f\u0072\u0064/m\u0065\u0064\u0069\u0061\u002f\u0069\u006d\u0061\u0067\u0065\u0025\u0064\u002e\u0070n\u0067",index );
case DocTypeSpreadsheet :return _ag .Sprintf ("x\u006c/\u006d\u0065\u0064\u0069\u0061\u002f\u0069\u006da\u0067\u0065\u0025\u0064.p\u006e\u0067",index );case DocTypePresentation :return _ag .Sprintf ("p\u0070\u0074\u002f\u006ded\u0069a\u002f\u0069\u006d\u0061\u0067e\u0025\u0064\u002e\u0070\u006e\u0067",index );
default:_ac .Log .Debug ("\u0075\u006e\u0073u\u0070\u0070\u006f\u0072t\u0065\u0064\u0020\u0074\u0079\u0070\u0065 \u0025\u0073\u0020\u0070\u0061\u0069\u0072\u0020\u0061\u006e\u0064\u0020\u0025\u0076",typ ,dt );};case WorksheetType ,WorksheetTypeStrict ,WorksheetContentType :return _ag .Sprintf ("\u0078l\u002f\u0077\u006f\u0072k\u0073\u0068\u0065\u0065\u0074s\u002fs\u0068e\u0065\u0074\u0025\u0064\u002e\u0078\u006dl",index );
case SharedStringsType ,SharedStringsTypeStrict ,SharedStringsContentType :return "x\u006c/\u0073\u0068\u0061\u0072\u0065\u0064\u0053\u0074r\u0069\u006e\u0067\u0073.x\u006d\u006c";case FontTableType ,FontTableTypeStrict :return "\u0077o\u0072d\u002f\u0066\u006f\u006e\u0074T\u0061\u0062l\u0065\u002e\u0078\u006d\u006c";
case EndNotesType ,EndNotesTypeStrict :return "\u0077\u006f\u0072\u0064\u002f\u0065\u006e\u0064\u006e\u006f\u0074\u0065s\u002e\u0078\u006d\u006c";case FootNotesType ,FootNotesTypeStrict :return "\u0077o\u0072d\u002f\u0066\u006f\u006f\u0074n\u006f\u0074e\u0073\u002e\u0078\u006d\u006c";
case NumberingType ,NumberingTypeStrict :return "\u0077o\u0072d\u002f\u006e\u0075\u006d\u0062e\u0072\u0069n\u0067\u002e\u0078\u006d\u006c";case WebSettingsType ,WebSettingsTypeStrict :return "w\u006fr\u0064\u002f\u0077\u0065\u0062\u0053\u0065\u0074t\u0069\u006e\u0067\u0073.x\u006d\u006c";
case SettingsType ,SettingsTypeStrict :return "\u0077\u006f\u0072\u0064\u002f\u0073\u0065\u0074\u0074\u0069\u006e\u0067s\u002e\u0078\u006d\u006c";case HeaderType ,HeaderTypeStrict :return _ag .Sprintf ("\u0077\u006f\u0072\u0064\u002f\u0068\u0065\u0061\u0064\u0065\u0072\u0025d\u002e\u0078\u006d\u006c",index );
case FooterType ,FooterTypeStrict :return _ag .Sprintf ("\u0077\u006f\u0072\u0064\u002f\u0066\u006f\u006f\u0074\u0065\u0072\u0025d\u002e\u0078\u006d\u006c",index );case ControlType ,ControlTypeStrict :switch dt {case DocTypeSpreadsheet :return _ag .Sprintf ("\u0078l\u002f\u0061\u0063\u0074\u0069\u0076\u0065\u0058\u002f\u0061\u0063t\u0069\u0076\u0065\u0058\u0025\u0064\u002e\u0078\u006d\u006c",index );
case DocTypeDocument :return _ag .Sprintf ("\u0077\u006f\u0072\u0064\u002f\u0061\u0063\u0074\u0069\u0076\u0065X\u002f\u0061\u0063\u0074\u0069\u0076\u0065\u0058\u0025\u0064.\u0078\u006d\u006c",index );case DocTypePresentation :return _ag .Sprintf ("\u0070p\u0074\u002f\u0061\u0063t\u0069\u0076\u0065\u0058\u002fa\u0063t\u0069v\u0065\u0058\u0025\u0064\u002e\u0078\u006dl",index );
default:_ac .Log .Debug ("\u0075\u006e\u0073u\u0070\u0070\u006f\u0072t\u0065\u0064\u0020\u0074\u0079\u0070\u0065 \u0025\u0073\u0020\u0070\u0061\u0069\u0072\u0020\u0061\u006e\u0064\u0020\u0025\u0076",typ ,dt );};case SlideType ,SlideTypeStrict :return _ag .Sprintf ("\u0070\u0070\u0074\u002fsl\u0069\u0064\u0065\u0073\u002f\u0073\u006c\u0069\u0064\u0065\u0025\u0064\u002e\u0078m\u006c",index );
case SlideLayoutType :return _ag .Sprintf ("\u0070\u0070\u0074/s\u006c\u0069\u0064\u0065\u004c\u0061\u0079\u006f\u0075t\u0073/\u0073l\u0069d\u0065\u004c\u0061\u0079\u006f\u0075\u0074\u0025\u0064\u002e\u0078\u006d\u006c",index );case SlideMasterType :return _ag .Sprintf ("\u0070\u0070\u0074/s\u006c\u0069\u0064\u0065\u004d\u0061\u0073\u0074\u0065r\u0073/\u0073l\u0069d\u0065\u004d\u0061\u0073\u0074\u0065\u0072\u0025\u0064\u002e\u0078\u006d\u006c",index );
case HandoutMasterType :return _ag .Sprintf ("\u0070\u0070\u0074\u002f\u0068\u0061\u006e\u0064\u006f\u0075\u0074\u004d\u0061\u0073\u0074\u0065\u0072\u0073\u002f\u0068\u0061\u006e\u0064\u006fu\u0074\u004d\u0061\u0073\u0074e\u0072\u0025d\u002e\u0078\u006d\u006c",index );
case NotesMasterType :return _ag .Sprintf ("\u0070\u0070\u0074/n\u006f\u0074\u0065\u0073\u004d\u0061\u0073\u0074\u0065r\u0073/\u006eo\u0074e\u0073\u004d\u0061\u0073\u0074\u0065\u0072\u0025\u0064\u002e\u0078\u006d\u006c",index );default:_ac .Log .Debug ("\u0075\u006e\u0073\u0075pp\u006f\u0072\u0074\u0065\u0064\u0020\u0074\u0079\u0070\u0065\u0020\u0025\u0073",typ );
};return "";};func (_gabd nsSet )applyToNode (_cgd *any ){if _cgd .XMLName .Space ==""{return ;};_egc :=_gabd .getPrefix (_cgd .XMLName .Space );_cgd .XMLName .Space ="";_cgd .XMLName .Local =_egc +"\u003a"+_cgd .XMLName .Local ;_efg :=_cgd .Attrs ;_cgd .Attrs =nil ;
for _ ,_cga :=range _efg {if _cga .Name .Space =="\u0078\u006d\u006cn\u0073"{continue ;};if _cga .Name .Space !=""{_daef :=_gabd .getPrefix (_cga .Name .Space );_cga .Name .Space ="";_cga .Name .Local =_daef +"\u003a"+_cga .Name .Local ;};_cgd .Attrs =append (_cgd .Attrs ,_cga );
};for _ ,_fee :=range _cgd .Nodes {_gabd .applyToNode (_fee );};};
// Stringf formats according to a format specifier and returns a pointer to the
// resulting string.
func Stringf (f string ,args ...interface{})*string {_da :=_ag .Sprintf (f ,args ...);return &_da };const (Unknown DocType =iota ;DocTypeSpreadsheet ;DocTypeDocument ;DocTypePresentation ;);type any struct{XMLName _ga .Name ;Attrs []_ga .Attr `xml:",any,attr"`;
Nodes []*any `xml:",any"`;Data []byte `xml:",chardata"`;};
// Int8 returns a copy of v as a pointer.
func Int8 (v int8 )*int8 {_bb :=v ;return &_bb };
// Float32 returns a copy of v as a pointer.
func Float32 (v float32 )*float32 {_ea :=v ;return &_ea };
// Int64 returns a copy of v as a pointer.
func Int64 (v int64 )*int64 {_fb :=v ;return &_fb };
// Uint64 returns a copy of v as a pointer.
func Uint64 (v uint64 )*uint64 {_cac :=v ;return &_cac };func (_fbe *XSDAny )collectNS (_bbd *nsSet ){if _fbe .XMLName .Space !=""{_bbd .getPrefix (_fbe .XMLName .Space );};for _ ,_adf :=range _fbe .Attrs {if _adf .Name .Space !=""&&_adf .Name .Space !="\u0078\u006d\u006cn\u0073"{_bbd .getPrefix (_adf .Name .Space );
};};for _ ,_caae :=range _fbe .Nodes {_caae .collectNS (_bbd );};};
// Any is the interface used for marshaling/unmarshaling xsd:any
type Any interface{MarshalXML (_gc *_ga .Encoder ,_gaf _ga .StartElement )error ;UnmarshalXML (_b *_ga .Decoder ,_bd _ga .StartElement )error ;};var Log =_d .Printf ;const MinGoVersion =_dd ;const (OfficeDocumentTypeStrict ="\u0068\u0074\u0074\u0070\u003a\u002f\u002f\u0070\u0075\u0072\u006c\u002e\u006f\u0063\u006c\u0063\u002e\u006f\u0072g\u002f\u006f\u006f\u0078\u006d\u006c\u002f\u006f\u0066\u0066\u0069\u0063\u0065\u0044\u006f\u0063u\u006d\u0065\u006e\u0074\u002f\u0072\u0065\u006c\u0061\u0074\u0069\u006f\u006e\u0073\u0068\u0069\u0070\u0073\u002f\u006f\u0066\u0066\u0069\u0063e\u0044\u006f\u0063\u0075\u006de\u006e\u0074";
StylesTypeStrict ="\u0068\u0074\u0074\u0070\u003a\u002f\u002f\u0070\u0075\u0072\u006c\u002e\u006f\u0063\u006c\u0063\u002e\u006frg\u002fo\u006f\u0078\u006d\u006c\u002f\u006f\u0066\u0066\u0069\u0063\u0065\u0044o\u0063\u0075\u006d\u0065\u006e\u0074\u002f\u0072\u0065\u006c\u0061\u0074\u0069\u006f\u006e\u0073\u0068i\u0070\u0073\u002f\u0073\u0074\u0079\u006c\u0065\u0073";
ThemeTypeStrict ="h\u0074\u0074\u0070\u003a\u002f\u002f\u0070\u0075\u0072\u006c\u002e\u006f\u0063\u006c\u0063\u002e\u006f\u0072\u0067\u002f\u006f\u006f\u0078\u006d\u006c\u002fo\u0066f\u0069\u0063\u0065\u0044o\u0063\u0075m\u0065\u006e\u0074\u002f\u0072\u0065\u006c\u0061\u0074\u0069\u006f\u006e\u0073\u0068\u0069\u0070\u0073\u002f\u0074\u0068\u0065\u006d\u0065";
ControlTypeStrict ="\u0068t\u0074\u0070\u003a\u002f\u002f\u0070\u0075rl\u002e\u006f\u0063\u006c\u0063\u002e\u006f\u0072\u0067\u002f\u006f\u006f\u0078\u006dl\u002f\u006ff\u0066\u0069\u0063e\u0044\u006f\u0063\u0075\u006d\u0065\u006e\u0074\u002f\u0072\u0065\u006c\u0061\u0074\u0069\u006fn\u0073\u0068ip\u0073\u002f\u0063o\u006e\u0074\u0072\u006f\u006c";
SettingsTypeStrict ="\u0068\u0074\u0074\u0070\u003a\u002f\u002f\u0070\u0075\u0072\u006c\u002e\u006f\u0063\u006c\u0063\u002eo\u0072\u0067\u002f\u006f\u006f\u0078\u006d\u006c\u002f\u006ff\u0066\u0069\u0063\u0065\u0044\u006f\u0063\u0075\u006d\u0065\u006e\u0074\u002f\u0072\u0065\u006c\u0061\u0074i\u006f\u006e\u0073\u0068\u0069\u0070s\u002f\u0073e\u0074\u0074i\u006eg\u0073";
ImageTypeStrict ="h\u0074\u0074\u0070\u003a\u002f\u002f\u0070\u0075\u0072\u006c\u002e\u006f\u0063\u006c\u0063\u002e\u006f\u0072\u0067\u002f\u006f\u006f\u0078\u006d\u006c\u002fo\u0066f\u0069\u0063\u0065\u0044o\u0063\u0075m\u0065\u006e\u0074\u002f\u0072\u0065\u006c\u0061\u0074\u0069\u006f\u006e\u0073\u0068\u0069\u0070\u0073\u002f\u0069\u006d\u0061\u0067\u0065";
CommentsTypeStrict ="\u0068\u0074\u0074\u0070\u003a\u002f\u002f\u0070\u0075\u0072\u006c\u002e\u006f\u0063\u006c\u0063\u002eo\u0072\u0067\u002f\u006f\u006f\u0078\u006d\u006c\u002f\u006ff\u0066\u0069\u0063\u0065\u0044\u006f\u0063\u0075\u006d\u0065\u006e\u0074\u002f\u0072\u0065\u006c\u0061\u0074i\u006f\u006e\u0073\u0068\u0069\u0070s\u002f\u0063o\u006d\u006de\u006et\u0073";
ThumbnailTypeStrict ="\u0068\u0074\u0074\u0070\u003a/\u002f\u0070\u0075\u0072\u006c\u002eo\u0063\u006c\u0063\u002e\u006f\u0072\u0067/\u006f\u006f\u0078m\u006c\u002f\u006f\u0066f\u0069\u0063\u0065\u0044\u006f\u0063u\u006d\u0065\u006e\u0074\u002f\u0072\u0065\u006c\u0061\u0074\u0069\u006f\u006e\u0073\u0068\u0069\u0070s\u002f\u006d\u0065\u0074\u0061\u0064\u0061\u0074\u0061\u002f\u0074\u0068\u0075\u006d\u0062\u006e\u0061\u0069\u006c";
DrawingTypeStrict ="\u0068t\u0074\u0070\u003a\u002f\u002f\u0070\u0075rl\u002e\u006f\u0063\u006c\u0063\u002e\u006f\u0072\u0067\u002f\u006f\u006f\u0078\u006dl\u002f\u006ff\u0066\u0069\u0063e\u0044\u006f\u0063\u0075\u006d\u0065\u006e\u0074\u002f\u0072\u0065\u006c\u0061\u0074\u0069\u006fn\u0073\u0068ip\u0073\u002f\u0064r\u0061\u0077\u0069\u006e\u0067";
ChartTypeStrict ="h\u0074\u0074\u0070\u003a\u002f\u002f\u0070\u0075\u0072\u006c\u002e\u006f\u0063\u006c\u0063\u002e\u006f\u0072\u0067\u002f\u006f\u006f\u0078\u006d\u006c\u002fo\u0066f\u0069\u0063\u0065\u0044o\u0063\u0075m\u0065\u006e\u0074\u002f\u0072\u0065\u006c\u0061\u0074\u0069\u006f\u006e\u0073\u0068\u0069\u0070\u0073\u002f\u0063\u0068\u0061\u0072\u0074";
ExtendedPropertiesTypeStrict ="\u0068\u0074\u0074\u0070\u003a/\u002f\u0070\u0075\u0072\u006c\u002eo\u0063\u006c\u0063\u002e\u006f\u0072\u0067/\u006f\u006f\u0078m\u006c\u002f\u006f\u0066f\u0069\u0063\u0065\u0044\u006f\u0063u\u006d\u0065\u006e\u0074\u002f\u0072\u0065\u006c\u0061\u0074\u0069\u006f\u006e\u0073\u0068\u0069\u0070s\u002f\u0065\u0078\u0074\u0065\u006e\u0064\u0065\u0064\u0050\u0072\u006f\u0070\u0065\u0072\u0074\u0069\u0065\u0073";
CustomXMLTypeStrict ="\u0068\u0074\u0074\u0070\u003a/\u002f\u0070\u0075\u0072\u006c.\u006fc\u006c\u0063\u002e\u006f\u0072\u0067\u002f\u006f\u006f\u0078\u006d\u006c\u002f\u006f\u0066\u0066\u0069\u0063\u0065D\u006f\u0063\u0075\u006d\u0065\u006e\u0074\u002f\u0072\u0065\u006c\u0061\u0074\u0069\u006f\u006e\u0073\u0068\u0069\u0070\u0073\u002f\u0063\u0075s\u0074\u006f\u006d\u0058\u006d\u006c";
WorksheetTypeStrict ="\u0068\u0074\u0074\u0070\u003a/\u002f\u0070\u0075\u0072\u006c.\u006fc\u006c\u0063\u002e\u006f\u0072\u0067\u002f\u006f\u006f\u0078\u006d\u006c\u002f\u006f\u0066\u0066\u0069\u0063\u0065D\u006f\u0063\u0075\u006d\u0065\u006e\u0074\u002f\u0072\u0065\u006c\u0061\u0074\u0069\u006f\u006e\u0073\u0068\u0069\u0070\u0073\u002f\u0077\u006fr\u006b\u0073\u0068\u0065\u0065\u0074";
SharedStringsTypeStrict ="h\u0074\u0074p\u003a\u002f\u002f\u0070\u0075\u0072\u006c\u002e\u006f\u0063\u006c\u0063\u002e\u006f\u0072\u0067\u002f\u006f\u006f\u0078m\u006c\u002f\u006f\u0066\u0066\u0069\u0063\u0065\u0044\u006f\u0063\u0075\u006d\u0065\u006e\u0074/\u0072\u0065\u006c\u0061\u0074\u0069\u006f\u006e\u0073\u0068\u0069\u0070\u0073/\u0073\u0068\u0061\u0072\u0065\u0064\u0053\u0074\u0072\u0069\u006eg\u0073";
SharedStingsTypeStrict =SharedStringsTypeStrict ;TableTypeStrict ="h\u0074\u0074\u0070\u003a\u002f\u002f\u0070\u0075\u0072\u006c\u002e\u006f\u0063\u006c\u0063\u002e\u006f\u0072\u0067\u002f\u006f\u006f\u0078\u006d\u006c\u002fo\u0066f\u0069\u0063\u0065\u0044o\u0063\u0075m\u0065\u006e\u0074\u002f\u0072\u0065\u006c\u0061\u0074\u0069\u006f\u006e\u0073\u0068\u0069\u0070\u0073\u002f\u0074\u0061\u0062\u006c\u0065";
HeaderTypeStrict ="\u0068\u0074\u0074\u0070\u003a\u002f\u002f\u0070\u0075\u0072\u006c\u002e\u006f\u0063\u006c\u0063\u002e\u006frg\u002fo\u006f\u0078\u006d\u006c\u002f\u006f\u0066\u0066\u0069\u0063\u0065\u0044o\u0063\u0075\u006d\u0065\u006e\u0074\u002f\u0072\u0065\u006c\u0061\u0074\u0069\u006f\u006e\u0073\u0068i\u0070\u0073\u002f\u0068\u0065\u0061\u0064\u0065\u0072";
FooterTypeStrict ="\u0068\u0074\u0074\u0070\u003a\u002f\u002f\u0070\u0075\u0072\u006c\u002e\u006f\u0063\u006c\u0063\u002e\u006frg\u002fo\u006f\u0078\u006d\u006c\u002f\u006f\u0066\u0066\u0069\u0063\u0065\u0044o\u0063\u0075\u006d\u0065\u006e\u0074\u002f\u0072\u0065\u006c\u0061\u0074\u0069\u006f\u006e\u0073\u0068i\u0070\u0073\u002f\u0066\u006f\u006f\u0074\u0065\u0072";
NumberingTypeStrict ="\u0068\u0074\u0074\u0070\u003a/\u002f\u0070\u0075\u0072\u006c.\u006fc\u006c\u0063\u002e\u006f\u0072\u0067\u002f\u006f\u006f\u0078\u006d\u006c\u002f\u006f\u0066\u0066\u0069\u0063\u0065D\u006f\u0063\u0075\u006d\u0065\u006e\u0074\u002f\u0072\u0065\u006c\u0061\u0074\u0069\u006f\u006e\u0073\u0068\u0069\u0070\u0073\u002f\u006e\u0075m\u0062\u0065\u0072\u0069\u006e\u0067";
FontTableTypeStrict ="\u0068\u0074\u0074\u0070\u003a/\u002f\u0070\u0075\u0072\u006c.\u006fc\u006c\u0063\u002e\u006f\u0072\u0067\u002f\u006f\u006f\u0078\u006d\u006c\u002f\u006f\u0066\u0066\u0069\u0063\u0065D\u006f\u0063\u0075\u006d\u0065\u006e\u0074\u002f\u0072\u0065\u006c\u0061\u0074\u0069\u006f\u006e\u0073\u0068\u0069\u0070\u0073\u002f\u0066\u006fn\u0074\u0054\u0061\u0062\u006c\u0065";
WebSettingsTypeStrict ="\u0068\u0074\u0074\u0070\u003a\u002f/\u0070\u0075\u0072\u006c\u002eo\u0063\u006c\u0063\u002e\u006f\u0072g\u002f\u006f\u006f\u0078\u006dl\u002f\u006f\u0066\u0066\u0069\u0063\u0065\u0044\u006f\u0063\u0075\u006de\u006e\u0074\u002f\u0072\u0065\u006c\u0061\u0074\u0069\u006f\u006e\u0073\u0068\u0069\u0070s\u002f\u0077\u0065\u0062\u0053\u0065\u0074\u0074i\u006e\u0067\u0073";
FootNotesTypeStrict ="\u0068\u0074\u0074\u0070\u003a/\u002f\u0070\u0075\u0072\u006c.\u006fc\u006c\u0063\u002e\u006f\u0072\u0067\u002f\u006f\u006f\u0078\u006d\u006c\u002f\u006f\u0066\u0066\u0069\u0063\u0065D\u006f\u0063\u0075\u006d\u0065\u006e\u0074\u002f\u0072\u0065\u006c\u0061\u0074\u0069\u006f\u006e\u0073\u0068\u0069\u0070\u0073\u002f\u0066\u006fo\u0074\u006e\u006f\u0074\u0065\u0073";
EndNotesTypeStrict ="\u0068\u0074\u0074\u0070\u003a\u002f\u002f\u0070\u0075\u0072\u006c\u002e\u006f\u0063\u006c\u0063\u002eo\u0072\u0067\u002f\u006f\u006f\u0078\u006d\u006c\u002f\u006ff\u0066\u0069\u0063\u0065\u0044\u006f\u0063\u0075\u006d\u0065\u006e\u0074\u002f\u0072\u0065\u006c\u0061\u0074i\u006f\u006e\u0073\u0068\u0069\u0070s\u002f\u0065n\u0064\u006eo\u0074e\u0073";
SlideTypeStrict ="h\u0074\u0074\u0070\u003a\u002f\u002f\u0070\u0075\u0072\u006c\u002e\u006f\u0063\u006c\u0063\u002e\u006f\u0072\u0067\u002f\u006f\u006f\u0078\u006d\u006c\u002fo\u0066f\u0069\u0063\u0065\u0044o\u0063\u0075m\u0065\u006e\u0074\u002f\u0072\u0065\u006c\u0061\u0074\u0069\u006f\u006e\u0073\u0068\u0069\u0070\u0073\u002f\u0073\u006c\u0069\u0064\u0065";
VMLDrawingTypeStrict ="\u0068\u0074t\u0070\u003a\u002f\u002f\u0070\u0075\u0072\u006c\u002e\u006f\u0063\u006c\u0063\u002e\u006f\u0072\u0067\u002f\u006fo\u0078\u006d\u006c\u002f\u006f\u0066f\u0069\u0063\u0065\u0044\u006f\u0063\u0075\u006d\u0065\u006e\u0074\u002f\u0072\u0065l\u0061\u0074i\u006f\u006e\u0073\u0068i\u0070\u0073\u002f\u0076\u006dl\u0044\u0072\u0061\u0077\u0069\u006e\u0067";
OfficeDocumentType ="\u0068\u0074\u0074\u0070\u003a\u002f\u002fs\u0063\u0068\u0065\u006d\u0061\u0073\u002e\u006f\u0070\u0065\u006e\u0078\u006d\u006c\u0066\u006f\u0072\u006da\u0074\u0073\u002e\u006f\u0072g\u002f\u006f\u0066\u0066\u0069\u0063\u0065\u0044\u006fc\u0075\u006d\u0065\u006e\u0074\u002f\u0032\u0030\u0030\u0036\u002f\u0072\u0065\u006c\u0061\u0074\u0069\u006f\u006e\u0073\u0068\u0069\u0070\u0073\u002f\u006f\u0066\u0066\u0069\u0063\u0065\u0044\u006f\u0063\u0075\u006d\u0065\u006e\u0074";
StylesType ="\u0068\u0074\u0074\u0070\u003a/\u002f\u0073\u0063\u0068\u0065\u006da\u0073\u002e\u006f\u0070\u0065\u006e\u0078m\u006c\u0066\u006fr\u006d\u0061\u0074\u0073.\u006f\u0072\u0067\u002f\u006f\u0066f\u0069\u0063\u0065\u0044\u006f\u0063\u0075\u006d\u0065\u006e\u0074\u002f\u0032\u0030\u0030\u0036\u002fr\u0065\u006c\u0061\u0074\u0069\u006f\u006e\u0073\u0068\u0069\u0070\u0073\u002f\u0073\u0074\u0079\u006c\u0065\u0073";
ThemeType ="\u0068t\u0074p\u003a\u002f\u002f\u0073\u0063\u0068\u0065\u006d\u0061\u0073\u002eo\u0070\u0065\u006e\u0078m\u006c\u0066\u006f\u0072\u006da\u0074\u0073\u002e\u006f\u0072\u0067\u002f\u006f\u0066\u0066\u0069\u0063\u0065\u0044\u006f\u0063\u0075\u006d\u0065\u006e\u0074\u002f\u0032\u0030\u0030\u0036\u002f\u0072\u0065\u006c\u0061t\u0069\u006f\u006e\u0073\u0068\u0069\u0070\u0073/\u0074\u0068\u0065\u006d\u0065";
ThemeContentType ="\u0061\u0070\u0070\u006c\u0069\u0063\u0061t\u0069\u006f\u006e/\u0076\u006e\u0064.\u006f\u0070e\u006e\u0078\u006d\u006c\u0066\u006fr\u006dat\u0073\u002d\u006f\u0066\u0066\u0069\u0063\u0065\u0064\u006f\u0063\u0075\u006d\u0065\u006e\u0074\u002e\u0074\u0068\u0065\u006d\u0065\u002b\u0078\u006d\u006c";
SettingsType ="\u0068\u0074\u0074\u0070\u003a/\u002f\u0073\u0063\u0068\u0065\u006d\u0061s\u002e\u006f\u0070\u0065\u006e\u0078\u006d\u006c\u0066\u006f\u0072\u006d\u0061\u0074\u0073\u002e\u006f\u0072\u0067\u002f\u006f\u0066\u0066\u0069\u0063\u0065\u0044\u006f\u0063\u0075\u006d\u0065\u006e\u0074\u002f\u0032\u0030\u0030\u0036\u002fr\u0065\u006c\u0061\u0074\u0069\u006f\u006e\u0073\u0068\u0069\u0070\u0073/\u0073\u0065\u0074\u0074\u0069\u006eg\u0073";
ImageType ="\u0068t\u0074p\u003a\u002f\u002f\u0073\u0063\u0068\u0065\u006d\u0061\u0073\u002eo\u0070\u0065\u006e\u0078m\u006c\u0066\u006f\u0072\u006da\u0074\u0073\u002e\u006f\u0072\u0067\u002f\u006f\u0066\u0066\u0069\u0063\u0065\u0044\u006f\u0063\u0075\u006d\u0065\u006e\u0074\u002f\u0032\u0030\u0030\u0036\u002f\u0072\u0065\u006c\u0061t\u0069\u006f\u006e\u0073\u0068\u0069\u0070\u0073/\u0069\u006d\u0061\u0067\u0065";
ControlType ="\u0068\u0074\u0074\u0070\u003a\u002f\u002f\u0073\u0063h\u0065\u006da\u0073\u002e\u006f\u0070\u0065\u006e\u0078\u006d\u006cf\u006f\u0072\u006d\u0061t\u0073\u002e\u006f\u0072\u0067\u002f\u006f\u0066\u0066\u0069\u0063\u0065\u0044\u006f\u0063\u0075\u006d\u0065\u006e\u0074\u002f\u0032\u0030\u0030\u0036\u002f\u0072\u0065\u006c\u0061t\u0069\u006f\u006es\u0068\u0069\u0070\u0073\u002f\u0063\u006f\u006e\u0074\u0072\u006f\u006c";
CommentsType ="\u0068\u0074\u0074\u0070\u003a/\u002f\u0073\u0063\u0068\u0065\u006d\u0061s\u002e\u006f\u0070\u0065\u006e\u0078\u006d\u006c\u0066\u006f\u0072\u006d\u0061\u0074\u0073\u002e\u006f\u0072\u0067\u002f\u006f\u0066\u0066\u0069\u0063\u0065\u0044\u006f\u0063\u0075\u006d\u0065\u006e\u0074\u002f\u0032\u0030\u0030\u0036\u002fr\u0065\u006c\u0061\u0074\u0069\u006f\u006e\u0073\u0068\u0069\u0070\u0073/\u0063\u006f\u006d\u006d\u0065\u006et\u0073";
CommentsContentType ="a\u0070pl\u0069c\u0061t\u0069\u006f\u006e\u002f\u0076n\u0064\u002e\u006fp\u0065\u006e\u0078\u006d\u006cf\u006f\u0072\u006da\u0074\u0073\u002d\u006f\u0066\u0066\u0069\u0063\u0065\u0064\u006fc\u0075\u006d\u0065nt.\u0073\u0070\u0072\u0065\u0061\u0064s\u0068\u0065\u0065\u0074\u006d\u006c\u002e\u0063\u006f\u006d\u006d\u0065n\u0074s\u002b\u0078\u006d\u006c";
ThumbnailType ="\u0068\u0074\u0074\u0070\u003a\u002f\u002fs\u0063\u0068\u0065\u006d\u0061\u0073\u002e\u006f\u0070\u0065\u006e\u0078\u006d\u006cf\u006fr\u006d\u0061\u0074\u0073\u002e\u006fr\u0067\u002f\u0070\u0061\u0063\u006b\u0061g\u0065\u002f\u0032\u0030\u0030\u0036\u002f\u0072\u0065\u006c\u0061\u0074\u0069\u006f\u006e\u0073\u0068\u0069\u0070\u0073\u002f\u006d\u0065t\u0061\u0064\u0061\u0074\u0061\u002f\u0074\u0068\u0075\u006d\u0062\u006e\u0061i\u006c";
DrawingType ="\u0068\u0074\u0074\u0070\u003a\u002f\u002f\u0073\u0063h\u0065\u006da\u0073\u002e\u006f\u0070\u0065\u006e\u0078\u006d\u006cf\u006f\u0072\u006d\u0061t\u0073\u002e\u006f\u0072\u0067\u002f\u006f\u0066\u0066\u0069\u0063\u0065\u0044\u006f\u0063\u0075\u006d\u0065\u006e\u0074\u002f\u0032\u0030\u0030\u0036\u002f\u0072\u0065\u006c\u0061t\u0069\u006f\u006es\u0068\u0069\u0070\u0073\u002f\u0064\u0072\u0061\u0077\u0069\u006e\u0067";
DrawingContentType ="\u0061\u0070\u0070\u006ci\u0063\u0061\u0074\u0069\u006f\u006e\u002f\u0076\u006ed\u002e\u006f\u0070\u0065\u006e\u0078\u006d\u006c\u0066\u006f\u0072\u006d\u0061\u0074\u0073\u002d\u006f\u0066f\u0069\u0063\u0065\u0064\u006fc\u0075\u006d\u0065\u006e\u0074\u002e\u0064\u0072\u0061\u0077\u0069\u006e\u0067\u002b\u0078\u006d\u006c";
ChartType ="\u0068t\u0074p\u003a\u002f\u002f\u0073\u0063\u0068\u0065\u006d\u0061\u0073\u002eo\u0070\u0065\u006e\u0078m\u006c\u0066\u006f\u0072\u006da\u0074\u0073\u002e\u006f\u0072\u0067\u002f\u006f\u0066\u0066\u0069\u0063\u0065\u0044\u006f\u0063\u0075\u006d\u0065\u006e\u0074\u002f\u0032\u0030\u0030\u0036\u002f\u0072\u0065\u006c\u0061t\u0069\u006f\u006e\u0073\u0068\u0069\u0070\u0073/\u0063\u0068\u0061\u0072\u0074";
ChartContentType ="\u0061\u0070\u0070\u006c\u0069c\u0061\u0074\u0069\u006f\u006e/\u0076n\u0064\u002e\u006f\u0070\u0065\u006e\u0078\u006d\u006c\u0066\u006f\u0072\u006d\u0061\u0074\u0073\u002d\u006f\u0066f\u0069\u0063\u0065\u0064\u006f\u0063\u0075\u006d\u0065\u006e\u0074\u002e\u0064\u0072\u0061\u0077\u0069\u006e\u0067\u006d\u006c\u002e\u0063\u0068a\u0072\u0074\u002b\u0078\u006d\u006c";
HyperLinkType ="ht\u0074\u0070\u003a\u002f\u002f\u0073\u0063he\u006d\u0061\u0073\u002e\u006f\u0070\u0065\u006e\u0078\u006d\u006c\u0066\u006f\u0072\u006da\u0074\u0073\u002e\u006f\u0072\u0067\u002f\u006f\u0066\u0066\u0069\u0063\u0065\u0044\u006f\u0063\u0075\u006d\u0065\u006et\u002f\u0032\u0030\u0030\u0036\u002fr\u0065\u006c\u0061\u0074\u0069\u006f\u006e\u0073\u0068i\u0070s\u002f\u0068\u0079\u0070\u0065\u0072\u006c\u0069\u006e\u006b";
ExtendedPropertiesType ="\u0068t\u0074\u0070\u003a\u002f\u002f\u0073\u0063\u0068\u0065\u006d\u0061\u0073\u002eo\u0070\u0065\u006ex\u006d\u006c\u0066\u006f\u0072\u006da\u0074\u0073.\u006f\u0072\u0067\u002f\u006f\u0066\u0066\u0069\u0063\u0065\u0044\u006f\u0063\u0075\u006d\u0065\u006e\u0074\u002f\u0032\u0030\u0030\u0036\u002f\u0072\u0065\u006c\u0061\u0074i\u006f\u006e\u0073\u0068\u0069p\u0073\u002f\u0065x\u0074\u0065\u006e\u0064\u0065d\u002d\u0070\u0072\u006f\u0070\u0065\u0072\u0074\u0069\u0065\u0073";
CorePropertiesType ="\u0068\u0074\u0074\u0070\u003a\u002f\u002f\u0073\u0063\u0068\u0065\u006d\u0061s\u002e\u006f\u0070\u0065\u006e\u0078\u006d\u006c\u0066o\u0072\u006d\u0061\u0074\u0073\u002e\u006f\u0072\u0067\u002f\u0070\u0061\u0063\u006ba\u0067\u0065\u002f\u0032\u0030\u0030\u0036\u002f\u0072\u0065\u006c\u0061\u0074\u0069\u006f\u006e\u0073\u0068\u0069\u0070\u0073\u002f\u006d\u0065\u0074\u0061\u0064\u0061\u0074\u0061/\u0063\u006f\u0072\u0065\u002d\u0070\u0072\u006f\u0070e\u0072\u0074i\u0065\u0073";
CorePropertiesAltType ="h\u0074\u0074\u0070\u003a\u002f\u002f\u0073c\u0068\u0065\u006d\u0061\u0073\u002e\u006f\u0070e\u006e\u0078\u006dl\u0066\u006f\u0072\u006d\u0061\u0074\u0073\u002e\u006f\u0072\u0067\u002f\u006ff\u0066\u0069c\u0065\u0064\u006f\u0063\u0075\u006d\u0065\u006e\u0074\u002f\u0032\u00300\u0036/\u0072\u0065\u006c\u0061\u0074\u0069\u006f\u006e\u0073\u0068\u0069\u0070\u0073\u002f\u006d\u0065t\u0061\u0064\u0061\u0074\u0061\u002f\u0063\u006f\u0072\u0065\u002d\u0070\u0072\u006f\u0070\u0065\u0072\u0074\u0069\u0065\u0073";
CustomPropertiesType ="\u0068\u0074\u0074\u0070\u003a\u002f\u002f\u0073\u0063\u0068\u0065\u006d\u0061s\u002e\u006f\u0070\u0065\u006e\u0078\u006d\u006c\u0066o\u0072\u006d\u0061\u0074\u0073\u002e\u006f\u0072\u0067\u002f\u006f\u0066\u0066\u0069c\u0065\u0044\u006f\u0063\u0075\u006d\u0065\u006e\u0074\u002f\u0032\u0030\u0030\u0036\u002f\u0072\u0065\u006c\u0061\u0074\u0069\u006f\u006e\u0073\u0068\u0069\u0070\u0073\u002f\u0063u\u0073\u0074\u006f\u006d\u002d\u0070\u0072\u006f\u0070e\u0072\u0074i\u0065\u0073";
CustomXMLType ="ht\u0074\u0070\u003a\u002f\u002f\u0073\u0063he\u006d\u0061\u0073\u002e\u006f\u0070\u0065\u006e\u0078\u006d\u006c\u0066\u006f\u0072\u006da\u0074\u0073\u002e\u006f\u0072\u0067\u002f\u006f\u0066\u0066\u0069\u0063\u0065\u0044\u006f\u0063\u0075\u006d\u0065\u006et\u002f\u0032\u0030\u0030\u0036\u002fr\u0065\u006c\u0061\u0074\u0069\u006f\u006e\u0073\u0068i\u0070s\u002f\u0063\u0075\u0073\u0074\u006f\u006d\u0058\u006d\u006c";
TableStylesType ="\u0068\u0074\u0074\u0070\u003a\u002f\u002fs\u0063\u0068\u0065\u006d\u0061\u0073\u002e\u006f\u0070\u0065\u006e\u0078\u006d\u006cf\u006fr\u006d\u0061\u0074\u0073\u002e\u006fr\u0067\u002f\u006f\u0066\u0066\u0069\u0063e\u0044\u006f\u0063\u0075\u006d\u0065\u006e\u0074\u002f\u0032\u0030\u0030\u0036\u002f\u0072\u0065\u006c\u0061\u0074\u0069\u006f\u006e\u0073h\u0069\u0070\u0073\u002f\u0074\u0061\u0062\u006c\u0065\u0053\u0074\u0079\u006ce\u0073";
ViewPropertiesType ="ht\u0074\u0070\u003a\u002f\u002f\u0073\u0063he\u006d\u0061\u0073\u002e\u006f\u0070\u0065\u006e\u0078\u006d\u006c\u0066\u006f\u0072\u006da\u0074\u0073\u002e\u006f\u0072\u0067\u002f\u006f\u0066\u0066\u0069\u0063\u0065\u0044\u006f\u0063\u0075\u006d\u0065\u006et\u002f\u0032\u0030\u0030\u0036\u002fr\u0065\u006c\u0061\u0074\u0069\u006f\u006e\u0073\u0068i\u0070s\u002f\u0076\u0069\u0065\u0077\u0050\u0072\u006f\u0070\u0073";
FontEmbeddingType ="h\u0074tp\u003a/\u002fs\u0063\u0068\u0065\u006d\u0061s\u002e\u006f\u0070e\u006e\u0078\u006d\u006c\u0066o\u0072\u006d\u0061t\u0073\u002e\u006f\u0072\u0067\u002f\u006f\u0066\u0066\u0069\u0063e\u0044\u006f\u0063ume\u006e\u0074\u002f\u0032\u0030\u00306\u002f\u0072\u0065\u006c\u0061\u0074\u0069\u006f\u006e\u0073\u0068\u0069p\u0073/\u0066\u006f\u006e\u0074";
WorksheetType ="ht\u0074\u0070\u003a\u002f\u002f\u0073\u0063he\u006d\u0061\u0073\u002e\u006f\u0070\u0065\u006e\u0078\u006d\u006c\u0066\u006f\u0072\u006da\u0074\u0073\u002e\u006f\u0072\u0067\u002f\u006f\u0066\u0066\u0069\u0063\u0065\u0044\u006f\u0063\u0075\u006d\u0065\u006et\u002f\u0032\u0030\u0030\u0036\u002fr\u0065\u006c\u0061\u0074\u0069\u006f\u006e\u0073\u0068i\u0070s\u002f\u0077\u006f\u0072\u006b\u0073\u0068\u0065\u0065\u0074";
WorksheetContentType ="\u0061p\u0070l\u0069\u0063\u0061\u0074\u0069\u006f\u006e\u002f\u0076\u006e\u0064.\u006f\u0070\u0065\u006ex\u006d\u006c\u0066\u006f\u0072m\u0061\u0074\u0073\u002d\u006f\u0066\u0066\u0069\u0063\u0065\u0064\u006f\u0063\u0075\u006d\u0065\u006e\u0074\u002e\u0073\u0070\u0072\u0065\u0061\u0064\u0073\u0068\u0065\u0065\u0074\u006dl\u002e\u0077\u006f\u0072\u006b\u0073\u0068\u0065e\u0074\u002b\u0078\u006d\u006c";
SharedStringsType ="h\u0074\u0074\u0070:\u002f\u002f\u0073\u0063\u0068\u0065\u006d\u0061\u0073\u002e\u006f\u0070\u0065\u006e\u0078\u006d\u006c\u0066\u006f\u0072\u006d\u0061\u0074\u0073\u002eo\u0072\u0067\u002fo\u0066\u0066\u0069\u0063\u0065\u0044\u006f\u0063\u0075\u006d\u0065\u006e\u0074/\u0032\u0030\u0030\u0036/\u0072\u0065\u006c\u0061t\u0069\u006f\u006e\u0073\u0068\u0069\u0070\u0073\u002f\u0073\u0068\u0061\u0072\u0065\u0064\u0053\u0074r\u0069\u006e\u0067\u0073";
SharedStingsType =SharedStringsType ;SharedStringsContentType ="ap\u0070\u006c\u0069\u0063\u0061\u0074\u0069on\u002f\u0076\u006e\u0064\u002e\u006f\u0070\u0065\u006e\u0078\u006d\u006c\u0066\u006f\u0072m\u0061\u0074\u0073\u002d\u006f\u0066\u0066\u0069\u0063\u0065\u0064\u006f\u0063\u0075\u006d\u0065\u006e\u0074\u002e\u0073p\u0072\u0065\u0061\u0064\u0073\u0068e\u0065\u0074\u006d\u006c\u002e\u0073\u0068\u0061\u0072e\u0064S\u0074\u0072\u0069\u006e\u0067\u0073\u002b\u0078\u006d\u006c";
SMLStyleSheetContentType ="\u0061\u0070\u0070\u006c\u0069\u0063\u0061\u0074\u0069\u006f\u006e\u002f\u0076\u006e\u0064\u002e\u006f\u0070\u0065n\u0078\u006d\u006c\u0066\u006f\u0072\u006d\u0061\u0074\u0073\u002d\u006f\u0066\u0066\u0069\u0063e\u0064\u006f\u0063\u0075\u006d\u0065\u006e\u0074\u002e\u0073\u0070\u0072\u0065\u0061\u0064\u0073\u0068\u0065\u0065\u0074\u006d\u006c\u002e\u0073t\u0079\u006c\u0065\u0073\u002bx\u006d\u006c";
TableType ="\u0068t\u0074p\u003a\u002f\u002f\u0073\u0063\u0068\u0065\u006d\u0061\u0073\u002eo\u0070\u0065\u006e\u0078m\u006c\u0066\u006f\u0072\u006da\u0074\u0073\u002e\u006f\u0072\u0067\u002f\u006f\u0066\u0066\u0069\u0063\u0065\u0044\u006f\u0063\u0075\u006d\u0065\u006e\u0074\u002f\u0032\u0030\u0030\u0036\u002f\u0072\u0065\u006c\u0061t\u0069\u006f\u006e\u0073\u0068\u0069\u0070\u0073/\u0074\u0061\u0062\u006c\u0065";
TableContentType ="a\u0070\u0070l\u0069\u0063\u0061\u0074\u0069\u006f\u006e\u002f\u0076\u006e\u0064\u002e\u006f\u0070\u0065\u006e\u0078\u006d\u006c\u0066o\u0072\u006d\u0061\u0074\u0073\u002d\u006f\u0066\u0066\u0069\u0063\u0065\u0064\u006f\u0063\u0075m\u0065\u006e\u0074\u002e\u0073\u0070\u0072\u0065\u0061\u0064\u0073\u0068\u0065e\u0074\u006d\u006c\u002e\u0074\u0061\u0062\u006c\u0065\u002b\u0078m\u006c";
HeaderType ="\u0068\u0074\u0074\u0070\u003a/\u002f\u0073\u0063\u0068\u0065\u006da\u0073\u002e\u006f\u0070\u0065\u006e\u0078m\u006c\u0066\u006fr\u006d\u0061\u0074\u0073.\u006f\u0072\u0067\u002f\u006f\u0066f\u0069\u0063\u0065\u0044\u006f\u0063\u0075\u006d\u0065\u006e\u0074\u002f\u0032\u0030\u0030\u0036\u002fr\u0065\u006c\u0061\u0074\u0069\u006f\u006e\u0073\u0068\u0069\u0070\u0073\u002f\u0068\u0065\u0061\u0064\u0065\u0072";
FooterType ="\u0068\u0074\u0074\u0070\u003a/\u002f\u0073\u0063\u0068\u0065\u006da\u0073\u002e\u006f\u0070\u0065\u006e\u0078m\u006c\u0066\u006fr\u006d\u0061\u0074\u0073.\u006f\u0072\u0067\u002f\u006f\u0066f\u0069\u0063\u0065\u0044\u006f\u0063\u0075\u006d\u0065\u006e\u0074\u002f\u0032\u0030\u0030\u0036\u002fr\u0065\u006c\u0061\u0074\u0069\u006f\u006e\u0073\u0068\u0069\u0070\u0073\u002f\u0066\u006f\u006f\u0074\u0065\u0072";
NumberingType ="ht\u0074\u0070\u003a\u002f\u002f\u0073\u0063he\u006d\u0061\u0073\u002e\u006f\u0070\u0065\u006e\u0078\u006d\u006c\u0066\u006f\u0072\u006da\u0074\u0073\u002e\u006f\u0072\u0067\u002f\u006f\u0066\u0066\u0069\u0063\u0065\u0044\u006f\u0063\u0075\u006d\u0065\u006et\u002f\u0032\u0030\u0030\u0036\u002fr\u0065\u006c\u0061\u0074\u0069\u006f\u006e\u0073\u0068i\u0070s\u002f\u006e\u0075\u006d\u0062\u0065\u0072\u0069\u006e\u0067";
FontTableType ="ht\u0074\u0070\u003a\u002f\u002f\u0073\u0063he\u006d\u0061\u0073\u002e\u006f\u0070\u0065\u006e\u0078\u006d\u006c\u0066\u006f\u0072\u006da\u0074\u0073\u002e\u006f\u0072\u0067\u002f\u006f\u0066\u0066\u0069\u0063\u0065\u0044\u006f\u0063\u0075\u006d\u0065\u006et\u002f\u0032\u0030\u0030\u0036\u002fr\u0065\u006c\u0061\u0074\u0069\u006f\u006e\u0073\u0068i\u0070s\u002f\u0066\u006f\u006e\u0074\u0054\u0061\u0062\u006c\u0065";
WebSettingsType ="\u0068\u0074\u0074\u0070\u003a\u002f\u002fs\u0063\u0068\u0065\u006d\u0061\u0073\u002e\u006f\u0070\u0065\u006e\u0078\u006d\u006cf\u006fr\u006d\u0061\u0074\u0073\u002e\u006fr\u0067\u002f\u006f\u0066\u0066\u0069\u0063e\u0044\u006f\u0063\u0075\u006d\u0065\u006e\u0074\u002f\u0032\u0030\u0030\u0036\u002f\u0072\u0065\u006c\u0061\u0074\u0069\u006f\u006e\u0073h\u0069\u0070\u0073\u002f\u0077\u0065\u0062\u0053\u0065\u0074\u0074\u0069\u006eg\u0073";
FootNotesType ="ht\u0074\u0070\u003a\u002f\u002f\u0073\u0063he\u006d\u0061\u0073\u002e\u006f\u0070\u0065\u006e\u0078\u006d\u006c\u0066\u006f\u0072\u006da\u0074\u0073\u002e\u006f\u0072\u0067\u002f\u006f\u0066\u0066\u0069\u0063\u0065\u0044\u006f\u0063\u0075\u006d\u0065\u006et\u002f\u0032\u0030\u0030\u0036\u002fr\u0065\u006c\u0061\u0074\u0069\u006f\u006e\u0073\u0068i\u0070s\u002f\u0066\u006f\u006f\u0074\u006e\u006f\u0074\u0065\u0073";
EndNotesType ="\u0068\u0074\u0074\u0070\u003a/\u002f\u0073\u0063\u0068\u0065\u006d\u0061s\u002e\u006f\u0070\u0065\u006e\u0078\u006d\u006c\u0066\u006f\u0072\u006d\u0061\u0074\u0073\u002e\u006f\u0072\u0067\u002f\u006f\u0066\u0066\u0069\u0063\u0065\u0044\u006f\u0063\u0075\u006d\u0065\u006e\u0074\u002f\u0032\u0030\u0030\u0036\u002fr\u0065\u006c\u0061\u0074\u0069\u006f\u006e\u0073\u0068\u0069\u0070\u0073/\u0065\u006e\u0064\u006e\u006f\u0074e\u0073";
SlideType ="\u0068t\u0074p\u003a\u002f\u002f\u0073\u0063\u0068\u0065\u006d\u0061\u0073\u002eo\u0070\u0065\u006e\u0078m\u006c\u0066\u006f\u0072\u006da\u0074\u0073\u002e\u006f\u0072\u0067\u002f\u006f\u0066\u0066\u0069\u0063\u0065\u0044\u006f\u0063\u0075\u006d\u0065\u006e\u0074\u002f\u0032\u0030\u0030\u0036\u002f\u0072\u0065\u006c\u0061t\u0069\u006f\u006e\u0073\u0068\u0069\u0070\u0073/\u0073\u006c\u0069\u0064\u0065";
SlideContentType ="\u0061\u0070\u0070\u006c\u0069\u0063\u0061\u0074\u0069\u006f\u006e\u002f\u0076\u006e\u0064\u002e\u006f\u0070\u0065n\u0078\u006d\u006c\u0066\u006f\u0072\u006d\u0061\u0074\u0073\u002d\u006f\u0066\u0066\u0069\u0063e\u0064\u006f\u0063\u0075\u006d\u0065\u006e\u0074\u002e\u0070\u0072\u0065\u0073\u0065\u006e\u0074\u0061\u0074\u0069\u006f\u006e\u006d\u006c\u002es\u006c\u0069\u0064\u0065\u002bx\u006d\u006c";
SlideMasterType ="\u0068\u0074\u0074\u0070\u003a\u002f\u002fs\u0063\u0068\u0065\u006d\u0061\u0073\u002e\u006f\u0070\u0065\u006e\u0078\u006d\u006cf\u006fr\u006d\u0061\u0074\u0073\u002e\u006fr\u0067\u002f\u006f\u0066\u0066\u0069\u0063e\u0044\u006f\u0063\u0075\u006d\u0065\u006e\u0074\u002f\u0032\u0030\u0030\u0036\u002f\u0072\u0065\u006c\u0061\u0074\u0069\u006f\u006e\u0073h\u0069\u0070\u0073\u002f\u0073\u006c\u0069\u0064\u0065\u004d\u0061\u0073\u0074e\u0072";
SlideMasterContentType ="\u0061\u0070\u0070\u006c\u0069c\u0061\u0074\u0069\u006f\u006e\u002f\u0076n\u0064\u002e\u006f\u0070\u0065\u006e\u0078\u006d\u006c\u0066\u006f\u0072\u006d\u0061\u0074\u0073\u002d\u006f\u0066\u0066\u0069\u0063\u0065\u0064\u006f\u0063\u0075\u006d\u0065\u006e\u0074\u002e\u0070\u0072\u0065\u0073\u0065\u006e\u0074\u0061t\u0069\u006f\u006e\u006d\u006c\u002e\u0073\u006c\u0069\u0064\u0065\u004da\u0073\u0074\u0065\u0072\u002b\u0078m\u006c";
SlideLayoutType ="\u0068\u0074\u0074\u0070\u003a\u002f\u002fs\u0063\u0068\u0065\u006d\u0061\u0073\u002e\u006f\u0070\u0065\u006e\u0078\u006d\u006cf\u006fr\u006d\u0061\u0074\u0073\u002e\u006fr\u0067\u002f\u006f\u0066\u0066\u0069\u0063e\u0044\u006f\u0063\u0075\u006d\u0065\u006e\u0074\u002f\u0032\u0030\u0030\u0036\u002f\u0072\u0065\u006c\u0061\u0074\u0069\u006f\u006e\u0073h\u0069\u0070\u0073\u002f\u0073\u006c\u0069\u0064\u0065\u004c\u0061\u0079\u006fu\u0074";
SlideLayoutContentType ="\u0061\u0070\u0070\u006c\u0069c\u0061\u0074\u0069\u006f\u006e\u002f\u0076n\u0064\u002e\u006f\u0070\u0065\u006e\u0078\u006d\u006c\u0066\u006f\u0072\u006d\u0061\u0074\u0073\u002d\u006f\u0066\u0066\u0069\u0063\u0065\u0064\u006f\u0063\u0075\u006d\u0065\u006e\u0074\u002e\u0070\u0072\u0065\u0073\u0065\u006e\u0074\u0061t\u0069\u006f\u006e\u006d\u006c\u002e\u0073\u006c\u0069\u0064\u0065\u004ca\u0079\u006f\u0075\u0074\u002b\u0078m\u006c";
PresentationPropertiesType ="ht\u0074\u0070\u003a\u002f\u002f\u0073\u0063he\u006d\u0061\u0073\u002e\u006f\u0070\u0065\u006e\u0078\u006d\u006c\u0066\u006f\u0072\u006da\u0074\u0073\u002e\u006f\u0072\u0067\u002f\u006f\u0066\u0066\u0069\u0063\u0065\u0044\u006f\u0063\u0075\u006d\u0065\u006et\u002f\u0032\u0030\u0030\u0036\u002fr\u0065\u006c\u0061\u0074\u0069\u006f\u006e\u0073\u0068i\u0070s\u002f\u0070\u0072\u0065\u0073\u0050\u0072\u006f\u0070\u0073";
HandoutMasterType ="h\u0074\u0074\u0070:\u002f\u002f\u0073\u0063\u0068\u0065\u006d\u0061\u0073\u002e\u006f\u0070\u0065\u006e\u0078\u006d\u006c\u0066\u006f\u0072\u006d\u0061\u0074\u0073\u002eo\u0072\u0067\u002fo\u0066\u0066\u0069\u0063\u0065\u0044\u006f\u0063\u0075\u006d\u0065\u006e\u0074/\u0032\u0030\u0030\u0036/\u0072\u0065\u006c\u0061t\u0069\u006f\u006e\u0073\u0068\u0069\u0070\u0073\u002f\u0068\u0061\u006e\u0064\u006f\u0075\u0074\u004da\u0073\u0074\u0065\u0072";
NotesMasterType ="\u0068\u0074\u0074\u0070\u003a\u002f\u002fs\u0063\u0068\u0065\u006d\u0061\u0073\u002e\u006f\u0070\u0065\u006e\u0078\u006d\u006cf\u006fr\u006d\u0061\u0074\u0073\u002e\u006fr\u0067\u002f\u006f\u0066\u0066\u0069\u0063e\u0044\u006f\u0063\u0075\u006d\u0065\u006e\u0074\u002f\u0032\u0030\u0030\u0036\u002f\u0072\u0065\u006c\u0061\u0074\u0069\u006f\u006e\u0073h\u0069\u0070\u0073\u002f\u006e\u006f\u0074\u0065\u0073\u004d\u0061\u0073\u0074e\u0072";
VMLDrawingType ="\u0068\u0074tp\u003a\u002f\u002f\u0073\u0063\u0068\u0065\u006d\u0061\u0073\u002e\u006f\u0070\u0065\u006e\u0078\u006d\u006c\u0066\u006fr\u006d\u0061\u0074\u0073.\u006f\u0072\u0067\u002fof\u0066\u0069c\u0065D\u006f\u0063\u0075\u006d\u0065\u006et\u002f\u0032\u00300\u0036\u002fr\u0065\u006c\u0061\u0074\u0069\u006f\u006e\u0073\u0068\u0069\u0070\u0073\u002f\u0076m\u006c\u0044\u0072\u0061\u0077\u0069\u006e\u0067";
VMLDrawingContentType ="\u0061\u0070\u0070\u006c\u0069\u0063a\u0074\u0069\u006fn\u002f\u0076\u006ed\u002e\u006f\u0070\u0065\u006e\u0078\u006d\u006c\u0066\u006fr\u006d\u0061\u0074\u0073\u002dof\u0066\u0069\u0063\u0065\u0064\u006f\u0063\u0075\u006d\u0065\u006e\u0074\u002e\u0076\u006d\u006c\u0044\u0072\u0061\u0077\u0069\u006e\u0067";
);func _fcad (_bg []*XSDAny )[]*any {_gca :=[]*any {};for _ ,_acd :=range _bg {_ceb :=&any {};_ceb .XMLName =_acd .XMLName ;_baf :=[]_ga .Attr {};for _ ,_ee :=range _acd .Attrs {if _ee .Name .Local !="\u0078\u006d\u006cn\u0073"{_baf =append (_baf ,_ee );
};};_ceb .Attrs =_baf ;_ceb .Data =_acd .Data ;_ceb .Nodes =_fcad (_acd .Nodes );_gca =append (_gca ,_ceb );};return _gca ;};
// Int32 returns a copy of v as a pointer.
func Int32 (v int32 )*int32 {_fea :=v ;return &_fea };
// RegisterConstructor registers a constructor function used for unmarshaling
// xsd:any elements.
func RegisterConstructor (ns ,name string ,fn interface{}){_ff [ns +"\u002f"+name ]=fn };const (ContentTypesFilename ="\u005b\u0043\u006f\u006ete\u006e\u0074\u005f\u0054\u0079\u0070\u0065\u0073\u005d\u002e\u0078\u006d\u006c";BaseRelsFilename ="_\u0072\u0065\u006c\u0073\u002f\u002e\u0072\u0065\u006c\u0073";
);
// MarshalXML implements the xml.Marshaler interface.
func (_eaa *XSDAny )MarshalXML (e *_ga .Encoder ,start _ga .StartElement )error {start .Name =_eaa .XMLName ;start .Attr =_eaa .Attrs ;_gb :=any {};_gb .XMLName =_eaa .XMLName ;_gb .Attrs =_eaa .Attrs ;_gb .Data =_eaa .Data ;_gb .Nodes =_fcad (_eaa .Nodes );
_ef :=[]string {};_ba :=false ;_eg :=nsSet {_afg :map[string ]string {},_fcb :map[string ]string {}};_eaa .collectNS (&_eg );_eg .applyToNode (&_gb );for _ ,_ddd :=range _eg ._dbe {if _ ,_egf :=_abe [_ddd ];_egf {_ef =append (_ef ,_ddd );};_cff :=_eg ._fcb [_ddd ];
_gb .Attrs =append (_gb .Attrs ,_ga .Attr {Name :_ga .Name {Local :"\u0078\u006d\u006c\u006e\u0073\u003a"+_ddd },Value :_cff });if _ddd =="\u006d\u0063"{_ba =true ;};};for _ ,_cffg :=range _gb .Attrs {if _cffg .Name .Local =="\u006d\u0063\u003aI\u0067\u006e\u006f\u0072\u0061\u0062\u006c\u0065"{_ba =false ;
break ;};};if _ba &&len (_ef )> 0{_gb .Attrs =append (_gb .Attrs ,_ga .Attr {Name :_ga .Name {Local :"\u006d\u0063\u003aI\u0067\u006e\u006f\u0072\u0061\u0062\u006c\u0065"},Value :_c .Join (_ef ,"\u0020")});};return e .Encode (&_gb );};
// RelativeFilename returns a filename relative to the source file referenced
// from a relationships file. Index is used in some cases for files which there
// may be more than one of (e.g. worksheets/drawings/charts)
func RelativeFilename (dt DocType ,relToTyp ,typ string ,index int )string {_ad :=AbsoluteFilename (dt ,typ ,index );if relToTyp ==""{return _ad ;};_ca :=AbsoluteFilename (dt ,relToTyp ,index );_af :=_c .Split (_ca ,"\u002f");_fc :=_c .Split (_ad ,"\u002f");
_eb :=0;for _fca :=0;_fca < len (_af );_fca ++{if _af [_fca ]==_fc [_fca ]{_eb ++;};if _fca +1==len (_fc ){break ;};};_af =_af [_eb :];_fc =_fc [_eb :];_gab :=len (_af )-1;if _gab > 0{return _cg .RepeatString ("\u002e\u002e\u002f",_gab )+_c .Join (_fc ,"\u002f");
};return _c .Join (_fc ,"\u002f");};
// AbsoluteImageFilename returns the full path to an image from the root of the
// zip container.
func AbsoluteImageFilename (dt DocType ,index int ,fileExtension string )string {_ab :=AbsoluteFilename (dt ,ImageType ,index );return _ab [0:len (_ab )-3]+fileExtension ;};
// Uint32 returns a copy of v as a pointer.
func Uint32 (v uint32 )*uint32 {_aa :=v ;return &_aa };
// Uint16 returns a copy of v as a pointer.
func Uint16 (v uint16 )*uint16 {_ed :=v ;return &_ed };
// XSDAny is used to marshal/unmarshal xsd:any types in the OOXML schema.
type XSDAny struct{XMLName _ga .Name ;Attrs []_ga .Attr ;Data []byte ;Nodes []*XSDAny ;};
// Uint8 returns a copy of v as a pointer.
func Uint8 (v uint8 )*uint8 {_bc :=v ;return &_bc };
// UnmarshalXML implements the xml.Unmarshaler interface.
func (_bcb *XSDAny )UnmarshalXML (d *_ga .Decoder ,start _ga .StartElement )error {_gec :=any {};if _cgg :=d .DecodeElement (&_gec ,&start );_cgg !=nil {return _cgg ;};_ffc (&_gec );_bcb .XMLName =_gec .XMLName ;_bcb .Attrs =_gec .Attrs ;_bcb .Data =_gec .Data ;
_bcb .Nodes =_dcf (_gec .Nodes );return nil ;};
// Bool returns a copy of v as a pointer.
func Bool (v bool )*bool {_age :=v ;return &_age };func (_cfb *nsSet )getPrefix (_df string )string {if _dbg ,_gde :=_gd [_df ];_gde {if _ ,_dc :=_cfb ._fcb [_dbg ];!_dc {_cfb ._fcb [_dbg ]=_df ;_cfb ._afg [_df ]=_dbg ;_cfb ._dbe =append (_cfb ._dbe ,_dbg );
};return _dbg ;};_df =_c .TrimFunc (_df ,func (_de rune )bool {return !_f .IsLetter (_de )});if _gae ,_bcd :=_cfb ._afg [_df ];_bcd {return _gae ;};_dab :=_c .Split (_df ,"\u002f");_dab =_c .Split (_dab [len (_dab )-1],"\u003a");_dcc :=_dab [len (_dab )-1];
_fce :=0;_cae :=[]byte {};for {if _fce < len (_dcc ){_cae =append (_cae ,_dcc [_fce ]);}else {_cae =append (_cae ,'_');};_fce ++;if _ ,_gcf :=_cfb ._fcb [string (_cae )];!_gcf {_cfb ._fcb [string (_cae )]=_df ;_cfb ._afg [_df ]=string (_cae );_cfb ._dbe =append (_cfb ._dbe ,string (_cae ));
return string (_cae );};};};
// CreateElement creates an element with the given namespace and name. It is
// used to unmarshal some xsd:any elements to the appropriate concrete type.
func CreateElement (start _ga .StartElement )(Any ,error ){_fe ,_gaa :=_ff [start .Name .Space +"\u002f"+start .Name .Local ];if !_gaa {_e :=&XSDAny {};return _e ,nil ;};_bf :=_a .ValueOf (_fe );_dg :=_bf .Call (nil );if len (_dg )!=1{return nil ,_ag .Errorf ("\u0063\u006fn\u0073\u0074\u0072\u0075\u0063t\u006f\u0072\u0020\u0066\u0075n\u0063\u0074\u0069\u006f\u006e\u0020\u0073\u0068\u006f\u0075\u006c\u0064\u0020\u0072\u0065\u0074\u0075\u0072\u006e\u0020\u006f\u006e\u0065\u0020\u0076\u0061\u006c\u0075\u0065\u002c\u0020\u0067\u006f\u0074\u0020\u0025\u0064",len (_dg ));
};_gcg ,_gaa :=_dg [0].Interface ().(Any );if !_gaa {return nil ,_fd .New ("\u0063o\u006e\u0073t\u0072\u0075\u0063\u0074o\u0072\u0020\u0066u\u006e\u0063\u0074\u0069\u006f\u006e\u0020\u0073\u0068ou\u006c\u0064\u0020r\u0065\u0074u\u0072\u006e\u0020\u0061\u006e\u0079 \u0027\u0041n\u0079\u0027");
};return _gcg ,nil ;};const _dd =true ;func _dcf (_cffd []*any )[]*XSDAny {_caac :=[]*XSDAny {};for _ ,_ebb :=range _cffd {_dag :=&XSDAny {};_dag .XMLName =_ebb .XMLName ;_dag .Attrs =_ebb .Attrs ;_dag .Data =_ebb .Data ;_dag .Nodes =_dcf (_ebb .Nodes );
_caac =append (_caac ,_dag );};return _caac ;};
// Float64 returns a copy of v as a pointer.
func Float64 (v float64 )*float64 {_db :=v ;return &_db };type nsSet struct{_afg map[string ]string ;_fcb map[string ]string ;_dbe []string ;};
// NeedsSpacePreserve returns true if the string has leading or trailing space.
func NeedsSpacePreserve (s string )bool {if len (s )==0{return false ;};switch s [0]{case '\t','\n','\v','\f','\r',' ',0x85,0xA0:return true ;};switch s [len (s )-1]{case '\t','\n','\v','\f','\r',' ',0x85,0xA0:return true ;};return false ;};var _gd =func ()map[string ]string {_fcf :=map[string ]string {};
for _ade ,_gdd :=range _ace {_fcf [_gdd ]=_ade ;};return _fcf ;}();var _ff =map[string ]interface{}{};
// RelativeImageFilename returns an image filename relative to the source file referenced
// from a relationships file. It is identical to RelativeFilename but is used particularly for images
// in order to handle different image formats.
func RelativeImageFilename (dt DocType ,relToTyp ,typ string ,index int ,fileExtension string )string {_ce :=RelativeFilename (dt ,relToTyp ,typ ,index );return _ce [0:len (_ce )-3]+fileExtension ;};
// DisableLogging sets the Log function to a no-op so that any log messages are
// silently discarded.
func DisableLogging (){Log =func (string ,...interface{}){}};
// String returns a copy of v as a pointer.
func String (v string )*string {_dge :=v ;return &_dge };
// AddPreserveSpaceAttr adds an xml:space="preserve" attribute to a start
// element if it is required for the string s.
func AddPreserveSpaceAttr (se *_ga .StartElement ,s string ){if NeedsSpacePreserve (s ){se .Attr =append (se .Attr ,_ga .Attr {Name :_ga .Name {Local :"\u0078m\u006c\u003a\u0073\u0070\u0061\u0063e"},Value :"\u0070\u0072\u0065\u0073\u0065\u0072\u0076\u0065"});
};};
// DocType represents one of the three document types supported (docx/xlsx/pptx)
type DocType byte ;var _abe =map[string ]bool {"\u0077\u0031\u0030":true ,"\u0077\u0031\u0034":true ,"\u0077\u0070\u0031\u0034":true ,"\u0077\u0031\u0035":true ,"\u0078\u0031\u0035a\u0063":true ,"\u0077\u0031\u0036s\u0065":true ,"\u0077\u0031\u0036\u0063\u0069\u0064":true ,"\u0077\u0031\u0036":true ,"\u0077\u0031\u0036\u0063\u0065\u0078":true };
var _ace =map[string ]string {"\u0061":"\u0068\u0074\u0074\u0070\u003a\u002f\u002f\u0073\u0063\u0068\u0065m\u0061\u0073\u002e\u006f\u0070\u0065\u006e\u0078m\u006cf\u006f\u0072\u006d\u0061\u0074\u0073\u002e\u006f\u0072\u0067\u002f\u0064\u0072\u0061\u0077\u0069\u006e\u0067m\u006c\u002f\u0032\u0030\u0030\u0036\u002f\u006d\u0061\u0069\u006e","\u0064\u0063":"\u0068\u0074\u0074\u0070\u003a\u002f\u002f\u0070\u0075\u0072\u006c\u002e\u006f\u0072\u0067/\u0064c\u002f\u0065\u006c\u0065\u006d\u0065\u006e\u0074\u0073\u002f\u0031\u002e\u0031\u002f","\u0064c\u0074\u0065\u0072\u006d\u0073":"\u0068t\u0074\u0070\u003a\u002f/\u0070\u0075\u0072\u006c\u002eo\u0072g\u002fd\u0063\u002f\u0074\u0065\u0072\u006d\u0073/","\u006d\u0063":"\u0068\u0074\u0074\u0070\u003a\u002f\u002f\u0073\u0063\u0068\u0065\u006d\u0061\u0073\u002e\u006f\u0070\u0065\u006e\u0078m\u006c\u0066\u006f\u0072\u006d\u0061\u0074\u0073\u002e\u006f\u0072\u0067\u002f\u006d\u0061\u0072\u006b\u0075\u0070\u002d\u0063\u006f\u006d\u0070\u0061\u0074\u0069\u0062\u0069\u006ci\u0074\u0079\u002f\u0032\u00300\u0036","\u006d\u006f":"\u0068\u0074\u0074\u0070\u003a\u002f/\u0073\u0063\u0068e\u006d\u0061\u0073.\u006d\u0069\u0063\u0072\u006f\u0073\u006f\u0066\u0074\u002ec\u006f\u006d\u002f\u006f\u0066fi\u0063\u0065\u002f\u006d\u0061\u0063\u002f\u006f\u0066\u0066\u0069\u0063\u0065\u002f\u0032\u0030\u0030\u0038\u002f\u006d\u0061\u0069\u006e","\u0077":"ht\u0074\u0070:\u002f\u002f\u0073\u0063\u0068\u0065\u006d\u0061\u0073.\u006f\u0070\u0065\u006e\u0078\u006d\u006c\u0066\u006f\u0072\u006d\u0061\u0074\u0073\u002e\u006f\u0072\u0067\u002f\u0077\u006f\u0072\u0064\u0070\u0072\u006f\u0063\u0065s\u0073i\u006e\u0067\u006d\u006c\u002f\u0032\u0030\u00306\u002fm\u0061\u0069n","\u0077\u0031\u0030":"\u0075\u0072n\u003a\u0073\u0063\u0068e\u006d\u0061s\u002d\u006d\u0069\u0063\u0072\u006f\u0073\u006ff\u0074\u002d\u0063\u006f\u006d\u003a\u006f\u0066\u0066\u0069\u0063\u0065:\u0077\u006f\u0072\u0064","\u0077\u0031\u0034":"\u0068\u0074t\u0070\u003a\u002f\u002f\u0073c\u0068\u0065\u006d\u0061\u0073.\u006d\u0069\u0063\u0072\u006f\u0073\u006f\u0066\u0074\u002e\u0063\u006f\u006d\u002f\u006f\u0066\u0066\u0069\u0063\u0065\u002f\u0077\u006f\u0072\u0064\u002f\u0032\u0030\u0031\u0030\u002f\u0077\u006f\u0072\u0064\u006d\u006c","\u0077\u0031\u0035":"\u0068\u0074t\u0070\u003a\u002f\u002f\u0073c\u0068\u0065\u006d\u0061\u0073.\u006d\u0069\u0063\u0072\u006f\u0073\u006f\u0066\u0074\u002e\u0063\u006f\u006d\u002f\u006f\u0066\u0066\u0069\u0063\u0065\u002f\u0077\u006f\u0072\u0064\u002f\u0032\u0030\u0031\u0032\u002f\u0077\u006f\u0072\u0064\u006d\u006c","\u0077\u006e\u0065":"\u0068\u0074t\u0070\u003a\u002f\u002f\u0073c\u0068\u0065\u006d\u0061\u0073.\u006d\u0069\u0063\u0072\u006f\u0073\u006f\u0066\u0074\u002e\u0063\u006f\u006d\u002f\u006f\u0066\u0066\u0069\u0063\u0065\u002f\u0077\u006f\u0072\u0064\u002f\u0032\u0030\u0030\u0036\u002f\u0077\u006f\u0072\u0064\u006d\u006c","\u0077\u0070":"\u0068\u0074\u0074\u0070\u003a\u002f\u002f\u0073\u0063\u0068\u0065\u006d\u0061\u0073\u002e\u006f\u0070\u0065\u006ex\u006d\u006c\u0066\u006f\u0072\u006d\u0061\u0074\u0073\u002e\u006f\u0072\u0067\u002f\u0064\u0072a\u0077\u0069\u006e\u0067\u006d\u006c\u002f\u0032\u0030\u0030\u0036\u002f\u0077\u006f\u0072\u0064\u0070\u0072\u006f\u0063\u0065\u0073\u0073\u0069n\u0067\u0044\u0072\u0061\u0077i\u006e\u0067","\u0077\u0070\u0031\u0034":"\u0068\u0074\u0074\u0070\u003a\u002f/\u0073\u0063\u0068\u0065\u006da\u0073\u002e\u006d\u0069\u0063\u0072o\u0073\u006f\u0066\u0074\u002ec\u006f\u006d\u002f\u006f\u0066\u0066\u0069\u0063\u0065\u002f\u0077\u006fr\u0064\u002f\u0032\u0030\u0031\u0030\u002f\u0077\u006f\u0072\u0064\u0070\u0072\u006f\u0063e\u0073\u0073\u0069\u006e\u0067\u0044\u0072\u0061w\u0069\u006e\u0067","\u0077\u0070\u0063":"\u0068\u0074t\u0070\u003a\u002f\u002f\u0073\u0063\u0068\u0065\u006d\u0061\u0073\u002e\u006d\u0069\u0063\u0072\u006f\u0073\u006ff\u0074\u002e\u0063\u006f\u006d\u002fo\u0066\u0066\u0069\u0063\u0065\u002f\u0077\u006f\u0072\u0064\u002f\u0032\u0030\u00310\u002f\u0077o\u0072\u0064\u0070\u0072o\u0063\u0065\u0073\u0073\u0069n\u0067\u0043\u0061\u006e\u0076\u0061\u0073","\u0077\u0070\u0067":"\u0068\u0074\u0074\u0070\u003a/\u002f\u0073\u0063\u0068\u0065m\u0061s\u002e\u006d\u0069\u0063\u0072\u006f\u0073\u006f\u0066\u0074\u002e\u0063\u006f\u006d\u002f\u006f\u0066\u0066\u0069c\u0065\u002f\u0077\u006f\u0072\u0064\u002f\u0032\u0030\u0031\u0030\u002f\u0077\u006f\u0072\u0064\u0070\u0072\u006f\u0063\u0065\u0073\u0073\u0069n\u0067\u0047\u0072\u006f\u0075\u0070","\u0077\u0070\u0069":"\u0068t\u0074\u0070\u003a\u002f\u002f\u0073\u0063he\u006d\u0061\u0073\u002e\u006d\u0069\u0063\u0072\u006f\u0073\u006f\u0066\u0074\u002ec\u006f\u006d/\u006f\u0066\u0066i\u0063\u0065\u002f\u0077\u006f\u0072\u0064\u002f\u0032\u0030\u0031\u0030\u002f\u0077\u006f\u0072d\u0070\u0072oc\u0065\u0073\u0073i\u006e\u0067\u0049\u006e\u006b","\u0077\u0070\u0073":"\u0068\u0074\u0074\u0070\u003a/\u002f\u0073\u0063\u0068\u0065m\u0061s\u002e\u006d\u0069\u0063\u0072\u006f\u0073\u006f\u0066\u0074\u002e\u0063\u006f\u006d\u002f\u006f\u0066\u0066\u0069c\u0065\u002f\u0077\u006f\u0072\u0064\u002f\u0032\u0030\u0031\u0030\u002f\u0077\u006f\u0072\u0064\u0070\u0072\u006f\u0063\u0065\u0073\u0073\u0069n\u0067\u0053\u0068\u0061\u0070\u0065","\u0078\u0073\u0069":"\u0068\u0074\u0074\u0070\u003a/\u002f\u0077\u0077\u0077\u002e\u0077\u0033\u002e\u006f\u0072\u0067\u002f\u00320\u0030\u0031\u002f\u0058\u004d\u004c\u0053\u0063\u0068\u0065\u006d\u0061\u002d\u0069\u006e\u0073\u0074\u0061\u006e\u0063\u0065","\u0078\u0031\u0035a\u0063":"ht\u0074\u0070:\u002f\u002f\u0073\u0063\u0068\u0065\u006d\u0061\u0073.\u006d\u0069\u0063\u0072\u006f\u0073\u006f\u0066\u0074\u002e\u0063\u006f\u006d\u002f\u006f\u0066\u0066\u0069\u0063\u0065\u002f\u0073\u0070\u0072\u0065\u0061\u0064\u0073h\u0065e\u0074\u006d\u006c\u002f\u0032\u0030\u0031\u0030/\u00311\u002f\u0061c","\u0077\u0031\u0036s\u0065":"\u0068\u0074\u0074\u0070\u003a\u002f\u002f\u0073\u0063\u0068\u0065\u006d\u0061\u0073\u002e\u006d\u0069\u0063\u0072\u006fs\u006f\u0066\u0074\u002e\u0063\u006f\u006d\u002f\u006ff\u0066\u0069\u0063\u0065\u002f\u0077\u006f\u0072\u0064\u002f\u0032\u0030\u00315\u002f\u0077\u006f\u0072\u0064\u006dl\u002f\u0073\u0079m\u0065\u0078","\u0077\u0031\u0036\u0063\u0069\u0064":"\u0068\u0074\u0074\u0070\u003a\u002f/\u0073\u0063\u0068e\u006d\u0061\u0073.\u006d\u0069\u0063\u0072\u006f\u0073\u006f\u0066\u0074\u002ec\u006f\u006d\u002f\u006f\u0066fi\u0063\u0065\u002f\u0077\u006f\u0072\u0064\u002f\u0032\u0030\u0031\u0036\u002f\u0077\u006f\u0072\u0064\u006d\u006c\u002f\u0063\u0069\u0064","\u0077\u0031\u0036":"\u0068\u0074t\u0070\u003a\u002f\u002f\u0073c\u0068\u0065\u006d\u0061\u0073.\u006d\u0069\u0063\u0072\u006f\u0073\u006f\u0066\u0074\u002e\u0063\u006f\u006d\u002f\u006f\u0066\u0066\u0069\u0063\u0065\u002f\u0077\u006f\u0072\u0064\u002f\u0032\u0030\u0031\u0038\u002f\u0077\u006f\u0072\u0064\u006d\u006c","\u0077\u0031\u0036\u0063\u0065\u0078":"\u0068\u0074\u0074\u0070\u003a\u002f/\u0073\u0063\u0068e\u006d\u0061\u0073.\u006d\u0069\u0063\u0072\u006f\u0073\u006f\u0066\u0074\u002ec\u006f\u006d\u002f\u006f\u0066fi\u0063\u0065\u002f\u0077\u006f\u0072\u0064\u002f\u0032\u0030\u0031\u0038\u002f\u0077\u006f\u0072\u0064\u006d\u006c\u002f\u0063\u0065\u0078","\u0078\u006d\u006c":"\u0068\u0074tp\u003a\u002f\u002fw\u0077\u0077\u002e\u00773.o\u0072g/\u0058\u004d\u004c\u002f\u0031\u0039\u00398/\u006e\u0061\u006d\u0065\u0073\u0070\u0061c\u0065"};
func _ffc (_caa *any ){for _ ,_cf :=range _caa .Nodes {_ffc (_cf );};};
// MarshalXML implements the xml.Marshaler interface.
func (_dae *any )MarshalXML (e *_ga .Encoder ,start _ga .StartElement )error {start .Name =_dae .XMLName ;start .Attr =_dae .Attrs ;if _ge :=e .EncodeToken (start );_ge !=nil {return _ge ;};if len (_dae .Nodes )> 0{for _ ,_eda :=range _dae .Nodes {if _bfb :=e .Encode (_eda );
_bfb !=nil {return _bfb ;};};};if len (_dae .Data )> 0{if _dde :=e .EncodeToken (_ga .CharData (_dae .Data ));_dde !=nil {return _dde ;};};return e .EncodeToken (start .End ());};