From f1f320ec9499750a0c756447b500bbb3000fdd57 Mon Sep 17 00:00:00 2001 From: AnastasiaShemyakinskaya Date: Tue, 27 Feb 2024 18:42:46 +0100 Subject: [PATCH 01/78] GO-2787: not duplicate relations Signed-off-by: AnastasiaShemyakinskaya --- .../common/objectcreator/objectcreator.go | 8 +-- .../import/common/objectid/derivedobject.go | 2 +- .../import/common/objectid/existingobject.go | 50 +++++++++++++++++-- 3 files changed, 53 insertions(+), 7 deletions(-) diff --git a/core/block/import/common/objectcreator/objectcreator.go b/core/block/import/common/objectcreator/objectcreator.go index 3b0b96e68..093d936ac 100644 --- a/core/block/import/common/objectcreator/objectcreator.go +++ b/core/block/import/common/objectcreator/objectcreator.go @@ -39,7 +39,7 @@ import ( var log = logging.Logger("import") -// Service incapsulate logic with creation of given smartblocks +// Service encapsulate logic with creation of given smartblocks type Service interface { //nolint:lll Create(dataObject *DataObject, sn *common.Snapshot) (*types.Struct, string, error) @@ -84,7 +84,6 @@ func (oc *ObjectCreator) Create(dataObject *DataObject, sn *common.Snapshot) (*t origin := dataObject.origin spaceID := dataObject.spaceID - var err error newID := oldIDtoNew[sn.Id] if sn.SbType == coresb.SmartBlockTypeFile { @@ -97,7 +96,10 @@ func (oc *ObjectCreator) Create(dataObject *DataObject, sn *common.Snapshot) (*t st := state.NewDocFromSnapshot(newID, sn.Snapshot, state.WithUniqueKeyMigration(sn.SbType)).(*state.State) st.SetLocalDetail(bundle.RelationKeyLastModifiedDate.String(), pbtypes.Int64(pbtypes.GetInt64(snapshot.Details, bundle.RelationKeyLastModifiedDate.String()))) - var filesToDelete []string + var ( + filesToDelete []string + err error + ) defer func() { // delete file in ipfs if there is error after creation oc.onFinish(err, st, filesToDelete) diff --git a/core/block/import/common/objectid/derivedobject.go b/core/block/import/common/objectid/derivedobject.go index 9aebc4da9..3f8379a2b 100644 --- a/core/block/import/common/objectid/derivedobject.go +++ b/core/block/import/common/objectid/derivedobject.go @@ -26,7 +26,7 @@ func newDerivedObject(existingObject *existingObject, spaceService space.Service } func (r *derivedObject) GetIDAndPayload(ctx context.Context, spaceID string, sn *common.Snapshot, _ time.Time, getExisting bool, _ objectorigin.ObjectOrigin) (string, treestorage.TreeStorageCreatePayload, error) { - id, payload, err := r.existingObject.GetIDAndPayload(ctx, spaceID, sn, getExisting) + id, payload, err := r.existingObject.GetIDAndPayload(ctx, spaceID, sn, true) if err != nil { return "", treestorage.TreeStorageCreatePayload{}, err } diff --git a/core/block/import/common/objectid/existingobject.go b/core/block/import/common/objectid/existingobject.go index f7867c648..9b6c89d0e 100644 --- a/core/block/import/common/objectid/existingobject.go +++ b/core/block/import/common/objectid/existingobject.go @@ -8,6 +8,7 @@ import ( "github.com/anyproto/anytype-heart/core/block/import/common" "github.com/anyproto/anytype-heart/pkg/lib/bundle" + sb "github.com/anyproto/anytype-heart/pkg/lib/core/smartblock" "github.com/anyproto/anytype-heart/pkg/lib/database" "github.com/anyproto/anytype-heart/pkg/lib/localstore/objectstore" "github.com/anyproto/anytype-heart/pkg/lib/pb/model" @@ -36,8 +37,13 @@ func (e *existingObject) GetIDAndPayload(_ context.Context, spaceID string, sn * return id, treestorage.TreeStorageCreatePayload{}, nil } } - relationOption := e.getExistingRelationOption(sn) - return relationOption, treestorage.TreeStorageCreatePayload{}, nil + if sn.SbType == sb.SmartBlockTypeRelationOption { + return e.getExistingRelationOption(sn, spaceID), treestorage.TreeStorageCreatePayload{}, nil + } + if sn.SbType == sb.SmartBlockTypeRelation { + return e.getExistingRelation(sn, spaceID), treestorage.TreeStorageCreatePayload{}, nil + } + return "", treestorage.TreeStorageCreatePayload{}, nil } func (e *existingObject) getObjectByOldAnytypeID(spaceID string, sn *common.Snapshot) (string, error) { @@ -106,7 +112,7 @@ func (e *existingObject) getExistingObject(spaceID string, sn *common.Snapshot) return "" } -func (e *existingObject) getExistingRelationOption(snapshot *common.Snapshot) string { +func (e *existingObject) getExistingRelationOption(snapshot *common.Snapshot, spaceID string) string { name := pbtypes.GetString(snapshot.Snapshot.Data.Details, bundle.RelationKeyName.String()) key := pbtypes.GetString(snapshot.Snapshot.Data.Details, bundle.RelationKeyRelationKey.String()) ids, _, err := e.objectStore.QueryObjectIDs(database.Query{ @@ -126,6 +132,44 @@ func (e *existingObject) getExistingRelationOption(snapshot *common.Snapshot) st RelationKey: bundle.RelationKeyType.String(), Value: pbtypes.String(bundle.TypeKeyRelationOption.URL()), }, + { + Condition: model.BlockContentDataviewFilter_Equal, + RelationKey: bundle.RelationKeySpaceId.String(), + Value: pbtypes.String(spaceID), + }, + }, + }) + if err == nil && len(ids) > 0 { + return ids[0] + } + return "" +} + +func (e *existingObject) getExistingRelation(snapshot *common.Snapshot, spaceID string) string { + name := pbtypes.GetString(snapshot.Snapshot.Data.Details, bundle.RelationKeyName.String()) + format := pbtypes.GetFloat64(snapshot.Snapshot.Data.Details, bundle.RelationKeyRelationFormat.String()) + ids, _, err := e.objectStore.QueryObjectIDs(database.Query{ + Filters: []*model.BlockContentDataviewFilter{ + { + Condition: model.BlockContentDataviewFilter_Equal, + RelationKey: bundle.RelationKeyName.String(), + Value: pbtypes.String(name), + }, + { + Condition: model.BlockContentDataviewFilter_Equal, + RelationKey: bundle.RelationKeyRelationFormat.String(), + Value: pbtypes.Float64(format), + }, + { + Condition: model.BlockContentDataviewFilter_Equal, + RelationKey: bundle.RelationKeyType.String(), + Value: pbtypes.String(bundle.TypeKeyRelation.URL()), + }, + { + Condition: model.BlockContentDataviewFilter_Equal, + RelationKey: bundle.RelationKeySpaceId.String(), + Value: pbtypes.String(spaceID), + }, }, }) if err == nil && len(ids) > 0 { From 24b6105919312eb77add1d8ae13ac758b9f43bb5 Mon Sep 17 00:00:00 2001 From: mcrakhman Date: Wed, 31 Jul 2024 01:15:16 +0200 Subject: [PATCH 02/78] GO-3690 WIP new sync protocol compatibility --- core/block/object/treesyncer/treesyncer.go | 16 ++++++++++++---- core/syncstatus/spacesyncstatus/spacestatus.go | 11 ----------- .../syncsubscriptions/syncingobjects.go | 10 ---------- go.mod | 2 +- go.sum | 10 ++++++++++ 5 files changed, 23 insertions(+), 26 deletions(-) diff --git a/core/block/object/treesyncer/treesyncer.go b/core/block/object/treesyncer/treesyncer.go index 56c1a2aca..2dbb3987c 100644 --- a/core/block/object/treesyncer/treesyncer.go +++ b/core/block/object/treesyncer/treesyncer.go @@ -152,9 +152,10 @@ func (t *treeSyncer) ShouldSync(peerId string) bool { return t.isSyncing } -func (t *treeSyncer) SyncAll(ctx context.Context, peerId string, existing, missing []string) (err error) { +func (t *treeSyncer) SyncAll(ctx context.Context, p peer.Peer, existing, missing []string) (err error) { t.Lock() defer t.Unlock() + peerId := p.Id() isResponsible := slices.Contains(t.nodeConf.NodeIds(t.spaceId), peerId) t.sendSyncEvents(existing, missing, isResponsible) reqExec, exists := t.requestPools[peerId] @@ -176,7 +177,7 @@ func (t *treeSyncer) SyncAll(ctx context.Context, peerId string, existing, missi for _, id := range existing { idCopy := id err = headExec.tryAdd(idCopy, func() { - t.updateTree(peerId, idCopy) + t.updateTree(p, idCopy) }) if err != nil { log.Error("failed to add to head queue", zap.Error(err)) @@ -219,9 +220,16 @@ func (t *treeSyncer) requestTree(peerId, id string) { } } -func (t *treeSyncer) updateTree(peerId, id string) { +func (t *treeSyncer) updateTree(p peer.Peer, id string) { + peerId := p.Id() log := log.With(zap.String("treeId", id), zap.String("spaceId", t.spaceId)) ctx := peer.CtxWithPeerId(t.mainCtx, peerId) + ver, err := peer.CtxProtoVersion(p.Context()) + if err != nil { + log.Warn("can't get proto version", zap.Error(err)) + return + } + ctx = peer.CtxWithProtoVersion(ctx, ver) tr, err := t.treeManager.GetTree(ctx, t.spaceId, id) if err != nil { log.Warn("can't load existing tree", zap.Error(err)) @@ -232,7 +240,7 @@ func (t *treeSyncer) updateTree(peerId, id string) { log.Warn("not a sync tree") return } - if err = syncTree.SyncWithPeer(ctx, peerId); err != nil { + if err = syncTree.SyncWithPeer(ctx, p); err != nil { log.Warn("synctree.SyncWithPeer error", zap.Error(err)) } else { log.Debug("success synctree.SyncWithPeer") diff --git a/core/syncstatus/spacesyncstatus/spacestatus.go b/core/syncstatus/spacesyncstatus/spacestatus.go index 7d03db2b9..7f0b85d10 100644 --- a/core/syncstatus/spacesyncstatus/spacestatus.go +++ b/core/syncstatus/spacesyncstatus/spacestatus.go @@ -146,7 +146,6 @@ func (s *spaceSyncStatus) sendEventToSession(spaceId, token string) { bytesLeftPercentage: s.getBytesLeftPercentage(spaceId), connectionStatus: s.nodeStatus.GetNodeStatus(spaceId), compatibility: s.nodeConf.NetworkCompatibilityStatus(), - filesSyncingCount: s.getFileSyncingObjectsCount(spaceId), objectsSyncingCount: s.getObjectSyncingObjectsCount(spaceId, s.getMissingIds(spaceId)), } s.eventSender.SendToSession(token, &pb.Event{ @@ -227,15 +226,6 @@ func (s *spaceSyncStatus) getObjectSyncingObjectsCount(spaceId string, missingOb return curSub.SyncingObjectsCount(missingObjects) } -func (s *spaceSyncStatus) getFileSyncingObjectsCount(spaceId string) int { - curSub, err := s.subs.GetSubscription(spaceId) - if err != nil { - log.Errorf("failed to get subscription: %s", err) - return 0 - } - return curSub.FileSyncingObjectsCount() -} - func (s *spaceSyncStatus) getBytesLeftPercentage(spaceId string) float64 { nodeUsage, err := s.nodeUsage.GetNodeUsage(context.Background()) if err != nil { @@ -255,7 +245,6 @@ func (s *spaceSyncStatus) updateSpaceSyncStatus(spaceId string) { bytesLeftPercentage: s.getBytesLeftPercentage(spaceId), connectionStatus: s.nodeStatus.GetNodeStatus(spaceId), compatibility: s.nodeConf.NetworkCompatibilityStatus(), - filesSyncingCount: s.getFileSyncingObjectsCount(spaceId), objectsSyncingCount: s.getObjectSyncingObjectsCount(spaceId, missingObjects), } s.broadcast(&pb.Event{ diff --git a/core/syncstatus/syncsubscriptions/syncingobjects.go b/core/syncstatus/syncsubscriptions/syncingobjects.go index c889de317..467ac8f66 100644 --- a/core/syncstatus/syncsubscriptions/syncingobjects.go +++ b/core/syncstatus/syncsubscriptions/syncingobjects.go @@ -38,16 +38,6 @@ func (s *syncingObjects) Run() error { Condition: model.BlockContentDataviewFilter_Equal, Value: pbtypes.Int64(int64(domain.SpaceSyncStatusSyncing)), }, - { - RelationKey: bundle.RelationKeyLayout.String(), - Condition: model.BlockContentDataviewFilter_NotIn, - Value: pbtypes.IntList( - int(model.ObjectType_file), - int(model.ObjectType_image), - int(model.ObjectType_video), - int(model.ObjectType_audio), - ), - }, { RelationKey: bundle.RelationKeySpaceId.String(), Condition: model.BlockContentDataviewFilter_Equal, diff --git a/go.mod b/go.mod index 44adb3c83..fe3f28986 100644 --- a/go.mod +++ b/go.mod @@ -7,7 +7,7 @@ require ( github.com/PuerkitoBio/goquery v1.9.2 github.com/VividCortex/ewma v1.2.0 github.com/adrium/goheif v0.0.0-20230113233934-ca402e77a786 - github.com/anyproto/any-sync v0.4.22 + github.com/anyproto/any-sync v0.4.23-alpha.2 github.com/anyproto/go-naturaldate/v2 v2.0.2-0.20230524105841-9829cfd13438 github.com/anyproto/tantivy-go/go v0.0.5 github.com/araddon/dateparse v0.0.0-20210429162001-6b43995a97de diff --git a/go.sum b/go.sum index 86f635ceb..e2e1648a7 100644 --- a/go.sum +++ b/go.sum @@ -83,8 +83,18 @@ github.com/andybalholm/cascadia v1.2.0/go.mod h1:YCyR8vOZT9aZ1CHEd8ap0gMVm2aFgxB github.com/andybalholm/cascadia v1.3.1/go.mod h1:R4bJ1UQfqADjvDa4P6HZHLh/3OxWWEqc0Sk8XGwHqvA= github.com/andybalholm/cascadia v1.3.2 h1:3Xi6Dw5lHF15JtdcmAHD3i1+T8plmv7BQ/nsViSLyss= github.com/andybalholm/cascadia v1.3.2/go.mod h1:7gtRlve5FxPPgIgX36uWBX58OdBsSS6lUvCFb+h7KvU= +github.com/anyproto/any-sync v0.4.22-0.20240702104645-4024cfacd12e h1:i++yQH9+CCtdiodLgdjldjoqgGuKnGA4jHWiMBRg/GE= +github.com/anyproto/any-sync v0.4.22-0.20240702104645-4024cfacd12e/go.mod h1:qHIG2zMvGIthEb2FmcjQN5YZZwV8kPHv7/T0ib7YSDg= github.com/anyproto/any-sync v0.4.22 h1:f9iAbCv/clTzYtzOzkX1IOXahVM/Art1WkUtIgnwl8U= github.com/anyproto/any-sync v0.4.22/go.mod h1:qHIG2zMvGIthEb2FmcjQN5YZZwV8kPHv7/T0ib7YSDg= +github.com/anyproto/any-sync v0.4.23-alpha.1 h1:rDxNGKTFQbP1h6WqtGvW9ZstL3XueAr8Z+W0t3eRKXI= +github.com/anyproto/any-sync v0.4.23-alpha.1/go.mod h1:qHIG2zMvGIthEb2FmcjQN5YZZwV8kPHv7/T0ib7YSDg= +github.com/anyproto/any-sync v0.4.23-alpha.1.0.20240730190642-0822e089216c h1:2ygak8tmsa0nd2R4HfNbAdsjzldNFuRdCUFUSdv+N2M= +github.com/anyproto/any-sync v0.4.23-alpha.1.0.20240730190642-0822e089216c/go.mod h1:qHIG2zMvGIthEb2FmcjQN5YZZwV8kPHv7/T0ib7YSDg= +github.com/anyproto/any-sync v0.4.23-alpha.1.0.20240730212210-326371c7b5a3 h1:FCm54o4XiIoOUnRH8pFZCHca1rxNXLdhgDZvLG7NT7o= +github.com/anyproto/any-sync v0.4.23-alpha.1.0.20240730212210-326371c7b5a3/go.mod h1:qHIG2zMvGIthEb2FmcjQN5YZZwV8kPHv7/T0ib7YSDg= +github.com/anyproto/any-sync v0.4.23-alpha.2 h1:0q/DxfHi2NTIDZDqfKT1JIgRokhc2y3EIubwNtw+RFE= +github.com/anyproto/any-sync v0.4.23-alpha.2/go.mod h1:qHIG2zMvGIthEb2FmcjQN5YZZwV8kPHv7/T0ib7YSDg= github.com/anyproto/badger/v4 v4.2.1-0.20240110160636-80743fa3d580 h1:Ba80IlCCxkZ9H1GF+7vFu/TSpPvbpDCxXJ5ogc4euYc= github.com/anyproto/badger/v4 v4.2.1-0.20240110160636-80743fa3d580/go.mod h1:T/uWAYxrXdaXw64ihI++9RMbKTCpKd/yE9+saARew7k= github.com/anyproto/go-chash v0.1.0 h1:I9meTPjXFRfXZHRJzjOHC/XF7Q5vzysKkiT/grsogXY= From 13638668ef50af7992c879ba2dfa3f1f644304fc Mon Sep 17 00:00:00 2001 From: mcrakhman Date: Sat, 3 Aug 2024 11:23:30 +0200 Subject: [PATCH 03/78] GO-3690 Filter peers with partially compatible proto version --- space/spacecore/peermanager/manager.go | 31 ++++++++++++++++++++++++-- 1 file changed, 29 insertions(+), 2 deletions(-) diff --git a/space/spacecore/peermanager/manager.go b/space/spacecore/peermanager/manager.go index b68ee8afd..822f4428f 100644 --- a/space/spacecore/peermanager/manager.go +++ b/space/spacecore/peermanager/manager.go @@ -9,6 +9,9 @@ import ( "github.com/anyproto/any-sync/app" "github.com/anyproto/any-sync/app/logger" + "github.com/anyproto/any-sync/net/secureservice" + "github.com/samber/lo" + //nolint:misspell "github.com/anyproto/any-sync/commonspace/peermanager" "github.com/anyproto/any-sync/commonspace/spacesyncproto" @@ -101,7 +104,12 @@ func (n *clientPeerManager) SendPeer(ctx context.Context, peerId string, msg *sp // because the stream will be opened with this context ctx = logger.CtxWithFields(context.Background(), logger.CtxGetFields(ctx)...) return n.p.streamPool.Send(ctx, msg, func(ctx context.Context) (peers []peer.Peer, err error) { - return n.getExactPeer(ctx, peerId) + peers, err = n.getExactPeer(ctx, peerId) + if err != nil { + return nil, err + } + peers = filterPeers(peers) + return }) } @@ -110,7 +118,12 @@ func (n *clientPeerManager) Broadcast(ctx context.Context, msg *spacesyncproto.O // because the stream can be opened with this context ctx = logger.CtxWithFields(context.Background(), logger.CtxGetFields(ctx)...) return n.p.streamPool.Send(ctx, msg, func(ctx context.Context) (peers []peer.Peer, err error) { - return n.getStreamResponsiblePeers(ctx) + peers, err = n.getStreamResponsiblePeers(ctx) + if err != nil { + return nil, err + } + peers = filterPeers(peers) + return }) } @@ -261,3 +274,17 @@ func (n *clientPeerManager) Close(ctx context.Context) (err error) { n.peerToPeerStatus.UnregisterSpace(n.spaceId) return } + +func filterPeers(peers []peer.Peer) (filteredPeers []peer.Peer) { + return lo.Filter(peers, func(p peer.Peer, idx int) bool { + protoVer, err := peer.CtxProtoVersion(p.Context()) + if err != nil { + log.Warn("failed to get proto version", zap.Error(err)) + return false + } + if protoVer > secureservice.ProtoVersion { + return false + } + return true + }) +} From 036bd1c4b6e83cb339042d14de261d81107c336d Mon Sep 17 00:00:00 2001 From: mcrakhman Date: Mon, 5 Aug 2024 20:23:02 +0200 Subject: [PATCH 04/78] GO-3690 Fix treesyncer tests --- core/block/object/treesyncer/treesyncer.go | 6 ----- .../object/treesyncer/treesyncer_test.go | 24 ++++++++++--------- 2 files changed, 13 insertions(+), 17 deletions(-) diff --git a/core/block/object/treesyncer/treesyncer.go b/core/block/object/treesyncer/treesyncer.go index 2dbb3987c..6b09d027b 100644 --- a/core/block/object/treesyncer/treesyncer.go +++ b/core/block/object/treesyncer/treesyncer.go @@ -224,12 +224,6 @@ func (t *treeSyncer) updateTree(p peer.Peer, id string) { peerId := p.Id() log := log.With(zap.String("treeId", id), zap.String("spaceId", t.spaceId)) ctx := peer.CtxWithPeerId(t.mainCtx, peerId) - ver, err := peer.CtxProtoVersion(p.Context()) - if err != nil { - log.Warn("can't get proto version", zap.Error(err)) - return - } - ctx = peer.CtxWithProtoVersion(ctx, ver) tr, err := t.treeManager.GetTree(ctx, t.spaceId, id) if err != nil { log.Warn("can't load existing tree", zap.Error(err)) diff --git a/core/block/object/treesyncer/treesyncer_test.go b/core/block/object/treesyncer/treesyncer_test.go index 09ed6a032..079118db5 100644 --- a/core/block/object/treesyncer/treesyncer_test.go +++ b/core/block/object/treesyncer/treesyncer_test.go @@ -11,6 +11,7 @@ import ( "github.com/anyproto/any-sync/commonspace/object/tree/objecttree/mock_objecttree" "github.com/anyproto/any-sync/commonspace/object/tree/synctree/mock_synctree" "github.com/anyproto/any-sync/commonspace/object/treemanager/mock_treemanager" + "github.com/anyproto/any-sync/net/rpc/rpctest" "github.com/anyproto/any-sync/nodeconf/mock_nodeconf" "github.com/stretchr/testify/require" "go.uber.org/mock/gomock" @@ -66,16 +67,17 @@ func TestTreeSyncer(t *testing.T) { peerId := "peerId" existingId := "existing" missingId := "missing" + pr := rpctest.MockPeer{} t.Run("delayed sync", func(t *testing.T) { ctx := context.Background() fx := newFixture(t, spaceId) fx.treeManager.EXPECT().GetTree(gomock.Any(), spaceId, existingId).Return(fx.existingMock, nil) - fx.existingMock.EXPECT().SyncWithPeer(gomock.Any(), peerId).Return(nil) + fx.existingMock.EXPECT().SyncWithPeer(gomock.Any(), pr).Return(nil) fx.treeManager.EXPECT().GetTree(gomock.Any(), spaceId, missingId).Return(fx.missingMock, nil) fx.nodeConf.EXPECT().NodeIds(spaceId).Return([]string{}) fx.syncStatus.EXPECT().RemoveAllExcept(peerId, []string{existingId}).Return() - err := fx.SyncAll(context.Background(), peerId, []string{existingId}, []string{missingId}) + err := fx.SyncAll(context.Background(), pr, []string{existingId}, []string{missingId}) require.NoError(t, err) require.NotNil(t, fx.requestPools[peerId]) require.NotNil(t, fx.headPools[peerId]) @@ -89,12 +91,12 @@ func TestTreeSyncer(t *testing.T) { ctx := context.Background() fx := newFixture(t, spaceId) fx.treeManager.EXPECT().GetTree(gomock.Any(), spaceId, existingId).Return(fx.existingMock, nil) - fx.existingMock.EXPECT().SyncWithPeer(gomock.Any(), peerId).Return(nil) + fx.existingMock.EXPECT().SyncWithPeer(gomock.Any(), pr).Return(nil) fx.treeManager.EXPECT().GetTree(gomock.Any(), spaceId, missingId).Return(fx.missingMock, nil) fx.nodeConf.EXPECT().NodeIds(spaceId).Return([]string{peerId}) fx.syncDetailsUpdater.EXPECT().UpdateSpaceDetails([]string{existingId}, []string{missingId}, spaceId) fx.syncStatus.EXPECT().RemoveAllExcept(peerId, []string{existingId}).Return() - err := fx.SyncAll(context.Background(), peerId, []string{existingId}, []string{missingId}) + err := fx.SyncAll(context.Background(), pr, []string{existingId}, []string{missingId}) require.NoError(t, err) require.NotNil(t, fx.requestPools[peerId]) require.NotNil(t, fx.headPools[peerId]) @@ -108,13 +110,13 @@ func TestTreeSyncer(t *testing.T) { ctx := context.Background() fx := newFixture(t, spaceId) fx.treeManager.EXPECT().GetTree(gomock.Any(), spaceId, existingId).Return(fx.existingMock, nil) - fx.existingMock.EXPECT().SyncWithPeer(gomock.Any(), peerId).Return(nil) + fx.existingMock.EXPECT().SyncWithPeer(gomock.Any(), pr).Return(nil) fx.treeManager.EXPECT().GetTree(gomock.Any(), spaceId, missingId).Return(fx.missingMock, nil) fx.nodeConf.EXPECT().NodeIds(spaceId).Return([]string{}) fx.syncStatus.EXPECT().RemoveAllExcept(peerId, []string{existingId}).Return() fx.StartSync() - err := fx.SyncAll(context.Background(), peerId, []string{existingId}, []string{missingId}) + err := fx.SyncAll(context.Background(), pr, []string{existingId}, []string{missingId}) require.NoError(t, err) require.NotNil(t, fx.requestPools[peerId]) require.NotNil(t, fx.headPools[peerId]) @@ -127,13 +129,13 @@ func TestTreeSyncer(t *testing.T) { ctx := context.Background() fx := newFixture(t, spaceId) fx.treeManager.EXPECT().GetTree(gomock.Any(), spaceId, existingId).Return(fx.existingMock, nil) - fx.existingMock.EXPECT().SyncWithPeer(gomock.Any(), peerId).Return(nil) + fx.existingMock.EXPECT().SyncWithPeer(gomock.Any(), pr).Return(nil) fx.treeManager.EXPECT().GetTree(gomock.Any(), spaceId, missingId).Return(fx.missingMock, nil) fx.nodeConf.EXPECT().NodeIds(spaceId).Return([]string{}) fx.syncStatus.EXPECT().RemoveAllExcept(peerId, []string{existingId, existingId}).Return() fx.StartSync() - err := fx.SyncAll(context.Background(), peerId, []string{existingId, existingId}, []string{missingId, missingId, missingId}) + err := fx.SyncAll(context.Background(), pr, []string{existingId, existingId}, []string{missingId, missingId, missingId}) require.NoError(t, err) require.NotNil(t, fx.requestPools[peerId]) require.NotNil(t, fx.headPools[peerId]) @@ -147,7 +149,7 @@ func TestTreeSyncer(t *testing.T) { ch := make(chan struct{}, 2) fx := newFixture(t, spaceId) fx.treeManager.EXPECT().GetTree(gomock.Any(), spaceId, existingId).Return(fx.existingMock, nil) - fx.existingMock.EXPECT().SyncWithPeer(gomock.Any(), peerId).Return(nil) + fx.existingMock.EXPECT().SyncWithPeer(gomock.Any(), pr).Return(nil) fx.treeManager.EXPECT().GetTree(gomock.Any(), spaceId, missingId+"1").DoAndReturn(func(ctx context.Context, spaceId, treeId string) (objecttree.ObjectTree, error) { <-ch return fx.missingMock, nil @@ -160,7 +162,7 @@ func TestTreeSyncer(t *testing.T) { fx.syncStatus.EXPECT().RemoveAllExcept(peerId, []string{existingId}).Return() fx.StartSync() - err := fx.SyncAll(context.Background(), peerId, []string{existingId}, []string{missingId + "1", missingId + "2"}) + err := fx.SyncAll(context.Background(), pr, []string{existingId}, []string{missingId + "1", missingId + "2"}) require.NoError(t, err) require.NotNil(t, fx.requestPools[peerId]) require.NotNil(t, fx.headPools[peerId]) @@ -188,7 +190,7 @@ func TestTreeSyncer(t *testing.T) { fx.syncStatus.EXPECT().RemoveAllExcept(peerId, existing).Return() fx.StartSync() - err := fx.SyncAll(context.Background(), peerId, existing, []string{missingId}) + err := fx.SyncAll(context.Background(), pr, existing, []string{missingId}) require.NoError(t, err) require.NotNil(t, fx.requestPools[peerId]) require.NotNil(t, fx.headPools[peerId]) From 508767046fa2a6c70cb80d7ffaf7cebfa2c3841d Mon Sep 17 00:00:00 2001 From: mcrakhman Date: Mon, 5 Aug 2024 20:41:22 +0200 Subject: [PATCH 05/78] GO-3690 Fix tests --- core/acl/aclservice_test.go | 17 ++++++++------- .../aclobjectmananger_test.go | 17 ++++++++------- space/spacecore/peermanager/manager.go | 6 +++--- space/spacecore/peermanager/manager_test.go | 21 +++++++++++++++++-- 4 files changed, 40 insertions(+), 21 deletions(-) diff --git a/core/acl/aclservice_test.go b/core/acl/aclservice_test.go index 3ee696f33..c04c8ad26 100644 --- a/core/acl/aclservice_test.go +++ b/core/acl/aclservice_test.go @@ -17,6 +17,7 @@ import ( "github.com/anyproto/any-sync/commonspace/spacesyncproto" "github.com/anyproto/any-sync/coordinator/coordinatorclient/mock_coordinatorclient" "github.com/anyproto/any-sync/coordinator/coordinatorproto" + "github.com/anyproto/any-sync/net/peer" "github.com/anyproto/any-sync/nodeconf" "github.com/anyproto/any-sync/util/cidutil" "github.com/anyproto/any-sync/util/crypto" @@ -114,6 +115,14 @@ type mockSyncAcl struct { list.AclList } +func (m mockSyncAcl) HandleMessage(ctx context.Context, senderId string, protoVersion uint32, message *spacesyncproto.ObjectSyncMessage) (err error) { + return +} + +func (m mockSyncAcl) SyncWithPeer(ctx context.Context, p peer.Peer) (err error) { + return +} + func (m mockSyncAcl) Init(a *app.App) (err error) { return nil } @@ -126,10 +135,6 @@ func (m mockSyncAcl) Run(ctx context.Context) (err error) { return nil } -func (m mockSyncAcl) HandleMessage(ctx context.Context, senderId string, message *spacesyncproto.ObjectSyncMessage) (err error) { - return nil -} - func (m mockSyncAcl) HandleRequest(ctx context.Context, senderId string, request *spacesyncproto.ObjectSyncMessage) (response *spacesyncproto.ObjectSyncMessage, err error) { return nil, nil } @@ -137,10 +142,6 @@ func (m mockSyncAcl) HandleRequest(ctx context.Context, senderId string, request func (m mockSyncAcl) SetHeadUpdater(updater headupdater.HeadUpdater) { } -func (m mockSyncAcl) SyncWithPeer(ctx context.Context, peerId string) (err error) { - return nil -} - func (m mockSyncAcl) SetAclUpdater(updater headupdater.AclUpdater) { } diff --git a/space/internal/components/aclobjectmanager/aclobjectmananger_test.go b/space/internal/components/aclobjectmanager/aclobjectmananger_test.go index 55b434f06..bb46f11cf 100644 --- a/space/internal/components/aclobjectmanager/aclobjectmananger_test.go +++ b/space/internal/components/aclobjectmanager/aclobjectmananger_test.go @@ -11,6 +11,7 @@ import ( "github.com/anyproto/any-sync/commonspace/object/acl/syncacl" "github.com/anyproto/any-sync/commonspace/object/acl/syncacl/headupdater" "github.com/anyproto/any-sync/commonspace/spacesyncproto" + "github.com/anyproto/any-sync/net/peer" "github.com/stretchr/testify/mock" "github.com/stretchr/testify/require" "go.uber.org/mock/gomock" @@ -204,6 +205,14 @@ type syncAclStub struct { updater headupdater.AclUpdater } +func (s *syncAclStub) HandleMessage(ctx context.Context, senderId string, protoVersion uint32, message *spacesyncproto.ObjectSyncMessage) (err error) { + return +} + +func (s *syncAclStub) SyncWithPeer(ctx context.Context, p peer.Peer) (err error) { + return +} + func (s *syncAclStub) Init(a *app.App) (err error) { return nil } @@ -216,10 +225,6 @@ func (s *syncAclStub) Run(ctx context.Context) (err error) { return } -func (s *syncAclStub) HandleMessage(ctx context.Context, senderId string, message *spacesyncproto.ObjectSyncMessage) (err error) { - return -} - func (s *syncAclStub) HandleRequest(ctx context.Context, senderId string, request *spacesyncproto.ObjectSyncMessage) (response *spacesyncproto.ObjectSyncMessage, err error) { return } @@ -228,10 +233,6 @@ func (s *syncAclStub) SetHeadUpdater(updater headupdater.HeadUpdater) { return } -func (s *syncAclStub) SyncWithPeer(ctx context.Context, peerId string) (err error) { - return -} - func (s *syncAclStub) SetAclUpdater(updater headupdater.AclUpdater) { s.updater = updater return diff --git a/space/spacecore/peermanager/manager.go b/space/spacecore/peermanager/manager.go index 822f4428f..ea47c533e 100644 --- a/space/spacecore/peermanager/manager.go +++ b/space/spacecore/peermanager/manager.go @@ -108,7 +108,7 @@ func (n *clientPeerManager) SendPeer(ctx context.Context, peerId string, msg *sp if err != nil { return nil, err } - peers = filterPeers(peers) + peers = filterOldPeers(peers) return }) } @@ -122,7 +122,7 @@ func (n *clientPeerManager) Broadcast(ctx context.Context, msg *spacesyncproto.O if err != nil { return nil, err } - peers = filterPeers(peers) + peers = filterOldPeers(peers) return }) } @@ -275,7 +275,7 @@ func (n *clientPeerManager) Close(ctx context.Context) (err error) { return } -func filterPeers(peers []peer.Peer) (filteredPeers []peer.Peer) { +func filterOldPeers(peers []peer.Peer) (filteredPeers []peer.Peer) { return lo.Filter(peers, func(p peer.Peer, idx int) bool { protoVer, err := peer.CtxProtoVersion(p.Context()) if err != nil { diff --git a/space/spacecore/peermanager/manager_test.go b/space/spacecore/peermanager/manager_test.go index d44aa1482..68ac4023c 100644 --- a/space/spacecore/peermanager/manager_test.go +++ b/space/spacecore/peermanager/manager_test.go @@ -11,6 +11,7 @@ import ( "github.com/anyproto/any-sync/app" "github.com/anyproto/any-sync/net/peer" "github.com/anyproto/any-sync/net/pool/mock_pool" + "github.com/anyproto/any-sync/net/secureservice" "github.com/anyproto/any-sync/nodeconf/mock_nodeconf" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" @@ -176,6 +177,22 @@ func Test_getStreamResponsiblePeers(t *testing.T) { }) } +func Test_filterPeers(t *testing.T) { + t.Run("no peers", func(t *testing.T) { + peers := filterOldPeers([]peer.Peer{}) + assert.Len(t, peers, 0) + }) + t.Run("peers with different versions", func(t *testing.T) { + newPeer := newTestPeer("newPeer") + oldPeer := newTestPeer("oldPeer") + oldPeer.ctx = peer.CtxWithProtoVersion(context.Background(), secureservice.ProtoVersion) + newPeer.ctx = peer.CtxWithProtoVersion(context.Background(), secureservice.NewSyncProtoVersion) + peers := filterOldPeers([]peer.Peer{newPeer, oldPeer}) + assert.Len(t, peers, 1) + assert.Equal(t, peers[0].Id(), oldPeer.Id()) + }) +} + func newTestPeer(id string) *testPeer { return &testPeer{ id: id, @@ -186,6 +203,7 @@ func newTestPeer(id string) *testPeer { type testPeer struct { id string closed chan struct{} + ctx context.Context } func (t *testPeer) SetTTL(ttl time.Duration) { @@ -203,8 +221,7 @@ func (t *testPeer) AcquireDrpcConn(ctx context.Context) (drpc.Conn, error) { func (t *testPeer) ReleaseDrpcConn(conn drpc.Conn) {} func (t *testPeer) Context() context.Context { - // TODO implement me - panic("implement me") + return t.ctx } func (t *testPeer) Accept() (conn net.Conn, err error) { From f47f005116f26f664b4ede24d1ee817243d8625c Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 7 Aug 2024 04:41:38 +0000 Subject: [PATCH 06/78] Bump golang.org/x/text from 0.16.0 to 0.17.0 Bumps [golang.org/x/text](https://github.com/golang/text) from 0.16.0 to 0.17.0. - [Release notes](https://github.com/golang/text/releases) - [Commits](https://github.com/golang/text/compare/v0.16.0...v0.17.0) --- updated-dependencies: - dependency-name: golang.org/x/text dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- go.mod | 4 ++-- go.sum | 16 ++++------------ 2 files changed, 6 insertions(+), 14 deletions(-) diff --git a/go.mod b/go.mod index d735e9f7e..8f5eb75b2 100644 --- a/go.mod +++ b/go.mod @@ -96,7 +96,7 @@ require ( golang.org/x/mobile v0.0.0-20240520174638-fa72addaaa1b golang.org/x/net v0.27.0 golang.org/x/oauth2 v0.21.0 - golang.org/x/text v0.16.0 + golang.org/x/text v0.17.0 google.golang.org/grpc v1.65.0 gopkg.in/Graylog2/go-gelf.v2 v2.0.0-20180125164251-1832d8546a9f gopkg.in/yaml.v3 v3.0.1 @@ -257,7 +257,7 @@ require ( go.opentelemetry.io/otel/trace v1.14.0 // indirect golang.org/x/crypto v0.25.0 // indirect golang.org/x/mod v0.19.0 // indirect - golang.org/x/sync v0.7.0 // indirect + golang.org/x/sync v0.8.0 // indirect golang.org/x/sys v0.22.0 // indirect golang.org/x/term v0.22.0 // indirect golang.org/x/time v0.5.0 // indirect diff --git a/go.sum b/go.sum index 80300ac27..b5c17b10c 100644 --- a/go.sum +++ b/go.sum @@ -83,8 +83,6 @@ github.com/andybalholm/cascadia v1.2.0/go.mod h1:YCyR8vOZT9aZ1CHEd8ap0gMVm2aFgxB github.com/andybalholm/cascadia v1.3.1/go.mod h1:R4bJ1UQfqADjvDa4P6HZHLh/3OxWWEqc0Sk8XGwHqvA= github.com/andybalholm/cascadia v1.3.2 h1:3Xi6Dw5lHF15JtdcmAHD3i1+T8plmv7BQ/nsViSLyss= github.com/andybalholm/cascadia v1.3.2/go.mod h1:7gtRlve5FxPPgIgX36uWBX58OdBsSS6lUvCFb+h7KvU= -github.com/anyproto/any-store v0.0.0-20240719163025-8a3657f8e01c h1:rRlF97BLA+4/jV82lMHEQGbNS4qgsed+HuoAJtYaLUM= -github.com/anyproto/any-store v0.0.0-20240719163025-8a3657f8e01c/go.mod h1:JV7dJ8+xF1VaCQgFQsD8SZSNlxxTGFbDiF8llkB2ILc= github.com/anyproto/any-store v0.0.1 h1:RiZi3cHVSpIebcNeHYOUaDShH7E9Ahto33zdnqCaUHM= github.com/anyproto/any-store v0.0.1/go.mod h1:JV7dJ8+xF1VaCQgFQsD8SZSNlxxTGFbDiF8llkB2ILc= github.com/anyproto/any-sync v0.4.22 h1:f9iAbCv/clTzYtzOzkX1IOXahVM/Art1WkUtIgnwl8U= @@ -1527,8 +1525,6 @@ golang.org/x/exp v0.0.0-20200119233911-0405dc783f0a/go.mod h1:2RIsYlXP63K8oxa1u0 golang.org/x/exp v0.0.0-20200207192155-f17229e696bd/go.mod h1:J/WKrq2StrnmMY6+EHIKF9dgMWnmCNThgcyBT1FY9mM= golang.org/x/exp v0.0.0-20200224162631-6cc2880d07d6/go.mod h1:3jZMyOhIsHpP37uCMkUooju7aAi5cS1Q23tOzKc+0MU= golang.org/x/exp v0.0.0-20200331195152-e8c3332aa8e5/go.mod h1:4M0jN8W1tt0AVLNr8HDosyJCDCDuyL9N9+3m7wDWgKw= -golang.org/x/exp v0.0.0-20240506185415-9bf2ced13842 h1:vr/HnozRka3pE4EsMEg1lgkXJkTFJCVUX+S/ZT6wYzM= -golang.org/x/exp v0.0.0-20240506185415-9bf2ced13842/go.mod h1:XtvwrStGgqGPLc4cjQfWqZHG1YFdYs6swckp8vpsjnc= golang.org/x/exp v0.0.0-20240719175910-8a7402abbf56 h1:2dVuKD2vS7b0QIHQbpyTISPd0LeHDbnYEryqj5Q1ug8= golang.org/x/exp v0.0.0-20240719175910-8a7402abbf56/go.mod h1:M4RDyNAINzryxdtnbRXRL/OHtkFuWGRjvuhBJpk2IlY= golang.org/x/image v0.0.0-20180708004352-c73c2afc3b81/go.mod h1:ux5Hcp/YLpHSI86hEcLt0YII63i6oz57MZXIpbrjZUs= @@ -1563,8 +1559,6 @@ golang.org/x/mod v0.4.1/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= golang.org/x/mod v0.8.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= -golang.org/x/mod v0.17.0 h1:zY54UmvipHiNd+pm+m0x9KhZ9hl1/7QNMyxXbc6ICqA= -golang.org/x/mod v0.17.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= golang.org/x/mod v0.19.0 h1:fEdghXQSo20giMthA7cd28ZC+jts4amQ3YMXiP5oMQ8= golang.org/x/mod v0.19.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= golang.org/x/net v0.0.0-20180218175443-cbe0f9307d01/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= @@ -1656,8 +1650,8 @@ golang.org/x/sync v0.0.0-20201207232520-09787c993a3a/go.mod h1:RxMgew5VJxzue5/jJ golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.7.0 h1:YsImfSBoP9QPYL0xyKJPq0gcaJdG3rInoqxTWbfQu9M= -golang.org/x/sync v0.7.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= +golang.org/x/sync v0.8.0 h1:3NFvSEYkUoMifnESzZl15y791HH1qU2xm6eCJU5ZPXQ= +golang.org/x/sync v0.8.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= golang.org/x/sys v0.0.0-20180823144017-11551d06cbcc/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= @@ -1773,8 +1767,8 @@ golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= golang.org/x/text v0.9.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= golang.org/x/text v0.12.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= -golang.org/x/text v0.16.0 h1:a94ExnEXNtEwYLGJSIUxnWoxoRz/ZcCsV63ROupILh4= -golang.org/x/text v0.16.0/go.mod h1:GhwF1Be+LQoKShO3cGOHzqOgRrGaYc9AvblQOmPVHnI= +golang.org/x/text v0.17.0 h1:XtiM5bkSOt+ewxlOE/aE/AKEHibwj/6gvWMl9Rsh0Qc= +golang.org/x/text v0.17.0/go.mod h1:BuEKDfySbSR4drPmRPG/7iBdf8hvFMuRexcpahXilzY= golang.org/x/time v0.0.0-20180412165947-fbb02b2291d2/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= @@ -1843,8 +1837,6 @@ golang.org/x/tools v0.1.0/go.mod h1:xkSsbof2nBLbhDlRMhhhyNLN/zl3eTqcnHD5viDpcZ0= golang.org/x/tools v0.1.5/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= golang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU= -golang.org/x/tools v0.21.1-0.20240508182429-e35e4ccd0d2d h1:vU5i/LfpvrRCpgM/VPfJLg5KjxD3E+hfT1SH+d9zLwg= -golang.org/x/tools v0.21.1-0.20240508182429-e35e4ccd0d2d/go.mod h1:aiJjzUbINMkxbQROHiO6hDPo2LHcIPhhQsa9DLh0yGk= golang.org/x/tools v0.23.0 h1:SGsXPZ+2l4JsgaCKkx+FQ9YZ5XEtA1GZYuoDjenLjvg= golang.org/x/tools v0.23.0/go.mod h1:pnu6ufv6vQkll6szChhK3C3L/ruaIv5eBeztNG8wtsI= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= From 49281ac17df6ccfb329af4fa97a5a7f04dce950a Mon Sep 17 00:00:00 2001 From: mcrakhman Date: Wed, 7 Aug 2024 14:48:42 +0200 Subject: [PATCH 07/78] GO-3690 Fix review comments and update any-sync --- go.mod | 2 +- go.sum | 4 ++-- space/spacecore/peermanager/manager.go | 6 +++--- space/spacecore/peermanager/manager_test.go | 4 ++-- 4 files changed, 8 insertions(+), 8 deletions(-) diff --git a/go.mod b/go.mod index de3ef9675..b7d550583 100644 --- a/go.mod +++ b/go.mod @@ -8,7 +8,7 @@ require ( github.com/VividCortex/ewma v1.2.0 github.com/adrium/goheif v0.0.0-20230113233934-ca402e77a786 github.com/anyproto/any-store v0.0.1 - github.com/anyproto/any-sync v0.4.23-alpha.2.0.20240805181131-417baabeeebb + github.com/anyproto/any-sync v0.4.23 github.com/anyproto/go-naturaldate/v2 v2.0.2-0.20230524105841-9829cfd13438 github.com/anyproto/tantivy-go/go v0.0.5 github.com/araddon/dateparse v0.0.0-20210429162001-6b43995a97de diff --git a/go.sum b/go.sum index a555eee5b..503128a83 100644 --- a/go.sum +++ b/go.sum @@ -85,8 +85,8 @@ github.com/andybalholm/cascadia v1.3.2 h1:3Xi6Dw5lHF15JtdcmAHD3i1+T8plmv7BQ/nsVi github.com/andybalholm/cascadia v1.3.2/go.mod h1:7gtRlve5FxPPgIgX36uWBX58OdBsSS6lUvCFb+h7KvU= github.com/anyproto/any-store v0.0.1 h1:RiZi3cHVSpIebcNeHYOUaDShH7E9Ahto33zdnqCaUHM= github.com/anyproto/any-store v0.0.1/go.mod h1:JV7dJ8+xF1VaCQgFQsD8SZSNlxxTGFbDiF8llkB2ILc= -github.com/anyproto/any-sync v0.4.23-alpha.2.0.20240805181131-417baabeeebb h1:4lfUGXObjK8Etw5Tjh4SyBKUNHDCCo8gdFiD/HOpGFQ= -github.com/anyproto/any-sync v0.4.23-alpha.2.0.20240805181131-417baabeeebb/go.mod h1:qHIG2zMvGIthEb2FmcjQN5YZZwV8kPHv7/T0ib7YSDg= +github.com/anyproto/any-sync v0.4.23 h1:6LVXhtJxSyekDHYHTbe70FGDfFQWI763tzAJBRgLYI0= +github.com/anyproto/any-sync v0.4.23/go.mod h1:qHIG2zMvGIthEb2FmcjQN5YZZwV8kPHv7/T0ib7YSDg= github.com/anyproto/badger/v4 v4.2.1-0.20240110160636-80743fa3d580 h1:Ba80IlCCxkZ9H1GF+7vFu/TSpPvbpDCxXJ5ogc4euYc= github.com/anyproto/badger/v4 v4.2.1-0.20240110160636-80743fa3d580/go.mod h1:T/uWAYxrXdaXw64ihI++9RMbKTCpKd/yE9+saARew7k= github.com/anyproto/go-chash v0.1.0 h1:I9meTPjXFRfXZHRJzjOHC/XF7Q5vzysKkiT/grsogXY= diff --git a/space/spacecore/peermanager/manager.go b/space/spacecore/peermanager/manager.go index ea47c533e..1fadd8bad 100644 --- a/space/spacecore/peermanager/manager.go +++ b/space/spacecore/peermanager/manager.go @@ -108,7 +108,7 @@ func (n *clientPeerManager) SendPeer(ctx context.Context, peerId string, msg *sp if err != nil { return nil, err } - peers = filterOldPeers(peers) + peers = selectOldPeers(peers) return }) } @@ -122,7 +122,7 @@ func (n *clientPeerManager) Broadcast(ctx context.Context, msg *spacesyncproto.O if err != nil { return nil, err } - peers = filterOldPeers(peers) + peers = selectOldPeers(peers) return }) } @@ -275,7 +275,7 @@ func (n *clientPeerManager) Close(ctx context.Context) (err error) { return } -func filterOldPeers(peers []peer.Peer) (filteredPeers []peer.Peer) { +func selectOldPeers(peers []peer.Peer) (filteredPeers []peer.Peer) { return lo.Filter(peers, func(p peer.Peer, idx int) bool { protoVer, err := peer.CtxProtoVersion(p.Context()) if err != nil { diff --git a/space/spacecore/peermanager/manager_test.go b/space/spacecore/peermanager/manager_test.go index 68ac4023c..edc50af87 100644 --- a/space/spacecore/peermanager/manager_test.go +++ b/space/spacecore/peermanager/manager_test.go @@ -179,7 +179,7 @@ func Test_getStreamResponsiblePeers(t *testing.T) { func Test_filterPeers(t *testing.T) { t.Run("no peers", func(t *testing.T) { - peers := filterOldPeers([]peer.Peer{}) + peers := selectOldPeers([]peer.Peer{}) assert.Len(t, peers, 0) }) t.Run("peers with different versions", func(t *testing.T) { @@ -187,7 +187,7 @@ func Test_filterPeers(t *testing.T) { oldPeer := newTestPeer("oldPeer") oldPeer.ctx = peer.CtxWithProtoVersion(context.Background(), secureservice.ProtoVersion) newPeer.ctx = peer.CtxWithProtoVersion(context.Background(), secureservice.NewSyncProtoVersion) - peers := filterOldPeers([]peer.Peer{newPeer, oldPeer}) + peers := selectOldPeers([]peer.Peer{newPeer, oldPeer}) assert.Len(t, peers, 1) assert.Equal(t, peers[0].Id(), oldPeer.Id()) }) From 008e95c5552d5710f5cb5d84cb0769a21f98e066 Mon Sep 17 00:00:00 2001 From: AnastasiaShemyakinskaya Date: Mon, 12 Aug 2024 10:24:35 +0200 Subject: [PATCH 08/78] GO-2787: fix import of existing relations Signed-off-by: AnastasiaShemyakinskaya --- .../common/objectcreator/objectcreator.go | 9 ++++++ .../import/common/objectid/derivedobject.go | 30 +++++++++++++++++++ 2 files changed, 39 insertions(+) diff --git a/core/block/import/common/objectcreator/objectcreator.go b/core/block/import/common/objectcreator/objectcreator.go index 082c2cd83..8117dd05d 100644 --- a/core/block/import/common/objectcreator/objectcreator.go +++ b/core/block/import/common/objectcreator/objectcreator.go @@ -544,7 +544,16 @@ func (oc *ObjectCreator) updateKeys(st *state.State, oldIDtoNew map[string]strin for key, value := range st.Details().GetFields() { if newKey, ok := oldIDtoNew[key]; ok { st.SetDetail(newKey, value) + relationLinks := st.GetRelationLinks() + var link *model.RelationLink + for _, link = range relationLinks { + if link.Key == key { + break + } + } st.RemoveRelation(key) + link.Key = newKey + st.AddRelationLinks(link) } } diff --git a/core/block/import/common/objectid/derivedobject.go b/core/block/import/common/objectid/derivedobject.go index 58555d5cb..872f76d3e 100644 --- a/core/block/import/common/objectid/derivedobject.go +++ b/core/block/import/common/objectid/derivedobject.go @@ -38,6 +38,10 @@ func (d *derivedObject) GetIDAndPayload(ctx context.Context, spaceID string, sn return "", treestorage.TreeStorageCreatePayload{}, err } if id != "" { + d.internalKey, err = d.getInternalKey(spaceID, id) + if err != nil { + return "", treestorage.TreeStorageCreatePayload{}, err + } return id, payload, nil } rawUniqueKey := pbtypes.GetString(sn.Snapshot.Data.Details, bundle.RelationKeyUniqueKey.String()) @@ -96,3 +100,29 @@ func (d *derivedObject) isDeletedObject(spaceId string, uniqueKey string) bool { }) return err == nil && len(ids) > 0 } + +func (d *derivedObject) getInternalKey(spaceID, objectId string) (string, error) { + ids, err := d.objectStore.Query(database.Query{ + Filters: []*model.BlockContentDataviewFilter{ + { + Condition: model.BlockContentDataviewFilter_Equal, + RelationKey: bundle.RelationKeyId.String(), + Value: pbtypes.String(objectId), + }, + { + Condition: model.BlockContentDataviewFilter_Equal, + RelationKey: bundle.RelationKeySpaceId.String(), + Value: pbtypes.String(spaceID), + }, + }, + }) + if err == nil && len(ids) > 0 { + uniqueKey := pbtypes.GetString(ids[0].Details, bundle.RelationKeyUniqueKey.String()) + key, err := domain.UnmarshalUniqueKey(uniqueKey) + if err != nil { + return "", nil + } + return key.InternalKey(), err + } + return "", nil +} From e4e3d462b7f6bacb316bf4c79e4cd2a31d99ac50 Mon Sep 17 00:00:00 2001 From: AnastasiaShemyakinskaya Date: Mon, 12 Aug 2024 11:30:03 +0200 Subject: [PATCH 09/78] GO-2787: fix tests Signed-off-by: AnastasiaShemyakinskaya --- .../common/objectcreator/objectcreator.go | 31 +++++++++------ .../objectcreator/objectcreator_test.go | 4 ++ .../common/objectid/deriveobject_test.go | 38 +++++++++++++++++++ .../import/common/objectid/existingobject.go | 4 +- 4 files changed, 64 insertions(+), 13 deletions(-) diff --git a/core/block/import/common/objectcreator/objectcreator.go b/core/block/import/common/objectcreator/objectcreator.go index 8117dd05d..9d83b0c90 100644 --- a/core/block/import/common/objectcreator/objectcreator.go +++ b/core/block/import/common/objectcreator/objectcreator.go @@ -543,17 +543,7 @@ func (oc *ObjectCreator) getExistingWidgetsTargetIDs(oldState *state.State) (map func (oc *ObjectCreator) updateKeys(st *state.State, oldIDtoNew map[string]string) { for key, value := range st.Details().GetFields() { if newKey, ok := oldIDtoNew[key]; ok { - st.SetDetail(newKey, value) - relationLinks := st.GetRelationLinks() - var link *model.RelationLink - for _, link = range relationLinks { - if link.Key == key { - break - } - } - st.RemoveRelation(key) - link.Key = newKey - st.AddRelationLinks(link) + oc.updateDetails(st, newKey, value, key) } } @@ -561,3 +551,22 @@ func (oc *ObjectCreator) updateKeys(st *state.State, oldIDtoNew map[string]strin st.SetObjectTypeKey(domain.TypeKey(newKey)) } } + +func (oc *ObjectCreator) updateDetails(st *state.State, newKey string, value *types.Value, key string) { + st.SetDetail(newKey, value) + link := oc.findRelationLinkByKey(st, key) + st.RemoveRelation(key) + link.Key = newKey + st.AddRelationLinks(link) +} + +func (oc *ObjectCreator) findRelationLinkByKey(st *state.State, key string) *model.RelationLink { + relationLinks := st.GetRelationLinks() + var link *model.RelationLink + for _, link = range relationLinks { + if link.Key == key { + break + } + } + return link +} diff --git a/core/block/import/common/objectcreator/objectcreator_test.go b/core/block/import/common/objectcreator/objectcreator_test.go index 6bfb9fc53..d5992cd37 100644 --- a/core/block/import/common/objectcreator/objectcreator_test.go +++ b/core/block/import/common/objectcreator/objectcreator_test.go @@ -95,12 +95,16 @@ func TestObjectCreator_updateKeys(t *testing.T) { doc.SetDetails(&types.Struct{Fields: map[string]*types.Value{ "oldKey": pbtypes.String("test"), }}) + doc.AddRelationLinks(&model.RelationLink{ + Key: "oldKey", + }) // when oc.updateKeys(doc, oldToNew) // then assert.Nil(t, doc.Details().GetFields()["oldKey"]) assert.Equal(t, pbtypes.String("test"), doc.Details().GetFields()["newKey"]) + assert.True(t, doc.HasRelation("newKey")) }) t.Run("updateKeys - update object type key", func(t *testing.T) { // given diff --git a/core/block/import/common/objectid/deriveobject_test.go b/core/block/import/common/objectid/deriveobject_test.go index 3934e2905..2f9a5b28e 100644 --- a/core/block/import/common/objectid/deriveobject_test.go +++ b/core/block/import/common/objectid/deriveobject_test.go @@ -66,4 +66,42 @@ func TestDerivedObject_GetIDAndPayload(t *testing.T) { assert.NotEqual(t, deriveObject.GetInternalKey(sn.SbType), "key") assert.Equal(t, "newId", id) }) + t.Run("existing object", func(t *testing.T) { + // given + sf := objectstore.NewStoreFixture(t) + service := mock_space.NewMockService(t) + deriveObject := newDerivedObject(newExistingObject(sf), service, sf) + sn := &common.Snapshot{ + Id: "oldId", + Snapshot: &pb.ChangeSnapshot{ + Data: &model.SmartBlockSnapshotBase{ + Details: &types.Struct{Fields: map[string]*types.Value{ + bundle.RelationKeyName.String(): pbtypes.String("name"), + bundle.RelationKeyRelationFormat.String(): pbtypes.Int64(int64(model.RelationFormat_number)), + }}, + }, + }, + SbType: coresb.SmartBlockTypeRelation, + } + + uniqueKey, err := domain.NewUniqueKey(coresb.SmartBlockTypeRelation, "oldKey") + assert.Nil(t, err) + sf.AddObjects(t, []objectstore.TestObject{ + { + bundle.RelationKeyUniqueKey: pbtypes.String(uniqueKey.Marshal()), + bundle.RelationKeyId: pbtypes.String("oldId"), + bundle.RelationKeyName: pbtypes.String("name"), + bundle.RelationKeyRelationFormat: pbtypes.Int64(int64(model.RelationFormat_number)), + bundle.RelationKeyLayout: pbtypes.Int64(int64(model.ObjectType_relation)), + bundle.RelationKeySpaceId: pbtypes.String("spaceId"), + }, + }) + + // when + id, _, err := deriveObject.GetIDAndPayload(context.Background(), "spaceId", sn, time.Now(), false, objectorigin.Import(model.Import_Pb)) + + // then + assert.Nil(t, err) + assert.Equal(t, "oldId", id) + }) } diff --git a/core/block/import/common/objectid/existingobject.go b/core/block/import/common/objectid/existingobject.go index 9b6c89d0e..6650ec7ba 100644 --- a/core/block/import/common/objectid/existingobject.go +++ b/core/block/import/common/objectid/existingobject.go @@ -162,8 +162,8 @@ func (e *existingObject) getExistingRelation(snapshot *common.Snapshot, spaceID }, { Condition: model.BlockContentDataviewFilter_Equal, - RelationKey: bundle.RelationKeyType.String(), - Value: pbtypes.String(bundle.TypeKeyRelation.URL()), + RelationKey: bundle.RelationKeyLayout.String(), + Value: pbtypes.Int64(int64(model.ObjectType_relation)), }, { Condition: model.BlockContentDataviewFilter_Equal, From 8f105a27c34c7dcd29d3e3925584f0539cc44e58 Mon Sep 17 00:00:00 2001 From: kirillston Date: Mon, 12 Aug 2024 14:16:12 +0300 Subject: [PATCH 10/78] GO-3849 Do not GC set with source --- core/block/collection/service.go | 2 +- core/block/editor/dataview/dataview.go | 10 ++++++++-- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/core/block/collection/service.go b/core/block/collection/service.go index c1010249a..a20530326 100644 --- a/core/block/collection/service.go +++ b/core/block/collection/service.go @@ -101,7 +101,7 @@ func (s *Service) updateCollection(ctx session.Context, contextID string, modifi s.UpdateStoreSlice(template.CollectionStoreKey, lst) internalflag.Set{}.AddToState(s) return nil - }) + }, smartblock.KeepInternalFlags) } func (s *Service) collectionAddHookOnce(sb smartblock.SmartBlock) { diff --git a/core/block/editor/dataview/dataview.go b/core/block/editor/dataview/dataview.go index f1297ae92..c4281c191 100644 --- a/core/block/editor/dataview/dataview.go +++ b/core/block/editor/dataview/dataview.go @@ -23,6 +23,7 @@ import ( "github.com/anyproto/anytype-heart/pkg/lib/localstore/objectstore" "github.com/anyproto/anytype-heart/pkg/lib/logging" "github.com/anyproto/anytype-heart/pkg/lib/pb/model" + "github.com/anyproto/anytype-heart/util/internalflag" "github.com/anyproto/anytype-heart/util/pbtypes" "github.com/anyproto/anytype-heart/util/slice" ) @@ -84,10 +85,15 @@ func (d *sdataview) SetSource(ctx session.Context, blockId string, source []stri return } + flags := internalflag.NewFromState(s.ParentState()) + // set with source is no longer empty + flags.Remove(model.InternalFlag_editorDeleteEmpty) + flags.AddToState(s) + if len(source) == 0 { s.Unlink(blockId) s.SetLocalDetail(bundle.RelationKeySetOf.String(), pbtypes.StringList(source)) - return d.Apply(s, smartblock.NoRestrictions) + return d.Apply(s, smartblock.NoRestrictions, smartblock.KeepInternalFlags) } dvContent, err := BlockBySource(d.objectStore, source) @@ -105,7 +111,7 @@ func (d *sdataview) SetSource(ctx session.Context, blockId string, source []stri } s.SetLocalDetail(bundle.RelationKeySetOf.String(), pbtypes.StringList(source)) - return d.Apply(s, smartblock.NoRestrictions) + return d.Apply(s, smartblock.NoRestrictions, smartblock.KeepInternalFlags) } func (d *sdataview) AddRelations(ctx session.Context, blockId string, relationKeys []string, showEvent bool) error { From 10a21745009ffb60acd23d51ce801984c4e4cf98 Mon Sep 17 00:00:00 2001 From: AnastasiaShemyakinskaya Date: Mon, 12 Aug 2024 16:26:04 +0200 Subject: [PATCH 11/78] GO-3273: fix history version Signed-off-by: AnastasiaShemyakinskaya --- core/history/history.go | 30 ++++++++++++++++++++++++++++-- 1 file changed, 28 insertions(+), 2 deletions(-) diff --git a/core/history/history.go b/core/history/history.go index e8a83743c..bdd73e27f 100644 --- a/core/history/history.go +++ b/core/history/history.go @@ -1,7 +1,9 @@ package history import ( + "bytes" "context" + "crypto/md5" "fmt" "slices" "time" @@ -54,6 +56,7 @@ type history struct { picker cache.ObjectGetter objectStore objectstore.ObjectStore spaceService space.Service + heads map[string]string } func (h *history) Init(a *app.App) (err error) { @@ -128,6 +131,7 @@ func (h *history) Versions(id domain.FullID, lastVersionId string, limit int) (r return vers } + curHeads := make(map[string]struct{}) for len(resp) < limit { tree, _, e := h.treeWithId(id, lastVersionId, includeLastId) if e != nil { @@ -137,12 +141,34 @@ func (h *history) Versions(id domain.FullID, lastVersionId string, limit int) (r e = tree.IterateFrom(tree.Root().Id, source.UnmarshalChange, func(c *objecttree.Change) (isContinue bool) { participantId := domain.NewParticipantId(id.SpaceID, c.Identity.Account()) - data = append(data, &pb.RpcHistoryVersion{ + curHeads[c.Id] = struct{}{} + for _, previousId := range c.PreviousIds { + delete(curHeads, previousId) + } + version := &pb.RpcHistoryVersion{ Id: c.Id, PreviousIds: c.PreviousIds, AuthorId: participantId, Time: c.Timestamp, - }) + } + if len(curHeads) > 1 { + var ( + resultHead bytes.Buffer + count int + ) + for head := range curHeads { + resultHead.WriteString(head) + count++ + if count != len(curHeads)-1 { + resultHead.WriteString(" ") + } + } + hash := md5.New() + hashSum := string(hash.Sum(resultHead.Bytes())) + h.heads[hashSum] = resultHead.String() + version.Id = hashSum + } + data = append(data, version) return true }) if e != nil { From e7f83e051903706072e15817571aa4ec6e34f3f1 Mon Sep 17 00:00:00 2001 From: Sergey Date: Mon, 12 Aug 2024 16:39:57 +0200 Subject: [PATCH 12/78] Fix Not filter --- go.mod | 2 +- go.sum | 2 ++ pkg/lib/database/filter.go | 6 ++++ pkg/lib/database/filter_test.go | 17 ++++++++++ pkg/lib/localstore/objectstore/objects.go | 8 +++++ .../localstore/objectstore/queries_test.go | 33 +++++++++++++++++++ 6 files changed, 67 insertions(+), 1 deletion(-) diff --git a/go.mod b/go.mod index 084c99fc5..32239b78d 100644 --- a/go.mod +++ b/go.mod @@ -7,7 +7,7 @@ require ( github.com/PuerkitoBio/goquery v1.9.2 github.com/VividCortex/ewma v1.2.0 github.com/adrium/goheif v0.0.0-20230113233934-ca402e77a786 - github.com/anyproto/any-store v0.0.1 + github.com/anyproto/any-store v0.0.2-0.20240812125400-7f6f6d062ebf github.com/anyproto/any-sync v0.4.22 github.com/anyproto/go-naturaldate/v2 v2.0.2-0.20230524105841-9829cfd13438 github.com/anyproto/tantivy-go v0.0.7 diff --git a/go.sum b/go.sum index dcfc62d59..d898bcd3a 100644 --- a/go.sum +++ b/go.sum @@ -87,6 +87,8 @@ github.com/anyproto/any-store v0.0.0-20240719163025-8a3657f8e01c h1:rRlF97BLA+4/ github.com/anyproto/any-store v0.0.0-20240719163025-8a3657f8e01c/go.mod h1:JV7dJ8+xF1VaCQgFQsD8SZSNlxxTGFbDiF8llkB2ILc= github.com/anyproto/any-store v0.0.1 h1:RiZi3cHVSpIebcNeHYOUaDShH7E9Ahto33zdnqCaUHM= github.com/anyproto/any-store v0.0.1/go.mod h1:JV7dJ8+xF1VaCQgFQsD8SZSNlxxTGFbDiF8llkB2ILc= +github.com/anyproto/any-store v0.0.2-0.20240812125400-7f6f6d062ebf h1:9VTQc/011fVyucu9bICmjF6+y/T9QdZv6MN7X4gM4S0= +github.com/anyproto/any-store v0.0.2-0.20240812125400-7f6f6d062ebf/go.mod h1:JV7dJ8+xF1VaCQgFQsD8SZSNlxxTGFbDiF8llkB2ILc= github.com/anyproto/any-sync v0.4.22 h1:f9iAbCv/clTzYtzOzkX1IOXahVM/Art1WkUtIgnwl8U= github.com/anyproto/any-sync v0.4.22/go.mod h1:qHIG2zMvGIthEb2FmcjQN5YZZwV8kPHv7/T0ib7YSDg= github.com/anyproto/badger/v4 v4.2.1-0.20240110160636-80743fa3d580 h1:Ba80IlCCxkZ9H1GF+7vFu/TSpPvbpDCxXJ5ogc4euYc= diff --git a/pkg/lib/database/filter.go b/pkg/lib/database/filter.go index ac5c8e2c1..5165c3711 100644 --- a/pkg/lib/database/filter.go +++ b/pkg/lib/database/filter.go @@ -275,6 +275,12 @@ func negateFilter(filter query.Filter) query.Filter { } return negated case query.Key: + if nested, ok := v.Filter.(query.Not); ok { + return query.Key{ + Path: v.Path, + Filter: nested.Filter, + } + } return query.Key{ Path: v.Path, Filter: query.Not{ diff --git a/pkg/lib/database/filter_test.go b/pkg/lib/database/filter_test.go index 1ffc03aec..027a228dc 100644 --- a/pkg/lib/database/filter_test.go +++ b/pkg/lib/database/filter_test.go @@ -124,6 +124,23 @@ func TestEq_FilterObject(t *testing.T) { obj = &types.Struct{Fields: map[string]*types.Value{"k": pbtypes.Float64(2)}} assertFilter(t, eq, obj, false) }) + + t.Run("not equal true: no key", func(t *testing.T) { + eq := FilterEq{Key: "k", Value: pbtypes.Bool(true), Cond: model.BlockContentDataviewFilter_NotEqual} + obj := &types.Struct{Fields: map[string]*types.Value{}} + assertFilter(t, eq, obj, true) + + obj = &types.Struct{Fields: map[string]*types.Value{"k": pbtypes.Bool(true)}} + assertFilter(t, eq, obj, false) + }) + t.Run("not equal false: no key", func(t *testing.T) { + eq := FilterEq{Key: "k", Value: pbtypes.Bool(false), Cond: model.BlockContentDataviewFilter_NotEqual} + obj := &types.Struct{Fields: map[string]*types.Value{}} + assertFilter(t, eq, obj, true) + + obj = &types.Struct{Fields: map[string]*types.Value{"k": pbtypes.Bool(false)}} + assertFilter(t, eq, obj, false) + }) } func TestNot_FilterObject(t *testing.T) { diff --git a/pkg/lib/localstore/objectstore/objects.go b/pkg/lib/localstore/objectstore/objects.go index 24749ba73..5a02b0873 100644 --- a/pkg/lib/localstore/objectstore/objects.go +++ b/pkg/lib/localstore/objectstore/objects.go @@ -273,6 +273,14 @@ func (s *dsObjectStore) runDatabase(ctx context.Context, path string) error { Name: "syncStatus", Fields: []string{bundle.RelationKeySyncStatus.String()}, }, + { + Name: "isDeleted", + Fields: []string{bundle.RelationKeyIsDeleted.String()}, + }, + { + Name: "isArchived", + Fields: []string{bundle.RelationKeyIsArchived.String()}, + }, } err = s.addIndexes(ctx, objects, objectIndexes) if err != nil { diff --git a/pkg/lib/localstore/objectstore/queries_test.go b/pkg/lib/localstore/objectstore/queries_test.go index e000aa9d9..173cb9d11 100644 --- a/pkg/lib/localstore/objectstore/queries_test.go +++ b/pkg/lib/localstore/objectstore/queries_test.go @@ -1182,3 +1182,36 @@ func TestGetSpaceIDFromFilters(t *testing.T) { assert.Equal(t, []string{spaceId}, getSpaceIdsFromFilter(f)) }) } + +func TestIndex(t *testing.T) { + s := NewStoreFixture(t) + obj1 := TestObject{ + bundle.RelationKeyId: pbtypes.String("id1"), + bundle.RelationKeyName: pbtypes.String("name1"), + bundle.RelationKeyIsDeleted: pbtypes.Bool(true), + } + obj2 := TestObject{ + bundle.RelationKeyId: pbtypes.String("id2"), + bundle.RelationKeyName: pbtypes.String("name2"), + } + obj3 := TestObject{ + bundle.RelationKeyId: pbtypes.String("id3"), + bundle.RelationKeyName: pbtypes.String("name3"), + } + s.AddObjects(t, []TestObject{obj1, obj2, obj3}) + + recs, err := s.Query(database.Query{ + Filters: []*model.BlockContentDataviewFilter{ + { + RelationKey: bundle.RelationKeyIsDeleted.String(), + Condition: model.BlockContentDataviewFilter_NotEqual, + Value: pbtypes.Bool(true), + }, + }, + }) + require.NoError(t, err) + + assertRecordsEqual(t, []TestObject{ + obj2, obj3, + }, recs) +} From be4c07c695fef1bd6514fa348238a804f8992e5c Mon Sep 17 00:00:00 2001 From: mcrakhman Date: Mon, 12 Aug 2024 22:37:44 +0200 Subject: [PATCH 13/78] GO-3690 Update any-sync and remove old peers select --- go.mod | 2 +- go.sum | 4 +-- space/spacecore/peermanager/manager.go | 31 ++------------------- space/spacecore/peermanager/manager_test.go | 17 ----------- 4 files changed, 5 insertions(+), 49 deletions(-) diff --git a/go.mod b/go.mod index b7d550583..9ae947911 100644 --- a/go.mod +++ b/go.mod @@ -8,7 +8,7 @@ require ( github.com/VividCortex/ewma v1.2.0 github.com/adrium/goheif v0.0.0-20230113233934-ca402e77a786 github.com/anyproto/any-store v0.0.1 - github.com/anyproto/any-sync v0.4.23 + github.com/anyproto/any-sync v0.4.24-alpha.1 github.com/anyproto/go-naturaldate/v2 v2.0.2-0.20230524105841-9829cfd13438 github.com/anyproto/tantivy-go/go v0.0.5 github.com/araddon/dateparse v0.0.0-20210429162001-6b43995a97de diff --git a/go.sum b/go.sum index 503128a83..7969e19a2 100644 --- a/go.sum +++ b/go.sum @@ -85,8 +85,8 @@ github.com/andybalholm/cascadia v1.3.2 h1:3Xi6Dw5lHF15JtdcmAHD3i1+T8plmv7BQ/nsVi github.com/andybalholm/cascadia v1.3.2/go.mod h1:7gtRlve5FxPPgIgX36uWBX58OdBsSS6lUvCFb+h7KvU= github.com/anyproto/any-store v0.0.1 h1:RiZi3cHVSpIebcNeHYOUaDShH7E9Ahto33zdnqCaUHM= github.com/anyproto/any-store v0.0.1/go.mod h1:JV7dJ8+xF1VaCQgFQsD8SZSNlxxTGFbDiF8llkB2ILc= -github.com/anyproto/any-sync v0.4.23 h1:6LVXhtJxSyekDHYHTbe70FGDfFQWI763tzAJBRgLYI0= -github.com/anyproto/any-sync v0.4.23/go.mod h1:qHIG2zMvGIthEb2FmcjQN5YZZwV8kPHv7/T0ib7YSDg= +github.com/anyproto/any-sync v0.4.24-alpha.1 h1:8IaOyvhT5/IDg5qYgwi3yPNjbrZcWAEO/K/G1vgqztQ= +github.com/anyproto/any-sync v0.4.24-alpha.1/go.mod h1:qHIG2zMvGIthEb2FmcjQN5YZZwV8kPHv7/T0ib7YSDg= github.com/anyproto/badger/v4 v4.2.1-0.20240110160636-80743fa3d580 h1:Ba80IlCCxkZ9H1GF+7vFu/TSpPvbpDCxXJ5ogc4euYc= github.com/anyproto/badger/v4 v4.2.1-0.20240110160636-80743fa3d580/go.mod h1:T/uWAYxrXdaXw64ihI++9RMbKTCpKd/yE9+saARew7k= github.com/anyproto/go-chash v0.1.0 h1:I9meTPjXFRfXZHRJzjOHC/XF7Q5vzysKkiT/grsogXY= diff --git a/space/spacecore/peermanager/manager.go b/space/spacecore/peermanager/manager.go index 1fadd8bad..b68ee8afd 100644 --- a/space/spacecore/peermanager/manager.go +++ b/space/spacecore/peermanager/manager.go @@ -9,9 +9,6 @@ import ( "github.com/anyproto/any-sync/app" "github.com/anyproto/any-sync/app/logger" - "github.com/anyproto/any-sync/net/secureservice" - "github.com/samber/lo" - //nolint:misspell "github.com/anyproto/any-sync/commonspace/peermanager" "github.com/anyproto/any-sync/commonspace/spacesyncproto" @@ -104,12 +101,7 @@ func (n *clientPeerManager) SendPeer(ctx context.Context, peerId string, msg *sp // because the stream will be opened with this context ctx = logger.CtxWithFields(context.Background(), logger.CtxGetFields(ctx)...) return n.p.streamPool.Send(ctx, msg, func(ctx context.Context) (peers []peer.Peer, err error) { - peers, err = n.getExactPeer(ctx, peerId) - if err != nil { - return nil, err - } - peers = selectOldPeers(peers) - return + return n.getExactPeer(ctx, peerId) }) } @@ -118,12 +110,7 @@ func (n *clientPeerManager) Broadcast(ctx context.Context, msg *spacesyncproto.O // because the stream can be opened with this context ctx = logger.CtxWithFields(context.Background(), logger.CtxGetFields(ctx)...) return n.p.streamPool.Send(ctx, msg, func(ctx context.Context) (peers []peer.Peer, err error) { - peers, err = n.getStreamResponsiblePeers(ctx) - if err != nil { - return nil, err - } - peers = selectOldPeers(peers) - return + return n.getStreamResponsiblePeers(ctx) }) } @@ -274,17 +261,3 @@ func (n *clientPeerManager) Close(ctx context.Context) (err error) { n.peerToPeerStatus.UnregisterSpace(n.spaceId) return } - -func selectOldPeers(peers []peer.Peer) (filteredPeers []peer.Peer) { - return lo.Filter(peers, func(p peer.Peer, idx int) bool { - protoVer, err := peer.CtxProtoVersion(p.Context()) - if err != nil { - log.Warn("failed to get proto version", zap.Error(err)) - return false - } - if protoVer > secureservice.ProtoVersion { - return false - } - return true - }) -} diff --git a/space/spacecore/peermanager/manager_test.go b/space/spacecore/peermanager/manager_test.go index edc50af87..0afe1c158 100644 --- a/space/spacecore/peermanager/manager_test.go +++ b/space/spacecore/peermanager/manager_test.go @@ -11,7 +11,6 @@ import ( "github.com/anyproto/any-sync/app" "github.com/anyproto/any-sync/net/peer" "github.com/anyproto/any-sync/net/pool/mock_pool" - "github.com/anyproto/any-sync/net/secureservice" "github.com/anyproto/any-sync/nodeconf/mock_nodeconf" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" @@ -177,22 +176,6 @@ func Test_getStreamResponsiblePeers(t *testing.T) { }) } -func Test_filterPeers(t *testing.T) { - t.Run("no peers", func(t *testing.T) { - peers := selectOldPeers([]peer.Peer{}) - assert.Len(t, peers, 0) - }) - t.Run("peers with different versions", func(t *testing.T) { - newPeer := newTestPeer("newPeer") - oldPeer := newTestPeer("oldPeer") - oldPeer.ctx = peer.CtxWithProtoVersion(context.Background(), secureservice.ProtoVersion) - newPeer.ctx = peer.CtxWithProtoVersion(context.Background(), secureservice.NewSyncProtoVersion) - peers := selectOldPeers([]peer.Peer{newPeer, oldPeer}) - assert.Len(t, peers, 1) - assert.Equal(t, peers[0].Id(), oldPeer.Id()) - }) -} - func newTestPeer(id string) *testPeer { return &testPeer{ id: id, From 875b243fabde4cab25f1df710d047c2b43279b5c Mon Sep 17 00:00:00 2001 From: AnastasiaShemyakinskaya Date: Fri, 9 Aug 2024 09:04:33 +0200 Subject: [PATCH 14/78] GO-3870: fix history limit Signed-off-by: AnastasiaShemyakinskaya --- core/history/history.go | 10 +- core/history/history_test.go | 192 ++++++++++++++++++++++++++++++++++- 2 files changed, 196 insertions(+), 6 deletions(-) diff --git a/core/history/history.go b/core/history/history.go index e8a83743c..33791b085 100644 --- a/core/history/history.go +++ b/core/history/history.go @@ -148,6 +148,9 @@ func (h *history) Versions(id domain.FullID, lastVersionId string, limit int) (r if e != nil { return nil, e } + if len(data) == 0 { + break + } if len(data[0].PreviousIds) == 0 { if data[0].Id == tree.Id() { data = data[1:] @@ -159,10 +162,6 @@ func (h *history) Versions(id domain.FullID, lastVersionId string, limit int) (r lastVersionId = tree.Root().Id includeLastId = false } - - if len(data) == 0 { - break - } } resp = reverse(resp) @@ -178,6 +177,9 @@ func (h *history) Versions(id domain.FullID, lastVersionId string, limit int) (r resp[i].GroupId = groupId } + if len(resp) > limit { + resp = resp[:limit] + } return } diff --git a/core/history/history_test.go b/core/history/history_test.go index 04779c6ef..35095ff1b 100644 --- a/core/history/history_test.go +++ b/core/history/history_test.go @@ -27,8 +27,6 @@ import ( "github.com/anyproto/anytype-heart/util/pbtypes" ) -// todo: reimplement - type historyStub struct { changes []*objecttree.Change objectId string @@ -804,6 +802,196 @@ func TestHistory_DiffVersions(t *testing.T) { }) } +func TestHistory_Versions(t *testing.T) { + t.Run("limit 0 - 100 changes", func(t *testing.T) { + // given + objectId := "objectId" + spaceID := "spaceID" + versionId := "versionId" + + accountKeys, _ := accountdata.NewRandom() + account := accountKeys.SignKey.GetPublic() + + blDataviewId := "blDataviewId" + relationKey := "key" + + viewId := "viewId" + viewName := "view" + + viewId1 := "viewId1" + view1Name := "view1" + + viewId2 := "viewId2" + view2Name := "view2" + + blDataview := provideDataviewBlock(viewId1, view1Name, relationKey, blDataviewId) + + blSmartBlock := &model.Block{Id: objectId, Content: &model.BlockContentOfSmartblock{Smartblock: &model.BlockContentSmartblock{}}} + + currChange := []*objecttree.Change{ + // create block changes + provideBlockEmptyChange(objectId, account), + provideBlockCreateChange(blSmartBlock, account), + provideBlockCreateChange(blDataview, account), + + // dataview changes + provideBlockDataviewViewSetChange(blDataviewId, viewId1, view1Name, relationKey, account), + provideBlockDataviewViewSetChange(blDataviewId, viewId2, view2Name, relationKey, account), + provideBlockDataviewSourceSetChange(blDataviewId, account), + provideBlockDataviewRelationSetChange(blDataviewId, account), + provideBlockDataviewViewSetChange(blDataviewId, viewId, viewName, relationKey, account), + provideBlockDataviewViewOrderChange(blDataviewId, viewId, viewId1, account), + provideBlockDataviewViewDeleteChange(blDataviewId, viewId2, account), + provideBlockDataviewRelationDeleteChange(blDataviewId, relationKey, account), + provideBlockDataviewObjectOrderChange(blDataviewId, viewId, account), + provideBlockDataviewGroupOrderChange(blDataviewId, viewId, account), + provideBlockDataviewViewUpdateChange(blDataviewId, viewId, account), + provideBlockDataviewTargetObjectChange(blDataviewId, account), + } + + history := newFixture(t, currChange, objectId, spaceID, versionId) + + // when + resp, err := history.Versions(domain.FullID{ObjectID: objectId, SpaceID: spaceID}, versionId, 0) + + // then + assert.Nil(t, err) + assert.Len(t, resp, 14) + }) + t.Run("limit 10 - 10 changes", func(t *testing.T) { + // given + objectId := "objectId" + spaceID := "spaceID" + versionId := "versionId" + + accountKeys, _ := accountdata.NewRandom() + account := accountKeys.SignKey.GetPublic() + + blDataviewId := "blDataviewId" + relationKey := "key" + + viewId := "viewId" + viewName := "view" + + viewId1 := "viewId1" + view1Name := "view1" + + viewId2 := "viewId2" + view2Name := "view2" + + blDataview := provideDataviewBlock(viewId1, view1Name, relationKey, blDataviewId) + + blSmartBlock := &model.Block{Id: objectId, Content: &model.BlockContentOfSmartblock{Smartblock: &model.BlockContentSmartblock{}}} + + currChange := []*objecttree.Change{ + // create block changes + provideBlockEmptyChange(objectId, account), + provideBlockCreateChange(blSmartBlock, account), + provideBlockCreateChange(blDataview, account), + + // dataview changes + provideBlockDataviewViewSetChange(blDataviewId, viewId1, view1Name, relationKey, account), + provideBlockDataviewViewSetChange(blDataviewId, viewId2, view2Name, relationKey, account), + provideBlockDataviewSourceSetChange(blDataviewId, account), + provideBlockDataviewRelationSetChange(blDataviewId, account), + provideBlockDataviewViewSetChange(blDataviewId, viewId, viewName, relationKey, account), + provideBlockDataviewViewOrderChange(blDataviewId, viewId, viewId1, account), + provideBlockDataviewViewDeleteChange(blDataviewId, viewId2, account), + provideBlockDataviewRelationDeleteChange(blDataviewId, relationKey, account), + provideBlockDataviewObjectOrderChange(blDataviewId, viewId, account), + provideBlockDataviewGroupOrderChange(blDataviewId, viewId, account), + provideBlockDataviewViewUpdateChange(blDataviewId, viewId, account), + provideBlockDataviewTargetObjectChange(blDataviewId, account), + } + + history := newFixture(t, currChange, objectId, spaceID, versionId) + + // when + resp, err := history.Versions(domain.FullID{ObjectID: objectId, SpaceID: spaceID}, versionId, 10) + + // then + assert.Nil(t, err) + assert.Len(t, resp, 10) + }) + t.Run("number of changes equals limit", func(t *testing.T) { + // given + objectId := "objectId" + spaceID := "spaceID" + versionId := "versionId" + + accountKeys, _ := accountdata.NewRandom() + account := accountKeys.SignKey.GetPublic() + + blDataviewId := "blDataviewId" + relationKey := "key" + + viewId := "viewId" + viewName := "view" + + viewId1 := "viewId1" + view1Name := "view1" + + viewId2 := "viewId2" + view2Name := "view2" + + blDataview := provideDataviewBlock(viewId1, view1Name, relationKey, blDataviewId) + + blSmartBlock := &model.Block{Id: objectId, Content: &model.BlockContentOfSmartblock{Smartblock: &model.BlockContentSmartblock{}}} + + currChange := []*objecttree.Change{ + // create block changes + provideBlockEmptyChange(objectId, account), + provideBlockCreateChange(blSmartBlock, account), + provideBlockCreateChange(blDataview, account), + + // dataview changes + provideBlockDataviewViewSetChange(blDataviewId, viewId1, view1Name, relationKey, account), + provideBlockDataviewViewSetChange(blDataviewId, viewId2, view2Name, relationKey, account), + provideBlockDataviewSourceSetChange(blDataviewId, account), + provideBlockDataviewRelationSetChange(blDataviewId, account), + provideBlockDataviewViewSetChange(blDataviewId, viewId, viewName, relationKey, account), + provideBlockDataviewViewOrderChange(blDataviewId, viewId, viewId1, account), + provideBlockDataviewViewDeleteChange(blDataviewId, viewId2, account), + provideBlockDataviewRelationDeleteChange(blDataviewId, relationKey, account), + } + + history := newFixture(t, currChange, objectId, spaceID, versionId) + + // when + resp, err := history.Versions(domain.FullID{ObjectID: objectId, SpaceID: spaceID}, versionId, 10) + + // then + assert.Nil(t, err) + assert.Len(t, resp, 10) + }) + t.Run("no changes", func(t *testing.T) { + // given + objectId := "objectId" + spaceID := "spaceID" + versionId := "versionId" + + var currChange []*objecttree.Change + + history := newFixture(t, currChange, objectId, spaceID, versionId) + + ctrl := gomock.NewController(t) + spaceService := mock_space.NewMockService(t) + space := mock_clientspace.NewMockSpace(t) + treeBuilder := mock_objecttreebuilder.NewMockTreeBuilder(ctrl) + configureTreeBuilder(treeBuilder, objectId, versionId, spaceID, currChange, space, spaceService) + history.treeBuilder = treeBuilder + history.space = space + history.spaceService = spaceService + + // when + resp, err := history.Versions(domain.FullID{ObjectID: objectId, SpaceID: spaceID}, versionId, 10) + + // then + assert.Nil(t, err) + assert.Len(t, resp, 0) + }) +} + type historyFixture struct { *history space *mock_clientspace.MockSpace From 3afe976e27577a11644f95ce596d2c5af5e05a57 Mon Sep 17 00:00:00 2001 From: Sergey Date: Thu, 8 Aug 2024 10:50:31 +0200 Subject: [PATCH 15/78] GO-3882: Import: do not ignore old files in link substitution mechanism (cherry picked from commit ce04ae71043fd301cd8a25a64c120a9b7cb554c2) --- core/block/import/common/common.go | 33 +++++++------------ core/block/import/common/common_test.go | 8 ++--- .../common/objectcreator/objectcreator.go | 5 ++- .../objectcreator/objectcreator_test.go | 2 +- .../block/import/common/objectcreator/task.go | 10 +----- core/block/import/importer.go | 13 +------- core/block/import/pb/converter.go | 9 ++--- 7 files changed, 23 insertions(+), 57 deletions(-) diff --git a/core/block/import/common/common.go b/core/block/import/common/common.go index 7d13c6baa..8996539f5 100644 --- a/core/block/import/common/common.go +++ b/core/block/import/common/common.go @@ -10,7 +10,6 @@ import ( "github.com/gogo/protobuf/types" "github.com/ipfs/go-cid" - "github.com/samber/lo" "github.com/anyproto/anytype-heart/core/block/editor/state" "github.com/anyproto/anytype-heart/core/block/editor/widget" @@ -54,16 +53,16 @@ func GetCommonDetails(sourcePath, name, emoji string, layout model.ObjectTypeLay return &types.Struct{Fields: fields} } -func UpdateLinksToObjects(st *state.State, oldIDtoNew map[string]string, filesIDs []string) error { +func UpdateLinksToObjects(st *state.State, oldIDtoNew map[string]string) error { return st.Iterate(func(bl simple.Block) (isContinue bool) { // TODO I think we should use some kind of iterator by object ids switch block := bl.(type) { case link.Block: - handleLinkBlock(oldIDtoNew, block, st, filesIDs) + handleLinkBlock(oldIDtoNew, block, st) case bookmark.Block: handleBookmarkBlock(oldIDtoNew, block, st) case text.Block: - handleTextBlock(oldIDtoNew, block, st, filesIDs) + handleTextBlock(oldIDtoNew, block, st) case dataview.Block: handleDataviewBlock(block, oldIDtoNew, st) case file.Block: @@ -141,11 +140,9 @@ func handleBookmarkBlock(oldIDtoNew map[string]string, block simple.Block, st *s st.Set(simple.New(block.Model())) } -func handleLinkBlock(oldIDtoNew map[string]string, block simple.Block, st *state.State, filesIDs []string) { +func handleLinkBlock(oldIDtoNew map[string]string, block simple.Block, st *state.State) { targetBlockID := block.Model().GetLink().TargetBlockId - if lo.Contains(filesIDs, targetBlockID) { - return - } + newTarget := oldIDtoNew[targetBlockID] if newTarget == "" { if widget.IsPredefinedWidgetTargetId(targetBlockID) { @@ -195,7 +192,7 @@ func isBundledObjects(targetObjectID string) bool { return false } -func handleTextBlock(oldIDtoNew map[string]string, block simple.Block, st *state.State, filesIDs []string) { +func handleTextBlock(oldIDtoNew map[string]string, block simple.Block, st *state.State) { if iconImage := block.Model().GetText().GetIconImage(); iconImage != "" { newTarget := oldIDtoNew[iconImage] if newTarget == "" { @@ -212,9 +209,6 @@ func handleTextBlock(oldIDtoNew map[string]string, block simple.Block, st *state if mark.Type != model.BlockContentTextMark_Mention && mark.Type != model.BlockContentTextMark_Object { continue } - if lo.Contains(filesIDs, mark.Param) { - return - } if isBundledObjects(mark.Param) { return } @@ -228,7 +222,7 @@ func handleTextBlock(oldIDtoNew map[string]string, block simple.Block, st *state st.Set(simple.New(block.Model())) } -func UpdateObjectIDsInRelations(st *state.State, oldIDtoNew map[string]string, filesIDs []string) { +func UpdateObjectIDsInRelations(st *state.State, oldIDtoNew map[string]string) { rels := st.GetRelationLinks() for k, v := range st.Details().GetFields() { relLink := rels.Get(k) @@ -244,7 +238,7 @@ func UpdateObjectIDsInRelations(st *state.State, oldIDtoNew map[string]string, f continue } // For example, RelationKeySetOf is handled here - handleObjectRelation(st, oldIDtoNew, v, k, filesIDs) + handleObjectRelation(st, oldIDtoNew, v, k) } } @@ -256,28 +250,25 @@ func isLinkToObject(relLink *model.RelationLink) bool { relLink.Format == model.RelationFormat_file } -func handleObjectRelation(st *state.State, oldIDtoNew map[string]string, v *types.Value, k string, filesIDs []string) { +func handleObjectRelation(st *state.State, oldIDtoNew map[string]string, v *types.Value, k string) { if _, ok := v.GetKind().(*types.Value_StringValue); ok { objectsID := v.GetStringValue() - newObjectIDs := getNewObjectsIDForRelation([]string{objectsID}, oldIDtoNew, filesIDs) + newObjectIDs := getNewObjectsIDForRelation([]string{objectsID}, oldIDtoNew) if len(newObjectIDs) != 0 { st.SetDetail(k, pbtypes.String(newObjectIDs[0])) } return } objectsIDs := pbtypes.GetStringListValue(v) - objectsIDs = getNewObjectsIDForRelation(objectsIDs, oldIDtoNew, filesIDs) + objectsIDs = getNewObjectsIDForRelation(objectsIDs, oldIDtoNew) st.SetDetail(k, pbtypes.StringList(objectsIDs)) } -func getNewObjectsIDForRelation(objectsIDs []string, oldIDtoNew map[string]string, filesIDs []string) []string { +func getNewObjectsIDForRelation(objectsIDs []string, oldIDtoNew map[string]string) []string { for i, val := range objectsIDs { if val == "" { continue } - if lo.Contains(filesIDs, val) { - continue - } newTarget := oldIDtoNew[val] if newTarget == "" { // preserve links to bundled objects diff --git a/core/block/import/common/common_test.go b/core/block/import/common/common_test.go index d3e8feef2..d653a6b58 100644 --- a/core/block/import/common/common_test.go +++ b/core/block/import/common/common_test.go @@ -87,7 +87,7 @@ func TestUpdateLinksToObjects(t *testing.T) { oldToNew := map[string]string{rawCid: "newFileObjectId"} // when - err = UpdateLinksToObjects(st, oldToNew, nil) + err = UpdateLinksToObjects(st, oldToNew) // then assert.Nil(t, err) @@ -109,7 +109,7 @@ func TestUpdateLinksToObjects(t *testing.T) { st := state.NewDoc("root", map[string]simple.Block{"test": simpleBlock, "root": rootSimpleBlock}).(*state.State) // when - err := UpdateLinksToObjects(st, map[string]string{}, nil) + err := UpdateLinksToObjects(st, map[string]string{}) // then assert.Nil(t, err) @@ -135,7 +135,7 @@ func TestUpdateLinksToObjects(t *testing.T) { st := state.NewDoc("root", map[string]simple.Block{"test": simpleBlock, "root": rootSimpleBlock}).(*state.State) // when - err = UpdateLinksToObjects(st, map[string]string{}, nil) + err = UpdateLinksToObjects(st, map[string]string{}) // then assert.Nil(t, err) @@ -159,7 +159,7 @@ func TestUpdateLinksToObjects(t *testing.T) { st := state.NewDoc("root", map[string]simple.Block{"test": simpleBlock, "root": rootSimpleBlock}).(*state.State) // when - err := UpdateLinksToObjects(st, map[string]string{}, nil) + err := UpdateLinksToObjects(st, map[string]string{}) // then assert.Nil(t, err) diff --git a/core/block/import/common/objectcreator/objectcreator.go b/core/block/import/common/objectcreator/objectcreator.go index 704d0404e..a650cc957 100644 --- a/core/block/import/common/objectcreator/objectcreator.go +++ b/core/block/import/common/objectcreator/objectcreator.go @@ -81,7 +81,6 @@ func New(service BlockService, func (oc *ObjectCreator) Create(dataObject *DataObject, sn *common.Snapshot) (*types.Struct, string, error) { snapshot := sn.Snapshot.Data oldIDtoNew := dataObject.oldIDtoNew - fileIDs := dataObject.fileIDs ctx := dataObject.ctx origin := dataObject.origin spaceID := dataObject.spaceID @@ -105,9 +104,9 @@ func (oc *ObjectCreator) Create(dataObject *DataObject, sn *common.Snapshot) (*t oc.onFinish(err, st, filesToDelete) }() - common.UpdateObjectIDsInRelations(st, oldIDtoNew, fileIDs) + common.UpdateObjectIDsInRelations(st, oldIDtoNew) - if err = common.UpdateLinksToObjects(st, oldIDtoNew, fileIDs); err != nil { + if err = common.UpdateLinksToObjects(st, oldIDtoNew); err != nil { log.With("objectID", newID).Errorf("failed to update objects ids: %s", err) } diff --git a/core/block/import/common/objectcreator/objectcreator_test.go b/core/block/import/common/objectcreator/objectcreator_test.go index 7f752bf2d..6bfb9fc53 100644 --- a/core/block/import/common/objectcreator/objectcreator_test.go +++ b/core/block/import/common/objectcreator/objectcreator_test.go @@ -40,7 +40,7 @@ func TestObjectCreator_Create(t *testing.T) { importedSpaceIdParticipantId := domain.NewParticipantId(importedSpaceId, identity) oldToNew := map[string]string{importedSpaceIdParticipantId: participantId} - dataObject := NewDataObject(context.Background(), oldToNew, nil, nil, objectorigin.Import(model.Import_Pb), spaceID) + dataObject := NewDataObject(context.Background(), oldToNew, nil, objectorigin.Import(model.Import_Pb), spaceID) sn := &common.Snapshot{ Id: importedSpaceIdParticipantId, SbType: coresb.SmartBlockTypeParticipant, diff --git a/core/block/import/common/objectcreator/task.go b/core/block/import/common/objectcreator/task.go index 565ad71ce..e51c9ce6a 100644 --- a/core/block/import/common/objectcreator/task.go +++ b/core/block/import/common/objectcreator/task.go @@ -13,7 +13,6 @@ import ( type DataObject struct { oldIDtoNew map[string]string createPayloads map[string]treestorage.TreeStorageCreatePayload - fileIDs []string ctx context.Context origin objectorigin.ObjectOrigin spaceID string @@ -27,13 +26,7 @@ type Result struct { Err error } -func NewDataObject(ctx context.Context, - oldIDtoNew map[string]string, - createPayloads map[string]treestorage.TreeStorageCreatePayload, - filesIDs []string, - origin objectorigin.ObjectOrigin, - spaceID string, -) *DataObject { +func NewDataObject(ctx context.Context, oldIDtoNew map[string]string, createPayloads map[string]treestorage.TreeStorageCreatePayload, origin objectorigin.ObjectOrigin, spaceID string) *DataObject { newIdsSet := make(map[string]struct{}, len(oldIDtoNew)) for _, newId := range oldIDtoNew { newIdsSet[newId] = struct{}{} @@ -41,7 +34,6 @@ func NewDataObject(ctx context.Context, return &DataObject{ oldIDtoNew: oldIDtoNew, createPayloads: createPayloads, - fileIDs: filesIDs, ctx: ctx, origin: origin, spaceID: spaceID, diff --git a/core/block/import/importer.go b/core/block/import/importer.go index 9648b5f19..c4e73d6b5 100644 --- a/core/block/import/importer.go +++ b/core/block/import/importer.go @@ -312,12 +312,11 @@ func (i *Import) createObjects(ctx context.Context, if err != nil { return nil, "" } - filesIDs := i.getFilesIDs(res) numWorkers := workerPoolSize if len(res.Snapshots) < workerPoolSize { numWorkers = 1 } - do := creator.NewDataObject(ctx, oldIDToNew, createPayloads, filesIDs, origin, req.SpaceId) + do := creator.NewDataObject(ctx, oldIDToNew, createPayloads, origin, req.SpaceId) pool := workerpool.NewPool(numWorkers) progress.SetProgressMessage("Create objects") go i.addWork(res, pool) @@ -326,16 +325,6 @@ func (i *Import) createObjects(ctx context.Context, return details, oldIDToNew[res.RootCollectionID] } -func (i *Import) getFilesIDs(res *common.Response) []string { - fileIDs := make([]string, 0) - for _, snapshot := range res.Snapshots { - fileIDs = append(fileIDs, lo.Map(snapshot.Snapshot.GetFileKeys(), func(item *pb.ChangeFileKeys, index int) string { - return item.Hash - })...) - } - return fileIDs -} - func (i *Import) getIDForAllObjects(ctx context.Context, res *common.Response, allErrors *common.ConvertError, diff --git a/core/block/import/pb/converter.go b/core/block/import/pb/converter.go index 71b207d28..ade77e22e 100644 --- a/core/block/import/pb/converter.go +++ b/core/block/import/pb/converter.go @@ -12,7 +12,6 @@ import ( "github.com/gogo/protobuf/jsonpb" "github.com/gogo/protobuf/types" "github.com/google/uuid" - "github.com/samber/lo" "github.com/anyproto/anytype-heart/core/anytype/account" "github.com/anyproto/anytype-heart/core/block/collection" @@ -463,17 +462,13 @@ func (p *Pb) shouldImportSnapshot(snapshot *common.Snapshot, needToImportWidgets func (p *Pb) updateLinksToObjects(snapshots []*common.Snapshot, allErrors *common.ConvertError, pathCount int) map[string]string { oldToNewID := make(map[string]string, len(snapshots)) - fileIDs := make([]string, 0) for _, snapshot := range snapshots { id := pbtypes.GetString(snapshot.Snapshot.Data.Details, bundle.RelationKeyId.String()) oldToNewID[id] = snapshot.Id - fileIDs = append(fileIDs, lo.Map(snapshot.Snapshot.GetFileKeys(), func(item *pb.ChangeFileKeys, index int) string { - return item.Hash - })...) } for _, snapshot := range snapshots { st := state.NewDocFromSnapshot("", snapshot.Snapshot, state.WithUniqueKeyMigration(snapshot.SbType)) - err := common.UpdateLinksToObjects(st.(*state.State), oldToNewID, fileIDs) + err := common.UpdateLinksToObjects(st.(*state.State), oldToNewID) if err != nil { allErrors.Add(err) if allErrors.ShouldAbortImport(pathCount, model.Import_Pb) { @@ -481,7 +476,7 @@ func (p *Pb) updateLinksToObjects(snapshots []*common.Snapshot, allErrors *commo } continue } - common.UpdateObjectIDsInRelations(st.(*state.State), oldToNewID, fileIDs) + common.UpdateObjectIDsInRelations(st.(*state.State), oldToNewID) // TODO Fix // converter.UpdateObjectType(oldToNewID, st.(*state.State)) p.updateObjectsIDsInCollection(st.(*state.State), oldToNewID) From aa9bc32392d9ffec5a95d11cb6aed80997fcd724 Mon Sep 17 00:00:00 2001 From: Sergey Date: Thu, 8 Aug 2024 10:59:40 +0200 Subject: [PATCH 16/78] GO-3882: File migration: do not run in non-personal spaces (cherry picked from commit 00b8e75fa8c63ff83ff0e2a128d17c09e5b6545f) --- core/files/fileobject/migration.go | 12 ++++++++++++ core/files/fileobject/migration_test.go | 6 ++++++ 2 files changed, 18 insertions(+) diff --git a/core/files/fileobject/migration.go b/core/files/fileobject/migration.go index 563125e86..2cd06280c 100644 --- a/core/files/fileobject/migration.go +++ b/core/files/fileobject/migration.go @@ -38,6 +38,9 @@ func makeMigrationItem() *migrationItem { } func (s *service) MigrateFileIdsInBlocks(st *state.State, spc source.Space) { + if !spc.IsPersonal() { + return + } st.Iterate(func(b simple.Block) (isContinue bool) { if migrator, ok := b.(simple.FileMigrator); ok { migrator.MigrateFile(func(oldId string) (newId string) { @@ -49,6 +52,9 @@ func (s *service) MigrateFileIdsInBlocks(st *state.State, spc source.Space) { } func (s *service) MigrateFileIdsInDetails(st *state.State, spc source.Space) { + if !spc.IsPersonal() { + return + } st.ModifyLinkedFilesInDetails(func(id string) string { return s.migrateFileId(spc.(clientspace.Space), st.RootId(), id) }) @@ -84,6 +90,9 @@ func (s *service) migrateFileId(space clientspace.Space, objectId string, fileId // from blocks or details will be changed to file object ids. And in case of any migration error // these files could be stuck un-migrated func (s *service) MigrateFiles(st *state.State, spc source.Space, keysChanges []*pb.ChangeFileKeys) { + if !spc.IsPersonal() { + return + } origin := objectorigin.FromDetails(st.Details()) for _, keys := range keysChanges { err := s.migrateFile(spc.(clientspace.Space), origin, keys) @@ -134,6 +143,9 @@ func (s *service) migrationQueueHandler(ctx context.Context, it *migrationItem) if err != nil { return persistentqueue.ActionDone, fmt.Errorf("get space: %w", err) } + if !space.IsPersonal() { + return persistentqueue.ActionDone, nil + } ctx = peer.CtxWithPeerId(ctx, peer.CtxResponsiblePeers) _, err = space.GetObject(ctx, it.FileObjectId) diff --git a/core/files/fileobject/migration_test.go b/core/files/fileobject/migration_test.go index c3ee57a85..f50cd07ef 100644 --- a/core/files/fileobject/migration_test.go +++ b/core/files/fileobject/migration_test.go @@ -36,6 +36,7 @@ func TestMigrateFiles(t *testing.T) { ) space := mock_clientspace.NewMockSpace(t) spaceId := "spaceId" + space.EXPECT().IsPersonal().Return(true) space.EXPECT().Id().Return(spaceId) space.EXPECT().DeriveObjectIdWithAccountSignature(mock.Anything, mock.Anything).Return(objectId, nil) space.EXPECT().GetObject(mock.Anything, objectId).Return(nil, fmt.Errorf("not found")) @@ -86,6 +87,7 @@ func TestMigrateFiles(t *testing.T) { bb.Root(bb.ID("root")), ) space := mock_clientspace.NewMockSpace(t) + space.EXPECT().IsPersonal().Return(true) space.EXPECT().Id().Return("spaceId") space.EXPECT().DeriveObjectIdWithAccountSignature(mock.Anything, mock.Anything).Return(objectId, nil) @@ -171,6 +173,7 @@ func TestMigrateIds(t *testing.T) { ) space := mock_clientspace.NewMockSpace(t) + space.EXPECT().IsPersonal().Return(true) fx.MigrateFileIdsInBlocks(st, space) }) @@ -188,6 +191,7 @@ func TestMigrateIds(t *testing.T) { ) space := mock_clientspace.NewMockSpace(t) + space.EXPECT().IsPersonal().Return(true) fx.MigrateFileIdsInBlocks(st, space) }) @@ -205,6 +209,7 @@ func TestMigrateIds(t *testing.T) { st.SetDetailAndBundledRelation(bundle.RelationKeyAttachments, pbtypes.StringList([]string{fileId.String()})) space := mock_clientspace.NewMockSpace(t) + space.EXPECT().IsPersonal().Return(true) fx.objectStore.AddObjects(t, []objectstore.TestObject{ { @@ -253,6 +258,7 @@ func TestMigrateIds(t *testing.T) { st.SetDetailAndBundledRelation(bundle.RelationKeyAssignee, pbtypes.StringList([]string{fileId.String()})) space := mock_clientspace.NewMockSpace(t) + space.EXPECT().IsPersonal().Return(true) space.EXPECT().DeriveObjectIdWithAccountSignature(mock.Anything, mock.Anything).Return(expectedFileObjectId, nil) fx.MigrateFileIdsInBlocks(st, space) From 765b7699f7a23ef2d235a4acd385ddb4c666bd6c Mon Sep 17 00:00:00 2001 From: AnastasiaShemyakinskaya Date: Wed, 14 Aug 2024 12:22:21 +0200 Subject: [PATCH 17/78] GO-3273: fix Signed-off-by: AnastasiaShemyakinskaya --- cmd/debugtree/debugtree.go | 4 +- .../block/editor/state/test/buildfast_test.go | 4 +- core/debug/service.go | 2 +- core/debug/treearchive/treeimporter.go | 7 +- core/history/history.go | 73 ++++++++++--------- core/history/history_test.go | 6 +- go.mod | 2 + 7 files changed, 53 insertions(+), 45 deletions(-) diff --git a/cmd/debugtree/debugtree.go b/cmd/debugtree/debugtree.go index 0bb82fc7e..7bcd4dd83 100644 --- a/cmd/debugtree/debugtree.go +++ b/cmd/debugtree/debugtree.go @@ -51,7 +51,7 @@ func main() { importer := treearchive.NewTreeImporter(archive.ListStorage(), archive.TreeStorage()) st = time.Now() - err = importer.Import(*fromRoot, "") + err = importer.Import("") if err != nil { log.Fatal("can't import the tree", err) } @@ -82,7 +82,7 @@ func main() { } fmt.Println("Change:") fmt.Println(pbtypes.Sprint(ch.Model)) - err = importer.Import(*fromRoot, ch.Id) + err = importer.Import(ch.Id) if err != nil { log.Fatal("can't import the tree before", ch.Id, err) } diff --git a/core/block/editor/state/test/buildfast_test.go b/core/block/editor/state/test/buildfast_test.go index 6b0846932..2cabaafb9 100644 --- a/core/block/editor/state/test/buildfast_test.go +++ b/core/block/editor/state/test/buildfast_test.go @@ -50,7 +50,7 @@ func testBuildFast(b *testing.T, filepath string) { importer := treearchive.NewTreeImporter(archive.ListStorage(), archive.TreeStorage()) - err = importer.Import(false, "") + err = importer.Import("") if err != nil { log.Fatal("can't import the tree", err) } @@ -64,7 +64,7 @@ func testBuildFast(b *testing.T, filepath string) { importer2 := treearchive.NewTreeImporter(archive.ListStorage(), archive.TreeStorage()) - err = importer2.Import(false, "") + err = importer2.Import("") if err != nil { log.Fatal("can't import the tree", err) } diff --git a/core/debug/service.go b/core/debug/service.go index 211e26861..20a3478d0 100644 --- a/core/debug/service.go +++ b/core/debug/service.go @@ -187,7 +187,7 @@ func (d *debug) DumpTree(ctx context.Context, objectID string, path string, anon if err != nil { return } - tree, err := spc.TreeBuilder().BuildHistoryTree(ctx, objectID, objecttreebuilder.HistoryTreeOpts{BuildFullTree: true}) + tree, err := spc.TreeBuilder().BuildHistoryTree(ctx, objectID, objecttreebuilder.HistoryTreeOpts{}) if err != nil { return } diff --git a/core/debug/treearchive/treeimporter.go b/core/debug/treearchive/treeimporter.go index 866799e27..025937939 100644 --- a/core/debug/treearchive/treeimporter.go +++ b/core/debug/treearchive/treeimporter.go @@ -44,7 +44,7 @@ func (m MarshalledJsonChange) MarshalJSON() ([]byte, error) { type TreeImporter interface { ObjectTree() objecttree.ReadableObjectTree State() (*state.State, error) // set fullStateChain to true to get full state chain, otherwise only the last state will be returned - Import(fromRoot bool, beforeId string) error + Import(beforeId string) error Json() (TreeJson, error) ChangeAt(idx int) (IdChange, error) } @@ -83,7 +83,7 @@ func (t *treeImporter) State() (*state.State, error) { return st, nil } -func (t *treeImporter) Import(fullTree bool, beforeId string) (err error) { +func (t *treeImporter) Import(beforeId string) (err error) { aclList, err := list.BuildAclList(t.listStorage, list.NoOpAcceptorVerifier{}) if err != nil { return @@ -91,9 +91,8 @@ func (t *treeImporter) Import(fullTree bool, beforeId string) (err error) { t.objectTree, err = objecttree.BuildNonVerifiableHistoryTree(objecttree.HistoryTreeParams{ TreeStorage: t.treeStorage, AclList: aclList, - BeforeId: beforeId, + Heads: []string{beforeId}, IncludeBeforeId: true, - BuildFullTree: fullTree, }) return diff --git a/core/history/history.go b/core/history/history.go index 9619d25dc..32d2583e2 100644 --- a/core/history/history.go +++ b/core/history/history.go @@ -1,11 +1,11 @@ package history import ( - "bytes" "context" "crypto/md5" "fmt" "slices" + "strings" "time" "github.com/anyproto/any-sync/app" @@ -40,7 +40,7 @@ const versionGroupInterval = time.Minute * 5 var log = logging.Logger("anytype-mw-history") func New() History { - return new(history) + return &history{heads: make(map[string]string, 0)} } type History interface { @@ -131,8 +131,8 @@ func (h *history) Versions(id domain.FullID, lastVersionId string, limit int) (r return vers } - curHeads := make(map[string]struct{}) for len(resp) < limit { + curHeads := make(map[string]struct{}) tree, _, e := h.treeWithId(id, lastVersionId, includeLastId) if e != nil { return nil, e @@ -141,34 +141,7 @@ func (h *history) Versions(id domain.FullID, lastVersionId string, limit int) (r e = tree.IterateFrom(tree.Root().Id, source.UnmarshalChange, func(c *objecttree.Change) (isContinue bool) { participantId := domain.NewParticipantId(id.SpaceID, c.Identity.Account()) - curHeads[c.Id] = struct{}{} - for _, previousId := range c.PreviousIds { - delete(curHeads, previousId) - } - version := &pb.RpcHistoryVersion{ - Id: c.Id, - PreviousIds: c.PreviousIds, - AuthorId: participantId, - Time: c.Timestamp, - } - if len(curHeads) > 1 { - var ( - resultHead bytes.Buffer - count int - ) - for head := range curHeads { - resultHead.WriteString(head) - count++ - if count != len(curHeads)-1 { - resultHead.WriteString(" ") - } - } - hash := md5.New() - hashSum := string(hash.Sum(resultHead.Bytes())) - h.heads[hashSum] = resultHead.String() - version.Id = hashSum - } - data = append(data, version) + data = h.fillVersionData(c, curHeads, participantId, data) return true }) if e != nil { @@ -209,6 +182,37 @@ func (h *history) Versions(id domain.FullID, lastVersionId string, limit int) (r return } +func (h *history) retrieveHeads(versionId string) []string { + if heads, ok := h.heads[versionId]; ok { + return strings.Split(heads, " ") + } + return []string{versionId} +} + +func (h *history) fillVersionData(c *objecttree.Change, curHeads map[string]struct{}, participantId string, data []*pb.RpcHistoryVersion) []*pb.RpcHistoryVersion { + curHeads[c.Id] = struct{}{} + for _, previousId := range c.PreviousIds { + delete(curHeads, previousId) + } + version := &pb.RpcHistoryVersion{ + Id: c.Id, + PreviousIds: c.PreviousIds, + AuthorId: participantId, + Time: c.Timestamp, + } + if len(curHeads) > 1 { + var combinedHeads string + for head := range curHeads { + combinedHeads += head + " " + } + combinedHeads = strings.TrimSpace(combinedHeads) + hashSum := fmt.Sprintf("%x", md5.Sum([]byte(combinedHeads))) + h.heads[hashSum] = combinedHeads + version.Id = hashSum + } + return append(data, version) +} + func (h *history) DiffVersions(req *pb.RpcHistoryDiffVersionsRequest) ([]*pb.EventMessage, *model.ObjectView, error) { id := domain.FullID{ ObjectID: req.ObjectId, @@ -484,14 +488,15 @@ func (h *history) SetVersion(id domain.FullID, versionId string) (err error) { }) } -func (h *history) treeWithId(id domain.FullID, beforeId string, includeBeforeId bool) (ht objecttree.HistoryTree, sbt smartblock.SmartBlockType, err error) { +func (h *history) treeWithId(id domain.FullID, versionId string, includeBeforeId bool) (ht objecttree.HistoryTree, sbt smartblock.SmartBlockType, err error) { + heads := h.retrieveHeads(versionId) spc, err := h.spaceService.Get(context.Background(), id.SpaceID) if err != nil { return } ht, err = spc.TreeBuilder().BuildHistoryTree(context.Background(), id.ObjectID, objecttreebuilder.HistoryTreeOpts{ - BeforeId: beforeId, - Include: includeBeforeId, + Heads: heads, + Include: includeBeforeId, }) if err != nil { return diff --git a/core/history/history_test.go b/core/history/history_test.go index 35095ff1b..7e4b78bf5 100644 --- a/core/history/history_test.go +++ b/core/history/history_test.go @@ -1010,6 +1010,7 @@ func newFixture(t *testing.T, expectedChanges []*objecttree.Change, objectId, sp history := &history{ objectStore: objectstore.NewStoreFixture(t), spaceService: spaceService, + heads: map[string]string{}, } return &historyFixture{ history: history, @@ -1035,6 +1036,7 @@ func newFixtureDiffVersions(t *testing.T, history := &history{ objectStore: objectstore.NewStoreFixture(t), spaceService: spaceService, + heads: map[string]string{}, } return &historyFixture{ history: history, @@ -1050,8 +1052,8 @@ func configureTreeBuilder(treeBuilder *mock_objecttreebuilder.MockTreeBuilder, spaceService *mock_space.MockService, ) { treeBuilder.EXPECT().BuildHistoryTree(context.Background(), objectId, objecttreebuilder.HistoryTreeOpts{ - BeforeId: currVersionId, - Include: true, + Heads: []string{currVersionId}, + Include: true, }).Return(&historyStub{ objectId: objectId, changes: expectedChanges, diff --git a/go.mod b/go.mod index 084c99fc5..fe0d0bb50 100644 --- a/go.mod +++ b/go.mod @@ -288,3 +288,5 @@ replace github.com/araddon/dateparse => github.com/mehanizm/dateparse v0.0.0-202 replace github.com/multiformats/go-multiaddr => github.com/anyproto/go-multiaddr v0.8.1-0.20221213144344-0b6b93adaec4 replace github.com/gogo/protobuf => github.com/anyproto/protobuf v1.3.3-0.20240201225420-6e325cf0ac38 + +replace github.com/anyproto/any-sync => ./../any-sync From 0ff4ae7863a704ff8ada750d632348d0eea8fbd5 Mon Sep 17 00:00:00 2001 From: Sergey Date: Wed, 14 Aug 2024 14:23:37 +0200 Subject: [PATCH 18/78] Fix file migration: move files migrated in non-personal space --- core/block/editor/files.go | 5 ++-- core/block/source/service.go | 1 + core/files/fileobject/service.go | 49 +++++++++++++++++++++++++++++++- util/debug/debug.go | 29 +++++++++++++++++++ 4 files changed, 81 insertions(+), 3 deletions(-) diff --git a/core/block/editor/files.go b/core/block/editor/files.go index 96dfa6d24..345c389c9 100644 --- a/core/block/editor/files.go +++ b/core/block/editor/files.go @@ -86,12 +86,13 @@ func (f *File) Init(ctx *smartblock.InitContext) error { f.SmartBlock.AddHook(f.reconciler.FileObjectHook(domain.FullID{SpaceID: f.SpaceID(), ObjectID: f.Id()}), smartblock.HookBeforeApply) if !ctx.IsNewObject { - err = f.fileObjectService.EnsureFileAddedToSyncQueue(domain.FullID{ObjectID: f.Id(), SpaceID: f.SpaceID()}, ctx.State.Details()) + fullId := domain.FullID{ObjectID: f.Id(), SpaceID: f.SpaceID()} + err = f.fileObjectService.EnsureFileAddedToSyncQueue(fullId, ctx.State.Details()) if err != nil { log.Errorf("failed to ensure file added to sync queue: %v", err) } f.AddHook(func(applyInfo smartblock.ApplyInfo) error { - return f.fileObjectService.EnsureFileAddedToSyncQueue(domain.FullID{ObjectID: f.Id(), SpaceID: f.SpaceID()}, applyInfo.State.Details()) + return f.fileObjectService.EnsureFileAddedToSyncQueue(fullId, applyInfo.State.Details()) }, smartblock.HookOnStateRebuild) } return nil diff --git a/core/block/source/service.go b/core/block/source/service.go index 4db5f6056..00e78695b 100644 --- a/core/block/source/service.go +++ b/core/block/source/service.go @@ -45,6 +45,7 @@ type Space interface { GetTypeIdByKey(ctx context.Context, key domain.TypeKey) (id string, err error) DeriveObjectID(ctx context.Context, uniqueKey domain.UniqueKey) (id string, err error) StoredIds() []string + IsPersonal() bool } type Service interface { diff --git a/core/files/fileobject/service.go b/core/files/fileobject/service.go index e6719bfc4..b4911f8e5 100644 --- a/core/files/fileobject/service.go +++ b/core/files/fileobject/service.go @@ -23,6 +23,7 @@ import ( "github.com/anyproto/anytype-heart/core/files" "github.com/anyproto/anytype-heart/core/files/fileoffloader" "github.com/anyproto/anytype-heart/core/filestorage/filesync" + "github.com/anyproto/anytype-heart/core/session" "github.com/anyproto/anytype-heart/core/syncstatus/filesyncstatus" "github.com/anyproto/anytype-heart/pb" "github.com/anyproto/anytype-heart/pkg/lib/bundle" @@ -80,6 +81,7 @@ type service struct { objectStore objectstore.ObjectStore spaceIdResolver idresolver.Resolver migrationQueue *persistentqueue.Queue[*migrationItem] + objectArchiver objectArchiver indexer *indexer @@ -116,6 +118,7 @@ func (s *service) Init(a *app.App) error { s.fileStore = app.MustComponent[filestore.FileStore](a) s.spaceIdResolver = app.MustComponent[idresolver.Resolver](a) s.fileOffloader = app.MustComponent[fileoffloader.Service](a) + s.objectArchiver = app.MustComponent[objectArchiver](a) cfg := app.MustComponent[configProvider](a) s.indexer = s.newIndexer() @@ -141,7 +144,11 @@ func (s *service) Init(a *app.App) error { func (s *service) Run(_ context.Context) error { go func() { - err := s.ensureNotSyncedFilesAddedToQueue() + err := s.deleteMigratedFilesInNonPersonalSpaces(context.Background()) + if err != nil { + log.Errorf("delete migrated files in non personal spaces: %v", err) + } + err = s.ensureNotSyncedFilesAddedToQueue() if err != nil { log.Errorf("ensure not synced files added to queue: %v", err) } @@ -151,6 +158,46 @@ func (s *service) Run(_ context.Context) error { return nil } +type objectArchiver interface { + SetPagesIsArchived(ctx session.Context, req pb.RpcObjectListSetIsArchivedRequest) error +} + +func (s *service) deleteMigratedFilesInNonPersonalSpaces(ctx context.Context) error { + personalSpace, err := s.spaceService.GetPersonalSpace(ctx) + if err != nil { + return err + } + + objectIds, _, err := s.objectStore.QueryObjectIDs(database.Query{ + Filters: []*model.BlockContentDataviewFilter{ + { + RelationKey: bundle.RelationKeyFileId.String(), + Condition: model.BlockContentDataviewFilter_NotEmpty, + }, + { + RelationKey: bundle.RelationKeyUniqueKey.String(), + Condition: model.BlockContentDataviewFilter_NotEmpty, + }, + { + RelationKey: bundle.RelationKeySpaceId.String(), + Condition: model.BlockContentDataviewFilter_NotEqual, + Value: pbtypes.String(personalSpace.Id()), + }, + }, + }) + if len(objectIds) > 0 { + err = s.objectArchiver.SetPagesIsArchived(nil, pb.RpcObjectListSetIsArchivedRequest{ + ObjectIds: objectIds, + IsArchived: true, + }) + if err != nil { + return err + } + } + + return nil +} + // After migrating to new sync queue we need to ensure that all not synced files are added to the queue func (s *service) ensureNotSyncedFilesAddedToQueue() error { records, err := s.objectStore.Query(database.Query{ diff --git a/util/debug/debug.go b/util/debug/debug.go index f69dbd3f1..ef991afec 100644 --- a/util/debug/debug.go +++ b/util/debug/debug.go @@ -21,6 +21,35 @@ var ( addressPattern = regexp.MustCompile(`\+?0x[0-9a-z]*`) ) +func InlineCallStack() string { + // Allocate space for the call stack + var pcs [32]uintptr + + // Skip 3 frames: runtime.Callers, printStack, and the function calling printStack + n := runtime.Callers(2, pcs[:]) + + // Get the stack frames + frames := runtime.CallersFrames(pcs[:n]) + + var sep string + buf := &strings.Builder{} + // Iterate through the frames and print them + for { + frame, more := frames.Next() + buf.WriteString(sep) + sep = " -> " + buf.WriteString(frame.Function) + buf.WriteString(" ") + buf.WriteString(frame.File) + buf.WriteString(":") + buf.WriteString(fmt.Sprintf("%d", frame.Line)) + if !more { + break + } + } + return buf.String() +} + func ParseGoroutinesDump(trace string, pattern string) string { var sb strings.Builder From 5aeada9ea1e64db153f42f589e5be89b1a51bdfb Mon Sep 17 00:00:00 2001 From: Sergey Date: Wed, 14 Aug 2024 14:28:55 +0200 Subject: [PATCH 19/78] Fix after merge --- core/block/source/service.go | 1 - 1 file changed, 1 deletion(-) diff --git a/core/block/source/service.go b/core/block/source/service.go index 058d3c1fb..00e78695b 100644 --- a/core/block/source/service.go +++ b/core/block/source/service.go @@ -40,7 +40,6 @@ type accountService interface { type Space interface { Id() string - IsPersonal() bool TreeBuilder() objecttreebuilder.TreeBuilder GetRelationIdByKey(ctx context.Context, key domain.RelationKey) (id string, err error) GetTypeIdByKey(ctx context.Context, key domain.TypeKey) (id string, err error) From bfa6d33966fcaf1cd94d1af41023978e05953dc7 Mon Sep 17 00:00:00 2001 From: AnastasiaShemyakinskaya Date: Wed, 14 Aug 2024 14:54:28 +0200 Subject: [PATCH 20/78] GO-3273: add test Signed-off-by: AnastasiaShemyakinskaya --- core/history/history_test.go | 105 +++++++++++++++++++++++++++++++++++ 1 file changed, 105 insertions(+) diff --git a/core/history/history_test.go b/core/history/history_test.go index 7e4b78bf5..7c6315e97 100644 --- a/core/history/history_test.go +++ b/core/history/history_test.go @@ -990,6 +990,111 @@ func TestHistory_Versions(t *testing.T) { assert.Nil(t, err) assert.Len(t, resp, 0) }) + t.Run("changes from parallel editing", func(t *testing.T) { + // given + objectId := "objectId" + spaceID := "spaceID" + versionId := "versionId" + + accountKeys, _ := accountdata.NewRandom() + account := accountKeys.SignKey.GetPublic() + + ch := &objecttree.Change{ + Id: "id", + PreviousIds: []string{"id2"}, + Identity: account, + Model: &pb.Change{ + Content: []*pb.ChangeContent{ + { + Value: &pb.ChangeContentValueOfBlockUpdate{ + BlockUpdate: &pb.ChangeBlockUpdate{ + Events: []*pb.EventMessage{ + { + Value: &pb.EventMessageValueOfBlockSetText{ + BlockSetText: &pb.EventBlockSetText{ + Id: "blockId", + Text: &pb.EventBlockSetTextText{ + Value: "new text", + }, + }, + }, + }, + }, + }, + }, + }, + }, + }, + } + + ch1 := &objecttree.Change{ + Identity: account, + Id: "id1", + PreviousIds: []string{"id2"}, + Model: &pb.Change{ + Content: []*pb.ChangeContent{ + { + Value: &pb.ChangeContentValueOfBlockUpdate{ + BlockUpdate: &pb.ChangeBlockUpdate{ + Events: []*pb.EventMessage{ + { + Value: &pb.EventMessageValueOfBlockSetText{ + BlockSetText: &pb.EventBlockSetText{ + Id: "blockId", + Text: &pb.EventBlockSetTextText{ + Value: "some text", + }, + }, + }, + }, + }, + }, + }, + }, + }, + }, + } + + ch2 := &objecttree.Change{ + Id: "id2", + Identity: account, + Model: &pb.Change{ + Content: []*pb.ChangeContent{ + { + Value: &pb.ChangeContentValueOfBlockUpdate{ + BlockUpdate: &pb.ChangeBlockUpdate{ + Events: []*pb.EventMessage{ + { + Value: &pb.EventMessageValueOfBlockSetText{ + BlockSetText: &pb.EventBlockSetText{ + Id: "blockId", + Text: &pb.EventBlockSetTextText{ + Value: "new text some text", + }, + }, + }, + }, + }, + }, + }, + }, + }, + }, + } + + currChange := []*objecttree.Change{ + ch2, ch, ch1, + } + + history := newFixture(t, currChange, objectId, spaceID, versionId) + + // when + resp, err := history.Versions(domain.FullID{ObjectID: objectId, SpaceID: spaceID}, versionId, 10) + + // then + assert.Nil(t, err) + assert.Len(t, resp, 3) + }) } type historyFixture struct { From 970d475d7e32194079d87d6dc5109b372d1a4bb7 Mon Sep 17 00:00:00 2001 From: AnastasiaShemyakinskaya Date: Wed, 14 Aug 2024 15:06:16 +0200 Subject: [PATCH 21/78] GO-3273: fix Signed-off-by: AnastasiaShemyakinskaya --- go.mod | 2 -- 1 file changed, 2 deletions(-) diff --git a/go.mod b/go.mod index fe0d0bb50..084c99fc5 100644 --- a/go.mod +++ b/go.mod @@ -288,5 +288,3 @@ replace github.com/araddon/dateparse => github.com/mehanizm/dateparse v0.0.0-202 replace github.com/multiformats/go-multiaddr => github.com/anyproto/go-multiaddr v0.8.1-0.20221213144344-0b6b93adaec4 replace github.com/gogo/protobuf => github.com/anyproto/protobuf v1.3.3-0.20240201225420-6e325cf0ac38 - -replace github.com/anyproto/any-sync => ./../any-sync From e2b8fe6962ac2db978759d2ff1e7ad0dce6182c0 Mon Sep 17 00:00:00 2001 From: AnastasiaShemyakinskaya Date: Wed, 14 Aug 2024 15:10:56 +0200 Subject: [PATCH 22/78] GO-3273: update naming Signed-off-by: AnastasiaShemyakinskaya --- core/history/history.go | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/core/history/history.go b/core/history/history.go index 32d2583e2..dd1f0fde7 100644 --- a/core/history/history.go +++ b/core/history/history.go @@ -189,16 +189,16 @@ func (h *history) retrieveHeads(versionId string) []string { return []string{versionId} } -func (h *history) fillVersionData(c *objecttree.Change, curHeads map[string]struct{}, participantId string, data []*pb.RpcHistoryVersion) []*pb.RpcHistoryVersion { - curHeads[c.Id] = struct{}{} - for _, previousId := range c.PreviousIds { +func (h *history) fillVersionData(change *objecttree.Change, curHeads map[string]struct{}, participantId string, data []*pb.RpcHistoryVersion) []*pb.RpcHistoryVersion { + curHeads[change.Id] = struct{}{} + for _, previousId := range change.PreviousIds { delete(curHeads, previousId) } version := &pb.RpcHistoryVersion{ - Id: c.Id, - PreviousIds: c.PreviousIds, + Id: change.Id, + PreviousIds: change.PreviousIds, AuthorId: participantId, - Time: c.Timestamp, + Time: change.Timestamp, } if len(curHeads) > 1 { var combinedHeads string From a40b85d2c1a556ab75963a3cde8fb3a79d5c4d39 Mon Sep 17 00:00:00 2001 From: kirillston Date: Wed, 14 Aug 2024 16:49:23 +0300 Subject: [PATCH 23/78] GO-3923 Include images in links --- core/block/editor/smartblock/links.go | 93 +------- core/block/editor/smartblock/smartblock.go | 8 +- .../object/objectlink/dependent_objects.go | 213 +++++++++++------- .../objectlink/dependent_objects_test.go | 54 +++-- core/converter/dot/dot.go | 7 +- core/converter/graphjson/graphjson.go | 7 +- core/history/history.go | 14 +- 7 files changed, 213 insertions(+), 183 deletions(-) diff --git a/core/block/editor/smartblock/links.go b/core/block/editor/smartblock/links.go index efc09dcb5..9750f456b 100644 --- a/core/block/editor/smartblock/links.go +++ b/core/block/editor/smartblock/links.go @@ -1,14 +1,9 @@ package smartblock import ( - "context" - - "github.com/samber/lo" - "github.com/anyproto/anytype-heart/core/block/editor/state" - "github.com/anyproto/anytype-heart/core/block/editor/template" + "github.com/anyproto/anytype-heart/core/block/object/objectlink" "github.com/anyproto/anytype-heart/core/block/simple" - "github.com/anyproto/anytype-heart/core/domain" "github.com/anyproto/anytype-heart/pb" "github.com/anyproto/anytype-heart/pkg/lib/bundle" "github.com/anyproto/anytype-heart/pkg/lib/pb/model" @@ -27,86 +22,20 @@ func (sb *smartBlock) updateBackLinks(s *state.State) { } func (sb *smartBlock) injectLinksDetails(s *state.State) { - links := sb.navigationalLinks(s) + links := objectlink.DependentObjectIDs(s, sb.Space(), objectlink.Flags{ + Blocks: true, + Details: true, + Relations: sb.includeRelationObjectsAsDependents, + Types: false, + Collection: !internalflag.NewFromState(s).Has(model.InternalFlag_collectionDontIndexLinks), + DataviewBlockOnlyTarget: true, + NoSystemRelations: true, + NoHiddenBundledRelations: true, + }) links = slice.RemoveMut(links, sb.Id()) s.SetLocalDetail(bundle.RelationKeyLinks.String(), pbtypes.StringList(links)) } -func (sb *smartBlock) navigationalLinks(s *state.State) (ids []string) { - if !internalflag.NewFromState(s).Has(model.InternalFlag_collectionDontIndexLinks) { - // flag used when importing a large set of objects - ids = append(ids, s.GetStoreSlice(template.CollectionStoreKey)...) - } - - ids = append(ids, collectBlockLinks(s)...) - ids = append(ids, sb.collectRelationLinks(s)...) - - return lo.Uniq(ids) -} - -func collectBlockLinks(s *state.State) (ids []string) { - err := s.Iterate(func(b simple.Block) (isContinue bool) { - if f := b.Model().GetFile(); f != nil { - if f.TargetObjectId != "" && f.Type != model.BlockContentFile_Image { - ids = append(ids, f.TargetObjectId) - } - return true - } - // Include only link to target object - if dv := b.Model().GetDataview(); dv != nil { - if dv.TargetObjectId != "" { - ids = append(ids, dv.TargetObjectId) - } - - return true - } - - if ls, ok := b.(linkSource); ok { - ids = ls.FillSmartIds(ids) - } - return true - }) - if err != nil { - log.With("objectID", s.RootId()).Errorf("failed to iterate over simple blocks: %s", err) - } - return -} - -func (sb *smartBlock) collectRelationLinks(s *state.State) (ids []string) { - det := s.CombinedDetails() - includeRelations := sb.includeRelationObjectsAsDependents - - for _, rel := range s.GetRelationLinks() { - if includeRelations { - relId, err := sb.space.GetRelationIdByKey(context.TODO(), domain.RelationKey(rel.Key)) - if err != nil { - log.With("objectID", s.RootId()).Errorf("failed to derive object id for relation: %s", err) - continue - } - ids = append(ids, relId) - } - - // handle corner cases: first for specific formats and system relations - if rel.Format != model.RelationFormat_object || bundle.IsSystemRelation(domain.RelationKey(rel.Key)) { - continue - } - - // Do not include hidden relations. Only bundled relations can be hidden, so we don't need - // to request relations from object store. - if r, err := bundle.GetRelation(domain.RelationKey(rel.Key)); err == nil && r.Hidden { - continue - } - - // Add all object relation values as dependents - for _, targetID := range pbtypes.GetStringList(det, rel.Key) { - if targetID != "" { - ids = append(ids, targetID) - } - } - } - return -} - func isBacklinksChanged(msgs []simple.EventMessage) bool { for _, msg := range msgs { if amend, ok := msg.Msg.Value.(*pb.EventMessageValueOfObjectDetailsAmend); ok { diff --git a/core/block/editor/smartblock/smartblock.go b/core/block/editor/smartblock/smartblock.go index 9e76e4426..68007cf2b 100644 --- a/core/block/editor/smartblock/smartblock.go +++ b/core/block/editor/smartblock/smartblock.go @@ -543,7 +543,13 @@ func (sb *smartBlock) onMetaChange(details *types.Struct) { // dependentSmartIds returns list of dependent objects in this order: Simple blocks(Link, mentions in Text), Relations. Both of them are returned in the order of original blocks/relations func (sb *smartBlock) dependentSmartIds(includeRelations, includeObjTypes, includeCreatorModifier bool) (ids []string) { - return objectlink.DependentObjectIDs(sb.Doc.(*state.State), sb.Space(), true, true, includeRelations, includeObjTypes, includeCreatorModifier) + return objectlink.DependentObjectIDs(sb.Doc.(*state.State), sb.Space(), objectlink.Flags{ + Blocks: true, + Details: true, + Relations: includeRelations, + Types: includeObjTypes, + CreatorModifierWorkspace: includeCreatorModifier, + }) } func (sb *smartBlock) RegisterSession(ctx session.Context) { diff --git a/core/block/object/objectlink/dependent_objects.go b/core/block/object/objectlink/dependent_objects.go index 96a548c41..ee1755f85 100644 --- a/core/block/object/objectlink/dependent_objects.go +++ b/core/block/object/objectlink/dependent_objects.go @@ -9,6 +9,7 @@ import ( "github.com/samber/lo" "github.com/anyproto/anytype-heart/core/block/editor/state" + "github.com/anyproto/anytype-heart/core/block/editor/template" "github.com/anyproto/anytype-heart/core/block/simple" "github.com/anyproto/anytype-heart/core/domain" "github.com/anyproto/anytype-heart/pkg/lib/bundle" @@ -30,42 +31,34 @@ type linkSource interface { HasSmartIds() bool } -func DependentObjectIDs(s *state.State, converter KeyToIDConverter, blocks, details, relations, objTypes, creatorModifierWorkspace bool) (ids []string) { - if blocks { - err := s.Iterate(func(b simple.Block) (isContinue bool) { - if ls, ok := b.(linkSource); ok { - ids = ls.FillSmartIds(ids) - } - return true - }) - if err != nil { - log.With("objectID", s.RootId()).Errorf("failed to iterate over simple blocks: %s", err) - } +type Flags struct { + Blocks, + Details, + Relations, + Types, + Collection, + CreatorModifierWorkspace, + DataviewBlockOnlyTarget, + NoSystemRelations, + NoHiddenBundledRelations bool +} + +func DependentObjectIDs(s *state.State, converter KeyToIDConverter, flags Flags) (ids []string) { + if flags.Blocks { + ids = collectIdsFromBlocks(s, flags) } - if objTypes { - for _, objectTypeKey := range s.ObjectTypeKeys() { - if objectTypeKey == "" { // TODO is it possible? - log.Errorf("sb %s has empty ot", s.RootId()) - continue - } - id, err := converter.GetTypeIdByKey(context.Background(), objectTypeKey) - if err != nil { - log.With("objectID", s.RootId()).Errorf("failed to get object type id by key %s: %s", objectTypeKey, err) - continue - } - ids = append(ids, id) - } + if flags.Types { + ids = append(ids, collectIdsFromTypes(s, converter)...) } var det *types.Struct - if details { + if flags.Details { det = s.CombinedDetails() } for _, rel := range s.GetRelationLinks() { - // do not index local dates such as lastOpened/lastModified - if relations { + if flags.Relations { id, err := converter.GetRelationIdByKey(context.Background(), domain.RelationKey(rel.Key)) if err != nil { log.With("objectID", s.RootId()).Errorf("failed to get relation id by key %s: %s", rel.Key, err) @@ -74,65 +67,125 @@ func DependentObjectIDs(s *state.State, converter KeyToIDConverter, blocks, deta ids = append(ids, id) } - if !details { + if !flags.Details { continue } - // handle corner cases first for specific formats - if rel.Format == model.RelationFormat_date && - !lo.Contains(bundle.LocalAndDerivedRelationKeys, rel.Key) { - relInt := pbtypes.GetInt64(det, rel.Key) - if relInt > 0 { - t := time.Unix(relInt, 0) - t = t.In(time.Local) - ids = append(ids, addr.TimeToID(t)) - } - continue - } + ids = append(ids, collectIdsFromDetail(rel, det, flags)...) + } - if rel.Key == bundle.RelationKeyCreator.String() || - rel.Key == bundle.RelationKeyLastModifiedBy.String() { - if creatorModifierWorkspace { - v := pbtypes.GetString(det, rel.Key) - ids = append(ids, v) - } - continue - } - - if rel.Key == bundle.RelationKeyId.String() || - rel.Key == bundle.RelationKeyLinks.String() || - rel.Key == bundle.RelationKeyType.String() || // always skip type because it was proceed above - rel.Key == bundle.RelationKeyFeaturedRelations.String() { - continue - } - - if rel.Key == bundle.RelationKeyCoverId.String() { - v := pbtypes.GetString(det, rel.Key) - _, err := cid.Decode(v) - if err != nil { - // this is an exception cause coverId can contains not a file hash but color - continue - } - ids = append(ids, v) - } - - if rel.Format != model.RelationFormat_object && - rel.Format != model.RelationFormat_file && - rel.Format != model.RelationFormat_status && - rel.Format != model.RelationFormat_tag { - continue - } - - // add all object relation values as dependents - for _, targetID := range pbtypes.GetStringList(det, rel.Key) { - if targetID == "" { - continue - } - - ids = append(ids, targetID) - } + if flags.Collection { + ids = append(ids, s.GetStoreSlice(template.CollectionStoreKey)...) } ids = lo.Uniq(ids) return } + +func collectIdsFromBlocks(s *state.State, flags Flags) (ids []string) { + err := s.Iterate(func(b simple.Block) (isContinue bool) { + if flags.DataviewBlockOnlyTarget { + dv := b.Model().GetDataview() + if dv != nil { + if dv.TargetObjectId != "" { + ids = append(ids, dv.TargetObjectId) + } + return true + } + } + + if ls, ok := b.(linkSource); ok { + ids = ls.FillSmartIds(ids) + } + return true + }) + if err != nil { + log.With("objectID", s.RootId()).Errorf("failed to iterate over simple blocks: %s", err) + } + return ids +} + +func collectIdsFromTypes(s *state.State, converter KeyToIDConverter) (ids []string) { + for _, objectTypeKey := range s.ObjectTypeKeys() { + if objectTypeKey == "" { // TODO is it possible? + log.Errorf("sb %s has empty ot", s.RootId()) + continue + } + id, err := converter.GetTypeIdByKey(context.Background(), objectTypeKey) + if err != nil { + log.With("objectID", s.RootId()).Errorf("failed to get object type id by key %s: %s", objectTypeKey, err) + continue + } + ids = append(ids, id) + } + return ids +} + +func collectIdsFromDetail(rel *model.RelationLink, det *types.Struct, flags Flags) (ids []string) { + if flags.NoSystemRelations { + if rel.Format != model.RelationFormat_object || bundle.IsSystemRelation(domain.RelationKey(rel.Key)) { + return + } + } + + if flags.NoHiddenBundledRelations { + // Only bundled relations can be hidden, so we don't need to request relations from object store. + if r, err := bundle.GetRelation(domain.RelationKey(rel.Key)); err == nil && r.Hidden { + return + } + } + + // handle corner cases first for specific formats + if rel.Format == model.RelationFormat_date && + !lo.Contains(bundle.LocalAndDerivedRelationKeys, rel.Key) { + relInt := pbtypes.GetInt64(det, rel.Key) + if relInt > 0 { + t := time.Unix(relInt, 0) + t = t.In(time.Local) + ids = append(ids, addr.TimeToID(t)) + } + return + } + + if rel.Key == bundle.RelationKeyCreator.String() || + rel.Key == bundle.RelationKeyLastModifiedBy.String() { + if flags.CreatorModifierWorkspace { + v := pbtypes.GetString(det, rel.Key) + ids = append(ids, v) + } + return + } + + if rel.Key == bundle.RelationKeyId.String() || + rel.Key == bundle.RelationKeyLinks.String() || + rel.Key == bundle.RelationKeyType.String() || // always skip type because it was processed before + rel.Key == bundle.RelationKeyFeaturedRelations.String() { + return + } + + if rel.Key == bundle.RelationKeyCoverId.String() { + v := pbtypes.GetString(det, rel.Key) + _, err := cid.Decode(v) + if err != nil { + // this is an exception cause coverId can contain not a file hash but color + return + } + ids = append(ids, v) + } + + if rel.Format != model.RelationFormat_object && + rel.Format != model.RelationFormat_file && + rel.Format != model.RelationFormat_status && + rel.Format != model.RelationFormat_tag { + return + } + + // add all object relation values as dependents + for _, targetID := range pbtypes.GetStringList(det, rel.Key) { + if targetID != "" { + ids = append(ids, targetID) + } + } + + return ids +} diff --git a/core/block/object/objectlink/dependent_objects_test.go b/core/block/object/objectlink/dependent_objects_test.go index e014cb7f9..841d744e6 100644 --- a/core/block/object/objectlink/dependent_objects_test.go +++ b/core/block/object/objectlink/dependent_objects_test.go @@ -76,13 +76,13 @@ func TestState_DepSmartIdsLinks(t *testing.T) { }).(*state.State) converter := &fakeConverter{} - t.Run("all options are turned off", func(t *testing.T) { - objectIDs := DependentObjectIDs(stateWithLinks, converter, true, false, false, false, false) + t.Run("block option is turned on: get ids from blocks", func(t *testing.T) { + objectIDs := DependentObjectIDs(stateWithLinks, converter, Flags{Blocks: true}) assert.Len(t, objectIDs, 4) }) - t.Run("block option is turned on: get ids from blocks", func(t *testing.T) { - objectIDs := DependentObjectIDs(stateWithLinks, converter, false, false, false, false, false) + t.Run("all options are turned off", func(t *testing.T) { + objectIDs := DependentObjectIDs(stateWithLinks, converter, Flags{}) assert.Len(t, objectIDs, 0) }) } @@ -92,7 +92,7 @@ func TestState_DepSmartIdsLinksAndRelations(t *testing.T) { stateWithLinks := state.NewDoc("root", map[string]simple.Block{ "root": simple.New(&model.Block{ Id: "root", - ChildrenIds: []string{"childBlock", "childBlock2", "childBlock3"}, + ChildrenIds: []string{"childBlock", "childBlock2", "childBlock3", "dataview", "image"}, }), "childBlock": simple.New(&model.Block{Id: "childBlock", Content: &model.BlockContentOfText{ @@ -129,6 +129,23 @@ func TestState_DepSmartIdsLinksAndRelations(t *testing.T) { TargetBlockId: "objectID4", }, }}), + "dataview": simple.New(&model.Block{Id: "dataview", + Content: &model.BlockContentOfDataview{ + Dataview: &model.BlockContentDataview{ + Views: []*model.BlockContentDataviewView{{ + Id: "Today's tasks", + DefaultObjectTypeId: "task", + DefaultTemplateId: "Task with a picture", + }}, + TargetObjectId: "taskTracker", + }, + }}), + "image": simple.New(&model.Block{Id: "image", + Content: &model.BlockContentOfFile{ + File: &model.BlockContentFile{ + TargetObjectId: "image with cute kitten", + }, + }}), }).(*state.State) converter := &fakeConverter{} @@ -153,13 +170,18 @@ func TestState_DepSmartIdsLinksAndRelations(t *testing.T) { stateWithLinks.AddRelationLinks(relations...) t.Run("blocks option is turned on: get ids from blocks", func(t *testing.T) { - objectIDs := DependentObjectIDs(stateWithLinks, converter, true, false, false, false, false) - assert.Len(t, objectIDs, 4) + objectIDs := DependentObjectIDs(stateWithLinks, converter, Flags{Blocks: true}) + assert.Len(t, objectIDs, 8) + }) + + t.Run("dataview only target option is turned on: get only target from blocks", func(t *testing.T) { + objectIDs := DependentObjectIDs(stateWithLinks, converter, Flags{Blocks: true, DataviewBlockOnlyTarget: true}) + assert.Len(t, objectIDs, 6) }) t.Run("blocks option and relations options are turned on: get ids from blocks and relations", func(t *testing.T) { - objectIDs := DependentObjectIDs(stateWithLinks, converter, true, false, true, false, false) - assert.Len(t, objectIDs, 8) // 4 links + 4 relations + objectIDs := DependentObjectIDs(stateWithLinks, converter, Flags{Blocks: true, Relations: true}) + assert.Len(t, objectIDs, 12) // 8 links + 4 relations }) } @@ -238,15 +260,15 @@ func TestState_DepSmartIdsLinksDetailsAndRelations(t *testing.T) { stateWithLinks.SetDetail("relation5", pbtypes.Int64(time.Now().Unix())) t.Run("blocks option is turned on: get ids from blocks", func(t *testing.T) { - objectIDs := DependentObjectIDs(stateWithLinks, converter, true, false, false, false, false) + objectIDs := DependentObjectIDs(stateWithLinks, converter, Flags{Blocks: true}) assert.Len(t, objectIDs, 4) // links }) t.Run("blocks option and relations option are turned on: get ids from blocks and relations", func(t *testing.T) { - objectIDs := DependentObjectIDs(stateWithLinks, converter, true, false, true, false, false) + objectIDs := DependentObjectIDs(stateWithLinks, converter, Flags{Blocks: true, Relations: true}) assert.Len(t, objectIDs, 9) // 4 links + 5 relations }) t.Run("blocks, relations and details option are turned on: get ids from blocks, relations and details", func(t *testing.T) { - objectIDs := DependentObjectIDs(stateWithLinks, converter, true, true, true, false, false) + objectIDs := DependentObjectIDs(stateWithLinks, converter, Flags{Blocks: true, Relations: true, Details: true}) assert.Len(t, objectIDs, 14) // 4 links + 5 relations + 3 options + 1 fileID + 1 date }) } @@ -280,12 +302,12 @@ func TestState_DepSmartIdsLinksCreatorModifierWorkspace(t *testing.T) { converter := &fakeConverter{} t.Run("details option is turned on: get ids only from details", func(t *testing.T) { - objectIDs := DependentObjectIDs(stateWithLinks, converter, false, true, false, false, true) + objectIDs := DependentObjectIDs(stateWithLinks, converter, Flags{Details: true, CreatorModifierWorkspace: true}) assert.Len(t, objectIDs, 3) // creator + lastModifiedBy + 1 date }) t.Run("details and relations options are turned on: get ids from details and relations", func(t *testing.T) { - objectIDs := DependentObjectIDs(stateWithLinks, converter, false, true, true, false, true) + objectIDs := DependentObjectIDs(stateWithLinks, converter, Flags{Details: true, Relations: true, CreatorModifierWorkspace: true}) assert.Len(t, objectIDs, 7) // 4 relations + creator + lastModifiedBy + 1 date }) } @@ -297,11 +319,11 @@ func TestState_DepSmartIdsObjectTypes(t *testing.T) { converter := &fakeConverter{} t.Run("all options are turned off", func(t *testing.T) { - objectIDs := DependentObjectIDs(stateWithLinks, converter, false, false, false, false, false) + objectIDs := DependentObjectIDs(stateWithLinks, converter, Flags{}) assert.Len(t, objectIDs, 0) }) t.Run("objTypes option is turned on, get only object types id", func(t *testing.T) { - objectIDs := DependentObjectIDs(stateWithLinks, converter, false, false, false, true, false) + objectIDs := DependentObjectIDs(stateWithLinks, converter, Flags{Types: true}) assert.Equal(t, []string{ fakeDerivedID(bundle.TypeKeyPage.String()), }, objectIDs) diff --git a/core/converter/dot/dot.go b/core/converter/dot/dot.go index 88ca2fac3..7c42a9b81 100644 --- a/core/converter/dot/dot.go +++ b/core/converter/dot/dot.go @@ -117,7 +117,12 @@ func (d *dot) Add(space smartblock.Space, st *state.State) error { // TODO: add relations - dependentObjectIDs := objectlink.DependentObjectIDs(st, space, true, true, false, false, false) + dependentObjectIDs := objectlink.DependentObjectIDs(st, space, objectlink.Flags{ + Blocks: true, + Details: true, + Relations: false, + Types: false, + }) for _, depID := range dependentObjectIDs { t, err := d.sbtProvider.Type(st.SpaceID(), depID) if err != nil { diff --git a/core/converter/graphjson/graphjson.go b/core/converter/graphjson/graphjson.go index 96b6e8247..ab731064c 100644 --- a/core/converter/graphjson/graphjson.go +++ b/core/converter/graphjson/graphjson.go @@ -93,7 +93,12 @@ func (g *graphjson) Add(space smartblock.Space, st *state.State) error { g.nodes[st.RootId()] = &n // TODO: add relations - dependentObjectIDs := objectlink.DependentObjectIDs(st, space, true, true, false, false, false) + dependentObjectIDs := objectlink.DependentObjectIDs(st, space, objectlink.Flags{ + Blocks: true, + Details: true, + Relations: false, + Types: false, + }) for _, depID := range dependentObjectIDs { t, err := g.sbtProvider.Type(st.SpaceID(), depID) if err != nil { diff --git a/core/history/history.go b/core/history/history.go index e8a83743c..9a1888463 100644 --- a/core/history/history.go +++ b/core/history/history.go @@ -84,7 +84,12 @@ func (h *history) Show(id domain.FullID, versionID string) (bs *model.ObjectView } s.SetDetailAndBundledRelation(bundle.RelationKeyType, pbtypes.String(typeId)) - dependentObjectIDs := objectlink.DependentObjectIDs(s, space, true, true, false, true, false) + dependentObjectIDs := objectlink.DependentObjectIDs(s, space, objectlink.Flags{ + Blocks: true, + Details: true, + Relations: false, + Types: true, + }) // nolint:errcheck meta, _ := h.objectStore.QueryByID(dependentObjectIDs) @@ -207,7 +212,12 @@ func (h *history) DiffVersions(req *pb.RpcHistoryDiffVersionsRequest) ([]*pb.Eve if err != nil { return nil, nil, fmt.Errorf("get space: %w", err) } - dependentObjectIDs := objectlink.DependentObjectIDs(currState, spc, true, true, false, true, false) + dependentObjectIDs := objectlink.DependentObjectIDs(currState, spc, objectlink.Flags{ + Blocks: true, + Details: true, + Relations: false, + Types: true, + }) meta, err := h.objectStore.QueryByID(dependentObjectIDs) if err != nil { return nil, nil, fmt.Errorf("get dependencies: %w", err) From 9a03ebb7204eab6c9e17e6786a4ea389921bfc5b Mon Sep 17 00:00:00 2001 From: kirillston Date: Wed, 14 Aug 2024 17:23:04 +0300 Subject: [PATCH 24/78] GO-3923 Exclude images from links --- core/block/editor/smartblock/links.go | 1 + .../object/objectlink/dependent_objects.go | 15 ++++++++++--- .../objectlink/dependent_objects_test.go | 21 +++++++++++++++---- 3 files changed, 30 insertions(+), 7 deletions(-) diff --git a/core/block/editor/smartblock/links.go b/core/block/editor/smartblock/links.go index 9750f456b..310d4123d 100644 --- a/core/block/editor/smartblock/links.go +++ b/core/block/editor/smartblock/links.go @@ -31,6 +31,7 @@ func (sb *smartBlock) injectLinksDetails(s *state.State) { DataviewBlockOnlyTarget: true, NoSystemRelations: true, NoHiddenBundledRelations: true, + NoImages: true, }) links = slice.RemoveMut(links, sb.Id()) s.SetLocalDetail(bundle.RelationKeyLinks.String(), pbtypes.StringList(links)) diff --git a/core/block/object/objectlink/dependent_objects.go b/core/block/object/objectlink/dependent_objects.go index ee1755f85..9770175d8 100644 --- a/core/block/object/objectlink/dependent_objects.go +++ b/core/block/object/objectlink/dependent_objects.go @@ -40,7 +40,8 @@ type Flags struct { CreatorModifierWorkspace, DataviewBlockOnlyTarget, NoSystemRelations, - NoHiddenBundledRelations bool + NoHiddenBundledRelations, + NoImages bool } func DependentObjectIDs(s *state.State, converter KeyToIDConverter, flags Flags) (ids []string) { @@ -85,8 +86,7 @@ func DependentObjectIDs(s *state.State, converter KeyToIDConverter, flags Flags) func collectIdsFromBlocks(s *state.State, flags Flags) (ids []string) { err := s.Iterate(func(b simple.Block) (isContinue bool) { if flags.DataviewBlockOnlyTarget { - dv := b.Model().GetDataview() - if dv != nil { + if dv := b.Model().GetDataview(); dv != nil { if dv.TargetObjectId != "" { ids = append(ids, dv.TargetObjectId) } @@ -94,6 +94,15 @@ func collectIdsFromBlocks(s *state.State, flags Flags) (ids []string) { } } + if flags.NoImages { + if f := b.Model().GetFile(); f != nil { + if f.TargetObjectId != "" && f.Type != model.BlockContentFile_Image { + ids = append(ids, f.TargetObjectId) + } + return true + } + } + if ls, ok := b.(linkSource); ok { ids = ls.FillSmartIds(ids) } diff --git a/core/block/object/objectlink/dependent_objects_test.go b/core/block/object/objectlink/dependent_objects_test.go index 841d744e6..032292d2c 100644 --- a/core/block/object/objectlink/dependent_objects_test.go +++ b/core/block/object/objectlink/dependent_objects_test.go @@ -92,7 +92,7 @@ func TestState_DepSmartIdsLinksAndRelations(t *testing.T) { stateWithLinks := state.NewDoc("root", map[string]simple.Block{ "root": simple.New(&model.Block{ Id: "root", - ChildrenIds: []string{"childBlock", "childBlock2", "childBlock3", "dataview", "image"}, + ChildrenIds: []string{"childBlock", "childBlock2", "childBlock3", "dataview", "image", "song"}, }), "childBlock": simple.New(&model.Block{Id: "childBlock", Content: &model.BlockContentOfText{ @@ -144,6 +144,14 @@ func TestState_DepSmartIdsLinksAndRelations(t *testing.T) { Content: &model.BlockContentOfFile{ File: &model.BlockContentFile{ TargetObjectId: "image with cute kitten", + Type: model.BlockContentFile_Image, + }, + }}), + "song": simple.New(&model.Block{Id: "song", + Content: &model.BlockContentOfFile{ + File: &model.BlockContentFile{ + TargetObjectId: "Let it be", + Type: model.BlockContentFile_Audio, }, }}), }).(*state.State) @@ -171,17 +179,22 @@ func TestState_DepSmartIdsLinksAndRelations(t *testing.T) { t.Run("blocks option is turned on: get ids from blocks", func(t *testing.T) { objectIDs := DependentObjectIDs(stateWithLinks, converter, Flags{Blocks: true}) - assert.Len(t, objectIDs, 8) + assert.Len(t, objectIDs, 9) }) t.Run("dataview only target option is turned on: get only target from blocks", func(t *testing.T) { objectIDs := DependentObjectIDs(stateWithLinks, converter, Flags{Blocks: true, DataviewBlockOnlyTarget: true}) - assert.Len(t, objectIDs, 6) + assert.Len(t, objectIDs, 7) + }) + + t.Run("no images option is turned on: get ids from blocks except images", func(t *testing.T) { + objectIDs := DependentObjectIDs(stateWithLinks, converter, Flags{Blocks: true, NoImages: true}) + assert.Len(t, objectIDs, 8) }) t.Run("blocks option and relations options are turned on: get ids from blocks and relations", func(t *testing.T) { objectIDs := DependentObjectIDs(stateWithLinks, converter, Flags{Blocks: true, Relations: true}) - assert.Len(t, objectIDs, 12) // 8 links + 4 relations + assert.Len(t, objectIDs, 13) // 9 links + 4 relations }) } From 9c3c6b0a627365be0e8f04601529e6255eb873ea Mon Sep 17 00:00:00 2001 From: Sergey Date: Wed, 14 Aug 2024 16:34:15 +0200 Subject: [PATCH 25/78] Fix error check --- core/files/fileobject/service.go | 3 +++ 1 file changed, 3 insertions(+) diff --git a/core/files/fileobject/service.go b/core/files/fileobject/service.go index 2f74d6bf6..978986a22 100644 --- a/core/files/fileobject/service.go +++ b/core/files/fileobject/service.go @@ -192,6 +192,9 @@ func (s *service) deleteMigratedFilesInNonPersonalSpaces(ctx context.Context) er }, }, }) + if err != nil { + return err + } if len(objectIds) > 0 { err = s.objectArchiver.SetPagesIsArchived(nil, pb.RpcObjectListSetIsArchivedRequest{ ObjectIds: objectIds, From 70ef42d52c1666e23ba22f8381c9120e0f086414 Mon Sep 17 00:00:00 2001 From: kirillston Date: Wed, 14 Aug 2024 19:37:36 +0300 Subject: [PATCH 26/78] GO-3849 Use current state to set flags --- core/block/editor/dataview/dataview.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/block/editor/dataview/dataview.go b/core/block/editor/dataview/dataview.go index c4281c191..601f48fc0 100644 --- a/core/block/editor/dataview/dataview.go +++ b/core/block/editor/dataview/dataview.go @@ -85,7 +85,7 @@ func (d *sdataview) SetSource(ctx session.Context, blockId string, source []stri return } - flags := internalflag.NewFromState(s.ParentState()) + flags := internalflag.NewFromState(s) // set with source is no longer empty flags.Remove(model.InternalFlag_editorDeleteEmpty) flags.AddToState(s) From c214b255c4bdca1492338eaf1b70fc4e3442d2a0 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 15 Aug 2024 04:07:44 +0000 Subject: [PATCH 27/78] Bump github.com/prometheus/client_golang from 1.19.1 to 1.20.0 Bumps [github.com/prometheus/client_golang](https://github.com/prometheus/client_golang) from 1.19.1 to 1.20.0. - [Release notes](https://github.com/prometheus/client_golang/releases) - [Changelog](https://github.com/prometheus/client_golang/blob/main/CHANGELOG.md) - [Commits](https://github.com/prometheus/client_golang/compare/v1.19.1...v1.20.0) --- updated-dependencies: - dependency-name: github.com/prometheus/client_golang dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- go.mod | 11 ++++++----- go.sum | 32 ++++++++++++++------------------ 2 files changed, 20 insertions(+), 23 deletions(-) diff --git a/go.mod b/go.mod index 084c99fc5..bf518fdf5 100644 --- a/go.mod +++ b/go.mod @@ -57,7 +57,7 @@ require ( github.com/joho/godotenv v1.5.1 github.com/jsummers/gobmp v0.0.0-20151104160322-e2ba15ffa76e github.com/kelseyhightower/envconfig v1.4.0 - github.com/klauspost/compress v1.17.8 + github.com/klauspost/compress v1.17.9 github.com/libp2p/go-libp2p v0.35.1 github.com/libp2p/zeroconf/v2 v2.2.0 github.com/logrusorgru/aurora v2.0.3+incompatible @@ -75,7 +75,7 @@ require ( github.com/otiai10/copy v1.14.0 github.com/otiai10/opengraph/v2 v2.1.0 github.com/pkg/errors v0.9.1 - github.com/prometheus/client_golang v1.19.1 + github.com/prometheus/client_golang v1.20.0 github.com/pseudomuto/protoc-gen-doc v1.5.1 github.com/rwcarlsen/goexif v0.0.0-20190401172101-9e8deecbddbd github.com/samber/lo v1.46.0 @@ -216,6 +216,7 @@ require ( github.com/multiformats/go-multicodec v0.9.0 // indirect github.com/multiformats/go-multistream v0.5.0 // indirect github.com/multiformats/go-varint v0.0.7 // indirect + github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect github.com/mwitkow/go-proto-validators v0.3.2 // indirect github.com/onsi/ginkgo/v2 v2.17.1 // indirect github.com/pelletier/go-toml/v2 v2.0.6 // indirect @@ -224,8 +225,8 @@ require ( github.com/polydawn/refmt v0.89.0 // indirect github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c // indirect github.com/prometheus/client_model v0.6.1 // indirect - github.com/prometheus/common v0.48.0 // indirect - github.com/prometheus/procfs v0.12.0 // indirect + github.com/prometheus/common v0.55.0 // indirect + github.com/prometheus/procfs v0.15.1 // indirect github.com/pseudomuto/protokit v0.2.1 // indirect github.com/quic-go/quic-go v0.44.0 // indirect github.com/rs/cors v1.7.0 // indirect @@ -264,7 +265,7 @@ require ( golang.org/x/tools v0.23.0 // indirect google.golang.org/genproto/googleapis/api v0.0.0-20240528184218-531527333157 // indirect google.golang.org/genproto/googleapis/rpc v0.0.0-20240528184218-531527333157 // indirect - google.golang.org/protobuf v1.34.1 // indirect + google.golang.org/protobuf v1.34.2 // indirect gopkg.in/ini.v1 v1.67.0 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect lukechampine.com/blake3 v1.2.1 // indirect diff --git a/go.sum b/go.sum index dcfc62d59..627e542a9 100644 --- a/go.sum +++ b/go.sum @@ -83,8 +83,6 @@ github.com/andybalholm/cascadia v1.2.0/go.mod h1:YCyR8vOZT9aZ1CHEd8ap0gMVm2aFgxB github.com/andybalholm/cascadia v1.3.1/go.mod h1:R4bJ1UQfqADjvDa4P6HZHLh/3OxWWEqc0Sk8XGwHqvA= github.com/andybalholm/cascadia v1.3.2 h1:3Xi6Dw5lHF15JtdcmAHD3i1+T8plmv7BQ/nsViSLyss= github.com/andybalholm/cascadia v1.3.2/go.mod h1:7gtRlve5FxPPgIgX36uWBX58OdBsSS6lUvCFb+h7KvU= -github.com/anyproto/any-store v0.0.0-20240719163025-8a3657f8e01c h1:rRlF97BLA+4/jV82lMHEQGbNS4qgsed+HuoAJtYaLUM= -github.com/anyproto/any-store v0.0.0-20240719163025-8a3657f8e01c/go.mod h1:JV7dJ8+xF1VaCQgFQsD8SZSNlxxTGFbDiF8llkB2ILc= github.com/anyproto/any-store v0.0.1 h1:RiZi3cHVSpIebcNeHYOUaDShH7E9Ahto33zdnqCaUHM= github.com/anyproto/any-store v0.0.1/go.mod h1:JV7dJ8+xF1VaCQgFQsD8SZSNlxxTGFbDiF8llkB2ILc= github.com/anyproto/any-sync v0.4.22 h1:f9iAbCv/clTzYtzOzkX1IOXahVM/Art1WkUtIgnwl8U= @@ -758,8 +756,8 @@ github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+o github.com/kkdai/bstream v0.0.0-20161212061736-f391b8402d23/go.mod h1:J+Gs4SYgM6CZQHDETBtE9HaSEkGmuNXF86RwHhHUvq4= github.com/klauspost/compress v1.10.3/go.mod h1:aoV0uJVorq1K+umq18yTdKaF57EivdYsUV+/s2qKfXs= github.com/klauspost/compress v1.11.7/go.mod h1:aoV0uJVorq1K+umq18yTdKaF57EivdYsUV+/s2qKfXs= -github.com/klauspost/compress v1.17.8 h1:YcnTYrq7MikUT7k0Yb5eceMmALQPYBW/Xltxn0NAMnU= -github.com/klauspost/compress v1.17.8/go.mod h1:Di0epgTjJY877eYKx5yC51cX2A2Vl2ibi7bDH9ttBbw= +github.com/klauspost/compress v1.17.9 h1:6KIumPrER1LHsvBVuDa0r5xaG0Es51mhhB9BQB2qeMA= +github.com/klauspost/compress v1.17.9/go.mod h1:Di0epgTjJY877eYKx5yC51cX2A2Vl2ibi7bDH9ttBbw= github.com/klauspost/cpuid/v2 v2.0.4/go.mod h1:FInQzS24/EEf25PyTYn52gqo7WaD8xa0213Md/qVLRg= github.com/klauspost/cpuid/v2 v2.0.12/go.mod h1:g2LTdtYhdyuGPqyWyv7qRAmj1WBqxuObKfj5c0PQa7c= github.com/klauspost/cpuid/v2 v2.2.7 h1:ZWSB3igEs+d0qvnxR/ZBzXVmxkgt8DdzP6m9pfuVLDM= @@ -781,6 +779,8 @@ github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= +github.com/kylelemons/godebug v1.1.0 h1:RPNrshWIDI6G2gRW9EHilWtl7Z6Sb1BR0xunSBf0SNc= +github.com/kylelemons/godebug v1.1.0/go.mod h1:9/0rRGxNHcop5bhtWyNeEfOS8JIWk580+fNqagV/RAw= github.com/leodido/go-urn v1.2.0 h1:hpXL4XnriNwQ/ABnpepYM/1vCLWNDfUNts8dX3xTG6Y= github.com/leodido/go-urn v1.2.0/go.mod h1:+8+nEpDfqqsY+g338gtMEUOtuK+4dEMhiQEgxpxOKII= github.com/libp2p/go-addr-util v0.0.1/go.mod h1:4ac6O7n9rIAKB1dnd+s8IbbMXkt+oBpzX4/+RACcnlQ= @@ -1092,6 +1092,8 @@ github.com/multiformats/go-varint v0.0.5/go.mod h1:3Ls8CIEsrijN6+B7PbrXRPxHRPuXS github.com/multiformats/go-varint v0.0.6/go.mod h1:3Ls8CIEsrijN6+B7PbrXRPxHRPuXSrVKRY101jdMZYE= github.com/multiformats/go-varint v0.0.7 h1:sWSGR+f/eu5ABZA2ZpYKBILXTTs9JWpdEM/nEGOHFS8= github.com/multiformats/go-varint v0.0.7/go.mod h1:r8PUYw/fD/SjBCiKOoDlGF6QawOELpZAu9eioSos/OU= +github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 h1:C3w9PqII01/Oq1c1nUAm88MOHcQC9l5mIlSMApZMrHA= +github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ= github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= github.com/mwitkow/go-conntrack v0.0.0-20190716064945-2f068394615f h1:KUppIJq7/+SVif2QVs3tOP0zanoHgBEVAwHxUSIzRqU= github.com/mwitkow/go-conntrack v0.0.0-20190716064945-2f068394615f/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= @@ -1214,8 +1216,8 @@ github.com/prometheus/client_golang v0.9.3/go.mod h1:/TN21ttK/J9q6uSwhBd54HahCDf github.com/prometheus/client_golang v1.0.0/go.mod h1:db9x61etRT2tGnBNRi70OPL5FsnadC4Ky3P0J6CfImo= github.com/prometheus/client_golang v1.3.0/go.mod h1:hJaj2vgQTGQmVCsAACORcieXFeDPbaTKGT+JTgUa3og= github.com/prometheus/client_golang v1.7.1/go.mod h1:PY5Wy2awLA44sXw4AOSfFBetzPP4j5+D6mVACh+pe2M= -github.com/prometheus/client_golang v1.19.1 h1:wZWJDwK+NameRJuPGDhlnFgx8e8HN3XHQeLaYJFJBOE= -github.com/prometheus/client_golang v1.19.1/go.mod h1:mP78NwGzrVks5S2H6ab8+ZZGJLZUq1hoULYBAYBw1Ho= +github.com/prometheus/client_golang v1.20.0 h1:jBzTZ7B099Rg24tny+qngoynol8LtVYlA2bqx3vEloI= +github.com/prometheus/client_golang v1.20.0/go.mod h1:PIEt8X02hGcP8JWbeHyeZ53Y/jReSnHgO035n//V5WE= github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= github.com/prometheus/client_model v0.0.0-20190115171406-56726106282f/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= github.com/prometheus/client_model v0.0.0-20190129233127-fd36f4220a90/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= @@ -1231,8 +1233,8 @@ github.com/prometheus/common v0.4.1/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y8 github.com/prometheus/common v0.7.0/go.mod h1:DjGbpBbp5NYNiECxcL/VnbXCCaQpKd3tt26CguLLsqA= github.com/prometheus/common v0.10.0/go.mod h1:Tlit/dnDKsSWFlCLTWaA1cyBgKHSMdTB80sz/V91rCo= github.com/prometheus/common v0.15.0/go.mod h1:U+gB1OBLb1lF3O42bTCL+FK18tX9Oar16Clt/msog/s= -github.com/prometheus/common v0.48.0 h1:QO8U2CdOzSn1BBsmXJXduaaW+dY/5QLjfB8svtSzKKE= -github.com/prometheus/common v0.48.0/go.mod h1:0/KsvlIEfPQCQ5I2iNSAWKPZziNCvRs5EC6ILDTlAPc= +github.com/prometheus/common v0.55.0 h1:KEi6DK7lXW/m7Ig5i47x0vRzuBsHuvJdi5ee6Y3G1dc= +github.com/prometheus/common v0.55.0/go.mod h1:2SECS4xJG1kd8XF9IcM1gMX6510RAEL65zxzNImwdc8= github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= github.com/prometheus/procfs v0.0.0-20190117184657-bf6a532e95b1/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= github.com/prometheus/procfs v0.0.0-20190507164030-5867b95ac084/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= @@ -1240,8 +1242,8 @@ github.com/prometheus/procfs v0.0.2/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsT github.com/prometheus/procfs v0.0.8/go.mod h1:7Qr8sr6344vo1JqZ6HhLceV9o3AJ1Ff+GxbHq6oeK9A= github.com/prometheus/procfs v0.1.3/go.mod h1:lV6e/gmhEcM9IjHGsFOCxxuZ+z1YqCvr4OA4YeYWdaU= github.com/prometheus/procfs v0.3.0/go.mod h1:lV6e/gmhEcM9IjHGsFOCxxuZ+z1YqCvr4OA4YeYWdaU= -github.com/prometheus/procfs v0.12.0 h1:jluTpSng7V9hY0O2R9DzzJHYb2xULk9VTR1V1R/k6Bo= -github.com/prometheus/procfs v0.12.0/go.mod h1:pcuDEFsWDnvcgNzo4EEweacyhjeA9Zk3cnaOZAZEfOo= +github.com/prometheus/procfs v0.15.1 h1:YagwOFzUgYfKKHX6Dr+sHT7km/hxC76UB0learggepc= +github.com/prometheus/procfs v0.15.1/go.mod h1:fB45yRUv8NstnjriLhBQLuOUt+WW4BsoGhij/e3PBqk= github.com/prometheus/tsdb v0.7.1/go.mod h1:qhTCs0VvXwvX/y3TZrWD7rabWM+ijKTux40TwIPHuXU= github.com/pseudomuto/protoc-gen-doc v1.5.1 h1:Ah259kcrio7Ix1Rhb6u8FCaOkzf9qRBqXnvAufg061w= github.com/pseudomuto/protoc-gen-doc v1.5.1/go.mod h1:XpMKYg6zkcpgfpCfQ8GcWBDRtRxOmMR5w7pz4Xo+dYM= @@ -1527,8 +1529,6 @@ golang.org/x/exp v0.0.0-20200119233911-0405dc783f0a/go.mod h1:2RIsYlXP63K8oxa1u0 golang.org/x/exp v0.0.0-20200207192155-f17229e696bd/go.mod h1:J/WKrq2StrnmMY6+EHIKF9dgMWnmCNThgcyBT1FY9mM= golang.org/x/exp v0.0.0-20200224162631-6cc2880d07d6/go.mod h1:3jZMyOhIsHpP37uCMkUooju7aAi5cS1Q23tOzKc+0MU= golang.org/x/exp v0.0.0-20200331195152-e8c3332aa8e5/go.mod h1:4M0jN8W1tt0AVLNr8HDosyJCDCDuyL9N9+3m7wDWgKw= -golang.org/x/exp v0.0.0-20240506185415-9bf2ced13842 h1:vr/HnozRka3pE4EsMEg1lgkXJkTFJCVUX+S/ZT6wYzM= -golang.org/x/exp v0.0.0-20240506185415-9bf2ced13842/go.mod h1:XtvwrStGgqGPLc4cjQfWqZHG1YFdYs6swckp8vpsjnc= golang.org/x/exp v0.0.0-20240719175910-8a7402abbf56 h1:2dVuKD2vS7b0QIHQbpyTISPd0LeHDbnYEryqj5Q1ug8= golang.org/x/exp v0.0.0-20240719175910-8a7402abbf56/go.mod h1:M4RDyNAINzryxdtnbRXRL/OHtkFuWGRjvuhBJpk2IlY= golang.org/x/image v0.0.0-20180708004352-c73c2afc3b81/go.mod h1:ux5Hcp/YLpHSI86hEcLt0YII63i6oz57MZXIpbrjZUs= @@ -1563,8 +1563,6 @@ golang.org/x/mod v0.4.1/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= golang.org/x/mod v0.8.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= -golang.org/x/mod v0.17.0 h1:zY54UmvipHiNd+pm+m0x9KhZ9hl1/7QNMyxXbc6ICqA= -golang.org/x/mod v0.17.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= golang.org/x/mod v0.19.0 h1:fEdghXQSo20giMthA7cd28ZC+jts4amQ3YMXiP5oMQ8= golang.org/x/mod v0.19.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= golang.org/x/net v0.0.0-20180218175443-cbe0f9307d01/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= @@ -1843,8 +1841,6 @@ golang.org/x/tools v0.1.0/go.mod h1:xkSsbof2nBLbhDlRMhhhyNLN/zl3eTqcnHD5viDpcZ0= golang.org/x/tools v0.1.5/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= golang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU= -golang.org/x/tools v0.21.1-0.20240508182429-e35e4ccd0d2d h1:vU5i/LfpvrRCpgM/VPfJLg5KjxD3E+hfT1SH+d9zLwg= -golang.org/x/tools v0.21.1-0.20240508182429-e35e4ccd0d2d/go.mod h1:aiJjzUbINMkxbQROHiO6hDPo2LHcIPhhQsa9DLh0yGk= golang.org/x/tools v0.23.0 h1:SGsXPZ+2l4JsgaCKkx+FQ9YZ5XEtA1GZYuoDjenLjvg= golang.org/x/tools v0.23.0/go.mod h1:pnu6ufv6vQkll6szChhK3C3L/ruaIv5eBeztNG8wtsI= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= @@ -1966,8 +1962,8 @@ google.golang.org/protobuf v1.24.0/go.mod h1:r/3tXBNzIEhYS9I1OUVjXDlt8tc493IdKGj google.golang.org/protobuf v1.25.0/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlbajtzgsN7c= google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= google.golang.org/protobuf v1.27.1/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= -google.golang.org/protobuf v1.34.1 h1:9ddQBjfCyZPOHPUiPxpYESBLc+T8P3E+Vo4IbKZgFWg= -google.golang.org/protobuf v1.34.1/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos= +google.golang.org/protobuf v1.34.2 h1:6xV6lTsCfpGD21XK49h7MhtcApnLqkfYgPcdHftf6hg= +google.golang.org/protobuf v1.34.2/go.mod h1:qYOHts0dSfpeUzUFpOMr/WGzszTmLH+DiWniOlNbLDw= gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= From 93b60885b25b5ef829e94fd946c95065deb6be8c Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 15 Aug 2024 04:08:02 +0000 Subject: [PATCH 28/78] Bump github.com/sasha-s/go-deadlock from 0.3.1 to 0.3.5 Bumps [github.com/sasha-s/go-deadlock](https://github.com/sasha-s/go-deadlock) from 0.3.1 to 0.3.5. - [Release notes](https://github.com/sasha-s/go-deadlock/releases) - [Commits](https://github.com/sasha-s/go-deadlock/compare/v0.3.1...v0.3.5) --- updated-dependencies: - dependency-name: github.com/sasha-s/go-deadlock dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- go.mod | 4 ++-- go.sum | 16 ++++------------ 2 files changed, 6 insertions(+), 14 deletions(-) diff --git a/go.mod b/go.mod index 084c99fc5..55d37f6da 100644 --- a/go.mod +++ b/go.mod @@ -79,7 +79,7 @@ require ( github.com/pseudomuto/protoc-gen-doc v1.5.1 github.com/rwcarlsen/goexif v0.0.0-20190401172101-9e8deecbddbd github.com/samber/lo v1.46.0 - github.com/sasha-s/go-deadlock v0.3.1 + github.com/sasha-s/go-deadlock v0.3.5 github.com/shirou/gopsutil/v3 v3.24.4 github.com/stretchr/testify v1.9.0 github.com/uber/jaeger-client-go v2.30.0+incompatible @@ -219,7 +219,7 @@ require ( github.com/mwitkow/go-proto-validators v0.3.2 // indirect github.com/onsi/ginkgo/v2 v2.17.1 // indirect github.com/pelletier/go-toml/v2 v2.0.6 // indirect - github.com/petermattis/goid v0.0.0-20180202154549-b0b1615b78e5 // indirect + github.com/petermattis/goid v0.0.0-20240813172612-4fcff4a6cae7 // indirect github.com/pmezard/go-difflib v1.0.0 // indirect github.com/polydawn/refmt v0.89.0 // indirect github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c // indirect diff --git a/go.sum b/go.sum index dcfc62d59..59b9ed53a 100644 --- a/go.sum +++ b/go.sum @@ -83,8 +83,6 @@ github.com/andybalholm/cascadia v1.2.0/go.mod h1:YCyR8vOZT9aZ1CHEd8ap0gMVm2aFgxB github.com/andybalholm/cascadia v1.3.1/go.mod h1:R4bJ1UQfqADjvDa4P6HZHLh/3OxWWEqc0Sk8XGwHqvA= github.com/andybalholm/cascadia v1.3.2 h1:3Xi6Dw5lHF15JtdcmAHD3i1+T8plmv7BQ/nsViSLyss= github.com/andybalholm/cascadia v1.3.2/go.mod h1:7gtRlve5FxPPgIgX36uWBX58OdBsSS6lUvCFb+h7KvU= -github.com/anyproto/any-store v0.0.0-20240719163025-8a3657f8e01c h1:rRlF97BLA+4/jV82lMHEQGbNS4qgsed+HuoAJtYaLUM= -github.com/anyproto/any-store v0.0.0-20240719163025-8a3657f8e01c/go.mod h1:JV7dJ8+xF1VaCQgFQsD8SZSNlxxTGFbDiF8llkB2ILc= github.com/anyproto/any-store v0.0.1 h1:RiZi3cHVSpIebcNeHYOUaDShH7E9Ahto33zdnqCaUHM= github.com/anyproto/any-store v0.0.1/go.mod h1:JV7dJ8+xF1VaCQgFQsD8SZSNlxxTGFbDiF8llkB2ILc= github.com/anyproto/any-sync v0.4.22 h1:f9iAbCv/clTzYtzOzkX1IOXahVM/Art1WkUtIgnwl8U= @@ -1156,8 +1154,8 @@ github.com/pelletier/go-toml v1.2.0/go.mod h1:5z9KED0ma1S8pY6P1sdut58dfprrGBbd/9 github.com/pelletier/go-toml/v2 v2.0.6 h1:nrzqCb7j9cDFj2coyLNLaZuJTLjWjlaz6nvTvIwycIU= github.com/pelletier/go-toml/v2 v2.0.6/go.mod h1:eumQOmlWiOPt5WriQQqoM5y18pDHwha2N+QD+EUNTek= github.com/performancecopilot/speed v3.0.0+incompatible/go.mod h1:/CLtqpZ5gBg1M9iaPbIdPPGyKcA8hKdoy6hAWba7Yac= -github.com/petermattis/goid v0.0.0-20180202154549-b0b1615b78e5 h1:q2e307iGHPdTGp0hoxKjt1H5pDo6utceo3dQVK3I5XQ= -github.com/petermattis/goid v0.0.0-20180202154549-b0b1615b78e5/go.mod h1:jvVRKCrJTQWu0XVbaOlby/2lO20uSCHEMzzplHXte1o= +github.com/petermattis/goid v0.0.0-20240813172612-4fcff4a6cae7 h1:Dx7Ovyv/SFnMFw3fD4oEoeorXc6saIiQ23LrGLth0Gw= +github.com/petermattis/goid v0.0.0-20240813172612-4fcff4a6cae7/go.mod h1:pxMtw7cyUw6B2bRH0ZBANSPg+AoSud1I1iyJHI69jH4= github.com/pierrec/lz4 v1.0.2-0.20190131084431-473cd7ce01a1/go.mod h1:3/3N9NVKO0jef7pBehbT1qWhCMrIgbYNnFAZCqQ5LRc= github.com/pierrec/lz4 v2.0.5+incompatible/go.mod h1:pdkljMzZIN41W+lC3N2tnIh5sFi+IEE17M5jbnwPHcY= github.com/pion/datachannel v1.5.6 h1:1IxKJntfSlYkpUj8LlYRSWpYiTTC02nUrOE8T3DqGeg= @@ -1273,8 +1271,8 @@ github.com/ryanuber/columnize v0.0.0-20160712163229-9b3edd62028f/go.mod h1:sm1tb github.com/samber/lo v1.46.0 h1:w8G+oaCPgz1PoCJztqymCFaKwXt+5cCXn51uPxExFfQ= github.com/samber/lo v1.46.0/go.mod h1:RmDH9Ct32Qy3gduHQuKJ3gW1fMHAnE/fAzQuf6He5cU= github.com/samuel/go-zookeeper v0.0.0-20190923202752-2cc03de413da/go.mod h1:gi+0XIa01GRL2eRQVjQkKGqKF3SF9vZR/HnPullcV2E= -github.com/sasha-s/go-deadlock v0.3.1 h1:sqv7fDNShgjcaxkO0JNcOAlr8B9+cV5Ey/OB71efZx0= -github.com/sasha-s/go-deadlock v0.3.1/go.mod h1:F73l+cr82YSh10GxyRI6qZiCgK64VaZjwesgfQ1/iLM= +github.com/sasha-s/go-deadlock v0.3.5 h1:tNCOEEDG6tBqrNDOX35j/7hL5FcFViG6awUGROb2NsU= +github.com/sasha-s/go-deadlock v0.3.5/go.mod h1:bugP6EGbdGYObIlx7pUZtWqlvo8k9H6vCBBsiChJQ5U= github.com/scylladb/termtables v0.0.0-20191203121021-c4c0b6d42ff4/go.mod h1:C1a7PQSMz9NShzorzCiG2fk9+xuCgLkPeCvMHYR2OWg= github.com/sean-/seed v0.0.0-20170313163322-e2103e2c3529/go.mod h1:DxrIzT+xaE7yg65j358z/aeFdxmN0P9QXhEzd20vsDc= github.com/sebdah/goldie/v2 v2.5.3 h1:9ES/mNN+HNUbNWpVAlrzuZ7jE+Nrczbj8uFRjM7624Y= @@ -1527,8 +1525,6 @@ golang.org/x/exp v0.0.0-20200119233911-0405dc783f0a/go.mod h1:2RIsYlXP63K8oxa1u0 golang.org/x/exp v0.0.0-20200207192155-f17229e696bd/go.mod h1:J/WKrq2StrnmMY6+EHIKF9dgMWnmCNThgcyBT1FY9mM= golang.org/x/exp v0.0.0-20200224162631-6cc2880d07d6/go.mod h1:3jZMyOhIsHpP37uCMkUooju7aAi5cS1Q23tOzKc+0MU= golang.org/x/exp v0.0.0-20200331195152-e8c3332aa8e5/go.mod h1:4M0jN8W1tt0AVLNr8HDosyJCDCDuyL9N9+3m7wDWgKw= -golang.org/x/exp v0.0.0-20240506185415-9bf2ced13842 h1:vr/HnozRka3pE4EsMEg1lgkXJkTFJCVUX+S/ZT6wYzM= -golang.org/x/exp v0.0.0-20240506185415-9bf2ced13842/go.mod h1:XtvwrStGgqGPLc4cjQfWqZHG1YFdYs6swckp8vpsjnc= golang.org/x/exp v0.0.0-20240719175910-8a7402abbf56 h1:2dVuKD2vS7b0QIHQbpyTISPd0LeHDbnYEryqj5Q1ug8= golang.org/x/exp v0.0.0-20240719175910-8a7402abbf56/go.mod h1:M4RDyNAINzryxdtnbRXRL/OHtkFuWGRjvuhBJpk2IlY= golang.org/x/image v0.0.0-20180708004352-c73c2afc3b81/go.mod h1:ux5Hcp/YLpHSI86hEcLt0YII63i6oz57MZXIpbrjZUs= @@ -1563,8 +1559,6 @@ golang.org/x/mod v0.4.1/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= golang.org/x/mod v0.8.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= -golang.org/x/mod v0.17.0 h1:zY54UmvipHiNd+pm+m0x9KhZ9hl1/7QNMyxXbc6ICqA= -golang.org/x/mod v0.17.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= golang.org/x/mod v0.19.0 h1:fEdghXQSo20giMthA7cd28ZC+jts4amQ3YMXiP5oMQ8= golang.org/x/mod v0.19.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= golang.org/x/net v0.0.0-20180218175443-cbe0f9307d01/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= @@ -1843,8 +1837,6 @@ golang.org/x/tools v0.1.0/go.mod h1:xkSsbof2nBLbhDlRMhhhyNLN/zl3eTqcnHD5viDpcZ0= golang.org/x/tools v0.1.5/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= golang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU= -golang.org/x/tools v0.21.1-0.20240508182429-e35e4ccd0d2d h1:vU5i/LfpvrRCpgM/VPfJLg5KjxD3E+hfT1SH+d9zLwg= -golang.org/x/tools v0.21.1-0.20240508182429-e35e4ccd0d2d/go.mod h1:aiJjzUbINMkxbQROHiO6hDPo2LHcIPhhQsa9DLh0yGk= golang.org/x/tools v0.23.0 h1:SGsXPZ+2l4JsgaCKkx+FQ9YZ5XEtA1GZYuoDjenLjvg= golang.org/x/tools v0.23.0/go.mod h1:pnu6ufv6vQkll6szChhK3C3L/ruaIv5eBeztNG8wtsI= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= From 206824cc0ecac311486807e4cc91a3c8fef056db Mon Sep 17 00:00:00 2001 From: kirillston Date: Thu, 15 Aug 2024 15:50:17 +0300 Subject: [PATCH 29/78] GO-3795 Add batch modify details rpc --- clientlibrary/service/service.pb.go | 653 +-- core/block/editor.go | 31 + core/object.go | 17 + docs/proto.md | 95 + pb/commands.pb.go | 3582 +++++++++++------ pb/protos/commands.proto | 31 + pb/protos/service/service.proto | 1 + pb/service/service.pb.go | 652 +-- .../components/dependencies/modifier.go | 7 - util/pbtypes/pbtypes.go | 83 +- util/pbtypes/pbtypes_test.go | 59 + 11 files changed, 3415 insertions(+), 1796 deletions(-) delete mode 100644 space/internal/components/dependencies/modifier.go diff --git a/clientlibrary/service/service.pb.go b/clientlibrary/service/service.pb.go index a096cf960..3db798fa6 100644 --- a/clientlibrary/service/service.pb.go +++ b/clientlibrary/service/service.pb.go @@ -25,314 +25,316 @@ const _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package func init() { proto.RegisterFile("pb/protos/service/service.proto", fileDescriptor_93a29dc403579097) } var fileDescriptor_93a29dc403579097 = []byte{ - // 4904 bytes of a gzipped FileDescriptorProto + // 4931 bytes of a gzipped FileDescriptorProto 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x9c, 0x9d, 0xdd, 0x6f, 0x24, 0x49, - 0x52, 0xc0, 0xb7, 0x5f, 0x58, 0xa8, 0xe3, 0x16, 0xe8, 0x85, 0x65, 0x6f, 0xb9, 0x9b, 0xef, 0x6f, - 0x8f, 0xdb, 0xde, 0x99, 0xfd, 0x38, 0xf6, 0x90, 0x90, 0xc7, 0x1e, 0x7b, 0xcd, 0xd9, 0x1e, 0xe3, - 0x6e, 0xcf, 0x48, 0x2b, 0x21, 0x51, 0xae, 0x0e, 0xb7, 0x0b, 0x57, 0x57, 0xd6, 0x55, 0x65, 0xb7, - 0xa7, 0x0f, 0x81, 0x40, 0x20, 0x10, 0x08, 0xc4, 0x89, 0xaf, 0x17, 0x1e, 0x90, 0xf8, 0x6b, 0xe0, - 0xed, 0x1e, 0xef, 0x11, 0xed, 0xfe, 0x23, 0xa7, 0xca, 0xcc, 0xca, 0x8f, 0xa8, 0x8c, 0xac, 0xf2, - 0x3e, 0xcd, 0xa8, 0xe3, 0x17, 0x11, 0x99, 0x95, 0x91, 0x99, 0x91, 0x1f, 0x55, 0x8e, 0x6e, 0x16, - 0x67, 0x1b, 0x45, 0xc9, 0x38, 0xab, 0x36, 0x2a, 0x28, 0x97, 0x69, 0x02, 0xcd, 0xbf, 0x23, 0xf1, - 0xf3, 0xf0, 0xdd, 0x38, 0x5f, 0xf1, 0x55, 0x01, 0x1f, 0x7d, 0x68, 0xc8, 0x84, 0xcd, 0xe7, 0x71, - 0x3e, 0xad, 0x24, 0xf2, 0xd1, 0x07, 0x46, 0x02, 0x4b, 0xc8, 0xb9, 0xfa, 0xfd, 0xd9, 0xff, 0xfd, - 0x62, 0x10, 0xbd, 0xb7, 0x9d, 0xa5, 0x90, 0xf3, 0x6d, 0xa5, 0x31, 0xfc, 0x2a, 0xfa, 0xee, 0x56, - 0x51, 0xec, 0x01, 0x7f, 0x0d, 0x65, 0x95, 0xb2, 0x7c, 0x78, 0x77, 0xa4, 0x1c, 0x8c, 0x4e, 0x8a, - 0x64, 0xb4, 0x55, 0x14, 0x23, 0x23, 0x1c, 0x9d, 0xc0, 0x4f, 0x16, 0x50, 0xf1, 0x8f, 0xee, 0x85, - 0xa1, 0xaa, 0x60, 0x79, 0x05, 0xc3, 0xf3, 0xe8, 0xb7, 0xb6, 0x8a, 0x62, 0x0c, 0x7c, 0x07, 0xea, - 0x0a, 0x8c, 0x79, 0xcc, 0x61, 0xf8, 0xb0, 0xa5, 0xea, 0x02, 0xda, 0xc7, 0xa3, 0x6e, 0x50, 0xf9, - 0x99, 0x44, 0xdf, 0xa9, 0xfd, 0x5c, 0x2c, 0xf8, 0x94, 0x5d, 0xe5, 0xc3, 0xdb, 0x6d, 0x45, 0x25, - 0xd2, 0xb6, 0xef, 0x84, 0x10, 0x65, 0xf5, 0x4d, 0xf4, 0xeb, 0x6f, 0xe2, 0x2c, 0x03, 0xbe, 0x5d, - 0x42, 0x5d, 0x70, 0x57, 0x47, 0x8a, 0x46, 0x52, 0xa6, 0xed, 0xde, 0x0d, 0x32, 0xca, 0xf0, 0x57, - 0xd1, 0x77, 0xa5, 0xe4, 0x04, 0x12, 0xb6, 0x84, 0x72, 0xe8, 0xd5, 0x52, 0x42, 0xe2, 0x91, 0xb7, - 0x20, 0x6c, 0x7b, 0x9b, 0xe5, 0x4b, 0x28, 0xb9, 0xdf, 0xb6, 0x12, 0x86, 0x6d, 0x1b, 0x48, 0xd9, - 0xfe, 0x87, 0x41, 0xf4, 0xfd, 0xad, 0x24, 0x61, 0x8b, 0x9c, 0x1f, 0xb0, 0x24, 0xce, 0x0e, 0xd2, - 0xfc, 0xf2, 0x08, 0xae, 0xb6, 0x2f, 0x6a, 0x3e, 0x9f, 0xc1, 0xf0, 0xb9, 0xfb, 0x54, 0x25, 0x3a, - 0xd2, 0xec, 0xc8, 0x86, 0xb5, 0xef, 0x4f, 0xae, 0xa7, 0xa4, 0xca, 0xf2, 0x2f, 0x83, 0xe8, 0x06, - 0x2e, 0xcb, 0x98, 0x65, 0x4b, 0x30, 0xa5, 0xf9, 0xb4, 0xc3, 0xb0, 0x8b, 0xeb, 0xf2, 0x7c, 0x76, - 0x5d, 0x35, 0x55, 0xa2, 0x2c, 0x7a, 0xdf, 0x0e, 0x97, 0x31, 0x54, 0xa2, 0x3b, 0x3d, 0xa6, 0x23, - 0x42, 0x21, 0xda, 0xf3, 0x93, 0x3e, 0xa8, 0xf2, 0x96, 0x46, 0x43, 0xe5, 0x2d, 0x63, 0x95, 0x76, - 0xf6, 0xc8, 0x6b, 0xc1, 0x22, 0xb4, 0xaf, 0xc7, 0x3d, 0x48, 0xe5, 0xea, 0x4f, 0xa3, 0xdf, 0x78, - 0xc3, 0xca, 0xcb, 0xaa, 0x88, 0x13, 0x50, 0x5d, 0xe1, 0xbe, 0xab, 0xdd, 0x48, 0x71, 0x6f, 0x78, - 0xd0, 0x85, 0x59, 0x41, 0xdb, 0x08, 0x5f, 0x15, 0x80, 0xc7, 0x20, 0xa3, 0x58, 0x0b, 0xa9, 0xa0, - 0xc5, 0x90, 0xb2, 0x7d, 0x19, 0x0d, 0x8d, 0xed, 0xb3, 0x3f, 0x83, 0x84, 0x6f, 0x4d, 0xa7, 0xb8, - 0x55, 0x8c, 0xae, 0x20, 0x46, 0x5b, 0xd3, 0x29, 0xd5, 0x2a, 0x7e, 0x54, 0x39, 0xbb, 0x8a, 0x3e, - 0x40, 0xce, 0x0e, 0xd2, 0x4a, 0x38, 0x5c, 0x0f, 0x5b, 0x51, 0x98, 0x76, 0x3a, 0xea, 0x8b, 0x2b, - 0xc7, 0x7f, 0x35, 0x88, 0xbe, 0xe7, 0xf1, 0x7c, 0x02, 0x73, 0xb6, 0x84, 0xe1, 0x66, 0xb7, 0x35, - 0x49, 0x6a, 0xff, 0x1f, 0x5f, 0x43, 0xc3, 0x13, 0x26, 0x63, 0xc8, 0x20, 0xe1, 0x64, 0x98, 0x48, - 0x71, 0x67, 0x98, 0x68, 0xcc, 0xea, 0x61, 0x8d, 0x70, 0x0f, 0xf8, 0xf6, 0xa2, 0x2c, 0x21, 0xe7, - 0x64, 0x5b, 0x1a, 0xa4, 0xb3, 0x2d, 0x1d, 0xd4, 0x53, 0x9f, 0x3d, 0xe0, 0x5b, 0x59, 0x46, 0xd6, - 0x47, 0x8a, 0x3b, 0xeb, 0xa3, 0x31, 0xe5, 0x21, 0x89, 0x7e, 0xd3, 0x7a, 0x62, 0x7c, 0x3f, 0x3f, - 0x67, 0x43, 0xfa, 0x59, 0x08, 0xb9, 0xf6, 0xf1, 0xb0, 0x93, 0xf3, 0x54, 0xe3, 0xe5, 0xdb, 0x82, - 0x95, 0x74, 0xb3, 0x48, 0x71, 0x67, 0x35, 0x34, 0xa6, 0x3c, 0xfc, 0x49, 0xf4, 0x9e, 0x1a, 0x25, - 0x9b, 0xf9, 0xec, 0x9e, 0x77, 0x08, 0xc5, 0x13, 0xda, 0xfd, 0x0e, 0xca, 0x0c, 0x0e, 0x4a, 0xa6, - 0x06, 0x9f, 0xbb, 0x5e, 0x3d, 0x34, 0xf4, 0xdc, 0x0b, 0x43, 0x2d, 0xdb, 0x3b, 0x90, 0x01, 0x69, - 0x5b, 0x0a, 0x3b, 0x6c, 0x6b, 0x48, 0xd9, 0x2e, 0xa3, 0xdf, 0xd1, 0x8f, 0xa5, 0x9e, 0x47, 0x85, - 0xbc, 0x1e, 0xa4, 0xd7, 0x88, 0x7a, 0xdb, 0x90, 0xf6, 0xf5, 0xb4, 0x1f, 0xdc, 0xaa, 0x8f, 0xea, - 0x81, 0xfe, 0xfa, 0xa0, 0xfe, 0x77, 0x2f, 0x0c, 0x29, 0xdb, 0xff, 0x38, 0x88, 0x7e, 0xa0, 0x64, - 0x2f, 0xf3, 0xf8, 0x2c, 0x03, 0x31, 0x25, 0x1e, 0x01, 0xbf, 0x62, 0xe5, 0xe5, 0x78, 0x95, 0x27, - 0xc4, 0xf4, 0xef, 0x87, 0x3b, 0xa6, 0x7f, 0x52, 0xc9, 0xca, 0xf8, 0x54, 0x45, 0x39, 0x2b, 0x70, - 0xc6, 0xd7, 0xd4, 0x80, 0xb3, 0x82, 0xca, 0xf8, 0x5c, 0xa4, 0x65, 0xf5, 0xb0, 0x1e, 0x36, 0xfd, - 0x56, 0x0f, 0xed, 0x71, 0xf2, 0x4e, 0x08, 0x31, 0xc3, 0x56, 0x13, 0xc0, 0x2c, 0x3f, 0x4f, 0x67, - 0xa7, 0xc5, 0xb4, 0x0e, 0xe3, 0xc7, 0xfe, 0x08, 0xb5, 0x10, 0x62, 0xd8, 0x22, 0x50, 0xe5, 0xed, - 0x9f, 0x4d, 0x62, 0xa4, 0xba, 0xd2, 0x6e, 0xc9, 0xe6, 0x07, 0x30, 0x8b, 0x93, 0x95, 0xea, 0xff, - 0x9f, 0x84, 0x3a, 0x1e, 0xa6, 0x75, 0x21, 0x3e, 0xbd, 0xa6, 0x96, 0x2a, 0xcf, 0x7f, 0x0f, 0xa2, - 0x7b, 0x4d, 0xf5, 0x2f, 0xe2, 0x7c, 0x06, 0xaa, 0x3d, 0x65, 0xe9, 0xb7, 0xf2, 0xe9, 0x09, 0x54, - 0x3c, 0x2e, 0xf9, 0xf0, 0x0b, 0x7f, 0x25, 0x43, 0x3a, 0xba, 0x6c, 0x3f, 0xfa, 0x56, 0xba, 0xa6, - 0xd5, 0xc7, 0xf5, 0xc0, 0xa6, 0x86, 0x00, 0xb7, 0xd5, 0x85, 0x04, 0x0f, 0x00, 0x77, 0x42, 0x88, - 0x69, 0x75, 0x21, 0xd8, 0xcf, 0x97, 0x29, 0x87, 0x3d, 0xc8, 0xa1, 0x6c, 0xb7, 0xba, 0x54, 0x75, - 0x11, 0xa2, 0xd5, 0x09, 0xd4, 0x0c, 0x36, 0x8e, 0x37, 0x3d, 0x39, 0xae, 0x05, 0x8c, 0xb4, 0xa6, - 0xc7, 0xa7, 0xfd, 0x60, 0xb3, 0xba, 0xb3, 0x7c, 0x9e, 0xc0, 0x92, 0x5d, 0xe2, 0xd5, 0x9d, 0x6d, - 0x42, 0x02, 0xc4, 0xea, 0xce, 0x0b, 0x9a, 0x19, 0xcc, 0xf2, 0xf3, 0x3a, 0x85, 0x2b, 0x34, 0x83, - 0xd9, 0xca, 0xb5, 0x98, 0x98, 0xc1, 0x3c, 0x98, 0xf2, 0x70, 0x14, 0xfd, 0x9a, 0x10, 0xfe, 0x11, - 0x4b, 0xf3, 0xe1, 0x4d, 0x8f, 0x52, 0x2d, 0xd0, 0x56, 0x6f, 0xd1, 0x00, 0x2a, 0x71, 0xfd, 0xeb, - 0x76, 0x9c, 0x27, 0x90, 0x79, 0x4b, 0x6c, 0xc4, 0xc1, 0x12, 0x3b, 0x98, 0x49, 0x1d, 0x84, 0xb0, - 0x1e, 0xbf, 0xc6, 0x17, 0x71, 0x99, 0xe6, 0xb3, 0xa1, 0x4f, 0xd7, 0x92, 0x13, 0xa9, 0x83, 0x8f, - 0x43, 0x21, 0xac, 0x14, 0xb7, 0x8a, 0xa2, 0xac, 0x87, 0x45, 0x5f, 0x08, 0xbb, 0x48, 0x30, 0x84, - 0x5b, 0xa8, 0xdf, 0xdb, 0x0e, 0x24, 0x59, 0x9a, 0x07, 0xbd, 0x29, 0xa4, 0x8f, 0x37, 0x83, 0xa2, - 0xe0, 0x3d, 0x80, 0x78, 0x09, 0x4d, 0xcd, 0x7c, 0x4f, 0xc6, 0x06, 0x82, 0xc1, 0x8b, 0x40, 0xb3, - 0x4e, 0x13, 0xe2, 0xc3, 0xf8, 0x12, 0xea, 0x07, 0x0c, 0xf5, 0xbc, 0x36, 0xf4, 0xe9, 0x3b, 0x04, - 0xb1, 0x4e, 0xf3, 0x93, 0xca, 0xd5, 0x22, 0xfa, 0x40, 0xc8, 0x8f, 0xe3, 0x92, 0xa7, 0x49, 0x5a, - 0xc4, 0x79, 0x93, 0xff, 0xfb, 0xfa, 0x75, 0x8b, 0xd2, 0x2e, 0xd7, 0x7b, 0xd2, 0xca, 0xed, 0x7f, - 0x0e, 0xa2, 0xdb, 0xd8, 0xef, 0x31, 0x94, 0xf3, 0x54, 0x2c, 0x23, 0x2b, 0x39, 0x08, 0x0f, 0x3f, - 0x0f, 0x1b, 0x6d, 0x29, 0xe8, 0xd2, 0xfc, 0xf0, 0xfa, 0x8a, 0xaa, 0x60, 0x7f, 0x1c, 0x45, 0x72, - 0xb9, 0x22, 0x96, 0x94, 0x6e, 0xaf, 0x55, 0xeb, 0x18, 0x67, 0x3d, 0x79, 0x3b, 0x40, 0x98, 0xa9, - 0x42, 0xfe, 0x2e, 0x56, 0xca, 0x43, 0xaf, 0x86, 0x10, 0x11, 0x53, 0x05, 0x42, 0x70, 0x41, 0xc7, - 0x17, 0xec, 0xca, 0x5f, 0xd0, 0x5a, 0x12, 0x2e, 0xa8, 0x22, 0xcc, 0xde, 0x95, 0x2a, 0xa8, 0x6f, - 0xef, 0xaa, 0x29, 0x46, 0x68, 0xef, 0x0a, 0x33, 0xca, 0x30, 0x8b, 0x7e, 0xdb, 0x36, 0xfc, 0x82, - 0xb1, 0xcb, 0x79, 0x5c, 0x5e, 0x0e, 0x9f, 0xd0, 0xca, 0x0d, 0xa3, 0x1d, 0xad, 0xf5, 0x62, 0xcd, - 0xb0, 0x60, 0x3b, 0xac, 0x13, 0x8d, 0xd3, 0x32, 0x43, 0xc3, 0x82, 0x63, 0x43, 0x21, 0xc4, 0xb0, - 0x40, 0xa0, 0x66, 0xe4, 0xb6, 0xbd, 0x8d, 0x01, 0xaf, 0x96, 0x1c, 0xf5, 0x31, 0x50, 0xab, 0x25, - 0x0f, 0x86, 0x43, 0x68, 0xaf, 0x8c, 0x8b, 0x0b, 0x7f, 0x08, 0x09, 0x51, 0x38, 0x84, 0x1a, 0x04, - 0xb7, 0xf7, 0x18, 0xe2, 0x32, 0xb9, 0xf0, 0xb7, 0xb7, 0x94, 0x85, 0xdb, 0x5b, 0x33, 0xb8, 0xbd, - 0xa5, 0xe0, 0x4d, 0xca, 0x2f, 0x0e, 0x81, 0xc7, 0xfe, 0xf6, 0x76, 0x99, 0x70, 0x7b, 0xb7, 0x58, - 0x93, 0xc9, 0xd8, 0x0e, 0xc7, 0x8b, 0xb3, 0x2a, 0x29, 0xd3, 0x33, 0x18, 0x06, 0xac, 0x68, 0x88, - 0xc8, 0x64, 0x48, 0xd8, 0x0c, 0xd2, 0xca, 0x67, 0x23, 0xdb, 0x9f, 0x56, 0x68, 0x90, 0x6e, 0x6c, - 0x58, 0x04, 0x31, 0x48, 0xfb, 0x49, 0x5c, 0xbd, 0xbd, 0x92, 0x2d, 0x8a, 0xaa, 0xa3, 0x7a, 0x08, - 0x0a, 0x57, 0xaf, 0x0d, 0x2b, 0x9f, 0x6f, 0xa3, 0xdf, 0xb5, 0x1f, 0xe9, 0x69, 0x5e, 0x69, 0xaf, - 0xeb, 0xf4, 0x73, 0xb2, 0x30, 0x62, 0x5b, 0x2a, 0x80, 0x9b, 0x34, 0xa5, 0xf1, 0xcc, 0x77, 0x80, - 0xc7, 0x69, 0x56, 0x0d, 0x1f, 0xf8, 0x6d, 0x34, 0x72, 0x22, 0x4d, 0xf1, 0x71, 0xb8, 0xcf, 0xee, - 0x2c, 0x8a, 0x2c, 0x4d, 0xda, 0xfb, 0x93, 0x4a, 0x57, 0x8b, 0xc3, 0x7d, 0xd6, 0xc6, 0xf0, 0x18, - 0x34, 0x06, 0x2e, 0xff, 0x33, 0x59, 0x15, 0xe0, 0x1f, 0x83, 0x1c, 0x24, 0x3c, 0x06, 0x61, 0x14, - 0xd7, 0x67, 0x0c, 0xfc, 0x20, 0x5e, 0xb1, 0x05, 0x31, 0x06, 0x69, 0x71, 0xb8, 0x3e, 0x36, 0x66, - 0x32, 0x05, 0xed, 0x61, 0x3f, 0xe7, 0x50, 0xe6, 0x71, 0xb6, 0x9b, 0xc5, 0xb3, 0x6a, 0x48, 0xf4, - 0x1b, 0x97, 0x22, 0x32, 0x05, 0x9a, 0xf6, 0x3c, 0xc6, 0xfd, 0x6a, 0x37, 0x5e, 0xb2, 0x32, 0xe5, - 0xf4, 0x63, 0x34, 0x48, 0xe7, 0x63, 0x74, 0x50, 0xaf, 0xb7, 0xad, 0x32, 0xb9, 0x48, 0x97, 0x30, - 0x0d, 0x78, 0x6b, 0x90, 0x1e, 0xde, 0x2c, 0xd4, 0xd3, 0x68, 0x63, 0xb6, 0x28, 0x13, 0x20, 0x1b, - 0x4d, 0x8a, 0x3b, 0x1b, 0x4d, 0x63, 0xca, 0xc3, 0xdf, 0x0e, 0xa2, 0xdf, 0x93, 0x52, 0x7b, 0xd3, - 0x70, 0x27, 0xae, 0x2e, 0xce, 0x58, 0x5c, 0x4e, 0x87, 0x1f, 0xfb, 0xec, 0x78, 0x51, 0xed, 0xfa, - 0xd9, 0x75, 0x54, 0xf0, 0x63, 0x3d, 0x48, 0x2b, 0xab, 0xc7, 0x79, 0x1f, 0xab, 0x83, 0x84, 0x1f, - 0x2b, 0x46, 0xf1, 0x00, 0x22, 0xe4, 0x72, 0x81, 0xfe, 0x80, 0xd4, 0x77, 0x57, 0xe9, 0x0f, 0x3b, - 0x39, 0x3c, 0x3e, 0xd6, 0x42, 0x37, 0x5a, 0xd6, 0x29, 0x1b, 0xfe, 0x88, 0x19, 0xf5, 0xc5, 0x49, - 0xcf, 0xba, 0x57, 0x84, 0x3d, 0xb7, 0x7a, 0xc6, 0xa8, 0x2f, 0x4e, 0x78, 0xb6, 0x86, 0xb5, 0x90, - 0x67, 0xcf, 0xd0, 0x36, 0xea, 0x8b, 0xe3, 0x8c, 0x42, 0x31, 0xcd, 0xbc, 0xf0, 0x24, 0x60, 0x07, - 0xcf, 0x0d, 0x6b, 0xbd, 0x58, 0x1c, 0xb1, 0x5b, 0x45, 0x91, 0xad, 0x26, 0x30, 0x2f, 0x32, 0x32, - 0x62, 0x1d, 0x24, 0x1c, 0xb1, 0x18, 0xc5, 0xf9, 0xdd, 0x84, 0xd5, 0xd9, 0xa3, 0x37, 0xbf, 0x13, - 0xa2, 0x70, 0x7e, 0xd7, 0x20, 0x38, 0x43, 0x99, 0xb0, 0x6d, 0x96, 0x65, 0x90, 0xf0, 0xf6, 0x71, - 0x9f, 0xd6, 0x34, 0x44, 0x38, 0x43, 0x41, 0xa4, 0x59, 0x19, 0x37, 0xab, 0x91, 0xb8, 0x84, 0x17, - 0xab, 0x83, 0x34, 0xbf, 0x1c, 0xfa, 0x27, 0x63, 0x03, 0x10, 0x2b, 0x63, 0x2f, 0x88, 0x57, 0x3d, - 0xa7, 0xf9, 0x94, 0xf9, 0x57, 0x3d, 0xb5, 0x24, 0xbc, 0xea, 0x51, 0x04, 0x36, 0x79, 0x02, 0x94, - 0xc9, 0x5a, 0x12, 0x36, 0xa9, 0x08, 0xdf, 0x00, 0xa4, 0xf6, 0x4f, 0xc9, 0x01, 0x08, 0xed, 0x98, - 0x3e, 0xec, 0xe4, 0x70, 0x84, 0x36, 0xcb, 0x9f, 0x5d, 0xe0, 0xc9, 0x85, 0x3f, 0x42, 0x1d, 0x24, - 0x1c, 0xa1, 0x18, 0xc5, 0x55, 0x9a, 0x30, 0xbd, 0x7c, 0x7b, 0xe0, 0x8f, 0x8f, 0xd6, 0xd2, 0xed, - 0x61, 0x27, 0x87, 0x17, 0x24, 0xfb, 0x73, 0xf1, 0xcc, 0xbc, 0x41, 0x2e, 0x65, 0xe1, 0x05, 0x89, - 0x66, 0x70, 0xe9, 0xa5, 0xa0, 0x7e, 0x9c, 0xfe, 0xd2, 0x1b, 0x79, 0xb8, 0xf4, 0x0e, 0xa7, 0x9c, - 0xfc, 0xfb, 0x20, 0xba, 0x69, 0x7b, 0x39, 0x62, 0x75, 0x1f, 0x79, 0x1d, 0x67, 0xe9, 0x34, 0xe6, - 0x30, 0x61, 0x97, 0x90, 0xa3, 0x1d, 0x0d, 0xb7, 0xb4, 0x92, 0x1f, 0x39, 0x0a, 0xc4, 0x8e, 0x46, - 0x2f, 0x45, 0x1c, 0x27, 0x92, 0x3e, 0xad, 0x60, 0x3b, 0xae, 0x88, 0x91, 0xcc, 0x41, 0xc2, 0x71, - 0x82, 0x51, 0x9c, 0x25, 0x4a, 0xf9, 0xcb, 0xb7, 0x05, 0x94, 0x29, 0xe4, 0x09, 0xf8, 0xb3, 0x44, - 0x4c, 0x85, 0xb3, 0x44, 0x0f, 0xdd, 0x5a, 0xf0, 0xeb, 0xc1, 0xa9, 0x7d, 0x62, 0x8f, 0x89, 0xc0, - 0x89, 0x3d, 0x81, 0xe2, 0x4a, 0x1a, 0xc0, 0xbb, 0x69, 0xd6, 0xb2, 0x12, 0xdc, 0x34, 0xa3, 0xe9, - 0xd6, 0x36, 0x8a, 0x66, 0xc6, 0x75, 0x37, 0xe9, 0x28, 0xfa, 0xd8, 0xee, 0x2e, 0x6b, 0xbd, 0x58, - 0xff, 0xbe, 0xcd, 0x09, 0x64, 0xb1, 0x98, 0x42, 0x02, 0x9b, 0x23, 0x0d, 0xd3, 0x67, 0xdf, 0xc6, - 0x62, 0x95, 0xc3, 0xbf, 0x1e, 0x44, 0x1f, 0xf9, 0x3c, 0xbe, 0x2a, 0x84, 0xdf, 0xcd, 0x6e, 0x5b, - 0x92, 0x24, 0xae, 0x24, 0x84, 0x35, 0x54, 0x19, 0xfe, 0x3c, 0xfa, 0xb0, 0x11, 0x99, 0x1b, 0x0b, - 0xaa, 0x00, 0x6e, 0xda, 0xa2, 0xcb, 0x8f, 0x39, 0xed, 0x7e, 0xa3, 0x37, 0x6f, 0x56, 0x04, 0x6e, - 0xb9, 0x2a, 0xb4, 0x22, 0xd0, 0x36, 0x94, 0x98, 0x58, 0x11, 0x78, 0x30, 0x3c, 0x53, 0x37, 0x48, - 0xdd, 0x4f, 0x7c, 0x63, 0x9c, 0x36, 0x61, 0xf7, 0x92, 0x47, 0xdd, 0x20, 0x8e, 0x9d, 0x46, 0xac, - 0x12, 0xf1, 0x27, 0x21, 0x0b, 0x28, 0x19, 0x5f, 0xeb, 0xc5, 0x2a, 0x87, 0x7f, 0x19, 0x7d, 0xaf, - 0x55, 0xb1, 0x5d, 0x88, 0xf9, 0xa2, 0x84, 0xe9, 0x70, 0xa3, 0xa3, 0xdc, 0x0d, 0xa8, 0x5d, 0x6f, - 0xf6, 0x57, 0x50, 0xfe, 0xff, 0x7e, 0x10, 0x7d, 0xdf, 0xe5, 0x64, 0x13, 0xeb, 0x32, 0x3c, 0x0b, - 0x99, 0x74, 0x59, 0x5d, 0x8c, 0xe7, 0xd7, 0xd2, 0x69, 0x2d, 0xfa, 0xec, 0x40, 0xde, 0x5a, 0xc6, - 0x69, 0x26, 0x0e, 0x12, 0x3e, 0x0e, 0x19, 0x75, 0xd0, 0xe0, 0xa2, 0x8f, 0x54, 0x69, 0x8d, 0x92, - 0xa2, 0xbf, 0x59, 0x8b, 0x85, 0xa7, 0x74, 0xaf, 0xf4, 0xac, 0x15, 0xd6, 0x7b, 0xd2, 0xca, 0x2d, - 0x6f, 0x36, 0xcb, 0xea, 0x9f, 0xed, 0x20, 0xf7, 0x79, 0x55, 0xaa, 0x9e, 0x48, 0x5f, 0xef, 0x49, - 0x2b, 0xaf, 0x7f, 0x11, 0x7d, 0xd8, 0xf6, 0xaa, 0x26, 0x85, 0x8d, 0x4e, 0x53, 0x68, 0x5e, 0xd8, - 0xec, 0xaf, 0x60, 0x52, 0xfd, 0x2f, 0xd3, 0x8a, 0xb3, 0x72, 0x35, 0xbe, 0x60, 0x57, 0xcd, 0xad, - 0x5c, 0xb7, 0xb7, 0x2a, 0x60, 0x64, 0x11, 0x44, 0xaa, 0xef, 0x27, 0x5b, 0xae, 0xcc, 0xed, 0xdd, - 0x8a, 0x70, 0x65, 0x11, 0x1d, 0xae, 0x5c, 0xd2, 0x8c, 0x55, 0x4d, 0xad, 0xcc, 0x55, 0xe3, 0x87, - 0xfe, 0xa2, 0xb6, 0xaf, 0x1b, 0x3f, 0xea, 0x06, 0x4d, 0xf6, 0xa0, 0xc4, 0x3b, 0xe9, 0xf9, 0xb9, - 0xae, 0x93, 0xbf, 0xa4, 0x36, 0x42, 0x64, 0x0f, 0x04, 0x6a, 0x92, 0xd1, 0xdd, 0x34, 0x03, 0x71, - 0x2a, 0xf5, 0xea, 0xfc, 0x3c, 0x63, 0xf1, 0x14, 0x25, 0xa3, 0xb5, 0x78, 0x64, 0xcb, 0x89, 0x64, - 0xd4, 0xc7, 0x99, 0x4b, 0x3d, 0xb5, 0xf4, 0x04, 0x12, 0x96, 0x27, 0x69, 0x86, 0x2f, 0x29, 0x09, - 0x4d, 0x2d, 0x24, 0x2e, 0xf5, 0xb4, 0x20, 0x33, 0x49, 0xd5, 0xa2, 0xba, 0xdb, 0x37, 0xe5, 0xbf, - 0xdf, 0x56, 0xb4, 0xc4, 0xc4, 0x24, 0xe5, 0xc1, 0xcc, 0x9a, 0xac, 0x16, 0x9e, 0x16, 0xc2, 0xf8, - 0xad, 0xb6, 0x96, 0x94, 0x10, 0x6b, 0x32, 0x97, 0x30, 0x6b, 0x8b, 0xfa, 0xf7, 0x1d, 0x76, 0x95, - 0x0b, 0xa3, 0x77, 0xda, 0x2a, 0x8d, 0x8c, 0x58, 0x5b, 0x60, 0x46, 0x19, 0xfe, 0x71, 0xf4, 0xab, - 0xc2, 0x70, 0xc9, 0x8a, 0xe1, 0x0d, 0x8f, 0x42, 0x69, 0xdd, 0x27, 0xba, 0x49, 0xca, 0xcd, 0xb5, - 0x38, 0x1d, 0x1b, 0xa7, 0x55, 0x3c, 0x83, 0xe1, 0x3d, 0xa2, 0xc5, 0x85, 0x94, 0xb8, 0x16, 0xd7, - 0xa6, 0xdc, 0xa8, 0x38, 0x62, 0x53, 0x65, 0xdd, 0x53, 0x43, 0x2d, 0x0c, 0x45, 0x85, 0x0d, 0x99, - 0x43, 0x8a, 0xa3, 0x78, 0x99, 0xce, 0xf4, 0x84, 0x23, 0xc7, 0xad, 0x0a, 0x1d, 0x52, 0x18, 0x66, - 0x64, 0x41, 0xc4, 0x21, 0x05, 0x09, 0x2b, 0x9f, 0xff, 0x36, 0x88, 0x6e, 0x19, 0x66, 0xaf, 0xd9, - 0x3b, 0xda, 0xcf, 0xcf, 0xd9, 0x9b, 0x94, 0x5f, 0x1c, 0xa4, 0xf9, 0x65, 0x35, 0xfc, 0x8c, 0x32, - 0xe9, 0xe7, 0x75, 0x51, 0x3e, 0xbf, 0xb6, 0x9e, 0xc9, 0x20, 0x9b, 0x2d, 0x1e, 0x73, 0x62, 0x28, - 0x35, 0x50, 0x06, 0xa9, 0x77, 0x82, 0x30, 0x47, 0x64, 0x90, 0x21, 0xde, 0x34, 0xb1, 0x76, 0x9e, - 0xb1, 0x1c, 0x37, 0xb1, 0xb1, 0x50, 0x0b, 0x89, 0x26, 0x6e, 0x41, 0x66, 0x3c, 0x6e, 0x44, 0x72, - 0x37, 0x62, 0x2b, 0xcb, 0xd0, 0x78, 0xac, 0x55, 0x35, 0x40, 0x8c, 0xc7, 0x5e, 0x50, 0xf9, 0x39, - 0x89, 0xbe, 0x53, 0x3f, 0xd2, 0xe3, 0x12, 0x96, 0x29, 0xe0, 0xc3, 0x6d, 0x4b, 0x42, 0xf4, 0x7f, - 0x97, 0x30, 0x3d, 0xeb, 0x34, 0xaf, 0x8a, 0x2c, 0xae, 0x2e, 0xd4, 0x71, 0xa7, 0x5b, 0xe7, 0x46, - 0x88, 0x0f, 0x3c, 0xef, 0x77, 0x50, 0x66, 0x50, 0x6f, 0x64, 0x7a, 0x88, 0x79, 0xe0, 0x57, 0x6d, - 0x0d, 0x33, 0x0f, 0x3b, 0x39, 0xb3, 0xff, 0xba, 0x17, 0x67, 0x19, 0x94, 0xab, 0x46, 0x76, 0x18, - 0xe7, 0xe9, 0x39, 0x54, 0x1c, 0xed, 0xbf, 0x2a, 0x6a, 0x84, 0x31, 0x62, 0xff, 0x35, 0x80, 0x9b, - 0x6c, 0x1e, 0x79, 0xde, 0xcf, 0xa7, 0xf0, 0x16, 0x65, 0xf3, 0xd8, 0x8e, 0x60, 0x88, 0x6c, 0x9e, - 0x62, 0xcd, 0x8e, 0xe8, 0x8b, 0x8c, 0x25, 0x97, 0x6a, 0x0a, 0x70, 0x1b, 0x58, 0x48, 0xf0, 0x1c, - 0x70, 0x27, 0x84, 0x98, 0x49, 0x40, 0x08, 0x4e, 0xa0, 0xc8, 0xe2, 0x04, 0xdf, 0x70, 0x90, 0x3a, - 0x4a, 0x46, 0x4c, 0x02, 0x98, 0x41, 0xc5, 0x55, 0x37, 0x27, 0x7c, 0xc5, 0x45, 0x17, 0x27, 0xee, - 0x84, 0x10, 0x33, 0x0d, 0x0a, 0xc1, 0xb8, 0xc8, 0x52, 0x8e, 0xba, 0x81, 0xd4, 0x10, 0x12, 0xa2, - 0x1b, 0xb8, 0x04, 0x32, 0x79, 0x08, 0xe5, 0x0c, 0xbc, 0x26, 0x85, 0x24, 0x68, 0xb2, 0x21, 0xcc, - 0x45, 0x38, 0x59, 0x77, 0x56, 0xac, 0xd0, 0x45, 0x38, 0x55, 0x2d, 0x56, 0xac, 0x88, 0x8b, 0x70, - 0x0e, 0x80, 0x8a, 0x78, 0x1c, 0x57, 0xdc, 0x5f, 0x44, 0x21, 0x09, 0x16, 0xb1, 0x21, 0xcc, 0x1c, - 0x2d, 0x8b, 0xb8, 0xe0, 0x68, 0x8e, 0x56, 0x05, 0xb0, 0xce, 0x43, 0x6f, 0x92, 0x72, 0x33, 0x92, - 0xc8, 0x56, 0x01, 0xbe, 0x9b, 0x42, 0x36, 0xad, 0xd0, 0x48, 0xa2, 0x9e, 0x7b, 0x23, 0x25, 0x46, - 0x92, 0x36, 0x85, 0x42, 0x49, 0xed, 0x1b, 0xfb, 0x6a, 0x87, 0xb6, 0x8c, 0xef, 0x84, 0x10, 0x33, - 0x3e, 0x35, 0x85, 0xde, 0x8e, 0xcb, 0x32, 0xad, 0x27, 0xff, 0x07, 0xfe, 0x02, 0x35, 0x72, 0x62, - 0x7c, 0xf2, 0x71, 0xa8, 0x7b, 0x35, 0x03, 0xb7, 0xaf, 0x60, 0x78, 0xe8, 0xbe, 0x1b, 0x64, 0x4c, - 0xc6, 0x29, 0x24, 0xd6, 0x81, 0x9e, 0xef, 0x69, 0x7a, 0xce, 0xf3, 0x1e, 0x74, 0x61, 0xd6, 0x45, - 0x75, 0xed, 0xe2, 0x90, 0x2d, 0x61, 0xc2, 0x5e, 0xbe, 0x4d, 0x2b, 0x9e, 0xe6, 0x33, 0x35, 0x73, - 0x3f, 0x27, 0x2c, 0xf9, 0x60, 0xe2, 0xa2, 0x7a, 0xa7, 0x92, 0x49, 0x20, 0x50, 0x59, 0x8e, 0xe0, - 0xca, 0x9b, 0x40, 0x60, 0x8b, 0x9a, 0x23, 0x12, 0x88, 0x10, 0x6f, 0xf6, 0x51, 0xb4, 0x73, 0xf5, - 0x36, 0xdf, 0x84, 0x35, 0xb9, 0x1c, 0x65, 0x0d, 0x83, 0xc4, 0x52, 0x36, 0xa8, 0x60, 0xd6, 0x97, - 0xda, 0xbf, 0xe9, 0x62, 0x8f, 0x08, 0x3b, 0xed, 0x6e, 0xf6, 0xb8, 0x07, 0xe9, 0x71, 0x65, 0x4e, - 0xa5, 0x29, 0x57, 0xed, 0x43, 0xe9, 0xc7, 0x3d, 0x48, 0x6b, 0x4f, 0xc6, 0xae, 0xd6, 0x8b, 0x38, - 0xb9, 0x9c, 0x95, 0x6c, 0x91, 0x4f, 0xb7, 0x59, 0xc6, 0x4a, 0xb4, 0x27, 0xe3, 0x94, 0x1a, 0xa1, - 0xc4, 0x9e, 0x4c, 0x87, 0x8a, 0xc9, 0xe0, 0xec, 0x52, 0x6c, 0x65, 0xe9, 0x0c, 0xaf, 0xa8, 0x1d, - 0x43, 0x02, 0x20, 0x32, 0x38, 0x2f, 0xe8, 0x09, 0x22, 0xb9, 0xe2, 0xe6, 0x69, 0x12, 0x67, 0xd2, - 0xdf, 0x06, 0x6d, 0xc6, 0x01, 0x3b, 0x83, 0xc8, 0xa3, 0xe0, 0xa9, 0xe7, 0x64, 0x51, 0xe6, 0xfb, - 0x39, 0x67, 0x64, 0x3d, 0x1b, 0xa0, 0xb3, 0x9e, 0x16, 0x88, 0x86, 0xd5, 0x09, 0xbc, 0xad, 0x4b, - 0x53, 0xff, 0xe3, 0x1b, 0x56, 0xeb, 0xdf, 0x47, 0x4a, 0x1e, 0x1a, 0x56, 0x11, 0x87, 0x2a, 0xa3, - 0x9c, 0xc8, 0x80, 0x09, 0x68, 0xbb, 0x61, 0xf2, 0xa8, 0x1b, 0xf4, 0xfb, 0x19, 0xf3, 0x55, 0x06, - 0x21, 0x3f, 0x02, 0xe8, 0xe3, 0xa7, 0x01, 0xcd, 0x76, 0x8b, 0x53, 0x9f, 0x0b, 0x48, 0x2e, 0x5b, - 0x97, 0x6c, 0xdc, 0x82, 0x4a, 0x84, 0xd8, 0x6e, 0x21, 0x50, 0x7f, 0x13, 0xed, 0x27, 0x2c, 0x0f, - 0x35, 0x51, 0x2d, 0xef, 0xd3, 0x44, 0x8a, 0x33, 0x8b, 0x5f, 0x2d, 0x55, 0x91, 0x29, 0x9b, 0x69, - 0x8d, 0xb0, 0x60, 0x43, 0xc4, 0xe2, 0x97, 0x84, 0x4d, 0x4e, 0x8e, 0x7d, 0x1e, 0xb6, 0x6f, 0xd5, - 0xb6, 0xac, 0x1c, 0xd2, 0xb7, 0x6a, 0x29, 0x96, 0xae, 0xa4, 0x8c, 0x91, 0x0e, 0x2b, 0x6e, 0x9c, - 0x3c, 0xed, 0x07, 0x9b, 0x25, 0x8f, 0xe3, 0x73, 0x3b, 0x83, 0xb8, 0x94, 0x5e, 0xd7, 0x03, 0x86, - 0x0c, 0x46, 0x2c, 0x79, 0x02, 0x38, 0x1a, 0xc2, 0x1c, 0xcf, 0xdb, 0x2c, 0xe7, 0x90, 0x73, 0xdf, - 0x10, 0xe6, 0x1a, 0x53, 0x60, 0x68, 0x08, 0xa3, 0x14, 0x50, 0xdc, 0x8a, 0xfd, 0x20, 0xe0, 0x47, - 0xf1, 0xdc, 0x9b, 0xb1, 0xc9, 0xbd, 0x1e, 0x29, 0x0f, 0xc5, 0x2d, 0xe2, 0xac, 0x03, 0x37, 0xdb, - 0xcb, 0x24, 0x2e, 0x67, 0x7a, 0x77, 0x63, 0x3a, 0xdc, 0xa4, 0xed, 0xb8, 0x24, 0x71, 0xe0, 0x16, - 0xd6, 0x40, 0xc3, 0xce, 0xfe, 0x3c, 0x9e, 0xe9, 0x9a, 0x7a, 0x6a, 0x20, 0xe4, 0xad, 0xaa, 0x3e, - 0xea, 0x06, 0x91, 0x9f, 0xd7, 0xe9, 0x14, 0x58, 0xc0, 0x8f, 0x90, 0xf7, 0xf1, 0x83, 0x41, 0x94, - 0xbd, 0xd5, 0xf5, 0x96, 0x2b, 0xba, 0xad, 0x7c, 0xaa, 0xd6, 0xb1, 0x23, 0xe2, 0xf1, 0x20, 0x2e, - 0x94, 0xbd, 0x11, 0x3c, 0xea, 0xa3, 0xcd, 0x06, 0x6d, 0xa8, 0x8f, 0xea, 0xfd, 0xd7, 0x3e, 0x7d, - 0xd4, 0x07, 0x2b, 0x9f, 0x3f, 0x55, 0x7d, 0x74, 0x27, 0xe6, 0x71, 0x9d, 0xb7, 0xbf, 0x4e, 0xe1, - 0x4a, 0x2d, 0x84, 0x3d, 0xf5, 0x6d, 0xa8, 0x91, 0x78, 0x9d, 0x0a, 0xad, 0x8a, 0x37, 0x7a, 0xf3, - 0x01, 0xdf, 0x6a, 0x85, 0xd0, 0xe9, 0x1b, 0x2d, 0x15, 0x36, 0x7a, 0xf3, 0x01, 0xdf, 0xea, 0x3d, - 0xcd, 0x4e, 0xdf, 0xe8, 0x65, 0xcd, 0x8d, 0xde, 0xbc, 0xf2, 0xfd, 0x37, 0x4d, 0xc7, 0xb5, 0x9d, - 0xd7, 0x79, 0x58, 0xc2, 0xd3, 0x25, 0xf8, 0xd2, 0x49, 0xd7, 0x9e, 0x46, 0x43, 0xe9, 0x24, 0xad, - 0x62, 0x7d, 0xdc, 0xc3, 0x57, 0x8a, 0x63, 0x56, 0xa5, 0xe2, 0xc0, 0xfc, 0x79, 0x0f, 0xa3, 0x0d, - 0x1c, 0x5a, 0x34, 0x85, 0x94, 0xcc, 0x71, 0xa3, 0x83, 0x9a, 0x3b, 0xb5, 0x4f, 0x03, 0xf6, 0xda, - 0x57, 0x6b, 0xd7, 0x7b, 0xd2, 0xe6, 0xe0, 0xcf, 0x61, 0xec, 0x13, 0xc7, 0x50, 0xab, 0x7a, 0x0f, - 0x1d, 0x37, 0xfb, 0x2b, 0x28, 0xf7, 0x7f, 0xd7, 0xac, 0x2b, 0xb0, 0x7f, 0xd5, 0x09, 0x9e, 0xf5, - 0xb1, 0x88, 0x3a, 0xc2, 0xf3, 0x6b, 0xe9, 0xa8, 0x82, 0xfc, 0xd7, 0x20, 0xba, 0xe3, 0x2d, 0x88, - 0x7b, 0xf6, 0xfc, 0xfb, 0x7d, 0x6c, 0xfb, 0xcf, 0xa0, 0xbf, 0xf8, 0x36, 0xaa, 0xaa, 0x74, 0xff, - 0xd4, 0x2c, 0xef, 0x1b, 0x0d, 0xf1, 0xde, 0xc3, 0xab, 0x72, 0x0a, 0xa5, 0xea, 0xb1, 0xa1, 0xa0, - 0x33, 0x30, 0xee, 0xb7, 0x9f, 0x5e, 0x53, 0xcb, 0xfa, 0x10, 0x8d, 0x03, 0xab, 0x77, 0xce, 0xac, - 0xf2, 0x84, 0x2c, 0x5b, 0x34, 0x2e, 0xd0, 0x67, 0xd7, 0x55, 0xa3, 0x7a, 0xb2, 0x05, 0x8b, 0xf7, - 0xda, 0x9f, 0xf7, 0x34, 0xec, 0xbc, 0xe9, 0xfe, 0xc9, 0xf5, 0x94, 0x54, 0x59, 0xfe, 0x67, 0x10, - 0xdd, 0x77, 0x58, 0x73, 0xda, 0x81, 0xf6, 0x64, 0x7e, 0x14, 0xb0, 0x4f, 0x29, 0xe9, 0xc2, 0xfd, - 0xc1, 0xb7, 0x53, 0x36, 0x5f, 0x6d, 0x71, 0x54, 0x76, 0xd3, 0x8c, 0x43, 0xd9, 0xfe, 0x6a, 0x8b, - 0x6b, 0x57, 0x52, 0x23, 0xfa, 0xab, 0x2d, 0x01, 0xdc, 0xfa, 0x6a, 0x8b, 0xc7, 0xb3, 0xf7, 0xab, - 0x2d, 0x5e, 0x6b, 0xc1, 0xaf, 0xb6, 0x84, 0x35, 0xa8, 0xc9, 0xa7, 0x29, 0x82, 0xdc, 0x55, 0xef, - 0x65, 0xd1, 0xdd, 0x64, 0x7f, 0x76, 0x1d, 0x15, 0x62, 0xfa, 0x95, 0x9c, 0xb8, 0x11, 0xd7, 0xe3, - 0x99, 0x3a, 0xb7, 0xe2, 0x36, 0x7a, 0xf3, 0xca, 0xf7, 0x4f, 0xd4, 0xda, 0x4b, 0x4f, 0x36, 0xac, - 0x14, 0x5f, 0xec, 0x59, 0x0b, 0x4d, 0x1e, 0xb5, 0x05, 0xbb, 0xe5, 0x9f, 0xf6, 0x83, 0x89, 0xea, - 0xd6, 0x84, 0x6a, 0xf4, 0x51, 0x97, 0x21, 0xd4, 0xe4, 0x1b, 0xbd, 0x79, 0x62, 0x92, 0x93, 0xbe, - 0x65, 0x6b, 0xf7, 0x30, 0xe6, 0xb6, 0xf5, 0x66, 0x7f, 0x05, 0xe5, 0x7e, 0xa9, 0x92, 0x5a, 0xdb, - 0xbd, 0x68, 0xe7, 0xf5, 0x2e, 0x53, 0x63, 0xa7, 0x99, 0x47, 0x7d, 0xf1, 0x50, 0x7a, 0x63, 0x4f, - 0xf0, 0x5d, 0xe9, 0x8d, 0x77, 0x92, 0xff, 0xe4, 0x7a, 0x4a, 0xaa, 0x2c, 0xff, 0x3a, 0x88, 0x6e, - 0x92, 0x65, 0x51, 0x71, 0xf0, 0x59, 0x5f, 0xcb, 0x28, 0x1e, 0x3e, 0xbf, 0xb6, 0x9e, 0x2a, 0xd4, - 0x7f, 0x0c, 0xa2, 0x5b, 0x81, 0x42, 0xc9, 0x00, 0xb9, 0x86, 0x75, 0x37, 0x50, 0x7e, 0x78, 0x7d, - 0x45, 0x6a, 0xba, 0xb7, 0xf1, 0x71, 0xfb, 0x73, 0x26, 0x01, 0xdb, 0x63, 0xfa, 0x73, 0x26, 0xdd, - 0x5a, 0x78, 0x0b, 0xaa, 0x4e, 0x4a, 0xd4, 0xca, 0xc8, 0xb7, 0x05, 0x25, 0x72, 0x16, 0xb4, 0x22, - 0x7a, 0xd8, 0xc9, 0xf9, 0x9c, 0xbc, 0x7c, 0x5b, 0xc4, 0xf9, 0x94, 0x76, 0x22, 0xe5, 0xdd, 0x4e, - 0x34, 0x87, 0xb7, 0xee, 0x6a, 0xe9, 0x09, 0x6b, 0x96, 0x79, 0x8f, 0x29, 0x7d, 0x8d, 0x04, 0xb7, - 0xee, 0x5a, 0x28, 0xe1, 0x4d, 0xe5, 0xb4, 0x21, 0x6f, 0x28, 0x95, 0x7d, 0xd2, 0x07, 0x45, 0x0b, - 0x08, 0xed, 0x4d, 0x9f, 0x08, 0x3c, 0x0d, 0x59, 0x69, 0x9d, 0x0a, 0xac, 0xf7, 0xa4, 0x09, 0xb7, - 0x63, 0xe0, 0x5f, 0x42, 0x3c, 0x85, 0x32, 0xe8, 0x56, 0x53, 0xbd, 0xdc, 0xda, 0xb4, 0xcf, 0xed, - 0x36, 0xcb, 0x16, 0xf3, 0x5c, 0x35, 0x26, 0xe9, 0xd6, 0xa6, 0xba, 0xdd, 0x22, 0x1a, 0x6f, 0x5a, - 0x1a, 0xb7, 0x22, 0xbd, 0x7c, 0x12, 0x36, 0xe3, 0x64, 0x95, 0x6b, 0xbd, 0x58, 0xba, 0x9e, 0x2a, - 0x8c, 0x3a, 0xea, 0x89, 0x22, 0x69, 0xbd, 0x27, 0x8d, 0x77, 0x0f, 0x2d, 0xb7, 0x3a, 0x9e, 0x36, - 0x3a, 0x6c, 0xb5, 0x42, 0x6a, 0xb3, 0xbf, 0x02, 0xde, 0xab, 0x55, 0x51, 0x55, 0xaf, 0x8b, 0x76, - 0xd3, 0x2c, 0x1b, 0xae, 0x05, 0xc2, 0xa4, 0x81, 0x82, 0x7b, 0xb5, 0x1e, 0x98, 0x88, 0xe4, 0x66, - 0x6f, 0x33, 0x1f, 0x76, 0xd9, 0x11, 0x54, 0xaf, 0x48, 0xb6, 0x69, 0xb4, 0xdf, 0x66, 0x3d, 0x6a, - 0x5d, 0xdb, 0x51, 0xf8, 0xc1, 0xb5, 0x2a, 0xbc, 0xd1, 0x9b, 0x47, 0x97, 0x01, 0x04, 0x25, 0x66, - 0x96, 0x7b, 0x94, 0x09, 0x67, 0x26, 0xb9, 0xdf, 0x41, 0xa1, 0x3d, 0x4b, 0xd9, 0x8d, 0xde, 0xa4, - 0xd3, 0x19, 0x70, 0xef, 0x39, 0x96, 0x0d, 0x04, 0xcf, 0xb1, 0x10, 0x88, 0x9a, 0x4e, 0xfe, 0xae, - 0x37, 0x6b, 0xf7, 0xa7, 0xbe, 0xa6, 0x53, 0xca, 0x16, 0x15, 0x6a, 0x3a, 0x2f, 0x8d, 0x46, 0x03, - 0xed, 0x56, 0xbd, 0xba, 0xfe, 0x24, 0x64, 0x06, 0xbd, 0xbf, 0xbe, 0xd6, 0x8b, 0x45, 0x33, 0x8a, - 0x71, 0x98, 0xce, 0x53, 0xee, 0x9b, 0x51, 0x2c, 0x1b, 0x35, 0x12, 0x9a, 0x51, 0xda, 0x28, 0x55, - 0xbd, 0x3a, 0x47, 0xd8, 0x9f, 0x86, 0xab, 0x27, 0x99, 0x7e, 0xd5, 0xd3, 0x6c, 0xeb, 0xd8, 0x35, - 0xd7, 0x21, 0xc3, 0x2f, 0xd4, 0x62, 0xd9, 0x13, 0xdb, 0xe2, 0xe5, 0x4a, 0x0c, 0x86, 0x46, 0x1d, - 0x4a, 0x01, 0x1f, 0x27, 0xd4, 0x5c, 0x73, 0x32, 0x5c, 0x14, 0x10, 0x97, 0x71, 0x9e, 0x78, 0x17, - 0xa7, 0xc2, 0x60, 0x8b, 0x0c, 0x2d, 0x4e, 0x49, 0x0d, 0x74, 0xa8, 0xef, 0xbe, 0x16, 0xe9, 0xe9, - 0x0a, 0xfa, 0xfd, 0x43, 0xf7, 0xad, 0xc8, 0xc7, 0x3d, 0x48, 0x7c, 0xa8, 0xdf, 0x00, 0x7a, 0x5b, - 0x5e, 0x3a, 0xfd, 0x38, 0x60, 0xca, 0x45, 0x43, 0x0b, 0x61, 0x5a, 0x05, 0x05, 0xb5, 0x4e, 0x70, - 0x81, 0xff, 0x18, 0x56, 0xbe, 0xa0, 0x36, 0xf9, 0xa9, 0x40, 0x42, 0x41, 0xdd, 0x46, 0x51, 0x9e, - 0x69, 0xaf, 0x83, 0x1e, 0x04, 0xf4, 0xed, 0xa5, 0xcf, 0xc3, 0x4e, 0x0e, 0xf5, 0x9c, 0x9d, 0x74, - 0xe9, 0x9c, 0x62, 0x78, 0x0a, 0xba, 0x93, 0x2e, 0xfd, 0x87, 0x18, 0x6b, 0xbd, 0x58, 0x7c, 0x61, - 0x20, 0xe6, 0xf0, 0xb6, 0x39, 0xc9, 0xf7, 0x14, 0x57, 0xc8, 0x5b, 0x47, 0xf9, 0x8f, 0xba, 0x41, - 0x73, 0x3d, 0xf7, 0xb8, 0x64, 0x09, 0x54, 0x95, 0xfa, 0xc6, 0x9b, 0x7b, 0xff, 0x49, 0xc9, 0x46, - 0xe8, 0x0b, 0x6f, 0xf7, 0xc2, 0x90, 0xb2, 0xfd, 0x65, 0xf4, 0xee, 0x01, 0x9b, 0x8d, 0x21, 0x9f, - 0x0e, 0x7f, 0xe0, 0x5e, 0x88, 0x65, 0xb3, 0x51, 0xfd, 0xb3, 0xb6, 0x77, 0x83, 0x12, 0x9b, 0x2b, - 0x7d, 0x3b, 0x70, 0xb6, 0x98, 0x8d, 0x79, 0xcc, 0xd1, 0x95, 0x3e, 0xf1, 0xfb, 0xa8, 0x16, 0x10, - 0x57, 0xfa, 0x1c, 0x00, 0xd9, 0x9b, 0x94, 0x00, 0x5e, 0x7b, 0xb5, 0x20, 0x68, 0x4f, 0x01, 0x66, - 0xd6, 0xd5, 0xf6, 0xea, 0xc4, 0x16, 0x5f, 0xc1, 0x33, 0x3a, 0x42, 0x4a, 0xcc, 0xba, 0x6d, 0xca, - 0x04, 0x83, 0xac, 0xbe, 0xf8, 0xa2, 0xc5, 0x62, 0x3e, 0x8f, 0xcb, 0x15, 0x0a, 0x06, 0x55, 0x4b, - 0x0b, 0x20, 0x82, 0xc1, 0x0b, 0x9a, 0x28, 0x6f, 0x1e, 0x73, 0x72, 0xb9, 0xc7, 0x4a, 0xb6, 0xe0, - 0x69, 0x0e, 0xf8, 0xab, 0x06, 0xfa, 0x81, 0xda, 0x0c, 0x11, 0xe5, 0x14, 0x6b, 0xb2, 0x42, 0x41, - 0xc8, 0xdb, 0x81, 0xe2, 0x4b, 0xa9, 0x15, 0x67, 0x25, 0x3e, 0x1d, 0x94, 0x56, 0x30, 0x44, 0x64, - 0x85, 0x24, 0x8c, 0xda, 0xfe, 0x38, 0xcd, 0x67, 0xde, 0xb6, 0x3f, 0xb6, 0xbf, 0x33, 0x78, 0x8b, - 0x06, 0xcc, 0xf8, 0x2e, 0x1f, 0x9a, 0xfc, 0x72, 0x90, 0x7a, 0x4b, 0xd2, 0xfb, 0xd0, 0x6d, 0x82, - 0x18, 0xdf, 0xfd, 0x24, 0x72, 0xf5, 0xaa, 0x80, 0x1c, 0xa6, 0xcd, 0x1d, 0x38, 0x9f, 0x2b, 0x87, - 0x08, 0xba, 0xc2, 0xa4, 0x19, 0x55, 0x85, 0xfc, 0x64, 0x91, 0x1f, 0x97, 0xec, 0x3c, 0xcd, 0xa0, - 0x44, 0xa3, 0xaa, 0x54, 0xb7, 0xe4, 0xc4, 0xa8, 0xea, 0xe3, 0xcc, 0x65, 0x0a, 0x21, 0x75, 0x3e, - 0xf7, 0x3b, 0x29, 0xe3, 0x04, 0x5f, 0xa6, 0x90, 0x36, 0xda, 0x18, 0xb1, 0x93, 0x16, 0xc0, 0x4d, - 0xa4, 0x1f, 0x02, 0x2f, 0xd3, 0xa4, 0x1a, 0x03, 0x3f, 0x8e, 0xcb, 0x78, 0x0e, 0x1c, 0x4a, 0x1c, - 0xe9, 0x0a, 0x19, 0x39, 0x0c, 0x11, 0xe9, 0x14, 0xab, 0x1c, 0xfe, 0x61, 0xf4, 0x7e, 0x3d, 0xd0, - 0x43, 0xae, 0xbe, 0x4c, 0xff, 0x52, 0xfc, 0x49, 0x8b, 0xe1, 0x07, 0xda, 0xc6, 0x98, 0x97, 0x10, - 0xcf, 0x1b, 0xdb, 0xef, 0xe9, 0xdf, 0x05, 0xb8, 0x39, 0xa8, 0x1b, 0xe4, 0x88, 0xf1, 0xf4, 0xbc, - 0x5e, 0x57, 0xa9, 0x53, 0x2c, 0xd4, 0x20, 0xb6, 0x78, 0x14, 0xf8, 0x64, 0x80, 0x8f, 0x33, 0x03, - 0x8d, 0x2d, 0x3d, 0x81, 0x22, 0xc3, 0x03, 0x8d, 0xa3, 0x2d, 0x00, 0x62, 0xa0, 0xf1, 0x82, 0x26, - 0xba, 0x6c, 0xf1, 0x04, 0xc2, 0x95, 0x99, 0x40, 0xbf, 0xca, 0x4c, 0x9c, 0x77, 0x04, 0xb2, 0xe8, - 0xfd, 0x43, 0x98, 0x9f, 0x41, 0x59, 0x5d, 0xa4, 0xc5, 0x5e, 0x3d, 0xc3, 0xc6, 0x7c, 0x81, 0xdf, - 0xa2, 0x33, 0xc4, 0x48, 0x23, 0x44, 0x1a, 0x42, 0xa0, 0x66, 0x28, 0x33, 0xc0, 0x7e, 0x75, 0x14, - 0xcf, 0x41, 0x7c, 0x00, 0x61, 0xb8, 0x46, 0x19, 0xb1, 0x20, 0x62, 0x28, 0x23, 0x61, 0xeb, 0x75, - 0x23, 0xc3, 0x9c, 0xc0, 0xac, 0x8e, 0xb0, 0xf2, 0x38, 0x5e, 0xcd, 0x21, 0xe7, 0xca, 0x24, 0xda, - 0x84, 0xb5, 0x4c, 0xfa, 0x79, 0x62, 0x13, 0xb6, 0x8f, 0x9e, 0x95, 0x74, 0x3b, 0x0f, 0xfe, 0x98, - 0x95, 0x5c, 0xfe, 0xdd, 0x89, 0xd3, 0x32, 0x43, 0x49, 0xb7, 0xfb, 0x50, 0x1d, 0x92, 0x48, 0xba, - 0xc3, 0x1a, 0xd6, 0x07, 0x9b, 0x9d, 0x32, 0xbc, 0x86, 0x52, 0xc7, 0xc9, 0xcb, 0x79, 0x9c, 0x66, - 0x2a, 0x1a, 0xbe, 0x08, 0xd8, 0x26, 0x74, 0x88, 0x0f, 0x36, 0xf7, 0xd5, 0xb5, 0x3e, 0x71, 0x1d, - 0x2e, 0x21, 0xda, 0x13, 0xee, 0xb0, 0x4f, 0xec, 0x09, 0x77, 0x6b, 0x99, 0xa5, 0x9a, 0x61, 0x05, - 0xb7, 0x12, 0xc4, 0x36, 0x9b, 0xe2, 0x0d, 0x22, 0xcb, 0x26, 0x02, 0x89, 0xa5, 0x5a, 0x50, 0xc1, - 0xcc, 0x6d, 0x06, 0xdb, 0x4d, 0xf3, 0x38, 0x4b, 0x7f, 0x8a, 0xef, 0x3e, 0x5b, 0x76, 0x1a, 0x82, - 0x98, 0xdb, 0xfc, 0xa4, 0xcf, 0xd5, 0x1e, 0xf0, 0x49, 0x5a, 0x0f, 0xfd, 0x8f, 0x02, 0xcf, 0x4d, - 0x10, 0xdd, 0xae, 0x2c, 0x52, 0xb9, 0xfa, 0xd9, 0x20, 0xba, 0x89, 0x1f, 0xeb, 0x56, 0x51, 0x8c, - 0xeb, 0x94, 0xe4, 0x04, 0x12, 0x48, 0x0b, 0x3e, 0xfc, 0x34, 0xfc, 0xac, 0x10, 0x4e, 0x9c, 0xac, - 0xf7, 0x50, 0xb3, 0xce, 0x6b, 0xeb, 0xb1, 0x64, 0x2c, 0xff, 0x20, 0xd3, 0x69, 0x05, 0xa5, 0x9a, - 0x29, 0xf7, 0x80, 0xa3, 0xde, 0x69, 0x71, 0x23, 0x0b, 0xac, 0x2b, 0x4a, 0xf4, 0xce, 0xb0, 0x86, - 0xd9, 0xdd, 0xb1, 0xb8, 0x13, 0xa8, 0x58, 0xb6, 0x04, 0x71, 0xfd, 0xed, 0x29, 0x69, 0xcc, 0xa2, - 0x88, 0xdd, 0x1d, 0x9a, 0x36, 0xe9, 0x46, 0xdb, 0xed, 0x56, 0xbe, 0xda, 0xc7, 0x67, 0xe4, 0x1e, - 0x4b, 0x02, 0x23, 0xd2, 0x8d, 0x00, 0x6e, 0xed, 0x7e, 0x96, 0x2c, 0x9e, 0x26, 0x71, 0xc5, 0x8f, - 0xe3, 0x55, 0xc6, 0xe2, 0xa9, 0x98, 0xd7, 0xf1, 0xee, 0x67, 0xc3, 0x8c, 0x6c, 0x88, 0xda, 0xfd, - 0xa4, 0x60, 0xb3, 0xb2, 0x53, 0x7f, 0x67, 0x4a, 0x5d, 0x2d, 0xbc, 0x8b, 0x72, 0x24, 0x51, 0x5e, - 0x7c, 0xad, 0xf0, 0x5e, 0x18, 0x32, 0xaf, 0x44, 0x49, 0x91, 0x48, 0x43, 0x6e, 0xf9, 0x74, 0x9c, - 0x04, 0xe4, 0x76, 0x80, 0x30, 0x9f, 0x49, 0x90, 0xbf, 0x37, 0x7f, 0x2a, 0x81, 0xab, 0x4f, 0xd7, - 0x3e, 0xf5, 0xe9, 0xda, 0xd0, 0xc8, 0xfe, 0x0e, 0xd9, 0x7a, 0x4f, 0x5a, 0x7a, 0x7d, 0x71, 0xfb, - 0x7f, 0xbf, 0xbe, 0x31, 0xf8, 0xf9, 0xd7, 0x37, 0x06, 0xff, 0xff, 0xf5, 0x8d, 0xc1, 0xcf, 0xbe, - 0xb9, 0xf1, 0xce, 0xcf, 0xbf, 0xb9, 0xf1, 0xce, 0x2f, 0xbe, 0xb9, 0xf1, 0xce, 0x57, 0xef, 0xaa, - 0x3f, 0x58, 0x76, 0xf6, 0x2b, 0xe2, 0xcf, 0x8e, 0x3d, 0xff, 0x65, 0x00, 0x00, 0x00, 0xff, 0xff, - 0xf5, 0x3b, 0x43, 0x25, 0xd4, 0x6c, 0x00, 0x00, + 0x52, 0xc0, 0xb7, 0x5f, 0x58, 0xa8, 0xe3, 0x16, 0xa8, 0x85, 0x65, 0x6f, 0xb9, 0x9b, 0xef, 0x6f, + 0x8f, 0xdb, 0xb3, 0x33, 0xfb, 0x71, 0xec, 0x21, 0x21, 0x8f, 0x3d, 0xf6, 0x9a, 0xb3, 0x3d, 0xc6, + 0x6d, 0xcf, 0x48, 0x2b, 0x21, 0x51, 0x53, 0x1d, 0x6e, 0x17, 0xae, 0xae, 0xac, 0xab, 0xca, 0x6e, + 0x4f, 0x1f, 0x02, 0x81, 0x40, 0x20, 0x10, 0x88, 0x13, 0x5f, 0x2f, 0x3c, 0x20, 0xf1, 0xd7, 0xf0, + 0x78, 0x12, 0x2f, 0xf0, 0x86, 0x76, 0xff, 0x91, 0x53, 0x65, 0x66, 0xe5, 0x47, 0x54, 0x46, 0x56, + 0x79, 0x9f, 0x66, 0xd4, 0xf1, 0x8b, 0x88, 0xcc, 0xca, 0xcc, 0xc8, 0xc8, 0x8f, 0x2a, 0x47, 0xd7, + 0xcb, 0x37, 0x1b, 0x65, 0xc5, 0x38, 0xab, 0x37, 0x6a, 0xa8, 0x96, 0x59, 0x0a, 0xed, 0xbf, 0x63, + 0xf1, 0x73, 0xfc, 0x6e, 0x52, 0xac, 0xf8, 0xaa, 0x84, 0x8f, 0x3e, 0x34, 0x64, 0xca, 0xe6, 0xf3, + 0xa4, 0x98, 0xd6, 0x12, 0xf9, 0xe8, 0x03, 0x23, 0x81, 0x25, 0x14, 0x5c, 0xfd, 0xfe, 0xf4, 0x7f, + 0xfe, 0x6f, 0x14, 0xbd, 0xb7, 0x95, 0x67, 0x50, 0xf0, 0x2d, 0xa5, 0x11, 0x7f, 0x15, 0x7d, 0x77, + 0xb3, 0x2c, 0x77, 0x81, 0xbf, 0x82, 0xaa, 0xce, 0x58, 0x11, 0xdf, 0x1e, 0x2b, 0x07, 0xe3, 0xe3, + 0x32, 0x1d, 0x6f, 0x96, 0xe5, 0xd8, 0x08, 0xc7, 0xc7, 0xf0, 0x93, 0x05, 0xd4, 0xfc, 0xa3, 0x3b, + 0x61, 0xa8, 0x2e, 0x59, 0x51, 0x43, 0x7c, 0x16, 0xfd, 0xc6, 0x66, 0x59, 0x4e, 0x80, 0x6f, 0x43, + 0x53, 0x81, 0x09, 0x4f, 0x38, 0xc4, 0xf7, 0x3b, 0xaa, 0x2e, 0xa0, 0x7d, 0x3c, 0xe8, 0x07, 0x95, + 0x9f, 0x93, 0xe8, 0x3b, 0x8d, 0x9f, 0xf3, 0x05, 0x9f, 0xb2, 0xcb, 0x22, 0xbe, 0xd9, 0x55, 0x54, + 0x22, 0x6d, 0xfb, 0x56, 0x08, 0x51, 0x56, 0x5f, 0x47, 0xbf, 0xfa, 0x3a, 0xc9, 0x73, 0xe0, 0x5b, + 0x15, 0x34, 0x05, 0x77, 0x75, 0xa4, 0x68, 0x2c, 0x65, 0xda, 0xee, 0xed, 0x20, 0xa3, 0x0c, 0x7f, + 0x15, 0x7d, 0x57, 0x4a, 0x8e, 0x21, 0x65, 0x4b, 0xa8, 0x62, 0xaf, 0x96, 0x12, 0x12, 0x8f, 0xbc, + 0x03, 0x61, 0xdb, 0x5b, 0xac, 0x58, 0x42, 0xc5, 0xfd, 0xb6, 0x95, 0x30, 0x6c, 0xdb, 0x40, 0xca, + 0xf6, 0xdf, 0x8d, 0xa2, 0xef, 0x6f, 0xa6, 0x29, 0x5b, 0x14, 0x7c, 0x9f, 0xa5, 0x49, 0xbe, 0x9f, + 0x15, 0x17, 0x87, 0x70, 0xb9, 0x75, 0xde, 0xf0, 0xc5, 0x0c, 0xe2, 0x67, 0xee, 0x53, 0x95, 0xe8, + 0x58, 0xb3, 0x63, 0x1b, 0xd6, 0xbe, 0x3f, 0xb9, 0x9a, 0x92, 0x2a, 0xcb, 0x3f, 0x8d, 0xa2, 0x6b, + 0xb8, 0x2c, 0x13, 0x96, 0x2f, 0xc1, 0x94, 0xe6, 0xd3, 0x1e, 0xc3, 0x2e, 0xae, 0xcb, 0xf3, 0xd9, + 0x55, 0xd5, 0x54, 0x89, 0xf2, 0xe8, 0x7d, 0xbb, 0xbb, 0x4c, 0xa0, 0x16, 0xc3, 0xe9, 0x21, 0xdd, + 0x23, 0x14, 0xa2, 0x3d, 0x3f, 0x1a, 0x82, 0x2a, 0x6f, 0x59, 0x14, 0x2b, 0x6f, 0x39, 0xab, 0xb5, + 0xb3, 0x07, 0x5e, 0x0b, 0x16, 0xa1, 0x7d, 0x3d, 0x1c, 0x40, 0x2a, 0x57, 0x7f, 0x1c, 0xfd, 0xda, + 0x6b, 0x56, 0x5d, 0xd4, 0x65, 0x92, 0x82, 0x1a, 0x0a, 0x77, 0x5d, 0xed, 0x56, 0x8a, 0x47, 0xc3, + 0xbd, 0x3e, 0xcc, 0xea, 0xb4, 0xad, 0xf0, 0x65, 0x09, 0x38, 0x06, 0x19, 0xc5, 0x46, 0x48, 0x75, + 0x5a, 0x0c, 0x29, 0xdb, 0x17, 0x51, 0x6c, 0x6c, 0xbf, 0xf9, 0x13, 0x48, 0xf9, 0xe6, 0x74, 0x8a, + 0x5b, 0xc5, 0xe8, 0x0a, 0x62, 0xbc, 0x39, 0x9d, 0x52, 0xad, 0xe2, 0x47, 0x95, 0xb3, 0xcb, 0xe8, + 0x03, 0xe4, 0x6c, 0x3f, 0xab, 0x85, 0xc3, 0xf5, 0xb0, 0x15, 0x85, 0x69, 0xa7, 0xe3, 0xa1, 0xb8, + 0x72, 0xfc, 0x17, 0xa3, 0xe8, 0x7b, 0x1e, 0xcf, 0xc7, 0x30, 0x67, 0x4b, 0x88, 0x9f, 0xf4, 0x5b, + 0x93, 0xa4, 0xf6, 0xff, 0xf1, 0x15, 0x34, 0x3c, 0xdd, 0x64, 0x02, 0x39, 0xa4, 0x9c, 0xec, 0x26, + 0x52, 0xdc, 0xdb, 0x4d, 0x34, 0x66, 0x8d, 0xb0, 0x56, 0xb8, 0x0b, 0x7c, 0x6b, 0x51, 0x55, 0x50, + 0x70, 0xb2, 0x2d, 0x0d, 0xd2, 0xdb, 0x96, 0x0e, 0xea, 0xa9, 0xcf, 0x2e, 0xf0, 0xcd, 0x3c, 0x27, + 0xeb, 0x23, 0xc5, 0xbd, 0xf5, 0xd1, 0x98, 0xf2, 0x90, 0x46, 0xbf, 0x6e, 0x3d, 0x31, 0xbe, 0x57, + 0x9c, 0xb1, 0x98, 0x7e, 0x16, 0x42, 0xae, 0x7d, 0xdc, 0xef, 0xe5, 0x3c, 0xd5, 0x78, 0xf1, 0xb6, + 0x64, 0x15, 0xdd, 0x2c, 0x52, 0xdc, 0x5b, 0x0d, 0x8d, 0x29, 0x0f, 0x7f, 0x14, 0xbd, 0xa7, 0xa2, + 0x64, 0x3b, 0x9f, 0xdd, 0xf1, 0x86, 0x50, 0x3c, 0xa1, 0xdd, 0xed, 0xa1, 0x4c, 0x70, 0x50, 0x32, + 0x15, 0x7c, 0x6e, 0x7b, 0xf5, 0x50, 0xe8, 0xb9, 0x13, 0x86, 0x3a, 0xb6, 0xb7, 0x21, 0x07, 0xd2, + 0xb6, 0x14, 0xf6, 0xd8, 0xd6, 0x90, 0xb2, 0x5d, 0x45, 0xbf, 0xa5, 0x1f, 0x4b, 0x33, 0x8f, 0x0a, + 0x79, 0x13, 0xa4, 0xd7, 0x88, 0x7a, 0xdb, 0x90, 0xf6, 0xf5, 0x78, 0x18, 0xdc, 0xa9, 0x8f, 0x1a, + 0x81, 0xfe, 0xfa, 0xa0, 0xf1, 0x77, 0x27, 0x0c, 0x29, 0xdb, 0x7f, 0x3f, 0x8a, 0x7e, 0xa0, 0x64, + 0x2f, 0x8a, 0xe4, 0x4d, 0x0e, 0x62, 0x4a, 0x3c, 0x04, 0x7e, 0xc9, 0xaa, 0x8b, 0xc9, 0xaa, 0x48, + 0x89, 0xe9, 0xdf, 0x0f, 0xf7, 0x4c, 0xff, 0xa4, 0x92, 0x95, 0xf1, 0xa9, 0x8a, 0x72, 0x56, 0xe2, + 0x8c, 0xaf, 0xad, 0x01, 0x67, 0x25, 0x95, 0xf1, 0xb9, 0x48, 0xc7, 0xea, 0x41, 0x13, 0x36, 0xfd, + 0x56, 0x0f, 0xec, 0x38, 0x79, 0x2b, 0x84, 0x98, 0xb0, 0xd5, 0x76, 0x60, 0x56, 0x9c, 0x65, 0xb3, + 0xd3, 0x72, 0xda, 0x74, 0xe3, 0x87, 0xfe, 0x1e, 0x6a, 0x21, 0x44, 0xd8, 0x22, 0x50, 0xe5, 0xed, + 0x1f, 0x4d, 0x62, 0xa4, 0x86, 0xd2, 0x4e, 0xc5, 0xe6, 0xfb, 0x30, 0x4b, 0xd2, 0x95, 0x1a, 0xff, + 0x9f, 0x84, 0x06, 0x1e, 0xa6, 0x75, 0x21, 0x3e, 0xbd, 0xa2, 0x96, 0x2a, 0xcf, 0x7f, 0x8e, 0xa2, + 0x3b, 0x6d, 0xf5, 0xcf, 0x93, 0x62, 0x06, 0xaa, 0x3d, 0x65, 0xe9, 0x37, 0x8b, 0xe9, 0x31, 0xd4, + 0x3c, 0xa9, 0x78, 0xfc, 0x85, 0xbf, 0x92, 0x21, 0x1d, 0x5d, 0xb6, 0x1f, 0x7d, 0x2b, 0x5d, 0xd3, + 0xea, 0x93, 0x26, 0xb0, 0xa9, 0x10, 0xe0, 0xb6, 0xba, 0x90, 0xe0, 0x00, 0x70, 0x2b, 0x84, 0x98, + 0x56, 0x17, 0x82, 0xbd, 0x62, 0x99, 0x71, 0xd8, 0x85, 0x02, 0xaa, 0x6e, 0xab, 0x4b, 0x55, 0x17, + 0x21, 0x5a, 0x9d, 0x40, 0x4d, 0xb0, 0x71, 0xbc, 0xe9, 0xc9, 0x71, 0x2d, 0x60, 0xa4, 0x33, 0x3d, + 0x3e, 0x1e, 0x06, 0x9b, 0xd5, 0x9d, 0xe5, 0xf3, 0x18, 0x96, 0xec, 0x02, 0xaf, 0xee, 0x6c, 0x13, + 0x12, 0x20, 0x56, 0x77, 0x5e, 0xd0, 0xcc, 0x60, 0x96, 0x9f, 0x57, 0x19, 0x5c, 0xa2, 0x19, 0xcc, + 0x56, 0x6e, 0xc4, 0xc4, 0x0c, 0xe6, 0xc1, 0x94, 0x87, 0xc3, 0xe8, 0x57, 0x84, 0xf0, 0x0f, 0x58, + 0x56, 0xc4, 0xd7, 0x3d, 0x4a, 0x8d, 0x40, 0x5b, 0xbd, 0x41, 0x03, 0xa8, 0xc4, 0xcd, 0xaf, 0x5b, + 0x49, 0x91, 0x42, 0xee, 0x2d, 0xb1, 0x11, 0x07, 0x4b, 0xec, 0x60, 0x26, 0x75, 0x10, 0xc2, 0x26, + 0x7e, 0x4d, 0xce, 0x93, 0x2a, 0x2b, 0x66, 0xb1, 0x4f, 0xd7, 0x92, 0x13, 0xa9, 0x83, 0x8f, 0x43, + 0x5d, 0x58, 0x29, 0x6e, 0x96, 0x65, 0xd5, 0x84, 0x45, 0x5f, 0x17, 0x76, 0x91, 0x60, 0x17, 0xee, + 0xa0, 0x7e, 0x6f, 0xdb, 0x90, 0xe6, 0x59, 0x11, 0xf4, 0xa6, 0x90, 0x21, 0xde, 0x0c, 0x8a, 0x3a, + 0xef, 0x3e, 0x24, 0x4b, 0x68, 0x6b, 0xe6, 0x7b, 0x32, 0x36, 0x10, 0xec, 0xbc, 0x08, 0x34, 0xeb, + 0x34, 0x21, 0x3e, 0x48, 0x2e, 0xa0, 0x79, 0xc0, 0xd0, 0xcc, 0x6b, 0xb1, 0x4f, 0xdf, 0x21, 0x88, + 0x75, 0x9a, 0x9f, 0x54, 0xae, 0x16, 0xd1, 0x07, 0x42, 0x7e, 0x94, 0x54, 0x3c, 0x4b, 0xb3, 0x32, + 0x29, 0xda, 0xfc, 0xdf, 0x37, 0xae, 0x3b, 0x94, 0x76, 0xb9, 0x3e, 0x90, 0x56, 0x6e, 0xff, 0x7d, + 0x14, 0xdd, 0xc4, 0x7e, 0x8f, 0xa0, 0x9a, 0x67, 0x62, 0x19, 0x59, 0xcb, 0x20, 0x1c, 0x7f, 0x1e, + 0x36, 0xda, 0x51, 0xd0, 0xa5, 0xf9, 0xe1, 0xd5, 0x15, 0x55, 0xc1, 0xfe, 0x30, 0x8a, 0xe4, 0x72, + 0x45, 0x2c, 0x29, 0xdd, 0x51, 0xab, 0xd6, 0x31, 0xce, 0x7a, 0xf2, 0x66, 0x80, 0x30, 0x53, 0x85, + 0xfc, 0x5d, 0xac, 0x94, 0x63, 0xaf, 0x86, 0x10, 0x11, 0x53, 0x05, 0x42, 0x70, 0x41, 0x27, 0xe7, + 0xec, 0xd2, 0x5f, 0xd0, 0x46, 0x12, 0x2e, 0xa8, 0x22, 0xcc, 0xde, 0x95, 0x2a, 0xa8, 0x6f, 0xef, + 0xaa, 0x2d, 0x46, 0x68, 0xef, 0x0a, 0x33, 0xca, 0x30, 0x8b, 0x7e, 0xd3, 0x36, 0xfc, 0x9c, 0xb1, + 0x8b, 0x79, 0x52, 0x5d, 0xc4, 0x8f, 0x68, 0xe5, 0x96, 0xd1, 0x8e, 0xd6, 0x06, 0xb1, 0x26, 0x2c, + 0xd8, 0x0e, 0x9b, 0x44, 0xe3, 0xb4, 0xca, 0x51, 0x58, 0x70, 0x6c, 0x28, 0x84, 0x08, 0x0b, 0x04, + 0x6a, 0x22, 0xb7, 0xed, 0x6d, 0x02, 0x78, 0xb5, 0xe4, 0xa8, 0x4f, 0x80, 0x5a, 0x2d, 0x79, 0x30, + 0xdc, 0x85, 0x76, 0xab, 0xa4, 0x3c, 0xf7, 0x77, 0x21, 0x21, 0x0a, 0x77, 0xa1, 0x16, 0xc1, 0xed, + 0x3d, 0x81, 0xa4, 0x4a, 0xcf, 0xfd, 0xed, 0x2d, 0x65, 0xe1, 0xf6, 0xd6, 0x0c, 0x6e, 0x6f, 0x29, + 0x78, 0x9d, 0xf1, 0xf3, 0x03, 0xe0, 0x89, 0xbf, 0xbd, 0x5d, 0x26, 0xdc, 0xde, 0x1d, 0xd6, 0x64, + 0x32, 0xb6, 0xc3, 0xc9, 0xe2, 0x4d, 0x9d, 0x56, 0xd9, 0x1b, 0x88, 0x03, 0x56, 0x34, 0x44, 0x64, + 0x32, 0x24, 0x6c, 0x82, 0xb4, 0xf2, 0xd9, 0xca, 0xf6, 0xa6, 0x35, 0x0a, 0xd2, 0xad, 0x0d, 0x8b, + 0x20, 0x82, 0xb4, 0x9f, 0xc4, 0xd5, 0xdb, 0xad, 0xd8, 0xa2, 0xac, 0x7b, 0xaa, 0x87, 0xa0, 0x70, + 0xf5, 0xba, 0xb0, 0xf2, 0xf9, 0x36, 0xfa, 0x6d, 0xfb, 0x91, 0x9e, 0x16, 0xb5, 0xf6, 0xba, 0x4e, + 0x3f, 0x27, 0x0b, 0x23, 0xb6, 0xa5, 0x02, 0xb8, 0x49, 0x53, 0x5a, 0xcf, 0x7c, 0x1b, 0x78, 0x92, + 0xe5, 0x75, 0x7c, 0xcf, 0x6f, 0xa3, 0x95, 0x13, 0x69, 0x8a, 0x8f, 0xc3, 0x63, 0x76, 0x7b, 0x51, + 0xe6, 0x59, 0xda, 0xdd, 0x9f, 0x54, 0xba, 0x5a, 0x1c, 0x1e, 0xb3, 0x36, 0x86, 0x63, 0xd0, 0x04, + 0xb8, 0xfc, 0xcf, 0xc9, 0xaa, 0x04, 0x7f, 0x0c, 0x72, 0x90, 0x70, 0x0c, 0xc2, 0x28, 0xae, 0xcf, + 0x04, 0xf8, 0x7e, 0xb2, 0x62, 0x0b, 0x22, 0x06, 0x69, 0x71, 0xb8, 0x3e, 0x36, 0x66, 0x32, 0x05, + 0xed, 0x61, 0xaf, 0xe0, 0x50, 0x15, 0x49, 0xbe, 0x93, 0x27, 0xb3, 0x3a, 0x26, 0xc6, 0x8d, 0x4b, + 0x11, 0x99, 0x02, 0x4d, 0x7b, 0x1e, 0xe3, 0x5e, 0xbd, 0x93, 0x2c, 0x59, 0x95, 0x71, 0xfa, 0x31, + 0x1a, 0xa4, 0xf7, 0x31, 0x3a, 0xa8, 0xd7, 0xdb, 0x66, 0x95, 0x9e, 0x67, 0x4b, 0x98, 0x06, 0xbc, + 0xb5, 0xc8, 0x00, 0x6f, 0x16, 0xea, 0x69, 0xb4, 0x09, 0x5b, 0x54, 0x29, 0x90, 0x8d, 0x26, 0xc5, + 0xbd, 0x8d, 0xa6, 0x31, 0xe5, 0xe1, 0xaf, 0x47, 0xd1, 0xef, 0x48, 0xa9, 0xbd, 0x69, 0xb8, 0x9d, + 0xd4, 0xe7, 0x6f, 0x58, 0x52, 0x4d, 0xe3, 0x8f, 0x7d, 0x76, 0xbc, 0xa8, 0x76, 0xfd, 0xf4, 0x2a, + 0x2a, 0xf8, 0xb1, 0xee, 0x67, 0xb5, 0x35, 0xe2, 0xbc, 0x8f, 0xd5, 0x41, 0xc2, 0x8f, 0x15, 0xa3, + 0x38, 0x80, 0x08, 0xb9, 0x5c, 0xa0, 0xdf, 0x23, 0xf5, 0xdd, 0x55, 0xfa, 0xfd, 0x5e, 0x0e, 0xc7, + 0xc7, 0x46, 0xe8, 0xf6, 0x96, 0x75, 0xca, 0x86, 0xbf, 0xc7, 0x8c, 0x87, 0xe2, 0xa4, 0x67, 0x3d, + 0x2a, 0xc2, 0x9e, 0x3b, 0x23, 0x63, 0x3c, 0x14, 0x27, 0x3c, 0x5b, 0x61, 0x2d, 0xe4, 0xd9, 0x13, + 0xda, 0xc6, 0x43, 0x71, 0x9c, 0x51, 0x28, 0xa6, 0x9d, 0x17, 0x1e, 0x05, 0xec, 0xe0, 0xb9, 0x61, + 0x6d, 0x10, 0xab, 0x1c, 0xfe, 0xed, 0x28, 0xfa, 0xbe, 0xf1, 0x78, 0xc0, 0xa6, 0xd9, 0xd9, 0x4a, + 0x42, 0xaf, 0x92, 0x7c, 0x01, 0x75, 0xfc, 0x94, 0xb2, 0xd6, 0x65, 0x75, 0x09, 0x9e, 0x5d, 0x49, + 0x07, 0x8f, 0x9d, 0xcd, 0xb2, 0xcc, 0x57, 0x27, 0x30, 0x2f, 0x73, 0x72, 0xec, 0x38, 0x48, 0x78, + 0xec, 0x60, 0x14, 0x67, 0x9a, 0x27, 0xac, 0xc9, 0x63, 0xbd, 0x99, 0xa6, 0x10, 0x85, 0x33, 0xcd, + 0x16, 0xc1, 0xb9, 0xd2, 0x09, 0xdb, 0x62, 0x79, 0x0e, 0x29, 0xef, 0x1e, 0x3c, 0x6a, 0x4d, 0x43, + 0x84, 0x73, 0x25, 0x44, 0x9a, 0x35, 0x7a, 0xbb, 0x2e, 0x4a, 0x2a, 0x78, 0xbe, 0xda, 0xcf, 0x8a, + 0x8b, 0xd8, 0x9f, 0x16, 0x18, 0x80, 0x58, 0xa3, 0x7b, 0x41, 0xbc, 0xfe, 0x3a, 0x2d, 0xa6, 0xcc, + 0xbf, 0xfe, 0x6a, 0x24, 0xe1, 0xf5, 0x97, 0x22, 0xb0, 0xc9, 0x63, 0xa0, 0x4c, 0x36, 0x92, 0xb0, + 0x49, 0x45, 0xf8, 0x42, 0xa1, 0xda, 0xc9, 0x25, 0x43, 0x21, 0xda, 0xbb, 0xbd, 0xdf, 0xcb, 0xe1, + 0x1e, 0xda, 0x2e, 0xc4, 0x76, 0x80, 0xa7, 0xe7, 0xfe, 0x1e, 0xea, 0x20, 0xe1, 0x1e, 0x8a, 0x51, + 0x5c, 0xa5, 0x13, 0xa6, 0x17, 0x92, 0xf7, 0xfc, 0xfd, 0xa3, 0xb3, 0x88, 0xbc, 0xdf, 0xcb, 0xe1, + 0xa5, 0xd1, 0xde, 0x5c, 0x3c, 0x33, 0x6f, 0x27, 0x97, 0xb2, 0xf0, 0xd2, 0x48, 0x33, 0xb8, 0xf4, + 0x52, 0xd0, 0x3c, 0x4e, 0x7f, 0xe9, 0x8d, 0x3c, 0x5c, 0x7a, 0x87, 0x53, 0x4e, 0xfe, 0x75, 0x14, + 0x5d, 0xb7, 0xbd, 0x1c, 0xb2, 0x66, 0x8c, 0xbc, 0x4a, 0xf2, 0x6c, 0x9a, 0x70, 0x38, 0x61, 0x17, + 0x50, 0xa0, 0xbd, 0x15, 0xb7, 0xb4, 0x92, 0x1f, 0x3b, 0x0a, 0xc4, 0xde, 0xca, 0x20, 0x45, 0xdc, + 0x4f, 0x24, 0x7d, 0x5a, 0xc3, 0x56, 0x52, 0x13, 0x91, 0xcc, 0x41, 0xc2, 0xfd, 0x04, 0xa3, 0x38, + 0x5f, 0x95, 0xf2, 0x17, 0x6f, 0x4b, 0xa8, 0x32, 0x28, 0x52, 0xf0, 0xe7, 0xab, 0x98, 0x0a, 0xe7, + 0xab, 0x1e, 0xba, 0xb3, 0xf5, 0xa0, 0x83, 0x53, 0xf7, 0xee, 0x00, 0x26, 0x02, 0x77, 0x07, 0x08, + 0x14, 0x57, 0xd2, 0x00, 0xde, 0xed, 0xbb, 0x8e, 0x95, 0xe0, 0xf6, 0x1d, 0x4d, 0x77, 0x36, 0x74, + 0x34, 0x33, 0x69, 0x86, 0x49, 0x4f, 0xd1, 0x27, 0xf6, 0x70, 0x59, 0x1b, 0xc4, 0xfa, 0x77, 0x90, + 0x8e, 0x21, 0x4f, 0xc4, 0x14, 0x12, 0xd8, 0xa6, 0x69, 0x99, 0x21, 0x3b, 0x48, 0x16, 0xab, 0x1c, + 0xfe, 0xe5, 0x28, 0xfa, 0xc8, 0xe7, 0xf1, 0x65, 0x29, 0xfc, 0x3e, 0xe9, 0xb7, 0x25, 0x49, 0xe2, + 0x72, 0x44, 0x58, 0x43, 0x95, 0xe1, 0x4f, 0xa3, 0x0f, 0x5b, 0x91, 0xb9, 0x3b, 0xa1, 0x0a, 0xe0, + 0x26, 0x50, 0xba, 0xfc, 0x98, 0xd3, 0xee, 0x37, 0x06, 0xf3, 0x66, 0x6d, 0xe2, 0x96, 0xab, 0x46, + 0x6b, 0x13, 0x6d, 0x43, 0x89, 0x89, 0xb5, 0x89, 0x07, 0xc3, 0x33, 0x75, 0x8b, 0x34, 0xe3, 0xc4, + 0x17, 0xe3, 0xb4, 0x09, 0x7b, 0x94, 0x3c, 0xe8, 0x07, 0x71, 0xdf, 0x69, 0xc5, 0x6a, 0x49, 0xf0, + 0x28, 0x64, 0x01, 0x2d, 0x0b, 0xd6, 0x06, 0xb1, 0xca, 0xe1, 0x9f, 0x47, 0xdf, 0xeb, 0x54, 0x6c, + 0x07, 0x12, 0xbe, 0xa8, 0x60, 0x1a, 0x6f, 0xf4, 0x94, 0xbb, 0x05, 0xb5, 0xeb, 0x27, 0xc3, 0x15, + 0x3a, 0xb9, 0x6b, 0xcb, 0xc9, 0x26, 0xd6, 0x65, 0x78, 0x1a, 0x32, 0xe9, 0xb2, 0xc1, 0xdc, 0x95, + 0xd6, 0xe9, 0x2c, 0x3f, 0xed, 0x8e, 0xbc, 0xb9, 0x4c, 0xb2, 0x5c, 0x1c, 0x69, 0x7c, 0x1c, 0x32, + 0xea, 0xa0, 0xc1, 0xe5, 0x27, 0xa9, 0xd2, 0x89, 0x92, 0x62, 0xbc, 0x59, 0xcb, 0x96, 0xc7, 0xf4, + 0xa8, 0xf4, 0xac, 0x5a, 0xd6, 0x07, 0xd2, 0xca, 0x2d, 0x6f, 0xb7, 0xed, 0x9a, 0x9f, 0xed, 0x4e, + 0xee, 0xf3, 0xaa, 0x54, 0x3d, 0x3d, 0x7d, 0x7d, 0x20, 0xad, 0xbc, 0xfe, 0x59, 0xf4, 0x61, 0xd7, + 0xab, 0x9a, 0x14, 0x36, 0x7a, 0x4d, 0xa1, 0x79, 0xe1, 0xc9, 0x70, 0x05, 0x93, 0xea, 0x7f, 0x99, + 0xd5, 0x9c, 0x55, 0xab, 0xc9, 0x39, 0xbb, 0x6c, 0xef, 0x07, 0xbb, 0xa3, 0x55, 0x01, 0x63, 0x8b, + 0x20, 0x52, 0x7d, 0x3f, 0xd9, 0x71, 0x65, 0xee, 0x11, 0xd7, 0x84, 0x2b, 0x8b, 0xe8, 0x71, 0xe5, + 0x92, 0x26, 0x56, 0xb5, 0xb5, 0x32, 0x97, 0x9e, 0xef, 0xfb, 0x8b, 0xda, 0xbd, 0xf8, 0xfc, 0xa0, + 0x1f, 0x34, 0xd9, 0x83, 0x12, 0x6f, 0x67, 0x67, 0x67, 0xba, 0x4e, 0xfe, 0x92, 0xda, 0x08, 0x91, + 0x3d, 0x10, 0xa8, 0x49, 0x46, 0x77, 0xb2, 0x1c, 0xc4, 0xf9, 0xd8, 0xcb, 0xb3, 0xb3, 0x9c, 0x25, + 0x53, 0x94, 0x8c, 0x36, 0xe2, 0xb1, 0x2d, 0x27, 0x92, 0x51, 0x1f, 0x67, 0xae, 0x17, 0x35, 0xd2, + 0x63, 0x48, 0x59, 0x91, 0x66, 0x39, 0xbe, 0x2e, 0x25, 0x34, 0xb5, 0x90, 0xb8, 0x5e, 0xd4, 0x81, + 0xcc, 0x24, 0xd5, 0x88, 0x9a, 0x61, 0xdf, 0x96, 0xff, 0x6e, 0x57, 0xd1, 0x12, 0x13, 0x93, 0x94, + 0x07, 0x33, 0x6b, 0xb2, 0x46, 0x78, 0x5a, 0x0a, 0xe3, 0x37, 0xba, 0x5a, 0x52, 0x42, 0xac, 0xc9, + 0x5c, 0xc2, 0xac, 0x2d, 0x9a, 0xdf, 0xb7, 0xd9, 0x65, 0x21, 0x8c, 0xde, 0xea, 0xaa, 0xb4, 0x32, + 0x62, 0x6d, 0x81, 0x19, 0x65, 0xf8, 0xc7, 0xd1, 0x2f, 0x0b, 0xc3, 0x15, 0x2b, 0xe3, 0x6b, 0x1e, + 0x85, 0xca, 0xba, 0xd9, 0x74, 0x9d, 0x94, 0x9b, 0x0b, 0x7a, 0xba, 0x6f, 0x9c, 0xd6, 0xc9, 0x0c, + 0xe2, 0x3b, 0x44, 0x8b, 0x0b, 0x29, 0x71, 0x41, 0xaf, 0x4b, 0xb9, 0xbd, 0xe2, 0x90, 0x4d, 0x95, + 0x75, 0x4f, 0x0d, 0xb5, 0x30, 0xd4, 0x2b, 0x6c, 0xc8, 0x1c, 0x97, 0x1c, 0x26, 0xcb, 0x6c, 0xa6, + 0x27, 0x1c, 0x19, 0xb7, 0x6a, 0x74, 0x5c, 0x62, 0x98, 0xb1, 0x05, 0x11, 0xc7, 0x25, 0x24, 0xac, + 0x7c, 0xfe, 0xcb, 0x28, 0xba, 0x61, 0x98, 0xdd, 0x76, 0x17, 0x6b, 0xaf, 0x38, 0x63, 0xaf, 0x33, + 0x7e, 0xbe, 0x9f, 0x15, 0x17, 0x75, 0xfc, 0x19, 0x65, 0xd2, 0xcf, 0xeb, 0xa2, 0x7c, 0x7e, 0x65, + 0x3d, 0x93, 0x41, 0xb6, 0x5b, 0x3c, 0xe6, 0xec, 0x52, 0x6a, 0xa0, 0x0c, 0x52, 0xef, 0x04, 0x61, + 0x8e, 0xc8, 0x20, 0x43, 0xbc, 0x69, 0x62, 0xed, 0x3c, 0x67, 0x05, 0x6e, 0x62, 0x63, 0xa1, 0x11, + 0x12, 0x4d, 0xdc, 0x81, 0x4c, 0x3c, 0x6e, 0x45, 0x72, 0x37, 0x62, 0x33, 0xcf, 0x51, 0x3c, 0xd6, + 0xaa, 0x1a, 0x20, 0xe2, 0xb1, 0x17, 0x54, 0x7e, 0x8e, 0xa3, 0xef, 0x34, 0x8f, 0xf4, 0xa8, 0x82, + 0x65, 0x06, 0xf8, 0x98, 0xdd, 0x92, 0x10, 0xe3, 0xdf, 0x25, 0xcc, 0xc8, 0x3a, 0x2d, 0xea, 0x32, + 0x4f, 0xea, 0x73, 0x75, 0xf0, 0xea, 0xd6, 0xb9, 0x15, 0xe2, 0xa3, 0xd7, 0xbb, 0x3d, 0x94, 0x09, + 0xea, 0xad, 0x4c, 0x87, 0x98, 0x7b, 0x7e, 0xd5, 0x4e, 0x98, 0xb9, 0xdf, 0xcb, 0x99, 0x9d, 0xe0, + 0xdd, 0x24, 0xcf, 0xa1, 0x5a, 0xb5, 0xb2, 0x83, 0xa4, 0xc8, 0xce, 0xa0, 0xe6, 0x68, 0x27, 0x58, + 0x51, 0x63, 0x8c, 0x11, 0x3b, 0xc1, 0x01, 0xdc, 0x64, 0xf3, 0xc8, 0xf3, 0x5e, 0x31, 0x85, 0xb7, + 0x28, 0x9b, 0xc7, 0x76, 0x04, 0x43, 0x64, 0xf3, 0x14, 0x6b, 0x76, 0x44, 0x9f, 0xe7, 0x2c, 0xbd, + 0x50, 0x53, 0x80, 0xdb, 0xc0, 0x42, 0x82, 0xe7, 0x80, 0x5b, 0x21, 0xc4, 0x4c, 0x02, 0x42, 0x70, + 0x0c, 0x65, 0x9e, 0xa4, 0xf8, 0xae, 0x85, 0xd4, 0x51, 0x32, 0x62, 0x12, 0xc0, 0x0c, 0x2a, 0xae, + 0xba, 0xc3, 0xe1, 0x2b, 0x2e, 0xba, 0xc2, 0x71, 0x2b, 0x84, 0x98, 0x69, 0x50, 0x08, 0x26, 0x65, + 0x9e, 0x71, 0x34, 0x0c, 0xa4, 0x86, 0x90, 0x10, 0xc3, 0xc0, 0x25, 0x90, 0xc9, 0x03, 0xa8, 0x66, + 0xe0, 0x35, 0x29, 0x24, 0x41, 0x93, 0x2d, 0x61, 0xae, 0xe4, 0xc9, 0xba, 0xb3, 0x72, 0x85, 0xae, + 0xe4, 0xa9, 0x6a, 0xb1, 0x72, 0x45, 0x5c, 0xc9, 0x73, 0x00, 0x54, 0xc4, 0xa3, 0xa4, 0xe6, 0xfe, + 0x22, 0x0a, 0x49, 0xb0, 0x88, 0x2d, 0x61, 0xe6, 0x68, 0x59, 0xc4, 0x05, 0x47, 0x73, 0xb4, 0x2a, + 0x80, 0x75, 0x32, 0x7b, 0x9d, 0x94, 0x9b, 0x48, 0x22, 0x5b, 0x05, 0xf8, 0x4e, 0x06, 0xf9, 0xb4, + 0x46, 0x91, 0x44, 0x3d, 0xf7, 0x56, 0x4a, 0x44, 0x92, 0x2e, 0x85, 0xba, 0x92, 0xda, 0x37, 0xf6, + 0xd5, 0x0e, 0x6d, 0x19, 0xdf, 0x0a, 0x21, 0x26, 0x3e, 0xb5, 0x85, 0xde, 0x4a, 0xaa, 0x2a, 0x6b, + 0x26, 0xff, 0x7b, 0xfe, 0x02, 0xb5, 0x72, 0x22, 0x3e, 0xf9, 0x38, 0x34, 0xbc, 0xda, 0xc0, 0xed, + 0x2b, 0x18, 0x0e, 0xdd, 0xb7, 0x83, 0x8c, 0xc9, 0x38, 0x85, 0xc4, 0x3a, 0x5a, 0xf4, 0x3d, 0x4d, + 0xcf, 0xc9, 0xe2, 0xbd, 0x3e, 0xcc, 0xba, 0x32, 0xaf, 0x5d, 0x1c, 0xb0, 0x25, 0x9c, 0xb0, 0x17, + 0x6f, 0xb3, 0x9a, 0x67, 0xc5, 0x4c, 0xcd, 0xdc, 0xcf, 0x08, 0x4b, 0x3e, 0x98, 0xb8, 0x32, 0xdf, + 0xab, 0x64, 0x12, 0x08, 0x54, 0x96, 0x43, 0xb8, 0xf4, 0x26, 0x10, 0xd8, 0xa2, 0xe6, 0x88, 0x04, + 0x22, 0xc4, 0x9b, 0x7d, 0x14, 0xed, 0x5c, 0xbd, 0x57, 0x78, 0xc2, 0xda, 0x5c, 0x8e, 0xb2, 0x86, + 0x41, 0x62, 0x29, 0x1b, 0x54, 0x30, 0xeb, 0x4b, 0xed, 0xdf, 0x0c, 0xb1, 0x07, 0x84, 0x9d, 0xee, + 0x30, 0x7b, 0x38, 0x80, 0xf4, 0xb8, 0x32, 0xe7, 0xe3, 0x94, 0xab, 0xee, 0xf1, 0xf8, 0xc3, 0x01, + 0xa4, 0xb5, 0x27, 0x63, 0x57, 0xeb, 0x79, 0x92, 0x5e, 0xcc, 0x2a, 0xb6, 0x28, 0xa6, 0x5b, 0x2c, + 0x67, 0x15, 0xda, 0x93, 0x71, 0x4a, 0x8d, 0x50, 0x62, 0x4f, 0xa6, 0x47, 0xc5, 0x64, 0x70, 0x76, + 0x29, 0x36, 0xf3, 0x6c, 0x86, 0x57, 0xd4, 0x8e, 0x21, 0x01, 0x10, 0x19, 0x9c, 0x17, 0xf4, 0x74, + 0x22, 0xb9, 0xe2, 0xe6, 0x59, 0x9a, 0xe4, 0xd2, 0xdf, 0x06, 0x6d, 0xc6, 0x01, 0x7b, 0x3b, 0x91, + 0x47, 0xc1, 0x53, 0xcf, 0x93, 0x45, 0x55, 0xec, 0x15, 0x9c, 0x91, 0xf5, 0x6c, 0x81, 0xde, 0x7a, + 0x5a, 0x20, 0x0a, 0xab, 0x27, 0xf0, 0xb6, 0x29, 0x4d, 0xf3, 0x8f, 0x2f, 0xac, 0x36, 0xbf, 0x8f, + 0x95, 0x3c, 0x14, 0x56, 0x11, 0x87, 0x2a, 0xa3, 0x9c, 0xc8, 0x0e, 0x13, 0xd0, 0x76, 0xbb, 0xc9, + 0x83, 0x7e, 0xd0, 0xef, 0x67, 0xc2, 0x57, 0x39, 0x84, 0xfc, 0x08, 0x60, 0x88, 0x9f, 0x16, 0x34, + 0xdb, 0x2d, 0x4e, 0x7d, 0xce, 0x21, 0xbd, 0xe8, 0x5c, 0xf7, 0x71, 0x0b, 0x2a, 0x11, 0x62, 0xbb, + 0x85, 0x40, 0xfd, 0x4d, 0xb4, 0x97, 0xb2, 0x22, 0xd4, 0x44, 0x8d, 0x7c, 0x48, 0x13, 0x29, 0xce, + 0x2c, 0x7e, 0xb5, 0x54, 0xf5, 0x4c, 0xd9, 0x4c, 0x6b, 0x84, 0x05, 0x1b, 0x22, 0x16, 0xbf, 0x24, + 0x6c, 0x72, 0x72, 0xec, 0xf3, 0xa0, 0x7b, 0xbf, 0xb7, 0x63, 0xe5, 0x80, 0xbe, 0xdf, 0x4b, 0xb1, + 0x74, 0x25, 0x65, 0x1f, 0xe9, 0xb1, 0xe2, 0xf6, 0x93, 0xc7, 0xc3, 0x60, 0xb3, 0xe4, 0x71, 0x7c, + 0x6e, 0xe5, 0x90, 0x54, 0xd2, 0xeb, 0x7a, 0xc0, 0x90, 0xc1, 0x88, 0x25, 0x4f, 0x00, 0x47, 0x21, + 0xcc, 0xf1, 0xbc, 0xc5, 0x0a, 0x0e, 0x05, 0xf7, 0x85, 0x30, 0xd7, 0x98, 0x02, 0x43, 0x21, 0x8c, + 0x52, 0x40, 0xfd, 0x56, 0xec, 0x07, 0x01, 0x3f, 0x4c, 0xe6, 0xde, 0x8c, 0x4d, 0xee, 0xf5, 0x48, + 0x79, 0xa8, 0xdf, 0x22, 0xce, 0x3a, 0x70, 0xb3, 0xbd, 0x9c, 0x24, 0xd5, 0x4c, 0xef, 0x6e, 0x4c, + 0xe3, 0x27, 0xb4, 0x1d, 0x97, 0x24, 0x0e, 0xdc, 0xc2, 0x1a, 0x28, 0xec, 0xec, 0xcd, 0x93, 0x99, + 0xae, 0xa9, 0xa7, 0x06, 0x42, 0xde, 0xa9, 0xea, 0x83, 0x7e, 0x10, 0xf9, 0x79, 0x95, 0x4d, 0x81, + 0x05, 0xfc, 0x08, 0xf9, 0x10, 0x3f, 0x18, 0x44, 0xd9, 0x5b, 0x53, 0x6f, 0xb9, 0xa2, 0xdb, 0x2c, + 0xa6, 0x6a, 0x1d, 0x3b, 0x26, 0x1e, 0x0f, 0xe2, 0x42, 0xd9, 0x1b, 0xc1, 0xa3, 0x31, 0xda, 0x6e, + 0xd0, 0x86, 0xc6, 0xa8, 0xde, 0x7f, 0x1d, 0x32, 0x46, 0x7d, 0xb0, 0xf2, 0xf9, 0x53, 0x35, 0x46, + 0xb7, 0x13, 0x9e, 0x34, 0x79, 0xfb, 0xab, 0x0c, 0x2e, 0xd5, 0x42, 0xd8, 0x53, 0xdf, 0x96, 0x1a, + 0x8b, 0x17, 0xbb, 0xd0, 0xaa, 0x78, 0x63, 0x30, 0x1f, 0xf0, 0xad, 0x56, 0x08, 0xbd, 0xbe, 0xd1, + 0x52, 0x61, 0x63, 0x30, 0x1f, 0xf0, 0xad, 0xde, 0x18, 0xed, 0xf5, 0x8d, 0x5e, 0x1b, 0xdd, 0x18, + 0xcc, 0x2b, 0xdf, 0x7f, 0xd5, 0x0e, 0x5c, 0xdb, 0x79, 0x93, 0x87, 0xa5, 0x3c, 0x5b, 0x82, 0x2f, + 0x9d, 0x74, 0xed, 0x69, 0x34, 0x94, 0x4e, 0xd2, 0x2a, 0xd6, 0x67, 0x46, 0x7c, 0xa5, 0x38, 0x62, + 0x75, 0x26, 0x0e, 0xcc, 0x9f, 0x0d, 0x30, 0xda, 0xc2, 0xa1, 0x45, 0x53, 0x48, 0xc9, 0x1c, 0x37, + 0x3a, 0xa8, 0xb9, 0xdd, 0xfb, 0x38, 0x60, 0xaf, 0x7b, 0xc9, 0x77, 0x7d, 0x20, 0x6d, 0x0e, 0xfe, + 0x1c, 0xc6, 0x3e, 0x71, 0x0c, 0xb5, 0xaa, 0xf7, 0xd0, 0xf1, 0xc9, 0x70, 0x05, 0xe5, 0xfe, 0x6f, + 0xda, 0x75, 0x05, 0xf6, 0xaf, 0x06, 0xc1, 0xd3, 0x21, 0x16, 0xd1, 0x40, 0x78, 0x76, 0x25, 0x1d, + 0x55, 0x90, 0xff, 0x18, 0x45, 0xb7, 0xbc, 0x05, 0x71, 0xcf, 0x9e, 0x7f, 0x77, 0x88, 0x6d, 0xff, + 0x19, 0xf4, 0x17, 0xdf, 0x46, 0x55, 0x95, 0xee, 0x1f, 0xda, 0xe5, 0x7d, 0xab, 0x21, 0xde, 0xc0, + 0x78, 0x59, 0x4d, 0xa1, 0x52, 0x23, 0x36, 0xd4, 0xe9, 0x0c, 0x8c, 0xc7, 0xed, 0xa7, 0x57, 0xd4, + 0xb2, 0x3e, 0x89, 0xe3, 0xc0, 0xea, 0xed, 0x37, 0xab, 0x3c, 0x21, 0xcb, 0x16, 0x8d, 0x0b, 0xf4, + 0xd9, 0x55, 0xd5, 0xa8, 0x91, 0x6c, 0xc1, 0xe2, 0x0d, 0xfb, 0x67, 0x03, 0x0d, 0x3b, 0xef, 0xdc, + 0x7f, 0x72, 0x35, 0x25, 0x55, 0x96, 0xff, 0x1a, 0x45, 0x77, 0x1d, 0xd6, 0x9c, 0x76, 0xa0, 0x3d, + 0x99, 0x1f, 0x05, 0xec, 0x53, 0x4a, 0xba, 0x70, 0xbf, 0xf7, 0xed, 0x94, 0xcd, 0xf7, 0x63, 0x1c, + 0x95, 0x9d, 0x2c, 0xe7, 0x50, 0x75, 0xbf, 0x1f, 0xe3, 0xda, 0x95, 0xd4, 0x98, 0xfe, 0x7e, 0x4c, + 0x00, 0xb7, 0xbe, 0x1f, 0xe3, 0xf1, 0xec, 0xfd, 0x7e, 0x8c, 0xd7, 0x5a, 0xf0, 0xfb, 0x31, 0x61, + 0x0d, 0x6a, 0xf2, 0x69, 0x8b, 0x20, 0x77, 0xd5, 0x07, 0x59, 0x74, 0x37, 0xd9, 0x9f, 0x5e, 0x45, + 0x85, 0x98, 0x7e, 0x25, 0x27, 0x6e, 0xc4, 0x0d, 0x78, 0xa6, 0xce, 0xad, 0xb8, 0x8d, 0xc1, 0xbc, + 0xf2, 0xfd, 0x13, 0xb5, 0xf6, 0xd2, 0x93, 0x0d, 0xab, 0xc4, 0xb7, 0x83, 0xd6, 0x42, 0x93, 0x47, + 0x63, 0xc1, 0x6e, 0xf9, 0xc7, 0xc3, 0x60, 0xa2, 0xba, 0x0d, 0xa1, 0x1a, 0x7d, 0xdc, 0x67, 0x08, + 0x35, 0xf9, 0xc6, 0x60, 0x9e, 0x98, 0xe4, 0xa4, 0x6f, 0xd9, 0xda, 0x03, 0x8c, 0xb9, 0x6d, 0xfd, + 0x64, 0xb8, 0x82, 0x72, 0xbf, 0x54, 0x49, 0xad, 0xed, 0x5e, 0xb4, 0xf3, 0x7a, 0x9f, 0xa9, 0x89, + 0xd3, 0xcc, 0xe3, 0xa1, 0x78, 0x28, 0xbd, 0xb1, 0x27, 0xf8, 0xbe, 0xf4, 0xc6, 0x3b, 0xc9, 0x7f, + 0x72, 0x35, 0x25, 0x55, 0x96, 0x7f, 0x1e, 0x45, 0xd7, 0xc9, 0xb2, 0xa8, 0x7e, 0xf0, 0xd9, 0x50, + 0xcb, 0xa8, 0x3f, 0x7c, 0x7e, 0x65, 0x3d, 0x55, 0xa8, 0x7f, 0x1b, 0x45, 0x37, 0x02, 0x85, 0x92, + 0x1d, 0xe4, 0x0a, 0xd6, 0xdd, 0x8e, 0xf2, 0xc3, 0xab, 0x2b, 0x52, 0xd3, 0xbd, 0x8d, 0x4f, 0xba, + 0x1f, 0x56, 0x09, 0xd8, 0x9e, 0xd0, 0x1f, 0x56, 0xe9, 0xd7, 0xc2, 0x5b, 0x50, 0x4d, 0x52, 0xa2, + 0x56, 0x46, 0xbe, 0x2d, 0x28, 0x91, 0xb3, 0xa0, 0x15, 0xd1, 0xfd, 0x5e, 0xce, 0xe7, 0xe4, 0xc5, + 0xdb, 0x32, 0x29, 0xa6, 0xb4, 0x13, 0x29, 0xef, 0x77, 0xa2, 0x39, 0xbc, 0x75, 0xd7, 0x48, 0x8f, + 0x59, 0xbb, 0xcc, 0x7b, 0x48, 0xe9, 0x6b, 0x24, 0xb8, 0x75, 0xd7, 0x41, 0x09, 0x6f, 0x2a, 0xa7, + 0x0d, 0x79, 0x43, 0xa9, 0xec, 0xa3, 0x21, 0x28, 0x5a, 0x40, 0x68, 0x6f, 0xfa, 0x44, 0xe0, 0x71, + 0xc8, 0x4a, 0xe7, 0x54, 0x60, 0x7d, 0x20, 0x4d, 0xb8, 0x9d, 0x00, 0xff, 0x12, 0x92, 0x29, 0x54, + 0x41, 0xb7, 0x9a, 0x1a, 0xe4, 0xd6, 0xa6, 0x7d, 0x6e, 0xb7, 0x58, 0xbe, 0x98, 0x17, 0xaa, 0x31, + 0x49, 0xb7, 0x36, 0xd5, 0xef, 0x16, 0xd1, 0x78, 0xd3, 0xd2, 0xb8, 0x15, 0xe9, 0xe5, 0xa3, 0xb0, + 0x19, 0x27, 0xab, 0x5c, 0x1b, 0xc4, 0xd2, 0xf5, 0x54, 0xdd, 0xa8, 0xa7, 0x9e, 0xa8, 0x27, 0xad, + 0x0f, 0xa4, 0xf1, 0xee, 0xa1, 0xe5, 0x56, 0xf7, 0xa7, 0x8d, 0x1e, 0x5b, 0x9d, 0x2e, 0xf5, 0x64, + 0xb8, 0x02, 0xde, 0xab, 0x55, 0xbd, 0xaa, 0x59, 0x17, 0xed, 0x64, 0x79, 0x1e, 0xaf, 0x05, 0xba, + 0x49, 0x0b, 0x05, 0xf7, 0x6a, 0x3d, 0x30, 0xd1, 0x93, 0xdb, 0xbd, 0xcd, 0x22, 0xee, 0xb3, 0x23, + 0xa8, 0x41, 0x3d, 0xd9, 0xa6, 0xd1, 0x7e, 0x9b, 0xf5, 0xa8, 0x75, 0x6d, 0xc7, 0xe1, 0x07, 0xd7, + 0xa9, 0xf0, 0xc6, 0x60, 0x1e, 0x5d, 0x06, 0x10, 0x94, 0x98, 0x59, 0xee, 0x50, 0x26, 0x9c, 0x99, + 0xe4, 0x6e, 0x0f, 0x85, 0xf6, 0x2c, 0xe5, 0x30, 0x7a, 0x9d, 0x4d, 0x67, 0xc0, 0xbd, 0xe7, 0x58, + 0x36, 0x10, 0x3c, 0xc7, 0x42, 0x20, 0x6a, 0x3a, 0xf9, 0xbb, 0xde, 0xac, 0xdd, 0x9b, 0xfa, 0x9a, + 0x4e, 0x29, 0x5b, 0x54, 0xa8, 0xe9, 0xbc, 0x34, 0x8a, 0x06, 0xda, 0xad, 0x7a, 0x89, 0xfe, 0x51, + 0xc8, 0x0c, 0x7a, 0x93, 0x7e, 0x6d, 0x10, 0x8b, 0x66, 0x14, 0xe3, 0x30, 0x9b, 0x67, 0xdc, 0x37, + 0xa3, 0x58, 0x36, 0x1a, 0x24, 0x34, 0xa3, 0x74, 0x51, 0xaa, 0x7a, 0x4d, 0x8e, 0xb0, 0x37, 0x0d, + 0x57, 0x4f, 0x32, 0xc3, 0xaa, 0xa7, 0xd9, 0xce, 0xb1, 0x6b, 0xa1, 0xbb, 0x0c, 0x3f, 0x57, 0x8b, + 0x65, 0x4f, 0xdf, 0x16, 0x2f, 0x57, 0x62, 0x30, 0x14, 0x75, 0x28, 0x05, 0x7c, 0x9c, 0xd0, 0x70, + 0xed, 0xc9, 0x70, 0x59, 0x42, 0x52, 0x25, 0x45, 0xea, 0x5d, 0x9c, 0x0a, 0x83, 0x1d, 0x32, 0xb4, + 0x38, 0x25, 0x35, 0xd0, 0xa1, 0xbe, 0xfb, 0x5a, 0xa4, 0x67, 0x28, 0xe8, 0xf7, 0x0f, 0xdd, 0xb7, + 0x22, 0x1f, 0x0e, 0x20, 0xf1, 0xa1, 0x7e, 0x0b, 0xe8, 0x6d, 0x79, 0xe9, 0xf4, 0xe3, 0x80, 0x29, + 0x17, 0x0d, 0x2d, 0x84, 0x69, 0x15, 0xd4, 0xa9, 0x75, 0x82, 0x0b, 0xfc, 0xc7, 0xb0, 0xf2, 0x75, + 0x6a, 0x93, 0x9f, 0x0a, 0x24, 0xd4, 0xa9, 0xbb, 0x28, 0xca, 0x33, 0xed, 0x75, 0xd0, 0xbd, 0x80, + 0xbe, 0xbd, 0xf4, 0xb9, 0xdf, 0xcb, 0xa1, 0x91, 0xb3, 0x9d, 0x2d, 0x9d, 0x53, 0x0c, 0x4f, 0x41, + 0xb7, 0xb3, 0xa5, 0xff, 0x10, 0x63, 0x6d, 0x10, 0x8b, 0x2f, 0x0c, 0x24, 0x1c, 0xde, 0xb6, 0x27, + 0xf9, 0x9e, 0xe2, 0x0a, 0x79, 0xe7, 0x28, 0xff, 0x41, 0x3f, 0x68, 0xae, 0xe7, 0x1e, 0x55, 0x2c, + 0x85, 0xba, 0x56, 0x5f, 0x9b, 0x73, 0xef, 0x3f, 0x29, 0xd9, 0x18, 0x7d, 0x6b, 0xee, 0x4e, 0x18, + 0x52, 0xb6, 0xbf, 0x8c, 0xde, 0xdd, 0x67, 0xb3, 0x09, 0x14, 0xd3, 0xf8, 0x07, 0xee, 0x85, 0x58, + 0x36, 0x1b, 0x37, 0x3f, 0x6b, 0x7b, 0xd7, 0x28, 0xb1, 0xb9, 0xd2, 0xb7, 0x0d, 0x6f, 0x16, 0xb3, + 0x09, 0x4f, 0x38, 0xba, 0xd2, 0x27, 0x7e, 0x1f, 0x37, 0x02, 0xe2, 0x4a, 0x9f, 0x03, 0x20, 0x7b, + 0x27, 0x15, 0x80, 0xd7, 0x5e, 0x23, 0x08, 0xda, 0x53, 0x80, 0x99, 0x75, 0xb5, 0xbd, 0x26, 0xb1, + 0xc5, 0x57, 0xf0, 0x8c, 0x8e, 0x90, 0x12, 0xb3, 0x6e, 0x97, 0x32, 0x9d, 0x41, 0x56, 0x5f, 0x7c, + 0x5b, 0x63, 0x31, 0x9f, 0x27, 0xd5, 0x0a, 0x75, 0x06, 0x55, 0x4b, 0x0b, 0x20, 0x3a, 0x83, 0x17, + 0x34, 0xbd, 0xbc, 0x7d, 0xcc, 0xe9, 0xc5, 0x2e, 0xab, 0xd8, 0x82, 0x67, 0x05, 0xe0, 0xef, 0x2b, + 0xe8, 0x07, 0x6a, 0x33, 0x44, 0x2f, 0xa7, 0x58, 0x93, 0x15, 0x0a, 0x42, 0xde, 0x0e, 0x14, 0xdf, + 0x6c, 0xad, 0x39, 0xab, 0xf0, 0xe9, 0xa0, 0xb4, 0x82, 0x21, 0x22, 0x2b, 0x24, 0x61, 0xd4, 0xf6, + 0x47, 0x59, 0x31, 0xf3, 0xb6, 0xfd, 0x91, 0xfd, 0xc5, 0xc3, 0x1b, 0x34, 0x60, 0xe2, 0xbb, 0x7c, + 0x68, 0xf2, 0x1b, 0x46, 0xea, 0x2d, 0x49, 0xef, 0x43, 0xb7, 0x09, 0x22, 0xbe, 0xfb, 0x49, 0xe4, + 0xea, 0x65, 0x09, 0x05, 0x4c, 0xdb, 0x3b, 0x70, 0x3e, 0x57, 0x0e, 0x11, 0x74, 0x85, 0x49, 0x13, + 0x55, 0x85, 0xfc, 0x78, 0x51, 0x1c, 0x55, 0xec, 0x2c, 0xcb, 0xa1, 0x42, 0x51, 0x55, 0xaa, 0x5b, + 0x72, 0x22, 0xaa, 0xfa, 0x38, 0x73, 0x99, 0x42, 0x48, 0x9d, 0x0f, 0x0f, 0x9f, 0x54, 0x49, 0x8a, + 0x2f, 0x53, 0x48, 0x1b, 0x5d, 0x8c, 0xd8, 0x49, 0x0b, 0xe0, 0xa6, 0xa7, 0x1f, 0x00, 0xaf, 0xb2, + 0xb4, 0x9e, 0x00, 0x3f, 0x4a, 0xaa, 0x64, 0x0e, 0x1c, 0x2a, 0xdc, 0xd3, 0x15, 0x32, 0x76, 0x18, + 0xa2, 0xa7, 0x53, 0xac, 0x72, 0xf8, 0xfb, 0xd1, 0xfb, 0x4d, 0xa0, 0x87, 0x42, 0x7d, 0x23, 0xff, + 0x85, 0xf8, 0xe3, 0x1a, 0xf1, 0x07, 0xda, 0xc6, 0x84, 0x57, 0x90, 0xcc, 0x5b, 0xdb, 0xef, 0xe9, + 0xdf, 0x05, 0xf8, 0x64, 0xd4, 0x34, 0xc8, 0x21, 0xe3, 0xd9, 0x59, 0xb3, 0xae, 0x52, 0xa7, 0x58, + 0xa8, 0x41, 0x6c, 0xf1, 0x38, 0xf0, 0xc9, 0x00, 0x1f, 0x67, 0x02, 0x8d, 0x2d, 0x3d, 0x86, 0x32, + 0xc7, 0x81, 0xc6, 0xd1, 0x16, 0x00, 0x11, 0x68, 0xbc, 0xa0, 0xe9, 0x5d, 0xb6, 0xf8, 0x04, 0xc2, + 0x95, 0x39, 0x81, 0x61, 0x95, 0x39, 0x71, 0xde, 0x11, 0xc8, 0xa3, 0xf7, 0x0f, 0x60, 0xfe, 0x06, + 0xaa, 0xfa, 0x3c, 0x2b, 0x77, 0x9b, 0x19, 0x36, 0xe1, 0x0b, 0xfc, 0x16, 0x9d, 0x21, 0xc6, 0x1a, + 0x21, 0xd2, 0x10, 0x02, 0x35, 0xa1, 0xcc, 0x00, 0x7b, 0xf5, 0x61, 0x32, 0x07, 0xf1, 0x01, 0x84, + 0x78, 0x8d, 0x32, 0x62, 0x41, 0x44, 0x28, 0x23, 0x61, 0xeb, 0x75, 0x23, 0xc3, 0x1c, 0xc3, 0xac, + 0xe9, 0x61, 0xd5, 0x51, 0xb2, 0x9a, 0x43, 0xc1, 0x95, 0x49, 0xb4, 0x09, 0x6b, 0x99, 0xf4, 0xf3, + 0xc4, 0x26, 0xec, 0x10, 0x3d, 0x2b, 0xe9, 0x76, 0x1e, 0xfc, 0x11, 0xab, 0xb8, 0xfc, 0x0b, 0x18, + 0xa7, 0x55, 0x8e, 0x92, 0x6e, 0xf7, 0xa1, 0x3a, 0x24, 0x91, 0x74, 0x87, 0x35, 0xac, 0x4f, 0x47, + 0x3b, 0x65, 0x78, 0x05, 0x95, 0xee, 0x27, 0x2f, 0xe6, 0x49, 0x96, 0xab, 0xde, 0xf0, 0x45, 0xc0, + 0x36, 0xa1, 0x43, 0x7c, 0x3a, 0x7a, 0xa8, 0xae, 0xf5, 0xb1, 0xed, 0x70, 0x09, 0xd1, 0x9e, 0x70, + 0x8f, 0x7d, 0x62, 0x4f, 0xb8, 0x5f, 0xcb, 0x2c, 0xd5, 0x0c, 0x2b, 0xb8, 0x95, 0x20, 0xb6, 0xd8, + 0x14, 0x6f, 0x10, 0x59, 0x36, 0x11, 0x48, 0x2c, 0xd5, 0x82, 0x0a, 0x66, 0x6e, 0x33, 0xd8, 0x4e, + 0x56, 0x24, 0x79, 0xf6, 0x53, 0x7c, 0xf7, 0xd9, 0xb2, 0xd3, 0x12, 0xc4, 0xdc, 0xe6, 0x27, 0x7d, + 0xae, 0x76, 0x81, 0x9f, 0x64, 0x4d, 0xe8, 0x7f, 0x10, 0x78, 0x6e, 0x82, 0xe8, 0x77, 0x65, 0x91, + 0xca, 0xd5, 0xcf, 0x46, 0xd1, 0x75, 0xfc, 0x58, 0x37, 0xcb, 0x72, 0xd2, 0xa4, 0x24, 0xc7, 0x90, + 0x42, 0x56, 0xf2, 0xf8, 0xd3, 0xf0, 0xb3, 0x42, 0x38, 0x71, 0xb2, 0x3e, 0x40, 0xcd, 0x3a, 0xaf, + 0x6d, 0x62, 0xc9, 0x44, 0xfe, 0x69, 0xa8, 0xd3, 0x1a, 0x2a, 0x35, 0x53, 0xee, 0x02, 0x47, 0xa3, + 0xd3, 0xe2, 0xc6, 0x16, 0xd8, 0x54, 0x94, 0x18, 0x9d, 0x61, 0x0d, 0xb3, 0xbb, 0x63, 0x71, 0xc7, + 0x50, 0xb3, 0x7c, 0x09, 0xe2, 0xfa, 0xdb, 0x63, 0xd2, 0x98, 0x45, 0x11, 0xbb, 0x3b, 0x34, 0x6d, + 0xd2, 0x8d, 0xae, 0xdb, 0xcd, 0x62, 0xb5, 0x87, 0xcf, 0xc8, 0x3d, 0x96, 0x04, 0x46, 0xa4, 0x1b, + 0x01, 0xdc, 0xda, 0xfd, 0xac, 0x58, 0x32, 0x4d, 0x93, 0x9a, 0x1f, 0x25, 0xab, 0x9c, 0x25, 0x53, + 0x31, 0xaf, 0xe3, 0xdd, 0xcf, 0x96, 0x19, 0xdb, 0x10, 0xb5, 0xfb, 0x49, 0xc1, 0x66, 0x65, 0xa7, + 0xfe, 0xe2, 0x95, 0xba, 0x5a, 0x78, 0x1b, 0xe5, 0x48, 0xa2, 0xbc, 0xf8, 0x5a, 0xe1, 0x9d, 0x30, + 0x64, 0x5e, 0x89, 0x92, 0x22, 0x91, 0x86, 0xdc, 0xf0, 0xe9, 0x38, 0x09, 0xc8, 0xcd, 0x00, 0x61, + 0x3e, 0x93, 0x20, 0x7f, 0x6f, 0xff, 0x68, 0x03, 0x57, 0x1f, 0xd1, 0x7d, 0xec, 0xd3, 0xb5, 0xa1, + 0xb1, 0xfd, 0x1d, 0xb2, 0xf5, 0x81, 0xb4, 0xf4, 0xfa, 0xfc, 0xe6, 0x7f, 0x7f, 0x7d, 0x6d, 0xf4, + 0xf3, 0xaf, 0xaf, 0x8d, 0xfe, 0xff, 0xeb, 0x6b, 0xa3, 0x9f, 0x7d, 0x73, 0xed, 0x9d, 0x9f, 0x7f, + 0x73, 0xed, 0x9d, 0xff, 0xfd, 0xe6, 0xda, 0x3b, 0x5f, 0xbd, 0xab, 0xfe, 0x74, 0xda, 0x9b, 0x5f, + 0x12, 0x7f, 0x00, 0xed, 0xd9, 0x2f, 0x02, 0x00, 0x00, 0xff, 0xff, 0x00, 0x2e, 0xe4, 0x86, 0x5e, + 0x6d, 0x00, 0x00, } // This is a compile-time assertion to ensure that this generated file @@ -429,6 +431,7 @@ type ClientCommandsHandler interface { ObjectListSetIsFavorite(context.Context, *pb.RpcObjectListSetIsFavoriteRequest) *pb.RpcObjectListSetIsFavoriteResponse ObjectListSetObjectType(context.Context, *pb.RpcObjectListSetObjectTypeRequest) *pb.RpcObjectListSetObjectTypeResponse ObjectListSetDetails(context.Context, *pb.RpcObjectListSetDetailsRequest) *pb.RpcObjectListSetDetailsResponse + ObjectListModifyDetailValues(context.Context, *pb.RpcObjectListModifyDetailValuesRequest) *pb.RpcObjectListModifyDetailValuesResponse ObjectApplyTemplate(context.Context, *pb.RpcObjectApplyTemplateRequest) *pb.RpcObjectApplyTemplateResponse // ObjectToSet creates new set from given object and removes object ObjectToSet(context.Context, *pb.RpcObjectToSetRequest) *pb.RpcObjectToSetResponse @@ -2138,6 +2141,26 @@ func ObjectListSetDetails(b []byte) (resp []byte) { return resp } +func ObjectListModifyDetailValues(b []byte) (resp []byte) { + defer func() { + if PanicHandler != nil { + if r := recover(); r != nil { + resp, _ = (&pb.RpcObjectListModifyDetailValuesResponse{Error: &pb.RpcObjectListModifyDetailValuesResponseError{Code: pb.RpcObjectListModifyDetailValuesResponseError_UNKNOWN_ERROR, Description: "panic recovered"}}).Marshal() + PanicHandler(r) + } + } + }() + + in := new(pb.RpcObjectListModifyDetailValuesRequest) + if err := in.Unmarshal(b); err != nil { + resp, _ = (&pb.RpcObjectListModifyDetailValuesResponse{Error: &pb.RpcObjectListModifyDetailValuesResponseError{Code: pb.RpcObjectListModifyDetailValuesResponseError_BAD_INPUT, Description: err.Error()}}).Marshal() + return resp + } + + resp, _ = clientCommandsHandler.ObjectListModifyDetailValues(context.Background(), in).Marshal() + return resp +} + func ObjectApplyTemplate(b []byte) (resp []byte) { defer func() { if PanicHandler != nil { @@ -5792,6 +5815,8 @@ func CommandAsync(cmd string, data []byte, callback func(data []byte)) { cd = ObjectListSetObjectType(data) case "ObjectListSetDetails": cd = ObjectListSetDetails(data) + case "ObjectListModifyDetailValues": + cd = ObjectListModifyDetailValues(data) case "ObjectApplyTemplate": cd = ObjectApplyTemplate(data) case "ObjectToSet": @@ -7200,6 +7225,20 @@ func (h *ClientCommandsHandlerProxy) ObjectListSetDetails(ctx context.Context, r call, _ := actualCall(ctx, req) return call.(*pb.RpcObjectListSetDetailsResponse) } +func (h *ClientCommandsHandlerProxy) ObjectListModifyDetailValues(ctx context.Context, req *pb.RpcObjectListModifyDetailValuesRequest) *pb.RpcObjectListModifyDetailValuesResponse { + actualCall := func(ctx context.Context, req any) (any, error) { + return h.client.ObjectListModifyDetailValues(ctx, req.(*pb.RpcObjectListModifyDetailValuesRequest)), nil + } + for _, interceptor := range h.interceptors { + toCall := actualCall + currentInterceptor := interceptor + actualCall = func(ctx context.Context, req any) (any, error) { + return currentInterceptor(ctx, req, "ObjectListModifyDetailValues", toCall) + } + } + call, _ := actualCall(ctx, req) + return call.(*pb.RpcObjectListModifyDetailValuesResponse) +} func (h *ClientCommandsHandlerProxy) ObjectApplyTemplate(ctx context.Context, req *pb.RpcObjectApplyTemplateRequest) *pb.RpcObjectApplyTemplateResponse { actualCall := func(ctx context.Context, req any) (any, error) { return h.client.ObjectApplyTemplate(ctx, req.(*pb.RpcObjectApplyTemplateRequest)), nil diff --git a/core/block/editor.go b/core/block/editor.go index bc9d3409b..e42dcbe3c 100644 --- a/core/block/editor.go +++ b/core/block/editor.go @@ -639,6 +639,37 @@ func (s *Service) ModifyDetails(objectId string, modifier func(current *types.St }) } +func (s *Service) ModifyDetailsList(req *pb.RpcObjectListModifyDetailValuesRequest) (resultError error) { + var anySucceed bool + for _, objectId := range req.ObjectIds { + err := s.ModifyDetails(objectId, func(current *types.Struct) (*types.Struct, error) { + for _, op := range req.Operations { + switch v := op.OperationType.(type) { + case *pb.RpcObjectListModifyDetailValuesRequestOperationOperationTypeOfSet: + current.Fields[op.Key] = v.Set + case *pb.RpcObjectListModifyDetailValuesRequestOperationOperationTypeOfAdd: + pbtypes.AddValue(current, op.Key, v.Add) + case *pb.RpcObjectListModifyDetailValuesRequestOperationOperationTypeOfRemove: + pbtypes.RemoveValue(current, op.Key, v.Remove) + } + } + return current, nil + }) + if err != nil { + resultError = errors.Join(resultError, err) + } else { + anySucceed = true + } + } + if resultError != nil { + log.Warnf("ModifyDetailsList: %v", resultError) + } + if anySucceed { + return nil + } + return resultError +} + func (s *Service) AddExtraRelations(ctx session.Context, objectId string, relationIds []string) (err error) { if len(relationIds) == 0 { return nil diff --git a/core/object.go b/core/object.go index c75a076c6..39489a7c3 100644 --- a/core/object.go +++ b/core/object.go @@ -642,6 +642,23 @@ func (mw *Middleware) ObjectListSetDetails(cctx context.Context, req *pb.RpcObje return response(pb.RpcObjectListSetDetailsResponseError_NULL, nil) } +func (mw *Middleware) ObjectListModifyDetailValues(_ context.Context, req *pb.RpcObjectListModifyDetailValuesRequest) *pb.RpcObjectListModifyDetailValuesResponse { + response := func(code pb.RpcObjectListModifyDetailValuesResponseErrorCode, err error) *pb.RpcObjectListModifyDetailValuesResponse { + m := &pb.RpcObjectListModifyDetailValuesResponse{Error: &pb.RpcObjectListModifyDetailValuesResponseError{Code: code}} + if err != nil { + m.Error.Description = getErrorDescription(err) + } + return m + } + err := mw.doBlockService(func(bs *block.Service) (err error) { + return bs.ModifyDetailsList(req) + }) + if err != nil { + return response(pb.RpcObjectListModifyDetailValuesResponseError_UNKNOWN_ERROR, err) + } + return response(pb.RpcObjectListModifyDetailValuesResponseError_NULL, nil) +} + func (mw *Middleware) ObjectSetLayout(cctx context.Context, req *pb.RpcObjectSetLayoutRequest) *pb.RpcObjectSetLayoutResponse { ctx := mw.newContext(cctx) response := func(code pb.RpcObjectSetLayoutResponseErrorCode, err error) *pb.RpcObjectSetLayoutResponse { diff --git a/docs/proto.md b/docs/proto.md index 191a60b71..e306bedfe 100644 --- a/docs/proto.md +++ b/docs/proto.md @@ -847,6 +847,11 @@ - [Rpc.Object.ListExport.Request](#anytype-Rpc-Object-ListExport-Request) - [Rpc.Object.ListExport.Response](#anytype-Rpc-Object-ListExport-Response) - [Rpc.Object.ListExport.Response.Error](#anytype-Rpc-Object-ListExport-Response-Error) + - [Rpc.Object.ListModifyDetailValues](#anytype-Rpc-Object-ListModifyDetailValues) + - [Rpc.Object.ListModifyDetailValues.Request](#anytype-Rpc-Object-ListModifyDetailValues-Request) + - [Rpc.Object.ListModifyDetailValues.Request.Operation](#anytype-Rpc-Object-ListModifyDetailValues-Request-Operation) + - [Rpc.Object.ListModifyDetailValues.Response](#anytype-Rpc-Object-ListModifyDetailValues-Response) + - [Rpc.Object.ListModifyDetailValues.Response.Error](#anytype-Rpc-Object-ListModifyDetailValues-Response-Error) - [Rpc.Object.ListSetDetails](#anytype-Rpc-Object-ListSetDetails) - [Rpc.Object.ListSetDetails.Request](#anytype-Rpc-Object-ListSetDetails-Request) - [Rpc.Object.ListSetDetails.Response](#anytype-Rpc-Object-ListSetDetails-Response) @@ -1357,6 +1362,7 @@ - [Rpc.Object.ListDelete.Response.Error.Code](#anytype-Rpc-Object-ListDelete-Response-Error-Code) - [Rpc.Object.ListDuplicate.Response.Error.Code](#anytype-Rpc-Object-ListDuplicate-Response-Error-Code) - [Rpc.Object.ListExport.Response.Error.Code](#anytype-Rpc-Object-ListExport-Response-Error-Code) + - [Rpc.Object.ListModifyDetailValues.Response.Error.Code](#anytype-Rpc-Object-ListModifyDetailValues-Response-Error-Code) - [Rpc.Object.ListSetDetails.Response.Error.Code](#anytype-Rpc-Object-ListSetDetails-Response-Error-Code) - [Rpc.Object.ListSetIsArchived.Response.Error.Code](#anytype-Rpc-Object-ListSetIsArchived-Response-Error-Code) - [Rpc.Object.ListSetIsFavorite.Response.Error.Code](#anytype-Rpc-Object-ListSetIsFavorite-Response-Error-Code) @@ -1905,6 +1911,7 @@ | ObjectListSetIsFavorite | [Rpc.Object.ListSetIsFavorite.Request](#anytype-Rpc-Object-ListSetIsFavorite-Request) | [Rpc.Object.ListSetIsFavorite.Response](#anytype-Rpc-Object-ListSetIsFavorite-Response) | | | ObjectListSetObjectType | [Rpc.Object.ListSetObjectType.Request](#anytype-Rpc-Object-ListSetObjectType-Request) | [Rpc.Object.ListSetObjectType.Response](#anytype-Rpc-Object-ListSetObjectType-Response) | | | ObjectListSetDetails | [Rpc.Object.ListSetDetails.Request](#anytype-Rpc-Object-ListSetDetails-Request) | [Rpc.Object.ListSetDetails.Response](#anytype-Rpc-Object-ListSetDetails-Response) | | +| ObjectListModifyDetailValues | [Rpc.Object.ListModifyDetailValues.Request](#anytype-Rpc-Object-ListModifyDetailValues-Request) | [Rpc.Object.ListModifyDetailValues.Response](#anytype-Rpc-Object-ListModifyDetailValues-Response) | | | ObjectApplyTemplate | [Rpc.Object.ApplyTemplate.Request](#anytype-Rpc-Object-ApplyTemplate-Request) | [Rpc.Object.ApplyTemplate.Response](#anytype-Rpc-Object-ApplyTemplate-Response) | | | ObjectToSet | [Rpc.Object.ToSet.Request](#anytype-Rpc-Object-ToSet-Request) | [Rpc.Object.ToSet.Response](#anytype-Rpc-Object-ToSet-Response) | ObjectToSet creates new set from given object and removes object | | ObjectToCollection | [Rpc.Object.ToCollection.Request](#anytype-Rpc-Object-ToCollection-Request) | [Rpc.Object.ToCollection.Response](#anytype-Rpc-Object-ToCollection-Response) | | @@ -14345,6 +14352,81 @@ Deletes the object, keys from the local store and unsubscribe from remote change + + +### Rpc.Object.ListModifyDetailValues + + + + + + + + + +### Rpc.Object.ListModifyDetailValues.Request + + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| objectIds | [string](#string) | repeated | | +| operations | [Rpc.Object.ListModifyDetailValues.Request.Operation](#anytype-Rpc-Object-ListModifyDetailValues-Request-Operation) | repeated | | + + + + + + + + +### Rpc.Object.ListModifyDetailValues.Request.Operation + + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| key | [string](#string) | | | +| add | [google.protobuf.Value](#google-protobuf-Value) | | | +| set | [google.protobuf.Value](#google-protobuf-Value) | | | +| remove | [google.protobuf.Value](#google-protobuf-Value) | | | + + + + + + + + +### Rpc.Object.ListModifyDetailValues.Response + + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| error | [Rpc.Object.ListModifyDetailValues.Response.Error](#anytype-Rpc-Object-ListModifyDetailValues-Response-Error) | | | + + + + + + + + +### Rpc.Object.ListModifyDetailValues.Response.Error + + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| code | [Rpc.Object.ListModifyDetailValues.Response.Error.Code](#anytype-Rpc-Object-ListModifyDetailValues-Response-Error-Code) | | | +| description | [string](#string) | | | + + + + + + ### Rpc.Object.ListSetDetails @@ -21569,6 +21651,19 @@ Middleware-to-front-end response, that can contain a NULL error or a non-NULL er + + +### Rpc.Object.ListModifyDetailValues.Response.Error.Code + + +| Name | Number | Description | +| ---- | ------ | ----------- | +| NULL | 0 | | +| UNKNOWN_ERROR | 1 | | +| BAD_INPUT | 2 | | + + + ### Rpc.Object.ListSetDetails.Response.Error.Code diff --git a/pb/commands.pb.go b/pb/commands.pb.go index 9dbcd1ff9..9e4817fd1 100644 --- a/pb/commands.pb.go +++ b/pb/commands.pb.go @@ -3022,6 +3022,34 @@ func (RpcObjectListSetDetailsResponseErrorCode) EnumDescriptor() ([]byte, []int) return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 41, 1, 0, 0} } +type RpcObjectListModifyDetailValuesResponseErrorCode int32 + +const ( + RpcObjectListModifyDetailValuesResponseError_NULL RpcObjectListModifyDetailValuesResponseErrorCode = 0 + RpcObjectListModifyDetailValuesResponseError_UNKNOWN_ERROR RpcObjectListModifyDetailValuesResponseErrorCode = 1 + RpcObjectListModifyDetailValuesResponseError_BAD_INPUT RpcObjectListModifyDetailValuesResponseErrorCode = 2 +) + +var RpcObjectListModifyDetailValuesResponseErrorCode_name = map[int32]string{ + 0: "NULL", + 1: "UNKNOWN_ERROR", + 2: "BAD_INPUT", +} + +var RpcObjectListModifyDetailValuesResponseErrorCode_value = map[string]int32{ + "NULL": 0, + "UNKNOWN_ERROR": 1, + "BAD_INPUT": 2, +} + +func (x RpcObjectListModifyDetailValuesResponseErrorCode) String() string { + return proto.EnumName(RpcObjectListModifyDetailValuesResponseErrorCode_name, int32(x)) +} + +func (RpcObjectListModifyDetailValuesResponseErrorCode) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 42, 1, 0, 0} +} + type RpcObjectApplyTemplateResponseErrorCode int32 const ( @@ -3047,7 +3075,7 @@ func (x RpcObjectApplyTemplateResponseErrorCode) String() string { } func (RpcObjectApplyTemplateResponseErrorCode) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 42, 1, 0, 0} + return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 43, 1, 0, 0} } type RpcObjectListExportResponseErrorCode int32 @@ -3075,7 +3103,7 @@ func (x RpcObjectListExportResponseErrorCode) String() string { } func (RpcObjectListExportResponseErrorCode) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 43, 1, 0, 0} + return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 44, 1, 0, 0} } type RpcObjectImportRequestMode int32 @@ -3100,7 +3128,7 @@ func (x RpcObjectImportRequestMode) String() string { } func (RpcObjectImportRequestMode) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 44, 0, 0} + return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 45, 0, 0} } type RpcObjectImportRequestPbParamsType int32 @@ -3125,7 +3153,7 @@ func (x RpcObjectImportRequestPbParamsType) String() string { } func (RpcObjectImportRequestPbParamsType) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 44, 0, 5, 0} + return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 45, 0, 5, 0} } type RpcObjectImportRequestCsvParamsMode int32 @@ -3150,7 +3178,7 @@ func (x RpcObjectImportRequestCsvParamsMode) String() string { } func (RpcObjectImportRequestCsvParamsMode) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 44, 0, 6, 0} + return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 45, 0, 6, 0} } type RpcObjectImportResponseErrorCode int32 @@ -3196,7 +3224,7 @@ func (x RpcObjectImportResponseErrorCode) String() string { } func (RpcObjectImportResponseErrorCode) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 44, 1, 0, 0} + return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 45, 1, 0, 0} } type RpcObjectImportNotionValidateTokenResponseErrorCode int32 @@ -3239,7 +3267,7 @@ func (x RpcObjectImportNotionValidateTokenResponseErrorCode) String() string { } func (RpcObjectImportNotionValidateTokenResponseErrorCode) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 44, 2, 0, 1, 0, 0} + return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 45, 2, 0, 1, 0, 0} } type RpcObjectImportListResponseErrorCode int32 @@ -3270,7 +3298,7 @@ func (x RpcObjectImportListResponseErrorCode) String() string { } func (RpcObjectImportListResponseErrorCode) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 45, 1, 0, 0} + return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 46, 1, 0, 0} } type RpcObjectImportListImportResponseType int32 @@ -3301,7 +3329,7 @@ func (x RpcObjectImportListImportResponseType) String() string { } func (RpcObjectImportListImportResponseType) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 45, 2, 0} + return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 46, 2, 0} } type RpcObjectImportUseCaseRequestUseCase int32 @@ -3341,7 +3369,7 @@ func (x RpcObjectImportUseCaseRequestUseCase) String() string { } func (RpcObjectImportUseCaseRequestUseCase) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 46, 0, 0} + return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 47, 0, 0} } type RpcObjectImportUseCaseResponseErrorCode int32 @@ -3369,7 +3397,7 @@ func (x RpcObjectImportUseCaseResponseErrorCode) String() string { } func (RpcObjectImportUseCaseResponseErrorCode) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 46, 1, 0, 0} + return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 47, 1, 0, 0} } type RpcObjectImportExperienceResponseErrorCode int32 @@ -3400,7 +3428,7 @@ func (x RpcObjectImportExperienceResponseErrorCode) String() string { } func (RpcObjectImportExperienceResponseErrorCode) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 47, 1, 0, 0} + return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 48, 1, 0, 0} } type RpcObjectCollectionAddResponseErrorCode int32 @@ -26133,6 +26161,312 @@ func (m *RpcObjectListSetDetailsResponseError) GetDescription() string { return "" } +type RpcObjectListModifyDetailValues struct { +} + +func (m *RpcObjectListModifyDetailValues) Reset() { *m = RpcObjectListModifyDetailValues{} } +func (m *RpcObjectListModifyDetailValues) String() string { return proto.CompactTextString(m) } +func (*RpcObjectListModifyDetailValues) ProtoMessage() {} +func (*RpcObjectListModifyDetailValues) Descriptor() ([]byte, []int) { + return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 42} +} +func (m *RpcObjectListModifyDetailValues) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *RpcObjectListModifyDetailValues) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_RpcObjectListModifyDetailValues.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *RpcObjectListModifyDetailValues) XXX_Merge(src proto.Message) { + xxx_messageInfo_RpcObjectListModifyDetailValues.Merge(m, src) +} +func (m *RpcObjectListModifyDetailValues) XXX_Size() int { + return m.Size() +} +func (m *RpcObjectListModifyDetailValues) XXX_DiscardUnknown() { + xxx_messageInfo_RpcObjectListModifyDetailValues.DiscardUnknown(m) +} + +var xxx_messageInfo_RpcObjectListModifyDetailValues proto.InternalMessageInfo + +type RpcObjectListModifyDetailValuesRequest struct { + ObjectIds []string `protobuf:"bytes,1,rep,name=objectIds,proto3" json:"objectIds,omitempty"` + Operations []*RpcObjectListModifyDetailValuesRequestOperation `protobuf:"bytes,2,rep,name=operations,proto3" json:"operations,omitempty"` +} + +func (m *RpcObjectListModifyDetailValuesRequest) Reset() { + *m = RpcObjectListModifyDetailValuesRequest{} +} +func (m *RpcObjectListModifyDetailValuesRequest) String() string { return proto.CompactTextString(m) } +func (*RpcObjectListModifyDetailValuesRequest) ProtoMessage() {} +func (*RpcObjectListModifyDetailValuesRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 42, 0} +} +func (m *RpcObjectListModifyDetailValuesRequest) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *RpcObjectListModifyDetailValuesRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_RpcObjectListModifyDetailValuesRequest.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *RpcObjectListModifyDetailValuesRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_RpcObjectListModifyDetailValuesRequest.Merge(m, src) +} +func (m *RpcObjectListModifyDetailValuesRequest) XXX_Size() int { + return m.Size() +} +func (m *RpcObjectListModifyDetailValuesRequest) XXX_DiscardUnknown() { + xxx_messageInfo_RpcObjectListModifyDetailValuesRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_RpcObjectListModifyDetailValuesRequest proto.InternalMessageInfo + +func (m *RpcObjectListModifyDetailValuesRequest) GetObjectIds() []string { + if m != nil { + return m.ObjectIds + } + return nil +} + +func (m *RpcObjectListModifyDetailValuesRequest) GetOperations() []*RpcObjectListModifyDetailValuesRequestOperation { + if m != nil { + return m.Operations + } + return nil +} + +type RpcObjectListModifyDetailValuesRequestOperation struct { + Key string `protobuf:"bytes,1,opt,name=key,proto3" json:"key,omitempty"` + // Types that are valid to be assigned to OperationType: + // + // *RpcObjectListModifyDetailValuesRequestOperationOperationTypeOfAdd + // *RpcObjectListModifyDetailValuesRequestOperationOperationTypeOfSet + // *RpcObjectListModifyDetailValuesRequestOperationOperationTypeOfRemove + OperationType IsRpcObjectListModifyDetailValuesRequestOperationOperationType `protobuf_oneof:"operation_type"` +} + +func (m *RpcObjectListModifyDetailValuesRequestOperation) Reset() { + *m = RpcObjectListModifyDetailValuesRequestOperation{} +} +func (m *RpcObjectListModifyDetailValuesRequestOperation) String() string { + return proto.CompactTextString(m) +} +func (*RpcObjectListModifyDetailValuesRequestOperation) ProtoMessage() {} +func (*RpcObjectListModifyDetailValuesRequestOperation) Descriptor() ([]byte, []int) { + return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 42, 0, 0} +} +func (m *RpcObjectListModifyDetailValuesRequestOperation) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *RpcObjectListModifyDetailValuesRequestOperation) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_RpcObjectListModifyDetailValuesRequestOperation.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *RpcObjectListModifyDetailValuesRequestOperation) XXX_Merge(src proto.Message) { + xxx_messageInfo_RpcObjectListModifyDetailValuesRequestOperation.Merge(m, src) +} +func (m *RpcObjectListModifyDetailValuesRequestOperation) XXX_Size() int { + return m.Size() +} +func (m *RpcObjectListModifyDetailValuesRequestOperation) XXX_DiscardUnknown() { + xxx_messageInfo_RpcObjectListModifyDetailValuesRequestOperation.DiscardUnknown(m) +} + +var xxx_messageInfo_RpcObjectListModifyDetailValuesRequestOperation proto.InternalMessageInfo + +type IsRpcObjectListModifyDetailValuesRequestOperationOperationType interface { + IsRpcObjectListModifyDetailValuesRequestOperationOperationType() + MarshalTo([]byte) (int, error) + Size() int +} + +type RpcObjectListModifyDetailValuesRequestOperationOperationTypeOfAdd struct { + Add *types.Value `protobuf:"bytes,2,opt,name=add,proto3,oneof" json:"add,omitempty"` +} +type RpcObjectListModifyDetailValuesRequestOperationOperationTypeOfSet struct { + Set *types.Value `protobuf:"bytes,3,opt,name=set,proto3,oneof" json:"set,omitempty"` +} +type RpcObjectListModifyDetailValuesRequestOperationOperationTypeOfRemove struct { + Remove *types.Value `protobuf:"bytes,4,opt,name=remove,proto3,oneof" json:"remove,omitempty"` +} + +func (*RpcObjectListModifyDetailValuesRequestOperationOperationTypeOfAdd) IsRpcObjectListModifyDetailValuesRequestOperationOperationType() { +} +func (*RpcObjectListModifyDetailValuesRequestOperationOperationTypeOfSet) IsRpcObjectListModifyDetailValuesRequestOperationOperationType() { +} +func (*RpcObjectListModifyDetailValuesRequestOperationOperationTypeOfRemove) IsRpcObjectListModifyDetailValuesRequestOperationOperationType() { +} + +func (m *RpcObjectListModifyDetailValuesRequestOperation) GetOperationType() IsRpcObjectListModifyDetailValuesRequestOperationOperationType { + if m != nil { + return m.OperationType + } + return nil +} + +func (m *RpcObjectListModifyDetailValuesRequestOperation) GetKey() string { + if m != nil { + return m.Key + } + return "" +} + +func (m *RpcObjectListModifyDetailValuesRequestOperation) GetAdd() *types.Value { + if x, ok := m.GetOperationType().(*RpcObjectListModifyDetailValuesRequestOperationOperationTypeOfAdd); ok { + return x.Add + } + return nil +} + +func (m *RpcObjectListModifyDetailValuesRequestOperation) GetSet() *types.Value { + if x, ok := m.GetOperationType().(*RpcObjectListModifyDetailValuesRequestOperationOperationTypeOfSet); ok { + return x.Set + } + return nil +} + +func (m *RpcObjectListModifyDetailValuesRequestOperation) GetRemove() *types.Value { + if x, ok := m.GetOperationType().(*RpcObjectListModifyDetailValuesRequestOperationOperationTypeOfRemove); ok { + return x.Remove + } + return nil +} + +// XXX_OneofWrappers is for the internal use of the proto package. +func (*RpcObjectListModifyDetailValuesRequestOperation) XXX_OneofWrappers() []interface{} { + return []interface{}{ + (*RpcObjectListModifyDetailValuesRequestOperationOperationTypeOfAdd)(nil), + (*RpcObjectListModifyDetailValuesRequestOperationOperationTypeOfSet)(nil), + (*RpcObjectListModifyDetailValuesRequestOperationOperationTypeOfRemove)(nil), + } +} + +type RpcObjectListModifyDetailValuesResponse struct { + Error *RpcObjectListModifyDetailValuesResponseError `protobuf:"bytes,1,opt,name=error,proto3" json:"error,omitempty"` +} + +func (m *RpcObjectListModifyDetailValuesResponse) Reset() { + *m = RpcObjectListModifyDetailValuesResponse{} +} +func (m *RpcObjectListModifyDetailValuesResponse) String() string { return proto.CompactTextString(m) } +func (*RpcObjectListModifyDetailValuesResponse) ProtoMessage() {} +func (*RpcObjectListModifyDetailValuesResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 42, 1} +} +func (m *RpcObjectListModifyDetailValuesResponse) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *RpcObjectListModifyDetailValuesResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_RpcObjectListModifyDetailValuesResponse.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *RpcObjectListModifyDetailValuesResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_RpcObjectListModifyDetailValuesResponse.Merge(m, src) +} +func (m *RpcObjectListModifyDetailValuesResponse) XXX_Size() int { + return m.Size() +} +func (m *RpcObjectListModifyDetailValuesResponse) XXX_DiscardUnknown() { + xxx_messageInfo_RpcObjectListModifyDetailValuesResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_RpcObjectListModifyDetailValuesResponse proto.InternalMessageInfo + +func (m *RpcObjectListModifyDetailValuesResponse) GetError() *RpcObjectListModifyDetailValuesResponseError { + if m != nil { + return m.Error + } + return nil +} + +type RpcObjectListModifyDetailValuesResponseError struct { + Code RpcObjectListModifyDetailValuesResponseErrorCode `protobuf:"varint,1,opt,name=code,proto3,enum=anytype.RpcObjectListModifyDetailValuesResponseErrorCode" json:"code,omitempty"` + Description string `protobuf:"bytes,2,opt,name=description,proto3" json:"description,omitempty"` +} + +func (m *RpcObjectListModifyDetailValuesResponseError) Reset() { + *m = RpcObjectListModifyDetailValuesResponseError{} +} +func (m *RpcObjectListModifyDetailValuesResponseError) String() string { + return proto.CompactTextString(m) +} +func (*RpcObjectListModifyDetailValuesResponseError) ProtoMessage() {} +func (*RpcObjectListModifyDetailValuesResponseError) Descriptor() ([]byte, []int) { + return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 42, 1, 0} +} +func (m *RpcObjectListModifyDetailValuesResponseError) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *RpcObjectListModifyDetailValuesResponseError) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_RpcObjectListModifyDetailValuesResponseError.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *RpcObjectListModifyDetailValuesResponseError) XXX_Merge(src proto.Message) { + xxx_messageInfo_RpcObjectListModifyDetailValuesResponseError.Merge(m, src) +} +func (m *RpcObjectListModifyDetailValuesResponseError) XXX_Size() int { + return m.Size() +} +func (m *RpcObjectListModifyDetailValuesResponseError) XXX_DiscardUnknown() { + xxx_messageInfo_RpcObjectListModifyDetailValuesResponseError.DiscardUnknown(m) +} + +var xxx_messageInfo_RpcObjectListModifyDetailValuesResponseError proto.InternalMessageInfo + +func (m *RpcObjectListModifyDetailValuesResponseError) GetCode() RpcObjectListModifyDetailValuesResponseErrorCode { + if m != nil { + return m.Code + } + return RpcObjectListModifyDetailValuesResponseError_NULL +} + +func (m *RpcObjectListModifyDetailValuesResponseError) GetDescription() string { + if m != nil { + return m.Description + } + return "" +} + type RpcObjectApplyTemplate struct { } @@ -26140,7 +26474,7 @@ func (m *RpcObjectApplyTemplate) Reset() { *m = RpcObjectApplyTemplate{} func (m *RpcObjectApplyTemplate) String() string { return proto.CompactTextString(m) } func (*RpcObjectApplyTemplate) ProtoMessage() {} func (*RpcObjectApplyTemplate) Descriptor() ([]byte, []int) { - return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 42} + return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 43} } func (m *RpcObjectApplyTemplate) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -26179,7 +26513,7 @@ func (m *RpcObjectApplyTemplateRequest) Reset() { *m = RpcObjectApplyTem func (m *RpcObjectApplyTemplateRequest) String() string { return proto.CompactTextString(m) } func (*RpcObjectApplyTemplateRequest) ProtoMessage() {} func (*RpcObjectApplyTemplateRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 42, 0} + return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 43, 0} } func (m *RpcObjectApplyTemplateRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -26230,7 +26564,7 @@ func (m *RpcObjectApplyTemplateResponse) Reset() { *m = RpcObjectApplyTe func (m *RpcObjectApplyTemplateResponse) String() string { return proto.CompactTextString(m) } func (*RpcObjectApplyTemplateResponse) ProtoMessage() {} func (*RpcObjectApplyTemplateResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 42, 1} + return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 43, 1} } func (m *RpcObjectApplyTemplateResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -26275,7 +26609,7 @@ func (m *RpcObjectApplyTemplateResponseError) Reset() { *m = RpcObjectAp func (m *RpcObjectApplyTemplateResponseError) String() string { return proto.CompactTextString(m) } func (*RpcObjectApplyTemplateResponseError) ProtoMessage() {} func (*RpcObjectApplyTemplateResponseError) Descriptor() ([]byte, []int) { - return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 42, 1, 0} + return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 43, 1, 0} } func (m *RpcObjectApplyTemplateResponseError) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -26325,7 +26659,7 @@ func (m *RpcObjectListExport) Reset() { *m = RpcObjectListExport{} } func (m *RpcObjectListExport) String() string { return proto.CompactTextString(m) } func (*RpcObjectListExport) ProtoMessage() {} func (*RpcObjectListExport) Descriptor() ([]byte, []int) { - return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 43} + return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 44} } func (m *RpcObjectListExport) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -26378,7 +26712,7 @@ func (m *RpcObjectListExportRequest) Reset() { *m = RpcObjectListExportR func (m *RpcObjectListExportRequest) String() string { return proto.CompactTextString(m) } func (*RpcObjectListExportRequest) ProtoMessage() {} func (*RpcObjectListExportRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 43, 0} + return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 44, 0} } func (m *RpcObjectListExportRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -26481,7 +26815,7 @@ func (m *RpcObjectListExportResponse) Reset() { *m = RpcObjectListExport func (m *RpcObjectListExportResponse) String() string { return proto.CompactTextString(m) } func (*RpcObjectListExportResponse) ProtoMessage() {} func (*RpcObjectListExportResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 43, 1} + return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 44, 1} } func (m *RpcObjectListExportResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -26547,7 +26881,7 @@ func (m *RpcObjectListExportResponseError) Reset() { *m = RpcObjectListE func (m *RpcObjectListExportResponseError) String() string { return proto.CompactTextString(m) } func (*RpcObjectListExportResponseError) ProtoMessage() {} func (*RpcObjectListExportResponseError) Descriptor() ([]byte, []int) { - return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 43, 1, 0} + return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 44, 1, 0} } func (m *RpcObjectListExportResponseError) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -26597,7 +26931,7 @@ func (m *RpcObjectImport) Reset() { *m = RpcObjectImport{} } func (m *RpcObjectImport) String() string { return proto.CompactTextString(m) } func (*RpcObjectImport) ProtoMessage() {} func (*RpcObjectImport) Descriptor() ([]byte, []int) { - return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 44} + return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 45} } func (m *RpcObjectImport) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -26651,7 +26985,7 @@ func (m *RpcObjectImportRequest) Reset() { *m = RpcObjectImportRequest{} func (m *RpcObjectImportRequest) String() string { return proto.CompactTextString(m) } func (*RpcObjectImportRequest) ProtoMessage() {} func (*RpcObjectImportRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 44, 0} + return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 45, 0} } func (m *RpcObjectImportRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -26849,7 +27183,7 @@ func (m *RpcObjectImportRequestNotionParams) Reset() { *m = RpcObjectImp func (m *RpcObjectImportRequestNotionParams) String() string { return proto.CompactTextString(m) } func (*RpcObjectImportRequestNotionParams) ProtoMessage() {} func (*RpcObjectImportRequestNotionParams) Descriptor() ([]byte, []int) { - return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 44, 0, 0} + return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 45, 0, 0} } func (m *RpcObjectImportRequestNotionParams) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -26893,7 +27227,7 @@ func (m *RpcObjectImportRequestMarkdownParams) Reset() { *m = RpcObjectI func (m *RpcObjectImportRequestMarkdownParams) String() string { return proto.CompactTextString(m) } func (*RpcObjectImportRequestMarkdownParams) ProtoMessage() {} func (*RpcObjectImportRequestMarkdownParams) Descriptor() ([]byte, []int) { - return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 44, 0, 1} + return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 45, 0, 1} } func (m *RpcObjectImportRequestMarkdownParams) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -26937,7 +27271,7 @@ func (m *RpcObjectImportRequestBookmarksParams) Reset() { *m = RpcObject func (m *RpcObjectImportRequestBookmarksParams) String() string { return proto.CompactTextString(m) } func (*RpcObjectImportRequestBookmarksParams) ProtoMessage() {} func (*RpcObjectImportRequestBookmarksParams) Descriptor() ([]byte, []int) { - return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 44, 0, 2} + return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 45, 0, 2} } func (m *RpcObjectImportRequestBookmarksParams) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -26981,7 +27315,7 @@ func (m *RpcObjectImportRequestHtmlParams) Reset() { *m = RpcObjectImpor func (m *RpcObjectImportRequestHtmlParams) String() string { return proto.CompactTextString(m) } func (*RpcObjectImportRequestHtmlParams) ProtoMessage() {} func (*RpcObjectImportRequestHtmlParams) Descriptor() ([]byte, []int) { - return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 44, 0, 3} + return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 45, 0, 3} } func (m *RpcObjectImportRequestHtmlParams) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -27025,7 +27359,7 @@ func (m *RpcObjectImportRequestTxtParams) Reset() { *m = RpcObjectImport func (m *RpcObjectImportRequestTxtParams) String() string { return proto.CompactTextString(m) } func (*RpcObjectImportRequestTxtParams) ProtoMessage() {} func (*RpcObjectImportRequestTxtParams) Descriptor() ([]byte, []int) { - return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 44, 0, 4} + return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 45, 0, 4} } func (m *RpcObjectImportRequestTxtParams) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -27072,7 +27406,7 @@ func (m *RpcObjectImportRequestPbParams) Reset() { *m = RpcObjectImportR func (m *RpcObjectImportRequestPbParams) String() string { return proto.CompactTextString(m) } func (*RpcObjectImportRequestPbParams) ProtoMessage() {} func (*RpcObjectImportRequestPbParams) Descriptor() ([]byte, []int) { - return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 44, 0, 5} + return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 45, 0, 5} } func (m *RpcObjectImportRequestPbParams) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -27141,7 +27475,7 @@ func (m *RpcObjectImportRequestCsvParams) Reset() { *m = RpcObjectImport func (m *RpcObjectImportRequestCsvParams) String() string { return proto.CompactTextString(m) } func (*RpcObjectImportRequestCsvParams) ProtoMessage() {} func (*RpcObjectImportRequestCsvParams) Descriptor() ([]byte, []int) { - return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 44, 0, 6} + return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 45, 0, 6} } func (m *RpcObjectImportRequestCsvParams) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -27214,7 +27548,7 @@ func (m *RpcObjectImportRequestSnapshot) Reset() { *m = RpcObjectImportR func (m *RpcObjectImportRequestSnapshot) String() string { return proto.CompactTextString(m) } func (*RpcObjectImportRequestSnapshot) ProtoMessage() {} func (*RpcObjectImportRequestSnapshot) Descriptor() ([]byte, []int) { - return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 44, 0, 7} + return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 45, 0, 7} } func (m *RpcObjectImportRequestSnapshot) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -27267,7 +27601,7 @@ func (m *RpcObjectImportResponse) Reset() { *m = RpcObjectImportResponse func (m *RpcObjectImportResponse) String() string { return proto.CompactTextString(m) } func (*RpcObjectImportResponse) ProtoMessage() {} func (*RpcObjectImportResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 44, 1} + return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 45, 1} } func (m *RpcObjectImportResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -27326,7 +27660,7 @@ func (m *RpcObjectImportResponseError) Reset() { *m = RpcObjectImportRes func (m *RpcObjectImportResponseError) String() string { return proto.CompactTextString(m) } func (*RpcObjectImportResponseError) ProtoMessage() {} func (*RpcObjectImportResponseError) Descriptor() ([]byte, []int) { - return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 44, 1, 0} + return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 45, 1, 0} } func (m *RpcObjectImportResponseError) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -27376,7 +27710,7 @@ func (m *RpcObjectImportNotion) Reset() { *m = RpcObjectImportNotion{} } func (m *RpcObjectImportNotion) String() string { return proto.CompactTextString(m) } func (*RpcObjectImportNotion) ProtoMessage() {} func (*RpcObjectImportNotion) Descriptor() ([]byte, []int) { - return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 44, 2} + return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 45, 2} } func (m *RpcObjectImportNotion) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -27412,7 +27746,7 @@ func (m *RpcObjectImportNotionValidateToken) Reset() { *m = RpcObjectImp func (m *RpcObjectImportNotionValidateToken) String() string { return proto.CompactTextString(m) } func (*RpcObjectImportNotionValidateToken) ProtoMessage() {} func (*RpcObjectImportNotionValidateToken) Descriptor() ([]byte, []int) { - return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 44, 2, 0} + return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 45, 2, 0} } func (m *RpcObjectImportNotionValidateToken) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -27453,7 +27787,7 @@ func (m *RpcObjectImportNotionValidateTokenRequest) String() string { } func (*RpcObjectImportNotionValidateTokenRequest) ProtoMessage() {} func (*RpcObjectImportNotionValidateTokenRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 44, 2, 0, 0} + return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 45, 2, 0, 0} } func (m *RpcObjectImportNotionValidateTokenRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -27501,7 +27835,7 @@ func (m *RpcObjectImportNotionValidateTokenResponse) String() string { } func (*RpcObjectImportNotionValidateTokenResponse) ProtoMessage() {} func (*RpcObjectImportNotionValidateTokenResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 44, 2, 0, 1} + return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 45, 2, 0, 1} } func (m *RpcObjectImportNotionValidateTokenResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -27550,7 +27884,7 @@ func (m *RpcObjectImportNotionValidateTokenResponseError) String() string { } func (*RpcObjectImportNotionValidateTokenResponseError) ProtoMessage() {} func (*RpcObjectImportNotionValidateTokenResponseError) Descriptor() ([]byte, []int) { - return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 44, 2, 0, 1, 0} + return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 45, 2, 0, 1, 0} } func (m *RpcObjectImportNotionValidateTokenResponseError) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -27600,7 +27934,7 @@ func (m *RpcObjectImportList) Reset() { *m = RpcObjectImportList{} } func (m *RpcObjectImportList) String() string { return proto.CompactTextString(m) } func (*RpcObjectImportList) ProtoMessage() {} func (*RpcObjectImportList) Descriptor() ([]byte, []int) { - return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 45} + return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 46} } func (m *RpcObjectImportList) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -27636,7 +27970,7 @@ func (m *RpcObjectImportListRequest) Reset() { *m = RpcObjectImportListR func (m *RpcObjectImportListRequest) String() string { return proto.CompactTextString(m) } func (*RpcObjectImportListRequest) ProtoMessage() {} func (*RpcObjectImportListRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 45, 0} + return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 46, 0} } func (m *RpcObjectImportListRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -27674,7 +28008,7 @@ func (m *RpcObjectImportListResponse) Reset() { *m = RpcObjectImportList func (m *RpcObjectImportListResponse) String() string { return proto.CompactTextString(m) } func (*RpcObjectImportListResponse) ProtoMessage() {} func (*RpcObjectImportListResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 45, 1} + return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 46, 1} } func (m *RpcObjectImportListResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -27726,7 +28060,7 @@ func (m *RpcObjectImportListResponseError) Reset() { *m = RpcObjectImpor func (m *RpcObjectImportListResponseError) String() string { return proto.CompactTextString(m) } func (*RpcObjectImportListResponseError) ProtoMessage() {} func (*RpcObjectImportListResponseError) Descriptor() ([]byte, []int) { - return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 45, 1, 0} + return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 46, 1, 0} } func (m *RpcObjectImportListResponseError) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -27777,7 +28111,7 @@ func (m *RpcObjectImportListImportResponse) Reset() { *m = RpcObjectImpo func (m *RpcObjectImportListImportResponse) String() string { return proto.CompactTextString(m) } func (*RpcObjectImportListImportResponse) ProtoMessage() {} func (*RpcObjectImportListImportResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 45, 2} + return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 46, 2} } func (m *RpcObjectImportListImportResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -27820,7 +28154,7 @@ func (m *RpcObjectImportUseCase) Reset() { *m = RpcObjectImportUseCase{} func (m *RpcObjectImportUseCase) String() string { return proto.CompactTextString(m) } func (*RpcObjectImportUseCase) ProtoMessage() {} func (*RpcObjectImportUseCase) Descriptor() ([]byte, []int) { - return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 46} + return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 47} } func (m *RpcObjectImportUseCase) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -27858,7 +28192,7 @@ func (m *RpcObjectImportUseCaseRequest) Reset() { *m = RpcObjectImportUs func (m *RpcObjectImportUseCaseRequest) String() string { return proto.CompactTextString(m) } func (*RpcObjectImportUseCaseRequest) ProtoMessage() {} func (*RpcObjectImportUseCaseRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 46, 0} + return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 47, 0} } func (m *RpcObjectImportUseCaseRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -27910,7 +28244,7 @@ func (m *RpcObjectImportUseCaseResponse) Reset() { *m = RpcObjectImportU func (m *RpcObjectImportUseCaseResponse) String() string { return proto.CompactTextString(m) } func (*RpcObjectImportUseCaseResponse) ProtoMessage() {} func (*RpcObjectImportUseCaseResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 46, 1} + return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 47, 1} } func (m *RpcObjectImportUseCaseResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -27962,7 +28296,7 @@ func (m *RpcObjectImportUseCaseResponseError) Reset() { *m = RpcObjectIm func (m *RpcObjectImportUseCaseResponseError) String() string { return proto.CompactTextString(m) } func (*RpcObjectImportUseCaseResponseError) ProtoMessage() {} func (*RpcObjectImportUseCaseResponseError) Descriptor() ([]byte, []int) { - return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 46, 1, 0} + return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 47, 1, 0} } func (m *RpcObjectImportUseCaseResponseError) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -28012,7 +28346,7 @@ func (m *RpcObjectImportExperience) Reset() { *m = RpcObjectImportExperi func (m *RpcObjectImportExperience) String() string { return proto.CompactTextString(m) } func (*RpcObjectImportExperience) ProtoMessage() {} func (*RpcObjectImportExperience) Descriptor() ([]byte, []int) { - return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 47} + return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 48} } func (m *RpcObjectImportExperience) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -28052,7 +28386,7 @@ func (m *RpcObjectImportExperienceRequest) Reset() { *m = RpcObjectImpor func (m *RpcObjectImportExperienceRequest) String() string { return proto.CompactTextString(m) } func (*RpcObjectImportExperienceRequest) ProtoMessage() {} func (*RpcObjectImportExperienceRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 47, 0} + return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 48, 0} } func (m *RpcObjectImportExperienceRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -28118,7 +28452,7 @@ func (m *RpcObjectImportExperienceResponse) Reset() { *m = RpcObjectImpo func (m *RpcObjectImportExperienceResponse) String() string { return proto.CompactTextString(m) } func (*RpcObjectImportExperienceResponse) ProtoMessage() {} func (*RpcObjectImportExperienceResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 47, 1} + return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 48, 1} } func (m *RpcObjectImportExperienceResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -28172,7 +28506,7 @@ func (m *RpcObjectImportExperienceResponseError) Reset() { func (m *RpcObjectImportExperienceResponseError) String() string { return proto.CompactTextString(m) } func (*RpcObjectImportExperienceResponseError) ProtoMessage() {} func (*RpcObjectImportExperienceResponseError) Descriptor() ([]byte, []int) { - return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 47, 1, 0} + return fileDescriptor_8261c968b2e6f45c, []int{0, 5, 48, 1, 0} } func (m *RpcObjectImportExperienceResponseError) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -64539,6 +64873,7 @@ func init() { proto.RegisterEnum("anytype.RpcObjectListSetIsFavoriteResponseErrorCode", RpcObjectListSetIsFavoriteResponseErrorCode_name, RpcObjectListSetIsFavoriteResponseErrorCode_value) proto.RegisterEnum("anytype.RpcObjectListSetObjectTypeResponseErrorCode", RpcObjectListSetObjectTypeResponseErrorCode_name, RpcObjectListSetObjectTypeResponseErrorCode_value) proto.RegisterEnum("anytype.RpcObjectListSetDetailsResponseErrorCode", RpcObjectListSetDetailsResponseErrorCode_name, RpcObjectListSetDetailsResponseErrorCode_value) + proto.RegisterEnum("anytype.RpcObjectListModifyDetailValuesResponseErrorCode", RpcObjectListModifyDetailValuesResponseErrorCode_name, RpcObjectListModifyDetailValuesResponseErrorCode_value) proto.RegisterEnum("anytype.RpcObjectApplyTemplateResponseErrorCode", RpcObjectApplyTemplateResponseErrorCode_name, RpcObjectApplyTemplateResponseErrorCode_value) proto.RegisterEnum("anytype.RpcObjectListExportResponseErrorCode", RpcObjectListExportResponseErrorCode_name, RpcObjectListExportResponseErrorCode_value) proto.RegisterEnum("anytype.RpcObjectImportRequestMode", RpcObjectImportRequestMode_name, RpcObjectImportRequestMode_value) @@ -65080,6 +65415,11 @@ func init() { proto.RegisterType((*RpcObjectListSetDetailsRequest)(nil), "anytype.Rpc.Object.ListSetDetails.Request") proto.RegisterType((*RpcObjectListSetDetailsResponse)(nil), "anytype.Rpc.Object.ListSetDetails.Response") proto.RegisterType((*RpcObjectListSetDetailsResponseError)(nil), "anytype.Rpc.Object.ListSetDetails.Response.Error") + proto.RegisterType((*RpcObjectListModifyDetailValues)(nil), "anytype.Rpc.Object.ListModifyDetailValues") + proto.RegisterType((*RpcObjectListModifyDetailValuesRequest)(nil), "anytype.Rpc.Object.ListModifyDetailValues.Request") + proto.RegisterType((*RpcObjectListModifyDetailValuesRequestOperation)(nil), "anytype.Rpc.Object.ListModifyDetailValues.Request.Operation") + proto.RegisterType((*RpcObjectListModifyDetailValuesResponse)(nil), "anytype.Rpc.Object.ListModifyDetailValues.Response") + proto.RegisterType((*RpcObjectListModifyDetailValuesResponseError)(nil), "anytype.Rpc.Object.ListModifyDetailValues.Response.Error") proto.RegisterType((*RpcObjectApplyTemplate)(nil), "anytype.Rpc.Object.ApplyTemplate") proto.RegisterType((*RpcObjectApplyTemplateRequest)(nil), "anytype.Rpc.Object.ApplyTemplate.Request") proto.RegisterType((*RpcObjectApplyTemplateResponse)(nil), "anytype.Rpc.Object.ApplyTemplate.Response") @@ -65847,1127 +66187,1135 @@ func init() { func init() { proto.RegisterFile("pb/protos/commands.proto", fileDescriptor_8261c968b2e6f45c) } var fileDescriptor_8261c968b2e6f45c = []byte{ - // 17906 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0xbd, 0x7d, 0x98, 0x24, 0x49, - 0x59, 0x2f, 0x3a, 0x55, 0x59, 0x55, 0xdd, 0x1d, 0xfd, 0x31, 0x35, 0xb9, 0x33, 0xb3, 0xbd, 0xb1, - 0xcb, 0xec, 0x32, 0xbb, 0xac, 0xeb, 0xb2, 0xf4, 0xc0, 0x2e, 0x08, 0xbb, 0xec, 0xb2, 0x5b, 0x5d, - 0x9d, 0xdd, 0x5d, 0x6c, 0x77, 0x55, 0x9b, 0x95, 0x3d, 0xc3, 0xea, 0xe3, 0xad, 0x93, 0x53, 0x15, - 0xdd, 0x9d, 0x3b, 0xd5, 0x99, 0x65, 0x56, 0x76, 0xcf, 0x0c, 0xf7, 0x39, 0xf7, 0x88, 0x88, 0xac, - 0x1f, 0x1c, 0x44, 0xe4, 0x28, 0x20, 0x20, 0x20, 0x78, 0x40, 0x01, 0xf9, 0x16, 0x44, 0x90, 0x2f, - 0x41, 0x44, 0x44, 0x10, 0x05, 0x94, 0x47, 0x10, 0xf4, 0xe0, 0xb9, 0x87, 0xe3, 0xd5, 0xe7, 0x08, - 0x07, 0x81, 0xeb, 0x7d, 0xe2, 0x23, 0x33, 0x23, 0xaa, 0x2b, 0xb3, 0x22, 0xab, 0x2b, 0xab, 0x17, - 0xbd, 0xff, 0x65, 0x46, 0x46, 0x46, 0xbc, 0xf1, 0xfe, 0xde, 0x37, 0xe2, 0x8d, 0x88, 0x37, 0xde, - 0x00, 0xf3, 0x9d, 0x8b, 0xe7, 0x3a, 0xae, 0xe3, 0x39, 0xdd, 0x73, 0x4d, 0x67, 0x77, 0xd7, 0xb4, - 0x5b, 0xdd, 0x05, 0xf2, 0xae, 0x4e, 0x98, 0xf6, 0x55, 0xef, 0x6a, 0x07, 0xc1, 0x5b, 0x3a, 0x97, - 0xb6, 0xcf, 0xb5, 0xad, 0x8b, 0xe7, 0x3a, 0x17, 0xcf, 0xed, 0x3a, 0x2d, 0xd4, 0xf6, 0x7f, 0x20, - 0x2f, 0x2c, 0x3b, 0xbc, 0x2d, 0x2a, 0x57, 0xdb, 0x69, 0x9a, 0xed, 0xae, 0xe7, 0xb8, 0x88, 0xe5, - 0x3c, 0x1d, 0x56, 0x89, 0xf6, 0x91, 0xed, 0xf9, 0x25, 0xdc, 0xb0, 0xed, 0x38, 0xdb, 0x6d, 0x44, - 0xbf, 0x5d, 0xdc, 0xdb, 0x3a, 0xd7, 0xf5, 0xdc, 0xbd, 0xa6, 0xc7, 0xbe, 0xde, 0xd4, 0xfb, 0xb5, - 0x85, 0xba, 0x4d, 0xd7, 0xea, 0x78, 0x8e, 0x4b, 0x73, 0x9c, 0xfd, 0xce, 0xdb, 0x27, 0x80, 0xa2, - 0x77, 0x9a, 0xf0, 0x9b, 0x13, 0x40, 0x29, 0x75, 0x3a, 0xf0, 0xa3, 0x59, 0x00, 0x56, 0x90, 0x77, - 0x1e, 0xb9, 0x5d, 0xcb, 0xb1, 0xe1, 0x71, 0x30, 0xa1, 0xa3, 0x1f, 0xdf, 0x43, 0x5d, 0xef, 0x9e, - 0xdc, 0x23, 0x7f, 0xa7, 0x64, 0xe0, 0xeb, 0xb2, 0x60, 0x52, 0x47, 0xdd, 0x8e, 0x63, 0x77, 0x91, - 0xfa, 0x00, 0xc8, 0x23, 0xd7, 0x75, 0xdc, 0xf9, 0xcc, 0x4d, 0x99, 0xdb, 0xa6, 0xef, 0xbc, 0x7d, - 0x81, 0x35, 0x7f, 0x41, 0xef, 0x34, 0x17, 0x4a, 0x9d, 0xce, 0x42, 0x58, 0xd2, 0x82, 0xff, 0xd3, - 0x82, 0x86, 0xff, 0xd0, 0xe9, 0x8f, 0xea, 0x3c, 0x98, 0xd8, 0xa7, 0x19, 0xe6, 0xb3, 0x37, 0x65, - 0x6e, 0x9b, 0xd2, 0xfd, 0x57, 0xfc, 0xa5, 0x85, 0x3c, 0xd3, 0x6a, 0x77, 0xe7, 0x15, 0xfa, 0x85, - 0xbd, 0xc2, 0xd7, 0x64, 0x40, 0x9e, 0x14, 0xa2, 0x96, 0x41, 0xae, 0xe9, 0xb4, 0x10, 0xa9, 0x7e, - 0xee, 0xce, 0x73, 0xf2, 0xd5, 0x2f, 0x94, 0x9d, 0x16, 0xd2, 0xc9, 0xcf, 0xea, 0x4d, 0x60, 0xda, - 0x67, 0x4b, 0x48, 0x06, 0x9f, 0x74, 0xf6, 0x4e, 0x90, 0xc3, 0xf9, 0xd5, 0x49, 0x90, 0xab, 0x6e, - 0xae, 0xad, 0x15, 0x8f, 0xa9, 0x27, 0xc0, 0xec, 0x66, 0xf5, 0xc1, 0x6a, 0xed, 0x42, 0xb5, 0xa1, - 0xe9, 0x7a, 0x4d, 0x2f, 0x66, 0xd4, 0x59, 0x30, 0xb5, 0x58, 0x5a, 0x6a, 0x54, 0xaa, 0x1b, 0x9b, - 0x46, 0x31, 0x0b, 0x5f, 0xa9, 0x80, 0xb9, 0x3a, 0xf2, 0x96, 0xd0, 0xbe, 0xd5, 0x44, 0x75, 0xcf, - 0xf4, 0x10, 0x7c, 0x61, 0x26, 0x60, 0xa6, 0xba, 0x89, 0x2b, 0x0d, 0x3e, 0xb1, 0x06, 0xdc, 0x75, - 0xa0, 0x01, 0x62, 0x09, 0x0b, 0xec, 0xef, 0x05, 0x2e, 0x4d, 0xe7, 0xcb, 0x39, 0xfb, 0x04, 0x30, - 0xcd, 0x7d, 0x53, 0xe7, 0x00, 0x58, 0x2c, 0x95, 0x1f, 0x5c, 0xd1, 0x6b, 0x9b, 0xd5, 0xa5, 0xe2, - 0x31, 0xfc, 0xbe, 0x5c, 0xd3, 0x35, 0xf6, 0x9e, 0x81, 0xdf, 0xce, 0x70, 0x60, 0x2e, 0x89, 0x60, - 0x2e, 0x0c, 0x26, 0xa6, 0x0f, 0xa0, 0xf0, 0xf5, 0x01, 0x38, 0x2b, 0x02, 0x38, 0x77, 0x25, 0x2b, - 0x2e, 0x7d, 0x80, 0x9e, 0x97, 0x05, 0x93, 0xf5, 0x9d, 0x3d, 0xaf, 0xe5, 0x5c, 0xb6, 0xe1, 0x54, - 0x80, 0x0c, 0xfc, 0x06, 0xcf, 0x93, 0x67, 0x88, 0x3c, 0xb9, 0xed, 0x60, 0x23, 0x58, 0x09, 0x11, - 0xdc, 0xf8, 0xb5, 0x80, 0x1b, 0x25, 0x81, 0x1b, 0x4f, 0x90, 0x2d, 0x28, 0x7d, 0x3e, 0xfc, 0xc2, - 0x5d, 0x20, 0x5f, 0xef, 0x98, 0x4d, 0x04, 0x3f, 0xa9, 0x80, 0x99, 0x35, 0x64, 0xee, 0xa3, 0x52, - 0xa7, 0xe3, 0x3a, 0xfb, 0x08, 0x96, 0x43, 0x79, 0x9d, 0x07, 0x13, 0x5d, 0x9c, 0xa9, 0xd2, 0x22, - 0x2d, 0x98, 0xd2, 0xfd, 0x57, 0xf5, 0x0c, 0x00, 0x56, 0x0b, 0xd9, 0x9e, 0xe5, 0x59, 0xa8, 0x3b, - 0x9f, 0xbd, 0x49, 0xb9, 0x6d, 0x4a, 0xe7, 0x52, 0xe0, 0x37, 0xb3, 0xb2, 0x32, 0x46, 0xa8, 0x58, - 0xe0, 0x29, 0x88, 0xe0, 0xea, 0x6b, 0xb3, 0x32, 0x32, 0x36, 0xb0, 0xb8, 0x64, 0xbc, 0x7d, 0x73, - 0x26, 0x39, 0x73, 0x71, 0x8e, 0x6a, 0xad, 0x51, 0xdf, 0x2c, 0xaf, 0x36, 0xea, 0x1b, 0xa5, 0xb2, - 0x56, 0x44, 0xea, 0x49, 0x50, 0x24, 0x8f, 0x8d, 0x4a, 0xbd, 0xb1, 0xa4, 0xad, 0x69, 0x86, 0xb6, - 0x54, 0xdc, 0x52, 0x55, 0x30, 0xa7, 0x6b, 0x3f, 0xbc, 0xa9, 0xd5, 0x8d, 0xc6, 0x72, 0xa9, 0xb2, - 0xa6, 0x2d, 0x15, 0xb7, 0xf1, 0xcf, 0x6b, 0x95, 0xf5, 0x8a, 0xd1, 0xd0, 0xb5, 0x52, 0x79, 0x55, - 0x5b, 0x2a, 0xee, 0xa8, 0xd7, 0x82, 0x6b, 0xaa, 0xb5, 0x46, 0x69, 0x63, 0x43, 0xaf, 0x9d, 0xd7, - 0x1a, 0xec, 0x8f, 0x7a, 0xd1, 0xa2, 0x15, 0x19, 0x8d, 0xfa, 0x6a, 0x49, 0xd7, 0x4a, 0x8b, 0x6b, - 0x5a, 0xf1, 0x61, 0xf8, 0x5c, 0x05, 0xcc, 0xae, 0x9b, 0x97, 0x50, 0x7d, 0xc7, 0x74, 0x91, 0x79, - 0xb1, 0x8d, 0xe0, 0xcd, 0x12, 0x78, 0xc2, 0x4f, 0xf2, 0x78, 0x69, 0x22, 0x5e, 0xe7, 0xfa, 0x30, - 0x58, 0xa8, 0x22, 0x02, 0xb0, 0xff, 0x1d, 0xa8, 0xc1, 0xaa, 0x00, 0xd8, 0x93, 0x13, 0x96, 0x97, - 0x0c, 0xb1, 0x9f, 0x7c, 0x14, 0x20, 0x06, 0xbf, 0xa4, 0x80, 0xb9, 0x8a, 0xbd, 0x6f, 0x79, 0x68, - 0x05, 0xd9, 0xc8, 0xc5, 0xe3, 0x80, 0x14, 0x0c, 0xaf, 0x53, 0x38, 0x18, 0x96, 0x45, 0x18, 0x9e, - 0xd8, 0x87, 0x6d, 0x62, 0x1d, 0x11, 0xa3, 0xed, 0x0d, 0x60, 0xca, 0x22, 0xf9, 0xca, 0x56, 0x8b, - 0x71, 0x2c, 0x4c, 0x50, 0x6f, 0x01, 0xb3, 0xf4, 0x65, 0xd9, 0x6a, 0xa3, 0x07, 0xd1, 0x55, 0x36, - 0xee, 0x8a, 0x89, 0xf0, 0xe7, 0x03, 0xe5, 0xab, 0x08, 0x58, 0x3e, 0x25, 0x29, 0x51, 0xc9, 0xc0, - 0x7c, 0xc9, 0xa3, 0x41, 0xfd, 0x0e, 0x68, 0x99, 0x05, 0xbf, 0x97, 0x05, 0xd3, 0x75, 0xcf, 0xe9, - 0x60, 0x91, 0xb5, 0xec, 0x6d, 0x39, 0x70, 0x3f, 0xce, 0xeb, 0x58, 0x59, 0x04, 0xf7, 0x09, 0x7d, - 0xf8, 0xc8, 0x55, 0x10, 0xa1, 0x61, 0xdf, 0x0c, 0x34, 0x6c, 0x59, 0x40, 0xe5, 0xce, 0x44, 0xa5, - 0x7d, 0x1f, 0xea, 0xd7, 0x4b, 0x14, 0x50, 0xf4, 0xc5, 0xcc, 0x2b, 0xef, 0xb9, 0x2e, 0xb2, 0x3d, - 0x39, 0x10, 0xfe, 0x92, 0x07, 0x61, 0x55, 0x04, 0xe1, 0xce, 0x18, 0x61, 0xf6, 0x6b, 0x49, 0x51, - 0xc7, 0x7e, 0x3f, 0x40, 0xf3, 0x41, 0x01, 0xcd, 0xa7, 0x26, 0x27, 0x2b, 0x19, 0xa4, 0xab, 0x43, - 0x20, 0x7a, 0x12, 0x14, 0xf1, 0x98, 0x54, 0x36, 0x2a, 0xe7, 0xb5, 0x46, 0xa5, 0x7a, 0xbe, 0x62, - 0x68, 0x45, 0x04, 0x5f, 0xac, 0x80, 0x19, 0x4a, 0x9a, 0x8e, 0xf6, 0x9d, 0x4b, 0x92, 0xbd, 0xde, - 0x97, 0x12, 0x1a, 0x0b, 0x7c, 0x0d, 0x11, 0x9a, 0xf1, 0xb3, 0x09, 0x8c, 0x85, 0x98, 0xe2, 0x1e, - 0x4d, 0xbd, 0xd5, 0x01, 0x35, 0xd8, 0xee, 0xa3, 0x2d, 0x7d, 0x7b, 0xab, 0x97, 0xe4, 0x00, 0xa0, - 0x8d, 0x3c, 0x6f, 0xa1, 0xcb, 0x70, 0x3d, 0xc4, 0x44, 0x10, 0xdb, 0xcc, 0x40, 0xb1, 0xcd, 0xf6, - 0x13, 0xdb, 0x77, 0xf3, 0x63, 0xd6, 0xa2, 0x88, 0xde, 0x1d, 0x91, 0xec, 0xc6, 0x94, 0x44, 0xcf, - 0x0e, 0x7d, 0x41, 0xc9, 0x8a, 0x56, 0xe7, 0x0d, 0x60, 0x8a, 0x3c, 0x56, 0xcd, 0x5d, 0xc4, 0x74, - 0x28, 0x4c, 0x50, 0xcf, 0x82, 0x19, 0x9a, 0xb1, 0xe9, 0xd8, 0xb8, 0x3d, 0x39, 0x92, 0x41, 0x48, - 0xc3, 0x20, 0x36, 0x5d, 0x64, 0x7a, 0x8e, 0x4b, 0xca, 0xc8, 0x53, 0x10, 0xb9, 0x24, 0xf8, 0xf5, - 0x40, 0x0b, 0x35, 0x41, 0x72, 0x9e, 0x94, 0xa4, 0x29, 0xc9, 0xe4, 0x66, 0x7f, 0x38, 0xfd, 0xa3, - 0x5a, 0xd7, 0xc0, 0x68, 0x2f, 0x93, 0xa9, 0x1d, 0x52, 0x4f, 0x03, 0x95, 0xa5, 0xe2, 0xbc, 0xe5, - 0x5a, 0xd5, 0xd0, 0xaa, 0x46, 0x71, 0xab, 0xaf, 0x44, 0x6d, 0xc3, 0xd7, 0xe6, 0x40, 0xee, 0x99, - 0x8e, 0x65, 0xc3, 0xe7, 0x65, 0x04, 0x91, 0xb0, 0x91, 0x77, 0xd9, 0x71, 0x2f, 0x05, 0x8a, 0x1a, - 0x26, 0xc4, 0x63, 0x13, 0x8a, 0x92, 0x32, 0x50, 0x94, 0x72, 0xfd, 0x44, 0xe9, 0x17, 0x79, 0x51, - 0xba, 0x57, 0x14, 0xa5, 0x5b, 0xfb, 0xf0, 0x1f, 0x13, 0x1f, 0xd1, 0x01, 0x7c, 0x2c, 0xe8, 0x00, - 0xee, 0x17, 0x60, 0x7c, 0xbc, 0x5c, 0x31, 0xc9, 0x00, 0xfc, 0x62, 0xaa, 0x8a, 0xdf, 0x0f, 0xea, - 0xed, 0x08, 0xa8, 0x77, 0xfa, 0xf4, 0x09, 0xd6, 0xc1, 0xae, 0xe3, 0xe1, 0x83, 0xdd, 0xc4, 0x25, - 0xf5, 0x14, 0x38, 0xb1, 0x54, 0x59, 0x5e, 0xd6, 0x74, 0xad, 0x6a, 0x34, 0xaa, 0x9a, 0x71, 0xa1, - 0xa6, 0x3f, 0x58, 0x6c, 0xc3, 0xd7, 0x28, 0x00, 0x60, 0x0e, 0x95, 0x4d, 0xbb, 0x89, 0xda, 0x72, - 0x3d, 0xfa, 0xff, 0xcc, 0x26, 0xeb, 0x13, 0xc2, 0xf2, 0x23, 0xe0, 0x7c, 0x45, 0x56, 0x5e, 0x2b, - 0x23, 0x0b, 0x4b, 0x06, 0xea, 0x1b, 0x1f, 0x0d, 0xb6, 0xe7, 0x35, 0xe0, 0xb8, 0x5f, 0x1e, 0xcb, - 0xde, 0x7f, 0xda, 0xf7, 0x96, 0x1c, 0x98, 0x63, 0xb0, 0xf8, 0xf3, 0xf8, 0x47, 0x32, 0x32, 0x13, - 0x79, 0x08, 0x26, 0xd9, 0xb4, 0xdd, 0xef, 0xde, 0x83, 0x77, 0x75, 0x05, 0x4c, 0x77, 0x90, 0xbb, - 0x6b, 0x75, 0xbb, 0x96, 0x63, 0xd3, 0x05, 0xb9, 0xb9, 0x3b, 0x1f, 0x17, 0x70, 0x9c, 0xac, 0x5d, - 0x2e, 0x6c, 0x98, 0xae, 0x67, 0x35, 0xad, 0x8e, 0x69, 0x7b, 0x1b, 0x61, 0x66, 0x9d, 0xff, 0x13, - 0xbe, 0x28, 0xe1, 0xb4, 0x46, 0x6c, 0x49, 0x84, 0x48, 0xbc, 0x2f, 0xc1, 0x94, 0x24, 0xb6, 0xc0, - 0x64, 0x62, 0xf1, 0xd1, 0x54, 0xc5, 0xa2, 0x0f, 0xde, 0xdb, 0xea, 0x75, 0xe0, 0x54, 0xa5, 0x5a, - 0xae, 0xe9, 0xba, 0x56, 0x36, 0x1a, 0x1b, 0x9a, 0xbe, 0x5e, 0xa9, 0xd7, 0x2b, 0xb5, 0x6a, 0xfd, - 0x30, 0xda, 0x0e, 0x3f, 0xa1, 0x04, 0x12, 0xb3, 0x84, 0x9a, 0x6d, 0xcb, 0x46, 0xf0, 0xfe, 0x43, - 0x0a, 0x8c, 0xb8, 0xea, 0x23, 0x8f, 0x33, 0xab, 0x3f, 0x02, 0xe7, 0x57, 0x27, 0xc7, 0xb9, 0x7f, - 0x81, 0xff, 0x86, 0xd5, 0xff, 0x4b, 0x0a, 0x38, 0xc1, 0x29, 0xa2, 0x8e, 0x76, 0x47, 0xb6, 0x92, - 0xf7, 0x93, 0xbc, 0xee, 0x56, 0x44, 0x4c, 0xfb, 0x59, 0xd3, 0x07, 0xc8, 0x88, 0x80, 0xf5, 0x8d, - 0x01, 0xac, 0x6b, 0x02, 0xac, 0x4f, 0x1b, 0xa2, 0xcc, 0x64, 0xc8, 0xfe, 0x76, 0xaa, 0xc8, 0x5e, - 0x07, 0x4e, 0x6d, 0x94, 0x74, 0xa3, 0x52, 0xae, 0x6c, 0x94, 0xf0, 0x38, 0xca, 0x0d, 0xd9, 0x11, - 0xe6, 0xba, 0x08, 0x7a, 0x5f, 0x7c, 0x3f, 0x90, 0x03, 0x37, 0xf4, 0xef, 0x68, 0xcb, 0x3b, 0xa6, - 0xbd, 0x8d, 0xa0, 0x25, 0x03, 0xf5, 0x12, 0x98, 0x68, 0x92, 0xec, 0x14, 0x67, 0x7e, 0xeb, 0x26, - 0xa6, 0x2f, 0xa7, 0x35, 0xe8, 0xfe, 0xaf, 0xf0, 0xed, 0xbc, 0x40, 0x18, 0xa2, 0x40, 0x3c, 0x23, - 0x1e, 0xbc, 0x03, 0x74, 0x47, 0xc8, 0xc6, 0xa7, 0x03, 0xd9, 0xb8, 0x20, 0xc8, 0x46, 0xf9, 0x70, - 0xc5, 0x27, 0x13, 0x93, 0x3f, 0x7a, 0x34, 0x74, 0x00, 0x91, 0xd2, 0x64, 0x45, 0x8f, 0x0a, 0x7d, - 0xbb, 0xfb, 0x57, 0x29, 0xa0, 0xb0, 0x84, 0xda, 0x48, 0x76, 0x25, 0xf2, 0x1f, 0xb2, 0xb2, 0x1b, - 0x22, 0x14, 0x06, 0x5a, 0x76, 0xf4, 0xea, 0x88, 0x67, 0xed, 0xa2, 0xae, 0x67, 0xee, 0x76, 0x08, - 0xab, 0x15, 0x3d, 0x4c, 0x80, 0x3f, 0x95, 0x95, 0xd9, 0x2e, 0x89, 0xa9, 0xe6, 0xdf, 0xc6, 0x9a, - 0xe2, 0x57, 0xe7, 0x40, 0xe1, 0x82, 0xd9, 0x6e, 0x23, 0x0f, 0x7e, 0x2d, 0x0b, 0x0a, 0x65, 0x3c, - 0x27, 0x45, 0xf0, 0xf1, 0x21, 0x58, 0x10, 0x4c, 0xba, 0x8e, 0xe3, 0x6d, 0x98, 0xde, 0x0e, 0x43, - 0x2b, 0x78, 0x67, 0xdb, 0xb4, 0xbf, 0xc5, 0x83, 0x76, 0xbf, 0x08, 0xda, 0x0f, 0x0a, 0xdc, 0xa4, - 0x15, 0x2d, 0xd0, 0x4a, 0x22, 0x50, 0x83, 0x60, 0x72, 0xd7, 0x46, 0xbb, 0x8e, 0x6d, 0x35, 0xfd, - 0x91, 0xde, 0x7f, 0x87, 0x1f, 0x0a, 0x66, 0xc9, 0x8b, 0x02, 0x66, 0x0b, 0xd2, 0xb5, 0x24, 0x03, - 0xad, 0x3e, 0x04, 0x66, 0x37, 0x82, 0xeb, 0x29, 0x04, 0x0d, 0xa3, 0xd6, 0x28, 0xeb, 0x5a, 0xc9, - 0xd0, 0x1a, 0x6b, 0xb5, 0x72, 0x69, 0xad, 0xa1, 0x6b, 0x1b, 0xb5, 0x22, 0x82, 0xff, 0x2d, 0x8b, - 0x99, 0xdb, 0x74, 0xf6, 0x91, 0x0b, 0x57, 0xa4, 0xf8, 0x1c, 0xc7, 0x13, 0x86, 0xc1, 0x2f, 0x4a, - 0x6f, 0x95, 0x33, 0xee, 0x30, 0x0a, 0x22, 0xba, 0xc2, 0x0f, 0x4b, 0x6d, 0x7b, 0xc7, 0x16, 0xf5, - 0x28, 0xe0, 0xf4, 0xff, 0xca, 0x82, 0x89, 0xb2, 0x63, 0xef, 0x23, 0xd7, 0xe3, 0xad, 0x4c, 0x9e, - 0x9b, 0x19, 0x91, 0x9b, 0xb8, 0x6b, 0x42, 0xb6, 0xe7, 0x3a, 0x1d, 0xdf, 0xcc, 0xf4, 0x5f, 0xe1, - 0x6f, 0x24, 0xe5, 0x30, 0xab, 0x39, 0x7a, 0xb9, 0xa9, 0x7f, 0x45, 0x02, 0x79, 0x4a, 0x8f, 0x02, - 0xbc, 0x26, 0x09, 0x2e, 0xfd, 0x09, 0x48, 0x7f, 0x97, 0xf7, 0xcb, 0x0a, 0x98, 0xa5, 0xca, 0x57, - 0x47, 0x64, 0x5c, 0x84, 0x35, 0x7e, 0xa1, 0xa7, 0x87, 0xf9, 0xab, 0xc7, 0x04, 0xf6, 0x17, 0xcc, - 0x4e, 0x27, 0x58, 0xf4, 0x5b, 0x3d, 0xa6, 0xb3, 0x77, 0x2a, 0xe6, 0x8b, 0x05, 0x90, 0x33, 0xf7, - 0xbc, 0x1d, 0xf8, 0x3d, 0x69, 0x93, 0x5f, 0xe8, 0x0c, 0x18, 0x3d, 0x11, 0x90, 0x9c, 0x04, 0x79, - 0xcf, 0xb9, 0x84, 0x7c, 0x3e, 0xd0, 0x17, 0x0c, 0x87, 0xd9, 0xe9, 0x18, 0xe4, 0x03, 0x83, 0xc3, - 0x7f, 0xc7, 0x23, 0x8c, 0xd9, 0x6c, 0x3a, 0x7b, 0xb6, 0x57, 0xf1, 0x17, 0xfe, 0xc2, 0x04, 0xf8, - 0xf9, 0x8c, 0xcc, 0x14, 0x42, 0x82, 0xc0, 0x64, 0x90, 0x5d, 0x1c, 0x42, 0x95, 0x16, 0xc0, 0xed, - 0xa5, 0x8d, 0x8d, 0x86, 0x51, 0x7b, 0x50, 0xab, 0x86, 0xc3, 0x7d, 0xa3, 0x52, 0x6d, 0x18, 0xab, - 0x5a, 0xa3, 0xbc, 0xa9, 0x93, 0xd5, 0x99, 0x52, 0xb9, 0x5c, 0xdb, 0xac, 0x1a, 0x45, 0x04, 0xdf, - 0x94, 0x05, 0x33, 0xe5, 0xb6, 0xd3, 0x0d, 0x10, 0xbe, 0x31, 0x44, 0x38, 0x60, 0x63, 0x86, 0x63, - 0x23, 0xfc, 0x4e, 0x46, 0x76, 0xab, 0xd7, 0x67, 0x08, 0x57, 0x7c, 0x44, 0x2f, 0xf5, 0x1b, 0x52, - 0x5b, 0xbd, 0x83, 0xcb, 0x4b, 0x5f, 0x25, 0x3e, 0x7b, 0x0f, 0x98, 0x28, 0x51, 0xc1, 0x80, 0x7f, - 0x9d, 0x01, 0x85, 0xb2, 0x63, 0x6f, 0x59, 0xdb, 0xea, 0xad, 0x60, 0x0e, 0xd9, 0xe6, 0xc5, 0x36, - 0x5a, 0x32, 0x3d, 0x73, 0xdf, 0x42, 0x97, 0x49, 0x03, 0x26, 0xf5, 0x9e, 0x54, 0x4c, 0x14, 0x4b, - 0x41, 0x17, 0xf7, 0xb6, 0x09, 0x51, 0x93, 0x3a, 0x9f, 0xa4, 0x3e, 0x0d, 0x5c, 0x4b, 0x5f, 0x37, - 0x5c, 0xe4, 0xa2, 0x36, 0x32, 0xbb, 0x08, 0x1b, 0xa3, 0x36, 0x6a, 0x13, 0xa1, 0x9d, 0xd4, 0xa3, - 0x3e, 0xab, 0x67, 0xc1, 0x0c, 0xfd, 0x44, 0x4c, 0x9d, 0x2e, 0x11, 0xe3, 0x49, 0x5d, 0x48, 0x53, - 0x9f, 0x00, 0xf2, 0xe8, 0x8a, 0xe7, 0x9a, 0xf3, 0x2d, 0x82, 0xd7, 0xb5, 0x0b, 0xd4, 0xd7, 0x6b, - 0xc1, 0xf7, 0xf5, 0x5a, 0xa8, 0x13, 0x4f, 0x30, 0x9d, 0xe6, 0x82, 0xbf, 0x3a, 0x19, 0x18, 0x12, - 0xff, 0x9a, 0x0d, 0x05, 0x43, 0x05, 0x39, 0xdb, 0xdc, 0x45, 0x4c, 0x2e, 0xc8, 0xb3, 0x7a, 0x3b, - 0x38, 0x6e, 0xee, 0x9b, 0x9e, 0xe9, 0xae, 0x39, 0x4d, 0xb3, 0x4d, 0x06, 0x3f, 0x5f, 0xf3, 0x7b, - 0x3f, 0x90, 0x75, 0x78, 0xcf, 0x71, 0x11, 0xc9, 0xe5, 0xaf, 0xc3, 0xfb, 0x09, 0xb8, 0x74, 0xab, - 0xe9, 0xd8, 0x84, 0x7e, 0x45, 0x27, 0xcf, 0x98, 0x2b, 0x2d, 0xab, 0x8b, 0x1b, 0x42, 0x4a, 0xa9, - 0xd2, 0x05, 0xe5, 0xfa, 0x55, 0xbb, 0x49, 0xd6, 0xe0, 0x27, 0xf5, 0xa8, 0xcf, 0xea, 0x22, 0x98, - 0x66, 0xcb, 0xcf, 0xeb, 0x58, 0xae, 0x0a, 0x44, 0xae, 0x6e, 0x12, 0x3d, 0x69, 0x28, 0x9e, 0x0b, - 0xd5, 0x30, 0x9f, 0xce, 0xff, 0xa4, 0x3e, 0x00, 0xae, 0x67, 0xaf, 0xe5, 0xbd, 0xae, 0xe7, 0xec, - 0x52, 0xd0, 0x97, 0xad, 0x36, 0x6d, 0xc1, 0x04, 0x69, 0x41, 0x5c, 0x16, 0xf5, 0x4e, 0x70, 0xb2, - 0xe3, 0xa2, 0x2d, 0xe4, 0x3e, 0x64, 0xee, 0xee, 0x5d, 0x31, 0x5c, 0xd3, 0xee, 0x76, 0x1c, 0xd7, - 0x9b, 0x9f, 0x24, 0xc4, 0xf7, 0xfd, 0xc6, 0x3a, 0xca, 0x49, 0x50, 0xa0, 0xec, 0x83, 0x2f, 0xcc, - 0x4b, 0x3b, 0xd1, 0xb1, 0x06, 0xc5, 0x9a, 0x67, 0x4f, 0x04, 0x13, 0xac, 0x87, 0x23, 0x40, 0x4d, - 0xdf, 0x79, 0xba, 0x67, 0x36, 0xc7, 0x4a, 0xd1, 0xfd, 0x6c, 0xea, 0x5d, 0xa0, 0xd0, 0x24, 0xcd, - 0x22, 0x98, 0x4d, 0xdf, 0x79, 0x7d, 0xff, 0x4a, 0x49, 0x16, 0x9d, 0x65, 0x85, 0x5f, 0x50, 0xa4, - 0xfc, 0xee, 0xe2, 0x28, 0x4e, 0xa6, 0xd5, 0x5f, 0xcf, 0x0e, 0xd1, 0x6d, 0xde, 0x01, 0x6e, 0x63, - 0x7d, 0x22, 0xb3, 0x3f, 0x96, 0x1a, 0x8b, 0x9b, 0xbe, 0x09, 0x8e, 0xad, 0x92, 0xba, 0x51, 0xd2, - 0xf1, 0xfc, 0x69, 0x09, 0x9b, 0xee, 0xb7, 0x83, 0x5b, 0x07, 0xe4, 0xd6, 0x8c, 0x46, 0xb5, 0xb4, - 0xae, 0x15, 0xb7, 0x44, 0xdb, 0xa6, 0x6e, 0xd4, 0x36, 0x1a, 0xfa, 0x66, 0xb5, 0x5a, 0xa9, 0xae, - 0xd0, 0xc2, 0xb0, 0x49, 0x78, 0x3a, 0xcc, 0x70, 0x41, 0xaf, 0x18, 0x5a, 0xa3, 0x5c, 0xab, 0x2e, - 0x57, 0x56, 0x8a, 0xd6, 0x20, 0xc3, 0xe8, 0x61, 0xf5, 0x26, 0x70, 0x83, 0x40, 0x49, 0xa5, 0x56, - 0xc5, 0xf3, 0x89, 0x72, 0xa9, 0x5a, 0xd6, 0xf0, 0xe4, 0xe1, 0x92, 0x0a, 0xc1, 0x29, 0x5a, 0x5c, - 0x63, 0xb9, 0xb2, 0xc6, 0x6f, 0x01, 0x7c, 0x3c, 0xa3, 0xce, 0x83, 0x6b, 0xf8, 0x6f, 0x95, 0xea, - 0xf9, 0xd2, 0x5a, 0x65, 0xa9, 0xf8, 0x87, 0x19, 0xf5, 0x16, 0x70, 0xa3, 0xf0, 0x17, 0x5d, 0xcd, - 0x6f, 0x54, 0x96, 0x1a, 0xeb, 0x95, 0xfa, 0x7a, 0xc9, 0x28, 0xaf, 0x16, 0x3f, 0x41, 0xe6, 0x0b, - 0x81, 0x01, 0xcc, 0x39, 0xc3, 0xbd, 0x84, 0x1f, 0xd3, 0x4b, 0xa2, 0xa0, 0x3e, 0xbe, 0x2f, 0xec, - 0xf1, 0x36, 0xec, 0x47, 0x83, 0xd1, 0x61, 0x49, 0x10, 0xa1, 0x27, 0x26, 0x28, 0x2b, 0x99, 0x0c, - 0x19, 0x43, 0x88, 0xd0, 0x4d, 0xe0, 0x86, 0xaa, 0x46, 0x91, 0xd2, 0xb5, 0x72, 0xed, 0xbc, 0xa6, - 0x37, 0x2e, 0x94, 0xd6, 0xd6, 0x34, 0xa3, 0xb1, 0x5c, 0xd1, 0xeb, 0x46, 0x71, 0x0b, 0xfe, 0x73, - 0x36, 0x98, 0x43, 0x73, 0xdc, 0xfa, 0xeb, 0x6c, 0x52, 0xb5, 0x8e, 0x9d, 0x2b, 0x3f, 0x05, 0x14, - 0xba, 0x9e, 0xe9, 0xed, 0x75, 0x99, 0x56, 0x3f, 0xa6, 0xbf, 0x56, 0x2f, 0xd4, 0x49, 0x26, 0x9d, - 0x65, 0x86, 0x5f, 0xc8, 0x24, 0x51, 0xd3, 0x11, 0x4c, 0xa3, 0xad, 0x21, 0x58, 0x7c, 0x06, 0x40, - 0x5f, 0xda, 0x2b, 0xf5, 0x46, 0x69, 0x4d, 0xd7, 0x4a, 0x4b, 0x0f, 0x05, 0x93, 0x67, 0xa4, 0x9e, - 0x02, 0x27, 0x36, 0xab, 0x78, 0x3a, 0x4c, 0xd4, 0xa5, 0x56, 0xad, 0x6a, 0x65, 0xcc, 0xf7, 0x9f, - 0x22, 0x4b, 0xd5, 0xd8, 0x82, 0x26, 0x74, 0x63, 0x2b, 0x87, 0xe3, 0xff, 0xdf, 0x49, 0x7b, 0x74, - 0x84, 0x12, 0xc6, 0x97, 0x35, 0x5a, 0x1c, 0x3e, 0x2f, 0xe5, 0xc4, 0x21, 0x45, 0x49, 0x32, 0x3c, - 0xfe, 0xc3, 0x10, 0x78, 0x9c, 0x02, 0x27, 0x78, 0x3c, 0x88, 0x33, 0x47, 0x34, 0x0c, 0x5f, 0x99, - 0x04, 0x85, 0x3a, 0x6a, 0xa3, 0xa6, 0x07, 0xdf, 0xc2, 0x19, 0x13, 0x73, 0x20, 0x1b, 0x38, 0x0f, - 0x64, 0xad, 0x96, 0x30, 0x7d, 0xce, 0xf6, 0x4c, 0x9f, 0x63, 0xcc, 0x00, 0x25, 0x91, 0x19, 0x90, - 0x4b, 0xc1, 0x0c, 0xc8, 0x0f, 0x6f, 0x06, 0x14, 0x06, 0x99, 0x01, 0xf0, 0xd7, 0x0b, 0x49, 0x7b, - 0x09, 0xca, 0xea, 0xa3, 0x1d, 0xfc, 0xff, 0x67, 0x2e, 0x49, 0xaf, 0xd2, 0x97, 0xe2, 0x64, 0x52, - 0xfc, 0x3d, 0x25, 0x85, 0xe5, 0x07, 0xf5, 0x66, 0x70, 0x63, 0xf8, 0xde, 0xd0, 0x9e, 0x55, 0xa9, - 0x1b, 0x75, 0x32, 0xe2, 0x97, 0x6b, 0xba, 0xbe, 0xb9, 0x41, 0x57, 0xee, 0x4e, 0x03, 0x35, 0x2c, - 0x45, 0xdf, 0xac, 0xd2, 0xf1, 0x7d, 0x5b, 0x2c, 0x7d, 0xb9, 0x52, 0x5d, 0x6a, 0x04, 0x3a, 0x53, - 0x5d, 0xae, 0x15, 0x77, 0xf0, 0x94, 0x8d, 0x2b, 0x1d, 0x0f, 0xd0, 0xac, 0x86, 0x52, 0x75, 0xa9, - 0xb1, 0x5e, 0xd5, 0xd6, 0x6b, 0xd5, 0x4a, 0x99, 0xa4, 0xd7, 0x35, 0xa3, 0x68, 0xe1, 0x81, 0xa6, - 0xc7, 0xa2, 0xa8, 0x6b, 0x25, 0xbd, 0xbc, 0xaa, 0xe9, 0xb4, 0xca, 0x87, 0xd5, 0x5b, 0xc1, 0xd9, - 0x52, 0xb5, 0x66, 0xe0, 0x94, 0x52, 0xf5, 0x21, 0xe3, 0xa1, 0x0d, 0xad, 0xb1, 0xa1, 0xd7, 0xca, - 0x5a, 0xbd, 0x8e, 0xf5, 0x94, 0xd9, 0x1f, 0xc5, 0xb6, 0xfa, 0x0c, 0x70, 0x0f, 0x47, 0x9a, 0x66, - 0x90, 0x6d, 0xa2, 0xf5, 0x1a, 0xf1, 0x14, 0x58, 0xd2, 0x1a, 0xab, 0xa5, 0x7a, 0xa3, 0x52, 0x2d, - 0xd7, 0xd6, 0x37, 0x4a, 0x46, 0x05, 0xab, 0xf3, 0x86, 0x5e, 0x33, 0x6a, 0x8d, 0xf3, 0x9a, 0x5e, - 0xaf, 0xd4, 0xaa, 0x45, 0x1b, 0x37, 0x99, 0xd3, 0x7f, 0xbf, 0x1f, 0x76, 0xd4, 0x1b, 0xc0, 0xbc, - 0x9f, 0xbe, 0x56, 0xc3, 0x8c, 0xe6, 0x2c, 0x92, 0x4e, 0xaa, 0x16, 0xc9, 0xbf, 0x64, 0x41, 0xae, - 0xee, 0x39, 0x1d, 0xf8, 0x83, 0x61, 0x07, 0x73, 0x06, 0x00, 0x97, 0xec, 0xfa, 0xe0, 0x59, 0x18, - 0x9b, 0x97, 0x71, 0x29, 0xf0, 0x0f, 0xa4, 0x97, 0xaa, 0xc3, 0x3e, 0xdb, 0xe9, 0x44, 0xd8, 0x2a, - 0xdf, 0x96, 0xf3, 0xdd, 0x8f, 0x2e, 0x28, 0x99, 0xbc, 0xff, 0xec, 0x30, 0x8b, 0xd1, 0x10, 0x9c, - 0xe6, 0x60, 0xc3, 0xfc, 0xf7, 0x45, 0x02, 0xa9, 0xd7, 0x82, 0x6b, 0x7a, 0x84, 0x8b, 0xc8, 0xd4, - 0x96, 0xfa, 0x58, 0xf0, 0x18, 0x4e, 0xbc, 0xb5, 0xf5, 0xda, 0x79, 0x2d, 0x10, 0xe4, 0xa5, 0x92, - 0x51, 0x2a, 0x6e, 0xc3, 0xcf, 0x2a, 0x20, 0xb7, 0xee, 0xec, 0xf7, 0xee, 0x10, 0xd8, 0xe8, 0x32, - 0xb7, 0x16, 0xea, 0xbf, 0x8a, 0xbe, 0xca, 0x52, 0x6c, 0x5f, 0x8f, 0xde, 0x0d, 0xfc, 0x7c, 0x36, - 0x09, 0xdb, 0xd7, 0x0f, 0xbb, 0x05, 0xf8, 0xf7, 0xc3, 0xb0, 0x3d, 0x82, 0xb5, 0x48, 0x3d, 0x0b, - 0xce, 0x84, 0x1f, 0x2a, 0x4b, 0x5a, 0xd5, 0xa8, 0x2c, 0x3f, 0x14, 0x32, 0xb7, 0xa2, 0x4b, 0xb1, - 0x7f, 0x50, 0x37, 0x16, 0x3f, 0xd3, 0x98, 0x07, 0x27, 0xc3, 0x6f, 0x2b, 0x9a, 0xe1, 0x7f, 0x79, - 0x18, 0x3e, 0x2f, 0x0f, 0x66, 0x68, 0xb7, 0xbe, 0xd9, 0x69, 0x99, 0x1e, 0x82, 0x77, 0x85, 0xe8, - 0xde, 0x06, 0x8e, 0x57, 0x36, 0x96, 0xeb, 0x75, 0xcf, 0x71, 0xcd, 0x6d, 0x54, 0x6a, 0xb5, 0x5c, - 0xc6, 0xad, 0xde, 0x64, 0xf8, 0x4e, 0xe9, 0x75, 0x3e, 0x71, 0x28, 0xa1, 0x75, 0x46, 0xa0, 0xfe, - 0x65, 0xa9, 0x75, 0x39, 0x89, 0x02, 0x93, 0xa1, 0xff, 0xf0, 0x88, 0x75, 0x2e, 0x1a, 0x97, 0xad, - 0xb3, 0xcf, 0xcf, 0x82, 0x29, 0xc3, 0xda, 0x45, 0xcf, 0x76, 0x6c, 0xd4, 0x55, 0x27, 0x80, 0xb2, - 0xb2, 0x6e, 0x14, 0x8f, 0xe1, 0x07, 0x6c, 0x54, 0x65, 0xc8, 0x83, 0x86, 0x2b, 0xc0, 0x0f, 0x25, - 0xa3, 0xa8, 0xe0, 0x87, 0x75, 0xcd, 0x28, 0xe6, 0xf0, 0x43, 0x55, 0x33, 0x8a, 0x79, 0xfc, 0xb0, - 0xb1, 0x66, 0x14, 0x0b, 0xf8, 0xa1, 0x52, 0x37, 0x8a, 0x13, 0xf8, 0x61, 0xb1, 0x6e, 0x14, 0x27, - 0xf1, 0xc3, 0xf9, 0xba, 0x51, 0x9c, 0xc2, 0x0f, 0x65, 0xc3, 0x28, 0x02, 0xfc, 0xf0, 0xcc, 0xba, - 0x51, 0x9c, 0xc6, 0x0f, 0xa5, 0xb2, 0x51, 0x9c, 0x21, 0x0f, 0x9a, 0x51, 0x9c, 0xc5, 0x0f, 0xf5, - 0xba, 0x51, 0x9c, 0x23, 0x25, 0xd7, 0x8d, 0xe2, 0x71, 0x52, 0x57, 0xc5, 0x28, 0x16, 0xf1, 0xc3, - 0x6a, 0xdd, 0x28, 0x9e, 0x20, 0x99, 0xeb, 0x46, 0x51, 0x25, 0x95, 0xd6, 0x8d, 0xe2, 0x35, 0x24, - 0x4f, 0xdd, 0x28, 0x9e, 0x24, 0x55, 0xd4, 0x8d, 0xe2, 0x29, 0x42, 0x86, 0x66, 0x14, 0x4f, 0x93, - 0x3c, 0xba, 0x51, 0xbc, 0x96, 0x7c, 0xaa, 0x1a, 0xc5, 0x79, 0x42, 0x98, 0x66, 0x14, 0xaf, 0x23, - 0x0f, 0xba, 0x51, 0x84, 0xe4, 0x53, 0xc9, 0x28, 0x5e, 0x0f, 0x1f, 0x03, 0xa6, 0x56, 0x90, 0x47, - 0x41, 0x84, 0x45, 0xa0, 0xac, 0x20, 0x8f, 0x37, 0xe3, 0xbf, 0xaa, 0x80, 0x6b, 0xd9, 0xd4, 0x6f, - 0xd9, 0x75, 0x76, 0xd7, 0xd0, 0xb6, 0xd9, 0xbc, 0xaa, 0x5d, 0xc1, 0x26, 0x14, 0xac, 0x0b, 0x4b, - 0x57, 0x9d, 0xb0, 0x33, 0x22, 0xcf, 0xb1, 0x16, 0xa7, 0xbf, 0x18, 0xa5, 0x84, 0x8b, 0x51, 0xcc, - 0x22, 0xfb, 0x27, 0x5e, 0xa2, 0x85, 0xf5, 0xe3, 0x4c, 0xcf, 0xfa, 0x31, 0x56, 0x93, 0x0e, 0x72, - 0xbb, 0x8e, 0x6d, 0xb6, 0xeb, 0x6c, 0xbb, 0x94, 0xae, 0x7a, 0xf5, 0x26, 0xab, 0x3f, 0xec, 0x6b, - 0x06, 0xb5, 0xca, 0x9e, 0x1e, 0x37, 0xc3, 0xed, 0x6d, 0x66, 0x84, 0x92, 0x7c, 0x22, 0x50, 0x12, - 0x43, 0x50, 0x92, 0x07, 0x0e, 0x51, 0x76, 0x32, 0x7d, 0xa9, 0x0c, 0x37, 0xb5, 0x08, 0x9d, 0x09, - 0xfd, 0xe5, 0x6a, 0x05, 0x7e, 0x36, 0x0b, 0x4e, 0x6b, 0x76, 0x3f, 0x0b, 0x9f, 0x97, 0x85, 0x37, - 0xf1, 0xd0, 0x6c, 0x88, 0x2c, 0xbd, 0xa7, 0x6f, 0xb3, 0xfb, 0x97, 0x19, 0xc1, 0xd1, 0x4f, 0x05, - 0x1c, 0xad, 0x0b, 0x1c, 0xbd, 0x7f, 0xf8, 0xa2, 0x93, 0x31, 0xb4, 0x3a, 0xd2, 0x0e, 0x28, 0x07, - 0xbf, 0x9e, 0x03, 0x8f, 0xa1, 0x1e, 0x0f, 0x8c, 0x42, 0xaa, 0x65, 0x25, 0xbb, 0xa5, 0xa3, 0xae, - 0x67, 0xba, 0x9e, 0x70, 0x0a, 0xb5, 0x67, 0x2a, 0x95, 0x49, 0x61, 0x2a, 0x95, 0x1d, 0x38, 0x95, - 0x82, 0xef, 0xe0, 0xcd, 0x87, 0x0b, 0x22, 0xc6, 0xa5, 0xfe, 0xfd, 0x7f, 0x5c, 0x0b, 0xa3, 0xa0, - 0x0e, 0xec, 0x8a, 0x1f, 0x11, 0xa0, 0x5e, 0x3e, 0x74, 0x0d, 0xc9, 0x10, 0xff, 0x83, 0xd1, 0xda, - 0x79, 0x39, 0xfe, 0x9b, 0x68, 0x94, 0x14, 0x5b, 0xa9, 0x1a, 0xe8, 0x9f, 0x9e, 0x00, 0x53, 0x44, - 0x17, 0xd6, 0x2c, 0xfb, 0x12, 0x7c, 0x8d, 0x02, 0x66, 0xaa, 0xe8, 0x72, 0x79, 0xc7, 0x6c, 0xb7, - 0x91, 0xbd, 0x8d, 0x78, 0xb3, 0x7d, 0x1e, 0x4c, 0x98, 0x9d, 0x4e, 0x35, 0xdc, 0x67, 0xf0, 0x5f, - 0x59, 0xff, 0xfb, 0x77, 0x7d, 0x95, 0x3c, 0x13, 0xa3, 0xe4, 0x41, 0xbd, 0x0b, 0x7c, 0x9d, 0x11, - 0x33, 0xe4, 0x9b, 0xc0, 0x74, 0xd3, 0xcf, 0x12, 0x78, 0xab, 0xf3, 0x49, 0xf0, 0x6f, 0x13, 0x75, - 0x03, 0x52, 0x95, 0x27, 0x13, 0x0a, 0x34, 0x62, 0x3b, 0xe4, 0x14, 0x38, 0x61, 0xd4, 0x6a, 0x8d, - 0xf5, 0x52, 0xf5, 0xa1, 0xf0, 0x94, 0xe8, 0x16, 0x7c, 0x45, 0x0e, 0xcc, 0xd5, 0x9d, 0xf6, 0x3e, - 0x0a, 0x61, 0xaa, 0x84, 0x30, 0xf5, 0xf0, 0x29, 0x73, 0x80, 0x4f, 0xea, 0x69, 0x50, 0x30, 0xed, - 0xee, 0x65, 0xe4, 0xdb, 0x86, 0xec, 0x8d, 0xc1, 0xf8, 0x01, 0x5e, 0x8f, 0x75, 0x11, 0xc6, 0x7b, - 0x07, 0x70, 0x52, 0xa4, 0x2a, 0x02, 0xc8, 0xb3, 0x60, 0xa6, 0x4b, 0x37, 0x0b, 0x0d, 0x6e, 0x4f, - 0x58, 0x48, 0x23, 0x24, 0xd2, 0xdd, 0x6a, 0x85, 0x91, 0x48, 0xde, 0xe0, 0x6b, 0x02, 0xf5, 0xdf, - 0x14, 0x20, 0x2e, 0x1d, 0x86, 0xb0, 0x64, 0x20, 0xbf, 0x6a, 0xd4, 0x33, 0xbc, 0x79, 0x70, 0x92, - 0x69, 0x6d, 0xa3, 0xbc, 0x5a, 0x5a, 0x5b, 0xd3, 0xaa, 0x2b, 0x5a, 0xa3, 0xb2, 0x44, 0xb7, 0x2a, - 0xc2, 0x94, 0x92, 0x61, 0x68, 0xeb, 0x1b, 0x46, 0xbd, 0xa1, 0x3d, 0xab, 0xac, 0x69, 0x4b, 0xc4, - 0x11, 0x89, 0x9c, 0x24, 0xf0, 0x5d, 0xc6, 0x4a, 0xd5, 0xfa, 0x05, 0x4d, 0x2f, 0xee, 0x9c, 0x2d, - 0x81, 0x69, 0xae, 0x9f, 0xc7, 0xd4, 0x2d, 0xa1, 0x2d, 0x73, 0xaf, 0xcd, 0x6c, 0xb5, 0xe2, 0x31, - 0x4c, 0x1d, 0xe1, 0x4d, 0xcd, 0x6e, 0x5f, 0x2d, 0x66, 0xd4, 0x22, 0x98, 0xe1, 0xbb, 0xf4, 0x62, - 0x16, 0x7e, 0xfb, 0x7a, 0x30, 0x75, 0xc1, 0x71, 0x2f, 0x11, 0xef, 0x31, 0xf8, 0x1e, 0x1a, 0x4d, - 0xc2, 0x3f, 0x97, 0xc7, 0x0d, 0xec, 0xaf, 0x92, 0xf7, 0x16, 0xf0, 0x4b, 0x5b, 0x18, 0x78, 0xf6, - 0xee, 0x26, 0x30, 0x7d, 0xd9, 0xcf, 0x1d, 0x6a, 0x3a, 0x97, 0x04, 0xff, 0xab, 0xdc, 0xfe, 0xff, - 0xe0, 0x2a, 0xd3, 0xdf, 0x9f, 0x7e, 0x4b, 0x16, 0x14, 0x56, 0x90, 0x57, 0x6a, 0xb7, 0x79, 0xbe, - 0xbd, 0x54, 0xfa, 0x3c, 0x85, 0xd0, 0x88, 0x52, 0xbb, 0x1d, 0xad, 0x54, 0x1c, 0x83, 0x7c, 0xbf, - 0x5f, 0x21, 0x0d, 0xfe, 0xba, 0xd4, 0x49, 0xa8, 0x01, 0x15, 0xa6, 0xcf, 0xb1, 0xd7, 0x2b, 0xc1, - 0x1e, 0xf7, 0xcf, 0x70, 0x56, 0xce, 0x93, 0xc2, 0x48, 0x22, 0x99, 0xf8, 0xbd, 0x72, 0x3f, 0x9f, - 0xfa, 0x20, 0x98, 0xd8, 0xeb, 0xa2, 0xb2, 0xd9, 0x45, 0x84, 0xb6, 0xde, 0x96, 0xd6, 0x2e, 0x3e, - 0x8c, 0x9a, 0xde, 0x42, 0x65, 0x17, 0x1b, 0xd4, 0x9b, 0x34, 0x63, 0x10, 0x9c, 0x83, 0xbd, 0xeb, - 0x7e, 0x09, 0xf0, 0x85, 0x43, 0x40, 0x16, 0xbb, 0xdf, 0x1b, 0x79, 0xf4, 0x2a, 0x31, 0x50, 0x23, - 0xd8, 0xa4, 0x1d, 0x06, 0xa8, 0x4f, 0x67, 0x41, 0xae, 0xd6, 0x41, 0xb6, 0x9c, 0x03, 0xea, 0x6b, - 0xe4, 0xbd, 0xbc, 0x82, 0x86, 0xe1, 0xd2, 0x23, 0xb8, 0x77, 0x0e, 0xe4, 0x2c, 0x7b, 0xcb, 0x61, - 0x06, 0xe6, 0xf5, 0x11, 0x9b, 0x39, 0x15, 0x7b, 0xcb, 0xd1, 0x49, 0x46, 0x59, 0x07, 0xaf, 0xb8, - 0xba, 0xd3, 0x67, 0xe9, 0x37, 0x26, 0x41, 0x81, 0x8a, 0x25, 0x7c, 0x89, 0x02, 0x94, 0x52, 0xab, - 0x15, 0x71, 0x88, 0x23, 0x7b, 0xe0, 0x10, 0x87, 0x43, 0x7e, 0x0b, 0xf8, 0x1e, 0xbc, 0x8b, 0xa1, - 0x20, 0x24, 0xfb, 0x68, 0xa6, 0x1a, 0xa5, 0x56, 0x2b, 0xda, 0x97, 0x34, 0xa8, 0x30, 0x2b, 0x56, - 0xc8, 0x6b, 0xaa, 0x22, 0xa7, 0xa9, 0x89, 0x3b, 0xf4, 0x48, 0xfa, 0xd2, 0x87, 0xe8, 0x9f, 0xb2, - 0x60, 0x62, 0xcd, 0xea, 0x7a, 0x18, 0x9b, 0x92, 0x0c, 0x36, 0x37, 0x80, 0x29, 0x9f, 0x35, 0xb8, - 0xeb, 0xc2, 0xfd, 0x72, 0x98, 0x00, 0x5f, 0xcb, 0xa3, 0xf3, 0x4c, 0x11, 0x9d, 0x27, 0xc7, 0xb7, - 0x9e, 0x51, 0x11, 0xed, 0xa3, 0x1d, 0x56, 0x9b, 0xed, 0xad, 0xf6, 0xb7, 0x02, 0x86, 0xaf, 0x0b, - 0x0c, 0xbf, 0x7b, 0x98, 0x2a, 0xd3, 0x67, 0xfa, 0xe7, 0xb2, 0x00, 0xe0, 0xba, 0xd9, 0x41, 0x98, - 0x1f, 0x10, 0x8e, 0xb7, 0xc6, 0x70, 0xf7, 0x15, 0x3c, 0x77, 0xd7, 0x45, 0xee, 0x3e, 0x75, 0x70, - 0x53, 0xe3, 0x0e, 0xbc, 0xa8, 0x45, 0xa0, 0x58, 0x01, 0x6b, 0xf1, 0x23, 0x7c, 0x4b, 0xc0, 0xd4, - 0x0d, 0x81, 0xa9, 0xf7, 0x0e, 0x59, 0x53, 0xfa, 0x7c, 0xfd, 0xcb, 0x2c, 0x98, 0xa8, 0x23, 0x0f, - 0x77, 0x93, 0xf0, 0xbc, 0xcc, 0x91, 0x13, 0x4e, 0xb7, 0xb3, 0x92, 0xba, 0xfd, 0xad, 0x8c, 0x6c, - 0x98, 0x8c, 0x90, 0x33, 0x8c, 0xa6, 0x88, 0x45, 0x80, 0xd7, 0x49, 0x85, 0xc9, 0x18, 0x54, 0x5a, - 0xfa, 0xdc, 0x7d, 0x53, 0x36, 0xd8, 0x60, 0x7f, 0xbc, 0x30, 0x41, 0xe3, 0xcd, 0xdb, 0xcc, 0x41, - 0xf3, 0xf6, 0x9f, 0x33, 0xc9, 0x4d, 0x8d, 0xb8, 0xdd, 0xe5, 0xc4, 0x06, 0xc5, 0x08, 0x36, 0x7e, - 0x87, 0xe1, 0xd7, 0x73, 0x15, 0x50, 0x60, 0x2b, 0xc4, 0xf7, 0xc7, 0xaf, 0x10, 0x0f, 0x9e, 0x22, - 0xbc, 0x7b, 0x08, 0x73, 0x2d, 0x6e, 0xd9, 0x36, 0x20, 0x23, 0xcb, 0x91, 0x71, 0x07, 0xc8, 0x93, - 0x38, 0x7e, 0x6c, 0x9c, 0x0b, 0xf7, 0xec, 0xfd, 0x22, 0x34, 0xfc, 0x55, 0xa7, 0x99, 0x12, 0xa3, - 0x30, 0x82, 0x95, 0xde, 0x61, 0x50, 0x78, 0xe3, 0x07, 0x32, 0x81, 0x11, 0xf2, 0xee, 0x1c, 0x33, - 0xf1, 0x3e, 0x26, 0x46, 0x14, 0x68, 0x3a, 0xb6, 0x87, 0xae, 0x70, 0x6b, 0xeb, 0x41, 0x42, 0xac, - 0x65, 0x30, 0x0f, 0x26, 0x3c, 0x97, 0x5f, 0x6f, 0xf7, 0x5f, 0xf9, 0x1e, 0x27, 0x2f, 0xf6, 0x38, - 0x55, 0x70, 0xd6, 0xb2, 0x9b, 0xed, 0xbd, 0x16, 0xd2, 0x51, 0xdb, 0xc4, 0xad, 0xea, 0x96, 0xba, - 0x4b, 0xa8, 0x83, 0xec, 0x16, 0xb2, 0x3d, 0x4a, 0xa7, 0xef, 0x5b, 0x2b, 0x91, 0x13, 0x7e, 0x8d, - 0x17, 0x8c, 0xfb, 0x44, 0xc1, 0xf8, 0x81, 0x7e, 0xf3, 0x83, 0x18, 0x23, 0xf4, 0x6e, 0x00, 0x68, - 0xdb, 0xce, 0x5b, 0xe8, 0x32, 0xeb, 0x10, 0xaf, 0xeb, 0x31, 0x45, 0x6b, 0x41, 0x06, 0x9d, 0xcb, - 0x0c, 0xbf, 0x14, 0x08, 0xc3, 0x03, 0x82, 0x30, 0xdc, 0x21, 0x49, 0x42, 0x32, 0x39, 0xe8, 0x0c, - 0xb1, 0x66, 0x31, 0x0b, 0xa6, 0xc2, 0x95, 0x46, 0x45, 0xbd, 0x0e, 0x9c, 0xf2, 0x7d, 0x17, 0xaa, - 0x9a, 0xb6, 0x54, 0x6f, 0x6c, 0x6e, 0xac, 0xe8, 0xa5, 0x25, 0xad, 0x08, 0x54, 0x15, 0xcc, 0xd5, - 0x16, 0x9f, 0xa9, 0x95, 0x8d, 0xc0, 0xe5, 0x20, 0x07, 0xff, 0x3c, 0x0b, 0xf2, 0xc4, 0x31, 0x1c, - 0xfe, 0xd8, 0x88, 0x24, 0xa7, 0x2b, 0xec, 0xd4, 0x04, 0xf3, 0x0a, 0xf9, 0x48, 0x7f, 0x8c, 0x99, - 0x84, 0xaa, 0x43, 0x45, 0xfa, 0x8b, 0x29, 0x28, 0x7d, 0xf5, 0xc4, 0x2a, 0x59, 0xdf, 0x71, 0x2e, - 0xff, 0x7b, 0x56, 0x49, 0xdc, 0xfe, 0x23, 0x56, 0xc9, 0x3e, 0x24, 0x8c, 0x5d, 0x25, 0xfb, 0xe8, - 0x5d, 0x8c, 0x9a, 0xc2, 0xbf, 0xcd, 0x05, 0x0b, 0x2b, 0xff, 0xf7, 0xe1, 0x16, 0x56, 0x4a, 0x60, - 0xd6, 0xb2, 0x3d, 0xe4, 0xda, 0x66, 0x7b, 0xb9, 0x6d, 0x6e, 0xfb, 0xc7, 0x8f, 0x7b, 0x67, 0xe1, - 0x15, 0x2e, 0x8f, 0x2e, 0xfe, 0xa1, 0x9e, 0x01, 0xc0, 0x43, 0xbb, 0x9d, 0xb6, 0xe9, 0x85, 0xa2, - 0xc7, 0xa5, 0xf0, 0xd2, 0x97, 0x13, 0xa5, 0xef, 0x89, 0xe0, 0x1a, 0x0a, 0x9a, 0x71, 0xb5, 0x83, - 0x36, 0x6d, 0xeb, 0xc7, 0xf7, 0x48, 0x00, 0x1a, 0x2a, 0xa3, 0xfd, 0x3e, 0xc1, 0xff, 0x21, 0x7d, - 0x8c, 0xd2, 0xd7, 0xec, 0x01, 0xc7, 0x28, 0x03, 0x6d, 0x52, 0x7a, 0xb4, 0x29, 0x30, 0x08, 0x72, - 0x12, 0x06, 0x01, 0xcf, 0xf9, 0xbc, 0xa4, 0x31, 0xfd, 0x6a, 0xa9, 0x73, 0x9a, 0x71, 0xcd, 0x48, - 0xbf, 0x87, 0x7a, 0x8f, 0x02, 0xe6, 0x68, 0xd5, 0x8b, 0x8e, 0x73, 0x69, 0xd7, 0x74, 0x2f, 0xf1, - 0x73, 0x8b, 0x21, 0xc4, 0x2d, 0x7a, 0xa5, 0xec, 0x53, 0x3c, 0xb2, 0x2b, 0x22, 0xb2, 0x4f, 0x8a, - 0x66, 0x89, 0x4f, 0xd7, 0x78, 0x16, 0x37, 0xde, 0x10, 0x60, 0xf6, 0x4c, 0x01, 0xb3, 0x1f, 0x4a, - 0x4c, 0x60, 0xfa, 0xd8, 0xfd, 0x51, 0x80, 0x9d, 0xdf, 0x61, 0xa7, 0x86, 0xdd, 0x97, 0x87, 0xc3, - 0xce, 0xa7, 0x6b, 0x08, 0xec, 0x8a, 0x40, 0xb9, 0x14, 0x6c, 0x29, 0xe1, 0x47, 0xbe, 0x41, 0xb9, - 0xf4, 0xd0, 0x8c, 0x20, 0x79, 0x2c, 0x68, 0x9e, 0x14, 0x49, 0xa8, 0x75, 0x52, 0xc5, 0xf4, 0x8b, - 0xd2, 0xeb, 0x2d, 0x7d, 0x19, 0x44, 0xa9, 0x1b, 0x8f, 0x56, 0xca, 0x2d, 0xd6, 0xc8, 0x93, 0x99, - 0x3e, 0x9a, 0xff, 0x98, 0x03, 0x53, 0xfe, 0x61, 0x56, 0x0f, 0xfe, 0x29, 0x37, 0x84, 0x9f, 0x06, - 0x85, 0xae, 0xb3, 0xe7, 0x36, 0x11, 0x5b, 0x01, 0x63, 0x6f, 0x43, 0xac, 0xd6, 0x0c, 0x1c, 0x97, - 0x0f, 0x0c, 0xfd, 0xb9, 0xc4, 0x43, 0x7f, 0xa4, 0x61, 0x09, 0x5f, 0x28, 0x1d, 0x7a, 0x50, 0xc0, - 0xa5, 0x8e, 0xbc, 0x47, 0xe3, 0x58, 0xfd, 0x41, 0xa9, 0xf9, 0xfe, 0x80, 0x96, 0x24, 0x13, 0xab, - 0xda, 0x10, 0x46, 0xe5, 0xf5, 0xe0, 0x5a, 0x3f, 0x07, 0xb3, 0x26, 0x89, 0xf5, 0xb8, 0xa9, 0xaf, - 0x15, 0x15, 0xf8, 0xdc, 0x1c, 0x28, 0x52, 0xd2, 0x6a, 0x81, 0x61, 0x05, 0x5f, 0x7a, 0xe4, 0xd6, - 0x63, 0xf4, 0x74, 0xf0, 0x33, 0x59, 0xd9, 0xf0, 0x46, 0x02, 0xe3, 0xc3, 0xd6, 0x45, 0x48, 0xd2, - 0x10, 0xaa, 0x14, 0x23, 0x7c, 0xf0, 0x37, 0x33, 0x32, 0xd1, 0x92, 0xe4, 0x48, 0x4c, 0xbf, 0xe7, - 0x79, 0x6d, 0xce, 0x8f, 0x3b, 0xb0, 0xec, 0x3a, 0xbb, 0x9b, 0x6e, 0x1b, 0x7e, 0x48, 0x2a, 0x18, - 0x5d, 0x84, 0xa9, 0x9e, 0x8d, 0x34, 0xd5, 0xf1, 0x10, 0xbd, 0xe7, 0xb6, 0xfd, 0x21, 0x7a, 0xcf, - 0x6d, 0x0f, 0x31, 0x44, 0xab, 0xb7, 0x82, 0x39, 0xb3, 0xd5, 0xda, 0x30, 0xb7, 0x51, 0x19, 0xcf, - 0x81, 0x6d, 0x8f, 0x9d, 0x49, 0xee, 0x49, 0x4d, 0xb0, 0x33, 0x26, 0x00, 0xc1, 0x78, 0xf0, 0x68, - 0xda, 0x19, 0x93, 0xa0, 0x2f, 0x7d, 0x29, 0xf9, 0x44, 0x16, 0xcc, 0xfa, 0x86, 0xeb, 0x32, 0xf2, - 0x9a, 0x3b, 0xf0, 0x6e, 0xd9, 0x15, 0x0a, 0x06, 0x7b, 0x36, 0x80, 0x1d, 0x7e, 0x2f, 0x93, 0x10, - 0x1b, 0xa1, 0xe6, 0x88, 0xe5, 0x9d, 0x44, 0xcc, 0x8c, 0x2b, 0x30, 0x7d, 0x66, 0x7e, 0x29, 0x0b, - 0x80, 0xe1, 0x04, 0x13, 0xa8, 0x43, 0x70, 0xf2, 0xc5, 0xd2, 0x61, 0xca, 0x59, 0xc3, 0xc3, 0x6a, - 0x93, 0x8b, 0xb8, 0xe4, 0xde, 0xcc, 0xa0, 0x9a, 0xd2, 0xe7, 0xef, 0xfb, 0xb2, 0x60, 0x6a, 0x69, - 0xaf, 0xd3, 0xb6, 0x9a, 0xa6, 0xd7, 0xbb, 0xa1, 0x18, 0xcd, 0x5e, 0x72, 0xdf, 0x48, 0x22, 0x0b, - 0x25, 0xa8, 0x23, 0x82, 0x97, 0xf4, 0xb4, 0x65, 0xd6, 0x3f, 0x6d, 0x29, 0xb9, 0x49, 0x30, 0xa0, - 0xf0, 0x31, 0x88, 0xa7, 0x02, 0x8e, 0xd7, 0x3a, 0xc8, 0x5e, 0x74, 0x91, 0xd9, 0x6a, 0xba, 0x7b, - 0xbb, 0x17, 0xbb, 0xfc, 0x6e, 0x78, 0xbc, 0x8c, 0x72, 0x6b, 0x8e, 0x59, 0x61, 0xcd, 0x11, 0xfe, - 0xb4, 0x22, 0x7b, 0xf6, 0x97, 0x5b, 0x19, 0xe7, 0x68, 0x18, 0xa2, 0x4f, 0x4e, 0xb4, 0x87, 0xd3, - 0xb3, 0xbc, 0x98, 0x4b, 0xb2, 0xbc, 0xf8, 0x46, 0xa9, 0x93, 0xc4, 0x52, 0xed, 0x1a, 0xcb, 0x56, - 0xdc, 0x5c, 0x1d, 0x79, 0x11, 0xf0, 0xde, 0x02, 0x66, 0x2f, 0x86, 0x5f, 0x02, 0x88, 0xc5, 0xc4, - 0x3e, 0x1b, 0xe4, 0x6f, 0x4a, 0x3a, 0xe5, 0x17, 0x49, 0x88, 0x40, 0x37, 0x40, 0x30, 0x2b, 0xb3, - 0x0b, 0x97, 0x68, 0xfe, 0x1e, 0x5b, 0x7f, 0xfa, 0x28, 0x7c, 0x24, 0x0b, 0xa6, 0xc9, 0x2d, 0x2a, - 0x8b, 0x57, 0x89, 0x7b, 0xf6, 0xe3, 0x84, 0x50, 0x5b, 0x91, 0x1e, 0x3f, 0x2f, 0xe0, 0xd9, 0xac, - 0x82, 0x5c, 0xdb, 0xb2, 0x2f, 0xf9, 0xdb, 0xa7, 0xf8, 0x39, 0x8c, 0xc9, 0x9f, 0xed, 0x13, 0x93, - 0x3f, 0x58, 0xe0, 0x0e, 0xea, 0x3d, 0xd4, 0x25, 0x51, 0x03, 0x8b, 0x4b, 0x9f, 0x8d, 0x7f, 0x9c, - 0x03, 0x85, 0x3a, 0x32, 0xdd, 0xe6, 0x0e, 0x7c, 0x05, 0x77, 0xd0, 0x7d, 0x19, 0x4c, 0x6c, 0x59, - 0x6d, 0x0f, 0xb9, 0xd4, 0x71, 0x84, 0xef, 0xc0, 0xa9, 0x22, 0x2f, 0xb6, 0x9d, 0xe6, 0xa5, 0x05, - 0x66, 0x2d, 0x2e, 0xf8, 0x31, 0x83, 0x16, 0x96, 0xc9, 0x4f, 0xba, 0xff, 0xb3, 0xfa, 0x00, 0xc8, - 0x77, 0x1d, 0xd7, 0x8b, 0x0a, 0xc2, 0x19, 0x51, 0x4a, 0xdd, 0x71, 0x3d, 0x9d, 0xfe, 0x88, 0xc1, - 0xdc, 0xda, 0x6b, 0xb7, 0x0d, 0x74, 0xc5, 0xf3, 0x67, 0x0a, 0xfe, 0x3b, 0x9e, 0xdb, 0x3b, 0x5b, - 0x5b, 0x5d, 0x44, 0xe7, 0xa9, 0x79, 0x9d, 0xbd, 0xa9, 0x27, 0x41, 0xbe, 0x6d, 0xed, 0x5a, 0xd4, - 0xb6, 0xcd, 0xeb, 0xf4, 0x45, 0xbd, 0x1d, 0x14, 0x43, 0xb3, 0x9a, 0x12, 0x3a, 0x5f, 0x20, 0x0a, - 0x78, 0x20, 0x1d, 0x4b, 0xc6, 0x25, 0x74, 0xb5, 0x3b, 0x3f, 0x41, 0xbe, 0x93, 0x67, 0xd1, 0x4b, - 0x4f, 0x66, 0xa9, 0x9c, 0xf2, 0x35, 0x7a, 0xd2, 0xe4, 0xa2, 0xa6, 0xe3, 0xb6, 0x7c, 0xde, 0x44, - 0xdb, 0xbb, 0x2c, 0x5f, 0xb2, 0x05, 0xee, 0xbe, 0x95, 0xa7, 0x2f, 0x4f, 0x2f, 0x2b, 0xe0, 0xce, - 0x11, 0x57, 0x7d, 0xc1, 0xf2, 0x76, 0xd6, 0x91, 0x67, 0xc2, 0x3f, 0x56, 0xfe, 0x7f, 0xb9, 0x8a, - 0x91, 0x2b, 0x7a, 0xe6, 0xdb, 0xdb, 0x73, 0x6d, 0xcc, 0x2d, 0x16, 0x65, 0x89, 0x4b, 0x51, 0xef, - 0x05, 0xd7, 0x85, 0x6f, 0xfe, 0x3a, 0xdb, 0x12, 0x9b, 0x2b, 0x4d, 0x91, 0xec, 0xd1, 0x19, 0xd4, - 0x0d, 0x70, 0x33, 0xfd, 0xb8, 0x6a, 0xac, 0xaf, 0xad, 0x5a, 0xdb, 0x3b, 0x6d, 0x6b, 0x7b, 0xc7, - 0xeb, 0x56, 0xec, 0xae, 0x87, 0xcc, 0x56, 0x6d, 0x4b, 0xa7, 0x41, 0x72, 0x01, 0x29, 0x47, 0x26, - 0xab, 0xe8, 0x3e, 0x22, 0x37, 0x52, 0xf1, 0xf2, 0x10, 0xa1, 0x0f, 0x3f, 0x84, 0xf5, 0xa1, 0xbb, - 0xd7, 0x0e, 0x30, 0xbd, 0xa1, 0x07, 0xd3, 0x50, 0xa0, 0xf7, 0xda, 0x44, 0x29, 0x48, 0xe6, 0xa4, - 0x63, 0x56, 0x0c, 0x25, 0xe9, 0x2b, 0xc7, 0xff, 0x5b, 0x00, 0xf9, 0x15, 0xd7, 0xec, 0xec, 0xc0, - 0xe7, 0xa6, 0xd0, 0xd7, 0x06, 0xd2, 0x99, 0x1d, 0x24, 0x9d, 0xca, 0x00, 0xe9, 0xcc, 0x71, 0xd2, - 0x19, 0xbd, 0xd5, 0x7d, 0x16, 0xcc, 0x34, 0x9d, 0x76, 0x1b, 0x35, 0x31, 0x3f, 0x2a, 0x2d, 0x12, - 0x18, 0x64, 0x4a, 0x17, 0xd2, 0x48, 0xf4, 0x34, 0xe4, 0xd5, 0xe9, 0x02, 0x2c, 0x15, 0xfa, 0x30, - 0x01, 0xbe, 0x34, 0x0b, 0x72, 0x5a, 0x6b, 0x1b, 0x09, 0x8b, 0xb4, 0x19, 0x6e, 0x91, 0xf6, 0x34, - 0x28, 0x78, 0xa6, 0xbb, 0x8d, 0x3c, 0xff, 0x38, 0x0e, 0x7d, 0x0b, 0x82, 0xba, 0x29, 0x5c, 0x50, - 0xb7, 0xa7, 0x82, 0x1c, 0xe6, 0x19, 0x0b, 0x97, 0x72, 0x73, 0x3f, 0xf8, 0x09, 0xef, 0x17, 0x70, - 0x8d, 0x0b, 0xb8, 0xd5, 0x3a, 0xf9, 0xa1, 0x17, 0xeb, 0xfc, 0x01, 0xac, 0xc9, 0x7d, 0x1f, 0x4d, - 0xc7, 0xae, 0xec, 0x9a, 0xdb, 0x88, 0x35, 0x33, 0x4c, 0xf0, 0xbf, 0x6a, 0xbb, 0xce, 0xc3, 0x16, - 0x8b, 0xaf, 0x16, 0x26, 0xe0, 0x26, 0xec, 0x58, 0xad, 0x16, 0xb2, 0x99, 0x66, 0xb3, 0xb7, 0xb3, - 0x67, 0x40, 0x0e, 0xd3, 0x80, 0xe5, 0x07, 0x0f, 0xfc, 0xc5, 0x63, 0xea, 0x0c, 0x56, 0x2b, 0xaa, - 0xbc, 0xc5, 0x8c, 0xb8, 0x58, 0x27, 0xe3, 0xbb, 0x41, 0x1b, 0xd7, 0x5f, 0xb9, 0x9e, 0x00, 0xf2, - 0xb6, 0xd3, 0x42, 0x03, 0x87, 0x1a, 0x9a, 0x4b, 0x7d, 0x32, 0xc8, 0xa3, 0x16, 0xee, 0x15, 0x14, - 0x92, 0xfd, 0x4c, 0x3c, 0x2f, 0x75, 0x9a, 0x39, 0x99, 0x83, 0x48, 0x3f, 0x6a, 0xd3, 0x57, 0xc0, - 0x5f, 0x9d, 0x00, 0xc7, 0x69, 0x1f, 0x50, 0xdf, 0xbb, 0x88, 0x8b, 0xba, 0x88, 0xe0, 0x3b, 0x15, - 0x21, 0x8a, 0x64, 0x77, 0xef, 0x62, 0x60, 0x36, 0xd2, 0x17, 0x5e, 0x41, 0xb3, 0x23, 0x19, 0xb4, - 0x94, 0x61, 0x07, 0x2d, 0x61, 0x00, 0x52, 0x7c, 0x15, 0x0f, 0x87, 0xab, 0x02, 0x49, 0xf6, 0x87, - 0xab, 0x7e, 0x83, 0xcd, 0x3c, 0x98, 0x30, 0xb7, 0x3c, 0xe4, 0x56, 0x5a, 0x44, 0x1e, 0xa7, 0x74, - 0xff, 0x15, 0x0f, 0x88, 0x17, 0xd1, 0x96, 0xe3, 0x62, 0x4d, 0x9f, 0xa2, 0x03, 0xa2, 0xff, 0xce, - 0xe9, 0x27, 0x10, 0x36, 0x51, 0x6e, 0x03, 0xc7, 0xad, 0x6d, 0xdb, 0x71, 0x51, 0xe0, 0x99, 0x37, - 0x3f, 0x43, 0x0f, 0x8b, 0xf7, 0x24, 0xab, 0x77, 0x80, 0x13, 0xb6, 0xb3, 0x84, 0x3a, 0x8c, 0xef, - 0x14, 0xd5, 0x59, 0xa2, 0x11, 0x07, 0x3f, 0x1c, 0xe8, 0x5a, 0xe6, 0x0e, 0x76, 0x2d, 0xf0, 0xd3, - 0x49, 0xe7, 0xc3, 0x3d, 0xc0, 0x8f, 0xcc, 0x2e, 0x53, 0x9f, 0x0e, 0x66, 0x5a, 0xcc, 0x6f, 0xa7, - 0x69, 0x05, 0x5a, 0x13, 0xf9, 0x9f, 0x90, 0x39, 0x14, 0xb9, 0x1c, 0x2f, 0x72, 0x2b, 0x60, 0x92, - 0x9c, 0xd2, 0xc0, 0x32, 0x97, 0xef, 0x09, 0x46, 0x47, 0xa6, 0x6c, 0x41, 0xa3, 0x38, 0xb6, 0x2d, - 0x94, 0xd9, 0x2f, 0x7a, 0xf0, 0x73, 0xb2, 0x99, 0x75, 0x3c, 0x87, 0xd2, 0x57, 0xcf, 0xcf, 0xe4, - 0xc0, 0xf1, 0x15, 0xd7, 0xd9, 0xeb, 0x74, 0x43, 0xf5, 0xfc, 0xeb, 0xfe, 0xab, 0xe9, 0x05, 0x71, - 0x2c, 0xea, 0xaf, 0xb8, 0x37, 0x81, 0x69, 0x97, 0xf5, 0xa8, 0xe1, 0xda, 0x3a, 0x9f, 0xc4, 0xab, - 0xb6, 0x72, 0x18, 0xd5, 0x0e, 0x15, 0x24, 0x27, 0x28, 0x48, 0xaf, 0x20, 0xe7, 0xfb, 0x08, 0xf2, - 0x5f, 0x65, 0x13, 0x0a, 0x72, 0x0f, 0x8b, 0x22, 0x04, 0xb9, 0x0c, 0x0a, 0xdb, 0x24, 0x23, 0x93, - 0xe3, 0xc7, 0xcb, 0xb5, 0x8c, 0x14, 0xae, 0xb3, 0x5f, 0x43, 0xbe, 0x2a, 0x1c, 0x5f, 0x93, 0x09, - 0x55, 0x3c, 0xb5, 0xe9, 0x0b, 0xd5, 0xdb, 0x72, 0x60, 0x26, 0xa8, 0x9d, 0x1c, 0x7c, 0xc8, 0x0c, - 0xea, 0xf0, 0x0f, 0xac, 0xce, 0x04, 0x5d, 0xa9, 0xc2, 0x75, 0xa5, 0x7d, 0x3a, 0xbf, 0xe9, 0x04, - 0x9d, 0xdf, 0x4c, 0x44, 0xe7, 0x07, 0x9f, 0xa3, 0xc8, 0x06, 0x2d, 0x16, 0xfb, 0x00, 0xd2, 0xba, - 0x47, 0x73, 0xaf, 0x26, 0x19, 0x3a, 0x79, 0x70, 0xab, 0xd2, 0x17, 0x9a, 0xf7, 0x67, 0xc1, 0x09, - 0xda, 0x1b, 0x6e, 0xda, 0xdd, 0xa0, 0x2f, 0x7a, 0xac, 0xe8, 0x56, 0x80, 0xdb, 0xd4, 0x0d, 0xdc, - 0x0a, 0xc8, 0x9b, 0xb8, 0x08, 0x1e, 0x7b, 0x66, 0x49, 0xe8, 0x73, 0xb9, 0x5a, 0x22, 0x56, 0x94, - 0xe4, 0x4e, 0x25, 0x49, 0x16, 0x9a, 0x3e, 0x03, 0x7f, 0x49, 0x01, 0x53, 0x75, 0xe4, 0xad, 0x99, - 0x57, 0x9d, 0x3d, 0x0f, 0x9a, 0xb2, 0xcb, 0xdf, 0x4f, 0x03, 0x85, 0x36, 0xf9, 0x85, 0xdd, 0xc0, - 0x75, 0x53, 0xdf, 0xf5, 0x63, 0xb2, 0xd1, 0x4b, 0x8b, 0xd6, 0x59, 0x7e, 0xf1, 0xb0, 0x98, 0xcc, - 0xee, 0x43, 0x40, 0xdd, 0x48, 0x96, 0x4e, 0x13, 0xed, 0x4d, 0x44, 0x55, 0x9d, 0x3e, 0x2c, 0x3f, - 0xad, 0x80, 0xd9, 0x3a, 0xf2, 0x2a, 0xdd, 0x65, 0x73, 0xdf, 0x71, 0x2d, 0x0f, 0xf1, 0x97, 0x41, - 0xc4, 0x43, 0x73, 0x06, 0x00, 0x2b, 0xf8, 0x8d, 0x45, 0x03, 0xe7, 0x52, 0xe0, 0x6f, 0x26, 0xdd, - 0x31, 0x16, 0xe8, 0x18, 0x09, 0x08, 0x89, 0xf6, 0x30, 0xe3, 0xaa, 0x4f, 0x1f, 0x88, 0xcf, 0x67, - 0x19, 0x10, 0x25, 0xb7, 0xb9, 0x63, 0xed, 0xa3, 0x56, 0x42, 0x20, 0xfc, 0xdf, 0x42, 0x20, 0x82, - 0x82, 0x12, 0x6f, 0x0f, 0x0b, 0x74, 0x8c, 0x62, 0x7b, 0x38, 0xae, 0xc0, 0xb1, 0x9c, 0x42, 0xc5, - 0x5d, 0x0f, 0x5b, 0x63, 0xb8, 0x5f, 0x96, 0xad, 0xa1, 0x09, 0x97, 0xe5, 0x4d, 0xb8, 0xa1, 0x3a, - 0x16, 0x5a, 0xf7, 0x20, 0x99, 0xce, 0xa5, 0xd1, 0xb1, 0xf4, 0xad, 0x3a, 0x7d, 0xa6, 0xbf, 0x4b, - 0x01, 0xa7, 0x02, 0x83, 0xa7, 0x8e, 0xbc, 0x25, 0xb3, 0xbb, 0x73, 0xd1, 0x31, 0xdd, 0x16, 0x7f, - 0x33, 0xdb, 0xd0, 0x47, 0x31, 0xe0, 0x5f, 0xf0, 0x20, 0x54, 0x45, 0x10, 0xfa, 0xfa, 0x05, 0xf5, - 0xa5, 0x65, 0x14, 0x9d, 0x4c, 0xac, 0xeb, 0xd2, 0x6f, 0x07, 0x60, 0xfd, 0xb0, 0x00, 0xd6, 0x7d, - 0xc3, 0x92, 0x98, 0x3e, 0x70, 0xbf, 0x42, 0x47, 0x04, 0xce, 0x85, 0xed, 0x21, 0x59, 0xc0, 0x22, - 0x5c, 0x98, 0x94, 0xe8, 0xd3, 0x06, 0xc3, 0x8c, 0x11, 0x03, 0xdd, 0xcf, 0xd2, 0x1d, 0x23, 0x8e, - 0xd0, 0xb5, 0xec, 0x6d, 0x0a, 0x28, 0x92, 0xf3, 0xb9, 0x9c, 0x7b, 0x1f, 0x7c, 0x58, 0x16, 0x9d, - 0x03, 0xae, 0x84, 0x13, 0x49, 0x5d, 0x09, 0xe1, 0x5b, 0x93, 0x3a, 0x0c, 0xf6, 0x52, 0x3b, 0x12, - 0xc4, 0x12, 0xf9, 0x03, 0x0e, 0xa0, 0x20, 0x7d, 0xd0, 0xfe, 0xb3, 0x02, 0x00, 0x56, 0x68, 0xe6, - 0xa3, 0xf6, 0x2c, 0x59, 0xb8, 0xce, 0xf1, 0x4e, 0x94, 0x18, 0xa8, 0x53, 0x3d, 0x40, 0xd1, 0x12, - 0x43, 0xef, 0xb7, 0xd7, 0x25, 0xf5, 0x5d, 0x0a, 0xa9, 0x1a, 0x09, 0x2c, 0x89, 0xbc, 0x99, 0x22, - 0xeb, 0x4e, 0x1f, 0x90, 0xdf, 0xc9, 0x82, 0xbc, 0xe1, 0xd4, 0x91, 0x77, 0x78, 0x53, 0x20, 0xf1, - 0x79, 0x4a, 0x52, 0xef, 0x28, 0xce, 0x53, 0xf6, 0x2b, 0x28, 0x7d, 0xd6, 0xbd, 0x33, 0x0b, 0x66, - 0x0c, 0xa7, 0x1c, 0x2c, 0x56, 0xc9, 0xfb, 0x82, 0xc9, 0x5f, 0xbc, 0x14, 0x34, 0x30, 0xac, 0xe6, - 0x50, 0x17, 0x2f, 0x0d, 0x2e, 0x2f, 0x7d, 0xbe, 0xdd, 0x0d, 0x8e, 0x6f, 0xda, 0x2d, 0x47, 0x47, - 0x2d, 0x87, 0x2d, 0xc9, 0xaa, 0x2a, 0xc8, 0xed, 0xd9, 0x2d, 0x87, 0x90, 0x9c, 0xd7, 0xc9, 0x33, - 0x4e, 0x73, 0x51, 0xcb, 0x61, 0xfb, 0x75, 0xe4, 0x19, 0x7e, 0x4d, 0x01, 0x39, 0xfc, 0xaf, 0x3c, - 0xab, 0xdf, 0xa6, 0x24, 0x3c, 0x21, 0x8a, 0x8b, 0x1f, 0x89, 0x25, 0x74, 0x3f, 0xb7, 0x48, 0x4d, - 0x3d, 0xc4, 0x6e, 0x8e, 0xaa, 0x8f, 0x63, 0x45, 0xb8, 0x38, 0xad, 0xce, 0x83, 0x89, 0x8b, 0x6d, - 0xa7, 0x79, 0x29, 0x3c, 0xc8, 0xc8, 0x5e, 0xd5, 0xdb, 0x41, 0xde, 0x35, 0xed, 0x6d, 0xc4, 0x16, - 0xbf, 0x4f, 0xf6, 0xf4, 0x85, 0x64, 0x27, 0x5a, 0xa7, 0x59, 0xe0, 0x5b, 0x93, 0x9c, 0x4d, 0xed, - 0xd3, 0xf8, 0x64, 0xf2, 0xb0, 0x34, 0xc4, 0x31, 0x82, 0x22, 0x98, 0x29, 0x97, 0xe8, 0x15, 0x67, - 0xeb, 0xb5, 0xf3, 0x5a, 0x51, 0x21, 0x30, 0x63, 0x9e, 0xa4, 0x08, 0x33, 0x2e, 0xfe, 0xdf, 0x2d, - 0xcc, 0x7d, 0x1a, 0x7f, 0x14, 0x30, 0x7f, 0x22, 0x0b, 0x66, 0xd7, 0xac, 0xae, 0x17, 0xe5, 0x4d, - 0x1b, 0x13, 0x9e, 0xe7, 0x85, 0x49, 0x4d, 0x65, 0xa1, 0x1e, 0xe9, 0xb8, 0x3c, 0x89, 0xcc, 0xe1, - 0xb8, 0x2a, 0xc6, 0xe3, 0xf6, 0x4d, 0x28, 0xa0, 0xd7, 0x12, 0x49, 0x73, 0x32, 0xb1, 0xa1, 0x14, - 0x56, 0x32, 0x7e, 0x43, 0x29, 0xb2, 0xee, 0xf4, 0xf9, 0xfb, 0xb5, 0x2c, 0x38, 0x81, 0xab, 0x8f, - 0x5b, 0x96, 0x8a, 0x66, 0xf3, 0xc0, 0x65, 0xa9, 0xc4, 0x2b, 0xe3, 0x07, 0x68, 0x19, 0xc5, 0xca, - 0xf8, 0xa0, 0x42, 0xc7, 0xcc, 0xe6, 0x88, 0x65, 0xd8, 0x41, 0x6c, 0x8e, 0x59, 0x86, 0x1d, 0x9e, - 0xcd, 0xf1, 0x4b, 0xb1, 0x43, 0xb2, 0xf9, 0xc8, 0x16, 0x58, 0x7f, 0x5d, 0x09, 0xd8, 0x1c, 0xb9, - 0xb6, 0x11, 0xc3, 0xe6, 0xc4, 0xc7, 0xb3, 0xe0, 0xdb, 0x87, 0x64, 0xfc, 0x88, 0xd7, 0x37, 0x86, - 0x81, 0xe9, 0x08, 0xd7, 0x38, 0x5e, 0xa6, 0x80, 0x39, 0x46, 0x45, 0xff, 0x29, 0x73, 0x0c, 0x46, - 0x89, 0xa7, 0xcc, 0x89, 0x7d, 0xec, 0x45, 0xca, 0xc6, 0xef, 0x63, 0x1f, 0x5b, 0xff, 0x78, 0x36, - 0x29, 0x4a, 0x9d, 0x4e, 0xfb, 0xaa, 0xc1, 0x0e, 0x39, 0x27, 0xda, 0xa4, 0xe0, 0xce, 0x4a, 0x67, - 0x7b, 0xcf, 0x4a, 0x27, 0xdf, 0xa4, 0x10, 0xe8, 0x18, 0xc5, 0x26, 0x45, 0x5c, 0x81, 0x63, 0x58, - 0x26, 0xca, 0x53, 0x63, 0x86, 0xc5, 0x74, 0x7b, 0x43, 0xb6, 0xaf, 0x97, 0x0b, 0x10, 0xbd, 0x5c, - 0xfa, 0x85, 0x7b, 0x8b, 0x8d, 0x65, 0xa9, 0x3e, 0x19, 0x14, 0xb6, 0x1c, 0x77, 0xd7, 0xf4, 0xf7, - 0x53, 0x7b, 0x9d, 0x6a, 0x59, 0x1c, 0xb5, 0x65, 0x92, 0x47, 0x67, 0x79, 0xb1, 0x99, 0xf8, 0x6c, - 0xab, 0xc3, 0xa2, 0x14, 0xe1, 0x47, 0xf5, 0x16, 0x30, 0xcb, 0x82, 0x15, 0x55, 0x51, 0xd7, 0x43, - 0x2d, 0x76, 0x6a, 0x54, 0x4c, 0x54, 0xcf, 0x82, 0x19, 0x96, 0xb0, 0x6c, 0xb5, 0x51, 0x97, 0x5d, - 0x15, 0x27, 0xa4, 0xa9, 0xa7, 0x41, 0xc1, 0xea, 0x3e, 0xb3, 0xeb, 0xd8, 0xc4, 0x55, 0x72, 0x52, - 0x67, 0x6f, 0xc4, 0x9b, 0x82, 0xe6, 0x0b, 0x6c, 0x08, 0xea, 0xdb, 0xdc, 0x9b, 0x0c, 0x3f, 0x3b, - 0x8c, 0x3d, 0x97, 0x38, 0x7e, 0x1d, 0x46, 0x61, 0xaf, 0xd9, 0x44, 0xa8, 0xc5, 0x9c, 0xc0, 0xfd, - 0xd7, 0x84, 0x91, 0xed, 0x12, 0x5b, 0x7f, 0x47, 0x14, 0xda, 0xee, 0x43, 0xa7, 0x40, 0x81, 0x86, - 0x7b, 0x86, 0x2f, 0x99, 0xeb, 0x2b, 0x8c, 0x73, 0xa2, 0x30, 0x6e, 0x82, 0x19, 0xdb, 0xc1, 0xd5, - 0x6d, 0x98, 0xae, 0xb9, 0xdb, 0x8d, 0x5b, 0xdc, 0xa1, 0xe5, 0x06, 0xf1, 0xa3, 0xab, 0xdc, 0x6f, - 0xab, 0xc7, 0x74, 0xa1, 0x18, 0xf5, 0xff, 0x00, 0xc7, 0x2f, 0xb2, 0x83, 0x8f, 0x5d, 0x56, 0x72, - 0x36, 0xda, 0x15, 0xaa, 0xa7, 0xe4, 0x45, 0xf1, 0xcf, 0xd5, 0x63, 0x7a, 0x6f, 0x61, 0xea, 0x8f, - 0x82, 0x39, 0xfc, 0xda, 0x72, 0x2e, 0xfb, 0x84, 0x2b, 0xd1, 0xfd, 0x7f, 0x4f, 0xf1, 0xeb, 0xc2, - 0x8f, 0xab, 0xc7, 0xf4, 0x9e, 0xa2, 0xd4, 0x1a, 0x00, 0x3b, 0xde, 0x6e, 0x9b, 0x15, 0x9c, 0x8b, - 0x16, 0xc9, 0x9e, 0x82, 0x57, 0x83, 0x9f, 0x56, 0x8f, 0xe9, 0x5c, 0x11, 0xea, 0x1a, 0x98, 0xf2, - 0xae, 0x78, 0xac, 0xbc, 0x7c, 0xf4, 0x9e, 0x63, 0x4f, 0x79, 0x86, 0xff, 0xcf, 0xea, 0x31, 0x3d, - 0x2c, 0x40, 0xad, 0x80, 0xc9, 0xce, 0x45, 0x56, 0x58, 0xa1, 0xcf, 0x15, 0xb7, 0xfd, 0x0b, 0xdb, - 0xb8, 0x18, 0x94, 0x15, 0xfc, 0x8e, 0x09, 0x6b, 0x76, 0xf7, 0x59, 0x59, 0x13, 0xd2, 0x84, 0x95, - 0xfd, 0x7f, 0x30, 0x61, 0x41, 0x01, 0x6a, 0x05, 0x4c, 0x75, 0x6d, 0xb3, 0xd3, 0xdd, 0x71, 0xbc, - 0xee, 0xfc, 0x64, 0x8f, 0xbb, 0x5a, 0x74, 0x69, 0x75, 0xf6, 0x8f, 0x1e, 0xfe, 0xad, 0x3e, 0x19, - 0x9c, 0xda, 0x23, 0xd7, 0x66, 0x69, 0x57, 0xac, 0xae, 0x67, 0xd9, 0xdb, 0x7e, 0xcc, 0x35, 0xda, - 0x9b, 0xf4, 0xff, 0xa8, 0x2e, 0x30, 0xe7, 0x71, 0x40, 0x74, 0x13, 0xf6, 0xee, 0x91, 0xd0, 0x6a, - 0x39, 0x9f, 0xf1, 0xa7, 0x83, 0x1c, 0xfe, 0x44, 0x1c, 0xbe, 0xe6, 0xfa, 0xaf, 0xbf, 0xf4, 0xca, - 0x0e, 0x51, 0x60, 0xfc, 0x13, 0x1e, 0x1b, 0x6d, 0x67, 0xc3, 0x75, 0xb6, 0x5d, 0xd4, 0xed, 0x32, - 0x3f, 0x30, 0x2e, 0x05, 0x2b, 0xb8, 0xd5, 0x5d, 0xb7, 0xb6, 0x5d, 0x93, 0xf3, 0x92, 0xe5, 0x93, - 0xe8, 0x24, 0xa0, 0x8a, 0x2e, 0x93, 0xab, 0x98, 0xe6, 0x8f, 0xfb, 0x93, 0x00, 0x3f, 0x05, 0xde, - 0x0a, 0x66, 0x78, 0x25, 0xa3, 0x77, 0x46, 0x58, 0xd8, 0x80, 0xcd, 0xf8, 0x77, 0x46, 0xe0, 0x37, - 0x78, 0x0b, 0x98, 0x13, 0x65, 0x9a, 0x1b, 0x62, 0x14, 0xbf, 0x2b, 0x84, 0x37, 0x83, 0xe3, 0x3d, - 0x8a, 0xe5, 0x1f, 0xa5, 0xce, 0x84, 0x47, 0xa9, 0x6f, 0x02, 0x20, 0x94, 0xe2, 0xbe, 0xc5, 0xdc, - 0x08, 0xa6, 0x02, 0xb9, 0xec, 0x9b, 0xe1, 0x2b, 0x19, 0x30, 0xe9, 0x0b, 0x5b, 0xbf, 0x0c, 0x78, - 0x7c, 0xb1, 0xb9, 0x75, 0x5d, 0x36, 0xfb, 0x11, 0xd2, 0xf0, 0x38, 0x12, 0x7a, 0x57, 0x1a, 0x96, - 0xd7, 0xf6, 0x4f, 0x09, 0xf4, 0x26, 0xab, 0x1b, 0x00, 0x58, 0x04, 0x23, 0x23, 0x3c, 0x36, 0xf0, - 0xc4, 0x04, 0xfa, 0x40, 0xe5, 0x81, 0x2b, 0xe3, 0xec, 0x63, 0x99, 0x4f, 0xff, 0x14, 0xc8, 0xd7, - 0x37, 0x4a, 0x65, 0xad, 0x78, 0x4c, 0x9d, 0x03, 0x40, 0x7b, 0xd6, 0x86, 0xa6, 0x57, 0xb4, 0x6a, - 0x59, 0x2b, 0x66, 0xe0, 0xcb, 0xb3, 0x60, 0x2a, 0x50, 0x82, 0xbe, 0x8d, 0xd4, 0x98, 0x68, 0x0d, - 0x0c, 0xcb, 0x7f, 0x50, 0xa9, 0x78, 0x21, 0x7b, 0x1a, 0xb8, 0x76, 0xaf, 0x8b, 0x96, 0x2d, 0xb7, - 0xeb, 0xe9, 0xce, 0xe5, 0x65, 0xc7, 0x0d, 0xa2, 0x0c, 0xfa, 0xd7, 0xcf, 0x46, 0x7c, 0xc6, 0x16, - 0x45, 0x0b, 0x11, 0xcf, 0x72, 0xe4, 0xb2, 0x05, 0xbb, 0x30, 0x01, 0x97, 0xeb, 0xd1, 0xfb, 0x5e, - 0xbb, 0x48, 0x77, 0x2e, 0x77, 0x4b, 0x76, 0xab, 0xec, 0xb4, 0xf7, 0x76, 0xed, 0xae, 0x7f, 0xbb, - 0x7d, 0xc4, 0x67, 0xcc, 0x1d, 0x72, 0xe9, 0xc6, 0x1c, 0x00, 0xe5, 0xda, 0xda, 0x9a, 0x56, 0x36, - 0x2a, 0xb5, 0x6a, 0xf1, 0x18, 0xe6, 0x96, 0x51, 0x5a, 0x5c, 0xc3, 0xdc, 0xf9, 0x31, 0x30, 0xe9, - 0xeb, 0xf4, 0x81, 0xbb, 0x76, 0x4b, 0x60, 0xd2, 0xd7, 0x72, 0x36, 0x22, 0x3c, 0xae, 0xf7, 0x84, - 0xd0, 0xae, 0xe9, 0x7a, 0xc4, 0xad, 0xd5, 0x2f, 0x64, 0xd1, 0xec, 0x22, 0x3d, 0xf8, 0xed, 0xec, - 0x13, 0x18, 0x05, 0x2a, 0x98, 0x2b, 0xad, 0xad, 0x35, 0x6a, 0x7a, 0xa3, 0x5a, 0x33, 0x56, 0x2b, - 0xd5, 0x15, 0x3a, 0x42, 0x56, 0x56, 0xaa, 0x35, 0x5d, 0xa3, 0x03, 0x64, 0xbd, 0x98, 0x09, 0x2f, - 0xb5, 0xef, 0x10, 0xee, 0xc2, 0x2f, 0x2a, 0x09, 0x0f, 0x00, 0x06, 0x38, 0x45, 0x5c, 0x4b, 0x21, - 0xb8, 0x06, 0x67, 0xfb, 0x1c, 0x9f, 0x39, 0x0b, 0x66, 0xa8, 0x2d, 0xd7, 0x25, 0xab, 0xaa, 0xec, - 0x66, 0x37, 0x21, 0x0d, 0x7e, 0x24, 0x9b, 0xe0, 0x54, 0x60, 0x5f, 0x8a, 0x92, 0x19, 0x17, 0x7f, - 0x36, 0xcc, 0x25, 0x2f, 0x2a, 0x98, 0xab, 0x54, 0x0d, 0x4d, 0xaf, 0x96, 0xd6, 0x58, 0x16, 0x45, - 0x9d, 0x07, 0x27, 0xab, 0x35, 0x16, 0x57, 0xa7, 0x4e, 0xae, 0x93, 0x5c, 0xdf, 0xa8, 0xe9, 0x46, - 0x31, 0xaf, 0x9e, 0x06, 0x2a, 0x7d, 0x16, 0x6e, 0x63, 0x2d, 0xa8, 0x3f, 0x00, 0x6e, 0x5e, 0xab, - 0xac, 0x57, 0x8c, 0x46, 0x6d, 0xb9, 0xa1, 0xd7, 0x2e, 0xd4, 0x31, 0x82, 0xba, 0xb6, 0x46, 0xae, - 0x92, 0xe7, 0x2e, 0x7f, 0x99, 0x50, 0xaf, 0x01, 0xc7, 0xc9, 0xc5, 0x4e, 0xe4, 0x46, 0x57, 0x5a, - 0xdf, 0xa4, 0x7a, 0x03, 0x98, 0xaf, 0x54, 0xeb, 0x9b, 0xcb, 0xcb, 0x95, 0x72, 0x45, 0xab, 0x1a, - 0x8d, 0x0d, 0x4d, 0x5f, 0xaf, 0xd4, 0xeb, 0xf8, 0xdf, 0xe2, 0x14, 0xfc, 0x90, 0x02, 0x0a, 0xb4, - 0xcf, 0x84, 0xef, 0x56, 0xc0, 0xec, 0x79, 0xb3, 0x6d, 0xe1, 0x81, 0x82, 0xdc, 0xb9, 0x03, 0x6f, - 0x14, 0x3c, 0x86, 0x3d, 0x72, 0x37, 0x0f, 0xf3, 0x18, 0x26, 0x2f, 0xf0, 0xa7, 0x78, 0xd1, 0x30, - 0x44, 0xd1, 0x78, 0x46, 0x0c, 0x10, 0xb4, 0xc6, 0x05, 0xa1, 0xb6, 0x88, 0xc9, 0xcd, 0xab, 0x03, - 0x9c, 0x2f, 0x08, 0x38, 0x97, 0x0f, 0x57, 0x7c, 0x32, 0xf0, 0x7f, 0x75, 0x54, 0xe0, 0x17, 0xc1, - 0xcc, 0x66, 0xb5, 0xb4, 0x69, 0xac, 0xd6, 0xf4, 0xca, 0x8f, 0x90, 0xe8, 0x9c, 0xb3, 0x60, 0x6a, - 0xb9, 0xa6, 0x2f, 0x56, 0x96, 0x96, 0xb4, 0x6a, 0x31, 0xaf, 0x5e, 0x0b, 0xae, 0xa9, 0x6b, 0xfa, - 0xf9, 0x4a, 0x59, 0x6b, 0x6c, 0x56, 0x4b, 0xe7, 0x4b, 0x95, 0x35, 0xd2, 0x47, 0x14, 0x62, 0xee, - 0x0b, 0x9a, 0x80, 0x3f, 0x91, 0x03, 0x80, 0x36, 0x1d, 0x5b, 0xd2, 0xfc, 0xad, 0x32, 0x7f, 0x9e, - 0x74, 0xd2, 0x10, 0x16, 0x13, 0xa1, 0xbf, 0x15, 0x30, 0xe9, 0xb2, 0x0f, 0x6c, 0xf9, 0x61, 0x50, - 0x39, 0xf4, 0xd1, 0x2f, 0x4d, 0x0f, 0x7e, 0x87, 0xef, 0x49, 0x32, 0x47, 0x88, 0x24, 0x2c, 0x19, - 0x92, 0xcb, 0xa3, 0x01, 0x12, 0xbe, 0x20, 0x03, 0xe6, 0xc4, 0x86, 0xe1, 0x46, 0x10, 0x63, 0x4a, - 0xae, 0x11, 0xe2, 0xcf, 0x9c, 0x91, 0x75, 0xf6, 0x2e, 0x36, 0x9c, 0x02, 0x5f, 0x33, 0xe9, 0x21, - 0x39, 0xdf, 0x62, 0x29, 0x66, 0x30, 0xf1, 0xd8, 0xe8, 0xa0, 0x57, 0x8a, 0x1a, 0x57, 0xbc, 0xa2, - 0x02, 0xdf, 0x99, 0x03, 0xb3, 0xc2, 0xb5, 0x35, 0xf0, 0x9f, 0x33, 0x32, 0x57, 0x51, 0x70, 0x17, - 0xe2, 0x64, 0x0e, 0x7b, 0x21, 0xce, 0xd9, 0x9f, 0xcc, 0x80, 0x09, 0x96, 0x48, 0x18, 0x5c, 0xab, - 0x62, 0x5b, 0xe0, 0x38, 0x98, 0x5e, 0xd1, 0x8c, 0x46, 0xdd, 0x28, 0xe9, 0x86, 0xb6, 0x54, 0xcc, - 0xa8, 0xa7, 0xc0, 0x89, 0x0d, 0x4d, 0xaf, 0xd7, 0x30, 0x3f, 0x37, 0xf4, 0x1a, 0xe9, 0x08, 0x29, - 0x9b, 0x31, 0x0c, 0x6b, 0xda, 0xd2, 0x8a, 0xd6, 0x58, 0x2c, 0xd5, 0xb5, 0xa2, 0x82, 0xff, 0xad, - 0xd6, 0x0c, 0xad, 0xde, 0x58, 0xaa, 0x94, 0xf4, 0x87, 0x8a, 0x39, 0xfc, 0x6f, 0xdd, 0xd0, 0x4b, - 0x86, 0xb6, 0x52, 0x29, 0x93, 0x8b, 0x58, 0xb1, 0x06, 0xe4, 0xf1, 0x60, 0xaa, 0xad, 0x6f, 0x18, - 0x0f, 0x15, 0x0b, 0xc9, 0x9d, 0xad, 0x7a, 0x1b, 0x37, 0x66, 0x67, 0xab, 0xb8, 0xea, 0xc7, 0x70, - 0x63, 0x8f, 0x02, 0x8a, 0x94, 0x02, 0xed, 0x4a, 0x07, 0xb9, 0x16, 0xb2, 0x9b, 0x08, 0x5e, 0x92, - 0x89, 0xe4, 0x75, 0x20, 0xac, 0x10, 0x19, 0x23, 0x38, 0xcb, 0x93, 0xbe, 0xf4, 0x18, 0xed, 0xb9, - 0x03, 0x46, 0xfb, 0xa7, 0x92, 0x7a, 0x5b, 0xf5, 0x92, 0x3b, 0x12, 0xc8, 0x3e, 0x9e, 0xc4, 0xdb, - 0x6a, 0x00, 0x05, 0x63, 0x09, 0xd0, 0x17, 0x31, 0xa6, 0x17, 0x15, 0xf8, 0x96, 0x29, 0x50, 0xa4, - 0x84, 0x72, 0x2e, 0x2c, 0xbf, 0xc4, 0xee, 0x0e, 0x6a, 0x24, 0x88, 0xc8, 0xe3, 0x9f, 0x98, 0xcc, - 0x8a, 0x27, 0x26, 0x85, 0xa5, 0x37, 0xa5, 0x77, 0xdb, 0x31, 0xa9, 0xfa, 0x71, 0xfe, 0x2a, 0xd1, - 0x37, 0xd7, 0xa4, 0xa7, 0x7e, 0xb1, 0xd5, 0x8f, 0xe7, 0x7e, 0x0b, 0x76, 0x83, 0x8d, 0x26, 0x8b, - 0x4c, 0xfc, 0x35, 0x3e, 0x49, 0x9d, 0x17, 0x05, 0x7f, 0xa1, 0x98, 0xbb, 0x6d, 0xd2, 0x73, 0x5e, - 0x1c, 0x44, 0x41, 0xfa, 0x28, 0x7c, 0x2f, 0x0b, 0x72, 0x75, 0xc7, 0xf5, 0x46, 0x85, 0x41, 0xd2, - 0x0d, 0x17, 0x8e, 0x03, 0xf5, 0xe8, 0x99, 0x53, 0x7a, 0x1b, 0x2e, 0xf1, 0xf5, 0x8f, 0x21, 0xa8, - 0xd1, 0x71, 0x30, 0x47, 0x29, 0x09, 0x42, 0x4c, 0x7f, 0x37, 0x4b, 0xfb, 0xab, 0x07, 0x65, 0x11, - 0x39, 0x0b, 0x66, 0xb8, 0x13, 0xae, 0xc1, 0x75, 0x87, 0x7c, 0x1a, 0xfc, 0x0d, 0x1e, 0x97, 0x25, - 0x11, 0x97, 0x7e, 0xf3, 0xc6, 0x20, 0x4a, 0xf3, 0xa8, 0x7a, 0xa6, 0x24, 0xf1, 0x91, 0x62, 0x2a, - 0x4f, 0x1f, 0x91, 0xe7, 0x29, 0xa0, 0xc0, 0x1c, 0x4e, 0x46, 0x8a, 0x40, 0x52, 0xcd, 0x08, 0x98, - 0x20, 0xe7, 0x98, 0xa2, 0x8c, 0x5a, 0x33, 0xe2, 0xeb, 0x4f, 0x1f, 0x87, 0x7f, 0x65, 0x9e, 0x54, - 0xa5, 0x7d, 0xd3, 0x6a, 0x9b, 0x17, 0xdb, 0x09, 0xe2, 0x12, 0x7e, 0x24, 0xe1, 0xd9, 0x91, 0xa0, - 0xa9, 0x42, 0x7d, 0x11, 0x1c, 0x7f, 0x0a, 0x98, 0x72, 0x83, 0x85, 0x35, 0xff, 0x68, 0x6d, 0x8f, - 0x17, 0x1b, 0xfb, 0xae, 0x87, 0x39, 0x13, 0x1d, 0x14, 0x91, 0xa2, 0x67, 0x2c, 0x8e, 0xed, 0xd3, - 0xa5, 0x56, 0x6b, 0x19, 0x99, 0xde, 0x9e, 0x8b, 0x5a, 0x89, 0x86, 0x08, 0x91, 0x45, 0x53, 0x3c, - 0x27, 0x84, 0x68, 0x42, 0x6b, 0x22, 0x3a, 0x3f, 0x34, 0xa0, 0x37, 0xf0, 0x69, 0x19, 0x49, 0x97, - 0xf4, 0xe6, 0x00, 0x92, 0x9a, 0x00, 0xc9, 0xd3, 0x87, 0x23, 0x22, 0x7d, 0x40, 0x7e, 0x59, 0x01, - 0x73, 0xd4, 0x4e, 0x18, 0x35, 0x26, 0xbf, 0xc7, 0x63, 0x52, 0x13, 0x31, 0xb9, 0x3b, 0x8e, 0x1d, - 0x22, 0x39, 0x23, 0x81, 0x25, 0x74, 0xfb, 0xd4, 0x05, 0x58, 0x9e, 0x31, 0x34, 0x1d, 0xe9, 0x23, - 0xf3, 0xd9, 0x02, 0x00, 0x9c, 0xd3, 0xd1, 0x47, 0x0a, 0x61, 0x64, 0x1f, 0xf8, 0x56, 0x36, 0xff, - 0xa8, 0x0b, 0x21, 0x23, 0x39, 0x87, 0xa2, 0x60, 0x5b, 0x45, 0x4c, 0x94, 0x1a, 0x55, 0xfe, 0x2c, - 0xa1, 0xcd, 0xcb, 0x5c, 0x7e, 0x06, 0x0e, 0xee, 0x43, 0xf6, 0x72, 0x1f, 0x4d, 0x60, 0xfc, 0x0e, - 0x22, 0x25, 0x19, 0x6a, 0x6b, 0x43, 0xcc, 0x25, 0xe7, 0xc1, 0x49, 0x5d, 0x2b, 0x2d, 0xd5, 0xaa, - 0x6b, 0x0f, 0xf1, 0xd1, 0xde, 0x8b, 0x0a, 0x3f, 0x39, 0x49, 0x05, 0xb6, 0xd7, 0x26, 0xec, 0x03, - 0x45, 0x5e, 0xc5, 0xcd, 0x56, 0xb8, 0xe9, 0xfc, 0xe0, 0x5e, 0x4d, 0xa2, 0xd8, 0xa3, 0x44, 0xe1, - 0x39, 0xbc, 0x1a, 0xfd, 0x8c, 0x02, 0x8a, 0xe1, 0xe5, 0xa0, 0xec, 0xea, 0x8e, 0x9a, 0xe8, 0x39, - 0xd6, 0xa1, 0xbb, 0x28, 0xa1, 0xe7, 0x98, 0x9f, 0xa0, 0xde, 0x0a, 0xe6, 0x9a, 0x3b, 0xa8, 0x79, - 0xa9, 0x62, 0xfb, 0xbb, 0xc3, 0x74, 0x2b, 0xb1, 0x27, 0x55, 0x04, 0xe6, 0x41, 0x11, 0x18, 0x71, - 0x12, 0x2d, 0x0c, 0xd2, 0x3c, 0x51, 0x11, 0xb8, 0xfc, 0x61, 0x80, 0x4b, 0x55, 0xc0, 0xe5, 0x9e, - 0xa1, 0x4a, 0x4d, 0x06, 0x4b, 0x75, 0xb8, 0x5b, 0xfa, 0x6b, 0x1b, 0x46, 0xa5, 0x56, 0x6d, 0x6c, - 0xd6, 0xb5, 0xa5, 0xc6, 0xa2, 0x0f, 0x4e, 0xbd, 0xa8, 0xc0, 0xaf, 0x67, 0xc1, 0x04, 0x25, 0xab, - 0xdb, 0x73, 0x99, 0x27, 0x1f, 0x7d, 0x27, 0x73, 0x20, 0xfa, 0x0e, 0x7c, 0x8b, 0xf4, 0xd1, 0xea, - 0x80, 0x11, 0xac, 0x9e, 0x88, 0x7e, 0xea, 0x69, 0x60, 0x82, 0x82, 0xec, 0x3b, 0x8d, 0x9c, 0x89, - 0xe8, 0xa5, 0x58, 0x31, 0xba, 0x9f, 0x5d, 0xf2, 0x98, 0xf5, 0x00, 0x32, 0xc6, 0x32, 0x41, 0x9c, - 0x58, 0xb5, 0xba, 0x9e, 0xe3, 0x5e, 0x85, 0xaf, 0xcb, 0x80, 0x89, 0xf3, 0xc8, 0xed, 0x5a, 0x8e, - 0x7d, 0x60, 0xb3, 0xf4, 0x26, 0x30, 0xdd, 0x71, 0xd1, 0xbe, 0xe5, 0xec, 0x75, 0xc3, 0x89, 0x39, - 0x9f, 0xa4, 0x42, 0x30, 0x69, 0xee, 0x79, 0x3b, 0x8e, 0x1b, 0x1e, 0x63, 0xf6, 0xdf, 0xd5, 0x33, - 0x00, 0xd0, 0xe7, 0xaa, 0xb9, 0x8b, 0xd8, 0x16, 0x30, 0x97, 0xa2, 0xaa, 0x20, 0xe7, 0x59, 0xbb, - 0x88, 0x45, 0x21, 0x23, 0xcf, 0xea, 0x3c, 0x98, 0x20, 0x31, 0x83, 0x58, 0x6c, 0x26, 0x45, 0xf7, - 0x5f, 0xe1, 0x7f, 0x55, 0xc0, 0xf4, 0x0a, 0xf2, 0x18, 0xa9, 0x5d, 0x3e, 0x18, 0x48, 0x4c, 0xa4, - 0x5e, 0xdc, 0xbd, 0xb6, 0xcd, 0xae, 0xff, 0x5b, 0xb0, 0xfa, 0x26, 0x26, 0x86, 0x11, 0xd1, 0x14, - 0x2e, 0xe8, 0x21, 0x7c, 0x67, 0x56, 0xf6, 0xf8, 0x19, 0x63, 0xe6, 0x02, 0x47, 0x60, 0xa4, 0x6c, - 0x4d, 0xee, 0xb3, 0x1c, 0x07, 0x22, 0x54, 0xf2, 0x25, 0xb1, 0x62, 0xf4, 0x20, 0xb7, 0xe4, 0xc1, - 0xb5, 0xc1, 0x94, 0xa4, 0x2f, 0x5e, 0xdf, 0x52, 0xc0, 0x74, 0x7d, 0xc7, 0xb9, 0xcc, 0x08, 0xe0, - 0xef, 0xa7, 0x8c, 0x83, 0xea, 0x06, 0x30, 0xb5, 0xdf, 0x03, 0x53, 0x98, 0x10, 0x7d, 0x8d, 0x22, - 0x7c, 0x44, 0x49, 0x0a, 0x13, 0x47, 0xdc, 0xc8, 0x2f, 0x39, 0x54, 0x7f, 0x08, 0x4c, 0x30, 0xaa, - 0xd9, 0xfc, 0x39, 0x1e, 0x60, 0x3f, 0x33, 0xdf, 0xc0, 0x9c, 0xd8, 0xc0, 0x64, 0xc8, 0x47, 0x37, - 0x6e, 0x0c, 0x71, 0xa0, 0xb3, 0xe4, 0xd8, 0xb2, 0x0f, 0x7c, 0x79, 0x04, 0xc0, 0xc3, 0x6f, 0x67, - 0x64, 0x57, 0x99, 0x02, 0x0e, 0x04, 0x14, 0x1c, 0x2a, 0xae, 0xf6, 0xc0, 0xe2, 0xd2, 0xe7, 0xe7, - 0xcb, 0x73, 0x60, 0x66, 0xc9, 0xda, 0xda, 0x0a, 0x7a, 0xbd, 0x17, 0x65, 0xe4, 0x58, 0x1a, 0xbd, - 0x43, 0x89, 0x8d, 0x96, 0x3d, 0xd7, 0x45, 0xb6, 0xdf, 0x28, 0xa6, 0x4e, 0x3d, 0xa9, 0xea, 0x6d, - 0xe0, 0xb8, 0xdf, 0xd1, 0xfb, 0x19, 0xa9, 0x58, 0xf6, 0x26, 0xc3, 0x6f, 0x4a, 0x6f, 0x51, 0xf8, - 0x1c, 0xe5, 0x9b, 0x14, 0xa1, 0x80, 0xf7, 0x82, 0xd9, 0x1d, 0x9a, 0x9b, 0xcc, 0xe3, 0xfc, 0xce, - 0xf2, 0x74, 0x4f, 0xfc, 0xc2, 0x75, 0xd4, 0xed, 0x9a, 0xdb, 0x48, 0x17, 0x33, 0xf7, 0xa8, 0xaf, - 0x92, 0xe4, 0x12, 0x01, 0xb9, 0xdd, 0x0e, 0x89, 0x96, 0xa4, 0x2f, 0x1d, 0x5f, 0x7d, 0x2c, 0xc8, - 0x2d, 0x5b, 0x6d, 0x04, 0x7f, 0x36, 0x0b, 0xa6, 0x74, 0xd4, 0x74, 0xec, 0x26, 0x7e, 0xe3, 0xfc, - 0x15, 0xfe, 0x91, 0xd7, 0x9d, 0x07, 0x44, 0x68, 0x6e, 0x17, 0x1a, 0x84, 0xcb, 0x59, 0x08, 0xca, - 0x88, 0xd0, 0x9b, 0xd7, 0x04, 0xbc, 0x29, 0x0b, 0xbc, 0x39, 0x27, 0x5f, 0xd4, 0x18, 0xc2, 0x23, - 0x63, 0x3b, 0x72, 0x6b, 0xab, 0xed, 0x98, 0xc2, 0x4a, 0x46, 0xaf, 0x6d, 0x73, 0x3b, 0x28, 0xfa, - 0x6e, 0xe7, 0x8e, 0xb7, 0x61, 0xd9, 0x76, 0x70, 0xdc, 0xec, 0x40, 0xba, 0xb8, 0x09, 0x17, 0x7b, - 0x62, 0x9f, 0xb4, 0x9d, 0xd5, 0x1e, 0x21, 0xd9, 0xb7, 0x82, 0xb9, 0x8b, 0x57, 0x3d, 0xd4, 0x65, - 0xb9, 0x58, 0xb5, 0x39, 0xbd, 0x27, 0x15, 0xbe, 0x4b, 0xea, 0x64, 0x7f, 0x4c, 0x85, 0xc9, 0x58, - 0xbd, 0x3a, 0x84, 0x39, 0x7f, 0x12, 0x14, 0xab, 0xb5, 0x25, 0x8d, 0xb8, 0xcf, 0xf8, 0xfe, 0x08, - 0xdb, 0xf0, 0xc5, 0x0a, 0x98, 0x21, 0x7b, 0xd1, 0x3e, 0x0a, 0x37, 0x4b, 0xec, 0x7f, 0xc3, 0x2f, - 0x49, 0xbb, 0xd6, 0x90, 0x26, 0xf3, 0x15, 0x44, 0x33, 0x7a, 0xcb, 0x6a, 0xf7, 0x32, 0x3a, 0xaf, - 0xf7, 0xa4, 0xf6, 0x01, 0x44, 0xe9, 0x0b, 0xc8, 0xef, 0x4a, 0xf9, 0xd7, 0x0c, 0xa2, 0xee, 0xa8, - 0x50, 0x79, 0x9f, 0x02, 0xa6, 0xf1, 0xfc, 0xcf, 0x07, 0xa5, 0x26, 0x80, 0xe2, 0xd8, 0xed, 0xab, - 0xe1, 0x1c, 0xd7, 0x7f, 0x4d, 0xa4, 0x24, 0x7f, 0x29, 0x3d, 0x0d, 0x23, 0x2c, 0xe2, 0x68, 0x19, - 0x13, 0x7e, 0xef, 0x95, 0x9a, 0x9c, 0x0d, 0x20, 0xee, 0xa8, 0xe0, 0xfb, 0xad, 0x3c, 0x28, 0x6c, - 0x76, 0x08, 0x72, 0x5f, 0xcb, 0xca, 0xc4, 0xb2, 0x3d, 0xe0, 0x5b, 0x8d, 0xcd, 0xac, 0xb6, 0xd3, - 0x34, 0xdb, 0x1b, 0xe1, 0x21, 0x95, 0x30, 0x41, 0xbd, 0x87, 0xb9, 0x5b, 0xd1, 0x13, 0x3e, 0xb7, - 0xc6, 0x86, 0x79, 0x25, 0x3c, 0xe2, 0xfc, 0xd8, 0xef, 0x00, 0x27, 0x5a, 0x56, 0xd7, 0xbc, 0xd8, - 0x46, 0x9a, 0xdd, 0x74, 0xaf, 0x52, 0x76, 0x50, 0xd7, 0x94, 0x83, 0x1f, 0xd4, 0xfb, 0x40, 0xbe, - 0xeb, 0x5d, 0x6d, 0xd3, 0x89, 0x1f, 0xef, 0xf6, 0x1e, 0x59, 0x55, 0x1d, 0x67, 0xd7, 0xe9, 0x5f, - 0xfc, 0x15, 0x6f, 0x13, 0x92, 0xd7, 0xd5, 0xdd, 0x05, 0x0a, 0x8e, 0x6b, 0x6d, 0x5b, 0x34, 0x7a, - 0xfa, 0xdc, 0x81, 0xe8, 0x45, 0xd4, 0x14, 0xa8, 0x91, 0x2c, 0x3a, 0xcb, 0x0a, 0xdf, 0x2b, 0x7d, - 0x67, 0x3a, 0xa1, 0x91, 0x82, 0x33, 0x9e, 0x2b, 0xeb, 0x5e, 0x25, 0x15, 0xc4, 0x20, 0x9a, 0xac, - 0xf4, 0x07, 0xe1, 0xcf, 0x65, 0xc1, 0xe4, 0x92, 0x73, 0xd9, 0x26, 0x02, 0x7b, 0xb7, 0x9c, 0xcd, - 0xda, 0xe7, 0xfc, 0x94, 0x78, 0xd1, 0x4e, 0xac, 0xb3, 0x34, 0x69, 0xad, 0x5f, 0x65, 0x04, 0x0c, - 0xb1, 0x1a, 0x20, 0x79, 0x31, 0x4a, 0x5c, 0x3d, 0xe9, 0xf3, 0xf5, 0x4f, 0x14, 0x90, 0x5b, 0x72, - 0x9d, 0x0e, 0x7c, 0x73, 0x26, 0xc1, 0x3e, 0x72, 0xcb, 0x75, 0x3a, 0x06, 0xb9, 0xf3, 0x20, 0xf4, - 0x10, 0xe7, 0xd3, 0xd4, 0xbb, 0xc1, 0x64, 0xc7, 0xe9, 0x5a, 0x9e, 0x3f, 0x1d, 0x98, 0xbb, 0xf3, - 0x31, 0x7d, 0xb5, 0x72, 0x83, 0x65, 0xd2, 0x83, 0xec, 0xb8, 0xf7, 0x25, 0x2c, 0xc4, 0x7c, 0xc1, - 0x6c, 0xf4, 0xef, 0x7d, 0xe8, 0x49, 0x85, 0x2f, 0xe1, 0x91, 0x7c, 0xba, 0x88, 0xe4, 0xe3, 0xfa, - 0x70, 0xd8, 0x75, 0x3a, 0x23, 0xd9, 0xf9, 0x79, 0x45, 0x80, 0xea, 0x33, 0x04, 0x54, 0x6f, 0x97, - 0xaa, 0x33, 0x7d, 0x44, 0xdf, 0x9b, 0x03, 0x80, 0x98, 0x0b, 0x9b, 0x78, 0x22, 0x23, 0x67, 0x2b, - 0xfd, 0x74, 0x8e, 0xe3, 0x65, 0x49, 0xe4, 0xe5, 0xe3, 0x23, 0xac, 0x11, 0x52, 0x7c, 0x04, 0x47, - 0x4b, 0x20, 0xbf, 0x87, 0x3f, 0x33, 0x8e, 0x4a, 0x16, 0x41, 0x5e, 0x75, 0xfa, 0x27, 0xfc, 0xe3, - 0x0c, 0xc8, 0x93, 0x04, 0xf5, 0x0c, 0x00, 0x64, 0x80, 0xa6, 0x67, 0x0d, 0x32, 0x64, 0x28, 0xe6, - 0x52, 0x88, 0xb4, 0x5a, 0x2d, 0xf6, 0x99, 0x9a, 0xbe, 0x61, 0x02, 0xfe, 0x9b, 0x0c, 0xdb, 0xa4, - 0x2c, 0x36, 0x90, 0x73, 0x29, 0xf8, 0x6f, 0xf2, 0xb6, 0x86, 0xb6, 0x68, 0xe8, 0xcb, 0x9c, 0x1e, - 0x26, 0x04, 0x7f, 0xaf, 0x05, 0xd7, 0x1b, 0xf8, 0x7f, 0x93, 0x14, 0x3c, 0xa9, 0x25, 0x62, 0xb9, - 0x18, 0x56, 0x51, 0x20, 0x99, 0x7a, 0x93, 0xe1, 0x6b, 0x03, 0xb1, 0x59, 0x12, 0xc4, 0xe6, 0x89, - 0x09, 0xd8, 0x9b, 0xbe, 0xf0, 0x7c, 0x25, 0x0f, 0xa6, 0xaa, 0x4e, 0x8b, 0xc9, 0x0e, 0x37, 0xf1, - 0xfb, 0x78, 0x3e, 0xd1, 0xc4, 0x2f, 0x28, 0x23, 0x42, 0x40, 0x1e, 0x10, 0x05, 0x44, 0xae, 0x04, - 0x5e, 0x3e, 0xd4, 0x45, 0x50, 0x20, 0xd2, 0x7b, 0xf0, 0xda, 0x8a, 0xb8, 0x22, 0x08, 0x6b, 0x75, - 0xf6, 0xe7, 0xbf, 0x39, 0x19, 0xfb, 0x4f, 0x20, 0x4f, 0x1a, 0x18, 0xe3, 0x15, 0x2c, 0x36, 0x34, - 0x1b, 0xdf, 0x50, 0x25, 0xbe, 0xa1, 0xb9, 0xde, 0x86, 0x26, 0x99, 0xcf, 0x47, 0x49, 0x48, 0xfa, - 0x32, 0xfe, 0x3f, 0x26, 0x00, 0xa8, 0x9a, 0xfb, 0xd6, 0x36, 0xdd, 0xb2, 0xfb, 0x0b, 0x7f, 0x1e, - 0xc3, 0x36, 0xd7, 0xfe, 0x33, 0x37, 0x10, 0xde, 0x0d, 0x26, 0xd8, 0xb8, 0xc7, 0x1a, 0x72, 0xa3, - 0xd0, 0x90, 0xb0, 0x14, 0x6a, 0x5e, 0x5e, 0xf1, 0x74, 0x3f, 0xbf, 0x70, 0x91, 0x57, 0xb6, 0xe7, - 0x22, 0xaf, 0xbe, 0xbb, 0x03, 0x51, 0xd7, 0x7b, 0xc1, 0x77, 0x49, 0x5f, 0xc4, 0xc0, 0xd1, 0xc3, - 0xb5, 0x28, 0x42, 0x05, 0xef, 0x02, 0x13, 0x4e, 0xb0, 0xcb, 0xa8, 0x44, 0xae, 0x67, 0x55, 0xec, - 0x2d, 0x47, 0xf7, 0x73, 0x4a, 0x5e, 0xb1, 0x20, 0x45, 0xc7, 0x58, 0x7c, 0xe7, 0x4f, 0xaf, 0xf8, - 0x61, 0x44, 0x70, 0x3b, 0x2e, 0x58, 0xde, 0xce, 0x9a, 0x65, 0x5f, 0xea, 0xc2, 0xff, 0x20, 0x67, - 0x41, 0x72, 0xf8, 0x67, 0x93, 0xe1, 0x2f, 0x86, 0x03, 0xa8, 0x8b, 0xa8, 0xdd, 0x17, 0x55, 0x4a, - 0x7f, 0x6a, 0x23, 0x00, 0xbc, 0x07, 0x14, 0x28, 0xa1, 0xac, 0x13, 0x3d, 0x1b, 0x89, 0x5f, 0x50, - 0x92, 0xce, 0xfe, 0x80, 0xef, 0x0c, 0x70, 0x3c, 0x2f, 0xe0, 0xb8, 0x78, 0x28, 0xca, 0x52, 0x87, - 0xf4, 0xec, 0x93, 0xc0, 0x04, 0xe3, 0xb4, 0x3a, 0xc7, 0x6b, 0x71, 0xf1, 0x98, 0x0a, 0x40, 0x61, - 0xdd, 0xd9, 0x47, 0x86, 0x53, 0xcc, 0xe0, 0x67, 0x4c, 0x9f, 0xe1, 0x14, 0xb3, 0xf0, 0x95, 0x93, - 0x60, 0x32, 0x08, 0x14, 0xf2, 0xb9, 0xac, 0x7f, 0x39, 0xfe, 0xb2, 0xeb, 0xec, 0xd2, 0x16, 0xc9, - 0xbb, 0xec, 0xfd, 0xb2, 0xf4, 0xbe, 0x7b, 0x10, 0xc0, 0xa3, 0xb7, 0x32, 0xc9, 0x3b, 0x85, 0xdf, - 0x24, 0xb5, 0x0f, 0x2f, 0x5b, 0x4b, 0xfa, 0xaa, 0xf6, 0xa9, 0x2c, 0xc8, 0x97, 0xdb, 0x8e, 0x8d, - 0x12, 0x5d, 0x29, 0xdc, 0x7f, 0x47, 0x01, 0x3e, 0x27, 0x2b, 0x6b, 0x6b, 0x84, 0x0c, 0xc0, 0x75, - 0x4b, 0xf2, 0x56, 0x6e, 0x90, 0x8a, 0x2d, 0x3a, 0x7d, 0x86, 0x7e, 0x3d, 0x0b, 0xa6, 0x68, 0xc8, - 0x8d, 0x52, 0xbb, 0x0d, 0x1f, 0x13, 0x32, 0xb5, 0x4f, 0xb0, 0x15, 0xf8, 0xbb, 0xd2, 0x7e, 0xd3, - 0x41, 0xab, 0x82, 0xb2, 0x13, 0xc4, 0x1e, 0x49, 0xe6, 0xc6, 0x2b, 0xb7, 0x27, 0x36, 0x90, 0xa0, - 0xf4, 0x59, 0xfd, 0xe7, 0x59, 0x6c, 0x00, 0xd8, 0x97, 0x36, 0x5c, 0xb4, 0x6f, 0xa1, 0xcb, 0xf0, - 0xfa, 0x90, 0xd9, 0x07, 0xe3, 0x09, 0xbc, 0x41, 0x7a, 0x11, 0x87, 0x2b, 0x32, 0x72, 0x4b, 0x6a, - 0xba, 0x1d, 0x66, 0x62, 0xbd, 0x78, 0x6f, 0x90, 0x07, 0xae, 0x18, 0x9d, 0xcf, 0x2e, 0xb9, 0x66, - 0x13, 0x4d, 0x45, 0xfa, 0x8c, 0x7d, 0x64, 0x02, 0x4c, 0x6e, 0xda, 0xdd, 0x4e, 0xdb, 0xec, 0xee, - 0xc0, 0xef, 0x2a, 0xc1, 0x8d, 0xbe, 0x4f, 0x11, 0x8e, 0x2d, 0xff, 0xf8, 0x1e, 0x72, 0x7d, 0x37, - 0x1c, 0xfa, 0xd2, 0xff, 0xca, 0x48, 0xf8, 0x5e, 0x45, 0x76, 0x92, 0xea, 0x57, 0x1a, 0x7f, 0xd5, - 0x6d, 0x05, 0x4c, 0x76, 0xac, 0xa6, 0xb7, 0xe7, 0x06, 0x17, 0x10, 0x3e, 0x41, 0xae, 0x94, 0x0d, - 0xfa, 0x97, 0x1e, 0xfc, 0x0e, 0x4d, 0x30, 0xc1, 0x12, 0x0f, 0x6c, 0x0b, 0x1d, 0x3c, 0x86, 0x77, - 0x1a, 0x14, 0x4c, 0xd7, 0xb3, 0xba, 0xfe, 0x05, 0xaf, 0xec, 0x0d, 0x77, 0x97, 0xf4, 0x69, 0xd3, - 0x6d, 0xfb, 0x01, 0x0e, 0x82, 0x04, 0xf8, 0x3e, 0xa9, 0xf9, 0x63, 0x7c, 0xcb, 0x93, 0x41, 0xfe, - 0xe0, 0x10, 0x6b, 0xcd, 0xd7, 0x82, 0x6b, 0xf4, 0x92, 0xa1, 0x35, 0xe8, 0x79, 0xf8, 0xe0, 0xe8, - 0x7b, 0x0b, 0x7e, 0x97, 0x5f, 0xbf, 0x13, 0xc7, 0x08, 0xc6, 0xc5, 0x70, 0x8c, 0x08, 0x12, 0x62, - 0xc6, 0x88, 0xdf, 0x92, 0xde, 0xdd, 0x09, 0x58, 0x32, 0x60, 0x2d, 0x2f, 0xee, 0x9e, 0x87, 0xf7, - 0x4b, 0xed, 0xd4, 0x0c, 0xaa, 0xe9, 0x08, 0xd9, 0xff, 0x1b, 0x13, 0x60, 0x62, 0xc5, 0x6c, 0xb7, - 0x91, 0x7b, 0x15, 0x0f, 0x2d, 0x45, 0x9f, 0xc2, 0x75, 0xd3, 0xb6, 0xb6, 0xf0, 0xfc, 0x3e, 0xb6, - 0xd3, 0x7b, 0x97, 0x74, 0x0c, 0x41, 0x56, 0xc7, 0x42, 0x6f, 0xf9, 0x11, 0x3c, 0x3f, 0x07, 0x72, - 0x96, 0xbd, 0xe5, 0xb0, 0xae, 0xaf, 0x77, 0x15, 0xdd, 0xff, 0x99, 0x4c, 0x41, 0x48, 0x46, 0xc9, - 0x30, 0x82, 0x92, 0x54, 0xa4, 0xdf, 0x03, 0xfe, 0x76, 0x0e, 0xcc, 0xfa, 0x44, 0x54, 0xec, 0x16, - 0xba, 0xc2, 0x2f, 0xa9, 0xbc, 0x38, 0x27, 0x7b, 0xd6, 0xa6, 0xb7, 0x3d, 0xa4, 0xa8, 0x08, 0x96, - 0x1a, 0x00, 0x34, 0x4d, 0x0f, 0x6d, 0x3b, 0xae, 0x15, 0xf4, 0x6b, 0x4f, 0x4e, 0x52, 0x5a, 0x99, - 0xfe, 0x7d, 0x55, 0xe7, 0xca, 0x51, 0xef, 0x03, 0xd3, 0x28, 0x38, 0x4e, 0xeb, 0x2f, 0xb9, 0xc4, - 0xe2, 0xc5, 0xe7, 0x87, 0x7f, 0x2e, 0x75, 0xa4, 0x47, 0xa6, 0x99, 0xc9, 0x30, 0x6b, 0x0c, 0xa7, - 0x43, 0x9b, 0xd5, 0xf5, 0x92, 0x5e, 0x5f, 0x2d, 0xad, 0xad, 0x55, 0xaa, 0x2b, 0x41, 0x6c, 0x08, - 0x15, 0xcc, 0x2d, 0xd5, 0x2e, 0x54, 0xb9, 0xe0, 0x1d, 0x39, 0xb8, 0x01, 0x26, 0x7d, 0x7e, 0xf5, - 0x73, 0x76, 0xe4, 0x79, 0xc6, 0x9c, 0x1d, 0xb9, 0x24, 0x6c, 0x64, 0x59, 0xcd, 0xc0, 0x61, 0x86, - 0x3c, 0xc3, 0x3f, 0x32, 0x41, 0x9e, 0xac, 0x8d, 0xc3, 0xb7, 0x91, 0x1b, 0x60, 0x3b, 0x6d, 0xb3, - 0x89, 0xe0, 0x6e, 0x02, 0xab, 0xda, 0x0f, 0x6a, 0x9d, 0x3d, 0x10, 0xd4, 0x9a, 0x3c, 0x32, 0xeb, - 0xed, 0x64, 0xbf, 0xf5, 0x78, 0x9d, 0x66, 0x11, 0x4f, 0xbf, 0xc4, 0xee, 0x92, 0xd0, 0x65, 0x7c, - 0x46, 0x66, 0x84, 0x48, 0x46, 0xd3, 0x94, 0xcc, 0xa2, 0x94, 0xdb, 0x4f, 0x89, 0xa3, 0x28, 0x7d, - 0x8d, 0xff, 0x62, 0x0e, 0xe4, 0xeb, 0x9d, 0xb6, 0xe5, 0xc1, 0x97, 0x65, 0x47, 0x82, 0x19, 0x0d, - 0x44, 0xae, 0x0c, 0x0c, 0x44, 0x1e, 0xee, 0x82, 0xe6, 0x24, 0x76, 0x41, 0x0d, 0x74, 0xc5, 0x13, - 0x77, 0x41, 0xef, 0x66, 0xf1, 0x9d, 0xe8, 0x1e, 0xea, 0xe3, 0xfa, 0xb0, 0x94, 0x34, 0xab, 0x4f, - 0xe0, 0xb0, 0xb3, 0x4f, 0x62, 0xf1, 0x8b, 0x00, 0x28, 0x2c, 0xd6, 0x0c, 0xa3, 0xb6, 0x5e, 0x3c, - 0x46, 0x02, 0x5f, 0xd4, 0x36, 0x8a, 0x19, 0x75, 0x0a, 0xe4, 0x2b, 0xd5, 0xaa, 0xa6, 0x17, 0xb3, - 0x24, 0xa2, 0x52, 0xc5, 0x58, 0xd3, 0x8a, 0x8a, 0x18, 0x95, 0x36, 0xd6, 0x8c, 0x16, 0xeb, 0x4e, - 0x53, 0xbc, 0xe4, 0x0c, 0xea, 0x68, 0x7a, 0xd2, 0x17, 0xae, 0xff, 0xa2, 0x80, 0xfc, 0x3a, 0x72, - 0xb7, 0x11, 0xfc, 0xf1, 0x04, 0x9b, 0x75, 0x5b, 0x96, 0xdb, 0xa5, 0xf1, 0xa7, 0xc2, 0xcd, 0x3a, - 0x3e, 0x4d, 0xbd, 0x05, 0xcc, 0x76, 0x51, 0xd3, 0xb1, 0x5b, 0x7e, 0x26, 0xda, 0x1f, 0x89, 0x89, - 0xf0, 0xa5, 0x09, 0x21, 0x23, 0x84, 0x8e, 0x64, 0xc7, 0x2d, 0x09, 0x30, 0xfd, 0x6a, 0x4d, 0x1f, - 0x98, 0x6f, 0x2a, 0xf8, 0xa7, 0xce, 0x55, 0xf8, 0x52, 0xe9, 0x5d, 0xd4, 0x3b, 0x40, 0x81, 0x88, - 0xa9, 0x3f, 0x46, 0xf7, 0xef, 0x8f, 0x59, 0x1e, 0x75, 0x11, 0x9c, 0xe8, 0xa2, 0x36, 0x6a, 0x7a, - 0xa8, 0x85, 0x55, 0x57, 0x1f, 0xd8, 0x29, 0x1c, 0xcc, 0x0e, 0xff, 0x94, 0x07, 0xf0, 0x5e, 0x11, - 0xc0, 0x5b, 0xfb, 0xb0, 0x12, 0x37, 0x28, 0xda, 0x56, 0xc6, 0xcd, 0xa8, 0xb7, 0x9d, 0x60, 0x71, - 0xdb, 0x7f, 0xc7, 0xdf, 0x76, 0xbc, 0xdd, 0x36, 0xf9, 0xc6, 0x3c, 0xf8, 0xfd, 0x77, 0x75, 0x01, - 0x4c, 0x98, 0xf6, 0x55, 0xf2, 0x29, 0x17, 0xd3, 0x6a, 0x3f, 0x13, 0x7c, 0x65, 0x80, 0xfc, 0xfd, - 0x02, 0xf2, 0x8f, 0x97, 0x23, 0x37, 0x7d, 0xe0, 0x7f, 0x6a, 0x02, 0xe4, 0x37, 0xcc, 0xae, 0x87, - 0xe0, 0xff, 0xa3, 0xc8, 0x22, 0x7f, 0x2b, 0x98, 0xdb, 0x72, 0x9a, 0x7b, 0x5d, 0xd4, 0x12, 0x95, - 0xb2, 0x27, 0x75, 0x14, 0x98, 0xab, 0xb7, 0x83, 0xa2, 0x9f, 0xc8, 0x8a, 0xf5, 0xb7, 0xd3, 0x0f, - 0xa4, 0x93, 0x60, 0xba, 0xdd, 0x0d, 0xd3, 0xf5, 0x6a, 0x5b, 0x24, 0x2d, 0x08, 0xa6, 0xcb, 0x27, - 0x0a, 0xd0, 0x17, 0x62, 0xa0, 0x9f, 0x88, 0x86, 0x7e, 0x52, 0x02, 0x7a, 0xb5, 0x04, 0x26, 0xb7, - 0xac, 0x36, 0x22, 0x3f, 0x4c, 0x91, 0x1f, 0xfa, 0x8d, 0x49, 0x84, 0xf7, 0xc1, 0x98, 0xb4, 0x6c, - 0xb5, 0x91, 0x1e, 0xfc, 0xe6, 0x4f, 0x64, 0x40, 0x38, 0x91, 0x59, 0xa3, 0xfe, 0xad, 0xd8, 0xf0, - 0xb2, 0xcd, 0x5d, 0xe4, 0x2f, 0xa2, 0xd9, 0xec, 0xf4, 0x48, 0xcb, 0xf4, 0x4c, 0x02, 0xc6, 0x8c, - 0x4e, 0x9e, 0x45, 0xff, 0x0e, 0xa5, 0xd7, 0xbf, 0xe3, 0xf9, 0x4a, 0xb2, 0x1e, 0xd1, 0x27, 0x36, - 0x42, 0xa3, 0x2e, 0xfa, 0x00, 0x51, 0x4b, 0x31, 0x78, 0xc7, 0xc0, 0x34, 0x4d, 0x17, 0x79, 0x1b, - 0xbc, 0x47, 0x45, 0x5e, 0x17, 0x13, 0x89, 0x6b, 0x5d, 0xb7, 0x6e, 0xee, 0x22, 0x52, 0x59, 0x19, - 0x7f, 0x63, 0x2e, 0x53, 0x07, 0xd2, 0xc3, 0xfe, 0x37, 0x3f, 0xea, 0xfe, 0xb7, 0x5f, 0x1b, 0xd3, - 0x57, 0xc3, 0x57, 0xe7, 0x80, 0x52, 0xde, 0xf3, 0x1e, 0xd5, 0xdd, 0xef, 0xf7, 0xa4, 0xfd, 0x55, - 0x58, 0x7f, 0x16, 0x79, 0x05, 0xf0, 0x98, 0x7a, 0xdf, 0x84, 0x52, 0x22, 0xe7, 0x17, 0x13, 0xd5, - 0xb6, 0xf4, 0x65, 0xe4, 0xcd, 0x4a, 0xe0, 0xf0, 0xf8, 0xbc, 0xcc, 0xe1, 0x4d, 0x73, 0x48, 0xfb, - 0x27, 0xae, 0x67, 0x08, 0xde, 0xfd, 0x8e, 0x27, 0x27, 0x84, 0xde, 0x22, 0xdb, 0xe4, 0x84, 0x95, - 0x33, 0x3a, 0x7d, 0x81, 0x2f, 0x97, 0x76, 0x03, 0xa7, 0x6c, 0x8b, 0x75, 0x09, 0x4c, 0x66, 0x53, - 0xc9, 0x5d, 0xf3, 0x16, 0x53, 0x6d, 0xfa, 0x80, 0xfd, 0x43, 0xf4, 0x92, 0xe1, 0x30, 0x88, 0xc1, - 0x57, 0x49, 0x6f, 0x2b, 0xd1, 0x66, 0x0f, 0x58, 0x2f, 0x4c, 0xc6, 0x6f, 0xb9, 0x4d, 0xa7, 0xd8, - 0x8a, 0xd3, 0xe7, 0xf8, 0x37, 0x14, 0x50, 0xa0, 0x5b, 0x89, 0xf0, 0x8d, 0x99, 0x04, 0xf7, 0xe3, - 0x7a, 0xa2, 0x2b, 0x60, 0xf0, 0x9e, 0x64, 0xcd, 0x41, 0x70, 0x19, 0xcc, 0x25, 0x72, 0x19, 0x14, - 0xcf, 0x55, 0x4a, 0xe8, 0x11, 0x6d, 0x63, 0xca, 0xd3, 0xc9, 0x24, 0x1a, 0xd6, 0x97, 0xa0, 0xf4, - 0xf1, 0xfe, 0x99, 0x3c, 0x98, 0xa1, 0x55, 0x5f, 0xb0, 0x5a, 0xdb, 0xc8, 0x83, 0xef, 0xc8, 0x7e, - 0xff, 0xa0, 0xae, 0x56, 0xc1, 0xcc, 0x65, 0x42, 0x36, 0xbd, 0xb4, 0x9e, 0xad, 0x5c, 0xdc, 0x1e, - 0xbb, 0xee, 0x41, 0xdb, 0xe9, 0x5f, 0xd2, 0x2f, 0xfc, 0x8f, 0x79, 0x4c, 0x17, 0xfc, 0xa9, 0x23, - 0x56, 0x81, 0x18, 0x59, 0x7c, 0x92, 0x7a, 0x1a, 0x14, 0xf6, 0x2d, 0x74, 0xb9, 0xd2, 0x62, 0xd6, - 0x2d, 0x7b, 0x83, 0x1f, 0x94, 0xde, 0x7f, 0xe5, 0xe1, 0x66, 0xb4, 0xa4, 0x2b, 0x85, 0x72, 0xbb, - 0xb0, 0x03, 0xc9, 0x1a, 0xc3, 0x19, 0x5f, 0xf1, 0x1a, 0xb5, 0x24, 0xd7, 0x73, 0x47, 0x19, 0xce, - 0x09, 0xee, 0x48, 0xa7, 0x0c, 0x18, 0xf1, 0x0d, 0x6b, 0x72, 0x87, 0xf7, 0x07, 0x54, 0x9d, 0x3e, - 0xe7, 0x5f, 0xab, 0x90, 0x8b, 0xe9, 0x97, 0x2d, 0xd4, 0x6e, 0x75, 0xa1, 0x7b, 0x78, 0xd3, 0xe8, - 0x1c, 0x28, 0x6c, 0x91, 0xc2, 0x06, 0x9d, 0x3f, 0x60, 0xd9, 0xe0, 0xab, 0xb3, 0xb2, 0x3b, 0xbb, - 0x6c, 0xf5, 0xcd, 0xa7, 0x76, 0x24, 0x30, 0xc9, 0x79, 0xe6, 0xc6, 0xd7, 0x9c, 0x3e, 0x4a, 0x6f, - 0x51, 0xc0, 0x0c, 0xbb, 0x77, 0xa9, 0xd4, 0xb6, 0xb6, 0x6d, 0xb8, 0x37, 0x02, 0x0d, 0x51, 0x9f, - 0x08, 0xf2, 0x26, 0x2e, 0x8d, 0x39, 0xe9, 0xc3, 0xbe, 0x9d, 0x27, 0xa9, 0x4f, 0xa7, 0x19, 0x13, - 0xc4, 0xe8, 0x0b, 0x05, 0xdb, 0xa7, 0x79, 0x8c, 0x31, 0xfa, 0x06, 0x56, 0x9e, 0x3e, 0x62, 0x5f, - 0x56, 0xc0, 0x49, 0x46, 0xc0, 0x79, 0xe4, 0x7a, 0x56, 0xd3, 0x6c, 0x53, 0xe4, 0x5e, 0x90, 0x19, - 0x05, 0x74, 0xab, 0x60, 0x76, 0x9f, 0x2f, 0x96, 0x41, 0x78, 0xb6, 0x2f, 0x84, 0x02, 0x01, 0xba, - 0xf8, 0x63, 0x82, 0x58, 0x67, 0x02, 0x57, 0x85, 0x32, 0xc7, 0x18, 0xeb, 0x4c, 0x9a, 0x88, 0xf4, - 0x21, 0x7e, 0x49, 0x8e, 0x86, 0xff, 0x0b, 0xbb, 0xcf, 0xbf, 0x90, 0xc6, 0x76, 0x13, 0x4c, 0x13, - 0x2c, 0xe9, 0x8f, 0x6c, 0x19, 0x22, 0x46, 0x88, 0x83, 0x7e, 0x87, 0xdd, 0x29, 0x14, 0xfc, 0xab, - 0xf3, 0xe5, 0xc0, 0x0b, 0x00, 0x84, 0x9f, 0xf8, 0x4e, 0x3a, 0x13, 0xd5, 0x49, 0x67, 0xe5, 0x3a, - 0xe9, 0x37, 0x48, 0x07, 0x2f, 0xe9, 0x4f, 0xf6, 0xe1, 0xc5, 0x43, 0x2e, 0x6c, 0xc5, 0xe0, 0xda, - 0xd3, 0x97, 0x8b, 0x57, 0xe6, 0x7a, 0x2f, 0xd8, 0xfd, 0xc8, 0x48, 0xe6, 0x53, 0x7c, 0x7f, 0xa0, - 0xf4, 0xf4, 0x07, 0x87, 0xb0, 0xa4, 0x6f, 0x03, 0xc7, 0x69, 0x15, 0xe5, 0x80, 0xac, 0x3c, 0x0d, - 0xcd, 0xd0, 0x93, 0x0c, 0x3f, 0x3a, 0x84, 0x10, 0x0c, 0xba, 0xfd, 0x37, 0xae, 0x93, 0x4b, 0x66, - 0xec, 0x26, 0x15, 0x90, 0xa3, 0xbb, 0x34, 0xf8, 0xeb, 0x39, 0x6a, 0xed, 0x6e, 0x92, 0x6b, 0x9f, - 0xe0, 0x17, 0x72, 0xa3, 0x18, 0x11, 0x1e, 0x00, 0x39, 0xe2, 0xaa, 0xae, 0x44, 0x2e, 0x69, 0x84, - 0x55, 0x86, 0x77, 0x72, 0xa1, 0x2b, 0xde, 0xea, 0x31, 0x9d, 0xfc, 0xa9, 0xde, 0x0e, 0x8e, 0x5f, - 0x34, 0x9b, 0x97, 0xb6, 0x5d, 0x67, 0x8f, 0x5c, 0x90, 0xe3, 0xb0, 0x9b, 0x76, 0xc8, 0x8d, 0x65, - 0xe2, 0x07, 0xf5, 0x4e, 0xdf, 0x74, 0xc8, 0x0f, 0x32, 0x1d, 0x56, 0x8f, 0x31, 0xe3, 0x41, 0x7d, - 0x52, 0xd0, 0xe9, 0x14, 0x62, 0x3b, 0x9d, 0xd5, 0x63, 0x7e, 0xb7, 0xa3, 0x2e, 0x81, 0xc9, 0x96, - 0xb5, 0x4f, 0xb6, 0xaa, 0xc9, 0xac, 0x6b, 0xd0, 0x51, 0xe2, 0x25, 0x6b, 0x9f, 0x6e, 0x6c, 0xaf, - 0x1e, 0xd3, 0x83, 0x3f, 0xd5, 0x15, 0x30, 0x45, 0xb6, 0x05, 0x48, 0x31, 0x93, 0x89, 0x8e, 0x09, - 0xaf, 0x1e, 0xd3, 0xc3, 0x7f, 0xb1, 0xf5, 0x91, 0x23, 0x67, 0x38, 0xee, 0xf7, 0xb7, 0xdb, 0x33, - 0x89, 0xb6, 0xdb, 0x31, 0x2f, 0xe8, 0x86, 0xfb, 0x69, 0x90, 0x6f, 0x12, 0x0e, 0x67, 0x19, 0x87, - 0xe9, 0xab, 0x7a, 0x2f, 0xc8, 0xed, 0x9a, 0xae, 0x3f, 0x79, 0xbe, 0x75, 0x70, 0xb9, 0xeb, 0xa6, - 0x7b, 0x09, 0x23, 0x88, 0xff, 0x5a, 0x9c, 0x00, 0x79, 0xc2, 0xb8, 0xe0, 0x01, 0xbe, 0x39, 0x47, - 0xcd, 0x90, 0xb2, 0x63, 0xe3, 0x61, 0xdf, 0x70, 0xfc, 0x83, 0x2e, 0x1f, 0xcc, 0x8c, 0xc6, 0x82, - 0xec, 0x7b, 0x23, 0xad, 0x12, 0x79, 0x23, 0x6d, 0xcf, 0x1d, 0x9c, 0xb9, 0xde, 0x3b, 0x38, 0xc3, - 0xe5, 0x83, 0xfc, 0x60, 0x47, 0x95, 0x3f, 0x1d, 0xc2, 0x74, 0xe9, 0x65, 0x44, 0xf4, 0x0c, 0xbc, - 0x6d, 0xd9, 0x5c, 0x9b, 0xfd, 0xd7, 0x84, 0x9d, 0x52, 0x52, 0xa3, 0x66, 0x00, 0x79, 0xe9, 0xf7, - 0x4d, 0xbf, 0x99, 0x03, 0xf3, 0x98, 0x10, 0x7a, 0x9a, 0x42, 0xbc, 0x92, 0x0e, 0x7e, 0x72, 0x24, - 0x42, 0xd3, 0x67, 0xc0, 0x51, 0xfa, 0x0e, 0x38, 0x07, 0x0e, 0x1b, 0xe7, 0x06, 0x1c, 0x36, 0xce, - 0x27, 0x5b, 0x39, 0xfc, 0x00, 0x2f, 0x3f, 0x1b, 0xa2, 0xfc, 0xdc, 0x13, 0x01, 0x50, 0x3f, 0xbe, - 0x8c, 0xc4, 0xbe, 0x79, 0x5b, 0x20, 0x29, 0x75, 0x41, 0x52, 0xee, 0x1f, 0x9e, 0x90, 0xf4, 0xa5, - 0xe5, 0xf7, 0x72, 0xe0, 0x9a, 0x90, 0x98, 0x2a, 0xba, 0xcc, 0x04, 0xe5, 0x73, 0x23, 0x11, 0x94, - 0xe4, 0xb1, 0x0c, 0xd2, 0x96, 0x98, 0x3f, 0x96, 0x3e, 0x03, 0xd4, 0x0b, 0x54, 0xc0, 0x9b, 0x08, - 0x61, 0x39, 0x0d, 0x0a, 0xb4, 0x87, 0x61, 0xd0, 0xb0, 0xb7, 0x84, 0xdd, 0x8d, 0xdc, 0xc9, 0x21, - 0x59, 0xda, 0xc6, 0x20, 0x3f, 0x6c, 0x5d, 0xc3, 0xd8, 0x73, 0xed, 0x8a, 0xed, 0x39, 0xf0, 0x27, - 0x47, 0x22, 0x38, 0x81, 0x37, 0x9c, 0x32, 0x8c, 0x37, 0xdc, 0x50, 0xab, 0x1c, 0x7e, 0x0b, 0x8e, - 0x64, 0x95, 0x23, 0xa2, 0xf2, 0xf4, 0xf1, 0x7b, 0xab, 0x02, 0x4e, 0xb3, 0xc9, 0xd6, 0xa2, 0x68, - 0x21, 0xf6, 0xdc, 0x6a, 0x3f, 0x24, 0x90, 0x27, 0x7d, 0x33, 0x89, 0x5d, 0x5a, 0x44, 0x5e, 0xc4, - 0x13, 0x4f, 0xb1, 0xc1, 0xf3, 0x85, 0xe9, 0x60, 0x0f, 0x85, 0x23, 0x41, 0x4a, 0x2e, 0x66, 0x7e, - 0x02, 0x32, 0xd2, 0xc7, 0xec, 0x45, 0x0a, 0x28, 0xb0, 0x1b, 0xbe, 0x37, 0x53, 0x71, 0x98, 0x10, - 0x43, 0xe8, 0x4a, 0xec, 0xc8, 0x25, 0xbe, 0x07, 0x3b, 0xbd, 0xbd, 0xb8, 0x23, 0xba, 0xe8, 0xfa, - 0x9b, 0x59, 0x30, 0x5d, 0x47, 0x5e, 0xd9, 0x74, 0x5d, 0xcb, 0xdc, 0x1e, 0x95, 0xc7, 0xb7, 0xac, - 0xf7, 0x30, 0xfc, 0x56, 0x46, 0xf6, 0x3c, 0x4d, 0xb0, 0x10, 0xee, 0x93, 0x1a, 0x11, 0xdb, 0x4f, - 0xee, 0x86, 0xf1, 0x41, 0xa5, 0x8d, 0xc1, 0x63, 0x3b, 0x0b, 0x26, 0xfc, 0x33, 0x75, 0xe7, 0x84, - 0x73, 0x96, 0x3b, 0xde, 0xae, 0x7f, 0x0c, 0x86, 0x3c, 0x1f, 0x3c, 0xcb, 0x05, 0x5f, 0x91, 0xd0, - 0x51, 0x3e, 0xfe, 0x40, 0x60, 0x32, 0x1d, 0x4b, 0xe2, 0x0e, 0x7f, 0x54, 0x47, 0x00, 0x7f, 0x77, - 0x82, 0x2d, 0x47, 0xae, 0x99, 0x1e, 0xba, 0x02, 0xff, 0x42, 0x01, 0x13, 0x75, 0xe4, 0xe1, 0xf1, - 0x16, 0x93, 0x7f, 0x68, 0x09, 0x57, 0xb9, 0x15, 0x8f, 0x29, 0xb6, 0x86, 0xf1, 0x4c, 0x30, 0xd5, - 0x71, 0x9d, 0x26, 0xea, 0x76, 0xd9, 0xea, 0x05, 0xef, 0xa8, 0xd6, 0x6f, 0xf4, 0x27, 0xa4, 0x2d, - 0x6c, 0xf8, 0xff, 0xe8, 0xe1, 0xef, 0x49, 0xcd, 0x00, 0x5a, 0x12, 0x6b, 0xe0, 0xb8, 0xcd, 0x80, - 0xb8, 0xca, 0xd3, 0x07, 0xfa, 0x33, 0x0a, 0x98, 0xa9, 0x23, 0x2f, 0xe0, 0x62, 0x82, 0x4d, 0x8e, - 0x68, 0x78, 0x05, 0x28, 0x95, 0xc3, 0x41, 0x29, 0x7f, 0xef, 0x9a, 0xc8, 0xcd, 0xa0, 0xb0, 0x31, - 0xde, 0xbb, 0x26, 0x47, 0xc1, 0x18, 0x8e, 0xaf, 0x3d, 0x0e, 0x4c, 0x11, 0x5a, 0x88, 0xc2, 0xfe, - 0x7c, 0x2e, 0x54, 0xde, 0xcf, 0xa7, 0xa4, 0xbc, 0xf7, 0x81, 0x3c, 0xb9, 0xcf, 0x9d, 0x28, 0xee, - 0xb4, 0x8c, 0xd9, 0xbe, 0x8e, 0xb3, 0xeb, 0xf4, 0xaf, 0xfe, 0x7e, 0x9a, 0xf9, 0x64, 0x7e, 0x9a, - 0xaf, 0xcb, 0x26, 0x1a, 0x09, 0xe9, 0xdc, 0x61, 0x84, 0x2a, 0x9f, 0x60, 0xdc, 0x8c, 0xa9, 0x3b, - 0x7d, 0xe1, 0x78, 0x81, 0x02, 0x26, 0xf1, 0xb8, 0x4d, 0xec, 0xf1, 0x0b, 0x87, 0x17, 0x87, 0xfe, - 0x86, 0x7e, 0xc2, 0x1e, 0xd8, 0xe7, 0xc8, 0xe8, 0xcc, 0xfb, 0x04, 0x3d, 0x70, 0x5c, 0xe5, 0xe9, - 0xe3, 0xf1, 0x76, 0x8a, 0x07, 0xd1, 0x07, 0xf8, 0x7a, 0x05, 0x28, 0x2b, 0xc8, 0x1b, 0xb7, 0x15, - 0xf9, 0x16, 0xe9, 0x50, 0x45, 0x02, 0xc3, 0x08, 0xcd, 0x0b, 0x2b, 0x68, 0x34, 0x0a, 0x24, 0x17, - 0xa3, 0x48, 0x8a, 0x80, 0xf4, 0x51, 0x7b, 0x37, 0x45, 0x8d, 0x6e, 0x2e, 0xfc, 0xc4, 0x08, 0x7a, - 0xd5, 0xf1, 0x2e, 0x7c, 0xf8, 0x0c, 0x24, 0x65, 0x1c, 0x95, 0xbe, 0xf5, 0xab, 0x7c, 0x2c, 0xf7, - 0x9c, 0x01, 0xac, 0xec, 0x3b, 0xa8, 0x79, 0x09, 0xb5, 0xe0, 0x8f, 0x1e, 0x1e, 0xba, 0x79, 0x30, - 0xd1, 0xa4, 0xa5, 0x11, 0xf0, 0x26, 0x75, 0xff, 0x35, 0xc1, 0xa5, 0xbd, 0x62, 0x47, 0x44, 0x7f, - 0x1f, 0xe3, 0xa5, 0xbd, 0x12, 0xd5, 0x8f, 0xc1, 0x6c, 0xa1, 0xb3, 0x8c, 0x4a, 0xd3, 0xb1, 0xe1, - 0x7f, 0x3c, 0x3c, 0x2c, 0x37, 0x80, 0x29, 0xab, 0xe9, 0xd8, 0x95, 0x5d, 0x3f, 0xb8, 0xdf, 0x94, - 0x1e, 0x26, 0xf8, 0x5f, 0xb5, 0x5d, 0xe7, 0x61, 0x8b, 0xed, 0x9a, 0x87, 0x09, 0xc3, 0x1a, 0x13, - 0x98, 0xf4, 0xa3, 0x32, 0x26, 0xfa, 0xd4, 0x9d, 0x3e, 0x64, 0x1f, 0x0d, 0xbd, 0xdb, 0x68, 0x57, - 0xf8, 0xa8, 0x58, 0x05, 0x1e, 0x66, 0x38, 0xe3, 0x5b, 0x71, 0x24, 0xc3, 0x59, 0x0c, 0x01, 0x63, - 0xb8, 0x5f, 0x24, 0xc4, 0x31, 0xf5, 0x35, 0xe0, 0x43, 0xa0, 0x33, 0x3a, 0xf3, 0x70, 0x48, 0x74, - 0x8e, 0xc6, 0x44, 0x7c, 0x3f, 0x0b, 0x75, 0xc9, 0x2c, 0x1e, 0xf8, 0x9f, 0x46, 0x01, 0xce, 0x3d, - 0xc3, 0xf8, 0x2b, 0x50, 0x6f, 0x85, 0x04, 0xd7, 0x0d, 0x1f, 0xe0, 0x20, 0x2e, 0x65, 0x8c, 0x17, - 0x71, 0xcb, 0xd4, 0x9f, 0x3e, 0x80, 0x3f, 0xa7, 0x80, 0x39, 0xe2, 0x23, 0xd0, 0x46, 0xa6, 0x4b, - 0x3b, 0xca, 0x91, 0x38, 0xca, 0xbf, 0x5d, 0x3a, 0xc0, 0x8f, 0xc8, 0x87, 0x90, 0x8e, 0x91, 0x40, - 0x21, 0x17, 0xdd, 0x47, 0x92, 0x84, 0xb1, 0x6c, 0xa3, 0x14, 0x03, 0x12, 0x98, 0x88, 0x8f, 0x06, - 0x8f, 0x84, 0x1e, 0xb9, 0x22, 0x33, 0x7c, 0x65, 0x1b, 0xb3, 0x47, 0xae, 0x0c, 0x11, 0xe9, 0x63, - 0xf2, 0xfa, 0x27, 0xb2, 0x05, 0x67, 0x83, 0xdc, 0xc6, 0xfd, 0xaa, 0x5c, 0x70, 0xa2, 0xed, 0x33, - 0x23, 0xf1, 0xc0, 0x3c, 0x44, 0x60, 0x7b, 0x15, 0xe4, 0x5c, 0xe7, 0x32, 0x5d, 0xda, 0x9a, 0xd5, - 0xc9, 0x33, 0x31, 0xf9, 0x9d, 0xf6, 0xde, 0xae, 0x4d, 0x4f, 0x86, 0xce, 0xea, 0xfe, 0xab, 0x7a, - 0x0b, 0x98, 0xbd, 0x6c, 0x79, 0x3b, 0xab, 0xc8, 0x6c, 0x21, 0x57, 0x77, 0x2e, 0x13, 0x8f, 0xb9, - 0x49, 0x5d, 0x4c, 0x14, 0xfd, 0x57, 0x24, 0xec, 0x4b, 0x72, 0x45, 0xf7, 0x58, 0x8e, 0xbf, 0x25, - 0xb1, 0x3c, 0xa3, 0xa9, 0x4a, 0x5f, 0x60, 0xde, 0xa3, 0x80, 0x29, 0xdd, 0xb9, 0xcc, 0x84, 0xe4, - 0xff, 0x3a, 0x5a, 0x19, 0x49, 0x3c, 0xd1, 0xa3, 0x57, 0xae, 0xfb, 0xe4, 0x8f, 0x7d, 0xa2, 0x17, - 0x5b, 0xfd, 0x58, 0x4e, 0x2e, 0xcd, 0xe8, 0xce, 0xe5, 0x3a, 0xf2, 0xa8, 0x46, 0xc0, 0xc6, 0x88, - 0x9c, 0xac, 0xad, 0x2e, 0x2d, 0x90, 0xcd, 0xc3, 0x83, 0xf7, 0xa4, 0xbb, 0x08, 0x01, 0x83, 0x02, - 0x12, 0xc7, 0xbd, 0x8b, 0x30, 0x90, 0x82, 0x31, 0xc4, 0x48, 0x51, 0xc0, 0xb4, 0xee, 0x5c, 0xc6, - 0x43, 0xc3, 0xb2, 0xd5, 0x6e, 0x8f, 0x66, 0x84, 0x4c, 0x6a, 0xfc, 0xfb, 0x6c, 0xf0, 0xa9, 0x18, - 0xbb, 0xf1, 0x3f, 0x80, 0x80, 0xf4, 0x61, 0x78, 0x3e, 0x55, 0x16, 0x7f, 0x84, 0xb6, 0x47, 0x83, - 0xc3, 0xb0, 0x0a, 0x11, 0x90, 0x71, 0x64, 0x0a, 0x11, 0x45, 0xc1, 0x58, 0x76, 0x4e, 0xe6, 0xca, - 0x64, 0x98, 0x1f, 0xad, 0x4e, 0xbc, 0x33, 0x99, 0x6b, 0x22, 0x1b, 0x76, 0x05, 0x42, 0x46, 0x82, - 0x46, 0x02, 0x17, 0x44, 0x09, 0x1a, 0xd2, 0xc7, 0xe3, 0x43, 0x0a, 0x98, 0xa1, 0x24, 0x3c, 0x4a, - 0xac, 0x80, 0xa1, 0x94, 0x8a, 0x6f, 0xc1, 0xd1, 0x28, 0x55, 0x0c, 0x05, 0x63, 0xb9, 0xa5, 0x13, - 0xdb, 0x71, 0x43, 0x1c, 0x1f, 0x8f, 0x42, 0x70, 0x68, 0x63, 0x6c, 0x84, 0x47, 0xc8, 0x87, 0x31, - 0xc6, 0x8e, 0xe8, 0x18, 0xf9, 0xf3, 0x03, 0x2d, 0x1a, 0x25, 0x06, 0x87, 0x50, 0x85, 0x11, 0xc2, - 0x30, 0xa4, 0x2a, 0x1c, 0x11, 0x12, 0x5f, 0x51, 0x00, 0xa0, 0x04, 0xac, 0x3b, 0xfb, 0xe4, 0x52, - 0x9e, 0x11, 0x74, 0x67, 0xbd, 0x6e, 0xf5, 0xca, 0x00, 0xb7, 0xfa, 0x84, 0x21, 0x5c, 0x92, 0xae, - 0x04, 0x72, 0x5c, 0xc6, 0x8d, 0x1c, 0xfb, 0x4a, 0x60, 0x7c, 0xfd, 0xe9, 0x63, 0xfc, 0x25, 0x6a, - 0xcd, 0x85, 0x07, 0x4c, 0x7f, 0x65, 0x24, 0x28, 0x73, 0xb3, 0x7f, 0x45, 0x9c, 0xfd, 0x1f, 0x02, - 0xdb, 0x61, 0x6d, 0xc4, 0x41, 0x07, 0x47, 0xd3, 0xb7, 0x11, 0x8f, 0xee, 0x80, 0xe8, 0x4f, 0xe4, - 0xc0, 0x71, 0xd6, 0x89, 0x7c, 0x3f, 0x40, 0x9c, 0xf0, 0x1c, 0x9e, 0xd0, 0x49, 0x0e, 0x40, 0x79, - 0x54, 0x0b, 0x52, 0x49, 0x96, 0x32, 0x25, 0xc8, 0x1b, 0xcb, 0xea, 0x46, 0x41, 0xbb, 0xd2, 0x31, - 0xed, 0x96, 0x7c, 0xb8, 0xdf, 0x01, 0xc0, 0xfb, 0x6b, 0x8d, 0x8a, 0xb8, 0xd6, 0xd8, 0x67, 0x65, - 0x32, 0xf1, 0xce, 0x35, 0x61, 0x19, 0x25, 0x77, 0xec, 0x3b, 0xd7, 0xd1, 0x75, 0xa7, 0x8f, 0xd2, - 0x3b, 0x15, 0x90, 0xab, 0x3b, 0xae, 0x07, 0x1f, 0x49, 0xa2, 0x9d, 0x94, 0xf3, 0x21, 0x48, 0xfe, - 0xbb, 0x5a, 0x16, 0x6e, 0x4d, 0x3e, 0x17, 0x7f, 0xd4, 0xd9, 0xf4, 0x4c, 0xe2, 0xd5, 0x8d, 0xeb, - 0xe7, 0xae, 0x4f, 0x4e, 0x1a, 0x4f, 0x87, 0xf2, 0xaf, 0x1e, 0x7d, 0x00, 0x23, 0xb5, 0x78, 0x3a, - 0x91, 0x35, 0xa7, 0x8f, 0xdb, 0x7f, 0x9f, 0x63, 0xbe, 0xad, 0xcb, 0x56, 0x1b, 0xc1, 0x47, 0xa8, - 0xcb, 0x48, 0xd5, 0xdc, 0x45, 0xf2, 0x47, 0x62, 0x62, 0x5d, 0x5b, 0x49, 0x7c, 0x59, 0x25, 0x8c, - 0x2f, 0x9b, 0x54, 0xa1, 0xe8, 0x01, 0x74, 0x4a, 0xd2, 0xb8, 0x15, 0x2a, 0xa6, 0xee, 0xb1, 0xc4, - 0xe9, 0x3c, 0x51, 0x47, 0x1e, 0x35, 0x2a, 0x6b, 0xfe, 0x0d, 0x2c, 0x3f, 0x36, 0x92, 0x88, 0x9d, - 0xc1, 0x05, 0x2f, 0x4a, 0xcf, 0x05, 0x2f, 0xef, 0xe1, 0xc1, 0x59, 0x17, 0xc1, 0x79, 0x6a, 0x34, - 0x83, 0x44, 0x22, 0x47, 0x02, 0xd3, 0x5b, 0x02, 0x98, 0x36, 0x04, 0x98, 0xee, 0x1d, 0x92, 0x8a, - 0xf4, 0x01, 0xfb, 0x3c, 0x36, 0x55, 0xc8, 0xa4, 0xbf, 0x64, 0xb7, 0x58, 0x84, 0xd5, 0x7f, 0x3a, - 0xea, 0xcd, 0xb6, 0x83, 0x21, 0x58, 0x85, 0x58, 0xce, 0xf9, 0xde, 0xdb, 0xea, 0x17, 0x69, 0x38, - 0x57, 0xdc, 0x89, 0x92, 0x9d, 0x36, 0xf9, 0x1b, 0xeb, 0x83, 0xff, 0xe0, 0x9f, 0x24, 0x5b, 0x7f, - 0x23, 0x45, 0xf4, 0x30, 0x2e, 0x65, 0x1b, 0x28, 0xc1, 0xca, 0x9c, 0x04, 0x75, 0xff, 0x3e, 0xdc, - 0xc2, 0xc2, 0x48, 0x20, 0x43, 0xba, 0x85, 0x91, 0x02, 0x8e, 0xd2, 0x2d, 0x6c, 0x10, 0x01, 0x63, - 0xb8, 0x65, 0x3e, 0xcf, 0x76, 0xe5, 0x89, 0xcf, 0x24, 0xfc, 0xab, 0x6c, 0xea, 0xa3, 0xed, 0xb7, - 0x33, 0x89, 0xfc, 0x98, 0x09, 0x5d, 0xf1, 0xc3, 0x6d, 0x12, 0xcf, 0xe4, 0xb8, 0xe2, 0xc6, 0xb0, - 0xfe, 0x93, 0x25, 0x3e, 0xe5, 0x17, 0xac, 0x96, 0xb7, 0x33, 0xa2, 0x93, 0x19, 0x97, 0x71, 0x59, - 0xfe, 0x75, 0xc5, 0xe4, 0x05, 0x7e, 0x27, 0x93, 0x28, 0x14, 0x54, 0xc0, 0x12, 0x42, 0x56, 0x04, - 0x8b, 0x13, 0x04, 0x70, 0x8a, 0x2d, 0x6f, 0x8c, 0x12, 0x7d, 0xde, 0x6a, 0x21, 0xe7, 0x51, 0x28, - 0xd1, 0x84, 0xae, 0xd1, 0x49, 0x74, 0x5c, 0x71, 0xff, 0x4e, 0x25, 0x3a, 0x60, 0xc9, 0x88, 0x24, - 0x3a, 0xb6, 0xbc, 0xf4, 0x79, 0xfc, 0x8a, 0x19, 0x36, 0x21, 0x5a, 0xb3, 0xec, 0x4b, 0xf0, 0x9f, - 0x0b, 0xfe, 0x45, 0xc9, 0x17, 0x2c, 0x6f, 0x87, 0xc5, 0x74, 0xf9, 0x3d, 0xe9, 0x3b, 0x4e, 0x86, - 0x88, 0xdb, 0x22, 0x86, 0x85, 0xca, 0x1f, 0x08, 0x0b, 0x55, 0x02, 0xb3, 0x96, 0xed, 0x21, 0xd7, - 0x36, 0xdb, 0xcb, 0x6d, 0x73, 0xbb, 0x3b, 0x3f, 0xd1, 0xf7, 0x12, 0xba, 0x0a, 0x97, 0x47, 0x17, - 0xff, 0xe0, 0xaf, 0x93, 0x9c, 0x14, 0xaf, 0xc5, 0x8f, 0x88, 0x62, 0x35, 0x15, 0x1d, 0xc5, 0x2a, - 0x88, 0x52, 0x05, 0x06, 0x07, 0xb9, 0x96, 0xb5, 0x71, 0x13, 0x86, 0xed, 0x3b, 0x27, 0x19, 0x4d, - 0x2d, 0x08, 0xe1, 0xf8, 0x6b, 0x4a, 0xa2, 0x55, 0x3a, 0x2c, 0x08, 0x0b, 0xbd, 0x42, 0x90, 0xd8, - 0x42, 0xe5, 0x1b, 0xaf, 0xf4, 0x34, 0x3e, 0x30, 0x79, 0x72, 0x12, 0x26, 0x0f, 0x2f, 0x54, 0x79, - 0x39, 0xa1, 0x4a, 0xb2, 0xe8, 0x27, 0xd3, 0xda, 0x31, 0x9c, 0x2a, 0xca, 0x83, 0x13, 0x7e, 0xd4, - 0xda, 0x4e, 0x07, 0x99, 0xae, 0x69, 0x37, 0x11, 0xfc, 0x68, 0x76, 0x14, 0x66, 0xef, 0x32, 0x98, - 0xb4, 0x9a, 0x8e, 0x5d, 0xb7, 0x9e, 0xed, 0x5f, 0x12, 0x17, 0x1f, 0x2c, 0x9d, 0x70, 0xa4, 0xc2, - 0xfe, 0xd0, 0x83, 0x7f, 0xd5, 0x0a, 0x98, 0x6a, 0x9a, 0x6e, 0x8b, 0x06, 0xd3, 0xcb, 0xf7, 0x5c, - 0xc8, 0x14, 0x59, 0x50, 0xd9, 0xff, 0x45, 0x0f, 0xff, 0x56, 0x6b, 0x22, 0x13, 0x0b, 0x3d, 0x51, - 0x39, 0x22, 0x0b, 0x5b, 0x0a, 0x7f, 0x12, 0x78, 0x8e, 0xb9, 0xe3, 0xa2, 0x36, 0xb9, 0x13, 0x9e, - 0xf6, 0x10, 0x53, 0x7a, 0x98, 0x90, 0x74, 0x9a, 0x4f, 0xaa, 0x3a, 0x80, 0xc6, 0xb8, 0xa7, 0xf9, - 0x52, 0x54, 0xa4, 0x2f, 0x99, 0x6f, 0x2b, 0x80, 0x59, 0xda, 0xab, 0x31, 0x76, 0xc2, 0x9f, 0x23, - 0x57, 0x3a, 0x7b, 0x0f, 0xa2, 0xab, 0xb0, 0x7e, 0xf8, 0x31, 0xb9, 0x08, 0x94, 0x4b, 0x41, 0xe0, - 0x40, 0xfc, 0x98, 0x74, 0xff, 0xdd, 0xa7, 0x6b, 0x81, 0xd2, 0x34, 0xee, 0xfd, 0xf7, 0xf8, 0xea, - 0xd3, 0xc7, 0xe7, 0x17, 0x15, 0xa0, 0x94, 0x5a, 0x2d, 0xd8, 0x3c, 0x3c, 0x14, 0x37, 0x81, 0x69, - 0x5f, 0x67, 0xc2, 0x58, 0x8e, 0x7c, 0x52, 0xd2, 0xc5, 0xcc, 0x80, 0x37, 0xa5, 0xd6, 0xd8, 0x77, - 0x07, 0x62, 0xea, 0x4e, 0x1f, 0x94, 0x5f, 0x99, 0x60, 0x4a, 0xb3, 0xe8, 0x38, 0x97, 0xc8, 0x91, - 0x97, 0x47, 0x14, 0x90, 0x5f, 0x46, 0x5e, 0x73, 0x67, 0x44, 0x3a, 0xb3, 0xe7, 0xb6, 0x7d, 0x9d, - 0x39, 0x70, 0x3f, 0xfd, 0x60, 0x1b, 0xd6, 0x27, 0x6b, 0x81, 0x90, 0x34, 0xee, 0x28, 0xcd, 0xb1, - 0xb5, 0xa7, 0x0f, 0xce, 0x77, 0x14, 0x30, 0x17, 0xac, 0x70, 0x51, 0x4c, 0x7e, 0xe1, 0x51, 0xb7, - 0x6e, 0x09, 0x3f, 0x97, 0x2c, 0xd4, 0x59, 0xc0, 0x53, 0xb1, 0x65, 0x29, 0x2f, 0x2c, 0x26, 0x08, - 0x82, 0x26, 0x47, 0xe0, 0x18, 0x66, 0xf0, 0x0a, 0x98, 0x24, 0x04, 0x2d, 0x59, 0xfb, 0xc4, 0x05, - 0x50, 0x58, 0x68, 0x7c, 0xce, 0x48, 0x16, 0x1a, 0xef, 0x15, 0x17, 0x1a, 0x25, 0x23, 0x17, 0xfb, - 0xeb, 0x8c, 0x09, 0x7d, 0x62, 0xf0, 0xff, 0x23, 0x5f, 0x66, 0x4c, 0xe0, 0x13, 0x33, 0xa0, 0xfe, - 0xf4, 0x11, 0xfd, 0x64, 0x83, 0x75, 0xb6, 0xfe, 0xc6, 0x28, 0xfc, 0xef, 0x27, 0x40, 0xee, 0x3c, - 0x7e, 0xf8, 0x5f, 0xe1, 0xcd, 0x56, 0x2f, 0x1d, 0x41, 0x90, 0x85, 0x67, 0x80, 0x1c, 0x2e, 0x9f, - 0x4d, 0x5b, 0x6e, 0x97, 0xdb, 0xa5, 0xc5, 0x84, 0xe8, 0xe4, 0x3f, 0xf5, 0x34, 0x28, 0x74, 0x9d, - 0x3d, 0xb7, 0x89, 0xcd, 0x67, 0x2c, 0x31, 0xec, 0x2d, 0x69, 0x70, 0x51, 0xa1, 0xe8, 0x85, 0xd1, - 0xb9, 0x7e, 0x72, 0x17, 0x1d, 0x29, 0xc2, 0x45, 0x47, 0x09, 0xf6, 0x0f, 0x24, 0x68, 0x4b, 0x5f, - 0x22, 0xfe, 0x8a, 0xdc, 0xf9, 0xd7, 0x1a, 0x15, 0xec, 0x11, 0x6c, 0x39, 0xac, 0x38, 0x24, 0x75, - 0xdc, 0x16, 0x59, 0x1b, 0xc4, 0x73, 0x1f, 0xab, 0xe3, 0xb6, 0x04, 0x0d, 0x63, 0x39, 0x6d, 0x5e, - 0x60, 0xce, 0xa6, 0x0f, 0x8d, 0x12, 0xdd, 0x9c, 0x20, 0xf4, 0x87, 0x42, 0x67, 0x84, 0x4e, 0xa8, - 0x43, 0xa3, 0x73, 0x44, 0x6e, 0xa8, 0x7f, 0xa0, 0x90, 0x88, 0x96, 0xbe, 0x91, 0x23, 0x7f, 0x61, - 0x51, 0x62, 0x88, 0xf0, 0x18, 0x2c, 0xc4, 0x73, 0x9e, 0x1d, 0x3e, 0xc4, 0xb7, 0xc8, 0x3a, 0x8e, - 0xfe, 0x71, 0x87, 0xf8, 0x96, 0x25, 0x24, 0x7d, 0x20, 0x7f, 0x9d, 0x5e, 0x10, 0x56, 0x6a, 0x7a, - 0xd6, 0xfe, 0x88, 0x35, 0x4d, 0x1c, 0x5e, 0x12, 0x46, 0xf5, 0x3d, 0xc0, 0x21, 0x4a, 0xe1, 0xb8, - 0xa3, 0xfa, 0xca, 0x91, 0x31, 0x86, 0xe3, 0xe8, 0x00, 0x73, 0x8f, 0xad, 0xcd, 0xbc, 0x9e, 0xad, - 0x06, 0xa0, 0xc3, 0xa3, 0x75, 0x16, 0xcc, 0x70, 0x53, 0x7f, 0xff, 0xe2, 0x19, 0x21, 0x2d, 0xe9, - 0x81, 0xf5, 0x80, 0x65, 0x23, 0x5f, 0x18, 0x48, 0xb0, 0xe0, 0x2b, 0x43, 0xc4, 0x58, 0xee, 0x75, - 0xf3, 0xc7, 0xb0, 0x31, 0x61, 0xf5, 0x7b, 0x3c, 0x56, 0x35, 0x11, 0xab, 0xbb, 0x65, 0xd8, 0x24, - 0x37, 0xa6, 0x49, 0xcd, 0x1b, 0xdf, 0x1a, 0xc0, 0xa5, 0x0b, 0x70, 0x3d, 0x63, 0x68, 0x3a, 0xd2, - 0x47, 0xec, 0x0d, 0x0a, 0xbd, 0xdc, 0xa9, 0xb4, 0x6f, 0x5a, 0x6d, 0x12, 0x65, 0x60, 0x04, 0x97, - 0x13, 0xff, 0x19, 0x0f, 0xca, 0x79, 0x11, 0x94, 0x07, 0x64, 0x98, 0x21, 0x50, 0x14, 0x81, 0xcd, - 0x53, 0xf8, 0xc5, 0x71, 0x1a, 0x62, 0xf8, 0xda, 0xde, 0x70, 0x7e, 0xec, 0x3b, 0xbf, 0x6a, 0xfe, - 0x3b, 0x01, 0x48, 0x0f, 0x09, 0x20, 0x69, 0x87, 0xa5, 0x2b, 0x7d, 0xac, 0x5e, 0x46, 0x87, 0xae, - 0x3a, 0x9d, 0x5e, 0x8d, 0x66, 0xe8, 0x62, 0x33, 0x37, 0x45, 0x98, 0xb9, 0x25, 0x3c, 0xe3, 0x10, - 0xba, 0xee, 0xfa, 0xc4, 0x0d, 0x52, 0xa7, 0xdc, 0x88, 0xcf, 0x38, 0x0c, 0xa4, 0x20, 0x7d, 0x70, - 0xfe, 0x51, 0x01, 0x60, 0xc5, 0x75, 0xf6, 0x3a, 0x35, 0xb7, 0x85, 0x5c, 0xf8, 0x37, 0xe1, 0x64, - 0xed, 0xc5, 0x23, 0x98, 0xac, 0x6d, 0x00, 0xb0, 0x1d, 0x14, 0xce, 0x7a, 0xa3, 0x27, 0xca, 0x4d, - 0xcd, 0x42, 0xa2, 0x74, 0xae, 0x0c, 0xf1, 0x9a, 0xdf, 0x1f, 0x16, 0x31, 0x8e, 0x1b, 0x5f, 0xc2, - 0xe2, 0x46, 0x39, 0x59, 0x7b, 0x7b, 0x80, 0xb5, 0x21, 0x60, 0xfd, 0xc0, 0x21, 0x28, 0x49, 0x1f, - 0xf3, 0x7f, 0x9a, 0x00, 0xd3, 0x74, 0x6b, 0x95, 0xf2, 0xf4, 0xef, 0x43, 0xd0, 0x7f, 0x65, 0x04, - 0xa0, 0x6f, 0x82, 0x19, 0x27, 0x2c, 0x9d, 0x8e, 0x7f, 0xfc, 0x62, 0x59, 0x2c, 0xec, 0x1c, 0x5d, - 0xba, 0x50, 0x0c, 0xfc, 0x30, 0x8f, 0xbc, 0x2e, 0x22, 0x7f, 0x6f, 0x0c, 0xbf, 0xb9, 0x12, 0x47, - 0x09, 0xfd, 0x3b, 0x02, 0xe8, 0x37, 0x05, 0xe8, 0x4b, 0x87, 0x21, 0x65, 0x0c, 0x57, 0x1c, 0x28, - 0x20, 0x47, 0x4e, 0x24, 0xfe, 0x66, 0x8a, 0x6b, 0x31, 0xf3, 0x60, 0x82, 0xa8, 0x6c, 0x30, 0x47, - 0xf4, 0x5f, 0xf1, 0x17, 0x73, 0xcb, 0x43, 0x6e, 0xe0, 0x5d, 0xe2, 0xbf, 0x62, 0x1a, 0x7c, 0x4f, - 0xf0, 0xee, 0x7c, 0x81, 0x6e, 0x1a, 0x07, 0x09, 0x43, 0x4f, 0x20, 0x79, 0x8e, 0x8f, 0xec, 0x8c, - 0xe2, 0x30, 0x13, 0xc8, 0x01, 0x84, 0xa4, 0x0f, 0xfc, 0x17, 0x72, 0x60, 0x9e, 0xae, 0x00, 0x2e, - 0xbb, 0xce, 0x6e, 0xcf, 0x8d, 0x62, 0xd6, 0xe1, 0x65, 0xe1, 0x56, 0x30, 0xe7, 0x09, 0x3e, 0xf0, - 0x4c, 0x26, 0x7a, 0x52, 0xe1, 0x9f, 0xf2, 0xfe, 0x2f, 0xcf, 0x12, 0x91, 0x5c, 0x8c, 0x61, 0x60, - 0x14, 0xed, 0x89, 0x37, 0x55, 0x24, 0x09, 0xe5, 0x16, 0x14, 0x95, 0xa1, 0xd6, 0x97, 0x03, 0x99, - 0xca, 0xcb, 0xc8, 0xd4, 0x7b, 0x03, 0x99, 0xfa, 0x51, 0x41, 0xa6, 0x56, 0x0e, 0xcf, 0x92, 0xf4, - 0x65, 0xeb, 0x55, 0xc1, 0x26, 0x5e, 0xb0, 0xc5, 0xba, 0x9b, 0xc2, 0xc6, 0x2a, 0xef, 0x3b, 0x96, - 0x13, 0x7c, 0xc7, 0xc4, 0x3b, 0x40, 0x12, 0xac, 0x5a, 0x88, 0x54, 0x47, 0xc8, 0xd2, 0x1c, 0xc8, - 0x5a, 0x3e, 0x75, 0x59, 0xab, 0x35, 0xd4, 0xba, 0x44, 0x6c, 0x45, 0x63, 0x58, 0x07, 0x9c, 0x03, - 0x85, 0x65, 0xab, 0xed, 0x21, 0x17, 0x7e, 0x89, 0xad, 0x4a, 0xbc, 0x2a, 0xc5, 0x01, 0x60, 0x09, - 0x14, 0xb6, 0x48, 0x6d, 0xcc, 0x64, 0xbe, 0x43, 0x4e, 0x7b, 0x28, 0x85, 0x3a, 0xfb, 0x37, 0x69, - 0x44, 0xc4, 0x9e, 0x62, 0x46, 0xb6, 0x9c, 0x91, 0x20, 0x22, 0xe2, 0x60, 0x12, 0xc6, 0x72, 0x19, - 0x58, 0x41, 0x47, 0xbb, 0x78, 0x8c, 0xbf, 0x94, 0x1e, 0xc2, 0x45, 0xa0, 0x58, 0xad, 0x2e, 0xe9, - 0x1c, 0xa7, 0x74, 0xfc, 0x98, 0xd4, 0xaf, 0xab, 0x97, 0x55, 0x94, 0xe4, 0x71, 0xfb, 0x75, 0x49, - 0x51, 0x91, 0x3e, 0x66, 0xdf, 0x26, 0x4e, 0xbd, 0x9d, 0xb6, 0xd9, 0x44, 0x98, 0xfa, 0xd4, 0x50, - 0xa3, 0x3d, 0x59, 0xce, 0xef, 0xc9, 0x38, 0x3d, 0xcd, 0x1f, 0x42, 0x4f, 0x87, 0x5d, 0x32, 0x0e, - 0x78, 0x4e, 0x1a, 0x7e, 0x64, 0x4b, 0xc6, 0xb1, 0x64, 0x8c, 0xe1, 0xaa, 0x57, 0xff, 0xf0, 0xf2, - 0x58, 0xb5, 0x75, 0xd8, 0x0d, 0x35, 0xc6, 0xac, 0x91, 0x1d, 0x54, 0x1e, 0x66, 0x43, 0x2d, 0x9a, - 0x86, 0x31, 0xa0, 0x35, 0xc7, 0xd0, 0xfa, 0x2c, 0x1b, 0x46, 0x53, 0xde, 0xd3, 0xee, 0x3a, 0xae, - 0x97, 0x6c, 0x4f, 0x1b, 0x53, 0xa7, 0x93, 0xff, 0x92, 0x1e, 0x92, 0x13, 0xcf, 0xb2, 0x8f, 0x6a, - 0xf8, 0x4c, 0x70, 0x48, 0x6e, 0x10, 0x01, 0xe9, 0xc3, 0xfb, 0xa6, 0x23, 0x1a, 0x3c, 0x87, 0x55, - 0x47, 0xa6, 0x03, 0x23, 0x1b, 0x3a, 0x87, 0x51, 0xc7, 0x68, 0x1a, 0xd2, 0xc7, 0xeb, 0x1f, 0xb8, - 0x81, 0xf3, 0x0d, 0x63, 0x1c, 0x38, 0x7d, 0xcd, 0xcc, 0x0f, 0xa9, 0x99, 0xc3, 0xee, 0xd5, 0x31, - 0x5e, 0x8f, 0x6e, 0xc0, 0x1c, 0x66, 0xaf, 0x2e, 0x86, 0x88, 0xf4, 0x11, 0x7f, 0xa3, 0x02, 0xf2, - 0xf5, 0xf1, 0x8f, 0x97, 0xc3, 0xce, 0x45, 0x08, 0xaf, 0xea, 0x23, 0x1b, 0x2e, 0x87, 0x99, 0x8b, - 0x44, 0x92, 0x30, 0x86, 0xcb, 0x0e, 0x8e, 0x83, 0x19, 0xb2, 0x24, 0xe2, 0x6f, 0x89, 0xff, 0x03, - 0x1b, 0x35, 0x5f, 0x97, 0xa2, 0xae, 0x3e, 0x13, 0x4c, 0xfa, 0xfb, 0x66, 0x6c, 0xe4, 0x5c, 0x90, - 0xd3, 0xcf, 0x60, 0xdf, 0x2d, 0xf8, 0xff, 0x50, 0x8e, 0x2b, 0x23, 0xdf, 0x57, 0x1f, 0xd6, 0x71, - 0xe5, 0x48, 0xf7, 0xd6, 0xff, 0x24, 0x1c, 0x51, 0xff, 0x63, 0x7a, 0x98, 0xf7, 0xee, 0xb9, 0xe7, - 0xfa, 0xec, 0xb9, 0x7f, 0x94, 0xc7, 0xb2, 0x2e, 0x62, 0x79, 0x9f, 0x2c, 0x0b, 0x47, 0x38, 0xd6, - 0xbe, 0x33, 0x80, 0xf3, 0xbc, 0x00, 0xe7, 0xe2, 0xa1, 0x68, 0x19, 0xc3, 0x21, 0xd5, 0x5c, 0x38, - 0xe6, 0x7e, 0x2c, 0x45, 0x3d, 0xee, 0x39, 0x01, 0x93, 0x3b, 0x70, 0x02, 0x46, 0xd0, 0xf4, 0xfc, - 0x21, 0x35, 0xfd, 0x63, 0xbc, 0x74, 0x18, 0xa2, 0x74, 0x3c, 0x43, 0x1e, 0x91, 0xd1, 0x8d, 0xcc, - 0xef, 0x0a, 0xc4, 0xe3, 0x82, 0x20, 0x1e, 0xe5, 0xc3, 0x11, 0x93, 0xbe, 0x7c, 0xfc, 0xa1, 0x3f, - 0xa1, 0x3d, 0x62, 0x7d, 0x1f, 0x76, 0xab, 0x58, 0x60, 0xe2, 0xc8, 0x46, 0xee, 0x61, 0xb6, 0x8a, - 0x07, 0x51, 0x32, 0x86, 0xf8, 0x77, 0xb3, 0x60, 0x9a, 0xd0, 0x74, 0xc1, 0x6a, 0x6d, 0x23, 0x0f, - 0xfe, 0x1a, 0xf5, 0x27, 0xf5, 0xa3, 0x8d, 0x8e, 0x28, 0x24, 0x54, 0xd4, 0xd9, 0xe4, 0xa4, 0x1e, - 0x1d, 0x94, 0xc8, 0x05, 0x8e, 0xc0, 0x71, 0x47, 0xad, 0x1c, 0x48, 0x41, 0xfa, 0x90, 0x7d, 0x98, - 0xba, 0xdb, 0xac, 0x99, 0x57, 0x9d, 0x3d, 0x0f, 0x3e, 0x6f, 0x04, 0x1d, 0xf4, 0x22, 0x28, 0xb4, - 0x49, 0x69, 0xec, 0x08, 0x4d, 0xfc, 0x74, 0x87, 0xb1, 0x80, 0xd6, 0xaf, 0xb3, 0x3f, 0x93, 0x9e, - 0xa3, 0x09, 0xf9, 0x48, 0xcb, 0x19, 0xf7, 0x39, 0x9a, 0x01, 0xf5, 0x8f, 0xe5, 0x5e, 0xa3, 0x49, - 0x5c, 0xbb, 0xb5, 0x6b, 0x79, 0x23, 0x8a, 0xb6, 0xd1, 0xc6, 0x65, 0xf9, 0xd1, 0x36, 0xc8, 0x4b, - 0xd2, 0xd3, 0xbd, 0x1c, 0x57, 0xf0, 0xef, 0xe3, 0x3e, 0xdd, 0x1b, 0x5f, 0x7d, 0xfa, 0x98, 0xfc, - 0x17, 0xaa, 0x59, 0xe7, 0xa9, 0xa3, 0x74, 0x8a, 0x3e, 0xd8, 0x43, 0x2b, 0x0b, 0x25, 0xed, 0xe8, - 0x94, 0xa5, 0x6f, 0xfd, 0xe9, 0x03, 0xf3, 0xbe, 0x33, 0x20, 0xbf, 0x84, 0x2e, 0xee, 0x6d, 0xc3, - 0x7b, 0xc1, 0xa4, 0xe1, 0x22, 0x54, 0xb1, 0xb7, 0x1c, 0xcc, 0x5d, 0x0f, 0x3f, 0xfb, 0x90, 0xb0, - 0x37, 0x8c, 0xc7, 0x0e, 0x32, 0x5b, 0xe1, 0x59, 0x41, 0xff, 0x15, 0xbe, 0x34, 0x0b, 0x72, 0x75, - 0xcf, 0xf4, 0xe0, 0x54, 0x80, 0x2d, 0x7c, 0x1e, 0x8f, 0xc5, 0xbd, 0x22, 0x16, 0xb7, 0x0a, 0xbc, - 0x20, 0x14, 0x2c, 0xe0, 0xff, 0x23, 0x00, 0x80, 0x60, 0xf2, 0xe1, 0xae, 0x63, 0xe3, 0x1c, 0xfe, - 0x71, 0x55, 0xff, 0x1d, 0xbe, 0x32, 0x60, 0xf7, 0xfd, 0x02, 0xbb, 0x1f, 0x2f, 0x57, 0xc5, 0x18, - 0x56, 0xda, 0xb2, 0x60, 0x0a, 0xb3, 0x76, 0x15, 0x99, 0xad, 0x2e, 0x7c, 0x6c, 0x28, 0xfc, 0x11, - 0x6c, 0x86, 0xef, 0x97, 0x0e, 0x80, 0x4a, 0x5b, 0x15, 0x14, 0x1e, 0xed, 0xd1, 0xe1, 0x6f, 0xfe, - 0x67, 0xc5, 0xc0, 0x31, 0xe7, 0x40, 0xce, 0xb2, 0xb7, 0x1c, 0xe6, 0x5f, 0x78, 0x7d, 0x44, 0xd9, - 0x58, 0x26, 0x74, 0x92, 0x51, 0x32, 0x3a, 0x6a, 0x3c, 0x59, 0x63, 0xb9, 0x68, 0x30, 0x87, 0x6b, - 0x87, 0xff, 0xe7, 0x40, 0x66, 0xab, 0x2a, 0xc8, 0x75, 0x4c, 0x6f, 0x87, 0x55, 0x4d, 0x9e, 0xb1, - 0x8d, 0xbc, 0x67, 0x9b, 0xb6, 0x63, 0x5f, 0xdd, 0xb5, 0x9e, 0x1d, 0xdc, 0x67, 0x2c, 0xa4, 0x61, - 0xca, 0xb7, 0x91, 0x8d, 0x5c, 0xd3, 0x43, 0xf5, 0xfd, 0x6d, 0x32, 0xc7, 0x9a, 0xd4, 0xf9, 0xa4, - 0xc4, 0xf2, 0x8f, 0x29, 0x8e, 0x96, 0xff, 0x2d, 0xab, 0x8d, 0x48, 0x54, 0x2d, 0x26, 0xff, 0xfe, - 0x7b, 0x22, 0xf9, 0xef, 0x53, 0x45, 0xfa, 0x68, 0x7c, 0x37, 0x0b, 0x66, 0xea, 0x58, 0xe0, 0xea, - 0x7b, 0xbb, 0xbb, 0xa6, 0x7b, 0x15, 0xde, 0x1c, 0xa2, 0xc2, 0x89, 0x66, 0x46, 0xf4, 0x4b, 0xf9, - 0x03, 0xe9, 0xab, 0xbc, 0x99, 0x6a, 0x73, 0x35, 0x24, 0xd6, 0x83, 0x27, 0x81, 0x3c, 0x16, 0x6f, - 0xdf, 0xe3, 0x32, 0x56, 0x11, 0x68, 0x4e, 0xc9, 0xe8, 0x63, 0x03, 0x69, 0x1b, 0x43, 0xe4, 0x93, - 0x2c, 0x38, 0x5e, 0xf7, 0xcc, 0xe6, 0xa5, 0x15, 0xc7, 0x75, 0xf6, 0x3c, 0xcb, 0x46, 0x5d, 0xf8, - 0x98, 0x10, 0x01, 0x5f, 0xfe, 0x33, 0xa1, 0xfc, 0xc3, 0x7f, 0xcd, 0xc8, 0x8e, 0xa2, 0x41, 0xb7, - 0xca, 0x17, 0x1f, 0x11, 0x4c, 0x4c, 0x6e, 0x5c, 0x94, 0x29, 0x71, 0x2c, 0xa7, 0x24, 0x8a, 0xda, - 0x95, 0x8e, 0xe3, 0x7a, 0x6b, 0x4e, 0xd3, 0x6c, 0x77, 0x3d, 0xc7, 0x45, 0xb0, 0x16, 0xcb, 0x35, - 0xdc, 0xc3, 0xb4, 0x9c, 0x66, 0x38, 0x38, 0xb2, 0x37, 0x5e, 0xec, 0x14, 0x51, 0xc6, 0x3f, 0x2c, - 0xbd, 0xcb, 0x48, 0xb9, 0xd2, 0x4b, 0x51, 0x84, 0x9c, 0xf7, 0xeb, 0xd2, 0x92, 0x1d, 0x6c, 0x91, - 0xdb, 0x79, 0x94, 0x22, 0x6a, 0x0c, 0x4b, 0xe5, 0x59, 0x30, 0x5b, 0xdf, 0xbb, 0x18, 0x14, 0xd2, - 0xe5, 0x8d, 0x90, 0x57, 0x4b, 0x47, 0x14, 0x61, 0x82, 0xc7, 0x17, 0x14, 0xc1, 0xdf, 0x5b, 0xc0, - 0x6c, 0x97, 0xcf, 0xc6, 0xf0, 0x16, 0x13, 0x25, 0x23, 0x89, 0x0c, 0xae, 0x35, 0x7d, 0x06, 0xbe, - 0x2b, 0x0b, 0x66, 0x6b, 0x1d, 0x64, 0xa3, 0x16, 0xf5, 0x82, 0x14, 0x18, 0xf8, 0xd2, 0x84, 0x0c, - 0x14, 0x0a, 0x8a, 0x60, 0x60, 0xe8, 0xb1, 0xbc, 0xe4, 0x33, 0x2f, 0x4c, 0x48, 0xc4, 0xb8, 0xb8, - 0xda, 0xd2, 0x67, 0xdc, 0x17, 0xb3, 0x60, 0x5a, 0xdf, 0xb3, 0x37, 0x5c, 0x07, 0x8f, 0xc6, 0x2e, - 0xbc, 0x2f, 0xec, 0x20, 0xee, 0x00, 0x27, 0x5a, 0x7b, 0x2e, 0x59, 0x7f, 0xaa, 0xd8, 0x75, 0xd4, - 0x74, 0xec, 0x56, 0x97, 0xb4, 0x23, 0xaf, 0x1f, 0xfc, 0x70, 0x4f, 0xee, 0x91, 0xbf, 0x53, 0x32, - 0xf0, 0xe7, 0xa4, 0xc3, 0x12, 0xd1, 0xc6, 0x73, 0x55, 0xcb, 0xf7, 0x04, 0x92, 0xc1, 0x87, 0x06, - 0xd5, 0x90, 0x3e, 0x73, 0x3f, 0x98, 0x05, 0x6a, 0xa9, 0xd9, 0x74, 0xf6, 0x6c, 0xaf, 0x8e, 0xda, - 0xa8, 0xe9, 0x19, 0xae, 0xd9, 0x44, 0xf0, 0x78, 0xc0, 0x63, 0xc6, 0xb5, 0x97, 0x4a, 0xef, 0x2f, - 0xd2, 0x36, 0x1d, 0x2c, 0x33, 0x01, 0xf3, 0xe4, 0x76, 0x11, 0x25, 0x2b, 0x1a, 0xc3, 0x3d, 0x3b, - 0x59, 0x90, 0xdb, 0xb0, 0xec, 0x6d, 0x3e, 0x5a, 0xd3, 0x49, 0x6c, 0xeb, 0xb4, 0xd0, 0x15, 0x26, - 0x8d, 0xf4, 0x45, 0xbd, 0x13, 0x9c, 0xb4, 0xf7, 0x76, 0x2f, 0x22, 0xb7, 0xb6, 0x45, 0x46, 0x82, - 0xae, 0xe1, 0xd4, 0x91, 0x4d, 0x0d, 0xa5, 0xbc, 0xde, 0xf7, 0x9b, 0x68, 0x26, 0x48, 0x18, 0xb8, - 0x98, 0x92, 0x08, 0x5e, 0x07, 0x44, 0x65, 0x39, 0xa2, 0x12, 0x99, 0xb6, 0x7d, 0x0a, 0x4f, 0x9f, - 0xbf, 0x5f, 0xcb, 0x82, 0x89, 0x75, 0xe4, 0xb9, 0x56, 0xb3, 0x0b, 0x3f, 0x8f, 0x87, 0x21, 0xe4, - 0x6d, 0x98, 0xae, 0xb9, 0x8b, 0x3c, 0xe4, 0x76, 0xa1, 0x16, 0x32, 0x1d, 0x82, 0xc9, 0x4e, 0xdb, - 0xf4, 0xb6, 0x1c, 0x77, 0x97, 0xd9, 0x0c, 0xc1, 0x3b, 0xb6, 0x0f, 0xf6, 0x91, 0xdb, 0x0d, 0xc9, - 0xf2, 0x5f, 0x99, 0x80, 0xcb, 0x5b, 0x63, 0x8c, 0x94, 0x05, 0x81, 0x8c, 0x43, 0x59, 0x63, 0x32, - 0x25, 0x8e, 0xe5, 0x2e, 0x19, 0x65, 0xcd, 0xd9, 0x86, 0x2f, 0x57, 0x40, 0x8e, 0x48, 0xde, 0x1b, - 0x33, 0xc2, 0x14, 0x62, 0x17, 0x75, 0xbb, 0xe6, 0x36, 0xf2, 0xa7, 0x10, 0xec, 0x55, 0xbd, 0x1b, - 0xe4, 0xdb, 0x68, 0x1f, 0xb5, 0x09, 0x19, 0x73, 0x77, 0xde, 0x2c, 0xb4, 0x6c, 0xcd, 0xd9, 0x5e, - 0xc0, 0x65, 0x2d, 0xb0, 0x72, 0x16, 0xd6, 0x70, 0x56, 0x9d, 0xfe, 0x71, 0xf6, 0x99, 0x20, 0x4f, - 0xde, 0xd5, 0x29, 0x90, 0x5f, 0xd2, 0x16, 0x37, 0x57, 0x8a, 0xc7, 0xf0, 0xa3, 0x4f, 0xdf, 0x14, - 0xc8, 0x2f, 0x97, 0x8c, 0xd2, 0x5a, 0x31, 0x8b, 0xdb, 0x51, 0xa9, 0x2e, 0xd7, 0x8a, 0x0a, 0x4e, - 0xdc, 0x28, 0x55, 0x2b, 0xe5, 0x62, 0x4e, 0x9d, 0x06, 0x13, 0x17, 0x4a, 0x7a, 0xb5, 0x52, 0x5d, - 0x29, 0xe6, 0xe1, 0xdf, 0xf2, 0xf8, 0xdd, 0x23, 0xe2, 0x77, 0x4b, 0x14, 0x4d, 0xfd, 0x20, 0xfb, - 0xd5, 0x00, 0xb2, 0xfb, 0x04, 0xc8, 0x7e, 0x50, 0xa6, 0x90, 0x31, 0xa0, 0x94, 0x05, 0x13, 0x1b, - 0xae, 0xd3, 0x44, 0xdd, 0x2e, 0xfc, 0xe5, 0x2c, 0x28, 0x94, 0x4d, 0xbb, 0x89, 0xda, 0xf0, 0xba, - 0x10, 0x2a, 0xea, 0x0b, 0x94, 0x09, 0x8e, 0x03, 0xfc, 0x23, 0xcf, 0x99, 0x07, 0x44, 0xce, 0xdc, - 0x2e, 0x34, 0x8a, 0x95, 0xbb, 0x40, 0xcb, 0x8c, 0xe0, 0xcf, 0x6b, 0x02, 0xfe, 0x94, 0x05, 0xfe, - 0x9c, 0x93, 0x2f, 0x2a, 0x7d, 0x2e, 0x7d, 0x2b, 0x03, 0x4e, 0xae, 0x20, 0x1b, 0xb9, 0x56, 0x93, - 0x12, 0xef, 0xb7, 0xff, 0x3e, 0xb1, 0xfd, 0x3f, 0x20, 0x10, 0xdd, 0xef, 0x0f, 0xb1, 0xf1, 0xaf, - 0x0a, 0x1a, 0xff, 0x80, 0xd0, 0xf8, 0x3b, 0x24, 0xcb, 0x19, 0xc3, 0xc5, 0xb1, 0x53, 0x60, 0xa6, - 0xea, 0x78, 0xd6, 0x96, 0xd5, 0xa4, 0x1b, 0xc7, 0x2f, 0x53, 0x40, 0x6e, 0xcd, 0xea, 0x7a, 0xfc, - 0x09, 0xf4, 0x9b, 0xc0, 0xb4, 0x65, 0x37, 0xdb, 0x7b, 0x2d, 0xa4, 0x23, 0x93, 0xca, 0xca, 0xa4, - 0xce, 0x27, 0x85, 0xeb, 0xf1, 0x98, 0x2c, 0xc5, 0x5f, 0x8f, 0xff, 0x94, 0xb4, 0xed, 0xc4, 0x93, - 0x40, 0xce, 0x77, 0x47, 0x0c, 0x49, 0x25, 0x30, 0x6b, 0x73, 0x59, 0xfd, 0x23, 0xe7, 0xbd, 0x11, - 0x9b, 0xf9, 0xe2, 0x74, 0xf1, 0x0f, 0xf8, 0x1e, 0x29, 0x53, 0x6b, 0x10, 0x41, 0xc9, 0x90, 0x59, - 0x4e, 0x8e, 0x8c, 0xaa, 0x82, 0xb9, 0x4a, 0xd5, 0xd0, 0xf4, 0x6a, 0x69, 0x8d, 0x65, 0x51, 0xe0, - 0x77, 0xb3, 0x20, 0xaf, 0xa3, 0x4e, 0xfb, 0x2a, 0x1f, 0x92, 0x93, 0x79, 0x77, 0x65, 0x02, 0xef, - 0x2e, 0x75, 0x19, 0x00, 0xb3, 0x89, 0x2b, 0x26, 0x77, 0x8f, 0x64, 0xfb, 0x06, 0x8a, 0x13, 0x1a, - 0x58, 0x0a, 0x72, 0xeb, 0xdc, 0x9f, 0xf0, 0x05, 0xd2, 0xcb, 0x3d, 0x42, 0x69, 0x84, 0xc2, 0x88, - 0xee, 0xe0, 0xbd, 0x52, 0x2b, 0x34, 0x03, 0x8b, 0x3b, 0x1a, 0xf6, 0x7f, 0x39, 0x0b, 0x72, 0x06, - 0x9e, 0x7f, 0x71, 0x53, 0xb1, 0x4f, 0x0e, 0x27, 0xe3, 0xb8, 0x98, 0x08, 0x19, 0xbf, 0x1f, 0xcc, - 0xf0, 0x12, 0xcb, 0xf6, 0x37, 0x62, 0x45, 0x5c, 0xf8, 0x61, 0x18, 0x09, 0xef, 0x43, 0xce, 0xd1, - 0xb0, 0xf8, 0x2b, 0xb7, 0x03, 0xb0, 0x8e, 0xb0, 0x5d, 0xdb, 0xdd, 0xb1, 0x3a, 0xf0, 0xbf, 0x29, - 0x60, 0x6a, 0x05, 0x79, 0x75, 0xcf, 0xf4, 0xf6, 0xba, 0x3d, 0x6b, 0x94, 0xb6, 0x53, 0x36, 0x9b, - 0x3b, 0x88, 0x75, 0x47, 0xfe, 0x2b, 0x7c, 0x87, 0x22, 0xbb, 0x09, 0x18, 0xd6, 0xb3, 0x10, 0xd4, - 0x11, 0x81, 0xc9, 0x13, 0x40, 0xae, 0x65, 0x7a, 0x26, 0xc3, 0xe2, 0xba, 0x1e, 0x2c, 0xc2, 0x82, - 0x74, 0x92, 0x0d, 0xfe, 0x76, 0x56, 0x66, 0x17, 0x50, 0xa2, 0xfe, 0x64, 0x20, 0xbc, 0x27, 0x33, - 0x04, 0x0a, 0x27, 0xc0, 0x6c, 0xb5, 0x66, 0x34, 0xd6, 0x6a, 0x2b, 0x2b, 0x1a, 0x4e, 0x2d, 0x2a, - 0xea, 0x69, 0xa0, 0x6e, 0x94, 0x1e, 0x5a, 0xd7, 0xaa, 0x46, 0xa3, 0x5a, 0x5b, 0xd2, 0xd8, 0x9f, - 0x39, 0xf5, 0x38, 0x98, 0x2e, 0x97, 0xca, 0xab, 0x7e, 0x42, 0x5e, 0x9d, 0x07, 0x27, 0xd7, 0xb5, - 0xf5, 0x45, 0x4d, 0xaf, 0xaf, 0x56, 0x36, 0x1a, 0xb8, 0x98, 0xe5, 0xda, 0x66, 0x75, 0xa9, 0x58, - 0x50, 0x21, 0x38, 0xcd, 0x7d, 0xb9, 0xa0, 0xd7, 0xaa, 0x2b, 0x8d, 0xba, 0x51, 0x32, 0xb4, 0xe2, - 0x84, 0x7a, 0x0d, 0x38, 0x5e, 0x2e, 0x55, 0x49, 0xf6, 0x72, 0xad, 0x5a, 0xd5, 0xca, 0x46, 0x71, - 0x12, 0xfe, 0x6b, 0x0e, 0x4c, 0x57, 0xba, 0x55, 0x73, 0x17, 0x9d, 0x37, 0xdb, 0x56, 0x0b, 0xfe, - 0x1c, 0x67, 0x4d, 0xde, 0x02, 0x66, 0x5d, 0xfa, 0x88, 0x5a, 0x86, 0x85, 0x28, 0x9a, 0xb3, 0xba, - 0x98, 0xa8, 0x9e, 0x06, 0x05, 0x9b, 0x14, 0xc0, 0x58, 0xc3, 0xde, 0xd4, 0x45, 0x00, 0xe8, 0x93, - 0x11, 0xde, 0x82, 0x77, 0xb6, 0x57, 0x9b, 0xcc, 0x5d, 0xd4, 0x45, 0xee, 0xbe, 0xd5, 0x44, 0x7e, - 0x4e, 0x9d, 0xfb, 0x0b, 0x7e, 0x45, 0x91, 0x5d, 0x14, 0xe4, 0x40, 0xe5, 0x9a, 0x13, 0xd1, 0x1b, - 0xfe, 0xac, 0x22, 0xb3, 0xa4, 0x27, 0x55, 0x64, 0x32, 0x49, 0x79, 0x51, 0x76, 0x08, 0x49, 0x99, - 0x05, 0x53, 0x46, 0xad, 0xd6, 0xa8, 0xaf, 0xd6, 0x74, 0xa3, 0xa8, 0xa8, 0x33, 0x60, 0x12, 0xbf, - 0xae, 0xd5, 0xaa, 0x2b, 0xc5, 0x9c, 0x7a, 0x0a, 0x9c, 0x58, 0x2d, 0xd5, 0x1b, 0x95, 0xea, 0xf9, - 0xd2, 0x5a, 0x65, 0xa9, 0x51, 0x5e, 0x2d, 0xe9, 0xf5, 0x62, 0x5e, 0xbd, 0x0e, 0x9c, 0x32, 0x2a, - 0x9a, 0xde, 0x58, 0xd6, 0x4a, 0xc6, 0xa6, 0xae, 0xd5, 0x1b, 0xd5, 0x5a, 0xa3, 0x5a, 0x5a, 0xd7, - 0x8a, 0x05, 0xac, 0xfe, 0xe4, 0x53, 0x28, 0x36, 0x13, 0x07, 0x85, 0x71, 0x32, 0x42, 0x18, 0xa7, - 0x7a, 0x85, 0x11, 0xf0, 0x62, 0xa5, 0x6b, 0x75, 0x4d, 0x3f, 0xaf, 0x15, 0xa7, 0xfb, 0xc9, 0xda, - 0x8c, 0x7a, 0x12, 0x14, 0x31, 0x0d, 0x8d, 0x4a, 0xdd, 0xcf, 0xb9, 0x54, 0x9c, 0x85, 0x1f, 0x2b, - 0x80, 0xd3, 0x3a, 0xda, 0xb6, 0xba, 0x1e, 0x72, 0x37, 0xcc, 0xab, 0xbb, 0xc8, 0xf6, 0xfc, 0x4e, - 0xfe, 0x7f, 0x27, 0x16, 0xc6, 0x75, 0x30, 0xdb, 0xa1, 0x65, 0xac, 0x23, 0x6f, 0xc7, 0x69, 0xb1, - 0x51, 0xf8, 0x07, 0x22, 0x7b, 0x8e, 0x85, 0x0d, 0x3e, 0xbb, 0x2e, 0xfe, 0xcd, 0xc9, 0xb6, 0x12, - 0x23, 0xdb, 0xb9, 0x61, 0x64, 0x5b, 0xbd, 0x01, 0x4c, 0xed, 0x75, 0x91, 0xab, 0xed, 0x9a, 0x56, - 0xdb, 0xbf, 0xc5, 0x2c, 0x48, 0x80, 0x6f, 0xcd, 0xc9, 0xba, 0x99, 0x72, 0x6d, 0xe9, 0xcf, 0xc6, - 0x88, 0xbe, 0xf5, 0x0c, 0x00, 0xac, 0xb1, 0x9b, 0x6e, 0x9b, 0x09, 0x2b, 0x97, 0x82, 0xe9, 0xbb, - 0x68, 0xb5, 0xdb, 0x96, 0xbd, 0x1d, 0x2c, 0xd6, 0x87, 0x09, 0xf0, 0x45, 0x8a, 0x8c, 0xdb, 0x69, - 0x52, 0xda, 0x92, 0x69, 0xd3, 0x0b, 0xb2, 0x63, 0xee, 0x77, 0x0f, 0xaa, 0x4e, 0x41, 0x2d, 0x82, - 0x19, 0x92, 0xc6, 0x34, 0xb0, 0x38, 0x81, 0xfb, 0x60, 0xbf, 0xb8, 0x75, 0xcd, 0x58, 0xad, 0x2d, - 0x05, 0xdf, 0x26, 0x71, 0x91, 0x98, 0x98, 0x52, 0xf5, 0x21, 0xa2, 0x8d, 0x53, 0xea, 0x63, 0xc0, - 0x75, 0x5c, 0x87, 0x5d, 0x5a, 0xd3, 0xb5, 0xd2, 0xd2, 0x43, 0x0d, 0xed, 0x59, 0x95, 0xba, 0x51, - 0x17, 0x95, 0xcb, 0xd7, 0xa3, 0x69, 0x4c, 0xaf, 0xb6, 0x5e, 0xaa, 0xac, 0xb1, 0xfe, 0x7d, 0xb9, - 0xa6, 0xaf, 0x97, 0x8c, 0xe2, 0x0c, 0x7c, 0xb9, 0x02, 0x8a, 0x2b, 0xc8, 0xdb, 0x70, 0x5c, 0xcf, - 0x6c, 0xaf, 0x59, 0xf6, 0xa5, 0x4d, 0xb7, 0xcd, 0xdb, 0x4c, 0xdf, 0x91, 0x3e, 0x5b, 0x2b, 0x0e, - 0x91, 0x42, 0x81, 0xd1, 0xcb, 0xd8, 0x1d, 0x92, 0x2d, 0x14, 0xa6, 0x30, 0x01, 0x3e, 0x27, 0x2b, - 0x73, 0x96, 0x56, 0xbe, 0xd6, 0x64, 0x72, 0xf2, 0xdc, 0x71, 0x8f, 0xcf, 0x7d, 0x50, 0x2b, 0xc0, - 0x47, 0x72, 0x60, 0x72, 0xd9, 0xb2, 0xcd, 0xb6, 0xf5, 0x6c, 0x21, 0x40, 0x5c, 0xd8, 0xc7, 0x64, - 0x62, 0xfa, 0x98, 0xec, 0x50, 0xe3, 0xe7, 0x2f, 0x29, 0xb2, 0x1b, 0x16, 0x1c, 0xef, 0x7d, 0x22, - 0x23, 0x06, 0xcf, 0xdf, 0xcf, 0xca, 0x6c, 0x49, 0x0c, 0x2e, 0x2f, 0x19, 0x86, 0x9f, 0xf8, 0xfe, - 0xb0, 0xb1, 0x7a, 0xf4, 0x7b, 0xb2, 0x9f, 0x28, 0x4c, 0xc1, 0x3f, 0x53, 0x00, 0x5c, 0x41, 0xde, - 0x79, 0xe4, 0x06, 0x53, 0x01, 0xd2, 0xeb, 0x33, 0x7b, 0x9b, 0x53, 0xd9, 0x37, 0xf2, 0x00, 0x5e, - 0x10, 0x01, 0x2c, 0xc5, 0x28, 0x4f, 0x44, 0xd1, 0x11, 0xca, 0x5b, 0x01, 0x85, 0x2e, 0xf9, 0xce, - 0xc4, 0xec, 0x49, 0xd1, 0xc3, 0x25, 0x29, 0x8c, 0x2f, 0x9d, 0x16, 0xac, 0xb3, 0x02, 0xe0, 0xb7, - 0x83, 0x49, 0xd0, 0x8f, 0x08, 0xd2, 0xb1, 0x7c, 0x68, 0x62, 0x93, 0xc9, 0x8b, 0x9b, 0xae, 0xb8, - 0xf4, 0xb3, 0x6f, 0xe0, 0x17, 0x72, 0xe0, 0x64, 0xbf, 0xe6, 0xf0, 0xf7, 0xc8, 0x9d, 0x04, 0x79, - 0x44, 0x46, 0x7c, 0xaa, 0xec, 0xf4, 0x45, 0x7d, 0x32, 0x38, 0xc5, 0x36, 0x4c, 0x2f, 0x22, 0xc3, - 0xa9, 0xa2, 0xcb, 0xdd, 0x36, 0xf2, 0x3c, 0xe4, 0x92, 0x96, 0x4d, 0xea, 0xfd, 0x3f, 0xc2, 0xbf, - 0x57, 0x64, 0x5d, 0xd3, 0x07, 0xf0, 0x3b, 0x42, 0xd3, 0x7f, 0x46, 0x91, 0x71, 0x36, 0x4f, 0x56, - 0x76, 0x32, 0x14, 0x9f, 0x3f, 0xee, 0x11, 0xbe, 0xff, 0xd0, 0x4a, 0x74, 0x9e, 0xa6, 0xfb, 0x23, - 0xf4, 0x79, 0x4d, 0xaf, 0x2c, 0x57, 0x34, 0x3c, 0xde, 0x9f, 0x02, 0x27, 0xc2, 0x6f, 0x4b, 0x0f, - 0x35, 0xea, 0x5a, 0xd5, 0x28, 0x4e, 0xe2, 0x0e, 0x84, 0x26, 0x2f, 0x97, 0x2a, 0x6b, 0xda, 0x52, - 0xc3, 0xa8, 0xe1, 0x2f, 0x4b, 0xc3, 0x8d, 0xf9, 0xf0, 0x79, 0x39, 0x70, 0x9c, 0xf0, 0xf6, 0x2a, - 0xe1, 0x2a, 0x66, 0x4a, 0x8f, 0xe7, 0x4a, 0x00, 0xd0, 0x14, 0x65, 0x2f, 0xfc, 0x8c, 0xf4, 0x1d, - 0x61, 0x1c, 0x84, 0x3d, 0x75, 0x44, 0x48, 0xc6, 0xb7, 0xb2, 0x32, 0xe7, 0x3d, 0xa5, 0x8b, 0x4d, - 0x26, 0x14, 0xff, 0x32, 0xee, 0xa1, 0x20, 0x1a, 0x7c, 0x62, 0xfe, 0x95, 0xc9, 0xcf, 0xcf, 0xda, - 0xa8, 0xe8, 0x44, 0x1c, 0xe6, 0x00, 0x20, 0x29, 0x44, 0x82, 0xa8, 0x1c, 0xf4, 0x1d, 0x48, 0xa2, - 0xe4, 0xa0, 0x54, 0x36, 0x2a, 0xe7, 0xb5, 0x28, 0x39, 0xf8, 0xb4, 0x02, 0x26, 0x57, 0x90, 0x87, - 0x27, 0x3b, 0x5d, 0xf8, 0x74, 0x89, 0x85, 0x19, 0x6c, 0x5f, 0x90, 0xcb, 0x91, 0x83, 0xf9, 0x39, - 0x7d, 0x83, 0x3f, 0x3d, 0x8c, 0x6d, 0xe0, 0x57, 0x1d, 0x31, 0x90, 0x3c, 0x15, 0xe4, 0x3d, 0xfc, - 0x99, 0xad, 0x0f, 0x3f, 0x36, 0x72, 0x1c, 0xc1, 0x85, 0x2c, 0x99, 0x9e, 0xa9, 0xd3, 0xfc, 0xdc, - 0xb0, 0x21, 0x69, 0x54, 0x44, 0x10, 0xf2, 0xfd, 0x68, 0x18, 0xfe, 0xad, 0x02, 0x4e, 0x51, 0xfd, - 0x28, 0x75, 0x3a, 0x75, 0xcf, 0x71, 0x91, 0x8e, 0x9a, 0xc8, 0xea, 0x78, 0x3d, 0x0b, 0x6f, 0x2e, - 0x4d, 0xf5, 0x77, 0xf6, 0xd8, 0x2b, 0x7c, 0xbd, 0x22, 0x1b, 0xd1, 0xf0, 0x80, 0x3e, 0xf6, 0xd4, - 0x17, 0xa1, 0xec, 0x1f, 0xcd, 0xca, 0xc4, 0x28, 0x4c, 0x58, 0x78, 0x32, 0xa0, 0x3e, 0x74, 0x04, - 0x40, 0xf9, 0x4b, 0x2a, 0xba, 0x56, 0xd6, 0x2a, 0x1b, 0x78, 0x10, 0xb8, 0x11, 0x5c, 0xbf, 0xb1, - 0xa9, 0x97, 0x57, 0x4b, 0x75, 0xad, 0xa1, 0x6b, 0x2b, 0x95, 0xba, 0xa1, 0x97, 0x8c, 0x4a, 0xcd, - 0x27, 0x60, 0x42, 0xbd, 0x01, 0xcc, 0xd7, 0x37, 0x17, 0xeb, 0x65, 0xbd, 0xb2, 0x41, 0xd2, 0x75, - 0xad, 0xaa, 0x5d, 0x60, 0x5f, 0x27, 0xe1, 0xfb, 0x8b, 0x60, 0x1a, 0x5b, 0xe6, 0x75, 0x6a, 0xb0, - 0xc3, 0x6f, 0xe4, 0xc0, 0xb4, 0x8e, 0xba, 0x4e, 0x7b, 0x9f, 0x18, 0xef, 0xe3, 0x9a, 0x13, 0x7c, - 0x53, 0x91, 0x3d, 0x0d, 0xc5, 0x11, 0xbb, 0xc0, 0x11, 0x1a, 0x3d, 0x03, 0x34, 0xfd, 0xe8, 0xc0, - 0xcc, 0x6e, 0x09, 0x13, 0xd4, 0x05, 0xa0, 0x3a, 0x97, 0x6d, 0xe4, 0xd6, 0x9b, 0x97, 0x35, 0x6f, - 0xa7, 0xd4, 0x6a, 0xb9, 0xa8, 0xdb, 0x65, 0xcb, 0x0a, 0x7d, 0xbe, 0xa8, 0xb7, 0x81, 0xe3, 0x24, - 0x95, 0xcb, 0x4c, 0x8f, 0x6e, 0xf6, 0x26, 0x07, 0x39, 0x4b, 0xf6, 0x55, 0x3f, 0x67, 0x9e, 0xcb, - 0x19, 0x26, 0xf3, 0xce, 0x87, 0x05, 0xd1, 0xe7, 0xf5, 0x26, 0x30, 0x6d, 0x9b, 0xbb, 0x48, 0xbb, - 0xd2, 0xb1, 0x5c, 0xd4, 0x9d, 0x9f, 0x20, 0xbb, 0x69, 0x7c, 0x12, 0xfc, 0x7d, 0xa9, 0xd3, 0x5b, - 0x72, 0x1c, 0x4b, 0x26, 0xfb, 0x2b, 0x43, 0x88, 0x7e, 0x9f, 0x7e, 0x46, 0x81, 0xef, 0x57, 0xc0, - 0x0c, 0x23, 0xaa, 0x64, 0x5f, 0xad, 0xb4, 0xe0, 0x8d, 0x82, 0x59, 0x6a, 0xe2, 0x34, 0xdf, 0x2c, - 0x25, 0x2f, 0xf0, 0xe7, 0x15, 0x59, 0x77, 0xa2, 0x3e, 0x0d, 0x27, 0x75, 0x44, 0xbb, 0xb8, 0x6c, - 0x39, 0x7b, 0xcc, 0xa5, 0x66, 0x52, 0xa7, 0x2f, 0x69, 0xae, 0xb6, 0xc1, 0x0f, 0x4a, 0x39, 0x2b, - 0x49, 0x36, 0xe3, 0x88, 0x00, 0xfc, 0xb8, 0x02, 0xe6, 0x18, 0x55, 0x75, 0xe6, 0x35, 0x2b, 0xe5, - 0x3e, 0xfe, 0x0b, 0xd2, 0x86, 0x60, 0x9f, 0xf6, 0xb3, 0x9a, 0x1e, 0x35, 0x40, 0x7e, 0x58, 0x2a, - 0xd4, 0x88, 0x74, 0x43, 0x8e, 0x08, 0xca, 0xb7, 0xe5, 0xc0, 0xf4, 0x66, 0x17, 0xb9, 0xcc, 0x2f, - 0x0e, 0xbe, 0x26, 0x07, 0x94, 0x15, 0x24, 0xec, 0x70, 0xbe, 0x30, 0x27, 0xbb, 0x5a, 0xc7, 0x37, - 0x96, 0x2b, 0x14, 0xdb, 0x48, 0x11, 0xb0, 0xdd, 0x0a, 0xe6, 0x28, 0x4b, 0x4b, 0x9e, 0x87, 0x8d, - 0x44, 0xff, 0x10, 0x40, 0x4f, 0xea, 0x28, 0xf6, 0x70, 0x48, 0x5d, 0x38, 0x4b, 0x19, 0xd3, 0xb4, - 0x86, 0xb6, 0x68, 0x20, 0xaa, 0x9c, 0xde, 0x93, 0x4a, 0x2e, 0x6e, 0xee, 0x20, 0xea, 0x0d, 0xca, - 0x65, 0xce, 0x93, 0xcc, 0xfd, 0x3e, 0xc1, 0x6f, 0x48, 0x45, 0xe8, 0x93, 0xe7, 0x4e, 0x32, 0x59, - 0xe8, 0x8c, 0xc6, 0x24, 0x39, 0x09, 0x8a, 0x38, 0x07, 0xd9, 0x18, 0xd1, 0xb5, 0x7a, 0x6d, 0xed, - 0xbc, 0xd6, 0x7f, 0x7d, 0x21, 0x0f, 0x9f, 0xaf, 0x80, 0xa9, 0x45, 0xd7, 0x31, 0x5b, 0x4d, 0xb3, - 0xeb, 0xc1, 0x6f, 0x67, 0xc1, 0xcc, 0x86, 0x79, 0xb5, 0xed, 0x98, 0x2d, 0xe2, 0x89, 0xd8, 0xd3, - 0x17, 0x74, 0xe8, 0x27, 0xbf, 0x2f, 0x60, 0xaf, 0xa2, 0x9b, 0x7d, 0xe0, 0x08, 0x9f, 0x91, 0xb9, - 0x4a, 0x2c, 0xd8, 0x7f, 0xcb, 0xf6, 0x0b, 0xfd, 0xe5, 0xd3, 0xb5, 0xc0, 0xd3, 0x14, 0x61, 0x51, - 0xbe, 0x5f, 0x2e, 0x98, 0x97, 0x4c, 0x91, 0x47, 0xb3, 0x5d, 0xfe, 0xc8, 0x24, 0x28, 0x2c, 0x21, - 0x62, 0xc5, 0xfd, 0x4e, 0x16, 0x4c, 0xb0, 0xcb, 0xf4, 0xe1, 0xdd, 0x82, 0x93, 0x63, 0x8b, 0x64, - 0x08, 0xba, 0xe3, 0xe0, 0x1d, 0x4f, 0xd6, 0xb9, 0xd3, 0x4b, 0xe4, 0x39, 0x81, 0xfb, 0x17, 0xad, - 0x37, 0xe2, 0x02, 0xff, 0x64, 0xee, 0x5f, 0xb1, 0x45, 0xa5, 0xef, 0x04, 0xf5, 0x8e, 0x2c, 0xf3, - 0x79, 0xe2, 0x7a, 0xbd, 0x5f, 0xe3, 0xe5, 0x33, 0xd6, 0x0d, 0x8c, 0x11, 0x1f, 0xe3, 0xb5, 0x74, - 0x17, 0x98, 0xa0, 0x3c, 0xf7, 0xe7, 0xa3, 0xbd, 0x0e, 0x04, 0xb4, 0x08, 0x72, 0x92, 0xc9, 0xcf, - 0x29, 0xe9, 0x3b, 0x16, 0x5d, 0xf9, 0x58, 0x4e, 0xf4, 0xcd, 0x54, 0x91, 0x77, 0xd9, 0x71, 0x2f, - 0xd5, 0x3d, 0xd3, 0x43, 0xf0, 0x5f, 0xb2, 0x40, 0xa9, 0x23, 0x8f, 0x3f, 0x4b, 0x5c, 0x05, 0x27, - 0x68, 0x83, 0x58, 0x46, 0xd2, 0x7f, 0xd3, 0x86, 0xdc, 0xd4, 0x97, 0x09, 0x5c, 0x3e, 0xfd, 0xe0, - 0xaf, 0xf0, 0x97, 0xfb, 0x86, 0x50, 0xc8, 0xf6, 0x99, 0x34, 0x30, 0xce, 0xf0, 0x04, 0x62, 0x01, - 0x8b, 0x90, 0xd3, 0x0f, 0x48, 0x99, 0xd5, 0x72, 0x65, 0x1e, 0x49, 0x57, 0x70, 0x76, 0x02, 0xe4, - 0xb5, 0xdd, 0x8e, 0x77, 0xf5, 0xec, 0xe3, 0xc0, 0x6c, 0xdd, 0x73, 0x91, 0xb9, 0xcb, 0xd9, 0xd4, - 0x9e, 0x73, 0x09, 0xd9, 0xbe, 0x4d, 0x4d, 0x5e, 0xee, 0xb9, 0x1b, 0x4c, 0xd8, 0x4e, 0xc3, 0xdc, - 0xf3, 0x76, 0xd4, 0x1b, 0x0f, 0x5c, 0x7a, 0xbf, 0x4e, 0xbd, 0x75, 0x6b, 0xec, 0x2c, 0xcd, 0x57, - 0xee, 0x25, 0x56, 0x55, 0xc1, 0x76, 0x4a, 0x7b, 0xde, 0xce, 0xe2, 0x0d, 0x1f, 0xff, 0x9b, 0x33, - 0x99, 0x4f, 0xff, 0xcd, 0x99, 0xcc, 0x97, 0xff, 0xe6, 0x4c, 0xe6, 0x17, 0xbe, 0x7a, 0xe6, 0xd8, - 0xa7, 0xbf, 0x7a, 0xe6, 0xd8, 0xe7, 0xbf, 0x7a, 0xe6, 0xd8, 0x8f, 0x64, 0x3b, 0x17, 0x2f, 0x16, - 0x48, 0x29, 0x77, 0xfd, 0x7f, 0x01, 0x00, 0x00, 0xff, 0xff, 0x9f, 0x61, 0xd8, 0xe2, 0x5b, 0xdb, - 0x01, 0x00, + // 18042 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0xfd, 0x7d, 0x9c, 0x24, 0x49, + 0x59, 0x2f, 0x8a, 0x4f, 0x55, 0x56, 0x55, 0x77, 0x47, 0xbf, 0x4c, 0x4d, 0xee, 0xcc, 0x6c, 0x6f, + 0xec, 0x32, 0xbb, 0xcc, 0x2e, 0xcb, 0xba, 0x2c, 0xbd, 0xcb, 0x2e, 0x08, 0xbb, 0xec, 0xb2, 0x5b, + 0x5d, 0x9d, 0xdd, 0x5d, 0x6c, 0x77, 0x55, 0x9b, 0x95, 0x3d, 0xc3, 0xea, 0xcf, 0x5f, 0x9d, 0x9c, + 0xaa, 0xe8, 0xee, 0xdc, 0xa9, 0xce, 0x2c, 0xb3, 0xb2, 0x7b, 0x66, 0xb8, 0x9f, 0x73, 0x8f, 0x88, + 0xc8, 0xfa, 0xc2, 0x41, 0x44, 0x8e, 0x02, 0x02, 0x02, 0x82, 0x07, 0x14, 0x90, 0x77, 0x41, 0x44, + 0x79, 0x59, 0x41, 0x44, 0x44, 0x10, 0x05, 0x94, 0x8f, 0x20, 0xe8, 0xc1, 0x73, 0x45, 0xaf, 0x7e, + 0x8e, 0x70, 0x50, 0xb8, 0xde, 0x4f, 0xbc, 0x64, 0x66, 0x44, 0x75, 0x65, 0x56, 0x64, 0x75, 0x65, + 0xf5, 0xa2, 0xf7, 0xbf, 0xcc, 0xc8, 0xc8, 0x88, 0x27, 0x9e, 0xef, 0xf3, 0x44, 0x3c, 0x11, 0xf1, + 0xc4, 0x13, 0x60, 0xbe, 0x73, 0xe1, 0xf6, 0x8e, 0xeb, 0x78, 0x4e, 0xf7, 0xf6, 0xa6, 0xb3, 0xbb, + 0x6b, 0xda, 0xad, 0xee, 0x02, 0x79, 0x57, 0x27, 0x4c, 0xfb, 0x8a, 0x77, 0xa5, 0x83, 0xe0, 0x4d, + 0x9d, 0x8b, 0xdb, 0xb7, 0xb7, 0xad, 0x0b, 0xb7, 0x77, 0x2e, 0xdc, 0xbe, 0xeb, 0xb4, 0x50, 0xdb, + 0xff, 0x81, 0xbc, 0xb0, 0xec, 0xf0, 0x96, 0xa8, 0x5c, 0x6d, 0xa7, 0x69, 0xb6, 0xbb, 0x9e, 0xe3, + 0x22, 0x96, 0xf3, 0x74, 0x58, 0x25, 0xda, 0x47, 0xb6, 0xe7, 0x97, 0x70, 0xdd, 0xb6, 0xe3, 0x6c, + 0xb7, 0x11, 0xfd, 0x76, 0x61, 0x6f, 0xeb, 0xf6, 0xae, 0xe7, 0xee, 0x35, 0x3d, 0xf6, 0xf5, 0x86, + 0xde, 0xaf, 0x2d, 0xd4, 0x6d, 0xba, 0x56, 0xc7, 0x73, 0x5c, 0x9a, 0xe3, 0xec, 0xdf, 0xfd, 0xe6, + 0x04, 0x50, 0xf4, 0x4e, 0x13, 0x7e, 0x73, 0x02, 0x28, 0xa5, 0x4e, 0x07, 0x3e, 0x9a, 0x05, 0x60, + 0x05, 0x79, 0xe7, 0x90, 0xdb, 0xb5, 0x1c, 0x1b, 0x1e, 0x07, 0x13, 0x3a, 0xfa, 0x91, 0x3d, 0xd4, + 0xf5, 0xee, 0xc9, 0x3d, 0xf2, 0x37, 0x4a, 0x06, 0xbe, 0x21, 0x0b, 0x26, 0x75, 0xd4, 0xed, 0x38, + 0x76, 0x17, 0xa9, 0x0f, 0x80, 0x3c, 0x72, 0x5d, 0xc7, 0x9d, 0xcf, 0xdc, 0x90, 0xb9, 0x65, 0xfa, + 0xce, 0x5b, 0x17, 0x58, 0xf3, 0x17, 0xf4, 0x4e, 0x73, 0xa1, 0xd4, 0xe9, 0x2c, 0x84, 0x25, 0x2d, + 0xf8, 0x3f, 0x2d, 0x68, 0xf8, 0x0f, 0x9d, 0xfe, 0xa8, 0xce, 0x83, 0x89, 0x7d, 0x9a, 0x61, 0x3e, + 0x7b, 0x43, 0xe6, 0x96, 0x29, 0xdd, 0x7f, 0xc5, 0x5f, 0x5a, 0xc8, 0x33, 0xad, 0x76, 0x77, 0x5e, + 0xa1, 0x5f, 0xd8, 0x2b, 0x7c, 0x5d, 0x06, 0xe4, 0x49, 0x21, 0x6a, 0x19, 0xe4, 0x9a, 0x4e, 0x0b, + 0x91, 0xea, 0xe7, 0xee, 0xbc, 0x5d, 0xbe, 0xfa, 0x85, 0xb2, 0xd3, 0x42, 0x3a, 0xf9, 0x59, 0xbd, + 0x01, 0x4c, 0xfb, 0x6c, 0x09, 0xc9, 0xe0, 0x93, 0xce, 0xde, 0x09, 0x72, 0x38, 0xbf, 0x3a, 0x09, + 0x72, 0xd5, 0xcd, 0xb5, 0xb5, 0xe2, 0x31, 0xf5, 0x04, 0x98, 0xdd, 0xac, 0x3e, 0x58, 0xad, 0x9d, + 0xaf, 0x36, 0x34, 0x5d, 0xaf, 0xe9, 0xc5, 0x8c, 0x3a, 0x0b, 0xa6, 0x16, 0x4b, 0x4b, 0x8d, 0x4a, + 0x75, 0x63, 0xd3, 0x28, 0x66, 0xe1, 0xab, 0x15, 0x30, 0x57, 0x47, 0xde, 0x12, 0xda, 0xb7, 0x9a, + 0xa8, 0xee, 0x99, 0x1e, 0x82, 0x2f, 0xce, 0x04, 0xcc, 0x54, 0x37, 0x71, 0xa5, 0xc1, 0x27, 0xd6, + 0x80, 0xbb, 0x0e, 0x34, 0x40, 0x2c, 0x61, 0x81, 0xfd, 0xbd, 0xc0, 0xa5, 0xe9, 0x7c, 0x39, 0x67, + 0x9f, 0x0c, 0xa6, 0xb9, 0x6f, 0xea, 0x1c, 0x00, 0x8b, 0xa5, 0xf2, 0x83, 0x2b, 0x7a, 0x6d, 0xb3, + 0xba, 0x54, 0x3c, 0x86, 0xdf, 0x97, 0x6b, 0xba, 0xc6, 0xde, 0x33, 0xf0, 0xdb, 0x19, 0x0e, 0xcc, + 0x25, 0x11, 0xcc, 0x85, 0xc1, 0xc4, 0xf4, 0x01, 0x14, 0xbe, 0x31, 0x00, 0x67, 0x45, 0x00, 0xe7, + 0xae, 0x64, 0xc5, 0xa5, 0x0f, 0xd0, 0x0b, 0xb2, 0x60, 0xb2, 0xbe, 0xb3, 0xe7, 0xb5, 0x9c, 0x4b, + 0x36, 0x9c, 0x0a, 0x90, 0x81, 0xdf, 0xe0, 0x79, 0xf2, 0x2c, 0x91, 0x27, 0xb7, 0x1c, 0x6c, 0x04, + 0x2b, 0x21, 0x82, 0x1b, 0xbf, 0x1c, 0x70, 0xa3, 0x24, 0x70, 0xe3, 0xc9, 0xb2, 0x05, 0xa5, 0xcf, + 0x87, 0x9f, 0xbd, 0x0b, 0xe4, 0xeb, 0x1d, 0xb3, 0x89, 0xe0, 0x27, 0x15, 0x30, 0xb3, 0x86, 0xcc, + 0x7d, 0x54, 0xea, 0x74, 0x5c, 0x67, 0x1f, 0xc1, 0x72, 0x28, 0xaf, 0xf3, 0x60, 0xa2, 0x8b, 0x33, + 0x55, 0x5a, 0xa4, 0x05, 0x53, 0xba, 0xff, 0xaa, 0x9e, 0x01, 0xc0, 0x6a, 0x21, 0xdb, 0xb3, 0x3c, + 0x0b, 0x75, 0xe7, 0xb3, 0x37, 0x28, 0xb7, 0x4c, 0xe9, 0x5c, 0x0a, 0xfc, 0x66, 0x56, 0x56, 0xc6, + 0x08, 0x15, 0x0b, 0x3c, 0x05, 0x11, 0x5c, 0x7d, 0x7d, 0x56, 0x46, 0xc6, 0x06, 0x16, 0x97, 0x8c, + 0xb7, 0x6f, 0xcd, 0x24, 0x67, 0x2e, 0xce, 0x51, 0xad, 0x35, 0xea, 0x9b, 0xe5, 0xd5, 0x46, 0x7d, + 0xa3, 0x54, 0xd6, 0x8a, 0x48, 0x3d, 0x09, 0x8a, 0xe4, 0xb1, 0x51, 0xa9, 0x37, 0x96, 0xb4, 0x35, + 0xcd, 0xd0, 0x96, 0x8a, 0x5b, 0xaa, 0x0a, 0xe6, 0x74, 0xed, 0x07, 0x36, 0xb5, 0xba, 0xd1, 0x58, + 0x2e, 0x55, 0xd6, 0xb4, 0xa5, 0xe2, 0x36, 0xfe, 0x79, 0xad, 0xb2, 0x5e, 0x31, 0x1a, 0xba, 0x56, + 0x2a, 0xaf, 0x6a, 0x4b, 0xc5, 0x1d, 0xf5, 0x6a, 0x70, 0x55, 0xb5, 0xd6, 0x28, 0x6d, 0x6c, 0xe8, + 0xb5, 0x73, 0x5a, 0x83, 0xfd, 0x51, 0x2f, 0x5a, 0xb4, 0x22, 0xa3, 0x51, 0x5f, 0x2d, 0xe9, 0x5a, + 0x69, 0x71, 0x4d, 0x2b, 0x3e, 0x0c, 0x9f, 0xaf, 0x80, 0xd9, 0x75, 0xf3, 0x22, 0xaa, 0xef, 0x98, + 0x2e, 0x32, 0x2f, 0xb4, 0x11, 0xbc, 0x51, 0x02, 0x4f, 0xf8, 0x49, 0x1e, 0x2f, 0x4d, 0xc4, 0xeb, + 0xf6, 0x3e, 0x0c, 0x16, 0xaa, 0x88, 0x00, 0xec, 0x7f, 0x07, 0x6a, 0xb0, 0x2a, 0x00, 0xf6, 0xd4, + 0x84, 0xe5, 0x25, 0x43, 0xec, 0xc7, 0x1e, 0x03, 0x88, 0xc1, 0x2f, 0x29, 0x60, 0xae, 0x62, 0xef, + 0x5b, 0x1e, 0x5a, 0x41, 0x36, 0x72, 0xf1, 0x38, 0x20, 0x05, 0xc3, 0x1b, 0x14, 0x0e, 0x86, 0x65, + 0x11, 0x86, 0x3b, 0xfa, 0xb0, 0x4d, 0xac, 0x23, 0x62, 0xb4, 0xbd, 0x0e, 0x4c, 0x59, 0x24, 0x5f, + 0xd9, 0x6a, 0x31, 0x8e, 0x85, 0x09, 0xea, 0x4d, 0x60, 0x96, 0xbe, 0x2c, 0x5b, 0x6d, 0xf4, 0x20, + 0xba, 0xc2, 0xc6, 0x5d, 0x31, 0x11, 0xfe, 0x4c, 0xa0, 0x7c, 0x15, 0x01, 0xcb, 0xa7, 0x25, 0x25, + 0x2a, 0x19, 0x98, 0x2f, 0x7b, 0x2c, 0xa8, 0xdf, 0x01, 0x2d, 0xb3, 0xe0, 0x77, 0xb3, 0x60, 0xba, + 0xee, 0x39, 0x1d, 0x2c, 0xb2, 0x96, 0xbd, 0x2d, 0x07, 0xee, 0xc7, 0x79, 0x1d, 0x2b, 0x8b, 0xe0, + 0x3e, 0xb9, 0x0f, 0x1f, 0xb9, 0x0a, 0x22, 0x34, 0xec, 0x9b, 0x81, 0x86, 0x2d, 0x0b, 0xa8, 0xdc, + 0x99, 0xa8, 0xb4, 0xef, 0x41, 0xfd, 0x7a, 0x99, 0x02, 0x8a, 0xbe, 0x98, 0x79, 0xe5, 0x3d, 0xd7, + 0x45, 0xb6, 0x27, 0x07, 0xc2, 0x9f, 0xf3, 0x20, 0xac, 0x8a, 0x20, 0xdc, 0x19, 0x23, 0xcc, 0x7e, + 0x2d, 0x29, 0xea, 0xd8, 0xef, 0x06, 0x68, 0x3e, 0x28, 0xa0, 0xf9, 0xf4, 0xe4, 0x64, 0x25, 0x83, + 0x74, 0x75, 0x08, 0x44, 0x4f, 0x82, 0x22, 0x1e, 0x93, 0xca, 0x46, 0xe5, 0x9c, 0xd6, 0xa8, 0x54, + 0xcf, 0x55, 0x0c, 0xad, 0x88, 0xe0, 0x4b, 0x15, 0x30, 0x43, 0x49, 0xd3, 0xd1, 0xbe, 0x73, 0x51, + 0xb2, 0xd7, 0xfb, 0x52, 0x42, 0x63, 0x81, 0xaf, 0x21, 0x42, 0x33, 0x7e, 0x2a, 0x81, 0xb1, 0x10, + 0x53, 0xdc, 0x63, 0xa9, 0xb7, 0x3a, 0xa0, 0x06, 0xdb, 0x7d, 0xb4, 0xa5, 0x6f, 0x6f, 0xf5, 0xb2, + 0x1c, 0x00, 0xb4, 0x91, 0xe7, 0x2c, 0x74, 0x09, 0xae, 0x87, 0x98, 0x08, 0x62, 0x9b, 0x19, 0x28, + 0xb6, 0xd9, 0x7e, 0x62, 0xfb, 0x5e, 0x7e, 0xcc, 0x5a, 0x14, 0xd1, 0xbb, 0x2d, 0x92, 0xdd, 0x98, + 0x92, 0xe8, 0xd9, 0xa1, 0x2f, 0x28, 0x59, 0xd1, 0xea, 0xbc, 0x0e, 0x4c, 0x91, 0xc7, 0xaa, 0xb9, + 0x8b, 0x98, 0x0e, 0x85, 0x09, 0xea, 0x59, 0x30, 0x43, 0x33, 0x36, 0x1d, 0x1b, 0xb7, 0x27, 0x47, + 0x32, 0x08, 0x69, 0x18, 0xc4, 0xa6, 0x8b, 0x4c, 0xcf, 0x71, 0x49, 0x19, 0x79, 0x0a, 0x22, 0x97, + 0x04, 0xbf, 0x1e, 0x68, 0xa1, 0x26, 0x48, 0xce, 0x53, 0x92, 0x34, 0x25, 0x99, 0xdc, 0xec, 0x0f, + 0xa7, 0x7f, 0x54, 0xeb, 0x1a, 0x18, 0xed, 0x65, 0x32, 0xb5, 0x43, 0xea, 0x69, 0xa0, 0xb2, 0x54, + 0x9c, 0xb7, 0x5c, 0xab, 0x1a, 0x5a, 0xd5, 0x28, 0x6e, 0xf5, 0x95, 0xa8, 0x6d, 0xf8, 0xfa, 0x1c, + 0xc8, 0x3d, 0xdb, 0xb1, 0x6c, 0xf8, 0x82, 0x8c, 0x20, 0x12, 0x36, 0xf2, 0x2e, 0x39, 0xee, 0xc5, + 0x40, 0x51, 0xc3, 0x84, 0x78, 0x6c, 0x42, 0x51, 0x52, 0x06, 0x8a, 0x52, 0xae, 0x9f, 0x28, 0xfd, + 0x1c, 0x2f, 0x4a, 0xf7, 0x8a, 0xa2, 0x74, 0x73, 0x1f, 0xfe, 0x63, 0xe2, 0x23, 0x3a, 0x80, 0x8f, + 0x05, 0x1d, 0xc0, 0xfd, 0x02, 0x8c, 0x4f, 0x92, 0x2b, 0x26, 0x19, 0x80, 0x5f, 0x4c, 0x55, 0xf1, + 0xfb, 0x41, 0xbd, 0x1d, 0x01, 0xf5, 0x4e, 0x9f, 0x3e, 0xc1, 0x3a, 0xd8, 0x75, 0x3c, 0x7c, 0xb0, + 0x9b, 0xb8, 0xa8, 0x9e, 0x02, 0x27, 0x96, 0x2a, 0xcb, 0xcb, 0x9a, 0xae, 0x55, 0x8d, 0x46, 0x55, + 0x33, 0xce, 0xd7, 0xf4, 0x07, 0x8b, 0x6d, 0xf8, 0x3a, 0x05, 0x00, 0xcc, 0xa1, 0xb2, 0x69, 0x37, + 0x51, 0x5b, 0xae, 0x47, 0xff, 0xfb, 0x6c, 0xb2, 0x3e, 0x21, 0x2c, 0x3f, 0x02, 0xce, 0x57, 0x65, + 0xe5, 0xb5, 0x32, 0xb2, 0xb0, 0x64, 0xa0, 0xbe, 0xf9, 0xb1, 0x60, 0x7b, 0x5e, 0x05, 0x8e, 0xfb, + 0xe5, 0xb1, 0xec, 0xfd, 0xa7, 0x7d, 0x6f, 0xcb, 0x81, 0x39, 0x06, 0x8b, 0x3f, 0x8f, 0x7f, 0x24, + 0x23, 0x33, 0x91, 0x87, 0x60, 0x92, 0x4d, 0xdb, 0xfd, 0xee, 0x3d, 0x78, 0x57, 0x57, 0xc0, 0x74, + 0x07, 0xb9, 0xbb, 0x56, 0xb7, 0x6b, 0x39, 0x36, 0x5d, 0x90, 0x9b, 0xbb, 0xf3, 0x09, 0x01, 0xc7, + 0xc9, 0xda, 0xe5, 0xc2, 0x86, 0xe9, 0x7a, 0x56, 0xd3, 0xea, 0x98, 0xb6, 0xb7, 0x11, 0x66, 0xd6, + 0xf9, 0x3f, 0xe1, 0x4b, 0x12, 0x4e, 0x6b, 0xc4, 0x96, 0x44, 0x88, 0xc4, 0x07, 0x12, 0x4c, 0x49, + 0x62, 0x0b, 0x4c, 0x26, 0x16, 0x8f, 0xa6, 0x2a, 0x16, 0x7d, 0xf0, 0xde, 0x56, 0xaf, 0x01, 0xa7, + 0x2a, 0xd5, 0x72, 0x4d, 0xd7, 0xb5, 0xb2, 0xd1, 0xd8, 0xd0, 0xf4, 0xf5, 0x4a, 0xbd, 0x5e, 0xa9, + 0x55, 0xeb, 0x87, 0xd1, 0x76, 0xf8, 0x09, 0x25, 0x90, 0x98, 0x25, 0xd4, 0x6c, 0x5b, 0x36, 0x82, + 0xf7, 0x1f, 0x52, 0x60, 0xc4, 0x55, 0x1f, 0x79, 0x9c, 0x59, 0xfd, 0x11, 0x38, 0xbf, 0x36, 0x39, + 0xce, 0xfd, 0x0b, 0xfc, 0x77, 0xac, 0xfe, 0x5f, 0x52, 0xc0, 0x09, 0x4e, 0x11, 0x75, 0xb4, 0x3b, + 0xb2, 0x95, 0xbc, 0x1f, 0xe3, 0x75, 0xb7, 0x22, 0x62, 0xda, 0xcf, 0x9a, 0x3e, 0x40, 0x46, 0x04, + 0xac, 0x6f, 0x0e, 0x60, 0x5d, 0x13, 0x60, 0x7d, 0xc6, 0x10, 0x65, 0x26, 0x43, 0xf6, 0x37, 0x52, + 0x45, 0xf6, 0x1a, 0x70, 0x6a, 0xa3, 0xa4, 0x1b, 0x95, 0x72, 0x65, 0xa3, 0x84, 0xc7, 0x51, 0x6e, + 0xc8, 0x8e, 0x30, 0xd7, 0x45, 0xd0, 0xfb, 0xe2, 0xfb, 0x3b, 0x39, 0x70, 0x5d, 0xff, 0x8e, 0xb6, + 0xbc, 0x63, 0xda, 0xdb, 0x08, 0x5a, 0x32, 0x50, 0x2f, 0x81, 0x89, 0x26, 0xc9, 0x4e, 0x71, 0xe6, + 0xb7, 0x6e, 0x62, 0xfa, 0x72, 0x5a, 0x83, 0xee, 0xff, 0x0a, 0xdf, 0xc9, 0x0b, 0x84, 0x21, 0x0a, + 0xc4, 0xb3, 0xe2, 0xc1, 0x3b, 0x40, 0x77, 0x84, 0x6c, 0x7c, 0x3a, 0x90, 0x8d, 0xf3, 0x82, 0x6c, + 0x94, 0x0f, 0x57, 0x7c, 0x32, 0x31, 0xf9, 0x83, 0xc7, 0x42, 0x07, 0x10, 0x29, 0x4d, 0x56, 0xf4, + 0xa8, 0xd0, 0xb7, 0xbb, 0x7f, 0x8d, 0x02, 0x0a, 0x4b, 0xa8, 0x8d, 0x64, 0x57, 0x22, 0xff, 0x21, + 0x2b, 0xbb, 0x21, 0x42, 0x61, 0xa0, 0x65, 0x47, 0xaf, 0x8e, 0x78, 0xd6, 0x2e, 0xea, 0x7a, 0xe6, + 0x6e, 0x87, 0xb0, 0x5a, 0xd1, 0xc3, 0x04, 0xf8, 0xe3, 0x59, 0x99, 0xed, 0x92, 0x98, 0x6a, 0xfe, + 0x7d, 0xac, 0x29, 0x7e, 0x75, 0x0e, 0x14, 0xce, 0x9b, 0xed, 0x36, 0xf2, 0xe0, 0xd7, 0xb2, 0xa0, + 0x50, 0xc6, 0x73, 0x52, 0x04, 0x9f, 0x14, 0x82, 0x05, 0xc1, 0xa4, 0xeb, 0x38, 0xde, 0x86, 0xe9, + 0xed, 0x30, 0xb4, 0x82, 0x77, 0xb6, 0x4d, 0xfb, 0xeb, 0x3c, 0x68, 0xf7, 0x8b, 0xa0, 0x7d, 0x9f, + 0xc0, 0x4d, 0x5a, 0xd1, 0x02, 0xad, 0x24, 0x02, 0x35, 0x08, 0x26, 0x77, 0x6d, 0xb4, 0xeb, 0xd8, + 0x56, 0xd3, 0x1f, 0xe9, 0xfd, 0x77, 0xf8, 0xe1, 0x60, 0x96, 0xbc, 0x28, 0x60, 0xb6, 0x20, 0x5d, + 0x4b, 0x32, 0xd0, 0xea, 0x43, 0x60, 0x76, 0x3d, 0xb8, 0x96, 0x42, 0xd0, 0x30, 0x6a, 0x8d, 0xb2, + 0xae, 0x95, 0x0c, 0xad, 0xb1, 0x56, 0x2b, 0x97, 0xd6, 0x1a, 0xba, 0xb6, 0x51, 0x2b, 0x22, 0xf8, + 0x3f, 0xb2, 0x98, 0xb9, 0x4d, 0x67, 0x1f, 0xb9, 0x70, 0x45, 0x8a, 0xcf, 0x71, 0x3c, 0x61, 0x18, + 0xfc, 0x9c, 0xf4, 0x56, 0x39, 0xe3, 0x0e, 0xa3, 0x20, 0xa2, 0x2b, 0xfc, 0x88, 0xd4, 0xb6, 0x77, + 0x6c, 0x51, 0x8f, 0x01, 0x4e, 0xff, 0xaf, 0x2c, 0x98, 0x28, 0x3b, 0xf6, 0x3e, 0x72, 0x3d, 0xde, + 0xca, 0xe4, 0xb9, 0x99, 0x11, 0xb9, 0x89, 0xbb, 0x26, 0x64, 0x7b, 0xae, 0xd3, 0xf1, 0xcd, 0x4c, + 0xff, 0x15, 0xfe, 0x6a, 0x52, 0x0e, 0xb3, 0x9a, 0xa3, 0x97, 0x9b, 0xfa, 0x57, 0x24, 0x90, 0xa7, + 0xf4, 0x28, 0xc0, 0xeb, 0x92, 0xe0, 0xd2, 0x9f, 0x80, 0xf4, 0x77, 0x79, 0xbf, 0xac, 0x80, 0x59, + 0xaa, 0x7c, 0x75, 0x44, 0xc6, 0x45, 0x58, 0xe3, 0x17, 0x7a, 0x7a, 0x98, 0xbf, 0x7a, 0x4c, 0x60, + 0x7f, 0xc1, 0xec, 0x74, 0x82, 0x45, 0xbf, 0xd5, 0x63, 0x3a, 0x7b, 0xa7, 0x62, 0xbe, 0x58, 0x00, + 0x39, 0x73, 0xcf, 0xdb, 0x81, 0xdf, 0x95, 0x36, 0xf9, 0x85, 0xce, 0x80, 0xd1, 0x13, 0x01, 0xc9, + 0x49, 0x90, 0xf7, 0x9c, 0x8b, 0xc8, 0xe7, 0x03, 0x7d, 0xc1, 0x70, 0x98, 0x9d, 0x8e, 0x41, 0x3e, + 0x30, 0x38, 0xfc, 0x77, 0x3c, 0xc2, 0x98, 0xcd, 0xa6, 0xb3, 0x67, 0x7b, 0x15, 0x7f, 0xe1, 0x2f, + 0x4c, 0x80, 0x9f, 0xcf, 0xc8, 0x4c, 0x21, 0x24, 0x08, 0x4c, 0x06, 0xd9, 0x85, 0x21, 0x54, 0x69, + 0x01, 0xdc, 0x5a, 0xda, 0xd8, 0x68, 0x18, 0xb5, 0x07, 0xb5, 0x6a, 0x38, 0xdc, 0x37, 0x2a, 0xd5, + 0x86, 0xb1, 0xaa, 0x35, 0xca, 0x9b, 0x3a, 0x59, 0x9d, 0x29, 0x95, 0xcb, 0xb5, 0xcd, 0xaa, 0x51, + 0x44, 0xf0, 0x2d, 0x59, 0x30, 0x53, 0x6e, 0x3b, 0xdd, 0x00, 0xe1, 0xeb, 0x43, 0x84, 0x03, 0x36, + 0x66, 0x38, 0x36, 0xc2, 0x7f, 0xcd, 0xc8, 0x6e, 0xf5, 0xfa, 0x0c, 0xe1, 0x8a, 0x8f, 0xe8, 0xa5, + 0x7e, 0x55, 0x6a, 0xab, 0x77, 0x70, 0x79, 0xe9, 0xab, 0xc4, 0x67, 0xef, 0x01, 0x13, 0x25, 0x2a, + 0x18, 0xf0, 0x2f, 0x33, 0xa0, 0x50, 0x76, 0xec, 0x2d, 0x6b, 0x5b, 0xbd, 0x19, 0xcc, 0x21, 0xdb, + 0xbc, 0xd0, 0x46, 0x4b, 0xa6, 0x67, 0xee, 0x5b, 0xe8, 0x12, 0x69, 0xc0, 0xa4, 0xde, 0x93, 0x8a, + 0x89, 0x62, 0x29, 0xe8, 0xc2, 0xde, 0x36, 0x21, 0x6a, 0x52, 0xe7, 0x93, 0xd4, 0x67, 0x80, 0xab, + 0xe9, 0xeb, 0x86, 0x8b, 0x5c, 0xd4, 0x46, 0x66, 0x17, 0x61, 0x63, 0xd4, 0x46, 0x6d, 0x22, 0xb4, + 0x93, 0x7a, 0xd4, 0x67, 0xf5, 0x2c, 0x98, 0xa1, 0x9f, 0x88, 0xa9, 0xd3, 0x25, 0x62, 0x3c, 0xa9, + 0x0b, 0x69, 0xea, 0x93, 0x41, 0x1e, 0x5d, 0xf6, 0x5c, 0x73, 0xbe, 0x45, 0xf0, 0xba, 0x7a, 0x81, + 0xfa, 0x7a, 0x2d, 0xf8, 0xbe, 0x5e, 0x0b, 0x75, 0xe2, 0x09, 0xa6, 0xd3, 0x5c, 0xf0, 0x97, 0x26, + 0x03, 0x43, 0xe2, 0xdf, 0xb2, 0xa1, 0x60, 0xa8, 0x20, 0x67, 0x9b, 0xbb, 0x88, 0xc9, 0x05, 0x79, + 0x56, 0x6f, 0x05, 0xc7, 0xcd, 0x7d, 0xd3, 0x33, 0xdd, 0x35, 0xa7, 0x69, 0xb6, 0xc9, 0xe0, 0xe7, + 0x6b, 0x7e, 0xef, 0x07, 0xb2, 0x0e, 0xef, 0x39, 0x2e, 0x22, 0xb9, 0xfc, 0x75, 0x78, 0x3f, 0x01, + 0x97, 0x6e, 0x35, 0x1d, 0x9b, 0xd0, 0xaf, 0xe8, 0xe4, 0x19, 0x73, 0xa5, 0x65, 0x75, 0x71, 0x43, + 0x48, 0x29, 0x55, 0xba, 0xa0, 0x5c, 0xbf, 0x62, 0x37, 0xc9, 0x1a, 0xfc, 0xa4, 0x1e, 0xf5, 0x59, + 0x5d, 0x04, 0xd3, 0x6c, 0xf9, 0x79, 0x1d, 0xcb, 0x55, 0x81, 0xc8, 0xd5, 0x0d, 0xa2, 0x27, 0x0d, + 0xc5, 0x73, 0xa1, 0x1a, 0xe6, 0xd3, 0xf9, 0x9f, 0xd4, 0x07, 0xc0, 0xb5, 0xec, 0xb5, 0xbc, 0xd7, + 0xf5, 0x9c, 0x5d, 0x0a, 0xfa, 0xb2, 0xd5, 0xa6, 0x2d, 0x98, 0x20, 0x2d, 0x88, 0xcb, 0xa2, 0xde, + 0x09, 0x4e, 0x76, 0x5c, 0xb4, 0x85, 0xdc, 0x87, 0xcc, 0xdd, 0xbd, 0xcb, 0x86, 0x6b, 0xda, 0xdd, + 0x8e, 0xe3, 0x7a, 0xf3, 0x93, 0x84, 0xf8, 0xbe, 0xdf, 0x58, 0x47, 0x39, 0x09, 0x0a, 0x94, 0x7d, + 0xf0, 0xc5, 0x79, 0x69, 0x27, 0x3a, 0xd6, 0xa0, 0x58, 0xf3, 0xec, 0x0e, 0x30, 0xc1, 0x7a, 0x38, + 0x02, 0xd4, 0xf4, 0x9d, 0xa7, 0x7b, 0x66, 0x73, 0xac, 0x14, 0xdd, 0xcf, 0xa6, 0xde, 0x05, 0x0a, + 0x4d, 0xd2, 0x2c, 0x82, 0xd9, 0xf4, 0x9d, 0xd7, 0xf6, 0xaf, 0x94, 0x64, 0xd1, 0x59, 0x56, 0xf8, + 0x05, 0x45, 0xca, 0xef, 0x2e, 0x8e, 0xe2, 0x64, 0x5a, 0xfd, 0xf5, 0xec, 0x10, 0xdd, 0xe6, 0x6d, + 0xe0, 0x16, 0xd6, 0x27, 0x32, 0xfb, 0x63, 0xa9, 0xb1, 0xb8, 0xe9, 0x9b, 0xe0, 0xd8, 0x2a, 0xa9, + 0x1b, 0x25, 0x1d, 0xcf, 0x9f, 0x96, 0xb0, 0xe9, 0x7e, 0x2b, 0xb8, 0x79, 0x40, 0x6e, 0xcd, 0x68, + 0x54, 0x4b, 0xeb, 0x5a, 0x71, 0x4b, 0xb4, 0x6d, 0xea, 0x46, 0x6d, 0xa3, 0xa1, 0x6f, 0x56, 0xab, + 0x95, 0xea, 0x0a, 0x2d, 0x0c, 0x9b, 0x84, 0xa7, 0xc3, 0x0c, 0xe7, 0xf5, 0x8a, 0xa1, 0x35, 0xca, + 0xb5, 0xea, 0x72, 0x65, 0xa5, 0x68, 0x0d, 0x32, 0x8c, 0x1e, 0x56, 0x6f, 0x00, 0xd7, 0x09, 0x94, + 0x54, 0x6a, 0x55, 0x3c, 0x9f, 0x28, 0x97, 0xaa, 0x65, 0x0d, 0x4f, 0x1e, 0x2e, 0xaa, 0x10, 0x9c, + 0xa2, 0xc5, 0x35, 0x96, 0x2b, 0x6b, 0xfc, 0x16, 0xc0, 0xc7, 0x33, 0xea, 0x3c, 0xb8, 0x8a, 0xff, + 0x56, 0xa9, 0x9e, 0x2b, 0xad, 0x55, 0x96, 0x8a, 0xbf, 0x9f, 0x51, 0x6f, 0x02, 0xd7, 0x0b, 0x7f, + 0xd1, 0xd5, 0xfc, 0x46, 0x65, 0xa9, 0xb1, 0x5e, 0xa9, 0xaf, 0x97, 0x8c, 0xf2, 0x6a, 0xf1, 0x13, + 0x64, 0xbe, 0x10, 0x18, 0xc0, 0x9c, 0x33, 0xdc, 0xcb, 0xf8, 0x31, 0xbd, 0x24, 0x0a, 0xea, 0x93, + 0xfa, 0xc2, 0x1e, 0x6f, 0xc3, 0x3e, 0x1a, 0x8c, 0x0e, 0x4b, 0x82, 0x08, 0xdd, 0x91, 0xa0, 0xac, + 0x64, 0x32, 0x64, 0x0c, 0x21, 0x42, 0x37, 0x80, 0xeb, 0xaa, 0x1a, 0x45, 0x4a, 0xd7, 0xca, 0xb5, + 0x73, 0x9a, 0xde, 0x38, 0x5f, 0x5a, 0x5b, 0xd3, 0x8c, 0xc6, 0x72, 0x45, 0xaf, 0x1b, 0xc5, 0x2d, + 0xf8, 0xcf, 0xd9, 0x60, 0x0e, 0xcd, 0x71, 0xeb, 0x2f, 0xb3, 0x49, 0xd5, 0x3a, 0x76, 0xae, 0xfc, + 0x34, 0x50, 0xe8, 0x7a, 0xa6, 0xb7, 0xd7, 0x65, 0x5a, 0xfd, 0xb8, 0xfe, 0x5a, 0xbd, 0x50, 0x27, + 0x99, 0x74, 0x96, 0x19, 0x7e, 0x21, 0x93, 0x44, 0x4d, 0x47, 0x30, 0x8d, 0xb6, 0x86, 0x60, 0xf1, + 0x19, 0x00, 0x7d, 0x69, 0xaf, 0xd4, 0x1b, 0xa5, 0x35, 0x5d, 0x2b, 0x2d, 0x3d, 0x14, 0x4c, 0x9e, + 0x91, 0x7a, 0x0a, 0x9c, 0xd8, 0xac, 0xe2, 0xe9, 0x30, 0x51, 0x97, 0x5a, 0xb5, 0xaa, 0x95, 0x31, + 0xdf, 0x7f, 0x9c, 0x2c, 0x55, 0x63, 0x0b, 0x9a, 0xd0, 0x8d, 0xad, 0x1c, 0x8e, 0xff, 0x7f, 0x23, + 0xed, 0xd1, 0x11, 0x4a, 0x18, 0x5f, 0xd6, 0x68, 0x71, 0xf8, 0xbc, 0x94, 0x13, 0x87, 0x14, 0x25, + 0xc9, 0xf0, 0xf8, 0x4f, 0x43, 0xe0, 0x71, 0x0a, 0x9c, 0xe0, 0xf1, 0x20, 0xce, 0x1c, 0xd1, 0x30, + 0x7c, 0x65, 0x12, 0x14, 0xea, 0xa8, 0x8d, 0x9a, 0x1e, 0x7c, 0x1b, 0x67, 0x4c, 0xcc, 0x81, 0x6c, + 0xe0, 0x3c, 0x90, 0xb5, 0x5a, 0xc2, 0xf4, 0x39, 0xdb, 0x33, 0x7d, 0x8e, 0x31, 0x03, 0x94, 0x44, + 0x66, 0x40, 0x2e, 0x05, 0x33, 0x20, 0x3f, 0xbc, 0x19, 0x50, 0x18, 0x64, 0x06, 0xc0, 0x5f, 0x29, + 0x24, 0xed, 0x25, 0x28, 0xab, 0x8f, 0x76, 0xf0, 0xff, 0xfb, 0x5c, 0x92, 0x5e, 0xa5, 0x2f, 0xc5, + 0xc9, 0xa4, 0xf8, 0xbb, 0x4a, 0x0a, 0xcb, 0x0f, 0xea, 0x8d, 0xe0, 0xfa, 0xf0, 0xbd, 0xa1, 0x3d, + 0xa7, 0x52, 0x37, 0xea, 0x64, 0xc4, 0x2f, 0xd7, 0x74, 0x7d, 0x73, 0x83, 0xae, 0xdc, 0x9d, 0x06, + 0x6a, 0x58, 0x8a, 0xbe, 0x59, 0xa5, 0xe3, 0xfb, 0xb6, 0x58, 0xfa, 0x72, 0xa5, 0xba, 0xd4, 0x08, + 0x74, 0xa6, 0xba, 0x5c, 0x2b, 0xee, 0xe0, 0x29, 0x1b, 0x57, 0x3a, 0x1e, 0xa0, 0x59, 0x0d, 0xa5, + 0xea, 0x52, 0x63, 0xbd, 0xaa, 0xad, 0xd7, 0xaa, 0x95, 0x32, 0x49, 0xaf, 0x6b, 0x46, 0xd1, 0xc2, + 0x03, 0x4d, 0x8f, 0x45, 0x51, 0xd7, 0x4a, 0x7a, 0x79, 0x55, 0xd3, 0x69, 0x95, 0x0f, 0xab, 0x37, + 0x83, 0xb3, 0xa5, 0x6a, 0xcd, 0xc0, 0x29, 0xa5, 0xea, 0x43, 0xc6, 0x43, 0x1b, 0x5a, 0x63, 0x43, + 0xaf, 0x95, 0xb5, 0x7a, 0x1d, 0xeb, 0x29, 0xb3, 0x3f, 0x8a, 0x6d, 0xf5, 0x59, 0xe0, 0x1e, 0x8e, + 0x34, 0xcd, 0x20, 0xdb, 0x44, 0xeb, 0x35, 0xe2, 0x29, 0xb0, 0xa4, 0x35, 0x56, 0x4b, 0xf5, 0x46, + 0xa5, 0x5a, 0xae, 0xad, 0x6f, 0x94, 0x8c, 0x0a, 0x56, 0xe7, 0x0d, 0xbd, 0x66, 0xd4, 0x1a, 0xe7, + 0x34, 0xbd, 0x5e, 0xa9, 0x55, 0x8b, 0x36, 0x6e, 0x32, 0xa7, 0xff, 0x7e, 0x3f, 0xec, 0xa8, 0xd7, + 0x81, 0x79, 0x3f, 0x7d, 0xad, 0x86, 0x19, 0xcd, 0x59, 0x24, 0x9d, 0x54, 0x2d, 0x92, 0x7f, 0xc9, + 0x82, 0x5c, 0xdd, 0x73, 0x3a, 0xf0, 0xfb, 0xc2, 0x0e, 0xe6, 0x0c, 0x00, 0x2e, 0xd9, 0xf5, 0xc1, + 0xb3, 0x30, 0x36, 0x2f, 0xe3, 0x52, 0xe0, 0xef, 0x49, 0x2f, 0x55, 0x87, 0x7d, 0xb6, 0xd3, 0x89, + 0xb0, 0x55, 0xbe, 0x2d, 0xe7, 0xbb, 0x1f, 0x5d, 0x50, 0x32, 0x79, 0xff, 0xa9, 0x61, 0x16, 0xa3, + 0x21, 0x38, 0xcd, 0xc1, 0x86, 0xf9, 0xef, 0x8b, 0x04, 0x52, 0xaf, 0x06, 0x57, 0xf5, 0x08, 0x17, + 0x91, 0xa9, 0x2d, 0xf5, 0xf1, 0xe0, 0x71, 0x9c, 0x78, 0x6b, 0xeb, 0xb5, 0x73, 0x5a, 0x20, 0xc8, + 0x4b, 0x25, 0xa3, 0x54, 0xdc, 0x86, 0x9f, 0x55, 0x40, 0x6e, 0xdd, 0xd9, 0xef, 0xdd, 0x21, 0xb0, + 0xd1, 0x25, 0x6e, 0x2d, 0xd4, 0x7f, 0x15, 0x7d, 0x95, 0xa5, 0xd8, 0xbe, 0x1e, 0xbd, 0x1b, 0xf8, + 0xf9, 0x6c, 0x12, 0xb6, 0xaf, 0x1f, 0x76, 0x0b, 0xf0, 0x6f, 0x87, 0x61, 0x7b, 0x04, 0x6b, 0x91, + 0x7a, 0x16, 0x9c, 0x09, 0x3f, 0x54, 0x96, 0xb4, 0xaa, 0x51, 0x59, 0x7e, 0x28, 0x64, 0x6e, 0x45, + 0x97, 0x62, 0xff, 0xa0, 0x6e, 0x2c, 0x7e, 0xa6, 0x31, 0x0f, 0x4e, 0x86, 0xdf, 0x56, 0x34, 0xc3, + 0xff, 0xf2, 0x30, 0x7c, 0x41, 0x1e, 0xcc, 0xd0, 0x6e, 0x7d, 0xb3, 0xd3, 0x32, 0x3d, 0x04, 0xef, + 0x0a, 0xd1, 0xbd, 0x05, 0x1c, 0xaf, 0x6c, 0x2c, 0xd7, 0xeb, 0x9e, 0xe3, 0x9a, 0xdb, 0xa8, 0xd4, + 0x6a, 0xb9, 0x8c, 0x5b, 0xbd, 0xc9, 0xf0, 0xdd, 0xd2, 0xeb, 0x7c, 0xe2, 0x50, 0x42, 0xeb, 0x8c, + 0x40, 0xfd, 0xcb, 0x52, 0xeb, 0x72, 0x12, 0x05, 0x26, 0x43, 0xff, 0xe1, 0x11, 0xeb, 0x5c, 0x34, + 0x2e, 0x5b, 0x67, 0x5f, 0x98, 0x05, 0x53, 0x86, 0xb5, 0x8b, 0x9e, 0xeb, 0xd8, 0xa8, 0xab, 0x4e, + 0x00, 0x65, 0x65, 0xdd, 0x28, 0x1e, 0xc3, 0x0f, 0xd8, 0xa8, 0xca, 0x90, 0x07, 0x0d, 0x57, 0x80, + 0x1f, 0x4a, 0x46, 0x51, 0xc1, 0x0f, 0xeb, 0x9a, 0x51, 0xcc, 0xe1, 0x87, 0xaa, 0x66, 0x14, 0xf3, + 0xf8, 0x61, 0x63, 0xcd, 0x28, 0x16, 0xf0, 0x43, 0xa5, 0x6e, 0x14, 0x27, 0xf0, 0xc3, 0x62, 0xdd, + 0x28, 0x4e, 0xe2, 0x87, 0x73, 0x75, 0xa3, 0x38, 0x85, 0x1f, 0xca, 0x86, 0x51, 0x04, 0xf8, 0xe1, + 0xd9, 0x75, 0xa3, 0x38, 0x8d, 0x1f, 0x4a, 0x65, 0xa3, 0x38, 0x43, 0x1e, 0x34, 0xa3, 0x38, 0x8b, + 0x1f, 0xea, 0x75, 0xa3, 0x38, 0x47, 0x4a, 0xae, 0x1b, 0xc5, 0xe3, 0xa4, 0xae, 0x8a, 0x51, 0x2c, + 0xe2, 0x87, 0xd5, 0xba, 0x51, 0x3c, 0x41, 0x32, 0xd7, 0x8d, 0xa2, 0x4a, 0x2a, 0xad, 0x1b, 0xc5, + 0xab, 0x48, 0x9e, 0xba, 0x51, 0x3c, 0x49, 0xaa, 0xa8, 0x1b, 0xc5, 0x53, 0x84, 0x0c, 0xcd, 0x28, + 0x9e, 0x26, 0x79, 0x74, 0xa3, 0x78, 0x35, 0xf9, 0x54, 0x35, 0x8a, 0xf3, 0x84, 0x30, 0xcd, 0x28, + 0x5e, 0x43, 0x1e, 0x74, 0xa3, 0x08, 0xc9, 0xa7, 0x92, 0x51, 0xbc, 0x16, 0x3e, 0x0e, 0x4c, 0xad, + 0x20, 0x8f, 0x82, 0x08, 0x8b, 0x40, 0x59, 0x41, 0x1e, 0x6f, 0xc6, 0x7f, 0x55, 0x01, 0x57, 0xb3, + 0xa9, 0xdf, 0xb2, 0xeb, 0xec, 0xae, 0xa1, 0x6d, 0xb3, 0x79, 0x45, 0xbb, 0x8c, 0x4d, 0x28, 0x58, + 0x17, 0x96, 0xae, 0x3a, 0x61, 0x67, 0x44, 0x9e, 0x63, 0x2d, 0x4e, 0x7f, 0x31, 0x4a, 0x09, 0x17, + 0xa3, 0x98, 0x45, 0xf6, 0x4f, 0xbc, 0x44, 0x0b, 0xeb, 0xc7, 0x99, 0x9e, 0xf5, 0x63, 0xac, 0x26, + 0x1d, 0xe4, 0x76, 0x1d, 0xdb, 0x6c, 0xd7, 0xd9, 0x76, 0x29, 0x5d, 0xf5, 0xea, 0x4d, 0x56, 0x7f, + 0xc0, 0xd7, 0x0c, 0x6a, 0x95, 0x3d, 0x33, 0x6e, 0x86, 0xdb, 0xdb, 0xcc, 0x08, 0x25, 0xf9, 0x44, + 0xa0, 0x24, 0x86, 0xa0, 0x24, 0x0f, 0x1c, 0xa2, 0xec, 0x64, 0xfa, 0x52, 0x19, 0x6e, 0x6a, 0x11, + 0x3a, 0x13, 0xfa, 0xcb, 0xd5, 0x0a, 0xfc, 0x6c, 0x16, 0x9c, 0xd6, 0xec, 0x7e, 0x16, 0x3e, 0x2f, + 0x0b, 0x6f, 0xe1, 0xa1, 0xd9, 0x10, 0x59, 0x7a, 0x4f, 0xdf, 0x66, 0xf7, 0x2f, 0x33, 0x82, 0xa3, + 0x9f, 0x0a, 0x38, 0x5a, 0x17, 0x38, 0x7a, 0xff, 0xf0, 0x45, 0x27, 0x63, 0x68, 0x75, 0xa4, 0x1d, + 0x50, 0x0e, 0x7e, 0x3d, 0x07, 0x1e, 0x47, 0x3d, 0x1e, 0x18, 0x85, 0x54, 0xcb, 0x4a, 0x76, 0x4b, + 0x47, 0x5d, 0xcf, 0x74, 0x3d, 0xe1, 0x14, 0x6a, 0xcf, 0x54, 0x2a, 0x93, 0xc2, 0x54, 0x2a, 0x3b, + 0x70, 0x2a, 0x05, 0xdf, 0xc5, 0x9b, 0x0f, 0xe7, 0x45, 0x8c, 0x4b, 0xfd, 0xfb, 0xff, 0xb8, 0x16, + 0x46, 0x41, 0x1d, 0xd8, 0x15, 0x3f, 0x28, 0x40, 0xbd, 0x7c, 0xe8, 0x1a, 0x92, 0x21, 0xfe, 0x7b, + 0xa3, 0xb5, 0xf3, 0x72, 0xfc, 0x37, 0xd1, 0x28, 0x29, 0xb6, 0x52, 0x35, 0xd0, 0x3f, 0x3d, 0x01, + 0xa6, 0x88, 0x2e, 0xac, 0x59, 0xf6, 0x45, 0xf8, 0x3a, 0x05, 0xcc, 0x54, 0xd1, 0xa5, 0xf2, 0x8e, + 0xd9, 0x6e, 0x23, 0x7b, 0x1b, 0xf1, 0x66, 0xfb, 0x3c, 0x98, 0x30, 0x3b, 0x9d, 0x6a, 0xb8, 0xcf, + 0xe0, 0xbf, 0xb2, 0xfe, 0xf7, 0x6f, 0xfa, 0x2a, 0x79, 0x26, 0x46, 0xc9, 0x83, 0x7a, 0x17, 0xf8, + 0x3a, 0x23, 0x66, 0xc8, 0x37, 0x80, 0xe9, 0xa6, 0x9f, 0x25, 0xf0, 0x56, 0xe7, 0x93, 0xe0, 0x5f, + 0x27, 0xea, 0x06, 0xa4, 0x2a, 0x4f, 0x26, 0x14, 0x68, 0xc4, 0x76, 0xc8, 0x29, 0x70, 0xc2, 0xa8, + 0xd5, 0x1a, 0xeb, 0xa5, 0xea, 0x43, 0xe1, 0x29, 0xd1, 0x2d, 0xf8, 0xaa, 0x1c, 0x98, 0xab, 0x3b, + 0xed, 0x7d, 0x14, 0xc2, 0x54, 0x09, 0x61, 0xea, 0xe1, 0x53, 0xe6, 0x00, 0x9f, 0xd4, 0xd3, 0xa0, + 0x60, 0xda, 0xdd, 0x4b, 0xc8, 0xb7, 0x0d, 0xd9, 0x1b, 0x83, 0xf1, 0x77, 0x78, 0x3d, 0xd6, 0x45, + 0x18, 0xef, 0x1d, 0xc0, 0x49, 0x91, 0xaa, 0x08, 0x20, 0xcf, 0x82, 0x99, 0x2e, 0xdd, 0x2c, 0x34, + 0xb8, 0x3d, 0x61, 0x21, 0x8d, 0x90, 0x48, 0x77, 0xab, 0x15, 0x46, 0x22, 0x79, 0x83, 0xaf, 0x0b, + 0xd4, 0x7f, 0x53, 0x80, 0xb8, 0x74, 0x18, 0xc2, 0x92, 0x81, 0xfc, 0x9a, 0x51, 0xcf, 0xf0, 0xe6, + 0xc1, 0x49, 0xa6, 0xb5, 0x8d, 0xf2, 0x6a, 0x69, 0x6d, 0x4d, 0xab, 0xae, 0x68, 0x8d, 0xca, 0x12, + 0xdd, 0xaa, 0x08, 0x53, 0x4a, 0x86, 0xa1, 0xad, 0x6f, 0x18, 0xf5, 0x86, 0xf6, 0x9c, 0xb2, 0xa6, + 0x2d, 0x11, 0x47, 0x24, 0x72, 0x92, 0xc0, 0x77, 0x19, 0x2b, 0x55, 0xeb, 0xe7, 0x35, 0xbd, 0xb8, + 0x73, 0xb6, 0x04, 0xa6, 0xb9, 0x7e, 0x1e, 0x53, 0xb7, 0x84, 0xb6, 0xcc, 0xbd, 0x36, 0xb3, 0xd5, + 0x8a, 0xc7, 0x30, 0x75, 0x84, 0x37, 0x35, 0xbb, 0x7d, 0xa5, 0x98, 0x51, 0x8b, 0x60, 0x86, 0xef, + 0xd2, 0x8b, 0x59, 0xf8, 0xed, 0x6b, 0xc1, 0xd4, 0x79, 0xc7, 0xbd, 0x48, 0xbc, 0xc7, 0xe0, 0xfb, + 0x68, 0x34, 0x09, 0xff, 0x5c, 0x1e, 0x37, 0xb0, 0xbf, 0x46, 0xde, 0x5b, 0xc0, 0x2f, 0x6d, 0x61, + 0xe0, 0xd9, 0xbb, 0x1b, 0xc0, 0xf4, 0x25, 0x3f, 0x77, 0xa8, 0xe9, 0x5c, 0x12, 0xfc, 0xef, 0x72, + 0xfb, 0xff, 0x83, 0xab, 0x4c, 0x7f, 0x7f, 0xfa, 0x6d, 0x59, 0x50, 0x58, 0x41, 0x5e, 0xa9, 0xdd, + 0xe6, 0xf9, 0xf6, 0x72, 0xe9, 0xf3, 0x14, 0x42, 0x23, 0x4a, 0xed, 0x76, 0xb4, 0x52, 0x71, 0x0c, + 0xf2, 0xfd, 0x7e, 0x85, 0x34, 0xf8, 0x2b, 0x52, 0x27, 0xa1, 0x06, 0x54, 0x98, 0x3e, 0xc7, 0xde, + 0xa8, 0x04, 0x7b, 0xdc, 0x3f, 0xc9, 0x59, 0x39, 0x4f, 0x09, 0x23, 0x89, 0x64, 0xe2, 0xf7, 0xca, + 0xfd, 0x7c, 0xea, 0x83, 0x60, 0x62, 0xaf, 0x8b, 0xca, 0x66, 0x17, 0x11, 0xda, 0x7a, 0x5b, 0x5a, + 0xbb, 0xf0, 0x30, 0x6a, 0x7a, 0x0b, 0x95, 0x5d, 0x6c, 0x50, 0x6f, 0xd2, 0x8c, 0x41, 0x70, 0x0e, + 0xf6, 0xae, 0xfb, 0x25, 0xc0, 0x17, 0x0f, 0x01, 0x59, 0xec, 0x7e, 0x6f, 0xe4, 0xd1, 0xab, 0xc4, + 0x40, 0x8d, 0x60, 0x93, 0x76, 0x18, 0xa0, 0x3e, 0x9d, 0x05, 0xb9, 0x5a, 0x07, 0xd9, 0x72, 0x0e, + 0xa8, 0xaf, 0x93, 0xf7, 0xf2, 0x0a, 0x1a, 0x86, 0x4b, 0x8f, 0xe0, 0xde, 0xed, 0x20, 0x67, 0xd9, + 0x5b, 0x0e, 0x33, 0x30, 0xaf, 0x8d, 0xd8, 0xcc, 0xa9, 0xd8, 0x5b, 0x8e, 0x4e, 0x32, 0xca, 0x3a, + 0x78, 0xc5, 0xd5, 0x9d, 0x3e, 0x4b, 0xbf, 0x31, 0x09, 0x0a, 0x54, 0x2c, 0xe1, 0xcb, 0x14, 0xa0, + 0x94, 0x5a, 0xad, 0x88, 0x43, 0x1c, 0xd9, 0x03, 0x87, 0x38, 0x1c, 0xf2, 0x5b, 0xc0, 0xf7, 0xe0, + 0x5d, 0x0c, 0x05, 0x21, 0xd9, 0x47, 0x33, 0xd5, 0x28, 0xb5, 0x5a, 0xd1, 0xbe, 0xa4, 0x41, 0x85, + 0x59, 0xb1, 0x42, 0x5e, 0x53, 0x15, 0x39, 0x4d, 0x4d, 0xdc, 0xa1, 0x47, 0xd2, 0x97, 0x3e, 0x44, + 0xff, 0x94, 0x05, 0x13, 0x6b, 0x56, 0xd7, 0xc3, 0xd8, 0x94, 0x64, 0xb0, 0xb9, 0x0e, 0x4c, 0xf9, + 0xac, 0xc1, 0x5d, 0x17, 0xee, 0x97, 0xc3, 0x04, 0xf8, 0x7a, 0x1e, 0x9d, 0x67, 0x8b, 0xe8, 0x3c, + 0x35, 0xbe, 0xf5, 0x8c, 0x8a, 0x68, 0x1f, 0xed, 0xb0, 0xda, 0x6c, 0x6f, 0xb5, 0xbf, 0x1e, 0x30, + 0x7c, 0x5d, 0x60, 0xf8, 0xdd, 0xc3, 0x54, 0x99, 0x3e, 0xd3, 0x3f, 0x97, 0x05, 0x00, 0xd7, 0xcd, + 0x0e, 0xc2, 0x3c, 0x51, 0x38, 0xde, 0x1a, 0xc3, 0xdd, 0x57, 0xf1, 0xdc, 0x5d, 0x17, 0xb9, 0xfb, + 0xf4, 0xc1, 0x4d, 0x8d, 0x3b, 0xf0, 0xa2, 0x16, 0x81, 0x62, 0x05, 0xac, 0xc5, 0x8f, 0xf0, 0x6d, + 0x01, 0x53, 0x37, 0x04, 0xa6, 0xde, 0x3b, 0x64, 0x4d, 0xe9, 0xf3, 0xf5, 0xcf, 0xb3, 0x60, 0xa2, + 0x8e, 0x3c, 0xdc, 0x4d, 0xc2, 0x73, 0x32, 0x47, 0x4e, 0x38, 0xdd, 0xce, 0x4a, 0xea, 0xf6, 0xb7, + 0x32, 0xb2, 0x61, 0x32, 0x42, 0xce, 0x30, 0x9a, 0x22, 0x16, 0x01, 0xde, 0x20, 0x15, 0x26, 0x63, + 0x50, 0x69, 0xe9, 0x73, 0xf7, 0x2d, 0xd9, 0x60, 0x83, 0xfd, 0x49, 0xc2, 0x04, 0x8d, 0x37, 0x6f, + 0x33, 0x07, 0xcd, 0xdb, 0x7f, 0xce, 0x24, 0x37, 0x35, 0xe2, 0x76, 0x97, 0x13, 0x1b, 0x14, 0x23, + 0xd8, 0xf8, 0x1d, 0x86, 0x5f, 0xcf, 0x57, 0x40, 0x81, 0xad, 0x10, 0xdf, 0x1f, 0xbf, 0x42, 0x3c, + 0x78, 0x8a, 0xf0, 0xde, 0x21, 0xcc, 0xb5, 0xb8, 0x65, 0xdb, 0x80, 0x8c, 0x2c, 0x47, 0xc6, 0x6d, + 0x20, 0x4f, 0xe2, 0xf8, 0xb1, 0x71, 0x2e, 0xdc, 0xb3, 0xf7, 0x8b, 0xd0, 0xf0, 0x57, 0x9d, 0x66, + 0x4a, 0x8c, 0xc2, 0x08, 0x56, 0x7a, 0x87, 0x41, 0xe1, 0x95, 0x1f, 0xcd, 0x04, 0x46, 0xc8, 0x7b, + 0x73, 0xcc, 0xc4, 0xfb, 0x98, 0x18, 0x51, 0xa0, 0xe9, 0xd8, 0x1e, 0xba, 0xcc, 0xad, 0xad, 0x07, + 0x09, 0xb1, 0x96, 0xc1, 0x3c, 0x98, 0xf0, 0x5c, 0x7e, 0xbd, 0xdd, 0x7f, 0xe5, 0x7b, 0x9c, 0xbc, + 0xd8, 0xe3, 0x54, 0xc1, 0x59, 0xcb, 0x6e, 0xb6, 0xf7, 0x5a, 0x48, 0x47, 0x6d, 0x13, 0xb7, 0xaa, + 0x5b, 0xea, 0x2e, 0xa1, 0x0e, 0xb2, 0x5b, 0xc8, 0xf6, 0x28, 0x9d, 0xbe, 0x6f, 0xad, 0x44, 0x4e, + 0xf8, 0x35, 0x5e, 0x30, 0xee, 0x13, 0x05, 0xe3, 0x89, 0xfd, 0xe6, 0x07, 0x31, 0x46, 0xe8, 0xdd, + 0x00, 0xd0, 0xb6, 0x9d, 0xb3, 0xd0, 0x25, 0xd6, 0x21, 0x5e, 0xd3, 0x63, 0x8a, 0xd6, 0x82, 0x0c, + 0x3a, 0x97, 0x19, 0x7e, 0x29, 0x10, 0x86, 0x07, 0x04, 0x61, 0xb8, 0x4d, 0x92, 0x84, 0x64, 0x72, + 0xd0, 0x19, 0x62, 0xcd, 0x62, 0x16, 0x4c, 0x85, 0x2b, 0x8d, 0x8a, 0x7a, 0x0d, 0x38, 0xe5, 0xfb, + 0x2e, 0x54, 0x35, 0x6d, 0xa9, 0xde, 0xd8, 0xdc, 0x58, 0xd1, 0x4b, 0x4b, 0x5a, 0x11, 0xa8, 0x2a, + 0x98, 0xab, 0x2d, 0x3e, 0x5b, 0x2b, 0x1b, 0x81, 0xcb, 0x41, 0x0e, 0xfe, 0x69, 0x16, 0xe4, 0x89, + 0x63, 0x38, 0xfc, 0xe1, 0x11, 0x49, 0x4e, 0x57, 0xd8, 0xa9, 0x09, 0xe6, 0x15, 0xf2, 0x91, 0xfe, + 0x18, 0x33, 0x09, 0x55, 0x87, 0x8a, 0xf4, 0x17, 0x53, 0x50, 0xfa, 0xea, 0x89, 0x55, 0xb2, 0xbe, + 0xe3, 0x5c, 0xfa, 0x8f, 0xac, 0x92, 0xb8, 0xfd, 0x47, 0xac, 0x92, 0x7d, 0x48, 0x18, 0xbb, 0x4a, + 0xf6, 0xd1, 0xbb, 0x18, 0x35, 0x85, 0x7f, 0x9d, 0x0b, 0x16, 0x56, 0xfe, 0xaf, 0xc3, 0x2d, 0xac, + 0x94, 0xc0, 0xac, 0x65, 0x7b, 0xc8, 0xb5, 0xcd, 0xf6, 0x72, 0xdb, 0xdc, 0xf6, 0x8f, 0x1f, 0xf7, + 0xce, 0xc2, 0x2b, 0x5c, 0x1e, 0x5d, 0xfc, 0x43, 0x3d, 0x03, 0x80, 0x87, 0x76, 0x3b, 0x6d, 0xd3, + 0x0b, 0x45, 0x8f, 0x4b, 0xe1, 0xa5, 0x2f, 0x27, 0x4a, 0xdf, 0x1d, 0xe0, 0x2a, 0x0a, 0x9a, 0x71, + 0xa5, 0x83, 0x36, 0x6d, 0xeb, 0x47, 0xf6, 0x48, 0x00, 0x1a, 0x2a, 0xa3, 0xfd, 0x3e, 0xc1, 0xbf, + 0x93, 0x3e, 0x46, 0xe9, 0x6b, 0xf6, 0x80, 0x63, 0x94, 0x81, 0x36, 0x29, 0x3d, 0xda, 0x14, 0x18, + 0x04, 0x39, 0x09, 0x83, 0x80, 0xe7, 0x7c, 0x5e, 0xd2, 0x98, 0x7e, 0xad, 0xd4, 0x39, 0xcd, 0xb8, + 0x66, 0xa4, 0xdf, 0x43, 0xbd, 0x4f, 0x01, 0x73, 0xb4, 0xea, 0x45, 0xc7, 0xb9, 0xb8, 0x6b, 0xba, + 0x17, 0xf9, 0xb9, 0xc5, 0x10, 0xe2, 0x16, 0xbd, 0x52, 0xf6, 0x29, 0x1e, 0xd9, 0x15, 0x11, 0xd9, + 0xa7, 0x44, 0xb3, 0xc4, 0xa7, 0x6b, 0x3c, 0x8b, 0x1b, 0x6f, 0x0a, 0x30, 0x7b, 0xb6, 0x80, 0xd9, + 0xf7, 0x27, 0x26, 0x30, 0x7d, 0xec, 0xfe, 0x20, 0xc0, 0xce, 0xef, 0xb0, 0x53, 0xc3, 0xee, 0xcb, + 0xc3, 0x61, 0xe7, 0xd3, 0x35, 0x04, 0x76, 0x45, 0xa0, 0x5c, 0x0c, 0xb6, 0x94, 0xf0, 0x23, 0xdf, + 0xa0, 0x5c, 0x7a, 0x68, 0x46, 0x90, 0x3c, 0x16, 0x34, 0x4f, 0x8a, 0x24, 0xd4, 0x3a, 0xa9, 0x62, + 0xfa, 0x45, 0xe9, 0xf5, 0x96, 0xbe, 0x0c, 0xa2, 0xd4, 0x8d, 0x47, 0x2b, 0xe5, 0x16, 0x6b, 0xe4, + 0xc9, 0x4c, 0x1f, 0xcd, 0x7f, 0xcc, 0x81, 0x29, 0xff, 0x30, 0xab, 0x07, 0xff, 0x98, 0x1b, 0xc2, + 0x4f, 0x83, 0x42, 0xd7, 0xd9, 0x73, 0x9b, 0x88, 0xad, 0x80, 0xb1, 0xb7, 0x21, 0x56, 0x6b, 0x06, + 0x8e, 0xcb, 0x07, 0x86, 0xfe, 0x5c, 0xe2, 0xa1, 0x3f, 0xd2, 0xb0, 0x84, 0x2f, 0x96, 0x0e, 0x3d, + 0x28, 0xe0, 0x52, 0x47, 0xde, 0x63, 0x71, 0xac, 0xfe, 0x90, 0xd4, 0x7c, 0x7f, 0x40, 0x4b, 0x92, + 0x89, 0x55, 0x6d, 0x08, 0xa3, 0xf2, 0x5a, 0x70, 0xb5, 0x9f, 0x83, 0x59, 0x93, 0xc4, 0x7a, 0xdc, + 0xd4, 0xd7, 0x8a, 0x0a, 0x7c, 0x7e, 0x0e, 0x14, 0x29, 0x69, 0xb5, 0xc0, 0xb0, 0x82, 0x2f, 0x3f, + 0x72, 0xeb, 0x31, 0x7a, 0x3a, 0xf8, 0x99, 0xac, 0x6c, 0x78, 0x23, 0x81, 0xf1, 0x61, 0xeb, 0x22, + 0x24, 0x69, 0x08, 0x55, 0x8a, 0x11, 0x3e, 0xf8, 0x6b, 0x19, 0x99, 0x68, 0x49, 0x72, 0x24, 0xa6, + 0xdf, 0xf3, 0xbc, 0x3e, 0xe7, 0xc7, 0x1d, 0x58, 0x76, 0x9d, 0xdd, 0x4d, 0xb7, 0x0d, 0x3f, 0x2c, + 0x15, 0x8c, 0x2e, 0xc2, 0x54, 0xcf, 0x46, 0x9a, 0xea, 0x78, 0x88, 0xde, 0x73, 0xdb, 0xfe, 0x10, + 0xbd, 0xe7, 0xb6, 0x87, 0x18, 0xa2, 0xd5, 0x9b, 0xc1, 0x9c, 0xd9, 0x6a, 0x6d, 0x98, 0xdb, 0xa8, + 0x8c, 0xe7, 0xc0, 0xb6, 0xc7, 0xce, 0x24, 0xf7, 0xa4, 0x26, 0xd8, 0x19, 0x13, 0x80, 0x60, 0x3c, + 0x78, 0x2c, 0xed, 0x8c, 0x49, 0xd0, 0x97, 0xbe, 0x94, 0x7c, 0x22, 0x0b, 0x66, 0x7d, 0xc3, 0x75, + 0x19, 0x79, 0xcd, 0x1d, 0x78, 0xb7, 0xec, 0x0a, 0x05, 0x83, 0x3d, 0x1b, 0xc0, 0x0e, 0xbf, 0x9b, + 0x49, 0x88, 0x8d, 0x50, 0x73, 0xc4, 0xf2, 0x4e, 0x22, 0x66, 0xc6, 0x15, 0x98, 0x3e, 0x33, 0xbf, + 0x94, 0x05, 0xc0, 0x70, 0x82, 0x09, 0xd4, 0x21, 0x38, 0xf9, 0x52, 0xe9, 0x30, 0xe5, 0xac, 0xe1, + 0x61, 0xb5, 0xc9, 0x45, 0x5c, 0x72, 0x6f, 0x66, 0x50, 0x4d, 0xe9, 0xf3, 0xf7, 0x03, 0x59, 0x30, + 0xb5, 0xb4, 0xd7, 0x69, 0x5b, 0x4d, 0xd3, 0xeb, 0xdd, 0x50, 0x8c, 0x66, 0x2f, 0xb9, 0x6f, 0x24, + 0x91, 0x85, 0x12, 0xd4, 0x11, 0xc1, 0x4b, 0x7a, 0xda, 0x32, 0xeb, 0x9f, 0xb6, 0x94, 0xdc, 0x24, + 0x18, 0x50, 0xf8, 0x18, 0xc4, 0x53, 0x01, 0xc7, 0x6b, 0x1d, 0x64, 0x2f, 0xba, 0xc8, 0x6c, 0x35, + 0xdd, 0xbd, 0xdd, 0x0b, 0x5d, 0x7e, 0x37, 0x3c, 0x5e, 0x46, 0xb9, 0x35, 0xc7, 0xac, 0xb0, 0xe6, + 0x08, 0x7f, 0x42, 0x91, 0x3d, 0xfb, 0xcb, 0xad, 0x8c, 0x73, 0x34, 0x0c, 0xd1, 0x27, 0x27, 0xda, + 0xc3, 0xe9, 0x59, 0x5e, 0xcc, 0x25, 0x59, 0x5e, 0x7c, 0xb3, 0xd4, 0x49, 0x62, 0xa9, 0x76, 0x8d, + 0x65, 0x2b, 0x6e, 0xae, 0x8e, 0xbc, 0x08, 0x78, 0x6f, 0x02, 0xb3, 0x17, 0xc2, 0x2f, 0x01, 0xc4, + 0x62, 0x62, 0x9f, 0x0d, 0xf2, 0xb7, 0x24, 0x9d, 0xf2, 0x8b, 0x24, 0x44, 0xa0, 0x1b, 0x20, 0x98, + 0x95, 0xd9, 0x85, 0x4b, 0x34, 0x7f, 0x8f, 0xad, 0x3f, 0x7d, 0x14, 0x3e, 0x9a, 0x05, 0xd3, 0xe4, + 0x16, 0x95, 0xc5, 0x2b, 0xc4, 0x3d, 0xfb, 0x09, 0x42, 0xa8, 0xad, 0x48, 0x8f, 0x9f, 0x17, 0xf1, + 0x6c, 0x56, 0x41, 0xae, 0x6d, 0xd9, 0x17, 0xfd, 0xed, 0x53, 0xfc, 0x1c, 0xc6, 0xe4, 0xcf, 0xf6, + 0x89, 0xc9, 0x1f, 0x2c, 0x70, 0x07, 0xf5, 0x1e, 0xea, 0x92, 0xa8, 0x81, 0xc5, 0xa5, 0xcf, 0xc6, + 0x3f, 0xcc, 0x81, 0x42, 0x1d, 0x99, 0x6e, 0x73, 0x07, 0xbe, 0x8a, 0x3b, 0xe8, 0xbe, 0x0c, 0x26, + 0xb6, 0xac, 0xb6, 0x87, 0x5c, 0xea, 0x38, 0xc2, 0x77, 0xe0, 0x54, 0x91, 0x17, 0xdb, 0x4e, 0xf3, + 0xe2, 0x02, 0xb3, 0x16, 0x17, 0xfc, 0x98, 0x41, 0x0b, 0xcb, 0xe4, 0x27, 0xdd, 0xff, 0x59, 0x7d, + 0x00, 0xe4, 0xbb, 0x8e, 0xeb, 0x45, 0x05, 0xe1, 0x8c, 0x28, 0xa5, 0xee, 0xb8, 0x9e, 0x4e, 0x7f, + 0xc4, 0x60, 0x6e, 0xed, 0xb5, 0xdb, 0x06, 0xba, 0xec, 0xf9, 0x33, 0x05, 0xff, 0x1d, 0xcf, 0xed, + 0x9d, 0xad, 0xad, 0x2e, 0xa2, 0xf3, 0xd4, 0xbc, 0xce, 0xde, 0xd4, 0x93, 0x20, 0xdf, 0xb6, 0x76, + 0x2d, 0x6a, 0xdb, 0xe6, 0x75, 0xfa, 0xa2, 0xde, 0x0a, 0x8a, 0xa1, 0x59, 0x4d, 0x09, 0x9d, 0x2f, + 0x10, 0x05, 0x3c, 0x90, 0x8e, 0x25, 0xe3, 0x22, 0xba, 0xd2, 0x9d, 0x9f, 0x20, 0xdf, 0xc9, 0xb3, + 0xe8, 0xa5, 0x27, 0xb3, 0x54, 0x4e, 0xf9, 0x1a, 0x3d, 0x69, 0x72, 0x51, 0xd3, 0x71, 0x5b, 0x3e, + 0x6f, 0xa2, 0xed, 0x5d, 0x96, 0x2f, 0xd9, 0x02, 0x77, 0xdf, 0xca, 0xd3, 0x97, 0xa7, 0x57, 0x14, + 0x70, 0xe7, 0x88, 0xab, 0x3e, 0x6f, 0x79, 0x3b, 0xeb, 0xc8, 0x33, 0xe1, 0x1f, 0x2a, 0xff, 0x9f, + 0x5c, 0xc5, 0xc8, 0x15, 0x3d, 0xf3, 0xed, 0xed, 0xb9, 0x36, 0xe6, 0x16, 0x8b, 0xb2, 0xc4, 0xa5, + 0xa8, 0xf7, 0x82, 0x6b, 0xc2, 0x37, 0x7f, 0x9d, 0x6d, 0x89, 0xcd, 0x95, 0xa6, 0x48, 0xf6, 0xe8, + 0x0c, 0xea, 0x06, 0xb8, 0x91, 0x7e, 0x5c, 0x35, 0xd6, 0xd7, 0x56, 0xad, 0xed, 0x9d, 0xb6, 0xb5, + 0xbd, 0xe3, 0x75, 0x2b, 0x76, 0xd7, 0x43, 0x66, 0xab, 0xb6, 0xa5, 0xd3, 0x20, 0xb9, 0x80, 0x94, + 0x23, 0x93, 0x55, 0x74, 0x1f, 0x91, 0x1b, 0xa9, 0x78, 0x79, 0x88, 0xd0, 0x87, 0xef, 0xc7, 0xfa, + 0xd0, 0xdd, 0x6b, 0x07, 0x98, 0x5e, 0xd7, 0x83, 0x69, 0x28, 0xd0, 0x7b, 0x6d, 0xa2, 0x14, 0x24, + 0x73, 0xd2, 0x31, 0x2b, 0x86, 0x92, 0xf4, 0x95, 0xe3, 0xff, 0x29, 0x80, 0xfc, 0x8a, 0x6b, 0x76, + 0x76, 0xe0, 0xf3, 0x53, 0xe8, 0x6b, 0x03, 0xe9, 0xcc, 0x0e, 0x92, 0x4e, 0x65, 0x80, 0x74, 0xe6, + 0x38, 0xe9, 0x8c, 0xde, 0xea, 0x3e, 0x0b, 0x66, 0x9a, 0x4e, 0xbb, 0x8d, 0x9a, 0x98, 0x1f, 0x95, + 0x16, 0x09, 0x0c, 0x32, 0xa5, 0x0b, 0x69, 0x24, 0x7a, 0x1a, 0xf2, 0xea, 0x74, 0x01, 0x96, 0x0a, + 0x7d, 0x98, 0x00, 0x5f, 0x9e, 0x05, 0x39, 0xad, 0xb5, 0x8d, 0x84, 0x45, 0xda, 0x0c, 0xb7, 0x48, + 0x7b, 0x1a, 0x14, 0x3c, 0xd3, 0xdd, 0x46, 0x9e, 0x7f, 0x1c, 0x87, 0xbe, 0x05, 0x41, 0xdd, 0x14, + 0x2e, 0xa8, 0xdb, 0xd3, 0x41, 0x0e, 0xf3, 0x8c, 0x85, 0x4b, 0xb9, 0xb1, 0x1f, 0xfc, 0x84, 0xf7, + 0x0b, 0xb8, 0xc6, 0x05, 0xdc, 0x6a, 0x9d, 0xfc, 0xd0, 0x8b, 0x75, 0xfe, 0x00, 0xd6, 0xe4, 0xbe, + 0x8f, 0xa6, 0x63, 0x57, 0x76, 0xcd, 0x6d, 0xc4, 0x9a, 0x19, 0x26, 0xf8, 0x5f, 0xb5, 0x5d, 0xe7, + 0x61, 0x8b, 0xc5, 0x57, 0x0b, 0x13, 0x70, 0x13, 0x76, 0xac, 0x56, 0x0b, 0xd9, 0x4c, 0xb3, 0xd9, + 0xdb, 0xd9, 0x33, 0x20, 0x87, 0x69, 0xc0, 0xf2, 0x83, 0x07, 0xfe, 0xe2, 0x31, 0x75, 0x06, 0xab, + 0x15, 0x55, 0xde, 0x62, 0x46, 0x5c, 0xac, 0x93, 0xf1, 0xdd, 0xa0, 0x8d, 0xeb, 0xaf, 0x5c, 0x4f, + 0x06, 0x79, 0xdb, 0x69, 0xa1, 0x81, 0x43, 0x0d, 0xcd, 0xa5, 0x3e, 0x15, 0xe4, 0x51, 0x0b, 0xf7, + 0x0a, 0x0a, 0xc9, 0x7e, 0x26, 0x9e, 0x97, 0x3a, 0xcd, 0x9c, 0xcc, 0x41, 0xa4, 0x1f, 0xb5, 0xe9, + 0x2b, 0xe0, 0x2f, 0x4d, 0x80, 0xe3, 0xb4, 0x0f, 0xa8, 0xef, 0x5d, 0xc0, 0x45, 0x5d, 0x40, 0xf0, + 0xdd, 0x8a, 0x10, 0x45, 0xb2, 0xbb, 0x77, 0x21, 0x30, 0x1b, 0xe9, 0x0b, 0xaf, 0xa0, 0xd9, 0x91, + 0x0c, 0x5a, 0xca, 0xb0, 0x83, 0x96, 0x30, 0x00, 0x29, 0xbe, 0x8a, 0x87, 0xc3, 0x55, 0x81, 0x24, + 0xfb, 0xc3, 0x55, 0xbf, 0xc1, 0x66, 0x1e, 0x4c, 0x98, 0x5b, 0x1e, 0x72, 0x2b, 0x2d, 0x22, 0x8f, + 0x53, 0xba, 0xff, 0x8a, 0x07, 0xc4, 0x0b, 0x68, 0xcb, 0x71, 0xb1, 0xa6, 0x4f, 0xd1, 0x01, 0xd1, + 0x7f, 0xe7, 0xf4, 0x13, 0x08, 0x9b, 0x28, 0xb7, 0x80, 0xe3, 0xd6, 0xb6, 0xed, 0xb8, 0x28, 0xf0, + 0xcc, 0x9b, 0x9f, 0xa1, 0x87, 0xc5, 0x7b, 0x92, 0xd5, 0xdb, 0xc0, 0x09, 0xdb, 0x59, 0x42, 0x1d, + 0xc6, 0x77, 0x8a, 0xea, 0x2c, 0xd1, 0x88, 0x83, 0x1f, 0x0e, 0x74, 0x2d, 0x73, 0x07, 0xbb, 0x16, + 0xf8, 0xe9, 0xa4, 0xf3, 0xe1, 0x1e, 0xe0, 0x47, 0x66, 0x97, 0xa9, 0xcf, 0x04, 0x33, 0x2d, 0xe6, + 0xb7, 0xd3, 0xb4, 0x02, 0xad, 0x89, 0xfc, 0x4f, 0xc8, 0x1c, 0x8a, 0x5c, 0x8e, 0x17, 0xb9, 0x15, + 0x30, 0x49, 0x4e, 0x69, 0x60, 0x99, 0xcb, 0xf7, 0x04, 0xa3, 0x23, 0x53, 0xb6, 0xa0, 0x51, 0x1c, + 0xdb, 0x16, 0xca, 0xec, 0x17, 0x3d, 0xf8, 0x39, 0xd9, 0xcc, 0x3a, 0x9e, 0x43, 0xe9, 0xab, 0xe7, + 0x67, 0x72, 0xe0, 0xf8, 0x8a, 0xeb, 0xec, 0x75, 0xba, 0xa1, 0x7a, 0xfe, 0x65, 0xff, 0xd5, 0xf4, + 0x82, 0x38, 0x16, 0xf5, 0x57, 0xdc, 0x1b, 0xc0, 0xb4, 0xcb, 0x7a, 0xd4, 0x70, 0x6d, 0x9d, 0x4f, + 0xe2, 0x55, 0x5b, 0x39, 0x8c, 0x6a, 0x87, 0x0a, 0x92, 0x13, 0x14, 0xa4, 0x57, 0x90, 0xf3, 0x7d, + 0x04, 0xf9, 0x2f, 0xb2, 0x09, 0x05, 0xb9, 0x87, 0x45, 0x11, 0x82, 0x5c, 0x06, 0x85, 0x6d, 0x92, + 0x91, 0xc9, 0xf1, 0x93, 0xe4, 0x5a, 0x46, 0x0a, 0xd7, 0xd9, 0xaf, 0x21, 0x5f, 0x15, 0x8e, 0xaf, + 0xc9, 0x84, 0x2a, 0x9e, 0xda, 0xf4, 0x85, 0xea, 0x1d, 0x39, 0x30, 0x13, 0xd4, 0x4e, 0x0e, 0x3e, + 0x64, 0x06, 0x75, 0xf8, 0x07, 0x56, 0x67, 0x82, 0xae, 0x54, 0xe1, 0xba, 0xd2, 0x3e, 0x9d, 0xdf, + 0x74, 0x82, 0xce, 0x6f, 0x26, 0xa2, 0xf3, 0x83, 0xcf, 0x53, 0x64, 0x83, 0x16, 0x8b, 0x7d, 0x00, + 0x69, 0xdd, 0x63, 0xb9, 0x57, 0x93, 0x0c, 0x9d, 0x3c, 0xb8, 0x55, 0xe9, 0x0b, 0xcd, 0x07, 0xb3, + 0xe0, 0x04, 0xed, 0x0d, 0x37, 0xed, 0x6e, 0xd0, 0x17, 0x3d, 0x5e, 0x74, 0x2b, 0xc0, 0x6d, 0xea, + 0x06, 0x6e, 0x05, 0xe4, 0x4d, 0x5c, 0x04, 0x8f, 0x3d, 0xb3, 0x24, 0xf4, 0xb9, 0x5c, 0x2d, 0x11, + 0x2b, 0x4a, 0x72, 0xa7, 0x92, 0x24, 0x0b, 0x4d, 0x9f, 0x81, 0x3f, 0xaf, 0x80, 0xa9, 0x3a, 0xf2, + 0xd6, 0xcc, 0x2b, 0xce, 0x9e, 0x07, 0x4d, 0xd9, 0xe5, 0xef, 0x67, 0x80, 0x42, 0x9b, 0xfc, 0xc2, + 0x6e, 0xe0, 0xba, 0xa1, 0xef, 0xfa, 0x31, 0xd9, 0xe8, 0xa5, 0x45, 0xeb, 0x2c, 0xbf, 0x78, 0x58, + 0x4c, 0x66, 0xf7, 0x21, 0xa0, 0x6e, 0x24, 0x4b, 0xa7, 0x89, 0xf6, 0x26, 0xa2, 0xaa, 0x4e, 0x1f, + 0x96, 0x9f, 0x50, 0xc0, 0x6c, 0x1d, 0x79, 0x95, 0xee, 0xb2, 0xb9, 0xef, 0xb8, 0x96, 0x87, 0xf8, + 0xcb, 0x20, 0xe2, 0xa1, 0x39, 0x03, 0x80, 0x15, 0xfc, 0xc6, 0xa2, 0x81, 0x73, 0x29, 0xf0, 0xd7, + 0x92, 0xee, 0x18, 0x0b, 0x74, 0x8c, 0x04, 0x84, 0x44, 0x7b, 0x98, 0x71, 0xd5, 0xa7, 0x0f, 0xc4, + 0xe7, 0xb3, 0x0c, 0x88, 0x92, 0xdb, 0xdc, 0xb1, 0xf6, 0x51, 0x2b, 0x21, 0x10, 0xfe, 0x6f, 0x21, + 0x10, 0x41, 0x41, 0x89, 0xb7, 0x87, 0x05, 0x3a, 0x46, 0xb1, 0x3d, 0x1c, 0x57, 0xe0, 0x58, 0x4e, + 0xa1, 0xe2, 0xae, 0x87, 0xad, 0x31, 0xdc, 0x2f, 0xcb, 0xd6, 0xd0, 0x84, 0xcb, 0xf2, 0x26, 0xdc, + 0x50, 0x1d, 0x0b, 0xad, 0x7b, 0x90, 0x4c, 0xe7, 0xd2, 0xe8, 0x58, 0xfa, 0x56, 0x9d, 0x3e, 0xd3, + 0xdf, 0xa3, 0x80, 0x53, 0x81, 0xc1, 0x53, 0x47, 0xde, 0x92, 0xd9, 0xdd, 0xb9, 0xe0, 0x98, 0x6e, + 0x8b, 0xbf, 0x99, 0x6d, 0xe8, 0xa3, 0x18, 0xf0, 0xcf, 0x78, 0x10, 0xaa, 0x22, 0x08, 0x7d, 0xfd, + 0x82, 0xfa, 0xd2, 0x32, 0x8a, 0x4e, 0x26, 0xd6, 0x75, 0xe9, 0x37, 0x02, 0xb0, 0x7e, 0x40, 0x00, + 0xeb, 0xbe, 0x61, 0x49, 0x4c, 0x1f, 0xb8, 0x5f, 0xa4, 0x23, 0x02, 0xe7, 0xc2, 0xf6, 0x90, 0x2c, + 0x60, 0x11, 0x2e, 0x4c, 0x4a, 0xf4, 0x69, 0x83, 0x61, 0xc6, 0x88, 0x81, 0xee, 0x67, 0xe9, 0x8e, + 0x11, 0x47, 0xe8, 0x5a, 0xf6, 0x0e, 0x05, 0x14, 0xc9, 0xf9, 0x5c, 0xce, 0xbd, 0x0f, 0x3e, 0x2c, + 0x8b, 0xce, 0x01, 0x57, 0xc2, 0x89, 0xa4, 0xae, 0x84, 0xf0, 0xed, 0x49, 0x1d, 0x06, 0x7b, 0xa9, + 0x1d, 0x09, 0x62, 0x89, 0xfc, 0x01, 0x07, 0x50, 0x90, 0x3e, 0x68, 0xff, 0x55, 0x01, 0x00, 0x2b, + 0x34, 0xf3, 0x51, 0x7b, 0x8e, 0x2c, 0x5c, 0xb7, 0xf3, 0x4e, 0x94, 0x18, 0xa8, 0x53, 0x3d, 0x40, + 0xd1, 0x12, 0x43, 0xef, 0xb7, 0x37, 0x24, 0xf5, 0x5d, 0x0a, 0xa9, 0x1a, 0x09, 0x2c, 0x89, 0xbc, + 0x99, 0x22, 0xeb, 0x4e, 0x1f, 0x90, 0xdf, 0xcc, 0x82, 0xbc, 0xe1, 0xd4, 0x91, 0x77, 0x78, 0x53, + 0x20, 0xf1, 0x79, 0x4a, 0x52, 0xef, 0x28, 0xce, 0x53, 0xf6, 0x2b, 0x28, 0x7d, 0xd6, 0xbd, 0x3b, + 0x0b, 0x66, 0x0c, 0xa7, 0x1c, 0x2c, 0x56, 0xc9, 0xfb, 0x82, 0xc9, 0x5f, 0xbc, 0x14, 0x34, 0x30, + 0xac, 0xe6, 0x50, 0x17, 0x2f, 0x0d, 0x2e, 0x2f, 0x7d, 0xbe, 0xdd, 0x0d, 0x8e, 0x6f, 0xda, 0x2d, + 0x47, 0x47, 0x2d, 0x87, 0x2d, 0xc9, 0xaa, 0x2a, 0xc8, 0xed, 0xd9, 0x2d, 0x87, 0x90, 0x9c, 0xd7, + 0xc9, 0x33, 0x4e, 0x73, 0x51, 0xcb, 0x61, 0xfb, 0x75, 0xe4, 0x19, 0x7e, 0x4d, 0x01, 0x39, 0xfc, + 0xaf, 0x3c, 0xab, 0xdf, 0xa1, 0x24, 0x3c, 0x21, 0x8a, 0x8b, 0x1f, 0x89, 0x25, 0x74, 0x3f, 0xb7, + 0x48, 0x4d, 0x3d, 0xc4, 0x6e, 0x8c, 0xaa, 0x8f, 0x63, 0x45, 0xb8, 0x38, 0xad, 0xce, 0x83, 0x89, + 0x0b, 0x6d, 0xa7, 0x79, 0x31, 0x3c, 0xc8, 0xc8, 0x5e, 0xd5, 0x5b, 0x41, 0xde, 0x35, 0xed, 0x6d, + 0xc4, 0x16, 0xbf, 0x4f, 0xf6, 0xf4, 0x85, 0x64, 0x27, 0x5a, 0xa7, 0x59, 0xe0, 0xdb, 0x93, 0x9c, + 0x4d, 0xed, 0xd3, 0xf8, 0x64, 0xf2, 0xb0, 0x34, 0xc4, 0x31, 0x82, 0x22, 0x98, 0x29, 0x97, 0xe8, + 0x15, 0x67, 0xeb, 0xb5, 0x73, 0x5a, 0x51, 0x21, 0x30, 0x63, 0x9e, 0xa4, 0x08, 0x33, 0x2e, 0xfe, + 0x3f, 0x2c, 0xcc, 0x7d, 0x1a, 0x7f, 0x14, 0x30, 0x7f, 0x22, 0x0b, 0x66, 0xd7, 0xac, 0xae, 0x17, + 0xe5, 0x4d, 0x1b, 0x13, 0x9e, 0xe7, 0xc5, 0x49, 0x4d, 0x65, 0xa1, 0x1e, 0xe9, 0xb8, 0x3c, 0x89, + 0xcc, 0xe1, 0xb8, 0x2a, 0xc6, 0xe3, 0xf6, 0x4d, 0x28, 0xa0, 0xd7, 0x12, 0x49, 0x73, 0x32, 0xb1, + 0xa1, 0x14, 0x56, 0x32, 0x7e, 0x43, 0x29, 0xb2, 0xee, 0xf4, 0xf9, 0xfb, 0xb5, 0x2c, 0x38, 0x81, + 0xab, 0x8f, 0x5b, 0x96, 0x8a, 0x66, 0xf3, 0xc0, 0x65, 0xa9, 0xc4, 0x2b, 0xe3, 0x07, 0x68, 0x19, + 0xc5, 0xca, 0xf8, 0xa0, 0x42, 0xc7, 0xcc, 0xe6, 0x88, 0x65, 0xd8, 0x41, 0x6c, 0x8e, 0x59, 0x86, + 0x1d, 0x9e, 0xcd, 0xf1, 0x4b, 0xb1, 0x43, 0xb2, 0xf9, 0xc8, 0x16, 0x58, 0x7f, 0x45, 0x09, 0xd8, + 0x1c, 0xb9, 0xb6, 0x11, 0xc3, 0xe6, 0xc4, 0xc7, 0xb3, 0xe0, 0x3b, 0x87, 0x64, 0xfc, 0x88, 0xd7, + 0x37, 0x86, 0x81, 0xe9, 0x08, 0xd7, 0x38, 0x5e, 0xa1, 0x80, 0x39, 0x46, 0x45, 0xff, 0x29, 0x73, + 0x0c, 0x46, 0x89, 0xa7, 0xcc, 0x89, 0x7d, 0xec, 0x45, 0xca, 0xc6, 0xef, 0x63, 0x1f, 0x5b, 0x7f, + 0xfa, 0xe0, 0xfc, 0x7d, 0x0e, 0x9c, 0xc6, 0x24, 0xac, 0x3b, 0x2d, 0x6b, 0xeb, 0x0a, 0xa5, 0xe2, + 0x9c, 0xd9, 0xde, 0x43, 0x5d, 0xf8, 0xa1, 0xac, 0x2c, 0x4a, 0xff, 0x3f, 0x00, 0x9c, 0x0e, 0x72, + 0x69, 0x84, 0x1b, 0x06, 0xd4, 0xbd, 0x51, 0x8d, 0x3d, 0x58, 0x53, 0x10, 0x75, 0xb6, 0xe6, 0x17, + 0xa2, 0x73, 0xe5, 0xc1, 0xf7, 0x65, 0xc0, 0x54, 0xf0, 0xc5, 0x8f, 0x62, 0x90, 0x09, 0xa3, 0x18, + 0xdc, 0x0a, 0x14, 0xb3, 0xd5, 0x0a, 0xa0, 0xe9, 0xdd, 0xbc, 0x26, 0x75, 0xac, 0x1e, 0xd3, 0x71, + 0x26, 0x9c, 0xb7, 0x8b, 0xc2, 0xc3, 0x2e, 0x91, 0x79, 0xbb, 0xc8, 0x53, 0xef, 0x00, 0x05, 0x7a, + 0x2d, 0x53, 0xb0, 0x8a, 0x1f, 0x95, 0x9d, 0xe5, 0x5b, 0x2c, 0x82, 0xb9, 0x80, 0xee, 0x06, 0x6e, + 0xbb, 0x68, 0xe2, 0xd5, 0x44, 0x71, 0xbc, 0x3b, 0x11, 0x87, 0xfa, 0xf5, 0xd7, 0xa1, 0xbd, 0xac, + 0x0b, 0x82, 0xf6, 0xac, 0xa1, 0x4b, 0x1e, 0xcf, 0xae, 0x58, 0xa9, 0xd3, 0x69, 0x5f, 0x31, 0xd8, + 0xa9, 0xfa, 0x44, 0xbb, 0x62, 0xdc, 0xe1, 0xfc, 0x6c, 0xef, 0xe1, 0xfc, 0xe4, 0xbb, 0x62, 0x02, + 0x1d, 0xa3, 0xd8, 0x15, 0x8b, 0x2b, 0x70, 0x0c, 0xeb, 0x92, 0x79, 0x6a, 0x3d, 0xb3, 0x20, 0x82, + 0x6f, 0xca, 0xf6, 0x75, 0xab, 0x02, 0xa2, 0x5b, 0x55, 0xbf, 0xf8, 0x82, 0xb1, 0xc1, 0x53, 0xd5, + 0xa7, 0x82, 0xc2, 0x96, 0xe3, 0xee, 0x9a, 0xfe, 0x06, 0x7e, 0xaf, 0x17, 0x37, 0x0b, 0xdc, 0xb7, + 0x4c, 0xf2, 0xe8, 0x2c, 0x2f, 0xd6, 0xdb, 0xe7, 0x5a, 0x1d, 0x16, 0x16, 0x0b, 0x3f, 0xaa, 0x37, + 0x81, 0x59, 0x16, 0x1d, 0xab, 0x8a, 0xba, 0x1e, 0x6a, 0xb1, 0x63, 0xca, 0x62, 0xa2, 0x7a, 0x16, + 0xcc, 0xb0, 0x84, 0x65, 0xab, 0x8d, 0xba, 0xec, 0x6e, 0x42, 0x21, 0x4d, 0x3d, 0x0d, 0x0a, 0x56, + 0xf7, 0xd9, 0x5d, 0xc7, 0x26, 0xbe, 0xb9, 0x93, 0x3a, 0x7b, 0x23, 0xee, 0x3b, 0x34, 0x5f, 0x60, + 0xb4, 0x52, 0x67, 0xfa, 0xde, 0x64, 0xf8, 0xd9, 0x61, 0x26, 0x10, 0x89, 0x03, 0x26, 0x62, 0x14, + 0xf6, 0x9a, 0x4d, 0x84, 0x5a, 0xec, 0xd4, 0x81, 0xff, 0x9a, 0x30, 0x94, 0x62, 0xe2, 0xe9, 0xc6, + 0x11, 0xc5, 0x52, 0xfc, 0xf0, 0x29, 0x50, 0xa0, 0xf1, 0xc5, 0xe1, 0xcb, 0xe6, 0xfa, 0x0a, 0xe3, + 0x9c, 0x28, 0x8c, 0x9b, 0x60, 0xc6, 0x76, 0x70, 0x75, 0x1b, 0xa6, 0x6b, 0xee, 0x76, 0xe3, 0x56, + 0x13, 0x69, 0xb9, 0xc1, 0xd0, 0x51, 0xe5, 0x7e, 0x5b, 0x3d, 0xa6, 0x0b, 0xc5, 0xa8, 0xff, 0x7f, + 0x70, 0xfc, 0x02, 0x3b, 0x69, 0xdb, 0x65, 0x25, 0x67, 0xa3, 0x7d, 0xef, 0x7a, 0x4a, 0x5e, 0x14, + 0xff, 0x5c, 0x3d, 0xa6, 0xf7, 0x16, 0xa6, 0xfe, 0x10, 0x98, 0xc3, 0xaf, 0x2d, 0xe7, 0x92, 0x4f, + 0xb8, 0x12, 0x6d, 0x70, 0xf4, 0x14, 0xbf, 0x2e, 0xfc, 0xb8, 0x7a, 0x4c, 0xef, 0x29, 0x4a, 0xad, + 0x01, 0xb0, 0xe3, 0xed, 0xb6, 0x59, 0xc1, 0xb9, 0x68, 0x91, 0xec, 0x29, 0x78, 0x35, 0xf8, 0x69, + 0xf5, 0x98, 0xce, 0x15, 0xa1, 0xae, 0x81, 0x29, 0xef, 0xb2, 0xc7, 0xca, 0xcb, 0x47, 0x6f, 0x72, + 0xf7, 0x94, 0x67, 0xf8, 0xff, 0xac, 0x1e, 0xd3, 0xc3, 0x02, 0xd4, 0x0a, 0x98, 0xec, 0x5c, 0x60, + 0x85, 0x15, 0xfa, 0xdc, 0xa9, 0xdc, 0xbf, 0xb0, 0x8d, 0x0b, 0x41, 0x59, 0xc1, 0xef, 0x98, 0xb0, + 0x66, 0x77, 0x9f, 0x95, 0x35, 0x21, 0x4d, 0x58, 0xd9, 0xff, 0x07, 0x13, 0x16, 0x14, 0xa0, 0x56, + 0xc0, 0x54, 0xd7, 0x36, 0x3b, 0xdd, 0x1d, 0xc7, 0xeb, 0xce, 0x4f, 0xf6, 0xf8, 0x47, 0x46, 0x97, + 0x56, 0x67, 0xff, 0xe8, 0xe1, 0xdf, 0xea, 0x53, 0xc1, 0xa9, 0x3d, 0x72, 0x4f, 0x9b, 0x76, 0xd9, + 0xea, 0x7a, 0x96, 0xbd, 0xed, 0x07, 0xf9, 0xa3, 0xbd, 0x49, 0xff, 0x8f, 0xea, 0x02, 0x3b, 0xad, + 0x00, 0x88, 0x6e, 0xc2, 0xde, 0x4d, 0x39, 0x5a, 0x2d, 0x77, 0x48, 0xe1, 0x99, 0x20, 0x87, 0x3f, + 0x11, 0x0f, 0xc3, 0xb9, 0xfe, 0x0b, 0x7e, 0xbd, 0xb2, 0x43, 0x14, 0x18, 0xff, 0x84, 0xc7, 0x46, + 0xdb, 0xd9, 0x70, 0x9d, 0x6d, 0x17, 0x75, 0xbb, 0xcc, 0xf1, 0x90, 0x4b, 0xc1, 0x0a, 0x6e, 0x75, + 0xd7, 0xad, 0x6d, 0x6a, 0x9c, 0x30, 0xb7, 0x6c, 0x3e, 0x89, 0xce, 0x3a, 0xab, 0xe8, 0x12, 0xb9, + 0xfb, 0x6b, 0xfe, 0xb8, 0x3f, 0xeb, 0xf4, 0x53, 0xe0, 0xcd, 0x60, 0x86, 0x57, 0x32, 0x7a, 0x49, + 0x89, 0xf5, 0x60, 0x60, 0x8b, 0xb1, 0x37, 0x78, 0x13, 0x98, 0x13, 0x65, 0x9a, 0x1b, 0x62, 0x14, + 0xbf, 0x2b, 0x84, 0x37, 0x82, 0xe3, 0x3d, 0x8a, 0xe5, 0x9f, 0xdd, 0xcf, 0x84, 0x67, 0xf7, 0x6f, + 0x00, 0x20, 0x94, 0xe2, 0xbe, 0xc5, 0x5c, 0x0f, 0xa6, 0x02, 0xb9, 0xec, 0x9b, 0xe1, 0x2b, 0x19, + 0x30, 0xe9, 0x0b, 0x5b, 0xbf, 0x0c, 0x78, 0x7c, 0xb1, 0xb9, 0x8d, 0x04, 0x36, 0xdd, 0x16, 0xd2, + 0xf0, 0x38, 0x12, 0xba, 0xf3, 0x1a, 0x96, 0xd7, 0xf6, 0x8f, 0xa5, 0xf4, 0x26, 0xab, 0x1b, 0x00, + 0x58, 0x04, 0x23, 0x23, 0x3c, 0xa7, 0x72, 0x47, 0x02, 0x7d, 0xa0, 0xf2, 0xc0, 0x95, 0x71, 0xf6, + 0xf1, 0xec, 0x10, 0xc9, 0x14, 0xc8, 0xd7, 0x37, 0x4a, 0x65, 0xad, 0x78, 0x4c, 0x9d, 0x03, 0x40, + 0x7b, 0xce, 0x86, 0xa6, 0x57, 0xb4, 0x6a, 0x59, 0x2b, 0x66, 0xe0, 0x2b, 0xb3, 0x60, 0x2a, 0x50, + 0x82, 0xbe, 0x8d, 0xd4, 0x98, 0x68, 0x0d, 0xbc, 0x07, 0xe2, 0xa0, 0x52, 0xf1, 0x42, 0xf6, 0x0c, + 0x70, 0xf5, 0x5e, 0x17, 0x2d, 0x5b, 0x6e, 0xd7, 0xd3, 0x9d, 0x4b, 0xcb, 0x8e, 0x1b, 0x84, 0xb5, + 0xf4, 0xef, 0x3b, 0x8e, 0xf8, 0x8c, 0x2d, 0x8a, 0x16, 0x22, 0x47, 0x19, 0x90, 0xcb, 0x56, 0x88, + 0xc3, 0x04, 0x5c, 0xae, 0x47, 0x2f, 0x18, 0xee, 0x22, 0xdd, 0xb9, 0xd4, 0x2d, 0xd9, 0xad, 0xb2, + 0xd3, 0xde, 0xdb, 0xb5, 0xbb, 0xcc, 0x26, 0x88, 0xfa, 0x8c, 0xb9, 0x43, 0x6e, 0x79, 0x99, 0x03, + 0xa0, 0x5c, 0x5b, 0x5b, 0xd3, 0xca, 0x46, 0xa5, 0x56, 0x2d, 0x1e, 0xc3, 0xdc, 0x32, 0x4a, 0x8b, + 0x6b, 0x98, 0x3b, 0x3f, 0x0c, 0x26, 0x7d, 0x9d, 0x3e, 0x70, 0xb9, 0x73, 0x09, 0x4c, 0xfa, 0x5a, + 0xce, 0x46, 0x84, 0x27, 0xf4, 0x1e, 0x49, 0xdb, 0x35, 0x5d, 0x8f, 0xf8, 0x51, 0xfb, 0x85, 0x2c, + 0x9a, 0x5d, 0xa4, 0x07, 0xbf, 0x9d, 0x7d, 0x32, 0xa3, 0x40, 0x05, 0x73, 0xa5, 0xb5, 0xb5, 0x46, + 0x4d, 0x6f, 0x54, 0x6b, 0xc6, 0x6a, 0xa5, 0xba, 0x42, 0x47, 0xc8, 0xca, 0x4a, 0xb5, 0xa6, 0x6b, + 0x74, 0x80, 0xac, 0x17, 0x33, 0xf4, 0x96, 0xa1, 0xc5, 0x49, 0x50, 0xe8, 0x10, 0xee, 0xc2, 0x2f, + 0x2a, 0x09, 0x4f, 0x9c, 0x06, 0x38, 0x45, 0xdc, 0x83, 0x22, 0xf8, 0xa2, 0x67, 0xfb, 0x9c, 0xd7, + 0x3a, 0x0b, 0x66, 0xa8, 0x2d, 0xd7, 0x25, 0xcb, 0xf8, 0xec, 0x2a, 0x41, 0x21, 0x0d, 0x7e, 0x34, + 0x9b, 0xe0, 0x18, 0x6a, 0x5f, 0x8a, 0x92, 0x19, 0x17, 0x7f, 0x32, 0xcc, 0xad, 0x42, 0x2a, 0x98, + 0xab, 0x54, 0x0d, 0x4d, 0xaf, 0x96, 0xd6, 0x58, 0x16, 0x45, 0x9d, 0x07, 0x27, 0xab, 0x35, 0x16, + 0xc8, 0xa9, 0x4e, 0xee, 0x2f, 0x5d, 0xdf, 0xa8, 0xe9, 0x46, 0x31, 0xaf, 0x9e, 0x06, 0x2a, 0x7d, + 0x16, 0xae, 0xff, 0x2d, 0xa8, 0x4f, 0x04, 0x37, 0xae, 0x55, 0xd6, 0x2b, 0x46, 0xa3, 0xb6, 0xdc, + 0xd0, 0x6b, 0xe7, 0xeb, 0x18, 0x41, 0x5d, 0x5b, 0x2b, 0x61, 0x41, 0xe2, 0x6e, 0x1b, 0x9a, 0x50, + 0xaf, 0x02, 0xc7, 0xc9, 0x4d, 0x62, 0xe4, 0x0a, 0x61, 0x5a, 0xdf, 0xa4, 0x7a, 0x1d, 0x98, 0xaf, + 0x54, 0xeb, 0x9b, 0xcb, 0xcb, 0x95, 0x72, 0x45, 0xab, 0x1a, 0x8d, 0x0d, 0x4d, 0x5f, 0xaf, 0xd4, + 0xeb, 0xf8, 0xdf, 0xe2, 0x14, 0xfc, 0xb0, 0x02, 0x0a, 0xb4, 0xcf, 0x84, 0xef, 0x55, 0xc0, 0xec, + 0x39, 0xb3, 0x6d, 0xe1, 0x81, 0x82, 0x5c, 0xf2, 0x04, 0xaf, 0x17, 0x5c, 0xd4, 0x3d, 0x72, 0x19, + 0x14, 0x73, 0x51, 0x27, 0x2f, 0xf0, 0xc7, 0x79, 0xd1, 0x30, 0x44, 0xd1, 0x78, 0x56, 0x0c, 0x10, + 0xb4, 0xc6, 0x05, 0xa1, 0xb6, 0x88, 0xc9, 0xcd, 0x6b, 0x03, 0x9c, 0xcf, 0x0b, 0x38, 0x97, 0x0f, + 0x57, 0x7c, 0x32, 0xf0, 0x7f, 0x69, 0x54, 0xe0, 0x17, 0xc1, 0xcc, 0x66, 0xb5, 0xb4, 0x69, 0xac, + 0xd6, 0xf4, 0xca, 0x0f, 0x92, 0x70, 0xb0, 0xb3, 0x60, 0x6a, 0xb9, 0xa6, 0x2f, 0x56, 0x96, 0x96, + 0xb4, 0x6a, 0x31, 0xaf, 0x5e, 0x0d, 0xae, 0xaa, 0x6b, 0xfa, 0xb9, 0x4a, 0x59, 0x6b, 0x6c, 0x56, + 0x4b, 0xe7, 0x4a, 0x95, 0x35, 0xd2, 0x47, 0x14, 0x62, 0x2e, 0xa8, 0x9a, 0x80, 0x3f, 0x9a, 0x03, + 0x80, 0x36, 0x1d, 0x5b, 0xd2, 0xfc, 0x35, 0x46, 0x7f, 0x9a, 0x74, 0xd2, 0x10, 0x16, 0x13, 0xa1, + 0xbf, 0x15, 0x30, 0xe9, 0xb2, 0x0f, 0x6c, 0x19, 0x65, 0x50, 0x39, 0xf4, 0xd1, 0x2f, 0x4d, 0x0f, + 0x7e, 0x87, 0xef, 0x4b, 0x32, 0x47, 0x88, 0x24, 0x2c, 0x19, 0x92, 0xcb, 0xa3, 0x01, 0x12, 0xbe, + 0x28, 0x03, 0xe6, 0xc4, 0x86, 0xe1, 0x46, 0x10, 0x63, 0x4a, 0xae, 0x11, 0xe2, 0xcf, 0x9c, 0x91, + 0x75, 0xf6, 0x2e, 0x36, 0x9c, 0x02, 0x5f, 0x33, 0xe9, 0xa9, 0x4c, 0xdf, 0x62, 0x29, 0x66, 0x30, + 0xf1, 0xd8, 0xe8, 0xa0, 0x77, 0xd8, 0x1a, 0x97, 0xbd, 0xa2, 0x02, 0xdf, 0x9d, 0x03, 0xb3, 0xc2, + 0x3d, 0x49, 0xf0, 0x9f, 0x33, 0x32, 0x77, 0x9f, 0x70, 0x37, 0x30, 0x65, 0x0e, 0x7b, 0x03, 0xd3, + 0xd9, 0x1f, 0xcb, 0x80, 0x09, 0x96, 0x48, 0x18, 0x5c, 0xab, 0x62, 0x5b, 0xe0, 0x38, 0x98, 0x5e, + 0xd1, 0x8c, 0x46, 0xdd, 0x28, 0xe9, 0x86, 0xb6, 0x54, 0xcc, 0xa8, 0xa7, 0xc0, 0x89, 0x0d, 0x4d, + 0xaf, 0xd7, 0x30, 0x3f, 0x37, 0xf4, 0x1a, 0xe9, 0x08, 0x29, 0x9b, 0x31, 0x0c, 0x6b, 0xda, 0xd2, + 0x8a, 0xd6, 0x58, 0x2c, 0xd5, 0xb5, 0xa2, 0x82, 0xff, 0xad, 0xd6, 0x0c, 0xad, 0xde, 0x58, 0xaa, + 0x94, 0xf4, 0x87, 0x8a, 0x39, 0xfc, 0x6f, 0xdd, 0xd0, 0x4b, 0x86, 0xb6, 0x52, 0x29, 0x93, 0x9b, + 0x7f, 0xb1, 0x06, 0xe4, 0xf1, 0x60, 0xaa, 0xad, 0x6f, 0x18, 0x0f, 0x15, 0x0b, 0xc9, 0xbd, 0xfb, + 0x7a, 0x1b, 0x37, 0x66, 0xef, 0xbe, 0xb8, 0xea, 0xc7, 0x70, 0x45, 0x94, 0x02, 0x8a, 0x94, 0x02, + 0xed, 0x72, 0x07, 0xb9, 0x16, 0xb2, 0x9b, 0x08, 0x5e, 0x94, 0x09, 0x1d, 0x77, 0x20, 0x8e, 0x15, + 0x19, 0x23, 0x38, 0xcb, 0x93, 0xbe, 0xf4, 0x18, 0xed, 0xb9, 0x03, 0x46, 0xfb, 0xa7, 0x92, 0xba, + 0xf7, 0xf5, 0x92, 0x3b, 0x12, 0xc8, 0x3e, 0x9e, 0xc4, 0xbd, 0x6f, 0x00, 0x05, 0x63, 0x89, 0x08, + 0x19, 0x31, 0xa6, 0x17, 0x15, 0xf8, 0xb6, 0x29, 0x50, 0xa4, 0x84, 0x72, 0x3e, 0x53, 0x3f, 0xcf, + 0x2e, 0xab, 0x6a, 0x24, 0x08, 0x01, 0xe5, 0x1f, 0xd1, 0xcd, 0x8a, 0x47, 0x74, 0x85, 0xa5, 0x37, + 0xa5, 0x77, 0x9f, 0x3b, 0xa9, 0xfa, 0x71, 0x0e, 0x52, 0xd1, 0x57, 0x25, 0xa5, 0xa7, 0x7e, 0xb1, + 0xd5, 0x8f, 0xe7, 0x42, 0x15, 0x76, 0x65, 0x92, 0x26, 0x8b, 0x4c, 0xfc, 0xbd, 0x51, 0x49, 0xbd, + 0x65, 0x05, 0x07, 0xb5, 0x98, 0xcb, 0x94, 0xd2, 0xf3, 0x96, 0x1d, 0x44, 0x41, 0xfa, 0x28, 0x7c, + 0x37, 0x0b, 0x72, 0x75, 0xc7, 0xf5, 0x46, 0x85, 0x41, 0xd2, 0x1d, 0x3e, 0x8e, 0x03, 0xf5, 0xe8, + 0x99, 0x53, 0x7a, 0x3b, 0x7c, 0xf1, 0xf5, 0x8f, 0x21, 0x8a, 0xd6, 0x71, 0x30, 0x47, 0x29, 0x09, + 0x62, 0x9a, 0x7f, 0x27, 0x4b, 0xfb, 0xab, 0x07, 0x65, 0x11, 0x39, 0x0b, 0x66, 0xb8, 0x23, 0xd5, + 0xc1, 0xfd, 0x9a, 0x7c, 0x1a, 0xfc, 0x55, 0x1e, 0x97, 0x25, 0x11, 0x97, 0x7e, 0xf3, 0xc6, 0x20, + 0x2c, 0xf8, 0xa8, 0x7a, 0xa6, 0x24, 0x01, 0xb9, 0x62, 0x2a, 0x4f, 0x1f, 0x91, 0x17, 0x28, 0xa0, + 0xc0, 0x3c, 0x9c, 0x46, 0x8a, 0x40, 0x52, 0xcd, 0x08, 0x98, 0x20, 0xe7, 0x09, 0xa5, 0x8c, 0x5a, + 0x33, 0xe2, 0xeb, 0x4f, 0x1f, 0x87, 0x7f, 0x63, 0xae, 0x7b, 0xa5, 0x7d, 0xd3, 0x6a, 0x9b, 0x17, + 0xda, 0x09, 0x02, 0x61, 0x7e, 0x34, 0xe1, 0x61, 0xa5, 0xa0, 0xa9, 0x42, 0x7d, 0x11, 0x1c, 0x7f, + 0x1a, 0x98, 0x72, 0x83, 0x85, 0x35, 0xff, 0x2c, 0x77, 0x8f, 0xdb, 0x24, 0xfb, 0xae, 0x87, 0x39, + 0x13, 0x9d, 0x4c, 0x92, 0xa2, 0x67, 0x2c, 0x27, 0x29, 0xa6, 0x4b, 0xad, 0xd6, 0x32, 0x32, 0xbd, + 0x3d, 0x17, 0xb5, 0x12, 0x0d, 0x11, 0x22, 0x8b, 0xa6, 0x78, 0x4e, 0x08, 0xe1, 0xab, 0xd6, 0x44, + 0x74, 0xbe, 0x7f, 0x40, 0x6f, 0xe0, 0xd3, 0x32, 0x92, 0x2e, 0xe9, 0xad, 0x01, 0x24, 0x35, 0x01, + 0x92, 0x67, 0x0e, 0x47, 0x44, 0xfa, 0x80, 0xfc, 0x82, 0x02, 0xe6, 0xa8, 0x9d, 0x30, 0x6a, 0x4c, + 0x7e, 0x3b, 0xa1, 0x27, 0x04, 0x77, 0x6b, 0x04, 0x4f, 0xce, 0x48, 0x60, 0x49, 0xe2, 0x37, 0x21, + 0x47, 0x47, 0xfa, 0xc8, 0x7c, 0xb6, 0x00, 0x00, 0xe7, 0xe5, 0xf6, 0xd1, 0x42, 0x18, 0x4a, 0x0a, + 0xbe, 0x9d, 0xcd, 0x3f, 0xea, 0x42, 0x8c, 0x52, 0xce, 0x83, 0x2d, 0xd8, 0x56, 0x11, 0x13, 0xa5, + 0x46, 0x95, 0x3f, 0x49, 0x68, 0xf3, 0x32, 0x1f, 0xb3, 0x81, 0x83, 0xfb, 0x90, 0xbd, 0xdc, 0xa3, + 0x09, 0x8c, 0xdf, 0x41, 0xa4, 0x24, 0x43, 0x6d, 0x6d, 0x88, 0xb9, 0xe4, 0x3c, 0x38, 0xa9, 0x6b, + 0xa5, 0xa5, 0x5a, 0x75, 0xed, 0x21, 0xfe, 0x7a, 0x81, 0xa2, 0xc2, 0x4f, 0x4e, 0x52, 0x81, 0xed, + 0xf5, 0x09, 0xfb, 0x40, 0x91, 0x57, 0x71, 0xb3, 0x15, 0x6e, 0x3a, 0x3f, 0xb8, 0x57, 0x93, 0x28, + 0xf6, 0x28, 0x51, 0x78, 0x1e, 0xaf, 0x46, 0x3f, 0xa9, 0x80, 0x62, 0x78, 0x1b, 0x2d, 0xbb, 0x2b, + 0xa6, 0x26, 0x3a, 0xc1, 0x75, 0xe8, 0x2e, 0x4a, 0xe8, 0x04, 0xe7, 0x27, 0xa8, 0x37, 0x83, 0xb9, + 0xe6, 0x0e, 0x6a, 0x5e, 0xac, 0xd8, 0xfe, 0xee, 0x30, 0xdd, 0x4a, 0xec, 0x49, 0x15, 0x81, 0x79, + 0x50, 0x04, 0x46, 0x9c, 0x44, 0x0b, 0x83, 0x34, 0x4f, 0x54, 0x04, 0x2e, 0xbf, 0x1f, 0xe0, 0x52, + 0x15, 0x70, 0xb9, 0x67, 0xa8, 0x52, 0x93, 0xc1, 0x52, 0x1d, 0x02, 0x16, 0x08, 0x4e, 0xd7, 0x36, + 0x8c, 0x4a, 0xad, 0xda, 0xd8, 0xac, 0x6b, 0x4b, 0x8d, 0x45, 0x1f, 0x9c, 0x7a, 0x51, 0x81, 0x5f, + 0xcf, 0x82, 0x09, 0x4a, 0x56, 0xb7, 0xe7, 0xf6, 0x58, 0x3e, 0xdc, 0x53, 0xe6, 0x40, 0xb8, 0x27, + 0xf8, 0x36, 0xe9, 0xb3, 0xfc, 0x01, 0x23, 0x58, 0x3d, 0x11, 0xfd, 0xd4, 0x33, 0xc0, 0x04, 0x05, + 0xd9, 0x77, 0x1a, 0x39, 0x13, 0xd1, 0x4b, 0xb1, 0x62, 0x74, 0x3f, 0xbb, 0xe4, 0xb9, 0xfe, 0x01, + 0x64, 0x8c, 0x65, 0x82, 0x38, 0xb1, 0x6a, 0x75, 0x3d, 0xc7, 0xbd, 0x02, 0xdf, 0x90, 0x01, 0x13, + 0xe7, 0x90, 0xdb, 0xb5, 0x1c, 0xfb, 0xc0, 0x66, 0xe9, 0x0d, 0x60, 0xba, 0xe3, 0xa2, 0x7d, 0xcb, + 0xd9, 0xeb, 0x86, 0x13, 0x73, 0x3e, 0x49, 0x85, 0x60, 0xd2, 0xdc, 0xf3, 0x76, 0x1c, 0x37, 0x3c, + 0x37, 0xef, 0xbf, 0xab, 0x67, 0x00, 0xa0, 0xcf, 0x55, 0x73, 0x17, 0xb1, 0x2d, 0x60, 0x2e, 0x45, + 0x55, 0x41, 0xce, 0xb3, 0x76, 0x11, 0x0b, 0x7b, 0x47, 0x9e, 0xd5, 0x79, 0x30, 0x41, 0x82, 0x54, + 0xb1, 0x60, 0x60, 0x8a, 0xee, 0xbf, 0xc2, 0xff, 0xae, 0x80, 0xe9, 0x15, 0xe4, 0x31, 0x52, 0xbb, + 0x7c, 0xf4, 0x99, 0x98, 0xd0, 0xd0, 0xb8, 0x7b, 0x6d, 0x9b, 0x5d, 0xff, 0xb7, 0x60, 0xf5, 0x4d, + 0x4c, 0x0c, 0x43, 0xf0, 0x29, 0x5c, 0x94, 0x4d, 0xf8, 0xee, 0xac, 0xec, 0x79, 0x47, 0xc6, 0xcc, + 0x05, 0x8e, 0xc0, 0x48, 0xd9, 0x9a, 0xdc, 0x67, 0x39, 0x0e, 0x84, 0x44, 0xe5, 0x4b, 0x62, 0xc5, + 0xe8, 0x41, 0x6e, 0xc9, 0x93, 0x92, 0x83, 0x29, 0x49, 0x5f, 0xbc, 0xbe, 0xa5, 0x80, 0xe9, 0xfa, + 0x8e, 0x73, 0x89, 0x11, 0xc0, 0x5f, 0x88, 0x1a, 0x07, 0xd5, 0x75, 0x60, 0x6a, 0xbf, 0x07, 0xa6, + 0x30, 0x21, 0xfa, 0xde, 0x4e, 0xf8, 0x88, 0x92, 0x14, 0x26, 0x8e, 0xb8, 0x91, 0xdf, 0xaa, 0xa9, + 0x7e, 0x3f, 0x98, 0x60, 0x54, 0xb3, 0xf9, 0x73, 0x3c, 0xc0, 0x7e, 0x66, 0xbe, 0x81, 0x39, 0xb1, + 0x81, 0xc9, 0x90, 0x8f, 0x6e, 0xdc, 0x18, 0x02, 0x8f, 0x67, 0xc9, 0x39, 0x79, 0x1f, 0xf8, 0xf2, + 0x08, 0x80, 0x87, 0xdf, 0xce, 0xc8, 0xae, 0x32, 0x05, 0x1c, 0x08, 0x28, 0x38, 0x54, 0x20, 0xf7, + 0x81, 0xc5, 0x8d, 0xe1, 0x6a, 0xea, 0x1c, 0x98, 0x59, 0xb2, 0xb6, 0xb6, 0x82, 0x5e, 0xef, 0x25, + 0x19, 0x39, 0x96, 0x46, 0xef, 0x50, 0x62, 0xa3, 0x65, 0xcf, 0x75, 0x91, 0xed, 0x37, 0x8a, 0xa9, + 0x53, 0x4f, 0xaa, 0x7a, 0x0b, 0x38, 0xee, 0x77, 0xf4, 0x7e, 0x46, 0x2a, 0x96, 0xbd, 0xc9, 0xf0, + 0x9b, 0xd2, 0x5b, 0x14, 0x3e, 0x47, 0xf9, 0x26, 0x45, 0x28, 0xe0, 0xbd, 0x60, 0x76, 0x87, 0xe6, + 0x26, 0xf3, 0x38, 0xbf, 0xb3, 0x3c, 0xdd, 0x13, 0x30, 0x73, 0x1d, 0x75, 0xbb, 0xe6, 0x36, 0xd2, + 0xc5, 0xcc, 0x3d, 0xea, 0xab, 0x24, 0xb9, 0xb5, 0x42, 0x6e, 0xb7, 0x43, 0xa2, 0x25, 0xe9, 0x4b, + 0xc7, 0x57, 0x1f, 0x0f, 0x72, 0xcb, 0x56, 0x1b, 0xc1, 0x9f, 0xca, 0x82, 0x29, 0x1d, 0x35, 0x1d, + 0xbb, 0x89, 0xdf, 0x38, 0x7f, 0x85, 0x7f, 0xe4, 0x75, 0xe7, 0x01, 0x11, 0x9a, 0x5b, 0x85, 0x06, + 0xe1, 0x72, 0x16, 0x82, 0x32, 0x22, 0xf4, 0xe6, 0x75, 0x01, 0x6f, 0xca, 0x02, 0x6f, 0x6e, 0x97, + 0x2f, 0x6a, 0x0c, 0xf1, 0xb8, 0xb1, 0x1d, 0xb9, 0xb5, 0xd5, 0x76, 0x4c, 0x61, 0x25, 0xa3, 0xd7, + 0xb6, 0xb9, 0x15, 0x14, 0x7d, 0xb7, 0x73, 0xc7, 0xdb, 0xb0, 0x6c, 0x3b, 0x38, 0xdf, 0x78, 0x20, + 0x5d, 0xdc, 0x84, 0x8b, 0x0d, 0x11, 0x41, 0xda, 0xce, 0x6a, 0x8f, 0x90, 0xec, 0x9b, 0xc1, 0xdc, + 0x85, 0x2b, 0x1e, 0xea, 0xb2, 0x5c, 0xac, 0xda, 0x9c, 0xde, 0x93, 0x0a, 0xdf, 0x23, 0x15, 0x4a, + 0x22, 0xa6, 0xc2, 0x64, 0xac, 0x5e, 0x1d, 0xc2, 0x9c, 0x3f, 0x09, 0x8a, 0xd5, 0xda, 0x92, 0x46, + 0xdc, 0x67, 0x7c, 0x7f, 0x84, 0x6d, 0xf8, 0x52, 0x05, 0xcc, 0x90, 0xbd, 0x68, 0x1f, 0x85, 0x1b, + 0x25, 0xf6, 0xbf, 0xe1, 0x97, 0xa4, 0x5d, 0x6b, 0x48, 0x93, 0xf9, 0x0a, 0xa2, 0x19, 0xbd, 0x65, + 0xb5, 0x7b, 0x19, 0x9d, 0xd7, 0x7b, 0x52, 0xfb, 0x00, 0xa2, 0xf4, 0x05, 0xe4, 0xb7, 0xa4, 0xfc, + 0x6b, 0x06, 0x51, 0x77, 0x54, 0xa8, 0x7c, 0x40, 0x01, 0xd3, 0x78, 0xfe, 0xe7, 0x83, 0x52, 0x13, + 0x40, 0x71, 0xec, 0xf6, 0x95, 0x70, 0x8e, 0xeb, 0xbf, 0x26, 0x52, 0x92, 0x3f, 0x97, 0x9e, 0x86, + 0x11, 0x16, 0x71, 0xb4, 0x8c, 0x09, 0xbf, 0xf7, 0x4b, 0x4d, 0xce, 0x06, 0x10, 0x77, 0x54, 0xf0, + 0xfd, 0x7a, 0x1e, 0x14, 0x36, 0x3b, 0x04, 0xb9, 0xaf, 0x65, 0x65, 0x82, 0x27, 0x1f, 0xf0, 0xad, + 0xc6, 0x66, 0x56, 0xdb, 0x69, 0x9a, 0xed, 0x8d, 0xf0, 0x90, 0x4a, 0x98, 0xa0, 0xde, 0xc3, 0xdc, + 0xad, 0xe8, 0x09, 0x9f, 0x9b, 0x63, 0xe3, 0x0a, 0x13, 0x1e, 0x71, 0x7e, 0xec, 0xb7, 0x81, 0x13, + 0x2d, 0xab, 0x6b, 0x5e, 0x68, 0x23, 0xcd, 0x6e, 0xba, 0x57, 0x28, 0x3b, 0xa8, 0x6b, 0xca, 0xc1, + 0x0f, 0xea, 0x7d, 0x20, 0xdf, 0xf5, 0xae, 0xb4, 0xe9, 0xc4, 0x8f, 0x77, 0x7b, 0x8f, 0xac, 0xaa, + 0x8e, 0xb3, 0xeb, 0xf4, 0x2f, 0xfe, 0x4e, 0xc1, 0x09, 0xc9, 0xfb, 0x11, 0xef, 0x02, 0x05, 0xc7, + 0xb5, 0xb6, 0x2d, 0x1a, 0xae, 0x7f, 0xee, 0x40, 0xb8, 0x2c, 0x6a, 0x0a, 0xd4, 0x48, 0x16, 0x9d, + 0x65, 0x85, 0xef, 0x97, 0xbe, 0xa4, 0x9f, 0xd0, 0x48, 0xc1, 0x19, 0xcf, 0x1d, 0x89, 0xaf, 0x91, + 0x8a, 0x9a, 0x11, 0x4d, 0x56, 0xfa, 0x83, 0xf0, 0xe7, 0xb2, 0x60, 0x72, 0xc9, 0xb9, 0x64, 0x13, + 0x81, 0xbd, 0x5b, 0xce, 0x66, 0xed, 0x73, 0x7e, 0x4a, 0xbc, 0xd9, 0x29, 0xd6, 0x59, 0x9a, 0xb4, + 0xd6, 0xaf, 0x32, 0x02, 0x86, 0x58, 0x0d, 0x90, 0xbc, 0x89, 0x27, 0xae, 0x9e, 0xf4, 0xf9, 0xfa, + 0x47, 0x0a, 0xc8, 0x2d, 0xb9, 0x4e, 0x07, 0xbe, 0x35, 0x93, 0x60, 0x1f, 0xb9, 0xe5, 0x3a, 0x1d, + 0x83, 0x5c, 0xb2, 0x11, 0x7a, 0x88, 0xf3, 0x69, 0xea, 0xdd, 0x60, 0xb2, 0xe3, 0x74, 0x2d, 0xcf, + 0x9f, 0x0e, 0xcc, 0xdd, 0xf9, 0xb8, 0xbe, 0x5a, 0xb9, 0xc1, 0x32, 0xe9, 0x41, 0x76, 0xdc, 0xfb, + 0x12, 0x16, 0x62, 0xbe, 0x60, 0x36, 0xfa, 0x17, 0x8d, 0xf4, 0xa4, 0xc2, 0x97, 0xf1, 0x48, 0x3e, + 0x53, 0x44, 0xf2, 0x09, 0x7d, 0x38, 0xec, 0x3a, 0x9d, 0x91, 0xec, 0xfc, 0xbc, 0x2a, 0x40, 0xf5, + 0x59, 0x02, 0xaa, 0xb7, 0x4a, 0xd5, 0x99, 0x3e, 0xa2, 0xef, 0xcf, 0x01, 0x40, 0xcc, 0x85, 0x4d, + 0x3c, 0x91, 0x91, 0xb3, 0x95, 0x7e, 0x22, 0xc7, 0xf1, 0xb2, 0x24, 0xf2, 0xf2, 0x49, 0x11, 0xd6, + 0x08, 0x29, 0x3e, 0x82, 0xa3, 0x25, 0x90, 0xdf, 0xc3, 0x9f, 0x19, 0x47, 0x25, 0x8b, 0x20, 0xaf, + 0x3a, 0xfd, 0x13, 0xfe, 0x61, 0x06, 0xe4, 0x49, 0x82, 0x7a, 0x06, 0x00, 0x32, 0x40, 0xd3, 0xb3, + 0x06, 0x19, 0x32, 0x14, 0x73, 0x29, 0x44, 0x5a, 0xad, 0x16, 0xfb, 0x4c, 0x4d, 0xdf, 0x30, 0x01, + 0xff, 0x4d, 0x86, 0x6d, 0x52, 0x16, 0x1b, 0xc8, 0xb9, 0x14, 0xfc, 0x37, 0x79, 0x5b, 0x43, 0x5b, + 0x34, 0xd6, 0x6a, 0x4e, 0x0f, 0x13, 0x82, 0xbf, 0xd7, 0x82, 0xfb, 0x34, 0xfc, 0xbf, 0x49, 0x0a, + 0x9e, 0xd4, 0x12, 0xb1, 0x5c, 0x0c, 0xab, 0x28, 0x90, 0x4c, 0xbd, 0xc9, 0xf0, 0xf5, 0x81, 0xd8, + 0x2c, 0x09, 0x62, 0x73, 0x47, 0x02, 0xf6, 0xa6, 0x2f, 0x3c, 0x5f, 0xc9, 0x83, 0xa9, 0xaa, 0xd3, + 0x62, 0xb2, 0xc3, 0x4d, 0xfc, 0x3e, 0x9e, 0x4f, 0x34, 0xf1, 0x0b, 0xca, 0x88, 0x10, 0x90, 0x07, + 0x44, 0x01, 0x91, 0x2b, 0x81, 0x97, 0x0f, 0x75, 0x11, 0x14, 0x88, 0xf4, 0x1e, 0xbc, 0x27, 0x25, + 0xae, 0x08, 0xc2, 0x5a, 0x9d, 0xfd, 0xf9, 0xef, 0x4e, 0xc6, 0xfe, 0x0b, 0xc8, 0x93, 0x06, 0xc6, + 0x78, 0x05, 0x8b, 0x0d, 0xcd, 0xc6, 0x37, 0x54, 0x89, 0x6f, 0x68, 0xae, 0xb7, 0xa1, 0x49, 0xe6, + 0xf3, 0x51, 0x12, 0x92, 0xbe, 0x8c, 0xff, 0xdd, 0x04, 0x00, 0x55, 0x73, 0xdf, 0xda, 0xa6, 0x5b, + 0x76, 0x7f, 0xe6, 0xcf, 0x63, 0xd8, 0xe6, 0xda, 0x7f, 0xe5, 0x06, 0xc2, 0xbb, 0xc1, 0x04, 0x1b, + 0xf7, 0x58, 0x43, 0xae, 0x17, 0x1a, 0x12, 0x96, 0x42, 0xcd, 0xcb, 0xcb, 0x9e, 0xee, 0xe7, 0x17, + 0x6e, 0x8e, 0xcb, 0xf6, 0xdc, 0x1c, 0xd7, 0x77, 0x77, 0x20, 0xea, 0x3e, 0x39, 0xf8, 0x1e, 0xe9, + 0x9b, 0x3f, 0x38, 0x7a, 0xb8, 0x16, 0x45, 0xa8, 0xe0, 0x5d, 0x60, 0xc2, 0x09, 0x76, 0x19, 0x95, + 0xc8, 0xf5, 0xac, 0x8a, 0xbd, 0xe5, 0xe8, 0x7e, 0x4e, 0xc9, 0x3b, 0x3d, 0xa4, 0xe8, 0x18, 0x8b, + 0xef, 0xfc, 0xe9, 0x15, 0x3f, 0x6e, 0x0d, 0x6e, 0xc7, 0x79, 0xcb, 0xdb, 0x59, 0xb3, 0xec, 0x8b, + 0x5d, 0xf8, 0x9f, 0xe4, 0x2c, 0x48, 0x0e, 0xff, 0x6c, 0x32, 0xfc, 0xc5, 0x70, 0x00, 0x75, 0x11, + 0xb5, 0xfb, 0xa2, 0x4a, 0xe9, 0x4f, 0x6d, 0x04, 0x80, 0xf7, 0x80, 0x02, 0x25, 0x94, 0x75, 0xa2, + 0x67, 0x23, 0xf1, 0x0b, 0x4a, 0xd2, 0xd9, 0x1f, 0xf0, 0xdd, 0x01, 0x8e, 0xe7, 0x04, 0x1c, 0x17, + 0x0f, 0x45, 0x59, 0xea, 0x90, 0x9e, 0x7d, 0x0a, 0x98, 0x60, 0x9c, 0x56, 0xe7, 0x78, 0x2d, 0x2e, + 0x1e, 0x53, 0x01, 0x28, 0xac, 0x3b, 0xfb, 0xc8, 0x70, 0x8a, 0x19, 0xfc, 0x8c, 0xe9, 0x33, 0x9c, + 0x62, 0x16, 0xbe, 0x7a, 0x12, 0x4c, 0x06, 0x81, 0x42, 0x3e, 0x97, 0x05, 0xc5, 0xf0, 0x8e, 0x77, + 0xda, 0x22, 0x79, 0x97, 0xbd, 0x5f, 0x90, 0xde, 0x77, 0x0f, 0x02, 0x78, 0xf4, 0x56, 0x26, 0x79, + 0x89, 0xf5, 0x5b, 0xa4, 0xf6, 0xe1, 0x65, 0x6b, 0x49, 0x5f, 0xd5, 0x3e, 0x95, 0x05, 0xf9, 0x72, + 0xdb, 0xb1, 0x51, 0xa2, 0x3b, 0xac, 0xfb, 0xef, 0x28, 0xc0, 0xe7, 0x65, 0x65, 0x6d, 0x8d, 0x90, + 0x01, 0xb8, 0x6e, 0x49, 0xde, 0xca, 0x0d, 0x52, 0xb1, 0x45, 0xa7, 0xcf, 0xd0, 0xaf, 0x67, 0xc1, + 0x14, 0x0d, 0xb9, 0x51, 0x6a, 0xb7, 0xe1, 0xe3, 0x42, 0xa6, 0xf6, 0x09, 0xb6, 0x02, 0x7f, 0x4b, + 0xda, 0x6f, 0x3a, 0x68, 0x55, 0x50, 0x76, 0x82, 0xd8, 0x23, 0xc9, 0xdc, 0x78, 0xe5, 0xf6, 0xc4, + 0x06, 0x12, 0x94, 0x3e, 0xab, 0xff, 0x34, 0x8b, 0x0d, 0x00, 0xfb, 0xe2, 0x86, 0x8b, 0xf6, 0x2d, + 0x74, 0x09, 0x5e, 0x1b, 0x32, 0xfb, 0x60, 0x3c, 0x81, 0x37, 0x49, 0x2f, 0xe2, 0x70, 0x45, 0x46, + 0x6e, 0x49, 0x4d, 0xb7, 0xc3, 0x4c, 0xac, 0x17, 0xef, 0x0d, 0xf2, 0xc0, 0x15, 0xa3, 0xf3, 0xd9, + 0x25, 0xd7, 0x6c, 0xa2, 0xa9, 0x48, 0x9f, 0xb1, 0x8f, 0x4c, 0x80, 0xc9, 0x4d, 0xbb, 0xdb, 0x69, + 0x9b, 0xdd, 0x1d, 0xf8, 0x1d, 0x25, 0xb8, 0x42, 0xfa, 0x69, 0xc2, 0xb1, 0xe5, 0x1f, 0xd9, 0x43, + 0xae, 0xef, 0x86, 0x43, 0x5f, 0xfa, 0xdf, 0x51, 0x0a, 0xdf, 0xaf, 0xc8, 0x4e, 0x52, 0xfd, 0x4a, + 0xe3, 0xef, 0x56, 0xae, 0x80, 0xc9, 0x8e, 0xd5, 0xf4, 0xf6, 0xdc, 0xe0, 0xc6, 0xcb, 0x27, 0xcb, + 0x95, 0xb2, 0x41, 0xff, 0xd2, 0x83, 0xdf, 0xa1, 0x09, 0x26, 0x58, 0xe2, 0x81, 0x6d, 0xa1, 0x83, + 0xc7, 0xf0, 0x4e, 0x83, 0x82, 0xe9, 0x7a, 0x56, 0xd7, 0xbf, 0x51, 0x98, 0xbd, 0xe1, 0xee, 0x92, + 0x3e, 0x6d, 0xba, 0x6d, 0x3f, 0xc0, 0x41, 0x90, 0x00, 0x3f, 0x20, 0x35, 0x7f, 0x8c, 0x6f, 0x79, + 0x32, 0xc8, 0x1f, 0x1c, 0x62, 0xad, 0xf9, 0x6a, 0x70, 0x95, 0x5e, 0x32, 0xb4, 0x06, 0x3d, 0x0f, + 0x1f, 0x1c, 0x7d, 0x6f, 0xc1, 0xef, 0xf0, 0xeb, 0x77, 0xe2, 0x18, 0xc1, 0xb8, 0x18, 0x8e, 0x11, + 0x41, 0x42, 0xcc, 0x18, 0xf1, 0xeb, 0xd2, 0xbb, 0x3b, 0x01, 0x4b, 0x06, 0xac, 0xe5, 0xc5, 0x5d, + 0x2c, 0xf2, 0x41, 0xa9, 0x9d, 0x9a, 0x41, 0x35, 0x1d, 0x21, 0xfb, 0x7f, 0x75, 0x02, 0x4c, 0xac, + 0x98, 0xed, 0x36, 0x72, 0xaf, 0xe0, 0xa1, 0xa5, 0xe8, 0x53, 0xb8, 0x6e, 0xda, 0xd6, 0x16, 0x9e, + 0xdf, 0xc7, 0x76, 0x7a, 0xef, 0x91, 0x0e, 0x5a, 0xc9, 0xea, 0x58, 0xe8, 0x2d, 0x3f, 0x82, 0xe7, + 0xb7, 0x83, 0x9c, 0x65, 0x6f, 0x39, 0xac, 0xeb, 0xeb, 0x5d, 0x45, 0xf7, 0x7f, 0x26, 0x53, 0x10, + 0x92, 0x51, 0x32, 0x6e, 0xa5, 0x24, 0x15, 0xe9, 0xf7, 0x80, 0xbf, 0x91, 0x03, 0xb3, 0x3e, 0x11, + 0x15, 0xbb, 0x85, 0x2e, 0xf3, 0x4b, 0x2a, 0x2f, 0xcd, 0xc9, 0x9e, 0xb5, 0xe9, 0x6d, 0x0f, 0x29, + 0x2a, 0x82, 0xa5, 0x06, 0x00, 0x4d, 0xd3, 0x43, 0xdb, 0x8e, 0x6b, 0x05, 0xfd, 0xda, 0x53, 0x93, + 0x94, 0x56, 0xa6, 0x7f, 0x5f, 0xd1, 0xb9, 0x72, 0xd4, 0xfb, 0xc0, 0x34, 0x0a, 0x8e, 0xd3, 0xfa, + 0x4b, 0x2e, 0xb1, 0x78, 0xf1, 0xf9, 0xe1, 0x9f, 0x4a, 0x1d, 0xe9, 0x91, 0x69, 0x66, 0x32, 0xcc, + 0x1a, 0xc3, 0xe9, 0xd0, 0x66, 0x75, 0xbd, 0xa4, 0xd7, 0x57, 0x4b, 0x6b, 0x6b, 0x95, 0xea, 0x4a, + 0x10, 0x1b, 0x42, 0x05, 0x73, 0x4b, 0xb5, 0xf3, 0x55, 0x2e, 0x78, 0x47, 0x0e, 0x6e, 0x80, 0x49, + 0x9f, 0x5f, 0xfd, 0x9c, 0x1d, 0x79, 0x9e, 0x31, 0x67, 0x47, 0x2e, 0x09, 0x1b, 0x59, 0x56, 0x33, + 0x70, 0x98, 0x21, 0xcf, 0xf0, 0x0f, 0x4c, 0x90, 0x27, 0x6b, 0xe3, 0xf0, 0x1d, 0xe4, 0xca, 0xe1, + 0x4e, 0xdb, 0x6c, 0x22, 0xb8, 0x9b, 0xc0, 0xaa, 0xf6, 0xa3, 0xa8, 0x67, 0x0f, 0x44, 0x51, 0x27, + 0x8f, 0xcc, 0x7a, 0x3b, 0xd9, 0x6f, 0x3d, 0x5e, 0xa7, 0x59, 0xc4, 0xd3, 0x2f, 0xb1, 0xbb, 0x24, + 0x74, 0x19, 0x9f, 0x91, 0x19, 0x21, 0x92, 0xd1, 0x34, 0x25, 0xb3, 0x28, 0xe5, 0xf6, 0x53, 0xe2, + 0x28, 0x4a, 0x5f, 0xe3, 0xbf, 0x98, 0x03, 0xf9, 0x7a, 0xa7, 0x6d, 0x79, 0xf0, 0x15, 0xd9, 0x91, + 0x60, 0x46, 0x23, 0xdf, 0x2b, 0x03, 0x23, 0xdf, 0x87, 0xbb, 0xa0, 0x39, 0x89, 0x5d, 0x50, 0x03, + 0x5d, 0xf6, 0xc4, 0x5d, 0xd0, 0xbb, 0x59, 0x7c, 0x27, 0xba, 0x87, 0xfa, 0x84, 0x3e, 0x2c, 0x25, + 0xcd, 0xea, 0x13, 0x38, 0xec, 0xec, 0x53, 0x58, 0xfc, 0x22, 0x00, 0x0a, 0x8b, 0x35, 0xc3, 0xa8, + 0xad, 0x17, 0x8f, 0x91, 0xc0, 0x17, 0xb5, 0x8d, 0x62, 0x46, 0x9d, 0x02, 0xf9, 0x4a, 0xb5, 0xaa, + 0xe9, 0xc5, 0x2c, 0x89, 0xa8, 0x54, 0x31, 0xd6, 0xb4, 0xa2, 0x22, 0x86, 0x41, 0x8e, 0x35, 0xa3, + 0xc5, 0xba, 0xd3, 0x14, 0x2f, 0x39, 0x83, 0x3a, 0x9a, 0x9e, 0xf4, 0x85, 0xeb, 0xbf, 0x29, 0x20, + 0xbf, 0x8e, 0xdc, 0x6d, 0x04, 0x7f, 0x24, 0xc1, 0x66, 0xdd, 0x96, 0xe5, 0x76, 0x69, 0xfc, 0xa9, + 0x70, 0xb3, 0x8e, 0x4f, 0x53, 0x6f, 0x02, 0xb3, 0x5d, 0xd4, 0x74, 0xec, 0x96, 0x9f, 0x89, 0xf6, + 0x47, 0x62, 0x22, 0x7c, 0x79, 0x42, 0xc8, 0x08, 0xa1, 0x23, 0xd9, 0x71, 0x4b, 0x02, 0x4c, 0xbf, + 0x5a, 0xd3, 0x07, 0xe6, 0x9b, 0x0a, 0xfe, 0xa9, 0x73, 0x05, 0xbe, 0x5c, 0x7a, 0x17, 0xf5, 0x36, + 0x50, 0x20, 0x62, 0xea, 0x8f, 0xd1, 0xfd, 0xfb, 0x63, 0x96, 0x47, 0x5d, 0x04, 0x27, 0xba, 0xa8, + 0x8d, 0x9a, 0x1e, 0x6a, 0x61, 0xd5, 0xd5, 0x07, 0x76, 0x0a, 0x07, 0xb3, 0xc3, 0x3f, 0xe6, 0x01, + 0xbc, 0x57, 0x04, 0xf0, 0xe6, 0x3e, 0xac, 0xc4, 0x0d, 0x8a, 0xb6, 0x95, 0x71, 0x33, 0xea, 0x6d, + 0x27, 0x58, 0xdc, 0xf6, 0xdf, 0xf1, 0xb7, 0x1d, 0x6f, 0xb7, 0x4d, 0xbe, 0x31, 0x0f, 0x7e, 0xff, + 0x5d, 0x5d, 0x00, 0x13, 0xa6, 0x7d, 0x85, 0x7c, 0xca, 0xc5, 0xb4, 0xda, 0xcf, 0x04, 0x5f, 0x1d, + 0x20, 0x7f, 0xbf, 0x80, 0xfc, 0x93, 0xe4, 0xc8, 0x4d, 0x1f, 0xf8, 0x1f, 0x9f, 0x00, 0xf9, 0x0d, + 0xb3, 0xeb, 0x21, 0xf8, 0x7f, 0x2b, 0xb2, 0xc8, 0xdf, 0x0c, 0xe6, 0xb6, 0x9c, 0xe6, 0x5e, 0x17, + 0xb5, 0x44, 0xa5, 0xec, 0x49, 0x1d, 0x05, 0xe6, 0xea, 0xad, 0xa0, 0xe8, 0x27, 0xb2, 0x62, 0xfd, + 0xed, 0xf4, 0x03, 0xe9, 0x24, 0x98, 0x6e, 0x77, 0xc3, 0x74, 0xbd, 0xda, 0x16, 0x49, 0x0b, 0x82, + 0xe9, 0xf2, 0x89, 0x02, 0xf4, 0x85, 0x18, 0xe8, 0x27, 0xa2, 0xa1, 0x9f, 0x94, 0x80, 0x5e, 0x2d, + 0x81, 0xc9, 0x2d, 0xab, 0x8d, 0xc8, 0x0f, 0x53, 0xe4, 0x87, 0x7e, 0x63, 0x12, 0xe1, 0x7d, 0x30, + 0x26, 0x2d, 0x5b, 0x6d, 0xa4, 0x07, 0xbf, 0xf9, 0x13, 0x19, 0x10, 0x4e, 0x64, 0xd6, 0xa8, 0x7f, + 0x2b, 0x36, 0xbc, 0x6c, 0x73, 0x17, 0xf9, 0x8b, 0x68, 0x36, 0x3b, 0x3d, 0xd2, 0x32, 0x3d, 0x93, + 0x80, 0x31, 0xa3, 0x93, 0x67, 0xd1, 0xbf, 0x43, 0xe9, 0xf5, 0xef, 0x78, 0xa1, 0x92, 0xac, 0x47, + 0xf4, 0x89, 0x8d, 0xd0, 0xa8, 0x0b, 0x3e, 0x40, 0xd4, 0x52, 0x0c, 0xde, 0x31, 0x30, 0x4d, 0xd3, + 0x45, 0xde, 0x06, 0xef, 0x51, 0x91, 0xd7, 0xc5, 0x44, 0xe2, 0x5a, 0xd7, 0xad, 0x9b, 0xbb, 0x88, + 0x54, 0x56, 0xc6, 0xdf, 0x98, 0xcb, 0xd4, 0x81, 0xf4, 0xb0, 0xff, 0xcd, 0x8f, 0xba, 0xff, 0xed, + 0xd7, 0xc6, 0xf4, 0xd5, 0xf0, 0xb5, 0x39, 0xa0, 0x94, 0xf7, 0xbc, 0xc7, 0x74, 0xf7, 0xfb, 0x5d, + 0x69, 0x7f, 0x15, 0xd6, 0x9f, 0x45, 0xde, 0x39, 0x3d, 0xa6, 0xde, 0x37, 0xa1, 0x94, 0xc8, 0xf9, + 0xc5, 0x44, 0xb5, 0x2d, 0x7d, 0x19, 0x79, 0xab, 0x12, 0x38, 0x3c, 0xbe, 0x20, 0x73, 0x78, 0xd3, + 0x1c, 0xd2, 0xfe, 0x89, 0xeb, 0x19, 0x82, 0x77, 0xbf, 0xe3, 0xc9, 0x09, 0xa1, 0xb7, 0xc8, 0x36, + 0x39, 0x61, 0xe5, 0x8c, 0x4e, 0x5f, 0xe0, 0x2b, 0xa5, 0xdd, 0xc0, 0x29, 0xdb, 0x62, 0x5d, 0x02, + 0x93, 0xd9, 0x54, 0x72, 0xf7, 0x0a, 0xc6, 0x54, 0x9b, 0x3e, 0x60, 0xff, 0x10, 0xbd, 0x64, 0x38, + 0x0c, 0x62, 0xf0, 0x35, 0xd2, 0xdb, 0x4a, 0xb4, 0xd9, 0x03, 0xd6, 0x0b, 0x93, 0xf1, 0x5b, 0x6e, + 0xd3, 0x29, 0xb6, 0xe2, 0xf4, 0x39, 0xfe, 0x0d, 0x05, 0x14, 0xe8, 0x56, 0x22, 0x7c, 0x73, 0x26, + 0xc1, 0x85, 0xcc, 0x9e, 0xe8, 0x0a, 0x18, 0xbc, 0x27, 0x59, 0x73, 0x10, 0x5c, 0x06, 0x73, 0x89, + 0x5c, 0x06, 0xc5, 0x73, 0x95, 0x12, 0x7a, 0x44, 0xdb, 0x98, 0xf2, 0x74, 0x32, 0x89, 0x86, 0xf5, + 0x25, 0x28, 0x7d, 0xbc, 0x7f, 0x32, 0x0f, 0x66, 0x68, 0xd5, 0xe7, 0xad, 0xd6, 0x36, 0xf2, 0xe0, + 0xbb, 0xb2, 0xdf, 0x3b, 0xa8, 0xab, 0x55, 0x30, 0x73, 0x89, 0x90, 0xbd, 0x66, 0x5e, 0x71, 0xf6, + 0x3c, 0xb6, 0x72, 0x71, 0x6b, 0xec, 0xba, 0x07, 0x6d, 0xe7, 0x02, 0xfd, 0x43, 0x17, 0xfe, 0xc7, + 0x3c, 0xa6, 0x0b, 0xfe, 0xd4, 0x11, 0xab, 0x40, 0x8c, 0x2c, 0x3e, 0x49, 0x3d, 0x0d, 0x0a, 0xfb, + 0x16, 0xba, 0x54, 0x69, 0x31, 0xeb, 0x96, 0xbd, 0xc1, 0x0f, 0x49, 0xef, 0xbf, 0xf2, 0x70, 0x33, + 0x5a, 0xd2, 0x95, 0x42, 0xb9, 0x5d, 0xd8, 0x81, 0x64, 0x8d, 0xe1, 0x8c, 0xaf, 0x78, 0x6f, 0x5f, + 0x92, 0xfb, 0xe0, 0xa3, 0x0c, 0xe7, 0x04, 0x97, 0xf2, 0x53, 0x06, 0x8c, 0xf8, 0x4a, 0x3f, 0xb9, + 0xc3, 0xfb, 0x03, 0xaa, 0x4e, 0x9f, 0xf3, 0xaf, 0x57, 0xc0, 0x54, 0x1d, 0x79, 0xcb, 0x16, 0x6a, + 0xb7, 0xba, 0xd0, 0x3d, 0xbc, 0x69, 0x74, 0x3b, 0x28, 0x6c, 0x91, 0xc2, 0x06, 0x9d, 0x3f, 0x60, + 0xd9, 0xe0, 0x6b, 0xb3, 0xb2, 0x3b, 0xbb, 0x6c, 0xf5, 0xcd, 0xa7, 0x76, 0x24, 0x30, 0xc9, 0x79, + 0xe6, 0xc6, 0xd7, 0x9c, 0x3e, 0x4a, 0x6f, 0x53, 0xc0, 0x0c, 0xbb, 0xe8, 0xab, 0xd4, 0xb6, 0xb6, + 0x6d, 0xb8, 0x37, 0x02, 0x0d, 0x51, 0xef, 0x00, 0x79, 0x13, 0x97, 0xc6, 0x9c, 0xf4, 0x61, 0xdf, + 0xce, 0x93, 0xd4, 0xa7, 0xd3, 0x8c, 0x09, 0x62, 0xf4, 0x85, 0x82, 0xed, 0xd3, 0x3c, 0xc6, 0x18, + 0x7d, 0x03, 0x2b, 0x4f, 0x1f, 0xb1, 0x2f, 0x2b, 0xe0, 0x24, 0x23, 0xe0, 0x1c, 0x72, 0x3d, 0xab, + 0x69, 0xb6, 0x29, 0x72, 0x2f, 0xca, 0x8c, 0x02, 0xba, 0x55, 0x30, 0xbb, 0xcf, 0x17, 0xcb, 0x20, + 0x3c, 0xdb, 0x17, 0x42, 0x81, 0x00, 0x5d, 0xfc, 0x31, 0x41, 0xac, 0x33, 0x81, 0xab, 0x42, 0x99, + 0x63, 0x8c, 0x75, 0x26, 0x4d, 0x44, 0xfa, 0x10, 0xbf, 0x2c, 0x47, 0xc3, 0xff, 0x85, 0xdd, 0xe7, + 0x9f, 0x49, 0x63, 0xbb, 0x09, 0xa6, 0x09, 0x96, 0xf4, 0x47, 0xb6, 0x0c, 0x11, 0x23, 0xc4, 0x41, + 0xbf, 0xc3, 0xee, 0x14, 0x0a, 0xfe, 0xd5, 0xf9, 0x72, 0xe0, 0x79, 0x00, 0xc2, 0x4f, 0x7c, 0x27, + 0x9d, 0x89, 0xea, 0xa4, 0xb3, 0x72, 0x9d, 0xf4, 0x9b, 0xa4, 0x83, 0x97, 0xf4, 0x27, 0xfb, 0xf0, + 0xe2, 0x21, 0x17, 0xb6, 0x62, 0x70, 0xed, 0xe9, 0xcb, 0xc5, 0xab, 0x73, 0xbd, 0x37, 0x3a, 0x7f, + 0x74, 0x24, 0xf3, 0x29, 0xbe, 0x3f, 0x50, 0x7a, 0xfa, 0x83, 0x43, 0x58, 0xd2, 0xb7, 0x80, 0xe3, + 0xb4, 0x8a, 0x72, 0x40, 0x56, 0x9e, 0x86, 0x66, 0xe8, 0x49, 0x86, 0x8f, 0x0e, 0x21, 0x04, 0x83, + 0xae, 0x9b, 0x8e, 0xeb, 0xe4, 0x92, 0x19, 0xbb, 0x49, 0x05, 0xe4, 0xe8, 0x6e, 0xa9, 0xfe, 0x7a, + 0x8e, 0x5a, 0xbb, 0x9b, 0xe4, 0xda, 0x27, 0xf8, 0x85, 0xdc, 0x28, 0x46, 0x84, 0x07, 0x40, 0x8e, + 0xb8, 0xaa, 0x2b, 0x91, 0x4b, 0x1a, 0x61, 0x95, 0xe1, 0x9d, 0x5c, 0xe8, 0xb2, 0xb7, 0x7a, 0x4c, + 0x27, 0x7f, 0xaa, 0xb7, 0x82, 0xe3, 0x17, 0xcc, 0xe6, 0xc5, 0x6d, 0xd7, 0xd9, 0x23, 0x17, 0xe4, + 0x38, 0xec, 0xa6, 0x1d, 0x72, 0x63, 0x99, 0xf8, 0x41, 0xbd, 0xd3, 0x37, 0x1d, 0xf2, 0x83, 0x4c, + 0x87, 0xd5, 0x63, 0xcc, 0x78, 0x50, 0x9f, 0x12, 0x74, 0x3a, 0x85, 0xd8, 0x4e, 0x67, 0xf5, 0x98, + 0xdf, 0xed, 0xa8, 0x4b, 0x60, 0xb2, 0x65, 0xed, 0x93, 0xad, 0x6a, 0x32, 0xeb, 0x1a, 0x74, 0x94, + 0x78, 0xc9, 0xda, 0xa7, 0x1b, 0xdb, 0xab, 0xc7, 0xf4, 0xe0, 0x4f, 0x75, 0x05, 0x4c, 0x91, 0x6d, + 0x01, 0x52, 0xcc, 0x64, 0xa2, 0x63, 0xc2, 0xab, 0xc7, 0xf4, 0xf0, 0x5f, 0x6c, 0x7d, 0xe4, 0xc8, + 0x19, 0x8e, 0xfb, 0xfd, 0xed, 0xf6, 0x4c, 0xa2, 0xed, 0x76, 0xcc, 0x0b, 0xba, 0xe1, 0x7e, 0x1a, + 0xe4, 0x9b, 0x84, 0xc3, 0x59, 0xc6, 0x61, 0xfa, 0xaa, 0xde, 0x0b, 0x72, 0xbb, 0xa6, 0xeb, 0x4f, + 0x9e, 0x6f, 0x1e, 0x5c, 0xee, 0xba, 0xe9, 0x5e, 0xc4, 0x08, 0xe2, 0xbf, 0x16, 0x27, 0x40, 0x9e, + 0x30, 0x2e, 0x78, 0x80, 0x6f, 0xcd, 0x51, 0x33, 0xa4, 0xec, 0xd8, 0x78, 0xd8, 0x37, 0x1c, 0xff, + 0xa0, 0xcb, 0x87, 0x32, 0xa3, 0xb1, 0x20, 0xfb, 0x5e, 0x81, 0xac, 0x44, 0x5e, 0x81, 0xdc, 0x73, + 0x07, 0x67, 0xae, 0xf7, 0x0e, 0xce, 0x70, 0xf9, 0x20, 0x3f, 0xd8, 0x51, 0xe5, 0x8f, 0x87, 0x30, + 0x5d, 0x7a, 0x19, 0x11, 0x3d, 0x03, 0x6f, 0x5b, 0x36, 0xd7, 0x66, 0xff, 0x35, 0x61, 0xa7, 0x94, + 0xd4, 0xa8, 0x19, 0x40, 0x5e, 0xfa, 0x7d, 0xd3, 0xaf, 0xe5, 0xc0, 0x3c, 0xbd, 0xe9, 0x75, 0x1f, + 0x19, 0x8e, 0x78, 0x25, 0x1d, 0xfc, 0xe4, 0x48, 0x84, 0xa6, 0xcf, 0x80, 0xa3, 0xf4, 0x1d, 0x70, + 0x0e, 0x1c, 0x36, 0xce, 0x0d, 0x38, 0x6c, 0x9c, 0x4f, 0xb6, 0x72, 0xf8, 0x3b, 0xbc, 0xfc, 0x6c, + 0x88, 0xf2, 0x73, 0x4f, 0x04, 0x40, 0xfd, 0xf8, 0x32, 0x12, 0xfb, 0xe6, 0x1d, 0x81, 0xa4, 0xd4, + 0x05, 0x49, 0xb9, 0x7f, 0x78, 0x42, 0xd2, 0x97, 0x96, 0xdf, 0xce, 0x81, 0xab, 0x42, 0x62, 0xaa, + 0xe8, 0x12, 0x13, 0x94, 0xcf, 0x8d, 0x44, 0x50, 0x92, 0xc7, 0x32, 0x48, 0x5b, 0x62, 0xfe, 0x50, + 0xfa, 0x0c, 0x50, 0x2f, 0x50, 0x01, 0x6f, 0x22, 0x84, 0xe5, 0x34, 0x28, 0xd0, 0x1e, 0x86, 0x41, + 0xc3, 0xde, 0x12, 0x76, 0x37, 0x72, 0x27, 0x87, 0x64, 0x69, 0x1b, 0x83, 0xfc, 0xb0, 0x75, 0x0d, + 0x63, 0xcf, 0xb5, 0x2b, 0xb6, 0xe7, 0xc0, 0x1f, 0x1b, 0x89, 0xe0, 0x04, 0xde, 0x70, 0xca, 0x30, + 0xde, 0x70, 0x43, 0xad, 0x72, 0xf8, 0x2d, 0x38, 0x92, 0x55, 0x8e, 0x88, 0xca, 0xd3, 0xc7, 0xef, + 0xed, 0x0a, 0xbd, 0xfd, 0xbd, 0x8e, 0xbc, 0x45, 0xd1, 0x42, 0x84, 0x0f, 0x8d, 0x02, 0xc8, 0x93, + 0xbe, 0x99, 0xc4, 0x2e, 0x2d, 0x22, 0x2f, 0xe2, 0x89, 0xa7, 0xd8, 0xe0, 0xf9, 0xc2, 0x74, 0xb0, + 0x87, 0xc2, 0x91, 0x20, 0x25, 0x17, 0x33, 0x3f, 0x01, 0x19, 0xe9, 0x63, 0xf6, 0x12, 0x05, 0x14, + 0xd8, 0x0d, 0xdf, 0x9b, 0xa9, 0x38, 0x4c, 0x88, 0x21, 0x74, 0x25, 0x76, 0xe4, 0x12, 0xdf, 0x83, + 0x9d, 0xde, 0x5e, 0xdc, 0x11, 0x5d, 0x74, 0xfd, 0xcd, 0x2c, 0x98, 0xae, 0x23, 0xaf, 0x6c, 0xba, + 0xae, 0x65, 0x6e, 0x8f, 0xca, 0xe3, 0x5b, 0xd6, 0x7b, 0x18, 0x7e, 0x2b, 0x23, 0x7b, 0x9e, 0x26, + 0x58, 0x08, 0xf7, 0x49, 0x8d, 0x88, 0xed, 0x27, 0x77, 0xc3, 0xf8, 0xa0, 0xd2, 0xc6, 0xe0, 0xb1, + 0x9d, 0x05, 0x13, 0xfe, 0x99, 0xba, 0xdb, 0x85, 0x73, 0x96, 0x3b, 0xde, 0xae, 0x7f, 0x0c, 0x86, + 0x3c, 0x1f, 0x3c, 0xcb, 0x05, 0x5f, 0x95, 0xd0, 0x51, 0x3e, 0xfe, 0x40, 0x60, 0x32, 0x1d, 0x4b, + 0xe2, 0x0e, 0x7f, 0x54, 0x47, 0x00, 0x7f, 0x6b, 0x82, 0x2d, 0x47, 0xae, 0x99, 0x1e, 0xba, 0x0c, + 0xff, 0x4c, 0x01, 0x13, 0x75, 0xe4, 0xe1, 0xf1, 0x16, 0x93, 0x7f, 0x68, 0x09, 0x57, 0xb9, 0x15, + 0x8f, 0x29, 0xb6, 0x86, 0xf1, 0x6c, 0x30, 0xd5, 0x71, 0x9d, 0x26, 0xea, 0x76, 0xd9, 0xea, 0x05, + 0xef, 0xa8, 0xd6, 0x6f, 0xf4, 0x27, 0xa4, 0x2d, 0x6c, 0xf8, 0xff, 0xe8, 0xe1, 0xef, 0x49, 0xcd, + 0x00, 0x5a, 0x12, 0x6b, 0xe0, 0xb8, 0xcd, 0x80, 0xb8, 0xca, 0xd3, 0x07, 0xfa, 0x33, 0x0a, 0x98, + 0xa9, 0x23, 0x2f, 0xe0, 0x62, 0x82, 0x4d, 0x8e, 0x68, 0x78, 0x05, 0x28, 0x95, 0xc3, 0x41, 0x29, + 0x7f, 0xef, 0x9a, 0xc8, 0xcd, 0xa0, 0xb0, 0x31, 0xde, 0xbb, 0x26, 0x47, 0xc1, 0x18, 0x8e, 0xaf, + 0x3d, 0x01, 0x4c, 0x11, 0x5a, 0x88, 0xc2, 0xfe, 0x4c, 0x2e, 0x54, 0xde, 0xcf, 0xa7, 0xa4, 0xbc, + 0xf7, 0x81, 0x3c, 0xb9, 0xcf, 0x9d, 0x28, 0xee, 0xb4, 0x8c, 0xd9, 0xbe, 0x8e, 0xb3, 0xeb, 0xf4, + 0xaf, 0xfe, 0x7e, 0x9a, 0xf9, 0x64, 0x7e, 0x9a, 0x6f, 0xc8, 0x26, 0x1a, 0x09, 0xe9, 0xdc, 0x61, + 0x84, 0x2a, 0x9f, 0x60, 0xdc, 0x8c, 0xa9, 0x3b, 0x7d, 0xe1, 0x78, 0x91, 0x02, 0x26, 0xf1, 0xb8, + 0x4d, 0xec, 0xf1, 0xf3, 0x87, 0x17, 0x87, 0xfe, 0x86, 0x7e, 0xc2, 0x1e, 0xd8, 0xe7, 0xc8, 0xe8, + 0xcc, 0xfb, 0x04, 0x3d, 0x70, 0x5c, 0xe5, 0xe9, 0xe3, 0xf1, 0x4e, 0x8a, 0x07, 0xd1, 0x07, 0xf8, + 0x46, 0x05, 0x28, 0x2b, 0xc8, 0x1b, 0xb7, 0x15, 0xf9, 0x36, 0xe9, 0x50, 0x45, 0x02, 0xc3, 0x08, + 0xcd, 0x0b, 0x2b, 0x68, 0x34, 0x0a, 0x24, 0x17, 0xa3, 0x48, 0x8a, 0x80, 0xf4, 0x51, 0x7b, 0x2f, + 0x45, 0x8d, 0x6e, 0x2e, 0xfc, 0xe8, 0x08, 0x7a, 0xd5, 0xf1, 0x2e, 0x7c, 0xf8, 0x0c, 0x24, 0x65, + 0x1c, 0x95, 0xbe, 0xf5, 0xab, 0x7c, 0x2c, 0xf7, 0x9c, 0x01, 0xac, 0xec, 0x3b, 0xa8, 0x79, 0x11, + 0xb5, 0xe0, 0x0f, 0x1d, 0x1e, 0xba, 0x79, 0x30, 0xd1, 0xa4, 0xa5, 0x11, 0xf0, 0x26, 0x75, 0xff, + 0x35, 0xc1, 0xa5, 0xbd, 0x62, 0x47, 0x44, 0x7f, 0x1f, 0xe3, 0xa5, 0xbd, 0x12, 0xd5, 0x8f, 0xc1, + 0x6c, 0xa1, 0xb3, 0x8c, 0x4a, 0xd3, 0xb1, 0xe1, 0x7f, 0x3e, 0x3c, 0x2c, 0xd7, 0x81, 0x29, 0xab, + 0xe9, 0xd8, 0x95, 0x5d, 0x3f, 0xb8, 0xdf, 0x94, 0x1e, 0x26, 0xf8, 0x5f, 0xb5, 0x5d, 0xe7, 0x61, + 0x8b, 0xed, 0x9a, 0x87, 0x09, 0xc3, 0x1a, 0x13, 0x98, 0xf4, 0xa3, 0x32, 0x26, 0xfa, 0xd4, 0x9d, + 0x3e, 0x64, 0x8f, 0x86, 0xde, 0x6d, 0xb4, 0x2b, 0x7c, 0x4c, 0xac, 0x02, 0x0f, 0x33, 0x9c, 0xf1, + 0xad, 0x38, 0x92, 0xe1, 0x2c, 0x86, 0x80, 0x31, 0xdc, 0x2f, 0x12, 0xe2, 0x98, 0xfa, 0x1a, 0xf0, + 0x21, 0xd0, 0x19, 0x9d, 0x79, 0x38, 0x24, 0x3a, 0x47, 0x63, 0x22, 0x7e, 0x90, 0x85, 0xba, 0x64, + 0x16, 0x0f, 0xfc, 0x2f, 0xa3, 0x00, 0xe7, 0x9e, 0x61, 0xfc, 0x15, 0xa8, 0xb7, 0x42, 0x82, 0xeb, + 0x86, 0x0f, 0x70, 0x10, 0x97, 0x32, 0xc6, 0x8b, 0xb8, 0x65, 0xea, 0x4f, 0x1f, 0xc0, 0x9f, 0x56, + 0xc0, 0x1c, 0xf1, 0x11, 0x68, 0x23, 0xd3, 0xa5, 0x1d, 0xe5, 0x48, 0x1c, 0xe5, 0xdf, 0x29, 0x1d, + 0xe0, 0x47, 0xe4, 0x43, 0x48, 0xc7, 0x48, 0xa0, 0x90, 0x8b, 0xee, 0x23, 0x49, 0xc2, 0x58, 0xb6, + 0x51, 0x8a, 0x01, 0x09, 0x4c, 0xc4, 0x47, 0x83, 0x47, 0x42, 0x8f, 0x5c, 0x91, 0x19, 0xbe, 0xb2, + 0x8d, 0xd9, 0x23, 0x57, 0x86, 0x88, 0xf4, 0x31, 0x79, 0xe3, 0x1d, 0x6c, 0xc1, 0xd9, 0x20, 0xb7, + 0x71, 0xbf, 0x26, 0x17, 0x9c, 0x68, 0xfb, 0xcc, 0x48, 0x3c, 0x30, 0x0f, 0x11, 0xd8, 0x5e, 0x05, + 0x39, 0xd7, 0xb9, 0x44, 0x97, 0xb6, 0x66, 0x75, 0xf2, 0x4c, 0x4c, 0x7e, 0xa7, 0xbd, 0xb7, 0x6b, + 0xd3, 0x93, 0xa1, 0xb3, 0xba, 0xff, 0xaa, 0xde, 0x04, 0x66, 0x2f, 0x59, 0xde, 0xce, 0x2a, 0x32, + 0x5b, 0xc8, 0xd5, 0x9d, 0x4b, 0xc4, 0x63, 0x6e, 0x52, 0x17, 0x13, 0x45, 0xff, 0x15, 0x09, 0xfb, + 0x92, 0x5c, 0xd1, 0x3d, 0x96, 0xe3, 0x6f, 0x49, 0x2c, 0xcf, 0x68, 0xaa, 0xd2, 0x17, 0x98, 0xf7, + 0x29, 0x60, 0x4a, 0x77, 0x2e, 0x31, 0x21, 0xf9, 0x3f, 0x8f, 0x56, 0x46, 0x12, 0x4f, 0xf4, 0xe8, + 0x95, 0xeb, 0x3e, 0xf9, 0x63, 0x9f, 0xe8, 0xc5, 0x56, 0x3f, 0x96, 0x93, 0x4b, 0x33, 0xba, 0x73, + 0xa9, 0x8e, 0x3c, 0xaa, 0x11, 0xb0, 0x31, 0x22, 0x27, 0x6b, 0xab, 0x4b, 0x0b, 0x64, 0xf3, 0xf0, + 0xe0, 0x3d, 0xe9, 0x2e, 0x42, 0xc0, 0xa0, 0x80, 0xc4, 0x71, 0xef, 0x22, 0x0c, 0xa4, 0x60, 0x0c, + 0x31, 0x52, 0x14, 0x30, 0xad, 0x3b, 0x97, 0xf0, 0xd0, 0xb0, 0x6c, 0xb5, 0xdb, 0xa3, 0x19, 0x21, + 0x93, 0x1a, 0xff, 0x3e, 0x1b, 0x7c, 0x2a, 0xc6, 0x6e, 0xfc, 0x0f, 0x20, 0x20, 0x7d, 0x18, 0x5e, + 0x48, 0x95, 0xc5, 0x1f, 0xa1, 0xed, 0xd1, 0xe0, 0x30, 0xac, 0x42, 0x04, 0x64, 0x1c, 0x99, 0x42, + 0x44, 0x51, 0x30, 0x96, 0x9d, 0x93, 0xb9, 0x32, 0x19, 0xe6, 0x47, 0xab, 0x13, 0xef, 0x4e, 0xe6, + 0x9a, 0xc8, 0x86, 0x5d, 0x81, 0x90, 0x91, 0xa0, 0x91, 0xc0, 0x05, 0x51, 0x82, 0x86, 0xf4, 0xf1, + 0xf8, 0xb0, 0x02, 0x66, 0x28, 0x09, 0x8f, 0x11, 0x2b, 0x60, 0x28, 0xa5, 0xe2, 0x5b, 0x70, 0x34, + 0x4a, 0x15, 0x43, 0xc1, 0x58, 0x6e, 0xe9, 0xc4, 0x76, 0xdc, 0x10, 0xc7, 0xc7, 0xa3, 0x10, 0x1c, + 0xda, 0x18, 0x1b, 0xe1, 0x11, 0xf2, 0x61, 0x8c, 0xb1, 0x23, 0x3a, 0x46, 0xfe, 0xc2, 0x40, 0x8b, + 0x46, 0x89, 0xc1, 0x21, 0x54, 0x61, 0x84, 0x30, 0x0c, 0xa9, 0x0a, 0x47, 0x84, 0xc4, 0x57, 0x14, + 0x00, 0x28, 0x01, 0xeb, 0xce, 0x3e, 0xb9, 0x94, 0x67, 0x04, 0xdd, 0x59, 0xaf, 0x5b, 0xbd, 0x32, + 0xc0, 0xad, 0x3e, 0x61, 0x08, 0x97, 0xa4, 0x2b, 0x81, 0x1c, 0x97, 0x71, 0x23, 0xc7, 0xbe, 0x12, + 0x18, 0x5f, 0x7f, 0xfa, 0x18, 0x7f, 0x89, 0x5a, 0x73, 0xe1, 0x01, 0xd3, 0x5f, 0x1c, 0x09, 0xca, + 0xdc, 0xec, 0x5f, 0x11, 0x67, 0xff, 0x87, 0xc0, 0x76, 0x58, 0x1b, 0x71, 0xd0, 0xc1, 0xd1, 0xf4, + 0x6d, 0xc4, 0xa3, 0x3b, 0x20, 0xfa, 0xa3, 0x39, 0x70, 0x9c, 0x75, 0x22, 0xdf, 0x0b, 0x10, 0x27, + 0x3c, 0x87, 0x27, 0x74, 0x92, 0x03, 0x50, 0x1e, 0xd5, 0x82, 0x54, 0x92, 0xa5, 0x4c, 0x09, 0xf2, + 0xc6, 0xb2, 0xba, 0x51, 0xd0, 0x2e, 0x77, 0x4c, 0xbb, 0x25, 0x1f, 0xee, 0x77, 0x00, 0xf0, 0xfe, + 0x5a, 0xa3, 0x22, 0xae, 0x35, 0xf6, 0x59, 0x99, 0x4c, 0xbc, 0x73, 0x4d, 0x58, 0x46, 0xc9, 0x1d, + 0xfb, 0xce, 0x75, 0x74, 0xdd, 0xe9, 0xa3, 0xf4, 0x6e, 0x05, 0xe4, 0xea, 0x8e, 0xeb, 0xc1, 0x47, + 0x92, 0x68, 0x27, 0xe5, 0x7c, 0x08, 0x92, 0xff, 0xae, 0x96, 0x85, 0x5b, 0x93, 0x6f, 0x8f, 0x3f, + 0xea, 0x6c, 0x7a, 0x26, 0xf1, 0xea, 0xc6, 0xf5, 0x73, 0xd7, 0x27, 0x27, 0x8d, 0xa7, 0x43, 0xf9, + 0x57, 0x8f, 0x3e, 0x80, 0x91, 0x5a, 0x3c, 0x9d, 0xc8, 0x9a, 0xd3, 0xc7, 0xed, 0x7f, 0xce, 0x31, + 0xdf, 0xd6, 0x65, 0xab, 0x8d, 0xe0, 0x23, 0xd4, 0x65, 0xa4, 0x6a, 0xee, 0x22, 0xf9, 0x23, 0x31, + 0xb1, 0xae, 0xad, 0x24, 0xbe, 0xac, 0x12, 0xc6, 0x97, 0x4d, 0xaa, 0x50, 0xf4, 0x00, 0x3a, 0x25, + 0x69, 0xdc, 0x0a, 0x15, 0x53, 0xf7, 0x58, 0xe2, 0x74, 0x9e, 0xa8, 0x23, 0x8f, 0x1a, 0x95, 0x35, + 0xff, 0x06, 0x96, 0x1f, 0x1e, 0x49, 0xc4, 0xce, 0xe0, 0x82, 0x17, 0xa5, 0xe7, 0x82, 0x97, 0xf7, + 0xf1, 0xe0, 0xac, 0x8b, 0xe0, 0x3c, 0x3d, 0x9a, 0x41, 0x22, 0x91, 0x23, 0x81, 0xe9, 0x6d, 0x01, + 0x4c, 0x1b, 0x02, 0x4c, 0xf7, 0x0e, 0x49, 0x45, 0xfa, 0x80, 0x7d, 0x1e, 0x9b, 0x2a, 0x64, 0xd2, + 0x5f, 0xb2, 0x5b, 0x2c, 0xc2, 0xea, 0x3f, 0x1d, 0xf5, 0x66, 0xdb, 0xc1, 0x10, 0xac, 0x42, 0x2c, + 0xe7, 0x7c, 0xef, 0x6d, 0xf5, 0x8b, 0x34, 0x9c, 0x2b, 0xee, 0x44, 0xc9, 0x4e, 0x9b, 0xfc, 0x8d, + 0xf5, 0xc1, 0x7f, 0xf0, 0x8f, 0x92, 0xad, 0xbf, 0x91, 0x22, 0x7a, 0x18, 0x97, 0xb2, 0x0d, 0x94, + 0x60, 0x65, 0x4e, 0x82, 0xba, 0xff, 0x18, 0x6e, 0x61, 0x61, 0x24, 0x90, 0x21, 0xdd, 0xc2, 0x48, + 0x01, 0x47, 0xe9, 0x16, 0x36, 0x88, 0x80, 0x31, 0xdc, 0x32, 0x9f, 0x67, 0xbb, 0xf2, 0xc4, 0x67, + 0x12, 0xfe, 0x45, 0x36, 0xf5, 0xd1, 0xf6, 0xdb, 0x99, 0x44, 0x7e, 0xcc, 0x84, 0xae, 0xf8, 0xe1, + 0x36, 0x89, 0x67, 0x72, 0x5c, 0x71, 0x63, 0x58, 0xff, 0xc9, 0x12, 0x9f, 0xf2, 0xf3, 0x56, 0xcb, + 0xdb, 0x19, 0xd1, 0xc9, 0x8c, 0x4b, 0xb8, 0x2c, 0xff, 0xba, 0x62, 0xf2, 0x02, 0xff, 0x35, 0x93, + 0x28, 0x14, 0x54, 0xc0, 0x12, 0x42, 0x56, 0x04, 0x8b, 0x13, 0x04, 0x70, 0x8a, 0x2d, 0x6f, 0x8c, + 0x12, 0x7d, 0xce, 0x6a, 0x21, 0xe7, 0x31, 0x28, 0xd1, 0x84, 0xae, 0xd1, 0x49, 0x74, 0x5c, 0x71, + 0xff, 0x41, 0x25, 0x3a, 0x60, 0xc9, 0x88, 0x24, 0x3a, 0xb6, 0xbc, 0xf4, 0x79, 0xfc, 0xaa, 0x19, + 0x36, 0x21, 0x5a, 0xb3, 0xec, 0x8b, 0xf0, 0x9f, 0x0b, 0xfe, 0x45, 0xc9, 0xe7, 0x2d, 0x6f, 0x87, + 0xc5, 0x74, 0xf9, 0x6d, 0xe9, 0x3b, 0x4e, 0x86, 0x88, 0xdb, 0x22, 0x86, 0x85, 0xca, 0x1f, 0x08, + 0x0b, 0x55, 0x02, 0xb3, 0x96, 0xed, 0x21, 0xd7, 0x36, 0xdb, 0xcb, 0x6d, 0x73, 0xbb, 0x3b, 0x3f, + 0xd1, 0xf7, 0x12, 0xba, 0x0a, 0x97, 0x47, 0x17, 0xff, 0xe0, 0xaf, 0x93, 0x9c, 0x14, 0xaf, 0xc5, + 0x8f, 0x88, 0x62, 0x35, 0x15, 0x1d, 0xc5, 0x2a, 0x88, 0x52, 0x05, 0x06, 0x07, 0xb9, 0x96, 0xb5, + 0x71, 0x13, 0x86, 0xed, 0xbb, 0x5d, 0x32, 0x9a, 0x5a, 0x10, 0xc2, 0xf1, 0x97, 0x95, 0x44, 0xab, + 0x74, 0x58, 0x10, 0x16, 0x7a, 0x85, 0x20, 0xb1, 0x85, 0xca, 0x37, 0x5e, 0xe9, 0x69, 0x7c, 0x60, + 0xf2, 0xe4, 0x24, 0x4c, 0x1e, 0x5e, 0xa8, 0xf2, 0x72, 0x42, 0x95, 0x64, 0xd1, 0x4f, 0xa6, 0xb5, + 0x63, 0x38, 0x55, 0x94, 0x07, 0x27, 0xfc, 0xa8, 0xb5, 0x9d, 0x0e, 0x32, 0x5d, 0xd3, 0x6e, 0x22, + 0xf8, 0x68, 0x76, 0x14, 0x66, 0xef, 0x32, 0x98, 0xb4, 0x9a, 0x8e, 0x5d, 0xb7, 0x9e, 0xeb, 0x5f, + 0x12, 0x17, 0x1f, 0x2c, 0x9d, 0x70, 0xa4, 0xc2, 0xfe, 0xd0, 0x83, 0x7f, 0xd5, 0x0a, 0x98, 0x6a, + 0x9a, 0x6e, 0x8b, 0x06, 0xd3, 0xcb, 0xf7, 0x5c, 0xc8, 0x14, 0x59, 0x50, 0xd9, 0xff, 0x45, 0x0f, + 0xff, 0x56, 0x6b, 0x22, 0x13, 0x0b, 0x3d, 0x51, 0x39, 0x22, 0x0b, 0x5b, 0x0a, 0x7f, 0x12, 0x78, + 0x8e, 0xb9, 0xe3, 0xa2, 0x36, 0xb9, 0x13, 0x9e, 0xf6, 0x10, 0x53, 0x7a, 0x98, 0x90, 0x74, 0x9a, + 0x4f, 0xaa, 0x3a, 0x80, 0xc6, 0xb8, 0xa7, 0xf9, 0x52, 0x54, 0xa4, 0x2f, 0x99, 0xef, 0x28, 0x80, + 0x59, 0xda, 0xab, 0x31, 0x76, 0xc2, 0x9f, 0x26, 0x57, 0x3a, 0x7b, 0x0f, 0xa2, 0x2b, 0xb0, 0x7e, + 0xf8, 0x31, 0xb9, 0x08, 0x94, 0x8b, 0x41, 0xe0, 0x40, 0xfc, 0x98, 0x74, 0xff, 0xdd, 0xa7, 0x6b, + 0x81, 0xd2, 0x34, 0xee, 0xfd, 0xf7, 0xf8, 0xea, 0xd3, 0xc7, 0xe7, 0xe7, 0x14, 0xa0, 0x94, 0x5a, + 0x2d, 0xd8, 0x3c, 0x3c, 0x14, 0x37, 0x80, 0x69, 0x5f, 0x67, 0xc2, 0x58, 0x8e, 0x7c, 0x52, 0xd2, + 0xc5, 0xcc, 0x80, 0x37, 0xa5, 0xd6, 0xd8, 0x77, 0x07, 0x62, 0xea, 0x4e, 0x1f, 0x94, 0x5f, 0x9c, + 0x60, 0x4a, 0xb3, 0xe8, 0x38, 0x17, 0xc9, 0x91, 0x97, 0x47, 0x14, 0x90, 0x5f, 0x46, 0x5e, 0x73, + 0x67, 0x44, 0x3a, 0xb3, 0xe7, 0xb6, 0x7d, 0x9d, 0x39, 0x70, 0x3f, 0xfd, 0x60, 0x1b, 0xd6, 0x27, + 0x6b, 0x81, 0x90, 0x34, 0xee, 0x28, 0xcd, 0xb1, 0xb5, 0xa7, 0x0f, 0xce, 0xbf, 0x2a, 0x60, 0x2e, + 0x58, 0xe1, 0xa2, 0x98, 0xfc, 0xec, 0x63, 0x6e, 0xdd, 0x12, 0x7e, 0x2e, 0x59, 0xa8, 0xb3, 0x80, + 0xa7, 0x62, 0xcb, 0x52, 0x5e, 0x58, 0x4c, 0x10, 0x04, 0x4d, 0x8e, 0xc0, 0x31, 0xcc, 0xe0, 0x15, + 0x30, 0x49, 0x08, 0x5a, 0xb2, 0xf6, 0x89, 0x0b, 0xa0, 0xb0, 0xd0, 0xf8, 0xbc, 0x91, 0x2c, 0x34, + 0xde, 0x2b, 0x2e, 0x34, 0x4a, 0x46, 0x2e, 0xf6, 0xd7, 0x19, 0x13, 0xfa, 0xc4, 0xe0, 0xff, 0x47, + 0xbe, 0xcc, 0x98, 0xc0, 0x27, 0x66, 0x40, 0xfd, 0xe9, 0x23, 0xfa, 0xc9, 0x06, 0xeb, 0x6c, 0xfd, + 0x8d, 0x51, 0xf8, 0x3f, 0x4f, 0x80, 0xdc, 0x39, 0xfc, 0xf0, 0xbf, 0xc2, 0x9b, 0xad, 0x5e, 0x3e, + 0x82, 0x20, 0x0b, 0xcf, 0x02, 0x39, 0x5c, 0x3e, 0x9b, 0xb6, 0xdc, 0x2a, 0xb7, 0x4b, 0x8b, 0x09, + 0xd1, 0xc9, 0x7f, 0xea, 0x69, 0x50, 0xe8, 0x3a, 0x7b, 0x6e, 0x13, 0x9b, 0xcf, 0x58, 0x62, 0xd8, + 0x5b, 0xd2, 0xe0, 0xa2, 0x42, 0xd1, 0x0b, 0xa3, 0x73, 0xfd, 0xe4, 0x2e, 0x3a, 0x52, 0x84, 0x8b, + 0x8e, 0x12, 0xec, 0x1f, 0x48, 0xd0, 0x96, 0xbe, 0x44, 0xfc, 0x05, 0xb9, 0xf3, 0xaf, 0x35, 0x2a, + 0xd8, 0x23, 0xd8, 0x72, 0x58, 0x71, 0x48, 0xea, 0xb8, 0x2d, 0xb2, 0x36, 0x88, 0xe7, 0x3e, 0x56, + 0xc7, 0x6d, 0x09, 0x1a, 0xc6, 0x72, 0xda, 0xbc, 0xc0, 0x9c, 0x4d, 0x1f, 0x1a, 0x25, 0xba, 0x39, + 0x41, 0xe8, 0x0f, 0x85, 0xce, 0x08, 0x9d, 0x50, 0x87, 0x46, 0xe7, 0x88, 0xdc, 0x50, 0x7f, 0x4f, + 0x21, 0x11, 0x2d, 0x7d, 0x23, 0x47, 0xfe, 0xc2, 0xa2, 0xc4, 0x10, 0xe1, 0x31, 0x58, 0x88, 0xe7, + 0x3c, 0x3b, 0x7c, 0x88, 0x6f, 0x91, 0x75, 0x1c, 0xfd, 0xe3, 0x0e, 0xf1, 0x2d, 0x4b, 0x48, 0xfa, + 0x40, 0xfe, 0x0a, 0xbd, 0x20, 0xac, 0xd4, 0xf4, 0xac, 0xfd, 0x11, 0x6b, 0x9a, 0x38, 0xbc, 0x24, + 0x8c, 0xea, 0x7b, 0x80, 0x43, 0x94, 0xc2, 0x71, 0x47, 0xf5, 0x95, 0x23, 0x63, 0x0c, 0xc7, 0xd1, + 0x01, 0xe6, 0x1e, 0x5b, 0x9b, 0x79, 0x23, 0x5b, 0x0d, 0x40, 0x87, 0x47, 0xeb, 0x2c, 0x98, 0xe1, + 0xa6, 0xfe, 0xfe, 0xc5, 0x33, 0x42, 0x5a, 0xd2, 0x03, 0xeb, 0x01, 0xcb, 0x46, 0xbe, 0x30, 0x90, + 0x60, 0xc1, 0x57, 0x86, 0x88, 0xb1, 0xdc, 0xeb, 0xe6, 0x8f, 0x61, 0x63, 0xc2, 0xea, 0xb7, 0x79, + 0xac, 0x6a, 0x22, 0x56, 0x77, 0xcb, 0xb0, 0x49, 0x6e, 0x4c, 0x93, 0x9a, 0x37, 0xbe, 0x3d, 0x80, + 0x4b, 0x17, 0xe0, 0x7a, 0xd6, 0xd0, 0x74, 0xa4, 0x8f, 0xd8, 0x9b, 0x14, 0x7a, 0xb9, 0x53, 0x69, + 0xdf, 0xb4, 0xda, 0x24, 0xca, 0xc0, 0x08, 0x2e, 0x27, 0xfe, 0x13, 0x1e, 0x94, 0x73, 0x22, 0x28, + 0x0f, 0xc8, 0x30, 0x43, 0xa0, 0x28, 0x02, 0x9b, 0xa7, 0xf1, 0x8b, 0xe3, 0x34, 0xc4, 0xf0, 0xd5, + 0xbd, 0xe1, 0xfc, 0xd8, 0x77, 0x7e, 0xd5, 0xfc, 0x37, 0x03, 0x90, 0x1e, 0x12, 0x40, 0xd2, 0x0e, + 0x4b, 0x57, 0xfa, 0x58, 0xbd, 0x82, 0x0e, 0x5d, 0x75, 0x3a, 0xbd, 0x1a, 0xcd, 0xd0, 0xc5, 0x66, + 0x6e, 0x8a, 0x30, 0x73, 0x4b, 0x78, 0xc6, 0x21, 0x74, 0xdd, 0xf5, 0x89, 0x1b, 0xa4, 0x4e, 0xb9, + 0x11, 0x9f, 0x71, 0x18, 0x48, 0x41, 0xfa, 0xe0, 0xfc, 0xa3, 0x02, 0xc0, 0x8a, 0xeb, 0xec, 0x75, + 0x6a, 0x6e, 0x0b, 0xb9, 0xf0, 0xaf, 0xc2, 0xc9, 0xda, 0x4b, 0x47, 0x30, 0x59, 0xdb, 0x00, 0x60, + 0x3b, 0x28, 0x9c, 0xf5, 0x46, 0x77, 0xc8, 0x4d, 0xcd, 0x42, 0xa2, 0x74, 0xae, 0x0c, 0xf1, 0x9a, + 0xdf, 0x1f, 0x10, 0x31, 0x8e, 0x1b, 0x5f, 0xc2, 0xe2, 0x46, 0x39, 0x59, 0x7b, 0x67, 0x80, 0xb5, + 0x21, 0x60, 0xfd, 0xc0, 0x21, 0x28, 0x49, 0x1f, 0xf3, 0x7f, 0x9a, 0x00, 0xd3, 0x74, 0x6b, 0x95, + 0xf2, 0xf4, 0x6f, 0x43, 0xd0, 0x7f, 0x71, 0x04, 0xa0, 0x6f, 0x82, 0x19, 0x27, 0x2c, 0x9d, 0x8e, + 0x7f, 0xfc, 0x62, 0x59, 0x2c, 0xec, 0x1c, 0x5d, 0xba, 0x50, 0x0c, 0xfc, 0x08, 0x8f, 0xbc, 0x2e, + 0x22, 0x7f, 0x6f, 0x0c, 0xbf, 0xb9, 0x12, 0x47, 0x09, 0xfd, 0xbb, 0x02, 0xe8, 0x37, 0x05, 0xe8, + 0x4b, 0x87, 0x21, 0x65, 0x0c, 0x57, 0x1c, 0x28, 0x20, 0x47, 0x4e, 0x24, 0xfe, 0x5a, 0x8a, 0x6b, + 0x31, 0xf3, 0x60, 0x82, 0xa8, 0x6c, 0x30, 0x47, 0xf4, 0x5f, 0xf1, 0x17, 0x73, 0xcb, 0x43, 0x6e, + 0xe0, 0x5d, 0xe2, 0xbf, 0x62, 0x1a, 0x7c, 0x4f, 0xf0, 0xee, 0x7c, 0x81, 0x6e, 0x1a, 0x07, 0x09, + 0x43, 0x4f, 0x20, 0x79, 0x8e, 0x8f, 0xec, 0x8c, 0xe2, 0x30, 0x13, 0xc8, 0x01, 0x84, 0xa4, 0x0f, + 0xfc, 0x17, 0x72, 0x60, 0x9e, 0xae, 0x00, 0x2e, 0xbb, 0xce, 0x6e, 0xcf, 0x8d, 0x62, 0xd6, 0xe1, + 0x65, 0xe1, 0x66, 0x30, 0xe7, 0x09, 0x3e, 0xf0, 0x4c, 0x26, 0x7a, 0x52, 0xe1, 0x1f, 0xf3, 0xfe, + 0x2f, 0xcf, 0x11, 0x91, 0x5c, 0x8c, 0x61, 0x60, 0x14, 0xed, 0x89, 0x37, 0x55, 0x24, 0x09, 0xe5, + 0x16, 0x14, 0x95, 0xa1, 0xd6, 0x97, 0x03, 0x99, 0xca, 0xcb, 0xc8, 0xd4, 0xfb, 0x03, 0x99, 0xfa, + 0x21, 0x41, 0xa6, 0x56, 0x0e, 0xcf, 0x92, 0xf4, 0x65, 0xeb, 0x35, 0xc1, 0x26, 0x5e, 0xb0, 0xc5, + 0xba, 0x9b, 0xc2, 0xc6, 0x2a, 0xef, 0x3b, 0x96, 0x13, 0x7c, 0xc7, 0xc4, 0x3b, 0x40, 0x12, 0xac, + 0x5a, 0x88, 0x54, 0x47, 0xc8, 0xd2, 0x1c, 0xc8, 0x5a, 0x3e, 0x75, 0x59, 0xab, 0x35, 0xd4, 0xba, + 0x44, 0x6c, 0x45, 0x63, 0x58, 0x07, 0x9c, 0x03, 0x85, 0x65, 0xab, 0xed, 0x21, 0x17, 0x7e, 0x89, + 0xad, 0x4a, 0xbc, 0x26, 0xc5, 0x01, 0x60, 0x09, 0x14, 0xb6, 0x48, 0x6d, 0xcc, 0x64, 0xbe, 0x4d, + 0x4e, 0x7b, 0x28, 0x85, 0x3a, 0xfb, 0x37, 0x69, 0x44, 0xc4, 0x9e, 0x62, 0x46, 0xb6, 0x9c, 0x91, + 0x20, 0x22, 0xe2, 0x60, 0x12, 0xc6, 0x72, 0x19, 0x58, 0x41, 0x47, 0xbb, 0x78, 0x8c, 0xbf, 0x98, + 0x1e, 0xc2, 0x45, 0xa0, 0x58, 0xad, 0x2e, 0xe9, 0x1c, 0xa7, 0x74, 0xfc, 0x98, 0xd4, 0xaf, 0xab, + 0x97, 0x55, 0x94, 0xe4, 0x71, 0xfb, 0x75, 0x49, 0x51, 0x91, 0x3e, 0x66, 0xdf, 0x26, 0x4e, 0xbd, + 0x9d, 0xb6, 0xd9, 0x44, 0x98, 0xfa, 0xd4, 0x50, 0xa3, 0x3d, 0x59, 0xce, 0xef, 0xc9, 0x38, 0x3d, + 0xcd, 0x1f, 0x42, 0x4f, 0x87, 0x5d, 0x32, 0x0e, 0x78, 0x4e, 0x1a, 0x7e, 0x64, 0x4b, 0xc6, 0xb1, + 0x64, 0x8c, 0xe1, 0xaa, 0x57, 0xff, 0xf0, 0xf2, 0x58, 0xb5, 0x75, 0xd8, 0x0d, 0x35, 0xc6, 0xac, + 0x91, 0x1d, 0x54, 0x1e, 0x66, 0x43, 0x2d, 0x9a, 0x86, 0x31, 0xa0, 0x35, 0xc7, 0xd0, 0xfa, 0x2c, + 0x1b, 0x46, 0x53, 0xde, 0xd3, 0xee, 0x3a, 0xae, 0x97, 0x6c, 0x4f, 0x1b, 0x53, 0xa7, 0x93, 0xff, + 0x92, 0x1e, 0x92, 0x13, 0xcf, 0xb2, 0x8f, 0x6a, 0xf8, 0x4c, 0x70, 0x48, 0x6e, 0x10, 0x01, 0xe9, + 0xc3, 0xfb, 0x96, 0x23, 0x1a, 0x3c, 0x87, 0x55, 0x47, 0xa6, 0x03, 0x23, 0x1b, 0x3a, 0x87, 0x51, + 0xc7, 0x68, 0x1a, 0xd2, 0xc7, 0xeb, 0x1f, 0xb8, 0x81, 0xf3, 0x4d, 0x63, 0x1c, 0x38, 0x7d, 0xcd, + 0xcc, 0x0f, 0xa9, 0x99, 0xc3, 0xee, 0xd5, 0x31, 0x5e, 0x8f, 0x6e, 0xc0, 0x1c, 0x66, 0xaf, 0x2e, + 0x86, 0x88, 0xf4, 0x11, 0x7f, 0xb3, 0x02, 0xf2, 0xf5, 0xf1, 0x8f, 0x97, 0xc3, 0xce, 0x45, 0x08, + 0xaf, 0xea, 0x23, 0x1b, 0x2e, 0x87, 0x99, 0x8b, 0x44, 0x92, 0x30, 0x86, 0xcb, 0x0e, 0x8e, 0x83, + 0x19, 0xb2, 0x24, 0xe2, 0x6f, 0x89, 0xff, 0x03, 0x1b, 0x35, 0xdf, 0x90, 0xa2, 0xae, 0x3e, 0x1b, + 0x4c, 0xfa, 0xfb, 0x66, 0x6c, 0xe4, 0x5c, 0x90, 0xd3, 0xcf, 0x60, 0xdf, 0x2d, 0xf8, 0xff, 0x50, + 0x8e, 0x2b, 0x23, 0xdf, 0x57, 0x1f, 0xd6, 0x71, 0xe5, 0x48, 0xf7, 0xd6, 0xff, 0x28, 0x1c, 0x51, + 0xff, 0x73, 0x7a, 0x98, 0xf7, 0xee, 0xb9, 0xe7, 0xfa, 0xec, 0xb9, 0x3f, 0xca, 0x63, 0x59, 0x17, + 0xb1, 0xbc, 0x4f, 0x96, 0x85, 0x23, 0x1c, 0x6b, 0xdf, 0x1d, 0xc0, 0x79, 0x4e, 0x80, 0x73, 0xf1, + 0x50, 0xb4, 0x8c, 0xe1, 0x90, 0x6a, 0x2e, 0x1c, 0x73, 0x3f, 0x96, 0xa2, 0x1e, 0xf7, 0x9c, 0x80, + 0xc9, 0x1d, 0x38, 0x01, 0x23, 0x68, 0x7a, 0xfe, 0x90, 0x9a, 0xfe, 0x31, 0x5e, 0x3a, 0x0c, 0x51, + 0x3a, 0x9e, 0x25, 0x8f, 0xc8, 0xe8, 0x46, 0xe6, 0xf7, 0x04, 0xe2, 0x71, 0x5e, 0x10, 0x8f, 0xf2, + 0xe1, 0x88, 0x49, 0x5f, 0x3e, 0x7e, 0xdf, 0x9f, 0xd0, 0x1e, 0xb1, 0xbe, 0x0f, 0xbb, 0x55, 0x2c, + 0x30, 0x71, 0x64, 0x23, 0xf7, 0x30, 0x5b, 0xc5, 0x83, 0x28, 0x19, 0x43, 0xfc, 0xbb, 0x59, 0x30, + 0x4d, 0x68, 0x3a, 0x6f, 0xb5, 0xb6, 0x91, 0x07, 0x7f, 0x99, 0xfa, 0x93, 0xfa, 0xd1, 0x46, 0x47, + 0x14, 0x12, 0x2a, 0xea, 0x6c, 0x72, 0x52, 0x8f, 0x0e, 0x4a, 0xe4, 0x02, 0x47, 0xe0, 0xb8, 0xa3, + 0x56, 0x0e, 0xa4, 0x20, 0x7d, 0xc8, 0x3e, 0x42, 0xdd, 0x6d, 0xd6, 0xcc, 0x2b, 0xce, 0x9e, 0x07, + 0x5f, 0x30, 0x82, 0x0e, 0x7a, 0x11, 0x14, 0xda, 0xa4, 0x34, 0x76, 0x84, 0x26, 0x7e, 0xba, 0xc3, + 0x58, 0x40, 0xeb, 0xd7, 0xd9, 0x9f, 0x49, 0xcf, 0xd1, 0x84, 0x7c, 0xa4, 0xe5, 0x8c, 0xfb, 0x1c, + 0xcd, 0x80, 0xfa, 0xc7, 0x72, 0xaf, 0xd1, 0x24, 0xae, 0xdd, 0xda, 0xb5, 0xbc, 0x11, 0x45, 0xdb, + 0x68, 0xe3, 0xb2, 0xfc, 0x68, 0x1b, 0xe4, 0x25, 0xe9, 0xe9, 0x5e, 0x8e, 0x2b, 0xf8, 0xf7, 0x71, + 0x9f, 0xee, 0x8d, 0xaf, 0x3e, 0x7d, 0x4c, 0xfe, 0x1b, 0xd5, 0xac, 0x73, 0xd4, 0x51, 0x3a, 0x45, + 0x1f, 0xec, 0xa1, 0x95, 0x85, 0x92, 0x76, 0x74, 0xca, 0xd2, 0xb7, 0xfe, 0xf4, 0x81, 0xf9, 0xc0, + 0x19, 0x90, 0x5f, 0x42, 0x17, 0xf6, 0xb6, 0xe1, 0xbd, 0x60, 0xd2, 0x70, 0x11, 0xaa, 0xd8, 0x5b, + 0x0e, 0xe6, 0xae, 0x87, 0x9f, 0x7d, 0x48, 0xd8, 0x1b, 0xc6, 0x63, 0x07, 0x99, 0xad, 0xf0, 0xac, + 0xa0, 0xff, 0x0a, 0x5f, 0x9e, 0x05, 0xb9, 0xba, 0x67, 0x7a, 0x70, 0x2a, 0xc0, 0x16, 0xbe, 0x80, + 0xc7, 0xe2, 0x5e, 0x11, 0x8b, 0x9b, 0x05, 0x5e, 0x10, 0x0a, 0x16, 0xf0, 0xff, 0x11, 0x00, 0x40, + 0x30, 0xf9, 0x70, 0xd7, 0xb1, 0x71, 0x0e, 0xff, 0xb8, 0xaa, 0xff, 0x0e, 0x5f, 0x1d, 0xb0, 0xfb, + 0x7e, 0x81, 0xdd, 0x4f, 0x92, 0xab, 0x62, 0x0c, 0x2b, 0x6d, 0x59, 0x30, 0x85, 0x59, 0xbb, 0x8a, + 0xcc, 0x56, 0x17, 0x3e, 0x3e, 0x14, 0xfe, 0x08, 0x36, 0xc3, 0x0f, 0x4a, 0x07, 0x40, 0xa5, 0xad, + 0x0a, 0x0a, 0x8f, 0xf6, 0xe8, 0xf0, 0x37, 0xff, 0xb3, 0x62, 0xe0, 0x98, 0xdb, 0x41, 0xce, 0xb2, + 0xb7, 0x1c, 0xe6, 0x5f, 0x78, 0x6d, 0x44, 0xd9, 0x58, 0x26, 0x74, 0x92, 0x51, 0x32, 0x3a, 0x6a, + 0x3c, 0x59, 0x63, 0xb9, 0x68, 0x30, 0x87, 0x6b, 0x87, 0xff, 0xc7, 0x40, 0x66, 0xab, 0x2a, 0xc8, + 0x75, 0x4c, 0x6f, 0x87, 0x55, 0x4d, 0x9e, 0xb1, 0x8d, 0xbc, 0x67, 0x9b, 0xb6, 0x63, 0x5f, 0xd9, + 0xb5, 0x9e, 0x1b, 0xdc, 0x67, 0x2c, 0xa4, 0x61, 0xca, 0xb7, 0x91, 0x8d, 0x5c, 0xd3, 0x43, 0xf5, + 0xfd, 0x6d, 0x32, 0xc7, 0x9a, 0xd4, 0xf9, 0xa4, 0xc4, 0xf2, 0x8f, 0x29, 0x8e, 0x96, 0xff, 0x2d, + 0xab, 0x8d, 0x48, 0x54, 0x2d, 0x26, 0xff, 0xfe, 0x7b, 0x22, 0xf9, 0xef, 0x53, 0x45, 0xfa, 0x68, + 0x7c, 0x27, 0x0b, 0x66, 0xea, 0x58, 0xe0, 0xea, 0x7b, 0xbb, 0xbb, 0xa6, 0x7b, 0x05, 0xde, 0x18, + 0xa2, 0xc2, 0x89, 0x66, 0x46, 0xf4, 0x4b, 0xf9, 0x3d, 0xe9, 0xab, 0xbc, 0x99, 0x6a, 0x73, 0x35, + 0x24, 0xd6, 0x83, 0xa7, 0x80, 0x3c, 0x16, 0x6f, 0xdf, 0xe3, 0x32, 0x56, 0x11, 0x68, 0x4e, 0xc9, + 0xe8, 0x63, 0x03, 0x69, 0x1b, 0x43, 0xe4, 0x93, 0x2c, 0x38, 0x5e, 0xf7, 0xcc, 0xe6, 0xc5, 0x15, + 0xc7, 0x75, 0xf6, 0x3c, 0xcb, 0x46, 0x5d, 0xf8, 0xb8, 0x10, 0x01, 0x5f, 0xfe, 0x33, 0xa1, 0xfc, + 0xc3, 0x7f, 0xcb, 0xc8, 0x8e, 0xa2, 0x41, 0xb7, 0xca, 0x17, 0x1f, 0x11, 0x4c, 0x4c, 0x6e, 0x5c, + 0x94, 0x29, 0x71, 0x2c, 0xa7, 0x24, 0x8a, 0xda, 0xe5, 0x8e, 0xe3, 0x7a, 0x6b, 0x4e, 0xd3, 0x6c, + 0x77, 0x3d, 0xc7, 0x45, 0xb0, 0x16, 0xcb, 0x35, 0xdc, 0xc3, 0xb4, 0x9c, 0x66, 0x38, 0x38, 0xb2, + 0x37, 0x5e, 0xec, 0x14, 0x51, 0xc6, 0x3f, 0x22, 0xbd, 0xcb, 0x48, 0xb9, 0xd2, 0x4b, 0x51, 0x84, + 0x9c, 0xf7, 0xeb, 0xd2, 0x92, 0x1d, 0x6c, 0x91, 0xdb, 0x79, 0x94, 0x22, 0x6a, 0x0c, 0x4b, 0xe5, + 0x59, 0x30, 0x5b, 0xdf, 0xbb, 0x10, 0x14, 0xd2, 0xe5, 0x8d, 0x90, 0xd7, 0x4a, 0x47, 0x14, 0x61, + 0x82, 0xc7, 0x17, 0x14, 0xc1, 0xdf, 0x9b, 0xc0, 0x6c, 0x97, 0xcf, 0xc6, 0xf0, 0x16, 0x13, 0x25, + 0x23, 0x89, 0x0c, 0xae, 0x35, 0x7d, 0x06, 0xbe, 0x27, 0x0b, 0x66, 0x6b, 0x1d, 0x64, 0xa3, 0x16, + 0xf5, 0x82, 0x14, 0x18, 0xf8, 0xf2, 0x84, 0x0c, 0x14, 0x0a, 0x8a, 0x60, 0x60, 0xe8, 0xb1, 0xbc, + 0xe4, 0x33, 0x2f, 0x4c, 0x48, 0xc4, 0xb8, 0xb8, 0xda, 0xd2, 0x67, 0xdc, 0x17, 0xb3, 0x60, 0x5a, + 0xdf, 0xb3, 0x37, 0x5c, 0x07, 0x8f, 0xc6, 0x2e, 0xbc, 0x2f, 0xec, 0x20, 0x6e, 0x03, 0x27, 0x5a, + 0x7b, 0x2e, 0x59, 0x7f, 0xaa, 0xd8, 0x75, 0xd4, 0x74, 0xec, 0x56, 0x97, 0xb4, 0x23, 0xaf, 0x1f, + 0xfc, 0x70, 0x4f, 0xee, 0x91, 0xbf, 0x51, 0x32, 0xf0, 0xa7, 0xa5, 0xc3, 0x12, 0xd1, 0xc6, 0x73, + 0x55, 0xcb, 0xf7, 0x04, 0x92, 0xc1, 0x87, 0x06, 0xd5, 0x90, 0x3e, 0x73, 0x3f, 0x94, 0x05, 0x6a, + 0xa9, 0xd9, 0x74, 0xf6, 0x6c, 0xaf, 0x8e, 0xda, 0xa8, 0xe9, 0x19, 0xae, 0xd9, 0x44, 0xf0, 0x78, + 0xc0, 0x63, 0xc6, 0xb5, 0x97, 0x4b, 0xef, 0x2f, 0xd2, 0x36, 0x1d, 0x2c, 0x33, 0x01, 0xf3, 0xe4, + 0x76, 0x11, 0x25, 0x2b, 0x1a, 0xc3, 0x3d, 0x3b, 0x59, 0x90, 0xdb, 0xb0, 0xec, 0x6d, 0x3e, 0x5a, + 0xd3, 0x49, 0x6c, 0xeb, 0xb4, 0xd0, 0x65, 0x26, 0x8d, 0xf4, 0x45, 0xbd, 0x13, 0x9c, 0xb4, 0xf7, + 0x76, 0x2f, 0x20, 0xb7, 0xb6, 0x45, 0x46, 0x82, 0xae, 0xe1, 0xd4, 0x91, 0x4d, 0x0d, 0xa5, 0xbc, + 0xde, 0xf7, 0x9b, 0x68, 0x26, 0x48, 0x18, 0xb8, 0x98, 0x92, 0x08, 0x5e, 0x07, 0x44, 0x65, 0x39, + 0xa2, 0x12, 0x99, 0xb6, 0x7d, 0x0a, 0x4f, 0x9f, 0xbf, 0x5f, 0xcb, 0x82, 0x89, 0x75, 0xe4, 0xb9, + 0x56, 0xb3, 0x0b, 0x3f, 0x8f, 0x87, 0x21, 0xe4, 0x6d, 0x98, 0xae, 0xb9, 0x8b, 0x3c, 0xe4, 0x76, + 0xa1, 0x16, 0x32, 0x1d, 0x82, 0xc9, 0x4e, 0xdb, 0xf4, 0xb6, 0x1c, 0x77, 0x97, 0xd9, 0x0c, 0xc1, + 0x3b, 0xb6, 0x0f, 0xf6, 0x91, 0xdb, 0x0d, 0xc9, 0xf2, 0x5f, 0x99, 0x80, 0xcb, 0x5b, 0x63, 0x8c, + 0x94, 0x05, 0x81, 0x8c, 0x43, 0x59, 0x63, 0x32, 0x25, 0x8e, 0xe5, 0x2e, 0x19, 0x65, 0xcd, 0xd9, + 0x86, 0xaf, 0x54, 0x40, 0x8e, 0x48, 0xde, 0x9b, 0x33, 0xc2, 0x14, 0x62, 0x17, 0x75, 0xbb, 0xe6, + 0x36, 0xf2, 0xa7, 0x10, 0xec, 0x55, 0xbd, 0x1b, 0xe4, 0xdb, 0x68, 0x1f, 0xb5, 0x09, 0x19, 0x73, + 0x77, 0xde, 0x28, 0xb4, 0x6c, 0xcd, 0xd9, 0x5e, 0xc0, 0x65, 0x2d, 0xb0, 0x72, 0x16, 0xd6, 0x70, + 0x56, 0x9d, 0xfe, 0x71, 0xf6, 0xd9, 0x20, 0x4f, 0xde, 0xd5, 0x29, 0x90, 0x5f, 0xd2, 0x16, 0x37, + 0x57, 0x8a, 0xc7, 0xf0, 0xa3, 0x4f, 0xdf, 0x14, 0xc8, 0x2f, 0x97, 0x8c, 0xd2, 0x5a, 0x31, 0x8b, + 0xdb, 0x51, 0xa9, 0x2e, 0xd7, 0x8a, 0x0a, 0x4e, 0xdc, 0x28, 0x55, 0x2b, 0xe5, 0x62, 0x4e, 0x9d, + 0x06, 0x13, 0xe7, 0x4b, 0x7a, 0xb5, 0x52, 0x5d, 0x29, 0xe6, 0xe1, 0x5f, 0xf3, 0xf8, 0xdd, 0x23, + 0xe2, 0x77, 0x53, 0x14, 0x4d, 0xfd, 0x20, 0xfb, 0xa5, 0x00, 0xb2, 0xfb, 0x04, 0xc8, 0xbe, 0x4f, + 0xa6, 0x90, 0x31, 0xa0, 0x94, 0x05, 0x13, 0x1b, 0xae, 0xd3, 0x44, 0xdd, 0x2e, 0xfc, 0x85, 0x2c, + 0x28, 0x94, 0x4d, 0xbb, 0x89, 0xda, 0xf0, 0x9a, 0x10, 0x2a, 0xea, 0x0b, 0x94, 0x09, 0x8e, 0x03, + 0xfc, 0x23, 0xcf, 0x99, 0x07, 0x44, 0xce, 0xdc, 0x2a, 0x34, 0x8a, 0x95, 0xbb, 0x40, 0xcb, 0x8c, + 0xe0, 0xcf, 0xeb, 0x02, 0xfe, 0x94, 0x05, 0xfe, 0xdc, 0x2e, 0x5f, 0x54, 0xfa, 0x5c, 0xfa, 0x56, + 0x06, 0x9c, 0x5c, 0x41, 0x36, 0x72, 0xad, 0x26, 0x25, 0xde, 0x6f, 0xff, 0x7d, 0x62, 0xfb, 0x9f, + 0x28, 0x10, 0xdd, 0xef, 0x0f, 0xb1, 0xf1, 0xaf, 0x09, 0x1a, 0xff, 0x80, 0xd0, 0xf8, 0xdb, 0x24, + 0xcb, 0x19, 0xc3, 0xc5, 0xb1, 0x53, 0x60, 0xa6, 0xea, 0x78, 0xd6, 0x96, 0xd5, 0xa4, 0x1b, 0xc7, + 0xaf, 0x50, 0x40, 0x6e, 0xcd, 0xea, 0x7a, 0xfc, 0x09, 0xf4, 0x1b, 0xc0, 0xb4, 0x65, 0x37, 0xdb, + 0x7b, 0x2d, 0xa4, 0x23, 0x93, 0xca, 0xca, 0xa4, 0xce, 0x27, 0x85, 0xeb, 0xf1, 0x98, 0x2c, 0xc5, + 0x5f, 0x8f, 0xff, 0x94, 0xb4, 0xed, 0xc4, 0x93, 0x40, 0xce, 0x77, 0x47, 0x0c, 0x49, 0x25, 0x30, + 0x6b, 0x73, 0x59, 0xfd, 0x23, 0xe7, 0xbd, 0x11, 0x9b, 0xf9, 0xe2, 0x74, 0xf1, 0x0f, 0xf8, 0x3e, + 0x29, 0x53, 0x6b, 0x10, 0x41, 0xc9, 0x90, 0x59, 0x4e, 0x8e, 0x8c, 0xaa, 0x82, 0xb9, 0x4a, 0xd5, + 0xd0, 0xf4, 0x6a, 0x69, 0x8d, 0x65, 0x51, 0xe0, 0x77, 0xb2, 0x20, 0xaf, 0xa3, 0x4e, 0xfb, 0x0a, + 0x1f, 0x92, 0x93, 0x79, 0x77, 0x65, 0x02, 0xef, 0x2e, 0x75, 0x19, 0x00, 0xb3, 0x89, 0x2b, 0x26, + 0x77, 0x8f, 0x64, 0xfb, 0x06, 0x8a, 0x13, 0x1a, 0x58, 0x0a, 0x72, 0xeb, 0xdc, 0x9f, 0xf0, 0x45, + 0xd2, 0xcb, 0x3d, 0x42, 0x69, 0x84, 0xc2, 0x88, 0xee, 0xe0, 0xfd, 0x52, 0x2b, 0x34, 0x03, 0x8b, + 0x3b, 0x1a, 0xf6, 0x7f, 0x39, 0x0b, 0x72, 0x06, 0x9e, 0x7f, 0x71, 0x53, 0xb1, 0x4f, 0x0e, 0x27, + 0xe3, 0xb8, 0x98, 0x08, 0x19, 0xbf, 0x1f, 0xcc, 0xf0, 0x12, 0xcb, 0xf6, 0x37, 0x62, 0x45, 0x5c, + 0xf8, 0x61, 0x18, 0x09, 0xef, 0x43, 0xce, 0xd1, 0xb0, 0xf8, 0x2b, 0xb7, 0x02, 0xb0, 0x8e, 0xb0, + 0x5d, 0xdb, 0xdd, 0xb1, 0x3a, 0xf0, 0x7f, 0x28, 0x60, 0x6a, 0x05, 0x79, 0x75, 0xcf, 0xf4, 0xf6, + 0xba, 0x3d, 0x6b, 0x94, 0xb6, 0x53, 0x36, 0x9b, 0x3b, 0x88, 0x75, 0x47, 0xfe, 0x2b, 0x7c, 0x97, + 0x22, 0xbb, 0x09, 0x18, 0xd6, 0xb3, 0x10, 0xd4, 0x11, 0x81, 0xc9, 0x93, 0x41, 0xae, 0x65, 0x7a, + 0x26, 0xc3, 0xe2, 0x9a, 0x1e, 0x2c, 0xc2, 0x82, 0x74, 0x92, 0x0d, 0xfe, 0x46, 0x56, 0x66, 0x17, + 0x50, 0xa2, 0xfe, 0x64, 0x20, 0xbc, 0x2f, 0x33, 0x04, 0x0a, 0x27, 0xc0, 0x6c, 0xb5, 0x66, 0x34, + 0xd6, 0x6a, 0x2b, 0x2b, 0x1a, 0x4e, 0x2d, 0x2a, 0xea, 0x69, 0xa0, 0x6e, 0x94, 0x1e, 0x5a, 0xd7, + 0xaa, 0x46, 0xa3, 0x5a, 0x5b, 0xd2, 0xd8, 0x9f, 0x39, 0xf5, 0x38, 0x98, 0x2e, 0x97, 0xca, 0xab, + 0x7e, 0x42, 0x5e, 0x9d, 0x07, 0x27, 0xd7, 0xb5, 0xf5, 0x45, 0x4d, 0xaf, 0xaf, 0x56, 0x36, 0x1a, + 0xb8, 0x98, 0xe5, 0xda, 0x66, 0x75, 0xa9, 0x58, 0x50, 0x21, 0x38, 0xcd, 0x7d, 0x39, 0xaf, 0xd7, + 0xaa, 0x2b, 0x8d, 0xba, 0x51, 0x32, 0xb4, 0xe2, 0x84, 0x7a, 0x15, 0x38, 0x5e, 0x2e, 0x55, 0x49, + 0xf6, 0x72, 0xad, 0x5a, 0xd5, 0xca, 0x46, 0x71, 0x12, 0xfe, 0x5b, 0x0e, 0x4c, 0x57, 0xba, 0x55, + 0x73, 0x17, 0x9d, 0x33, 0xdb, 0x56, 0x0b, 0xfe, 0x34, 0x67, 0x4d, 0xde, 0x04, 0x66, 0x5d, 0xfa, + 0x88, 0x5a, 0x86, 0x85, 0x28, 0x9a, 0xb3, 0xba, 0x98, 0xa8, 0x9e, 0x06, 0x05, 0x9b, 0x14, 0xc0, + 0x58, 0xc3, 0xde, 0xd4, 0x45, 0x00, 0xe8, 0x93, 0x11, 0xde, 0x82, 0x77, 0xb6, 0x57, 0x9b, 0xcc, + 0x5d, 0xd4, 0x45, 0xee, 0xbe, 0xd5, 0x44, 0x7e, 0x4e, 0x9d, 0xfb, 0x0b, 0x7e, 0x45, 0x91, 0x5d, + 0x14, 0xe4, 0x40, 0xe5, 0x9a, 0x13, 0xd1, 0x1b, 0xfe, 0x94, 0x22, 0xb3, 0xa4, 0x27, 0x55, 0x64, + 0x32, 0x49, 0x79, 0x49, 0x76, 0x08, 0x49, 0x99, 0x05, 0x53, 0x46, 0xad, 0xd6, 0xa8, 0xaf, 0xd6, + 0x74, 0xa3, 0xa8, 0xa8, 0x33, 0x60, 0x12, 0xbf, 0xae, 0xd5, 0xaa, 0x2b, 0xc5, 0x9c, 0x7a, 0x0a, + 0x9c, 0x58, 0x2d, 0xd5, 0x1b, 0x95, 0xea, 0xb9, 0xd2, 0x5a, 0x65, 0xa9, 0x51, 0x5e, 0x2d, 0xe9, + 0xf5, 0x62, 0x5e, 0xbd, 0x06, 0x9c, 0x32, 0x2a, 0x9a, 0xde, 0x58, 0xd6, 0x4a, 0xc6, 0xa6, 0xae, + 0xd5, 0x1b, 0xd5, 0x5a, 0xa3, 0x5a, 0x5a, 0xd7, 0x8a, 0x05, 0xac, 0xfe, 0xe4, 0x53, 0x28, 0x36, + 0x13, 0x07, 0x85, 0x71, 0x32, 0x42, 0x18, 0xa7, 0x7a, 0x85, 0x11, 0xf0, 0x62, 0xa5, 0x6b, 0x75, + 0x4d, 0x3f, 0xa7, 0x15, 0xa7, 0xfb, 0xc9, 0xda, 0x8c, 0x7a, 0x12, 0x14, 0x31, 0x0d, 0x8d, 0x4a, + 0xdd, 0xcf, 0xb9, 0x54, 0x9c, 0x85, 0x1f, 0x2b, 0x80, 0xd3, 0x3a, 0xda, 0xb6, 0xba, 0x1e, 0x72, + 0x37, 0xcc, 0x2b, 0xbb, 0xc8, 0xf6, 0xfc, 0x4e, 0xfe, 0x7f, 0x27, 0x16, 0xc6, 0x75, 0x30, 0xdb, + 0xa1, 0x65, 0xac, 0x23, 0x6f, 0xc7, 0x69, 0xb1, 0x51, 0xf8, 0x89, 0x91, 0x3d, 0xc7, 0xc2, 0x06, + 0x9f, 0x5d, 0x17, 0xff, 0xe6, 0x64, 0x5b, 0x89, 0x91, 0xed, 0xdc, 0x30, 0xb2, 0xad, 0x5e, 0x07, + 0xa6, 0xf6, 0xba, 0xc8, 0xd5, 0x76, 0x4d, 0xab, 0xed, 0xdf, 0x62, 0x16, 0x24, 0xc0, 0xb7, 0xe7, + 0x64, 0xdd, 0x4c, 0xb9, 0xb6, 0xf4, 0x67, 0x63, 0x44, 0xdf, 0x7a, 0x06, 0x00, 0xd6, 0xd8, 0x4d, + 0xb7, 0xcd, 0x84, 0x95, 0x4b, 0xc1, 0xf4, 0x5d, 0xb0, 0xda, 0x6d, 0xcb, 0xde, 0x0e, 0x16, 0xeb, + 0xc3, 0x04, 0xf8, 0x12, 0x45, 0xc6, 0xed, 0x34, 0x29, 0x6d, 0xc9, 0xb4, 0xe9, 0x45, 0xd9, 0x31, + 0xf7, 0xbb, 0x07, 0x55, 0xa7, 0xa0, 0x16, 0xc1, 0x0c, 0x49, 0x63, 0x1a, 0x58, 0x9c, 0xc0, 0x7d, + 0xb0, 0x5f, 0xdc, 0xba, 0x66, 0xac, 0xd6, 0x96, 0x82, 0x6f, 0x93, 0xb8, 0x48, 0x4c, 0x4c, 0xa9, + 0xfa, 0x10, 0xd1, 0xc6, 0x29, 0xf5, 0x71, 0xe0, 0x1a, 0xae, 0xc3, 0x2e, 0xad, 0xe9, 0x5a, 0x69, + 0xe9, 0xa1, 0x86, 0xf6, 0x9c, 0x4a, 0xdd, 0xa8, 0x8b, 0xca, 0xe5, 0xeb, 0xd1, 0x34, 0xa6, 0x57, + 0x5b, 0x2f, 0x55, 0xd6, 0x58, 0xff, 0xbe, 0x5c, 0xd3, 0xd7, 0x4b, 0x46, 0x71, 0x06, 0xbe, 0x52, + 0x01, 0xc5, 0x15, 0xe4, 0x6d, 0x38, 0xae, 0x67, 0xb6, 0xd7, 0x2c, 0xfb, 0xe2, 0xa6, 0xdb, 0xe6, + 0x6d, 0xa6, 0x7f, 0x95, 0x3e, 0x5b, 0x2b, 0x0e, 0x91, 0x42, 0x81, 0xd1, 0xcb, 0xd8, 0x1d, 0x92, + 0x2d, 0x14, 0xa6, 0x30, 0x01, 0x3e, 0x2f, 0x2b, 0x73, 0x96, 0x56, 0xbe, 0xd6, 0x64, 0x72, 0xf2, + 0xfc, 0x71, 0x8f, 0xcf, 0x7d, 0x50, 0x2b, 0xc0, 0x47, 0x72, 0x60, 0x72, 0xd9, 0xb2, 0xcd, 0xb6, + 0xf5, 0x5c, 0x21, 0x40, 0x5c, 0xd8, 0xc7, 0x64, 0x62, 0xfa, 0x98, 0xec, 0x50, 0xe3, 0xe7, 0xcf, + 0x2b, 0xb2, 0x1b, 0x16, 0x1c, 0xef, 0x7d, 0x22, 0x23, 0x06, 0xcf, 0xdf, 0xcd, 0xca, 0x6c, 0x49, + 0x0c, 0x2e, 0x2f, 0x19, 0x86, 0x9f, 0xf8, 0xde, 0xb0, 0xb1, 0x7a, 0xf4, 0x7b, 0xb2, 0x9f, 0x28, + 0x4c, 0xc1, 0x3f, 0x51, 0x00, 0x5c, 0x41, 0xde, 0x39, 0xe4, 0x06, 0x53, 0x01, 0xd2, 0xeb, 0x33, + 0x7b, 0x9b, 0x53, 0xd9, 0x37, 0xf3, 0x00, 0x9e, 0x17, 0x01, 0x2c, 0xc5, 0x28, 0x4f, 0x44, 0xd1, + 0x11, 0xca, 0x5b, 0x01, 0x85, 0x2e, 0xf9, 0xce, 0xc4, 0xec, 0x29, 0xd1, 0xc3, 0x25, 0x29, 0x8c, + 0x2f, 0x9d, 0x16, 0xac, 0xb3, 0x02, 0xe0, 0xb7, 0x83, 0x49, 0xd0, 0x0f, 0x0a, 0xd2, 0xb1, 0x7c, + 0x68, 0x62, 0x93, 0xc9, 0x8b, 0x9b, 0xae, 0xb8, 0xf4, 0xb3, 0x6f, 0xe0, 0x17, 0x72, 0xe0, 0x64, + 0xbf, 0xe6, 0xf0, 0xf7, 0xc8, 0x9d, 0x04, 0x79, 0x44, 0x46, 0x7c, 0xaa, 0xec, 0xf4, 0x45, 0x7d, + 0x2a, 0x38, 0xc5, 0x36, 0x4c, 0x2f, 0x20, 0xc3, 0xa9, 0xa2, 0x4b, 0xdd, 0x36, 0xf2, 0x3c, 0xe4, + 0x92, 0x96, 0x4d, 0xea, 0xfd, 0x3f, 0xc2, 0xbf, 0x55, 0x64, 0x5d, 0xd3, 0x07, 0xf0, 0x3b, 0x42, + 0xd3, 0x7f, 0x52, 0x91, 0x71, 0x36, 0x4f, 0x56, 0x76, 0x32, 0x14, 0x5f, 0x38, 0xee, 0x11, 0xbe, + 0xff, 0xd0, 0x4a, 0x74, 0x9e, 0xa6, 0xfb, 0x23, 0xf4, 0x39, 0x4d, 0xaf, 0x2c, 0x57, 0x34, 0x3c, + 0xde, 0x9f, 0x02, 0x27, 0xc2, 0x6f, 0x4b, 0x0f, 0x35, 0xea, 0x5a, 0xd5, 0x28, 0x4e, 0xe2, 0x0e, + 0x84, 0x26, 0x2f, 0x97, 0x2a, 0x6b, 0xda, 0x52, 0xc3, 0xa8, 0xe1, 0x2f, 0x4b, 0xc3, 0x8d, 0xf9, + 0xf0, 0x05, 0x39, 0x70, 0x9c, 0xf0, 0xf6, 0x0a, 0xe1, 0x2a, 0x66, 0x4a, 0x8f, 0xe7, 0x4a, 0x00, + 0xd0, 0x14, 0x65, 0x2f, 0xfc, 0x8c, 0xf4, 0x1d, 0x61, 0x1c, 0x84, 0x3d, 0x75, 0x44, 0x48, 0xc6, + 0xb7, 0xb2, 0x32, 0xe7, 0x3d, 0xa5, 0x8b, 0x4d, 0x26, 0x14, 0xff, 0x32, 0xee, 0xa1, 0x20, 0x1a, + 0x7c, 0x62, 0xfe, 0x95, 0xc9, 0xcf, 0xcf, 0xd9, 0xa8, 0xe8, 0x44, 0x1c, 0xe6, 0x00, 0x20, 0x29, + 0x44, 0x82, 0xa8, 0x1c, 0xf4, 0x1d, 0x48, 0xa2, 0xe4, 0xa0, 0x54, 0x36, 0x2a, 0xe7, 0xb4, 0x28, + 0x39, 0xf8, 0xb4, 0x02, 0x26, 0x57, 0x90, 0x87, 0x27, 0x3b, 0x5d, 0xf8, 0x4c, 0x89, 0x85, 0x19, + 0x6c, 0x5f, 0x90, 0xcb, 0x91, 0x83, 0xf9, 0x39, 0x7d, 0x83, 0x3f, 0x31, 0x8c, 0x6d, 0xe0, 0x57, + 0x1d, 0x31, 0x90, 0x3c, 0x1d, 0xe4, 0x3d, 0xfc, 0x99, 0xad, 0x0f, 0x3f, 0x3e, 0x72, 0x1c, 0xc1, + 0x85, 0x2c, 0x99, 0x9e, 0xa9, 0xd3, 0xfc, 0xdc, 0xb0, 0x21, 0x69, 0x54, 0x44, 0x10, 0xf2, 0xbd, + 0x68, 0x18, 0xfe, 0xb5, 0x02, 0x4e, 0x51, 0xfd, 0x28, 0x75, 0x3a, 0x75, 0xcf, 0x71, 0x91, 0x8e, + 0x9a, 0xc8, 0xea, 0x78, 0x3d, 0x0b, 0x6f, 0x2e, 0x4d, 0xf5, 0x77, 0xf6, 0xd8, 0x2b, 0x7c, 0xa3, + 0x22, 0x1b, 0xd1, 0xf0, 0x80, 0x3e, 0xf6, 0xd4, 0x17, 0xa1, 0xec, 0x8f, 0x66, 0x65, 0x62, 0x14, + 0x26, 0x2c, 0x3c, 0x19, 0x50, 0x1f, 0x3e, 0x02, 0xa0, 0xfc, 0x25, 0x15, 0x5d, 0x2b, 0x6b, 0x95, + 0x0d, 0x3c, 0x08, 0x5c, 0x0f, 0xae, 0xdd, 0xd8, 0xd4, 0xcb, 0xab, 0xa5, 0xba, 0xd6, 0xd0, 0xb5, + 0x95, 0x4a, 0xdd, 0xd0, 0x4b, 0x46, 0xa5, 0xe6, 0x13, 0x30, 0xa1, 0x5e, 0x07, 0xe6, 0xeb, 0x9b, + 0x8b, 0xf5, 0xb2, 0x5e, 0xd9, 0x20, 0xe9, 0xba, 0x56, 0xd5, 0xce, 0xb3, 0xaf, 0x93, 0xf0, 0x83, + 0x45, 0x30, 0x8d, 0x2d, 0xf3, 0x3a, 0x35, 0xd8, 0xe1, 0x37, 0x72, 0x60, 0x5a, 0x47, 0x5d, 0xa7, + 0xbd, 0x4f, 0x8c, 0xf7, 0x71, 0xcd, 0x09, 0xbe, 0xa9, 0xc8, 0x9e, 0x86, 0xe2, 0x88, 0x5d, 0xe0, + 0x08, 0x8d, 0x9e, 0x01, 0x9a, 0x7e, 0x74, 0x60, 0x66, 0xb7, 0x84, 0x09, 0xea, 0x02, 0x50, 0x9d, + 0x4b, 0x36, 0x72, 0xeb, 0xcd, 0x4b, 0x9a, 0xb7, 0x53, 0x6a, 0xb5, 0x5c, 0xd4, 0xed, 0xb2, 0x65, + 0x85, 0x3e, 0x5f, 0xd4, 0x5b, 0xc0, 0x71, 0x92, 0xca, 0x65, 0xa6, 0x47, 0x37, 0x7b, 0x93, 0x83, + 0x9c, 0x25, 0xfb, 0x8a, 0x9f, 0x33, 0xcf, 0xe5, 0x0c, 0x93, 0x79, 0xe7, 0xc3, 0x82, 0xe8, 0xf3, + 0x7a, 0x03, 0x98, 0xb6, 0xcd, 0x5d, 0xa4, 0x5d, 0xee, 0x58, 0x2e, 0xea, 0xce, 0x4f, 0x90, 0xdd, + 0x34, 0x3e, 0x09, 0xfe, 0xae, 0xd4, 0xe9, 0x2d, 0x39, 0x8e, 0x25, 0x93, 0xfd, 0x95, 0x21, 0x44, + 0xbf, 0x4f, 0x3f, 0xa3, 0xc0, 0x0f, 0x2a, 0x60, 0x86, 0x11, 0x55, 0xb2, 0xaf, 0x54, 0x5a, 0xf0, + 0x7a, 0xc1, 0x2c, 0x35, 0x71, 0x9a, 0x6f, 0x96, 0x92, 0x17, 0xf8, 0x33, 0x8a, 0xac, 0x3b, 0x51, + 0x9f, 0x86, 0x93, 0x3a, 0xa2, 0x5d, 0x5c, 0xb6, 0x9c, 0x3d, 0xe6, 0x52, 0x33, 0xa9, 0xd3, 0x97, + 0x34, 0x57, 0xdb, 0xe0, 0x87, 0xa4, 0x9c, 0x95, 0x24, 0x9b, 0x71, 0x44, 0x00, 0x7e, 0x5c, 0x01, + 0x73, 0x8c, 0xaa, 0x3a, 0xf3, 0x9a, 0x95, 0x72, 0x1f, 0xff, 0x59, 0x69, 0x43, 0xb0, 0x4f, 0xfb, + 0x59, 0x4d, 0x8f, 0x19, 0x20, 0x3f, 0x22, 0x15, 0x6a, 0x44, 0xba, 0x21, 0x47, 0x04, 0xe5, 0x3b, + 0x72, 0x60, 0x7a, 0xb3, 0x8b, 0x5c, 0xe6, 0x17, 0x07, 0x5f, 0x97, 0x03, 0xca, 0x0a, 0x12, 0x76, + 0x38, 0x5f, 0x9c, 0x93, 0x5d, 0xad, 0xe3, 0x1b, 0xcb, 0x15, 0x8a, 0x6d, 0xa4, 0x08, 0xd8, 0x6e, + 0x06, 0x73, 0x94, 0xa5, 0x25, 0xcf, 0xc3, 0x46, 0xa2, 0x7f, 0x08, 0xa0, 0x27, 0x75, 0x14, 0x7b, + 0x38, 0xa4, 0x2e, 0x9c, 0xa5, 0x8c, 0x69, 0x5a, 0x43, 0x5b, 0x34, 0x10, 0x55, 0x4e, 0xef, 0x49, + 0x25, 0x17, 0x37, 0x77, 0x10, 0xf5, 0x06, 0xe5, 0x32, 0xe7, 0x49, 0xe6, 0x7e, 0x9f, 0xe0, 0x37, + 0xa4, 0x22, 0xf4, 0xc9, 0x73, 0x27, 0x99, 0x2c, 0x74, 0x46, 0x63, 0x92, 0x9c, 0x04, 0x45, 0x9c, + 0x83, 0x6c, 0x8c, 0xe8, 0x5a, 0xbd, 0xb6, 0x76, 0x4e, 0xeb, 0xbf, 0xbe, 0x90, 0x87, 0x2f, 0x54, + 0xc0, 0xd4, 0xa2, 0xeb, 0x98, 0xad, 0xa6, 0xd9, 0xf5, 0xe0, 0xb7, 0xb3, 0x60, 0x66, 0xc3, 0xbc, + 0xd2, 0x76, 0xcc, 0x16, 0xf1, 0x44, 0xec, 0xe9, 0x0b, 0x3a, 0xf4, 0x93, 0xdf, 0x17, 0xb0, 0x57, + 0xd1, 0xcd, 0x3e, 0x70, 0x84, 0xcf, 0xc8, 0x5c, 0x25, 0x16, 0xec, 0xbf, 0x65, 0xfb, 0x85, 0xfe, + 0xf2, 0xe9, 0x5a, 0xe0, 0x69, 0x8a, 0xb0, 0x28, 0x3f, 0x28, 0x17, 0xcc, 0x4b, 0xa6, 0xc8, 0xa3, + 0xd9, 0x2e, 0x7f, 0x64, 0x12, 0x14, 0x96, 0x10, 0xb1, 0xe2, 0x7e, 0x33, 0x0b, 0x26, 0xd8, 0x65, + 0xfa, 0xf0, 0x6e, 0xc1, 0xc9, 0xb1, 0x45, 0x32, 0x04, 0xdd, 0x71, 0xf0, 0x8e, 0x27, 0xeb, 0xdc, + 0xe9, 0x25, 0xf2, 0x9c, 0xc0, 0xfd, 0x8b, 0xd6, 0x1b, 0x71, 0x81, 0x7f, 0x32, 0xf7, 0xaf, 0xd8, + 0xa2, 0xd2, 0x77, 0x82, 0x7a, 0x57, 0x96, 0xf9, 0x3c, 0x71, 0xbd, 0xde, 0x2f, 0xf3, 0xf2, 0x19, + 0xeb, 0x06, 0xc6, 0x88, 0x8f, 0xf1, 0x5a, 0xba, 0x0b, 0x4c, 0x50, 0x9e, 0xfb, 0xf3, 0xd1, 0x5e, + 0x07, 0x02, 0x5a, 0x04, 0x39, 0xc9, 0xe4, 0xe7, 0x94, 0xf4, 0x1d, 0x8b, 0xae, 0x7c, 0x2c, 0x27, + 0xfa, 0x66, 0xaa, 0xc8, 0xbb, 0xe4, 0xb8, 0x17, 0xeb, 0x9e, 0xe9, 0x21, 0xf8, 0x2f, 0x59, 0xa0, + 0xd4, 0x91, 0xc7, 0x9f, 0x25, 0xae, 0x82, 0x13, 0xb4, 0x41, 0x2c, 0x23, 0xe9, 0xbf, 0x69, 0x43, + 0x6e, 0xe8, 0xcb, 0x04, 0x2e, 0x9f, 0x7e, 0xf0, 0x57, 0xf8, 0x0b, 0x7d, 0x43, 0x28, 0x64, 0xfb, + 0x4c, 0x1a, 0x18, 0x67, 0x78, 0x02, 0xb1, 0x80, 0x45, 0xc8, 0xe9, 0xef, 0x48, 0x99, 0xd5, 0x72, + 0x65, 0x1e, 0x49, 0x57, 0x70, 0x76, 0x02, 0xe4, 0xb5, 0xdd, 0x8e, 0x77, 0xe5, 0xec, 0x13, 0xc0, + 0x6c, 0xdd, 0x73, 0x91, 0xb9, 0xcb, 0xd9, 0xd4, 0x9e, 0x73, 0x11, 0xd9, 0xbe, 0x4d, 0x4d, 0x5e, + 0xee, 0xb9, 0x1b, 0x4c, 0xd8, 0x4e, 0xc3, 0xdc, 0xf3, 0x76, 0xd4, 0xeb, 0x0f, 0x5c, 0x7a, 0xbf, + 0x4e, 0xbd, 0x75, 0x6b, 0xec, 0x2c, 0xcd, 0x57, 0xee, 0x25, 0x56, 0x55, 0xc1, 0x76, 0x4a, 0x7b, + 0xde, 0xce, 0xe2, 0x75, 0x1f, 0xff, 0xab, 0x33, 0x99, 0x4f, 0xff, 0xd5, 0x99, 0xcc, 0x97, 0xff, + 0xea, 0x4c, 0xe6, 0x67, 0xbf, 0x7a, 0xe6, 0xd8, 0xa7, 0xbf, 0x7a, 0xe6, 0xd8, 0xe7, 0xbf, 0x7a, + 0xe6, 0xd8, 0x0f, 0x66, 0x3b, 0x17, 0x2e, 0x14, 0x48, 0x29, 0x77, 0xfd, 0xbf, 0x01, 0x00, 0x00, + 0xff, 0xff, 0x6a, 0xd6, 0x20, 0x6f, 0xcc, 0xdd, 0x01, 0x00, } func (m *Rpc) Marshal() (dAtA []byte, err error) { @@ -80001,6 +80349,247 @@ func (m *RpcObjectListSetDetailsResponseError) MarshalToSizedBuffer(dAtA []byte) return len(dAtA) - i, nil } +func (m *RpcObjectListModifyDetailValues) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *RpcObjectListModifyDetailValues) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *RpcObjectListModifyDetailValues) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + return len(dAtA) - i, nil +} + +func (m *RpcObjectListModifyDetailValuesRequest) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *RpcObjectListModifyDetailValuesRequest) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *RpcObjectListModifyDetailValuesRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.Operations) > 0 { + for iNdEx := len(m.Operations) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.Operations[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintCommands(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + } + } + if len(m.ObjectIds) > 0 { + for iNdEx := len(m.ObjectIds) - 1; iNdEx >= 0; iNdEx-- { + i -= len(m.ObjectIds[iNdEx]) + copy(dAtA[i:], m.ObjectIds[iNdEx]) + i = encodeVarintCommands(dAtA, i, uint64(len(m.ObjectIds[iNdEx]))) + i-- + dAtA[i] = 0xa + } + } + return len(dAtA) - i, nil +} + +func (m *RpcObjectListModifyDetailValuesRequestOperation) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *RpcObjectListModifyDetailValuesRequestOperation) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *RpcObjectListModifyDetailValuesRequestOperation) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.OperationType != nil { + { + size := m.OperationType.Size() + i -= size + if _, err := m.OperationType.MarshalTo(dAtA[i:]); err != nil { + return 0, err + } + } + } + if len(m.Key) > 0 { + i -= len(m.Key) + copy(dAtA[i:], m.Key) + i = encodeVarintCommands(dAtA, i, uint64(len(m.Key))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *RpcObjectListModifyDetailValuesRequestOperationOperationTypeOfAdd) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *RpcObjectListModifyDetailValuesRequestOperationOperationTypeOfAdd) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + if m.Add != nil { + { + size, err := m.Add.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintCommands(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + } + return len(dAtA) - i, nil +} +func (m *RpcObjectListModifyDetailValuesRequestOperationOperationTypeOfSet) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *RpcObjectListModifyDetailValuesRequestOperationOperationTypeOfSet) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + if m.Set != nil { + { + size, err := m.Set.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintCommands(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x1a + } + return len(dAtA) - i, nil +} +func (m *RpcObjectListModifyDetailValuesRequestOperationOperationTypeOfRemove) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *RpcObjectListModifyDetailValuesRequestOperationOperationTypeOfRemove) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + if m.Remove != nil { + { + size, err := m.Remove.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintCommands(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x22 + } + return len(dAtA) - i, nil +} +func (m *RpcObjectListModifyDetailValuesResponse) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *RpcObjectListModifyDetailValuesResponse) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *RpcObjectListModifyDetailValuesResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.Error != nil { + { + size, err := m.Error.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintCommands(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *RpcObjectListModifyDetailValuesResponseError) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *RpcObjectListModifyDetailValuesResponseError) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *RpcObjectListModifyDetailValuesResponseError) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.Description) > 0 { + i -= len(m.Description) + copy(dAtA[i:], m.Description) + i = encodeVarintCommands(dAtA, i, uint64(len(m.Description))) + i-- + dAtA[i] = 0x12 + } + if m.Code != 0 { + i = encodeVarintCommands(dAtA, i, uint64(m.Code)) + i-- + dAtA[i] = 0x8 + } + return len(dAtA) - i, nil +} + func (m *RpcObjectApplyTemplate) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) @@ -113694,6 +114283,117 @@ func (m *RpcObjectListSetDetailsResponseError) Size() (n int) { return n } +func (m *RpcObjectListModifyDetailValues) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + return n +} + +func (m *RpcObjectListModifyDetailValuesRequest) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if len(m.ObjectIds) > 0 { + for _, s := range m.ObjectIds { + l = len(s) + n += 1 + l + sovCommands(uint64(l)) + } + } + if len(m.Operations) > 0 { + for _, e := range m.Operations { + l = e.Size() + n += 1 + l + sovCommands(uint64(l)) + } + } + return n +} + +func (m *RpcObjectListModifyDetailValuesRequestOperation) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Key) + if l > 0 { + n += 1 + l + sovCommands(uint64(l)) + } + if m.OperationType != nil { + n += m.OperationType.Size() + } + return n +} + +func (m *RpcObjectListModifyDetailValuesRequestOperationOperationTypeOfAdd) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Add != nil { + l = m.Add.Size() + n += 1 + l + sovCommands(uint64(l)) + } + return n +} +func (m *RpcObjectListModifyDetailValuesRequestOperationOperationTypeOfSet) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Set != nil { + l = m.Set.Size() + n += 1 + l + sovCommands(uint64(l)) + } + return n +} +func (m *RpcObjectListModifyDetailValuesRequestOperationOperationTypeOfRemove) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Remove != nil { + l = m.Remove.Size() + n += 1 + l + sovCommands(uint64(l)) + } + return n +} +func (m *RpcObjectListModifyDetailValuesResponse) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Error != nil { + l = m.Error.Size() + n += 1 + l + sovCommands(uint64(l)) + } + return n +} + +func (m *RpcObjectListModifyDetailValuesResponseError) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Code != 0 { + n += 1 + sovCommands(uint64(m.Code)) + } + l = len(m.Description) + if l > 0 { + n += 1 + l + sovCommands(uint64(l)) + } + return n +} + func (m *RpcObjectApplyTemplate) Size() (n int) { if m == nil { return 0 @@ -160740,6 +161440,546 @@ func (m *RpcObjectListSetDetailsResponseError) Unmarshal(dAtA []byte) error { } return nil } +func (m *RpcObjectListModifyDetailValues) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCommands + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: ListModifyDetailValues: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ListModifyDetailValues: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + default: + iNdEx = preIndex + skippy, err := skipCommands(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthCommands + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *RpcObjectListModifyDetailValuesRequest) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCommands + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: Request: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: Request: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ObjectIds", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCommands + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthCommands + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthCommands + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.ObjectIds = append(m.ObjectIds, string(dAtA[iNdEx:postIndex])) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Operations", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCommands + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthCommands + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthCommands + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Operations = append(m.Operations, &RpcObjectListModifyDetailValuesRequestOperation{}) + if err := m.Operations[len(m.Operations)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipCommands(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthCommands + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *RpcObjectListModifyDetailValuesRequestOperation) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCommands + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: Operation: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: Operation: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Key", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCommands + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthCommands + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthCommands + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Key = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Add", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCommands + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthCommands + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthCommands + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + v := &types.Value{} + if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.OperationType = &RpcObjectListModifyDetailValuesRequestOperationOperationTypeOfAdd{v} + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Set", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCommands + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthCommands + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthCommands + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + v := &types.Value{} + if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.OperationType = &RpcObjectListModifyDetailValuesRequestOperationOperationTypeOfSet{v} + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Remove", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCommands + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthCommands + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthCommands + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + v := &types.Value{} + if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.OperationType = &RpcObjectListModifyDetailValuesRequestOperationOperationTypeOfRemove{v} + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipCommands(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthCommands + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *RpcObjectListModifyDetailValuesResponse) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCommands + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: Response: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: Response: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Error", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCommands + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthCommands + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthCommands + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Error == nil { + m.Error = &RpcObjectListModifyDetailValuesResponseError{} + } + if err := m.Error.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipCommands(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthCommands + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *RpcObjectListModifyDetailValuesResponseError) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCommands + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: Error: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: Error: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Code", wireType) + } + m.Code = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCommands + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Code |= RpcObjectListModifyDetailValuesResponseErrorCode(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Description", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowCommands + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthCommands + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthCommands + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Description = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipCommands(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthCommands + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} func (m *RpcObjectApplyTemplate) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 diff --git a/pb/protos/commands.proto b/pb/protos/commands.proto index 14700f78d..bb985a17a 100644 --- a/pb/protos/commands.proto +++ b/pb/protos/commands.proto @@ -2417,6 +2417,37 @@ message Rpc { } } + message ListModifyDetailValues { + message Request { + repeated string objectIds = 1; + repeated Operation operations = 2; + + message Operation { + string key = 1; + oneof operation_type { + google.protobuf.Value add = 2; + google.protobuf.Value set = 3; + google.protobuf.Value remove = 4; + } + } + } + + message Response { + Error error = 1; + + message Error { + Code code = 1; + string description = 2; + + enum Code { + NULL = 0; + UNKNOWN_ERROR = 1; + BAD_INPUT = 2; + } + } + } + } + message ApplyTemplate { message Request { string contextId = 1; diff --git a/pb/protos/service/service.proto b/pb/protos/service/service.proto index d980851f9..6495fad57 100644 --- a/pb/protos/service/service.proto +++ b/pb/protos/service/service.proto @@ -99,6 +99,7 @@ service ClientCommands { rpc ObjectListSetIsFavorite (anytype.Rpc.Object.ListSetIsFavorite.Request) returns (anytype.Rpc.Object.ListSetIsFavorite.Response); rpc ObjectListSetObjectType (anytype.Rpc.Object.ListSetObjectType.Request) returns (anytype.Rpc.Object.ListSetObjectType.Response); rpc ObjectListSetDetails (anytype.Rpc.Object.ListSetDetails.Request) returns (anytype.Rpc.Object.ListSetDetails.Response); + rpc ObjectListModifyDetailValues (anytype.Rpc.Object.ListModifyDetailValues.Request) returns (anytype.Rpc.Object.ListModifyDetailValues.Response); rpc ObjectApplyTemplate (anytype.Rpc.Object.ApplyTemplate.Request) returns (anytype.Rpc.Object.ApplyTemplate.Response); // ObjectToSet creates new set from given object and removes object rpc ObjectToSet (anytype.Rpc.Object.ToSet.Request) returns (anytype.Rpc.Object.ToSet.Response); diff --git a/pb/service/service.pb.go b/pb/service/service.pb.go index 102982a65..70d78d42b 100644 --- a/pb/service/service.pb.go +++ b/pb/service/service.pb.go @@ -26,314 +26,316 @@ const _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package func init() { proto.RegisterFile("pb/protos/service/service.proto", fileDescriptor_93a29dc403579097) } var fileDescriptor_93a29dc403579097 = []byte{ - // 4904 bytes of a gzipped FileDescriptorProto + // 4931 bytes of a gzipped FileDescriptorProto 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x9c, 0x9d, 0xdd, 0x6f, 0x24, 0x49, - 0x52, 0xc0, 0xb7, 0x5f, 0x58, 0xa8, 0xe3, 0x16, 0xe8, 0x85, 0x65, 0x6f, 0xb9, 0x9b, 0xef, 0x6f, - 0x8f, 0xdb, 0xde, 0x99, 0xfd, 0x38, 0xf6, 0x90, 0x90, 0xc7, 0x1e, 0x7b, 0xcd, 0xd9, 0x1e, 0xe3, - 0x6e, 0xcf, 0x48, 0x2b, 0x21, 0x51, 0xae, 0x0e, 0xb7, 0x0b, 0x57, 0x57, 0xd6, 0x55, 0x65, 0xb7, - 0xa7, 0x0f, 0x81, 0x40, 0x20, 0x10, 0x08, 0xc4, 0x89, 0xaf, 0x17, 0x1e, 0x90, 0xf8, 0x6b, 0xe0, - 0xed, 0x1e, 0xef, 0x11, 0xed, 0xfe, 0x23, 0xa7, 0xca, 0xcc, 0xca, 0x8f, 0xa8, 0x8c, 0xac, 0xf2, - 0x3e, 0xcd, 0xa8, 0xe3, 0x17, 0x11, 0x99, 0x95, 0x91, 0x99, 0x91, 0x1f, 0x55, 0x8e, 0x6e, 0x16, - 0x67, 0x1b, 0x45, 0xc9, 0x38, 0xab, 0x36, 0x2a, 0x28, 0x97, 0x69, 0x02, 0xcd, 0xbf, 0x23, 0xf1, - 0xf3, 0xf0, 0xdd, 0x38, 0x5f, 0xf1, 0x55, 0x01, 0x1f, 0x7d, 0x68, 0xc8, 0x84, 0xcd, 0xe7, 0x71, - 0x3e, 0xad, 0x24, 0xf2, 0xd1, 0x07, 0x46, 0x02, 0x4b, 0xc8, 0xb9, 0xfa, 0xfd, 0xd9, 0xff, 0xfd, - 0x62, 0x10, 0xbd, 0xb7, 0x9d, 0xa5, 0x90, 0xf3, 0x6d, 0xa5, 0x31, 0xfc, 0x2a, 0xfa, 0xee, 0x56, - 0x51, 0xec, 0x01, 0x7f, 0x0d, 0x65, 0x95, 0xb2, 0x7c, 0x78, 0x77, 0xa4, 0x1c, 0x8c, 0x4e, 0x8a, - 0x64, 0xb4, 0x55, 0x14, 0x23, 0x23, 0x1c, 0x9d, 0xc0, 0x4f, 0x16, 0x50, 0xf1, 0x8f, 0xee, 0x85, - 0xa1, 0xaa, 0x60, 0x79, 0x05, 0xc3, 0xf3, 0xe8, 0xb7, 0xb6, 0x8a, 0x62, 0x0c, 0x7c, 0x07, 0xea, - 0x0a, 0x8c, 0x79, 0xcc, 0x61, 0xf8, 0xb0, 0xa5, 0xea, 0x02, 0xda, 0xc7, 0xa3, 0x6e, 0x50, 0xf9, - 0x99, 0x44, 0xdf, 0xa9, 0xfd, 0x5c, 0x2c, 0xf8, 0x94, 0x5d, 0xe5, 0xc3, 0xdb, 0x6d, 0x45, 0x25, - 0xd2, 0xb6, 0xef, 0x84, 0x10, 0x65, 0xf5, 0x4d, 0xf4, 0xeb, 0x6f, 0xe2, 0x2c, 0x03, 0xbe, 0x5d, - 0x42, 0x5d, 0x70, 0x57, 0x47, 0x8a, 0x46, 0x52, 0xa6, 0xed, 0xde, 0x0d, 0x32, 0xca, 0xf0, 0x57, - 0xd1, 0x77, 0xa5, 0xe4, 0x04, 0x12, 0xb6, 0x84, 0x72, 0xe8, 0xd5, 0x52, 0x42, 0xe2, 0x91, 0xb7, - 0x20, 0x6c, 0x7b, 0x9b, 0xe5, 0x4b, 0x28, 0xb9, 0xdf, 0xb6, 0x12, 0x86, 0x6d, 0x1b, 0x48, 0xd9, - 0xfe, 0x87, 0x41, 0xf4, 0xfd, 0xad, 0x24, 0x61, 0x8b, 0x9c, 0x1f, 0xb0, 0x24, 0xce, 0x0e, 0xd2, - 0xfc, 0xf2, 0x08, 0xae, 0xb6, 0x2f, 0x6a, 0x3e, 0x9f, 0xc1, 0xf0, 0xb9, 0xfb, 0x54, 0x25, 0x3a, - 0xd2, 0xec, 0xc8, 0x86, 0xb5, 0xef, 0x4f, 0xae, 0xa7, 0xa4, 0xca, 0xf2, 0x2f, 0x83, 0xe8, 0x06, - 0x2e, 0xcb, 0x98, 0x65, 0x4b, 0x30, 0xa5, 0xf9, 0xb4, 0xc3, 0xb0, 0x8b, 0xeb, 0xf2, 0x7c, 0x76, - 0x5d, 0x35, 0x55, 0xa2, 0x2c, 0x7a, 0xdf, 0x0e, 0x97, 0x31, 0x54, 0xa2, 0x3b, 0x3d, 0xa6, 0x23, - 0x42, 0x21, 0xda, 0xf3, 0x93, 0x3e, 0xa8, 0xf2, 0x96, 0x46, 0x43, 0xe5, 0x2d, 0x63, 0x95, 0x76, - 0xf6, 0xc8, 0x6b, 0xc1, 0x22, 0xb4, 0xaf, 0xc7, 0x3d, 0x48, 0xe5, 0xea, 0x4f, 0xa3, 0xdf, 0x78, - 0xc3, 0xca, 0xcb, 0xaa, 0x88, 0x13, 0x50, 0x5d, 0xe1, 0xbe, 0xab, 0xdd, 0x48, 0x71, 0x6f, 0x78, - 0xd0, 0x85, 0x59, 0x41, 0xdb, 0x08, 0x5f, 0x15, 0x80, 0xc7, 0x20, 0xa3, 0x58, 0x0b, 0xa9, 0xa0, - 0xc5, 0x90, 0xb2, 0x7d, 0x19, 0x0d, 0x8d, 0xed, 0xb3, 0x3f, 0x83, 0x84, 0x6f, 0x4d, 0xa7, 0xb8, - 0x55, 0x8c, 0xae, 0x20, 0x46, 0x5b, 0xd3, 0x29, 0xd5, 0x2a, 0x7e, 0x54, 0x39, 0xbb, 0x8a, 0x3e, - 0x40, 0xce, 0x0e, 0xd2, 0x4a, 0x38, 0x5c, 0x0f, 0x5b, 0x51, 0x98, 0x76, 0x3a, 0xea, 0x8b, 0x2b, - 0xc7, 0x7f, 0x35, 0x88, 0xbe, 0xe7, 0xf1, 0x7c, 0x02, 0x73, 0xb6, 0x84, 0xe1, 0x66, 0xb7, 0x35, - 0x49, 0x6a, 0xff, 0x1f, 0x5f, 0x43, 0xc3, 0x13, 0x26, 0x63, 0xc8, 0x20, 0xe1, 0x64, 0x98, 0x48, - 0x71, 0x67, 0x98, 0x68, 0xcc, 0xea, 0x61, 0x8d, 0x70, 0x0f, 0xf8, 0xf6, 0xa2, 0x2c, 0x21, 0xe7, - 0x64, 0x5b, 0x1a, 0xa4, 0xb3, 0x2d, 0x1d, 0xd4, 0x53, 0x9f, 0x3d, 0xe0, 0x5b, 0x59, 0x46, 0xd6, - 0x47, 0x8a, 0x3b, 0xeb, 0xa3, 0x31, 0xe5, 0x21, 0x89, 0x7e, 0xd3, 0x7a, 0x62, 0x7c, 0x3f, 0x3f, - 0x67, 0x43, 0xfa, 0x59, 0x08, 0xb9, 0xf6, 0xf1, 0xb0, 0x93, 0xf3, 0x54, 0xe3, 0xe5, 0xdb, 0x82, - 0x95, 0x74, 0xb3, 0x48, 0x71, 0x67, 0x35, 0x34, 0xa6, 0x3c, 0xfc, 0x49, 0xf4, 0x9e, 0x1a, 0x25, - 0x9b, 0xf9, 0xec, 0x9e, 0x77, 0x08, 0xc5, 0x13, 0xda, 0xfd, 0x0e, 0xca, 0x0c, 0x0e, 0x4a, 0xa6, - 0x06, 0x9f, 0xbb, 0x5e, 0x3d, 0x34, 0xf4, 0xdc, 0x0b, 0x43, 0x2d, 0xdb, 0x3b, 0x90, 0x01, 0x69, - 0x5b, 0x0a, 0x3b, 0x6c, 0x6b, 0x48, 0xd9, 0x2e, 0xa3, 0xdf, 0xd1, 0x8f, 0xa5, 0x9e, 0x47, 0x85, - 0xbc, 0x1e, 0xa4, 0xd7, 0x88, 0x7a, 0xdb, 0x90, 0xf6, 0xf5, 0xb4, 0x1f, 0xdc, 0xaa, 0x8f, 0xea, - 0x81, 0xfe, 0xfa, 0xa0, 0xfe, 0x77, 0x2f, 0x0c, 0x29, 0xdb, 0xff, 0x38, 0x88, 0x7e, 0xa0, 0x64, - 0x2f, 0xf3, 0xf8, 0x2c, 0x03, 0x31, 0x25, 0x1e, 0x01, 0xbf, 0x62, 0xe5, 0xe5, 0x78, 0x95, 0x27, - 0xc4, 0xf4, 0xef, 0x87, 0x3b, 0xa6, 0x7f, 0x52, 0xc9, 0xca, 0xf8, 0x54, 0x45, 0x39, 0x2b, 0x70, - 0xc6, 0xd7, 0xd4, 0x80, 0xb3, 0x82, 0xca, 0xf8, 0x5c, 0xa4, 0x65, 0xf5, 0xb0, 0x1e, 0x36, 0xfd, - 0x56, 0x0f, 0xed, 0x71, 0xf2, 0x4e, 0x08, 0x31, 0xc3, 0x56, 0x13, 0xc0, 0x2c, 0x3f, 0x4f, 0x67, - 0xa7, 0xc5, 0xb4, 0x0e, 0xe3, 0xc7, 0xfe, 0x08, 0xb5, 0x10, 0x62, 0xd8, 0x22, 0x50, 0xe5, 0xed, - 0x9f, 0x4d, 0x62, 0xa4, 0xba, 0xd2, 0x6e, 0xc9, 0xe6, 0x07, 0x30, 0x8b, 0x93, 0x95, 0xea, 0xff, - 0x9f, 0x84, 0x3a, 0x1e, 0xa6, 0x75, 0x21, 0x3e, 0xbd, 0xa6, 0x96, 0x2a, 0xcf, 0x7f, 0x0f, 0xa2, - 0x7b, 0x4d, 0xf5, 0x2f, 0xe2, 0x7c, 0x06, 0xaa, 0x3d, 0x65, 0xe9, 0xb7, 0xf2, 0xe9, 0x09, 0x54, - 0x3c, 0x2e, 0xf9, 0xf0, 0x0b, 0x7f, 0x25, 0x43, 0x3a, 0xba, 0x6c, 0x3f, 0xfa, 0x56, 0xba, 0xa6, - 0xd5, 0xc7, 0xf5, 0xc0, 0xa6, 0x86, 0x00, 0xb7, 0xd5, 0x85, 0x04, 0x0f, 0x00, 0x77, 0x42, 0x88, - 0x69, 0x75, 0x21, 0xd8, 0xcf, 0x97, 0x29, 0x87, 0x3d, 0xc8, 0xa1, 0x6c, 0xb7, 0xba, 0x54, 0x75, - 0x11, 0xa2, 0xd5, 0x09, 0xd4, 0x0c, 0x36, 0x8e, 0x37, 0x3d, 0x39, 0xae, 0x05, 0x8c, 0xb4, 0xa6, - 0xc7, 0xa7, 0xfd, 0x60, 0xb3, 0xba, 0xb3, 0x7c, 0x9e, 0xc0, 0x92, 0x5d, 0xe2, 0xd5, 0x9d, 0x6d, - 0x42, 0x02, 0xc4, 0xea, 0xce, 0x0b, 0x9a, 0x19, 0xcc, 0xf2, 0xf3, 0x3a, 0x85, 0x2b, 0x34, 0x83, - 0xd9, 0xca, 0xb5, 0x98, 0x98, 0xc1, 0x3c, 0x98, 0xf2, 0x70, 0x14, 0xfd, 0x9a, 0x10, 0xfe, 0x11, - 0x4b, 0xf3, 0xe1, 0x4d, 0x8f, 0x52, 0x2d, 0xd0, 0x56, 0x6f, 0xd1, 0x00, 0x2a, 0x71, 0xfd, 0xeb, - 0x76, 0x9c, 0x27, 0x90, 0x79, 0x4b, 0x6c, 0xc4, 0xc1, 0x12, 0x3b, 0x98, 0x49, 0x1d, 0x84, 0xb0, - 0x1e, 0xbf, 0xc6, 0x17, 0x71, 0x99, 0xe6, 0xb3, 0xa1, 0x4f, 0xd7, 0x92, 0x13, 0xa9, 0x83, 0x8f, - 0x43, 0x21, 0xac, 0x14, 0xb7, 0x8a, 0xa2, 0xac, 0x87, 0x45, 0x5f, 0x08, 0xbb, 0x48, 0x30, 0x84, - 0x5b, 0xa8, 0xdf, 0xdb, 0x0e, 0x24, 0x59, 0x9a, 0x07, 0xbd, 0x29, 0xa4, 0x8f, 0x37, 0x83, 0xa2, - 0xe0, 0x3d, 0x80, 0x78, 0x09, 0x4d, 0xcd, 0x7c, 0x4f, 0xc6, 0x06, 0x82, 0xc1, 0x8b, 0x40, 0xb3, - 0x4e, 0x13, 0xe2, 0xc3, 0xf8, 0x12, 0xea, 0x07, 0x0c, 0xf5, 0xbc, 0x36, 0xf4, 0xe9, 0x3b, 0x04, - 0xb1, 0x4e, 0xf3, 0x93, 0xca, 0xd5, 0x22, 0xfa, 0x40, 0xc8, 0x8f, 0xe3, 0x92, 0xa7, 0x49, 0x5a, - 0xc4, 0x79, 0x93, 0xff, 0xfb, 0xfa, 0x75, 0x8b, 0xd2, 0x2e, 0xd7, 0x7b, 0xd2, 0xca, 0xed, 0x7f, - 0x0e, 0xa2, 0xdb, 0xd8, 0xef, 0x31, 0x94, 0xf3, 0x54, 0x2c, 0x23, 0x2b, 0x39, 0x08, 0x0f, 0x3f, - 0x0f, 0x1b, 0x6d, 0x29, 0xe8, 0xd2, 0xfc, 0xf0, 0xfa, 0x8a, 0xaa, 0x60, 0x7f, 0x1c, 0x45, 0x72, - 0xb9, 0x22, 0x96, 0x94, 0x6e, 0xaf, 0x55, 0xeb, 0x18, 0x67, 0x3d, 0x79, 0x3b, 0x40, 0x98, 0xa9, - 0x42, 0xfe, 0x2e, 0x56, 0xca, 0x43, 0xaf, 0x86, 0x10, 0x11, 0x53, 0x05, 0x42, 0x70, 0x41, 0xc7, - 0x17, 0xec, 0xca, 0x5f, 0xd0, 0x5a, 0x12, 0x2e, 0xa8, 0x22, 0xcc, 0xde, 0x95, 0x2a, 0xa8, 0x6f, - 0xef, 0xaa, 0x29, 0x46, 0x68, 0xef, 0x0a, 0x33, 0xca, 0x30, 0x8b, 0x7e, 0xdb, 0x36, 0xfc, 0x82, - 0xb1, 0xcb, 0x79, 0x5c, 0x5e, 0x0e, 0x9f, 0xd0, 0xca, 0x0d, 0xa3, 0x1d, 0xad, 0xf5, 0x62, 0xcd, - 0xb0, 0x60, 0x3b, 0xac, 0x13, 0x8d, 0xd3, 0x32, 0x43, 0xc3, 0x82, 0x63, 0x43, 0x21, 0xc4, 0xb0, - 0x40, 0xa0, 0x66, 0xe4, 0xb6, 0xbd, 0x8d, 0x01, 0xaf, 0x96, 0x1c, 0xf5, 0x31, 0x50, 0xab, 0x25, - 0x0f, 0x86, 0x43, 0x68, 0xaf, 0x8c, 0x8b, 0x0b, 0x7f, 0x08, 0x09, 0x51, 0x38, 0x84, 0x1a, 0x04, - 0xb7, 0xf7, 0x18, 0xe2, 0x32, 0xb9, 0xf0, 0xb7, 0xb7, 0x94, 0x85, 0xdb, 0x5b, 0x33, 0xb8, 0xbd, - 0xa5, 0xe0, 0x4d, 0xca, 0x2f, 0x0e, 0x81, 0xc7, 0xfe, 0xf6, 0x76, 0x99, 0x70, 0x7b, 0xb7, 0x58, - 0x93, 0xc9, 0xd8, 0x0e, 0xc7, 0x8b, 0xb3, 0x2a, 0x29, 0xd3, 0x33, 0x18, 0x06, 0xac, 0x68, 0x88, - 0xc8, 0x64, 0x48, 0xd8, 0x0c, 0xd2, 0xca, 0x67, 0x23, 0xdb, 0x9f, 0x56, 0x68, 0x90, 0x6e, 0x6c, - 0x58, 0x04, 0x31, 0x48, 0xfb, 0x49, 0x5c, 0xbd, 0xbd, 0x92, 0x2d, 0x8a, 0xaa, 0xa3, 0x7a, 0x08, - 0x0a, 0x57, 0xaf, 0x0d, 0x2b, 0x9f, 0x6f, 0xa3, 0xdf, 0xb5, 0x1f, 0xe9, 0x69, 0x5e, 0x69, 0xaf, - 0xeb, 0xf4, 0x73, 0xb2, 0x30, 0x62, 0x5b, 0x2a, 0x80, 0x9b, 0x34, 0xa5, 0xf1, 0xcc, 0x77, 0x80, - 0xc7, 0x69, 0x56, 0x0d, 0x1f, 0xf8, 0x6d, 0x34, 0x72, 0x22, 0x4d, 0xf1, 0x71, 0xb8, 0xcf, 0xee, - 0x2c, 0x8a, 0x2c, 0x4d, 0xda, 0xfb, 0x93, 0x4a, 0x57, 0x8b, 0xc3, 0x7d, 0xd6, 0xc6, 0xf0, 0x18, - 0x34, 0x06, 0x2e, 0xff, 0x33, 0x59, 0x15, 0xe0, 0x1f, 0x83, 0x1c, 0x24, 0x3c, 0x06, 0x61, 0x14, - 0xd7, 0x67, 0x0c, 0xfc, 0x20, 0x5e, 0xb1, 0x05, 0x31, 0x06, 0x69, 0x71, 0xb8, 0x3e, 0x36, 0x66, - 0x32, 0x05, 0xed, 0x61, 0x3f, 0xe7, 0x50, 0xe6, 0x71, 0xb6, 0x9b, 0xc5, 0xb3, 0x6a, 0x48, 0xf4, - 0x1b, 0x97, 0x22, 0x32, 0x05, 0x9a, 0xf6, 0x3c, 0xc6, 0xfd, 0x6a, 0x37, 0x5e, 0xb2, 0x32, 0xe5, - 0xf4, 0x63, 0x34, 0x48, 0xe7, 0x63, 0x74, 0x50, 0xaf, 0xb7, 0xad, 0x32, 0xb9, 0x48, 0x97, 0x30, - 0x0d, 0x78, 0x6b, 0x90, 0x1e, 0xde, 0x2c, 0xd4, 0xd3, 0x68, 0x63, 0xb6, 0x28, 0x13, 0x20, 0x1b, - 0x4d, 0x8a, 0x3b, 0x1b, 0x4d, 0x63, 0xca, 0xc3, 0xdf, 0x0e, 0xa2, 0xdf, 0x93, 0x52, 0x7b, 0xd3, - 0x70, 0x27, 0xae, 0x2e, 0xce, 0x58, 0x5c, 0x4e, 0x87, 0x1f, 0xfb, 0xec, 0x78, 0x51, 0xed, 0xfa, - 0xd9, 0x75, 0x54, 0xf0, 0x63, 0x3d, 0x48, 0x2b, 0xab, 0xc7, 0x79, 0x1f, 0xab, 0x83, 0x84, 0x1f, - 0x2b, 0x46, 0xf1, 0x00, 0x22, 0xe4, 0x72, 0x81, 0xfe, 0x80, 0xd4, 0x77, 0x57, 0xe9, 0x0f, 0x3b, - 0x39, 0x3c, 0x3e, 0xd6, 0x42, 0x37, 0x5a, 0xd6, 0x29, 0x1b, 0xfe, 0x88, 0x19, 0xf5, 0xc5, 0x49, - 0xcf, 0xba, 0x57, 0x84, 0x3d, 0xb7, 0x7a, 0xc6, 0xa8, 0x2f, 0x4e, 0x78, 0xb6, 0x86, 0xb5, 0x90, - 0x67, 0xcf, 0xd0, 0x36, 0xea, 0x8b, 0xe3, 0x8c, 0x42, 0x31, 0xcd, 0xbc, 0xf0, 0x24, 0x60, 0x07, - 0xcf, 0x0d, 0x6b, 0xbd, 0x58, 0x1c, 0xb1, 0x5b, 0x45, 0x91, 0xad, 0x26, 0x30, 0x2f, 0x32, 0x32, - 0x62, 0x1d, 0x24, 0x1c, 0xb1, 0x18, 0xc5, 0xf9, 0xdd, 0x84, 0xd5, 0xd9, 0xa3, 0x37, 0xbf, 0x13, - 0xa2, 0x70, 0x7e, 0xd7, 0x20, 0x38, 0x43, 0x99, 0xb0, 0x6d, 0x96, 0x65, 0x90, 0xf0, 0xf6, 0x71, - 0x9f, 0xd6, 0x34, 0x44, 0x38, 0x43, 0x41, 0xa4, 0x59, 0x19, 0x37, 0xab, 0x91, 0xb8, 0x84, 0x17, - 0xab, 0x83, 0x34, 0xbf, 0x1c, 0xfa, 0x27, 0x63, 0x03, 0x10, 0x2b, 0x63, 0x2f, 0x88, 0x57, 0x3d, - 0xa7, 0xf9, 0x94, 0xf9, 0x57, 0x3d, 0xb5, 0x24, 0xbc, 0xea, 0x51, 0x04, 0x36, 0x79, 0x02, 0x94, - 0xc9, 0x5a, 0x12, 0x36, 0xa9, 0x08, 0xdf, 0x00, 0xa4, 0xf6, 0x4f, 0xc9, 0x01, 0x08, 0xed, 0x98, - 0x3e, 0xec, 0xe4, 0x70, 0x84, 0x36, 0xcb, 0x9f, 0x5d, 0xe0, 0xc9, 0x85, 0x3f, 0x42, 0x1d, 0x24, - 0x1c, 0xa1, 0x18, 0xc5, 0x55, 0x9a, 0x30, 0xbd, 0x7c, 0x7b, 0xe0, 0x8f, 0x8f, 0xd6, 0xd2, 0xed, - 0x61, 0x27, 0x87, 0x17, 0x24, 0xfb, 0x73, 0xf1, 0xcc, 0xbc, 0x41, 0x2e, 0x65, 0xe1, 0x05, 0x89, - 0x66, 0x70, 0xe9, 0xa5, 0xa0, 0x7e, 0x9c, 0xfe, 0xd2, 0x1b, 0x79, 0xb8, 0xf4, 0x0e, 0xa7, 0x9c, - 0xfc, 0xfb, 0x20, 0xba, 0x69, 0x7b, 0x39, 0x62, 0x75, 0x1f, 0x79, 0x1d, 0x67, 0xe9, 0x34, 0xe6, - 0x30, 0x61, 0x97, 0x90, 0xa3, 0x1d, 0x0d, 0xb7, 0xb4, 0x92, 0x1f, 0x39, 0x0a, 0xc4, 0x8e, 0x46, - 0x2f, 0x45, 0x1c, 0x27, 0x92, 0x3e, 0xad, 0x60, 0x3b, 0xae, 0x88, 0x91, 0xcc, 0x41, 0xc2, 0x71, - 0x82, 0x51, 0x9c, 0x25, 0x4a, 0xf9, 0xcb, 0xb7, 0x05, 0x94, 0x29, 0xe4, 0x09, 0xf8, 0xb3, 0x44, - 0x4c, 0x85, 0xb3, 0x44, 0x0f, 0xdd, 0x5a, 0xf0, 0xeb, 0xc1, 0xa9, 0x7d, 0x62, 0x8f, 0x89, 0xc0, - 0x89, 0x3d, 0x81, 0xe2, 0x4a, 0x1a, 0xc0, 0xbb, 0x69, 0xd6, 0xb2, 0x12, 0xdc, 0x34, 0xa3, 0xe9, - 0xd6, 0x36, 0x8a, 0x66, 0xc6, 0x75, 0x37, 0xe9, 0x28, 0xfa, 0xd8, 0xee, 0x2e, 0x6b, 0xbd, 0x58, - 0xff, 0xbe, 0xcd, 0x09, 0x64, 0xb1, 0x98, 0x42, 0x02, 0x9b, 0x23, 0x0d, 0xd3, 0x67, 0xdf, 0xc6, - 0x62, 0x95, 0xc3, 0xbf, 0x1e, 0x44, 0x1f, 0xf9, 0x3c, 0xbe, 0x2a, 0x84, 0xdf, 0xcd, 0x6e, 0x5b, - 0x92, 0x24, 0xae, 0x24, 0x84, 0x35, 0x54, 0x19, 0xfe, 0x3c, 0xfa, 0xb0, 0x11, 0x99, 0x1b, 0x0b, - 0xaa, 0x00, 0x6e, 0xda, 0xa2, 0xcb, 0x8f, 0x39, 0xed, 0x7e, 0xa3, 0x37, 0x6f, 0x56, 0x04, 0x6e, - 0xb9, 0x2a, 0xb4, 0x22, 0xd0, 0x36, 0x94, 0x98, 0x58, 0x11, 0x78, 0x30, 0x3c, 0x53, 0x37, 0x48, - 0xdd, 0x4f, 0x7c, 0x63, 0x9c, 0x36, 0x61, 0xf7, 0x92, 0x47, 0xdd, 0x20, 0x8e, 0x9d, 0x46, 0xac, - 0x12, 0xf1, 0x27, 0x21, 0x0b, 0x28, 0x19, 0x5f, 0xeb, 0xc5, 0x2a, 0x87, 0x7f, 0x19, 0x7d, 0xaf, - 0x55, 0xb1, 0x5d, 0x88, 0xf9, 0xa2, 0x84, 0xe9, 0x70, 0xa3, 0xa3, 0xdc, 0x0d, 0xa8, 0x5d, 0x6f, - 0xf6, 0x57, 0x50, 0xfe, 0xff, 0x7e, 0x10, 0x7d, 0xdf, 0xe5, 0x64, 0x13, 0xeb, 0x32, 0x3c, 0x0b, - 0x99, 0x74, 0x59, 0x5d, 0x8c, 0xe7, 0xd7, 0xd2, 0x69, 0x2d, 0xfa, 0xec, 0x40, 0xde, 0x5a, 0xc6, - 0x69, 0x26, 0x0e, 0x12, 0x3e, 0x0e, 0x19, 0x75, 0xd0, 0xe0, 0xa2, 0x8f, 0x54, 0x69, 0x8d, 0x92, - 0xa2, 0xbf, 0x59, 0x8b, 0x85, 0xa7, 0x74, 0xaf, 0xf4, 0xac, 0x15, 0xd6, 0x7b, 0xd2, 0xca, 0x2d, - 0x6f, 0x36, 0xcb, 0xea, 0x9f, 0xed, 0x20, 0xf7, 0x79, 0x55, 0xaa, 0x9e, 0x48, 0x5f, 0xef, 0x49, - 0x2b, 0xaf, 0x7f, 0x11, 0x7d, 0xd8, 0xf6, 0xaa, 0x26, 0x85, 0x8d, 0x4e, 0x53, 0x68, 0x5e, 0xd8, - 0xec, 0xaf, 0x60, 0x52, 0xfd, 0x2f, 0xd3, 0x8a, 0xb3, 0x72, 0x35, 0xbe, 0x60, 0x57, 0xcd, 0xad, - 0x5c, 0xb7, 0xb7, 0x2a, 0x60, 0x64, 0x11, 0x44, 0xaa, 0xef, 0x27, 0x5b, 0xae, 0xcc, 0xed, 0xdd, - 0x8a, 0x70, 0x65, 0x11, 0x1d, 0xae, 0x5c, 0xd2, 0x8c, 0x55, 0x4d, 0xad, 0xcc, 0x55, 0xe3, 0x87, - 0xfe, 0xa2, 0xb6, 0xaf, 0x1b, 0x3f, 0xea, 0x06, 0x4d, 0xf6, 0xa0, 0xc4, 0x3b, 0xe9, 0xf9, 0xb9, - 0xae, 0x93, 0xbf, 0xa4, 0x36, 0x42, 0x64, 0x0f, 0x04, 0x6a, 0x92, 0xd1, 0xdd, 0x34, 0x03, 0x71, - 0x2a, 0xf5, 0xea, 0xfc, 0x3c, 0x63, 0xf1, 0x14, 0x25, 0xa3, 0xb5, 0x78, 0x64, 0xcb, 0x89, 0x64, - 0xd4, 0xc7, 0x99, 0x4b, 0x3d, 0xb5, 0xf4, 0x04, 0x12, 0x96, 0x27, 0x69, 0x86, 0x2f, 0x29, 0x09, - 0x4d, 0x2d, 0x24, 0x2e, 0xf5, 0xb4, 0x20, 0x33, 0x49, 0xd5, 0xa2, 0xba, 0xdb, 0x37, 0xe5, 0xbf, - 0xdf, 0x56, 0xb4, 0xc4, 0xc4, 0x24, 0xe5, 0xc1, 0xcc, 0x9a, 0xac, 0x16, 0x9e, 0x16, 0xc2, 0xf8, - 0xad, 0xb6, 0x96, 0x94, 0x10, 0x6b, 0x32, 0x97, 0x30, 0x6b, 0x8b, 0xfa, 0xf7, 0x1d, 0x76, 0x95, - 0x0b, 0xa3, 0x77, 0xda, 0x2a, 0x8d, 0x8c, 0x58, 0x5b, 0x60, 0x46, 0x19, 0xfe, 0x71, 0xf4, 0xab, - 0xc2, 0x70, 0xc9, 0x8a, 0xe1, 0x0d, 0x8f, 0x42, 0x69, 0xdd, 0x27, 0xba, 0x49, 0xca, 0xcd, 0xb5, - 0x38, 0x1d, 0x1b, 0xa7, 0x55, 0x3c, 0x83, 0xe1, 0x3d, 0xa2, 0xc5, 0x85, 0x94, 0xb8, 0x16, 0xd7, - 0xa6, 0xdc, 0xa8, 0x38, 0x62, 0x53, 0x65, 0xdd, 0x53, 0x43, 0x2d, 0x0c, 0x45, 0x85, 0x0d, 0x99, - 0x43, 0x8a, 0xa3, 0x78, 0x99, 0xce, 0xf4, 0x84, 0x23, 0xc7, 0xad, 0x0a, 0x1d, 0x52, 0x18, 0x66, - 0x64, 0x41, 0xc4, 0x21, 0x05, 0x09, 0x2b, 0x9f, 0xff, 0x36, 0x88, 0x6e, 0x19, 0x66, 0xaf, 0xd9, - 0x3b, 0xda, 0xcf, 0xcf, 0xd9, 0x9b, 0x94, 0x5f, 0x1c, 0xa4, 0xf9, 0x65, 0x35, 0xfc, 0x8c, 0x32, - 0xe9, 0xe7, 0x75, 0x51, 0x3e, 0xbf, 0xb6, 0x9e, 0xc9, 0x20, 0x9b, 0x2d, 0x1e, 0x73, 0x62, 0x28, - 0x35, 0x50, 0x06, 0xa9, 0x77, 0x82, 0x30, 0x47, 0x64, 0x90, 0x21, 0xde, 0x34, 0xb1, 0x76, 0x9e, - 0xb1, 0x1c, 0x37, 0xb1, 0xb1, 0x50, 0x0b, 0x89, 0x26, 0x6e, 0x41, 0x66, 0x3c, 0x6e, 0x44, 0x72, - 0x37, 0x62, 0x2b, 0xcb, 0xd0, 0x78, 0xac, 0x55, 0x35, 0x40, 0x8c, 0xc7, 0x5e, 0x50, 0xf9, 0x39, - 0x89, 0xbe, 0x53, 0x3f, 0xd2, 0xe3, 0x12, 0x96, 0x29, 0xe0, 0xc3, 0x6d, 0x4b, 0x42, 0xf4, 0x7f, - 0x97, 0x30, 0x3d, 0xeb, 0x34, 0xaf, 0x8a, 0x2c, 0xae, 0x2e, 0xd4, 0x71, 0xa7, 0x5b, 0xe7, 0x46, - 0x88, 0x0f, 0x3c, 0xef, 0x77, 0x50, 0x66, 0x50, 0x6f, 0x64, 0x7a, 0x88, 0x79, 0xe0, 0x57, 0x6d, - 0x0d, 0x33, 0x0f, 0x3b, 0x39, 0xb3, 0xff, 0xba, 0x17, 0x67, 0x19, 0x94, 0xab, 0x46, 0x76, 0x18, - 0xe7, 0xe9, 0x39, 0x54, 0x1c, 0xed, 0xbf, 0x2a, 0x6a, 0x84, 0x31, 0x62, 0xff, 0x35, 0x80, 0x9b, - 0x6c, 0x1e, 0x79, 0xde, 0xcf, 0xa7, 0xf0, 0x16, 0x65, 0xf3, 0xd8, 0x8e, 0x60, 0x88, 0x6c, 0x9e, - 0x62, 0xcd, 0x8e, 0xe8, 0x8b, 0x8c, 0x25, 0x97, 0x6a, 0x0a, 0x70, 0x1b, 0x58, 0x48, 0xf0, 0x1c, - 0x70, 0x27, 0x84, 0x98, 0x49, 0x40, 0x08, 0x4e, 0xa0, 0xc8, 0xe2, 0x04, 0xdf, 0x70, 0x90, 0x3a, - 0x4a, 0x46, 0x4c, 0x02, 0x98, 0x41, 0xc5, 0x55, 0x37, 0x27, 0x7c, 0xc5, 0x45, 0x17, 0x27, 0xee, - 0x84, 0x10, 0x33, 0x0d, 0x0a, 0xc1, 0xb8, 0xc8, 0x52, 0x8e, 0xba, 0x81, 0xd4, 0x10, 0x12, 0xa2, - 0x1b, 0xb8, 0x04, 0x32, 0x79, 0x08, 0xe5, 0x0c, 0xbc, 0x26, 0x85, 0x24, 0x68, 0xb2, 0x21, 0xcc, - 0x45, 0x38, 0x59, 0x77, 0x56, 0xac, 0xd0, 0x45, 0x38, 0x55, 0x2d, 0x56, 0xac, 0x88, 0x8b, 0x70, - 0x0e, 0x80, 0x8a, 0x78, 0x1c, 0x57, 0xdc, 0x5f, 0x44, 0x21, 0x09, 0x16, 0xb1, 0x21, 0xcc, 0x1c, - 0x2d, 0x8b, 0xb8, 0xe0, 0x68, 0x8e, 0x56, 0x05, 0xb0, 0xce, 0x43, 0x6f, 0x92, 0x72, 0x33, 0x92, - 0xc8, 0x56, 0x01, 0xbe, 0x9b, 0x42, 0x36, 0xad, 0xd0, 0x48, 0xa2, 0x9e, 0x7b, 0x23, 0x25, 0x46, - 0x92, 0x36, 0x85, 0x42, 0x49, 0xed, 0x1b, 0xfb, 0x6a, 0x87, 0xb6, 0x8c, 0xef, 0x84, 0x10, 0x33, - 0x3e, 0x35, 0x85, 0xde, 0x8e, 0xcb, 0x32, 0xad, 0x27, 0xff, 0x07, 0xfe, 0x02, 0x35, 0x72, 0x62, - 0x7c, 0xf2, 0x71, 0xa8, 0x7b, 0x35, 0x03, 0xb7, 0xaf, 0x60, 0x78, 0xe8, 0xbe, 0x1b, 0x64, 0x4c, - 0xc6, 0x29, 0x24, 0xd6, 0x81, 0x9e, 0xef, 0x69, 0x7a, 0xce, 0xf3, 0x1e, 0x74, 0x61, 0xd6, 0x45, - 0x75, 0xed, 0xe2, 0x90, 0x2d, 0x61, 0xc2, 0x5e, 0xbe, 0x4d, 0x2b, 0x9e, 0xe6, 0x33, 0x35, 0x73, - 0x3f, 0x27, 0x2c, 0xf9, 0x60, 0xe2, 0xa2, 0x7a, 0xa7, 0x92, 0x49, 0x20, 0x50, 0x59, 0x8e, 0xe0, - 0xca, 0x9b, 0x40, 0x60, 0x8b, 0x9a, 0x23, 0x12, 0x88, 0x10, 0x6f, 0xf6, 0x51, 0xb4, 0x73, 0xf5, - 0x36, 0xdf, 0x84, 0x35, 0xb9, 0x1c, 0x65, 0x0d, 0x83, 0xc4, 0x52, 0x36, 0xa8, 0x60, 0xd6, 0x97, - 0xda, 0xbf, 0xe9, 0x62, 0x8f, 0x08, 0x3b, 0xed, 0x6e, 0xf6, 0xb8, 0x07, 0xe9, 0x71, 0x65, 0x4e, - 0xa5, 0x29, 0x57, 0xed, 0x43, 0xe9, 0xc7, 0x3d, 0x48, 0x6b, 0x4f, 0xc6, 0xae, 0xd6, 0x8b, 0x38, - 0xb9, 0x9c, 0x95, 0x6c, 0x91, 0x4f, 0xb7, 0x59, 0xc6, 0x4a, 0xb4, 0x27, 0xe3, 0x94, 0x1a, 0xa1, - 0xc4, 0x9e, 0x4c, 0x87, 0x8a, 0xc9, 0xe0, 0xec, 0x52, 0x6c, 0x65, 0xe9, 0x0c, 0xaf, 0xa8, 0x1d, - 0x43, 0x02, 0x20, 0x32, 0x38, 0x2f, 0xe8, 0x09, 0x22, 0xb9, 0xe2, 0xe6, 0x69, 0x12, 0x67, 0xd2, - 0xdf, 0x06, 0x6d, 0xc6, 0x01, 0x3b, 0x83, 0xc8, 0xa3, 0xe0, 0xa9, 0xe7, 0x64, 0x51, 0xe6, 0xfb, - 0x39, 0x67, 0x64, 0x3d, 0x1b, 0xa0, 0xb3, 0x9e, 0x16, 0x88, 0x86, 0xd5, 0x09, 0xbc, 0xad, 0x4b, - 0x53, 0xff, 0xe3, 0x1b, 0x56, 0xeb, 0xdf, 0x47, 0x4a, 0x1e, 0x1a, 0x56, 0x11, 0x87, 0x2a, 0xa3, - 0x9c, 0xc8, 0x80, 0x09, 0x68, 0xbb, 0x61, 0xf2, 0xa8, 0x1b, 0xf4, 0xfb, 0x19, 0xf3, 0x55, 0x06, - 0x21, 0x3f, 0x02, 0xe8, 0xe3, 0xa7, 0x01, 0xcd, 0x76, 0x8b, 0x53, 0x9f, 0x0b, 0x48, 0x2e, 0x5b, - 0x97, 0x6c, 0xdc, 0x82, 0x4a, 0x84, 0xd8, 0x6e, 0x21, 0x50, 0x7f, 0x13, 0xed, 0x27, 0x2c, 0x0f, - 0x35, 0x51, 0x2d, 0xef, 0xd3, 0x44, 0x8a, 0x33, 0x8b, 0x5f, 0x2d, 0x55, 0x91, 0x29, 0x9b, 0x69, - 0x8d, 0xb0, 0x60, 0x43, 0xc4, 0xe2, 0x97, 0x84, 0x4d, 0x4e, 0x8e, 0x7d, 0x1e, 0xb6, 0x6f, 0xd5, - 0xb6, 0xac, 0x1c, 0xd2, 0xb7, 0x6a, 0x29, 0x96, 0xae, 0xa4, 0x8c, 0x91, 0x0e, 0x2b, 0x6e, 0x9c, - 0x3c, 0xed, 0x07, 0x9b, 0x25, 0x8f, 0xe3, 0x73, 0x3b, 0x83, 0xb8, 0x94, 0x5e, 0xd7, 0x03, 0x86, - 0x0c, 0x46, 0x2c, 0x79, 0x02, 0x38, 0x1a, 0xc2, 0x1c, 0xcf, 0xdb, 0x2c, 0xe7, 0x90, 0x73, 0xdf, - 0x10, 0xe6, 0x1a, 0x53, 0x60, 0x68, 0x08, 0xa3, 0x14, 0x50, 0xdc, 0x8a, 0xfd, 0x20, 0xe0, 0x47, - 0xf1, 0xdc, 0x9b, 0xb1, 0xc9, 0xbd, 0x1e, 0x29, 0x0f, 0xc5, 0x2d, 0xe2, 0xac, 0x03, 0x37, 0xdb, - 0xcb, 0x24, 0x2e, 0x67, 0x7a, 0x77, 0x63, 0x3a, 0xdc, 0xa4, 0xed, 0xb8, 0x24, 0x71, 0xe0, 0x16, - 0xd6, 0x40, 0xc3, 0xce, 0xfe, 0x3c, 0x9e, 0xe9, 0x9a, 0x7a, 0x6a, 0x20, 0xe4, 0xad, 0xaa, 0x3e, - 0xea, 0x06, 0x91, 0x9f, 0xd7, 0xe9, 0x14, 0x58, 0xc0, 0x8f, 0x90, 0xf7, 0xf1, 0x83, 0x41, 0x94, - 0xbd, 0xd5, 0xf5, 0x96, 0x2b, 0xba, 0xad, 0x7c, 0xaa, 0xd6, 0xb1, 0x23, 0xe2, 0xf1, 0x20, 0x2e, - 0x94, 0xbd, 0x11, 0x3c, 0xea, 0xa3, 0xcd, 0x06, 0x6d, 0xa8, 0x8f, 0xea, 0xfd, 0xd7, 0x3e, 0x7d, - 0xd4, 0x07, 0x2b, 0x9f, 0x3f, 0x55, 0x7d, 0x74, 0x27, 0xe6, 0x71, 0x9d, 0xb7, 0xbf, 0x4e, 0xe1, - 0x4a, 0x2d, 0x84, 0x3d, 0xf5, 0x6d, 0xa8, 0x91, 0x78, 0x9d, 0x0a, 0xad, 0x8a, 0x37, 0x7a, 0xf3, - 0x01, 0xdf, 0x6a, 0x85, 0xd0, 0xe9, 0x1b, 0x2d, 0x15, 0x36, 0x7a, 0xf3, 0x01, 0xdf, 0xea, 0x3d, - 0xcd, 0x4e, 0xdf, 0xe8, 0x65, 0xcd, 0x8d, 0xde, 0xbc, 0xf2, 0xfd, 0x37, 0x4d, 0xc7, 0xb5, 0x9d, - 0xd7, 0x79, 0x58, 0xc2, 0xd3, 0x25, 0xf8, 0xd2, 0x49, 0xd7, 0x9e, 0x46, 0x43, 0xe9, 0x24, 0xad, - 0x62, 0x7d, 0xdc, 0xc3, 0x57, 0x8a, 0x63, 0x56, 0xa5, 0xe2, 0xc0, 0xfc, 0x79, 0x0f, 0xa3, 0x0d, - 0x1c, 0x5a, 0x34, 0x85, 0x94, 0xcc, 0x71, 0xa3, 0x83, 0x9a, 0x3b, 0xb5, 0x4f, 0x03, 0xf6, 0xda, - 0x57, 0x6b, 0xd7, 0x7b, 0xd2, 0xe6, 0xe0, 0xcf, 0x61, 0xec, 0x13, 0xc7, 0x50, 0xab, 0x7a, 0x0f, - 0x1d, 0x37, 0xfb, 0x2b, 0x28, 0xf7, 0x7f, 0xd7, 0xac, 0x2b, 0xb0, 0x7f, 0xd5, 0x09, 0x9e, 0xf5, - 0xb1, 0x88, 0x3a, 0xc2, 0xf3, 0x6b, 0xe9, 0xa8, 0x82, 0xfc, 0xd7, 0x20, 0xba, 0xe3, 0x2d, 0x88, - 0x7b, 0xf6, 0xfc, 0xfb, 0x7d, 0x6c, 0xfb, 0xcf, 0xa0, 0xbf, 0xf8, 0x36, 0xaa, 0xaa, 0x74, 0xff, - 0xd4, 0x2c, 0xef, 0x1b, 0x0d, 0xf1, 0xde, 0xc3, 0xab, 0x72, 0x0a, 0xa5, 0xea, 0xb1, 0xa1, 0xa0, - 0x33, 0x30, 0xee, 0xb7, 0x9f, 0x5e, 0x53, 0xcb, 0xfa, 0x10, 0x8d, 0x03, 0xab, 0x77, 0xce, 0xac, - 0xf2, 0x84, 0x2c, 0x5b, 0x34, 0x2e, 0xd0, 0x67, 0xd7, 0x55, 0xa3, 0x7a, 0xb2, 0x05, 0x8b, 0xf7, - 0xda, 0x9f, 0xf7, 0x34, 0xec, 0xbc, 0xe9, 0xfe, 0xc9, 0xf5, 0x94, 0x54, 0x59, 0xfe, 0x67, 0x10, - 0xdd, 0x77, 0x58, 0x73, 0xda, 0x81, 0xf6, 0x64, 0x7e, 0x14, 0xb0, 0x4f, 0x29, 0xe9, 0xc2, 0xfd, - 0xc1, 0xb7, 0x53, 0x36, 0x5f, 0x6d, 0x71, 0x54, 0x76, 0xd3, 0x8c, 0x43, 0xd9, 0xfe, 0x6a, 0x8b, - 0x6b, 0x57, 0x52, 0x23, 0xfa, 0xab, 0x2d, 0x01, 0xdc, 0xfa, 0x6a, 0x8b, 0xc7, 0xb3, 0xf7, 0xab, - 0x2d, 0x5e, 0x6b, 0xc1, 0xaf, 0xb6, 0x84, 0x35, 0xa8, 0xc9, 0xa7, 0x29, 0x82, 0xdc, 0x55, 0xef, - 0x65, 0xd1, 0xdd, 0x64, 0x7f, 0x76, 0x1d, 0x15, 0x62, 0xfa, 0x95, 0x9c, 0xb8, 0x11, 0xd7, 0xe3, - 0x99, 0x3a, 0xb7, 0xe2, 0x36, 0x7a, 0xf3, 0xca, 0xf7, 0x4f, 0xd4, 0xda, 0x4b, 0x4f, 0x36, 0xac, - 0x14, 0x5f, 0xec, 0x59, 0x0b, 0x4d, 0x1e, 0xb5, 0x05, 0xbb, 0xe5, 0x9f, 0xf6, 0x83, 0x89, 0xea, - 0xd6, 0x84, 0x6a, 0xf4, 0x51, 0x97, 0x21, 0xd4, 0xe4, 0x1b, 0xbd, 0x79, 0x62, 0x92, 0x93, 0xbe, - 0x65, 0x6b, 0xf7, 0x30, 0xe6, 0xb6, 0xf5, 0x66, 0x7f, 0x05, 0xe5, 0x7e, 0xa9, 0x92, 0x5a, 0xdb, - 0xbd, 0x68, 0xe7, 0xf5, 0x2e, 0x53, 0x63, 0xa7, 0x99, 0x47, 0x7d, 0xf1, 0x50, 0x7a, 0x63, 0x4f, - 0xf0, 0x5d, 0xe9, 0x8d, 0x77, 0x92, 0xff, 0xe4, 0x7a, 0x4a, 0xaa, 0x2c, 0xff, 0x3a, 0x88, 0x6e, - 0x92, 0x65, 0x51, 0x71, 0xf0, 0x59, 0x5f, 0xcb, 0x28, 0x1e, 0x3e, 0xbf, 0xb6, 0x9e, 0x2a, 0xd4, - 0x7f, 0x0c, 0xa2, 0x5b, 0x81, 0x42, 0xc9, 0x00, 0xb9, 0x86, 0x75, 0x37, 0x50, 0x7e, 0x78, 0x7d, - 0x45, 0x6a, 0xba, 0xb7, 0xf1, 0x71, 0xfb, 0x73, 0x26, 0x01, 0xdb, 0x63, 0xfa, 0x73, 0x26, 0xdd, - 0x5a, 0x78, 0x0b, 0xaa, 0x4e, 0x4a, 0xd4, 0xca, 0xc8, 0xb7, 0x05, 0x25, 0x72, 0x16, 0xb4, 0x22, - 0x7a, 0xd8, 0xc9, 0xf9, 0x9c, 0xbc, 0x7c, 0x5b, 0xc4, 0xf9, 0x94, 0x76, 0x22, 0xe5, 0xdd, 0x4e, - 0x34, 0x87, 0xb7, 0xee, 0x6a, 0xe9, 0x09, 0x6b, 0x96, 0x79, 0x8f, 0x29, 0x7d, 0x8d, 0x04, 0xb7, - 0xee, 0x5a, 0x28, 0xe1, 0x4d, 0xe5, 0xb4, 0x21, 0x6f, 0x28, 0x95, 0x7d, 0xd2, 0x07, 0x45, 0x0b, - 0x08, 0xed, 0x4d, 0x9f, 0x08, 0x3c, 0x0d, 0x59, 0x69, 0x9d, 0x0a, 0xac, 0xf7, 0xa4, 0x09, 0xb7, - 0x63, 0xe0, 0x5f, 0x42, 0x3c, 0x85, 0x32, 0xe8, 0x56, 0x53, 0xbd, 0xdc, 0xda, 0xb4, 0xcf, 0xed, - 0x36, 0xcb, 0x16, 0xf3, 0x5c, 0x35, 0x26, 0xe9, 0xd6, 0xa6, 0xba, 0xdd, 0x22, 0x1a, 0x6f, 0x5a, - 0x1a, 0xb7, 0x22, 0xbd, 0x7c, 0x12, 0x36, 0xe3, 0x64, 0x95, 0x6b, 0xbd, 0x58, 0xba, 0x9e, 0x2a, - 0x8c, 0x3a, 0xea, 0x89, 0x22, 0x69, 0xbd, 0x27, 0x8d, 0x77, 0x0f, 0x2d, 0xb7, 0x3a, 0x9e, 0x36, - 0x3a, 0x6c, 0xb5, 0x42, 0x6a, 0xb3, 0xbf, 0x02, 0xde, 0xab, 0x55, 0x51, 0x55, 0xaf, 0x8b, 0x76, - 0xd3, 0x2c, 0x1b, 0xae, 0x05, 0xc2, 0xa4, 0x81, 0x82, 0x7b, 0xb5, 0x1e, 0x98, 0x88, 0xe4, 0x66, - 0x6f, 0x33, 0x1f, 0x76, 0xd9, 0x11, 0x54, 0xaf, 0x48, 0xb6, 0x69, 0xb4, 0xdf, 0x66, 0x3d, 0x6a, - 0x5d, 0xdb, 0x51, 0xf8, 0xc1, 0xb5, 0x2a, 0xbc, 0xd1, 0x9b, 0x47, 0x97, 0x01, 0x04, 0x25, 0x66, - 0x96, 0x7b, 0x94, 0x09, 0x67, 0x26, 0xb9, 0xdf, 0x41, 0xa1, 0x3d, 0x4b, 0xd9, 0x8d, 0xde, 0xa4, - 0xd3, 0x19, 0x70, 0xef, 0x39, 0x96, 0x0d, 0x04, 0xcf, 0xb1, 0x10, 0x88, 0x9a, 0x4e, 0xfe, 0xae, - 0x37, 0x6b, 0xf7, 0xa7, 0xbe, 0xa6, 0x53, 0xca, 0x16, 0x15, 0x6a, 0x3a, 0x2f, 0x8d, 0x46, 0x03, - 0xed, 0x56, 0xbd, 0xba, 0xfe, 0x24, 0x64, 0x06, 0xbd, 0xbf, 0xbe, 0xd6, 0x8b, 0x45, 0x33, 0x8a, - 0x71, 0x98, 0xce, 0x53, 0xee, 0x9b, 0x51, 0x2c, 0x1b, 0x35, 0x12, 0x9a, 0x51, 0xda, 0x28, 0x55, - 0xbd, 0x3a, 0x47, 0xd8, 0x9f, 0x86, 0xab, 0x27, 0x99, 0x7e, 0xd5, 0xd3, 0x6c, 0xeb, 0xd8, 0x35, - 0xd7, 0x21, 0xc3, 0x2f, 0xd4, 0x62, 0xd9, 0x13, 0xdb, 0xe2, 0xe5, 0x4a, 0x0c, 0x86, 0x46, 0x1d, - 0x4a, 0x01, 0x1f, 0x27, 0xd4, 0x5c, 0x73, 0x32, 0x5c, 0x14, 0x10, 0x97, 0x71, 0x9e, 0x78, 0x17, - 0xa7, 0xc2, 0x60, 0x8b, 0x0c, 0x2d, 0x4e, 0x49, 0x0d, 0x74, 0xa8, 0xef, 0xbe, 0x16, 0xe9, 0xe9, - 0x0a, 0xfa, 0xfd, 0x43, 0xf7, 0xad, 0xc8, 0xc7, 0x3d, 0x48, 0x7c, 0xa8, 0xdf, 0x00, 0x7a, 0x5b, - 0x5e, 0x3a, 0xfd, 0x38, 0x60, 0xca, 0x45, 0x43, 0x0b, 0x61, 0x5a, 0x05, 0x05, 0xb5, 0x4e, 0x70, - 0x81, 0xff, 0x18, 0x56, 0xbe, 0xa0, 0x36, 0xf9, 0xa9, 0x40, 0x42, 0x41, 0xdd, 0x46, 0x51, 0x9e, - 0x69, 0xaf, 0x83, 0x1e, 0x04, 0xf4, 0xed, 0xa5, 0xcf, 0xc3, 0x4e, 0x0e, 0xf5, 0x9c, 0x9d, 0x74, - 0xe9, 0x9c, 0x62, 0x78, 0x0a, 0xba, 0x93, 0x2e, 0xfd, 0x87, 0x18, 0x6b, 0xbd, 0x58, 0x7c, 0x61, - 0x20, 0xe6, 0xf0, 0xb6, 0x39, 0xc9, 0xf7, 0x14, 0x57, 0xc8, 0x5b, 0x47, 0xf9, 0x8f, 0xba, 0x41, - 0x73, 0x3d, 0xf7, 0xb8, 0x64, 0x09, 0x54, 0x95, 0xfa, 0xc6, 0x9b, 0x7b, 0xff, 0x49, 0xc9, 0x46, - 0xe8, 0x0b, 0x6f, 0xf7, 0xc2, 0x90, 0xb2, 0xfd, 0x65, 0xf4, 0xee, 0x01, 0x9b, 0x8d, 0x21, 0x9f, - 0x0e, 0x7f, 0xe0, 0x5e, 0x88, 0x65, 0xb3, 0x51, 0xfd, 0xb3, 0xb6, 0x77, 0x83, 0x12, 0x9b, 0x2b, - 0x7d, 0x3b, 0x70, 0xb6, 0x98, 0x8d, 0x79, 0xcc, 0xd1, 0x95, 0x3e, 0xf1, 0xfb, 0xa8, 0x16, 0x10, - 0x57, 0xfa, 0x1c, 0x00, 0xd9, 0x9b, 0x94, 0x00, 0x5e, 0x7b, 0xb5, 0x20, 0x68, 0x4f, 0x01, 0x66, - 0xd6, 0xd5, 0xf6, 0xea, 0xc4, 0x16, 0x5f, 0xc1, 0x33, 0x3a, 0x42, 0x4a, 0xcc, 0xba, 0x6d, 0xca, - 0x04, 0x83, 0xac, 0xbe, 0xf8, 0xa2, 0xc5, 0x62, 0x3e, 0x8f, 0xcb, 0x15, 0x0a, 0x06, 0x55, 0x4b, - 0x0b, 0x20, 0x82, 0xc1, 0x0b, 0x9a, 0x28, 0x6f, 0x1e, 0x73, 0x72, 0xb9, 0xc7, 0x4a, 0xb6, 0xe0, - 0x69, 0x0e, 0xf8, 0xab, 0x06, 0xfa, 0x81, 0xda, 0x0c, 0x11, 0xe5, 0x14, 0x6b, 0xb2, 0x42, 0x41, - 0xc8, 0xdb, 0x81, 0xe2, 0x4b, 0xa9, 0x15, 0x67, 0x25, 0x3e, 0x1d, 0x94, 0x56, 0x30, 0x44, 0x64, - 0x85, 0x24, 0x8c, 0xda, 0xfe, 0x38, 0xcd, 0x67, 0xde, 0xb6, 0x3f, 0xb6, 0xbf, 0x33, 0x78, 0x8b, - 0x06, 0xcc, 0xf8, 0x2e, 0x1f, 0x9a, 0xfc, 0x72, 0x90, 0x7a, 0x4b, 0xd2, 0xfb, 0xd0, 0x6d, 0x82, - 0x18, 0xdf, 0xfd, 0x24, 0x72, 0xf5, 0xaa, 0x80, 0x1c, 0xa6, 0xcd, 0x1d, 0x38, 0x9f, 0x2b, 0x87, - 0x08, 0xba, 0xc2, 0xa4, 0x19, 0x55, 0x85, 0xfc, 0x64, 0x91, 0x1f, 0x97, 0xec, 0x3c, 0xcd, 0xa0, - 0x44, 0xa3, 0xaa, 0x54, 0xb7, 0xe4, 0xc4, 0xa8, 0xea, 0xe3, 0xcc, 0x65, 0x0a, 0x21, 0x75, 0x3e, - 0xf7, 0x3b, 0x29, 0xe3, 0x04, 0x5f, 0xa6, 0x90, 0x36, 0xda, 0x18, 0xb1, 0x93, 0x16, 0xc0, 0x4d, - 0xa4, 0x1f, 0x02, 0x2f, 0xd3, 0xa4, 0x1a, 0x03, 0x3f, 0x8e, 0xcb, 0x78, 0x0e, 0x1c, 0x4a, 0x1c, - 0xe9, 0x0a, 0x19, 0x39, 0x0c, 0x11, 0xe9, 0x14, 0xab, 0x1c, 0xfe, 0x61, 0xf4, 0x7e, 0x3d, 0xd0, - 0x43, 0xae, 0xbe, 0x4c, 0xff, 0x52, 0xfc, 0x49, 0x8b, 0xe1, 0x07, 0xda, 0xc6, 0x98, 0x97, 0x10, - 0xcf, 0x1b, 0xdb, 0xef, 0xe9, 0xdf, 0x05, 0xb8, 0x39, 0xa8, 0x1b, 0xe4, 0x88, 0xf1, 0xf4, 0xbc, - 0x5e, 0x57, 0xa9, 0x53, 0x2c, 0xd4, 0x20, 0xb6, 0x78, 0x14, 0xf8, 0x64, 0x80, 0x8f, 0x33, 0x03, - 0x8d, 0x2d, 0x3d, 0x81, 0x22, 0xc3, 0x03, 0x8d, 0xa3, 0x2d, 0x00, 0x62, 0xa0, 0xf1, 0x82, 0x26, - 0xba, 0x6c, 0xf1, 0x04, 0xc2, 0x95, 0x99, 0x40, 0xbf, 0xca, 0x4c, 0x9c, 0x77, 0x04, 0xb2, 0xe8, - 0xfd, 0x43, 0x98, 0x9f, 0x41, 0x59, 0x5d, 0xa4, 0xc5, 0x5e, 0x3d, 0xc3, 0xc6, 0x7c, 0x81, 0xdf, - 0xa2, 0x33, 0xc4, 0x48, 0x23, 0x44, 0x1a, 0x42, 0xa0, 0x66, 0x28, 0x33, 0xc0, 0x7e, 0x75, 0x14, - 0xcf, 0x41, 0x7c, 0x00, 0x61, 0xb8, 0x46, 0x19, 0xb1, 0x20, 0x62, 0x28, 0x23, 0x61, 0xeb, 0x75, - 0x23, 0xc3, 0x9c, 0xc0, 0xac, 0x8e, 0xb0, 0xf2, 0x38, 0x5e, 0xcd, 0x21, 0xe7, 0xca, 0x24, 0xda, - 0x84, 0xb5, 0x4c, 0xfa, 0x79, 0x62, 0x13, 0xb6, 0x8f, 0x9e, 0x95, 0x74, 0x3b, 0x0f, 0xfe, 0x98, - 0x95, 0x5c, 0xfe, 0xdd, 0x89, 0xd3, 0x32, 0x43, 0x49, 0xb7, 0xfb, 0x50, 0x1d, 0x92, 0x48, 0xba, - 0xc3, 0x1a, 0xd6, 0x07, 0x9b, 0x9d, 0x32, 0xbc, 0x86, 0x52, 0xc7, 0xc9, 0xcb, 0x79, 0x9c, 0x66, - 0x2a, 0x1a, 0xbe, 0x08, 0xd8, 0x26, 0x74, 0x88, 0x0f, 0x36, 0xf7, 0xd5, 0xb5, 0x3e, 0x71, 0x1d, - 0x2e, 0x21, 0xda, 0x13, 0xee, 0xb0, 0x4f, 0xec, 0x09, 0x77, 0x6b, 0x99, 0xa5, 0x9a, 0x61, 0x05, - 0xb7, 0x12, 0xc4, 0x36, 0x9b, 0xe2, 0x0d, 0x22, 0xcb, 0x26, 0x02, 0x89, 0xa5, 0x5a, 0x50, 0xc1, - 0xcc, 0x6d, 0x06, 0xdb, 0x4d, 0xf3, 0x38, 0x4b, 0x7f, 0x8a, 0xef, 0x3e, 0x5b, 0x76, 0x1a, 0x82, - 0x98, 0xdb, 0xfc, 0xa4, 0xcf, 0xd5, 0x1e, 0xf0, 0x49, 0x5a, 0x0f, 0xfd, 0x8f, 0x02, 0xcf, 0x4d, - 0x10, 0xdd, 0xae, 0x2c, 0x52, 0xb9, 0xfa, 0xd9, 0x20, 0xba, 0x89, 0x1f, 0xeb, 0x56, 0x51, 0x8c, - 0xeb, 0x94, 0xe4, 0x04, 0x12, 0x48, 0x0b, 0x3e, 0xfc, 0x34, 0xfc, 0xac, 0x10, 0x4e, 0x9c, 0xac, - 0xf7, 0x50, 0xb3, 0xce, 0x6b, 0xeb, 0xb1, 0x64, 0x2c, 0xff, 0x20, 0xd3, 0x69, 0x05, 0xa5, 0x9a, - 0x29, 0xf7, 0x80, 0xa3, 0xde, 0x69, 0x71, 0x23, 0x0b, 0xac, 0x2b, 0x4a, 0xf4, 0xce, 0xb0, 0x86, - 0xd9, 0xdd, 0xb1, 0xb8, 0x13, 0xa8, 0x58, 0xb6, 0x04, 0x71, 0xfd, 0xed, 0x29, 0x69, 0xcc, 0xa2, - 0x88, 0xdd, 0x1d, 0x9a, 0x36, 0xe9, 0x46, 0xdb, 0xed, 0x56, 0xbe, 0xda, 0xc7, 0x67, 0xe4, 0x1e, - 0x4b, 0x02, 0x23, 0xd2, 0x8d, 0x00, 0x6e, 0xed, 0x7e, 0x96, 0x2c, 0x9e, 0x26, 0x71, 0xc5, 0x8f, - 0xe3, 0x55, 0xc6, 0xe2, 0xa9, 0x98, 0xd7, 0xf1, 0xee, 0x67, 0xc3, 0x8c, 0x6c, 0x88, 0xda, 0xfd, - 0xa4, 0x60, 0xb3, 0xb2, 0x53, 0x7f, 0x67, 0x4a, 0x5d, 0x2d, 0xbc, 0x8b, 0x72, 0x24, 0x51, 0x5e, - 0x7c, 0xad, 0xf0, 0x5e, 0x18, 0x32, 0xaf, 0x44, 0x49, 0x91, 0x48, 0x43, 0x6e, 0xf9, 0x74, 0x9c, - 0x04, 0xe4, 0x76, 0x80, 0x30, 0x9f, 0x49, 0x90, 0xbf, 0x37, 0x7f, 0x2a, 0x81, 0xab, 0x4f, 0xd7, - 0x3e, 0xf5, 0xe9, 0xda, 0xd0, 0xc8, 0xfe, 0x0e, 0xd9, 0x7a, 0x4f, 0x5a, 0x7a, 0x7d, 0x71, 0xfb, - 0x7f, 0xbf, 0xbe, 0x31, 0xf8, 0xf9, 0xd7, 0x37, 0x06, 0xff, 0xff, 0xf5, 0x8d, 0xc1, 0xcf, 0xbe, - 0xb9, 0xf1, 0xce, 0xcf, 0xbf, 0xb9, 0xf1, 0xce, 0x2f, 0xbe, 0xb9, 0xf1, 0xce, 0x57, 0xef, 0xaa, - 0x3f, 0x58, 0x76, 0xf6, 0x2b, 0xe2, 0xcf, 0x8e, 0x3d, 0xff, 0x65, 0x00, 0x00, 0x00, 0xff, 0xff, - 0xf5, 0x3b, 0x43, 0x25, 0xd4, 0x6c, 0x00, 0x00, + 0x52, 0xc0, 0xb7, 0x5f, 0x58, 0xa8, 0xe3, 0x16, 0xa8, 0x85, 0x65, 0x6f, 0xb9, 0x9b, 0xef, 0x6f, + 0x8f, 0xdb, 0xb3, 0x33, 0xfb, 0x71, 0xec, 0x21, 0x21, 0x8f, 0x3d, 0xf6, 0x9a, 0xb3, 0x3d, 0xc6, + 0x6d, 0xcf, 0x48, 0x2b, 0x21, 0x51, 0x53, 0x1d, 0x6e, 0x17, 0xae, 0xae, 0xac, 0xab, 0xca, 0x6e, + 0x4f, 0x1f, 0x02, 0x81, 0x40, 0x20, 0x10, 0x88, 0x13, 0x5f, 0x2f, 0x3c, 0x20, 0xf1, 0xd7, 0xf0, + 0x78, 0x12, 0x2f, 0xf0, 0x86, 0x76, 0xff, 0x91, 0x53, 0x65, 0x66, 0xe5, 0x47, 0x54, 0x46, 0x56, + 0x79, 0x9f, 0x66, 0xd4, 0xf1, 0x8b, 0x88, 0xcc, 0xca, 0xcc, 0xc8, 0xc8, 0x8f, 0x2a, 0x47, 0xd7, + 0xcb, 0x37, 0x1b, 0x65, 0xc5, 0x38, 0xab, 0x37, 0x6a, 0xa8, 0x96, 0x59, 0x0a, 0xed, 0xbf, 0x63, + 0xf1, 0x73, 0xfc, 0x6e, 0x52, 0xac, 0xf8, 0xaa, 0x84, 0x8f, 0x3e, 0x34, 0x64, 0xca, 0xe6, 0xf3, + 0xa4, 0x98, 0xd6, 0x12, 0xf9, 0xe8, 0x03, 0x23, 0x81, 0x25, 0x14, 0x5c, 0xfd, 0xfe, 0xf4, 0x7f, + 0xfe, 0x6f, 0x14, 0xbd, 0xb7, 0x95, 0x67, 0x50, 0xf0, 0x2d, 0xa5, 0x11, 0x7f, 0x15, 0x7d, 0x77, + 0xb3, 0x2c, 0x77, 0x81, 0xbf, 0x82, 0xaa, 0xce, 0x58, 0x11, 0xdf, 0x1e, 0x2b, 0x07, 0xe3, 0xe3, + 0x32, 0x1d, 0x6f, 0x96, 0xe5, 0xd8, 0x08, 0xc7, 0xc7, 0xf0, 0x93, 0x05, 0xd4, 0xfc, 0xa3, 0x3b, + 0x61, 0xa8, 0x2e, 0x59, 0x51, 0x43, 0x7c, 0x16, 0xfd, 0xc6, 0x66, 0x59, 0x4e, 0x80, 0x6f, 0x43, + 0x53, 0x81, 0x09, 0x4f, 0x38, 0xc4, 0xf7, 0x3b, 0xaa, 0x2e, 0xa0, 0x7d, 0x3c, 0xe8, 0x07, 0x95, + 0x9f, 0x93, 0xe8, 0x3b, 0x8d, 0x9f, 0xf3, 0x05, 0x9f, 0xb2, 0xcb, 0x22, 0xbe, 0xd9, 0x55, 0x54, + 0x22, 0x6d, 0xfb, 0x56, 0x08, 0x51, 0x56, 0x5f, 0x47, 0xbf, 0xfa, 0x3a, 0xc9, 0x73, 0xe0, 0x5b, + 0x15, 0x34, 0x05, 0x77, 0x75, 0xa4, 0x68, 0x2c, 0x65, 0xda, 0xee, 0xed, 0x20, 0xa3, 0x0c, 0x7f, + 0x15, 0x7d, 0x57, 0x4a, 0x8e, 0x21, 0x65, 0x4b, 0xa8, 0x62, 0xaf, 0x96, 0x12, 0x12, 0x8f, 0xbc, + 0x03, 0x61, 0xdb, 0x5b, 0xac, 0x58, 0x42, 0xc5, 0xfd, 0xb6, 0x95, 0x30, 0x6c, 0xdb, 0x40, 0xca, + 0xf6, 0xdf, 0x8d, 0xa2, 0xef, 0x6f, 0xa6, 0x29, 0x5b, 0x14, 0x7c, 0x9f, 0xa5, 0x49, 0xbe, 0x9f, + 0x15, 0x17, 0x87, 0x70, 0xb9, 0x75, 0xde, 0xf0, 0xc5, 0x0c, 0xe2, 0x67, 0xee, 0x53, 0x95, 0xe8, + 0x58, 0xb3, 0x63, 0x1b, 0xd6, 0xbe, 0x3f, 0xb9, 0x9a, 0x92, 0x2a, 0xcb, 0x3f, 0x8d, 0xa2, 0x6b, + 0xb8, 0x2c, 0x13, 0x96, 0x2f, 0xc1, 0x94, 0xe6, 0xd3, 0x1e, 0xc3, 0x2e, 0xae, 0xcb, 0xf3, 0xd9, + 0x55, 0xd5, 0x54, 0x89, 0xf2, 0xe8, 0x7d, 0xbb, 0xbb, 0x4c, 0xa0, 0x16, 0xc3, 0xe9, 0x21, 0xdd, + 0x23, 0x14, 0xa2, 0x3d, 0x3f, 0x1a, 0x82, 0x2a, 0x6f, 0x59, 0x14, 0x2b, 0x6f, 0x39, 0xab, 0xb5, + 0xb3, 0x07, 0x5e, 0x0b, 0x16, 0xa1, 0x7d, 0x3d, 0x1c, 0x40, 0x2a, 0x57, 0x7f, 0x1c, 0xfd, 0xda, + 0x6b, 0x56, 0x5d, 0xd4, 0x65, 0x92, 0x82, 0x1a, 0x0a, 0x77, 0x5d, 0xed, 0x56, 0x8a, 0x47, 0xc3, + 0xbd, 0x3e, 0xcc, 0xea, 0xb4, 0xad, 0xf0, 0x65, 0x09, 0x38, 0x06, 0x19, 0xc5, 0x46, 0x48, 0x75, + 0x5a, 0x0c, 0x29, 0xdb, 0x17, 0x51, 0x6c, 0x6c, 0xbf, 0xf9, 0x13, 0x48, 0xf9, 0xe6, 0x74, 0x8a, + 0x5b, 0xc5, 0xe8, 0x0a, 0x62, 0xbc, 0x39, 0x9d, 0x52, 0xad, 0xe2, 0x47, 0x95, 0xb3, 0xcb, 0xe8, + 0x03, 0xe4, 0x6c, 0x3f, 0xab, 0x85, 0xc3, 0xf5, 0xb0, 0x15, 0x85, 0x69, 0xa7, 0xe3, 0xa1, 0xb8, + 0x72, 0xfc, 0x17, 0xa3, 0xe8, 0x7b, 0x1e, 0xcf, 0xc7, 0x30, 0x67, 0x4b, 0x88, 0x9f, 0xf4, 0x5b, + 0x93, 0xa4, 0xf6, 0xff, 0xf1, 0x15, 0x34, 0x3c, 0xdd, 0x64, 0x02, 0x39, 0xa4, 0x9c, 0xec, 0x26, + 0x52, 0xdc, 0xdb, 0x4d, 0x34, 0x66, 0x8d, 0xb0, 0x56, 0xb8, 0x0b, 0x7c, 0x6b, 0x51, 0x55, 0x50, + 0x70, 0xb2, 0x2d, 0x0d, 0xd2, 0xdb, 0x96, 0x0e, 0xea, 0xa9, 0xcf, 0x2e, 0xf0, 0xcd, 0x3c, 0x27, + 0xeb, 0x23, 0xc5, 0xbd, 0xf5, 0xd1, 0x98, 0xf2, 0x90, 0x46, 0xbf, 0x6e, 0x3d, 0x31, 0xbe, 0x57, + 0x9c, 0xb1, 0x98, 0x7e, 0x16, 0x42, 0xae, 0x7d, 0xdc, 0xef, 0xe5, 0x3c, 0xd5, 0x78, 0xf1, 0xb6, + 0x64, 0x15, 0xdd, 0x2c, 0x52, 0xdc, 0x5b, 0x0d, 0x8d, 0x29, 0x0f, 0x7f, 0x14, 0xbd, 0xa7, 0xa2, + 0x64, 0x3b, 0x9f, 0xdd, 0xf1, 0x86, 0x50, 0x3c, 0xa1, 0xdd, 0xed, 0xa1, 0x4c, 0x70, 0x50, 0x32, + 0x15, 0x7c, 0x6e, 0x7b, 0xf5, 0x50, 0xe8, 0xb9, 0x13, 0x86, 0x3a, 0xb6, 0xb7, 0x21, 0x07, 0xd2, + 0xb6, 0x14, 0xf6, 0xd8, 0xd6, 0x90, 0xb2, 0x5d, 0x45, 0xbf, 0xa5, 0x1f, 0x4b, 0x33, 0x8f, 0x0a, + 0x79, 0x13, 0xa4, 0xd7, 0x88, 0x7a, 0xdb, 0x90, 0xf6, 0xf5, 0x78, 0x18, 0xdc, 0xa9, 0x8f, 0x1a, + 0x81, 0xfe, 0xfa, 0xa0, 0xf1, 0x77, 0x27, 0x0c, 0x29, 0xdb, 0x7f, 0x3f, 0x8a, 0x7e, 0xa0, 0x64, + 0x2f, 0x8a, 0xe4, 0x4d, 0x0e, 0x62, 0x4a, 0x3c, 0x04, 0x7e, 0xc9, 0xaa, 0x8b, 0xc9, 0xaa, 0x48, + 0x89, 0xe9, 0xdf, 0x0f, 0xf7, 0x4c, 0xff, 0xa4, 0x92, 0x95, 0xf1, 0xa9, 0x8a, 0x72, 0x56, 0xe2, + 0x8c, 0xaf, 0xad, 0x01, 0x67, 0x25, 0x95, 0xf1, 0xb9, 0x48, 0xc7, 0xea, 0x41, 0x13, 0x36, 0xfd, + 0x56, 0x0f, 0xec, 0x38, 0x79, 0x2b, 0x84, 0x98, 0xb0, 0xd5, 0x76, 0x60, 0x56, 0x9c, 0x65, 0xb3, + 0xd3, 0x72, 0xda, 0x74, 0xe3, 0x87, 0xfe, 0x1e, 0x6a, 0x21, 0x44, 0xd8, 0x22, 0x50, 0xe5, 0xed, + 0x1f, 0x4d, 0x62, 0xa4, 0x86, 0xd2, 0x4e, 0xc5, 0xe6, 0xfb, 0x30, 0x4b, 0xd2, 0x95, 0x1a, 0xff, + 0x9f, 0x84, 0x06, 0x1e, 0xa6, 0x75, 0x21, 0x3e, 0xbd, 0xa2, 0x96, 0x2a, 0xcf, 0x7f, 0x8e, 0xa2, + 0x3b, 0x6d, 0xf5, 0xcf, 0x93, 0x62, 0x06, 0xaa, 0x3d, 0x65, 0xe9, 0x37, 0x8b, 0xe9, 0x31, 0xd4, + 0x3c, 0xa9, 0x78, 0xfc, 0x85, 0xbf, 0x92, 0x21, 0x1d, 0x5d, 0xb6, 0x1f, 0x7d, 0x2b, 0x5d, 0xd3, + 0xea, 0x93, 0x26, 0xb0, 0xa9, 0x10, 0xe0, 0xb6, 0xba, 0x90, 0xe0, 0x00, 0x70, 0x2b, 0x84, 0x98, + 0x56, 0x17, 0x82, 0xbd, 0x62, 0x99, 0x71, 0xd8, 0x85, 0x02, 0xaa, 0x6e, 0xab, 0x4b, 0x55, 0x17, + 0x21, 0x5a, 0x9d, 0x40, 0x4d, 0xb0, 0x71, 0xbc, 0xe9, 0xc9, 0x71, 0x2d, 0x60, 0xa4, 0x33, 0x3d, + 0x3e, 0x1e, 0x06, 0x9b, 0xd5, 0x9d, 0xe5, 0xf3, 0x18, 0x96, 0xec, 0x02, 0xaf, 0xee, 0x6c, 0x13, + 0x12, 0x20, 0x56, 0x77, 0x5e, 0xd0, 0xcc, 0x60, 0x96, 0x9f, 0x57, 0x19, 0x5c, 0xa2, 0x19, 0xcc, + 0x56, 0x6e, 0xc4, 0xc4, 0x0c, 0xe6, 0xc1, 0x94, 0x87, 0xc3, 0xe8, 0x57, 0x84, 0xf0, 0x0f, 0x58, + 0x56, 0xc4, 0xd7, 0x3d, 0x4a, 0x8d, 0x40, 0x5b, 0xbd, 0x41, 0x03, 0xa8, 0xc4, 0xcd, 0xaf, 0x5b, + 0x49, 0x91, 0x42, 0xee, 0x2d, 0xb1, 0x11, 0x07, 0x4b, 0xec, 0x60, 0x26, 0x75, 0x10, 0xc2, 0x26, + 0x7e, 0x4d, 0xce, 0x93, 0x2a, 0x2b, 0x66, 0xb1, 0x4f, 0xd7, 0x92, 0x13, 0xa9, 0x83, 0x8f, 0x43, + 0x5d, 0x58, 0x29, 0x6e, 0x96, 0x65, 0xd5, 0x84, 0x45, 0x5f, 0x17, 0x76, 0x91, 0x60, 0x17, 0xee, + 0xa0, 0x7e, 0x6f, 0xdb, 0x90, 0xe6, 0x59, 0x11, 0xf4, 0xa6, 0x90, 0x21, 0xde, 0x0c, 0x8a, 0x3a, + 0xef, 0x3e, 0x24, 0x4b, 0x68, 0x6b, 0xe6, 0x7b, 0x32, 0x36, 0x10, 0xec, 0xbc, 0x08, 0x34, 0xeb, + 0x34, 0x21, 0x3e, 0x48, 0x2e, 0xa0, 0x79, 0xc0, 0xd0, 0xcc, 0x6b, 0xb1, 0x4f, 0xdf, 0x21, 0x88, + 0x75, 0x9a, 0x9f, 0x54, 0xae, 0x16, 0xd1, 0x07, 0x42, 0x7e, 0x94, 0x54, 0x3c, 0x4b, 0xb3, 0x32, + 0x29, 0xda, 0xfc, 0xdf, 0x37, 0xae, 0x3b, 0x94, 0x76, 0xb9, 0x3e, 0x90, 0x56, 0x6e, 0xff, 0x7d, + 0x14, 0xdd, 0xc4, 0x7e, 0x8f, 0xa0, 0x9a, 0x67, 0x62, 0x19, 0x59, 0xcb, 0x20, 0x1c, 0x7f, 0x1e, + 0x36, 0xda, 0x51, 0xd0, 0xa5, 0xf9, 0xe1, 0xd5, 0x15, 0x55, 0xc1, 0xfe, 0x30, 0x8a, 0xe4, 0x72, + 0x45, 0x2c, 0x29, 0xdd, 0x51, 0xab, 0xd6, 0x31, 0xce, 0x7a, 0xf2, 0x66, 0x80, 0x30, 0x53, 0x85, + 0xfc, 0x5d, 0xac, 0x94, 0x63, 0xaf, 0x86, 0x10, 0x11, 0x53, 0x05, 0x42, 0x70, 0x41, 0x27, 0xe7, + 0xec, 0xd2, 0x5f, 0xd0, 0x46, 0x12, 0x2e, 0xa8, 0x22, 0xcc, 0xde, 0x95, 0x2a, 0xa8, 0x6f, 0xef, + 0xaa, 0x2d, 0x46, 0x68, 0xef, 0x0a, 0x33, 0xca, 0x30, 0x8b, 0x7e, 0xd3, 0x36, 0xfc, 0x9c, 0xb1, + 0x8b, 0x79, 0x52, 0x5d, 0xc4, 0x8f, 0x68, 0xe5, 0x96, 0xd1, 0x8e, 0xd6, 0x06, 0xb1, 0x26, 0x2c, + 0xd8, 0x0e, 0x9b, 0x44, 0xe3, 0xb4, 0xca, 0x51, 0x58, 0x70, 0x6c, 0x28, 0x84, 0x08, 0x0b, 0x04, + 0x6a, 0x22, 0xb7, 0xed, 0x6d, 0x02, 0x78, 0xb5, 0xe4, 0xa8, 0x4f, 0x80, 0x5a, 0x2d, 0x79, 0x30, + 0xdc, 0x85, 0x76, 0xab, 0xa4, 0x3c, 0xf7, 0x77, 0x21, 0x21, 0x0a, 0x77, 0xa1, 0x16, 0xc1, 0xed, + 0x3d, 0x81, 0xa4, 0x4a, 0xcf, 0xfd, 0xed, 0x2d, 0x65, 0xe1, 0xf6, 0xd6, 0x0c, 0x6e, 0x6f, 0x29, + 0x78, 0x9d, 0xf1, 0xf3, 0x03, 0xe0, 0x89, 0xbf, 0xbd, 0x5d, 0x26, 0xdc, 0xde, 0x1d, 0xd6, 0x64, + 0x32, 0xb6, 0xc3, 0xc9, 0xe2, 0x4d, 0x9d, 0x56, 0xd9, 0x1b, 0x88, 0x03, 0x56, 0x34, 0x44, 0x64, + 0x32, 0x24, 0x6c, 0x82, 0xb4, 0xf2, 0xd9, 0xca, 0xf6, 0xa6, 0x35, 0x0a, 0xd2, 0xad, 0x0d, 0x8b, + 0x20, 0x82, 0xb4, 0x9f, 0xc4, 0xd5, 0xdb, 0xad, 0xd8, 0xa2, 0xac, 0x7b, 0xaa, 0x87, 0xa0, 0x70, + 0xf5, 0xba, 0xb0, 0xf2, 0xf9, 0x36, 0xfa, 0x6d, 0xfb, 0x91, 0x9e, 0x16, 0xb5, 0xf6, 0xba, 0x4e, + 0x3f, 0x27, 0x0b, 0x23, 0xb6, 0xa5, 0x02, 0xb8, 0x49, 0x53, 0x5a, 0xcf, 0x7c, 0x1b, 0x78, 0x92, + 0xe5, 0x75, 0x7c, 0xcf, 0x6f, 0xa3, 0x95, 0x13, 0x69, 0x8a, 0x8f, 0xc3, 0x63, 0x76, 0x7b, 0x51, + 0xe6, 0x59, 0xda, 0xdd, 0x9f, 0x54, 0xba, 0x5a, 0x1c, 0x1e, 0xb3, 0x36, 0x86, 0x63, 0xd0, 0x04, + 0xb8, 0xfc, 0xcf, 0xc9, 0xaa, 0x04, 0x7f, 0x0c, 0x72, 0x90, 0x70, 0x0c, 0xc2, 0x28, 0xae, 0xcf, + 0x04, 0xf8, 0x7e, 0xb2, 0x62, 0x0b, 0x22, 0x06, 0x69, 0x71, 0xb8, 0x3e, 0x36, 0x66, 0x32, 0x05, + 0xed, 0x61, 0xaf, 0xe0, 0x50, 0x15, 0x49, 0xbe, 0x93, 0x27, 0xb3, 0x3a, 0x26, 0xc6, 0x8d, 0x4b, + 0x11, 0x99, 0x02, 0x4d, 0x7b, 0x1e, 0xe3, 0x5e, 0xbd, 0x93, 0x2c, 0x59, 0x95, 0x71, 0xfa, 0x31, + 0x1a, 0xa4, 0xf7, 0x31, 0x3a, 0xa8, 0xd7, 0xdb, 0x66, 0x95, 0x9e, 0x67, 0x4b, 0x98, 0x06, 0xbc, + 0xb5, 0xc8, 0x00, 0x6f, 0x16, 0xea, 0x69, 0xb4, 0x09, 0x5b, 0x54, 0x29, 0x90, 0x8d, 0x26, 0xc5, + 0xbd, 0x8d, 0xa6, 0x31, 0xe5, 0xe1, 0xaf, 0x47, 0xd1, 0xef, 0x48, 0xa9, 0xbd, 0x69, 0xb8, 0x9d, + 0xd4, 0xe7, 0x6f, 0x58, 0x52, 0x4d, 0xe3, 0x8f, 0x7d, 0x76, 0xbc, 0xa8, 0x76, 0xfd, 0xf4, 0x2a, + 0x2a, 0xf8, 0xb1, 0xee, 0x67, 0xb5, 0x35, 0xe2, 0xbc, 0x8f, 0xd5, 0x41, 0xc2, 0x8f, 0x15, 0xa3, + 0x38, 0x80, 0x08, 0xb9, 0x5c, 0xa0, 0xdf, 0x23, 0xf5, 0xdd, 0x55, 0xfa, 0xfd, 0x5e, 0x0e, 0xc7, + 0xc7, 0x46, 0xe8, 0xf6, 0x96, 0x75, 0xca, 0x86, 0xbf, 0xc7, 0x8c, 0x87, 0xe2, 0xa4, 0x67, 0x3d, + 0x2a, 0xc2, 0x9e, 0x3b, 0x23, 0x63, 0x3c, 0x14, 0x27, 0x3c, 0x5b, 0x61, 0x2d, 0xe4, 0xd9, 0x13, + 0xda, 0xc6, 0x43, 0x71, 0x9c, 0x51, 0x28, 0xa6, 0x9d, 0x17, 0x1e, 0x05, 0xec, 0xe0, 0xb9, 0x61, + 0x6d, 0x10, 0xab, 0x1c, 0xfe, 0xed, 0x28, 0xfa, 0xbe, 0xf1, 0x78, 0xc0, 0xa6, 0xd9, 0xd9, 0x4a, + 0x42, 0xaf, 0x92, 0x7c, 0x01, 0x75, 0xfc, 0x94, 0xb2, 0xd6, 0x65, 0x75, 0x09, 0x9e, 0x5d, 0x49, + 0x07, 0x8f, 0x9d, 0xcd, 0xb2, 0xcc, 0x57, 0x27, 0x30, 0x2f, 0x73, 0x72, 0xec, 0x38, 0x48, 0x78, + 0xec, 0x60, 0x14, 0x67, 0x9a, 0x27, 0xac, 0xc9, 0x63, 0xbd, 0x99, 0xa6, 0x10, 0x85, 0x33, 0xcd, + 0x16, 0xc1, 0xb9, 0xd2, 0x09, 0xdb, 0x62, 0x79, 0x0e, 0x29, 0xef, 0x1e, 0x3c, 0x6a, 0x4d, 0x43, + 0x84, 0x73, 0x25, 0x44, 0x9a, 0x35, 0x7a, 0xbb, 0x2e, 0x4a, 0x2a, 0x78, 0xbe, 0xda, 0xcf, 0x8a, + 0x8b, 0xd8, 0x9f, 0x16, 0x18, 0x80, 0x58, 0xa3, 0x7b, 0x41, 0xbc, 0xfe, 0x3a, 0x2d, 0xa6, 0xcc, + 0xbf, 0xfe, 0x6a, 0x24, 0xe1, 0xf5, 0x97, 0x22, 0xb0, 0xc9, 0x63, 0xa0, 0x4c, 0x36, 0x92, 0xb0, + 0x49, 0x45, 0xf8, 0x42, 0xa1, 0xda, 0xc9, 0x25, 0x43, 0x21, 0xda, 0xbb, 0xbd, 0xdf, 0xcb, 0xe1, + 0x1e, 0xda, 0x2e, 0xc4, 0x76, 0x80, 0xa7, 0xe7, 0xfe, 0x1e, 0xea, 0x20, 0xe1, 0x1e, 0x8a, 0x51, + 0x5c, 0xa5, 0x13, 0xa6, 0x17, 0x92, 0xf7, 0xfc, 0xfd, 0xa3, 0xb3, 0x88, 0xbc, 0xdf, 0xcb, 0xe1, + 0xa5, 0xd1, 0xde, 0x5c, 0x3c, 0x33, 0x6f, 0x27, 0x97, 0xb2, 0xf0, 0xd2, 0x48, 0x33, 0xb8, 0xf4, + 0x52, 0xd0, 0x3c, 0x4e, 0x7f, 0xe9, 0x8d, 0x3c, 0x5c, 0x7a, 0x87, 0x53, 0x4e, 0xfe, 0x75, 0x14, + 0x5d, 0xb7, 0xbd, 0x1c, 0xb2, 0x66, 0x8c, 0xbc, 0x4a, 0xf2, 0x6c, 0x9a, 0x70, 0x38, 0x61, 0x17, + 0x50, 0xa0, 0xbd, 0x15, 0xb7, 0xb4, 0x92, 0x1f, 0x3b, 0x0a, 0xc4, 0xde, 0xca, 0x20, 0x45, 0xdc, + 0x4f, 0x24, 0x7d, 0x5a, 0xc3, 0x56, 0x52, 0x13, 0x91, 0xcc, 0x41, 0xc2, 0xfd, 0x04, 0xa3, 0x38, + 0x5f, 0x95, 0xf2, 0x17, 0x6f, 0x4b, 0xa8, 0x32, 0x28, 0x52, 0xf0, 0xe7, 0xab, 0x98, 0x0a, 0xe7, + 0xab, 0x1e, 0xba, 0xb3, 0xf5, 0xa0, 0x83, 0x53, 0xf7, 0xee, 0x00, 0x26, 0x02, 0x77, 0x07, 0x08, + 0x14, 0x57, 0xd2, 0x00, 0xde, 0xed, 0xbb, 0x8e, 0x95, 0xe0, 0xf6, 0x1d, 0x4d, 0x77, 0x36, 0x74, + 0x34, 0x33, 0x69, 0x86, 0x49, 0x4f, 0xd1, 0x27, 0xf6, 0x70, 0x59, 0x1b, 0xc4, 0xfa, 0x77, 0x90, + 0x8e, 0x21, 0x4f, 0xc4, 0x14, 0x12, 0xd8, 0xa6, 0x69, 0x99, 0x21, 0x3b, 0x48, 0x16, 0xab, 0x1c, + 0xfe, 0xe5, 0x28, 0xfa, 0xc8, 0xe7, 0xf1, 0x65, 0x29, 0xfc, 0x3e, 0xe9, 0xb7, 0x25, 0x49, 0xe2, + 0x72, 0x44, 0x58, 0x43, 0x95, 0xe1, 0x4f, 0xa3, 0x0f, 0x5b, 0x91, 0xb9, 0x3b, 0xa1, 0x0a, 0xe0, + 0x26, 0x50, 0xba, 0xfc, 0x98, 0xd3, 0xee, 0x37, 0x06, 0xf3, 0x66, 0x6d, 0xe2, 0x96, 0xab, 0x46, + 0x6b, 0x13, 0x6d, 0x43, 0x89, 0x89, 0xb5, 0x89, 0x07, 0xc3, 0x33, 0x75, 0x8b, 0x34, 0xe3, 0xc4, + 0x17, 0xe3, 0xb4, 0x09, 0x7b, 0x94, 0x3c, 0xe8, 0x07, 0x71, 0xdf, 0x69, 0xc5, 0x6a, 0x49, 0xf0, + 0x28, 0x64, 0x01, 0x2d, 0x0b, 0xd6, 0x06, 0xb1, 0xca, 0xe1, 0x9f, 0x47, 0xdf, 0xeb, 0x54, 0x6c, + 0x07, 0x12, 0xbe, 0xa8, 0x60, 0x1a, 0x6f, 0xf4, 0x94, 0xbb, 0x05, 0xb5, 0xeb, 0x27, 0xc3, 0x15, + 0x3a, 0xb9, 0x6b, 0xcb, 0xc9, 0x26, 0xd6, 0x65, 0x78, 0x1a, 0x32, 0xe9, 0xb2, 0xc1, 0xdc, 0x95, + 0xd6, 0xe9, 0x2c, 0x3f, 0xed, 0x8e, 0xbc, 0xb9, 0x4c, 0xb2, 0x5c, 0x1c, 0x69, 0x7c, 0x1c, 0x32, + 0xea, 0xa0, 0xc1, 0xe5, 0x27, 0xa9, 0xd2, 0x89, 0x92, 0x62, 0xbc, 0x59, 0xcb, 0x96, 0xc7, 0xf4, + 0xa8, 0xf4, 0xac, 0x5a, 0xd6, 0x07, 0xd2, 0xca, 0x2d, 0x6f, 0xb7, 0xed, 0x9a, 0x9f, 0xed, 0x4e, + 0xee, 0xf3, 0xaa, 0x54, 0x3d, 0x3d, 0x7d, 0x7d, 0x20, 0xad, 0xbc, 0xfe, 0x59, 0xf4, 0x61, 0xd7, + 0xab, 0x9a, 0x14, 0x36, 0x7a, 0x4d, 0xa1, 0x79, 0xe1, 0xc9, 0x70, 0x05, 0x93, 0xea, 0x7f, 0x99, + 0xd5, 0x9c, 0x55, 0xab, 0xc9, 0x39, 0xbb, 0x6c, 0xef, 0x07, 0xbb, 0xa3, 0x55, 0x01, 0x63, 0x8b, + 0x20, 0x52, 0x7d, 0x3f, 0xd9, 0x71, 0x65, 0xee, 0x11, 0xd7, 0x84, 0x2b, 0x8b, 0xe8, 0x71, 0xe5, + 0x92, 0x26, 0x56, 0xb5, 0xb5, 0x32, 0x97, 0x9e, 0xef, 0xfb, 0x8b, 0xda, 0xbd, 0xf8, 0xfc, 0xa0, + 0x1f, 0x34, 0xd9, 0x83, 0x12, 0x6f, 0x67, 0x67, 0x67, 0xba, 0x4e, 0xfe, 0x92, 0xda, 0x08, 0x91, + 0x3d, 0x10, 0xa8, 0x49, 0x46, 0x77, 0xb2, 0x1c, 0xc4, 0xf9, 0xd8, 0xcb, 0xb3, 0xb3, 0x9c, 0x25, + 0x53, 0x94, 0x8c, 0x36, 0xe2, 0xb1, 0x2d, 0x27, 0x92, 0x51, 0x1f, 0x67, 0xae, 0x17, 0x35, 0xd2, + 0x63, 0x48, 0x59, 0x91, 0x66, 0x39, 0xbe, 0x2e, 0x25, 0x34, 0xb5, 0x90, 0xb8, 0x5e, 0xd4, 0x81, + 0xcc, 0x24, 0xd5, 0x88, 0x9a, 0x61, 0xdf, 0x96, 0xff, 0x6e, 0x57, 0xd1, 0x12, 0x13, 0x93, 0x94, + 0x07, 0x33, 0x6b, 0xb2, 0x46, 0x78, 0x5a, 0x0a, 0xe3, 0x37, 0xba, 0x5a, 0x52, 0x42, 0xac, 0xc9, + 0x5c, 0xc2, 0xac, 0x2d, 0x9a, 0xdf, 0xb7, 0xd9, 0x65, 0x21, 0x8c, 0xde, 0xea, 0xaa, 0xb4, 0x32, + 0x62, 0x6d, 0x81, 0x19, 0x65, 0xf8, 0xc7, 0xd1, 0x2f, 0x0b, 0xc3, 0x15, 0x2b, 0xe3, 0x6b, 0x1e, + 0x85, 0xca, 0xba, 0xd9, 0x74, 0x9d, 0x94, 0x9b, 0x0b, 0x7a, 0xba, 0x6f, 0x9c, 0xd6, 0xc9, 0x0c, + 0xe2, 0x3b, 0x44, 0x8b, 0x0b, 0x29, 0x71, 0x41, 0xaf, 0x4b, 0xb9, 0xbd, 0xe2, 0x90, 0x4d, 0x95, + 0x75, 0x4f, 0x0d, 0xb5, 0x30, 0xd4, 0x2b, 0x6c, 0xc8, 0x1c, 0x97, 0x1c, 0x26, 0xcb, 0x6c, 0xa6, + 0x27, 0x1c, 0x19, 0xb7, 0x6a, 0x74, 0x5c, 0x62, 0x98, 0xb1, 0x05, 0x11, 0xc7, 0x25, 0x24, 0xac, + 0x7c, 0xfe, 0xcb, 0x28, 0xba, 0x61, 0x98, 0xdd, 0x76, 0x17, 0x6b, 0xaf, 0x38, 0x63, 0xaf, 0x33, + 0x7e, 0xbe, 0x9f, 0x15, 0x17, 0x75, 0xfc, 0x19, 0x65, 0xd2, 0xcf, 0xeb, 0xa2, 0x7c, 0x7e, 0x65, + 0x3d, 0x93, 0x41, 0xb6, 0x5b, 0x3c, 0xe6, 0xec, 0x52, 0x6a, 0xa0, 0x0c, 0x52, 0xef, 0x04, 0x61, + 0x8e, 0xc8, 0x20, 0x43, 0xbc, 0x69, 0x62, 0xed, 0x3c, 0x67, 0x05, 0x6e, 0x62, 0x63, 0xa1, 0x11, + 0x12, 0x4d, 0xdc, 0x81, 0x4c, 0x3c, 0x6e, 0x45, 0x72, 0x37, 0x62, 0x33, 0xcf, 0x51, 0x3c, 0xd6, + 0xaa, 0x1a, 0x20, 0xe2, 0xb1, 0x17, 0x54, 0x7e, 0x8e, 0xa3, 0xef, 0x34, 0x8f, 0xf4, 0xa8, 0x82, + 0x65, 0x06, 0xf8, 0x98, 0xdd, 0x92, 0x10, 0xe3, 0xdf, 0x25, 0xcc, 0xc8, 0x3a, 0x2d, 0xea, 0x32, + 0x4f, 0xea, 0x73, 0x75, 0xf0, 0xea, 0xd6, 0xb9, 0x15, 0xe2, 0xa3, 0xd7, 0xbb, 0x3d, 0x94, 0x09, + 0xea, 0xad, 0x4c, 0x87, 0x98, 0x7b, 0x7e, 0xd5, 0x4e, 0x98, 0xb9, 0xdf, 0xcb, 0x99, 0x9d, 0xe0, + 0xdd, 0x24, 0xcf, 0xa1, 0x5a, 0xb5, 0xb2, 0x83, 0xa4, 0xc8, 0xce, 0xa0, 0xe6, 0x68, 0x27, 0x58, + 0x51, 0x63, 0x8c, 0x11, 0x3b, 0xc1, 0x01, 0xdc, 0x64, 0xf3, 0xc8, 0xf3, 0x5e, 0x31, 0x85, 0xb7, + 0x28, 0x9b, 0xc7, 0x76, 0x04, 0x43, 0x64, 0xf3, 0x14, 0x6b, 0x76, 0x44, 0x9f, 0xe7, 0x2c, 0xbd, + 0x50, 0x53, 0x80, 0xdb, 0xc0, 0x42, 0x82, 0xe7, 0x80, 0x5b, 0x21, 0xc4, 0x4c, 0x02, 0x42, 0x70, + 0x0c, 0x65, 0x9e, 0xa4, 0xf8, 0xae, 0x85, 0xd4, 0x51, 0x32, 0x62, 0x12, 0xc0, 0x0c, 0x2a, 0xae, + 0xba, 0xc3, 0xe1, 0x2b, 0x2e, 0xba, 0xc2, 0x71, 0x2b, 0x84, 0x98, 0x69, 0x50, 0x08, 0x26, 0x65, + 0x9e, 0x71, 0x34, 0x0c, 0xa4, 0x86, 0x90, 0x10, 0xc3, 0xc0, 0x25, 0x90, 0xc9, 0x03, 0xa8, 0x66, + 0xe0, 0x35, 0x29, 0x24, 0x41, 0x93, 0x2d, 0x61, 0xae, 0xe4, 0xc9, 0xba, 0xb3, 0x72, 0x85, 0xae, + 0xe4, 0xa9, 0x6a, 0xb1, 0x72, 0x45, 0x5c, 0xc9, 0x73, 0x00, 0x54, 0xc4, 0xa3, 0xa4, 0xe6, 0xfe, + 0x22, 0x0a, 0x49, 0xb0, 0x88, 0x2d, 0x61, 0xe6, 0x68, 0x59, 0xc4, 0x05, 0x47, 0x73, 0xb4, 0x2a, + 0x80, 0x75, 0x32, 0x7b, 0x9d, 0x94, 0x9b, 0x48, 0x22, 0x5b, 0x05, 0xf8, 0x4e, 0x06, 0xf9, 0xb4, + 0x46, 0x91, 0x44, 0x3d, 0xf7, 0x56, 0x4a, 0x44, 0x92, 0x2e, 0x85, 0xba, 0x92, 0xda, 0x37, 0xf6, + 0xd5, 0x0e, 0x6d, 0x19, 0xdf, 0x0a, 0x21, 0x26, 0x3e, 0xb5, 0x85, 0xde, 0x4a, 0xaa, 0x2a, 0x6b, + 0x26, 0xff, 0x7b, 0xfe, 0x02, 0xb5, 0x72, 0x22, 0x3e, 0xf9, 0x38, 0x34, 0xbc, 0xda, 0xc0, 0xed, + 0x2b, 0x18, 0x0e, 0xdd, 0xb7, 0x83, 0x8c, 0xc9, 0x38, 0x85, 0xc4, 0x3a, 0x5a, 0xf4, 0x3d, 0x4d, + 0xcf, 0xc9, 0xe2, 0xbd, 0x3e, 0xcc, 0xba, 0x32, 0xaf, 0x5d, 0x1c, 0xb0, 0x25, 0x9c, 0xb0, 0x17, + 0x6f, 0xb3, 0x9a, 0x67, 0xc5, 0x4c, 0xcd, 0xdc, 0xcf, 0x08, 0x4b, 0x3e, 0x98, 0xb8, 0x32, 0xdf, + 0xab, 0x64, 0x12, 0x08, 0x54, 0x96, 0x43, 0xb8, 0xf4, 0x26, 0x10, 0xd8, 0xa2, 0xe6, 0x88, 0x04, + 0x22, 0xc4, 0x9b, 0x7d, 0x14, 0xed, 0x5c, 0xbd, 0x57, 0x78, 0xc2, 0xda, 0x5c, 0x8e, 0xb2, 0x86, + 0x41, 0x62, 0x29, 0x1b, 0x54, 0x30, 0xeb, 0x4b, 0xed, 0xdf, 0x0c, 0xb1, 0x07, 0x84, 0x9d, 0xee, + 0x30, 0x7b, 0x38, 0x80, 0xf4, 0xb8, 0x32, 0xe7, 0xe3, 0x94, 0xab, 0xee, 0xf1, 0xf8, 0xc3, 0x01, + 0xa4, 0xb5, 0x27, 0x63, 0x57, 0xeb, 0x79, 0x92, 0x5e, 0xcc, 0x2a, 0xb6, 0x28, 0xa6, 0x5b, 0x2c, + 0x67, 0x15, 0xda, 0x93, 0x71, 0x4a, 0x8d, 0x50, 0x62, 0x4f, 0xa6, 0x47, 0xc5, 0x64, 0x70, 0x76, + 0x29, 0x36, 0xf3, 0x6c, 0x86, 0x57, 0xd4, 0x8e, 0x21, 0x01, 0x10, 0x19, 0x9c, 0x17, 0xf4, 0x74, + 0x22, 0xb9, 0xe2, 0xe6, 0x59, 0x9a, 0xe4, 0xd2, 0xdf, 0x06, 0x6d, 0xc6, 0x01, 0x7b, 0x3b, 0x91, + 0x47, 0xc1, 0x53, 0xcf, 0x93, 0x45, 0x55, 0xec, 0x15, 0x9c, 0x91, 0xf5, 0x6c, 0x81, 0xde, 0x7a, + 0x5a, 0x20, 0x0a, 0xab, 0x27, 0xf0, 0xb6, 0x29, 0x4d, 0xf3, 0x8f, 0x2f, 0xac, 0x36, 0xbf, 0x8f, + 0x95, 0x3c, 0x14, 0x56, 0x11, 0x87, 0x2a, 0xa3, 0x9c, 0xc8, 0x0e, 0x13, 0xd0, 0x76, 0xbb, 0xc9, + 0x83, 0x7e, 0xd0, 0xef, 0x67, 0xc2, 0x57, 0x39, 0x84, 0xfc, 0x08, 0x60, 0x88, 0x9f, 0x16, 0x34, + 0xdb, 0x2d, 0x4e, 0x7d, 0xce, 0x21, 0xbd, 0xe8, 0x5c, 0xf7, 0x71, 0x0b, 0x2a, 0x11, 0x62, 0xbb, + 0x85, 0x40, 0xfd, 0x4d, 0xb4, 0x97, 0xb2, 0x22, 0xd4, 0x44, 0x8d, 0x7c, 0x48, 0x13, 0x29, 0xce, + 0x2c, 0x7e, 0xb5, 0x54, 0xf5, 0x4c, 0xd9, 0x4c, 0x6b, 0x84, 0x05, 0x1b, 0x22, 0x16, 0xbf, 0x24, + 0x6c, 0x72, 0x72, 0xec, 0xf3, 0xa0, 0x7b, 0xbf, 0xb7, 0x63, 0xe5, 0x80, 0xbe, 0xdf, 0x4b, 0xb1, + 0x74, 0x25, 0x65, 0x1f, 0xe9, 0xb1, 0xe2, 0xf6, 0x93, 0xc7, 0xc3, 0x60, 0xb3, 0xe4, 0x71, 0x7c, + 0x6e, 0xe5, 0x90, 0x54, 0xd2, 0xeb, 0x7a, 0xc0, 0x90, 0xc1, 0x88, 0x25, 0x4f, 0x00, 0x47, 0x21, + 0xcc, 0xf1, 0xbc, 0xc5, 0x0a, 0x0e, 0x05, 0xf7, 0x85, 0x30, 0xd7, 0x98, 0x02, 0x43, 0x21, 0x8c, + 0x52, 0x40, 0xfd, 0x56, 0xec, 0x07, 0x01, 0x3f, 0x4c, 0xe6, 0xde, 0x8c, 0x4d, 0xee, 0xf5, 0x48, + 0x79, 0xa8, 0xdf, 0x22, 0xce, 0x3a, 0x70, 0xb3, 0xbd, 0x9c, 0x24, 0xd5, 0x4c, 0xef, 0x6e, 0x4c, + 0xe3, 0x27, 0xb4, 0x1d, 0x97, 0x24, 0x0e, 0xdc, 0xc2, 0x1a, 0x28, 0xec, 0xec, 0xcd, 0x93, 0x99, + 0xae, 0xa9, 0xa7, 0x06, 0x42, 0xde, 0xa9, 0xea, 0x83, 0x7e, 0x10, 0xf9, 0x79, 0x95, 0x4d, 0x81, + 0x05, 0xfc, 0x08, 0xf9, 0x10, 0x3f, 0x18, 0x44, 0xd9, 0x5b, 0x53, 0x6f, 0xb9, 0xa2, 0xdb, 0x2c, + 0xa6, 0x6a, 0x1d, 0x3b, 0x26, 0x1e, 0x0f, 0xe2, 0x42, 0xd9, 0x1b, 0xc1, 0xa3, 0x31, 0xda, 0x6e, + 0xd0, 0x86, 0xc6, 0xa8, 0xde, 0x7f, 0x1d, 0x32, 0x46, 0x7d, 0xb0, 0xf2, 0xf9, 0x53, 0x35, 0x46, + 0xb7, 0x13, 0x9e, 0x34, 0x79, 0xfb, 0xab, 0x0c, 0x2e, 0xd5, 0x42, 0xd8, 0x53, 0xdf, 0x96, 0x1a, + 0x8b, 0x17, 0xbb, 0xd0, 0xaa, 0x78, 0x63, 0x30, 0x1f, 0xf0, 0xad, 0x56, 0x08, 0xbd, 0xbe, 0xd1, + 0x52, 0x61, 0x63, 0x30, 0x1f, 0xf0, 0xad, 0xde, 0x18, 0xed, 0xf5, 0x8d, 0x5e, 0x1b, 0xdd, 0x18, + 0xcc, 0x2b, 0xdf, 0x7f, 0xd5, 0x0e, 0x5c, 0xdb, 0x79, 0x93, 0x87, 0xa5, 0x3c, 0x5b, 0x82, 0x2f, + 0x9d, 0x74, 0xed, 0x69, 0x34, 0x94, 0x4e, 0xd2, 0x2a, 0xd6, 0x67, 0x46, 0x7c, 0xa5, 0x38, 0x62, + 0x75, 0x26, 0x0e, 0xcc, 0x9f, 0x0d, 0x30, 0xda, 0xc2, 0xa1, 0x45, 0x53, 0x48, 0xc9, 0x1c, 0x37, + 0x3a, 0xa8, 0xb9, 0xdd, 0xfb, 0x38, 0x60, 0xaf, 0x7b, 0xc9, 0x77, 0x7d, 0x20, 0x6d, 0x0e, 0xfe, + 0x1c, 0xc6, 0x3e, 0x71, 0x0c, 0xb5, 0xaa, 0xf7, 0xd0, 0xf1, 0xc9, 0x70, 0x05, 0xe5, 0xfe, 0x6f, + 0xda, 0x75, 0x05, 0xf6, 0xaf, 0x06, 0xc1, 0xd3, 0x21, 0x16, 0xd1, 0x40, 0x78, 0x76, 0x25, 0x1d, + 0x55, 0x90, 0xff, 0x18, 0x45, 0xb7, 0xbc, 0x05, 0x71, 0xcf, 0x9e, 0x7f, 0x77, 0x88, 0x6d, 0xff, + 0x19, 0xf4, 0x17, 0xdf, 0x46, 0x55, 0x95, 0xee, 0x1f, 0xda, 0xe5, 0x7d, 0xab, 0x21, 0xde, 0xc0, + 0x78, 0x59, 0x4d, 0xa1, 0x52, 0x23, 0x36, 0xd4, 0xe9, 0x0c, 0x8c, 0xc7, 0xed, 0xa7, 0x57, 0xd4, + 0xb2, 0x3e, 0x89, 0xe3, 0xc0, 0xea, 0xed, 0x37, 0xab, 0x3c, 0x21, 0xcb, 0x16, 0x8d, 0x0b, 0xf4, + 0xd9, 0x55, 0xd5, 0xa8, 0x91, 0x6c, 0xc1, 0xe2, 0x0d, 0xfb, 0x67, 0x03, 0x0d, 0x3b, 0xef, 0xdc, + 0x7f, 0x72, 0x35, 0x25, 0x55, 0x96, 0xff, 0x1a, 0x45, 0x77, 0x1d, 0xd6, 0x9c, 0x76, 0xa0, 0x3d, + 0x99, 0x1f, 0x05, 0xec, 0x53, 0x4a, 0xba, 0x70, 0xbf, 0xf7, 0xed, 0x94, 0xcd, 0xf7, 0x63, 0x1c, + 0x95, 0x9d, 0x2c, 0xe7, 0x50, 0x75, 0xbf, 0x1f, 0xe3, 0xda, 0x95, 0xd4, 0x98, 0xfe, 0x7e, 0x4c, + 0x00, 0xb7, 0xbe, 0x1f, 0xe3, 0xf1, 0xec, 0xfd, 0x7e, 0x8c, 0xd7, 0x5a, 0xf0, 0xfb, 0x31, 0x61, + 0x0d, 0x6a, 0xf2, 0x69, 0x8b, 0x20, 0x77, 0xd5, 0x07, 0x59, 0x74, 0x37, 0xd9, 0x9f, 0x5e, 0x45, + 0x85, 0x98, 0x7e, 0x25, 0x27, 0x6e, 0xc4, 0x0d, 0x78, 0xa6, 0xce, 0xad, 0xb8, 0x8d, 0xc1, 0xbc, + 0xf2, 0xfd, 0x13, 0xb5, 0xf6, 0xd2, 0x93, 0x0d, 0xab, 0xc4, 0xb7, 0x83, 0xd6, 0x42, 0x93, 0x47, + 0x63, 0xc1, 0x6e, 0xf9, 0xc7, 0xc3, 0x60, 0xa2, 0xba, 0x0d, 0xa1, 0x1a, 0x7d, 0xdc, 0x67, 0x08, + 0x35, 0xf9, 0xc6, 0x60, 0x9e, 0x98, 0xe4, 0xa4, 0x6f, 0xd9, 0xda, 0x03, 0x8c, 0xb9, 0x6d, 0xfd, + 0x64, 0xb8, 0x82, 0x72, 0xbf, 0x54, 0x49, 0xad, 0xed, 0x5e, 0xb4, 0xf3, 0x7a, 0x9f, 0xa9, 0x89, + 0xd3, 0xcc, 0xe3, 0xa1, 0x78, 0x28, 0xbd, 0xb1, 0x27, 0xf8, 0xbe, 0xf4, 0xc6, 0x3b, 0xc9, 0x7f, + 0x72, 0x35, 0x25, 0x55, 0x96, 0x7f, 0x1e, 0x45, 0xd7, 0xc9, 0xb2, 0xa8, 0x7e, 0xf0, 0xd9, 0x50, + 0xcb, 0xa8, 0x3f, 0x7c, 0x7e, 0x65, 0x3d, 0x55, 0xa8, 0x7f, 0x1b, 0x45, 0x37, 0x02, 0x85, 0x92, + 0x1d, 0xe4, 0x0a, 0xd6, 0xdd, 0x8e, 0xf2, 0xc3, 0xab, 0x2b, 0x52, 0xd3, 0xbd, 0x8d, 0x4f, 0xba, + 0x1f, 0x56, 0x09, 0xd8, 0x9e, 0xd0, 0x1f, 0x56, 0xe9, 0xd7, 0xc2, 0x5b, 0x50, 0x4d, 0x52, 0xa2, + 0x56, 0x46, 0xbe, 0x2d, 0x28, 0x91, 0xb3, 0xa0, 0x15, 0xd1, 0xfd, 0x5e, 0xce, 0xe7, 0xe4, 0xc5, + 0xdb, 0x32, 0x29, 0xa6, 0xb4, 0x13, 0x29, 0xef, 0x77, 0xa2, 0x39, 0xbc, 0x75, 0xd7, 0x48, 0x8f, + 0x59, 0xbb, 0xcc, 0x7b, 0x48, 0xe9, 0x6b, 0x24, 0xb8, 0x75, 0xd7, 0x41, 0x09, 0x6f, 0x2a, 0xa7, + 0x0d, 0x79, 0x43, 0xa9, 0xec, 0xa3, 0x21, 0x28, 0x5a, 0x40, 0x68, 0x6f, 0xfa, 0x44, 0xe0, 0x71, + 0xc8, 0x4a, 0xe7, 0x54, 0x60, 0x7d, 0x20, 0x4d, 0xb8, 0x9d, 0x00, 0xff, 0x12, 0x92, 0x29, 0x54, + 0x41, 0xb7, 0x9a, 0x1a, 0xe4, 0xd6, 0xa6, 0x7d, 0x6e, 0xb7, 0x58, 0xbe, 0x98, 0x17, 0xaa, 0x31, + 0x49, 0xb7, 0x36, 0xd5, 0xef, 0x16, 0xd1, 0x78, 0xd3, 0xd2, 0xb8, 0x15, 0xe9, 0xe5, 0xa3, 0xb0, + 0x19, 0x27, 0xab, 0x5c, 0x1b, 0xc4, 0xd2, 0xf5, 0x54, 0xdd, 0xa8, 0xa7, 0x9e, 0xa8, 0x27, 0xad, + 0x0f, 0xa4, 0xf1, 0xee, 0xa1, 0xe5, 0x56, 0xf7, 0xa7, 0x8d, 0x1e, 0x5b, 0x9d, 0x2e, 0xf5, 0x64, + 0xb8, 0x02, 0xde, 0xab, 0x55, 0xbd, 0xaa, 0x59, 0x17, 0xed, 0x64, 0x79, 0x1e, 0xaf, 0x05, 0xba, + 0x49, 0x0b, 0x05, 0xf7, 0x6a, 0x3d, 0x30, 0xd1, 0x93, 0xdb, 0xbd, 0xcd, 0x22, 0xee, 0xb3, 0x23, + 0xa8, 0x41, 0x3d, 0xd9, 0xa6, 0xd1, 0x7e, 0x9b, 0xf5, 0xa8, 0x75, 0x6d, 0xc7, 0xe1, 0x07, 0xd7, + 0xa9, 0xf0, 0xc6, 0x60, 0x1e, 0x5d, 0x06, 0x10, 0x94, 0x98, 0x59, 0xee, 0x50, 0x26, 0x9c, 0x99, + 0xe4, 0x6e, 0x0f, 0x85, 0xf6, 0x2c, 0xe5, 0x30, 0x7a, 0x9d, 0x4d, 0x67, 0xc0, 0xbd, 0xe7, 0x58, + 0x36, 0x10, 0x3c, 0xc7, 0x42, 0x20, 0x6a, 0x3a, 0xf9, 0xbb, 0xde, 0xac, 0xdd, 0x9b, 0xfa, 0x9a, + 0x4e, 0x29, 0x5b, 0x54, 0xa8, 0xe9, 0xbc, 0x34, 0x8a, 0x06, 0xda, 0xad, 0x7a, 0x89, 0xfe, 0x51, + 0xc8, 0x0c, 0x7a, 0x93, 0x7e, 0x6d, 0x10, 0x8b, 0x66, 0x14, 0xe3, 0x30, 0x9b, 0x67, 0xdc, 0x37, + 0xa3, 0x58, 0x36, 0x1a, 0x24, 0x34, 0xa3, 0x74, 0x51, 0xaa, 0x7a, 0x4d, 0x8e, 0xb0, 0x37, 0x0d, + 0x57, 0x4f, 0x32, 0xc3, 0xaa, 0xa7, 0xd9, 0xce, 0xb1, 0x6b, 0xa1, 0xbb, 0x0c, 0x3f, 0x57, 0x8b, + 0x65, 0x4f, 0xdf, 0x16, 0x2f, 0x57, 0x62, 0x30, 0x14, 0x75, 0x28, 0x05, 0x7c, 0x9c, 0xd0, 0x70, + 0xed, 0xc9, 0x70, 0x59, 0x42, 0x52, 0x25, 0x45, 0xea, 0x5d, 0x9c, 0x0a, 0x83, 0x1d, 0x32, 0xb4, + 0x38, 0x25, 0x35, 0xd0, 0xa1, 0xbe, 0xfb, 0x5a, 0xa4, 0x67, 0x28, 0xe8, 0xf7, 0x0f, 0xdd, 0xb7, + 0x22, 0x1f, 0x0e, 0x20, 0xf1, 0xa1, 0x7e, 0x0b, 0xe8, 0x6d, 0x79, 0xe9, 0xf4, 0xe3, 0x80, 0x29, + 0x17, 0x0d, 0x2d, 0x84, 0x69, 0x15, 0xd4, 0xa9, 0x75, 0x82, 0x0b, 0xfc, 0xc7, 0xb0, 0xf2, 0x75, + 0x6a, 0x93, 0x9f, 0x0a, 0x24, 0xd4, 0xa9, 0xbb, 0x28, 0xca, 0x33, 0xed, 0x75, 0xd0, 0xbd, 0x80, + 0xbe, 0xbd, 0xf4, 0xb9, 0xdf, 0xcb, 0xa1, 0x91, 0xb3, 0x9d, 0x2d, 0x9d, 0x53, 0x0c, 0x4f, 0x41, + 0xb7, 0xb3, 0xa5, 0xff, 0x10, 0x63, 0x6d, 0x10, 0x8b, 0x2f, 0x0c, 0x24, 0x1c, 0xde, 0xb6, 0x27, + 0xf9, 0x9e, 0xe2, 0x0a, 0x79, 0xe7, 0x28, 0xff, 0x41, 0x3f, 0x68, 0xae, 0xe7, 0x1e, 0x55, 0x2c, + 0x85, 0xba, 0x56, 0x5f, 0x9b, 0x73, 0xef, 0x3f, 0x29, 0xd9, 0x18, 0x7d, 0x6b, 0xee, 0x4e, 0x18, + 0x52, 0xb6, 0xbf, 0x8c, 0xde, 0xdd, 0x67, 0xb3, 0x09, 0x14, 0xd3, 0xf8, 0x07, 0xee, 0x85, 0x58, + 0x36, 0x1b, 0x37, 0x3f, 0x6b, 0x7b, 0xd7, 0x28, 0xb1, 0xb9, 0xd2, 0xb7, 0x0d, 0x6f, 0x16, 0xb3, + 0x09, 0x4f, 0x38, 0xba, 0xd2, 0x27, 0x7e, 0x1f, 0x37, 0x02, 0xe2, 0x4a, 0x9f, 0x03, 0x20, 0x7b, + 0x27, 0x15, 0x80, 0xd7, 0x5e, 0x23, 0x08, 0xda, 0x53, 0x80, 0x99, 0x75, 0xb5, 0xbd, 0x26, 0xb1, + 0xc5, 0x57, 0xf0, 0x8c, 0x8e, 0x90, 0x12, 0xb3, 0x6e, 0x97, 0x32, 0x9d, 0x41, 0x56, 0x5f, 0x7c, + 0x5b, 0x63, 0x31, 0x9f, 0x27, 0xd5, 0x0a, 0x75, 0x06, 0x55, 0x4b, 0x0b, 0x20, 0x3a, 0x83, 0x17, + 0x34, 0xbd, 0xbc, 0x7d, 0xcc, 0xe9, 0xc5, 0x2e, 0xab, 0xd8, 0x82, 0x67, 0x05, 0xe0, 0xef, 0x2b, + 0xe8, 0x07, 0x6a, 0x33, 0x44, 0x2f, 0xa7, 0x58, 0x93, 0x15, 0x0a, 0x42, 0xde, 0x0e, 0x14, 0xdf, + 0x6c, 0xad, 0x39, 0xab, 0xf0, 0xe9, 0xa0, 0xb4, 0x82, 0x21, 0x22, 0x2b, 0x24, 0x61, 0xd4, 0xf6, + 0x47, 0x59, 0x31, 0xf3, 0xb6, 0xfd, 0x91, 0xfd, 0xc5, 0xc3, 0x1b, 0x34, 0x60, 0xe2, 0xbb, 0x7c, + 0x68, 0xf2, 0x1b, 0x46, 0xea, 0x2d, 0x49, 0xef, 0x43, 0xb7, 0x09, 0x22, 0xbe, 0xfb, 0x49, 0xe4, + 0xea, 0x65, 0x09, 0x05, 0x4c, 0xdb, 0x3b, 0x70, 0x3e, 0x57, 0x0e, 0x11, 0x74, 0x85, 0x49, 0x13, + 0x55, 0x85, 0xfc, 0x78, 0x51, 0x1c, 0x55, 0xec, 0x2c, 0xcb, 0xa1, 0x42, 0x51, 0x55, 0xaa, 0x5b, + 0x72, 0x22, 0xaa, 0xfa, 0x38, 0x73, 0x99, 0x42, 0x48, 0x9d, 0x0f, 0x0f, 0x9f, 0x54, 0x49, 0x8a, + 0x2f, 0x53, 0x48, 0x1b, 0x5d, 0x8c, 0xd8, 0x49, 0x0b, 0xe0, 0xa6, 0xa7, 0x1f, 0x00, 0xaf, 0xb2, + 0xb4, 0x9e, 0x00, 0x3f, 0x4a, 0xaa, 0x64, 0x0e, 0x1c, 0x2a, 0xdc, 0xd3, 0x15, 0x32, 0x76, 0x18, + 0xa2, 0xa7, 0x53, 0xac, 0x72, 0xf8, 0xfb, 0xd1, 0xfb, 0x4d, 0xa0, 0x87, 0x42, 0x7d, 0x23, 0xff, + 0x85, 0xf8, 0xe3, 0x1a, 0xf1, 0x07, 0xda, 0xc6, 0x84, 0x57, 0x90, 0xcc, 0x5b, 0xdb, 0xef, 0xe9, + 0xdf, 0x05, 0xf8, 0x64, 0xd4, 0x34, 0xc8, 0x21, 0xe3, 0xd9, 0x59, 0xb3, 0xae, 0x52, 0xa7, 0x58, + 0xa8, 0x41, 0x6c, 0xf1, 0x38, 0xf0, 0xc9, 0x00, 0x1f, 0x67, 0x02, 0x8d, 0x2d, 0x3d, 0x86, 0x32, + 0xc7, 0x81, 0xc6, 0xd1, 0x16, 0x00, 0x11, 0x68, 0xbc, 0xa0, 0xe9, 0x5d, 0xb6, 0xf8, 0x04, 0xc2, + 0x95, 0x39, 0x81, 0x61, 0x95, 0x39, 0x71, 0xde, 0x11, 0xc8, 0xa3, 0xf7, 0x0f, 0x60, 0xfe, 0x06, + 0xaa, 0xfa, 0x3c, 0x2b, 0x77, 0x9b, 0x19, 0x36, 0xe1, 0x0b, 0xfc, 0x16, 0x9d, 0x21, 0xc6, 0x1a, + 0x21, 0xd2, 0x10, 0x02, 0x35, 0xa1, 0xcc, 0x00, 0x7b, 0xf5, 0x61, 0x32, 0x07, 0xf1, 0x01, 0x84, + 0x78, 0x8d, 0x32, 0x62, 0x41, 0x44, 0x28, 0x23, 0x61, 0xeb, 0x75, 0x23, 0xc3, 0x1c, 0xc3, 0xac, + 0xe9, 0x61, 0xd5, 0x51, 0xb2, 0x9a, 0x43, 0xc1, 0x95, 0x49, 0xb4, 0x09, 0x6b, 0x99, 0xf4, 0xf3, + 0xc4, 0x26, 0xec, 0x10, 0x3d, 0x2b, 0xe9, 0x76, 0x1e, 0xfc, 0x11, 0xab, 0xb8, 0xfc, 0x0b, 0x18, + 0xa7, 0x55, 0x8e, 0x92, 0x6e, 0xf7, 0xa1, 0x3a, 0x24, 0x91, 0x74, 0x87, 0x35, 0xac, 0x4f, 0x47, + 0x3b, 0x65, 0x78, 0x05, 0x95, 0xee, 0x27, 0x2f, 0xe6, 0x49, 0x96, 0xab, 0xde, 0xf0, 0x45, 0xc0, + 0x36, 0xa1, 0x43, 0x7c, 0x3a, 0x7a, 0xa8, 0xae, 0xf5, 0xb1, 0xed, 0x70, 0x09, 0xd1, 0x9e, 0x70, + 0x8f, 0x7d, 0x62, 0x4f, 0xb8, 0x5f, 0xcb, 0x2c, 0xd5, 0x0c, 0x2b, 0xb8, 0x95, 0x20, 0xb6, 0xd8, + 0x14, 0x6f, 0x10, 0x59, 0x36, 0x11, 0x48, 0x2c, 0xd5, 0x82, 0x0a, 0x66, 0x6e, 0x33, 0xd8, 0x4e, + 0x56, 0x24, 0x79, 0xf6, 0x53, 0x7c, 0xf7, 0xd9, 0xb2, 0xd3, 0x12, 0xc4, 0xdc, 0xe6, 0x27, 0x7d, + 0xae, 0x76, 0x81, 0x9f, 0x64, 0x4d, 0xe8, 0x7f, 0x10, 0x78, 0x6e, 0x82, 0xe8, 0x77, 0x65, 0x91, + 0xca, 0xd5, 0xcf, 0x46, 0xd1, 0x75, 0xfc, 0x58, 0x37, 0xcb, 0x72, 0xd2, 0xa4, 0x24, 0xc7, 0x90, + 0x42, 0x56, 0xf2, 0xf8, 0xd3, 0xf0, 0xb3, 0x42, 0x38, 0x71, 0xb2, 0x3e, 0x40, 0xcd, 0x3a, 0xaf, + 0x6d, 0x62, 0xc9, 0x44, 0xfe, 0x69, 0xa8, 0xd3, 0x1a, 0x2a, 0x35, 0x53, 0xee, 0x02, 0x47, 0xa3, + 0xd3, 0xe2, 0xc6, 0x16, 0xd8, 0x54, 0x94, 0x18, 0x9d, 0x61, 0x0d, 0xb3, 0xbb, 0x63, 0x71, 0xc7, + 0x50, 0xb3, 0x7c, 0x09, 0xe2, 0xfa, 0xdb, 0x63, 0xd2, 0x98, 0x45, 0x11, 0xbb, 0x3b, 0x34, 0x6d, + 0xd2, 0x8d, 0xae, 0xdb, 0xcd, 0x62, 0xb5, 0x87, 0xcf, 0xc8, 0x3d, 0x96, 0x04, 0x46, 0xa4, 0x1b, + 0x01, 0xdc, 0xda, 0xfd, 0xac, 0x58, 0x32, 0x4d, 0x93, 0x9a, 0x1f, 0x25, 0xab, 0x9c, 0x25, 0x53, + 0x31, 0xaf, 0xe3, 0xdd, 0xcf, 0x96, 0x19, 0xdb, 0x10, 0xb5, 0xfb, 0x49, 0xc1, 0x66, 0x65, 0xa7, + 0xfe, 0xe2, 0x95, 0xba, 0x5a, 0x78, 0x1b, 0xe5, 0x48, 0xa2, 0xbc, 0xf8, 0x5a, 0xe1, 0x9d, 0x30, + 0x64, 0x5e, 0x89, 0x92, 0x22, 0x91, 0x86, 0xdc, 0xf0, 0xe9, 0x38, 0x09, 0xc8, 0xcd, 0x00, 0x61, + 0x3e, 0x93, 0x20, 0x7f, 0x6f, 0xff, 0x68, 0x03, 0x57, 0x1f, 0xd1, 0x7d, 0xec, 0xd3, 0xb5, 0xa1, + 0xb1, 0xfd, 0x1d, 0xb2, 0xf5, 0x81, 0xb4, 0xf4, 0xfa, 0xfc, 0xe6, 0x7f, 0x7f, 0x7d, 0x6d, 0xf4, + 0xf3, 0xaf, 0xaf, 0x8d, 0xfe, 0xff, 0xeb, 0x6b, 0xa3, 0x9f, 0x7d, 0x73, 0xed, 0x9d, 0x9f, 0x7f, + 0x73, 0xed, 0x9d, 0xff, 0xfd, 0xe6, 0xda, 0x3b, 0x5f, 0xbd, 0xab, 0xfe, 0x74, 0xda, 0x9b, 0x5f, + 0x12, 0x7f, 0x00, 0xed, 0xd9, 0x2f, 0x02, 0x00, 0x00, 0xff, 0xff, 0x00, 0x2e, 0xe4, 0x86, 0x5e, + 0x6d, 0x00, 0x00, } // Reference imports to suppress errors if they are not otherwise used. @@ -435,6 +437,7 @@ type ClientCommandsClient interface { ObjectListSetIsFavorite(ctx context.Context, in *pb.RpcObjectListSetIsFavoriteRequest, opts ...grpc.CallOption) (*pb.RpcObjectListSetIsFavoriteResponse, error) ObjectListSetObjectType(ctx context.Context, in *pb.RpcObjectListSetObjectTypeRequest, opts ...grpc.CallOption) (*pb.RpcObjectListSetObjectTypeResponse, error) ObjectListSetDetails(ctx context.Context, in *pb.RpcObjectListSetDetailsRequest, opts ...grpc.CallOption) (*pb.RpcObjectListSetDetailsResponse, error) + ObjectListModifyDetailValues(ctx context.Context, in *pb.RpcObjectListModifyDetailValuesRequest, opts ...grpc.CallOption) (*pb.RpcObjectListModifyDetailValuesResponse, error) ObjectApplyTemplate(ctx context.Context, in *pb.RpcObjectApplyTemplateRequest, opts ...grpc.CallOption) (*pb.RpcObjectApplyTemplateResponse, error) // ObjectToSet creates new set from given object and removes object ObjectToSet(ctx context.Context, in *pb.RpcObjectToSetRequest, opts ...grpc.CallOption) (*pb.RpcObjectToSetResponse, error) @@ -1334,6 +1337,15 @@ func (c *clientCommandsClient) ObjectListSetDetails(ctx context.Context, in *pb. return out, nil } +func (c *clientCommandsClient) ObjectListModifyDetailValues(ctx context.Context, in *pb.RpcObjectListModifyDetailValuesRequest, opts ...grpc.CallOption) (*pb.RpcObjectListModifyDetailValuesResponse, error) { + out := new(pb.RpcObjectListModifyDetailValuesResponse) + err := c.cc.Invoke(ctx, "/anytype.ClientCommands/ObjectListModifyDetailValues", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + func (c *clientCommandsClient) ObjectApplyTemplate(ctx context.Context, in *pb.RpcObjectApplyTemplateRequest, opts ...grpc.CallOption) (*pb.RpcObjectApplyTemplateResponse, error) { out := new(pb.RpcObjectApplyTemplateResponse) err := c.cc.Invoke(ctx, "/anytype.ClientCommands/ObjectApplyTemplate", in, out, opts...) @@ -3030,6 +3042,7 @@ type ClientCommandsServer interface { ObjectListSetIsFavorite(context.Context, *pb.RpcObjectListSetIsFavoriteRequest) *pb.RpcObjectListSetIsFavoriteResponse ObjectListSetObjectType(context.Context, *pb.RpcObjectListSetObjectTypeRequest) *pb.RpcObjectListSetObjectTypeResponse ObjectListSetDetails(context.Context, *pb.RpcObjectListSetDetailsRequest) *pb.RpcObjectListSetDetailsResponse + ObjectListModifyDetailValues(context.Context, *pb.RpcObjectListModifyDetailValuesRequest) *pb.RpcObjectListModifyDetailValuesResponse ObjectApplyTemplate(context.Context, *pb.RpcObjectApplyTemplateRequest) *pb.RpcObjectApplyTemplateResponse // ObjectToSet creates new set from given object and removes object ObjectToSet(context.Context, *pb.RpcObjectToSetRequest) *pb.RpcObjectToSetResponse @@ -3481,6 +3494,9 @@ func (*UnimplementedClientCommandsServer) ObjectListSetObjectType(ctx context.Co func (*UnimplementedClientCommandsServer) ObjectListSetDetails(ctx context.Context, req *pb.RpcObjectListSetDetailsRequest) *pb.RpcObjectListSetDetailsResponse { return nil } +func (*UnimplementedClientCommandsServer) ObjectListModifyDetailValues(ctx context.Context, req *pb.RpcObjectListModifyDetailValuesRequest) *pb.RpcObjectListModifyDetailValuesResponse { + return nil +} func (*UnimplementedClientCommandsServer) ObjectApplyTemplate(ctx context.Context, req *pb.RpcObjectApplyTemplateRequest) *pb.RpcObjectApplyTemplateResponse { return nil } @@ -5346,6 +5362,24 @@ func _ClientCommands_ObjectListSetDetails_Handler(srv interface{}, ctx context.C return interceptor(ctx, in, info, handler) } +func _ClientCommands_ObjectListModifyDetailValues_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(pb.RpcObjectListModifyDetailValuesRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ClientCommandsServer).ObjectListModifyDetailValues(ctx, in), nil + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/anytype.ClientCommands/ObjectListModifyDetailValues", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ClientCommandsServer).ObjectListModifyDetailValues(ctx, req.(*pb.RpcObjectListModifyDetailValuesRequest)), nil + } + return interceptor(ctx, in, info, handler) +} + func _ClientCommands_ObjectApplyTemplate_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(pb.RpcObjectApplyTemplateRequest) if err := dec(in); err != nil { @@ -8818,6 +8852,10 @@ var _ClientCommands_serviceDesc = grpc.ServiceDesc{ MethodName: "ObjectListSetDetails", Handler: _ClientCommands_ObjectListSetDetails_Handler, }, + { + MethodName: "ObjectListModifyDetailValues", + Handler: _ClientCommands_ObjectListModifyDetailValues_Handler, + }, { MethodName: "ObjectApplyTemplate", Handler: _ClientCommands_ObjectApplyTemplate_Handler, diff --git a/space/internal/components/dependencies/modifier.go b/space/internal/components/dependencies/modifier.go deleted file mode 100644 index 9ba6bcab1..000000000 --- a/space/internal/components/dependencies/modifier.go +++ /dev/null @@ -1,7 +0,0 @@ -package dependencies - -import "github.com/gogo/protobuf/types" - -type DetailsModifier interface { - ModifyDetails(objectId string, modifier func(current *types.Struct) (*types.Struct, error)) (err error) -} diff --git a/util/pbtypes/pbtypes.go b/util/pbtypes/pbtypes.go index b6740dd8f..98ac03fd2 100644 --- a/util/pbtypes/pbtypes.go +++ b/util/pbtypes/pbtypes.go @@ -2,11 +2,13 @@ package pbtypes import ( "fmt" + "strconv" "strings" "github.com/gogo/protobuf/jsonpb" "github.com/gogo/protobuf/proto" "github.com/gogo/protobuf/types" + "github.com/samber/lo" "github.com/anyproto/anytype-heart/pkg/lib/localstore/addr" "github.com/anyproto/anytype-heart/pkg/lib/pb/model" @@ -187,12 +189,24 @@ func GetStringList(s *types.Struct, name string) []string { return nil } - if v, ok := s.Fields[name]; !ok { - return nil - } else { + if v, ok := s.Fields[name]; ok { return GetStringListValue(v) - } + return nil +} + +func GetValueList(s *types.Struct, name string) []*types.Value { + if s == nil || s.Fields == nil { + return nil + } + + if v, ok := s.Fields[name]; ok { + if list, ok := v.Kind.(*types.Value_ListValue); ok { + return list.ListValue.Values + } + return []*types.Value{v} + } + return nil } // UpdateStringList updates a string list field using modifier function and returns updated value @@ -256,6 +270,16 @@ func GetStringListValue(v *types.Value) []string { return nil } +func GetList(v *types.Value) []*types.Value { + if v == nil { + return nil + } + if list, ok := v.Kind.(*types.Value_ListValue); ok { + return list.ListValue.Values + } + return []*types.Value{v} +} + func ListValueToStrings(list *types.ListValue) []string { if list == nil { return nil @@ -582,3 +606,54 @@ func RelationIdToKey(id string) (string, error) { return "", fmt.Errorf("incorrect id format") } + +// AddValue adds values to int lists and string lists +func AddValue(s *types.Struct, key string, v *types.Value) { + if IsStructEmpty(s) { + return + } + toAdd := GetList(v) + oldValues := GetValueList(s, key) + newValues := lo.UniqBy(append(oldValues, toAdd...), func(item *types.Value) string { + return getUniqueId(item) + }) + s.Fields[key] = &types.Value{ + Kind: &types.Value_ListValue{ListValue: &types.ListValue{Values: newValues}}, + } +} + +// RemoveValue removes values from int lists and string lists +func RemoveValue(s *types.Struct, key string, v *types.Value) { + if IsStructEmpty(s) { + return + } + value := Get(s, key) + if value == nil { + return + } + if value.Equal(v) { + delete(s.Fields, key) + return + } + values := GetList(value) + if len(values) == 0 { + return + } + toDelete := GetList(v) + uniqueIdsToDelete := []string{} + for _, valueToDelete := range toDelete { + uniqueIdsToDelete = append(uniqueIdsToDelete, getUniqueId(valueToDelete)) + } + newValues := lo.Filter(values, func(item *types.Value, _ int) bool { + return !lo.Contains(uniqueIdsToDelete, getUniqueId(item)) + }) + s.Fields[key] = &types.Value{ + Kind: &types.Value_ListValue{ListValue: &types.ListValue{Values: newValues}}, + } +} + +func getUniqueId(v *types.Value) string { + str := v.GetStringValue() + str = str + strconv.FormatFloat(v.GetNumberValue(), 'f', -1, 64) + return str +} diff --git a/util/pbtypes/pbtypes_test.go b/util/pbtypes/pbtypes_test.go index 1d05c3312..1fe6d0401 100644 --- a/util/pbtypes/pbtypes_test.go +++ b/util/pbtypes/pbtypes_test.go @@ -177,3 +177,62 @@ func TestIsEmptyValueOrAbsent(t *testing.T) { }) } } + +func TestAddRemoveValue(t *testing.T) { + newStruct := func() *types.Struct { + return &types.Struct{Fields: map[string]*types.Value{ + "tag": StringList([]string{"red", "black"}), + "author": String("William Shakespeare"), + "haters": StringList([]string{}), + "year": Int64(1564), + "numbers": IntList(8, 13, 21, 34), + }} + } + + for _, tc := range []struct { + name string + key string + s *types.Struct + toAdd *types.Value + expected *types.Value + }{ + {"string list + string list", "tag", newStruct(), StringList([]string{"blue", "green"}), StringList([]string{"red", "black", "blue", "green"})}, + {"string list + string list (intersect)", "tag", newStruct(), StringList([]string{"blue", "black"}), StringList([]string{"red", "black", "blue"})}, + {"string + string list", "author", newStruct(), StringList([]string{"Victor Hugo"}), StringList([]string{"William Shakespeare", "Victor Hugo"})}, + {"string list + string", "tag", newStruct(), String("orange"), StringList([]string{"red", "black", "orange"})}, + {"int list + int list", "numbers", newStruct(), IntList(55, 89), IntList(8, 13, 21, 34, 55, 89)}, + {"int list + int list (intersect)", "numbers", newStruct(), IntList(13, 8, 55), IntList(8, 13, 21, 34, 55)}, + {"int + int list", "year", newStruct(), IntList(1666, 2025), IntList(1564, 1666, 2025)}, + {"int list + int", "numbers", newStruct(), Int64(55), IntList(8, 13, 21, 34, 55)}, + {"string list + empty", "haters", newStruct(), StringList([]string{"Tomas River", "Leo Tolstoy"}), StringList([]string{"Tomas River", "Leo Tolstoy"})}, + {"string list + no such key", "plays", newStruct(), StringList([]string{"Falstaff", "Romeo and Juliet", "Macbeth"}), StringList([]string{"Falstaff", "Romeo and Juliet", "Macbeth"})}, + } { + t.Run(tc.name, func(t *testing.T) { + AddValue(tc.s, tc.key, tc.toAdd) + assert.True(t, Get(tc.s, tc.key).Equal(tc.expected)) + }) + } + + for _, tc := range []struct { + name string + key string + s *types.Struct + toRemove *types.Value + expected *types.Value + }{ + {"string list - string list", "tag", newStruct(), StringList([]string{"red", "black"}), nil}, + {"string list - string list (some are not presented)", "tag", newStruct(), StringList([]string{"blue", "black"}), StringList([]string{"red"})}, + {"string list - string", "tag", newStruct(), String("red"), StringList([]string{"black"})}, + {"string - string list", "author", newStruct(), StringList([]string{"William Shakespeare"}), StringList([]string{})}, + {"int list - int list", "numbers", newStruct(), IntList(13, 34), IntList(8, 21)}, + {"int list - int list (some are not presented)", "numbers", newStruct(), IntList(2020, 5), IntList(8, 13, 21, 34)}, + {"int - int list", "year", newStruct(), IntList(1380, 1564), IntList()}, + {"int list - int", "numbers", newStruct(), Int64(21), IntList(8, 13, 34)}, + {"empty - string list", "haters", newStruct(), StringList([]string{"Tomas River", "Leo Tolstoy"}), StringList([]string{})}, + } { + t.Run(tc.name, func(t *testing.T) { + RemoveValue(tc.s, tc.key, tc.toRemove) + assert.True(t, Get(tc.s, tc.key).Equal(tc.expected)) + }) + } +} From 7a9c15d1e4075e2064acc22379ba993f7b4c50a1 Mon Sep 17 00:00:00 2001 From: kirillston Date: Thu, 15 Aug 2024 16:05:28 +0300 Subject: [PATCH 30/78] GO-3811 Use camel case --- pb/commands.pb.go | 2260 +++++++++++++++++++------------------- pb/protos/commands.proto | 2 +- 2 files changed, 1131 insertions(+), 1131 deletions(-) diff --git a/pb/commands.pb.go b/pb/commands.pb.go index 9e4817fd1..d3bfe2fa7 100644 --- a/pb/commands.pb.go +++ b/pb/commands.pb.go @@ -26258,7 +26258,7 @@ type RpcObjectListModifyDetailValuesRequestOperation struct { // *RpcObjectListModifyDetailValuesRequestOperationOperationTypeOfAdd // *RpcObjectListModifyDetailValuesRequestOperationOperationTypeOfSet // *RpcObjectListModifyDetailValuesRequestOperationOperationTypeOfRemove - OperationType IsRpcObjectListModifyDetailValuesRequestOperationOperationType `protobuf_oneof:"operation_type"` + OperationType IsRpcObjectListModifyDetailValuesRequestOperationOperationType `protobuf_oneof:"operationType"` } func (m *RpcObjectListModifyDetailValuesRequestOperation) Reset() { @@ -66187,1135 +66187,1135 @@ func init() { func init() { proto.RegisterFile("pb/protos/commands.proto", fileDescriptor_8261c968b2e6f45c) } var fileDescriptor_8261c968b2e6f45c = []byte{ - // 18042 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0xfd, 0x7d, 0x9c, 0x24, 0x49, - 0x59, 0x2f, 0x8a, 0x4f, 0x55, 0x56, 0x55, 0x77, 0x47, 0xbf, 0x4c, 0x4d, 0xee, 0xcc, 0x6c, 0x6f, - 0xec, 0x32, 0xbb, 0xcc, 0x2e, 0xcb, 0xba, 0x2c, 0xbd, 0xcb, 0x2e, 0x08, 0xbb, 0xec, 0xb2, 0x5b, - 0x5d, 0x9d, 0xdd, 0x5d, 0x6c, 0x77, 0x55, 0x9b, 0x95, 0x3d, 0xc3, 0xea, 0xcf, 0x5f, 0x9d, 0x9c, - 0xaa, 0xe8, 0xee, 0xdc, 0xa9, 0xce, 0x2c, 0xb3, 0xb2, 0x7b, 0x66, 0xb8, 0x9f, 0x73, 0x8f, 0x88, - 0xc8, 0xfa, 0xc2, 0x41, 0x44, 0x8e, 0x02, 0x02, 0x02, 0x82, 0x07, 0x14, 0x90, 0x77, 0x41, 0x44, - 0x79, 0x59, 0x41, 0x44, 0x44, 0x10, 0x05, 0x94, 0x8f, 0x20, 0xe8, 0xc1, 0x73, 0x45, 0xaf, 0x7e, - 0x8e, 0x70, 0x50, 0xb8, 0xde, 0x4f, 0xbc, 0x64, 0x66, 0x44, 0x75, 0x65, 0x56, 0x64, 0x75, 0x65, - 0xf5, 0xa2, 0xf7, 0xbf, 0xcc, 0xc8, 0xc8, 0x88, 0x27, 0x9e, 0xef, 0xf3, 0x44, 0x3c, 0x11, 0xf1, - 0xc4, 0x13, 0x60, 0xbe, 0x73, 0xe1, 0xf6, 0x8e, 0xeb, 0x78, 0x4e, 0xf7, 0xf6, 0xa6, 0xb3, 0xbb, - 0x6b, 0xda, 0xad, 0xee, 0x02, 0x79, 0x57, 0x27, 0x4c, 0xfb, 0x8a, 0x77, 0xa5, 0x83, 0xe0, 0x4d, - 0x9d, 0x8b, 0xdb, 0xb7, 0xb7, 0xad, 0x0b, 0xb7, 0x77, 0x2e, 0xdc, 0xbe, 0xeb, 0xb4, 0x50, 0xdb, - 0xff, 0x81, 0xbc, 0xb0, 0xec, 0xf0, 0x96, 0xa8, 0x5c, 0x6d, 0xa7, 0x69, 0xb6, 0xbb, 0x9e, 0xe3, - 0x22, 0x96, 0xf3, 0x74, 0x58, 0x25, 0xda, 0x47, 0xb6, 0xe7, 0x97, 0x70, 0xdd, 0xb6, 0xe3, 0x6c, - 0xb7, 0x11, 0xfd, 0x76, 0x61, 0x6f, 0xeb, 0xf6, 0xae, 0xe7, 0xee, 0x35, 0x3d, 0xf6, 0xf5, 0x86, - 0xde, 0xaf, 0x2d, 0xd4, 0x6d, 0xba, 0x56, 0xc7, 0x73, 0x5c, 0x9a, 0xe3, 0xec, 0xdf, 0xfd, 0xe6, - 0x04, 0x50, 0xf4, 0x4e, 0x13, 0x7e, 0x73, 0x02, 0x28, 0xa5, 0x4e, 0x07, 0x3e, 0x9a, 0x05, 0x60, - 0x05, 0x79, 0xe7, 0x90, 0xdb, 0xb5, 0x1c, 0x1b, 0x1e, 0x07, 0x13, 0x3a, 0xfa, 0x91, 0x3d, 0xd4, - 0xf5, 0xee, 0xc9, 0x3d, 0xf2, 0x37, 0x4a, 0x06, 0xbe, 0x21, 0x0b, 0x26, 0x75, 0xd4, 0xed, 0x38, - 0x76, 0x17, 0xa9, 0x0f, 0x80, 0x3c, 0x72, 0x5d, 0xc7, 0x9d, 0xcf, 0xdc, 0x90, 0xb9, 0x65, 0xfa, - 0xce, 0x5b, 0x17, 0x58, 0xf3, 0x17, 0xf4, 0x4e, 0x73, 0xa1, 0xd4, 0xe9, 0x2c, 0x84, 0x25, 0x2d, - 0xf8, 0x3f, 0x2d, 0x68, 0xf8, 0x0f, 0x9d, 0xfe, 0xa8, 0xce, 0x83, 0x89, 0x7d, 0x9a, 0x61, 0x3e, - 0x7b, 0x43, 0xe6, 0x96, 0x29, 0xdd, 0x7f, 0xc5, 0x5f, 0x5a, 0xc8, 0x33, 0xad, 0x76, 0x77, 0x5e, - 0xa1, 0x5f, 0xd8, 0x2b, 0x7c, 0x5d, 0x06, 0xe4, 0x49, 0x21, 0x6a, 0x19, 0xe4, 0x9a, 0x4e, 0x0b, - 0x91, 0xea, 0xe7, 0xee, 0xbc, 0x5d, 0xbe, 0xfa, 0x85, 0xb2, 0xd3, 0x42, 0x3a, 0xf9, 0x59, 0xbd, - 0x01, 0x4c, 0xfb, 0x6c, 0x09, 0xc9, 0xe0, 0x93, 0xce, 0xde, 0x09, 0x72, 0x38, 0xbf, 0x3a, 0x09, - 0x72, 0xd5, 0xcd, 0xb5, 0xb5, 0xe2, 0x31, 0xf5, 0x04, 0x98, 0xdd, 0xac, 0x3e, 0x58, 0xad, 0x9d, - 0xaf, 0x36, 0x34, 0x5d, 0xaf, 0xe9, 0xc5, 0x8c, 0x3a, 0x0b, 0xa6, 0x16, 0x4b, 0x4b, 0x8d, 0x4a, - 0x75, 0x63, 0xd3, 0x28, 0x66, 0xe1, 0xab, 0x15, 0x30, 0x57, 0x47, 0xde, 0x12, 0xda, 0xb7, 0x9a, - 0xa8, 0xee, 0x99, 0x1e, 0x82, 0x2f, 0xce, 0x04, 0xcc, 0x54, 0x37, 0x71, 0xa5, 0xc1, 0x27, 0xd6, - 0x80, 0xbb, 0x0e, 0x34, 0x40, 0x2c, 0x61, 0x81, 0xfd, 0xbd, 0xc0, 0xa5, 0xe9, 0x7c, 0x39, 0x67, - 0x9f, 0x0c, 0xa6, 0xb9, 0x6f, 0xea, 0x1c, 0x00, 0x8b, 0xa5, 0xf2, 0x83, 0x2b, 0x7a, 0x6d, 0xb3, - 0xba, 0x54, 0x3c, 0x86, 0xdf, 0x97, 0x6b, 0xba, 0xc6, 0xde, 0x33, 0xf0, 0xdb, 0x19, 0x0e, 0xcc, - 0x25, 0x11, 0xcc, 0x85, 0xc1, 0xc4, 0xf4, 0x01, 0x14, 0xbe, 0x31, 0x00, 0x67, 0x45, 0x00, 0xe7, - 0xae, 0x64, 0xc5, 0xa5, 0x0f, 0xd0, 0x0b, 0xb2, 0x60, 0xb2, 0xbe, 0xb3, 0xe7, 0xb5, 0x9c, 0x4b, - 0x36, 0x9c, 0x0a, 0x90, 0x81, 0xdf, 0xe0, 0x79, 0xf2, 0x2c, 0x91, 0x27, 0xb7, 0x1c, 0x6c, 0x04, - 0x2b, 0x21, 0x82, 0x1b, 0xbf, 0x1c, 0x70, 0xa3, 0x24, 0x70, 0xe3, 0xc9, 0xb2, 0x05, 0xa5, 0xcf, - 0x87, 0x9f, 0xbd, 0x0b, 0xe4, 0xeb, 0x1d, 0xb3, 0x89, 0xe0, 0x27, 0x15, 0x30, 0xb3, 0x86, 0xcc, - 0x7d, 0x54, 0xea, 0x74, 0x5c, 0x67, 0x1f, 0xc1, 0x72, 0x28, 0xaf, 0xf3, 0x60, 0xa2, 0x8b, 0x33, - 0x55, 0x5a, 0xa4, 0x05, 0x53, 0xba, 0xff, 0xaa, 0x9e, 0x01, 0xc0, 0x6a, 0x21, 0xdb, 0xb3, 0x3c, - 0x0b, 0x75, 0xe7, 0xb3, 0x37, 0x28, 0xb7, 0x4c, 0xe9, 0x5c, 0x0a, 0xfc, 0x66, 0x56, 0x56, 0xc6, - 0x08, 0x15, 0x0b, 0x3c, 0x05, 0x11, 0x5c, 0x7d, 0x7d, 0x56, 0x46, 0xc6, 0x06, 0x16, 0x97, 0x8c, - 0xb7, 0x6f, 0xcd, 0x24, 0x67, 0x2e, 0xce, 0x51, 0xad, 0x35, 0xea, 0x9b, 0xe5, 0xd5, 0x46, 0x7d, - 0xa3, 0x54, 0xd6, 0x8a, 0x48, 0x3d, 0x09, 0x8a, 0xe4, 0xb1, 0x51, 0xa9, 0x37, 0x96, 0xb4, 0x35, - 0xcd, 0xd0, 0x96, 0x8a, 0x5b, 0xaa, 0x0a, 0xe6, 0x74, 0xed, 0x07, 0x36, 0xb5, 0xba, 0xd1, 0x58, - 0x2e, 0x55, 0xd6, 0xb4, 0xa5, 0xe2, 0x36, 0xfe, 0x79, 0xad, 0xb2, 0x5e, 0x31, 0x1a, 0xba, 0x56, - 0x2a, 0xaf, 0x6a, 0x4b, 0xc5, 0x1d, 0xf5, 0x6a, 0x70, 0x55, 0xb5, 0xd6, 0x28, 0x6d, 0x6c, 0xe8, - 0xb5, 0x73, 0x5a, 0x83, 0xfd, 0x51, 0x2f, 0x5a, 0xb4, 0x22, 0xa3, 0x51, 0x5f, 0x2d, 0xe9, 0x5a, - 0x69, 0x71, 0x4d, 0x2b, 0x3e, 0x0c, 0x9f, 0xaf, 0x80, 0xd9, 0x75, 0xf3, 0x22, 0xaa, 0xef, 0x98, - 0x2e, 0x32, 0x2f, 0xb4, 0x11, 0xbc, 0x51, 0x02, 0x4f, 0xf8, 0x49, 0x1e, 0x2f, 0x4d, 0xc4, 0xeb, - 0xf6, 0x3e, 0x0c, 0x16, 0xaa, 0x88, 0x00, 0xec, 0x7f, 0x07, 0x6a, 0xb0, 0x2a, 0x00, 0xf6, 0xd4, - 0x84, 0xe5, 0x25, 0x43, 0xec, 0xc7, 0x1e, 0x03, 0x88, 0xc1, 0x2f, 0x29, 0x60, 0xae, 0x62, 0xef, - 0x5b, 0x1e, 0x5a, 0x41, 0x36, 0x72, 0xf1, 0x38, 0x20, 0x05, 0xc3, 0x1b, 0x14, 0x0e, 0x86, 0x65, - 0x11, 0x86, 0x3b, 0xfa, 0xb0, 0x4d, 0xac, 0x23, 0x62, 0xb4, 0xbd, 0x0e, 0x4c, 0x59, 0x24, 0x5f, - 0xd9, 0x6a, 0x31, 0x8e, 0x85, 0x09, 0xea, 0x4d, 0x60, 0x96, 0xbe, 0x2c, 0x5b, 0x6d, 0xf4, 0x20, - 0xba, 0xc2, 0xc6, 0x5d, 0x31, 0x11, 0xfe, 0x4c, 0xa0, 0x7c, 0x15, 0x01, 0xcb, 0xa7, 0x25, 0x25, - 0x2a, 0x19, 0x98, 0x2f, 0x7b, 0x2c, 0xa8, 0xdf, 0x01, 0x2d, 0xb3, 0xe0, 0x77, 0xb3, 0x60, 0xba, - 0xee, 0x39, 0x1d, 0x2c, 0xb2, 0x96, 0xbd, 0x2d, 0x07, 0xee, 0xc7, 0x79, 0x1d, 0x2b, 0x8b, 0xe0, - 0x3e, 0xb9, 0x0f, 0x1f, 0xb9, 0x0a, 0x22, 0x34, 0xec, 0x9b, 0x81, 0x86, 0x2d, 0x0b, 0xa8, 0xdc, - 0x99, 0xa8, 0xb4, 0xef, 0x41, 0xfd, 0x7a, 0x99, 0x02, 0x8a, 0xbe, 0x98, 0x79, 0xe5, 0x3d, 0xd7, - 0x45, 0xb6, 0x27, 0x07, 0xc2, 0x9f, 0xf3, 0x20, 0xac, 0x8a, 0x20, 0xdc, 0x19, 0x23, 0xcc, 0x7e, - 0x2d, 0x29, 0xea, 0xd8, 0xef, 0x06, 0x68, 0x3e, 0x28, 0xa0, 0xf9, 0xf4, 0xe4, 0x64, 0x25, 0x83, - 0x74, 0x75, 0x08, 0x44, 0x4f, 0x82, 0x22, 0x1e, 0x93, 0xca, 0x46, 0xe5, 0x9c, 0xd6, 0xa8, 0x54, - 0xcf, 0x55, 0x0c, 0xad, 0x88, 0xe0, 0x4b, 0x15, 0x30, 0x43, 0x49, 0xd3, 0xd1, 0xbe, 0x73, 0x51, - 0xb2, 0xd7, 0xfb, 0x52, 0x42, 0x63, 0x81, 0xaf, 0x21, 0x42, 0x33, 0x7e, 0x2a, 0x81, 0xb1, 0x10, - 0x53, 0xdc, 0x63, 0xa9, 0xb7, 0x3a, 0xa0, 0x06, 0xdb, 0x7d, 0xb4, 0xa5, 0x6f, 0x6f, 0xf5, 0xb2, - 0x1c, 0x00, 0xb4, 0x91, 0xe7, 0x2c, 0x74, 0x09, 0xae, 0x87, 0x98, 0x08, 0x62, 0x9b, 0x19, 0x28, - 0xb6, 0xd9, 0x7e, 0x62, 0xfb, 0x5e, 0x7e, 0xcc, 0x5a, 0x14, 0xd1, 0xbb, 0x2d, 0x92, 0xdd, 0x98, - 0x92, 0xe8, 0xd9, 0xa1, 0x2f, 0x28, 0x59, 0xd1, 0xea, 0xbc, 0x0e, 0x4c, 0x91, 0xc7, 0xaa, 0xb9, - 0x8b, 0x98, 0x0e, 0x85, 0x09, 0xea, 0x59, 0x30, 0x43, 0x33, 0x36, 0x1d, 0x1b, 0xb7, 0x27, 0x47, - 0x32, 0x08, 0x69, 0x18, 0xc4, 0xa6, 0x8b, 0x4c, 0xcf, 0x71, 0x49, 0x19, 0x79, 0x0a, 0x22, 0x97, - 0x04, 0xbf, 0x1e, 0x68, 0xa1, 0x26, 0x48, 0xce, 0x53, 0x92, 0x34, 0x25, 0x99, 0xdc, 0xec, 0x0f, - 0xa7, 0x7f, 0x54, 0xeb, 0x1a, 0x18, 0xed, 0x65, 0x32, 0xb5, 0x43, 0xea, 0x69, 0xa0, 0xb2, 0x54, - 0x9c, 0xb7, 0x5c, 0xab, 0x1a, 0x5a, 0xd5, 0x28, 0x6e, 0xf5, 0x95, 0xa8, 0x6d, 0xf8, 0xfa, 0x1c, - 0xc8, 0x3d, 0xdb, 0xb1, 0x6c, 0xf8, 0x82, 0x8c, 0x20, 0x12, 0x36, 0xf2, 0x2e, 0x39, 0xee, 0xc5, - 0x40, 0x51, 0xc3, 0x84, 0x78, 0x6c, 0x42, 0x51, 0x52, 0x06, 0x8a, 0x52, 0xae, 0x9f, 0x28, 0xfd, - 0x1c, 0x2f, 0x4a, 0xf7, 0x8a, 0xa2, 0x74, 0x73, 0x1f, 0xfe, 0x63, 0xe2, 0x23, 0x3a, 0x80, 0x8f, - 0x05, 0x1d, 0xc0, 0xfd, 0x02, 0x8c, 0x4f, 0x92, 0x2b, 0x26, 0x19, 0x80, 0x5f, 0x4c, 0x55, 0xf1, - 0xfb, 0x41, 0xbd, 0x1d, 0x01, 0xf5, 0x4e, 0x9f, 0x3e, 0xc1, 0x3a, 0xd8, 0x75, 0x3c, 0x7c, 0xb0, - 0x9b, 0xb8, 0xa8, 0x9e, 0x02, 0x27, 0x96, 0x2a, 0xcb, 0xcb, 0x9a, 0xae, 0x55, 0x8d, 0x46, 0x55, - 0x33, 0xce, 0xd7, 0xf4, 0x07, 0x8b, 0x6d, 0xf8, 0x3a, 0x05, 0x00, 0xcc, 0xa1, 0xb2, 0x69, 0x37, - 0x51, 0x5b, 0xae, 0x47, 0xff, 0xfb, 0x6c, 0xb2, 0x3e, 0x21, 0x2c, 0x3f, 0x02, 0xce, 0x57, 0x65, - 0xe5, 0xb5, 0x32, 0xb2, 0xb0, 0x64, 0xa0, 0xbe, 0xf9, 0xb1, 0x60, 0x7b, 0x5e, 0x05, 0x8e, 0xfb, - 0xe5, 0xb1, 0xec, 0xfd, 0xa7, 0x7d, 0x6f, 0xcb, 0x81, 0x39, 0x06, 0x8b, 0x3f, 0x8f, 0x7f, 0x24, - 0x23, 0x33, 0x91, 0x87, 0x60, 0x92, 0x4d, 0xdb, 0xfd, 0xee, 0x3d, 0x78, 0x57, 0x57, 0xc0, 0x74, - 0x07, 0xb9, 0xbb, 0x56, 0xb7, 0x6b, 0x39, 0x36, 0x5d, 0x90, 0x9b, 0xbb, 0xf3, 0x09, 0x01, 0xc7, - 0xc9, 0xda, 0xe5, 0xc2, 0x86, 0xe9, 0x7a, 0x56, 0xd3, 0xea, 0x98, 0xb6, 0xb7, 0x11, 0x66, 0xd6, - 0xf9, 0x3f, 0xe1, 0x4b, 0x12, 0x4e, 0x6b, 0xc4, 0x96, 0x44, 0x88, 0xc4, 0x07, 0x12, 0x4c, 0x49, - 0x62, 0x0b, 0x4c, 0x26, 0x16, 0x8f, 0xa6, 0x2a, 0x16, 0x7d, 0xf0, 0xde, 0x56, 0xaf, 0x01, 0xa7, - 0x2a, 0xd5, 0x72, 0x4d, 0xd7, 0xb5, 0xb2, 0xd1, 0xd8, 0xd0, 0xf4, 0xf5, 0x4a, 0xbd, 0x5e, 0xa9, - 0x55, 0xeb, 0x87, 0xd1, 0x76, 0xf8, 0x09, 0x25, 0x90, 0x98, 0x25, 0xd4, 0x6c, 0x5b, 0x36, 0x82, - 0xf7, 0x1f, 0x52, 0x60, 0xc4, 0x55, 0x1f, 0x79, 0x9c, 0x59, 0xfd, 0x11, 0x38, 0xbf, 0x36, 0x39, - 0xce, 0xfd, 0x0b, 0xfc, 0x77, 0xac, 0xfe, 0x5f, 0x52, 0xc0, 0x09, 0x4e, 0x11, 0x75, 0xb4, 0x3b, - 0xb2, 0x95, 0xbc, 0x1f, 0xe3, 0x75, 0xb7, 0x22, 0x62, 0xda, 0xcf, 0x9a, 0x3e, 0x40, 0x46, 0x04, - 0xac, 0x6f, 0x0e, 0x60, 0x5d, 0x13, 0x60, 0x7d, 0xc6, 0x10, 0x65, 0x26, 0x43, 0xf6, 0x37, 0x52, - 0x45, 0xf6, 0x1a, 0x70, 0x6a, 0xa3, 0xa4, 0x1b, 0x95, 0x72, 0x65, 0xa3, 0x84, 0xc7, 0x51, 0x6e, - 0xc8, 0x8e, 0x30, 0xd7, 0x45, 0xd0, 0xfb, 0xe2, 0xfb, 0x3b, 0x39, 0x70, 0x5d, 0xff, 0x8e, 0xb6, - 0xbc, 0x63, 0xda, 0xdb, 0x08, 0x5a, 0x32, 0x50, 0x2f, 0x81, 0x89, 0x26, 0xc9, 0x4e, 0x71, 0xe6, - 0xb7, 0x6e, 0x62, 0xfa, 0x72, 0x5a, 0x83, 0xee, 0xff, 0x0a, 0xdf, 0xc9, 0x0b, 0x84, 0x21, 0x0a, - 0xc4, 0xb3, 0xe2, 0xc1, 0x3b, 0x40, 0x77, 0x84, 0x6c, 0x7c, 0x3a, 0x90, 0x8d, 0xf3, 0x82, 0x6c, - 0x94, 0x0f, 0x57, 0x7c, 0x32, 0x31, 0xf9, 0x83, 0xc7, 0x42, 0x07, 0x10, 0x29, 0x4d, 0x56, 0xf4, - 0xa8, 0xd0, 0xb7, 0xbb, 0x7f, 0x8d, 0x02, 0x0a, 0x4b, 0xa8, 0x8d, 0x64, 0x57, 0x22, 0xff, 0x21, - 0x2b, 0xbb, 0x21, 0x42, 0x61, 0xa0, 0x65, 0x47, 0xaf, 0x8e, 0x78, 0xd6, 0x2e, 0xea, 0x7a, 0xe6, - 0x6e, 0x87, 0xb0, 0x5a, 0xd1, 0xc3, 0x04, 0xf8, 0xe3, 0x59, 0x99, 0xed, 0x92, 0x98, 0x6a, 0xfe, - 0x7d, 0xac, 0x29, 0x7e, 0x75, 0x0e, 0x14, 0xce, 0x9b, 0xed, 0x36, 0xf2, 0xe0, 0xd7, 0xb2, 0xa0, - 0x50, 0xc6, 0x73, 0x52, 0x04, 0x9f, 0x14, 0x82, 0x05, 0xc1, 0xa4, 0xeb, 0x38, 0xde, 0x86, 0xe9, - 0xed, 0x30, 0xb4, 0x82, 0x77, 0xb6, 0x4d, 0xfb, 0xeb, 0x3c, 0x68, 0xf7, 0x8b, 0xa0, 0x7d, 0x9f, - 0xc0, 0x4d, 0x5a, 0xd1, 0x02, 0xad, 0x24, 0x02, 0x35, 0x08, 0x26, 0x77, 0x6d, 0xb4, 0xeb, 0xd8, - 0x56, 0xd3, 0x1f, 0xe9, 0xfd, 0x77, 0xf8, 0xe1, 0x60, 0x96, 0xbc, 0x28, 0x60, 0xb6, 0x20, 0x5d, - 0x4b, 0x32, 0xd0, 0xea, 0x43, 0x60, 0x76, 0x3d, 0xb8, 0x96, 0x42, 0xd0, 0x30, 0x6a, 0x8d, 0xb2, - 0xae, 0x95, 0x0c, 0xad, 0xb1, 0x56, 0x2b, 0x97, 0xd6, 0x1a, 0xba, 0xb6, 0x51, 0x2b, 0x22, 0xf8, - 0x3f, 0xb2, 0x98, 0xb9, 0x4d, 0x67, 0x1f, 0xb9, 0x70, 0x45, 0x8a, 0xcf, 0x71, 0x3c, 0x61, 0x18, - 0xfc, 0x9c, 0xf4, 0x56, 0x39, 0xe3, 0x0e, 0xa3, 0x20, 0xa2, 0x2b, 0xfc, 0x88, 0xd4, 0xb6, 0x77, - 0x6c, 0x51, 0x8f, 0x01, 0x4e, 0xff, 0xaf, 0x2c, 0x98, 0x28, 0x3b, 0xf6, 0x3e, 0x72, 0x3d, 0xde, - 0xca, 0xe4, 0xb9, 0x99, 0x11, 0xb9, 0x89, 0xbb, 0x26, 0x64, 0x7b, 0xae, 0xd3, 0xf1, 0xcd, 0x4c, - 0xff, 0x15, 0xfe, 0x6a, 0x52, 0x0e, 0xb3, 0x9a, 0xa3, 0x97, 0x9b, 0xfa, 0x57, 0x24, 0x90, 0xa7, - 0xf4, 0x28, 0xc0, 0xeb, 0x92, 0xe0, 0xd2, 0x9f, 0x80, 0xf4, 0x77, 0x79, 0xbf, 0xac, 0x80, 0x59, - 0xaa, 0x7c, 0x75, 0x44, 0xc6, 0x45, 0x58, 0xe3, 0x17, 0x7a, 0x7a, 0x98, 0xbf, 0x7a, 0x4c, 0x60, - 0x7f, 0xc1, 0xec, 0x74, 0x82, 0x45, 0xbf, 0xd5, 0x63, 0x3a, 0x7b, 0xa7, 0x62, 0xbe, 0x58, 0x00, - 0x39, 0x73, 0xcf, 0xdb, 0x81, 0xdf, 0x95, 0x36, 0xf9, 0x85, 0xce, 0x80, 0xd1, 0x13, 0x01, 0xc9, - 0x49, 0x90, 0xf7, 0x9c, 0x8b, 0xc8, 0xe7, 0x03, 0x7d, 0xc1, 0x70, 0x98, 0x9d, 0x8e, 0x41, 0x3e, - 0x30, 0x38, 0xfc, 0x77, 0x3c, 0xc2, 0x98, 0xcd, 0xa6, 0xb3, 0x67, 0x7b, 0x15, 0x7f, 0xe1, 0x2f, - 0x4c, 0x80, 0x9f, 0xcf, 0xc8, 0x4c, 0x21, 0x24, 0x08, 0x4c, 0x06, 0xd9, 0x85, 0x21, 0x54, 0x69, - 0x01, 0xdc, 0x5a, 0xda, 0xd8, 0x68, 0x18, 0xb5, 0x07, 0xb5, 0x6a, 0x38, 0xdc, 0x37, 0x2a, 0xd5, - 0x86, 0xb1, 0xaa, 0x35, 0xca, 0x9b, 0x3a, 0x59, 0x9d, 0x29, 0x95, 0xcb, 0xb5, 0xcd, 0xaa, 0x51, - 0x44, 0xf0, 0x2d, 0x59, 0x30, 0x53, 0x6e, 0x3b, 0xdd, 0x00, 0xe1, 0xeb, 0x43, 0x84, 0x03, 0x36, - 0x66, 0x38, 0x36, 0xc2, 0x7f, 0xcd, 0xc8, 0x6e, 0xf5, 0xfa, 0x0c, 0xe1, 0x8a, 0x8f, 0xe8, 0xa5, - 0x7e, 0x55, 0x6a, 0xab, 0x77, 0x70, 0x79, 0xe9, 0xab, 0xc4, 0x67, 0xef, 0x01, 0x13, 0x25, 0x2a, - 0x18, 0xf0, 0x2f, 0x33, 0xa0, 0x50, 0x76, 0xec, 0x2d, 0x6b, 0x5b, 0xbd, 0x19, 0xcc, 0x21, 0xdb, - 0xbc, 0xd0, 0x46, 0x4b, 0xa6, 0x67, 0xee, 0x5b, 0xe8, 0x12, 0x69, 0xc0, 0xa4, 0xde, 0x93, 0x8a, - 0x89, 0x62, 0x29, 0xe8, 0xc2, 0xde, 0x36, 0x21, 0x6a, 0x52, 0xe7, 0x93, 0xd4, 0x67, 0x80, 0xab, - 0xe9, 0xeb, 0x86, 0x8b, 0x5c, 0xd4, 0x46, 0x66, 0x17, 0x61, 0x63, 0xd4, 0x46, 0x6d, 0x22, 0xb4, - 0x93, 0x7a, 0xd4, 0x67, 0xf5, 0x2c, 0x98, 0xa1, 0x9f, 0x88, 0xa9, 0xd3, 0x25, 0x62, 0x3c, 0xa9, - 0x0b, 0x69, 0xea, 0x93, 0x41, 0x1e, 0x5d, 0xf6, 0x5c, 0x73, 0xbe, 0x45, 0xf0, 0xba, 0x7a, 0x81, - 0xfa, 0x7a, 0x2d, 0xf8, 0xbe, 0x5e, 0x0b, 0x75, 0xe2, 0x09, 0xa6, 0xd3, 0x5c, 0xf0, 0x97, 0x26, - 0x03, 0x43, 0xe2, 0xdf, 0xb2, 0xa1, 0x60, 0xa8, 0x20, 0x67, 0x9b, 0xbb, 0x88, 0xc9, 0x05, 0x79, - 0x56, 0x6f, 0x05, 0xc7, 0xcd, 0x7d, 0xd3, 0x33, 0xdd, 0x35, 0xa7, 0x69, 0xb6, 0xc9, 0xe0, 0xe7, - 0x6b, 0x7e, 0xef, 0x07, 0xb2, 0x0e, 0xef, 0x39, 0x2e, 0x22, 0xb9, 0xfc, 0x75, 0x78, 0x3f, 0x01, - 0x97, 0x6e, 0x35, 0x1d, 0x9b, 0xd0, 0xaf, 0xe8, 0xe4, 0x19, 0x73, 0xa5, 0x65, 0x75, 0x71, 0x43, - 0x48, 0x29, 0x55, 0xba, 0xa0, 0x5c, 0xbf, 0x62, 0x37, 0xc9, 0x1a, 0xfc, 0xa4, 0x1e, 0xf5, 0x59, - 0x5d, 0x04, 0xd3, 0x6c, 0xf9, 0x79, 0x1d, 0xcb, 0x55, 0x81, 0xc8, 0xd5, 0x0d, 0xa2, 0x27, 0x0d, - 0xc5, 0x73, 0xa1, 0x1a, 0xe6, 0xd3, 0xf9, 0x9f, 0xd4, 0x07, 0xc0, 0xb5, 0xec, 0xb5, 0xbc, 0xd7, - 0xf5, 0x9c, 0x5d, 0x0a, 0xfa, 0xb2, 0xd5, 0xa6, 0x2d, 0x98, 0x20, 0x2d, 0x88, 0xcb, 0xa2, 0xde, - 0x09, 0x4e, 0x76, 0x5c, 0xb4, 0x85, 0xdc, 0x87, 0xcc, 0xdd, 0xbd, 0xcb, 0x86, 0x6b, 0xda, 0xdd, - 0x8e, 0xe3, 0x7a, 0xf3, 0x93, 0x84, 0xf8, 0xbe, 0xdf, 0x58, 0x47, 0x39, 0x09, 0x0a, 0x94, 0x7d, - 0xf0, 0xc5, 0x79, 0x69, 0x27, 0x3a, 0xd6, 0xa0, 0x58, 0xf3, 0xec, 0x0e, 0x30, 0xc1, 0x7a, 0x38, - 0x02, 0xd4, 0xf4, 0x9d, 0xa7, 0x7b, 0x66, 0x73, 0xac, 0x14, 0xdd, 0xcf, 0xa6, 0xde, 0x05, 0x0a, - 0x4d, 0xd2, 0x2c, 0x82, 0xd9, 0xf4, 0x9d, 0xd7, 0xf6, 0xaf, 0x94, 0x64, 0xd1, 0x59, 0x56, 0xf8, - 0x05, 0x45, 0xca, 0xef, 0x2e, 0x8e, 0xe2, 0x64, 0x5a, 0xfd, 0xf5, 0xec, 0x10, 0xdd, 0xe6, 0x6d, - 0xe0, 0x16, 0xd6, 0x27, 0x32, 0xfb, 0x63, 0xa9, 0xb1, 0xb8, 0xe9, 0x9b, 0xe0, 0xd8, 0x2a, 0xa9, - 0x1b, 0x25, 0x1d, 0xcf, 0x9f, 0x96, 0xb0, 0xe9, 0x7e, 0x2b, 0xb8, 0x79, 0x40, 0x6e, 0xcd, 0x68, - 0x54, 0x4b, 0xeb, 0x5a, 0x71, 0x4b, 0xb4, 0x6d, 0xea, 0x46, 0x6d, 0xa3, 0xa1, 0x6f, 0x56, 0xab, - 0x95, 0xea, 0x0a, 0x2d, 0x0c, 0x9b, 0x84, 0xa7, 0xc3, 0x0c, 0xe7, 0xf5, 0x8a, 0xa1, 0x35, 0xca, - 0xb5, 0xea, 0x72, 0x65, 0xa5, 0x68, 0x0d, 0x32, 0x8c, 0x1e, 0x56, 0x6f, 0x00, 0xd7, 0x09, 0x94, - 0x54, 0x6a, 0x55, 0x3c, 0x9f, 0x28, 0x97, 0xaa, 0x65, 0x0d, 0x4f, 0x1e, 0x2e, 0xaa, 0x10, 0x9c, - 0xa2, 0xc5, 0x35, 0x96, 0x2b, 0x6b, 0xfc, 0x16, 0xc0, 0xc7, 0x33, 0xea, 0x3c, 0xb8, 0x8a, 0xff, - 0x56, 0xa9, 0x9e, 0x2b, 0xad, 0x55, 0x96, 0x8a, 0xbf, 0x9f, 0x51, 0x6f, 0x02, 0xd7, 0x0b, 0x7f, - 0xd1, 0xd5, 0xfc, 0x46, 0x65, 0xa9, 0xb1, 0x5e, 0xa9, 0xaf, 0x97, 0x8c, 0xf2, 0x6a, 0xf1, 0x13, - 0x64, 0xbe, 0x10, 0x18, 0xc0, 0x9c, 0x33, 0xdc, 0xcb, 0xf8, 0x31, 0xbd, 0x24, 0x0a, 0xea, 0x93, - 0xfa, 0xc2, 0x1e, 0x6f, 0xc3, 0x3e, 0x1a, 0x8c, 0x0e, 0x4b, 0x82, 0x08, 0xdd, 0x91, 0xa0, 0xac, - 0x64, 0x32, 0x64, 0x0c, 0x21, 0x42, 0x37, 0x80, 0xeb, 0xaa, 0x1a, 0x45, 0x4a, 0xd7, 0xca, 0xb5, - 0x73, 0x9a, 0xde, 0x38, 0x5f, 0x5a, 0x5b, 0xd3, 0x8c, 0xc6, 0x72, 0x45, 0xaf, 0x1b, 0xc5, 0x2d, - 0xf8, 0xcf, 0xd9, 0x60, 0x0e, 0xcd, 0x71, 0xeb, 0x2f, 0xb3, 0x49, 0xd5, 0x3a, 0x76, 0xae, 0xfc, - 0x34, 0x50, 0xe8, 0x7a, 0xa6, 0xb7, 0xd7, 0x65, 0x5a, 0xfd, 0xb8, 0xfe, 0x5a, 0xbd, 0x50, 0x27, - 0x99, 0x74, 0x96, 0x19, 0x7e, 0x21, 0x93, 0x44, 0x4d, 0x47, 0x30, 0x8d, 0xb6, 0x86, 0x60, 0xf1, - 0x19, 0x00, 0x7d, 0x69, 0xaf, 0xd4, 0x1b, 0xa5, 0x35, 0x5d, 0x2b, 0x2d, 0x3d, 0x14, 0x4c, 0x9e, - 0x91, 0x7a, 0x0a, 0x9c, 0xd8, 0xac, 0xe2, 0xe9, 0x30, 0x51, 0x97, 0x5a, 0xb5, 0xaa, 0x95, 0x31, - 0xdf, 0x7f, 0x9c, 0x2c, 0x55, 0x63, 0x0b, 0x9a, 0xd0, 0x8d, 0xad, 0x1c, 0x8e, 0xff, 0x7f, 0x23, - 0xed, 0xd1, 0x11, 0x4a, 0x18, 0x5f, 0xd6, 0x68, 0x71, 0xf8, 0xbc, 0x94, 0x13, 0x87, 0x14, 0x25, - 0xc9, 0xf0, 0xf8, 0x4f, 0x43, 0xe0, 0x71, 0x0a, 0x9c, 0xe0, 0xf1, 0x20, 0xce, 0x1c, 0xd1, 0x30, - 0x7c, 0x65, 0x12, 0x14, 0xea, 0xa8, 0x8d, 0x9a, 0x1e, 0x7c, 0x1b, 0x67, 0x4c, 0xcc, 0x81, 0x6c, - 0xe0, 0x3c, 0x90, 0xb5, 0x5a, 0xc2, 0xf4, 0x39, 0xdb, 0x33, 0x7d, 0x8e, 0x31, 0x03, 0x94, 0x44, - 0x66, 0x40, 0x2e, 0x05, 0x33, 0x20, 0x3f, 0xbc, 0x19, 0x50, 0x18, 0x64, 0x06, 0xc0, 0x5f, 0x29, - 0x24, 0xed, 0x25, 0x28, 0xab, 0x8f, 0x76, 0xf0, 0xff, 0xfb, 0x5c, 0x92, 0x5e, 0xa5, 0x2f, 0xc5, - 0xc9, 0xa4, 0xf8, 0xbb, 0x4a, 0x0a, 0xcb, 0x0f, 0xea, 0x8d, 0xe0, 0xfa, 0xf0, 0xbd, 0xa1, 0x3d, - 0xa7, 0x52, 0x37, 0xea, 0x64, 0xc4, 0x2f, 0xd7, 0x74, 0x7d, 0x73, 0x83, 0xae, 0xdc, 0x9d, 0x06, - 0x6a, 0x58, 0x8a, 0xbe, 0x59, 0xa5, 0xe3, 0xfb, 0xb6, 0x58, 0xfa, 0x72, 0xa5, 0xba, 0xd4, 0x08, - 0x74, 0xa6, 0xba, 0x5c, 0x2b, 0xee, 0xe0, 0x29, 0x1b, 0x57, 0x3a, 0x1e, 0xa0, 0x59, 0x0d, 0xa5, - 0xea, 0x52, 0x63, 0xbd, 0xaa, 0xad, 0xd7, 0xaa, 0x95, 0x32, 0x49, 0xaf, 0x6b, 0x46, 0xd1, 0xc2, - 0x03, 0x4d, 0x8f, 0x45, 0x51, 0xd7, 0x4a, 0x7a, 0x79, 0x55, 0xd3, 0x69, 0x95, 0x0f, 0xab, 0x37, - 0x83, 0xb3, 0xa5, 0x6a, 0xcd, 0xc0, 0x29, 0xa5, 0xea, 0x43, 0xc6, 0x43, 0x1b, 0x5a, 0x63, 0x43, - 0xaf, 0x95, 0xb5, 0x7a, 0x1d, 0xeb, 0x29, 0xb3, 0x3f, 0x8a, 0x6d, 0xf5, 0x59, 0xe0, 0x1e, 0x8e, - 0x34, 0xcd, 0x20, 0xdb, 0x44, 0xeb, 0x35, 0xe2, 0x29, 0xb0, 0xa4, 0x35, 0x56, 0x4b, 0xf5, 0x46, - 0xa5, 0x5a, 0xae, 0xad, 0x6f, 0x94, 0x8c, 0x0a, 0x56, 0xe7, 0x0d, 0xbd, 0x66, 0xd4, 0x1a, 0xe7, - 0x34, 0xbd, 0x5e, 0xa9, 0x55, 0x8b, 0x36, 0x6e, 0x32, 0xa7, 0xff, 0x7e, 0x3f, 0xec, 0xa8, 0xd7, - 0x81, 0x79, 0x3f, 0x7d, 0xad, 0x86, 0x19, 0xcd, 0x59, 0x24, 0x9d, 0x54, 0x2d, 0x92, 0x7f, 0xc9, - 0x82, 0x5c, 0xdd, 0x73, 0x3a, 0xf0, 0xfb, 0xc2, 0x0e, 0xe6, 0x0c, 0x00, 0x2e, 0xd9, 0xf5, 0xc1, - 0xb3, 0x30, 0x36, 0x2f, 0xe3, 0x52, 0xe0, 0xef, 0x49, 0x2f, 0x55, 0x87, 0x7d, 0xb6, 0xd3, 0x89, - 0xb0, 0x55, 0xbe, 0x2d, 0xe7, 0xbb, 0x1f, 0x5d, 0x50, 0x32, 0x79, 0xff, 0xa9, 0x61, 0x16, 0xa3, - 0x21, 0x38, 0xcd, 0xc1, 0x86, 0xf9, 0xef, 0x8b, 0x04, 0x52, 0xaf, 0x06, 0x57, 0xf5, 0x08, 0x17, - 0x91, 0xa9, 0x2d, 0xf5, 0xf1, 0xe0, 0x71, 0x9c, 0x78, 0x6b, 0xeb, 0xb5, 0x73, 0x5a, 0x20, 0xc8, - 0x4b, 0x25, 0xa3, 0x54, 0xdc, 0x86, 0x9f, 0x55, 0x40, 0x6e, 0xdd, 0xd9, 0xef, 0xdd, 0x21, 0xb0, - 0xd1, 0x25, 0x6e, 0x2d, 0xd4, 0x7f, 0x15, 0x7d, 0x95, 0xa5, 0xd8, 0xbe, 0x1e, 0xbd, 0x1b, 0xf8, - 0xf9, 0x6c, 0x12, 0xb6, 0xaf, 0x1f, 0x76, 0x0b, 0xf0, 0x6f, 0x87, 0x61, 0x7b, 0x04, 0x6b, 0x91, - 0x7a, 0x16, 0x9c, 0x09, 0x3f, 0x54, 0x96, 0xb4, 0xaa, 0x51, 0x59, 0x7e, 0x28, 0x64, 0x6e, 0x45, - 0x97, 0x62, 0xff, 0xa0, 0x6e, 0x2c, 0x7e, 0xa6, 0x31, 0x0f, 0x4e, 0x86, 0xdf, 0x56, 0x34, 0xc3, - 0xff, 0xf2, 0x30, 0x7c, 0x41, 0x1e, 0xcc, 0xd0, 0x6e, 0x7d, 0xb3, 0xd3, 0x32, 0x3d, 0x04, 0xef, - 0x0a, 0xd1, 0xbd, 0x05, 0x1c, 0xaf, 0x6c, 0x2c, 0xd7, 0xeb, 0x9e, 0xe3, 0x9a, 0xdb, 0xa8, 0xd4, - 0x6a, 0xb9, 0x8c, 0x5b, 0xbd, 0xc9, 0xf0, 0xdd, 0xd2, 0xeb, 0x7c, 0xe2, 0x50, 0x42, 0xeb, 0x8c, - 0x40, 0xfd, 0xcb, 0x52, 0xeb, 0x72, 0x12, 0x05, 0x26, 0x43, 0xff, 0xe1, 0x11, 0xeb, 0x5c, 0x34, - 0x2e, 0x5b, 0x67, 0x5f, 0x98, 0x05, 0x53, 0x86, 0xb5, 0x8b, 0x9e, 0xeb, 0xd8, 0xa8, 0xab, 0x4e, - 0x00, 0x65, 0x65, 0xdd, 0x28, 0x1e, 0xc3, 0x0f, 0xd8, 0xa8, 0xca, 0x90, 0x07, 0x0d, 0x57, 0x80, - 0x1f, 0x4a, 0x46, 0x51, 0xc1, 0x0f, 0xeb, 0x9a, 0x51, 0xcc, 0xe1, 0x87, 0xaa, 0x66, 0x14, 0xf3, - 0xf8, 0x61, 0x63, 0xcd, 0x28, 0x16, 0xf0, 0x43, 0xa5, 0x6e, 0x14, 0x27, 0xf0, 0xc3, 0x62, 0xdd, - 0x28, 0x4e, 0xe2, 0x87, 0x73, 0x75, 0xa3, 0x38, 0x85, 0x1f, 0xca, 0x86, 0x51, 0x04, 0xf8, 0xe1, - 0xd9, 0x75, 0xa3, 0x38, 0x8d, 0x1f, 0x4a, 0x65, 0xa3, 0x38, 0x43, 0x1e, 0x34, 0xa3, 0x38, 0x8b, - 0x1f, 0xea, 0x75, 0xa3, 0x38, 0x47, 0x4a, 0xae, 0x1b, 0xc5, 0xe3, 0xa4, 0xae, 0x8a, 0x51, 0x2c, - 0xe2, 0x87, 0xd5, 0xba, 0x51, 0x3c, 0x41, 0x32, 0xd7, 0x8d, 0xa2, 0x4a, 0x2a, 0xad, 0x1b, 0xc5, - 0xab, 0x48, 0x9e, 0xba, 0x51, 0x3c, 0x49, 0xaa, 0xa8, 0x1b, 0xc5, 0x53, 0x84, 0x0c, 0xcd, 0x28, - 0x9e, 0x26, 0x79, 0x74, 0xa3, 0x78, 0x35, 0xf9, 0x54, 0x35, 0x8a, 0xf3, 0x84, 0x30, 0xcd, 0x28, - 0x5e, 0x43, 0x1e, 0x74, 0xa3, 0x08, 0xc9, 0xa7, 0x92, 0x51, 0xbc, 0x16, 0x3e, 0x0e, 0x4c, 0xad, - 0x20, 0x8f, 0x82, 0x08, 0x8b, 0x40, 0x59, 0x41, 0x1e, 0x6f, 0xc6, 0x7f, 0x55, 0x01, 0x57, 0xb3, - 0xa9, 0xdf, 0xb2, 0xeb, 0xec, 0xae, 0xa1, 0x6d, 0xb3, 0x79, 0x45, 0xbb, 0x8c, 0x4d, 0x28, 0x58, - 0x17, 0x96, 0xae, 0x3a, 0x61, 0x67, 0x44, 0x9e, 0x63, 0x2d, 0x4e, 0x7f, 0x31, 0x4a, 0x09, 0x17, - 0xa3, 0x98, 0x45, 0xf6, 0x4f, 0xbc, 0x44, 0x0b, 0xeb, 0xc7, 0x99, 0x9e, 0xf5, 0x63, 0xac, 0x26, - 0x1d, 0xe4, 0x76, 0x1d, 0xdb, 0x6c, 0xd7, 0xd9, 0x76, 0x29, 0x5d, 0xf5, 0xea, 0x4d, 0x56, 0x7f, - 0xc0, 0xd7, 0x0c, 0x6a, 0x95, 0x3d, 0x33, 0x6e, 0x86, 0xdb, 0xdb, 0xcc, 0x08, 0x25, 0xf9, 0x44, - 0xa0, 0x24, 0x86, 0xa0, 0x24, 0x0f, 0x1c, 0xa2, 0xec, 0x64, 0xfa, 0x52, 0x19, 0x6e, 0x6a, 0x11, - 0x3a, 0x13, 0xfa, 0xcb, 0xd5, 0x0a, 0xfc, 0x6c, 0x16, 0x9c, 0xd6, 0xec, 0x7e, 0x16, 0x3e, 0x2f, - 0x0b, 0x6f, 0xe1, 0xa1, 0xd9, 0x10, 0x59, 0x7a, 0x4f, 0xdf, 0x66, 0xf7, 0x2f, 0x33, 0x82, 0xa3, - 0x9f, 0x0a, 0x38, 0x5a, 0x17, 0x38, 0x7a, 0xff, 0xf0, 0x45, 0x27, 0x63, 0x68, 0x75, 0xa4, 0x1d, - 0x50, 0x0e, 0x7e, 0x3d, 0x07, 0x1e, 0x47, 0x3d, 0x1e, 0x18, 0x85, 0x54, 0xcb, 0x4a, 0x76, 0x4b, - 0x47, 0x5d, 0xcf, 0x74, 0x3d, 0xe1, 0x14, 0x6a, 0xcf, 0x54, 0x2a, 0x93, 0xc2, 0x54, 0x2a, 0x3b, - 0x70, 0x2a, 0x05, 0xdf, 0xc5, 0x9b, 0x0f, 0xe7, 0x45, 0x8c, 0x4b, 0xfd, 0xfb, 0xff, 0xb8, 0x16, - 0x46, 0x41, 0x1d, 0xd8, 0x15, 0x3f, 0x28, 0x40, 0xbd, 0x7c, 0xe8, 0x1a, 0x92, 0x21, 0xfe, 0x7b, - 0xa3, 0xb5, 0xf3, 0x72, 0xfc, 0x37, 0xd1, 0x28, 0x29, 0xb6, 0x52, 0x35, 0xd0, 0x3f, 0x3d, 0x01, - 0xa6, 0x88, 0x2e, 0xac, 0x59, 0xf6, 0x45, 0xf8, 0x3a, 0x05, 0xcc, 0x54, 0xd1, 0xa5, 0xf2, 0x8e, - 0xd9, 0x6e, 0x23, 0x7b, 0x1b, 0xf1, 0x66, 0xfb, 0x3c, 0x98, 0x30, 0x3b, 0x9d, 0x6a, 0xb8, 0xcf, - 0xe0, 0xbf, 0xb2, 0xfe, 0xf7, 0x6f, 0xfa, 0x2a, 0x79, 0x26, 0x46, 0xc9, 0x83, 0x7a, 0x17, 0xf8, - 0x3a, 0x23, 0x66, 0xc8, 0x37, 0x80, 0xe9, 0xa6, 0x9f, 0x25, 0xf0, 0x56, 0xe7, 0x93, 0xe0, 0x5f, - 0x27, 0xea, 0x06, 0xa4, 0x2a, 0x4f, 0x26, 0x14, 0x68, 0xc4, 0x76, 0xc8, 0x29, 0x70, 0xc2, 0xa8, - 0xd5, 0x1a, 0xeb, 0xa5, 0xea, 0x43, 0xe1, 0x29, 0xd1, 0x2d, 0xf8, 0xaa, 0x1c, 0x98, 0xab, 0x3b, - 0xed, 0x7d, 0x14, 0xc2, 0x54, 0x09, 0x61, 0xea, 0xe1, 0x53, 0xe6, 0x00, 0x9f, 0xd4, 0xd3, 0xa0, - 0x60, 0xda, 0xdd, 0x4b, 0xc8, 0xb7, 0x0d, 0xd9, 0x1b, 0x83, 0xf1, 0x77, 0x78, 0x3d, 0xd6, 0x45, - 0x18, 0xef, 0x1d, 0xc0, 0x49, 0x91, 0xaa, 0x08, 0x20, 0xcf, 0x82, 0x99, 0x2e, 0xdd, 0x2c, 0x34, - 0xb8, 0x3d, 0x61, 0x21, 0x8d, 0x90, 0x48, 0x77, 0xab, 0x15, 0x46, 0x22, 0x79, 0x83, 0xaf, 0x0b, - 0xd4, 0x7f, 0x53, 0x80, 0xb8, 0x74, 0x18, 0xc2, 0x92, 0x81, 0xfc, 0x9a, 0x51, 0xcf, 0xf0, 0xe6, - 0xc1, 0x49, 0xa6, 0xb5, 0x8d, 0xf2, 0x6a, 0x69, 0x6d, 0x4d, 0xab, 0xae, 0x68, 0x8d, 0xca, 0x12, - 0xdd, 0xaa, 0x08, 0x53, 0x4a, 0x86, 0xa1, 0xad, 0x6f, 0x18, 0xf5, 0x86, 0xf6, 0x9c, 0xb2, 0xa6, - 0x2d, 0x11, 0x47, 0x24, 0x72, 0x92, 0xc0, 0x77, 0x19, 0x2b, 0x55, 0xeb, 0xe7, 0x35, 0xbd, 0xb8, - 0x73, 0xb6, 0x04, 0xa6, 0xb9, 0x7e, 0x1e, 0x53, 0xb7, 0x84, 0xb6, 0xcc, 0xbd, 0x36, 0xb3, 0xd5, - 0x8a, 0xc7, 0x30, 0x75, 0x84, 0x37, 0x35, 0xbb, 0x7d, 0xa5, 0x98, 0x51, 0x8b, 0x60, 0x86, 0xef, - 0xd2, 0x8b, 0x59, 0xf8, 0xed, 0x6b, 0xc1, 0xd4, 0x79, 0xc7, 0xbd, 0x48, 0xbc, 0xc7, 0xe0, 0xfb, - 0x68, 0x34, 0x09, 0xff, 0x5c, 0x1e, 0x37, 0xb0, 0xbf, 0x46, 0xde, 0x5b, 0xc0, 0x2f, 0x6d, 0x61, - 0xe0, 0xd9, 0xbb, 0x1b, 0xc0, 0xf4, 0x25, 0x3f, 0x77, 0xa8, 0xe9, 0x5c, 0x12, 0xfc, 0xef, 0x72, - 0xfb, 0xff, 0x83, 0xab, 0x4c, 0x7f, 0x7f, 0xfa, 0x6d, 0x59, 0x50, 0x58, 0x41, 0x5e, 0xa9, 0xdd, - 0xe6, 0xf9, 0xf6, 0x72, 0xe9, 0xf3, 0x14, 0x42, 0x23, 0x4a, 0xed, 0x76, 0xb4, 0x52, 0x71, 0x0c, - 0xf2, 0xfd, 0x7e, 0x85, 0x34, 0xf8, 0x2b, 0x52, 0x27, 0xa1, 0x06, 0x54, 0x98, 0x3e, 0xc7, 0xde, - 0xa8, 0x04, 0x7b, 0xdc, 0x3f, 0xc9, 0x59, 0x39, 0x4f, 0x09, 0x23, 0x89, 0x64, 0xe2, 0xf7, 0xca, - 0xfd, 0x7c, 0xea, 0x83, 0x60, 0x62, 0xaf, 0x8b, 0xca, 0x66, 0x17, 0x11, 0xda, 0x7a, 0x5b, 0x5a, - 0xbb, 0xf0, 0x30, 0x6a, 0x7a, 0x0b, 0x95, 0x5d, 0x6c, 0x50, 0x6f, 0xd2, 0x8c, 0x41, 0x70, 0x0e, - 0xf6, 0xae, 0xfb, 0x25, 0xc0, 0x17, 0x0f, 0x01, 0x59, 0xec, 0x7e, 0x6f, 0xe4, 0xd1, 0xab, 0xc4, - 0x40, 0x8d, 0x60, 0x93, 0x76, 0x18, 0xa0, 0x3e, 0x9d, 0x05, 0xb9, 0x5a, 0x07, 0xd9, 0x72, 0x0e, - 0xa8, 0xaf, 0x93, 0xf7, 0xf2, 0x0a, 0x1a, 0x86, 0x4b, 0x8f, 0xe0, 0xde, 0xed, 0x20, 0x67, 0xd9, - 0x5b, 0x0e, 0x33, 0x30, 0xaf, 0x8d, 0xd8, 0xcc, 0xa9, 0xd8, 0x5b, 0x8e, 0x4e, 0x32, 0xca, 0x3a, - 0x78, 0xc5, 0xd5, 0x9d, 0x3e, 0x4b, 0xbf, 0x31, 0x09, 0x0a, 0x54, 0x2c, 0xe1, 0xcb, 0x14, 0xa0, - 0x94, 0x5a, 0xad, 0x88, 0x43, 0x1c, 0xd9, 0x03, 0x87, 0x38, 0x1c, 0xf2, 0x5b, 0xc0, 0xf7, 0xe0, - 0x5d, 0x0c, 0x05, 0x21, 0xd9, 0x47, 0x33, 0xd5, 0x28, 0xb5, 0x5a, 0xd1, 0xbe, 0xa4, 0x41, 0x85, - 0x59, 0xb1, 0x42, 0x5e, 0x53, 0x15, 0x39, 0x4d, 0x4d, 0xdc, 0xa1, 0x47, 0xd2, 0x97, 0x3e, 0x44, - 0xff, 0x94, 0x05, 0x13, 0x6b, 0x56, 0xd7, 0xc3, 0xd8, 0x94, 0x64, 0xb0, 0xb9, 0x0e, 0x4c, 0xf9, - 0xac, 0xc1, 0x5d, 0x17, 0xee, 0x97, 0xc3, 0x04, 0xf8, 0x7a, 0x1e, 0x9d, 0x67, 0x8b, 0xe8, 0x3c, - 0x35, 0xbe, 0xf5, 0x8c, 0x8a, 0x68, 0x1f, 0xed, 0xb0, 0xda, 0x6c, 0x6f, 0xb5, 0xbf, 0x1e, 0x30, - 0x7c, 0x5d, 0x60, 0xf8, 0xdd, 0xc3, 0x54, 0x99, 0x3e, 0xd3, 0x3f, 0x97, 0x05, 0x00, 0xd7, 0xcd, - 0x0e, 0xc2, 0x3c, 0x51, 0x38, 0xde, 0x1a, 0xc3, 0xdd, 0x57, 0xf1, 0xdc, 0x5d, 0x17, 0xb9, 0xfb, - 0xf4, 0xc1, 0x4d, 0x8d, 0x3b, 0xf0, 0xa2, 0x16, 0x81, 0x62, 0x05, 0xac, 0xc5, 0x8f, 0xf0, 0x6d, - 0x01, 0x53, 0x37, 0x04, 0xa6, 0xde, 0x3b, 0x64, 0x4d, 0xe9, 0xf3, 0xf5, 0xcf, 0xb3, 0x60, 0xa2, - 0x8e, 0x3c, 0xdc, 0x4d, 0xc2, 0x73, 0x32, 0x47, 0x4e, 0x38, 0xdd, 0xce, 0x4a, 0xea, 0xf6, 0xb7, - 0x32, 0xb2, 0x61, 0x32, 0x42, 0xce, 0x30, 0x9a, 0x22, 0x16, 0x01, 0xde, 0x20, 0x15, 0x26, 0x63, - 0x50, 0x69, 0xe9, 0x73, 0xf7, 0x2d, 0xd9, 0x60, 0x83, 0xfd, 0x49, 0xc2, 0x04, 0x8d, 0x37, 0x6f, - 0x33, 0x07, 0xcd, 0xdb, 0x7f, 0xce, 0x24, 0x37, 0x35, 0xe2, 0x76, 0x97, 0x13, 0x1b, 0x14, 0x23, - 0xd8, 0xf8, 0x1d, 0x86, 0x5f, 0xcf, 0x57, 0x40, 0x81, 0xad, 0x10, 0xdf, 0x1f, 0xbf, 0x42, 0x3c, - 0x78, 0x8a, 0xf0, 0xde, 0x21, 0xcc, 0xb5, 0xb8, 0x65, 0xdb, 0x80, 0x8c, 0x2c, 0x47, 0xc6, 0x6d, - 0x20, 0x4f, 0xe2, 0xf8, 0xb1, 0x71, 0x2e, 0xdc, 0xb3, 0xf7, 0x8b, 0xd0, 0xf0, 0x57, 0x9d, 0x66, - 0x4a, 0x8c, 0xc2, 0x08, 0x56, 0x7a, 0x87, 0x41, 0xe1, 0x95, 0x1f, 0xcd, 0x04, 0x46, 0xc8, 0x7b, - 0x73, 0xcc, 0xc4, 0xfb, 0x98, 0x18, 0x51, 0xa0, 0xe9, 0xd8, 0x1e, 0xba, 0xcc, 0xad, 0xad, 0x07, - 0x09, 0xb1, 0x96, 0xc1, 0x3c, 0x98, 0xf0, 0x5c, 0x7e, 0xbd, 0xdd, 0x7f, 0xe5, 0x7b, 0x9c, 0xbc, - 0xd8, 0xe3, 0x54, 0xc1, 0x59, 0xcb, 0x6e, 0xb6, 0xf7, 0x5a, 0x48, 0x47, 0x6d, 0x13, 0xb7, 0xaa, - 0x5b, 0xea, 0x2e, 0xa1, 0x0e, 0xb2, 0x5b, 0xc8, 0xf6, 0x28, 0x9d, 0xbe, 0x6f, 0xad, 0x44, 0x4e, - 0xf8, 0x35, 0x5e, 0x30, 0xee, 0x13, 0x05, 0xe3, 0x89, 0xfd, 0xe6, 0x07, 0x31, 0x46, 0xe8, 0xdd, - 0x00, 0xd0, 0xb6, 0x9d, 0xb3, 0xd0, 0x25, 0xd6, 0x21, 0x5e, 0xd3, 0x63, 0x8a, 0xd6, 0x82, 0x0c, - 0x3a, 0x97, 0x19, 0x7e, 0x29, 0x10, 0x86, 0x07, 0x04, 0x61, 0xb8, 0x4d, 0x92, 0x84, 0x64, 0x72, - 0xd0, 0x19, 0x62, 0xcd, 0x62, 0x16, 0x4c, 0x85, 0x2b, 0x8d, 0x8a, 0x7a, 0x0d, 0x38, 0xe5, 0xfb, - 0x2e, 0x54, 0x35, 0x6d, 0xa9, 0xde, 0xd8, 0xdc, 0x58, 0xd1, 0x4b, 0x4b, 0x5a, 0x11, 0xa8, 0x2a, - 0x98, 0xab, 0x2d, 0x3e, 0x5b, 0x2b, 0x1b, 0x81, 0xcb, 0x41, 0x0e, 0xfe, 0x69, 0x16, 0xe4, 0x89, - 0x63, 0x38, 0xfc, 0xe1, 0x11, 0x49, 0x4e, 0x57, 0xd8, 0xa9, 0x09, 0xe6, 0x15, 0xf2, 0x91, 0xfe, - 0x18, 0x33, 0x09, 0x55, 0x87, 0x8a, 0xf4, 0x17, 0x53, 0x50, 0xfa, 0xea, 0x89, 0x55, 0xb2, 0xbe, - 0xe3, 0x5c, 0xfa, 0x8f, 0xac, 0x92, 0xb8, 0xfd, 0x47, 0xac, 0x92, 0x7d, 0x48, 0x18, 0xbb, 0x4a, - 0xf6, 0xd1, 0xbb, 0x18, 0x35, 0x85, 0x7f, 0x9d, 0x0b, 0x16, 0x56, 0xfe, 0xaf, 0xc3, 0x2d, 0xac, - 0x94, 0xc0, 0xac, 0x65, 0x7b, 0xc8, 0xb5, 0xcd, 0xf6, 0x72, 0xdb, 0xdc, 0xf6, 0x8f, 0x1f, 0xf7, - 0xce, 0xc2, 0x2b, 0x5c, 0x1e, 0x5d, 0xfc, 0x43, 0x3d, 0x03, 0x80, 0x87, 0x76, 0x3b, 0x6d, 0xd3, - 0x0b, 0x45, 0x8f, 0x4b, 0xe1, 0xa5, 0x2f, 0x27, 0x4a, 0xdf, 0x1d, 0xe0, 0x2a, 0x0a, 0x9a, 0x71, - 0xa5, 0x83, 0x36, 0x6d, 0xeb, 0x47, 0xf6, 0x48, 0x00, 0x1a, 0x2a, 0xa3, 0xfd, 0x3e, 0xc1, 0xbf, - 0x93, 0x3e, 0x46, 0xe9, 0x6b, 0xf6, 0x80, 0x63, 0x94, 0x81, 0x36, 0x29, 0x3d, 0xda, 0x14, 0x18, - 0x04, 0x39, 0x09, 0x83, 0x80, 0xe7, 0x7c, 0x5e, 0xd2, 0x98, 0x7e, 0xad, 0xd4, 0x39, 0xcd, 0xb8, - 0x66, 0xa4, 0xdf, 0x43, 0xbd, 0x4f, 0x01, 0x73, 0xb4, 0xea, 0x45, 0xc7, 0xb9, 0xb8, 0x6b, 0xba, - 0x17, 0xf9, 0xb9, 0xc5, 0x10, 0xe2, 0x16, 0xbd, 0x52, 0xf6, 0x29, 0x1e, 0xd9, 0x15, 0x11, 0xd9, - 0xa7, 0x44, 0xb3, 0xc4, 0xa7, 0x6b, 0x3c, 0x8b, 0x1b, 0x6f, 0x0a, 0x30, 0x7b, 0xb6, 0x80, 0xd9, - 0xf7, 0x27, 0x26, 0x30, 0x7d, 0xec, 0xfe, 0x20, 0xc0, 0xce, 0xef, 0xb0, 0x53, 0xc3, 0xee, 0xcb, - 0xc3, 0x61, 0xe7, 0xd3, 0x35, 0x04, 0x76, 0x45, 0xa0, 0x5c, 0x0c, 0xb6, 0x94, 0xf0, 0x23, 0xdf, - 0xa0, 0x5c, 0x7a, 0x68, 0x46, 0x90, 0x3c, 0x16, 0x34, 0x4f, 0x8a, 0x24, 0xd4, 0x3a, 0xa9, 0x62, - 0xfa, 0x45, 0xe9, 0xf5, 0x96, 0xbe, 0x0c, 0xa2, 0xd4, 0x8d, 0x47, 0x2b, 0xe5, 0x16, 0x6b, 0xe4, - 0xc9, 0x4c, 0x1f, 0xcd, 0x7f, 0xcc, 0x81, 0x29, 0xff, 0x30, 0xab, 0x07, 0xff, 0x98, 0x1b, 0xc2, - 0x4f, 0x83, 0x42, 0xd7, 0xd9, 0x73, 0x9b, 0x88, 0xad, 0x80, 0xb1, 0xb7, 0x21, 0x56, 0x6b, 0x06, - 0x8e, 0xcb, 0x07, 0x86, 0xfe, 0x5c, 0xe2, 0xa1, 0x3f, 0xd2, 0xb0, 0x84, 0x2f, 0x96, 0x0e, 0x3d, - 0x28, 0xe0, 0x52, 0x47, 0xde, 0x63, 0x71, 0xac, 0xfe, 0x90, 0xd4, 0x7c, 0x7f, 0x40, 0x4b, 0x92, - 0x89, 0x55, 0x6d, 0x08, 0xa3, 0xf2, 0x5a, 0x70, 0xb5, 0x9f, 0x83, 0x59, 0x93, 0xc4, 0x7a, 0xdc, - 0xd4, 0xd7, 0x8a, 0x0a, 0x7c, 0x7e, 0x0e, 0x14, 0x29, 0x69, 0xb5, 0xc0, 0xb0, 0x82, 0x2f, 0x3f, - 0x72, 0xeb, 0x31, 0x7a, 0x3a, 0xf8, 0x99, 0xac, 0x6c, 0x78, 0x23, 0x81, 0xf1, 0x61, 0xeb, 0x22, - 0x24, 0x69, 0x08, 0x55, 0x8a, 0x11, 0x3e, 0xf8, 0x6b, 0x19, 0x99, 0x68, 0x49, 0x72, 0x24, 0xa6, - 0xdf, 0xf3, 0xbc, 0x3e, 0xe7, 0xc7, 0x1d, 0x58, 0x76, 0x9d, 0xdd, 0x4d, 0xb7, 0x0d, 0x3f, 0x2c, - 0x15, 0x8c, 0x2e, 0xc2, 0x54, 0xcf, 0x46, 0x9a, 0xea, 0x78, 0x88, 0xde, 0x73, 0xdb, 0xfe, 0x10, - 0xbd, 0xe7, 0xb6, 0x87, 0x18, 0xa2, 0xd5, 0x9b, 0xc1, 0x9c, 0xd9, 0x6a, 0x6d, 0x98, 0xdb, 0xa8, - 0x8c, 0xe7, 0xc0, 0xb6, 0xc7, 0xce, 0x24, 0xf7, 0xa4, 0x26, 0xd8, 0x19, 0x13, 0x80, 0x60, 0x3c, - 0x78, 0x2c, 0xed, 0x8c, 0x49, 0xd0, 0x97, 0xbe, 0x94, 0x7c, 0x22, 0x0b, 0x66, 0x7d, 0xc3, 0x75, - 0x19, 0x79, 0xcd, 0x1d, 0x78, 0xb7, 0xec, 0x0a, 0x05, 0x83, 0x3d, 0x1b, 0xc0, 0x0e, 0xbf, 0x9b, - 0x49, 0x88, 0x8d, 0x50, 0x73, 0xc4, 0xf2, 0x4e, 0x22, 0x66, 0xc6, 0x15, 0x98, 0x3e, 0x33, 0xbf, - 0x94, 0x05, 0xc0, 0x70, 0x82, 0x09, 0xd4, 0x21, 0x38, 0xf9, 0x52, 0xe9, 0x30, 0xe5, 0xac, 0xe1, - 0x61, 0xb5, 0xc9, 0x45, 0x5c, 0x72, 0x6f, 0x66, 0x50, 0x4d, 0xe9, 0xf3, 0xf7, 0x03, 0x59, 0x30, - 0xb5, 0xb4, 0xd7, 0x69, 0x5b, 0x4d, 0xd3, 0xeb, 0xdd, 0x50, 0x8c, 0x66, 0x2f, 0xb9, 0x6f, 0x24, - 0x91, 0x85, 0x12, 0xd4, 0x11, 0xc1, 0x4b, 0x7a, 0xda, 0x32, 0xeb, 0x9f, 0xb6, 0x94, 0xdc, 0x24, - 0x18, 0x50, 0xf8, 0x18, 0xc4, 0x53, 0x01, 0xc7, 0x6b, 0x1d, 0x64, 0x2f, 0xba, 0xc8, 0x6c, 0x35, - 0xdd, 0xbd, 0xdd, 0x0b, 0x5d, 0x7e, 0x37, 0x3c, 0x5e, 0x46, 0xb9, 0x35, 0xc7, 0xac, 0xb0, 0xe6, - 0x08, 0x7f, 0x42, 0x91, 0x3d, 0xfb, 0xcb, 0xad, 0x8c, 0x73, 0x34, 0x0c, 0xd1, 0x27, 0x27, 0xda, - 0xc3, 0xe9, 0x59, 0x5e, 0xcc, 0x25, 0x59, 0x5e, 0x7c, 0xb3, 0xd4, 0x49, 0x62, 0xa9, 0x76, 0x8d, - 0x65, 0x2b, 0x6e, 0xae, 0x8e, 0xbc, 0x08, 0x78, 0x6f, 0x02, 0xb3, 0x17, 0xc2, 0x2f, 0x01, 0xc4, - 0x62, 0x62, 0x9f, 0x0d, 0xf2, 0xb7, 0x24, 0x9d, 0xf2, 0x8b, 0x24, 0x44, 0xa0, 0x1b, 0x20, 0x98, - 0x95, 0xd9, 0x85, 0x4b, 0x34, 0x7f, 0x8f, 0xad, 0x3f, 0x7d, 0x14, 0x3e, 0x9a, 0x05, 0xd3, 0xe4, - 0x16, 0x95, 0xc5, 0x2b, 0xc4, 0x3d, 0xfb, 0x09, 0x42, 0xa8, 0xad, 0x48, 0x8f, 0x9f, 0x17, 0xf1, - 0x6c, 0x56, 0x41, 0xae, 0x6d, 0xd9, 0x17, 0xfd, 0xed, 0x53, 0xfc, 0x1c, 0xc6, 0xe4, 0xcf, 0xf6, - 0x89, 0xc9, 0x1f, 0x2c, 0x70, 0x07, 0xf5, 0x1e, 0xea, 0x92, 0xa8, 0x81, 0xc5, 0xa5, 0xcf, 0xc6, - 0x3f, 0xcc, 0x81, 0x42, 0x1d, 0x99, 0x6e, 0x73, 0x07, 0xbe, 0x8a, 0x3b, 0xe8, 0xbe, 0x0c, 0x26, - 0xb6, 0xac, 0xb6, 0x87, 0x5c, 0xea, 0x38, 0xc2, 0x77, 0xe0, 0x54, 0x91, 0x17, 0xdb, 0x4e, 0xf3, - 0xe2, 0x02, 0xb3, 0x16, 0x17, 0xfc, 0x98, 0x41, 0x0b, 0xcb, 0xe4, 0x27, 0xdd, 0xff, 0x59, 0x7d, - 0x00, 0xe4, 0xbb, 0x8e, 0xeb, 0x45, 0x05, 0xe1, 0x8c, 0x28, 0xa5, 0xee, 0xb8, 0x9e, 0x4e, 0x7f, - 0xc4, 0x60, 0x6e, 0xed, 0xb5, 0xdb, 0x06, 0xba, 0xec, 0xf9, 0x33, 0x05, 0xff, 0x1d, 0xcf, 0xed, - 0x9d, 0xad, 0xad, 0x2e, 0xa2, 0xf3, 0xd4, 0xbc, 0xce, 0xde, 0xd4, 0x93, 0x20, 0xdf, 0xb6, 0x76, - 0x2d, 0x6a, 0xdb, 0xe6, 0x75, 0xfa, 0xa2, 0xde, 0x0a, 0x8a, 0xa1, 0x59, 0x4d, 0x09, 0x9d, 0x2f, - 0x10, 0x05, 0x3c, 0x90, 0x8e, 0x25, 0xe3, 0x22, 0xba, 0xd2, 0x9d, 0x9f, 0x20, 0xdf, 0xc9, 0xb3, - 0xe8, 0xa5, 0x27, 0xb3, 0x54, 0x4e, 0xf9, 0x1a, 0x3d, 0x69, 0x72, 0x51, 0xd3, 0x71, 0x5b, 0x3e, - 0x6f, 0xa2, 0xed, 0x5d, 0x96, 0x2f, 0xd9, 0x02, 0x77, 0xdf, 0xca, 0xd3, 0x97, 0xa7, 0x57, 0x14, - 0x70, 0xe7, 0x88, 0xab, 0x3e, 0x6f, 0x79, 0x3b, 0xeb, 0xc8, 0x33, 0xe1, 0x1f, 0x2a, 0xff, 0x9f, - 0x5c, 0xc5, 0xc8, 0x15, 0x3d, 0xf3, 0xed, 0xed, 0xb9, 0x36, 0xe6, 0x16, 0x8b, 0xb2, 0xc4, 0xa5, - 0xa8, 0xf7, 0x82, 0x6b, 0xc2, 0x37, 0x7f, 0x9d, 0x6d, 0x89, 0xcd, 0x95, 0xa6, 0x48, 0xf6, 0xe8, - 0x0c, 0xea, 0x06, 0xb8, 0x91, 0x7e, 0x5c, 0x35, 0xd6, 0xd7, 0x56, 0xad, 0xed, 0x9d, 0xb6, 0xb5, - 0xbd, 0xe3, 0x75, 0x2b, 0x76, 0xd7, 0x43, 0x66, 0xab, 0xb6, 0xa5, 0xd3, 0x20, 0xb9, 0x80, 0x94, - 0x23, 0x93, 0x55, 0x74, 0x1f, 0x91, 0x1b, 0xa9, 0x78, 0x79, 0x88, 0xd0, 0x87, 0xef, 0xc7, 0xfa, - 0xd0, 0xdd, 0x6b, 0x07, 0x98, 0x5e, 0xd7, 0x83, 0x69, 0x28, 0xd0, 0x7b, 0x6d, 0xa2, 0x14, 0x24, - 0x73, 0xd2, 0x31, 0x2b, 0x86, 0x92, 0xf4, 0x95, 0xe3, 0xff, 0x29, 0x80, 0xfc, 0x8a, 0x6b, 0x76, - 0x76, 0xe0, 0xf3, 0x53, 0xe8, 0x6b, 0x03, 0xe9, 0xcc, 0x0e, 0x92, 0x4e, 0x65, 0x80, 0x74, 0xe6, - 0x38, 0xe9, 0x8c, 0xde, 0xea, 0x3e, 0x0b, 0x66, 0x9a, 0x4e, 0xbb, 0x8d, 0x9a, 0x98, 0x1f, 0x95, - 0x16, 0x09, 0x0c, 0x32, 0xa5, 0x0b, 0x69, 0x24, 0x7a, 0x1a, 0xf2, 0xea, 0x74, 0x01, 0x96, 0x0a, - 0x7d, 0x98, 0x00, 0x5f, 0x9e, 0x05, 0x39, 0xad, 0xb5, 0x8d, 0x84, 0x45, 0xda, 0x0c, 0xb7, 0x48, - 0x7b, 0x1a, 0x14, 0x3c, 0xd3, 0xdd, 0x46, 0x9e, 0x7f, 0x1c, 0x87, 0xbe, 0x05, 0x41, 0xdd, 0x14, - 0x2e, 0xa8, 0xdb, 0xd3, 0x41, 0x0e, 0xf3, 0x8c, 0x85, 0x4b, 0xb9, 0xb1, 0x1f, 0xfc, 0x84, 0xf7, - 0x0b, 0xb8, 0xc6, 0x05, 0xdc, 0x6a, 0x9d, 0xfc, 0xd0, 0x8b, 0x75, 0xfe, 0x00, 0xd6, 0xe4, 0xbe, - 0x8f, 0xa6, 0x63, 0x57, 0x76, 0xcd, 0x6d, 0xc4, 0x9a, 0x19, 0x26, 0xf8, 0x5f, 0xb5, 0x5d, 0xe7, - 0x61, 0x8b, 0xc5, 0x57, 0x0b, 0x13, 0x70, 0x13, 0x76, 0xac, 0x56, 0x0b, 0xd9, 0x4c, 0xb3, 0xd9, - 0xdb, 0xd9, 0x33, 0x20, 0x87, 0x69, 0xc0, 0xf2, 0x83, 0x07, 0xfe, 0xe2, 0x31, 0x75, 0x06, 0xab, - 0x15, 0x55, 0xde, 0x62, 0x46, 0x5c, 0xac, 0x93, 0xf1, 0xdd, 0xa0, 0x8d, 0xeb, 0xaf, 0x5c, 0x4f, - 0x06, 0x79, 0xdb, 0x69, 0xa1, 0x81, 0x43, 0x0d, 0xcd, 0xa5, 0x3e, 0x15, 0xe4, 0x51, 0x0b, 0xf7, - 0x0a, 0x0a, 0xc9, 0x7e, 0x26, 0x9e, 0x97, 0x3a, 0xcd, 0x9c, 0xcc, 0x41, 0xa4, 0x1f, 0xb5, 0xe9, - 0x2b, 0xe0, 0x2f, 0x4d, 0x80, 0xe3, 0xb4, 0x0f, 0xa8, 0xef, 0x5d, 0xc0, 0x45, 0x5d, 0x40, 0xf0, - 0xdd, 0x8a, 0x10, 0x45, 0xb2, 0xbb, 0x77, 0x21, 0x30, 0x1b, 0xe9, 0x0b, 0xaf, 0xa0, 0xd9, 0x91, - 0x0c, 0x5a, 0xca, 0xb0, 0x83, 0x96, 0x30, 0x00, 0x29, 0xbe, 0x8a, 0x87, 0xc3, 0x55, 0x81, 0x24, - 0xfb, 0xc3, 0x55, 0xbf, 0xc1, 0x66, 0x1e, 0x4c, 0x98, 0x5b, 0x1e, 0x72, 0x2b, 0x2d, 0x22, 0x8f, - 0x53, 0xba, 0xff, 0x8a, 0x07, 0xc4, 0x0b, 0x68, 0xcb, 0x71, 0xb1, 0xa6, 0x4f, 0xd1, 0x01, 0xd1, - 0x7f, 0xe7, 0xf4, 0x13, 0x08, 0x9b, 0x28, 0xb7, 0x80, 0xe3, 0xd6, 0xb6, 0xed, 0xb8, 0x28, 0xf0, - 0xcc, 0x9b, 0x9f, 0xa1, 0x87, 0xc5, 0x7b, 0x92, 0xd5, 0xdb, 0xc0, 0x09, 0xdb, 0x59, 0x42, 0x1d, - 0xc6, 0x77, 0x8a, 0xea, 0x2c, 0xd1, 0x88, 0x83, 0x1f, 0x0e, 0x74, 0x2d, 0x73, 0x07, 0xbb, 0x16, - 0xf8, 0xe9, 0xa4, 0xf3, 0xe1, 0x1e, 0xe0, 0x47, 0x66, 0x97, 0xa9, 0xcf, 0x04, 0x33, 0x2d, 0xe6, - 0xb7, 0xd3, 0xb4, 0x02, 0xad, 0x89, 0xfc, 0x4f, 0xc8, 0x1c, 0x8a, 0x5c, 0x8e, 0x17, 0xb9, 0x15, - 0x30, 0x49, 0x4e, 0x69, 0x60, 0x99, 0xcb, 0xf7, 0x04, 0xa3, 0x23, 0x53, 0xb6, 0xa0, 0x51, 0x1c, - 0xdb, 0x16, 0xca, 0xec, 0x17, 0x3d, 0xf8, 0x39, 0xd9, 0xcc, 0x3a, 0x9e, 0x43, 0xe9, 0xab, 0xe7, - 0x67, 0x72, 0xe0, 0xf8, 0x8a, 0xeb, 0xec, 0x75, 0xba, 0xa1, 0x7a, 0xfe, 0x65, 0xff, 0xd5, 0xf4, - 0x82, 0x38, 0x16, 0xf5, 0x57, 0xdc, 0x1b, 0xc0, 0xb4, 0xcb, 0x7a, 0xd4, 0x70, 0x6d, 0x9d, 0x4f, - 0xe2, 0x55, 0x5b, 0x39, 0x8c, 0x6a, 0x87, 0x0a, 0x92, 0x13, 0x14, 0xa4, 0x57, 0x90, 0xf3, 0x7d, - 0x04, 0xf9, 0x2f, 0xb2, 0x09, 0x05, 0xb9, 0x87, 0x45, 0x11, 0x82, 0x5c, 0x06, 0x85, 0x6d, 0x92, - 0x91, 0xc9, 0xf1, 0x93, 0xe4, 0x5a, 0x46, 0x0a, 0xd7, 0xd9, 0xaf, 0x21, 0x5f, 0x15, 0x8e, 0xaf, - 0xc9, 0x84, 0x2a, 0x9e, 0xda, 0xf4, 0x85, 0xea, 0x1d, 0x39, 0x30, 0x13, 0xd4, 0x4e, 0x0e, 0x3e, - 0x64, 0x06, 0x75, 0xf8, 0x07, 0x56, 0x67, 0x82, 0xae, 0x54, 0xe1, 0xba, 0xd2, 0x3e, 0x9d, 0xdf, - 0x74, 0x82, 0xce, 0x6f, 0x26, 0xa2, 0xf3, 0x83, 0xcf, 0x53, 0x64, 0x83, 0x16, 0x8b, 0x7d, 0x00, - 0x69, 0xdd, 0x63, 0xb9, 0x57, 0x93, 0x0c, 0x9d, 0x3c, 0xb8, 0x55, 0xe9, 0x0b, 0xcd, 0x07, 0xb3, - 0xe0, 0x04, 0xed, 0x0d, 0x37, 0xed, 0x6e, 0xd0, 0x17, 0x3d, 0x5e, 0x74, 0x2b, 0xc0, 0x6d, 0xea, - 0x06, 0x6e, 0x05, 0xe4, 0x4d, 0x5c, 0x04, 0x8f, 0x3d, 0xb3, 0x24, 0xf4, 0xb9, 0x5c, 0x2d, 0x11, - 0x2b, 0x4a, 0x72, 0xa7, 0x92, 0x24, 0x0b, 0x4d, 0x9f, 0x81, 0x3f, 0xaf, 0x80, 0xa9, 0x3a, 0xf2, - 0xd6, 0xcc, 0x2b, 0xce, 0x9e, 0x07, 0x4d, 0xd9, 0xe5, 0xef, 0x67, 0x80, 0x42, 0x9b, 0xfc, 0xc2, - 0x6e, 0xe0, 0xba, 0xa1, 0xef, 0xfa, 0x31, 0xd9, 0xe8, 0xa5, 0x45, 0xeb, 0x2c, 0xbf, 0x78, 0x58, - 0x4c, 0x66, 0xf7, 0x21, 0xa0, 0x6e, 0x24, 0x4b, 0xa7, 0x89, 0xf6, 0x26, 0xa2, 0xaa, 0x4e, 0x1f, - 0x96, 0x9f, 0x50, 0xc0, 0x6c, 0x1d, 0x79, 0x95, 0xee, 0xb2, 0xb9, 0xef, 0xb8, 0x96, 0x87, 0xf8, - 0xcb, 0x20, 0xe2, 0xa1, 0x39, 0x03, 0x80, 0x15, 0xfc, 0xc6, 0xa2, 0x81, 0x73, 0x29, 0xf0, 0xd7, - 0x92, 0xee, 0x18, 0x0b, 0x74, 0x8c, 0x04, 0x84, 0x44, 0x7b, 0x98, 0x71, 0xd5, 0xa7, 0x0f, 0xc4, - 0xe7, 0xb3, 0x0c, 0x88, 0x92, 0xdb, 0xdc, 0xb1, 0xf6, 0x51, 0x2b, 0x21, 0x10, 0xfe, 0x6f, 0x21, - 0x10, 0x41, 0x41, 0x89, 0xb7, 0x87, 0x05, 0x3a, 0x46, 0xb1, 0x3d, 0x1c, 0x57, 0xe0, 0x58, 0x4e, - 0xa1, 0xe2, 0xae, 0x87, 0xad, 0x31, 0xdc, 0x2f, 0xcb, 0xd6, 0xd0, 0x84, 0xcb, 0xf2, 0x26, 0xdc, - 0x50, 0x1d, 0x0b, 0xad, 0x7b, 0x90, 0x4c, 0xe7, 0xd2, 0xe8, 0x58, 0xfa, 0x56, 0x9d, 0x3e, 0xd3, - 0xdf, 0xa3, 0x80, 0x53, 0x81, 0xc1, 0x53, 0x47, 0xde, 0x92, 0xd9, 0xdd, 0xb9, 0xe0, 0x98, 0x6e, - 0x8b, 0xbf, 0x99, 0x6d, 0xe8, 0xa3, 0x18, 0xf0, 0xcf, 0x78, 0x10, 0xaa, 0x22, 0x08, 0x7d, 0xfd, - 0x82, 0xfa, 0xd2, 0x32, 0x8a, 0x4e, 0x26, 0xd6, 0x75, 0xe9, 0x37, 0x02, 0xb0, 0x7e, 0x40, 0x00, - 0xeb, 0xbe, 0x61, 0x49, 0x4c, 0x1f, 0xb8, 0x5f, 0xa4, 0x23, 0x02, 0xe7, 0xc2, 0xf6, 0x90, 0x2c, - 0x60, 0x11, 0x2e, 0x4c, 0x4a, 0xf4, 0x69, 0x83, 0x61, 0xc6, 0x88, 0x81, 0xee, 0x67, 0xe9, 0x8e, - 0x11, 0x47, 0xe8, 0x5a, 0xf6, 0x0e, 0x05, 0x14, 0xc9, 0xf9, 0x5c, 0xce, 0xbd, 0x0f, 0x3e, 0x2c, - 0x8b, 0xce, 0x01, 0x57, 0xc2, 0x89, 0xa4, 0xae, 0x84, 0xf0, 0xed, 0x49, 0x1d, 0x06, 0x7b, 0xa9, - 0x1d, 0x09, 0x62, 0x89, 0xfc, 0x01, 0x07, 0x50, 0x90, 0x3e, 0x68, 0xff, 0x55, 0x01, 0x00, 0x2b, - 0x34, 0xf3, 0x51, 0x7b, 0x8e, 0x2c, 0x5c, 0xb7, 0xf3, 0x4e, 0x94, 0x18, 0xa8, 0x53, 0x3d, 0x40, - 0xd1, 0x12, 0x43, 0xef, 0xb7, 0x37, 0x24, 0xf5, 0x5d, 0x0a, 0xa9, 0x1a, 0x09, 0x2c, 0x89, 0xbc, - 0x99, 0x22, 0xeb, 0x4e, 0x1f, 0x90, 0xdf, 0xcc, 0x82, 0xbc, 0xe1, 0xd4, 0x91, 0x77, 0x78, 0x53, - 0x20, 0xf1, 0x79, 0x4a, 0x52, 0xef, 0x28, 0xce, 0x53, 0xf6, 0x2b, 0x28, 0x7d, 0xd6, 0xbd, 0x3b, - 0x0b, 0x66, 0x0c, 0xa7, 0x1c, 0x2c, 0x56, 0xc9, 0xfb, 0x82, 0xc9, 0x5f, 0xbc, 0x14, 0x34, 0x30, - 0xac, 0xe6, 0x50, 0x17, 0x2f, 0x0d, 0x2e, 0x2f, 0x7d, 0xbe, 0xdd, 0x0d, 0x8e, 0x6f, 0xda, 0x2d, - 0x47, 0x47, 0x2d, 0x87, 0x2d, 0xc9, 0xaa, 0x2a, 0xc8, 0xed, 0xd9, 0x2d, 0x87, 0x90, 0x9c, 0xd7, - 0xc9, 0x33, 0x4e, 0x73, 0x51, 0xcb, 0x61, 0xfb, 0x75, 0xe4, 0x19, 0x7e, 0x4d, 0x01, 0x39, 0xfc, - 0xaf, 0x3c, 0xab, 0xdf, 0xa1, 0x24, 0x3c, 0x21, 0x8a, 0x8b, 0x1f, 0x89, 0x25, 0x74, 0x3f, 0xb7, - 0x48, 0x4d, 0x3d, 0xc4, 0x6e, 0x8c, 0xaa, 0x8f, 0x63, 0x45, 0xb8, 0x38, 0xad, 0xce, 0x83, 0x89, - 0x0b, 0x6d, 0xa7, 0x79, 0x31, 0x3c, 0xc8, 0xc8, 0x5e, 0xd5, 0x5b, 0x41, 0xde, 0x35, 0xed, 0x6d, - 0xc4, 0x16, 0xbf, 0x4f, 0xf6, 0xf4, 0x85, 0x64, 0x27, 0x5a, 0xa7, 0x59, 0xe0, 0xdb, 0x93, 0x9c, - 0x4d, 0xed, 0xd3, 0xf8, 0x64, 0xf2, 0xb0, 0x34, 0xc4, 0x31, 0x82, 0x22, 0x98, 0x29, 0x97, 0xe8, - 0x15, 0x67, 0xeb, 0xb5, 0x73, 0x5a, 0x51, 0x21, 0x30, 0x63, 0x9e, 0xa4, 0x08, 0x33, 0x2e, 0xfe, - 0x3f, 0x2c, 0xcc, 0x7d, 0x1a, 0x7f, 0x14, 0x30, 0x7f, 0x22, 0x0b, 0x66, 0xd7, 0xac, 0xae, 0x17, - 0xe5, 0x4d, 0x1b, 0x13, 0x9e, 0xe7, 0xc5, 0x49, 0x4d, 0x65, 0xa1, 0x1e, 0xe9, 0xb8, 0x3c, 0x89, - 0xcc, 0xe1, 0xb8, 0x2a, 0xc6, 0xe3, 0xf6, 0x4d, 0x28, 0xa0, 0xd7, 0x12, 0x49, 0x73, 0x32, 0xb1, - 0xa1, 0x14, 0x56, 0x32, 0x7e, 0x43, 0x29, 0xb2, 0xee, 0xf4, 0xf9, 0xfb, 0xb5, 0x2c, 0x38, 0x81, - 0xab, 0x8f, 0x5b, 0x96, 0x8a, 0x66, 0xf3, 0xc0, 0x65, 0xa9, 0xc4, 0x2b, 0xe3, 0x07, 0x68, 0x19, - 0xc5, 0xca, 0xf8, 0xa0, 0x42, 0xc7, 0xcc, 0xe6, 0x88, 0x65, 0xd8, 0x41, 0x6c, 0x8e, 0x59, 0x86, - 0x1d, 0x9e, 0xcd, 0xf1, 0x4b, 0xb1, 0x43, 0xb2, 0xf9, 0xc8, 0x16, 0x58, 0x7f, 0x45, 0x09, 0xd8, - 0x1c, 0xb9, 0xb6, 0x11, 0xc3, 0xe6, 0xc4, 0xc7, 0xb3, 0xe0, 0x3b, 0x87, 0x64, 0xfc, 0x88, 0xd7, - 0x37, 0x86, 0x81, 0xe9, 0x08, 0xd7, 0x38, 0x5e, 0xa1, 0x80, 0x39, 0x46, 0x45, 0xff, 0x29, 0x73, - 0x0c, 0x46, 0x89, 0xa7, 0xcc, 0x89, 0x7d, 0xec, 0x45, 0xca, 0xc6, 0xef, 0x63, 0x1f, 0x5b, 0x7f, - 0xfa, 0xe0, 0xfc, 0x7d, 0x0e, 0x9c, 0xc6, 0x24, 0xac, 0x3b, 0x2d, 0x6b, 0xeb, 0x0a, 0xa5, 0xe2, - 0x9c, 0xd9, 0xde, 0x43, 0x5d, 0xf8, 0xa1, 0xac, 0x2c, 0x4a, 0xff, 0x3f, 0x00, 0x9c, 0x0e, 0x72, - 0x69, 0x84, 0x1b, 0x06, 0xd4, 0xbd, 0x51, 0x8d, 0x3d, 0x58, 0x53, 0x10, 0x75, 0xb6, 0xe6, 0x17, - 0xa2, 0x73, 0xe5, 0xc1, 0xf7, 0x65, 0xc0, 0x54, 0xf0, 0xc5, 0x8f, 0x62, 0x90, 0x09, 0xa3, 0x18, - 0xdc, 0x0a, 0x14, 0xb3, 0xd5, 0x0a, 0xa0, 0xe9, 0xdd, 0xbc, 0x26, 0x75, 0xac, 0x1e, 0xd3, 0x71, - 0x26, 0x9c, 0xb7, 0x8b, 0xc2, 0xc3, 0x2e, 0x91, 0x79, 0xbb, 0xc8, 0x53, 0xef, 0x00, 0x05, 0x7a, - 0x2d, 0x53, 0xb0, 0x8a, 0x1f, 0x95, 0x9d, 0xe5, 0x5b, 0x2c, 0x82, 0xb9, 0x80, 0xee, 0x06, 0x6e, - 0xbb, 0x68, 0xe2, 0xd5, 0x44, 0x71, 0xbc, 0x3b, 0x11, 0x87, 0xfa, 0xf5, 0xd7, 0xa1, 0xbd, 0xac, - 0x0b, 0x82, 0xf6, 0xac, 0xa1, 0x4b, 0x1e, 0xcf, 0xae, 0x58, 0xa9, 0xd3, 0x69, 0x5f, 0x31, 0xd8, - 0xa9, 0xfa, 0x44, 0xbb, 0x62, 0xdc, 0xe1, 0xfc, 0x6c, 0xef, 0xe1, 0xfc, 0xe4, 0xbb, 0x62, 0x02, - 0x1d, 0xa3, 0xd8, 0x15, 0x8b, 0x2b, 0x70, 0x0c, 0xeb, 0x92, 0x79, 0x6a, 0x3d, 0xb3, 0x20, 0x82, - 0x6f, 0xca, 0xf6, 0x75, 0xab, 0x02, 0xa2, 0x5b, 0x55, 0xbf, 0xf8, 0x82, 0xb1, 0xc1, 0x53, 0xd5, - 0xa7, 0x82, 0xc2, 0x96, 0xe3, 0xee, 0x9a, 0xfe, 0x06, 0x7e, 0xaf, 0x17, 0x37, 0x0b, 0xdc, 0xb7, - 0x4c, 0xf2, 0xe8, 0x2c, 0x2f, 0xd6, 0xdb, 0xe7, 0x5a, 0x1d, 0x16, 0x16, 0x0b, 0x3f, 0xaa, 0x37, - 0x81, 0x59, 0x16, 0x1d, 0xab, 0x8a, 0xba, 0x1e, 0x6a, 0xb1, 0x63, 0xca, 0x62, 0xa2, 0x7a, 0x16, - 0xcc, 0xb0, 0x84, 0x65, 0xab, 0x8d, 0xba, 0xec, 0x6e, 0x42, 0x21, 0x4d, 0x3d, 0x0d, 0x0a, 0x56, - 0xf7, 0xd9, 0x5d, 0xc7, 0x26, 0xbe, 0xb9, 0x93, 0x3a, 0x7b, 0x23, 0xee, 0x3b, 0x34, 0x5f, 0x60, - 0xb4, 0x52, 0x67, 0xfa, 0xde, 0x64, 0xf8, 0xd9, 0x61, 0x26, 0x10, 0x89, 0x03, 0x26, 0x62, 0x14, - 0xf6, 0x9a, 0x4d, 0x84, 0x5a, 0xec, 0xd4, 0x81, 0xff, 0x9a, 0x30, 0x94, 0x62, 0xe2, 0xe9, 0xc6, - 0x11, 0xc5, 0x52, 0xfc, 0xf0, 0x29, 0x50, 0xa0, 0xf1, 0xc5, 0xe1, 0xcb, 0xe6, 0xfa, 0x0a, 0xe3, - 0x9c, 0x28, 0x8c, 0x9b, 0x60, 0xc6, 0x76, 0x70, 0x75, 0x1b, 0xa6, 0x6b, 0xee, 0x76, 0xe3, 0x56, - 0x13, 0x69, 0xb9, 0xc1, 0xd0, 0x51, 0xe5, 0x7e, 0x5b, 0x3d, 0xa6, 0x0b, 0xc5, 0xa8, 0xff, 0x7f, - 0x70, 0xfc, 0x02, 0x3b, 0x69, 0xdb, 0x65, 0x25, 0x67, 0xa3, 0x7d, 0xef, 0x7a, 0x4a, 0x5e, 0x14, - 0xff, 0x5c, 0x3d, 0xa6, 0xf7, 0x16, 0xa6, 0xfe, 0x10, 0x98, 0xc3, 0xaf, 0x2d, 0xe7, 0x92, 0x4f, - 0xb8, 0x12, 0x6d, 0x70, 0xf4, 0x14, 0xbf, 0x2e, 0xfc, 0xb8, 0x7a, 0x4c, 0xef, 0x29, 0x4a, 0xad, - 0x01, 0xb0, 0xe3, 0xed, 0xb6, 0x59, 0xc1, 0xb9, 0x68, 0x91, 0xec, 0x29, 0x78, 0x35, 0xf8, 0x69, - 0xf5, 0x98, 0xce, 0x15, 0xa1, 0xae, 0x81, 0x29, 0xef, 0xb2, 0xc7, 0xca, 0xcb, 0x47, 0x6f, 0x72, - 0xf7, 0x94, 0x67, 0xf8, 0xff, 0xac, 0x1e, 0xd3, 0xc3, 0x02, 0xd4, 0x0a, 0x98, 0xec, 0x5c, 0x60, - 0x85, 0x15, 0xfa, 0xdc, 0xa9, 0xdc, 0xbf, 0xb0, 0x8d, 0x0b, 0x41, 0x59, 0xc1, 0xef, 0x98, 0xb0, - 0x66, 0x77, 0x9f, 0x95, 0x35, 0x21, 0x4d, 0x58, 0xd9, 0xff, 0x07, 0x13, 0x16, 0x14, 0xa0, 0x56, - 0xc0, 0x54, 0xd7, 0x36, 0x3b, 0xdd, 0x1d, 0xc7, 0xeb, 0xce, 0x4f, 0xf6, 0xf8, 0x47, 0x46, 0x97, - 0x56, 0x67, 0xff, 0xe8, 0xe1, 0xdf, 0xea, 0x53, 0xc1, 0xa9, 0x3d, 0x72, 0x4f, 0x9b, 0x76, 0xd9, - 0xea, 0x7a, 0x96, 0xbd, 0xed, 0x07, 0xf9, 0xa3, 0xbd, 0x49, 0xff, 0x8f, 0xea, 0x02, 0x3b, 0xad, - 0x00, 0x88, 0x6e, 0xc2, 0xde, 0x4d, 0x39, 0x5a, 0x2d, 0x77, 0x48, 0xe1, 0x99, 0x20, 0x87, 0x3f, - 0x11, 0x0f, 0xc3, 0xb9, 0xfe, 0x0b, 0x7e, 0xbd, 0xb2, 0x43, 0x14, 0x18, 0xff, 0x84, 0xc7, 0x46, - 0xdb, 0xd9, 0x70, 0x9d, 0x6d, 0x17, 0x75, 0xbb, 0xcc, 0xf1, 0x90, 0x4b, 0xc1, 0x0a, 0x6e, 0x75, - 0xd7, 0xad, 0x6d, 0x6a, 0x9c, 0x30, 0xb7, 0x6c, 0x3e, 0x89, 0xce, 0x3a, 0xab, 0xe8, 0x12, 0xb9, - 0xfb, 0x6b, 0xfe, 0xb8, 0x3f, 0xeb, 0xf4, 0x53, 0xe0, 0xcd, 0x60, 0x86, 0x57, 0x32, 0x7a, 0x49, - 0x89, 0xf5, 0x60, 0x60, 0x8b, 0xb1, 0x37, 0x78, 0x13, 0x98, 0x13, 0x65, 0x9a, 0x1b, 0x62, 0x14, - 0xbf, 0x2b, 0x84, 0x37, 0x82, 0xe3, 0x3d, 0x8a, 0xe5, 0x9f, 0xdd, 0xcf, 0x84, 0x67, 0xf7, 0x6f, - 0x00, 0x20, 0x94, 0xe2, 0xbe, 0xc5, 0x5c, 0x0f, 0xa6, 0x02, 0xb9, 0xec, 0x9b, 0xe1, 0x2b, 0x19, - 0x30, 0xe9, 0x0b, 0x5b, 0xbf, 0x0c, 0x78, 0x7c, 0xb1, 0xb9, 0x8d, 0x04, 0x36, 0xdd, 0x16, 0xd2, - 0xf0, 0x38, 0x12, 0xba, 0xf3, 0x1a, 0x96, 0xd7, 0xf6, 0x8f, 0xa5, 0xf4, 0x26, 0xab, 0x1b, 0x00, - 0x58, 0x04, 0x23, 0x23, 0x3c, 0xa7, 0x72, 0x47, 0x02, 0x7d, 0xa0, 0xf2, 0xc0, 0x95, 0x71, 0xf6, - 0xf1, 0xec, 0x10, 0xc9, 0x14, 0xc8, 0xd7, 0x37, 0x4a, 0x65, 0xad, 0x78, 0x4c, 0x9d, 0x03, 0x40, - 0x7b, 0xce, 0x86, 0xa6, 0x57, 0xb4, 0x6a, 0x59, 0x2b, 0x66, 0xe0, 0x2b, 0xb3, 0x60, 0x2a, 0x50, - 0x82, 0xbe, 0x8d, 0xd4, 0x98, 0x68, 0x0d, 0xbc, 0x07, 0xe2, 0xa0, 0x52, 0xf1, 0x42, 0xf6, 0x0c, - 0x70, 0xf5, 0x5e, 0x17, 0x2d, 0x5b, 0x6e, 0xd7, 0xd3, 0x9d, 0x4b, 0xcb, 0x8e, 0x1b, 0x84, 0xb5, - 0xf4, 0xef, 0x3b, 0x8e, 0xf8, 0x8c, 0x2d, 0x8a, 0x16, 0x22, 0x47, 0x19, 0x90, 0xcb, 0x56, 0x88, - 0xc3, 0x04, 0x5c, 0xae, 0x47, 0x2f, 0x18, 0xee, 0x22, 0xdd, 0xb9, 0xd4, 0x2d, 0xd9, 0xad, 0xb2, - 0xd3, 0xde, 0xdb, 0xb5, 0xbb, 0xcc, 0x26, 0x88, 0xfa, 0x8c, 0xb9, 0x43, 0x6e, 0x79, 0x99, 0x03, - 0xa0, 0x5c, 0x5b, 0x5b, 0xd3, 0xca, 0x46, 0xa5, 0x56, 0x2d, 0x1e, 0xc3, 0xdc, 0x32, 0x4a, 0x8b, - 0x6b, 0x98, 0x3b, 0x3f, 0x0c, 0x26, 0x7d, 0x9d, 0x3e, 0x70, 0xb9, 0x73, 0x09, 0x4c, 0xfa, 0x5a, - 0xce, 0x46, 0x84, 0x27, 0xf4, 0x1e, 0x49, 0xdb, 0x35, 0x5d, 0x8f, 0xf8, 0x51, 0xfb, 0x85, 0x2c, - 0x9a, 0x5d, 0xa4, 0x07, 0xbf, 0x9d, 0x7d, 0x32, 0xa3, 0x40, 0x05, 0x73, 0xa5, 0xb5, 0xb5, 0x46, - 0x4d, 0x6f, 0x54, 0x6b, 0xc6, 0x6a, 0xa5, 0xba, 0x42, 0x47, 0xc8, 0xca, 0x4a, 0xb5, 0xa6, 0x6b, - 0x74, 0x80, 0xac, 0x17, 0x33, 0xf4, 0x96, 0xa1, 0xc5, 0x49, 0x50, 0xe8, 0x10, 0xee, 0xc2, 0x2f, - 0x2a, 0x09, 0x4f, 0x9c, 0x06, 0x38, 0x45, 0xdc, 0x83, 0x22, 0xf8, 0xa2, 0x67, 0xfb, 0x9c, 0xd7, - 0x3a, 0x0b, 0x66, 0xa8, 0x2d, 0xd7, 0x25, 0xcb, 0xf8, 0xec, 0x2a, 0x41, 0x21, 0x0d, 0x7e, 0x34, - 0x9b, 0xe0, 0x18, 0x6a, 0x5f, 0x8a, 0x92, 0x19, 0x17, 0x7f, 0x32, 0xcc, 0xad, 0x42, 0x2a, 0x98, - 0xab, 0x54, 0x0d, 0x4d, 0xaf, 0x96, 0xd6, 0x58, 0x16, 0x45, 0x9d, 0x07, 0x27, 0xab, 0x35, 0x16, - 0xc8, 0xa9, 0x4e, 0xee, 0x2f, 0x5d, 0xdf, 0xa8, 0xe9, 0x46, 0x31, 0xaf, 0x9e, 0x06, 0x2a, 0x7d, - 0x16, 0xae, 0xff, 0x2d, 0xa8, 0x4f, 0x04, 0x37, 0xae, 0x55, 0xd6, 0x2b, 0x46, 0xa3, 0xb6, 0xdc, - 0xd0, 0x6b, 0xe7, 0xeb, 0x18, 0x41, 0x5d, 0x5b, 0x2b, 0x61, 0x41, 0xe2, 0x6e, 0x1b, 0x9a, 0x50, - 0xaf, 0x02, 0xc7, 0xc9, 0x4d, 0x62, 0xe4, 0x0a, 0x61, 0x5a, 0xdf, 0xa4, 0x7a, 0x1d, 0x98, 0xaf, - 0x54, 0xeb, 0x9b, 0xcb, 0xcb, 0x95, 0x72, 0x45, 0xab, 0x1a, 0x8d, 0x0d, 0x4d, 0x5f, 0xaf, 0xd4, - 0xeb, 0xf8, 0xdf, 0xe2, 0x14, 0xfc, 0xb0, 0x02, 0x0a, 0xb4, 0xcf, 0x84, 0xef, 0x55, 0xc0, 0xec, - 0x39, 0xb3, 0x6d, 0xe1, 0x81, 0x82, 0x5c, 0xf2, 0x04, 0xaf, 0x17, 0x5c, 0xd4, 0x3d, 0x72, 0x19, - 0x14, 0x73, 0x51, 0x27, 0x2f, 0xf0, 0xc7, 0x79, 0xd1, 0x30, 0x44, 0xd1, 0x78, 0x56, 0x0c, 0x10, - 0xb4, 0xc6, 0x05, 0xa1, 0xb6, 0x88, 0xc9, 0xcd, 0x6b, 0x03, 0x9c, 0xcf, 0x0b, 0x38, 0x97, 0x0f, - 0x57, 0x7c, 0x32, 0xf0, 0x7f, 0x69, 0x54, 0xe0, 0x17, 0xc1, 0xcc, 0x66, 0xb5, 0xb4, 0x69, 0xac, - 0xd6, 0xf4, 0xca, 0x0f, 0x92, 0x70, 0xb0, 0xb3, 0x60, 0x6a, 0xb9, 0xa6, 0x2f, 0x56, 0x96, 0x96, - 0xb4, 0x6a, 0x31, 0xaf, 0x5e, 0x0d, 0xae, 0xaa, 0x6b, 0xfa, 0xb9, 0x4a, 0x59, 0x6b, 0x6c, 0x56, - 0x4b, 0xe7, 0x4a, 0x95, 0x35, 0xd2, 0x47, 0x14, 0x62, 0x2e, 0xa8, 0x9a, 0x80, 0x3f, 0x9a, 0x03, - 0x80, 0x36, 0x1d, 0x5b, 0xd2, 0xfc, 0x35, 0x46, 0x7f, 0x9a, 0x74, 0xd2, 0x10, 0x16, 0x13, 0xa1, - 0xbf, 0x15, 0x30, 0xe9, 0xb2, 0x0f, 0x6c, 0x19, 0x65, 0x50, 0x39, 0xf4, 0xd1, 0x2f, 0x4d, 0x0f, - 0x7e, 0x87, 0xef, 0x4b, 0x32, 0x47, 0x88, 0x24, 0x2c, 0x19, 0x92, 0xcb, 0xa3, 0x01, 0x12, 0xbe, - 0x28, 0x03, 0xe6, 0xc4, 0x86, 0xe1, 0x46, 0x10, 0x63, 0x4a, 0xae, 0x11, 0xe2, 0xcf, 0x9c, 0x91, - 0x75, 0xf6, 0x2e, 0x36, 0x9c, 0x02, 0x5f, 0x33, 0xe9, 0xa9, 0x4c, 0xdf, 0x62, 0x29, 0x66, 0x30, - 0xf1, 0xd8, 0xe8, 0xa0, 0x77, 0xd8, 0x1a, 0x97, 0xbd, 0xa2, 0x02, 0xdf, 0x9d, 0x03, 0xb3, 0xc2, - 0x3d, 0x49, 0xf0, 0x9f, 0x33, 0x32, 0x77, 0x9f, 0x70, 0x37, 0x30, 0x65, 0x0e, 0x7b, 0x03, 0xd3, - 0xd9, 0x1f, 0xcb, 0x80, 0x09, 0x96, 0x48, 0x18, 0x5c, 0xab, 0x62, 0x5b, 0xe0, 0x38, 0x98, 0x5e, - 0xd1, 0x8c, 0x46, 0xdd, 0x28, 0xe9, 0x86, 0xb6, 0x54, 0xcc, 0xa8, 0xa7, 0xc0, 0x89, 0x0d, 0x4d, - 0xaf, 0xd7, 0x30, 0x3f, 0x37, 0xf4, 0x1a, 0xe9, 0x08, 0x29, 0x9b, 0x31, 0x0c, 0x6b, 0xda, 0xd2, - 0x8a, 0xd6, 0x58, 0x2c, 0xd5, 0xb5, 0xa2, 0x82, 0xff, 0xad, 0xd6, 0x0c, 0xad, 0xde, 0x58, 0xaa, - 0x94, 0xf4, 0x87, 0x8a, 0x39, 0xfc, 0x6f, 0xdd, 0xd0, 0x4b, 0x86, 0xb6, 0x52, 0x29, 0x93, 0x9b, - 0x7f, 0xb1, 0x06, 0xe4, 0xf1, 0x60, 0xaa, 0xad, 0x6f, 0x18, 0x0f, 0x15, 0x0b, 0xc9, 0xbd, 0xfb, - 0x7a, 0x1b, 0x37, 0x66, 0xef, 0xbe, 0xb8, 0xea, 0xc7, 0x70, 0x45, 0x94, 0x02, 0x8a, 0x94, 0x02, - 0xed, 0x72, 0x07, 0xb9, 0x16, 0xb2, 0x9b, 0x08, 0x5e, 0x94, 0x09, 0x1d, 0x77, 0x20, 0x8e, 0x15, - 0x19, 0x23, 0x38, 0xcb, 0x93, 0xbe, 0xf4, 0x18, 0xed, 0xb9, 0x03, 0x46, 0xfb, 0xa7, 0x92, 0xba, - 0xf7, 0xf5, 0x92, 0x3b, 0x12, 0xc8, 0x3e, 0x9e, 0xc4, 0xbd, 0x6f, 0x00, 0x05, 0x63, 0x89, 0x08, - 0x19, 0x31, 0xa6, 0x17, 0x15, 0xf8, 0xb6, 0x29, 0x50, 0xa4, 0x84, 0x72, 0x3e, 0x53, 0x3f, 0xcf, - 0x2e, 0xab, 0x6a, 0x24, 0x08, 0x01, 0xe5, 0x1f, 0xd1, 0xcd, 0x8a, 0x47, 0x74, 0x85, 0xa5, 0x37, - 0xa5, 0x77, 0x9f, 0x3b, 0xa9, 0xfa, 0x71, 0x0e, 0x52, 0xd1, 0x57, 0x25, 0xa5, 0xa7, 0x7e, 0xb1, - 0xd5, 0x8f, 0xe7, 0x42, 0x15, 0x76, 0x65, 0x92, 0x26, 0x8b, 0x4c, 0xfc, 0xbd, 0x51, 0x49, 0xbd, - 0x65, 0x05, 0x07, 0xb5, 0x98, 0xcb, 0x94, 0xd2, 0xf3, 0x96, 0x1d, 0x44, 0x41, 0xfa, 0x28, 0x7c, - 0x37, 0x0b, 0x72, 0x75, 0xc7, 0xf5, 0x46, 0x85, 0x41, 0xd2, 0x1d, 0x3e, 0x8e, 0x03, 0xf5, 0xe8, - 0x99, 0x53, 0x7a, 0x3b, 0x7c, 0xf1, 0xf5, 0x8f, 0x21, 0x8a, 0xd6, 0x71, 0x30, 0x47, 0x29, 0x09, - 0x62, 0x9a, 0x7f, 0x27, 0x4b, 0xfb, 0xab, 0x07, 0x65, 0x11, 0x39, 0x0b, 0x66, 0xb8, 0x23, 0xd5, - 0xc1, 0xfd, 0x9a, 0x7c, 0x1a, 0xfc, 0x55, 0x1e, 0x97, 0x25, 0x11, 0x97, 0x7e, 0xf3, 0xc6, 0x20, - 0x2c, 0xf8, 0xa8, 0x7a, 0xa6, 0x24, 0x01, 0xb9, 0x62, 0x2a, 0x4f, 0x1f, 0x91, 0x17, 0x28, 0xa0, - 0xc0, 0x3c, 0x9c, 0x46, 0x8a, 0x40, 0x52, 0xcd, 0x08, 0x98, 0x20, 0xe7, 0x09, 0xa5, 0x8c, 0x5a, - 0x33, 0xe2, 0xeb, 0x4f, 0x1f, 0x87, 0x7f, 0x63, 0xae, 0x7b, 0xa5, 0x7d, 0xd3, 0x6a, 0x9b, 0x17, - 0xda, 0x09, 0x02, 0x61, 0x7e, 0x34, 0xe1, 0x61, 0xa5, 0xa0, 0xa9, 0x42, 0x7d, 0x11, 0x1c, 0x7f, - 0x1a, 0x98, 0x72, 0x83, 0x85, 0x35, 0xff, 0x2c, 0x77, 0x8f, 0xdb, 0x24, 0xfb, 0xae, 0x87, 0x39, - 0x13, 0x9d, 0x4c, 0x92, 0xa2, 0x67, 0x2c, 0x27, 0x29, 0xa6, 0x4b, 0xad, 0xd6, 0x32, 0x32, 0xbd, - 0x3d, 0x17, 0xb5, 0x12, 0x0d, 0x11, 0x22, 0x8b, 0xa6, 0x78, 0x4e, 0x08, 0xe1, 0xab, 0xd6, 0x44, - 0x74, 0xbe, 0x7f, 0x40, 0x6f, 0xe0, 0xd3, 0x32, 0x92, 0x2e, 0xe9, 0xad, 0x01, 0x24, 0x35, 0x01, - 0x92, 0x67, 0x0e, 0x47, 0x44, 0xfa, 0x80, 0xfc, 0x82, 0x02, 0xe6, 0xa8, 0x9d, 0x30, 0x6a, 0x4c, - 0x7e, 0x3b, 0xa1, 0x27, 0x04, 0x77, 0x6b, 0x04, 0x4f, 0xce, 0x48, 0x60, 0x49, 0xe2, 0x37, 0x21, - 0x47, 0x47, 0xfa, 0xc8, 0x7c, 0xb6, 0x00, 0x00, 0xe7, 0xe5, 0xf6, 0xd1, 0x42, 0x18, 0x4a, 0x0a, - 0xbe, 0x9d, 0xcd, 0x3f, 0xea, 0x42, 0x8c, 0x52, 0xce, 0x83, 0x2d, 0xd8, 0x56, 0x11, 0x13, 0xa5, - 0x46, 0x95, 0x3f, 0x49, 0x68, 0xf3, 0x32, 0x1f, 0xb3, 0x81, 0x83, 0xfb, 0x90, 0xbd, 0xdc, 0xa3, - 0x09, 0x8c, 0xdf, 0x41, 0xa4, 0x24, 0x43, 0x6d, 0x6d, 0x88, 0xb9, 0xe4, 0x3c, 0x38, 0xa9, 0x6b, - 0xa5, 0xa5, 0x5a, 0x75, 0xed, 0x21, 0xfe, 0x7a, 0x81, 0xa2, 0xc2, 0x4f, 0x4e, 0x52, 0x81, 0xed, - 0xf5, 0x09, 0xfb, 0x40, 0x91, 0x57, 0x71, 0xb3, 0x15, 0x6e, 0x3a, 0x3f, 0xb8, 0x57, 0x93, 0x28, - 0xf6, 0x28, 0x51, 0x78, 0x1e, 0xaf, 0x46, 0x3f, 0xa9, 0x80, 0x62, 0x78, 0x1b, 0x2d, 0xbb, 0x2b, - 0xa6, 0x26, 0x3a, 0xc1, 0x75, 0xe8, 0x2e, 0x4a, 0xe8, 0x04, 0xe7, 0x27, 0xa8, 0x37, 0x83, 0xb9, - 0xe6, 0x0e, 0x6a, 0x5e, 0xac, 0xd8, 0xfe, 0xee, 0x30, 0xdd, 0x4a, 0xec, 0x49, 0x15, 0x81, 0x79, - 0x50, 0x04, 0x46, 0x9c, 0x44, 0x0b, 0x83, 0x34, 0x4f, 0x54, 0x04, 0x2e, 0xbf, 0x1f, 0xe0, 0x52, - 0x15, 0x70, 0xb9, 0x67, 0xa8, 0x52, 0x93, 0xc1, 0x52, 0x1d, 0x02, 0x16, 0x08, 0x4e, 0xd7, 0x36, - 0x8c, 0x4a, 0xad, 0xda, 0xd8, 0xac, 0x6b, 0x4b, 0x8d, 0x45, 0x1f, 0x9c, 0x7a, 0x51, 0x81, 0x5f, - 0xcf, 0x82, 0x09, 0x4a, 0x56, 0xb7, 0xe7, 0xf6, 0x58, 0x3e, 0xdc, 0x53, 0xe6, 0x40, 0xb8, 0x27, - 0xf8, 0x36, 0xe9, 0xb3, 0xfc, 0x01, 0x23, 0x58, 0x3d, 0x11, 0xfd, 0xd4, 0x33, 0xc0, 0x04, 0x05, - 0xd9, 0x77, 0x1a, 0x39, 0x13, 0xd1, 0x4b, 0xb1, 0x62, 0x74, 0x3f, 0xbb, 0xe4, 0xb9, 0xfe, 0x01, - 0x64, 0x8c, 0x65, 0x82, 0x38, 0xb1, 0x6a, 0x75, 0x3d, 0xc7, 0xbd, 0x02, 0xdf, 0x90, 0x01, 0x13, - 0xe7, 0x90, 0xdb, 0xb5, 0x1c, 0xfb, 0xc0, 0x66, 0xe9, 0x0d, 0x60, 0xba, 0xe3, 0xa2, 0x7d, 0xcb, - 0xd9, 0xeb, 0x86, 0x13, 0x73, 0x3e, 0x49, 0x85, 0x60, 0xd2, 0xdc, 0xf3, 0x76, 0x1c, 0x37, 0x3c, - 0x37, 0xef, 0xbf, 0xab, 0x67, 0x00, 0xa0, 0xcf, 0x55, 0x73, 0x17, 0xb1, 0x2d, 0x60, 0x2e, 0x45, - 0x55, 0x41, 0xce, 0xb3, 0x76, 0x11, 0x0b, 0x7b, 0x47, 0x9e, 0xd5, 0x79, 0x30, 0x41, 0x82, 0x54, - 0xb1, 0x60, 0x60, 0x8a, 0xee, 0xbf, 0xc2, 0xff, 0xae, 0x80, 0xe9, 0x15, 0xe4, 0x31, 0x52, 0xbb, - 0x7c, 0xf4, 0x99, 0x98, 0xd0, 0xd0, 0xb8, 0x7b, 0x6d, 0x9b, 0x5d, 0xff, 0xb7, 0x60, 0xf5, 0x4d, - 0x4c, 0x0c, 0x43, 0xf0, 0x29, 0x5c, 0x94, 0x4d, 0xf8, 0xee, 0xac, 0xec, 0x79, 0x47, 0xc6, 0xcc, - 0x05, 0x8e, 0xc0, 0x48, 0xd9, 0x9a, 0xdc, 0x67, 0x39, 0x0e, 0x84, 0x44, 0xe5, 0x4b, 0x62, 0xc5, - 0xe8, 0x41, 0x6e, 0xc9, 0x93, 0x92, 0x83, 0x29, 0x49, 0x5f, 0xbc, 0xbe, 0xa5, 0x80, 0xe9, 0xfa, - 0x8e, 0x73, 0x89, 0x11, 0xc0, 0x5f, 0x88, 0x1a, 0x07, 0xd5, 0x75, 0x60, 0x6a, 0xbf, 0x07, 0xa6, - 0x30, 0x21, 0xfa, 0xde, 0x4e, 0xf8, 0x88, 0x92, 0x14, 0x26, 0x8e, 0xb8, 0x91, 0xdf, 0xaa, 0xa9, - 0x7e, 0x3f, 0x98, 0x60, 0x54, 0xb3, 0xf9, 0x73, 0x3c, 0xc0, 0x7e, 0x66, 0xbe, 0x81, 0x39, 0xb1, - 0x81, 0xc9, 0x90, 0x8f, 0x6e, 0xdc, 0x18, 0x02, 0x8f, 0x67, 0xc9, 0x39, 0x79, 0x1f, 0xf8, 0xf2, - 0x08, 0x80, 0x87, 0xdf, 0xce, 0xc8, 0xae, 0x32, 0x05, 0x1c, 0x08, 0x28, 0x38, 0x54, 0x20, 0xf7, - 0x81, 0xc5, 0x8d, 0xe1, 0x6a, 0xea, 0x1c, 0x98, 0x59, 0xb2, 0xb6, 0xb6, 0x82, 0x5e, 0xef, 0x25, - 0x19, 0x39, 0x96, 0x46, 0xef, 0x50, 0x62, 0xa3, 0x65, 0xcf, 0x75, 0x91, 0xed, 0x37, 0x8a, 0xa9, - 0x53, 0x4f, 0xaa, 0x7a, 0x0b, 0x38, 0xee, 0x77, 0xf4, 0x7e, 0x46, 0x2a, 0x96, 0xbd, 0xc9, 0xf0, - 0x9b, 0xd2, 0x5b, 0x14, 0x3e, 0x47, 0xf9, 0x26, 0x45, 0x28, 0xe0, 0xbd, 0x60, 0x76, 0x87, 0xe6, - 0x26, 0xf3, 0x38, 0xbf, 0xb3, 0x3c, 0xdd, 0x13, 0x30, 0x73, 0x1d, 0x75, 0xbb, 0xe6, 0x36, 0xd2, - 0xc5, 0xcc, 0x3d, 0xea, 0xab, 0x24, 0xb9, 0xb5, 0x42, 0x6e, 0xb7, 0x43, 0xa2, 0x25, 0xe9, 0x4b, - 0xc7, 0x57, 0x1f, 0x0f, 0x72, 0xcb, 0x56, 0x1b, 0xc1, 0x9f, 0xca, 0x82, 0x29, 0x1d, 0x35, 0x1d, - 0xbb, 0x89, 0xdf, 0x38, 0x7f, 0x85, 0x7f, 0xe4, 0x75, 0xe7, 0x01, 0x11, 0x9a, 0x5b, 0x85, 0x06, - 0xe1, 0x72, 0x16, 0x82, 0x32, 0x22, 0xf4, 0xe6, 0x75, 0x01, 0x6f, 0xca, 0x02, 0x6f, 0x6e, 0x97, - 0x2f, 0x6a, 0x0c, 0xf1, 0xb8, 0xb1, 0x1d, 0xb9, 0xb5, 0xd5, 0x76, 0x4c, 0x61, 0x25, 0xa3, 0xd7, - 0xb6, 0xb9, 0x15, 0x14, 0x7d, 0xb7, 0x73, 0xc7, 0xdb, 0xb0, 0x6c, 0x3b, 0x38, 0xdf, 0x78, 0x20, - 0x5d, 0xdc, 0x84, 0x8b, 0x0d, 0x11, 0x41, 0xda, 0xce, 0x6a, 0x8f, 0x90, 0xec, 0x9b, 0xc1, 0xdc, - 0x85, 0x2b, 0x1e, 0xea, 0xb2, 0x5c, 0xac, 0xda, 0x9c, 0xde, 0x93, 0x0a, 0xdf, 0x23, 0x15, 0x4a, - 0x22, 0xa6, 0xc2, 0x64, 0xac, 0x5e, 0x1d, 0xc2, 0x9c, 0x3f, 0x09, 0x8a, 0xd5, 0xda, 0x92, 0x46, - 0xdc, 0x67, 0x7c, 0x7f, 0x84, 0x6d, 0xf8, 0x52, 0x05, 0xcc, 0x90, 0xbd, 0x68, 0x1f, 0x85, 0x1b, - 0x25, 0xf6, 0xbf, 0xe1, 0x97, 0xa4, 0x5d, 0x6b, 0x48, 0x93, 0xf9, 0x0a, 0xa2, 0x19, 0xbd, 0x65, - 0xb5, 0x7b, 0x19, 0x9d, 0xd7, 0x7b, 0x52, 0xfb, 0x00, 0xa2, 0xf4, 0x05, 0xe4, 0xb7, 0xa4, 0xfc, - 0x6b, 0x06, 0x51, 0x77, 0x54, 0xa8, 0x7c, 0x40, 0x01, 0xd3, 0x78, 0xfe, 0xe7, 0x83, 0x52, 0x13, - 0x40, 0x71, 0xec, 0xf6, 0x95, 0x70, 0x8e, 0xeb, 0xbf, 0x26, 0x52, 0x92, 0x3f, 0x97, 0x9e, 0x86, - 0x11, 0x16, 0x71, 0xb4, 0x8c, 0x09, 0xbf, 0xf7, 0x4b, 0x4d, 0xce, 0x06, 0x10, 0x77, 0x54, 0xf0, - 0xfd, 0x7a, 0x1e, 0x14, 0x36, 0x3b, 0x04, 0xb9, 0xaf, 0x65, 0x65, 0x82, 0x27, 0x1f, 0xf0, 0xad, - 0xc6, 0x66, 0x56, 0xdb, 0x69, 0x9a, 0xed, 0x8d, 0xf0, 0x90, 0x4a, 0x98, 0xa0, 0xde, 0xc3, 0xdc, - 0xad, 0xe8, 0x09, 0x9f, 0x9b, 0x63, 0xe3, 0x0a, 0x13, 0x1e, 0x71, 0x7e, 0xec, 0xb7, 0x81, 0x13, - 0x2d, 0xab, 0x6b, 0x5e, 0x68, 0x23, 0xcd, 0x6e, 0xba, 0x57, 0x28, 0x3b, 0xa8, 0x6b, 0xca, 0xc1, - 0x0f, 0xea, 0x7d, 0x20, 0xdf, 0xf5, 0xae, 0xb4, 0xe9, 0xc4, 0x8f, 0x77, 0x7b, 0x8f, 0xac, 0xaa, - 0x8e, 0xb3, 0xeb, 0xf4, 0x2f, 0xfe, 0x4e, 0xc1, 0x09, 0xc9, 0xfb, 0x11, 0xef, 0x02, 0x05, 0xc7, - 0xb5, 0xb6, 0x2d, 0x1a, 0xae, 0x7f, 0xee, 0x40, 0xb8, 0x2c, 0x6a, 0x0a, 0xd4, 0x48, 0x16, 0x9d, - 0x65, 0x85, 0xef, 0x97, 0xbe, 0xa4, 0x9f, 0xd0, 0x48, 0xc1, 0x19, 0xcf, 0x1d, 0x89, 0xaf, 0x91, - 0x8a, 0x9a, 0x11, 0x4d, 0x56, 0xfa, 0x83, 0xf0, 0xe7, 0xb2, 0x60, 0x72, 0xc9, 0xb9, 0x64, 0x13, - 0x81, 0xbd, 0x5b, 0xce, 0x66, 0xed, 0x73, 0x7e, 0x4a, 0xbc, 0xd9, 0x29, 0xd6, 0x59, 0x9a, 0xb4, - 0xd6, 0xaf, 0x32, 0x02, 0x86, 0x58, 0x0d, 0x90, 0xbc, 0x89, 0x27, 0xae, 0x9e, 0xf4, 0xf9, 0xfa, - 0x47, 0x0a, 0xc8, 0x2d, 0xb9, 0x4e, 0x07, 0xbe, 0x35, 0x93, 0x60, 0x1f, 0xb9, 0xe5, 0x3a, 0x1d, - 0x83, 0x5c, 0xb2, 0x11, 0x7a, 0x88, 0xf3, 0x69, 0xea, 0xdd, 0x60, 0xb2, 0xe3, 0x74, 0x2d, 0xcf, - 0x9f, 0x0e, 0xcc, 0xdd, 0xf9, 0xb8, 0xbe, 0x5a, 0xb9, 0xc1, 0x32, 0xe9, 0x41, 0x76, 0xdc, 0xfb, - 0x12, 0x16, 0x62, 0xbe, 0x60, 0x36, 0xfa, 0x17, 0x8d, 0xf4, 0xa4, 0xc2, 0x97, 0xf1, 0x48, 0x3e, - 0x53, 0x44, 0xf2, 0x09, 0x7d, 0x38, 0xec, 0x3a, 0x9d, 0x91, 0xec, 0xfc, 0xbc, 0x2a, 0x40, 0xf5, - 0x59, 0x02, 0xaa, 0xb7, 0x4a, 0xd5, 0x99, 0x3e, 0xa2, 0xef, 0xcf, 0x01, 0x40, 0xcc, 0x85, 0x4d, - 0x3c, 0x91, 0x91, 0xb3, 0x95, 0x7e, 0x22, 0xc7, 0xf1, 0xb2, 0x24, 0xf2, 0xf2, 0x49, 0x11, 0xd6, - 0x08, 0x29, 0x3e, 0x82, 0xa3, 0x25, 0x90, 0xdf, 0xc3, 0x9f, 0x19, 0x47, 0x25, 0x8b, 0x20, 0xaf, - 0x3a, 0xfd, 0x13, 0xfe, 0x61, 0x06, 0xe4, 0x49, 0x82, 0x7a, 0x06, 0x00, 0x32, 0x40, 0xd3, 0xb3, - 0x06, 0x19, 0x32, 0x14, 0x73, 0x29, 0x44, 0x5a, 0xad, 0x16, 0xfb, 0x4c, 0x4d, 0xdf, 0x30, 0x01, - 0xff, 0x4d, 0x86, 0x6d, 0x52, 0x16, 0x1b, 0xc8, 0xb9, 0x14, 0xfc, 0x37, 0x79, 0x5b, 0x43, 0x5b, - 0x34, 0xd6, 0x6a, 0x4e, 0x0f, 0x13, 0x82, 0xbf, 0xd7, 0x82, 0xfb, 0x34, 0xfc, 0xbf, 0x49, 0x0a, - 0x9e, 0xd4, 0x12, 0xb1, 0x5c, 0x0c, 0xab, 0x28, 0x90, 0x4c, 0xbd, 0xc9, 0xf0, 0xf5, 0x81, 0xd8, - 0x2c, 0x09, 0x62, 0x73, 0x47, 0x02, 0xf6, 0xa6, 0x2f, 0x3c, 0x5f, 0xc9, 0x83, 0xa9, 0xaa, 0xd3, - 0x62, 0xb2, 0xc3, 0x4d, 0xfc, 0x3e, 0x9e, 0x4f, 0x34, 0xf1, 0x0b, 0xca, 0x88, 0x10, 0x90, 0x07, - 0x44, 0x01, 0x91, 0x2b, 0x81, 0x97, 0x0f, 0x75, 0x11, 0x14, 0x88, 0xf4, 0x1e, 0xbc, 0x27, 0x25, - 0xae, 0x08, 0xc2, 0x5a, 0x9d, 0xfd, 0xf9, 0xef, 0x4e, 0xc6, 0xfe, 0x0b, 0xc8, 0x93, 0x06, 0xc6, - 0x78, 0x05, 0x8b, 0x0d, 0xcd, 0xc6, 0x37, 0x54, 0x89, 0x6f, 0x68, 0xae, 0xb7, 0xa1, 0x49, 0xe6, - 0xf3, 0x51, 0x12, 0x92, 0xbe, 0x8c, 0xff, 0xdd, 0x04, 0x00, 0x55, 0x73, 0xdf, 0xda, 0xa6, 0x5b, - 0x76, 0x7f, 0xe6, 0xcf, 0x63, 0xd8, 0xe6, 0xda, 0x7f, 0xe5, 0x06, 0xc2, 0xbb, 0xc1, 0x04, 0x1b, - 0xf7, 0x58, 0x43, 0xae, 0x17, 0x1a, 0x12, 0x96, 0x42, 0xcd, 0xcb, 0xcb, 0x9e, 0xee, 0xe7, 0x17, - 0x6e, 0x8e, 0xcb, 0xf6, 0xdc, 0x1c, 0xd7, 0x77, 0x77, 0x20, 0xea, 0x3e, 0x39, 0xf8, 0x1e, 0xe9, - 0x9b, 0x3f, 0x38, 0x7a, 0xb8, 0x16, 0x45, 0xa8, 0xe0, 0x5d, 0x60, 0xc2, 0x09, 0x76, 0x19, 0x95, - 0xc8, 0xf5, 0xac, 0x8a, 0xbd, 0xe5, 0xe8, 0x7e, 0x4e, 0xc9, 0x3b, 0x3d, 0xa4, 0xe8, 0x18, 0x8b, - 0xef, 0xfc, 0xe9, 0x15, 0x3f, 0x6e, 0x0d, 0x6e, 0xc7, 0x79, 0xcb, 0xdb, 0x59, 0xb3, 0xec, 0x8b, - 0x5d, 0xf8, 0x9f, 0xe4, 0x2c, 0x48, 0x0e, 0xff, 0x6c, 0x32, 0xfc, 0xc5, 0x70, 0x00, 0x75, 0x11, - 0xb5, 0xfb, 0xa2, 0x4a, 0xe9, 0x4f, 0x6d, 0x04, 0x80, 0xf7, 0x80, 0x02, 0x25, 0x94, 0x75, 0xa2, - 0x67, 0x23, 0xf1, 0x0b, 0x4a, 0xd2, 0xd9, 0x1f, 0xf0, 0xdd, 0x01, 0x8e, 0xe7, 0x04, 0x1c, 0x17, - 0x0f, 0x45, 0x59, 0xea, 0x90, 0x9e, 0x7d, 0x0a, 0x98, 0x60, 0x9c, 0x56, 0xe7, 0x78, 0x2d, 0x2e, - 0x1e, 0x53, 0x01, 0x28, 0xac, 0x3b, 0xfb, 0xc8, 0x70, 0x8a, 0x19, 0xfc, 0x8c, 0xe9, 0x33, 0x9c, - 0x62, 0x16, 0xbe, 0x7a, 0x12, 0x4c, 0x06, 0x81, 0x42, 0x3e, 0x97, 0x05, 0xc5, 0xf0, 0x8e, 0x77, - 0xda, 0x22, 0x79, 0x97, 0xbd, 0x5f, 0x90, 0xde, 0x77, 0x0f, 0x02, 0x78, 0xf4, 0x56, 0x26, 0x79, - 0x89, 0xf5, 0x5b, 0xa4, 0xf6, 0xe1, 0x65, 0x6b, 0x49, 0x5f, 0xd5, 0x3e, 0x95, 0x05, 0xf9, 0x72, - 0xdb, 0xb1, 0x51, 0xa2, 0x3b, 0xac, 0xfb, 0xef, 0x28, 0xc0, 0xe7, 0x65, 0x65, 0x6d, 0x8d, 0x90, - 0x01, 0xb8, 0x6e, 0x49, 0xde, 0xca, 0x0d, 0x52, 0xb1, 0x45, 0xa7, 0xcf, 0xd0, 0xaf, 0x67, 0xc1, - 0x14, 0x0d, 0xb9, 0x51, 0x6a, 0xb7, 0xe1, 0xe3, 0x42, 0xa6, 0xf6, 0x09, 0xb6, 0x02, 0x7f, 0x4b, - 0xda, 0x6f, 0x3a, 0x68, 0x55, 0x50, 0x76, 0x82, 0xd8, 0x23, 0xc9, 0xdc, 0x78, 0xe5, 0xf6, 0xc4, - 0x06, 0x12, 0x94, 0x3e, 0xab, 0xff, 0x34, 0x8b, 0x0d, 0x00, 0xfb, 0xe2, 0x86, 0x8b, 0xf6, 0x2d, - 0x74, 0x09, 0x5e, 0x1b, 0x32, 0xfb, 0x60, 0x3c, 0x81, 0x37, 0x49, 0x2f, 0xe2, 0x70, 0x45, 0x46, - 0x6e, 0x49, 0x4d, 0xb7, 0xc3, 0x4c, 0xac, 0x17, 0xef, 0x0d, 0xf2, 0xc0, 0x15, 0xa3, 0xf3, 0xd9, - 0x25, 0xd7, 0x6c, 0xa2, 0xa9, 0x48, 0x9f, 0xb1, 0x8f, 0x4c, 0x80, 0xc9, 0x4d, 0xbb, 0xdb, 0x69, - 0x9b, 0xdd, 0x1d, 0xf8, 0x1d, 0x25, 0xb8, 0x42, 0xfa, 0x69, 0xc2, 0xb1, 0xe5, 0x1f, 0xd9, 0x43, - 0xae, 0xef, 0x86, 0x43, 0x5f, 0xfa, 0xdf, 0x51, 0x0a, 0xdf, 0xaf, 0xc8, 0x4e, 0x52, 0xfd, 0x4a, - 0xe3, 0xef, 0x56, 0xae, 0x80, 0xc9, 0x8e, 0xd5, 0xf4, 0xf6, 0xdc, 0xe0, 0xc6, 0xcb, 0x27, 0xcb, - 0x95, 0xb2, 0x41, 0xff, 0xd2, 0x83, 0xdf, 0xa1, 0x09, 0x26, 0x58, 0xe2, 0x81, 0x6d, 0xa1, 0x83, - 0xc7, 0xf0, 0x4e, 0x83, 0x82, 0xe9, 0x7a, 0x56, 0xd7, 0xbf, 0x51, 0x98, 0xbd, 0xe1, 0xee, 0x92, - 0x3e, 0x6d, 0xba, 0x6d, 0x3f, 0xc0, 0x41, 0x90, 0x00, 0x3f, 0x20, 0x35, 0x7f, 0x8c, 0x6f, 0x79, - 0x32, 0xc8, 0x1f, 0x1c, 0x62, 0xad, 0xf9, 0x6a, 0x70, 0x95, 0x5e, 0x32, 0xb4, 0x06, 0x3d, 0x0f, - 0x1f, 0x1c, 0x7d, 0x6f, 0xc1, 0xef, 0xf0, 0xeb, 0x77, 0xe2, 0x18, 0xc1, 0xb8, 0x18, 0x8e, 0x11, - 0x41, 0x42, 0xcc, 0x18, 0xf1, 0xeb, 0xd2, 0xbb, 0x3b, 0x01, 0x4b, 0x06, 0xac, 0xe5, 0xc5, 0x5d, - 0x2c, 0xf2, 0x41, 0xa9, 0x9d, 0x9a, 0x41, 0x35, 0x1d, 0x21, 0xfb, 0x7f, 0x75, 0x02, 0x4c, 0xac, - 0x98, 0xed, 0x36, 0x72, 0xaf, 0xe0, 0xa1, 0xa5, 0xe8, 0x53, 0xb8, 0x6e, 0xda, 0xd6, 0x16, 0x9e, - 0xdf, 0xc7, 0x76, 0x7a, 0xef, 0x91, 0x0e, 0x5a, 0xc9, 0xea, 0x58, 0xe8, 0x2d, 0x3f, 0x82, 0xe7, - 0xb7, 0x83, 0x9c, 0x65, 0x6f, 0x39, 0xac, 0xeb, 0xeb, 0x5d, 0x45, 0xf7, 0x7f, 0x26, 0x53, 0x10, - 0x92, 0x51, 0x32, 0x6e, 0xa5, 0x24, 0x15, 0xe9, 0xf7, 0x80, 0xbf, 0x91, 0x03, 0xb3, 0x3e, 0x11, - 0x15, 0xbb, 0x85, 0x2e, 0xf3, 0x4b, 0x2a, 0x2f, 0xcd, 0xc9, 0x9e, 0xb5, 0xe9, 0x6d, 0x0f, 0x29, - 0x2a, 0x82, 0xa5, 0x06, 0x00, 0x4d, 0xd3, 0x43, 0xdb, 0x8e, 0x6b, 0x05, 0xfd, 0xda, 0x53, 0x93, - 0x94, 0x56, 0xa6, 0x7f, 0x5f, 0xd1, 0xb9, 0x72, 0xd4, 0xfb, 0xc0, 0x34, 0x0a, 0x8e, 0xd3, 0xfa, - 0x4b, 0x2e, 0xb1, 0x78, 0xf1, 0xf9, 0xe1, 0x9f, 0x4a, 0x1d, 0xe9, 0x91, 0x69, 0x66, 0x32, 0xcc, - 0x1a, 0xc3, 0xe9, 0xd0, 0x66, 0x75, 0xbd, 0xa4, 0xd7, 0x57, 0x4b, 0x6b, 0x6b, 0x95, 0xea, 0x4a, - 0x10, 0x1b, 0x42, 0x05, 0x73, 0x4b, 0xb5, 0xf3, 0x55, 0x2e, 0x78, 0x47, 0x0e, 0x6e, 0x80, 0x49, - 0x9f, 0x5f, 0xfd, 0x9c, 0x1d, 0x79, 0x9e, 0x31, 0x67, 0x47, 0x2e, 0x09, 0x1b, 0x59, 0x56, 0x33, - 0x70, 0x98, 0x21, 0xcf, 0xf0, 0x0f, 0x4c, 0x90, 0x27, 0x6b, 0xe3, 0xf0, 0x1d, 0xe4, 0xca, 0xe1, - 0x4e, 0xdb, 0x6c, 0x22, 0xb8, 0x9b, 0xc0, 0xaa, 0xf6, 0xa3, 0xa8, 0x67, 0x0f, 0x44, 0x51, 0x27, - 0x8f, 0xcc, 0x7a, 0x3b, 0xd9, 0x6f, 0x3d, 0x5e, 0xa7, 0x59, 0xc4, 0xd3, 0x2f, 0xb1, 0xbb, 0x24, - 0x74, 0x19, 0x9f, 0x91, 0x19, 0x21, 0x92, 0xd1, 0x34, 0x25, 0xb3, 0x28, 0xe5, 0xf6, 0x53, 0xe2, - 0x28, 0x4a, 0x5f, 0xe3, 0xbf, 0x98, 0x03, 0xf9, 0x7a, 0xa7, 0x6d, 0x79, 0xf0, 0x15, 0xd9, 0x91, - 0x60, 0x46, 0x23, 0xdf, 0x2b, 0x03, 0x23, 0xdf, 0x87, 0xbb, 0xa0, 0x39, 0x89, 0x5d, 0x50, 0x03, - 0x5d, 0xf6, 0xc4, 0x5d, 0xd0, 0xbb, 0x59, 0x7c, 0x27, 0xba, 0x87, 0xfa, 0x84, 0x3e, 0x2c, 0x25, - 0xcd, 0xea, 0x13, 0x38, 0xec, 0xec, 0x53, 0x58, 0xfc, 0x22, 0x00, 0x0a, 0x8b, 0x35, 0xc3, 0xa8, - 0xad, 0x17, 0x8f, 0x91, 0xc0, 0x17, 0xb5, 0x8d, 0x62, 0x46, 0x9d, 0x02, 0xf9, 0x4a, 0xb5, 0xaa, - 0xe9, 0xc5, 0x2c, 0x89, 0xa8, 0x54, 0x31, 0xd6, 0xb4, 0xa2, 0x22, 0x86, 0x41, 0x8e, 0x35, 0xa3, - 0xc5, 0xba, 0xd3, 0x14, 0x2f, 0x39, 0x83, 0x3a, 0x9a, 0x9e, 0xf4, 0x85, 0xeb, 0xbf, 0x29, 0x20, - 0xbf, 0x8e, 0xdc, 0x6d, 0x04, 0x7f, 0x24, 0xc1, 0x66, 0xdd, 0x96, 0xe5, 0x76, 0x69, 0xfc, 0xa9, - 0x70, 0xb3, 0x8e, 0x4f, 0x53, 0x6f, 0x02, 0xb3, 0x5d, 0xd4, 0x74, 0xec, 0x96, 0x9f, 0x89, 0xf6, - 0x47, 0x62, 0x22, 0x7c, 0x79, 0x42, 0xc8, 0x08, 0xa1, 0x23, 0xd9, 0x71, 0x4b, 0x02, 0x4c, 0xbf, - 0x5a, 0xd3, 0x07, 0xe6, 0x9b, 0x0a, 0xfe, 0xa9, 0x73, 0x05, 0xbe, 0x5c, 0x7a, 0x17, 0xf5, 0x36, - 0x50, 0x20, 0x62, 0xea, 0x8f, 0xd1, 0xfd, 0xfb, 0x63, 0x96, 0x47, 0x5d, 0x04, 0x27, 0xba, 0xa8, - 0x8d, 0x9a, 0x1e, 0x6a, 0x61, 0xd5, 0xd5, 0x07, 0x76, 0x0a, 0x07, 0xb3, 0xc3, 0x3f, 0xe6, 0x01, - 0xbc, 0x57, 0x04, 0xf0, 0xe6, 0x3e, 0xac, 0xc4, 0x0d, 0x8a, 0xb6, 0x95, 0x71, 0x33, 0xea, 0x6d, - 0x27, 0x58, 0xdc, 0xf6, 0xdf, 0xf1, 0xb7, 0x1d, 0x6f, 0xb7, 0x4d, 0xbe, 0x31, 0x0f, 0x7e, 0xff, - 0x5d, 0x5d, 0x00, 0x13, 0xa6, 0x7d, 0x85, 0x7c, 0xca, 0xc5, 0xb4, 0xda, 0xcf, 0x04, 0x5f, 0x1d, - 0x20, 0x7f, 0xbf, 0x80, 0xfc, 0x93, 0xe4, 0xc8, 0x4d, 0x1f, 0xf8, 0x1f, 0x9f, 0x00, 0xf9, 0x0d, - 0xb3, 0xeb, 0x21, 0xf8, 0x7f, 0x2b, 0xb2, 0xc8, 0xdf, 0x0c, 0xe6, 0xb6, 0x9c, 0xe6, 0x5e, 0x17, - 0xb5, 0x44, 0xa5, 0xec, 0x49, 0x1d, 0x05, 0xe6, 0xea, 0xad, 0xa0, 0xe8, 0x27, 0xb2, 0x62, 0xfd, - 0xed, 0xf4, 0x03, 0xe9, 0x24, 0x98, 0x6e, 0x77, 0xc3, 0x74, 0xbd, 0xda, 0x16, 0x49, 0x0b, 0x82, - 0xe9, 0xf2, 0x89, 0x02, 0xf4, 0x85, 0x18, 0xe8, 0x27, 0xa2, 0xa1, 0x9f, 0x94, 0x80, 0x5e, 0x2d, - 0x81, 0xc9, 0x2d, 0xab, 0x8d, 0xc8, 0x0f, 0x53, 0xe4, 0x87, 0x7e, 0x63, 0x12, 0xe1, 0x7d, 0x30, - 0x26, 0x2d, 0x5b, 0x6d, 0xa4, 0x07, 0xbf, 0xf9, 0x13, 0x19, 0x10, 0x4e, 0x64, 0xd6, 0xa8, 0x7f, - 0x2b, 0x36, 0xbc, 0x6c, 0x73, 0x17, 0xf9, 0x8b, 0x68, 0x36, 0x3b, 0x3d, 0xd2, 0x32, 0x3d, 0x93, - 0x80, 0x31, 0xa3, 0x93, 0x67, 0xd1, 0xbf, 0x43, 0xe9, 0xf5, 0xef, 0x78, 0xa1, 0x92, 0xac, 0x47, - 0xf4, 0x89, 0x8d, 0xd0, 0xa8, 0x0b, 0x3e, 0x40, 0xd4, 0x52, 0x0c, 0xde, 0x31, 0x30, 0x4d, 0xd3, - 0x45, 0xde, 0x06, 0xef, 0x51, 0x91, 0xd7, 0xc5, 0x44, 0xe2, 0x5a, 0xd7, 0xad, 0x9b, 0xbb, 0x88, - 0x54, 0x56, 0xc6, 0xdf, 0x98, 0xcb, 0xd4, 0x81, 0xf4, 0xb0, 0xff, 0xcd, 0x8f, 0xba, 0xff, 0xed, - 0xd7, 0xc6, 0xf4, 0xd5, 0xf0, 0xb5, 0x39, 0xa0, 0x94, 0xf7, 0xbc, 0xc7, 0x74, 0xf7, 0xfb, 0x5d, - 0x69, 0x7f, 0x15, 0xd6, 0x9f, 0x45, 0xde, 0x39, 0x3d, 0xa6, 0xde, 0x37, 0xa1, 0x94, 0xc8, 0xf9, - 0xc5, 0x44, 0xb5, 0x2d, 0x7d, 0x19, 0x79, 0xab, 0x12, 0x38, 0x3c, 0xbe, 0x20, 0x73, 0x78, 0xd3, - 0x1c, 0xd2, 0xfe, 0x89, 0xeb, 0x19, 0x82, 0x77, 0xbf, 0xe3, 0xc9, 0x09, 0xa1, 0xb7, 0xc8, 0x36, - 0x39, 0x61, 0xe5, 0x8c, 0x4e, 0x5f, 0xe0, 0x2b, 0xa5, 0xdd, 0xc0, 0x29, 0xdb, 0x62, 0x5d, 0x02, - 0x93, 0xd9, 0x54, 0x72, 0xf7, 0x0a, 0xc6, 0x54, 0x9b, 0x3e, 0x60, 0xff, 0x10, 0xbd, 0x64, 0x38, - 0x0c, 0x62, 0xf0, 0x35, 0xd2, 0xdb, 0x4a, 0xb4, 0xd9, 0x03, 0xd6, 0x0b, 0x93, 0xf1, 0x5b, 0x6e, - 0xd3, 0x29, 0xb6, 0xe2, 0xf4, 0x39, 0xfe, 0x0d, 0x05, 0x14, 0xe8, 0x56, 0x22, 0x7c, 0x73, 0x26, - 0xc1, 0x85, 0xcc, 0x9e, 0xe8, 0x0a, 0x18, 0xbc, 0x27, 0x59, 0x73, 0x10, 0x5c, 0x06, 0x73, 0x89, - 0x5c, 0x06, 0xc5, 0x73, 0x95, 0x12, 0x7a, 0x44, 0xdb, 0x98, 0xf2, 0x74, 0x32, 0x89, 0x86, 0xf5, - 0x25, 0x28, 0x7d, 0xbc, 0x7f, 0x32, 0x0f, 0x66, 0x68, 0xd5, 0xe7, 0xad, 0xd6, 0x36, 0xf2, 0xe0, - 0xbb, 0xb2, 0xdf, 0x3b, 0xa8, 0xab, 0x55, 0x30, 0x73, 0x89, 0x90, 0xbd, 0x66, 0x5e, 0x71, 0xf6, - 0x3c, 0xb6, 0x72, 0x71, 0x6b, 0xec, 0xba, 0x07, 0x6d, 0xe7, 0x02, 0xfd, 0x43, 0x17, 0xfe, 0xc7, - 0x3c, 0xa6, 0x0b, 0xfe, 0xd4, 0x11, 0xab, 0x40, 0x8c, 0x2c, 0x3e, 0x49, 0x3d, 0x0d, 0x0a, 0xfb, - 0x16, 0xba, 0x54, 0x69, 0x31, 0xeb, 0x96, 0xbd, 0xc1, 0x0f, 0x49, 0xef, 0xbf, 0xf2, 0x70, 0x33, - 0x5a, 0xd2, 0x95, 0x42, 0xb9, 0x5d, 0xd8, 0x81, 0x64, 0x8d, 0xe1, 0x8c, 0xaf, 0x78, 0x6f, 0x5f, - 0x92, 0xfb, 0xe0, 0xa3, 0x0c, 0xe7, 0x04, 0x97, 0xf2, 0x53, 0x06, 0x8c, 0xf8, 0x4a, 0x3f, 0xb9, - 0xc3, 0xfb, 0x03, 0xaa, 0x4e, 0x9f, 0xf3, 0xaf, 0x57, 0xc0, 0x54, 0x1d, 0x79, 0xcb, 0x16, 0x6a, - 0xb7, 0xba, 0xd0, 0x3d, 0xbc, 0x69, 0x74, 0x3b, 0x28, 0x6c, 0x91, 0xc2, 0x06, 0x9d, 0x3f, 0x60, - 0xd9, 0xe0, 0x6b, 0xb3, 0xb2, 0x3b, 0xbb, 0x6c, 0xf5, 0xcd, 0xa7, 0x76, 0x24, 0x30, 0xc9, 0x79, - 0xe6, 0xc6, 0xd7, 0x9c, 0x3e, 0x4a, 0x6f, 0x53, 0xc0, 0x0c, 0xbb, 0xe8, 0xab, 0xd4, 0xb6, 0xb6, - 0x6d, 0xb8, 0x37, 0x02, 0x0d, 0x51, 0xef, 0x00, 0x79, 0x13, 0x97, 0xc6, 0x9c, 0xf4, 0x61, 0xdf, - 0xce, 0x93, 0xd4, 0xa7, 0xd3, 0x8c, 0x09, 0x62, 0xf4, 0x85, 0x82, 0xed, 0xd3, 0x3c, 0xc6, 0x18, - 0x7d, 0x03, 0x2b, 0x4f, 0x1f, 0xb1, 0x2f, 0x2b, 0xe0, 0x24, 0x23, 0xe0, 0x1c, 0x72, 0x3d, 0xab, - 0x69, 0xb6, 0x29, 0x72, 0x2f, 0xca, 0x8c, 0x02, 0xba, 0x55, 0x30, 0xbb, 0xcf, 0x17, 0xcb, 0x20, - 0x3c, 0xdb, 0x17, 0x42, 0x81, 0x00, 0x5d, 0xfc, 0x31, 0x41, 0xac, 0x33, 0x81, 0xab, 0x42, 0x99, - 0x63, 0x8c, 0x75, 0x26, 0x4d, 0x44, 0xfa, 0x10, 0xbf, 0x2c, 0x47, 0xc3, 0xff, 0x85, 0xdd, 0xe7, - 0x9f, 0x49, 0x63, 0xbb, 0x09, 0xa6, 0x09, 0x96, 0xf4, 0x47, 0xb6, 0x0c, 0x11, 0x23, 0xc4, 0x41, - 0xbf, 0xc3, 0xee, 0x14, 0x0a, 0xfe, 0xd5, 0xf9, 0x72, 0xe0, 0x79, 0x00, 0xc2, 0x4f, 0x7c, 0x27, - 0x9d, 0x89, 0xea, 0xa4, 0xb3, 0x72, 0x9d, 0xf4, 0x9b, 0xa4, 0x83, 0x97, 0xf4, 0x27, 0xfb, 0xf0, - 0xe2, 0x21, 0x17, 0xb6, 0x62, 0x70, 0xed, 0xe9, 0xcb, 0xc5, 0xab, 0x73, 0xbd, 0x37, 0x3a, 0x7f, - 0x74, 0x24, 0xf3, 0x29, 0xbe, 0x3f, 0x50, 0x7a, 0xfa, 0x83, 0x43, 0x58, 0xd2, 0xb7, 0x80, 0xe3, - 0xb4, 0x8a, 0x72, 0x40, 0x56, 0x9e, 0x86, 0x66, 0xe8, 0x49, 0x86, 0x8f, 0x0e, 0x21, 0x04, 0x83, - 0xae, 0x9b, 0x8e, 0xeb, 0xe4, 0x92, 0x19, 0xbb, 0x49, 0x05, 0xe4, 0xe8, 0x6e, 0xa9, 0xfe, 0x7a, - 0x8e, 0x5a, 0xbb, 0x9b, 0xe4, 0xda, 0x27, 0xf8, 0x85, 0xdc, 0x28, 0x46, 0x84, 0x07, 0x40, 0x8e, - 0xb8, 0xaa, 0x2b, 0x91, 0x4b, 0x1a, 0x61, 0x95, 0xe1, 0x9d, 0x5c, 0xe8, 0xb2, 0xb7, 0x7a, 0x4c, - 0x27, 0x7f, 0xaa, 0xb7, 0x82, 0xe3, 0x17, 0xcc, 0xe6, 0xc5, 0x6d, 0xd7, 0xd9, 0x23, 0x17, 0xe4, - 0x38, 0xec, 0xa6, 0x1d, 0x72, 0x63, 0x99, 0xf8, 0x41, 0xbd, 0xd3, 0x37, 0x1d, 0xf2, 0x83, 0x4c, - 0x87, 0xd5, 0x63, 0xcc, 0x78, 0x50, 0x9f, 0x12, 0x74, 0x3a, 0x85, 0xd8, 0x4e, 0x67, 0xf5, 0x98, - 0xdf, 0xed, 0xa8, 0x4b, 0x60, 0xb2, 0x65, 0xed, 0x93, 0xad, 0x6a, 0x32, 0xeb, 0x1a, 0x74, 0x94, - 0x78, 0xc9, 0xda, 0xa7, 0x1b, 0xdb, 0xab, 0xc7, 0xf4, 0xe0, 0x4f, 0x75, 0x05, 0x4c, 0x91, 0x6d, - 0x01, 0x52, 0xcc, 0x64, 0xa2, 0x63, 0xc2, 0xab, 0xc7, 0xf4, 0xf0, 0x5f, 0x6c, 0x7d, 0xe4, 0xc8, - 0x19, 0x8e, 0xfb, 0xfd, 0xed, 0xf6, 0x4c, 0xa2, 0xed, 0x76, 0xcc, 0x0b, 0xba, 0xe1, 0x7e, 0x1a, - 0xe4, 0x9b, 0x84, 0xc3, 0x59, 0xc6, 0x61, 0xfa, 0xaa, 0xde, 0x0b, 0x72, 0xbb, 0xa6, 0xeb, 0x4f, - 0x9e, 0x6f, 0x1e, 0x5c, 0xee, 0xba, 0xe9, 0x5e, 0xc4, 0x08, 0xe2, 0xbf, 0x16, 0x27, 0x40, 0x9e, - 0x30, 0x2e, 0x78, 0x80, 0x6f, 0xcd, 0x51, 0x33, 0xa4, 0xec, 0xd8, 0x78, 0xd8, 0x37, 0x1c, 0xff, - 0xa0, 0xcb, 0x87, 0x32, 0xa3, 0xb1, 0x20, 0xfb, 0x5e, 0x81, 0xac, 0x44, 0x5e, 0x81, 0xdc, 0x73, - 0x07, 0x67, 0xae, 0xf7, 0x0e, 0xce, 0x70, 0xf9, 0x20, 0x3f, 0xd8, 0x51, 0xe5, 0x8f, 0x87, 0x30, - 0x5d, 0x7a, 0x19, 0x11, 0x3d, 0x03, 0x6f, 0x5b, 0x36, 0xd7, 0x66, 0xff, 0x35, 0x61, 0xa7, 0x94, - 0xd4, 0xa8, 0x19, 0x40, 0x5e, 0xfa, 0x7d, 0xd3, 0xaf, 0xe5, 0xc0, 0x3c, 0xbd, 0xe9, 0x75, 0x1f, - 0x19, 0x8e, 0x78, 0x25, 0x1d, 0xfc, 0xe4, 0x48, 0x84, 0xa6, 0xcf, 0x80, 0xa3, 0xf4, 0x1d, 0x70, - 0x0e, 0x1c, 0x36, 0xce, 0x0d, 0x38, 0x6c, 0x9c, 0x4f, 0xb6, 0x72, 0xf8, 0x3b, 0xbc, 0xfc, 0x6c, - 0x88, 0xf2, 0x73, 0x4f, 0x04, 0x40, 0xfd, 0xf8, 0x32, 0x12, 0xfb, 0xe6, 0x1d, 0x81, 0xa4, 0xd4, - 0x05, 0x49, 0xb9, 0x7f, 0x78, 0x42, 0xd2, 0x97, 0x96, 0xdf, 0xce, 0x81, 0xab, 0x42, 0x62, 0xaa, - 0xe8, 0x12, 0x13, 0x94, 0xcf, 0x8d, 0x44, 0x50, 0x92, 0xc7, 0x32, 0x48, 0x5b, 0x62, 0xfe, 0x50, - 0xfa, 0x0c, 0x50, 0x2f, 0x50, 0x01, 0x6f, 0x22, 0x84, 0xe5, 0x34, 0x28, 0xd0, 0x1e, 0x86, 0x41, - 0xc3, 0xde, 0x12, 0x76, 0x37, 0x72, 0x27, 0x87, 0x64, 0x69, 0x1b, 0x83, 0xfc, 0xb0, 0x75, 0x0d, - 0x63, 0xcf, 0xb5, 0x2b, 0xb6, 0xe7, 0xc0, 0x1f, 0x1b, 0x89, 0xe0, 0x04, 0xde, 0x70, 0xca, 0x30, - 0xde, 0x70, 0x43, 0xad, 0x72, 0xf8, 0x2d, 0x38, 0x92, 0x55, 0x8e, 0x88, 0xca, 0xd3, 0xc7, 0xef, - 0xed, 0x0a, 0xbd, 0xfd, 0xbd, 0x8e, 0xbc, 0x45, 0xd1, 0x42, 0x84, 0x0f, 0x8d, 0x02, 0xc8, 0x93, - 0xbe, 0x99, 0xc4, 0x2e, 0x2d, 0x22, 0x2f, 0xe2, 0x89, 0xa7, 0xd8, 0xe0, 0xf9, 0xc2, 0x74, 0xb0, - 0x87, 0xc2, 0x91, 0x20, 0x25, 0x17, 0x33, 0x3f, 0x01, 0x19, 0xe9, 0x63, 0xf6, 0x12, 0x05, 0x14, - 0xd8, 0x0d, 0xdf, 0x9b, 0xa9, 0x38, 0x4c, 0x88, 0x21, 0x74, 0x25, 0x76, 0xe4, 0x12, 0xdf, 0x83, - 0x9d, 0xde, 0x5e, 0xdc, 0x11, 0x5d, 0x74, 0xfd, 0xcd, 0x2c, 0x98, 0xae, 0x23, 0xaf, 0x6c, 0xba, - 0xae, 0x65, 0x6e, 0x8f, 0xca, 0xe3, 0x5b, 0xd6, 0x7b, 0x18, 0x7e, 0x2b, 0x23, 0x7b, 0x9e, 0x26, - 0x58, 0x08, 0xf7, 0x49, 0x8d, 0x88, 0xed, 0x27, 0x77, 0xc3, 0xf8, 0xa0, 0xd2, 0xc6, 0xe0, 0xb1, - 0x9d, 0x05, 0x13, 0xfe, 0x99, 0xba, 0xdb, 0x85, 0x73, 0x96, 0x3b, 0xde, 0xae, 0x7f, 0x0c, 0x86, - 0x3c, 0x1f, 0x3c, 0xcb, 0x05, 0x5f, 0x95, 0xd0, 0x51, 0x3e, 0xfe, 0x40, 0x60, 0x32, 0x1d, 0x4b, - 0xe2, 0x0e, 0x7f, 0x54, 0x47, 0x00, 0x7f, 0x6b, 0x82, 0x2d, 0x47, 0xae, 0x99, 0x1e, 0xba, 0x0c, - 0xff, 0x4c, 0x01, 0x13, 0x75, 0xe4, 0xe1, 0xf1, 0x16, 0x93, 0x7f, 0x68, 0x09, 0x57, 0xb9, 0x15, - 0x8f, 0x29, 0xb6, 0x86, 0xf1, 0x6c, 0x30, 0xd5, 0x71, 0x9d, 0x26, 0xea, 0x76, 0xd9, 0xea, 0x05, - 0xef, 0xa8, 0xd6, 0x6f, 0xf4, 0x27, 0xa4, 0x2d, 0x6c, 0xf8, 0xff, 0xe8, 0xe1, 0xef, 0x49, 0xcd, - 0x00, 0x5a, 0x12, 0x6b, 0xe0, 0xb8, 0xcd, 0x80, 0xb8, 0xca, 0xd3, 0x07, 0xfa, 0x33, 0x0a, 0x98, - 0xa9, 0x23, 0x2f, 0xe0, 0x62, 0x82, 0x4d, 0x8e, 0x68, 0x78, 0x05, 0x28, 0x95, 0xc3, 0x41, 0x29, - 0x7f, 0xef, 0x9a, 0xc8, 0xcd, 0xa0, 0xb0, 0x31, 0xde, 0xbb, 0x26, 0x47, 0xc1, 0x18, 0x8e, 0xaf, - 0x3d, 0x01, 0x4c, 0x11, 0x5a, 0x88, 0xc2, 0xfe, 0x4c, 0x2e, 0x54, 0xde, 0xcf, 0xa7, 0xa4, 0xbc, - 0xf7, 0x81, 0x3c, 0xb9, 0xcf, 0x9d, 0x28, 0xee, 0xb4, 0x8c, 0xd9, 0xbe, 0x8e, 0xb3, 0xeb, 0xf4, - 0xaf, 0xfe, 0x7e, 0x9a, 0xf9, 0x64, 0x7e, 0x9a, 0x6f, 0xc8, 0x26, 0x1a, 0x09, 0xe9, 0xdc, 0x61, - 0x84, 0x2a, 0x9f, 0x60, 0xdc, 0x8c, 0xa9, 0x3b, 0x7d, 0xe1, 0x78, 0x91, 0x02, 0x26, 0xf1, 0xb8, - 0x4d, 0xec, 0xf1, 0xf3, 0x87, 0x17, 0x87, 0xfe, 0x86, 0x7e, 0xc2, 0x1e, 0xd8, 0xe7, 0xc8, 0xe8, - 0xcc, 0xfb, 0x04, 0x3d, 0x70, 0x5c, 0xe5, 0xe9, 0xe3, 0xf1, 0x4e, 0x8a, 0x07, 0xd1, 0x07, 0xf8, - 0x46, 0x05, 0x28, 0x2b, 0xc8, 0x1b, 0xb7, 0x15, 0xf9, 0x36, 0xe9, 0x50, 0x45, 0x02, 0xc3, 0x08, - 0xcd, 0x0b, 0x2b, 0x68, 0x34, 0x0a, 0x24, 0x17, 0xa3, 0x48, 0x8a, 0x80, 0xf4, 0x51, 0x7b, 0x2f, - 0x45, 0x8d, 0x6e, 0x2e, 0xfc, 0xe8, 0x08, 0x7a, 0xd5, 0xf1, 0x2e, 0x7c, 0xf8, 0x0c, 0x24, 0x65, - 0x1c, 0x95, 0xbe, 0xf5, 0xab, 0x7c, 0x2c, 0xf7, 0x9c, 0x01, 0xac, 0xec, 0x3b, 0xa8, 0x79, 0x11, - 0xb5, 0xe0, 0x0f, 0x1d, 0x1e, 0xba, 0x79, 0x30, 0xd1, 0xa4, 0xa5, 0x11, 0xf0, 0x26, 0x75, 0xff, - 0x35, 0xc1, 0xa5, 0xbd, 0x62, 0x47, 0x44, 0x7f, 0x1f, 0xe3, 0xa5, 0xbd, 0x12, 0xd5, 0x8f, 0xc1, - 0x6c, 0xa1, 0xb3, 0x8c, 0x4a, 0xd3, 0xb1, 0xe1, 0x7f, 0x3e, 0x3c, 0x2c, 0xd7, 0x81, 0x29, 0xab, - 0xe9, 0xd8, 0x95, 0x5d, 0x3f, 0xb8, 0xdf, 0x94, 0x1e, 0x26, 0xf8, 0x5f, 0xb5, 0x5d, 0xe7, 0x61, - 0x8b, 0xed, 0x9a, 0x87, 0x09, 0xc3, 0x1a, 0x13, 0x98, 0xf4, 0xa3, 0x32, 0x26, 0xfa, 0xd4, 0x9d, - 0x3e, 0x64, 0x8f, 0x86, 0xde, 0x6d, 0xb4, 0x2b, 0x7c, 0x4c, 0xac, 0x02, 0x0f, 0x33, 0x9c, 0xf1, - 0xad, 0x38, 0x92, 0xe1, 0x2c, 0x86, 0x80, 0x31, 0xdc, 0x2f, 0x12, 0xe2, 0x98, 0xfa, 0x1a, 0xf0, - 0x21, 0xd0, 0x19, 0x9d, 0x79, 0x38, 0x24, 0x3a, 0x47, 0x63, 0x22, 0x7e, 0x90, 0x85, 0xba, 0x64, - 0x16, 0x0f, 0xfc, 0x2f, 0xa3, 0x00, 0xe7, 0x9e, 0x61, 0xfc, 0x15, 0xa8, 0xb7, 0x42, 0x82, 0xeb, - 0x86, 0x0f, 0x70, 0x10, 0x97, 0x32, 0xc6, 0x8b, 0xb8, 0x65, 0xea, 0x4f, 0x1f, 0xc0, 0x9f, 0x56, - 0xc0, 0x1c, 0xf1, 0x11, 0x68, 0x23, 0xd3, 0xa5, 0x1d, 0xe5, 0x48, 0x1c, 0xe5, 0xdf, 0x29, 0x1d, - 0xe0, 0x47, 0xe4, 0x43, 0x48, 0xc7, 0x48, 0xa0, 0x90, 0x8b, 0xee, 0x23, 0x49, 0xc2, 0x58, 0xb6, - 0x51, 0x8a, 0x01, 0x09, 0x4c, 0xc4, 0x47, 0x83, 0x47, 0x42, 0x8f, 0x5c, 0x91, 0x19, 0xbe, 0xb2, - 0x8d, 0xd9, 0x23, 0x57, 0x86, 0x88, 0xf4, 0x31, 0x79, 0xe3, 0x1d, 0x6c, 0xc1, 0xd9, 0x20, 0xb7, - 0x71, 0xbf, 0x26, 0x17, 0x9c, 0x68, 0xfb, 0xcc, 0x48, 0x3c, 0x30, 0x0f, 0x11, 0xd8, 0x5e, 0x05, - 0x39, 0xd7, 0xb9, 0x44, 0x97, 0xb6, 0x66, 0x75, 0xf2, 0x4c, 0x4c, 0x7e, 0xa7, 0xbd, 0xb7, 0x6b, - 0xd3, 0x93, 0xa1, 0xb3, 0xba, 0xff, 0xaa, 0xde, 0x04, 0x66, 0x2f, 0x59, 0xde, 0xce, 0x2a, 0x32, - 0x5b, 0xc8, 0xd5, 0x9d, 0x4b, 0xc4, 0x63, 0x6e, 0x52, 0x17, 0x13, 0x45, 0xff, 0x15, 0x09, 0xfb, - 0x92, 0x5c, 0xd1, 0x3d, 0x96, 0xe3, 0x6f, 0x49, 0x2c, 0xcf, 0x68, 0xaa, 0xd2, 0x17, 0x98, 0xf7, - 0x29, 0x60, 0x4a, 0x77, 0x2e, 0x31, 0x21, 0xf9, 0x3f, 0x8f, 0x56, 0x46, 0x12, 0x4f, 0xf4, 0xe8, - 0x95, 0xeb, 0x3e, 0xf9, 0x63, 0x9f, 0xe8, 0xc5, 0x56, 0x3f, 0x96, 0x93, 0x4b, 0x33, 0xba, 0x73, - 0xa9, 0x8e, 0x3c, 0xaa, 0x11, 0xb0, 0x31, 0x22, 0x27, 0x6b, 0xab, 0x4b, 0x0b, 0x64, 0xf3, 0xf0, - 0xe0, 0x3d, 0xe9, 0x2e, 0x42, 0xc0, 0xa0, 0x80, 0xc4, 0x71, 0xef, 0x22, 0x0c, 0xa4, 0x60, 0x0c, - 0x31, 0x52, 0x14, 0x30, 0xad, 0x3b, 0x97, 0xf0, 0xd0, 0xb0, 0x6c, 0xb5, 0xdb, 0xa3, 0x19, 0x21, - 0x93, 0x1a, 0xff, 0x3e, 0x1b, 0x7c, 0x2a, 0xc6, 0x6e, 0xfc, 0x0f, 0x20, 0x20, 0x7d, 0x18, 0x5e, - 0x48, 0x95, 0xc5, 0x1f, 0xa1, 0xed, 0xd1, 0xe0, 0x30, 0xac, 0x42, 0x04, 0x64, 0x1c, 0x99, 0x42, - 0x44, 0x51, 0x30, 0x96, 0x9d, 0x93, 0xb9, 0x32, 0x19, 0xe6, 0x47, 0xab, 0x13, 0xef, 0x4e, 0xe6, - 0x9a, 0xc8, 0x86, 0x5d, 0x81, 0x90, 0x91, 0xa0, 0x91, 0xc0, 0x05, 0x51, 0x82, 0x86, 0xf4, 0xf1, - 0xf8, 0xb0, 0x02, 0x66, 0x28, 0x09, 0x8f, 0x11, 0x2b, 0x60, 0x28, 0xa5, 0xe2, 0x5b, 0x70, 0x34, - 0x4a, 0x15, 0x43, 0xc1, 0x58, 0x6e, 0xe9, 0xc4, 0x76, 0xdc, 0x10, 0xc7, 0xc7, 0xa3, 0x10, 0x1c, - 0xda, 0x18, 0x1b, 0xe1, 0x11, 0xf2, 0x61, 0x8c, 0xb1, 0x23, 0x3a, 0x46, 0xfe, 0xc2, 0x40, 0x8b, - 0x46, 0x89, 0xc1, 0x21, 0x54, 0x61, 0x84, 0x30, 0x0c, 0xa9, 0x0a, 0x47, 0x84, 0xc4, 0x57, 0x14, - 0x00, 0x28, 0x01, 0xeb, 0xce, 0x3e, 0xb9, 0x94, 0x67, 0x04, 0xdd, 0x59, 0xaf, 0x5b, 0xbd, 0x32, - 0xc0, 0xad, 0x3e, 0x61, 0x08, 0x97, 0xa4, 0x2b, 0x81, 0x1c, 0x97, 0x71, 0x23, 0xc7, 0xbe, 0x12, - 0x18, 0x5f, 0x7f, 0xfa, 0x18, 0x7f, 0x89, 0x5a, 0x73, 0xe1, 0x01, 0xd3, 0x5f, 0x1c, 0x09, 0xca, - 0xdc, 0xec, 0x5f, 0x11, 0x67, 0xff, 0x87, 0xc0, 0x76, 0x58, 0x1b, 0x71, 0xd0, 0xc1, 0xd1, 0xf4, - 0x6d, 0xc4, 0xa3, 0x3b, 0x20, 0xfa, 0xa3, 0x39, 0x70, 0x9c, 0x75, 0x22, 0xdf, 0x0b, 0x10, 0x27, - 0x3c, 0x87, 0x27, 0x74, 0x92, 0x03, 0x50, 0x1e, 0xd5, 0x82, 0x54, 0x92, 0xa5, 0x4c, 0x09, 0xf2, - 0xc6, 0xb2, 0xba, 0x51, 0xd0, 0x2e, 0x77, 0x4c, 0xbb, 0x25, 0x1f, 0xee, 0x77, 0x00, 0xf0, 0xfe, - 0x5a, 0xa3, 0x22, 0xae, 0x35, 0xf6, 0x59, 0x99, 0x4c, 0xbc, 0x73, 0x4d, 0x58, 0x46, 0xc9, 0x1d, - 0xfb, 0xce, 0x75, 0x74, 0xdd, 0xe9, 0xa3, 0xf4, 0x6e, 0x05, 0xe4, 0xea, 0x8e, 0xeb, 0xc1, 0x47, - 0x92, 0x68, 0x27, 0xe5, 0x7c, 0x08, 0x92, 0xff, 0xae, 0x96, 0x85, 0x5b, 0x93, 0x6f, 0x8f, 0x3f, - 0xea, 0x6c, 0x7a, 0x26, 0xf1, 0xea, 0xc6, 0xf5, 0x73, 0xd7, 0x27, 0x27, 0x8d, 0xa7, 0x43, 0xf9, - 0x57, 0x8f, 0x3e, 0x80, 0x91, 0x5a, 0x3c, 0x9d, 0xc8, 0x9a, 0xd3, 0xc7, 0xed, 0x7f, 0xce, 0x31, - 0xdf, 0xd6, 0x65, 0xab, 0x8d, 0xe0, 0x23, 0xd4, 0x65, 0xa4, 0x6a, 0xee, 0x22, 0xf9, 0x23, 0x31, - 0xb1, 0xae, 0xad, 0x24, 0xbe, 0xac, 0x12, 0xc6, 0x97, 0x4d, 0xaa, 0x50, 0xf4, 0x00, 0x3a, 0x25, - 0x69, 0xdc, 0x0a, 0x15, 0x53, 0xf7, 0x58, 0xe2, 0x74, 0x9e, 0xa8, 0x23, 0x8f, 0x1a, 0x95, 0x35, - 0xff, 0x06, 0x96, 0x1f, 0x1e, 0x49, 0xc4, 0xce, 0xe0, 0x82, 0x17, 0xa5, 0xe7, 0x82, 0x97, 0xf7, - 0xf1, 0xe0, 0xac, 0x8b, 0xe0, 0x3c, 0x3d, 0x9a, 0x41, 0x22, 0x91, 0x23, 0x81, 0xe9, 0x6d, 0x01, - 0x4c, 0x1b, 0x02, 0x4c, 0xf7, 0x0e, 0x49, 0x45, 0xfa, 0x80, 0x7d, 0x1e, 0x9b, 0x2a, 0x64, 0xd2, - 0x5f, 0xb2, 0x5b, 0x2c, 0xc2, 0xea, 0x3f, 0x1d, 0xf5, 0x66, 0xdb, 0xc1, 0x10, 0xac, 0x42, 0x2c, - 0xe7, 0x7c, 0xef, 0x6d, 0xf5, 0x8b, 0x34, 0x9c, 0x2b, 0xee, 0x44, 0xc9, 0x4e, 0x9b, 0xfc, 0x8d, - 0xf5, 0xc1, 0x7f, 0xf0, 0x8f, 0x92, 0xad, 0xbf, 0x91, 0x22, 0x7a, 0x18, 0x97, 0xb2, 0x0d, 0x94, - 0x60, 0x65, 0x4e, 0x82, 0xba, 0xff, 0x18, 0x6e, 0x61, 0x61, 0x24, 0x90, 0x21, 0xdd, 0xc2, 0x48, - 0x01, 0x47, 0xe9, 0x16, 0x36, 0x88, 0x80, 0x31, 0xdc, 0x32, 0x9f, 0x67, 0xbb, 0xf2, 0xc4, 0x67, - 0x12, 0xfe, 0x45, 0x36, 0xf5, 0xd1, 0xf6, 0xdb, 0x99, 0x44, 0x7e, 0xcc, 0x84, 0xae, 0xf8, 0xe1, - 0x36, 0x89, 0x67, 0x72, 0x5c, 0x71, 0x63, 0x58, 0xff, 0xc9, 0x12, 0x9f, 0xf2, 0xf3, 0x56, 0xcb, - 0xdb, 0x19, 0xd1, 0xc9, 0x8c, 0x4b, 0xb8, 0x2c, 0xff, 0xba, 0x62, 0xf2, 0x02, 0xff, 0x35, 0x93, - 0x28, 0x14, 0x54, 0xc0, 0x12, 0x42, 0x56, 0x04, 0x8b, 0x13, 0x04, 0x70, 0x8a, 0x2d, 0x6f, 0x8c, - 0x12, 0x7d, 0xce, 0x6a, 0x21, 0xe7, 0x31, 0x28, 0xd1, 0x84, 0xae, 0xd1, 0x49, 0x74, 0x5c, 0x71, - 0xff, 0x41, 0x25, 0x3a, 0x60, 0xc9, 0x88, 0x24, 0x3a, 0xb6, 0xbc, 0xf4, 0x79, 0xfc, 0xaa, 0x19, - 0x36, 0x21, 0x5a, 0xb3, 0xec, 0x8b, 0xf0, 0x9f, 0x0b, 0xfe, 0x45, 0xc9, 0xe7, 0x2d, 0x6f, 0x87, - 0xc5, 0x74, 0xf9, 0x6d, 0xe9, 0x3b, 0x4e, 0x86, 0x88, 0xdb, 0x22, 0x86, 0x85, 0xca, 0x1f, 0x08, - 0x0b, 0x55, 0x02, 0xb3, 0x96, 0xed, 0x21, 0xd7, 0x36, 0xdb, 0xcb, 0x6d, 0x73, 0xbb, 0x3b, 0x3f, - 0xd1, 0xf7, 0x12, 0xba, 0x0a, 0x97, 0x47, 0x17, 0xff, 0xe0, 0xaf, 0x93, 0x9c, 0x14, 0xaf, 0xc5, - 0x8f, 0x88, 0x62, 0x35, 0x15, 0x1d, 0xc5, 0x2a, 0x88, 0x52, 0x05, 0x06, 0x07, 0xb9, 0x96, 0xb5, - 0x71, 0x13, 0x86, 0xed, 0xbb, 0x5d, 0x32, 0x9a, 0x5a, 0x10, 0xc2, 0xf1, 0x97, 0x95, 0x44, 0xab, - 0x74, 0x58, 0x10, 0x16, 0x7a, 0x85, 0x20, 0xb1, 0x85, 0xca, 0x37, 0x5e, 0xe9, 0x69, 0x7c, 0x60, - 0xf2, 0xe4, 0x24, 0x4c, 0x1e, 0x5e, 0xa8, 0xf2, 0x72, 0x42, 0x95, 0x64, 0xd1, 0x4f, 0xa6, 0xb5, - 0x63, 0x38, 0x55, 0x94, 0x07, 0x27, 0xfc, 0xa8, 0xb5, 0x9d, 0x0e, 0x32, 0x5d, 0xd3, 0x6e, 0x22, - 0xf8, 0x68, 0x76, 0x14, 0x66, 0xef, 0x32, 0x98, 0xb4, 0x9a, 0x8e, 0x5d, 0xb7, 0x9e, 0xeb, 0x5f, - 0x12, 0x17, 0x1f, 0x2c, 0x9d, 0x70, 0xa4, 0xc2, 0xfe, 0xd0, 0x83, 0x7f, 0xd5, 0x0a, 0x98, 0x6a, - 0x9a, 0x6e, 0x8b, 0x06, 0xd3, 0xcb, 0xf7, 0x5c, 0xc8, 0x14, 0x59, 0x50, 0xd9, 0xff, 0x45, 0x0f, - 0xff, 0x56, 0x6b, 0x22, 0x13, 0x0b, 0x3d, 0x51, 0x39, 0x22, 0x0b, 0x5b, 0x0a, 0x7f, 0x12, 0x78, - 0x8e, 0xb9, 0xe3, 0xa2, 0x36, 0xb9, 0x13, 0x9e, 0xf6, 0x10, 0x53, 0x7a, 0x98, 0x90, 0x74, 0x9a, - 0x4f, 0xaa, 0x3a, 0x80, 0xc6, 0xb8, 0xa7, 0xf9, 0x52, 0x54, 0xa4, 0x2f, 0x99, 0xef, 0x28, 0x80, - 0x59, 0xda, 0xab, 0x31, 0x76, 0xc2, 0x9f, 0x26, 0x57, 0x3a, 0x7b, 0x0f, 0xa2, 0x2b, 0xb0, 0x7e, - 0xf8, 0x31, 0xb9, 0x08, 0x94, 0x8b, 0x41, 0xe0, 0x40, 0xfc, 0x98, 0x74, 0xff, 0xdd, 0xa7, 0x6b, - 0x81, 0xd2, 0x34, 0xee, 0xfd, 0xf7, 0xf8, 0xea, 0xd3, 0xc7, 0xe7, 0xe7, 0x14, 0xa0, 0x94, 0x5a, - 0x2d, 0xd8, 0x3c, 0x3c, 0x14, 0x37, 0x80, 0x69, 0x5f, 0x67, 0xc2, 0x58, 0x8e, 0x7c, 0x52, 0xd2, - 0xc5, 0xcc, 0x80, 0x37, 0xa5, 0xd6, 0xd8, 0x77, 0x07, 0x62, 0xea, 0x4e, 0x1f, 0x94, 0x5f, 0x9c, - 0x60, 0x4a, 0xb3, 0xe8, 0x38, 0x17, 0xc9, 0x91, 0x97, 0x47, 0x14, 0x90, 0x5f, 0x46, 0x5e, 0x73, - 0x67, 0x44, 0x3a, 0xb3, 0xe7, 0xb6, 0x7d, 0x9d, 0x39, 0x70, 0x3f, 0xfd, 0x60, 0x1b, 0xd6, 0x27, - 0x6b, 0x81, 0x90, 0x34, 0xee, 0x28, 0xcd, 0xb1, 0xb5, 0xa7, 0x0f, 0xce, 0xbf, 0x2a, 0x60, 0x2e, - 0x58, 0xe1, 0xa2, 0x98, 0xfc, 0xec, 0x63, 0x6e, 0xdd, 0x12, 0x7e, 0x2e, 0x59, 0xa8, 0xb3, 0x80, - 0xa7, 0x62, 0xcb, 0x52, 0x5e, 0x58, 0x4c, 0x10, 0x04, 0x4d, 0x8e, 0xc0, 0x31, 0xcc, 0xe0, 0x15, - 0x30, 0x49, 0x08, 0x5a, 0xb2, 0xf6, 0x89, 0x0b, 0xa0, 0xb0, 0xd0, 0xf8, 0xbc, 0x91, 0x2c, 0x34, - 0xde, 0x2b, 0x2e, 0x34, 0x4a, 0x46, 0x2e, 0xf6, 0xd7, 0x19, 0x13, 0xfa, 0xc4, 0xe0, 0xff, 0x47, - 0xbe, 0xcc, 0x98, 0xc0, 0x27, 0x66, 0x40, 0xfd, 0xe9, 0x23, 0xfa, 0xc9, 0x06, 0xeb, 0x6c, 0xfd, - 0x8d, 0x51, 0xf8, 0x3f, 0x4f, 0x80, 0xdc, 0x39, 0xfc, 0xf0, 0xbf, 0xc2, 0x9b, 0xad, 0x5e, 0x3e, - 0x82, 0x20, 0x0b, 0xcf, 0x02, 0x39, 0x5c, 0x3e, 0x9b, 0xb6, 0xdc, 0x2a, 0xb7, 0x4b, 0x8b, 0x09, - 0xd1, 0xc9, 0x7f, 0xea, 0x69, 0x50, 0xe8, 0x3a, 0x7b, 0x6e, 0x13, 0x9b, 0xcf, 0x58, 0x62, 0xd8, - 0x5b, 0xd2, 0xe0, 0xa2, 0x42, 0xd1, 0x0b, 0xa3, 0x73, 0xfd, 0xe4, 0x2e, 0x3a, 0x52, 0x84, 0x8b, - 0x8e, 0x12, 0xec, 0x1f, 0x48, 0xd0, 0x96, 0xbe, 0x44, 0xfc, 0x05, 0xb9, 0xf3, 0xaf, 0x35, 0x2a, - 0xd8, 0x23, 0xd8, 0x72, 0x58, 0x71, 0x48, 0xea, 0xb8, 0x2d, 0xb2, 0x36, 0x88, 0xe7, 0x3e, 0x56, - 0xc7, 0x6d, 0x09, 0x1a, 0xc6, 0x72, 0xda, 0xbc, 0xc0, 0x9c, 0x4d, 0x1f, 0x1a, 0x25, 0xba, 0x39, - 0x41, 0xe8, 0x0f, 0x85, 0xce, 0x08, 0x9d, 0x50, 0x87, 0x46, 0xe7, 0x88, 0xdc, 0x50, 0x7f, 0x4f, - 0x21, 0x11, 0x2d, 0x7d, 0x23, 0x47, 0xfe, 0xc2, 0xa2, 0xc4, 0x10, 0xe1, 0x31, 0x58, 0x88, 0xe7, - 0x3c, 0x3b, 0x7c, 0x88, 0x6f, 0x91, 0x75, 0x1c, 0xfd, 0xe3, 0x0e, 0xf1, 0x2d, 0x4b, 0x48, 0xfa, - 0x40, 0xfe, 0x0a, 0xbd, 0x20, 0xac, 0xd4, 0xf4, 0xac, 0xfd, 0x11, 0x6b, 0x9a, 0x38, 0xbc, 0x24, - 0x8c, 0xea, 0x7b, 0x80, 0x43, 0x94, 0xc2, 0x71, 0x47, 0xf5, 0x95, 0x23, 0x63, 0x0c, 0xc7, 0xd1, - 0x01, 0xe6, 0x1e, 0x5b, 0x9b, 0x79, 0x23, 0x5b, 0x0d, 0x40, 0x87, 0x47, 0xeb, 0x2c, 0x98, 0xe1, - 0xa6, 0xfe, 0xfe, 0xc5, 0x33, 0x42, 0x5a, 0xd2, 0x03, 0xeb, 0x01, 0xcb, 0x46, 0xbe, 0x30, 0x90, - 0x60, 0xc1, 0x57, 0x86, 0x88, 0xb1, 0xdc, 0xeb, 0xe6, 0x8f, 0x61, 0x63, 0xc2, 0xea, 0xb7, 0x79, - 0xac, 0x6a, 0x22, 0x56, 0x77, 0xcb, 0xb0, 0x49, 0x6e, 0x4c, 0x93, 0x9a, 0x37, 0xbe, 0x3d, 0x80, - 0x4b, 0x17, 0xe0, 0x7a, 0xd6, 0xd0, 0x74, 0xa4, 0x8f, 0xd8, 0x9b, 0x14, 0x7a, 0xb9, 0x53, 0x69, - 0xdf, 0xb4, 0xda, 0x24, 0xca, 0xc0, 0x08, 0x2e, 0x27, 0xfe, 0x13, 0x1e, 0x94, 0x73, 0x22, 0x28, - 0x0f, 0xc8, 0x30, 0x43, 0xa0, 0x28, 0x02, 0x9b, 0xa7, 0xf1, 0x8b, 0xe3, 0x34, 0xc4, 0xf0, 0xd5, - 0xbd, 0xe1, 0xfc, 0xd8, 0x77, 0x7e, 0xd5, 0xfc, 0x37, 0x03, 0x90, 0x1e, 0x12, 0x40, 0xd2, 0x0e, - 0x4b, 0x57, 0xfa, 0x58, 0xbd, 0x82, 0x0e, 0x5d, 0x75, 0x3a, 0xbd, 0x1a, 0xcd, 0xd0, 0xc5, 0x66, - 0x6e, 0x8a, 0x30, 0x73, 0x4b, 0x78, 0xc6, 0x21, 0x74, 0xdd, 0xf5, 0x89, 0x1b, 0xa4, 0x4e, 0xb9, - 0x11, 0x9f, 0x71, 0x18, 0x48, 0x41, 0xfa, 0xe0, 0xfc, 0xa3, 0x02, 0xc0, 0x8a, 0xeb, 0xec, 0x75, - 0x6a, 0x6e, 0x0b, 0xb9, 0xf0, 0xaf, 0xc2, 0xc9, 0xda, 0x4b, 0x47, 0x30, 0x59, 0xdb, 0x00, 0x60, - 0x3b, 0x28, 0x9c, 0xf5, 0x46, 0x77, 0xc8, 0x4d, 0xcd, 0x42, 0xa2, 0x74, 0xae, 0x0c, 0xf1, 0x9a, - 0xdf, 0x1f, 0x10, 0x31, 0x8e, 0x1b, 0x5f, 0xc2, 0xe2, 0x46, 0x39, 0x59, 0x7b, 0x67, 0x80, 0xb5, - 0x21, 0x60, 0xfd, 0xc0, 0x21, 0x28, 0x49, 0x1f, 0xf3, 0x7f, 0x9a, 0x00, 0xd3, 0x74, 0x6b, 0x95, - 0xf2, 0xf4, 0x6f, 0x43, 0xd0, 0x7f, 0x71, 0x04, 0xa0, 0x6f, 0x82, 0x19, 0x27, 0x2c, 0x9d, 0x8e, - 0x7f, 0xfc, 0x62, 0x59, 0x2c, 0xec, 0x1c, 0x5d, 0xba, 0x50, 0x0c, 0xfc, 0x08, 0x8f, 0xbc, 0x2e, - 0x22, 0x7f, 0x6f, 0x0c, 0xbf, 0xb9, 0x12, 0x47, 0x09, 0xfd, 0xbb, 0x02, 0xe8, 0x37, 0x05, 0xe8, - 0x4b, 0x87, 0x21, 0x65, 0x0c, 0x57, 0x1c, 0x28, 0x20, 0x47, 0x4e, 0x24, 0xfe, 0x5a, 0x8a, 0x6b, - 0x31, 0xf3, 0x60, 0x82, 0xa8, 0x6c, 0x30, 0x47, 0xf4, 0x5f, 0xf1, 0x17, 0x73, 0xcb, 0x43, 0x6e, - 0xe0, 0x5d, 0xe2, 0xbf, 0x62, 0x1a, 0x7c, 0x4f, 0xf0, 0xee, 0x7c, 0x81, 0x6e, 0x1a, 0x07, 0x09, - 0x43, 0x4f, 0x20, 0x79, 0x8e, 0x8f, 0xec, 0x8c, 0xe2, 0x30, 0x13, 0xc8, 0x01, 0x84, 0xa4, 0x0f, - 0xfc, 0x17, 0x72, 0x60, 0x9e, 0xae, 0x00, 0x2e, 0xbb, 0xce, 0x6e, 0xcf, 0x8d, 0x62, 0xd6, 0xe1, - 0x65, 0xe1, 0x66, 0x30, 0xe7, 0x09, 0x3e, 0xf0, 0x4c, 0x26, 0x7a, 0x52, 0xe1, 0x1f, 0xf3, 0xfe, - 0x2f, 0xcf, 0x11, 0x91, 0x5c, 0x8c, 0x61, 0x60, 0x14, 0xed, 0x89, 0x37, 0x55, 0x24, 0x09, 0xe5, - 0x16, 0x14, 0x95, 0xa1, 0xd6, 0x97, 0x03, 0x99, 0xca, 0xcb, 0xc8, 0xd4, 0xfb, 0x03, 0x99, 0xfa, - 0x21, 0x41, 0xa6, 0x56, 0x0e, 0xcf, 0x92, 0xf4, 0x65, 0xeb, 0x35, 0xc1, 0x26, 0x5e, 0xb0, 0xc5, - 0xba, 0x9b, 0xc2, 0xc6, 0x2a, 0xef, 0x3b, 0x96, 0x13, 0x7c, 0xc7, 0xc4, 0x3b, 0x40, 0x12, 0xac, - 0x5a, 0x88, 0x54, 0x47, 0xc8, 0xd2, 0x1c, 0xc8, 0x5a, 0x3e, 0x75, 0x59, 0xab, 0x35, 0xd4, 0xba, - 0x44, 0x6c, 0x45, 0x63, 0x58, 0x07, 0x9c, 0x03, 0x85, 0x65, 0xab, 0xed, 0x21, 0x17, 0x7e, 0x89, - 0xad, 0x4a, 0xbc, 0x26, 0xc5, 0x01, 0x60, 0x09, 0x14, 0xb6, 0x48, 0x6d, 0xcc, 0x64, 0xbe, 0x4d, - 0x4e, 0x7b, 0x28, 0x85, 0x3a, 0xfb, 0x37, 0x69, 0x44, 0xc4, 0x9e, 0x62, 0x46, 0xb6, 0x9c, 0x91, - 0x20, 0x22, 0xe2, 0x60, 0x12, 0xc6, 0x72, 0x19, 0x58, 0x41, 0x47, 0xbb, 0x78, 0x8c, 0xbf, 0x98, - 0x1e, 0xc2, 0x45, 0xa0, 0x58, 0xad, 0x2e, 0xe9, 0x1c, 0xa7, 0x74, 0xfc, 0x98, 0xd4, 0xaf, 0xab, - 0x97, 0x55, 0x94, 0xe4, 0x71, 0xfb, 0x75, 0x49, 0x51, 0x91, 0x3e, 0x66, 0xdf, 0x26, 0x4e, 0xbd, - 0x9d, 0xb6, 0xd9, 0x44, 0x98, 0xfa, 0xd4, 0x50, 0xa3, 0x3d, 0x59, 0xce, 0xef, 0xc9, 0x38, 0x3d, - 0xcd, 0x1f, 0x42, 0x4f, 0x87, 0x5d, 0x32, 0x0e, 0x78, 0x4e, 0x1a, 0x7e, 0x64, 0x4b, 0xc6, 0xb1, - 0x64, 0x8c, 0xe1, 0xaa, 0x57, 0xff, 0xf0, 0xf2, 0x58, 0xb5, 0x75, 0xd8, 0x0d, 0x35, 0xc6, 0xac, - 0x91, 0x1d, 0x54, 0x1e, 0x66, 0x43, 0x2d, 0x9a, 0x86, 0x31, 0xa0, 0x35, 0xc7, 0xd0, 0xfa, 0x2c, - 0x1b, 0x46, 0x53, 0xde, 0xd3, 0xee, 0x3a, 0xae, 0x97, 0x6c, 0x4f, 0x1b, 0x53, 0xa7, 0x93, 0xff, - 0x92, 0x1e, 0x92, 0x13, 0xcf, 0xb2, 0x8f, 0x6a, 0xf8, 0x4c, 0x70, 0x48, 0x6e, 0x10, 0x01, 0xe9, - 0xc3, 0xfb, 0x96, 0x23, 0x1a, 0x3c, 0x87, 0x55, 0x47, 0xa6, 0x03, 0x23, 0x1b, 0x3a, 0x87, 0x51, - 0xc7, 0x68, 0x1a, 0xd2, 0xc7, 0xeb, 0x1f, 0xb8, 0x81, 0xf3, 0x4d, 0x63, 0x1c, 0x38, 0x7d, 0xcd, - 0xcc, 0x0f, 0xa9, 0x99, 0xc3, 0xee, 0xd5, 0x31, 0x5e, 0x8f, 0x6e, 0xc0, 0x1c, 0x66, 0xaf, 0x2e, - 0x86, 0x88, 0xf4, 0x11, 0x7f, 0xb3, 0x02, 0xf2, 0xf5, 0xf1, 0x8f, 0x97, 0xc3, 0xce, 0x45, 0x08, - 0xaf, 0xea, 0x23, 0x1b, 0x2e, 0x87, 0x99, 0x8b, 0x44, 0x92, 0x30, 0x86, 0xcb, 0x0e, 0x8e, 0x83, - 0x19, 0xb2, 0x24, 0xe2, 0x6f, 0x89, 0xff, 0x03, 0x1b, 0x35, 0xdf, 0x90, 0xa2, 0xae, 0x3e, 0x1b, - 0x4c, 0xfa, 0xfb, 0x66, 0x6c, 0xe4, 0x5c, 0x90, 0xd3, 0xcf, 0x60, 0xdf, 0x2d, 0xf8, 0xff, 0x50, - 0x8e, 0x2b, 0x23, 0xdf, 0x57, 0x1f, 0xd6, 0x71, 0xe5, 0x48, 0xf7, 0xd6, 0xff, 0x28, 0x1c, 0x51, - 0xff, 0x73, 0x7a, 0x98, 0xf7, 0xee, 0xb9, 0xe7, 0xfa, 0xec, 0xb9, 0x3f, 0xca, 0x63, 0x59, 0x17, - 0xb1, 0xbc, 0x4f, 0x96, 0x85, 0x23, 0x1c, 0x6b, 0xdf, 0x1d, 0xc0, 0x79, 0x4e, 0x80, 0x73, 0xf1, - 0x50, 0xb4, 0x8c, 0xe1, 0x90, 0x6a, 0x2e, 0x1c, 0x73, 0x3f, 0x96, 0xa2, 0x1e, 0xf7, 0x9c, 0x80, - 0xc9, 0x1d, 0x38, 0x01, 0x23, 0x68, 0x7a, 0xfe, 0x90, 0x9a, 0xfe, 0x31, 0x5e, 0x3a, 0x0c, 0x51, - 0x3a, 0x9e, 0x25, 0x8f, 0xc8, 0xe8, 0x46, 0xe6, 0xf7, 0x04, 0xe2, 0x71, 0x5e, 0x10, 0x8f, 0xf2, - 0xe1, 0x88, 0x49, 0x5f, 0x3e, 0x7e, 0xdf, 0x9f, 0xd0, 0x1e, 0xb1, 0xbe, 0x0f, 0xbb, 0x55, 0x2c, - 0x30, 0x71, 0x64, 0x23, 0xf7, 0x30, 0x5b, 0xc5, 0x83, 0x28, 0x19, 0x43, 0xfc, 0xbb, 0x59, 0x30, - 0x4d, 0x68, 0x3a, 0x6f, 0xb5, 0xb6, 0x91, 0x07, 0x7f, 0x99, 0xfa, 0x93, 0xfa, 0xd1, 0x46, 0x47, - 0x14, 0x12, 0x2a, 0xea, 0x6c, 0x72, 0x52, 0x8f, 0x0e, 0x4a, 0xe4, 0x02, 0x47, 0xe0, 0xb8, 0xa3, - 0x56, 0x0e, 0xa4, 0x20, 0x7d, 0xc8, 0x3e, 0x42, 0xdd, 0x6d, 0xd6, 0xcc, 0x2b, 0xce, 0x9e, 0x07, - 0x5f, 0x30, 0x82, 0x0e, 0x7a, 0x11, 0x14, 0xda, 0xa4, 0x34, 0x76, 0x84, 0x26, 0x7e, 0xba, 0xc3, - 0x58, 0x40, 0xeb, 0xd7, 0xd9, 0x9f, 0x49, 0xcf, 0xd1, 0x84, 0x7c, 0xa4, 0xe5, 0x8c, 0xfb, 0x1c, - 0xcd, 0x80, 0xfa, 0xc7, 0x72, 0xaf, 0xd1, 0x24, 0xae, 0xdd, 0xda, 0xb5, 0xbc, 0x11, 0x45, 0xdb, - 0x68, 0xe3, 0xb2, 0xfc, 0x68, 0x1b, 0xe4, 0x25, 0xe9, 0xe9, 0x5e, 0x8e, 0x2b, 0xf8, 0xf7, 0x71, - 0x9f, 0xee, 0x8d, 0xaf, 0x3e, 0x7d, 0x4c, 0xfe, 0x1b, 0xd5, 0xac, 0x73, 0xd4, 0x51, 0x3a, 0x45, - 0x1f, 0xec, 0xa1, 0x95, 0x85, 0x92, 0x76, 0x74, 0xca, 0xd2, 0xb7, 0xfe, 0xf4, 0x81, 0xf9, 0xc0, - 0x19, 0x90, 0x5f, 0x42, 0x17, 0xf6, 0xb6, 0xe1, 0xbd, 0x60, 0xd2, 0x70, 0x11, 0xaa, 0xd8, 0x5b, - 0x0e, 0xe6, 0xae, 0x87, 0x9f, 0x7d, 0x48, 0xd8, 0x1b, 0xc6, 0x63, 0x07, 0x99, 0xad, 0xf0, 0xac, - 0xa0, 0xff, 0x0a, 0x5f, 0x9e, 0x05, 0xb9, 0xba, 0x67, 0x7a, 0x70, 0x2a, 0xc0, 0x16, 0xbe, 0x80, - 0xc7, 0xe2, 0x5e, 0x11, 0x8b, 0x9b, 0x05, 0x5e, 0x10, 0x0a, 0x16, 0xf0, 0xff, 0x11, 0x00, 0x40, - 0x30, 0xf9, 0x70, 0xd7, 0xb1, 0x71, 0x0e, 0xff, 0xb8, 0xaa, 0xff, 0x0e, 0x5f, 0x1d, 0xb0, 0xfb, - 0x7e, 0x81, 0xdd, 0x4f, 0x92, 0xab, 0x62, 0x0c, 0x2b, 0x6d, 0x59, 0x30, 0x85, 0x59, 0xbb, 0x8a, - 0xcc, 0x56, 0x17, 0x3e, 0x3e, 0x14, 0xfe, 0x08, 0x36, 0xc3, 0x0f, 0x4a, 0x07, 0x40, 0xa5, 0xad, - 0x0a, 0x0a, 0x8f, 0xf6, 0xe8, 0xf0, 0x37, 0xff, 0xb3, 0x62, 0xe0, 0x98, 0xdb, 0x41, 0xce, 0xb2, - 0xb7, 0x1c, 0xe6, 0x5f, 0x78, 0x6d, 0x44, 0xd9, 0x58, 0x26, 0x74, 0x92, 0x51, 0x32, 0x3a, 0x6a, - 0x3c, 0x59, 0x63, 0xb9, 0x68, 0x30, 0x87, 0x6b, 0x87, 0xff, 0xc7, 0x40, 0x66, 0xab, 0x2a, 0xc8, - 0x75, 0x4c, 0x6f, 0x87, 0x55, 0x4d, 0x9e, 0xb1, 0x8d, 0xbc, 0x67, 0x9b, 0xb6, 0x63, 0x5f, 0xd9, - 0xb5, 0x9e, 0x1b, 0xdc, 0x67, 0x2c, 0xa4, 0x61, 0xca, 0xb7, 0x91, 0x8d, 0x5c, 0xd3, 0x43, 0xf5, - 0xfd, 0x6d, 0x32, 0xc7, 0x9a, 0xd4, 0xf9, 0xa4, 0xc4, 0xf2, 0x8f, 0x29, 0x8e, 0x96, 0xff, 0x2d, - 0xab, 0x8d, 0x48, 0x54, 0x2d, 0x26, 0xff, 0xfe, 0x7b, 0x22, 0xf9, 0xef, 0x53, 0x45, 0xfa, 0x68, - 0x7c, 0x27, 0x0b, 0x66, 0xea, 0x58, 0xe0, 0xea, 0x7b, 0xbb, 0xbb, 0xa6, 0x7b, 0x05, 0xde, 0x18, - 0xa2, 0xc2, 0x89, 0x66, 0x46, 0xf4, 0x4b, 0xf9, 0x3d, 0xe9, 0xab, 0xbc, 0x99, 0x6a, 0x73, 0x35, - 0x24, 0xd6, 0x83, 0xa7, 0x80, 0x3c, 0x16, 0x6f, 0xdf, 0xe3, 0x32, 0x56, 0x11, 0x68, 0x4e, 0xc9, - 0xe8, 0x63, 0x03, 0x69, 0x1b, 0x43, 0xe4, 0x93, 0x2c, 0x38, 0x5e, 0xf7, 0xcc, 0xe6, 0xc5, 0x15, - 0xc7, 0x75, 0xf6, 0x3c, 0xcb, 0x46, 0x5d, 0xf8, 0xb8, 0x10, 0x01, 0x5f, 0xfe, 0x33, 0xa1, 0xfc, - 0xc3, 0x7f, 0xcb, 0xc8, 0x8e, 0xa2, 0x41, 0xb7, 0xca, 0x17, 0x1f, 0x11, 0x4c, 0x4c, 0x6e, 0x5c, - 0x94, 0x29, 0x71, 0x2c, 0xa7, 0x24, 0x8a, 0xda, 0xe5, 0x8e, 0xe3, 0x7a, 0x6b, 0x4e, 0xd3, 0x6c, - 0x77, 0x3d, 0xc7, 0x45, 0xb0, 0x16, 0xcb, 0x35, 0xdc, 0xc3, 0xb4, 0x9c, 0x66, 0x38, 0x38, 0xb2, - 0x37, 0x5e, 0xec, 0x14, 0x51, 0xc6, 0x3f, 0x22, 0xbd, 0xcb, 0x48, 0xb9, 0xd2, 0x4b, 0x51, 0x84, - 0x9c, 0xf7, 0xeb, 0xd2, 0x92, 0x1d, 0x6c, 0x91, 0xdb, 0x79, 0x94, 0x22, 0x6a, 0x0c, 0x4b, 0xe5, - 0x59, 0x30, 0x5b, 0xdf, 0xbb, 0x10, 0x14, 0xd2, 0xe5, 0x8d, 0x90, 0xd7, 0x4a, 0x47, 0x14, 0x61, - 0x82, 0xc7, 0x17, 0x14, 0xc1, 0xdf, 0x9b, 0xc0, 0x6c, 0x97, 0xcf, 0xc6, 0xf0, 0x16, 0x13, 0x25, - 0x23, 0x89, 0x0c, 0xae, 0x35, 0x7d, 0x06, 0xbe, 0x27, 0x0b, 0x66, 0x6b, 0x1d, 0x64, 0xa3, 0x16, - 0xf5, 0x82, 0x14, 0x18, 0xf8, 0xf2, 0x84, 0x0c, 0x14, 0x0a, 0x8a, 0x60, 0x60, 0xe8, 0xb1, 0xbc, - 0xe4, 0x33, 0x2f, 0x4c, 0x48, 0xc4, 0xb8, 0xb8, 0xda, 0xd2, 0x67, 0xdc, 0x17, 0xb3, 0x60, 0x5a, - 0xdf, 0xb3, 0x37, 0x5c, 0x07, 0x8f, 0xc6, 0x2e, 0xbc, 0x2f, 0xec, 0x20, 0x6e, 0x03, 0x27, 0x5a, - 0x7b, 0x2e, 0x59, 0x7f, 0xaa, 0xd8, 0x75, 0xd4, 0x74, 0xec, 0x56, 0x97, 0xb4, 0x23, 0xaf, 0x1f, - 0xfc, 0x70, 0x4f, 0xee, 0x91, 0xbf, 0x51, 0x32, 0xf0, 0xa7, 0xa5, 0xc3, 0x12, 0xd1, 0xc6, 0x73, - 0x55, 0xcb, 0xf7, 0x04, 0x92, 0xc1, 0x87, 0x06, 0xd5, 0x90, 0x3e, 0x73, 0x3f, 0x94, 0x05, 0x6a, - 0xa9, 0xd9, 0x74, 0xf6, 0x6c, 0xaf, 0x8e, 0xda, 0xa8, 0xe9, 0x19, 0xae, 0xd9, 0x44, 0xf0, 0x78, - 0xc0, 0x63, 0xc6, 0xb5, 0x97, 0x4b, 0xef, 0x2f, 0xd2, 0x36, 0x1d, 0x2c, 0x33, 0x01, 0xf3, 0xe4, - 0x76, 0x11, 0x25, 0x2b, 0x1a, 0xc3, 0x3d, 0x3b, 0x59, 0x90, 0xdb, 0xb0, 0xec, 0x6d, 0x3e, 0x5a, - 0xd3, 0x49, 0x6c, 0xeb, 0xb4, 0xd0, 0x65, 0x26, 0x8d, 0xf4, 0x45, 0xbd, 0x13, 0x9c, 0xb4, 0xf7, - 0x76, 0x2f, 0x20, 0xb7, 0xb6, 0x45, 0x46, 0x82, 0xae, 0xe1, 0xd4, 0x91, 0x4d, 0x0d, 0xa5, 0xbc, - 0xde, 0xf7, 0x9b, 0x68, 0x26, 0x48, 0x18, 0xb8, 0x98, 0x92, 0x08, 0x5e, 0x07, 0x44, 0x65, 0x39, - 0xa2, 0x12, 0x99, 0xb6, 0x7d, 0x0a, 0x4f, 0x9f, 0xbf, 0x5f, 0xcb, 0x82, 0x89, 0x75, 0xe4, 0xb9, - 0x56, 0xb3, 0x0b, 0x3f, 0x8f, 0x87, 0x21, 0xe4, 0x6d, 0x98, 0xae, 0xb9, 0x8b, 0x3c, 0xe4, 0x76, - 0xa1, 0x16, 0x32, 0x1d, 0x82, 0xc9, 0x4e, 0xdb, 0xf4, 0xb6, 0x1c, 0x77, 0x97, 0xd9, 0x0c, 0xc1, - 0x3b, 0xb6, 0x0f, 0xf6, 0x91, 0xdb, 0x0d, 0xc9, 0xf2, 0x5f, 0x99, 0x80, 0xcb, 0x5b, 0x63, 0x8c, - 0x94, 0x05, 0x81, 0x8c, 0x43, 0x59, 0x63, 0x32, 0x25, 0x8e, 0xe5, 0x2e, 0x19, 0x65, 0xcd, 0xd9, - 0x86, 0xaf, 0x54, 0x40, 0x8e, 0x48, 0xde, 0x9b, 0x33, 0xc2, 0x14, 0x62, 0x17, 0x75, 0xbb, 0xe6, - 0x36, 0xf2, 0xa7, 0x10, 0xec, 0x55, 0xbd, 0x1b, 0xe4, 0xdb, 0x68, 0x1f, 0xb5, 0x09, 0x19, 0x73, - 0x77, 0xde, 0x28, 0xb4, 0x6c, 0xcd, 0xd9, 0x5e, 0xc0, 0x65, 0x2d, 0xb0, 0x72, 0x16, 0xd6, 0x70, - 0x56, 0x9d, 0xfe, 0x71, 0xf6, 0xd9, 0x20, 0x4f, 0xde, 0xd5, 0x29, 0x90, 0x5f, 0xd2, 0x16, 0x37, - 0x57, 0x8a, 0xc7, 0xf0, 0xa3, 0x4f, 0xdf, 0x14, 0xc8, 0x2f, 0x97, 0x8c, 0xd2, 0x5a, 0x31, 0x8b, - 0xdb, 0x51, 0xa9, 0x2e, 0xd7, 0x8a, 0x0a, 0x4e, 0xdc, 0x28, 0x55, 0x2b, 0xe5, 0x62, 0x4e, 0x9d, - 0x06, 0x13, 0xe7, 0x4b, 0x7a, 0xb5, 0x52, 0x5d, 0x29, 0xe6, 0xe1, 0x5f, 0xf3, 0xf8, 0xdd, 0x23, - 0xe2, 0x77, 0x53, 0x14, 0x4d, 0xfd, 0x20, 0xfb, 0xa5, 0x00, 0xb2, 0xfb, 0x04, 0xc8, 0xbe, 0x4f, - 0xa6, 0x90, 0x31, 0xa0, 0x94, 0x05, 0x13, 0x1b, 0xae, 0xd3, 0x44, 0xdd, 0x2e, 0xfc, 0x85, 0x2c, - 0x28, 0x94, 0x4d, 0xbb, 0x89, 0xda, 0xf0, 0x9a, 0x10, 0x2a, 0xea, 0x0b, 0x94, 0x09, 0x8e, 0x03, - 0xfc, 0x23, 0xcf, 0x99, 0x07, 0x44, 0xce, 0xdc, 0x2a, 0x34, 0x8a, 0x95, 0xbb, 0x40, 0xcb, 0x8c, - 0xe0, 0xcf, 0xeb, 0x02, 0xfe, 0x94, 0x05, 0xfe, 0xdc, 0x2e, 0x5f, 0x54, 0xfa, 0x5c, 0xfa, 0x56, - 0x06, 0x9c, 0x5c, 0x41, 0x36, 0x72, 0xad, 0x26, 0x25, 0xde, 0x6f, 0xff, 0x7d, 0x62, 0xfb, 0x9f, - 0x28, 0x10, 0xdd, 0xef, 0x0f, 0xb1, 0xf1, 0xaf, 0x09, 0x1a, 0xff, 0x80, 0xd0, 0xf8, 0xdb, 0x24, - 0xcb, 0x19, 0xc3, 0xc5, 0xb1, 0x53, 0x60, 0xa6, 0xea, 0x78, 0xd6, 0x96, 0xd5, 0xa4, 0x1b, 0xc7, - 0xaf, 0x50, 0x40, 0x6e, 0xcd, 0xea, 0x7a, 0xfc, 0x09, 0xf4, 0x1b, 0xc0, 0xb4, 0x65, 0x37, 0xdb, - 0x7b, 0x2d, 0xa4, 0x23, 0x93, 0xca, 0xca, 0xa4, 0xce, 0x27, 0x85, 0xeb, 0xf1, 0x98, 0x2c, 0xc5, - 0x5f, 0x8f, 0xff, 0x94, 0xb4, 0xed, 0xc4, 0x93, 0x40, 0xce, 0x77, 0x47, 0x0c, 0x49, 0x25, 0x30, - 0x6b, 0x73, 0x59, 0xfd, 0x23, 0xe7, 0xbd, 0x11, 0x9b, 0xf9, 0xe2, 0x74, 0xf1, 0x0f, 0xf8, 0x3e, - 0x29, 0x53, 0x6b, 0x10, 0x41, 0xc9, 0x90, 0x59, 0x4e, 0x8e, 0x8c, 0xaa, 0x82, 0xb9, 0x4a, 0xd5, - 0xd0, 0xf4, 0x6a, 0x69, 0x8d, 0x65, 0x51, 0xe0, 0x77, 0xb2, 0x20, 0xaf, 0xa3, 0x4e, 0xfb, 0x0a, - 0x1f, 0x92, 0x93, 0x79, 0x77, 0x65, 0x02, 0xef, 0x2e, 0x75, 0x19, 0x00, 0xb3, 0x89, 0x2b, 0x26, - 0x77, 0x8f, 0x64, 0xfb, 0x06, 0x8a, 0x13, 0x1a, 0x58, 0x0a, 0x72, 0xeb, 0xdc, 0x9f, 0xf0, 0x45, - 0xd2, 0xcb, 0x3d, 0x42, 0x69, 0x84, 0xc2, 0x88, 0xee, 0xe0, 0xfd, 0x52, 0x2b, 0x34, 0x03, 0x8b, - 0x3b, 0x1a, 0xf6, 0x7f, 0x39, 0x0b, 0x72, 0x06, 0x9e, 0x7f, 0x71, 0x53, 0xb1, 0x4f, 0x0e, 0x27, - 0xe3, 0xb8, 0x98, 0x08, 0x19, 0xbf, 0x1f, 0xcc, 0xf0, 0x12, 0xcb, 0xf6, 0x37, 0x62, 0x45, 0x5c, - 0xf8, 0x61, 0x18, 0x09, 0xef, 0x43, 0xce, 0xd1, 0xb0, 0xf8, 0x2b, 0xb7, 0x02, 0xb0, 0x8e, 0xb0, - 0x5d, 0xdb, 0xdd, 0xb1, 0x3a, 0xf0, 0x7f, 0x28, 0x60, 0x6a, 0x05, 0x79, 0x75, 0xcf, 0xf4, 0xf6, - 0xba, 0x3d, 0x6b, 0x94, 0xb6, 0x53, 0x36, 0x9b, 0x3b, 0x88, 0x75, 0x47, 0xfe, 0x2b, 0x7c, 0x97, - 0x22, 0xbb, 0x09, 0x18, 0xd6, 0xb3, 0x10, 0xd4, 0x11, 0x81, 0xc9, 0x93, 0x41, 0xae, 0x65, 0x7a, - 0x26, 0xc3, 0xe2, 0x9a, 0x1e, 0x2c, 0xc2, 0x82, 0x74, 0x92, 0x0d, 0xfe, 0x46, 0x56, 0x66, 0x17, - 0x50, 0xa2, 0xfe, 0x64, 0x20, 0xbc, 0x2f, 0x33, 0x04, 0x0a, 0x27, 0xc0, 0x6c, 0xb5, 0x66, 0x34, - 0xd6, 0x6a, 0x2b, 0x2b, 0x1a, 0x4e, 0x2d, 0x2a, 0xea, 0x69, 0xa0, 0x6e, 0x94, 0x1e, 0x5a, 0xd7, - 0xaa, 0x46, 0xa3, 0x5a, 0x5b, 0xd2, 0xd8, 0x9f, 0x39, 0xf5, 0x38, 0x98, 0x2e, 0x97, 0xca, 0xab, - 0x7e, 0x42, 0x5e, 0x9d, 0x07, 0x27, 0xd7, 0xb5, 0xf5, 0x45, 0x4d, 0xaf, 0xaf, 0x56, 0x36, 0x1a, - 0xb8, 0x98, 0xe5, 0xda, 0x66, 0x75, 0xa9, 0x58, 0x50, 0x21, 0x38, 0xcd, 0x7d, 0x39, 0xaf, 0xd7, - 0xaa, 0x2b, 0x8d, 0xba, 0x51, 0x32, 0xb4, 0xe2, 0x84, 0x7a, 0x15, 0x38, 0x5e, 0x2e, 0x55, 0x49, - 0xf6, 0x72, 0xad, 0x5a, 0xd5, 0xca, 0x46, 0x71, 0x12, 0xfe, 0x5b, 0x0e, 0x4c, 0x57, 0xba, 0x55, - 0x73, 0x17, 0x9d, 0x33, 0xdb, 0x56, 0x0b, 0xfe, 0x34, 0x67, 0x4d, 0xde, 0x04, 0x66, 0x5d, 0xfa, - 0x88, 0x5a, 0x86, 0x85, 0x28, 0x9a, 0xb3, 0xba, 0x98, 0xa8, 0x9e, 0x06, 0x05, 0x9b, 0x14, 0xc0, - 0x58, 0xc3, 0xde, 0xd4, 0x45, 0x00, 0xe8, 0x93, 0x11, 0xde, 0x82, 0x77, 0xb6, 0x57, 0x9b, 0xcc, - 0x5d, 0xd4, 0x45, 0xee, 0xbe, 0xd5, 0x44, 0x7e, 0x4e, 0x9d, 0xfb, 0x0b, 0x7e, 0x45, 0x91, 0x5d, - 0x14, 0xe4, 0x40, 0xe5, 0x9a, 0x13, 0xd1, 0x1b, 0xfe, 0x94, 0x22, 0xb3, 0xa4, 0x27, 0x55, 0x64, - 0x32, 0x49, 0x79, 0x49, 0x76, 0x08, 0x49, 0x99, 0x05, 0x53, 0x46, 0xad, 0xd6, 0xa8, 0xaf, 0xd6, - 0x74, 0xa3, 0xa8, 0xa8, 0x33, 0x60, 0x12, 0xbf, 0xae, 0xd5, 0xaa, 0x2b, 0xc5, 0x9c, 0x7a, 0x0a, - 0x9c, 0x58, 0x2d, 0xd5, 0x1b, 0x95, 0xea, 0xb9, 0xd2, 0x5a, 0x65, 0xa9, 0x51, 0x5e, 0x2d, 0xe9, - 0xf5, 0x62, 0x5e, 0xbd, 0x06, 0x9c, 0x32, 0x2a, 0x9a, 0xde, 0x58, 0xd6, 0x4a, 0xc6, 0xa6, 0xae, - 0xd5, 0x1b, 0xd5, 0x5a, 0xa3, 0x5a, 0x5a, 0xd7, 0x8a, 0x05, 0xac, 0xfe, 0xe4, 0x53, 0x28, 0x36, - 0x13, 0x07, 0x85, 0x71, 0x32, 0x42, 0x18, 0xa7, 0x7a, 0x85, 0x11, 0xf0, 0x62, 0xa5, 0x6b, 0x75, - 0x4d, 0x3f, 0xa7, 0x15, 0xa7, 0xfb, 0xc9, 0xda, 0x8c, 0x7a, 0x12, 0x14, 0x31, 0x0d, 0x8d, 0x4a, - 0xdd, 0xcf, 0xb9, 0x54, 0x9c, 0x85, 0x1f, 0x2b, 0x80, 0xd3, 0x3a, 0xda, 0xb6, 0xba, 0x1e, 0x72, - 0x37, 0xcc, 0x2b, 0xbb, 0xc8, 0xf6, 0xfc, 0x4e, 0xfe, 0x7f, 0x27, 0x16, 0xc6, 0x75, 0x30, 0xdb, - 0xa1, 0x65, 0xac, 0x23, 0x6f, 0xc7, 0x69, 0xb1, 0x51, 0xf8, 0x89, 0x91, 0x3d, 0xc7, 0xc2, 0x06, - 0x9f, 0x5d, 0x17, 0xff, 0xe6, 0x64, 0x5b, 0x89, 0x91, 0xed, 0xdc, 0x30, 0xb2, 0xad, 0x5e, 0x07, - 0xa6, 0xf6, 0xba, 0xc8, 0xd5, 0x76, 0x4d, 0xab, 0xed, 0xdf, 0x62, 0x16, 0x24, 0xc0, 0xb7, 0xe7, - 0x64, 0xdd, 0x4c, 0xb9, 0xb6, 0xf4, 0x67, 0x63, 0x44, 0xdf, 0x7a, 0x06, 0x00, 0xd6, 0xd8, 0x4d, - 0xb7, 0xcd, 0x84, 0x95, 0x4b, 0xc1, 0xf4, 0x5d, 0xb0, 0xda, 0x6d, 0xcb, 0xde, 0x0e, 0x16, 0xeb, - 0xc3, 0x04, 0xf8, 0x12, 0x45, 0xc6, 0xed, 0x34, 0x29, 0x6d, 0xc9, 0xb4, 0xe9, 0x45, 0xd9, 0x31, - 0xf7, 0xbb, 0x07, 0x55, 0xa7, 0xa0, 0x16, 0xc1, 0x0c, 0x49, 0x63, 0x1a, 0x58, 0x9c, 0xc0, 0x7d, - 0xb0, 0x5f, 0xdc, 0xba, 0x66, 0xac, 0xd6, 0x96, 0x82, 0x6f, 0x93, 0xb8, 0x48, 0x4c, 0x4c, 0xa9, - 0xfa, 0x10, 0xd1, 0xc6, 0x29, 0xf5, 0x71, 0xe0, 0x1a, 0xae, 0xc3, 0x2e, 0xad, 0xe9, 0x5a, 0x69, - 0xe9, 0xa1, 0x86, 0xf6, 0x9c, 0x4a, 0xdd, 0xa8, 0x8b, 0xca, 0xe5, 0xeb, 0xd1, 0x34, 0xa6, 0x57, - 0x5b, 0x2f, 0x55, 0xd6, 0x58, 0xff, 0xbe, 0x5c, 0xd3, 0xd7, 0x4b, 0x46, 0x71, 0x06, 0xbe, 0x52, - 0x01, 0xc5, 0x15, 0xe4, 0x6d, 0x38, 0xae, 0x67, 0xb6, 0xd7, 0x2c, 0xfb, 0xe2, 0xa6, 0xdb, 0xe6, - 0x6d, 0xa6, 0x7f, 0x95, 0x3e, 0x5b, 0x2b, 0x0e, 0x91, 0x42, 0x81, 0xd1, 0xcb, 0xd8, 0x1d, 0x92, - 0x2d, 0x14, 0xa6, 0x30, 0x01, 0x3e, 0x2f, 0x2b, 0x73, 0x96, 0x56, 0xbe, 0xd6, 0x64, 0x72, 0xf2, - 0xfc, 0x71, 0x8f, 0xcf, 0x7d, 0x50, 0x2b, 0xc0, 0x47, 0x72, 0x60, 0x72, 0xd9, 0xb2, 0xcd, 0xb6, - 0xf5, 0x5c, 0x21, 0x40, 0x5c, 0xd8, 0xc7, 0x64, 0x62, 0xfa, 0x98, 0xec, 0x50, 0xe3, 0xe7, 0xcf, - 0x2b, 0xb2, 0x1b, 0x16, 0x1c, 0xef, 0x7d, 0x22, 0x23, 0x06, 0xcf, 0xdf, 0xcd, 0xca, 0x6c, 0x49, - 0x0c, 0x2e, 0x2f, 0x19, 0x86, 0x9f, 0xf8, 0xde, 0xb0, 0xb1, 0x7a, 0xf4, 0x7b, 0xb2, 0x9f, 0x28, - 0x4c, 0xc1, 0x3f, 0x51, 0x00, 0x5c, 0x41, 0xde, 0x39, 0xe4, 0x06, 0x53, 0x01, 0xd2, 0xeb, 0x33, - 0x7b, 0x9b, 0x53, 0xd9, 0x37, 0xf3, 0x00, 0x9e, 0x17, 0x01, 0x2c, 0xc5, 0x28, 0x4f, 0x44, 0xd1, - 0x11, 0xca, 0x5b, 0x01, 0x85, 0x2e, 0xf9, 0xce, 0xc4, 0xec, 0x29, 0xd1, 0xc3, 0x25, 0x29, 0x8c, - 0x2f, 0x9d, 0x16, 0xac, 0xb3, 0x02, 0xe0, 0xb7, 0x83, 0x49, 0xd0, 0x0f, 0x0a, 0xd2, 0xb1, 0x7c, - 0x68, 0x62, 0x93, 0xc9, 0x8b, 0x9b, 0xae, 0xb8, 0xf4, 0xb3, 0x6f, 0xe0, 0x17, 0x72, 0xe0, 0x64, - 0xbf, 0xe6, 0xf0, 0xf7, 0xc8, 0x9d, 0x04, 0x79, 0x44, 0x46, 0x7c, 0xaa, 0xec, 0xf4, 0x45, 0x7d, - 0x2a, 0x38, 0xc5, 0x36, 0x4c, 0x2f, 0x20, 0xc3, 0xa9, 0xa2, 0x4b, 0xdd, 0x36, 0xf2, 0x3c, 0xe4, - 0x92, 0x96, 0x4d, 0xea, 0xfd, 0x3f, 0xc2, 0xbf, 0x55, 0x64, 0x5d, 0xd3, 0x07, 0xf0, 0x3b, 0x42, - 0xd3, 0x7f, 0x52, 0x91, 0x71, 0x36, 0x4f, 0x56, 0x76, 0x32, 0x14, 0x5f, 0x38, 0xee, 0x11, 0xbe, - 0xff, 0xd0, 0x4a, 0x74, 0x9e, 0xa6, 0xfb, 0x23, 0xf4, 0x39, 0x4d, 0xaf, 0x2c, 0x57, 0x34, 0x3c, - 0xde, 0x9f, 0x02, 0x27, 0xc2, 0x6f, 0x4b, 0x0f, 0x35, 0xea, 0x5a, 0xd5, 0x28, 0x4e, 0xe2, 0x0e, - 0x84, 0x26, 0x2f, 0x97, 0x2a, 0x6b, 0xda, 0x52, 0xc3, 0xa8, 0xe1, 0x2f, 0x4b, 0xc3, 0x8d, 0xf9, - 0xf0, 0x05, 0x39, 0x70, 0x9c, 0xf0, 0xf6, 0x0a, 0xe1, 0x2a, 0x66, 0x4a, 0x8f, 0xe7, 0x4a, 0x00, - 0xd0, 0x14, 0x65, 0x2f, 0xfc, 0x8c, 0xf4, 0x1d, 0x61, 0x1c, 0x84, 0x3d, 0x75, 0x44, 0x48, 0xc6, - 0xb7, 0xb2, 0x32, 0xe7, 0x3d, 0xa5, 0x8b, 0x4d, 0x26, 0x14, 0xff, 0x32, 0xee, 0xa1, 0x20, 0x1a, - 0x7c, 0x62, 0xfe, 0x95, 0xc9, 0xcf, 0xcf, 0xd9, 0xa8, 0xe8, 0x44, 0x1c, 0xe6, 0x00, 0x20, 0x29, - 0x44, 0x82, 0xa8, 0x1c, 0xf4, 0x1d, 0x48, 0xa2, 0xe4, 0xa0, 0x54, 0x36, 0x2a, 0xe7, 0xb4, 0x28, - 0x39, 0xf8, 0xb4, 0x02, 0x26, 0x57, 0x90, 0x87, 0x27, 0x3b, 0x5d, 0xf8, 0x4c, 0x89, 0x85, 0x19, - 0x6c, 0x5f, 0x90, 0xcb, 0x91, 0x83, 0xf9, 0x39, 0x7d, 0x83, 0x3f, 0x31, 0x8c, 0x6d, 0xe0, 0x57, - 0x1d, 0x31, 0x90, 0x3c, 0x1d, 0xe4, 0x3d, 0xfc, 0x99, 0xad, 0x0f, 0x3f, 0x3e, 0x72, 0x1c, 0xc1, - 0x85, 0x2c, 0x99, 0x9e, 0xa9, 0xd3, 0xfc, 0xdc, 0xb0, 0x21, 0x69, 0x54, 0x44, 0x10, 0xf2, 0xbd, - 0x68, 0x18, 0xfe, 0xb5, 0x02, 0x4e, 0x51, 0xfd, 0x28, 0x75, 0x3a, 0x75, 0xcf, 0x71, 0x91, 0x8e, - 0x9a, 0xc8, 0xea, 0x78, 0x3d, 0x0b, 0x6f, 0x2e, 0x4d, 0xf5, 0x77, 0xf6, 0xd8, 0x2b, 0x7c, 0xa3, - 0x22, 0x1b, 0xd1, 0xf0, 0x80, 0x3e, 0xf6, 0xd4, 0x17, 0xa1, 0xec, 0x8f, 0x66, 0x65, 0x62, 0x14, - 0x26, 0x2c, 0x3c, 0x19, 0x50, 0x1f, 0x3e, 0x02, 0xa0, 0xfc, 0x25, 0x15, 0x5d, 0x2b, 0x6b, 0x95, - 0x0d, 0x3c, 0x08, 0x5c, 0x0f, 0xae, 0xdd, 0xd8, 0xd4, 0xcb, 0xab, 0xa5, 0xba, 0xd6, 0xd0, 0xb5, - 0x95, 0x4a, 0xdd, 0xd0, 0x4b, 0x46, 0xa5, 0xe6, 0x13, 0x30, 0xa1, 0x5e, 0x07, 0xe6, 0xeb, 0x9b, - 0x8b, 0xf5, 0xb2, 0x5e, 0xd9, 0x20, 0xe9, 0xba, 0x56, 0xd5, 0xce, 0xb3, 0xaf, 0x93, 0xf0, 0x83, - 0x45, 0x30, 0x8d, 0x2d, 0xf3, 0x3a, 0x35, 0xd8, 0xe1, 0x37, 0x72, 0x60, 0x5a, 0x47, 0x5d, 0xa7, - 0xbd, 0x4f, 0x8c, 0xf7, 0x71, 0xcd, 0x09, 0xbe, 0xa9, 0xc8, 0x9e, 0x86, 0xe2, 0x88, 0x5d, 0xe0, - 0x08, 0x8d, 0x9e, 0x01, 0x9a, 0x7e, 0x74, 0x60, 0x66, 0xb7, 0x84, 0x09, 0xea, 0x02, 0x50, 0x9d, - 0x4b, 0x36, 0x72, 0xeb, 0xcd, 0x4b, 0x9a, 0xb7, 0x53, 0x6a, 0xb5, 0x5c, 0xd4, 0xed, 0xb2, 0x65, - 0x85, 0x3e, 0x5f, 0xd4, 0x5b, 0xc0, 0x71, 0x92, 0xca, 0x65, 0xa6, 0x47, 0x37, 0x7b, 0x93, 0x83, - 0x9c, 0x25, 0xfb, 0x8a, 0x9f, 0x33, 0xcf, 0xe5, 0x0c, 0x93, 0x79, 0xe7, 0xc3, 0x82, 0xe8, 0xf3, - 0x7a, 0x03, 0x98, 0xb6, 0xcd, 0x5d, 0xa4, 0x5d, 0xee, 0x58, 0x2e, 0xea, 0xce, 0x4f, 0x90, 0xdd, - 0x34, 0x3e, 0x09, 0xfe, 0xae, 0xd4, 0xe9, 0x2d, 0x39, 0x8e, 0x25, 0x93, 0xfd, 0x95, 0x21, 0x44, - 0xbf, 0x4f, 0x3f, 0xa3, 0xc0, 0x0f, 0x2a, 0x60, 0x86, 0x11, 0x55, 0xb2, 0xaf, 0x54, 0x5a, 0xf0, - 0x7a, 0xc1, 0x2c, 0x35, 0x71, 0x9a, 0x6f, 0x96, 0x92, 0x17, 0xf8, 0x33, 0x8a, 0xac, 0x3b, 0x51, - 0x9f, 0x86, 0x93, 0x3a, 0xa2, 0x5d, 0x5c, 0xb6, 0x9c, 0x3d, 0xe6, 0x52, 0x33, 0xa9, 0xd3, 0x97, - 0x34, 0x57, 0xdb, 0xe0, 0x87, 0xa4, 0x9c, 0x95, 0x24, 0x9b, 0x71, 0x44, 0x00, 0x7e, 0x5c, 0x01, - 0x73, 0x8c, 0xaa, 0x3a, 0xf3, 0x9a, 0x95, 0x72, 0x1f, 0xff, 0x59, 0x69, 0x43, 0xb0, 0x4f, 0xfb, - 0x59, 0x4d, 0x8f, 0x19, 0x20, 0x3f, 0x22, 0x15, 0x6a, 0x44, 0xba, 0x21, 0x47, 0x04, 0xe5, 0x3b, - 0x72, 0x60, 0x7a, 0xb3, 0x8b, 0x5c, 0xe6, 0x17, 0x07, 0x5f, 0x97, 0x03, 0xca, 0x0a, 0x12, 0x76, - 0x38, 0x5f, 0x9c, 0x93, 0x5d, 0xad, 0xe3, 0x1b, 0xcb, 0x15, 0x8a, 0x6d, 0xa4, 0x08, 0xd8, 0x6e, - 0x06, 0x73, 0x94, 0xa5, 0x25, 0xcf, 0xc3, 0x46, 0xa2, 0x7f, 0x08, 0xa0, 0x27, 0x75, 0x14, 0x7b, - 0x38, 0xa4, 0x2e, 0x9c, 0xa5, 0x8c, 0x69, 0x5a, 0x43, 0x5b, 0x34, 0x10, 0x55, 0x4e, 0xef, 0x49, - 0x25, 0x17, 0x37, 0x77, 0x10, 0xf5, 0x06, 0xe5, 0x32, 0xe7, 0x49, 0xe6, 0x7e, 0x9f, 0xe0, 0x37, - 0xa4, 0x22, 0xf4, 0xc9, 0x73, 0x27, 0x99, 0x2c, 0x74, 0x46, 0x63, 0x92, 0x9c, 0x04, 0x45, 0x9c, - 0x83, 0x6c, 0x8c, 0xe8, 0x5a, 0xbd, 0xb6, 0x76, 0x4e, 0xeb, 0xbf, 0xbe, 0x90, 0x87, 0x2f, 0x54, - 0xc0, 0xd4, 0xa2, 0xeb, 0x98, 0xad, 0xa6, 0xd9, 0xf5, 0xe0, 0xb7, 0xb3, 0x60, 0x66, 0xc3, 0xbc, - 0xd2, 0x76, 0xcc, 0x16, 0xf1, 0x44, 0xec, 0xe9, 0x0b, 0x3a, 0xf4, 0x93, 0xdf, 0x17, 0xb0, 0x57, - 0xd1, 0xcd, 0x3e, 0x70, 0x84, 0xcf, 0xc8, 0x5c, 0x25, 0x16, 0xec, 0xbf, 0x65, 0xfb, 0x85, 0xfe, - 0xf2, 0xe9, 0x5a, 0xe0, 0x69, 0x8a, 0xb0, 0x28, 0x3f, 0x28, 0x17, 0xcc, 0x4b, 0xa6, 0xc8, 0xa3, - 0xd9, 0x2e, 0x7f, 0x64, 0x12, 0x14, 0x96, 0x10, 0xb1, 0xe2, 0x7e, 0x33, 0x0b, 0x26, 0xd8, 0x65, - 0xfa, 0xf0, 0x6e, 0xc1, 0xc9, 0xb1, 0x45, 0x32, 0x04, 0xdd, 0x71, 0xf0, 0x8e, 0x27, 0xeb, 0xdc, - 0xe9, 0x25, 0xf2, 0x9c, 0xc0, 0xfd, 0x8b, 0xd6, 0x1b, 0x71, 0x81, 0x7f, 0x32, 0xf7, 0xaf, 0xd8, - 0xa2, 0xd2, 0x77, 0x82, 0x7a, 0x57, 0x96, 0xf9, 0x3c, 0x71, 0xbd, 0xde, 0x2f, 0xf3, 0xf2, 0x19, - 0xeb, 0x06, 0xc6, 0x88, 0x8f, 0xf1, 0x5a, 0xba, 0x0b, 0x4c, 0x50, 0x9e, 0xfb, 0xf3, 0xd1, 0x5e, - 0x07, 0x02, 0x5a, 0x04, 0x39, 0xc9, 0xe4, 0xe7, 0x94, 0xf4, 0x1d, 0x8b, 0xae, 0x7c, 0x2c, 0x27, - 0xfa, 0x66, 0xaa, 0xc8, 0xbb, 0xe4, 0xb8, 0x17, 0xeb, 0x9e, 0xe9, 0x21, 0xf8, 0x2f, 0x59, 0xa0, - 0xd4, 0x91, 0xc7, 0x9f, 0x25, 0xae, 0x82, 0x13, 0xb4, 0x41, 0x2c, 0x23, 0xe9, 0xbf, 0x69, 0x43, - 0x6e, 0xe8, 0xcb, 0x04, 0x2e, 0x9f, 0x7e, 0xf0, 0x57, 0xf8, 0x0b, 0x7d, 0x43, 0x28, 0x64, 0xfb, - 0x4c, 0x1a, 0x18, 0x67, 0x78, 0x02, 0xb1, 0x80, 0x45, 0xc8, 0xe9, 0xef, 0x48, 0x99, 0xd5, 0x72, - 0x65, 0x1e, 0x49, 0x57, 0x70, 0x76, 0x02, 0xe4, 0xb5, 0xdd, 0x8e, 0x77, 0xe5, 0xec, 0x13, 0xc0, - 0x6c, 0xdd, 0x73, 0x91, 0xb9, 0xcb, 0xd9, 0xd4, 0x9e, 0x73, 0x11, 0xd9, 0xbe, 0x4d, 0x4d, 0x5e, - 0xee, 0xb9, 0x1b, 0x4c, 0xd8, 0x4e, 0xc3, 0xdc, 0xf3, 0x76, 0xd4, 0xeb, 0x0f, 0x5c, 0x7a, 0xbf, - 0x4e, 0xbd, 0x75, 0x6b, 0xec, 0x2c, 0xcd, 0x57, 0xee, 0x25, 0x56, 0x55, 0xc1, 0x76, 0x4a, 0x7b, - 0xde, 0xce, 0xe2, 0x75, 0x1f, 0xff, 0xab, 0x33, 0x99, 0x4f, 0xff, 0xd5, 0x99, 0xcc, 0x97, 0xff, - 0xea, 0x4c, 0xe6, 0x67, 0xbf, 0x7a, 0xe6, 0xd8, 0xa7, 0xbf, 0x7a, 0xe6, 0xd8, 0xe7, 0xbf, 0x7a, - 0xe6, 0xd8, 0x0f, 0x66, 0x3b, 0x17, 0x2e, 0x14, 0x48, 0x29, 0x77, 0xfd, 0xbf, 0x01, 0x00, 0x00, - 0xff, 0xff, 0x6a, 0xd6, 0x20, 0x6f, 0xcc, 0xdd, 0x01, 0x00, + // 18041 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0xbd, 0x7d, 0x98, 0x24, 0x49, + 0x59, 0x2f, 0x3a, 0x55, 0x59, 0x55, 0xdd, 0x1d, 0xfd, 0x31, 0x35, 0xb9, 0x33, 0xb3, 0xbd, 0xb1, + 0xcb, 0xec, 0x30, 0xbb, 0x2c, 0xeb, 0xb2, 0xf4, 0x2c, 0xbb, 0x20, 0xec, 0xb2, 0xcb, 0x6e, 0x75, + 0x75, 0x76, 0x77, 0xb1, 0xdd, 0x55, 0x65, 0x66, 0xf6, 0x0c, 0xab, 0xd7, 0x5b, 0x27, 0xa7, 0x2a, + 0xba, 0x3b, 0x77, 0xaa, 0x33, 0xcb, 0xac, 0xec, 0x9e, 0x19, 0xee, 0x73, 0xee, 0x11, 0x11, 0x59, + 0x3f, 0x38, 0x88, 0xc8, 0x51, 0x40, 0x58, 0x59, 0x04, 0x0f, 0x28, 0xac, 0x7c, 0x2c, 0x5f, 0x22, + 0xca, 0xc7, 0x0a, 0x22, 0x22, 0x82, 0x28, 0xa0, 0x3c, 0x82, 0xa0, 0x07, 0xcf, 0x39, 0x1e, 0xaf, + 0x3e, 0x47, 0x10, 0x85, 0xeb, 0x7d, 0x32, 0x22, 0x32, 0x33, 0xa2, 0xba, 0x32, 0x2b, 0xb2, 0xba, + 0xb2, 0x7a, 0xd1, 0xfb, 0x5f, 0x66, 0x64, 0x64, 0xc4, 0x1b, 0xef, 0xef, 0x7d, 0x23, 0xde, 0x88, + 0x78, 0xe3, 0x0d, 0x30, 0xdf, 0xb9, 0x70, 0xb6, 0xe3, 0xd8, 0xae, 0xdd, 0x3d, 0xdb, 0xb4, 0x77, + 0x76, 0x0c, 0xab, 0xd5, 0x5d, 0xc0, 0xef, 0xf2, 0x84, 0x61, 0x5d, 0x71, 0xaf, 0x74, 0x10, 0xbc, + 0xb1, 0x73, 0x71, 0xeb, 0x6c, 0xdb, 0xbc, 0x70, 0xb6, 0x73, 0xe1, 0xec, 0x8e, 0xdd, 0x42, 0x6d, + 0xff, 0x07, 0xfc, 0x42, 0xb3, 0xc3, 0x9b, 0xa3, 0x72, 0xb5, 0xed, 0xa6, 0xd1, 0xee, 0xba, 0xb6, + 0x83, 0x68, 0xce, 0x93, 0x61, 0x95, 0x68, 0x0f, 0x59, 0xae, 0x5f, 0xc2, 0x75, 0x5b, 0xb6, 0xbd, + 0xd5, 0x46, 0xe4, 0xdb, 0x85, 0xdd, 0xcd, 0xb3, 0x5d, 0xd7, 0xd9, 0x6d, 0xba, 0xf4, 0xeb, 0xe9, + 0xde, 0xaf, 0x2d, 0xd4, 0x6d, 0x3a, 0x66, 0xc7, 0xb5, 0x1d, 0x92, 0xe3, 0xcc, 0xff, 0x78, 0xdf, + 0x04, 0x90, 0xd4, 0x4e, 0x13, 0x7e, 0x73, 0x02, 0x48, 0xa5, 0x4e, 0x07, 0x3e, 0x9e, 0x05, 0x60, + 0x05, 0xb9, 0xe7, 0x90, 0xd3, 0x35, 0x6d, 0x0b, 0x1e, 0x05, 0x13, 0x2a, 0xfa, 0x91, 0x5d, 0xd4, + 0x75, 0xef, 0xca, 0x3d, 0xf4, 0xd7, 0x52, 0x06, 0xbe, 0x29, 0x0b, 0x26, 0x55, 0xd4, 0xed, 0xd8, + 0x56, 0x17, 0xc9, 0xf7, 0x81, 0x3c, 0x72, 0x1c, 0xdb, 0x99, 0xcf, 0x9c, 0xce, 0xdc, 0x3c, 0x7d, + 0xfb, 0x2d, 0x0b, 0xb4, 0xf9, 0x0b, 0x6a, 0xa7, 0xb9, 0x50, 0xea, 0x74, 0x16, 0xc2, 0x92, 0x16, + 0xfc, 0x9f, 0x16, 0x14, 0xef, 0x0f, 0x95, 0xfc, 0x28, 0xcf, 0x83, 0x89, 0x3d, 0x92, 0x61, 0x3e, + 0x7b, 0x3a, 0x73, 0xf3, 0x94, 0xea, 0xbf, 0x7a, 0x5f, 0x5a, 0xc8, 0x35, 0xcc, 0x76, 0x77, 0x5e, + 0x22, 0x5f, 0xe8, 0x2b, 0x7c, 0x24, 0x03, 0xf2, 0xb8, 0x10, 0xb9, 0x0c, 0x72, 0x4d, 0xbb, 0x85, + 0x70, 0xf5, 0x73, 0xb7, 0x9f, 0x15, 0xaf, 0x7e, 0xa1, 0x6c, 0xb7, 0x90, 0x8a, 0x7f, 0x96, 0x4f, + 0x83, 0x69, 0x9f, 0x2d, 0x21, 0x19, 0x6c, 0xd2, 0x99, 0xdb, 0x41, 0xce, 0xcb, 0x2f, 0x4f, 0x82, + 0x5c, 0x75, 0x63, 0x6d, 0xad, 0x78, 0x44, 0x3e, 0x06, 0x66, 0x37, 0xaa, 0xf7, 0x57, 0x6b, 0xe7, + 0xab, 0x0d, 0x45, 0x55, 0x6b, 0x6a, 0x31, 0x23, 0xcf, 0x82, 0xa9, 0xc5, 0xd2, 0x52, 0xa3, 0x52, + 0xad, 0x6f, 0xe8, 0xc5, 0x2c, 0x7c, 0xbd, 0x04, 0xe6, 0x34, 0xe4, 0x2e, 0xa1, 0x3d, 0xb3, 0x89, + 0x34, 0xd7, 0x70, 0x11, 0x7c, 0x79, 0x26, 0x60, 0xa6, 0xbc, 0xe1, 0x55, 0x1a, 0x7c, 0xa2, 0x0d, + 0xb8, 0x63, 0x5f, 0x03, 0xf8, 0x12, 0x16, 0xe8, 0xdf, 0x0b, 0x4c, 0x9a, 0xca, 0x96, 0x73, 0xe6, + 0xe9, 0x60, 0x9a, 0xf9, 0x26, 0xcf, 0x01, 0xb0, 0x58, 0x2a, 0xdf, 0xbf, 0xa2, 0xd6, 0x36, 0xaa, + 0x4b, 0xc5, 0x23, 0xde, 0xfb, 0x72, 0x4d, 0x55, 0xe8, 0x7b, 0x06, 0x7e, 0x3b, 0xc3, 0x80, 0xb9, + 0xc4, 0x83, 0xb9, 0x30, 0x98, 0x98, 0x3e, 0x80, 0xc2, 0x37, 0x07, 0xe0, 0xac, 0x70, 0xe0, 0xdc, + 0x91, 0xac, 0xb8, 0xf4, 0x01, 0x7a, 0x49, 0x16, 0x4c, 0x6a, 0xdb, 0xbb, 0x6e, 0xcb, 0xbe, 0x64, + 0xc1, 0xa9, 0x00, 0x19, 0xf8, 0xb7, 0x2c, 0x4f, 0x9e, 0xc7, 0xf3, 0xe4, 0xe6, 0xfd, 0x8d, 0xa0, + 0x25, 0x44, 0x70, 0xe3, 0x97, 0x03, 0x6e, 0x94, 0x38, 0x6e, 0x3c, 0x5d, 0xb4, 0xa0, 0xf4, 0xf9, + 0xf0, 0xb3, 0x77, 0x80, 0xbc, 0xd6, 0x31, 0x9a, 0x08, 0x7e, 0x4a, 0x02, 0x33, 0x6b, 0xc8, 0xd8, + 0x43, 0xa5, 0x4e, 0xc7, 0xb1, 0xf7, 0x10, 0x2c, 0x87, 0xf2, 0x3a, 0x0f, 0x26, 0xba, 0x5e, 0xa6, + 0x4a, 0x0b, 0xb7, 0x60, 0x4a, 0xf5, 0x5f, 0xe5, 0x53, 0x00, 0x98, 0x2d, 0x64, 0xb9, 0xa6, 0x6b, + 0xa2, 0xee, 0x7c, 0xf6, 0xb4, 0x74, 0xf3, 0x94, 0xca, 0xa4, 0xc0, 0x6f, 0x66, 0x45, 0x65, 0x0c, + 0x53, 0xb1, 0xc0, 0x52, 0x10, 0xc1, 0xd5, 0x37, 0x66, 0x45, 0x64, 0x6c, 0x60, 0x71, 0xc9, 0x78, + 0xfb, 0xf6, 0x4c, 0x72, 0xe6, 0x7a, 0x39, 0xaa, 0xb5, 0x86, 0xb6, 0x51, 0x5e, 0x6d, 0x68, 0xf5, + 0x52, 0x59, 0x29, 0x22, 0xf9, 0x38, 0x28, 0xe2, 0xc7, 0x46, 0x45, 0x6b, 0x2c, 0x29, 0x6b, 0x8a, + 0xae, 0x2c, 0x15, 0x37, 0x65, 0x19, 0xcc, 0xa9, 0xca, 0x0f, 0x6c, 0x28, 0x9a, 0xde, 0x58, 0x2e, + 0x55, 0xd6, 0x94, 0xa5, 0xe2, 0x96, 0xf7, 0xf3, 0x5a, 0x65, 0xbd, 0xa2, 0x37, 0x54, 0xa5, 0x54, + 0x5e, 0x55, 0x96, 0x8a, 0xdb, 0xf2, 0xd5, 0xe0, 0xaa, 0x6a, 0xad, 0x51, 0xaa, 0xd7, 0xd5, 0xda, + 0x39, 0xa5, 0x41, 0xff, 0xd0, 0x8a, 0x26, 0xa9, 0x48, 0x6f, 0x68, 0xab, 0x25, 0x55, 0x29, 0x2d, + 0xae, 0x29, 0xc5, 0x07, 0xe1, 0x8b, 0x25, 0x30, 0xbb, 0x6e, 0x5c, 0x44, 0xda, 0xb6, 0xe1, 0x20, + 0xe3, 0x42, 0x1b, 0xc1, 0x1b, 0x04, 0xf0, 0x84, 0x9f, 0x62, 0xf1, 0x52, 0x78, 0xbc, 0xce, 0xf6, + 0x61, 0x30, 0x57, 0x45, 0x04, 0x60, 0xff, 0x14, 0xa8, 0xc1, 0x2a, 0x07, 0xd8, 0x33, 0x13, 0x96, + 0x97, 0x0c, 0xb1, 0x1f, 0x7b, 0x02, 0x20, 0x06, 0xbf, 0x2c, 0x81, 0xb9, 0x8a, 0xb5, 0x67, 0xba, + 0x68, 0x05, 0x59, 0xc8, 0xf1, 0xc6, 0x01, 0x21, 0x18, 0xde, 0x24, 0x31, 0x30, 0x2c, 0xf3, 0x30, + 0xdc, 0xd6, 0x87, 0x6d, 0x7c, 0x1d, 0x11, 0xa3, 0xed, 0x75, 0x60, 0xca, 0xc4, 0xf9, 0xca, 0x66, + 0x8b, 0x72, 0x2c, 0x4c, 0x90, 0x6f, 0x04, 0xb3, 0xe4, 0x65, 0xd9, 0x6c, 0xa3, 0xfb, 0xd1, 0x15, + 0x3a, 0xee, 0xf2, 0x89, 0xf0, 0x67, 0x02, 0xe5, 0xab, 0x70, 0x58, 0x3e, 0x2b, 0x29, 0x51, 0xc9, + 0xc0, 0x7c, 0xd5, 0x13, 0x41, 0xfd, 0xf6, 0x69, 0x99, 0x09, 0xbf, 0x9b, 0x05, 0xd3, 0x9a, 0x6b, + 0x77, 0x3c, 0x91, 0x35, 0xad, 0x2d, 0x31, 0x70, 0x3f, 0xc1, 0xea, 0x58, 0x99, 0x07, 0xf7, 0xe9, + 0x7d, 0xf8, 0xc8, 0x54, 0x10, 0xa1, 0x61, 0xdf, 0x0c, 0x34, 0x6c, 0x99, 0x43, 0xe5, 0xf6, 0x44, + 0xa5, 0x7d, 0x0f, 0xea, 0xd7, 0xab, 0x24, 0x50, 0xf4, 0xc5, 0xcc, 0x2d, 0xef, 0x3a, 0x0e, 0xb2, + 0x5c, 0x31, 0x10, 0xfe, 0x8c, 0x05, 0x61, 0x95, 0x07, 0xe1, 0xf6, 0x18, 0x61, 0xf6, 0x6b, 0x49, + 0x51, 0xc7, 0x7e, 0x27, 0x40, 0xf3, 0x7e, 0x0e, 0xcd, 0x67, 0x27, 0x27, 0x2b, 0x19, 0xa4, 0xab, + 0x43, 0x20, 0x7a, 0x1c, 0x14, 0xbd, 0x31, 0xa9, 0xac, 0x57, 0xce, 0x29, 0x8d, 0x4a, 0xf5, 0x5c, + 0x45, 0x57, 0x8a, 0x08, 0xbe, 0x52, 0x02, 0x33, 0x84, 0x34, 0x15, 0xed, 0xd9, 0x17, 0x05, 0x7b, + 0xbd, 0x2f, 0x27, 0x34, 0x16, 0xd8, 0x1a, 0x22, 0x34, 0xe3, 0xa7, 0x12, 0x18, 0x0b, 0x31, 0xc5, + 0x3d, 0x91, 0x7a, 0xab, 0x7d, 0x6a, 0xb0, 0xd5, 0x47, 0x5b, 0xfa, 0xf6, 0x56, 0xaf, 0xca, 0x01, + 0x40, 0x1a, 0x79, 0xce, 0x44, 0x97, 0xe0, 0x7a, 0x88, 0x09, 0x27, 0xb6, 0x99, 0x81, 0x62, 0x9b, + 0xed, 0x27, 0xb6, 0xef, 0x65, 0xc7, 0xac, 0x45, 0x1e, 0xbd, 0x5b, 0x23, 0xd9, 0xed, 0x51, 0x12, + 0x3d, 0x3b, 0xf4, 0x05, 0x25, 0xcb, 0x5b, 0x9d, 0xd7, 0x81, 0x29, 0xfc, 0x58, 0x35, 0x76, 0x10, + 0xd5, 0xa1, 0x30, 0x41, 0x3e, 0x03, 0x66, 0x48, 0xc6, 0xa6, 0x6d, 0x79, 0xed, 0xc9, 0xe1, 0x0c, + 0x5c, 0x9a, 0x07, 0x62, 0xd3, 0x41, 0x86, 0x6b, 0x3b, 0xb8, 0x8c, 0x3c, 0x01, 0x91, 0x49, 0x82, + 0xdf, 0x08, 0xb4, 0x50, 0xe1, 0x24, 0xe7, 0x19, 0x49, 0x9a, 0x92, 0x4c, 0x6e, 0xf6, 0x86, 0xd3, + 0x3f, 0xa2, 0x75, 0x0d, 0x0f, 0xed, 0x65, 0x3c, 0xb5, 0x43, 0xf2, 0x49, 0x20, 0xd3, 0x54, 0x2f, + 0x6f, 0xb9, 0x56, 0xd5, 0x95, 0xaa, 0x5e, 0xdc, 0xec, 0x2b, 0x51, 0x5b, 0xf0, 0x8d, 0x39, 0x90, + 0x7b, 0xbe, 0x6d, 0x5a, 0xf0, 0x25, 0x19, 0x4e, 0x24, 0x2c, 0xe4, 0x5e, 0xb2, 0x9d, 0x8b, 0x81, + 0xa2, 0x86, 0x09, 0xf1, 0xd8, 0x84, 0xa2, 0x24, 0x0d, 0x14, 0xa5, 0x5c, 0x3f, 0x51, 0xfa, 0x39, + 0x56, 0x94, 0xee, 0xe6, 0x45, 0xe9, 0xa6, 0x3e, 0xfc, 0xf7, 0x88, 0x8f, 0xe8, 0x00, 0x3e, 0x1e, + 0x74, 0x00, 0xf7, 0x72, 0x30, 0x3e, 0x4d, 0xac, 0x98, 0x64, 0x00, 0x7e, 0x29, 0x55, 0xc5, 0xef, + 0x07, 0xf5, 0x56, 0x04, 0xd4, 0xdb, 0x7d, 0xfa, 0x04, 0x73, 0x7f, 0xd7, 0xf1, 0xe0, 0xfe, 0x6e, + 0xe2, 0xa2, 0x7c, 0x02, 0x1c, 0x5b, 0xaa, 0x2c, 0x2f, 0x2b, 0xaa, 0x52, 0xd5, 0x1b, 0x55, 0x45, + 0x3f, 0x5f, 0x53, 0xef, 0x2f, 0xb6, 0xe1, 0x23, 0x12, 0x00, 0x1e, 0x87, 0xca, 0x86, 0xd5, 0x44, + 0x6d, 0xb1, 0x1e, 0xfd, 0x7f, 0x65, 0x93, 0xf5, 0x09, 0x61, 0xf9, 0x11, 0x70, 0xbe, 0x2e, 0x2b, + 0xae, 0x95, 0x91, 0x85, 0x25, 0x03, 0xf5, 0xad, 0x4f, 0x04, 0xdb, 0xf3, 0x2a, 0x70, 0xd4, 0x2f, + 0x8f, 0x66, 0xef, 0x3f, 0xed, 0x7b, 0x34, 0x07, 0xe6, 0x28, 0x2c, 0xfe, 0x3c, 0xfe, 0xa1, 0x8c, + 0xc8, 0x44, 0x1e, 0x82, 0x49, 0x3a, 0x6d, 0xf7, 0xbb, 0xf7, 0xe0, 0x5d, 0x5e, 0x01, 0xd3, 0x1d, + 0xe4, 0xec, 0x98, 0xdd, 0xae, 0x69, 0x5b, 0x64, 0x41, 0x6e, 0xee, 0xf6, 0xa7, 0x04, 0x1c, 0xc7, + 0x6b, 0x97, 0x0b, 0x75, 0xc3, 0x71, 0xcd, 0xa6, 0xd9, 0x31, 0x2c, 0xb7, 0x1e, 0x66, 0x56, 0xd9, + 0x3f, 0xe1, 0x2b, 0x12, 0x4e, 0x6b, 0xf8, 0x96, 0x44, 0x88, 0xc4, 0x07, 0x13, 0x4c, 0x49, 0x62, + 0x0b, 0x4c, 0x26, 0x16, 0x8f, 0xa7, 0x2a, 0x16, 0x7d, 0xf0, 0xde, 0x92, 0xaf, 0x01, 0x27, 0x2a, + 0xd5, 0x72, 0x4d, 0x55, 0x95, 0xb2, 0xde, 0xa8, 0x2b, 0xea, 0x7a, 0x45, 0xd3, 0x2a, 0xb5, 0xaa, + 0x76, 0x10, 0x6d, 0x87, 0x9f, 0x94, 0x02, 0x89, 0x59, 0x42, 0xcd, 0xb6, 0x69, 0x21, 0x78, 0xef, + 0x01, 0x05, 0x86, 0x5f, 0xf5, 0x11, 0xc7, 0x99, 0xd6, 0x1f, 0x81, 0xf3, 0x1b, 0x92, 0xe3, 0xdc, + 0xbf, 0xc0, 0x7f, 0xc3, 0xea, 0xff, 0x65, 0x09, 0x1c, 0x63, 0x14, 0x51, 0x45, 0x3b, 0x23, 0x5b, + 0xc9, 0xfb, 0x31, 0x56, 0x77, 0x2b, 0x3c, 0xa6, 0xfd, 0xac, 0xe9, 0x7d, 0x64, 0x44, 0xc0, 0xfa, + 0xd6, 0x00, 0xd6, 0x35, 0x0e, 0xd6, 0xe7, 0x0c, 0x51, 0x66, 0x32, 0x64, 0x7f, 0x23, 0x55, 0x64, + 0xaf, 0x01, 0x27, 0xea, 0x25, 0x55, 0xaf, 0x94, 0x2b, 0xf5, 0x92, 0x37, 0x8e, 0x32, 0x43, 0x76, + 0x84, 0xb9, 0xce, 0x83, 0xde, 0x17, 0xdf, 0xdf, 0xce, 0x81, 0xeb, 0xfa, 0x77, 0xb4, 0xe5, 0x6d, + 0xc3, 0xda, 0x42, 0xd0, 0x14, 0x81, 0x7a, 0x09, 0x4c, 0x34, 0x71, 0x76, 0x82, 0x33, 0xbb, 0x75, + 0x13, 0xd3, 0x97, 0x93, 0x1a, 0x54, 0xff, 0x57, 0xf8, 0x2e, 0x56, 0x20, 0x74, 0x5e, 0x20, 0x9e, + 0x17, 0x0f, 0xde, 0x3e, 0xba, 0x23, 0x64, 0xe3, 0x33, 0x81, 0x6c, 0x9c, 0xe7, 0x64, 0xa3, 0x7c, + 0xb0, 0xe2, 0x93, 0x89, 0xc9, 0xef, 0x3f, 0x11, 0x3a, 0x80, 0x48, 0x69, 0x32, 0xa3, 0x47, 0x85, + 0xbe, 0xdd, 0xfd, 0xc3, 0x12, 0x28, 0x2c, 0xa1, 0x36, 0x12, 0x5d, 0x89, 0xfc, 0xbb, 0xac, 0xe8, + 0x86, 0x08, 0x81, 0x81, 0x94, 0x1d, 0xbd, 0x3a, 0xe2, 0x9a, 0x3b, 0xa8, 0xeb, 0x1a, 0x3b, 0x1d, + 0xcc, 0x6a, 0x49, 0x0d, 0x13, 0xe0, 0x8f, 0x67, 0x45, 0xb6, 0x4b, 0x62, 0xaa, 0xf9, 0xb7, 0xb1, + 0xa6, 0xf8, 0xb5, 0x39, 0x50, 0x38, 0x6f, 0xb4, 0xdb, 0xc8, 0x85, 0x5f, 0xcf, 0x82, 0x42, 0xd9, + 0x9b, 0x93, 0x22, 0xf8, 0xb4, 0x10, 0x2c, 0x08, 0x26, 0x1d, 0xdb, 0x76, 0xeb, 0x86, 0xbb, 0x4d, + 0xd1, 0x0a, 0xde, 0xe9, 0x36, 0xed, 0xaf, 0xb3, 0xa0, 0xdd, 0xcb, 0x83, 0xf6, 0x7d, 0x1c, 0x37, + 0x49, 0x45, 0x0b, 0xa4, 0x92, 0x08, 0xd4, 0x20, 0x98, 0xdc, 0xb1, 0xd0, 0x8e, 0x6d, 0x99, 0x4d, + 0x7f, 0xa4, 0xf7, 0xdf, 0xe1, 0x47, 0x82, 0x59, 0xf2, 0x22, 0x87, 0xd9, 0x82, 0x70, 0x2d, 0xc9, + 0x40, 0xd3, 0x86, 0xc0, 0xec, 0x7a, 0x70, 0x2d, 0x81, 0xa0, 0xa1, 0xd7, 0x1a, 0x65, 0x55, 0x29, + 0xe9, 0x4a, 0x63, 0xad, 0x56, 0x2e, 0xad, 0x35, 0x54, 0xa5, 0x5e, 0x2b, 0x22, 0xf8, 0xdf, 0xb2, + 0x1e, 0x73, 0x9b, 0xf6, 0x1e, 0x72, 0xe0, 0x8a, 0x10, 0x9f, 0xe3, 0x78, 0x42, 0x31, 0xf8, 0x39, + 0xe1, 0xad, 0x72, 0xca, 0x1d, 0x4a, 0x41, 0x44, 0x57, 0xf8, 0x51, 0xa1, 0x6d, 0xef, 0xd8, 0xa2, + 0x9e, 0x00, 0x9c, 0xfe, 0xdf, 0x59, 0x30, 0x51, 0xb6, 0xad, 0x3d, 0xe4, 0xb8, 0xac, 0x95, 0xc9, + 0x72, 0x33, 0xc3, 0x73, 0xd3, 0xeb, 0x9a, 0x90, 0xe5, 0x3a, 0x76, 0xc7, 0x37, 0x33, 0xfd, 0x57, + 0xf8, 0xab, 0x49, 0x39, 0x4c, 0x6b, 0x8e, 0x5e, 0x6e, 0xea, 0x5f, 0x11, 0x47, 0x9e, 0xd4, 0xa3, + 0x00, 0x8f, 0x24, 0xc1, 0xa5, 0x3f, 0x01, 0xe9, 0xef, 0xf2, 0x7e, 0x45, 0x02, 0xb3, 0x44, 0xf9, + 0x34, 0x84, 0xc7, 0x45, 0x58, 0x63, 0x17, 0x7a, 0x7a, 0x98, 0xbf, 0x7a, 0x84, 0x63, 0x7f, 0xc1, + 0xe8, 0x74, 0x82, 0x45, 0xbf, 0xd5, 0x23, 0x2a, 0x7d, 0x27, 0x62, 0xbe, 0x58, 0x00, 0x39, 0x63, + 0xd7, 0xdd, 0x86, 0xdf, 0x15, 0x36, 0xf9, 0xb9, 0xce, 0x80, 0xd2, 0x13, 0x01, 0xc9, 0x71, 0x90, + 0x77, 0xed, 0x8b, 0xc8, 0xe7, 0x03, 0x79, 0xf1, 0xe0, 0x30, 0x3a, 0x1d, 0x1d, 0x7f, 0xa0, 0x70, + 0xf8, 0xef, 0xde, 0x08, 0x63, 0x34, 0x9b, 0xf6, 0xae, 0xe5, 0x56, 0xfc, 0x85, 0xbf, 0x30, 0x01, + 0x7e, 0x21, 0x23, 0x32, 0x85, 0x10, 0x20, 0x30, 0x19, 0x64, 0x17, 0x86, 0x50, 0xa5, 0x05, 0x70, + 0x4b, 0xa9, 0x5e, 0x6f, 0xe8, 0xb5, 0xfb, 0x95, 0x6a, 0x38, 0xdc, 0x37, 0x2a, 0xd5, 0x86, 0xbe, + 0xaa, 0x34, 0xca, 0x1b, 0x2a, 0x5e, 0x9d, 0x29, 0x95, 0xcb, 0xb5, 0x8d, 0xaa, 0x5e, 0x44, 0xf0, + 0x6d, 0x59, 0x30, 0x53, 0x6e, 0xdb, 0xdd, 0x00, 0xe1, 0xeb, 0x43, 0x84, 0x03, 0x36, 0x66, 0x18, + 0x36, 0xc2, 0x7f, 0xc9, 0x88, 0x6e, 0xf5, 0xfa, 0x0c, 0x61, 0x8a, 0x8f, 0xe8, 0xa5, 0x7e, 0x55, + 0x68, 0xab, 0x77, 0x70, 0x79, 0xe9, 0xab, 0xc4, 0xe7, 0xee, 0x02, 0x13, 0x25, 0x22, 0x18, 0xf0, + 0x2f, 0x32, 0xa0, 0x50, 0xb6, 0xad, 0x4d, 0x73, 0x4b, 0xbe, 0x09, 0xcc, 0x21, 0xcb, 0xb8, 0xd0, + 0x46, 0x4b, 0x86, 0x6b, 0xec, 0x99, 0xe8, 0x12, 0x6e, 0xc0, 0xa4, 0xda, 0x93, 0xea, 0x11, 0x45, + 0x53, 0xd0, 0x85, 0xdd, 0x2d, 0x4c, 0xd4, 0xa4, 0xca, 0x26, 0xc9, 0xcf, 0x01, 0x57, 0x93, 0xd7, + 0xba, 0x83, 0x1c, 0xd4, 0x46, 0x46, 0x17, 0x79, 0xc6, 0xa8, 0x85, 0xda, 0x58, 0x68, 0x27, 0xd5, + 0xa8, 0xcf, 0xf2, 0x19, 0x30, 0x43, 0x3e, 0x61, 0x53, 0xa7, 0x8b, 0xc5, 0x78, 0x52, 0xe5, 0xd2, + 0xe4, 0xa7, 0x83, 0x3c, 0xba, 0xec, 0x3a, 0xc6, 0x7c, 0x0b, 0xe3, 0x75, 0xf5, 0x02, 0xf1, 0xf5, + 0x5a, 0xf0, 0x7d, 0xbd, 0x16, 0x34, 0xec, 0x09, 0xa6, 0x92, 0x5c, 0xf0, 0x97, 0x26, 0x03, 0x43, + 0xe2, 0x5f, 0xb3, 0xa1, 0x60, 0xc8, 0x20, 0x67, 0x19, 0x3b, 0x88, 0xca, 0x05, 0x7e, 0x96, 0x6f, + 0x01, 0x47, 0x8d, 0x3d, 0xc3, 0x35, 0x9c, 0x35, 0xbb, 0x69, 0xb4, 0xf1, 0xe0, 0xe7, 0x6b, 0x7e, + 0xef, 0x07, 0xbc, 0x0e, 0xef, 0xda, 0x0e, 0xc2, 0xb9, 0xfc, 0x75, 0x78, 0x3f, 0xc1, 0x2b, 0xdd, + 0x6c, 0xda, 0x16, 0xa6, 0x5f, 0x52, 0xf1, 0xb3, 0xc7, 0x95, 0x96, 0xd9, 0xf5, 0x1a, 0x82, 0x4b, + 0xa9, 0x92, 0x05, 0x65, 0xed, 0x8a, 0xd5, 0xc4, 0x6b, 0xf0, 0x93, 0x6a, 0xd4, 0x67, 0x79, 0x11, + 0x4c, 0xd3, 0xe5, 0xe7, 0x75, 0x4f, 0xae, 0x0a, 0x58, 0xae, 0x4e, 0xf3, 0x9e, 0x34, 0x04, 0xcf, + 0x85, 0x6a, 0x98, 0x4f, 0x65, 0x7f, 0x92, 0xef, 0x03, 0xd7, 0xd2, 0xd7, 0xf2, 0x6e, 0xd7, 0xb5, + 0x77, 0x08, 0xe8, 0xcb, 0x66, 0x9b, 0xb4, 0x60, 0x02, 0xb7, 0x20, 0x2e, 0x8b, 0x7c, 0x3b, 0x38, + 0xde, 0x71, 0xd0, 0x26, 0x72, 0x1e, 0x30, 0x76, 0x76, 0x2f, 0xeb, 0x8e, 0x61, 0x75, 0x3b, 0xb6, + 0xe3, 0xce, 0x4f, 0x62, 0xe2, 0xfb, 0x7e, 0xa3, 0x1d, 0xe5, 0x24, 0x28, 0x10, 0xf6, 0xc1, 0x97, + 0xe7, 0x85, 0x9d, 0xe8, 0x68, 0x83, 0x62, 0xcd, 0xb3, 0xdb, 0xc0, 0x04, 0xed, 0xe1, 0x30, 0x50, + 0xd3, 0xb7, 0x9f, 0xec, 0x99, 0xcd, 0xd1, 0x52, 0x54, 0x3f, 0x9b, 0x7c, 0x07, 0x28, 0x34, 0x71, + 0xb3, 0x30, 0x66, 0xd3, 0xb7, 0x5f, 0xdb, 0xbf, 0x52, 0x9c, 0x45, 0xa5, 0x59, 0xe1, 0x17, 0x25, + 0x21, 0xbf, 0xbb, 0x38, 0x8a, 0x93, 0x69, 0xf5, 0x37, 0xb2, 0x43, 0x74, 0x9b, 0xb7, 0x82, 0x9b, + 0x69, 0x9f, 0x48, 0xed, 0x8f, 0xa5, 0xc6, 0xe2, 0x86, 0x6f, 0x82, 0x7b, 0x56, 0x89, 0xa6, 0x97, + 0x54, 0x6f, 0xfe, 0xb4, 0xe4, 0x99, 0xee, 0xb7, 0x80, 0x9b, 0x06, 0xe4, 0x56, 0xf4, 0x46, 0xb5, + 0xb4, 0xae, 0x14, 0x37, 0x79, 0xdb, 0x46, 0xd3, 0x6b, 0xf5, 0x86, 0xba, 0x51, 0xad, 0x56, 0xaa, + 0x2b, 0xa4, 0x30, 0xcf, 0x24, 0x3c, 0x19, 0x66, 0x38, 0xaf, 0x56, 0x74, 0xa5, 0x51, 0xae, 0x55, + 0x97, 0x2b, 0x2b, 0x45, 0x73, 0x90, 0x61, 0xf4, 0xa0, 0x7c, 0x1a, 0x5c, 0xc7, 0x51, 0x52, 0xa9, + 0x55, 0xbd, 0xf9, 0x44, 0xb9, 0x54, 0x2d, 0x2b, 0xde, 0xe4, 0xe1, 0xa2, 0x0c, 0xc1, 0x09, 0x52, + 0x5c, 0x63, 0xb9, 0xb2, 0xc6, 0x6e, 0x01, 0x7c, 0x22, 0x23, 0xcf, 0x83, 0xab, 0xd8, 0x6f, 0x95, + 0xea, 0xb9, 0xd2, 0x5a, 0x65, 0xa9, 0xf8, 0x7b, 0x19, 0xf9, 0x46, 0x70, 0x3d, 0xf7, 0x17, 0x59, + 0xcd, 0x6f, 0x54, 0x96, 0x1a, 0xeb, 0x15, 0x6d, 0xbd, 0xa4, 0x97, 0x57, 0x8b, 0x9f, 0xc4, 0xf3, + 0x85, 0xc0, 0x00, 0x66, 0x9c, 0xe1, 0x5e, 0xc5, 0x8e, 0xe9, 0x25, 0x5e, 0x50, 0x9f, 0xd6, 0x17, + 0xf6, 0x78, 0x1b, 0xf6, 0xf1, 0x60, 0x74, 0x58, 0xe2, 0x44, 0xe8, 0xb6, 0x04, 0x65, 0x25, 0x93, + 0x21, 0x7d, 0x08, 0x11, 0x3a, 0x0d, 0xae, 0xab, 0x2a, 0x04, 0x29, 0x55, 0x29, 0xd7, 0xce, 0x29, + 0x6a, 0xe3, 0x7c, 0x69, 0x6d, 0x4d, 0xd1, 0x1b, 0xcb, 0x15, 0x55, 0xd3, 0x8b, 0x9b, 0xf0, 0x1f, + 0xb3, 0xc1, 0x1c, 0x9a, 0xe1, 0xd6, 0x5f, 0x64, 0x93, 0xaa, 0x75, 0xec, 0x5c, 0xf9, 0x59, 0xa0, + 0xd0, 0x75, 0x0d, 0x77, 0xb7, 0x4b, 0xb5, 0xfa, 0x49, 0xfd, 0xb5, 0x7a, 0x41, 0xc3, 0x99, 0x54, + 0x9a, 0x19, 0x7e, 0x31, 0x93, 0x44, 0x4d, 0x47, 0x30, 0x8d, 0x36, 0x87, 0x60, 0xf1, 0x29, 0x00, + 0x7d, 0x69, 0xaf, 0x68, 0x8d, 0xd2, 0x9a, 0xaa, 0x94, 0x96, 0x1e, 0x08, 0x26, 0xcf, 0x48, 0x3e, + 0x01, 0x8e, 0x6d, 0x54, 0xbd, 0xe9, 0x30, 0x56, 0x97, 0x5a, 0xb5, 0xaa, 0x94, 0x3d, 0xbe, 0xff, + 0x38, 0x5e, 0xaa, 0xf6, 0x2c, 0x68, 0x4c, 0xb7, 0x67, 0xe5, 0x30, 0xfc, 0xff, 0x6b, 0x61, 0x8f, + 0x8e, 0x50, 0xc2, 0xd8, 0xb2, 0x46, 0x8b, 0xc3, 0x17, 0x84, 0x9c, 0x38, 0x84, 0x28, 0x49, 0x86, + 0xc7, 0x7f, 0x18, 0x02, 0x8f, 0x13, 0xe0, 0x18, 0x8b, 0x07, 0x76, 0xe6, 0x88, 0x86, 0xe1, 0xab, + 0x93, 0xa0, 0xa0, 0xa1, 0x36, 0x6a, 0xba, 0xf0, 0x51, 0xc6, 0x98, 0x98, 0x03, 0xd9, 0xc0, 0x79, + 0x20, 0x6b, 0xb6, 0xb8, 0xe9, 0x73, 0xb6, 0x67, 0xfa, 0x1c, 0x63, 0x06, 0x48, 0x89, 0xcc, 0x80, + 0x5c, 0x0a, 0x66, 0x40, 0x7e, 0x78, 0x33, 0xa0, 0x30, 0xc8, 0x0c, 0x80, 0xbf, 0x52, 0x48, 0xda, + 0x4b, 0x10, 0x56, 0x1f, 0xee, 0xe0, 0xff, 0xbf, 0x72, 0x49, 0x7a, 0x95, 0xbe, 0x14, 0x27, 0x93, + 0xe2, 0xef, 0x4a, 0x29, 0x2c, 0x3f, 0xc8, 0x37, 0x80, 0xeb, 0xc3, 0xf7, 0x86, 0xf2, 0x82, 0x8a, + 0xa6, 0x6b, 0x78, 0xc4, 0x2f, 0xd7, 0x54, 0x75, 0xa3, 0x4e, 0x56, 0xee, 0x4e, 0x02, 0x39, 0x2c, + 0x45, 0xdd, 0xa8, 0x92, 0xf1, 0x7d, 0x8b, 0x2f, 0x7d, 0xb9, 0x52, 0x5d, 0x6a, 0x04, 0x3a, 0x53, + 0x5d, 0xae, 0x15, 0xb7, 0xbd, 0x29, 0x1b, 0x53, 0xba, 0x37, 0x40, 0xd3, 0x1a, 0x4a, 0xd5, 0xa5, + 0xc6, 0x7a, 0x55, 0x59, 0xaf, 0x55, 0x2b, 0x65, 0x9c, 0xae, 0x29, 0x7a, 0xd1, 0xf4, 0x06, 0x9a, + 0x1e, 0x8b, 0x42, 0x53, 0x4a, 0x6a, 0x79, 0x55, 0x51, 0x49, 0x95, 0x0f, 0xca, 0x37, 0x81, 0x33, + 0xa5, 0x6a, 0x4d, 0xf7, 0x52, 0x4a, 0xd5, 0x07, 0xf4, 0x07, 0xea, 0x4a, 0xa3, 0xae, 0xd6, 0xca, + 0x8a, 0xa6, 0x79, 0x7a, 0x4a, 0xed, 0x8f, 0x62, 0x5b, 0x7e, 0x1e, 0xb8, 0x8b, 0x21, 0x4d, 0xd1, + 0xf1, 0x36, 0xd1, 0x7a, 0x0d, 0x7b, 0x0a, 0x2c, 0x29, 0x8d, 0xd5, 0x92, 0xd6, 0xa8, 0x54, 0xcb, + 0xb5, 0xf5, 0x7a, 0x49, 0xaf, 0x78, 0xea, 0x5c, 0x57, 0x6b, 0x7a, 0xad, 0x71, 0x4e, 0x51, 0xb5, + 0x4a, 0xad, 0x5a, 0xb4, 0xbc, 0x26, 0x33, 0xfa, 0xef, 0xf7, 0xc3, 0xb6, 0x7c, 0x1d, 0x98, 0xf7, + 0xd3, 0xd7, 0x6a, 0x1e, 0xa3, 0x19, 0x8b, 0xa4, 0x93, 0xaa, 0x45, 0xf2, 0xcf, 0x59, 0x90, 0xd3, + 0x5c, 0xbb, 0x03, 0xbf, 0x2f, 0xec, 0x60, 0x4e, 0x01, 0xe0, 0xe0, 0x5d, 0x1f, 0x6f, 0x16, 0x46, + 0xe7, 0x65, 0x4c, 0x0a, 0xfc, 0x5d, 0xe1, 0xa5, 0xea, 0xb0, 0xcf, 0xb6, 0x3b, 0x11, 0xb6, 0xca, + 0xb7, 0xc5, 0x7c, 0xf7, 0xa3, 0x0b, 0x4a, 0x26, 0xef, 0x3f, 0x35, 0xcc, 0x62, 0x34, 0x04, 0x27, + 0x19, 0xd8, 0x3c, 0xfe, 0xfb, 0x22, 0x81, 0xe4, 0xab, 0xc1, 0x55, 0x3d, 0xc2, 0x85, 0x65, 0x6a, + 0x53, 0x7e, 0x32, 0x78, 0x12, 0x23, 0xde, 0xca, 0x7a, 0xed, 0x9c, 0x12, 0x08, 0xf2, 0x52, 0x49, + 0x2f, 0x15, 0xb7, 0xe0, 0xe7, 0x24, 0x90, 0x5b, 0xb7, 0xf7, 0x7a, 0x77, 0x08, 0x2c, 0x74, 0x89, + 0x59, 0x0b, 0xf5, 0x5f, 0x79, 0x5f, 0x65, 0x21, 0xb6, 0xaf, 0x47, 0xef, 0x06, 0x7e, 0x21, 0x9b, + 0x84, 0xed, 0xeb, 0x07, 0xdd, 0x02, 0xfc, 0x9b, 0x61, 0xd8, 0x1e, 0xc1, 0x5a, 0x24, 0x9f, 0x01, + 0xa7, 0xc2, 0x0f, 0x95, 0x25, 0xa5, 0xaa, 0x57, 0x96, 0x1f, 0x08, 0x99, 0x5b, 0x51, 0x85, 0xd8, + 0x3f, 0xa8, 0x1b, 0x8b, 0x9f, 0x69, 0xcc, 0x83, 0xe3, 0xe1, 0xb7, 0x15, 0x45, 0xf7, 0xbf, 0x3c, + 0x08, 0x5f, 0x92, 0x07, 0x33, 0xa4, 0x5b, 0xdf, 0xe8, 0xb4, 0x0c, 0x17, 0xc1, 0x3b, 0x42, 0x74, + 0x6f, 0x06, 0x47, 0x2b, 0xf5, 0x65, 0x4d, 0x73, 0x6d, 0xc7, 0xd8, 0x42, 0xa5, 0x56, 0xcb, 0xa1, + 0xdc, 0xea, 0x4d, 0x86, 0x8f, 0x09, 0xaf, 0xf3, 0xf1, 0x43, 0x09, 0xa9, 0x33, 0x02, 0xf5, 0xaf, + 0x08, 0xad, 0xcb, 0x09, 0x14, 0x98, 0x0c, 0xfd, 0x07, 0x47, 0xac, 0x73, 0xd1, 0xb8, 0x6c, 0x9e, + 0x79, 0x69, 0x16, 0x4c, 0xe9, 0xe6, 0x0e, 0x7a, 0xa1, 0x6d, 0xa1, 0xae, 0x3c, 0x01, 0xa4, 0x95, + 0x75, 0xbd, 0x78, 0xc4, 0x7b, 0xf0, 0x8c, 0xaa, 0x0c, 0x7e, 0x50, 0xbc, 0x0a, 0xbc, 0x87, 0x92, + 0x5e, 0x94, 0xbc, 0x87, 0x75, 0x45, 0x2f, 0xe6, 0xbc, 0x87, 0xaa, 0xa2, 0x17, 0xf3, 0xde, 0x43, + 0x7d, 0x4d, 0x2f, 0x16, 0xbc, 0x87, 0x8a, 0xa6, 0x17, 0x27, 0xbc, 0x87, 0x45, 0x4d, 0x2f, 0x4e, + 0x7a, 0x0f, 0xe7, 0x34, 0xbd, 0x38, 0xe5, 0x3d, 0x94, 0x75, 0xbd, 0x08, 0xbc, 0x87, 0xe7, 0x6b, + 0x7a, 0x71, 0xda, 0x7b, 0x28, 0x95, 0xf5, 0xe2, 0x0c, 0x7e, 0x50, 0xf4, 0xe2, 0xac, 0xf7, 0xa0, + 0x69, 0x7a, 0x71, 0x0e, 0x97, 0xac, 0xe9, 0xc5, 0xa3, 0xb8, 0xae, 0x8a, 0x5e, 0x2c, 0x7a, 0x0f, + 0xab, 0x9a, 0x5e, 0x3c, 0x86, 0x33, 0x6b, 0x7a, 0x51, 0xc6, 0x95, 0x6a, 0x7a, 0xf1, 0x2a, 0x9c, + 0x47, 0xd3, 0x8b, 0xc7, 0x71, 0x15, 0x9a, 0x5e, 0x3c, 0x81, 0xc9, 0x50, 0xf4, 0xe2, 0x49, 0x9c, + 0x47, 0xd5, 0x8b, 0x57, 0xe3, 0x4f, 0x55, 0xbd, 0x38, 0x8f, 0x09, 0x53, 0xf4, 0xe2, 0x35, 0xf8, + 0x41, 0xd5, 0x8b, 0x10, 0x7f, 0x2a, 0xe9, 0xc5, 0x6b, 0xe1, 0x93, 0xc0, 0xd4, 0x0a, 0x72, 0x09, + 0x88, 0xb0, 0x08, 0xa4, 0x15, 0xe4, 0xb2, 0x66, 0xfc, 0xd7, 0x24, 0x70, 0x35, 0x9d, 0xfa, 0x2d, + 0x3b, 0xf6, 0xce, 0x1a, 0xda, 0x32, 0x9a, 0x57, 0x94, 0xcb, 0x9e, 0x09, 0x05, 0x35, 0x6e, 0xe9, + 0xaa, 0x13, 0x76, 0x46, 0xf8, 0x39, 0xd6, 0xe2, 0xf4, 0x17, 0xa3, 0xa4, 0x70, 0x31, 0x8a, 0x5a, + 0x64, 0xff, 0xc0, 0x4a, 0x34, 0xb7, 0x7e, 0x9c, 0xe9, 0x59, 0x3f, 0xf6, 0xd4, 0xa4, 0x83, 0x9c, + 0xae, 0x6d, 0x19, 0x6d, 0x8d, 0x6e, 0x97, 0x92, 0x55, 0xaf, 0xde, 0x64, 0xf9, 0x07, 0x7c, 0xcd, + 0x20, 0x56, 0xd9, 0x73, 0xe3, 0x66, 0xb8, 0xbd, 0xcd, 0x8c, 0x50, 0x92, 0x4f, 0x06, 0x4a, 0xa2, + 0x73, 0x4a, 0x72, 0xdf, 0x01, 0xca, 0x4e, 0xa6, 0x2f, 0x95, 0xe1, 0xa6, 0x16, 0xa1, 0x33, 0xa1, + 0xbf, 0x5c, 0x2d, 0xc1, 0xcf, 0x65, 0xc1, 0x49, 0xc5, 0xea, 0x67, 0xe1, 0xb3, 0xb2, 0xf0, 0x36, + 0x16, 0x9a, 0x3a, 0xcf, 0xd2, 0xbb, 0xfa, 0x36, 0xbb, 0x7f, 0x99, 0x11, 0x1c, 0xfd, 0x74, 0xc0, + 0x51, 0x8d, 0xe3, 0xe8, 0xbd, 0xc3, 0x17, 0x9d, 0x8c, 0xa1, 0xd5, 0x91, 0x76, 0x40, 0x39, 0xf8, + 0x8d, 0x1c, 0x78, 0x12, 0xf1, 0x78, 0xa0, 0x14, 0x12, 0x2d, 0x2b, 0x59, 0x2d, 0x15, 0x75, 0x5d, + 0xc3, 0x71, 0xb9, 0x53, 0xa8, 0x3d, 0x53, 0xa9, 0x4c, 0x0a, 0x53, 0xa9, 0xec, 0xc0, 0xa9, 0x14, + 0x7c, 0x37, 0x6b, 0x3e, 0x9c, 0xe7, 0x31, 0x2e, 0xf5, 0xef, 0xff, 0xe3, 0x5a, 0x18, 0x05, 0x75, + 0x60, 0x57, 0xfc, 0x20, 0x07, 0xf5, 0xf2, 0x81, 0x6b, 0x48, 0x86, 0xf8, 0xef, 0x8e, 0xd6, 0xce, + 0xcb, 0xb1, 0xdf, 0x78, 0xa3, 0xa4, 0xd8, 0x4a, 0xd5, 0x40, 0xff, 0xcc, 0x04, 0x98, 0xc2, 0xba, + 0xb0, 0x66, 0x5a, 0x17, 0xe1, 0x23, 0x12, 0x98, 0xa9, 0xa2, 0x4b, 0xe5, 0x6d, 0xa3, 0xdd, 0x46, + 0xd6, 0x16, 0x62, 0xcd, 0xf6, 0x79, 0x30, 0x61, 0x74, 0x3a, 0xd5, 0x70, 0x9f, 0xc1, 0x7f, 0xa5, + 0xfd, 0xef, 0x5f, 0xf7, 0x55, 0xf2, 0x4c, 0x8c, 0x92, 0x07, 0xf5, 0x2e, 0xb0, 0x75, 0x46, 0xcc, + 0x90, 0x4f, 0x83, 0xe9, 0xa6, 0x9f, 0x25, 0xf0, 0x56, 0x67, 0x93, 0xe0, 0x5f, 0x25, 0xea, 0x06, + 0x84, 0x2a, 0x4f, 0x26, 0x14, 0x68, 0xc4, 0x76, 0xc8, 0x09, 0x70, 0x4c, 0xaf, 0xd5, 0x1a, 0xeb, + 0xa5, 0xea, 0x03, 0xe1, 0x29, 0xd1, 0x4d, 0xf8, 0xba, 0x1c, 0x98, 0xd3, 0xec, 0xf6, 0x1e, 0x0a, + 0x61, 0xaa, 0x84, 0x30, 0xf5, 0xf0, 0x29, 0xb3, 0x8f, 0x4f, 0xf2, 0x49, 0x50, 0x30, 0xac, 0xee, + 0x25, 0xe4, 0xdb, 0x86, 0xf4, 0x8d, 0xc2, 0xf8, 0xdb, 0xac, 0x1e, 0xab, 0x3c, 0x8c, 0x77, 0x0f, + 0xe0, 0x24, 0x4f, 0x55, 0x04, 0x90, 0x67, 0xc0, 0x4c, 0x97, 0x6c, 0x16, 0xea, 0xcc, 0x9e, 0x30, + 0x97, 0x86, 0x49, 0x24, 0xbb, 0xd5, 0x12, 0x25, 0x11, 0xbf, 0xc1, 0x47, 0x02, 0xf5, 0xdf, 0xe0, + 0x20, 0x2e, 0x1d, 0x84, 0xb0, 0x64, 0x20, 0x3f, 0x3c, 0xea, 0x19, 0xde, 0x3c, 0x38, 0x4e, 0xb5, + 0xb6, 0x51, 0x5e, 0x2d, 0xad, 0xad, 0x29, 0xd5, 0x15, 0xa5, 0x51, 0x59, 0x22, 0x5b, 0x15, 0x61, + 0x4a, 0x49, 0xd7, 0x95, 0xf5, 0xba, 0xae, 0x35, 0x94, 0x17, 0x94, 0x15, 0x65, 0x09, 0x3b, 0x22, + 0xe1, 0x93, 0x04, 0xbe, 0xcb, 0x58, 0xa9, 0xaa, 0x9d, 0x57, 0xd4, 0xe2, 0xf6, 0x99, 0x12, 0x98, + 0x66, 0xfa, 0x79, 0x8f, 0xba, 0x25, 0xb4, 0x69, 0xec, 0xb6, 0xa9, 0xad, 0x56, 0x3c, 0xe2, 0x51, + 0x87, 0x79, 0x53, 0xb3, 0xda, 0x57, 0x8a, 0x19, 0xb9, 0x08, 0x66, 0xd8, 0x2e, 0xbd, 0x98, 0x85, + 0xdf, 0xbe, 0x16, 0x4c, 0x9d, 0xb7, 0x9d, 0x8b, 0xd8, 0x7b, 0x0c, 0xbe, 0x9f, 0x44, 0x93, 0xf0, + 0xcf, 0xe5, 0x31, 0x03, 0xfb, 0xc3, 0xe2, 0xde, 0x02, 0x7e, 0x69, 0x0b, 0x03, 0xcf, 0xde, 0x9d, + 0x06, 0xd3, 0x97, 0xfc, 0xdc, 0xa1, 0xa6, 0x33, 0x49, 0xf0, 0xbf, 0x8a, 0xed, 0xff, 0x0f, 0xae, + 0x32, 0xfd, 0xfd, 0xe9, 0x47, 0xb3, 0xa0, 0xb0, 0x82, 0xdc, 0x52, 0xbb, 0xcd, 0xf2, 0xed, 0xd5, + 0xc2, 0xe7, 0x29, 0xb8, 0x46, 0x94, 0xda, 0xed, 0x68, 0xa5, 0x62, 0x18, 0xe4, 0xfb, 0xfd, 0x72, + 0x69, 0xf0, 0x57, 0x84, 0x4e, 0x42, 0x0d, 0xa8, 0x30, 0x7d, 0x8e, 0xbd, 0x59, 0x0a, 0xf6, 0xb8, + 0x7f, 0x92, 0xb1, 0x72, 0x9e, 0x11, 0x46, 0x12, 0xc9, 0xc4, 0xef, 0x95, 0xfb, 0xf9, 0xe4, 0xfb, + 0xc1, 0xc4, 0x6e, 0x17, 0x95, 0x8d, 0x2e, 0xc2, 0xb4, 0xf5, 0xb6, 0xb4, 0x76, 0xe1, 0x41, 0xd4, + 0x74, 0x17, 0x2a, 0x3b, 0x9e, 0x41, 0xbd, 0x41, 0x32, 0x06, 0xc1, 0x39, 0xe8, 0xbb, 0xea, 0x97, + 0x00, 0x5f, 0x3e, 0x04, 0x64, 0xb1, 0xfb, 0xbd, 0x91, 0x47, 0xaf, 0x12, 0x03, 0x35, 0x82, 0x4d, + 0xda, 0x61, 0x80, 0xfa, 0x4c, 0x16, 0xe4, 0x6a, 0x1d, 0x64, 0x89, 0x39, 0xa0, 0x3e, 0x22, 0xee, + 0xe5, 0x15, 0x34, 0xcc, 0x2b, 0x3d, 0x82, 0x7b, 0x67, 0x41, 0xce, 0xb4, 0x36, 0x6d, 0x6a, 0x60, + 0x5e, 0x1b, 0xb1, 0x99, 0x53, 0xb1, 0x36, 0x6d, 0x15, 0x67, 0x14, 0x75, 0xf0, 0x8a, 0xab, 0x3b, + 0x7d, 0x96, 0xfe, 0xed, 0x24, 0x28, 0x10, 0xb1, 0x84, 0xaf, 0x92, 0x80, 0x54, 0x6a, 0xb5, 0x22, + 0x0e, 0x71, 0x64, 0xf7, 0x1d, 0xe2, 0xb0, 0xf1, 0x6f, 0x01, 0xdf, 0x83, 0x77, 0x3e, 0x14, 0x84, + 0x60, 0x1f, 0x4d, 0x55, 0xa3, 0xd4, 0x6a, 0x45, 0xfb, 0x92, 0x06, 0x15, 0x66, 0xf9, 0x0a, 0x59, + 0x4d, 0x95, 0xc4, 0x34, 0x35, 0x71, 0x87, 0x1e, 0x49, 0x5f, 0xfa, 0x10, 0xfd, 0x43, 0x16, 0x4c, + 0xac, 0x99, 0x5d, 0xd7, 0xc3, 0xa6, 0x24, 0x82, 0xcd, 0x75, 0x60, 0xca, 0x67, 0x8d, 0xd7, 0x75, + 0x79, 0xfd, 0x72, 0x98, 0x00, 0xdf, 0xc8, 0xa2, 0xf3, 0x7c, 0x1e, 0x9d, 0x67, 0xc6, 0xb7, 0x9e, + 0x52, 0x11, 0xed, 0xa3, 0x1d, 0x56, 0x9b, 0xed, 0xad, 0xf6, 0xd7, 0x03, 0x86, 0xaf, 0x73, 0x0c, + 0xbf, 0x73, 0x98, 0x2a, 0xd3, 0x67, 0xfa, 0xe7, 0xb3, 0x00, 0x78, 0x75, 0xd3, 0x83, 0x30, 0x4f, + 0xe5, 0x8e, 0xb7, 0xc6, 0x70, 0xf7, 0x75, 0x2c, 0x77, 0xd7, 0x79, 0xee, 0x3e, 0x7b, 0x70, 0x53, + 0xe3, 0x0e, 0xbc, 0xc8, 0x45, 0x20, 0x99, 0x01, 0x6b, 0xbd, 0x47, 0xf8, 0x68, 0xc0, 0xd4, 0x3a, + 0xc7, 0xd4, 0xbb, 0x87, 0xac, 0x29, 0x7d, 0xbe, 0xfe, 0x59, 0x16, 0x4c, 0x68, 0xc8, 0xf5, 0xba, + 0x49, 0x78, 0x4e, 0xe4, 0xc8, 0x09, 0xa3, 0xdb, 0x59, 0x41, 0xdd, 0xfe, 0x56, 0x46, 0x34, 0x4c, + 0x46, 0xc8, 0x19, 0x4a, 0x53, 0xc4, 0x22, 0xc0, 0x9b, 0x84, 0xc2, 0x64, 0x0c, 0x2a, 0x2d, 0x7d, + 0xee, 0xbe, 0x2d, 0x1b, 0x6c, 0xb0, 0x3f, 0x8d, 0x9b, 0xa0, 0xb1, 0xe6, 0x6d, 0x66, 0xbf, 0x79, + 0xfb, 0x8f, 0x99, 0xe4, 0xa6, 0x46, 0xdc, 0xee, 0x72, 0x62, 0x83, 0x62, 0x04, 0x1b, 0xbf, 0xc3, + 0xf0, 0xeb, 0xc5, 0x12, 0x28, 0xd0, 0x15, 0xe2, 0x7b, 0xe3, 0x57, 0x88, 0x07, 0x4f, 0x11, 0xde, + 0x3b, 0x84, 0xb9, 0x16, 0xb7, 0x6c, 0x1b, 0x90, 0x91, 0x65, 0xc8, 0xb8, 0x15, 0xe4, 0x71, 0x1c, + 0x3f, 0x3a, 0xce, 0x85, 0x7b, 0xf6, 0x7e, 0x11, 0x8a, 0xf7, 0x55, 0x25, 0x99, 0x12, 0xa3, 0x30, + 0x82, 0x95, 0xde, 0x61, 0x50, 0x78, 0xcd, 0xc7, 0x32, 0x81, 0x11, 0xf2, 0xde, 0x1c, 0x35, 0xf1, + 0x3e, 0xce, 0x47, 0x14, 0x68, 0xda, 0x96, 0x8b, 0x2e, 0x33, 0x6b, 0xeb, 0x41, 0x42, 0xac, 0x65, + 0x30, 0x0f, 0x26, 0x5c, 0x87, 0x5d, 0x6f, 0xf7, 0x5f, 0xd9, 0x1e, 0x27, 0xcf, 0xf7, 0x38, 0x55, + 0x70, 0xc6, 0xb4, 0x9a, 0xed, 0xdd, 0x16, 0x52, 0x51, 0xdb, 0xf0, 0x5a, 0xd5, 0x2d, 0x75, 0x97, + 0x50, 0x07, 0x59, 0x2d, 0x64, 0xb9, 0x84, 0x4e, 0xdf, 0xb7, 0x56, 0x20, 0x27, 0xfc, 0x3a, 0x2b, + 0x18, 0xf7, 0xf0, 0x82, 0xf1, 0xd4, 0x7e, 0xf3, 0x83, 0x18, 0x23, 0xf4, 0x4e, 0x00, 0x48, 0xdb, + 0xce, 0x99, 0xe8, 0x12, 0xed, 0x10, 0xaf, 0xe9, 0x31, 0x45, 0x6b, 0x41, 0x06, 0x95, 0xc9, 0x0c, + 0xbf, 0x1c, 0x08, 0xc3, 0x7d, 0x9c, 0x30, 0xdc, 0x2a, 0x48, 0x42, 0x32, 0x39, 0xe8, 0x0c, 0xb1, + 0x66, 0x31, 0x0b, 0xa6, 0xc2, 0x95, 0x46, 0x49, 0xbe, 0x06, 0x9c, 0xf0, 0x7d, 0x17, 0xaa, 0x8a, + 0xb2, 0xa4, 0x35, 0x36, 0xea, 0x2b, 0x6a, 0x69, 0x49, 0x29, 0x02, 0x59, 0x06, 0x73, 0xb5, 0xc5, + 0xe7, 0x2b, 0x65, 0x3d, 0x70, 0x39, 0xc8, 0xc1, 0x3f, 0xc9, 0x82, 0x3c, 0x76, 0x0c, 0x87, 0x3f, + 0x3c, 0x22, 0xc9, 0xe9, 0x72, 0x3b, 0x35, 0xc1, 0xbc, 0x42, 0x3c, 0xd2, 0x1f, 0x65, 0x26, 0xa6, + 0xea, 0x40, 0x91, 0xfe, 0x62, 0x0a, 0x4a, 0x5f, 0x3d, 0x3d, 0x95, 0xd4, 0xb6, 0xed, 0x4b, 0xff, + 0x9e, 0x55, 0xd2, 0x6b, 0xff, 0x21, 0xab, 0x64, 0x1f, 0x12, 0xc6, 0xae, 0x92, 0x7d, 0xf4, 0x2e, + 0x46, 0x4d, 0xe1, 0x5f, 0xe5, 0x82, 0x85, 0x95, 0xff, 0x71, 0xb0, 0x85, 0x95, 0x12, 0x98, 0x35, + 0x2d, 0x17, 0x39, 0x96, 0xd1, 0x5e, 0x6e, 0x1b, 0x5b, 0xfe, 0xf1, 0xe3, 0xde, 0x59, 0x78, 0x85, + 0xc9, 0xa3, 0xf2, 0x7f, 0xc8, 0xa7, 0x00, 0x70, 0xd1, 0x4e, 0xa7, 0x6d, 0xb8, 0xa1, 0xe8, 0x31, + 0x29, 0xac, 0xf4, 0xe5, 0x78, 0xe9, 0xbb, 0x0d, 0x5c, 0x45, 0x40, 0xd3, 0xaf, 0x74, 0xd0, 0x86, + 0x65, 0xfe, 0xc8, 0x2e, 0x0e, 0x40, 0x43, 0x64, 0xb4, 0xdf, 0x27, 0xf8, 0x3f, 0x85, 0x8f, 0x51, + 0xfa, 0x9a, 0x3d, 0xe0, 0x18, 0x65, 0xa0, 0x4d, 0x52, 0x8f, 0x36, 0x05, 0x06, 0x41, 0x4e, 0xc0, + 0x20, 0x60, 0x39, 0x9f, 0x17, 0x34, 0xa6, 0xdf, 0x20, 0x74, 0x4e, 0x33, 0xae, 0x19, 0xe9, 0xf7, + 0x50, 0xef, 0x97, 0xc0, 0x1c, 0xa9, 0x7a, 0xd1, 0xb6, 0x2f, 0xee, 0x18, 0xce, 0x45, 0x76, 0x6e, + 0x31, 0x84, 0xb8, 0x45, 0xaf, 0x94, 0x7d, 0x9a, 0x45, 0x76, 0x85, 0x47, 0xf6, 0x19, 0xd1, 0x2c, + 0xf1, 0xe9, 0x1a, 0xcf, 0xe2, 0xc6, 0x5b, 0x02, 0xcc, 0x9e, 0xcf, 0x61, 0xf6, 0xfd, 0x89, 0x09, + 0x4c, 0x1f, 0xbb, 0xdf, 0x0f, 0xb0, 0xf3, 0x3b, 0xec, 0xd4, 0xb0, 0xfb, 0xca, 0x70, 0xd8, 0xf9, + 0x74, 0x0d, 0x81, 0x5d, 0x11, 0x48, 0x17, 0x83, 0x2d, 0x25, 0xef, 0x91, 0x6d, 0x50, 0x2e, 0x3d, + 0x34, 0x23, 0x48, 0x1e, 0x0b, 0x9a, 0xc7, 0x79, 0x12, 0x6a, 0x9d, 0x54, 0x31, 0xfd, 0x92, 0xf0, + 0x7a, 0x4b, 0x5f, 0x06, 0x11, 0xea, 0xc6, 0xa3, 0x95, 0x62, 0x8b, 0x35, 0xe2, 0x64, 0xa6, 0x8f, + 0xe6, 0xdf, 0xe7, 0xc0, 0x94, 0x7f, 0x98, 0xd5, 0x85, 0x7f, 0xc4, 0x0c, 0xe1, 0x27, 0x41, 0xa1, + 0x6b, 0xef, 0x3a, 0x4d, 0x44, 0x57, 0xc0, 0xe8, 0xdb, 0x10, 0xab, 0x35, 0x03, 0xc7, 0xe5, 0x7d, + 0x43, 0x7f, 0x2e, 0xf1, 0xd0, 0x1f, 0x69, 0x58, 0xc2, 0x97, 0x0b, 0x87, 0x1e, 0xe4, 0x70, 0xd1, + 0x90, 0xfb, 0x44, 0x1c, 0xab, 0x3f, 0x2c, 0x34, 0xdf, 0x1f, 0xd0, 0x92, 0x64, 0x62, 0x55, 0x1b, + 0xc2, 0xa8, 0xbc, 0x16, 0x5c, 0xed, 0xe7, 0xa0, 0xd6, 0x24, 0xb6, 0x1e, 0x37, 0xd4, 0xb5, 0xa2, + 0x04, 0x5f, 0x9c, 0x03, 0x45, 0x42, 0x5a, 0x2d, 0x30, 0xac, 0xe0, 0xab, 0x0f, 0xdd, 0x7a, 0x8c, + 0x9e, 0x0e, 0x7e, 0x36, 0x2b, 0x1a, 0xde, 0x88, 0x63, 0x7c, 0xd8, 0xba, 0x08, 0x49, 0x1a, 0x42, + 0x95, 0x62, 0x84, 0x0f, 0xfe, 0x5a, 0x46, 0x24, 0x5a, 0x92, 0x18, 0x89, 0xe9, 0xf7, 0x3c, 0x6f, + 0xcc, 0xf9, 0x71, 0x07, 0x96, 0x1d, 0x7b, 0x67, 0xc3, 0x69, 0xc3, 0x8f, 0x08, 0x05, 0xa3, 0x8b, + 0x30, 0xd5, 0xb3, 0x91, 0xa6, 0xba, 0x37, 0x44, 0xef, 0x3a, 0x6d, 0x7f, 0x88, 0xde, 0x75, 0xda, + 0x43, 0x0c, 0xd1, 0xf2, 0x4d, 0x60, 0xce, 0x68, 0xb5, 0xea, 0xc6, 0x16, 0x2a, 0x7b, 0x73, 0x60, + 0xcb, 0xa5, 0x67, 0x92, 0x7b, 0x52, 0x13, 0xec, 0x8c, 0x71, 0x40, 0x50, 0x1e, 0x3c, 0x91, 0x76, + 0xc6, 0x04, 0xe8, 0x4b, 0x5f, 0x4a, 0x3e, 0x99, 0x05, 0xb3, 0xbe, 0xe1, 0xba, 0x8c, 0xdc, 0xe6, + 0x36, 0xbc, 0x53, 0x74, 0x85, 0x82, 0xc2, 0x9e, 0x0d, 0x60, 0x87, 0xdf, 0xcd, 0x24, 0xc4, 0x86, + 0xab, 0x39, 0x62, 0x79, 0x27, 0x11, 0x33, 0xe3, 0x0a, 0x4c, 0x9f, 0x99, 0x5f, 0xce, 0x02, 0xa0, + 0xdb, 0xc1, 0x04, 0xea, 0x00, 0x9c, 0x7c, 0xa5, 0x70, 0x98, 0x72, 0xda, 0xf0, 0xb0, 0xda, 0xe4, + 0x22, 0x2e, 0xb8, 0x37, 0x33, 0xa8, 0xa6, 0xf4, 0xf9, 0xfb, 0xc1, 0x2c, 0x98, 0x5a, 0xda, 0xed, + 0xb4, 0xcd, 0xa6, 0xe1, 0xf6, 0x6e, 0x28, 0x46, 0xb3, 0x17, 0xdf, 0x37, 0x92, 0xc8, 0x42, 0x09, + 0xea, 0x88, 0xe0, 0x25, 0x39, 0x6d, 0x99, 0xf5, 0x4f, 0x5b, 0x0a, 0x6e, 0x12, 0x0c, 0x28, 0x7c, + 0x0c, 0xe2, 0x29, 0x81, 0xa3, 0xb5, 0x0e, 0xb2, 0x16, 0x1d, 0x64, 0xb4, 0x9a, 0xce, 0xee, 0xce, + 0x85, 0x2e, 0xbb, 0x1b, 0x1e, 0x2f, 0xa3, 0xcc, 0x9a, 0x63, 0x96, 0x5b, 0x73, 0x84, 0x3f, 0x21, + 0x89, 0x9e, 0xfd, 0x65, 0x56, 0xc6, 0x19, 0x1a, 0x86, 0xe8, 0x93, 0x13, 0xed, 0xe1, 0xf4, 0x2c, + 0x2f, 0xe6, 0x92, 0x2c, 0x2f, 0xbe, 0x55, 0xe8, 0x24, 0xb1, 0x50, 0xbb, 0xc6, 0xb2, 0x15, 0x37, + 0xa7, 0x21, 0x37, 0x02, 0xde, 0x1b, 0xc1, 0xec, 0x85, 0xf0, 0x4b, 0x00, 0x31, 0x9f, 0xd8, 0x67, + 0x83, 0xfc, 0x6d, 0x49, 0xa7, 0xfc, 0x3c, 0x09, 0x11, 0xe8, 0x06, 0x08, 0x66, 0x45, 0x76, 0xe1, + 0x12, 0xcd, 0xdf, 0x63, 0xeb, 0x4f, 0x1f, 0x85, 0x8f, 0x65, 0xc1, 0x34, 0xbe, 0x45, 0x65, 0xf1, + 0x0a, 0x76, 0xcf, 0x7e, 0x0a, 0x17, 0x6a, 0x2b, 0xd2, 0xe3, 0xe7, 0x65, 0x2c, 0x9b, 0x65, 0x90, + 0x6b, 0x9b, 0xd6, 0x45, 0x7f, 0xfb, 0xd4, 0x7b, 0x0e, 0x63, 0xf2, 0x67, 0xfb, 0xc4, 0xe4, 0x0f, + 0x16, 0xb8, 0x83, 0x7a, 0x0f, 0x74, 0x49, 0xd4, 0xc0, 0xe2, 0xd2, 0x67, 0xe3, 0x1f, 0xe4, 0x40, + 0x41, 0x43, 0x86, 0xd3, 0xdc, 0x86, 0xaf, 0x63, 0x0e, 0xba, 0x2f, 0x83, 0x89, 0x4d, 0xb3, 0xed, + 0x22, 0x87, 0x38, 0x8e, 0xb0, 0x1d, 0x38, 0x51, 0xe4, 0xc5, 0xb6, 0xdd, 0xbc, 0xb8, 0x40, 0xad, + 0xc5, 0x05, 0x3f, 0x66, 0xd0, 0xc2, 0x32, 0xfe, 0x49, 0xf5, 0x7f, 0x96, 0xef, 0x03, 0xf9, 0xae, + 0xed, 0xb8, 0x51, 0x41, 0x38, 0x23, 0x4a, 0xd1, 0x6c, 0xc7, 0x55, 0xc9, 0x8f, 0x1e, 0x98, 0x9b, + 0xbb, 0xed, 0xb6, 0x8e, 0x2e, 0xbb, 0xfe, 0x4c, 0xc1, 0x7f, 0xf7, 0xe6, 0xf6, 0xf6, 0xe6, 0x66, + 0x17, 0x91, 0x79, 0x6a, 0x5e, 0xa5, 0x6f, 0xf2, 0x71, 0x90, 0x6f, 0x9b, 0x3b, 0x26, 0xb1, 0x6d, + 0xf3, 0x2a, 0x79, 0x91, 0x6f, 0x01, 0xc5, 0xd0, 0xac, 0x26, 0x84, 0xce, 0x17, 0xb0, 0x02, 0xee, + 0x4b, 0xf7, 0x24, 0xe3, 0x22, 0xba, 0xd2, 0x9d, 0x9f, 0xc0, 0xdf, 0xf1, 0x33, 0xef, 0xa5, 0x27, + 0xb2, 0x54, 0x4e, 0xf8, 0x1a, 0x3d, 0x69, 0x72, 0x50, 0xd3, 0x76, 0x5a, 0x3e, 0x6f, 0xa2, 0xed, + 0x5d, 0x9a, 0x2f, 0xd9, 0x02, 0x77, 0xdf, 0xca, 0xc7, 0xb0, 0x43, 0x5e, 0xf0, 0x3a, 0x47, 0xaf, + 0xea, 0xf3, 0xa6, 0xbb, 0xbd, 0x8e, 0x5c, 0x03, 0xfe, 0x81, 0xf4, 0xff, 0xcb, 0x55, 0x8c, 0x5c, + 0x91, 0x33, 0xdf, 0xee, 0xae, 0x63, 0x79, 0xdc, 0xa2, 0x51, 0x96, 0x98, 0x14, 0xf9, 0x6e, 0x70, + 0x4d, 0xf8, 0xe6, 0xaf, 0xb3, 0x2d, 0xd1, 0xb9, 0xd2, 0x14, 0xce, 0x1e, 0x9d, 0x41, 0xae, 0x83, + 0x1b, 0xc8, 0xc7, 0x55, 0x7d, 0x7d, 0x6d, 0xd5, 0xdc, 0xda, 0x6e, 0x9b, 0x5b, 0xdb, 0x6e, 0xb7, + 0x62, 0x75, 0x5d, 0x64, 0xb4, 0x6a, 0x9b, 0x2a, 0x09, 0x92, 0x0b, 0x70, 0x39, 0x22, 0x59, 0x79, + 0xf7, 0x11, 0xb1, 0x91, 0x8a, 0x95, 0x87, 0x08, 0x7d, 0xf8, 0x7e, 0x4f, 0x1f, 0xba, 0xbb, 0xed, + 0x00, 0xd3, 0xeb, 0x7a, 0x30, 0x0d, 0x05, 0x7a, 0xb7, 0x8d, 0x95, 0x02, 0x67, 0x4e, 0x3a, 0x66, + 0xc5, 0x50, 0x92, 0xbe, 0x72, 0xfc, 0xbf, 0x05, 0x90, 0x5f, 0x71, 0x8c, 0xce, 0x36, 0x7c, 0x71, + 0x0a, 0x7d, 0x6d, 0x20, 0x9d, 0xd9, 0x41, 0xd2, 0x29, 0x0d, 0x90, 0xce, 0x1c, 0x23, 0x9d, 0xd1, + 0x5b, 0xdd, 0x67, 0xc0, 0x4c, 0xd3, 0x6e, 0xb7, 0x51, 0xd3, 0xe3, 0x47, 0xa5, 0x85, 0x03, 0x83, + 0x4c, 0xa9, 0x5c, 0x1a, 0x8e, 0x9e, 0x86, 0x5c, 0x8d, 0x2c, 0xc0, 0x12, 0xa1, 0x0f, 0x13, 0xe0, + 0xab, 0xb3, 0x20, 0xa7, 0xb4, 0xb6, 0x10, 0xb7, 0x48, 0x9b, 0x61, 0x16, 0x69, 0x4f, 0x82, 0x82, + 0x6b, 0x38, 0x5b, 0xc8, 0xf5, 0x8f, 0xe3, 0x90, 0xb7, 0x20, 0xa8, 0x9b, 0xc4, 0x04, 0x75, 0x7b, + 0x36, 0xc8, 0x79, 0x3c, 0xa3, 0xe1, 0x52, 0x6e, 0xe8, 0x07, 0x3f, 0xe6, 0xfd, 0x82, 0x57, 0xe3, + 0x82, 0xd7, 0x6a, 0x15, 0xff, 0xd0, 0x8b, 0x75, 0x7e, 0x1f, 0xd6, 0xf8, 0xbe, 0x8f, 0xa6, 0x6d, + 0x55, 0x76, 0x8c, 0x2d, 0x44, 0x9b, 0x19, 0x26, 0xf8, 0x5f, 0x95, 0x1d, 0xfb, 0x41, 0x93, 0xc6, + 0x57, 0x0b, 0x13, 0xbc, 0x26, 0x6c, 0x9b, 0xad, 0x16, 0xb2, 0xa8, 0x66, 0xd3, 0xb7, 0x33, 0xa7, + 0x40, 0xce, 0xa3, 0xc1, 0x93, 0x1f, 0x6f, 0xe0, 0x2f, 0x1e, 0x91, 0x67, 0x3c, 0xb5, 0x22, 0xca, + 0x5b, 0xcc, 0xf0, 0x8b, 0x75, 0x22, 0xbe, 0x1b, 0xa4, 0x71, 0xfd, 0x95, 0xeb, 0xe9, 0x20, 0x6f, + 0xd9, 0x2d, 0x34, 0x70, 0xa8, 0x21, 0xb9, 0xe4, 0x67, 0x82, 0x3c, 0x6a, 0x79, 0xbd, 0x82, 0x84, + 0xb3, 0x9f, 0x8a, 0xe7, 0xa5, 0x4a, 0x32, 0x27, 0x73, 0x10, 0xe9, 0x47, 0x6d, 0xfa, 0x0a, 0xf8, + 0x4b, 0x13, 0xe0, 0x28, 0xe9, 0x03, 0xb4, 0xdd, 0x0b, 0x5e, 0x51, 0x17, 0x10, 0x7c, 0x4c, 0xe2, + 0xa2, 0x48, 0x76, 0x77, 0x2f, 0x04, 0x66, 0x23, 0x79, 0x61, 0x15, 0x34, 0x3b, 0x92, 0x41, 0x4b, + 0x1a, 0x76, 0xd0, 0xe2, 0x06, 0x20, 0xc9, 0x57, 0xf1, 0x70, 0xb8, 0x2a, 0xe0, 0x64, 0x7f, 0xb8, + 0xea, 0x37, 0xd8, 0xcc, 0x83, 0x09, 0x63, 0xd3, 0x45, 0x4e, 0xa5, 0x85, 0xe5, 0x71, 0x4a, 0xf5, + 0x5f, 0xbd, 0x01, 0xf1, 0x02, 0xda, 0xb4, 0x1d, 0x4f, 0xd3, 0xa7, 0xc8, 0x80, 0xe8, 0xbf, 0x33, + 0xfa, 0x09, 0xb8, 0x4d, 0x94, 0x9b, 0xc1, 0x51, 0x73, 0xcb, 0xb2, 0x1d, 0x14, 0x78, 0xe6, 0xcd, + 0xcf, 0x90, 0xc3, 0xe2, 0x3d, 0xc9, 0xf2, 0xad, 0xe0, 0x98, 0x65, 0x2f, 0xa1, 0x0e, 0xe5, 0x3b, + 0x41, 0x75, 0x16, 0x6b, 0xc4, 0xfe, 0x0f, 0xfb, 0xba, 0x96, 0xb9, 0xfd, 0x5d, 0x0b, 0xfc, 0x4c, + 0xd2, 0xf9, 0x70, 0x0f, 0xf0, 0x23, 0xb3, 0xcb, 0xe4, 0xe7, 0x82, 0x99, 0x16, 0xf5, 0xdb, 0x69, + 0x9a, 0x81, 0xd6, 0x44, 0xfe, 0xc7, 0x65, 0x0e, 0x45, 0x2e, 0xc7, 0x8a, 0xdc, 0x0a, 0x98, 0xc4, + 0xa7, 0x34, 0x3c, 0x99, 0xcb, 0xf7, 0x04, 0xa3, 0xc3, 0x53, 0xb6, 0xa0, 0x51, 0x0c, 0xdb, 0x16, + 0xca, 0xf4, 0x17, 0x35, 0xf8, 0x39, 0xd9, 0xcc, 0x3a, 0x9e, 0x43, 0xe9, 0xab, 0xe7, 0x67, 0x73, + 0xe0, 0xe8, 0x8a, 0x63, 0xef, 0x76, 0xba, 0xa1, 0x7a, 0xfe, 0x45, 0xff, 0xd5, 0xf4, 0x02, 0x3f, + 0x16, 0xf5, 0x57, 0xdc, 0xd3, 0x60, 0xda, 0xa1, 0x3d, 0x6a, 0xb8, 0xb6, 0xce, 0x26, 0xb1, 0xaa, + 0x2d, 0x1d, 0x44, 0xb5, 0x43, 0x05, 0xc9, 0x71, 0x0a, 0xd2, 0x2b, 0xc8, 0xf9, 0x3e, 0x82, 0xfc, + 0xe7, 0xd9, 0x84, 0x82, 0xdc, 0xc3, 0xa2, 0x08, 0x41, 0x2e, 0x83, 0xc2, 0x16, 0xce, 0x48, 0xe5, + 0xf8, 0x69, 0x62, 0x2d, 0xc3, 0x85, 0xab, 0xf4, 0xd7, 0x90, 0xaf, 0x12, 0xc3, 0xd7, 0x64, 0x42, + 0x15, 0x4f, 0x6d, 0xfa, 0x42, 0xf5, 0xce, 0x1c, 0x98, 0x09, 0x6a, 0xc7, 0x07, 0x1f, 0x32, 0x83, + 0x3a, 0xfc, 0x7d, 0xab, 0x33, 0x41, 0x57, 0x2a, 0x31, 0x5d, 0x69, 0x9f, 0xce, 0x6f, 0x3a, 0x41, + 0xe7, 0x37, 0x13, 0xd1, 0xf9, 0xc1, 0x17, 0x49, 0xa2, 0x41, 0x8b, 0xf9, 0x3e, 0x00, 0xb7, 0xee, + 0x89, 0xdc, 0xab, 0x09, 0x86, 0x4e, 0x1e, 0xdc, 0xaa, 0xf4, 0x85, 0xe6, 0x43, 0x59, 0x70, 0x8c, + 0xf4, 0x86, 0x1b, 0x56, 0x37, 0xe8, 0x8b, 0x9e, 0xcc, 0xbb, 0x15, 0x78, 0x6d, 0xea, 0x06, 0x6e, + 0x05, 0xf8, 0x8d, 0x5f, 0x04, 0x8f, 0x3d, 0xb3, 0xc4, 0xf5, 0xb9, 0x4c, 0x2d, 0x11, 0x2b, 0x4a, + 0x62, 0xa7, 0x92, 0x04, 0x0b, 0x4d, 0x9f, 0x81, 0x3f, 0x2f, 0x81, 0x29, 0x0d, 0xb9, 0x6b, 0xc6, + 0x15, 0x7b, 0xd7, 0x85, 0x86, 0xe8, 0xf2, 0xf7, 0x73, 0x40, 0xa1, 0x8d, 0x7f, 0xa1, 0x37, 0x70, + 0x9d, 0xee, 0xbb, 0x7e, 0x8c, 0x37, 0x7a, 0x49, 0xd1, 0x2a, 0xcd, 0xcf, 0x1f, 0x16, 0x13, 0xd9, + 0x7d, 0x08, 0xa8, 0x1b, 0xc9, 0xd2, 0x69, 0xa2, 0xbd, 0x89, 0xa8, 0xaa, 0xd3, 0x87, 0xe5, 0x27, + 0x24, 0x30, 0xab, 0x21, 0xb7, 0xd2, 0x5d, 0x36, 0xf6, 0x6c, 0xc7, 0x74, 0x11, 0x7b, 0x19, 0x44, + 0x3c, 0x34, 0xa7, 0x00, 0x30, 0x83, 0xdf, 0x68, 0x34, 0x70, 0x26, 0x05, 0xfe, 0x5a, 0xd2, 0x1d, + 0x63, 0x8e, 0x8e, 0x91, 0x80, 0x90, 0x68, 0x0f, 0x33, 0xae, 0xfa, 0xf4, 0x81, 0xf8, 0x42, 0x96, + 0x02, 0x51, 0x72, 0x9a, 0xdb, 0xe6, 0x1e, 0x6a, 0x25, 0x04, 0xc2, 0xff, 0x2d, 0x04, 0x22, 0x28, + 0x28, 0xf1, 0xf6, 0x30, 0x47, 0xc7, 0x28, 0xb6, 0x87, 0xe3, 0x0a, 0x1c, 0xcb, 0x29, 0x54, 0xaf, + 0xeb, 0xa1, 0x6b, 0x0c, 0xf7, 0x8a, 0xb2, 0x35, 0x34, 0xe1, 0xb2, 0xac, 0x09, 0x37, 0x54, 0xc7, + 0x42, 0xea, 0x1e, 0x24, 0xd3, 0xb9, 0x34, 0x3a, 0x96, 0xbe, 0x55, 0xa7, 0xcf, 0xf4, 0xf7, 0x48, + 0xe0, 0x44, 0x60, 0xf0, 0x68, 0xc8, 0x5d, 0x32, 0xba, 0xdb, 0x17, 0x6c, 0xc3, 0x69, 0xb1, 0x37, + 0xb3, 0x0d, 0x7d, 0x14, 0x03, 0xfe, 0x29, 0x0b, 0x42, 0x95, 0x07, 0xa1, 0xaf, 0x5f, 0x50, 0x5f, + 0x5a, 0x46, 0xd1, 0xc9, 0xc4, 0xba, 0x2e, 0xfd, 0x46, 0x00, 0xd6, 0x0f, 0x70, 0x60, 0xdd, 0x33, + 0x2c, 0x89, 0xe9, 0x03, 0xf7, 0x8b, 0x64, 0x44, 0x60, 0x5c, 0xd8, 0x1e, 0x10, 0x05, 0x2c, 0xc2, + 0x85, 0x49, 0x8a, 0x3e, 0x6d, 0x30, 0xcc, 0x18, 0x31, 0xd0, 0xfd, 0x2c, 0xdd, 0x31, 0xe2, 0x10, + 0x5d, 0xcb, 0xde, 0x29, 0x81, 0x22, 0x3e, 0x9f, 0xcb, 0xb8, 0xf7, 0xc1, 0x07, 0x45, 0xd1, 0xd9, + 0xe7, 0x4a, 0x38, 0x91, 0xd4, 0x95, 0x10, 0xbe, 0x23, 0xa9, 0xc3, 0x60, 0x2f, 0xb5, 0x23, 0x41, + 0x2c, 0x91, 0x3f, 0xe0, 0x00, 0x0a, 0xd2, 0x07, 0xed, 0x3f, 0x4b, 0x00, 0x78, 0x0a, 0x4d, 0x7d, + 0xd4, 0x5e, 0x20, 0x0a, 0xd7, 0x59, 0xd6, 0x89, 0xd2, 0x03, 0xea, 0x44, 0x0f, 0x50, 0xa4, 0xc4, + 0xd0, 0xfb, 0xed, 0x4d, 0x49, 0x7d, 0x97, 0x42, 0xaa, 0x46, 0x02, 0x4b, 0x22, 0x6f, 0xa6, 0xc8, + 0xba, 0xd3, 0x07, 0xe4, 0x7d, 0x59, 0x90, 0xd7, 0x6d, 0x0d, 0xb9, 0x07, 0x37, 0x05, 0x12, 0x9f, + 0xa7, 0xc4, 0xf5, 0x8e, 0xe2, 0x3c, 0x65, 0xbf, 0x82, 0xd2, 0x67, 0xdd, 0x63, 0x59, 0x30, 0xa3, + 0xdb, 0xe5, 0x60, 0xb1, 0x4a, 0xdc, 0x17, 0x4c, 0xfc, 0xe2, 0xa5, 0xa0, 0x81, 0x61, 0x35, 0x07, + 0xba, 0x78, 0x69, 0x70, 0x79, 0xe9, 0xf3, 0xed, 0x4e, 0x70, 0x74, 0xc3, 0x6a, 0xd9, 0x2a, 0x6a, + 0xd9, 0x74, 0x49, 0x56, 0x96, 0x41, 0x6e, 0xd7, 0x6a, 0xd9, 0x98, 0xe4, 0xbc, 0x8a, 0x9f, 0xbd, + 0x34, 0x07, 0xb5, 0x6c, 0xba, 0x5f, 0x87, 0x9f, 0xe1, 0xd7, 0x25, 0x90, 0xf3, 0xfe, 0x15, 0x67, + 0xf5, 0x3b, 0xa5, 0x84, 0x27, 0x44, 0xbd, 0xe2, 0x47, 0x62, 0x09, 0xdd, 0xcb, 0x2c, 0x52, 0x13, + 0x0f, 0xb1, 0x1b, 0xa2, 0xea, 0x63, 0x58, 0x11, 0x2e, 0x4e, 0xcb, 0xf3, 0x60, 0xe2, 0x42, 0xdb, + 0x6e, 0x5e, 0x0c, 0x0f, 0x32, 0xd2, 0x57, 0xf9, 0x16, 0x90, 0x77, 0x0c, 0x6b, 0x0b, 0xd1, 0xc5, + 0xef, 0xe3, 0x3d, 0x7d, 0x21, 0xde, 0x89, 0x56, 0x49, 0x16, 0xf8, 0x8e, 0x24, 0x67, 0x53, 0xfb, + 0x34, 0x3e, 0x99, 0x3c, 0x2c, 0x0d, 0x71, 0x8c, 0xa0, 0x08, 0x66, 0xca, 0x25, 0x72, 0xc5, 0xd9, + 0x7a, 0xed, 0x9c, 0x52, 0x94, 0x30, 0xcc, 0x1e, 0x4f, 0x52, 0x84, 0xd9, 0x2b, 0xfe, 0xdf, 0x2d, + 0xcc, 0x7d, 0x1a, 0x7f, 0x18, 0x30, 0x7f, 0x32, 0x0b, 0x66, 0xd7, 0xcc, 0xae, 0x1b, 0xe5, 0x4d, + 0x1b, 0x13, 0x9e, 0xe7, 0xe5, 0x49, 0x4d, 0x65, 0xae, 0x1e, 0xe1, 0xb8, 0x3c, 0x89, 0xcc, 0xe1, + 0xb8, 0x2a, 0xc6, 0xe3, 0xf6, 0x8d, 0x29, 0x20, 0xd7, 0x12, 0x09, 0x73, 0x32, 0xb1, 0xa1, 0x14, + 0x56, 0x32, 0x7e, 0x43, 0x29, 0xb2, 0xee, 0xf4, 0xf9, 0xfb, 0xf5, 0x2c, 0x38, 0xe6, 0x55, 0x1f, + 0xb7, 0x2c, 0x15, 0xcd, 0xe6, 0x81, 0xcb, 0x52, 0x89, 0x57, 0xc6, 0xf7, 0xd1, 0x32, 0x8a, 0x95, + 0xf1, 0x41, 0x85, 0x8e, 0x99, 0xcd, 0x11, 0xcb, 0xb0, 0x83, 0xd8, 0x1c, 0xb3, 0x0c, 0x3b, 0x3c, + 0x9b, 0xe3, 0x97, 0x62, 0x87, 0x64, 0xf3, 0xa1, 0x2d, 0xb0, 0xfe, 0x8a, 0x14, 0xb0, 0x39, 0x72, + 0x6d, 0x23, 0x86, 0xcd, 0x89, 0x8f, 0x67, 0xc1, 0x77, 0x0d, 0xc9, 0xf8, 0x11, 0xaf, 0x6f, 0x0c, + 0x03, 0xd3, 0x21, 0xae, 0x71, 0xbc, 0x46, 0x02, 0x73, 0x94, 0x8a, 0xfe, 0x53, 0xe6, 0x18, 0x8c, + 0x12, 0x4f, 0x99, 0x13, 0xfb, 0xd8, 0xf3, 0x94, 0x8d, 0xdf, 0xc7, 0x3e, 0xb6, 0xfe, 0x31, 0x84, + 0xdc, 0xcc, 0x81, 0x93, 0x1e, 0x09, 0xeb, 0x76, 0xcb, 0xdc, 0xbc, 0x42, 0xa8, 0x38, 0x67, 0xb4, + 0x77, 0x51, 0x17, 0xfe, 0x4e, 0x56, 0x14, 0xa5, 0xff, 0x03, 0x00, 0xbb, 0x83, 0x1c, 0x12, 0xe1, + 0x86, 0x02, 0x75, 0x77, 0x54, 0x63, 0xf7, 0xd7, 0x14, 0x44, 0x9d, 0xad, 0xf9, 0x85, 0xa8, 0x4c, + 0x79, 0xf0, 0x7d, 0x19, 0x30, 0x15, 0x7c, 0xf1, 0xa3, 0x18, 0x64, 0xc2, 0x28, 0x06, 0xb7, 0x00, + 0xc9, 0x68, 0xb5, 0x02, 0x68, 0x7a, 0x37, 0xaf, 0x71, 0x1d, 0xab, 0x47, 0x54, 0x2f, 0x93, 0x97, + 0xb7, 0x8b, 0xc2, 0xc3, 0x2e, 0x91, 0x79, 0xbb, 0xc8, 0x95, 0x6f, 0x03, 0x05, 0x72, 0x2d, 0x53, + 0xb0, 0x8a, 0x1f, 0x95, 0x9d, 0xe6, 0x5b, 0x3c, 0x0a, 0x66, 0x03, 0xba, 0x71, 0x5f, 0xc4, 0x59, + 0x78, 0x35, 0x5e, 0x1a, 0xef, 0x4c, 0xc4, 0xa0, 0x7e, 0xdd, 0x75, 0x68, 0x2e, 0xab, 0x9c, 0x9c, + 0x3d, 0x6f, 0xe8, 0x92, 0xc7, 0xb3, 0x29, 0x56, 0xea, 0x74, 0xda, 0x57, 0x74, 0x7a, 0xa8, 0x3e, + 0xd1, 0xa6, 0x18, 0x73, 0x36, 0x3f, 0xdb, 0x7b, 0x36, 0x3f, 0xf9, 0xa6, 0x18, 0x47, 0xc7, 0x28, + 0x36, 0xc5, 0xe2, 0x0a, 0x1c, 0xc3, 0xb2, 0x64, 0x9e, 0x18, 0xcf, 0x34, 0x86, 0xe0, 0x5b, 0xb2, + 0x7d, 0xbd, 0xaa, 0x00, 0xef, 0x55, 0xd5, 0x2f, 0xbc, 0x60, 0x6c, 0xec, 0x54, 0xf9, 0x99, 0xa0, + 0xb0, 0x69, 0x3b, 0x3b, 0x86, 0xbf, 0x7f, 0xdf, 0xeb, 0xc4, 0x4d, 0xe3, 0xf6, 0x2d, 0xe3, 0x3c, + 0x2a, 0xcd, 0xeb, 0xa9, 0xed, 0x0b, 0xcd, 0x0e, 0x8d, 0x8a, 0xe5, 0x3d, 0xca, 0x37, 0x82, 0x59, + 0x1a, 0x1c, 0xab, 0x8a, 0xba, 0x2e, 0x6a, 0xd1, 0x53, 0xca, 0x7c, 0xa2, 0x7c, 0x06, 0xcc, 0xd0, + 0x84, 0x65, 0xb3, 0x8d, 0xba, 0xf4, 0x6a, 0x42, 0x2e, 0x4d, 0x3e, 0x09, 0x0a, 0x66, 0xf7, 0xf9, + 0x5d, 0xdb, 0xc2, 0xae, 0xb9, 0x93, 0x2a, 0x7d, 0xc3, 0xde, 0x3b, 0x24, 0x5f, 0x60, 0xb3, 0x12, + 0x5f, 0xfa, 0xde, 0x64, 0xf8, 0xb9, 0x61, 0xe6, 0x0f, 0x89, 0xe3, 0x25, 0x7a, 0x28, 0xec, 0x36, + 0x9b, 0x08, 0xb5, 0xe8, 0xa1, 0x03, 0xff, 0x35, 0x61, 0x24, 0xc5, 0xc4, 0xb3, 0x8d, 0x43, 0x0a, + 0xa5, 0xf8, 0x91, 0x13, 0xa0, 0x40, 0xc2, 0x8b, 0xc3, 0x57, 0xcd, 0xf5, 0x15, 0xc6, 0x39, 0x5e, + 0x18, 0x37, 0xc0, 0x8c, 0x65, 0x7b, 0xd5, 0xd5, 0x0d, 0xc7, 0xd8, 0xe9, 0xc6, 0x2d, 0x26, 0x92, + 0x72, 0x83, 0x91, 0xa3, 0xca, 0xfc, 0xb6, 0x7a, 0x44, 0xe5, 0x8a, 0x91, 0xff, 0x4f, 0x70, 0xf4, + 0x02, 0x3d, 0x68, 0xdb, 0xa5, 0x25, 0x67, 0xa3, 0x5d, 0xef, 0x7a, 0x4a, 0x5e, 0xe4, 0xff, 0x5c, + 0x3d, 0xa2, 0xf6, 0x16, 0x26, 0xff, 0x10, 0x98, 0xf3, 0x5e, 0x5b, 0xf6, 0x25, 0x9f, 0x70, 0x29, + 0xda, 0xde, 0xe8, 0x29, 0x7e, 0x9d, 0xfb, 0x71, 0xf5, 0x88, 0xda, 0x53, 0x94, 0x5c, 0x03, 0x60, + 0xdb, 0xdd, 0x69, 0xd3, 0x82, 0x73, 0xd1, 0x22, 0xd9, 0x53, 0xf0, 0x6a, 0xf0, 0xd3, 0xea, 0x11, + 0x95, 0x29, 0x42, 0x5e, 0x03, 0x53, 0xee, 0x65, 0x97, 0x96, 0x97, 0x8f, 0xde, 0xe3, 0xee, 0x29, + 0x4f, 0xf7, 0xff, 0x59, 0x3d, 0xa2, 0x86, 0x05, 0xc8, 0x15, 0x30, 0xd9, 0xb9, 0x40, 0x0b, 0x2b, + 0xf4, 0xb9, 0x52, 0xb9, 0x7f, 0x61, 0xf5, 0x0b, 0x41, 0x59, 0xc1, 0xef, 0x1e, 0x61, 0xcd, 0xee, + 0x1e, 0x2d, 0x6b, 0x42, 0x98, 0xb0, 0xb2, 0xff, 0x8f, 0x47, 0x58, 0x50, 0x80, 0x5c, 0x01, 0x53, + 0x5d, 0xcb, 0xe8, 0x74, 0xb7, 0x6d, 0xb7, 0x3b, 0x3f, 0xd9, 0xe3, 0x1e, 0x19, 0x5d, 0x9a, 0x46, + 0xff, 0x51, 0xc3, 0xbf, 0xe5, 0x67, 0x82, 0x13, 0xbb, 0xf8, 0x9a, 0x36, 0xe5, 0xb2, 0xd9, 0x75, + 0x4d, 0x6b, 0xcb, 0x8f, 0xf1, 0x47, 0x7a, 0x93, 0xfe, 0x1f, 0xe5, 0x05, 0x7a, 0x58, 0x01, 0x60, + 0xdd, 0x84, 0xbd, 0x7b, 0x72, 0xa4, 0x5a, 0xe6, 0x8c, 0xc2, 0x73, 0x41, 0xce, 0xfb, 0x84, 0x1d, + 0x0c, 0xe7, 0xfa, 0xaf, 0xf7, 0xf5, 0xca, 0x0e, 0x56, 0x60, 0xef, 0x27, 0x6f, 0x6c, 0xb4, 0xec, + 0xba, 0x63, 0x6f, 0x39, 0xa8, 0xdb, 0xa5, 0x7e, 0x87, 0x4c, 0x8a, 0xa7, 0xe0, 0x66, 0x77, 0xdd, + 0xdc, 0x22, 0xb6, 0x09, 0xf5, 0xca, 0x66, 0x93, 0xc8, 0xa4, 0xb3, 0x8a, 0x2e, 0xe1, 0xab, 0xbf, + 0xe6, 0x8f, 0xfa, 0x93, 0x4e, 0x3f, 0x05, 0xde, 0x04, 0x66, 0x58, 0x25, 0x23, 0x77, 0x94, 0x98, + 0xf7, 0x07, 0xa6, 0x18, 0x7d, 0x83, 0x37, 0x82, 0x39, 0x5e, 0xa6, 0x99, 0x21, 0x46, 0xf2, 0xbb, + 0x42, 0x78, 0x03, 0x38, 0xda, 0xa3, 0x58, 0xfe, 0xd1, 0xfd, 0x4c, 0x78, 0x74, 0xff, 0x34, 0x00, + 0xa1, 0x14, 0xf7, 0x2d, 0xe6, 0x7a, 0x30, 0x15, 0xc8, 0x65, 0xdf, 0x0c, 0x5f, 0xcd, 0x80, 0x49, + 0x5f, 0xd8, 0xfa, 0x65, 0xf0, 0xc6, 0x17, 0x8b, 0xd9, 0x47, 0xa0, 0xb3, 0x6d, 0x2e, 0xcd, 0x1b, + 0x47, 0x42, 0x6f, 0x5e, 0xdd, 0x74, 0xdb, 0xfe, 0xa9, 0x94, 0xde, 0x64, 0xb9, 0x0e, 0x80, 0x89, + 0x31, 0xd2, 0xc3, 0x63, 0x2a, 0xb7, 0x25, 0xd0, 0x07, 0x22, 0x0f, 0x4c, 0x19, 0x67, 0x9e, 0x4c, + 0xcf, 0x90, 0x4c, 0x81, 0xbc, 0x56, 0x2f, 0x95, 0x95, 0xe2, 0x11, 0x79, 0x0e, 0x00, 0xe5, 0x05, + 0x75, 0x45, 0xad, 0x28, 0xd5, 0xb2, 0x52, 0xcc, 0xc0, 0xd7, 0x66, 0xc1, 0x54, 0xa0, 0x04, 0x7d, + 0x1b, 0xa9, 0x50, 0xd1, 0x1a, 0x78, 0x0d, 0xc4, 0x7e, 0xa5, 0x62, 0x85, 0xec, 0x39, 0xe0, 0xea, + 0xdd, 0x2e, 0x5a, 0x36, 0x9d, 0xae, 0xab, 0xda, 0x97, 0x96, 0x6d, 0x27, 0x88, 0x6a, 0xe9, 0x5f, + 0x77, 0x1c, 0xf1, 0xd9, 0xb3, 0x28, 0x5a, 0x08, 0x9f, 0x64, 0x40, 0x0e, 0x5d, 0x20, 0x0e, 0x13, + 0xbc, 0x72, 0x5d, 0x72, 0xbf, 0x70, 0x17, 0xa9, 0xf6, 0xa5, 0x6e, 0xc9, 0x6a, 0x95, 0xed, 0xf6, + 0xee, 0x8e, 0xd5, 0xa5, 0x36, 0x41, 0xd4, 0x67, 0x8f, 0x3b, 0xf8, 0x92, 0x97, 0x39, 0x00, 0xca, + 0xb5, 0xb5, 0x35, 0xa5, 0xac, 0x57, 0x6a, 0xd5, 0xe2, 0x11, 0x8f, 0x5b, 0x7a, 0x69, 0x71, 0xcd, + 0xe3, 0xce, 0x0f, 0x83, 0x49, 0x5f, 0xa7, 0xf7, 0xdd, 0xed, 0x5c, 0x02, 0x93, 0xbe, 0x96, 0xd3, + 0x11, 0xe1, 0x29, 0xbd, 0x27, 0xd2, 0x76, 0x0c, 0xc7, 0xc5, 0x6e, 0xd4, 0x7e, 0x21, 0x8b, 0x46, + 0x17, 0xa9, 0xc1, 0x6f, 0x67, 0x9e, 0x4e, 0x29, 0x90, 0xc1, 0x5c, 0x69, 0x6d, 0xad, 0x51, 0x53, + 0x1b, 0xd5, 0x9a, 0xbe, 0x5a, 0xa9, 0xae, 0x90, 0x11, 0xb2, 0xb2, 0x52, 0xad, 0xa9, 0x0a, 0x19, + 0x20, 0xb5, 0x62, 0x86, 0x5c, 0x32, 0xb4, 0x38, 0x09, 0x0a, 0x1d, 0xcc, 0x5d, 0xf8, 0x25, 0x29, + 0xe1, 0x81, 0xd3, 0x00, 0xa7, 0x88, 0x6b, 0x50, 0x38, 0x57, 0xf4, 0x6c, 0x9f, 0xe3, 0x5a, 0x67, + 0xc0, 0x0c, 0xb1, 0xe5, 0xba, 0x78, 0x15, 0x9f, 0xde, 0x24, 0xc8, 0xa5, 0xc1, 0x8f, 0x65, 0x13, + 0x9c, 0x42, 0xed, 0x4b, 0x51, 0x32, 0xe3, 0xe2, 0x8f, 0x87, 0xb9, 0x54, 0x48, 0x06, 0x73, 0x95, + 0xaa, 0xae, 0xa8, 0xd5, 0xd2, 0x1a, 0xcd, 0x22, 0xc9, 0xf3, 0xe0, 0x78, 0xb5, 0x46, 0xe3, 0x38, + 0x69, 0xf8, 0xfa, 0xd2, 0xf5, 0x7a, 0x4d, 0xd5, 0x8b, 0x79, 0xf9, 0x24, 0x90, 0xc9, 0x33, 0x77, + 0xfb, 0x6f, 0x41, 0x7e, 0x2a, 0xb8, 0x61, 0xad, 0xb2, 0x5e, 0xd1, 0x1b, 0xb5, 0xe5, 0x86, 0x5a, + 0x3b, 0xaf, 0x79, 0x08, 0xaa, 0xca, 0x5a, 0xc9, 0x13, 0x24, 0xe6, 0xb2, 0xa1, 0x09, 0xf9, 0x2a, + 0x70, 0x14, 0x5f, 0x24, 0x86, 0x6f, 0x10, 0x26, 0xf5, 0x4d, 0xca, 0xd7, 0x81, 0xf9, 0x4a, 0x55, + 0xdb, 0x58, 0x5e, 0xae, 0x94, 0x2b, 0x4a, 0x55, 0x6f, 0xd4, 0x15, 0x75, 0xbd, 0xa2, 0x69, 0xde, + 0xbf, 0xc5, 0x29, 0xf8, 0x11, 0x09, 0x14, 0x48, 0x9f, 0x09, 0xdf, 0x2b, 0x81, 0xd9, 0x73, 0x46, + 0xdb, 0xf4, 0x06, 0x0a, 0x7c, 0xc7, 0x13, 0xbc, 0x9e, 0xf3, 0x50, 0x77, 0xf1, 0x5d, 0x50, 0xd4, + 0x43, 0x1d, 0xbf, 0xc0, 0x1f, 0x67, 0x45, 0x43, 0xe7, 0x45, 0xe3, 0x79, 0x31, 0x40, 0x90, 0x1a, + 0x17, 0xb8, 0xda, 0x22, 0x26, 0x37, 0x6f, 0x08, 0x70, 0x3e, 0xcf, 0xe1, 0x5c, 0x3e, 0x58, 0xf1, + 0xc9, 0xc0, 0xff, 0xa5, 0x51, 0x81, 0x5f, 0x04, 0x33, 0x1b, 0xd5, 0xd2, 0x86, 0xbe, 0x5a, 0x53, + 0x2b, 0x3f, 0x88, 0xa3, 0xc1, 0xce, 0x82, 0xa9, 0xe5, 0x9a, 0xba, 0x58, 0x59, 0x5a, 0x52, 0xaa, + 0xc5, 0xbc, 0x7c, 0x35, 0xb8, 0x4a, 0x53, 0xd4, 0x73, 0x95, 0xb2, 0xd2, 0xd8, 0xa8, 0x96, 0xce, + 0x95, 0x2a, 0x6b, 0xb8, 0x8f, 0x28, 0xc4, 0xdc, 0x4f, 0x35, 0x01, 0x7f, 0x34, 0x07, 0x00, 0x69, + 0xba, 0x67, 0x49, 0xb3, 0xb7, 0x18, 0xfd, 0x49, 0xd2, 0x49, 0x43, 0x58, 0x4c, 0x84, 0xfe, 0x56, + 0xc0, 0xa4, 0x43, 0x3f, 0xd0, 0x55, 0x94, 0x41, 0xe5, 0x90, 0x47, 0xbf, 0x34, 0x35, 0xf8, 0x1d, + 0xbe, 0x3f, 0xc9, 0x1c, 0x21, 0x92, 0xb0, 0x64, 0x48, 0x2e, 0x8f, 0x06, 0x48, 0xf8, 0xb2, 0x0c, + 0x98, 0xe3, 0x1b, 0xe6, 0x35, 0x02, 0x1b, 0x53, 0x62, 0x8d, 0xe0, 0x7f, 0x66, 0x8c, 0xac, 0x33, + 0x77, 0xd0, 0xe1, 0x14, 0xf8, 0x9a, 0x49, 0x0e, 0x65, 0xfa, 0x16, 0x4b, 0x31, 0xe3, 0x11, 0xef, + 0x19, 0x1d, 0xe4, 0x0a, 0x5b, 0xfd, 0xb2, 0x5b, 0x94, 0xe0, 0x63, 0x39, 0x30, 0xcb, 0x5d, 0x93, + 0x04, 0xff, 0x31, 0x23, 0x72, 0xf5, 0x09, 0x73, 0x01, 0x53, 0xe6, 0xa0, 0x17, 0x30, 0x9d, 0xf9, + 0xb1, 0x0c, 0x98, 0xa0, 0x89, 0x98, 0xc1, 0xb5, 0xaa, 0x67, 0x0b, 0x1c, 0x05, 0xd3, 0x2b, 0x8a, + 0xde, 0xd0, 0xf4, 0x92, 0xaa, 0x2b, 0x4b, 0xc5, 0x8c, 0x7c, 0x02, 0x1c, 0xab, 0x2b, 0xaa, 0x56, + 0xf3, 0xf8, 0x59, 0x57, 0x6b, 0xb8, 0x23, 0x24, 0x6c, 0xf6, 0x60, 0x58, 0x53, 0x96, 0x56, 0x94, + 0xc6, 0x62, 0x49, 0x53, 0x8a, 0x92, 0xf7, 0x6f, 0xb5, 0xa6, 0x2b, 0x5a, 0x63, 0xa9, 0x52, 0x52, + 0x1f, 0x28, 0xe6, 0xbc, 0x7f, 0x35, 0x5d, 0x2d, 0xe9, 0xca, 0x4a, 0xa5, 0x8c, 0x2f, 0xfe, 0xf5, + 0x34, 0x20, 0xef, 0x0d, 0xa6, 0xca, 0x7a, 0x5d, 0x7f, 0xa0, 0x58, 0x48, 0xee, 0xdc, 0xd7, 0xdb, + 0xb8, 0x31, 0x3b, 0xf7, 0xc5, 0x55, 0x3f, 0x86, 0x1b, 0xa2, 0x24, 0x50, 0x24, 0x14, 0x28, 0x97, + 0x3b, 0xc8, 0x31, 0x91, 0xd5, 0x44, 0xf0, 0xa2, 0x48, 0xe4, 0xb8, 0x7d, 0x61, 0xac, 0xf0, 0x18, + 0xc1, 0x58, 0x9e, 0xe4, 0xa5, 0xc7, 0x68, 0xcf, 0xed, 0x33, 0xda, 0x3f, 0x9d, 0xd4, 0xbb, 0xaf, + 0x97, 0xdc, 0x91, 0x40, 0xf6, 0x89, 0x24, 0xde, 0x7d, 0x03, 0x28, 0x18, 0x4b, 0x40, 0xc8, 0x88, + 0x31, 0xbd, 0x28, 0xc1, 0x47, 0xa7, 0x40, 0x91, 0x10, 0xca, 0xb8, 0x4c, 0xfd, 0x3c, 0xbd, 0xab, + 0xaa, 0x91, 0x20, 0x02, 0x94, 0x7f, 0x42, 0x37, 0xcb, 0x9f, 0xd0, 0xe5, 0x96, 0xde, 0xa4, 0xde, + 0x6d, 0xee, 0xa4, 0xea, 0xc7, 0xf8, 0x47, 0x45, 0xdf, 0x94, 0x94, 0x9e, 0xfa, 0xc5, 0x56, 0x3f, + 0x9e, 0xfb, 0x54, 0xe8, 0x8d, 0x49, 0x8a, 0x28, 0x32, 0xf1, 0xd7, 0x46, 0x25, 0x75, 0x96, 0xe5, + 0xfc, 0xd3, 0x62, 0xee, 0x52, 0x4a, 0xcf, 0x59, 0x76, 0x10, 0x05, 0xe9, 0xa3, 0xf0, 0xdd, 0x2c, + 0xc8, 0x69, 0xb6, 0xe3, 0x8e, 0x0a, 0x83, 0xa4, 0x1b, 0x7c, 0x0c, 0x07, 0xb4, 0xe8, 0x99, 0x53, + 0x7a, 0x1b, 0x7c, 0xf1, 0xf5, 0x8f, 0x21, 0x88, 0xd6, 0x51, 0x30, 0x47, 0x28, 0x09, 0x42, 0x9a, + 0x7f, 0x27, 0x4b, 0xfa, 0xab, 0xfb, 0x45, 0x11, 0x39, 0x03, 0x66, 0x98, 0x13, 0xd5, 0xc1, 0xf5, + 0x9a, 0x6c, 0x1a, 0xfc, 0x55, 0x16, 0x97, 0x25, 0x1e, 0x97, 0x7e, 0xf3, 0xc6, 0x20, 0x2a, 0xf8, + 0xa8, 0x7a, 0xa6, 0x24, 0xf1, 0xb8, 0x62, 0x2a, 0x4f, 0x1f, 0x91, 0x97, 0x48, 0xa0, 0x40, 0x1d, + 0x9c, 0x46, 0x8a, 0x40, 0x52, 0xcd, 0x08, 0x98, 0x20, 0xe6, 0x08, 0x25, 0x8d, 0x5a, 0x33, 0xe2, + 0xeb, 0x4f, 0x1f, 0x87, 0x7f, 0xa5, 0x9e, 0x7b, 0xa5, 0x3d, 0xc3, 0x6c, 0x1b, 0x17, 0xda, 0x09, + 0xe2, 0x60, 0x7e, 0x2c, 0xe1, 0x59, 0xa5, 0xa0, 0xa9, 0x5c, 0x7d, 0x11, 0x1c, 0x7f, 0x16, 0x98, + 0x72, 0x82, 0x85, 0x35, 0xff, 0x28, 0x77, 0x8f, 0xd7, 0x24, 0xfd, 0xae, 0x86, 0x39, 0x13, 0x1d, + 0x4c, 0x12, 0xa2, 0x67, 0x2c, 0x07, 0x29, 0xa6, 0x4b, 0xad, 0xd6, 0x32, 0x32, 0xdc, 0x5d, 0x07, + 0xb5, 0x12, 0x0d, 0x11, 0x3c, 0x8b, 0xa6, 0x58, 0x4e, 0x70, 0xd1, 0xab, 0xd6, 0x78, 0x74, 0xbe, + 0x7f, 0x40, 0x6f, 0xe0, 0xd3, 0x32, 0x92, 0x2e, 0xe9, 0xed, 0x01, 0x24, 0x35, 0x0e, 0x92, 0xe7, + 0x0e, 0x47, 0x44, 0xfa, 0x80, 0xfc, 0x82, 0x04, 0xe6, 0x88, 0x9d, 0x30, 0x6a, 0x4c, 0x7e, 0x2b, + 0xa1, 0x27, 0x04, 0x73, 0x69, 0x04, 0x4b, 0xce, 0x48, 0x60, 0x49, 0xe2, 0x37, 0x21, 0x46, 0x47, + 0xfa, 0xc8, 0x7c, 0xae, 0x00, 0x00, 0xe3, 0xe4, 0xf6, 0xb1, 0x42, 0x18, 0x49, 0x0a, 0xbe, 0x83, + 0xce, 0x3f, 0x34, 0x2e, 0x44, 0x29, 0xe3, 0xc0, 0x16, 0x6c, 0xab, 0xf0, 0x89, 0x42, 0xa3, 0xca, + 0x1f, 0x27, 0xb4, 0x79, 0xa9, 0x8b, 0xd9, 0xc0, 0xc1, 0x7d, 0xc8, 0x5e, 0xee, 0xf1, 0x04, 0xc6, + 0xef, 0x20, 0x52, 0x92, 0xa1, 0xb6, 0x36, 0xc4, 0x5c, 0x72, 0x1e, 0x1c, 0x57, 0x95, 0xd2, 0x52, + 0xad, 0xba, 0xf6, 0x00, 0x7b, 0xbb, 0x40, 0x51, 0x62, 0x27, 0x27, 0xa9, 0xc0, 0xf6, 0xc6, 0x84, + 0x7d, 0x20, 0xcf, 0xab, 0xb8, 0xd9, 0x0a, 0x33, 0x9d, 0x1f, 0xdc, 0xab, 0x09, 0x14, 0x7b, 0x98, + 0x28, 0xbc, 0x88, 0x55, 0xa3, 0x9f, 0x94, 0x40, 0x31, 0xbc, 0x8c, 0x96, 0x5e, 0x15, 0x53, 0xe3, + 0x7d, 0xe0, 0x3a, 0x64, 0x17, 0x25, 0xf4, 0x81, 0xf3, 0x13, 0xe4, 0x9b, 0xc0, 0x5c, 0x73, 0x1b, + 0x35, 0x2f, 0x56, 0x2c, 0x7f, 0x77, 0x98, 0x6c, 0x25, 0xf6, 0xa4, 0xf2, 0xc0, 0xdc, 0xcf, 0x03, + 0xc3, 0x4f, 0xa2, 0xb9, 0x41, 0x9a, 0x25, 0x2a, 0x02, 0x97, 0xdf, 0x0b, 0x70, 0xa9, 0x72, 0xb8, + 0xdc, 0x35, 0x54, 0xa9, 0xc9, 0x60, 0xa9, 0x0e, 0x01, 0x0b, 0x04, 0x27, 0x6b, 0x75, 0xbd, 0x52, + 0xab, 0x36, 0x36, 0x34, 0x65, 0xa9, 0xb1, 0xe8, 0x83, 0xa3, 0x15, 0x25, 0xf8, 0x8d, 0x2c, 0x98, + 0x20, 0x64, 0x75, 0x7b, 0x2e, 0x8f, 0x65, 0xa3, 0x3d, 0x65, 0xf6, 0x45, 0x7b, 0x82, 0x8f, 0x0a, + 0x1f, 0xe5, 0x0f, 0x18, 0x41, 0xeb, 0x89, 0xe8, 0xa7, 0x9e, 0x03, 0x26, 0x08, 0xc8, 0xbe, 0xd3, + 0xc8, 0xa9, 0x88, 0x5e, 0x8a, 0x16, 0xa3, 0xfa, 0xd9, 0x05, 0x8f, 0xf5, 0x0f, 0x20, 0x63, 0x2c, + 0x13, 0xc4, 0x89, 0x55, 0xb3, 0xeb, 0xda, 0xce, 0x15, 0xf8, 0xa6, 0x0c, 0x98, 0x38, 0x87, 0x9c, + 0xae, 0x69, 0x5b, 0xfb, 0x36, 0x4b, 0x4f, 0x83, 0xe9, 0x8e, 0x83, 0xf6, 0x4c, 0x7b, 0xb7, 0x1b, + 0x4e, 0xcc, 0xd9, 0x24, 0x19, 0x82, 0x49, 0x63, 0xd7, 0xdd, 0xb6, 0x9d, 0xf0, 0xd8, 0xbc, 0xff, + 0x2e, 0x9f, 0x02, 0x80, 0x3c, 0x57, 0x8d, 0x1d, 0x44, 0xb7, 0x80, 0x99, 0x14, 0x59, 0x06, 0x39, + 0xd7, 0xdc, 0x41, 0x34, 0xea, 0x1d, 0x7e, 0x96, 0xe7, 0xc1, 0x04, 0x8e, 0x51, 0x45, 0x63, 0x81, + 0x49, 0xaa, 0xff, 0x0a, 0xff, 0xab, 0x04, 0xa6, 0x57, 0x90, 0x4b, 0x49, 0xed, 0xb2, 0xc1, 0x67, + 0x62, 0x22, 0x43, 0x7b, 0xdd, 0x6b, 0xdb, 0xe8, 0xfa, 0xbf, 0x05, 0xab, 0x6f, 0x7c, 0x62, 0x18, + 0x81, 0x4f, 0x62, 0x82, 0x6c, 0xc2, 0xc7, 0xb2, 0xa2, 0xc7, 0x1d, 0x29, 0x33, 0x17, 0x18, 0x02, + 0x23, 0x65, 0x6b, 0x72, 0x8f, 0xe6, 0xd8, 0x17, 0x11, 0x95, 0x2d, 0x89, 0x16, 0xa3, 0x06, 0xb9, + 0x05, 0x0f, 0x4a, 0x0e, 0xa6, 0x24, 0x7d, 0xf1, 0xfa, 0x96, 0x04, 0xa6, 0xb5, 0x6d, 0xfb, 0x12, + 0x25, 0x80, 0xbd, 0x0f, 0x35, 0x0e, 0xaa, 0xeb, 0xc0, 0xd4, 0x5e, 0x0f, 0x4c, 0x61, 0x42, 0xf4, + 0xb5, 0x9d, 0xf0, 0x21, 0x29, 0x29, 0x4c, 0x0c, 0x71, 0x23, 0xbf, 0x54, 0x53, 0xfe, 0x7e, 0x30, + 0x41, 0xa9, 0xa6, 0xf3, 0xe7, 0x78, 0x80, 0xfd, 0xcc, 0x6c, 0x03, 0x73, 0x7c, 0x03, 0x93, 0x21, + 0x1f, 0xdd, 0xb8, 0x31, 0xc4, 0x1d, 0xcf, 0xe2, 0x63, 0xf2, 0x3e, 0xf0, 0xe5, 0x11, 0x00, 0x0f, + 0xbf, 0x9d, 0x11, 0x5d, 0x65, 0x0a, 0x38, 0x10, 0x50, 0x70, 0xa0, 0x38, 0xee, 0x03, 0x8b, 0x4b, + 0x9f, 0x9f, 0xaf, 0xcd, 0x81, 0x99, 0x25, 0x73, 0x73, 0x33, 0xe8, 0xf5, 0x5e, 0x91, 0x11, 0x63, + 0x69, 0xf4, 0x0e, 0xa5, 0x67, 0xb4, 0xec, 0x3a, 0x0e, 0xb2, 0xfc, 0x46, 0x51, 0x75, 0xea, 0x49, + 0x95, 0x6f, 0x06, 0x47, 0xfd, 0x8e, 0xde, 0xcf, 0x48, 0xc4, 0xb2, 0x37, 0x19, 0x7e, 0x53, 0x78, + 0x8b, 0xc2, 0xe7, 0x28, 0xdb, 0xa4, 0x08, 0x05, 0xbc, 0x1b, 0xcc, 0x6e, 0x93, 0xdc, 0x78, 0x1e, + 0xe7, 0x77, 0x96, 0x27, 0x7b, 0xe2, 0x65, 0xae, 0xa3, 0x6e, 0xd7, 0xd8, 0x42, 0x2a, 0x9f, 0xb9, + 0x47, 0x7d, 0xa5, 0x24, 0x97, 0x56, 0x88, 0xed, 0x76, 0x08, 0xb4, 0x24, 0x7d, 0xe9, 0xf8, 0xda, + 0x93, 0x41, 0x6e, 0xd9, 0x6c, 0x23, 0xf8, 0x53, 0x59, 0x30, 0xa5, 0xa2, 0xa6, 0x6d, 0x35, 0xbd, + 0x37, 0xc6, 0x5f, 0xe1, 0xef, 0x59, 0xdd, 0xb9, 0x8f, 0x87, 0xe6, 0x16, 0xae, 0x41, 0x5e, 0x39, + 0x0b, 0x41, 0x19, 0x11, 0x7a, 0xf3, 0x48, 0xc0, 0x9b, 0x32, 0xc7, 0x9b, 0xb3, 0xe2, 0x45, 0x8d, + 0x21, 0x1c, 0xb7, 0x67, 0x47, 0x6e, 0x6e, 0xb6, 0x6d, 0x83, 0x5b, 0xc9, 0xe8, 0xb5, 0x6d, 0x6e, + 0x01, 0x45, 0xdf, 0xed, 0xdc, 0x76, 0xeb, 0xa6, 0x65, 0x05, 0xc7, 0x1b, 0xf7, 0xa5, 0xf3, 0x9b, + 0x70, 0xb1, 0x11, 0x22, 0x70, 0xdb, 0x69, 0xed, 0x11, 0x92, 0x7d, 0x13, 0x98, 0xbb, 0x70, 0xc5, + 0x45, 0x5d, 0x9a, 0x8b, 0x56, 0x9b, 0x53, 0x7b, 0x52, 0xe1, 0x7b, 0x84, 0x22, 0x49, 0xc4, 0x54, + 0x98, 0x8c, 0xd5, 0xab, 0x43, 0x98, 0xf3, 0xc7, 0x41, 0xb1, 0x5a, 0x5b, 0x52, 0xb0, 0xfb, 0x8c, + 0xef, 0x8f, 0xb0, 0x05, 0x5f, 0x29, 0x81, 0x19, 0xbc, 0x17, 0xed, 0xa3, 0x70, 0x83, 0xc0, 0xfe, + 0x37, 0xfc, 0xb2, 0xb0, 0x6b, 0x0d, 0x6e, 0x32, 0x5b, 0x41, 0x34, 0xa3, 0x37, 0xcd, 0x76, 0x2f, + 0xa3, 0xf3, 0x6a, 0x4f, 0x6a, 0x1f, 0x40, 0xa4, 0xbe, 0x80, 0xfc, 0xa6, 0x90, 0x7f, 0xcd, 0x20, + 0xea, 0x0e, 0x0b, 0x95, 0x0f, 0x4a, 0x60, 0xda, 0x9b, 0xff, 0xf9, 0xa0, 0xd4, 0x38, 0x50, 0x6c, + 0xab, 0x7d, 0x25, 0x9c, 0xe3, 0xfa, 0xaf, 0x89, 0x94, 0xe4, 0xcf, 0x84, 0xa7, 0x61, 0x98, 0x45, + 0x0c, 0x2d, 0x63, 0xc2, 0xef, 0x03, 0x42, 0x93, 0xb3, 0x01, 0xc4, 0x1d, 0x16, 0x7c, 0xbf, 0x9e, + 0x07, 0x85, 0x8d, 0x0e, 0x46, 0xee, 0xeb, 0x59, 0x91, 0xd8, 0xc9, 0xfb, 0x7c, 0xab, 0x3d, 0x33, + 0xab, 0x6d, 0x37, 0x8d, 0x76, 0x3d, 0x3c, 0xa4, 0x12, 0x26, 0xc8, 0x77, 0x51, 0x77, 0x2b, 0x72, + 0xc2, 0xe7, 0xa6, 0xd8, 0xb0, 0xc2, 0x98, 0x47, 0x8c, 0x1f, 0xfb, 0xad, 0xe0, 0x58, 0xcb, 0xec, + 0x1a, 0x17, 0xda, 0x48, 0xb1, 0x9a, 0xce, 0x15, 0xc2, 0x0e, 0xe2, 0x9a, 0xb2, 0xff, 0x83, 0x7c, + 0x0f, 0xc8, 0x77, 0xdd, 0x2b, 0x6d, 0x32, 0xf1, 0x63, 0xdd, 0xde, 0x23, 0xab, 0xd2, 0xbc, 0xec, + 0x2a, 0xf9, 0x8b, 0xbd, 0x52, 0x70, 0x42, 0xf0, 0x7a, 0xc4, 0x3b, 0x40, 0xc1, 0x76, 0xcc, 0x2d, + 0x93, 0x44, 0xeb, 0x9f, 0xdb, 0x17, 0x2d, 0x8b, 0x98, 0x02, 0x35, 0x9c, 0x45, 0xa5, 0x59, 0xe1, + 0x07, 0x84, 0xef, 0xe8, 0xc7, 0x34, 0x12, 0x70, 0xc6, 0x73, 0x45, 0xe2, 0xc3, 0x42, 0x41, 0x33, + 0xa2, 0xc9, 0x4a, 0x7f, 0x10, 0xfe, 0x7c, 0x16, 0x4c, 0x2e, 0xd9, 0x97, 0x2c, 0x2c, 0xb0, 0x77, + 0x8a, 0xd9, 0xac, 0x7d, 0xce, 0x4f, 0xf1, 0x17, 0x3b, 0xc5, 0x3a, 0x4b, 0xe3, 0xd6, 0xfa, 0x55, + 0x46, 0xc0, 0x10, 0xab, 0x01, 0x82, 0x17, 0xf1, 0xc4, 0xd5, 0x93, 0x3e, 0x5f, 0xff, 0x50, 0x02, + 0xb9, 0x25, 0xc7, 0xee, 0xc0, 0xb7, 0x67, 0x12, 0xec, 0x23, 0xb7, 0x1c, 0xbb, 0xa3, 0xe3, 0x3b, + 0x36, 0x42, 0x0f, 0x71, 0x36, 0x4d, 0xbe, 0x13, 0x4c, 0x76, 0xec, 0xae, 0xe9, 0xfa, 0xd3, 0x81, + 0xb9, 0xdb, 0x9f, 0xd4, 0x57, 0x2b, 0xeb, 0x34, 0x93, 0x1a, 0x64, 0xf7, 0x7a, 0x5f, 0xcc, 0x42, + 0x8f, 0x2f, 0x1e, 0x1b, 0xfd, 0x7b, 0x46, 0x7a, 0x52, 0xe1, 0xab, 0x58, 0x24, 0x9f, 0xcb, 0x23, + 0xf9, 0x94, 0x3e, 0x1c, 0x76, 0xec, 0xce, 0x48, 0x76, 0x7e, 0x5e, 0x17, 0xa0, 0xfa, 0x3c, 0x0e, + 0xd5, 0x5b, 0x84, 0xea, 0x4c, 0x1f, 0xd1, 0x0f, 0xe4, 0x00, 0xc0, 0xe6, 0xc2, 0x86, 0x37, 0x91, + 0x11, 0xb3, 0x95, 0x7e, 0x22, 0xc7, 0xf0, 0xb2, 0xc4, 0xf3, 0xf2, 0x69, 0x11, 0xd6, 0x08, 0x2e, + 0x3e, 0x82, 0xa3, 0x25, 0x90, 0xdf, 0xf5, 0x3e, 0x53, 0x8e, 0x0a, 0x16, 0x81, 0x5f, 0x55, 0xf2, + 0x27, 0xfc, 0x83, 0x0c, 0xc8, 0xe3, 0x04, 0xf9, 0x14, 0x00, 0x78, 0x80, 0x26, 0x67, 0x0d, 0x32, + 0x78, 0x28, 0x66, 0x52, 0xb0, 0xb4, 0x9a, 0x2d, 0xfa, 0x99, 0x98, 0xbe, 0x61, 0x82, 0xf7, 0x37, + 0x1e, 0xb6, 0x71, 0x59, 0x74, 0x20, 0x67, 0x52, 0xbc, 0xbf, 0xf1, 0xdb, 0x1a, 0xda, 0x24, 0xa1, + 0x56, 0x73, 0x6a, 0x98, 0x10, 0xfc, 0xbd, 0x16, 0x5c, 0xa7, 0xe1, 0xff, 0x8d, 0x53, 0xbc, 0x49, + 0x2d, 0x16, 0xcb, 0xc5, 0xb0, 0x8a, 0x02, 0xce, 0xd4, 0x9b, 0x0c, 0xdf, 0x18, 0x88, 0xcd, 0x12, + 0x27, 0x36, 0xb7, 0x25, 0x60, 0x6f, 0xfa, 0xc2, 0xf3, 0xd5, 0x3c, 0x98, 0xaa, 0xda, 0x2d, 0x2a, + 0x3b, 0xcc, 0xc4, 0xef, 0x13, 0xf9, 0x44, 0x13, 0xbf, 0xa0, 0x8c, 0x08, 0x01, 0xb9, 0x8f, 0x17, + 0x10, 0xb1, 0x12, 0x58, 0xf9, 0x90, 0x17, 0x41, 0x01, 0x4b, 0xef, 0xfe, 0x6b, 0x52, 0xe2, 0x8a, + 0xc0, 0xac, 0x55, 0xe9, 0x9f, 0xff, 0xe6, 0x64, 0xec, 0x3f, 0x81, 0x3c, 0x6e, 0x60, 0x8c, 0x57, + 0x30, 0xdf, 0xd0, 0x6c, 0x7c, 0x43, 0xa5, 0xf8, 0x86, 0xe6, 0x7a, 0x1b, 0x9a, 0x64, 0x3e, 0x1f, + 0x25, 0x21, 0xe9, 0xcb, 0xf8, 0xff, 0x9c, 0x00, 0xa0, 0x6a, 0xec, 0x99, 0x5b, 0x64, 0xcb, 0xee, + 0x4f, 0xfd, 0x79, 0x0c, 0xdd, 0x5c, 0xfb, 0xcf, 0xcc, 0x40, 0x78, 0x27, 0x98, 0xa0, 0xe3, 0x1e, + 0x6d, 0xc8, 0xf5, 0x5c, 0x43, 0xc2, 0x52, 0x88, 0x79, 0x79, 0xd9, 0x55, 0xfd, 0xfc, 0xdc, 0xc5, + 0x71, 0xd9, 0x9e, 0x8b, 0xe3, 0xfa, 0xee, 0x0e, 0x44, 0x5d, 0x27, 0x07, 0xdf, 0x23, 0x7c, 0xf1, + 0x07, 0x43, 0x0f, 0xd3, 0xa2, 0x08, 0x15, 0xbc, 0x03, 0x4c, 0xd8, 0xc1, 0x2e, 0xa3, 0x14, 0xb9, + 0x9e, 0x55, 0xb1, 0x36, 0x6d, 0xd5, 0xcf, 0x29, 0x78, 0xa5, 0x87, 0x10, 0x1d, 0x63, 0xf1, 0x9d, + 0x3f, 0xb9, 0xe2, 0x87, 0xad, 0xf1, 0xda, 0x71, 0xde, 0x74, 0xb7, 0xd7, 0x4c, 0xeb, 0x62, 0x17, + 0xfe, 0x07, 0x31, 0x0b, 0x92, 0xc1, 0x3f, 0x9b, 0x0c, 0x7f, 0x3e, 0x1c, 0x80, 0xc6, 0xa3, 0x76, + 0x4f, 0x54, 0x29, 0xfd, 0xa9, 0x8d, 0x00, 0xf0, 0x2e, 0x50, 0x20, 0x84, 0xd2, 0x4e, 0xf4, 0x4c, + 0x24, 0x7e, 0x41, 0x49, 0x2a, 0xfd, 0x03, 0x3e, 0x16, 0xe0, 0x78, 0x8e, 0xc3, 0x71, 0xf1, 0x40, + 0x94, 0xa5, 0x0e, 0xe9, 0x99, 0x67, 0x80, 0x09, 0xca, 0x69, 0x79, 0x8e, 0xd5, 0xe2, 0xe2, 0x11, + 0x19, 0x80, 0xc2, 0xba, 0xbd, 0x87, 0x74, 0xbb, 0x98, 0xf1, 0x9e, 0x3d, 0xfa, 0x74, 0xbb, 0x98, + 0x85, 0xaf, 0x9f, 0x04, 0x93, 0x41, 0xa0, 0x90, 0xcf, 0x67, 0x41, 0x31, 0xbc, 0xe2, 0x9d, 0xb4, + 0x48, 0xdc, 0x65, 0xef, 0x17, 0x84, 0xf7, 0xdd, 0x83, 0x00, 0x1e, 0xbd, 0x95, 0x09, 0xde, 0x61, + 0xfd, 0x36, 0xa1, 0x7d, 0x78, 0xd1, 0x5a, 0xd2, 0x57, 0xb5, 0x4f, 0x67, 0x41, 0xbe, 0xdc, 0xb6, + 0x2d, 0x94, 0xe8, 0x0a, 0xeb, 0xfe, 0x3b, 0x0a, 0xf0, 0x45, 0x59, 0x51, 0x5b, 0x23, 0x64, 0x80, + 0x57, 0xb7, 0x20, 0x6f, 0xc5, 0x06, 0xa9, 0xd8, 0xa2, 0xd3, 0x67, 0xe8, 0x37, 0xb2, 0x60, 0x8a, + 0x84, 0xdc, 0x28, 0xb5, 0xdb, 0xf0, 0x49, 0x21, 0x53, 0xfb, 0x04, 0x5b, 0x81, 0xbf, 0x29, 0xec, + 0x37, 0x1d, 0xb4, 0x2a, 0x28, 0x3b, 0x41, 0xec, 0x91, 0x64, 0x6e, 0xbc, 0x62, 0x7b, 0x62, 0x03, + 0x09, 0x4a, 0x9f, 0xd5, 0x7f, 0x92, 0xf5, 0x0c, 0x00, 0xeb, 0x62, 0xdd, 0x41, 0x7b, 0x26, 0xba, + 0x04, 0xaf, 0x0d, 0x99, 0xbd, 0x3f, 0x9e, 0xc0, 0x5b, 0x84, 0x17, 0x71, 0x98, 0x22, 0x23, 0xb7, + 0xa4, 0xa6, 0xdb, 0x61, 0x26, 0xda, 0x8b, 0xf7, 0x06, 0x79, 0x60, 0x8a, 0x51, 0xd9, 0xec, 0x82, + 0x6b, 0x36, 0xd1, 0x54, 0xa4, 0xcf, 0xd8, 0x87, 0x26, 0xc0, 0xe4, 0x86, 0xd5, 0xed, 0xb4, 0x8d, + 0xee, 0x36, 0xfc, 0x8e, 0x14, 0xdc, 0x20, 0xfd, 0x2c, 0xee, 0xd8, 0xf2, 0x8f, 0xec, 0x22, 0xc7, + 0x77, 0xc3, 0x21, 0x2f, 0xfd, 0xaf, 0x28, 0x85, 0x1f, 0x90, 0x44, 0x27, 0xa9, 0x7e, 0xa5, 0xf1, + 0x57, 0x2b, 0x57, 0xc0, 0x64, 0xc7, 0x6c, 0xba, 0xbb, 0x4e, 0x70, 0xe1, 0xe5, 0xd3, 0xc5, 0x4a, + 0xa9, 0x93, 0xbf, 0xd4, 0xe0, 0x77, 0x68, 0x80, 0x09, 0x9a, 0xb8, 0x6f, 0x5b, 0x68, 0xff, 0x31, + 0xbc, 0x93, 0xa0, 0x60, 0x38, 0xae, 0xd9, 0xf5, 0x2f, 0x14, 0xa6, 0x6f, 0x5e, 0x77, 0x49, 0x9e, + 0x36, 0x9c, 0xb6, 0x1f, 0xe0, 0x20, 0x48, 0x80, 0x1f, 0x14, 0x9a, 0x3f, 0xc6, 0xb7, 0x3c, 0x19, + 0xe4, 0xf7, 0x0f, 0xb1, 0xd6, 0x7c, 0x35, 0xb8, 0x4a, 0x2d, 0xe9, 0x4a, 0x83, 0x9c, 0x87, 0x0f, + 0x8e, 0xbe, 0xb7, 0xe0, 0x77, 0xd8, 0xf5, 0x3b, 0x7e, 0x8c, 0xa0, 0x5c, 0x0c, 0xc7, 0x88, 0x20, + 0x21, 0x66, 0x8c, 0xf8, 0x75, 0xe1, 0xdd, 0x9d, 0x80, 0x25, 0x03, 0xd6, 0xf2, 0xe2, 0xee, 0x15, + 0xf9, 0x90, 0xd0, 0x4e, 0xcd, 0xa0, 0x9a, 0x0e, 0x91, 0xfd, 0xbf, 0x3a, 0x01, 0x26, 0x56, 0x8c, + 0x76, 0x1b, 0x39, 0x57, 0xbc, 0xa1, 0xa5, 0xe8, 0x53, 0xb8, 0x6e, 0x58, 0xe6, 0xa6, 0x37, 0xbf, + 0x8f, 0xed, 0xf4, 0xde, 0x23, 0x1c, 0xb3, 0x92, 0xd6, 0xb1, 0xd0, 0x5b, 0x7e, 0x04, 0xcf, 0xcf, + 0x82, 0x9c, 0x69, 0x6d, 0xda, 0xb4, 0xeb, 0xeb, 0x5d, 0x45, 0xf7, 0x7f, 0xc6, 0x53, 0x10, 0x9c, + 0x51, 0x30, 0x6c, 0xa5, 0x20, 0x15, 0xe9, 0xf7, 0x80, 0xbf, 0x91, 0x03, 0xb3, 0x3e, 0x11, 0x15, + 0xab, 0x85, 0x2e, 0xb3, 0x4b, 0x2a, 0xaf, 0xcc, 0x89, 0x9e, 0xb5, 0xe9, 0x6d, 0x0f, 0x2e, 0x2a, + 0x82, 0xa5, 0x3a, 0x00, 0x4d, 0xc3, 0x45, 0x5b, 0xb6, 0x63, 0x06, 0xfd, 0xda, 0x33, 0x93, 0x94, + 0x56, 0x26, 0x7f, 0x5f, 0x51, 0x99, 0x72, 0xe4, 0x7b, 0xc0, 0x34, 0x0a, 0x8e, 0xd3, 0xfa, 0x4b, + 0x2e, 0xb1, 0x78, 0xb1, 0xf9, 0xe1, 0x9f, 0x08, 0x1d, 0xe9, 0x11, 0x69, 0x66, 0x32, 0xcc, 0x1a, + 0xc3, 0xe9, 0xd0, 0x46, 0x75, 0xbd, 0xa4, 0x6a, 0xab, 0xa5, 0xb5, 0xb5, 0x4a, 0x75, 0x25, 0x88, + 0x0d, 0x21, 0x83, 0xb9, 0xa5, 0xda, 0xf9, 0x2a, 0x13, 0xbc, 0x23, 0x07, 0xeb, 0x60, 0xd2, 0xe7, + 0x57, 0x3f, 0x67, 0x47, 0x96, 0x67, 0xd4, 0xd9, 0x91, 0x49, 0xf2, 0x8c, 0x2c, 0xb3, 0x19, 0x38, + 0xcc, 0xe0, 0x67, 0xf8, 0xfb, 0x06, 0xc8, 0xe3, 0xb5, 0x71, 0xf8, 0x4e, 0x7c, 0xe3, 0x70, 0xa7, + 0x6d, 0x34, 0x11, 0xdc, 0x49, 0x60, 0x55, 0xfb, 0x41, 0xd4, 0xb3, 0xfb, 0x82, 0xa8, 0xe3, 0x47, + 0x6a, 0xbd, 0x1d, 0xef, 0xb7, 0x1e, 0xaf, 0x92, 0x2c, 0xfc, 0xe9, 0x97, 0xd8, 0x5d, 0x12, 0xb2, + 0x8c, 0x4f, 0xc9, 0x8c, 0x10, 0xc9, 0x68, 0x9a, 0x92, 0x59, 0x94, 0x62, 0xfb, 0x29, 0x71, 0x14, + 0xa5, 0xaf, 0xf1, 0x5f, 0xca, 0x81, 0xbc, 0xd6, 0x69, 0x9b, 0x2e, 0x7c, 0x4d, 0x76, 0x24, 0x98, + 0x91, 0xc0, 0xf7, 0xd2, 0xc0, 0xc0, 0xf7, 0xe1, 0x2e, 0x68, 0x4e, 0x60, 0x17, 0x54, 0x47, 0x97, + 0x5d, 0x7e, 0x17, 0xf4, 0x4e, 0x1a, 0xdf, 0x89, 0xec, 0xa1, 0x3e, 0xa5, 0x0f, 0x4b, 0x71, 0xb3, + 0xfa, 0x04, 0x0e, 0x3b, 0xf3, 0x0c, 0x1a, 0xbf, 0x08, 0x80, 0xc2, 0x62, 0x4d, 0xd7, 0x6b, 0xeb, + 0xc5, 0x23, 0x38, 0xf0, 0x45, 0xad, 0x5e, 0xcc, 0xc8, 0x53, 0x20, 0x5f, 0xa9, 0x56, 0x15, 0xb5, + 0x98, 0xc5, 0x11, 0x95, 0x2a, 0xfa, 0x9a, 0x52, 0x94, 0xf8, 0x28, 0xc8, 0xb1, 0x66, 0x34, 0x5f, + 0x77, 0x9a, 0xe2, 0x25, 0x66, 0x50, 0x47, 0xd3, 0x93, 0xbe, 0x70, 0xfd, 0x17, 0x09, 0xe4, 0xd7, + 0x91, 0xb3, 0x85, 0xe0, 0x8f, 0x24, 0xd8, 0xac, 0xdb, 0x34, 0x9d, 0x2e, 0x89, 0x3f, 0x15, 0x6e, + 0xd6, 0xb1, 0x69, 0xf2, 0x8d, 0x60, 0xb6, 0x8b, 0x9a, 0xb6, 0xd5, 0xf2, 0x33, 0x91, 0xfe, 0x88, + 0x4f, 0x84, 0xaf, 0x4e, 0x08, 0x19, 0x26, 0x74, 0x24, 0x3b, 0x6e, 0x49, 0x80, 0xe9, 0x57, 0x6b, + 0xfa, 0xc0, 0x7c, 0x53, 0xf2, 0x7e, 0xea, 0x5c, 0x81, 0xaf, 0x16, 0xde, 0x45, 0xbd, 0x15, 0x14, + 0xb0, 0x98, 0xfa, 0x63, 0x74, 0xff, 0xfe, 0x98, 0xe6, 0x91, 0x17, 0xc1, 0xb1, 0x2e, 0x6a, 0xa3, + 0xa6, 0x8b, 0x5a, 0x9e, 0xea, 0xaa, 0x03, 0x3b, 0x85, 0xfd, 0xd9, 0xe1, 0x1f, 0xb1, 0x00, 0xde, + 0xcd, 0x03, 0x78, 0x53, 0x1f, 0x56, 0x7a, 0x0d, 0x8a, 0xb6, 0x95, 0xbd, 0x66, 0x68, 0x6d, 0x3b, + 0x58, 0xdc, 0xf6, 0xdf, 0xbd, 0x6f, 0xdb, 0xee, 0x4e, 0x1b, 0x7f, 0xa3, 0x1e, 0xfc, 0xfe, 0xbb, + 0xbc, 0x00, 0x26, 0x0c, 0xeb, 0x0a, 0xfe, 0x94, 0x8b, 0x69, 0xb5, 0x9f, 0x09, 0xbe, 0x3e, 0x40, + 0xfe, 0x5e, 0x0e, 0xf9, 0xa7, 0x89, 0x91, 0x9b, 0x3e, 0xf0, 0x3f, 0x3e, 0x01, 0xf2, 0x75, 0xa3, + 0xeb, 0x22, 0xf8, 0xff, 0x48, 0xa2, 0xc8, 0xdf, 0x04, 0xe6, 0x36, 0xed, 0xe6, 0x6e, 0x17, 0xb5, + 0x78, 0xa5, 0xec, 0x49, 0x1d, 0x05, 0xe6, 0xf2, 0x2d, 0xa0, 0xe8, 0x27, 0xd2, 0x62, 0xfd, 0xed, + 0xf4, 0x7d, 0xe9, 0x38, 0x98, 0x6e, 0xb7, 0x6e, 0x38, 0x6e, 0x6d, 0x13, 0xa7, 0x05, 0xc1, 0x74, + 0xd9, 0x44, 0x0e, 0xfa, 0x42, 0x0c, 0xf4, 0x13, 0xd1, 0xd0, 0x4f, 0x0a, 0x40, 0x2f, 0x97, 0xc0, + 0xe4, 0xa6, 0xd9, 0x46, 0xf8, 0x87, 0x29, 0xfc, 0x43, 0xbf, 0x31, 0x09, 0xf3, 0x3e, 0x18, 0x93, + 0x96, 0xcd, 0x36, 0x52, 0x83, 0xdf, 0xfc, 0x89, 0x0c, 0x08, 0x27, 0x32, 0x6b, 0xc4, 0xbf, 0xd5, + 0x33, 0xbc, 0x2c, 0x63, 0x07, 0xf9, 0x8b, 0x68, 0x16, 0x3d, 0x3d, 0xd2, 0x32, 0x5c, 0x03, 0x83, + 0x31, 0xa3, 0xe2, 0x67, 0xde, 0xbf, 0x43, 0xea, 0xf5, 0xef, 0x78, 0xa9, 0x94, 0xac, 0x47, 0xf4, + 0x89, 0x8d, 0xd0, 0xa8, 0x0b, 0x3e, 0x40, 0xc4, 0x52, 0x0c, 0xde, 0x3d, 0x60, 0x9a, 0x86, 0x83, + 0xdc, 0x3a, 0xeb, 0x51, 0x91, 0x57, 0xf9, 0x44, 0xec, 0x5a, 0xd7, 0xd5, 0x8c, 0x1d, 0x84, 0x2b, + 0x2b, 0x7b, 0xdf, 0xa8, 0xcb, 0xd4, 0xbe, 0xf4, 0xb0, 0xff, 0xcd, 0x8f, 0xba, 0xff, 0xed, 0xd7, + 0xc6, 0xf4, 0xd5, 0xf0, 0x0d, 0x39, 0x20, 0x95, 0x77, 0xdd, 0x27, 0x74, 0xf7, 0xfb, 0x5d, 0x61, + 0x7f, 0x15, 0xda, 0x9f, 0x45, 0x5e, 0x39, 0x3d, 0xa6, 0xde, 0x37, 0xa1, 0x94, 0x88, 0xf9, 0xc5, + 0x44, 0xb5, 0x2d, 0x7d, 0x19, 0x79, 0xbb, 0x14, 0x38, 0x3c, 0xbe, 0x24, 0x73, 0x70, 0xd3, 0x1c, + 0x92, 0xfe, 0x89, 0xe9, 0x19, 0x82, 0x77, 0xbf, 0xe3, 0xc9, 0x71, 0xa1, 0xb7, 0xf0, 0x36, 0x39, + 0x66, 0xe5, 0x8c, 0x4a, 0x5e, 0xe0, 0x6b, 0x85, 0xdd, 0xc0, 0x09, 0xdb, 0x62, 0x5d, 0x02, 0x93, + 0xd9, 0x54, 0x62, 0xd7, 0x0a, 0xc6, 0x54, 0x9b, 0x3e, 0x60, 0x7f, 0x17, 0xbd, 0x64, 0x38, 0x0c, + 0x62, 0xf0, 0x61, 0xe1, 0x6d, 0x25, 0xd2, 0xec, 0x01, 0xeb, 0x85, 0xc9, 0xf8, 0x2d, 0xb6, 0xe9, + 0x14, 0x5b, 0xf1, 0x18, 0x2e, 0xf2, 0x90, 0x40, 0x81, 0x6c, 0x25, 0xc2, 0xb7, 0x66, 0x12, 0xdc, + 0xc7, 0xec, 0xf2, 0xae, 0x80, 0xc1, 0x7b, 0x92, 0x35, 0x07, 0xce, 0x65, 0x30, 0x97, 0xc8, 0x65, + 0x90, 0x3f, 0x57, 0x29, 0xa0, 0x47, 0xa4, 0x8d, 0x29, 0x4f, 0x27, 0x93, 0x68, 0x58, 0x5f, 0x82, + 0xd2, 0xc7, 0xfb, 0x27, 0xf3, 0x60, 0x86, 0x54, 0x7d, 0xde, 0x6c, 0x6d, 0x21, 0x17, 0xbe, 0x3b, + 0xfb, 0xbd, 0x83, 0xba, 0x5c, 0x05, 0x33, 0x97, 0x30, 0xd9, 0x6b, 0xc6, 0x15, 0x7b, 0xd7, 0xa5, + 0x2b, 0x17, 0xb7, 0xc4, 0xae, 0x7b, 0x90, 0x76, 0x2e, 0x90, 0x3f, 0x54, 0xee, 0x7f, 0x8f, 0xc7, + 0x64, 0xc1, 0x9f, 0x38, 0x62, 0x15, 0xb0, 0x91, 0xc5, 0x26, 0xc9, 0x27, 0x41, 0x61, 0xcf, 0x44, + 0x97, 0x2a, 0x2d, 0x6a, 0xdd, 0xd2, 0x37, 0xf8, 0x61, 0xe1, 0xfd, 0x57, 0x16, 0x6e, 0x4a, 0x4b, + 0xba, 0x52, 0x28, 0xb6, 0x0b, 0x3b, 0x90, 0xac, 0x31, 0x9c, 0xf1, 0xe5, 0xaf, 0xed, 0x4b, 0x72, + 0x1d, 0x7c, 0x94, 0xe1, 0x9c, 0xe0, 0x4e, 0x7e, 0xc2, 0x80, 0x11, 0xdf, 0xe8, 0x27, 0x76, 0x78, + 0x7f, 0x40, 0xd5, 0xe9, 0x73, 0xfe, 0x8d, 0x12, 0x98, 0xd2, 0x90, 0xbb, 0x6c, 0xa2, 0x76, 0xab, + 0x0b, 0x9d, 0x83, 0x9b, 0x46, 0x67, 0x41, 0x61, 0x13, 0x17, 0x36, 0xe8, 0xfc, 0x01, 0xcd, 0x06, + 0xdf, 0x90, 0x15, 0xdd, 0xd9, 0xa5, 0xab, 0x6f, 0x3e, 0xb5, 0x23, 0x81, 0x49, 0xcc, 0x33, 0x37, + 0xbe, 0xe6, 0xf4, 0x51, 0x7a, 0x54, 0x02, 0x33, 0xf4, 0x9e, 0xaf, 0x52, 0xdb, 0xdc, 0xb2, 0xe0, + 0xee, 0x08, 0x34, 0x44, 0xbe, 0x0d, 0xe4, 0x0d, 0xaf, 0x34, 0xea, 0xa4, 0x0f, 0xfb, 0x76, 0x9e, + 0xb8, 0x3e, 0x95, 0x64, 0x4c, 0x10, 0xa3, 0x2f, 0x14, 0x6c, 0x9f, 0xe6, 0x31, 0xc6, 0xe8, 0x1b, + 0x58, 0x79, 0xfa, 0x88, 0x7d, 0x45, 0x02, 0xc7, 0x29, 0x01, 0xe7, 0x90, 0xe3, 0x9a, 0x4d, 0xa3, + 0x4d, 0x90, 0x7b, 0x59, 0x66, 0x14, 0xd0, 0xad, 0x82, 0xd9, 0x3d, 0xb6, 0x58, 0x0a, 0xe1, 0x99, + 0xbe, 0x10, 0x72, 0x04, 0xa8, 0xfc, 0x8f, 0x09, 0x62, 0x9d, 0x71, 0x5c, 0xe5, 0xca, 0x1c, 0x63, + 0xac, 0x33, 0x61, 0x22, 0xd2, 0x87, 0xf8, 0x55, 0x39, 0x12, 0xfe, 0x2f, 0xec, 0x3e, 0xff, 0x54, + 0x18, 0xdb, 0x0d, 0x30, 0x8d, 0xb1, 0x24, 0x3f, 0xd2, 0x65, 0x88, 0x18, 0x21, 0x0e, 0xfa, 0x1d, + 0x7a, 0xa7, 0x50, 0xf0, 0xaf, 0xca, 0x96, 0x03, 0xcf, 0x03, 0x10, 0x7e, 0x62, 0x3b, 0xe9, 0x4c, + 0x54, 0x27, 0x9d, 0x15, 0xeb, 0xa4, 0xdf, 0x22, 0x1c, 0xbc, 0xa4, 0x3f, 0xd9, 0x07, 0x17, 0x0f, + 0xb1, 0xb0, 0x15, 0x83, 0x6b, 0x4f, 0x5f, 0x2e, 0x5e, 0x9f, 0xeb, 0xbd, 0xd0, 0xf9, 0x63, 0x23, + 0x99, 0x4f, 0xb1, 0xfd, 0x81, 0xd4, 0xd3, 0x1f, 0x1c, 0xc0, 0x92, 0xbe, 0x19, 0x1c, 0x25, 0x55, + 0x94, 0x03, 0xb2, 0xf2, 0x24, 0x34, 0x43, 0x4f, 0x32, 0x7c, 0x7c, 0x08, 0x21, 0x18, 0x74, 0xdb, + 0x74, 0x5c, 0x27, 0x97, 0xcc, 0xd8, 0x4d, 0x2a, 0x20, 0x87, 0x77, 0x49, 0xf5, 0x37, 0x72, 0xc4, + 0xda, 0xdd, 0xc0, 0xd7, 0x3e, 0xc1, 0x2f, 0xe6, 0x46, 0x31, 0x22, 0xdc, 0x07, 0x72, 0xd8, 0x55, + 0x5d, 0x8a, 0x5c, 0xd2, 0x08, 0xab, 0x0c, 0xef, 0xe4, 0x42, 0x97, 0xdd, 0xd5, 0x23, 0x2a, 0xfe, + 0x53, 0xbe, 0x05, 0x1c, 0xbd, 0x60, 0x34, 0x2f, 0x6e, 0x39, 0xf6, 0x2e, 0xbe, 0x20, 0xc7, 0xa6, + 0x37, 0xed, 0xe0, 0x1b, 0xcb, 0xf8, 0x0f, 0xf2, 0xed, 0xbe, 0xe9, 0x90, 0x1f, 0x64, 0x3a, 0xac, + 0x1e, 0xa1, 0xc6, 0x83, 0xfc, 0x8c, 0xa0, 0xd3, 0x29, 0xc4, 0x76, 0x3a, 0xab, 0x47, 0xfc, 0x6e, + 0x47, 0x5e, 0x02, 0x93, 0x2d, 0x73, 0x0f, 0x6f, 0x55, 0xe3, 0x59, 0xd7, 0xa0, 0xa3, 0xc4, 0x4b, + 0xe6, 0x1e, 0xd9, 0xd8, 0x5e, 0x3d, 0xa2, 0x06, 0x7f, 0xca, 0x2b, 0x60, 0x0a, 0x6f, 0x0b, 0xe0, + 0x62, 0x26, 0x13, 0x1d, 0x13, 0x5e, 0x3d, 0xa2, 0x86, 0xff, 0x7a, 0xd6, 0x47, 0x0e, 0x9f, 0xe1, + 0xb8, 0xd7, 0xdf, 0x6e, 0xcf, 0x24, 0xda, 0x6e, 0xf7, 0x78, 0x41, 0x36, 0xdc, 0x4f, 0x82, 0x7c, + 0x13, 0x73, 0x38, 0x4b, 0x39, 0x4c, 0x5e, 0xe5, 0xbb, 0x41, 0x6e, 0xc7, 0x70, 0xfc, 0xc9, 0xf3, + 0x4d, 0x83, 0xcb, 0x5d, 0x37, 0x9c, 0x8b, 0x1e, 0x82, 0xde, 0x5f, 0x8b, 0x13, 0x20, 0x8f, 0x19, + 0x17, 0x3c, 0xc0, 0xb7, 0xe7, 0x88, 0x19, 0x52, 0xb6, 0x2d, 0x6f, 0xd8, 0xd7, 0x6d, 0xff, 0xa0, + 0xcb, 0x87, 0x33, 0xa3, 0xb1, 0x20, 0xfb, 0xde, 0x80, 0x2c, 0x45, 0xde, 0x80, 0xdc, 0x73, 0x07, + 0x67, 0xae, 0xf7, 0x0e, 0xce, 0x70, 0xf9, 0x20, 0x3f, 0xd8, 0x51, 0xe5, 0x8f, 0x86, 0x30, 0x5d, + 0x7a, 0x19, 0x11, 0x3d, 0x03, 0x6f, 0x9b, 0x16, 0xd3, 0x66, 0xff, 0x35, 0x61, 0xa7, 0x94, 0xd4, + 0xa8, 0x19, 0x40, 0x5e, 0xfa, 0x7d, 0xd3, 0xaf, 0xe5, 0xc0, 0x3c, 0xb9, 0xe9, 0x75, 0x0f, 0xe9, + 0x36, 0x7f, 0x25, 0x1d, 0xfc, 0xd4, 0x48, 0x84, 0xa6, 0xcf, 0x80, 0x23, 0xf5, 0x1d, 0x70, 0xf6, + 0x1d, 0x36, 0xce, 0x0d, 0x38, 0x6c, 0x9c, 0x4f, 0xb6, 0x72, 0xf8, 0xdb, 0xac, 0xfc, 0xd4, 0x79, + 0xf9, 0xb9, 0x2b, 0x02, 0xa0, 0x7e, 0x7c, 0x19, 0x89, 0x7d, 0xf3, 0xce, 0x40, 0x52, 0x34, 0x4e, + 0x52, 0xee, 0x1d, 0x9e, 0x90, 0xf4, 0xa5, 0xe5, 0xb7, 0x72, 0xe0, 0xaa, 0x90, 0x98, 0x2a, 0xba, + 0x44, 0x05, 0xe5, 0xf3, 0x23, 0x11, 0x94, 0xe4, 0xb1, 0x0c, 0xd2, 0x96, 0x98, 0x3f, 0x10, 0x3e, + 0x03, 0xd4, 0x0b, 0x54, 0xc0, 0x9b, 0x08, 0x61, 0x39, 0x09, 0x0a, 0xa4, 0x87, 0xa1, 0xd0, 0xd0, + 0xb7, 0x84, 0xdd, 0x8d, 0xd8, 0xc9, 0x21, 0x51, 0xda, 0xc6, 0x20, 0x3f, 0x74, 0x5d, 0x43, 0xdf, + 0x75, 0xac, 0x8a, 0xe5, 0xda, 0xf0, 0xc7, 0x46, 0x22, 0x38, 0x81, 0x37, 0x9c, 0x34, 0x8c, 0x37, + 0xdc, 0x50, 0xab, 0x1c, 0x7e, 0x0b, 0x0e, 0x65, 0x95, 0x23, 0xa2, 0xf2, 0xf4, 0xf1, 0x7b, 0x87, + 0x44, 0x2e, 0x7f, 0xd7, 0x90, 0xbb, 0xc8, 0x5b, 0x88, 0xf0, 0x81, 0x51, 0x00, 0x79, 0xdc, 0x37, + 0x93, 0xe8, 0xa5, 0x45, 0xf8, 0x85, 0x3f, 0xf1, 0x14, 0x1b, 0x3c, 0x9f, 0x9b, 0x0e, 0xf6, 0x50, + 0x38, 0x12, 0xa4, 0xc4, 0x62, 0xe6, 0x27, 0x20, 0x23, 0x7d, 0xcc, 0x5e, 0x21, 0x81, 0x02, 0xbd, + 0xe1, 0x7b, 0x23, 0x15, 0x87, 0x09, 0x3e, 0x84, 0xae, 0xc0, 0x8e, 0x5c, 0xe2, 0x7b, 0xb0, 0xd3, + 0xdb, 0x8b, 0x3b, 0xa4, 0x8b, 0xae, 0xbf, 0x99, 0x05, 0xd3, 0x1a, 0x72, 0xcb, 0x86, 0xe3, 0x98, + 0xc6, 0xd6, 0xa8, 0x3c, 0xbe, 0x45, 0xbd, 0x87, 0xe1, 0xb7, 0x32, 0xa2, 0xe7, 0x69, 0x82, 0x85, + 0x70, 0x9f, 0xd4, 0x88, 0xd8, 0x7e, 0x62, 0x37, 0x8c, 0x0f, 0x2a, 0x6d, 0x0c, 0x1e, 0xdb, 0x59, + 0x30, 0xe1, 0x9f, 0xa9, 0x3b, 0xcb, 0x9d, 0xb3, 0xdc, 0x76, 0x77, 0xfc, 0x63, 0x30, 0xf8, 0x79, + 0xff, 0x59, 0x2e, 0xf8, 0xba, 0x84, 0x8e, 0xf2, 0xf1, 0x07, 0x02, 0x93, 0xe9, 0x58, 0x12, 0x77, + 0xf8, 0xc3, 0x3a, 0x02, 0xf8, 0x9b, 0x13, 0x74, 0x39, 0x72, 0xcd, 0x70, 0xd1, 0x65, 0xf8, 0xa7, + 0x12, 0x98, 0xd0, 0x90, 0xeb, 0x8d, 0xb7, 0x1e, 0xf9, 0x07, 0x96, 0x70, 0x99, 0x59, 0xf1, 0x98, + 0xa2, 0x6b, 0x18, 0xcf, 0x07, 0x53, 0x1d, 0xc7, 0x6e, 0xa2, 0x6e, 0x97, 0xae, 0x5e, 0xb0, 0x8e, + 0x6a, 0xfd, 0x46, 0x7f, 0x4c, 0xda, 0x42, 0xdd, 0xff, 0x47, 0x0d, 0x7f, 0x4f, 0x6a, 0x06, 0x90, + 0x92, 0x68, 0x03, 0xc7, 0x6d, 0x06, 0xc4, 0x55, 0x9e, 0x3e, 0xd0, 0x9f, 0x95, 0xc0, 0x8c, 0x86, + 0xdc, 0x80, 0x8b, 0x09, 0x36, 0x39, 0xa2, 0xe1, 0xe5, 0xa0, 0x94, 0x0e, 0x06, 0xa5, 0xf8, 0xbd, + 0x6b, 0x3c, 0x37, 0x83, 0xc2, 0xc6, 0x78, 0xef, 0x9a, 0x18, 0x05, 0x63, 0x38, 0xbe, 0xf6, 0x14, + 0x30, 0x85, 0x69, 0xc1, 0x0a, 0xfb, 0x33, 0xb9, 0x50, 0x79, 0xbf, 0x90, 0x92, 0xf2, 0xde, 0x03, + 0xf2, 0xf8, 0x3e, 0x77, 0xac, 0xb8, 0xd3, 0x22, 0x66, 0xfb, 0xba, 0x97, 0x5d, 0x25, 0x7f, 0xf5, + 0xf7, 0xd3, 0xcc, 0x27, 0xf3, 0xd3, 0x7c, 0x53, 0x36, 0xd1, 0x48, 0x48, 0xe6, 0x0e, 0x23, 0x54, + 0xf9, 0x04, 0xe3, 0x66, 0x4c, 0xdd, 0xe9, 0x0b, 0xc7, 0xcb, 0x24, 0x30, 0xe9, 0x8d, 0xdb, 0xd8, + 0x1e, 0x3f, 0x7f, 0x70, 0x71, 0xe8, 0x6f, 0xe8, 0x27, 0xec, 0x81, 0x7d, 0x8e, 0x8c, 0xce, 0xbc, + 0x4f, 0xd0, 0x03, 0xc7, 0x55, 0x9e, 0x3e, 0x1e, 0xef, 0x22, 0x78, 0x60, 0x7d, 0x80, 0x6f, 0x96, + 0x80, 0xb4, 0x82, 0xdc, 0x71, 0x5b, 0x91, 0x8f, 0x0a, 0x87, 0x2a, 0xe2, 0x18, 0x86, 0x69, 0x5e, + 0x58, 0x41, 0xa3, 0x51, 0x20, 0xb1, 0x18, 0x45, 0x42, 0x04, 0xa4, 0x8f, 0xda, 0x7b, 0x09, 0x6a, + 0x64, 0x73, 0xe1, 0x47, 0x47, 0xd0, 0xab, 0x8e, 0x77, 0xe1, 0xc3, 0x67, 0x20, 0x2e, 0xe3, 0xb0, + 0xf4, 0xad, 0x5f, 0xe5, 0x63, 0xb9, 0xe7, 0x0c, 0x78, 0xca, 0xbe, 0x8d, 0x9a, 0x17, 0x51, 0x0b, + 0xfe, 0xd0, 0xc1, 0xa1, 0x9b, 0x07, 0x13, 0x4d, 0x52, 0x1a, 0x06, 0x6f, 0x52, 0xf5, 0x5f, 0x13, + 0x5c, 0xda, 0xcb, 0x77, 0x44, 0xe4, 0xf7, 0x31, 0x5e, 0xda, 0x2b, 0x50, 0xfd, 0x18, 0xcc, 0x16, + 0x32, 0xcb, 0xa8, 0x34, 0x6d, 0x0b, 0xfe, 0xc7, 0x83, 0xc3, 0x72, 0x1d, 0x98, 0x32, 0x9b, 0xb6, + 0x55, 0xd9, 0xf1, 0x83, 0xfb, 0x4d, 0xa9, 0x61, 0x82, 0xff, 0x55, 0xd9, 0xb1, 0x1f, 0x34, 0xe9, + 0xae, 0x79, 0x98, 0x30, 0xac, 0x31, 0xe1, 0x91, 0x7e, 0x58, 0xc6, 0x44, 0x9f, 0xba, 0xd3, 0x87, + 0xec, 0xf1, 0xd0, 0xbb, 0x8d, 0x74, 0x85, 0x4f, 0x88, 0x55, 0xe0, 0x61, 0x86, 0x33, 0xb6, 0x15, + 0x87, 0x32, 0x9c, 0xc5, 0x10, 0x30, 0x86, 0xfb, 0x45, 0x42, 0x1c, 0x53, 0x5f, 0x03, 0x3e, 0x00, + 0x3a, 0xa3, 0x33, 0x0f, 0x87, 0x44, 0xe7, 0x70, 0x4c, 0xc4, 0x0f, 0xd1, 0x50, 0x97, 0xd4, 0xe2, + 0x81, 0xff, 0x69, 0x14, 0xe0, 0xdc, 0x35, 0x8c, 0xbf, 0x02, 0xf1, 0x56, 0x48, 0x70, 0xdd, 0xf0, + 0x3e, 0x0e, 0x7a, 0xa5, 0x8c, 0xf1, 0x22, 0x6e, 0x91, 0xfa, 0xd3, 0x07, 0xf0, 0xa7, 0x25, 0x30, + 0x87, 0x7d, 0x04, 0xda, 0xc8, 0x70, 0x48, 0x47, 0x39, 0x12, 0x47, 0xf9, 0x77, 0x09, 0x07, 0xf8, + 0xe1, 0xf9, 0x10, 0xd2, 0x31, 0x12, 0x28, 0xc4, 0xa2, 0xfb, 0x08, 0x92, 0x30, 0x96, 0x6d, 0x94, + 0x62, 0x40, 0x02, 0x15, 0xf1, 0xd1, 0xe0, 0x91, 0xd0, 0x23, 0x97, 0x67, 0x86, 0xaf, 0x6c, 0x63, + 0xf6, 0xc8, 0x15, 0x21, 0x22, 0x7d, 0x4c, 0xde, 0x7c, 0x1b, 0x5d, 0x70, 0xd6, 0xf1, 0x6d, 0xdc, + 0x0f, 0xe7, 0x82, 0x13, 0x6d, 0x9f, 0x1d, 0x89, 0x07, 0xe6, 0x01, 0x02, 0xdb, 0xcb, 0x20, 0xe7, + 0xd8, 0x97, 0xc8, 0xd2, 0xd6, 0xac, 0x8a, 0x9f, 0xb1, 0xc9, 0x6f, 0xb7, 0x77, 0x77, 0x2c, 0x72, + 0x32, 0x74, 0x56, 0xf5, 0x5f, 0xe5, 0x1b, 0xc1, 0xec, 0x25, 0xd3, 0xdd, 0x5e, 0x45, 0x46, 0x0b, + 0x39, 0xaa, 0x7d, 0x09, 0x7b, 0xcc, 0x4d, 0xaa, 0x7c, 0x22, 0xef, 0xbf, 0x22, 0x60, 0x5f, 0xe2, + 0x2b, 0xba, 0xc7, 0x72, 0xfc, 0x2d, 0x89, 0xe5, 0x19, 0x4d, 0x55, 0xfa, 0x02, 0xf3, 0x7e, 0x09, + 0x4c, 0xa9, 0xf6, 0x25, 0x2a, 0x24, 0xff, 0xf7, 0xe1, 0xca, 0x48, 0xe2, 0x89, 0x1e, 0xb9, 0x72, + 0xdd, 0x27, 0x7f, 0xec, 0x13, 0xbd, 0xd8, 0xea, 0xc7, 0x72, 0x72, 0x69, 0x46, 0xb5, 0x2f, 0x69, + 0xc8, 0x25, 0x1a, 0x01, 0x1b, 0x23, 0x72, 0xb2, 0x36, 0xbb, 0xa4, 0x40, 0x3a, 0x0f, 0x0f, 0xde, + 0x93, 0xee, 0x22, 0x04, 0x0c, 0x0a, 0x48, 0x1c, 0xf7, 0x2e, 0xc2, 0x40, 0x0a, 0xc6, 0x10, 0x23, + 0x45, 0x02, 0xd3, 0xaa, 0x7d, 0xc9, 0x1b, 0x1a, 0x96, 0xcd, 0x76, 0x7b, 0x34, 0x23, 0x64, 0x52, + 0xe3, 0xdf, 0x67, 0x83, 0x4f, 0xc5, 0xd8, 0x8d, 0xff, 0x01, 0x04, 0xa4, 0x0f, 0xc3, 0x4b, 0x89, + 0xb2, 0xf8, 0x23, 0xb4, 0x35, 0x1a, 0x1c, 0x86, 0x55, 0x88, 0x80, 0x8c, 0x43, 0x53, 0x88, 0x28, + 0x0a, 0xc6, 0xb2, 0x73, 0x32, 0x57, 0xc6, 0xc3, 0xfc, 0x68, 0x75, 0xe2, 0xb1, 0x64, 0xae, 0x89, + 0x74, 0xd8, 0xe5, 0x08, 0x19, 0x09, 0x1a, 0x09, 0x5c, 0x10, 0x05, 0x68, 0x48, 0x1f, 0x8f, 0x8f, + 0x48, 0x60, 0x86, 0x90, 0xf0, 0x04, 0xb1, 0x02, 0x86, 0x52, 0x2a, 0xb6, 0x05, 0x87, 0xa3, 0x54, + 0x31, 0x14, 0x8c, 0xe5, 0x96, 0x4e, 0xcf, 0x8e, 0x1b, 0xe2, 0xf8, 0x78, 0x14, 0x82, 0x43, 0x1b, + 0x63, 0x23, 0x3c, 0x42, 0x3e, 0x8c, 0x31, 0x76, 0x48, 0xc7, 0xc8, 0x5f, 0x1a, 0x68, 0xd1, 0x28, + 0x31, 0x38, 0x80, 0x2a, 0x8c, 0x10, 0x86, 0x21, 0x55, 0xe1, 0x90, 0x90, 0xf8, 0xaa, 0x04, 0x00, + 0x21, 0x60, 0xdd, 0xde, 0xc3, 0x97, 0xf2, 0x8c, 0xa0, 0x3b, 0xeb, 0x75, 0xab, 0x97, 0x06, 0xb8, + 0xd5, 0x27, 0x0c, 0xe1, 0x92, 0x74, 0x25, 0x90, 0xe1, 0xb2, 0xd7, 0xc8, 0xb1, 0xaf, 0x04, 0xc6, + 0xd7, 0x9f, 0x3e, 0xc6, 0x5f, 0x26, 0xd6, 0x5c, 0x78, 0xc0, 0xf4, 0x17, 0x47, 0x82, 0x32, 0x33, + 0xfb, 0x97, 0xf8, 0xd9, 0xff, 0x01, 0xb0, 0x1d, 0xd6, 0x46, 0x1c, 0x74, 0x70, 0x34, 0x7d, 0x1b, + 0xf1, 0xf0, 0x0e, 0x88, 0xfe, 0x68, 0x0e, 0x1c, 0xa5, 0x9d, 0xc8, 0xf7, 0x02, 0xc4, 0x09, 0xcf, + 0xe1, 0x71, 0x9d, 0xe4, 0x00, 0x94, 0x47, 0xb5, 0x20, 0x95, 0x64, 0x29, 0x53, 0x80, 0xbc, 0xb1, + 0xac, 0x6e, 0x14, 0x94, 0xcb, 0x1d, 0xc3, 0x6a, 0x89, 0x87, 0xfb, 0x1d, 0x00, 0xbc, 0xbf, 0xd6, + 0x28, 0xf1, 0x6b, 0x8d, 0x7d, 0x56, 0x26, 0x13, 0xef, 0x5c, 0x63, 0x96, 0x11, 0x72, 0xc7, 0xbe, + 0x73, 0x1d, 0x5d, 0x77, 0xfa, 0x28, 0x3d, 0x26, 0x81, 0x9c, 0x66, 0x3b, 0x2e, 0x7c, 0x28, 0x89, + 0x76, 0x12, 0xce, 0x87, 0x20, 0xf9, 0xef, 0x72, 0x99, 0xbb, 0x35, 0xf9, 0x6c, 0xfc, 0x51, 0x67, + 0xc3, 0x35, 0xb0, 0x57, 0xb7, 0x57, 0x3f, 0x73, 0x7d, 0x72, 0xd2, 0x78, 0x3a, 0x84, 0x7f, 0x5a, + 0xf4, 0x01, 0x8c, 0xd4, 0xe2, 0xe9, 0x44, 0xd6, 0x9c, 0x3e, 0x6e, 0xff, 0x7d, 0x8e, 0xfa, 0xb6, + 0x2e, 0x9b, 0x6d, 0x04, 0x1f, 0x22, 0x2e, 0x23, 0x55, 0x63, 0x07, 0x89, 0x1f, 0x89, 0x89, 0x75, + 0x6d, 0xc5, 0xf1, 0x65, 0xa5, 0x30, 0xbe, 0x6c, 0x52, 0x85, 0x22, 0x07, 0xd0, 0x09, 0x49, 0xe3, + 0x56, 0xa8, 0x98, 0xba, 0xc7, 0x12, 0xa7, 0xf3, 0x98, 0x86, 0x5c, 0x62, 0x54, 0xd6, 0xfc, 0x1b, + 0x58, 0x7e, 0x78, 0x24, 0x11, 0x3b, 0x83, 0x0b, 0x5e, 0xa4, 0x9e, 0x0b, 0x5e, 0xde, 0xcf, 0x82, + 0xb3, 0xce, 0x83, 0xf3, 0xec, 0x68, 0x06, 0xf1, 0x44, 0x8e, 0x04, 0xa6, 0x47, 0x03, 0x98, 0xea, + 0x1c, 0x4c, 0x77, 0x0f, 0x49, 0x45, 0xfa, 0x80, 0x7d, 0xc1, 0x33, 0x55, 0xf0, 0xa4, 0xbf, 0x64, + 0xb5, 0x68, 0x84, 0xd5, 0x7f, 0x38, 0xec, 0xcd, 0xb6, 0xfd, 0x21, 0x58, 0xb9, 0x58, 0xce, 0xf9, + 0xde, 0xdb, 0xea, 0x17, 0x49, 0x38, 0x57, 0xaf, 0x13, 0xc5, 0x3b, 0x6d, 0xe2, 0x37, 0xd6, 0x07, + 0xff, 0xc1, 0x3f, 0x4c, 0xb6, 0xfe, 0x86, 0x8b, 0xe8, 0x61, 0x5c, 0xca, 0x36, 0x50, 0x82, 0x95, + 0x39, 0x01, 0xea, 0xfe, 0x7d, 0xb8, 0x85, 0x85, 0x91, 0x40, 0x86, 0x74, 0x0b, 0xc3, 0x05, 0x1c, + 0xa6, 0x5b, 0xd8, 0x20, 0x02, 0xc6, 0x70, 0xcb, 0x7c, 0x9e, 0xee, 0xca, 0x63, 0x9f, 0x49, 0xf8, + 0xe7, 0xd9, 0xd4, 0x47, 0xdb, 0x6f, 0x67, 0x12, 0xf9, 0x31, 0x63, 0xba, 0xe2, 0x87, 0xdb, 0x24, + 0x9e, 0xc9, 0x71, 0xc5, 0x8d, 0x61, 0xfd, 0x27, 0x8b, 0x7d, 0xca, 0xcf, 0x9b, 0x2d, 0x77, 0x7b, + 0x44, 0x27, 0x33, 0x2e, 0x79, 0x65, 0xf9, 0xd7, 0x15, 0xe3, 0x17, 0xf8, 0x2f, 0x99, 0x44, 0xa1, + 0xa0, 0x02, 0x96, 0x60, 0xb2, 0x22, 0x58, 0x9c, 0x20, 0x80, 0x53, 0x6c, 0x79, 0x63, 0x94, 0xe8, + 0x73, 0x66, 0x0b, 0xd9, 0x4f, 0x40, 0x89, 0xc6, 0x74, 0x8d, 0x4e, 0xa2, 0xe3, 0x8a, 0xfb, 0x77, + 0x2a, 0xd1, 0x01, 0x4b, 0x46, 0x24, 0xd1, 0xb1, 0xe5, 0xa5, 0xcf, 0xe3, 0xd7, 0xcd, 0xd0, 0x09, + 0xd1, 0x9a, 0x69, 0x5d, 0x84, 0xff, 0x58, 0xf0, 0x2f, 0x4a, 0x3e, 0x6f, 0xba, 0xdb, 0x34, 0xa6, + 0xcb, 0x6f, 0x09, 0xdf, 0x71, 0x32, 0x44, 0xdc, 0x16, 0x3e, 0x2c, 0x54, 0x7e, 0x5f, 0x58, 0xa8, + 0x12, 0x98, 0x35, 0x2d, 0x17, 0x39, 0x96, 0xd1, 0x5e, 0x6e, 0x1b, 0x5b, 0xdd, 0xf9, 0x89, 0xbe, + 0x97, 0xd0, 0x55, 0x98, 0x3c, 0x2a, 0xff, 0x07, 0x7b, 0x9d, 0xe4, 0x24, 0x7f, 0x2d, 0x7e, 0x44, + 0x14, 0xab, 0xa9, 0xe8, 0x28, 0x56, 0x41, 0x94, 0x2a, 0x30, 0x38, 0xc8, 0xb5, 0xa8, 0x8d, 0x9b, + 0x30, 0x6c, 0xdf, 0x59, 0xc1, 0x68, 0x6a, 0x41, 0x08, 0xc7, 0x5f, 0x96, 0x12, 0xad, 0xd2, 0x79, + 0x82, 0xb0, 0xd0, 0x2b, 0x04, 0x89, 0x2d, 0x54, 0xb6, 0xf1, 0x52, 0x4f, 0xe3, 0x03, 0x93, 0x27, + 0x27, 0x60, 0xf2, 0xb0, 0x42, 0x95, 0x17, 0x13, 0xaa, 0x24, 0x8b, 0x7e, 0x22, 0xad, 0x1d, 0xc3, + 0xa9, 0xa2, 0x3c, 0x38, 0xe6, 0x47, 0xad, 0xed, 0x74, 0x90, 0xe1, 0x18, 0x56, 0x13, 0xc1, 0xc7, + 0xb3, 0xa3, 0x30, 0x7b, 0x97, 0xc1, 0xa4, 0xd9, 0xb4, 0x2d, 0xcd, 0x7c, 0xa1, 0x7f, 0x49, 0x5c, + 0x7c, 0xb0, 0x74, 0xcc, 0x91, 0x0a, 0xfd, 0x43, 0x0d, 0xfe, 0x95, 0x2b, 0x60, 0xaa, 0x69, 0x38, + 0x2d, 0x12, 0x4c, 0x2f, 0xdf, 0x73, 0x21, 0x53, 0x64, 0x41, 0x65, 0xff, 0x17, 0x35, 0xfc, 0x5b, + 0xae, 0xf1, 0x4c, 0x2c, 0xf4, 0x44, 0xe5, 0x88, 0x2c, 0x6c, 0x29, 0xfc, 0x89, 0xe3, 0xb9, 0xc7, + 0x1d, 0x07, 0xb5, 0xf1, 0x9d, 0xf0, 0xa4, 0x87, 0x98, 0x52, 0xc3, 0x84, 0xa4, 0xd3, 0x7c, 0x5c, + 0xd5, 0x3e, 0x34, 0xc6, 0x3d, 0xcd, 0x17, 0xa2, 0x22, 0x7d, 0xc9, 0x7c, 0x67, 0x01, 0xcc, 0x92, + 0x5e, 0x8d, 0xb2, 0x13, 0xfe, 0x34, 0xbe, 0xd2, 0xd9, 0xbd, 0x1f, 0x5d, 0x81, 0xda, 0xc1, 0xc7, + 0xe4, 0x22, 0x90, 0x2e, 0x06, 0x81, 0x03, 0xbd, 0xc7, 0xa4, 0xfb, 0xef, 0x3e, 0x5d, 0x0b, 0x84, + 0xa6, 0x71, 0xef, 0xbf, 0xc7, 0x57, 0x9f, 0x3e, 0x3e, 0x3f, 0x27, 0x01, 0xa9, 0xd4, 0x6a, 0xc1, + 0xe6, 0xc1, 0xa1, 0x38, 0x0d, 0xa6, 0x7d, 0x9d, 0x09, 0x63, 0x39, 0xb2, 0x49, 0x49, 0x17, 0x33, + 0x03, 0xde, 0x94, 0x5a, 0x63, 0xdf, 0x1d, 0x88, 0xa9, 0x3b, 0x7d, 0x50, 0x7e, 0x71, 0x82, 0x2a, + 0xcd, 0xa2, 0x6d, 0x5f, 0xc4, 0x47, 0x5e, 0x1e, 0x92, 0x40, 0x7e, 0x19, 0xb9, 0xcd, 0xed, 0x11, + 0xe9, 0xcc, 0xae, 0xd3, 0xf6, 0x75, 0x66, 0xdf, 0xfd, 0xf4, 0x83, 0x6d, 0x58, 0x9f, 0xac, 0x05, + 0x4c, 0xd2, 0xb8, 0xa3, 0x34, 0xc7, 0xd6, 0x9e, 0x3e, 0x38, 0xff, 0x22, 0x81, 0xb9, 0x60, 0x85, + 0x8b, 0x60, 0xf2, 0xb3, 0x4f, 0xb8, 0x75, 0x4b, 0xf8, 0xf9, 0x64, 0xa1, 0xce, 0x02, 0x9e, 0xf2, + 0x2d, 0x4b, 0x79, 0x61, 0x31, 0x41, 0x10, 0x34, 0x31, 0x02, 0xc7, 0x30, 0x83, 0x97, 0xc0, 0x24, + 0x26, 0x68, 0xc9, 0xdc, 0xc3, 0x2e, 0x80, 0xdc, 0x42, 0xe3, 0x8b, 0x46, 0xb2, 0xd0, 0x78, 0x37, + 0xbf, 0xd0, 0x28, 0x18, 0xb9, 0xd8, 0x5f, 0x67, 0x4c, 0xe8, 0x13, 0xe3, 0xfd, 0x3f, 0xf2, 0x65, + 0xc6, 0x04, 0x3e, 0x31, 0x03, 0xea, 0x4f, 0x1f, 0xd1, 0x4f, 0x35, 0x68, 0x67, 0xeb, 0x6f, 0x8c, + 0xc2, 0xff, 0x7e, 0x0c, 0xe4, 0xce, 0x79, 0x0f, 0xff, 0x3b, 0xbc, 0xd9, 0xea, 0xd5, 0x23, 0x08, + 0xb2, 0xf0, 0x3c, 0x90, 0xf3, 0xca, 0xa7, 0xd3, 0x96, 0x5b, 0xc4, 0x76, 0x69, 0x3d, 0x42, 0x54, + 0xfc, 0x9f, 0x7c, 0x12, 0x14, 0xba, 0xf6, 0xae, 0xd3, 0xf4, 0xcc, 0x67, 0x4f, 0x62, 0xe8, 0x5b, + 0xd2, 0xe0, 0xa2, 0x5c, 0xd1, 0x0b, 0xa3, 0x73, 0xfd, 0x64, 0x2e, 0x3a, 0x92, 0xb8, 0x8b, 0x8e, + 0x12, 0xec, 0x1f, 0x08, 0xd0, 0x96, 0xbe, 0x44, 0xfc, 0x39, 0xbe, 0xf3, 0xaf, 0x35, 0x2a, 0xd8, + 0x23, 0xd8, 0x72, 0x50, 0x71, 0x48, 0xea, 0xb8, 0xcd, 0xb3, 0x36, 0x88, 0xe7, 0x3e, 0x56, 0xc7, + 0x6d, 0x01, 0x1a, 0xc6, 0x72, 0xda, 0xbc, 0x40, 0x9d, 0x4d, 0x1f, 0x18, 0x25, 0xba, 0x39, 0x4e, + 0xe8, 0x0f, 0x84, 0xce, 0x08, 0x9d, 0x50, 0x87, 0x46, 0xe7, 0x90, 0xdc, 0x50, 0x7f, 0x57, 0xc2, + 0x11, 0x2d, 0x7d, 0x23, 0x47, 0xfc, 0xc2, 0xa2, 0xc4, 0x10, 0x79, 0x63, 0x30, 0x17, 0xcf, 0x79, + 0x76, 0xf8, 0x10, 0xdf, 0x3c, 0xeb, 0x18, 0xfa, 0xc7, 0x1d, 0xe2, 0x5b, 0x94, 0x90, 0xf4, 0x81, + 0xfc, 0x15, 0x72, 0x41, 0x58, 0xa9, 0xe9, 0x9a, 0x7b, 0x23, 0xd6, 0x34, 0x7e, 0x78, 0x49, 0x18, + 0xd5, 0x77, 0x1f, 0x87, 0x08, 0x85, 0xe3, 0x8e, 0xea, 0x2b, 0x46, 0xc6, 0x18, 0x8e, 0xa3, 0x03, + 0x8f, 0x7b, 0x74, 0x6d, 0xe6, 0xcd, 0x74, 0x35, 0x00, 0x1d, 0x1c, 0xad, 0x33, 0x60, 0x86, 0x99, + 0xfa, 0xfb, 0x17, 0xcf, 0x70, 0x69, 0x49, 0x0f, 0xac, 0x07, 0x2c, 0x1b, 0xf9, 0xc2, 0x40, 0x82, + 0x05, 0x5f, 0x11, 0x22, 0xc6, 0x72, 0xaf, 0x9b, 0x3f, 0x86, 0x8d, 0x09, 0xab, 0xdf, 0x62, 0xb1, + 0xaa, 0xf1, 0x58, 0xdd, 0x29, 0xc2, 0x26, 0xb1, 0x31, 0x4d, 0x68, 0xde, 0xf8, 0x8e, 0x00, 0x2e, + 0x95, 0x83, 0xeb, 0x79, 0x43, 0xd3, 0x91, 0x3e, 0x62, 0x6f, 0x91, 0xc8, 0xe5, 0x4e, 0xa5, 0x3d, + 0xc3, 0x6c, 0xe3, 0x28, 0x03, 0x23, 0xb8, 0x9c, 0xf8, 0x8f, 0x59, 0x50, 0xce, 0xf1, 0xa0, 0xdc, + 0x27, 0xc2, 0x0c, 0x8e, 0xa2, 0x08, 0x6c, 0x9e, 0xc5, 0x2e, 0x8e, 0x93, 0x10, 0xc3, 0x57, 0xf7, + 0x86, 0xf3, 0xa3, 0xdf, 0xd9, 0x55, 0xf3, 0xf7, 0x05, 0x20, 0x3d, 0xc0, 0x81, 0xa4, 0x1c, 0x94, + 0xae, 0xf4, 0xb1, 0x7a, 0x0d, 0x19, 0xba, 0x34, 0x32, 0xbd, 0x1a, 0xcd, 0xd0, 0x45, 0x67, 0x6e, + 0x12, 0x37, 0x73, 0x4b, 0x78, 0xc6, 0x21, 0x74, 0xdd, 0xf5, 0x89, 0x1b, 0xa4, 0x4e, 0xb9, 0x11, + 0x9f, 0x71, 0x18, 0x48, 0x41, 0xfa, 0xe0, 0xfc, 0xbd, 0x04, 0xc0, 0x8a, 0x63, 0xef, 0x76, 0x6a, + 0x4e, 0x0b, 0x39, 0xf0, 0x2f, 0xc3, 0xc9, 0xda, 0x2b, 0x47, 0x30, 0x59, 0xab, 0x03, 0xb0, 0x15, + 0x14, 0x4e, 0x7b, 0xa3, 0xdb, 0xc4, 0xa6, 0x66, 0x21, 0x51, 0x2a, 0x53, 0x06, 0x7f, 0xcd, 0xef, + 0x0f, 0xf0, 0x18, 0xc7, 0x8d, 0x2f, 0x61, 0x71, 0xa3, 0x9c, 0xac, 0xbd, 0x2b, 0xc0, 0x5a, 0xe7, + 0xb0, 0xbe, 0xef, 0x00, 0x94, 0xa4, 0x8f, 0xf9, 0x3f, 0x4c, 0x80, 0x69, 0xb2, 0xb5, 0x4a, 0x78, + 0xfa, 0x37, 0x21, 0xe8, 0xbf, 0x38, 0x02, 0xd0, 0x37, 0xc0, 0x8c, 0x1d, 0x96, 0x4e, 0xc6, 0x3f, + 0x76, 0xb1, 0x2c, 0x16, 0x76, 0x86, 0x2e, 0x95, 0x2b, 0x06, 0x7e, 0x94, 0x45, 0x5e, 0xe5, 0x91, + 0xbf, 0x3b, 0x86, 0xdf, 0x4c, 0x89, 0xa3, 0x84, 0xfe, 0xdd, 0x01, 0xf4, 0x1b, 0x1c, 0xf4, 0xa5, + 0x83, 0x90, 0x32, 0x86, 0x2b, 0x0e, 0x24, 0x90, 0xc3, 0x27, 0x12, 0x7f, 0x2d, 0xc5, 0xb5, 0x98, + 0x79, 0x30, 0x81, 0x55, 0x36, 0x98, 0x23, 0xfa, 0xaf, 0xde, 0x17, 0x63, 0xd3, 0x45, 0x4e, 0xe0, + 0x5d, 0xe2, 0xbf, 0x7a, 0x34, 0xf8, 0x9e, 0xe0, 0xdd, 0xf9, 0x02, 0xd9, 0x34, 0x0e, 0x12, 0x86, + 0x9e, 0x40, 0xb2, 0x1c, 0x1f, 0xd9, 0x19, 0xc5, 0x61, 0x26, 0x90, 0x03, 0x08, 0x49, 0x1f, 0xf8, + 0x2f, 0xe6, 0xc0, 0x3c, 0x59, 0x01, 0x5c, 0x76, 0xec, 0x9d, 0x9e, 0x1b, 0xc5, 0xcc, 0x83, 0xcb, + 0xc2, 0x4d, 0x60, 0xce, 0xe5, 0x7c, 0xe0, 0xa9, 0x4c, 0xf4, 0xa4, 0xc2, 0x3f, 0x62, 0xfd, 0x5f, + 0x5e, 0xc0, 0x23, 0xb9, 0x18, 0xc3, 0xc0, 0x28, 0xda, 0x13, 0x6f, 0xaa, 0x08, 0x12, 0xca, 0x2c, + 0x28, 0x4a, 0x43, 0xad, 0x2f, 0x07, 0x32, 0x95, 0x17, 0x91, 0xa9, 0x0f, 0x04, 0x32, 0xf5, 0x43, + 0x9c, 0x4c, 0xad, 0x1c, 0x9c, 0x25, 0xe9, 0xcb, 0xd6, 0xc3, 0xc1, 0x26, 0x5e, 0xb0, 0xc5, 0xba, + 0x93, 0xc2, 0xc6, 0x2a, 0xeb, 0x3b, 0x96, 0xe3, 0x7c, 0xc7, 0xf8, 0x3b, 0x40, 0x12, 0xac, 0x5a, + 0xf0, 0x54, 0x47, 0xc8, 0xd2, 0x1c, 0xc8, 0x9a, 0x3e, 0x75, 0x59, 0xb3, 0x35, 0xd4, 0xba, 0x44, + 0x6c, 0x45, 0x63, 0x58, 0x07, 0x9c, 0x03, 0x85, 0x65, 0xb3, 0xed, 0x22, 0x07, 0x7e, 0x99, 0xae, + 0x4a, 0x3c, 0x9c, 0xe2, 0x00, 0xb0, 0x04, 0x0a, 0x9b, 0xb8, 0x36, 0x6a, 0x32, 0xdf, 0x2a, 0xa6, + 0x3d, 0x84, 0x42, 0x95, 0xfe, 0x9b, 0x34, 0x22, 0x62, 0x4f, 0x31, 0x23, 0x5b, 0xce, 0x48, 0x10, + 0x11, 0x71, 0x30, 0x09, 0x63, 0xb9, 0x0c, 0xac, 0xa0, 0xa2, 0x1d, 0x6f, 0x8c, 0xbf, 0x98, 0x1e, + 0xc2, 0x45, 0x20, 0x99, 0xad, 0x2e, 0xee, 0x1c, 0xa7, 0x54, 0xef, 0x31, 0xa9, 0x5f, 0x57, 0x2f, + 0xab, 0x08, 0xc9, 0xe3, 0xf6, 0xeb, 0x12, 0xa2, 0x22, 0x7d, 0xcc, 0xbe, 0x8d, 0x9d, 0x7a, 0x3b, + 0x6d, 0xa3, 0x89, 0x3c, 0xea, 0x53, 0x43, 0x8d, 0xf4, 0x64, 0x39, 0xbf, 0x27, 0x63, 0xf4, 0x34, + 0x7f, 0x00, 0x3d, 0x1d, 0x76, 0xc9, 0x38, 0xe0, 0x39, 0x6e, 0xf8, 0xa1, 0x2d, 0x19, 0xc7, 0x92, + 0x31, 0x86, 0xab, 0x5e, 0xfd, 0xc3, 0xcb, 0x63, 0xd5, 0xd6, 0x61, 0x37, 0xd4, 0x28, 0xb3, 0x46, + 0x76, 0x50, 0x79, 0x98, 0x0d, 0xb5, 0x68, 0x1a, 0xc6, 0x80, 0xd6, 0x1c, 0x45, 0xeb, 0x73, 0x74, + 0x18, 0x4d, 0x79, 0x4f, 0xbb, 0x6b, 0x3b, 0x6e, 0xb2, 0x3d, 0x6d, 0x8f, 0x3a, 0x15, 0xff, 0x97, + 0xf4, 0x90, 0x1c, 0x7f, 0x96, 0x7d, 0x54, 0xc3, 0x67, 0x82, 0x43, 0x72, 0x83, 0x08, 0x48, 0x1f, + 0xde, 0xb7, 0x1d, 0xd2, 0xe0, 0x39, 0xac, 0x3a, 0x52, 0x1d, 0x18, 0xd9, 0xd0, 0x39, 0x8c, 0x3a, + 0x46, 0xd3, 0x90, 0x3e, 0x5e, 0x7f, 0xc7, 0x0c, 0x9c, 0x6f, 0x19, 0xe3, 0xc0, 0xe9, 0x6b, 0x66, + 0x7e, 0x48, 0xcd, 0x1c, 0x76, 0xaf, 0x8e, 0xf2, 0x7a, 0x74, 0x03, 0xe6, 0x30, 0x7b, 0x75, 0x31, + 0x44, 0xa4, 0x8f, 0xf8, 0x5b, 0x25, 0x90, 0xd7, 0xc6, 0x3f, 0x5e, 0x0e, 0x3b, 0x17, 0xc1, 0xbc, + 0xd2, 0x46, 0x36, 0x5c, 0x0e, 0x33, 0x17, 0x89, 0x24, 0x61, 0x0c, 0x97, 0x1d, 0x1c, 0x05, 0x33, + 0x78, 0x49, 0xc4, 0xdf, 0x12, 0xff, 0x3b, 0x3a, 0x6a, 0xbe, 0x29, 0x45, 0x5d, 0x7d, 0x3e, 0x98, + 0xf4, 0xf7, 0xcd, 0xe8, 0xc8, 0xb9, 0x20, 0xa6, 0x9f, 0xc1, 0xbe, 0x5b, 0xf0, 0xff, 0x81, 0x1c, + 0x57, 0x46, 0xbe, 0xaf, 0x3e, 0xac, 0xe3, 0xca, 0xa1, 0xee, 0xad, 0xff, 0x61, 0x38, 0xa2, 0xfe, + 0xc7, 0xf4, 0x30, 0xef, 0xdd, 0x73, 0xcf, 0xf5, 0xd9, 0x73, 0x7f, 0x9c, 0xc5, 0x52, 0xe3, 0xb1, + 0xbc, 0x47, 0x94, 0x85, 0x23, 0x1c, 0x6b, 0x1f, 0x0b, 0xe0, 0x3c, 0xc7, 0xc1, 0xb9, 0x78, 0x20, + 0x5a, 0xc6, 0x70, 0x48, 0x35, 0x17, 0x8e, 0xb9, 0x1f, 0x4f, 0x51, 0x8f, 0x7b, 0x4e, 0xc0, 0xe4, + 0xf6, 0x9d, 0x80, 0xe1, 0x34, 0x3d, 0x7f, 0x40, 0x4d, 0xff, 0x38, 0x2b, 0x1d, 0x3a, 0x2f, 0x1d, + 0xcf, 0x13, 0x47, 0x64, 0x74, 0x23, 0xf3, 0x7b, 0x02, 0xf1, 0x38, 0xcf, 0x89, 0x47, 0xf9, 0x60, + 0xc4, 0xa4, 0x2f, 0x1f, 0xbf, 0xe7, 0x4f, 0x68, 0x0f, 0x59, 0xdf, 0x87, 0xdd, 0x2a, 0xe6, 0x98, + 0x38, 0xb2, 0x91, 0x7b, 0x98, 0xad, 0xe2, 0x41, 0x94, 0x8c, 0x21, 0xfe, 0xdd, 0x2c, 0x98, 0xc6, + 0x34, 0x9d, 0x37, 0x5b, 0x5b, 0xc8, 0x85, 0xbf, 0x4c, 0xfc, 0x49, 0xfd, 0x68, 0xa3, 0x23, 0x0a, + 0x09, 0x15, 0x75, 0x36, 0x39, 0xa9, 0x47, 0x07, 0x21, 0x72, 0x81, 0x21, 0x70, 0xdc, 0x51, 0x2b, + 0x07, 0x52, 0x90, 0x3e, 0x64, 0x1f, 0x25, 0xee, 0x36, 0x6b, 0xc6, 0x15, 0x7b, 0xd7, 0x85, 0x2f, + 0x19, 0x41, 0x07, 0xbd, 0x08, 0x0a, 0x6d, 0x5c, 0x1a, 0x3d, 0x42, 0x13, 0x3f, 0xdd, 0xa1, 0x2c, + 0x20, 0xf5, 0xab, 0xf4, 0xcf, 0xa4, 0xe7, 0x68, 0x42, 0x3e, 0x92, 0x72, 0xc6, 0x7d, 0x8e, 0x66, + 0x40, 0xfd, 0x63, 0xb9, 0xd7, 0x68, 0xd2, 0xab, 0xdd, 0xdc, 0x31, 0xdd, 0x11, 0x45, 0xdb, 0x68, + 0x7b, 0x65, 0xf9, 0xd1, 0x36, 0xf0, 0x4b, 0xd2, 0xd3, 0xbd, 0x0c, 0x57, 0xbc, 0xdf, 0xc7, 0x7d, + 0xba, 0x37, 0xbe, 0xfa, 0xf4, 0x31, 0xf9, 0x2f, 0x44, 0xb3, 0xce, 0x11, 0x47, 0xe9, 0x14, 0x7d, + 0xb0, 0x87, 0x56, 0x16, 0x42, 0xda, 0xe1, 0x29, 0x4b, 0xdf, 0xfa, 0xd3, 0x07, 0xe6, 0x83, 0xa7, + 0x40, 0x7e, 0x09, 0x5d, 0xd8, 0xdd, 0x82, 0x77, 0x83, 0x49, 0xdd, 0x41, 0xa8, 0x62, 0x6d, 0xda, + 0x1e, 0x77, 0x5d, 0xef, 0xd9, 0x87, 0x84, 0xbe, 0x79, 0x78, 0x6c, 0x23, 0xa3, 0x15, 0x9e, 0x15, + 0xf4, 0x5f, 0xe1, 0xab, 0xb3, 0x20, 0xa7, 0xb9, 0x86, 0x0b, 0xa7, 0x02, 0x6c, 0xe1, 0x4b, 0x58, + 0x2c, 0xee, 0xe6, 0xb1, 0xb8, 0x89, 0xe3, 0x05, 0xa6, 0x60, 0xc1, 0xfb, 0x3f, 0x02, 0x00, 0x08, + 0x26, 0x1f, 0xec, 0xda, 0x96, 0x97, 0xc3, 0x3f, 0xae, 0xea, 0xbf, 0xc3, 0xd7, 0x07, 0xec, 0xbe, + 0x97, 0x63, 0xf7, 0xd3, 0xc4, 0xaa, 0x18, 0xc3, 0x4a, 0x5b, 0x16, 0x4c, 0x79, 0xac, 0x5d, 0x45, + 0x46, 0xab, 0x0b, 0x9f, 0x1c, 0x0a, 0x7f, 0x04, 0x9b, 0xe1, 0x87, 0x84, 0x03, 0xa0, 0x92, 0x56, + 0x05, 0x85, 0x47, 0x7b, 0x74, 0xf8, 0x9b, 0xff, 0x59, 0x3e, 0x70, 0xcc, 0x59, 0x90, 0x33, 0xad, + 0x4d, 0x9b, 0xfa, 0x17, 0x5e, 0x1b, 0x51, 0xb6, 0x27, 0x13, 0x2a, 0xce, 0x28, 0x18, 0x1d, 0x35, + 0x9e, 0xac, 0xb1, 0x5c, 0x34, 0x98, 0xf3, 0x6a, 0x87, 0xff, 0xd7, 0x40, 0x66, 0xcb, 0x32, 0xc8, + 0x75, 0x0c, 0x77, 0x9b, 0x56, 0x8d, 0x9f, 0x3d, 0x1b, 0x79, 0xd7, 0x32, 0x2c, 0xdb, 0xba, 0xb2, + 0x63, 0xbe, 0x30, 0xb8, 0xcf, 0x98, 0x4b, 0xf3, 0x28, 0xdf, 0x42, 0x16, 0x72, 0x0c, 0x17, 0x69, + 0x7b, 0x5b, 0x78, 0x8e, 0x35, 0xa9, 0xb2, 0x49, 0x89, 0xe5, 0xdf, 0xa3, 0x38, 0x5a, 0xfe, 0x37, + 0xcd, 0x36, 0xc2, 0x51, 0xb5, 0xa8, 0xfc, 0xfb, 0xef, 0x89, 0xe4, 0xbf, 0x4f, 0x15, 0xe9, 0xa3, + 0xf1, 0x9d, 0x2c, 0x98, 0xd1, 0x3c, 0x81, 0xd3, 0x76, 0x77, 0x76, 0x0c, 0xe7, 0x0a, 0xbc, 0x21, + 0x44, 0x85, 0x11, 0xcd, 0x0c, 0xef, 0x97, 0xf2, 0xbb, 0xc2, 0x57, 0x79, 0x53, 0xd5, 0x66, 0x6a, + 0x48, 0xac, 0x07, 0xcf, 0x00, 0x79, 0x4f, 0xbc, 0x7d, 0x8f, 0xcb, 0x58, 0x45, 0x20, 0x39, 0x05, + 0xa3, 0x8f, 0x0d, 0xa4, 0x6d, 0x0c, 0x91, 0x4f, 0xb2, 0xe0, 0xa8, 0xe6, 0x1a, 0xcd, 0x8b, 0x2b, + 0xb6, 0x63, 0xef, 0xba, 0xa6, 0x85, 0xba, 0xf0, 0x49, 0x21, 0x02, 0xbe, 0xfc, 0x67, 0x42, 0xf9, + 0x87, 0xff, 0x9a, 0x11, 0x1d, 0x45, 0x83, 0x6e, 0x95, 0x2d, 0x3e, 0x22, 0x98, 0x98, 0xd8, 0xb8, + 0x28, 0x52, 0xe2, 0x58, 0x4e, 0x49, 0x14, 0x95, 0xcb, 0x1d, 0xdb, 0x71, 0xd7, 0xec, 0xa6, 0xd1, + 0xee, 0xba, 0xb6, 0x83, 0x60, 0x2d, 0x96, 0x6b, 0x5e, 0x0f, 0xd3, 0xb2, 0x9b, 0xe1, 0xe0, 0x48, + 0xdf, 0x58, 0xb1, 0x93, 0x78, 0x19, 0xff, 0xa8, 0xf0, 0x2e, 0x23, 0xe1, 0x4a, 0x2f, 0x45, 0x11, + 0x72, 0xde, 0xaf, 0x4b, 0x4b, 0x76, 0xb0, 0x45, 0x6c, 0xe7, 0x51, 0x88, 0xa8, 0x31, 0x2c, 0x95, + 0x67, 0xc1, 0xac, 0xb6, 0x7b, 0x21, 0x28, 0xa4, 0xcb, 0x1a, 0x21, 0x6f, 0x10, 0x8e, 0x28, 0x42, + 0x05, 0x8f, 0x2d, 0x28, 0x82, 0xbf, 0x37, 0x82, 0xd9, 0x2e, 0x9b, 0x8d, 0xe2, 0xcd, 0x27, 0x0a, + 0x46, 0x12, 0x19, 0x5c, 0x6b, 0xfa, 0x0c, 0x7c, 0x4f, 0x16, 0xcc, 0xd6, 0x3a, 0xc8, 0x42, 0x2d, + 0xe2, 0x05, 0xc9, 0x31, 0xf0, 0xd5, 0x09, 0x19, 0xc8, 0x15, 0x14, 0xc1, 0xc0, 0xd0, 0x63, 0x79, + 0xc9, 0x67, 0x5e, 0x98, 0x90, 0x88, 0x71, 0x71, 0xb5, 0xa5, 0xcf, 0xb8, 0x2f, 0x65, 0xc1, 0xb4, + 0xba, 0x6b, 0xd5, 0x1d, 0xdb, 0x1b, 0x8d, 0x1d, 0x78, 0x4f, 0xd8, 0x41, 0xdc, 0x0a, 0x8e, 0xb5, + 0x76, 0x1d, 0xbc, 0xfe, 0x54, 0xb1, 0x34, 0xd4, 0xb4, 0xad, 0x56, 0x17, 0xb7, 0x23, 0xaf, 0xee, + 0xff, 0x70, 0x57, 0xee, 0xa1, 0xbf, 0x96, 0x32, 0xf0, 0xa7, 0x85, 0xc3, 0x12, 0x91, 0xc6, 0x33, + 0x55, 0x8b, 0xf7, 0x04, 0x82, 0xc1, 0x87, 0x06, 0xd5, 0x90, 0x3e, 0x73, 0x3f, 0x9c, 0x05, 0x72, + 0xa9, 0xd9, 0xb4, 0x77, 0x2d, 0x57, 0x43, 0x6d, 0xd4, 0x74, 0x75, 0xc7, 0x68, 0x22, 0x78, 0x34, + 0xe0, 0x31, 0xe5, 0xda, 0xab, 0x85, 0xf7, 0x17, 0x49, 0x9b, 0xf6, 0x97, 0x99, 0x80, 0x79, 0x62, + 0xbb, 0x88, 0x82, 0x15, 0x8d, 0xe1, 0x9e, 0x9d, 0x2c, 0xc8, 0xd5, 0x4d, 0x6b, 0x8b, 0x8d, 0xd6, + 0x74, 0xdc, 0xb3, 0x75, 0x5a, 0xe8, 0x32, 0x95, 0x46, 0xf2, 0x22, 0xdf, 0x0e, 0x8e, 0x5b, 0xbb, + 0x3b, 0x17, 0x90, 0x53, 0xdb, 0xc4, 0x23, 0x41, 0x57, 0xb7, 0x35, 0x64, 0x11, 0x43, 0x29, 0xaf, + 0xf6, 0xfd, 0xc6, 0x9b, 0x09, 0x02, 0x06, 0xae, 0x47, 0x49, 0x04, 0xaf, 0x03, 0xa2, 0xb2, 0x0c, + 0x51, 0x89, 0x4c, 0xdb, 0x3e, 0x85, 0xa7, 0xcf, 0xdf, 0xaf, 0x67, 0xc1, 0xc4, 0x3a, 0x72, 0x1d, + 0xb3, 0xd9, 0x85, 0x5f, 0xf0, 0x86, 0x21, 0xe4, 0xd6, 0x0d, 0xc7, 0xd8, 0x41, 0x2e, 0x72, 0xba, + 0x50, 0x09, 0x99, 0x0e, 0xc1, 0x64, 0xa7, 0x6d, 0xb8, 0x9b, 0xb6, 0xb3, 0x43, 0x6d, 0x86, 0xe0, + 0xdd, 0xb3, 0x0f, 0xf6, 0x90, 0xd3, 0x0d, 0xc9, 0xf2, 0x5f, 0xa9, 0x80, 0x8b, 0x5b, 0x63, 0x94, + 0x94, 0x05, 0x8e, 0x8c, 0x03, 0x59, 0x63, 0x22, 0x25, 0x8e, 0xe5, 0x2e, 0x19, 0x69, 0xcd, 0xde, + 0x82, 0xaf, 0x95, 0x40, 0x0e, 0x4b, 0xde, 0x5b, 0x33, 0xdc, 0x14, 0x62, 0x07, 0x75, 0xbb, 0xc6, + 0x16, 0xf2, 0xa7, 0x10, 0xf4, 0x55, 0xbe, 0x13, 0xe4, 0xdb, 0x68, 0x0f, 0xb5, 0x31, 0x19, 0x73, + 0xb7, 0xdf, 0xc0, 0xb5, 0x6c, 0xcd, 0xde, 0x5a, 0xf0, 0xca, 0x5a, 0xa0, 0xe5, 0x2c, 0xac, 0x79, + 0x59, 0x55, 0xf2, 0xc7, 0x99, 0xe7, 0x83, 0x3c, 0x7e, 0x97, 0xa7, 0x40, 0x7e, 0x49, 0x59, 0xdc, + 0x58, 0x29, 0x1e, 0xf1, 0x1e, 0x7d, 0xfa, 0xa6, 0x40, 0x7e, 0xb9, 0xa4, 0x97, 0xd6, 0x8a, 0x59, + 0xaf, 0x1d, 0x95, 0xea, 0x72, 0xad, 0x28, 0x79, 0x89, 0xf5, 0x52, 0xb5, 0x52, 0x2e, 0xe6, 0xe4, + 0x69, 0x30, 0x71, 0xbe, 0xa4, 0x56, 0x2b, 0xd5, 0x95, 0x62, 0x1e, 0xfe, 0x15, 0x8b, 0xdf, 0x5d, + 0x3c, 0x7e, 0x37, 0x46, 0xd1, 0xd4, 0x0f, 0xb2, 0x5f, 0x0a, 0x20, 0xbb, 0x87, 0x83, 0xec, 0xfb, + 0x44, 0x0a, 0x19, 0x03, 0x4a, 0x59, 0x30, 0x51, 0x77, 0xec, 0x26, 0xea, 0x76, 0xe1, 0x2f, 0x64, + 0x41, 0xa1, 0x6c, 0x58, 0x4d, 0xd4, 0x86, 0xd7, 0x84, 0x50, 0x11, 0x5f, 0xa0, 0x4c, 0x70, 0x1c, + 0xe0, 0xef, 0x59, 0xce, 0xdc, 0xc7, 0x73, 0xe6, 0x16, 0xae, 0x51, 0xb4, 0xdc, 0x05, 0x52, 0x66, + 0x04, 0x7f, 0x1e, 0x09, 0xf8, 0x53, 0xe6, 0xf8, 0x73, 0x56, 0xbc, 0xa8, 0xf4, 0xb9, 0xf4, 0xad, + 0x0c, 0x38, 0xbe, 0x82, 0x2c, 0xe4, 0x98, 0x4d, 0x42, 0xbc, 0xdf, 0xfe, 0x7b, 0xf8, 0xf6, 0x3f, + 0x95, 0x23, 0xba, 0xdf, 0x1f, 0x7c, 0xe3, 0x1f, 0x0e, 0x1a, 0x7f, 0x1f, 0xd7, 0xf8, 0x5b, 0x05, + 0xcb, 0x19, 0xc3, 0xc5, 0xb1, 0x53, 0x60, 0xa6, 0x6a, 0xbb, 0xe6, 0xa6, 0xd9, 0x24, 0x1b, 0xc7, + 0xaf, 0x91, 0x40, 0x6e, 0xcd, 0xec, 0xba, 0xec, 0x09, 0xf4, 0xd3, 0x60, 0xda, 0xb4, 0x9a, 0xed, + 0xdd, 0x16, 0x52, 0x91, 0x41, 0x64, 0x65, 0x52, 0x65, 0x93, 0xc2, 0xf5, 0x78, 0x8f, 0x2c, 0xc9, + 0x5f, 0x8f, 0xff, 0xb4, 0xb0, 0xed, 0xc4, 0x92, 0x80, 0xcf, 0x77, 0x47, 0x0c, 0x49, 0x25, 0x30, + 0x6b, 0x31, 0x59, 0xfd, 0x23, 0xe7, 0xbd, 0x11, 0x9b, 0xd9, 0xe2, 0x54, 0xfe, 0x0f, 0xf8, 0x7e, + 0x21, 0x53, 0x6b, 0x10, 0x41, 0xc9, 0x90, 0x59, 0x4e, 0x8e, 0x8c, 0x2c, 0x83, 0xb9, 0x4a, 0x55, + 0x57, 0xd4, 0x6a, 0x69, 0x8d, 0x66, 0x91, 0xe0, 0x77, 0xb2, 0x20, 0xaf, 0xa2, 0x4e, 0xfb, 0x0a, + 0x1b, 0x92, 0x93, 0x7a, 0x77, 0x65, 0x02, 0xef, 0x2e, 0x79, 0x19, 0x00, 0xa3, 0xe9, 0x55, 0x8c, + 0xef, 0x1e, 0xc9, 0xf6, 0x0d, 0x14, 0xc7, 0x35, 0xb0, 0x14, 0xe4, 0x56, 0x99, 0x3f, 0xe1, 0xcb, + 0x84, 0x97, 0x7b, 0xb8, 0xd2, 0x30, 0x85, 0x11, 0xdd, 0xc1, 0x07, 0x84, 0x56, 0x68, 0x06, 0x16, + 0x77, 0x38, 0xec, 0xff, 0x4a, 0x16, 0xe4, 0x74, 0x6f, 0xfe, 0xc5, 0x4c, 0xc5, 0x3e, 0x35, 0x9c, + 0x8c, 0x7b, 0xc5, 0x44, 0xc8, 0xf8, 0xbd, 0x60, 0x86, 0x95, 0x58, 0xba, 0xbf, 0x11, 0x2b, 0xe2, + 0xdc, 0x0f, 0xc3, 0x48, 0x78, 0x1f, 0x72, 0x0e, 0x87, 0xc5, 0x5f, 0xbd, 0x05, 0x80, 0x75, 0xe4, + 0xd9, 0xb5, 0xdd, 0x6d, 0xb3, 0x03, 0xff, 0x9b, 0x04, 0xa6, 0x56, 0x90, 0xab, 0xb9, 0x86, 0xbb, + 0xdb, 0xed, 0x59, 0xa3, 0xb4, 0xec, 0xb2, 0xd1, 0xdc, 0x46, 0xb4, 0x3b, 0xf2, 0x5f, 0xe1, 0xbb, + 0x25, 0xd1, 0x4d, 0xc0, 0xb0, 0x9e, 0x85, 0xa0, 0x8e, 0x08, 0x4c, 0x9e, 0x0e, 0x72, 0x2d, 0xc3, + 0x35, 0x28, 0x16, 0xd7, 0xf4, 0x60, 0x11, 0x16, 0xa4, 0xe2, 0x6c, 0xf0, 0x37, 0xb2, 0x22, 0xbb, + 0x80, 0x02, 0xf5, 0x27, 0x03, 0xe1, 0xfd, 0x99, 0x21, 0x50, 0x38, 0x06, 0x66, 0xab, 0x35, 0xbd, + 0xb1, 0x56, 0x5b, 0x59, 0x51, 0xbc, 0xd4, 0xa2, 0x24, 0x9f, 0x04, 0x72, 0xbd, 0xf4, 0xc0, 0xba, + 0x52, 0xd5, 0x1b, 0xd5, 0xda, 0x92, 0x42, 0xff, 0xcc, 0xc9, 0x47, 0xc1, 0x74, 0xb9, 0x54, 0x5e, + 0xf5, 0x13, 0xf2, 0xf2, 0x3c, 0x38, 0xbe, 0xae, 0xac, 0x2f, 0x2a, 0xaa, 0xb6, 0x5a, 0xa9, 0x37, + 0xbc, 0x62, 0x96, 0x6b, 0x1b, 0xd5, 0xa5, 0x62, 0x41, 0x86, 0xe0, 0x24, 0xf3, 0xe5, 0xbc, 0x5a, + 0xab, 0xae, 0x34, 0x34, 0xbd, 0xa4, 0x2b, 0xc5, 0x09, 0xf9, 0x2a, 0x70, 0xb4, 0x5c, 0xaa, 0xe2, + 0xec, 0xe5, 0x5a, 0xb5, 0xaa, 0x94, 0xf5, 0xe2, 0x24, 0xfc, 0xd7, 0x1c, 0x98, 0xae, 0x74, 0xab, + 0xc6, 0x0e, 0x3a, 0x67, 0xb4, 0xcd, 0x16, 0xfc, 0x69, 0xc6, 0x9a, 0xbc, 0x11, 0xcc, 0x3a, 0xe4, + 0x11, 0xb5, 0x74, 0x13, 0x11, 0x34, 0x67, 0x55, 0x3e, 0x51, 0x3e, 0x09, 0x0a, 0x16, 0x2e, 0x80, + 0xb2, 0x86, 0xbe, 0xc9, 0x8b, 0x00, 0x90, 0x27, 0x3d, 0xbc, 0x05, 0xef, 0x4c, 0xaf, 0x36, 0x19, + 0x3b, 0xa8, 0x8b, 0x9c, 0x3d, 0xb3, 0x89, 0xfc, 0x9c, 0x2a, 0xf3, 0x17, 0xfc, 0xaa, 0x24, 0xba, + 0x28, 0xc8, 0x80, 0xca, 0x34, 0x27, 0xa2, 0x37, 0xfc, 0x29, 0x49, 0x64, 0x49, 0x4f, 0xa8, 0xc8, + 0x64, 0x92, 0xf2, 0x8a, 0xec, 0x10, 0x92, 0x32, 0x0b, 0xa6, 0xf4, 0x5a, 0xad, 0xa1, 0xad, 0xd6, + 0x54, 0xbd, 0x28, 0xc9, 0x33, 0x60, 0xd2, 0x7b, 0x5d, 0xab, 0x55, 0x57, 0x8a, 0x39, 0xf9, 0x04, + 0x38, 0xb6, 0x5a, 0xd2, 0x1a, 0x95, 0xea, 0xb9, 0xd2, 0x5a, 0x65, 0xa9, 0x51, 0x5e, 0x2d, 0xa9, + 0x5a, 0x31, 0x2f, 0x5f, 0x03, 0x4e, 0xe8, 0x15, 0x45, 0x6d, 0x2c, 0x2b, 0x25, 0x7d, 0x43, 0x55, + 0xb4, 0x46, 0xb5, 0xd6, 0xa8, 0x96, 0xd6, 0x95, 0x62, 0xc1, 0x53, 0x7f, 0xfc, 0x29, 0x14, 0x9b, + 0x89, 0xfd, 0xc2, 0x38, 0x19, 0x21, 0x8c, 0x53, 0xbd, 0xc2, 0x08, 0x58, 0xb1, 0x52, 0x15, 0x4d, + 0x51, 0xcf, 0x29, 0xc5, 0xe9, 0x7e, 0xb2, 0x36, 0x23, 0x1f, 0x07, 0x45, 0x8f, 0x86, 0x46, 0x45, + 0xf3, 0x73, 0x2e, 0x15, 0x67, 0xe1, 0xc7, 0x0b, 0xe0, 0xa4, 0x8a, 0xb6, 0xcc, 0xae, 0x8b, 0x9c, + 0xba, 0x71, 0x65, 0x07, 0x59, 0xae, 0xdf, 0xc9, 0xff, 0x53, 0x62, 0x61, 0x5c, 0x07, 0xb3, 0x1d, + 0x52, 0xc6, 0x3a, 0x72, 0xb7, 0xed, 0x16, 0x1d, 0x85, 0x9f, 0x1a, 0xd9, 0x73, 0x2c, 0xd4, 0xd9, + 0xec, 0x2a, 0xff, 0x37, 0x23, 0xdb, 0x52, 0x8c, 0x6c, 0xe7, 0x86, 0x91, 0x6d, 0xf9, 0x3a, 0x30, + 0xb5, 0xdb, 0x45, 0x8e, 0xb2, 0x63, 0x98, 0x6d, 0xff, 0x16, 0xb3, 0x20, 0x01, 0xbe, 0x23, 0x27, + 0xea, 0x66, 0xca, 0xb4, 0xa5, 0x3f, 0x1b, 0x23, 0xfa, 0xd6, 0x53, 0x00, 0xd0, 0xc6, 0x6e, 0x38, + 0x6d, 0x2a, 0xac, 0x4c, 0x8a, 0x47, 0xdf, 0x05, 0xb3, 0xdd, 0x36, 0xad, 0xad, 0x60, 0xb1, 0x3e, + 0x4c, 0x80, 0xaf, 0x90, 0x44, 0xdc, 0x4e, 0x93, 0xd2, 0x96, 0x4c, 0x9b, 0x5e, 0x96, 0x1d, 0x73, + 0xbf, 0xbb, 0x5f, 0x75, 0x0a, 0x72, 0x11, 0xcc, 0xe0, 0x34, 0xaa, 0x81, 0xc5, 0x09, 0xaf, 0x0f, + 0xf6, 0x8b, 0x5b, 0x57, 0xf4, 0xd5, 0xda, 0x52, 0xf0, 0x6d, 0xd2, 0x2b, 0xd2, 0x23, 0xa6, 0x54, + 0x7d, 0x00, 0x6b, 0xe3, 0x94, 0xfc, 0x24, 0x70, 0x0d, 0xd3, 0x61, 0x97, 0xd6, 0x54, 0xa5, 0xb4, + 0xf4, 0x40, 0x43, 0x79, 0x41, 0x45, 0xd3, 0x35, 0x5e, 0xb9, 0x7c, 0x3d, 0x9a, 0xf6, 0xe8, 0x55, + 0xd6, 0x4b, 0x95, 0x35, 0xda, 0xbf, 0x2f, 0xd7, 0xd4, 0xf5, 0x92, 0x5e, 0x9c, 0x81, 0xaf, 0x95, + 0x40, 0x71, 0x05, 0xb9, 0x75, 0xdb, 0x71, 0x8d, 0xf6, 0x9a, 0x69, 0x5d, 0xdc, 0x70, 0xda, 0xac, + 0xcd, 0xf4, 0x2f, 0xc2, 0x67, 0x6b, 0xf9, 0x21, 0x92, 0x2b, 0x30, 0x7a, 0x19, 0xbb, 0x83, 0xb3, + 0x85, 0xc2, 0x14, 0x26, 0xc0, 0x17, 0x65, 0x45, 0xce, 0xd2, 0x8a, 0xd7, 0x9a, 0x4c, 0x4e, 0x5e, + 0x3c, 0xee, 0xf1, 0xb9, 0x0f, 0x6a, 0x05, 0xf8, 0x50, 0x0e, 0x4c, 0x2e, 0x9b, 0x96, 0xd1, 0x36, + 0x5f, 0xc8, 0x05, 0x88, 0x0b, 0xfb, 0x98, 0x4c, 0x4c, 0x1f, 0x93, 0x1d, 0x6a, 0xfc, 0xfc, 0x79, + 0x49, 0x74, 0xc3, 0x82, 0xe1, 0xbd, 0x4f, 0x64, 0xc4, 0xe0, 0xf9, 0x3b, 0x59, 0x91, 0x2d, 0x89, + 0xc1, 0xe5, 0x25, 0xc3, 0xf0, 0x93, 0xdf, 0x1b, 0x36, 0x56, 0x8f, 0x7e, 0x4f, 0xf6, 0x13, 0x85, + 0x29, 0xf8, 0xc7, 0x12, 0x80, 0x2b, 0xc8, 0x3d, 0x87, 0x9c, 0x60, 0x2a, 0x80, 0x7b, 0x7d, 0x6a, + 0x6f, 0x33, 0x2a, 0xfb, 0x56, 0x16, 0xc0, 0xf3, 0x3c, 0x80, 0xa5, 0x18, 0xe5, 0x89, 0x28, 0x3a, + 0x42, 0x79, 0x2b, 0xa0, 0xd0, 0xc5, 0xdf, 0xa9, 0x98, 0x3d, 0x23, 0x7a, 0xb8, 0xc4, 0x85, 0xb1, + 0xa5, 0x93, 0x82, 0x55, 0x5a, 0x00, 0xfc, 0x76, 0x30, 0x09, 0xfa, 0x41, 0x4e, 0x3a, 0x96, 0x0f, + 0x4c, 0x6c, 0x32, 0x79, 0x71, 0xd2, 0x15, 0x97, 0x7e, 0xf6, 0x0d, 0xfc, 0x62, 0x0e, 0x1c, 0xef, + 0xd7, 0x1c, 0xf6, 0x1e, 0xb9, 0xe3, 0x20, 0x8f, 0xf0, 0x88, 0x4f, 0x94, 0x9d, 0xbc, 0xc8, 0xcf, + 0x04, 0x27, 0xe8, 0x86, 0xe9, 0x05, 0xa4, 0xdb, 0x55, 0x74, 0xa9, 0xdb, 0x46, 0xae, 0x8b, 0x1c, + 0xdc, 0xb2, 0x49, 0xb5, 0xff, 0x47, 0xf8, 0x37, 0x92, 0xa8, 0x6b, 0xfa, 0x00, 0x7e, 0x47, 0x68, + 0xfa, 0x4f, 0x4a, 0x22, 0xce, 0xe6, 0xc9, 0xca, 0x4e, 0x86, 0xe2, 0x4b, 0xc7, 0x3d, 0xc2, 0xf7, + 0x1f, 0x5a, 0xb1, 0xce, 0x93, 0x74, 0x7f, 0x84, 0x3e, 0xa7, 0xa8, 0x95, 0xe5, 0x8a, 0xe2, 0x8d, + 0xf7, 0x27, 0xc0, 0xb1, 0xf0, 0xdb, 0xd2, 0x03, 0x0d, 0x4d, 0xa9, 0xea, 0xc5, 0x49, 0xaf, 0x03, + 0x21, 0xc9, 0xcb, 0xa5, 0xca, 0x9a, 0xb2, 0xd4, 0xd0, 0x6b, 0xde, 0x97, 0xa5, 0xe1, 0xc6, 0x7c, + 0xf8, 0x92, 0x1c, 0x38, 0x8a, 0x79, 0x7b, 0x05, 0x73, 0xd5, 0x63, 0x4a, 0x8f, 0xe7, 0x4a, 0x00, + 0xd0, 0x14, 0x61, 0x2f, 0xfc, 0xac, 0xf0, 0x1d, 0x61, 0x0c, 0x84, 0x3d, 0x75, 0x44, 0x48, 0xc6, + 0xb7, 0xb2, 0x22, 0xe7, 0x3d, 0x85, 0x8b, 0x4d, 0x26, 0x14, 0xff, 0x3c, 0xee, 0xa1, 0x20, 0x1a, + 0x7c, 0x6c, 0xfe, 0x95, 0xf1, 0xcf, 0x2f, 0xa8, 0x57, 0x54, 0x2c, 0x0e, 0x73, 0x00, 0xe0, 0x14, + 0x2c, 0x41, 0x44, 0x0e, 0xfa, 0x0e, 0x24, 0x51, 0x72, 0x50, 0x2a, 0xeb, 0x95, 0x73, 0x4a, 0x94, + 0x1c, 0x7c, 0x46, 0x02, 0x93, 0x2b, 0xc8, 0xf5, 0x26, 0x3b, 0x5d, 0xf8, 0x5c, 0x81, 0x85, 0x19, + 0xcf, 0xbe, 0xc0, 0x97, 0x23, 0x07, 0xf3, 0x73, 0xf2, 0x06, 0x7f, 0x62, 0x18, 0xdb, 0xc0, 0xaf, + 0x3a, 0x62, 0x20, 0x79, 0x36, 0xc8, 0xbb, 0xde, 0x67, 0xba, 0x3e, 0xfc, 0xe4, 0xc8, 0x71, 0xc4, + 0x2b, 0x64, 0xc9, 0x70, 0x0d, 0x95, 0xe4, 0x67, 0x86, 0x0d, 0x41, 0xa3, 0x22, 0x82, 0x90, 0xef, + 0x45, 0xc3, 0xf0, 0xaf, 0x24, 0x70, 0x82, 0xe8, 0x47, 0xa9, 0xd3, 0xd1, 0x5c, 0xdb, 0x41, 0x2a, + 0x6a, 0x22, 0xb3, 0xe3, 0xf6, 0x2c, 0xbc, 0x39, 0x24, 0xd5, 0xdf, 0xd9, 0xa3, 0xaf, 0xf0, 0xcd, + 0x92, 0x68, 0x44, 0xc3, 0x7d, 0xfa, 0xd8, 0x53, 0x5f, 0x84, 0xb2, 0x3f, 0x9e, 0x15, 0x89, 0x51, + 0x98, 0xb0, 0xf0, 0x64, 0x40, 0x7d, 0xe4, 0x10, 0x80, 0xf2, 0x97, 0x54, 0x54, 0xa5, 0xac, 0x54, + 0xea, 0xde, 0x20, 0x70, 0x3d, 0xb8, 0xb6, 0xbe, 0xa1, 0x96, 0x57, 0x4b, 0x9a, 0xd2, 0x50, 0x95, + 0x95, 0x8a, 0xa6, 0xab, 0x25, 0xbd, 0x52, 0xf3, 0x09, 0x98, 0x90, 0xaf, 0x03, 0xf3, 0xda, 0xc6, + 0xa2, 0x56, 0x56, 0x2b, 0x75, 0x9c, 0xae, 0x2a, 0x55, 0xe5, 0x3c, 0xfd, 0x3a, 0x09, 0x3f, 0x54, + 0x04, 0xd3, 0x9e, 0x65, 0xae, 0x11, 0x83, 0x1d, 0xfe, 0x6d, 0x0e, 0x4c, 0xab, 0xa8, 0x6b, 0xb7, + 0xf7, 0xb0, 0xf1, 0x3e, 0xae, 0x39, 0xc1, 0x37, 0x25, 0xd1, 0xd3, 0x50, 0x0c, 0xb1, 0x0b, 0x0c, + 0xa1, 0xd1, 0x33, 0x40, 0xc3, 0x8f, 0x0e, 0x4c, 0xed, 0x96, 0x30, 0x41, 0x5e, 0x00, 0xb2, 0x7d, + 0xc9, 0x42, 0x8e, 0xd6, 0xbc, 0xa4, 0xb8, 0xdb, 0xa5, 0x56, 0xcb, 0x41, 0xdd, 0x2e, 0x5d, 0x56, + 0xe8, 0xf3, 0x45, 0xbe, 0x19, 0x1c, 0xc5, 0xa9, 0x4c, 0x66, 0x72, 0x74, 0xb3, 0x37, 0x39, 0xc8, + 0x59, 0xb2, 0xae, 0xf8, 0x39, 0xf3, 0x4c, 0xce, 0x30, 0x99, 0x75, 0x3e, 0x2c, 0xf0, 0x3e, 0xaf, + 0xa7, 0xc1, 0xb4, 0x65, 0xec, 0x20, 0xe5, 0x72, 0xc7, 0x74, 0x50, 0x77, 0x7e, 0x02, 0xef, 0xa6, + 0xb1, 0x49, 0xf0, 0x77, 0x84, 0x4e, 0x6f, 0x89, 0x71, 0x2c, 0x99, 0xec, 0xaf, 0x0c, 0x21, 0xfa, + 0x7d, 0xfa, 0x19, 0x09, 0x7e, 0x48, 0x02, 0x33, 0x94, 0xa8, 0x92, 0x75, 0xa5, 0xd2, 0x82, 0xd7, + 0x73, 0x66, 0xa9, 0xe1, 0xa5, 0xf9, 0x66, 0x29, 0x7e, 0x81, 0x3f, 0x23, 0x89, 0xba, 0x13, 0xf5, + 0x69, 0x38, 0xae, 0x23, 0xda, 0xc5, 0x65, 0xd3, 0xde, 0xa5, 0x2e, 0x35, 0x93, 0x2a, 0x79, 0x49, + 0x73, 0xb5, 0x0d, 0x7e, 0x58, 0xc8, 0x59, 0x49, 0xb0, 0x19, 0x87, 0x04, 0xe0, 0x27, 0x24, 0x30, + 0x47, 0xa9, 0xd2, 0xa8, 0xd7, 0xac, 0x90, 0xfb, 0xf8, 0xcf, 0x0a, 0x1b, 0x82, 0x7d, 0xda, 0x4f, + 0x6b, 0x7a, 0xc2, 0x00, 0xf9, 0x51, 0xa1, 0x50, 0x23, 0xc2, 0x0d, 0x39, 0x24, 0x28, 0xdf, 0x99, + 0x03, 0xd3, 0x1b, 0x5d, 0xe4, 0x50, 0xbf, 0x38, 0xf8, 0x48, 0x0e, 0x48, 0x2b, 0x88, 0xdb, 0xe1, + 0x7c, 0x79, 0x4e, 0x74, 0xb5, 0x8e, 0x6d, 0x2c, 0x53, 0xa8, 0x67, 0x23, 0x45, 0xc0, 0x76, 0x13, + 0x98, 0x23, 0x2c, 0x2d, 0xb9, 0xae, 0x67, 0x24, 0xfa, 0x87, 0x00, 0x7a, 0x52, 0x47, 0xb1, 0x87, + 0x83, 0xeb, 0xf2, 0xb2, 0x94, 0x3d, 0x9a, 0xd6, 0xd0, 0x26, 0x09, 0x44, 0x95, 0x53, 0x7b, 0x52, + 0xf1, 0xc5, 0xcd, 0x1d, 0x44, 0xbc, 0x41, 0x99, 0xcc, 0x79, 0x9c, 0xb9, 0xdf, 0x27, 0xf8, 0xb7, + 0x42, 0x11, 0xfa, 0xc4, 0xb9, 0x93, 0x4c, 0x16, 0x3a, 0xa3, 0x31, 0x49, 0x8e, 0x83, 0xa2, 0x97, + 0x03, 0x6f, 0x8c, 0xa8, 0x8a, 0x56, 0x5b, 0x3b, 0xa7, 0xf4, 0x5f, 0x5f, 0xc8, 0xc3, 0x97, 0x4a, + 0x60, 0x6a, 0xd1, 0xb1, 0x8d, 0x56, 0xd3, 0xe8, 0xba, 0xf0, 0xdb, 0x59, 0x30, 0x53, 0x37, 0xae, + 0xb4, 0x6d, 0xa3, 0x85, 0x3d, 0x11, 0x7b, 0xfa, 0x82, 0x0e, 0xf9, 0xe4, 0xf7, 0x05, 0xf4, 0x95, + 0x77, 0xb3, 0x0f, 0x1c, 0xe1, 0x33, 0x22, 0x57, 0x89, 0x05, 0xfb, 0x6f, 0xd9, 0x7e, 0xa1, 0xbf, + 0x7c, 0xba, 0x16, 0x58, 0x9a, 0x22, 0x2c, 0xca, 0x0f, 0x89, 0x05, 0xf3, 0x12, 0x29, 0xf2, 0x70, + 0xb6, 0xcb, 0x1f, 0x9a, 0x04, 0x85, 0x25, 0x84, 0xad, 0xb8, 0xf7, 0x65, 0xc1, 0x04, 0xbd, 0x4c, + 0x1f, 0xde, 0xc9, 0x39, 0x39, 0xb6, 0x70, 0x86, 0xa0, 0x3b, 0x0e, 0xde, 0xbd, 0xc9, 0x3a, 0x73, + 0x7a, 0x09, 0x3f, 0x27, 0x70, 0xff, 0x22, 0xf5, 0x46, 0x5c, 0xe0, 0x9f, 0xcc, 0xfd, 0x2b, 0xb6, + 0xa8, 0xf4, 0x9d, 0xa0, 0xde, 0x9d, 0xa5, 0x3e, 0x4f, 0x4c, 0xaf, 0xf7, 0xcb, 0xac, 0x7c, 0xc6, + 0xba, 0x81, 0x51, 0xe2, 0x63, 0xbc, 0x96, 0xee, 0x00, 0x13, 0x84, 0xe7, 0xfe, 0x7c, 0xb4, 0xd7, + 0x81, 0x80, 0x14, 0x81, 0x4f, 0x32, 0xf9, 0x39, 0x05, 0x7d, 0xc7, 0xa2, 0x2b, 0x1f, 0xcb, 0x89, + 0xbe, 0x99, 0x2a, 0x72, 0x2f, 0xd9, 0xce, 0x45, 0xcd, 0x35, 0x5c, 0x04, 0xff, 0x39, 0x0b, 0x24, + 0x0d, 0xb9, 0xec, 0x59, 0xe2, 0x2a, 0x38, 0x46, 0x1a, 0x44, 0x33, 0xe2, 0xfe, 0x9b, 0x34, 0xe4, + 0x74, 0x5f, 0x26, 0x30, 0xf9, 0xd4, 0xfd, 0xbf, 0xc2, 0x5f, 0xe8, 0x1b, 0x42, 0x21, 0xdb, 0x67, + 0xd2, 0x40, 0x39, 0xc3, 0x12, 0xe8, 0x09, 0x58, 0x84, 0x9c, 0xfe, 0xb6, 0x90, 0x59, 0x2d, 0x56, + 0xe6, 0xa1, 0x74, 0x05, 0x67, 0x26, 0x40, 0x5e, 0xd9, 0xe9, 0xb8, 0x57, 0xce, 0x3c, 0x05, 0xcc, + 0x6a, 0xae, 0x83, 0x8c, 0x1d, 0xc6, 0xa6, 0x76, 0xed, 0x8b, 0xc8, 0xf2, 0x6d, 0x6a, 0xfc, 0x72, + 0xd7, 0x9d, 0x60, 0xc2, 0xb2, 0x1b, 0xc6, 0xae, 0xbb, 0x2d, 0x5f, 0xbf, 0xef, 0xd2, 0xfb, 0x75, + 0xe2, 0xad, 0x5b, 0xa3, 0x67, 0x69, 0xbe, 0x7a, 0x37, 0xb6, 0xaa, 0x0a, 0x96, 0x5d, 0xda, 0x75, + 0xb7, 0x17, 0xaf, 0xfb, 0xc4, 0x5f, 0x9e, 0xca, 0x7c, 0xe6, 0x2f, 0x4f, 0x65, 0xbe, 0xf2, 0x97, + 0xa7, 0x32, 0x3f, 0xfb, 0xb5, 0x53, 0x47, 0x3e, 0xf3, 0xb5, 0x53, 0x47, 0xbe, 0xf0, 0xb5, 0x53, + 0x47, 0x7e, 0x30, 0xdb, 0xb9, 0x70, 0xa1, 0x80, 0x4b, 0xb9, 0xe3, 0xff, 0x0b, 0x00, 0x00, 0xff, + 0xff, 0x2e, 0x84, 0x8d, 0x8d, 0xcb, 0xdd, 0x01, 0x00, } func (m *Rpc) Marshal() (dAtA []byte, err error) { diff --git a/pb/protos/commands.proto b/pb/protos/commands.proto index bb985a17a..f6b04ed1a 100644 --- a/pb/protos/commands.proto +++ b/pb/protos/commands.proto @@ -2424,7 +2424,7 @@ message Rpc { message Operation { string key = 1; - oneof operation_type { + oneof operationType { google.protobuf.Value add = 2; google.protobuf.Value set = 3; google.protobuf.Value remove = 4; From fc56a18e10f6a5440f9ab0351fd2a4f845e6f9a7 Mon Sep 17 00:00:00 2001 From: kirillston Date: Thu, 15 Aug 2024 16:44:36 +0300 Subject: [PATCH 31/78] GO-3865 Fix panic on analytics insert --- cmd/usecasevalidator/main.go | 3 +++ 1 file changed, 3 insertions(+) diff --git a/cmd/usecasevalidator/main.go b/cmd/usecasevalidator/main.go index c23aa7205..23b1a9462 100644 --- a/cmd/usecasevalidator/main.go +++ b/cmd/usecasevalidator/main.go @@ -436,6 +436,9 @@ func validate(snapshot *pb.SnapshotWithType, info *useCaseInfo) (err error) { } func insertAnalyticsData(s *pb.ChangeSnapshot, info *useCaseInfo) { + if s == nil || s.Data == nil || len(s.Data.Blocks) == 0 { + return + } root := s.Data.Blocks[0] id := pbtypes.GetString(s.Data.Details, bundle.RelationKeyId.String()) f := root.GetFields().GetFields() From 31bfac6905ffa768d2c3e9f7ef957d48ea24a03e Mon Sep 17 00:00:00 2001 From: kirillston Date: Thu, 15 Aug 2024 19:47:22 +0300 Subject: [PATCH 32/78] GO-3795 Allow simult Add and Remove --- core/block/editor.go | 13 +- pb/commands.pb.go | 2469 ++++++++++++++++++-------------------- pb/protos/commands.proto | 8 +- util/pbtypes/pbtypes.go | 4 +- 4 files changed, 1194 insertions(+), 1300 deletions(-) diff --git a/core/block/editor.go b/core/block/editor.go index e42dcbe3c..84ca29edb 100644 --- a/core/block/editor.go +++ b/core/block/editor.go @@ -644,14 +644,13 @@ func (s *Service) ModifyDetailsList(req *pb.RpcObjectListModifyDetailValuesReque for _, objectId := range req.ObjectIds { err := s.ModifyDetails(objectId, func(current *types.Struct) (*types.Struct, error) { for _, op := range req.Operations { - switch v := op.OperationType.(type) { - case *pb.RpcObjectListModifyDetailValuesRequestOperationOperationTypeOfSet: - current.Fields[op.Key] = v.Set - case *pb.RpcObjectListModifyDetailValuesRequestOperationOperationTypeOfAdd: - pbtypes.AddValue(current, op.Key, v.Add) - case *pb.RpcObjectListModifyDetailValuesRequestOperationOperationTypeOfRemove: - pbtypes.RemoveValue(current, op.Key, v.Remove) + if op.Set != nil { + // Set operation has higher priority than Add and Remove, because it modifies full value + current.Fields[op.Key] = op.Set + continue } + pbtypes.AddValue(current, op.Key, op.Add) + pbtypes.RemoveValue(current, op.Key, op.Remove) } return current, nil }) diff --git a/pb/commands.pb.go b/pb/commands.pb.go index d3bfe2fa7..78b5b3dbd 100644 --- a/pb/commands.pb.go +++ b/pb/commands.pb.go @@ -26252,13 +26252,10 @@ func (m *RpcObjectListModifyDetailValuesRequest) GetOperations() []*RpcObjectLis } type RpcObjectListModifyDetailValuesRequestOperation struct { - Key string `protobuf:"bytes,1,opt,name=key,proto3" json:"key,omitempty"` - // Types that are valid to be assigned to OperationType: - // - // *RpcObjectListModifyDetailValuesRequestOperationOperationTypeOfAdd - // *RpcObjectListModifyDetailValuesRequestOperationOperationTypeOfSet - // *RpcObjectListModifyDetailValuesRequestOperationOperationTypeOfRemove - OperationType IsRpcObjectListModifyDetailValuesRequestOperationOperationType `protobuf_oneof:"operationType"` + Key string `protobuf:"bytes,1,opt,name=key,proto3" json:"key,omitempty"` + Add *types.Value `protobuf:"bytes,2,opt,name=add,proto3" json:"add,omitempty"` + Set *types.Value `protobuf:"bytes,3,opt,name=set,proto3" json:"set,omitempty"` + Remove *types.Value `protobuf:"bytes,4,opt,name=remove,proto3" json:"remove,omitempty"` } func (m *RpcObjectListModifyDetailValuesRequestOperation) Reset() { @@ -26298,36 +26295,6 @@ func (m *RpcObjectListModifyDetailValuesRequestOperation) XXX_DiscardUnknown() { var xxx_messageInfo_RpcObjectListModifyDetailValuesRequestOperation proto.InternalMessageInfo -type IsRpcObjectListModifyDetailValuesRequestOperationOperationType interface { - IsRpcObjectListModifyDetailValuesRequestOperationOperationType() - MarshalTo([]byte) (int, error) - Size() int -} - -type RpcObjectListModifyDetailValuesRequestOperationOperationTypeOfAdd struct { - Add *types.Value `protobuf:"bytes,2,opt,name=add,proto3,oneof" json:"add,omitempty"` -} -type RpcObjectListModifyDetailValuesRequestOperationOperationTypeOfSet struct { - Set *types.Value `protobuf:"bytes,3,opt,name=set,proto3,oneof" json:"set,omitempty"` -} -type RpcObjectListModifyDetailValuesRequestOperationOperationTypeOfRemove struct { - Remove *types.Value `protobuf:"bytes,4,opt,name=remove,proto3,oneof" json:"remove,omitempty"` -} - -func (*RpcObjectListModifyDetailValuesRequestOperationOperationTypeOfAdd) IsRpcObjectListModifyDetailValuesRequestOperationOperationType() { -} -func (*RpcObjectListModifyDetailValuesRequestOperationOperationTypeOfSet) IsRpcObjectListModifyDetailValuesRequestOperationOperationType() { -} -func (*RpcObjectListModifyDetailValuesRequestOperationOperationTypeOfRemove) IsRpcObjectListModifyDetailValuesRequestOperationOperationType() { -} - -func (m *RpcObjectListModifyDetailValuesRequestOperation) GetOperationType() IsRpcObjectListModifyDetailValuesRequestOperationOperationType { - if m != nil { - return m.OperationType - } - return nil -} - func (m *RpcObjectListModifyDetailValuesRequestOperation) GetKey() string { if m != nil { return m.Key @@ -26336,35 +26303,26 @@ func (m *RpcObjectListModifyDetailValuesRequestOperation) GetKey() string { } func (m *RpcObjectListModifyDetailValuesRequestOperation) GetAdd() *types.Value { - if x, ok := m.GetOperationType().(*RpcObjectListModifyDetailValuesRequestOperationOperationTypeOfAdd); ok { - return x.Add + if m != nil { + return m.Add } return nil } func (m *RpcObjectListModifyDetailValuesRequestOperation) GetSet() *types.Value { - if x, ok := m.GetOperationType().(*RpcObjectListModifyDetailValuesRequestOperationOperationTypeOfSet); ok { - return x.Set + if m != nil { + return m.Set } return nil } func (m *RpcObjectListModifyDetailValuesRequestOperation) GetRemove() *types.Value { - if x, ok := m.GetOperationType().(*RpcObjectListModifyDetailValuesRequestOperationOperationTypeOfRemove); ok { - return x.Remove + if m != nil { + return m.Remove } return nil } -// XXX_OneofWrappers is for the internal use of the proto package. -func (*RpcObjectListModifyDetailValuesRequestOperation) XXX_OneofWrappers() []interface{} { - return []interface{}{ - (*RpcObjectListModifyDetailValuesRequestOperationOperationTypeOfAdd)(nil), - (*RpcObjectListModifyDetailValuesRequestOperationOperationTypeOfSet)(nil), - (*RpcObjectListModifyDetailValuesRequestOperationOperationTypeOfRemove)(nil), - } -} - type RpcObjectListModifyDetailValuesResponse struct { Error *RpcObjectListModifyDetailValuesResponseError `protobuf:"bytes,1,opt,name=error,proto3" json:"error,omitempty"` } @@ -66187,1135 +66145,1134 @@ func init() { func init() { proto.RegisterFile("pb/protos/commands.proto", fileDescriptor_8261c968b2e6f45c) } var fileDescriptor_8261c968b2e6f45c = []byte{ - // 18041 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0xbd, 0x7d, 0x98, 0x24, 0x49, - 0x59, 0x2f, 0x3a, 0x55, 0x59, 0x55, 0xdd, 0x1d, 0xfd, 0x31, 0x35, 0xb9, 0x33, 0xb3, 0xbd, 0xb1, - 0xcb, 0xec, 0x30, 0xbb, 0x2c, 0xeb, 0xb2, 0xf4, 0x2c, 0xbb, 0x20, 0xec, 0xb2, 0xcb, 0x6e, 0x75, - 0x75, 0x76, 0x77, 0xb1, 0xdd, 0x55, 0x65, 0x66, 0xf6, 0x0c, 0xab, 0xd7, 0x5b, 0x27, 0xa7, 0x2a, - 0xba, 0x3b, 0x77, 0xaa, 0x33, 0xcb, 0xac, 0xec, 0x9e, 0x19, 0xee, 0x73, 0xee, 0x11, 0x11, 0x59, - 0x3f, 0x38, 0x88, 0xc8, 0x51, 0x40, 0x58, 0x59, 0x04, 0x0f, 0x28, 0xac, 0x7c, 0x2c, 0x5f, 0x22, - 0xca, 0xc7, 0x0a, 0x22, 0x22, 0x82, 0x28, 0xa0, 0x3c, 0x82, 0xa0, 0x07, 0xcf, 0x39, 0x1e, 0xaf, - 0x3e, 0x47, 0x10, 0x85, 0xeb, 0x7d, 0x32, 0x22, 0x32, 0x33, 0xa2, 0xba, 0x32, 0x2b, 0xb2, 0xba, - 0xb2, 0x7a, 0xd1, 0xfb, 0x5f, 0x66, 0x64, 0x64, 0xc4, 0x1b, 0xef, 0xef, 0x7d, 0x23, 0xde, 0x88, - 0x78, 0xe3, 0x0d, 0x30, 0xdf, 0xb9, 0x70, 0xb6, 0xe3, 0xd8, 0xae, 0xdd, 0x3d, 0xdb, 0xb4, 0x77, - 0x76, 0x0c, 0xab, 0xd5, 0x5d, 0xc0, 0xef, 0xf2, 0x84, 0x61, 0x5d, 0x71, 0xaf, 0x74, 0x10, 0xbc, - 0xb1, 0x73, 0x71, 0xeb, 0x6c, 0xdb, 0xbc, 0x70, 0xb6, 0x73, 0xe1, 0xec, 0x8e, 0xdd, 0x42, 0x6d, - 0xff, 0x07, 0xfc, 0x42, 0xb3, 0xc3, 0x9b, 0xa3, 0x72, 0xb5, 0xed, 0xa6, 0xd1, 0xee, 0xba, 0xb6, - 0x83, 0x68, 0xce, 0x93, 0x61, 0x95, 0x68, 0x0f, 0x59, 0xae, 0x5f, 0xc2, 0x75, 0x5b, 0xb6, 0xbd, - 0xd5, 0x46, 0xe4, 0xdb, 0x85, 0xdd, 0xcd, 0xb3, 0x5d, 0xd7, 0xd9, 0x6d, 0xba, 0xf4, 0xeb, 0xe9, - 0xde, 0xaf, 0x2d, 0xd4, 0x6d, 0x3a, 0x66, 0xc7, 0xb5, 0x1d, 0x92, 0xe3, 0xcc, 0xff, 0x78, 0xdf, - 0x04, 0x90, 0xd4, 0x4e, 0x13, 0x7e, 0x73, 0x02, 0x48, 0xa5, 0x4e, 0x07, 0x3e, 0x9e, 0x05, 0x60, - 0x05, 0xb9, 0xe7, 0x90, 0xd3, 0x35, 0x6d, 0x0b, 0x1e, 0x05, 0x13, 0x2a, 0xfa, 0x91, 0x5d, 0xd4, - 0x75, 0xef, 0xca, 0x3d, 0xf4, 0xd7, 0x52, 0x06, 0xbe, 0x29, 0x0b, 0x26, 0x55, 0xd4, 0xed, 0xd8, - 0x56, 0x17, 0xc9, 0xf7, 0x81, 0x3c, 0x72, 0x1c, 0xdb, 0x99, 0xcf, 0x9c, 0xce, 0xdc, 0x3c, 0x7d, - 0xfb, 0x2d, 0x0b, 0xb4, 0xf9, 0x0b, 0x6a, 0xa7, 0xb9, 0x50, 0xea, 0x74, 0x16, 0xc2, 0x92, 0x16, - 0xfc, 0x9f, 0x16, 0x14, 0xef, 0x0f, 0x95, 0xfc, 0x28, 0xcf, 0x83, 0x89, 0x3d, 0x92, 0x61, 0x3e, - 0x7b, 0x3a, 0x73, 0xf3, 0x94, 0xea, 0xbf, 0x7a, 0x5f, 0x5a, 0xc8, 0x35, 0xcc, 0x76, 0x77, 0x5e, - 0x22, 0x5f, 0xe8, 0x2b, 0x7c, 0x24, 0x03, 0xf2, 0xb8, 0x10, 0xb9, 0x0c, 0x72, 0x4d, 0xbb, 0x85, - 0x70, 0xf5, 0x73, 0xb7, 0x9f, 0x15, 0xaf, 0x7e, 0xa1, 0x6c, 0xb7, 0x90, 0x8a, 0x7f, 0x96, 0x4f, - 0x83, 0x69, 0x9f, 0x2d, 0x21, 0x19, 0x6c, 0xd2, 0x99, 0xdb, 0x41, 0xce, 0xcb, 0x2f, 0x4f, 0x82, - 0x5c, 0x75, 0x63, 0x6d, 0xad, 0x78, 0x44, 0x3e, 0x06, 0x66, 0x37, 0xaa, 0xf7, 0x57, 0x6b, 0xe7, - 0xab, 0x0d, 0x45, 0x55, 0x6b, 0x6a, 0x31, 0x23, 0xcf, 0x82, 0xa9, 0xc5, 0xd2, 0x52, 0xa3, 0x52, - 0xad, 0x6f, 0xe8, 0xc5, 0x2c, 0x7c, 0xbd, 0x04, 0xe6, 0x34, 0xe4, 0x2e, 0xa1, 0x3d, 0xb3, 0x89, - 0x34, 0xd7, 0x70, 0x11, 0x7c, 0x79, 0x26, 0x60, 0xa6, 0xbc, 0xe1, 0x55, 0x1a, 0x7c, 0xa2, 0x0d, - 0xb8, 0x63, 0x5f, 0x03, 0xf8, 0x12, 0x16, 0xe8, 0xdf, 0x0b, 0x4c, 0x9a, 0xca, 0x96, 0x73, 0xe6, - 0xe9, 0x60, 0x9a, 0xf9, 0x26, 0xcf, 0x01, 0xb0, 0x58, 0x2a, 0xdf, 0xbf, 0xa2, 0xd6, 0x36, 0xaa, - 0x4b, 0xc5, 0x23, 0xde, 0xfb, 0x72, 0x4d, 0x55, 0xe8, 0x7b, 0x06, 0x7e, 0x3b, 0xc3, 0x80, 0xb9, - 0xc4, 0x83, 0xb9, 0x30, 0x98, 0x98, 0x3e, 0x80, 0xc2, 0x37, 0x07, 0xe0, 0xac, 0x70, 0xe0, 0xdc, - 0x91, 0xac, 0xb8, 0xf4, 0x01, 0x7a, 0x49, 0x16, 0x4c, 0x6a, 0xdb, 0xbb, 0x6e, 0xcb, 0xbe, 0x64, - 0xc1, 0xa9, 0x00, 0x19, 0xf8, 0xb7, 0x2c, 0x4f, 0x9e, 0xc7, 0xf3, 0xe4, 0xe6, 0xfd, 0x8d, 0xa0, - 0x25, 0x44, 0x70, 0xe3, 0x97, 0x03, 0x6e, 0x94, 0x38, 0x6e, 0x3c, 0x5d, 0xb4, 0xa0, 0xf4, 0xf9, - 0xf0, 0xb3, 0x77, 0x80, 0xbc, 0xd6, 0x31, 0x9a, 0x08, 0x7e, 0x4a, 0x02, 0x33, 0x6b, 0xc8, 0xd8, - 0x43, 0xa5, 0x4e, 0xc7, 0xb1, 0xf7, 0x10, 0x2c, 0x87, 0xf2, 0x3a, 0x0f, 0x26, 0xba, 0x5e, 0xa6, - 0x4a, 0x0b, 0xb7, 0x60, 0x4a, 0xf5, 0x5f, 0xe5, 0x53, 0x00, 0x98, 0x2d, 0x64, 0xb9, 0xa6, 0x6b, - 0xa2, 0xee, 0x7c, 0xf6, 0xb4, 0x74, 0xf3, 0x94, 0xca, 0xa4, 0xc0, 0x6f, 0x66, 0x45, 0x65, 0x0c, - 0x53, 0xb1, 0xc0, 0x52, 0x10, 0xc1, 0xd5, 0x37, 0x66, 0x45, 0x64, 0x6c, 0x60, 0x71, 0xc9, 0x78, - 0xfb, 0xf6, 0x4c, 0x72, 0xe6, 0x7a, 0x39, 0xaa, 0xb5, 0x86, 0xb6, 0x51, 0x5e, 0x6d, 0x68, 0xf5, - 0x52, 0x59, 0x29, 0x22, 0xf9, 0x38, 0x28, 0xe2, 0xc7, 0x46, 0x45, 0x6b, 0x2c, 0x29, 0x6b, 0x8a, - 0xae, 0x2c, 0x15, 0x37, 0x65, 0x19, 0xcc, 0xa9, 0xca, 0x0f, 0x6c, 0x28, 0x9a, 0xde, 0x58, 0x2e, - 0x55, 0xd6, 0x94, 0xa5, 0xe2, 0x96, 0xf7, 0xf3, 0x5a, 0x65, 0xbd, 0xa2, 0x37, 0x54, 0xa5, 0x54, - 0x5e, 0x55, 0x96, 0x8a, 0xdb, 0xf2, 0xd5, 0xe0, 0xaa, 0x6a, 0xad, 0x51, 0xaa, 0xd7, 0xd5, 0xda, - 0x39, 0xa5, 0x41, 0xff, 0xd0, 0x8a, 0x26, 0xa9, 0x48, 0x6f, 0x68, 0xab, 0x25, 0x55, 0x29, 0x2d, - 0xae, 0x29, 0xc5, 0x07, 0xe1, 0x8b, 0x25, 0x30, 0xbb, 0x6e, 0x5c, 0x44, 0xda, 0xb6, 0xe1, 0x20, - 0xe3, 0x42, 0x1b, 0xc1, 0x1b, 0x04, 0xf0, 0x84, 0x9f, 0x62, 0xf1, 0x52, 0x78, 0xbc, 0xce, 0xf6, - 0x61, 0x30, 0x57, 0x45, 0x04, 0x60, 0xff, 0x14, 0xa8, 0xc1, 0x2a, 0x07, 0xd8, 0x33, 0x13, 0x96, - 0x97, 0x0c, 0xb1, 0x1f, 0x7b, 0x02, 0x20, 0x06, 0xbf, 0x2c, 0x81, 0xb9, 0x8a, 0xb5, 0x67, 0xba, - 0x68, 0x05, 0x59, 0xc8, 0xf1, 0xc6, 0x01, 0x21, 0x18, 0xde, 0x24, 0x31, 0x30, 0x2c, 0xf3, 0x30, - 0xdc, 0xd6, 0x87, 0x6d, 0x7c, 0x1d, 0x11, 0xa3, 0xed, 0x75, 0x60, 0xca, 0xc4, 0xf9, 0xca, 0x66, - 0x8b, 0x72, 0x2c, 0x4c, 0x90, 0x6f, 0x04, 0xb3, 0xe4, 0x65, 0xd9, 0x6c, 0xa3, 0xfb, 0xd1, 0x15, - 0x3a, 0xee, 0xf2, 0x89, 0xf0, 0x67, 0x02, 0xe5, 0xab, 0x70, 0x58, 0x3e, 0x2b, 0x29, 0x51, 0xc9, - 0xc0, 0x7c, 0xd5, 0x13, 0x41, 0xfd, 0xf6, 0x69, 0x99, 0x09, 0xbf, 0x9b, 0x05, 0xd3, 0x9a, 0x6b, - 0x77, 0x3c, 0x91, 0x35, 0xad, 0x2d, 0x31, 0x70, 0x3f, 0xc1, 0xea, 0x58, 0x99, 0x07, 0xf7, 0xe9, - 0x7d, 0xf8, 0xc8, 0x54, 0x10, 0xa1, 0x61, 0xdf, 0x0c, 0x34, 0x6c, 0x99, 0x43, 0xe5, 0xf6, 0x44, - 0xa5, 0x7d, 0x0f, 0xea, 0xd7, 0xab, 0x24, 0x50, 0xf4, 0xc5, 0xcc, 0x2d, 0xef, 0x3a, 0x0e, 0xb2, - 0x5c, 0x31, 0x10, 0xfe, 0x8c, 0x05, 0x61, 0x95, 0x07, 0xe1, 0xf6, 0x18, 0x61, 0xf6, 0x6b, 0x49, - 0x51, 0xc7, 0x7e, 0x27, 0x40, 0xf3, 0x7e, 0x0e, 0xcd, 0x67, 0x27, 0x27, 0x2b, 0x19, 0xa4, 0xab, - 0x43, 0x20, 0x7a, 0x1c, 0x14, 0xbd, 0x31, 0xa9, 0xac, 0x57, 0xce, 0x29, 0x8d, 0x4a, 0xf5, 0x5c, - 0x45, 0x57, 0x8a, 0x08, 0xbe, 0x52, 0x02, 0x33, 0x84, 0x34, 0x15, 0xed, 0xd9, 0x17, 0x05, 0x7b, - 0xbd, 0x2f, 0x27, 0x34, 0x16, 0xd8, 0x1a, 0x22, 0x34, 0xe3, 0xa7, 0x12, 0x18, 0x0b, 0x31, 0xc5, - 0x3d, 0x91, 0x7a, 0xab, 0x7d, 0x6a, 0xb0, 0xd5, 0x47, 0x5b, 0xfa, 0xf6, 0x56, 0xaf, 0xca, 0x01, - 0x40, 0x1a, 0x79, 0xce, 0x44, 0x97, 0xe0, 0x7a, 0x88, 0x09, 0x27, 0xb6, 0x99, 0x81, 0x62, 0x9b, - 0xed, 0x27, 0xb6, 0xef, 0x65, 0xc7, 0xac, 0x45, 0x1e, 0xbd, 0x5b, 0x23, 0xd9, 0xed, 0x51, 0x12, - 0x3d, 0x3b, 0xf4, 0x05, 0x25, 0xcb, 0x5b, 0x9d, 0xd7, 0x81, 0x29, 0xfc, 0x58, 0x35, 0x76, 0x10, - 0xd5, 0xa1, 0x30, 0x41, 0x3e, 0x03, 0x66, 0x48, 0xc6, 0xa6, 0x6d, 0x79, 0xed, 0xc9, 0xe1, 0x0c, - 0x5c, 0x9a, 0x07, 0x62, 0xd3, 0x41, 0x86, 0x6b, 0x3b, 0xb8, 0x8c, 0x3c, 0x01, 0x91, 0x49, 0x82, - 0xdf, 0x08, 0xb4, 0x50, 0xe1, 0x24, 0xe7, 0x19, 0x49, 0x9a, 0x92, 0x4c, 0x6e, 0xf6, 0x86, 0xd3, - 0x3f, 0xa2, 0x75, 0x0d, 0x0f, 0xed, 0x65, 0x3c, 0xb5, 0x43, 0xf2, 0x49, 0x20, 0xd3, 0x54, 0x2f, - 0x6f, 0xb9, 0x56, 0xd5, 0x95, 0xaa, 0x5e, 0xdc, 0xec, 0x2b, 0x51, 0x5b, 0xf0, 0x8d, 0x39, 0x90, - 0x7b, 0xbe, 0x6d, 0x5a, 0xf0, 0x25, 0x19, 0x4e, 0x24, 0x2c, 0xe4, 0x5e, 0xb2, 0x9d, 0x8b, 0x81, - 0xa2, 0x86, 0x09, 0xf1, 0xd8, 0x84, 0xa2, 0x24, 0x0d, 0x14, 0xa5, 0x5c, 0x3f, 0x51, 0xfa, 0x39, - 0x56, 0x94, 0xee, 0xe6, 0x45, 0xe9, 0xa6, 0x3e, 0xfc, 0xf7, 0x88, 0x8f, 0xe8, 0x00, 0x3e, 0x1e, - 0x74, 0x00, 0xf7, 0x72, 0x30, 0x3e, 0x4d, 0xac, 0x98, 0x64, 0x00, 0x7e, 0x29, 0x55, 0xc5, 0xef, - 0x07, 0xf5, 0x56, 0x04, 0xd4, 0xdb, 0x7d, 0xfa, 0x04, 0x73, 0x7f, 0xd7, 0xf1, 0xe0, 0xfe, 0x6e, - 0xe2, 0xa2, 0x7c, 0x02, 0x1c, 0x5b, 0xaa, 0x2c, 0x2f, 0x2b, 0xaa, 0x52, 0xd5, 0x1b, 0x55, 0x45, - 0x3f, 0x5f, 0x53, 0xef, 0x2f, 0xb6, 0xe1, 0x23, 0x12, 0x00, 0x1e, 0x87, 0xca, 0x86, 0xd5, 0x44, - 0x6d, 0xb1, 0x1e, 0xfd, 0x7f, 0x65, 0x93, 0xf5, 0x09, 0x61, 0xf9, 0x11, 0x70, 0xbe, 0x2e, 0x2b, - 0xae, 0x95, 0x91, 0x85, 0x25, 0x03, 0xf5, 0xad, 0x4f, 0x04, 0xdb, 0xf3, 0x2a, 0x70, 0xd4, 0x2f, - 0x8f, 0x66, 0xef, 0x3f, 0xed, 0x7b, 0x34, 0x07, 0xe6, 0x28, 0x2c, 0xfe, 0x3c, 0xfe, 0xa1, 0x8c, - 0xc8, 0x44, 0x1e, 0x82, 0x49, 0x3a, 0x6d, 0xf7, 0xbb, 0xf7, 0xe0, 0x5d, 0x5e, 0x01, 0xd3, 0x1d, - 0xe4, 0xec, 0x98, 0xdd, 0xae, 0x69, 0x5b, 0x64, 0x41, 0x6e, 0xee, 0xf6, 0xa7, 0x04, 0x1c, 0xc7, - 0x6b, 0x97, 0x0b, 0x75, 0xc3, 0x71, 0xcd, 0xa6, 0xd9, 0x31, 0x2c, 0xb7, 0x1e, 0x66, 0x56, 0xd9, - 0x3f, 0xe1, 0x2b, 0x12, 0x4e, 0x6b, 0xf8, 0x96, 0x44, 0x88, 0xc4, 0x07, 0x13, 0x4c, 0x49, 0x62, - 0x0b, 0x4c, 0x26, 0x16, 0x8f, 0xa7, 0x2a, 0x16, 0x7d, 0xf0, 0xde, 0x92, 0xaf, 0x01, 0x27, 0x2a, - 0xd5, 0x72, 0x4d, 0x55, 0x95, 0xb2, 0xde, 0xa8, 0x2b, 0xea, 0x7a, 0x45, 0xd3, 0x2a, 0xb5, 0xaa, - 0x76, 0x10, 0x6d, 0x87, 0x9f, 0x94, 0x02, 0x89, 0x59, 0x42, 0xcd, 0xb6, 0x69, 0x21, 0x78, 0xef, - 0x01, 0x05, 0x86, 0x5f, 0xf5, 0x11, 0xc7, 0x99, 0xd6, 0x1f, 0x81, 0xf3, 0x1b, 0x92, 0xe3, 0xdc, - 0xbf, 0xc0, 0x7f, 0xc3, 0xea, 0xff, 0x65, 0x09, 0x1c, 0x63, 0x14, 0x51, 0x45, 0x3b, 0x23, 0x5b, - 0xc9, 0xfb, 0x31, 0x56, 0x77, 0x2b, 0x3c, 0xa6, 0xfd, 0xac, 0xe9, 0x7d, 0x64, 0x44, 0xc0, 0xfa, - 0xd6, 0x00, 0xd6, 0x35, 0x0e, 0xd6, 0xe7, 0x0c, 0x51, 0x66, 0x32, 0x64, 0x7f, 0x23, 0x55, 0x64, - 0xaf, 0x01, 0x27, 0xea, 0x25, 0x55, 0xaf, 0x94, 0x2b, 0xf5, 0x92, 0x37, 0x8e, 0x32, 0x43, 0x76, - 0x84, 0xb9, 0xce, 0x83, 0xde, 0x17, 0xdf, 0xdf, 0xce, 0x81, 0xeb, 0xfa, 0x77, 0xb4, 0xe5, 0x6d, - 0xc3, 0xda, 0x42, 0xd0, 0x14, 0x81, 0x7a, 0x09, 0x4c, 0x34, 0x71, 0x76, 0x82, 0x33, 0xbb, 0x75, - 0x13, 0xd3, 0x97, 0x93, 0x1a, 0x54, 0xff, 0x57, 0xf8, 0x2e, 0x56, 0x20, 0x74, 0x5e, 0x20, 0x9e, - 0x17, 0x0f, 0xde, 0x3e, 0xba, 0x23, 0x64, 0xe3, 0x33, 0x81, 0x6c, 0x9c, 0xe7, 0x64, 0xa3, 0x7c, - 0xb0, 0xe2, 0x93, 0x89, 0xc9, 0xef, 0x3f, 0x11, 0x3a, 0x80, 0x48, 0x69, 0x32, 0xa3, 0x47, 0x85, - 0xbe, 0xdd, 0xfd, 0xc3, 0x12, 0x28, 0x2c, 0xa1, 0x36, 0x12, 0x5d, 0x89, 0xfc, 0xbb, 0xac, 0xe8, - 0x86, 0x08, 0x81, 0x81, 0x94, 0x1d, 0xbd, 0x3a, 0xe2, 0x9a, 0x3b, 0xa8, 0xeb, 0x1a, 0x3b, 0x1d, - 0xcc, 0x6a, 0x49, 0x0d, 0x13, 0xe0, 0x8f, 0x67, 0x45, 0xb6, 0x4b, 0x62, 0xaa, 0xf9, 0xb7, 0xb1, - 0xa6, 0xf8, 0xb5, 0x39, 0x50, 0x38, 0x6f, 0xb4, 0xdb, 0xc8, 0x85, 0x5f, 0xcf, 0x82, 0x42, 0xd9, - 0x9b, 0x93, 0x22, 0xf8, 0xb4, 0x10, 0x2c, 0x08, 0x26, 0x1d, 0xdb, 0x76, 0xeb, 0x86, 0xbb, 0x4d, - 0xd1, 0x0a, 0xde, 0xe9, 0x36, 0xed, 0xaf, 0xb3, 0xa0, 0xdd, 0xcb, 0x83, 0xf6, 0x7d, 0x1c, 0x37, - 0x49, 0x45, 0x0b, 0xa4, 0x92, 0x08, 0xd4, 0x20, 0x98, 0xdc, 0xb1, 0xd0, 0x8e, 0x6d, 0x99, 0x4d, - 0x7f, 0xa4, 0xf7, 0xdf, 0xe1, 0x47, 0x82, 0x59, 0xf2, 0x22, 0x87, 0xd9, 0x82, 0x70, 0x2d, 0xc9, - 0x40, 0xd3, 0x86, 0xc0, 0xec, 0x7a, 0x70, 0x2d, 0x81, 0xa0, 0xa1, 0xd7, 0x1a, 0x65, 0x55, 0x29, - 0xe9, 0x4a, 0x63, 0xad, 0x56, 0x2e, 0xad, 0x35, 0x54, 0xa5, 0x5e, 0x2b, 0x22, 0xf8, 0xdf, 0xb2, - 0x1e, 0x73, 0x9b, 0xf6, 0x1e, 0x72, 0xe0, 0x8a, 0x10, 0x9f, 0xe3, 0x78, 0x42, 0x31, 0xf8, 0x39, - 0xe1, 0xad, 0x72, 0xca, 0x1d, 0x4a, 0x41, 0x44, 0x57, 0xf8, 0x51, 0xa1, 0x6d, 0xef, 0xd8, 0xa2, - 0x9e, 0x00, 0x9c, 0xfe, 0xdf, 0x59, 0x30, 0x51, 0xb6, 0xad, 0x3d, 0xe4, 0xb8, 0xac, 0x95, 0xc9, - 0x72, 0x33, 0xc3, 0x73, 0xd3, 0xeb, 0x9a, 0x90, 0xe5, 0x3a, 0x76, 0xc7, 0x37, 0x33, 0xfd, 0x57, - 0xf8, 0xab, 0x49, 0x39, 0x4c, 0x6b, 0x8e, 0x5e, 0x6e, 0xea, 0x5f, 0x11, 0x47, 0x9e, 0xd4, 0xa3, - 0x00, 0x8f, 0x24, 0xc1, 0xa5, 0x3f, 0x01, 0xe9, 0xef, 0xf2, 0x7e, 0x45, 0x02, 0xb3, 0x44, 0xf9, - 0x34, 0x84, 0xc7, 0x45, 0x58, 0x63, 0x17, 0x7a, 0x7a, 0x98, 0xbf, 0x7a, 0x84, 0x63, 0x7f, 0xc1, - 0xe8, 0x74, 0x82, 0x45, 0xbf, 0xd5, 0x23, 0x2a, 0x7d, 0x27, 0x62, 0xbe, 0x58, 0x00, 0x39, 0x63, - 0xd7, 0xdd, 0x86, 0xdf, 0x15, 0x36, 0xf9, 0xb9, 0xce, 0x80, 0xd2, 0x13, 0x01, 0xc9, 0x71, 0x90, - 0x77, 0xed, 0x8b, 0xc8, 0xe7, 0x03, 0x79, 0xf1, 0xe0, 0x30, 0x3a, 0x1d, 0x1d, 0x7f, 0xa0, 0x70, - 0xf8, 0xef, 0xde, 0x08, 0x63, 0x34, 0x9b, 0xf6, 0xae, 0xe5, 0x56, 0xfc, 0x85, 0xbf, 0x30, 0x01, - 0x7e, 0x21, 0x23, 0x32, 0x85, 0x10, 0x20, 0x30, 0x19, 0x64, 0x17, 0x86, 0x50, 0xa5, 0x05, 0x70, - 0x4b, 0xa9, 0x5e, 0x6f, 0xe8, 0xb5, 0xfb, 0x95, 0x6a, 0x38, 0xdc, 0x37, 0x2a, 0xd5, 0x86, 0xbe, - 0xaa, 0x34, 0xca, 0x1b, 0x2a, 0x5e, 0x9d, 0x29, 0x95, 0xcb, 0xb5, 0x8d, 0xaa, 0x5e, 0x44, 0xf0, - 0x6d, 0x59, 0x30, 0x53, 0x6e, 0xdb, 0xdd, 0x00, 0xe1, 0xeb, 0x43, 0x84, 0x03, 0x36, 0x66, 0x18, - 0x36, 0xc2, 0x7f, 0xc9, 0x88, 0x6e, 0xf5, 0xfa, 0x0c, 0x61, 0x8a, 0x8f, 0xe8, 0xa5, 0x7e, 0x55, - 0x68, 0xab, 0x77, 0x70, 0x79, 0xe9, 0xab, 0xc4, 0xe7, 0xee, 0x02, 0x13, 0x25, 0x22, 0x18, 0xf0, - 0x2f, 0x32, 0xa0, 0x50, 0xb6, 0xad, 0x4d, 0x73, 0x4b, 0xbe, 0x09, 0xcc, 0x21, 0xcb, 0xb8, 0xd0, - 0x46, 0x4b, 0x86, 0x6b, 0xec, 0x99, 0xe8, 0x12, 0x6e, 0xc0, 0xa4, 0xda, 0x93, 0xea, 0x11, 0x45, - 0x53, 0xd0, 0x85, 0xdd, 0x2d, 0x4c, 0xd4, 0xa4, 0xca, 0x26, 0xc9, 0xcf, 0x01, 0x57, 0x93, 0xd7, - 0xba, 0x83, 0x1c, 0xd4, 0x46, 0x46, 0x17, 0x79, 0xc6, 0xa8, 0x85, 0xda, 0x58, 0x68, 0x27, 0xd5, - 0xa8, 0xcf, 0xf2, 0x19, 0x30, 0x43, 0x3e, 0x61, 0x53, 0xa7, 0x8b, 0xc5, 0x78, 0x52, 0xe5, 0xd2, - 0xe4, 0xa7, 0x83, 0x3c, 0xba, 0xec, 0x3a, 0xc6, 0x7c, 0x0b, 0xe3, 0x75, 0xf5, 0x02, 0xf1, 0xf5, - 0x5a, 0xf0, 0x7d, 0xbd, 0x16, 0x34, 0xec, 0x09, 0xa6, 0x92, 0x5c, 0xf0, 0x97, 0x26, 0x03, 0x43, - 0xe2, 0x5f, 0xb3, 0xa1, 0x60, 0xc8, 0x20, 0x67, 0x19, 0x3b, 0x88, 0xca, 0x05, 0x7e, 0x96, 0x6f, - 0x01, 0x47, 0x8d, 0x3d, 0xc3, 0x35, 0x9c, 0x35, 0xbb, 0x69, 0xb4, 0xf1, 0xe0, 0xe7, 0x6b, 0x7e, - 0xef, 0x07, 0xbc, 0x0e, 0xef, 0xda, 0x0e, 0xc2, 0xb9, 0xfc, 0x75, 0x78, 0x3f, 0xc1, 0x2b, 0xdd, - 0x6c, 0xda, 0x16, 0xa6, 0x5f, 0x52, 0xf1, 0xb3, 0xc7, 0x95, 0x96, 0xd9, 0xf5, 0x1a, 0x82, 0x4b, - 0xa9, 0x92, 0x05, 0x65, 0xed, 0x8a, 0xd5, 0xc4, 0x6b, 0xf0, 0x93, 0x6a, 0xd4, 0x67, 0x79, 0x11, - 0x4c, 0xd3, 0xe5, 0xe7, 0x75, 0x4f, 0xae, 0x0a, 0x58, 0xae, 0x4e, 0xf3, 0x9e, 0x34, 0x04, 0xcf, - 0x85, 0x6a, 0x98, 0x4f, 0x65, 0x7f, 0x92, 0xef, 0x03, 0xd7, 0xd2, 0xd7, 0xf2, 0x6e, 0xd7, 0xb5, - 0x77, 0x08, 0xe8, 0xcb, 0x66, 0x9b, 0xb4, 0x60, 0x02, 0xb7, 0x20, 0x2e, 0x8b, 0x7c, 0x3b, 0x38, - 0xde, 0x71, 0xd0, 0x26, 0x72, 0x1e, 0x30, 0x76, 0x76, 0x2f, 0xeb, 0x8e, 0x61, 0x75, 0x3b, 0xb6, - 0xe3, 0xce, 0x4f, 0x62, 0xe2, 0xfb, 0x7e, 0xa3, 0x1d, 0xe5, 0x24, 0x28, 0x10, 0xf6, 0xc1, 0x97, - 0xe7, 0x85, 0x9d, 0xe8, 0x68, 0x83, 0x62, 0xcd, 0xb3, 0xdb, 0xc0, 0x04, 0xed, 0xe1, 0x30, 0x50, - 0xd3, 0xb7, 0x9f, 0xec, 0x99, 0xcd, 0xd1, 0x52, 0x54, 0x3f, 0x9b, 0x7c, 0x07, 0x28, 0x34, 0x71, - 0xb3, 0x30, 0x66, 0xd3, 0xb7, 0x5f, 0xdb, 0xbf, 0x52, 0x9c, 0x45, 0xa5, 0x59, 0xe1, 0x17, 0x25, - 0x21, 0xbf, 0xbb, 0x38, 0x8a, 0x93, 0x69, 0xf5, 0x37, 0xb2, 0x43, 0x74, 0x9b, 0xb7, 0x82, 0x9b, - 0x69, 0x9f, 0x48, 0xed, 0x8f, 0xa5, 0xc6, 0xe2, 0x86, 0x6f, 0x82, 0x7b, 0x56, 0x89, 0xa6, 0x97, - 0x54, 0x6f, 0xfe, 0xb4, 0xe4, 0x99, 0xee, 0xb7, 0x80, 0x9b, 0x06, 0xe4, 0x56, 0xf4, 0x46, 0xb5, - 0xb4, 0xae, 0x14, 0x37, 0x79, 0xdb, 0x46, 0xd3, 0x6b, 0xf5, 0x86, 0xba, 0x51, 0xad, 0x56, 0xaa, - 0x2b, 0xa4, 0x30, 0xcf, 0x24, 0x3c, 0x19, 0x66, 0x38, 0xaf, 0x56, 0x74, 0xa5, 0x51, 0xae, 0x55, - 0x97, 0x2b, 0x2b, 0x45, 0x73, 0x90, 0x61, 0xf4, 0xa0, 0x7c, 0x1a, 0x5c, 0xc7, 0x51, 0x52, 0xa9, - 0x55, 0xbd, 0xf9, 0x44, 0xb9, 0x54, 0x2d, 0x2b, 0xde, 0xe4, 0xe1, 0xa2, 0x0c, 0xc1, 0x09, 0x52, - 0x5c, 0x63, 0xb9, 0xb2, 0xc6, 0x6e, 0x01, 0x7c, 0x22, 0x23, 0xcf, 0x83, 0xab, 0xd8, 0x6f, 0x95, - 0xea, 0xb9, 0xd2, 0x5a, 0x65, 0xa9, 0xf8, 0x7b, 0x19, 0xf9, 0x46, 0x70, 0x3d, 0xf7, 0x17, 0x59, - 0xcd, 0x6f, 0x54, 0x96, 0x1a, 0xeb, 0x15, 0x6d, 0xbd, 0xa4, 0x97, 0x57, 0x8b, 0x9f, 0xc4, 0xf3, - 0x85, 0xc0, 0x00, 0x66, 0x9c, 0xe1, 0x5e, 0xc5, 0x8e, 0xe9, 0x25, 0x5e, 0x50, 0x9f, 0xd6, 0x17, - 0xf6, 0x78, 0x1b, 0xf6, 0xf1, 0x60, 0x74, 0x58, 0xe2, 0x44, 0xe8, 0xb6, 0x04, 0x65, 0x25, 0x93, - 0x21, 0x7d, 0x08, 0x11, 0x3a, 0x0d, 0xae, 0xab, 0x2a, 0x04, 0x29, 0x55, 0x29, 0xd7, 0xce, 0x29, - 0x6a, 0xe3, 0x7c, 0x69, 0x6d, 0x4d, 0xd1, 0x1b, 0xcb, 0x15, 0x55, 0xd3, 0x8b, 0x9b, 0xf0, 0x1f, - 0xb3, 0xc1, 0x1c, 0x9a, 0xe1, 0xd6, 0x5f, 0x64, 0x93, 0xaa, 0x75, 0xec, 0x5c, 0xf9, 0x59, 0xa0, - 0xd0, 0x75, 0x0d, 0x77, 0xb7, 0x4b, 0xb5, 0xfa, 0x49, 0xfd, 0xb5, 0x7a, 0x41, 0xc3, 0x99, 0x54, - 0x9a, 0x19, 0x7e, 0x31, 0x93, 0x44, 0x4d, 0x47, 0x30, 0x8d, 0x36, 0x87, 0x60, 0xf1, 0x29, 0x00, - 0x7d, 0x69, 0xaf, 0x68, 0x8d, 0xd2, 0x9a, 0xaa, 0x94, 0x96, 0x1e, 0x08, 0x26, 0xcf, 0x48, 0x3e, - 0x01, 0x8e, 0x6d, 0x54, 0xbd, 0xe9, 0x30, 0x56, 0x97, 0x5a, 0xb5, 0xaa, 0x94, 0x3d, 0xbe, 0xff, - 0x38, 0x5e, 0xaa, 0xf6, 0x2c, 0x68, 0x4c, 0xb7, 0x67, 0xe5, 0x30, 0xfc, 0xff, 0x6b, 0x61, 0x8f, - 0x8e, 0x50, 0xc2, 0xd8, 0xb2, 0x46, 0x8b, 0xc3, 0x17, 0x84, 0x9c, 0x38, 0x84, 0x28, 0x49, 0x86, - 0xc7, 0x7f, 0x18, 0x02, 0x8f, 0x13, 0xe0, 0x18, 0x8b, 0x07, 0x76, 0xe6, 0x88, 0x86, 0xe1, 0xab, - 0x93, 0xa0, 0xa0, 0xa1, 0x36, 0x6a, 0xba, 0xf0, 0x51, 0xc6, 0x98, 0x98, 0x03, 0xd9, 0xc0, 0x79, - 0x20, 0x6b, 0xb6, 0xb8, 0xe9, 0x73, 0xb6, 0x67, 0xfa, 0x1c, 0x63, 0x06, 0x48, 0x89, 0xcc, 0x80, - 0x5c, 0x0a, 0x66, 0x40, 0x7e, 0x78, 0x33, 0xa0, 0x30, 0xc8, 0x0c, 0x80, 0xbf, 0x52, 0x48, 0xda, - 0x4b, 0x10, 0x56, 0x1f, 0xee, 0xe0, 0xff, 0xbf, 0x72, 0x49, 0x7a, 0x95, 0xbe, 0x14, 0x27, 0x93, - 0xe2, 0xef, 0x4a, 0x29, 0x2c, 0x3f, 0xc8, 0x37, 0x80, 0xeb, 0xc3, 0xf7, 0x86, 0xf2, 0x82, 0x8a, - 0xa6, 0x6b, 0x78, 0xc4, 0x2f, 0xd7, 0x54, 0x75, 0xa3, 0x4e, 0x56, 0xee, 0x4e, 0x02, 0x39, 0x2c, - 0x45, 0xdd, 0xa8, 0x92, 0xf1, 0x7d, 0x8b, 0x2f, 0x7d, 0xb9, 0x52, 0x5d, 0x6a, 0x04, 0x3a, 0x53, - 0x5d, 0xae, 0x15, 0xb7, 0xbd, 0x29, 0x1b, 0x53, 0xba, 0x37, 0x40, 0xd3, 0x1a, 0x4a, 0xd5, 0xa5, - 0xc6, 0x7a, 0x55, 0x59, 0xaf, 0x55, 0x2b, 0x65, 0x9c, 0xae, 0x29, 0x7a, 0xd1, 0xf4, 0x06, 0x9a, - 0x1e, 0x8b, 0x42, 0x53, 0x4a, 0x6a, 0x79, 0x55, 0x51, 0x49, 0x95, 0x0f, 0xca, 0x37, 0x81, 0x33, - 0xa5, 0x6a, 0x4d, 0xf7, 0x52, 0x4a, 0xd5, 0x07, 0xf4, 0x07, 0xea, 0x4a, 0xa3, 0xae, 0xd6, 0xca, - 0x8a, 0xa6, 0x79, 0x7a, 0x4a, 0xed, 0x8f, 0x62, 0x5b, 0x7e, 0x1e, 0xb8, 0x8b, 0x21, 0x4d, 0xd1, - 0xf1, 0x36, 0xd1, 0x7a, 0x0d, 0x7b, 0x0a, 0x2c, 0x29, 0x8d, 0xd5, 0x92, 0xd6, 0xa8, 0x54, 0xcb, - 0xb5, 0xf5, 0x7a, 0x49, 0xaf, 0x78, 0xea, 0x5c, 0x57, 0x6b, 0x7a, 0xad, 0x71, 0x4e, 0x51, 0xb5, - 0x4a, 0xad, 0x5a, 0xb4, 0xbc, 0x26, 0x33, 0xfa, 0xef, 0xf7, 0xc3, 0xb6, 0x7c, 0x1d, 0x98, 0xf7, - 0xd3, 0xd7, 0x6a, 0x1e, 0xa3, 0x19, 0x8b, 0xa4, 0x93, 0xaa, 0x45, 0xf2, 0xcf, 0x59, 0x90, 0xd3, - 0x5c, 0xbb, 0x03, 0xbf, 0x2f, 0xec, 0x60, 0x4e, 0x01, 0xe0, 0xe0, 0x5d, 0x1f, 0x6f, 0x16, 0x46, - 0xe7, 0x65, 0x4c, 0x0a, 0xfc, 0x5d, 0xe1, 0xa5, 0xea, 0xb0, 0xcf, 0xb6, 0x3b, 0x11, 0xb6, 0xca, - 0xb7, 0xc5, 0x7c, 0xf7, 0xa3, 0x0b, 0x4a, 0x26, 0xef, 0x3f, 0x35, 0xcc, 0x62, 0x34, 0x04, 0x27, - 0x19, 0xd8, 0x3c, 0xfe, 0xfb, 0x22, 0x81, 0xe4, 0xab, 0xc1, 0x55, 0x3d, 0xc2, 0x85, 0x65, 0x6a, - 0x53, 0x7e, 0x32, 0x78, 0x12, 0x23, 0xde, 0xca, 0x7a, 0xed, 0x9c, 0x12, 0x08, 0xf2, 0x52, 0x49, - 0x2f, 0x15, 0xb7, 0xe0, 0xe7, 0x24, 0x90, 0x5b, 0xb7, 0xf7, 0x7a, 0x77, 0x08, 0x2c, 0x74, 0x89, - 0x59, 0x0b, 0xf5, 0x5f, 0x79, 0x5f, 0x65, 0x21, 0xb6, 0xaf, 0x47, 0xef, 0x06, 0x7e, 0x21, 0x9b, - 0x84, 0xed, 0xeb, 0x07, 0xdd, 0x02, 0xfc, 0x9b, 0x61, 0xd8, 0x1e, 0xc1, 0x5a, 0x24, 0x9f, 0x01, - 0xa7, 0xc2, 0x0f, 0x95, 0x25, 0xa5, 0xaa, 0x57, 0x96, 0x1f, 0x08, 0x99, 0x5b, 0x51, 0x85, 0xd8, - 0x3f, 0xa8, 0x1b, 0x8b, 0x9f, 0x69, 0xcc, 0x83, 0xe3, 0xe1, 0xb7, 0x15, 0x45, 0xf7, 0xbf, 0x3c, - 0x08, 0x5f, 0x92, 0x07, 0x33, 0xa4, 0x5b, 0xdf, 0xe8, 0xb4, 0x0c, 0x17, 0xc1, 0x3b, 0x42, 0x74, - 0x6f, 0x06, 0x47, 0x2b, 0xf5, 0x65, 0x4d, 0x73, 0x6d, 0xc7, 0xd8, 0x42, 0xa5, 0x56, 0xcb, 0xa1, - 0xdc, 0xea, 0x4d, 0x86, 0x8f, 0x09, 0xaf, 0xf3, 0xf1, 0x43, 0x09, 0xa9, 0x33, 0x02, 0xf5, 0xaf, - 0x08, 0xad, 0xcb, 0x09, 0x14, 0x98, 0x0c, 0xfd, 0x07, 0x47, 0xac, 0x73, 0xd1, 0xb8, 0x6c, 0x9e, - 0x79, 0x69, 0x16, 0x4c, 0xe9, 0xe6, 0x0e, 0x7a, 0xa1, 0x6d, 0xa1, 0xae, 0x3c, 0x01, 0xa4, 0x95, - 0x75, 0xbd, 0x78, 0xc4, 0x7b, 0xf0, 0x8c, 0xaa, 0x0c, 0x7e, 0x50, 0xbc, 0x0a, 0xbc, 0x87, 0x92, - 0x5e, 0x94, 0xbc, 0x87, 0x75, 0x45, 0x2f, 0xe6, 0xbc, 0x87, 0xaa, 0xa2, 0x17, 0xf3, 0xde, 0x43, - 0x7d, 0x4d, 0x2f, 0x16, 0xbc, 0x87, 0x8a, 0xa6, 0x17, 0x27, 0xbc, 0x87, 0x45, 0x4d, 0x2f, 0x4e, - 0x7a, 0x0f, 0xe7, 0x34, 0xbd, 0x38, 0xe5, 0x3d, 0x94, 0x75, 0xbd, 0x08, 0xbc, 0x87, 0xe7, 0x6b, - 0x7a, 0x71, 0xda, 0x7b, 0x28, 0x95, 0xf5, 0xe2, 0x0c, 0x7e, 0x50, 0xf4, 0xe2, 0xac, 0xf7, 0xa0, - 0x69, 0x7a, 0x71, 0x0e, 0x97, 0xac, 0xe9, 0xc5, 0xa3, 0xb8, 0xae, 0x8a, 0x5e, 0x2c, 0x7a, 0x0f, - 0xab, 0x9a, 0x5e, 0x3c, 0x86, 0x33, 0x6b, 0x7a, 0x51, 0xc6, 0x95, 0x6a, 0x7a, 0xf1, 0x2a, 0x9c, - 0x47, 0xd3, 0x8b, 0xc7, 0x71, 0x15, 0x9a, 0x5e, 0x3c, 0x81, 0xc9, 0x50, 0xf4, 0xe2, 0x49, 0x9c, - 0x47, 0xd5, 0x8b, 0x57, 0xe3, 0x4f, 0x55, 0xbd, 0x38, 0x8f, 0x09, 0x53, 0xf4, 0xe2, 0x35, 0xf8, - 0x41, 0xd5, 0x8b, 0x10, 0x7f, 0x2a, 0xe9, 0xc5, 0x6b, 0xe1, 0x93, 0xc0, 0xd4, 0x0a, 0x72, 0x09, - 0x88, 0xb0, 0x08, 0xa4, 0x15, 0xe4, 0xb2, 0x66, 0xfc, 0xd7, 0x24, 0x70, 0x35, 0x9d, 0xfa, 0x2d, - 0x3b, 0xf6, 0xce, 0x1a, 0xda, 0x32, 0x9a, 0x57, 0x94, 0xcb, 0x9e, 0x09, 0x05, 0x35, 0x6e, 0xe9, - 0xaa, 0x13, 0x76, 0x46, 0xf8, 0x39, 0xd6, 0xe2, 0xf4, 0x17, 0xa3, 0xa4, 0x70, 0x31, 0x8a, 0x5a, - 0x64, 0xff, 0xc0, 0x4a, 0x34, 0xb7, 0x7e, 0x9c, 0xe9, 0x59, 0x3f, 0xf6, 0xd4, 0xa4, 0x83, 0x9c, - 0xae, 0x6d, 0x19, 0x6d, 0x8d, 0x6e, 0x97, 0x92, 0x55, 0xaf, 0xde, 0x64, 0xf9, 0x07, 0x7c, 0xcd, - 0x20, 0x56, 0xd9, 0x73, 0xe3, 0x66, 0xb8, 0xbd, 0xcd, 0x8c, 0x50, 0x92, 0x4f, 0x06, 0x4a, 0xa2, - 0x73, 0x4a, 0x72, 0xdf, 0x01, 0xca, 0x4e, 0xa6, 0x2f, 0x95, 0xe1, 0xa6, 0x16, 0xa1, 0x33, 0xa1, - 0xbf, 0x5c, 0x2d, 0xc1, 0xcf, 0x65, 0xc1, 0x49, 0xc5, 0xea, 0x67, 0xe1, 0xb3, 0xb2, 0xf0, 0x36, - 0x16, 0x9a, 0x3a, 0xcf, 0xd2, 0xbb, 0xfa, 0x36, 0xbb, 0x7f, 0x99, 0x11, 0x1c, 0xfd, 0x74, 0xc0, - 0x51, 0x8d, 0xe3, 0xe8, 0xbd, 0xc3, 0x17, 0x9d, 0x8c, 0xa1, 0xd5, 0x91, 0x76, 0x40, 0x39, 0xf8, - 0x8d, 0x1c, 0x78, 0x12, 0xf1, 0x78, 0xa0, 0x14, 0x12, 0x2d, 0x2b, 0x59, 0x2d, 0x15, 0x75, 0x5d, - 0xc3, 0x71, 0xb9, 0x53, 0xa8, 0x3d, 0x53, 0xa9, 0x4c, 0x0a, 0x53, 0xa9, 0xec, 0xc0, 0xa9, 0x14, - 0x7c, 0x37, 0x6b, 0x3e, 0x9c, 0xe7, 0x31, 0x2e, 0xf5, 0xef, 0xff, 0xe3, 0x5a, 0x18, 0x05, 0x75, - 0x60, 0x57, 0xfc, 0x20, 0x07, 0xf5, 0xf2, 0x81, 0x6b, 0x48, 0x86, 0xf8, 0xef, 0x8e, 0xd6, 0xce, - 0xcb, 0xb1, 0xdf, 0x78, 0xa3, 0xa4, 0xd8, 0x4a, 0xd5, 0x40, 0xff, 0xcc, 0x04, 0x98, 0xc2, 0xba, - 0xb0, 0x66, 0x5a, 0x17, 0xe1, 0x23, 0x12, 0x98, 0xa9, 0xa2, 0x4b, 0xe5, 0x6d, 0xa3, 0xdd, 0x46, - 0xd6, 0x16, 0x62, 0xcd, 0xf6, 0x79, 0x30, 0x61, 0x74, 0x3a, 0xd5, 0x70, 0x9f, 0xc1, 0x7f, 0xa5, - 0xfd, 0xef, 0x5f, 0xf7, 0x55, 0xf2, 0x4c, 0x8c, 0x92, 0x07, 0xf5, 0x2e, 0xb0, 0x75, 0x46, 0xcc, - 0x90, 0x4f, 0x83, 0xe9, 0xa6, 0x9f, 0x25, 0xf0, 0x56, 0x67, 0x93, 0xe0, 0x5f, 0x25, 0xea, 0x06, - 0x84, 0x2a, 0x4f, 0x26, 0x14, 0x68, 0xc4, 0x76, 0xc8, 0x09, 0x70, 0x4c, 0xaf, 0xd5, 0x1a, 0xeb, - 0xa5, 0xea, 0x03, 0xe1, 0x29, 0xd1, 0x4d, 0xf8, 0xba, 0x1c, 0x98, 0xd3, 0xec, 0xf6, 0x1e, 0x0a, - 0x61, 0xaa, 0x84, 0x30, 0xf5, 0xf0, 0x29, 0xb3, 0x8f, 0x4f, 0xf2, 0x49, 0x50, 0x30, 0xac, 0xee, - 0x25, 0xe4, 0xdb, 0x86, 0xf4, 0x8d, 0xc2, 0xf8, 0xdb, 0xac, 0x1e, 0xab, 0x3c, 0x8c, 0x77, 0x0f, - 0xe0, 0x24, 0x4f, 0x55, 0x04, 0x90, 0x67, 0xc0, 0x4c, 0x97, 0x6c, 0x16, 0xea, 0xcc, 0x9e, 0x30, - 0x97, 0x86, 0x49, 0x24, 0xbb, 0xd5, 0x12, 0x25, 0x11, 0xbf, 0xc1, 0x47, 0x02, 0xf5, 0xdf, 0xe0, - 0x20, 0x2e, 0x1d, 0x84, 0xb0, 0x64, 0x20, 0x3f, 0x3c, 0xea, 0x19, 0xde, 0x3c, 0x38, 0x4e, 0xb5, - 0xb6, 0x51, 0x5e, 0x2d, 0xad, 0xad, 0x29, 0xd5, 0x15, 0xa5, 0x51, 0x59, 0x22, 0x5b, 0x15, 0x61, - 0x4a, 0x49, 0xd7, 0x95, 0xf5, 0xba, 0xae, 0x35, 0x94, 0x17, 0x94, 0x15, 0x65, 0x09, 0x3b, 0x22, - 0xe1, 0x93, 0x04, 0xbe, 0xcb, 0x58, 0xa9, 0xaa, 0x9d, 0x57, 0xd4, 0xe2, 0xf6, 0x99, 0x12, 0x98, - 0x66, 0xfa, 0x79, 0x8f, 0xba, 0x25, 0xb4, 0x69, 0xec, 0xb6, 0xa9, 0xad, 0x56, 0x3c, 0xe2, 0x51, - 0x87, 0x79, 0x53, 0xb3, 0xda, 0x57, 0x8a, 0x19, 0xb9, 0x08, 0x66, 0xd8, 0x2e, 0xbd, 0x98, 0x85, - 0xdf, 0xbe, 0x16, 0x4c, 0x9d, 0xb7, 0x9d, 0x8b, 0xd8, 0x7b, 0x0c, 0xbe, 0x9f, 0x44, 0x93, 0xf0, - 0xcf, 0xe5, 0x31, 0x03, 0xfb, 0xc3, 0xe2, 0xde, 0x02, 0x7e, 0x69, 0x0b, 0x03, 0xcf, 0xde, 0x9d, - 0x06, 0xd3, 0x97, 0xfc, 0xdc, 0xa1, 0xa6, 0x33, 0x49, 0xf0, 0xbf, 0x8a, 0xed, 0xff, 0x0f, 0xae, - 0x32, 0xfd, 0xfd, 0xe9, 0x47, 0xb3, 0xa0, 0xb0, 0x82, 0xdc, 0x52, 0xbb, 0xcd, 0xf2, 0xed, 0xd5, - 0xc2, 0xe7, 0x29, 0xb8, 0x46, 0x94, 0xda, 0xed, 0x68, 0xa5, 0x62, 0x18, 0xe4, 0xfb, 0xfd, 0x72, - 0x69, 0xf0, 0x57, 0x84, 0x4e, 0x42, 0x0d, 0xa8, 0x30, 0x7d, 0x8e, 0xbd, 0x59, 0x0a, 0xf6, 0xb8, - 0x7f, 0x92, 0xb1, 0x72, 0x9e, 0x11, 0x46, 0x12, 0xc9, 0xc4, 0xef, 0x95, 0xfb, 0xf9, 0xe4, 0xfb, - 0xc1, 0xc4, 0x6e, 0x17, 0x95, 0x8d, 0x2e, 0xc2, 0xb4, 0xf5, 0xb6, 0xb4, 0x76, 0xe1, 0x41, 0xd4, - 0x74, 0x17, 0x2a, 0x3b, 0x9e, 0x41, 0xbd, 0x41, 0x32, 0x06, 0xc1, 0x39, 0xe8, 0xbb, 0xea, 0x97, - 0x00, 0x5f, 0x3e, 0x04, 0x64, 0xb1, 0xfb, 0xbd, 0x91, 0x47, 0xaf, 0x12, 0x03, 0x35, 0x82, 0x4d, - 0xda, 0x61, 0x80, 0xfa, 0x4c, 0x16, 0xe4, 0x6a, 0x1d, 0x64, 0x89, 0x39, 0xa0, 0x3e, 0x22, 0xee, - 0xe5, 0x15, 0x34, 0xcc, 0x2b, 0x3d, 0x82, 0x7b, 0x67, 0x41, 0xce, 0xb4, 0x36, 0x6d, 0x6a, 0x60, - 0x5e, 0x1b, 0xb1, 0x99, 0x53, 0xb1, 0x36, 0x6d, 0x15, 0x67, 0x14, 0x75, 0xf0, 0x8a, 0xab, 0x3b, - 0x7d, 0x96, 0xfe, 0xed, 0x24, 0x28, 0x10, 0xb1, 0x84, 0xaf, 0x92, 0x80, 0x54, 0x6a, 0xb5, 0x22, - 0x0e, 0x71, 0x64, 0xf7, 0x1d, 0xe2, 0xb0, 0xf1, 0x6f, 0x01, 0xdf, 0x83, 0x77, 0x3e, 0x14, 0x84, - 0x60, 0x1f, 0x4d, 0x55, 0xa3, 0xd4, 0x6a, 0x45, 0xfb, 0x92, 0x06, 0x15, 0x66, 0xf9, 0x0a, 0x59, - 0x4d, 0x95, 0xc4, 0x34, 0x35, 0x71, 0x87, 0x1e, 0x49, 0x5f, 0xfa, 0x10, 0xfd, 0x43, 0x16, 0x4c, - 0xac, 0x99, 0x5d, 0xd7, 0xc3, 0xa6, 0x24, 0x82, 0xcd, 0x75, 0x60, 0xca, 0x67, 0x8d, 0xd7, 0x75, - 0x79, 0xfd, 0x72, 0x98, 0x00, 0xdf, 0xc8, 0xa2, 0xf3, 0x7c, 0x1e, 0x9d, 0x67, 0xc6, 0xb7, 0x9e, - 0x52, 0x11, 0xed, 0xa3, 0x1d, 0x56, 0x9b, 0xed, 0xad, 0xf6, 0xd7, 0x03, 0x86, 0xaf, 0x73, 0x0c, - 0xbf, 0x73, 0x98, 0x2a, 0xd3, 0x67, 0xfa, 0xe7, 0xb3, 0x00, 0x78, 0x75, 0xd3, 0x83, 0x30, 0x4f, - 0xe5, 0x8e, 0xb7, 0xc6, 0x70, 0xf7, 0x75, 0x2c, 0x77, 0xd7, 0x79, 0xee, 0x3e, 0x7b, 0x70, 0x53, - 0xe3, 0x0e, 0xbc, 0xc8, 0x45, 0x20, 0x99, 0x01, 0x6b, 0xbd, 0x47, 0xf8, 0x68, 0xc0, 0xd4, 0x3a, - 0xc7, 0xd4, 0xbb, 0x87, 0xac, 0x29, 0x7d, 0xbe, 0xfe, 0x59, 0x16, 0x4c, 0x68, 0xc8, 0xf5, 0xba, - 0x49, 0x78, 0x4e, 0xe4, 0xc8, 0x09, 0xa3, 0xdb, 0x59, 0x41, 0xdd, 0xfe, 0x56, 0x46, 0x34, 0x4c, - 0x46, 0xc8, 0x19, 0x4a, 0x53, 0xc4, 0x22, 0xc0, 0x9b, 0x84, 0xc2, 0x64, 0x0c, 0x2a, 0x2d, 0x7d, - 0xee, 0xbe, 0x2d, 0x1b, 0x6c, 0xb0, 0x3f, 0x8d, 0x9b, 0xa0, 0xb1, 0xe6, 0x6d, 0x66, 0xbf, 0x79, - 0xfb, 0x8f, 0x99, 0xe4, 0xa6, 0x46, 0xdc, 0xee, 0x72, 0x62, 0x83, 0x62, 0x04, 0x1b, 0xbf, 0xc3, - 0xf0, 0xeb, 0xc5, 0x12, 0x28, 0xd0, 0x15, 0xe2, 0x7b, 0xe3, 0x57, 0x88, 0x07, 0x4f, 0x11, 0xde, - 0x3b, 0x84, 0xb9, 0x16, 0xb7, 0x6c, 0x1b, 0x90, 0x91, 0x65, 0xc8, 0xb8, 0x15, 0xe4, 0x71, 0x1c, - 0x3f, 0x3a, 0xce, 0x85, 0x7b, 0xf6, 0x7e, 0x11, 0x8a, 0xf7, 0x55, 0x25, 0x99, 0x12, 0xa3, 0x30, - 0x82, 0x95, 0xde, 0x61, 0x50, 0x78, 0xcd, 0xc7, 0x32, 0x81, 0x11, 0xf2, 0xde, 0x1c, 0x35, 0xf1, - 0x3e, 0xce, 0x47, 0x14, 0x68, 0xda, 0x96, 0x8b, 0x2e, 0x33, 0x6b, 0xeb, 0x41, 0x42, 0xac, 0x65, - 0x30, 0x0f, 0x26, 0x5c, 0x87, 0x5d, 0x6f, 0xf7, 0x5f, 0xd9, 0x1e, 0x27, 0xcf, 0xf7, 0x38, 0x55, - 0x70, 0xc6, 0xb4, 0x9a, 0xed, 0xdd, 0x16, 0x52, 0x51, 0xdb, 0xf0, 0x5a, 0xd5, 0x2d, 0x75, 0x97, - 0x50, 0x07, 0x59, 0x2d, 0x64, 0xb9, 0x84, 0x4e, 0xdf, 0xb7, 0x56, 0x20, 0x27, 0xfc, 0x3a, 0x2b, - 0x18, 0xf7, 0xf0, 0x82, 0xf1, 0xd4, 0x7e, 0xf3, 0x83, 0x18, 0x23, 0xf4, 0x4e, 0x00, 0x48, 0xdb, - 0xce, 0x99, 0xe8, 0x12, 0xed, 0x10, 0xaf, 0xe9, 0x31, 0x45, 0x6b, 0x41, 0x06, 0x95, 0xc9, 0x0c, - 0xbf, 0x1c, 0x08, 0xc3, 0x7d, 0x9c, 0x30, 0xdc, 0x2a, 0x48, 0x42, 0x32, 0x39, 0xe8, 0x0c, 0xb1, - 0x66, 0x31, 0x0b, 0xa6, 0xc2, 0x95, 0x46, 0x49, 0xbe, 0x06, 0x9c, 0xf0, 0x7d, 0x17, 0xaa, 0x8a, - 0xb2, 0xa4, 0x35, 0x36, 0xea, 0x2b, 0x6a, 0x69, 0x49, 0x29, 0x02, 0x59, 0x06, 0x73, 0xb5, 0xc5, - 0xe7, 0x2b, 0x65, 0x3d, 0x70, 0x39, 0xc8, 0xc1, 0x3f, 0xc9, 0x82, 0x3c, 0x76, 0x0c, 0x87, 0x3f, - 0x3c, 0x22, 0xc9, 0xe9, 0x72, 0x3b, 0x35, 0xc1, 0xbc, 0x42, 0x3c, 0xd2, 0x1f, 0x65, 0x26, 0xa6, - 0xea, 0x40, 0x91, 0xfe, 0x62, 0x0a, 0x4a, 0x5f, 0x3d, 0x3d, 0x95, 0xd4, 0xb6, 0xed, 0x4b, 0xff, - 0x9e, 0x55, 0xd2, 0x6b, 0xff, 0x21, 0xab, 0x64, 0x1f, 0x12, 0xc6, 0xae, 0x92, 0x7d, 0xf4, 0x2e, - 0x46, 0x4d, 0xe1, 0x5f, 0xe5, 0x82, 0x85, 0x95, 0xff, 0x71, 0xb0, 0x85, 0x95, 0x12, 0x98, 0x35, - 0x2d, 0x17, 0x39, 0x96, 0xd1, 0x5e, 0x6e, 0x1b, 0x5b, 0xfe, 0xf1, 0xe3, 0xde, 0x59, 0x78, 0x85, - 0xc9, 0xa3, 0xf2, 0x7f, 0xc8, 0xa7, 0x00, 0x70, 0xd1, 0x4e, 0xa7, 0x6d, 0xb8, 0xa1, 0xe8, 0x31, - 0x29, 0xac, 0xf4, 0xe5, 0x78, 0xe9, 0xbb, 0x0d, 0x5c, 0x45, 0x40, 0xd3, 0xaf, 0x74, 0xd0, 0x86, - 0x65, 0xfe, 0xc8, 0x2e, 0x0e, 0x40, 0x43, 0x64, 0xb4, 0xdf, 0x27, 0xf8, 0x3f, 0x85, 0x8f, 0x51, - 0xfa, 0x9a, 0x3d, 0xe0, 0x18, 0x65, 0xa0, 0x4d, 0x52, 0x8f, 0x36, 0x05, 0x06, 0x41, 0x4e, 0xc0, - 0x20, 0x60, 0x39, 0x9f, 0x17, 0x34, 0xa6, 0xdf, 0x20, 0x74, 0x4e, 0x33, 0xae, 0x19, 0xe9, 0xf7, - 0x50, 0xef, 0x97, 0xc0, 0x1c, 0xa9, 0x7a, 0xd1, 0xb6, 0x2f, 0xee, 0x18, 0xce, 0x45, 0x76, 0x6e, - 0x31, 0x84, 0xb8, 0x45, 0xaf, 0x94, 0x7d, 0x9a, 0x45, 0x76, 0x85, 0x47, 0xf6, 0x19, 0xd1, 0x2c, - 0xf1, 0xe9, 0x1a, 0xcf, 0xe2, 0xc6, 0x5b, 0x02, 0xcc, 0x9e, 0xcf, 0x61, 0xf6, 0xfd, 0x89, 0x09, - 0x4c, 0x1f, 0xbb, 0xdf, 0x0f, 0xb0, 0xf3, 0x3b, 0xec, 0xd4, 0xb0, 0xfb, 0xca, 0x70, 0xd8, 0xf9, - 0x74, 0x0d, 0x81, 0x5d, 0x11, 0x48, 0x17, 0x83, 0x2d, 0x25, 0xef, 0x91, 0x6d, 0x50, 0x2e, 0x3d, - 0x34, 0x23, 0x48, 0x1e, 0x0b, 0x9a, 0xc7, 0x79, 0x12, 0x6a, 0x9d, 0x54, 0x31, 0xfd, 0x92, 0xf0, - 0x7a, 0x4b, 0x5f, 0x06, 0x11, 0xea, 0xc6, 0xa3, 0x95, 0x62, 0x8b, 0x35, 0xe2, 0x64, 0xa6, 0x8f, - 0xe6, 0xdf, 0xe7, 0xc0, 0x94, 0x7f, 0x98, 0xd5, 0x85, 0x7f, 0xc4, 0x0c, 0xe1, 0x27, 0x41, 0xa1, - 0x6b, 0xef, 0x3a, 0x4d, 0x44, 0x57, 0xc0, 0xe8, 0xdb, 0x10, 0xab, 0x35, 0x03, 0xc7, 0xe5, 0x7d, - 0x43, 0x7f, 0x2e, 0xf1, 0xd0, 0x1f, 0x69, 0x58, 0xc2, 0x97, 0x0b, 0x87, 0x1e, 0xe4, 0x70, 0xd1, - 0x90, 0xfb, 0x44, 0x1c, 0xab, 0x3f, 0x2c, 0x34, 0xdf, 0x1f, 0xd0, 0x92, 0x64, 0x62, 0x55, 0x1b, - 0xc2, 0xa8, 0xbc, 0x16, 0x5c, 0xed, 0xe7, 0xa0, 0xd6, 0x24, 0xb6, 0x1e, 0x37, 0xd4, 0xb5, 0xa2, - 0x04, 0x5f, 0x9c, 0x03, 0x45, 0x42, 0x5a, 0x2d, 0x30, 0xac, 0xe0, 0xab, 0x0f, 0xdd, 0x7a, 0x8c, - 0x9e, 0x0e, 0x7e, 0x36, 0x2b, 0x1a, 0xde, 0x88, 0x63, 0x7c, 0xd8, 0xba, 0x08, 0x49, 0x1a, 0x42, - 0x95, 0x62, 0x84, 0x0f, 0xfe, 0x5a, 0x46, 0x24, 0x5a, 0x92, 0x18, 0x89, 0xe9, 0xf7, 0x3c, 0x6f, - 0xcc, 0xf9, 0x71, 0x07, 0x96, 0x1d, 0x7b, 0x67, 0xc3, 0x69, 0xc3, 0x8f, 0x08, 0x05, 0xa3, 0x8b, - 0x30, 0xd5, 0xb3, 0x91, 0xa6, 0xba, 0x37, 0x44, 0xef, 0x3a, 0x6d, 0x7f, 0x88, 0xde, 0x75, 0xda, - 0x43, 0x0c, 0xd1, 0xf2, 0x4d, 0x60, 0xce, 0x68, 0xb5, 0xea, 0xc6, 0x16, 0x2a, 0x7b, 0x73, 0x60, - 0xcb, 0xa5, 0x67, 0x92, 0x7b, 0x52, 0x13, 0xec, 0x8c, 0x71, 0x40, 0x50, 0x1e, 0x3c, 0x91, 0x76, - 0xc6, 0x04, 0xe8, 0x4b, 0x5f, 0x4a, 0x3e, 0x99, 0x05, 0xb3, 0xbe, 0xe1, 0xba, 0x8c, 0xdc, 0xe6, - 0x36, 0xbc, 0x53, 0x74, 0x85, 0x82, 0xc2, 0x9e, 0x0d, 0x60, 0x87, 0xdf, 0xcd, 0x24, 0xc4, 0x86, - 0xab, 0x39, 0x62, 0x79, 0x27, 0x11, 0x33, 0xe3, 0x0a, 0x4c, 0x9f, 0x99, 0x5f, 0xce, 0x02, 0xa0, - 0xdb, 0xc1, 0x04, 0xea, 0x00, 0x9c, 0x7c, 0xa5, 0x70, 0x98, 0x72, 0xda, 0xf0, 0xb0, 0xda, 0xe4, - 0x22, 0x2e, 0xb8, 0x37, 0x33, 0xa8, 0xa6, 0xf4, 0xf9, 0xfb, 0xc1, 0x2c, 0x98, 0x5a, 0xda, 0xed, - 0xb4, 0xcd, 0xa6, 0xe1, 0xf6, 0x6e, 0x28, 0x46, 0xb3, 0x17, 0xdf, 0x37, 0x92, 0xc8, 0x42, 0x09, - 0xea, 0x88, 0xe0, 0x25, 0x39, 0x6d, 0x99, 0xf5, 0x4f, 0x5b, 0x0a, 0x6e, 0x12, 0x0c, 0x28, 0x7c, - 0x0c, 0xe2, 0x29, 0x81, 0xa3, 0xb5, 0x0e, 0xb2, 0x16, 0x1d, 0x64, 0xb4, 0x9a, 0xce, 0xee, 0xce, - 0x85, 0x2e, 0xbb, 0x1b, 0x1e, 0x2f, 0xa3, 0xcc, 0x9a, 0x63, 0x96, 0x5b, 0x73, 0x84, 0x3f, 0x21, - 0x89, 0x9e, 0xfd, 0x65, 0x56, 0xc6, 0x19, 0x1a, 0x86, 0xe8, 0x93, 0x13, 0xed, 0xe1, 0xf4, 0x2c, - 0x2f, 0xe6, 0x92, 0x2c, 0x2f, 0xbe, 0x55, 0xe8, 0x24, 0xb1, 0x50, 0xbb, 0xc6, 0xb2, 0x15, 0x37, - 0xa7, 0x21, 0x37, 0x02, 0xde, 0x1b, 0xc1, 0xec, 0x85, 0xf0, 0x4b, 0x00, 0x31, 0x9f, 0xd8, 0x67, - 0x83, 0xfc, 0x6d, 0x49, 0xa7, 0xfc, 0x3c, 0x09, 0x11, 0xe8, 0x06, 0x08, 0x66, 0x45, 0x76, 0xe1, - 0x12, 0xcd, 0xdf, 0x63, 0xeb, 0x4f, 0x1f, 0x85, 0x8f, 0x65, 0xc1, 0x34, 0xbe, 0x45, 0x65, 0xf1, - 0x0a, 0x76, 0xcf, 0x7e, 0x0a, 0x17, 0x6a, 0x2b, 0xd2, 0xe3, 0xe7, 0x65, 0x2c, 0x9b, 0x65, 0x90, - 0x6b, 0x9b, 0xd6, 0x45, 0x7f, 0xfb, 0xd4, 0x7b, 0x0e, 0x63, 0xf2, 0x67, 0xfb, 0xc4, 0xe4, 0x0f, - 0x16, 0xb8, 0x83, 0x7a, 0x0f, 0x74, 0x49, 0xd4, 0xc0, 0xe2, 0xd2, 0x67, 0xe3, 0x1f, 0xe4, 0x40, - 0x41, 0x43, 0x86, 0xd3, 0xdc, 0x86, 0xaf, 0x63, 0x0e, 0xba, 0x2f, 0x83, 0x89, 0x4d, 0xb3, 0xed, - 0x22, 0x87, 0x38, 0x8e, 0xb0, 0x1d, 0x38, 0x51, 0xe4, 0xc5, 0xb6, 0xdd, 0xbc, 0xb8, 0x40, 0xad, - 0xc5, 0x05, 0x3f, 0x66, 0xd0, 0xc2, 0x32, 0xfe, 0x49, 0xf5, 0x7f, 0x96, 0xef, 0x03, 0xf9, 0xae, - 0xed, 0xb8, 0x51, 0x41, 0x38, 0x23, 0x4a, 0xd1, 0x6c, 0xc7, 0x55, 0xc9, 0x8f, 0x1e, 0x98, 0x9b, - 0xbb, 0xed, 0xb6, 0x8e, 0x2e, 0xbb, 0xfe, 0x4c, 0xc1, 0x7f, 0xf7, 0xe6, 0xf6, 0xf6, 0xe6, 0x66, - 0x17, 0x91, 0x79, 0x6a, 0x5e, 0xa5, 0x6f, 0xf2, 0x71, 0x90, 0x6f, 0x9b, 0x3b, 0x26, 0xb1, 0x6d, - 0xf3, 0x2a, 0x79, 0x91, 0x6f, 0x01, 0xc5, 0xd0, 0xac, 0x26, 0x84, 0xce, 0x17, 0xb0, 0x02, 0xee, - 0x4b, 0xf7, 0x24, 0xe3, 0x22, 0xba, 0xd2, 0x9d, 0x9f, 0xc0, 0xdf, 0xf1, 0x33, 0xef, 0xa5, 0x27, - 0xb2, 0x54, 0x4e, 0xf8, 0x1a, 0x3d, 0x69, 0x72, 0x50, 0xd3, 0x76, 0x5a, 0x3e, 0x6f, 0xa2, 0xed, - 0x5d, 0x9a, 0x2f, 0xd9, 0x02, 0x77, 0xdf, 0xca, 0xc7, 0xb0, 0x43, 0x5e, 0xf0, 0x3a, 0x47, 0xaf, - 0xea, 0xf3, 0xa6, 0xbb, 0xbd, 0x8e, 0x5c, 0x03, 0xfe, 0x81, 0xf4, 0xff, 0xcb, 0x55, 0x8c, 0x5c, - 0x91, 0x33, 0xdf, 0xee, 0xae, 0x63, 0x79, 0xdc, 0xa2, 0x51, 0x96, 0x98, 0x14, 0xf9, 0x6e, 0x70, - 0x4d, 0xf8, 0xe6, 0xaf, 0xb3, 0x2d, 0xd1, 0xb9, 0xd2, 0x14, 0xce, 0x1e, 0x9d, 0x41, 0xae, 0x83, - 0x1b, 0xc8, 0xc7, 0x55, 0x7d, 0x7d, 0x6d, 0xd5, 0xdc, 0xda, 0x6e, 0x9b, 0x5b, 0xdb, 0x6e, 0xb7, - 0x62, 0x75, 0x5d, 0x64, 0xb4, 0x6a, 0x9b, 0x2a, 0x09, 0x92, 0x0b, 0x70, 0x39, 0x22, 0x59, 0x79, - 0xf7, 0x11, 0xb1, 0x91, 0x8a, 0x95, 0x87, 0x08, 0x7d, 0xf8, 0x7e, 0x4f, 0x1f, 0xba, 0xbb, 0xed, - 0x00, 0xd3, 0xeb, 0x7a, 0x30, 0x0d, 0x05, 0x7a, 0xb7, 0x8d, 0x95, 0x02, 0x67, 0x4e, 0x3a, 0x66, - 0xc5, 0x50, 0x92, 0xbe, 0x72, 0xfc, 0xbf, 0x05, 0x90, 0x5f, 0x71, 0x8c, 0xce, 0x36, 0x7c, 0x71, - 0x0a, 0x7d, 0x6d, 0x20, 0x9d, 0xd9, 0x41, 0xd2, 0x29, 0x0d, 0x90, 0xce, 0x1c, 0x23, 0x9d, 0xd1, - 0x5b, 0xdd, 0x67, 0xc0, 0x4c, 0xd3, 0x6e, 0xb7, 0x51, 0xd3, 0xe3, 0x47, 0xa5, 0x85, 0x03, 0x83, - 0x4c, 0xa9, 0x5c, 0x1a, 0x8e, 0x9e, 0x86, 0x5c, 0x8d, 0x2c, 0xc0, 0x12, 0xa1, 0x0f, 0x13, 0xe0, - 0xab, 0xb3, 0x20, 0xa7, 0xb4, 0xb6, 0x10, 0xb7, 0x48, 0x9b, 0x61, 0x16, 0x69, 0x4f, 0x82, 0x82, - 0x6b, 0x38, 0x5b, 0xc8, 0xf5, 0x8f, 0xe3, 0x90, 0xb7, 0x20, 0xa8, 0x9b, 0xc4, 0x04, 0x75, 0x7b, - 0x36, 0xc8, 0x79, 0x3c, 0xa3, 0xe1, 0x52, 0x6e, 0xe8, 0x07, 0x3f, 0xe6, 0xfd, 0x82, 0x57, 0xe3, - 0x82, 0xd7, 0x6a, 0x15, 0xff, 0xd0, 0x8b, 0x75, 0x7e, 0x1f, 0xd6, 0xf8, 0xbe, 0x8f, 0xa6, 0x6d, - 0x55, 0x76, 0x8c, 0x2d, 0x44, 0x9b, 0x19, 0x26, 0xf8, 0x5f, 0x95, 0x1d, 0xfb, 0x41, 0x93, 0xc6, - 0x57, 0x0b, 0x13, 0xbc, 0x26, 0x6c, 0x9b, 0xad, 0x16, 0xb2, 0xa8, 0x66, 0xd3, 0xb7, 0x33, 0xa7, - 0x40, 0xce, 0xa3, 0xc1, 0x93, 0x1f, 0x6f, 0xe0, 0x2f, 0x1e, 0x91, 0x67, 0x3c, 0xb5, 0x22, 0xca, - 0x5b, 0xcc, 0xf0, 0x8b, 0x75, 0x22, 0xbe, 0x1b, 0xa4, 0x71, 0xfd, 0x95, 0xeb, 0xe9, 0x20, 0x6f, - 0xd9, 0x2d, 0x34, 0x70, 0xa8, 0x21, 0xb9, 0xe4, 0x67, 0x82, 0x3c, 0x6a, 0x79, 0xbd, 0x82, 0x84, - 0xb3, 0x9f, 0x8a, 0xe7, 0xa5, 0x4a, 0x32, 0x27, 0x73, 0x10, 0xe9, 0x47, 0x6d, 0xfa, 0x0a, 0xf8, - 0x4b, 0x13, 0xe0, 0x28, 0xe9, 0x03, 0xb4, 0xdd, 0x0b, 0x5e, 0x51, 0x17, 0x10, 0x7c, 0x4c, 0xe2, - 0xa2, 0x48, 0x76, 0x77, 0x2f, 0x04, 0x66, 0x23, 0x79, 0x61, 0x15, 0x34, 0x3b, 0x92, 0x41, 0x4b, - 0x1a, 0x76, 0xd0, 0xe2, 0x06, 0x20, 0xc9, 0x57, 0xf1, 0x70, 0xb8, 0x2a, 0xe0, 0x64, 0x7f, 0xb8, - 0xea, 0x37, 0xd8, 0xcc, 0x83, 0x09, 0x63, 0xd3, 0x45, 0x4e, 0xa5, 0x85, 0xe5, 0x71, 0x4a, 0xf5, - 0x5f, 0xbd, 0x01, 0xf1, 0x02, 0xda, 0xb4, 0x1d, 0x4f, 0xd3, 0xa7, 0xc8, 0x80, 0xe8, 0xbf, 0x33, - 0xfa, 0x09, 0xb8, 0x4d, 0x94, 0x9b, 0xc1, 0x51, 0x73, 0xcb, 0xb2, 0x1d, 0x14, 0x78, 0xe6, 0xcd, - 0xcf, 0x90, 0xc3, 0xe2, 0x3d, 0xc9, 0xf2, 0xad, 0xe0, 0x98, 0x65, 0x2f, 0xa1, 0x0e, 0xe5, 0x3b, - 0x41, 0x75, 0x16, 0x6b, 0xc4, 0xfe, 0x0f, 0xfb, 0xba, 0x96, 0xb9, 0xfd, 0x5d, 0x0b, 0xfc, 0x4c, - 0xd2, 0xf9, 0x70, 0x0f, 0xf0, 0x23, 0xb3, 0xcb, 0xe4, 0xe7, 0x82, 0x99, 0x16, 0xf5, 0xdb, 0x69, - 0x9a, 0x81, 0xd6, 0x44, 0xfe, 0xc7, 0x65, 0x0e, 0x45, 0x2e, 0xc7, 0x8a, 0xdc, 0x0a, 0x98, 0xc4, - 0xa7, 0x34, 0x3c, 0x99, 0xcb, 0xf7, 0x04, 0xa3, 0xc3, 0x53, 0xb6, 0xa0, 0x51, 0x0c, 0xdb, 0x16, - 0xca, 0xf4, 0x17, 0x35, 0xf8, 0x39, 0xd9, 0xcc, 0x3a, 0x9e, 0x43, 0xe9, 0xab, 0xe7, 0x67, 0x73, - 0xe0, 0xe8, 0x8a, 0x63, 0xef, 0x76, 0xba, 0xa1, 0x7a, 0xfe, 0x45, 0xff, 0xd5, 0xf4, 0x02, 0x3f, - 0x16, 0xf5, 0x57, 0xdc, 0xd3, 0x60, 0xda, 0xa1, 0x3d, 0x6a, 0xb8, 0xb6, 0xce, 0x26, 0xb1, 0xaa, - 0x2d, 0x1d, 0x44, 0xb5, 0x43, 0x05, 0xc9, 0x71, 0x0a, 0xd2, 0x2b, 0xc8, 0xf9, 0x3e, 0x82, 0xfc, - 0xe7, 0xd9, 0x84, 0x82, 0xdc, 0xc3, 0xa2, 0x08, 0x41, 0x2e, 0x83, 0xc2, 0x16, 0xce, 0x48, 0xe5, - 0xf8, 0x69, 0x62, 0x2d, 0xc3, 0x85, 0xab, 0xf4, 0xd7, 0x90, 0xaf, 0x12, 0xc3, 0xd7, 0x64, 0x42, - 0x15, 0x4f, 0x6d, 0xfa, 0x42, 0xf5, 0xce, 0x1c, 0x98, 0x09, 0x6a, 0xc7, 0x07, 0x1f, 0x32, 0x83, - 0x3a, 0xfc, 0x7d, 0xab, 0x33, 0x41, 0x57, 0x2a, 0x31, 0x5d, 0x69, 0x9f, 0xce, 0x6f, 0x3a, 0x41, - 0xe7, 0x37, 0x13, 0xd1, 0xf9, 0xc1, 0x17, 0x49, 0xa2, 0x41, 0x8b, 0xf9, 0x3e, 0x00, 0xb7, 0xee, - 0x89, 0xdc, 0xab, 0x09, 0x86, 0x4e, 0x1e, 0xdc, 0xaa, 0xf4, 0x85, 0xe6, 0x43, 0x59, 0x70, 0x8c, - 0xf4, 0x86, 0x1b, 0x56, 0x37, 0xe8, 0x8b, 0x9e, 0xcc, 0xbb, 0x15, 0x78, 0x6d, 0xea, 0x06, 0x6e, - 0x05, 0xf8, 0x8d, 0x5f, 0x04, 0x8f, 0x3d, 0xb3, 0xc4, 0xf5, 0xb9, 0x4c, 0x2d, 0x11, 0x2b, 0x4a, - 0x62, 0xa7, 0x92, 0x04, 0x0b, 0x4d, 0x9f, 0x81, 0x3f, 0x2f, 0x81, 0x29, 0x0d, 0xb9, 0x6b, 0xc6, - 0x15, 0x7b, 0xd7, 0x85, 0x86, 0xe8, 0xf2, 0xf7, 0x73, 0x40, 0xa1, 0x8d, 0x7f, 0xa1, 0x37, 0x70, - 0x9d, 0xee, 0xbb, 0x7e, 0x8c, 0x37, 0x7a, 0x49, 0xd1, 0x2a, 0xcd, 0xcf, 0x1f, 0x16, 0x13, 0xd9, - 0x7d, 0x08, 0xa8, 0x1b, 0xc9, 0xd2, 0x69, 0xa2, 0xbd, 0x89, 0xa8, 0xaa, 0xd3, 0x87, 0xe5, 0x27, - 0x24, 0x30, 0xab, 0x21, 0xb7, 0xd2, 0x5d, 0x36, 0xf6, 0x6c, 0xc7, 0x74, 0x11, 0x7b, 0x19, 0x44, - 0x3c, 0x34, 0xa7, 0x00, 0x30, 0x83, 0xdf, 0x68, 0x34, 0x70, 0x26, 0x05, 0xfe, 0x5a, 0xd2, 0x1d, - 0x63, 0x8e, 0x8e, 0x91, 0x80, 0x90, 0x68, 0x0f, 0x33, 0xae, 0xfa, 0xf4, 0x81, 0xf8, 0x42, 0x96, - 0x02, 0x51, 0x72, 0x9a, 0xdb, 0xe6, 0x1e, 0x6a, 0x25, 0x04, 0xc2, 0xff, 0x2d, 0x04, 0x22, 0x28, - 0x28, 0xf1, 0xf6, 0x30, 0x47, 0xc7, 0x28, 0xb6, 0x87, 0xe3, 0x0a, 0x1c, 0xcb, 0x29, 0x54, 0xaf, - 0xeb, 0xa1, 0x6b, 0x0c, 0xf7, 0x8a, 0xb2, 0x35, 0x34, 0xe1, 0xb2, 0xac, 0x09, 0x37, 0x54, 0xc7, - 0x42, 0xea, 0x1e, 0x24, 0xd3, 0xb9, 0x34, 0x3a, 0x96, 0xbe, 0x55, 0xa7, 0xcf, 0xf4, 0xf7, 0x48, - 0xe0, 0x44, 0x60, 0xf0, 0x68, 0xc8, 0x5d, 0x32, 0xba, 0xdb, 0x17, 0x6c, 0xc3, 0x69, 0xb1, 0x37, - 0xb3, 0x0d, 0x7d, 0x14, 0x03, 0xfe, 0x29, 0x0b, 0x42, 0x95, 0x07, 0xa1, 0xaf, 0x5f, 0x50, 0x5f, - 0x5a, 0x46, 0xd1, 0xc9, 0xc4, 0xba, 0x2e, 0xfd, 0x46, 0x00, 0xd6, 0x0f, 0x70, 0x60, 0xdd, 0x33, - 0x2c, 0x89, 0xe9, 0x03, 0xf7, 0x8b, 0x64, 0x44, 0x60, 0x5c, 0xd8, 0x1e, 0x10, 0x05, 0x2c, 0xc2, - 0x85, 0x49, 0x8a, 0x3e, 0x6d, 0x30, 0xcc, 0x18, 0x31, 0xd0, 0xfd, 0x2c, 0xdd, 0x31, 0xe2, 0x10, - 0x5d, 0xcb, 0xde, 0x29, 0x81, 0x22, 0x3e, 0x9f, 0xcb, 0xb8, 0xf7, 0xc1, 0x07, 0x45, 0xd1, 0xd9, - 0xe7, 0x4a, 0x38, 0x91, 0xd4, 0x95, 0x10, 0xbe, 0x23, 0xa9, 0xc3, 0x60, 0x2f, 0xb5, 0x23, 0x41, - 0x2c, 0x91, 0x3f, 0xe0, 0x00, 0x0a, 0xd2, 0x07, 0xed, 0x3f, 0x4b, 0x00, 0x78, 0x0a, 0x4d, 0x7d, - 0xd4, 0x5e, 0x20, 0x0a, 0xd7, 0x59, 0xd6, 0x89, 0xd2, 0x03, 0xea, 0x44, 0x0f, 0x50, 0xa4, 0xc4, - 0xd0, 0xfb, 0xed, 0x4d, 0x49, 0x7d, 0x97, 0x42, 0xaa, 0x46, 0x02, 0x4b, 0x22, 0x6f, 0xa6, 0xc8, - 0xba, 0xd3, 0x07, 0xe4, 0x7d, 0x59, 0x90, 0xd7, 0x6d, 0x0d, 0xb9, 0x07, 0x37, 0x05, 0x12, 0x9f, - 0xa7, 0xc4, 0xf5, 0x8e, 0xe2, 0x3c, 0x65, 0xbf, 0x82, 0xd2, 0x67, 0xdd, 0x63, 0x59, 0x30, 0xa3, - 0xdb, 0xe5, 0x60, 0xb1, 0x4a, 0xdc, 0x17, 0x4c, 0xfc, 0xe2, 0xa5, 0xa0, 0x81, 0x61, 0x35, 0x07, - 0xba, 0x78, 0x69, 0x70, 0x79, 0xe9, 0xf3, 0xed, 0x4e, 0x70, 0x74, 0xc3, 0x6a, 0xd9, 0x2a, 0x6a, - 0xd9, 0x74, 0x49, 0x56, 0x96, 0x41, 0x6e, 0xd7, 0x6a, 0xd9, 0x98, 0xe4, 0xbc, 0x8a, 0x9f, 0xbd, - 0x34, 0x07, 0xb5, 0x6c, 0xba, 0x5f, 0x87, 0x9f, 0xe1, 0xd7, 0x25, 0x90, 0xf3, 0xfe, 0x15, 0x67, - 0xf5, 0x3b, 0xa5, 0x84, 0x27, 0x44, 0xbd, 0xe2, 0x47, 0x62, 0x09, 0xdd, 0xcb, 0x2c, 0x52, 0x13, - 0x0f, 0xb1, 0x1b, 0xa2, 0xea, 0x63, 0x58, 0x11, 0x2e, 0x4e, 0xcb, 0xf3, 0x60, 0xe2, 0x42, 0xdb, - 0x6e, 0x5e, 0x0c, 0x0f, 0x32, 0xd2, 0x57, 0xf9, 0x16, 0x90, 0x77, 0x0c, 0x6b, 0x0b, 0xd1, 0xc5, - 0xef, 0xe3, 0x3d, 0x7d, 0x21, 0xde, 0x89, 0x56, 0x49, 0x16, 0xf8, 0x8e, 0x24, 0x67, 0x53, 0xfb, - 0x34, 0x3e, 0x99, 0x3c, 0x2c, 0x0d, 0x71, 0x8c, 0xa0, 0x08, 0x66, 0xca, 0x25, 0x72, 0xc5, 0xd9, - 0x7a, 0xed, 0x9c, 0x52, 0x94, 0x30, 0xcc, 0x1e, 0x4f, 0x52, 0x84, 0xd9, 0x2b, 0xfe, 0xdf, 0x2d, - 0xcc, 0x7d, 0x1a, 0x7f, 0x18, 0x30, 0x7f, 0x32, 0x0b, 0x66, 0xd7, 0xcc, 0xae, 0x1b, 0xe5, 0x4d, - 0x1b, 0x13, 0x9e, 0xe7, 0xe5, 0x49, 0x4d, 0x65, 0xae, 0x1e, 0xe1, 0xb8, 0x3c, 0x89, 0xcc, 0xe1, - 0xb8, 0x2a, 0xc6, 0xe3, 0xf6, 0x8d, 0x29, 0x20, 0xd7, 0x12, 0x09, 0x73, 0x32, 0xb1, 0xa1, 0x14, - 0x56, 0x32, 0x7e, 0x43, 0x29, 0xb2, 0xee, 0xf4, 0xf9, 0xfb, 0xf5, 0x2c, 0x38, 0xe6, 0x55, 0x1f, - 0xb7, 0x2c, 0x15, 0xcd, 0xe6, 0x81, 0xcb, 0x52, 0x89, 0x57, 0xc6, 0xf7, 0xd1, 0x32, 0x8a, 0x95, - 0xf1, 0x41, 0x85, 0x8e, 0x99, 0xcd, 0x11, 0xcb, 0xb0, 0x83, 0xd8, 0x1c, 0xb3, 0x0c, 0x3b, 0x3c, - 0x9b, 0xe3, 0x97, 0x62, 0x87, 0x64, 0xf3, 0xa1, 0x2d, 0xb0, 0xfe, 0x8a, 0x14, 0xb0, 0x39, 0x72, - 0x6d, 0x23, 0x86, 0xcd, 0x89, 0x8f, 0x67, 0xc1, 0x77, 0x0d, 0xc9, 0xf8, 0x11, 0xaf, 0x6f, 0x0c, - 0x03, 0xd3, 0x21, 0xae, 0x71, 0xbc, 0x46, 0x02, 0x73, 0x94, 0x8a, 0xfe, 0x53, 0xe6, 0x18, 0x8c, - 0x12, 0x4f, 0x99, 0x13, 0xfb, 0xd8, 0xf3, 0x94, 0x8d, 0xdf, 0xc7, 0x3e, 0xb6, 0xfe, 0x31, 0x84, - 0xdc, 0xcc, 0x81, 0x93, 0x1e, 0x09, 0xeb, 0x76, 0xcb, 0xdc, 0xbc, 0x42, 0xa8, 0x38, 0x67, 0xb4, - 0x77, 0x51, 0x17, 0xfe, 0x4e, 0x56, 0x14, 0xa5, 0xff, 0x03, 0x00, 0xbb, 0x83, 0x1c, 0x12, 0xe1, - 0x86, 0x02, 0x75, 0x77, 0x54, 0x63, 0xf7, 0xd7, 0x14, 0x44, 0x9d, 0xad, 0xf9, 0x85, 0xa8, 0x4c, - 0x79, 0xf0, 0x7d, 0x19, 0x30, 0x15, 0x7c, 0xf1, 0xa3, 0x18, 0x64, 0xc2, 0x28, 0x06, 0xb7, 0x00, - 0xc9, 0x68, 0xb5, 0x02, 0x68, 0x7a, 0x37, 0xaf, 0x71, 0x1d, 0xab, 0x47, 0x54, 0x2f, 0x93, 0x97, - 0xb7, 0x8b, 0xc2, 0xc3, 0x2e, 0x91, 0x79, 0xbb, 0xc8, 0x95, 0x6f, 0x03, 0x05, 0x72, 0x2d, 0x53, - 0xb0, 0x8a, 0x1f, 0x95, 0x9d, 0xe6, 0x5b, 0x3c, 0x0a, 0x66, 0x03, 0xba, 0x71, 0x5f, 0xc4, 0x59, - 0x78, 0x35, 0x5e, 0x1a, 0xef, 0x4c, 0xc4, 0xa0, 0x7e, 0xdd, 0x75, 0x68, 0x2e, 0xab, 0x9c, 0x9c, - 0x3d, 0x6f, 0xe8, 0x92, 0xc7, 0xb3, 0x29, 0x56, 0xea, 0x74, 0xda, 0x57, 0x74, 0x7a, 0xa8, 0x3e, - 0xd1, 0xa6, 0x18, 0x73, 0x36, 0x3f, 0xdb, 0x7b, 0x36, 0x3f, 0xf9, 0xa6, 0x18, 0x47, 0xc7, 0x28, - 0x36, 0xc5, 0xe2, 0x0a, 0x1c, 0xc3, 0xb2, 0x64, 0x9e, 0x18, 0xcf, 0x34, 0x86, 0xe0, 0x5b, 0xb2, - 0x7d, 0xbd, 0xaa, 0x00, 0xef, 0x55, 0xd5, 0x2f, 0xbc, 0x60, 0x6c, 0xec, 0x54, 0xf9, 0x99, 0xa0, - 0xb0, 0x69, 0x3b, 0x3b, 0x86, 0xbf, 0x7f, 0xdf, 0xeb, 0xc4, 0x4d, 0xe3, 0xf6, 0x2d, 0xe3, 0x3c, - 0x2a, 0xcd, 0xeb, 0xa9, 0xed, 0x0b, 0xcd, 0x0e, 0x8d, 0x8a, 0xe5, 0x3d, 0xca, 0x37, 0x82, 0x59, - 0x1a, 0x1c, 0xab, 0x8a, 0xba, 0x2e, 0x6a, 0xd1, 0x53, 0xca, 0x7c, 0xa2, 0x7c, 0x06, 0xcc, 0xd0, - 0x84, 0x65, 0xb3, 0x8d, 0xba, 0xf4, 0x6a, 0x42, 0x2e, 0x4d, 0x3e, 0x09, 0x0a, 0x66, 0xf7, 0xf9, - 0x5d, 0xdb, 0xc2, 0xae, 0xb9, 0x93, 0x2a, 0x7d, 0xc3, 0xde, 0x3b, 0x24, 0x5f, 0x60, 0xb3, 0x12, - 0x5f, 0xfa, 0xde, 0x64, 0xf8, 0xb9, 0x61, 0xe6, 0x0f, 0x89, 0xe3, 0x25, 0x7a, 0x28, 0xec, 0x36, - 0x9b, 0x08, 0xb5, 0xe8, 0xa1, 0x03, 0xff, 0x35, 0x61, 0x24, 0xc5, 0xc4, 0xb3, 0x8d, 0x43, 0x0a, - 0xa5, 0xf8, 0x91, 0x13, 0xa0, 0x40, 0xc2, 0x8b, 0xc3, 0x57, 0xcd, 0xf5, 0x15, 0xc6, 0x39, 0x5e, - 0x18, 0x37, 0xc0, 0x8c, 0x65, 0x7b, 0xd5, 0xd5, 0x0d, 0xc7, 0xd8, 0xe9, 0xc6, 0x2d, 0x26, 0x92, - 0x72, 0x83, 0x91, 0xa3, 0xca, 0xfc, 0xb6, 0x7a, 0x44, 0xe5, 0x8a, 0x91, 0xff, 0x4f, 0x70, 0xf4, - 0x02, 0x3d, 0x68, 0xdb, 0xa5, 0x25, 0x67, 0xa3, 0x5d, 0xef, 0x7a, 0x4a, 0x5e, 0xe4, 0xff, 0x5c, - 0x3d, 0xa2, 0xf6, 0x16, 0x26, 0xff, 0x10, 0x98, 0xf3, 0x5e, 0x5b, 0xf6, 0x25, 0x9f, 0x70, 0x29, - 0xda, 0xde, 0xe8, 0x29, 0x7e, 0x9d, 0xfb, 0x71, 0xf5, 0x88, 0xda, 0x53, 0x94, 0x5c, 0x03, 0x60, - 0xdb, 0xdd, 0x69, 0xd3, 0x82, 0x73, 0xd1, 0x22, 0xd9, 0x53, 0xf0, 0x6a, 0xf0, 0xd3, 0xea, 0x11, - 0x95, 0x29, 0x42, 0x5e, 0x03, 0x53, 0xee, 0x65, 0x97, 0x96, 0x97, 0x8f, 0xde, 0xe3, 0xee, 0x29, - 0x4f, 0xf7, 0xff, 0x59, 0x3d, 0xa2, 0x86, 0x05, 0xc8, 0x15, 0x30, 0xd9, 0xb9, 0x40, 0x0b, 0x2b, - 0xf4, 0xb9, 0x52, 0xb9, 0x7f, 0x61, 0xf5, 0x0b, 0x41, 0x59, 0xc1, 0xef, 0x1e, 0x61, 0xcd, 0xee, - 0x1e, 0x2d, 0x6b, 0x42, 0x98, 0xb0, 0xb2, 0xff, 0x8f, 0x47, 0x58, 0x50, 0x80, 0x5c, 0x01, 0x53, - 0x5d, 0xcb, 0xe8, 0x74, 0xb7, 0x6d, 0xb7, 0x3b, 0x3f, 0xd9, 0xe3, 0x1e, 0x19, 0x5d, 0x9a, 0x46, - 0xff, 0x51, 0xc3, 0xbf, 0xe5, 0x67, 0x82, 0x13, 0xbb, 0xf8, 0x9a, 0x36, 0xe5, 0xb2, 0xd9, 0x75, - 0x4d, 0x6b, 0xcb, 0x8f, 0xf1, 0x47, 0x7a, 0x93, 0xfe, 0x1f, 0xe5, 0x05, 0x7a, 0x58, 0x01, 0x60, - 0xdd, 0x84, 0xbd, 0x7b, 0x72, 0xa4, 0x5a, 0xe6, 0x8c, 0xc2, 0x73, 0x41, 0xce, 0xfb, 0x84, 0x1d, - 0x0c, 0xe7, 0xfa, 0xaf, 0xf7, 0xf5, 0xca, 0x0e, 0x56, 0x60, 0xef, 0x27, 0x6f, 0x6c, 0xb4, 0xec, - 0xba, 0x63, 0x6f, 0x39, 0xa8, 0xdb, 0xa5, 0x7e, 0x87, 0x4c, 0x8a, 0xa7, 0xe0, 0x66, 0x77, 0xdd, - 0xdc, 0x22, 0xb6, 0x09, 0xf5, 0xca, 0x66, 0x93, 0xc8, 0xa4, 0xb3, 0x8a, 0x2e, 0xe1, 0xab, 0xbf, - 0xe6, 0x8f, 0xfa, 0x93, 0x4e, 0x3f, 0x05, 0xde, 0x04, 0x66, 0x58, 0x25, 0x23, 0x77, 0x94, 0x98, - 0xf7, 0x07, 0xa6, 0x18, 0x7d, 0x83, 0x37, 0x82, 0x39, 0x5e, 0xa6, 0x99, 0x21, 0x46, 0xf2, 0xbb, - 0x42, 0x78, 0x03, 0x38, 0xda, 0xa3, 0x58, 0xfe, 0xd1, 0xfd, 0x4c, 0x78, 0x74, 0xff, 0x34, 0x00, - 0xa1, 0x14, 0xf7, 0x2d, 0xe6, 0x7a, 0x30, 0x15, 0xc8, 0x65, 0xdf, 0x0c, 0x5f, 0xcd, 0x80, 0x49, - 0x5f, 0xd8, 0xfa, 0x65, 0xf0, 0xc6, 0x17, 0x8b, 0xd9, 0x47, 0xa0, 0xb3, 0x6d, 0x2e, 0xcd, 0x1b, - 0x47, 0x42, 0x6f, 0x5e, 0xdd, 0x74, 0xdb, 0xfe, 0xa9, 0x94, 0xde, 0x64, 0xb9, 0x0e, 0x80, 0x89, - 0x31, 0xd2, 0xc3, 0x63, 0x2a, 0xb7, 0x25, 0xd0, 0x07, 0x22, 0x0f, 0x4c, 0x19, 0x67, 0x9e, 0x4c, - 0xcf, 0x90, 0x4c, 0x81, 0xbc, 0x56, 0x2f, 0x95, 0x95, 0xe2, 0x11, 0x79, 0x0e, 0x00, 0xe5, 0x05, - 0x75, 0x45, 0xad, 0x28, 0xd5, 0xb2, 0x52, 0xcc, 0xc0, 0xd7, 0x66, 0xc1, 0x54, 0xa0, 0x04, 0x7d, - 0x1b, 0xa9, 0x50, 0xd1, 0x1a, 0x78, 0x0d, 0xc4, 0x7e, 0xa5, 0x62, 0x85, 0xec, 0x39, 0xe0, 0xea, - 0xdd, 0x2e, 0x5a, 0x36, 0x9d, 0xae, 0xab, 0xda, 0x97, 0x96, 0x6d, 0x27, 0x88, 0x6a, 0xe9, 0x5f, - 0x77, 0x1c, 0xf1, 0xd9, 0xb3, 0x28, 0x5a, 0x08, 0x9f, 0x64, 0x40, 0x0e, 0x5d, 0x20, 0x0e, 0x13, - 0xbc, 0x72, 0x5d, 0x72, 0xbf, 0x70, 0x17, 0xa9, 0xf6, 0xa5, 0x6e, 0xc9, 0x6a, 0x95, 0xed, 0xf6, - 0xee, 0x8e, 0xd5, 0xa5, 0x36, 0x41, 0xd4, 0x67, 0x8f, 0x3b, 0xf8, 0x92, 0x97, 0x39, 0x00, 0xca, - 0xb5, 0xb5, 0x35, 0xa5, 0xac, 0x57, 0x6a, 0xd5, 0xe2, 0x11, 0x8f, 0x5b, 0x7a, 0x69, 0x71, 0xcd, - 0xe3, 0xce, 0x0f, 0x83, 0x49, 0x5f, 0xa7, 0xf7, 0xdd, 0xed, 0x5c, 0x02, 0x93, 0xbe, 0x96, 0xd3, - 0x11, 0xe1, 0x29, 0xbd, 0x27, 0xd2, 0x76, 0x0c, 0xc7, 0xc5, 0x6e, 0xd4, 0x7e, 0x21, 0x8b, 0x46, - 0x17, 0xa9, 0xc1, 0x6f, 0x67, 0x9e, 0x4e, 0x29, 0x90, 0xc1, 0x5c, 0x69, 0x6d, 0xad, 0x51, 0x53, - 0x1b, 0xd5, 0x9a, 0xbe, 0x5a, 0xa9, 0xae, 0x90, 0x11, 0xb2, 0xb2, 0x52, 0xad, 0xa9, 0x0a, 0x19, - 0x20, 0xb5, 0x62, 0x86, 0x5c, 0x32, 0xb4, 0x38, 0x09, 0x0a, 0x1d, 0xcc, 0x5d, 0xf8, 0x25, 0x29, - 0xe1, 0x81, 0xd3, 0x00, 0xa7, 0x88, 0x6b, 0x50, 0x38, 0x57, 0xf4, 0x6c, 0x9f, 0xe3, 0x5a, 0x67, - 0xc0, 0x0c, 0xb1, 0xe5, 0xba, 0x78, 0x15, 0x9f, 0xde, 0x24, 0xc8, 0xa5, 0xc1, 0x8f, 0x65, 0x13, - 0x9c, 0x42, 0xed, 0x4b, 0x51, 0x32, 0xe3, 0xe2, 0x8f, 0x87, 0xb9, 0x54, 0x48, 0x06, 0x73, 0x95, - 0xaa, 0xae, 0xa8, 0xd5, 0xd2, 0x1a, 0xcd, 0x22, 0xc9, 0xf3, 0xe0, 0x78, 0xb5, 0x46, 0xe3, 0x38, - 0x69, 0xf8, 0xfa, 0xd2, 0xf5, 0x7a, 0x4d, 0xd5, 0x8b, 0x79, 0xf9, 0x24, 0x90, 0xc9, 0x33, 0x77, - 0xfb, 0x6f, 0x41, 0x7e, 0x2a, 0xb8, 0x61, 0xad, 0xb2, 0x5e, 0xd1, 0x1b, 0xb5, 0xe5, 0x86, 0x5a, - 0x3b, 0xaf, 0x79, 0x08, 0xaa, 0xca, 0x5a, 0xc9, 0x13, 0x24, 0xe6, 0xb2, 0xa1, 0x09, 0xf9, 0x2a, - 0x70, 0x14, 0x5f, 0x24, 0x86, 0x6f, 0x10, 0x26, 0xf5, 0x4d, 0xca, 0xd7, 0x81, 0xf9, 0x4a, 0x55, - 0xdb, 0x58, 0x5e, 0xae, 0x94, 0x2b, 0x4a, 0x55, 0x6f, 0xd4, 0x15, 0x75, 0xbd, 0xa2, 0x69, 0xde, - 0xbf, 0xc5, 0x29, 0xf8, 0x11, 0x09, 0x14, 0x48, 0x9f, 0x09, 0xdf, 0x2b, 0x81, 0xd9, 0x73, 0x46, - 0xdb, 0xf4, 0x06, 0x0a, 0x7c, 0xc7, 0x13, 0xbc, 0x9e, 0xf3, 0x50, 0x77, 0xf1, 0x5d, 0x50, 0xd4, - 0x43, 0x1d, 0xbf, 0xc0, 0x1f, 0x67, 0x45, 0x43, 0xe7, 0x45, 0xe3, 0x79, 0x31, 0x40, 0x90, 0x1a, - 0x17, 0xb8, 0xda, 0x22, 0x26, 0x37, 0x6f, 0x08, 0x70, 0x3e, 0xcf, 0xe1, 0x5c, 0x3e, 0x58, 0xf1, - 0xc9, 0xc0, 0xff, 0xa5, 0x51, 0x81, 0x5f, 0x04, 0x33, 0x1b, 0xd5, 0xd2, 0x86, 0xbe, 0x5a, 0x53, - 0x2b, 0x3f, 0x88, 0xa3, 0xc1, 0xce, 0x82, 0xa9, 0xe5, 0x9a, 0xba, 0x58, 0x59, 0x5a, 0x52, 0xaa, - 0xc5, 0xbc, 0x7c, 0x35, 0xb8, 0x4a, 0x53, 0xd4, 0x73, 0x95, 0xb2, 0xd2, 0xd8, 0xa8, 0x96, 0xce, - 0x95, 0x2a, 0x6b, 0xb8, 0x8f, 0x28, 0xc4, 0xdc, 0x4f, 0x35, 0x01, 0x7f, 0x34, 0x07, 0x00, 0x69, - 0xba, 0x67, 0x49, 0xb3, 0xb7, 0x18, 0xfd, 0x49, 0xd2, 0x49, 0x43, 0x58, 0x4c, 0x84, 0xfe, 0x56, - 0xc0, 0xa4, 0x43, 0x3f, 0xd0, 0x55, 0x94, 0x41, 0xe5, 0x90, 0x47, 0xbf, 0x34, 0x35, 0xf8, 0x1d, - 0xbe, 0x3f, 0xc9, 0x1c, 0x21, 0x92, 0xb0, 0x64, 0x48, 0x2e, 0x8f, 0x06, 0x48, 0xf8, 0xb2, 0x0c, - 0x98, 0xe3, 0x1b, 0xe6, 0x35, 0x02, 0x1b, 0x53, 0x62, 0x8d, 0xe0, 0x7f, 0x66, 0x8c, 0xac, 0x33, - 0x77, 0xd0, 0xe1, 0x14, 0xf8, 0x9a, 0x49, 0x0e, 0x65, 0xfa, 0x16, 0x4b, 0x31, 0xe3, 0x11, 0xef, - 0x19, 0x1d, 0xe4, 0x0a, 0x5b, 0xfd, 0xb2, 0x5b, 0x94, 0xe0, 0x63, 0x39, 0x30, 0xcb, 0x5d, 0x93, - 0x04, 0xff, 0x31, 0x23, 0x72, 0xf5, 0x09, 0x73, 0x01, 0x53, 0xe6, 0xa0, 0x17, 0x30, 0x9d, 0xf9, - 0xb1, 0x0c, 0x98, 0xa0, 0x89, 0x98, 0xc1, 0xb5, 0xaa, 0x67, 0x0b, 0x1c, 0x05, 0xd3, 0x2b, 0x8a, - 0xde, 0xd0, 0xf4, 0x92, 0xaa, 0x2b, 0x4b, 0xc5, 0x8c, 0x7c, 0x02, 0x1c, 0xab, 0x2b, 0xaa, 0x56, - 0xf3, 0xf8, 0x59, 0x57, 0x6b, 0xb8, 0x23, 0x24, 0x6c, 0xf6, 0x60, 0x58, 0x53, 0x96, 0x56, 0x94, - 0xc6, 0x62, 0x49, 0x53, 0x8a, 0x92, 0xf7, 0x6f, 0xb5, 0xa6, 0x2b, 0x5a, 0x63, 0xa9, 0x52, 0x52, - 0x1f, 0x28, 0xe6, 0xbc, 0x7f, 0x35, 0x5d, 0x2d, 0xe9, 0xca, 0x4a, 0xa5, 0x8c, 0x2f, 0xfe, 0xf5, - 0x34, 0x20, 0xef, 0x0d, 0xa6, 0xca, 0x7a, 0x5d, 0x7f, 0xa0, 0x58, 0x48, 0xee, 0xdc, 0xd7, 0xdb, - 0xb8, 0x31, 0x3b, 0xf7, 0xc5, 0x55, 0x3f, 0x86, 0x1b, 0xa2, 0x24, 0x50, 0x24, 0x14, 0x28, 0x97, - 0x3b, 0xc8, 0x31, 0x91, 0xd5, 0x44, 0xf0, 0xa2, 0x48, 0xe4, 0xb8, 0x7d, 0x61, 0xac, 0xf0, 0x18, - 0xc1, 0x58, 0x9e, 0xe4, 0xa5, 0xc7, 0x68, 0xcf, 0xed, 0x33, 0xda, 0x3f, 0x9d, 0xd4, 0xbb, 0xaf, - 0x97, 0xdc, 0x91, 0x40, 0xf6, 0x89, 0x24, 0xde, 0x7d, 0x03, 0x28, 0x18, 0x4b, 0x40, 0xc8, 0x88, - 0x31, 0xbd, 0x28, 0xc1, 0x47, 0xa7, 0x40, 0x91, 0x10, 0xca, 0xb8, 0x4c, 0xfd, 0x3c, 0xbd, 0xab, - 0xaa, 0x91, 0x20, 0x02, 0x94, 0x7f, 0x42, 0x37, 0xcb, 0x9f, 0xd0, 0xe5, 0x96, 0xde, 0xa4, 0xde, - 0x6d, 0xee, 0xa4, 0xea, 0xc7, 0xf8, 0x47, 0x45, 0xdf, 0x94, 0x94, 0x9e, 0xfa, 0xc5, 0x56, 0x3f, - 0x9e, 0xfb, 0x54, 0xe8, 0x8d, 0x49, 0x8a, 0x28, 0x32, 0xf1, 0xd7, 0x46, 0x25, 0x75, 0x96, 0xe5, - 0xfc, 0xd3, 0x62, 0xee, 0x52, 0x4a, 0xcf, 0x59, 0x76, 0x10, 0x05, 0xe9, 0xa3, 0xf0, 0xdd, 0x2c, - 0xc8, 0x69, 0xb6, 0xe3, 0x8e, 0x0a, 0x83, 0xa4, 0x1b, 0x7c, 0x0c, 0x07, 0xb4, 0xe8, 0x99, 0x53, - 0x7a, 0x1b, 0x7c, 0xf1, 0xf5, 0x8f, 0x21, 0x88, 0xd6, 0x51, 0x30, 0x47, 0x28, 0x09, 0x42, 0x9a, - 0x7f, 0x27, 0x4b, 0xfa, 0xab, 0xfb, 0x45, 0x11, 0x39, 0x03, 0x66, 0x98, 0x13, 0xd5, 0xc1, 0xf5, - 0x9a, 0x6c, 0x1a, 0xfc, 0x55, 0x16, 0x97, 0x25, 0x1e, 0x97, 0x7e, 0xf3, 0xc6, 0x20, 0x2a, 0xf8, - 0xa8, 0x7a, 0xa6, 0x24, 0xf1, 0xb8, 0x62, 0x2a, 0x4f, 0x1f, 0x91, 0x97, 0x48, 0xa0, 0x40, 0x1d, - 0x9c, 0x46, 0x8a, 0x40, 0x52, 0xcd, 0x08, 0x98, 0x20, 0xe6, 0x08, 0x25, 0x8d, 0x5a, 0x33, 0xe2, - 0xeb, 0x4f, 0x1f, 0x87, 0x7f, 0xa5, 0x9e, 0x7b, 0xa5, 0x3d, 0xc3, 0x6c, 0x1b, 0x17, 0xda, 0x09, - 0xe2, 0x60, 0x7e, 0x2c, 0xe1, 0x59, 0xa5, 0xa0, 0xa9, 0x5c, 0x7d, 0x11, 0x1c, 0x7f, 0x16, 0x98, - 0x72, 0x82, 0x85, 0x35, 0xff, 0x28, 0x77, 0x8f, 0xd7, 0x24, 0xfd, 0xae, 0x86, 0x39, 0x13, 0x1d, - 0x4c, 0x12, 0xa2, 0x67, 0x2c, 0x07, 0x29, 0xa6, 0x4b, 0xad, 0xd6, 0x32, 0x32, 0xdc, 0x5d, 0x07, - 0xb5, 0x12, 0x0d, 0x11, 0x3c, 0x8b, 0xa6, 0x58, 0x4e, 0x70, 0xd1, 0xab, 0xd6, 0x78, 0x74, 0xbe, - 0x7f, 0x40, 0x6f, 0xe0, 0xd3, 0x32, 0x92, 0x2e, 0xe9, 0xed, 0x01, 0x24, 0x35, 0x0e, 0x92, 0xe7, - 0x0e, 0x47, 0x44, 0xfa, 0x80, 0xfc, 0x82, 0x04, 0xe6, 0x88, 0x9d, 0x30, 0x6a, 0x4c, 0x7e, 0x2b, - 0xa1, 0x27, 0x04, 0x73, 0x69, 0x04, 0x4b, 0xce, 0x48, 0x60, 0x49, 0xe2, 0x37, 0x21, 0x46, 0x47, - 0xfa, 0xc8, 0x7c, 0xae, 0x00, 0x00, 0xe3, 0xe4, 0xf6, 0xb1, 0x42, 0x18, 0x49, 0x0a, 0xbe, 0x83, - 0xce, 0x3f, 0x34, 0x2e, 0x44, 0x29, 0xe3, 0xc0, 0x16, 0x6c, 0xab, 0xf0, 0x89, 0x42, 0xa3, 0xca, - 0x1f, 0x27, 0xb4, 0x79, 0xa9, 0x8b, 0xd9, 0xc0, 0xc1, 0x7d, 0xc8, 0x5e, 0xee, 0xf1, 0x04, 0xc6, - 0xef, 0x20, 0x52, 0x92, 0xa1, 0xb6, 0x36, 0xc4, 0x5c, 0x72, 0x1e, 0x1c, 0x57, 0x95, 0xd2, 0x52, - 0xad, 0xba, 0xf6, 0x00, 0x7b, 0xbb, 0x40, 0x51, 0x62, 0x27, 0x27, 0xa9, 0xc0, 0xf6, 0xc6, 0x84, - 0x7d, 0x20, 0xcf, 0xab, 0xb8, 0xd9, 0x0a, 0x33, 0x9d, 0x1f, 0xdc, 0xab, 0x09, 0x14, 0x7b, 0x98, - 0x28, 0xbc, 0x88, 0x55, 0xa3, 0x9f, 0x94, 0x40, 0x31, 0xbc, 0x8c, 0x96, 0x5e, 0x15, 0x53, 0xe3, - 0x7d, 0xe0, 0x3a, 0x64, 0x17, 0x25, 0xf4, 0x81, 0xf3, 0x13, 0xe4, 0x9b, 0xc0, 0x5c, 0x73, 0x1b, - 0x35, 0x2f, 0x56, 0x2c, 0x7f, 0x77, 0x98, 0x6c, 0x25, 0xf6, 0xa4, 0xf2, 0xc0, 0xdc, 0xcf, 0x03, - 0xc3, 0x4f, 0xa2, 0xb9, 0x41, 0x9a, 0x25, 0x2a, 0x02, 0x97, 0xdf, 0x0b, 0x70, 0xa9, 0x72, 0xb8, - 0xdc, 0x35, 0x54, 0xa9, 0xc9, 0x60, 0xa9, 0x0e, 0x01, 0x0b, 0x04, 0x27, 0x6b, 0x75, 0xbd, 0x52, - 0xab, 0x36, 0x36, 0x34, 0x65, 0xa9, 0xb1, 0xe8, 0x83, 0xa3, 0x15, 0x25, 0xf8, 0x8d, 0x2c, 0x98, - 0x20, 0x64, 0x75, 0x7b, 0x2e, 0x8f, 0x65, 0xa3, 0x3d, 0x65, 0xf6, 0x45, 0x7b, 0x82, 0x8f, 0x0a, - 0x1f, 0xe5, 0x0f, 0x18, 0x41, 0xeb, 0x89, 0xe8, 0xa7, 0x9e, 0x03, 0x26, 0x08, 0xc8, 0xbe, 0xd3, - 0xc8, 0xa9, 0x88, 0x5e, 0x8a, 0x16, 0xa3, 0xfa, 0xd9, 0x05, 0x8f, 0xf5, 0x0f, 0x20, 0x63, 0x2c, - 0x13, 0xc4, 0x89, 0x55, 0xb3, 0xeb, 0xda, 0xce, 0x15, 0xf8, 0xa6, 0x0c, 0x98, 0x38, 0x87, 0x9c, - 0xae, 0x69, 0x5b, 0xfb, 0x36, 0x4b, 0x4f, 0x83, 0xe9, 0x8e, 0x83, 0xf6, 0x4c, 0x7b, 0xb7, 0x1b, - 0x4e, 0xcc, 0xd9, 0x24, 0x19, 0x82, 0x49, 0x63, 0xd7, 0xdd, 0xb6, 0x9d, 0xf0, 0xd8, 0xbc, 0xff, - 0x2e, 0x9f, 0x02, 0x80, 0x3c, 0x57, 0x8d, 0x1d, 0x44, 0xb7, 0x80, 0x99, 0x14, 0x59, 0x06, 0x39, - 0xd7, 0xdc, 0x41, 0x34, 0xea, 0x1d, 0x7e, 0x96, 0xe7, 0xc1, 0x04, 0x8e, 0x51, 0x45, 0x63, 0x81, - 0x49, 0xaa, 0xff, 0x0a, 0xff, 0xab, 0x04, 0xa6, 0x57, 0x90, 0x4b, 0x49, 0xed, 0xb2, 0xc1, 0x67, - 0x62, 0x22, 0x43, 0x7b, 0xdd, 0x6b, 0xdb, 0xe8, 0xfa, 0xbf, 0x05, 0xab, 0x6f, 0x7c, 0x62, 0x18, - 0x81, 0x4f, 0x62, 0x82, 0x6c, 0xc2, 0xc7, 0xb2, 0xa2, 0xc7, 0x1d, 0x29, 0x33, 0x17, 0x18, 0x02, - 0x23, 0x65, 0x6b, 0x72, 0x8f, 0xe6, 0xd8, 0x17, 0x11, 0x95, 0x2d, 0x89, 0x16, 0xa3, 0x06, 0xb9, - 0x05, 0x0f, 0x4a, 0x0e, 0xa6, 0x24, 0x7d, 0xf1, 0xfa, 0x96, 0x04, 0xa6, 0xb5, 0x6d, 0xfb, 0x12, - 0x25, 0x80, 0xbd, 0x0f, 0x35, 0x0e, 0xaa, 0xeb, 0xc0, 0xd4, 0x5e, 0x0f, 0x4c, 0x61, 0x42, 0xf4, - 0xb5, 0x9d, 0xf0, 0x21, 0x29, 0x29, 0x4c, 0x0c, 0x71, 0x23, 0xbf, 0x54, 0x53, 0xfe, 0x7e, 0x30, - 0x41, 0xa9, 0xa6, 0xf3, 0xe7, 0x78, 0x80, 0xfd, 0xcc, 0x6c, 0x03, 0x73, 0x7c, 0x03, 0x93, 0x21, - 0x1f, 0xdd, 0xb8, 0x31, 0xc4, 0x1d, 0xcf, 0xe2, 0x63, 0xf2, 0x3e, 0xf0, 0xe5, 0x11, 0x00, 0x0f, - 0xbf, 0x9d, 0x11, 0x5d, 0x65, 0x0a, 0x38, 0x10, 0x50, 0x70, 0xa0, 0x38, 0xee, 0x03, 0x8b, 0x4b, - 0x9f, 0x9f, 0xaf, 0xcd, 0x81, 0x99, 0x25, 0x73, 0x73, 0x33, 0xe8, 0xf5, 0x5e, 0x91, 0x11, 0x63, - 0x69, 0xf4, 0x0e, 0xa5, 0x67, 0xb4, 0xec, 0x3a, 0x0e, 0xb2, 0xfc, 0x46, 0x51, 0x75, 0xea, 0x49, - 0x95, 0x6f, 0x06, 0x47, 0xfd, 0x8e, 0xde, 0xcf, 0x48, 0xc4, 0xb2, 0x37, 0x19, 0x7e, 0x53, 0x78, - 0x8b, 0xc2, 0xe7, 0x28, 0xdb, 0xa4, 0x08, 0x05, 0xbc, 0x1b, 0xcc, 0x6e, 0x93, 0xdc, 0x78, 0x1e, - 0xe7, 0x77, 0x96, 0x27, 0x7b, 0xe2, 0x65, 0xae, 0xa3, 0x6e, 0xd7, 0xd8, 0x42, 0x2a, 0x9f, 0xb9, - 0x47, 0x7d, 0xa5, 0x24, 0x97, 0x56, 0x88, 0xed, 0x76, 0x08, 0xb4, 0x24, 0x7d, 0xe9, 0xf8, 0xda, - 0x93, 0x41, 0x6e, 0xd9, 0x6c, 0x23, 0xf8, 0x53, 0x59, 0x30, 0xa5, 0xa2, 0xa6, 0x6d, 0x35, 0xbd, - 0x37, 0xc6, 0x5f, 0xe1, 0xef, 0x59, 0xdd, 0xb9, 0x8f, 0x87, 0xe6, 0x16, 0xae, 0x41, 0x5e, 0x39, - 0x0b, 0x41, 0x19, 0x11, 0x7a, 0xf3, 0x48, 0xc0, 0x9b, 0x32, 0xc7, 0x9b, 0xb3, 0xe2, 0x45, 0x8d, - 0x21, 0x1c, 0xb7, 0x67, 0x47, 0x6e, 0x6e, 0xb6, 0x6d, 0x83, 0x5b, 0xc9, 0xe8, 0xb5, 0x6d, 0x6e, - 0x01, 0x45, 0xdf, 0xed, 0xdc, 0x76, 0xeb, 0xa6, 0x65, 0x05, 0xc7, 0x1b, 0xf7, 0xa5, 0xf3, 0x9b, - 0x70, 0xb1, 0x11, 0x22, 0x70, 0xdb, 0x69, 0xed, 0x11, 0x92, 0x7d, 0x13, 0x98, 0xbb, 0x70, 0xc5, - 0x45, 0x5d, 0x9a, 0x8b, 0x56, 0x9b, 0x53, 0x7b, 0x52, 0xe1, 0x7b, 0x84, 0x22, 0x49, 0xc4, 0x54, - 0x98, 0x8c, 0xd5, 0xab, 0x43, 0x98, 0xf3, 0xc7, 0x41, 0xb1, 0x5a, 0x5b, 0x52, 0xb0, 0xfb, 0x8c, - 0xef, 0x8f, 0xb0, 0x05, 0x5f, 0x29, 0x81, 0x19, 0xbc, 0x17, 0xed, 0xa3, 0x70, 0x83, 0xc0, 0xfe, - 0x37, 0xfc, 0xb2, 0xb0, 0x6b, 0x0d, 0x6e, 0x32, 0x5b, 0x41, 0x34, 0xa3, 0x37, 0xcd, 0x76, 0x2f, - 0xa3, 0xf3, 0x6a, 0x4f, 0x6a, 0x1f, 0x40, 0xa4, 0xbe, 0x80, 0xfc, 0xa6, 0x90, 0x7f, 0xcd, 0x20, - 0xea, 0x0e, 0x0b, 0x95, 0x0f, 0x4a, 0x60, 0xda, 0x9b, 0xff, 0xf9, 0xa0, 0xd4, 0x38, 0x50, 0x6c, - 0xab, 0x7d, 0x25, 0x9c, 0xe3, 0xfa, 0xaf, 0x89, 0x94, 0xe4, 0xcf, 0x84, 0xa7, 0x61, 0x98, 0x45, - 0x0c, 0x2d, 0x63, 0xc2, 0xef, 0x03, 0x42, 0x93, 0xb3, 0x01, 0xc4, 0x1d, 0x16, 0x7c, 0xbf, 0x9e, - 0x07, 0x85, 0x8d, 0x0e, 0x46, 0xee, 0xeb, 0x59, 0x91, 0xd8, 0xc9, 0xfb, 0x7c, 0xab, 0x3d, 0x33, - 0xab, 0x6d, 0x37, 0x8d, 0x76, 0x3d, 0x3c, 0xa4, 0x12, 0x26, 0xc8, 0x77, 0x51, 0x77, 0x2b, 0x72, - 0xc2, 0xe7, 0xa6, 0xd8, 0xb0, 0xc2, 0x98, 0x47, 0x8c, 0x1f, 0xfb, 0xad, 0xe0, 0x58, 0xcb, 0xec, - 0x1a, 0x17, 0xda, 0x48, 0xb1, 0x9a, 0xce, 0x15, 0xc2, 0x0e, 0xe2, 0x9a, 0xb2, 0xff, 0x83, 0x7c, - 0x0f, 0xc8, 0x77, 0xdd, 0x2b, 0x6d, 0x32, 0xf1, 0x63, 0xdd, 0xde, 0x23, 0xab, 0xd2, 0xbc, 0xec, - 0x2a, 0xf9, 0x8b, 0xbd, 0x52, 0x70, 0x42, 0xf0, 0x7a, 0xc4, 0x3b, 0x40, 0xc1, 0x76, 0xcc, 0x2d, - 0x93, 0x44, 0xeb, 0x9f, 0xdb, 0x17, 0x2d, 0x8b, 0x98, 0x02, 0x35, 0x9c, 0x45, 0xa5, 0x59, 0xe1, - 0x07, 0x84, 0xef, 0xe8, 0xc7, 0x34, 0x12, 0x70, 0xc6, 0x73, 0x45, 0xe2, 0xc3, 0x42, 0x41, 0x33, - 0xa2, 0xc9, 0x4a, 0x7f, 0x10, 0xfe, 0x7c, 0x16, 0x4c, 0x2e, 0xd9, 0x97, 0x2c, 0x2c, 0xb0, 0x77, - 0x8a, 0xd9, 0xac, 0x7d, 0xce, 0x4f, 0xf1, 0x17, 0x3b, 0xc5, 0x3a, 0x4b, 0xe3, 0xd6, 0xfa, 0x55, - 0x46, 0xc0, 0x10, 0xab, 0x01, 0x82, 0x17, 0xf1, 0xc4, 0xd5, 0x93, 0x3e, 0x5f, 0xff, 0x50, 0x02, - 0xb9, 0x25, 0xc7, 0xee, 0xc0, 0xb7, 0x67, 0x12, 0xec, 0x23, 0xb7, 0x1c, 0xbb, 0xa3, 0xe3, 0x3b, - 0x36, 0x42, 0x0f, 0x71, 0x36, 0x4d, 0xbe, 0x13, 0x4c, 0x76, 0xec, 0xae, 0xe9, 0xfa, 0xd3, 0x81, - 0xb9, 0xdb, 0x9f, 0xd4, 0x57, 0x2b, 0xeb, 0x34, 0x93, 0x1a, 0x64, 0xf7, 0x7a, 0x5f, 0xcc, 0x42, - 0x8f, 0x2f, 0x1e, 0x1b, 0xfd, 0x7b, 0x46, 0x7a, 0x52, 0xe1, 0xab, 0x58, 0x24, 0x9f, 0xcb, 0x23, - 0xf9, 0x94, 0x3e, 0x1c, 0x76, 0xec, 0xce, 0x48, 0x76, 0x7e, 0x5e, 0x17, 0xa0, 0xfa, 0x3c, 0x0e, - 0xd5, 0x5b, 0x84, 0xea, 0x4c, 0x1f, 0xd1, 0x0f, 0xe4, 0x00, 0xc0, 0xe6, 0xc2, 0x86, 0x37, 0x91, - 0x11, 0xb3, 0x95, 0x7e, 0x22, 0xc7, 0xf0, 0xb2, 0xc4, 0xf3, 0xf2, 0x69, 0x11, 0xd6, 0x08, 0x2e, - 0x3e, 0x82, 0xa3, 0x25, 0x90, 0xdf, 0xf5, 0x3e, 0x53, 0x8e, 0x0a, 0x16, 0x81, 0x5f, 0x55, 0xf2, - 0x27, 0xfc, 0x83, 0x0c, 0xc8, 0xe3, 0x04, 0xf9, 0x14, 0x00, 0x78, 0x80, 0x26, 0x67, 0x0d, 0x32, - 0x78, 0x28, 0x66, 0x52, 0xb0, 0xb4, 0x9a, 0x2d, 0xfa, 0x99, 0x98, 0xbe, 0x61, 0x82, 0xf7, 0x37, - 0x1e, 0xb6, 0x71, 0x59, 0x74, 0x20, 0x67, 0x52, 0xbc, 0xbf, 0xf1, 0xdb, 0x1a, 0xda, 0x24, 0xa1, - 0x56, 0x73, 0x6a, 0x98, 0x10, 0xfc, 0xbd, 0x16, 0x5c, 0xa7, 0xe1, 0xff, 0x8d, 0x53, 0xbc, 0x49, - 0x2d, 0x16, 0xcb, 0xc5, 0xb0, 0x8a, 0x02, 0xce, 0xd4, 0x9b, 0x0c, 0xdf, 0x18, 0x88, 0xcd, 0x12, - 0x27, 0x36, 0xb7, 0x25, 0x60, 0x6f, 0xfa, 0xc2, 0xf3, 0xd5, 0x3c, 0x98, 0xaa, 0xda, 0x2d, 0x2a, - 0x3b, 0xcc, 0xc4, 0xef, 0x13, 0xf9, 0x44, 0x13, 0xbf, 0xa0, 0x8c, 0x08, 0x01, 0xb9, 0x8f, 0x17, - 0x10, 0xb1, 0x12, 0x58, 0xf9, 0x90, 0x17, 0x41, 0x01, 0x4b, 0xef, 0xfe, 0x6b, 0x52, 0xe2, 0x8a, - 0xc0, 0xac, 0x55, 0xe9, 0x9f, 0xff, 0xe6, 0x64, 0xec, 0x3f, 0x81, 0x3c, 0x6e, 0x60, 0x8c, 0x57, - 0x30, 0xdf, 0xd0, 0x6c, 0x7c, 0x43, 0xa5, 0xf8, 0x86, 0xe6, 0x7a, 0x1b, 0x9a, 0x64, 0x3e, 0x1f, - 0x25, 0x21, 0xe9, 0xcb, 0xf8, 0xff, 0x9c, 0x00, 0xa0, 0x6a, 0xec, 0x99, 0x5b, 0x64, 0xcb, 0xee, - 0x4f, 0xfd, 0x79, 0x0c, 0xdd, 0x5c, 0xfb, 0xcf, 0xcc, 0x40, 0x78, 0x27, 0x98, 0xa0, 0xe3, 0x1e, - 0x6d, 0xc8, 0xf5, 0x5c, 0x43, 0xc2, 0x52, 0x88, 0x79, 0x79, 0xd9, 0x55, 0xfd, 0xfc, 0xdc, 0xc5, - 0x71, 0xd9, 0x9e, 0x8b, 0xe3, 0xfa, 0xee, 0x0e, 0x44, 0x5d, 0x27, 0x07, 0xdf, 0x23, 0x7c, 0xf1, - 0x07, 0x43, 0x0f, 0xd3, 0xa2, 0x08, 0x15, 0xbc, 0x03, 0x4c, 0xd8, 0xc1, 0x2e, 0xa3, 0x14, 0xb9, - 0x9e, 0x55, 0xb1, 0x36, 0x6d, 0xd5, 0xcf, 0x29, 0x78, 0xa5, 0x87, 0x10, 0x1d, 0x63, 0xf1, 0x9d, - 0x3f, 0xb9, 0xe2, 0x87, 0xad, 0xf1, 0xda, 0x71, 0xde, 0x74, 0xb7, 0xd7, 0x4c, 0xeb, 0x62, 0x17, - 0xfe, 0x07, 0x31, 0x0b, 0x92, 0xc1, 0x3f, 0x9b, 0x0c, 0x7f, 0x3e, 0x1c, 0x80, 0xc6, 0xa3, 0x76, - 0x4f, 0x54, 0x29, 0xfd, 0xa9, 0x8d, 0x00, 0xf0, 0x2e, 0x50, 0x20, 0x84, 0xd2, 0x4e, 0xf4, 0x4c, - 0x24, 0x7e, 0x41, 0x49, 0x2a, 0xfd, 0x03, 0x3e, 0x16, 0xe0, 0x78, 0x8e, 0xc3, 0x71, 0xf1, 0x40, - 0x94, 0xa5, 0x0e, 0xe9, 0x99, 0x67, 0x80, 0x09, 0xca, 0x69, 0x79, 0x8e, 0xd5, 0xe2, 0xe2, 0x11, - 0x19, 0x80, 0xc2, 0xba, 0xbd, 0x87, 0x74, 0xbb, 0x98, 0xf1, 0x9e, 0x3d, 0xfa, 0x74, 0xbb, 0x98, - 0x85, 0xaf, 0x9f, 0x04, 0x93, 0x41, 0xa0, 0x90, 0xcf, 0x67, 0x41, 0x31, 0xbc, 0xe2, 0x9d, 0xb4, - 0x48, 0xdc, 0x65, 0xef, 0x17, 0x84, 0xf7, 0xdd, 0x83, 0x00, 0x1e, 0xbd, 0x95, 0x09, 0xde, 0x61, - 0xfd, 0x36, 0xa1, 0x7d, 0x78, 0xd1, 0x5a, 0xd2, 0x57, 0xb5, 0x4f, 0x67, 0x41, 0xbe, 0xdc, 0xb6, - 0x2d, 0x94, 0xe8, 0x0a, 0xeb, 0xfe, 0x3b, 0x0a, 0xf0, 0x45, 0x59, 0x51, 0x5b, 0x23, 0x64, 0x80, - 0x57, 0xb7, 0x20, 0x6f, 0xc5, 0x06, 0xa9, 0xd8, 0xa2, 0xd3, 0x67, 0xe8, 0x37, 0xb2, 0x60, 0x8a, - 0x84, 0xdc, 0x28, 0xb5, 0xdb, 0xf0, 0x49, 0x21, 0x53, 0xfb, 0x04, 0x5b, 0x81, 0xbf, 0x29, 0xec, - 0x37, 0x1d, 0xb4, 0x2a, 0x28, 0x3b, 0x41, 0xec, 0x91, 0x64, 0x6e, 0xbc, 0x62, 0x7b, 0x62, 0x03, - 0x09, 0x4a, 0x9f, 0xd5, 0x7f, 0x92, 0xf5, 0x0c, 0x00, 0xeb, 0x62, 0xdd, 0x41, 0x7b, 0x26, 0xba, - 0x04, 0xaf, 0x0d, 0x99, 0xbd, 0x3f, 0x9e, 0xc0, 0x5b, 0x84, 0x17, 0x71, 0x98, 0x22, 0x23, 0xb7, - 0xa4, 0xa6, 0xdb, 0x61, 0x26, 0xda, 0x8b, 0xf7, 0x06, 0x79, 0x60, 0x8a, 0x51, 0xd9, 0xec, 0x82, - 0x6b, 0x36, 0xd1, 0x54, 0xa4, 0xcf, 0xd8, 0x87, 0x26, 0xc0, 0xe4, 0x86, 0xd5, 0xed, 0xb4, 0x8d, - 0xee, 0x36, 0xfc, 0x8e, 0x14, 0xdc, 0x20, 0xfd, 0x2c, 0xee, 0xd8, 0xf2, 0x8f, 0xec, 0x22, 0xc7, - 0x77, 0xc3, 0x21, 0x2f, 0xfd, 0xaf, 0x28, 0x85, 0x1f, 0x90, 0x44, 0x27, 0xa9, 0x7e, 0xa5, 0xf1, - 0x57, 0x2b, 0x57, 0xc0, 0x64, 0xc7, 0x6c, 0xba, 0xbb, 0x4e, 0x70, 0xe1, 0xe5, 0xd3, 0xc5, 0x4a, - 0xa9, 0x93, 0xbf, 0xd4, 0xe0, 0x77, 0x68, 0x80, 0x09, 0x9a, 0xb8, 0x6f, 0x5b, 0x68, 0xff, 0x31, - 0xbc, 0x93, 0xa0, 0x60, 0x38, 0xae, 0xd9, 0xf5, 0x2f, 0x14, 0xa6, 0x6f, 0x5e, 0x77, 0x49, 0x9e, - 0x36, 0x9c, 0xb6, 0x1f, 0xe0, 0x20, 0x48, 0x80, 0x1f, 0x14, 0x9a, 0x3f, 0xc6, 0xb7, 0x3c, 0x19, - 0xe4, 0xf7, 0x0f, 0xb1, 0xd6, 0x7c, 0x35, 0xb8, 0x4a, 0x2d, 0xe9, 0x4a, 0x83, 0x9c, 0x87, 0x0f, - 0x8e, 0xbe, 0xb7, 0xe0, 0x77, 0xd8, 0xf5, 0x3b, 0x7e, 0x8c, 0xa0, 0x5c, 0x0c, 0xc7, 0x88, 0x20, - 0x21, 0x66, 0x8c, 0xf8, 0x75, 0xe1, 0xdd, 0x9d, 0x80, 0x25, 0x03, 0xd6, 0xf2, 0xe2, 0xee, 0x15, - 0xf9, 0x90, 0xd0, 0x4e, 0xcd, 0xa0, 0x9a, 0x0e, 0x91, 0xfd, 0xbf, 0x3a, 0x01, 0x26, 0x56, 0x8c, - 0x76, 0x1b, 0x39, 0x57, 0xbc, 0xa1, 0xa5, 0xe8, 0x53, 0xb8, 0x6e, 0x58, 0xe6, 0xa6, 0x37, 0xbf, - 0x8f, 0xed, 0xf4, 0xde, 0x23, 0x1c, 0xb3, 0x92, 0xd6, 0xb1, 0xd0, 0x5b, 0x7e, 0x04, 0xcf, 0xcf, - 0x82, 0x9c, 0x69, 0x6d, 0xda, 0xb4, 0xeb, 0xeb, 0x5d, 0x45, 0xf7, 0x7f, 0xc6, 0x53, 0x10, 0x9c, - 0x51, 0x30, 0x6c, 0xa5, 0x20, 0x15, 0xe9, 0xf7, 0x80, 0xbf, 0x91, 0x03, 0xb3, 0x3e, 0x11, 0x15, - 0xab, 0x85, 0x2e, 0xb3, 0x4b, 0x2a, 0xaf, 0xcc, 0x89, 0x9e, 0xb5, 0xe9, 0x6d, 0x0f, 0x2e, 0x2a, - 0x82, 0xa5, 0x3a, 0x00, 0x4d, 0xc3, 0x45, 0x5b, 0xb6, 0x63, 0x06, 0xfd, 0xda, 0x33, 0x93, 0x94, - 0x56, 0x26, 0x7f, 0x5f, 0x51, 0x99, 0x72, 0xe4, 0x7b, 0xc0, 0x34, 0x0a, 0x8e, 0xd3, 0xfa, 0x4b, - 0x2e, 0xb1, 0x78, 0xb1, 0xf9, 0xe1, 0x9f, 0x08, 0x1d, 0xe9, 0x11, 0x69, 0x66, 0x32, 0xcc, 0x1a, - 0xc3, 0xe9, 0xd0, 0x46, 0x75, 0xbd, 0xa4, 0x6a, 0xab, 0xa5, 0xb5, 0xb5, 0x4a, 0x75, 0x25, 0x88, - 0x0d, 0x21, 0x83, 0xb9, 0xa5, 0xda, 0xf9, 0x2a, 0x13, 0xbc, 0x23, 0x07, 0xeb, 0x60, 0xd2, 0xe7, - 0x57, 0x3f, 0x67, 0x47, 0x96, 0x67, 0xd4, 0xd9, 0x91, 0x49, 0xf2, 0x8c, 0x2c, 0xb3, 0x19, 0x38, - 0xcc, 0xe0, 0x67, 0xf8, 0xfb, 0x06, 0xc8, 0xe3, 0xb5, 0x71, 0xf8, 0x4e, 0x7c, 0xe3, 0x70, 0xa7, - 0x6d, 0x34, 0x11, 0xdc, 0x49, 0x60, 0x55, 0xfb, 0x41, 0xd4, 0xb3, 0xfb, 0x82, 0xa8, 0xe3, 0x47, - 0x6a, 0xbd, 0x1d, 0xef, 0xb7, 0x1e, 0xaf, 0x92, 0x2c, 0xfc, 0xe9, 0x97, 0xd8, 0x5d, 0x12, 0xb2, - 0x8c, 0x4f, 0xc9, 0x8c, 0x10, 0xc9, 0x68, 0x9a, 0x92, 0x59, 0x94, 0x62, 0xfb, 0x29, 0x71, 0x14, - 0xa5, 0xaf, 0xf1, 0x5f, 0xca, 0x81, 0xbc, 0xd6, 0x69, 0x9b, 0x2e, 0x7c, 0x4d, 0x76, 0x24, 0x98, - 0x91, 0xc0, 0xf7, 0xd2, 0xc0, 0xc0, 0xf7, 0xe1, 0x2e, 0x68, 0x4e, 0x60, 0x17, 0x54, 0x47, 0x97, - 0x5d, 0x7e, 0x17, 0xf4, 0x4e, 0x1a, 0xdf, 0x89, 0xec, 0xa1, 0x3e, 0xa5, 0x0f, 0x4b, 0x71, 0xb3, - 0xfa, 0x04, 0x0e, 0x3b, 0xf3, 0x0c, 0x1a, 0xbf, 0x08, 0x80, 0xc2, 0x62, 0x4d, 0xd7, 0x6b, 0xeb, - 0xc5, 0x23, 0x38, 0xf0, 0x45, 0xad, 0x5e, 0xcc, 0xc8, 0x53, 0x20, 0x5f, 0xa9, 0x56, 0x15, 0xb5, - 0x98, 0xc5, 0x11, 0x95, 0x2a, 0xfa, 0x9a, 0x52, 0x94, 0xf8, 0x28, 0xc8, 0xb1, 0x66, 0x34, 0x5f, - 0x77, 0x9a, 0xe2, 0x25, 0x66, 0x50, 0x47, 0xd3, 0x93, 0xbe, 0x70, 0xfd, 0x17, 0x09, 0xe4, 0xd7, - 0x91, 0xb3, 0x85, 0xe0, 0x8f, 0x24, 0xd8, 0xac, 0xdb, 0x34, 0x9d, 0x2e, 0x89, 0x3f, 0x15, 0x6e, - 0xd6, 0xb1, 0x69, 0xf2, 0x8d, 0x60, 0xb6, 0x8b, 0x9a, 0xb6, 0xd5, 0xf2, 0x33, 0x91, 0xfe, 0x88, - 0x4f, 0x84, 0xaf, 0x4e, 0x08, 0x19, 0x26, 0x74, 0x24, 0x3b, 0x6e, 0x49, 0x80, 0xe9, 0x57, 0x6b, - 0xfa, 0xc0, 0x7c, 0x53, 0xf2, 0x7e, 0xea, 0x5c, 0x81, 0xaf, 0x16, 0xde, 0x45, 0xbd, 0x15, 0x14, - 0xb0, 0x98, 0xfa, 0x63, 0x74, 0xff, 0xfe, 0x98, 0xe6, 0x91, 0x17, 0xc1, 0xb1, 0x2e, 0x6a, 0xa3, - 0xa6, 0x8b, 0x5a, 0x9e, 0xea, 0xaa, 0x03, 0x3b, 0x85, 0xfd, 0xd9, 0xe1, 0x1f, 0xb1, 0x00, 0xde, - 0xcd, 0x03, 0x78, 0x53, 0x1f, 0x56, 0x7a, 0x0d, 0x8a, 0xb6, 0x95, 0xbd, 0x66, 0x68, 0x6d, 0x3b, - 0x58, 0xdc, 0xf6, 0xdf, 0xbd, 0x6f, 0xdb, 0xee, 0x4e, 0x1b, 0x7f, 0xa3, 0x1e, 0xfc, 0xfe, 0xbb, - 0xbc, 0x00, 0x26, 0x0c, 0xeb, 0x0a, 0xfe, 0x94, 0x8b, 0x69, 0xb5, 0x9f, 0x09, 0xbe, 0x3e, 0x40, - 0xfe, 0x5e, 0x0e, 0xf9, 0xa7, 0x89, 0x91, 0x9b, 0x3e, 0xf0, 0x3f, 0x3e, 0x01, 0xf2, 0x75, 0xa3, - 0xeb, 0x22, 0xf8, 0xff, 0x48, 0xa2, 0xc8, 0xdf, 0x04, 0xe6, 0x36, 0xed, 0xe6, 0x6e, 0x17, 0xb5, - 0x78, 0xa5, 0xec, 0x49, 0x1d, 0x05, 0xe6, 0xf2, 0x2d, 0xa0, 0xe8, 0x27, 0xd2, 0x62, 0xfd, 0xed, - 0xf4, 0x7d, 0xe9, 0x38, 0x98, 0x6e, 0xb7, 0x6e, 0x38, 0x6e, 0x6d, 0x13, 0xa7, 0x05, 0xc1, 0x74, - 0xd9, 0x44, 0x0e, 0xfa, 0x42, 0x0c, 0xf4, 0x13, 0xd1, 0xd0, 0x4f, 0x0a, 0x40, 0x2f, 0x97, 0xc0, - 0xe4, 0xa6, 0xd9, 0x46, 0xf8, 0x87, 0x29, 0xfc, 0x43, 0xbf, 0x31, 0x09, 0xf3, 0x3e, 0x18, 0x93, - 0x96, 0xcd, 0x36, 0x52, 0x83, 0xdf, 0xfc, 0x89, 0x0c, 0x08, 0x27, 0x32, 0x6b, 0xc4, 0xbf, 0xd5, - 0x33, 0xbc, 0x2c, 0x63, 0x07, 0xf9, 0x8b, 0x68, 0x16, 0x3d, 0x3d, 0xd2, 0x32, 0x5c, 0x03, 0x83, - 0x31, 0xa3, 0xe2, 0x67, 0xde, 0xbf, 0x43, 0xea, 0xf5, 0xef, 0x78, 0xa9, 0x94, 0xac, 0x47, 0xf4, - 0x89, 0x8d, 0xd0, 0xa8, 0x0b, 0x3e, 0x40, 0xc4, 0x52, 0x0c, 0xde, 0x3d, 0x60, 0x9a, 0x86, 0x83, - 0xdc, 0x3a, 0xeb, 0x51, 0x91, 0x57, 0xf9, 0x44, 0xec, 0x5a, 0xd7, 0xd5, 0x8c, 0x1d, 0x84, 0x2b, - 0x2b, 0x7b, 0xdf, 0xa8, 0xcb, 0xd4, 0xbe, 0xf4, 0xb0, 0xff, 0xcd, 0x8f, 0xba, 0xff, 0xed, 0xd7, - 0xc6, 0xf4, 0xd5, 0xf0, 0x0d, 0x39, 0x20, 0x95, 0x77, 0xdd, 0x27, 0x74, 0xf7, 0xfb, 0x5d, 0x61, - 0x7f, 0x15, 0xda, 0x9f, 0x45, 0x5e, 0x39, 0x3d, 0xa6, 0xde, 0x37, 0xa1, 0x94, 0x88, 0xf9, 0xc5, - 0x44, 0xb5, 0x2d, 0x7d, 0x19, 0x79, 0xbb, 0x14, 0x38, 0x3c, 0xbe, 0x24, 0x73, 0x70, 0xd3, 0x1c, - 0x92, 0xfe, 0x89, 0xe9, 0x19, 0x82, 0x77, 0xbf, 0xe3, 0xc9, 0x71, 0xa1, 0xb7, 0xf0, 0x36, 0x39, - 0x66, 0xe5, 0x8c, 0x4a, 0x5e, 0xe0, 0x6b, 0x85, 0xdd, 0xc0, 0x09, 0xdb, 0x62, 0x5d, 0x02, 0x93, - 0xd9, 0x54, 0x62, 0xd7, 0x0a, 0xc6, 0x54, 0x9b, 0x3e, 0x60, 0x7f, 0x17, 0xbd, 0x64, 0x38, 0x0c, - 0x62, 0xf0, 0x61, 0xe1, 0x6d, 0x25, 0xd2, 0xec, 0x01, 0xeb, 0x85, 0xc9, 0xf8, 0x2d, 0xb6, 0xe9, - 0x14, 0x5b, 0xf1, 0x18, 0x2e, 0xf2, 0x90, 0x40, 0x81, 0x6c, 0x25, 0xc2, 0xb7, 0x66, 0x12, 0xdc, - 0xc7, 0xec, 0xf2, 0xae, 0x80, 0xc1, 0x7b, 0x92, 0x35, 0x07, 0xce, 0x65, 0x30, 0x97, 0xc8, 0x65, - 0x90, 0x3f, 0x57, 0x29, 0xa0, 0x47, 0xa4, 0x8d, 0x29, 0x4f, 0x27, 0x93, 0x68, 0x58, 0x5f, 0x82, - 0xd2, 0xc7, 0xfb, 0x27, 0xf3, 0x60, 0x86, 0x54, 0x7d, 0xde, 0x6c, 0x6d, 0x21, 0x17, 0xbe, 0x3b, - 0xfb, 0xbd, 0x83, 0xba, 0x5c, 0x05, 0x33, 0x97, 0x30, 0xd9, 0x6b, 0xc6, 0x15, 0x7b, 0xd7, 0xa5, - 0x2b, 0x17, 0xb7, 0xc4, 0xae, 0x7b, 0x90, 0x76, 0x2e, 0x90, 0x3f, 0x54, 0xee, 0x7f, 0x8f, 0xc7, - 0x64, 0xc1, 0x9f, 0x38, 0x62, 0x15, 0xb0, 0x91, 0xc5, 0x26, 0xc9, 0x27, 0x41, 0x61, 0xcf, 0x44, - 0x97, 0x2a, 0x2d, 0x6a, 0xdd, 0xd2, 0x37, 0xf8, 0x61, 0xe1, 0xfd, 0x57, 0x16, 0x6e, 0x4a, 0x4b, - 0xba, 0x52, 0x28, 0xb6, 0x0b, 0x3b, 0x90, 0xac, 0x31, 0x9c, 0xf1, 0xe5, 0xaf, 0xed, 0x4b, 0x72, - 0x1d, 0x7c, 0x94, 0xe1, 0x9c, 0xe0, 0x4e, 0x7e, 0xc2, 0x80, 0x11, 0xdf, 0xe8, 0x27, 0x76, 0x78, - 0x7f, 0x40, 0xd5, 0xe9, 0x73, 0xfe, 0x8d, 0x12, 0x98, 0xd2, 0x90, 0xbb, 0x6c, 0xa2, 0x76, 0xab, - 0x0b, 0x9d, 0x83, 0x9b, 0x46, 0x67, 0x41, 0x61, 0x13, 0x17, 0x36, 0xe8, 0xfc, 0x01, 0xcd, 0x06, - 0xdf, 0x90, 0x15, 0xdd, 0xd9, 0xa5, 0xab, 0x6f, 0x3e, 0xb5, 0x23, 0x81, 0x49, 0xcc, 0x33, 0x37, - 0xbe, 0xe6, 0xf4, 0x51, 0x7a, 0x54, 0x02, 0x33, 0xf4, 0x9e, 0xaf, 0x52, 0xdb, 0xdc, 0xb2, 0xe0, - 0xee, 0x08, 0x34, 0x44, 0xbe, 0x0d, 0xe4, 0x0d, 0xaf, 0x34, 0xea, 0xa4, 0x0f, 0xfb, 0x76, 0x9e, - 0xb8, 0x3e, 0x95, 0x64, 0x4c, 0x10, 0xa3, 0x2f, 0x14, 0x6c, 0x9f, 0xe6, 0x31, 0xc6, 0xe8, 0x1b, - 0x58, 0x79, 0xfa, 0x88, 0x7d, 0x45, 0x02, 0xc7, 0x29, 0x01, 0xe7, 0x90, 0xe3, 0x9a, 0x4d, 0xa3, - 0x4d, 0x90, 0x7b, 0x59, 0x66, 0x14, 0xd0, 0xad, 0x82, 0xd9, 0x3d, 0xb6, 0x58, 0x0a, 0xe1, 0x99, - 0xbe, 0x10, 0x72, 0x04, 0xa8, 0xfc, 0x8f, 0x09, 0x62, 0x9d, 0x71, 0x5c, 0xe5, 0xca, 0x1c, 0x63, - 0xac, 0x33, 0x61, 0x22, 0xd2, 0x87, 0xf8, 0x55, 0x39, 0x12, 0xfe, 0x2f, 0xec, 0x3e, 0xff, 0x54, - 0x18, 0xdb, 0x0d, 0x30, 0x8d, 0xb1, 0x24, 0x3f, 0xd2, 0x65, 0x88, 0x18, 0x21, 0x0e, 0xfa, 0x1d, - 0x7a, 0xa7, 0x50, 0xf0, 0xaf, 0xca, 0x96, 0x03, 0xcf, 0x03, 0x10, 0x7e, 0x62, 0x3b, 0xe9, 0x4c, - 0x54, 0x27, 0x9d, 0x15, 0xeb, 0xa4, 0xdf, 0x22, 0x1c, 0xbc, 0xa4, 0x3f, 0xd9, 0x07, 0x17, 0x0f, - 0xb1, 0xb0, 0x15, 0x83, 0x6b, 0x4f, 0x5f, 0x2e, 0x5e, 0x9f, 0xeb, 0xbd, 0xd0, 0xf9, 0x63, 0x23, - 0x99, 0x4f, 0xb1, 0xfd, 0x81, 0xd4, 0xd3, 0x1f, 0x1c, 0xc0, 0x92, 0xbe, 0x19, 0x1c, 0x25, 0x55, - 0x94, 0x03, 0xb2, 0xf2, 0x24, 0x34, 0x43, 0x4f, 0x32, 0x7c, 0x7c, 0x08, 0x21, 0x18, 0x74, 0xdb, - 0x74, 0x5c, 0x27, 0x97, 0xcc, 0xd8, 0x4d, 0x2a, 0x20, 0x87, 0x77, 0x49, 0xf5, 0x37, 0x72, 0xc4, - 0xda, 0xdd, 0xc0, 0xd7, 0x3e, 0xc1, 0x2f, 0xe6, 0x46, 0x31, 0x22, 0xdc, 0x07, 0x72, 0xd8, 0x55, - 0x5d, 0x8a, 0x5c, 0xd2, 0x08, 0xab, 0x0c, 0xef, 0xe4, 0x42, 0x97, 0xdd, 0xd5, 0x23, 0x2a, 0xfe, - 0x53, 0xbe, 0x05, 0x1c, 0xbd, 0x60, 0x34, 0x2f, 0x6e, 0x39, 0xf6, 0x2e, 0xbe, 0x20, 0xc7, 0xa6, - 0x37, 0xed, 0xe0, 0x1b, 0xcb, 0xf8, 0x0f, 0xf2, 0xed, 0xbe, 0xe9, 0x90, 0x1f, 0x64, 0x3a, 0xac, - 0x1e, 0xa1, 0xc6, 0x83, 0xfc, 0x8c, 0xa0, 0xd3, 0x29, 0xc4, 0x76, 0x3a, 0xab, 0x47, 0xfc, 0x6e, - 0x47, 0x5e, 0x02, 0x93, 0x2d, 0x73, 0x0f, 0x6f, 0x55, 0xe3, 0x59, 0xd7, 0xa0, 0xa3, 0xc4, 0x4b, - 0xe6, 0x1e, 0xd9, 0xd8, 0x5e, 0x3d, 0xa2, 0x06, 0x7f, 0xca, 0x2b, 0x60, 0x0a, 0x6f, 0x0b, 0xe0, - 0x62, 0x26, 0x13, 0x1d, 0x13, 0x5e, 0x3d, 0xa2, 0x86, 0xff, 0x7a, 0xd6, 0x47, 0x0e, 0x9f, 0xe1, - 0xb8, 0xd7, 0xdf, 0x6e, 0xcf, 0x24, 0xda, 0x6e, 0xf7, 0x78, 0x41, 0x36, 0xdc, 0x4f, 0x82, 0x7c, - 0x13, 0x73, 0x38, 0x4b, 0x39, 0x4c, 0x5e, 0xe5, 0xbb, 0x41, 0x6e, 0xc7, 0x70, 0xfc, 0xc9, 0xf3, - 0x4d, 0x83, 0xcb, 0x5d, 0x37, 0x9c, 0x8b, 0x1e, 0x82, 0xde, 0x5f, 0x8b, 0x13, 0x20, 0x8f, 0x19, - 0x17, 0x3c, 0xc0, 0xb7, 0xe7, 0x88, 0x19, 0x52, 0xb6, 0x2d, 0x6f, 0xd8, 0xd7, 0x6d, 0xff, 0xa0, - 0xcb, 0x87, 0x33, 0xa3, 0xb1, 0x20, 0xfb, 0xde, 0x80, 0x2c, 0x45, 0xde, 0x80, 0xdc, 0x73, 0x07, - 0x67, 0xae, 0xf7, 0x0e, 0xce, 0x70, 0xf9, 0x20, 0x3f, 0xd8, 0x51, 0xe5, 0x8f, 0x86, 0x30, 0x5d, - 0x7a, 0x19, 0x11, 0x3d, 0x03, 0x6f, 0x9b, 0x16, 0xd3, 0x66, 0xff, 0x35, 0x61, 0xa7, 0x94, 0xd4, - 0xa8, 0x19, 0x40, 0x5e, 0xfa, 0x7d, 0xd3, 0xaf, 0xe5, 0xc0, 0x3c, 0xb9, 0xe9, 0x75, 0x0f, 0xe9, - 0x36, 0x7f, 0x25, 0x1d, 0xfc, 0xd4, 0x48, 0x84, 0xa6, 0xcf, 0x80, 0x23, 0xf5, 0x1d, 0x70, 0xf6, - 0x1d, 0x36, 0xce, 0x0d, 0x38, 0x6c, 0x9c, 0x4f, 0xb6, 0x72, 0xf8, 0xdb, 0xac, 0xfc, 0xd4, 0x79, - 0xf9, 0xb9, 0x2b, 0x02, 0xa0, 0x7e, 0x7c, 0x19, 0x89, 0x7d, 0xf3, 0xce, 0x40, 0x52, 0x34, 0x4e, - 0x52, 0xee, 0x1d, 0x9e, 0x90, 0xf4, 0xa5, 0xe5, 0xb7, 0x72, 0xe0, 0xaa, 0x90, 0x98, 0x2a, 0xba, - 0x44, 0x05, 0xe5, 0xf3, 0x23, 0x11, 0x94, 0xe4, 0xb1, 0x0c, 0xd2, 0x96, 0x98, 0x3f, 0x10, 0x3e, - 0x03, 0xd4, 0x0b, 0x54, 0xc0, 0x9b, 0x08, 0x61, 0x39, 0x09, 0x0a, 0xa4, 0x87, 0xa1, 0xd0, 0xd0, - 0xb7, 0x84, 0xdd, 0x8d, 0xd8, 0xc9, 0x21, 0x51, 0xda, 0xc6, 0x20, 0x3f, 0x74, 0x5d, 0x43, 0xdf, - 0x75, 0xac, 0x8a, 0xe5, 0xda, 0xf0, 0xc7, 0x46, 0x22, 0x38, 0x81, 0x37, 0x9c, 0x34, 0x8c, 0x37, - 0xdc, 0x50, 0xab, 0x1c, 0x7e, 0x0b, 0x0e, 0x65, 0x95, 0x23, 0xa2, 0xf2, 0xf4, 0xf1, 0x7b, 0x87, - 0x44, 0x2e, 0x7f, 0xd7, 0x90, 0xbb, 0xc8, 0x5b, 0x88, 0xf0, 0x81, 0x51, 0x00, 0x79, 0xdc, 0x37, - 0x93, 0xe8, 0xa5, 0x45, 0xf8, 0x85, 0x3f, 0xf1, 0x14, 0x1b, 0x3c, 0x9f, 0x9b, 0x0e, 0xf6, 0x50, - 0x38, 0x12, 0xa4, 0xc4, 0x62, 0xe6, 0x27, 0x20, 0x23, 0x7d, 0xcc, 0x5e, 0x21, 0x81, 0x02, 0xbd, - 0xe1, 0x7b, 0x23, 0x15, 0x87, 0x09, 0x3e, 0x84, 0xae, 0xc0, 0x8e, 0x5c, 0xe2, 0x7b, 0xb0, 0xd3, - 0xdb, 0x8b, 0x3b, 0xa4, 0x8b, 0xae, 0xbf, 0x99, 0x05, 0xd3, 0x1a, 0x72, 0xcb, 0x86, 0xe3, 0x98, - 0xc6, 0xd6, 0xa8, 0x3c, 0xbe, 0x45, 0xbd, 0x87, 0xe1, 0xb7, 0x32, 0xa2, 0xe7, 0x69, 0x82, 0x85, - 0x70, 0x9f, 0xd4, 0x88, 0xd8, 0x7e, 0x62, 0x37, 0x8c, 0x0f, 0x2a, 0x6d, 0x0c, 0x1e, 0xdb, 0x59, - 0x30, 0xe1, 0x9f, 0xa9, 0x3b, 0xcb, 0x9d, 0xb3, 0xdc, 0x76, 0x77, 0xfc, 0x63, 0x30, 0xf8, 0x79, - 0xff, 0x59, 0x2e, 0xf8, 0xba, 0x84, 0x8e, 0xf2, 0xf1, 0x07, 0x02, 0x93, 0xe9, 0x58, 0x12, 0x77, - 0xf8, 0xc3, 0x3a, 0x02, 0xf8, 0x9b, 0x13, 0x74, 0x39, 0x72, 0xcd, 0x70, 0xd1, 0x65, 0xf8, 0xa7, - 0x12, 0x98, 0xd0, 0x90, 0xeb, 0x8d, 0xb7, 0x1e, 0xf9, 0x07, 0x96, 0x70, 0x99, 0x59, 0xf1, 0x98, - 0xa2, 0x6b, 0x18, 0xcf, 0x07, 0x53, 0x1d, 0xc7, 0x6e, 0xa2, 0x6e, 0x97, 0xae, 0x5e, 0xb0, 0x8e, - 0x6a, 0xfd, 0x46, 0x7f, 0x4c, 0xda, 0x42, 0xdd, 0xff, 0x47, 0x0d, 0x7f, 0x4f, 0x6a, 0x06, 0x90, - 0x92, 0x68, 0x03, 0xc7, 0x6d, 0x06, 0xc4, 0x55, 0x9e, 0x3e, 0xd0, 0x9f, 0x95, 0xc0, 0x8c, 0x86, - 0xdc, 0x80, 0x8b, 0x09, 0x36, 0x39, 0xa2, 0xe1, 0xe5, 0xa0, 0x94, 0x0e, 0x06, 0xa5, 0xf8, 0xbd, - 0x6b, 0x3c, 0x37, 0x83, 0xc2, 0xc6, 0x78, 0xef, 0x9a, 0x18, 0x05, 0x63, 0x38, 0xbe, 0xf6, 0x14, - 0x30, 0x85, 0x69, 0xc1, 0x0a, 0xfb, 0x33, 0xb9, 0x50, 0x79, 0xbf, 0x90, 0x92, 0xf2, 0xde, 0x03, - 0xf2, 0xf8, 0x3e, 0x77, 0xac, 0xb8, 0xd3, 0x22, 0x66, 0xfb, 0xba, 0x97, 0x5d, 0x25, 0x7f, 0xf5, - 0xf7, 0xd3, 0xcc, 0x27, 0xf3, 0xd3, 0x7c, 0x53, 0x36, 0xd1, 0x48, 0x48, 0xe6, 0x0e, 0x23, 0x54, - 0xf9, 0x04, 0xe3, 0x66, 0x4c, 0xdd, 0xe9, 0x0b, 0xc7, 0xcb, 0x24, 0x30, 0xe9, 0x8d, 0xdb, 0xd8, - 0x1e, 0x3f, 0x7f, 0x70, 0x71, 0xe8, 0x6f, 0xe8, 0x27, 0xec, 0x81, 0x7d, 0x8e, 0x8c, 0xce, 0xbc, - 0x4f, 0xd0, 0x03, 0xc7, 0x55, 0x9e, 0x3e, 0x1e, 0xef, 0x22, 0x78, 0x60, 0x7d, 0x80, 0x6f, 0x96, - 0x80, 0xb4, 0x82, 0xdc, 0x71, 0x5b, 0x91, 0x8f, 0x0a, 0x87, 0x2a, 0xe2, 0x18, 0x86, 0x69, 0x5e, - 0x58, 0x41, 0xa3, 0x51, 0x20, 0xb1, 0x18, 0x45, 0x42, 0x04, 0xa4, 0x8f, 0xda, 0x7b, 0x09, 0x6a, - 0x64, 0x73, 0xe1, 0x47, 0x47, 0xd0, 0xab, 0x8e, 0x77, 0xe1, 0xc3, 0x67, 0x20, 0x2e, 0xe3, 0xb0, - 0xf4, 0xad, 0x5f, 0xe5, 0x63, 0xb9, 0xe7, 0x0c, 0x78, 0xca, 0xbe, 0x8d, 0x9a, 0x17, 0x51, 0x0b, - 0xfe, 0xd0, 0xc1, 0xa1, 0x9b, 0x07, 0x13, 0x4d, 0x52, 0x1a, 0x06, 0x6f, 0x52, 0xf5, 0x5f, 0x13, - 0x5c, 0xda, 0xcb, 0x77, 0x44, 0xe4, 0xf7, 0x31, 0x5e, 0xda, 0x2b, 0x50, 0xfd, 0x18, 0xcc, 0x16, - 0x32, 0xcb, 0xa8, 0x34, 0x6d, 0x0b, 0xfe, 0xc7, 0x83, 0xc3, 0x72, 0x1d, 0x98, 0x32, 0x9b, 0xb6, - 0x55, 0xd9, 0xf1, 0x83, 0xfb, 0x4d, 0xa9, 0x61, 0x82, 0xff, 0x55, 0xd9, 0xb1, 0x1f, 0x34, 0xe9, - 0xae, 0x79, 0x98, 0x30, 0xac, 0x31, 0xe1, 0x91, 0x7e, 0x58, 0xc6, 0x44, 0x9f, 0xba, 0xd3, 0x87, - 0xec, 0xf1, 0xd0, 0xbb, 0x8d, 0x74, 0x85, 0x4f, 0x88, 0x55, 0xe0, 0x61, 0x86, 0x33, 0xb6, 0x15, - 0x87, 0x32, 0x9c, 0xc5, 0x10, 0x30, 0x86, 0xfb, 0x45, 0x42, 0x1c, 0x53, 0x5f, 0x03, 0x3e, 0x00, - 0x3a, 0xa3, 0x33, 0x0f, 0x87, 0x44, 0xe7, 0x70, 0x4c, 0xc4, 0x0f, 0xd1, 0x50, 0x97, 0xd4, 0xe2, - 0x81, 0xff, 0x69, 0x14, 0xe0, 0xdc, 0x35, 0x8c, 0xbf, 0x02, 0xf1, 0x56, 0x48, 0x70, 0xdd, 0xf0, - 0x3e, 0x0e, 0x7a, 0xa5, 0x8c, 0xf1, 0x22, 0x6e, 0x91, 0xfa, 0xd3, 0x07, 0xf0, 0xa7, 0x25, 0x30, - 0x87, 0x7d, 0x04, 0xda, 0xc8, 0x70, 0x48, 0x47, 0x39, 0x12, 0x47, 0xf9, 0x77, 0x09, 0x07, 0xf8, - 0xe1, 0xf9, 0x10, 0xd2, 0x31, 0x12, 0x28, 0xc4, 0xa2, 0xfb, 0x08, 0x92, 0x30, 0x96, 0x6d, 0x94, - 0x62, 0x40, 0x02, 0x15, 0xf1, 0xd1, 0xe0, 0x91, 0xd0, 0x23, 0x97, 0x67, 0x86, 0xaf, 0x6c, 0x63, - 0xf6, 0xc8, 0x15, 0x21, 0x22, 0x7d, 0x4c, 0xde, 0x7c, 0x1b, 0x5d, 0x70, 0xd6, 0xf1, 0x6d, 0xdc, - 0x0f, 0xe7, 0x82, 0x13, 0x6d, 0x9f, 0x1d, 0x89, 0x07, 0xe6, 0x01, 0x02, 0xdb, 0xcb, 0x20, 0xe7, - 0xd8, 0x97, 0xc8, 0xd2, 0xd6, 0xac, 0x8a, 0x9f, 0xb1, 0xc9, 0x6f, 0xb7, 0x77, 0x77, 0x2c, 0x72, - 0x32, 0x74, 0x56, 0xf5, 0x5f, 0xe5, 0x1b, 0xc1, 0xec, 0x25, 0xd3, 0xdd, 0x5e, 0x45, 0x46, 0x0b, - 0x39, 0xaa, 0x7d, 0x09, 0x7b, 0xcc, 0x4d, 0xaa, 0x7c, 0x22, 0xef, 0xbf, 0x22, 0x60, 0x5f, 0xe2, - 0x2b, 0xba, 0xc7, 0x72, 0xfc, 0x2d, 0x89, 0xe5, 0x19, 0x4d, 0x55, 0xfa, 0x02, 0xf3, 0x7e, 0x09, - 0x4c, 0xa9, 0xf6, 0x25, 0x2a, 0x24, 0xff, 0xf7, 0xe1, 0xca, 0x48, 0xe2, 0x89, 0x1e, 0xb9, 0x72, - 0xdd, 0x27, 0x7f, 0xec, 0x13, 0xbd, 0xd8, 0xea, 0xc7, 0x72, 0x72, 0x69, 0x46, 0xb5, 0x2f, 0x69, - 0xc8, 0x25, 0x1a, 0x01, 0x1b, 0x23, 0x72, 0xb2, 0x36, 0xbb, 0xa4, 0x40, 0x3a, 0x0f, 0x0f, 0xde, - 0x93, 0xee, 0x22, 0x04, 0x0c, 0x0a, 0x48, 0x1c, 0xf7, 0x2e, 0xc2, 0x40, 0x0a, 0xc6, 0x10, 0x23, - 0x45, 0x02, 0xd3, 0xaa, 0x7d, 0xc9, 0x1b, 0x1a, 0x96, 0xcd, 0x76, 0x7b, 0x34, 0x23, 0x64, 0x52, - 0xe3, 0xdf, 0x67, 0x83, 0x4f, 0xc5, 0xd8, 0x8d, 0xff, 0x01, 0x04, 0xa4, 0x0f, 0xc3, 0x4b, 0x89, - 0xb2, 0xf8, 0x23, 0xb4, 0x35, 0x1a, 0x1c, 0x86, 0x55, 0x88, 0x80, 0x8c, 0x43, 0x53, 0x88, 0x28, - 0x0a, 0xc6, 0xb2, 0x73, 0x32, 0x57, 0xc6, 0xc3, 0xfc, 0x68, 0x75, 0xe2, 0xb1, 0x64, 0xae, 0x89, - 0x74, 0xd8, 0xe5, 0x08, 0x19, 0x09, 0x1a, 0x09, 0x5c, 0x10, 0x05, 0x68, 0x48, 0x1f, 0x8f, 0x8f, - 0x48, 0x60, 0x86, 0x90, 0xf0, 0x04, 0xb1, 0x02, 0x86, 0x52, 0x2a, 0xb6, 0x05, 0x87, 0xa3, 0x54, - 0x31, 0x14, 0x8c, 0xe5, 0x96, 0x4e, 0xcf, 0x8e, 0x1b, 0xe2, 0xf8, 0x78, 0x14, 0x82, 0x43, 0x1b, - 0x63, 0x23, 0x3c, 0x42, 0x3e, 0x8c, 0x31, 0x76, 0x48, 0xc7, 0xc8, 0x5f, 0x1a, 0x68, 0xd1, 0x28, - 0x31, 0x38, 0x80, 0x2a, 0x8c, 0x10, 0x86, 0x21, 0x55, 0xe1, 0x90, 0x90, 0xf8, 0xaa, 0x04, 0x00, - 0x21, 0x60, 0xdd, 0xde, 0xc3, 0x97, 0xf2, 0x8c, 0xa0, 0x3b, 0xeb, 0x75, 0xab, 0x97, 0x06, 0xb8, - 0xd5, 0x27, 0x0c, 0xe1, 0x92, 0x74, 0x25, 0x90, 0xe1, 0xb2, 0xd7, 0xc8, 0xb1, 0xaf, 0x04, 0xc6, - 0xd7, 0x9f, 0x3e, 0xc6, 0x5f, 0x26, 0xd6, 0x5c, 0x78, 0xc0, 0xf4, 0x17, 0x47, 0x82, 0x32, 0x33, - 0xfb, 0x97, 0xf8, 0xd9, 0xff, 0x01, 0xb0, 0x1d, 0xd6, 0x46, 0x1c, 0x74, 0x70, 0x34, 0x7d, 0x1b, - 0xf1, 0xf0, 0x0e, 0x88, 0xfe, 0x68, 0x0e, 0x1c, 0xa5, 0x9d, 0xc8, 0xf7, 0x02, 0xc4, 0x09, 0xcf, - 0xe1, 0x71, 0x9d, 0xe4, 0x00, 0x94, 0x47, 0xb5, 0x20, 0x95, 0x64, 0x29, 0x53, 0x80, 0xbc, 0xb1, - 0xac, 0x6e, 0x14, 0x94, 0xcb, 0x1d, 0xc3, 0x6a, 0x89, 0x87, 0xfb, 0x1d, 0x00, 0xbc, 0xbf, 0xd6, - 0x28, 0xf1, 0x6b, 0x8d, 0x7d, 0x56, 0x26, 0x13, 0xef, 0x5c, 0x63, 0x96, 0x11, 0x72, 0xc7, 0xbe, - 0x73, 0x1d, 0x5d, 0x77, 0xfa, 0x28, 0x3d, 0x26, 0x81, 0x9c, 0x66, 0x3b, 0x2e, 0x7c, 0x28, 0x89, - 0x76, 0x12, 0xce, 0x87, 0x20, 0xf9, 0xef, 0x72, 0x99, 0xbb, 0x35, 0xf9, 0x6c, 0xfc, 0x51, 0x67, - 0xc3, 0x35, 0xb0, 0x57, 0xb7, 0x57, 0x3f, 0x73, 0x7d, 0x72, 0xd2, 0x78, 0x3a, 0x84, 0x7f, 0x5a, - 0xf4, 0x01, 0x8c, 0xd4, 0xe2, 0xe9, 0x44, 0xd6, 0x9c, 0x3e, 0x6e, 0xff, 0x7d, 0x8e, 0xfa, 0xb6, - 0x2e, 0x9b, 0x6d, 0x04, 0x1f, 0x22, 0x2e, 0x23, 0x55, 0x63, 0x07, 0x89, 0x1f, 0x89, 0x89, 0x75, - 0x6d, 0xc5, 0xf1, 0x65, 0xa5, 0x30, 0xbe, 0x6c, 0x52, 0x85, 0x22, 0x07, 0xd0, 0x09, 0x49, 0xe3, - 0x56, 0xa8, 0x98, 0xba, 0xc7, 0x12, 0xa7, 0xf3, 0x98, 0x86, 0x5c, 0x62, 0x54, 0xd6, 0xfc, 0x1b, - 0x58, 0x7e, 0x78, 0x24, 0x11, 0x3b, 0x83, 0x0b, 0x5e, 0xa4, 0x9e, 0x0b, 0x5e, 0xde, 0xcf, 0x82, - 0xb3, 0xce, 0x83, 0xf3, 0xec, 0x68, 0x06, 0xf1, 0x44, 0x8e, 0x04, 0xa6, 0x47, 0x03, 0x98, 0xea, - 0x1c, 0x4c, 0x77, 0x0f, 0x49, 0x45, 0xfa, 0x80, 0x7d, 0xc1, 0x33, 0x55, 0xf0, 0xa4, 0xbf, 0x64, - 0xb5, 0x68, 0x84, 0xd5, 0x7f, 0x38, 0xec, 0xcd, 0xb6, 0xfd, 0x21, 0x58, 0xb9, 0x58, 0xce, 0xf9, - 0xde, 0xdb, 0xea, 0x17, 0x49, 0x38, 0x57, 0xaf, 0x13, 0xc5, 0x3b, 0x6d, 0xe2, 0x37, 0xd6, 0x07, - 0xff, 0xc1, 0x3f, 0x4c, 0xb6, 0xfe, 0x86, 0x8b, 0xe8, 0x61, 0x5c, 0xca, 0x36, 0x50, 0x82, 0x95, - 0x39, 0x01, 0xea, 0xfe, 0x7d, 0xb8, 0x85, 0x85, 0x91, 0x40, 0x86, 0x74, 0x0b, 0xc3, 0x05, 0x1c, - 0xa6, 0x5b, 0xd8, 0x20, 0x02, 0xc6, 0x70, 0xcb, 0x7c, 0x9e, 0xee, 0xca, 0x63, 0x9f, 0x49, 0xf8, - 0xe7, 0xd9, 0xd4, 0x47, 0xdb, 0x6f, 0x67, 0x12, 0xf9, 0x31, 0x63, 0xba, 0xe2, 0x87, 0xdb, 0x24, - 0x9e, 0xc9, 0x71, 0xc5, 0x8d, 0x61, 0xfd, 0x27, 0x8b, 0x7d, 0xca, 0xcf, 0x9b, 0x2d, 0x77, 0x7b, - 0x44, 0x27, 0x33, 0x2e, 0x79, 0x65, 0xf9, 0xd7, 0x15, 0xe3, 0x17, 0xf8, 0x2f, 0x99, 0x44, 0xa1, - 0xa0, 0x02, 0x96, 0x60, 0xb2, 0x22, 0x58, 0x9c, 0x20, 0x80, 0x53, 0x6c, 0x79, 0x63, 0x94, 0xe8, - 0x73, 0x66, 0x0b, 0xd9, 0x4f, 0x40, 0x89, 0xc6, 0x74, 0x8d, 0x4e, 0xa2, 0xe3, 0x8a, 0xfb, 0x77, - 0x2a, 0xd1, 0x01, 0x4b, 0x46, 0x24, 0xd1, 0xb1, 0xe5, 0xa5, 0xcf, 0xe3, 0xd7, 0xcd, 0xd0, 0x09, - 0xd1, 0x9a, 0x69, 0x5d, 0x84, 0xff, 0x58, 0xf0, 0x2f, 0x4a, 0x3e, 0x6f, 0xba, 0xdb, 0x34, 0xa6, - 0xcb, 0x6f, 0x09, 0xdf, 0x71, 0x32, 0x44, 0xdc, 0x16, 0x3e, 0x2c, 0x54, 0x7e, 0x5f, 0x58, 0xa8, - 0x12, 0x98, 0x35, 0x2d, 0x17, 0x39, 0x96, 0xd1, 0x5e, 0x6e, 0x1b, 0x5b, 0xdd, 0xf9, 0x89, 0xbe, - 0x97, 0xd0, 0x55, 0x98, 0x3c, 0x2a, 0xff, 0x07, 0x7b, 0x9d, 0xe4, 0x24, 0x7f, 0x2d, 0x7e, 0x44, - 0x14, 0xab, 0xa9, 0xe8, 0x28, 0x56, 0x41, 0x94, 0x2a, 0x30, 0x38, 0xc8, 0xb5, 0xa8, 0x8d, 0x9b, - 0x30, 0x6c, 0xdf, 0x59, 0xc1, 0x68, 0x6a, 0x41, 0x08, 0xc7, 0x5f, 0x96, 0x12, 0xad, 0xd2, 0x79, - 0x82, 0xb0, 0xd0, 0x2b, 0x04, 0x89, 0x2d, 0x54, 0xb6, 0xf1, 0x52, 0x4f, 0xe3, 0x03, 0x93, 0x27, - 0x27, 0x60, 0xf2, 0xb0, 0x42, 0x95, 0x17, 0x13, 0xaa, 0x24, 0x8b, 0x7e, 0x22, 0xad, 0x1d, 0xc3, - 0xa9, 0xa2, 0x3c, 0x38, 0xe6, 0x47, 0xad, 0xed, 0x74, 0x90, 0xe1, 0x18, 0x56, 0x13, 0xc1, 0xc7, - 0xb3, 0xa3, 0x30, 0x7b, 0x97, 0xc1, 0xa4, 0xd9, 0xb4, 0x2d, 0xcd, 0x7c, 0xa1, 0x7f, 0x49, 0x5c, - 0x7c, 0xb0, 0x74, 0xcc, 0x91, 0x0a, 0xfd, 0x43, 0x0d, 0xfe, 0x95, 0x2b, 0x60, 0xaa, 0x69, 0x38, - 0x2d, 0x12, 0x4c, 0x2f, 0xdf, 0x73, 0x21, 0x53, 0x64, 0x41, 0x65, 0xff, 0x17, 0x35, 0xfc, 0x5b, - 0xae, 0xf1, 0x4c, 0x2c, 0xf4, 0x44, 0xe5, 0x88, 0x2c, 0x6c, 0x29, 0xfc, 0x89, 0xe3, 0xb9, 0xc7, - 0x1d, 0x07, 0xb5, 0xf1, 0x9d, 0xf0, 0xa4, 0x87, 0x98, 0x52, 0xc3, 0x84, 0xa4, 0xd3, 0x7c, 0x5c, - 0xd5, 0x3e, 0x34, 0xc6, 0x3d, 0xcd, 0x17, 0xa2, 0x22, 0x7d, 0xc9, 0x7c, 0x67, 0x01, 0xcc, 0x92, - 0x5e, 0x8d, 0xb2, 0x13, 0xfe, 0x34, 0xbe, 0xd2, 0xd9, 0xbd, 0x1f, 0x5d, 0x81, 0xda, 0xc1, 0xc7, - 0xe4, 0x22, 0x90, 0x2e, 0x06, 0x81, 0x03, 0xbd, 0xc7, 0xa4, 0xfb, 0xef, 0x3e, 0x5d, 0x0b, 0x84, - 0xa6, 0x71, 0xef, 0xbf, 0xc7, 0x57, 0x9f, 0x3e, 0x3e, 0x3f, 0x27, 0x01, 0xa9, 0xd4, 0x6a, 0xc1, - 0xe6, 0xc1, 0xa1, 0x38, 0x0d, 0xa6, 0x7d, 0x9d, 0x09, 0x63, 0x39, 0xb2, 0x49, 0x49, 0x17, 0x33, - 0x03, 0xde, 0x94, 0x5a, 0x63, 0xdf, 0x1d, 0x88, 0xa9, 0x3b, 0x7d, 0x50, 0x7e, 0x71, 0x82, 0x2a, - 0xcd, 0xa2, 0x6d, 0x5f, 0xc4, 0x47, 0x5e, 0x1e, 0x92, 0x40, 0x7e, 0x19, 0xb9, 0xcd, 0xed, 0x11, - 0xe9, 0xcc, 0xae, 0xd3, 0xf6, 0x75, 0x66, 0xdf, 0xfd, 0xf4, 0x83, 0x6d, 0x58, 0x9f, 0xac, 0x05, - 0x4c, 0xd2, 0xb8, 0xa3, 0x34, 0xc7, 0xd6, 0x9e, 0x3e, 0x38, 0xff, 0x22, 0x81, 0xb9, 0x60, 0x85, - 0x8b, 0x60, 0xf2, 0xb3, 0x4f, 0xb8, 0x75, 0x4b, 0xf8, 0xf9, 0x64, 0xa1, 0xce, 0x02, 0x9e, 0xf2, - 0x2d, 0x4b, 0x79, 0x61, 0x31, 0x41, 0x10, 0x34, 0x31, 0x02, 0xc7, 0x30, 0x83, 0x97, 0xc0, 0x24, - 0x26, 0x68, 0xc9, 0xdc, 0xc3, 0x2e, 0x80, 0xdc, 0x42, 0xe3, 0x8b, 0x46, 0xb2, 0xd0, 0x78, 0x37, - 0xbf, 0xd0, 0x28, 0x18, 0xb9, 0xd8, 0x5f, 0x67, 0x4c, 0xe8, 0x13, 0xe3, 0xfd, 0x3f, 0xf2, 0x65, - 0xc6, 0x04, 0x3e, 0x31, 0x03, 0xea, 0x4f, 0x1f, 0xd1, 0x4f, 0x35, 0x68, 0x67, 0xeb, 0x6f, 0x8c, - 0xc2, 0xff, 0x7e, 0x0c, 0xe4, 0xce, 0x79, 0x0f, 0xff, 0x3b, 0xbc, 0xd9, 0xea, 0xd5, 0x23, 0x08, - 0xb2, 0xf0, 0x3c, 0x90, 0xf3, 0xca, 0xa7, 0xd3, 0x96, 0x5b, 0xc4, 0x76, 0x69, 0x3d, 0x42, 0x54, - 0xfc, 0x9f, 0x7c, 0x12, 0x14, 0xba, 0xf6, 0xae, 0xd3, 0xf4, 0xcc, 0x67, 0x4f, 0x62, 0xe8, 0x5b, - 0xd2, 0xe0, 0xa2, 0x5c, 0xd1, 0x0b, 0xa3, 0x73, 0xfd, 0x64, 0x2e, 0x3a, 0x92, 0xb8, 0x8b, 0x8e, - 0x12, 0xec, 0x1f, 0x08, 0xd0, 0x96, 0xbe, 0x44, 0xfc, 0x39, 0xbe, 0xf3, 0xaf, 0x35, 0x2a, 0xd8, - 0x23, 0xd8, 0x72, 0x50, 0x71, 0x48, 0xea, 0xb8, 0xcd, 0xb3, 0x36, 0x88, 0xe7, 0x3e, 0x56, 0xc7, - 0x6d, 0x01, 0x1a, 0xc6, 0x72, 0xda, 0xbc, 0x40, 0x9d, 0x4d, 0x1f, 0x18, 0x25, 0xba, 0x39, 0x4e, - 0xe8, 0x0f, 0x84, 0xce, 0x08, 0x9d, 0x50, 0x87, 0x46, 0xe7, 0x90, 0xdc, 0x50, 0x7f, 0x57, 0xc2, - 0x11, 0x2d, 0x7d, 0x23, 0x47, 0xfc, 0xc2, 0xa2, 0xc4, 0x10, 0x79, 0x63, 0x30, 0x17, 0xcf, 0x79, - 0x76, 0xf8, 0x10, 0xdf, 0x3c, 0xeb, 0x18, 0xfa, 0xc7, 0x1d, 0xe2, 0x5b, 0x94, 0x90, 0xf4, 0x81, - 0xfc, 0x15, 0x72, 0x41, 0x58, 0xa9, 0xe9, 0x9a, 0x7b, 0x23, 0xd6, 0x34, 0x7e, 0x78, 0x49, 0x18, - 0xd5, 0x77, 0x1f, 0x87, 0x08, 0x85, 0xe3, 0x8e, 0xea, 0x2b, 0x46, 0xc6, 0x18, 0x8e, 0xa3, 0x03, - 0x8f, 0x7b, 0x74, 0x6d, 0xe6, 0xcd, 0x74, 0x35, 0x00, 0x1d, 0x1c, 0xad, 0x33, 0x60, 0x86, 0x99, - 0xfa, 0xfb, 0x17, 0xcf, 0x70, 0x69, 0x49, 0x0f, 0xac, 0x07, 0x2c, 0x1b, 0xf9, 0xc2, 0x40, 0x82, - 0x05, 0x5f, 0x11, 0x22, 0xc6, 0x72, 0xaf, 0x9b, 0x3f, 0x86, 0x8d, 0x09, 0xab, 0xdf, 0x62, 0xb1, - 0xaa, 0xf1, 0x58, 0xdd, 0x29, 0xc2, 0x26, 0xb1, 0x31, 0x4d, 0x68, 0xde, 0xf8, 0x8e, 0x00, 0x2e, - 0x95, 0x83, 0xeb, 0x79, 0x43, 0xd3, 0x91, 0x3e, 0x62, 0x6f, 0x91, 0xc8, 0xe5, 0x4e, 0xa5, 0x3d, - 0xc3, 0x6c, 0xe3, 0x28, 0x03, 0x23, 0xb8, 0x9c, 0xf8, 0x8f, 0x59, 0x50, 0xce, 0xf1, 0xa0, 0xdc, - 0x27, 0xc2, 0x0c, 0x8e, 0xa2, 0x08, 0x6c, 0x9e, 0xc5, 0x2e, 0x8e, 0x93, 0x10, 0xc3, 0x57, 0xf7, - 0x86, 0xf3, 0xa3, 0xdf, 0xd9, 0x55, 0xf3, 0xf7, 0x05, 0x20, 0x3d, 0xc0, 0x81, 0xa4, 0x1c, 0x94, - 0xae, 0xf4, 0xb1, 0x7a, 0x0d, 0x19, 0xba, 0x34, 0x32, 0xbd, 0x1a, 0xcd, 0xd0, 0x45, 0x67, 0x6e, - 0x12, 0x37, 0x73, 0x4b, 0x78, 0xc6, 0x21, 0x74, 0xdd, 0xf5, 0x89, 0x1b, 0xa4, 0x4e, 0xb9, 0x11, - 0x9f, 0x71, 0x18, 0x48, 0x41, 0xfa, 0xe0, 0xfc, 0xbd, 0x04, 0xc0, 0x8a, 0x63, 0xef, 0x76, 0x6a, - 0x4e, 0x0b, 0x39, 0xf0, 0x2f, 0xc3, 0xc9, 0xda, 0x2b, 0x47, 0x30, 0x59, 0xab, 0x03, 0xb0, 0x15, - 0x14, 0x4e, 0x7b, 0xa3, 0xdb, 0xc4, 0xa6, 0x66, 0x21, 0x51, 0x2a, 0x53, 0x06, 0x7f, 0xcd, 0xef, - 0x0f, 0xf0, 0x18, 0xc7, 0x8d, 0x2f, 0x61, 0x71, 0xa3, 0x9c, 0xac, 0xbd, 0x2b, 0xc0, 0x5a, 0xe7, - 0xb0, 0xbe, 0xef, 0x00, 0x94, 0xa4, 0x8f, 0xf9, 0x3f, 0x4c, 0x80, 0x69, 0xb2, 0xb5, 0x4a, 0x78, - 0xfa, 0x37, 0x21, 0xe8, 0xbf, 0x38, 0x02, 0xd0, 0x37, 0xc0, 0x8c, 0x1d, 0x96, 0x4e, 0xc6, 0x3f, - 0x76, 0xb1, 0x2c, 0x16, 0x76, 0x86, 0x2e, 0x95, 0x2b, 0x06, 0x7e, 0x94, 0x45, 0x5e, 0xe5, 0x91, - 0xbf, 0x3b, 0x86, 0xdf, 0x4c, 0x89, 0xa3, 0x84, 0xfe, 0xdd, 0x01, 0xf4, 0x1b, 0x1c, 0xf4, 0xa5, - 0x83, 0x90, 0x32, 0x86, 0x2b, 0x0e, 0x24, 0x90, 0xc3, 0x27, 0x12, 0x7f, 0x2d, 0xc5, 0xb5, 0x98, - 0x79, 0x30, 0x81, 0x55, 0x36, 0x98, 0x23, 0xfa, 0xaf, 0xde, 0x17, 0x63, 0xd3, 0x45, 0x4e, 0xe0, - 0x5d, 0xe2, 0xbf, 0x7a, 0x34, 0xf8, 0x9e, 0xe0, 0xdd, 0xf9, 0x02, 0xd9, 0x34, 0x0e, 0x12, 0x86, - 0x9e, 0x40, 0xb2, 0x1c, 0x1f, 0xd9, 0x19, 0xc5, 0x61, 0x26, 0x90, 0x03, 0x08, 0x49, 0x1f, 0xf8, - 0x2f, 0xe6, 0xc0, 0x3c, 0x59, 0x01, 0x5c, 0x76, 0xec, 0x9d, 0x9e, 0x1b, 0xc5, 0xcc, 0x83, 0xcb, - 0xc2, 0x4d, 0x60, 0xce, 0xe5, 0x7c, 0xe0, 0xa9, 0x4c, 0xf4, 0xa4, 0xc2, 0x3f, 0x62, 0xfd, 0x5f, - 0x5e, 0xc0, 0x23, 0xb9, 0x18, 0xc3, 0xc0, 0x28, 0xda, 0x13, 0x6f, 0xaa, 0x08, 0x12, 0xca, 0x2c, - 0x28, 0x4a, 0x43, 0xad, 0x2f, 0x07, 0x32, 0x95, 0x17, 0x91, 0xa9, 0x0f, 0x04, 0x32, 0xf5, 0x43, - 0x9c, 0x4c, 0xad, 0x1c, 0x9c, 0x25, 0xe9, 0xcb, 0xd6, 0xc3, 0xc1, 0x26, 0x5e, 0xb0, 0xc5, 0xba, - 0x93, 0xc2, 0xc6, 0x2a, 0xeb, 0x3b, 0x96, 0xe3, 0x7c, 0xc7, 0xf8, 0x3b, 0x40, 0x12, 0xac, 0x5a, - 0xf0, 0x54, 0x47, 0xc8, 0xd2, 0x1c, 0xc8, 0x9a, 0x3e, 0x75, 0x59, 0xb3, 0x35, 0xd4, 0xba, 0x44, - 0x6c, 0x45, 0x63, 0x58, 0x07, 0x9c, 0x03, 0x85, 0x65, 0xb3, 0xed, 0x22, 0x07, 0x7e, 0x99, 0xae, - 0x4a, 0x3c, 0x9c, 0xe2, 0x00, 0xb0, 0x04, 0x0a, 0x9b, 0xb8, 0x36, 0x6a, 0x32, 0xdf, 0x2a, 0xa6, - 0x3d, 0x84, 0x42, 0x95, 0xfe, 0x9b, 0x34, 0x22, 0x62, 0x4f, 0x31, 0x23, 0x5b, 0xce, 0x48, 0x10, - 0x11, 0x71, 0x30, 0x09, 0x63, 0xb9, 0x0c, 0xac, 0xa0, 0xa2, 0x1d, 0x6f, 0x8c, 0xbf, 0x98, 0x1e, - 0xc2, 0x45, 0x20, 0x99, 0xad, 0x2e, 0xee, 0x1c, 0xa7, 0x54, 0xef, 0x31, 0xa9, 0x5f, 0x57, 0x2f, - 0xab, 0x08, 0xc9, 0xe3, 0xf6, 0xeb, 0x12, 0xa2, 0x22, 0x7d, 0xcc, 0xbe, 0x8d, 0x9d, 0x7a, 0x3b, - 0x6d, 0xa3, 0x89, 0x3c, 0xea, 0x53, 0x43, 0x8d, 0xf4, 0x64, 0x39, 0xbf, 0x27, 0x63, 0xf4, 0x34, - 0x7f, 0x00, 0x3d, 0x1d, 0x76, 0xc9, 0x38, 0xe0, 0x39, 0x6e, 0xf8, 0xa1, 0x2d, 0x19, 0xc7, 0x92, - 0x31, 0x86, 0xab, 0x5e, 0xfd, 0xc3, 0xcb, 0x63, 0xd5, 0xd6, 0x61, 0x37, 0xd4, 0x28, 0xb3, 0x46, - 0x76, 0x50, 0x79, 0x98, 0x0d, 0xb5, 0x68, 0x1a, 0xc6, 0x80, 0xd6, 0x1c, 0x45, 0xeb, 0x73, 0x74, - 0x18, 0x4d, 0x79, 0x4f, 0xbb, 0x6b, 0x3b, 0x6e, 0xb2, 0x3d, 0x6d, 0x8f, 0x3a, 0x15, 0xff, 0x97, - 0xf4, 0x90, 0x1c, 0x7f, 0x96, 0x7d, 0x54, 0xc3, 0x67, 0x82, 0x43, 0x72, 0x83, 0x08, 0x48, 0x1f, - 0xde, 0xb7, 0x1d, 0xd2, 0xe0, 0x39, 0xac, 0x3a, 0x52, 0x1d, 0x18, 0xd9, 0xd0, 0x39, 0x8c, 0x3a, - 0x46, 0xd3, 0x90, 0x3e, 0x5e, 0x7f, 0xc7, 0x0c, 0x9c, 0x6f, 0x19, 0xe3, 0xc0, 0xe9, 0x6b, 0x66, - 0x7e, 0x48, 0xcd, 0x1c, 0x76, 0xaf, 0x8e, 0xf2, 0x7a, 0x74, 0x03, 0xe6, 0x30, 0x7b, 0x75, 0x31, - 0x44, 0xa4, 0x8f, 0xf8, 0x5b, 0x25, 0x90, 0xd7, 0xc6, 0x3f, 0x5e, 0x0e, 0x3b, 0x17, 0xc1, 0xbc, - 0xd2, 0x46, 0x36, 0x5c, 0x0e, 0x33, 0x17, 0x89, 0x24, 0x61, 0x0c, 0x97, 0x1d, 0x1c, 0x05, 0x33, - 0x78, 0x49, 0xc4, 0xdf, 0x12, 0xff, 0x3b, 0x3a, 0x6a, 0xbe, 0x29, 0x45, 0x5d, 0x7d, 0x3e, 0x98, - 0xf4, 0xf7, 0xcd, 0xe8, 0xc8, 0xb9, 0x20, 0xa6, 0x9f, 0xc1, 0xbe, 0x5b, 0xf0, 0xff, 0x81, 0x1c, - 0x57, 0x46, 0xbe, 0xaf, 0x3e, 0xac, 0xe3, 0xca, 0xa1, 0xee, 0xad, 0xff, 0x61, 0x38, 0xa2, 0xfe, - 0xc7, 0xf4, 0x30, 0xef, 0xdd, 0x73, 0xcf, 0xf5, 0xd9, 0x73, 0x7f, 0x9c, 0xc5, 0x52, 0xe3, 0xb1, - 0xbc, 0x47, 0x94, 0x85, 0x23, 0x1c, 0x6b, 0x1f, 0x0b, 0xe0, 0x3c, 0xc7, 0xc1, 0xb9, 0x78, 0x20, - 0x5a, 0xc6, 0x70, 0x48, 0x35, 0x17, 0x8e, 0xb9, 0x1f, 0x4f, 0x51, 0x8f, 0x7b, 0x4e, 0xc0, 0xe4, - 0xf6, 0x9d, 0x80, 0xe1, 0x34, 0x3d, 0x7f, 0x40, 0x4d, 0xff, 0x38, 0x2b, 0x1d, 0x3a, 0x2f, 0x1d, - 0xcf, 0x13, 0x47, 0x64, 0x74, 0x23, 0xf3, 0x7b, 0x02, 0xf1, 0x38, 0xcf, 0x89, 0x47, 0xf9, 0x60, - 0xc4, 0xa4, 0x2f, 0x1f, 0xbf, 0xe7, 0x4f, 0x68, 0x0f, 0x59, 0xdf, 0x87, 0xdd, 0x2a, 0xe6, 0x98, - 0x38, 0xb2, 0x91, 0x7b, 0x98, 0xad, 0xe2, 0x41, 0x94, 0x8c, 0x21, 0xfe, 0xdd, 0x2c, 0x98, 0xc6, - 0x34, 0x9d, 0x37, 0x5b, 0x5b, 0xc8, 0x85, 0xbf, 0x4c, 0xfc, 0x49, 0xfd, 0x68, 0xa3, 0x23, 0x0a, - 0x09, 0x15, 0x75, 0x36, 0x39, 0xa9, 0x47, 0x07, 0x21, 0x72, 0x81, 0x21, 0x70, 0xdc, 0x51, 0x2b, - 0x07, 0x52, 0x90, 0x3e, 0x64, 0x1f, 0x25, 0xee, 0x36, 0x6b, 0xc6, 0x15, 0x7b, 0xd7, 0x85, 0x2f, - 0x19, 0x41, 0x07, 0xbd, 0x08, 0x0a, 0x6d, 0x5c, 0x1a, 0x3d, 0x42, 0x13, 0x3f, 0xdd, 0xa1, 0x2c, - 0x20, 0xf5, 0xab, 0xf4, 0xcf, 0xa4, 0xe7, 0x68, 0x42, 0x3e, 0x92, 0x72, 0xc6, 0x7d, 0x8e, 0x66, - 0x40, 0xfd, 0x63, 0xb9, 0xd7, 0x68, 0xd2, 0xab, 0xdd, 0xdc, 0x31, 0xdd, 0x11, 0x45, 0xdb, 0x68, - 0x7b, 0x65, 0xf9, 0xd1, 0x36, 0xf0, 0x4b, 0xd2, 0xd3, 0xbd, 0x0c, 0x57, 0xbc, 0xdf, 0xc7, 0x7d, - 0xba, 0x37, 0xbe, 0xfa, 0xf4, 0x31, 0xf9, 0x2f, 0x44, 0xb3, 0xce, 0x11, 0x47, 0xe9, 0x14, 0x7d, - 0xb0, 0x87, 0x56, 0x16, 0x42, 0xda, 0xe1, 0x29, 0x4b, 0xdf, 0xfa, 0xd3, 0x07, 0xe6, 0x83, 0xa7, - 0x40, 0x7e, 0x09, 0x5d, 0xd8, 0xdd, 0x82, 0x77, 0x83, 0x49, 0xdd, 0x41, 0xa8, 0x62, 0x6d, 0xda, - 0x1e, 0x77, 0x5d, 0xef, 0xd9, 0x87, 0x84, 0xbe, 0x79, 0x78, 0x6c, 0x23, 0xa3, 0x15, 0x9e, 0x15, - 0xf4, 0x5f, 0xe1, 0xab, 0xb3, 0x20, 0xa7, 0xb9, 0x86, 0x0b, 0xa7, 0x02, 0x6c, 0xe1, 0x4b, 0x58, - 0x2c, 0xee, 0xe6, 0xb1, 0xb8, 0x89, 0xe3, 0x05, 0xa6, 0x60, 0xc1, 0xfb, 0x3f, 0x02, 0x00, 0x08, - 0x26, 0x1f, 0xec, 0xda, 0x96, 0x97, 0xc3, 0x3f, 0xae, 0xea, 0xbf, 0xc3, 0xd7, 0x07, 0xec, 0xbe, - 0x97, 0x63, 0xf7, 0xd3, 0xc4, 0xaa, 0x18, 0xc3, 0x4a, 0x5b, 0x16, 0x4c, 0x79, 0xac, 0x5d, 0x45, - 0x46, 0xab, 0x0b, 0x9f, 0x1c, 0x0a, 0x7f, 0x04, 0x9b, 0xe1, 0x87, 0x84, 0x03, 0xa0, 0x92, 0x56, - 0x05, 0x85, 0x47, 0x7b, 0x74, 0xf8, 0x9b, 0xff, 0x59, 0x3e, 0x70, 0xcc, 0x59, 0x90, 0x33, 0xad, - 0x4d, 0x9b, 0xfa, 0x17, 0x5e, 0x1b, 0x51, 0xb6, 0x27, 0x13, 0x2a, 0xce, 0x28, 0x18, 0x1d, 0x35, - 0x9e, 0xac, 0xb1, 0x5c, 0x34, 0x98, 0xf3, 0x6a, 0x87, 0xff, 0xd7, 0x40, 0x66, 0xcb, 0x32, 0xc8, - 0x75, 0x0c, 0x77, 0x9b, 0x56, 0x8d, 0x9f, 0x3d, 0x1b, 0x79, 0xd7, 0x32, 0x2c, 0xdb, 0xba, 0xb2, - 0x63, 0xbe, 0x30, 0xb8, 0xcf, 0x98, 0x4b, 0xf3, 0x28, 0xdf, 0x42, 0x16, 0x72, 0x0c, 0x17, 0x69, - 0x7b, 0x5b, 0x78, 0x8e, 0x35, 0xa9, 0xb2, 0x49, 0x89, 0xe5, 0xdf, 0xa3, 0x38, 0x5a, 0xfe, 0x37, - 0xcd, 0x36, 0xc2, 0x51, 0xb5, 0xa8, 0xfc, 0xfb, 0xef, 0x89, 0xe4, 0xbf, 0x4f, 0x15, 0xe9, 0xa3, - 0xf1, 0x9d, 0x2c, 0x98, 0xd1, 0x3c, 0x81, 0xd3, 0x76, 0x77, 0x76, 0x0c, 0xe7, 0x0a, 0xbc, 0x21, - 0x44, 0x85, 0x11, 0xcd, 0x0c, 0xef, 0x97, 0xf2, 0xbb, 0xc2, 0x57, 0x79, 0x53, 0xd5, 0x66, 0x6a, - 0x48, 0xac, 0x07, 0xcf, 0x00, 0x79, 0x4f, 0xbc, 0x7d, 0x8f, 0xcb, 0x58, 0x45, 0x20, 0x39, 0x05, - 0xa3, 0x8f, 0x0d, 0xa4, 0x6d, 0x0c, 0x91, 0x4f, 0xb2, 0xe0, 0xa8, 0xe6, 0x1a, 0xcd, 0x8b, 0x2b, - 0xb6, 0x63, 0xef, 0xba, 0xa6, 0x85, 0xba, 0xf0, 0x49, 0x21, 0x02, 0xbe, 0xfc, 0x67, 0x42, 0xf9, - 0x87, 0xff, 0x9a, 0x11, 0x1d, 0x45, 0x83, 0x6e, 0x95, 0x2d, 0x3e, 0x22, 0x98, 0x98, 0xd8, 0xb8, - 0x28, 0x52, 0xe2, 0x58, 0x4e, 0x49, 0x14, 0x95, 0xcb, 0x1d, 0xdb, 0x71, 0xd7, 0xec, 0xa6, 0xd1, - 0xee, 0xba, 0xb6, 0x83, 0x60, 0x2d, 0x96, 0x6b, 0x5e, 0x0f, 0xd3, 0xb2, 0x9b, 0xe1, 0xe0, 0x48, - 0xdf, 0x58, 0xb1, 0x93, 0x78, 0x19, 0xff, 0xa8, 0xf0, 0x2e, 0x23, 0xe1, 0x4a, 0x2f, 0x45, 0x11, - 0x72, 0xde, 0xaf, 0x4b, 0x4b, 0x76, 0xb0, 0x45, 0x6c, 0xe7, 0x51, 0x88, 0xa8, 0x31, 0x2c, 0x95, - 0x67, 0xc1, 0xac, 0xb6, 0x7b, 0x21, 0x28, 0xa4, 0xcb, 0x1a, 0x21, 0x6f, 0x10, 0x8e, 0x28, 0x42, - 0x05, 0x8f, 0x2d, 0x28, 0x82, 0xbf, 0x37, 0x82, 0xd9, 0x2e, 0x9b, 0x8d, 0xe2, 0xcd, 0x27, 0x0a, - 0x46, 0x12, 0x19, 0x5c, 0x6b, 0xfa, 0x0c, 0x7c, 0x4f, 0x16, 0xcc, 0xd6, 0x3a, 0xc8, 0x42, 0x2d, - 0xe2, 0x05, 0xc9, 0x31, 0xf0, 0xd5, 0x09, 0x19, 0xc8, 0x15, 0x14, 0xc1, 0xc0, 0xd0, 0x63, 0x79, - 0xc9, 0x67, 0x5e, 0x98, 0x90, 0x88, 0x71, 0x71, 0xb5, 0xa5, 0xcf, 0xb8, 0x2f, 0x65, 0xc1, 0xb4, - 0xba, 0x6b, 0xd5, 0x1d, 0xdb, 0x1b, 0x8d, 0x1d, 0x78, 0x4f, 0xd8, 0x41, 0xdc, 0x0a, 0x8e, 0xb5, - 0x76, 0x1d, 0xbc, 0xfe, 0x54, 0xb1, 0x34, 0xd4, 0xb4, 0xad, 0x56, 0x17, 0xb7, 0x23, 0xaf, 0xee, - 0xff, 0x70, 0x57, 0xee, 0xa1, 0xbf, 0x96, 0x32, 0xf0, 0xa7, 0x85, 0xc3, 0x12, 0x91, 0xc6, 0x33, - 0x55, 0x8b, 0xf7, 0x04, 0x82, 0xc1, 0x87, 0x06, 0xd5, 0x90, 0x3e, 0x73, 0x3f, 0x9c, 0x05, 0x72, - 0xa9, 0xd9, 0xb4, 0x77, 0x2d, 0x57, 0x43, 0x6d, 0xd4, 0x74, 0x75, 0xc7, 0x68, 0x22, 0x78, 0x34, - 0xe0, 0x31, 0xe5, 0xda, 0xab, 0x85, 0xf7, 0x17, 0x49, 0x9b, 0xf6, 0x97, 0x99, 0x80, 0x79, 0x62, - 0xbb, 0x88, 0x82, 0x15, 0x8d, 0xe1, 0x9e, 0x9d, 0x2c, 0xc8, 0xd5, 0x4d, 0x6b, 0x8b, 0x8d, 0xd6, - 0x74, 0xdc, 0xb3, 0x75, 0x5a, 0xe8, 0x32, 0x95, 0x46, 0xf2, 0x22, 0xdf, 0x0e, 0x8e, 0x5b, 0xbb, - 0x3b, 0x17, 0x90, 0x53, 0xdb, 0xc4, 0x23, 0x41, 0x57, 0xb7, 0x35, 0x64, 0x11, 0x43, 0x29, 0xaf, - 0xf6, 0xfd, 0xc6, 0x9b, 0x09, 0x02, 0x06, 0xae, 0x47, 0x49, 0x04, 0xaf, 0x03, 0xa2, 0xb2, 0x0c, - 0x51, 0x89, 0x4c, 0xdb, 0x3e, 0x85, 0xa7, 0xcf, 0xdf, 0xaf, 0x67, 0xc1, 0xc4, 0x3a, 0x72, 0x1d, - 0xb3, 0xd9, 0x85, 0x5f, 0xf0, 0x86, 0x21, 0xe4, 0xd6, 0x0d, 0xc7, 0xd8, 0x41, 0x2e, 0x72, 0xba, - 0x50, 0x09, 0x99, 0x0e, 0xc1, 0x64, 0xa7, 0x6d, 0xb8, 0x9b, 0xb6, 0xb3, 0x43, 0x6d, 0x86, 0xe0, - 0xdd, 0xb3, 0x0f, 0xf6, 0x90, 0xd3, 0x0d, 0xc9, 0xf2, 0x5f, 0xa9, 0x80, 0x8b, 0x5b, 0x63, 0x94, - 0x94, 0x05, 0x8e, 0x8c, 0x03, 0x59, 0x63, 0x22, 0x25, 0x8e, 0xe5, 0x2e, 0x19, 0x69, 0xcd, 0xde, - 0x82, 0xaf, 0x95, 0x40, 0x0e, 0x4b, 0xde, 0x5b, 0x33, 0xdc, 0x14, 0x62, 0x07, 0x75, 0xbb, 0xc6, - 0x16, 0xf2, 0xa7, 0x10, 0xf4, 0x55, 0xbe, 0x13, 0xe4, 0xdb, 0x68, 0x0f, 0xb5, 0x31, 0x19, 0x73, - 0xb7, 0xdf, 0xc0, 0xb5, 0x6c, 0xcd, 0xde, 0x5a, 0xf0, 0xca, 0x5a, 0xa0, 0xe5, 0x2c, 0xac, 0x79, - 0x59, 0x55, 0xf2, 0xc7, 0x99, 0xe7, 0x83, 0x3c, 0x7e, 0x97, 0xa7, 0x40, 0x7e, 0x49, 0x59, 0xdc, - 0x58, 0x29, 0x1e, 0xf1, 0x1e, 0x7d, 0xfa, 0xa6, 0x40, 0x7e, 0xb9, 0xa4, 0x97, 0xd6, 0x8a, 0x59, - 0xaf, 0x1d, 0x95, 0xea, 0x72, 0xad, 0x28, 0x79, 0x89, 0xf5, 0x52, 0xb5, 0x52, 0x2e, 0xe6, 0xe4, - 0x69, 0x30, 0x71, 0xbe, 0xa4, 0x56, 0x2b, 0xd5, 0x95, 0x62, 0x1e, 0xfe, 0x15, 0x8b, 0xdf, 0x5d, - 0x3c, 0x7e, 0x37, 0x46, 0xd1, 0xd4, 0x0f, 0xb2, 0x5f, 0x0a, 0x20, 0xbb, 0x87, 0x83, 0xec, 0xfb, - 0x44, 0x0a, 0x19, 0x03, 0x4a, 0x59, 0x30, 0x51, 0x77, 0xec, 0x26, 0xea, 0x76, 0xe1, 0x2f, 0x64, - 0x41, 0xa1, 0x6c, 0x58, 0x4d, 0xd4, 0x86, 0xd7, 0x84, 0x50, 0x11, 0x5f, 0xa0, 0x4c, 0x70, 0x1c, - 0xe0, 0xef, 0x59, 0xce, 0xdc, 0xc7, 0x73, 0xe6, 0x16, 0xae, 0x51, 0xb4, 0xdc, 0x05, 0x52, 0x66, - 0x04, 0x7f, 0x1e, 0x09, 0xf8, 0x53, 0xe6, 0xf8, 0x73, 0x56, 0xbc, 0xa8, 0xf4, 0xb9, 0xf4, 0xad, - 0x0c, 0x38, 0xbe, 0x82, 0x2c, 0xe4, 0x98, 0x4d, 0x42, 0xbc, 0xdf, 0xfe, 0x7b, 0xf8, 0xf6, 0x3f, - 0x95, 0x23, 0xba, 0xdf, 0x1f, 0x7c, 0xe3, 0x1f, 0x0e, 0x1a, 0x7f, 0x1f, 0xd7, 0xf8, 0x5b, 0x05, - 0xcb, 0x19, 0xc3, 0xc5, 0xb1, 0x53, 0x60, 0xa6, 0x6a, 0xbb, 0xe6, 0xa6, 0xd9, 0x24, 0x1b, 0xc7, - 0xaf, 0x91, 0x40, 0x6e, 0xcd, 0xec, 0xba, 0xec, 0x09, 0xf4, 0xd3, 0x60, 0xda, 0xb4, 0x9a, 0xed, - 0xdd, 0x16, 0x52, 0x91, 0x41, 0x64, 0x65, 0x52, 0x65, 0x93, 0xc2, 0xf5, 0x78, 0x8f, 0x2c, 0xc9, - 0x5f, 0x8f, 0xff, 0xb4, 0xb0, 0xed, 0xc4, 0x92, 0x80, 0xcf, 0x77, 0x47, 0x0c, 0x49, 0x25, 0x30, - 0x6b, 0x31, 0x59, 0xfd, 0x23, 0xe7, 0xbd, 0x11, 0x9b, 0xd9, 0xe2, 0x54, 0xfe, 0x0f, 0xf8, 0x7e, - 0x21, 0x53, 0x6b, 0x10, 0x41, 0xc9, 0x90, 0x59, 0x4e, 0x8e, 0x8c, 0x2c, 0x83, 0xb9, 0x4a, 0x55, - 0x57, 0xd4, 0x6a, 0x69, 0x8d, 0x66, 0x91, 0xe0, 0x77, 0xb2, 0x20, 0xaf, 0xa2, 0x4e, 0xfb, 0x0a, - 0x1b, 0x92, 0x93, 0x7a, 0x77, 0x65, 0x02, 0xef, 0x2e, 0x79, 0x19, 0x00, 0xa3, 0xe9, 0x55, 0x8c, - 0xef, 0x1e, 0xc9, 0xf6, 0x0d, 0x14, 0xc7, 0x35, 0xb0, 0x14, 0xe4, 0x56, 0x99, 0x3f, 0xe1, 0xcb, - 0x84, 0x97, 0x7b, 0xb8, 0xd2, 0x30, 0x85, 0x11, 0xdd, 0xc1, 0x07, 0x84, 0x56, 0x68, 0x06, 0x16, - 0x77, 0x38, 0xec, 0xff, 0x4a, 0x16, 0xe4, 0x74, 0x6f, 0xfe, 0xc5, 0x4c, 0xc5, 0x3e, 0x35, 0x9c, - 0x8c, 0x7b, 0xc5, 0x44, 0xc8, 0xf8, 0xbd, 0x60, 0x86, 0x95, 0x58, 0xba, 0xbf, 0x11, 0x2b, 0xe2, - 0xdc, 0x0f, 0xc3, 0x48, 0x78, 0x1f, 0x72, 0x0e, 0x87, 0xc5, 0x5f, 0xbd, 0x05, 0x80, 0x75, 0xe4, - 0xd9, 0xb5, 0xdd, 0x6d, 0xb3, 0x03, 0xff, 0x9b, 0x04, 0xa6, 0x56, 0x90, 0xab, 0xb9, 0x86, 0xbb, - 0xdb, 0xed, 0x59, 0xa3, 0xb4, 0xec, 0xb2, 0xd1, 0xdc, 0x46, 0xb4, 0x3b, 0xf2, 0x5f, 0xe1, 0xbb, - 0x25, 0xd1, 0x4d, 0xc0, 0xb0, 0x9e, 0x85, 0xa0, 0x8e, 0x08, 0x4c, 0x9e, 0x0e, 0x72, 0x2d, 0xc3, - 0x35, 0x28, 0x16, 0xd7, 0xf4, 0x60, 0x11, 0x16, 0xa4, 0xe2, 0x6c, 0xf0, 0x37, 0xb2, 0x22, 0xbb, - 0x80, 0x02, 0xf5, 0x27, 0x03, 0xe1, 0xfd, 0x99, 0x21, 0x50, 0x38, 0x06, 0x66, 0xab, 0x35, 0xbd, - 0xb1, 0x56, 0x5b, 0x59, 0x51, 0xbc, 0xd4, 0xa2, 0x24, 0x9f, 0x04, 0x72, 0xbd, 0xf4, 0xc0, 0xba, - 0x52, 0xd5, 0x1b, 0xd5, 0xda, 0x92, 0x42, 0xff, 0xcc, 0xc9, 0x47, 0xc1, 0x74, 0xb9, 0x54, 0x5e, - 0xf5, 0x13, 0xf2, 0xf2, 0x3c, 0x38, 0xbe, 0xae, 0xac, 0x2f, 0x2a, 0xaa, 0xb6, 0x5a, 0xa9, 0x37, - 0xbc, 0x62, 0x96, 0x6b, 0x1b, 0xd5, 0xa5, 0x62, 0x41, 0x86, 0xe0, 0x24, 0xf3, 0xe5, 0xbc, 0x5a, - 0xab, 0xae, 0x34, 0x34, 0xbd, 0xa4, 0x2b, 0xc5, 0x09, 0xf9, 0x2a, 0x70, 0xb4, 0x5c, 0xaa, 0xe2, - 0xec, 0xe5, 0x5a, 0xb5, 0xaa, 0x94, 0xf5, 0xe2, 0x24, 0xfc, 0xd7, 0x1c, 0x98, 0xae, 0x74, 0xab, - 0xc6, 0x0e, 0x3a, 0x67, 0xb4, 0xcd, 0x16, 0xfc, 0x69, 0xc6, 0x9a, 0xbc, 0x11, 0xcc, 0x3a, 0xe4, - 0x11, 0xb5, 0x74, 0x13, 0x11, 0x34, 0x67, 0x55, 0x3e, 0x51, 0x3e, 0x09, 0x0a, 0x16, 0x2e, 0x80, - 0xb2, 0x86, 0xbe, 0xc9, 0x8b, 0x00, 0x90, 0x27, 0x3d, 0xbc, 0x05, 0xef, 0x4c, 0xaf, 0x36, 0x19, - 0x3b, 0xa8, 0x8b, 0x9c, 0x3d, 0xb3, 0x89, 0xfc, 0x9c, 0x2a, 0xf3, 0x17, 0xfc, 0xaa, 0x24, 0xba, - 0x28, 0xc8, 0x80, 0xca, 0x34, 0x27, 0xa2, 0x37, 0xfc, 0x29, 0x49, 0x64, 0x49, 0x4f, 0xa8, 0xc8, - 0x64, 0x92, 0xf2, 0x8a, 0xec, 0x10, 0x92, 0x32, 0x0b, 0xa6, 0xf4, 0x5a, 0xad, 0xa1, 0xad, 0xd6, - 0x54, 0xbd, 0x28, 0xc9, 0x33, 0x60, 0xd2, 0x7b, 0x5d, 0xab, 0x55, 0x57, 0x8a, 0x39, 0xf9, 0x04, - 0x38, 0xb6, 0x5a, 0xd2, 0x1a, 0x95, 0xea, 0xb9, 0xd2, 0x5a, 0x65, 0xa9, 0x51, 0x5e, 0x2d, 0xa9, - 0x5a, 0x31, 0x2f, 0x5f, 0x03, 0x4e, 0xe8, 0x15, 0x45, 0x6d, 0x2c, 0x2b, 0x25, 0x7d, 0x43, 0x55, - 0xb4, 0x46, 0xb5, 0xd6, 0xa8, 0x96, 0xd6, 0x95, 0x62, 0xc1, 0x53, 0x7f, 0xfc, 0x29, 0x14, 0x9b, - 0x89, 0xfd, 0xc2, 0x38, 0x19, 0x21, 0x8c, 0x53, 0xbd, 0xc2, 0x08, 0x58, 0xb1, 0x52, 0x15, 0x4d, - 0x51, 0xcf, 0x29, 0xc5, 0xe9, 0x7e, 0xb2, 0x36, 0x23, 0x1f, 0x07, 0x45, 0x8f, 0x86, 0x46, 0x45, - 0xf3, 0x73, 0x2e, 0x15, 0x67, 0xe1, 0xc7, 0x0b, 0xe0, 0xa4, 0x8a, 0xb6, 0xcc, 0xae, 0x8b, 0x9c, - 0xba, 0x71, 0x65, 0x07, 0x59, 0xae, 0xdf, 0xc9, 0xff, 0x53, 0x62, 0x61, 0x5c, 0x07, 0xb3, 0x1d, - 0x52, 0xc6, 0x3a, 0x72, 0xb7, 0xed, 0x16, 0x1d, 0x85, 0x9f, 0x1a, 0xd9, 0x73, 0x2c, 0xd4, 0xd9, - 0xec, 0x2a, 0xff, 0x37, 0x23, 0xdb, 0x52, 0x8c, 0x6c, 0xe7, 0x86, 0x91, 0x6d, 0xf9, 0x3a, 0x30, - 0xb5, 0xdb, 0x45, 0x8e, 0xb2, 0x63, 0x98, 0x6d, 0xff, 0x16, 0xb3, 0x20, 0x01, 0xbe, 0x23, 0x27, - 0xea, 0x66, 0xca, 0xb4, 0xa5, 0x3f, 0x1b, 0x23, 0xfa, 0xd6, 0x53, 0x00, 0xd0, 0xc6, 0x6e, 0x38, - 0x6d, 0x2a, 0xac, 0x4c, 0x8a, 0x47, 0xdf, 0x05, 0xb3, 0xdd, 0x36, 0xad, 0xad, 0x60, 0xb1, 0x3e, - 0x4c, 0x80, 0xaf, 0x90, 0x44, 0xdc, 0x4e, 0x93, 0xd2, 0x96, 0x4c, 0x9b, 0x5e, 0x96, 0x1d, 0x73, - 0xbf, 0xbb, 0x5f, 0x75, 0x0a, 0x72, 0x11, 0xcc, 0xe0, 0x34, 0xaa, 0x81, 0xc5, 0x09, 0xaf, 0x0f, - 0xf6, 0x8b, 0x5b, 0x57, 0xf4, 0xd5, 0xda, 0x52, 0xf0, 0x6d, 0xd2, 0x2b, 0xd2, 0x23, 0xa6, 0x54, - 0x7d, 0x00, 0x6b, 0xe3, 0x94, 0xfc, 0x24, 0x70, 0x0d, 0xd3, 0x61, 0x97, 0xd6, 0x54, 0xa5, 0xb4, - 0xf4, 0x40, 0x43, 0x79, 0x41, 0x45, 0xd3, 0x35, 0x5e, 0xb9, 0x7c, 0x3d, 0x9a, 0xf6, 0xe8, 0x55, - 0xd6, 0x4b, 0x95, 0x35, 0xda, 0xbf, 0x2f, 0xd7, 0xd4, 0xf5, 0x92, 0x5e, 0x9c, 0x81, 0xaf, 0x95, - 0x40, 0x71, 0x05, 0xb9, 0x75, 0xdb, 0x71, 0x8d, 0xf6, 0x9a, 0x69, 0x5d, 0xdc, 0x70, 0xda, 0xac, - 0xcd, 0xf4, 0x2f, 0xc2, 0x67, 0x6b, 0xf9, 0x21, 0x92, 0x2b, 0x30, 0x7a, 0x19, 0xbb, 0x83, 0xb3, - 0x85, 0xc2, 0x14, 0x26, 0xc0, 0x17, 0x65, 0x45, 0xce, 0xd2, 0x8a, 0xd7, 0x9a, 0x4c, 0x4e, 0x5e, - 0x3c, 0xee, 0xf1, 0xb9, 0x0f, 0x6a, 0x05, 0xf8, 0x50, 0x0e, 0x4c, 0x2e, 0x9b, 0x96, 0xd1, 0x36, - 0x5f, 0xc8, 0x05, 0x88, 0x0b, 0xfb, 0x98, 0x4c, 0x4c, 0x1f, 0x93, 0x1d, 0x6a, 0xfc, 0xfc, 0x79, - 0x49, 0x74, 0xc3, 0x82, 0xe1, 0xbd, 0x4f, 0x64, 0xc4, 0xe0, 0xf9, 0x3b, 0x59, 0x91, 0x2d, 0x89, - 0xc1, 0xe5, 0x25, 0xc3, 0xf0, 0x93, 0xdf, 0x1b, 0x36, 0x56, 0x8f, 0x7e, 0x4f, 0xf6, 0x13, 0x85, - 0x29, 0xf8, 0xc7, 0x12, 0x80, 0x2b, 0xc8, 0x3d, 0x87, 0x9c, 0x60, 0x2a, 0x80, 0x7b, 0x7d, 0x6a, - 0x6f, 0x33, 0x2a, 0xfb, 0x56, 0x16, 0xc0, 0xf3, 0x3c, 0x80, 0xa5, 0x18, 0xe5, 0x89, 0x28, 0x3a, - 0x42, 0x79, 0x2b, 0xa0, 0xd0, 0xc5, 0xdf, 0xa9, 0x98, 0x3d, 0x23, 0x7a, 0xb8, 0xc4, 0x85, 0xb1, - 0xa5, 0x93, 0x82, 0x55, 0x5a, 0x00, 0xfc, 0x76, 0x30, 0x09, 0xfa, 0x41, 0x4e, 0x3a, 0x96, 0x0f, - 0x4c, 0x6c, 0x32, 0x79, 0x71, 0xd2, 0x15, 0x97, 0x7e, 0xf6, 0x0d, 0xfc, 0x62, 0x0e, 0x1c, 0xef, - 0xd7, 0x1c, 0xf6, 0x1e, 0xb9, 0xe3, 0x20, 0x8f, 0xf0, 0x88, 0x4f, 0x94, 0x9d, 0xbc, 0xc8, 0xcf, - 0x04, 0x27, 0xe8, 0x86, 0xe9, 0x05, 0xa4, 0xdb, 0x55, 0x74, 0xa9, 0xdb, 0x46, 0xae, 0x8b, 0x1c, - 0xdc, 0xb2, 0x49, 0xb5, 0xff, 0x47, 0xf8, 0x37, 0x92, 0xa8, 0x6b, 0xfa, 0x00, 0x7e, 0x47, 0x68, - 0xfa, 0x4f, 0x4a, 0x22, 0xce, 0xe6, 0xc9, 0xca, 0x4e, 0x86, 0xe2, 0x4b, 0xc7, 0x3d, 0xc2, 0xf7, - 0x1f, 0x5a, 0xb1, 0xce, 0x93, 0x74, 0x7f, 0x84, 0x3e, 0xa7, 0xa8, 0x95, 0xe5, 0x8a, 0xe2, 0x8d, - 0xf7, 0x27, 0xc0, 0xb1, 0xf0, 0xdb, 0xd2, 0x03, 0x0d, 0x4d, 0xa9, 0xea, 0xc5, 0x49, 0xaf, 0x03, - 0x21, 0xc9, 0xcb, 0xa5, 0xca, 0x9a, 0xb2, 0xd4, 0xd0, 0x6b, 0xde, 0x97, 0xa5, 0xe1, 0xc6, 0x7c, - 0xf8, 0x92, 0x1c, 0x38, 0x8a, 0x79, 0x7b, 0x05, 0x73, 0xd5, 0x63, 0x4a, 0x8f, 0xe7, 0x4a, 0x00, - 0xd0, 0x14, 0x61, 0x2f, 0xfc, 0xac, 0xf0, 0x1d, 0x61, 0x0c, 0x84, 0x3d, 0x75, 0x44, 0x48, 0xc6, - 0xb7, 0xb2, 0x22, 0xe7, 0x3d, 0x85, 0x8b, 0x4d, 0x26, 0x14, 0xff, 0x3c, 0xee, 0xa1, 0x20, 0x1a, - 0x7c, 0x6c, 0xfe, 0x95, 0xf1, 0xcf, 0x2f, 0xa8, 0x57, 0x54, 0x2c, 0x0e, 0x73, 0x00, 0xe0, 0x14, - 0x2c, 0x41, 0x44, 0x0e, 0xfa, 0x0e, 0x24, 0x51, 0x72, 0x50, 0x2a, 0xeb, 0x95, 0x73, 0x4a, 0x94, - 0x1c, 0x7c, 0x46, 0x02, 0x93, 0x2b, 0xc8, 0xf5, 0x26, 0x3b, 0x5d, 0xf8, 0x5c, 0x81, 0x85, 0x19, - 0xcf, 0xbe, 0xc0, 0x97, 0x23, 0x07, 0xf3, 0x73, 0xf2, 0x06, 0x7f, 0x62, 0x18, 0xdb, 0xc0, 0xaf, - 0x3a, 0x62, 0x20, 0x79, 0x36, 0xc8, 0xbb, 0xde, 0x67, 0xba, 0x3e, 0xfc, 0xe4, 0xc8, 0x71, 0xc4, - 0x2b, 0x64, 0xc9, 0x70, 0x0d, 0x95, 0xe4, 0x67, 0x86, 0x0d, 0x41, 0xa3, 0x22, 0x82, 0x90, 0xef, - 0x45, 0xc3, 0xf0, 0xaf, 0x24, 0x70, 0x82, 0xe8, 0x47, 0xa9, 0xd3, 0xd1, 0x5c, 0xdb, 0x41, 0x2a, - 0x6a, 0x22, 0xb3, 0xe3, 0xf6, 0x2c, 0xbc, 0x39, 0x24, 0xd5, 0xdf, 0xd9, 0xa3, 0xaf, 0xf0, 0xcd, - 0x92, 0x68, 0x44, 0xc3, 0x7d, 0xfa, 0xd8, 0x53, 0x5f, 0x84, 0xb2, 0x3f, 0x9e, 0x15, 0x89, 0x51, - 0x98, 0xb0, 0xf0, 0x64, 0x40, 0x7d, 0xe4, 0x10, 0x80, 0xf2, 0x97, 0x54, 0x54, 0xa5, 0xac, 0x54, - 0xea, 0xde, 0x20, 0x70, 0x3d, 0xb8, 0xb6, 0xbe, 0xa1, 0x96, 0x57, 0x4b, 0x9a, 0xd2, 0x50, 0x95, - 0x95, 0x8a, 0xa6, 0xab, 0x25, 0xbd, 0x52, 0xf3, 0x09, 0x98, 0x90, 0xaf, 0x03, 0xf3, 0xda, 0xc6, - 0xa2, 0x56, 0x56, 0x2b, 0x75, 0x9c, 0xae, 0x2a, 0x55, 0xe5, 0x3c, 0xfd, 0x3a, 0x09, 0x3f, 0x54, - 0x04, 0xd3, 0x9e, 0x65, 0xae, 0x11, 0x83, 0x1d, 0xfe, 0x6d, 0x0e, 0x4c, 0xab, 0xa8, 0x6b, 0xb7, - 0xf7, 0xb0, 0xf1, 0x3e, 0xae, 0x39, 0xc1, 0x37, 0x25, 0xd1, 0xd3, 0x50, 0x0c, 0xb1, 0x0b, 0x0c, - 0xa1, 0xd1, 0x33, 0x40, 0xc3, 0x8f, 0x0e, 0x4c, 0xed, 0x96, 0x30, 0x41, 0x5e, 0x00, 0xb2, 0x7d, - 0xc9, 0x42, 0x8e, 0xd6, 0xbc, 0xa4, 0xb8, 0xdb, 0xa5, 0x56, 0xcb, 0x41, 0xdd, 0x2e, 0x5d, 0x56, - 0xe8, 0xf3, 0x45, 0xbe, 0x19, 0x1c, 0xc5, 0xa9, 0x4c, 0x66, 0x72, 0x74, 0xb3, 0x37, 0x39, 0xc8, - 0x59, 0xb2, 0xae, 0xf8, 0x39, 0xf3, 0x4c, 0xce, 0x30, 0x99, 0x75, 0x3e, 0x2c, 0xf0, 0x3e, 0xaf, - 0xa7, 0xc1, 0xb4, 0x65, 0xec, 0x20, 0xe5, 0x72, 0xc7, 0x74, 0x50, 0x77, 0x7e, 0x02, 0xef, 0xa6, - 0xb1, 0x49, 0xf0, 0x77, 0x84, 0x4e, 0x6f, 0x89, 0x71, 0x2c, 0x99, 0xec, 0xaf, 0x0c, 0x21, 0xfa, - 0x7d, 0xfa, 0x19, 0x09, 0x7e, 0x48, 0x02, 0x33, 0x94, 0xa8, 0x92, 0x75, 0xa5, 0xd2, 0x82, 0xd7, - 0x73, 0x66, 0xa9, 0xe1, 0xa5, 0xf9, 0x66, 0x29, 0x7e, 0x81, 0x3f, 0x23, 0x89, 0xba, 0x13, 0xf5, - 0x69, 0x38, 0xae, 0x23, 0xda, 0xc5, 0x65, 0xd3, 0xde, 0xa5, 0x2e, 0x35, 0x93, 0x2a, 0x79, 0x49, - 0x73, 0xb5, 0x0d, 0x7e, 0x58, 0xc8, 0x59, 0x49, 0xb0, 0x19, 0x87, 0x04, 0xe0, 0x27, 0x24, 0x30, - 0x47, 0xa9, 0xd2, 0xa8, 0xd7, 0xac, 0x90, 0xfb, 0xf8, 0xcf, 0x0a, 0x1b, 0x82, 0x7d, 0xda, 0x4f, - 0x6b, 0x7a, 0xc2, 0x00, 0xf9, 0x51, 0xa1, 0x50, 0x23, 0xc2, 0x0d, 0x39, 0x24, 0x28, 0xdf, 0x99, - 0x03, 0xd3, 0x1b, 0x5d, 0xe4, 0x50, 0xbf, 0x38, 0xf8, 0x48, 0x0e, 0x48, 0x2b, 0x88, 0xdb, 0xe1, - 0x7c, 0x79, 0x4e, 0x74, 0xb5, 0x8e, 0x6d, 0x2c, 0x53, 0xa8, 0x67, 0x23, 0x45, 0xc0, 0x76, 0x13, - 0x98, 0x23, 0x2c, 0x2d, 0xb9, 0xae, 0x67, 0x24, 0xfa, 0x87, 0x00, 0x7a, 0x52, 0x47, 0xb1, 0x87, - 0x83, 0xeb, 0xf2, 0xb2, 0x94, 0x3d, 0x9a, 0xd6, 0xd0, 0x26, 0x09, 0x44, 0x95, 0x53, 0x7b, 0x52, - 0xf1, 0xc5, 0xcd, 0x1d, 0x44, 0xbc, 0x41, 0x99, 0xcc, 0x79, 0x9c, 0xb9, 0xdf, 0x27, 0xf8, 0xb7, - 0x42, 0x11, 0xfa, 0xc4, 0xb9, 0x93, 0x4c, 0x16, 0x3a, 0xa3, 0x31, 0x49, 0x8e, 0x83, 0xa2, 0x97, - 0x03, 0x6f, 0x8c, 0xa8, 0x8a, 0x56, 0x5b, 0x3b, 0xa7, 0xf4, 0x5f, 0x5f, 0xc8, 0xc3, 0x97, 0x4a, - 0x60, 0x6a, 0xd1, 0xb1, 0x8d, 0x56, 0xd3, 0xe8, 0xba, 0xf0, 0xdb, 0x59, 0x30, 0x53, 0x37, 0xae, - 0xb4, 0x6d, 0xa3, 0x85, 0x3d, 0x11, 0x7b, 0xfa, 0x82, 0x0e, 0xf9, 0xe4, 0xf7, 0x05, 0xf4, 0x95, - 0x77, 0xb3, 0x0f, 0x1c, 0xe1, 0x33, 0x22, 0x57, 0x89, 0x05, 0xfb, 0x6f, 0xd9, 0x7e, 0xa1, 0xbf, - 0x7c, 0xba, 0x16, 0x58, 0x9a, 0x22, 0x2c, 0xca, 0x0f, 0x89, 0x05, 0xf3, 0x12, 0x29, 0xf2, 0x70, - 0xb6, 0xcb, 0x1f, 0x9a, 0x04, 0x85, 0x25, 0x84, 0xad, 0xb8, 0xf7, 0x65, 0xc1, 0x04, 0xbd, 0x4c, - 0x1f, 0xde, 0xc9, 0x39, 0x39, 0xb6, 0x70, 0x86, 0xa0, 0x3b, 0x0e, 0xde, 0xbd, 0xc9, 0x3a, 0x73, - 0x7a, 0x09, 0x3f, 0x27, 0x70, 0xff, 0x22, 0xf5, 0x46, 0x5c, 0xe0, 0x9f, 0xcc, 0xfd, 0x2b, 0xb6, - 0xa8, 0xf4, 0x9d, 0xa0, 0xde, 0x9d, 0xa5, 0x3e, 0x4f, 0x4c, 0xaf, 0xf7, 0xcb, 0xac, 0x7c, 0xc6, - 0xba, 0x81, 0x51, 0xe2, 0x63, 0xbc, 0x96, 0xee, 0x00, 0x13, 0x84, 0xe7, 0xfe, 0x7c, 0xb4, 0xd7, - 0x81, 0x80, 0x14, 0x81, 0x4f, 0x32, 0xf9, 0x39, 0x05, 0x7d, 0xc7, 0xa2, 0x2b, 0x1f, 0xcb, 0x89, - 0xbe, 0x99, 0x2a, 0x72, 0x2f, 0xd9, 0xce, 0x45, 0xcd, 0x35, 0x5c, 0x04, 0xff, 0x39, 0x0b, 0x24, - 0x0d, 0xb9, 0xec, 0x59, 0xe2, 0x2a, 0x38, 0x46, 0x1a, 0x44, 0x33, 0xe2, 0xfe, 0x9b, 0x34, 0xe4, - 0x74, 0x5f, 0x26, 0x30, 0xf9, 0xd4, 0xfd, 0xbf, 0xc2, 0x5f, 0xe8, 0x1b, 0x42, 0x21, 0xdb, 0x67, - 0xd2, 0x40, 0x39, 0xc3, 0x12, 0xe8, 0x09, 0x58, 0x84, 0x9c, 0xfe, 0xb6, 0x90, 0x59, 0x2d, 0x56, - 0xe6, 0xa1, 0x74, 0x05, 0x67, 0x26, 0x40, 0x5e, 0xd9, 0xe9, 0xb8, 0x57, 0xce, 0x3c, 0x05, 0xcc, - 0x6a, 0xae, 0x83, 0x8c, 0x1d, 0xc6, 0xa6, 0x76, 0xed, 0x8b, 0xc8, 0xf2, 0x6d, 0x6a, 0xfc, 0x72, - 0xd7, 0x9d, 0x60, 0xc2, 0xb2, 0x1b, 0xc6, 0xae, 0xbb, 0x2d, 0x5f, 0xbf, 0xef, 0xd2, 0xfb, 0x75, - 0xe2, 0xad, 0x5b, 0xa3, 0x67, 0x69, 0xbe, 0x7a, 0x37, 0xb6, 0xaa, 0x0a, 0x96, 0x5d, 0xda, 0x75, - 0xb7, 0x17, 0xaf, 0xfb, 0xc4, 0x5f, 0x9e, 0xca, 0x7c, 0xe6, 0x2f, 0x4f, 0x65, 0xbe, 0xf2, 0x97, - 0xa7, 0x32, 0x3f, 0xfb, 0xb5, 0x53, 0x47, 0x3e, 0xf3, 0xb5, 0x53, 0x47, 0xbe, 0xf0, 0xb5, 0x53, - 0x47, 0x7e, 0x30, 0xdb, 0xb9, 0x70, 0xa1, 0x80, 0x4b, 0xb9, 0xe3, 0xff, 0x0b, 0x00, 0x00, 0xff, - 0xff, 0x2e, 0x84, 0x8d, 0x8d, 0xcb, 0xdd, 0x01, 0x00, + // 18032 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0xfd, 0x7d, 0x98, 0x24, 0x47, + 0x75, 0x27, 0x0a, 0x4f, 0x55, 0x56, 0x55, 0x77, 0x47, 0x7f, 0x4c, 0x4d, 0x6a, 0x66, 0xd4, 0x0a, + 0x89, 0xd1, 0x30, 0x12, 0x42, 0x16, 0xa2, 0x07, 0x24, 0x30, 0x48, 0x48, 0x48, 0xd5, 0xd5, 0xd9, + 0xdd, 0x85, 0xba, 0xab, 0xca, 0x99, 0xd9, 0x33, 0xc8, 0x7e, 0xfd, 0xd6, 0xe6, 0x54, 0x45, 0x77, + 0xa7, 0xa6, 0x3a, 0xb3, 0x9c, 0x95, 0xdd, 0x33, 0xc3, 0x7d, 0xf6, 0xae, 0x31, 0xc6, 0xc8, 0x1f, + 0x2c, 0xc6, 0x98, 0xb5, 0x05, 0x06, 0x19, 0x61, 0xf0, 0x82, 0x0d, 0x32, 0x1f, 0x02, 0x83, 0x31, + 0x36, 0x1f, 0x32, 0x18, 0x63, 0x8c, 0xf9, 0xb0, 0x01, 0x9b, 0xc7, 0x60, 0xb0, 0x17, 0xef, 0x5d, + 0xd6, 0xd7, 0x7e, 0xd6, 0xb0, 0xd8, 0x70, 0x7d, 0x9f, 0x8c, 0x88, 0xcc, 0x8c, 0xa8, 0xae, 0xcc, + 0x8a, 0xac, 0xae, 0xac, 0x16, 0xf6, 0xfd, 0x2f, 0x33, 0x32, 0x32, 0xe2, 0xc4, 0xf9, 0x9d, 0x13, + 0x71, 0x22, 0xe2, 0xc4, 0x09, 0x30, 0xdf, 0xb9, 0x70, 0xb6, 0xe3, 0xd8, 0xae, 0xdd, 0x3d, 0xdb, + 0xb4, 0x77, 0x76, 0x0c, 0xab, 0xd5, 0x5d, 0xc0, 0xef, 0xf2, 0x84, 0x61, 0x5d, 0x71, 0xaf, 0x74, + 0x10, 0xbc, 0xb1, 0x73, 0x71, 0xeb, 0x6c, 0xdb, 0xbc, 0x70, 0xb6, 0x73, 0xe1, 0xec, 0x8e, 0xdd, + 0x42, 0x6d, 0xff, 0x07, 0xfc, 0x42, 0xb3, 0xc3, 0x9b, 0xa3, 0x72, 0xb5, 0xed, 0xa6, 0xd1, 0xee, + 0xba, 0xb6, 0x83, 0x68, 0xce, 0x93, 0x61, 0x95, 0x68, 0x0f, 0x59, 0xae, 0x5f, 0xc2, 0x75, 0x5b, + 0xb6, 0xbd, 0xd5, 0x46, 0xe4, 0xdb, 0x85, 0xdd, 0xcd, 0xb3, 0x5d, 0xd7, 0xd9, 0x6d, 0xba, 0xf4, + 0xeb, 0xe9, 0xde, 0xaf, 0x2d, 0xd4, 0x6d, 0x3a, 0x66, 0xc7, 0xb5, 0x1d, 0x92, 0xe3, 0xcc, 0xe7, + 0x7e, 0x7b, 0x02, 0x48, 0x6a, 0xa7, 0x09, 0xbf, 0x35, 0x01, 0xa4, 0x52, 0xa7, 0x03, 0x1f, 0xcf, + 0x02, 0xb0, 0x82, 0xdc, 0x73, 0xc8, 0xe9, 0x9a, 0xb6, 0x05, 0x8f, 0x82, 0x09, 0x15, 0xfd, 0xd8, + 0x2e, 0xea, 0xba, 0x77, 0xe6, 0x1e, 0xfc, 0x5b, 0x29, 0x03, 0xdf, 0x94, 0x05, 0x93, 0x2a, 0xea, + 0x76, 0x6c, 0xab, 0x8b, 0xe4, 0x7b, 0x41, 0x1e, 0x39, 0x8e, 0xed, 0xcc, 0x67, 0x4e, 0x67, 0x6e, + 0x9e, 0xbe, 0xed, 0x96, 0x05, 0xda, 0xfc, 0x05, 0xb5, 0xd3, 0x5c, 0x28, 0x75, 0x3a, 0x0b, 0x61, + 0x49, 0x0b, 0xfe, 0x4f, 0x0b, 0x8a, 0xf7, 0x87, 0x4a, 0x7e, 0x94, 0xe7, 0xc1, 0xc4, 0x1e, 0xc9, + 0x30, 0x9f, 0x3d, 0x9d, 0xb9, 0x79, 0x4a, 0xf5, 0x5f, 0xbd, 0x2f, 0x2d, 0xe4, 0x1a, 0x66, 0xbb, + 0x3b, 0x2f, 0x91, 0x2f, 0xf4, 0x15, 0x3e, 0x92, 0x01, 0x79, 0x5c, 0x88, 0x5c, 0x06, 0xb9, 0xa6, + 0xdd, 0x42, 0xb8, 0xfa, 0xb9, 0xdb, 0xce, 0x8a, 0x57, 0xbf, 0x50, 0xb6, 0x5b, 0x48, 0xc5, 0x3f, + 0xcb, 0xa7, 0xc1, 0xb4, 0xcf, 0x96, 0x90, 0x0c, 0x36, 0xe9, 0xcc, 0x6d, 0x20, 0xe7, 0xe5, 0x97, + 0x27, 0x41, 0xae, 0xba, 0xb1, 0xb6, 0x56, 0x3c, 0x22, 0x1f, 0x03, 0xb3, 0x1b, 0xd5, 0xfb, 0xaa, + 0xb5, 0xf3, 0xd5, 0x86, 0xa2, 0xaa, 0x35, 0xb5, 0x98, 0x91, 0x67, 0xc1, 0xd4, 0x62, 0x69, 0xa9, + 0x51, 0xa9, 0xd6, 0x37, 0xf4, 0x62, 0x16, 0xbe, 0x5e, 0x02, 0x73, 0x1a, 0x72, 0x97, 0xd0, 0x9e, + 0xd9, 0x44, 0x9a, 0x6b, 0xb8, 0x08, 0xbe, 0x22, 0x13, 0x30, 0x53, 0xde, 0xf0, 0x2a, 0x0d, 0x3e, + 0xd1, 0x06, 0xdc, 0xbe, 0xaf, 0x01, 0x7c, 0x09, 0x0b, 0xf4, 0xef, 0x05, 0x26, 0x4d, 0x65, 0xcb, + 0x39, 0xf3, 0x74, 0x30, 0xcd, 0x7c, 0x93, 0xe7, 0x00, 0x58, 0x2c, 0x95, 0xef, 0x5b, 0x51, 0x6b, + 0x1b, 0xd5, 0xa5, 0xe2, 0x11, 0xef, 0x7d, 0xb9, 0xa6, 0x2a, 0xf4, 0x3d, 0x03, 0xbf, 0x93, 0x61, + 0xc0, 0x5c, 0xe2, 0xc1, 0x5c, 0x18, 0x4c, 0x4c, 0x1f, 0x40, 0xe1, 0x9b, 0x03, 0x70, 0x56, 0x38, + 0x70, 0x6e, 0x4f, 0x56, 0x5c, 0xfa, 0x00, 0xbd, 0x34, 0x0b, 0x26, 0xb5, 0xed, 0x5d, 0xb7, 0x65, + 0x5f, 0xb2, 0xe0, 0x54, 0x80, 0x0c, 0xfc, 0x26, 0xcb, 0x93, 0xe7, 0xf3, 0x3c, 0xb9, 0x79, 0x7f, + 0x23, 0x68, 0x09, 0x11, 0xdc, 0xf8, 0xd5, 0x80, 0x1b, 0x25, 0x8e, 0x1b, 0x4f, 0x17, 0x2d, 0x28, + 0x7d, 0x3e, 0xfc, 0xfc, 0xed, 0x20, 0xaf, 0x75, 0x8c, 0x26, 0x82, 0x9f, 0x94, 0xc0, 0xcc, 0x1a, + 0x32, 0xf6, 0x50, 0xa9, 0xd3, 0x71, 0xec, 0x3d, 0x04, 0xcb, 0xa1, 0xbc, 0xce, 0x83, 0x89, 0xae, + 0x97, 0xa9, 0xd2, 0xc2, 0x2d, 0x98, 0x52, 0xfd, 0x57, 0xf9, 0x14, 0x00, 0x66, 0x0b, 0x59, 0xae, + 0xe9, 0x9a, 0xa8, 0x3b, 0x9f, 0x3d, 0x2d, 0xdd, 0x3c, 0xa5, 0x32, 0x29, 0xf0, 0x5b, 0x59, 0x51, + 0x19, 0xc3, 0x54, 0x2c, 0xb0, 0x14, 0x44, 0x70, 0xf5, 0x8d, 0x59, 0x11, 0x19, 0x1b, 0x58, 0x5c, + 0x32, 0xde, 0xbe, 0x3d, 0x93, 0x9c, 0xb9, 0x5e, 0x8e, 0x6a, 0xad, 0xa1, 0x6d, 0x94, 0x57, 0x1b, + 0x5a, 0xbd, 0x54, 0x56, 0x8a, 0x48, 0x3e, 0x0e, 0x8a, 0xf8, 0xb1, 0x51, 0xd1, 0x1a, 0x4b, 0xca, + 0x9a, 0xa2, 0x2b, 0x4b, 0xc5, 0x4d, 0x59, 0x06, 0x73, 0xaa, 0xf2, 0x43, 0x1b, 0x8a, 0xa6, 0x37, + 0x96, 0x4b, 0x95, 0x35, 0x65, 0xa9, 0xb8, 0xe5, 0xfd, 0xbc, 0x56, 0x59, 0xaf, 0xe8, 0x0d, 0x55, + 0x29, 0x95, 0x57, 0x95, 0xa5, 0xe2, 0xb6, 0x7c, 0x35, 0xb8, 0xaa, 0x5a, 0x6b, 0x94, 0xea, 0x75, + 0xb5, 0x76, 0x4e, 0x69, 0xd0, 0x3f, 0xb4, 0xa2, 0x49, 0x2a, 0xd2, 0x1b, 0xda, 0x6a, 0x49, 0x55, + 0x4a, 0x8b, 0x6b, 0x4a, 0xf1, 0x01, 0xf8, 0x12, 0x09, 0xcc, 0xae, 0x1b, 0x17, 0x91, 0xb6, 0x6d, + 0x38, 0xc8, 0xb8, 0xd0, 0x46, 0xf0, 0x06, 0x01, 0x3c, 0xe1, 0x27, 0x59, 0xbc, 0x14, 0x1e, 0xaf, + 0xb3, 0x7d, 0x18, 0xcc, 0x55, 0x11, 0x01, 0xd8, 0xff, 0x0e, 0xd4, 0x60, 0x95, 0x03, 0xec, 0x59, + 0x09, 0xcb, 0x4b, 0x86, 0xd8, 0x4f, 0x3c, 0x01, 0x10, 0x83, 0x5f, 0x96, 0xc0, 0x5c, 0xc5, 0xda, + 0x33, 0x5d, 0xb4, 0x82, 0x2c, 0xe4, 0x78, 0xe3, 0x80, 0x10, 0x0c, 0x6f, 0x92, 0x18, 0x18, 0x96, + 0x79, 0x18, 0x9e, 0xd1, 0x87, 0x6d, 0x7c, 0x1d, 0x11, 0xa3, 0xed, 0x75, 0x60, 0xca, 0xc4, 0xf9, + 0xca, 0x66, 0x8b, 0x72, 0x2c, 0x4c, 0x90, 0x6f, 0x04, 0xb3, 0xe4, 0x65, 0xd9, 0x6c, 0xa3, 0xfb, + 0xd0, 0x15, 0x3a, 0xee, 0xf2, 0x89, 0xf0, 0xe7, 0x02, 0xe5, 0xab, 0x70, 0x58, 0x3e, 0x3b, 0x29, + 0x51, 0xc9, 0xc0, 0x7c, 0xf5, 0x13, 0x41, 0xfd, 0xf6, 0x69, 0x99, 0x09, 0xbf, 0x97, 0x05, 0xd3, + 0x9a, 0x6b, 0x77, 0x3c, 0x91, 0x35, 0xad, 0x2d, 0x31, 0x70, 0x3f, 0xce, 0xea, 0x58, 0x99, 0x07, + 0xf7, 0xe9, 0x7d, 0xf8, 0xc8, 0x54, 0x10, 0xa1, 0x61, 0xdf, 0x0a, 0x34, 0x6c, 0x99, 0x43, 0xe5, + 0xb6, 0x44, 0xa5, 0x7d, 0x1f, 0xea, 0xd7, 0xab, 0x25, 0x50, 0xf4, 0xc5, 0xcc, 0x2d, 0xef, 0x3a, + 0x0e, 0xb2, 0x5c, 0x31, 0x10, 0xfe, 0x82, 0x05, 0x61, 0x95, 0x07, 0xe1, 0xb6, 0x18, 0x61, 0xf6, + 0x6b, 0x49, 0x51, 0xc7, 0x7e, 0x3f, 0x40, 0xf3, 0x3e, 0x0e, 0xcd, 0xe7, 0x24, 0x27, 0x2b, 0x19, + 0xa4, 0xab, 0x43, 0x20, 0x7a, 0x1c, 0x14, 0xbd, 0x31, 0xa9, 0xac, 0x57, 0xce, 0x29, 0x8d, 0x4a, + 0xf5, 0x5c, 0x45, 0x57, 0x8a, 0x08, 0xbe, 0x4a, 0x02, 0x33, 0x84, 0x34, 0x15, 0xed, 0xd9, 0x17, + 0x05, 0x7b, 0xbd, 0x2f, 0x27, 0x34, 0x16, 0xd8, 0x1a, 0x22, 0x34, 0xe3, 0x67, 0x12, 0x18, 0x0b, + 0x31, 0xc5, 0x3d, 0x91, 0x7a, 0xab, 0x7d, 0x6a, 0xb0, 0xd5, 0x47, 0x5b, 0xfa, 0xf6, 0x56, 0xaf, + 0xce, 0x01, 0x40, 0x1a, 0x79, 0xce, 0x44, 0x97, 0xe0, 0x7a, 0x88, 0x09, 0x27, 0xb6, 0x99, 0x81, + 0x62, 0x9b, 0xed, 0x27, 0xb6, 0xef, 0x65, 0xc7, 0xac, 0x45, 0x1e, 0xbd, 0x5b, 0x23, 0xd9, 0xed, + 0x51, 0x12, 0x3d, 0x3b, 0xf4, 0x05, 0x25, 0xcb, 0x5b, 0x9d, 0xd7, 0x81, 0x29, 0xfc, 0x58, 0x35, + 0x76, 0x10, 0xd5, 0xa1, 0x30, 0x41, 0x3e, 0x03, 0x66, 0x48, 0xc6, 0xa6, 0x6d, 0x79, 0xed, 0xc9, + 0xe1, 0x0c, 0x5c, 0x9a, 0x07, 0x62, 0xd3, 0x41, 0x86, 0x6b, 0x3b, 0xb8, 0x8c, 0x3c, 0x01, 0x91, + 0x49, 0x82, 0xdf, 0x08, 0xb4, 0x50, 0xe1, 0x24, 0xe7, 0x99, 0x49, 0x9a, 0x92, 0x4c, 0x6e, 0xf6, + 0x86, 0xd3, 0x3f, 0xa2, 0x75, 0x0d, 0x0f, 0xed, 0x65, 0x3c, 0xb5, 0x43, 0xf2, 0x49, 0x20, 0xd3, + 0x54, 0x2f, 0x6f, 0xb9, 0x56, 0xd5, 0x95, 0xaa, 0x5e, 0xdc, 0xec, 0x2b, 0x51, 0x5b, 0xf0, 0x8d, + 0x39, 0x90, 0x7b, 0x81, 0x6d, 0x5a, 0xf0, 0xa5, 0x19, 0x4e, 0x24, 0x2c, 0xe4, 0x5e, 0xb2, 0x9d, + 0x8b, 0x81, 0xa2, 0x86, 0x09, 0xf1, 0xd8, 0x84, 0xa2, 0x24, 0x0d, 0x14, 0xa5, 0x5c, 0x3f, 0x51, + 0xfa, 0x05, 0x56, 0x94, 0xee, 0xe2, 0x45, 0xe9, 0xa6, 0x3e, 0xfc, 0xf7, 0x88, 0x8f, 0xe8, 0x00, + 0x3e, 0x16, 0x74, 0x00, 0xf7, 0x70, 0x30, 0x3e, 0x4d, 0xac, 0x98, 0x64, 0x00, 0x7e, 0x29, 0x55, + 0xc5, 0xef, 0x07, 0xf5, 0x56, 0x04, 0xd4, 0xdb, 0x7d, 0xfa, 0x04, 0x73, 0x7f, 0xd7, 0xf1, 0xc0, + 0xfe, 0x6e, 0xe2, 0xa2, 0x7c, 0x02, 0x1c, 0x5b, 0xaa, 0x2c, 0x2f, 0x2b, 0xaa, 0x52, 0xd5, 0x1b, + 0x55, 0x45, 0x3f, 0x5f, 0x53, 0xef, 0x2b, 0xb6, 0xe1, 0x23, 0x12, 0x00, 0x1e, 0x87, 0xca, 0x86, + 0xd5, 0x44, 0x6d, 0xb1, 0x1e, 0xfd, 0x7f, 0x66, 0x93, 0xf5, 0x09, 0x61, 0xf9, 0x11, 0x70, 0xbe, + 0x2e, 0x2b, 0xae, 0x95, 0x91, 0x85, 0x25, 0x03, 0xf5, 0xad, 0x4f, 0x04, 0xdb, 0xf3, 0x2a, 0x70, + 0xd4, 0x2f, 0x8f, 0x66, 0xef, 0x3f, 0xed, 0x7b, 0x34, 0x07, 0xe6, 0x28, 0x2c, 0xfe, 0x3c, 0xfe, + 0xc1, 0x8c, 0xc8, 0x44, 0x1e, 0x82, 0x49, 0x3a, 0x6d, 0xf7, 0xbb, 0xf7, 0xe0, 0x5d, 0x5e, 0x01, + 0xd3, 0x1d, 0xe4, 0xec, 0x98, 0xdd, 0xae, 0x69, 0x5b, 0x64, 0x41, 0x6e, 0xee, 0xb6, 0xa7, 0x04, + 0x1c, 0xc7, 0x6b, 0x97, 0x0b, 0x75, 0xc3, 0x71, 0xcd, 0xa6, 0xd9, 0x31, 0x2c, 0xb7, 0x1e, 0x66, + 0x56, 0xd9, 0x3f, 0xe1, 0x2b, 0x13, 0x4e, 0x6b, 0xf8, 0x96, 0x44, 0x88, 0xc4, 0x07, 0x12, 0x4c, + 0x49, 0x62, 0x0b, 0x4c, 0x26, 0x16, 0x8f, 0xa7, 0x2a, 0x16, 0x7d, 0xf0, 0xde, 0x92, 0xaf, 0x01, + 0x27, 0x2a, 0xd5, 0x72, 0x4d, 0x55, 0x95, 0xb2, 0xde, 0xa8, 0x2b, 0xea, 0x7a, 0x45, 0xd3, 0x2a, + 0xb5, 0xaa, 0x76, 0x10, 0x6d, 0x87, 0x9f, 0x90, 0x02, 0x89, 0x59, 0x42, 0xcd, 0xb6, 0x69, 0x21, + 0x78, 0xcf, 0x01, 0x05, 0x86, 0x5f, 0xf5, 0x11, 0xc7, 0x99, 0xd6, 0x1f, 0x81, 0xf3, 0x1b, 0x92, + 0xe3, 0xdc, 0xbf, 0xc0, 0x7f, 0xc3, 0xea, 0xff, 0x65, 0x09, 0x1c, 0x63, 0x14, 0x51, 0x45, 0x3b, + 0x23, 0x5b, 0xc9, 0xfb, 0x09, 0x56, 0x77, 0x2b, 0x3c, 0xa6, 0xfd, 0xac, 0xe9, 0x7d, 0x64, 0x44, + 0xc0, 0xfa, 0xd6, 0x00, 0xd6, 0x35, 0x0e, 0xd6, 0xe7, 0x0e, 0x51, 0x66, 0x32, 0x64, 0x7f, 0x2b, + 0x55, 0x64, 0xaf, 0x01, 0x27, 0xea, 0x25, 0x55, 0xaf, 0x94, 0x2b, 0xf5, 0x92, 0x37, 0x8e, 0x32, + 0x43, 0x76, 0x84, 0xb9, 0xce, 0x83, 0xde, 0x17, 0xdf, 0xdf, 0xcb, 0x81, 0xeb, 0xfa, 0x77, 0xb4, + 0xe5, 0x6d, 0xc3, 0xda, 0x42, 0xd0, 0x14, 0x81, 0x7a, 0x09, 0x4c, 0x34, 0x71, 0x76, 0x82, 0x33, + 0xbb, 0x75, 0x13, 0xd3, 0x97, 0x93, 0x1a, 0x54, 0xff, 0x57, 0xf8, 0x2e, 0x56, 0x20, 0x74, 0x5e, + 0x20, 0x9e, 0x1f, 0x0f, 0xde, 0x3e, 0xba, 0x23, 0x64, 0xe3, 0xd3, 0x81, 0x6c, 0x9c, 0xe7, 0x64, + 0xa3, 0x7c, 0xb0, 0xe2, 0x93, 0x89, 0xc9, 0x1f, 0x3d, 0x11, 0x3a, 0x80, 0x48, 0x69, 0x32, 0xa3, + 0x47, 0x85, 0xbe, 0xdd, 0xfd, 0xc3, 0x12, 0x28, 0x2c, 0xa1, 0x36, 0x12, 0x5d, 0x89, 0xfc, 0xfb, + 0xac, 0xe8, 0x86, 0x08, 0x81, 0x81, 0x94, 0x1d, 0xbd, 0x3a, 0xe2, 0x9a, 0x3b, 0xa8, 0xeb, 0x1a, + 0x3b, 0x1d, 0xcc, 0x6a, 0x49, 0x0d, 0x13, 0xe0, 0x4f, 0x66, 0x45, 0xb6, 0x4b, 0x62, 0xaa, 0xf9, + 0xb7, 0xb1, 0xa6, 0xf8, 0xb5, 0x39, 0x50, 0x38, 0x6f, 0xb4, 0xdb, 0xc8, 0x85, 0x5f, 0xcf, 0x82, + 0x42, 0xd9, 0x9b, 0x93, 0x22, 0xf8, 0xb4, 0x10, 0x2c, 0x08, 0x26, 0x1d, 0xdb, 0x76, 0xeb, 0x86, + 0xbb, 0x4d, 0xd1, 0x0a, 0xde, 0xe9, 0x36, 0xed, 0x6f, 0xb2, 0xa0, 0xdd, 0xc3, 0x83, 0xf6, 0x03, + 0x1c, 0x37, 0x49, 0x45, 0x0b, 0xa4, 0x92, 0x08, 0xd4, 0x20, 0x98, 0xdc, 0xb1, 0xd0, 0x8e, 0x6d, + 0x99, 0x4d, 0x7f, 0xa4, 0xf7, 0xdf, 0xe1, 0x87, 0x83, 0x59, 0xf2, 0x22, 0x87, 0xd9, 0x82, 0x70, + 0x2d, 0xc9, 0x40, 0xd3, 0x86, 0xc0, 0xec, 0x7a, 0x70, 0x2d, 0x81, 0xa0, 0xa1, 0xd7, 0x1a, 0x65, + 0x55, 0x29, 0xe9, 0x4a, 0x63, 0xad, 0x56, 0x2e, 0xad, 0x35, 0x54, 0xa5, 0x5e, 0x2b, 0x22, 0xf8, + 0xdf, 0xb2, 0x1e, 0x73, 0x9b, 0xf6, 0x1e, 0x72, 0xe0, 0x8a, 0x10, 0x9f, 0xe3, 0x78, 0x42, 0x31, + 0xf8, 0x05, 0xe1, 0xad, 0x72, 0xca, 0x1d, 0x4a, 0x41, 0x44, 0x57, 0xf8, 0x11, 0xa1, 0x6d, 0xef, + 0xd8, 0xa2, 0x9e, 0x00, 0x9c, 0xfe, 0x5f, 0x59, 0x30, 0x51, 0xb6, 0xad, 0x3d, 0xe4, 0xb8, 0xac, + 0x95, 0xc9, 0x72, 0x33, 0xc3, 0x73, 0xd3, 0xeb, 0x9a, 0x90, 0xe5, 0x3a, 0x76, 0xc7, 0x37, 0x33, + 0xfd, 0x57, 0xf8, 0xeb, 0x49, 0x39, 0x4c, 0x6b, 0x8e, 0x5e, 0x6e, 0xea, 0x5f, 0x11, 0x47, 0x9e, + 0xd4, 0xa3, 0x00, 0x8f, 0x24, 0xc1, 0xa5, 0x3f, 0x01, 0xe9, 0xef, 0xf2, 0x7e, 0x45, 0x02, 0xb3, + 0x44, 0xf9, 0x34, 0x84, 0xc7, 0x45, 0x58, 0x63, 0x17, 0x7a, 0x7a, 0x98, 0xbf, 0x7a, 0x84, 0x63, + 0x7f, 0xc1, 0xe8, 0x74, 0x82, 0x45, 0xbf, 0xd5, 0x23, 0x2a, 0x7d, 0x27, 0x62, 0xbe, 0x58, 0x00, + 0x39, 0x63, 0xd7, 0xdd, 0x86, 0xdf, 0x13, 0x36, 0xf9, 0xb9, 0xce, 0x80, 0xd2, 0x13, 0x01, 0xc9, + 0x71, 0x90, 0x77, 0xed, 0x8b, 0xc8, 0xe7, 0x03, 0x79, 0xf1, 0xe0, 0x30, 0x3a, 0x1d, 0x1d, 0x7f, + 0xa0, 0x70, 0xf8, 0xef, 0xde, 0x08, 0x63, 0x34, 0x9b, 0xf6, 0xae, 0xe5, 0x56, 0xfc, 0x85, 0xbf, + 0x30, 0x01, 0x7e, 0x21, 0x23, 0x32, 0x85, 0x10, 0x20, 0x30, 0x19, 0x64, 0x17, 0x86, 0x50, 0xa5, + 0x05, 0x70, 0x4b, 0xa9, 0x5e, 0x6f, 0xe8, 0xb5, 0xfb, 0x94, 0x6a, 0x38, 0xdc, 0x37, 0x2a, 0xd5, + 0x86, 0xbe, 0xaa, 0x34, 0xca, 0x1b, 0x2a, 0x5e, 0x9d, 0x29, 0x95, 0xcb, 0xb5, 0x8d, 0xaa, 0x5e, + 0x44, 0xf0, 0x6d, 0x59, 0x30, 0x53, 0x6e, 0xdb, 0xdd, 0x00, 0xe1, 0xeb, 0x43, 0x84, 0x03, 0x36, + 0x66, 0x18, 0x36, 0xc2, 0x7f, 0xc9, 0x88, 0x6e, 0xf5, 0xfa, 0x0c, 0x61, 0x8a, 0x8f, 0xe8, 0xa5, + 0x7e, 0x5d, 0x68, 0xab, 0x77, 0x70, 0x79, 0xe9, 0xab, 0xc4, 0x67, 0xef, 0x04, 0x13, 0x25, 0x22, + 0x18, 0xf0, 0xaf, 0x32, 0xa0, 0x50, 0xb6, 0xad, 0x4d, 0x73, 0x4b, 0xbe, 0x09, 0xcc, 0x21, 0xcb, + 0xb8, 0xd0, 0x46, 0x4b, 0x86, 0x6b, 0xec, 0x99, 0xe8, 0x12, 0x6e, 0xc0, 0xa4, 0xda, 0x93, 0xea, + 0x11, 0x45, 0x53, 0xd0, 0x85, 0xdd, 0x2d, 0x4c, 0xd4, 0xa4, 0xca, 0x26, 0xc9, 0xcf, 0x05, 0x57, + 0x93, 0xd7, 0xba, 0x83, 0x1c, 0xd4, 0x46, 0x46, 0x17, 0x79, 0xc6, 0xa8, 0x85, 0xda, 0x58, 0x68, + 0x27, 0xd5, 0xa8, 0xcf, 0xf2, 0x19, 0x30, 0x43, 0x3e, 0x61, 0x53, 0xa7, 0x8b, 0xc5, 0x78, 0x52, + 0xe5, 0xd2, 0xe4, 0xa7, 0x83, 0x3c, 0xba, 0xec, 0x3a, 0xc6, 0x7c, 0x0b, 0xe3, 0x75, 0xf5, 0x02, + 0xf1, 0xf5, 0x5a, 0xf0, 0x7d, 0xbd, 0x16, 0x34, 0xec, 0x09, 0xa6, 0x92, 0x5c, 0xf0, 0x57, 0x26, + 0x03, 0x43, 0xe2, 0x5f, 0xb3, 0xa1, 0x60, 0xc8, 0x20, 0x67, 0x19, 0x3b, 0x88, 0xca, 0x05, 0x7e, + 0x96, 0x6f, 0x01, 0x47, 0x8d, 0x3d, 0xc3, 0x35, 0x9c, 0x35, 0xbb, 0x69, 0xb4, 0xf1, 0xe0, 0xe7, + 0x6b, 0x7e, 0xef, 0x07, 0xbc, 0x0e, 0xef, 0xda, 0x0e, 0xc2, 0xb9, 0xfc, 0x75, 0x78, 0x3f, 0xc1, + 0x2b, 0xdd, 0x6c, 0xda, 0x16, 0xa6, 0x5f, 0x52, 0xf1, 0xb3, 0xc7, 0x95, 0x96, 0xd9, 0xf5, 0x1a, + 0x82, 0x4b, 0xa9, 0x92, 0x05, 0x65, 0xed, 0x8a, 0xd5, 0xc4, 0x6b, 0xf0, 0x93, 0x6a, 0xd4, 0x67, + 0x79, 0x11, 0x4c, 0xd3, 0xe5, 0xe7, 0x75, 0x4f, 0xae, 0x0a, 0x58, 0xae, 0x4e, 0xf3, 0x9e, 0x34, + 0x04, 0xcf, 0x85, 0x6a, 0x98, 0x4f, 0x65, 0x7f, 0x92, 0xef, 0x05, 0xd7, 0xd2, 0xd7, 0xf2, 0x6e, + 0xd7, 0xb5, 0x77, 0x08, 0xe8, 0xcb, 0x66, 0x9b, 0xb4, 0x60, 0x02, 0xb7, 0x20, 0x2e, 0x8b, 0x7c, + 0x1b, 0x38, 0xde, 0x71, 0xd0, 0x26, 0x72, 0xee, 0x37, 0x76, 0x76, 0x2f, 0xeb, 0x8e, 0x61, 0x75, + 0x3b, 0xb6, 0xe3, 0xce, 0x4f, 0x62, 0xe2, 0xfb, 0x7e, 0xa3, 0x1d, 0xe5, 0x24, 0x28, 0x10, 0xf6, + 0xc1, 0x57, 0xe4, 0x85, 0x9d, 0xe8, 0x68, 0x83, 0x62, 0xcd, 0xb3, 0x67, 0x80, 0x09, 0xda, 0xc3, + 0x61, 0xa0, 0xa6, 0x6f, 0x3b, 0xd9, 0x33, 0x9b, 0xa3, 0xa5, 0xa8, 0x7e, 0x36, 0xf9, 0x76, 0x50, + 0x68, 0xe2, 0x66, 0x61, 0xcc, 0xa6, 0x6f, 0xbb, 0xb6, 0x7f, 0xa5, 0x38, 0x8b, 0x4a, 0xb3, 0xc2, + 0x2f, 0x4a, 0x42, 0x7e, 0x77, 0x71, 0x14, 0x27, 0xd3, 0xea, 0x6f, 0x64, 0x87, 0xe8, 0x36, 0x6f, + 0x05, 0x37, 0xd3, 0x3e, 0x91, 0xda, 0x1f, 0x4b, 0x8d, 0xc5, 0x0d, 0xdf, 0x04, 0xf7, 0xac, 0x12, + 0x4d, 0x2f, 0xa9, 0xde, 0xfc, 0x69, 0xc9, 0x33, 0xdd, 0x6f, 0x01, 0x37, 0x0d, 0xc8, 0xad, 0xe8, + 0x8d, 0x6a, 0x69, 0x5d, 0x29, 0x6e, 0xf2, 0xb6, 0x8d, 0xa6, 0xd7, 0xea, 0x0d, 0x75, 0xa3, 0x5a, + 0xad, 0x54, 0x57, 0x48, 0x61, 0x9e, 0x49, 0x78, 0x32, 0xcc, 0x70, 0x5e, 0xad, 0xe8, 0x4a, 0xa3, + 0x5c, 0xab, 0x2e, 0x57, 0x56, 0x8a, 0xe6, 0x20, 0xc3, 0xe8, 0x01, 0xf9, 0x34, 0xb8, 0x8e, 0xa3, + 0xa4, 0x52, 0xab, 0x7a, 0xf3, 0x89, 0x72, 0xa9, 0x5a, 0x56, 0xbc, 0xc9, 0xc3, 0x45, 0x19, 0x82, + 0x13, 0xa4, 0xb8, 0xc6, 0x72, 0x65, 0x8d, 0xdd, 0x02, 0xf8, 0x78, 0x46, 0x9e, 0x07, 0x57, 0xb1, + 0xdf, 0x2a, 0xd5, 0x73, 0xa5, 0xb5, 0xca, 0x52, 0xf1, 0x0f, 0x33, 0xf2, 0x8d, 0xe0, 0x7a, 0xee, + 0x2f, 0xb2, 0x9a, 0xdf, 0xa8, 0x2c, 0x35, 0xd6, 0x2b, 0xda, 0x7a, 0x49, 0x2f, 0xaf, 0x16, 0x3f, + 0x81, 0xe7, 0x0b, 0x81, 0x01, 0xcc, 0x38, 0xc3, 0xbd, 0x9a, 0x1d, 0xd3, 0x4b, 0xbc, 0xa0, 0x3e, + 0xad, 0x2f, 0xec, 0xf1, 0x36, 0xec, 0xe3, 0xc1, 0xe8, 0xb0, 0xc4, 0x89, 0xd0, 0x33, 0x12, 0x94, + 0x95, 0x4c, 0x86, 0xf4, 0x21, 0x44, 0xe8, 0x34, 0xb8, 0xae, 0xaa, 0x10, 0xa4, 0x54, 0xa5, 0x5c, + 0x3b, 0xa7, 0xa8, 0x8d, 0xf3, 0xa5, 0xb5, 0x35, 0x45, 0x6f, 0x2c, 0x57, 0x54, 0x4d, 0x2f, 0x6e, + 0xc2, 0x7f, 0xca, 0x06, 0x73, 0x68, 0x86, 0x5b, 0x7f, 0x95, 0x4d, 0xaa, 0xd6, 0xb1, 0x73, 0xe5, + 0x67, 0x83, 0x42, 0xd7, 0x35, 0xdc, 0xdd, 0x2e, 0xd5, 0xea, 0x27, 0xf5, 0xd7, 0xea, 0x05, 0x0d, + 0x67, 0x52, 0x69, 0x66, 0xf8, 0xc5, 0x4c, 0x12, 0x35, 0x1d, 0xc1, 0x34, 0xda, 0x1c, 0x82, 0xc5, + 0xa7, 0x00, 0xf4, 0xa5, 0xbd, 0xa2, 0x35, 0x4a, 0x6b, 0xaa, 0x52, 0x5a, 0xba, 0x3f, 0x98, 0x3c, + 0x23, 0xf9, 0x04, 0x38, 0xb6, 0x51, 0xf5, 0xa6, 0xc3, 0x58, 0x5d, 0x6a, 0xd5, 0xaa, 0x52, 0xf6, + 0xf8, 0xfe, 0x93, 0x78, 0xa9, 0xda, 0xb3, 0xa0, 0x31, 0xdd, 0x9e, 0x95, 0xc3, 0xf0, 0xff, 0x6f, + 0x85, 0x3d, 0x3a, 0x42, 0x09, 0x63, 0xcb, 0x1a, 0x2d, 0x0e, 0x5f, 0x10, 0x72, 0xe2, 0x10, 0xa2, + 0x24, 0x19, 0x1e, 0xff, 0x61, 0x08, 0x3c, 0x4e, 0x80, 0x63, 0x2c, 0x1e, 0xd8, 0x99, 0x23, 0x1a, + 0x86, 0xaf, 0x4e, 0x82, 0x82, 0x86, 0xda, 0xa8, 0xe9, 0xc2, 0x47, 0x19, 0x63, 0x62, 0x0e, 0x64, + 0x03, 0xe7, 0x81, 0xac, 0xd9, 0xe2, 0xa6, 0xcf, 0xd9, 0x9e, 0xe9, 0x73, 0x8c, 0x19, 0x20, 0x25, + 0x32, 0x03, 0x72, 0x29, 0x98, 0x01, 0xf9, 0xe1, 0xcd, 0x80, 0xc2, 0x20, 0x33, 0x00, 0xfe, 0x5a, + 0x21, 0x69, 0x2f, 0x41, 0x58, 0x7d, 0xb8, 0x83, 0xff, 0xff, 0xcc, 0x25, 0xe9, 0x55, 0xfa, 0x52, + 0x9c, 0x4c, 0x8a, 0xbf, 0x27, 0xa5, 0xb0, 0xfc, 0x20, 0xdf, 0x00, 0xae, 0x0f, 0xdf, 0x1b, 0xca, + 0x0b, 0x2b, 0x9a, 0xae, 0xe1, 0x11, 0xbf, 0x5c, 0x53, 0xd5, 0x8d, 0x3a, 0x59, 0xb9, 0x3b, 0x09, + 0xe4, 0xb0, 0x14, 0x75, 0xa3, 0x4a, 0xc6, 0xf7, 0x2d, 0xbe, 0xf4, 0xe5, 0x4a, 0x75, 0xa9, 0x11, + 0xe8, 0x4c, 0x75, 0xb9, 0x56, 0xdc, 0xf6, 0xa6, 0x6c, 0x4c, 0xe9, 0xde, 0x00, 0x4d, 0x6b, 0x28, + 0x55, 0x97, 0x1a, 0xeb, 0x55, 0x65, 0xbd, 0x56, 0xad, 0x94, 0x71, 0xba, 0xa6, 0xe8, 0x45, 0xd3, + 0x1b, 0x68, 0x7a, 0x2c, 0x0a, 0x4d, 0x29, 0xa9, 0xe5, 0x55, 0x45, 0x25, 0x55, 0x3e, 0x20, 0xdf, + 0x04, 0xce, 0x94, 0xaa, 0x35, 0xdd, 0x4b, 0x29, 0x55, 0xef, 0xd7, 0xef, 0xaf, 0x2b, 0x8d, 0xba, + 0x5a, 0x2b, 0x2b, 0x9a, 0xe6, 0xe9, 0x29, 0xb5, 0x3f, 0x8a, 0x6d, 0xf9, 0xf9, 0xe0, 0x4e, 0x86, + 0x34, 0x45, 0xc7, 0xdb, 0x44, 0xeb, 0x35, 0xec, 0x29, 0xb0, 0xa4, 0x34, 0x56, 0x4b, 0x5a, 0xa3, + 0x52, 0x2d, 0xd7, 0xd6, 0xeb, 0x25, 0xbd, 0xe2, 0xa9, 0x73, 0x5d, 0xad, 0xe9, 0xb5, 0xc6, 0x39, + 0x45, 0xd5, 0x2a, 0xb5, 0x6a, 0xd1, 0xf2, 0x9a, 0xcc, 0xe8, 0xbf, 0xdf, 0x0f, 0xdb, 0xf2, 0x75, + 0x60, 0xde, 0x4f, 0x5f, 0xab, 0x79, 0x8c, 0x66, 0x2c, 0x92, 0x4e, 0xaa, 0x16, 0xc9, 0x3f, 0x67, + 0x41, 0x4e, 0x73, 0xed, 0x0e, 0xfc, 0x81, 0xb0, 0x83, 0x39, 0x05, 0x80, 0x83, 0x77, 0x7d, 0xbc, + 0x59, 0x18, 0x9d, 0x97, 0x31, 0x29, 0xf0, 0x0f, 0x84, 0x97, 0xaa, 0xc3, 0x3e, 0xdb, 0xee, 0x44, + 0xd8, 0x2a, 0xdf, 0x11, 0xf3, 0xdd, 0x8f, 0x2e, 0x28, 0x99, 0xbc, 0xff, 0xcc, 0x30, 0x8b, 0xd1, + 0x10, 0x9c, 0x64, 0x60, 0xf3, 0xf8, 0xef, 0x8b, 0x04, 0x92, 0xaf, 0x06, 0x57, 0xf5, 0x08, 0x17, + 0x96, 0xa9, 0x4d, 0xf9, 0xc9, 0xe0, 0x49, 0x8c, 0x78, 0x2b, 0xeb, 0xb5, 0x73, 0x4a, 0x20, 0xc8, + 0x4b, 0x25, 0xbd, 0x54, 0xdc, 0x82, 0x9f, 0x95, 0x40, 0x6e, 0xdd, 0xde, 0xeb, 0xdd, 0x21, 0xb0, + 0xd0, 0x25, 0x66, 0x2d, 0xd4, 0x7f, 0xe5, 0x7d, 0x95, 0x85, 0xd8, 0xbe, 0x1e, 0xbd, 0x1b, 0xf8, + 0x85, 0x6c, 0x12, 0xb6, 0xaf, 0x1f, 0x74, 0x0b, 0xf0, 0xef, 0x86, 0x61, 0x7b, 0x04, 0x6b, 0x91, + 0x7c, 0x06, 0x9c, 0x0a, 0x3f, 0x54, 0x96, 0x94, 0xaa, 0x5e, 0x59, 0xbe, 0x3f, 0x64, 0x6e, 0x45, + 0x15, 0x62, 0xff, 0xa0, 0x6e, 0x2c, 0x7e, 0xa6, 0x31, 0x0f, 0x8e, 0x87, 0xdf, 0x56, 0x14, 0xdd, + 0xff, 0xf2, 0x00, 0x7c, 0x69, 0x1e, 0xcc, 0x90, 0x6e, 0x7d, 0xa3, 0xd3, 0x32, 0x5c, 0x04, 0x6f, + 0x0f, 0xd1, 0xbd, 0x19, 0x1c, 0xad, 0xd4, 0x97, 0x35, 0xcd, 0xb5, 0x1d, 0x63, 0x0b, 0x95, 0x5a, + 0x2d, 0x87, 0x72, 0xab, 0x37, 0x19, 0x3e, 0x26, 0xbc, 0xce, 0xc7, 0x0f, 0x25, 0xa4, 0xce, 0x08, + 0xd4, 0xbf, 0x22, 0xb4, 0x2e, 0x27, 0x50, 0x60, 0x32, 0xf4, 0x1f, 0x18, 0xb1, 0xce, 0x45, 0xe3, + 0xb2, 0x79, 0xe6, 0x65, 0x59, 0x30, 0xa5, 0x9b, 0x3b, 0xe8, 0x45, 0xb6, 0x85, 0xba, 0xf2, 0x04, + 0x90, 0x56, 0xd6, 0xf5, 0xe2, 0x11, 0xef, 0xc1, 0x33, 0xaa, 0x32, 0xf8, 0x41, 0xf1, 0x2a, 0xf0, + 0x1e, 0x4a, 0x7a, 0x51, 0xf2, 0x1e, 0xd6, 0x15, 0xbd, 0x98, 0xf3, 0x1e, 0xaa, 0x8a, 0x5e, 0xcc, + 0x7b, 0x0f, 0xf5, 0x35, 0xbd, 0x58, 0xf0, 0x1e, 0x2a, 0x9a, 0x5e, 0x9c, 0xf0, 0x1e, 0x16, 0x35, + 0xbd, 0x38, 0xe9, 0x3d, 0x9c, 0xd3, 0xf4, 0xe2, 0x94, 0xf7, 0x50, 0xd6, 0xf5, 0x22, 0xf0, 0x1e, + 0x5e, 0xa0, 0xe9, 0xc5, 0x69, 0xef, 0xa1, 0x54, 0xd6, 0x8b, 0x33, 0xf8, 0x41, 0xd1, 0x8b, 0xb3, + 0xde, 0x83, 0xa6, 0xe9, 0xc5, 0x39, 0x5c, 0xb2, 0xa6, 0x17, 0x8f, 0xe2, 0xba, 0x2a, 0x7a, 0xb1, + 0xe8, 0x3d, 0xac, 0x6a, 0x7a, 0xf1, 0x18, 0xce, 0xac, 0xe9, 0x45, 0x19, 0x57, 0xaa, 0xe9, 0xc5, + 0xab, 0x70, 0x1e, 0x4d, 0x2f, 0x1e, 0xc7, 0x55, 0x68, 0x7a, 0xf1, 0x04, 0x26, 0x43, 0xd1, 0x8b, + 0x27, 0x71, 0x1e, 0x55, 0x2f, 0x5e, 0x8d, 0x3f, 0x55, 0xf5, 0xe2, 0x3c, 0x26, 0x4c, 0xd1, 0x8b, + 0xd7, 0xe0, 0x07, 0x55, 0x2f, 0x42, 0xfc, 0xa9, 0xa4, 0x17, 0xaf, 0x85, 0x4f, 0x02, 0x53, 0x2b, + 0xc8, 0x25, 0x20, 0xc2, 0x22, 0x90, 0x56, 0x90, 0xcb, 0x9a, 0xf1, 0x5f, 0x93, 0xc0, 0xd5, 0x74, + 0xea, 0xb7, 0xec, 0xd8, 0x3b, 0x6b, 0x68, 0xcb, 0x68, 0x5e, 0x51, 0x2e, 0x7b, 0x26, 0x14, 0xd4, + 0xb8, 0xa5, 0xab, 0x4e, 0xd8, 0x19, 0xe1, 0xe7, 0x58, 0x8b, 0xd3, 0x5f, 0x8c, 0x92, 0xc2, 0xc5, + 0x28, 0x6a, 0x91, 0xfd, 0x23, 0x2b, 0xd1, 0xdc, 0xfa, 0x71, 0xa6, 0x67, 0xfd, 0xd8, 0x53, 0x93, + 0x0e, 0x72, 0xba, 0xb6, 0x65, 0xb4, 0x35, 0xba, 0x5d, 0x4a, 0x56, 0xbd, 0x7a, 0x93, 0xe5, 0x1f, + 0xf2, 0x35, 0x83, 0x58, 0x65, 0xcf, 0x8b, 0x9b, 0xe1, 0xf6, 0x36, 0x33, 0x42, 0x49, 0x3e, 0x11, + 0x28, 0x89, 0xce, 0x29, 0xc9, 0xbd, 0x07, 0x28, 0x3b, 0x99, 0xbe, 0x54, 0x86, 0x9b, 0x5a, 0x84, + 0xce, 0x84, 0xfe, 0x72, 0xb5, 0x04, 0x3f, 0x9b, 0x05, 0x27, 0x15, 0xab, 0x9f, 0x85, 0xcf, 0xca, + 0xc2, 0xdb, 0x58, 0x68, 0xea, 0x3c, 0x4b, 0xef, 0xec, 0xdb, 0xec, 0xfe, 0x65, 0x46, 0x70, 0xf4, + 0x53, 0x01, 0x47, 0x35, 0x8e, 0xa3, 0xf7, 0x0c, 0x5f, 0x74, 0x32, 0x86, 0x56, 0x47, 0xda, 0x01, + 0xe5, 0xe0, 0x37, 0x72, 0xe0, 0x49, 0xc4, 0xe3, 0x81, 0x52, 0x48, 0xb4, 0xac, 0x64, 0xb5, 0x54, + 0xd4, 0x75, 0x0d, 0xc7, 0xe5, 0x4e, 0xa1, 0xf6, 0x4c, 0xa5, 0x32, 0x29, 0x4c, 0xa5, 0xb2, 0x03, + 0xa7, 0x52, 0xf0, 0xdd, 0xac, 0xf9, 0x70, 0x9e, 0xc7, 0xb8, 0xd4, 0xbf, 0xff, 0x8f, 0x6b, 0x61, + 0x14, 0xd4, 0x81, 0x5d, 0xf1, 0xc3, 0x1c, 0xd4, 0xcb, 0x07, 0xae, 0x21, 0x19, 0xe2, 0x7f, 0x30, + 0x5a, 0x3b, 0x2f, 0xc7, 0x7e, 0xe3, 0x8d, 0x92, 0x62, 0x2b, 0x55, 0x03, 0xfd, 0xd3, 0x13, 0x60, + 0x0a, 0xeb, 0xc2, 0x9a, 0x69, 0x5d, 0x84, 0x8f, 0x48, 0x60, 0xa6, 0x8a, 0x2e, 0x95, 0xb7, 0x8d, + 0x76, 0x1b, 0x59, 0x5b, 0x88, 0x35, 0xdb, 0xe7, 0xc1, 0x84, 0xd1, 0xe9, 0x54, 0xc3, 0x7d, 0x06, + 0xff, 0x95, 0xf6, 0xbf, 0x7f, 0xdb, 0x57, 0xc9, 0x33, 0x31, 0x4a, 0x1e, 0xd4, 0xbb, 0xc0, 0xd6, + 0x19, 0x31, 0x43, 0x3e, 0x0d, 0xa6, 0x9b, 0x7e, 0x96, 0xc0, 0x5b, 0x9d, 0x4d, 0x82, 0x7f, 0x93, + 0xa8, 0x1b, 0x10, 0xaa, 0x3c, 0x99, 0x50, 0xa0, 0x11, 0xdb, 0x21, 0x27, 0xc0, 0x31, 0xbd, 0x56, + 0x6b, 0xac, 0x97, 0xaa, 0xf7, 0x87, 0xa7, 0x44, 0x37, 0xe1, 0xeb, 0x72, 0x60, 0x4e, 0xb3, 0xdb, + 0x7b, 0x28, 0x84, 0xa9, 0x12, 0xc2, 0xd4, 0xc3, 0xa7, 0xcc, 0x3e, 0x3e, 0xc9, 0x27, 0x41, 0xc1, + 0xb0, 0xba, 0x97, 0x90, 0x6f, 0x1b, 0xd2, 0x37, 0x0a, 0xe3, 0xef, 0xb1, 0x7a, 0xac, 0xf2, 0x30, + 0xde, 0x35, 0x80, 0x93, 0x3c, 0x55, 0x11, 0x40, 0x9e, 0x01, 0x33, 0x5d, 0xb2, 0x59, 0xa8, 0x33, + 0x7b, 0xc2, 0x5c, 0x1a, 0x26, 0x91, 0xec, 0x56, 0x4b, 0x94, 0x44, 0xfc, 0x06, 0x1f, 0x09, 0xd4, + 0x7f, 0x83, 0x83, 0xb8, 0x74, 0x10, 0xc2, 0x92, 0x81, 0xfc, 0xf0, 0xa8, 0x67, 0x78, 0xf3, 0xe0, + 0x38, 0xd5, 0xda, 0x46, 0x79, 0xb5, 0xb4, 0xb6, 0xa6, 0x54, 0x57, 0x94, 0x46, 0x65, 0x89, 0x6c, + 0x55, 0x84, 0x29, 0x25, 0x5d, 0x57, 0xd6, 0xeb, 0xba, 0xd6, 0x50, 0x5e, 0x58, 0x56, 0x94, 0x25, + 0xec, 0x88, 0x84, 0x4f, 0x12, 0xf8, 0x2e, 0x63, 0xa5, 0xaa, 0x76, 0x5e, 0x51, 0x8b, 0xdb, 0x67, + 0x4a, 0x60, 0x9a, 0xe9, 0xe7, 0x3d, 0xea, 0x96, 0xd0, 0xa6, 0xb1, 0xdb, 0xa6, 0xb6, 0x5a, 0xf1, + 0x88, 0x47, 0x1d, 0xe6, 0x4d, 0xcd, 0x6a, 0x5f, 0x29, 0x66, 0xe4, 0x22, 0x98, 0x61, 0xbb, 0xf4, + 0x62, 0x16, 0x7e, 0xe7, 0x5a, 0x30, 0x75, 0xde, 0x76, 0x2e, 0x62, 0xef, 0x31, 0xf8, 0x3e, 0x12, + 0x4d, 0xc2, 0x3f, 0x97, 0xc7, 0x0c, 0xec, 0x0f, 0x8b, 0x7b, 0x0b, 0xf8, 0xa5, 0x2d, 0x0c, 0x3c, + 0x7b, 0x77, 0x1a, 0x4c, 0x5f, 0xf2, 0x73, 0x87, 0x9a, 0xce, 0x24, 0xc1, 0xff, 0x2a, 0xb6, 0xff, + 0x3f, 0xb8, 0xca, 0xf4, 0xf7, 0xa7, 0x1f, 0xcd, 0x82, 0xc2, 0x0a, 0x72, 0x4b, 0xed, 0x36, 0xcb, + 0xb7, 0x87, 0x84, 0xcf, 0x53, 0x70, 0x8d, 0x28, 0xb5, 0xdb, 0xd1, 0x4a, 0xc5, 0x30, 0xc8, 0xf7, + 0xfb, 0xe5, 0xd2, 0xe0, 0xaf, 0x09, 0x9d, 0x84, 0x1a, 0x50, 0x61, 0xfa, 0x1c, 0x7b, 0xb3, 0x14, + 0xec, 0x71, 0xff, 0x34, 0x63, 0xe5, 0x3c, 0x33, 0x8c, 0x24, 0x92, 0x89, 0xdf, 0x2b, 0xf7, 0xf3, + 0xc9, 0xf7, 0x81, 0x89, 0xdd, 0x2e, 0x2a, 0x1b, 0x5d, 0x84, 0x69, 0xeb, 0x6d, 0x69, 0xed, 0xc2, + 0x03, 0xa8, 0xe9, 0x2e, 0x54, 0x76, 0x3c, 0x83, 0x7a, 0x83, 0x64, 0x0c, 0x82, 0x73, 0xd0, 0x77, + 0xd5, 0x2f, 0x01, 0xbe, 0x62, 0x08, 0xc8, 0x62, 0xf7, 0x7b, 0x23, 0x8f, 0x5e, 0x25, 0x06, 0x6a, + 0x04, 0x9b, 0xb4, 0xc3, 0x00, 0xf5, 0xe9, 0x2c, 0xc8, 0xd5, 0x3a, 0xc8, 0x12, 0x73, 0x40, 0x7d, + 0x44, 0xdc, 0xcb, 0x2b, 0x68, 0x98, 0x57, 0x7a, 0x04, 0xf7, 0xce, 0x82, 0x9c, 0x69, 0x6d, 0xda, + 0xd4, 0xc0, 0xbc, 0x36, 0x62, 0x33, 0xa7, 0x62, 0x6d, 0xda, 0x2a, 0xce, 0x28, 0xea, 0xe0, 0x15, + 0x57, 0x77, 0xfa, 0x2c, 0xfd, 0xe6, 0x24, 0x28, 0x10, 0xb1, 0x84, 0xaf, 0x96, 0x80, 0x54, 0x6a, + 0xb5, 0x22, 0x0e, 0x71, 0x64, 0xf7, 0x1d, 0xe2, 0xb0, 0xf1, 0x6f, 0x01, 0xdf, 0x83, 0x77, 0x3e, + 0x14, 0x84, 0x60, 0x1f, 0x4d, 0x55, 0xa3, 0xd4, 0x6a, 0x45, 0xfb, 0x92, 0x06, 0x15, 0x66, 0xf9, + 0x0a, 0x59, 0x4d, 0x95, 0xc4, 0x34, 0x35, 0x71, 0x87, 0x1e, 0x49, 0x5f, 0xfa, 0x10, 0xfd, 0x63, + 0x16, 0x4c, 0xac, 0x99, 0x5d, 0xd7, 0xc3, 0xa6, 0x24, 0x82, 0xcd, 0x75, 0x60, 0xca, 0x67, 0x8d, + 0xd7, 0x75, 0x79, 0xfd, 0x72, 0x98, 0x00, 0xdf, 0xc8, 0xa2, 0xf3, 0x02, 0x1e, 0x9d, 0x67, 0xc5, + 0xb7, 0x9e, 0x52, 0x11, 0xed, 0xa3, 0x1d, 0x56, 0x9b, 0xed, 0xad, 0xf6, 0x37, 0x03, 0x86, 0xaf, + 0x73, 0x0c, 0xbf, 0x63, 0x98, 0x2a, 0xd3, 0x67, 0xfa, 0xe7, 0xb3, 0x00, 0x78, 0x75, 0xd3, 0x83, + 0x30, 0x4f, 0xe5, 0x8e, 0xb7, 0xc6, 0x70, 0xf7, 0x75, 0x2c, 0x77, 0xd7, 0x79, 0xee, 0x3e, 0x67, + 0x70, 0x53, 0xe3, 0x0e, 0xbc, 0xc8, 0x45, 0x20, 0x99, 0x01, 0x6b, 0xbd, 0x47, 0xf8, 0x68, 0xc0, + 0xd4, 0x3a, 0xc7, 0xd4, 0xbb, 0x86, 0xac, 0x29, 0x7d, 0xbe, 0xfe, 0x45, 0x16, 0x4c, 0x68, 0xc8, + 0xf5, 0xba, 0x49, 0x78, 0x4e, 0xe4, 0xc8, 0x09, 0xa3, 0xdb, 0x59, 0x41, 0xdd, 0xfe, 0x76, 0x46, + 0x34, 0x4c, 0x46, 0xc8, 0x19, 0x4a, 0x53, 0xc4, 0x22, 0xc0, 0x9b, 0x84, 0xc2, 0x64, 0x0c, 0x2a, + 0x2d, 0x7d, 0xee, 0xbe, 0x2d, 0x1b, 0x6c, 0xb0, 0x3f, 0x8d, 0x9b, 0xa0, 0xb1, 0xe6, 0x6d, 0x66, + 0xbf, 0x79, 0xfb, 0x4f, 0x99, 0xe4, 0xa6, 0x46, 0xdc, 0xee, 0x72, 0x62, 0x83, 0x62, 0x04, 0x1b, + 0xbf, 0xc3, 0xf0, 0xeb, 0x25, 0x12, 0x28, 0xd0, 0x15, 0xe2, 0x7b, 0xe2, 0x57, 0x88, 0x07, 0x4f, + 0x11, 0xde, 0x3b, 0x84, 0xb9, 0x16, 0xb7, 0x6c, 0x1b, 0x90, 0x91, 0x65, 0xc8, 0xb8, 0x15, 0xe4, + 0x71, 0x1c, 0x3f, 0x3a, 0xce, 0x85, 0x7b, 0xf6, 0x7e, 0x11, 0x8a, 0xf7, 0x55, 0x25, 0x99, 0x12, + 0xa3, 0x30, 0x82, 0x95, 0xde, 0xa1, 0x50, 0xf8, 0x68, 0x26, 0x30, 0x42, 0xde, 0x9b, 0xa3, 0x26, + 0xde, 0xc7, 0xf8, 0x88, 0x02, 0x4d, 0xdb, 0x72, 0xd1, 0x65, 0x66, 0x6d, 0x3d, 0x48, 0x88, 0xb5, + 0x0c, 0xe6, 0xc1, 0x84, 0xeb, 0xb0, 0xeb, 0xed, 0xfe, 0x2b, 0xdb, 0xe3, 0xe4, 0xf9, 0x1e, 0xa7, + 0x0a, 0xce, 0x98, 0x56, 0xb3, 0xbd, 0xdb, 0x42, 0x2a, 0x6a, 0x1b, 0x5e, 0xab, 0xba, 0xa5, 0xee, + 0x12, 0xea, 0x20, 0xab, 0x85, 0x2c, 0x97, 0xd0, 0xe9, 0xfb, 0xd6, 0x0a, 0xe4, 0x84, 0x5f, 0x67, + 0x05, 0xe3, 0x6e, 0x5e, 0x30, 0x9e, 0xda, 0x6f, 0x7e, 0x10, 0x63, 0x84, 0xde, 0x01, 0x00, 0x69, + 0xdb, 0x39, 0x13, 0x5d, 0xa2, 0x1d, 0xe2, 0x35, 0x3d, 0xa6, 0x68, 0x2d, 0xc8, 0xa0, 0x32, 0x99, + 0xe1, 0x97, 0x03, 0x61, 0xb8, 0x97, 0x13, 0x86, 0x5b, 0x05, 0x49, 0x48, 0x26, 0x07, 0x9d, 0x21, + 0xd6, 0x2c, 0x66, 0xc1, 0x54, 0xb8, 0xd2, 0x28, 0xc9, 0xd7, 0x80, 0x13, 0xbe, 0xef, 0x42, 0x55, + 0x51, 0x96, 0xb4, 0xc6, 0x46, 0x7d, 0x45, 0x2d, 0x2d, 0x29, 0x45, 0x20, 0xcb, 0x60, 0xae, 0xb6, + 0xf8, 0x02, 0xa5, 0xac, 0x07, 0x2e, 0x07, 0x39, 0xf8, 0x67, 0x59, 0x90, 0xc7, 0x8e, 0xe1, 0xf0, + 0x47, 0x47, 0x24, 0x39, 0x5d, 0x6e, 0xa7, 0x26, 0x98, 0x57, 0x88, 0x47, 0xfa, 0xa3, 0xcc, 0xc4, + 0x54, 0x1d, 0x28, 0xd2, 0x5f, 0x4c, 0x41, 0xe9, 0xab, 0xa7, 0xa7, 0x92, 0xda, 0xb6, 0x7d, 0xe9, + 0xdf, 0xb3, 0x4a, 0x7a, 0xed, 0x3f, 0x64, 0x95, 0xec, 0x43, 0xc2, 0xd8, 0x55, 0xb2, 0x8f, 0xde, + 0xc5, 0xa8, 0x29, 0xfc, 0x9b, 0x5c, 0xb0, 0xb0, 0xf2, 0x7f, 0x1d, 0x6c, 0x61, 0xa5, 0x04, 0x66, + 0x4d, 0xcb, 0x45, 0x8e, 0x65, 0xb4, 0x97, 0xdb, 0xc6, 0x96, 0x7f, 0xfc, 0xb8, 0x77, 0x16, 0x5e, + 0x61, 0xf2, 0xa8, 0xfc, 0x1f, 0xf2, 0x29, 0x00, 0x5c, 0xb4, 0xd3, 0x69, 0x1b, 0x6e, 0x28, 0x7a, + 0x4c, 0x0a, 0x2b, 0x7d, 0x39, 0x5e, 0xfa, 0x9e, 0x01, 0xae, 0x22, 0xa0, 0xe9, 0x57, 0x3a, 0x68, + 0xc3, 0x32, 0x7f, 0x6c, 0x17, 0x07, 0xa0, 0x21, 0x32, 0xda, 0xef, 0x13, 0xfc, 0x1f, 0xc2, 0xc7, + 0x28, 0x7d, 0xcd, 0x1e, 0x70, 0x8c, 0x32, 0xd0, 0x26, 0xa9, 0x47, 0x9b, 0x02, 0x83, 0x20, 0x27, + 0x60, 0x10, 0xb0, 0x9c, 0xcf, 0x0b, 0x1a, 0xd3, 0x6f, 0x10, 0x3a, 0xa7, 0x19, 0xd7, 0x8c, 0xf4, + 0x7b, 0xa8, 0xf7, 0x49, 0x60, 0x8e, 0x54, 0xbd, 0x68, 0xdb, 0x17, 0x77, 0x0c, 0xe7, 0x22, 0x3b, + 0xb7, 0x18, 0x42, 0xdc, 0xa2, 0x57, 0xca, 0x3e, 0xc5, 0x22, 0xbb, 0xc2, 0x23, 0xfb, 0xcc, 0x68, + 0x96, 0xf8, 0x74, 0x8d, 0x67, 0x71, 0xe3, 0x2d, 0x01, 0x66, 0x2f, 0xe0, 0x30, 0xfb, 0xc1, 0xc4, + 0x04, 0xa6, 0x8f, 0xdd, 0x1f, 0x05, 0xd8, 0xf9, 0x1d, 0x76, 0x6a, 0xd8, 0x7d, 0x65, 0x38, 0xec, + 0x7c, 0xba, 0x86, 0xc0, 0xae, 0x08, 0xa4, 0x8b, 0xc1, 0x96, 0x92, 0xf7, 0xc8, 0x36, 0x28, 0x97, + 0x1e, 0x9a, 0x11, 0x24, 0x8f, 0x05, 0xcd, 0xe3, 0x3c, 0x09, 0xb5, 0x4e, 0xaa, 0x98, 0x7e, 0x49, + 0x78, 0xbd, 0xa5, 0x2f, 0x83, 0x08, 0x75, 0xe3, 0xd1, 0x4a, 0xb1, 0xc5, 0x1a, 0x71, 0x32, 0xd3, + 0x47, 0xf3, 0x1f, 0x72, 0x60, 0xca, 0x3f, 0xcc, 0xea, 0xc2, 0x3f, 0x65, 0x86, 0xf0, 0x93, 0xa0, + 0xd0, 0xb5, 0x77, 0x9d, 0x26, 0xa2, 0x2b, 0x60, 0xf4, 0x6d, 0x88, 0xd5, 0x9a, 0x81, 0xe3, 0xf2, + 0xbe, 0xa1, 0x3f, 0x97, 0x78, 0xe8, 0x8f, 0x34, 0x2c, 0xe1, 0x2b, 0x84, 0x43, 0x0f, 0x72, 0xb8, + 0x68, 0xc8, 0x7d, 0x22, 0x8e, 0xd5, 0x1f, 0x12, 0x9a, 0xef, 0x0f, 0x68, 0x49, 0x32, 0xb1, 0xaa, + 0x0d, 0x61, 0x54, 0x5e, 0x0b, 0xae, 0xf6, 0x73, 0x50, 0x6b, 0x12, 0x5b, 0x8f, 0x1b, 0xea, 0x5a, + 0x51, 0x82, 0x2f, 0xc9, 0x81, 0x22, 0x21, 0xad, 0x16, 0x18, 0x56, 0xf0, 0xa1, 0x43, 0xb7, 0x1e, + 0xa3, 0xa7, 0x83, 0x9f, 0xc9, 0x8a, 0x86, 0x37, 0xe2, 0x18, 0x1f, 0xb6, 0x2e, 0x42, 0x92, 0x86, + 0x50, 0xa5, 0x18, 0xe1, 0x83, 0xbf, 0x91, 0x11, 0x89, 0x96, 0x24, 0x46, 0x62, 0xfa, 0x3d, 0xcf, + 0x1b, 0x73, 0x7e, 0xdc, 0x81, 0x65, 0xc7, 0xde, 0xd9, 0x70, 0xda, 0xf0, 0xc3, 0x42, 0xc1, 0xe8, + 0x22, 0x4c, 0xf5, 0x6c, 0xa4, 0xa9, 0xee, 0x0d, 0xd1, 0xbb, 0x4e, 0xdb, 0x1f, 0xa2, 0x77, 0x9d, + 0xf6, 0x10, 0x43, 0xb4, 0x7c, 0x13, 0x98, 0x33, 0x5a, 0xad, 0xba, 0xb1, 0x85, 0xca, 0xde, 0x1c, + 0xd8, 0x72, 0xe9, 0x99, 0xe4, 0x9e, 0xd4, 0x04, 0x3b, 0x63, 0x1c, 0x10, 0x94, 0x07, 0x4f, 0xa4, + 0x9d, 0x31, 0x01, 0xfa, 0xd2, 0x97, 0x92, 0x4f, 0x64, 0xc1, 0xac, 0x6f, 0xb8, 0x2e, 0x23, 0xb7, + 0xb9, 0x0d, 0xef, 0x10, 0x5d, 0xa1, 0xa0, 0xb0, 0x67, 0x03, 0xd8, 0xe1, 0xf7, 0x32, 0x09, 0xb1, + 0xe1, 0x6a, 0x8e, 0x58, 0xde, 0x49, 0xc4, 0xcc, 0xb8, 0x02, 0xd3, 0x67, 0xe6, 0x97, 0xb3, 0x00, + 0xe8, 0x76, 0x30, 0x81, 0x3a, 0x00, 0x27, 0x5f, 0x25, 0x1c, 0xa6, 0x9c, 0x36, 0x3c, 0xac, 0x36, + 0xb9, 0x88, 0x0b, 0xee, 0xcd, 0x0c, 0xaa, 0x29, 0x7d, 0xfe, 0x7e, 0x20, 0x0b, 0xa6, 0x96, 0x76, + 0x3b, 0x6d, 0xb3, 0x69, 0xb8, 0xbd, 0x1b, 0x8a, 0xd1, 0xec, 0xc5, 0xf7, 0x8d, 0x24, 0xb2, 0x50, + 0x82, 0x3a, 0x22, 0x78, 0x49, 0x4e, 0x5b, 0x66, 0xfd, 0xd3, 0x96, 0x82, 0x9b, 0x04, 0x03, 0x0a, + 0x1f, 0x83, 0x78, 0x4a, 0xe0, 0x68, 0xad, 0x83, 0xac, 0x45, 0x07, 0x19, 0xad, 0xa6, 0xb3, 0xbb, + 0x73, 0xa1, 0xcb, 0xee, 0x86, 0xc7, 0xcb, 0x28, 0xb3, 0xe6, 0x98, 0xe5, 0xd6, 0x1c, 0xe1, 0x4f, + 0x49, 0xa2, 0x67, 0x7f, 0x99, 0x95, 0x71, 0x86, 0x86, 0x21, 0xfa, 0xe4, 0x44, 0x7b, 0x38, 0x3d, + 0xcb, 0x8b, 0xb9, 0x24, 0xcb, 0x8b, 0x6f, 0x15, 0x3a, 0x49, 0x2c, 0xd4, 0xae, 0xb1, 0x6c, 0xc5, + 0xcd, 0x69, 0xc8, 0x8d, 0x80, 0xf7, 0x46, 0x30, 0x7b, 0x21, 0xfc, 0x12, 0x40, 0xcc, 0x27, 0xf6, + 0xd9, 0x20, 0x7f, 0x5b, 0xd2, 0x29, 0x3f, 0x4f, 0x42, 0x04, 0xba, 0x01, 0x82, 0x59, 0x91, 0x5d, + 0xb8, 0x44, 0xf3, 0xf7, 0xd8, 0xfa, 0xd3, 0x47, 0xe1, 0xa3, 0x59, 0x30, 0x8d, 0x6f, 0x51, 0x59, + 0xbc, 0x82, 0xdd, 0xb3, 0x9f, 0xc2, 0x85, 0xda, 0x8a, 0xf4, 0xf8, 0x79, 0x39, 0xcb, 0x66, 0x19, + 0xe4, 0xda, 0xa6, 0x75, 0xd1, 0xdf, 0x3e, 0xf5, 0x9e, 0xc3, 0x98, 0xfc, 0xd9, 0x3e, 0x31, 0xf9, + 0x83, 0x05, 0xee, 0xa0, 0xde, 0x03, 0x5d, 0x12, 0x35, 0xb0, 0xb8, 0xf4, 0xd9, 0xf8, 0xc7, 0x39, + 0x50, 0xd0, 0x90, 0xe1, 0x34, 0xb7, 0xe1, 0xeb, 0x98, 0x83, 0xee, 0xcb, 0x60, 0x62, 0xd3, 0x6c, + 0xbb, 0xc8, 0x21, 0x8e, 0x23, 0x6c, 0x07, 0x4e, 0x14, 0x79, 0xb1, 0x6d, 0x37, 0x2f, 0x2e, 0x50, + 0x6b, 0x71, 0xc1, 0x8f, 0x19, 0xb4, 0xb0, 0x8c, 0x7f, 0x52, 0xfd, 0x9f, 0xe5, 0x7b, 0x41, 0xbe, + 0x6b, 0x3b, 0x6e, 0x54, 0x10, 0xce, 0x88, 0x52, 0x34, 0xdb, 0x71, 0x55, 0xf2, 0xa3, 0x07, 0xe6, + 0xe6, 0x6e, 0xbb, 0xad, 0xa3, 0xcb, 0xae, 0x3f, 0x53, 0xf0, 0xdf, 0xbd, 0xb9, 0xbd, 0xbd, 0xb9, + 0xd9, 0x45, 0x64, 0x9e, 0x9a, 0x57, 0xe9, 0x9b, 0x7c, 0x1c, 0xe4, 0xdb, 0xe6, 0x8e, 0x49, 0x6c, + 0xdb, 0xbc, 0x4a, 0x5e, 0xe4, 0x5b, 0x40, 0x31, 0x34, 0xab, 0x09, 0xa1, 0xf3, 0x05, 0xac, 0x80, + 0xfb, 0xd2, 0x3d, 0xc9, 0xb8, 0x88, 0xae, 0x74, 0xe7, 0x27, 0xf0, 0x77, 0xfc, 0xcc, 0x7b, 0xe9, + 0x89, 0x2c, 0x95, 0x13, 0xbe, 0x46, 0x4f, 0x9a, 0x1c, 0xd4, 0xb4, 0x9d, 0x96, 0xcf, 0x9b, 0x68, + 0x7b, 0x97, 0xe6, 0x4b, 0xb6, 0xc0, 0xdd, 0xb7, 0xf2, 0xf4, 0xe5, 0xe9, 0x35, 0x05, 0xaf, 0x73, + 0xf4, 0xaa, 0x3e, 0x6f, 0xba, 0xdb, 0xeb, 0xc8, 0x35, 0xe0, 0x1f, 0x4b, 0xff, 0x9f, 0x5c, 0xc5, + 0xc8, 0x15, 0x39, 0xf3, 0xed, 0xee, 0x3a, 0x96, 0xc7, 0x2d, 0x1a, 0x65, 0x89, 0x49, 0x91, 0xef, + 0x02, 0xd7, 0x84, 0x6f, 0xfe, 0x3a, 0xdb, 0x12, 0x9d, 0x2b, 0x4d, 0xe1, 0xec, 0xd1, 0x19, 0xe4, + 0x3a, 0xb8, 0x81, 0x7c, 0x5c, 0xd5, 0xd7, 0xd7, 0x56, 0xcd, 0xad, 0xed, 0xb6, 0xb9, 0xb5, 0xed, + 0x76, 0x2b, 0x56, 0xd7, 0x45, 0x46, 0xab, 0xb6, 0xa9, 0x92, 0x20, 0xb9, 0x00, 0x97, 0x23, 0x92, + 0x95, 0x77, 0x1f, 0x11, 0x1b, 0xa9, 0x58, 0x79, 0x88, 0xd0, 0x87, 0x1f, 0xf4, 0xf4, 0xa1, 0xbb, + 0xdb, 0x0e, 0x30, 0xbd, 0xae, 0x07, 0xd3, 0x50, 0xa0, 0x77, 0xdb, 0x58, 0x29, 0x70, 0xe6, 0xa4, + 0x63, 0x56, 0x0c, 0x25, 0xe9, 0x2b, 0xc7, 0xff, 0x53, 0x00, 0xf9, 0x15, 0xc7, 0xe8, 0x6c, 0xc3, + 0x97, 0xa4, 0xd0, 0xd7, 0x06, 0xd2, 0x99, 0x1d, 0x24, 0x9d, 0xd2, 0x00, 0xe9, 0xcc, 0x31, 0xd2, + 0x19, 0xbd, 0xd5, 0x7d, 0x06, 0xcc, 0x34, 0xed, 0x76, 0x1b, 0x35, 0x3d, 0x7e, 0x54, 0x5a, 0x38, + 0x30, 0xc8, 0x94, 0xca, 0xa5, 0xe1, 0xe8, 0x69, 0xc8, 0xd5, 0xc8, 0x02, 0x2c, 0x11, 0xfa, 0x30, + 0x01, 0x3e, 0x94, 0x05, 0x39, 0xa5, 0xb5, 0x85, 0xb8, 0x45, 0xda, 0x0c, 0xb3, 0x48, 0x7b, 0x12, + 0x14, 0x5c, 0xc3, 0xd9, 0x42, 0xae, 0x7f, 0x1c, 0x87, 0xbc, 0x05, 0x41, 0xdd, 0x24, 0x26, 0xa8, + 0xdb, 0x73, 0x40, 0xce, 0xe3, 0x19, 0x0d, 0x97, 0x72, 0x43, 0x3f, 0xf8, 0x31, 0xef, 0x17, 0xbc, + 0x1a, 0x17, 0xbc, 0x56, 0xab, 0xf8, 0x87, 0x5e, 0xac, 0xf3, 0xfb, 0xb0, 0xc6, 0xf7, 0x7d, 0x34, + 0x6d, 0xab, 0xb2, 0x63, 0x6c, 0x21, 0xda, 0xcc, 0x30, 0xc1, 0xff, 0xaa, 0xec, 0xd8, 0x0f, 0x98, + 0x34, 0xbe, 0x5a, 0x98, 0xe0, 0x35, 0x61, 0xdb, 0x6c, 0xb5, 0x90, 0x45, 0x35, 0x9b, 0xbe, 0x9d, + 0x39, 0x05, 0x72, 0x1e, 0x0d, 0x9e, 0xfc, 0x78, 0x03, 0x7f, 0xf1, 0x88, 0x3c, 0xe3, 0xa9, 0x15, + 0x51, 0xde, 0x62, 0x86, 0x5f, 0xac, 0x13, 0xf1, 0xdd, 0x20, 0x8d, 0xeb, 0xaf, 0x5c, 0x4f, 0x07, + 0x79, 0xcb, 0x6e, 0xa1, 0x81, 0x43, 0x0d, 0xc9, 0x25, 0x3f, 0x0b, 0xe4, 0x51, 0xcb, 0xeb, 0x15, + 0x24, 0x9c, 0xfd, 0x54, 0x3c, 0x2f, 0x55, 0x92, 0x39, 0x99, 0x83, 0x48, 0x3f, 0x6a, 0xd3, 0x57, + 0xc0, 0x5f, 0x99, 0x00, 0x47, 0x49, 0x1f, 0xa0, 0xed, 0x5e, 0xf0, 0x8a, 0xba, 0x80, 0xe0, 0x63, + 0x12, 0x17, 0x45, 0xb2, 0xbb, 0x7b, 0x21, 0x30, 0x1b, 0xc9, 0x0b, 0xab, 0xa0, 0xd9, 0x91, 0x0c, + 0x5a, 0xd2, 0xb0, 0x83, 0x16, 0x37, 0x00, 0x49, 0xbe, 0x8a, 0x87, 0xc3, 0x55, 0x01, 0x27, 0xfb, + 0xc3, 0x55, 0xbf, 0xc1, 0x66, 0x1e, 0x4c, 0x18, 0x9b, 0x2e, 0x72, 0x2a, 0x2d, 0x2c, 0x8f, 0x53, + 0xaa, 0xff, 0xea, 0x0d, 0x88, 0x17, 0xd0, 0xa6, 0xed, 0x78, 0x9a, 0x3e, 0x45, 0x06, 0x44, 0xff, + 0x9d, 0xd1, 0x4f, 0xc0, 0x6d, 0xa2, 0xdc, 0x0c, 0x8e, 0x9a, 0x5b, 0x96, 0xed, 0xa0, 0xc0, 0x33, + 0x6f, 0x7e, 0x86, 0x1c, 0x16, 0xef, 0x49, 0x96, 0x6f, 0x05, 0xc7, 0x2c, 0x7b, 0x09, 0x75, 0x28, + 0xdf, 0x09, 0xaa, 0xb3, 0x58, 0x23, 0xf6, 0x7f, 0xd8, 0xd7, 0xb5, 0xcc, 0xed, 0xef, 0x5a, 0xe0, + 0xa7, 0x93, 0xce, 0x87, 0x7b, 0x80, 0x1f, 0x99, 0x5d, 0x26, 0x3f, 0x0f, 0xcc, 0xb4, 0xa8, 0xdf, + 0x4e, 0xd3, 0x0c, 0xb4, 0x26, 0xf2, 0x3f, 0x2e, 0x73, 0x28, 0x72, 0x39, 0x56, 0xe4, 0x56, 0xc0, + 0x24, 0x3e, 0xa5, 0xe1, 0xc9, 0x5c, 0xbe, 0x27, 0x18, 0x1d, 0x9e, 0xb2, 0x05, 0x8d, 0x62, 0xd8, + 0xb6, 0x50, 0xa6, 0xbf, 0xa8, 0xc1, 0xcf, 0xc9, 0x66, 0xd6, 0xf1, 0x1c, 0x4a, 0x5f, 0x3d, 0x3f, + 0x93, 0x03, 0x47, 0x57, 0x1c, 0x7b, 0xb7, 0xd3, 0x0d, 0xd5, 0xf3, 0xaf, 0xfa, 0xaf, 0xa6, 0x17, + 0xf8, 0xb1, 0xa8, 0xbf, 0xe2, 0x9e, 0x06, 0xd3, 0x0e, 0xed, 0x51, 0xc3, 0xb5, 0x75, 0x36, 0x89, + 0x55, 0x6d, 0xe9, 0x20, 0xaa, 0x1d, 0x2a, 0x48, 0x8e, 0x53, 0x90, 0x5e, 0x41, 0xce, 0xf7, 0x11, + 0xe4, 0xbf, 0xcc, 0x26, 0x14, 0xe4, 0x1e, 0x16, 0x45, 0x08, 0x72, 0x19, 0x14, 0xb6, 0x70, 0x46, + 0x2a, 0xc7, 0x4f, 0x13, 0x6b, 0x19, 0x2e, 0x5c, 0xa5, 0xbf, 0x86, 0x7c, 0x95, 0x18, 0xbe, 0x26, + 0x13, 0xaa, 0x78, 0x6a, 0xd3, 0x17, 0xaa, 0x77, 0xe6, 0xc0, 0x4c, 0x50, 0x3b, 0x3e, 0xf8, 0x90, + 0x19, 0xd4, 0xe1, 0xef, 0x5b, 0x9d, 0x09, 0xba, 0x52, 0x89, 0xe9, 0x4a, 0xfb, 0x74, 0x7e, 0xd3, + 0x09, 0x3a, 0xbf, 0x99, 0x88, 0xce, 0x0f, 0xbe, 0x58, 0x12, 0x0d, 0x5a, 0xcc, 0xf7, 0x01, 0xb8, + 0x75, 0x4f, 0xe4, 0x5e, 0x4d, 0x30, 0x74, 0xf2, 0xe0, 0x56, 0xa5, 0x2f, 0x34, 0x1f, 0xcc, 0x82, + 0x63, 0xa4, 0x37, 0xdc, 0xb0, 0xba, 0x41, 0x5f, 0xf4, 0x64, 0xde, 0xad, 0xc0, 0x6b, 0x53, 0x37, + 0x70, 0x2b, 0xc0, 0x6f, 0xfc, 0x22, 0x78, 0xec, 0x99, 0x25, 0xae, 0xcf, 0x65, 0x6a, 0x89, 0x58, + 0x51, 0x12, 0x3b, 0x95, 0x24, 0x58, 0x68, 0xfa, 0x0c, 0xfc, 0x45, 0x09, 0x4c, 0x69, 0xc8, 0x5d, + 0x33, 0xae, 0xd8, 0xbb, 0x2e, 0x34, 0x44, 0x97, 0xbf, 0x9f, 0x0b, 0x0a, 0x6d, 0xfc, 0x0b, 0xbd, + 0x81, 0xeb, 0x74, 0xdf, 0xf5, 0x63, 0xbc, 0xd1, 0x4b, 0x8a, 0x56, 0x69, 0x7e, 0xfe, 0xb0, 0x98, + 0xc8, 0xee, 0x43, 0x40, 0xdd, 0x48, 0x96, 0x4e, 0x13, 0xed, 0x4d, 0x44, 0x55, 0x9d, 0x3e, 0x2c, + 0x3f, 0x25, 0x81, 0x59, 0x0d, 0xb9, 0x95, 0xee, 0xb2, 0xb1, 0x67, 0x3b, 0xa6, 0x8b, 0xd8, 0xcb, + 0x20, 0xe2, 0xa1, 0x39, 0x05, 0x80, 0x19, 0xfc, 0x46, 0xa3, 0x81, 0x33, 0x29, 0xf0, 0x37, 0x92, + 0xee, 0x18, 0x73, 0x74, 0x8c, 0x04, 0x84, 0x44, 0x7b, 0x98, 0x71, 0xd5, 0xa7, 0x0f, 0xc4, 0x17, + 0xb2, 0x14, 0x88, 0x92, 0xd3, 0xdc, 0x36, 0xf7, 0x50, 0x2b, 0x21, 0x10, 0xfe, 0x6f, 0x21, 0x10, + 0x41, 0x41, 0x89, 0xb7, 0x87, 0x39, 0x3a, 0x46, 0xb1, 0x3d, 0x1c, 0x57, 0xe0, 0x58, 0x4e, 0xa1, + 0x7a, 0x5d, 0x0f, 0x5d, 0x63, 0xb8, 0x47, 0x94, 0xad, 0xa1, 0x09, 0x97, 0x65, 0x4d, 0xb8, 0xa1, + 0x3a, 0x16, 0x52, 0xf7, 0x20, 0x99, 0xce, 0xa5, 0xd1, 0xb1, 0xf4, 0xad, 0x3a, 0x7d, 0xa6, 0xbf, + 0x47, 0x02, 0x27, 0x02, 0x83, 0x47, 0x43, 0xee, 0x92, 0xd1, 0xdd, 0xbe, 0x60, 0x1b, 0x4e, 0x8b, + 0xbd, 0x99, 0x6d, 0xe8, 0xa3, 0x18, 0xf0, 0xcf, 0x59, 0x10, 0xaa, 0x3c, 0x08, 0x7d, 0xfd, 0x82, + 0xfa, 0xd2, 0x32, 0x8a, 0x4e, 0x26, 0xd6, 0x75, 0xe9, 0xb7, 0x02, 0xb0, 0x7e, 0x88, 0x03, 0xeb, + 0xee, 0x61, 0x49, 0x4c, 0x1f, 0xb8, 0x5f, 0x26, 0x23, 0x02, 0xe3, 0xc2, 0x76, 0xbf, 0x28, 0x60, + 0x11, 0x2e, 0x4c, 0x52, 0xf4, 0x69, 0x83, 0x61, 0xc6, 0x88, 0x81, 0xee, 0x67, 0xe9, 0x8e, 0x11, + 0x87, 0xe8, 0x5a, 0xf6, 0x4e, 0x09, 0x14, 0xf1, 0xf9, 0x5c, 0xc6, 0xbd, 0x0f, 0x3e, 0x20, 0x8a, + 0xce, 0x3e, 0x57, 0xc2, 0x89, 0xa4, 0xae, 0x84, 0xf0, 0x1d, 0x49, 0x1d, 0x06, 0x7b, 0xa9, 0x1d, + 0x09, 0x62, 0x89, 0xfc, 0x01, 0x07, 0x50, 0x90, 0x3e, 0x68, 0xff, 0x59, 0x02, 0xc0, 0x53, 0x68, + 0xea, 0xa3, 0xf6, 0x42, 0x51, 0xb8, 0xce, 0xb2, 0x4e, 0x94, 0x1e, 0x50, 0x27, 0x7a, 0x80, 0x22, + 0x25, 0x86, 0xde, 0x6f, 0x6f, 0x4a, 0xea, 0xbb, 0x14, 0x52, 0x35, 0x12, 0x58, 0x12, 0x79, 0x33, + 0x45, 0xd6, 0x9d, 0x3e, 0x20, 0xbf, 0x9d, 0x05, 0x79, 0xdd, 0xd6, 0x90, 0x7b, 0x70, 0x53, 0x20, + 0xf1, 0x79, 0x4a, 0x5c, 0xef, 0x28, 0xce, 0x53, 0xf6, 0x2b, 0x28, 0x7d, 0xd6, 0x3d, 0x96, 0x05, + 0x33, 0xba, 0x5d, 0x0e, 0x16, 0xab, 0xc4, 0x7d, 0xc1, 0xc4, 0x2f, 0x5e, 0x0a, 0x1a, 0x18, 0x56, + 0x73, 0xa0, 0x8b, 0x97, 0x06, 0x97, 0x97, 0x3e, 0xdf, 0xee, 0x00, 0x47, 0x37, 0xac, 0x96, 0xad, + 0xa2, 0x96, 0x4d, 0x97, 0x64, 0x65, 0x19, 0xe4, 0x76, 0xad, 0x96, 0x8d, 0x49, 0xce, 0xab, 0xf8, + 0xd9, 0x4b, 0x73, 0x50, 0xcb, 0xa6, 0xfb, 0x75, 0xf8, 0x19, 0x7e, 0x5d, 0x02, 0x39, 0xef, 0x5f, + 0x71, 0x56, 0xbf, 0x53, 0x4a, 0x78, 0x42, 0xd4, 0x2b, 0x7e, 0x24, 0x96, 0xd0, 0x3d, 0xcc, 0x22, + 0x35, 0xf1, 0x10, 0xbb, 0x21, 0xaa, 0x3e, 0x86, 0x15, 0xe1, 0xe2, 0xb4, 0x3c, 0x0f, 0x26, 0x2e, + 0xb4, 0xed, 0xe6, 0xc5, 0xf0, 0x20, 0x23, 0x7d, 0x95, 0x6f, 0x01, 0x79, 0xc7, 0xb0, 0xb6, 0x10, + 0x5d, 0xfc, 0x3e, 0xde, 0xd3, 0x17, 0xe2, 0x9d, 0x68, 0x95, 0x64, 0x81, 0xef, 0x48, 0x72, 0x36, + 0xb5, 0x4f, 0xe3, 0x93, 0xc9, 0xc3, 0xd2, 0x10, 0xc7, 0x08, 0x8a, 0x60, 0xa6, 0x5c, 0x22, 0x57, + 0x9c, 0xad, 0xd7, 0xce, 0x29, 0x45, 0x09, 0xc3, 0xec, 0xf1, 0x24, 0x45, 0x98, 0xbd, 0xe2, 0xff, + 0xdd, 0xc2, 0xdc, 0xa7, 0xf1, 0x87, 0x01, 0xf3, 0x27, 0xb2, 0x60, 0x76, 0xcd, 0xec, 0xba, 0x51, + 0xde, 0xb4, 0x31, 0xe1, 0x79, 0x5e, 0x91, 0xd4, 0x54, 0xe6, 0xea, 0x11, 0x8e, 0xcb, 0x93, 0xc8, + 0x1c, 0x8e, 0xab, 0x62, 0x3c, 0x6e, 0xdf, 0x98, 0x02, 0x72, 0x2d, 0x91, 0x30, 0x27, 0x13, 0x1b, + 0x4a, 0x61, 0x25, 0xe3, 0x37, 0x94, 0x22, 0xeb, 0x4e, 0x9f, 0xbf, 0x5f, 0xcf, 0x82, 0x63, 0x5e, + 0xf5, 0x71, 0xcb, 0x52, 0xd1, 0x6c, 0x1e, 0xb8, 0x2c, 0x95, 0x78, 0x65, 0x7c, 0x1f, 0x2d, 0xa3, + 0x58, 0x19, 0x1f, 0x54, 0xe8, 0x98, 0xd9, 0x1c, 0xb1, 0x0c, 0x3b, 0x88, 0xcd, 0x31, 0xcb, 0xb0, + 0xc3, 0xb3, 0x39, 0x7e, 0x29, 0x76, 0x48, 0x36, 0x1f, 0xda, 0x02, 0xeb, 0xaf, 0x49, 0x01, 0x9b, + 0x23, 0xd7, 0x36, 0x62, 0xd8, 0x9c, 0xf8, 0x78, 0x16, 0x7c, 0xd7, 0x90, 0x8c, 0x1f, 0xf1, 0xfa, + 0xc6, 0x30, 0x30, 0x1d, 0xe2, 0x1a, 0xc7, 0x6b, 0x24, 0x30, 0x47, 0xa9, 0xe8, 0x3f, 0x65, 0x8e, + 0xc1, 0x28, 0xf1, 0x94, 0x39, 0xb1, 0x8f, 0x3d, 0x4f, 0xd9, 0xf8, 0x7d, 0xec, 0x63, 0xeb, 0x4f, + 0x1f, 0x9c, 0x3f, 0xcb, 0x81, 0x93, 0x1e, 0x09, 0xeb, 0x76, 0xcb, 0xdc, 0xbc, 0x42, 0xa8, 0x38, + 0x67, 0xb4, 0x77, 0x51, 0x17, 0xbe, 0x25, 0x2b, 0x8a, 0xd2, 0xff, 0x0f, 0x00, 0xbb, 0x83, 0x1c, + 0x12, 0xe1, 0x86, 0x02, 0x75, 0x57, 0x54, 0x63, 0xf7, 0xd7, 0x14, 0x44, 0x9d, 0xad, 0xf9, 0x85, + 0xa8, 0x4c, 0x79, 0xf0, 0x0d, 0x19, 0x30, 0x15, 0x7c, 0xf1, 0xa3, 0x18, 0x64, 0xc2, 0x28, 0x06, + 0x37, 0x03, 0xc9, 0x68, 0xb5, 0x02, 0x68, 0x7a, 0x37, 0xaf, 0x71, 0x1d, 0xaa, 0x97, 0xc5, 0xcb, + 0xd9, 0x45, 0xe1, 0x51, 0x97, 0x88, 0x9c, 0x5d, 0xe4, 0xca, 0x0b, 0xa0, 0x40, 0xae, 0x64, 0x0a, + 0x56, 0xf0, 0xfb, 0x67, 0xa6, 0xb9, 0x78, 0x53, 0xae, 0xc6, 0x8b, 0xdd, 0x1d, 0x89, 0x38, 0xd1, + 0xaf, 0x5f, 0x0e, 0xed, 0x62, 0x95, 0x13, 0xa8, 0xe7, 0x0f, 0x5d, 0xf2, 0x78, 0x76, 0xbf, 0x4a, + 0x9d, 0x4e, 0xfb, 0x8a, 0x4e, 0x4f, 0xcf, 0x27, 0xda, 0xfd, 0x62, 0x0e, 0xe1, 0x67, 0x7b, 0x0f, + 0xe1, 0x27, 0xdf, 0xfd, 0xe2, 0xe8, 0x18, 0xc5, 0xee, 0x57, 0x5c, 0x81, 0x63, 0x58, 0x7f, 0xcc, + 0x13, 0x2b, 0x99, 0x06, 0x0b, 0x64, 0xf5, 0x94, 0x71, 0x9f, 0x02, 0xbc, 0xfb, 0x54, 0xbf, 0x38, + 0x82, 0xb1, 0x41, 0x52, 0xe5, 0x67, 0x81, 0xc2, 0xa6, 0xed, 0xec, 0x18, 0xfe, 0x46, 0x7d, 0xaf, + 0xb7, 0x36, 0x0d, 0xd0, 0xb7, 0x8c, 0xf3, 0xa8, 0x34, 0xaf, 0xa7, 0x9f, 0x2f, 0x32, 0x3b, 0x34, + 0xfc, 0x95, 0xf7, 0x28, 0xdf, 0x08, 0x66, 0x69, 0x14, 0xac, 0x2a, 0xea, 0xba, 0xa8, 0x45, 0x8f, + 0x23, 0xf3, 0x89, 0xf2, 0x19, 0x30, 0x43, 0x13, 0x96, 0xcd, 0x36, 0xea, 0xd2, 0x3b, 0x08, 0xb9, + 0x34, 0xf9, 0x24, 0x28, 0x98, 0xdd, 0x17, 0x74, 0x6d, 0x0b, 0xfb, 0xe0, 0x4e, 0xaa, 0xf4, 0x0d, + 0xbb, 0xe9, 0x90, 0x7c, 0x81, 0x71, 0x4a, 0x9c, 0xe6, 0x7b, 0x93, 0xe1, 0x67, 0x87, 0x99, 0x28, + 0x24, 0x0e, 0x8c, 0xe8, 0xa1, 0xb0, 0xdb, 0x6c, 0x22, 0xd4, 0xa2, 0xa7, 0x0b, 0xfc, 0xd7, 0x84, + 0x21, 0x13, 0x13, 0x4f, 0x2b, 0x0e, 0x29, 0x66, 0xe2, 0x87, 0x4f, 0x80, 0x02, 0x89, 0x23, 0x0e, + 0x5f, 0x3d, 0xd7, 0x57, 0x18, 0xe7, 0x78, 0x61, 0xdc, 0x00, 0x33, 0x96, 0xed, 0x55, 0x57, 0x37, + 0x1c, 0x63, 0xa7, 0x1b, 0xb7, 0x6a, 0x48, 0xca, 0x0d, 0x86, 0x88, 0x2a, 0xf3, 0xdb, 0xea, 0x11, + 0x95, 0x2b, 0x46, 0xfe, 0xff, 0x83, 0xa3, 0x17, 0xe8, 0x89, 0xda, 0x2e, 0x2d, 0x39, 0x1b, 0xed, + 0x63, 0xd7, 0x53, 0xf2, 0x22, 0xff, 0xe7, 0xea, 0x11, 0xb5, 0xb7, 0x30, 0xf9, 0x47, 0xc0, 0x9c, + 0xf7, 0xda, 0xb2, 0x2f, 0xf9, 0x84, 0x4b, 0xd1, 0x86, 0x45, 0x4f, 0xf1, 0xeb, 0xdc, 0x8f, 0xab, + 0x47, 0xd4, 0x9e, 0xa2, 0xe4, 0x1a, 0x00, 0xdb, 0xee, 0x4e, 0x9b, 0x16, 0x9c, 0x8b, 0x16, 0xc9, + 0x9e, 0x82, 0x57, 0x83, 0x9f, 0x56, 0x8f, 0xa8, 0x4c, 0x11, 0xf2, 0x1a, 0x98, 0x72, 0x2f, 0xbb, + 0xb4, 0xbc, 0x7c, 0xf4, 0x66, 0x76, 0x4f, 0x79, 0xba, 0xff, 0xcf, 0xea, 0x11, 0x35, 0x2c, 0x40, + 0xae, 0x80, 0xc9, 0xce, 0x05, 0x5a, 0x58, 0xa1, 0xcf, 0xdd, 0xc9, 0xfd, 0x0b, 0xab, 0x5f, 0x08, + 0xca, 0x0a, 0x7e, 0xf7, 0x08, 0x6b, 0x76, 0xf7, 0x68, 0x59, 0x13, 0xc2, 0x84, 0x95, 0xfd, 0x7f, + 0x3c, 0xc2, 0x82, 0x02, 0xe4, 0x0a, 0x98, 0xea, 0x5a, 0x46, 0xa7, 0xbb, 0x6d, 0xbb, 0xdd, 0xf9, + 0xc9, 0x1e, 0x3f, 0xc8, 0xe8, 0xd2, 0x34, 0xfa, 0x8f, 0x1a, 0xfe, 0x2d, 0x3f, 0x0b, 0x9c, 0xd8, + 0xc5, 0xf7, 0xb1, 0x29, 0x97, 0xcd, 0xae, 0x6b, 0x5a, 0x5b, 0x7e, 0x30, 0x3f, 0xd2, 0x9b, 0xf4, + 0xff, 0x28, 0x2f, 0xd0, 0x53, 0x09, 0x00, 0xeb, 0x26, 0xec, 0xdd, 0x7c, 0x23, 0xd5, 0x32, 0x87, + 0x11, 0x9e, 0x07, 0x72, 0xde, 0x27, 0xec, 0x49, 0x38, 0xd7, 0x7f, 0x61, 0xaf, 0x57, 0x76, 0xb0, + 0x02, 0x7b, 0x3f, 0x79, 0x63, 0xa3, 0x65, 0xd7, 0x1d, 0x7b, 0xcb, 0x41, 0xdd, 0x2e, 0x75, 0x30, + 0x64, 0x52, 0x3c, 0x05, 0x37, 0xbb, 0xeb, 0xe6, 0x16, 0xb1, 0x96, 0xa8, 0xfb, 0x35, 0x9b, 0x44, + 0x66, 0x97, 0x55, 0x74, 0x09, 0xdf, 0xf1, 0x35, 0x7f, 0xd4, 0x9f, 0x5d, 0xfa, 0x29, 0xf0, 0x26, + 0x30, 0xc3, 0x2a, 0x19, 0xb9, 0x8c, 0xc4, 0xbc, 0x2f, 0xb0, 0xb9, 0xe8, 0x1b, 0xbc, 0x11, 0xcc, + 0xf1, 0x32, 0xcd, 0x0c, 0x31, 0x92, 0xdf, 0x15, 0xc2, 0x1b, 0xc0, 0xd1, 0x1e, 0xc5, 0xf2, 0xcf, + 0xe8, 0x67, 0xc2, 0x33, 0xfa, 0xa7, 0x01, 0x08, 0xa5, 0xb8, 0x6f, 0x31, 0xd7, 0x83, 0xa9, 0x40, + 0x2e, 0xfb, 0x66, 0xf8, 0x6a, 0x06, 0x4c, 0xfa, 0xc2, 0xd6, 0x2f, 0x83, 0x37, 0xbe, 0x58, 0xcc, + 0x86, 0x01, 0x9d, 0x56, 0x73, 0x69, 0xde, 0x38, 0x12, 0xba, 0xed, 0xea, 0xa6, 0xdb, 0xf6, 0x8f, + 0x9f, 0xf4, 0x26, 0xcb, 0x75, 0x00, 0x4c, 0x8c, 0x91, 0x1e, 0x9e, 0x47, 0x79, 0x46, 0x02, 0x7d, + 0x20, 0xf2, 0xc0, 0x94, 0x71, 0xe6, 0xc9, 0xf4, 0xb0, 0xc8, 0x14, 0xc8, 0x6b, 0xf5, 0x52, 0x59, + 0x29, 0x1e, 0x91, 0xe7, 0x00, 0x50, 0x5e, 0x58, 0x57, 0xd4, 0x8a, 0x52, 0x2d, 0x2b, 0xc5, 0x0c, + 0x7c, 0x6d, 0x16, 0x4c, 0x05, 0x4a, 0xd0, 0xb7, 0x91, 0x0a, 0x15, 0xad, 0x81, 0xf7, 0x3d, 0xec, + 0x57, 0x2a, 0x56, 0xc8, 0x9e, 0x0b, 0xae, 0xde, 0xed, 0xa2, 0x65, 0xd3, 0xe9, 0xba, 0xaa, 0x7d, + 0x69, 0xd9, 0x76, 0x82, 0xf0, 0x95, 0xfe, 0xbd, 0xc6, 0x11, 0x9f, 0x3d, 0x8b, 0xa2, 0x85, 0xf0, + 0x91, 0x05, 0xe4, 0xd0, 0x95, 0xe0, 0x30, 0xc1, 0x2b, 0xd7, 0x25, 0x17, 0x09, 0x77, 0x91, 0x6a, + 0x5f, 0xea, 0x96, 0xac, 0x56, 0xd9, 0x6e, 0xef, 0xee, 0x58, 0x5d, 0x6a, 0x13, 0x44, 0x7d, 0xf6, + 0xb8, 0x83, 0x6f, 0x73, 0x99, 0x03, 0xa0, 0x5c, 0x5b, 0x5b, 0x53, 0xca, 0x7a, 0xa5, 0x56, 0x2d, + 0x1e, 0xf1, 0xb8, 0xa5, 0x97, 0x16, 0xd7, 0x3c, 0xee, 0xfc, 0x28, 0x98, 0xf4, 0x75, 0x7a, 0xdf, + 0x25, 0xce, 0x25, 0x30, 0xe9, 0x6b, 0x39, 0x1d, 0x11, 0x9e, 0xd2, 0x7b, 0xf4, 0x6c, 0xc7, 0x70, + 0x5c, 0xec, 0x2f, 0xed, 0x17, 0xb2, 0x68, 0x74, 0x91, 0x1a, 0xfc, 0x76, 0xe6, 0xe9, 0x94, 0x02, + 0x19, 0xcc, 0x95, 0xd6, 0xd6, 0x1a, 0x35, 0xb5, 0x51, 0xad, 0xe9, 0xab, 0x95, 0xea, 0x0a, 0x19, + 0x21, 0x2b, 0x2b, 0xd5, 0x9a, 0xaa, 0x90, 0x01, 0x52, 0x2b, 0x66, 0xc8, 0x6d, 0x42, 0x8b, 0x93, + 0xa0, 0xd0, 0xc1, 0xdc, 0x85, 0x5f, 0x92, 0x12, 0x9e, 0x2c, 0x0d, 0x70, 0x8a, 0xb8, 0xef, 0x84, + 0xf3, 0x39, 0xcf, 0xf6, 0x39, 0x97, 0x75, 0x06, 0xcc, 0x10, 0x5b, 0xae, 0x8b, 0x97, 0xeb, 0xe9, + 0x95, 0x81, 0x5c, 0x1a, 0xfc, 0x68, 0x36, 0xc1, 0x71, 0xd3, 0xbe, 0x14, 0x25, 0x33, 0x2e, 0x3e, + 0x37, 0xcc, 0xed, 0x41, 0x32, 0x98, 0xab, 0x54, 0x75, 0x45, 0xad, 0x96, 0xd6, 0x68, 0x16, 0x49, + 0x9e, 0x07, 0xc7, 0xab, 0x35, 0x1a, 0xb0, 0x49, 0xc3, 0xf7, 0x94, 0xae, 0xd7, 0x6b, 0xaa, 0x5e, + 0xcc, 0xcb, 0x27, 0x81, 0x4c, 0x9e, 0xb9, 0x6b, 0x7e, 0x0b, 0xf2, 0x53, 0xc1, 0x0d, 0x6b, 0x95, + 0xf5, 0x8a, 0xde, 0xa8, 0x2d, 0x37, 0xd4, 0xda, 0x79, 0xcd, 0x43, 0x50, 0x55, 0xd6, 0x4a, 0x9e, + 0x20, 0x31, 0xb7, 0x0a, 0x4d, 0xc8, 0x57, 0x81, 0xa3, 0xf8, 0xc6, 0x30, 0x7c, 0x55, 0x30, 0xa9, + 0x6f, 0x52, 0xbe, 0x0e, 0xcc, 0x57, 0xaa, 0xda, 0xc6, 0xf2, 0x72, 0xa5, 0x5c, 0x51, 0xaa, 0x7a, + 0xa3, 0xae, 0xa8, 0xeb, 0x15, 0x4d, 0xf3, 0xfe, 0x2d, 0x4e, 0xc1, 0x0f, 0x4b, 0xa0, 0x40, 0xfa, + 0x4c, 0xf8, 0x5e, 0x09, 0xcc, 0x9e, 0x33, 0xda, 0xa6, 0x37, 0x50, 0xe0, 0xcb, 0x9c, 0xe0, 0xf5, + 0x9c, 0x2b, 0xba, 0x8b, 0x2f, 0x7d, 0xa2, 0xae, 0xe8, 0xf8, 0x05, 0xfe, 0x24, 0x2b, 0x1a, 0x3a, + 0x2f, 0x1a, 0xcf, 0x8f, 0x01, 0x82, 0xd4, 0xb8, 0xc0, 0xd5, 0x16, 0x31, 0xb9, 0x79, 0x43, 0x80, + 0xf3, 0x79, 0x0e, 0xe7, 0xf2, 0xc1, 0x8a, 0x4f, 0x06, 0xfe, 0xaf, 0x8c, 0x0a, 0xfc, 0x22, 0x98, + 0xd9, 0xa8, 0x96, 0x36, 0xf4, 0xd5, 0x9a, 0x5a, 0xf9, 0x61, 0x1c, 0xf6, 0x75, 0x16, 0x4c, 0x2d, + 0xd7, 0xd4, 0xc5, 0xca, 0xd2, 0x92, 0x52, 0x2d, 0xe6, 0xe5, 0xab, 0xc1, 0x55, 0x9a, 0xa2, 0x9e, + 0xab, 0x94, 0x95, 0xc6, 0x46, 0xb5, 0x74, 0xae, 0x54, 0x59, 0xc3, 0x7d, 0x44, 0x21, 0xe6, 0x22, + 0xaa, 0x09, 0xf8, 0xe3, 0x39, 0x00, 0x48, 0xd3, 0x3d, 0x4b, 0x9a, 0xbd, 0xae, 0xe8, 0xcf, 0x92, + 0x4e, 0x1a, 0xc2, 0x62, 0x22, 0xf4, 0xb7, 0x02, 0x26, 0x1d, 0xfa, 0x81, 0x2e, 0x97, 0x0c, 0x2a, + 0x87, 0x3c, 0xfa, 0xa5, 0xa9, 0xc1, 0xef, 0xf0, 0x7d, 0x49, 0xe6, 0x08, 0x91, 0x84, 0x25, 0x43, + 0x72, 0x79, 0x34, 0x40, 0xc2, 0x97, 0x67, 0xc0, 0x1c, 0xdf, 0x30, 0xaf, 0x11, 0xd8, 0x98, 0x12, + 0x6b, 0x04, 0xff, 0x33, 0x63, 0x64, 0x9d, 0xb9, 0x9d, 0x0e, 0xa7, 0xc0, 0xd7, 0x4c, 0x72, 0xfa, + 0xd2, 0xb7, 0x58, 0x8a, 0x19, 0x8f, 0x78, 0xcf, 0xe8, 0x20, 0x77, 0xd5, 0xea, 0x97, 0xdd, 0xa2, + 0x04, 0x1f, 0xcb, 0x81, 0x59, 0xee, 0x3e, 0x24, 0xf8, 0x4f, 0x19, 0x91, 0x3b, 0x4e, 0x98, 0x9b, + 0x96, 0x32, 0x07, 0xbd, 0x69, 0xe9, 0xcc, 0x4f, 0x64, 0xc0, 0x04, 0x4d, 0xc4, 0x0c, 0xae, 0x55, + 0x3d, 0x5b, 0xe0, 0x28, 0x98, 0x5e, 0x51, 0xf4, 0x86, 0xa6, 0x97, 0x54, 0x5d, 0x59, 0x2a, 0x66, + 0xe4, 0x13, 0xe0, 0x58, 0x5d, 0x51, 0xb5, 0x9a, 0xc7, 0xcf, 0xba, 0x5a, 0xc3, 0x1d, 0x21, 0x61, + 0xb3, 0x07, 0xc3, 0x9a, 0xb2, 0xb4, 0xa2, 0x34, 0x16, 0x4b, 0x9a, 0x52, 0x94, 0xbc, 0x7f, 0xab, + 0x35, 0x5d, 0xd1, 0x1a, 0x4b, 0x95, 0x92, 0x7a, 0x7f, 0x31, 0xe7, 0xfd, 0xab, 0xe9, 0x6a, 0x49, + 0x57, 0x56, 0x2a, 0x65, 0x7c, 0xc3, 0xaf, 0xa7, 0x01, 0x79, 0x6f, 0x30, 0x55, 0xd6, 0xeb, 0xfa, + 0xfd, 0xc5, 0x42, 0x72, 0x2f, 0xbe, 0xde, 0xc6, 0x8d, 0xd9, 0x8b, 0x2f, 0xae, 0xfa, 0x31, 0x5c, + 0x05, 0x25, 0x81, 0x22, 0xa1, 0x40, 0xb9, 0xdc, 0x41, 0x8e, 0x89, 0xac, 0x26, 0x82, 0x17, 0x45, + 0x42, 0xc4, 0xed, 0x8b, 0x57, 0x85, 0xc7, 0x08, 0xc6, 0xf2, 0x24, 0x2f, 0x3d, 0x46, 0x7b, 0x6e, + 0x9f, 0xd1, 0xfe, 0xa9, 0xa4, 0x6e, 0x7c, 0xbd, 0xe4, 0x8e, 0x04, 0xb2, 0x8f, 0x27, 0x71, 0xe3, + 0x1b, 0x40, 0xc1, 0x58, 0x22, 0x3f, 0x46, 0x8c, 0xe9, 0x45, 0x09, 0x3e, 0x3a, 0x05, 0x8a, 0x84, + 0x50, 0xc6, 0x37, 0xea, 0x17, 0xe9, 0xa5, 0x54, 0x8d, 0x04, 0xa1, 0x9e, 0xfc, 0xa3, 0xb8, 0x59, + 0xfe, 0x28, 0x2e, 0xb7, 0xf4, 0x26, 0xf5, 0xee, 0x67, 0x27, 0x55, 0x3f, 0xc6, 0x11, 0x2a, 0xfa, + 0x4a, 0xa4, 0xf4, 0xd4, 0x2f, 0xb6, 0xfa, 0xf1, 0x5c, 0x9c, 0x42, 0xaf, 0x46, 0x52, 0x44, 0x91, + 0x89, 0xbf, 0x1f, 0x2a, 0xa9, 0x57, 0x2c, 0xe7, 0x88, 0x16, 0x73, 0x69, 0x52, 0x7a, 0x5e, 0xb1, + 0x83, 0x28, 0x48, 0x1f, 0x85, 0xef, 0x65, 0x41, 0x4e, 0xb3, 0x1d, 0x77, 0x54, 0x18, 0x24, 0xdd, + 0xc9, 0x63, 0x38, 0xa0, 0x45, 0xcf, 0x9c, 0xd2, 0xdb, 0xc9, 0x8b, 0xaf, 0x7f, 0x0c, 0xd1, 0xb2, + 0x8e, 0x82, 0x39, 0x42, 0x49, 0x10, 0xbb, 0xfc, 0xbb, 0x59, 0xd2, 0x5f, 0xdd, 0x27, 0x8a, 0xc8, + 0x19, 0x30, 0xc3, 0x1c, 0x9d, 0x0e, 0xee, 0xd1, 0x64, 0xd3, 0xe0, 0xaf, 0xb3, 0xb8, 0x2c, 0xf1, + 0xb8, 0xf4, 0x9b, 0x37, 0x06, 0xe1, 0xbf, 0x47, 0xd5, 0x33, 0x25, 0x09, 0xbc, 0x15, 0x53, 0x79, + 0xfa, 0x88, 0xbc, 0x54, 0x02, 0x05, 0xea, 0xc9, 0x34, 0x52, 0x04, 0x92, 0x6a, 0x46, 0xc0, 0x04, + 0x31, 0x8f, 0x27, 0x69, 0xd4, 0x9a, 0x11, 0x5f, 0x7f, 0xfa, 0x38, 0xfc, 0x2b, 0x75, 0xd1, 0x2b, + 0xed, 0x19, 0x66, 0xdb, 0xb8, 0xd0, 0x4e, 0x10, 0xf0, 0xf2, 0xa3, 0x09, 0x0f, 0x25, 0x05, 0x4d, + 0xe5, 0xea, 0x8b, 0xe0, 0xf8, 0xb3, 0xc1, 0x94, 0x13, 0x2c, 0xac, 0xf9, 0x67, 0xb6, 0x7b, 0xdc, + 0x23, 0xe9, 0x77, 0x35, 0xcc, 0x99, 0xe8, 0x04, 0x92, 0x10, 0x3d, 0x63, 0x39, 0x31, 0x31, 0x5d, + 0x6a, 0xb5, 0x96, 0x91, 0xe1, 0xee, 0x3a, 0xa8, 0x95, 0x68, 0x88, 0xe0, 0x59, 0x34, 0xc5, 0x72, + 0x82, 0x0b, 0x53, 0xb5, 0xc6, 0xa3, 0xf3, 0x83, 0x03, 0x7a, 0x03, 0x9f, 0x96, 0x91, 0x74, 0x49, + 0x6f, 0x0f, 0x20, 0xa9, 0x71, 0x90, 0x3c, 0x6f, 0x38, 0x22, 0xd2, 0x07, 0xe4, 0x97, 0x24, 0x30, + 0x47, 0xec, 0x84, 0x51, 0x63, 0xf2, 0xbb, 0x09, 0x3d, 0x21, 0x98, 0xdb, 0x21, 0x58, 0x72, 0x46, + 0x02, 0x4b, 0x12, 0xbf, 0x09, 0x31, 0x3a, 0xd2, 0x47, 0xe6, 0xb3, 0x05, 0x00, 0x18, 0x6f, 0xb6, + 0x8f, 0x16, 0xc2, 0x90, 0x51, 0xf0, 0x1d, 0x74, 0xfe, 0xa1, 0x71, 0xb1, 0x48, 0x19, 0x4f, 0xb5, + 0x60, 0x5b, 0x85, 0x4f, 0x14, 0x1a, 0x55, 0x3e, 0x97, 0xd0, 0xe6, 0xa5, 0xbe, 0x64, 0x03, 0x07, + 0xf7, 0x21, 0x7b, 0xb9, 0xc7, 0x13, 0x18, 0xbf, 0x83, 0x48, 0x49, 0x86, 0xda, 0xda, 0x10, 0x73, + 0xc9, 0x79, 0x70, 0x5c, 0x55, 0x4a, 0x4b, 0xb5, 0xea, 0xda, 0xfd, 0xec, 0x35, 0x02, 0x45, 0x89, + 0x9d, 0x9c, 0xa4, 0x02, 0xdb, 0x1b, 0x13, 0xf6, 0x81, 0x3c, 0xaf, 0xe2, 0x66, 0x2b, 0xcc, 0x74, + 0x7e, 0x70, 0xaf, 0x26, 0x50, 0xec, 0x61, 0xa2, 0xf0, 0x62, 0x56, 0x8d, 0x7e, 0x5a, 0x02, 0xc5, + 0xf0, 0xd6, 0x59, 0x7a, 0x27, 0x4c, 0x8d, 0x77, 0x76, 0xeb, 0x90, 0x5d, 0x94, 0xd0, 0xd9, 0xcd, + 0x4f, 0x90, 0x6f, 0x02, 0x73, 0xcd, 0x6d, 0xd4, 0xbc, 0x58, 0xb1, 0xfc, 0xdd, 0x61, 0xb2, 0x95, + 0xd8, 0x93, 0xca, 0x03, 0x73, 0x1f, 0x0f, 0x0c, 0x3f, 0x89, 0xe6, 0x06, 0x69, 0x96, 0xa8, 0x08, + 0x5c, 0xfe, 0x30, 0xc0, 0xa5, 0xca, 0xe1, 0x72, 0xe7, 0x50, 0xa5, 0x26, 0x83, 0xa5, 0x3a, 0x04, + 0x2c, 0x10, 0x9c, 0xac, 0xd5, 0xf5, 0x4a, 0xad, 0xda, 0xd8, 0xd0, 0x94, 0xa5, 0xc6, 0xa2, 0x0f, + 0x8e, 0x56, 0x94, 0xe0, 0x37, 0xb2, 0x60, 0x82, 0x90, 0xd5, 0xed, 0xb9, 0x25, 0x96, 0x0d, 0xeb, + 0x94, 0xd9, 0x17, 0xd6, 0x09, 0x3e, 0x2a, 0x7c, 0x66, 0x3f, 0x60, 0x04, 0xad, 0x27, 0xa2, 0x9f, + 0x7a, 0x2e, 0x98, 0x20, 0x20, 0xfb, 0x4e, 0x23, 0xa7, 0x22, 0x7a, 0x29, 0x5a, 0x8c, 0xea, 0x67, + 0x17, 0x3c, 0xbf, 0x3f, 0x80, 0x8c, 0xb1, 0x4c, 0x10, 0x27, 0x56, 0xcd, 0xae, 0x6b, 0x3b, 0x57, + 0xe0, 0x9b, 0x32, 0x60, 0xe2, 0x1c, 0x72, 0xba, 0xa6, 0x6d, 0xed, 0xdb, 0x2c, 0x3d, 0x0d, 0xa6, + 0x3b, 0x0e, 0xda, 0x33, 0xed, 0xdd, 0x6e, 0x38, 0x31, 0x67, 0x93, 0x64, 0x08, 0x26, 0x8d, 0x5d, + 0x77, 0xdb, 0x76, 0xc2, 0xf3, 0xf1, 0xfe, 0xbb, 0x7c, 0x0a, 0x00, 0xf2, 0x5c, 0x35, 0x76, 0x10, + 0xdd, 0x02, 0x66, 0x52, 0x64, 0x19, 0xe4, 0x5c, 0x73, 0x07, 0xd1, 0xf0, 0x76, 0xf8, 0x59, 0x9e, + 0x07, 0x13, 0x38, 0x18, 0x15, 0x0d, 0xfa, 0x25, 0xa9, 0xfe, 0x2b, 0xfc, 0xaf, 0x12, 0x98, 0x5e, + 0x41, 0x2e, 0x25, 0xb5, 0xcb, 0x46, 0x99, 0x89, 0x09, 0x01, 0xed, 0x75, 0xaf, 0x6d, 0xa3, 0xeb, + 0xff, 0x16, 0xac, 0xbe, 0xf1, 0x89, 0x61, 0xa8, 0x3d, 0x89, 0x89, 0xa6, 0x09, 0x1f, 0xcb, 0x8a, + 0x9e, 0x6b, 0xa4, 0xcc, 0x5c, 0x60, 0x08, 0x8c, 0x94, 0xad, 0xc9, 0x3d, 0x9a, 0x63, 0x5f, 0xe8, + 0x53, 0xb6, 0x24, 0x5a, 0x8c, 0x1a, 0xe4, 0x16, 0x3c, 0x11, 0x39, 0x98, 0x92, 0xf4, 0xc5, 0xeb, + 0xdb, 0x12, 0x98, 0xd6, 0xb6, 0xed, 0x4b, 0x94, 0x00, 0xf6, 0xe2, 0xd3, 0x38, 0xa8, 0xae, 0x03, + 0x53, 0x7b, 0x3d, 0x30, 0x85, 0x09, 0xd1, 0xf7, 0x73, 0xc2, 0x07, 0xa5, 0xa4, 0x30, 0x31, 0xc4, + 0x8d, 0xfc, 0xf6, 0x4c, 0xf9, 0x07, 0xc1, 0x04, 0xa5, 0x9a, 0xce, 0x9f, 0xe3, 0x01, 0xf6, 0x33, + 0xb3, 0x0d, 0xcc, 0xf1, 0x0d, 0x4c, 0x86, 0x7c, 0x74, 0xe3, 0xc6, 0x10, 0x60, 0x3c, 0x8b, 0xcf, + 0xc3, 0xfb, 0xc0, 0x97, 0x47, 0x00, 0x3c, 0xfc, 0x4e, 0x46, 0x74, 0x95, 0x29, 0xe0, 0x40, 0x40, + 0xc1, 0x81, 0x02, 0xb6, 0x0f, 0x2c, 0x2e, 0x7d, 0x7e, 0xbe, 0x36, 0x07, 0x66, 0x96, 0xcc, 0xcd, + 0xcd, 0xa0, 0xd7, 0x7b, 0x65, 0x46, 0x8c, 0xa5, 0xd1, 0x3b, 0x94, 0x9e, 0xd1, 0xb2, 0xeb, 0x38, + 0xc8, 0xf2, 0x1b, 0x45, 0xd5, 0xa9, 0x27, 0x55, 0xbe, 0x19, 0x1c, 0xf5, 0x3b, 0x7a, 0x3f, 0x23, + 0x11, 0xcb, 0xde, 0x64, 0xf8, 0x2d, 0xe1, 0x2d, 0x0a, 0x9f, 0xa3, 0x6c, 0x93, 0x22, 0x14, 0xf0, + 0x2e, 0x30, 0xbb, 0x4d, 0x72, 0xe3, 0x79, 0x9c, 0xdf, 0x59, 0x9e, 0xec, 0x09, 0x8c, 0xb9, 0x8e, + 0xba, 0x5d, 0x63, 0x0b, 0xa9, 0x7c, 0xe6, 0x1e, 0xf5, 0x95, 0x92, 0xdc, 0x4e, 0x21, 0xb6, 0xdb, + 0x21, 0xd0, 0x92, 0xf4, 0xa5, 0xe3, 0x6b, 0x4f, 0x06, 0xb9, 0x65, 0xb3, 0x8d, 0xe0, 0xcf, 0x64, + 0xc1, 0x94, 0x8a, 0x9a, 0xb6, 0xd5, 0xf4, 0xde, 0x18, 0x7f, 0x85, 0x7f, 0x60, 0x75, 0xe7, 0x5e, + 0x1e, 0x9a, 0x5b, 0xb8, 0x06, 0x79, 0xe5, 0x2c, 0x04, 0x65, 0x44, 0xe8, 0xcd, 0x23, 0x01, 0x6f, + 0xca, 0x1c, 0x6f, 0xce, 0x8a, 0x17, 0x35, 0x86, 0xb8, 0xdb, 0x9e, 0x1d, 0xb9, 0xb9, 0xd9, 0xb6, + 0x0d, 0x6e, 0x25, 0xa3, 0xd7, 0xb6, 0xb9, 0x05, 0x14, 0x7d, 0xb7, 0x73, 0xdb, 0xad, 0x9b, 0x96, + 0x15, 0x9c, 0x63, 0xdc, 0x97, 0xce, 0x6f, 0xc2, 0xc5, 0x86, 0x82, 0xc0, 0x6d, 0xa7, 0xb5, 0x47, + 0x48, 0xf6, 0x4d, 0x60, 0xee, 0xc2, 0x15, 0x17, 0x75, 0x69, 0x2e, 0x5a, 0x6d, 0x4e, 0xed, 0x49, + 0x85, 0xef, 0x11, 0x0a, 0x19, 0x11, 0x53, 0x61, 0x32, 0x56, 0xaf, 0x0e, 0x61, 0xce, 0x1f, 0x07, + 0xc5, 0x6a, 0x6d, 0x49, 0xc1, 0xee, 0x33, 0xbe, 0x3f, 0xc2, 0x16, 0x7c, 0x95, 0x04, 0x66, 0xf0, + 0x5e, 0xb4, 0x8f, 0xc2, 0x0d, 0x02, 0xfb, 0xdf, 0xf0, 0xcb, 0xc2, 0xae, 0x35, 0xb8, 0xc9, 0x6c, + 0x05, 0xd1, 0x8c, 0xde, 0x34, 0xdb, 0xbd, 0x8c, 0xce, 0xab, 0x3d, 0xa9, 0x7d, 0x00, 0x91, 0xfa, + 0x02, 0xf2, 0x3b, 0x42, 0xfe, 0x35, 0x83, 0xa8, 0x3b, 0x2c, 0x54, 0x3e, 0x20, 0x81, 0x69, 0x6f, + 0xfe, 0xe7, 0x83, 0x52, 0xe3, 0x40, 0xb1, 0xad, 0xf6, 0x95, 0x70, 0x8e, 0xeb, 0xbf, 0x26, 0x52, + 0x92, 0xbf, 0x10, 0x9e, 0x86, 0x61, 0x16, 0x31, 0xb4, 0x8c, 0x09, 0xbf, 0xf7, 0x0b, 0x4d, 0xce, + 0x06, 0x10, 0x77, 0x58, 0xf0, 0xfd, 0x66, 0x1e, 0x14, 0x36, 0x3a, 0x18, 0xb9, 0xaf, 0x67, 0x45, + 0x82, 0x24, 0xef, 0xf3, 0xad, 0xf6, 0xcc, 0xac, 0xb6, 0xdd, 0x34, 0xda, 0xf5, 0xf0, 0x90, 0x4a, + 0x98, 0x20, 0xdf, 0x49, 0xdd, 0xad, 0xc8, 0x09, 0x9f, 0x9b, 0x62, 0xe3, 0x07, 0x63, 0x1e, 0x31, + 0x7e, 0xec, 0xb7, 0x82, 0x63, 0x2d, 0xb3, 0x6b, 0x5c, 0x68, 0x23, 0xc5, 0x6a, 0x3a, 0x57, 0x08, + 0x3b, 0x88, 0x6b, 0xca, 0xfe, 0x0f, 0xf2, 0xdd, 0x20, 0xdf, 0x75, 0xaf, 0xb4, 0xc9, 0xc4, 0x8f, + 0x75, 0x7b, 0x8f, 0xac, 0x4a, 0xf3, 0xb2, 0xab, 0xe4, 0x2f, 0xf6, 0xee, 0xc0, 0x09, 0xc1, 0x7b, + 0x10, 0x6f, 0x07, 0x05, 0xdb, 0x31, 0xb7, 0x4c, 0x12, 0x96, 0x7f, 0x6e, 0x5f, 0x58, 0x2c, 0x62, + 0x0a, 0xd4, 0x70, 0x16, 0x95, 0x66, 0x85, 0xef, 0x17, 0xbe, 0x8c, 0x1f, 0xd3, 0x48, 0xc0, 0x19, + 0xcf, 0x5d, 0x88, 0x0f, 0x0b, 0x45, 0xc7, 0x88, 0x26, 0x2b, 0xfd, 0x41, 0xf8, 0xf3, 0x59, 0x30, + 0xb9, 0x64, 0x5f, 0xb2, 0xb0, 0xc0, 0xde, 0x21, 0x66, 0xb3, 0xf6, 0x39, 0x3f, 0xc5, 0xdf, 0xe0, + 0x14, 0xeb, 0x2c, 0x8d, 0x5b, 0xeb, 0x57, 0x19, 0x01, 0x43, 0xac, 0x06, 0x08, 0xde, 0xb8, 0x13, + 0x57, 0x4f, 0xfa, 0x7c, 0xfd, 0x13, 0x09, 0xe4, 0x96, 0x1c, 0xbb, 0x03, 0xdf, 0x9e, 0x49, 0xb0, + 0x8f, 0xdc, 0x72, 0xec, 0x8e, 0x8e, 0x2f, 0xd3, 0x08, 0x3d, 0xc4, 0xd9, 0x34, 0xf9, 0x0e, 0x30, + 0xd9, 0xb1, 0xbb, 0xa6, 0xeb, 0x4f, 0x07, 0xe6, 0x6e, 0x7b, 0x52, 0x5f, 0xad, 0xac, 0xd3, 0x4c, + 0x6a, 0x90, 0xdd, 0xeb, 0x7d, 0x31, 0x0b, 0x3d, 0xbe, 0x78, 0x6c, 0xf4, 0x2f, 0x14, 0xe9, 0x49, + 0x85, 0xaf, 0x66, 0x91, 0x7c, 0x1e, 0x8f, 0xe4, 0x53, 0xfa, 0x70, 0xd8, 0xb1, 0x3b, 0x23, 0xd9, + 0xf9, 0x79, 0x5d, 0x80, 0xea, 0xf3, 0x39, 0x54, 0x6f, 0x11, 0xaa, 0x33, 0x7d, 0x44, 0xdf, 0x9f, + 0x03, 0x00, 0x9b, 0x0b, 0x1b, 0xde, 0x44, 0x46, 0xcc, 0x56, 0xfa, 0xa9, 0x1c, 0xc3, 0xcb, 0x12, + 0xcf, 0xcb, 0xa7, 0x45, 0x58, 0x23, 0xb8, 0xf8, 0x08, 0x8e, 0x96, 0x40, 0x7e, 0xd7, 0xfb, 0x4c, + 0x39, 0x2a, 0x58, 0x04, 0x7e, 0x55, 0xc9, 0x9f, 0xf0, 0x8f, 0x33, 0x20, 0x8f, 0x13, 0xe4, 0x53, + 0x00, 0xe0, 0x01, 0x9a, 0x9c, 0x35, 0xc8, 0xe0, 0xa1, 0x98, 0x49, 0xc1, 0xd2, 0x6a, 0xb6, 0xe8, + 0x67, 0x62, 0xfa, 0x86, 0x09, 0xde, 0xdf, 0x78, 0xd8, 0xc6, 0x65, 0xd1, 0x81, 0x9c, 0x49, 0xf1, + 0xfe, 0xc6, 0x6f, 0x6b, 0x68, 0x93, 0xc4, 0x54, 0xcd, 0xa9, 0x61, 0x42, 0xf0, 0xf7, 0x5a, 0x70, + 0x6f, 0x86, 0xff, 0x37, 0x4e, 0xf1, 0x26, 0xb5, 0x58, 0x2c, 0x17, 0xc3, 0x2a, 0x0a, 0x38, 0x53, + 0x6f, 0x32, 0x7c, 0x63, 0x20, 0x36, 0x4b, 0x9c, 0xd8, 0x3c, 0x23, 0x01, 0x7b, 0xd3, 0x17, 0x9e, + 0xaf, 0xe6, 0xc1, 0x54, 0xd5, 0x6e, 0x51, 0xd9, 0x61, 0x26, 0x7e, 0x1f, 0xcf, 0x27, 0x9a, 0xf8, + 0x05, 0x65, 0x44, 0x08, 0xc8, 0xbd, 0xbc, 0x80, 0x88, 0x95, 0xc0, 0xca, 0x87, 0xbc, 0x08, 0x0a, + 0x58, 0x7a, 0xf7, 0xdf, 0x87, 0x12, 0x57, 0x04, 0x66, 0xad, 0x4a, 0xff, 0xfc, 0x37, 0x27, 0x63, + 0xff, 0x09, 0xe4, 0x71, 0x03, 0x63, 0xbc, 0x82, 0xf9, 0x86, 0x66, 0xe3, 0x1b, 0x2a, 0xc5, 0x37, + 0x34, 0xd7, 0xdb, 0xd0, 0x24, 0xf3, 0xf9, 0x28, 0x09, 0x49, 0x5f, 0xc6, 0xff, 0xc7, 0x04, 0x00, + 0x55, 0x63, 0xcf, 0xdc, 0x22, 0x5b, 0x76, 0x7f, 0xee, 0xcf, 0x63, 0xe8, 0xe6, 0xda, 0x7f, 0x66, + 0x06, 0xc2, 0x3b, 0xc0, 0x04, 0x1d, 0xf7, 0x68, 0x43, 0xae, 0xe7, 0x1a, 0x12, 0x96, 0x42, 0xcc, + 0xcb, 0xcb, 0xae, 0xea, 0xe7, 0xe7, 0x6e, 0x88, 0xcb, 0xf6, 0xdc, 0x10, 0xd7, 0x77, 0x77, 0x20, + 0xea, 0xde, 0x38, 0xf8, 0x1e, 0xe1, 0x1b, 0x3e, 0x18, 0x7a, 0x98, 0x16, 0x45, 0xa8, 0xe0, 0xed, + 0x60, 0xc2, 0x0e, 0x76, 0x19, 0xa5, 0xc8, 0xf5, 0xac, 0x8a, 0xb5, 0x69, 0xab, 0x7e, 0x4e, 0xc1, + 0xbb, 0x3b, 0x84, 0xe8, 0x18, 0x8b, 0xef, 0xfc, 0xc9, 0x15, 0x3f, 0x3e, 0x8d, 0xd7, 0x8e, 0xf3, + 0xa6, 0xbb, 0xbd, 0x66, 0x5a, 0x17, 0xbb, 0xf0, 0x3f, 0x88, 0x59, 0x90, 0x0c, 0xfe, 0xd9, 0x64, + 0xf8, 0xf3, 0xe1, 0x00, 0x34, 0x1e, 0xb5, 0xbb, 0xa3, 0x4a, 0xe9, 0x4f, 0x6d, 0x04, 0x80, 0x77, + 0x82, 0x02, 0x21, 0x94, 0x76, 0xa2, 0x67, 0x22, 0xf1, 0x0b, 0x4a, 0x52, 0xe9, 0x1f, 0xf0, 0xb1, + 0x00, 0xc7, 0x73, 0x1c, 0x8e, 0x8b, 0x07, 0xa2, 0x2c, 0x75, 0x48, 0xcf, 0x3c, 0x13, 0x4c, 0x50, + 0x4e, 0xcb, 0x73, 0xac, 0x16, 0x17, 0x8f, 0xc8, 0x00, 0x14, 0xd6, 0xed, 0x3d, 0xa4, 0xdb, 0xc5, + 0x8c, 0xf7, 0xec, 0xd1, 0xa7, 0xdb, 0xc5, 0x2c, 0x7c, 0xfd, 0x24, 0x98, 0x0c, 0x02, 0x85, 0x7c, + 0x3e, 0x0b, 0x8a, 0xe1, 0x5d, 0xee, 0xa4, 0x45, 0xe2, 0x2e, 0x7b, 0xbf, 0x24, 0xbc, 0xef, 0x1e, + 0x04, 0xf0, 0xe8, 0xad, 0x4c, 0xf0, 0xb2, 0xea, 0xb7, 0x09, 0xed, 0xc3, 0x8b, 0xd6, 0x92, 0xbe, + 0xaa, 0x7d, 0x2a, 0x0b, 0xf2, 0xe5, 0xb6, 0x6d, 0xa1, 0x44, 0x77, 0x55, 0xf7, 0xdf, 0x51, 0x80, + 0x2f, 0xce, 0x8a, 0xda, 0x1a, 0x21, 0x03, 0xbc, 0xba, 0x05, 0x79, 0x2b, 0x36, 0x48, 0xc5, 0x16, + 0x9d, 0x3e, 0x43, 0xbf, 0x91, 0x05, 0x53, 0x24, 0xe4, 0x46, 0xa9, 0xdd, 0x86, 0x4f, 0x0a, 0x99, + 0xda, 0x27, 0xd8, 0x0a, 0xfc, 0x1d, 0x61, 0xbf, 0xe9, 0xa0, 0x55, 0x41, 0xd9, 0x09, 0x62, 0x8f, + 0x24, 0x73, 0xe3, 0x15, 0xdb, 0x13, 0x1b, 0x48, 0xd0, 0x18, 0xe2, 0x54, 0x65, 0x3d, 0x03, 0xc0, + 0xba, 0x58, 0x77, 0xd0, 0x9e, 0x89, 0x2e, 0xc1, 0x6b, 0x43, 0x66, 0xef, 0x8f, 0x27, 0xf0, 0x16, + 0xe1, 0x45, 0x1c, 0xa6, 0xc8, 0xc8, 0x2d, 0xa9, 0xe9, 0x76, 0x98, 0x89, 0xf6, 0xe2, 0xbd, 0x41, + 0x1e, 0x98, 0x62, 0x54, 0x36, 0xbb, 0xe0, 0x9a, 0x4d, 0x34, 0x15, 0xe9, 0x33, 0xf6, 0xc1, 0x09, + 0x30, 0xb9, 0x61, 0x75, 0x3b, 0x6d, 0xa3, 0xbb, 0x0d, 0xbf, 0x2b, 0x05, 0x57, 0x45, 0x3f, 0x9b, + 0x3b, 0xb6, 0xfc, 0x63, 0xbb, 0xc8, 0xf1, 0xdd, 0x70, 0xc8, 0x4b, 0xff, 0xbb, 0x48, 0xe1, 0xfb, + 0x25, 0xd1, 0x49, 0xaa, 0x5f, 0x69, 0xfc, 0x1d, 0xca, 0x15, 0x30, 0xd9, 0x31, 0x9b, 0xee, 0xae, + 0x13, 0xdc, 0x6c, 0xf9, 0x74, 0xb1, 0x52, 0xea, 0xe4, 0x2f, 0x35, 0xf8, 0x1d, 0x1a, 0x60, 0x82, + 0x26, 0xee, 0xdb, 0x16, 0xda, 0x7f, 0x0c, 0xef, 0x24, 0x28, 0x18, 0x8e, 0x6b, 0x76, 0xfd, 0x9b, + 0x83, 0xe9, 0x9b, 0xd7, 0x5d, 0x92, 0xa7, 0x0d, 0xa7, 0xed, 0x07, 0x38, 0x08, 0x12, 0xe0, 0x07, + 0x84, 0xe6, 0x8f, 0xf1, 0x2d, 0x4f, 0x06, 0xf9, 0x7d, 0x43, 0xac, 0x35, 0x5f, 0x0d, 0xae, 0x52, + 0x4b, 0xba, 0xd2, 0x20, 0xe7, 0xe1, 0x83, 0xa3, 0xef, 0x2d, 0xf8, 0x5d, 0x76, 0xfd, 0x8e, 0x1f, + 0x23, 0x28, 0x17, 0xc3, 0x31, 0x22, 0x48, 0x88, 0x19, 0x23, 0x7e, 0x53, 0x78, 0x77, 0x27, 0x60, + 0xc9, 0x80, 0xb5, 0xbc, 0xb8, 0x0b, 0x44, 0x3e, 0x28, 0xb4, 0x53, 0x33, 0xa8, 0xa6, 0x43, 0x64, + 0xff, 0xaf, 0x4f, 0x80, 0x89, 0x15, 0xa3, 0xdd, 0x46, 0xce, 0x15, 0x6f, 0x68, 0x29, 0xfa, 0x14, + 0xae, 0x1b, 0x96, 0xb9, 0xe9, 0xcd, 0xef, 0x63, 0x3b, 0xbd, 0xf7, 0x08, 0x07, 0xa7, 0xa4, 0x75, + 0x2c, 0xf4, 0x96, 0x1f, 0xc1, 0xf3, 0xb3, 0x20, 0x67, 0x5a, 0x9b, 0x36, 0xed, 0xfa, 0x7a, 0x57, + 0xd1, 0xfd, 0x9f, 0xf1, 0x14, 0x04, 0x67, 0x14, 0x8c, 0x4f, 0x29, 0x48, 0x45, 0xfa, 0x3d, 0xe0, + 0x6f, 0xe5, 0xc0, 0xac, 0x4f, 0x44, 0xc5, 0x6a, 0xa1, 0xcb, 0xec, 0x92, 0xca, 0xab, 0x72, 0xa2, + 0x67, 0x6d, 0x7a, 0xdb, 0x83, 0x8b, 0x8a, 0x60, 0xa9, 0x0e, 0x40, 0xd3, 0x70, 0xd1, 0x96, 0xed, + 0x98, 0x41, 0xbf, 0xf6, 0xac, 0x24, 0xa5, 0x95, 0xc9, 0xdf, 0x57, 0x54, 0xa6, 0x1c, 0xf9, 0x6e, + 0x30, 0x8d, 0x82, 0xe3, 0xb4, 0xfe, 0x92, 0x4b, 0x2c, 0x5e, 0x6c, 0x7e, 0xf8, 0x67, 0x42, 0x47, + 0x7a, 0x44, 0x9a, 0x99, 0x0c, 0xb3, 0xc6, 0x70, 0x3a, 0xb4, 0x51, 0x5d, 0x2f, 0xa9, 0xda, 0x6a, + 0x69, 0x6d, 0xad, 0x52, 0x5d, 0x09, 0x62, 0x43, 0xc8, 0x60, 0x6e, 0xa9, 0x76, 0xbe, 0xca, 0x04, + 0xef, 0xc8, 0xc1, 0x3a, 0x98, 0xf4, 0xf9, 0xd5, 0xcf, 0xd9, 0x91, 0xe5, 0x19, 0x75, 0x76, 0x64, + 0x92, 0x3c, 0x23, 0xcb, 0x6c, 0x06, 0x0e, 0x33, 0xf8, 0x19, 0xfe, 0x91, 0x01, 0xf2, 0x78, 0x6d, + 0x1c, 0xbe, 0x13, 0x5f, 0x2d, 0xdc, 0x69, 0x1b, 0x4d, 0x04, 0x77, 0x12, 0x58, 0xd5, 0x7e, 0xb4, + 0xf4, 0xec, 0xbe, 0x68, 0xe9, 0xf8, 0x91, 0x5a, 0x6f, 0xc7, 0xfb, 0xad, 0xc7, 0xab, 0x24, 0x0b, + 0x7f, 0xfa, 0x25, 0x76, 0x97, 0x84, 0x2c, 0xe3, 0x53, 0x32, 0x23, 0x44, 0x32, 0x9a, 0xa6, 0x64, + 0x16, 0xa5, 0xd8, 0x7e, 0x4a, 0x1c, 0x45, 0xe9, 0x6b, 0xfc, 0x97, 0x72, 0x20, 0xaf, 0x75, 0xda, + 0xa6, 0x0b, 0x5f, 0x93, 0x1d, 0x09, 0x66, 0x24, 0xc2, 0xbd, 0x34, 0x30, 0xc2, 0x7d, 0xb8, 0x0b, + 0x9a, 0x13, 0xd8, 0x05, 0xd5, 0xd1, 0x65, 0x97, 0xdf, 0x05, 0xbd, 0x83, 0xc6, 0x77, 0x22, 0x7b, + 0xa8, 0x4f, 0xe9, 0xc3, 0x52, 0xdc, 0xac, 0x3e, 0x81, 0xc3, 0xce, 0x3c, 0x93, 0xc6, 0x2f, 0x02, + 0xa0, 0xb0, 0x58, 0xd3, 0xf5, 0xda, 0x7a, 0xf1, 0x08, 0x0e, 0x7c, 0x51, 0xab, 0x17, 0x33, 0xf2, + 0x14, 0xc8, 0x57, 0xaa, 0x55, 0x45, 0x2d, 0x66, 0x71, 0x44, 0xa5, 0x8a, 0xbe, 0xa6, 0x14, 0x25, + 0x3e, 0xdc, 0x71, 0xac, 0x19, 0xcd, 0xd7, 0x9d, 0xa6, 0x78, 0x89, 0x19, 0xd4, 0xd1, 0xf4, 0xa4, + 0x2f, 0x5c, 0xff, 0x45, 0x02, 0xf9, 0x75, 0xe4, 0x6c, 0x21, 0xf8, 0x63, 0x09, 0x36, 0xeb, 0x36, + 0x4d, 0xa7, 0x4b, 0xe2, 0x4f, 0x85, 0x9b, 0x75, 0x6c, 0x9a, 0x7c, 0x23, 0x98, 0xed, 0xa2, 0xa6, + 0x6d, 0xb5, 0xfc, 0x4c, 0xa4, 0x3f, 0xe2, 0x13, 0xe1, 0x43, 0x09, 0x21, 0xc3, 0x84, 0x8e, 0x64, + 0xc7, 0x2d, 0x09, 0x30, 0xfd, 0x6a, 0x4d, 0x1f, 0x98, 0x6f, 0x49, 0xde, 0x4f, 0x9d, 0x2b, 0xf0, + 0x21, 0xe1, 0x5d, 0xd4, 0x5b, 0x41, 0x01, 0x8b, 0xa9, 0x3f, 0x46, 0xf7, 0xef, 0x8f, 0x69, 0x1e, + 0x79, 0x11, 0x1c, 0xeb, 0xa2, 0x36, 0x6a, 0xba, 0xa8, 0xe5, 0xa9, 0xae, 0x3a, 0xb0, 0x53, 0xd8, + 0x9f, 0x1d, 0xfe, 0x29, 0x0b, 0xe0, 0x5d, 0x3c, 0x80, 0x37, 0xf5, 0x61, 0xa5, 0xd7, 0xa0, 0x68, + 0x5b, 0xd9, 0x6b, 0x86, 0xd6, 0xb6, 0x83, 0xc5, 0x6d, 0xff, 0xdd, 0xfb, 0xb6, 0xed, 0xee, 0xb4, + 0xf1, 0x37, 0xea, 0xc1, 0xef, 0xbf, 0xcb, 0x0b, 0x60, 0xc2, 0xb0, 0xae, 0xe0, 0x4f, 0xb9, 0x98, + 0x56, 0xfb, 0x99, 0xe0, 0xeb, 0x03, 0xe4, 0xef, 0xe1, 0x90, 0x7f, 0x9a, 0x18, 0xb9, 0xe9, 0x03, + 0xff, 0x93, 0x13, 0x20, 0x5f, 0x37, 0xba, 0x2e, 0x82, 0xff, 0xb7, 0x24, 0x8a, 0xfc, 0x4d, 0x60, + 0x6e, 0xd3, 0x6e, 0xee, 0x76, 0x51, 0x8b, 0x57, 0xca, 0x9e, 0xd4, 0x51, 0x60, 0x2e, 0xdf, 0x02, + 0x8a, 0x7e, 0x22, 0x2d, 0xd6, 0xdf, 0x4e, 0xdf, 0x97, 0x8e, 0x83, 0xe9, 0x76, 0xeb, 0x86, 0xe3, + 0xd6, 0x36, 0x71, 0x5a, 0x10, 0x4c, 0x97, 0x4d, 0xe4, 0xa0, 0x2f, 0xc4, 0x40, 0x3f, 0x11, 0x0d, + 0xfd, 0xa4, 0x00, 0xf4, 0x72, 0x09, 0x4c, 0x6e, 0x9a, 0x6d, 0x84, 0x7f, 0x98, 0xc2, 0x3f, 0xf4, + 0x1b, 0x93, 0x30, 0xef, 0x83, 0x31, 0x69, 0xd9, 0x6c, 0x23, 0x35, 0xf8, 0xcd, 0x9f, 0xc8, 0x80, + 0x70, 0x22, 0xb3, 0x46, 0xfc, 0x5b, 0x3d, 0xc3, 0xcb, 0x32, 0x76, 0x90, 0xbf, 0x88, 0x66, 0xd1, + 0xd3, 0x23, 0x2d, 0xc3, 0x35, 0x30, 0x18, 0x33, 0x2a, 0x7e, 0xe6, 0xfd, 0x3b, 0xa4, 0x5e, 0xff, + 0x8e, 0x97, 0x49, 0xc9, 0x7a, 0x44, 0x9f, 0xd8, 0x08, 0x8d, 0xba, 0xe0, 0x03, 0x44, 0x2c, 0xc5, + 0xe0, 0xdd, 0x03, 0xa6, 0x69, 0x38, 0xc8, 0xad, 0xb3, 0x1e, 0x15, 0x79, 0x95, 0x4f, 0xc4, 0xae, + 0x75, 0x5d, 0xcd, 0xd8, 0x41, 0xb8, 0xb2, 0xb2, 0xf7, 0x8d, 0xba, 0x4c, 0xed, 0x4b, 0x0f, 0xfb, + 0xdf, 0xfc, 0xa8, 0xfb, 0xdf, 0x7e, 0x6d, 0x4c, 0x5f, 0x0d, 0xdf, 0x90, 0x03, 0x52, 0x79, 0xd7, + 0x7d, 0x42, 0x77, 0xbf, 0xdf, 0x13, 0xf6, 0x57, 0xa1, 0xfd, 0x59, 0xe4, 0xdd, 0xd2, 0x63, 0xea, + 0x7d, 0x13, 0x4a, 0x89, 0x98, 0x5f, 0x4c, 0x54, 0xdb, 0xd2, 0x97, 0x91, 0xb7, 0x4b, 0x81, 0xc3, + 0xe3, 0x4b, 0x33, 0x07, 0x37, 0xcd, 0x21, 0xe9, 0x9f, 0x98, 0x9e, 0x21, 0x78, 0xf7, 0x3b, 0x9e, + 0x1c, 0x17, 0x7a, 0x0b, 0x6f, 0x93, 0x63, 0x56, 0xce, 0xa8, 0xe4, 0x05, 0xbe, 0x56, 0xd8, 0x0d, + 0x9c, 0xb0, 0x2d, 0xd6, 0x25, 0x30, 0x99, 0x4d, 0x25, 0x76, 0x7f, 0x60, 0x4c, 0xb5, 0xe9, 0x03, + 0xf6, 0xf7, 0xd1, 0x4b, 0x86, 0xc3, 0x20, 0x06, 0x1f, 0x16, 0xde, 0x56, 0x22, 0xcd, 0x1e, 0xb0, + 0x5e, 0x98, 0x8c, 0xdf, 0x62, 0x9b, 0x4e, 0xb1, 0x15, 0xa7, 0xcf, 0xf1, 0x6f, 0x4a, 0xa0, 0x40, + 0xb6, 0x12, 0xe1, 0x5b, 0x33, 0x09, 0x2e, 0x5e, 0x76, 0x79, 0x57, 0xc0, 0xe0, 0x3d, 0xc9, 0x9a, + 0x03, 0xe7, 0x32, 0x98, 0x4b, 0xe4, 0x32, 0xc8, 0x9f, 0xab, 0x14, 0xd0, 0x23, 0xd2, 0xc6, 0x94, + 0xa7, 0x93, 0x49, 0x34, 0xac, 0x2f, 0x41, 0xe9, 0xe3, 0xfd, 0xd3, 0x79, 0x30, 0x43, 0xaa, 0x3e, + 0x6f, 0xb6, 0xb6, 0x90, 0x0b, 0xdf, 0x9d, 0xfd, 0xfe, 0x41, 0x5d, 0xae, 0x82, 0x99, 0x4b, 0x98, + 0xec, 0x35, 0xe3, 0x8a, 0xbd, 0xeb, 0xd2, 0x95, 0x8b, 0x5b, 0x62, 0xd7, 0x3d, 0x48, 0x3b, 0x17, + 0xc8, 0x1f, 0x2a, 0xf7, 0xbf, 0xc7, 0x63, 0xb2, 0xe0, 0x4f, 0x1c, 0xb1, 0x0a, 0xd8, 0xc8, 0x62, + 0x93, 0xe4, 0x93, 0xa0, 0xb0, 0x67, 0xa2, 0x4b, 0x95, 0x16, 0xb5, 0x6e, 0xe9, 0x1b, 0xfc, 0x90, + 0xf0, 0xfe, 0x2b, 0x0b, 0x37, 0xa5, 0x25, 0x5d, 0x29, 0x14, 0xdb, 0x85, 0x1d, 0x48, 0xd6, 0x18, + 0xce, 0xf8, 0xf2, 0xf7, 0xf3, 0x25, 0xb9, 0xf7, 0x3d, 0xca, 0x70, 0x4e, 0x70, 0xf9, 0x3e, 0x61, + 0xc0, 0x88, 0xaf, 0xee, 0x13, 0x3b, 0xbc, 0x3f, 0xa0, 0xea, 0xf4, 0x39, 0xff, 0x46, 0x09, 0x4c, + 0x69, 0xc8, 0x5d, 0x36, 0x51, 0xbb, 0xd5, 0x85, 0xce, 0xc1, 0x4d, 0xa3, 0xb3, 0xa0, 0xb0, 0x89, + 0x0b, 0x1b, 0x74, 0xfe, 0x80, 0x66, 0x83, 0x6f, 0xc8, 0x8a, 0xee, 0xec, 0xd2, 0xd5, 0x37, 0x9f, + 0xda, 0x91, 0xc0, 0x24, 0xe6, 0x99, 0x1b, 0x5f, 0x73, 0xfa, 0x28, 0x3d, 0x2a, 0x81, 0x19, 0x7a, + 0xa1, 0x57, 0xa9, 0x6d, 0x6e, 0x59, 0x70, 0x77, 0x04, 0x1a, 0x22, 0x3f, 0x03, 0xe4, 0x0d, 0xaf, + 0x34, 0xea, 0xa4, 0x0f, 0xfb, 0x76, 0x9e, 0xb8, 0x3e, 0x95, 0x64, 0x4c, 0x10, 0xa3, 0x2f, 0x14, + 0x6c, 0x9f, 0xe6, 0x31, 0xc6, 0xe8, 0x1b, 0x58, 0x79, 0xfa, 0x88, 0x7d, 0x45, 0x02, 0xc7, 0x29, + 0x01, 0xe7, 0x90, 0xe3, 0x9a, 0x4d, 0xa3, 0x4d, 0x90, 0x7b, 0x79, 0x66, 0x14, 0xd0, 0xad, 0x82, + 0xd9, 0x3d, 0xb6, 0x58, 0x0a, 0xe1, 0x99, 0xbe, 0x10, 0x72, 0x04, 0xa8, 0xfc, 0x8f, 0x09, 0x62, + 0x9d, 0x71, 0x5c, 0xe5, 0xca, 0x1c, 0x63, 0xac, 0x33, 0x61, 0x22, 0xd2, 0x87, 0xf8, 0xd5, 0x39, + 0x12, 0xfe, 0x2f, 0xec, 0x3e, 0xff, 0x5c, 0x18, 0xdb, 0x0d, 0x30, 0x8d, 0xb1, 0x24, 0x3f, 0xd2, + 0x65, 0x88, 0x18, 0x21, 0x0e, 0xfa, 0x1d, 0x7a, 0xa7, 0x50, 0xf0, 0xaf, 0xca, 0x96, 0x03, 0xcf, + 0x03, 0x10, 0x7e, 0x62, 0x3b, 0xe9, 0x4c, 0x54, 0x27, 0x9d, 0x15, 0xeb, 0xa4, 0xdf, 0x22, 0x1c, + 0xbc, 0xa4, 0x3f, 0xd9, 0x07, 0x17, 0x0f, 0xb1, 0xb0, 0x15, 0x83, 0x6b, 0x4f, 0x5f, 0x2e, 0x5e, + 0x9f, 0xeb, 0xbd, 0xb9, 0xf9, 0xa3, 0x23, 0x99, 0x4f, 0xb1, 0xfd, 0x81, 0xd4, 0xd3, 0x1f, 0x1c, + 0xc0, 0x92, 0xbe, 0x19, 0x1c, 0x25, 0x55, 0x94, 0x03, 0xb2, 0xf2, 0x24, 0x34, 0x43, 0x4f, 0x32, + 0x7c, 0x7c, 0x08, 0x21, 0x18, 0x74, 0xad, 0x74, 0x5c, 0x27, 0x97, 0xcc, 0xd8, 0x4d, 0x2a, 0x20, + 0x87, 0x77, 0x1b, 0xf5, 0x37, 0x72, 0xc4, 0xda, 0xdd, 0xc0, 0xd7, 0x3e, 0xc1, 0x2f, 0xe6, 0x46, + 0x31, 0x22, 0xdc, 0x0b, 0x72, 0xd8, 0x55, 0x5d, 0x8a, 0x5c, 0xd2, 0x08, 0xab, 0x0c, 0xef, 0xe4, + 0x42, 0x97, 0xdd, 0xd5, 0x23, 0x2a, 0xfe, 0x53, 0xbe, 0x05, 0x1c, 0xbd, 0x60, 0x34, 0x2f, 0x6e, + 0x39, 0xf6, 0x2e, 0xbe, 0x20, 0xc7, 0xa6, 0x37, 0xed, 0xe0, 0x1b, 0xcb, 0xf8, 0x0f, 0xf2, 0x6d, + 0xbe, 0xe9, 0x90, 0x1f, 0x64, 0x3a, 0xac, 0x1e, 0xa1, 0xc6, 0x83, 0xfc, 0xcc, 0xa0, 0xd3, 0x29, + 0xc4, 0x76, 0x3a, 0xab, 0x47, 0xfc, 0x6e, 0x47, 0x5e, 0x02, 0x93, 0x2d, 0x73, 0x0f, 0x6f, 0x55, + 0xe3, 0x59, 0xd7, 0xa0, 0xa3, 0xc4, 0x4b, 0xe6, 0x1e, 0xd9, 0xd8, 0x5e, 0x3d, 0xa2, 0x06, 0x7f, + 0xca, 0x2b, 0x60, 0x0a, 0x6f, 0x0b, 0xe0, 0x62, 0x26, 0x13, 0x1d, 0x13, 0x5e, 0x3d, 0xa2, 0x86, + 0xff, 0x7a, 0xd6, 0x47, 0x0e, 0x9f, 0xe1, 0xb8, 0xc7, 0xdf, 0x6e, 0xcf, 0x24, 0xda, 0x6e, 0xf7, + 0x78, 0x41, 0x36, 0xdc, 0x4f, 0x82, 0x7c, 0x13, 0x73, 0x38, 0x4b, 0x39, 0x4c, 0x5e, 0xe5, 0xbb, + 0x40, 0x6e, 0xc7, 0x70, 0xfc, 0xc9, 0xf3, 0x4d, 0x83, 0xcb, 0x5d, 0x37, 0x9c, 0x8b, 0x1e, 0x82, + 0xde, 0x5f, 0x8b, 0x13, 0x20, 0x8f, 0x19, 0x17, 0x3c, 0xc0, 0xb7, 0xe7, 0x88, 0x19, 0x52, 0xb6, + 0x2d, 0x6f, 0xd8, 0xd7, 0x6d, 0xff, 0xa0, 0xcb, 0x87, 0x32, 0xa3, 0xb1, 0x20, 0xfb, 0x5e, 0x75, + 0x2c, 0x45, 0x5e, 0x75, 0xdc, 0x73, 0x07, 0x67, 0xae, 0xf7, 0x0e, 0xce, 0x70, 0xf9, 0x20, 0x3f, + 0xd8, 0x51, 0xe5, 0x4f, 0x87, 0x30, 0x5d, 0x7a, 0x19, 0x11, 0x3d, 0x03, 0x6f, 0x9b, 0x16, 0xd3, + 0x66, 0xff, 0x35, 0x61, 0xa7, 0x94, 0xd4, 0xa8, 0x19, 0x40, 0x5e, 0xfa, 0x7d, 0xd3, 0x6f, 0xe4, + 0xc0, 0x3c, 0xb9, 0xe9, 0x75, 0x0f, 0xe9, 0x36, 0x7f, 0x25, 0x1d, 0xfc, 0xe4, 0x48, 0x84, 0xa6, + 0xcf, 0x80, 0x23, 0xf5, 0x1d, 0x70, 0xf6, 0x1d, 0x36, 0xce, 0x0d, 0x38, 0x6c, 0x9c, 0x4f, 0xb6, + 0x72, 0xf8, 0x7b, 0xac, 0xfc, 0xd4, 0x79, 0xf9, 0xb9, 0x33, 0x02, 0xa0, 0x7e, 0x7c, 0x19, 0x89, + 0x7d, 0xf3, 0xce, 0x40, 0x52, 0x34, 0x4e, 0x52, 0xee, 0x19, 0x9e, 0x90, 0xf4, 0xa5, 0xe5, 0x77, + 0x73, 0xe0, 0xaa, 0x90, 0x98, 0x2a, 0xba, 0x44, 0x05, 0xe5, 0xf3, 0x23, 0x11, 0x94, 0xe4, 0xb1, + 0x0c, 0xd2, 0x96, 0x98, 0x3f, 0x16, 0x3e, 0x03, 0xd4, 0x0b, 0x54, 0xc0, 0x9b, 0x08, 0x61, 0x39, + 0x09, 0x0a, 0xa4, 0x87, 0xa1, 0xd0, 0xd0, 0xb7, 0x84, 0xdd, 0x8d, 0xd8, 0xc9, 0x21, 0x51, 0xda, + 0xc6, 0x20, 0x3f, 0x74, 0x5d, 0x43, 0xdf, 0x75, 0xac, 0x8a, 0xe5, 0xda, 0xf0, 0x27, 0x46, 0x22, + 0x38, 0x81, 0x37, 0x9c, 0x34, 0x8c, 0x37, 0xdc, 0x50, 0xab, 0x1c, 0x7e, 0x0b, 0x0e, 0x65, 0x95, + 0x23, 0xa2, 0xf2, 0xf4, 0xf1, 0x7b, 0x87, 0x44, 0x6e, 0x79, 0xd7, 0x90, 0xbb, 0xc8, 0x5b, 0x88, + 0xf0, 0xfe, 0x51, 0x00, 0x79, 0xdc, 0x37, 0x93, 0xe8, 0xa5, 0x45, 0xf8, 0x85, 0x3f, 0xf1, 0x14, + 0x1b, 0x3c, 0x9f, 0x9b, 0x0e, 0xf6, 0x50, 0x38, 0x12, 0xa4, 0xc4, 0x62, 0xe6, 0x27, 0x20, 0x23, + 0x7d, 0xcc, 0x5e, 0x29, 0x81, 0x02, 0xbd, 0xe1, 0x7b, 0x23, 0x15, 0x87, 0x09, 0x3e, 0x84, 0xae, + 0xc0, 0x8e, 0x5c, 0xe2, 0x7b, 0xb0, 0xd3, 0xdb, 0x8b, 0x3b, 0xa4, 0x8b, 0xae, 0xbf, 0x95, 0x05, + 0xd3, 0x1a, 0x72, 0xcb, 0x86, 0xe3, 0x98, 0xc6, 0xd6, 0xa8, 0x3c, 0xbe, 0x45, 0xbd, 0x87, 0xe1, + 0xb7, 0x33, 0xa2, 0xe7, 0x69, 0x82, 0x85, 0x70, 0x9f, 0xd4, 0x88, 0xd8, 0x7e, 0x62, 0x37, 0x8c, + 0x0f, 0x2a, 0x6d, 0x0c, 0x1e, 0xdb, 0x59, 0x30, 0xe1, 0x9f, 0xa9, 0x3b, 0xcb, 0x9d, 0xb3, 0xdc, + 0x76, 0x77, 0xfc, 0x63, 0x30, 0xf8, 0x79, 0xff, 0x59, 0x2e, 0xf8, 0xba, 0x84, 0x8e, 0xf2, 0xf1, + 0x07, 0x02, 0x93, 0xe9, 0x58, 0x12, 0x77, 0xf8, 0xc3, 0x3a, 0x02, 0xf8, 0x3b, 0x13, 0x74, 0x39, + 0x72, 0xcd, 0x70, 0xd1, 0x65, 0xf8, 0xe7, 0x12, 0x98, 0xd0, 0x90, 0xeb, 0x8d, 0xb7, 0x1e, 0xf9, + 0x07, 0x96, 0x70, 0x99, 0x59, 0xf1, 0x98, 0xa2, 0x6b, 0x18, 0x2f, 0x00, 0x53, 0x1d, 0xc7, 0x6e, + 0xa2, 0x6e, 0x97, 0xae, 0x5e, 0xb0, 0x8e, 0x6a, 0xfd, 0x46, 0x7f, 0x4c, 0xda, 0x42, 0xdd, 0xff, + 0x47, 0x0d, 0x7f, 0x4f, 0x6a, 0x06, 0x90, 0x92, 0x68, 0x03, 0xc7, 0x6d, 0x06, 0xc4, 0x55, 0x9e, + 0x3e, 0xd0, 0x9f, 0x91, 0xc0, 0x8c, 0x86, 0xdc, 0x80, 0x8b, 0x09, 0x36, 0x39, 0xa2, 0xe1, 0xe5, + 0xa0, 0x94, 0x0e, 0x06, 0xa5, 0xf8, 0xbd, 0x6b, 0x3c, 0x37, 0x83, 0xc2, 0xc6, 0x78, 0xef, 0x9a, + 0x18, 0x05, 0x63, 0x38, 0xbe, 0xf6, 0x14, 0x30, 0x85, 0x69, 0xc1, 0x0a, 0xfb, 0x73, 0xb9, 0x50, + 0x79, 0xbf, 0x90, 0x92, 0xf2, 0xde, 0x0d, 0xf2, 0xf8, 0x3e, 0x77, 0xac, 0xb8, 0xd3, 0x22, 0x66, + 0xfb, 0xba, 0x97, 0x5d, 0x25, 0x7f, 0xf5, 0xf7, 0xd3, 0xcc, 0x27, 0xf3, 0xd3, 0x7c, 0x53, 0x36, + 0xd1, 0x48, 0x48, 0xe6, 0x0e, 0x23, 0x54, 0xf9, 0x04, 0xe3, 0x66, 0x4c, 0xdd, 0xe9, 0x0b, 0xc7, + 0xcb, 0x25, 0x30, 0xe9, 0x8d, 0xdb, 0xd8, 0x1e, 0x3f, 0x7f, 0x70, 0x71, 0xe8, 0x6f, 0xe8, 0x27, + 0xec, 0x81, 0x7d, 0x8e, 0x8c, 0xce, 0xbc, 0x4f, 0xd0, 0x03, 0xc7, 0x55, 0x9e, 0x3e, 0x1e, 0xef, + 0x22, 0x78, 0x60, 0x7d, 0x80, 0x6f, 0x96, 0x80, 0xb4, 0x82, 0xdc, 0x71, 0x5b, 0x91, 0x8f, 0x0a, + 0x87, 0x2a, 0xe2, 0x18, 0x86, 0x69, 0x5e, 0x58, 0x41, 0xa3, 0x51, 0x20, 0xb1, 0x18, 0x45, 0x42, + 0x04, 0xa4, 0x8f, 0xda, 0x7b, 0x09, 0x6a, 0x64, 0x73, 0xe1, 0xc7, 0x47, 0xd0, 0xab, 0x8e, 0x77, + 0xe1, 0xc3, 0x67, 0x20, 0x2e, 0xe3, 0xb0, 0xf4, 0xad, 0x5f, 0xe5, 0x63, 0xb9, 0xe7, 0x0c, 0x78, + 0xca, 0xbe, 0x8d, 0x9a, 0x17, 0x51, 0x0b, 0xfe, 0xc8, 0xc1, 0xa1, 0x9b, 0x07, 0x13, 0x4d, 0x52, + 0x1a, 0x06, 0x6f, 0x52, 0xf5, 0x5f, 0x13, 0x5c, 0xda, 0xcb, 0x77, 0x44, 0xe4, 0xf7, 0x31, 0x5e, + 0xda, 0x2b, 0x50, 0xfd, 0x18, 0xcc, 0x16, 0x32, 0xcb, 0xa8, 0x34, 0x6d, 0x0b, 0xfe, 0xc7, 0x83, + 0xc3, 0x72, 0x1d, 0x98, 0x32, 0x9b, 0xb6, 0x55, 0xd9, 0xf1, 0x83, 0xfb, 0x4d, 0xa9, 0x61, 0x82, + 0xff, 0x55, 0xd9, 0xb1, 0x1f, 0x30, 0xe9, 0xae, 0x79, 0x98, 0x30, 0xac, 0x31, 0xe1, 0x91, 0x7e, + 0x58, 0xc6, 0x44, 0x9f, 0xba, 0xd3, 0x87, 0xec, 0xf1, 0xd0, 0xbb, 0x8d, 0x74, 0x85, 0x4f, 0x88, + 0x55, 0xe0, 0x61, 0x86, 0x33, 0xb6, 0x15, 0x87, 0x32, 0x9c, 0xc5, 0x10, 0x30, 0x86, 0xfb, 0x45, + 0x42, 0x1c, 0x53, 0x5f, 0x03, 0x3e, 0x00, 0x3a, 0xa3, 0x33, 0x0f, 0x87, 0x44, 0xe7, 0x70, 0x4c, + 0xc4, 0x0f, 0xd2, 0x50, 0x97, 0xd4, 0xe2, 0x81, 0xff, 0x69, 0x14, 0xe0, 0xdc, 0x39, 0x8c, 0xbf, + 0x02, 0xf1, 0x56, 0x48, 0x70, 0xdd, 0xf0, 0x3e, 0x0e, 0x7a, 0xa5, 0x8c, 0xf1, 0x22, 0x6e, 0x91, + 0xfa, 0xd3, 0x07, 0xf0, 0x67, 0x25, 0x30, 0x87, 0x7d, 0x04, 0xda, 0xc8, 0x70, 0x48, 0x47, 0x39, + 0x12, 0x47, 0xf9, 0x77, 0x09, 0x07, 0xf8, 0xe1, 0xf9, 0x10, 0xd2, 0x31, 0x12, 0x28, 0xc4, 0xa2, + 0xfb, 0x08, 0x92, 0x30, 0x96, 0x6d, 0x94, 0x62, 0x40, 0x02, 0x15, 0xf1, 0xd1, 0xe0, 0x91, 0xd0, + 0x23, 0x97, 0x67, 0x86, 0xaf, 0x6c, 0x63, 0xf6, 0xc8, 0x15, 0x21, 0x22, 0x7d, 0x4c, 0xde, 0xfc, + 0x0c, 0xba, 0xe0, 0xac, 0xe3, 0xdb, 0xb8, 0x1f, 0xce, 0x05, 0x27, 0xda, 0x3e, 0x33, 0x12, 0x0f, + 0xcc, 0x03, 0x04, 0xb6, 0x97, 0x41, 0xce, 0xb1, 0x2f, 0x91, 0xa5, 0xad, 0x59, 0x15, 0x3f, 0x63, + 0x93, 0xdf, 0x6e, 0xef, 0xee, 0x58, 0xe4, 0x64, 0xe8, 0xac, 0xea, 0xbf, 0xca, 0x37, 0x82, 0xd9, + 0x4b, 0xa6, 0xbb, 0xbd, 0x8a, 0x8c, 0x16, 0x72, 0x54, 0xfb, 0x12, 0xf6, 0x98, 0x9b, 0x54, 0xf9, + 0x44, 0xde, 0x7f, 0x45, 0xc0, 0xbe, 0xc4, 0x57, 0x74, 0x8f, 0xe5, 0xf8, 0x5b, 0x12, 0xcb, 0x33, + 0x9a, 0xaa, 0xf4, 0x05, 0xe6, 0x7d, 0x12, 0x98, 0x52, 0xed, 0x4b, 0x54, 0x48, 0xfe, 0xcf, 0xc3, + 0x95, 0x91, 0xc4, 0x13, 0x3d, 0x72, 0xe5, 0xba, 0x4f, 0xfe, 0xd8, 0x27, 0x7a, 0xb1, 0xd5, 0x8f, + 0xe5, 0xe4, 0xd2, 0x8c, 0x6a, 0x5f, 0xd2, 0x90, 0x4b, 0x34, 0x02, 0x36, 0x46, 0xe4, 0x64, 0x6d, + 0x76, 0x49, 0x81, 0x74, 0x1e, 0x1e, 0xbc, 0x27, 0xdd, 0x45, 0x08, 0x18, 0x14, 0x90, 0x38, 0xee, + 0x5d, 0x84, 0x81, 0x14, 0x8c, 0x21, 0x46, 0x8a, 0x04, 0xa6, 0x55, 0xfb, 0x92, 0x37, 0x34, 0x2c, + 0x9b, 0xed, 0xf6, 0x68, 0x46, 0xc8, 0xa4, 0xc6, 0xbf, 0xcf, 0x06, 0x9f, 0x8a, 0xb1, 0x1b, 0xff, + 0x03, 0x08, 0x48, 0x1f, 0x86, 0x97, 0x11, 0x65, 0xf1, 0x47, 0x68, 0x6b, 0x34, 0x38, 0x0c, 0xab, + 0x10, 0x01, 0x19, 0x87, 0xa6, 0x10, 0x51, 0x14, 0x8c, 0x65, 0xe7, 0x64, 0xae, 0x8c, 0x87, 0xf9, + 0xd1, 0xea, 0xc4, 0x63, 0xc9, 0x5c, 0x13, 0xe9, 0xb0, 0xcb, 0x11, 0x32, 0x12, 0x34, 0x12, 0xb8, + 0x20, 0x0a, 0xd0, 0x90, 0x3e, 0x1e, 0x1f, 0x96, 0xc0, 0x0c, 0x21, 0xe1, 0x09, 0x62, 0x05, 0x0c, + 0xa5, 0x54, 0x6c, 0x0b, 0x0e, 0x47, 0xa9, 0x62, 0x28, 0x18, 0xcb, 0x2d, 0x9d, 0x9e, 0x1d, 0x37, + 0xc4, 0xf1, 0xf1, 0x28, 0x04, 0x87, 0x36, 0xc6, 0x46, 0x78, 0x84, 0x7c, 0x18, 0x63, 0xec, 0x90, + 0x8e, 0x91, 0xbf, 0x2c, 0xd0, 0xa2, 0x51, 0x62, 0x70, 0x00, 0x55, 0x18, 0x21, 0x0c, 0x43, 0xaa, + 0xc2, 0x21, 0x21, 0xf1, 0x55, 0x09, 0x00, 0x42, 0xc0, 0xba, 0xbd, 0x87, 0x2f, 0xe5, 0x19, 0x41, + 0x77, 0xd6, 0xeb, 0x56, 0x2f, 0x0d, 0x70, 0xab, 0x4f, 0x18, 0xc2, 0x25, 0xe9, 0x4a, 0x20, 0xc3, + 0x65, 0xaf, 0x91, 0x63, 0x5f, 0x09, 0x8c, 0xaf, 0x3f, 0x7d, 0x8c, 0xbf, 0x4c, 0xac, 0xb9, 0xf0, + 0x80, 0xe9, 0x2f, 0x8f, 0x04, 0x65, 0x66, 0xf6, 0x2f, 0xf1, 0xb3, 0xff, 0x03, 0x60, 0x3b, 0xac, + 0x8d, 0x38, 0xe8, 0xe0, 0x68, 0xfa, 0x36, 0xe2, 0xe1, 0x1d, 0x10, 0xfd, 0xf1, 0x1c, 0x38, 0x4a, + 0x3b, 0x91, 0xef, 0x07, 0x88, 0x13, 0x9e, 0xc3, 0xe3, 0x3a, 0xc9, 0x01, 0x28, 0x8f, 0x6a, 0x41, + 0x2a, 0xc9, 0x52, 0xa6, 0x00, 0x79, 0x63, 0x59, 0xdd, 0x28, 0x28, 0x97, 0x3b, 0x86, 0xd5, 0x12, + 0x0f, 0xf7, 0x3b, 0x00, 0x78, 0x7f, 0xad, 0x51, 0xe2, 0xd7, 0x1a, 0xfb, 0xac, 0x4c, 0x26, 0xde, + 0xb9, 0xc6, 0x2c, 0x23, 0xe4, 0x8e, 0x7d, 0xe7, 0x3a, 0xba, 0xee, 0xf4, 0x51, 0x7a, 0x4c, 0x02, + 0x39, 0xcd, 0x76, 0x5c, 0xf8, 0x60, 0x12, 0xed, 0x24, 0x9c, 0x0f, 0x41, 0xf2, 0xdf, 0xe5, 0x32, + 0x77, 0x6b, 0xf2, 0xd9, 0xf8, 0xa3, 0xce, 0x86, 0x6b, 0x60, 0xaf, 0x6e, 0xaf, 0x7e, 0xe6, 0xfa, + 0xe4, 0xa4, 0xf1, 0x74, 0x08, 0xff, 0xb4, 0xe8, 0x03, 0x18, 0xa9, 0xc5, 0xd3, 0x89, 0xac, 0x39, + 0x7d, 0xdc, 0xfe, 0xfb, 0x1c, 0xf5, 0x6d, 0x5d, 0x36, 0xdb, 0x08, 0x3e, 0x48, 0x5c, 0x46, 0xaa, + 0xc6, 0x0e, 0x12, 0x3f, 0x12, 0x13, 0xeb, 0xda, 0x8a, 0xe3, 0xcb, 0x4a, 0x61, 0x7c, 0xd9, 0xa4, + 0x0a, 0x45, 0x0e, 0xa0, 0x13, 0x92, 0xc6, 0xad, 0x50, 0x31, 0x75, 0x8f, 0x25, 0x4e, 0xe7, 0x31, + 0x0d, 0xb9, 0xc4, 0xa8, 0xac, 0xf9, 0x37, 0xb0, 0xfc, 0xe8, 0x48, 0x22, 0x76, 0x06, 0x17, 0xbc, + 0x48, 0x3d, 0x17, 0xbc, 0xbc, 0x8f, 0x05, 0x67, 0x9d, 0x07, 0xe7, 0x39, 0xd1, 0x0c, 0xe2, 0x89, + 0x1c, 0x09, 0x4c, 0x8f, 0x06, 0x30, 0xd5, 0x39, 0x98, 0xee, 0x1a, 0x92, 0x8a, 0xf4, 0x01, 0xfb, + 0x82, 0x67, 0xaa, 0xe0, 0x49, 0x7f, 0xc9, 0x6a, 0xd1, 0x08, 0xab, 0xff, 0x78, 0xd8, 0x9b, 0x6d, + 0xfb, 0x43, 0xb0, 0x72, 0xb1, 0x9c, 0xf3, 0xbd, 0xb7, 0xd5, 0x2f, 0x92, 0x70, 0xae, 0x5e, 0x27, + 0x8a, 0x77, 0xda, 0xc4, 0x6f, 0xac, 0x0f, 0xfe, 0x83, 0x7f, 0x92, 0x6c, 0xfd, 0x0d, 0x17, 0xd1, + 0xc3, 0xb8, 0x94, 0x6d, 0xa0, 0x04, 0x2b, 0x73, 0x02, 0xd4, 0xfd, 0xfb, 0x70, 0x0b, 0x0b, 0x23, + 0x81, 0x0c, 0xe9, 0x16, 0x86, 0x0b, 0x38, 0x4c, 0xb7, 0xb0, 0x41, 0x04, 0x8c, 0xe1, 0x96, 0xf9, + 0x3c, 0xdd, 0x95, 0xc7, 0x3e, 0x93, 0xf0, 0x2f, 0xb3, 0xa9, 0x8f, 0xb6, 0xdf, 0xc9, 0x24, 0xf2, + 0x63, 0xc6, 0x74, 0xc5, 0x0f, 0xb7, 0x49, 0x3c, 0x93, 0xe3, 0x8a, 0x1b, 0xc3, 0xfa, 0x4f, 0x16, + 0xfb, 0x94, 0x9f, 0x37, 0x5b, 0xee, 0xf6, 0x88, 0x4e, 0x66, 0x5c, 0xf2, 0xca, 0xf2, 0xaf, 0x2b, + 0xc6, 0x2f, 0xf0, 0x5f, 0x32, 0x89, 0x42, 0x41, 0x05, 0x2c, 0xc1, 0x64, 0x45, 0xb0, 0x38, 0x41, + 0x00, 0xa7, 0xd8, 0xf2, 0xc6, 0x28, 0xd1, 0xe7, 0xcc, 0x16, 0xb2, 0x9f, 0x80, 0x12, 0x8d, 0xe9, + 0x1a, 0x9d, 0x44, 0xc7, 0x15, 0xf7, 0xef, 0x54, 0xa2, 0x03, 0x96, 0x8c, 0x48, 0xa2, 0x63, 0xcb, + 0x4b, 0x9f, 0xc7, 0xaf, 0x9b, 0xa1, 0x13, 0xa2, 0x35, 0xd3, 0xba, 0x08, 0xff, 0xa9, 0xe0, 0x5f, + 0x94, 0x7c, 0xde, 0x74, 0xb7, 0x69, 0x4c, 0x97, 0xdf, 0x15, 0xbe, 0xe3, 0x64, 0x88, 0xb8, 0x2d, + 0x7c, 0x58, 0xa8, 0xfc, 0xbe, 0xb0, 0x50, 0x25, 0x30, 0x6b, 0x5a, 0x2e, 0x72, 0x2c, 0xa3, 0xbd, + 0xdc, 0x36, 0xb6, 0xba, 0xf3, 0x13, 0x7d, 0x2f, 0xa1, 0xab, 0x30, 0x79, 0x54, 0xfe, 0x0f, 0xf6, + 0x3a, 0xc9, 0x49, 0xfe, 0x5a, 0xfc, 0x88, 0x28, 0x56, 0x53, 0xd1, 0x51, 0xac, 0x82, 0x28, 0x55, + 0x60, 0x70, 0x90, 0x6b, 0x51, 0x1b, 0x37, 0x61, 0xd8, 0xbe, 0xb3, 0x82, 0xd1, 0xd4, 0x82, 0x10, + 0x8e, 0xbf, 0x2a, 0x25, 0x5a, 0xa5, 0xf3, 0x04, 0x61, 0xa1, 0x57, 0x08, 0x12, 0x5b, 0xa8, 0x6c, + 0xe3, 0xa5, 0x9e, 0xc6, 0x07, 0x26, 0x4f, 0x4e, 0xc0, 0xe4, 0x61, 0x85, 0x2a, 0x2f, 0x26, 0x54, + 0x49, 0x16, 0xfd, 0x44, 0x5a, 0x3b, 0x86, 0x53, 0x45, 0x79, 0x70, 0xcc, 0x8f, 0x5a, 0xdb, 0xe9, + 0x20, 0xc3, 0x31, 0xac, 0x26, 0x82, 0x8f, 0x67, 0x47, 0x61, 0xf6, 0x2e, 0x83, 0x49, 0xb3, 0x69, + 0x5b, 0x9a, 0xf9, 0x22, 0xff, 0x92, 0xb8, 0xf8, 0x60, 0xe9, 0x98, 0x23, 0x15, 0xfa, 0x87, 0x1a, + 0xfc, 0x2b, 0x57, 0xc0, 0x54, 0xd3, 0x70, 0x5a, 0x24, 0x98, 0x5e, 0xbe, 0xe7, 0x42, 0xa6, 0xc8, + 0x82, 0xca, 0xfe, 0x2f, 0x6a, 0xf8, 0xb7, 0x5c, 0xe3, 0x99, 0x58, 0xe8, 0x89, 0xca, 0x11, 0x59, + 0xd8, 0x52, 0xf8, 0x13, 0xc7, 0x73, 0x8f, 0x3b, 0x0e, 0x6a, 0xe3, 0x3b, 0xe1, 0x49, 0x0f, 0x31, + 0xa5, 0x86, 0x09, 0x49, 0xa7, 0xf9, 0xb8, 0xaa, 0x7d, 0x68, 0x8c, 0x7b, 0x9a, 0x2f, 0x44, 0x45, + 0xfa, 0x92, 0xf9, 0xce, 0x02, 0x98, 0x25, 0xbd, 0x1a, 0x65, 0x27, 0xfc, 0x59, 0x7c, 0xa5, 0xb3, + 0x7b, 0x1f, 0xba, 0x02, 0xb5, 0x83, 0x8f, 0xc9, 0x45, 0x20, 0x5d, 0x0c, 0x02, 0x07, 0x7a, 0x8f, + 0x49, 0xf7, 0xdf, 0x7d, 0xba, 0x16, 0x08, 0x4d, 0xe3, 0xde, 0x7f, 0x8f, 0xaf, 0x3e, 0x7d, 0x7c, + 0x7e, 0x41, 0x02, 0x52, 0xa9, 0xd5, 0x82, 0xcd, 0x83, 0x43, 0x71, 0x1a, 0x4c, 0xfb, 0x3a, 0x13, + 0xc6, 0x72, 0x64, 0x93, 0x92, 0x2e, 0x66, 0x06, 0xbc, 0x29, 0xb5, 0xc6, 0xbe, 0x3b, 0x10, 0x53, + 0x77, 0xfa, 0xa0, 0xfc, 0xf2, 0x04, 0x55, 0x9a, 0x45, 0xdb, 0xbe, 0x88, 0x8f, 0xbc, 0x3c, 0x28, + 0x81, 0xfc, 0x32, 0x72, 0x9b, 0xdb, 0x23, 0xd2, 0x99, 0x5d, 0xa7, 0xed, 0xeb, 0xcc, 0xbe, 0xfb, + 0xe9, 0x07, 0xdb, 0xb0, 0x3e, 0x59, 0x0b, 0x98, 0xa4, 0x71, 0x47, 0x69, 0x8e, 0xad, 0x3d, 0x7d, + 0x70, 0xfe, 0x45, 0x02, 0x73, 0xc1, 0x0a, 0x17, 0xc1, 0xe4, 0xe7, 0x9f, 0x70, 0xeb, 0x96, 0xf0, + 0xf3, 0xc9, 0x42, 0x9d, 0x05, 0x3c, 0xe5, 0x5b, 0x96, 0xf2, 0xc2, 0x62, 0x82, 0x20, 0x68, 0x62, + 0x04, 0x8e, 0x61, 0x06, 0x2f, 0x81, 0x49, 0x4c, 0xd0, 0x92, 0xb9, 0x87, 0x5d, 0x00, 0xb9, 0x85, + 0xc6, 0x17, 0x8f, 0x64, 0xa1, 0xf1, 0x2e, 0x7e, 0xa1, 0x51, 0x30, 0x72, 0xb1, 0xbf, 0xce, 0x98, + 0xd0, 0x27, 0xc6, 0xfb, 0x7f, 0xe4, 0xcb, 0x8c, 0x09, 0x7c, 0x62, 0x06, 0xd4, 0x9f, 0x3e, 0xa2, + 0x9f, 0x6c, 0xd0, 0xce, 0xd6, 0xdf, 0x18, 0x85, 0xff, 0xfd, 0x18, 0xc8, 0x9d, 0xf3, 0x1e, 0xfe, + 0x57, 0x78, 0xb3, 0xd5, 0x43, 0x23, 0x08, 0xb2, 0xf0, 0x7c, 0x90, 0xf3, 0xca, 0xa7, 0xd3, 0x96, + 0x5b, 0xc4, 0x76, 0x69, 0x3d, 0x42, 0x54, 0xfc, 0x9f, 0x7c, 0x12, 0x14, 0xba, 0xf6, 0xae, 0xd3, + 0xf4, 0xcc, 0x67, 0x4f, 0x62, 0xe8, 0x5b, 0xd2, 0xe0, 0xa2, 0x5c, 0xd1, 0x0b, 0xa3, 0x73, 0xfd, + 0x64, 0x2e, 0x3a, 0x92, 0xb8, 0x8b, 0x8e, 0x12, 0xec, 0x1f, 0x08, 0xd0, 0x96, 0xbe, 0x44, 0xfc, + 0x25, 0xbe, 0xf3, 0xaf, 0x35, 0x2a, 0xd8, 0x23, 0xd8, 0x72, 0x50, 0x71, 0x48, 0xea, 0xb8, 0xcd, + 0xb3, 0x36, 0x88, 0xe7, 0x3e, 0x56, 0xc7, 0x6d, 0x01, 0x1a, 0xc6, 0x72, 0xda, 0xbc, 0x40, 0x9d, + 0x4d, 0xef, 0x1f, 0x25, 0xba, 0x39, 0x4e, 0xe8, 0x0f, 0x84, 0xce, 0x08, 0x9d, 0x50, 0x87, 0x46, + 0xe7, 0x90, 0xdc, 0x50, 0xff, 0x40, 0xc2, 0x11, 0x2d, 0x7d, 0x23, 0x47, 0xfc, 0xc2, 0xa2, 0xc4, + 0x10, 0x79, 0x63, 0x30, 0x17, 0xcf, 0x79, 0x76, 0xf8, 0x10, 0xdf, 0x3c, 0xeb, 0x18, 0xfa, 0xc7, + 0x1d, 0xe2, 0x5b, 0x94, 0x90, 0xf4, 0x81, 0xfc, 0x35, 0x72, 0x41, 0x58, 0xa9, 0xe9, 0x9a, 0x7b, + 0x23, 0xd6, 0x34, 0x7e, 0x78, 0x49, 0x18, 0xd5, 0x77, 0x1f, 0x87, 0x08, 0x85, 0xe3, 0x8e, 0xea, + 0x2b, 0x46, 0xc6, 0x18, 0x8e, 0xa3, 0x03, 0x8f, 0x7b, 0x74, 0x6d, 0xe6, 0xcd, 0x74, 0x35, 0x00, + 0x1d, 0x1c, 0xad, 0x33, 0x60, 0x86, 0x99, 0xfa, 0xfb, 0x17, 0xcf, 0x70, 0x69, 0x49, 0x0f, 0xac, + 0x07, 0x2c, 0x1b, 0xf9, 0xc2, 0x40, 0x82, 0x05, 0x5f, 0x11, 0x22, 0xc6, 0x72, 0xaf, 0x9b, 0x3f, + 0x86, 0x8d, 0x09, 0xab, 0xdf, 0x65, 0xb1, 0xaa, 0xf1, 0x58, 0xdd, 0x21, 0xc2, 0x26, 0xb1, 0x31, + 0x4d, 0x68, 0xde, 0xf8, 0x8e, 0x00, 0x2e, 0x95, 0x83, 0xeb, 0xf9, 0x43, 0xd3, 0x91, 0x3e, 0x62, + 0x6f, 0x91, 0xc8, 0xe5, 0x4e, 0xa5, 0x3d, 0xc3, 0x6c, 0xe3, 0x28, 0x03, 0x23, 0xb8, 0x9c, 0xf8, + 0x73, 0x2c, 0x28, 0xe7, 0x78, 0x50, 0xee, 0x15, 0x61, 0x06, 0x47, 0x51, 0x04, 0x36, 0xcf, 0x66, + 0x17, 0xc7, 0x49, 0x88, 0xe1, 0xab, 0x7b, 0xc3, 0xf9, 0xd1, 0xef, 0xec, 0xaa, 0xf9, 0x6f, 0x07, + 0x20, 0xdd, 0xcf, 0x81, 0xa4, 0x1c, 0x94, 0xae, 0xf4, 0xb1, 0x7a, 0x0d, 0x19, 0xba, 0x34, 0x32, + 0xbd, 0x1a, 0xcd, 0xd0, 0x45, 0x67, 0x6e, 0x12, 0x37, 0x73, 0x4b, 0x78, 0xc6, 0x21, 0x74, 0xdd, + 0xf5, 0x89, 0x1b, 0xa4, 0x4e, 0xb9, 0x11, 0x9f, 0x71, 0x18, 0x48, 0x41, 0xfa, 0xe0, 0xfc, 0x83, + 0x04, 0xc0, 0x8a, 0x63, 0xef, 0x76, 0x6a, 0x4e, 0x0b, 0x39, 0xf0, 0xaf, 0xc3, 0xc9, 0xda, 0xab, + 0x46, 0x30, 0x59, 0xab, 0x03, 0xb0, 0x15, 0x14, 0x4e, 0x7b, 0xa3, 0x67, 0x88, 0x4d, 0xcd, 0x42, + 0xa2, 0x54, 0xa6, 0x0c, 0xfe, 0x9a, 0xdf, 0x1f, 0xe2, 0x31, 0x8e, 0x1b, 0x5f, 0xc2, 0xe2, 0x46, + 0x39, 0x59, 0x7b, 0x57, 0x80, 0xb5, 0xce, 0x61, 0x7d, 0xef, 0x01, 0x28, 0x49, 0x1f, 0xf3, 0x7f, + 0x9c, 0x00, 0xd3, 0x64, 0x6b, 0x95, 0xf0, 0xf4, 0xef, 0x42, 0xd0, 0x7f, 0x79, 0x04, 0xa0, 0x6f, + 0x80, 0x19, 0x3b, 0x2c, 0x9d, 0x8c, 0x7f, 0xec, 0x62, 0x59, 0x2c, 0xec, 0x0c, 0x5d, 0x2a, 0x57, + 0x0c, 0xfc, 0x08, 0x8b, 0xbc, 0xca, 0x23, 0x7f, 0x57, 0x0c, 0xbf, 0x99, 0x12, 0x47, 0x09, 0xfd, + 0xbb, 0x03, 0xe8, 0x37, 0x38, 0xe8, 0x4b, 0x07, 0x21, 0x65, 0x0c, 0x57, 0x1c, 0x48, 0x20, 0x87, + 0x4f, 0x24, 0xfe, 0x46, 0x8a, 0x6b, 0x31, 0xf3, 0x60, 0x02, 0xab, 0x6c, 0x30, 0x47, 0xf4, 0x5f, + 0xbd, 0x2f, 0xc6, 0xa6, 0x8b, 0x9c, 0xc0, 0xbb, 0xc4, 0x7f, 0xf5, 0x68, 0xf0, 0x3d, 0xc1, 0xbb, + 0xf3, 0x05, 0xb2, 0x69, 0x1c, 0x24, 0x0c, 0x3d, 0x81, 0x64, 0x39, 0x3e, 0xb2, 0x33, 0x8a, 0xc3, + 0x4c, 0x20, 0x07, 0x10, 0x92, 0x3e, 0xf0, 0x5f, 0xcc, 0x81, 0x79, 0xb2, 0x02, 0xb8, 0xec, 0xd8, + 0x3b, 0x3d, 0x37, 0x8a, 0x99, 0x07, 0x97, 0x85, 0x9b, 0xc0, 0x9c, 0xcb, 0xf9, 0xc0, 0x53, 0x99, + 0xe8, 0x49, 0x85, 0x7f, 0xca, 0xfa, 0xbf, 0xbc, 0x90, 0x47, 0x72, 0x31, 0x86, 0x81, 0x51, 0xb4, + 0x27, 0xde, 0x54, 0x11, 0x24, 0x94, 0x59, 0x50, 0x94, 0x86, 0x5a, 0x5f, 0x0e, 0x64, 0x2a, 0x2f, + 0x22, 0x53, 0xef, 0x0f, 0x64, 0xea, 0x47, 0x38, 0x99, 0x5a, 0x39, 0x38, 0x4b, 0xd2, 0x97, 0xad, + 0x87, 0x83, 0x4d, 0xbc, 0x60, 0x8b, 0x75, 0x27, 0x85, 0x8d, 0x55, 0xd6, 0x77, 0x2c, 0xc7, 0xf9, + 0x8e, 0xf1, 0x77, 0x80, 0x24, 0x58, 0xb5, 0xe0, 0xa9, 0x8e, 0x90, 0xa5, 0x39, 0x90, 0x35, 0x7d, + 0xea, 0xb2, 0x66, 0x6b, 0xa8, 0x75, 0x89, 0xd8, 0x8a, 0xc6, 0xb0, 0x0e, 0x38, 0x07, 0x0a, 0xcb, + 0x66, 0xdb, 0x45, 0x0e, 0xfc, 0x32, 0x5d, 0x95, 0x78, 0x38, 0xc5, 0x01, 0x60, 0x09, 0x14, 0x36, + 0x71, 0x6d, 0xd4, 0x64, 0xbe, 0x55, 0x4c, 0x7b, 0x08, 0x85, 0x2a, 0xfd, 0x37, 0x69, 0x44, 0xc4, + 0x9e, 0x62, 0x46, 0xb6, 0x9c, 0x91, 0x20, 0x22, 0xe2, 0x60, 0x12, 0xc6, 0x72, 0x19, 0x58, 0x41, + 0x45, 0x3b, 0xde, 0x18, 0x7f, 0x31, 0x3d, 0x84, 0x8b, 0x40, 0x32, 0x5b, 0x5d, 0xdc, 0x39, 0x4e, + 0xa9, 0xde, 0x63, 0x52, 0xbf, 0xae, 0x5e, 0x56, 0x11, 0x92, 0xc7, 0xed, 0xd7, 0x25, 0x44, 0x45, + 0xfa, 0x98, 0x7d, 0x07, 0x3b, 0xf5, 0x76, 0xda, 0x46, 0x13, 0x79, 0xd4, 0xa7, 0x86, 0x1a, 0xe9, + 0xc9, 0x72, 0x7e, 0x4f, 0xc6, 0xe8, 0x69, 0xfe, 0x00, 0x7a, 0x3a, 0xec, 0x92, 0x71, 0xc0, 0x73, + 0xdc, 0xf0, 0x43, 0x5b, 0x32, 0x8e, 0x25, 0x63, 0x0c, 0x57, 0xbd, 0xfa, 0x87, 0x97, 0xc7, 0xaa, + 0xad, 0xc3, 0x6e, 0xa8, 0x51, 0x66, 0x8d, 0xec, 0xa0, 0xf2, 0x30, 0x1b, 0x6a, 0xd1, 0x34, 0x8c, + 0x01, 0xad, 0x39, 0x8a, 0xd6, 0x67, 0xe9, 0x30, 0x9a, 0xf2, 0x9e, 0x76, 0xd7, 0x76, 0xdc, 0x64, + 0x7b, 0xda, 0x1e, 0x75, 0x2a, 0xfe, 0x2f, 0xe9, 0x21, 0x39, 0xfe, 0x2c, 0xfb, 0xa8, 0x86, 0xcf, + 0x04, 0x87, 0xe4, 0x06, 0x11, 0x90, 0x3e, 0xbc, 0x6f, 0x3b, 0xa4, 0xc1, 0x73, 0x58, 0x75, 0xa4, + 0x3a, 0x30, 0xb2, 0xa1, 0x73, 0x18, 0x75, 0x8c, 0xa6, 0x21, 0x7d, 0xbc, 0xfe, 0x9e, 0x19, 0x38, + 0xdf, 0x32, 0xc6, 0x81, 0xd3, 0xd7, 0xcc, 0xfc, 0x90, 0x9a, 0x39, 0xec, 0x5e, 0x1d, 0xe5, 0xf5, + 0xe8, 0x06, 0xcc, 0x61, 0xf6, 0xea, 0x62, 0x88, 0x48, 0x1f, 0xf1, 0xb7, 0x4a, 0x20, 0xaf, 0x8d, + 0x7f, 0xbc, 0x1c, 0x76, 0x2e, 0x82, 0x79, 0xa5, 0x8d, 0x6c, 0xb8, 0x1c, 0x66, 0x2e, 0x12, 0x49, + 0xc2, 0x18, 0x2e, 0x3b, 0x38, 0x0a, 0x66, 0xf0, 0x92, 0x88, 0xbf, 0x25, 0xfe, 0xf7, 0x74, 0xd4, + 0x7c, 0x53, 0x8a, 0xba, 0xfa, 0x02, 0x30, 0xe9, 0xef, 0x9b, 0xd1, 0x91, 0x73, 0x41, 0x4c, 0x3f, + 0x83, 0x7d, 0xb7, 0xe0, 0xff, 0x03, 0x39, 0xae, 0x8c, 0x7c, 0x5f, 0x7d, 0x58, 0xc7, 0x95, 0x43, + 0xdd, 0x5b, 0xff, 0x93, 0x70, 0x44, 0xfd, 0x8f, 0xe9, 0x61, 0xde, 0xbb, 0xe7, 0x9e, 0xeb, 0xb3, + 0xe7, 0xfe, 0x38, 0x8b, 0xa5, 0xc6, 0x63, 0x79, 0xb7, 0x28, 0x0b, 0x47, 0x38, 0xd6, 0x3e, 0x16, + 0xc0, 0x79, 0x8e, 0x83, 0x73, 0xf1, 0x40, 0xb4, 0x8c, 0xe1, 0x90, 0x6a, 0x2e, 0x1c, 0x73, 0x3f, + 0x96, 0xa2, 0x1e, 0xf7, 0x9c, 0x80, 0xc9, 0xed, 0x3b, 0x01, 0xc3, 0x69, 0x7a, 0xfe, 0x80, 0x9a, + 0xfe, 0x31, 0x56, 0x3a, 0x74, 0x5e, 0x3a, 0x9e, 0x2f, 0x8e, 0xc8, 0xe8, 0x46, 0xe6, 0xf7, 0x04, + 0xe2, 0x71, 0x9e, 0x13, 0x8f, 0xf2, 0xc1, 0x88, 0x49, 0x5f, 0x3e, 0xfe, 0xd0, 0x9f, 0xd0, 0x1e, + 0xb2, 0xbe, 0x0f, 0xbb, 0x55, 0xcc, 0x31, 0x71, 0x64, 0x23, 0xf7, 0x30, 0x5b, 0xc5, 0x83, 0x28, + 0x19, 0x43, 0xfc, 0xbb, 0x59, 0x30, 0x8d, 0x69, 0x3a, 0x6f, 0xb6, 0xb6, 0x90, 0x0b, 0x7f, 0x95, + 0xf8, 0x93, 0xfa, 0xd1, 0x46, 0x47, 0x14, 0x12, 0x2a, 0xea, 0x6c, 0x72, 0x52, 0x8f, 0x0e, 0x42, + 0xe4, 0x02, 0x43, 0xe0, 0xb8, 0xa3, 0x56, 0x0e, 0xa4, 0x20, 0x7d, 0xc8, 0x3e, 0x42, 0xdc, 0x6d, + 0xd6, 0x8c, 0x2b, 0xf6, 0xae, 0x0b, 0x5f, 0x3a, 0x82, 0x0e, 0x7a, 0x11, 0x14, 0xda, 0xb8, 0x34, + 0x7a, 0x84, 0x26, 0x7e, 0xba, 0x43, 0x59, 0x40, 0xea, 0x57, 0xe9, 0x9f, 0x49, 0xcf, 0xd1, 0x84, + 0x7c, 0x24, 0xe5, 0x8c, 0xfb, 0x1c, 0xcd, 0x80, 0xfa, 0xc7, 0x72, 0xaf, 0xd1, 0xa4, 0x57, 0xbb, + 0xb9, 0x63, 0xba, 0x23, 0x8a, 0xb6, 0xd1, 0xf6, 0xca, 0xf2, 0xa3, 0x6d, 0xe0, 0x97, 0xa4, 0xa7, + 0x7b, 0x19, 0xae, 0x78, 0xbf, 0x8f, 0xfb, 0x74, 0x6f, 0x7c, 0xf5, 0xe9, 0x63, 0xf2, 0x5f, 0x88, + 0x66, 0x9d, 0x23, 0x8e, 0xd2, 0x29, 0xfa, 0x60, 0x0f, 0xad, 0x2c, 0x84, 0xb4, 0xc3, 0x53, 0x96, + 0xbe, 0xf5, 0xa7, 0x0f, 0xcc, 0x07, 0x4e, 0x81, 0xfc, 0x12, 0xba, 0xb0, 0xbb, 0x05, 0xef, 0x02, + 0x93, 0xba, 0x83, 0x50, 0xc5, 0xda, 0xb4, 0x3d, 0xee, 0xba, 0xde, 0xb3, 0x0f, 0x09, 0x7d, 0xf3, + 0xf0, 0xd8, 0x46, 0x46, 0x2b, 0x3c, 0x2b, 0xe8, 0xbf, 0xc2, 0x87, 0xb2, 0x20, 0xa7, 0xb9, 0x86, + 0x0b, 0xa7, 0x02, 0x6c, 0xe1, 0x4b, 0x59, 0x2c, 0xee, 0xe2, 0xb1, 0xb8, 0x89, 0xe3, 0x05, 0xa6, + 0x60, 0xc1, 0xfb, 0x3f, 0x02, 0x00, 0x08, 0x26, 0x1f, 0xe8, 0xda, 0x96, 0x97, 0xc3, 0x3f, 0xae, + 0xea, 0xbf, 0xc3, 0xd7, 0x07, 0xec, 0xbe, 0x87, 0x63, 0xf7, 0xd3, 0xc4, 0xaa, 0x18, 0xc3, 0x4a, + 0x5b, 0x16, 0x4c, 0x79, 0xac, 0x5d, 0x45, 0x46, 0xab, 0x0b, 0x9f, 0x1c, 0x0a, 0x7f, 0x04, 0x9b, + 0xe1, 0x07, 0x85, 0x03, 0xa0, 0x92, 0x56, 0x05, 0x85, 0x47, 0x7b, 0x74, 0xf8, 0x9b, 0xff, 0x59, + 0x3e, 0x70, 0xcc, 0x59, 0x90, 0x33, 0xad, 0x4d, 0x9b, 0xfa, 0x17, 0x5e, 0x1b, 0x51, 0xb6, 0x27, + 0x13, 0x2a, 0xce, 0x28, 0x18, 0x1d, 0x35, 0x9e, 0xac, 0xb1, 0x5c, 0x34, 0x98, 0xf3, 0x6a, 0x87, + 0xff, 0xc7, 0x40, 0x66, 0xcb, 0x32, 0xc8, 0x75, 0x0c, 0x77, 0x9b, 0x56, 0x8d, 0x9f, 0x3d, 0x1b, + 0x79, 0xd7, 0x32, 0x2c, 0xdb, 0xba, 0xb2, 0x63, 0xbe, 0x28, 0xb8, 0xcf, 0x98, 0x4b, 0xf3, 0x28, + 0xdf, 0x42, 0x16, 0x72, 0x0c, 0x17, 0x69, 0x7b, 0x5b, 0x78, 0x8e, 0x35, 0xa9, 0xb2, 0x49, 0x89, + 0xe5, 0xdf, 0xa3, 0x38, 0x5a, 0xfe, 0x37, 0xcd, 0x36, 0xc2, 0x51, 0xb5, 0xa8, 0xfc, 0xfb, 0xef, + 0x89, 0xe4, 0xbf, 0x4f, 0x15, 0xe9, 0xa3, 0xf1, 0xdd, 0x2c, 0x98, 0xd1, 0x3c, 0x81, 0xd3, 0x76, + 0x77, 0x76, 0x0c, 0xe7, 0x0a, 0xbc, 0x21, 0x44, 0x85, 0x11, 0xcd, 0x0c, 0xef, 0x97, 0xf2, 0x07, + 0xc2, 0x57, 0x79, 0x53, 0xd5, 0x66, 0x6a, 0x48, 0xac, 0x07, 0xcf, 0x04, 0x79, 0x4f, 0xbc, 0x7d, + 0x8f, 0xcb, 0x58, 0x45, 0x20, 0x39, 0x05, 0xa3, 0x8f, 0x0d, 0xa4, 0x6d, 0x0c, 0x91, 0x4f, 0xb2, + 0xe0, 0xa8, 0xe6, 0x1a, 0xcd, 0x8b, 0x2b, 0xb6, 0x63, 0xef, 0xba, 0xa6, 0x85, 0xba, 0xf0, 0x49, + 0x21, 0x02, 0xbe, 0xfc, 0x67, 0x42, 0xf9, 0x87, 0xff, 0x9a, 0x11, 0x1d, 0x45, 0x83, 0x6e, 0x95, + 0x2d, 0x3e, 0x22, 0x98, 0x98, 0xd8, 0xb8, 0x28, 0x52, 0xe2, 0x58, 0x4e, 0x49, 0x14, 0x95, 0xcb, + 0x1d, 0xdb, 0x71, 0xd7, 0xec, 0xa6, 0xd1, 0xee, 0xba, 0xb6, 0x83, 0x60, 0x2d, 0x96, 0x6b, 0x5e, + 0x0f, 0xd3, 0xb2, 0x9b, 0xe1, 0xe0, 0x48, 0xdf, 0x58, 0xb1, 0x93, 0x78, 0x19, 0xff, 0x88, 0xf0, + 0x2e, 0x23, 0xe1, 0x4a, 0x2f, 0x45, 0x11, 0x72, 0xde, 0xaf, 0x4b, 0x4b, 0x76, 0xb0, 0x45, 0x6c, + 0xe7, 0x51, 0x88, 0xa8, 0x31, 0x2c, 0x95, 0x67, 0xc1, 0xac, 0xb6, 0x7b, 0x21, 0x28, 0xa4, 0xcb, + 0x1a, 0x21, 0x6f, 0x10, 0x8e, 0x28, 0x42, 0x05, 0x8f, 0x2d, 0x28, 0x82, 0xbf, 0x37, 0x82, 0xd9, + 0x2e, 0x9b, 0x8d, 0xe2, 0xcd, 0x27, 0x0a, 0x46, 0x12, 0x19, 0x5c, 0x6b, 0xfa, 0x0c, 0x7c, 0x4f, + 0x16, 0xcc, 0xd6, 0x3a, 0xc8, 0x42, 0x2d, 0xe2, 0x05, 0xc9, 0x31, 0xf0, 0xa1, 0x84, 0x0c, 0xe4, + 0x0a, 0x8a, 0x60, 0x60, 0xe8, 0xb1, 0xbc, 0xe4, 0x33, 0x2f, 0x4c, 0x48, 0xc4, 0xb8, 0xb8, 0xda, + 0xd2, 0x67, 0xdc, 0x97, 0xb2, 0x60, 0x5a, 0xdd, 0xb5, 0xea, 0x8e, 0xed, 0x8d, 0xc6, 0x0e, 0xbc, + 0x3b, 0xec, 0x20, 0x6e, 0x05, 0xc7, 0x5a, 0xbb, 0x0e, 0x5e, 0x7f, 0xaa, 0x58, 0x1a, 0x6a, 0xda, + 0x56, 0xab, 0x8b, 0xdb, 0x91, 0x57, 0xf7, 0x7f, 0xb8, 0x33, 0xf7, 0xe0, 0xdf, 0x4a, 0x19, 0xf8, + 0xb3, 0xc2, 0x61, 0x89, 0x48, 0xe3, 0x99, 0xaa, 0xc5, 0x7b, 0x02, 0xc1, 0xe0, 0x43, 0x83, 0x6a, + 0x48, 0x9f, 0xb9, 0x1f, 0xca, 0x02, 0xb9, 0xd4, 0x6c, 0xda, 0xbb, 0x96, 0xab, 0xa1, 0x36, 0x6a, + 0xba, 0xba, 0x63, 0x34, 0x11, 0x3c, 0x1a, 0xf0, 0x98, 0x72, 0xed, 0x21, 0xe1, 0xfd, 0x45, 0xd2, + 0xa6, 0xfd, 0x65, 0x26, 0x60, 0x9e, 0xd8, 0x2e, 0xa2, 0x60, 0x45, 0x63, 0xb8, 0x67, 0x27, 0x0b, + 0x72, 0x75, 0xd3, 0xda, 0x62, 0xa3, 0x35, 0x1d, 0xf7, 0x6c, 0x9d, 0x16, 0xba, 0x4c, 0xa5, 0x91, + 0xbc, 0xc8, 0xb7, 0x81, 0xe3, 0xd6, 0xee, 0xce, 0x05, 0xe4, 0xd4, 0x36, 0xf1, 0x48, 0xd0, 0xd5, + 0x6d, 0x0d, 0x59, 0xc4, 0x50, 0xca, 0xab, 0x7d, 0xbf, 0xf1, 0x66, 0x82, 0x80, 0x81, 0xeb, 0x51, + 0x12, 0xc1, 0xeb, 0x80, 0xa8, 0x2c, 0x43, 0x54, 0x22, 0xd3, 0xb6, 0x4f, 0xe1, 0xe9, 0xf3, 0xf7, + 0xeb, 0x59, 0x30, 0xb1, 0x8e, 0x5c, 0xc7, 0x6c, 0x76, 0xe1, 0x17, 0xbc, 0x61, 0x08, 0xb9, 0x75, + 0xc3, 0x31, 0x76, 0x90, 0x8b, 0x9c, 0x2e, 0x54, 0x42, 0xa6, 0x43, 0x30, 0xd9, 0x69, 0x1b, 0xee, + 0xa6, 0xed, 0xec, 0x50, 0x9b, 0x21, 0x78, 0xf7, 0xec, 0x83, 0x3d, 0xe4, 0x74, 0x43, 0xb2, 0xfc, + 0x57, 0x2a, 0xe0, 0xe2, 0xd6, 0x18, 0x25, 0x65, 0x81, 0x23, 0xe3, 0x40, 0xd6, 0x98, 0x48, 0x89, + 0x63, 0xb9, 0x4b, 0x46, 0x5a, 0xb3, 0xb7, 0xe0, 0x6b, 0x25, 0x90, 0xc3, 0x92, 0xf7, 0xd6, 0x0c, + 0x37, 0x85, 0xd8, 0x41, 0xdd, 0xae, 0xb1, 0x85, 0xfc, 0x29, 0x04, 0x7d, 0x95, 0xef, 0x00, 0xf9, + 0x36, 0xda, 0x43, 0x6d, 0x4c, 0xc6, 0xdc, 0x6d, 0x37, 0x70, 0x2d, 0x5b, 0xb3, 0xb7, 0x16, 0xbc, + 0xb2, 0x16, 0x68, 0x39, 0x0b, 0x6b, 0x5e, 0x56, 0x95, 0xfc, 0x71, 0xe6, 0x05, 0x20, 0x8f, 0xdf, + 0xe5, 0x29, 0x90, 0x5f, 0x52, 0x16, 0x37, 0x56, 0x8a, 0x47, 0xbc, 0x47, 0x9f, 0xbe, 0x29, 0x90, + 0x5f, 0x2e, 0xe9, 0xa5, 0xb5, 0x62, 0xd6, 0x6b, 0x47, 0xa5, 0xba, 0x5c, 0x2b, 0x4a, 0x5e, 0x62, + 0xbd, 0x54, 0xad, 0x94, 0x8b, 0x39, 0x79, 0x1a, 0x4c, 0x9c, 0x2f, 0xa9, 0xd5, 0x4a, 0x75, 0xa5, + 0x98, 0x87, 0x7f, 0xc3, 0xe2, 0x77, 0x27, 0x8f, 0xdf, 0x8d, 0x51, 0x34, 0xf5, 0x83, 0xec, 0x57, + 0x02, 0xc8, 0xee, 0xe6, 0x20, 0xfb, 0x01, 0x91, 0x42, 0xc6, 0x80, 0x52, 0x16, 0x4c, 0xd4, 0x1d, + 0xbb, 0x89, 0xba, 0x5d, 0xf8, 0x4b, 0x59, 0x50, 0x28, 0x1b, 0x56, 0x13, 0xb5, 0xe1, 0x35, 0x21, + 0x54, 0xc4, 0x17, 0x28, 0x13, 0x1c, 0x07, 0xf8, 0x07, 0x96, 0x33, 0xf7, 0xf2, 0x9c, 0xb9, 0x85, + 0x6b, 0x14, 0x2d, 0x77, 0x81, 0x94, 0x19, 0xc1, 0x9f, 0x47, 0x02, 0xfe, 0x94, 0x39, 0xfe, 0x9c, + 0x15, 0x2f, 0x2a, 0x7d, 0x2e, 0x7d, 0x3b, 0x03, 0x8e, 0xaf, 0x20, 0x0b, 0x39, 0x66, 0x93, 0x10, + 0xef, 0xb7, 0xff, 0x6e, 0xbe, 0xfd, 0x4f, 0xe5, 0x88, 0xee, 0xf7, 0x07, 0xdf, 0xf8, 0x87, 0x83, + 0xc6, 0xdf, 0xcb, 0x35, 0xfe, 0x56, 0xc1, 0x72, 0xc6, 0x70, 0x71, 0xec, 0x14, 0x98, 0xa9, 0xda, + 0xae, 0xb9, 0x69, 0x36, 0xc9, 0xc6, 0xf1, 0x6b, 0x24, 0x90, 0x5b, 0x33, 0xbb, 0x2e, 0x7b, 0x02, + 0xfd, 0x34, 0x98, 0x36, 0xad, 0x66, 0x7b, 0xb7, 0x85, 0x54, 0x64, 0x10, 0x59, 0x99, 0x54, 0xd9, + 0xa4, 0x70, 0x3d, 0xde, 0x23, 0x4b, 0xf2, 0xd7, 0xe3, 0x3f, 0x25, 0x6c, 0x3b, 0xb1, 0x24, 0xe0, + 0xf3, 0xdd, 0x11, 0x43, 0x52, 0x09, 0xcc, 0x5a, 0x4c, 0x56, 0xff, 0xc8, 0x79, 0x6f, 0xc4, 0x66, + 0xb6, 0x38, 0x95, 0xff, 0x03, 0xbe, 0x4f, 0xc8, 0xd4, 0x1a, 0x44, 0x50, 0x32, 0x64, 0x96, 0x93, + 0x23, 0x23, 0xcb, 0x60, 0xae, 0x52, 0xd5, 0x15, 0xb5, 0x5a, 0x5a, 0xa3, 0x59, 0x24, 0xf8, 0xdd, + 0x2c, 0xc8, 0xab, 0xa8, 0xd3, 0xbe, 0xc2, 0x86, 0xe4, 0xa4, 0xde, 0x5d, 0x99, 0xc0, 0xbb, 0x4b, + 0x5e, 0x06, 0xc0, 0x68, 0x7a, 0x15, 0xe3, 0xbb, 0x47, 0xb2, 0x7d, 0x03, 0xc5, 0x71, 0x0d, 0x2c, + 0x05, 0xb9, 0x55, 0xe6, 0x4f, 0xf8, 0x72, 0xe1, 0xe5, 0x1e, 0xae, 0x34, 0x4c, 0x61, 0x44, 0x77, + 0xf0, 0x7e, 0xa1, 0x15, 0x9a, 0x81, 0xc5, 0x1d, 0x0e, 0xfb, 0xbf, 0x92, 0x05, 0x39, 0xdd, 0x9b, + 0x7f, 0x31, 0x53, 0xb1, 0x4f, 0x0e, 0x27, 0xe3, 0x5e, 0x31, 0x11, 0x32, 0x7e, 0x0f, 0x98, 0x61, + 0x25, 0x96, 0xee, 0x6f, 0xc4, 0x8a, 0x38, 0xf7, 0xc3, 0x30, 0x12, 0xde, 0x87, 0x9c, 0xc3, 0x61, + 0xf1, 0x57, 0x6f, 0x01, 0x60, 0x1d, 0x79, 0x76, 0x6d, 0x77, 0xdb, 0xec, 0xc0, 0xff, 0x26, 0x81, + 0xa9, 0x15, 0xe4, 0x6a, 0xae, 0xe1, 0xee, 0x76, 0x7b, 0xd6, 0x28, 0x2d, 0xbb, 0x6c, 0x34, 0xb7, + 0x11, 0xed, 0x8e, 0xfc, 0x57, 0xf8, 0x6e, 0x49, 0x74, 0x13, 0x30, 0xac, 0x67, 0x21, 0xa8, 0x23, + 0x02, 0x93, 0xa7, 0x83, 0x5c, 0xcb, 0x70, 0x0d, 0x8a, 0xc5, 0x35, 0x3d, 0x58, 0x84, 0x05, 0xa9, + 0x38, 0x1b, 0xfc, 0xad, 0xac, 0xc8, 0x2e, 0xa0, 0x40, 0xfd, 0xc9, 0x40, 0x78, 0x5f, 0x66, 0x08, + 0x14, 0x8e, 0x81, 0xd9, 0x6a, 0x4d, 0x6f, 0xac, 0xd5, 0x56, 0x56, 0x14, 0x2f, 0xb5, 0x28, 0xc9, + 0x27, 0x81, 0x5c, 0x2f, 0xdd, 0xbf, 0xae, 0x54, 0xf5, 0x46, 0xb5, 0xb6, 0xa4, 0xd0, 0x3f, 0x73, + 0xf2, 0x51, 0x30, 0x5d, 0x2e, 0x95, 0x57, 0xfd, 0x84, 0xbc, 0x3c, 0x0f, 0x8e, 0xaf, 0x2b, 0xeb, + 0x8b, 0x8a, 0xaa, 0xad, 0x56, 0xea, 0x0d, 0xaf, 0x98, 0xe5, 0xda, 0x46, 0x75, 0xa9, 0x58, 0x90, + 0x21, 0x38, 0xc9, 0x7c, 0x39, 0xaf, 0xd6, 0xaa, 0x2b, 0x0d, 0x4d, 0x2f, 0xe9, 0x4a, 0x71, 0x42, + 0xbe, 0x0a, 0x1c, 0x2d, 0x97, 0xaa, 0x38, 0x7b, 0xb9, 0x56, 0xad, 0x2a, 0x65, 0xbd, 0x38, 0x09, + 0xff, 0x35, 0x07, 0xa6, 0x2b, 0xdd, 0xaa, 0xb1, 0x83, 0xce, 0x19, 0x6d, 0xb3, 0x05, 0x7f, 0x96, + 0xb1, 0x26, 0x6f, 0x04, 0xb3, 0x0e, 0x79, 0x44, 0x2d, 0xdd, 0x44, 0x04, 0xcd, 0x59, 0x95, 0x4f, + 0x94, 0x4f, 0x82, 0x82, 0x85, 0x0b, 0xa0, 0xac, 0xa1, 0x6f, 0xf2, 0x22, 0x00, 0xe4, 0x49, 0x0f, + 0x6f, 0xc1, 0x3b, 0xd3, 0xab, 0x4d, 0xc6, 0x0e, 0xea, 0x22, 0x67, 0xcf, 0x6c, 0x22, 0x3f, 0xa7, + 0xca, 0xfc, 0x05, 0xbf, 0x2a, 0x89, 0x2e, 0x0a, 0x32, 0xa0, 0x32, 0xcd, 0x89, 0xe8, 0x0d, 0x7f, + 0x46, 0x12, 0x59, 0xd2, 0x13, 0x2a, 0x32, 0x99, 0xa4, 0xbc, 0x32, 0x3b, 0x84, 0xa4, 0xcc, 0x82, + 0x29, 0xbd, 0x56, 0x6b, 0x68, 0xab, 0x35, 0x55, 0x2f, 0x4a, 0xf2, 0x0c, 0x98, 0xf4, 0x5e, 0xd7, + 0x6a, 0xd5, 0x95, 0x62, 0x4e, 0x3e, 0x01, 0x8e, 0xad, 0x96, 0xb4, 0x46, 0xa5, 0x7a, 0xae, 0xb4, + 0x56, 0x59, 0x6a, 0x94, 0x57, 0x4b, 0xaa, 0x56, 0xcc, 0xcb, 0xd7, 0x80, 0x13, 0x7a, 0x45, 0x51, + 0x1b, 0xcb, 0x4a, 0x49, 0xdf, 0x50, 0x15, 0xad, 0x51, 0xad, 0x35, 0xaa, 0xa5, 0x75, 0xa5, 0x58, + 0xf0, 0xd4, 0x1f, 0x7f, 0x0a, 0xc5, 0x66, 0x62, 0xbf, 0x30, 0x4e, 0x46, 0x08, 0xe3, 0x54, 0xaf, + 0x30, 0x02, 0x56, 0xac, 0x54, 0x45, 0x53, 0xd4, 0x73, 0x4a, 0x71, 0xba, 0x9f, 0xac, 0xcd, 0xc8, + 0xc7, 0x41, 0xd1, 0xa3, 0xa1, 0x51, 0xd1, 0xfc, 0x9c, 0x4b, 0xc5, 0x59, 0xf8, 0xb1, 0x02, 0x38, + 0xa9, 0xa2, 0x2d, 0xb3, 0xeb, 0x22, 0xa7, 0x6e, 0x5c, 0xd9, 0x41, 0x96, 0xeb, 0x77, 0xf2, 0xff, + 0x3b, 0xb1, 0x30, 0xae, 0x83, 0xd9, 0x0e, 0x29, 0x63, 0x1d, 0xb9, 0xdb, 0x76, 0x8b, 0x8e, 0xc2, + 0x4f, 0x8d, 0xec, 0x39, 0x16, 0xea, 0x6c, 0x76, 0x95, 0xff, 0x9b, 0x91, 0x6d, 0x29, 0x46, 0xb6, + 0x73, 0xc3, 0xc8, 0xb6, 0x7c, 0x1d, 0x98, 0xda, 0xed, 0x22, 0x47, 0xd9, 0x31, 0xcc, 0xb6, 0x7f, + 0x8b, 0x59, 0x90, 0x00, 0xdf, 0x91, 0x13, 0x75, 0x33, 0x65, 0xda, 0xd2, 0x9f, 0x8d, 0x11, 0x7d, + 0xeb, 0x29, 0x00, 0x68, 0x63, 0x37, 0x9c, 0x36, 0x15, 0x56, 0x26, 0xc5, 0xa3, 0xef, 0x82, 0xd9, + 0x6e, 0x9b, 0xd6, 0x56, 0xb0, 0x58, 0x1f, 0x26, 0xc0, 0x57, 0x4a, 0x22, 0x6e, 0xa7, 0x49, 0x69, + 0x4b, 0xa6, 0x4d, 0x2f, 0xcf, 0x8e, 0xb9, 0xdf, 0xdd, 0xaf, 0x3a, 0x05, 0xb9, 0x08, 0x66, 0x70, + 0x1a, 0xd5, 0xc0, 0xe2, 0x84, 0xd7, 0x07, 0xfb, 0xc5, 0xad, 0x2b, 0xfa, 0x6a, 0x6d, 0x29, 0xf8, + 0x36, 0xe9, 0x15, 0xe9, 0x11, 0x53, 0xaa, 0xde, 0x8f, 0xb5, 0x71, 0x4a, 0x7e, 0x12, 0xb8, 0x86, + 0xe9, 0xb0, 0x4b, 0x6b, 0xaa, 0x52, 0x5a, 0xba, 0xbf, 0xa1, 0xbc, 0xb0, 0xa2, 0xe9, 0x1a, 0xaf, + 0x5c, 0xbe, 0x1e, 0x4d, 0x7b, 0xf4, 0x2a, 0xeb, 0xa5, 0xca, 0x1a, 0xed, 0xdf, 0x97, 0x6b, 0xea, + 0x7a, 0x49, 0x2f, 0xce, 0xc0, 0xd7, 0x4a, 0xa0, 0xb8, 0x82, 0xdc, 0xba, 0xed, 0xb8, 0x46, 0x7b, + 0xcd, 0xb4, 0x2e, 0x6e, 0x38, 0x6d, 0xd6, 0x66, 0xfa, 0x17, 0xe1, 0xb3, 0xb5, 0xfc, 0x10, 0xc9, + 0x15, 0x18, 0xbd, 0x8c, 0xdd, 0xc1, 0xd9, 0x42, 0x61, 0x0a, 0x13, 0xe0, 0x8b, 0xb3, 0x22, 0x67, + 0x69, 0xc5, 0x6b, 0x4d, 0x26, 0x27, 0x2f, 0x19, 0xf7, 0xf8, 0xdc, 0x07, 0xb5, 0x02, 0x7c, 0x30, + 0x07, 0x26, 0x97, 0x4d, 0xcb, 0x68, 0x9b, 0x2f, 0xe2, 0x02, 0xc4, 0x85, 0x7d, 0x4c, 0x26, 0xa6, + 0x8f, 0xc9, 0x0e, 0x35, 0x7e, 0xfe, 0xa2, 0x24, 0xba, 0x61, 0xc1, 0xf0, 0xde, 0x27, 0x32, 0x62, + 0xf0, 0xfc, 0xfd, 0xac, 0xc8, 0x96, 0xc4, 0xe0, 0xf2, 0x92, 0x61, 0xf8, 0x89, 0xef, 0x0f, 0x1b, + 0xab, 0x47, 0xbf, 0x27, 0xfb, 0x89, 0xc2, 0x14, 0xfc, 0x9c, 0x04, 0xe0, 0x0a, 0x72, 0xcf, 0x21, + 0x27, 0x98, 0x0a, 0xe0, 0x5e, 0x9f, 0xda, 0xdb, 0x8c, 0xca, 0xbe, 0x95, 0x05, 0xf0, 0x3c, 0x0f, + 0x60, 0x29, 0x46, 0x79, 0x22, 0x8a, 0x8e, 0x50, 0xde, 0x0a, 0x28, 0x74, 0xf1, 0x77, 0x2a, 0x66, + 0xcf, 0x8c, 0x1e, 0x2e, 0x71, 0x61, 0x6c, 0xe9, 0xa4, 0x60, 0x95, 0x16, 0x00, 0xbf, 0x13, 0x4c, + 0x82, 0x7e, 0x98, 0x93, 0x8e, 0xe5, 0x03, 0x13, 0x9b, 0x4c, 0x5e, 0x9c, 0x74, 0xc5, 0xa5, 0x9f, + 0x7d, 0x03, 0xbf, 0x98, 0x03, 0xc7, 0xfb, 0x35, 0x87, 0xbd, 0x47, 0xee, 0x38, 0xc8, 0x23, 0x3c, + 0xe2, 0x13, 0x65, 0x27, 0x2f, 0xf2, 0xb3, 0xc0, 0x09, 0xba, 0x61, 0x7a, 0x01, 0xe9, 0x76, 0x15, + 0x5d, 0xea, 0xb6, 0x91, 0xeb, 0x22, 0x07, 0xb7, 0x6c, 0x52, 0xed, 0xff, 0x11, 0xfe, 0x9d, 0x24, + 0xea, 0x9a, 0x3e, 0x80, 0xdf, 0x11, 0x9a, 0xfe, 0xd3, 0x92, 0x88, 0xb3, 0x79, 0xb2, 0xb2, 0x93, + 0xa1, 0xf8, 0xb2, 0x71, 0x8f, 0xf0, 0xfd, 0x87, 0x56, 0xac, 0xf3, 0x24, 0xdd, 0x1f, 0xa1, 0xcf, + 0x29, 0x6a, 0x65, 0xb9, 0xa2, 0x78, 0xe3, 0xfd, 0x09, 0x70, 0x2c, 0xfc, 0xb6, 0x74, 0x7f, 0x43, + 0x53, 0xaa, 0x7a, 0x71, 0xd2, 0xeb, 0x40, 0x48, 0xf2, 0x72, 0xa9, 0xb2, 0xa6, 0x2c, 0x35, 0xf4, + 0x9a, 0xf7, 0x65, 0x69, 0xb8, 0x31, 0x1f, 0xbe, 0x34, 0x07, 0x8e, 0x62, 0xde, 0x5e, 0xc1, 0x5c, + 0xf5, 0x98, 0xd2, 0xe3, 0xb9, 0x12, 0x00, 0x34, 0x45, 0xd8, 0x0b, 0x3f, 0x23, 0x7c, 0x47, 0x18, + 0x03, 0x61, 0x4f, 0x1d, 0x11, 0x92, 0xf1, 0xed, 0xac, 0xc8, 0x79, 0x4f, 0xe1, 0x62, 0x93, 0x09, + 0xc5, 0x3f, 0x8f, 0x7b, 0x28, 0x88, 0x06, 0x1f, 0x9b, 0x7f, 0x65, 0xfc, 0xf3, 0x0b, 0xeb, 0x15, + 0x15, 0x8b, 0xc3, 0x1c, 0x00, 0x38, 0x05, 0x4b, 0x10, 0x91, 0x83, 0xbe, 0x03, 0x49, 0x94, 0x1c, + 0x94, 0xca, 0x7a, 0xe5, 0x9c, 0x12, 0x25, 0x07, 0x9f, 0x96, 0xc0, 0xe4, 0x0a, 0x72, 0xbd, 0xc9, + 0x4e, 0x17, 0x3e, 0x4f, 0x60, 0x61, 0xc6, 0xb3, 0x2f, 0xf0, 0xe5, 0xc8, 0xc1, 0xfc, 0x9c, 0xbc, + 0xc1, 0x9f, 0x1a, 0xc6, 0x36, 0xf0, 0xab, 0x8e, 0x18, 0x48, 0x9e, 0x03, 0xf2, 0xae, 0xf7, 0x99, + 0xae, 0x0f, 0x3f, 0x39, 0x72, 0x1c, 0xf1, 0x0a, 0x59, 0x32, 0x5c, 0x43, 0x25, 0xf9, 0x99, 0x61, + 0x43, 0xd0, 0xa8, 0x88, 0x20, 0xe4, 0xfb, 0xd1, 0x30, 0xfc, 0x1b, 0x09, 0x9c, 0x20, 0xfa, 0x51, + 0xea, 0x74, 0x34, 0xd7, 0x76, 0x90, 0x8a, 0x9a, 0xc8, 0xec, 0xb8, 0x3d, 0x0b, 0x6f, 0x0e, 0x49, + 0xf5, 0x77, 0xf6, 0xe8, 0x2b, 0x7c, 0xb3, 0x24, 0x1a, 0xd1, 0x70, 0x9f, 0x3e, 0xf6, 0xd4, 0x17, + 0xa1, 0xec, 0x8f, 0x67, 0x45, 0x62, 0x14, 0x26, 0x2c, 0x3c, 0x19, 0x50, 0x1f, 0x3e, 0x04, 0xa0, + 0xfc, 0x25, 0x15, 0x55, 0x29, 0x2b, 0x95, 0xba, 0x37, 0x08, 0x5c, 0x0f, 0xae, 0xad, 0x6f, 0xa8, + 0xe5, 0xd5, 0x92, 0xa6, 0x34, 0x54, 0x65, 0xa5, 0xa2, 0xe9, 0x6a, 0x49, 0xaf, 0xd4, 0x7c, 0x02, + 0x26, 0xe4, 0xeb, 0xc0, 0xbc, 0xb6, 0xb1, 0xa8, 0x95, 0xd5, 0x4a, 0x1d, 0xa7, 0xab, 0x4a, 0x55, + 0x39, 0x4f, 0xbf, 0x4e, 0xc2, 0x0f, 0x16, 0xc1, 0xb4, 0x67, 0x99, 0x6b, 0xc4, 0x60, 0x87, 0xdf, + 0xcc, 0x81, 0x69, 0x15, 0x75, 0xed, 0xf6, 0x1e, 0x36, 0xde, 0xc7, 0x35, 0x27, 0xf8, 0x96, 0x24, + 0x7a, 0x1a, 0x8a, 0x21, 0x76, 0x81, 0x21, 0x34, 0x7a, 0x06, 0x68, 0xf8, 0xd1, 0x81, 0xa9, 0xdd, + 0x12, 0x26, 0xc8, 0x0b, 0x40, 0xb6, 0x2f, 0x59, 0xc8, 0xd1, 0x9a, 0x97, 0x14, 0x77, 0xbb, 0xd4, + 0x6a, 0x39, 0xa8, 0xdb, 0xa5, 0xcb, 0x0a, 0x7d, 0xbe, 0xc8, 0x37, 0x83, 0xa3, 0x38, 0x95, 0xc9, + 0x4c, 0x8e, 0x6e, 0xf6, 0x26, 0x07, 0x39, 0x4b, 0xd6, 0x15, 0x3f, 0x67, 0x9e, 0xc9, 0x19, 0x26, + 0xb3, 0xce, 0x87, 0x05, 0xde, 0xe7, 0xf5, 0x34, 0x98, 0xb6, 0x8c, 0x1d, 0xa4, 0x5c, 0xee, 0x98, + 0x0e, 0xea, 0xce, 0x4f, 0xe0, 0xdd, 0x34, 0x36, 0x09, 0xfe, 0xbe, 0xd0, 0xe9, 0x2d, 0x31, 0x8e, + 0x25, 0x93, 0xfd, 0x95, 0x21, 0x44, 0xbf, 0x4f, 0x3f, 0x23, 0xc1, 0x0f, 0x4a, 0x60, 0x86, 0x12, + 0x55, 0xb2, 0xae, 0x54, 0x5a, 0xf0, 0x7a, 0xce, 0x2c, 0x35, 0xbc, 0x34, 0xdf, 0x2c, 0xc5, 0x2f, + 0xf0, 0xe7, 0x24, 0x51, 0x77, 0xa2, 0x3e, 0x0d, 0xc7, 0x75, 0x44, 0xbb, 0xb8, 0x6c, 0xda, 0xbb, + 0xd4, 0xa5, 0x66, 0x52, 0x25, 0x2f, 0x69, 0xae, 0xb6, 0xc1, 0x0f, 0x09, 0x39, 0x2b, 0x09, 0x36, + 0xe3, 0x90, 0x00, 0xfc, 0xb8, 0x04, 0xe6, 0x28, 0x55, 0x1a, 0xf5, 0x9a, 0x15, 0x72, 0x1f, 0xff, + 0x79, 0x61, 0x43, 0xb0, 0x4f, 0xfb, 0x69, 0x4d, 0x4f, 0x18, 0x20, 0x3f, 0x22, 0x14, 0x6a, 0x44, + 0xb8, 0x21, 0x87, 0x04, 0xe5, 0x3b, 0x73, 0x60, 0x7a, 0xa3, 0x8b, 0x1c, 0xea, 0x17, 0x07, 0x1f, + 0xc9, 0x01, 0x69, 0x05, 0x71, 0x3b, 0x9c, 0xaf, 0xc8, 0x89, 0xae, 0xd6, 0xb1, 0x8d, 0x65, 0x0a, + 0xf5, 0x6c, 0xa4, 0x08, 0xd8, 0x6e, 0x02, 0x73, 0x84, 0xa5, 0x25, 0xd7, 0xf5, 0x8c, 0x44, 0xff, + 0x10, 0x40, 0x4f, 0xea, 0x28, 0xf6, 0x70, 0x70, 0x5d, 0x5e, 0x96, 0xb2, 0x47, 0xd3, 0x1a, 0xda, + 0x24, 0x81, 0xa8, 0x72, 0x6a, 0x4f, 0x2a, 0xbe, 0xb8, 0xb9, 0x83, 0x88, 0x37, 0x28, 0x93, 0x39, + 0x8f, 0x33, 0xf7, 0xfb, 0x04, 0xbf, 0x29, 0x14, 0xa1, 0x4f, 0x9c, 0x3b, 0xc9, 0x64, 0xa1, 0x33, + 0x1a, 0x93, 0xe4, 0x38, 0x28, 0x7a, 0x39, 0xf0, 0xc6, 0x88, 0xaa, 0x68, 0xb5, 0xb5, 0x73, 0x4a, + 0xff, 0xf5, 0x85, 0x3c, 0x7c, 0x99, 0x04, 0xa6, 0x16, 0x1d, 0xdb, 0x68, 0x35, 0x8d, 0xae, 0x0b, + 0xbf, 0x93, 0x05, 0x33, 0x75, 0xe3, 0x4a, 0xdb, 0x36, 0x5a, 0xd8, 0x13, 0xb1, 0xa7, 0x2f, 0xe8, + 0x90, 0x4f, 0x7e, 0x5f, 0x40, 0x5f, 0x79, 0x37, 0xfb, 0xc0, 0x11, 0x3e, 0x23, 0x72, 0x95, 0x58, + 0xb0, 0xff, 0x96, 0xed, 0x17, 0xfa, 0xcb, 0xa7, 0x6b, 0x81, 0xa5, 0x29, 0xc2, 0xa2, 0xfc, 0xa0, + 0x58, 0x30, 0x2f, 0x91, 0x22, 0x0f, 0x67, 0xbb, 0xfc, 0xc1, 0x49, 0x50, 0x58, 0x42, 0xd8, 0x8a, + 0xfb, 0xed, 0x2c, 0x98, 0xa0, 0x97, 0xe9, 0xc3, 0x3b, 0x38, 0x27, 0xc7, 0x16, 0xce, 0x10, 0x74, + 0xc7, 0xc1, 0xbb, 0x37, 0x59, 0x67, 0x4e, 0x2f, 0xe1, 0xe7, 0x04, 0xee, 0x5f, 0xa4, 0xde, 0x88, + 0x0b, 0xfc, 0x93, 0xb9, 0x7f, 0xc5, 0x16, 0x95, 0xbe, 0x13, 0xd4, 0xbb, 0xb3, 0xd4, 0xe7, 0x89, + 0xe9, 0xf5, 0x7e, 0x95, 0x95, 0xcf, 0x58, 0x37, 0x30, 0x4a, 0x7c, 0x8c, 0xd7, 0xd2, 0xed, 0x60, + 0x82, 0xf0, 0xdc, 0x9f, 0x8f, 0xf6, 0x3a, 0x10, 0x90, 0x22, 0xf0, 0x49, 0x26, 0x3f, 0xa7, 0xa0, + 0xef, 0x58, 0x74, 0xe5, 0x63, 0x39, 0xd1, 0x37, 0x53, 0x45, 0xee, 0x25, 0xdb, 0xb9, 0xa8, 0xb9, + 0x86, 0x8b, 0xe0, 0x3f, 0x67, 0x81, 0xa4, 0x21, 0x97, 0x3d, 0x4b, 0x5c, 0x05, 0xc7, 0x48, 0x83, + 0x68, 0x46, 0xdc, 0x7f, 0x93, 0x86, 0x9c, 0xee, 0xcb, 0x04, 0x26, 0x9f, 0xba, 0xff, 0x57, 0xf8, + 0x4b, 0x7d, 0x43, 0x28, 0x64, 0xfb, 0x4c, 0x1a, 0x28, 0x67, 0x58, 0x02, 0x3d, 0x01, 0x8b, 0x90, + 0xd3, 0xdf, 0x13, 0x32, 0xab, 0xc5, 0xca, 0x3c, 0x94, 0xae, 0xe0, 0xcc, 0x04, 0xc8, 0x2b, 0x3b, + 0x1d, 0xf7, 0xca, 0x99, 0xa7, 0x80, 0x59, 0xcd, 0x75, 0x90, 0xb1, 0xc3, 0xd8, 0xd4, 0xae, 0x7d, + 0x11, 0x59, 0xbe, 0x4d, 0x8d, 0x5f, 0xee, 0xbc, 0x03, 0x4c, 0x58, 0x76, 0xc3, 0xd8, 0x75, 0xb7, + 0xe5, 0xeb, 0xf7, 0x5d, 0x7a, 0xbf, 0x4e, 0xbc, 0x75, 0x6b, 0xf4, 0x2c, 0xcd, 0x57, 0xef, 0xc2, + 0x56, 0x55, 0xc1, 0xb2, 0x4b, 0xbb, 0xee, 0xf6, 0xe2, 0x75, 0x1f, 0xff, 0xeb, 0x53, 0x99, 0x4f, + 0xff, 0xf5, 0xa9, 0xcc, 0x57, 0xfe, 0xfa, 0x54, 0xe6, 0xe7, 0xbf, 0x76, 0xea, 0xc8, 0xa7, 0xbf, + 0x76, 0xea, 0xc8, 0x17, 0xbe, 0x76, 0xea, 0xc8, 0x0f, 0x67, 0x3b, 0x17, 0x2e, 0x14, 0x70, 0x29, + 0xb7, 0xff, 0xbf, 0x01, 0x00, 0x00, 0xff, 0xff, 0xac, 0x60, 0xd7, 0xce, 0xb4, 0xdd, 0x01, 0x00, } func (m *Rpc) Marshal() (dAtA []byte, err error) { @@ -80438,74 +80395,6 @@ func (m *RpcObjectListModifyDetailValuesRequestOperation) MarshalToSizedBuffer(d _ = i var l int _ = l - if m.OperationType != nil { - { - size := m.OperationType.Size() - i -= size - if _, err := m.OperationType.MarshalTo(dAtA[i:]); err != nil { - return 0, err - } - } - } - if len(m.Key) > 0 { - i -= len(m.Key) - copy(dAtA[i:], m.Key) - i = encodeVarintCommands(dAtA, i, uint64(len(m.Key))) - i-- - dAtA[i] = 0xa - } - return len(dAtA) - i, nil -} - -func (m *RpcObjectListModifyDetailValuesRequestOperationOperationTypeOfAdd) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *RpcObjectListModifyDetailValuesRequestOperationOperationTypeOfAdd) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - if m.Add != nil { - { - size, err := m.Add.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintCommands(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x12 - } - return len(dAtA) - i, nil -} -func (m *RpcObjectListModifyDetailValuesRequestOperationOperationTypeOfSet) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *RpcObjectListModifyDetailValuesRequestOperationOperationTypeOfSet) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - if m.Set != nil { - { - size, err := m.Set.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintCommands(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x1a - } - return len(dAtA) - i, nil -} -func (m *RpcObjectListModifyDetailValuesRequestOperationOperationTypeOfRemove) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *RpcObjectListModifyDetailValuesRequestOperationOperationTypeOfRemove) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) if m.Remove != nil { { size, err := m.Remove.MarshalToSizedBuffer(dAtA[:i]) @@ -80518,8 +80407,40 @@ func (m *RpcObjectListModifyDetailValuesRequestOperationOperationTypeOfRemove) M i-- dAtA[i] = 0x22 } + if m.Set != nil { + { + size, err := m.Set.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintCommands(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x1a + } + if m.Add != nil { + { + size, err := m.Add.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintCommands(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + } + if len(m.Key) > 0 { + i -= len(m.Key) + copy(dAtA[i:], m.Key) + i = encodeVarintCommands(dAtA, i, uint64(len(m.Key))) + i-- + dAtA[i] = 0xa + } return len(dAtA) - i, nil } + func (m *RpcObjectListModifyDetailValuesResponse) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) @@ -114323,48 +114244,21 @@ func (m *RpcObjectListModifyDetailValuesRequestOperation) Size() (n int) { if l > 0 { n += 1 + l + sovCommands(uint64(l)) } - if m.OperationType != nil { - n += m.OperationType.Size() - } - return n -} - -func (m *RpcObjectListModifyDetailValuesRequestOperationOperationTypeOfAdd) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l if m.Add != nil { l = m.Add.Size() n += 1 + l + sovCommands(uint64(l)) } - return n -} -func (m *RpcObjectListModifyDetailValuesRequestOperationOperationTypeOfSet) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l if m.Set != nil { l = m.Set.Size() n += 1 + l + sovCommands(uint64(l)) } - return n -} -func (m *RpcObjectListModifyDetailValuesRequestOperationOperationTypeOfRemove) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l if m.Remove != nil { l = m.Remove.Size() n += 1 + l + sovCommands(uint64(l)) } return n } + func (m *RpcObjectListModifyDetailValuesResponse) Size() (n int) { if m == nil { return 0 @@ -161696,11 +161590,12 @@ func (m *RpcObjectListModifyDetailValuesRequestOperation) Unmarshal(dAtA []byte) if postIndex > l { return io.ErrUnexpectedEOF } - v := &types.Value{} - if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + if m.Add == nil { + m.Add = &types.Value{} + } + if err := m.Add.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } - m.OperationType = &RpcObjectListModifyDetailValuesRequestOperationOperationTypeOfAdd{v} iNdEx = postIndex case 3: if wireType != 2 { @@ -161731,11 +161626,12 @@ func (m *RpcObjectListModifyDetailValuesRequestOperation) Unmarshal(dAtA []byte) if postIndex > l { return io.ErrUnexpectedEOF } - v := &types.Value{} - if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + if m.Set == nil { + m.Set = &types.Value{} + } + if err := m.Set.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } - m.OperationType = &RpcObjectListModifyDetailValuesRequestOperationOperationTypeOfSet{v} iNdEx = postIndex case 4: if wireType != 2 { @@ -161766,11 +161662,12 @@ func (m *RpcObjectListModifyDetailValuesRequestOperation) Unmarshal(dAtA []byte) if postIndex > l { return io.ErrUnexpectedEOF } - v := &types.Value{} - if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + if m.Remove == nil { + m.Remove = &types.Value{} + } + if err := m.Remove.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } - m.OperationType = &RpcObjectListModifyDetailValuesRequestOperationOperationTypeOfRemove{v} iNdEx = postIndex default: iNdEx = preIndex diff --git a/pb/protos/commands.proto b/pb/protos/commands.proto index f6b04ed1a..5a35adaf9 100644 --- a/pb/protos/commands.proto +++ b/pb/protos/commands.proto @@ -2424,11 +2424,9 @@ message Rpc { message Operation { string key = 1; - oneof operationType { - google.protobuf.Value add = 2; - google.protobuf.Value set = 3; - google.protobuf.Value remove = 4; - } + google.protobuf.Value add = 2; + google.protobuf.Value set = 3; + google.protobuf.Value remove = 4; } } diff --git a/util/pbtypes/pbtypes.go b/util/pbtypes/pbtypes.go index 98ac03fd2..1675f21c7 100644 --- a/util/pbtypes/pbtypes.go +++ b/util/pbtypes/pbtypes.go @@ -609,7 +609,7 @@ func RelationIdToKey(id string) (string, error) { // AddValue adds values to int lists and string lists func AddValue(s *types.Struct, key string, v *types.Value) { - if IsStructEmpty(s) { + if IsStructEmpty(s) || v == nil { return } toAdd := GetList(v) @@ -624,7 +624,7 @@ func AddValue(s *types.Struct, key string, v *types.Value) { // RemoveValue removes values from int lists and string lists func RemoveValue(s *types.Struct, key string, v *types.Value) { - if IsStructEmpty(s) { + if IsStructEmpty(s) || v == nil { return } value := Get(s, key) From eff2c455856fa4851a5fa281c775e9822452c599 Mon Sep 17 00:00:00 2001 From: kirillston Date: Fri, 16 Aug 2024 00:22:53 +0300 Subject: [PATCH 33/78] GO-3795 Rename key to relationKey --- core/block/editor.go | 6 +- docs/proto.md | 2 +- pb/commands.pb.go | 2282 +++++++++++++++++++------------------- pb/protos/commands.proto | 2 +- 4 files changed, 1146 insertions(+), 1146 deletions(-) diff --git a/core/block/editor.go b/core/block/editor.go index 84ca29edb..631ab6a80 100644 --- a/core/block/editor.go +++ b/core/block/editor.go @@ -646,11 +646,11 @@ func (s *Service) ModifyDetailsList(req *pb.RpcObjectListModifyDetailValuesReque for _, op := range req.Operations { if op.Set != nil { // Set operation has higher priority than Add and Remove, because it modifies full value - current.Fields[op.Key] = op.Set + current.Fields[op.RelationKey] = op.Set continue } - pbtypes.AddValue(current, op.Key, op.Add) - pbtypes.RemoveValue(current, op.Key, op.Remove) + pbtypes.AddValue(current, op.RelationKey, op.Add) + pbtypes.RemoveValue(current, op.RelationKey, op.Remove) } return current, nil }) diff --git a/docs/proto.md b/docs/proto.md index e306bedfe..d6df1268e 100644 --- a/docs/proto.md +++ b/docs/proto.md @@ -14386,7 +14386,7 @@ Deletes the object, keys from the local store and unsubscribe from remote change | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | -| key | [string](#string) | | | +| relationKey | [string](#string) | | | | add | [google.protobuf.Value](#google-protobuf-Value) | | | | set | [google.protobuf.Value](#google-protobuf-Value) | | | | remove | [google.protobuf.Value](#google-protobuf-Value) | | | diff --git a/pb/commands.pb.go b/pb/commands.pb.go index 78b5b3dbd..94328d2b0 100644 --- a/pb/commands.pb.go +++ b/pb/commands.pb.go @@ -26252,10 +26252,10 @@ func (m *RpcObjectListModifyDetailValuesRequest) GetOperations() []*RpcObjectLis } type RpcObjectListModifyDetailValuesRequestOperation struct { - Key string `protobuf:"bytes,1,opt,name=key,proto3" json:"key,omitempty"` - Add *types.Value `protobuf:"bytes,2,opt,name=add,proto3" json:"add,omitempty"` - Set *types.Value `protobuf:"bytes,3,opt,name=set,proto3" json:"set,omitempty"` - Remove *types.Value `protobuf:"bytes,4,opt,name=remove,proto3" json:"remove,omitempty"` + RelationKey string `protobuf:"bytes,1,opt,name=relationKey,proto3" json:"relationKey,omitempty"` + Add *types.Value `protobuf:"bytes,2,opt,name=add,proto3" json:"add,omitempty"` + Set *types.Value `protobuf:"bytes,3,opt,name=set,proto3" json:"set,omitempty"` + Remove *types.Value `protobuf:"bytes,4,opt,name=remove,proto3" json:"remove,omitempty"` } func (m *RpcObjectListModifyDetailValuesRequestOperation) Reset() { @@ -26295,9 +26295,9 @@ func (m *RpcObjectListModifyDetailValuesRequestOperation) XXX_DiscardUnknown() { var xxx_messageInfo_RpcObjectListModifyDetailValuesRequestOperation proto.InternalMessageInfo -func (m *RpcObjectListModifyDetailValuesRequestOperation) GetKey() string { +func (m *RpcObjectListModifyDetailValuesRequestOperation) GetRelationKey() string { if m != nil { - return m.Key + return m.RelationKey } return "" } @@ -66145,1134 +66145,1134 @@ func init() { func init() { proto.RegisterFile("pb/protos/commands.proto", fileDescriptor_8261c968b2e6f45c) } var fileDescriptor_8261c968b2e6f45c = []byte{ - // 18032 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0xfd, 0x7d, 0x98, 0x24, 0x47, - 0x75, 0x27, 0x0a, 0x4f, 0x55, 0x56, 0x55, 0x77, 0x47, 0x7f, 0x4c, 0x4d, 0x6a, 0x66, 0xd4, 0x0a, - 0x89, 0xd1, 0x30, 0x12, 0x42, 0x16, 0xa2, 0x07, 0x24, 0x30, 0x48, 0x48, 0x48, 0xd5, 0xd5, 0xd9, - 0xdd, 0x85, 0xba, 0xab, 0xca, 0x99, 0xd9, 0x33, 0xc8, 0x7e, 0xfd, 0xd6, 0xe6, 0x54, 0x45, 0x77, - 0xa7, 0xa6, 0x3a, 0xb3, 0x9c, 0x95, 0xdd, 0x33, 0xc3, 0x7d, 0xf6, 0xae, 0x31, 0xc6, 0xc8, 0x1f, - 0x2c, 0xc6, 0x98, 0xb5, 0x05, 0x06, 0x19, 0x61, 0xf0, 0x82, 0x0d, 0x32, 0x1f, 0x02, 0x83, 0x31, - 0x36, 0x1f, 0x32, 0x18, 0x63, 0x8c, 0xf9, 0xb0, 0x01, 0x9b, 0xc7, 0x60, 0xb0, 0x17, 0xef, 0x5d, - 0xd6, 0xd7, 0x7e, 0xd6, 0xb0, 0xd8, 0x70, 0x7d, 0x9f, 0x8c, 0x88, 0xcc, 0x8c, 0xa8, 0xae, 0xcc, - 0x8a, 0xac, 0xae, 0xac, 0x16, 0xf6, 0xfd, 0x2f, 0x33, 0x32, 0x32, 0xe2, 0xc4, 0xf9, 0x9d, 0x13, - 0x71, 0x22, 0xe2, 0xc4, 0x09, 0x30, 0xdf, 0xb9, 0x70, 0xb6, 0xe3, 0xd8, 0xae, 0xdd, 0x3d, 0xdb, - 0xb4, 0x77, 0x76, 0x0c, 0xab, 0xd5, 0x5d, 0xc0, 0xef, 0xf2, 0x84, 0x61, 0x5d, 0x71, 0xaf, 0x74, - 0x10, 0xbc, 0xb1, 0x73, 0x71, 0xeb, 0x6c, 0xdb, 0xbc, 0x70, 0xb6, 0x73, 0xe1, 0xec, 0x8e, 0xdd, - 0x42, 0x6d, 0xff, 0x07, 0xfc, 0x42, 0xb3, 0xc3, 0x9b, 0xa3, 0x72, 0xb5, 0xed, 0xa6, 0xd1, 0xee, - 0xba, 0xb6, 0x83, 0x68, 0xce, 0x93, 0x61, 0x95, 0x68, 0x0f, 0x59, 0xae, 0x5f, 0xc2, 0x75, 0x5b, - 0xb6, 0xbd, 0xd5, 0x46, 0xe4, 0xdb, 0x85, 0xdd, 0xcd, 0xb3, 0x5d, 0xd7, 0xd9, 0x6d, 0xba, 0xf4, - 0xeb, 0xe9, 0xde, 0xaf, 0x2d, 0xd4, 0x6d, 0x3a, 0x66, 0xc7, 0xb5, 0x1d, 0x92, 0xe3, 0xcc, 0xe7, - 0x7e, 0x7b, 0x02, 0x48, 0x6a, 0xa7, 0x09, 0xbf, 0x35, 0x01, 0xa4, 0x52, 0xa7, 0x03, 0x1f, 0xcf, - 0x02, 0xb0, 0x82, 0xdc, 0x73, 0xc8, 0xe9, 0x9a, 0xb6, 0x05, 0x8f, 0x82, 0x09, 0x15, 0xfd, 0xd8, - 0x2e, 0xea, 0xba, 0x77, 0xe6, 0x1e, 0xfc, 0x5b, 0x29, 0x03, 0xdf, 0x94, 0x05, 0x93, 0x2a, 0xea, - 0x76, 0x6c, 0xab, 0x8b, 0xe4, 0x7b, 0x41, 0x1e, 0x39, 0x8e, 0xed, 0xcc, 0x67, 0x4e, 0x67, 0x6e, - 0x9e, 0xbe, 0xed, 0x96, 0x05, 0xda, 0xfc, 0x05, 0xb5, 0xd3, 0x5c, 0x28, 0x75, 0x3a, 0x0b, 0x61, - 0x49, 0x0b, 0xfe, 0x4f, 0x0b, 0x8a, 0xf7, 0x87, 0x4a, 0x7e, 0x94, 0xe7, 0xc1, 0xc4, 0x1e, 0xc9, - 0x30, 0x9f, 0x3d, 0x9d, 0xb9, 0x79, 0x4a, 0xf5, 0x5f, 0xbd, 0x2f, 0x2d, 0xe4, 0x1a, 0x66, 0xbb, - 0x3b, 0x2f, 0x91, 0x2f, 0xf4, 0x15, 0x3e, 0x92, 0x01, 0x79, 0x5c, 0x88, 0x5c, 0x06, 0xb9, 0xa6, - 0xdd, 0x42, 0xb8, 0xfa, 0xb9, 0xdb, 0xce, 0x8a, 0x57, 0xbf, 0x50, 0xb6, 0x5b, 0x48, 0xc5, 0x3f, - 0xcb, 0xa7, 0xc1, 0xb4, 0xcf, 0x96, 0x90, 0x0c, 0x36, 0xe9, 0xcc, 0x6d, 0x20, 0xe7, 0xe5, 0x97, - 0x27, 0x41, 0xae, 0xba, 0xb1, 0xb6, 0x56, 0x3c, 0x22, 0x1f, 0x03, 0xb3, 0x1b, 0xd5, 0xfb, 0xaa, - 0xb5, 0xf3, 0xd5, 0x86, 0xa2, 0xaa, 0x35, 0xb5, 0x98, 0x91, 0x67, 0xc1, 0xd4, 0x62, 0x69, 0xa9, - 0x51, 0xa9, 0xd6, 0x37, 0xf4, 0x62, 0x16, 0xbe, 0x5e, 0x02, 0x73, 0x1a, 0x72, 0x97, 0xd0, 0x9e, - 0xd9, 0x44, 0x9a, 0x6b, 0xb8, 0x08, 0xbe, 0x22, 0x13, 0x30, 0x53, 0xde, 0xf0, 0x2a, 0x0d, 0x3e, - 0xd1, 0x06, 0xdc, 0xbe, 0xaf, 0x01, 0x7c, 0x09, 0x0b, 0xf4, 0xef, 0x05, 0x26, 0x4d, 0x65, 0xcb, - 0x39, 0xf3, 0x74, 0x30, 0xcd, 0x7c, 0x93, 0xe7, 0x00, 0x58, 0x2c, 0x95, 0xef, 0x5b, 0x51, 0x6b, - 0x1b, 0xd5, 0xa5, 0xe2, 0x11, 0xef, 0x7d, 0xb9, 0xa6, 0x2a, 0xf4, 0x3d, 0x03, 0xbf, 0x93, 0x61, - 0xc0, 0x5c, 0xe2, 0xc1, 0x5c, 0x18, 0x4c, 0x4c, 0x1f, 0x40, 0xe1, 0x9b, 0x03, 0x70, 0x56, 0x38, - 0x70, 0x6e, 0x4f, 0x56, 0x5c, 0xfa, 0x00, 0xbd, 0x34, 0x0b, 0x26, 0xb5, 0xed, 0x5d, 0xb7, 0x65, - 0x5f, 0xb2, 0xe0, 0x54, 0x80, 0x0c, 0xfc, 0x26, 0xcb, 0x93, 0xe7, 0xf3, 0x3c, 0xb9, 0x79, 0x7f, - 0x23, 0x68, 0x09, 0x11, 0xdc, 0xf8, 0xd5, 0x80, 0x1b, 0x25, 0x8e, 0x1b, 0x4f, 0x17, 0x2d, 0x28, - 0x7d, 0x3e, 0xfc, 0xfc, 0xed, 0x20, 0xaf, 0x75, 0x8c, 0x26, 0x82, 0x9f, 0x94, 0xc0, 0xcc, 0x1a, - 0x32, 0xf6, 0x50, 0xa9, 0xd3, 0x71, 0xec, 0x3d, 0x04, 0xcb, 0xa1, 0xbc, 0xce, 0x83, 0x89, 0xae, - 0x97, 0xa9, 0xd2, 0xc2, 0x2d, 0x98, 0x52, 0xfd, 0x57, 0xf9, 0x14, 0x00, 0x66, 0x0b, 0x59, 0xae, - 0xe9, 0x9a, 0xa8, 0x3b, 0x9f, 0x3d, 0x2d, 0xdd, 0x3c, 0xa5, 0x32, 0x29, 0xf0, 0x5b, 0x59, 0x51, - 0x19, 0xc3, 0x54, 0x2c, 0xb0, 0x14, 0x44, 0x70, 0xf5, 0x8d, 0x59, 0x11, 0x19, 0x1b, 0x58, 0x5c, - 0x32, 0xde, 0xbe, 0x3d, 0x93, 0x9c, 0xb9, 0x5e, 0x8e, 0x6a, 0xad, 0xa1, 0x6d, 0x94, 0x57, 0x1b, - 0x5a, 0xbd, 0x54, 0x56, 0x8a, 0x48, 0x3e, 0x0e, 0x8a, 0xf8, 0xb1, 0x51, 0xd1, 0x1a, 0x4b, 0xca, - 0x9a, 0xa2, 0x2b, 0x4b, 0xc5, 0x4d, 0x59, 0x06, 0x73, 0xaa, 0xf2, 0x43, 0x1b, 0x8a, 0xa6, 0x37, - 0x96, 0x4b, 0x95, 0x35, 0x65, 0xa9, 0xb8, 0xe5, 0xfd, 0xbc, 0x56, 0x59, 0xaf, 0xe8, 0x0d, 0x55, - 0x29, 0x95, 0x57, 0x95, 0xa5, 0xe2, 0xb6, 0x7c, 0x35, 0xb8, 0xaa, 0x5a, 0x6b, 0x94, 0xea, 0x75, - 0xb5, 0x76, 0x4e, 0x69, 0xd0, 0x3f, 0xb4, 0xa2, 0x49, 0x2a, 0xd2, 0x1b, 0xda, 0x6a, 0x49, 0x55, - 0x4a, 0x8b, 0x6b, 0x4a, 0xf1, 0x01, 0xf8, 0x12, 0x09, 0xcc, 0xae, 0x1b, 0x17, 0x91, 0xb6, 0x6d, - 0x38, 0xc8, 0xb8, 0xd0, 0x46, 0xf0, 0x06, 0x01, 0x3c, 0xe1, 0x27, 0x59, 0xbc, 0x14, 0x1e, 0xaf, - 0xb3, 0x7d, 0x18, 0xcc, 0x55, 0x11, 0x01, 0xd8, 0xff, 0x0e, 0xd4, 0x60, 0x95, 0x03, 0xec, 0x59, - 0x09, 0xcb, 0x4b, 0x86, 0xd8, 0x4f, 0x3c, 0x01, 0x10, 0x83, 0x5f, 0x96, 0xc0, 0x5c, 0xc5, 0xda, - 0x33, 0x5d, 0xb4, 0x82, 0x2c, 0xe4, 0x78, 0xe3, 0x80, 0x10, 0x0c, 0x6f, 0x92, 0x18, 0x18, 0x96, - 0x79, 0x18, 0x9e, 0xd1, 0x87, 0x6d, 0x7c, 0x1d, 0x11, 0xa3, 0xed, 0x75, 0x60, 0xca, 0xc4, 0xf9, - 0xca, 0x66, 0x8b, 0x72, 0x2c, 0x4c, 0x90, 0x6f, 0x04, 0xb3, 0xe4, 0x65, 0xd9, 0x6c, 0xa3, 0xfb, - 0xd0, 0x15, 0x3a, 0xee, 0xf2, 0x89, 0xf0, 0xe7, 0x02, 0xe5, 0xab, 0x70, 0x58, 0x3e, 0x3b, 0x29, - 0x51, 0xc9, 0xc0, 0x7c, 0xf5, 0x13, 0x41, 0xfd, 0xf6, 0x69, 0x99, 0x09, 0xbf, 0x97, 0x05, 0xd3, - 0x9a, 0x6b, 0x77, 0x3c, 0x91, 0x35, 0xad, 0x2d, 0x31, 0x70, 0x3f, 0xce, 0xea, 0x58, 0x99, 0x07, - 0xf7, 0xe9, 0x7d, 0xf8, 0xc8, 0x54, 0x10, 0xa1, 0x61, 0xdf, 0x0a, 0x34, 0x6c, 0x99, 0x43, 0xe5, - 0xb6, 0x44, 0xa5, 0x7d, 0x1f, 0xea, 0xd7, 0xab, 0x25, 0x50, 0xf4, 0xc5, 0xcc, 0x2d, 0xef, 0x3a, - 0x0e, 0xb2, 0x5c, 0x31, 0x10, 0xfe, 0x82, 0x05, 0x61, 0x95, 0x07, 0xe1, 0xb6, 0x18, 0x61, 0xf6, - 0x6b, 0x49, 0x51, 0xc7, 0x7e, 0x3f, 0x40, 0xf3, 0x3e, 0x0e, 0xcd, 0xe7, 0x24, 0x27, 0x2b, 0x19, - 0xa4, 0xab, 0x43, 0x20, 0x7a, 0x1c, 0x14, 0xbd, 0x31, 0xa9, 0xac, 0x57, 0xce, 0x29, 0x8d, 0x4a, - 0xf5, 0x5c, 0x45, 0x57, 0x8a, 0x08, 0xbe, 0x4a, 0x02, 0x33, 0x84, 0x34, 0x15, 0xed, 0xd9, 0x17, - 0x05, 0x7b, 0xbd, 0x2f, 0x27, 0x34, 0x16, 0xd8, 0x1a, 0x22, 0x34, 0xe3, 0x67, 0x12, 0x18, 0x0b, - 0x31, 0xc5, 0x3d, 0x91, 0x7a, 0xab, 0x7d, 0x6a, 0xb0, 0xd5, 0x47, 0x5b, 0xfa, 0xf6, 0x56, 0xaf, - 0xce, 0x01, 0x40, 0x1a, 0x79, 0xce, 0x44, 0x97, 0xe0, 0x7a, 0x88, 0x09, 0x27, 0xb6, 0x99, 0x81, - 0x62, 0x9b, 0xed, 0x27, 0xb6, 0xef, 0x65, 0xc7, 0xac, 0x45, 0x1e, 0xbd, 0x5b, 0x23, 0xd9, 0xed, - 0x51, 0x12, 0x3d, 0x3b, 0xf4, 0x05, 0x25, 0xcb, 0x5b, 0x9d, 0xd7, 0x81, 0x29, 0xfc, 0x58, 0x35, - 0x76, 0x10, 0xd5, 0xa1, 0x30, 0x41, 0x3e, 0x03, 0x66, 0x48, 0xc6, 0xa6, 0x6d, 0x79, 0xed, 0xc9, - 0xe1, 0x0c, 0x5c, 0x9a, 0x07, 0x62, 0xd3, 0x41, 0x86, 0x6b, 0x3b, 0xb8, 0x8c, 0x3c, 0x01, 0x91, - 0x49, 0x82, 0xdf, 0x08, 0xb4, 0x50, 0xe1, 0x24, 0xe7, 0x99, 0x49, 0x9a, 0x92, 0x4c, 0x6e, 0xf6, - 0x86, 0xd3, 0x3f, 0xa2, 0x75, 0x0d, 0x0f, 0xed, 0x65, 0x3c, 0xb5, 0x43, 0xf2, 0x49, 0x20, 0xd3, - 0x54, 0x2f, 0x6f, 0xb9, 0x56, 0xd5, 0x95, 0xaa, 0x5e, 0xdc, 0xec, 0x2b, 0x51, 0x5b, 0xf0, 0x8d, - 0x39, 0x90, 0x7b, 0x81, 0x6d, 0x5a, 0xf0, 0xa5, 0x19, 0x4e, 0x24, 0x2c, 0xe4, 0x5e, 0xb2, 0x9d, - 0x8b, 0x81, 0xa2, 0x86, 0x09, 0xf1, 0xd8, 0x84, 0xa2, 0x24, 0x0d, 0x14, 0xa5, 0x5c, 0x3f, 0x51, - 0xfa, 0x05, 0x56, 0x94, 0xee, 0xe2, 0x45, 0xe9, 0xa6, 0x3e, 0xfc, 0xf7, 0x88, 0x8f, 0xe8, 0x00, - 0x3e, 0x16, 0x74, 0x00, 0xf7, 0x70, 0x30, 0x3e, 0x4d, 0xac, 0x98, 0x64, 0x00, 0x7e, 0x29, 0x55, - 0xc5, 0xef, 0x07, 0xf5, 0x56, 0x04, 0xd4, 0xdb, 0x7d, 0xfa, 0x04, 0x73, 0x7f, 0xd7, 0xf1, 0xc0, - 0xfe, 0x6e, 0xe2, 0xa2, 0x7c, 0x02, 0x1c, 0x5b, 0xaa, 0x2c, 0x2f, 0x2b, 0xaa, 0x52, 0xd5, 0x1b, - 0x55, 0x45, 0x3f, 0x5f, 0x53, 0xef, 0x2b, 0xb6, 0xe1, 0x23, 0x12, 0x00, 0x1e, 0x87, 0xca, 0x86, - 0xd5, 0x44, 0x6d, 0xb1, 0x1e, 0xfd, 0x7f, 0x66, 0x93, 0xf5, 0x09, 0x61, 0xf9, 0x11, 0x70, 0xbe, - 0x2e, 0x2b, 0xae, 0x95, 0x91, 0x85, 0x25, 0x03, 0xf5, 0xad, 0x4f, 0x04, 0xdb, 0xf3, 0x2a, 0x70, - 0xd4, 0x2f, 0x8f, 0x66, 0xef, 0x3f, 0xed, 0x7b, 0x34, 0x07, 0xe6, 0x28, 0x2c, 0xfe, 0x3c, 0xfe, - 0xc1, 0x8c, 0xc8, 0x44, 0x1e, 0x82, 0x49, 0x3a, 0x6d, 0xf7, 0xbb, 0xf7, 0xe0, 0x5d, 0x5e, 0x01, - 0xd3, 0x1d, 0xe4, 0xec, 0x98, 0xdd, 0xae, 0x69, 0x5b, 0x64, 0x41, 0x6e, 0xee, 0xb6, 0xa7, 0x04, - 0x1c, 0xc7, 0x6b, 0x97, 0x0b, 0x75, 0xc3, 0x71, 0xcd, 0xa6, 0xd9, 0x31, 0x2c, 0xb7, 0x1e, 0x66, - 0x56, 0xd9, 0x3f, 0xe1, 0x2b, 0x13, 0x4e, 0x6b, 0xf8, 0x96, 0x44, 0x88, 0xc4, 0x07, 0x12, 0x4c, - 0x49, 0x62, 0x0b, 0x4c, 0x26, 0x16, 0x8f, 0xa7, 0x2a, 0x16, 0x7d, 0xf0, 0xde, 0x92, 0xaf, 0x01, - 0x27, 0x2a, 0xd5, 0x72, 0x4d, 0x55, 0x95, 0xb2, 0xde, 0xa8, 0x2b, 0xea, 0x7a, 0x45, 0xd3, 0x2a, - 0xb5, 0xaa, 0x76, 0x10, 0x6d, 0x87, 0x9f, 0x90, 0x02, 0x89, 0x59, 0x42, 0xcd, 0xb6, 0x69, 0x21, - 0x78, 0xcf, 0x01, 0x05, 0x86, 0x5f, 0xf5, 0x11, 0xc7, 0x99, 0xd6, 0x1f, 0x81, 0xf3, 0x1b, 0x92, - 0xe3, 0xdc, 0xbf, 0xc0, 0x7f, 0xc3, 0xea, 0xff, 0x65, 0x09, 0x1c, 0x63, 0x14, 0x51, 0x45, 0x3b, - 0x23, 0x5b, 0xc9, 0xfb, 0x09, 0x56, 0x77, 0x2b, 0x3c, 0xa6, 0xfd, 0xac, 0xe9, 0x7d, 0x64, 0x44, - 0xc0, 0xfa, 0xd6, 0x00, 0xd6, 0x35, 0x0e, 0xd6, 0xe7, 0x0e, 0x51, 0x66, 0x32, 0x64, 0x7f, 0x2b, - 0x55, 0x64, 0xaf, 0x01, 0x27, 0xea, 0x25, 0x55, 0xaf, 0x94, 0x2b, 0xf5, 0x92, 0x37, 0x8e, 0x32, - 0x43, 0x76, 0x84, 0xb9, 0xce, 0x83, 0xde, 0x17, 0xdf, 0xdf, 0xcb, 0x81, 0xeb, 0xfa, 0x77, 0xb4, - 0xe5, 0x6d, 0xc3, 0xda, 0x42, 0xd0, 0x14, 0x81, 0x7a, 0x09, 0x4c, 0x34, 0x71, 0x76, 0x82, 0x33, - 0xbb, 0x75, 0x13, 0xd3, 0x97, 0x93, 0x1a, 0x54, 0xff, 0x57, 0xf8, 0x2e, 0x56, 0x20, 0x74, 0x5e, - 0x20, 0x9e, 0x1f, 0x0f, 0xde, 0x3e, 0xba, 0x23, 0x64, 0xe3, 0xd3, 0x81, 0x6c, 0x9c, 0xe7, 0x64, - 0xa3, 0x7c, 0xb0, 0xe2, 0x93, 0x89, 0xc9, 0x1f, 0x3d, 0x11, 0x3a, 0x80, 0x48, 0x69, 0x32, 0xa3, - 0x47, 0x85, 0xbe, 0xdd, 0xfd, 0xc3, 0x12, 0x28, 0x2c, 0xa1, 0x36, 0x12, 0x5d, 0x89, 0xfc, 0xfb, - 0xac, 0xe8, 0x86, 0x08, 0x81, 0x81, 0x94, 0x1d, 0xbd, 0x3a, 0xe2, 0x9a, 0x3b, 0xa8, 0xeb, 0x1a, - 0x3b, 0x1d, 0xcc, 0x6a, 0x49, 0x0d, 0x13, 0xe0, 0x4f, 0x66, 0x45, 0xb6, 0x4b, 0x62, 0xaa, 0xf9, - 0xb7, 0xb1, 0xa6, 0xf8, 0xb5, 0x39, 0x50, 0x38, 0x6f, 0xb4, 0xdb, 0xc8, 0x85, 0x5f, 0xcf, 0x82, - 0x42, 0xd9, 0x9b, 0x93, 0x22, 0xf8, 0xb4, 0x10, 0x2c, 0x08, 0x26, 0x1d, 0xdb, 0x76, 0xeb, 0x86, - 0xbb, 0x4d, 0xd1, 0x0a, 0xde, 0xe9, 0x36, 0xed, 0x6f, 0xb2, 0xa0, 0xdd, 0xc3, 0x83, 0xf6, 0x03, - 0x1c, 0x37, 0x49, 0x45, 0x0b, 0xa4, 0x92, 0x08, 0xd4, 0x20, 0x98, 0xdc, 0xb1, 0xd0, 0x8e, 0x6d, - 0x99, 0x4d, 0x7f, 0xa4, 0xf7, 0xdf, 0xe1, 0x87, 0x83, 0x59, 0xf2, 0x22, 0x87, 0xd9, 0x82, 0x70, - 0x2d, 0xc9, 0x40, 0xd3, 0x86, 0xc0, 0xec, 0x7a, 0x70, 0x2d, 0x81, 0xa0, 0xa1, 0xd7, 0x1a, 0x65, - 0x55, 0x29, 0xe9, 0x4a, 0x63, 0xad, 0x56, 0x2e, 0xad, 0x35, 0x54, 0xa5, 0x5e, 0x2b, 0x22, 0xf8, - 0xdf, 0xb2, 0x1e, 0x73, 0x9b, 0xf6, 0x1e, 0x72, 0xe0, 0x8a, 0x10, 0x9f, 0xe3, 0x78, 0x42, 0x31, - 0xf8, 0x05, 0xe1, 0xad, 0x72, 0xca, 0x1d, 0x4a, 0x41, 0x44, 0x57, 0xf8, 0x11, 0xa1, 0x6d, 0xef, - 0xd8, 0xa2, 0x9e, 0x00, 0x9c, 0xfe, 0x5f, 0x59, 0x30, 0x51, 0xb6, 0xad, 0x3d, 0xe4, 0xb8, 0xac, - 0x95, 0xc9, 0x72, 0x33, 0xc3, 0x73, 0xd3, 0xeb, 0x9a, 0x90, 0xe5, 0x3a, 0x76, 0xc7, 0x37, 0x33, - 0xfd, 0x57, 0xf8, 0xeb, 0x49, 0x39, 0x4c, 0x6b, 0x8e, 0x5e, 0x6e, 0xea, 0x5f, 0x11, 0x47, 0x9e, - 0xd4, 0xa3, 0x00, 0x8f, 0x24, 0xc1, 0xa5, 0x3f, 0x01, 0xe9, 0xef, 0xf2, 0x7e, 0x45, 0x02, 0xb3, - 0x44, 0xf9, 0x34, 0x84, 0xc7, 0x45, 0x58, 0x63, 0x17, 0x7a, 0x7a, 0x98, 0xbf, 0x7a, 0x84, 0x63, - 0x7f, 0xc1, 0xe8, 0x74, 0x82, 0x45, 0xbf, 0xd5, 0x23, 0x2a, 0x7d, 0x27, 0x62, 0xbe, 0x58, 0x00, - 0x39, 0x63, 0xd7, 0xdd, 0x86, 0xdf, 0x13, 0x36, 0xf9, 0xb9, 0xce, 0x80, 0xd2, 0x13, 0x01, 0xc9, - 0x71, 0x90, 0x77, 0xed, 0x8b, 0xc8, 0xe7, 0x03, 0x79, 0xf1, 0xe0, 0x30, 0x3a, 0x1d, 0x1d, 0x7f, - 0xa0, 0x70, 0xf8, 0xef, 0xde, 0x08, 0x63, 0x34, 0x9b, 0xf6, 0xae, 0xe5, 0x56, 0xfc, 0x85, 0xbf, - 0x30, 0x01, 0x7e, 0x21, 0x23, 0x32, 0x85, 0x10, 0x20, 0x30, 0x19, 0x64, 0x17, 0x86, 0x50, 0xa5, - 0x05, 0x70, 0x4b, 0xa9, 0x5e, 0x6f, 0xe8, 0xb5, 0xfb, 0x94, 0x6a, 0x38, 0xdc, 0x37, 0x2a, 0xd5, - 0x86, 0xbe, 0xaa, 0x34, 0xca, 0x1b, 0x2a, 0x5e, 0x9d, 0x29, 0x95, 0xcb, 0xb5, 0x8d, 0xaa, 0x5e, - 0x44, 0xf0, 0x6d, 0x59, 0x30, 0x53, 0x6e, 0xdb, 0xdd, 0x00, 0xe1, 0xeb, 0x43, 0x84, 0x03, 0x36, - 0x66, 0x18, 0x36, 0xc2, 0x7f, 0xc9, 0x88, 0x6e, 0xf5, 0xfa, 0x0c, 0x61, 0x8a, 0x8f, 0xe8, 0xa5, - 0x7e, 0x5d, 0x68, 0xab, 0x77, 0x70, 0x79, 0xe9, 0xab, 0xc4, 0x67, 0xef, 0x04, 0x13, 0x25, 0x22, - 0x18, 0xf0, 0xaf, 0x32, 0xa0, 0x50, 0xb6, 0xad, 0x4d, 0x73, 0x4b, 0xbe, 0x09, 0xcc, 0x21, 0xcb, - 0xb8, 0xd0, 0x46, 0x4b, 0x86, 0x6b, 0xec, 0x99, 0xe8, 0x12, 0x6e, 0xc0, 0xa4, 0xda, 0x93, 0xea, - 0x11, 0x45, 0x53, 0xd0, 0x85, 0xdd, 0x2d, 0x4c, 0xd4, 0xa4, 0xca, 0x26, 0xc9, 0xcf, 0x05, 0x57, - 0x93, 0xd7, 0xba, 0x83, 0x1c, 0xd4, 0x46, 0x46, 0x17, 0x79, 0xc6, 0xa8, 0x85, 0xda, 0x58, 0x68, - 0x27, 0xd5, 0xa8, 0xcf, 0xf2, 0x19, 0x30, 0x43, 0x3e, 0x61, 0x53, 0xa7, 0x8b, 0xc5, 0x78, 0x52, - 0xe5, 0xd2, 0xe4, 0xa7, 0x83, 0x3c, 0xba, 0xec, 0x3a, 0xc6, 0x7c, 0x0b, 0xe3, 0x75, 0xf5, 0x02, - 0xf1, 0xf5, 0x5a, 0xf0, 0x7d, 0xbd, 0x16, 0x34, 0xec, 0x09, 0xa6, 0x92, 0x5c, 0xf0, 0x57, 0x26, - 0x03, 0x43, 0xe2, 0x5f, 0xb3, 0xa1, 0x60, 0xc8, 0x20, 0x67, 0x19, 0x3b, 0x88, 0xca, 0x05, 0x7e, - 0x96, 0x6f, 0x01, 0x47, 0x8d, 0x3d, 0xc3, 0x35, 0x9c, 0x35, 0xbb, 0x69, 0xb4, 0xf1, 0xe0, 0xe7, - 0x6b, 0x7e, 0xef, 0x07, 0xbc, 0x0e, 0xef, 0xda, 0x0e, 0xc2, 0xb9, 0xfc, 0x75, 0x78, 0x3f, 0xc1, - 0x2b, 0xdd, 0x6c, 0xda, 0x16, 0xa6, 0x5f, 0x52, 0xf1, 0xb3, 0xc7, 0x95, 0x96, 0xd9, 0xf5, 0x1a, - 0x82, 0x4b, 0xa9, 0x92, 0x05, 0x65, 0xed, 0x8a, 0xd5, 0xc4, 0x6b, 0xf0, 0x93, 0x6a, 0xd4, 0x67, - 0x79, 0x11, 0x4c, 0xd3, 0xe5, 0xe7, 0x75, 0x4f, 0xae, 0x0a, 0x58, 0xae, 0x4e, 0xf3, 0x9e, 0x34, - 0x04, 0xcf, 0x85, 0x6a, 0x98, 0x4f, 0x65, 0x7f, 0x92, 0xef, 0x05, 0xd7, 0xd2, 0xd7, 0xf2, 0x6e, - 0xd7, 0xb5, 0x77, 0x08, 0xe8, 0xcb, 0x66, 0x9b, 0xb4, 0x60, 0x02, 0xb7, 0x20, 0x2e, 0x8b, 0x7c, - 0x1b, 0x38, 0xde, 0x71, 0xd0, 0x26, 0x72, 0xee, 0x37, 0x76, 0x76, 0x2f, 0xeb, 0x8e, 0x61, 0x75, - 0x3b, 0xb6, 0xe3, 0xce, 0x4f, 0x62, 0xe2, 0xfb, 0x7e, 0xa3, 0x1d, 0xe5, 0x24, 0x28, 0x10, 0xf6, - 0xc1, 0x57, 0xe4, 0x85, 0x9d, 0xe8, 0x68, 0x83, 0x62, 0xcd, 0xb3, 0x67, 0x80, 0x09, 0xda, 0xc3, - 0x61, 0xa0, 0xa6, 0x6f, 0x3b, 0xd9, 0x33, 0x9b, 0xa3, 0xa5, 0xa8, 0x7e, 0x36, 0xf9, 0x76, 0x50, - 0x68, 0xe2, 0x66, 0x61, 0xcc, 0xa6, 0x6f, 0xbb, 0xb6, 0x7f, 0xa5, 0x38, 0x8b, 0x4a, 0xb3, 0xc2, - 0x2f, 0x4a, 0x42, 0x7e, 0x77, 0x71, 0x14, 0x27, 0xd3, 0xea, 0x6f, 0x64, 0x87, 0xe8, 0x36, 0x6f, - 0x05, 0x37, 0xd3, 0x3e, 0x91, 0xda, 0x1f, 0x4b, 0x8d, 0xc5, 0x0d, 0xdf, 0x04, 0xf7, 0xac, 0x12, - 0x4d, 0x2f, 0xa9, 0xde, 0xfc, 0x69, 0xc9, 0x33, 0xdd, 0x6f, 0x01, 0x37, 0x0d, 0xc8, 0xad, 0xe8, - 0x8d, 0x6a, 0x69, 0x5d, 0x29, 0x6e, 0xf2, 0xb6, 0x8d, 0xa6, 0xd7, 0xea, 0x0d, 0x75, 0xa3, 0x5a, - 0xad, 0x54, 0x57, 0x48, 0x61, 0x9e, 0x49, 0x78, 0x32, 0xcc, 0x70, 0x5e, 0xad, 0xe8, 0x4a, 0xa3, - 0x5c, 0xab, 0x2e, 0x57, 0x56, 0x8a, 0xe6, 0x20, 0xc3, 0xe8, 0x01, 0xf9, 0x34, 0xb8, 0x8e, 0xa3, - 0xa4, 0x52, 0xab, 0x7a, 0xf3, 0x89, 0x72, 0xa9, 0x5a, 0x56, 0xbc, 0xc9, 0xc3, 0x45, 0x19, 0x82, - 0x13, 0xa4, 0xb8, 0xc6, 0x72, 0x65, 0x8d, 0xdd, 0x02, 0xf8, 0x78, 0x46, 0x9e, 0x07, 0x57, 0xb1, - 0xdf, 0x2a, 0xd5, 0x73, 0xa5, 0xb5, 0xca, 0x52, 0xf1, 0x0f, 0x33, 0xf2, 0x8d, 0xe0, 0x7a, 0xee, - 0x2f, 0xb2, 0x9a, 0xdf, 0xa8, 0x2c, 0x35, 0xd6, 0x2b, 0xda, 0x7a, 0x49, 0x2f, 0xaf, 0x16, 0x3f, - 0x81, 0xe7, 0x0b, 0x81, 0x01, 0xcc, 0x38, 0xc3, 0xbd, 0x9a, 0x1d, 0xd3, 0x4b, 0xbc, 0xa0, 0x3e, - 0xad, 0x2f, 0xec, 0xf1, 0x36, 0xec, 0xe3, 0xc1, 0xe8, 0xb0, 0xc4, 0x89, 0xd0, 0x33, 0x12, 0x94, - 0x95, 0x4c, 0x86, 0xf4, 0x21, 0x44, 0xe8, 0x34, 0xb8, 0xae, 0xaa, 0x10, 0xa4, 0x54, 0xa5, 0x5c, - 0x3b, 0xa7, 0xa8, 0x8d, 0xf3, 0xa5, 0xb5, 0x35, 0x45, 0x6f, 0x2c, 0x57, 0x54, 0x4d, 0x2f, 0x6e, - 0xc2, 0x7f, 0xca, 0x06, 0x73, 0x68, 0x86, 0x5b, 0x7f, 0x95, 0x4d, 0xaa, 0xd6, 0xb1, 0x73, 0xe5, - 0x67, 0x83, 0x42, 0xd7, 0x35, 0xdc, 0xdd, 0x2e, 0xd5, 0xea, 0x27, 0xf5, 0xd7, 0xea, 0x05, 0x0d, - 0x67, 0x52, 0x69, 0x66, 0xf8, 0xc5, 0x4c, 0x12, 0x35, 0x1d, 0xc1, 0x34, 0xda, 0x1c, 0x82, 0xc5, - 0xa7, 0x00, 0xf4, 0xa5, 0xbd, 0xa2, 0x35, 0x4a, 0x6b, 0xaa, 0x52, 0x5a, 0xba, 0x3f, 0x98, 0x3c, - 0x23, 0xf9, 0x04, 0x38, 0xb6, 0x51, 0xf5, 0xa6, 0xc3, 0x58, 0x5d, 0x6a, 0xd5, 0xaa, 0x52, 0xf6, - 0xf8, 0xfe, 0x93, 0x78, 0xa9, 0xda, 0xb3, 0xa0, 0x31, 0xdd, 0x9e, 0x95, 0xc3, 0xf0, 0xff, 0x6f, - 0x85, 0x3d, 0x3a, 0x42, 0x09, 0x63, 0xcb, 0x1a, 0x2d, 0x0e, 0x5f, 0x10, 0x72, 0xe2, 0x10, 0xa2, - 0x24, 0x19, 0x1e, 0xff, 0x61, 0x08, 0x3c, 0x4e, 0x80, 0x63, 0x2c, 0x1e, 0xd8, 0x99, 0x23, 0x1a, - 0x86, 0xaf, 0x4e, 0x82, 0x82, 0x86, 0xda, 0xa8, 0xe9, 0xc2, 0x47, 0x19, 0x63, 0x62, 0x0e, 0x64, - 0x03, 0xe7, 0x81, 0xac, 0xd9, 0xe2, 0xa6, 0xcf, 0xd9, 0x9e, 0xe9, 0x73, 0x8c, 0x19, 0x20, 0x25, - 0x32, 0x03, 0x72, 0x29, 0x98, 0x01, 0xf9, 0xe1, 0xcd, 0x80, 0xc2, 0x20, 0x33, 0x00, 0xfe, 0x5a, - 0x21, 0x69, 0x2f, 0x41, 0x58, 0x7d, 0xb8, 0x83, 0xff, 0xff, 0xcc, 0x25, 0xe9, 0x55, 0xfa, 0x52, - 0x9c, 0x4c, 0x8a, 0xbf, 0x27, 0xa5, 0xb0, 0xfc, 0x20, 0xdf, 0x00, 0xae, 0x0f, 0xdf, 0x1b, 0xca, - 0x0b, 0x2b, 0x9a, 0xae, 0xe1, 0x11, 0xbf, 0x5c, 0x53, 0xd5, 0x8d, 0x3a, 0x59, 0xb9, 0x3b, 0x09, - 0xe4, 0xb0, 0x14, 0x75, 0xa3, 0x4a, 0xc6, 0xf7, 0x2d, 0xbe, 0xf4, 0xe5, 0x4a, 0x75, 0xa9, 0x11, - 0xe8, 0x4c, 0x75, 0xb9, 0x56, 0xdc, 0xf6, 0xa6, 0x6c, 0x4c, 0xe9, 0xde, 0x00, 0x4d, 0x6b, 0x28, - 0x55, 0x97, 0x1a, 0xeb, 0x55, 0x65, 0xbd, 0x56, 0xad, 0x94, 0x71, 0xba, 0xa6, 0xe8, 0x45, 0xd3, - 0x1b, 0x68, 0x7a, 0x2c, 0x0a, 0x4d, 0x29, 0xa9, 0xe5, 0x55, 0x45, 0x25, 0x55, 0x3e, 0x20, 0xdf, - 0x04, 0xce, 0x94, 0xaa, 0x35, 0xdd, 0x4b, 0x29, 0x55, 0xef, 0xd7, 0xef, 0xaf, 0x2b, 0x8d, 0xba, - 0x5a, 0x2b, 0x2b, 0x9a, 0xe6, 0xe9, 0x29, 0xb5, 0x3f, 0x8a, 0x6d, 0xf9, 0xf9, 0xe0, 0x4e, 0x86, - 0x34, 0x45, 0xc7, 0xdb, 0x44, 0xeb, 0x35, 0xec, 0x29, 0xb0, 0xa4, 0x34, 0x56, 0x4b, 0x5a, 0xa3, - 0x52, 0x2d, 0xd7, 0xd6, 0xeb, 0x25, 0xbd, 0xe2, 0xa9, 0x73, 0x5d, 0xad, 0xe9, 0xb5, 0xc6, 0x39, - 0x45, 0xd5, 0x2a, 0xb5, 0x6a, 0xd1, 0xf2, 0x9a, 0xcc, 0xe8, 0xbf, 0xdf, 0x0f, 0xdb, 0xf2, 0x75, - 0x60, 0xde, 0x4f, 0x5f, 0xab, 0x79, 0x8c, 0x66, 0x2c, 0x92, 0x4e, 0xaa, 0x16, 0xc9, 0x3f, 0x67, - 0x41, 0x4e, 0x73, 0xed, 0x0e, 0xfc, 0x81, 0xb0, 0x83, 0x39, 0x05, 0x80, 0x83, 0x77, 0x7d, 0xbc, - 0x59, 0x18, 0x9d, 0x97, 0x31, 0x29, 0xf0, 0x0f, 0x84, 0x97, 0xaa, 0xc3, 0x3e, 0xdb, 0xee, 0x44, - 0xd8, 0x2a, 0xdf, 0x11, 0xf3, 0xdd, 0x8f, 0x2e, 0x28, 0x99, 0xbc, 0xff, 0xcc, 0x30, 0x8b, 0xd1, - 0x10, 0x9c, 0x64, 0x60, 0xf3, 0xf8, 0xef, 0x8b, 0x04, 0x92, 0xaf, 0x06, 0x57, 0xf5, 0x08, 0x17, - 0x96, 0xa9, 0x4d, 0xf9, 0xc9, 0xe0, 0x49, 0x8c, 0x78, 0x2b, 0xeb, 0xb5, 0x73, 0x4a, 0x20, 0xc8, - 0x4b, 0x25, 0xbd, 0x54, 0xdc, 0x82, 0x9f, 0x95, 0x40, 0x6e, 0xdd, 0xde, 0xeb, 0xdd, 0x21, 0xb0, - 0xd0, 0x25, 0x66, 0x2d, 0xd4, 0x7f, 0xe5, 0x7d, 0x95, 0x85, 0xd8, 0xbe, 0x1e, 0xbd, 0x1b, 0xf8, - 0x85, 0x6c, 0x12, 0xb6, 0xaf, 0x1f, 0x74, 0x0b, 0xf0, 0xef, 0x86, 0x61, 0x7b, 0x04, 0x6b, 0x91, - 0x7c, 0x06, 0x9c, 0x0a, 0x3f, 0x54, 0x96, 0x94, 0xaa, 0x5e, 0x59, 0xbe, 0x3f, 0x64, 0x6e, 0x45, - 0x15, 0x62, 0xff, 0xa0, 0x6e, 0x2c, 0x7e, 0xa6, 0x31, 0x0f, 0x8e, 0x87, 0xdf, 0x56, 0x14, 0xdd, - 0xff, 0xf2, 0x00, 0x7c, 0x69, 0x1e, 0xcc, 0x90, 0x6e, 0x7d, 0xa3, 0xd3, 0x32, 0x5c, 0x04, 0x6f, - 0x0f, 0xd1, 0xbd, 0x19, 0x1c, 0xad, 0xd4, 0x97, 0x35, 0xcd, 0xb5, 0x1d, 0x63, 0x0b, 0x95, 0x5a, - 0x2d, 0x87, 0x72, 0xab, 0x37, 0x19, 0x3e, 0x26, 0xbc, 0xce, 0xc7, 0x0f, 0x25, 0xa4, 0xce, 0x08, - 0xd4, 0xbf, 0x22, 0xb4, 0x2e, 0x27, 0x50, 0x60, 0x32, 0xf4, 0x1f, 0x18, 0xb1, 0xce, 0x45, 0xe3, - 0xb2, 0x79, 0xe6, 0x65, 0x59, 0x30, 0xa5, 0x9b, 0x3b, 0xe8, 0x45, 0xb6, 0x85, 0xba, 0xf2, 0x04, - 0x90, 0x56, 0xd6, 0xf5, 0xe2, 0x11, 0xef, 0xc1, 0x33, 0xaa, 0x32, 0xf8, 0x41, 0xf1, 0x2a, 0xf0, - 0x1e, 0x4a, 0x7a, 0x51, 0xf2, 0x1e, 0xd6, 0x15, 0xbd, 0x98, 0xf3, 0x1e, 0xaa, 0x8a, 0x5e, 0xcc, - 0x7b, 0x0f, 0xf5, 0x35, 0xbd, 0x58, 0xf0, 0x1e, 0x2a, 0x9a, 0x5e, 0x9c, 0xf0, 0x1e, 0x16, 0x35, - 0xbd, 0x38, 0xe9, 0x3d, 0x9c, 0xd3, 0xf4, 0xe2, 0x94, 0xf7, 0x50, 0xd6, 0xf5, 0x22, 0xf0, 0x1e, - 0x5e, 0xa0, 0xe9, 0xc5, 0x69, 0xef, 0xa1, 0x54, 0xd6, 0x8b, 0x33, 0xf8, 0x41, 0xd1, 0x8b, 0xb3, - 0xde, 0x83, 0xa6, 0xe9, 0xc5, 0x39, 0x5c, 0xb2, 0xa6, 0x17, 0x8f, 0xe2, 0xba, 0x2a, 0x7a, 0xb1, - 0xe8, 0x3d, 0xac, 0x6a, 0x7a, 0xf1, 0x18, 0xce, 0xac, 0xe9, 0x45, 0x19, 0x57, 0xaa, 0xe9, 0xc5, - 0xab, 0x70, 0x1e, 0x4d, 0x2f, 0x1e, 0xc7, 0x55, 0x68, 0x7a, 0xf1, 0x04, 0x26, 0x43, 0xd1, 0x8b, - 0x27, 0x71, 0x1e, 0x55, 0x2f, 0x5e, 0x8d, 0x3f, 0x55, 0xf5, 0xe2, 0x3c, 0x26, 0x4c, 0xd1, 0x8b, - 0xd7, 0xe0, 0x07, 0x55, 0x2f, 0x42, 0xfc, 0xa9, 0xa4, 0x17, 0xaf, 0x85, 0x4f, 0x02, 0x53, 0x2b, - 0xc8, 0x25, 0x20, 0xc2, 0x22, 0x90, 0x56, 0x90, 0xcb, 0x9a, 0xf1, 0x5f, 0x93, 0xc0, 0xd5, 0x74, - 0xea, 0xb7, 0xec, 0xd8, 0x3b, 0x6b, 0x68, 0xcb, 0x68, 0x5e, 0x51, 0x2e, 0x7b, 0x26, 0x14, 0xd4, - 0xb8, 0xa5, 0xab, 0x4e, 0xd8, 0x19, 0xe1, 0xe7, 0x58, 0x8b, 0xd3, 0x5f, 0x8c, 0x92, 0xc2, 0xc5, - 0x28, 0x6a, 0x91, 0xfd, 0x23, 0x2b, 0xd1, 0xdc, 0xfa, 0x71, 0xa6, 0x67, 0xfd, 0xd8, 0x53, 0x93, - 0x0e, 0x72, 0xba, 0xb6, 0x65, 0xb4, 0x35, 0xba, 0x5d, 0x4a, 0x56, 0xbd, 0x7a, 0x93, 0xe5, 0x1f, - 0xf2, 0x35, 0x83, 0x58, 0x65, 0xcf, 0x8b, 0x9b, 0xe1, 0xf6, 0x36, 0x33, 0x42, 0x49, 0x3e, 0x11, - 0x28, 0x89, 0xce, 0x29, 0xc9, 0xbd, 0x07, 0x28, 0x3b, 0x99, 0xbe, 0x54, 0x86, 0x9b, 0x5a, 0x84, - 0xce, 0x84, 0xfe, 0x72, 0xb5, 0x04, 0x3f, 0x9b, 0x05, 0x27, 0x15, 0xab, 0x9f, 0x85, 0xcf, 0xca, - 0xc2, 0xdb, 0x58, 0x68, 0xea, 0x3c, 0x4b, 0xef, 0xec, 0xdb, 0xec, 0xfe, 0x65, 0x46, 0x70, 0xf4, - 0x53, 0x01, 0x47, 0x35, 0x8e, 0xa3, 0xf7, 0x0c, 0x5f, 0x74, 0x32, 0x86, 0x56, 0x47, 0xda, 0x01, - 0xe5, 0xe0, 0x37, 0x72, 0xe0, 0x49, 0xc4, 0xe3, 0x81, 0x52, 0x48, 0xb4, 0xac, 0x64, 0xb5, 0x54, - 0xd4, 0x75, 0x0d, 0xc7, 0xe5, 0x4e, 0xa1, 0xf6, 0x4c, 0xa5, 0x32, 0x29, 0x4c, 0xa5, 0xb2, 0x03, - 0xa7, 0x52, 0xf0, 0xdd, 0xac, 0xf9, 0x70, 0x9e, 0xc7, 0xb8, 0xd4, 0xbf, 0xff, 0x8f, 0x6b, 0x61, - 0x14, 0xd4, 0x81, 0x5d, 0xf1, 0xc3, 0x1c, 0xd4, 0xcb, 0x07, 0xae, 0x21, 0x19, 0xe2, 0x7f, 0x30, - 0x5a, 0x3b, 0x2f, 0xc7, 0x7e, 0xe3, 0x8d, 0x92, 0x62, 0x2b, 0x55, 0x03, 0xfd, 0xd3, 0x13, 0x60, - 0x0a, 0xeb, 0xc2, 0x9a, 0x69, 0x5d, 0x84, 0x8f, 0x48, 0x60, 0xa6, 0x8a, 0x2e, 0x95, 0xb7, 0x8d, - 0x76, 0x1b, 0x59, 0x5b, 0x88, 0x35, 0xdb, 0xe7, 0xc1, 0x84, 0xd1, 0xe9, 0x54, 0xc3, 0x7d, 0x06, - 0xff, 0x95, 0xf6, 0xbf, 0x7f, 0xdb, 0x57, 0xc9, 0x33, 0x31, 0x4a, 0x1e, 0xd4, 0xbb, 0xc0, 0xd6, - 0x19, 0x31, 0x43, 0x3e, 0x0d, 0xa6, 0x9b, 0x7e, 0x96, 0xc0, 0x5b, 0x9d, 0x4d, 0x82, 0x7f, 0x93, - 0xa8, 0x1b, 0x10, 0xaa, 0x3c, 0x99, 0x50, 0xa0, 0x11, 0xdb, 0x21, 0x27, 0xc0, 0x31, 0xbd, 0x56, - 0x6b, 0xac, 0x97, 0xaa, 0xf7, 0x87, 0xa7, 0x44, 0x37, 0xe1, 0xeb, 0x72, 0x60, 0x4e, 0xb3, 0xdb, - 0x7b, 0x28, 0x84, 0xa9, 0x12, 0xc2, 0xd4, 0xc3, 0xa7, 0xcc, 0x3e, 0x3e, 0xc9, 0x27, 0x41, 0xc1, - 0xb0, 0xba, 0x97, 0x90, 0x6f, 0x1b, 0xd2, 0x37, 0x0a, 0xe3, 0xef, 0xb1, 0x7a, 0xac, 0xf2, 0x30, - 0xde, 0x35, 0x80, 0x93, 0x3c, 0x55, 0x11, 0x40, 0x9e, 0x01, 0x33, 0x5d, 0xb2, 0x59, 0xa8, 0x33, - 0x7b, 0xc2, 0x5c, 0x1a, 0x26, 0x91, 0xec, 0x56, 0x4b, 0x94, 0x44, 0xfc, 0x06, 0x1f, 0x09, 0xd4, - 0x7f, 0x83, 0x83, 0xb8, 0x74, 0x10, 0xc2, 0x92, 0x81, 0xfc, 0xf0, 0xa8, 0x67, 0x78, 0xf3, 0xe0, - 0x38, 0xd5, 0xda, 0x46, 0x79, 0xb5, 0xb4, 0xb6, 0xa6, 0x54, 0x57, 0x94, 0x46, 0x65, 0x89, 0x6c, - 0x55, 0x84, 0x29, 0x25, 0x5d, 0x57, 0xd6, 0xeb, 0xba, 0xd6, 0x50, 0x5e, 0x58, 0x56, 0x94, 0x25, - 0xec, 0x88, 0x84, 0x4f, 0x12, 0xf8, 0x2e, 0x63, 0xa5, 0xaa, 0x76, 0x5e, 0x51, 0x8b, 0xdb, 0x67, - 0x4a, 0x60, 0x9a, 0xe9, 0xe7, 0x3d, 0xea, 0x96, 0xd0, 0xa6, 0xb1, 0xdb, 0xa6, 0xb6, 0x5a, 0xf1, - 0x88, 0x47, 0x1d, 0xe6, 0x4d, 0xcd, 0x6a, 0x5f, 0x29, 0x66, 0xe4, 0x22, 0x98, 0x61, 0xbb, 0xf4, - 0x62, 0x16, 0x7e, 0xe7, 0x5a, 0x30, 0x75, 0xde, 0x76, 0x2e, 0x62, 0xef, 0x31, 0xf8, 0x3e, 0x12, - 0x4d, 0xc2, 0x3f, 0x97, 0xc7, 0x0c, 0xec, 0x0f, 0x8b, 0x7b, 0x0b, 0xf8, 0xa5, 0x2d, 0x0c, 0x3c, - 0x7b, 0x77, 0x1a, 0x4c, 0x5f, 0xf2, 0x73, 0x87, 0x9a, 0xce, 0x24, 0xc1, 0xff, 0x2a, 0xb6, 0xff, - 0x3f, 0xb8, 0xca, 0xf4, 0xf7, 0xa7, 0x1f, 0xcd, 0x82, 0xc2, 0x0a, 0x72, 0x4b, 0xed, 0x36, 0xcb, - 0xb7, 0x87, 0x84, 0xcf, 0x53, 0x70, 0x8d, 0x28, 0xb5, 0xdb, 0xd1, 0x4a, 0xc5, 0x30, 0xc8, 0xf7, - 0xfb, 0xe5, 0xd2, 0xe0, 0xaf, 0x09, 0x9d, 0x84, 0x1a, 0x50, 0x61, 0xfa, 0x1c, 0x7b, 0xb3, 0x14, - 0xec, 0x71, 0xff, 0x34, 0x63, 0xe5, 0x3c, 0x33, 0x8c, 0x24, 0x92, 0x89, 0xdf, 0x2b, 0xf7, 0xf3, - 0xc9, 0xf7, 0x81, 0x89, 0xdd, 0x2e, 0x2a, 0x1b, 0x5d, 0x84, 0x69, 0xeb, 0x6d, 0x69, 0xed, 0xc2, - 0x03, 0xa8, 0xe9, 0x2e, 0x54, 0x76, 0x3c, 0x83, 0x7a, 0x83, 0x64, 0x0c, 0x82, 0x73, 0xd0, 0x77, - 0xd5, 0x2f, 0x01, 0xbe, 0x62, 0x08, 0xc8, 0x62, 0xf7, 0x7b, 0x23, 0x8f, 0x5e, 0x25, 0x06, 0x6a, - 0x04, 0x9b, 0xb4, 0xc3, 0x00, 0xf5, 0xe9, 0x2c, 0xc8, 0xd5, 0x3a, 0xc8, 0x12, 0x73, 0x40, 0x7d, - 0x44, 0xdc, 0xcb, 0x2b, 0x68, 0x98, 0x57, 0x7a, 0x04, 0xf7, 0xce, 0x82, 0x9c, 0x69, 0x6d, 0xda, - 0xd4, 0xc0, 0xbc, 0x36, 0x62, 0x33, 0xa7, 0x62, 0x6d, 0xda, 0x2a, 0xce, 0x28, 0xea, 0xe0, 0x15, - 0x57, 0x77, 0xfa, 0x2c, 0xfd, 0xe6, 0x24, 0x28, 0x10, 0xb1, 0x84, 0xaf, 0x96, 0x80, 0x54, 0x6a, - 0xb5, 0x22, 0x0e, 0x71, 0x64, 0xf7, 0x1d, 0xe2, 0xb0, 0xf1, 0x6f, 0x01, 0xdf, 0x83, 0x77, 0x3e, - 0x14, 0x84, 0x60, 0x1f, 0x4d, 0x55, 0xa3, 0xd4, 0x6a, 0x45, 0xfb, 0x92, 0x06, 0x15, 0x66, 0xf9, - 0x0a, 0x59, 0x4d, 0x95, 0xc4, 0x34, 0x35, 0x71, 0x87, 0x1e, 0x49, 0x5f, 0xfa, 0x10, 0xfd, 0x63, - 0x16, 0x4c, 0xac, 0x99, 0x5d, 0xd7, 0xc3, 0xa6, 0x24, 0x82, 0xcd, 0x75, 0x60, 0xca, 0x67, 0x8d, - 0xd7, 0x75, 0x79, 0xfd, 0x72, 0x98, 0x00, 0xdf, 0xc8, 0xa2, 0xf3, 0x02, 0x1e, 0x9d, 0x67, 0xc5, - 0xb7, 0x9e, 0x52, 0x11, 0xed, 0xa3, 0x1d, 0x56, 0x9b, 0xed, 0xad, 0xf6, 0x37, 0x03, 0x86, 0xaf, - 0x73, 0x0c, 0xbf, 0x63, 0x98, 0x2a, 0xd3, 0x67, 0xfa, 0xe7, 0xb3, 0x00, 0x78, 0x75, 0xd3, 0x83, - 0x30, 0x4f, 0xe5, 0x8e, 0xb7, 0xc6, 0x70, 0xf7, 0x75, 0x2c, 0x77, 0xd7, 0x79, 0xee, 0x3e, 0x67, - 0x70, 0x53, 0xe3, 0x0e, 0xbc, 0xc8, 0x45, 0x20, 0x99, 0x01, 0x6b, 0xbd, 0x47, 0xf8, 0x68, 0xc0, - 0xd4, 0x3a, 0xc7, 0xd4, 0xbb, 0x86, 0xac, 0x29, 0x7d, 0xbe, 0xfe, 0x45, 0x16, 0x4c, 0x68, 0xc8, - 0xf5, 0xba, 0x49, 0x78, 0x4e, 0xe4, 0xc8, 0x09, 0xa3, 0xdb, 0x59, 0x41, 0xdd, 0xfe, 0x76, 0x46, - 0x34, 0x4c, 0x46, 0xc8, 0x19, 0x4a, 0x53, 0xc4, 0x22, 0xc0, 0x9b, 0x84, 0xc2, 0x64, 0x0c, 0x2a, - 0x2d, 0x7d, 0xee, 0xbe, 0x2d, 0x1b, 0x6c, 0xb0, 0x3f, 0x8d, 0x9b, 0xa0, 0xb1, 0xe6, 0x6d, 0x66, - 0xbf, 0x79, 0xfb, 0x4f, 0x99, 0xe4, 0xa6, 0x46, 0xdc, 0xee, 0x72, 0x62, 0x83, 0x62, 0x04, 0x1b, - 0xbf, 0xc3, 0xf0, 0xeb, 0x25, 0x12, 0x28, 0xd0, 0x15, 0xe2, 0x7b, 0xe2, 0x57, 0x88, 0x07, 0x4f, - 0x11, 0xde, 0x3b, 0x84, 0xb9, 0x16, 0xb7, 0x6c, 0x1b, 0x90, 0x91, 0x65, 0xc8, 0xb8, 0x15, 0xe4, - 0x71, 0x1c, 0x3f, 0x3a, 0xce, 0x85, 0x7b, 0xf6, 0x7e, 0x11, 0x8a, 0xf7, 0x55, 0x25, 0x99, 0x12, - 0xa3, 0x30, 0x82, 0x95, 0xde, 0xa1, 0x50, 0xf8, 0x68, 0x26, 0x30, 0x42, 0xde, 0x9b, 0xa3, 0x26, - 0xde, 0xc7, 0xf8, 0x88, 0x02, 0x4d, 0xdb, 0x72, 0xd1, 0x65, 0x66, 0x6d, 0x3d, 0x48, 0x88, 0xb5, - 0x0c, 0xe6, 0xc1, 0x84, 0xeb, 0xb0, 0xeb, 0xed, 0xfe, 0x2b, 0xdb, 0xe3, 0xe4, 0xf9, 0x1e, 0xa7, - 0x0a, 0xce, 0x98, 0x56, 0xb3, 0xbd, 0xdb, 0x42, 0x2a, 0x6a, 0x1b, 0x5e, 0xab, 0xba, 0xa5, 0xee, - 0x12, 0xea, 0x20, 0xab, 0x85, 0x2c, 0x97, 0xd0, 0xe9, 0xfb, 0xd6, 0x0a, 0xe4, 0x84, 0x5f, 0x67, - 0x05, 0xe3, 0x6e, 0x5e, 0x30, 0x9e, 0xda, 0x6f, 0x7e, 0x10, 0x63, 0x84, 0xde, 0x01, 0x00, 0x69, - 0xdb, 0x39, 0x13, 0x5d, 0xa2, 0x1d, 0xe2, 0x35, 0x3d, 0xa6, 0x68, 0x2d, 0xc8, 0xa0, 0x32, 0x99, - 0xe1, 0x97, 0x03, 0x61, 0xb8, 0x97, 0x13, 0x86, 0x5b, 0x05, 0x49, 0x48, 0x26, 0x07, 0x9d, 0x21, - 0xd6, 0x2c, 0x66, 0xc1, 0x54, 0xb8, 0xd2, 0x28, 0xc9, 0xd7, 0x80, 0x13, 0xbe, 0xef, 0x42, 0x55, - 0x51, 0x96, 0xb4, 0xc6, 0x46, 0x7d, 0x45, 0x2d, 0x2d, 0x29, 0x45, 0x20, 0xcb, 0x60, 0xae, 0xb6, - 0xf8, 0x02, 0xa5, 0xac, 0x07, 0x2e, 0x07, 0x39, 0xf8, 0x67, 0x59, 0x90, 0xc7, 0x8e, 0xe1, 0xf0, - 0x47, 0x47, 0x24, 0x39, 0x5d, 0x6e, 0xa7, 0x26, 0x98, 0x57, 0x88, 0x47, 0xfa, 0xa3, 0xcc, 0xc4, - 0x54, 0x1d, 0x28, 0xd2, 0x5f, 0x4c, 0x41, 0xe9, 0xab, 0xa7, 0xa7, 0x92, 0xda, 0xb6, 0x7d, 0xe9, - 0xdf, 0xb3, 0x4a, 0x7a, 0xed, 0x3f, 0x64, 0x95, 0xec, 0x43, 0xc2, 0xd8, 0x55, 0xb2, 0x8f, 0xde, - 0xc5, 0xa8, 0x29, 0xfc, 0x9b, 0x5c, 0xb0, 0xb0, 0xf2, 0x7f, 0x1d, 0x6c, 0x61, 0xa5, 0x04, 0x66, - 0x4d, 0xcb, 0x45, 0x8e, 0x65, 0xb4, 0x97, 0xdb, 0xc6, 0x96, 0x7f, 0xfc, 0xb8, 0x77, 0x16, 0x5e, - 0x61, 0xf2, 0xa8, 0xfc, 0x1f, 0xf2, 0x29, 0x00, 0x5c, 0xb4, 0xd3, 0x69, 0x1b, 0x6e, 0x28, 0x7a, - 0x4c, 0x0a, 0x2b, 0x7d, 0x39, 0x5e, 0xfa, 0x9e, 0x01, 0xae, 0x22, 0xa0, 0xe9, 0x57, 0x3a, 0x68, - 0xc3, 0x32, 0x7f, 0x6c, 0x17, 0x07, 0xa0, 0x21, 0x32, 0xda, 0xef, 0x13, 0xfc, 0x1f, 0xc2, 0xc7, - 0x28, 0x7d, 0xcd, 0x1e, 0x70, 0x8c, 0x32, 0xd0, 0x26, 0xa9, 0x47, 0x9b, 0x02, 0x83, 0x20, 0x27, - 0x60, 0x10, 0xb0, 0x9c, 0xcf, 0x0b, 0x1a, 0xd3, 0x6f, 0x10, 0x3a, 0xa7, 0x19, 0xd7, 0x8c, 0xf4, - 0x7b, 0xa8, 0xf7, 0x49, 0x60, 0x8e, 0x54, 0xbd, 0x68, 0xdb, 0x17, 0x77, 0x0c, 0xe7, 0x22, 0x3b, - 0xb7, 0x18, 0x42, 0xdc, 0xa2, 0x57, 0xca, 0x3e, 0xc5, 0x22, 0xbb, 0xc2, 0x23, 0xfb, 0xcc, 0x68, - 0x96, 0xf8, 0x74, 0x8d, 0x67, 0x71, 0xe3, 0x2d, 0x01, 0x66, 0x2f, 0xe0, 0x30, 0xfb, 0xc1, 0xc4, - 0x04, 0xa6, 0x8f, 0xdd, 0x1f, 0x05, 0xd8, 0xf9, 0x1d, 0x76, 0x6a, 0xd8, 0x7d, 0x65, 0x38, 0xec, - 0x7c, 0xba, 0x86, 0xc0, 0xae, 0x08, 0xa4, 0x8b, 0xc1, 0x96, 0x92, 0xf7, 0xc8, 0x36, 0x28, 0x97, - 0x1e, 0x9a, 0x11, 0x24, 0x8f, 0x05, 0xcd, 0xe3, 0x3c, 0x09, 0xb5, 0x4e, 0xaa, 0x98, 0x7e, 0x49, - 0x78, 0xbd, 0xa5, 0x2f, 0x83, 0x08, 0x75, 0xe3, 0xd1, 0x4a, 0xb1, 0xc5, 0x1a, 0x71, 0x32, 0xd3, - 0x47, 0xf3, 0x1f, 0x72, 0x60, 0xca, 0x3f, 0xcc, 0xea, 0xc2, 0x3f, 0x65, 0x86, 0xf0, 0x93, 0xa0, - 0xd0, 0xb5, 0x77, 0x9d, 0x26, 0xa2, 0x2b, 0x60, 0xf4, 0x6d, 0x88, 0xd5, 0x9a, 0x81, 0xe3, 0xf2, - 0xbe, 0xa1, 0x3f, 0x97, 0x78, 0xe8, 0x8f, 0x34, 0x2c, 0xe1, 0x2b, 0x84, 0x43, 0x0f, 0x72, 0xb8, - 0x68, 0xc8, 0x7d, 0x22, 0x8e, 0xd5, 0x1f, 0x12, 0x9a, 0xef, 0x0f, 0x68, 0x49, 0x32, 0xb1, 0xaa, - 0x0d, 0x61, 0x54, 0x5e, 0x0b, 0xae, 0xf6, 0x73, 0x50, 0x6b, 0x12, 0x5b, 0x8f, 0x1b, 0xea, 0x5a, - 0x51, 0x82, 0x2f, 0xc9, 0x81, 0x22, 0x21, 0xad, 0x16, 0x18, 0x56, 0xf0, 0xa1, 0x43, 0xb7, 0x1e, - 0xa3, 0xa7, 0x83, 0x9f, 0xc9, 0x8a, 0x86, 0x37, 0xe2, 0x18, 0x1f, 0xb6, 0x2e, 0x42, 0x92, 0x86, - 0x50, 0xa5, 0x18, 0xe1, 0x83, 0xbf, 0x91, 0x11, 0x89, 0x96, 0x24, 0x46, 0x62, 0xfa, 0x3d, 0xcf, - 0x1b, 0x73, 0x7e, 0xdc, 0x81, 0x65, 0xc7, 0xde, 0xd9, 0x70, 0xda, 0xf0, 0xc3, 0x42, 0xc1, 0xe8, - 0x22, 0x4c, 0xf5, 0x6c, 0xa4, 0xa9, 0xee, 0x0d, 0xd1, 0xbb, 0x4e, 0xdb, 0x1f, 0xa2, 0x77, 0x9d, - 0xf6, 0x10, 0x43, 0xb4, 0x7c, 0x13, 0x98, 0x33, 0x5a, 0xad, 0xba, 0xb1, 0x85, 0xca, 0xde, 0x1c, - 0xd8, 0x72, 0xe9, 0x99, 0xe4, 0x9e, 0xd4, 0x04, 0x3b, 0x63, 0x1c, 0x10, 0x94, 0x07, 0x4f, 0xa4, - 0x9d, 0x31, 0x01, 0xfa, 0xd2, 0x97, 0x92, 0x4f, 0x64, 0xc1, 0xac, 0x6f, 0xb8, 0x2e, 0x23, 0xb7, - 0xb9, 0x0d, 0xef, 0x10, 0x5d, 0xa1, 0xa0, 0xb0, 0x67, 0x03, 0xd8, 0xe1, 0xf7, 0x32, 0x09, 0xb1, - 0xe1, 0x6a, 0x8e, 0x58, 0xde, 0x49, 0xc4, 0xcc, 0xb8, 0x02, 0xd3, 0x67, 0xe6, 0x97, 0xb3, 0x00, - 0xe8, 0x76, 0x30, 0x81, 0x3a, 0x00, 0x27, 0x5f, 0x25, 0x1c, 0xa6, 0x9c, 0x36, 0x3c, 0xac, 0x36, - 0xb9, 0x88, 0x0b, 0xee, 0xcd, 0x0c, 0xaa, 0x29, 0x7d, 0xfe, 0x7e, 0x20, 0x0b, 0xa6, 0x96, 0x76, - 0x3b, 0x6d, 0xb3, 0x69, 0xb8, 0xbd, 0x1b, 0x8a, 0xd1, 0xec, 0xc5, 0xf7, 0x8d, 0x24, 0xb2, 0x50, - 0x82, 0x3a, 0x22, 0x78, 0x49, 0x4e, 0x5b, 0x66, 0xfd, 0xd3, 0x96, 0x82, 0x9b, 0x04, 0x03, 0x0a, - 0x1f, 0x83, 0x78, 0x4a, 0xe0, 0x68, 0xad, 0x83, 0xac, 0x45, 0x07, 0x19, 0xad, 0xa6, 0xb3, 0xbb, - 0x73, 0xa1, 0xcb, 0xee, 0x86, 0xc7, 0xcb, 0x28, 0xb3, 0xe6, 0x98, 0xe5, 0xd6, 0x1c, 0xe1, 0x4f, - 0x49, 0xa2, 0x67, 0x7f, 0x99, 0x95, 0x71, 0x86, 0x86, 0x21, 0xfa, 0xe4, 0x44, 0x7b, 0x38, 0x3d, - 0xcb, 0x8b, 0xb9, 0x24, 0xcb, 0x8b, 0x6f, 0x15, 0x3a, 0x49, 0x2c, 0xd4, 0xae, 0xb1, 0x6c, 0xc5, - 0xcd, 0x69, 0xc8, 0x8d, 0x80, 0xf7, 0x46, 0x30, 0x7b, 0x21, 0xfc, 0x12, 0x40, 0xcc, 0x27, 0xf6, - 0xd9, 0x20, 0x7f, 0x5b, 0xd2, 0x29, 0x3f, 0x4f, 0x42, 0x04, 0xba, 0x01, 0x82, 0x59, 0x91, 0x5d, - 0xb8, 0x44, 0xf3, 0xf7, 0xd8, 0xfa, 0xd3, 0x47, 0xe1, 0xa3, 0x59, 0x30, 0x8d, 0x6f, 0x51, 0x59, - 0xbc, 0x82, 0xdd, 0xb3, 0x9f, 0xc2, 0x85, 0xda, 0x8a, 0xf4, 0xf8, 0x79, 0x39, 0xcb, 0x66, 0x19, - 0xe4, 0xda, 0xa6, 0x75, 0xd1, 0xdf, 0x3e, 0xf5, 0x9e, 0xc3, 0x98, 0xfc, 0xd9, 0x3e, 0x31, 0xf9, - 0x83, 0x05, 0xee, 0xa0, 0xde, 0x03, 0x5d, 0x12, 0x35, 0xb0, 0xb8, 0xf4, 0xd9, 0xf8, 0xc7, 0x39, - 0x50, 0xd0, 0x90, 0xe1, 0x34, 0xb7, 0xe1, 0xeb, 0x98, 0x83, 0xee, 0xcb, 0x60, 0x62, 0xd3, 0x6c, - 0xbb, 0xc8, 0x21, 0x8e, 0x23, 0x6c, 0x07, 0x4e, 0x14, 0x79, 0xb1, 0x6d, 0x37, 0x2f, 0x2e, 0x50, - 0x6b, 0x71, 0xc1, 0x8f, 0x19, 0xb4, 0xb0, 0x8c, 0x7f, 0x52, 0xfd, 0x9f, 0xe5, 0x7b, 0x41, 0xbe, - 0x6b, 0x3b, 0x6e, 0x54, 0x10, 0xce, 0x88, 0x52, 0x34, 0xdb, 0x71, 0x55, 0xf2, 0xa3, 0x07, 0xe6, - 0xe6, 0x6e, 0xbb, 0xad, 0xa3, 0xcb, 0xae, 0x3f, 0x53, 0xf0, 0xdf, 0xbd, 0xb9, 0xbd, 0xbd, 0xb9, - 0xd9, 0x45, 0x64, 0x9e, 0x9a, 0x57, 0xe9, 0x9b, 0x7c, 0x1c, 0xe4, 0xdb, 0xe6, 0x8e, 0x49, 0x6c, - 0xdb, 0xbc, 0x4a, 0x5e, 0xe4, 0x5b, 0x40, 0x31, 0x34, 0xab, 0x09, 0xa1, 0xf3, 0x05, 0xac, 0x80, - 0xfb, 0xd2, 0x3d, 0xc9, 0xb8, 0x88, 0xae, 0x74, 0xe7, 0x27, 0xf0, 0x77, 0xfc, 0xcc, 0x7b, 0xe9, - 0x89, 0x2c, 0x95, 0x13, 0xbe, 0x46, 0x4f, 0x9a, 0x1c, 0xd4, 0xb4, 0x9d, 0x96, 0xcf, 0x9b, 0x68, - 0x7b, 0x97, 0xe6, 0x4b, 0xb6, 0xc0, 0xdd, 0xb7, 0xf2, 0xf4, 0xe5, 0xe9, 0x35, 0x05, 0xaf, 0x73, - 0xf4, 0xaa, 0x3e, 0x6f, 0xba, 0xdb, 0xeb, 0xc8, 0x35, 0xe0, 0x1f, 0x4b, 0xff, 0x9f, 0x5c, 0xc5, - 0xc8, 0x15, 0x39, 0xf3, 0xed, 0xee, 0x3a, 0x96, 0xc7, 0x2d, 0x1a, 0x65, 0x89, 0x49, 0x91, 0xef, - 0x02, 0xd7, 0x84, 0x6f, 0xfe, 0x3a, 0xdb, 0x12, 0x9d, 0x2b, 0x4d, 0xe1, 0xec, 0xd1, 0x19, 0xe4, - 0x3a, 0xb8, 0x81, 0x7c, 0x5c, 0xd5, 0xd7, 0xd7, 0x56, 0xcd, 0xad, 0xed, 0xb6, 0xb9, 0xb5, 0xed, - 0x76, 0x2b, 0x56, 0xd7, 0x45, 0x46, 0xab, 0xb6, 0xa9, 0x92, 0x20, 0xb9, 0x00, 0x97, 0x23, 0x92, - 0x95, 0x77, 0x1f, 0x11, 0x1b, 0xa9, 0x58, 0x79, 0x88, 0xd0, 0x87, 0x1f, 0xf4, 0xf4, 0xa1, 0xbb, - 0xdb, 0x0e, 0x30, 0xbd, 0xae, 0x07, 0xd3, 0x50, 0xa0, 0x77, 0xdb, 0x58, 0x29, 0x70, 0xe6, 0xa4, - 0x63, 0x56, 0x0c, 0x25, 0xe9, 0x2b, 0xc7, 0xff, 0x53, 0x00, 0xf9, 0x15, 0xc7, 0xe8, 0x6c, 0xc3, - 0x97, 0xa4, 0xd0, 0xd7, 0x06, 0xd2, 0x99, 0x1d, 0x24, 0x9d, 0xd2, 0x00, 0xe9, 0xcc, 0x31, 0xd2, - 0x19, 0xbd, 0xd5, 0x7d, 0x06, 0xcc, 0x34, 0xed, 0x76, 0x1b, 0x35, 0x3d, 0x7e, 0x54, 0x5a, 0x38, - 0x30, 0xc8, 0x94, 0xca, 0xa5, 0xe1, 0xe8, 0x69, 0xc8, 0xd5, 0xc8, 0x02, 0x2c, 0x11, 0xfa, 0x30, - 0x01, 0x3e, 0x94, 0x05, 0x39, 0xa5, 0xb5, 0x85, 0xb8, 0x45, 0xda, 0x0c, 0xb3, 0x48, 0x7b, 0x12, - 0x14, 0x5c, 0xc3, 0xd9, 0x42, 0xae, 0x7f, 0x1c, 0x87, 0xbc, 0x05, 0x41, 0xdd, 0x24, 0x26, 0xa8, - 0xdb, 0x73, 0x40, 0xce, 0xe3, 0x19, 0x0d, 0x97, 0x72, 0x43, 0x3f, 0xf8, 0x31, 0xef, 0x17, 0xbc, - 0x1a, 0x17, 0xbc, 0x56, 0xab, 0xf8, 0x87, 0x5e, 0xac, 0xf3, 0xfb, 0xb0, 0xc6, 0xf7, 0x7d, 0x34, - 0x6d, 0xab, 0xb2, 0x63, 0x6c, 0x21, 0xda, 0xcc, 0x30, 0xc1, 0xff, 0xaa, 0xec, 0xd8, 0x0f, 0x98, - 0x34, 0xbe, 0x5a, 0x98, 0xe0, 0x35, 0x61, 0xdb, 0x6c, 0xb5, 0x90, 0x45, 0x35, 0x9b, 0xbe, 0x9d, - 0x39, 0x05, 0x72, 0x1e, 0x0d, 0x9e, 0xfc, 0x78, 0x03, 0x7f, 0xf1, 0x88, 0x3c, 0xe3, 0xa9, 0x15, - 0x51, 0xde, 0x62, 0x86, 0x5f, 0xac, 0x13, 0xf1, 0xdd, 0x20, 0x8d, 0xeb, 0xaf, 0x5c, 0x4f, 0x07, - 0x79, 0xcb, 0x6e, 0xa1, 0x81, 0x43, 0x0d, 0xc9, 0x25, 0x3f, 0x0b, 0xe4, 0x51, 0xcb, 0xeb, 0x15, - 0x24, 0x9c, 0xfd, 0x54, 0x3c, 0x2f, 0x55, 0x92, 0x39, 0x99, 0x83, 0x48, 0x3f, 0x6a, 0xd3, 0x57, - 0xc0, 0x5f, 0x99, 0x00, 0x47, 0x49, 0x1f, 0xa0, 0xed, 0x5e, 0xf0, 0x8a, 0xba, 0x80, 0xe0, 0x63, - 0x12, 0x17, 0x45, 0xb2, 0xbb, 0x7b, 0x21, 0x30, 0x1b, 0xc9, 0x0b, 0xab, 0xa0, 0xd9, 0x91, 0x0c, - 0x5a, 0xd2, 0xb0, 0x83, 0x16, 0x37, 0x00, 0x49, 0xbe, 0x8a, 0x87, 0xc3, 0x55, 0x01, 0x27, 0xfb, - 0xc3, 0x55, 0xbf, 0xc1, 0x66, 0x1e, 0x4c, 0x18, 0x9b, 0x2e, 0x72, 0x2a, 0x2d, 0x2c, 0x8f, 0x53, - 0xaa, 0xff, 0xea, 0x0d, 0x88, 0x17, 0xd0, 0xa6, 0xed, 0x78, 0x9a, 0x3e, 0x45, 0x06, 0x44, 0xff, - 0x9d, 0xd1, 0x4f, 0xc0, 0x6d, 0xa2, 0xdc, 0x0c, 0x8e, 0x9a, 0x5b, 0x96, 0xed, 0xa0, 0xc0, 0x33, - 0x6f, 0x7e, 0x86, 0x1c, 0x16, 0xef, 0x49, 0x96, 0x6f, 0x05, 0xc7, 0x2c, 0x7b, 0x09, 0x75, 0x28, - 0xdf, 0x09, 0xaa, 0xb3, 0x58, 0x23, 0xf6, 0x7f, 0xd8, 0xd7, 0xb5, 0xcc, 0xed, 0xef, 0x5a, 0xe0, - 0xa7, 0x93, 0xce, 0x87, 0x7b, 0x80, 0x1f, 0x99, 0x5d, 0x26, 0x3f, 0x0f, 0xcc, 0xb4, 0xa8, 0xdf, - 0x4e, 0xd3, 0x0c, 0xb4, 0x26, 0xf2, 0x3f, 0x2e, 0x73, 0x28, 0x72, 0x39, 0x56, 0xe4, 0x56, 0xc0, - 0x24, 0x3e, 0xa5, 0xe1, 0xc9, 0x5c, 0xbe, 0x27, 0x18, 0x1d, 0x9e, 0xb2, 0x05, 0x8d, 0x62, 0xd8, - 0xb6, 0x50, 0xa6, 0xbf, 0xa8, 0xc1, 0xcf, 0xc9, 0x66, 0xd6, 0xf1, 0x1c, 0x4a, 0x5f, 0x3d, 0x3f, - 0x93, 0x03, 0x47, 0x57, 0x1c, 0x7b, 0xb7, 0xd3, 0x0d, 0xd5, 0xf3, 0xaf, 0xfa, 0xaf, 0xa6, 0x17, - 0xf8, 0xb1, 0xa8, 0xbf, 0xe2, 0x9e, 0x06, 0xd3, 0x0e, 0xed, 0x51, 0xc3, 0xb5, 0x75, 0x36, 0x89, - 0x55, 0x6d, 0xe9, 0x20, 0xaa, 0x1d, 0x2a, 0x48, 0x8e, 0x53, 0x90, 0x5e, 0x41, 0xce, 0xf7, 0x11, - 0xe4, 0xbf, 0xcc, 0x26, 0x14, 0xe4, 0x1e, 0x16, 0x45, 0x08, 0x72, 0x19, 0x14, 0xb6, 0x70, 0x46, - 0x2a, 0xc7, 0x4f, 0x13, 0x6b, 0x19, 0x2e, 0x5c, 0xa5, 0xbf, 0x86, 0x7c, 0x95, 0x18, 0xbe, 0x26, - 0x13, 0xaa, 0x78, 0x6a, 0xd3, 0x17, 0xaa, 0x77, 0xe6, 0xc0, 0x4c, 0x50, 0x3b, 0x3e, 0xf8, 0x90, - 0x19, 0xd4, 0xe1, 0xef, 0x5b, 0x9d, 0x09, 0xba, 0x52, 0x89, 0xe9, 0x4a, 0xfb, 0x74, 0x7e, 0xd3, - 0x09, 0x3a, 0xbf, 0x99, 0x88, 0xce, 0x0f, 0xbe, 0x58, 0x12, 0x0d, 0x5a, 0xcc, 0xf7, 0x01, 0xb8, - 0x75, 0x4f, 0xe4, 0x5e, 0x4d, 0x30, 0x74, 0xf2, 0xe0, 0x56, 0xa5, 0x2f, 0x34, 0x1f, 0xcc, 0x82, - 0x63, 0xa4, 0x37, 0xdc, 0xb0, 0xba, 0x41, 0x5f, 0xf4, 0x64, 0xde, 0xad, 0xc0, 0x6b, 0x53, 0x37, - 0x70, 0x2b, 0xc0, 0x6f, 0xfc, 0x22, 0x78, 0xec, 0x99, 0x25, 0xae, 0xcf, 0x65, 0x6a, 0x89, 0x58, - 0x51, 0x12, 0x3b, 0x95, 0x24, 0x58, 0x68, 0xfa, 0x0c, 0xfc, 0x45, 0x09, 0x4c, 0x69, 0xc8, 0x5d, - 0x33, 0xae, 0xd8, 0xbb, 0x2e, 0x34, 0x44, 0x97, 0xbf, 0x9f, 0x0b, 0x0a, 0x6d, 0xfc, 0x0b, 0xbd, - 0x81, 0xeb, 0x74, 0xdf, 0xf5, 0x63, 0xbc, 0xd1, 0x4b, 0x8a, 0x56, 0x69, 0x7e, 0xfe, 0xb0, 0x98, - 0xc8, 0xee, 0x43, 0x40, 0xdd, 0x48, 0x96, 0x4e, 0x13, 0xed, 0x4d, 0x44, 0x55, 0x9d, 0x3e, 0x2c, - 0x3f, 0x25, 0x81, 0x59, 0x0d, 0xb9, 0x95, 0xee, 0xb2, 0xb1, 0x67, 0x3b, 0xa6, 0x8b, 0xd8, 0xcb, - 0x20, 0xe2, 0xa1, 0x39, 0x05, 0x80, 0x19, 0xfc, 0x46, 0xa3, 0x81, 0x33, 0x29, 0xf0, 0x37, 0x92, - 0xee, 0x18, 0x73, 0x74, 0x8c, 0x04, 0x84, 0x44, 0x7b, 0x98, 0x71, 0xd5, 0xa7, 0x0f, 0xc4, 0x17, - 0xb2, 0x14, 0x88, 0x92, 0xd3, 0xdc, 0x36, 0xf7, 0x50, 0x2b, 0x21, 0x10, 0xfe, 0x6f, 0x21, 0x10, - 0x41, 0x41, 0x89, 0xb7, 0x87, 0x39, 0x3a, 0x46, 0xb1, 0x3d, 0x1c, 0x57, 0xe0, 0x58, 0x4e, 0xa1, - 0x7a, 0x5d, 0x0f, 0x5d, 0x63, 0xb8, 0x47, 0x94, 0xad, 0xa1, 0x09, 0x97, 0x65, 0x4d, 0xb8, 0xa1, - 0x3a, 0x16, 0x52, 0xf7, 0x20, 0x99, 0xce, 0xa5, 0xd1, 0xb1, 0xf4, 0xad, 0x3a, 0x7d, 0xa6, 0xbf, - 0x47, 0x02, 0x27, 0x02, 0x83, 0x47, 0x43, 0xee, 0x92, 0xd1, 0xdd, 0xbe, 0x60, 0x1b, 0x4e, 0x8b, - 0xbd, 0x99, 0x6d, 0xe8, 0xa3, 0x18, 0xf0, 0xcf, 0x59, 0x10, 0xaa, 0x3c, 0x08, 0x7d, 0xfd, 0x82, - 0xfa, 0xd2, 0x32, 0x8a, 0x4e, 0x26, 0xd6, 0x75, 0xe9, 0xb7, 0x02, 0xb0, 0x7e, 0x88, 0x03, 0xeb, - 0xee, 0x61, 0x49, 0x4c, 0x1f, 0xb8, 0x5f, 0x26, 0x23, 0x02, 0xe3, 0xc2, 0x76, 0xbf, 0x28, 0x60, - 0x11, 0x2e, 0x4c, 0x52, 0xf4, 0x69, 0x83, 0x61, 0xc6, 0x88, 0x81, 0xee, 0x67, 0xe9, 0x8e, 0x11, - 0x87, 0xe8, 0x5a, 0xf6, 0x4e, 0x09, 0x14, 0xf1, 0xf9, 0x5c, 0xc6, 0xbd, 0x0f, 0x3e, 0x20, 0x8a, - 0xce, 0x3e, 0x57, 0xc2, 0x89, 0xa4, 0xae, 0x84, 0xf0, 0x1d, 0x49, 0x1d, 0x06, 0x7b, 0xa9, 0x1d, - 0x09, 0x62, 0x89, 0xfc, 0x01, 0x07, 0x50, 0x90, 0x3e, 0x68, 0xff, 0x59, 0x02, 0xc0, 0x53, 0x68, - 0xea, 0xa3, 0xf6, 0x42, 0x51, 0xb8, 0xce, 0xb2, 0x4e, 0x94, 0x1e, 0x50, 0x27, 0x7a, 0x80, 0x22, - 0x25, 0x86, 0xde, 0x6f, 0x6f, 0x4a, 0xea, 0xbb, 0x14, 0x52, 0x35, 0x12, 0x58, 0x12, 0x79, 0x33, - 0x45, 0xd6, 0x9d, 0x3e, 0x20, 0xbf, 0x9d, 0x05, 0x79, 0xdd, 0xd6, 0x90, 0x7b, 0x70, 0x53, 0x20, - 0xf1, 0x79, 0x4a, 0x5c, 0xef, 0x28, 0xce, 0x53, 0xf6, 0x2b, 0x28, 0x7d, 0xd6, 0x3d, 0x96, 0x05, - 0x33, 0xba, 0x5d, 0x0e, 0x16, 0xab, 0xc4, 0x7d, 0xc1, 0xc4, 0x2f, 0x5e, 0x0a, 0x1a, 0x18, 0x56, - 0x73, 0xa0, 0x8b, 0x97, 0x06, 0x97, 0x97, 0x3e, 0xdf, 0xee, 0x00, 0x47, 0x37, 0xac, 0x96, 0xad, - 0xa2, 0x96, 0x4d, 0x97, 0x64, 0x65, 0x19, 0xe4, 0x76, 0xad, 0x96, 0x8d, 0x49, 0xce, 0xab, 0xf8, - 0xd9, 0x4b, 0x73, 0x50, 0xcb, 0xa6, 0xfb, 0x75, 0xf8, 0x19, 0x7e, 0x5d, 0x02, 0x39, 0xef, 0x5f, - 0x71, 0x56, 0xbf, 0x53, 0x4a, 0x78, 0x42, 0xd4, 0x2b, 0x7e, 0x24, 0x96, 0xd0, 0x3d, 0xcc, 0x22, - 0x35, 0xf1, 0x10, 0xbb, 0x21, 0xaa, 0x3e, 0x86, 0x15, 0xe1, 0xe2, 0xb4, 0x3c, 0x0f, 0x26, 0x2e, - 0xb4, 0xed, 0xe6, 0xc5, 0xf0, 0x20, 0x23, 0x7d, 0x95, 0x6f, 0x01, 0x79, 0xc7, 0xb0, 0xb6, 0x10, - 0x5d, 0xfc, 0x3e, 0xde, 0xd3, 0x17, 0xe2, 0x9d, 0x68, 0x95, 0x64, 0x81, 0xef, 0x48, 0x72, 0x36, - 0xb5, 0x4f, 0xe3, 0x93, 0xc9, 0xc3, 0xd2, 0x10, 0xc7, 0x08, 0x8a, 0x60, 0xa6, 0x5c, 0x22, 0x57, - 0x9c, 0xad, 0xd7, 0xce, 0x29, 0x45, 0x09, 0xc3, 0xec, 0xf1, 0x24, 0x45, 0x98, 0xbd, 0xe2, 0xff, - 0xdd, 0xc2, 0xdc, 0xa7, 0xf1, 0x87, 0x01, 0xf3, 0x27, 0xb2, 0x60, 0x76, 0xcd, 0xec, 0xba, 0x51, - 0xde, 0xb4, 0x31, 0xe1, 0x79, 0x5e, 0x91, 0xd4, 0x54, 0xe6, 0xea, 0x11, 0x8e, 0xcb, 0x93, 0xc8, - 0x1c, 0x8e, 0xab, 0x62, 0x3c, 0x6e, 0xdf, 0x98, 0x02, 0x72, 0x2d, 0x91, 0x30, 0x27, 0x13, 0x1b, - 0x4a, 0x61, 0x25, 0xe3, 0x37, 0x94, 0x22, 0xeb, 0x4e, 0x9f, 0xbf, 0x5f, 0xcf, 0x82, 0x63, 0x5e, - 0xf5, 0x71, 0xcb, 0x52, 0xd1, 0x6c, 0x1e, 0xb8, 0x2c, 0x95, 0x78, 0x65, 0x7c, 0x1f, 0x2d, 0xa3, - 0x58, 0x19, 0x1f, 0x54, 0xe8, 0x98, 0xd9, 0x1c, 0xb1, 0x0c, 0x3b, 0x88, 0xcd, 0x31, 0xcb, 0xb0, - 0xc3, 0xb3, 0x39, 0x7e, 0x29, 0x76, 0x48, 0x36, 0x1f, 0xda, 0x02, 0xeb, 0xaf, 0x49, 0x01, 0x9b, - 0x23, 0xd7, 0x36, 0x62, 0xd8, 0x9c, 0xf8, 0x78, 0x16, 0x7c, 0xd7, 0x90, 0x8c, 0x1f, 0xf1, 0xfa, - 0xc6, 0x30, 0x30, 0x1d, 0xe2, 0x1a, 0xc7, 0x6b, 0x24, 0x30, 0x47, 0xa9, 0xe8, 0x3f, 0x65, 0x8e, - 0xc1, 0x28, 0xf1, 0x94, 0x39, 0xb1, 0x8f, 0x3d, 0x4f, 0xd9, 0xf8, 0x7d, 0xec, 0x63, 0xeb, 0x4f, - 0x1f, 0x9c, 0x3f, 0xcb, 0x81, 0x93, 0x1e, 0x09, 0xeb, 0x76, 0xcb, 0xdc, 0xbc, 0x42, 0xa8, 0x38, - 0x67, 0xb4, 0x77, 0x51, 0x17, 0xbe, 0x25, 0x2b, 0x8a, 0xd2, 0xff, 0x0f, 0x00, 0xbb, 0x83, 0x1c, - 0x12, 0xe1, 0x86, 0x02, 0x75, 0x57, 0x54, 0x63, 0xf7, 0xd7, 0x14, 0x44, 0x9d, 0xad, 0xf9, 0x85, - 0xa8, 0x4c, 0x79, 0xf0, 0x0d, 0x19, 0x30, 0x15, 0x7c, 0xf1, 0xa3, 0x18, 0x64, 0xc2, 0x28, 0x06, - 0x37, 0x03, 0xc9, 0x68, 0xb5, 0x02, 0x68, 0x7a, 0x37, 0xaf, 0x71, 0x1d, 0xaa, 0x97, 0xc5, 0xcb, - 0xd9, 0x45, 0xe1, 0x51, 0x97, 0x88, 0x9c, 0x5d, 0xe4, 0xca, 0x0b, 0xa0, 0x40, 0xae, 0x64, 0x0a, - 0x56, 0xf0, 0xfb, 0x67, 0xa6, 0xb9, 0x78, 0x53, 0xae, 0xc6, 0x8b, 0xdd, 0x1d, 0x89, 0x38, 0xd1, - 0xaf, 0x5f, 0x0e, 0xed, 0x62, 0x95, 0x13, 0xa8, 0xe7, 0x0f, 0x5d, 0xf2, 0x78, 0x76, 0xbf, 0x4a, - 0x9d, 0x4e, 0xfb, 0x8a, 0x4e, 0x4f, 0xcf, 0x27, 0xda, 0xfd, 0x62, 0x0e, 0xe1, 0x67, 0x7b, 0x0f, - 0xe1, 0x27, 0xdf, 0xfd, 0xe2, 0xe8, 0x18, 0xc5, 0xee, 0x57, 0x5c, 0x81, 0x63, 0x58, 0x7f, 0xcc, - 0x13, 0x2b, 0x99, 0x06, 0x0b, 0x64, 0xf5, 0x94, 0x71, 0x9f, 0x02, 0xbc, 0xfb, 0x54, 0xbf, 0x38, - 0x82, 0xb1, 0x41, 0x52, 0xe5, 0x67, 0x81, 0xc2, 0xa6, 0xed, 0xec, 0x18, 0xfe, 0x46, 0x7d, 0xaf, - 0xb7, 0x36, 0x0d, 0xd0, 0xb7, 0x8c, 0xf3, 0xa8, 0x34, 0xaf, 0xa7, 0x9f, 0x2f, 0x32, 0x3b, 0x34, - 0xfc, 0x95, 0xf7, 0x28, 0xdf, 0x08, 0x66, 0x69, 0x14, 0xac, 0x2a, 0xea, 0xba, 0xa8, 0x45, 0x8f, - 0x23, 0xf3, 0x89, 0xf2, 0x19, 0x30, 0x43, 0x13, 0x96, 0xcd, 0x36, 0xea, 0xd2, 0x3b, 0x08, 0xb9, - 0x34, 0xf9, 0x24, 0x28, 0x98, 0xdd, 0x17, 0x74, 0x6d, 0x0b, 0xfb, 0xe0, 0x4e, 0xaa, 0xf4, 0x0d, - 0xbb, 0xe9, 0x90, 0x7c, 0x81, 0x71, 0x4a, 0x9c, 0xe6, 0x7b, 0x93, 0xe1, 0x67, 0x87, 0x99, 0x28, - 0x24, 0x0e, 0x8c, 0xe8, 0xa1, 0xb0, 0xdb, 0x6c, 0x22, 0xd4, 0xa2, 0xa7, 0x0b, 0xfc, 0xd7, 0x84, - 0x21, 0x13, 0x13, 0x4f, 0x2b, 0x0e, 0x29, 0x66, 0xe2, 0x87, 0x4f, 0x80, 0x02, 0x89, 0x23, 0x0e, - 0x5f, 0x3d, 0xd7, 0x57, 0x18, 0xe7, 0x78, 0x61, 0xdc, 0x00, 0x33, 0x96, 0xed, 0x55, 0x57, 0x37, - 0x1c, 0x63, 0xa7, 0x1b, 0xb7, 0x6a, 0x48, 0xca, 0x0d, 0x86, 0x88, 0x2a, 0xf3, 0xdb, 0xea, 0x11, - 0x95, 0x2b, 0x46, 0xfe, 0xff, 0x83, 0xa3, 0x17, 0xe8, 0x89, 0xda, 0x2e, 0x2d, 0x39, 0x1b, 0xed, - 0x63, 0xd7, 0x53, 0xf2, 0x22, 0xff, 0xe7, 0xea, 0x11, 0xb5, 0xb7, 0x30, 0xf9, 0x47, 0xc0, 0x9c, - 0xf7, 0xda, 0xb2, 0x2f, 0xf9, 0x84, 0x4b, 0xd1, 0x86, 0x45, 0x4f, 0xf1, 0xeb, 0xdc, 0x8f, 0xab, - 0x47, 0xd4, 0x9e, 0xa2, 0xe4, 0x1a, 0x00, 0xdb, 0xee, 0x4e, 0x9b, 0x16, 0x9c, 0x8b, 0x16, 0xc9, - 0x9e, 0x82, 0x57, 0x83, 0x9f, 0x56, 0x8f, 0xa8, 0x4c, 0x11, 0xf2, 0x1a, 0x98, 0x72, 0x2f, 0xbb, - 0xb4, 0xbc, 0x7c, 0xf4, 0x66, 0x76, 0x4f, 0x79, 0xba, 0xff, 0xcf, 0xea, 0x11, 0x35, 0x2c, 0x40, - 0xae, 0x80, 0xc9, 0xce, 0x05, 0x5a, 0x58, 0xa1, 0xcf, 0xdd, 0xc9, 0xfd, 0x0b, 0xab, 0x5f, 0x08, - 0xca, 0x0a, 0x7e, 0xf7, 0x08, 0x6b, 0x76, 0xf7, 0x68, 0x59, 0x13, 0xc2, 0x84, 0x95, 0xfd, 0x7f, - 0x3c, 0xc2, 0x82, 0x02, 0xe4, 0x0a, 0x98, 0xea, 0x5a, 0x46, 0xa7, 0xbb, 0x6d, 0xbb, 0xdd, 0xf9, - 0xc9, 0x1e, 0x3f, 0xc8, 0xe8, 0xd2, 0x34, 0xfa, 0x8f, 0x1a, 0xfe, 0x2d, 0x3f, 0x0b, 0x9c, 0xd8, - 0xc5, 0xf7, 0xb1, 0x29, 0x97, 0xcd, 0xae, 0x6b, 0x5a, 0x5b, 0x7e, 0x30, 0x3f, 0xd2, 0x9b, 0xf4, - 0xff, 0x28, 0x2f, 0xd0, 0x53, 0x09, 0x00, 0xeb, 0x26, 0xec, 0xdd, 0x7c, 0x23, 0xd5, 0x32, 0x87, - 0x11, 0x9e, 0x07, 0x72, 0xde, 0x27, 0xec, 0x49, 0x38, 0xd7, 0x7f, 0x61, 0xaf, 0x57, 0x76, 0xb0, - 0x02, 0x7b, 0x3f, 0x79, 0x63, 0xa3, 0x65, 0xd7, 0x1d, 0x7b, 0xcb, 0x41, 0xdd, 0x2e, 0x75, 0x30, - 0x64, 0x52, 0x3c, 0x05, 0x37, 0xbb, 0xeb, 0xe6, 0x16, 0xb1, 0x96, 0xa8, 0xfb, 0x35, 0x9b, 0x44, - 0x66, 0x97, 0x55, 0x74, 0x09, 0xdf, 0xf1, 0x35, 0x7f, 0xd4, 0x9f, 0x5d, 0xfa, 0x29, 0xf0, 0x26, - 0x30, 0xc3, 0x2a, 0x19, 0xb9, 0x8c, 0xc4, 0xbc, 0x2f, 0xb0, 0xb9, 0xe8, 0x1b, 0xbc, 0x11, 0xcc, - 0xf1, 0x32, 0xcd, 0x0c, 0x31, 0x92, 0xdf, 0x15, 0xc2, 0x1b, 0xc0, 0xd1, 0x1e, 0xc5, 0xf2, 0xcf, - 0xe8, 0x67, 0xc2, 0x33, 0xfa, 0xa7, 0x01, 0x08, 0xa5, 0xb8, 0x6f, 0x31, 0xd7, 0x83, 0xa9, 0x40, - 0x2e, 0xfb, 0x66, 0xf8, 0x6a, 0x06, 0x4c, 0xfa, 0xc2, 0xd6, 0x2f, 0x83, 0x37, 0xbe, 0x58, 0xcc, - 0x86, 0x01, 0x9d, 0x56, 0x73, 0x69, 0xde, 0x38, 0x12, 0xba, 0xed, 0xea, 0xa6, 0xdb, 0xf6, 0x8f, - 0x9f, 0xf4, 0x26, 0xcb, 0x75, 0x00, 0x4c, 0x8c, 0x91, 0x1e, 0x9e, 0x47, 0x79, 0x46, 0x02, 0x7d, - 0x20, 0xf2, 0xc0, 0x94, 0x71, 0xe6, 0xc9, 0xf4, 0xb0, 0xc8, 0x14, 0xc8, 0x6b, 0xf5, 0x52, 0x59, - 0x29, 0x1e, 0x91, 0xe7, 0x00, 0x50, 0x5e, 0x58, 0x57, 0xd4, 0x8a, 0x52, 0x2d, 0x2b, 0xc5, 0x0c, - 0x7c, 0x6d, 0x16, 0x4c, 0x05, 0x4a, 0xd0, 0xb7, 0x91, 0x0a, 0x15, 0xad, 0x81, 0xf7, 0x3d, 0xec, - 0x57, 0x2a, 0x56, 0xc8, 0x9e, 0x0b, 0xae, 0xde, 0xed, 0xa2, 0x65, 0xd3, 0xe9, 0xba, 0xaa, 0x7d, - 0x69, 0xd9, 0x76, 0x82, 0xf0, 0x95, 0xfe, 0xbd, 0xc6, 0x11, 0x9f, 0x3d, 0x8b, 0xa2, 0x85, 0xf0, - 0x91, 0x05, 0xe4, 0xd0, 0x95, 0xe0, 0x30, 0xc1, 0x2b, 0xd7, 0x25, 0x17, 0x09, 0x77, 0x91, 0x6a, - 0x5f, 0xea, 0x96, 0xac, 0x56, 0xd9, 0x6e, 0xef, 0xee, 0x58, 0x5d, 0x6a, 0x13, 0x44, 0x7d, 0xf6, - 0xb8, 0x83, 0x6f, 0x73, 0x99, 0x03, 0xa0, 0x5c, 0x5b, 0x5b, 0x53, 0xca, 0x7a, 0xa5, 0x56, 0x2d, - 0x1e, 0xf1, 0xb8, 0xa5, 0x97, 0x16, 0xd7, 0x3c, 0xee, 0xfc, 0x28, 0x98, 0xf4, 0x75, 0x7a, 0xdf, - 0x25, 0xce, 0x25, 0x30, 0xe9, 0x6b, 0x39, 0x1d, 0x11, 0x9e, 0xd2, 0x7b, 0xf4, 0x6c, 0xc7, 0x70, - 0x5c, 0xec, 0x2f, 0xed, 0x17, 0xb2, 0x68, 0x74, 0x91, 0x1a, 0xfc, 0x76, 0xe6, 0xe9, 0x94, 0x02, - 0x19, 0xcc, 0x95, 0xd6, 0xd6, 0x1a, 0x35, 0xb5, 0x51, 0xad, 0xe9, 0xab, 0x95, 0xea, 0x0a, 0x19, - 0x21, 0x2b, 0x2b, 0xd5, 0x9a, 0xaa, 0x90, 0x01, 0x52, 0x2b, 0x66, 0xc8, 0x6d, 0x42, 0x8b, 0x93, - 0xa0, 0xd0, 0xc1, 0xdc, 0x85, 0x5f, 0x92, 0x12, 0x9e, 0x2c, 0x0d, 0x70, 0x8a, 0xb8, 0xef, 0x84, - 0xf3, 0x39, 0xcf, 0xf6, 0x39, 0x97, 0x75, 0x06, 0xcc, 0x10, 0x5b, 0xae, 0x8b, 0x97, 0xeb, 0xe9, - 0x95, 0x81, 0x5c, 0x1a, 0xfc, 0x68, 0x36, 0xc1, 0x71, 0xd3, 0xbe, 0x14, 0x25, 0x33, 0x2e, 0x3e, - 0x37, 0xcc, 0xed, 0x41, 0x32, 0x98, 0xab, 0x54, 0x75, 0x45, 0xad, 0x96, 0xd6, 0x68, 0x16, 0x49, - 0x9e, 0x07, 0xc7, 0xab, 0x35, 0x1a, 0xb0, 0x49, 0xc3, 0xf7, 0x94, 0xae, 0xd7, 0x6b, 0xaa, 0x5e, - 0xcc, 0xcb, 0x27, 0x81, 0x4c, 0x9e, 0xb9, 0x6b, 0x7e, 0x0b, 0xf2, 0x53, 0xc1, 0x0d, 0x6b, 0x95, - 0xf5, 0x8a, 0xde, 0xa8, 0x2d, 0x37, 0xd4, 0xda, 0x79, 0xcd, 0x43, 0x50, 0x55, 0xd6, 0x4a, 0x9e, - 0x20, 0x31, 0xb7, 0x0a, 0x4d, 0xc8, 0x57, 0x81, 0xa3, 0xf8, 0xc6, 0x30, 0x7c, 0x55, 0x30, 0xa9, - 0x6f, 0x52, 0xbe, 0x0e, 0xcc, 0x57, 0xaa, 0xda, 0xc6, 0xf2, 0x72, 0xa5, 0x5c, 0x51, 0xaa, 0x7a, - 0xa3, 0xae, 0xa8, 0xeb, 0x15, 0x4d, 0xf3, 0xfe, 0x2d, 0x4e, 0xc1, 0x0f, 0x4b, 0xa0, 0x40, 0xfa, - 0x4c, 0xf8, 0x5e, 0x09, 0xcc, 0x9e, 0x33, 0xda, 0xa6, 0x37, 0x50, 0xe0, 0xcb, 0x9c, 0xe0, 0xf5, - 0x9c, 0x2b, 0xba, 0x8b, 0x2f, 0x7d, 0xa2, 0xae, 0xe8, 0xf8, 0x05, 0xfe, 0x24, 0x2b, 0x1a, 0x3a, - 0x2f, 0x1a, 0xcf, 0x8f, 0x01, 0x82, 0xd4, 0xb8, 0xc0, 0xd5, 0x16, 0x31, 0xb9, 0x79, 0x43, 0x80, - 0xf3, 0x79, 0x0e, 0xe7, 0xf2, 0xc1, 0x8a, 0x4f, 0x06, 0xfe, 0xaf, 0x8c, 0x0a, 0xfc, 0x22, 0x98, - 0xd9, 0xa8, 0x96, 0x36, 0xf4, 0xd5, 0x9a, 0x5a, 0xf9, 0x61, 0x1c, 0xf6, 0x75, 0x16, 0x4c, 0x2d, - 0xd7, 0xd4, 0xc5, 0xca, 0xd2, 0x92, 0x52, 0x2d, 0xe6, 0xe5, 0xab, 0xc1, 0x55, 0x9a, 0xa2, 0x9e, - 0xab, 0x94, 0x95, 0xc6, 0x46, 0xb5, 0x74, 0xae, 0x54, 0x59, 0xc3, 0x7d, 0x44, 0x21, 0xe6, 0x22, - 0xaa, 0x09, 0xf8, 0xe3, 0x39, 0x00, 0x48, 0xd3, 0x3d, 0x4b, 0x9a, 0xbd, 0xae, 0xe8, 0xcf, 0x92, - 0x4e, 0x1a, 0xc2, 0x62, 0x22, 0xf4, 0xb7, 0x02, 0x26, 0x1d, 0xfa, 0x81, 0x2e, 0x97, 0x0c, 0x2a, - 0x87, 0x3c, 0xfa, 0xa5, 0xa9, 0xc1, 0xef, 0xf0, 0x7d, 0x49, 0xe6, 0x08, 0x91, 0x84, 0x25, 0x43, - 0x72, 0x79, 0x34, 0x40, 0xc2, 0x97, 0x67, 0xc0, 0x1c, 0xdf, 0x30, 0xaf, 0x11, 0xd8, 0x98, 0x12, - 0x6b, 0x04, 0xff, 0x33, 0x63, 0x64, 0x9d, 0xb9, 0x9d, 0x0e, 0xa7, 0xc0, 0xd7, 0x4c, 0x72, 0xfa, - 0xd2, 0xb7, 0x58, 0x8a, 0x19, 0x8f, 0x78, 0xcf, 0xe8, 0x20, 0x77, 0xd5, 0xea, 0x97, 0xdd, 0xa2, - 0x04, 0x1f, 0xcb, 0x81, 0x59, 0xee, 0x3e, 0x24, 0xf8, 0x4f, 0x19, 0x91, 0x3b, 0x4e, 0x98, 0x9b, - 0x96, 0x32, 0x07, 0xbd, 0x69, 0xe9, 0xcc, 0x4f, 0x64, 0xc0, 0x04, 0x4d, 0xc4, 0x0c, 0xae, 0x55, - 0x3d, 0x5b, 0xe0, 0x28, 0x98, 0x5e, 0x51, 0xf4, 0x86, 0xa6, 0x97, 0x54, 0x5d, 0x59, 0x2a, 0x66, - 0xe4, 0x13, 0xe0, 0x58, 0x5d, 0x51, 0xb5, 0x9a, 0xc7, 0xcf, 0xba, 0x5a, 0xc3, 0x1d, 0x21, 0x61, - 0xb3, 0x07, 0xc3, 0x9a, 0xb2, 0xb4, 0xa2, 0x34, 0x16, 0x4b, 0x9a, 0x52, 0x94, 0xbc, 0x7f, 0xab, - 0x35, 0x5d, 0xd1, 0x1a, 0x4b, 0x95, 0x92, 0x7a, 0x7f, 0x31, 0xe7, 0xfd, 0xab, 0xe9, 0x6a, 0x49, - 0x57, 0x56, 0x2a, 0x65, 0x7c, 0xc3, 0xaf, 0xa7, 0x01, 0x79, 0x6f, 0x30, 0x55, 0xd6, 0xeb, 0xfa, - 0xfd, 0xc5, 0x42, 0x72, 0x2f, 0xbe, 0xde, 0xc6, 0x8d, 0xd9, 0x8b, 0x2f, 0xae, 0xfa, 0x31, 0x5c, - 0x05, 0x25, 0x81, 0x22, 0xa1, 0x40, 0xb9, 0xdc, 0x41, 0x8e, 0x89, 0xac, 0x26, 0x82, 0x17, 0x45, - 0x42, 0xc4, 0xed, 0x8b, 0x57, 0x85, 0xc7, 0x08, 0xc6, 0xf2, 0x24, 0x2f, 0x3d, 0x46, 0x7b, 0x6e, - 0x9f, 0xd1, 0xfe, 0xa9, 0xa4, 0x6e, 0x7c, 0xbd, 0xe4, 0x8e, 0x04, 0xb2, 0x8f, 0x27, 0x71, 0xe3, - 0x1b, 0x40, 0xc1, 0x58, 0x22, 0x3f, 0x46, 0x8c, 0xe9, 0x45, 0x09, 0x3e, 0x3a, 0x05, 0x8a, 0x84, - 0x50, 0xc6, 0x37, 0xea, 0x17, 0xe9, 0xa5, 0x54, 0x8d, 0x04, 0xa1, 0x9e, 0xfc, 0xa3, 0xb8, 0x59, - 0xfe, 0x28, 0x2e, 0xb7, 0xf4, 0x26, 0xf5, 0xee, 0x67, 0x27, 0x55, 0x3f, 0xc6, 0x11, 0x2a, 0xfa, - 0x4a, 0xa4, 0xf4, 0xd4, 0x2f, 0xb6, 0xfa, 0xf1, 0x5c, 0x9c, 0x42, 0xaf, 0x46, 0x52, 0x44, 0x91, - 0x89, 0xbf, 0x1f, 0x2a, 0xa9, 0x57, 0x2c, 0xe7, 0x88, 0x16, 0x73, 0x69, 0x52, 0x7a, 0x5e, 0xb1, - 0x83, 0x28, 0x48, 0x1f, 0x85, 0xef, 0x65, 0x41, 0x4e, 0xb3, 0x1d, 0x77, 0x54, 0x18, 0x24, 0xdd, - 0xc9, 0x63, 0x38, 0xa0, 0x45, 0xcf, 0x9c, 0xd2, 0xdb, 0xc9, 0x8b, 0xaf, 0x7f, 0x0c, 0xd1, 0xb2, - 0x8e, 0x82, 0x39, 0x42, 0x49, 0x10, 0xbb, 0xfc, 0xbb, 0x59, 0xd2, 0x5f, 0xdd, 0x27, 0x8a, 0xc8, - 0x19, 0x30, 0xc3, 0x1c, 0x9d, 0x0e, 0xee, 0xd1, 0x64, 0xd3, 0xe0, 0xaf, 0xb3, 0xb8, 0x2c, 0xf1, - 0xb8, 0xf4, 0x9b, 0x37, 0x06, 0xe1, 0xbf, 0x47, 0xd5, 0x33, 0x25, 0x09, 0xbc, 0x15, 0x53, 0x79, - 0xfa, 0x88, 0xbc, 0x54, 0x02, 0x05, 0xea, 0xc9, 0x34, 0x52, 0x04, 0x92, 0x6a, 0x46, 0xc0, 0x04, - 0x31, 0x8f, 0x27, 0x69, 0xd4, 0x9a, 0x11, 0x5f, 0x7f, 0xfa, 0x38, 0xfc, 0x2b, 0x75, 0xd1, 0x2b, - 0xed, 0x19, 0x66, 0xdb, 0xb8, 0xd0, 0x4e, 0x10, 0xf0, 0xf2, 0xa3, 0x09, 0x0f, 0x25, 0x05, 0x4d, - 0xe5, 0xea, 0x8b, 0xe0, 0xf8, 0xb3, 0xc1, 0x94, 0x13, 0x2c, 0xac, 0xf9, 0x67, 0xb6, 0x7b, 0xdc, - 0x23, 0xe9, 0x77, 0x35, 0xcc, 0x99, 0xe8, 0x04, 0x92, 0x10, 0x3d, 0x63, 0x39, 0x31, 0x31, 0x5d, - 0x6a, 0xb5, 0x96, 0x91, 0xe1, 0xee, 0x3a, 0xa8, 0x95, 0x68, 0x88, 0xe0, 0x59, 0x34, 0xc5, 0x72, - 0x82, 0x0b, 0x53, 0xb5, 0xc6, 0xa3, 0xf3, 0x83, 0x03, 0x7a, 0x03, 0x9f, 0x96, 0x91, 0x74, 0x49, - 0x6f, 0x0f, 0x20, 0xa9, 0x71, 0x90, 0x3c, 0x6f, 0x38, 0x22, 0xd2, 0x07, 0xe4, 0x97, 0x24, 0x30, - 0x47, 0xec, 0x84, 0x51, 0x63, 0xf2, 0xbb, 0x09, 0x3d, 0x21, 0x98, 0xdb, 0x21, 0x58, 0x72, 0x46, - 0x02, 0x4b, 0x12, 0xbf, 0x09, 0x31, 0x3a, 0xd2, 0x47, 0xe6, 0xb3, 0x05, 0x00, 0x18, 0x6f, 0xb6, - 0x8f, 0x16, 0xc2, 0x90, 0x51, 0xf0, 0x1d, 0x74, 0xfe, 0xa1, 0x71, 0xb1, 0x48, 0x19, 0x4f, 0xb5, - 0x60, 0x5b, 0x85, 0x4f, 0x14, 0x1a, 0x55, 0x3e, 0x97, 0xd0, 0xe6, 0xa5, 0xbe, 0x64, 0x03, 0x07, - 0xf7, 0x21, 0x7b, 0xb9, 0xc7, 0x13, 0x18, 0xbf, 0x83, 0x48, 0x49, 0x86, 0xda, 0xda, 0x10, 0x73, - 0xc9, 0x79, 0x70, 0x5c, 0x55, 0x4a, 0x4b, 0xb5, 0xea, 0xda, 0xfd, 0xec, 0x35, 0x02, 0x45, 0x89, - 0x9d, 0x9c, 0xa4, 0x02, 0xdb, 0x1b, 0x13, 0xf6, 0x81, 0x3c, 0xaf, 0xe2, 0x66, 0x2b, 0xcc, 0x74, - 0x7e, 0x70, 0xaf, 0x26, 0x50, 0xec, 0x61, 0xa2, 0xf0, 0x62, 0x56, 0x8d, 0x7e, 0x5a, 0x02, 0xc5, - 0xf0, 0xd6, 0x59, 0x7a, 0x27, 0x4c, 0x8d, 0x77, 0x76, 0xeb, 0x90, 0x5d, 0x94, 0xd0, 0xd9, 0xcd, - 0x4f, 0x90, 0x6f, 0x02, 0x73, 0xcd, 0x6d, 0xd4, 0xbc, 0x58, 0xb1, 0xfc, 0xdd, 0x61, 0xb2, 0x95, - 0xd8, 0x93, 0xca, 0x03, 0x73, 0x1f, 0x0f, 0x0c, 0x3f, 0x89, 0xe6, 0x06, 0x69, 0x96, 0xa8, 0x08, - 0x5c, 0xfe, 0x30, 0xc0, 0xa5, 0xca, 0xe1, 0x72, 0xe7, 0x50, 0xa5, 0x26, 0x83, 0xa5, 0x3a, 0x04, - 0x2c, 0x10, 0x9c, 0xac, 0xd5, 0xf5, 0x4a, 0xad, 0xda, 0xd8, 0xd0, 0x94, 0xa5, 0xc6, 0xa2, 0x0f, - 0x8e, 0x56, 0x94, 0xe0, 0x37, 0xb2, 0x60, 0x82, 0x90, 0xd5, 0xed, 0xb9, 0x25, 0x96, 0x0d, 0xeb, - 0x94, 0xd9, 0x17, 0xd6, 0x09, 0x3e, 0x2a, 0x7c, 0x66, 0x3f, 0x60, 0x04, 0xad, 0x27, 0xa2, 0x9f, - 0x7a, 0x2e, 0x98, 0x20, 0x20, 0xfb, 0x4e, 0x23, 0xa7, 0x22, 0x7a, 0x29, 0x5a, 0x8c, 0xea, 0x67, - 0x17, 0x3c, 0xbf, 0x3f, 0x80, 0x8c, 0xb1, 0x4c, 0x10, 0x27, 0x56, 0xcd, 0xae, 0x6b, 0x3b, 0x57, - 0xe0, 0x9b, 0x32, 0x60, 0xe2, 0x1c, 0x72, 0xba, 0xa6, 0x6d, 0xed, 0xdb, 0x2c, 0x3d, 0x0d, 0xa6, - 0x3b, 0x0e, 0xda, 0x33, 0xed, 0xdd, 0x6e, 0x38, 0x31, 0x67, 0x93, 0x64, 0x08, 0x26, 0x8d, 0x5d, - 0x77, 0xdb, 0x76, 0xc2, 0xf3, 0xf1, 0xfe, 0xbb, 0x7c, 0x0a, 0x00, 0xf2, 0x5c, 0x35, 0x76, 0x10, - 0xdd, 0x02, 0x66, 0x52, 0x64, 0x19, 0xe4, 0x5c, 0x73, 0x07, 0xd1, 0xf0, 0x76, 0xf8, 0x59, 0x9e, - 0x07, 0x13, 0x38, 0x18, 0x15, 0x0d, 0xfa, 0x25, 0xa9, 0xfe, 0x2b, 0xfc, 0xaf, 0x12, 0x98, 0x5e, - 0x41, 0x2e, 0x25, 0xb5, 0xcb, 0x46, 0x99, 0x89, 0x09, 0x01, 0xed, 0x75, 0xaf, 0x6d, 0xa3, 0xeb, - 0xff, 0x16, 0xac, 0xbe, 0xf1, 0x89, 0x61, 0xa8, 0x3d, 0x89, 0x89, 0xa6, 0x09, 0x1f, 0xcb, 0x8a, - 0x9e, 0x6b, 0xa4, 0xcc, 0x5c, 0x60, 0x08, 0x8c, 0x94, 0xad, 0xc9, 0x3d, 0x9a, 0x63, 0x5f, 0xe8, - 0x53, 0xb6, 0x24, 0x5a, 0x8c, 0x1a, 0xe4, 0x16, 0x3c, 0x11, 0x39, 0x98, 0x92, 0xf4, 0xc5, 0xeb, - 0xdb, 0x12, 0x98, 0xd6, 0xb6, 0xed, 0x4b, 0x94, 0x00, 0xf6, 0xe2, 0xd3, 0x38, 0xa8, 0xae, 0x03, - 0x53, 0x7b, 0x3d, 0x30, 0x85, 0x09, 0xd1, 0xf7, 0x73, 0xc2, 0x07, 0xa5, 0xa4, 0x30, 0x31, 0xc4, - 0x8d, 0xfc, 0xf6, 0x4c, 0xf9, 0x07, 0xc1, 0x04, 0xa5, 0x9a, 0xce, 0x9f, 0xe3, 0x01, 0xf6, 0x33, - 0xb3, 0x0d, 0xcc, 0xf1, 0x0d, 0x4c, 0x86, 0x7c, 0x74, 0xe3, 0xc6, 0x10, 0x60, 0x3c, 0x8b, 0xcf, - 0xc3, 0xfb, 0xc0, 0x97, 0x47, 0x00, 0x3c, 0xfc, 0x4e, 0x46, 0x74, 0x95, 0x29, 0xe0, 0x40, 0x40, - 0xc1, 0x81, 0x02, 0xb6, 0x0f, 0x2c, 0x2e, 0x7d, 0x7e, 0xbe, 0x36, 0x07, 0x66, 0x96, 0xcc, 0xcd, - 0xcd, 0xa0, 0xd7, 0x7b, 0x65, 0x46, 0x8c, 0xa5, 0xd1, 0x3b, 0x94, 0x9e, 0xd1, 0xb2, 0xeb, 0x38, - 0xc8, 0xf2, 0x1b, 0x45, 0xd5, 0xa9, 0x27, 0x55, 0xbe, 0x19, 0x1c, 0xf5, 0x3b, 0x7a, 0x3f, 0x23, - 0x11, 0xcb, 0xde, 0x64, 0xf8, 0x2d, 0xe1, 0x2d, 0x0a, 0x9f, 0xa3, 0x6c, 0x93, 0x22, 0x14, 0xf0, - 0x2e, 0x30, 0xbb, 0x4d, 0x72, 0xe3, 0x79, 0x9c, 0xdf, 0x59, 0x9e, 0xec, 0x09, 0x8c, 0xb9, 0x8e, - 0xba, 0x5d, 0x63, 0x0b, 0xa9, 0x7c, 0xe6, 0x1e, 0xf5, 0x95, 0x92, 0xdc, 0x4e, 0x21, 0xb6, 0xdb, - 0x21, 0xd0, 0x92, 0xf4, 0xa5, 0xe3, 0x6b, 0x4f, 0x06, 0xb9, 0x65, 0xb3, 0x8d, 0xe0, 0xcf, 0x64, - 0xc1, 0x94, 0x8a, 0x9a, 0xb6, 0xd5, 0xf4, 0xde, 0x18, 0x7f, 0x85, 0x7f, 0x60, 0x75, 0xe7, 0x5e, - 0x1e, 0x9a, 0x5b, 0xb8, 0x06, 0x79, 0xe5, 0x2c, 0x04, 0x65, 0x44, 0xe8, 0xcd, 0x23, 0x01, 0x6f, - 0xca, 0x1c, 0x6f, 0xce, 0x8a, 0x17, 0x35, 0x86, 0xb8, 0xdb, 0x9e, 0x1d, 0xb9, 0xb9, 0xd9, 0xb6, - 0x0d, 0x6e, 0x25, 0xa3, 0xd7, 0xb6, 0xb9, 0x05, 0x14, 0x7d, 0xb7, 0x73, 0xdb, 0xad, 0x9b, 0x96, - 0x15, 0x9c, 0x63, 0xdc, 0x97, 0xce, 0x6f, 0xc2, 0xc5, 0x86, 0x82, 0xc0, 0x6d, 0xa7, 0xb5, 0x47, - 0x48, 0xf6, 0x4d, 0x60, 0xee, 0xc2, 0x15, 0x17, 0x75, 0x69, 0x2e, 0x5a, 0x6d, 0x4e, 0xed, 0x49, - 0x85, 0xef, 0x11, 0x0a, 0x19, 0x11, 0x53, 0x61, 0x32, 0x56, 0xaf, 0x0e, 0x61, 0xce, 0x1f, 0x07, - 0xc5, 0x6a, 0x6d, 0x49, 0xc1, 0xee, 0x33, 0xbe, 0x3f, 0xc2, 0x16, 0x7c, 0x95, 0x04, 0x66, 0xf0, - 0x5e, 0xb4, 0x8f, 0xc2, 0x0d, 0x02, 0xfb, 0xdf, 0xf0, 0xcb, 0xc2, 0xae, 0x35, 0xb8, 0xc9, 0x6c, - 0x05, 0xd1, 0x8c, 0xde, 0x34, 0xdb, 0xbd, 0x8c, 0xce, 0xab, 0x3d, 0xa9, 0x7d, 0x00, 0x91, 0xfa, - 0x02, 0xf2, 0x3b, 0x42, 0xfe, 0x35, 0x83, 0xa8, 0x3b, 0x2c, 0x54, 0x3e, 0x20, 0x81, 0x69, 0x6f, - 0xfe, 0xe7, 0x83, 0x52, 0xe3, 0x40, 0xb1, 0xad, 0xf6, 0x95, 0x70, 0x8e, 0xeb, 0xbf, 0x26, 0x52, - 0x92, 0xbf, 0x10, 0x9e, 0x86, 0x61, 0x16, 0x31, 0xb4, 0x8c, 0x09, 0xbf, 0xf7, 0x0b, 0x4d, 0xce, - 0x06, 0x10, 0x77, 0x58, 0xf0, 0xfd, 0x66, 0x1e, 0x14, 0x36, 0x3a, 0x18, 0xb9, 0xaf, 0x67, 0x45, - 0x82, 0x24, 0xef, 0xf3, 0xad, 0xf6, 0xcc, 0xac, 0xb6, 0xdd, 0x34, 0xda, 0xf5, 0xf0, 0x90, 0x4a, - 0x98, 0x20, 0xdf, 0x49, 0xdd, 0xad, 0xc8, 0x09, 0x9f, 0x9b, 0x62, 0xe3, 0x07, 0x63, 0x1e, 0x31, - 0x7e, 0xec, 0xb7, 0x82, 0x63, 0x2d, 0xb3, 0x6b, 0x5c, 0x68, 0x23, 0xc5, 0x6a, 0x3a, 0x57, 0x08, - 0x3b, 0x88, 0x6b, 0xca, 0xfe, 0x0f, 0xf2, 0xdd, 0x20, 0xdf, 0x75, 0xaf, 0xb4, 0xc9, 0xc4, 0x8f, - 0x75, 0x7b, 0x8f, 0xac, 0x4a, 0xf3, 0xb2, 0xab, 0xe4, 0x2f, 0xf6, 0xee, 0xc0, 0x09, 0xc1, 0x7b, - 0x10, 0x6f, 0x07, 0x05, 0xdb, 0x31, 0xb7, 0x4c, 0x12, 0x96, 0x7f, 0x6e, 0x5f, 0x58, 0x2c, 0x62, - 0x0a, 0xd4, 0x70, 0x16, 0x95, 0x66, 0x85, 0xef, 0x17, 0xbe, 0x8c, 0x1f, 0xd3, 0x48, 0xc0, 0x19, - 0xcf, 0x5d, 0x88, 0x0f, 0x0b, 0x45, 0xc7, 0x88, 0x26, 0x2b, 0xfd, 0x41, 0xf8, 0xf3, 0x59, 0x30, - 0xb9, 0x64, 0x5f, 0xb2, 0xb0, 0xc0, 0xde, 0x21, 0x66, 0xb3, 0xf6, 0x39, 0x3f, 0xc5, 0xdf, 0xe0, - 0x14, 0xeb, 0x2c, 0x8d, 0x5b, 0xeb, 0x57, 0x19, 0x01, 0x43, 0xac, 0x06, 0x08, 0xde, 0xb8, 0x13, - 0x57, 0x4f, 0xfa, 0x7c, 0xfd, 0x13, 0x09, 0xe4, 0x96, 0x1c, 0xbb, 0x03, 0xdf, 0x9e, 0x49, 0xb0, - 0x8f, 0xdc, 0x72, 0xec, 0x8e, 0x8e, 0x2f, 0xd3, 0x08, 0x3d, 0xc4, 0xd9, 0x34, 0xf9, 0x0e, 0x30, - 0xd9, 0xb1, 0xbb, 0xa6, 0xeb, 0x4f, 0x07, 0xe6, 0x6e, 0x7b, 0x52, 0x5f, 0xad, 0xac, 0xd3, 0x4c, - 0x6a, 0x90, 0xdd, 0xeb, 0x7d, 0x31, 0x0b, 0x3d, 0xbe, 0x78, 0x6c, 0xf4, 0x2f, 0x14, 0xe9, 0x49, - 0x85, 0xaf, 0x66, 0x91, 0x7c, 0x1e, 0x8f, 0xe4, 0x53, 0xfa, 0x70, 0xd8, 0xb1, 0x3b, 0x23, 0xd9, - 0xf9, 0x79, 0x5d, 0x80, 0xea, 0xf3, 0x39, 0x54, 0x6f, 0x11, 0xaa, 0x33, 0x7d, 0x44, 0xdf, 0x9f, - 0x03, 0x00, 0x9b, 0x0b, 0x1b, 0xde, 0x44, 0x46, 0xcc, 0x56, 0xfa, 0xa9, 0x1c, 0xc3, 0xcb, 0x12, - 0xcf, 0xcb, 0xa7, 0x45, 0x58, 0x23, 0xb8, 0xf8, 0x08, 0x8e, 0x96, 0x40, 0x7e, 0xd7, 0xfb, 0x4c, - 0x39, 0x2a, 0x58, 0x04, 0x7e, 0x55, 0xc9, 0x9f, 0xf0, 0x8f, 0x33, 0x20, 0x8f, 0x13, 0xe4, 0x53, - 0x00, 0xe0, 0x01, 0x9a, 0x9c, 0x35, 0xc8, 0xe0, 0xa1, 0x98, 0x49, 0xc1, 0xd2, 0x6a, 0xb6, 0xe8, - 0x67, 0x62, 0xfa, 0x86, 0x09, 0xde, 0xdf, 0x78, 0xd8, 0xc6, 0x65, 0xd1, 0x81, 0x9c, 0x49, 0xf1, - 0xfe, 0xc6, 0x6f, 0x6b, 0x68, 0x93, 0xc4, 0x54, 0xcd, 0xa9, 0x61, 0x42, 0xf0, 0xf7, 0x5a, 0x70, - 0x6f, 0x86, 0xff, 0x37, 0x4e, 0xf1, 0x26, 0xb5, 0x58, 0x2c, 0x17, 0xc3, 0x2a, 0x0a, 0x38, 0x53, - 0x6f, 0x32, 0x7c, 0x63, 0x20, 0x36, 0x4b, 0x9c, 0xd8, 0x3c, 0x23, 0x01, 0x7b, 0xd3, 0x17, 0x9e, - 0xaf, 0xe6, 0xc1, 0x54, 0xd5, 0x6e, 0x51, 0xd9, 0x61, 0x26, 0x7e, 0x1f, 0xcf, 0x27, 0x9a, 0xf8, - 0x05, 0x65, 0x44, 0x08, 0xc8, 0xbd, 0xbc, 0x80, 0x88, 0x95, 0xc0, 0xca, 0x87, 0xbc, 0x08, 0x0a, - 0x58, 0x7a, 0xf7, 0xdf, 0x87, 0x12, 0x57, 0x04, 0x66, 0xad, 0x4a, 0xff, 0xfc, 0x37, 0x27, 0x63, - 0xff, 0x09, 0xe4, 0x71, 0x03, 0x63, 0xbc, 0x82, 0xf9, 0x86, 0x66, 0xe3, 0x1b, 0x2a, 0xc5, 0x37, - 0x34, 0xd7, 0xdb, 0xd0, 0x24, 0xf3, 0xf9, 0x28, 0x09, 0x49, 0x5f, 0xc6, 0xff, 0xc7, 0x04, 0x00, - 0x55, 0x63, 0xcf, 0xdc, 0x22, 0x5b, 0x76, 0x7f, 0xee, 0xcf, 0x63, 0xe8, 0xe6, 0xda, 0x7f, 0x66, - 0x06, 0xc2, 0x3b, 0xc0, 0x04, 0x1d, 0xf7, 0x68, 0x43, 0xae, 0xe7, 0x1a, 0x12, 0x96, 0x42, 0xcc, - 0xcb, 0xcb, 0xae, 0xea, 0xe7, 0xe7, 0x6e, 0x88, 0xcb, 0xf6, 0xdc, 0x10, 0xd7, 0x77, 0x77, 0x20, - 0xea, 0xde, 0x38, 0xf8, 0x1e, 0xe1, 0x1b, 0x3e, 0x18, 0x7a, 0x98, 0x16, 0x45, 0xa8, 0xe0, 0xed, - 0x60, 0xc2, 0x0e, 0x76, 0x19, 0xa5, 0xc8, 0xf5, 0xac, 0x8a, 0xb5, 0x69, 0xab, 0x7e, 0x4e, 0xc1, - 0xbb, 0x3b, 0x84, 0xe8, 0x18, 0x8b, 0xef, 0xfc, 0xc9, 0x15, 0x3f, 0x3e, 0x8d, 0xd7, 0x8e, 0xf3, - 0xa6, 0xbb, 0xbd, 0x66, 0x5a, 0x17, 0xbb, 0xf0, 0x3f, 0x88, 0x59, 0x90, 0x0c, 0xfe, 0xd9, 0x64, - 0xf8, 0xf3, 0xe1, 0x00, 0x34, 0x1e, 0xb5, 0xbb, 0xa3, 0x4a, 0xe9, 0x4f, 0x6d, 0x04, 0x80, 0x77, - 0x82, 0x02, 0x21, 0x94, 0x76, 0xa2, 0x67, 0x22, 0xf1, 0x0b, 0x4a, 0x52, 0xe9, 0x1f, 0xf0, 0xb1, - 0x00, 0xc7, 0x73, 0x1c, 0x8e, 0x8b, 0x07, 0xa2, 0x2c, 0x75, 0x48, 0xcf, 0x3c, 0x13, 0x4c, 0x50, - 0x4e, 0xcb, 0x73, 0xac, 0x16, 0x17, 0x8f, 0xc8, 0x00, 0x14, 0xd6, 0xed, 0x3d, 0xa4, 0xdb, 0xc5, - 0x8c, 0xf7, 0xec, 0xd1, 0xa7, 0xdb, 0xc5, 0x2c, 0x7c, 0xfd, 0x24, 0x98, 0x0c, 0x02, 0x85, 0x7c, - 0x3e, 0x0b, 0x8a, 0xe1, 0x5d, 0xee, 0xa4, 0x45, 0xe2, 0x2e, 0x7b, 0xbf, 0x24, 0xbc, 0xef, 0x1e, - 0x04, 0xf0, 0xe8, 0xad, 0x4c, 0xf0, 0xb2, 0xea, 0xb7, 0x09, 0xed, 0xc3, 0x8b, 0xd6, 0x92, 0xbe, - 0xaa, 0x7d, 0x2a, 0x0b, 0xf2, 0xe5, 0xb6, 0x6d, 0xa1, 0x44, 0x77, 0x55, 0xf7, 0xdf, 0x51, 0x80, - 0x2f, 0xce, 0x8a, 0xda, 0x1a, 0x21, 0x03, 0xbc, 0xba, 0x05, 0x79, 0x2b, 0x36, 0x48, 0xc5, 0x16, - 0x9d, 0x3e, 0x43, 0xbf, 0x91, 0x05, 0x53, 0x24, 0xe4, 0x46, 0xa9, 0xdd, 0x86, 0x4f, 0x0a, 0x99, - 0xda, 0x27, 0xd8, 0x0a, 0xfc, 0x1d, 0x61, 0xbf, 0xe9, 0xa0, 0x55, 0x41, 0xd9, 0x09, 0x62, 0x8f, - 0x24, 0x73, 0xe3, 0x15, 0xdb, 0x13, 0x1b, 0x48, 0xd0, 0x18, 0xe2, 0x54, 0x65, 0x3d, 0x03, 0xc0, - 0xba, 0x58, 0x77, 0xd0, 0x9e, 0x89, 0x2e, 0xc1, 0x6b, 0x43, 0x66, 0xef, 0x8f, 0x27, 0xf0, 0x16, - 0xe1, 0x45, 0x1c, 0xa6, 0xc8, 0xc8, 0x2d, 0xa9, 0xe9, 0x76, 0x98, 0x89, 0xf6, 0xe2, 0xbd, 0x41, - 0x1e, 0x98, 0x62, 0x54, 0x36, 0xbb, 0xe0, 0x9a, 0x4d, 0x34, 0x15, 0xe9, 0x33, 0xf6, 0xc1, 0x09, - 0x30, 0xb9, 0x61, 0x75, 0x3b, 0x6d, 0xa3, 0xbb, 0x0d, 0xbf, 0x2b, 0x05, 0x57, 0x45, 0x3f, 0x9b, - 0x3b, 0xb6, 0xfc, 0x63, 0xbb, 0xc8, 0xf1, 0xdd, 0x70, 0xc8, 0x4b, 0xff, 0xbb, 0x48, 0xe1, 0xfb, - 0x25, 0xd1, 0x49, 0xaa, 0x5f, 0x69, 0xfc, 0x1d, 0xca, 0x15, 0x30, 0xd9, 0x31, 0x9b, 0xee, 0xae, - 0x13, 0xdc, 0x6c, 0xf9, 0x74, 0xb1, 0x52, 0xea, 0xe4, 0x2f, 0x35, 0xf8, 0x1d, 0x1a, 0x60, 0x82, - 0x26, 0xee, 0xdb, 0x16, 0xda, 0x7f, 0x0c, 0xef, 0x24, 0x28, 0x18, 0x8e, 0x6b, 0x76, 0xfd, 0x9b, - 0x83, 0xe9, 0x9b, 0xd7, 0x5d, 0x92, 0xa7, 0x0d, 0xa7, 0xed, 0x07, 0x38, 0x08, 0x12, 0xe0, 0x07, - 0x84, 0xe6, 0x8f, 0xf1, 0x2d, 0x4f, 0x06, 0xf9, 0x7d, 0x43, 0xac, 0x35, 0x5f, 0x0d, 0xae, 0x52, - 0x4b, 0xba, 0xd2, 0x20, 0xe7, 0xe1, 0x83, 0xa3, 0xef, 0x2d, 0xf8, 0x5d, 0x76, 0xfd, 0x8e, 0x1f, - 0x23, 0x28, 0x17, 0xc3, 0x31, 0x22, 0x48, 0x88, 0x19, 0x23, 0x7e, 0x53, 0x78, 0x77, 0x27, 0x60, - 0xc9, 0x80, 0xb5, 0xbc, 0xb8, 0x0b, 0x44, 0x3e, 0x28, 0xb4, 0x53, 0x33, 0xa8, 0xa6, 0x43, 0x64, - 0xff, 0xaf, 0x4f, 0x80, 0x89, 0x15, 0xa3, 0xdd, 0x46, 0xce, 0x15, 0x6f, 0x68, 0x29, 0xfa, 0x14, - 0xae, 0x1b, 0x96, 0xb9, 0xe9, 0xcd, 0xef, 0x63, 0x3b, 0xbd, 0xf7, 0x08, 0x07, 0xa7, 0xa4, 0x75, - 0x2c, 0xf4, 0x96, 0x1f, 0xc1, 0xf3, 0xb3, 0x20, 0x67, 0x5a, 0x9b, 0x36, 0xed, 0xfa, 0x7a, 0x57, - 0xd1, 0xfd, 0x9f, 0xf1, 0x14, 0x04, 0x67, 0x14, 0x8c, 0x4f, 0x29, 0x48, 0x45, 0xfa, 0x3d, 0xe0, - 0x6f, 0xe5, 0xc0, 0xac, 0x4f, 0x44, 0xc5, 0x6a, 0xa1, 0xcb, 0xec, 0x92, 0xca, 0xab, 0x72, 0xa2, - 0x67, 0x6d, 0x7a, 0xdb, 0x83, 0x8b, 0x8a, 0x60, 0xa9, 0x0e, 0x40, 0xd3, 0x70, 0xd1, 0x96, 0xed, - 0x98, 0x41, 0xbf, 0xf6, 0xac, 0x24, 0xa5, 0x95, 0xc9, 0xdf, 0x57, 0x54, 0xa6, 0x1c, 0xf9, 0x6e, - 0x30, 0x8d, 0x82, 0xe3, 0xb4, 0xfe, 0x92, 0x4b, 0x2c, 0x5e, 0x6c, 0x7e, 0xf8, 0x67, 0x42, 0x47, - 0x7a, 0x44, 0x9a, 0x99, 0x0c, 0xb3, 0xc6, 0x70, 0x3a, 0xb4, 0x51, 0x5d, 0x2f, 0xa9, 0xda, 0x6a, - 0x69, 0x6d, 0xad, 0x52, 0x5d, 0x09, 0x62, 0x43, 0xc8, 0x60, 0x6e, 0xa9, 0x76, 0xbe, 0xca, 0x04, - 0xef, 0xc8, 0xc1, 0x3a, 0x98, 0xf4, 0xf9, 0xd5, 0xcf, 0xd9, 0x91, 0xe5, 0x19, 0x75, 0x76, 0x64, - 0x92, 0x3c, 0x23, 0xcb, 0x6c, 0x06, 0x0e, 0x33, 0xf8, 0x19, 0xfe, 0x91, 0x01, 0xf2, 0x78, 0x6d, - 0x1c, 0xbe, 0x13, 0x5f, 0x2d, 0xdc, 0x69, 0x1b, 0x4d, 0x04, 0x77, 0x12, 0x58, 0xd5, 0x7e, 0xb4, - 0xf4, 0xec, 0xbe, 0x68, 0xe9, 0xf8, 0x91, 0x5a, 0x6f, 0xc7, 0xfb, 0xad, 0xc7, 0xab, 0x24, 0x0b, - 0x7f, 0xfa, 0x25, 0x76, 0x97, 0x84, 0x2c, 0xe3, 0x53, 0x32, 0x23, 0x44, 0x32, 0x9a, 0xa6, 0x64, - 0x16, 0xa5, 0xd8, 0x7e, 0x4a, 0x1c, 0x45, 0xe9, 0x6b, 0xfc, 0x97, 0x72, 0x20, 0xaf, 0x75, 0xda, - 0xa6, 0x0b, 0x5f, 0x93, 0x1d, 0x09, 0x66, 0x24, 0xc2, 0xbd, 0x34, 0x30, 0xc2, 0x7d, 0xb8, 0x0b, - 0x9a, 0x13, 0xd8, 0x05, 0xd5, 0xd1, 0x65, 0x97, 0xdf, 0x05, 0xbd, 0x83, 0xc6, 0x77, 0x22, 0x7b, - 0xa8, 0x4f, 0xe9, 0xc3, 0x52, 0xdc, 0xac, 0x3e, 0x81, 0xc3, 0xce, 0x3c, 0x93, 0xc6, 0x2f, 0x02, - 0xa0, 0xb0, 0x58, 0xd3, 0xf5, 0xda, 0x7a, 0xf1, 0x08, 0x0e, 0x7c, 0x51, 0xab, 0x17, 0x33, 0xf2, - 0x14, 0xc8, 0x57, 0xaa, 0x55, 0x45, 0x2d, 0x66, 0x71, 0x44, 0xa5, 0x8a, 0xbe, 0xa6, 0x14, 0x25, - 0x3e, 0xdc, 0x71, 0xac, 0x19, 0xcd, 0xd7, 0x9d, 0xa6, 0x78, 0x89, 0x19, 0xd4, 0xd1, 0xf4, 0xa4, - 0x2f, 0x5c, 0xff, 0x45, 0x02, 0xf9, 0x75, 0xe4, 0x6c, 0x21, 0xf8, 0x63, 0x09, 0x36, 0xeb, 0x36, - 0x4d, 0xa7, 0x4b, 0xe2, 0x4f, 0x85, 0x9b, 0x75, 0x6c, 0x9a, 0x7c, 0x23, 0x98, 0xed, 0xa2, 0xa6, - 0x6d, 0xb5, 0xfc, 0x4c, 0xa4, 0x3f, 0xe2, 0x13, 0xe1, 0x43, 0x09, 0x21, 0xc3, 0x84, 0x8e, 0x64, - 0xc7, 0x2d, 0x09, 0x30, 0xfd, 0x6a, 0x4d, 0x1f, 0x98, 0x6f, 0x49, 0xde, 0x4f, 0x9d, 0x2b, 0xf0, - 0x21, 0xe1, 0x5d, 0xd4, 0x5b, 0x41, 0x01, 0x8b, 0xa9, 0x3f, 0x46, 0xf7, 0xef, 0x8f, 0x69, 0x1e, - 0x79, 0x11, 0x1c, 0xeb, 0xa2, 0x36, 0x6a, 0xba, 0xa8, 0xe5, 0xa9, 0xae, 0x3a, 0xb0, 0x53, 0xd8, - 0x9f, 0x1d, 0xfe, 0x29, 0x0b, 0xe0, 0x5d, 0x3c, 0x80, 0x37, 0xf5, 0x61, 0xa5, 0xd7, 0xa0, 0x68, - 0x5b, 0xd9, 0x6b, 0x86, 0xd6, 0xb6, 0x83, 0xc5, 0x6d, 0xff, 0xdd, 0xfb, 0xb6, 0xed, 0xee, 0xb4, - 0xf1, 0x37, 0xea, 0xc1, 0xef, 0xbf, 0xcb, 0x0b, 0x60, 0xc2, 0xb0, 0xae, 0xe0, 0x4f, 0xb9, 0x98, - 0x56, 0xfb, 0x99, 0xe0, 0xeb, 0x03, 0xe4, 0xef, 0xe1, 0x90, 0x7f, 0x9a, 0x18, 0xb9, 0xe9, 0x03, - 0xff, 0x93, 0x13, 0x20, 0x5f, 0x37, 0xba, 0x2e, 0x82, 0xff, 0xb7, 0x24, 0x8a, 0xfc, 0x4d, 0x60, - 0x6e, 0xd3, 0x6e, 0xee, 0x76, 0x51, 0x8b, 0x57, 0xca, 0x9e, 0xd4, 0x51, 0x60, 0x2e, 0xdf, 0x02, - 0x8a, 0x7e, 0x22, 0x2d, 0xd6, 0xdf, 0x4e, 0xdf, 0x97, 0x8e, 0x83, 0xe9, 0x76, 0xeb, 0x86, 0xe3, - 0xd6, 0x36, 0x71, 0x5a, 0x10, 0x4c, 0x97, 0x4d, 0xe4, 0xa0, 0x2f, 0xc4, 0x40, 0x3f, 0x11, 0x0d, - 0xfd, 0xa4, 0x00, 0xf4, 0x72, 0x09, 0x4c, 0x6e, 0x9a, 0x6d, 0x84, 0x7f, 0x98, 0xc2, 0x3f, 0xf4, - 0x1b, 0x93, 0x30, 0xef, 0x83, 0x31, 0x69, 0xd9, 0x6c, 0x23, 0x35, 0xf8, 0xcd, 0x9f, 0xc8, 0x80, - 0x70, 0x22, 0xb3, 0x46, 0xfc, 0x5b, 0x3d, 0xc3, 0xcb, 0x32, 0x76, 0x90, 0xbf, 0x88, 0x66, 0xd1, - 0xd3, 0x23, 0x2d, 0xc3, 0x35, 0x30, 0x18, 0x33, 0x2a, 0x7e, 0xe6, 0xfd, 0x3b, 0xa4, 0x5e, 0xff, - 0x8e, 0x97, 0x49, 0xc9, 0x7a, 0x44, 0x9f, 0xd8, 0x08, 0x8d, 0xba, 0xe0, 0x03, 0x44, 0x2c, 0xc5, - 0xe0, 0xdd, 0x03, 0xa6, 0x69, 0x38, 0xc8, 0xad, 0xb3, 0x1e, 0x15, 0x79, 0x95, 0x4f, 0xc4, 0xae, - 0x75, 0x5d, 0xcd, 0xd8, 0x41, 0xb8, 0xb2, 0xb2, 0xf7, 0x8d, 0xba, 0x4c, 0xed, 0x4b, 0x0f, 0xfb, - 0xdf, 0xfc, 0xa8, 0xfb, 0xdf, 0x7e, 0x6d, 0x4c, 0x5f, 0x0d, 0xdf, 0x90, 0x03, 0x52, 0x79, 0xd7, - 0x7d, 0x42, 0x77, 0xbf, 0xdf, 0x13, 0xf6, 0x57, 0xa1, 0xfd, 0x59, 0xe4, 0xdd, 0xd2, 0x63, 0xea, - 0x7d, 0x13, 0x4a, 0x89, 0x98, 0x5f, 0x4c, 0x54, 0xdb, 0xd2, 0x97, 0x91, 0xb7, 0x4b, 0x81, 0xc3, - 0xe3, 0x4b, 0x33, 0x07, 0x37, 0xcd, 0x21, 0xe9, 0x9f, 0x98, 0x9e, 0x21, 0x78, 0xf7, 0x3b, 0x9e, - 0x1c, 0x17, 0x7a, 0x0b, 0x6f, 0x93, 0x63, 0x56, 0xce, 0xa8, 0xe4, 0x05, 0xbe, 0x56, 0xd8, 0x0d, - 0x9c, 0xb0, 0x2d, 0xd6, 0x25, 0x30, 0x99, 0x4d, 0x25, 0x76, 0x7f, 0x60, 0x4c, 0xb5, 0xe9, 0x03, - 0xf6, 0xf7, 0xd1, 0x4b, 0x86, 0xc3, 0x20, 0x06, 0x1f, 0x16, 0xde, 0x56, 0x22, 0xcd, 0x1e, 0xb0, - 0x5e, 0x98, 0x8c, 0xdf, 0x62, 0x9b, 0x4e, 0xb1, 0x15, 0xa7, 0xcf, 0xf1, 0x6f, 0x4a, 0xa0, 0x40, - 0xb6, 0x12, 0xe1, 0x5b, 0x33, 0x09, 0x2e, 0x5e, 0x76, 0x79, 0x57, 0xc0, 0xe0, 0x3d, 0xc9, 0x9a, - 0x03, 0xe7, 0x32, 0x98, 0x4b, 0xe4, 0x32, 0xc8, 0x9f, 0xab, 0x14, 0xd0, 0x23, 0xd2, 0xc6, 0x94, - 0xa7, 0x93, 0x49, 0x34, 0xac, 0x2f, 0x41, 0xe9, 0xe3, 0xfd, 0xd3, 0x79, 0x30, 0x43, 0xaa, 0x3e, - 0x6f, 0xb6, 0xb6, 0x90, 0x0b, 0xdf, 0x9d, 0xfd, 0xfe, 0x41, 0x5d, 0xae, 0x82, 0x99, 0x4b, 0x98, - 0xec, 0x35, 0xe3, 0x8a, 0xbd, 0xeb, 0xd2, 0x95, 0x8b, 0x5b, 0x62, 0xd7, 0x3d, 0x48, 0x3b, 0x17, - 0xc8, 0x1f, 0x2a, 0xf7, 0xbf, 0xc7, 0x63, 0xb2, 0xe0, 0x4f, 0x1c, 0xb1, 0x0a, 0xd8, 0xc8, 0x62, - 0x93, 0xe4, 0x93, 0xa0, 0xb0, 0x67, 0xa2, 0x4b, 0x95, 0x16, 0xb5, 0x6e, 0xe9, 0x1b, 0xfc, 0x90, - 0xf0, 0xfe, 0x2b, 0x0b, 0x37, 0xa5, 0x25, 0x5d, 0x29, 0x14, 0xdb, 0x85, 0x1d, 0x48, 0xd6, 0x18, - 0xce, 0xf8, 0xf2, 0xf7, 0xf3, 0x25, 0xb9, 0xf7, 0x3d, 0xca, 0x70, 0x4e, 0x70, 0xf9, 0x3e, 0x61, - 0xc0, 0x88, 0xaf, 0xee, 0x13, 0x3b, 0xbc, 0x3f, 0xa0, 0xea, 0xf4, 0x39, 0xff, 0x46, 0x09, 0x4c, - 0x69, 0xc8, 0x5d, 0x36, 0x51, 0xbb, 0xd5, 0x85, 0xce, 0xc1, 0x4d, 0xa3, 0xb3, 0xa0, 0xb0, 0x89, - 0x0b, 0x1b, 0x74, 0xfe, 0x80, 0x66, 0x83, 0x6f, 0xc8, 0x8a, 0xee, 0xec, 0xd2, 0xd5, 0x37, 0x9f, - 0xda, 0x91, 0xc0, 0x24, 0xe6, 0x99, 0x1b, 0x5f, 0x73, 0xfa, 0x28, 0x3d, 0x2a, 0x81, 0x19, 0x7a, - 0xa1, 0x57, 0xa9, 0x6d, 0x6e, 0x59, 0x70, 0x77, 0x04, 0x1a, 0x22, 0x3f, 0x03, 0xe4, 0x0d, 0xaf, - 0x34, 0xea, 0xa4, 0x0f, 0xfb, 0x76, 0x9e, 0xb8, 0x3e, 0x95, 0x64, 0x4c, 0x10, 0xa3, 0x2f, 0x14, - 0x6c, 0x9f, 0xe6, 0x31, 0xc6, 0xe8, 0x1b, 0x58, 0x79, 0xfa, 0x88, 0x7d, 0x45, 0x02, 0xc7, 0x29, - 0x01, 0xe7, 0x90, 0xe3, 0x9a, 0x4d, 0xa3, 0x4d, 0x90, 0x7b, 0x79, 0x66, 0x14, 0xd0, 0xad, 0x82, - 0xd9, 0x3d, 0xb6, 0x58, 0x0a, 0xe1, 0x99, 0xbe, 0x10, 0x72, 0x04, 0xa8, 0xfc, 0x8f, 0x09, 0x62, - 0x9d, 0x71, 0x5c, 0xe5, 0xca, 0x1c, 0x63, 0xac, 0x33, 0x61, 0x22, 0xd2, 0x87, 0xf8, 0xd5, 0x39, - 0x12, 0xfe, 0x2f, 0xec, 0x3e, 0xff, 0x5c, 0x18, 0xdb, 0x0d, 0x30, 0x8d, 0xb1, 0x24, 0x3f, 0xd2, - 0x65, 0x88, 0x18, 0x21, 0x0e, 0xfa, 0x1d, 0x7a, 0xa7, 0x50, 0xf0, 0xaf, 0xca, 0x96, 0x03, 0xcf, - 0x03, 0x10, 0x7e, 0x62, 0x3b, 0xe9, 0x4c, 0x54, 0x27, 0x9d, 0x15, 0xeb, 0xa4, 0xdf, 0x22, 0x1c, - 0xbc, 0xa4, 0x3f, 0xd9, 0x07, 0x17, 0x0f, 0xb1, 0xb0, 0x15, 0x83, 0x6b, 0x4f, 0x5f, 0x2e, 0x5e, - 0x9f, 0xeb, 0xbd, 0xb9, 0xf9, 0xa3, 0x23, 0x99, 0x4f, 0xb1, 0xfd, 0x81, 0xd4, 0xd3, 0x1f, 0x1c, - 0xc0, 0x92, 0xbe, 0x19, 0x1c, 0x25, 0x55, 0x94, 0x03, 0xb2, 0xf2, 0x24, 0x34, 0x43, 0x4f, 0x32, - 0x7c, 0x7c, 0x08, 0x21, 0x18, 0x74, 0xad, 0x74, 0x5c, 0x27, 0x97, 0xcc, 0xd8, 0x4d, 0x2a, 0x20, - 0x87, 0x77, 0x1b, 0xf5, 0x37, 0x72, 0xc4, 0xda, 0xdd, 0xc0, 0xd7, 0x3e, 0xc1, 0x2f, 0xe6, 0x46, - 0x31, 0x22, 0xdc, 0x0b, 0x72, 0xd8, 0x55, 0x5d, 0x8a, 0x5c, 0xd2, 0x08, 0xab, 0x0c, 0xef, 0xe4, - 0x42, 0x97, 0xdd, 0xd5, 0x23, 0x2a, 0xfe, 0x53, 0xbe, 0x05, 0x1c, 0xbd, 0x60, 0x34, 0x2f, 0x6e, - 0x39, 0xf6, 0x2e, 0xbe, 0x20, 0xc7, 0xa6, 0x37, 0xed, 0xe0, 0x1b, 0xcb, 0xf8, 0x0f, 0xf2, 0x6d, - 0xbe, 0xe9, 0x90, 0x1f, 0x64, 0x3a, 0xac, 0x1e, 0xa1, 0xc6, 0x83, 0xfc, 0xcc, 0xa0, 0xd3, 0x29, - 0xc4, 0x76, 0x3a, 0xab, 0x47, 0xfc, 0x6e, 0x47, 0x5e, 0x02, 0x93, 0x2d, 0x73, 0x0f, 0x6f, 0x55, - 0xe3, 0x59, 0xd7, 0xa0, 0xa3, 0xc4, 0x4b, 0xe6, 0x1e, 0xd9, 0xd8, 0x5e, 0x3d, 0xa2, 0x06, 0x7f, - 0xca, 0x2b, 0x60, 0x0a, 0x6f, 0x0b, 0xe0, 0x62, 0x26, 0x13, 0x1d, 0x13, 0x5e, 0x3d, 0xa2, 0x86, - 0xff, 0x7a, 0xd6, 0x47, 0x0e, 0x9f, 0xe1, 0xb8, 0xc7, 0xdf, 0x6e, 0xcf, 0x24, 0xda, 0x6e, 0xf7, - 0x78, 0x41, 0x36, 0xdc, 0x4f, 0x82, 0x7c, 0x13, 0x73, 0x38, 0x4b, 0x39, 0x4c, 0x5e, 0xe5, 0xbb, - 0x40, 0x6e, 0xc7, 0x70, 0xfc, 0xc9, 0xf3, 0x4d, 0x83, 0xcb, 0x5d, 0x37, 0x9c, 0x8b, 0x1e, 0x82, - 0xde, 0x5f, 0x8b, 0x13, 0x20, 0x8f, 0x19, 0x17, 0x3c, 0xc0, 0xb7, 0xe7, 0x88, 0x19, 0x52, 0xb6, - 0x2d, 0x6f, 0xd8, 0xd7, 0x6d, 0xff, 0xa0, 0xcb, 0x87, 0x32, 0xa3, 0xb1, 0x20, 0xfb, 0x5e, 0x75, - 0x2c, 0x45, 0x5e, 0x75, 0xdc, 0x73, 0x07, 0x67, 0xae, 0xf7, 0x0e, 0xce, 0x70, 0xf9, 0x20, 0x3f, - 0xd8, 0x51, 0xe5, 0x4f, 0x87, 0x30, 0x5d, 0x7a, 0x19, 0x11, 0x3d, 0x03, 0x6f, 0x9b, 0x16, 0xd3, - 0x66, 0xff, 0x35, 0x61, 0xa7, 0x94, 0xd4, 0xa8, 0x19, 0x40, 0x5e, 0xfa, 0x7d, 0xd3, 0x6f, 0xe4, - 0xc0, 0x3c, 0xb9, 0xe9, 0x75, 0x0f, 0xe9, 0x36, 0x7f, 0x25, 0x1d, 0xfc, 0xe4, 0x48, 0x84, 0xa6, - 0xcf, 0x80, 0x23, 0xf5, 0x1d, 0x70, 0xf6, 0x1d, 0x36, 0xce, 0x0d, 0x38, 0x6c, 0x9c, 0x4f, 0xb6, - 0x72, 0xf8, 0x7b, 0xac, 0xfc, 0xd4, 0x79, 0xf9, 0xb9, 0x33, 0x02, 0xa0, 0x7e, 0x7c, 0x19, 0x89, - 0x7d, 0xf3, 0xce, 0x40, 0x52, 0x34, 0x4e, 0x52, 0xee, 0x19, 0x9e, 0x90, 0xf4, 0xa5, 0xe5, 0x77, - 0x73, 0xe0, 0xaa, 0x90, 0x98, 0x2a, 0xba, 0x44, 0x05, 0xe5, 0xf3, 0x23, 0x11, 0x94, 0xe4, 0xb1, - 0x0c, 0xd2, 0x96, 0x98, 0x3f, 0x16, 0x3e, 0x03, 0xd4, 0x0b, 0x54, 0xc0, 0x9b, 0x08, 0x61, 0x39, - 0x09, 0x0a, 0xa4, 0x87, 0xa1, 0xd0, 0xd0, 0xb7, 0x84, 0xdd, 0x8d, 0xd8, 0xc9, 0x21, 0x51, 0xda, - 0xc6, 0x20, 0x3f, 0x74, 0x5d, 0x43, 0xdf, 0x75, 0xac, 0x8a, 0xe5, 0xda, 0xf0, 0x27, 0x46, 0x22, - 0x38, 0x81, 0x37, 0x9c, 0x34, 0x8c, 0x37, 0xdc, 0x50, 0xab, 0x1c, 0x7e, 0x0b, 0x0e, 0x65, 0x95, - 0x23, 0xa2, 0xf2, 0xf4, 0xf1, 0x7b, 0x87, 0x44, 0x6e, 0x79, 0xd7, 0x90, 0xbb, 0xc8, 0x5b, 0x88, - 0xf0, 0xfe, 0x51, 0x00, 0x79, 0xdc, 0x37, 0x93, 0xe8, 0xa5, 0x45, 0xf8, 0x85, 0x3f, 0xf1, 0x14, - 0x1b, 0x3c, 0x9f, 0x9b, 0x0e, 0xf6, 0x50, 0x38, 0x12, 0xa4, 0xc4, 0x62, 0xe6, 0x27, 0x20, 0x23, - 0x7d, 0xcc, 0x5e, 0x29, 0x81, 0x02, 0xbd, 0xe1, 0x7b, 0x23, 0x15, 0x87, 0x09, 0x3e, 0x84, 0xae, - 0xc0, 0x8e, 0x5c, 0xe2, 0x7b, 0xb0, 0xd3, 0xdb, 0x8b, 0x3b, 0xa4, 0x8b, 0xae, 0xbf, 0x95, 0x05, - 0xd3, 0x1a, 0x72, 0xcb, 0x86, 0xe3, 0x98, 0xc6, 0xd6, 0xa8, 0x3c, 0xbe, 0x45, 0xbd, 0x87, 0xe1, - 0xb7, 0x33, 0xa2, 0xe7, 0x69, 0x82, 0x85, 0x70, 0x9f, 0xd4, 0x88, 0xd8, 0x7e, 0x62, 0x37, 0x8c, - 0x0f, 0x2a, 0x6d, 0x0c, 0x1e, 0xdb, 0x59, 0x30, 0xe1, 0x9f, 0xa9, 0x3b, 0xcb, 0x9d, 0xb3, 0xdc, - 0x76, 0x77, 0xfc, 0x63, 0x30, 0xf8, 0x79, 0xff, 0x59, 0x2e, 0xf8, 0xba, 0x84, 0x8e, 0xf2, 0xf1, - 0x07, 0x02, 0x93, 0xe9, 0x58, 0x12, 0x77, 0xf8, 0xc3, 0x3a, 0x02, 0xf8, 0x3b, 0x13, 0x74, 0x39, - 0x72, 0xcd, 0x70, 0xd1, 0x65, 0xf8, 0xe7, 0x12, 0x98, 0xd0, 0x90, 0xeb, 0x8d, 0xb7, 0x1e, 0xf9, - 0x07, 0x96, 0x70, 0x99, 0x59, 0xf1, 0x98, 0xa2, 0x6b, 0x18, 0x2f, 0x00, 0x53, 0x1d, 0xc7, 0x6e, - 0xa2, 0x6e, 0x97, 0xae, 0x5e, 0xb0, 0x8e, 0x6a, 0xfd, 0x46, 0x7f, 0x4c, 0xda, 0x42, 0xdd, 0xff, - 0x47, 0x0d, 0x7f, 0x4f, 0x6a, 0x06, 0x90, 0x92, 0x68, 0x03, 0xc7, 0x6d, 0x06, 0xc4, 0x55, 0x9e, - 0x3e, 0xd0, 0x9f, 0x91, 0xc0, 0x8c, 0x86, 0xdc, 0x80, 0x8b, 0x09, 0x36, 0x39, 0xa2, 0xe1, 0xe5, - 0xa0, 0x94, 0x0e, 0x06, 0xa5, 0xf8, 0xbd, 0x6b, 0x3c, 0x37, 0x83, 0xc2, 0xc6, 0x78, 0xef, 0x9a, - 0x18, 0x05, 0x63, 0x38, 0xbe, 0xf6, 0x14, 0x30, 0x85, 0x69, 0xc1, 0x0a, 0xfb, 0x73, 0xb9, 0x50, - 0x79, 0xbf, 0x90, 0x92, 0xf2, 0xde, 0x0d, 0xf2, 0xf8, 0x3e, 0x77, 0xac, 0xb8, 0xd3, 0x22, 0x66, - 0xfb, 0xba, 0x97, 0x5d, 0x25, 0x7f, 0xf5, 0xf7, 0xd3, 0xcc, 0x27, 0xf3, 0xd3, 0x7c, 0x53, 0x36, - 0xd1, 0x48, 0x48, 0xe6, 0x0e, 0x23, 0x54, 0xf9, 0x04, 0xe3, 0x66, 0x4c, 0xdd, 0xe9, 0x0b, 0xc7, - 0xcb, 0x25, 0x30, 0xe9, 0x8d, 0xdb, 0xd8, 0x1e, 0x3f, 0x7f, 0x70, 0x71, 0xe8, 0x6f, 0xe8, 0x27, - 0xec, 0x81, 0x7d, 0x8e, 0x8c, 0xce, 0xbc, 0x4f, 0xd0, 0x03, 0xc7, 0x55, 0x9e, 0x3e, 0x1e, 0xef, - 0x22, 0x78, 0x60, 0x7d, 0x80, 0x6f, 0x96, 0x80, 0xb4, 0x82, 0xdc, 0x71, 0x5b, 0x91, 0x8f, 0x0a, - 0x87, 0x2a, 0xe2, 0x18, 0x86, 0x69, 0x5e, 0x58, 0x41, 0xa3, 0x51, 0x20, 0xb1, 0x18, 0x45, 0x42, - 0x04, 0xa4, 0x8f, 0xda, 0x7b, 0x09, 0x6a, 0x64, 0x73, 0xe1, 0xc7, 0x47, 0xd0, 0xab, 0x8e, 0x77, - 0xe1, 0xc3, 0x67, 0x20, 0x2e, 0xe3, 0xb0, 0xf4, 0xad, 0x5f, 0xe5, 0x63, 0xb9, 0xe7, 0x0c, 0x78, - 0xca, 0xbe, 0x8d, 0x9a, 0x17, 0x51, 0x0b, 0xfe, 0xc8, 0xc1, 0xa1, 0x9b, 0x07, 0x13, 0x4d, 0x52, - 0x1a, 0x06, 0x6f, 0x52, 0xf5, 0x5f, 0x13, 0x5c, 0xda, 0xcb, 0x77, 0x44, 0xe4, 0xf7, 0x31, 0x5e, - 0xda, 0x2b, 0x50, 0xfd, 0x18, 0xcc, 0x16, 0x32, 0xcb, 0xa8, 0x34, 0x6d, 0x0b, 0xfe, 0xc7, 0x83, - 0xc3, 0x72, 0x1d, 0x98, 0x32, 0x9b, 0xb6, 0x55, 0xd9, 0xf1, 0x83, 0xfb, 0x4d, 0xa9, 0x61, 0x82, - 0xff, 0x55, 0xd9, 0xb1, 0x1f, 0x30, 0xe9, 0xae, 0x79, 0x98, 0x30, 0xac, 0x31, 0xe1, 0x91, 0x7e, - 0x58, 0xc6, 0x44, 0x9f, 0xba, 0xd3, 0x87, 0xec, 0xf1, 0xd0, 0xbb, 0x8d, 0x74, 0x85, 0x4f, 0x88, - 0x55, 0xe0, 0x61, 0x86, 0x33, 0xb6, 0x15, 0x87, 0x32, 0x9c, 0xc5, 0x10, 0x30, 0x86, 0xfb, 0x45, - 0x42, 0x1c, 0x53, 0x5f, 0x03, 0x3e, 0x00, 0x3a, 0xa3, 0x33, 0x0f, 0x87, 0x44, 0xe7, 0x70, 0x4c, - 0xc4, 0x0f, 0xd2, 0x50, 0x97, 0xd4, 0xe2, 0x81, 0xff, 0x69, 0x14, 0xe0, 0xdc, 0x39, 0x8c, 0xbf, - 0x02, 0xf1, 0x56, 0x48, 0x70, 0xdd, 0xf0, 0x3e, 0x0e, 0x7a, 0xa5, 0x8c, 0xf1, 0x22, 0x6e, 0x91, - 0xfa, 0xd3, 0x07, 0xf0, 0x67, 0x25, 0x30, 0x87, 0x7d, 0x04, 0xda, 0xc8, 0x70, 0x48, 0x47, 0x39, - 0x12, 0x47, 0xf9, 0x77, 0x09, 0x07, 0xf8, 0xe1, 0xf9, 0x10, 0xd2, 0x31, 0x12, 0x28, 0xc4, 0xa2, - 0xfb, 0x08, 0x92, 0x30, 0x96, 0x6d, 0x94, 0x62, 0x40, 0x02, 0x15, 0xf1, 0xd1, 0xe0, 0x91, 0xd0, - 0x23, 0x97, 0x67, 0x86, 0xaf, 0x6c, 0x63, 0xf6, 0xc8, 0x15, 0x21, 0x22, 0x7d, 0x4c, 0xde, 0xfc, - 0x0c, 0xba, 0xe0, 0xac, 0xe3, 0xdb, 0xb8, 0x1f, 0xce, 0x05, 0x27, 0xda, 0x3e, 0x33, 0x12, 0x0f, - 0xcc, 0x03, 0x04, 0xb6, 0x97, 0x41, 0xce, 0xb1, 0x2f, 0x91, 0xa5, 0xad, 0x59, 0x15, 0x3f, 0x63, - 0x93, 0xdf, 0x6e, 0xef, 0xee, 0x58, 0xe4, 0x64, 0xe8, 0xac, 0xea, 0xbf, 0xca, 0x37, 0x82, 0xd9, - 0x4b, 0xa6, 0xbb, 0xbd, 0x8a, 0x8c, 0x16, 0x72, 0x54, 0xfb, 0x12, 0xf6, 0x98, 0x9b, 0x54, 0xf9, - 0x44, 0xde, 0x7f, 0x45, 0xc0, 0xbe, 0xc4, 0x57, 0x74, 0x8f, 0xe5, 0xf8, 0x5b, 0x12, 0xcb, 0x33, - 0x9a, 0xaa, 0xf4, 0x05, 0xe6, 0x7d, 0x12, 0x98, 0x52, 0xed, 0x4b, 0x54, 0x48, 0xfe, 0xcf, 0xc3, - 0x95, 0x91, 0xc4, 0x13, 0x3d, 0x72, 0xe5, 0xba, 0x4f, 0xfe, 0xd8, 0x27, 0x7a, 0xb1, 0xd5, 0x8f, - 0xe5, 0xe4, 0xd2, 0x8c, 0x6a, 0x5f, 0xd2, 0x90, 0x4b, 0x34, 0x02, 0x36, 0x46, 0xe4, 0x64, 0x6d, - 0x76, 0x49, 0x81, 0x74, 0x1e, 0x1e, 0xbc, 0x27, 0xdd, 0x45, 0x08, 0x18, 0x14, 0x90, 0x38, 0xee, - 0x5d, 0x84, 0x81, 0x14, 0x8c, 0x21, 0x46, 0x8a, 0x04, 0xa6, 0x55, 0xfb, 0x92, 0x37, 0x34, 0x2c, - 0x9b, 0xed, 0xf6, 0x68, 0x46, 0xc8, 0xa4, 0xc6, 0xbf, 0xcf, 0x06, 0x9f, 0x8a, 0xb1, 0x1b, 0xff, - 0x03, 0x08, 0x48, 0x1f, 0x86, 0x97, 0x11, 0x65, 0xf1, 0x47, 0x68, 0x6b, 0x34, 0x38, 0x0c, 0xab, - 0x10, 0x01, 0x19, 0x87, 0xa6, 0x10, 0x51, 0x14, 0x8c, 0x65, 0xe7, 0x64, 0xae, 0x8c, 0x87, 0xf9, - 0xd1, 0xea, 0xc4, 0x63, 0xc9, 0x5c, 0x13, 0xe9, 0xb0, 0xcb, 0x11, 0x32, 0x12, 0x34, 0x12, 0xb8, - 0x20, 0x0a, 0xd0, 0x90, 0x3e, 0x1e, 0x1f, 0x96, 0xc0, 0x0c, 0x21, 0xe1, 0x09, 0x62, 0x05, 0x0c, - 0xa5, 0x54, 0x6c, 0x0b, 0x0e, 0x47, 0xa9, 0x62, 0x28, 0x18, 0xcb, 0x2d, 0x9d, 0x9e, 0x1d, 0x37, - 0xc4, 0xf1, 0xf1, 0x28, 0x04, 0x87, 0x36, 0xc6, 0x46, 0x78, 0x84, 0x7c, 0x18, 0x63, 0xec, 0x90, - 0x8e, 0x91, 0xbf, 0x2c, 0xd0, 0xa2, 0x51, 0x62, 0x70, 0x00, 0x55, 0x18, 0x21, 0x0c, 0x43, 0xaa, - 0xc2, 0x21, 0x21, 0xf1, 0x55, 0x09, 0x00, 0x42, 0xc0, 0xba, 0xbd, 0x87, 0x2f, 0xe5, 0x19, 0x41, - 0x77, 0xd6, 0xeb, 0x56, 0x2f, 0x0d, 0x70, 0xab, 0x4f, 0x18, 0xc2, 0x25, 0xe9, 0x4a, 0x20, 0xc3, - 0x65, 0xaf, 0x91, 0x63, 0x5f, 0x09, 0x8c, 0xaf, 0x3f, 0x7d, 0x8c, 0xbf, 0x4c, 0xac, 0xb9, 0xf0, - 0x80, 0xe9, 0x2f, 0x8f, 0x04, 0x65, 0x66, 0xf6, 0x2f, 0xf1, 0xb3, 0xff, 0x03, 0x60, 0x3b, 0xac, - 0x8d, 0x38, 0xe8, 0xe0, 0x68, 0xfa, 0x36, 0xe2, 0xe1, 0x1d, 0x10, 0xfd, 0xf1, 0x1c, 0x38, 0x4a, - 0x3b, 0x91, 0xef, 0x07, 0x88, 0x13, 0x9e, 0xc3, 0xe3, 0x3a, 0xc9, 0x01, 0x28, 0x8f, 0x6a, 0x41, - 0x2a, 0xc9, 0x52, 0xa6, 0x00, 0x79, 0x63, 0x59, 0xdd, 0x28, 0x28, 0x97, 0x3b, 0x86, 0xd5, 0x12, - 0x0f, 0xf7, 0x3b, 0x00, 0x78, 0x7f, 0xad, 0x51, 0xe2, 0xd7, 0x1a, 0xfb, 0xac, 0x4c, 0x26, 0xde, - 0xb9, 0xc6, 0x2c, 0x23, 0xe4, 0x8e, 0x7d, 0xe7, 0x3a, 0xba, 0xee, 0xf4, 0x51, 0x7a, 0x4c, 0x02, - 0x39, 0xcd, 0x76, 0x5c, 0xf8, 0x60, 0x12, 0xed, 0x24, 0x9c, 0x0f, 0x41, 0xf2, 0xdf, 0xe5, 0x32, - 0x77, 0x6b, 0xf2, 0xd9, 0xf8, 0xa3, 0xce, 0x86, 0x6b, 0x60, 0xaf, 0x6e, 0xaf, 0x7e, 0xe6, 0xfa, - 0xe4, 0xa4, 0xf1, 0x74, 0x08, 0xff, 0xb4, 0xe8, 0x03, 0x18, 0xa9, 0xc5, 0xd3, 0x89, 0xac, 0x39, - 0x7d, 0xdc, 0xfe, 0xfb, 0x1c, 0xf5, 0x6d, 0x5d, 0x36, 0xdb, 0x08, 0x3e, 0x48, 0x5c, 0x46, 0xaa, - 0xc6, 0x0e, 0x12, 0x3f, 0x12, 0x13, 0xeb, 0xda, 0x8a, 0xe3, 0xcb, 0x4a, 0x61, 0x7c, 0xd9, 0xa4, - 0x0a, 0x45, 0x0e, 0xa0, 0x13, 0x92, 0xc6, 0xad, 0x50, 0x31, 0x75, 0x8f, 0x25, 0x4e, 0xe7, 0x31, - 0x0d, 0xb9, 0xc4, 0xa8, 0xac, 0xf9, 0x37, 0xb0, 0xfc, 0xe8, 0x48, 0x22, 0x76, 0x06, 0x17, 0xbc, - 0x48, 0x3d, 0x17, 0xbc, 0xbc, 0x8f, 0x05, 0x67, 0x9d, 0x07, 0xe7, 0x39, 0xd1, 0x0c, 0xe2, 0x89, - 0x1c, 0x09, 0x4c, 0x8f, 0x06, 0x30, 0xd5, 0x39, 0x98, 0xee, 0x1a, 0x92, 0x8a, 0xf4, 0x01, 0xfb, - 0x82, 0x67, 0xaa, 0xe0, 0x49, 0x7f, 0xc9, 0x6a, 0xd1, 0x08, 0xab, 0xff, 0x78, 0xd8, 0x9b, 0x6d, - 0xfb, 0x43, 0xb0, 0x72, 0xb1, 0x9c, 0xf3, 0xbd, 0xb7, 0xd5, 0x2f, 0x92, 0x70, 0xae, 0x5e, 0x27, - 0x8a, 0x77, 0xda, 0xc4, 0x6f, 0xac, 0x0f, 0xfe, 0x83, 0x7f, 0x92, 0x6c, 0xfd, 0x0d, 0x17, 0xd1, - 0xc3, 0xb8, 0x94, 0x6d, 0xa0, 0x04, 0x2b, 0x73, 0x02, 0xd4, 0xfd, 0xfb, 0x70, 0x0b, 0x0b, 0x23, - 0x81, 0x0c, 0xe9, 0x16, 0x86, 0x0b, 0x38, 0x4c, 0xb7, 0xb0, 0x41, 0x04, 0x8c, 0xe1, 0x96, 0xf9, - 0x3c, 0xdd, 0x95, 0xc7, 0x3e, 0x93, 0xf0, 0x2f, 0xb3, 0xa9, 0x8f, 0xb6, 0xdf, 0xc9, 0x24, 0xf2, - 0x63, 0xc6, 0x74, 0xc5, 0x0f, 0xb7, 0x49, 0x3c, 0x93, 0xe3, 0x8a, 0x1b, 0xc3, 0xfa, 0x4f, 0x16, - 0xfb, 0x94, 0x9f, 0x37, 0x5b, 0xee, 0xf6, 0x88, 0x4e, 0x66, 0x5c, 0xf2, 0xca, 0xf2, 0xaf, 0x2b, - 0xc6, 0x2f, 0xf0, 0x5f, 0x32, 0x89, 0x42, 0x41, 0x05, 0x2c, 0xc1, 0x64, 0x45, 0xb0, 0x38, 0x41, - 0x00, 0xa7, 0xd8, 0xf2, 0xc6, 0x28, 0xd1, 0xe7, 0xcc, 0x16, 0xb2, 0x9f, 0x80, 0x12, 0x8d, 0xe9, - 0x1a, 0x9d, 0x44, 0xc7, 0x15, 0xf7, 0xef, 0x54, 0xa2, 0x03, 0x96, 0x8c, 0x48, 0xa2, 0x63, 0xcb, - 0x4b, 0x9f, 0xc7, 0xaf, 0x9b, 0xa1, 0x13, 0xa2, 0x35, 0xd3, 0xba, 0x08, 0xff, 0xa9, 0xe0, 0x5f, - 0x94, 0x7c, 0xde, 0x74, 0xb7, 0x69, 0x4c, 0x97, 0xdf, 0x15, 0xbe, 0xe3, 0x64, 0x88, 0xb8, 0x2d, - 0x7c, 0x58, 0xa8, 0xfc, 0xbe, 0xb0, 0x50, 0x25, 0x30, 0x6b, 0x5a, 0x2e, 0x72, 0x2c, 0xa3, 0xbd, - 0xdc, 0x36, 0xb6, 0xba, 0xf3, 0x13, 0x7d, 0x2f, 0xa1, 0xab, 0x30, 0x79, 0x54, 0xfe, 0x0f, 0xf6, - 0x3a, 0xc9, 0x49, 0xfe, 0x5a, 0xfc, 0x88, 0x28, 0x56, 0x53, 0xd1, 0x51, 0xac, 0x82, 0x28, 0x55, - 0x60, 0x70, 0x90, 0x6b, 0x51, 0x1b, 0x37, 0x61, 0xd8, 0xbe, 0xb3, 0x82, 0xd1, 0xd4, 0x82, 0x10, - 0x8e, 0xbf, 0x2a, 0x25, 0x5a, 0xa5, 0xf3, 0x04, 0x61, 0xa1, 0x57, 0x08, 0x12, 0x5b, 0xa8, 0x6c, - 0xe3, 0xa5, 0x9e, 0xc6, 0x07, 0x26, 0x4f, 0x4e, 0xc0, 0xe4, 0x61, 0x85, 0x2a, 0x2f, 0x26, 0x54, - 0x49, 0x16, 0xfd, 0x44, 0x5a, 0x3b, 0x86, 0x53, 0x45, 0x79, 0x70, 0xcc, 0x8f, 0x5a, 0xdb, 0xe9, - 0x20, 0xc3, 0x31, 0xac, 0x26, 0x82, 0x8f, 0x67, 0x47, 0x61, 0xf6, 0x2e, 0x83, 0x49, 0xb3, 0x69, - 0x5b, 0x9a, 0xf9, 0x22, 0xff, 0x92, 0xb8, 0xf8, 0x60, 0xe9, 0x98, 0x23, 0x15, 0xfa, 0x87, 0x1a, - 0xfc, 0x2b, 0x57, 0xc0, 0x54, 0xd3, 0x70, 0x5a, 0x24, 0x98, 0x5e, 0xbe, 0xe7, 0x42, 0xa6, 0xc8, - 0x82, 0xca, 0xfe, 0x2f, 0x6a, 0xf8, 0xb7, 0x5c, 0xe3, 0x99, 0x58, 0xe8, 0x89, 0xca, 0x11, 0x59, - 0xd8, 0x52, 0xf8, 0x13, 0xc7, 0x73, 0x8f, 0x3b, 0x0e, 0x6a, 0xe3, 0x3b, 0xe1, 0x49, 0x0f, 0x31, - 0xa5, 0x86, 0x09, 0x49, 0xa7, 0xf9, 0xb8, 0xaa, 0x7d, 0x68, 0x8c, 0x7b, 0x9a, 0x2f, 0x44, 0x45, - 0xfa, 0x92, 0xf9, 0xce, 0x02, 0x98, 0x25, 0xbd, 0x1a, 0x65, 0x27, 0xfc, 0x59, 0x7c, 0xa5, 0xb3, - 0x7b, 0x1f, 0xba, 0x02, 0xb5, 0x83, 0x8f, 0xc9, 0x45, 0x20, 0x5d, 0x0c, 0x02, 0x07, 0x7a, 0x8f, - 0x49, 0xf7, 0xdf, 0x7d, 0xba, 0x16, 0x08, 0x4d, 0xe3, 0xde, 0x7f, 0x8f, 0xaf, 0x3e, 0x7d, 0x7c, - 0x7e, 0x41, 0x02, 0x52, 0xa9, 0xd5, 0x82, 0xcd, 0x83, 0x43, 0x71, 0x1a, 0x4c, 0xfb, 0x3a, 0x13, - 0xc6, 0x72, 0x64, 0x93, 0x92, 0x2e, 0x66, 0x06, 0xbc, 0x29, 0xb5, 0xc6, 0xbe, 0x3b, 0x10, 0x53, - 0x77, 0xfa, 0xa0, 0xfc, 0xf2, 0x04, 0x55, 0x9a, 0x45, 0xdb, 0xbe, 0x88, 0x8f, 0xbc, 0x3c, 0x28, - 0x81, 0xfc, 0x32, 0x72, 0x9b, 0xdb, 0x23, 0xd2, 0x99, 0x5d, 0xa7, 0xed, 0xeb, 0xcc, 0xbe, 0xfb, - 0xe9, 0x07, 0xdb, 0xb0, 0x3e, 0x59, 0x0b, 0x98, 0xa4, 0x71, 0x47, 0x69, 0x8e, 0xad, 0x3d, 0x7d, - 0x70, 0xfe, 0x45, 0x02, 0x73, 0xc1, 0x0a, 0x17, 0xc1, 0xe4, 0xe7, 0x9f, 0x70, 0xeb, 0x96, 0xf0, - 0xf3, 0xc9, 0x42, 0x9d, 0x05, 0x3c, 0xe5, 0x5b, 0x96, 0xf2, 0xc2, 0x62, 0x82, 0x20, 0x68, 0x62, - 0x04, 0x8e, 0x61, 0x06, 0x2f, 0x81, 0x49, 0x4c, 0xd0, 0x92, 0xb9, 0x87, 0x5d, 0x00, 0xb9, 0x85, - 0xc6, 0x17, 0x8f, 0x64, 0xa1, 0xf1, 0x2e, 0x7e, 0xa1, 0x51, 0x30, 0x72, 0xb1, 0xbf, 0xce, 0x98, - 0xd0, 0x27, 0xc6, 0xfb, 0x7f, 0xe4, 0xcb, 0x8c, 0x09, 0x7c, 0x62, 0x06, 0xd4, 0x9f, 0x3e, 0xa2, - 0x9f, 0x6c, 0xd0, 0xce, 0xd6, 0xdf, 0x18, 0x85, 0xff, 0xfd, 0x18, 0xc8, 0x9d, 0xf3, 0x1e, 0xfe, - 0x57, 0x78, 0xb3, 0xd5, 0x43, 0x23, 0x08, 0xb2, 0xf0, 0x7c, 0x90, 0xf3, 0xca, 0xa7, 0xd3, 0x96, - 0x5b, 0xc4, 0x76, 0x69, 0x3d, 0x42, 0x54, 0xfc, 0x9f, 0x7c, 0x12, 0x14, 0xba, 0xf6, 0xae, 0xd3, - 0xf4, 0xcc, 0x67, 0x4f, 0x62, 0xe8, 0x5b, 0xd2, 0xe0, 0xa2, 0x5c, 0xd1, 0x0b, 0xa3, 0x73, 0xfd, - 0x64, 0x2e, 0x3a, 0x92, 0xb8, 0x8b, 0x8e, 0x12, 0xec, 0x1f, 0x08, 0xd0, 0x96, 0xbe, 0x44, 0xfc, - 0x25, 0xbe, 0xf3, 0xaf, 0x35, 0x2a, 0xd8, 0x23, 0xd8, 0x72, 0x50, 0x71, 0x48, 0xea, 0xb8, 0xcd, - 0xb3, 0x36, 0x88, 0xe7, 0x3e, 0x56, 0xc7, 0x6d, 0x01, 0x1a, 0xc6, 0x72, 0xda, 0xbc, 0x40, 0x9d, - 0x4d, 0xef, 0x1f, 0x25, 0xba, 0x39, 0x4e, 0xe8, 0x0f, 0x84, 0xce, 0x08, 0x9d, 0x50, 0x87, 0x46, - 0xe7, 0x90, 0xdc, 0x50, 0xff, 0x40, 0xc2, 0x11, 0x2d, 0x7d, 0x23, 0x47, 0xfc, 0xc2, 0xa2, 0xc4, - 0x10, 0x79, 0x63, 0x30, 0x17, 0xcf, 0x79, 0x76, 0xf8, 0x10, 0xdf, 0x3c, 0xeb, 0x18, 0xfa, 0xc7, - 0x1d, 0xe2, 0x5b, 0x94, 0x90, 0xf4, 0x81, 0xfc, 0x35, 0x72, 0x41, 0x58, 0xa9, 0xe9, 0x9a, 0x7b, - 0x23, 0xd6, 0x34, 0x7e, 0x78, 0x49, 0x18, 0xd5, 0x77, 0x1f, 0x87, 0x08, 0x85, 0xe3, 0x8e, 0xea, - 0x2b, 0x46, 0xc6, 0x18, 0x8e, 0xa3, 0x03, 0x8f, 0x7b, 0x74, 0x6d, 0xe6, 0xcd, 0x74, 0x35, 0x00, - 0x1d, 0x1c, 0xad, 0x33, 0x60, 0x86, 0x99, 0xfa, 0xfb, 0x17, 0xcf, 0x70, 0x69, 0x49, 0x0f, 0xac, - 0x07, 0x2c, 0x1b, 0xf9, 0xc2, 0x40, 0x82, 0x05, 0x5f, 0x11, 0x22, 0xc6, 0x72, 0xaf, 0x9b, 0x3f, - 0x86, 0x8d, 0x09, 0xab, 0xdf, 0x65, 0xb1, 0xaa, 0xf1, 0x58, 0xdd, 0x21, 0xc2, 0x26, 0xb1, 0x31, - 0x4d, 0x68, 0xde, 0xf8, 0x8e, 0x00, 0x2e, 0x95, 0x83, 0xeb, 0xf9, 0x43, 0xd3, 0x91, 0x3e, 0x62, - 0x6f, 0x91, 0xc8, 0xe5, 0x4e, 0xa5, 0x3d, 0xc3, 0x6c, 0xe3, 0x28, 0x03, 0x23, 0xb8, 0x9c, 0xf8, - 0x73, 0x2c, 0x28, 0xe7, 0x78, 0x50, 0xee, 0x15, 0x61, 0x06, 0x47, 0x51, 0x04, 0x36, 0xcf, 0x66, - 0x17, 0xc7, 0x49, 0x88, 0xe1, 0xab, 0x7b, 0xc3, 0xf9, 0xd1, 0xef, 0xec, 0xaa, 0xf9, 0x6f, 0x07, - 0x20, 0xdd, 0xcf, 0x81, 0xa4, 0x1c, 0x94, 0xae, 0xf4, 0xb1, 0x7a, 0x0d, 0x19, 0xba, 0x34, 0x32, - 0xbd, 0x1a, 0xcd, 0xd0, 0x45, 0x67, 0x6e, 0x12, 0x37, 0x73, 0x4b, 0x78, 0xc6, 0x21, 0x74, 0xdd, - 0xf5, 0x89, 0x1b, 0xa4, 0x4e, 0xb9, 0x11, 0x9f, 0x71, 0x18, 0x48, 0x41, 0xfa, 0xe0, 0xfc, 0x83, - 0x04, 0xc0, 0x8a, 0x63, 0xef, 0x76, 0x6a, 0x4e, 0x0b, 0x39, 0xf0, 0xaf, 0xc3, 0xc9, 0xda, 0xab, - 0x46, 0x30, 0x59, 0xab, 0x03, 0xb0, 0x15, 0x14, 0x4e, 0x7b, 0xa3, 0x67, 0x88, 0x4d, 0xcd, 0x42, - 0xa2, 0x54, 0xa6, 0x0c, 0xfe, 0x9a, 0xdf, 0x1f, 0xe2, 0x31, 0x8e, 0x1b, 0x5f, 0xc2, 0xe2, 0x46, - 0x39, 0x59, 0x7b, 0x57, 0x80, 0xb5, 0xce, 0x61, 0x7d, 0xef, 0x01, 0x28, 0x49, 0x1f, 0xf3, 0x7f, - 0x9c, 0x00, 0xd3, 0x64, 0x6b, 0x95, 0xf0, 0xf4, 0xef, 0x42, 0xd0, 0x7f, 0x79, 0x04, 0xa0, 0x6f, - 0x80, 0x19, 0x3b, 0x2c, 0x9d, 0x8c, 0x7f, 0xec, 0x62, 0x59, 0x2c, 0xec, 0x0c, 0x5d, 0x2a, 0x57, - 0x0c, 0xfc, 0x08, 0x8b, 0xbc, 0xca, 0x23, 0x7f, 0x57, 0x0c, 0xbf, 0x99, 0x12, 0x47, 0x09, 0xfd, - 0xbb, 0x03, 0xe8, 0x37, 0x38, 0xe8, 0x4b, 0x07, 0x21, 0x65, 0x0c, 0x57, 0x1c, 0x48, 0x20, 0x87, - 0x4f, 0x24, 0xfe, 0x46, 0x8a, 0x6b, 0x31, 0xf3, 0x60, 0x02, 0xab, 0x6c, 0x30, 0x47, 0xf4, 0x5f, - 0xbd, 0x2f, 0xc6, 0xa6, 0x8b, 0x9c, 0xc0, 0xbb, 0xc4, 0x7f, 0xf5, 0x68, 0xf0, 0x3d, 0xc1, 0xbb, - 0xf3, 0x05, 0xb2, 0x69, 0x1c, 0x24, 0x0c, 0x3d, 0x81, 0x64, 0x39, 0x3e, 0xb2, 0x33, 0x8a, 0xc3, - 0x4c, 0x20, 0x07, 0x10, 0x92, 0x3e, 0xf0, 0x5f, 0xcc, 0x81, 0x79, 0xb2, 0x02, 0xb8, 0xec, 0xd8, - 0x3b, 0x3d, 0x37, 0x8a, 0x99, 0x07, 0x97, 0x85, 0x9b, 0xc0, 0x9c, 0xcb, 0xf9, 0xc0, 0x53, 0x99, - 0xe8, 0x49, 0x85, 0x7f, 0xca, 0xfa, 0xbf, 0xbc, 0x90, 0x47, 0x72, 0x31, 0x86, 0x81, 0x51, 0xb4, - 0x27, 0xde, 0x54, 0x11, 0x24, 0x94, 0x59, 0x50, 0x94, 0x86, 0x5a, 0x5f, 0x0e, 0x64, 0x2a, 0x2f, - 0x22, 0x53, 0xef, 0x0f, 0x64, 0xea, 0x47, 0x38, 0x99, 0x5a, 0x39, 0x38, 0x4b, 0xd2, 0x97, 0xad, - 0x87, 0x83, 0x4d, 0xbc, 0x60, 0x8b, 0x75, 0x27, 0x85, 0x8d, 0x55, 0xd6, 0x77, 0x2c, 0xc7, 0xf9, - 0x8e, 0xf1, 0x77, 0x80, 0x24, 0x58, 0xb5, 0xe0, 0xa9, 0x8e, 0x90, 0xa5, 0x39, 0x90, 0x35, 0x7d, - 0xea, 0xb2, 0x66, 0x6b, 0xa8, 0x75, 0x89, 0xd8, 0x8a, 0xc6, 0xb0, 0x0e, 0x38, 0x07, 0x0a, 0xcb, - 0x66, 0xdb, 0x45, 0x0e, 0xfc, 0x32, 0x5d, 0x95, 0x78, 0x38, 0xc5, 0x01, 0x60, 0x09, 0x14, 0x36, - 0x71, 0x6d, 0xd4, 0x64, 0xbe, 0x55, 0x4c, 0x7b, 0x08, 0x85, 0x2a, 0xfd, 0x37, 0x69, 0x44, 0xc4, - 0x9e, 0x62, 0x46, 0xb6, 0x9c, 0x91, 0x20, 0x22, 0xe2, 0x60, 0x12, 0xc6, 0x72, 0x19, 0x58, 0x41, - 0x45, 0x3b, 0xde, 0x18, 0x7f, 0x31, 0x3d, 0x84, 0x8b, 0x40, 0x32, 0x5b, 0x5d, 0xdc, 0x39, 0x4e, - 0xa9, 0xde, 0x63, 0x52, 0xbf, 0xae, 0x5e, 0x56, 0x11, 0x92, 0xc7, 0xed, 0xd7, 0x25, 0x44, 0x45, - 0xfa, 0x98, 0x7d, 0x07, 0x3b, 0xf5, 0x76, 0xda, 0x46, 0x13, 0x79, 0xd4, 0xa7, 0x86, 0x1a, 0xe9, - 0xc9, 0x72, 0x7e, 0x4f, 0xc6, 0xe8, 0x69, 0xfe, 0x00, 0x7a, 0x3a, 0xec, 0x92, 0x71, 0xc0, 0x73, - 0xdc, 0xf0, 0x43, 0x5b, 0x32, 0x8e, 0x25, 0x63, 0x0c, 0x57, 0xbd, 0xfa, 0x87, 0x97, 0xc7, 0xaa, - 0xad, 0xc3, 0x6e, 0xa8, 0x51, 0x66, 0x8d, 0xec, 0xa0, 0xf2, 0x30, 0x1b, 0x6a, 0xd1, 0x34, 0x8c, - 0x01, 0xad, 0x39, 0x8a, 0xd6, 0x67, 0xe9, 0x30, 0x9a, 0xf2, 0x9e, 0x76, 0xd7, 0x76, 0xdc, 0x64, - 0x7b, 0xda, 0x1e, 0x75, 0x2a, 0xfe, 0x2f, 0xe9, 0x21, 0x39, 0xfe, 0x2c, 0xfb, 0xa8, 0x86, 0xcf, - 0x04, 0x87, 0xe4, 0x06, 0x11, 0x90, 0x3e, 0xbc, 0x6f, 0x3b, 0xa4, 0xc1, 0x73, 0x58, 0x75, 0xa4, - 0x3a, 0x30, 0xb2, 0xa1, 0x73, 0x18, 0x75, 0x8c, 0xa6, 0x21, 0x7d, 0xbc, 0xfe, 0x9e, 0x19, 0x38, - 0xdf, 0x32, 0xc6, 0x81, 0xd3, 0xd7, 0xcc, 0xfc, 0x90, 0x9a, 0x39, 0xec, 0x5e, 0x1d, 0xe5, 0xf5, - 0xe8, 0x06, 0xcc, 0x61, 0xf6, 0xea, 0x62, 0x88, 0x48, 0x1f, 0xf1, 0xb7, 0x4a, 0x20, 0xaf, 0x8d, - 0x7f, 0xbc, 0x1c, 0x76, 0x2e, 0x82, 0x79, 0xa5, 0x8d, 0x6c, 0xb8, 0x1c, 0x66, 0x2e, 0x12, 0x49, - 0xc2, 0x18, 0x2e, 0x3b, 0x38, 0x0a, 0x66, 0xf0, 0x92, 0x88, 0xbf, 0x25, 0xfe, 0xf7, 0x74, 0xd4, - 0x7c, 0x53, 0x8a, 0xba, 0xfa, 0x02, 0x30, 0xe9, 0xef, 0x9b, 0xd1, 0x91, 0x73, 0x41, 0x4c, 0x3f, - 0x83, 0x7d, 0xb7, 0xe0, 0xff, 0x03, 0x39, 0xae, 0x8c, 0x7c, 0x5f, 0x7d, 0x58, 0xc7, 0x95, 0x43, - 0xdd, 0x5b, 0xff, 0x93, 0x70, 0x44, 0xfd, 0x8f, 0xe9, 0x61, 0xde, 0xbb, 0xe7, 0x9e, 0xeb, 0xb3, - 0xe7, 0xfe, 0x38, 0x8b, 0xa5, 0xc6, 0x63, 0x79, 0xb7, 0x28, 0x0b, 0x47, 0x38, 0xd6, 0x3e, 0x16, - 0xc0, 0x79, 0x8e, 0x83, 0x73, 0xf1, 0x40, 0xb4, 0x8c, 0xe1, 0x90, 0x6a, 0x2e, 0x1c, 0x73, 0x3f, - 0x96, 0xa2, 0x1e, 0xf7, 0x9c, 0x80, 0xc9, 0xed, 0x3b, 0x01, 0xc3, 0x69, 0x7a, 0xfe, 0x80, 0x9a, - 0xfe, 0x31, 0x56, 0x3a, 0x74, 0x5e, 0x3a, 0x9e, 0x2f, 0x8e, 0xc8, 0xe8, 0x46, 0xe6, 0xf7, 0x04, - 0xe2, 0x71, 0x9e, 0x13, 0x8f, 0xf2, 0xc1, 0x88, 0x49, 0x5f, 0x3e, 0xfe, 0xd0, 0x9f, 0xd0, 0x1e, - 0xb2, 0xbe, 0x0f, 0xbb, 0x55, 0xcc, 0x31, 0x71, 0x64, 0x23, 0xf7, 0x30, 0x5b, 0xc5, 0x83, 0x28, - 0x19, 0x43, 0xfc, 0xbb, 0x59, 0x30, 0x8d, 0x69, 0x3a, 0x6f, 0xb6, 0xb6, 0x90, 0x0b, 0x7f, 0x95, - 0xf8, 0x93, 0xfa, 0xd1, 0x46, 0x47, 0x14, 0x12, 0x2a, 0xea, 0x6c, 0x72, 0x52, 0x8f, 0x0e, 0x42, - 0xe4, 0x02, 0x43, 0xe0, 0xb8, 0xa3, 0x56, 0x0e, 0xa4, 0x20, 0x7d, 0xc8, 0x3e, 0x42, 0xdc, 0x6d, - 0xd6, 0x8c, 0x2b, 0xf6, 0xae, 0x0b, 0x5f, 0x3a, 0x82, 0x0e, 0x7a, 0x11, 0x14, 0xda, 0xb8, 0x34, - 0x7a, 0x84, 0x26, 0x7e, 0xba, 0x43, 0x59, 0x40, 0xea, 0x57, 0xe9, 0x9f, 0x49, 0xcf, 0xd1, 0x84, - 0x7c, 0x24, 0xe5, 0x8c, 0xfb, 0x1c, 0xcd, 0x80, 0xfa, 0xc7, 0x72, 0xaf, 0xd1, 0xa4, 0x57, 0xbb, - 0xb9, 0x63, 0xba, 0x23, 0x8a, 0xb6, 0xd1, 0xf6, 0xca, 0xf2, 0xa3, 0x6d, 0xe0, 0x97, 0xa4, 0xa7, - 0x7b, 0x19, 0xae, 0x78, 0xbf, 0x8f, 0xfb, 0x74, 0x6f, 0x7c, 0xf5, 0xe9, 0x63, 0xf2, 0x5f, 0x88, - 0x66, 0x9d, 0x23, 0x8e, 0xd2, 0x29, 0xfa, 0x60, 0x0f, 0xad, 0x2c, 0x84, 0xb4, 0xc3, 0x53, 0x96, - 0xbe, 0xf5, 0xa7, 0x0f, 0xcc, 0x07, 0x4e, 0x81, 0xfc, 0x12, 0xba, 0xb0, 0xbb, 0x05, 0xef, 0x02, - 0x93, 0xba, 0x83, 0x50, 0xc5, 0xda, 0xb4, 0x3d, 0xee, 0xba, 0xde, 0xb3, 0x0f, 0x09, 0x7d, 0xf3, - 0xf0, 0xd8, 0x46, 0x46, 0x2b, 0x3c, 0x2b, 0xe8, 0xbf, 0xc2, 0x87, 0xb2, 0x20, 0xa7, 0xb9, 0x86, - 0x0b, 0xa7, 0x02, 0x6c, 0xe1, 0x4b, 0x59, 0x2c, 0xee, 0xe2, 0xb1, 0xb8, 0x89, 0xe3, 0x05, 0xa6, - 0x60, 0xc1, 0xfb, 0x3f, 0x02, 0x00, 0x08, 0x26, 0x1f, 0xe8, 0xda, 0x96, 0x97, 0xc3, 0x3f, 0xae, - 0xea, 0xbf, 0xc3, 0xd7, 0x07, 0xec, 0xbe, 0x87, 0x63, 0xf7, 0xd3, 0xc4, 0xaa, 0x18, 0xc3, 0x4a, - 0x5b, 0x16, 0x4c, 0x79, 0xac, 0x5d, 0x45, 0x46, 0xab, 0x0b, 0x9f, 0x1c, 0x0a, 0x7f, 0x04, 0x9b, - 0xe1, 0x07, 0x85, 0x03, 0xa0, 0x92, 0x56, 0x05, 0x85, 0x47, 0x7b, 0x74, 0xf8, 0x9b, 0xff, 0x59, - 0x3e, 0x70, 0xcc, 0x59, 0x90, 0x33, 0xad, 0x4d, 0x9b, 0xfa, 0x17, 0x5e, 0x1b, 0x51, 0xb6, 0x27, - 0x13, 0x2a, 0xce, 0x28, 0x18, 0x1d, 0x35, 0x9e, 0xac, 0xb1, 0x5c, 0x34, 0x98, 0xf3, 0x6a, 0x87, - 0xff, 0xc7, 0x40, 0x66, 0xcb, 0x32, 0xc8, 0x75, 0x0c, 0x77, 0x9b, 0x56, 0x8d, 0x9f, 0x3d, 0x1b, - 0x79, 0xd7, 0x32, 0x2c, 0xdb, 0xba, 0xb2, 0x63, 0xbe, 0x28, 0xb8, 0xcf, 0x98, 0x4b, 0xf3, 0x28, - 0xdf, 0x42, 0x16, 0x72, 0x0c, 0x17, 0x69, 0x7b, 0x5b, 0x78, 0x8e, 0x35, 0xa9, 0xb2, 0x49, 0x89, - 0xe5, 0xdf, 0xa3, 0x38, 0x5a, 0xfe, 0x37, 0xcd, 0x36, 0xc2, 0x51, 0xb5, 0xa8, 0xfc, 0xfb, 0xef, - 0x89, 0xe4, 0xbf, 0x4f, 0x15, 0xe9, 0xa3, 0xf1, 0xdd, 0x2c, 0x98, 0xd1, 0x3c, 0x81, 0xd3, 0x76, - 0x77, 0x76, 0x0c, 0xe7, 0x0a, 0xbc, 0x21, 0x44, 0x85, 0x11, 0xcd, 0x0c, 0xef, 0x97, 0xf2, 0x07, - 0xc2, 0x57, 0x79, 0x53, 0xd5, 0x66, 0x6a, 0x48, 0xac, 0x07, 0xcf, 0x04, 0x79, 0x4f, 0xbc, 0x7d, - 0x8f, 0xcb, 0x58, 0x45, 0x20, 0x39, 0x05, 0xa3, 0x8f, 0x0d, 0xa4, 0x6d, 0x0c, 0x91, 0x4f, 0xb2, - 0xe0, 0xa8, 0xe6, 0x1a, 0xcd, 0x8b, 0x2b, 0xb6, 0x63, 0xef, 0xba, 0xa6, 0x85, 0xba, 0xf0, 0x49, - 0x21, 0x02, 0xbe, 0xfc, 0x67, 0x42, 0xf9, 0x87, 0xff, 0x9a, 0x11, 0x1d, 0x45, 0x83, 0x6e, 0x95, - 0x2d, 0x3e, 0x22, 0x98, 0x98, 0xd8, 0xb8, 0x28, 0x52, 0xe2, 0x58, 0x4e, 0x49, 0x14, 0x95, 0xcb, - 0x1d, 0xdb, 0x71, 0xd7, 0xec, 0xa6, 0xd1, 0xee, 0xba, 0xb6, 0x83, 0x60, 0x2d, 0x96, 0x6b, 0x5e, - 0x0f, 0xd3, 0xb2, 0x9b, 0xe1, 0xe0, 0x48, 0xdf, 0x58, 0xb1, 0x93, 0x78, 0x19, 0xff, 0x88, 0xf0, - 0x2e, 0x23, 0xe1, 0x4a, 0x2f, 0x45, 0x11, 0x72, 0xde, 0xaf, 0x4b, 0x4b, 0x76, 0xb0, 0x45, 0x6c, - 0xe7, 0x51, 0x88, 0xa8, 0x31, 0x2c, 0x95, 0x67, 0xc1, 0xac, 0xb6, 0x7b, 0x21, 0x28, 0xa4, 0xcb, - 0x1a, 0x21, 0x6f, 0x10, 0x8e, 0x28, 0x42, 0x05, 0x8f, 0x2d, 0x28, 0x82, 0xbf, 0x37, 0x82, 0xd9, - 0x2e, 0x9b, 0x8d, 0xe2, 0xcd, 0x27, 0x0a, 0x46, 0x12, 0x19, 0x5c, 0x6b, 0xfa, 0x0c, 0x7c, 0x4f, - 0x16, 0xcc, 0xd6, 0x3a, 0xc8, 0x42, 0x2d, 0xe2, 0x05, 0xc9, 0x31, 0xf0, 0xa1, 0x84, 0x0c, 0xe4, - 0x0a, 0x8a, 0x60, 0x60, 0xe8, 0xb1, 0xbc, 0xe4, 0x33, 0x2f, 0x4c, 0x48, 0xc4, 0xb8, 0xb8, 0xda, - 0xd2, 0x67, 0xdc, 0x97, 0xb2, 0x60, 0x5a, 0xdd, 0xb5, 0xea, 0x8e, 0xed, 0x8d, 0xc6, 0x0e, 0xbc, - 0x3b, 0xec, 0x20, 0x6e, 0x05, 0xc7, 0x5a, 0xbb, 0x0e, 0x5e, 0x7f, 0xaa, 0x58, 0x1a, 0x6a, 0xda, - 0x56, 0xab, 0x8b, 0xdb, 0x91, 0x57, 0xf7, 0x7f, 0xb8, 0x33, 0xf7, 0xe0, 0xdf, 0x4a, 0x19, 0xf8, - 0xb3, 0xc2, 0x61, 0x89, 0x48, 0xe3, 0x99, 0xaa, 0xc5, 0x7b, 0x02, 0xc1, 0xe0, 0x43, 0x83, 0x6a, - 0x48, 0x9f, 0xb9, 0x1f, 0xca, 0x02, 0xb9, 0xd4, 0x6c, 0xda, 0xbb, 0x96, 0xab, 0xa1, 0x36, 0x6a, - 0xba, 0xba, 0x63, 0x34, 0x11, 0x3c, 0x1a, 0xf0, 0x98, 0x72, 0xed, 0x21, 0xe1, 0xfd, 0x45, 0xd2, - 0xa6, 0xfd, 0x65, 0x26, 0x60, 0x9e, 0xd8, 0x2e, 0xa2, 0x60, 0x45, 0x63, 0xb8, 0x67, 0x27, 0x0b, - 0x72, 0x75, 0xd3, 0xda, 0x62, 0xa3, 0x35, 0x1d, 0xf7, 0x6c, 0x9d, 0x16, 0xba, 0x4c, 0xa5, 0x91, - 0xbc, 0xc8, 0xb7, 0x81, 0xe3, 0xd6, 0xee, 0xce, 0x05, 0xe4, 0xd4, 0x36, 0xf1, 0x48, 0xd0, 0xd5, - 0x6d, 0x0d, 0x59, 0xc4, 0x50, 0xca, 0xab, 0x7d, 0xbf, 0xf1, 0x66, 0x82, 0x80, 0x81, 0xeb, 0x51, - 0x12, 0xc1, 0xeb, 0x80, 0xa8, 0x2c, 0x43, 0x54, 0x22, 0xd3, 0xb6, 0x4f, 0xe1, 0xe9, 0xf3, 0xf7, - 0xeb, 0x59, 0x30, 0xb1, 0x8e, 0x5c, 0xc7, 0x6c, 0x76, 0xe1, 0x17, 0xbc, 0x61, 0x08, 0xb9, 0x75, - 0xc3, 0x31, 0x76, 0x90, 0x8b, 0x9c, 0x2e, 0x54, 0x42, 0xa6, 0x43, 0x30, 0xd9, 0x69, 0x1b, 0xee, - 0xa6, 0xed, 0xec, 0x50, 0x9b, 0x21, 0x78, 0xf7, 0xec, 0x83, 0x3d, 0xe4, 0x74, 0x43, 0xb2, 0xfc, - 0x57, 0x2a, 0xe0, 0xe2, 0xd6, 0x18, 0x25, 0x65, 0x81, 0x23, 0xe3, 0x40, 0xd6, 0x98, 0x48, 0x89, - 0x63, 0xb9, 0x4b, 0x46, 0x5a, 0xb3, 0xb7, 0xe0, 0x6b, 0x25, 0x90, 0xc3, 0x92, 0xf7, 0xd6, 0x0c, - 0x37, 0x85, 0xd8, 0x41, 0xdd, 0xae, 0xb1, 0x85, 0xfc, 0x29, 0x04, 0x7d, 0x95, 0xef, 0x00, 0xf9, - 0x36, 0xda, 0x43, 0x6d, 0x4c, 0xc6, 0xdc, 0x6d, 0x37, 0x70, 0x2d, 0x5b, 0xb3, 0xb7, 0x16, 0xbc, - 0xb2, 0x16, 0x68, 0x39, 0x0b, 0x6b, 0x5e, 0x56, 0x95, 0xfc, 0x71, 0xe6, 0x05, 0x20, 0x8f, 0xdf, - 0xe5, 0x29, 0x90, 0x5f, 0x52, 0x16, 0x37, 0x56, 0x8a, 0x47, 0xbc, 0x47, 0x9f, 0xbe, 0x29, 0x90, - 0x5f, 0x2e, 0xe9, 0xa5, 0xb5, 0x62, 0xd6, 0x6b, 0x47, 0xa5, 0xba, 0x5c, 0x2b, 0x4a, 0x5e, 0x62, - 0xbd, 0x54, 0xad, 0x94, 0x8b, 0x39, 0x79, 0x1a, 0x4c, 0x9c, 0x2f, 0xa9, 0xd5, 0x4a, 0x75, 0xa5, - 0x98, 0x87, 0x7f, 0xc3, 0xe2, 0x77, 0x27, 0x8f, 0xdf, 0x8d, 0x51, 0x34, 0xf5, 0x83, 0xec, 0x57, - 0x02, 0xc8, 0xee, 0xe6, 0x20, 0xfb, 0x01, 0x91, 0x42, 0xc6, 0x80, 0x52, 0x16, 0x4c, 0xd4, 0x1d, - 0xbb, 0x89, 0xba, 0x5d, 0xf8, 0x4b, 0x59, 0x50, 0x28, 0x1b, 0x56, 0x13, 0xb5, 0xe1, 0x35, 0x21, - 0x54, 0xc4, 0x17, 0x28, 0x13, 0x1c, 0x07, 0xf8, 0x07, 0x96, 0x33, 0xf7, 0xf2, 0x9c, 0xb9, 0x85, - 0x6b, 0x14, 0x2d, 0x77, 0x81, 0x94, 0x19, 0xc1, 0x9f, 0x47, 0x02, 0xfe, 0x94, 0x39, 0xfe, 0x9c, - 0x15, 0x2f, 0x2a, 0x7d, 0x2e, 0x7d, 0x3b, 0x03, 0x8e, 0xaf, 0x20, 0x0b, 0x39, 0x66, 0x93, 0x10, - 0xef, 0xb7, 0xff, 0x6e, 0xbe, 0xfd, 0x4f, 0xe5, 0x88, 0xee, 0xf7, 0x07, 0xdf, 0xf8, 0x87, 0x83, - 0xc6, 0xdf, 0xcb, 0x35, 0xfe, 0x56, 0xc1, 0x72, 0xc6, 0x70, 0x71, 0xec, 0x14, 0x98, 0xa9, 0xda, - 0xae, 0xb9, 0x69, 0x36, 0xc9, 0xc6, 0xf1, 0x6b, 0x24, 0x90, 0x5b, 0x33, 0xbb, 0x2e, 0x7b, 0x02, - 0xfd, 0x34, 0x98, 0x36, 0xad, 0x66, 0x7b, 0xb7, 0x85, 0x54, 0x64, 0x10, 0x59, 0x99, 0x54, 0xd9, - 0xa4, 0x70, 0x3d, 0xde, 0x23, 0x4b, 0xf2, 0xd7, 0xe3, 0x3f, 0x25, 0x6c, 0x3b, 0xb1, 0x24, 0xe0, - 0xf3, 0xdd, 0x11, 0x43, 0x52, 0x09, 0xcc, 0x5a, 0x4c, 0x56, 0xff, 0xc8, 0x79, 0x6f, 0xc4, 0x66, - 0xb6, 0x38, 0x95, 0xff, 0x03, 0xbe, 0x4f, 0xc8, 0xd4, 0x1a, 0x44, 0x50, 0x32, 0x64, 0x96, 0x93, - 0x23, 0x23, 0xcb, 0x60, 0xae, 0x52, 0xd5, 0x15, 0xb5, 0x5a, 0x5a, 0xa3, 0x59, 0x24, 0xf8, 0xdd, - 0x2c, 0xc8, 0xab, 0xa8, 0xd3, 0xbe, 0xc2, 0x86, 0xe4, 0xa4, 0xde, 0x5d, 0x99, 0xc0, 0xbb, 0x4b, - 0x5e, 0x06, 0xc0, 0x68, 0x7a, 0x15, 0xe3, 0xbb, 0x47, 0xb2, 0x7d, 0x03, 0xc5, 0x71, 0x0d, 0x2c, - 0x05, 0xb9, 0x55, 0xe6, 0x4f, 0xf8, 0x72, 0xe1, 0xe5, 0x1e, 0xae, 0x34, 0x4c, 0x61, 0x44, 0x77, - 0xf0, 0x7e, 0xa1, 0x15, 0x9a, 0x81, 0xc5, 0x1d, 0x0e, 0xfb, 0xbf, 0x92, 0x05, 0x39, 0xdd, 0x9b, - 0x7f, 0x31, 0x53, 0xb1, 0x4f, 0x0e, 0x27, 0xe3, 0x5e, 0x31, 0x11, 0x32, 0x7e, 0x0f, 0x98, 0x61, - 0x25, 0x96, 0xee, 0x6f, 0xc4, 0x8a, 0x38, 0xf7, 0xc3, 0x30, 0x12, 0xde, 0x87, 0x9c, 0xc3, 0x61, - 0xf1, 0x57, 0x6f, 0x01, 0x60, 0x1d, 0x79, 0x76, 0x6d, 0x77, 0xdb, 0xec, 0xc0, 0xff, 0x26, 0x81, - 0xa9, 0x15, 0xe4, 0x6a, 0xae, 0xe1, 0xee, 0x76, 0x7b, 0xd6, 0x28, 0x2d, 0xbb, 0x6c, 0x34, 0xb7, - 0x11, 0xed, 0x8e, 0xfc, 0x57, 0xf8, 0x6e, 0x49, 0x74, 0x13, 0x30, 0xac, 0x67, 0x21, 0xa8, 0x23, - 0x02, 0x93, 0xa7, 0x83, 0x5c, 0xcb, 0x70, 0x0d, 0x8a, 0xc5, 0x35, 0x3d, 0x58, 0x84, 0x05, 0xa9, - 0x38, 0x1b, 0xfc, 0xad, 0xac, 0xc8, 0x2e, 0xa0, 0x40, 0xfd, 0xc9, 0x40, 0x78, 0x5f, 0x66, 0x08, - 0x14, 0x8e, 0x81, 0xd9, 0x6a, 0x4d, 0x6f, 0xac, 0xd5, 0x56, 0x56, 0x14, 0x2f, 0xb5, 0x28, 0xc9, - 0x27, 0x81, 0x5c, 0x2f, 0xdd, 0xbf, 0xae, 0x54, 0xf5, 0x46, 0xb5, 0xb6, 0xa4, 0xd0, 0x3f, 0x73, - 0xf2, 0x51, 0x30, 0x5d, 0x2e, 0x95, 0x57, 0xfd, 0x84, 0xbc, 0x3c, 0x0f, 0x8e, 0xaf, 0x2b, 0xeb, - 0x8b, 0x8a, 0xaa, 0xad, 0x56, 0xea, 0x0d, 0xaf, 0x98, 0xe5, 0xda, 0x46, 0x75, 0xa9, 0x58, 0x90, - 0x21, 0x38, 0xc9, 0x7c, 0x39, 0xaf, 0xd6, 0xaa, 0x2b, 0x0d, 0x4d, 0x2f, 0xe9, 0x4a, 0x71, 0x42, - 0xbe, 0x0a, 0x1c, 0x2d, 0x97, 0xaa, 0x38, 0x7b, 0xb9, 0x56, 0xad, 0x2a, 0x65, 0xbd, 0x38, 0x09, - 0xff, 0x35, 0x07, 0xa6, 0x2b, 0xdd, 0xaa, 0xb1, 0x83, 0xce, 0x19, 0x6d, 0xb3, 0x05, 0x7f, 0x96, - 0xb1, 0x26, 0x6f, 0x04, 0xb3, 0x0e, 0x79, 0x44, 0x2d, 0xdd, 0x44, 0x04, 0xcd, 0x59, 0x95, 0x4f, - 0x94, 0x4f, 0x82, 0x82, 0x85, 0x0b, 0xa0, 0xac, 0xa1, 0x6f, 0xf2, 0x22, 0x00, 0xe4, 0x49, 0x0f, - 0x6f, 0xc1, 0x3b, 0xd3, 0xab, 0x4d, 0xc6, 0x0e, 0xea, 0x22, 0x67, 0xcf, 0x6c, 0x22, 0x3f, 0xa7, - 0xca, 0xfc, 0x05, 0xbf, 0x2a, 0x89, 0x2e, 0x0a, 0x32, 0xa0, 0x32, 0xcd, 0x89, 0xe8, 0x0d, 0x7f, - 0x46, 0x12, 0x59, 0xd2, 0x13, 0x2a, 0x32, 0x99, 0xa4, 0xbc, 0x32, 0x3b, 0x84, 0xa4, 0xcc, 0x82, - 0x29, 0xbd, 0x56, 0x6b, 0x68, 0xab, 0x35, 0x55, 0x2f, 0x4a, 0xf2, 0x0c, 0x98, 0xf4, 0x5e, 0xd7, - 0x6a, 0xd5, 0x95, 0x62, 0x4e, 0x3e, 0x01, 0x8e, 0xad, 0x96, 0xb4, 0x46, 0xa5, 0x7a, 0xae, 0xb4, - 0x56, 0x59, 0x6a, 0x94, 0x57, 0x4b, 0xaa, 0x56, 0xcc, 0xcb, 0xd7, 0x80, 0x13, 0x7a, 0x45, 0x51, - 0x1b, 0xcb, 0x4a, 0x49, 0xdf, 0x50, 0x15, 0xad, 0x51, 0xad, 0x35, 0xaa, 0xa5, 0x75, 0xa5, 0x58, - 0xf0, 0xd4, 0x1f, 0x7f, 0x0a, 0xc5, 0x66, 0x62, 0xbf, 0x30, 0x4e, 0x46, 0x08, 0xe3, 0x54, 0xaf, - 0x30, 0x02, 0x56, 0xac, 0x54, 0x45, 0x53, 0xd4, 0x73, 0x4a, 0x71, 0xba, 0x9f, 0xac, 0xcd, 0xc8, - 0xc7, 0x41, 0xd1, 0xa3, 0xa1, 0x51, 0xd1, 0xfc, 0x9c, 0x4b, 0xc5, 0x59, 0xf8, 0xb1, 0x02, 0x38, - 0xa9, 0xa2, 0x2d, 0xb3, 0xeb, 0x22, 0xa7, 0x6e, 0x5c, 0xd9, 0x41, 0x96, 0xeb, 0x77, 0xf2, 0xff, - 0x3b, 0xb1, 0x30, 0xae, 0x83, 0xd9, 0x0e, 0x29, 0x63, 0x1d, 0xb9, 0xdb, 0x76, 0x8b, 0x8e, 0xc2, - 0x4f, 0x8d, 0xec, 0x39, 0x16, 0xea, 0x6c, 0x76, 0x95, 0xff, 0x9b, 0x91, 0x6d, 0x29, 0x46, 0xb6, - 0x73, 0xc3, 0xc8, 0xb6, 0x7c, 0x1d, 0x98, 0xda, 0xed, 0x22, 0x47, 0xd9, 0x31, 0xcc, 0xb6, 0x7f, - 0x8b, 0x59, 0x90, 0x00, 0xdf, 0x91, 0x13, 0x75, 0x33, 0x65, 0xda, 0xd2, 0x9f, 0x8d, 0x11, 0x7d, - 0xeb, 0x29, 0x00, 0x68, 0x63, 0x37, 0x9c, 0x36, 0x15, 0x56, 0x26, 0xc5, 0xa3, 0xef, 0x82, 0xd9, - 0x6e, 0x9b, 0xd6, 0x56, 0xb0, 0x58, 0x1f, 0x26, 0xc0, 0x57, 0x4a, 0x22, 0x6e, 0xa7, 0x49, 0x69, - 0x4b, 0xa6, 0x4d, 0x2f, 0xcf, 0x8e, 0xb9, 0xdf, 0xdd, 0xaf, 0x3a, 0x05, 0xb9, 0x08, 0x66, 0x70, - 0x1a, 0xd5, 0xc0, 0xe2, 0x84, 0xd7, 0x07, 0xfb, 0xc5, 0xad, 0x2b, 0xfa, 0x6a, 0x6d, 0x29, 0xf8, - 0x36, 0xe9, 0x15, 0xe9, 0x11, 0x53, 0xaa, 0xde, 0x8f, 0xb5, 0x71, 0x4a, 0x7e, 0x12, 0xb8, 0x86, - 0xe9, 0xb0, 0x4b, 0x6b, 0xaa, 0x52, 0x5a, 0xba, 0xbf, 0xa1, 0xbc, 0xb0, 0xa2, 0xe9, 0x1a, 0xaf, - 0x5c, 0xbe, 0x1e, 0x4d, 0x7b, 0xf4, 0x2a, 0xeb, 0xa5, 0xca, 0x1a, 0xed, 0xdf, 0x97, 0x6b, 0xea, - 0x7a, 0x49, 0x2f, 0xce, 0xc0, 0xd7, 0x4a, 0xa0, 0xb8, 0x82, 0xdc, 0xba, 0xed, 0xb8, 0x46, 0x7b, - 0xcd, 0xb4, 0x2e, 0x6e, 0x38, 0x6d, 0xd6, 0x66, 0xfa, 0x17, 0xe1, 0xb3, 0xb5, 0xfc, 0x10, 0xc9, - 0x15, 0x18, 0xbd, 0x8c, 0xdd, 0xc1, 0xd9, 0x42, 0x61, 0x0a, 0x13, 0xe0, 0x8b, 0xb3, 0x22, 0x67, - 0x69, 0xc5, 0x6b, 0x4d, 0x26, 0x27, 0x2f, 0x19, 0xf7, 0xf8, 0xdc, 0x07, 0xb5, 0x02, 0x7c, 0x30, - 0x07, 0x26, 0x97, 0x4d, 0xcb, 0x68, 0x9b, 0x2f, 0xe2, 0x02, 0xc4, 0x85, 0x7d, 0x4c, 0x26, 0xa6, - 0x8f, 0xc9, 0x0e, 0x35, 0x7e, 0xfe, 0xa2, 0x24, 0xba, 0x61, 0xc1, 0xf0, 0xde, 0x27, 0x32, 0x62, - 0xf0, 0xfc, 0xfd, 0xac, 0xc8, 0x96, 0xc4, 0xe0, 0xf2, 0x92, 0x61, 0xf8, 0x89, 0xef, 0x0f, 0x1b, - 0xab, 0x47, 0xbf, 0x27, 0xfb, 0x89, 0xc2, 0x14, 0xfc, 0x9c, 0x04, 0xe0, 0x0a, 0x72, 0xcf, 0x21, - 0x27, 0x98, 0x0a, 0xe0, 0x5e, 0x9f, 0xda, 0xdb, 0x8c, 0xca, 0xbe, 0x95, 0x05, 0xf0, 0x3c, 0x0f, - 0x60, 0x29, 0x46, 0x79, 0x22, 0x8a, 0x8e, 0x50, 0xde, 0x0a, 0x28, 0x74, 0xf1, 0x77, 0x2a, 0x66, - 0xcf, 0x8c, 0x1e, 0x2e, 0x71, 0x61, 0x6c, 0xe9, 0xa4, 0x60, 0x95, 0x16, 0x00, 0xbf, 0x13, 0x4c, - 0x82, 0x7e, 0x98, 0x93, 0x8e, 0xe5, 0x03, 0x13, 0x9b, 0x4c, 0x5e, 0x9c, 0x74, 0xc5, 0xa5, 0x9f, - 0x7d, 0x03, 0xbf, 0x98, 0x03, 0xc7, 0xfb, 0x35, 0x87, 0xbd, 0x47, 0xee, 0x38, 0xc8, 0x23, 0x3c, - 0xe2, 0x13, 0x65, 0x27, 0x2f, 0xf2, 0xb3, 0xc0, 0x09, 0xba, 0x61, 0x7a, 0x01, 0xe9, 0x76, 0x15, - 0x5d, 0xea, 0xb6, 0x91, 0xeb, 0x22, 0x07, 0xb7, 0x6c, 0x52, 0xed, 0xff, 0x11, 0xfe, 0x9d, 0x24, - 0xea, 0x9a, 0x3e, 0x80, 0xdf, 0x11, 0x9a, 0xfe, 0xd3, 0x92, 0x88, 0xb3, 0x79, 0xb2, 0xb2, 0x93, - 0xa1, 0xf8, 0xb2, 0x71, 0x8f, 0xf0, 0xfd, 0x87, 0x56, 0xac, 0xf3, 0x24, 0xdd, 0x1f, 0xa1, 0xcf, - 0x29, 0x6a, 0x65, 0xb9, 0xa2, 0x78, 0xe3, 0xfd, 0x09, 0x70, 0x2c, 0xfc, 0xb6, 0x74, 0x7f, 0x43, - 0x53, 0xaa, 0x7a, 0x71, 0xd2, 0xeb, 0x40, 0x48, 0xf2, 0x72, 0xa9, 0xb2, 0xa6, 0x2c, 0x35, 0xf4, - 0x9a, 0xf7, 0x65, 0x69, 0xb8, 0x31, 0x1f, 0xbe, 0x34, 0x07, 0x8e, 0x62, 0xde, 0x5e, 0xc1, 0x5c, - 0xf5, 0x98, 0xd2, 0xe3, 0xb9, 0x12, 0x00, 0x34, 0x45, 0xd8, 0x0b, 0x3f, 0x23, 0x7c, 0x47, 0x18, - 0x03, 0x61, 0x4f, 0x1d, 0x11, 0x92, 0xf1, 0xed, 0xac, 0xc8, 0x79, 0x4f, 0xe1, 0x62, 0x93, 0x09, - 0xc5, 0x3f, 0x8f, 0x7b, 0x28, 0x88, 0x06, 0x1f, 0x9b, 0x7f, 0x65, 0xfc, 0xf3, 0x0b, 0xeb, 0x15, - 0x15, 0x8b, 0xc3, 0x1c, 0x00, 0x38, 0x05, 0x4b, 0x10, 0x91, 0x83, 0xbe, 0x03, 0x49, 0x94, 0x1c, - 0x94, 0xca, 0x7a, 0xe5, 0x9c, 0x12, 0x25, 0x07, 0x9f, 0x96, 0xc0, 0xe4, 0x0a, 0x72, 0xbd, 0xc9, - 0x4e, 0x17, 0x3e, 0x4f, 0x60, 0x61, 0xc6, 0xb3, 0x2f, 0xf0, 0xe5, 0xc8, 0xc1, 0xfc, 0x9c, 0xbc, - 0xc1, 0x9f, 0x1a, 0xc6, 0x36, 0xf0, 0xab, 0x8e, 0x18, 0x48, 0x9e, 0x03, 0xf2, 0xae, 0xf7, 0x99, - 0xae, 0x0f, 0x3f, 0x39, 0x72, 0x1c, 0xf1, 0x0a, 0x59, 0x32, 0x5c, 0x43, 0x25, 0xf9, 0x99, 0x61, - 0x43, 0xd0, 0xa8, 0x88, 0x20, 0xe4, 0xfb, 0xd1, 0x30, 0xfc, 0x1b, 0x09, 0x9c, 0x20, 0xfa, 0x51, - 0xea, 0x74, 0x34, 0xd7, 0x76, 0x90, 0x8a, 0x9a, 0xc8, 0xec, 0xb8, 0x3d, 0x0b, 0x6f, 0x0e, 0x49, - 0xf5, 0x77, 0xf6, 0xe8, 0x2b, 0x7c, 0xb3, 0x24, 0x1a, 0xd1, 0x70, 0x9f, 0x3e, 0xf6, 0xd4, 0x17, - 0xa1, 0xec, 0x8f, 0x67, 0x45, 0x62, 0x14, 0x26, 0x2c, 0x3c, 0x19, 0x50, 0x1f, 0x3e, 0x04, 0xa0, - 0xfc, 0x25, 0x15, 0x55, 0x29, 0x2b, 0x95, 0xba, 0x37, 0x08, 0x5c, 0x0f, 0xae, 0xad, 0x6f, 0xa8, - 0xe5, 0xd5, 0x92, 0xa6, 0x34, 0x54, 0x65, 0xa5, 0xa2, 0xe9, 0x6a, 0x49, 0xaf, 0xd4, 0x7c, 0x02, - 0x26, 0xe4, 0xeb, 0xc0, 0xbc, 0xb6, 0xb1, 0xa8, 0x95, 0xd5, 0x4a, 0x1d, 0xa7, 0xab, 0x4a, 0x55, - 0x39, 0x4f, 0xbf, 0x4e, 0xc2, 0x0f, 0x16, 0xc1, 0xb4, 0x67, 0x99, 0x6b, 0xc4, 0x60, 0x87, 0xdf, - 0xcc, 0x81, 0x69, 0x15, 0x75, 0xed, 0xf6, 0x1e, 0x36, 0xde, 0xc7, 0x35, 0x27, 0xf8, 0x96, 0x24, - 0x7a, 0x1a, 0x8a, 0x21, 0x76, 0x81, 0x21, 0x34, 0x7a, 0x06, 0x68, 0xf8, 0xd1, 0x81, 0xa9, 0xdd, - 0x12, 0x26, 0xc8, 0x0b, 0x40, 0xb6, 0x2f, 0x59, 0xc8, 0xd1, 0x9a, 0x97, 0x14, 0x77, 0xbb, 0xd4, - 0x6a, 0x39, 0xa8, 0xdb, 0xa5, 0xcb, 0x0a, 0x7d, 0xbe, 0xc8, 0x37, 0x83, 0xa3, 0x38, 0x95, 0xc9, - 0x4c, 0x8e, 0x6e, 0xf6, 0x26, 0x07, 0x39, 0x4b, 0xd6, 0x15, 0x3f, 0x67, 0x9e, 0xc9, 0x19, 0x26, - 0xb3, 0xce, 0x87, 0x05, 0xde, 0xe7, 0xf5, 0x34, 0x98, 0xb6, 0x8c, 0x1d, 0xa4, 0x5c, 0xee, 0x98, - 0x0e, 0xea, 0xce, 0x4f, 0xe0, 0xdd, 0x34, 0x36, 0x09, 0xfe, 0xbe, 0xd0, 0xe9, 0x2d, 0x31, 0x8e, - 0x25, 0x93, 0xfd, 0x95, 0x21, 0x44, 0xbf, 0x4f, 0x3f, 0x23, 0xc1, 0x0f, 0x4a, 0x60, 0x86, 0x12, - 0x55, 0xb2, 0xae, 0x54, 0x5a, 0xf0, 0x7a, 0xce, 0x2c, 0x35, 0xbc, 0x34, 0xdf, 0x2c, 0xc5, 0x2f, - 0xf0, 0xe7, 0x24, 0x51, 0x77, 0xa2, 0x3e, 0x0d, 0xc7, 0x75, 0x44, 0xbb, 0xb8, 0x6c, 0xda, 0xbb, - 0xd4, 0xa5, 0x66, 0x52, 0x25, 0x2f, 0x69, 0xae, 0xb6, 0xc1, 0x0f, 0x09, 0x39, 0x2b, 0x09, 0x36, - 0xe3, 0x90, 0x00, 0xfc, 0xb8, 0x04, 0xe6, 0x28, 0x55, 0x1a, 0xf5, 0x9a, 0x15, 0x72, 0x1f, 0xff, - 0x79, 0x61, 0x43, 0xb0, 0x4f, 0xfb, 0x69, 0x4d, 0x4f, 0x18, 0x20, 0x3f, 0x22, 0x14, 0x6a, 0x44, - 0xb8, 0x21, 0x87, 0x04, 0xe5, 0x3b, 0x73, 0x60, 0x7a, 0xa3, 0x8b, 0x1c, 0xea, 0x17, 0x07, 0x1f, - 0xc9, 0x01, 0x69, 0x05, 0x71, 0x3b, 0x9c, 0xaf, 0xc8, 0x89, 0xae, 0xd6, 0xb1, 0x8d, 0x65, 0x0a, - 0xf5, 0x6c, 0xa4, 0x08, 0xd8, 0x6e, 0x02, 0x73, 0x84, 0xa5, 0x25, 0xd7, 0xf5, 0x8c, 0x44, 0xff, - 0x10, 0x40, 0x4f, 0xea, 0x28, 0xf6, 0x70, 0x70, 0x5d, 0x5e, 0x96, 0xb2, 0x47, 0xd3, 0x1a, 0xda, - 0x24, 0x81, 0xa8, 0x72, 0x6a, 0x4f, 0x2a, 0xbe, 0xb8, 0xb9, 0x83, 0x88, 0x37, 0x28, 0x93, 0x39, - 0x8f, 0x33, 0xf7, 0xfb, 0x04, 0xbf, 0x29, 0x14, 0xa1, 0x4f, 0x9c, 0x3b, 0xc9, 0x64, 0xa1, 0x33, - 0x1a, 0x93, 0xe4, 0x38, 0x28, 0x7a, 0x39, 0xf0, 0xc6, 0x88, 0xaa, 0x68, 0xb5, 0xb5, 0x73, 0x4a, - 0xff, 0xf5, 0x85, 0x3c, 0x7c, 0x99, 0x04, 0xa6, 0x16, 0x1d, 0xdb, 0x68, 0x35, 0x8d, 0xae, 0x0b, - 0xbf, 0x93, 0x05, 0x33, 0x75, 0xe3, 0x4a, 0xdb, 0x36, 0x5a, 0xd8, 0x13, 0xb1, 0xa7, 0x2f, 0xe8, - 0x90, 0x4f, 0x7e, 0x5f, 0x40, 0x5f, 0x79, 0x37, 0xfb, 0xc0, 0x11, 0x3e, 0x23, 0x72, 0x95, 0x58, - 0xb0, 0xff, 0x96, 0xed, 0x17, 0xfa, 0xcb, 0xa7, 0x6b, 0x81, 0xa5, 0x29, 0xc2, 0xa2, 0xfc, 0xa0, - 0x58, 0x30, 0x2f, 0x91, 0x22, 0x0f, 0x67, 0xbb, 0xfc, 0xc1, 0x49, 0x50, 0x58, 0x42, 0xd8, 0x8a, - 0xfb, 0xed, 0x2c, 0x98, 0xa0, 0x97, 0xe9, 0xc3, 0x3b, 0x38, 0x27, 0xc7, 0x16, 0xce, 0x10, 0x74, - 0xc7, 0xc1, 0xbb, 0x37, 0x59, 0x67, 0x4e, 0x2f, 0xe1, 0xe7, 0x04, 0xee, 0x5f, 0xa4, 0xde, 0x88, - 0x0b, 0xfc, 0x93, 0xb9, 0x7f, 0xc5, 0x16, 0x95, 0xbe, 0x13, 0xd4, 0xbb, 0xb3, 0xd4, 0xe7, 0x89, - 0xe9, 0xf5, 0x7e, 0x95, 0x95, 0xcf, 0x58, 0x37, 0x30, 0x4a, 0x7c, 0x8c, 0xd7, 0xd2, 0xed, 0x60, - 0x82, 0xf0, 0xdc, 0x9f, 0x8f, 0xf6, 0x3a, 0x10, 0x90, 0x22, 0xf0, 0x49, 0x26, 0x3f, 0xa7, 0xa0, - 0xef, 0x58, 0x74, 0xe5, 0x63, 0x39, 0xd1, 0x37, 0x53, 0x45, 0xee, 0x25, 0xdb, 0xb9, 0xa8, 0xb9, - 0x86, 0x8b, 0xe0, 0x3f, 0x67, 0x81, 0xa4, 0x21, 0x97, 0x3d, 0x4b, 0x5c, 0x05, 0xc7, 0x48, 0x83, - 0x68, 0x46, 0xdc, 0x7f, 0x93, 0x86, 0x9c, 0xee, 0xcb, 0x04, 0x26, 0x9f, 0xba, 0xff, 0x57, 0xf8, - 0x4b, 0x7d, 0x43, 0x28, 0x64, 0xfb, 0x4c, 0x1a, 0x28, 0x67, 0x58, 0x02, 0x3d, 0x01, 0x8b, 0x90, - 0xd3, 0xdf, 0x13, 0x32, 0xab, 0xc5, 0xca, 0x3c, 0x94, 0xae, 0xe0, 0xcc, 0x04, 0xc8, 0x2b, 0x3b, - 0x1d, 0xf7, 0xca, 0x99, 0xa7, 0x80, 0x59, 0xcd, 0x75, 0x90, 0xb1, 0xc3, 0xd8, 0xd4, 0xae, 0x7d, - 0x11, 0x59, 0xbe, 0x4d, 0x8d, 0x5f, 0xee, 0xbc, 0x03, 0x4c, 0x58, 0x76, 0xc3, 0xd8, 0x75, 0xb7, - 0xe5, 0xeb, 0xf7, 0x5d, 0x7a, 0xbf, 0x4e, 0xbc, 0x75, 0x6b, 0xf4, 0x2c, 0xcd, 0x57, 0xef, 0xc2, - 0x56, 0x55, 0xc1, 0xb2, 0x4b, 0xbb, 0xee, 0xf6, 0xe2, 0x75, 0x1f, 0xff, 0xeb, 0x53, 0x99, 0x4f, - 0xff, 0xf5, 0xa9, 0xcc, 0x57, 0xfe, 0xfa, 0x54, 0xe6, 0xe7, 0xbf, 0x76, 0xea, 0xc8, 0xa7, 0xbf, - 0x76, 0xea, 0xc8, 0x17, 0xbe, 0x76, 0xea, 0xc8, 0x0f, 0x67, 0x3b, 0x17, 0x2e, 0x14, 0x70, 0x29, - 0xb7, 0xff, 0xbf, 0x01, 0x00, 0x00, 0xff, 0xff, 0xac, 0x60, 0xd7, 0xce, 0xb4, 0xdd, 0x01, 0x00, + // 18026 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0xfd, 0x7d, 0x9c, 0x24, 0x49, + 0x59, 0x2f, 0x8a, 0x4f, 0x55, 0x56, 0x55, 0x77, 0x47, 0xbf, 0x4c, 0x4d, 0xee, 0xcc, 0x6c, 0x6f, + 0xec, 0x32, 0xbb, 0xcc, 0x2e, 0xcb, 0xba, 0x2c, 0x3d, 0xb0, 0x0b, 0xc2, 0x2e, 0xbb, 0xec, 0x56, + 0x57, 0x67, 0x77, 0x17, 0xdb, 0x5d, 0xd5, 0x66, 0x65, 0xcf, 0xb0, 0xfa, 0xf3, 0x57, 0x27, 0xa7, + 0x2a, 0xba, 0x3b, 0x77, 0xaa, 0x33, 0xcb, 0xac, 0xec, 0x9e, 0x19, 0xee, 0xe7, 0xdc, 0x23, 0x22, + 0xb2, 0xbe, 0x70, 0x10, 0x91, 0xa3, 0x80, 0x80, 0x80, 0xe0, 0x01, 0x05, 0xe4, 0x5d, 0x10, 0x51, + 0xde, 0x04, 0x11, 0x11, 0x41, 0x14, 0x50, 0x3e, 0x82, 0x20, 0x07, 0xcf, 0x3d, 0x1c, 0xaf, 0x7e, + 0x8e, 0x70, 0x50, 0xb8, 0xde, 0x4f, 0xbc, 0x64, 0x66, 0x44, 0x75, 0x65, 0x56, 0x64, 0x75, 0x65, + 0xf5, 0xa2, 0xf7, 0xbf, 0xcc, 0xc8, 0xc8, 0x88, 0x27, 0x9e, 0xef, 0xf3, 0x44, 0x3c, 0x11, 0xf1, + 0xc4, 0x13, 0x60, 0xbe, 0x73, 0xf1, 0x5c, 0xc7, 0x75, 0x3c, 0xa7, 0x7b, 0xae, 0xe9, 0xec, 0xee, + 0x9a, 0x76, 0xab, 0xbb, 0x40, 0xde, 0xd5, 0x09, 0xd3, 0xbe, 0xea, 0x5d, 0xed, 0x20, 0x78, 0x4b, + 0xe7, 0xd2, 0xf6, 0xb9, 0xb6, 0x75, 0xf1, 0x5c, 0xe7, 0xe2, 0xb9, 0x5d, 0xa7, 0x85, 0xda, 0xfe, + 0x0f, 0xe4, 0x85, 0x65, 0x87, 0xb7, 0x45, 0xe5, 0x6a, 0x3b, 0x4d, 0xb3, 0xdd, 0xf5, 0x1c, 0x17, + 0xb1, 0x9c, 0xa7, 0xc3, 0x2a, 0xd1, 0x3e, 0xb2, 0x3d, 0xbf, 0x84, 0x1b, 0xb6, 0x1d, 0x67, 0xbb, + 0x8d, 0xe8, 0xb7, 0x8b, 0x7b, 0x5b, 0xe7, 0xba, 0x9e, 0xbb, 0xd7, 0xf4, 0xd8, 0xd7, 0x9b, 0x7a, + 0xbf, 0xb6, 0x50, 0xb7, 0xe9, 0x5a, 0x1d, 0xcf, 0x71, 0x69, 0x8e, 0xb3, 0x5f, 0xfb, 0xed, 0x09, + 0xa0, 0xe8, 0x9d, 0x26, 0xfc, 0xd6, 0x04, 0x50, 0x4a, 0x9d, 0x0e, 0xfc, 0x68, 0x16, 0x80, 0x15, + 0xe4, 0x9d, 0x47, 0x6e, 0xd7, 0x72, 0x6c, 0x78, 0x1c, 0x4c, 0xe8, 0xe8, 0xc7, 0xf6, 0x50, 0xd7, + 0xbb, 0x27, 0xf7, 0xc8, 0xd7, 0x95, 0x0c, 0x7c, 0x7d, 0x16, 0x4c, 0xea, 0xa8, 0xdb, 0x71, 0xec, + 0x2e, 0x52, 0x1f, 0x00, 0x79, 0xe4, 0xba, 0x8e, 0x3b, 0x9f, 0xb9, 0x29, 0x73, 0xdb, 0xf4, 0x9d, + 0xb7, 0x2f, 0xb0, 0xe6, 0x2f, 0xe8, 0x9d, 0xe6, 0x42, 0xa9, 0xd3, 0x59, 0x08, 0x4b, 0x5a, 0xf0, + 0x7f, 0x5a, 0xd0, 0xf0, 0x1f, 0x3a, 0xfd, 0x51, 0x9d, 0x07, 0x13, 0xfb, 0x34, 0xc3, 0x7c, 0xf6, + 0xa6, 0xcc, 0x6d, 0x53, 0xba, 0xff, 0x8a, 0xbf, 0xb4, 0x90, 0x67, 0x5a, 0xed, 0xee, 0xbc, 0x42, + 0xbf, 0xb0, 0x57, 0xf8, 0xda, 0x0c, 0xc8, 0x93, 0x42, 0xd4, 0x32, 0xc8, 0x35, 0x9d, 0x16, 0x22, + 0xd5, 0xcf, 0xdd, 0x79, 0x4e, 0xbe, 0xfa, 0x85, 0xb2, 0xd3, 0x42, 0x3a, 0xf9, 0x59, 0xbd, 0x09, + 0x4c, 0xfb, 0x6c, 0x09, 0xc9, 0xe0, 0x93, 0xce, 0xde, 0x09, 0x72, 0x38, 0xbf, 0x3a, 0x09, 0x72, + 0xd5, 0xcd, 0xb5, 0xb5, 0xe2, 0x31, 0xf5, 0x04, 0x98, 0xdd, 0xac, 0x3e, 0x58, 0xad, 0x5d, 0xa8, + 0x36, 0x34, 0x5d, 0xaf, 0xe9, 0xc5, 0x8c, 0x3a, 0x0b, 0xa6, 0x16, 0x4b, 0x4b, 0x8d, 0x4a, 0x75, + 0x63, 0xd3, 0x28, 0x66, 0xe1, 0xab, 0x14, 0x30, 0x57, 0x47, 0xde, 0x12, 0xda, 0xb7, 0x9a, 0xa8, + 0xee, 0x99, 0x1e, 0x82, 0x2f, 0xca, 0x04, 0xcc, 0x54, 0x37, 0x71, 0xa5, 0xc1, 0x27, 0xd6, 0x80, + 0xbb, 0x0e, 0x34, 0x40, 0x2c, 0x61, 0x81, 0xfd, 0xbd, 0xc0, 0xa5, 0xe9, 0x7c, 0x39, 0x67, 0x9f, + 0x08, 0xa6, 0xb9, 0x6f, 0xea, 0x1c, 0x00, 0x8b, 0xa5, 0xf2, 0x83, 0x2b, 0x7a, 0x6d, 0xb3, 0xba, + 0x54, 0x3c, 0x86, 0xdf, 0x97, 0x6b, 0xba, 0xc6, 0xde, 0x33, 0xf0, 0x3b, 0x19, 0x0e, 0xcc, 0x25, + 0x11, 0xcc, 0x85, 0xc1, 0xc4, 0xf4, 0x01, 0x14, 0xbe, 0x21, 0x00, 0x67, 0x45, 0x00, 0xe7, 0xae, + 0x64, 0xc5, 0xa5, 0x0f, 0xd0, 0xf3, 0xb3, 0x60, 0xb2, 0xbe, 0xb3, 0xe7, 0xb5, 0x9c, 0xcb, 0x36, + 0x9c, 0x0a, 0x90, 0x81, 0xdf, 0xe4, 0x79, 0xf2, 0x4c, 0x91, 0x27, 0xb7, 0x1d, 0x6c, 0x04, 0x2b, + 0x21, 0x82, 0x1b, 0xbf, 0x1a, 0x70, 0xa3, 0x24, 0x70, 0xe3, 0x89, 0xb2, 0x05, 0xa5, 0xcf, 0x87, + 0x9f, 0xbf, 0x0b, 0xe4, 0xeb, 0x1d, 0xb3, 0x89, 0xe0, 0x27, 0x15, 0x30, 0xb3, 0x86, 0xcc, 0x7d, + 0x54, 0xea, 0x74, 0x5c, 0x67, 0x1f, 0xc1, 0x72, 0x28, 0xaf, 0xf3, 0x60, 0xa2, 0x8b, 0x33, 0x55, + 0x5a, 0xa4, 0x05, 0x53, 0xba, 0xff, 0xaa, 0x9e, 0x01, 0xc0, 0x6a, 0x21, 0xdb, 0xb3, 0x3c, 0x0b, + 0x75, 0xe7, 0xb3, 0x37, 0x29, 0xb7, 0x4d, 0xe9, 0x5c, 0x0a, 0xfc, 0x56, 0x56, 0x56, 0xc6, 0x08, + 0x15, 0x0b, 0x3c, 0x05, 0x11, 0x5c, 0x7d, 0x5d, 0x56, 0x46, 0xc6, 0x06, 0x16, 0x97, 0x8c, 0xb7, + 0x6f, 0xc9, 0x24, 0x67, 0x2e, 0xce, 0x51, 0xad, 0x35, 0xea, 0x9b, 0xe5, 0xd5, 0x46, 0x7d, 0xa3, + 0x54, 0xd6, 0x8a, 0x48, 0x3d, 0x09, 0x8a, 0xe4, 0xb1, 0x51, 0xa9, 0x37, 0x96, 0xb4, 0x35, 0xcd, + 0xd0, 0x96, 0x8a, 0x5b, 0xaa, 0x0a, 0xe6, 0x74, 0xed, 0x87, 0x36, 0xb5, 0xba, 0xd1, 0x58, 0x2e, + 0x55, 0xd6, 0xb4, 0xa5, 0xe2, 0x36, 0xfe, 0x79, 0xad, 0xb2, 0x5e, 0x31, 0x1a, 0xba, 0x56, 0x2a, + 0xaf, 0x6a, 0x4b, 0xc5, 0x1d, 0xf5, 0x5a, 0x70, 0x4d, 0xb5, 0xd6, 0x28, 0x6d, 0x6c, 0xe8, 0xb5, + 0xf3, 0x5a, 0x83, 0xfd, 0x51, 0x2f, 0x5a, 0xb4, 0x22, 0xa3, 0x51, 0x5f, 0x2d, 0xe9, 0x5a, 0x69, + 0x71, 0x4d, 0x2b, 0x3e, 0x0c, 0x9f, 0xa7, 0x80, 0xd9, 0x75, 0xf3, 0x12, 0xaa, 0xef, 0x98, 0x2e, + 0x32, 0x2f, 0xb6, 0x11, 0xbc, 0x59, 0x02, 0x4f, 0xf8, 0x49, 0x1e, 0x2f, 0x4d, 0xc4, 0xeb, 0x5c, + 0x1f, 0x06, 0x0b, 0x55, 0x44, 0x00, 0xf6, 0xbf, 0x03, 0x35, 0x58, 0x15, 0x00, 0x7b, 0x4a, 0xc2, + 0xf2, 0x92, 0x21, 0xf6, 0x13, 0x8f, 0x02, 0xc4, 0xe0, 0x97, 0x14, 0x30, 0x57, 0xb1, 0xf7, 0x2d, + 0x0f, 0xad, 0x20, 0x1b, 0xb9, 0x78, 0x1c, 0x90, 0x82, 0xe1, 0xf5, 0x0a, 0x07, 0xc3, 0xb2, 0x08, + 0xc3, 0x93, 0xfa, 0xb0, 0x4d, 0xac, 0x23, 0x62, 0xb4, 0xbd, 0x01, 0x4c, 0x59, 0x24, 0x5f, 0xd9, + 0x6a, 0x31, 0x8e, 0x85, 0x09, 0xea, 0x2d, 0x60, 0x96, 0xbe, 0x2c, 0x5b, 0x6d, 0xf4, 0x20, 0xba, + 0xca, 0xc6, 0x5d, 0x31, 0x11, 0xfe, 0x5c, 0xa0, 0x7c, 0x15, 0x01, 0xcb, 0xa7, 0x26, 0x25, 0x2a, + 0x19, 0x98, 0x2f, 0x7d, 0x34, 0xa8, 0xdf, 0x01, 0x2d, 0xb3, 0xe0, 0xf7, 0xb2, 0x60, 0xba, 0xee, + 0x39, 0x1d, 0x2c, 0xb2, 0x96, 0xbd, 0x2d, 0x07, 0xee, 0xc7, 0x79, 0x1d, 0x2b, 0x8b, 0xe0, 0x3e, + 0xb1, 0x0f, 0x1f, 0xb9, 0x0a, 0x22, 0x34, 0xec, 0x5b, 0x81, 0x86, 0x2d, 0x0b, 0xa8, 0xdc, 0x99, + 0xa8, 0xb4, 0xef, 0x43, 0xfd, 0x7a, 0xa9, 0x02, 0x8a, 0xbe, 0x98, 0x79, 0xe5, 0x3d, 0xd7, 0x45, + 0xb6, 0x27, 0x07, 0xc2, 0x5f, 0xf2, 0x20, 0xac, 0x8a, 0x20, 0xdc, 0x19, 0x23, 0xcc, 0x7e, 0x2d, + 0x29, 0xea, 0xd8, 0xef, 0x07, 0x68, 0x3e, 0x28, 0xa0, 0xf9, 0xb4, 0xe4, 0x64, 0x25, 0x83, 0x74, + 0x75, 0x08, 0x44, 0x4f, 0x82, 0x22, 0x1e, 0x93, 0xca, 0x46, 0xe5, 0xbc, 0xd6, 0xa8, 0x54, 0xcf, + 0x57, 0x0c, 0xad, 0x88, 0xe0, 0x4b, 0x14, 0x30, 0x43, 0x49, 0xd3, 0xd1, 0xbe, 0x73, 0x49, 0xb2, + 0xd7, 0xfb, 0x52, 0x42, 0x63, 0x81, 0xaf, 0x21, 0x42, 0x33, 0x7e, 0x26, 0x81, 0xb1, 0x10, 0x53, + 0xdc, 0xa3, 0xa9, 0xb7, 0x3a, 0xa0, 0x06, 0xdb, 0x7d, 0xb4, 0xa5, 0x6f, 0x6f, 0xf5, 0xd2, 0x1c, + 0x00, 0xb4, 0x91, 0xe7, 0x2d, 0x74, 0x19, 0xae, 0x87, 0x98, 0x08, 0x62, 0x9b, 0x19, 0x28, 0xb6, + 0xd9, 0x7e, 0x62, 0xfb, 0x1e, 0x7e, 0xcc, 0x5a, 0x14, 0xd1, 0xbb, 0x23, 0x92, 0xdd, 0x98, 0x92, + 0xe8, 0xd9, 0xa1, 0x2f, 0x28, 0x59, 0xd1, 0xea, 0xbc, 0x01, 0x4c, 0x91, 0xc7, 0xaa, 0xb9, 0x8b, + 0x98, 0x0e, 0x85, 0x09, 0xea, 0x59, 0x30, 0x43, 0x33, 0x36, 0x1d, 0x1b, 0xb7, 0x27, 0x47, 0x32, + 0x08, 0x69, 0x18, 0xc4, 0xa6, 0x8b, 0x4c, 0xcf, 0x71, 0x49, 0x19, 0x79, 0x0a, 0x22, 0x97, 0x04, + 0xbf, 0x11, 0x68, 0xa1, 0x26, 0x48, 0xce, 0x93, 0x93, 0x34, 0x25, 0x99, 0xdc, 0xec, 0x0f, 0xa7, + 0x7f, 0x54, 0xeb, 0x1a, 0x18, 0xed, 0x65, 0x32, 0xb5, 0x43, 0xea, 0x69, 0xa0, 0xb2, 0x54, 0x9c, + 0xb7, 0x5c, 0xab, 0x1a, 0x5a, 0xd5, 0x28, 0x6e, 0xf5, 0x95, 0xa8, 0x6d, 0xf8, 0xba, 0x1c, 0xc8, + 0x3d, 0xcb, 0xb1, 0x6c, 0xf8, 0xfc, 0x8c, 0x20, 0x12, 0x36, 0xf2, 0x2e, 0x3b, 0xee, 0xa5, 0x40, + 0x51, 0xc3, 0x84, 0x78, 0x6c, 0x42, 0x51, 0x52, 0x06, 0x8a, 0x52, 0xae, 0x9f, 0x28, 0xfd, 0x02, + 0x2f, 0x4a, 0xf7, 0x8a, 0xa2, 0x74, 0x6b, 0x1f, 0xfe, 0x63, 0xe2, 0x23, 0x3a, 0x80, 0x8f, 0x05, + 0x1d, 0xc0, 0xfd, 0x02, 0x8c, 0x4f, 0x90, 0x2b, 0x26, 0x19, 0x80, 0x5f, 0x4c, 0x55, 0xf1, 0xfb, + 0x41, 0xbd, 0x1d, 0x01, 0xf5, 0x4e, 0x9f, 0x3e, 0xc1, 0x3a, 0xd8, 0x75, 0x3c, 0x7c, 0xb0, 0x9b, + 0xb8, 0xa4, 0x9e, 0x02, 0x27, 0x96, 0x2a, 0xcb, 0xcb, 0x9a, 0xae, 0x55, 0x8d, 0x46, 0x55, 0x33, + 0x2e, 0xd4, 0xf4, 0x07, 0x8b, 0x6d, 0xf8, 0x5a, 0x05, 0x00, 0xcc, 0xa1, 0xb2, 0x69, 0x37, 0x51, + 0x5b, 0xae, 0x47, 0xff, 0x9f, 0xd9, 0x64, 0x7d, 0x42, 0x58, 0x7e, 0x04, 0x9c, 0xaf, 0xcc, 0xca, + 0x6b, 0x65, 0x64, 0x61, 0xc9, 0x40, 0x7d, 0xd3, 0xa3, 0xc1, 0xf6, 0xbc, 0x06, 0x1c, 0xf7, 0xcb, + 0x63, 0xd9, 0xfb, 0x4f, 0xfb, 0xde, 0x9a, 0x03, 0x73, 0x0c, 0x16, 0x7f, 0x1e, 0xff, 0x48, 0x46, + 0x66, 0x22, 0x0f, 0xc1, 0x24, 0x9b, 0xb6, 0xfb, 0xdd, 0x7b, 0xf0, 0xae, 0xae, 0x80, 0xe9, 0x0e, + 0x72, 0x77, 0xad, 0x6e, 0xd7, 0x72, 0x6c, 0xba, 0x20, 0x37, 0x77, 0xe7, 0xe3, 0x02, 0x8e, 0x93, + 0xb5, 0xcb, 0x85, 0x0d, 0xd3, 0xf5, 0xac, 0xa6, 0xd5, 0x31, 0x6d, 0x6f, 0x23, 0xcc, 0xac, 0xf3, + 0x7f, 0xc2, 0x17, 0x27, 0x9c, 0xd6, 0x88, 0x2d, 0x89, 0x10, 0x89, 0xf7, 0x27, 0x98, 0x92, 0xc4, + 0x16, 0x98, 0x4c, 0x2c, 0x3e, 0x9a, 0xaa, 0x58, 0xf4, 0xc1, 0x7b, 0x5b, 0xbd, 0x0e, 0x9c, 0xaa, + 0x54, 0xcb, 0x35, 0x5d, 0xd7, 0xca, 0x46, 0x63, 0x43, 0xd3, 0xd7, 0x2b, 0xf5, 0x7a, 0xa5, 0x56, + 0xad, 0x1f, 0x46, 0xdb, 0xe1, 0x27, 0x94, 0x40, 0x62, 0x96, 0x50, 0xb3, 0x6d, 0xd9, 0x08, 0xde, + 0x7f, 0x48, 0x81, 0x11, 0x57, 0x7d, 0xe4, 0x71, 0x66, 0xf5, 0x47, 0xe0, 0xfc, 0x9a, 0xe4, 0x38, + 0xf7, 0x2f, 0xf0, 0xdf, 0xb0, 0xfa, 0x7f, 0x49, 0x01, 0x27, 0x38, 0x45, 0xd4, 0xd1, 0xee, 0xc8, + 0x56, 0xf2, 0x7e, 0x82, 0xd7, 0xdd, 0x8a, 0x88, 0x69, 0x3f, 0x6b, 0xfa, 0x00, 0x19, 0x11, 0xb0, + 0xbe, 0x29, 0x80, 0x75, 0x4d, 0x80, 0xf5, 0xe9, 0x43, 0x94, 0x99, 0x0c, 0xd9, 0xdf, 0x4a, 0x15, + 0xd9, 0xeb, 0xc0, 0xa9, 0x8d, 0x92, 0x6e, 0x54, 0xca, 0x95, 0x8d, 0x12, 0x1e, 0x47, 0xb9, 0x21, + 0x3b, 0xc2, 0x5c, 0x17, 0x41, 0xef, 0x8b, 0xef, 0xef, 0xe5, 0xc0, 0x0d, 0xfd, 0x3b, 0xda, 0xf2, + 0x8e, 0x69, 0x6f, 0x23, 0x68, 0xc9, 0x40, 0xbd, 0x04, 0x26, 0x9a, 0x24, 0x3b, 0xc5, 0x99, 0xdf, + 0xba, 0x89, 0xe9, 0xcb, 0x69, 0x0d, 0xba, 0xff, 0x2b, 0x7c, 0x07, 0x2f, 0x10, 0x86, 0x28, 0x10, + 0xcf, 0x8c, 0x07, 0xef, 0x00, 0xdd, 0x11, 0xb2, 0xf1, 0xe9, 0x40, 0x36, 0x2e, 0x08, 0xb2, 0x51, + 0x3e, 0x5c, 0xf1, 0xc9, 0xc4, 0xe4, 0x8f, 0x1e, 0x0d, 0x1d, 0x40, 0xa4, 0x34, 0x59, 0xd1, 0xa3, + 0x42, 0xdf, 0xee, 0xfe, 0xd5, 0x0a, 0x28, 0x2c, 0xa1, 0x36, 0x92, 0x5d, 0x89, 0xfc, 0xfb, 0xac, + 0xec, 0x86, 0x08, 0x85, 0x81, 0x96, 0x1d, 0xbd, 0x3a, 0xe2, 0x59, 0xbb, 0xa8, 0xeb, 0x99, 0xbb, + 0x1d, 0xc2, 0x6a, 0x45, 0x0f, 0x13, 0xe0, 0x4f, 0x66, 0x65, 0xb6, 0x4b, 0x62, 0xaa, 0xf9, 0xb7, + 0xb1, 0xa6, 0xf8, 0xd5, 0x39, 0x50, 0xb8, 0x60, 0xb6, 0xdb, 0xc8, 0x83, 0x5f, 0xcb, 0x82, 0x42, + 0x19, 0xcf, 0x49, 0x11, 0x7c, 0x42, 0x08, 0x16, 0x04, 0x93, 0xae, 0xe3, 0x78, 0x1b, 0xa6, 0xb7, + 0xc3, 0xd0, 0x0a, 0xde, 0xd9, 0x36, 0xed, 0x6f, 0xf2, 0xa0, 0xdd, 0x2f, 0x82, 0xf6, 0x03, 0x02, + 0x37, 0x69, 0x45, 0x0b, 0xb4, 0x92, 0x08, 0xd4, 0x20, 0x98, 0xdc, 0xb5, 0xd1, 0xae, 0x63, 0x5b, + 0x4d, 0x7f, 0xa4, 0xf7, 0xdf, 0xe1, 0x87, 0x82, 0x59, 0xf2, 0xa2, 0x80, 0xd9, 0x82, 0x74, 0x2d, + 0xc9, 0x40, 0xab, 0x0f, 0x81, 0xd9, 0x8d, 0xe0, 0x7a, 0x0a, 0x41, 0xc3, 0xa8, 0x35, 0xca, 0xba, + 0x56, 0x32, 0xb4, 0xc6, 0x5a, 0xad, 0x5c, 0x5a, 0x6b, 0xe8, 0xda, 0x46, 0xad, 0x88, 0xe0, 0x7f, + 0xcb, 0x62, 0xe6, 0x36, 0x9d, 0x7d, 0xe4, 0xc2, 0x15, 0x29, 0x3e, 0xc7, 0xf1, 0x84, 0x61, 0xf0, + 0x0b, 0xd2, 0x5b, 0xe5, 0x8c, 0x3b, 0x8c, 0x82, 0x88, 0xae, 0xf0, 0xc3, 0x52, 0xdb, 0xde, 0xb1, + 0x45, 0x3d, 0x0a, 0x38, 0xfd, 0xbf, 0xb2, 0x60, 0xa2, 0xec, 0xd8, 0xfb, 0xc8, 0xf5, 0x78, 0x2b, + 0x93, 0xe7, 0x66, 0x46, 0xe4, 0x26, 0xee, 0x9a, 0x90, 0xed, 0xb9, 0x4e, 0xc7, 0x37, 0x33, 0xfd, + 0x57, 0xf8, 0xeb, 0x49, 0x39, 0xcc, 0x6a, 0x8e, 0x5e, 0x6e, 0xea, 0x5f, 0x91, 0x40, 0x9e, 0xd2, + 0xa3, 0x00, 0xaf, 0x4d, 0x82, 0x4b, 0x7f, 0x02, 0xd2, 0xdf, 0xe5, 0xfd, 0xb2, 0x02, 0x66, 0xa9, + 0xf2, 0xd5, 0x11, 0x19, 0x17, 0x61, 0x8d, 0x5f, 0xe8, 0xe9, 0x61, 0xfe, 0xea, 0x31, 0x81, 0xfd, + 0x05, 0xb3, 0xd3, 0x09, 0x16, 0xfd, 0x56, 0x8f, 0xe9, 0xec, 0x9d, 0x8a, 0xf9, 0x62, 0x01, 0xe4, + 0xcc, 0x3d, 0x6f, 0x07, 0x7e, 0x4f, 0xda, 0xe4, 0x17, 0x3a, 0x03, 0x46, 0x4f, 0x04, 0x24, 0x27, + 0x41, 0xde, 0x73, 0x2e, 0x21, 0x9f, 0x0f, 0xf4, 0x05, 0xc3, 0x61, 0x76, 0x3a, 0x06, 0xf9, 0xc0, + 0xe0, 0xf0, 0xdf, 0xf1, 0x08, 0x63, 0x36, 0x9b, 0xce, 0x9e, 0xed, 0x55, 0xfc, 0x85, 0xbf, 0x30, + 0x01, 0x7e, 0x3e, 0x23, 0x33, 0x85, 0x90, 0x20, 0x30, 0x19, 0x64, 0x17, 0x87, 0x50, 0xa5, 0x05, + 0x70, 0x7b, 0x69, 0x63, 0xa3, 0x61, 0xd4, 0x1e, 0xd4, 0xaa, 0xe1, 0x70, 0xdf, 0xa8, 0x54, 0x1b, + 0xc6, 0xaa, 0xd6, 0x28, 0x6f, 0xea, 0x64, 0x75, 0xa6, 0x54, 0x2e, 0xd7, 0x36, 0xab, 0x46, 0x11, + 0xc1, 0x37, 0x67, 0xc1, 0x4c, 0xb9, 0xed, 0x74, 0x03, 0x84, 0x6f, 0x0c, 0x11, 0x0e, 0xd8, 0x98, + 0xe1, 0xd8, 0x08, 0xff, 0x25, 0x23, 0xbb, 0xd5, 0xeb, 0x33, 0x84, 0x2b, 0x3e, 0xa2, 0x97, 0xfa, + 0x75, 0xa9, 0xad, 0xde, 0xc1, 0xe5, 0xa5, 0xaf, 0x12, 0x9f, 0xbd, 0x07, 0x4c, 0x94, 0xa8, 0x60, + 0xc0, 0xbf, 0xce, 0x80, 0x42, 0xd9, 0xb1, 0xb7, 0xac, 0x6d, 0xf5, 0x56, 0x30, 0x87, 0x6c, 0xf3, + 0x62, 0x1b, 0x2d, 0x99, 0x9e, 0xb9, 0x6f, 0xa1, 0xcb, 0xa4, 0x01, 0x93, 0x7a, 0x4f, 0x2a, 0x26, + 0x8a, 0xa5, 0xa0, 0x8b, 0x7b, 0xdb, 0x84, 0xa8, 0x49, 0x9d, 0x4f, 0x52, 0x9f, 0x0e, 0xae, 0xa5, + 0xaf, 0x1b, 0x2e, 0x72, 0x51, 0x1b, 0x99, 0x5d, 0x84, 0x8d, 0x51, 0x1b, 0xb5, 0x89, 0xd0, 0x4e, + 0xea, 0x51, 0x9f, 0xd5, 0xb3, 0x60, 0x86, 0x7e, 0x22, 0xa6, 0x4e, 0x97, 0x88, 0xf1, 0xa4, 0x2e, + 0xa4, 0xa9, 0x4f, 0x04, 0x79, 0x74, 0xc5, 0x73, 0xcd, 0xf9, 0x16, 0xc1, 0xeb, 0xda, 0x05, 0xea, + 0xeb, 0xb5, 0xe0, 0xfb, 0x7a, 0x2d, 0xd4, 0x89, 0x27, 0x98, 0x4e, 0x73, 0xc1, 0x5f, 0x99, 0x0c, + 0x0c, 0x89, 0x7f, 0xcd, 0x86, 0x82, 0xa1, 0x82, 0x9c, 0x6d, 0xee, 0x22, 0x26, 0x17, 0xe4, 0x59, + 0xbd, 0x1d, 0x1c, 0x37, 0xf7, 0x4d, 0xcf, 0x74, 0xd7, 0x9c, 0xa6, 0xd9, 0x26, 0x83, 0x9f, 0xaf, + 0xf9, 0xbd, 0x1f, 0xc8, 0x3a, 0xbc, 0xe7, 0xb8, 0x88, 0xe4, 0xf2, 0xd7, 0xe1, 0xfd, 0x04, 0x5c, + 0xba, 0xd5, 0x74, 0x6c, 0x42, 0xbf, 0xa2, 0x93, 0x67, 0xcc, 0x95, 0x96, 0xd5, 0xc5, 0x0d, 0x21, + 0xa5, 0x54, 0xe9, 0x82, 0x72, 0xfd, 0xaa, 0xdd, 0x24, 0x6b, 0xf0, 0x93, 0x7a, 0xd4, 0x67, 0x75, + 0x11, 0x4c, 0xb3, 0xe5, 0xe7, 0x75, 0x2c, 0x57, 0x05, 0x22, 0x57, 0x37, 0x89, 0x9e, 0x34, 0x14, + 0xcf, 0x85, 0x6a, 0x98, 0x4f, 0xe7, 0x7f, 0x52, 0x1f, 0x00, 0xd7, 0xb3, 0xd7, 0xf2, 0x5e, 0xd7, + 0x73, 0x76, 0x29, 0xe8, 0xcb, 0x56, 0x9b, 0xb6, 0x60, 0x82, 0xb4, 0x20, 0x2e, 0x8b, 0x7a, 0x27, + 0x38, 0xd9, 0x71, 0xd1, 0x16, 0x72, 0x1f, 0x32, 0x77, 0xf7, 0xae, 0x18, 0xae, 0x69, 0x77, 0x3b, + 0x8e, 0xeb, 0xcd, 0x4f, 0x12, 0xe2, 0xfb, 0x7e, 0x63, 0x1d, 0xe5, 0x24, 0x28, 0x50, 0xf6, 0xc1, + 0x17, 0xe5, 0xa5, 0x9d, 0xe8, 0x58, 0x83, 0x62, 0xcd, 0xb3, 0x27, 0x81, 0x09, 0xd6, 0xc3, 0x11, + 0xa0, 0xa6, 0xef, 0x3c, 0xdd, 0x33, 0x9b, 0x63, 0xa5, 0xe8, 0x7e, 0x36, 0xf5, 0x2e, 0x50, 0x68, + 0x92, 0x66, 0x11, 0xcc, 0xa6, 0xef, 0xbc, 0xbe, 0x7f, 0xa5, 0x24, 0x8b, 0xce, 0xb2, 0xc2, 0x2f, + 0x28, 0x52, 0x7e, 0x77, 0x71, 0x14, 0x27, 0xd3, 0xea, 0x6f, 0x64, 0x87, 0xe8, 0x36, 0xef, 0x00, + 0xb7, 0xb1, 0x3e, 0x91, 0xd9, 0x1f, 0x4b, 0x8d, 0xc5, 0x4d, 0xdf, 0x04, 0xc7, 0x56, 0x49, 0xdd, + 0x28, 0xe9, 0x78, 0xfe, 0xb4, 0x84, 0x4d, 0xf7, 0xdb, 0xc1, 0xad, 0x03, 0x72, 0x6b, 0x46, 0xa3, + 0x5a, 0x5a, 0xd7, 0x8a, 0x5b, 0xa2, 0x6d, 0x53, 0x37, 0x6a, 0x1b, 0x0d, 0x7d, 0xb3, 0x5a, 0xad, + 0x54, 0x57, 0x68, 0x61, 0xd8, 0x24, 0x3c, 0x1d, 0x66, 0xb8, 0xa0, 0x57, 0x0c, 0xad, 0x51, 0xae, + 0x55, 0x97, 0x2b, 0x2b, 0x45, 0x6b, 0x90, 0x61, 0xf4, 0xb0, 0x7a, 0x13, 0xb8, 0x41, 0xa0, 0xa4, + 0x52, 0xab, 0xe2, 0xf9, 0x44, 0xb9, 0x54, 0x2d, 0x6b, 0x78, 0xf2, 0x70, 0x49, 0x85, 0xe0, 0x14, + 0x2d, 0xae, 0xb1, 0x5c, 0x59, 0xe3, 0xb7, 0x00, 0x3e, 0x9e, 0x51, 0xe7, 0xc1, 0x35, 0xfc, 0xb7, + 0x4a, 0xf5, 0x7c, 0x69, 0xad, 0xb2, 0x54, 0xfc, 0xc3, 0x8c, 0x7a, 0x0b, 0xb8, 0x51, 0xf8, 0x8b, + 0xae, 0xe6, 0x37, 0x2a, 0x4b, 0x8d, 0xf5, 0x4a, 0x7d, 0xbd, 0x64, 0x94, 0x57, 0x8b, 0x9f, 0x20, + 0xf3, 0x85, 0xc0, 0x00, 0xe6, 0x9c, 0xe1, 0x5e, 0xca, 0x8f, 0xe9, 0x25, 0x51, 0x50, 0x9f, 0xd0, + 0x17, 0xf6, 0x78, 0x1b, 0xf6, 0xa3, 0xc1, 0xe8, 0xb0, 0x24, 0x88, 0xd0, 0x93, 0x12, 0x94, 0x95, + 0x4c, 0x86, 0x8c, 0x21, 0x44, 0xe8, 0x26, 0x70, 0x43, 0x55, 0xa3, 0x48, 0xe9, 0x5a, 0xb9, 0x76, + 0x5e, 0xd3, 0x1b, 0x17, 0x4a, 0x6b, 0x6b, 0x9a, 0xd1, 0x58, 0xae, 0xe8, 0x75, 0xa3, 0xb8, 0x05, + 0xff, 0x29, 0x1b, 0xcc, 0xa1, 0x39, 0x6e, 0xfd, 0x75, 0x36, 0xa9, 0x5a, 0xc7, 0xce, 0x95, 0x9f, + 0x0a, 0x0a, 0x5d, 0xcf, 0xf4, 0xf6, 0xba, 0x4c, 0xab, 0x1f, 0xd3, 0x5f, 0xab, 0x17, 0xea, 0x24, + 0x93, 0xce, 0x32, 0xc3, 0x2f, 0x64, 0x92, 0xa8, 0xe9, 0x08, 0xa6, 0xd1, 0xd6, 0x10, 0x2c, 0x3e, + 0x03, 0xa0, 0x2f, 0xed, 0x95, 0x7a, 0xa3, 0xb4, 0xa6, 0x6b, 0xa5, 0xa5, 0x87, 0x82, 0xc9, 0x33, + 0x52, 0x4f, 0x81, 0x13, 0x9b, 0x55, 0x3c, 0x1d, 0x26, 0xea, 0x52, 0xab, 0x56, 0xb5, 0x32, 0xe6, + 0xfb, 0x4f, 0x92, 0xa5, 0x6a, 0x6c, 0x41, 0x13, 0xba, 0xb1, 0x95, 0xc3, 0xf1, 0xff, 0xeb, 0xd2, + 0x1e, 0x1d, 0xa1, 0x84, 0xf1, 0x65, 0x8d, 0x16, 0x87, 0xcf, 0x4b, 0x39, 0x71, 0x48, 0x51, 0x92, + 0x0c, 0x8f, 0xff, 0x30, 0x04, 0x1e, 0xa7, 0xc0, 0x09, 0x1e, 0x0f, 0xe2, 0xcc, 0x11, 0x0d, 0xc3, + 0x57, 0x26, 0x41, 0xa1, 0x8e, 0xda, 0xa8, 0xe9, 0xc1, 0xb7, 0x72, 0xc6, 0xc4, 0x1c, 0xc8, 0x06, + 0xce, 0x03, 0x59, 0xab, 0x25, 0x4c, 0x9f, 0xb3, 0x3d, 0xd3, 0xe7, 0x18, 0x33, 0x40, 0x49, 0x64, + 0x06, 0xe4, 0x52, 0x30, 0x03, 0xf2, 0xc3, 0x9b, 0x01, 0x85, 0x41, 0x66, 0x00, 0xfc, 0xb5, 0x42, + 0xd2, 0x5e, 0x82, 0xb2, 0xfa, 0x68, 0x07, 0xff, 0xff, 0x99, 0x4b, 0xd2, 0xab, 0xf4, 0xa5, 0x38, + 0x99, 0x14, 0x7f, 0x4f, 0x49, 0x61, 0xf9, 0x41, 0xbd, 0x19, 0xdc, 0x18, 0xbe, 0x37, 0xb4, 0x67, + 0x57, 0xea, 0x46, 0x9d, 0x8c, 0xf8, 0xe5, 0x9a, 0xae, 0x6f, 0x6e, 0xd0, 0x95, 0xbb, 0xd3, 0x40, + 0x0d, 0x4b, 0xd1, 0x37, 0xab, 0x74, 0x7c, 0xdf, 0x16, 0x4b, 0x5f, 0xae, 0x54, 0x97, 0x1a, 0x81, + 0xce, 0x54, 0x97, 0x6b, 0xc5, 0x1d, 0x3c, 0x65, 0xe3, 0x4a, 0xc7, 0x03, 0x34, 0xab, 0xa1, 0x54, + 0x5d, 0x6a, 0xac, 0x57, 0xb5, 0xf5, 0x5a, 0xb5, 0x52, 0x26, 0xe9, 0x75, 0xcd, 0x28, 0x5a, 0x78, + 0xa0, 0xe9, 0xb1, 0x28, 0xea, 0x5a, 0x49, 0x2f, 0xaf, 0x6a, 0x3a, 0xad, 0xf2, 0x61, 0xf5, 0x56, + 0x70, 0xb6, 0x54, 0xad, 0x19, 0x38, 0xa5, 0x54, 0x7d, 0xc8, 0x78, 0x68, 0x43, 0x6b, 0x6c, 0xe8, + 0xb5, 0xb2, 0x56, 0xaf, 0x63, 0x3d, 0x65, 0xf6, 0x47, 0xb1, 0xad, 0x3e, 0x13, 0xdc, 0xc3, 0x91, + 0xa6, 0x19, 0x64, 0x9b, 0x68, 0xbd, 0x46, 0x3c, 0x05, 0x96, 0xb4, 0xc6, 0x6a, 0xa9, 0xde, 0xa8, + 0x54, 0xcb, 0xb5, 0xf5, 0x8d, 0x92, 0x51, 0xc1, 0xea, 0xbc, 0xa1, 0xd7, 0x8c, 0x5a, 0xe3, 0xbc, + 0xa6, 0xd7, 0x2b, 0xb5, 0x6a, 0xd1, 0xc6, 0x4d, 0xe6, 0xf4, 0xdf, 0xef, 0x87, 0x1d, 0xf5, 0x06, + 0x30, 0xef, 0xa7, 0xaf, 0xd5, 0x30, 0xa3, 0x39, 0x8b, 0xa4, 0x93, 0xaa, 0x45, 0xf2, 0xcf, 0x59, + 0x90, 0xab, 0x7b, 0x4e, 0x07, 0xfe, 0x40, 0xd8, 0xc1, 0x9c, 0x01, 0xc0, 0x25, 0xbb, 0x3e, 0x78, + 0x16, 0xc6, 0xe6, 0x65, 0x5c, 0x0a, 0xfc, 0x03, 0xe9, 0xa5, 0xea, 0xb0, 0xcf, 0x76, 0x3a, 0x11, + 0xb6, 0xca, 0x77, 0xe4, 0x7c, 0xf7, 0xa3, 0x0b, 0x4a, 0x26, 0xef, 0x3f, 0x33, 0xcc, 0x62, 0x34, + 0x04, 0xa7, 0x39, 0xd8, 0x30, 0xff, 0x7d, 0x91, 0x40, 0xea, 0xb5, 0xe0, 0x9a, 0x1e, 0xe1, 0x22, + 0x32, 0xb5, 0xa5, 0x3e, 0x16, 0x3c, 0x86, 0x13, 0x6f, 0x6d, 0xbd, 0x76, 0x5e, 0x0b, 0x04, 0x79, + 0xa9, 0x64, 0x94, 0x8a, 0xdb, 0xf0, 0xb3, 0x0a, 0xc8, 0xad, 0x3b, 0xfb, 0xbd, 0x3b, 0x04, 0x36, + 0xba, 0xcc, 0xad, 0x85, 0xfa, 0xaf, 0xa2, 0xaf, 0xb2, 0x14, 0xdb, 0xd7, 0xa3, 0x77, 0x03, 0x3f, + 0x9f, 0x4d, 0xc2, 0xf6, 0xf5, 0xc3, 0x6e, 0x01, 0xfe, 0xdd, 0x30, 0x6c, 0x8f, 0x60, 0x2d, 0x52, + 0xcf, 0x82, 0x33, 0xe1, 0x87, 0xca, 0x92, 0x56, 0x35, 0x2a, 0xcb, 0x0f, 0x85, 0xcc, 0xad, 0xe8, + 0x52, 0xec, 0x1f, 0xd4, 0x8d, 0xc5, 0xcf, 0x34, 0xe6, 0xc1, 0xc9, 0xf0, 0xdb, 0x8a, 0x66, 0xf8, + 0x5f, 0x1e, 0x86, 0xcf, 0xcf, 0x83, 0x19, 0xda, 0xad, 0x6f, 0x76, 0x5a, 0xa6, 0x87, 0xe0, 0x5d, + 0x21, 0xba, 0xb7, 0x81, 0xe3, 0x95, 0x8d, 0xe5, 0x7a, 0xdd, 0x73, 0x5c, 0x73, 0x1b, 0x95, 0x5a, + 0x2d, 0x97, 0x71, 0xab, 0x37, 0x19, 0xbe, 0x4b, 0x7a, 0x9d, 0x4f, 0x1c, 0x4a, 0x68, 0x9d, 0x11, + 0xa8, 0x7f, 0x59, 0x6a, 0x5d, 0x4e, 0xa2, 0xc0, 0x64, 0xe8, 0x3f, 0x3c, 0x62, 0x9d, 0x8b, 0xc6, + 0x65, 0xeb, 0xec, 0x0b, 0xb2, 0x60, 0xca, 0xb0, 0x76, 0xd1, 0x73, 0x1c, 0x1b, 0x75, 0xd5, 0x09, + 0xa0, 0xac, 0xac, 0x1b, 0xc5, 0x63, 0xf8, 0x01, 0x1b, 0x55, 0x19, 0xf2, 0xa0, 0xe1, 0x0a, 0xf0, + 0x43, 0xc9, 0x28, 0x2a, 0xf8, 0x61, 0x5d, 0x33, 0x8a, 0x39, 0xfc, 0x50, 0xd5, 0x8c, 0x62, 0x1e, + 0x3f, 0x6c, 0xac, 0x19, 0xc5, 0x02, 0x7e, 0xa8, 0xd4, 0x8d, 0xe2, 0x04, 0x7e, 0x58, 0xac, 0x1b, + 0xc5, 0x49, 0xfc, 0x70, 0xbe, 0x6e, 0x14, 0xa7, 0xf0, 0x43, 0xd9, 0x30, 0x8a, 0x00, 0x3f, 0x3c, + 0xab, 0x6e, 0x14, 0xa7, 0xf1, 0x43, 0xa9, 0x6c, 0x14, 0x67, 0xc8, 0x83, 0x66, 0x14, 0x67, 0xf1, + 0x43, 0xbd, 0x6e, 0x14, 0xe7, 0x48, 0xc9, 0x75, 0xa3, 0x78, 0x9c, 0xd4, 0x55, 0x31, 0x8a, 0x45, + 0xfc, 0xb0, 0x5a, 0x37, 0x8a, 0x27, 0x48, 0xe6, 0xba, 0x51, 0x54, 0x49, 0xa5, 0x75, 0xa3, 0x78, + 0x0d, 0xc9, 0x53, 0x37, 0x8a, 0x27, 0x49, 0x15, 0x75, 0xa3, 0x78, 0x8a, 0x90, 0xa1, 0x19, 0xc5, + 0xd3, 0x24, 0x8f, 0x6e, 0x14, 0xaf, 0x25, 0x9f, 0xaa, 0x46, 0x71, 0x9e, 0x10, 0xa6, 0x19, 0xc5, + 0xeb, 0xc8, 0x83, 0x6e, 0x14, 0x21, 0xf9, 0x54, 0x32, 0x8a, 0xd7, 0xc3, 0xc7, 0x80, 0xa9, 0x15, + 0xe4, 0x51, 0x10, 0x61, 0x11, 0x28, 0x2b, 0xc8, 0xe3, 0xcd, 0xf8, 0xaf, 0x2a, 0xe0, 0x5a, 0x36, + 0xf5, 0x5b, 0x76, 0x9d, 0xdd, 0x35, 0xb4, 0x6d, 0x36, 0xaf, 0x6a, 0x57, 0xb0, 0x09, 0x05, 0xeb, + 0xc2, 0xd2, 0x55, 0x27, 0xec, 0x8c, 0xc8, 0x73, 0xac, 0xc5, 0xe9, 0x2f, 0x46, 0x29, 0xe1, 0x62, + 0x14, 0xb3, 0xc8, 0xfe, 0x91, 0x97, 0x68, 0x61, 0xfd, 0x38, 0xd3, 0xb3, 0x7e, 0x8c, 0xd5, 0xa4, + 0x83, 0xdc, 0xae, 0x63, 0x9b, 0xed, 0x3a, 0xdb, 0x2e, 0xa5, 0xab, 0x5e, 0xbd, 0xc9, 0xea, 0x0f, + 0xf9, 0x9a, 0x41, 0xad, 0xb2, 0x67, 0xc4, 0xcd, 0x70, 0x7b, 0x9b, 0x19, 0xa1, 0x24, 0x9f, 0x08, + 0x94, 0xc4, 0x10, 0x94, 0xe4, 0x81, 0x43, 0x94, 0x9d, 0x4c, 0x5f, 0x2a, 0xc3, 0x4d, 0x2d, 0x42, + 0x67, 0x42, 0x7f, 0xb9, 0x5a, 0x81, 0x9f, 0xcd, 0x82, 0xd3, 0x9a, 0xdd, 0xcf, 0xc2, 0xe7, 0x65, + 0xe1, 0xcd, 0x3c, 0x34, 0x1b, 0x22, 0x4b, 0xef, 0xe9, 0xdb, 0xec, 0xfe, 0x65, 0x46, 0x70, 0xf4, + 0x53, 0x01, 0x47, 0xeb, 0x02, 0x47, 0xef, 0x1f, 0xbe, 0xe8, 0x64, 0x0c, 0xad, 0x8e, 0xb4, 0x03, + 0xca, 0xc1, 0x6f, 0xe4, 0xc0, 0x63, 0xa8, 0xc7, 0x03, 0xa3, 0x90, 0x6a, 0x59, 0xc9, 0x6e, 0xe9, + 0xa8, 0xeb, 0x99, 0xae, 0x27, 0x9c, 0x42, 0xed, 0x99, 0x4a, 0x65, 0x52, 0x98, 0x4a, 0x65, 0x07, + 0x4e, 0xa5, 0xe0, 0x3b, 0x79, 0xf3, 0xe1, 0x82, 0x88, 0x71, 0xa9, 0x7f, 0xff, 0x1f, 0xd7, 0xc2, + 0x28, 0xa8, 0x03, 0xbb, 0xe2, 0x87, 0x05, 0xa8, 0x97, 0x0f, 0x5d, 0x43, 0x32, 0xc4, 0xff, 0x60, + 0xb4, 0x76, 0x5e, 0x8e, 0xff, 0x26, 0x1a, 0x25, 0xc5, 0x56, 0xaa, 0x06, 0xfa, 0xa7, 0x27, 0xc0, + 0x14, 0xd1, 0x85, 0x35, 0xcb, 0xbe, 0x04, 0x5f, 0xab, 0x80, 0x99, 0x2a, 0xba, 0x5c, 0xde, 0x31, + 0xdb, 0x6d, 0x64, 0x6f, 0x23, 0xde, 0x6c, 0x9f, 0x07, 0x13, 0x66, 0xa7, 0x53, 0x0d, 0xf7, 0x19, + 0xfc, 0x57, 0xd6, 0xff, 0x7e, 0xbd, 0xaf, 0x92, 0x67, 0x62, 0x94, 0x3c, 0xa8, 0x77, 0x81, 0xaf, + 0x33, 0x62, 0x86, 0x7c, 0x13, 0x98, 0x6e, 0xfa, 0x59, 0x02, 0x6f, 0x75, 0x3e, 0x09, 0xfe, 0x6d, + 0xa2, 0x6e, 0x40, 0xaa, 0xf2, 0x64, 0x42, 0x81, 0x46, 0x6c, 0x87, 0x9c, 0x02, 0x27, 0x8c, 0x5a, + 0xad, 0xb1, 0x5e, 0xaa, 0x3e, 0x14, 0x9e, 0x12, 0xdd, 0x82, 0xaf, 0xcc, 0x81, 0xb9, 0xba, 0xd3, + 0xde, 0x47, 0x21, 0x4c, 0x95, 0x10, 0xa6, 0x1e, 0x3e, 0x65, 0x0e, 0xf0, 0x49, 0x3d, 0x0d, 0x0a, + 0xa6, 0xdd, 0xbd, 0x8c, 0x7c, 0xdb, 0x90, 0xbd, 0x31, 0x18, 0x7f, 0x8f, 0xd7, 0x63, 0x5d, 0x84, + 0xf1, 0xde, 0x01, 0x9c, 0x14, 0xa9, 0x8a, 0x00, 0xf2, 0x2c, 0x98, 0xe9, 0xd2, 0xcd, 0x42, 0x83, + 0xdb, 0x13, 0x16, 0xd2, 0x08, 0x89, 0x74, 0xb7, 0x5a, 0x61, 0x24, 0x92, 0x37, 0xf8, 0xda, 0x40, + 0xfd, 0x37, 0x05, 0x88, 0x4b, 0x87, 0x21, 0x2c, 0x19, 0xc8, 0xaf, 0x1e, 0xf5, 0x0c, 0x6f, 0x1e, + 0x9c, 0x64, 0x5a, 0xdb, 0x28, 0xaf, 0x96, 0xd6, 0xd6, 0xb4, 0xea, 0x8a, 0xd6, 0xa8, 0x2c, 0xd1, + 0xad, 0x8a, 0x30, 0xa5, 0x64, 0x18, 0xda, 0xfa, 0x86, 0x51, 0x6f, 0x68, 0xcf, 0x2e, 0x6b, 0xda, + 0x12, 0x71, 0x44, 0x22, 0x27, 0x09, 0x7c, 0x97, 0xb1, 0x52, 0xb5, 0x7e, 0x41, 0xd3, 0x8b, 0x3b, + 0x67, 0x4b, 0x60, 0x9a, 0xeb, 0xe7, 0x31, 0x75, 0x4b, 0x68, 0xcb, 0xdc, 0x6b, 0x33, 0x5b, 0xad, + 0x78, 0x0c, 0x53, 0x47, 0x78, 0x53, 0xb3, 0xdb, 0x57, 0x8b, 0x19, 0xb5, 0x08, 0x66, 0xf8, 0x2e, + 0xbd, 0x98, 0x85, 0xdf, 0xb9, 0x1e, 0x4c, 0x5d, 0x70, 0xdc, 0x4b, 0xc4, 0x7b, 0x0c, 0xbe, 0x97, + 0x46, 0x93, 0xf0, 0xcf, 0xe5, 0x71, 0x03, 0xfb, 0xab, 0xe5, 0xbd, 0x05, 0xfc, 0xd2, 0x16, 0x06, + 0x9e, 0xbd, 0xbb, 0x09, 0x4c, 0x5f, 0xf6, 0x73, 0x87, 0x9a, 0xce, 0x25, 0xc1, 0xff, 0x2a, 0xb7, + 0xff, 0x3f, 0xb8, 0xca, 0xf4, 0xf7, 0xa7, 0xdf, 0x9a, 0x05, 0x85, 0x15, 0xe4, 0x95, 0xda, 0x6d, + 0x9e, 0x6f, 0x2f, 0x93, 0x3e, 0x4f, 0x21, 0x34, 0xa2, 0xd4, 0x6e, 0x47, 0x2b, 0x15, 0xc7, 0x20, + 0xdf, 0xef, 0x57, 0x48, 0x83, 0xbf, 0x26, 0x75, 0x12, 0x6a, 0x40, 0x85, 0xe9, 0x73, 0xec, 0x0d, + 0x4a, 0xb0, 0xc7, 0xfd, 0xd3, 0x9c, 0x95, 0xf3, 0xe4, 0x30, 0x92, 0x48, 0x26, 0x7e, 0xaf, 0xdc, + 0xcf, 0xa7, 0x3e, 0x08, 0x26, 0xf6, 0xba, 0xa8, 0x6c, 0x76, 0x11, 0xa1, 0xad, 0xb7, 0xa5, 0xb5, + 0x8b, 0x0f, 0xa3, 0xa6, 0xb7, 0x50, 0xd9, 0xc5, 0x06, 0xf5, 0x26, 0xcd, 0x18, 0x04, 0xe7, 0x60, + 0xef, 0xba, 0x5f, 0x02, 0x7c, 0xd1, 0x10, 0x90, 0xc5, 0xee, 0xf7, 0x46, 0x1e, 0xbd, 0x4a, 0x0c, + 0xd4, 0x08, 0x36, 0x69, 0x87, 0x01, 0xea, 0xd3, 0x59, 0x90, 0xab, 0x75, 0x90, 0x2d, 0xe7, 0x80, + 0xfa, 0x5a, 0x79, 0x2f, 0xaf, 0xa0, 0x61, 0xb8, 0xf4, 0x08, 0xee, 0x9d, 0x03, 0x39, 0xcb, 0xde, + 0x72, 0x98, 0x81, 0x79, 0x7d, 0xc4, 0x66, 0x4e, 0xc5, 0xde, 0x72, 0x74, 0x92, 0x51, 0xd6, 0xc1, + 0x2b, 0xae, 0xee, 0xf4, 0x59, 0xfa, 0xcd, 0x49, 0x50, 0xa0, 0x62, 0x09, 0x5f, 0xaa, 0x00, 0xa5, + 0xd4, 0x6a, 0x45, 0x1c, 0xe2, 0xc8, 0x1e, 0x38, 0xc4, 0xe1, 0x90, 0xdf, 0x02, 0xbe, 0x07, 0xef, + 0x62, 0x28, 0x08, 0xc9, 0x3e, 0x9a, 0xa9, 0x46, 0xa9, 0xd5, 0x8a, 0xf6, 0x25, 0x0d, 0x2a, 0xcc, + 0x8a, 0x15, 0xf2, 0x9a, 0xaa, 0xc8, 0x69, 0x6a, 0xe2, 0x0e, 0x3d, 0x92, 0xbe, 0xf4, 0x21, 0xfa, + 0xc7, 0x2c, 0x98, 0x58, 0xb3, 0xba, 0x1e, 0xc6, 0xa6, 0x24, 0x83, 0xcd, 0x0d, 0x60, 0xca, 0x67, + 0x0d, 0xee, 0xba, 0x70, 0xbf, 0x1c, 0x26, 0xc0, 0xd7, 0xf1, 0xe8, 0x3c, 0x4b, 0x44, 0xe7, 0x29, + 0xf1, 0xad, 0x67, 0x54, 0x44, 0xfb, 0x68, 0x87, 0xd5, 0x66, 0x7b, 0xab, 0xfd, 0xcd, 0x80, 0xe1, + 0xeb, 0x02, 0xc3, 0xef, 0x1e, 0xa6, 0xca, 0xf4, 0x99, 0xfe, 0xb9, 0x2c, 0x00, 0xb8, 0x6e, 0x76, + 0x10, 0xe6, 0xf1, 0xc2, 0xf1, 0xd6, 0x18, 0xee, 0xbe, 0x92, 0xe7, 0xee, 0xba, 0xc8, 0xdd, 0xa7, + 0x0d, 0x6e, 0x6a, 0xdc, 0x81, 0x17, 0xb5, 0x08, 0x14, 0x2b, 0x60, 0x2d, 0x7e, 0x84, 0x6f, 0x0d, + 0x98, 0xba, 0x21, 0x30, 0xf5, 0xde, 0x21, 0x6b, 0x4a, 0x9f, 0xaf, 0x7f, 0x99, 0x05, 0x13, 0x75, + 0xe4, 0xe1, 0x6e, 0x12, 0x9e, 0x97, 0x39, 0x72, 0xc2, 0xe9, 0x76, 0x56, 0x52, 0xb7, 0xbf, 0x9d, + 0x91, 0x0d, 0x93, 0x11, 0x72, 0x86, 0xd1, 0x14, 0xb1, 0x08, 0xf0, 0x7a, 0xa9, 0x30, 0x19, 0x83, + 0x4a, 0x4b, 0x9f, 0xbb, 0x6f, 0xce, 0x06, 0x1b, 0xec, 0x4f, 0x10, 0x26, 0x68, 0xbc, 0x79, 0x9b, + 0x39, 0x68, 0xde, 0xfe, 0x53, 0x26, 0xb9, 0xa9, 0x11, 0xb7, 0xbb, 0x9c, 0xd8, 0xa0, 0x18, 0xc1, + 0xc6, 0xef, 0x30, 0xfc, 0x7a, 0x9e, 0x02, 0x0a, 0x6c, 0x85, 0xf8, 0xfe, 0xf8, 0x15, 0xe2, 0xc1, + 0x53, 0x84, 0xf7, 0x0c, 0x61, 0xae, 0xc5, 0x2d, 0xdb, 0x06, 0x64, 0x64, 0x39, 0x32, 0xee, 0x00, + 0x79, 0x12, 0xc7, 0x8f, 0x8d, 0x73, 0xe1, 0x9e, 0xbd, 0x5f, 0x84, 0x86, 0xbf, 0xea, 0x34, 0x53, + 0x62, 0x14, 0x46, 0xb0, 0xd2, 0x3b, 0x0c, 0x0a, 0x2f, 0xf9, 0x48, 0x26, 0x30, 0x42, 0xde, 0x93, + 0x63, 0x26, 0xde, 0xc7, 0xc4, 0x88, 0x02, 0x4d, 0xc7, 0xf6, 0xd0, 0x15, 0x6e, 0x6d, 0x3d, 0x48, + 0x88, 0xb5, 0x0c, 0xe6, 0xc1, 0x84, 0xe7, 0xf2, 0xeb, 0xed, 0xfe, 0x2b, 0xdf, 0xe3, 0xe4, 0xc5, + 0x1e, 0xa7, 0x0a, 0xce, 0x5a, 0x76, 0xb3, 0xbd, 0xd7, 0x42, 0x3a, 0x6a, 0x9b, 0xb8, 0x55, 0xdd, + 0x52, 0x77, 0x09, 0x75, 0x90, 0xdd, 0x42, 0xb6, 0x47, 0xe9, 0xf4, 0x7d, 0x6b, 0x25, 0x72, 0xc2, + 0xaf, 0xf1, 0x82, 0x71, 0x9f, 0x28, 0x18, 0x8f, 0xef, 0x37, 0x3f, 0x88, 0x31, 0x42, 0xef, 0x06, + 0x80, 0xb6, 0xed, 0xbc, 0x85, 0x2e, 0xb3, 0x0e, 0xf1, 0xba, 0x1e, 0x53, 0xb4, 0x16, 0x64, 0xd0, + 0xb9, 0xcc, 0xf0, 0x4b, 0x81, 0x30, 0x3c, 0x20, 0x08, 0xc3, 0x1d, 0x92, 0x24, 0x24, 0x93, 0x83, + 0xce, 0x10, 0x6b, 0x16, 0xb3, 0x60, 0x2a, 0x5c, 0x69, 0x54, 0xd4, 0xeb, 0xc0, 0x29, 0xdf, 0x77, + 0xa1, 0xaa, 0x69, 0x4b, 0xf5, 0xc6, 0xe6, 0xc6, 0x8a, 0x5e, 0x5a, 0xd2, 0x8a, 0x40, 0x55, 0xc1, + 0x5c, 0x6d, 0xf1, 0x59, 0x5a, 0xd9, 0x08, 0x5c, 0x0e, 0x72, 0xf0, 0xcf, 0xb3, 0x20, 0x4f, 0x1c, + 0xc3, 0xe1, 0x8f, 0x8e, 0x48, 0x72, 0xba, 0xc2, 0x4e, 0x4d, 0x30, 0xaf, 0x90, 0x8f, 0xf4, 0xc7, + 0x98, 0x49, 0xa8, 0x3a, 0x54, 0xa4, 0xbf, 0x98, 0x82, 0xd2, 0x57, 0x4f, 0xac, 0x92, 0xf5, 0x1d, + 0xe7, 0xf2, 0xbf, 0x67, 0x95, 0xc4, 0xed, 0x3f, 0x62, 0x95, 0xec, 0x43, 0xc2, 0xd8, 0x55, 0xb2, + 0x8f, 0xde, 0xc5, 0xa8, 0x29, 0xfc, 0xdb, 0x5c, 0xb0, 0xb0, 0xf2, 0x7f, 0x1d, 0x6e, 0x61, 0xa5, + 0x04, 0x66, 0x2d, 0xdb, 0x43, 0xae, 0x6d, 0xb6, 0x97, 0xdb, 0xe6, 0xb6, 0x7f, 0xfc, 0xb8, 0x77, + 0x16, 0x5e, 0xe1, 0xf2, 0xe8, 0xe2, 0x1f, 0xea, 0x19, 0x00, 0x3c, 0xb4, 0xdb, 0x69, 0x9b, 0x5e, + 0x28, 0x7a, 0x5c, 0x0a, 0x2f, 0x7d, 0x39, 0x51, 0xfa, 0x9e, 0x04, 0xae, 0xa1, 0xa0, 0x19, 0x57, + 0x3b, 0x68, 0xd3, 0xb6, 0x7e, 0x6c, 0x8f, 0x04, 0xa0, 0xa1, 0x32, 0xda, 0xef, 0x13, 0xfc, 0x1f, + 0xd2, 0xc7, 0x28, 0x7d, 0xcd, 0x1e, 0x70, 0x8c, 0x32, 0xd0, 0x26, 0xa5, 0x47, 0x9b, 0x02, 0x83, + 0x20, 0x27, 0x61, 0x10, 0xf0, 0x9c, 0xcf, 0x4b, 0x1a, 0xd3, 0xaf, 0x91, 0x3a, 0xa7, 0x19, 0xd7, + 0x8c, 0xf4, 0x7b, 0xa8, 0xf7, 0x2a, 0x60, 0x8e, 0x56, 0xbd, 0xe8, 0x38, 0x97, 0x76, 0x4d, 0xf7, + 0x12, 0x3f, 0xb7, 0x18, 0x42, 0xdc, 0xa2, 0x57, 0xca, 0x3e, 0xc5, 0x23, 0xbb, 0x22, 0x22, 0xfb, + 0xe4, 0x68, 0x96, 0xf8, 0x74, 0x8d, 0x67, 0x71, 0xe3, 0x8d, 0x01, 0x66, 0xcf, 0x12, 0x30, 0xfb, + 0xc1, 0xc4, 0x04, 0xa6, 0x8f, 0xdd, 0x1f, 0x05, 0xd8, 0xf9, 0x1d, 0x76, 0x6a, 0xd8, 0x7d, 0x79, + 0x38, 0xec, 0x7c, 0xba, 0x86, 0xc0, 0xae, 0x08, 0x94, 0x4b, 0xc1, 0x96, 0x12, 0x7e, 0xe4, 0x1b, + 0x94, 0x4b, 0x0f, 0xcd, 0x08, 0x92, 0xc7, 0x82, 0xe6, 0x49, 0x91, 0x84, 0x5a, 0x27, 0x55, 0x4c, + 0xbf, 0x28, 0xbd, 0xde, 0xd2, 0x97, 0x41, 0x94, 0xba, 0xf1, 0x68, 0xa5, 0xdc, 0x62, 0x8d, 0x3c, + 0x99, 0xe9, 0xa3, 0xf9, 0x0f, 0x39, 0x30, 0xe5, 0x1f, 0x66, 0xf5, 0xe0, 0x9f, 0x72, 0x43, 0xf8, + 0x69, 0x50, 0xe8, 0x3a, 0x7b, 0x6e, 0x13, 0xb1, 0x15, 0x30, 0xf6, 0x36, 0xc4, 0x6a, 0xcd, 0xc0, + 0x71, 0xf9, 0xc0, 0xd0, 0x9f, 0x4b, 0x3c, 0xf4, 0x47, 0x1a, 0x96, 0xf0, 0x45, 0xd2, 0xa1, 0x07, + 0x05, 0x5c, 0xea, 0xc8, 0x7b, 0x34, 0x8e, 0xd5, 0x1f, 0x94, 0x9a, 0xef, 0x0f, 0x68, 0x49, 0x32, + 0xb1, 0xaa, 0x0d, 0x61, 0x54, 0x5e, 0x0f, 0xae, 0xf5, 0x73, 0x30, 0x6b, 0x92, 0x58, 0x8f, 0x9b, + 0xfa, 0x5a, 0x51, 0x81, 0xcf, 0xcb, 0x81, 0x22, 0x25, 0xad, 0x16, 0x18, 0x56, 0xf0, 0x65, 0x47, + 0x6e, 0x3d, 0x46, 0x4f, 0x07, 0x3f, 0x93, 0x95, 0x0d, 0x6f, 0x24, 0x30, 0x3e, 0x6c, 0x5d, 0x84, + 0x24, 0x0d, 0xa1, 0x4a, 0x31, 0xc2, 0x07, 0x7f, 0x23, 0x23, 0x13, 0x2d, 0x49, 0x8e, 0xc4, 0xf4, + 0x7b, 0x9e, 0xd7, 0xe5, 0xfc, 0xb8, 0x03, 0xcb, 0xae, 0xb3, 0xbb, 0xe9, 0xb6, 0xe1, 0x87, 0xa4, + 0x82, 0xd1, 0x45, 0x98, 0xea, 0xd9, 0x48, 0x53, 0x1d, 0x0f, 0xd1, 0x7b, 0x6e, 0xdb, 0x1f, 0xa2, + 0xf7, 0xdc, 0xf6, 0x10, 0x43, 0xb4, 0x7a, 0x2b, 0x98, 0x33, 0x5b, 0xad, 0x0d, 0x73, 0x1b, 0x95, + 0xf1, 0x1c, 0xd8, 0xf6, 0xd8, 0x99, 0xe4, 0x9e, 0xd4, 0x04, 0x3b, 0x63, 0x02, 0x10, 0x8c, 0x07, + 0x8f, 0xa6, 0x9d, 0x31, 0x09, 0xfa, 0xd2, 0x97, 0x92, 0x4f, 0x64, 0xc1, 0xac, 0x6f, 0xb8, 0x2e, + 0x23, 0xaf, 0xb9, 0x03, 0xef, 0x96, 0x5d, 0xa1, 0x60, 0xb0, 0x67, 0x03, 0xd8, 0xe1, 0xf7, 0x32, + 0x09, 0xb1, 0x11, 0x6a, 0x8e, 0x58, 0xde, 0x49, 0xc4, 0xcc, 0xb8, 0x02, 0xd3, 0x67, 0xe6, 0x97, + 0xb2, 0x00, 0x18, 0x4e, 0x30, 0x81, 0x3a, 0x04, 0x27, 0x5f, 0x22, 0x1d, 0xa6, 0x9c, 0x35, 0x3c, + 0xac, 0x36, 0xb9, 0x88, 0x4b, 0xee, 0xcd, 0x0c, 0xaa, 0x29, 0x7d, 0xfe, 0xbe, 0x3f, 0x0b, 0xa6, + 0x96, 0xf6, 0x3a, 0x6d, 0xab, 0x69, 0x7a, 0xbd, 0x1b, 0x8a, 0xd1, 0xec, 0x25, 0xf7, 0x8d, 0x24, + 0xb2, 0x50, 0x82, 0x3a, 0x22, 0x78, 0x49, 0x4f, 0x5b, 0x66, 0xfd, 0xd3, 0x96, 0x92, 0x9b, 0x04, + 0x03, 0x0a, 0x1f, 0x83, 0x78, 0x2a, 0xe0, 0x78, 0xad, 0x83, 0xec, 0x45, 0x17, 0x99, 0xad, 0xa6, + 0xbb, 0xb7, 0x7b, 0xb1, 0xcb, 0xef, 0x86, 0xc7, 0xcb, 0x28, 0xb7, 0xe6, 0x98, 0x15, 0xd6, 0x1c, + 0xe1, 0x4f, 0x29, 0xb2, 0x67, 0x7f, 0xb9, 0x95, 0x71, 0x8e, 0x86, 0x21, 0xfa, 0xe4, 0x44, 0x7b, + 0x38, 0x3d, 0xcb, 0x8b, 0xb9, 0x24, 0xcb, 0x8b, 0x6f, 0x92, 0x3a, 0x49, 0x2c, 0xd5, 0xae, 0xb1, + 0x6c, 0xc5, 0xcd, 0xd5, 0x91, 0x17, 0x01, 0xef, 0x2d, 0x60, 0xf6, 0x62, 0xf8, 0x25, 0x80, 0x58, + 0x4c, 0xec, 0xb3, 0x41, 0xfe, 0xe6, 0xa4, 0x53, 0x7e, 0x91, 0x84, 0x08, 0x74, 0x03, 0x04, 0xb3, + 0x32, 0xbb, 0x70, 0x89, 0xe6, 0xef, 0xb1, 0xf5, 0xa7, 0x8f, 0xc2, 0x47, 0xb2, 0x60, 0x9a, 0xdc, + 0xa2, 0xb2, 0x78, 0x95, 0xb8, 0x67, 0x3f, 0x4e, 0x08, 0xb5, 0x15, 0xe9, 0xf1, 0xf3, 0x42, 0x9e, + 0xcd, 0x2a, 0xc8, 0xb5, 0x2d, 0xfb, 0x92, 0xbf, 0x7d, 0x8a, 0x9f, 0xc3, 0x98, 0xfc, 0xd9, 0x3e, + 0x31, 0xf9, 0x83, 0x05, 0xee, 0xa0, 0xde, 0x43, 0x5d, 0x12, 0x35, 0xb0, 0xb8, 0xf4, 0xd9, 0xf8, + 0xc7, 0x39, 0x50, 0xa8, 0x23, 0xd3, 0x6d, 0xee, 0xc0, 0x57, 0x72, 0x07, 0xdd, 0x97, 0xc1, 0xc4, + 0x96, 0xd5, 0xf6, 0x90, 0x4b, 0x1d, 0x47, 0xf8, 0x0e, 0x9c, 0x2a, 0xf2, 0x62, 0xdb, 0x69, 0x5e, + 0x5a, 0x60, 0xd6, 0xe2, 0x82, 0x1f, 0x33, 0x68, 0x61, 0x99, 0xfc, 0xa4, 0xfb, 0x3f, 0xab, 0x0f, + 0x80, 0x7c, 0xd7, 0x71, 0xbd, 0xa8, 0x20, 0x9c, 0x11, 0xa5, 0xd4, 0x1d, 0xd7, 0xd3, 0xe9, 0x8f, + 0x18, 0xcc, 0xad, 0xbd, 0x76, 0xdb, 0x40, 0x57, 0x3c, 0x7f, 0xa6, 0xe0, 0xbf, 0xe3, 0xb9, 0xbd, + 0xb3, 0xb5, 0xd5, 0x45, 0x74, 0x9e, 0x9a, 0xd7, 0xd9, 0x9b, 0x7a, 0x12, 0xe4, 0xdb, 0xd6, 0xae, + 0x45, 0x6d, 0xdb, 0xbc, 0x4e, 0x5f, 0xd4, 0xdb, 0x41, 0x31, 0x34, 0xab, 0x29, 0xa1, 0xf3, 0x05, + 0xa2, 0x80, 0x07, 0xd2, 0xb1, 0x64, 0x5c, 0x42, 0x57, 0xbb, 0xf3, 0x13, 0xe4, 0x3b, 0x79, 0x16, + 0xbd, 0xf4, 0x64, 0x96, 0xca, 0x29, 0x5f, 0xa3, 0x27, 0x4d, 0x2e, 0x6a, 0x3a, 0x6e, 0xcb, 0xe7, + 0x4d, 0xb4, 0xbd, 0xcb, 0xf2, 0x25, 0x5b, 0xe0, 0xee, 0x5b, 0x79, 0xfa, 0xf2, 0xf4, 0xf2, 0x02, + 0xee, 0x1c, 0x71, 0xd5, 0x17, 0x2c, 0x6f, 0x67, 0x1d, 0x79, 0x26, 0xfc, 0x63, 0xe5, 0xff, 0x93, + 0xab, 0x18, 0xb9, 0xa2, 0x67, 0xbe, 0xbd, 0x3d, 0xd7, 0xc6, 0xdc, 0x62, 0x51, 0x96, 0xb8, 0x14, + 0xf5, 0x5e, 0x70, 0x5d, 0xf8, 0xe6, 0xaf, 0xb3, 0x2d, 0xb1, 0xb9, 0xd2, 0x14, 0xc9, 0x1e, 0x9d, + 0x41, 0xdd, 0x00, 0x37, 0xd3, 0x8f, 0xab, 0xc6, 0xfa, 0xda, 0xaa, 0xb5, 0xbd, 0xd3, 0xb6, 0xb6, + 0x77, 0xbc, 0x6e, 0xc5, 0xee, 0x7a, 0xc8, 0x6c, 0xd5, 0xb6, 0x74, 0x1a, 0x24, 0x17, 0x90, 0x72, + 0x64, 0xb2, 0x8a, 0xee, 0x23, 0x72, 0x23, 0x15, 0x2f, 0x0f, 0x11, 0xfa, 0xf0, 0x83, 0x58, 0x1f, + 0xba, 0x7b, 0xed, 0x00, 0xd3, 0x1b, 0x7a, 0x30, 0x0d, 0x05, 0x7a, 0xaf, 0x4d, 0x94, 0x82, 0x64, + 0x4e, 0x3a, 0x66, 0xc5, 0x50, 0x92, 0xbe, 0x72, 0xfc, 0x3f, 0x05, 0x90, 0x5f, 0x71, 0xcd, 0xce, + 0x0e, 0x7c, 0x5e, 0x0a, 0x7d, 0x6d, 0x20, 0x9d, 0xd9, 0x41, 0xd2, 0xa9, 0x0c, 0x90, 0xce, 0x1c, + 0x27, 0x9d, 0xd1, 0x5b, 0xdd, 0x67, 0xc1, 0x4c, 0xd3, 0x69, 0xb7, 0x51, 0x13, 0xf3, 0xa3, 0xd2, + 0x22, 0x81, 0x41, 0xa6, 0x74, 0x21, 0x8d, 0x44, 0x4f, 0x43, 0x5e, 0x9d, 0x2e, 0xc0, 0x52, 0xa1, + 0x0f, 0x13, 0xe0, 0xcb, 0xb2, 0x20, 0xa7, 0xb5, 0xb6, 0x91, 0xb0, 0x48, 0x9b, 0xe1, 0x16, 0x69, + 0x4f, 0x83, 0x82, 0x67, 0xba, 0xdb, 0xc8, 0xf3, 0x8f, 0xe3, 0xd0, 0xb7, 0x20, 0xa8, 0x9b, 0xc2, + 0x05, 0x75, 0x7b, 0x1a, 0xc8, 0x61, 0x9e, 0xb1, 0x70, 0x29, 0x37, 0xf7, 0x83, 0x9f, 0xf0, 0x7e, + 0x01, 0xd7, 0xb8, 0x80, 0x5b, 0xad, 0x93, 0x1f, 0x7a, 0xb1, 0xce, 0x1f, 0xc0, 0x9a, 0xdc, 0xf7, + 0xd1, 0x74, 0xec, 0xca, 0xae, 0xb9, 0x8d, 0x58, 0x33, 0xc3, 0x04, 0xff, 0xab, 0xb6, 0xeb, 0x3c, + 0x6c, 0xb1, 0xf8, 0x6a, 0x61, 0x02, 0x6e, 0xc2, 0x8e, 0xd5, 0x6a, 0x21, 0x9b, 0x69, 0x36, 0x7b, + 0x3b, 0x7b, 0x06, 0xe4, 0x30, 0x0d, 0x58, 0x7e, 0xf0, 0xc0, 0x5f, 0x3c, 0xa6, 0xce, 0x60, 0xb5, + 0xa2, 0xca, 0x5b, 0xcc, 0x88, 0x8b, 0x75, 0x32, 0xbe, 0x1b, 0xb4, 0x71, 0xfd, 0x95, 0xeb, 0x89, + 0x20, 0x6f, 0x3b, 0x2d, 0x34, 0x70, 0xa8, 0xa1, 0xb9, 0xd4, 0xa7, 0x80, 0x3c, 0x6a, 0xe1, 0x5e, + 0x41, 0x21, 0xd9, 0xcf, 0xc4, 0xf3, 0x52, 0xa7, 0x99, 0x93, 0x39, 0x88, 0xf4, 0xa3, 0x36, 0x7d, + 0x05, 0xfc, 0x95, 0x09, 0x70, 0x9c, 0xf6, 0x01, 0xf5, 0xbd, 0x8b, 0xb8, 0xa8, 0x8b, 0x08, 0xbe, + 0x4b, 0x11, 0xa2, 0x48, 0x76, 0xf7, 0x2e, 0x06, 0x66, 0x23, 0x7d, 0xe1, 0x15, 0x34, 0x3b, 0x92, + 0x41, 0x4b, 0x19, 0x76, 0xd0, 0x12, 0x06, 0x20, 0xc5, 0x57, 0xf1, 0x70, 0xb8, 0x2a, 0x90, 0x64, + 0x7f, 0xb8, 0xea, 0x37, 0xd8, 0xcc, 0x83, 0x09, 0x73, 0xcb, 0x43, 0x6e, 0xa5, 0x45, 0xe4, 0x71, + 0x4a, 0xf7, 0x5f, 0xf1, 0x80, 0x78, 0x11, 0x6d, 0x39, 0x2e, 0xd6, 0xf4, 0x29, 0x3a, 0x20, 0xfa, + 0xef, 0x9c, 0x7e, 0x02, 0x61, 0x13, 0xe5, 0x36, 0x70, 0xdc, 0xda, 0xb6, 0x1d, 0x17, 0x05, 0x9e, + 0x79, 0xf3, 0x33, 0xf4, 0xb0, 0x78, 0x4f, 0xb2, 0x7a, 0x07, 0x38, 0x61, 0x3b, 0x4b, 0xa8, 0xc3, + 0xf8, 0x4e, 0x51, 0x9d, 0x25, 0x1a, 0x71, 0xf0, 0xc3, 0x81, 0xae, 0x65, 0xee, 0x60, 0xd7, 0x02, + 0x3f, 0x9d, 0x74, 0x3e, 0xdc, 0x03, 0xfc, 0xc8, 0xec, 0x32, 0xf5, 0x19, 0x60, 0xa6, 0xc5, 0xfc, + 0x76, 0x9a, 0x56, 0xa0, 0x35, 0x91, 0xff, 0x09, 0x99, 0x43, 0x91, 0xcb, 0xf1, 0x22, 0xb7, 0x02, + 0x26, 0xc9, 0x29, 0x0d, 0x2c, 0x73, 0xf9, 0x9e, 0x60, 0x74, 0x64, 0xca, 0x16, 0x34, 0x8a, 0x63, + 0xdb, 0x42, 0x99, 0xfd, 0xa2, 0x07, 0x3f, 0x27, 0x9b, 0x59, 0xc7, 0x73, 0x28, 0x7d, 0xf5, 0xfc, + 0x4c, 0x0e, 0x1c, 0x5f, 0x71, 0x9d, 0xbd, 0x4e, 0x37, 0x54, 0xcf, 0xbf, 0xee, 0xbf, 0x9a, 0x5e, + 0x10, 0xc7, 0xa2, 0xfe, 0x8a, 0x7b, 0x13, 0x98, 0x76, 0x59, 0x8f, 0x1a, 0xae, 0xad, 0xf3, 0x49, + 0xbc, 0x6a, 0x2b, 0x87, 0x51, 0xed, 0x50, 0x41, 0x72, 0x82, 0x82, 0xf4, 0x0a, 0x72, 0xbe, 0x8f, + 0x20, 0xff, 0x55, 0x36, 0xa1, 0x20, 0xf7, 0xb0, 0x28, 0x42, 0x90, 0xcb, 0xa0, 0xb0, 0x4d, 0x32, + 0x32, 0x39, 0x7e, 0x82, 0x5c, 0xcb, 0x48, 0xe1, 0x3a, 0xfb, 0x35, 0xe4, 0xab, 0xc2, 0xf1, 0x35, + 0x99, 0x50, 0xc5, 0x53, 0x9b, 0xbe, 0x50, 0xbd, 0x3d, 0x07, 0x66, 0x82, 0xda, 0xc9, 0xc1, 0x87, + 0xcc, 0xa0, 0x0e, 0xff, 0xc0, 0xea, 0x4c, 0xd0, 0x95, 0x2a, 0x5c, 0x57, 0xda, 0xa7, 0xf3, 0x9b, + 0x4e, 0xd0, 0xf9, 0xcd, 0x44, 0x74, 0x7e, 0xf0, 0xb9, 0x8a, 0x6c, 0xd0, 0x62, 0xb1, 0x0f, 0x20, + 0xad, 0x7b, 0x34, 0xf7, 0x6a, 0x92, 0xa1, 0x93, 0x07, 0xb7, 0x2a, 0x7d, 0xa1, 0xf9, 0x40, 0x16, + 0x9c, 0xa0, 0xbd, 0xe1, 0xa6, 0xdd, 0x0d, 0xfa, 0xa2, 0xc7, 0x8a, 0x6e, 0x05, 0xb8, 0x4d, 0xdd, + 0xc0, 0xad, 0x80, 0xbc, 0x89, 0x8b, 0xe0, 0xb1, 0x67, 0x96, 0x84, 0x3e, 0x97, 0xab, 0x25, 0x62, + 0x45, 0x49, 0xee, 0x54, 0x92, 0x64, 0xa1, 0xe9, 0x33, 0xf0, 0x17, 0x15, 0x30, 0x55, 0x47, 0xde, + 0x9a, 0x79, 0xd5, 0xd9, 0xf3, 0xa0, 0x29, 0xbb, 0xfc, 0xfd, 0x74, 0x50, 0x68, 0x93, 0x5f, 0xd8, + 0x0d, 0x5c, 0x37, 0xf5, 0x5d, 0x3f, 0x26, 0x1b, 0xbd, 0xb4, 0x68, 0x9d, 0xe5, 0x17, 0x0f, 0x8b, + 0xc9, 0xec, 0x3e, 0x04, 0xd4, 0x8d, 0x64, 0xe9, 0x34, 0xd1, 0xde, 0x44, 0x54, 0xd5, 0xe9, 0xc3, + 0xf2, 0x53, 0x0a, 0x98, 0xad, 0x23, 0xaf, 0xd2, 0x5d, 0x36, 0xf7, 0x1d, 0xd7, 0xf2, 0x10, 0x7f, + 0x19, 0x44, 0x3c, 0x34, 0x67, 0x00, 0xb0, 0x82, 0xdf, 0x58, 0x34, 0x70, 0x2e, 0x05, 0xfe, 0x46, + 0xd2, 0x1d, 0x63, 0x81, 0x8e, 0x91, 0x80, 0x90, 0x68, 0x0f, 0x33, 0xae, 0xfa, 0xf4, 0x81, 0xf8, + 0x7c, 0x96, 0x01, 0x51, 0x72, 0x9b, 0x3b, 0xd6, 0x3e, 0x6a, 0x25, 0x04, 0xc2, 0xff, 0x2d, 0x04, + 0x22, 0x28, 0x28, 0xf1, 0xf6, 0xb0, 0x40, 0xc7, 0x28, 0xb6, 0x87, 0xe3, 0x0a, 0x1c, 0xcb, 0x29, + 0x54, 0xdc, 0xf5, 0xb0, 0x35, 0x86, 0xfb, 0x65, 0xd9, 0x1a, 0x9a, 0x70, 0x59, 0xde, 0x84, 0x1b, + 0xaa, 0x63, 0xa1, 0x75, 0x0f, 0x92, 0xe9, 0x5c, 0x1a, 0x1d, 0x4b, 0xdf, 0xaa, 0xd3, 0x67, 0xfa, + 0xbb, 0x15, 0x70, 0x2a, 0x30, 0x78, 0xea, 0xc8, 0x5b, 0x32, 0xbb, 0x3b, 0x17, 0x1d, 0xd3, 0x6d, + 0xf1, 0x37, 0xb3, 0x0d, 0x7d, 0x14, 0x03, 0xfe, 0x05, 0x0f, 0x42, 0x55, 0x04, 0xa1, 0xaf, 0x5f, + 0x50, 0x5f, 0x5a, 0x46, 0xd1, 0xc9, 0xc4, 0xba, 0x2e, 0xfd, 0x56, 0x00, 0xd6, 0x0f, 0x09, 0x60, + 0xdd, 0x37, 0x2c, 0x89, 0xe9, 0x03, 0xf7, 0xcb, 0x74, 0x44, 0xe0, 0x5c, 0xd8, 0x1e, 0x92, 0x05, + 0x2c, 0xc2, 0x85, 0x49, 0x89, 0x3e, 0x6d, 0x30, 0xcc, 0x18, 0x31, 0xd0, 0xfd, 0x2c, 0xdd, 0x31, + 0xe2, 0x08, 0x5d, 0xcb, 0xde, 0xae, 0x80, 0x22, 0x39, 0x9f, 0xcb, 0xb9, 0xf7, 0xc1, 0x87, 0x65, + 0xd1, 0x39, 0xe0, 0x4a, 0x38, 0x91, 0xd4, 0x95, 0x10, 0xbe, 0x2d, 0xa9, 0xc3, 0x60, 0x2f, 0xb5, + 0x23, 0x41, 0x2c, 0x91, 0x3f, 0xe0, 0x00, 0x0a, 0xd2, 0x07, 0xed, 0x3f, 0x2b, 0x00, 0x60, 0x85, + 0x66, 0x3e, 0x6a, 0xcf, 0x96, 0x85, 0xeb, 0x1c, 0xef, 0x44, 0x89, 0x81, 0x3a, 0xd5, 0x03, 0x14, + 0x2d, 0x31, 0xf4, 0x7e, 0x7b, 0x7d, 0x52, 0xdf, 0xa5, 0x90, 0xaa, 0x91, 0xc0, 0x92, 0xc8, 0x9b, + 0x29, 0xb2, 0xee, 0xf4, 0x01, 0xf9, 0xed, 0x2c, 0xc8, 0x1b, 0x4e, 0x1d, 0x79, 0x87, 0x37, 0x05, + 0x12, 0x9f, 0xa7, 0x24, 0xf5, 0x8e, 0xe2, 0x3c, 0x65, 0xbf, 0x82, 0xd2, 0x67, 0xdd, 0xbb, 0xb2, + 0x60, 0xc6, 0x70, 0xca, 0xc1, 0x62, 0x95, 0xbc, 0x2f, 0x98, 0xfc, 0xc5, 0x4b, 0x41, 0x03, 0xc3, + 0x6a, 0x0e, 0x75, 0xf1, 0xd2, 0xe0, 0xf2, 0xd2, 0xe7, 0xdb, 0xdd, 0xe0, 0xf8, 0xa6, 0xdd, 0x72, + 0x74, 0xd4, 0x72, 0xd8, 0x92, 0xac, 0xaa, 0x82, 0xdc, 0x9e, 0xdd, 0x72, 0x08, 0xc9, 0x79, 0x9d, + 0x3c, 0xe3, 0x34, 0x17, 0xb5, 0x1c, 0xb6, 0x5f, 0x47, 0x9e, 0xe1, 0xd7, 0x14, 0x90, 0xc3, 0xff, + 0xca, 0xb3, 0xfa, 0xed, 0x4a, 0xc2, 0x13, 0xa2, 0xb8, 0xf8, 0x91, 0x58, 0x42, 0xf7, 0x73, 0x8b, + 0xd4, 0xd4, 0x43, 0xec, 0xe6, 0xa8, 0xfa, 0x38, 0x56, 0x84, 0x8b, 0xd3, 0xea, 0x3c, 0x98, 0xb8, + 0xd8, 0x76, 0x9a, 0x97, 0xc2, 0x83, 0x8c, 0xec, 0x55, 0xbd, 0x1d, 0xe4, 0x5d, 0xd3, 0xde, 0x46, + 0x6c, 0xf1, 0xfb, 0x64, 0x4f, 0x5f, 0x48, 0x76, 0xa2, 0x75, 0x9a, 0x05, 0xbe, 0x2d, 0xc9, 0xd9, + 0xd4, 0x3e, 0x8d, 0x4f, 0x26, 0x0f, 0x4b, 0x43, 0x1c, 0x23, 0x28, 0x82, 0x99, 0x72, 0x89, 0x5e, + 0x71, 0xb6, 0x5e, 0x3b, 0xaf, 0x15, 0x15, 0x02, 0x33, 0xe6, 0x49, 0x8a, 0x30, 0xe3, 0xe2, 0xff, + 0xdd, 0xc2, 0xdc, 0xa7, 0xf1, 0x47, 0x01, 0xf3, 0x27, 0xb2, 0x60, 0x76, 0xcd, 0xea, 0x7a, 0x51, + 0xde, 0xb4, 0x31, 0xe1, 0x79, 0x5e, 0x94, 0xd4, 0x54, 0x16, 0xea, 0x91, 0x8e, 0xcb, 0x93, 0xc8, + 0x1c, 0x8e, 0xab, 0x62, 0x3c, 0x6e, 0xdf, 0x84, 0x02, 0x7a, 0x2d, 0x91, 0x34, 0x27, 0x13, 0x1b, + 0x4a, 0x61, 0x25, 0xe3, 0x37, 0x94, 0x22, 0xeb, 0x4e, 0x9f, 0xbf, 0x5f, 0xcb, 0x82, 0x13, 0xb8, + 0xfa, 0xb8, 0x65, 0xa9, 0x68, 0x36, 0x0f, 0x5c, 0x96, 0x4a, 0xbc, 0x32, 0x7e, 0x80, 0x96, 0x51, + 0xac, 0x8c, 0x0f, 0x2a, 0x74, 0xcc, 0x6c, 0x8e, 0x58, 0x86, 0x1d, 0xc4, 0xe6, 0x98, 0x65, 0xd8, + 0xe1, 0xd9, 0x1c, 0xbf, 0x14, 0x3b, 0x24, 0x9b, 0x8f, 0x6c, 0x81, 0xf5, 0xd7, 0x94, 0x80, 0xcd, + 0x91, 0x6b, 0x1b, 0x31, 0x6c, 0x4e, 0x7c, 0x3c, 0x0b, 0xbe, 0x63, 0x48, 0xc6, 0x8f, 0x78, 0x7d, + 0x63, 0x18, 0x98, 0x8e, 0x70, 0x8d, 0xe3, 0xe5, 0x0a, 0x98, 0x63, 0x54, 0xf4, 0x9f, 0x32, 0xc7, + 0x60, 0x94, 0x78, 0xca, 0x9c, 0xd8, 0xc7, 0x5e, 0xa4, 0x6c, 0xfc, 0x3e, 0xf6, 0xb1, 0xf5, 0xa7, + 0x0f, 0xce, 0xd7, 0x73, 0xe0, 0x34, 0x26, 0x61, 0xdd, 0x69, 0x59, 0x5b, 0x57, 0x29, 0x15, 0xe7, + 0xcd, 0xf6, 0x1e, 0xea, 0xc2, 0xf7, 0x66, 0x65, 0x51, 0xfa, 0xff, 0x01, 0xe0, 0x74, 0x90, 0x4b, + 0x23, 0xdc, 0x30, 0xa0, 0xee, 0x8d, 0x6a, 0xec, 0xc1, 0x9a, 0x82, 0xa8, 0xb3, 0x35, 0xbf, 0x10, + 0x9d, 0x2b, 0x0f, 0x5b, 0x85, 0x53, 0xc1, 0x97, 0x5e, 0x87, 0x8f, 0xcc, 0x41, 0x87, 0x8f, 0xdb, + 0x80, 0x62, 0xb6, 0x5a, 0x01, 0x54, 0xbd, 0x9b, 0xd9, 0xa4, 0x4e, 0x1d, 0x67, 0xc1, 0x39, 0xbb, + 0x28, 0x3c, 0xfa, 0x12, 0x91, 0xb3, 0x8b, 0x3c, 0x75, 0x01, 0x14, 0xe8, 0x15, 0x4d, 0xc1, 0x8a, + 0x7e, 0xff, 0xcc, 0x2c, 0x97, 0x68, 0xda, 0xd5, 0x44, 0x31, 0xbc, 0x3b, 0x11, 0x67, 0xfa, 0xf5, + 0xd3, 0xa1, 0x9d, 0xac, 0x0b, 0x02, 0xf6, 0xcc, 0xa1, 0x4b, 0x1e, 0xcf, 0x6e, 0x58, 0xa9, 0xd3, + 0x69, 0x5f, 0x35, 0xd8, 0x69, 0xfa, 0x44, 0xbb, 0x61, 0xdc, 0xa1, 0xfc, 0x6c, 0xef, 0xa1, 0xfc, + 0xe4, 0xbb, 0x61, 0x02, 0x1d, 0xa3, 0xd8, 0x0d, 0x8b, 0x2b, 0x70, 0x0c, 0xeb, 0x91, 0x79, 0x6a, + 0x35, 0xb3, 0xe0, 0x81, 0x6f, 0xcc, 0xf6, 0x75, 0xa7, 0x02, 0xa2, 0x3b, 0x55, 0xbf, 0xb8, 0x82, + 0xb1, 0x41, 0x53, 0xd5, 0xa7, 0x80, 0xc2, 0x96, 0xe3, 0xee, 0x9a, 0xfe, 0xc6, 0x7d, 0xaf, 0xf7, + 0x36, 0x0b, 0xd8, 0xb7, 0x4c, 0xf2, 0xe8, 0x2c, 0x2f, 0x9e, 0x8f, 0x3c, 0xc7, 0xea, 0xb0, 0x70, + 0x58, 0xf8, 0x51, 0xbd, 0x05, 0xcc, 0xb2, 0xa8, 0x58, 0x55, 0xd4, 0xf5, 0x50, 0x8b, 0x1d, 0x4f, + 0x16, 0x13, 0xd5, 0xb3, 0x60, 0x86, 0x25, 0x2c, 0x5b, 0x6d, 0xd4, 0x65, 0x77, 0x12, 0x0a, 0x69, + 0xea, 0x69, 0x50, 0xb0, 0xba, 0xcf, 0xea, 0x3a, 0x36, 0xf1, 0xc9, 0x9d, 0xd4, 0xd9, 0x1b, 0x71, + 0xdb, 0xa1, 0xf9, 0x02, 0x63, 0x95, 0x3a, 0xd1, 0xf7, 0x26, 0xc3, 0xcf, 0x0e, 0x33, 0x71, 0x48, + 0x1c, 0x28, 0x11, 0xa3, 0xb0, 0xd7, 0x6c, 0x22, 0xd4, 0x62, 0xa7, 0x0d, 0xfc, 0xd7, 0x84, 0x21, + 0x14, 0x13, 0x4f, 0x33, 0x8e, 0x28, 0x86, 0xe2, 0x87, 0x4e, 0x81, 0x02, 0x8d, 0x2b, 0x0e, 0x5f, + 0x3a, 0xd7, 0x57, 0x18, 0xe7, 0x44, 0x61, 0xdc, 0x04, 0x33, 0xb6, 0x83, 0xab, 0xdb, 0x30, 0x5d, + 0x73, 0xb7, 0x1b, 0xb7, 0x8a, 0x48, 0xcb, 0x0d, 0x86, 0x8c, 0x2a, 0xf7, 0xdb, 0xea, 0x31, 0x5d, + 0x28, 0x46, 0xfd, 0xff, 0x83, 0xe3, 0x17, 0xd9, 0x09, 0xdb, 0x2e, 0x2b, 0x39, 0x1b, 0xed, 0x73, + 0xd7, 0x53, 0xf2, 0xa2, 0xf8, 0xe7, 0xea, 0x31, 0xbd, 0xb7, 0x30, 0xf5, 0x47, 0xc0, 0x1c, 0x7e, + 0x6d, 0x39, 0x97, 0x7d, 0xc2, 0x95, 0x68, 0x43, 0xa3, 0xa7, 0xf8, 0x75, 0xe1, 0xc7, 0xd5, 0x63, + 0x7a, 0x4f, 0x51, 0x6a, 0x0d, 0x80, 0x1d, 0x6f, 0xb7, 0xcd, 0x0a, 0xce, 0x45, 0x8b, 0x64, 0x4f, + 0xc1, 0xab, 0xc1, 0x4f, 0xab, 0xc7, 0x74, 0xae, 0x08, 0x75, 0x0d, 0x4c, 0x79, 0x57, 0x3c, 0x56, + 0x5e, 0x3e, 0x7a, 0x73, 0xbb, 0xa7, 0x3c, 0xc3, 0xff, 0x67, 0xf5, 0x98, 0x1e, 0x16, 0xa0, 0x56, + 0xc0, 0x64, 0xe7, 0x22, 0x2b, 0xac, 0xd0, 0xe7, 0x2e, 0xe5, 0xfe, 0x85, 0x6d, 0x5c, 0x0c, 0xca, + 0x0a, 0x7e, 0xc7, 0x84, 0x35, 0xbb, 0xfb, 0xac, 0xac, 0x09, 0x69, 0xc2, 0xca, 0xfe, 0x3f, 0x98, + 0xb0, 0xa0, 0x00, 0xb5, 0x02, 0xa6, 0xba, 0xb6, 0xd9, 0xe9, 0xee, 0x38, 0x5e, 0x77, 0x7e, 0xb2, + 0xc7, 0x2f, 0x32, 0xba, 0xb4, 0x3a, 0xfb, 0x47, 0x0f, 0xff, 0x56, 0x9f, 0x02, 0x4e, 0xed, 0x91, + 0xfb, 0xd9, 0xb4, 0x2b, 0x56, 0xd7, 0xb3, 0xec, 0x6d, 0x3f, 0xb8, 0x1f, 0xed, 0x4d, 0xfa, 0x7f, + 0x54, 0x17, 0xd8, 0x29, 0x05, 0x40, 0x74, 0x13, 0xf6, 0x6e, 0xc6, 0xd1, 0x6a, 0xb9, 0xc3, 0x09, + 0xcf, 0x00, 0x39, 0xfc, 0x89, 0x78, 0x16, 0xce, 0xf5, 0x5f, 0xe8, 0xeb, 0x95, 0x1d, 0xa2, 0xc0, + 0xf8, 0x27, 0x3c, 0x36, 0xda, 0xce, 0x86, 0xeb, 0x6c, 0xbb, 0xa8, 0xdb, 0x65, 0x0e, 0x87, 0x5c, + 0x0a, 0x56, 0x70, 0xab, 0xbb, 0x6e, 0x6d, 0x53, 0xeb, 0x89, 0xb9, 0x63, 0xf3, 0x49, 0x74, 0xb6, + 0x59, 0x45, 0x97, 0xc9, 0x9d, 0x5f, 0xf3, 0xc7, 0xfd, 0xd9, 0xa6, 0x9f, 0x02, 0x6f, 0x05, 0x33, + 0xbc, 0x92, 0xd1, 0xcb, 0x49, 0xac, 0xd0, 0xf6, 0x62, 0x6f, 0xf0, 0x16, 0x30, 0x27, 0xca, 0x34, + 0x37, 0xc4, 0x28, 0x7e, 0x57, 0x08, 0x6f, 0x06, 0xc7, 0x7b, 0x14, 0xcb, 0x3f, 0xb3, 0x9f, 0x09, + 0xcf, 0xec, 0xdf, 0x04, 0x40, 0x28, 0xc5, 0x7d, 0x8b, 0xb9, 0x11, 0x4c, 0x05, 0x72, 0xd9, 0x37, + 0xc3, 0x57, 0x32, 0x60, 0xd2, 0x17, 0xb6, 0x7e, 0x19, 0xf0, 0xf8, 0x62, 0x73, 0x1b, 0x08, 0x6c, + 0x9a, 0x2d, 0xa4, 0xe1, 0x71, 0x24, 0x74, 0xe3, 0x35, 0x2c, 0xaf, 0xed, 0x1f, 0x47, 0xe9, 0x4d, + 0x56, 0x37, 0x00, 0xb0, 0x08, 0x46, 0x46, 0x78, 0x3e, 0xe5, 0x49, 0x09, 0xf4, 0x81, 0xca, 0x03, + 0x57, 0xc6, 0xd9, 0xc7, 0xb2, 0xc3, 0x23, 0x53, 0x20, 0x5f, 0xdf, 0x28, 0x95, 0xb5, 0xe2, 0x31, + 0x75, 0x0e, 0x00, 0xed, 0xd9, 0x1b, 0x9a, 0x5e, 0xd1, 0xaa, 0x65, 0xad, 0x98, 0x81, 0xaf, 0xc8, + 0x82, 0xa9, 0x40, 0x09, 0xfa, 0x36, 0x52, 0x63, 0xa2, 0x35, 0xf0, 0xfe, 0x87, 0x83, 0x4a, 0xc5, + 0x0b, 0xd9, 0xd3, 0xc1, 0xb5, 0x7b, 0x5d, 0xb4, 0x6c, 0xb9, 0x5d, 0x4f, 0x77, 0x2e, 0x2f, 0x3b, + 0x6e, 0x10, 0xce, 0xd2, 0xbf, 0xe7, 0x38, 0xe2, 0x33, 0xb6, 0x28, 0x5a, 0x88, 0x1c, 0x61, 0x40, + 0x2e, 0x5b, 0x19, 0x0e, 0x13, 0x70, 0xb9, 0x1e, 0xbd, 0x58, 0xb8, 0x8b, 0x74, 0xe7, 0x72, 0xb7, + 0x64, 0xb7, 0xca, 0x4e, 0x7b, 0x6f, 0xd7, 0xee, 0x32, 0x9b, 0x20, 0xea, 0x33, 0xe6, 0x0e, 0xb9, + 0xdd, 0x65, 0x0e, 0x80, 0x72, 0x6d, 0x6d, 0x4d, 0x2b, 0x1b, 0x95, 0x5a, 0xb5, 0x78, 0x0c, 0x73, + 0xcb, 0x28, 0x2d, 0xae, 0x61, 0xee, 0xfc, 0x28, 0x98, 0xf4, 0x75, 0xfa, 0xc0, 0xa5, 0xce, 0x25, + 0x30, 0xe9, 0x6b, 0x39, 0x1b, 0x11, 0x1e, 0xd7, 0x7b, 0x14, 0x6d, 0xd7, 0x74, 0x3d, 0xe2, 0x3f, + 0xed, 0x17, 0xb2, 0x68, 0x76, 0x91, 0x1e, 0xfc, 0x76, 0xf6, 0x89, 0x8c, 0x02, 0x15, 0xcc, 0x95, + 0xd6, 0xd6, 0x1a, 0x35, 0xbd, 0x51, 0xad, 0x19, 0xab, 0x95, 0xea, 0x0a, 0x1d, 0x21, 0x2b, 0x2b, + 0xd5, 0x9a, 0xae, 0xd1, 0x01, 0xb2, 0x5e, 0xcc, 0xd0, 0xdb, 0x85, 0x16, 0x27, 0x41, 0xa1, 0x43, + 0xb8, 0x0b, 0xbf, 0xa8, 0x24, 0x3c, 0x69, 0x1a, 0xe0, 0x14, 0x71, 0xff, 0x89, 0xe0, 0x83, 0x9e, + 0xed, 0x73, 0x4e, 0xeb, 0x2c, 0x98, 0xa1, 0xb6, 0x5c, 0x97, 0x2c, 0xdf, 0xb3, 0x2b, 0x04, 0x85, + 0x34, 0xf8, 0x91, 0x6c, 0x82, 0xe3, 0xa7, 0x7d, 0x29, 0x4a, 0x66, 0x5c, 0xfc, 0xd9, 0x30, 0xb7, + 0x09, 0xa9, 0x60, 0xae, 0x52, 0x35, 0x34, 0xbd, 0x5a, 0x5a, 0x63, 0x59, 0x14, 0x75, 0x1e, 0x9c, + 0xac, 0xd6, 0x58, 0x00, 0xa7, 0x3a, 0xb9, 0xb7, 0x74, 0x7d, 0xa3, 0xa6, 0x1b, 0xc5, 0xbc, 0x7a, + 0x1a, 0xa8, 0xf4, 0x59, 0xb8, 0xf6, 0xb7, 0xa0, 0x3e, 0x1e, 0xdc, 0xbc, 0x56, 0x59, 0xaf, 0x18, + 0x8d, 0xda, 0x72, 0x43, 0xaf, 0x5d, 0xa8, 0x63, 0x04, 0x75, 0x6d, 0xad, 0x84, 0x05, 0x89, 0xbb, + 0x65, 0x68, 0x42, 0xbd, 0x06, 0x1c, 0x27, 0x37, 0x88, 0x91, 0xab, 0x83, 0x69, 0x7d, 0x93, 0xea, + 0x0d, 0x60, 0xbe, 0x52, 0xad, 0x6f, 0x2e, 0x2f, 0x57, 0xca, 0x15, 0xad, 0x6a, 0x34, 0x36, 0x34, + 0x7d, 0xbd, 0x52, 0xaf, 0xe3, 0x7f, 0x8b, 0x53, 0xf0, 0x43, 0x0a, 0x28, 0xd0, 0x3e, 0x13, 0xbe, + 0x47, 0x01, 0xb3, 0xe7, 0xcd, 0xb6, 0x85, 0x07, 0x0a, 0x72, 0xb9, 0x13, 0xbc, 0x51, 0x70, 0x4d, + 0xf7, 0xc8, 0x25, 0x50, 0xcc, 0x35, 0x9d, 0xbc, 0xc0, 0x9f, 0xe4, 0x45, 0xc3, 0x10, 0x45, 0xe3, + 0x99, 0x31, 0x40, 0xd0, 0x1a, 0x17, 0x84, 0xda, 0x22, 0x26, 0x37, 0xaf, 0x09, 0x70, 0xbe, 0x20, + 0xe0, 0x5c, 0x3e, 0x5c, 0xf1, 0xc9, 0xc0, 0xff, 0x95, 0x51, 0x81, 0x5f, 0x04, 0x33, 0x9b, 0xd5, + 0xd2, 0xa6, 0xb1, 0x5a, 0xd3, 0x2b, 0x3f, 0x4c, 0xc2, 0xc0, 0xce, 0x82, 0xa9, 0xe5, 0x9a, 0xbe, + 0x58, 0x59, 0x5a, 0xd2, 0xaa, 0xc5, 0xbc, 0x7a, 0x2d, 0xb8, 0xa6, 0xae, 0xe9, 0xe7, 0x2b, 0x65, + 0xad, 0xb1, 0x59, 0x2d, 0x9d, 0x2f, 0x55, 0xd6, 0x48, 0x1f, 0x51, 0x88, 0xb9, 0x98, 0x6a, 0x02, + 0xfe, 0x78, 0x0e, 0x00, 0xda, 0x74, 0x6c, 0x49, 0xf3, 0xd7, 0x17, 0xfd, 0x79, 0xd2, 0x49, 0x43, + 0x58, 0x4c, 0x84, 0xfe, 0x56, 0xc0, 0xa4, 0xcb, 0x3e, 0xb0, 0xe5, 0x93, 0x41, 0xe5, 0xd0, 0x47, + 0xbf, 0x34, 0x3d, 0xf8, 0x1d, 0xbe, 0x37, 0xc9, 0x1c, 0x21, 0x92, 0xb0, 0x64, 0x48, 0x2e, 0x8f, + 0x06, 0x48, 0xf8, 0xc2, 0x0c, 0x98, 0x13, 0x1b, 0x86, 0x1b, 0x41, 0x8c, 0x29, 0xb9, 0x46, 0x88, + 0x3f, 0x73, 0x46, 0xd6, 0xd9, 0xbb, 0xd8, 0x70, 0x0a, 0x7c, 0xcd, 0xa4, 0xa7, 0x31, 0x7d, 0x8b, + 0xa5, 0x98, 0xc1, 0xc4, 0x63, 0xa3, 0x83, 0xde, 0x5d, 0x6b, 0x5c, 0xf1, 0x8a, 0x0a, 0x7c, 0x57, + 0x0e, 0xcc, 0x0a, 0xf7, 0x23, 0xc1, 0x7f, 0xca, 0xc8, 0xdc, 0x79, 0xc2, 0xdd, 0xbc, 0x94, 0x39, + 0xec, 0xcd, 0x4b, 0x67, 0x7f, 0x22, 0x03, 0x26, 0x58, 0x22, 0x61, 0x70, 0xad, 0x8a, 0x6d, 0x81, + 0xe3, 0x60, 0x7a, 0x45, 0x33, 0x1a, 0x75, 0xa3, 0xa4, 0x1b, 0xda, 0x52, 0x31, 0xa3, 0x9e, 0x02, + 0x27, 0x36, 0x34, 0xbd, 0x5e, 0xc3, 0xfc, 0xdc, 0xd0, 0x6b, 0xa4, 0x23, 0xa4, 0x6c, 0xc6, 0x30, + 0xac, 0x69, 0x4b, 0x2b, 0x5a, 0x63, 0xb1, 0x54, 0xd7, 0x8a, 0x0a, 0xfe, 0xb7, 0x5a, 0x33, 0xb4, + 0x7a, 0x63, 0xa9, 0x52, 0xd2, 0x1f, 0x2a, 0xe6, 0xf0, 0xbf, 0x75, 0x43, 0x2f, 0x19, 0xda, 0x4a, + 0xa5, 0x4c, 0x6e, 0xfc, 0xc5, 0x1a, 0x90, 0xc7, 0x83, 0xa9, 0xb6, 0xbe, 0x61, 0x3c, 0x54, 0x2c, + 0x24, 0xf7, 0xea, 0xeb, 0x6d, 0xdc, 0x98, 0xbd, 0xfa, 0xe2, 0xaa, 0x1f, 0xc3, 0xd5, 0x50, 0x0a, + 0x28, 0x52, 0x0a, 0xb4, 0x2b, 0x1d, 0xe4, 0x5a, 0xc8, 0x6e, 0x22, 0x78, 0x49, 0x26, 0x64, 0xdc, + 0x81, 0xf8, 0x55, 0x64, 0x8c, 0xe0, 0x2c, 0x4f, 0xfa, 0xd2, 0x63, 0xb4, 0xe7, 0x0e, 0x18, 0xed, + 0x9f, 0x4a, 0xea, 0xd6, 0xd7, 0x4b, 0xee, 0x48, 0x20, 0xfb, 0x78, 0x12, 0xb7, 0xbe, 0x01, 0x14, + 0x8c, 0x25, 0x12, 0x64, 0xc4, 0x98, 0x5e, 0x54, 0xe0, 0x5b, 0xa7, 0x40, 0x91, 0x12, 0xca, 0xf9, + 0x4a, 0xfd, 0x22, 0xbb, 0xa4, 0xaa, 0x91, 0x20, 0xf4, 0x93, 0x7f, 0x34, 0x37, 0x2b, 0x1e, 0xcd, + 0x15, 0x96, 0xde, 0x94, 0xde, 0xfd, 0xed, 0xa4, 0xea, 0xc7, 0x39, 0x46, 0x45, 0x5f, 0x91, 0x94, + 0x9e, 0xfa, 0xc5, 0x56, 0x3f, 0x9e, 0x8b, 0x54, 0xd8, 0x55, 0x49, 0x9a, 0x2c, 0x32, 0xf1, 0xf7, + 0x45, 0x25, 0xf5, 0x92, 0x15, 0x1c, 0xd3, 0x62, 0x2e, 0x51, 0x4a, 0xcf, 0x4b, 0x76, 0x10, 0x05, + 0xe9, 0xa3, 0xf0, 0xbd, 0x2c, 0xc8, 0xd5, 0x1d, 0xd7, 0x1b, 0x15, 0x06, 0x49, 0x77, 0xf6, 0x38, + 0x0e, 0xd4, 0xa3, 0x67, 0x4e, 0xe9, 0xed, 0xec, 0xc5, 0xd7, 0x3f, 0x86, 0xe8, 0x59, 0xc7, 0xc1, + 0x1c, 0xa5, 0x24, 0x88, 0x65, 0xfe, 0xdd, 0x2c, 0xed, 0xaf, 0x1e, 0x94, 0x45, 0xe4, 0x2c, 0x98, + 0xe1, 0x76, 0xd6, 0x82, 0x7b, 0x35, 0xf9, 0x34, 0xf8, 0xeb, 0x3c, 0x2e, 0x4b, 0x22, 0x2e, 0xfd, + 0xe6, 0x8d, 0x41, 0x38, 0xf0, 0x51, 0xf5, 0x4c, 0x49, 0x02, 0x71, 0xc5, 0x54, 0x9e, 0x3e, 0x22, + 0xcf, 0x57, 0x40, 0x81, 0x79, 0x36, 0x8d, 0x14, 0x81, 0xa4, 0x9a, 0x11, 0x30, 0x41, 0xce, 0x03, + 0x4a, 0x19, 0xb5, 0x66, 0xc4, 0xd7, 0x9f, 0x3e, 0x0e, 0xff, 0xca, 0x5c, 0xf6, 0x4a, 0xfb, 0xa6, + 0xd5, 0x36, 0x2f, 0xb6, 0x13, 0x04, 0xc0, 0xfc, 0x48, 0xc2, 0x43, 0x4a, 0x41, 0x53, 0x85, 0xfa, + 0x22, 0x38, 0xfe, 0x54, 0x30, 0xe5, 0x06, 0x0b, 0x6b, 0xfe, 0x19, 0xee, 0x1e, 0x77, 0x49, 0xf6, + 0x5d, 0x0f, 0x73, 0x26, 0x3a, 0x91, 0x24, 0x45, 0xcf, 0x58, 0x4e, 0x50, 0x4c, 0x97, 0x5a, 0xad, + 0x65, 0x64, 0x7a, 0x7b, 0x2e, 0x6a, 0x25, 0x1a, 0x22, 0x44, 0x16, 0x4d, 0xf1, 0x9c, 0x10, 0xc2, + 0x56, 0xad, 0x89, 0xe8, 0xfc, 0xe0, 0x80, 0xde, 0xc0, 0xa7, 0x65, 0x24, 0x5d, 0xd2, 0x5b, 0x02, + 0x48, 0x6a, 0x02, 0x24, 0xcf, 0x18, 0x8e, 0x88, 0xf4, 0x01, 0xf9, 0x25, 0x05, 0xcc, 0x51, 0x3b, + 0x61, 0xd4, 0x98, 0xfc, 0x6e, 0x42, 0x4f, 0x08, 0xee, 0xb6, 0x08, 0x9e, 0x9c, 0x91, 0xc0, 0x92, + 0xc4, 0x6f, 0x42, 0x8e, 0x8e, 0xf4, 0x91, 0xf9, 0x6c, 0x01, 0x00, 0xce, 0xbb, 0xed, 0x23, 0x85, + 0x30, 0x84, 0x14, 0x7c, 0x1b, 0x9b, 0x7f, 0xd4, 0x85, 0xd8, 0xa4, 0x9c, 0xe7, 0x5a, 0xb0, 0xad, + 0x22, 0x26, 0x4a, 0x8d, 0x2a, 0x7f, 0x96, 0xd0, 0xe6, 0x65, 0xbe, 0x65, 0x03, 0x07, 0xf7, 0x21, + 0x7b, 0xb9, 0x8f, 0x26, 0x30, 0x7e, 0x07, 0x91, 0x92, 0x0c, 0xb5, 0xb5, 0x21, 0xe6, 0x92, 0xf3, + 0xe0, 0xa4, 0xae, 0x95, 0x96, 0x6a, 0xd5, 0xb5, 0x87, 0xf8, 0x6b, 0x05, 0x8a, 0x0a, 0x3f, 0x39, + 0x49, 0x05, 0xb6, 0xd7, 0x25, 0xec, 0x03, 0x45, 0x5e, 0xc5, 0xcd, 0x56, 0xb8, 0xe9, 0xfc, 0xe0, + 0x5e, 0x4d, 0xa2, 0xd8, 0xa3, 0x44, 0xe1, 0xb9, 0xbc, 0x1a, 0xfd, 0xb4, 0x02, 0x8a, 0xe1, 0x2d, + 0xb4, 0xec, 0x8e, 0x98, 0x9a, 0xe8, 0xfc, 0xd6, 0xa1, 0xbb, 0x28, 0xa1, 0xf3, 0x9b, 0x9f, 0xa0, + 0xde, 0x0a, 0xe6, 0x9a, 0x3b, 0xa8, 0x79, 0xa9, 0x62, 0xfb, 0xbb, 0xc3, 0x74, 0x2b, 0xb1, 0x27, + 0x55, 0x04, 0xe6, 0x41, 0x11, 0x18, 0x71, 0x12, 0x2d, 0x0c, 0xd2, 0x3c, 0x51, 0x11, 0xb8, 0xfc, + 0x61, 0x80, 0x4b, 0x55, 0xc0, 0xe5, 0x9e, 0xa1, 0x4a, 0x4d, 0x06, 0x4b, 0x75, 0x08, 0x58, 0x20, + 0x38, 0x5d, 0xdb, 0x30, 0x2a, 0xb5, 0x6a, 0x63, 0xb3, 0xae, 0x2d, 0x35, 0x16, 0x7d, 0x70, 0xea, + 0x45, 0x05, 0x7e, 0x23, 0x0b, 0x26, 0x28, 0x59, 0xdd, 0x9e, 0x5b, 0x63, 0xe3, 0xbd, 0xfe, 0xe0, + 0x5b, 0xa5, 0xcf, 0xf0, 0x07, 0x8c, 0x60, 0xf5, 0x44, 0xf4, 0x53, 0x4f, 0x07, 0x13, 0x14, 0x64, + 0xdf, 0x69, 0xe4, 0x4c, 0x44, 0x2f, 0xc5, 0x8a, 0xd1, 0xfd, 0xec, 0x92, 0xe7, 0xf9, 0x07, 0x90, + 0x31, 0x96, 0x09, 0xe2, 0xc4, 0xaa, 0xd5, 0xf5, 0x1c, 0xf7, 0x2a, 0x7c, 0x7d, 0x06, 0x4c, 0x9c, + 0x47, 0x6e, 0xd7, 0x72, 0xec, 0x03, 0x9b, 0xa5, 0x37, 0x81, 0xe9, 0x8e, 0x8b, 0xf6, 0x2d, 0x67, + 0xaf, 0x1b, 0x4e, 0xcc, 0xf9, 0x24, 0x15, 0x82, 0x49, 0x73, 0xcf, 0xdb, 0x71, 0xdc, 0xf0, 0xbc, + 0xbc, 0xff, 0xae, 0x9e, 0x01, 0x80, 0x3e, 0x57, 0xcd, 0x5d, 0xc4, 0xb6, 0x80, 0xb9, 0x14, 0x55, + 0x05, 0x39, 0xcf, 0xda, 0x45, 0x2c, 0xdc, 0x1d, 0x79, 0x56, 0xe7, 0xc1, 0x04, 0x09, 0x4e, 0xc5, + 0x82, 0x80, 0x29, 0xba, 0xff, 0x0a, 0xff, 0xab, 0x02, 0xa6, 0x57, 0x90, 0xc7, 0x48, 0xed, 0xf2, + 0x51, 0x67, 0x62, 0x42, 0x42, 0xe3, 0xee, 0xb5, 0x6d, 0x76, 0xfd, 0xdf, 0x82, 0xd5, 0x37, 0x31, + 0x31, 0x0c, 0xbd, 0xa7, 0x70, 0xd1, 0x35, 0xe1, 0xbb, 0xb2, 0xb2, 0xe7, 0x1c, 0x19, 0x33, 0x17, + 0x38, 0x02, 0x23, 0x65, 0x6b, 0x72, 0x9f, 0xe5, 0x38, 0x10, 0x0a, 0x95, 0x2f, 0x89, 0x15, 0xa3, + 0x07, 0xb9, 0x25, 0x4f, 0x48, 0x0e, 0xa6, 0x24, 0x7d, 0xf1, 0xfa, 0xb6, 0x02, 0xa6, 0xeb, 0x3b, + 0xce, 0x65, 0x46, 0x00, 0x7f, 0x11, 0x6a, 0x1c, 0x54, 0x37, 0x80, 0xa9, 0xfd, 0x1e, 0x98, 0xc2, + 0x84, 0xe8, 0xfb, 0x3a, 0xe1, 0x23, 0x4a, 0x52, 0x98, 0x38, 0xe2, 0x46, 0x7e, 0x9b, 0xa6, 0xfa, + 0x83, 0x60, 0x82, 0x51, 0xcd, 0xe6, 0xcf, 0xf1, 0x00, 0xfb, 0x99, 0xf9, 0x06, 0xe6, 0xc4, 0x06, + 0x26, 0x43, 0x3e, 0xba, 0x71, 0x63, 0x08, 0x38, 0x9e, 0x25, 0xe7, 0xe3, 0x7d, 0xe0, 0xcb, 0x23, + 0x00, 0x1e, 0x7e, 0x27, 0x23, 0xbb, 0xca, 0x14, 0x70, 0x20, 0xa0, 0xe0, 0x50, 0x01, 0xdc, 0x07, + 0x16, 0x97, 0x3e, 0x3f, 0x5f, 0x91, 0x03, 0x33, 0x4b, 0xd6, 0xd6, 0x56, 0xd0, 0xeb, 0xbd, 0x38, + 0x23, 0xc7, 0xd2, 0xe8, 0x1d, 0x4a, 0x6c, 0xb4, 0xec, 0xb9, 0x2e, 0xb2, 0xfd, 0x46, 0x31, 0x75, + 0xea, 0x49, 0x55, 0x6f, 0x03, 0xc7, 0xfd, 0x8e, 0xde, 0xcf, 0x48, 0xc5, 0xb2, 0x37, 0x19, 0x7e, + 0x4b, 0x7a, 0x8b, 0xc2, 0xe7, 0x28, 0xdf, 0xa4, 0x08, 0x05, 0xbc, 0x17, 0xcc, 0xee, 0xd0, 0xdc, + 0x64, 0x1e, 0xe7, 0x77, 0x96, 0xa7, 0x7b, 0x02, 0x65, 0xae, 0xa3, 0x6e, 0xd7, 0xdc, 0x46, 0xba, + 0x98, 0xb9, 0x47, 0x7d, 0x95, 0x24, 0xb7, 0x55, 0xc8, 0xed, 0x76, 0x48, 0xb4, 0x24, 0x7d, 0xe9, + 0xf8, 0xea, 0x63, 0x41, 0x6e, 0xd9, 0x6a, 0x23, 0xf8, 0x33, 0x59, 0x30, 0xa5, 0xa3, 0xa6, 0x63, + 0x37, 0xf1, 0x1b, 0xe7, 0xaf, 0xf0, 0x0f, 0xbc, 0xee, 0x3c, 0x20, 0x42, 0x73, 0xbb, 0xd0, 0x20, + 0x5c, 0xce, 0x42, 0x50, 0x46, 0x84, 0xde, 0xbc, 0x36, 0xe0, 0x4d, 0x59, 0xe0, 0xcd, 0x39, 0xf9, + 0xa2, 0xc6, 0x10, 0x87, 0x1b, 0xdb, 0x91, 0x5b, 0x5b, 0x6d, 0xc7, 0x14, 0x56, 0x32, 0x7a, 0x6d, + 0x9b, 0xdb, 0x41, 0xd1, 0x77, 0x3b, 0x77, 0xbc, 0x0d, 0xcb, 0xb6, 0x83, 0x73, 0x8d, 0x07, 0xd2, + 0xc5, 0x4d, 0xb8, 0xd8, 0xd0, 0x10, 0xa4, 0xed, 0xac, 0xf6, 0x08, 0xc9, 0xbe, 0x15, 0xcc, 0x5d, + 0xbc, 0xea, 0xa1, 0x2e, 0xcb, 0xc5, 0xaa, 0xcd, 0xe9, 0x3d, 0xa9, 0xf0, 0xdd, 0x52, 0x21, 0x24, + 0x62, 0x2a, 0x4c, 0xc6, 0xea, 0xd5, 0x21, 0xcc, 0xf9, 0x93, 0xa0, 0x58, 0xad, 0x2d, 0x69, 0xc4, + 0x7d, 0xc6, 0xf7, 0x47, 0xd8, 0x86, 0x2f, 0x51, 0xc0, 0x0c, 0xd9, 0x8b, 0xf6, 0x51, 0xb8, 0x59, + 0x62, 0xff, 0x1b, 0x7e, 0x49, 0xda, 0xb5, 0x86, 0x34, 0x99, 0xaf, 0x20, 0x9a, 0xd1, 0x5b, 0x56, + 0xbb, 0x97, 0xd1, 0x79, 0xbd, 0x27, 0xb5, 0x0f, 0x20, 0x4a, 0x5f, 0x40, 0x7e, 0x47, 0xca, 0xbf, + 0x66, 0x10, 0x75, 0x47, 0x85, 0xca, 0xfb, 0x15, 0x30, 0x8d, 0xe7, 0x7f, 0x3e, 0x28, 0x35, 0x01, + 0x14, 0xc7, 0x6e, 0x5f, 0x0d, 0xe7, 0xb8, 0xfe, 0x6b, 0x22, 0x25, 0xf9, 0x4b, 0xe9, 0x69, 0x18, + 0x61, 0x11, 0x47, 0xcb, 0x98, 0xf0, 0x7b, 0x9f, 0xd4, 0xe4, 0x6c, 0x00, 0x71, 0x47, 0x05, 0xdf, + 0x6f, 0xe6, 0x41, 0x61, 0xb3, 0x43, 0x90, 0xfb, 0x5a, 0x56, 0x26, 0x68, 0xf2, 0x01, 0xdf, 0x6a, + 0x6c, 0x66, 0xb5, 0x9d, 0xa6, 0xd9, 0xde, 0x08, 0x0f, 0xa9, 0x84, 0x09, 0xea, 0x3d, 0xcc, 0xdd, + 0x8a, 0x9e, 0xf0, 0xb9, 0x35, 0x36, 0x9e, 0x30, 0xe1, 0x11, 0xe7, 0xc7, 0x7e, 0x07, 0x38, 0xd1, + 0xb2, 0xba, 0xe6, 0xc5, 0x36, 0xd2, 0xec, 0xa6, 0x7b, 0x95, 0xb2, 0x83, 0xba, 0xa6, 0x1c, 0xfc, + 0xa0, 0xde, 0x07, 0xf2, 0x5d, 0xef, 0x6a, 0x9b, 0x4e, 0xfc, 0x78, 0xb7, 0xf7, 0xc8, 0xaa, 0xea, + 0x38, 0xbb, 0x4e, 0xff, 0xe2, 0xef, 0x12, 0x9c, 0x90, 0xbc, 0x17, 0xf1, 0x2e, 0x50, 0x70, 0x5c, + 0x6b, 0xdb, 0xa2, 0x61, 0xfa, 0xe7, 0x0e, 0x84, 0xc9, 0xa2, 0xa6, 0x40, 0x8d, 0x64, 0xd1, 0x59, + 0x56, 0xf8, 0x3e, 0xe9, 0xcb, 0xf9, 0x09, 0x8d, 0x14, 0x9c, 0xf1, 0xdc, 0x8d, 0xf8, 0x6a, 0xa9, + 0x68, 0x19, 0xd1, 0x64, 0xa5, 0x3f, 0x08, 0x7f, 0x2e, 0x0b, 0x26, 0x97, 0x9c, 0xcb, 0x36, 0x11, + 0xd8, 0xbb, 0xe5, 0x6c, 0xd6, 0x3e, 0xe7, 0xa7, 0xc4, 0x1b, 0x9d, 0x62, 0x9d, 0xa5, 0x49, 0x6b, + 0xfd, 0x2a, 0x23, 0x60, 0x88, 0xd5, 0x00, 0xc9, 0x1b, 0x78, 0xe2, 0xea, 0x49, 0x9f, 0xaf, 0x7f, + 0xa2, 0x80, 0xdc, 0x92, 0xeb, 0x74, 0xe0, 0x5b, 0x32, 0x09, 0xf6, 0x91, 0x5b, 0xae, 0xd3, 0x31, + 0xc8, 0xe5, 0x1a, 0xa1, 0x87, 0x38, 0x9f, 0xa6, 0xde, 0x0d, 0x26, 0x3b, 0x4e, 0xd7, 0xf2, 0xfc, + 0xe9, 0xc0, 0xdc, 0x9d, 0x8f, 0xe9, 0xab, 0x95, 0x1b, 0x2c, 0x93, 0x1e, 0x64, 0xc7, 0xbd, 0x2f, + 0x61, 0x21, 0xe6, 0x0b, 0x66, 0xa3, 0x7f, 0xc1, 0x48, 0x4f, 0x2a, 0x7c, 0x29, 0x8f, 0xe4, 0x33, + 0x44, 0x24, 0x1f, 0xd7, 0x87, 0xc3, 0xae, 0xd3, 0x19, 0xc9, 0xce, 0xcf, 0x2b, 0x03, 0x54, 0x9f, + 0x29, 0xa0, 0x7a, 0xbb, 0x54, 0x9d, 0xe9, 0x23, 0xfa, 0xbe, 0x1c, 0x00, 0xc4, 0x5c, 0xd8, 0xc4, + 0x13, 0x19, 0x39, 0x5b, 0xe9, 0xa7, 0x72, 0x1c, 0x2f, 0x4b, 0x22, 0x2f, 0x9f, 0x10, 0x61, 0x8d, + 0x90, 0xe2, 0x23, 0x38, 0x5a, 0x02, 0xf9, 0x3d, 0xfc, 0x99, 0x71, 0x54, 0xb2, 0x08, 0xf2, 0xaa, + 0xd3, 0x3f, 0xe1, 0x1f, 0x67, 0x40, 0x9e, 0x24, 0xa8, 0x67, 0x00, 0x20, 0x03, 0x34, 0x3d, 0x6b, + 0x90, 0x21, 0x43, 0x31, 0x97, 0x42, 0xa4, 0xd5, 0x6a, 0xb1, 0xcf, 0xd4, 0xf4, 0x0d, 0x13, 0xf0, + 0xdf, 0x64, 0xd8, 0x26, 0x65, 0xb1, 0x81, 0x9c, 0x4b, 0xc1, 0x7f, 0x93, 0xb7, 0x35, 0xb4, 0x45, + 0x63, 0xac, 0xe6, 0xf4, 0x30, 0x21, 0xf8, 0x7b, 0x2d, 0xb8, 0x47, 0xc3, 0xff, 0x9b, 0xa4, 0xe0, + 0x49, 0x2d, 0x11, 0xcb, 0xc5, 0xb0, 0x8a, 0x02, 0xc9, 0xd4, 0x9b, 0x0c, 0x5f, 0x17, 0x88, 0xcd, + 0x92, 0x20, 0x36, 0x4f, 0x4a, 0xc0, 0xde, 0xf4, 0x85, 0xe7, 0x2b, 0x79, 0x30, 0x55, 0x75, 0x5a, + 0x4c, 0x76, 0xb8, 0x89, 0xdf, 0xc7, 0xf3, 0x89, 0x26, 0x7e, 0x41, 0x19, 0x11, 0x02, 0xf2, 0x80, + 0x28, 0x20, 0x72, 0x25, 0xf0, 0xf2, 0xa1, 0x2e, 0x82, 0x02, 0x91, 0xde, 0x83, 0xf7, 0xa3, 0xc4, + 0x15, 0x41, 0x58, 0xab, 0xb3, 0x3f, 0xff, 0xcd, 0xc9, 0xd8, 0x7f, 0x02, 0x79, 0xd2, 0xc0, 0x18, + 0xaf, 0x60, 0xb1, 0xa1, 0xd9, 0xf8, 0x86, 0x2a, 0xf1, 0x0d, 0xcd, 0xf5, 0x36, 0x34, 0xc9, 0x7c, + 0x3e, 0x4a, 0x42, 0xd2, 0x97, 0xf1, 0xff, 0x31, 0x01, 0x40, 0xd5, 0xdc, 0xb7, 0xb6, 0xe9, 0x96, + 0xdd, 0x5f, 0xf8, 0xf3, 0x18, 0xb6, 0xb9, 0xf6, 0x9f, 0xb9, 0x81, 0xf0, 0x6e, 0x30, 0xc1, 0xc6, + 0x3d, 0xd6, 0x90, 0x1b, 0x85, 0x86, 0x84, 0xa5, 0x50, 0xf3, 0xf2, 0x8a, 0xa7, 0xfb, 0xf9, 0x85, + 0x1b, 0xe3, 0xb2, 0x3d, 0x37, 0xc6, 0xf5, 0xdd, 0x1d, 0x88, 0xba, 0x47, 0x0e, 0xbe, 0x5b, 0xfa, + 0xc6, 0x0f, 0x8e, 0x1e, 0xae, 0x45, 0x11, 0x2a, 0x78, 0x17, 0x98, 0x70, 0x82, 0x5d, 0x46, 0x25, + 0x72, 0x3d, 0xab, 0x62, 0x6f, 0x39, 0xba, 0x9f, 0x53, 0xf2, 0x2e, 0x0f, 0x29, 0x3a, 0xc6, 0xe2, + 0x3b, 0x7f, 0x7a, 0xc5, 0x8f, 0x57, 0x83, 0xdb, 0x71, 0xc1, 0xf2, 0x76, 0xd6, 0x2c, 0xfb, 0x52, + 0x17, 0xfe, 0x07, 0x39, 0x0b, 0x92, 0xc3, 0x3f, 0x9b, 0x0c, 0x7f, 0x31, 0x1c, 0x40, 0x5d, 0x44, + 0xed, 0xbe, 0xa8, 0x52, 0xfa, 0x53, 0x1b, 0x01, 0xe0, 0x3d, 0xa0, 0x40, 0x09, 0x65, 0x9d, 0xe8, + 0xd9, 0x48, 0xfc, 0x82, 0x92, 0x74, 0xf6, 0x07, 0x7c, 0x57, 0x80, 0xe3, 0x79, 0x01, 0xc7, 0xc5, + 0x43, 0x51, 0x96, 0x3a, 0xa4, 0x67, 0x9f, 0x0c, 0x26, 0x18, 0xa7, 0xd5, 0x39, 0x5e, 0x8b, 0x8b, + 0xc7, 0x54, 0x00, 0x0a, 0xeb, 0xce, 0x3e, 0x32, 0x9c, 0x62, 0x06, 0x3f, 0x63, 0xfa, 0x0c, 0xa7, + 0x98, 0x85, 0xaf, 0x9a, 0x04, 0x93, 0x41, 0xa0, 0x90, 0xcf, 0x65, 0x41, 0x31, 0xbc, 0xdb, 0x9d, + 0xb6, 0x48, 0xde, 0x65, 0xef, 0x97, 0xa4, 0xf7, 0xdd, 0x83, 0x00, 0x1e, 0xbd, 0x95, 0x49, 0x5e, + 0x5e, 0xfd, 0x66, 0xa9, 0x7d, 0x78, 0xd9, 0x5a, 0xd2, 0x57, 0xb5, 0x4f, 0x65, 0x41, 0xbe, 0xdc, + 0x76, 0x6c, 0x94, 0xe8, 0xee, 0xea, 0xfe, 0x3b, 0x0a, 0xf0, 0xb9, 0x59, 0x59, 0x5b, 0x23, 0x64, + 0x00, 0xae, 0x5b, 0x92, 0xb7, 0x72, 0x83, 0x54, 0x6c, 0xd1, 0xe9, 0x33, 0xf4, 0x1b, 0x59, 0x30, + 0x45, 0x43, 0x6e, 0x94, 0xda, 0x6d, 0xf8, 0x98, 0x90, 0xa9, 0x7d, 0x82, 0xad, 0xc0, 0xdf, 0x91, + 0xf6, 0x9b, 0x0e, 0x5a, 0x15, 0x94, 0x9d, 0x20, 0xf6, 0x48, 0x32, 0x37, 0x5e, 0xb9, 0x3d, 0xb1, + 0x81, 0x04, 0xa5, 0xcf, 0xea, 0x3f, 0xcf, 0x62, 0x03, 0xc0, 0xbe, 0xb4, 0xe1, 0xa2, 0x7d, 0x0b, + 0x5d, 0x86, 0xd7, 0x87, 0xcc, 0x3e, 0x18, 0x4f, 0xe0, 0x8d, 0xd2, 0x8b, 0x38, 0x5c, 0x91, 0x91, + 0x5b, 0x52, 0xd3, 0xed, 0x30, 0x13, 0xeb, 0xc5, 0x7b, 0x83, 0x3c, 0x70, 0xc5, 0xe8, 0x7c, 0x76, + 0xc9, 0x35, 0x9b, 0x68, 0x2a, 0xd2, 0x67, 0xec, 0x23, 0x13, 0x60, 0x72, 0xd3, 0xee, 0x76, 0xda, + 0x66, 0x77, 0x07, 0x7e, 0x57, 0x09, 0xae, 0x8e, 0x7e, 0xaa, 0x70, 0x6c, 0xf9, 0xc7, 0xf6, 0x90, + 0xeb, 0xbb, 0xe1, 0xd0, 0x97, 0xfe, 0x77, 0x93, 0xc2, 0xf7, 0x29, 0xb2, 0x93, 0x54, 0xbf, 0xd2, + 0xf8, 0x3b, 0x95, 0x2b, 0x60, 0xb2, 0x63, 0x35, 0xbd, 0x3d, 0x37, 0xb8, 0xe9, 0xf2, 0x89, 0x72, + 0xa5, 0x6c, 0xd0, 0xbf, 0xf4, 0xe0, 0x77, 0x68, 0x82, 0x09, 0x96, 0x78, 0x60, 0x5b, 0xe8, 0xe0, + 0x31, 0xbc, 0xd3, 0xa0, 0x60, 0xba, 0x9e, 0xd5, 0xf5, 0x6f, 0x12, 0x66, 0x6f, 0xb8, 0xbb, 0xa4, + 0x4f, 0x9b, 0x6e, 0xdb, 0x0f, 0x70, 0x10, 0x24, 0xc0, 0xf7, 0x4b, 0xcd, 0x1f, 0xe3, 0x5b, 0x9e, + 0x0c, 0xf2, 0x07, 0x87, 0x58, 0x6b, 0xbe, 0x16, 0x5c, 0xa3, 0x97, 0x0c, 0xad, 0x41, 0xcf, 0xc3, + 0x07, 0x47, 0xdf, 0x5b, 0xf0, 0xbb, 0xfc, 0xfa, 0x9d, 0x38, 0x46, 0x30, 0x2e, 0x86, 0x63, 0x44, + 0x90, 0x10, 0x33, 0x46, 0xfc, 0xa6, 0xf4, 0xee, 0x4e, 0xc0, 0x92, 0x01, 0x6b, 0x79, 0x71, 0x17, + 0x8a, 0x7c, 0x40, 0x6a, 0xa7, 0x66, 0x50, 0x4d, 0x47, 0xc8, 0xfe, 0x5f, 0x9f, 0x00, 0x13, 0x2b, + 0x66, 0xbb, 0x8d, 0xdc, 0xab, 0x78, 0x68, 0x29, 0xfa, 0x14, 0xae, 0x9b, 0xb6, 0xb5, 0x85, 0xe7, + 0xf7, 0xb1, 0x9d, 0xde, 0xbb, 0xa5, 0x83, 0x55, 0xb2, 0x3a, 0x16, 0x7a, 0xcb, 0x8f, 0xe0, 0xf9, + 0x39, 0x90, 0xb3, 0xec, 0x2d, 0x87, 0x75, 0x7d, 0xbd, 0xab, 0xe8, 0xfe, 0xcf, 0x64, 0x0a, 0x42, + 0x32, 0x4a, 0xc6, 0xab, 0x94, 0xa4, 0x22, 0xfd, 0x1e, 0xf0, 0xb7, 0x72, 0x60, 0xd6, 0x27, 0xa2, + 0x62, 0xb7, 0xd0, 0x15, 0x7e, 0x49, 0xe5, 0x25, 0x39, 0xd9, 0xb3, 0x36, 0xbd, 0xed, 0x21, 0x45, + 0x45, 0xb0, 0xd4, 0x00, 0xa0, 0x69, 0x7a, 0x68, 0xdb, 0x71, 0xad, 0xa0, 0x5f, 0x7b, 0x4a, 0x92, + 0xd2, 0xca, 0xf4, 0xef, 0xab, 0x3a, 0x57, 0x8e, 0x7a, 0x1f, 0x98, 0x46, 0xc1, 0x71, 0x5a, 0x7f, + 0xc9, 0x25, 0x16, 0x2f, 0x3e, 0x3f, 0xfc, 0x73, 0xa9, 0x23, 0x3d, 0x32, 0xcd, 0x4c, 0x86, 0x59, + 0x63, 0x38, 0x1d, 0xda, 0xac, 0xae, 0x97, 0xf4, 0xfa, 0x6a, 0x69, 0x6d, 0xad, 0x52, 0x5d, 0x09, + 0x62, 0x43, 0xa8, 0x60, 0x6e, 0xa9, 0x76, 0xa1, 0xca, 0x05, 0xef, 0xc8, 0xc1, 0x0d, 0x30, 0xe9, + 0xf3, 0xab, 0x9f, 0xb3, 0x23, 0xcf, 0x33, 0xe6, 0xec, 0xc8, 0x25, 0x61, 0x23, 0xcb, 0x6a, 0x06, + 0x0e, 0x33, 0xe4, 0x19, 0xfe, 0x91, 0x09, 0xf2, 0x64, 0x6d, 0x1c, 0xbe, 0x9d, 0x5c, 0x35, 0xdc, + 0x69, 0x9b, 0x4d, 0x04, 0x77, 0x13, 0x58, 0xd5, 0x7e, 0xf4, 0xf4, 0xec, 0x81, 0xe8, 0xe9, 0xe4, + 0x91, 0x59, 0x6f, 0x27, 0xfb, 0xad, 0xc7, 0xeb, 0x34, 0x8b, 0x78, 0xfa, 0x25, 0x76, 0x97, 0x84, + 0x2e, 0xe3, 0x33, 0x32, 0x23, 0x44, 0x32, 0x9a, 0xa6, 0x64, 0x16, 0xa5, 0xdc, 0x7e, 0x4a, 0x1c, + 0x45, 0xe9, 0x6b, 0xfc, 0x17, 0x73, 0x20, 0x5f, 0xef, 0xb4, 0x2d, 0x0f, 0xbe, 0x3c, 0x3b, 0x12, + 0xcc, 0x68, 0xc4, 0x7b, 0x65, 0x60, 0xc4, 0xfb, 0x70, 0x17, 0x34, 0x27, 0xb1, 0x0b, 0x6a, 0xa0, + 0x2b, 0x9e, 0xb8, 0x0b, 0x7a, 0x37, 0x8b, 0xef, 0x44, 0xf7, 0x50, 0x1f, 0xd7, 0x87, 0xa5, 0xa4, + 0x59, 0x7d, 0x02, 0x87, 0x9d, 0x7d, 0x32, 0x8b, 0x5f, 0x04, 0x40, 0x61, 0xb1, 0x66, 0x18, 0xb5, + 0xf5, 0xe2, 0x31, 0x12, 0xf8, 0xa2, 0xb6, 0x51, 0xcc, 0xa8, 0x53, 0x20, 0x5f, 0xa9, 0x56, 0x35, + 0xbd, 0x98, 0x25, 0x11, 0x95, 0x2a, 0xc6, 0x9a, 0x56, 0x54, 0xc4, 0xf0, 0xc7, 0xb1, 0x66, 0xb4, + 0x58, 0x77, 0x9a, 0xe2, 0x25, 0x67, 0x50, 0x47, 0xd3, 0x93, 0xbe, 0x70, 0xfd, 0x17, 0x05, 0xe4, + 0xd7, 0x91, 0xbb, 0x8d, 0xe0, 0x8f, 0x25, 0xd8, 0xac, 0xdb, 0xb2, 0xdc, 0x2e, 0x8d, 0x3f, 0x15, + 0x6e, 0xd6, 0xf1, 0x69, 0xea, 0x2d, 0x60, 0xb6, 0x8b, 0x9a, 0x8e, 0xdd, 0xf2, 0x33, 0xd1, 0xfe, + 0x48, 0x4c, 0x84, 0x2f, 0x4b, 0x08, 0x19, 0x21, 0x74, 0x24, 0x3b, 0x6e, 0x49, 0x80, 0xe9, 0x57, + 0x6b, 0xfa, 0xc0, 0x7c, 0x4b, 0xc1, 0x3f, 0x75, 0xae, 0xc2, 0x97, 0x49, 0xef, 0xa2, 0xde, 0x01, + 0x0a, 0x44, 0x4c, 0xfd, 0x31, 0xba, 0x7f, 0x7f, 0xcc, 0xf2, 0xa8, 0x8b, 0xe0, 0x44, 0x17, 0xb5, + 0x51, 0xd3, 0x43, 0x2d, 0xac, 0xba, 0xfa, 0xc0, 0x4e, 0xe1, 0x60, 0x76, 0xf8, 0xa7, 0x3c, 0x80, + 0xf7, 0x8a, 0x00, 0xde, 0xda, 0x87, 0x95, 0xb8, 0x41, 0xd1, 0xb6, 0x32, 0x6e, 0x46, 0xbd, 0xed, + 0x04, 0x8b, 0xdb, 0xfe, 0x3b, 0xfe, 0xb6, 0xe3, 0xed, 0xb6, 0xc9, 0x37, 0xe6, 0xc1, 0xef, 0xbf, + 0xab, 0x0b, 0x60, 0xc2, 0xb4, 0xaf, 0x92, 0x4f, 0xb9, 0x98, 0x56, 0xfb, 0x99, 0xe0, 0xab, 0x02, + 0xe4, 0xef, 0x17, 0x90, 0x7f, 0x82, 0x1c, 0xb9, 0xe9, 0x03, 0xff, 0x93, 0x13, 0x20, 0xbf, 0x61, + 0x76, 0x3d, 0x04, 0xff, 0x6f, 0x45, 0x16, 0xf9, 0x5b, 0xc1, 0xdc, 0x96, 0xd3, 0xdc, 0xeb, 0xa2, + 0x96, 0xa8, 0x94, 0x3d, 0xa9, 0xa3, 0xc0, 0x5c, 0xbd, 0x1d, 0x14, 0xfd, 0x44, 0x56, 0xac, 0xbf, + 0x9d, 0x7e, 0x20, 0x9d, 0x04, 0xd3, 0xed, 0x6e, 0x98, 0xae, 0x57, 0xdb, 0x22, 0x69, 0x41, 0x30, + 0x5d, 0x3e, 0x51, 0x80, 0xbe, 0x10, 0x03, 0xfd, 0x44, 0x34, 0xf4, 0x93, 0x12, 0xd0, 0xab, 0x25, + 0x30, 0xb9, 0x65, 0xb5, 0x11, 0xf9, 0x61, 0x8a, 0xfc, 0xd0, 0x6f, 0x4c, 0x22, 0xbc, 0x0f, 0xc6, + 0xa4, 0x65, 0xab, 0x8d, 0xf4, 0xe0, 0x37, 0x7f, 0x22, 0x03, 0xc2, 0x89, 0xcc, 0x1a, 0xf5, 0x6f, + 0xc5, 0x86, 0x97, 0x6d, 0xee, 0x22, 0x7f, 0x11, 0xcd, 0x66, 0xa7, 0x47, 0x5a, 0xa6, 0x67, 0x12, + 0x30, 0x66, 0x74, 0xf2, 0x2c, 0xfa, 0x77, 0x28, 0xbd, 0xfe, 0x1d, 0x2f, 0x50, 0x92, 0xf5, 0x88, + 0x3e, 0xb1, 0x11, 0x1a, 0x75, 0xd1, 0x07, 0x88, 0x5a, 0x8a, 0xc1, 0x3b, 0x06, 0xa6, 0x69, 0xba, + 0xc8, 0xdb, 0xe0, 0x3d, 0x2a, 0xf2, 0xba, 0x98, 0x48, 0x5c, 0xeb, 0xba, 0x75, 0x73, 0x17, 0x91, + 0xca, 0xca, 0xf8, 0x1b, 0x73, 0x99, 0x3a, 0x90, 0x1e, 0xf6, 0xbf, 0xf9, 0x51, 0xf7, 0xbf, 0xfd, + 0xda, 0x98, 0xbe, 0x1a, 0xbe, 0x26, 0x07, 0x94, 0xf2, 0x9e, 0xf7, 0xa8, 0xee, 0x7e, 0xbf, 0x27, + 0xed, 0xaf, 0xc2, 0xfa, 0xb3, 0xc8, 0xbb, 0xa6, 0xc7, 0xd4, 0xfb, 0x26, 0x94, 0x12, 0x39, 0xbf, + 0x98, 0xa8, 0xb6, 0xa5, 0x2f, 0x23, 0x6f, 0x51, 0x02, 0x87, 0xc7, 0xe7, 0x67, 0x0e, 0x6f, 0x9a, + 0x43, 0xda, 0x3f, 0x71, 0x3d, 0x43, 0xf0, 0xee, 0x77, 0x3c, 0x39, 0x21, 0xf4, 0x16, 0xd9, 0x26, + 0x27, 0xac, 0x9c, 0xd1, 0xe9, 0x0b, 0x7c, 0x85, 0xb4, 0x1b, 0x38, 0x65, 0x5b, 0xac, 0x4b, 0x60, + 0x32, 0x9b, 0x4a, 0xee, 0x3e, 0xc1, 0x98, 0x6a, 0xd3, 0x07, 0xec, 0xef, 0xa3, 0x97, 0x0c, 0x87, + 0x41, 0x0c, 0xbe, 0x5a, 0x7a, 0x5b, 0x89, 0x36, 0x7b, 0xc0, 0x7a, 0x61, 0x32, 0x7e, 0xcb, 0x6d, + 0x3a, 0xc5, 0x56, 0x9c, 0x3e, 0xc7, 0xbf, 0xa9, 0x80, 0x02, 0xdd, 0x4a, 0x84, 0x6f, 0xca, 0x24, + 0xb8, 0x88, 0xd9, 0x13, 0x5d, 0x01, 0x83, 0xf7, 0x24, 0x6b, 0x0e, 0x82, 0xcb, 0x60, 0x2e, 0x91, + 0xcb, 0xa0, 0x78, 0xae, 0x52, 0x42, 0x8f, 0x68, 0x1b, 0x53, 0x9e, 0x4e, 0x26, 0xd1, 0xb0, 0xbe, + 0x04, 0xa5, 0x8f, 0xf7, 0x4f, 0xe7, 0xc1, 0x0c, 0xad, 0xfa, 0x82, 0xd5, 0xda, 0x46, 0x1e, 0x7c, + 0x67, 0xf6, 0xfb, 0x07, 0x75, 0xb5, 0x0a, 0x66, 0x2e, 0x13, 0xb2, 0xd7, 0xcc, 0xab, 0xce, 0x9e, + 0xc7, 0x56, 0x2e, 0x6e, 0x8f, 0x5d, 0xf7, 0xa0, 0xed, 0x5c, 0xa0, 0x7f, 0xe8, 0xc2, 0xff, 0x98, + 0xc7, 0x74, 0xc1, 0x9f, 0x3a, 0x62, 0x15, 0x88, 0x91, 0xc5, 0x27, 0xa9, 0xa7, 0x41, 0x61, 0xdf, + 0x42, 0x97, 0x2b, 0x2d, 0x66, 0xdd, 0xb2, 0x37, 0xf8, 0x41, 0xe9, 0xfd, 0x57, 0x1e, 0x6e, 0x46, + 0x4b, 0xba, 0x52, 0x28, 0xb7, 0x0b, 0x3b, 0x90, 0xac, 0x31, 0x9c, 0xf1, 0x15, 0xef, 0xeb, 0x4b, + 0x72, 0x0f, 0x7c, 0x94, 0xe1, 0x9c, 0xe0, 0x32, 0x7e, 0xca, 0x80, 0x11, 0x5f, 0xe5, 0x27, 0x77, + 0x78, 0x7f, 0x40, 0xd5, 0xe9, 0x73, 0xfe, 0x75, 0x0a, 0x98, 0xaa, 0x23, 0x6f, 0xd9, 0x42, 0xed, + 0x56, 0x17, 0xba, 0x87, 0x37, 0x8d, 0xce, 0x81, 0xc2, 0x16, 0x29, 0x6c, 0xd0, 0xf9, 0x03, 0x96, + 0x0d, 0xbe, 0x26, 0x2b, 0xbb, 0xb3, 0xcb, 0x56, 0xdf, 0x7c, 0x6a, 0x47, 0x02, 0x93, 0x9c, 0x67, + 0x6e, 0x7c, 0xcd, 0xe9, 0xa3, 0xf4, 0x56, 0x05, 0xcc, 0xb0, 0x0b, 0xbe, 0x4a, 0x6d, 0x6b, 0xdb, + 0x86, 0x7b, 0x23, 0xd0, 0x10, 0xf5, 0x49, 0x20, 0x6f, 0xe2, 0xd2, 0x98, 0x93, 0x3e, 0xec, 0xdb, + 0x79, 0x92, 0xfa, 0x74, 0x9a, 0x31, 0x41, 0x8c, 0xbe, 0x50, 0xb0, 0x7d, 0x9a, 0xc7, 0x18, 0xa3, + 0x6f, 0x60, 0xe5, 0xe9, 0x23, 0xf6, 0x65, 0x05, 0x9c, 0x64, 0x04, 0x9c, 0x47, 0xae, 0x67, 0x35, + 0xcd, 0x36, 0x45, 0xee, 0x85, 0x99, 0x51, 0x40, 0xb7, 0x0a, 0x66, 0xf7, 0xf9, 0x62, 0x19, 0x84, + 0x67, 0xfb, 0x42, 0x28, 0x10, 0xa0, 0x8b, 0x3f, 0x26, 0x88, 0x75, 0x26, 0x70, 0x55, 0x28, 0x73, + 0x8c, 0xb1, 0xce, 0xa4, 0x89, 0x48, 0x1f, 0xe2, 0x97, 0xe6, 0x68, 0xf8, 0xbf, 0xb0, 0xfb, 0xfc, + 0x0b, 0x69, 0x6c, 0x37, 0xc1, 0x34, 0xc1, 0x92, 0xfe, 0xc8, 0x96, 0x21, 0x62, 0x84, 0x38, 0xe8, + 0x77, 0xd8, 0x9d, 0x42, 0xc1, 0xbf, 0x3a, 0x5f, 0x0e, 0xbc, 0x00, 0x40, 0xf8, 0x89, 0xef, 0xa4, + 0x33, 0x51, 0x9d, 0x74, 0x56, 0xae, 0x93, 0x7e, 0xa3, 0x74, 0xf0, 0x92, 0xfe, 0x64, 0x1f, 0x5e, + 0x3c, 0xe4, 0xc2, 0x56, 0x0c, 0xae, 0x3d, 0x7d, 0xb9, 0x78, 0x55, 0xae, 0xf7, 0x26, 0xe7, 0x8f, + 0x8c, 0x64, 0x3e, 0xc5, 0xf7, 0x07, 0x4a, 0x4f, 0x7f, 0x70, 0x08, 0x4b, 0xfa, 0x36, 0x70, 0x9c, + 0x56, 0x51, 0x0e, 0xc8, 0xca, 0xd3, 0xd0, 0x0c, 0x3d, 0xc9, 0xf0, 0xa3, 0x43, 0x08, 0xc1, 0xa0, + 0x6b, 0xa6, 0xe3, 0x3a, 0xb9, 0x64, 0xc6, 0x6e, 0x52, 0x01, 0x39, 0xba, 0xdb, 0xa9, 0xbf, 0x91, + 0xa3, 0xd6, 0xee, 0x26, 0xb9, 0xf6, 0x09, 0x7e, 0x21, 0x37, 0x8a, 0x11, 0xe1, 0x01, 0x90, 0x23, + 0xae, 0xea, 0x4a, 0xe4, 0x92, 0x46, 0x58, 0x65, 0x78, 0x27, 0x17, 0xba, 0xe2, 0xad, 0x1e, 0xd3, + 0xc9, 0x9f, 0xea, 0xed, 0xe0, 0xf8, 0x45, 0xb3, 0x79, 0x69, 0xdb, 0x75, 0xf6, 0xc8, 0x05, 0x39, + 0x0e, 0xbb, 0x69, 0x87, 0xdc, 0x58, 0x26, 0x7e, 0x50, 0xef, 0xf4, 0x4d, 0x87, 0xfc, 0x20, 0xd3, + 0x61, 0xf5, 0x18, 0x33, 0x1e, 0xd4, 0x27, 0x07, 0x9d, 0x4e, 0x21, 0xb6, 0xd3, 0x59, 0x3d, 0xe6, + 0x77, 0x3b, 0xea, 0x12, 0x98, 0x6c, 0x59, 0xfb, 0x64, 0xab, 0x9a, 0xcc, 0xba, 0x06, 0x1d, 0x25, + 0x5e, 0xb2, 0xf6, 0xe9, 0xc6, 0xf6, 0xea, 0x31, 0x3d, 0xf8, 0x53, 0x5d, 0x01, 0x53, 0x64, 0x5b, + 0x80, 0x14, 0x33, 0x99, 0xe8, 0x98, 0xf0, 0xea, 0x31, 0x3d, 0xfc, 0x17, 0x5b, 0x1f, 0x39, 0x72, + 0x86, 0xe3, 0x7e, 0x7f, 0xbb, 0x3d, 0x93, 0x68, 0xbb, 0x1d, 0xf3, 0x82, 0x6e, 0xb8, 0x9f, 0x06, + 0xf9, 0x26, 0xe1, 0x70, 0x96, 0x71, 0x98, 0xbe, 0xaa, 0xf7, 0x82, 0xdc, 0xae, 0xe9, 0xfa, 0x93, + 0xe7, 0x5b, 0x07, 0x97, 0xbb, 0x6e, 0xba, 0x97, 0x30, 0x82, 0xf8, 0xaf, 0xc5, 0x09, 0x90, 0x27, + 0x8c, 0x0b, 0x1e, 0xe0, 0x5b, 0x72, 0xd4, 0x0c, 0x29, 0x3b, 0x36, 0x1e, 0xf6, 0x0d, 0xc7, 0x3f, + 0xe8, 0xf2, 0xc1, 0xcc, 0x68, 0x2c, 0xc8, 0xbe, 0x57, 0x1f, 0x2b, 0x91, 0x57, 0x1f, 0xf7, 0xdc, + 0xc1, 0x99, 0xeb, 0xbd, 0x83, 0x33, 0x5c, 0x3e, 0xc8, 0x0f, 0x76, 0x54, 0xf9, 0xd3, 0x21, 0x4c, + 0x97, 0x5e, 0x46, 0x44, 0xcf, 0xc0, 0xdb, 0x96, 0xcd, 0xb5, 0xd9, 0x7f, 0x4d, 0xd8, 0x29, 0x25, + 0x35, 0x6a, 0x06, 0x90, 0x97, 0x7e, 0xdf, 0xf4, 0x1b, 0x39, 0x30, 0x4f, 0x6f, 0x7a, 0xdd, 0x47, + 0x86, 0x23, 0x5e, 0x49, 0x07, 0x3f, 0x39, 0x12, 0xa1, 0xe9, 0x33, 0xe0, 0x28, 0x7d, 0x07, 0x9c, + 0x03, 0x87, 0x8d, 0x73, 0x03, 0x0e, 0x1b, 0xe7, 0x93, 0xad, 0x1c, 0xfe, 0x1e, 0x2f, 0x3f, 0x1b, + 0xa2, 0xfc, 0xdc, 0x13, 0x01, 0x50, 0x3f, 0xbe, 0x8c, 0xc4, 0xbe, 0x79, 0x7b, 0x20, 0x29, 0x75, + 0x41, 0x52, 0xee, 0x1f, 0x9e, 0x90, 0xf4, 0xa5, 0xe5, 0x77, 0x73, 0xe0, 0x9a, 0x90, 0x98, 0x2a, + 0xba, 0xcc, 0x04, 0xe5, 0x73, 0x23, 0x11, 0x94, 0xe4, 0xb1, 0x0c, 0xd2, 0x96, 0x98, 0x3f, 0x96, + 0x3e, 0x03, 0xd4, 0x0b, 0x54, 0xc0, 0x9b, 0x08, 0x61, 0x39, 0x0d, 0x0a, 0xb4, 0x87, 0x61, 0xd0, + 0xb0, 0xb7, 0x84, 0xdd, 0x8d, 0xdc, 0xc9, 0x21, 0x59, 0xda, 0xc6, 0x20, 0x3f, 0x6c, 0x5d, 0xc3, + 0xd8, 0x73, 0xed, 0x8a, 0xed, 0x39, 0xf0, 0x27, 0x46, 0x22, 0x38, 0x81, 0x37, 0x9c, 0x32, 0x8c, + 0x37, 0xdc, 0x50, 0xab, 0x1c, 0x7e, 0x0b, 0x8e, 0x64, 0x95, 0x23, 0xa2, 0xf2, 0xf4, 0xf1, 0x7b, + 0x9b, 0x42, 0x6f, 0x7d, 0xaf, 0x23, 0x6f, 0x51, 0xb4, 0x10, 0xe1, 0x43, 0xa3, 0x00, 0xf2, 0xa4, + 0x6f, 0x26, 0xb1, 0x4b, 0x8b, 0xc8, 0x8b, 0x78, 0xe2, 0x29, 0x36, 0x78, 0xbe, 0x30, 0x1d, 0xec, + 0xa1, 0x70, 0x24, 0x48, 0xc9, 0xc5, 0xcc, 0x4f, 0x40, 0x46, 0xfa, 0x98, 0xbd, 0x58, 0x01, 0x05, + 0x76, 0xc3, 0xf7, 0x66, 0x2a, 0x0e, 0x13, 0x62, 0x08, 0x5d, 0x89, 0x1d, 0xb9, 0xc4, 0xf7, 0x60, + 0xa7, 0xb7, 0x17, 0x77, 0x44, 0x17, 0x5d, 0x7f, 0x2b, 0x0b, 0xa6, 0xeb, 0xc8, 0x2b, 0x9b, 0xae, + 0x6b, 0x99, 0xdb, 0xa3, 0xf2, 0xf8, 0x96, 0xf5, 0x1e, 0x86, 0xdf, 0xce, 0xc8, 0x9e, 0xa7, 0x09, + 0x16, 0xc2, 0x7d, 0x52, 0x23, 0x62, 0xfb, 0xc9, 0xdd, 0x30, 0x3e, 0xa8, 0xb4, 0x31, 0x78, 0x6c, + 0x67, 0xc1, 0x84, 0x7f, 0xa6, 0xee, 0x9c, 0x70, 0xce, 0x72, 0xc7, 0xdb, 0xf5, 0x8f, 0xc1, 0x90, + 0xe7, 0x83, 0x67, 0xb9, 0xe0, 0x2b, 0x13, 0x3a, 0xca, 0xc7, 0x1f, 0x08, 0x4c, 0xa6, 0x63, 0x49, + 0xdc, 0xe1, 0x8f, 0xea, 0x08, 0xe0, 0xef, 0x4c, 0xb0, 0xe5, 0xc8, 0x35, 0xd3, 0x43, 0x57, 0xe0, + 0x5f, 0x28, 0x60, 0xa2, 0x8e, 0x3c, 0x3c, 0xde, 0x62, 0xf2, 0x0f, 0x2d, 0xe1, 0x2a, 0xb7, 0xe2, + 0x31, 0xc5, 0xd6, 0x30, 0x9e, 0x05, 0xa6, 0x3a, 0xae, 0xd3, 0x44, 0xdd, 0x2e, 0x5b, 0xbd, 0xe0, + 0x1d, 0xd5, 0xfa, 0x8d, 0xfe, 0x84, 0xb4, 0x85, 0x0d, 0xff, 0x1f, 0x3d, 0xfc, 0x3d, 0xa9, 0x19, + 0x40, 0x4b, 0x62, 0x0d, 0x1c, 0xb7, 0x19, 0x10, 0x57, 0x79, 0xfa, 0x40, 0x7f, 0x46, 0x01, 0x33, + 0x75, 0xe4, 0x05, 0x5c, 0x4c, 0xb0, 0xc9, 0x11, 0x0d, 0xaf, 0x00, 0xa5, 0x72, 0x38, 0x28, 0xe5, + 0xef, 0x5d, 0x13, 0xb9, 0x19, 0x14, 0x36, 0xc6, 0x7b, 0xd7, 0xe4, 0x28, 0x18, 0xc3, 0xf1, 0xb5, + 0xc7, 0x81, 0x29, 0x42, 0x0b, 0x51, 0xd8, 0x9f, 0xcb, 0x85, 0xca, 0xfb, 0xf9, 0x94, 0x94, 0xf7, + 0x3e, 0x90, 0x27, 0xf7, 0xb9, 0x13, 0xc5, 0x9d, 0x96, 0x31, 0xdb, 0xd7, 0x71, 0x76, 0x9d, 0xfe, + 0xd5, 0xdf, 0x4f, 0x33, 0x9f, 0xcc, 0x4f, 0xf3, 0xf5, 0xd9, 0x44, 0x23, 0x21, 0x9d, 0x3b, 0x8c, + 0x50, 0xe5, 0x13, 0x8c, 0x9b, 0x31, 0x75, 0xa7, 0x2f, 0x1c, 0x2f, 0x54, 0xc0, 0x24, 0x1e, 0xb7, + 0x89, 0x3d, 0x7e, 0xe1, 0xf0, 0xe2, 0xd0, 0xdf, 0xd0, 0x4f, 0xd8, 0x03, 0xfb, 0x1c, 0x19, 0x9d, + 0x79, 0x9f, 0xa0, 0x07, 0x8e, 0xab, 0x3c, 0x7d, 0x3c, 0xde, 0x41, 0xf1, 0x20, 0xfa, 0x00, 0xdf, + 0xa0, 0x00, 0x65, 0x05, 0x79, 0xe3, 0xb6, 0x22, 0xdf, 0x2a, 0x1d, 0xaa, 0x48, 0x60, 0x18, 0xa1, + 0x79, 0x61, 0x05, 0x8d, 0x46, 0x81, 0xe4, 0x62, 0x14, 0x49, 0x11, 0x90, 0x3e, 0x6a, 0xef, 0xa1, + 0xa8, 0xd1, 0xcd, 0x85, 0x1f, 0x1f, 0x41, 0xaf, 0x3a, 0xde, 0x85, 0x0f, 0x9f, 0x81, 0xa4, 0x8c, + 0xa3, 0xd2, 0xb7, 0x7e, 0x95, 0x8f, 0xe5, 0x9e, 0x33, 0x80, 0x95, 0x7d, 0x07, 0x35, 0x2f, 0xa1, + 0x16, 0xfc, 0x91, 0xc3, 0x43, 0x37, 0x0f, 0x26, 0x9a, 0xb4, 0x34, 0x02, 0xde, 0xa4, 0xee, 0xbf, + 0x26, 0xb8, 0xb4, 0x57, 0xec, 0x88, 0xe8, 0xef, 0x63, 0xbc, 0xb4, 0x57, 0xa2, 0xfa, 0x31, 0x98, + 0x2d, 0x74, 0x96, 0x51, 0x69, 0x3a, 0x36, 0xfc, 0x8f, 0x87, 0x87, 0xe5, 0x06, 0x30, 0x65, 0x35, + 0x1d, 0xbb, 0xb2, 0xeb, 0x07, 0xf7, 0x9b, 0xd2, 0xc3, 0x04, 0xff, 0xab, 0xb6, 0xeb, 0x3c, 0x6c, + 0xb1, 0x5d, 0xf3, 0x30, 0x61, 0x58, 0x63, 0x02, 0x93, 0x7e, 0x54, 0xc6, 0x44, 0x9f, 0xba, 0xd3, + 0x87, 0xec, 0xa3, 0xa1, 0x77, 0x1b, 0xed, 0x0a, 0x1f, 0x15, 0xab, 0xc0, 0xc3, 0x0c, 0x67, 0x7c, + 0x2b, 0x8e, 0x64, 0x38, 0x8b, 0x21, 0x60, 0x0c, 0xf7, 0x8b, 0x84, 0x38, 0xa6, 0xbe, 0x06, 0x7c, + 0x08, 0x74, 0x46, 0x67, 0x1e, 0x0e, 0x89, 0xce, 0xd1, 0x98, 0x88, 0x1f, 0x60, 0xa1, 0x2e, 0x99, + 0xc5, 0x03, 0xff, 0xd3, 0x28, 0xc0, 0xb9, 0x67, 0x18, 0x7f, 0x05, 0xea, 0xad, 0x90, 0xe0, 0xba, + 0xe1, 0x03, 0x1c, 0xc4, 0xa5, 0x8c, 0xf1, 0x22, 0x6e, 0x99, 0xfa, 0xd3, 0x07, 0xf0, 0x67, 0x15, + 0x30, 0x47, 0x7c, 0x04, 0xda, 0xc8, 0x74, 0x69, 0x47, 0x39, 0x12, 0x47, 0xf9, 0x77, 0x48, 0x07, + 0xf8, 0x11, 0xf9, 0x10, 0xd2, 0x31, 0x12, 0x28, 0xe4, 0xa2, 0xfb, 0x48, 0x92, 0x30, 0x96, 0x6d, + 0x94, 0x62, 0x40, 0x02, 0x13, 0xf1, 0xd1, 0xe0, 0x91, 0xd0, 0x23, 0x57, 0x64, 0x86, 0xaf, 0x6c, + 0x63, 0xf6, 0xc8, 0x95, 0x21, 0x22, 0x7d, 0x4c, 0xde, 0xf0, 0x24, 0xb6, 0xe0, 0x6c, 0x90, 0xdb, + 0xb8, 0x5f, 0x9d, 0x0b, 0x4e, 0xb4, 0x7d, 0x66, 0x24, 0x1e, 0x98, 0x87, 0x08, 0x6c, 0xaf, 0x82, + 0x9c, 0xeb, 0x5c, 0xa6, 0x4b, 0x5b, 0xb3, 0x3a, 0x79, 0x26, 0x26, 0xbf, 0xd3, 0xde, 0xdb, 0xb5, + 0xe9, 0xc9, 0xd0, 0x59, 0xdd, 0x7f, 0x55, 0x6f, 0x01, 0xb3, 0x97, 0x2d, 0x6f, 0x67, 0x15, 0x99, + 0x2d, 0xe4, 0xea, 0xce, 0x65, 0xe2, 0x31, 0x37, 0xa9, 0x8b, 0x89, 0xa2, 0xff, 0x8a, 0x84, 0x7d, + 0x49, 0xae, 0xe8, 0x1e, 0xcb, 0xf1, 0xb7, 0x24, 0x96, 0x67, 0x34, 0x55, 0xe9, 0x0b, 0xcc, 0x7b, + 0x15, 0x30, 0xa5, 0x3b, 0x97, 0x99, 0x90, 0xfc, 0x9f, 0x47, 0x2b, 0x23, 0x89, 0x27, 0x7a, 0xf4, + 0xca, 0x75, 0x9f, 0xfc, 0xb1, 0x4f, 0xf4, 0x62, 0xab, 0x1f, 0xcb, 0xc9, 0xa5, 0x19, 0xdd, 0xb9, + 0x5c, 0x47, 0x1e, 0xd5, 0x08, 0xd8, 0x18, 0x91, 0x93, 0xb5, 0xd5, 0xa5, 0x05, 0xb2, 0x79, 0x78, + 0xf0, 0x9e, 0x74, 0x17, 0x21, 0x60, 0x50, 0x40, 0xe2, 0xb8, 0x77, 0x11, 0x06, 0x52, 0x30, 0x86, + 0x18, 0x29, 0x0a, 0x98, 0xd6, 0x9d, 0xcb, 0x78, 0x68, 0x58, 0xb6, 0xda, 0xed, 0xd1, 0x8c, 0x90, + 0x49, 0x8d, 0x7f, 0x9f, 0x0d, 0x3e, 0x15, 0x63, 0x37, 0xfe, 0x07, 0x10, 0x90, 0x3e, 0x0c, 0x2f, + 0xa0, 0xca, 0xe2, 0x8f, 0xd0, 0xf6, 0x68, 0x70, 0x18, 0x56, 0x21, 0x02, 0x32, 0x8e, 0x4c, 0x21, + 0xa2, 0x28, 0x18, 0xcb, 0xce, 0xc9, 0x5c, 0x99, 0x0c, 0xf3, 0xa3, 0xd5, 0x89, 0x77, 0x25, 0x73, + 0x4d, 0x64, 0xc3, 0xae, 0x40, 0xc8, 0x48, 0xd0, 0x48, 0xe0, 0x82, 0x28, 0x41, 0x43, 0xfa, 0x78, + 0x7c, 0x48, 0x01, 0x33, 0x94, 0x84, 0x47, 0x89, 0x15, 0x30, 0x94, 0x52, 0xf1, 0x2d, 0x38, 0x1a, + 0xa5, 0x8a, 0xa1, 0x60, 0x2c, 0xb7, 0x74, 0x62, 0x3b, 0x6e, 0x88, 0xe3, 0xe3, 0x51, 0x08, 0x0e, + 0x6d, 0x8c, 0x8d, 0xf0, 0x08, 0xf9, 0x30, 0xc6, 0xd8, 0x11, 0x1d, 0x23, 0x7f, 0x41, 0xa0, 0x45, + 0xa3, 0xc4, 0xe0, 0x10, 0xaa, 0x30, 0x42, 0x18, 0x86, 0x54, 0x85, 0x23, 0x42, 0xe2, 0x2b, 0x0a, + 0x00, 0x94, 0x80, 0x75, 0x67, 0x9f, 0x5c, 0xca, 0x33, 0x82, 0xee, 0xac, 0xd7, 0xad, 0x5e, 0x19, + 0xe0, 0x56, 0x9f, 0x30, 0x84, 0x4b, 0xd2, 0x95, 0x40, 0x8e, 0xcb, 0xb8, 0x91, 0x63, 0x5f, 0x09, + 0x8c, 0xaf, 0x3f, 0x7d, 0x8c, 0xbf, 0x44, 0xad, 0xb9, 0xf0, 0x80, 0xe9, 0x2f, 0x8f, 0x04, 0x65, + 0x6e, 0xf6, 0xaf, 0x88, 0xb3, 0xff, 0x43, 0x60, 0x3b, 0xac, 0x8d, 0x38, 0xe8, 0xe0, 0x68, 0xfa, + 0x36, 0xe2, 0xd1, 0x1d, 0x10, 0xfd, 0xf1, 0x1c, 0x38, 0xce, 0x3a, 0x91, 0xef, 0x07, 0x88, 0x13, + 0x9e, 0xc3, 0x13, 0x3a, 0xc9, 0x01, 0x28, 0x8f, 0x6a, 0x41, 0x2a, 0xc9, 0x52, 0xa6, 0x04, 0x79, + 0x63, 0x59, 0xdd, 0x28, 0x68, 0x57, 0x3a, 0xa6, 0xdd, 0x92, 0x0f, 0xf7, 0x3b, 0x00, 0x78, 0x7f, + 0xad, 0x51, 0x11, 0xd7, 0x1a, 0xfb, 0xac, 0x4c, 0x26, 0xde, 0xb9, 0x26, 0x2c, 0xa3, 0xe4, 0x8e, + 0x7d, 0xe7, 0x3a, 0xba, 0xee, 0xf4, 0x51, 0x7a, 0x97, 0x02, 0x72, 0x75, 0xc7, 0xf5, 0xe0, 0x23, + 0x49, 0xb4, 0x93, 0x72, 0x3e, 0x04, 0xc9, 0x7f, 0x57, 0xcb, 0xc2, 0xad, 0xc9, 0xe7, 0xe2, 0x8f, + 0x3a, 0x9b, 0x9e, 0x49, 0xbc, 0xba, 0x71, 0xfd, 0xdc, 0xf5, 0xc9, 0x49, 0xe3, 0xe9, 0x50, 0xfe, + 0xd5, 0xa3, 0x0f, 0x60, 0xa4, 0x16, 0x4f, 0x27, 0xb2, 0xe6, 0xf4, 0x71, 0xfb, 0xef, 0x73, 0xcc, + 0xb7, 0x75, 0xd9, 0x6a, 0x23, 0xf8, 0x08, 0x75, 0x19, 0xa9, 0x9a, 0xbb, 0x48, 0xfe, 0x48, 0x4c, + 0xac, 0x6b, 0x2b, 0x89, 0x2f, 0xab, 0x84, 0xf1, 0x65, 0x93, 0x2a, 0x14, 0x3d, 0x80, 0x4e, 0x49, + 0x1a, 0xb7, 0x42, 0xc5, 0xd4, 0x3d, 0x96, 0x38, 0x9d, 0x27, 0xea, 0xc8, 0xa3, 0x46, 0x65, 0xcd, + 0xbf, 0x81, 0xe5, 0x47, 0x47, 0x12, 0xb1, 0x33, 0xb8, 0xe0, 0x45, 0xe9, 0xb9, 0xe0, 0xe5, 0xbd, + 0x3c, 0x38, 0xeb, 0x22, 0x38, 0x4f, 0x8b, 0x66, 0x90, 0x48, 0xe4, 0x48, 0x60, 0x7a, 0x6b, 0x00, + 0xd3, 0x86, 0x00, 0xd3, 0xbd, 0x43, 0x52, 0x91, 0x3e, 0x60, 0x9f, 0xc7, 0xa6, 0x0a, 0x99, 0xf4, + 0x97, 0xec, 0x16, 0x8b, 0xb0, 0xfa, 0x8f, 0x47, 0xbd, 0xd9, 0x76, 0x30, 0x04, 0xab, 0x10, 0xcb, + 0x39, 0xdf, 0x7b, 0x5b, 0xfd, 0x22, 0x0d, 0xe7, 0x8a, 0x3b, 0x51, 0xb2, 0xd3, 0x26, 0x7f, 0x63, + 0x7d, 0xf0, 0x1f, 0xfc, 0x93, 0x64, 0xeb, 0x6f, 0xa4, 0x88, 0x1e, 0xc6, 0xa5, 0x6c, 0x03, 0x25, + 0x58, 0x99, 0x93, 0xa0, 0xee, 0xdf, 0x87, 0x5b, 0x58, 0x18, 0x09, 0x64, 0x48, 0xb7, 0x30, 0x52, + 0xc0, 0x51, 0xba, 0x85, 0x0d, 0x22, 0x60, 0x0c, 0xb7, 0xcc, 0xe7, 0xd9, 0xae, 0x3c, 0xf1, 0x99, + 0x84, 0x7f, 0x95, 0x4d, 0x7d, 0xb4, 0xfd, 0x4e, 0x26, 0x91, 0x1f, 0x33, 0xa1, 0x2b, 0x7e, 0xb8, + 0x4d, 0xe2, 0x99, 0x1c, 0x57, 0xdc, 0x18, 0xd6, 0x7f, 0xb2, 0xc4, 0xa7, 0xfc, 0x82, 0xd5, 0xf2, + 0x76, 0x46, 0x74, 0x32, 0xe3, 0x32, 0x2e, 0xcb, 0xbf, 0xae, 0x98, 0xbc, 0xc0, 0x7f, 0xc9, 0x24, + 0x0a, 0x05, 0x15, 0xb0, 0x84, 0x90, 0x15, 0xc1, 0xe2, 0x04, 0x01, 0x9c, 0x62, 0xcb, 0x1b, 0xa3, + 0x44, 0x9f, 0xb7, 0x5a, 0xc8, 0x79, 0x14, 0x4a, 0x34, 0xa1, 0x6b, 0x74, 0x12, 0x1d, 0x57, 0xdc, + 0xbf, 0x53, 0x89, 0x0e, 0x58, 0x32, 0x22, 0x89, 0x8e, 0x2d, 0x2f, 0x7d, 0x1e, 0xbf, 0x72, 0x86, + 0x4d, 0x88, 0xd6, 0x2c, 0xfb, 0x12, 0xfc, 0xa7, 0x82, 0x7f, 0x51, 0xf2, 0x05, 0xcb, 0xdb, 0x61, + 0x31, 0x5d, 0x7e, 0x57, 0xfa, 0x8e, 0x93, 0x21, 0xe2, 0xb6, 0x88, 0x61, 0xa1, 0xf2, 0x07, 0xc2, + 0x42, 0x95, 0xc0, 0xac, 0x65, 0x7b, 0xc8, 0xb5, 0xcd, 0xf6, 0x72, 0xdb, 0xdc, 0xee, 0xce, 0x4f, + 0xf4, 0xbd, 0x84, 0xae, 0xc2, 0xe5, 0xd1, 0xc5, 0x3f, 0xf8, 0xeb, 0x24, 0x27, 0xc5, 0x6b, 0xf1, + 0x23, 0xa2, 0x58, 0x4d, 0x45, 0x47, 0xb1, 0x0a, 0xa2, 0x54, 0x81, 0xc1, 0x41, 0xae, 0x65, 0x6d, + 0xdc, 0x84, 0x61, 0xfb, 0xce, 0x49, 0x46, 0x53, 0x0b, 0x42, 0x38, 0xfe, 0xaa, 0x92, 0x68, 0x95, + 0x0e, 0x0b, 0xc2, 0x42, 0xaf, 0x10, 0x24, 0xb6, 0x50, 0xf9, 0xc6, 0x2b, 0x3d, 0x8d, 0x0f, 0x4c, + 0x9e, 0x9c, 0x84, 0xc9, 0xc3, 0x0b, 0x55, 0x5e, 0x4e, 0xa8, 0x92, 0x2c, 0xfa, 0xc9, 0xb4, 0x76, + 0x0c, 0xa7, 0x8a, 0xf2, 0xe0, 0x84, 0x1f, 0xb5, 0xb6, 0xd3, 0x41, 0xa6, 0x6b, 0xda, 0x4d, 0x04, + 0x3f, 0x9a, 0x1d, 0x85, 0xd9, 0xbb, 0x0c, 0x26, 0xad, 0xa6, 0x63, 0xd7, 0xad, 0xe7, 0xf8, 0x97, + 0xc4, 0xc5, 0x07, 0x4b, 0x27, 0x1c, 0xa9, 0xb0, 0x3f, 0xf4, 0xe0, 0x5f, 0xb5, 0x02, 0xa6, 0x9a, + 0xa6, 0xdb, 0xa2, 0xc1, 0xf4, 0xf2, 0x3d, 0x17, 0x32, 0x45, 0x16, 0x54, 0xf6, 0x7f, 0xd1, 0xc3, + 0xbf, 0xd5, 0x9a, 0xc8, 0xc4, 0x42, 0x4f, 0x54, 0x8e, 0xc8, 0xc2, 0x96, 0xc2, 0x9f, 0x04, 0x9e, + 0x63, 0xee, 0xb8, 0xa8, 0x4d, 0xee, 0x84, 0xa7, 0x3d, 0xc4, 0x94, 0x1e, 0x26, 0x24, 0x9d, 0xe6, + 0x93, 0xaa, 0x0e, 0xa0, 0x31, 0xee, 0x69, 0xbe, 0x14, 0x15, 0xe9, 0x4b, 0xe6, 0xdb, 0x0b, 0x60, + 0x96, 0xf6, 0x6a, 0x8c, 0x9d, 0xf0, 0x67, 0xc9, 0x95, 0xce, 0xde, 0x83, 0xe8, 0x2a, 0xac, 0x1f, + 0x7e, 0x4c, 0x2e, 0x02, 0xe5, 0x52, 0x10, 0x38, 0x10, 0x3f, 0x26, 0xdd, 0x7f, 0xf7, 0xe9, 0x5a, + 0xa0, 0x34, 0x8d, 0x7b, 0xff, 0x3d, 0xbe, 0xfa, 0xf4, 0xf1, 0xf9, 0x05, 0x05, 0x28, 0xa5, 0x56, + 0x0b, 0x36, 0x0f, 0x0f, 0xc5, 0x4d, 0x60, 0xda, 0xd7, 0x99, 0x30, 0x96, 0x23, 0x9f, 0x94, 0x74, + 0x31, 0x33, 0xe0, 0x4d, 0xa9, 0x35, 0xf6, 0xdd, 0x81, 0x98, 0xba, 0xd3, 0x07, 0xe5, 0x97, 0x27, + 0x98, 0xd2, 0x2c, 0x3a, 0xce, 0x25, 0x72, 0xe4, 0xe5, 0x11, 0x05, 0xe4, 0x97, 0x91, 0xd7, 0xdc, + 0x19, 0x91, 0xce, 0xec, 0xb9, 0x6d, 0x5f, 0x67, 0x0e, 0xdc, 0x4f, 0x3f, 0xd8, 0x86, 0xf5, 0xc9, + 0x5a, 0x20, 0x24, 0x8d, 0x3b, 0x4a, 0x73, 0x6c, 0xed, 0xe9, 0x83, 0xf3, 0x2f, 0x0a, 0x98, 0x0b, + 0x56, 0xb8, 0x28, 0x26, 0x3f, 0xff, 0xa8, 0x5b, 0xb7, 0x84, 0x9f, 0x4b, 0x16, 0xea, 0x2c, 0xe0, + 0xa9, 0xd8, 0xb2, 0x94, 0x17, 0x16, 0x13, 0x04, 0x41, 0x93, 0x23, 0x70, 0x0c, 0x33, 0x78, 0x05, + 0x4c, 0x12, 0x82, 0x96, 0xac, 0x7d, 0xe2, 0x02, 0x28, 0x2c, 0x34, 0x3e, 0x77, 0x24, 0x0b, 0x8d, + 0xf7, 0x8a, 0x0b, 0x8d, 0x92, 0x91, 0x8b, 0xfd, 0x75, 0xc6, 0x84, 0x3e, 0x31, 0xf8, 0xff, 0x91, + 0x2f, 0x33, 0x26, 0xf0, 0x89, 0x19, 0x50, 0x7f, 0xfa, 0x88, 0x7e, 0xb2, 0xc1, 0x3a, 0x5b, 0x7f, + 0x63, 0x14, 0xfe, 0xf7, 0x13, 0x20, 0x77, 0x1e, 0x3f, 0xfc, 0xaf, 0xf0, 0x66, 0xab, 0x97, 0x8d, + 0x20, 0xc8, 0xc2, 0x33, 0x41, 0x0e, 0x97, 0xcf, 0xa6, 0x2d, 0xb7, 0xcb, 0xed, 0xd2, 0x62, 0x42, + 0x74, 0xf2, 0x9f, 0x7a, 0x1a, 0x14, 0xba, 0xce, 0x9e, 0xdb, 0xc4, 0xe6, 0x33, 0x96, 0x18, 0xf6, + 0x96, 0x34, 0xb8, 0xa8, 0x50, 0xf4, 0xc2, 0xe8, 0x5c, 0x3f, 0xb9, 0x8b, 0x8e, 0x14, 0xe1, 0xa2, + 0xa3, 0x04, 0xfb, 0x07, 0x12, 0xb4, 0xa5, 0x2f, 0x11, 0x7f, 0x45, 0xee, 0xfc, 0x6b, 0x8d, 0x0a, + 0xf6, 0x08, 0xb6, 0x1c, 0x56, 0x1c, 0x92, 0x3a, 0x6e, 0x8b, 0xac, 0x0d, 0xe2, 0xb9, 0x8f, 0xd5, + 0x71, 0x5b, 0x82, 0x86, 0xb1, 0x9c, 0x36, 0x2f, 0x30, 0x67, 0xd3, 0x87, 0x46, 0x89, 0x6e, 0x4e, + 0x10, 0xfa, 0x43, 0xa1, 0x33, 0x42, 0x27, 0xd4, 0xa1, 0xd1, 0x39, 0x22, 0x37, 0xd4, 0x3f, 0x50, + 0x48, 0x44, 0x4b, 0xdf, 0xc8, 0x91, 0xbf, 0xb0, 0x28, 0x31, 0x44, 0x78, 0x0c, 0x16, 0xe2, 0x39, + 0xcf, 0x0e, 0x1f, 0xe2, 0x5b, 0x64, 0x1d, 0x47, 0xff, 0xb8, 0x43, 0x7c, 0xcb, 0x12, 0x92, 0x3e, + 0x90, 0xbf, 0x46, 0x2f, 0x08, 0x2b, 0x35, 0x3d, 0x6b, 0x7f, 0xc4, 0x9a, 0x26, 0x0e, 0x2f, 0x09, + 0xa3, 0xfa, 0x1e, 0xe0, 0x10, 0xa5, 0x70, 0xdc, 0x51, 0x7d, 0xe5, 0xc8, 0x18, 0xc3, 0x71, 0x74, + 0x80, 0xb9, 0xc7, 0xd6, 0x66, 0xde, 0xc0, 0x56, 0x03, 0xd0, 0xe1, 0xd1, 0x3a, 0x0b, 0x66, 0xb8, + 0xa9, 0xbf, 0x7f, 0xf1, 0x8c, 0x90, 0x96, 0xf4, 0xc0, 0x7a, 0xc0, 0xb2, 0x91, 0x2f, 0x0c, 0x24, + 0x58, 0xf0, 0x95, 0x21, 0x62, 0x2c, 0xf7, 0xba, 0xf9, 0x63, 0xd8, 0x98, 0xb0, 0xfa, 0x5d, 0x1e, + 0xab, 0x9a, 0x88, 0xd5, 0xdd, 0x32, 0x6c, 0x92, 0x1b, 0xd3, 0xa4, 0xe6, 0x8d, 0x6f, 0x0b, 0xe0, + 0xd2, 0x05, 0xb8, 0x9e, 0x39, 0x34, 0x1d, 0xe9, 0x23, 0xf6, 0x46, 0x85, 0x5e, 0xee, 0x54, 0xda, + 0x37, 0xad, 0x36, 0x89, 0x32, 0x30, 0x82, 0xcb, 0x89, 0xff, 0x8c, 0x07, 0xe5, 0xbc, 0x08, 0xca, + 0x03, 0x32, 0xcc, 0x10, 0x28, 0x8a, 0xc0, 0xe6, 0xa9, 0xfc, 0xe2, 0x38, 0x0d, 0x31, 0x7c, 0x6d, + 0x6f, 0x38, 0x3f, 0xf6, 0x9d, 0x5f, 0x35, 0xff, 0xed, 0x00, 0xa4, 0x87, 0x04, 0x90, 0xb4, 0xc3, + 0xd2, 0x95, 0x3e, 0x56, 0x2f, 0xa7, 0x43, 0x57, 0x9d, 0x4e, 0xaf, 0x46, 0x33, 0x74, 0xb1, 0x99, + 0x9b, 0x22, 0xcc, 0xdc, 0x12, 0x9e, 0x71, 0x08, 0x5d, 0x77, 0x7d, 0xe2, 0x06, 0xa9, 0x53, 0x6e, + 0xc4, 0x67, 0x1c, 0x06, 0x52, 0x90, 0x3e, 0x38, 0xff, 0xa0, 0x00, 0xb0, 0xe2, 0x3a, 0x7b, 0x9d, + 0x9a, 0xdb, 0x42, 0x2e, 0xfc, 0x9b, 0x70, 0xb2, 0xf6, 0x92, 0x11, 0x4c, 0xd6, 0x36, 0x00, 0xd8, + 0x0e, 0x0a, 0x67, 0xbd, 0xd1, 0x93, 0xe4, 0xa6, 0x66, 0x21, 0x51, 0x3a, 0x57, 0x86, 0x78, 0xcd, + 0xef, 0x0f, 0x89, 0x18, 0xc7, 0x8d, 0x2f, 0x61, 0x71, 0xa3, 0x9c, 0xac, 0xbd, 0x23, 0xc0, 0xda, + 0x10, 0xb0, 0x7e, 0xe0, 0x10, 0x94, 0xa4, 0x8f, 0xf9, 0x3f, 0x4e, 0x80, 0x69, 0xba, 0xb5, 0x4a, + 0x79, 0xfa, 0x77, 0x21, 0xe8, 0xbf, 0x3c, 0x02, 0xd0, 0x37, 0xc1, 0x8c, 0x13, 0x96, 0x4e, 0xc7, + 0x3f, 0x7e, 0xb1, 0x2c, 0x16, 0x76, 0x8e, 0x2e, 0x5d, 0x28, 0x06, 0x7e, 0x98, 0x47, 0x5e, 0x17, + 0x91, 0xbf, 0x37, 0x86, 0xdf, 0x5c, 0x89, 0xa3, 0x84, 0xfe, 0x9d, 0x01, 0xf4, 0x9b, 0x02, 0xf4, + 0xa5, 0xc3, 0x90, 0x32, 0x86, 0x2b, 0x0e, 0x14, 0x90, 0x23, 0x27, 0x12, 0x7f, 0x23, 0xc5, 0xb5, + 0x98, 0x79, 0x30, 0x41, 0x54, 0x36, 0x98, 0x23, 0xfa, 0xaf, 0xf8, 0x8b, 0xb9, 0xe5, 0x21, 0x37, + 0xf0, 0x2e, 0xf1, 0x5f, 0x31, 0x0d, 0xbe, 0x27, 0x78, 0x77, 0xbe, 0x40, 0x37, 0x8d, 0x83, 0x84, + 0xa1, 0x27, 0x90, 0x3c, 0xc7, 0x47, 0x76, 0x46, 0x71, 0x98, 0x09, 0xe4, 0x00, 0x42, 0xd2, 0x07, + 0xfe, 0x0b, 0x39, 0x30, 0x4f, 0x57, 0x00, 0x97, 0x5d, 0x67, 0xb7, 0xe7, 0x46, 0x31, 0xeb, 0xf0, + 0xb2, 0x70, 0x2b, 0x98, 0xf3, 0x04, 0x1f, 0x78, 0x26, 0x13, 0x3d, 0xa9, 0xf0, 0x4f, 0x79, 0xff, + 0x97, 0x67, 0x8b, 0x48, 0x2e, 0xc6, 0x30, 0x30, 0x8a, 0xf6, 0xc4, 0x9b, 0x2a, 0x92, 0x84, 0x72, + 0x0b, 0x8a, 0xca, 0x50, 0xeb, 0xcb, 0x81, 0x4c, 0xe5, 0x65, 0x64, 0xea, 0x7d, 0x81, 0x4c, 0xfd, + 0x88, 0x20, 0x53, 0x2b, 0x87, 0x67, 0x49, 0xfa, 0xb2, 0xf5, 0xea, 0x60, 0x13, 0x2f, 0xd8, 0x62, + 0xdd, 0x4d, 0x61, 0x63, 0x95, 0xf7, 0x1d, 0xcb, 0x09, 0xbe, 0x63, 0xe2, 0x1d, 0x20, 0x09, 0x56, + 0x2d, 0x44, 0xaa, 0x23, 0x64, 0x69, 0x0e, 0x64, 0x2d, 0x9f, 0xba, 0xac, 0xd5, 0x1a, 0x6a, 0x5d, + 0x22, 0xb6, 0xa2, 0x31, 0xac, 0x03, 0xce, 0x81, 0xc2, 0xb2, 0xd5, 0xf6, 0x90, 0x0b, 0xbf, 0xc4, + 0x56, 0x25, 0x5e, 0x9d, 0xe2, 0x00, 0xb0, 0x04, 0x0a, 0x5b, 0xa4, 0x36, 0x66, 0x32, 0xdf, 0x21, + 0xa7, 0x3d, 0x94, 0x42, 0x9d, 0xfd, 0x9b, 0x34, 0x22, 0x62, 0x4f, 0x31, 0x23, 0x5b, 0xce, 0x48, + 0x10, 0x11, 0x71, 0x30, 0x09, 0x63, 0xb9, 0x0c, 0xac, 0xa0, 0xa3, 0x5d, 0x3c, 0xc6, 0x5f, 0x4a, + 0x0f, 0xe1, 0x22, 0x50, 0xac, 0x56, 0x97, 0x74, 0x8e, 0x53, 0x3a, 0x7e, 0x4c, 0xea, 0xd7, 0xd5, + 0xcb, 0x2a, 0x4a, 0xf2, 0xb8, 0xfd, 0xba, 0xa4, 0xa8, 0x48, 0x1f, 0xb3, 0xef, 0x10, 0xa7, 0xde, + 0x4e, 0xdb, 0x6c, 0x22, 0x4c, 0x7d, 0x6a, 0xa8, 0xd1, 0x9e, 0x2c, 0xe7, 0xf7, 0x64, 0x9c, 0x9e, + 0xe6, 0x0f, 0xa1, 0xa7, 0xc3, 0x2e, 0x19, 0x07, 0x3c, 0x27, 0x0d, 0x3f, 0xb2, 0x25, 0xe3, 0x58, + 0x32, 0xc6, 0x70, 0xd5, 0xab, 0x7f, 0x78, 0x79, 0xac, 0xda, 0x3a, 0xec, 0x86, 0x1a, 0x63, 0xd6, + 0xc8, 0x0e, 0x2a, 0x0f, 0xb3, 0xa1, 0x16, 0x4d, 0xc3, 0x18, 0xd0, 0x9a, 0x63, 0x68, 0x7d, 0x96, + 0x0d, 0xa3, 0x29, 0xef, 0x69, 0x77, 0x1d, 0xd7, 0x4b, 0xb6, 0xa7, 0x8d, 0xa9, 0xd3, 0xc9, 0x7f, + 0x49, 0x0f, 0xc9, 0x89, 0x67, 0xd9, 0x47, 0x35, 0x7c, 0x26, 0x38, 0x24, 0x37, 0x88, 0x80, 0xf4, + 0xe1, 0x7d, 0xf3, 0x11, 0x0d, 0x9e, 0xc3, 0xaa, 0x23, 0xd3, 0x81, 0x91, 0x0d, 0x9d, 0xc3, 0xa8, + 0x63, 0x34, 0x0d, 0xe9, 0xe3, 0xf5, 0xf7, 0xdc, 0xc0, 0xf9, 0xc6, 0x31, 0x0e, 0x9c, 0xbe, 0x66, + 0xe6, 0x87, 0xd4, 0xcc, 0x61, 0xf7, 0xea, 0x18, 0xaf, 0x47, 0x37, 0x60, 0x0e, 0xb3, 0x57, 0x17, + 0x43, 0x44, 0xfa, 0x88, 0xbf, 0x49, 0x01, 0xf9, 0xfa, 0xf8, 0xc7, 0xcb, 0x61, 0xe7, 0x22, 0x84, + 0x57, 0xf5, 0x91, 0x0d, 0x97, 0xc3, 0xcc, 0x45, 0x22, 0x49, 0x18, 0xc3, 0x65, 0x07, 0xc7, 0xc1, + 0x0c, 0x59, 0x12, 0xf1, 0xb7, 0xc4, 0xff, 0x9e, 0x8d, 0x9a, 0xaf, 0x4f, 0x51, 0x57, 0x9f, 0x05, + 0x26, 0xfd, 0x7d, 0x33, 0x36, 0x72, 0x2e, 0xc8, 0xe9, 0x67, 0xb0, 0xef, 0x16, 0xfc, 0x7f, 0x28, + 0xc7, 0x95, 0x91, 0xef, 0xab, 0x0f, 0xeb, 0xb8, 0x72, 0xa4, 0x7b, 0xeb, 0x7f, 0x12, 0x8e, 0xa8, + 0xff, 0x31, 0x3d, 0xcc, 0x7b, 0xf7, 0xdc, 0x73, 0x7d, 0xf6, 0xdc, 0x3f, 0xca, 0x63, 0x59, 0x17, + 0xb1, 0xbc, 0x4f, 0x96, 0x85, 0x23, 0x1c, 0x6b, 0xdf, 0x15, 0xc0, 0x79, 0x5e, 0x80, 0x73, 0xf1, + 0x50, 0xb4, 0x8c, 0xe1, 0x90, 0x6a, 0x2e, 0x1c, 0x73, 0x3f, 0x96, 0xa2, 0x1e, 0xf7, 0x9c, 0x80, + 0xc9, 0x1d, 0x38, 0x01, 0x23, 0x68, 0x7a, 0xfe, 0x90, 0x9a, 0xfe, 0x31, 0x5e, 0x3a, 0x0c, 0x51, + 0x3a, 0x9e, 0x29, 0x8f, 0xc8, 0xe8, 0x46, 0xe6, 0x77, 0x07, 0xe2, 0x71, 0x41, 0x10, 0x8f, 0xf2, + 0xe1, 0x88, 0x49, 0x5f, 0x3e, 0xfe, 0xd0, 0x9f, 0xd0, 0x1e, 0xb1, 0xbe, 0x0f, 0xbb, 0x55, 0x2c, + 0x30, 0x71, 0x64, 0x23, 0xf7, 0x30, 0x5b, 0xc5, 0x83, 0x28, 0x19, 0x43, 0xfc, 0xbb, 0x59, 0x30, + 0x4d, 0x68, 0xba, 0x60, 0xb5, 0xb6, 0x91, 0x07, 0x7f, 0x95, 0xfa, 0x93, 0xfa, 0xd1, 0x46, 0x47, + 0x14, 0x12, 0x2a, 0xea, 0x6c, 0x72, 0x52, 0x8f, 0x0e, 0x4a, 0xe4, 0x02, 0x47, 0xe0, 0xb8, 0xa3, + 0x56, 0x0e, 0xa4, 0x20, 0x7d, 0xc8, 0x3e, 0x4c, 0xdd, 0x6d, 0xd6, 0xcc, 0xab, 0xce, 0x9e, 0x07, + 0x9f, 0x3f, 0x82, 0x0e, 0x7a, 0x11, 0x14, 0xda, 0xa4, 0x34, 0x76, 0x84, 0x26, 0x7e, 0xba, 0xc3, + 0x58, 0x40, 0xeb, 0xd7, 0xd9, 0x9f, 0x49, 0xcf, 0xd1, 0x84, 0x7c, 0xa4, 0xe5, 0x8c, 0xfb, 0x1c, + 0xcd, 0x80, 0xfa, 0xc7, 0x72, 0xaf, 0xd1, 0x24, 0xae, 0xdd, 0xda, 0xb5, 0xbc, 0x11, 0x45, 0xdb, + 0x68, 0xe3, 0xb2, 0xfc, 0x68, 0x1b, 0xe4, 0x25, 0xe9, 0xe9, 0x5e, 0x8e, 0x2b, 0xf8, 0xf7, 0x71, + 0x9f, 0xee, 0x8d, 0xaf, 0x3e, 0x7d, 0x4c, 0xfe, 0x0b, 0xd5, 0xac, 0xf3, 0xd4, 0x51, 0x3a, 0x45, + 0x1f, 0xec, 0xa1, 0x95, 0x85, 0x92, 0x76, 0x74, 0xca, 0xd2, 0xb7, 0xfe, 0xf4, 0x81, 0x79, 0xff, + 0x19, 0x90, 0x5f, 0x42, 0x17, 0xf7, 0xb6, 0xe1, 0xbd, 0x60, 0xd2, 0x70, 0x11, 0xaa, 0xd8, 0x5b, + 0x0e, 0xe6, 0xae, 0x87, 0x9f, 0x7d, 0x48, 0xd8, 0x1b, 0xc6, 0x63, 0x07, 0x99, 0xad, 0xf0, 0xac, + 0xa0, 0xff, 0x0a, 0x5f, 0x96, 0x05, 0xb9, 0xba, 0x67, 0x7a, 0x70, 0x2a, 0xc0, 0x16, 0x3e, 0x9f, + 0xc7, 0xe2, 0x5e, 0x11, 0x8b, 0x5b, 0x05, 0x5e, 0x10, 0x0a, 0x16, 0xf0, 0xff, 0x11, 0x00, 0x40, + 0x30, 0xf9, 0x70, 0xd7, 0xb1, 0x71, 0x0e, 0xff, 0xb8, 0xaa, 0xff, 0x0e, 0x5f, 0x15, 0xb0, 0xfb, + 0x7e, 0x81, 0xdd, 0x4f, 0x90, 0xab, 0x62, 0x0c, 0x2b, 0x6d, 0x59, 0x30, 0x85, 0x59, 0xbb, 0x8a, + 0xcc, 0x56, 0x17, 0x3e, 0x36, 0x14, 0xfe, 0x08, 0x36, 0xc3, 0x0f, 0x48, 0x07, 0x40, 0xa5, 0xad, + 0x0a, 0x0a, 0x8f, 0xf6, 0xe8, 0xf0, 0x37, 0xff, 0xb3, 0x62, 0xe0, 0x98, 0x73, 0x20, 0x67, 0xd9, + 0x5b, 0x0e, 0xf3, 0x2f, 0xbc, 0x3e, 0xa2, 0x6c, 0x2c, 0x13, 0x3a, 0xc9, 0x28, 0x19, 0x1d, 0x35, + 0x9e, 0xac, 0xb1, 0x5c, 0x34, 0x98, 0xc3, 0xb5, 0xc3, 0xff, 0x63, 0x20, 0xb3, 0x55, 0x15, 0xe4, + 0x3a, 0xa6, 0xb7, 0xc3, 0xaa, 0x26, 0xcf, 0xd8, 0x46, 0xde, 0xb3, 0x4d, 0xdb, 0xb1, 0xaf, 0xee, + 0x5a, 0xcf, 0x09, 0xee, 0x33, 0x16, 0xd2, 0x30, 0xe5, 0xdb, 0xc8, 0x46, 0xae, 0xe9, 0xa1, 0xfa, + 0xfe, 0x36, 0x99, 0x63, 0x4d, 0xea, 0x7c, 0x52, 0x62, 0xf9, 0xc7, 0x14, 0x47, 0xcb, 0xff, 0x96, + 0xd5, 0x46, 0x24, 0xaa, 0x16, 0x93, 0x7f, 0xff, 0x3d, 0x91, 0xfc, 0xf7, 0xa9, 0x22, 0x7d, 0x34, + 0xbe, 0x9b, 0x05, 0x33, 0x75, 0x2c, 0x70, 0xf5, 0xbd, 0xdd, 0x5d, 0xd3, 0xbd, 0x0a, 0x6f, 0x0e, + 0x51, 0xe1, 0x44, 0x33, 0x23, 0xfa, 0xa5, 0xfc, 0x81, 0xf4, 0x55, 0xde, 0x4c, 0xb5, 0xb9, 0x1a, + 0x12, 0xeb, 0xc1, 0x93, 0x41, 0x1e, 0x8b, 0xb7, 0xef, 0x71, 0x19, 0xab, 0x08, 0x34, 0xa7, 0x64, + 0xf4, 0xb1, 0x81, 0xb4, 0x8d, 0x21, 0xf2, 0x49, 0x16, 0x1c, 0xaf, 0x7b, 0x66, 0xf3, 0xd2, 0x8a, + 0xe3, 0x3a, 0x7b, 0x9e, 0x65, 0xa3, 0x2e, 0x7c, 0x4c, 0x88, 0x80, 0x2f, 0xff, 0x99, 0x50, 0xfe, + 0xe1, 0xbf, 0x66, 0x64, 0x47, 0xd1, 0xa0, 0x5b, 0xe5, 0x8b, 0x8f, 0x08, 0x26, 0x26, 0x37, 0x2e, + 0xca, 0x94, 0x38, 0x96, 0x53, 0x12, 0x45, 0xed, 0x4a, 0xc7, 0x71, 0xbd, 0x35, 0xa7, 0x69, 0xb6, + 0xbb, 0x9e, 0xe3, 0x22, 0x58, 0x8b, 0xe5, 0x1a, 0xee, 0x61, 0x5a, 0x4e, 0x33, 0x1c, 0x1c, 0xd9, + 0x1b, 0x2f, 0x76, 0x8a, 0x28, 0xe3, 0x1f, 0x96, 0xde, 0x65, 0xa4, 0x5c, 0xe9, 0xa5, 0x28, 0x42, + 0xce, 0xfb, 0x75, 0x69, 0xc9, 0x0e, 0xb6, 0xc8, 0xed, 0x3c, 0x4a, 0x11, 0x35, 0x86, 0xa5, 0xf2, + 0x2c, 0x98, 0xad, 0xef, 0x5d, 0x0c, 0x0a, 0xe9, 0xf2, 0x46, 0xc8, 0x6b, 0xa4, 0x23, 0x8a, 0x30, + 0xc1, 0xe3, 0x0b, 0x8a, 0xe0, 0xef, 0x2d, 0x60, 0xb6, 0xcb, 0x67, 0x63, 0x78, 0x8b, 0x89, 0x92, + 0x91, 0x44, 0x06, 0xd7, 0x9a, 0x3e, 0x03, 0xdf, 0x9d, 0x05, 0xb3, 0xb5, 0x0e, 0xb2, 0x51, 0x8b, + 0x7a, 0x41, 0x0a, 0x0c, 0x7c, 0x59, 0x42, 0x06, 0x0a, 0x05, 0x45, 0x30, 0x30, 0xf4, 0x58, 0x5e, + 0xf2, 0x99, 0x17, 0x26, 0x24, 0x62, 0x5c, 0x5c, 0x6d, 0xe9, 0x33, 0xee, 0x8b, 0x59, 0x30, 0xad, + 0xef, 0xd9, 0x1b, 0xae, 0x83, 0x47, 0x63, 0x17, 0xde, 0x17, 0x76, 0x10, 0x77, 0x80, 0x13, 0xad, + 0x3d, 0x97, 0xac, 0x3f, 0x55, 0xec, 0x3a, 0x6a, 0x3a, 0x76, 0xab, 0x4b, 0xda, 0x91, 0xd7, 0x0f, + 0x7e, 0xb8, 0x27, 0xf7, 0xc8, 0xd7, 0x95, 0x0c, 0xfc, 0x59, 0xe9, 0xb0, 0x44, 0xb4, 0xf1, 0x5c, + 0xd5, 0xf2, 0x3d, 0x81, 0x64, 0xf0, 0xa1, 0x41, 0x35, 0xa4, 0xcf, 0xdc, 0x0f, 0x66, 0x81, 0x5a, + 0x6a, 0x36, 0x9d, 0x3d, 0xdb, 0xab, 0xa3, 0x36, 0x6a, 0x7a, 0x86, 0x6b, 0x36, 0x11, 0x3c, 0x1e, + 0xf0, 0x98, 0x71, 0xed, 0x65, 0xd2, 0xfb, 0x8b, 0xb4, 0x4d, 0x07, 0xcb, 0x4c, 0xc0, 0x3c, 0xb9, + 0x5d, 0x44, 0xc9, 0x8a, 0xc6, 0x70, 0xcf, 0x4e, 0x16, 0xe4, 0x36, 0x2c, 0x7b, 0x9b, 0x8f, 0xd6, + 0x74, 0x12, 0xdb, 0x3a, 0x2d, 0x74, 0x85, 0x49, 0x23, 0x7d, 0x51, 0xef, 0x04, 0x27, 0xed, 0xbd, + 0xdd, 0x8b, 0xc8, 0xad, 0x6d, 0x91, 0x91, 0xa0, 0x6b, 0x38, 0x75, 0x64, 0x53, 0x43, 0x29, 0xaf, + 0xf7, 0xfd, 0x26, 0x9a, 0x09, 0x12, 0x06, 0x2e, 0xa6, 0x24, 0x82, 0xd7, 0x01, 0x51, 0x59, 0x8e, + 0xa8, 0x44, 0xa6, 0x6d, 0x9f, 0xc2, 0xd3, 0xe7, 0xef, 0xd7, 0xb2, 0x60, 0x62, 0x1d, 0x79, 0xae, + 0xd5, 0xec, 0xc2, 0xcf, 0xe3, 0x61, 0x08, 0x79, 0x1b, 0xa6, 0x6b, 0xee, 0x22, 0x0f, 0xb9, 0x5d, + 0xa8, 0x85, 0x4c, 0x87, 0x60, 0xb2, 0xd3, 0x36, 0xbd, 0x2d, 0xc7, 0xdd, 0x65, 0x36, 0x43, 0xf0, + 0x8e, 0xed, 0x83, 0x7d, 0xe4, 0x76, 0x43, 0xb2, 0xfc, 0x57, 0x26, 0xe0, 0xf2, 0xd6, 0x18, 0x23, + 0x65, 0x41, 0x20, 0xe3, 0x50, 0xd6, 0x98, 0x4c, 0x89, 0x63, 0xb9, 0x4b, 0x46, 0x59, 0x73, 0xb6, + 0xe1, 0x2b, 0x14, 0x90, 0x23, 0x92, 0xf7, 0xa6, 0x8c, 0x30, 0x85, 0xd8, 0x45, 0xdd, 0xae, 0xb9, + 0x8d, 0xfc, 0x29, 0x04, 0x7b, 0x55, 0xef, 0x06, 0xf9, 0x36, 0xda, 0x47, 0x6d, 0x42, 0xc6, 0xdc, + 0x9d, 0x37, 0x0b, 0x2d, 0x5b, 0x73, 0xb6, 0x17, 0x70, 0x59, 0x0b, 0xac, 0x9c, 0x85, 0x35, 0x9c, + 0x55, 0xa7, 0x7f, 0x9c, 0x7d, 0x16, 0xc8, 0x93, 0x77, 0x75, 0x0a, 0xe4, 0x97, 0xb4, 0xc5, 0xcd, + 0x95, 0xe2, 0x31, 0xfc, 0xe8, 0xd3, 0x37, 0x05, 0xf2, 0xcb, 0x25, 0xa3, 0xb4, 0x56, 0xcc, 0xe2, + 0x76, 0x54, 0xaa, 0xcb, 0xb5, 0xa2, 0x82, 0x13, 0x37, 0x4a, 0xd5, 0x4a, 0xb9, 0x98, 0x53, 0xa7, + 0xc1, 0xc4, 0x85, 0x92, 0x5e, 0xad, 0x54, 0x57, 0x8a, 0x79, 0xf8, 0xb7, 0x3c, 0x7e, 0xf7, 0x88, + 0xf8, 0xdd, 0x12, 0x45, 0x53, 0x3f, 0xc8, 0x7e, 0x25, 0x80, 0xec, 0x3e, 0x01, 0xb2, 0x1f, 0x90, + 0x29, 0x64, 0x0c, 0x28, 0x65, 0xc1, 0xc4, 0x86, 0xeb, 0x34, 0x51, 0xb7, 0x0b, 0x7f, 0x29, 0x0b, + 0x0a, 0x65, 0xd3, 0x6e, 0xa2, 0x36, 0xbc, 0x2e, 0x84, 0x8a, 0xfa, 0x02, 0x65, 0x82, 0xe3, 0x00, + 0xff, 0xc0, 0x73, 0xe6, 0x01, 0x91, 0x33, 0xb7, 0x0b, 0x8d, 0x62, 0xe5, 0x2e, 0xd0, 0x32, 0x23, + 0xf8, 0xf3, 0xda, 0x80, 0x3f, 0x65, 0x81, 0x3f, 0xe7, 0xe4, 0x8b, 0x4a, 0x9f, 0x4b, 0xdf, 0xce, + 0x80, 0x93, 0x2b, 0xc8, 0x46, 0xae, 0xd5, 0xa4, 0xc4, 0xfb, 0xed, 0xbf, 0x4f, 0x6c, 0xff, 0xe3, + 0x05, 0xa2, 0xfb, 0xfd, 0x21, 0x36, 0xfe, 0xd5, 0x41, 0xe3, 0x1f, 0x10, 0x1a, 0x7f, 0x87, 0x64, + 0x39, 0x63, 0xb8, 0x38, 0x76, 0x0a, 0xcc, 0x54, 0x1d, 0xcf, 0xda, 0xb2, 0x9a, 0x74, 0xe3, 0xf8, + 0xe5, 0x0a, 0xc8, 0xad, 0x59, 0x5d, 0x8f, 0x3f, 0x81, 0x7e, 0x13, 0x98, 0xb6, 0xec, 0x66, 0x7b, + 0xaf, 0x85, 0x74, 0x64, 0x52, 0x59, 0x99, 0xd4, 0xf9, 0xa4, 0x70, 0x3d, 0x1e, 0x93, 0xa5, 0xf8, + 0xeb, 0xf1, 0x9f, 0x92, 0xb6, 0x9d, 0x78, 0x12, 0xc8, 0xf9, 0xee, 0x88, 0x21, 0xa9, 0x04, 0x66, + 0x6d, 0x2e, 0xab, 0x7f, 0xe4, 0xbc, 0x37, 0x62, 0x33, 0x5f, 0x9c, 0x2e, 0xfe, 0x01, 0xdf, 0x2b, + 0x65, 0x6a, 0x0d, 0x22, 0x28, 0x19, 0x32, 0xcb, 0xc9, 0x91, 0x51, 0x55, 0x30, 0x57, 0xa9, 0x1a, + 0x9a, 0x5e, 0x2d, 0xad, 0xb1, 0x2c, 0x0a, 0xfc, 0x6e, 0x16, 0xe4, 0x75, 0xd4, 0x69, 0x5f, 0xe5, + 0x43, 0x72, 0x32, 0xef, 0xae, 0x4c, 0xe0, 0xdd, 0xa5, 0x2e, 0x03, 0x60, 0x36, 0x71, 0xc5, 0xe4, + 0xee, 0x91, 0x6c, 0xdf, 0x40, 0x71, 0x42, 0x03, 0x4b, 0x41, 0x6e, 0x9d, 0xfb, 0x13, 0xbe, 0x50, + 0x7a, 0xb9, 0x47, 0x28, 0x8d, 0x50, 0x18, 0xd1, 0x1d, 0xbc, 0x4f, 0x6a, 0x85, 0x66, 0x60, 0x71, + 0x47, 0xc3, 0xfe, 0x2f, 0x67, 0x41, 0xce, 0xc0, 0xf3, 0x2f, 0x6e, 0x2a, 0xf6, 0xc9, 0xe1, 0x64, + 0x1c, 0x17, 0x13, 0x21, 0xe3, 0xf7, 0x83, 0x19, 0x5e, 0x62, 0xd9, 0xfe, 0x46, 0xac, 0x88, 0x0b, + 0x3f, 0x0c, 0x23, 0xe1, 0x7d, 0xc8, 0x39, 0x1a, 0x16, 0x7f, 0xe5, 0x76, 0x00, 0xd6, 0x11, 0xb6, + 0x6b, 0xbb, 0x3b, 0x56, 0x07, 0xfe, 0x37, 0x05, 0x4c, 0xad, 0x20, 0xaf, 0xee, 0x99, 0xde, 0x5e, + 0xb7, 0x67, 0x8d, 0xd2, 0x76, 0xca, 0x66, 0x73, 0x07, 0xb1, 0xee, 0xc8, 0x7f, 0x85, 0xef, 0x54, + 0x64, 0x37, 0x01, 0xc3, 0x7a, 0x16, 0x82, 0x3a, 0x22, 0x30, 0x79, 0x22, 0xc8, 0xb5, 0x4c, 0xcf, + 0x64, 0x58, 0x5c, 0xd7, 0x83, 0x45, 0x58, 0x90, 0x4e, 0xb2, 0xc1, 0xdf, 0xca, 0xca, 0xec, 0x02, + 0x4a, 0xd4, 0x9f, 0x0c, 0x84, 0xf7, 0x66, 0x86, 0x40, 0xe1, 0x04, 0x98, 0xad, 0xd6, 0x8c, 0xc6, + 0x5a, 0x6d, 0x65, 0x45, 0xc3, 0xa9, 0x45, 0x45, 0x3d, 0x0d, 0xd4, 0x8d, 0xd2, 0x43, 0xeb, 0x5a, + 0xd5, 0x68, 0x54, 0x6b, 0x4b, 0x1a, 0xfb, 0x33, 0xa7, 0x1e, 0x07, 0xd3, 0xe5, 0x52, 0x79, 0xd5, + 0x4f, 0xc8, 0xab, 0xf3, 0xe0, 0xe4, 0xba, 0xb6, 0xbe, 0xa8, 0xe9, 0xf5, 0xd5, 0xca, 0x46, 0x03, + 0x17, 0xb3, 0x5c, 0xdb, 0xac, 0x2e, 0x15, 0x0b, 0x2a, 0x04, 0xa7, 0xb9, 0x2f, 0x17, 0xf4, 0x5a, + 0x75, 0xa5, 0x51, 0x37, 0x4a, 0x86, 0x56, 0x9c, 0x50, 0xaf, 0x01, 0xc7, 0xcb, 0xa5, 0x2a, 0xc9, + 0x5e, 0xae, 0x55, 0xab, 0x5a, 0xd9, 0x28, 0x4e, 0xc2, 0x7f, 0xcd, 0x81, 0xe9, 0x4a, 0xb7, 0x6a, + 0xee, 0xa2, 0xf3, 0x66, 0xdb, 0x6a, 0xc1, 0x9f, 0xe5, 0xac, 0xc9, 0x5b, 0xc0, 0xac, 0x4b, 0x1f, + 0x51, 0xcb, 0xb0, 0x10, 0x45, 0x73, 0x56, 0x17, 0x13, 0xd5, 0xd3, 0xa0, 0x60, 0x93, 0x02, 0x18, + 0x6b, 0xd8, 0x9b, 0xba, 0x08, 0x00, 0x7d, 0x32, 0xc2, 0x5b, 0xf0, 0xce, 0xf6, 0x6a, 0x93, 0xb9, + 0x8b, 0xba, 0xc8, 0xdd, 0xb7, 0x9a, 0xc8, 0xcf, 0xa9, 0x73, 0x7f, 0xc1, 0xaf, 0x28, 0xb2, 0x8b, + 0x82, 0x1c, 0xa8, 0x5c, 0x73, 0x22, 0x7a, 0xc3, 0x9f, 0x51, 0x64, 0x96, 0xf4, 0xa4, 0x8a, 0x4c, + 0x26, 0x29, 0x2f, 0xce, 0x0e, 0x21, 0x29, 0xb3, 0x60, 0xca, 0xa8, 0xd5, 0x1a, 0xf5, 0xd5, 0x9a, + 0x6e, 0x14, 0x15, 0x75, 0x06, 0x4c, 0xe2, 0xd7, 0xb5, 0x5a, 0x75, 0xa5, 0x98, 0x53, 0x4f, 0x81, + 0x13, 0xab, 0xa5, 0x7a, 0xa3, 0x52, 0x3d, 0x5f, 0x5a, 0xab, 0x2c, 0x35, 0xca, 0xab, 0x25, 0xbd, + 0x5e, 0xcc, 0xab, 0xd7, 0x81, 0x53, 0x46, 0x45, 0xd3, 0x1b, 0xcb, 0x5a, 0xc9, 0xd8, 0xd4, 0xb5, + 0x7a, 0xa3, 0x5a, 0x6b, 0x54, 0x4b, 0xeb, 0x5a, 0xb1, 0x80, 0xd5, 0x9f, 0x7c, 0x0a, 0xc5, 0x66, + 0xe2, 0xa0, 0x30, 0x4e, 0x46, 0x08, 0xe3, 0x54, 0xaf, 0x30, 0x02, 0x5e, 0xac, 0x74, 0xad, 0xae, + 0xe9, 0xe7, 0xb5, 0xe2, 0x74, 0x3f, 0x59, 0x9b, 0x51, 0x4f, 0x82, 0x22, 0xa6, 0xa1, 0x51, 0xa9, + 0xfb, 0x39, 0x97, 0x8a, 0xb3, 0xf0, 0x63, 0x05, 0x70, 0x5a, 0x47, 0xdb, 0x56, 0xd7, 0x43, 0xee, + 0x86, 0x79, 0x75, 0x17, 0xd9, 0x9e, 0xdf, 0xc9, 0xff, 0xef, 0xc4, 0xc2, 0xb8, 0x0e, 0x66, 0x3b, + 0xb4, 0x8c, 0x75, 0xe4, 0xed, 0x38, 0x2d, 0x36, 0x0a, 0x3f, 0x3e, 0xb2, 0xe7, 0x58, 0xd8, 0xe0, + 0xb3, 0xeb, 0xe2, 0xdf, 0x9c, 0x6c, 0x2b, 0x31, 0xb2, 0x9d, 0x1b, 0x46, 0xb6, 0xd5, 0x1b, 0xc0, + 0xd4, 0x5e, 0x17, 0xb9, 0xda, 0xae, 0x69, 0xb5, 0xfd, 0x5b, 0xcc, 0x82, 0x04, 0xf8, 0xb6, 0x9c, + 0xac, 0x9b, 0x29, 0xd7, 0x96, 0xfe, 0x6c, 0x8c, 0xe8, 0x5b, 0xcf, 0x00, 0xc0, 0x1a, 0xbb, 0xe9, + 0xb6, 0x99, 0xb0, 0x72, 0x29, 0x98, 0xbe, 0x8b, 0x56, 0xbb, 0x6d, 0xd9, 0xdb, 0xc1, 0x62, 0x7d, + 0x98, 0x00, 0x5f, 0xac, 0xc8, 0xb8, 0x9d, 0x26, 0xa5, 0x2d, 0x99, 0x36, 0xbd, 0x30, 0x3b, 0xe6, + 0x7e, 0xf7, 0xa0, 0xea, 0x14, 0xd4, 0x22, 0x98, 0x21, 0x69, 0x4c, 0x03, 0x8b, 0x13, 0xb8, 0x0f, + 0xf6, 0x8b, 0x5b, 0xd7, 0x8c, 0xd5, 0xda, 0x52, 0xf0, 0x6d, 0x12, 0x17, 0x89, 0x89, 0x29, 0x55, + 0x1f, 0x22, 0xda, 0x38, 0xa5, 0x3e, 0x06, 0x5c, 0xc7, 0x75, 0xd8, 0xa5, 0x35, 0x5d, 0x2b, 0x2d, + 0x3d, 0xd4, 0xd0, 0x9e, 0x5d, 0xa9, 0x1b, 0x75, 0x51, 0xb9, 0x7c, 0x3d, 0x9a, 0xc6, 0xf4, 0x6a, + 0xeb, 0xa5, 0xca, 0x1a, 0xeb, 0xdf, 0x97, 0x6b, 0xfa, 0x7a, 0xc9, 0x28, 0xce, 0xc0, 0x57, 0x28, + 0xa0, 0xb8, 0x82, 0xbc, 0x0d, 0xc7, 0xf5, 0xcc, 0xf6, 0x9a, 0x65, 0x5f, 0xda, 0x74, 0xdb, 0xbc, + 0xcd, 0xf4, 0x2f, 0xd2, 0x67, 0x6b, 0xc5, 0x21, 0x52, 0x28, 0x30, 0x7a, 0x19, 0xbb, 0x43, 0xb2, + 0x85, 0xc2, 0x14, 0x26, 0xc0, 0xe7, 0x66, 0x65, 0xce, 0xd2, 0xca, 0xd7, 0x9a, 0x4c, 0x4e, 0x9e, + 0x37, 0xee, 0xf1, 0xb9, 0x0f, 0x6a, 0x05, 0xf8, 0x48, 0x0e, 0x4c, 0x2e, 0x5b, 0xb6, 0xd9, 0xb6, + 0x9e, 0x23, 0x04, 0x88, 0x0b, 0xfb, 0x98, 0x4c, 0x4c, 0x1f, 0x93, 0x1d, 0x6a, 0xfc, 0xfc, 0x45, + 0x45, 0x76, 0xc3, 0x82, 0xe3, 0xbd, 0x4f, 0x64, 0xc4, 0xe0, 0xf9, 0xfb, 0x59, 0x99, 0x2d, 0x89, + 0xc1, 0xe5, 0x25, 0xc3, 0xf0, 0x13, 0xdf, 0x1f, 0x36, 0x56, 0x8f, 0x7e, 0x4f, 0xf6, 0x13, 0x85, + 0x29, 0xf8, 0x67, 0x0a, 0x80, 0x2b, 0xc8, 0x3b, 0x8f, 0xdc, 0x60, 0x2a, 0x40, 0x7a, 0x7d, 0x66, + 0x6f, 0x73, 0x2a, 0xfb, 0x26, 0x1e, 0xc0, 0x0b, 0x22, 0x80, 0xa5, 0x18, 0xe5, 0x89, 0x28, 0x3a, + 0x42, 0x79, 0x2b, 0xa0, 0xd0, 0x25, 0xdf, 0x99, 0x98, 0x3d, 0x39, 0x7a, 0xb8, 0x24, 0x85, 0xf1, + 0xa5, 0xd3, 0x82, 0x75, 0x56, 0x00, 0xfc, 0x4e, 0x30, 0x09, 0xfa, 0x61, 0x41, 0x3a, 0x96, 0x0f, + 0x4d, 0x6c, 0x32, 0x79, 0x71, 0xd3, 0x15, 0x97, 0x7e, 0xf6, 0x0d, 0xfc, 0x42, 0x0e, 0x9c, 0xec, + 0xd7, 0x1c, 0xfe, 0x1e, 0xb9, 0x93, 0x20, 0x8f, 0xc8, 0x88, 0x4f, 0x95, 0x9d, 0xbe, 0xa8, 0x4f, + 0x01, 0xa7, 0xd8, 0x86, 0xe9, 0x45, 0x64, 0x38, 0x55, 0x74, 0xb9, 0xdb, 0x46, 0x9e, 0x87, 0x5c, + 0xd2, 0xb2, 0x49, 0xbd, 0xff, 0x47, 0xf8, 0x77, 0x8a, 0xac, 0x6b, 0xfa, 0x00, 0x7e, 0x47, 0x68, + 0xfa, 0x4f, 0x2b, 0x32, 0xce, 0xe6, 0xc9, 0xca, 0x4e, 0x86, 0xe2, 0x0b, 0xc6, 0x3d, 0xc2, 0xf7, + 0x1f, 0x5a, 0x89, 0xce, 0xd3, 0x74, 0x7f, 0x84, 0x3e, 0xaf, 0xe9, 0x95, 0xe5, 0x8a, 0x86, 0xc7, + 0xfb, 0x53, 0xe0, 0x44, 0xf8, 0x6d, 0xe9, 0xa1, 0x46, 0x5d, 0xab, 0x1a, 0xc5, 0x49, 0xdc, 0x81, + 0xd0, 0xe4, 0xe5, 0x52, 0x65, 0x4d, 0x5b, 0x6a, 0x18, 0x35, 0xfc, 0x65, 0x69, 0xb8, 0x31, 0x1f, + 0x3e, 0x3f, 0x07, 0x8e, 0x13, 0xde, 0x5e, 0x25, 0x5c, 0xc5, 0x4c, 0xe9, 0xf1, 0x5c, 0x09, 0x00, + 0x9a, 0xa2, 0xec, 0x85, 0x9f, 0x91, 0xbe, 0x23, 0x8c, 0x83, 0xb0, 0xa7, 0x8e, 0x08, 0xc9, 0xf8, + 0x76, 0x56, 0xe6, 0xbc, 0xa7, 0x74, 0xb1, 0xc9, 0x84, 0xe2, 0x9f, 0xc7, 0x3d, 0x14, 0x44, 0x83, + 0x4f, 0xcc, 0xbf, 0x32, 0xf9, 0xf9, 0xd9, 0x1b, 0x15, 0x9d, 0x88, 0xc3, 0x1c, 0x00, 0x24, 0x85, + 0x48, 0x10, 0x95, 0x83, 0xbe, 0x03, 0x49, 0x94, 0x1c, 0x94, 0xca, 0x46, 0xe5, 0xbc, 0x16, 0x25, + 0x07, 0x9f, 0x56, 0xc0, 0xe4, 0x0a, 0xf2, 0xf0, 0x64, 0xa7, 0x0b, 0x9f, 0x21, 0xb1, 0x30, 0x83, + 0xed, 0x0b, 0x72, 0x39, 0x72, 0x30, 0x3f, 0xa7, 0x6f, 0xf0, 0xa7, 0x86, 0xb1, 0x0d, 0xfc, 0xaa, + 0x23, 0x06, 0x92, 0xa7, 0x81, 0xbc, 0x87, 0x3f, 0xb3, 0xf5, 0xe1, 0xc7, 0x46, 0x8e, 0x23, 0xb8, + 0x90, 0x25, 0xd3, 0x33, 0x75, 0x9a, 0x9f, 0x1b, 0x36, 0x24, 0x8d, 0x8a, 0x08, 0x42, 0xbe, 0x1f, + 0x0d, 0xc3, 0xbf, 0x55, 0xc0, 0x29, 0xaa, 0x1f, 0xa5, 0x4e, 0xa7, 0xee, 0x39, 0x2e, 0xd2, 0x51, + 0x13, 0x59, 0x1d, 0xaf, 0x67, 0xe1, 0xcd, 0xa5, 0xa9, 0xfe, 0xce, 0x1e, 0x7b, 0x85, 0x6f, 0x50, + 0x64, 0x23, 0x1a, 0x1e, 0xd0, 0xc7, 0x9e, 0xfa, 0x22, 0x94, 0xfd, 0xa3, 0x59, 0x99, 0x18, 0x85, + 0x09, 0x0b, 0x4f, 0x06, 0xd4, 0x87, 0x8e, 0x00, 0x28, 0x7f, 0x49, 0x45, 0xd7, 0xca, 0x5a, 0x65, + 0x03, 0x0f, 0x02, 0x37, 0x82, 0xeb, 0x37, 0x36, 0xf5, 0xf2, 0x6a, 0xa9, 0xae, 0x35, 0x74, 0x6d, + 0xa5, 0x52, 0x37, 0xf4, 0x92, 0x51, 0xa9, 0xf9, 0x04, 0x4c, 0xa8, 0x37, 0x80, 0xf9, 0xfa, 0xe6, + 0x62, 0xbd, 0xac, 0x57, 0x36, 0x48, 0xba, 0xae, 0x55, 0xb5, 0x0b, 0xec, 0xeb, 0x24, 0xfc, 0x40, + 0x11, 0x4c, 0x63, 0xcb, 0xbc, 0x4e, 0x0d, 0x76, 0xf8, 0xcd, 0x1c, 0x98, 0xd6, 0x51, 0xd7, 0x69, + 0xef, 0x13, 0xe3, 0x7d, 0x5c, 0x73, 0x82, 0x6f, 0x29, 0xb2, 0xa7, 0xa1, 0x38, 0x62, 0x17, 0x38, + 0x42, 0xa3, 0x67, 0x80, 0xa6, 0x1f, 0x1d, 0x98, 0xd9, 0x2d, 0x61, 0x82, 0xba, 0x00, 0x54, 0xe7, + 0xb2, 0x8d, 0xdc, 0x7a, 0xf3, 0xb2, 0xe6, 0xed, 0x94, 0x5a, 0x2d, 0x17, 0x75, 0xbb, 0x6c, 0x59, + 0xa1, 0xcf, 0x17, 0xf5, 0x36, 0x70, 0x9c, 0xa4, 0x72, 0x99, 0xe9, 0xd1, 0xcd, 0xde, 0xe4, 0x20, + 0x67, 0xc9, 0xbe, 0xea, 0xe7, 0xcc, 0x73, 0x39, 0xc3, 0x64, 0xde, 0xf9, 0xb0, 0x20, 0xfa, 0xbc, + 0xde, 0x04, 0xa6, 0x6d, 0x73, 0x17, 0x69, 0x57, 0x3a, 0x96, 0x8b, 0xba, 0xf3, 0x13, 0x64, 0x37, + 0x8d, 0x4f, 0x82, 0xbf, 0x2f, 0x75, 0x7a, 0x4b, 0x8e, 0x63, 0xc9, 0x64, 0x7f, 0x65, 0x08, 0xd1, + 0xef, 0xd3, 0xcf, 0x28, 0xf0, 0x03, 0x0a, 0x98, 0x61, 0x44, 0x95, 0xec, 0xab, 0x95, 0x16, 0xbc, + 0x51, 0x30, 0x4b, 0x4d, 0x9c, 0xe6, 0x9b, 0xa5, 0xe4, 0x05, 0xfe, 0x9c, 0x22, 0xeb, 0x4e, 0xd4, + 0xa7, 0xe1, 0xa4, 0x8e, 0x68, 0x17, 0x97, 0x2d, 0x67, 0x8f, 0xb9, 0xd4, 0x4c, 0xea, 0xf4, 0x25, + 0xcd, 0xd5, 0x36, 0xf8, 0x41, 0x29, 0x67, 0x25, 0xc9, 0x66, 0x1c, 0x11, 0x80, 0x1f, 0x57, 0xc0, + 0x1c, 0xa3, 0xaa, 0xce, 0xbc, 0x66, 0xa5, 0xdc, 0xc7, 0x7f, 0x5e, 0xda, 0x10, 0xec, 0xd3, 0x7e, + 0x56, 0xd3, 0xa3, 0x06, 0xc8, 0x0f, 0x4b, 0x85, 0x1a, 0x91, 0x6e, 0xc8, 0x11, 0x41, 0xf9, 0xf6, + 0x1c, 0x98, 0xde, 0xec, 0x22, 0x97, 0xf9, 0xc5, 0xc1, 0xd7, 0xe6, 0x80, 0xb2, 0x82, 0x84, 0x1d, + 0xce, 0x17, 0xe5, 0x64, 0x57, 0xeb, 0xf8, 0xc6, 0x72, 0x85, 0x62, 0x1b, 0x29, 0x02, 0xb6, 0x5b, + 0xc1, 0x1c, 0x65, 0x69, 0xc9, 0xf3, 0xb0, 0x91, 0xe8, 0x1f, 0x02, 0xe8, 0x49, 0x1d, 0xc5, 0x1e, + 0x0e, 0xa9, 0x0b, 0x67, 0x29, 0x63, 0x9a, 0xd6, 0xd0, 0x16, 0x0d, 0x44, 0x95, 0xd3, 0x7b, 0x52, + 0xc9, 0xc5, 0xcd, 0x1d, 0x44, 0xbd, 0x41, 0xb9, 0xcc, 0x79, 0x92, 0xb9, 0xdf, 0x27, 0xf8, 0x4d, + 0xa9, 0x08, 0x7d, 0xf2, 0xdc, 0x49, 0x26, 0x0b, 0x9d, 0xd1, 0x98, 0x24, 0x27, 0x41, 0x11, 0xe7, + 0x20, 0x1b, 0x23, 0xba, 0x56, 0xaf, 0xad, 0x9d, 0xd7, 0xfa, 0xaf, 0x2f, 0xe4, 0xe1, 0x0b, 0x14, + 0x30, 0xb5, 0xe8, 0x3a, 0x66, 0xab, 0x69, 0x76, 0x3d, 0xf8, 0x9d, 0x2c, 0x98, 0xd9, 0x30, 0xaf, + 0xb6, 0x1d, 0xb3, 0x45, 0x3c, 0x11, 0x7b, 0xfa, 0x82, 0x0e, 0xfd, 0xe4, 0xf7, 0x05, 0xec, 0x55, + 0x74, 0xb3, 0x0f, 0x1c, 0xe1, 0x33, 0x32, 0x57, 0x89, 0x05, 0xfb, 0x6f, 0xd9, 0x7e, 0xa1, 0xbf, + 0x7c, 0xba, 0x16, 0x78, 0x9a, 0x22, 0x2c, 0xca, 0x0f, 0xc8, 0x05, 0xf3, 0x92, 0x29, 0xf2, 0x68, + 0xb6, 0xcb, 0x1f, 0x99, 0x04, 0x85, 0x25, 0x44, 0xac, 0xb8, 0xdf, 0xce, 0x82, 0x09, 0x76, 0x99, + 0x3e, 0xbc, 0x5b, 0x70, 0x72, 0x6c, 0x91, 0x0c, 0x41, 0x77, 0x1c, 0xbc, 0xe3, 0xc9, 0x3a, 0x77, + 0x7a, 0x89, 0x3c, 0x27, 0x70, 0xff, 0xa2, 0xf5, 0x46, 0x5c, 0xe0, 0x9f, 0xcc, 0xfd, 0x2b, 0xb6, + 0xa8, 0xf4, 0x9d, 0xa0, 0xde, 0x99, 0x65, 0x3e, 0x4f, 0x5c, 0xaf, 0xf7, 0xab, 0xbc, 0x7c, 0xc6, + 0xba, 0x81, 0x31, 0xe2, 0x63, 0xbc, 0x96, 0xee, 0x02, 0x13, 0x94, 0xe7, 0xfe, 0x7c, 0xb4, 0xd7, + 0x81, 0x80, 0x16, 0x41, 0x4e, 0x32, 0xf9, 0x39, 0x25, 0x7d, 0xc7, 0xa2, 0x2b, 0x1f, 0xcb, 0x89, + 0xbe, 0x99, 0x2a, 0xf2, 0x2e, 0x3b, 0xee, 0xa5, 0xba, 0x67, 0x7a, 0x08, 0xfe, 0x73, 0x16, 0x28, + 0x75, 0xe4, 0xf1, 0x67, 0x89, 0xab, 0xe0, 0x04, 0x6d, 0x10, 0xcb, 0x48, 0xfa, 0x6f, 0xda, 0x90, + 0x9b, 0xfa, 0x32, 0x81, 0xcb, 0xa7, 0x1f, 0xfc, 0x15, 0xfe, 0x52, 0xdf, 0x10, 0x0a, 0xd9, 0x3e, + 0x93, 0x06, 0xc6, 0x19, 0x9e, 0x40, 0x2c, 0x60, 0x11, 0x72, 0xfa, 0x7b, 0x52, 0x66, 0xb5, 0x5c, + 0x99, 0x47, 0xd2, 0x15, 0x9c, 0x9d, 0x00, 0x79, 0x6d, 0xb7, 0xe3, 0x5d, 0x3d, 0xfb, 0x38, 0x30, + 0x5b, 0xf7, 0x5c, 0x64, 0xee, 0x72, 0x36, 0xb5, 0xe7, 0x5c, 0x42, 0xb6, 0x6f, 0x53, 0x93, 0x97, + 0x7b, 0xee, 0x06, 0x13, 0xb6, 0xd3, 0x30, 0xf7, 0xbc, 0x1d, 0xf5, 0xc6, 0x03, 0x97, 0xde, 0xaf, + 0x53, 0x6f, 0xdd, 0x1a, 0x3b, 0x4b, 0xf3, 0x95, 0x7b, 0x89, 0x55, 0x55, 0xb0, 0x9d, 0xd2, 0x9e, + 0xb7, 0xb3, 0x78, 0xc3, 0xc7, 0xff, 0xe6, 0x4c, 0xe6, 0xd3, 0x7f, 0x73, 0x26, 0xf3, 0xe5, 0xbf, + 0x39, 0x93, 0xf9, 0xf9, 0xaf, 0x9e, 0x39, 0xf6, 0xe9, 0xaf, 0x9e, 0x39, 0xf6, 0xf9, 0xaf, 0x9e, + 0x39, 0xf6, 0xc3, 0xd9, 0xce, 0xc5, 0x8b, 0x05, 0x52, 0xca, 0x5d, 0xff, 0x6f, 0x00, 0x00, 0x00, + 0xff, 0xff, 0x2c, 0x0a, 0xf3, 0xa5, 0xc4, 0xdd, 0x01, 0x00, } func (m *Rpc) Marshal() (dAtA []byte, err error) { @@ -80431,10 +80431,10 @@ func (m *RpcObjectListModifyDetailValuesRequestOperation) MarshalToSizedBuffer(d i-- dAtA[i] = 0x12 } - if len(m.Key) > 0 { - i -= len(m.Key) - copy(dAtA[i:], m.Key) - i = encodeVarintCommands(dAtA, i, uint64(len(m.Key))) + if len(m.RelationKey) > 0 { + i -= len(m.RelationKey) + copy(dAtA[i:], m.RelationKey) + i = encodeVarintCommands(dAtA, i, uint64(len(m.RelationKey))) i-- dAtA[i] = 0xa } @@ -114240,7 +114240,7 @@ func (m *RpcObjectListModifyDetailValuesRequestOperation) Size() (n int) { } var l int _ = l - l = len(m.Key) + l = len(m.RelationKey) if l > 0 { n += 1 + l + sovCommands(uint64(l)) } @@ -161531,7 +161531,7 @@ func (m *RpcObjectListModifyDetailValuesRequestOperation) Unmarshal(dAtA []byte) switch fieldNum { case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Key", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field RelationKey", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -161559,7 +161559,7 @@ func (m *RpcObjectListModifyDetailValuesRequestOperation) Unmarshal(dAtA []byte) if postIndex > l { return io.ErrUnexpectedEOF } - m.Key = string(dAtA[iNdEx:postIndex]) + m.RelationKey = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex case 2: if wireType != 2 { diff --git a/pb/protos/commands.proto b/pb/protos/commands.proto index 5a35adaf9..21176425b 100644 --- a/pb/protos/commands.proto +++ b/pb/protos/commands.proto @@ -2423,7 +2423,7 @@ message Rpc { repeated Operation operations = 2; message Operation { - string key = 1; + string relationKey = 1; google.protobuf.Value add = 2; google.protobuf.Value set = 3; google.protobuf.Value remove = 4; From 0b60aaa9f560a6501353cce9158d036947ab5fb9 Mon Sep 17 00:00:00 2001 From: Sergey Date: Fri, 16 Aug 2024 11:57:05 +0200 Subject: [PATCH 34/78] GO-3934: Fix not equal filter --- pkg/lib/database/filter.go | 11 +---------- 1 file changed, 1 insertion(+), 10 deletions(-) diff --git a/pkg/lib/database/filter.go b/pkg/lib/database/filter.go index 5165c3711..68b1eabe1 100644 --- a/pkg/lib/database/filter.go +++ b/pkg/lib/database/filter.go @@ -313,16 +313,7 @@ func (e FilterEq) AnystoreFilter() query.Filter { case model.BlockContentDataviewFilter_LessOrEqual: op = query.CompOpLte case model.BlockContentDataviewFilter_NotEqual: - return query.Or{ - query.Key{ - Path: path, - Filter: query.NewComp(query.CompOpNe, scalarPbValueToAny(e.Value)), - }, - query.Key{ - Path: path, - Filter: query.Not{Filter: query.Exists{}}, - }, - } + op = query.CompOpNe } return query.Key{ Path: path, From 3877444214d0cb16fcf0af3ce2b3ec1eb6bbebfe Mon Sep 17 00:00:00 2001 From: kirillston Date: Mon, 19 Aug 2024 11:15:58 +0300 Subject: [PATCH 35/78] GO-3923 Add comment on noImages flag --- core/block/object/objectlink/dependent_objects.go | 1 + 1 file changed, 1 insertion(+) diff --git a/core/block/object/objectlink/dependent_objects.go b/core/block/object/objectlink/dependent_objects.go index 9770175d8..ac00c2810 100644 --- a/core/block/object/objectlink/dependent_objects.go +++ b/core/block/object/objectlink/dependent_objects.go @@ -94,6 +94,7 @@ func collectIdsFromBlocks(s *state.State, flags Flags) (ids []string) { } } + // if NoImages == false, then file block will be processed with FillSmartIds if flags.NoImages { if f := b.Model().GetFile(); f != nil { if f.TargetObjectId != "" && f.Type != model.BlockContentFile_Image { From 8d6081d96f18497cc3da512bbe3ed74df80c6afe Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 19 Aug 2024 09:15:38 +0000 Subject: [PATCH 36/78] Bump golang.org/x/image from 0.18.0 to 0.19.0 Bumps [golang.org/x/image](https://github.com/golang/image) from 0.18.0 to 0.19.0. - [Commits](https://github.com/golang/image/compare/v0.18.0...v0.19.0) --- updated-dependencies: - dependency-name: golang.org/x/image dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index b126f8ce9..a82f04a28 100644 --- a/go.mod +++ b/go.mod @@ -92,7 +92,7 @@ require ( go.uber.org/multierr v1.11.0 go.uber.org/zap v1.27.0 golang.org/x/exp v0.0.0-20240719175910-8a7402abbf56 - golang.org/x/image v0.18.0 + golang.org/x/image v0.19.0 golang.org/x/mobile v0.0.0-20240520174638-fa72addaaa1b golang.org/x/net v0.27.0 golang.org/x/oauth2 v0.21.0 diff --git a/go.sum b/go.sum index 6296cb178..21648cd4b 100644 --- a/go.sum +++ b/go.sum @@ -1535,8 +1535,8 @@ golang.org/x/image v0.0.0-20180708004352-c73c2afc3b81/go.mod h1:ux5Hcp/YLpHSI86h golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js= golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= golang.org/x/image v0.0.0-20191009234506-e7c1f5e7dbb8/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= -golang.org/x/image v0.18.0 h1:jGzIakQa/ZXI1I0Fxvaa9W7yP25TqT6cHIHn+6CqvSQ= -golang.org/x/image v0.18.0/go.mod h1:4yyo5vMFQjVjUcVk4jEQcU9MGy/rulF5WvUILseCM2E= +golang.org/x/image v0.19.0 h1:D9FX4QWkLfkeqaC62SonffIIuYdOk/UE2XKUBgRIBIQ= +golang.org/x/image v0.19.0/go.mod h1:y0zrRqlQRWQ5PXaYCOMLTW2fpsxZ8Qh9I/ohnInJEys= golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU= golang.org/x/lint v0.0.0-20190301231843-5614ed5bae6f/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= From fef88e093f60e464c6800dd5cb59df9c5cac9263 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 19 Aug 2024 09:15:39 +0000 Subject: [PATCH 37/78] Bump github.com/samber/lo from 1.46.0 to 1.47.0 Bumps [github.com/samber/lo](https://github.com/samber/lo) from 1.46.0 to 1.47.0. - [Release notes](https://github.com/samber/lo/releases) - [Changelog](https://github.com/samber/lo/blob/master/CHANGELOG.md) - [Commits](https://github.com/samber/lo/compare/v1.46.0...v1.47.0) --- updated-dependencies: - dependency-name: github.com/samber/lo dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index f3e4979fe..c2f613d85 100644 --- a/go.mod +++ b/go.mod @@ -78,7 +78,7 @@ require ( github.com/prometheus/client_golang v1.20.0 github.com/pseudomuto/protoc-gen-doc v1.5.1 github.com/rwcarlsen/goexif v0.0.0-20190401172101-9e8deecbddbd - github.com/samber/lo v1.46.0 + github.com/samber/lo v1.47.0 github.com/sasha-s/go-deadlock v0.3.5 github.com/shirou/gopsutil/v3 v3.24.4 github.com/stretchr/testify v1.9.0 diff --git a/go.sum b/go.sum index 5a6f9329f..c233ecf4b 100644 --- a/go.sum +++ b/go.sum @@ -1272,8 +1272,8 @@ github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQD github.com/rwcarlsen/goexif v0.0.0-20190401172101-9e8deecbddbd h1:CmH9+J6ZSsIjUK3dcGsnCnO41eRBOnY12zwkn5qVwgc= github.com/rwcarlsen/goexif v0.0.0-20190401172101-9e8deecbddbd/go.mod h1:hPqNNc0+uJM6H+SuU8sEs5K5IQeKccPqeSjfgcKGgPk= github.com/ryanuber/columnize v0.0.0-20160712163229-9b3edd62028f/go.mod h1:sm1tb6uqfes/u+d4ooFouqFdy9/2g9QGwK3SQygK0Ts= -github.com/samber/lo v1.46.0 h1:w8G+oaCPgz1PoCJztqymCFaKwXt+5cCXn51uPxExFfQ= -github.com/samber/lo v1.46.0/go.mod h1:RmDH9Ct32Qy3gduHQuKJ3gW1fMHAnE/fAzQuf6He5cU= +github.com/samber/lo v1.47.0 h1:z7RynLwP5nbyRscyvcD043DWYoOcYRv3mV8lBeqOCLc= +github.com/samber/lo v1.47.0/go.mod h1:RmDH9Ct32Qy3gduHQuKJ3gW1fMHAnE/fAzQuf6He5cU= github.com/samuel/go-zookeeper v0.0.0-20190923202752-2cc03de413da/go.mod h1:gi+0XIa01GRL2eRQVjQkKGqKF3SF9vZR/HnPullcV2E= github.com/sasha-s/go-deadlock v0.3.5 h1:tNCOEEDG6tBqrNDOX35j/7hL5FcFViG6awUGROb2NsU= github.com/sasha-s/go-deadlock v0.3.5/go.mod h1:bugP6EGbdGYObIlx7pUZtWqlvo8k9H6vCBBsiChJQ5U= From 873f2716934923686f5b21ae7956050a97ad9a90 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 19 Aug 2024 09:15:46 +0000 Subject: [PATCH 38/78] Bump golang.org/x/oauth2 from 0.21.0 to 0.22.0 Bumps [golang.org/x/oauth2](https://github.com/golang/oauth2) from 0.21.0 to 0.22.0. - [Commits](https://github.com/golang/oauth2/compare/v0.21.0...v0.22.0) --- updated-dependencies: - dependency-name: golang.org/x/oauth2 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index f3e4979fe..93606dda4 100644 --- a/go.mod +++ b/go.mod @@ -95,7 +95,7 @@ require ( golang.org/x/image v0.18.0 golang.org/x/mobile v0.0.0-20240520174638-fa72addaaa1b golang.org/x/net v0.27.0 - golang.org/x/oauth2 v0.21.0 + golang.org/x/oauth2 v0.22.0 golang.org/x/text v0.17.0 google.golang.org/grpc v1.65.0 gopkg.in/Graylog2/go-gelf.v2 v2.0.0-20180125164251-1832d8546a9f diff --git a/go.sum b/go.sum index 5a6f9329f..c033e2904 100644 --- a/go.sum +++ b/go.sum @@ -1639,8 +1639,8 @@ golang.org/x/oauth2 v0.0.0-20200902213428-5d25da1a8d43/go.mod h1:KelEdhl1UZF7XfJ golang.org/x/oauth2 v0.0.0-20201109201403-9fd604954f58/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= golang.org/x/oauth2 v0.0.0-20201208152858-08078c50e5b5/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= golang.org/x/oauth2 v0.0.0-20210218202405-ba52d332ba99/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= -golang.org/x/oauth2 v0.21.0 h1:tsimM75w1tF/uws5rbeHzIWxEqElMehnc+iW793zsZs= -golang.org/x/oauth2 v0.21.0/go.mod h1:XYTD2NtWslqkgxebSiOHnXEap4TF09sJSc7H1sXbhtI= +golang.org/x/oauth2 v0.22.0 h1:BzDx2FehcG7jJwgWLELCdmLuxk2i+x9UDpSiss2u0ZA= +golang.org/x/oauth2 v0.22.0/go.mod h1:XYTD2NtWslqkgxebSiOHnXEap4TF09sJSc7H1sXbhtI= golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= From ddf63afdd31cae31c2e7bc5acb8f21959f2c084c Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 19 Aug 2024 10:19:48 +0000 Subject: [PATCH 39/78] Bump golang.org/x/net from 0.27.0 to 0.28.0 Bumps [golang.org/x/net](https://github.com/golang/net) from 0.27.0 to 0.28.0. - [Commits](https://github.com/golang/net/compare/v0.27.0...v0.28.0) --- updated-dependencies: - dependency-name: golang.org/x/net dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- go.mod | 8 ++++---- go.sum | 16 ++++++++-------- 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/go.mod b/go.mod index d59c698f8..2779150ed 100644 --- a/go.mod +++ b/go.mod @@ -94,7 +94,7 @@ require ( golang.org/x/exp v0.0.0-20240719175910-8a7402abbf56 golang.org/x/image v0.19.0 golang.org/x/mobile v0.0.0-20240520174638-fa72addaaa1b - golang.org/x/net v0.27.0 + golang.org/x/net v0.28.0 golang.org/x/oauth2 v0.22.0 golang.org/x/text v0.17.0 google.golang.org/grpc v1.65.0 @@ -256,11 +256,11 @@ require ( go.opencensus.io v0.24.0 // indirect go.opentelemetry.io/otel v1.14.0 // indirect go.opentelemetry.io/otel/trace v1.14.0 // indirect - golang.org/x/crypto v0.25.0 // indirect + golang.org/x/crypto v0.26.0 // indirect golang.org/x/mod v0.19.0 // indirect golang.org/x/sync v0.8.0 // indirect - golang.org/x/sys v0.22.0 // indirect - golang.org/x/term v0.22.0 // indirect + golang.org/x/sys v0.23.0 // indirect + golang.org/x/term v0.23.0 // indirect golang.org/x/time v0.5.0 // indirect golang.org/x/tools v0.23.0 // indirect google.golang.org/genproto/googleapis/api v0.0.0-20240528184218-531527333157 // indirect diff --git a/go.sum b/go.sum index a9c8bf274..bd4859a3d 100644 --- a/go.sum +++ b/go.sum @@ -1513,8 +1513,8 @@ golang.org/x/crypto v0.0.0-20210421170649-83a5a9bb288b/go.mod h1:T9bdIzuCu7OtxOm golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/crypto v0.0.0-20220722155217-630584e8d5aa/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= golang.org/x/crypto v0.12.0/go.mod h1:NF0Gs7EO5K4qLn+Ylc+fih8BSTeIjAP05siRnAh98yw= -golang.org/x/crypto v0.25.0 h1:ypSNr+bnYL2YhwoMt2zPxHFmbAN1KZs/njMG3hxUp30= -golang.org/x/crypto v0.25.0/go.mod h1:T+wALwcMOSE0kXgUAnPAHqTLW+XHgcELELW8VaDgm/M= +golang.org/x/crypto v0.26.0 h1:RrRspgV4mU+YwB4FYnuBoKsUapNIL5cohGAmSH3azsw= +golang.org/x/crypto v0.26.0/go.mod h1:GY7jblb9wI+FOo5y8/S2oY4zWP07AkOJ4+jxCqdqn54= golang.org/x/exp v0.0.0-20180321215751-8460e604b9de/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20180807140117-3d87b88a115f/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= @@ -1628,8 +1628,8 @@ golang.org/x/net v0.7.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= golang.org/x/net v0.9.0/go.mod h1:d48xBJpPfHeWQsugry2m+kC02ZBRGRgulfHnEXEuWns= golang.org/x/net v0.10.0/go.mod h1:0qNGK6F8kojg2nk9dLZ2mShWaEBan6FAoqfSigmmuDg= golang.org/x/net v0.14.0/go.mod h1:PpSgVXXLK0OxS0F31C1/tv6XNguvCrnXIDrFMspZIUI= -golang.org/x/net v0.27.0 h1:5K3Njcw06/l2y9vpGCSdcxWOYHOUk3dVNGDXN+FvAys= -golang.org/x/net v0.27.0/go.mod h1:dDi0PyhWNoiUOrAS8uXv/vnScO4wnHQO4mj9fn/RytE= +golang.org/x/net v0.28.0 h1:a9JDOJc5GMUJ0+UDqmLT86WiEy7iWyIhz8gz8E4e5hE= +golang.org/x/net v0.28.0/go.mod h1:yqtgsTWOOnlGLG9GFRrK3++bGOUEkNBoHZc8MEDWPNg= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= @@ -1749,8 +1749,8 @@ golang.org/x/sys v0.7.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.11.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.19.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= -golang.org/x/sys v0.22.0 h1:RI27ohtqKCnwULzJLqkv897zojh5/DwS/ENaMzUOaWI= -golang.org/x/sys v0.22.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.23.0 h1:YfKFowiIMvtgl1UERQoTPPToxltDeZfbj4H7dVUCwmM= +golang.org/x/sys v0.23.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/term v0.0.0-20201117132131-f5c789dd3221/go.mod h1:Nr5EML6q2oocZ2LXRh80K7BxOlk5/8JxuGnuhpl+muw= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= @@ -1758,8 +1758,8 @@ golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k= golang.org/x/term v0.7.0/go.mod h1:P32HKFT3hSsZrRxla30E9HqToFYAQPCMs/zFMBUFqPY= golang.org/x/term v0.8.0/go.mod h1:xPskH00ivmX89bAKVGSKKtLOWNx2+17Eiy94tnKShWo= golang.org/x/term v0.11.0/go.mod h1:zC9APTIj3jG3FdV/Ons+XE1riIZXG4aZ4GTHiPZJPIU= -golang.org/x/term v0.22.0 h1:BbsgPEJULsl2fV/AT3v15Mjva5yXKQDyKf+TbDz7QJk= -golang.org/x/term v0.22.0/go.mod h1:F3qCibpT5AMpCRfhfT53vVJwhLtIVHhB9XDjfFvnMI4= +golang.org/x/term v0.23.0 h1:F6D4vR+EHoL9/sWAWgAR1H2DcHr4PareCbAaCo1RpuU= +golang.org/x/term v0.23.0/go.mod h1:DgV24QBUrK6jhZXl+20l6UWznPlwAHm1Q1mGHtydmSk= golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= From e5671e2cb70a969dd6e9ddb21c44cadb21e3cb63 Mon Sep 17 00:00:00 2001 From: AnastasiaShemyakinskaya Date: Mon, 19 Aug 2024 15:26:40 +0200 Subject: [PATCH 40/78] GO-3273: fix debug tree cmd Signed-off-by: AnastasiaShemyakinskaya --- cmd/debugtree/debugtree.go | 4 ++-- core/block/editor/state/test/buildfast_test.go | 4 ++-- core/debug/service.go | 2 +- core/debug/treearchive/treeimporter.go | 10 +++++++--- 4 files changed, 12 insertions(+), 8 deletions(-) diff --git a/cmd/debugtree/debugtree.go b/cmd/debugtree/debugtree.go index 7bcd4dd83..47d4841b9 100644 --- a/cmd/debugtree/debugtree.go +++ b/cmd/debugtree/debugtree.go @@ -51,7 +51,7 @@ func main() { importer := treearchive.NewTreeImporter(archive.ListStorage(), archive.TreeStorage()) st = time.Now() - err = importer.Import("") + err = importer.Import(*fromRoot, "") if err != nil { log.Fatal("can't import the tree", err) } @@ -82,7 +82,7 @@ func main() { } fmt.Println("Change:") fmt.Println(pbtypes.Sprint(ch.Model)) - err = importer.Import(ch.Id) + err = importer.Import(false, ch.Id) if err != nil { log.Fatal("can't import the tree before", ch.Id, err) } diff --git a/core/block/editor/state/test/buildfast_test.go b/core/block/editor/state/test/buildfast_test.go index 2cabaafb9..6b0846932 100644 --- a/core/block/editor/state/test/buildfast_test.go +++ b/core/block/editor/state/test/buildfast_test.go @@ -50,7 +50,7 @@ func testBuildFast(b *testing.T, filepath string) { importer := treearchive.NewTreeImporter(archive.ListStorage(), archive.TreeStorage()) - err = importer.Import("") + err = importer.Import(false, "") if err != nil { log.Fatal("can't import the tree", err) } @@ -64,7 +64,7 @@ func testBuildFast(b *testing.T, filepath string) { importer2 := treearchive.NewTreeImporter(archive.ListStorage(), archive.TreeStorage()) - err = importer2.Import("") + err = importer2.Import(false, "") if err != nil { log.Fatal("can't import the tree", err) } diff --git a/core/debug/service.go b/core/debug/service.go index 20a3478d0..33008a0eb 100644 --- a/core/debug/service.go +++ b/core/debug/service.go @@ -165,7 +165,7 @@ func (d *debug) TreeHeads(ctx context.Context, id string) (info TreeInfo, err er if err != nil { return } - tree, err := spc.TreeBuilder().BuildHistoryTree(ctx, id, objecttreebuilder.HistoryTreeOpts{}) + tree, err := spc.TreeBuilder().BuildHistoryTree(ctx, id, objecttreebuilder.HistoryTreeOpts{Heads: []string{""}}) if err != nil { return } diff --git a/core/debug/treearchive/treeimporter.go b/core/debug/treearchive/treeimporter.go index 025937939..82728b162 100644 --- a/core/debug/treearchive/treeimporter.go +++ b/core/debug/treearchive/treeimporter.go @@ -44,7 +44,7 @@ func (m MarshalledJsonChange) MarshalJSON() ([]byte, error) { type TreeImporter interface { ObjectTree() objecttree.ReadableObjectTree State() (*state.State, error) // set fullStateChain to true to get full state chain, otherwise only the last state will be returned - Import(beforeId string) error + Import(fromRoot bool, beforeId string) error Json() (TreeJson, error) ChangeAt(idx int) (IdChange, error) } @@ -83,15 +83,19 @@ func (t *treeImporter) State() (*state.State, error) { return st, nil } -func (t *treeImporter) Import(beforeId string) (err error) { +func (t *treeImporter) Import(fullTree bool, beforeId string) (err error) { aclList, err := list.BuildAclList(t.listStorage, list.NoOpAcceptorVerifier{}) if err != nil { return } + var heads []string + if !fullTree { + heads = []string{beforeId} + } t.objectTree, err = objecttree.BuildNonVerifiableHistoryTree(objecttree.HistoryTreeParams{ TreeStorage: t.treeStorage, AclList: aclList, - Heads: []string{beforeId}, + Heads: heads, IncludeBeforeId: true, }) From 91af9abcc1d13ca945f1ad93288860132ead84d8 Mon Sep 17 00:00:00 2001 From: kirillston Date: Mon, 19 Aug 2024 17:03:38 +0300 Subject: [PATCH 41/78] GO-3795 Introduce MergeUniqBy --- core/block/editor.go | 2 +- util/pbtypes/pbtypes.go | 26 +++++++++----------------- util/pbtypes/pbtypes_test.go | 6 ++++++ util/slice/slice.go | 21 +++++++++++++++++++++ util/slice/slice_test.go | 9 +++++++++ 5 files changed, 46 insertions(+), 18 deletions(-) diff --git a/core/block/editor.go b/core/block/editor.go index 631ab6a80..a8610f136 100644 --- a/core/block/editor.go +++ b/core/block/editor.go @@ -644,7 +644,7 @@ func (s *Service) ModifyDetailsList(req *pb.RpcObjectListModifyDetailValuesReque for _, objectId := range req.ObjectIds { err := s.ModifyDetails(objectId, func(current *types.Struct) (*types.Struct, error) { for _, op := range req.Operations { - if op.Set != nil { + if op.Set != nil && pbtypes.ValueToInterface(op.Set) != nil { // Set operation has higher priority than Add and Remove, because it modifies full value current.Fields[op.RelationKey] = op.Set continue diff --git a/util/pbtypes/pbtypes.go b/util/pbtypes/pbtypes.go index 1675f21c7..4b832eab7 100644 --- a/util/pbtypes/pbtypes.go +++ b/util/pbtypes/pbtypes.go @@ -2,7 +2,7 @@ package pbtypes import ( "fmt" - "strconv" + "slices" "strings" "github.com/gogo/protobuf/jsonpb" @@ -614,8 +614,8 @@ func AddValue(s *types.Struct, key string, v *types.Value) { } toAdd := GetList(v) oldValues := GetValueList(s, key) - newValues := lo.UniqBy(append(oldValues, toAdd...), func(item *types.Value) string { - return getUniqueId(item) + newValues := slice.MergeUniqBy(oldValues, toAdd, func(this *types.Value, that *types.Value) bool { + return this.Equal(that) }) s.Fields[key] = &types.Value{ Kind: &types.Value_ListValue{ListValue: &types.ListValue{Values: newValues}}, @@ -635,25 +635,17 @@ func RemoveValue(s *types.Struct, key string, v *types.Value) { delete(s.Fields, key) return } - values := GetList(value) - if len(values) == 0 { + oldValues := GetList(value) + if len(oldValues) == 0 { return } toDelete := GetList(v) - uniqueIdsToDelete := []string{} - for _, valueToDelete := range toDelete { - uniqueIdsToDelete = append(uniqueIdsToDelete, getUniqueId(valueToDelete)) - } - newValues := lo.Filter(values, func(item *types.Value, _ int) bool { - return !lo.Contains(uniqueIdsToDelete, getUniqueId(item)) + newValues := lo.Filter(oldValues, func(oldValue *types.Value, _ int) bool { + return !slices.ContainsFunc(toDelete, func(valueToDelete *types.Value) bool { + return oldValue.Equal(valueToDelete) + }) }) s.Fields[key] = &types.Value{ Kind: &types.Value_ListValue{ListValue: &types.ListValue{Values: newValues}}, } } - -func getUniqueId(v *types.Value) string { - str := v.GetStringValue() - str = str + strconv.FormatFloat(v.GetNumberValue(), 'f', -1, 64) - return str -} diff --git a/util/pbtypes/pbtypes_test.go b/util/pbtypes/pbtypes_test.go index 1fe6d0401..0b05b185e 100644 --- a/util/pbtypes/pbtypes_test.go +++ b/util/pbtypes/pbtypes_test.go @@ -236,3 +236,9 @@ func TestAddRemoveValue(t *testing.T) { }) } } + +func TestEqual(t *testing.T) { + v1 := String("red") + v2 := String("red") + assert.True(t, v1.Equal(v2)) +} diff --git a/util/slice/slice.go b/util/slice/slice.go index 4c87d0084..d23643467 100644 --- a/util/slice/slice.go +++ b/util/slice/slice.go @@ -237,3 +237,24 @@ func FilterCID(cids []string) []string { return err == nil }) } + +// MergeUniqBy merges two slices with comparator. Resulting slice saves values' order and uniqueness +// Input slices MUST contain only unique values +func MergeUniqBy[T comparable](s1, s2 []T, equal func(v1, v2 T) bool) (result []T) { + result = make([]T, len(s1)) + copy(result, s1) + for _, v2 := range s2 { + isUnique := true + for _, v1 := range s1 { + if equal(v1, v2) { + isUnique = false + break + } + } + if isUnique { + result = append(result, v2) + } + } + + return result +} diff --git a/util/slice/slice_test.go b/util/slice/slice_test.go index 3d642bd33..f8396fddf 100644 --- a/util/slice/slice_test.go +++ b/util/slice/slice_test.go @@ -100,3 +100,12 @@ func TestUnsortedEquals(t *testing.T) { assert.False(t, UnsortedEqual([]string{"a", "b", "c"}, []string{"a", "b"})) assert.False(t, UnsortedEqual([]string{"a", "b", "c"}, []string{"a", "b", "c", "d"})) } + +func TestMergeUniqBy(t *testing.T) { + strEqual := func(v1, v2 string) bool { + return v1 == v2 + } + assert.Equal(t, MergeUniqBy([]string{"a", "b", "c"}, []string{"a", "b"}, strEqual), []string{"a", "b", "c"}) + assert.Equal(t, MergeUniqBy([]string{}, []string{"a", "b"}, strEqual), []string{"a", "b"}) + assert.Equal(t, MergeUniqBy([]string{"a", "b", "c"}, []string{"z", "d"}, strEqual), []string{"a", "b", "c", "z", "d"}) +} From 7cdb2ce17de8d56039b5d5680b33efe69024942b Mon Sep 17 00:00:00 2001 From: Sergey Date: Tue, 20 Aug 2024 10:56:32 +0200 Subject: [PATCH 42/78] GO-3895: Fix query --- pkg/lib/localstore/objectstore/queries.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkg/lib/localstore/objectstore/queries.go b/pkg/lib/localstore/objectstore/queries.go index 05b879c8f..f31437282 100644 --- a/pkg/lib/localstore/objectstore/queries.go +++ b/pkg/lib/localstore/objectstore/queries.go @@ -130,7 +130,7 @@ func (s *dsObjectStore) queryAnyStore(filter database.Filter, order database.Ord } } }() - iter, err := s.objects.Find(anystoreFilter.String()).Sort(sortsArg...).Offset(offset).Limit(limit).Iter(s.componentCtx) + iter, err := query.Iter(s.componentCtx) if err != nil { return nil, fmt.Errorf("find: %w", err) } From 09d8d1e57df7608cc4d8358e28879a9d51ae9c80 Mon Sep 17 00:00:00 2001 From: kirillston Date: Tue, 20 Aug 2024 18:42:43 +0300 Subject: [PATCH 43/78] GO-3120 Fix files fetch for bookmarks --- core/block/bookmark/bookmark_service.go | 19 +++++++++-------- core/block/object/objectcreator/creator.go | 24 ++++++++++------------ 2 files changed, 22 insertions(+), 21 deletions(-) diff --git a/core/block/bookmark/bookmark_service.go b/core/block/bookmark/bookmark_service.go index 3d4dccb4e..fea63b496 100644 --- a/core/block/bookmark/bookmark_service.go +++ b/core/block/bookmark/bookmark_service.go @@ -23,7 +23,6 @@ import ( "github.com/anyproto/anytype-heart/core/domain/objectorigin" "github.com/anyproto/anytype-heart/core/files/fileuploader" "github.com/anyproto/anytype-heart/core/session" - "github.com/anyproto/anytype-heart/pb" "github.com/anyproto/anytype-heart/pkg/lib/bundle" "github.com/anyproto/anytype-heart/pkg/lib/core" "github.com/anyproto/anytype-heart/pkg/lib/database" @@ -42,8 +41,8 @@ const CName = "bookmark" type ContentFuture func() *bookmark.ObjectContent type Service interface { - CreateObjectAndFetch(ctx context.Context, spaceId string, req *pb.RpcObjectCreateBookmarkRequest) (objectID string, newDetails *types.Struct, err error) - CreateBookmarkObject(ctx context.Context, spaceID string, details *types.Struct, getContent ContentFuture) (objectId string, newDetails *types.Struct, err error) + CreateObjectAndFetch(ctx context.Context, spaceId string, details *types.Struct) (objectID string, newDetails *types.Struct, err error) + CreateBookmarkObject(ctx context.Context, spaceId string, details *types.Struct, getContent ContentFuture) (objectId string, newDetails *types.Struct, err error) UpdateObject(objectId string, getContent *bookmark.ObjectContent) error // TODO Maybe Fetch and FetchBookmarkContent do the same thing differently? FetchAsync(spaceID string, blockID string, params bookmark.FetchParams) @@ -92,24 +91,28 @@ func (s *service) Name() (name string) { var log = logging.Logger("anytype-mw-bookmark") -func (s *service) CreateObjectAndFetch(ctx context.Context, spaceId string, req *pb.RpcObjectCreateBookmarkRequest) (objectID string, newDetails *types.Struct, err error) { - source := pbtypes.GetString(req.Details, bundle.RelationKeySource.String()) +func (s *service) CreateObjectAndFetch( + ctx context.Context, spaceId string, details *types.Struct, +) (objectID string, newDetails *types.Struct, err error) { + source := pbtypes.GetString(details, bundle.RelationKeySource.String()) var res ContentFuture if source != "" { u, err := uri.NormalizeURI(source) if err != nil { return "", nil, fmt.Errorf("process uri: %w", err) } - res = s.FetchBookmarkContent(req.SpaceId, u, false) + res = s.FetchBookmarkContent(spaceId, u, false) } else { res = func() *bookmark.ObjectContent { return nil } } - return s.CreateBookmarkObject(ctx, spaceId, req.Details, res) + return s.CreateBookmarkObject(ctx, spaceId, details, res) } -func (s *service) CreateBookmarkObject(ctx context.Context, spaceID string, details *types.Struct, getContent ContentFuture) (objectId string, objectDetails *types.Struct, err error) { +func (s *service) CreateBookmarkObject( + ctx context.Context, spaceID string, details *types.Struct, getContent ContentFuture, +) (objectId string, objectDetails *types.Struct, err error) { if details == nil || details.Fields == nil { return "", nil, fmt.Errorf("empty details") } diff --git a/core/block/object/objectcreator/creator.go b/core/block/object/objectcreator/creator.go index 00dd02edb..5c834dbdb 100644 --- a/core/block/object/objectcreator/creator.go +++ b/core/block/object/objectcreator/creator.go @@ -24,14 +24,18 @@ import ( ) type ( - CollectionService interface { + collectionService interface { CreateCollection(details *types.Struct, flags []*model.InternalFlag) (coresb.SmartBlockType, *types.Struct, *state.State, error) } - TemplateService interface { + templateService interface { CreateTemplateStateWithDetails(templateId string, details *types.Struct) (st *state.State, err error) TemplateCloneInSpace(space clientspace.Space, id string) (templateId string, err error) } + + bookmarkService interface { + CreateObjectAndFetch(ctx context.Context, spaceId string, details *types.Struct) (objectID string, newDetails *types.Struct, err error) + } ) const CName = "objectCreator" @@ -49,16 +53,12 @@ type Service interface { app.Component } -type bookmarkService interface { - CreateObjectAndFetch(ctx context.Context, spaceId string, req *pb.RpcObjectCreateBookmarkRequest) (objectID string, newDetails *types.Struct, err error) -} - type service struct { objectStore objectstore.ObjectStore - collectionService CollectionService + collectionService collectionService bookmarkService bookmarkService spaceService space.Service - templateService TemplateService + templateService templateService } func NewCreator() Service { @@ -68,9 +68,9 @@ func NewCreator() Service { func (s *service) Init(a *app.App) (err error) { s.objectStore = a.MustComponent(objectstore.CName).(objectstore.ObjectStore) s.bookmarkService = app.MustComponent[bookmarkService](a) - s.collectionService = app.MustComponent[CollectionService](a) + s.collectionService = app.MustComponent[collectionService](a) s.spaceService = app.MustComponent[space.Service](a) - s.templateService = app.MustComponent[TemplateService](a) + s.templateService = app.MustComponent[templateService](a) return nil } @@ -124,9 +124,7 @@ func (s *service) createObjectInSpace( } switch req.ObjectTypeKey { case bundle.TypeKeyBookmark: - return s.bookmarkService.CreateObjectAndFetch(ctx, space.Id(), &pb.RpcObjectCreateBookmarkRequest{ - Details: details, - }) + return s.bookmarkService.CreateObjectAndFetch(ctx, space.Id(), details) case bundle.TypeKeySet: details.Fields[bundle.RelationKeyLayout.String()] = pbtypes.Float64(float64(model.ObjectType_set)) return s.createSet(ctx, space, &pb.RpcObjectCreateSetRequest{ From 6939c97a77d55e8161cbaec20c63fded44e6c68f Mon Sep 17 00:00:00 2001 From: Roman Khafizianov Date: Tue, 20 Aug 2024 18:33:07 +0200 Subject: [PATCH 44/78] GO-3889 psd, tiff support --- go.mod | 4 +- go.sum | 6 ++- pkg/lib/mill/image_resize.go | 62 +++++++++++++++++++++++++++---- pkg/lib/mill/image_resize_psd.go | 54 +++++++++++++++++++++++++++ pkg/lib/mill/testdata/images.go | 7 ++++ pkg/lib/mill/testdata/text.psd | Bin 0 -> 409388 bytes 6 files changed, 123 insertions(+), 10 deletions(-) create mode 100644 pkg/lib/mill/image_resize_psd.go create mode 100644 pkg/lib/mill/testdata/text.psd diff --git a/go.mod b/go.mod index 2779150ed..c5b0f1c7a 100644 --- a/go.mod +++ b/go.mod @@ -14,7 +14,7 @@ require ( github.com/araddon/dateparse v0.0.0-20210429162001-6b43995a97de github.com/avast/retry-go/v4 v4.6.0 github.com/blevesearch/bleve/v2 v2.3.10 - github.com/chai2010/webp v1.1.1 + github.com/chai2010/webp v1.1.2-0.20240612091223-aa1b379218b7 github.com/cheggaaa/mb v1.0.3 github.com/cheggaaa/mb/v3 v3.0.2 github.com/dave/jennifer v1.7.0 @@ -71,6 +71,7 @@ require ( github.com/multiformats/go-multiaddr-dns v0.3.1 github.com/multiformats/go-multibase v0.2.0 github.com/multiformats/go-multihash v0.2.3 + github.com/oov/psd v0.0.0-20220121172623-5db5eafcecbb github.com/opentracing/opentracing-go v1.2.0 github.com/otiai10/copy v1.14.0 github.com/otiai10/opengraph/v2 v2.1.0 @@ -173,6 +174,7 @@ require ( github.com/google/flatbuffers v1.12.1 // indirect github.com/google/go-querystring v1.1.0 // indirect github.com/google/pprof v0.0.0-20240402174815-29b9bb013b0f // indirect + github.com/gopherjs/gopherjs v0.0.0-20190430165422-3e4dfb77656c // indirect github.com/gorilla/css v1.0.0 // indirect github.com/gosimple/unidecode v1.0.1 // indirect github.com/hashicorp/errwrap v1.1.0 // indirect diff --git a/go.sum b/go.sum index bd4859a3d..1d226c91d 100644 --- a/go.sum +++ b/go.sum @@ -202,8 +202,8 @@ github.com/cespare/xxhash v1.1.0/go.mod h1:XrSqR1VqqWfGrhpAt58auRo0WTKS1nRRg3ghf github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= github.com/cespare/xxhash/v2 v2.3.0 h1:UL815xU9SqsFlibzuggzjXhog7bL6oX9BbNZnL2UFvs= github.com/cespare/xxhash/v2 v2.3.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= -github.com/chai2010/webp v1.1.1 h1:jTRmEccAJ4MGrhFOrPMpNGIJ/eybIgwKpcACsrTEapk= -github.com/chai2010/webp v1.1.1/go.mod h1:0XVwvZWdjjdxpUEIf7b9g9VkHFnInUSYujwqTLEuldU= +github.com/chai2010/webp v1.1.2-0.20240612091223-aa1b379218b7 h1:EcFyQu4Hz/YC2lc3xWqn678e2FNfG0cgTr/EOA4ByWs= +github.com/chai2010/webp v1.1.2-0.20240612091223-aa1b379218b7/go.mod h1:0XVwvZWdjjdxpUEIf7b9g9VkHFnInUSYujwqTLEuldU= github.com/cheggaaa/mb v1.0.3 h1:03ksWum+6kHclB+kjwKMaBtgl5gtNYUwNpxsHQciKe8= github.com/cheggaaa/mb v1.0.3/go.mod h1:NUl0GBtFLlfg2o6iZwxzcG7Lslc2wV/ADTFbLXtVPE4= github.com/cheggaaa/mb/v3 v3.0.2 h1:jd1Xx0zzihZlXL6HmnRXVCI1BHuXz/kY+VzX9WbvNDU= @@ -1128,6 +1128,8 @@ github.com/onsi/gomega v1.7.1/go.mod h1:XdKZgCCFLUoM/7CFJVPcG8C1xQ1AJ0vpAezJrB7J github.com/onsi/gomega v1.9.0/go.mod h1:Ho0h+IUsWyvy1OpqCwxlQ/21gkhVunqlU8fDGcoTdcA= github.com/onsi/gomega v1.30.0 h1:hvMK7xYz4D3HapigLTeGdId/NcfQx1VHMJc60ew99+8= github.com/onsi/gomega v1.30.0/go.mod h1:9sxs+SwGrKI0+PWe4Fxa9tFQQBG5xSsSbMXOI8PPpoQ= +github.com/oov/psd v0.0.0-20220121172623-5db5eafcecbb h1:JF9kOhBBk4WPF7luXFu5yR+WgaFm9L/KiHJHhU9vDwA= +github.com/oov/psd v0.0.0-20220121172623-5db5eafcecbb/go.mod h1:GHI1bnmAcbp96z6LNfBJvtrjxhaXGkbsk967utPlvL8= github.com/op/go-logging v0.0.0-20160315200505-970db520ece7/go.mod h1:HzydrMdWErDVzsI23lYNej1Htcns9BCg93Dk0bBINWk= github.com/opentracing-contrib/go-observer v0.0.0-20170622124052-a52f23424492/go.mod h1:Ngi6UdF0k5OKD5t5wlmGhe/EDKPoUM3BXZSSfIuJbis= github.com/opentracing/basictracer-go v1.0.0/go.mod h1:QfBfYuafItcjQuMwinw9GhYKwFXS9KnPs5lxoYwgW74= diff --git a/pkg/lib/mill/image_resize.go b/pkg/lib/mill/image_resize.go index bdd10d095..9d90ff516 100644 --- a/pkg/lib/mill/image_resize.go +++ b/pkg/lib/mill/image_resize.go @@ -31,12 +31,15 @@ func init() { } const ( - JPEG Format = "jpeg" - PNG Format = "png" - GIF Format = "gif" - ICO Format = "vnd.microsoft.icon" - WEBP Format = "webp" - HEIC Format = "heic" + JPEG Format = "jpeg" + PNG Format = "png" + GIF Format = "gif" + ICO Format = "vnd.microsoft.icon" + WEBP Format = "webp" + HEIC Format = "heic" + PSD Format = "psd" + PSD_MIME Format = "vnd.adobe.photoshop" + TIFF Format = "tiff" ) func IsImage(mime string) bool { @@ -51,7 +54,7 @@ func IsImage(mime string) bool { func isImageFormatSupported(format Format) bool { switch format { - case JPEG, PNG, GIF, ICO, WEBP, HEIC: + case JPEG, PNG, GIF, ICO, WEBP, HEIC, PSD_MIME, PSD, TIFF: return true } return false @@ -120,6 +123,10 @@ func (m *ImageResize) Mill(r io.ReadSeeker, name string) (*Result, error) { return m.resizeGIF(&imgConfig, r) case HEIC: return m.resizeHEIC(&imgConfig, r) + case TIFF: + return m.resizeTIFF(&imgConfig, r) + case PSD: + return m.resizePSD(&imgConfig, r) } return nil, fmt.Errorf("unknown format") @@ -336,6 +343,47 @@ func (m *ImageResize) resizeGIF(imgConfig *image.Config, r io.ReadSeeker) (*Resu }, nil } +func (m *ImageResize) resizeTIFF(imgConfig *image.Config, r io.ReadSeeker) (*Result, error) { + // tiff resizes to jpeg + img, _, err := image.Decode(r) + if err != nil { + return nil, fmt.Errorf("decode tiff: %w", err) + } + var height int + width, err := strconv.Atoi(m.Opts.Width) + if err != nil { + return nil, fmt.Errorf("invalid width: " + m.Opts.Width) + } + + resized := imaging.Resize(img, width, 0, imaging.Lanczos) + width, height = resized.Rect.Max.X, resized.Rect.Max.Y + + quality, err := strconv.Atoi(m.Opts.Quality) + if err != nil { + return nil, fmt.Errorf("invalid quality: " + m.Opts.Quality) + } + + buf := pool.Get() + defer func() { + _ = buf.Close() + }() + + if err = jpeg.Encode(buf, resized, &jpeg.Options{Quality: quality}); err != nil { + return nil, err + } + readSeekCloser, err := buf.GetReadSeekCloser() + if err != nil { + return nil, err + } + return &Result{ + File: readSeekCloser, + Meta: map[string]interface{}{ + "width": width, + "height": height, + }, + }, nil +} + func getExifData(r io.ReadSeeker) (data []byte, err error) { exifData, err := exif.SearchAndExtractExifWithReader(r) if err != nil { diff --git a/pkg/lib/mill/image_resize_psd.go b/pkg/lib/mill/image_resize_psd.go new file mode 100644 index 000000000..cecfbd092 --- /dev/null +++ b/pkg/lib/mill/image_resize_psd.go @@ -0,0 +1,54 @@ +package mill + +import ( + "fmt" + "image" + "image/jpeg" + "io" + "strconv" + + "github.com/disintegration/imaging" + "github.com/oov/psd" +) + +func (m *ImageResize) resizePSD(imgConfig *image.Config, r io.ReadSeeker) (res *Result, err error) { + img, _, err := psd.Decode(r, &psd.DecodeOptions{SkipLayerImage: true}) + if err != nil { + return nil, err + } + + var height int + width, err := strconv.Atoi(m.Opts.Width) + if err != nil { + return nil, fmt.Errorf("invalid width: " + m.Opts.Width) + } + + resized := imaging.Resize(img.Picker, width, 0, imaging.Lanczos) + width, height = resized.Rect.Max.X, resized.Rect.Max.Y + + quality, err := strconv.Atoi(m.Opts.Quality) + if err != nil { + return nil, fmt.Errorf("invalid quality: " + m.Opts.Quality) + } + + buf := pool.Get() + defer func() { + _ = buf.Close() + }() + + // encode to jpeg encoding to increase compatibility on mobile devices + if err = jpeg.Encode(buf, resized, &jpeg.Options{Quality: quality}); err != nil { + return nil, err + } + readSeekCloser, err := buf.GetReadSeekCloser() + if err != nil { + return nil, err + } + return &Result{ + File: readSeekCloser, + Meta: map[string]interface{}{ + "width": width, + "height": height, + }, + }, nil +} diff --git a/pkg/lib/mill/testdata/images.go b/pkg/lib/mill/testdata/images.go index f31b5263c..d325a389e 100644 --- a/pkg/lib/mill/testdata/images.go +++ b/pkg/lib/mill/testdata/images.go @@ -9,6 +9,13 @@ type TestImage struct { } var Images = []TestImage{ + { + Path: "testdata/text.psd", + Format: "psd", + HasExif: true, + Width: 800, + Height: 600, + }, { Path: "testdata/Landscape_8.jpg", Format: "jpeg", diff --git a/pkg/lib/mill/testdata/text.psd b/pkg/lib/mill/testdata/text.psd new file mode 100644 index 0000000000000000000000000000000000000000..6df58b4b06c7612a08b41c083e8d4d31789ccb49 GIT binary patch literal 409388 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 literal 0 HcmV?d00001 From 6d83938f0344d4946057a1d953cfb371cf24fe57 Mon Sep 17 00:00:00 2001 From: kirillston Date: Tue, 20 Aug 2024 20:48:07 +0300 Subject: [PATCH 45/78] GO-3120 Add unit test --- .mockery.yaml | 3 + core/block/bookmark/bookmark_service_test.go | 103 ++++ .../mock_objectcreator/mock_Service.go | 479 ++++++++++++++++++ 3 files changed, 585 insertions(+) create mode 100644 core/block/object/objectcreator/mock_objectcreator/mock_Service.go diff --git a/.mockery.yaml b/.mockery.yaml index e0b1b83d3..a4d63be78 100644 --- a/.mockery.yaml +++ b/.mockery.yaml @@ -84,6 +84,9 @@ packages: github.com/anyproto/anytype-heart/core/block/object/objectcache: interfaces: Cache: + github.com/anyproto/anytype-heart/core/block/object/objectcreator: + interfaces: + Service: github.com/anyproto/anytype-heart/metrics/anymetry: interfaces: Service: diff --git a/core/block/bookmark/bookmark_service_test.go b/core/block/bookmark/bookmark_service_test.go index 5c78e2a64..b0571833c 100644 --- a/core/block/bookmark/bookmark_service_test.go +++ b/core/block/bookmark/bookmark_service_test.go @@ -1,15 +1,118 @@ package bookmark import ( + "context" "testing" + "github.com/gogo/protobuf/types" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/mock" + "github.com/anyproto/anytype-heart/core/block/editor/state" + "github.com/anyproto/anytype-heart/core/block/object/objectcreator/mock_objectcreator" + "github.com/anyproto/anytype-heart/core/block/simple/bookmark" + "github.com/anyproto/anytype-heart/core/domain" + "github.com/anyproto/anytype-heart/core/session" + "github.com/anyproto/anytype-heart/pkg/lib/bundle" + "github.com/anyproto/anytype-heart/pkg/lib/localstore/objectstore" "github.com/anyproto/anytype-heart/pkg/lib/pb/model" + "github.com/anyproto/anytype-heart/space/clientspace/mock_clientspace" + "github.com/anyproto/anytype-heart/space/mock_space" "github.com/anyproto/anytype-heart/util/linkpreview/mock_linkpreview" + "github.com/anyproto/anytype-heart/util/pbtypes" ) +const ( + spaceId = "space1" + bookmarkId = "ot-bookmark" +) + +type detailsSetter struct{} + +func (ds *detailsSetter) SetDetails(session.Context, string, []*model.Detail) error { + return nil +} + +type fixture struct { + s *service + + creator *mock_objectcreator.MockService + space *mock_clientspace.MockSpace + spaceService *mock_space.MockService + store *objectstore.StoreFixture +} + +func newFixture(t *testing.T) *fixture { + spc := mock_clientspace.NewMockSpace(t) + spc.EXPECT().GetTypeIdByKey(mock.Anything, bundle.TypeKeyBookmark).Return(bookmarkId, nil).Once() + spaceSvc := mock_space.NewMockService(t) + spaceSvc.EXPECT().Get(mock.Anything, spaceId).Return(spc, nil).Once() + + store := objectstore.NewStoreFixture(t) + creator := mock_objectcreator.NewMockService(t) + + s := &service{ + detailsSetter: &detailsSetter{}, + creator: creator, + store: store, + spaceService: spaceSvc, + } + + return &fixture{ + s: s, + creator: creator, + space: spc, + spaceService: spaceSvc, + store: store, + } +} + +func TestService_CreateBookmarkObject(t *testing.T) { + t.Run("new bookmark object creation", func(t *testing.T) { + // given + fx := newFixture(t) + details := &types.Struct{Fields: map[string]*types.Value{}} + fx.creator.EXPECT().CreateSmartBlockFromState(mock.Anything, mock.Anything, mock.Anything, mock.Anything).RunAndReturn( + func(_ context.Context, spcId string, keys []domain.TypeKey, state *state.State) (string, *types.Struct, error) { + assert.Equal(t, spaceId, spcId) + assert.Equal(t, []domain.TypeKey{bundle.TypeKeyBookmark}, keys) + assert.Equal(t, details, state.Details()) + + return "some_id", nil, nil + }, + ).Once() + + // when + _, _, err := fx.s.CreateBookmarkObject(nil, spaceId, details, func() *bookmark.ObjectContent { return nil }) + + // then + assert.NoError(t, err) + }) + + t.Run("bookmark with existing url is created", func(t *testing.T) { + // given + fx := newFixture(t) + url := "https://url.com" + details := &types.Struct{Fields: map[string]*types.Value{ + bundle.RelationKeySource.String(): pbtypes.String(url), + }} + fx.store.AddObjects(t, []objectstore.TestObject{{ + bundle.RelationKeyId: pbtypes.String("bk"), + bundle.RelationKeySource: pbtypes.String(url), + bundle.RelationKeyType: pbtypes.String(bookmarkId), + }}) + + // when + id, _, err := fx.s.CreateBookmarkObject(nil, spaceId, details, func() *bookmark.ObjectContent { + return &bookmark.ObjectContent{BookmarkContent: &model.BlockContentBookmark{}} + }) + + // then + assert.NoError(t, err) + assert.Equal(t, "bk", id) + }) +} + func TestService_FetchBookmarkContent(t *testing.T) { t.Run("link to html page - create blocks", func(t *testing.T) { // given diff --git a/core/block/object/objectcreator/mock_objectcreator/mock_Service.go b/core/block/object/objectcreator/mock_objectcreator/mock_Service.go new file mode 100644 index 000000000..5bf86491f --- /dev/null +++ b/core/block/object/objectcreator/mock_objectcreator/mock_Service.go @@ -0,0 +1,479 @@ +// Code generated by mockery. DO NOT EDIT. + +package mock_objectcreator + +import ( + context "context" + + app "github.com/anyproto/any-sync/app" + clientspace "github.com/anyproto/anytype-heart/space/clientspace" + + domain "github.com/anyproto/anytype-heart/core/domain" + + mock "github.com/stretchr/testify/mock" + + objectcreator "github.com/anyproto/anytype-heart/core/block/object/objectcreator" + + state "github.com/anyproto/anytype-heart/core/block/editor/state" + + types "github.com/gogo/protobuf/types" +) + +// MockService is an autogenerated mock type for the Service type +type MockService struct { + mock.Mock +} + +type MockService_Expecter struct { + mock *mock.Mock +} + +func (_m *MockService) EXPECT() *MockService_Expecter { + return &MockService_Expecter{mock: &_m.Mock} +} + +// CreateObject provides a mock function with given fields: ctx, spaceID, req +func (_m *MockService) CreateObject(ctx context.Context, spaceID string, req objectcreator.CreateObjectRequest) (string, *types.Struct, error) { + ret := _m.Called(ctx, spaceID, req) + + if len(ret) == 0 { + panic("no return value specified for CreateObject") + } + + var r0 string + var r1 *types.Struct + var r2 error + if rf, ok := ret.Get(0).(func(context.Context, string, objectcreator.CreateObjectRequest) (string, *types.Struct, error)); ok { + return rf(ctx, spaceID, req) + } + if rf, ok := ret.Get(0).(func(context.Context, string, objectcreator.CreateObjectRequest) string); ok { + r0 = rf(ctx, spaceID, req) + } else { + r0 = ret.Get(0).(string) + } + + if rf, ok := ret.Get(1).(func(context.Context, string, objectcreator.CreateObjectRequest) *types.Struct); ok { + r1 = rf(ctx, spaceID, req) + } else { + if ret.Get(1) != nil { + r1 = ret.Get(1).(*types.Struct) + } + } + + if rf, ok := ret.Get(2).(func(context.Context, string, objectcreator.CreateObjectRequest) error); ok { + r2 = rf(ctx, spaceID, req) + } else { + r2 = ret.Error(2) + } + + return r0, r1, r2 +} + +// MockService_CreateObject_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'CreateObject' +type MockService_CreateObject_Call struct { + *mock.Call +} + +// CreateObject is a helper method to define mock.On call +// - ctx context.Context +// - spaceID string +// - req objectcreator.CreateObjectRequest +func (_e *MockService_Expecter) CreateObject(ctx interface{}, spaceID interface{}, req interface{}) *MockService_CreateObject_Call { + return &MockService_CreateObject_Call{Call: _e.mock.On("CreateObject", ctx, spaceID, req)} +} + +func (_c *MockService_CreateObject_Call) Run(run func(ctx context.Context, spaceID string, req objectcreator.CreateObjectRequest)) *MockService_CreateObject_Call { + _c.Call.Run(func(args mock.Arguments) { + run(args[0].(context.Context), args[1].(string), args[2].(objectcreator.CreateObjectRequest)) + }) + return _c +} + +func (_c *MockService_CreateObject_Call) Return(id string, details *types.Struct, err error) *MockService_CreateObject_Call { + _c.Call.Return(id, details, err) + return _c +} + +func (_c *MockService_CreateObject_Call) RunAndReturn(run func(context.Context, string, objectcreator.CreateObjectRequest) (string, *types.Struct, error)) *MockService_CreateObject_Call { + _c.Call.Return(run) + return _c +} + +// CreateObjectUsingObjectUniqueTypeKey provides a mock function with given fields: ctx, spaceID, objectUniqueTypeKey, req +func (_m *MockService) CreateObjectUsingObjectUniqueTypeKey(ctx context.Context, spaceID string, objectUniqueTypeKey string, req objectcreator.CreateObjectRequest) (string, *types.Struct, error) { + ret := _m.Called(ctx, spaceID, objectUniqueTypeKey, req) + + if len(ret) == 0 { + panic("no return value specified for CreateObjectUsingObjectUniqueTypeKey") + } + + var r0 string + var r1 *types.Struct + var r2 error + if rf, ok := ret.Get(0).(func(context.Context, string, string, objectcreator.CreateObjectRequest) (string, *types.Struct, error)); ok { + return rf(ctx, spaceID, objectUniqueTypeKey, req) + } + if rf, ok := ret.Get(0).(func(context.Context, string, string, objectcreator.CreateObjectRequest) string); ok { + r0 = rf(ctx, spaceID, objectUniqueTypeKey, req) + } else { + r0 = ret.Get(0).(string) + } + + if rf, ok := ret.Get(1).(func(context.Context, string, string, objectcreator.CreateObjectRequest) *types.Struct); ok { + r1 = rf(ctx, spaceID, objectUniqueTypeKey, req) + } else { + if ret.Get(1) != nil { + r1 = ret.Get(1).(*types.Struct) + } + } + + if rf, ok := ret.Get(2).(func(context.Context, string, string, objectcreator.CreateObjectRequest) error); ok { + r2 = rf(ctx, spaceID, objectUniqueTypeKey, req) + } else { + r2 = ret.Error(2) + } + + return r0, r1, r2 +} + +// MockService_CreateObjectUsingObjectUniqueTypeKey_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'CreateObjectUsingObjectUniqueTypeKey' +type MockService_CreateObjectUsingObjectUniqueTypeKey_Call struct { + *mock.Call +} + +// CreateObjectUsingObjectUniqueTypeKey is a helper method to define mock.On call +// - ctx context.Context +// - spaceID string +// - objectUniqueTypeKey string +// - req objectcreator.CreateObjectRequest +func (_e *MockService_Expecter) CreateObjectUsingObjectUniqueTypeKey(ctx interface{}, spaceID interface{}, objectUniqueTypeKey interface{}, req interface{}) *MockService_CreateObjectUsingObjectUniqueTypeKey_Call { + return &MockService_CreateObjectUsingObjectUniqueTypeKey_Call{Call: _e.mock.On("CreateObjectUsingObjectUniqueTypeKey", ctx, spaceID, objectUniqueTypeKey, req)} +} + +func (_c *MockService_CreateObjectUsingObjectUniqueTypeKey_Call) Run(run func(ctx context.Context, spaceID string, objectUniqueTypeKey string, req objectcreator.CreateObjectRequest)) *MockService_CreateObjectUsingObjectUniqueTypeKey_Call { + _c.Call.Run(func(args mock.Arguments) { + run(args[0].(context.Context), args[1].(string), args[2].(string), args[3].(objectcreator.CreateObjectRequest)) + }) + return _c +} + +func (_c *MockService_CreateObjectUsingObjectUniqueTypeKey_Call) Return(id string, details *types.Struct, err error) *MockService_CreateObjectUsingObjectUniqueTypeKey_Call { + _c.Call.Return(id, details, err) + return _c +} + +func (_c *MockService_CreateObjectUsingObjectUniqueTypeKey_Call) RunAndReturn(run func(context.Context, string, string, objectcreator.CreateObjectRequest) (string, *types.Struct, error)) *MockService_CreateObjectUsingObjectUniqueTypeKey_Call { + _c.Call.Return(run) + return _c +} + +// CreateSmartBlockFromState provides a mock function with given fields: ctx, spaceID, objectTypeKeys, createState +func (_m *MockService) CreateSmartBlockFromState(ctx context.Context, spaceID string, objectTypeKeys []domain.TypeKey, createState *state.State) (string, *types.Struct, error) { + ret := _m.Called(ctx, spaceID, objectTypeKeys, createState) + + if len(ret) == 0 { + panic("no return value specified for CreateSmartBlockFromState") + } + + var r0 string + var r1 *types.Struct + var r2 error + if rf, ok := ret.Get(0).(func(context.Context, string, []domain.TypeKey, *state.State) (string, *types.Struct, error)); ok { + return rf(ctx, spaceID, objectTypeKeys, createState) + } + if rf, ok := ret.Get(0).(func(context.Context, string, []domain.TypeKey, *state.State) string); ok { + r0 = rf(ctx, spaceID, objectTypeKeys, createState) + } else { + r0 = ret.Get(0).(string) + } + + if rf, ok := ret.Get(1).(func(context.Context, string, []domain.TypeKey, *state.State) *types.Struct); ok { + r1 = rf(ctx, spaceID, objectTypeKeys, createState) + } else { + if ret.Get(1) != nil { + r1 = ret.Get(1).(*types.Struct) + } + } + + if rf, ok := ret.Get(2).(func(context.Context, string, []domain.TypeKey, *state.State) error); ok { + r2 = rf(ctx, spaceID, objectTypeKeys, createState) + } else { + r2 = ret.Error(2) + } + + return r0, r1, r2 +} + +// MockService_CreateSmartBlockFromState_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'CreateSmartBlockFromState' +type MockService_CreateSmartBlockFromState_Call struct { + *mock.Call +} + +// CreateSmartBlockFromState is a helper method to define mock.On call +// - ctx context.Context +// - spaceID string +// - objectTypeKeys []domain.TypeKey +// - createState *state.State +func (_e *MockService_Expecter) CreateSmartBlockFromState(ctx interface{}, spaceID interface{}, objectTypeKeys interface{}, createState interface{}) *MockService_CreateSmartBlockFromState_Call { + return &MockService_CreateSmartBlockFromState_Call{Call: _e.mock.On("CreateSmartBlockFromState", ctx, spaceID, objectTypeKeys, createState)} +} + +func (_c *MockService_CreateSmartBlockFromState_Call) Run(run func(ctx context.Context, spaceID string, objectTypeKeys []domain.TypeKey, createState *state.State)) *MockService_CreateSmartBlockFromState_Call { + _c.Call.Run(func(args mock.Arguments) { + run(args[0].(context.Context), args[1].(string), args[2].([]domain.TypeKey), args[3].(*state.State)) + }) + return _c +} + +func (_c *MockService_CreateSmartBlockFromState_Call) Return(id string, newDetails *types.Struct, err error) *MockService_CreateSmartBlockFromState_Call { + _c.Call.Return(id, newDetails, err) + return _c +} + +func (_c *MockService_CreateSmartBlockFromState_Call) RunAndReturn(run func(context.Context, string, []domain.TypeKey, *state.State) (string, *types.Struct, error)) *MockService_CreateSmartBlockFromState_Call { + _c.Call.Return(run) + return _c +} + +// CreateSmartBlockFromStateInSpace provides a mock function with given fields: ctx, space, objectTypeKeys, createState +func (_m *MockService) CreateSmartBlockFromStateInSpace(ctx context.Context, space clientspace.Space, objectTypeKeys []domain.TypeKey, createState *state.State) (string, *types.Struct, error) { + ret := _m.Called(ctx, space, objectTypeKeys, createState) + + if len(ret) == 0 { + panic("no return value specified for CreateSmartBlockFromStateInSpace") + } + + var r0 string + var r1 *types.Struct + var r2 error + if rf, ok := ret.Get(0).(func(context.Context, clientspace.Space, []domain.TypeKey, *state.State) (string, *types.Struct, error)); ok { + return rf(ctx, space, objectTypeKeys, createState) + } + if rf, ok := ret.Get(0).(func(context.Context, clientspace.Space, []domain.TypeKey, *state.State) string); ok { + r0 = rf(ctx, space, objectTypeKeys, createState) + } else { + r0 = ret.Get(0).(string) + } + + if rf, ok := ret.Get(1).(func(context.Context, clientspace.Space, []domain.TypeKey, *state.State) *types.Struct); ok { + r1 = rf(ctx, space, objectTypeKeys, createState) + } else { + if ret.Get(1) != nil { + r1 = ret.Get(1).(*types.Struct) + } + } + + if rf, ok := ret.Get(2).(func(context.Context, clientspace.Space, []domain.TypeKey, *state.State) error); ok { + r2 = rf(ctx, space, objectTypeKeys, createState) + } else { + r2 = ret.Error(2) + } + + return r0, r1, r2 +} + +// MockService_CreateSmartBlockFromStateInSpace_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'CreateSmartBlockFromStateInSpace' +type MockService_CreateSmartBlockFromStateInSpace_Call struct { + *mock.Call +} + +// CreateSmartBlockFromStateInSpace is a helper method to define mock.On call +// - ctx context.Context +// - space clientspace.Space +// - objectTypeKeys []domain.TypeKey +// - createState *state.State +func (_e *MockService_Expecter) CreateSmartBlockFromStateInSpace(ctx interface{}, space interface{}, objectTypeKeys interface{}, createState interface{}) *MockService_CreateSmartBlockFromStateInSpace_Call { + return &MockService_CreateSmartBlockFromStateInSpace_Call{Call: _e.mock.On("CreateSmartBlockFromStateInSpace", ctx, space, objectTypeKeys, createState)} +} + +func (_c *MockService_CreateSmartBlockFromStateInSpace_Call) Run(run func(ctx context.Context, space clientspace.Space, objectTypeKeys []domain.TypeKey, createState *state.State)) *MockService_CreateSmartBlockFromStateInSpace_Call { + _c.Call.Run(func(args mock.Arguments) { + run(args[0].(context.Context), args[1].(clientspace.Space), args[2].([]domain.TypeKey), args[3].(*state.State)) + }) + return _c +} + +func (_c *MockService_CreateSmartBlockFromStateInSpace_Call) Return(id string, newDetails *types.Struct, err error) *MockService_CreateSmartBlockFromStateInSpace_Call { + _c.Call.Return(id, newDetails, err) + return _c +} + +func (_c *MockService_CreateSmartBlockFromStateInSpace_Call) RunAndReturn(run func(context.Context, clientspace.Space, []domain.TypeKey, *state.State) (string, *types.Struct, error)) *MockService_CreateSmartBlockFromStateInSpace_Call { + _c.Call.Return(run) + return _c +} + +// Init provides a mock function with given fields: a +func (_m *MockService) Init(a *app.App) error { + ret := _m.Called(a) + + if len(ret) == 0 { + panic("no return value specified for Init") + } + + var r0 error + if rf, ok := ret.Get(0).(func(*app.App) error); ok { + r0 = rf(a) + } else { + r0 = ret.Error(0) + } + + return r0 +} + +// MockService_Init_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'Init' +type MockService_Init_Call struct { + *mock.Call +} + +// Init is a helper method to define mock.On call +// - a *app.App +func (_e *MockService_Expecter) Init(a interface{}) *MockService_Init_Call { + return &MockService_Init_Call{Call: _e.mock.On("Init", a)} +} + +func (_c *MockService_Init_Call) Run(run func(a *app.App)) *MockService_Init_Call { + _c.Call.Run(func(args mock.Arguments) { + run(args[0].(*app.App)) + }) + return _c +} + +func (_c *MockService_Init_Call) Return(err error) *MockService_Init_Call { + _c.Call.Return(err) + return _c +} + +func (_c *MockService_Init_Call) RunAndReturn(run func(*app.App) error) *MockService_Init_Call { + _c.Call.Return(run) + return _c +} + +// InstallBundledObjects provides a mock function with given fields: ctx, space, sourceObjectIds, isNewSpace +func (_m *MockService) InstallBundledObjects(ctx context.Context, space clientspace.Space, sourceObjectIds []string, isNewSpace bool) ([]string, []*types.Struct, error) { + ret := _m.Called(ctx, space, sourceObjectIds, isNewSpace) + + if len(ret) == 0 { + panic("no return value specified for InstallBundledObjects") + } + + var r0 []string + var r1 []*types.Struct + var r2 error + if rf, ok := ret.Get(0).(func(context.Context, clientspace.Space, []string, bool) ([]string, []*types.Struct, error)); ok { + return rf(ctx, space, sourceObjectIds, isNewSpace) + } + if rf, ok := ret.Get(0).(func(context.Context, clientspace.Space, []string, bool) []string); ok { + r0 = rf(ctx, space, sourceObjectIds, isNewSpace) + } else { + if ret.Get(0) != nil { + r0 = ret.Get(0).([]string) + } + } + + if rf, ok := ret.Get(1).(func(context.Context, clientspace.Space, []string, bool) []*types.Struct); ok { + r1 = rf(ctx, space, sourceObjectIds, isNewSpace) + } else { + if ret.Get(1) != nil { + r1 = ret.Get(1).([]*types.Struct) + } + } + + if rf, ok := ret.Get(2).(func(context.Context, clientspace.Space, []string, bool) error); ok { + r2 = rf(ctx, space, sourceObjectIds, isNewSpace) + } else { + r2 = ret.Error(2) + } + + return r0, r1, r2 +} + +// MockService_InstallBundledObjects_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'InstallBundledObjects' +type MockService_InstallBundledObjects_Call struct { + *mock.Call +} + +// InstallBundledObjects is a helper method to define mock.On call +// - ctx context.Context +// - space clientspace.Space +// - sourceObjectIds []string +// - isNewSpace bool +func (_e *MockService_Expecter) InstallBundledObjects(ctx interface{}, space interface{}, sourceObjectIds interface{}, isNewSpace interface{}) *MockService_InstallBundledObjects_Call { + return &MockService_InstallBundledObjects_Call{Call: _e.mock.On("InstallBundledObjects", ctx, space, sourceObjectIds, isNewSpace)} +} + +func (_c *MockService_InstallBundledObjects_Call) Run(run func(ctx context.Context, space clientspace.Space, sourceObjectIds []string, isNewSpace bool)) *MockService_InstallBundledObjects_Call { + _c.Call.Run(func(args mock.Arguments) { + run(args[0].(context.Context), args[1].(clientspace.Space), args[2].([]string), args[3].(bool)) + }) + return _c +} + +func (_c *MockService_InstallBundledObjects_Call) Return(ids []string, objects []*types.Struct, err error) *MockService_InstallBundledObjects_Call { + _c.Call.Return(ids, objects, err) + return _c +} + +func (_c *MockService_InstallBundledObjects_Call) RunAndReturn(run func(context.Context, clientspace.Space, []string, bool) ([]string, []*types.Struct, error)) *MockService_InstallBundledObjects_Call { + _c.Call.Return(run) + return _c +} + +// Name provides a mock function with given fields: +func (_m *MockService) Name() string { + ret := _m.Called() + + if len(ret) == 0 { + panic("no return value specified for Name") + } + + var r0 string + if rf, ok := ret.Get(0).(func() string); ok { + r0 = rf() + } else { + r0 = ret.Get(0).(string) + } + + return r0 +} + +// MockService_Name_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'Name' +type MockService_Name_Call struct { + *mock.Call +} + +// Name is a helper method to define mock.On call +func (_e *MockService_Expecter) Name() *MockService_Name_Call { + return &MockService_Name_Call{Call: _e.mock.On("Name")} +} + +func (_c *MockService_Name_Call) Run(run func()) *MockService_Name_Call { + _c.Call.Run(func(args mock.Arguments) { + run() + }) + return _c +} + +func (_c *MockService_Name_Call) Return(name string) *MockService_Name_Call { + _c.Call.Return(name) + return _c +} + +func (_c *MockService_Name_Call) RunAndReturn(run func() string) *MockService_Name_Call { + _c.Call.Return(run) + return _c +} + +// NewMockService creates a new instance of MockService. It also registers a testing interface on the mock and a cleanup function to assert the mocks expectations. +// The first argument is typically a *testing.T value. +func NewMockService(t interface { + mock.TestingT + Cleanup(func()) +}) *MockService { + mock := &MockService{} + mock.Mock.Test(t) + + t.Cleanup(func() { mock.AssertExpectations(t) }) + + return mock +} From 1467a6b9290344c082b7f325805879718b685ca1 Mon Sep 17 00:00:00 2001 From: kirillston Date: Tue, 20 Aug 2024 21:55:52 +0300 Subject: [PATCH 46/78] GO-3795 Fix comments --- core/block/details.go | 125 +++++++++++++++++++++++++++++++++++ core/block/details_test.go | 71 ++++++++++++++++++++ core/block/editor.go | 66 ------------------ util/pbtypes/pbtypes.go | 45 ------------- util/pbtypes/pbtypes_test.go | 65 ------------------ util/slice/slice.go | 13 ++-- 6 files changed, 200 insertions(+), 185 deletions(-) create mode 100644 core/block/details.go create mode 100644 core/block/details_test.go diff --git a/core/block/details.go b/core/block/details.go new file mode 100644 index 000000000..8f9dc4591 --- /dev/null +++ b/core/block/details.go @@ -0,0 +1,125 @@ +package block + +import ( + "errors" + "slices" + + "github.com/gogo/protobuf/types" + "github.com/samber/lo" + + "github.com/anyproto/anytype-heart/core/block/cache" + "github.com/anyproto/anytype-heart/core/block/editor/basic" + "github.com/anyproto/anytype-heart/core/session" + "github.com/anyproto/anytype-heart/pb" + "github.com/anyproto/anytype-heart/pkg/lib/pb/model" + "github.com/anyproto/anytype-heart/util/pbtypes" + "github.com/anyproto/anytype-heart/util/slice" +) + +func (s *Service) SetDetails(ctx session.Context, objectId string, details []*model.Detail) (err error) { + return cache.Do(s, objectId, func(b basic.DetailsSettable) error { + return b.SetDetails(ctx, details, true) + }) +} + +func (s *Service) SetDetailsList(ctx session.Context, objectIds []string, details []*model.Detail) (err error) { + var ( + resultError error + anySucceed bool + ) + for _, objectId := range objectIds { + err := s.SetDetails(ctx, objectId, details) + if err != nil { + resultError = errors.Join(resultError, err) + } else { + anySucceed = true + } + } + if resultError != nil { + log.Warnf("SetDetailsList: %v", resultError) + } + if anySucceed { + return nil + } + return resultError +} + +// ModifyDetails performs details get and update under the sb lock to make sure no modifications are done in the middle +func (s *Service) ModifyDetails(objectId string, modifier func(current *types.Struct) (*types.Struct, error)) (err error) { + return cache.Do(s, objectId, func(du basic.DetailsUpdatable) error { + return du.UpdateDetails(modifier) + }) +} + +func (s *Service) ModifyDetailsList(req *pb.RpcObjectListModifyDetailValuesRequest) (resultError error) { + var anySucceed bool + for _, objectId := range req.ObjectIds { + err := s.ModifyDetails(objectId, func(current *types.Struct) (*types.Struct, error) { + for _, op := range req.Operations { + if op.Set != nil && pbtypes.ValueToInterface(op.Set) != nil { + // Set operation has higher priority than Add and Remove, because it modifies full value + current.Fields[op.RelationKey] = op.Set + continue + } + AddValue(current, op.RelationKey, op.Add) + RemoveValue(current, op.RelationKey, op.Remove) + } + return current, nil + }) + if err != nil { + resultError = errors.Join(resultError, err) + } else { + anySucceed = true + } + } + if resultError != nil { + log.Warnf("ModifyDetailsList: %v", resultError) + } + if anySucceed { + return nil + } + return resultError +} + +// AddValue adds values to int lists and string lists +func AddValue(s *types.Struct, key string, v *types.Value) { + if pbtypes.IsStructEmpty(s) || v == nil { + return + } + toAdd := pbtypes.GetList(v) + oldValues := pbtypes.GetValueList(s, key) + newValues := slice.MergeUniqBy(oldValues, toAdd, func(this *types.Value, that *types.Value) bool { + return this.Equal(that) + }) + s.Fields[key] = &types.Value{ + Kind: &types.Value_ListValue{ListValue: &types.ListValue{Values: newValues}}, + } +} + +// RemoveValue removes values from int lists and string lists +func RemoveValue(s *types.Struct, key string, v *types.Value) { + if pbtypes.IsStructEmpty(s) || v == nil { + return + } + value := pbtypes.Get(s, key) + if value == nil { + return + } + if value.Equal(v) { + delete(s.Fields, key) + return + } + oldValues := pbtypes.GetList(value) + if len(oldValues) == 0 { + return + } + toDelete := pbtypes.GetList(v) + newValues := lo.Filter(oldValues, func(oldValue *types.Value, _ int) bool { + return !slices.ContainsFunc(toDelete, func(valueToDelete *types.Value) bool { + return oldValue.Equal(valueToDelete) + }) + }) + s.Fields[key] = &types.Value{ + Kind: &types.Value_ListValue{ListValue: &types.ListValue{Values: newValues}}, + } +} diff --git a/core/block/details_test.go b/core/block/details_test.go new file mode 100644 index 000000000..711ced635 --- /dev/null +++ b/core/block/details_test.go @@ -0,0 +1,71 @@ +package block + +import ( + "testing" + + "github.com/gogo/protobuf/types" + "github.com/stretchr/testify/assert" + + "github.com/anyproto/anytype-heart/util/pbtypes" +) + +func newStruct() *types.Struct { + return &types.Struct{Fields: map[string]*types.Value{ + "tag": pbtypes.StringList([]string{"red", "black"}), + "author": pbtypes.String("William Shakespeare"), + "haters": pbtypes.StringList([]string{}), + "year": pbtypes.Int64(1564), + "numbers": pbtypes.IntList(8, 13, 21, 34), + }} +} + +func TestAddValue(t *testing.T) { + for _, tc := range []struct { + name string + key string + s *types.Struct + toAdd *types.Value + expected *types.Value + }{ + {"string list + string list", "tag", newStruct(), pbtypes.StringList([]string{"blue", "green"}), pbtypes.StringList([]string{"red", "black", "blue", "green"})}, + {"string list + string list (intersect)", "tag", newStruct(), pbtypes.StringList([]string{"blue", "black"}), pbtypes.StringList([]string{"red", "black", "blue"})}, + {"string + string list", "author", newStruct(), pbtypes.StringList([]string{"Victor Hugo"}), pbtypes.StringList([]string{"William Shakespeare", "Victor Hugo"})}, + {"string list + string", "tag", newStruct(), pbtypes.String("orange"), pbtypes.StringList([]string{"red", "black", "orange"})}, + {"int list + int list", "numbers", newStruct(), pbtypes.IntList(55, 89), pbtypes.IntList(8, 13, 21, 34, 55, 89)}, + {"int list + int list (intersect)", "numbers", newStruct(), pbtypes.IntList(13, 8, 55), pbtypes.IntList(8, 13, 21, 34, 55)}, + {"int + int list", "year", newStruct(), pbtypes.IntList(1666, 2025), pbtypes.IntList(1564, 1666, 2025)}, + {"int list + int", "numbers", newStruct(), pbtypes.Int64(55), pbtypes.IntList(8, 13, 21, 34, 55)}, + {"string list + empty", "haters", newStruct(), pbtypes.StringList([]string{"Tomas River", "Leo Tolstoy"}), pbtypes.StringList([]string{"Tomas River", "Leo Tolstoy"})}, + {"string list + no such key", "plays", newStruct(), pbtypes.StringList([]string{"Falstaff", "Romeo and Juliet", "Macbeth"}), pbtypes.StringList([]string{"Falstaff", "Romeo and Juliet", "Macbeth"})}, + } { + t.Run(tc.name, func(t *testing.T) { + AddValue(tc.s, tc.key, tc.toAdd) + assert.True(t, pbtypes.Get(tc.s, tc.key).Equal(tc.expected)) + }) + } +} + +func TestRemoveValue(t *testing.T) { + for _, tc := range []struct { + name string + key string + s *types.Struct + toRemove *types.Value + expected *types.Value + }{ + {"string list - string list", "tag", newStruct(), pbtypes.StringList([]string{"red", "black"}), nil}, + {"string list - string list (some are not presented)", "tag", newStruct(), pbtypes.StringList([]string{"blue", "black"}), pbtypes.StringList([]string{"red"})}, + {"string list - string", "tag", newStruct(), pbtypes.String("red"), pbtypes.StringList([]string{"black"})}, + {"string - string list", "author", newStruct(), pbtypes.StringList([]string{"William Shakespeare"}), pbtypes.StringList([]string{})}, + {"int list - int list", "numbers", newStruct(), pbtypes.IntList(13, 34), pbtypes.IntList(8, 21)}, + {"int list - int list (some are not presented)", "numbers", newStruct(), pbtypes.IntList(2020, 5), pbtypes.IntList(8, 13, 21, 34)}, + {"int - int list", "year", newStruct(), pbtypes.IntList(1380, 1564), pbtypes.IntList()}, + {"int list - int", "numbers", newStruct(), pbtypes.Int64(21), pbtypes.IntList(8, 13, 34)}, + {"empty - string list", "haters", newStruct(), pbtypes.StringList([]string{"Tomas River", "Leo Tolstoy"}), pbtypes.StringList([]string{})}, + } { + t.Run(tc.name, func(t *testing.T) { + RemoveValue(tc.s, tc.key, tc.toRemove) + assert.True(t, pbtypes.Get(tc.s, tc.key).Equal(tc.expected)) + }) + } +} diff --git a/core/block/editor.go b/core/block/editor.go index a8610f136..527b269b0 100644 --- a/core/block/editor.go +++ b/core/block/editor.go @@ -2,7 +2,6 @@ package block import ( "context" - "errors" "fmt" "github.com/gogo/protobuf/types" @@ -144,34 +143,6 @@ func (s *Service) SetFields(ctx session.Context, req pb.RpcBlockSetFieldsRequest }) } -func (s *Service) SetDetails(ctx session.Context, objectId string, details []*model.Detail) (err error) { - return cache.Do(s, objectId, func(b basic.DetailsSettable) error { - return b.SetDetails(ctx, details, true) - }) -} - -func (s *Service) SetDetailsList(ctx session.Context, objectIds []string, details []*model.Detail) (err error) { - var ( - resultError error - anySucceed bool - ) - for _, objectId := range objectIds { - err := s.SetDetails(ctx, objectId, details) - if err != nil { - resultError = errors.Join(resultError, err) - } else { - anySucceed = true - } - } - if resultError != nil { - log.Warnf("SetDetailsList: %v", resultError) - } - if anySucceed { - return nil - } - return resultError -} - func (s *Service) SetFieldsList(ctx session.Context, req pb.RpcBlockListSetFieldsRequest) (err error) { return cache.Do(s, req.ContextId, func(b basic.CommonOperations) error { return b.SetFields(ctx, req.BlockFields...) @@ -632,43 +603,6 @@ func (s *Service) GetRelations(ctx session.Context, objectId string) (relations return } -// ModifyDetails performs details get and update under the sb lock to make sure no modifications are done in the middle -func (s *Service) ModifyDetails(objectId string, modifier func(current *types.Struct) (*types.Struct, error)) (err error) { - return cache.Do(s, objectId, func(du basic.DetailsUpdatable) error { - return du.UpdateDetails(modifier) - }) -} - -func (s *Service) ModifyDetailsList(req *pb.RpcObjectListModifyDetailValuesRequest) (resultError error) { - var anySucceed bool - for _, objectId := range req.ObjectIds { - err := s.ModifyDetails(objectId, func(current *types.Struct) (*types.Struct, error) { - for _, op := range req.Operations { - if op.Set != nil && pbtypes.ValueToInterface(op.Set) != nil { - // Set operation has higher priority than Add and Remove, because it modifies full value - current.Fields[op.RelationKey] = op.Set - continue - } - pbtypes.AddValue(current, op.RelationKey, op.Add) - pbtypes.RemoveValue(current, op.RelationKey, op.Remove) - } - return current, nil - }) - if err != nil { - resultError = errors.Join(resultError, err) - } else { - anySucceed = true - } - } - if resultError != nil { - log.Warnf("ModifyDetailsList: %v", resultError) - } - if anySucceed { - return nil - } - return resultError -} - func (s *Service) AddExtraRelations(ctx session.Context, objectId string, relationIds []string) (err error) { if len(relationIds) == 0 { return nil diff --git a/util/pbtypes/pbtypes.go b/util/pbtypes/pbtypes.go index 4b832eab7..a39be5e81 100644 --- a/util/pbtypes/pbtypes.go +++ b/util/pbtypes/pbtypes.go @@ -2,13 +2,11 @@ package pbtypes import ( "fmt" - "slices" "strings" "github.com/gogo/protobuf/jsonpb" "github.com/gogo/protobuf/proto" "github.com/gogo/protobuf/types" - "github.com/samber/lo" "github.com/anyproto/anytype-heart/pkg/lib/localstore/addr" "github.com/anyproto/anytype-heart/pkg/lib/pb/model" @@ -606,46 +604,3 @@ func RelationIdToKey(id string) (string, error) { return "", fmt.Errorf("incorrect id format") } - -// AddValue adds values to int lists and string lists -func AddValue(s *types.Struct, key string, v *types.Value) { - if IsStructEmpty(s) || v == nil { - return - } - toAdd := GetList(v) - oldValues := GetValueList(s, key) - newValues := slice.MergeUniqBy(oldValues, toAdd, func(this *types.Value, that *types.Value) bool { - return this.Equal(that) - }) - s.Fields[key] = &types.Value{ - Kind: &types.Value_ListValue{ListValue: &types.ListValue{Values: newValues}}, - } -} - -// RemoveValue removes values from int lists and string lists -func RemoveValue(s *types.Struct, key string, v *types.Value) { - if IsStructEmpty(s) || v == nil { - return - } - value := Get(s, key) - if value == nil { - return - } - if value.Equal(v) { - delete(s.Fields, key) - return - } - oldValues := GetList(value) - if len(oldValues) == 0 { - return - } - toDelete := GetList(v) - newValues := lo.Filter(oldValues, func(oldValue *types.Value, _ int) bool { - return !slices.ContainsFunc(toDelete, func(valueToDelete *types.Value) bool { - return oldValue.Equal(valueToDelete) - }) - }) - s.Fields[key] = &types.Value{ - Kind: &types.Value_ListValue{ListValue: &types.ListValue{Values: newValues}}, - } -} diff --git a/util/pbtypes/pbtypes_test.go b/util/pbtypes/pbtypes_test.go index 0b05b185e..1d05c3312 100644 --- a/util/pbtypes/pbtypes_test.go +++ b/util/pbtypes/pbtypes_test.go @@ -177,68 +177,3 @@ func TestIsEmptyValueOrAbsent(t *testing.T) { }) } } - -func TestAddRemoveValue(t *testing.T) { - newStruct := func() *types.Struct { - return &types.Struct{Fields: map[string]*types.Value{ - "tag": StringList([]string{"red", "black"}), - "author": String("William Shakespeare"), - "haters": StringList([]string{}), - "year": Int64(1564), - "numbers": IntList(8, 13, 21, 34), - }} - } - - for _, tc := range []struct { - name string - key string - s *types.Struct - toAdd *types.Value - expected *types.Value - }{ - {"string list + string list", "tag", newStruct(), StringList([]string{"blue", "green"}), StringList([]string{"red", "black", "blue", "green"})}, - {"string list + string list (intersect)", "tag", newStruct(), StringList([]string{"blue", "black"}), StringList([]string{"red", "black", "blue"})}, - {"string + string list", "author", newStruct(), StringList([]string{"Victor Hugo"}), StringList([]string{"William Shakespeare", "Victor Hugo"})}, - {"string list + string", "tag", newStruct(), String("orange"), StringList([]string{"red", "black", "orange"})}, - {"int list + int list", "numbers", newStruct(), IntList(55, 89), IntList(8, 13, 21, 34, 55, 89)}, - {"int list + int list (intersect)", "numbers", newStruct(), IntList(13, 8, 55), IntList(8, 13, 21, 34, 55)}, - {"int + int list", "year", newStruct(), IntList(1666, 2025), IntList(1564, 1666, 2025)}, - {"int list + int", "numbers", newStruct(), Int64(55), IntList(8, 13, 21, 34, 55)}, - {"string list + empty", "haters", newStruct(), StringList([]string{"Tomas River", "Leo Tolstoy"}), StringList([]string{"Tomas River", "Leo Tolstoy"})}, - {"string list + no such key", "plays", newStruct(), StringList([]string{"Falstaff", "Romeo and Juliet", "Macbeth"}), StringList([]string{"Falstaff", "Romeo and Juliet", "Macbeth"})}, - } { - t.Run(tc.name, func(t *testing.T) { - AddValue(tc.s, tc.key, tc.toAdd) - assert.True(t, Get(tc.s, tc.key).Equal(tc.expected)) - }) - } - - for _, tc := range []struct { - name string - key string - s *types.Struct - toRemove *types.Value - expected *types.Value - }{ - {"string list - string list", "tag", newStruct(), StringList([]string{"red", "black"}), nil}, - {"string list - string list (some are not presented)", "tag", newStruct(), StringList([]string{"blue", "black"}), StringList([]string{"red"})}, - {"string list - string", "tag", newStruct(), String("red"), StringList([]string{"black"})}, - {"string - string list", "author", newStruct(), StringList([]string{"William Shakespeare"}), StringList([]string{})}, - {"int list - int list", "numbers", newStruct(), IntList(13, 34), IntList(8, 21)}, - {"int list - int list (some are not presented)", "numbers", newStruct(), IntList(2020, 5), IntList(8, 13, 21, 34)}, - {"int - int list", "year", newStruct(), IntList(1380, 1564), IntList()}, - {"int list - int", "numbers", newStruct(), Int64(21), IntList(8, 13, 34)}, - {"empty - string list", "haters", newStruct(), StringList([]string{"Tomas River", "Leo Tolstoy"}), StringList([]string{})}, - } { - t.Run(tc.name, func(t *testing.T) { - RemoveValue(tc.s, tc.key, tc.toRemove) - assert.True(t, Get(tc.s, tc.key).Equal(tc.expected)) - }) - } -} - -func TestEqual(t *testing.T) { - v1 := String("red") - v2 := String("red") - assert.True(t, v1.Equal(v2)) -} diff --git a/util/slice/slice.go b/util/slice/slice.go index d23643467..30141f625 100644 --- a/util/slice/slice.go +++ b/util/slice/slice.go @@ -238,20 +238,15 @@ func FilterCID(cids []string) []string { }) } -// MergeUniqBy merges two slices with comparator. Resulting slice saves values' order and uniqueness +// MergeUniqBy merges two slices with comparator. Resulting slice saves values' order and uniqueness. // Input slices MUST contain only unique values func MergeUniqBy[T comparable](s1, s2 []T, equal func(v1, v2 T) bool) (result []T) { result = make([]T, len(s1)) copy(result, s1) for _, v2 := range s2 { - isUnique := true - for _, v1 := range s1 { - if equal(v1, v2) { - isUnique = false - break - } - } - if isUnique { + if !slices.ContainsFunc(s1, func(v1 T) bool { + return equal(v1, v2) + }) { result = append(result, v2) } } From 927749188abc8f1578fc32c16c24a8f9d911f34f Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 21 Aug 2024 04:36:10 +0000 Subject: [PATCH 47/78] Bump github.com/prometheus/client_golang from 1.20.0 to 1.20.1 Bumps [github.com/prometheus/client_golang](https://github.com/prometheus/client_golang) from 1.20.0 to 1.20.1. - [Release notes](https://github.com/prometheus/client_golang/releases) - [Changelog](https://github.com/prometheus/client_golang/blob/v1.20.1/CHANGELOG.md) - [Commits](https://github.com/prometheus/client_golang/compare/v1.20.0...v1.20.1) --- updated-dependencies: - dependency-name: github.com/prometheus/client_golang dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 2779150ed..10a979350 100644 --- a/go.mod +++ b/go.mod @@ -75,7 +75,7 @@ require ( github.com/otiai10/copy v1.14.0 github.com/otiai10/opengraph/v2 v2.1.0 github.com/pkg/errors v0.9.1 - github.com/prometheus/client_golang v1.20.0 + github.com/prometheus/client_golang v1.20.1 github.com/pseudomuto/protoc-gen-doc v1.5.1 github.com/rwcarlsen/goexif v0.0.0-20190401172101-9e8deecbddbd github.com/samber/lo v1.47.0 diff --git a/go.sum b/go.sum index bd4859a3d..81e566c8e 100644 --- a/go.sum +++ b/go.sum @@ -1216,8 +1216,8 @@ github.com/prometheus/client_golang v0.9.3/go.mod h1:/TN21ttK/J9q6uSwhBd54HahCDf github.com/prometheus/client_golang v1.0.0/go.mod h1:db9x61etRT2tGnBNRi70OPL5FsnadC4Ky3P0J6CfImo= github.com/prometheus/client_golang v1.3.0/go.mod h1:hJaj2vgQTGQmVCsAACORcieXFeDPbaTKGT+JTgUa3og= github.com/prometheus/client_golang v1.7.1/go.mod h1:PY5Wy2awLA44sXw4AOSfFBetzPP4j5+D6mVACh+pe2M= -github.com/prometheus/client_golang v1.20.0 h1:jBzTZ7B099Rg24tny+qngoynol8LtVYlA2bqx3vEloI= -github.com/prometheus/client_golang v1.20.0/go.mod h1:PIEt8X02hGcP8JWbeHyeZ53Y/jReSnHgO035n//V5WE= +github.com/prometheus/client_golang v1.20.1 h1:IMJXHOD6eARkQpxo8KkhgEVFlBNm+nkrFUyGlIu7Na8= +github.com/prometheus/client_golang v1.20.1/go.mod h1:PIEt8X02hGcP8JWbeHyeZ53Y/jReSnHgO035n//V5WE= github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= github.com/prometheus/client_model v0.0.0-20190115171406-56726106282f/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= github.com/prometheus/client_model v0.0.0-20190129233127-fd36f4220a90/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= From fc41b16b97f718a545b6b61eace5b34509bc5368 Mon Sep 17 00:00:00 2001 From: kirillston Date: Wed, 21 Aug 2024 11:35:15 +0300 Subject: [PATCH 48/78] GO-3795 Make add/rm funcs private --- core/block/details.go | 12 ++++++------ core/block/details_test.go | 8 ++++---- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/core/block/details.go b/core/block/details.go index 8f9dc4591..46a9d7ac3 100644 --- a/core/block/details.go +++ b/core/block/details.go @@ -61,8 +61,8 @@ func (s *Service) ModifyDetailsList(req *pb.RpcObjectListModifyDetailValuesReque current.Fields[op.RelationKey] = op.Set continue } - AddValue(current, op.RelationKey, op.Add) - RemoveValue(current, op.RelationKey, op.Remove) + addValueToListDetail(current, op.RelationKey, op.Add) + removeValueFromListDetail(current, op.RelationKey, op.Remove) } return current, nil }) @@ -81,8 +81,8 @@ func (s *Service) ModifyDetailsList(req *pb.RpcObjectListModifyDetailValuesReque return resultError } -// AddValue adds values to int lists and string lists -func AddValue(s *types.Struct, key string, v *types.Value) { +// addValueToListDetail adds values to int lists and string lists +func addValueToListDetail(s *types.Struct, key string, v *types.Value) { if pbtypes.IsStructEmpty(s) || v == nil { return } @@ -96,8 +96,8 @@ func AddValue(s *types.Struct, key string, v *types.Value) { } } -// RemoveValue removes values from int lists and string lists -func RemoveValue(s *types.Struct, key string, v *types.Value) { +// removeValueFromListDetail removes values from int lists and string lists +func removeValueFromListDetail(s *types.Struct, key string, v *types.Value) { if pbtypes.IsStructEmpty(s) || v == nil { return } diff --git a/core/block/details_test.go b/core/block/details_test.go index 711ced635..01791fd85 100644 --- a/core/block/details_test.go +++ b/core/block/details_test.go @@ -19,7 +19,7 @@ func newStruct() *types.Struct { }} } -func TestAddValue(t *testing.T) { +func TestAddValueToListDetail(t *testing.T) { for _, tc := range []struct { name string key string @@ -39,13 +39,13 @@ func TestAddValue(t *testing.T) { {"string list + no such key", "plays", newStruct(), pbtypes.StringList([]string{"Falstaff", "Romeo and Juliet", "Macbeth"}), pbtypes.StringList([]string{"Falstaff", "Romeo and Juliet", "Macbeth"})}, } { t.Run(tc.name, func(t *testing.T) { - AddValue(tc.s, tc.key, tc.toAdd) + addValueToListDetail(tc.s, tc.key, tc.toAdd) assert.True(t, pbtypes.Get(tc.s, tc.key).Equal(tc.expected)) }) } } -func TestRemoveValue(t *testing.T) { +func TestRemoveValueFromListDetail(t *testing.T) { for _, tc := range []struct { name string key string @@ -64,7 +64,7 @@ func TestRemoveValue(t *testing.T) { {"empty - string list", "haters", newStruct(), pbtypes.StringList([]string{"Tomas River", "Leo Tolstoy"}), pbtypes.StringList([]string{})}, } { t.Run(tc.name, func(t *testing.T) { - RemoveValue(tc.s, tc.key, tc.toRemove) + removeValueFromListDetail(tc.s, tc.key, tc.toRemove) assert.True(t, pbtypes.Get(tc.s, tc.key).Equal(tc.expected)) }) } From 005bf3d307c82b6e64704e50225a4dbefc2a16c3 Mon Sep 17 00:00:00 2001 From: kirillston Date: Wed, 21 Aug 2024 15:36:35 +0300 Subject: [PATCH 49/78] GO-3795 Use IsEmptyValue --- core/block/details.go | 2 +- util/pbtypes/pbtypes.go | 20 ++++++++++++++------ 2 files changed, 15 insertions(+), 7 deletions(-) diff --git a/core/block/details.go b/core/block/details.go index 46a9d7ac3..406fe155f 100644 --- a/core/block/details.go +++ b/core/block/details.go @@ -56,7 +56,7 @@ func (s *Service) ModifyDetailsList(req *pb.RpcObjectListModifyDetailValuesReque for _, objectId := range req.ObjectIds { err := s.ModifyDetails(objectId, func(current *types.Struct) (*types.Struct, error) { for _, op := range req.Operations { - if op.Set != nil && pbtypes.ValueToInterface(op.Set) != nil { + if !pbtypes.IsEmptyValue(op.Set) { // Set operation has higher priority than Add and Remove, because it modifies full value current.Fields[op.RelationKey] = op.Set continue diff --git a/util/pbtypes/pbtypes.go b/util/pbtypes/pbtypes.go index a39be5e81..b5d0a1a7b 100644 --- a/util/pbtypes/pbtypes.go +++ b/util/pbtypes/pbtypes.go @@ -117,16 +117,24 @@ func IsEmptyValueOrAbsent(s *types.Struct, name string) bool { if !exists { return true } - if _, ok := value.Kind.(*types.Value_StringValue); ok { - return len(GetString(s, name)) == 0 + return IsEmptyValue(value) +} + +func IsEmptyValue(value *types.Value) bool { + if value == nil { + return true } - if _, ok := value.Kind.(*types.Value_NumberValue); ok { - return GetFloat64(s, name) == 0 + if v, ok := value.Kind.(*types.Value_StringValue); ok { + return len(v.StringValue) == 0 } - if _, ok := value.Kind.(*types.Value_BoolValue); ok { - return !GetBool(s, name) + if v, ok := value.Kind.(*types.Value_NumberValue); ok { + return v.NumberValue == 0 + } + + if v, ok := value.Kind.(*types.Value_BoolValue); ok { + return !v.BoolValue } if _, ok := value.Kind.(*types.Value_ListValue); ok { From f4433010a406ab18eaeb92e9f54546009fda50c9 Mon Sep 17 00:00:00 2001 From: AnastasiaShemyakinskaya Date: Wed, 21 Aug 2024 11:06:59 +0200 Subject: [PATCH 50/78] GO-3921: add new sync status Signed-off-by: AnastasiaShemyakinskaya --- .mockery.yaml | 5 +- core/anytype/bootstrap.go | 4 +- core/compatibility/checker.go | 50 ++ core/compatibility/checker_test.go | 56 ++ .../mock_compatibility/mock_Checker.go | 206 +++++ .../syncstatus/spacesyncstatus/spacestatus.go | 49 +- .../spacesyncstatus/spacestatus_test.go | 90 ++- docs/proto.md | 1 + pb/events.pb.go | 739 +++++++++--------- pb/protos/events.proto | 1 + space/spacecore/peermanager/manager.go | 14 + 11 files changed, 801 insertions(+), 414 deletions(-) create mode 100644 core/compatibility/checker.go create mode 100644 core/compatibility/checker_test.go create mode 100644 core/compatibility/mock_compatibility/mock_Checker.go diff --git a/.mockery.yaml b/.mockery.yaml index e0b1b83d3..bd1968f4a 100644 --- a/.mockery.yaml +++ b/.mockery.yaml @@ -215,4 +215,7 @@ packages: SpaceIdGetter: NodeUsage: NetworkConfig: - Updater: \ No newline at end of file + Updater: + github.com/anyproto/anytype-heart/core/compatibility: + interfaces: + Checker: diff --git a/core/anytype/bootstrap.go b/core/anytype/bootstrap.go index 9e9f3ea42..b942dc9db 100644 --- a/core/anytype/bootstrap.go +++ b/core/anytype/bootstrap.go @@ -50,6 +50,7 @@ import ( "github.com/anyproto/anytype-heart/core/block/restriction" "github.com/anyproto/anytype-heart/core/block/source" templateservice "github.com/anyproto/anytype-heart/core/block/template" + "github.com/anyproto/anytype-heart/core/compatibility" "github.com/anyproto/anytype-heart/core/configfetcher" "github.com/anyproto/anytype-heart/core/debug" "github.com/anyproto/anytype-heart/core/debug/profiler" @@ -301,7 +302,8 @@ func Bootstrap(a *app.App, components ...app.Component) { Register(nameserviceclient.New()). Register(payments.New()). Register(paymentscache.New()). - Register(peerstatus.New()) + Register(peerstatus.New()). + Register(compatibility.New()) } func MiddlewareVersion() string { diff --git a/core/compatibility/checker.go b/core/compatibility/checker.go new file mode 100644 index 000000000..0590c5f3b --- /dev/null +++ b/core/compatibility/checker.go @@ -0,0 +1,50 @@ +package compatibility + +import ( + "sync" + + "github.com/anyproto/any-sync/app" + "github.com/anyproto/any-sync/net/secureservice" +) + +const CName = "core.compatibility.checker" + +type Checker interface { + app.Component + AddPeerVersion(peerId string, version uint32) + IsVersionCompatibleWithPeers() bool +} + +func New() Checker { + return &compatibilityChecker{peersToVersions: make(map[string]uint32, 0)} +} + +type compatibilityChecker struct { + peersToVersions map[string]uint32 + sync.Mutex +} + +func (i *compatibilityChecker) Init(a *app.App) (err error) { + return +} + +func (i *compatibilityChecker) AddPeerVersion(peerId string, version uint32) { + i.Lock() + defer i.Unlock() + i.peersToVersions[peerId] = version +} + +func (i *compatibilityChecker) IsVersionCompatibleWithPeers() bool { + i.Lock() + defer i.Unlock() + for _, version := range i.peersToVersions { + if version != secureservice.ProtoVersion { + return false + } + } + return true +} + +func (i *compatibilityChecker) Name() (name string) { + return CName +} diff --git a/core/compatibility/checker_test.go b/core/compatibility/checker_test.go new file mode 100644 index 000000000..4bd43a6fa --- /dev/null +++ b/core/compatibility/checker_test.go @@ -0,0 +1,56 @@ +package compatibility + +import ( + "testing" + + "github.com/anyproto/any-sync/net/secureservice" + "github.com/stretchr/testify/assert" +) + +func TestCompatibilityChecker_AddPeerVersion(t *testing.T) { + t.Run("add peer version", func(t *testing.T) { + // given + checker := &compatibilityChecker{peersToVersions: map[string]uint32{}} + + // when + checker.AddPeerVersion("id", 1) + + // then + assert.Equal(t, uint32(1), checker.peersToVersions["id"]) + }) +} + +func TestCompatibilityChecker_IsVersionCompatibleWithPeers(t *testing.T) { + t.Run("no versions", func(t *testing.T) { + // given + checker := &compatibilityChecker{peersToVersions: map[string]uint32{}} + + // when + compatibleWithPeers := checker.IsVersionCompatibleWithPeers() + + // then + assert.True(t, compatibleWithPeers) + }) + t.Run("versions compatible", func(t *testing.T) { + // given + checker := &compatibilityChecker{peersToVersions: map[string]uint32{}} + + // when + checker.AddPeerVersion("id", secureservice.ProtoVersion) + compatibleWithPeers := checker.IsVersionCompatibleWithPeers() + + // then + assert.True(t, compatibleWithPeers) + }) + t.Run("versions is not compatible", func(t *testing.T) { + // given + checker := &compatibilityChecker{peersToVersions: map[string]uint32{}} + + // when + checker.AddPeerVersion("id", 1) + compatibleWithPeers := checker.IsVersionCompatibleWithPeers() + + // then + assert.False(t, compatibleWithPeers) + }) +} diff --git a/core/compatibility/mock_compatibility/mock_Checker.go b/core/compatibility/mock_compatibility/mock_Checker.go new file mode 100644 index 000000000..a4a0bfd27 --- /dev/null +++ b/core/compatibility/mock_compatibility/mock_Checker.go @@ -0,0 +1,206 @@ +// Code generated by mockery. DO NOT EDIT. + +package mock_compatibility + +import ( + app "github.com/anyproto/any-sync/app" + + mock "github.com/stretchr/testify/mock" +) + +// MockChecker is an autogenerated mock type for the Checker type +type MockChecker struct { + mock.Mock +} + +type MockChecker_Expecter struct { + mock *mock.Mock +} + +func (_m *MockChecker) EXPECT() *MockChecker_Expecter { + return &MockChecker_Expecter{mock: &_m.Mock} +} + +// AddPeerVersion provides a mock function with given fields: peerId, version +func (_m *MockChecker) AddPeerVersion(peerId string, version uint32) { + _m.Called(peerId, version) +} + +// MockChecker_AddPeerVersion_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'AddPeerVersion' +type MockChecker_AddPeerVersion_Call struct { + *mock.Call +} + +// AddPeerVersion is a helper method to define mock.On call +// - peerId string +// - version uint32 +func (_e *MockChecker_Expecter) AddPeerVersion(peerId interface{}, version interface{}) *MockChecker_AddPeerVersion_Call { + return &MockChecker_AddPeerVersion_Call{Call: _e.mock.On("AddPeerVersion", peerId, version)} +} + +func (_c *MockChecker_AddPeerVersion_Call) Run(run func(peerId string, version uint32)) *MockChecker_AddPeerVersion_Call { + _c.Call.Run(func(args mock.Arguments) { + run(args[0].(string), args[1].(uint32)) + }) + return _c +} + +func (_c *MockChecker_AddPeerVersion_Call) Return() *MockChecker_AddPeerVersion_Call { + _c.Call.Return() + return _c +} + +func (_c *MockChecker_AddPeerVersion_Call) RunAndReturn(run func(string, uint32)) *MockChecker_AddPeerVersion_Call { + _c.Call.Return(run) + return _c +} + +// Init provides a mock function with given fields: a +func (_m *MockChecker) Init(a *app.App) error { + ret := _m.Called(a) + + if len(ret) == 0 { + panic("no return value specified for Init") + } + + var r0 error + if rf, ok := ret.Get(0).(func(*app.App) error); ok { + r0 = rf(a) + } else { + r0 = ret.Error(0) + } + + return r0 +} + +// MockChecker_Init_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'Init' +type MockChecker_Init_Call struct { + *mock.Call +} + +// Init is a helper method to define mock.On call +// - a *app.App +func (_e *MockChecker_Expecter) Init(a interface{}) *MockChecker_Init_Call { + return &MockChecker_Init_Call{Call: _e.mock.On("Init", a)} +} + +func (_c *MockChecker_Init_Call) Run(run func(a *app.App)) *MockChecker_Init_Call { + _c.Call.Run(func(args mock.Arguments) { + run(args[0].(*app.App)) + }) + return _c +} + +func (_c *MockChecker_Init_Call) Return(err error) *MockChecker_Init_Call { + _c.Call.Return(err) + return _c +} + +func (_c *MockChecker_Init_Call) RunAndReturn(run func(*app.App) error) *MockChecker_Init_Call { + _c.Call.Return(run) + return _c +} + +// IsVersionCompatibleWithPeers provides a mock function with given fields: +func (_m *MockChecker) IsVersionCompatibleWithPeers() bool { + ret := _m.Called() + + if len(ret) == 0 { + panic("no return value specified for IsVersionCompatibleWithPeers") + } + + var r0 bool + if rf, ok := ret.Get(0).(func() bool); ok { + r0 = rf() + } else { + r0 = ret.Get(0).(bool) + } + + return r0 +} + +// MockChecker_IsVersionCompatibleWithPeers_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'IsVersionCompatibleWithPeers' +type MockChecker_IsVersionCompatibleWithPeers_Call struct { + *mock.Call +} + +// IsVersionCompatibleWithPeers is a helper method to define mock.On call +func (_e *MockChecker_Expecter) IsVersionCompatibleWithPeers() *MockChecker_IsVersionCompatibleWithPeers_Call { + return &MockChecker_IsVersionCompatibleWithPeers_Call{Call: _e.mock.On("IsVersionCompatibleWithPeers")} +} + +func (_c *MockChecker_IsVersionCompatibleWithPeers_Call) Run(run func()) *MockChecker_IsVersionCompatibleWithPeers_Call { + _c.Call.Run(func(args mock.Arguments) { + run() + }) + return _c +} + +func (_c *MockChecker_IsVersionCompatibleWithPeers_Call) Return(_a0 bool) *MockChecker_IsVersionCompatibleWithPeers_Call { + _c.Call.Return(_a0) + return _c +} + +func (_c *MockChecker_IsVersionCompatibleWithPeers_Call) RunAndReturn(run func() bool) *MockChecker_IsVersionCompatibleWithPeers_Call { + _c.Call.Return(run) + return _c +} + +// Name provides a mock function with given fields: +func (_m *MockChecker) Name() string { + ret := _m.Called() + + if len(ret) == 0 { + panic("no return value specified for Name") + } + + var r0 string + if rf, ok := ret.Get(0).(func() string); ok { + r0 = rf() + } else { + r0 = ret.Get(0).(string) + } + + return r0 +} + +// MockChecker_Name_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'Name' +type MockChecker_Name_Call struct { + *mock.Call +} + +// Name is a helper method to define mock.On call +func (_e *MockChecker_Expecter) Name() *MockChecker_Name_Call { + return &MockChecker_Name_Call{Call: _e.mock.On("Name")} +} + +func (_c *MockChecker_Name_Call) Run(run func()) *MockChecker_Name_Call { + _c.Call.Run(func(args mock.Arguments) { + run() + }) + return _c +} + +func (_c *MockChecker_Name_Call) Return(name string) *MockChecker_Name_Call { + _c.Call.Return(name) + return _c +} + +func (_c *MockChecker_Name_Call) RunAndReturn(run func() string) *MockChecker_Name_Call { + _c.Call.Return(run) + return _c +} + +// NewMockChecker creates a new instance of MockChecker. It also registers a testing interface on the mock and a cleanup function to assert the mocks expectations. +// The first argument is typically a *testing.T value. +func NewMockChecker(t interface { + mock.TestingT + Cleanup(func()) +}) *MockChecker { + mock := &MockChecker{} + mock.Mock.Test(t) + + t.Cleanup(func() { mock.AssertExpectations(t) }) + + return mock +} diff --git a/core/syncstatus/spacesyncstatus/spacestatus.go b/core/syncstatus/spacesyncstatus/spacestatus.go index 60231873c..3f80cfe55 100644 --- a/core/syncstatus/spacesyncstatus/spacestatus.go +++ b/core/syncstatus/spacesyncstatus/spacestatus.go @@ -11,6 +11,7 @@ import ( "github.com/anyproto/any-sync/util/periodicsync" "github.com/samber/lo" + "github.com/anyproto/anytype-heart/core/compatibility" "github.com/anyproto/anytype-heart/core/event" "github.com/anyproto/anytype-heart/core/files" "github.com/anyproto/anytype-heart/core/session" @@ -55,14 +56,15 @@ type spaceSyncStatus struct { nodeUsage NodeUsage subs syncsubscriptions.SyncSubscriptions - spaceIdGetter SpaceIdGetter - curStatuses map[string]struct{} - missingIds map[string][]string - lastSentEvents map[string]pb.EventSpaceSyncStatusUpdate - mx sync.Mutex - periodicCall periodicsync.PeriodicSync - loopInterval time.Duration - isLocal bool + spaceIdGetter SpaceIdGetter + curStatuses map[string]struct{} + missingIds map[string][]string + lastSentEvents map[string]pb.EventSpaceSyncStatusUpdate + mx sync.Mutex + periodicCall periodicsync.PeriodicSync + loopInterval time.Duration + isLocal bool + compatibilityCheck compatibility.Checker } func NewSpaceSyncStatus() Updater { @@ -86,6 +88,7 @@ func (s *spaceSyncStatus) Init(a *app.App) (err error) { sessionHookRunner := app.MustComponent[session.HookRunner](a) sessionHookRunner.RegisterHook(s.sendSyncEventForNewSession) s.periodicCall = periodicsync.NewPeriodicSyncDuration(s.loopInterval, time.Second*5, s.update, logger.CtxLogger{Logger: log.Desugar()}) + s.compatibilityCheck = app.MustComponent[compatibility.Checker](a) return } @@ -143,10 +146,11 @@ func (s *spaceSyncStatus) sendEventToSession(spaceId, token string) { return } params := syncParams{ - bytesLeftPercentage: s.getBytesLeftPercentage(spaceId), - connectionStatus: s.nodeStatus.GetNodeStatus(spaceId), - compatibility: s.nodeConf.NetworkCompatibilityStatus(), - objectsSyncingCount: s.getObjectSyncingObjectsCount(spaceId, s.getMissingIds(spaceId)), + bytesLeftPercentage: s.getBytesLeftPercentage(spaceId), + connectionStatus: s.nodeStatus.GetNodeStatus(spaceId), + compatibility: s.nodeConf.NetworkCompatibilityStatus(), + objectsSyncingCount: s.getObjectSyncingObjectsCount(spaceId, s.getMissingIds(spaceId)), + syncProtocolCompatible: s.compatibilityCheck.IsVersionCompatibleWithPeers(), } s.eventSender.SendToSession(token, &pb.Event{ Messages: []*pb.EventMessage{{ @@ -242,10 +246,11 @@ func (s *spaceSyncStatus) updateSpaceSyncStatus(spaceId string) { } missingObjects := s.getMissingIds(spaceId) params := syncParams{ - bytesLeftPercentage: s.getBytesLeftPercentage(spaceId), - connectionStatus: s.nodeStatus.GetNodeStatus(spaceId), - compatibility: s.nodeConf.NetworkCompatibilityStatus(), - objectsSyncingCount: s.getObjectSyncingObjectsCount(spaceId, missingObjects), + bytesLeftPercentage: s.getBytesLeftPercentage(spaceId), + connectionStatus: s.nodeStatus.GetNodeStatus(spaceId), + compatibility: s.nodeConf.NetworkCompatibilityStatus(), + objectsSyncingCount: s.getObjectSyncingObjectsCount(spaceId, missingObjects), + syncProtocolCompatible: s.compatibilityCheck.IsVersionCompatibleWithPeers(), } s.broadcast(&pb.Event{ Messages: []*pb.EventMessage{{ @@ -262,10 +267,11 @@ func (s *spaceSyncStatus) Close(ctx context.Context) (err error) { } type syncParams struct { - bytesLeftPercentage float64 - connectionStatus nodestatus.ConnectionStatus - compatibility nodeconf.NetworkCompatibilityStatus - objectsSyncingCount int + bytesLeftPercentage float64 + connectionStatus nodestatus.ConnectionStatus + compatibility nodeconf.NetworkCompatibilityStatus + objectsSyncingCount int + syncProtocolCompatible bool } func (s *spaceSyncStatus) makeSyncEvent(spaceId string, params syncParams) *pb.EventSpaceSyncStatusUpdate { @@ -287,6 +293,9 @@ func (s *spaceSyncStatus) makeSyncEvent(spaceId string, params syncParams) *pb.E status = pb.EventSpace_Error err = pb.EventSpace_IncompatibleVersion } + if !params.syncProtocolCompatible { + status = pb.EventSpace_SyncProtocolInCompatibleMode + } return &pb.EventSpaceSyncStatusUpdate{ Id: spaceId, Status: status, diff --git a/core/syncstatus/spacesyncstatus/spacestatus_test.go b/core/syncstatus/spacesyncstatus/spacestatus_test.go index 9d252b907..b541d9997 100644 --- a/core/syncstatus/spacesyncstatus/spacestatus_test.go +++ b/core/syncstatus/spacesyncstatus/spacestatus_test.go @@ -14,6 +14,7 @@ import ( "github.com/stretchr/testify/require" "go.uber.org/mock/gomock" + "github.com/anyproto/anytype-heart/core/compatibility/mock_compatibility" "github.com/anyproto/anytype-heart/core/domain" "github.com/anyproto/anytype-heart/core/event" "github.com/anyproto/anytype-heart/core/event/mock_event" @@ -65,18 +66,19 @@ func (m mockSessionContext) GetResponseEvent() *pb.ResponseEvent { type fixture struct { *spaceSyncStatus - a *app.App - nodeConf *mock_nodeconf.MockService - nodeUsage *mock_spacesyncstatus.MockNodeUsage - nodeStatus *mock_nodestatus.MockNodeStatus - subscriptionService subscription.Service - syncSubs syncsubscriptions.SyncSubscriptions - objectStore *objectstore.StoreFixture - spaceIdGetter *mock_spacesyncstatus.MockSpaceIdGetter - eventSender *mock_event.MockSender - session session.HookRunner - networkConfig *mock_spacesyncstatus.MockNetworkConfig - ctrl *gomock.Controller + a *app.App + nodeConf *mock_nodeconf.MockService + nodeUsage *mock_spacesyncstatus.MockNodeUsage + nodeStatus *mock_nodestatus.MockNodeStatus + subscriptionService subscription.Service + syncSubs syncsubscriptions.SyncSubscriptions + objectStore *objectstore.StoreFixture + spaceIdGetter *mock_spacesyncstatus.MockSpaceIdGetter + eventSender *mock_event.MockSender + session session.HookRunner + networkConfig *mock_spacesyncstatus.MockNetworkConfig + ctrl *gomock.Controller + compatibilityChecker *mock_compatibility.MockChecker } func genObject(syncStatus domain.ObjectSyncStatus, spaceId string) objectstore.TestObject { @@ -105,19 +107,20 @@ func newFixture(t *testing.T, beforeStart func(fx *fixture)) *fixture { networkConfig := mock_spacesyncstatus.NewMockNetworkConfig(t) sess := session.NewHookRunner() fx := &fixture{ - a: a, - ctrl: ctrl, - spaceSyncStatus: NewSpaceSyncStatus().(*spaceSyncStatus), - nodeUsage: mock_spacesyncstatus.NewMockNodeUsage(t), - nodeStatus: mock_nodestatus.NewMockNodeStatus(t), - nodeConf: mock_nodeconf.NewMockService(ctrl), - spaceIdGetter: mock_spacesyncstatus.NewMockSpaceIdGetter(t), - objectStore: internalSubs.StoreFixture, - eventSender: app.MustComponent[event.Sender](a).(*mock_event.MockSender), - subscriptionService: internalSubs, - session: sess, - syncSubs: syncsubscriptions.New(), - networkConfig: networkConfig, + a: a, + ctrl: ctrl, + spaceSyncStatus: NewSpaceSyncStatus().(*spaceSyncStatus), + nodeUsage: mock_spacesyncstatus.NewMockNodeUsage(t), + nodeStatus: mock_nodestatus.NewMockNodeStatus(t), + nodeConf: mock_nodeconf.NewMockService(ctrl), + spaceIdGetter: mock_spacesyncstatus.NewMockSpaceIdGetter(t), + objectStore: internalSubs.StoreFixture, + eventSender: app.MustComponent[event.Sender](a).(*mock_event.MockSender), + subscriptionService: internalSubs, + session: sess, + syncSubs: syncsubscriptions.New(), + networkConfig: networkConfig, + compatibilityChecker: mock_compatibility.NewMockChecker(t), } fx.spaceIdGetter.EXPECT().TechSpaceId().Return("techSpaceId").Maybe() @@ -127,6 +130,7 @@ func newFixture(t *testing.T, beforeStart func(fx *fixture)) *fixture { Register(testutil.PrepareMock(ctx, a, fx.spaceIdGetter)). Register(testutil.PrepareMock(ctx, a, fx.nodeConf)). Register(testutil.PrepareMock(ctx, a, fx.nodeUsage)). + Register(testutil.PrepareMock(ctx, a, fx.compatibilityChecker)). Register(sess). Register(fx.spaceSyncStatus) beforeStart(fx) @@ -149,6 +153,7 @@ func Test(t *testing.T) { LocalUsageBytes: 0, }, nil) fx.nodeConf.EXPECT().NetworkCompatibilityStatus().Return(nodeconf.NetworkCompatibilityStatusOk) + fx.compatibilityChecker.EXPECT().IsVersionCompatibleWithPeers().Return(true) fx.eventSender.EXPECT().Broadcast(&pb.Event{ Messages: []*pb.EventMessage{{ Value: &pb.EventMessageValueOfSpaceSyncStatusUpdate{ @@ -178,6 +183,7 @@ func Test(t *testing.T) { LocalUsageBytes: 0, }, nil) fx.nodeConf.EXPECT().NetworkCompatibilityStatus().Return(nodeconf.NetworkCompatibilityStatusOk) + fx.compatibilityChecker.EXPECT().IsVersionCompatibleWithPeers().Return(true) fx.eventSender.EXPECT().Broadcast(&pb.Event{ Messages: []*pb.EventMessage{{ Value: &pb.EventMessageValueOfSpaceSyncStatusUpdate{ @@ -209,6 +215,7 @@ func Test(t *testing.T) { LocalUsageBytes: 0, }, nil) fx.nodeConf.EXPECT().NetworkCompatibilityStatus().AnyTimes().Return(nodeconf.NetworkCompatibilityStatusOk) + fx.compatibilityChecker.EXPECT().IsVersionCompatibleWithPeers().Return(true) fx.eventSender.EXPECT().Broadcast(&pb.Event{ Messages: []*pb.EventMessage{{ Value: &pb.EventMessageValueOfSpaceSyncStatusUpdate{ @@ -261,6 +268,7 @@ func Test(t *testing.T) { LocalUsageBytes: 0, }, nil) fx.nodeConf.EXPECT().NetworkCompatibilityStatus().Return(nodeconf.NetworkCompatibilityStatusOk) + fx.compatibilityChecker.EXPECT().IsVersionCompatibleWithPeers().Return(true) fx.eventSender.EXPECT().Broadcast(&pb.Event{ Messages: []*pb.EventMessage{{ Value: &pb.EventMessageValueOfSpaceSyncStatusUpdate{ @@ -292,6 +300,7 @@ func Test(t *testing.T) { LocalUsageBytes: 0, }, nil) fx.nodeConf.EXPECT().NetworkCompatibilityStatus().Return(nodeconf.NetworkCompatibilityStatusOk) + fx.compatibilityChecker.EXPECT().IsVersionCompatibleWithPeers().Return(true) fx.eventSender.EXPECT().Broadcast(&pb.Event{ Messages: []*pb.EventMessage{{ Value: &pb.EventMessageValueOfSpaceSyncStatusUpdate{ @@ -323,6 +332,7 @@ func Test(t *testing.T) { LocalUsageBytes: 0, }, nil) fx.nodeConf.EXPECT().NetworkCompatibilityStatus().Return(nodeconf.NetworkCompatibilityStatusIncompatible) + fx.compatibilityChecker.EXPECT().IsVersionCompatibleWithPeers().Return(true) fx.eventSender.EXPECT().Broadcast(&pb.Event{ Messages: []*pb.EventMessage{{ Value: &pb.EventMessageValueOfSpaceSyncStatusUpdate{ @@ -355,6 +365,7 @@ func Test(t *testing.T) { LocalUsageBytes: 0, }, nil) fx.nodeConf.EXPECT().NetworkCompatibilityStatus().AnyTimes().Return(nodeconf.NetworkCompatibilityStatusOk) + fx.compatibilityChecker.EXPECT().IsVersionCompatibleWithPeers().Return(true) fx.eventSender.EXPECT().Broadcast(&pb.Event{ Messages: []*pb.EventMessage{{ Value: &pb.EventMessageValueOfSpaceSyncStatusUpdate{ @@ -385,6 +396,34 @@ func Test(t *testing.T) { time.Sleep(100 * time.Millisecond) defer fx.ctrl.Finish() }) + t.Run("sync protocol compatibility", func(t *testing.T) { + fx := newFixture(t, func(fx *fixture) { + fx.networkConfig.EXPECT().GetNetworkMode().Return(pb.RpcAccount_DefaultConfig) + fx.spaceIdGetter.EXPECT().AllSpaceIds().Return([]string{"spaceId"}) + fx.nodeStatus.EXPECT().GetNodeStatus("spaceId").Return(nodestatus.Online) + fx.nodeUsage.EXPECT().GetNodeUsage(mock.Anything).Return(&files.NodeUsageResponse{ + Usage: filesync.NodeUsage{ + BytesLeft: 1000, + AccountBytesLimit: 1000, + }, + LocalUsageBytes: 0, + }, nil) + fx.nodeConf.EXPECT().NetworkCompatibilityStatus().Return(nodeconf.NetworkCompatibilityStatusOk) + fx.compatibilityChecker.EXPECT().IsVersionCompatibleWithPeers().Return(false) + fx.eventSender.EXPECT().Broadcast(&pb.Event{ + Messages: []*pb.EventMessage{{ + Value: &pb.EventMessageValueOfSpaceSyncStatusUpdate{ + SpaceSyncStatusUpdate: &pb.EventSpaceSyncStatusUpdate{ + Id: "spaceId", + Status: pb.EventSpace_SyncProtocolInCompatibleMode, + Network: pb.EventSpace_Anytype, + }, + }, + }}, + }) + }) + defer fx.ctrl.Finish() + }) t.Run("hook new session", func(t *testing.T) { fx := newFixture(t, func(fx *fixture) { objs := genSyncingObjects(10, 100, "spaceId") @@ -400,6 +439,7 @@ func Test(t *testing.T) { LocalUsageBytes: 0, }, nil) fx.nodeConf.EXPECT().NetworkCompatibilityStatus().AnyTimes().Return(nodeconf.NetworkCompatibilityStatusIncompatible) + fx.compatibilityChecker.EXPECT().IsVersionCompatibleWithPeers().Return(true) fx.eventSender.EXPECT().Broadcast(&pb.Event{ Messages: []*pb.EventMessage{{ Value: &pb.EventMessageValueOfSpaceSyncStatusUpdate{ diff --git a/docs/proto.md b/docs/proto.md index 2c88ee7f6..b7cdc6812 100644 --- a/docs/proto.md +++ b/docs/proto.md @@ -25802,6 +25802,7 @@ Precondition: user A and user B opened the same block | Syncing | 1 | | | Error | 2 | | | Offline | 3 | | +| SyncProtocolInCompatibleMode | 4 | | diff --git a/pb/events.pb.go b/pb/events.pb.go index 1079df5c0..9d0bcd326 100644 --- a/pb/events.pb.go +++ b/pb/events.pb.go @@ -98,10 +98,11 @@ func (EventStatusThreadSyncStatus) EnumDescriptor() ([]byte, []int) { type EventSpaceStatus int32 const ( - EventSpace_Synced EventSpaceStatus = 0 - EventSpace_Syncing EventSpaceStatus = 1 - EventSpace_Error EventSpaceStatus = 2 - EventSpace_Offline EventSpaceStatus = 3 + EventSpace_Synced EventSpaceStatus = 0 + EventSpace_Syncing EventSpaceStatus = 1 + EventSpace_Error EventSpaceStatus = 2 + EventSpace_Offline EventSpaceStatus = 3 + EventSpace_SyncProtocolInCompatibleMode EventSpaceStatus = 4 ) var EventSpaceStatus_name = map[int32]string{ @@ -109,13 +110,15 @@ var EventSpaceStatus_name = map[int32]string{ 1: "Syncing", 2: "Error", 3: "Offline", + 4: "SyncProtocolInCompatibleMode", } var EventSpaceStatus_value = map[string]int32{ - "Synced": 0, - "Syncing": 1, - "Error": 2, - "Offline": 3, + "Synced": 0, + "Syncing": 1, + "Error": 2, + "Offline": 3, + "SyncProtocolInCompatibleMode": 4, } func (x EventSpaceStatus) String() string { @@ -11595,370 +11598,372 @@ func init() { func init() { proto.RegisterFile("pb/protos/events.proto", fileDescriptor_a966342d378ae5f5) } var fileDescriptor_a966342d378ae5f5 = []byte{ - // 5807 bytes of a gzipped FileDescriptorProto + // 5827 bytes of a gzipped FileDescriptorProto 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x5c, 0x49, 0x8c, 0x1c, 0xc9, 0x75, 0xad, 0x7d, 0xf9, 0xbd, 0xb0, 0x18, 0xc3, 0xe1, 0xe4, 0x24, 0x7b, 0x38, 0x9c, 0xe6, 0xaa, 0x19, 0xb2, 0xc8, 0xe1, 0xd6, 0x14, 0xc5, 0x21, 0xd9, 0x1b, 0xa7, 0x8b, 0x4b, 0xb3, 0x1d, 0x4d, 0x52, 0xa3, 0x91, 0x20, 0x28, 0xbb, 0x32, 0xba, 0x3a, 0xc5, 0xec, 0xcc, 0x52, 0x66, 0x76, 0x93, 0x2d, 0xd9, 0xb2, 0xe0, 0x05, 0x86, 0x01, 0x1b, 0xf6, 0x49, 0x36, 0x7c, 0xb3, 0x61, 0x03, 0x3e, - 0xd8, 0x86, 0x0d, 0x1f, 0xac, 0x93, 0x61, 0xc0, 0x30, 0xe0, 0x15, 0x90, 0x01, 0x1f, 0x7c, 0x93, - 0x30, 0xba, 0xf8, 0xe2, 0x83, 0x2c, 0xc0, 0xf0, 0xc9, 0x30, 0x62, 0xc9, 0xcc, 0x88, 0x5c, 0x2a, - 0xab, 0x34, 0x23, 0x2f, 0xf0, 0x9c, 0xaa, 0x22, 0xe2, 0xbf, 0x17, 0xdb, 0xff, 0xb1, 0xfc, 0x88, - 0x48, 0x38, 0x3a, 0xdc, 0xba, 0x38, 0xf4, 0xdc, 0xc0, 0xf5, 0x2f, 0x92, 0x7d, 0xe2, 0x04, 0x7e, - 0x97, 0x85, 0x50, 0xd3, 0x70, 0x0e, 0x82, 0x83, 0x21, 0xd1, 0x4f, 0x0d, 0x9f, 0x0f, 0x2e, 0xda, - 0xd6, 0xd6, 0xc5, 0xe1, 0xd6, 0xc5, 0x5d, 0xd7, 0x24, 0x76, 0x28, 0xce, 0x02, 0x42, 0x5c, 0x9f, - 0x1b, 0xb8, 0xee, 0xc0, 0x26, 0x3c, 0x6d, 0x6b, 0x6f, 0xfb, 0xa2, 0x1f, 0x78, 0x7b, 0xfd, 0x80, - 0xa7, 0xce, 0xff, 0xe1, 0x9f, 0x95, 0xa1, 0xbe, 0x4a, 0xe9, 0xd1, 0x65, 0x68, 0xed, 0x12, 0xdf, - 0x37, 0x06, 0xc4, 0xd7, 0xca, 0x27, 0xaa, 0xe7, 0xa6, 0x2e, 0x1f, 0xed, 0x8a, 0xac, 0xba, 0x4c, - 0xa2, 0xfb, 0x88, 0x27, 0xe3, 0x48, 0x0e, 0xcd, 0x41, 0xbb, 0xef, 0x3a, 0x01, 0x79, 0x19, 0xf4, - 0x4c, 0xad, 0x72, 0xa2, 0x7c, 0xae, 0x8d, 0xe3, 0x08, 0x74, 0x15, 0xda, 0x96, 0x63, 0x05, 0x96, - 0x11, 0xb8, 0x9e, 0x56, 0x3d, 0x51, 0x56, 0x28, 0x59, 0x21, 0xbb, 0x8b, 0xfd, 0xbe, 0xbb, 0xe7, - 0x04, 0x38, 0x16, 0x44, 0x1a, 0x34, 0x03, 0xcf, 0xe8, 0x93, 0x9e, 0xa9, 0xd5, 0x18, 0x63, 0x18, - 0xd4, 0x7f, 0x74, 0x01, 0x9a, 0xa2, 0x0c, 0xe8, 0x0e, 0x4c, 0x19, 0x1c, 0xbb, 0xb9, 0xe3, 0xbe, - 0xd0, 0xca, 0x8c, 0xfd, 0x58, 0xa2, 0xc0, 0x82, 0xbd, 0x4b, 0x45, 0xd6, 0x4a, 0x58, 0x46, 0xa0, - 0x1e, 0xcc, 0x8a, 0xe0, 0x0a, 0x09, 0x0c, 0xcb, 0xf6, 0xb5, 0xbf, 0xe1, 0x24, 0xc7, 0x73, 0x48, - 0x84, 0xd8, 0x5a, 0x09, 0x27, 0x80, 0xe8, 0x0b, 0xf0, 0x8a, 0x88, 0x59, 0x76, 0x9d, 0x6d, 0x6b, - 0xf0, 0x74, 0x68, 0x1a, 0x01, 0xd1, 0xfe, 0x96, 0xf3, 0x9d, 0xca, 0xe1, 0xe3, 0xb2, 0x5d, 0x2e, - 0xbc, 0x56, 0xc2, 0x59, 0x1c, 0xe8, 0x1e, 0xcc, 0x88, 0x68, 0x41, 0xfa, 0x77, 0x9c, 0xf4, 0x8d, - 0x1c, 0xd2, 0x88, 0x4d, 0x85, 0xa1, 0x2f, 0xc2, 0x11, 0x11, 0xf1, 0xd0, 0x72, 0x9e, 0x2f, 0xef, - 0x18, 0xb6, 0x4d, 0x9c, 0x01, 0xd1, 0xfe, 0x7e, 0x74, 0x19, 0x15, 0xe1, 0xb5, 0x12, 0xce, 0x24, - 0x41, 0x8f, 0xa1, 0xe3, 0x6e, 0x7d, 0x95, 0xf4, 0xc3, 0x06, 0xd9, 0x24, 0x81, 0xd6, 0x61, 0xbc, - 0x6f, 0x25, 0x78, 0x1f, 0x33, 0xb1, 0xb0, 0x29, 0xbb, 0x9b, 0x24, 0x58, 0x2b, 0xe1, 0x14, 0x18, - 0x3d, 0x05, 0xa4, 0xc4, 0x2d, 0xee, 0x12, 0xc7, 0xd4, 0x2e, 0x33, 0xca, 0x93, 0xa3, 0x29, 0x99, - 0xe8, 0x5a, 0x09, 0x67, 0x10, 0xa4, 0x68, 0x9f, 0x3a, 0x3e, 0x09, 0xb4, 0x2b, 0xe3, 0xd0, 0x32, - 0xd1, 0x14, 0x2d, 0x8b, 0xa5, 0x6d, 0xcb, 0x63, 0x31, 0xb1, 0x8d, 0xc0, 0x72, 0x1d, 0x51, 0xde, - 0xab, 0x8c, 0xf8, 0x74, 0x36, 0x71, 0x24, 0x1b, 0x95, 0x38, 0x93, 0x04, 0x7d, 0x19, 0x5e, 0x4d, - 0xc4, 0x63, 0xb2, 0xeb, 0xee, 0x13, 0xed, 0x1a, 0x63, 0x3f, 0x53, 0xc4, 0xce, 0xa5, 0xd7, 0x4a, - 0x38, 0x9b, 0x06, 0x2d, 0xc1, 0x74, 0x98, 0xc0, 0x68, 0xaf, 0x33, 0xda, 0xb9, 0x3c, 0x5a, 0x41, - 0xa6, 0x60, 0xa8, 0x2d, 0xf2, 0xf0, 0xb2, 0xed, 0xfa, 0x44, 0x5b, 0xcc, 0xb4, 0x45, 0x41, 0xc1, - 0x44, 0xa8, 0x2d, 0x4a, 0x08, 0xb9, 0x92, 0x7e, 0xe0, 0x59, 0x7d, 0x56, 0x40, 0xaa, 0x45, 0x0b, - 0xa3, 0x2b, 0x19, 0x0b, 0x0b, 0x55, 0xca, 0xa6, 0x41, 0x18, 0x0e, 0xf9, 0x7b, 0x5b, 0x7e, 0xdf, - 0xb3, 0x86, 0x34, 0x6e, 0xd1, 0x34, 0xb5, 0x5b, 0xa3, 0x98, 0x37, 0x25, 0xe1, 0xee, 0xa2, 0x49, - 0x7b, 0x27, 0x49, 0x80, 0xbe, 0x08, 0x48, 0x8e, 0x12, 0xcd, 0xf7, 0x1e, 0xa3, 0xfd, 0xcc, 0x18, - 0xb4, 0x51, 0x5b, 0x66, 0xd0, 0x20, 0x03, 0x8e, 0xc8, 0xb1, 0x1b, 0xae, 0x6f, 0xd1, 0x5f, 0xed, - 0x36, 0xa3, 0x7f, 0x67, 0x0c, 0xfa, 0x10, 0x42, 0x15, 0x2b, 0x8b, 0x2a, 0x99, 0xc5, 0x32, 0x35, - 0x6b, 0xe2, 0xf9, 0xda, 0x9d, 0xb1, 0xb3, 0x08, 0x21, 0xc9, 0x2c, 0xc2, 0xf8, 0x64, 0x13, 0xbd, - 0xef, 0xb9, 0x7b, 0x43, 0x5f, 0xbb, 0x3b, 0x76, 0x13, 0x71, 0x40, 0xb2, 0x89, 0x78, 0x2c, 0xba, - 0x0e, 0xad, 0x2d, 0xdb, 0xed, 0x3f, 0xa7, 0x9d, 0x59, 0x61, 0x94, 0x5a, 0x82, 0x72, 0x89, 0x26, - 0x8b, 0xee, 0x8b, 0x64, 0xa9, 0xb2, 0xb2, 0xff, 0x2b, 0xc4, 0x26, 0x01, 0x11, 0xd3, 0xd2, 0xb1, - 0x4c, 0x28, 0x17, 0xa1, 0xca, 0x2a, 0x21, 0xd0, 0x0a, 0x4c, 0x6d, 0x5b, 0x36, 0xf1, 0x9f, 0x0e, - 0x6d, 0xd7, 0xe0, 0x73, 0xd4, 0xd4, 0xe5, 0x13, 0x99, 0x04, 0xf7, 0x62, 0x39, 0xca, 0x22, 0xc1, - 0xd0, 0x6d, 0x68, 0xef, 0x1a, 0xde, 0x73, 0xbf, 0xe7, 0x6c, 0xbb, 0x5a, 0x3d, 0x73, 0xe2, 0xe1, - 0x1c, 0x8f, 0x42, 0xa9, 0xb5, 0x12, 0x8e, 0x21, 0x74, 0xfa, 0x62, 0x85, 0xda, 0x24, 0xc1, 0x3d, - 0x8b, 0xd8, 0xa6, 0xaf, 0x35, 0x18, 0xc9, 0x9b, 0x99, 0x24, 0x9b, 0x24, 0xe8, 0x72, 0x31, 0x3a, - 0x7d, 0xa9, 0x40, 0xf4, 0x01, 0xbc, 0x12, 0xc6, 0x2c, 0xef, 0x58, 0xb6, 0xe9, 0x11, 0xa7, 0x67, - 0xfa, 0x5a, 0x33, 0x73, 0x66, 0x88, 0xf9, 0x24, 0x59, 0x3a, 0x7b, 0x65, 0x50, 0xd0, 0x91, 0x31, - 0x8c, 0x96, 0x4d, 0x52, 0x6b, 0x65, 0x8e, 0x8c, 0x31, 0xb5, 0x2c, 0x4c, 0xb5, 0x2b, 0x8b, 0x04, - 0x99, 0xf0, 0x5a, 0x18, 0xbf, 0x64, 0xf4, 0x9f, 0x0f, 0x3c, 0x77, 0xcf, 0x31, 0x97, 0x5d, 0xdb, - 0xf5, 0xb4, 0x36, 0xe3, 0x3f, 0x97, 0xcb, 0x9f, 0x90, 0x5f, 0x2b, 0xe1, 0x3c, 0x2a, 0xb4, 0x0c, - 0xd3, 0x61, 0xd2, 0x13, 0xf2, 0x32, 0xd0, 0x20, 0x73, 0xfa, 0x8d, 0xa9, 0xa9, 0x10, 0x1d, 0x20, - 0x65, 0x90, 0x4c, 0x42, 0x55, 0x42, 0x9b, 0x2a, 0x20, 0xa1, 0x42, 0x32, 0x09, 0x0d, 0xcb, 0x24, - 0x74, 0xfa, 0xd5, 0x66, 0x0a, 0x48, 0xa8, 0x90, 0x4c, 0x42, 0xc3, 0x74, 0xaa, 0x8e, 0x6a, 0xea, - 0xba, 0xcf, 0xa9, 0x3e, 0x69, 0xb3, 0x99, 0x53, 0xb5, 0xd4, 0x5a, 0x42, 0x90, 0x4e, 0xd5, 0x49, - 0x30, 0x5d, 0xa0, 0x84, 0x71, 0x8b, 0xb6, 0x35, 0x70, 0xb4, 0x43, 0x23, 0x74, 0x99, 0xb2, 0x31, - 0x29, 0xba, 0x40, 0x51, 0x60, 0xe8, 0xae, 0x30, 0xcb, 0x4d, 0x12, 0xac, 0x58, 0xfb, 0xda, 0xe1, - 0xcc, 0x69, 0x28, 0x66, 0x59, 0xb1, 0xf6, 0x23, 0xbb, 0xe4, 0x10, 0xb9, 0x6a, 0xe1, 0x24, 0xa7, - 0xbd, 0x5a, 0x50, 0xb5, 0x50, 0x50, 0xae, 0x5a, 0x18, 0x27, 0x57, 0xed, 0xa1, 0x11, 0x90, 0x97, - 0xda, 0xeb, 0x05, 0x55, 0x63, 0x52, 0x72, 0xd5, 0x58, 0x04, 0x9d, 0xdd, 0xc2, 0x88, 0x67, 0xc4, - 0x0b, 0xac, 0xbe, 0x61, 0xf3, 0xa6, 0x3a, 0x95, 0x39, 0x07, 0xc5, 0x7c, 0x8a, 0x34, 0x9d, 0xdd, - 0x32, 0x69, 0xe4, 0x8a, 0x3f, 0x31, 0xb6, 0x6c, 0x82, 0xdd, 0x17, 0xda, 0xe9, 0x82, 0x8a, 0x87, - 0x82, 0x72, 0xc5, 0xc3, 0x38, 0x79, 0x6c, 0xf9, 0xbc, 0x65, 0x0e, 0x48, 0xa0, 0x9d, 0x2b, 0x18, - 0x5b, 0xb8, 0x98, 0x3c, 0xb6, 0xf0, 0x98, 0x68, 0x04, 0x58, 0x31, 0x02, 0x63, 0xdf, 0x22, 0x2f, - 0x9e, 0x59, 0xe4, 0x05, 0x9d, 0xd8, 0x5f, 0x19, 0x31, 0x02, 0x84, 0xb2, 0x5d, 0x21, 0x1c, 0x8d, - 0x00, 0x09, 0x92, 0x68, 0x04, 0x90, 0xe3, 0xc5, 0xb0, 0x7e, 0x64, 0xc4, 0x08, 0xa0, 0xf0, 0x47, - 0x63, 0x7c, 0x1e, 0x15, 0x32, 0xe0, 0x68, 0x2a, 0xe9, 0xb1, 0x67, 0x12, 0x4f, 0x7b, 0x83, 0x65, - 0x72, 0xb6, 0x38, 0x13, 0x26, 0xbe, 0x56, 0xc2, 0x39, 0x44, 0xa9, 0x2c, 0x36, 0xdd, 0x3d, 0xaf, - 0x4f, 0x68, 0x3b, 0x9d, 0x1c, 0x27, 0x8b, 0x48, 0x3c, 0x95, 0x45, 0x94, 0x82, 0xf6, 0xe1, 0x8d, - 0x28, 0x85, 0x66, 0xcc, 0x66, 0x51, 0x96, 0xbb, 0xd8, 0x58, 0x9c, 0x61, 0x39, 0x75, 0x47, 0xe7, - 0x94, 0x44, 0xad, 0x95, 0xf0, 0x68, 0x5a, 0x74, 0x00, 0xc7, 0x15, 0x01, 0x3e, 0xcf, 0xcb, 0x19, - 0x9f, 0x65, 0x19, 0x5f, 0x1c, 0x9d, 0x71, 0x0a, 0xb6, 0x56, 0xc2, 0x05, 0xc4, 0x68, 0x08, 0xc7, - 0x94, 0xc6, 0x08, 0x0d, 0x5b, 0xa8, 0xc8, 0x4f, 0xb3, 0x7c, 0xcf, 0x8f, 0xce, 0x57, 0xc5, 0xac, - 0x95, 0xf0, 0x28, 0x4a, 0x34, 0x00, 0x2d, 0x33, 0x99, 0xf6, 0xe4, 0x37, 0x32, 0x97, 0x3d, 0x39, - 0xd9, 0xf1, 0xbe, 0xcc, 0x25, 0xcb, 0xd4, 0x7c, 0xd1, 0x9c, 0x3f, 0x33, 0xae, 0xe6, 0x47, 0xed, - 0x98, 0x47, 0xa5, 0xf4, 0x1d, 0x4d, 0x7a, 0x62, 0x78, 0x03, 0x12, 0xf0, 0x86, 0xee, 0x99, 0xb4, - 0x52, 0xdf, 0x1c, 0xa7, 0xef, 0x52, 0x30, 0xa5, 0xef, 0x32, 0x89, 0x91, 0x0f, 0x73, 0x8a, 0x44, - 0xcf, 0x5f, 0x76, 0x6d, 0x9b, 0xf4, 0xc3, 0xd6, 0xfc, 0x59, 0x96, 0xf1, 0x85, 0xd1, 0x19, 0x27, - 0x40, 0x6b, 0x25, 0x3c, 0x92, 0x34, 0x55, 0xdf, 0xc7, 0xb6, 0x99, 0xd0, 0x19, 0x6d, 0x2c, 0x5d, - 0x4d, 0xc2, 0x52, 0xf5, 0x4d, 0x49, 0xa4, 0x74, 0x55, 0x92, 0xa0, 0xd5, 0x7d, 0x6d, 0x1c, 0x5d, - 0x55, 0x31, 0x29, 0x5d, 0x55, 0x93, 0xe9, 0xec, 0xb6, 0xe7, 0x13, 0x8f, 0x71, 0xdc, 0x77, 0x2d, - 0x47, 0x7b, 0x33, 0x73, 0x76, 0x7b, 0xea, 0x13, 0x4f, 0x64, 0x44, 0xa5, 0xe8, 0xec, 0xa6, 0xc0, - 0x14, 0x9e, 0x87, 0x64, 0x3b, 0xd0, 0x4e, 0x14, 0xf1, 0x50, 0x29, 0x85, 0x87, 0x46, 0xd0, 0x99, - 0x22, 0x8a, 0xd8, 0x24, 0xb4, 0x57, 0xb0, 0xe1, 0x0c, 0x88, 0xf6, 0x56, 0xe6, 0x4c, 0x21, 0xd1, - 0x49, 0xc2, 0x74, 0xa6, 0xc8, 0x22, 0xa1, 0x3b, 0xff, 0x28, 0x9e, 0xae, 0xc8, 0x38, 0xf5, 0x7c, - 0xe6, 0xce, 0x5f, 0xa2, 0x8e, 0x44, 0xe9, 0x1e, 0x24, 0x4d, 0x80, 0x3e, 0x03, 0xb5, 0xa1, 0xe5, - 0x0c, 0x34, 0x93, 0x11, 0xbd, 0x92, 0x20, 0xda, 0xb0, 0x9c, 0xc1, 0x5a, 0x09, 0x33, 0x11, 0x74, - 0x0b, 0x60, 0xe8, 0xb9, 0x7d, 0xe2, 0xfb, 0xeb, 0xe4, 0x85, 0x46, 0x18, 0x40, 0x4f, 0x02, 0xb8, - 0x40, 0x77, 0x9d, 0xd0, 0x79, 0x59, 0x92, 0x47, 0xab, 0x30, 0x23, 0x42, 0xc2, 0xca, 0xb7, 0x33, - 0x17, 0x7f, 0x21, 0x41, 0xec, 0x05, 0x52, 0x50, 0x74, 0xef, 0x23, 0x22, 0x56, 0x5c, 0x87, 0x68, - 0x83, 0xcc, 0xbd, 0x4f, 0x48, 0x42, 0x45, 0xe8, 0x1a, 0x4b, 0x42, 0xa0, 0x25, 0x98, 0x0e, 0x76, - 0x3c, 0x62, 0x98, 0x9b, 0x81, 0x11, 0xec, 0xf9, 0x9a, 0x93, 0xb9, 0x4c, 0xe3, 0x89, 0xdd, 0x27, - 0x4c, 0x92, 0x2e, 0x41, 0x65, 0x0c, 0x5a, 0x87, 0x0e, 0xdd, 0x08, 0x3d, 0xb4, 0x76, 0xad, 0x00, - 0x13, 0xa3, 0xbf, 0x43, 0x4c, 0xcd, 0xcd, 0xdc, 0x44, 0xd1, 0x65, 0x6f, 0x57, 0x96, 0xa3, 0xab, - 0x95, 0x24, 0x16, 0xad, 0xc1, 0x2c, 0x8d, 0xdb, 0x1c, 0x1a, 0x7d, 0xf2, 0xd4, 0x37, 0x06, 0x44, - 0x1b, 0x66, 0x6a, 0x20, 0x63, 0x8b, 0xa5, 0xe8, 0x62, 0x45, 0xc5, 0x85, 0x4c, 0x0f, 0xdd, 0xbe, - 0x61, 0x73, 0xa6, 0xaf, 0xe5, 0x33, 0xc5, 0x52, 0x21, 0x53, 0x1c, 0xa3, 0xd4, 0x91, 0xb7, 0xbd, - 0xa9, 0xed, 0x17, 0xd4, 0x51, 0xc8, 0x29, 0x75, 0x14, 0x71, 0x94, 0xcf, 0x71, 0x03, 0x6b, 0xdb, - 0xea, 0x0b, 0xfb, 0x75, 0x4c, 0xcd, 0xcb, 0xe4, 0x5b, 0x97, 0xc4, 0xba, 0x9b, 0xdc, 0xb3, 0x94, - 0xc2, 0xa2, 0x27, 0x80, 0xe4, 0x38, 0xa1, 0x54, 0x3e, 0x63, 0x9c, 0x1f, 0xc5, 0x18, 0x69, 0x56, - 0x06, 0x9e, 0x96, 0x72, 0x68, 0x1c, 0xd0, 0xed, 0xed, 0x92, 0xe7, 0x1a, 0x66, 0xdf, 0xf0, 0x03, - 0x2d, 0xc8, 0x2c, 0xe5, 0x06, 0x17, 0xeb, 0x46, 0x72, 0xb4, 0x94, 0x49, 0x2c, 0xe5, 0xdb, 0x25, - 0xbb, 0x5b, 0xc4, 0xf3, 0x77, 0xac, 0xa1, 0x28, 0xe3, 0x5e, 0x26, 0xdf, 0xa3, 0x48, 0x2c, 0x2e, - 0x61, 0x0a, 0x4b, 0x17, 0xe2, 0x3e, 0xed, 0xed, 0xcd, 0x03, 0xa7, 0xcf, 0x95, 0x51, 0x90, 0xbe, - 0xc8, 0x5c, 0x88, 0x33, 0xcd, 0xe8, 0xc6, 0xc2, 0x31, 0x75, 0x36, 0x0d, 0x7a, 0x00, 0x87, 0x86, - 0x97, 0x87, 0x0a, 0xf3, 0xcb, 0xcc, 0x85, 0xf3, 0xc6, 0xe5, 0x8d, 0x24, 0x65, 0x12, 0xb9, 0xd4, - 0x84, 0xfa, 0xbe, 0x61, 0xef, 0x11, 0xfd, 0x4f, 0xea, 0xd0, 0x14, 0xfe, 0x58, 0x7d, 0x1d, 0x6a, - 0xcc, 0x79, 0x7d, 0x04, 0xea, 0x96, 0x63, 0x92, 0x97, 0xcc, 0xef, 0x5d, 0xc7, 0x3c, 0x80, 0x2e, - 0x41, 0x53, 0xf8, 0x67, 0x85, 0x47, 0x24, 0xcf, 0xdb, 0x1e, 0x8a, 0xe9, 0x1f, 0x42, 0x33, 0x74, - 0x62, 0xcf, 0x41, 0x7b, 0xe8, 0xb9, 0x54, 0xf3, 0x7a, 0x26, 0xa3, 0x6d, 0xe3, 0x38, 0x02, 0xbd, - 0x0b, 0x4d, 0x53, 0xb8, 0xc9, 0x39, 0xf5, 0x6b, 0x5d, 0x7e, 0xae, 0xd0, 0x0d, 0xcf, 0x15, 0xba, - 0x9b, 0xec, 0x5c, 0x01, 0x87, 0x72, 0xfa, 0xb7, 0xca, 0xd0, 0xe0, 0xbe, 0x6c, 0x7d, 0x1f, 0x1a, - 0xa2, 0x89, 0xae, 0x41, 0xa3, 0xcf, 0xe2, 0xb4, 0xa4, 0x1f, 0x5b, 0x29, 0xa1, 0x70, 0x8e, 0x63, - 0x21, 0x4c, 0x61, 0x3e, 0x1f, 0x71, 0x2a, 0x23, 0x61, 0xbc, 0x05, 0xb1, 0x10, 0xfe, 0x1f, 0xcb, - 0xf7, 0x3f, 0xcb, 0x30, 0xa3, 0xba, 0xc8, 0xe7, 0xa0, 0xdd, 0x8f, 0x9c, 0xee, 0xa2, 0x75, 0xfb, - 0x92, 0x03, 0x1d, 0xfa, 0xb6, 0x45, 0x9c, 0x80, 0x79, 0x83, 0x2a, 0x99, 0x8b, 0x8c, 0x4c, 0x97, - 0x7c, 0x77, 0x39, 0x82, 0x61, 0x89, 0x42, 0xff, 0x26, 0x40, 0x9c, 0x82, 0x4e, 0x44, 0xc3, 0xfe, - 0xba, 0xb1, 0x1b, 0x66, 0x2f, 0x47, 0x49, 0x12, 0x1b, 0x46, 0xb0, 0x23, 0x4e, 0x72, 0xe4, 0x28, - 0x74, 0x1e, 0x0e, 0xfb, 0xd6, 0xc0, 0x31, 0x82, 0x3d, 0x8f, 0x3c, 0x23, 0x9e, 0xb5, 0x6d, 0x11, - 0x93, 0x39, 0xcf, 0x5a, 0x38, 0x9d, 0xa0, 0xff, 0x72, 0x1b, 0x1a, 0x7c, 0x39, 0xa7, 0xff, 0x7b, - 0x25, 0xd2, 0x31, 0xfd, 0x2f, 0xcb, 0x50, 0xe7, 0x6e, 0xed, 0x59, 0xa8, 0x58, 0xa1, 0x9a, 0x55, - 0x2c, 0x13, 0xdd, 0x93, 0xf5, 0xab, 0x9a, 0xb1, 0xd6, 0xc9, 0x72, 0xf3, 0x77, 0x1f, 0x90, 0x83, - 0x67, 0xd4, 0x46, 0x22, 0xa5, 0x43, 0x47, 0xa1, 0xe1, 0xef, 0x6d, 0xf5, 0x4c, 0x5f, 0xab, 0x9e, - 0xa8, 0x9e, 0x6b, 0x63, 0x11, 0xd2, 0xef, 0x43, 0x2b, 0x14, 0x46, 0x1d, 0xa8, 0x3e, 0x27, 0x07, - 0x22, 0x73, 0xfa, 0x17, 0x9d, 0x17, 0xb6, 0x16, 0x99, 0x4d, 0x52, 0xb7, 0x79, 0x2e, 0xc2, 0x20, - 0xbf, 0x02, 0x55, 0xba, 0x80, 0x4a, 0x56, 0x61, 0x72, 0x13, 0xc9, 0x2d, 0xed, 0x32, 0xd4, 0xf9, - 0xd1, 0x42, 0x32, 0x0f, 0x04, 0xb5, 0xe7, 0xe4, 0x80, 0xb7, 0x51, 0x1b, 0xb3, 0xff, 0xb9, 0x24, - 0x7f, 0x51, 0x85, 0x69, 0xd9, 0x9d, 0xaa, 0xaf, 0x42, 0x75, 0xd1, 0x4c, 0x37, 0xbd, 0x06, 0x4d, - 0x63, 0x3b, 0x20, 0x5e, 0x74, 0x82, 0x17, 0x06, 0xe9, 0x28, 0xc3, 0xb8, 0x58, 0x3f, 0xb7, 0x31, - 0x0f, 0xe8, 0x5d, 0x68, 0x08, 0x2f, 0x75, 0x92, 0x29, 0x92, 0xaf, 0xc8, 0xf2, 0xf7, 0xa1, 0x15, - 0x39, 0x9d, 0x3f, 0x6e, 0xde, 0x1e, 0xb4, 0x22, 0xef, 0xf2, 0x11, 0xa8, 0x07, 0x6e, 0x60, 0xd8, - 0x8c, 0xae, 0x8a, 0x79, 0x80, 0x1a, 0x9a, 0x43, 0x5e, 0x06, 0xcb, 0xd1, 0x28, 0x58, 0xc5, 0x71, - 0x04, 0x1f, 0xe4, 0xc8, 0x3e, 0x4f, 0xad, 0xf2, 0xd4, 0x28, 0x22, 0xce, 0xb3, 0x26, 0xe7, 0x79, - 0x00, 0x0d, 0xe1, 0x72, 0x8e, 0xd2, 0xcb, 0x52, 0x3a, 0x5a, 0x84, 0xfa, 0x80, 0xa6, 0x8b, 0x5e, - 0x7f, 0x27, 0x31, 0x44, 0xf0, 0x95, 0xe4, 0xb2, 0xeb, 0x04, 0x54, 0x8d, 0xd5, 0x9d, 0x34, 0xe6, - 0x48, 0xda, 0x85, 0x1e, 0x3f, 0x3f, 0xe0, 0x16, 0x25, 0x42, 0xfa, 0xef, 0x95, 0xa1, 0x1d, 0x1d, - 0xd8, 0xe8, 0x1f, 0xe6, 0x19, 0xcf, 0x22, 0xcc, 0x78, 0x42, 0x8a, 0x8e, 0x0e, 0xa1, 0x09, 0x1d, - 0x4b, 0x94, 0x04, 0x4b, 0x32, 0x58, 0x45, 0xe8, 0xb7, 0x72, 0x3b, 0x75, 0x1e, 0xa6, 0x43, 0xd1, - 0x07, 0xb1, 0xea, 0x29, 0x71, 0xba, 0x1e, 0xa1, 0x3b, 0x50, 0xb5, 0x4c, 0x7e, 0x7e, 0xdc, 0xc6, - 0xf4, 0xaf, 0xbe, 0x0d, 0xd3, 0xb2, 0xdb, 0x56, 0x7f, 0x96, 0x6d, 0x3d, 0x77, 0x68, 0x36, 0x92, - 0x8b, 0xb8, 0x92, 0x58, 0x9b, 0x86, 0x55, 0x88, 0x45, 0xb0, 0x02, 0xd0, 0x5f, 0x83, 0x3a, 0x3f, - 0x4c, 0x4a, 0x30, 0xeb, 0xbf, 0xd5, 0x87, 0x3a, 0xeb, 0x04, 0xfd, 0x0a, 0x37, 0x80, 0xf3, 0xd0, - 0x60, 0x1b, 0xa3, 0xf0, 0x98, 0xfb, 0x48, 0x56, 0x8f, 0x61, 0x21, 0xa3, 0x2f, 0xc3, 0x94, 0xe4, - 0xc6, 0xa7, 0x1a, 0xcb, 0x12, 0x22, 0x2d, 0x08, 0x83, 0x48, 0x87, 0x16, 0x9d, 0x2c, 0xc5, 0x00, - 0x4a, 0xeb, 0x1f, 0x85, 0xf5, 0x53, 0xd0, 0x10, 0x1b, 0x3d, 0x5d, 0x1c, 0x5b, 0xf4, 0xa2, 0x56, - 0x8a, 0xc2, 0xfa, 0x97, 0xa0, 0x1d, 0x79, 0xfb, 0xd1, 0x63, 0x98, 0x16, 0xde, 0x7e, 0xbe, 0x59, - 0xa1, 0xc2, 0xb3, 0x05, 0xda, 0x45, 0x77, 0x26, 0xec, 0xc0, 0xa0, 0xfb, 0xe4, 0x60, 0x48, 0xb0, - 0x42, 0xa0, 0xff, 0xe2, 0x39, 0xd6, 0xf2, 0xfa, 0x10, 0x5a, 0x91, 0x8b, 0x33, 0xd9, 0x0b, 0x0b, - 0x7c, 0x68, 0xac, 0x14, 0xfa, 0xe7, 0x39, 0x9e, 0x0e, 0xc0, 0x6c, 0x04, 0xd5, 0x8f, 0x41, 0xf5, - 0x01, 0x39, 0xa0, 0x16, 0xc2, 0x07, 0x52, 0x61, 0x21, 0x7c, 0xc0, 0xec, 0x41, 0x43, 0x1c, 0x35, - 0x24, 0xf3, 0xbb, 0x08, 0x8d, 0x6d, 0x7e, 0x7a, 0x51, 0x30, 0x64, 0x0a, 0x31, 0xfd, 0x0e, 0x4c, - 0xc9, 0x07, 0x0c, 0x49, 0xbe, 0x13, 0x30, 0xd5, 0x97, 0x8e, 0x30, 0x78, 0x37, 0xc8, 0x51, 0x3a, - 0x51, 0xd5, 0x31, 0xc5, 0xb0, 0x9a, 0xa9, 0x87, 0x6f, 0x65, 0x36, 0xfb, 0x08, 0x6d, 0x7c, 0x00, - 0x87, 0x92, 0x27, 0x09, 0xc9, 0x9c, 0xce, 0xc1, 0xa1, 0xad, 0xc4, 0xb9, 0x05, 0x1f, 0x03, 0x93, - 0xd1, 0x7a, 0x0f, 0xea, 0xdc, 0xd3, 0x9b, 0xa4, 0xb8, 0x04, 0x75, 0x83, 0x79, 0x92, 0x29, 0x70, - 0x56, 0xda, 0x4f, 0xca, 0xa5, 0x64, 0x50, 0xcc, 0x05, 0x75, 0x0b, 0x66, 0x54, 0xe7, 0x71, 0x92, - 0x72, 0x0d, 0x66, 0xf6, 0x15, 0x27, 0x35, 0xa7, 0x9e, 0xcf, 0xa4, 0x56, 0xa8, 0xb0, 0x0a, 0xd4, - 0x7f, 0xae, 0x01, 0x35, 0x76, 0xfa, 0x91, 0xcc, 0xe2, 0x3a, 0xd4, 0x02, 0xf2, 0x32, 0x5c, 0xa3, - 0xce, 0x8f, 0x3c, 0x4a, 0xe1, 0x5b, 0x70, 0x26, 0x8f, 0x3e, 0x0b, 0x75, 0x3f, 0x38, 0xb0, 0xc3, - 0x33, 0xbb, 0x93, 0xa3, 0x81, 0x9b, 0x54, 0x14, 0x73, 0x04, 0x85, 0x32, 0x5b, 0x10, 0xa7, 0x75, - 0x05, 0x50, 0x66, 0x84, 0x98, 0x23, 0xd0, 0x1d, 0x68, 0xf6, 0x77, 0x48, 0xff, 0x39, 0x31, 0xc5, - 0x31, 0xdd, 0xe9, 0xd1, 0xe0, 0x65, 0x2e, 0x8c, 0x43, 0x14, 0xcd, 0xbb, 0xcf, 0x7a, 0xb7, 0x31, - 0x4e, 0xde, 0xac, 0xc7, 0x31, 0x47, 0xa0, 0x55, 0x68, 0x5b, 0x7d, 0xd7, 0x59, 0xdd, 0x75, 0xbf, - 0x6a, 0x89, 0xf3, 0xb8, 0xb3, 0xa3, 0xe1, 0xbd, 0x50, 0x1c, 0xc7, 0xc8, 0x90, 0xa6, 0xb7, 0x4b, - 0xb7, 0xb4, 0xad, 0x71, 0x69, 0x98, 0x38, 0x8e, 0x91, 0xfa, 0x9c, 0xe8, 0xcf, 0x6c, 0x23, 0xbf, - 0x07, 0x75, 0xd6, 0xe4, 0xe8, 0x3d, 0x39, 0x79, 0x56, 0xca, 0x29, 0x77, 0xc4, 0x12, 0x5d, 0x15, - 0xf1, 0xb0, 0xf6, 0x57, 0x79, 0xa6, 0xc6, 0xe1, 0x11, 0xfd, 0xc6, 0x79, 0xde, 0x84, 0xa6, 0xe8, - 0x0a, 0xb5, 0xc0, 0xad, 0x50, 0xe0, 0x0d, 0xa8, 0x73, 0xc3, 0xcc, 0xae, 0xcf, 0x5b, 0xd0, 0x8e, - 0x1a, 0x73, 0xb4, 0x08, 0x6b, 0x9d, 0x1c, 0x91, 0x5f, 0xaa, 0x40, 0x9d, 0x9f, 0x02, 0xa5, 0x87, - 0x5a, 0xd9, 0x0a, 0x4e, 0x8e, 0x3e, 0x54, 0x92, 0xcd, 0xe0, 0x1e, 0xdb, 0xa8, 0xd1, 0x85, 0x79, - 0x74, 0xab, 0xea, 0x5c, 0x01, 0x7a, 0x23, 0x94, 0xc7, 0x31, 0xb4, 0xa0, 0x3b, 0x1f, 0x43, 0x3b, - 0x42, 0xa1, 0x25, 0xb5, 0x4b, 0xcf, 0x8f, 0xec, 0x8a, 0x64, 0x96, 0x82, 0xf0, 0xdb, 0x65, 0xa8, - 0xae, 0x58, 0xfb, 0xa9, 0x76, 0xb8, 0x11, 0x5a, 0x75, 0xd1, 0x70, 0xb0, 0x62, 0xed, 0x2b, 0x46, - 0xad, 0xaf, 0x86, 0x1a, 0x77, 0x4b, 0x2d, 0xde, 0x99, 0xd1, 0x2b, 0xb0, 0x98, 0x86, 0x17, 0xec, - 0xd7, 0x9a, 0x50, 0x63, 0x07, 0xac, 0x59, 0xe3, 0xd4, 0xc1, 0xb0, 0xb8, 0x60, 0xcc, 0x85, 0xc3, - 0x26, 0x5c, 0x26, 0xcf, 0xc7, 0x29, 0x23, 0x28, 0x1e, 0xa7, 0xb8, 0x47, 0x8a, 0x8a, 0x62, 0x8e, - 0xa0, 0x59, 0xee, 0x5a, 0xbb, 0x44, 0x0c, 0x53, 0x05, 0x59, 0x3e, 0xb2, 0x76, 0x09, 0x66, 0xf2, - 0x14, 0xb7, 0x63, 0xf8, 0x3b, 0x62, 0x84, 0x2a, 0xc0, 0xad, 0x19, 0xfe, 0x0e, 0x66, 0xf2, 0x14, - 0xe7, 0xd0, 0x2d, 0x61, 0x63, 0x1c, 0x1c, 0xdd, 0x29, 0x62, 0x26, 0x4f, 0x71, 0xbe, 0xf5, 0x75, - 0x22, 0xc6, 0xa4, 0x02, 0xdc, 0xa6, 0xf5, 0x75, 0x82, 0x99, 0x7c, 0x3c, 0x84, 0xb7, 0xc6, 0x6b, - 0x1a, 0x69, 0x08, 0x7f, 0x02, 0xb3, 0x81, 0x72, 0x4c, 0x20, 0x4e, 0xf9, 0xcf, 0x17, 0xf4, 0x8b, - 0x82, 0xc1, 0x09, 0x0e, 0x6a, 0x04, 0x6c, 0x03, 0x9c, 0x6d, 0x04, 0x6f, 0x40, 0xfd, 0xf3, 0x96, - 0x19, 0xec, 0xa8, 0xc9, 0x75, 0x65, 0xc8, 0xa3, 0xdd, 0x36, 0xd1, 0x90, 0x27, 0xf7, 0x3a, 0xe7, - 0x59, 0x81, 0x1a, 0x55, 0x9f, 0xc9, 0xf4, 0x38, 0xd6, 0xba, 0x8f, 0x35, 0x00, 0xcb, 0x0d, 0xcd, - 0x79, 0xe6, 0xa0, 0x46, 0x35, 0x24, 0xa7, 0x49, 0xe6, 0xa0, 0x46, 0xf5, 0x2e, 0x3f, 0x95, 0xf6, - 0xb6, 0x9a, 0x5a, 0x0d, 0x53, 0xcf, 0xc0, 0xac, 0xda, 0x1d, 0x39, 0x2c, 0x7f, 0xde, 0x84, 0x1a, - 0xbb, 0xad, 0x90, 0xb4, 0xc8, 0x9f, 0x82, 0x19, 0xde, 0x7f, 0x4b, 0x62, 0x09, 0x5e, 0xc9, 0xbc, - 0xac, 0xa4, 0xde, 0x81, 0x10, 0x2a, 0x20, 0x20, 0x58, 0x65, 0x18, 0x7f, 0x51, 0xc1, 0xa8, 0x14, - 0x8d, 0xbc, 0x15, 0x2d, 0x5e, 0x6b, 0x05, 0x57, 0x65, 0x18, 0x96, 0x2f, 0x81, 0xc3, 0x95, 0x2c, - 0x5a, 0x82, 0x16, 0x9d, 0x5a, 0x69, 0x73, 0x09, 0xb3, 0x3d, 0x33, 0x1a, 0xdf, 0x13, 0xd2, 0x38, - 0xc2, 0xd1, 0x89, 0xbd, 0x6f, 0x78, 0x26, 0x2b, 0x95, 0xb0, 0xe1, 0xb3, 0xa3, 0x49, 0x96, 0x43, - 0x71, 0x1c, 0x23, 0xd1, 0x03, 0x98, 0x32, 0x49, 0xe4, 0x27, 0x10, 0x46, 0xfd, 0x99, 0xd1, 0x44, - 0x2b, 0x31, 0x00, 0xcb, 0x68, 0x5a, 0xa6, 0x70, 0x6f, 0xe8, 0x17, 0x2e, 0x36, 0x18, 0x55, 0x7c, - 0x25, 0x31, 0x46, 0xea, 0xa7, 0x61, 0x46, 0xe9, 0xb7, 0x4f, 0x74, 0xd5, 0x21, 0xf7, 0x25, 0xe7, - 0x59, 0x88, 0xb6, 0x28, 0x17, 0xd4, 0x65, 0x47, 0xee, 0x8e, 0x44, 0x00, 0x1f, 0x42, 0x2b, 0xec, - 0x18, 0x74, 0x57, 0x2d, 0xc3, 0xdb, 0xc5, 0x65, 0x88, 0xfa, 0x54, 0xb0, 0xad, 0x43, 0x3b, 0xea, - 0x21, 0xb4, 0xa8, 0xd2, 0xbd, 0x53, 0x4c, 0x17, 0xf7, 0xae, 0xe0, 0xc3, 0x30, 0x25, 0x75, 0x14, - 0x5a, 0x56, 0x19, 0x2f, 0x14, 0x33, 0xca, 0xdd, 0x1c, 0xaf, 0x7a, 0xa2, 0x1e, 0x93, 0x7b, 0xa5, - 0x1a, 0xf7, 0xca, 0x1f, 0x37, 0xa1, 0x15, 0xdd, 0x10, 0xca, 0xd8, 0x63, 0xee, 0x79, 0x76, 0xe1, - 0x1e, 0x33, 0xc4, 0x77, 0x9f, 0x7a, 0x36, 0xa6, 0x08, 0xda, 0xc5, 0x81, 0x15, 0x44, 0xa6, 0x7a, - 0xb6, 0x18, 0xfa, 0x84, 0x8a, 0x63, 0x8e, 0x42, 0x8f, 0x55, 0x2d, 0xaf, 0x8d, 0x38, 0x41, 0x56, - 0x48, 0x72, 0x35, 0xbd, 0x07, 0x6d, 0x8b, 0x2e, 0xfd, 0xd6, 0xe2, 0x99, 0xf7, 0x9d, 0x62, 0xba, - 0x5e, 0x08, 0xc1, 0x31, 0x9a, 0x96, 0x6d, 0xdb, 0xd8, 0xa7, 0x76, 0xcd, 0xc8, 0x1a, 0xe3, 0x96, - 0xed, 0x5e, 0x0c, 0xc2, 0x32, 0x03, 0xba, 0x29, 0xd6, 0x2e, 0xcd, 0x82, 0x91, 0x25, 0x6e, 0xaa, - 0x78, 0xfd, 0xf2, 0x41, 0x6a, 0xa6, 0xe5, 0x66, 0x7c, 0x69, 0x0c, 0x96, 0x91, 0xb3, 0x2d, 0xed, - 0x41, 0xbe, 0x32, 0x6a, 0x8f, 0xdb, 0x83, 0xf2, 0xea, 0x48, 0x3f, 0x06, 0xd5, 0xa7, 0x9e, 0x9d, - 0x3f, 0x57, 0xb3, 0xee, 0xce, 0x49, 0x3e, 0xa9, 0x5a, 0x42, 0xfe, 0x82, 0x3e, 0xea, 0x93, 0x5c, - 0x1e, 0xa9, 0xd1, 0x73, 0x84, 0xde, 0x13, 0x13, 0xfa, 0x35, 0xd5, 0xde, 0xde, 0x4c, 0xd8, 0x1b, - 0xb5, 0xb0, 0x0d, 0x8f, 0xf0, 0x4b, 0x12, 0xd2, 0x4c, 0x3e, 0xee, 0x3c, 0x79, 0x3f, 0x5c, 0x7f, - 0x4c, 0x34, 0x52, 0x24, 0xdb, 0x96, 0x73, 0xfd, 0x42, 0x19, 0x5a, 0xd1, 0x05, 0xb0, 0xb4, 0x77, - 0xbe, 0x65, 0xf9, 0x6b, 0xc4, 0x30, 0x89, 0x27, 0xec, 0xf6, 0xed, 0xc2, 0x9b, 0x65, 0xdd, 0x9e, - 0x40, 0xe0, 0x08, 0xab, 0x9f, 0x80, 0x56, 0x18, 0x9b, 0xb3, 0x29, 0xfb, 0x7e, 0x05, 0x1a, 0xe2, - 0xea, 0x58, 0xb2, 0x10, 0xb7, 0xa1, 0x61, 0x1b, 0x07, 0xee, 0x5e, 0xb8, 0x65, 0x3a, 0x53, 0x70, - 0x1b, 0xad, 0xfb, 0x90, 0x49, 0x63, 0x81, 0x42, 0x9f, 0x83, 0xba, 0x6d, 0xed, 0x5a, 0x81, 0x18, - 0x3e, 0x4e, 0x17, 0xc2, 0xd9, 0x21, 0x33, 0xc7, 0xd0, 0xcc, 0xd9, 0x8d, 0x91, 0xf0, 0xbe, 0x6f, - 0x61, 0xe6, 0xcf, 0x98, 0x34, 0x16, 0x28, 0xfd, 0x3e, 0x34, 0x78, 0x71, 0x26, 0x9b, 0x24, 0xd4, - 0x9a, 0xc4, 0x9a, 0xce, 0xca, 0x96, 0xb3, 0x2a, 0x3d, 0x0e, 0x0d, 0x9e, 0x79, 0x8e, 0xd6, 0x7c, - 0xef, 0x75, 0xb6, 0xdf, 0xb1, 0xf5, 0x87, 0xf1, 0xe1, 0xdf, 0xc7, 0x3f, 0xcb, 0xd0, 0x9f, 0xc0, - 0xa1, 0x15, 0x23, 0x30, 0xb6, 0x0c, 0x9f, 0x60, 0xd2, 0x77, 0x3d, 0x33, 0x93, 0xd5, 0xe3, 0x49, - 0xc2, 0x43, 0x9d, 0xcf, 0x2a, 0xe4, 0x3e, 0x75, 0x1d, 0xfe, 0xef, 0x71, 0x1d, 0xfe, 0x69, 0x2d, - 0xc7, 0x9f, 0x37, 0x8e, 0x27, 0x83, 0x2a, 0x5c, 0xca, 0xa1, 0x77, 0x53, 0x5d, 0x7b, 0x9f, 0x2a, - 0x40, 0x2a, 0x8b, 0xef, 0x9b, 0xaa, 0x47, 0xaf, 0x08, 0xab, 0xb8, 0xf4, 0xee, 0x26, 0x5d, 0x7a, - 0x67, 0x0a, 0xd0, 0x29, 0x9f, 0xde, 0x4d, 0xd5, 0xa7, 0x57, 0x94, 0xbb, 0xec, 0xd4, 0xfb, 0x7f, - 0xe6, 0x46, 0xfb, 0x8d, 0x1c, 0xb7, 0xcf, 0x67, 0x55, 0xb7, 0xcf, 0x08, 0xad, 0xf9, 0x49, 0xf9, - 0x7d, 0x7e, 0xb3, 0x91, 0xe3, 0xf7, 0x59, 0x50, 0xfc, 0x3e, 0x23, 0x4a, 0x96, 0x74, 0xfc, 0xdc, - 0x54, 0x1d, 0x3f, 0xa7, 0x0a, 0x90, 0x8a, 0xe7, 0x67, 0x41, 0xf1, 0xfc, 0x14, 0x65, 0x2a, 0xb9, - 0x7e, 0x16, 0x14, 0xd7, 0x4f, 0x11, 0x50, 0xf2, 0xfd, 0x2c, 0x28, 0xbe, 0x9f, 0x22, 0xa0, 0xe4, - 0xfc, 0x59, 0x50, 0x9c, 0x3f, 0x45, 0x40, 0xc9, 0xfb, 0x73, 0x53, 0xf5, 0xfe, 0x14, 0xb7, 0x8f, - 0xd4, 0xe9, 0x9f, 0x3a, 0x6a, 0xfe, 0x1b, 0x1d, 0x35, 0xbf, 0x5a, 0xcd, 0x71, 0xc0, 0xe0, 0x6c, - 0x07, 0xcc, 0xf9, 0xfc, 0x9e, 0x2c, 0xf6, 0xc0, 0x8c, 0x3f, 0x0b, 0xa4, 0x5d, 0x30, 0xef, 0x25, - 0x5c, 0x30, 0xa7, 0x0b, 0xc0, 0xaa, 0x0f, 0xe6, 0xff, 0x8c, 0x93, 0xe1, 0x0f, 0x1a, 0x23, 0xf6, - 0xd3, 0x37, 0xe4, 0xfd, 0xf4, 0x88, 0x99, 0x2c, 0xbd, 0xa1, 0xbe, 0xad, 0x6e, 0xa8, 0xcf, 0x8d, - 0x81, 0x55, 0x76, 0xd4, 0x1b, 0x59, 0x3b, 0xea, 0xee, 0x18, 0x2c, 0xb9, 0x5b, 0xea, 0xfb, 0xe9, - 0x2d, 0xf5, 0xf9, 0x31, 0xf8, 0x32, 0xf7, 0xd4, 0x1b, 0x59, 0x7b, 0xea, 0x71, 0x4a, 0x97, 0xbb, - 0xa9, 0xfe, 0x9c, 0xb2, 0xa9, 0x3e, 0x3b, 0x4e, 0x73, 0xc5, 0x93, 0xc3, 0x17, 0x72, 0x76, 0xd5, - 0xef, 0x8e, 0x43, 0x33, 0xda, 0x89, 0xfd, 0xe9, 0xbe, 0x58, 0xcd, 0xe6, 0xf7, 0xdf, 0x84, 0x56, - 0x78, 0xd1, 0x46, 0xff, 0x1a, 0x34, 0xc3, 0xf7, 0x42, 0x49, 0xcb, 0x39, 0x1a, 0x6d, 0xea, 0xf8, - 0xea, 0x59, 0x84, 0xd0, 0x6d, 0xa8, 0xd1, 0x7f, 0xc2, 0x2c, 0xde, 0x1e, 0xef, 0x42, 0x0f, 0xcd, - 0x04, 0x33, 0x9c, 0xfe, 0xa3, 0x23, 0x00, 0xd2, 0x33, 0x8a, 0x71, 0xb3, 0x7d, 0x9f, 0x0e, 0x66, - 0x76, 0x40, 0x3c, 0x76, 0x91, 0xab, 0xf0, 0x99, 0x41, 0x9c, 0x03, 0xd5, 0x96, 0x80, 0x78, 0x58, - 0xc0, 0xd1, 0x23, 0x68, 0x85, 0x8e, 0x54, 0xad, 0xc6, 0xa8, 0xde, 0x1d, 0x9b, 0x2a, 0x74, 0xed, - 0xe1, 0x88, 0x02, 0x2d, 0x42, 0xcd, 0x77, 0xbd, 0x40, 0xab, 0x33, 0xaa, 0x0b, 0x63, 0x53, 0x6d, - 0xba, 0x5e, 0x80, 0x19, 0x94, 0x57, 0x4d, 0x7a, 0xa5, 0x3a, 0x49, 0xd5, 0x94, 0x11, 0xfb, 0xdf, - 0xaa, 0xd1, 0x18, 0xba, 0x2c, 0xac, 0x91, 0xeb, 0xd0, 0xc5, 0xf1, 0x7b, 0x49, 0xb6, 0x4a, 0x24, - 0x16, 0x41, 0xbc, 0x27, 0xf8, 0xfa, 0xe6, 0x6d, 0xe8, 0xf4, 0xdd, 0x7d, 0xe2, 0xe1, 0xf8, 0x8a, - 0x93, 0xb8, 0x85, 0x96, 0x8a, 0x47, 0x3a, 0xb4, 0x76, 0x2c, 0x93, 0xf4, 0xfa, 0x62, 0xfc, 0x6b, - 0xe1, 0x28, 0x8c, 0x1e, 0x40, 0x8b, 0xf9, 0xd8, 0x43, 0x0f, 0xff, 0x64, 0x85, 0xe4, 0xae, 0xfe, - 0x90, 0x80, 0x66, 0xc4, 0x32, 0xbf, 0x67, 0x05, 0xac, 0x0d, 0x5b, 0x38, 0x0a, 0xd3, 0x02, 0xb3, - 0x7b, 0x64, 0x72, 0x81, 0x9b, 0xbc, 0xc0, 0xc9, 0x78, 0x74, 0x15, 0x5e, 0x65, 0x71, 0x89, 0x2d, - 0x26, 0x77, 0xd5, 0xb7, 0x70, 0x76, 0x22, 0xbb, 0x37, 0x67, 0x0c, 0xf8, 0x9d, 0x74, 0xe6, 0xbc, - 0xab, 0xe3, 0x38, 0x02, 0x9d, 0x87, 0xc3, 0x26, 0xd9, 0x36, 0xf6, 0xec, 0xe0, 0x09, 0xd9, 0x1d, - 0xda, 0x46, 0x40, 0x7a, 0x26, 0x7b, 0x28, 0xdb, 0xc6, 0xe9, 0x04, 0x74, 0x09, 0x5e, 0x11, 0x91, - 0xdc, 0x8c, 0x69, 0x6f, 0xf4, 0x4c, 0xf6, 0x6e, 0xb4, 0x8d, 0xb3, 0x92, 0xf4, 0xef, 0xd5, 0x68, - 0xa7, 0x33, 0xd5, 0x7e, 0x1f, 0xaa, 0x86, 0x69, 0x8a, 0x69, 0xf3, 0xca, 0x84, 0x06, 0x22, 0xde, - 0x82, 0x53, 0x06, 0xb4, 0x11, 0x5d, 0xb9, 0xe3, 0x13, 0xe7, 0xf5, 0x49, 0xb9, 0xa2, 0xf7, 0xfb, - 0x82, 0x87, 0x32, 0xee, 0xf1, 0x4b, 0xdf, 0xd5, 0x1f, 0x8f, 0x31, 0xba, 0x0b, 0x2e, 0x78, 0xd0, - 0x7d, 0xa8, 0xb1, 0x12, 0xf2, 0x89, 0xf5, 0xea, 0xa4, 0x7c, 0x8f, 0x78, 0xf9, 0x18, 0x87, 0xde, - 0xe7, 0x77, 0xdf, 0xa4, 0x0b, 0x97, 0x65, 0xf5, 0xc2, 0xe5, 0x12, 0xd4, 0xad, 0x80, 0xec, 0xa6, - 0xef, 0xdf, 0x8e, 0x54, 0x55, 0x31, 0xf2, 0x70, 0xe8, 0xc8, 0x7b, 0x80, 0x1f, 0x46, 0x77, 0xb1, - 0x93, 0xe3, 0xe1, 0x5d, 0xa8, 0x51, 0x78, 0x6a, 0x2d, 0x39, 0x4e, 0xc6, 0x0c, 0xa9, 0x5f, 0x86, - 0x1a, 0xad, 0xec, 0x88, 0xda, 0x89, 0xf2, 0x54, 0xa2, 0xf2, 0x2c, 0x4d, 0x41, 0xdb, 0x1d, 0x12, - 0x8f, 0x19, 0x86, 0xfe, 0xaf, 0x35, 0xe9, 0x52, 0x5c, 0x4f, 0xd6, 0xb1, 0x6b, 0x13, 0x8f, 0x9c, - 0xb2, 0x96, 0xe1, 0x84, 0x96, 0xdd, 0x98, 0x9c, 0x2d, 0xa5, 0x67, 0x38, 0xa1, 0x67, 0x3f, 0x06, - 0x67, 0x4a, 0xd3, 0x1e, 0x2a, 0x9a, 0x76, 0x7d, 0x72, 0x46, 0x45, 0xd7, 0x48, 0x91, 0xae, 0xad, - 0xa8, 0xba, 0xd6, 0x1d, 0xaf, 0xcb, 0xa3, 0xa9, 0x69, 0x0c, 0x6d, 0xfb, 0x52, 0xae, 0xb6, 0x2d, - 0x29, 0xda, 0x36, 0x69, 0xd6, 0x9f, 0x90, 0xbe, 0xfd, 0x63, 0x0d, 0x6a, 0x74, 0x7a, 0x44, 0xab, - 0xb2, 0xae, 0xbd, 0x3b, 0xd1, 0xd4, 0x2a, 0xeb, 0xd9, 0x7a, 0x42, 0xcf, 0xae, 0x4e, 0xc6, 0x94, - 0xd2, 0xb1, 0xf5, 0x84, 0x8e, 0x4d, 0xc8, 0x97, 0xd2, 0xaf, 0x35, 0x45, 0xbf, 0x2e, 0x4f, 0xc6, - 0xa6, 0xe8, 0x96, 0x51, 0xa4, 0x5b, 0x77, 0x55, 0xdd, 0x1a, 0x73, 0xf5, 0xc6, 0xd6, 0x2a, 0x63, - 0xe8, 0xd5, 0x07, 0xb9, 0x7a, 0x75, 0x5b, 0xd1, 0xab, 0x49, 0xb2, 0xfd, 0x84, 0x74, 0xea, 0x2a, - 0x5f, 0x74, 0x8a, 0x7b, 0xc6, 0x63, 0x2e, 0x3a, 0xf5, 0x6b, 0xd0, 0x8e, 0xdf, 0xa1, 0x67, 0x5c, - 0xcf, 0xe7, 0x62, 0x61, 0xae, 0x61, 0x50, 0xbf, 0x02, 0xed, 0xf8, 0x6d, 0x79, 0x46, 0x5e, 0x3e, - 0x4b, 0x14, 0x28, 0x11, 0xd2, 0x57, 0xe1, 0x70, 0xfa, 0xe5, 0x6b, 0x86, 0x1f, 0x5e, 0xba, 0x5b, - 0x1e, 0x3e, 0x45, 0x91, 0xa2, 0xf4, 0x17, 0x30, 0x9b, 0x78, 0xcb, 0x3a, 0x31, 0x07, 0xba, 0x22, - 0x2d, 0x91, 0xab, 0x62, 0x0f, 0x9e, 0x7d, 0x5b, 0x3e, 0x5e, 0x08, 0xeb, 0x2b, 0x30, 0x5b, 0x50, - 0xf8, 0x71, 0x2e, 0xcb, 0x7f, 0x05, 0xa6, 0x46, 0x95, 0xfd, 0x13, 0xb8, 0xcc, 0x1f, 0x40, 0x27, - 0xf5, 0x0e, 0x3f, 0x99, 0xcd, 0x06, 0xc0, 0x20, 0x92, 0x11, 0x4a, 0x7b, 0x69, 0x82, 0xa7, 0x0b, - 0x0c, 0x87, 0x25, 0x0e, 0xfd, 0x77, 0xcb, 0x70, 0x38, 0xfd, 0x08, 0x7f, 0xdc, 0xcd, 0x8f, 0x06, - 0x4d, 0xc6, 0x15, 0xbd, 0xf8, 0x08, 0x83, 0xe8, 0x11, 0x4c, 0xfb, 0xb6, 0xd5, 0x27, 0xcb, 0x3b, - 0x86, 0x33, 0x20, 0xbe, 0xd8, 0xd1, 0x14, 0x3c, 0xa4, 0xdf, 0x8c, 0x11, 0x58, 0x81, 0xeb, 0x2f, - 0x60, 0x4a, 0x4a, 0x44, 0xb7, 0xa0, 0xe2, 0x0e, 0x53, 0xf7, 0x1a, 0xf3, 0x39, 0x1f, 0x87, 0xf6, - 0x86, 0x2b, 0xee, 0x30, 0x6d, 0x92, 0xb2, 0xf9, 0x56, 0x15, 0xf3, 0xd5, 0x1f, 0xc0, 0xe1, 0xf4, - 0x3b, 0xf7, 0x64, 0xf3, 0x9c, 0x49, 0x79, 0x09, 0x78, 0x33, 0x25, 0xb7, 0xfc, 0x0b, 0x70, 0x28, - 0xf9, 0x7a, 0x3d, 0xe3, 0x35, 0x4e, 0xfc, 0xa8, 0x29, 0x74, 0xd7, 0xcf, 0xff, 0x4a, 0x19, 0x66, - 0xd5, 0x8a, 0xa0, 0xa3, 0x80, 0xd4, 0x98, 0x75, 0xd7, 0x21, 0x9d, 0x12, 0x7a, 0x15, 0x0e, 0xab, - 0xf1, 0x8b, 0xa6, 0xd9, 0x29, 0xa7, 0xc5, 0xe9, 0xb0, 0xd5, 0xa9, 0x20, 0x0d, 0x8e, 0x24, 0x5a, - 0x88, 0x0d, 0xa2, 0x9d, 0x2a, 0x7a, 0x1d, 0x5e, 0x4d, 0xa6, 0x0c, 0x6d, 0xa3, 0x4f, 0x3a, 0x35, - 0xfd, 0x87, 0x15, 0xa8, 0x3d, 0xf5, 0x89, 0xa7, 0xff, 0x4b, 0x25, 0x7c, 0xa5, 0x71, 0x03, 0x6a, - 0xec, 0x61, 0xb9, 0xf4, 0x9a, 0xb1, 0x9c, 0x78, 0xcd, 0xa8, 0xbc, 0x88, 0x8b, 0x5f, 0x33, 0xde, - 0x80, 0x1a, 0x7b, 0x4a, 0x3e, 0x39, 0xf2, 0xe7, 0xcb, 0xd0, 0x8e, 0x9f, 0x75, 0x4f, 0x8c, 0x97, - 0x5f, 0x85, 0x54, 0xd4, 0x57, 0x21, 0x6f, 0x43, 0xdd, 0x63, 0xef, 0x37, 0xf8, 0x28, 0x93, 0x7c, - 0x6b, 0xc2, 0x32, 0xc4, 0x5c, 0x44, 0x27, 0x30, 0x25, 0x3f, 0x5a, 0x9f, 0xbc, 0x18, 0xa7, 0xc4, - 0x17, 0x6b, 0x7a, 0xa6, 0xbf, 0xe8, 0x79, 0xc6, 0x81, 0x50, 0x4c, 0x35, 0x52, 0x9f, 0x83, 0xda, - 0x86, 0xe5, 0x0c, 0xb2, 0x1f, 0x91, 0xea, 0xdf, 0x29, 0x43, 0x53, 0x5c, 0xde, 0xd5, 0x17, 0xa0, - 0xba, 0x4e, 0x5e, 0xd0, 0x82, 0x88, 0x6b, 0xc3, 0xa9, 0x82, 0x3c, 0x62, 0xb5, 0x10, 0xf2, 0x38, - 0x14, 0xd3, 0x6f, 0x46, 0xd3, 0xe4, 0xe4, 0xd8, 0x1b, 0x50, 0x63, 0x6f, 0xcd, 0x27, 0x47, 0xfe, - 0x76, 0x0b, 0x1a, 0xfc, 0x25, 0xa6, 0xfe, 0xed, 0x16, 0x34, 0xf8, 0xfb, 0x73, 0x74, 0x1b, 0x9a, - 0xfe, 0xde, 0xee, 0xae, 0xe1, 0x1d, 0x68, 0xd9, 0x1f, 0x3b, 0x54, 0x9e, 0xab, 0x77, 0x37, 0xb9, - 0x2c, 0x0e, 0x41, 0xe8, 0x1a, 0xd4, 0xfa, 0xc6, 0x36, 0x49, 0x1d, 0xe7, 0x66, 0x81, 0x97, 0x8d, - 0x6d, 0x82, 0x99, 0x38, 0xba, 0x0b, 0x2d, 0xd1, 0x2d, 0xbe, 0xf0, 0xe7, 0x8c, 0xce, 0x37, 0xec, - 0xcc, 0x08, 0xa5, 0xdf, 0x87, 0xa6, 0x28, 0x0c, 0xba, 0x13, 0xbd, 0x43, 0x4d, 0x7a, 0x9e, 0x33, - 0xab, 0x10, 0x3d, 0x4c, 0x8e, 0x5e, 0xa4, 0xfe, 0x55, 0x05, 0x6a, 0xb4, 0x70, 0x1f, 0x9b, 0x09, - 0x1d, 0x07, 0xb0, 0x0d, 0x3f, 0xd8, 0xd8, 0xb3, 0x6d, 0x62, 0x8a, 0x17, 0x76, 0x52, 0x0c, 0x3a, - 0x07, 0x87, 0x78, 0xc8, 0xdf, 0xd9, 0xdc, 0xeb, 0xf7, 0x49, 0xf4, 0x4c, 0x34, 0x19, 0x8d, 0x16, - 0xa1, 0xce, 0xbe, 0x88, 0x26, 0x56, 0x85, 0xef, 0x14, 0xb6, 0x6c, 0x77, 0xc3, 0x72, 0x44, 0x69, - 0x38, 0x52, 0x77, 0xa1, 0x1d, 0xc5, 0x51, 0x23, 0x1c, 0x5a, 0x8e, 0x63, 0x39, 0x03, 0xa1, 0xd1, - 0x61, 0x90, 0x4e, 0x3a, 0xf4, 0xaf, 0x28, 0x6f, 0x1d, 0x8b, 0x10, 0x8d, 0xdf, 0x36, 0x2c, 0x5b, - 0x14, 0xb1, 0x8e, 0x45, 0x88, 0x32, 0xed, 0x89, 0x57, 0xfb, 0x35, 0x56, 0xc1, 0x30, 0xa8, 0x7f, - 0x54, 0x8e, 0x1e, 0x63, 0x67, 0x3d, 0xce, 0x4c, 0xf9, 0x92, 0xe6, 0x64, 0x87, 0x36, 0x9f, 0x10, - 0x24, 0x17, 0xf5, 0x51, 0x68, 0xb8, 0x8e, 0x6d, 0x39, 0x44, 0xf8, 0x8e, 0x44, 0x28, 0xd1, 0xc6, - 0xf5, 0x54, 0x1b, 0x8b, 0xf4, 0x55, 0xd3, 0xa2, 0x45, 0x6c, 0xc4, 0xe9, 0x3c, 0x06, 0xbd, 0x07, - 0x4d, 0x93, 0xec, 0x5b, 0x7d, 0xe2, 0x6b, 0x4d, 0xa6, 0x7a, 0x27, 0x47, 0xb6, 0xed, 0x0a, 0x93, - 0xc5, 0x21, 0x46, 0x0f, 0xa0, 0xc1, 0xa3, 0xa2, 0x2a, 0x95, 0xa5, 0x2a, 0xc5, 0x85, 0xae, 0x8c, - 0x28, 0x74, 0xb5, 0xa0, 0xd0, 0xb5, 0x64, 0xa1, 0xe7, 0x4d, 0x80, 0x58, 0xdd, 0xd0, 0x14, 0x34, - 0x9f, 0x3a, 0xcf, 0x1d, 0xf7, 0x85, 0xd3, 0x29, 0xd1, 0xc0, 0xe3, 0xed, 0x6d, 0x9a, 0x4b, 0xa7, - 0x4c, 0x03, 0x54, 0xce, 0x72, 0x06, 0x9d, 0x0a, 0x02, 0x68, 0xd0, 0x00, 0x31, 0x3b, 0x55, 0xfa, - 0xff, 0x1e, 0xeb, 0xbf, 0x4e, 0x0d, 0xbd, 0x06, 0xaf, 0xf4, 0x9c, 0xbe, 0xbb, 0x3b, 0x34, 0x02, - 0x6b, 0xcb, 0x26, 0xcf, 0x88, 0xe7, 0x5b, 0xae, 0xd3, 0xa9, 0xeb, 0xff, 0x51, 0xe6, 0xa7, 0xbe, - 0xfa, 0x5d, 0x98, 0x56, 0x3e, 0x23, 0xa1, 0x41, 0x93, 0xbd, 0xea, 0x8f, 0xd7, 0xdd, 0x22, 0xc8, - 0xb4, 0x84, 0x3f, 0x8b, 0x17, 0x4b, 0x16, 0x1e, 0xd2, 0xef, 0x01, 0x48, 0x1f, 0x8f, 0x38, 0x0e, - 0xb0, 0x75, 0x10, 0x10, 0x9f, 0x7f, 0x38, 0x82, 0x52, 0xd4, 0xb0, 0x14, 0x23, 0xf3, 0x57, 0x14, - 0x7e, 0xfd, 0x3a, 0x80, 0xf4, 0xe9, 0x08, 0x6a, 0x3f, 0x34, 0xb4, 0x94, 0x24, 0x4b, 0x46, 0xeb, - 0x5d, 0x51, 0x83, 0xf0, 0x23, 0x11, 0x61, 0x09, 0xb8, 0x97, 0x4e, 0x2e, 0x01, 0x8b, 0xd1, 0x57, - 0x01, 0xe2, 0xef, 0x24, 0xe8, 0x0b, 0xd1, 0x10, 0x7d, 0x01, 0x6a, 0xa6, 0x11, 0x18, 0x62, 0x74, - 0x7c, 0x3d, 0x31, 0x43, 0xc5, 0x10, 0xcc, 0xc4, 0xf4, 0xdf, 0x29, 0xc3, 0xb4, 0xfc, 0x4d, 0x08, - 0xfd, 0x7d, 0xa8, 0xb1, 0x8f, 0x4a, 0xdc, 0x81, 0x69, 0xf9, 0xa3, 0x10, 0xa9, 0x6f, 0xf2, 0x72, - 0x3e, 0x19, 0x8a, 0x15, 0x80, 0xde, 0x8b, 0x8a, 0xf4, 0xb1, 0xa9, 0x2e, 0x41, 0x53, 0x7c, 0x63, - 0x42, 0x3f, 0x0d, 0xed, 0xf8, 0x93, 0x12, 0x74, 0x8c, 0xe0, 0xf1, 0x61, 0x2f, 0x8b, 0xa0, 0xfe, - 0x4f, 0x55, 0xa8, 0xb3, 0xee, 0xd4, 0xbf, 0x55, 0x91, 0x35, 0x51, 0xff, 0x61, 0x39, 0x77, 0xcf, - 0x77, 0x45, 0xf9, 0x3c, 0xc0, 0x6c, 0xea, 0x53, 0x2a, 0xe2, 0x0b, 0x12, 0xea, 0x00, 0x7a, 0x1d, - 0x9a, 0x0e, 0x09, 0x5e, 0xb8, 0xde, 0x73, 0x66, 0x24, 0xb3, 0xe9, 0xcf, 0xa7, 0x30, 0xd4, 0x3a, - 0x97, 0xc1, 0xa1, 0x30, 0xba, 0x0a, 0x75, 0xe2, 0x79, 0xae, 0xc7, 0x4c, 0x67, 0x36, 0xf5, 0x51, - 0x92, 0xf8, 0x6b, 0x15, 0xab, 0x54, 0x0a, 0x73, 0x61, 0x74, 0x15, 0x5e, 0xf5, 0xb9, 0xb5, 0xf0, - 0xb5, 0xa3, 0x2f, 0xde, 0x4f, 0x8b, 0x51, 0x25, 0x3b, 0x71, 0xfe, 0xb3, 0xe1, 0x44, 0x2a, 0x19, - 0x58, 0x49, 0xb6, 0xbc, 0x32, 0x6a, 0x43, 0x9d, 0x65, 0xd4, 0xa9, 0xc8, 0xe6, 0x59, 0x9d, 0xbf, - 0x02, 0x4d, 0x51, 0x74, 0x1a, 0xbf, 0xc8, 0xcb, 0xd8, 0x29, 0xa1, 0x69, 0x68, 0x6d, 0x12, 0x7b, - 0x7b, 0xcd, 0xf5, 0x83, 0x4e, 0x19, 0xcd, 0x40, 0x9b, 0xe9, 0xfc, 0x63, 0xc7, 0x3e, 0xe8, 0x54, - 0xe6, 0x3f, 0x80, 0x76, 0x54, 0x72, 0xd4, 0x82, 0xda, 0xfa, 0x9e, 0x6d, 0x77, 0x4a, 0x6c, 0xa9, - 0x19, 0xb8, 0x5e, 0xe8, 0x68, 0x5e, 0x7d, 0x49, 0xe7, 0x8d, 0x4e, 0x39, 0xcf, 0xba, 0x2b, 0xa8, - 0x03, 0xd3, 0x22, 0x73, 0x5e, 0xb6, 0xaa, 0xfe, 0x0f, 0x65, 0x68, 0x47, 0x9f, 0xdb, 0xa0, 0xeb, - 0xbc, 0xb0, 0x2f, 0xf3, 0xed, 0x7d, 0x21, 0xd1, 0xab, 0xf9, 0x5f, 0xef, 0x48, 0xf4, 0xec, 0x19, - 0x98, 0x15, 0x43, 0x68, 0xd8, 0xc8, 0x7c, 0x14, 0x4c, 0xc4, 0xce, 0xdf, 0x8c, 0x5a, 0xb7, 0xc3, - 0x4c, 0x69, 0xd9, 0x75, 0x1c, 0xd2, 0x0f, 0x58, 0x1b, 0x1f, 0x82, 0xa9, 0x75, 0x37, 0xd8, 0x70, - 0x7d, 0x9f, 0xd6, 0x8c, 0xb7, 0x54, 0x9c, 0x5e, 0x99, 0xff, 0x06, 0xcc, 0x60, 0xe2, 0x0f, 0x5d, - 0xc7, 0x27, 0x3f, 0xa9, 0xcf, 0x76, 0xe7, 0x7e, 0x80, 0x7b, 0xfe, 0x3b, 0x55, 0xa8, 0xb3, 0xb5, - 0x97, 0xfe, 0x47, 0xd5, 0x68, 0x95, 0x98, 0x71, 0x33, 0x2f, 0xbe, 0x3f, 0x23, 0xdb, 0x84, 0xb2, - 0x6a, 0x93, 0x0f, 0x61, 0x2e, 0xcb, 0xf7, 0x66, 0x64, 0x7b, 0x50, 0x11, 0xca, 0x7d, 0x99, 0xcf, - 0x41, 0x6b, 0xe8, 0xb9, 0x03, 0x8f, 0x2e, 0x0f, 0x6b, 0x89, 0x8f, 0xac, 0xa8, 0xb0, 0x0d, 0x21, - 0x86, 0x23, 0x80, 0xbe, 0x0e, 0xad, 0x30, 0x36, 0xe7, 0x33, 0x02, 0x08, 0x6a, 0xa6, 0x2b, 0xa6, - 0xb8, 0x2a, 0x66, 0xff, 0x69, 0xbb, 0x88, 0x16, 0x0c, 0xb7, 0x76, 0x22, 0x38, 0xff, 0x65, 0x71, - 0xae, 0x39, 0x03, 0xed, 0x15, 0xcf, 0x1d, 0xb2, 0xf7, 0xe2, 0x9d, 0x12, 0xb5, 0x9d, 0xde, 0xee, - 0xd0, 0xf5, 0xa8, 0xc2, 0x03, 0x34, 0x56, 0x5f, 0xb2, 0xff, 0x15, 0x66, 0x0a, 0xc6, 0x3e, 0xa1, - 0x62, 0x9d, 0x2a, 0x42, 0x30, 0x8b, 0x09, 0x3b, 0xcb, 0x11, 0x0b, 0x8b, 0x4e, 0x8d, 0x12, 0x3d, - 0xb2, 0x06, 0x7c, 0xb3, 0xd4, 0xa9, 0xcf, 0x2f, 0x86, 0xf7, 0x57, 0xa8, 0x69, 0xf0, 0xcd, 0xd9, - 0x14, 0x34, 0xf1, 0x1e, 0x5b, 0xdd, 0x74, 0xca, 0x34, 0x9a, 0x2e, 0x99, 0x39, 0xf5, 0xb2, 0xe1, - 0xf4, 0x89, 0xcd, 0x66, 0xc4, 0xc8, 0x46, 0x6b, 0x4b, 0x73, 0x7f, 0xfd, 0xd1, 0xf1, 0xf2, 0x77, - 0x3f, 0x3a, 0x5e, 0xfe, 0xfe, 0x47, 0xc7, 0xcb, 0xbf, 0xfe, 0x83, 0xe3, 0xa5, 0xef, 0xfe, 0xe0, - 0x78, 0xe9, 0x9f, 0x7f, 0x70, 0xbc, 0xf4, 0x61, 0x65, 0xb8, 0xb5, 0xd5, 0x60, 0x17, 0x0f, 0xae, - 0xfc, 0x57, 0x00, 0x00, 0x00, 0xff, 0xff, 0xd4, 0xa1, 0x21, 0xc1, 0x74, 0x5e, 0x00, 0x00, + 0x18, 0x86, 0x0d, 0x1f, 0xac, 0x93, 0x61, 0xc0, 0x30, 0xe0, 0x15, 0x96, 0x6f, 0xbe, 0x49, 0x18, + 0x5d, 0x7c, 0xf1, 0x41, 0x16, 0x20, 0xf8, 0x64, 0x18, 0xb1, 0x64, 0x66, 0x44, 0x2e, 0x95, 0x55, + 0x9a, 0x91, 0x17, 0x78, 0x4e, 0x55, 0x11, 0xf1, 0xff, 0x8b, 0xe5, 0xff, 0x1f, 0xf1, 0xe3, 0x47, + 0x44, 0xc2, 0xd1, 0xe1, 0xd6, 0xc5, 0xa1, 0xe7, 0x06, 0xae, 0x7f, 0x91, 0xec, 0x13, 0x27, 0xf0, + 0xbb, 0x2c, 0x85, 0x9a, 0x86, 0x73, 0x10, 0x1c, 0x0c, 0x89, 0x7e, 0x6a, 0xf8, 0x7c, 0x70, 0xd1, + 0xb6, 0xb6, 0x2e, 0x0e, 0xb7, 0x2e, 0xee, 0xba, 0x26, 0xb1, 0x43, 0x72, 0x96, 0x10, 0xe4, 0xfa, + 0xdc, 0xc0, 0x75, 0x07, 0x36, 0xe1, 0x65, 0x5b, 0x7b, 0xdb, 0x17, 0xfd, 0xc0, 0xdb, 0xeb, 0x07, + 0xbc, 0x74, 0xfe, 0x9f, 0xfe, 0xbc, 0x0c, 0xf5, 0x55, 0x0a, 0x8f, 0x2e, 0x43, 0x6b, 0x97, 0xf8, + 0xbe, 0x31, 0x20, 0xbe, 0x56, 0x3e, 0x51, 0x3d, 0x37, 0x75, 0xf9, 0x68, 0x57, 0x54, 0xd5, 0x65, + 0x14, 0xdd, 0x47, 0xbc, 0x18, 0x47, 0x74, 0x68, 0x0e, 0xda, 0x7d, 0xd7, 0x09, 0xc8, 0xcb, 0xa0, + 0x67, 0x6a, 0x95, 0x13, 0xe5, 0x73, 0x6d, 0x1c, 0x67, 0xa0, 0xab, 0xd0, 0xb6, 0x1c, 0x2b, 0xb0, + 0x8c, 0xc0, 0xf5, 0xb4, 0xea, 0x89, 0xb2, 0x02, 0xc9, 0x1a, 0xd9, 0x5d, 0xec, 0xf7, 0xdd, 0x3d, + 0x27, 0xc0, 0x31, 0x21, 0xd2, 0xa0, 0x19, 0x78, 0x46, 0x9f, 0xf4, 0x4c, 0xad, 0xc6, 0x10, 0xc3, + 0xa4, 0xfe, 0xa3, 0x0b, 0xd0, 0x14, 0x6d, 0x40, 0x77, 0x60, 0xca, 0xe0, 0xbc, 0x9b, 0x3b, 0xee, + 0x0b, 0xad, 0xcc, 0xd0, 0x8f, 0x25, 0x1a, 0x2c, 0xd0, 0xbb, 0x94, 0x64, 0xad, 0x84, 0x65, 0x0e, + 0xd4, 0x83, 0x59, 0x91, 0x5c, 0x21, 0x81, 0x61, 0xd9, 0xbe, 0xf6, 0xb7, 0x1c, 0xe4, 0x78, 0x0e, + 0x88, 0x20, 0x5b, 0x2b, 0xe1, 0x04, 0x23, 0xfa, 0x02, 0xbc, 0x22, 0x72, 0x96, 0x5d, 0x67, 0xdb, + 0x1a, 0x3c, 0x1d, 0x9a, 0x46, 0x40, 0xb4, 0xbf, 0xe3, 0x78, 0xa7, 0x72, 0xf0, 0x38, 0x6d, 0x97, + 0x13, 0xaf, 0x95, 0x70, 0x16, 0x06, 0xba, 0x07, 0x33, 0x22, 0x5b, 0x80, 0xfe, 0x3d, 0x07, 0x7d, + 0x23, 0x07, 0x34, 0x42, 0x53, 0xd9, 0xd0, 0x17, 0xe1, 0x88, 0xc8, 0x78, 0x68, 0x39, 0xcf, 0x97, + 0x77, 0x0c, 0xdb, 0x26, 0xce, 0x80, 0x68, 0xff, 0x30, 0xba, 0x8d, 0x0a, 0xf1, 0x5a, 0x09, 0x67, + 0x82, 0xa0, 0xc7, 0xd0, 0x71, 0xb7, 0xbe, 0x4a, 0xfa, 0xe1, 0x80, 0x6c, 0x92, 0x40, 0xeb, 0x30, + 0xdc, 0xb7, 0x12, 0xb8, 0x8f, 0x19, 0x59, 0x38, 0x94, 0xdd, 0x4d, 0x12, 0xac, 0x95, 0x70, 0x8a, + 0x19, 0x3d, 0x05, 0xa4, 0xe4, 0x2d, 0xee, 0x12, 0xc7, 0xd4, 0x2e, 0x33, 0xc8, 0x93, 0xa3, 0x21, + 0x19, 0xe9, 0x5a, 0x09, 0x67, 0x00, 0xa4, 0x60, 0x9f, 0x3a, 0x3e, 0x09, 0xb4, 0x2b, 0xe3, 0xc0, + 0x32, 0xd2, 0x14, 0x2c, 0xcb, 0xa5, 0x63, 0xcb, 0x73, 0x31, 0xb1, 0x8d, 0xc0, 0x72, 0x1d, 0xd1, + 0xde, 0xab, 0x0c, 0xf8, 0x74, 0x36, 0x70, 0x44, 0x1b, 0xb5, 0x38, 0x13, 0x04, 0x7d, 0x19, 0x5e, + 0x4d, 0xe4, 0x63, 0xb2, 0xeb, 0xee, 0x13, 0xed, 0x1a, 0x43, 0x3f, 0x53, 0x84, 0xce, 0xa9, 0xd7, + 0x4a, 0x38, 0x1b, 0x06, 0x2d, 0xc1, 0x74, 0x58, 0xc0, 0x60, 0xaf, 0x33, 0xd8, 0xb9, 0x3c, 0x58, + 0x01, 0xa6, 0xf0, 0x50, 0x5b, 0xe4, 0xe9, 0x65, 0xdb, 0xf5, 0x89, 0xb6, 0x98, 0x69, 0x8b, 0x02, + 0x82, 0x91, 0x50, 0x5b, 0x94, 0x38, 0xe4, 0x4e, 0xfa, 0x81, 0x67, 0xf5, 0x59, 0x03, 0xa9, 0x16, + 0x2d, 0x8c, 0xee, 0x64, 0x4c, 0x2c, 0x54, 0x29, 0x1b, 0x06, 0x61, 0x38, 0xe4, 0xef, 0x6d, 0xf9, + 0x7d, 0xcf, 0x1a, 0xd2, 0xbc, 0x45, 0xd3, 0xd4, 0x6e, 0x8d, 0x42, 0xde, 0x94, 0x88, 0xbb, 0x8b, + 0x26, 0x95, 0x4e, 0x12, 0x00, 0x7d, 0x11, 0x90, 0x9c, 0x25, 0x86, 0xef, 0x3d, 0x06, 0xfb, 0x99, + 0x31, 0x60, 0xa3, 0xb1, 0xcc, 0x80, 0x41, 0x06, 0x1c, 0x91, 0x73, 0x37, 0x5c, 0xdf, 0xa2, 0xbf, + 0xda, 0x6d, 0x06, 0xff, 0xce, 0x18, 0xf0, 0x21, 0x0b, 0x55, 0xac, 0x2c, 0xa8, 0x64, 0x15, 0xcb, + 0xd4, 0xac, 0x89, 0xe7, 0x6b, 0x77, 0xc6, 0xae, 0x22, 0x64, 0x49, 0x56, 0x11, 0xe6, 0x27, 0x87, + 0xe8, 0x7d, 0xcf, 0xdd, 0x1b, 0xfa, 0xda, 0xdd, 0xb1, 0x87, 0x88, 0x33, 0x24, 0x87, 0x88, 0xe7, + 0xa2, 0xeb, 0xd0, 0xda, 0xb2, 0xdd, 0xfe, 0x73, 0x2a, 0xcc, 0x0a, 0x83, 0xd4, 0x12, 0x90, 0x4b, + 0xb4, 0x58, 0x88, 0x2f, 0xa2, 0xa5, 0xca, 0xca, 0xfe, 0xaf, 0x10, 0x9b, 0x04, 0x44, 0x2c, 0x4b, + 0xc7, 0x32, 0x59, 0x39, 0x09, 0x55, 0x56, 0x89, 0x03, 0xad, 0xc0, 0xd4, 0xb6, 0x65, 0x13, 0xff, + 0xe9, 0xd0, 0x76, 0x0d, 0xbe, 0x46, 0x4d, 0x5d, 0x3e, 0x91, 0x09, 0x70, 0x2f, 0xa6, 0xa3, 0x28, + 0x12, 0x1b, 0xba, 0x0d, 0xed, 0x5d, 0xc3, 0x7b, 0xee, 0xf7, 0x9c, 0x6d, 0x57, 0xab, 0x67, 0x2e, + 0x3c, 0x1c, 0xe3, 0x51, 0x48, 0xb5, 0x56, 0xc2, 0x31, 0x0b, 0x5d, 0xbe, 0x58, 0xa3, 0x36, 0x49, + 0x70, 0xcf, 0x22, 0xb6, 0xe9, 0x6b, 0x0d, 0x06, 0xf2, 0x66, 0x26, 0xc8, 0x26, 0x09, 0xba, 0x9c, + 0x8c, 0x2e, 0x5f, 0x2a, 0x23, 0xfa, 0x00, 0x5e, 0x09, 0x73, 0x96, 0x77, 0x2c, 0xdb, 0xf4, 0x88, + 0xd3, 0x33, 0x7d, 0xad, 0x99, 0xb9, 0x32, 0xc4, 0x78, 0x12, 0x2d, 0x5d, 0xbd, 0x32, 0x20, 0xe8, + 0xcc, 0x18, 0x66, 0xcb, 0x26, 0xa9, 0xb5, 0x32, 0x67, 0xc6, 0x18, 0x5a, 0x26, 0xa6, 0xda, 0x95, + 0x05, 0x82, 0x4c, 0x78, 0x2d, 0xcc, 0x5f, 0x32, 0xfa, 0xcf, 0x07, 0x9e, 0xbb, 0xe7, 0x98, 0xcb, + 0xae, 0xed, 0x7a, 0x5a, 0x9b, 0xe1, 0x9f, 0xcb, 0xc5, 0x4f, 0xd0, 0xaf, 0x95, 0x70, 0x1e, 0x14, + 0x5a, 0x86, 0xe9, 0xb0, 0xe8, 0x09, 0x79, 0x19, 0x68, 0x90, 0xb9, 0xfc, 0xc6, 0xd0, 0x94, 0x88, + 0x4e, 0x90, 0x32, 0x93, 0x0c, 0x42, 0x55, 0x42, 0x9b, 0x2a, 0x00, 0xa1, 0x44, 0x32, 0x08, 0x4d, + 0xcb, 0x20, 0x74, 0xf9, 0xd5, 0x66, 0x0a, 0x40, 0x28, 0x91, 0x0c, 0x42, 0xd3, 0x74, 0xa9, 0x8e, + 0x7a, 0xea, 0xba, 0xcf, 0xa9, 0x3e, 0x69, 0xb3, 0x99, 0x4b, 0xb5, 0x34, 0x5a, 0x82, 0x90, 0x2e, + 0xd5, 0x49, 0x66, 0xea, 0xa0, 0x84, 0x79, 0x8b, 0xb6, 0x35, 0x70, 0xb4, 0x43, 0x23, 0x74, 0x99, + 0xa2, 0x31, 0x2a, 0xea, 0xa0, 0x28, 0x6c, 0xe8, 0xae, 0x30, 0xcb, 0x4d, 0x12, 0xac, 0x58, 0xfb, + 0xda, 0xe1, 0xcc, 0x65, 0x28, 0x46, 0x59, 0xb1, 0xf6, 0x23, 0xbb, 0xe4, 0x2c, 0x72, 0xd7, 0xc2, + 0x45, 0x4e, 0x7b, 0xb5, 0xa0, 0x6b, 0x21, 0xa1, 0xdc, 0xb5, 0x30, 0x4f, 0xee, 0xda, 0x43, 0x23, + 0x20, 0x2f, 0xb5, 0xd7, 0x0b, 0xba, 0xc6, 0xa8, 0xe4, 0xae, 0xb1, 0x0c, 0xba, 0xba, 0x85, 0x19, + 0xcf, 0x88, 0x17, 0x58, 0x7d, 0xc3, 0xe6, 0x43, 0x75, 0x2a, 0x73, 0x0d, 0x8a, 0xf1, 0x14, 0x6a, + 0xba, 0xba, 0x65, 0xc2, 0xc8, 0x1d, 0x7f, 0x62, 0x6c, 0xd9, 0x04, 0xbb, 0x2f, 0xb4, 0xd3, 0x05, + 0x1d, 0x0f, 0x09, 0xe5, 0x8e, 0x87, 0x79, 0xf2, 0xdc, 0xf2, 0x79, 0xcb, 0x1c, 0x90, 0x40, 0x3b, + 0x57, 0x30, 0xb7, 0x70, 0x32, 0x79, 0x6e, 0xe1, 0x39, 0xd1, 0x0c, 0xb0, 0x62, 0x04, 0xc6, 0xbe, + 0x45, 0x5e, 0x3c, 0xb3, 0xc8, 0x0b, 0xba, 0xb0, 0xbf, 0x32, 0x62, 0x06, 0x08, 0x69, 0xbb, 0x82, + 0x38, 0x9a, 0x01, 0x12, 0x20, 0xd1, 0x0c, 0x20, 0xe7, 0x8b, 0x69, 0xfd, 0xc8, 0x88, 0x19, 0x40, + 0xc1, 0x8f, 0xe6, 0xf8, 0x3c, 0x28, 0x64, 0xc0, 0xd1, 0x54, 0xd1, 0x63, 0xcf, 0x24, 0x9e, 0xf6, + 0x06, 0xab, 0xe4, 0x6c, 0x71, 0x25, 0x8c, 0x7c, 0xad, 0x84, 0x73, 0x80, 0x52, 0x55, 0x6c, 0xba, + 0x7b, 0x5e, 0x9f, 0xd0, 0x71, 0x3a, 0x39, 0x4e, 0x15, 0x11, 0x79, 0xaa, 0x8a, 0xa8, 0x04, 0xed, + 0xc3, 0x1b, 0x51, 0x09, 0xad, 0x98, 0xad, 0xa2, 0xac, 0x76, 0xb1, 0xb1, 0x38, 0xc3, 0x6a, 0xea, + 0x8e, 0xae, 0x29, 0xc9, 0xb5, 0x56, 0xc2, 0xa3, 0x61, 0xd1, 0x01, 0x1c, 0x57, 0x08, 0xf8, 0x3a, + 0x2f, 0x57, 0x7c, 0x96, 0x55, 0x7c, 0x71, 0x74, 0xc5, 0x29, 0xb6, 0xb5, 0x12, 0x2e, 0x00, 0x46, + 0x43, 0x38, 0xa6, 0x0c, 0x46, 0x68, 0xd8, 0x42, 0x45, 0x7e, 0x96, 0xd5, 0x7b, 0x7e, 0x74, 0xbd, + 0x2a, 0xcf, 0x5a, 0x09, 0x8f, 0x82, 0x44, 0x03, 0xd0, 0x32, 0x8b, 0xa9, 0x24, 0xbf, 0x91, 0xe9, + 0xf6, 0xe4, 0x54, 0xc7, 0x65, 0x99, 0x0b, 0x96, 0xa9, 0xf9, 0x62, 0x38, 0x7f, 0x6e, 0x5c, 0xcd, + 0x8f, 0xc6, 0x31, 0x0f, 0x4a, 0x91, 0x1d, 0x2d, 0x7a, 0x62, 0x78, 0x03, 0x12, 0xf0, 0x81, 0xee, + 0x99, 0xb4, 0x53, 0xdf, 0x1c, 0x47, 0x76, 0x29, 0x36, 0x45, 0x76, 0x99, 0xc0, 0xc8, 0x87, 0x39, + 0x85, 0xa2, 0xe7, 0x2f, 0xbb, 0xb6, 0x4d, 0xfa, 0xe1, 0x68, 0xfe, 0x3c, 0xab, 0xf8, 0xc2, 0xe8, + 0x8a, 0x13, 0x4c, 0x6b, 0x25, 0x3c, 0x12, 0x34, 0xd5, 0xdf, 0xc7, 0xb6, 0x99, 0xd0, 0x19, 0x6d, + 0x2c, 0x5d, 0x4d, 0xb2, 0xa5, 0xfa, 0x9b, 0xa2, 0x48, 0xe9, 0xaa, 0x44, 0x41, 0xbb, 0xfb, 0xda, + 0x38, 0xba, 0xaa, 0xf2, 0xa4, 0x74, 0x55, 0x2d, 0xa6, 0xab, 0xdb, 0x9e, 0x4f, 0x3c, 0x86, 0x71, + 0xdf, 0xb5, 0x1c, 0xed, 0xcd, 0xcc, 0xd5, 0xed, 0xa9, 0x4f, 0x3c, 0x51, 0x11, 0xa5, 0xa2, 0xab, + 0x9b, 0xc2, 0xa6, 0xe0, 0x3c, 0x24, 0xdb, 0x81, 0x76, 0xa2, 0x08, 0x87, 0x52, 0x29, 0x38, 0x34, + 0x83, 0xae, 0x14, 0x51, 0xc6, 0x26, 0xa1, 0x52, 0xc1, 0x86, 0x33, 0x20, 0xda, 0x5b, 0x99, 0x2b, + 0x85, 0x04, 0x27, 0x11, 0xd3, 0x95, 0x22, 0x0b, 0x84, 0xee, 0xfc, 0xa3, 0x7c, 0xea, 0x91, 0x71, + 0xe8, 0xf9, 0xcc, 0x9d, 0xbf, 0x04, 0x1d, 0x91, 0xd2, 0x3d, 0x48, 0x1a, 0x00, 0x7d, 0x06, 0x6a, + 0x43, 0xcb, 0x19, 0x68, 0x26, 0x03, 0x7a, 0x25, 0x01, 0xb4, 0x61, 0x39, 0x83, 0xb5, 0x12, 0x66, + 0x24, 0xe8, 0x16, 0xc0, 0xd0, 0x73, 0xfb, 0xc4, 0xf7, 0xd7, 0xc9, 0x0b, 0x8d, 0x30, 0x06, 0x3d, + 0xc9, 0xc0, 0x09, 0xba, 0xeb, 0x84, 0xae, 0xcb, 0x12, 0x3d, 0x5a, 0x85, 0x19, 0x91, 0x12, 0x56, + 0xbe, 0x9d, 0xe9, 0xfc, 0x85, 0x00, 0x71, 0x14, 0x48, 0xe1, 0xa2, 0x7b, 0x1f, 0x91, 0xb1, 0xe2, + 0x3a, 0x44, 0x1b, 0x64, 0xee, 0x7d, 0x42, 0x10, 0x4a, 0x42, 0x7d, 0x2c, 0x89, 0x03, 0x2d, 0xc1, + 0x74, 0xb0, 0xe3, 0x11, 0xc3, 0xdc, 0x0c, 0x8c, 0x60, 0xcf, 0xd7, 0x9c, 0x4c, 0x37, 0x8d, 0x17, + 0x76, 0x9f, 0x30, 0x4a, 0xea, 0x82, 0xca, 0x3c, 0x68, 0x1d, 0x3a, 0x74, 0x23, 0xf4, 0xd0, 0xda, + 0xb5, 0x02, 0x4c, 0x8c, 0xfe, 0x0e, 0x31, 0x35, 0x37, 0x73, 0x13, 0x45, 0xdd, 0xde, 0xae, 0x4c, + 0x47, 0xbd, 0x95, 0x24, 0x2f, 0x5a, 0x83, 0x59, 0x9a, 0xb7, 0x39, 0x34, 0xfa, 0xe4, 0xa9, 0x6f, + 0x0c, 0x88, 0x36, 0xcc, 0xd4, 0x40, 0x86, 0x16, 0x53, 0x51, 0x67, 0x45, 0xe5, 0x0b, 0x91, 0x1e, + 0xba, 0x7d, 0xc3, 0xe6, 0x48, 0x5f, 0xcb, 0x47, 0x8a, 0xa9, 0x42, 0xa4, 0x38, 0x47, 0xe9, 0x23, + 0x1f, 0x7b, 0x53, 0xdb, 0x2f, 0xe8, 0xa3, 0xa0, 0x53, 0xfa, 0x28, 0xf2, 0x28, 0x9e, 0xe3, 0x06, + 0xd6, 0xb6, 0xd5, 0x17, 0xf6, 0xeb, 0x98, 0x9a, 0x97, 0x89, 0xb7, 0x2e, 0x91, 0x75, 0x37, 0x79, + 0x64, 0x29, 0xc5, 0x8b, 0x9e, 0x00, 0x92, 0xf3, 0x84, 0x52, 0xf9, 0x0c, 0x71, 0x7e, 0x14, 0x62, + 0xa4, 0x59, 0x19, 0xfc, 0xb4, 0x95, 0x43, 0xe3, 0x80, 0x6e, 0x6f, 0x97, 0x3c, 0xd7, 0x30, 0xfb, + 0x86, 0x1f, 0x68, 0x41, 0x66, 0x2b, 0x37, 0x38, 0x59, 0x37, 0xa2, 0xa3, 0xad, 0x4c, 0xf2, 0x52, + 0xbc, 0x5d, 0xb2, 0xbb, 0x45, 0x3c, 0x7f, 0xc7, 0x1a, 0x8a, 0x36, 0xee, 0x65, 0xe2, 0x3d, 0x8a, + 0xc8, 0xe2, 0x16, 0xa6, 0x78, 0xa9, 0x23, 0xee, 0x53, 0x69, 0x6f, 0x1e, 0x38, 0x7d, 0xae, 0x8c, + 0x02, 0xf4, 0x45, 0xa6, 0x23, 0xce, 0x34, 0xa3, 0x1b, 0x13, 0xc7, 0xd0, 0xd9, 0x30, 0xe8, 0x01, + 0x1c, 0x1a, 0x5e, 0x1e, 0x2a, 0xc8, 0x2f, 0x33, 0x1d, 0xe7, 0x8d, 0xcb, 0x1b, 0x49, 0xc8, 0x24, + 0xe7, 0x52, 0x13, 0xea, 0xfb, 0x86, 0xbd, 0x47, 0xf4, 0x3f, 0xad, 0x43, 0x53, 0xc4, 0x63, 0xf5, + 0x75, 0xa8, 0xb1, 0xe0, 0xf5, 0x11, 0xa8, 0x5b, 0x8e, 0x49, 0x5e, 0xb2, 0xb8, 0x77, 0x1d, 0xf3, + 0x04, 0xba, 0x04, 0x4d, 0x11, 0x9f, 0x15, 0x11, 0x91, 0xbc, 0x68, 0x7b, 0x48, 0xa6, 0x7f, 0x08, + 0xcd, 0x30, 0x88, 0x3d, 0x07, 0xed, 0xa1, 0xe7, 0x52, 0xcd, 0xeb, 0x99, 0x0c, 0xb6, 0x8d, 0xe3, + 0x0c, 0xf4, 0x2e, 0x34, 0x4d, 0x11, 0x26, 0xe7, 0xd0, 0xaf, 0x75, 0xf9, 0xb9, 0x42, 0x37, 0x3c, + 0x57, 0xe8, 0x6e, 0xb2, 0x73, 0x05, 0x1c, 0xd2, 0xe9, 0xdf, 0x2a, 0x43, 0x83, 0xc7, 0xb2, 0xf5, + 0x7d, 0x68, 0x88, 0x21, 0xba, 0x06, 0x8d, 0x3e, 0xcb, 0xd3, 0x92, 0x71, 0x6c, 0xa5, 0x85, 0x22, + 0x38, 0x8e, 0x05, 0x31, 0x65, 0xf3, 0xf9, 0x8c, 0x53, 0x19, 0xc9, 0xc6, 0x47, 0x10, 0x0b, 0xe2, + 0xff, 0xb1, 0x7a, 0xff, 0xb3, 0x0c, 0x33, 0x6a, 0x88, 0x7c, 0x0e, 0xda, 0xfd, 0x28, 0xe8, 0x2e, + 0x46, 0xb7, 0x2f, 0x05, 0xd0, 0xa1, 0x6f, 0x5b, 0xc4, 0x09, 0x58, 0x34, 0xa8, 0x92, 0xe9, 0x64, + 0x64, 0x86, 0xe4, 0xbb, 0xcb, 0x11, 0x1b, 0x96, 0x20, 0xf4, 0x6f, 0x02, 0xc4, 0x25, 0xe8, 0x44, + 0x34, 0xed, 0xaf, 0x1b, 0xbb, 0x61, 0xf5, 0x72, 0x96, 0x44, 0xb1, 0x61, 0x04, 0x3b, 0xe2, 0x24, + 0x47, 0xce, 0x42, 0xe7, 0xe1, 0xb0, 0x6f, 0x0d, 0x1c, 0x23, 0xd8, 0xf3, 0xc8, 0x33, 0xe2, 0x59, + 0xdb, 0x16, 0x31, 0x59, 0xf0, 0xac, 0x85, 0xd3, 0x05, 0xfa, 0xaf, 0xb6, 0xa1, 0xc1, 0xdd, 0x39, + 0xfd, 0xc7, 0x95, 0x48, 0xc7, 0xf4, 0xbf, 0x2a, 0x43, 0x9d, 0x87, 0xb5, 0x67, 0xa1, 0x62, 0x85, + 0x6a, 0x56, 0xb1, 0x4c, 0x74, 0x4f, 0xd6, 0xaf, 0x6a, 0x86, 0xaf, 0x93, 0x15, 0xe6, 0xef, 0x3e, + 0x20, 0x07, 0xcf, 0xa8, 0x8d, 0x44, 0x4a, 0x87, 0x8e, 0x42, 0xc3, 0xdf, 0xdb, 0xea, 0x99, 0xbe, + 0x56, 0x3d, 0x51, 0x3d, 0xd7, 0xc6, 0x22, 0xa5, 0xdf, 0x87, 0x56, 0x48, 0x8c, 0x3a, 0x50, 0x7d, + 0x4e, 0x0e, 0x44, 0xe5, 0xf4, 0x2f, 0x3a, 0x2f, 0x6c, 0x2d, 0x32, 0x9b, 0xa4, 0x6e, 0xf3, 0x5a, + 0x84, 0x41, 0x7e, 0x05, 0xaa, 0xd4, 0x81, 0x4a, 0x76, 0x61, 0x72, 0x13, 0xc9, 0x6d, 0xed, 0x32, + 0xd4, 0xf9, 0xd1, 0x42, 0xb2, 0x0e, 0x04, 0xb5, 0xe7, 0xe4, 0x80, 0x8f, 0x51, 0x1b, 0xb3, 0xff, + 0xb9, 0x20, 0x7f, 0x59, 0x85, 0x69, 0x39, 0x9c, 0xaa, 0xaf, 0x42, 0x75, 0xd1, 0x4c, 0x0f, 0xbd, + 0x06, 0x4d, 0x63, 0x3b, 0x20, 0x5e, 0x74, 0x82, 0x17, 0x26, 0xe9, 0x2c, 0xc3, 0xb0, 0x98, 0x9c, + 0xdb, 0x98, 0x27, 0xf4, 0x2e, 0x34, 0x44, 0x94, 0x3a, 0x89, 0x14, 0xd1, 0x57, 0x64, 0xfa, 0xfb, + 0xd0, 0x8a, 0x82, 0xce, 0x1f, 0xb7, 0x6e, 0x0f, 0x5a, 0x51, 0x74, 0xf9, 0x08, 0xd4, 0x03, 0x37, + 0x30, 0x6c, 0x06, 0x57, 0xc5, 0x3c, 0x41, 0x0d, 0xcd, 0x21, 0x2f, 0x83, 0xe5, 0x68, 0x16, 0xac, + 0xe2, 0x38, 0x83, 0x4f, 0x72, 0x64, 0x9f, 0x97, 0x56, 0x79, 0x69, 0x94, 0x11, 0xd7, 0x59, 0x93, + 0xeb, 0x3c, 0x80, 0x86, 0x08, 0x39, 0x47, 0xe5, 0x65, 0xa9, 0x1c, 0x2d, 0x42, 0x7d, 0x40, 0xcb, + 0x85, 0xd4, 0xdf, 0x49, 0x4c, 0x11, 0xdc, 0x93, 0x5c, 0x76, 0x9d, 0x80, 0xaa, 0xb1, 0xba, 0x93, + 0xc6, 0x9c, 0x93, 0x8a, 0xd0, 0xe3, 0xe7, 0x07, 0xdc, 0xa2, 0x44, 0x4a, 0xff, 0x83, 0x32, 0xb4, + 0xa3, 0x03, 0x1b, 0xfd, 0xc3, 0x3c, 0xe3, 0x59, 0x84, 0x19, 0x4f, 0x50, 0xd1, 0xd9, 0x21, 0x34, + 0xa1, 0x63, 0x89, 0x96, 0x60, 0x89, 0x06, 0xab, 0x1c, 0xfa, 0xad, 0x5c, 0xa1, 0xce, 0xc3, 0x74, + 0x48, 0xfa, 0x20, 0x56, 0x3d, 0x25, 0x4f, 0xd7, 0x23, 0xee, 0x0e, 0x54, 0x2d, 0x93, 0x9f, 0x1f, + 0xb7, 0x31, 0xfd, 0xab, 0x6f, 0xc3, 0xb4, 0x1c, 0xb6, 0xd5, 0x9f, 0x65, 0x5b, 0xcf, 0x1d, 0x5a, + 0x8d, 0x14, 0x22, 0xae, 0x24, 0x7c, 0xd3, 0xb0, 0x0b, 0x31, 0x09, 0x56, 0x18, 0xf4, 0xd7, 0xa0, + 0xce, 0x0f, 0x93, 0x12, 0xc8, 0xfa, 0xef, 0xf4, 0xa1, 0xce, 0x84, 0xa0, 0x5f, 0xe1, 0x06, 0x70, + 0x1e, 0x1a, 0x6c, 0x63, 0x14, 0x1e, 0x73, 0x1f, 0xc9, 0x92, 0x18, 0x16, 0x34, 0xfa, 0x32, 0x4c, + 0x49, 0x61, 0x7c, 0xaa, 0xb1, 0xac, 0x20, 0xd2, 0x82, 0x30, 0x89, 0x74, 0x68, 0xd1, 0xc5, 0x52, + 0x4c, 0xa0, 0xb4, 0xff, 0x51, 0x5a, 0x3f, 0x05, 0x0d, 0xb1, 0xd1, 0xd3, 0xc5, 0xb1, 0x45, 0x2f, + 0x1a, 0xa5, 0x28, 0xad, 0x7f, 0x09, 0xda, 0x51, 0xb4, 0x1f, 0x3d, 0x86, 0x69, 0x11, 0xed, 0xe7, + 0x9b, 0x15, 0x4a, 0x3c, 0x5b, 0xa0, 0x5d, 0x74, 0x67, 0xc2, 0x0e, 0x0c, 0xba, 0x4f, 0x0e, 0x86, + 0x04, 0x2b, 0x00, 0xfa, 0x2f, 0x9f, 0x63, 0x23, 0xaf, 0x0f, 0xa1, 0x15, 0x85, 0x38, 0x93, 0x52, + 0x58, 0xe0, 0x53, 0x63, 0xa5, 0x30, 0x3e, 0xcf, 0xf9, 0xe9, 0x04, 0xcc, 0x66, 0x50, 0xfd, 0x18, + 0x54, 0x1f, 0x90, 0x03, 0x6a, 0x21, 0x7c, 0x22, 0x15, 0x16, 0xc2, 0x27, 0xcc, 0x1e, 0x34, 0xc4, + 0x51, 0x43, 0xb2, 0xbe, 0x8b, 0xd0, 0xd8, 0xe6, 0xa7, 0x17, 0x05, 0x53, 0xa6, 0x20, 0xd3, 0xef, + 0xc0, 0x94, 0x7c, 0xc0, 0x90, 0xc4, 0x3b, 0x01, 0x53, 0x7d, 0xe9, 0x08, 0x83, 0x8b, 0x41, 0xce, + 0xd2, 0x89, 0xaa, 0x8e, 0x29, 0x84, 0xd5, 0x4c, 0x3d, 0x7c, 0x2b, 0x73, 0xd8, 0x47, 0x68, 0xe3, + 0x03, 0x38, 0x94, 0x3c, 0x49, 0x48, 0xd6, 0x74, 0x0e, 0x0e, 0x6d, 0x25, 0xce, 0x2d, 0xf8, 0x1c, + 0x98, 0xcc, 0xd6, 0x7b, 0x50, 0xe7, 0x91, 0xde, 0x24, 0xc4, 0x25, 0xa8, 0x1b, 0x2c, 0x92, 0x4c, + 0x19, 0x67, 0xa5, 0xfd, 0xa4, 0xdc, 0x4a, 0xc6, 0x8a, 0x39, 0xa1, 0x6e, 0xc1, 0x8c, 0x1a, 0x3c, + 0x4e, 0x42, 0xae, 0xc1, 0xcc, 0xbe, 0x12, 0xa4, 0xe6, 0xd0, 0xf3, 0x99, 0xd0, 0x0a, 0x14, 0x56, + 0x19, 0xf5, 0x5f, 0x68, 0x40, 0x8d, 0x9d, 0x7e, 0x24, 0xab, 0xb8, 0x0e, 0xb5, 0x80, 0xbc, 0x0c, + 0x7d, 0xd4, 0xf9, 0x91, 0x47, 0x29, 0x7c, 0x0b, 0xce, 0xe8, 0xd1, 0x67, 0xa1, 0xee, 0x07, 0x07, + 0x76, 0x78, 0x66, 0x77, 0x72, 0x34, 0xe3, 0x26, 0x25, 0xc5, 0x9c, 0x83, 0xb2, 0x32, 0x5b, 0x10, + 0xa7, 0x75, 0x05, 0xac, 0xcc, 0x08, 0x31, 0xe7, 0x40, 0x77, 0xa0, 0xd9, 0xdf, 0x21, 0xfd, 0xe7, + 0xc4, 0x14, 0xc7, 0x74, 0xa7, 0x47, 0x33, 0x2f, 0x73, 0x62, 0x1c, 0x72, 0xd1, 0xba, 0xfb, 0x4c, + 0xba, 0x8d, 0x71, 0xea, 0x66, 0x12, 0xc7, 0x9c, 0x03, 0xad, 0x42, 0xdb, 0xea, 0xbb, 0xce, 0xea, + 0xae, 0xfb, 0x55, 0x4b, 0x9c, 0xc7, 0x9d, 0x1d, 0xcd, 0xde, 0x0b, 0xc9, 0x71, 0xcc, 0x19, 0xc2, + 0xf4, 0x76, 0xe9, 0x96, 0xb6, 0x35, 0x2e, 0x0c, 0x23, 0xc7, 0x31, 0xa7, 0x3e, 0x27, 0xe4, 0x99, + 0x6d, 0xe4, 0xf7, 0xa0, 0xce, 0x86, 0x1c, 0xbd, 0x27, 0x17, 0xcf, 0x4a, 0x35, 0xe5, 0xce, 0x58, + 0x42, 0x54, 0x11, 0x0e, 0x1b, 0x7f, 0x15, 0x67, 0x6a, 0x1c, 0x1c, 0x21, 0x37, 0x8e, 0xf3, 0x26, + 0x34, 0x85, 0x28, 0xd4, 0x06, 0xb7, 0x42, 0x82, 0x37, 0xa0, 0xce, 0x0d, 0x33, 0xbb, 0x3f, 0x6f, + 0x41, 0x3b, 0x1a, 0xcc, 0xd1, 0x24, 0x6c, 0x74, 0x72, 0x48, 0x7e, 0xa5, 0x02, 0x75, 0x7e, 0x0a, + 0x94, 0x9e, 0x6a, 0x65, 0x2b, 0x38, 0x39, 0xfa, 0x50, 0x49, 0x36, 0x83, 0x7b, 0x6c, 0xa3, 0x46, + 0x1d, 0xf3, 0xe8, 0x56, 0xd5, 0xb9, 0x02, 0xee, 0x8d, 0x90, 0x1e, 0xc7, 0xac, 0x05, 0xe2, 0x7c, + 0x0c, 0xed, 0x88, 0x0b, 0x2d, 0xa9, 0x22, 0x3d, 0x3f, 0x52, 0x14, 0xc9, 0x2a, 0x05, 0xe0, 0xb7, + 0xcb, 0x50, 0x5d, 0xb1, 0xf6, 0x53, 0xe3, 0x70, 0x23, 0xb4, 0xea, 0xa2, 0xe9, 0x60, 0xc5, 0xda, + 0x57, 0x8c, 0x5a, 0x5f, 0x0d, 0x35, 0xee, 0x96, 0xda, 0xbc, 0x33, 0xa3, 0x3d, 0xb0, 0x18, 0x86, + 0x37, 0xec, 0x37, 0x9a, 0x50, 0x63, 0x07, 0xac, 0x59, 0xf3, 0xd4, 0xc1, 0xb0, 0xb8, 0x61, 0x2c, + 0x84, 0xc3, 0x16, 0x5c, 0x46, 0xcf, 0xe7, 0x29, 0x23, 0x28, 0x9e, 0xa7, 0x78, 0x44, 0x8a, 0x92, + 0x62, 0xce, 0x41, 0xab, 0xdc, 0xb5, 0x76, 0x89, 0x98, 0xa6, 0x0a, 0xaa, 0x7c, 0x64, 0xed, 0x12, + 0xcc, 0xe8, 0x29, 0xdf, 0x8e, 0xe1, 0xef, 0x88, 0x19, 0xaa, 0x80, 0x6f, 0xcd, 0xf0, 0x77, 0x30, + 0xa3, 0xa7, 0x7c, 0x0e, 0xdd, 0x12, 0x36, 0xc6, 0xe1, 0xa3, 0x3b, 0x45, 0xcc, 0xe8, 0x29, 0x9f, + 0x6f, 0x7d, 0x9d, 0x88, 0x39, 0xa9, 0x80, 0x6f, 0xd3, 0xfa, 0x3a, 0xc1, 0x8c, 0x3e, 0x9e, 0xc2, + 0x5b, 0xe3, 0x0d, 0x8d, 0x34, 0x85, 0x3f, 0x81, 0xd9, 0x40, 0x39, 0x26, 0x10, 0xa7, 0xfc, 0xe7, + 0x0b, 0xe4, 0xa2, 0xf0, 0xe0, 0x04, 0x06, 0x35, 0x02, 0xb6, 0x01, 0xce, 0x36, 0x82, 0x37, 0xa0, + 0xfe, 0x79, 0xcb, 0x0c, 0x76, 0xd4, 0xe2, 0xba, 0x32, 0xe5, 0x51, 0xb1, 0x4d, 0x34, 0xe5, 0xc9, + 0x52, 0xe7, 0x38, 0x2b, 0x50, 0xa3, 0xea, 0x33, 0x99, 0x1e, 0xc7, 0x5a, 0xf7, 0xb1, 0x26, 0x60, + 0x79, 0xa0, 0x39, 0xce, 0x1c, 0xd4, 0xa8, 0x86, 0xe4, 0x0c, 0xc9, 0x1c, 0xd4, 0xa8, 0xde, 0xe5, + 0x97, 0x52, 0x69, 0xab, 0xa5, 0xd5, 0xb0, 0xf4, 0x0c, 0xcc, 0xaa, 0xe2, 0xc8, 0x41, 0xf9, 0x8b, + 0x26, 0xd4, 0xd8, 0x6d, 0x85, 0xa4, 0x45, 0xfe, 0x0c, 0xcc, 0x70, 0xf9, 0x2d, 0x09, 0x17, 0xbc, + 0x92, 0x79, 0x59, 0x49, 0xbd, 0x03, 0x21, 0x54, 0x40, 0xb0, 0x60, 0x15, 0x61, 0x7c, 0xa7, 0x82, + 0x41, 0x29, 0x1a, 0x79, 0x2b, 0x72, 0x5e, 0x6b, 0x05, 0x57, 0x65, 0x18, 0x2f, 0x77, 0x81, 0x43, + 0x4f, 0x16, 0x2d, 0x41, 0x8b, 0x2e, 0xad, 0x74, 0xb8, 0x84, 0xd9, 0x9e, 0x19, 0xcd, 0xdf, 0x13, + 0xd4, 0x38, 0xe2, 0xa3, 0x0b, 0x7b, 0xdf, 0xf0, 0x4c, 0xd6, 0x2a, 0x61, 0xc3, 0x67, 0x47, 0x83, + 0x2c, 0x87, 0xe4, 0x38, 0xe6, 0x44, 0x0f, 0x60, 0xca, 0x24, 0x51, 0x9c, 0x40, 0x18, 0xf5, 0x67, + 0x46, 0x03, 0xad, 0xc4, 0x0c, 0x58, 0xe6, 0xa6, 0x6d, 0x0a, 0xf7, 0x86, 0x7e, 0xa1, 0xb3, 0xc1, + 0xa0, 0xe2, 0x2b, 0x89, 0x31, 0xa7, 0x7e, 0x1a, 0x66, 0x14, 0xb9, 0x7d, 0xa2, 0x5e, 0x87, 0x2c, + 0x4b, 0x8e, 0xb3, 0x10, 0x6d, 0x51, 0x2e, 0xa8, 0x6e, 0x47, 0xee, 0x8e, 0x44, 0x30, 0x3e, 0x84, + 0x56, 0x28, 0x18, 0x74, 0x57, 0x6d, 0xc3, 0xdb, 0xc5, 0x6d, 0x88, 0x64, 0x2a, 0xd0, 0xd6, 0xa1, + 0x1d, 0x49, 0x08, 0x2d, 0xaa, 0x70, 0xef, 0x14, 0xc3, 0xc5, 0xd2, 0x15, 0x78, 0x18, 0xa6, 0x24, + 0x41, 0xa1, 0x65, 0x15, 0xf1, 0x42, 0x31, 0xa2, 0x2c, 0xe6, 0xd8, 0xeb, 0x89, 0x24, 0x26, 0x4b, + 0xa5, 0x1a, 0x4b, 0xe5, 0x4f, 0x9a, 0xd0, 0x8a, 0x6e, 0x08, 0x65, 0xec, 0x31, 0xf7, 0x3c, 0xbb, + 0x70, 0x8f, 0x19, 0xf2, 0x77, 0x9f, 0x7a, 0x36, 0xa6, 0x1c, 0x54, 0xc4, 0x81, 0x15, 0x44, 0xa6, + 0x7a, 0xb6, 0x98, 0xf5, 0x09, 0x25, 0xc7, 0x9c, 0x0b, 0x3d, 0x56, 0xb5, 0xbc, 0x36, 0xe2, 0x04, + 0x59, 0x01, 0xc9, 0xd5, 0xf4, 0x1e, 0xb4, 0x2d, 0xea, 0xfa, 0xad, 0xc5, 0x2b, 0xef, 0x3b, 0xc5, + 0x70, 0xbd, 0x90, 0x05, 0xc7, 0xdc, 0xb4, 0x6d, 0xdb, 0xc6, 0x3e, 0xb5, 0x6b, 0x06, 0xd6, 0x18, + 0xb7, 0x6d, 0xf7, 0x62, 0x26, 0x2c, 0x23, 0xa0, 0x9b, 0xc2, 0x77, 0x69, 0x16, 0xcc, 0x2c, 0xf1, + 0x50, 0xc5, 0xfe, 0xcb, 0x07, 0xa9, 0x95, 0x96, 0x9b, 0xf1, 0xa5, 0x31, 0x50, 0x46, 0xae, 0xb6, + 0x54, 0x82, 0xdc, 0x33, 0x6a, 0x8f, 0x2b, 0x41, 0xd9, 0x3b, 0xd2, 0x8f, 0x41, 0xf5, 0xa9, 0x67, + 0xe7, 0xaf, 0xd5, 0x4c, 0xdc, 0x39, 0xc5, 0x27, 0x55, 0x4b, 0xc8, 0x77, 0xe8, 0x23, 0x99, 0xe4, + 0xe2, 0x48, 0x83, 0x9e, 0x43, 0xf4, 0x9e, 0x58, 0xd0, 0xaf, 0xa9, 0xf6, 0xf6, 0x66, 0xc2, 0xde, + 0xa8, 0x85, 0x6d, 0x78, 0x84, 0x5f, 0x92, 0x90, 0x56, 0xf2, 0x71, 0xd7, 0xc9, 0xfb, 0xa1, 0xff, + 0x31, 0xd1, 0x4c, 0x91, 0x1c, 0x5b, 0x8e, 0xf5, 0x4b, 0x65, 0x68, 0x45, 0x17, 0xc0, 0xd2, 0xd1, + 0xf9, 0x96, 0xe5, 0xaf, 0x11, 0xc3, 0x24, 0x9e, 0xb0, 0xdb, 0xb7, 0x0b, 0x6f, 0x96, 0x75, 0x7b, + 0x82, 0x03, 0x47, 0xbc, 0xfa, 0x09, 0x68, 0x85, 0xb9, 0x39, 0x9b, 0xb2, 0xef, 0x57, 0xa0, 0x21, + 0xae, 0x8e, 0x25, 0x1b, 0x71, 0x1b, 0x1a, 0xb6, 0x71, 0xe0, 0xee, 0x85, 0x5b, 0xa6, 0x33, 0x05, + 0xb7, 0xd1, 0xba, 0x0f, 0x19, 0x35, 0x16, 0x5c, 0xe8, 0x73, 0x50, 0xb7, 0xad, 0x5d, 0x2b, 0x10, + 0xd3, 0xc7, 0xe9, 0x42, 0x76, 0x76, 0xc8, 0xcc, 0x79, 0x68, 0xe5, 0xec, 0xc6, 0x48, 0x78, 0xdf, + 0xb7, 0xb0, 0xf2, 0x67, 0x8c, 0x1a, 0x0b, 0x2e, 0xfd, 0x3e, 0x34, 0x78, 0x73, 0x26, 0x5b, 0x24, + 0xd4, 0x9e, 0xc4, 0x9a, 0xce, 0xda, 0x96, 0xe3, 0x95, 0x1e, 0x87, 0x06, 0xaf, 0x3c, 0x47, 0x6b, + 0xbe, 0xf7, 0x3a, 0xdb, 0xef, 0xd8, 0xfa, 0xc3, 0xf8, 0xf0, 0xef, 0xe3, 0x9f, 0x65, 0xe8, 0x4f, + 0xe0, 0xd0, 0x8a, 0x11, 0x18, 0x5b, 0x86, 0x4f, 0x30, 0xe9, 0xbb, 0x9e, 0x99, 0x89, 0xea, 0xf1, + 0x22, 0x11, 0xa1, 0xce, 0x47, 0x15, 0x74, 0x9f, 0x86, 0x0e, 0xff, 0xf7, 0x84, 0x0e, 0xff, 0xac, + 0x96, 0x13, 0xcf, 0x1b, 0x27, 0x92, 0x41, 0x15, 0x2e, 0x15, 0xd0, 0xbb, 0xa9, 0xfa, 0xde, 0xa7, + 0x0a, 0x38, 0x15, 0xe7, 0xfb, 0xa6, 0x1a, 0xd1, 0x2b, 0xe2, 0x55, 0x42, 0x7a, 0x77, 0x93, 0x21, + 0xbd, 0x33, 0x05, 0xdc, 0xa9, 0x98, 0xde, 0x4d, 0x35, 0xa6, 0x57, 0x54, 0xbb, 0x1c, 0xd4, 0xfb, + 0x7f, 0x16, 0x46, 0xfb, 0xad, 0x9c, 0xb0, 0xcf, 0x67, 0xd5, 0xb0, 0xcf, 0x08, 0xad, 0xf9, 0x69, + 0xc5, 0x7d, 0x7e, 0xbb, 0x91, 0x13, 0xf7, 0x59, 0x50, 0xe2, 0x3e, 0x23, 0x5a, 0x96, 0x0c, 0xfc, + 0xdc, 0x54, 0x03, 0x3f, 0xa7, 0x0a, 0x38, 0x95, 0xc8, 0xcf, 0x82, 0x12, 0xf9, 0x29, 0xaa, 0x54, + 0x0a, 0xfd, 0x2c, 0x28, 0xa1, 0x9f, 0x22, 0x46, 0x29, 0xf6, 0xb3, 0xa0, 0xc4, 0x7e, 0x8a, 0x18, + 0xa5, 0xe0, 0xcf, 0x82, 0x12, 0xfc, 0x29, 0x62, 0x94, 0xa2, 0x3f, 0x37, 0xd5, 0xe8, 0x4f, 0xf1, + 0xf8, 0x48, 0x42, 0xff, 0x34, 0x50, 0xf3, 0xdf, 0x18, 0xa8, 0xf9, 0xf5, 0x6a, 0x4e, 0x00, 0x06, + 0x67, 0x07, 0x60, 0xce, 0xe7, 0x4b, 0xb2, 0x38, 0x02, 0x33, 0xfe, 0x2a, 0x90, 0x0e, 0xc1, 0xbc, + 0x97, 0x08, 0xc1, 0x9c, 0x2e, 0x60, 0x56, 0x63, 0x30, 0xff, 0x67, 0x82, 0x0c, 0x7f, 0xd4, 0x18, + 0xb1, 0x9f, 0xbe, 0x21, 0xef, 0xa7, 0x47, 0xac, 0x64, 0xe9, 0x0d, 0xf5, 0x6d, 0x75, 0x43, 0x7d, + 0x6e, 0x0c, 0x5e, 0x65, 0x47, 0xbd, 0x91, 0xb5, 0xa3, 0xee, 0x8e, 0x81, 0x92, 0xbb, 0xa5, 0xbe, + 0x9f, 0xde, 0x52, 0x9f, 0x1f, 0x03, 0x2f, 0x73, 0x4f, 0xbd, 0x91, 0xb5, 0xa7, 0x1e, 0xa7, 0x75, + 0xb9, 0x9b, 0xea, 0xcf, 0x29, 0x9b, 0xea, 0xb3, 0xe3, 0x0c, 0x57, 0xbc, 0x38, 0x7c, 0x21, 0x67, + 0x57, 0xfd, 0xee, 0x38, 0x30, 0xa3, 0x83, 0xd8, 0x9f, 0xee, 0x8b, 0xd5, 0x6a, 0xfe, 0xf0, 0x4d, + 0x68, 0x85, 0x17, 0x6d, 0xf4, 0xaf, 0x41, 0x33, 0x7c, 0x2f, 0x94, 0xb4, 0x9c, 0xa3, 0xd1, 0xa6, + 0x8e, 0x7b, 0xcf, 0x22, 0x85, 0x6e, 0x43, 0x8d, 0xfe, 0x13, 0x66, 0xf1, 0xf6, 0x78, 0x17, 0x7a, + 0x68, 0x25, 0x98, 0xf1, 0xe9, 0x3f, 0x3a, 0x02, 0x20, 0x3d, 0xa3, 0x18, 0xb7, 0xda, 0xf7, 0xe9, + 0x64, 0x66, 0x07, 0xc4, 0x63, 0x17, 0xb9, 0x0a, 0x9f, 0x19, 0xc4, 0x35, 0x50, 0x6d, 0x09, 0x88, + 0x87, 0x05, 0x3b, 0x7a, 0x04, 0xad, 0x30, 0x90, 0xaa, 0xd5, 0x18, 0xd4, 0xbb, 0x63, 0x43, 0x85, + 0xa1, 0x3d, 0x1c, 0x41, 0xa0, 0x45, 0xa8, 0xf9, 0xae, 0x17, 0x68, 0x75, 0x06, 0x75, 0x61, 0x6c, + 0xa8, 0x4d, 0xd7, 0x0b, 0x30, 0x63, 0xe5, 0x5d, 0x93, 0x5e, 0xa9, 0x4e, 0xd2, 0x35, 0x65, 0xc6, + 0xfe, 0xf7, 0x6a, 0x34, 0x87, 0x2e, 0x0b, 0x6b, 0xe4, 0x3a, 0x74, 0x71, 0x7c, 0x29, 0xc9, 0x56, + 0x89, 0x84, 0x13, 0xc4, 0x25, 0xc1, 0xfd, 0x9b, 0xb7, 0xa1, 0xd3, 0x77, 0xf7, 0x89, 0x87, 0xe3, + 0x2b, 0x4e, 0xe2, 0x16, 0x5a, 0x2a, 0x1f, 0xe9, 0xd0, 0xda, 0xb1, 0x4c, 0xd2, 0xeb, 0x8b, 0xf9, + 0xaf, 0x85, 0xa3, 0x34, 0x7a, 0x00, 0x2d, 0x16, 0x63, 0x0f, 0x23, 0xfc, 0x93, 0x35, 0x92, 0x87, + 0xfa, 0x43, 0x00, 0x5a, 0x11, 0xab, 0xfc, 0x9e, 0x15, 0xb0, 0x31, 0x6c, 0xe1, 0x28, 0x4d, 0x1b, + 0xcc, 0xee, 0x91, 0xc9, 0x0d, 0x6e, 0xf2, 0x06, 0x27, 0xf3, 0xd1, 0x55, 0x78, 0x95, 0xe5, 0x25, + 0xb6, 0x98, 0x3c, 0x54, 0xdf, 0xc2, 0xd9, 0x85, 0xec, 0xde, 0x9c, 0x31, 0xe0, 0x77, 0xd2, 0x59, + 0xf0, 0xae, 0x8e, 0xe3, 0x0c, 0x74, 0x1e, 0x0e, 0x9b, 0x64, 0xdb, 0xd8, 0xb3, 0x83, 0x27, 0x64, + 0x77, 0x68, 0x1b, 0x01, 0xe9, 0x99, 0xec, 0xa1, 0x6c, 0x1b, 0xa7, 0x0b, 0xd0, 0x25, 0x78, 0x45, + 0x64, 0x72, 0x33, 0xa6, 0xd2, 0xe8, 0x99, 0xec, 0xdd, 0x68, 0x1b, 0x67, 0x15, 0xe9, 0xdf, 0xab, + 0x51, 0xa1, 0x33, 0xd5, 0x7e, 0x1f, 0xaa, 0x86, 0x69, 0x8a, 0x65, 0xf3, 0xca, 0x84, 0x06, 0x22, + 0xde, 0x82, 0x53, 0x04, 0xb4, 0x11, 0x5d, 0xb9, 0xe3, 0x0b, 0xe7, 0xf5, 0x49, 0xb1, 0xa2, 0xf7, + 0xfb, 0x02, 0x87, 0x22, 0xee, 0xf1, 0x4b, 0xdf, 0xd5, 0x9f, 0x0c, 0x31, 0xba, 0x0b, 0x2e, 0x70, + 0xd0, 0x7d, 0xa8, 0xb1, 0x16, 0xf2, 0x85, 0xf5, 0xea, 0xa4, 0x78, 0x8f, 0x78, 0xfb, 0x18, 0x86, + 0xde, 0xe7, 0x77, 0xdf, 0xa4, 0x0b, 0x97, 0x65, 0xf5, 0xc2, 0xe5, 0x12, 0xd4, 0xad, 0x80, 0xec, + 0xa6, 0xef, 0xdf, 0x8e, 0x54, 0x55, 0x31, 0xf3, 0x70, 0xd6, 0x91, 0xf7, 0x00, 0x3f, 0x8c, 0xee, + 0x62, 0x27, 0xe7, 0xc3, 0xbb, 0x50, 0xa3, 0xec, 0x29, 0x5f, 0x72, 0x9c, 0x8a, 0x19, 0xa7, 0x7e, + 0x19, 0x6a, 0xb4, 0xb3, 0x23, 0x7a, 0x27, 0xda, 0x53, 0x89, 0xda, 0xb3, 0x34, 0x05, 0x6d, 0x77, + 0x48, 0x3c, 0x66, 0x18, 0xfa, 0xbf, 0xd5, 0xa4, 0x4b, 0x71, 0x3d, 0x59, 0xc7, 0xae, 0x4d, 0x3c, + 0x73, 0xca, 0x5a, 0x86, 0x13, 0x5a, 0x76, 0x63, 0x72, 0xb4, 0x94, 0x9e, 0xe1, 0x84, 0x9e, 0xfd, + 0x04, 0x98, 0x29, 0x4d, 0x7b, 0xa8, 0x68, 0xda, 0xf5, 0xc9, 0x11, 0x15, 0x5d, 0x23, 0x45, 0xba, + 0xb6, 0xa2, 0xea, 0x5a, 0x77, 0x3c, 0x91, 0x47, 0x4b, 0xd3, 0x18, 0xda, 0xf6, 0xa5, 0x5c, 0x6d, + 0x5b, 0x52, 0xb4, 0x6d, 0xd2, 0xaa, 0x3f, 0x21, 0x7d, 0xfb, 0xe7, 0x1a, 0xd4, 0xe8, 0xf2, 0x88, + 0x56, 0x65, 0x5d, 0x7b, 0x77, 0xa2, 0xa5, 0x55, 0xd6, 0xb3, 0xf5, 0x84, 0x9e, 0x5d, 0x9d, 0x0c, + 0x29, 0xa5, 0x63, 0xeb, 0x09, 0x1d, 0x9b, 0x10, 0x2f, 0xa5, 0x5f, 0x6b, 0x8a, 0x7e, 0x5d, 0x9e, + 0x0c, 0x4d, 0xd1, 0x2d, 0xa3, 0x48, 0xb7, 0xee, 0xaa, 0xba, 0x35, 0xa6, 0xf7, 0xc6, 0x7c, 0x95, + 0x31, 0xf4, 0xea, 0x83, 0x5c, 0xbd, 0xba, 0xad, 0xe8, 0xd5, 0x24, 0xd5, 0x7e, 0x42, 0x3a, 0x75, + 0x95, 0x3b, 0x9d, 0xe2, 0x9e, 0xf1, 0x98, 0x4e, 0xa7, 0x7e, 0x0d, 0xda, 0xf1, 0x3b, 0xf4, 0x8c, + 0xeb, 0xf9, 0x9c, 0x2c, 0xac, 0x35, 0x4c, 0xea, 0x57, 0xa0, 0x1d, 0xbf, 0x2d, 0xcf, 0xa8, 0xcb, + 0x67, 0x85, 0x82, 0x4b, 0xa4, 0xf4, 0x55, 0x38, 0x9c, 0x7e, 0xf9, 0x9a, 0x11, 0x87, 0x97, 0xee, + 0x96, 0x87, 0x4f, 0x51, 0xa4, 0x2c, 0xfd, 0x05, 0xcc, 0x26, 0xde, 0xb2, 0x4e, 0x8c, 0x81, 0xae, + 0x48, 0x2e, 0x72, 0x55, 0xec, 0xc1, 0xb3, 0x6f, 0xcb, 0xc7, 0x8e, 0xb0, 0xbe, 0x02, 0xb3, 0x05, + 0x8d, 0x1f, 0xe7, 0xb2, 0xfc, 0x57, 0x60, 0x6a, 0x54, 0xdb, 0x3f, 0x81, 0xcb, 0xfc, 0x01, 0x74, + 0x52, 0xef, 0xf0, 0x93, 0xd5, 0x6c, 0x00, 0x0c, 0x22, 0x1a, 0xa1, 0xb4, 0x97, 0x26, 0x78, 0xba, + 0xc0, 0xf8, 0xb0, 0x84, 0xa1, 0xff, 0x7e, 0x19, 0x0e, 0xa7, 0x1f, 0xe1, 0x8f, 0xbb, 0xf9, 0xd1, + 0xa0, 0xc9, 0xb0, 0xa2, 0x17, 0x1f, 0x61, 0x12, 0x3d, 0x82, 0x69, 0xdf, 0xb6, 0xfa, 0x64, 0x79, + 0xc7, 0x70, 0x06, 0xc4, 0x17, 0x3b, 0x9a, 0x82, 0x87, 0xf4, 0x9b, 0x31, 0x07, 0x56, 0xd8, 0xf5, + 0x17, 0x30, 0x25, 0x15, 0xa2, 0x5b, 0x50, 0x71, 0x87, 0xa9, 0x7b, 0x8d, 0xf9, 0x98, 0x8f, 0x43, + 0x7b, 0xc3, 0x15, 0x77, 0x98, 0x36, 0x49, 0xd9, 0x7c, 0xab, 0x8a, 0xf9, 0xea, 0x0f, 0xe0, 0x70, + 0xfa, 0x9d, 0x7b, 0x72, 0x78, 0xce, 0xa4, 0xa2, 0x04, 0x7c, 0x98, 0x92, 0x5b, 0xfe, 0x05, 0x38, + 0x94, 0x7c, 0xbd, 0x9e, 0xf1, 0x1a, 0x27, 0x7e, 0xd4, 0x14, 0x86, 0xeb, 0xe7, 0x7f, 0xad, 0x0c, + 0xb3, 0x6a, 0x47, 0xd0, 0x51, 0x40, 0x6a, 0xce, 0xba, 0xeb, 0x90, 0x4e, 0x09, 0xbd, 0x0a, 0x87, + 0xd5, 0xfc, 0x45, 0xd3, 0xec, 0x94, 0xd3, 0xe4, 0x74, 0xda, 0xea, 0x54, 0x90, 0x06, 0x47, 0x12, + 0x23, 0xc4, 0x26, 0xd1, 0x4e, 0x15, 0xbd, 0x0e, 0xaf, 0x26, 0x4b, 0x86, 0xb6, 0xd1, 0x27, 0x9d, + 0x9a, 0xfe, 0xc3, 0x0a, 0xd4, 0x9e, 0xfa, 0xc4, 0xd3, 0xff, 0xb5, 0x12, 0xbe, 0xd2, 0xb8, 0x01, + 0x35, 0xf6, 0xb0, 0x5c, 0x7a, 0xcd, 0x58, 0x4e, 0xbc, 0x66, 0x54, 0x5e, 0xc4, 0xc5, 0xaf, 0x19, + 0x6f, 0x40, 0x8d, 0x3d, 0x25, 0x9f, 0x9c, 0xf3, 0x17, 0xcb, 0xd0, 0x8e, 0x9f, 0x75, 0x4f, 0xcc, + 0x2f, 0xbf, 0x0a, 0xa9, 0xa8, 0xaf, 0x42, 0xde, 0x86, 0xba, 0xc7, 0xde, 0x6f, 0xf0, 0x59, 0x26, + 0xf9, 0xd6, 0x84, 0x55, 0x88, 0x39, 0x89, 0x4e, 0x60, 0x4a, 0x7e, 0xb4, 0x3e, 0x79, 0x33, 0x4e, + 0x89, 0x2f, 0xd6, 0xf4, 0x4c, 0x7f, 0xd1, 0xf3, 0x8c, 0x03, 0xa1, 0x98, 0x6a, 0xa6, 0x3e, 0x07, + 0xb5, 0x0d, 0xcb, 0x19, 0x64, 0x3f, 0x22, 0xd5, 0xbf, 0x53, 0x86, 0xa6, 0xb8, 0xbc, 0xab, 0x2f, + 0x40, 0x75, 0x9d, 0xbc, 0xa0, 0x0d, 0x11, 0xd7, 0x86, 0x53, 0x0d, 0x79, 0xc4, 0x7a, 0x21, 0xe8, + 0x71, 0x48, 0xa6, 0xdf, 0x8c, 0x96, 0xc9, 0xc9, 0x79, 0x6f, 0x40, 0x8d, 0xbd, 0x35, 0x9f, 0x9c, + 0xf3, 0x77, 0x5b, 0xd0, 0xe0, 0x2f, 0x31, 0xf5, 0x6f, 0xb7, 0xa0, 0xc1, 0xdf, 0x9f, 0xa3, 0xdb, + 0xd0, 0xf4, 0xf7, 0x76, 0x77, 0x0d, 0xef, 0x40, 0xcb, 0xfe, 0xd8, 0xa1, 0xf2, 0x5c, 0xbd, 0xbb, + 0xc9, 0x69, 0x71, 0xc8, 0x84, 0xae, 0x41, 0xad, 0x6f, 0x6c, 0x93, 0xd4, 0x71, 0x6e, 0x16, 0xf3, + 0xb2, 0xb1, 0x4d, 0x30, 0x23, 0x47, 0x77, 0xa1, 0x25, 0xc4, 0xe2, 0x8b, 0x78, 0xce, 0xe8, 0x7a, + 0x43, 0x61, 0x46, 0x5c, 0xfa, 0x7d, 0x68, 0x8a, 0xc6, 0xa0, 0x3b, 0xd1, 0x3b, 0xd4, 0x64, 0xe4, + 0x39, 0xb3, 0x0b, 0xd1, 0xc3, 0xe4, 0xe8, 0x45, 0xea, 0x5f, 0x57, 0xa0, 0x46, 0x1b, 0xf7, 0xb1, + 0x91, 0xd0, 0x71, 0x00, 0xdb, 0xf0, 0x83, 0x8d, 0x3d, 0xdb, 0x26, 0xa6, 0x78, 0x61, 0x27, 0xe5, + 0xa0, 0x73, 0x70, 0x88, 0xa7, 0xfc, 0x9d, 0xcd, 0xbd, 0x7e, 0x9f, 0x44, 0xcf, 0x44, 0x93, 0xd9, + 0x68, 0x11, 0xea, 0xec, 0x8b, 0x68, 0xc2, 0x2b, 0x7c, 0xa7, 0x70, 0x64, 0xbb, 0x1b, 0x96, 0x23, + 0x5a, 0xc3, 0x39, 0x75, 0x17, 0xda, 0x51, 0x1e, 0x35, 0xc2, 0xa1, 0xe5, 0x38, 0x96, 0x33, 0x10, + 0x1a, 0x1d, 0x26, 0xe9, 0xa2, 0x43, 0xff, 0x8a, 0xf6, 0xd6, 0xb1, 0x48, 0xd1, 0xfc, 0x6d, 0xc3, + 0xb2, 0x45, 0x13, 0xeb, 0x58, 0xa4, 0x28, 0xd2, 0x9e, 0x78, 0xb5, 0x5f, 0x63, 0x1d, 0x0c, 0x93, + 0xfa, 0x47, 0xe5, 0xe8, 0x31, 0x76, 0xd6, 0xe3, 0xcc, 0x54, 0x2c, 0x69, 0x4e, 0x0e, 0x68, 0xf3, + 0x05, 0x41, 0x0a, 0x51, 0x1f, 0x85, 0x86, 0xeb, 0xd8, 0x96, 0x43, 0x44, 0xec, 0x48, 0xa4, 0x12, + 0x63, 0x5c, 0x4f, 0x8d, 0xb1, 0x28, 0x5f, 0x35, 0x2d, 0xda, 0xc4, 0x46, 0x5c, 0xce, 0x73, 0xd0, + 0x7b, 0xd0, 0x34, 0xc9, 0xbe, 0xd5, 0x27, 0xbe, 0xd6, 0x64, 0xaa, 0x77, 0x72, 0xe4, 0xd8, 0xae, + 0x30, 0x5a, 0x1c, 0xf2, 0xe8, 0x01, 0x34, 0x78, 0x56, 0xd4, 0xa5, 0xb2, 0xd4, 0xa5, 0xb8, 0xd1, + 0x95, 0x11, 0x8d, 0xae, 0x16, 0x34, 0xba, 0x96, 0x6c, 0xf4, 0xbc, 0x09, 0x10, 0xab, 0x1b, 0x9a, + 0x82, 0xe6, 0x53, 0xe7, 0xb9, 0xe3, 0xbe, 0x70, 0x3a, 0x25, 0x9a, 0x78, 0xbc, 0xbd, 0x4d, 0x6b, + 0xe9, 0x94, 0x69, 0x82, 0xd2, 0x59, 0xce, 0xa0, 0x53, 0x41, 0x00, 0x0d, 0x9a, 0x20, 0x66, 0xa7, + 0x4a, 0xff, 0xdf, 0x63, 0xf2, 0xeb, 0xd4, 0xd0, 0x6b, 0xf0, 0x4a, 0xcf, 0xe9, 0xbb, 0xbb, 0x43, + 0x23, 0xb0, 0xb6, 0x6c, 0xf2, 0x8c, 0x78, 0xbe, 0xe5, 0x3a, 0x9d, 0xba, 0xfe, 0x1f, 0x65, 0x7e, + 0xea, 0xab, 0xdf, 0x85, 0x69, 0xe5, 0x33, 0x12, 0x1a, 0x34, 0xd9, 0xab, 0xfe, 0xd8, 0xef, 0x16, + 0x49, 0xa6, 0x25, 0xfc, 0x59, 0xbc, 0x70, 0x59, 0x78, 0x4a, 0xbf, 0x07, 0x20, 0x7d, 0x3c, 0xe2, + 0x38, 0xc0, 0xd6, 0x41, 0x40, 0x7c, 0xfe, 0xe1, 0x08, 0x0a, 0x51, 0xc3, 0x52, 0x8e, 0x8c, 0x5f, + 0x51, 0xf0, 0xf5, 0xeb, 0x00, 0xd2, 0xa7, 0x23, 0xa8, 0xfd, 0xd0, 0xd4, 0x52, 0x12, 0x2c, 0x99, + 0xad, 0x77, 0x45, 0x0f, 0xc2, 0x8f, 0x44, 0x84, 0x2d, 0xe0, 0x51, 0x3a, 0xb9, 0x05, 0x2c, 0x47, + 0x5f, 0x05, 0x88, 0xbf, 0x93, 0xa0, 0x2f, 0x44, 0x53, 0xf4, 0x05, 0xa8, 0x99, 0x46, 0x60, 0x88, + 0xd9, 0xf1, 0xf5, 0xc4, 0x0a, 0x15, 0xb3, 0x60, 0x46, 0xa6, 0xff, 0x5e, 0x19, 0xa6, 0xe5, 0x6f, + 0x42, 0xe8, 0xef, 0x43, 0x8d, 0x7d, 0x54, 0xe2, 0x0e, 0x4c, 0xcb, 0x1f, 0x85, 0x48, 0x7d, 0x93, + 0x97, 0xe3, 0xc9, 0xac, 0x58, 0x61, 0xd0, 0x7b, 0x51, 0x93, 0x3e, 0x36, 0xd4, 0x25, 0x68, 0x8a, + 0x6f, 0x4c, 0xe8, 0xa7, 0xa1, 0x1d, 0x7f, 0x52, 0x82, 0xce, 0x11, 0x3c, 0x3f, 0x94, 0xb2, 0x48, + 0xea, 0x3f, 0xae, 0x42, 0x9d, 0x89, 0x53, 0xff, 0x56, 0x45, 0xd6, 0x44, 0xfd, 0x87, 0xe5, 0xdc, + 0x3d, 0xdf, 0x15, 0xe5, 0xf3, 0x00, 0xb3, 0xa9, 0x4f, 0xa9, 0x88, 0x2f, 0x48, 0xa8, 0x13, 0xe8, + 0x75, 0x68, 0x3a, 0x24, 0x78, 0xe1, 0x7a, 0xcf, 0x99, 0x91, 0xcc, 0xa6, 0x3f, 0x9f, 0xc2, 0xb8, + 0xd6, 0x39, 0x0d, 0x0e, 0x89, 0xd1, 0x55, 0xa8, 0x13, 0xcf, 0x73, 0x3d, 0x66, 0x3a, 0xb3, 0xa9, + 0x8f, 0x92, 0xc4, 0x5f, 0xab, 0x58, 0xa5, 0x54, 0x98, 0x13, 0xa3, 0xab, 0xf0, 0xaa, 0xcf, 0xad, + 0x85, 0xfb, 0x8e, 0xbe, 0x78, 0x3f, 0x2d, 0x66, 0x95, 0xec, 0xc2, 0xf9, 0x2f, 0x86, 0x0b, 0xa9, + 0x64, 0x60, 0x25, 0xd9, 0xf2, 0xca, 0xa8, 0x0d, 0x75, 0x56, 0x51, 0xa7, 0x22, 0x9b, 0x67, 0x15, + 0x9d, 0x80, 0x39, 0x4a, 0xb4, 0xe1, 0xb9, 0x81, 0xdb, 0x77, 0xed, 0x9e, 0xb3, 0x1c, 0x59, 0x21, + 0x5d, 0xb6, 0x3b, 0xb5, 0xf9, 0x2b, 0xd0, 0x14, 0x9d, 0xa3, 0x9c, 0x8b, 0xbc, 0x17, 0x9d, 0x12, + 0x9a, 0x86, 0xd6, 0x26, 0xb1, 0xb7, 0xd7, 0x5c, 0x3f, 0xe8, 0x94, 0xd1, 0x0c, 0xb4, 0x99, 0x55, + 0x3c, 0x76, 0xec, 0x83, 0x4e, 0x65, 0xfe, 0x03, 0x68, 0x47, 0x7d, 0x43, 0x2d, 0xa8, 0xad, 0xef, + 0xd9, 0x76, 0xa7, 0xc4, 0x9c, 0xd1, 0xc0, 0xf5, 0xc2, 0x50, 0xf4, 0xea, 0x4b, 0xba, 0xb2, 0x74, + 0xca, 0x79, 0xf6, 0x5f, 0x41, 0x1d, 0x98, 0x16, 0x95, 0xf3, 0xd6, 0x57, 0xf5, 0x7f, 0x2c, 0x43, + 0x3b, 0xfa, 0x20, 0x07, 0xf5, 0x04, 0x43, 0x69, 0xe7, 0xcf, 0x08, 0x0b, 0x09, 0xb9, 0xe7, 0x7f, + 0xdf, 0x23, 0x21, 0xfb, 0x33, 0x30, 0x2b, 0x26, 0xd9, 0x50, 0x0c, 0x7c, 0x9e, 0x4c, 0xe4, 0xce, + 0xdf, 0x8c, 0xc6, 0xbf, 0xc3, 0x8c, 0x6d, 0xd9, 0x75, 0x1c, 0xd2, 0x0f, 0x98, 0x14, 0x0e, 0xc1, + 0xd4, 0xba, 0x1b, 0x6c, 0xb8, 0xbe, 0x4f, 0x7b, 0xc6, 0x47, 0x2a, 0x2e, 0xaf, 0xcc, 0x7f, 0x03, + 0x66, 0x30, 0xf1, 0x87, 0xae, 0xe3, 0x93, 0x9f, 0xd6, 0x87, 0xbd, 0x73, 0x3f, 0xd1, 0x3d, 0xff, + 0x9d, 0x2a, 0xd4, 0x99, 0x77, 0xa6, 0xff, 0x71, 0x35, 0xf2, 0x23, 0x33, 0xee, 0xee, 0xc5, 0x37, + 0x6c, 0x64, 0xab, 0x51, 0xfc, 0x3a, 0xf9, 0x98, 0xe6, 0xb2, 0x7c, 0xb3, 0x46, 0xb6, 0x18, 0x95, + 0x43, 0xb9, 0x51, 0xf3, 0x39, 0x68, 0x0d, 0x3d, 0x77, 0xe0, 0x51, 0x07, 0xb2, 0x96, 0xf8, 0x0c, + 0x8b, 0xca, 0xb6, 0x21, 0xc8, 0x70, 0xc4, 0xa0, 0xaf, 0x43, 0x2b, 0xcc, 0xcd, 0xf9, 0xd0, 0x00, + 0x82, 0x9a, 0xe9, 0x8a, 0x45, 0xb0, 0x8a, 0xd9, 0x7f, 0x3a, 0x2e, 0x62, 0x04, 0xc3, 0xcd, 0x9f, + 0x48, 0xce, 0x7f, 0x59, 0x9c, 0x7c, 0xce, 0x40, 0x7b, 0xc5, 0x73, 0x87, 0xec, 0x45, 0x79, 0xa7, + 0x44, 0xad, 0xab, 0xb7, 0x3b, 0x74, 0x3d, 0xaa, 0xf0, 0x00, 0x8d, 0xd5, 0x97, 0xec, 0x7f, 0x85, + 0x99, 0x82, 0xb1, 0x4f, 0x28, 0x59, 0xa7, 0x8a, 0x10, 0xcc, 0x62, 0xc2, 0x4e, 0x7b, 0x84, 0xeb, + 0xd1, 0xa9, 0x51, 0xa0, 0x47, 0xd6, 0x80, 0x6f, 0xa7, 0x3a, 0xf5, 0xf9, 0xc5, 0xf0, 0x86, 0x0b, + 0x35, 0x0d, 0xbe, 0x7d, 0x9b, 0x82, 0x26, 0xde, 0x63, 0xfe, 0x4f, 0xa7, 0x4c, 0xb3, 0xa9, 0x53, + 0xcd, 0xa1, 0x97, 0x0d, 0xa7, 0x4f, 0x6c, 0xb6, 0x66, 0x46, 0x56, 0x5c, 0x5b, 0x9a, 0xfb, 0x9b, + 0x8f, 0x8e, 0x97, 0xbf, 0xfb, 0xd1, 0xf1, 0xf2, 0xf7, 0x3f, 0x3a, 0x5e, 0xfe, 0xcd, 0x1f, 0x1c, + 0x2f, 0x7d, 0xf7, 0x07, 0xc7, 0x4b, 0xff, 0xf2, 0x83, 0xe3, 0xa5, 0x0f, 0x2b, 0xc3, 0xad, 0xad, + 0x06, 0xbb, 0x9a, 0x70, 0xe5, 0xbf, 0x02, 0x00, 0x00, 0xff, 0xff, 0x9a, 0x37, 0xbb, 0xd4, 0x96, + 0x5e, 0x00, 0x00, } func (m *Event) Marshal() (dAtA []byte, err error) { diff --git a/pb/protos/events.proto b/pb/protos/events.proto index 5717c5732..06d41fb6c 100644 --- a/pb/protos/events.proto +++ b/pb/protos/events.proto @@ -1086,6 +1086,7 @@ message Event { Syncing = 1; Error = 2; Offline = 3; + SyncProtocolInCompatibleMode = 4; } enum Network { Anytype = 0; diff --git a/space/spacecore/peermanager/manager.go b/space/spacecore/peermanager/manager.go index 1fadd8bad..a5a36cc72 100644 --- a/space/spacecore/peermanager/manager.go +++ b/space/spacecore/peermanager/manager.go @@ -18,6 +18,7 @@ import ( "github.com/anyproto/any-sync/net/peer" "go.uber.org/zap" + "github.com/anyproto/anytype-heart/core/compatibility" "github.com/anyproto/anytype-heart/core/syncstatus/nodestatus" "github.com/anyproto/anytype-heart/space/spacecore/peerstore" ) @@ -57,6 +58,7 @@ type clientPeerManager struct { availableResponsiblePeers chan struct{} nodeStatus NodeStatus spaceSyncService Updater + compatibilityChecker compatibility.Checker ctx context.Context ctxCancel context.CancelFunc @@ -74,6 +76,7 @@ func (n *clientPeerManager) Init(a *app.App) (err error) { n.nodeStatus = app.MustComponent[NodeStatus](a) n.spaceSyncService = app.MustComponent[Updater](a) n.peerToPeerStatus = app.MustComponent[PeerToPeerStatus](a) + n.compatibilityChecker = app.MustComponent[compatibility.Checker](a) return } @@ -179,6 +182,7 @@ func (n *clientPeerManager) getStreamResponsiblePeers(ctx context.Context) (peer log.Warn("failed to get responsible peer from common pool", zap.Error(nodeErr)) } else { peerIds = []string{p.Id()} + n.addPeerVersion(p) } peerIds = append(peerIds, n.peerStore.LocalPeerIds(n.spaceId)...) for _, peerId := range peerIds { @@ -188,6 +192,7 @@ func (n *clientPeerManager) getStreamResponsiblePeers(ctx context.Context) (peer log.Warn("failed to get peer from stream pool", zap.String("peerId", peerId), zap.Error(err)) continue } + n.addPeerVersion(p) peers = append(peers, p) } @@ -198,6 +203,15 @@ func (n *clientPeerManager) getStreamResponsiblePeers(ctx context.Context) (peer return } +func (n *clientPeerManager) addPeerVersion(p peer.Peer) { + protoVersion, err := peer.CtxProtoVersion(p.Context()) + if err != nil { + log.Warn("failed to get responsible peer proto version", zap.Error(err)) + } else { + n.compatibilityChecker.AddPeerVersion(p.Id(), protoVersion) + } +} + func (n *clientPeerManager) manageResponsiblePeers() { for { n.fetchResponsiblePeers() From 4a4b056bfc2776100f5fa56563f51376a5bea4cd Mon Sep 17 00:00:00 2001 From: AnastasiaShemyakinskaya Date: Wed, 21 Aug 2024 11:06:59 +0200 Subject: [PATCH 51/78] GO-3921: add new sync status Signed-off-by: AnastasiaShemyakinskaya --- .mockery.yaml | 5 +- core/anytype/bootstrap.go | 4 +- core/compatibility/checker.go | 50 ++ core/compatibility/checker_test.go | 56 ++ .../mock_compatibility/mock_Checker.go | 206 +++++ .../syncstatus/spacesyncstatus/spacestatus.go | 49 +- .../spacesyncstatus/spacestatus_test.go | 90 ++- docs/proto.md | 1 + pb/events.pb.go | 739 +++++++++--------- pb/protos/events.proto | 1 + space/spacecore/peermanager/manager.go | 14 + 11 files changed, 801 insertions(+), 414 deletions(-) create mode 100644 core/compatibility/checker.go create mode 100644 core/compatibility/checker_test.go create mode 100644 core/compatibility/mock_compatibility/mock_Checker.go diff --git a/.mockery.yaml b/.mockery.yaml index e0b1b83d3..bd1968f4a 100644 --- a/.mockery.yaml +++ b/.mockery.yaml @@ -215,4 +215,7 @@ packages: SpaceIdGetter: NodeUsage: NetworkConfig: - Updater: \ No newline at end of file + Updater: + github.com/anyproto/anytype-heart/core/compatibility: + interfaces: + Checker: diff --git a/core/anytype/bootstrap.go b/core/anytype/bootstrap.go index 9e9f3ea42..b942dc9db 100644 --- a/core/anytype/bootstrap.go +++ b/core/anytype/bootstrap.go @@ -50,6 +50,7 @@ import ( "github.com/anyproto/anytype-heart/core/block/restriction" "github.com/anyproto/anytype-heart/core/block/source" templateservice "github.com/anyproto/anytype-heart/core/block/template" + "github.com/anyproto/anytype-heart/core/compatibility" "github.com/anyproto/anytype-heart/core/configfetcher" "github.com/anyproto/anytype-heart/core/debug" "github.com/anyproto/anytype-heart/core/debug/profiler" @@ -301,7 +302,8 @@ func Bootstrap(a *app.App, components ...app.Component) { Register(nameserviceclient.New()). Register(payments.New()). Register(paymentscache.New()). - Register(peerstatus.New()) + Register(peerstatus.New()). + Register(compatibility.New()) } func MiddlewareVersion() string { diff --git a/core/compatibility/checker.go b/core/compatibility/checker.go new file mode 100644 index 000000000..0590c5f3b --- /dev/null +++ b/core/compatibility/checker.go @@ -0,0 +1,50 @@ +package compatibility + +import ( + "sync" + + "github.com/anyproto/any-sync/app" + "github.com/anyproto/any-sync/net/secureservice" +) + +const CName = "core.compatibility.checker" + +type Checker interface { + app.Component + AddPeerVersion(peerId string, version uint32) + IsVersionCompatibleWithPeers() bool +} + +func New() Checker { + return &compatibilityChecker{peersToVersions: make(map[string]uint32, 0)} +} + +type compatibilityChecker struct { + peersToVersions map[string]uint32 + sync.Mutex +} + +func (i *compatibilityChecker) Init(a *app.App) (err error) { + return +} + +func (i *compatibilityChecker) AddPeerVersion(peerId string, version uint32) { + i.Lock() + defer i.Unlock() + i.peersToVersions[peerId] = version +} + +func (i *compatibilityChecker) IsVersionCompatibleWithPeers() bool { + i.Lock() + defer i.Unlock() + for _, version := range i.peersToVersions { + if version != secureservice.ProtoVersion { + return false + } + } + return true +} + +func (i *compatibilityChecker) Name() (name string) { + return CName +} diff --git a/core/compatibility/checker_test.go b/core/compatibility/checker_test.go new file mode 100644 index 000000000..4bd43a6fa --- /dev/null +++ b/core/compatibility/checker_test.go @@ -0,0 +1,56 @@ +package compatibility + +import ( + "testing" + + "github.com/anyproto/any-sync/net/secureservice" + "github.com/stretchr/testify/assert" +) + +func TestCompatibilityChecker_AddPeerVersion(t *testing.T) { + t.Run("add peer version", func(t *testing.T) { + // given + checker := &compatibilityChecker{peersToVersions: map[string]uint32{}} + + // when + checker.AddPeerVersion("id", 1) + + // then + assert.Equal(t, uint32(1), checker.peersToVersions["id"]) + }) +} + +func TestCompatibilityChecker_IsVersionCompatibleWithPeers(t *testing.T) { + t.Run("no versions", func(t *testing.T) { + // given + checker := &compatibilityChecker{peersToVersions: map[string]uint32{}} + + // when + compatibleWithPeers := checker.IsVersionCompatibleWithPeers() + + // then + assert.True(t, compatibleWithPeers) + }) + t.Run("versions compatible", func(t *testing.T) { + // given + checker := &compatibilityChecker{peersToVersions: map[string]uint32{}} + + // when + checker.AddPeerVersion("id", secureservice.ProtoVersion) + compatibleWithPeers := checker.IsVersionCompatibleWithPeers() + + // then + assert.True(t, compatibleWithPeers) + }) + t.Run("versions is not compatible", func(t *testing.T) { + // given + checker := &compatibilityChecker{peersToVersions: map[string]uint32{}} + + // when + checker.AddPeerVersion("id", 1) + compatibleWithPeers := checker.IsVersionCompatibleWithPeers() + + // then + assert.False(t, compatibleWithPeers) + }) +} diff --git a/core/compatibility/mock_compatibility/mock_Checker.go b/core/compatibility/mock_compatibility/mock_Checker.go new file mode 100644 index 000000000..a4a0bfd27 --- /dev/null +++ b/core/compatibility/mock_compatibility/mock_Checker.go @@ -0,0 +1,206 @@ +// Code generated by mockery. DO NOT EDIT. + +package mock_compatibility + +import ( + app "github.com/anyproto/any-sync/app" + + mock "github.com/stretchr/testify/mock" +) + +// MockChecker is an autogenerated mock type for the Checker type +type MockChecker struct { + mock.Mock +} + +type MockChecker_Expecter struct { + mock *mock.Mock +} + +func (_m *MockChecker) EXPECT() *MockChecker_Expecter { + return &MockChecker_Expecter{mock: &_m.Mock} +} + +// AddPeerVersion provides a mock function with given fields: peerId, version +func (_m *MockChecker) AddPeerVersion(peerId string, version uint32) { + _m.Called(peerId, version) +} + +// MockChecker_AddPeerVersion_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'AddPeerVersion' +type MockChecker_AddPeerVersion_Call struct { + *mock.Call +} + +// AddPeerVersion is a helper method to define mock.On call +// - peerId string +// - version uint32 +func (_e *MockChecker_Expecter) AddPeerVersion(peerId interface{}, version interface{}) *MockChecker_AddPeerVersion_Call { + return &MockChecker_AddPeerVersion_Call{Call: _e.mock.On("AddPeerVersion", peerId, version)} +} + +func (_c *MockChecker_AddPeerVersion_Call) Run(run func(peerId string, version uint32)) *MockChecker_AddPeerVersion_Call { + _c.Call.Run(func(args mock.Arguments) { + run(args[0].(string), args[1].(uint32)) + }) + return _c +} + +func (_c *MockChecker_AddPeerVersion_Call) Return() *MockChecker_AddPeerVersion_Call { + _c.Call.Return() + return _c +} + +func (_c *MockChecker_AddPeerVersion_Call) RunAndReturn(run func(string, uint32)) *MockChecker_AddPeerVersion_Call { + _c.Call.Return(run) + return _c +} + +// Init provides a mock function with given fields: a +func (_m *MockChecker) Init(a *app.App) error { + ret := _m.Called(a) + + if len(ret) == 0 { + panic("no return value specified for Init") + } + + var r0 error + if rf, ok := ret.Get(0).(func(*app.App) error); ok { + r0 = rf(a) + } else { + r0 = ret.Error(0) + } + + return r0 +} + +// MockChecker_Init_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'Init' +type MockChecker_Init_Call struct { + *mock.Call +} + +// Init is a helper method to define mock.On call +// - a *app.App +func (_e *MockChecker_Expecter) Init(a interface{}) *MockChecker_Init_Call { + return &MockChecker_Init_Call{Call: _e.mock.On("Init", a)} +} + +func (_c *MockChecker_Init_Call) Run(run func(a *app.App)) *MockChecker_Init_Call { + _c.Call.Run(func(args mock.Arguments) { + run(args[0].(*app.App)) + }) + return _c +} + +func (_c *MockChecker_Init_Call) Return(err error) *MockChecker_Init_Call { + _c.Call.Return(err) + return _c +} + +func (_c *MockChecker_Init_Call) RunAndReturn(run func(*app.App) error) *MockChecker_Init_Call { + _c.Call.Return(run) + return _c +} + +// IsVersionCompatibleWithPeers provides a mock function with given fields: +func (_m *MockChecker) IsVersionCompatibleWithPeers() bool { + ret := _m.Called() + + if len(ret) == 0 { + panic("no return value specified for IsVersionCompatibleWithPeers") + } + + var r0 bool + if rf, ok := ret.Get(0).(func() bool); ok { + r0 = rf() + } else { + r0 = ret.Get(0).(bool) + } + + return r0 +} + +// MockChecker_IsVersionCompatibleWithPeers_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'IsVersionCompatibleWithPeers' +type MockChecker_IsVersionCompatibleWithPeers_Call struct { + *mock.Call +} + +// IsVersionCompatibleWithPeers is a helper method to define mock.On call +func (_e *MockChecker_Expecter) IsVersionCompatibleWithPeers() *MockChecker_IsVersionCompatibleWithPeers_Call { + return &MockChecker_IsVersionCompatibleWithPeers_Call{Call: _e.mock.On("IsVersionCompatibleWithPeers")} +} + +func (_c *MockChecker_IsVersionCompatibleWithPeers_Call) Run(run func()) *MockChecker_IsVersionCompatibleWithPeers_Call { + _c.Call.Run(func(args mock.Arguments) { + run() + }) + return _c +} + +func (_c *MockChecker_IsVersionCompatibleWithPeers_Call) Return(_a0 bool) *MockChecker_IsVersionCompatibleWithPeers_Call { + _c.Call.Return(_a0) + return _c +} + +func (_c *MockChecker_IsVersionCompatibleWithPeers_Call) RunAndReturn(run func() bool) *MockChecker_IsVersionCompatibleWithPeers_Call { + _c.Call.Return(run) + return _c +} + +// Name provides a mock function with given fields: +func (_m *MockChecker) Name() string { + ret := _m.Called() + + if len(ret) == 0 { + panic("no return value specified for Name") + } + + var r0 string + if rf, ok := ret.Get(0).(func() string); ok { + r0 = rf() + } else { + r0 = ret.Get(0).(string) + } + + return r0 +} + +// MockChecker_Name_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'Name' +type MockChecker_Name_Call struct { + *mock.Call +} + +// Name is a helper method to define mock.On call +func (_e *MockChecker_Expecter) Name() *MockChecker_Name_Call { + return &MockChecker_Name_Call{Call: _e.mock.On("Name")} +} + +func (_c *MockChecker_Name_Call) Run(run func()) *MockChecker_Name_Call { + _c.Call.Run(func(args mock.Arguments) { + run() + }) + return _c +} + +func (_c *MockChecker_Name_Call) Return(name string) *MockChecker_Name_Call { + _c.Call.Return(name) + return _c +} + +func (_c *MockChecker_Name_Call) RunAndReturn(run func() string) *MockChecker_Name_Call { + _c.Call.Return(run) + return _c +} + +// NewMockChecker creates a new instance of MockChecker. It also registers a testing interface on the mock and a cleanup function to assert the mocks expectations. +// The first argument is typically a *testing.T value. +func NewMockChecker(t interface { + mock.TestingT + Cleanup(func()) +}) *MockChecker { + mock := &MockChecker{} + mock.Mock.Test(t) + + t.Cleanup(func() { mock.AssertExpectations(t) }) + + return mock +} diff --git a/core/syncstatus/spacesyncstatus/spacestatus.go b/core/syncstatus/spacesyncstatus/spacestatus.go index 60231873c..3f80cfe55 100644 --- a/core/syncstatus/spacesyncstatus/spacestatus.go +++ b/core/syncstatus/spacesyncstatus/spacestatus.go @@ -11,6 +11,7 @@ import ( "github.com/anyproto/any-sync/util/periodicsync" "github.com/samber/lo" + "github.com/anyproto/anytype-heart/core/compatibility" "github.com/anyproto/anytype-heart/core/event" "github.com/anyproto/anytype-heart/core/files" "github.com/anyproto/anytype-heart/core/session" @@ -55,14 +56,15 @@ type spaceSyncStatus struct { nodeUsage NodeUsage subs syncsubscriptions.SyncSubscriptions - spaceIdGetter SpaceIdGetter - curStatuses map[string]struct{} - missingIds map[string][]string - lastSentEvents map[string]pb.EventSpaceSyncStatusUpdate - mx sync.Mutex - periodicCall periodicsync.PeriodicSync - loopInterval time.Duration - isLocal bool + spaceIdGetter SpaceIdGetter + curStatuses map[string]struct{} + missingIds map[string][]string + lastSentEvents map[string]pb.EventSpaceSyncStatusUpdate + mx sync.Mutex + periodicCall periodicsync.PeriodicSync + loopInterval time.Duration + isLocal bool + compatibilityCheck compatibility.Checker } func NewSpaceSyncStatus() Updater { @@ -86,6 +88,7 @@ func (s *spaceSyncStatus) Init(a *app.App) (err error) { sessionHookRunner := app.MustComponent[session.HookRunner](a) sessionHookRunner.RegisterHook(s.sendSyncEventForNewSession) s.periodicCall = periodicsync.NewPeriodicSyncDuration(s.loopInterval, time.Second*5, s.update, logger.CtxLogger{Logger: log.Desugar()}) + s.compatibilityCheck = app.MustComponent[compatibility.Checker](a) return } @@ -143,10 +146,11 @@ func (s *spaceSyncStatus) sendEventToSession(spaceId, token string) { return } params := syncParams{ - bytesLeftPercentage: s.getBytesLeftPercentage(spaceId), - connectionStatus: s.nodeStatus.GetNodeStatus(spaceId), - compatibility: s.nodeConf.NetworkCompatibilityStatus(), - objectsSyncingCount: s.getObjectSyncingObjectsCount(spaceId, s.getMissingIds(spaceId)), + bytesLeftPercentage: s.getBytesLeftPercentage(spaceId), + connectionStatus: s.nodeStatus.GetNodeStatus(spaceId), + compatibility: s.nodeConf.NetworkCompatibilityStatus(), + objectsSyncingCount: s.getObjectSyncingObjectsCount(spaceId, s.getMissingIds(spaceId)), + syncProtocolCompatible: s.compatibilityCheck.IsVersionCompatibleWithPeers(), } s.eventSender.SendToSession(token, &pb.Event{ Messages: []*pb.EventMessage{{ @@ -242,10 +246,11 @@ func (s *spaceSyncStatus) updateSpaceSyncStatus(spaceId string) { } missingObjects := s.getMissingIds(spaceId) params := syncParams{ - bytesLeftPercentage: s.getBytesLeftPercentage(spaceId), - connectionStatus: s.nodeStatus.GetNodeStatus(spaceId), - compatibility: s.nodeConf.NetworkCompatibilityStatus(), - objectsSyncingCount: s.getObjectSyncingObjectsCount(spaceId, missingObjects), + bytesLeftPercentage: s.getBytesLeftPercentage(spaceId), + connectionStatus: s.nodeStatus.GetNodeStatus(spaceId), + compatibility: s.nodeConf.NetworkCompatibilityStatus(), + objectsSyncingCount: s.getObjectSyncingObjectsCount(spaceId, missingObjects), + syncProtocolCompatible: s.compatibilityCheck.IsVersionCompatibleWithPeers(), } s.broadcast(&pb.Event{ Messages: []*pb.EventMessage{{ @@ -262,10 +267,11 @@ func (s *spaceSyncStatus) Close(ctx context.Context) (err error) { } type syncParams struct { - bytesLeftPercentage float64 - connectionStatus nodestatus.ConnectionStatus - compatibility nodeconf.NetworkCompatibilityStatus - objectsSyncingCount int + bytesLeftPercentage float64 + connectionStatus nodestatus.ConnectionStatus + compatibility nodeconf.NetworkCompatibilityStatus + objectsSyncingCount int + syncProtocolCompatible bool } func (s *spaceSyncStatus) makeSyncEvent(spaceId string, params syncParams) *pb.EventSpaceSyncStatusUpdate { @@ -287,6 +293,9 @@ func (s *spaceSyncStatus) makeSyncEvent(spaceId string, params syncParams) *pb.E status = pb.EventSpace_Error err = pb.EventSpace_IncompatibleVersion } + if !params.syncProtocolCompatible { + status = pb.EventSpace_SyncProtocolInCompatibleMode + } return &pb.EventSpaceSyncStatusUpdate{ Id: spaceId, Status: status, diff --git a/core/syncstatus/spacesyncstatus/spacestatus_test.go b/core/syncstatus/spacesyncstatus/spacestatus_test.go index 9d252b907..b541d9997 100644 --- a/core/syncstatus/spacesyncstatus/spacestatus_test.go +++ b/core/syncstatus/spacesyncstatus/spacestatus_test.go @@ -14,6 +14,7 @@ import ( "github.com/stretchr/testify/require" "go.uber.org/mock/gomock" + "github.com/anyproto/anytype-heart/core/compatibility/mock_compatibility" "github.com/anyproto/anytype-heart/core/domain" "github.com/anyproto/anytype-heart/core/event" "github.com/anyproto/anytype-heart/core/event/mock_event" @@ -65,18 +66,19 @@ func (m mockSessionContext) GetResponseEvent() *pb.ResponseEvent { type fixture struct { *spaceSyncStatus - a *app.App - nodeConf *mock_nodeconf.MockService - nodeUsage *mock_spacesyncstatus.MockNodeUsage - nodeStatus *mock_nodestatus.MockNodeStatus - subscriptionService subscription.Service - syncSubs syncsubscriptions.SyncSubscriptions - objectStore *objectstore.StoreFixture - spaceIdGetter *mock_spacesyncstatus.MockSpaceIdGetter - eventSender *mock_event.MockSender - session session.HookRunner - networkConfig *mock_spacesyncstatus.MockNetworkConfig - ctrl *gomock.Controller + a *app.App + nodeConf *mock_nodeconf.MockService + nodeUsage *mock_spacesyncstatus.MockNodeUsage + nodeStatus *mock_nodestatus.MockNodeStatus + subscriptionService subscription.Service + syncSubs syncsubscriptions.SyncSubscriptions + objectStore *objectstore.StoreFixture + spaceIdGetter *mock_spacesyncstatus.MockSpaceIdGetter + eventSender *mock_event.MockSender + session session.HookRunner + networkConfig *mock_spacesyncstatus.MockNetworkConfig + ctrl *gomock.Controller + compatibilityChecker *mock_compatibility.MockChecker } func genObject(syncStatus domain.ObjectSyncStatus, spaceId string) objectstore.TestObject { @@ -105,19 +107,20 @@ func newFixture(t *testing.T, beforeStart func(fx *fixture)) *fixture { networkConfig := mock_spacesyncstatus.NewMockNetworkConfig(t) sess := session.NewHookRunner() fx := &fixture{ - a: a, - ctrl: ctrl, - spaceSyncStatus: NewSpaceSyncStatus().(*spaceSyncStatus), - nodeUsage: mock_spacesyncstatus.NewMockNodeUsage(t), - nodeStatus: mock_nodestatus.NewMockNodeStatus(t), - nodeConf: mock_nodeconf.NewMockService(ctrl), - spaceIdGetter: mock_spacesyncstatus.NewMockSpaceIdGetter(t), - objectStore: internalSubs.StoreFixture, - eventSender: app.MustComponent[event.Sender](a).(*mock_event.MockSender), - subscriptionService: internalSubs, - session: sess, - syncSubs: syncsubscriptions.New(), - networkConfig: networkConfig, + a: a, + ctrl: ctrl, + spaceSyncStatus: NewSpaceSyncStatus().(*spaceSyncStatus), + nodeUsage: mock_spacesyncstatus.NewMockNodeUsage(t), + nodeStatus: mock_nodestatus.NewMockNodeStatus(t), + nodeConf: mock_nodeconf.NewMockService(ctrl), + spaceIdGetter: mock_spacesyncstatus.NewMockSpaceIdGetter(t), + objectStore: internalSubs.StoreFixture, + eventSender: app.MustComponent[event.Sender](a).(*mock_event.MockSender), + subscriptionService: internalSubs, + session: sess, + syncSubs: syncsubscriptions.New(), + networkConfig: networkConfig, + compatibilityChecker: mock_compatibility.NewMockChecker(t), } fx.spaceIdGetter.EXPECT().TechSpaceId().Return("techSpaceId").Maybe() @@ -127,6 +130,7 @@ func newFixture(t *testing.T, beforeStart func(fx *fixture)) *fixture { Register(testutil.PrepareMock(ctx, a, fx.spaceIdGetter)). Register(testutil.PrepareMock(ctx, a, fx.nodeConf)). Register(testutil.PrepareMock(ctx, a, fx.nodeUsage)). + Register(testutil.PrepareMock(ctx, a, fx.compatibilityChecker)). Register(sess). Register(fx.spaceSyncStatus) beforeStart(fx) @@ -149,6 +153,7 @@ func Test(t *testing.T) { LocalUsageBytes: 0, }, nil) fx.nodeConf.EXPECT().NetworkCompatibilityStatus().Return(nodeconf.NetworkCompatibilityStatusOk) + fx.compatibilityChecker.EXPECT().IsVersionCompatibleWithPeers().Return(true) fx.eventSender.EXPECT().Broadcast(&pb.Event{ Messages: []*pb.EventMessage{{ Value: &pb.EventMessageValueOfSpaceSyncStatusUpdate{ @@ -178,6 +183,7 @@ func Test(t *testing.T) { LocalUsageBytes: 0, }, nil) fx.nodeConf.EXPECT().NetworkCompatibilityStatus().Return(nodeconf.NetworkCompatibilityStatusOk) + fx.compatibilityChecker.EXPECT().IsVersionCompatibleWithPeers().Return(true) fx.eventSender.EXPECT().Broadcast(&pb.Event{ Messages: []*pb.EventMessage{{ Value: &pb.EventMessageValueOfSpaceSyncStatusUpdate{ @@ -209,6 +215,7 @@ func Test(t *testing.T) { LocalUsageBytes: 0, }, nil) fx.nodeConf.EXPECT().NetworkCompatibilityStatus().AnyTimes().Return(nodeconf.NetworkCompatibilityStatusOk) + fx.compatibilityChecker.EXPECT().IsVersionCompatibleWithPeers().Return(true) fx.eventSender.EXPECT().Broadcast(&pb.Event{ Messages: []*pb.EventMessage{{ Value: &pb.EventMessageValueOfSpaceSyncStatusUpdate{ @@ -261,6 +268,7 @@ func Test(t *testing.T) { LocalUsageBytes: 0, }, nil) fx.nodeConf.EXPECT().NetworkCompatibilityStatus().Return(nodeconf.NetworkCompatibilityStatusOk) + fx.compatibilityChecker.EXPECT().IsVersionCompatibleWithPeers().Return(true) fx.eventSender.EXPECT().Broadcast(&pb.Event{ Messages: []*pb.EventMessage{{ Value: &pb.EventMessageValueOfSpaceSyncStatusUpdate{ @@ -292,6 +300,7 @@ func Test(t *testing.T) { LocalUsageBytes: 0, }, nil) fx.nodeConf.EXPECT().NetworkCompatibilityStatus().Return(nodeconf.NetworkCompatibilityStatusOk) + fx.compatibilityChecker.EXPECT().IsVersionCompatibleWithPeers().Return(true) fx.eventSender.EXPECT().Broadcast(&pb.Event{ Messages: []*pb.EventMessage{{ Value: &pb.EventMessageValueOfSpaceSyncStatusUpdate{ @@ -323,6 +332,7 @@ func Test(t *testing.T) { LocalUsageBytes: 0, }, nil) fx.nodeConf.EXPECT().NetworkCompatibilityStatus().Return(nodeconf.NetworkCompatibilityStatusIncompatible) + fx.compatibilityChecker.EXPECT().IsVersionCompatibleWithPeers().Return(true) fx.eventSender.EXPECT().Broadcast(&pb.Event{ Messages: []*pb.EventMessage{{ Value: &pb.EventMessageValueOfSpaceSyncStatusUpdate{ @@ -355,6 +365,7 @@ func Test(t *testing.T) { LocalUsageBytes: 0, }, nil) fx.nodeConf.EXPECT().NetworkCompatibilityStatus().AnyTimes().Return(nodeconf.NetworkCompatibilityStatusOk) + fx.compatibilityChecker.EXPECT().IsVersionCompatibleWithPeers().Return(true) fx.eventSender.EXPECT().Broadcast(&pb.Event{ Messages: []*pb.EventMessage{{ Value: &pb.EventMessageValueOfSpaceSyncStatusUpdate{ @@ -385,6 +396,34 @@ func Test(t *testing.T) { time.Sleep(100 * time.Millisecond) defer fx.ctrl.Finish() }) + t.Run("sync protocol compatibility", func(t *testing.T) { + fx := newFixture(t, func(fx *fixture) { + fx.networkConfig.EXPECT().GetNetworkMode().Return(pb.RpcAccount_DefaultConfig) + fx.spaceIdGetter.EXPECT().AllSpaceIds().Return([]string{"spaceId"}) + fx.nodeStatus.EXPECT().GetNodeStatus("spaceId").Return(nodestatus.Online) + fx.nodeUsage.EXPECT().GetNodeUsage(mock.Anything).Return(&files.NodeUsageResponse{ + Usage: filesync.NodeUsage{ + BytesLeft: 1000, + AccountBytesLimit: 1000, + }, + LocalUsageBytes: 0, + }, nil) + fx.nodeConf.EXPECT().NetworkCompatibilityStatus().Return(nodeconf.NetworkCompatibilityStatusOk) + fx.compatibilityChecker.EXPECT().IsVersionCompatibleWithPeers().Return(false) + fx.eventSender.EXPECT().Broadcast(&pb.Event{ + Messages: []*pb.EventMessage{{ + Value: &pb.EventMessageValueOfSpaceSyncStatusUpdate{ + SpaceSyncStatusUpdate: &pb.EventSpaceSyncStatusUpdate{ + Id: "spaceId", + Status: pb.EventSpace_SyncProtocolInCompatibleMode, + Network: pb.EventSpace_Anytype, + }, + }, + }}, + }) + }) + defer fx.ctrl.Finish() + }) t.Run("hook new session", func(t *testing.T) { fx := newFixture(t, func(fx *fixture) { objs := genSyncingObjects(10, 100, "spaceId") @@ -400,6 +439,7 @@ func Test(t *testing.T) { LocalUsageBytes: 0, }, nil) fx.nodeConf.EXPECT().NetworkCompatibilityStatus().AnyTimes().Return(nodeconf.NetworkCompatibilityStatusIncompatible) + fx.compatibilityChecker.EXPECT().IsVersionCompatibleWithPeers().Return(true) fx.eventSender.EXPECT().Broadcast(&pb.Event{ Messages: []*pb.EventMessage{{ Value: &pb.EventMessageValueOfSpaceSyncStatusUpdate{ diff --git a/docs/proto.md b/docs/proto.md index 2c88ee7f6..b7cdc6812 100644 --- a/docs/proto.md +++ b/docs/proto.md @@ -25802,6 +25802,7 @@ Precondition: user A and user B opened the same block | Syncing | 1 | | | Error | 2 | | | Offline | 3 | | +| SyncProtocolInCompatibleMode | 4 | | diff --git a/pb/events.pb.go b/pb/events.pb.go index 1079df5c0..9d0bcd326 100644 --- a/pb/events.pb.go +++ b/pb/events.pb.go @@ -98,10 +98,11 @@ func (EventStatusThreadSyncStatus) EnumDescriptor() ([]byte, []int) { type EventSpaceStatus int32 const ( - EventSpace_Synced EventSpaceStatus = 0 - EventSpace_Syncing EventSpaceStatus = 1 - EventSpace_Error EventSpaceStatus = 2 - EventSpace_Offline EventSpaceStatus = 3 + EventSpace_Synced EventSpaceStatus = 0 + EventSpace_Syncing EventSpaceStatus = 1 + EventSpace_Error EventSpaceStatus = 2 + EventSpace_Offline EventSpaceStatus = 3 + EventSpace_SyncProtocolInCompatibleMode EventSpaceStatus = 4 ) var EventSpaceStatus_name = map[int32]string{ @@ -109,13 +110,15 @@ var EventSpaceStatus_name = map[int32]string{ 1: "Syncing", 2: "Error", 3: "Offline", + 4: "SyncProtocolInCompatibleMode", } var EventSpaceStatus_value = map[string]int32{ - "Synced": 0, - "Syncing": 1, - "Error": 2, - "Offline": 3, + "Synced": 0, + "Syncing": 1, + "Error": 2, + "Offline": 3, + "SyncProtocolInCompatibleMode": 4, } func (x EventSpaceStatus) String() string { @@ -11595,370 +11598,372 @@ func init() { func init() { proto.RegisterFile("pb/protos/events.proto", fileDescriptor_a966342d378ae5f5) } var fileDescriptor_a966342d378ae5f5 = []byte{ - // 5807 bytes of a gzipped FileDescriptorProto + // 5827 bytes of a gzipped FileDescriptorProto 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x5c, 0x49, 0x8c, 0x1c, 0xc9, 0x75, 0xad, 0x7d, 0xf9, 0xbd, 0xb0, 0x18, 0xc3, 0xe1, 0xe4, 0x24, 0x7b, 0x38, 0x9c, 0xe6, 0xaa, 0x19, 0xb2, 0xc8, 0xe1, 0xd6, 0x14, 0xc5, 0x21, 0xd9, 0x1b, 0xa7, 0x8b, 0x4b, 0xb3, 0x1d, 0x4d, 0x52, 0xa3, 0x91, 0x20, 0x28, 0xbb, 0x32, 0xba, 0x3a, 0xc5, 0xec, 0xcc, 0x52, 0x66, 0x76, 0x93, 0x2d, 0xd9, 0xb2, 0xe0, 0x05, 0x86, 0x01, 0x1b, 0xf6, 0x49, 0x36, 0x7c, 0xb3, 0x61, 0x03, 0x3e, - 0xd8, 0x86, 0x0d, 0x1f, 0xac, 0x93, 0x61, 0xc0, 0x30, 0xe0, 0x15, 0x90, 0x01, 0x1f, 0x7c, 0x93, - 0x30, 0xba, 0xf8, 0xe2, 0x83, 0x2c, 0xc0, 0xf0, 0xc9, 0x30, 0x62, 0xc9, 0xcc, 0x88, 0x5c, 0x2a, - 0xab, 0x34, 0x23, 0x2f, 0xf0, 0x9c, 0xaa, 0x22, 0xe2, 0xbf, 0x17, 0xdb, 0xff, 0xb1, 0xfc, 0x88, - 0x48, 0x38, 0x3a, 0xdc, 0xba, 0x38, 0xf4, 0xdc, 0xc0, 0xf5, 0x2f, 0x92, 0x7d, 0xe2, 0x04, 0x7e, - 0x97, 0x85, 0x50, 0xd3, 0x70, 0x0e, 0x82, 0x83, 0x21, 0xd1, 0x4f, 0x0d, 0x9f, 0x0f, 0x2e, 0xda, - 0xd6, 0xd6, 0xc5, 0xe1, 0xd6, 0xc5, 0x5d, 0xd7, 0x24, 0x76, 0x28, 0xce, 0x02, 0x42, 0x5c, 0x9f, - 0x1b, 0xb8, 0xee, 0xc0, 0x26, 0x3c, 0x6d, 0x6b, 0x6f, 0xfb, 0xa2, 0x1f, 0x78, 0x7b, 0xfd, 0x80, - 0xa7, 0xce, 0xff, 0xe1, 0x9f, 0x95, 0xa1, 0xbe, 0x4a, 0xe9, 0xd1, 0x65, 0x68, 0xed, 0x12, 0xdf, - 0x37, 0x06, 0xc4, 0xd7, 0xca, 0x27, 0xaa, 0xe7, 0xa6, 0x2e, 0x1f, 0xed, 0x8a, 0xac, 0xba, 0x4c, - 0xa2, 0xfb, 0x88, 0x27, 0xe3, 0x48, 0x0e, 0xcd, 0x41, 0xbb, 0xef, 0x3a, 0x01, 0x79, 0x19, 0xf4, - 0x4c, 0xad, 0x72, 0xa2, 0x7c, 0xae, 0x8d, 0xe3, 0x08, 0x74, 0x15, 0xda, 0x96, 0x63, 0x05, 0x96, - 0x11, 0xb8, 0x9e, 0x56, 0x3d, 0x51, 0x56, 0x28, 0x59, 0x21, 0xbb, 0x8b, 0xfd, 0xbe, 0xbb, 0xe7, - 0x04, 0x38, 0x16, 0x44, 0x1a, 0x34, 0x03, 0xcf, 0xe8, 0x93, 0x9e, 0xa9, 0xd5, 0x18, 0x63, 0x18, - 0xd4, 0x7f, 0x74, 0x01, 0x9a, 0xa2, 0x0c, 0xe8, 0x0e, 0x4c, 0x19, 0x1c, 0xbb, 0xb9, 0xe3, 0xbe, - 0xd0, 0xca, 0x8c, 0xfd, 0x58, 0xa2, 0xc0, 0x82, 0xbd, 0x4b, 0x45, 0xd6, 0x4a, 0x58, 0x46, 0xa0, - 0x1e, 0xcc, 0x8a, 0xe0, 0x0a, 0x09, 0x0c, 0xcb, 0xf6, 0xb5, 0xbf, 0xe1, 0x24, 0xc7, 0x73, 0x48, - 0x84, 0xd8, 0x5a, 0x09, 0x27, 0x80, 0xe8, 0x0b, 0xf0, 0x8a, 0x88, 0x59, 0x76, 0x9d, 0x6d, 0x6b, - 0xf0, 0x74, 0x68, 0x1a, 0x01, 0xd1, 0xfe, 0x96, 0xf3, 0x9d, 0xca, 0xe1, 0xe3, 0xb2, 0x5d, 0x2e, - 0xbc, 0x56, 0xc2, 0x59, 0x1c, 0xe8, 0x1e, 0xcc, 0x88, 0x68, 0x41, 0xfa, 0x77, 0x9c, 0xf4, 0x8d, - 0x1c, 0xd2, 0x88, 0x4d, 0x85, 0xa1, 0x2f, 0xc2, 0x11, 0x11, 0xf1, 0xd0, 0x72, 0x9e, 0x2f, 0xef, - 0x18, 0xb6, 0x4d, 0x9c, 0x01, 0xd1, 0xfe, 0x7e, 0x74, 0x19, 0x15, 0xe1, 0xb5, 0x12, 0xce, 0x24, - 0x41, 0x8f, 0xa1, 0xe3, 0x6e, 0x7d, 0x95, 0xf4, 0xc3, 0x06, 0xd9, 0x24, 0x81, 0xd6, 0x61, 0xbc, - 0x6f, 0x25, 0x78, 0x1f, 0x33, 0xb1, 0xb0, 0x29, 0xbb, 0x9b, 0x24, 0x58, 0x2b, 0xe1, 0x14, 0x18, - 0x3d, 0x05, 0xa4, 0xc4, 0x2d, 0xee, 0x12, 0xc7, 0xd4, 0x2e, 0x33, 0xca, 0x93, 0xa3, 0x29, 0x99, - 0xe8, 0x5a, 0x09, 0x67, 0x10, 0xa4, 0x68, 0x9f, 0x3a, 0x3e, 0x09, 0xb4, 0x2b, 0xe3, 0xd0, 0x32, - 0xd1, 0x14, 0x2d, 0x8b, 0xa5, 0x6d, 0xcb, 0x63, 0x31, 0xb1, 0x8d, 0xc0, 0x72, 0x1d, 0x51, 0xde, - 0xab, 0x8c, 0xf8, 0x74, 0x36, 0x71, 0x24, 0x1b, 0x95, 0x38, 0x93, 0x04, 0x7d, 0x19, 0x5e, 0x4d, - 0xc4, 0x63, 0xb2, 0xeb, 0xee, 0x13, 0xed, 0x1a, 0x63, 0x3f, 0x53, 0xc4, 0xce, 0xa5, 0xd7, 0x4a, - 0x38, 0x9b, 0x06, 0x2d, 0xc1, 0x74, 0x98, 0xc0, 0x68, 0xaf, 0x33, 0xda, 0xb9, 0x3c, 0x5a, 0x41, - 0xa6, 0x60, 0xa8, 0x2d, 0xf2, 0xf0, 0xb2, 0xed, 0xfa, 0x44, 0x5b, 0xcc, 0xb4, 0x45, 0x41, 0xc1, - 0x44, 0xa8, 0x2d, 0x4a, 0x08, 0xb9, 0x92, 0x7e, 0xe0, 0x59, 0x7d, 0x56, 0x40, 0xaa, 0x45, 0x0b, - 0xa3, 0x2b, 0x19, 0x0b, 0x0b, 0x55, 0xca, 0xa6, 0x41, 0x18, 0x0e, 0xf9, 0x7b, 0x5b, 0x7e, 0xdf, - 0xb3, 0x86, 0x34, 0x6e, 0xd1, 0x34, 0xb5, 0x5b, 0xa3, 0x98, 0x37, 0x25, 0xe1, 0xee, 0xa2, 0x49, - 0x7b, 0x27, 0x49, 0x80, 0xbe, 0x08, 0x48, 0x8e, 0x12, 0xcd, 0xf7, 0x1e, 0xa3, 0xfd, 0xcc, 0x18, - 0xb4, 0x51, 0x5b, 0x66, 0xd0, 0x20, 0x03, 0x8e, 0xc8, 0xb1, 0x1b, 0xae, 0x6f, 0xd1, 0x5f, 0xed, - 0x36, 0xa3, 0x7f, 0x67, 0x0c, 0xfa, 0x10, 0x42, 0x15, 0x2b, 0x8b, 0x2a, 0x99, 0xc5, 0x32, 0x35, - 0x6b, 0xe2, 0xf9, 0xda, 0x9d, 0xb1, 0xb3, 0x08, 0x21, 0xc9, 0x2c, 0xc2, 0xf8, 0x64, 0x13, 0xbd, - 0xef, 0xb9, 0x7b, 0x43, 0x5f, 0xbb, 0x3b, 0x76, 0x13, 0x71, 0x40, 0xb2, 0x89, 0x78, 0x2c, 0xba, - 0x0e, 0xad, 0x2d, 0xdb, 0xed, 0x3f, 0xa7, 0x9d, 0x59, 0x61, 0x94, 0x5a, 0x82, 0x72, 0x89, 0x26, - 0x8b, 0xee, 0x8b, 0x64, 0xa9, 0xb2, 0xb2, 0xff, 0x2b, 0xc4, 0x26, 0x01, 0x11, 0xd3, 0xd2, 0xb1, - 0x4c, 0x28, 0x17, 0xa1, 0xca, 0x2a, 0x21, 0xd0, 0x0a, 0x4c, 0x6d, 0x5b, 0x36, 0xf1, 0x9f, 0x0e, - 0x6d, 0xd7, 0xe0, 0x73, 0xd4, 0xd4, 0xe5, 0x13, 0x99, 0x04, 0xf7, 0x62, 0x39, 0xca, 0x22, 0xc1, - 0xd0, 0x6d, 0x68, 0xef, 0x1a, 0xde, 0x73, 0xbf, 0xe7, 0x6c, 0xbb, 0x5a, 0x3d, 0x73, 0xe2, 0xe1, - 0x1c, 0x8f, 0x42, 0xa9, 0xb5, 0x12, 0x8e, 0x21, 0x74, 0xfa, 0x62, 0x85, 0xda, 0x24, 0xc1, 0x3d, - 0x8b, 0xd8, 0xa6, 0xaf, 0x35, 0x18, 0xc9, 0x9b, 0x99, 0x24, 0x9b, 0x24, 0xe8, 0x72, 0x31, 0x3a, - 0x7d, 0xa9, 0x40, 0xf4, 0x01, 0xbc, 0x12, 0xc6, 0x2c, 0xef, 0x58, 0xb6, 0xe9, 0x11, 0xa7, 0x67, - 0xfa, 0x5a, 0x33, 0x73, 0x66, 0x88, 0xf9, 0x24, 0x59, 0x3a, 0x7b, 0x65, 0x50, 0xd0, 0x91, 0x31, - 0x8c, 0x96, 0x4d, 0x52, 0x6b, 0x65, 0x8e, 0x8c, 0x31, 0xb5, 0x2c, 0x4c, 0xb5, 0x2b, 0x8b, 0x04, - 0x99, 0xf0, 0x5a, 0x18, 0xbf, 0x64, 0xf4, 0x9f, 0x0f, 0x3c, 0x77, 0xcf, 0x31, 0x97, 0x5d, 0xdb, - 0xf5, 0xb4, 0x36, 0xe3, 0x3f, 0x97, 0xcb, 0x9f, 0x90, 0x5f, 0x2b, 0xe1, 0x3c, 0x2a, 0xb4, 0x0c, - 0xd3, 0x61, 0xd2, 0x13, 0xf2, 0x32, 0xd0, 0x20, 0x73, 0xfa, 0x8d, 0xa9, 0xa9, 0x10, 0x1d, 0x20, - 0x65, 0x90, 0x4c, 0x42, 0x55, 0x42, 0x9b, 0x2a, 0x20, 0xa1, 0x42, 0x32, 0x09, 0x0d, 0xcb, 0x24, - 0x74, 0xfa, 0xd5, 0x66, 0x0a, 0x48, 0xa8, 0x90, 0x4c, 0x42, 0xc3, 0x74, 0xaa, 0x8e, 0x6a, 0xea, - 0xba, 0xcf, 0xa9, 0x3e, 0x69, 0xb3, 0x99, 0x53, 0xb5, 0xd4, 0x5a, 0x42, 0x90, 0x4e, 0xd5, 0x49, - 0x30, 0x5d, 0xa0, 0x84, 0x71, 0x8b, 0xb6, 0x35, 0x70, 0xb4, 0x43, 0x23, 0x74, 0x99, 0xb2, 0x31, - 0x29, 0xba, 0x40, 0x51, 0x60, 0xe8, 0xae, 0x30, 0xcb, 0x4d, 0x12, 0xac, 0x58, 0xfb, 0xda, 0xe1, - 0xcc, 0x69, 0x28, 0x66, 0x59, 0xb1, 0xf6, 0x23, 0xbb, 0xe4, 0x10, 0xb9, 0x6a, 0xe1, 0x24, 0xa7, - 0xbd, 0x5a, 0x50, 0xb5, 0x50, 0x50, 0xae, 0x5a, 0x18, 0x27, 0x57, 0xed, 0xa1, 0x11, 0x90, 0x97, - 0xda, 0xeb, 0x05, 0x55, 0x63, 0x52, 0x72, 0xd5, 0x58, 0x04, 0x9d, 0xdd, 0xc2, 0x88, 0x67, 0xc4, - 0x0b, 0xac, 0xbe, 0x61, 0xf3, 0xa6, 0x3a, 0x95, 0x39, 0x07, 0xc5, 0x7c, 0x8a, 0x34, 0x9d, 0xdd, - 0x32, 0x69, 0xe4, 0x8a, 0x3f, 0x31, 0xb6, 0x6c, 0x82, 0xdd, 0x17, 0xda, 0xe9, 0x82, 0x8a, 0x87, - 0x82, 0x72, 0xc5, 0xc3, 0x38, 0x79, 0x6c, 0xf9, 0xbc, 0x65, 0x0e, 0x48, 0xa0, 0x9d, 0x2b, 0x18, - 0x5b, 0xb8, 0x98, 0x3c, 0xb6, 0xf0, 0x98, 0x68, 0x04, 0x58, 0x31, 0x02, 0x63, 0xdf, 0x22, 0x2f, - 0x9e, 0x59, 0xe4, 0x05, 0x9d, 0xd8, 0x5f, 0x19, 0x31, 0x02, 0x84, 0xb2, 0x5d, 0x21, 0x1c, 0x8d, - 0x00, 0x09, 0x92, 0x68, 0x04, 0x90, 0xe3, 0xc5, 0xb0, 0x7e, 0x64, 0xc4, 0x08, 0xa0, 0xf0, 0x47, - 0x63, 0x7c, 0x1e, 0x15, 0x32, 0xe0, 0x68, 0x2a, 0xe9, 0xb1, 0x67, 0x12, 0x4f, 0x7b, 0x83, 0x65, - 0x72, 0xb6, 0x38, 0x13, 0x26, 0xbe, 0x56, 0xc2, 0x39, 0x44, 0xa9, 0x2c, 0x36, 0xdd, 0x3d, 0xaf, - 0x4f, 0x68, 0x3b, 0x9d, 0x1c, 0x27, 0x8b, 0x48, 0x3c, 0x95, 0x45, 0x94, 0x82, 0xf6, 0xe1, 0x8d, - 0x28, 0x85, 0x66, 0xcc, 0x66, 0x51, 0x96, 0xbb, 0xd8, 0x58, 0x9c, 0x61, 0x39, 0x75, 0x47, 0xe7, - 0x94, 0x44, 0xad, 0x95, 0xf0, 0x68, 0x5a, 0x74, 0x00, 0xc7, 0x15, 0x01, 0x3e, 0xcf, 0xcb, 0x19, - 0x9f, 0x65, 0x19, 0x5f, 0x1c, 0x9d, 0x71, 0x0a, 0xb6, 0x56, 0xc2, 0x05, 0xc4, 0x68, 0x08, 0xc7, - 0x94, 0xc6, 0x08, 0x0d, 0x5b, 0xa8, 0xc8, 0x4f, 0xb3, 0x7c, 0xcf, 0x8f, 0xce, 0x57, 0xc5, 0xac, - 0x95, 0xf0, 0x28, 0x4a, 0x34, 0x00, 0x2d, 0x33, 0x99, 0xf6, 0xe4, 0x37, 0x32, 0x97, 0x3d, 0x39, - 0xd9, 0xf1, 0xbe, 0xcc, 0x25, 0xcb, 0xd4, 0x7c, 0xd1, 0x9c, 0x3f, 0x33, 0xae, 0xe6, 0x47, 0xed, - 0x98, 0x47, 0xa5, 0xf4, 0x1d, 0x4d, 0x7a, 0x62, 0x78, 0x03, 0x12, 0xf0, 0x86, 0xee, 0x99, 0xb4, - 0x52, 0xdf, 0x1c, 0xa7, 0xef, 0x52, 0x30, 0xa5, 0xef, 0x32, 0x89, 0x91, 0x0f, 0x73, 0x8a, 0x44, - 0xcf, 0x5f, 0x76, 0x6d, 0x9b, 0xf4, 0xc3, 0xd6, 0xfc, 0x59, 0x96, 0xf1, 0x85, 0xd1, 0x19, 0x27, - 0x40, 0x6b, 0x25, 0x3c, 0x92, 0x34, 0x55, 0xdf, 0xc7, 0xb6, 0x99, 0xd0, 0x19, 0x6d, 0x2c, 0x5d, - 0x4d, 0xc2, 0x52, 0xf5, 0x4d, 0x49, 0xa4, 0x74, 0x55, 0x92, 0xa0, 0xd5, 0x7d, 0x6d, 0x1c, 0x5d, - 0x55, 0x31, 0x29, 0x5d, 0x55, 0x93, 0xe9, 0xec, 0xb6, 0xe7, 0x13, 0x8f, 0x71, 0xdc, 0x77, 0x2d, - 0x47, 0x7b, 0x33, 0x73, 0x76, 0x7b, 0xea, 0x13, 0x4f, 0x64, 0x44, 0xa5, 0xe8, 0xec, 0xa6, 0xc0, - 0x14, 0x9e, 0x87, 0x64, 0x3b, 0xd0, 0x4e, 0x14, 0xf1, 0x50, 0x29, 0x85, 0x87, 0x46, 0xd0, 0x99, - 0x22, 0x8a, 0xd8, 0x24, 0xb4, 0x57, 0xb0, 0xe1, 0x0c, 0x88, 0xf6, 0x56, 0xe6, 0x4c, 0x21, 0xd1, - 0x49, 0xc2, 0x74, 0xa6, 0xc8, 0x22, 0xa1, 0x3b, 0xff, 0x28, 0x9e, 0xae, 0xc8, 0x38, 0xf5, 0x7c, - 0xe6, 0xce, 0x5f, 0xa2, 0x8e, 0x44, 0xe9, 0x1e, 0x24, 0x4d, 0x80, 0x3e, 0x03, 0xb5, 0xa1, 0xe5, - 0x0c, 0x34, 0x93, 0x11, 0xbd, 0x92, 0x20, 0xda, 0xb0, 0x9c, 0xc1, 0x5a, 0x09, 0x33, 0x11, 0x74, - 0x0b, 0x60, 0xe8, 0xb9, 0x7d, 0xe2, 0xfb, 0xeb, 0xe4, 0x85, 0x46, 0x18, 0x40, 0x4f, 0x02, 0xb8, - 0x40, 0x77, 0x9d, 0xd0, 0x79, 0x59, 0x92, 0x47, 0xab, 0x30, 0x23, 0x42, 0xc2, 0xca, 0xb7, 0x33, - 0x17, 0x7f, 0x21, 0x41, 0xec, 0x05, 0x52, 0x50, 0x74, 0xef, 0x23, 0x22, 0x56, 0x5c, 0x87, 0x68, - 0x83, 0xcc, 0xbd, 0x4f, 0x48, 0x42, 0x45, 0xe8, 0x1a, 0x4b, 0x42, 0xa0, 0x25, 0x98, 0x0e, 0x76, - 0x3c, 0x62, 0x98, 0x9b, 0x81, 0x11, 0xec, 0xf9, 0x9a, 0x93, 0xb9, 0x4c, 0xe3, 0x89, 0xdd, 0x27, - 0x4c, 0x92, 0x2e, 0x41, 0x65, 0x0c, 0x5a, 0x87, 0x0e, 0xdd, 0x08, 0x3d, 0xb4, 0x76, 0xad, 0x00, - 0x13, 0xa3, 0xbf, 0x43, 0x4c, 0xcd, 0xcd, 0xdc, 0x44, 0xd1, 0x65, 0x6f, 0x57, 0x96, 0xa3, 0xab, - 0x95, 0x24, 0x16, 0xad, 0xc1, 0x2c, 0x8d, 0xdb, 0x1c, 0x1a, 0x7d, 0xf2, 0xd4, 0x37, 0x06, 0x44, - 0x1b, 0x66, 0x6a, 0x20, 0x63, 0x8b, 0xa5, 0xe8, 0x62, 0x45, 0xc5, 0x85, 0x4c, 0x0f, 0xdd, 0xbe, - 0x61, 0x73, 0xa6, 0xaf, 0xe5, 0x33, 0xc5, 0x52, 0x21, 0x53, 0x1c, 0xa3, 0xd4, 0x91, 0xb7, 0xbd, - 0xa9, 0xed, 0x17, 0xd4, 0x51, 0xc8, 0x29, 0x75, 0x14, 0x71, 0x94, 0xcf, 0x71, 0x03, 0x6b, 0xdb, - 0xea, 0x0b, 0xfb, 0x75, 0x4c, 0xcd, 0xcb, 0xe4, 0x5b, 0x97, 0xc4, 0xba, 0x9b, 0xdc, 0xb3, 0x94, - 0xc2, 0xa2, 0x27, 0x80, 0xe4, 0x38, 0xa1, 0x54, 0x3e, 0x63, 0x9c, 0x1f, 0xc5, 0x18, 0x69, 0x56, - 0x06, 0x9e, 0x96, 0x72, 0x68, 0x1c, 0xd0, 0xed, 0xed, 0x92, 0xe7, 0x1a, 0x66, 0xdf, 0xf0, 0x03, - 0x2d, 0xc8, 0x2c, 0xe5, 0x06, 0x17, 0xeb, 0x46, 0x72, 0xb4, 0x94, 0x49, 0x2c, 0xe5, 0xdb, 0x25, - 0xbb, 0x5b, 0xc4, 0xf3, 0x77, 0xac, 0xa1, 0x28, 0xe3, 0x5e, 0x26, 0xdf, 0xa3, 0x48, 0x2c, 0x2e, - 0x61, 0x0a, 0x4b, 0x17, 0xe2, 0x3e, 0xed, 0xed, 0xcd, 0x03, 0xa7, 0xcf, 0x95, 0x51, 0x90, 0xbe, - 0xc8, 0x5c, 0x88, 0x33, 0xcd, 0xe8, 0xc6, 0xc2, 0x31, 0x75, 0x36, 0x0d, 0x7a, 0x00, 0x87, 0x86, - 0x97, 0x87, 0x0a, 0xf3, 0xcb, 0xcc, 0x85, 0xf3, 0xc6, 0xe5, 0x8d, 0x24, 0x65, 0x12, 0xb9, 0xd4, - 0x84, 0xfa, 0xbe, 0x61, 0xef, 0x11, 0xfd, 0x4f, 0xea, 0xd0, 0x14, 0xfe, 0x58, 0x7d, 0x1d, 0x6a, - 0xcc, 0x79, 0x7d, 0x04, 0xea, 0x96, 0x63, 0x92, 0x97, 0xcc, 0xef, 0x5d, 0xc7, 0x3c, 0x80, 0x2e, - 0x41, 0x53, 0xf8, 0x67, 0x85, 0x47, 0x24, 0xcf, 0xdb, 0x1e, 0x8a, 0xe9, 0x1f, 0x42, 0x33, 0x74, - 0x62, 0xcf, 0x41, 0x7b, 0xe8, 0xb9, 0x54, 0xf3, 0x7a, 0x26, 0xa3, 0x6d, 0xe3, 0x38, 0x02, 0xbd, - 0x0b, 0x4d, 0x53, 0xb8, 0xc9, 0x39, 0xf5, 0x6b, 0x5d, 0x7e, 0xae, 0xd0, 0x0d, 0xcf, 0x15, 0xba, - 0x9b, 0xec, 0x5c, 0x01, 0x87, 0x72, 0xfa, 0xb7, 0xca, 0xd0, 0xe0, 0xbe, 0x6c, 0x7d, 0x1f, 0x1a, - 0xa2, 0x89, 0xae, 0x41, 0xa3, 0xcf, 0xe2, 0xb4, 0xa4, 0x1f, 0x5b, 0x29, 0xa1, 0x70, 0x8e, 0x63, - 0x21, 0x4c, 0x61, 0x3e, 0x1f, 0x71, 0x2a, 0x23, 0x61, 0xbc, 0x05, 0xb1, 0x10, 0xfe, 0x1f, 0xcb, - 0xf7, 0x3f, 0xcb, 0x30, 0xa3, 0xba, 0xc8, 0xe7, 0xa0, 0xdd, 0x8f, 0x9c, 0xee, 0xa2, 0x75, 0xfb, - 0x92, 0x03, 0x1d, 0xfa, 0xb6, 0x45, 0x9c, 0x80, 0x79, 0x83, 0x2a, 0x99, 0x8b, 0x8c, 0x4c, 0x97, - 0x7c, 0x77, 0x39, 0x82, 0x61, 0x89, 0x42, 0xff, 0x26, 0x40, 0x9c, 0x82, 0x4e, 0x44, 0xc3, 0xfe, - 0xba, 0xb1, 0x1b, 0x66, 0x2f, 0x47, 0x49, 0x12, 0x1b, 0x46, 0xb0, 0x23, 0x4e, 0x72, 0xe4, 0x28, - 0x74, 0x1e, 0x0e, 0xfb, 0xd6, 0xc0, 0x31, 0x82, 0x3d, 0x8f, 0x3c, 0x23, 0x9e, 0xb5, 0x6d, 0x11, - 0x93, 0x39, 0xcf, 0x5a, 0x38, 0x9d, 0xa0, 0xff, 0x72, 0x1b, 0x1a, 0x7c, 0x39, 0xa7, 0xff, 0x7b, - 0x25, 0xd2, 0x31, 0xfd, 0x2f, 0xcb, 0x50, 0xe7, 0x6e, 0xed, 0x59, 0xa8, 0x58, 0xa1, 0x9a, 0x55, - 0x2c, 0x13, 0xdd, 0x93, 0xf5, 0xab, 0x9a, 0xb1, 0xd6, 0xc9, 0x72, 0xf3, 0x77, 0x1f, 0x90, 0x83, - 0x67, 0xd4, 0x46, 0x22, 0xa5, 0x43, 0x47, 0xa1, 0xe1, 0xef, 0x6d, 0xf5, 0x4c, 0x5f, 0xab, 0x9e, - 0xa8, 0x9e, 0x6b, 0x63, 0x11, 0xd2, 0xef, 0x43, 0x2b, 0x14, 0x46, 0x1d, 0xa8, 0x3e, 0x27, 0x07, - 0x22, 0x73, 0xfa, 0x17, 0x9d, 0x17, 0xb6, 0x16, 0x99, 0x4d, 0x52, 0xb7, 0x79, 0x2e, 0xc2, 0x20, - 0xbf, 0x02, 0x55, 0xba, 0x80, 0x4a, 0x56, 0x61, 0x72, 0x13, 0xc9, 0x2d, 0xed, 0x32, 0xd4, 0xf9, - 0xd1, 0x42, 0x32, 0x0f, 0x04, 0xb5, 0xe7, 0xe4, 0x80, 0xb7, 0x51, 0x1b, 0xb3, 0xff, 0xb9, 0x24, - 0x7f, 0x51, 0x85, 0x69, 0xd9, 0x9d, 0xaa, 0xaf, 0x42, 0x75, 0xd1, 0x4c, 0x37, 0xbd, 0x06, 0x4d, - 0x63, 0x3b, 0x20, 0x5e, 0x74, 0x82, 0x17, 0x06, 0xe9, 0x28, 0xc3, 0xb8, 0x58, 0x3f, 0xb7, 0x31, - 0x0f, 0xe8, 0x5d, 0x68, 0x08, 0x2f, 0x75, 0x92, 0x29, 0x92, 0xaf, 0xc8, 0xf2, 0xf7, 0xa1, 0x15, - 0x39, 0x9d, 0x3f, 0x6e, 0xde, 0x1e, 0xb4, 0x22, 0xef, 0xf2, 0x11, 0xa8, 0x07, 0x6e, 0x60, 0xd8, - 0x8c, 0xae, 0x8a, 0x79, 0x80, 0x1a, 0x9a, 0x43, 0x5e, 0x06, 0xcb, 0xd1, 0x28, 0x58, 0xc5, 0x71, - 0x04, 0x1f, 0xe4, 0xc8, 0x3e, 0x4f, 0xad, 0xf2, 0xd4, 0x28, 0x22, 0xce, 0xb3, 0x26, 0xe7, 0x79, - 0x00, 0x0d, 0xe1, 0x72, 0x8e, 0xd2, 0xcb, 0x52, 0x3a, 0x5a, 0x84, 0xfa, 0x80, 0xa6, 0x8b, 0x5e, - 0x7f, 0x27, 0x31, 0x44, 0xf0, 0x95, 0xe4, 0xb2, 0xeb, 0x04, 0x54, 0x8d, 0xd5, 0x9d, 0x34, 0xe6, - 0x48, 0xda, 0x85, 0x1e, 0x3f, 0x3f, 0xe0, 0x16, 0x25, 0x42, 0xfa, 0xef, 0x95, 0xa1, 0x1d, 0x1d, - 0xd8, 0xe8, 0x1f, 0xe6, 0x19, 0xcf, 0x22, 0xcc, 0x78, 0x42, 0x8a, 0x8e, 0x0e, 0xa1, 0x09, 0x1d, - 0x4b, 0x94, 0x04, 0x4b, 0x32, 0x58, 0x45, 0xe8, 0xb7, 0x72, 0x3b, 0x75, 0x1e, 0xa6, 0x43, 0xd1, - 0x07, 0xb1, 0xea, 0x29, 0x71, 0xba, 0x1e, 0xa1, 0x3b, 0x50, 0xb5, 0x4c, 0x7e, 0x7e, 0xdc, 0xc6, - 0xf4, 0xaf, 0xbe, 0x0d, 0xd3, 0xb2, 0xdb, 0x56, 0x7f, 0x96, 0x6d, 0x3d, 0x77, 0x68, 0x36, 0x92, - 0x8b, 0xb8, 0x92, 0x58, 0x9b, 0x86, 0x55, 0x88, 0x45, 0xb0, 0x02, 0xd0, 0x5f, 0x83, 0x3a, 0x3f, - 0x4c, 0x4a, 0x30, 0xeb, 0xbf, 0xd5, 0x87, 0x3a, 0xeb, 0x04, 0xfd, 0x0a, 0x37, 0x80, 0xf3, 0xd0, - 0x60, 0x1b, 0xa3, 0xf0, 0x98, 0xfb, 0x48, 0x56, 0x8f, 0x61, 0x21, 0xa3, 0x2f, 0xc3, 0x94, 0xe4, - 0xc6, 0xa7, 0x1a, 0xcb, 0x12, 0x22, 0x2d, 0x08, 0x83, 0x48, 0x87, 0x16, 0x9d, 0x2c, 0xc5, 0x00, - 0x4a, 0xeb, 0x1f, 0x85, 0xf5, 0x53, 0xd0, 0x10, 0x1b, 0x3d, 0x5d, 0x1c, 0x5b, 0xf4, 0xa2, 0x56, - 0x8a, 0xc2, 0xfa, 0x97, 0xa0, 0x1d, 0x79, 0xfb, 0xd1, 0x63, 0x98, 0x16, 0xde, 0x7e, 0xbe, 0x59, - 0xa1, 0xc2, 0xb3, 0x05, 0xda, 0x45, 0x77, 0x26, 0xec, 0xc0, 0xa0, 0xfb, 0xe4, 0x60, 0x48, 0xb0, - 0x42, 0xa0, 0xff, 0xe2, 0x39, 0xd6, 0xf2, 0xfa, 0x10, 0x5a, 0x91, 0x8b, 0x33, 0xd9, 0x0b, 0x0b, - 0x7c, 0x68, 0xac, 0x14, 0xfa, 0xe7, 0x39, 0x9e, 0x0e, 0xc0, 0x6c, 0x04, 0xd5, 0x8f, 0x41, 0xf5, - 0x01, 0x39, 0xa0, 0x16, 0xc2, 0x07, 0x52, 0x61, 0x21, 0x7c, 0xc0, 0xec, 0x41, 0x43, 0x1c, 0x35, - 0x24, 0xf3, 0xbb, 0x08, 0x8d, 0x6d, 0x7e, 0x7a, 0x51, 0x30, 0x64, 0x0a, 0x31, 0xfd, 0x0e, 0x4c, - 0xc9, 0x07, 0x0c, 0x49, 0xbe, 0x13, 0x30, 0xd5, 0x97, 0x8e, 0x30, 0x78, 0x37, 0xc8, 0x51, 0x3a, - 0x51, 0xd5, 0x31, 0xc5, 0xb0, 0x9a, 0xa9, 0x87, 0x6f, 0x65, 0x36, 0xfb, 0x08, 0x6d, 0x7c, 0x00, - 0x87, 0x92, 0x27, 0x09, 0xc9, 0x9c, 0xce, 0xc1, 0xa1, 0xad, 0xc4, 0xb9, 0x05, 0x1f, 0x03, 0x93, - 0xd1, 0x7a, 0x0f, 0xea, 0xdc, 0xd3, 0x9b, 0xa4, 0xb8, 0x04, 0x75, 0x83, 0x79, 0x92, 0x29, 0x70, - 0x56, 0xda, 0x4f, 0xca, 0xa5, 0x64, 0x50, 0xcc, 0x05, 0x75, 0x0b, 0x66, 0x54, 0xe7, 0x71, 0x92, - 0x72, 0x0d, 0x66, 0xf6, 0x15, 0x27, 0x35, 0xa7, 0x9e, 0xcf, 0xa4, 0x56, 0xa8, 0xb0, 0x0a, 0xd4, - 0x7f, 0xae, 0x01, 0x35, 0x76, 0xfa, 0x91, 0xcc, 0xe2, 0x3a, 0xd4, 0x02, 0xf2, 0x32, 0x5c, 0xa3, - 0xce, 0x8f, 0x3c, 0x4a, 0xe1, 0x5b, 0x70, 0x26, 0x8f, 0x3e, 0x0b, 0x75, 0x3f, 0x38, 0xb0, 0xc3, - 0x33, 0xbb, 0x93, 0xa3, 0x81, 0x9b, 0x54, 0x14, 0x73, 0x04, 0x85, 0x32, 0x5b, 0x10, 0xa7, 0x75, - 0x05, 0x50, 0x66, 0x84, 0x98, 0x23, 0xd0, 0x1d, 0x68, 0xf6, 0x77, 0x48, 0xff, 0x39, 0x31, 0xc5, - 0x31, 0xdd, 0xe9, 0xd1, 0xe0, 0x65, 0x2e, 0x8c, 0x43, 0x14, 0xcd, 0xbb, 0xcf, 0x7a, 0xb7, 0x31, - 0x4e, 0xde, 0xac, 0xc7, 0x31, 0x47, 0xa0, 0x55, 0x68, 0x5b, 0x7d, 0xd7, 0x59, 0xdd, 0x75, 0xbf, - 0x6a, 0x89, 0xf3, 0xb8, 0xb3, 0xa3, 0xe1, 0xbd, 0x50, 0x1c, 0xc7, 0xc8, 0x90, 0xa6, 0xb7, 0x4b, - 0xb7, 0xb4, 0xad, 0x71, 0x69, 0x98, 0x38, 0x8e, 0x91, 0xfa, 0x9c, 0xe8, 0xcf, 0x6c, 0x23, 0xbf, - 0x07, 0x75, 0xd6, 0xe4, 0xe8, 0x3d, 0x39, 0x79, 0x56, 0xca, 0x29, 0x77, 0xc4, 0x12, 0x5d, 0x15, - 0xf1, 0xb0, 0xf6, 0x57, 0x79, 0xa6, 0xc6, 0xe1, 0x11, 0xfd, 0xc6, 0x79, 0xde, 0x84, 0xa6, 0xe8, - 0x0a, 0xb5, 0xc0, 0xad, 0x50, 0xe0, 0x0d, 0xa8, 0x73, 0xc3, 0xcc, 0xae, 0xcf, 0x5b, 0xd0, 0x8e, - 0x1a, 0x73, 0xb4, 0x08, 0x6b, 0x9d, 0x1c, 0x91, 0x5f, 0xaa, 0x40, 0x9d, 0x9f, 0x02, 0xa5, 0x87, - 0x5a, 0xd9, 0x0a, 0x4e, 0x8e, 0x3e, 0x54, 0x92, 0xcd, 0xe0, 0x1e, 0xdb, 0xa8, 0xd1, 0x85, 0x79, - 0x74, 0xab, 0xea, 0x5c, 0x01, 0x7a, 0x23, 0x94, 0xc7, 0x31, 0xb4, 0xa0, 0x3b, 0x1f, 0x43, 0x3b, - 0x42, 0xa1, 0x25, 0xb5, 0x4b, 0xcf, 0x8f, 0xec, 0x8a, 0x64, 0x96, 0x82, 0xf0, 0xdb, 0x65, 0xa8, - 0xae, 0x58, 0xfb, 0xa9, 0x76, 0xb8, 0x11, 0x5a, 0x75, 0xd1, 0x70, 0xb0, 0x62, 0xed, 0x2b, 0x46, - 0xad, 0xaf, 0x86, 0x1a, 0x77, 0x4b, 0x2d, 0xde, 0x99, 0xd1, 0x2b, 0xb0, 0x98, 0x86, 0x17, 0xec, - 0xd7, 0x9a, 0x50, 0x63, 0x07, 0xac, 0x59, 0xe3, 0xd4, 0xc1, 0xb0, 0xb8, 0x60, 0xcc, 0x85, 0xc3, - 0x26, 0x5c, 0x26, 0xcf, 0xc7, 0x29, 0x23, 0x28, 0x1e, 0xa7, 0xb8, 0x47, 0x8a, 0x8a, 0x62, 0x8e, - 0xa0, 0x59, 0xee, 0x5a, 0xbb, 0x44, 0x0c, 0x53, 0x05, 0x59, 0x3e, 0xb2, 0x76, 0x09, 0x66, 0xf2, - 0x14, 0xb7, 0x63, 0xf8, 0x3b, 0x62, 0x84, 0x2a, 0xc0, 0xad, 0x19, 0xfe, 0x0e, 0x66, 0xf2, 0x14, - 0xe7, 0xd0, 0x2d, 0x61, 0x63, 0x1c, 0x1c, 0xdd, 0x29, 0x62, 0x26, 0x4f, 0x71, 0xbe, 0xf5, 0x75, - 0x22, 0xc6, 0xa4, 0x02, 0xdc, 0xa6, 0xf5, 0x75, 0x82, 0x99, 0x7c, 0x3c, 0x84, 0xb7, 0xc6, 0x6b, - 0x1a, 0x69, 0x08, 0x7f, 0x02, 0xb3, 0x81, 0x72, 0x4c, 0x20, 0x4e, 0xf9, 0xcf, 0x17, 0xf4, 0x8b, - 0x82, 0xc1, 0x09, 0x0e, 0x6a, 0x04, 0x6c, 0x03, 0x9c, 0x6d, 0x04, 0x6f, 0x40, 0xfd, 0xf3, 0x96, - 0x19, 0xec, 0xa8, 0xc9, 0x75, 0x65, 0xc8, 0xa3, 0xdd, 0x36, 0xd1, 0x90, 0x27, 0xf7, 0x3a, 0xe7, - 0x59, 0x81, 0x1a, 0x55, 0x9f, 0xc9, 0xf4, 0x38, 0xd6, 0xba, 0x8f, 0x35, 0x00, 0xcb, 0x0d, 0xcd, - 0x79, 0xe6, 0xa0, 0x46, 0x35, 0x24, 0xa7, 0x49, 0xe6, 0xa0, 0x46, 0xf5, 0x2e, 0x3f, 0x95, 0xf6, - 0xb6, 0x9a, 0x5a, 0x0d, 0x53, 0xcf, 0xc0, 0xac, 0xda, 0x1d, 0x39, 0x2c, 0x7f, 0xde, 0x84, 0x1a, - 0xbb, 0xad, 0x90, 0xb4, 0xc8, 0x9f, 0x82, 0x19, 0xde, 0x7f, 0x4b, 0x62, 0x09, 0x5e, 0xc9, 0xbc, - 0xac, 0xa4, 0xde, 0x81, 0x10, 0x2a, 0x20, 0x20, 0x58, 0x65, 0x18, 0x7f, 0x51, 0xc1, 0xa8, 0x14, - 0x8d, 0xbc, 0x15, 0x2d, 0x5e, 0x6b, 0x05, 0x57, 0x65, 0x18, 0x96, 0x2f, 0x81, 0xc3, 0x95, 0x2c, - 0x5a, 0x82, 0x16, 0x9d, 0x5a, 0x69, 0x73, 0x09, 0xb3, 0x3d, 0x33, 0x1a, 0xdf, 0x13, 0xd2, 0x38, - 0xc2, 0xd1, 0x89, 0xbd, 0x6f, 0x78, 0x26, 0x2b, 0x95, 0xb0, 0xe1, 0xb3, 0xa3, 0x49, 0x96, 0x43, - 0x71, 0x1c, 0x23, 0xd1, 0x03, 0x98, 0x32, 0x49, 0xe4, 0x27, 0x10, 0x46, 0xfd, 0x99, 0xd1, 0x44, - 0x2b, 0x31, 0x00, 0xcb, 0x68, 0x5a, 0xa6, 0x70, 0x6f, 0xe8, 0x17, 0x2e, 0x36, 0x18, 0x55, 0x7c, - 0x25, 0x31, 0x46, 0xea, 0xa7, 0x61, 0x46, 0xe9, 0xb7, 0x4f, 0x74, 0xd5, 0x21, 0xf7, 0x25, 0xe7, - 0x59, 0x88, 0xb6, 0x28, 0x17, 0xd4, 0x65, 0x47, 0xee, 0x8e, 0x44, 0x00, 0x1f, 0x42, 0x2b, 0xec, - 0x18, 0x74, 0x57, 0x2d, 0xc3, 0xdb, 0xc5, 0x65, 0x88, 0xfa, 0x54, 0xb0, 0xad, 0x43, 0x3b, 0xea, - 0x21, 0xb4, 0xa8, 0xd2, 0xbd, 0x53, 0x4c, 0x17, 0xf7, 0xae, 0xe0, 0xc3, 0x30, 0x25, 0x75, 0x14, - 0x5a, 0x56, 0x19, 0x2f, 0x14, 0x33, 0xca, 0xdd, 0x1c, 0xaf, 0x7a, 0xa2, 0x1e, 0x93, 0x7b, 0xa5, - 0x1a, 0xf7, 0xca, 0x1f, 0x37, 0xa1, 0x15, 0xdd, 0x10, 0xca, 0xd8, 0x63, 0xee, 0x79, 0x76, 0xe1, - 0x1e, 0x33, 0xc4, 0x77, 0x9f, 0x7a, 0x36, 0xa6, 0x08, 0xda, 0xc5, 0x81, 0x15, 0x44, 0xa6, 0x7a, - 0xb6, 0x18, 0xfa, 0x84, 0x8a, 0x63, 0x8e, 0x42, 0x8f, 0x55, 0x2d, 0xaf, 0x8d, 0x38, 0x41, 0x56, - 0x48, 0x72, 0x35, 0xbd, 0x07, 0x6d, 0x8b, 0x2e, 0xfd, 0xd6, 0xe2, 0x99, 0xf7, 0x9d, 0x62, 0xba, - 0x5e, 0x08, 0xc1, 0x31, 0x9a, 0x96, 0x6d, 0xdb, 0xd8, 0xa7, 0x76, 0xcd, 0xc8, 0x1a, 0xe3, 0x96, - 0xed, 0x5e, 0x0c, 0xc2, 0x32, 0x03, 0xba, 0x29, 0xd6, 0x2e, 0xcd, 0x82, 0x91, 0x25, 0x6e, 0xaa, - 0x78, 0xfd, 0xf2, 0x41, 0x6a, 0xa6, 0xe5, 0x66, 0x7c, 0x69, 0x0c, 0x96, 0x91, 0xb3, 0x2d, 0xed, - 0x41, 0xbe, 0x32, 0x6a, 0x8f, 0xdb, 0x83, 0xf2, 0xea, 0x48, 0x3f, 0x06, 0xd5, 0xa7, 0x9e, 0x9d, - 0x3f, 0x57, 0xb3, 0xee, 0xce, 0x49, 0x3e, 0xa9, 0x5a, 0x42, 0xfe, 0x82, 0x3e, 0xea, 0x93, 0x5c, - 0x1e, 0xa9, 0xd1, 0x73, 0x84, 0xde, 0x13, 0x13, 0xfa, 0x35, 0xd5, 0xde, 0xde, 0x4c, 0xd8, 0x1b, - 0xb5, 0xb0, 0x0d, 0x8f, 0xf0, 0x4b, 0x12, 0xd2, 0x4c, 0x3e, 0xee, 0x3c, 0x79, 0x3f, 0x5c, 0x7f, - 0x4c, 0x34, 0x52, 0x24, 0xdb, 0x96, 0x73, 0xfd, 0x42, 0x19, 0x5a, 0xd1, 0x05, 0xb0, 0xb4, 0x77, - 0xbe, 0x65, 0xf9, 0x6b, 0xc4, 0x30, 0x89, 0x27, 0xec, 0xf6, 0xed, 0xc2, 0x9b, 0x65, 0xdd, 0x9e, - 0x40, 0xe0, 0x08, 0xab, 0x9f, 0x80, 0x56, 0x18, 0x9b, 0xb3, 0x29, 0xfb, 0x7e, 0x05, 0x1a, 0xe2, - 0xea, 0x58, 0xb2, 0x10, 0xb7, 0xa1, 0x61, 0x1b, 0x07, 0xee, 0x5e, 0xb8, 0x65, 0x3a, 0x53, 0x70, - 0x1b, 0xad, 0xfb, 0x90, 0x49, 0x63, 0x81, 0x42, 0x9f, 0x83, 0xba, 0x6d, 0xed, 0x5a, 0x81, 0x18, - 0x3e, 0x4e, 0x17, 0xc2, 0xd9, 0x21, 0x33, 0xc7, 0xd0, 0xcc, 0xd9, 0x8d, 0x91, 0xf0, 0xbe, 0x6f, - 0x61, 0xe6, 0xcf, 0x98, 0x34, 0x16, 0x28, 0xfd, 0x3e, 0x34, 0x78, 0x71, 0x26, 0x9b, 0x24, 0xd4, - 0x9a, 0xc4, 0x9a, 0xce, 0xca, 0x96, 0xb3, 0x2a, 0x3d, 0x0e, 0x0d, 0x9e, 0x79, 0x8e, 0xd6, 0x7c, - 0xef, 0x75, 0xb6, 0xdf, 0xb1, 0xf5, 0x87, 0xf1, 0xe1, 0xdf, 0xc7, 0x3f, 0xcb, 0xd0, 0x9f, 0xc0, - 0xa1, 0x15, 0x23, 0x30, 0xb6, 0x0c, 0x9f, 0x60, 0xd2, 0x77, 0x3d, 0x33, 0x93, 0xd5, 0xe3, 0x49, - 0xc2, 0x43, 0x9d, 0xcf, 0x2a, 0xe4, 0x3e, 0x75, 0x1d, 0xfe, 0xef, 0x71, 0x1d, 0xfe, 0x69, 0x2d, - 0xc7, 0x9f, 0x37, 0x8e, 0x27, 0x83, 0x2a, 0x5c, 0xca, 0xa1, 0x77, 0x53, 0x5d, 0x7b, 0x9f, 0x2a, - 0x40, 0x2a, 0x8b, 0xef, 0x9b, 0xaa, 0x47, 0xaf, 0x08, 0xab, 0xb8, 0xf4, 0xee, 0x26, 0x5d, 0x7a, - 0x67, 0x0a, 0xd0, 0x29, 0x9f, 0xde, 0x4d, 0xd5, 0xa7, 0x57, 0x94, 0xbb, 0xec, 0xd4, 0xfb, 0x7f, - 0xe6, 0x46, 0xfb, 0x8d, 0x1c, 0xb7, 0xcf, 0x67, 0x55, 0xb7, 0xcf, 0x08, 0xad, 0xf9, 0x49, 0xf9, - 0x7d, 0x7e, 0xb3, 0x91, 0xe3, 0xf7, 0x59, 0x50, 0xfc, 0x3e, 0x23, 0x4a, 0x96, 0x74, 0xfc, 0xdc, - 0x54, 0x1d, 0x3f, 0xa7, 0x0a, 0x90, 0x8a, 0xe7, 0x67, 0x41, 0xf1, 0xfc, 0x14, 0x65, 0x2a, 0xb9, - 0x7e, 0x16, 0x14, 0xd7, 0x4f, 0x11, 0x50, 0xf2, 0xfd, 0x2c, 0x28, 0xbe, 0x9f, 0x22, 0xa0, 0xe4, - 0xfc, 0x59, 0x50, 0x9c, 0x3f, 0x45, 0x40, 0xc9, 0xfb, 0x73, 0x53, 0xf5, 0xfe, 0x14, 0xb7, 0x8f, - 0xd4, 0xe9, 0x9f, 0x3a, 0x6a, 0xfe, 0x1b, 0x1d, 0x35, 0xbf, 0x5a, 0xcd, 0x71, 0xc0, 0xe0, 0x6c, - 0x07, 0xcc, 0xf9, 0xfc, 0x9e, 0x2c, 0xf6, 0xc0, 0x8c, 0x3f, 0x0b, 0xa4, 0x5d, 0x30, 0xef, 0x25, - 0x5c, 0x30, 0xa7, 0x0b, 0xc0, 0xaa, 0x0f, 0xe6, 0xff, 0x8c, 0x93, 0xe1, 0x0f, 0x1a, 0x23, 0xf6, - 0xd3, 0x37, 0xe4, 0xfd, 0xf4, 0x88, 0x99, 0x2c, 0xbd, 0xa1, 0xbe, 0xad, 0x6e, 0xa8, 0xcf, 0x8d, - 0x81, 0x55, 0x76, 0xd4, 0x1b, 0x59, 0x3b, 0xea, 0xee, 0x18, 0x2c, 0xb9, 0x5b, 0xea, 0xfb, 0xe9, - 0x2d, 0xf5, 0xf9, 0x31, 0xf8, 0x32, 0xf7, 0xd4, 0x1b, 0x59, 0x7b, 0xea, 0x71, 0x4a, 0x97, 0xbb, - 0xa9, 0xfe, 0x9c, 0xb2, 0xa9, 0x3e, 0x3b, 0x4e, 0x73, 0xc5, 0x93, 0xc3, 0x17, 0x72, 0x76, 0xd5, - 0xef, 0x8e, 0x43, 0x33, 0xda, 0x89, 0xfd, 0xe9, 0xbe, 0x58, 0xcd, 0xe6, 0xf7, 0xdf, 0x84, 0x56, - 0x78, 0xd1, 0x46, 0xff, 0x1a, 0x34, 0xc3, 0xf7, 0x42, 0x49, 0xcb, 0x39, 0x1a, 0x6d, 0xea, 0xf8, - 0xea, 0x59, 0x84, 0xd0, 0x6d, 0xa8, 0xd1, 0x7f, 0xc2, 0x2c, 0xde, 0x1e, 0xef, 0x42, 0x0f, 0xcd, - 0x04, 0x33, 0x9c, 0xfe, 0xa3, 0x23, 0x00, 0xd2, 0x33, 0x8a, 0x71, 0xb3, 0x7d, 0x9f, 0x0e, 0x66, - 0x76, 0x40, 0x3c, 0x76, 0x91, 0xab, 0xf0, 0x99, 0x41, 0x9c, 0x03, 0xd5, 0x96, 0x80, 0x78, 0x58, - 0xc0, 0xd1, 0x23, 0x68, 0x85, 0x8e, 0x54, 0xad, 0xc6, 0xa8, 0xde, 0x1d, 0x9b, 0x2a, 0x74, 0xed, - 0xe1, 0x88, 0x02, 0x2d, 0x42, 0xcd, 0x77, 0xbd, 0x40, 0xab, 0x33, 0xaa, 0x0b, 0x63, 0x53, 0x6d, - 0xba, 0x5e, 0x80, 0x19, 0x94, 0x57, 0x4d, 0x7a, 0xa5, 0x3a, 0x49, 0xd5, 0x94, 0x11, 0xfb, 0xdf, - 0xaa, 0xd1, 0x18, 0xba, 0x2c, 0xac, 0x91, 0xeb, 0xd0, 0xc5, 0xf1, 0x7b, 0x49, 0xb6, 0x4a, 0x24, - 0x16, 0x41, 0xbc, 0x27, 0xf8, 0xfa, 0xe6, 0x6d, 0xe8, 0xf4, 0xdd, 0x7d, 0xe2, 0xe1, 0xf8, 0x8a, - 0x93, 0xb8, 0x85, 0x96, 0x8a, 0x47, 0x3a, 0xb4, 0x76, 0x2c, 0x93, 0xf4, 0xfa, 0x62, 0xfc, 0x6b, - 0xe1, 0x28, 0x8c, 0x1e, 0x40, 0x8b, 0xf9, 0xd8, 0x43, 0x0f, 0xff, 0x64, 0x85, 0xe4, 0xae, 0xfe, - 0x90, 0x80, 0x66, 0xc4, 0x32, 0xbf, 0x67, 0x05, 0xac, 0x0d, 0x5b, 0x38, 0x0a, 0xd3, 0x02, 0xb3, - 0x7b, 0x64, 0x72, 0x81, 0x9b, 0xbc, 0xc0, 0xc9, 0x78, 0x74, 0x15, 0x5e, 0x65, 0x71, 0x89, 0x2d, - 0x26, 0x77, 0xd5, 0xb7, 0x70, 0x76, 0x22, 0xbb, 0x37, 0x67, 0x0c, 0xf8, 0x9d, 0x74, 0xe6, 0xbc, - 0xab, 0xe3, 0x38, 0x02, 0x9d, 0x87, 0xc3, 0x26, 0xd9, 0x36, 0xf6, 0xec, 0xe0, 0x09, 0xd9, 0x1d, - 0xda, 0x46, 0x40, 0x7a, 0x26, 0x7b, 0x28, 0xdb, 0xc6, 0xe9, 0x04, 0x74, 0x09, 0x5e, 0x11, 0x91, - 0xdc, 0x8c, 0x69, 0x6f, 0xf4, 0x4c, 0xf6, 0x6e, 0xb4, 0x8d, 0xb3, 0x92, 0xf4, 0xef, 0xd5, 0x68, - 0xa7, 0x33, 0xd5, 0x7e, 0x1f, 0xaa, 0x86, 0x69, 0x8a, 0x69, 0xf3, 0xca, 0x84, 0x06, 0x22, 0xde, - 0x82, 0x53, 0x06, 0xb4, 0x11, 0x5d, 0xb9, 0xe3, 0x13, 0xe7, 0xf5, 0x49, 0xb9, 0xa2, 0xf7, 0xfb, - 0x82, 0x87, 0x32, 0xee, 0xf1, 0x4b, 0xdf, 0xd5, 0x1f, 0x8f, 0x31, 0xba, 0x0b, 0x2e, 0x78, 0xd0, - 0x7d, 0xa8, 0xb1, 0x12, 0xf2, 0x89, 0xf5, 0xea, 0xa4, 0x7c, 0x8f, 0x78, 0xf9, 0x18, 0x87, 0xde, - 0xe7, 0x77, 0xdf, 0xa4, 0x0b, 0x97, 0x65, 0xf5, 0xc2, 0xe5, 0x12, 0xd4, 0xad, 0x80, 0xec, 0xa6, - 0xef, 0xdf, 0x8e, 0x54, 0x55, 0x31, 0xf2, 0x70, 0xe8, 0xc8, 0x7b, 0x80, 0x1f, 0x46, 0x77, 0xb1, - 0x93, 0xe3, 0xe1, 0x5d, 0xa8, 0x51, 0x78, 0x6a, 0x2d, 0x39, 0x4e, 0xc6, 0x0c, 0xa9, 0x5f, 0x86, - 0x1a, 0xad, 0xec, 0x88, 0xda, 0x89, 0xf2, 0x54, 0xa2, 0xf2, 0x2c, 0x4d, 0x41, 0xdb, 0x1d, 0x12, - 0x8f, 0x19, 0x86, 0xfe, 0xaf, 0x35, 0xe9, 0x52, 0x5c, 0x4f, 0xd6, 0xb1, 0x6b, 0x13, 0x8f, 0x9c, - 0xb2, 0x96, 0xe1, 0x84, 0x96, 0xdd, 0x98, 0x9c, 0x2d, 0xa5, 0x67, 0x38, 0xa1, 0x67, 0x3f, 0x06, - 0x67, 0x4a, 0xd3, 0x1e, 0x2a, 0x9a, 0x76, 0x7d, 0x72, 0x46, 0x45, 0xd7, 0x48, 0x91, 0xae, 0xad, - 0xa8, 0xba, 0xd6, 0x1d, 0xaf, 0xcb, 0xa3, 0xa9, 0x69, 0x0c, 0x6d, 0xfb, 0x52, 0xae, 0xb6, 0x2d, - 0x29, 0xda, 0x36, 0x69, 0xd6, 0x9f, 0x90, 0xbe, 0xfd, 0x63, 0x0d, 0x6a, 0x74, 0x7a, 0x44, 0xab, - 0xb2, 0xae, 0xbd, 0x3b, 0xd1, 0xd4, 0x2a, 0xeb, 0xd9, 0x7a, 0x42, 0xcf, 0xae, 0x4e, 0xc6, 0x94, - 0xd2, 0xb1, 0xf5, 0x84, 0x8e, 0x4d, 0xc8, 0x97, 0xd2, 0xaf, 0x35, 0x45, 0xbf, 0x2e, 0x4f, 0xc6, - 0xa6, 0xe8, 0x96, 0x51, 0xa4, 0x5b, 0x77, 0x55, 0xdd, 0x1a, 0x73, 0xf5, 0xc6, 0xd6, 0x2a, 0x63, - 0xe8, 0xd5, 0x07, 0xb9, 0x7a, 0x75, 0x5b, 0xd1, 0xab, 0x49, 0xb2, 0xfd, 0x84, 0x74, 0xea, 0x2a, - 0x5f, 0x74, 0x8a, 0x7b, 0xc6, 0x63, 0x2e, 0x3a, 0xf5, 0x6b, 0xd0, 0x8e, 0xdf, 0xa1, 0x67, 0x5c, - 0xcf, 0xe7, 0x62, 0x61, 0xae, 0x61, 0x50, 0xbf, 0x02, 0xed, 0xf8, 0x6d, 0x79, 0x46, 0x5e, 0x3e, - 0x4b, 0x14, 0x28, 0x11, 0xd2, 0x57, 0xe1, 0x70, 0xfa, 0xe5, 0x6b, 0x86, 0x1f, 0x5e, 0xba, 0x5b, - 0x1e, 0x3e, 0x45, 0x91, 0xa2, 0xf4, 0x17, 0x30, 0x9b, 0x78, 0xcb, 0x3a, 0x31, 0x07, 0xba, 0x22, - 0x2d, 0x91, 0xab, 0x62, 0x0f, 0x9e, 0x7d, 0x5b, 0x3e, 0x5e, 0x08, 0xeb, 0x2b, 0x30, 0x5b, 0x50, - 0xf8, 0x71, 0x2e, 0xcb, 0x7f, 0x05, 0xa6, 0x46, 0x95, 0xfd, 0x13, 0xb8, 0xcc, 0x1f, 0x40, 0x27, - 0xf5, 0x0e, 0x3f, 0x99, 0xcd, 0x06, 0xc0, 0x20, 0x92, 0x11, 0x4a, 0x7b, 0x69, 0x82, 0xa7, 0x0b, - 0x0c, 0x87, 0x25, 0x0e, 0xfd, 0x77, 0xcb, 0x70, 0x38, 0xfd, 0x08, 0x7f, 0xdc, 0xcd, 0x8f, 0x06, - 0x4d, 0xc6, 0x15, 0xbd, 0xf8, 0x08, 0x83, 0xe8, 0x11, 0x4c, 0xfb, 0xb6, 0xd5, 0x27, 0xcb, 0x3b, - 0x86, 0x33, 0x20, 0xbe, 0xd8, 0xd1, 0x14, 0x3c, 0xa4, 0xdf, 0x8c, 0x11, 0x58, 0x81, 0xeb, 0x2f, - 0x60, 0x4a, 0x4a, 0x44, 0xb7, 0xa0, 0xe2, 0x0e, 0x53, 0xf7, 0x1a, 0xf3, 0x39, 0x1f, 0x87, 0xf6, - 0x86, 0x2b, 0xee, 0x30, 0x6d, 0x92, 0xb2, 0xf9, 0x56, 0x15, 0xf3, 0xd5, 0x1f, 0xc0, 0xe1, 0xf4, - 0x3b, 0xf7, 0x64, 0xf3, 0x9c, 0x49, 0x79, 0x09, 0x78, 0x33, 0x25, 0xb7, 0xfc, 0x0b, 0x70, 0x28, - 0xf9, 0x7a, 0x3d, 0xe3, 0x35, 0x4e, 0xfc, 0xa8, 0x29, 0x74, 0xd7, 0xcf, 0xff, 0x4a, 0x19, 0x66, - 0xd5, 0x8a, 0xa0, 0xa3, 0x80, 0xd4, 0x98, 0x75, 0xd7, 0x21, 0x9d, 0x12, 0x7a, 0x15, 0x0e, 0xab, - 0xf1, 0x8b, 0xa6, 0xd9, 0x29, 0xa7, 0xc5, 0xe9, 0xb0, 0xd5, 0xa9, 0x20, 0x0d, 0x8e, 0x24, 0x5a, - 0x88, 0x0d, 0xa2, 0x9d, 0x2a, 0x7a, 0x1d, 0x5e, 0x4d, 0xa6, 0x0c, 0x6d, 0xa3, 0x4f, 0x3a, 0x35, - 0xfd, 0x87, 0x15, 0xa8, 0x3d, 0xf5, 0x89, 0xa7, 0xff, 0x4b, 0x25, 0x7c, 0xa5, 0x71, 0x03, 0x6a, - 0xec, 0x61, 0xb9, 0xf4, 0x9a, 0xb1, 0x9c, 0x78, 0xcd, 0xa8, 0xbc, 0x88, 0x8b, 0x5f, 0x33, 0xde, - 0x80, 0x1a, 0x7b, 0x4a, 0x3e, 0x39, 0xf2, 0xe7, 0xcb, 0xd0, 0x8e, 0x9f, 0x75, 0x4f, 0x8c, 0x97, - 0x5f, 0x85, 0x54, 0xd4, 0x57, 0x21, 0x6f, 0x43, 0xdd, 0x63, 0xef, 0x37, 0xf8, 0x28, 0x93, 0x7c, - 0x6b, 0xc2, 0x32, 0xc4, 0x5c, 0x44, 0x27, 0x30, 0x25, 0x3f, 0x5a, 0x9f, 0xbc, 0x18, 0xa7, 0xc4, - 0x17, 0x6b, 0x7a, 0xa6, 0xbf, 0xe8, 0x79, 0xc6, 0x81, 0x50, 0x4c, 0x35, 0x52, 0x9f, 0x83, 0xda, - 0x86, 0xe5, 0x0c, 0xb2, 0x1f, 0x91, 0xea, 0xdf, 0x29, 0x43, 0x53, 0x5c, 0xde, 0xd5, 0x17, 0xa0, - 0xba, 0x4e, 0x5e, 0xd0, 0x82, 0x88, 0x6b, 0xc3, 0xa9, 0x82, 0x3c, 0x62, 0xb5, 0x10, 0xf2, 0x38, - 0x14, 0xd3, 0x6f, 0x46, 0xd3, 0xe4, 0xe4, 0xd8, 0x1b, 0x50, 0x63, 0x6f, 0xcd, 0x27, 0x47, 0xfe, - 0x76, 0x0b, 0x1a, 0xfc, 0x25, 0xa6, 0xfe, 0xed, 0x16, 0x34, 0xf8, 0xfb, 0x73, 0x74, 0x1b, 0x9a, - 0xfe, 0xde, 0xee, 0xae, 0xe1, 0x1d, 0x68, 0xd9, 0x1f, 0x3b, 0x54, 0x9e, 0xab, 0x77, 0x37, 0xb9, - 0x2c, 0x0e, 0x41, 0xe8, 0x1a, 0xd4, 0xfa, 0xc6, 0x36, 0x49, 0x1d, 0xe7, 0x66, 0x81, 0x97, 0x8d, - 0x6d, 0x82, 0x99, 0x38, 0xba, 0x0b, 0x2d, 0xd1, 0x2d, 0xbe, 0xf0, 0xe7, 0x8c, 0xce, 0x37, 0xec, - 0xcc, 0x08, 0xa5, 0xdf, 0x87, 0xa6, 0x28, 0x0c, 0xba, 0x13, 0xbd, 0x43, 0x4d, 0x7a, 0x9e, 0x33, - 0xab, 0x10, 0x3d, 0x4c, 0x8e, 0x5e, 0xa4, 0xfe, 0x55, 0x05, 0x6a, 0xb4, 0x70, 0x1f, 0x9b, 0x09, - 0x1d, 0x07, 0xb0, 0x0d, 0x3f, 0xd8, 0xd8, 0xb3, 0x6d, 0x62, 0x8a, 0x17, 0x76, 0x52, 0x0c, 0x3a, - 0x07, 0x87, 0x78, 0xc8, 0xdf, 0xd9, 0xdc, 0xeb, 0xf7, 0x49, 0xf4, 0x4c, 0x34, 0x19, 0x8d, 0x16, - 0xa1, 0xce, 0xbe, 0x88, 0x26, 0x56, 0x85, 0xef, 0x14, 0xb6, 0x6c, 0x77, 0xc3, 0x72, 0x44, 0x69, - 0x38, 0x52, 0x77, 0xa1, 0x1d, 0xc5, 0x51, 0x23, 0x1c, 0x5a, 0x8e, 0x63, 0x39, 0x03, 0xa1, 0xd1, - 0x61, 0x90, 0x4e, 0x3a, 0xf4, 0xaf, 0x28, 0x6f, 0x1d, 0x8b, 0x10, 0x8d, 0xdf, 0x36, 0x2c, 0x5b, - 0x14, 0xb1, 0x8e, 0x45, 0x88, 0x32, 0xed, 0x89, 0x57, 0xfb, 0x35, 0x56, 0xc1, 0x30, 0xa8, 0x7f, - 0x54, 0x8e, 0x1e, 0x63, 0x67, 0x3d, 0xce, 0x4c, 0xf9, 0x92, 0xe6, 0x64, 0x87, 0x36, 0x9f, 0x10, - 0x24, 0x17, 0xf5, 0x51, 0x68, 0xb8, 0x8e, 0x6d, 0x39, 0x44, 0xf8, 0x8e, 0x44, 0x28, 0xd1, 0xc6, - 0xf5, 0x54, 0x1b, 0x8b, 0xf4, 0x55, 0xd3, 0xa2, 0x45, 0x6c, 0xc4, 0xe9, 0x3c, 0x06, 0xbd, 0x07, - 0x4d, 0x93, 0xec, 0x5b, 0x7d, 0xe2, 0x6b, 0x4d, 0xa6, 0x7a, 0x27, 0x47, 0xb6, 0xed, 0x0a, 0x93, - 0xc5, 0x21, 0x46, 0x0f, 0xa0, 0xc1, 0xa3, 0xa2, 0x2a, 0x95, 0xa5, 0x2a, 0xc5, 0x85, 0xae, 0x8c, - 0x28, 0x74, 0xb5, 0xa0, 0xd0, 0xb5, 0x64, 0xa1, 0xe7, 0x4d, 0x80, 0x58, 0xdd, 0xd0, 0x14, 0x34, - 0x9f, 0x3a, 0xcf, 0x1d, 0xf7, 0x85, 0xd3, 0x29, 0xd1, 0xc0, 0xe3, 0xed, 0x6d, 0x9a, 0x4b, 0xa7, - 0x4c, 0x03, 0x54, 0xce, 0x72, 0x06, 0x9d, 0x0a, 0x02, 0x68, 0xd0, 0x00, 0x31, 0x3b, 0x55, 0xfa, - 0xff, 0x1e, 0xeb, 0xbf, 0x4e, 0x0d, 0xbd, 0x06, 0xaf, 0xf4, 0x9c, 0xbe, 0xbb, 0x3b, 0x34, 0x02, - 0x6b, 0xcb, 0x26, 0xcf, 0x88, 0xe7, 0x5b, 0xae, 0xd3, 0xa9, 0xeb, 0xff, 0x51, 0xe6, 0xa7, 0xbe, - 0xfa, 0x5d, 0x98, 0x56, 0x3e, 0x23, 0xa1, 0x41, 0x93, 0xbd, 0xea, 0x8f, 0xd7, 0xdd, 0x22, 0xc8, - 0xb4, 0x84, 0x3f, 0x8b, 0x17, 0x4b, 0x16, 0x1e, 0xd2, 0xef, 0x01, 0x48, 0x1f, 0x8f, 0x38, 0x0e, - 0xb0, 0x75, 0x10, 0x10, 0x9f, 0x7f, 0x38, 0x82, 0x52, 0xd4, 0xb0, 0x14, 0x23, 0xf3, 0x57, 0x14, - 0x7e, 0xfd, 0x3a, 0x80, 0xf4, 0xe9, 0x08, 0x6a, 0x3f, 0x34, 0xb4, 0x94, 0x24, 0x4b, 0x46, 0xeb, - 0x5d, 0x51, 0x83, 0xf0, 0x23, 0x11, 0x61, 0x09, 0xb8, 0x97, 0x4e, 0x2e, 0x01, 0x8b, 0xd1, 0x57, - 0x01, 0xe2, 0xef, 0x24, 0xe8, 0x0b, 0xd1, 0x10, 0x7d, 0x01, 0x6a, 0xa6, 0x11, 0x18, 0x62, 0x74, - 0x7c, 0x3d, 0x31, 0x43, 0xc5, 0x10, 0xcc, 0xc4, 0xf4, 0xdf, 0x29, 0xc3, 0xb4, 0xfc, 0x4d, 0x08, - 0xfd, 0x7d, 0xa8, 0xb1, 0x8f, 0x4a, 0xdc, 0x81, 0x69, 0xf9, 0xa3, 0x10, 0xa9, 0x6f, 0xf2, 0x72, - 0x3e, 0x19, 0x8a, 0x15, 0x80, 0xde, 0x8b, 0x8a, 0xf4, 0xb1, 0xa9, 0x2e, 0x41, 0x53, 0x7c, 0x63, - 0x42, 0x3f, 0x0d, 0xed, 0xf8, 0x93, 0x12, 0x74, 0x8c, 0xe0, 0xf1, 0x61, 0x2f, 0x8b, 0xa0, 0xfe, - 0x4f, 0x55, 0xa8, 0xb3, 0xee, 0xd4, 0xbf, 0x55, 0x91, 0x35, 0x51, 0xff, 0x61, 0x39, 0x77, 0xcf, - 0x77, 0x45, 0xf9, 0x3c, 0xc0, 0x6c, 0xea, 0x53, 0x2a, 0xe2, 0x0b, 0x12, 0xea, 0x00, 0x7a, 0x1d, - 0x9a, 0x0e, 0x09, 0x5e, 0xb8, 0xde, 0x73, 0x66, 0x24, 0xb3, 0xe9, 0xcf, 0xa7, 0x30, 0xd4, 0x3a, - 0x97, 0xc1, 0xa1, 0x30, 0xba, 0x0a, 0x75, 0xe2, 0x79, 0xae, 0xc7, 0x4c, 0x67, 0x36, 0xf5, 0x51, - 0x92, 0xf8, 0x6b, 0x15, 0xab, 0x54, 0x0a, 0x73, 0x61, 0x74, 0x15, 0x5e, 0xf5, 0xb9, 0xb5, 0xf0, - 0xb5, 0xa3, 0x2f, 0xde, 0x4f, 0x8b, 0x51, 0x25, 0x3b, 0x71, 0xfe, 0xb3, 0xe1, 0x44, 0x2a, 0x19, - 0x58, 0x49, 0xb6, 0xbc, 0x32, 0x6a, 0x43, 0x9d, 0x65, 0xd4, 0xa9, 0xc8, 0xe6, 0x59, 0x9d, 0xbf, - 0x02, 0x4d, 0x51, 0x74, 0x1a, 0xbf, 0xc8, 0xcb, 0xd8, 0x29, 0xa1, 0x69, 0x68, 0x6d, 0x12, 0x7b, - 0x7b, 0xcd, 0xf5, 0x83, 0x4e, 0x19, 0xcd, 0x40, 0x9b, 0xe9, 0xfc, 0x63, 0xc7, 0x3e, 0xe8, 0x54, - 0xe6, 0x3f, 0x80, 0x76, 0x54, 0x72, 0xd4, 0x82, 0xda, 0xfa, 0x9e, 0x6d, 0x77, 0x4a, 0x6c, 0xa9, - 0x19, 0xb8, 0x5e, 0xe8, 0x68, 0x5e, 0x7d, 0x49, 0xe7, 0x8d, 0x4e, 0x39, 0xcf, 0xba, 0x2b, 0xa8, - 0x03, 0xd3, 0x22, 0x73, 0x5e, 0xb6, 0xaa, 0xfe, 0x0f, 0x65, 0x68, 0x47, 0x9f, 0xdb, 0xa0, 0xeb, - 0xbc, 0xb0, 0x2f, 0xf3, 0xed, 0x7d, 0x21, 0xd1, 0xab, 0xf9, 0x5f, 0xef, 0x48, 0xf4, 0xec, 0x19, - 0x98, 0x15, 0x43, 0x68, 0xd8, 0xc8, 0x7c, 0x14, 0x4c, 0xc4, 0xce, 0xdf, 0x8c, 0x5a, 0xb7, 0xc3, - 0x4c, 0x69, 0xd9, 0x75, 0x1c, 0xd2, 0x0f, 0x58, 0x1b, 0x1f, 0x82, 0xa9, 0x75, 0x37, 0xd8, 0x70, - 0x7d, 0x9f, 0xd6, 0x8c, 0xb7, 0x54, 0x9c, 0x5e, 0x99, 0xff, 0x06, 0xcc, 0x60, 0xe2, 0x0f, 0x5d, - 0xc7, 0x27, 0x3f, 0xa9, 0xcf, 0x76, 0xe7, 0x7e, 0x80, 0x7b, 0xfe, 0x3b, 0x55, 0xa8, 0xb3, 0xb5, - 0x97, 0xfe, 0x47, 0xd5, 0x68, 0x95, 0x98, 0x71, 0x33, 0x2f, 0xbe, 0x3f, 0x23, 0xdb, 0x84, 0xb2, - 0x6a, 0x93, 0x0f, 0x61, 0x2e, 0xcb, 0xf7, 0x66, 0x64, 0x7b, 0x50, 0x11, 0xca, 0x7d, 0x99, 0xcf, - 0x41, 0x6b, 0xe8, 0xb9, 0x03, 0x8f, 0x2e, 0x0f, 0x6b, 0x89, 0x8f, 0xac, 0xa8, 0xb0, 0x0d, 0x21, - 0x86, 0x23, 0x80, 0xbe, 0x0e, 0xad, 0x30, 0x36, 0xe7, 0x33, 0x02, 0x08, 0x6a, 0xa6, 0x2b, 0xa6, - 0xb8, 0x2a, 0x66, 0xff, 0x69, 0xbb, 0x88, 0x16, 0x0c, 0xb7, 0x76, 0x22, 0x38, 0xff, 0x65, 0x71, - 0xae, 0x39, 0x03, 0xed, 0x15, 0xcf, 0x1d, 0xb2, 0xf7, 0xe2, 0x9d, 0x12, 0xb5, 0x9d, 0xde, 0xee, - 0xd0, 0xf5, 0xa8, 0xc2, 0x03, 0x34, 0x56, 0x5f, 0xb2, 0xff, 0x15, 0x66, 0x0a, 0xc6, 0x3e, 0xa1, - 0x62, 0x9d, 0x2a, 0x42, 0x30, 0x8b, 0x09, 0x3b, 0xcb, 0x11, 0x0b, 0x8b, 0x4e, 0x8d, 0x12, 0x3d, - 0xb2, 0x06, 0x7c, 0xb3, 0xd4, 0xa9, 0xcf, 0x2f, 0x86, 0xf7, 0x57, 0xa8, 0x69, 0xf0, 0xcd, 0xd9, - 0x14, 0x34, 0xf1, 0x1e, 0x5b, 0xdd, 0x74, 0xca, 0x34, 0x9a, 0x2e, 0x99, 0x39, 0xf5, 0xb2, 0xe1, - 0xf4, 0x89, 0xcd, 0x66, 0xc4, 0xc8, 0x46, 0x6b, 0x4b, 0x73, 0x7f, 0xfd, 0xd1, 0xf1, 0xf2, 0x77, - 0x3f, 0x3a, 0x5e, 0xfe, 0xfe, 0x47, 0xc7, 0xcb, 0xbf, 0xfe, 0x83, 0xe3, 0xa5, 0xef, 0xfe, 0xe0, - 0x78, 0xe9, 0x9f, 0x7f, 0x70, 0xbc, 0xf4, 0x61, 0x65, 0xb8, 0xb5, 0xd5, 0x60, 0x17, 0x0f, 0xae, - 0xfc, 0x57, 0x00, 0x00, 0x00, 0xff, 0xff, 0xd4, 0xa1, 0x21, 0xc1, 0x74, 0x5e, 0x00, 0x00, + 0x18, 0x86, 0x0d, 0x1f, 0xac, 0x93, 0x61, 0xc0, 0x30, 0xe0, 0x15, 0x96, 0x6f, 0xbe, 0x49, 0x18, + 0x5d, 0x7c, 0xf1, 0x41, 0x16, 0x20, 0xf8, 0x64, 0x18, 0xb1, 0x64, 0x66, 0x44, 0x2e, 0x95, 0x55, + 0x9a, 0x91, 0x17, 0x78, 0x4e, 0x55, 0x11, 0xf1, 0xff, 0x8b, 0xe5, 0xff, 0x1f, 0xf1, 0xe3, 0x47, + 0x44, 0xc2, 0xd1, 0xe1, 0xd6, 0xc5, 0xa1, 0xe7, 0x06, 0xae, 0x7f, 0x91, 0xec, 0x13, 0x27, 0xf0, + 0xbb, 0x2c, 0x85, 0x9a, 0x86, 0x73, 0x10, 0x1c, 0x0c, 0x89, 0x7e, 0x6a, 0xf8, 0x7c, 0x70, 0xd1, + 0xb6, 0xb6, 0x2e, 0x0e, 0xb7, 0x2e, 0xee, 0xba, 0x26, 0xb1, 0x43, 0x72, 0x96, 0x10, 0xe4, 0xfa, + 0xdc, 0xc0, 0x75, 0x07, 0x36, 0xe1, 0x65, 0x5b, 0x7b, 0xdb, 0x17, 0xfd, 0xc0, 0xdb, 0xeb, 0x07, + 0xbc, 0x74, 0xfe, 0x9f, 0xfe, 0xbc, 0x0c, 0xf5, 0x55, 0x0a, 0x8f, 0x2e, 0x43, 0x6b, 0x97, 0xf8, + 0xbe, 0x31, 0x20, 0xbe, 0x56, 0x3e, 0x51, 0x3d, 0x37, 0x75, 0xf9, 0x68, 0x57, 0x54, 0xd5, 0x65, + 0x14, 0xdd, 0x47, 0xbc, 0x18, 0x47, 0x74, 0x68, 0x0e, 0xda, 0x7d, 0xd7, 0x09, 0xc8, 0xcb, 0xa0, + 0x67, 0x6a, 0x95, 0x13, 0xe5, 0x73, 0x6d, 0x1c, 0x67, 0xa0, 0xab, 0xd0, 0xb6, 0x1c, 0x2b, 0xb0, + 0x8c, 0xc0, 0xf5, 0xb4, 0xea, 0x89, 0xb2, 0x02, 0xc9, 0x1a, 0xd9, 0x5d, 0xec, 0xf7, 0xdd, 0x3d, + 0x27, 0xc0, 0x31, 0x21, 0xd2, 0xa0, 0x19, 0x78, 0x46, 0x9f, 0xf4, 0x4c, 0xad, 0xc6, 0x10, 0xc3, + 0xa4, 0xfe, 0xa3, 0x0b, 0xd0, 0x14, 0x6d, 0x40, 0x77, 0x60, 0xca, 0xe0, 0xbc, 0x9b, 0x3b, 0xee, + 0x0b, 0xad, 0xcc, 0xd0, 0x8f, 0x25, 0x1a, 0x2c, 0xd0, 0xbb, 0x94, 0x64, 0xad, 0x84, 0x65, 0x0e, + 0xd4, 0x83, 0x59, 0x91, 0x5c, 0x21, 0x81, 0x61, 0xd9, 0xbe, 0xf6, 0xb7, 0x1c, 0xe4, 0x78, 0x0e, + 0x88, 0x20, 0x5b, 0x2b, 0xe1, 0x04, 0x23, 0xfa, 0x02, 0xbc, 0x22, 0x72, 0x96, 0x5d, 0x67, 0xdb, + 0x1a, 0x3c, 0x1d, 0x9a, 0x46, 0x40, 0xb4, 0xbf, 0xe3, 0x78, 0xa7, 0x72, 0xf0, 0x38, 0x6d, 0x97, + 0x13, 0xaf, 0x95, 0x70, 0x16, 0x06, 0xba, 0x07, 0x33, 0x22, 0x5b, 0x80, 0xfe, 0x3d, 0x07, 0x7d, + 0x23, 0x07, 0x34, 0x42, 0x53, 0xd9, 0xd0, 0x17, 0xe1, 0x88, 0xc8, 0x78, 0x68, 0x39, 0xcf, 0x97, + 0x77, 0x0c, 0xdb, 0x26, 0xce, 0x80, 0x68, 0xff, 0x30, 0xba, 0x8d, 0x0a, 0xf1, 0x5a, 0x09, 0x67, + 0x82, 0xa0, 0xc7, 0xd0, 0x71, 0xb7, 0xbe, 0x4a, 0xfa, 0xe1, 0x80, 0x6c, 0x92, 0x40, 0xeb, 0x30, + 0xdc, 0xb7, 0x12, 0xb8, 0x8f, 0x19, 0x59, 0x38, 0x94, 0xdd, 0x4d, 0x12, 0xac, 0x95, 0x70, 0x8a, + 0x19, 0x3d, 0x05, 0xa4, 0xe4, 0x2d, 0xee, 0x12, 0xc7, 0xd4, 0x2e, 0x33, 0xc8, 0x93, 0xa3, 0x21, + 0x19, 0xe9, 0x5a, 0x09, 0x67, 0x00, 0xa4, 0x60, 0x9f, 0x3a, 0x3e, 0x09, 0xb4, 0x2b, 0xe3, 0xc0, + 0x32, 0xd2, 0x14, 0x2c, 0xcb, 0xa5, 0x63, 0xcb, 0x73, 0x31, 0xb1, 0x8d, 0xc0, 0x72, 0x1d, 0xd1, + 0xde, 0xab, 0x0c, 0xf8, 0x74, 0x36, 0x70, 0x44, 0x1b, 0xb5, 0x38, 0x13, 0x04, 0x7d, 0x19, 0x5e, + 0x4d, 0xe4, 0x63, 0xb2, 0xeb, 0xee, 0x13, 0xed, 0x1a, 0x43, 0x3f, 0x53, 0x84, 0xce, 0xa9, 0xd7, + 0x4a, 0x38, 0x1b, 0x06, 0x2d, 0xc1, 0x74, 0x58, 0xc0, 0x60, 0xaf, 0x33, 0xd8, 0xb9, 0x3c, 0x58, + 0x01, 0xa6, 0xf0, 0x50, 0x5b, 0xe4, 0xe9, 0x65, 0xdb, 0xf5, 0x89, 0xb6, 0x98, 0x69, 0x8b, 0x02, + 0x82, 0x91, 0x50, 0x5b, 0x94, 0x38, 0xe4, 0x4e, 0xfa, 0x81, 0x67, 0xf5, 0x59, 0x03, 0xa9, 0x16, + 0x2d, 0x8c, 0xee, 0x64, 0x4c, 0x2c, 0x54, 0x29, 0x1b, 0x06, 0x61, 0x38, 0xe4, 0xef, 0x6d, 0xf9, + 0x7d, 0xcf, 0x1a, 0xd2, 0xbc, 0x45, 0xd3, 0xd4, 0x6e, 0x8d, 0x42, 0xde, 0x94, 0x88, 0xbb, 0x8b, + 0x26, 0x95, 0x4e, 0x12, 0x00, 0x7d, 0x11, 0x90, 0x9c, 0x25, 0x86, 0xef, 0x3d, 0x06, 0xfb, 0x99, + 0x31, 0x60, 0xa3, 0xb1, 0xcc, 0x80, 0x41, 0x06, 0x1c, 0x91, 0x73, 0x37, 0x5c, 0xdf, 0xa2, 0xbf, + 0xda, 0x6d, 0x06, 0xff, 0xce, 0x18, 0xf0, 0x21, 0x0b, 0x55, 0xac, 0x2c, 0xa8, 0x64, 0x15, 0xcb, + 0xd4, 0xac, 0x89, 0xe7, 0x6b, 0x77, 0xc6, 0xae, 0x22, 0x64, 0x49, 0x56, 0x11, 0xe6, 0x27, 0x87, + 0xe8, 0x7d, 0xcf, 0xdd, 0x1b, 0xfa, 0xda, 0xdd, 0xb1, 0x87, 0x88, 0x33, 0x24, 0x87, 0x88, 0xe7, + 0xa2, 0xeb, 0xd0, 0xda, 0xb2, 0xdd, 0xfe, 0x73, 0x2a, 0xcc, 0x0a, 0x83, 0xd4, 0x12, 0x90, 0x4b, + 0xb4, 0x58, 0x88, 0x2f, 0xa2, 0xa5, 0xca, 0xca, 0xfe, 0xaf, 0x10, 0x9b, 0x04, 0x44, 0x2c, 0x4b, + 0xc7, 0x32, 0x59, 0x39, 0x09, 0x55, 0x56, 0x89, 0x03, 0xad, 0xc0, 0xd4, 0xb6, 0x65, 0x13, 0xff, + 0xe9, 0xd0, 0x76, 0x0d, 0xbe, 0x46, 0x4d, 0x5d, 0x3e, 0x91, 0x09, 0x70, 0x2f, 0xa6, 0xa3, 0x28, + 0x12, 0x1b, 0xba, 0x0d, 0xed, 0x5d, 0xc3, 0x7b, 0xee, 0xf7, 0x9c, 0x6d, 0x57, 0xab, 0x67, 0x2e, + 0x3c, 0x1c, 0xe3, 0x51, 0x48, 0xb5, 0x56, 0xc2, 0x31, 0x0b, 0x5d, 0xbe, 0x58, 0xa3, 0x36, 0x49, + 0x70, 0xcf, 0x22, 0xb6, 0xe9, 0x6b, 0x0d, 0x06, 0xf2, 0x66, 0x26, 0xc8, 0x26, 0x09, 0xba, 0x9c, + 0x8c, 0x2e, 0x5f, 0x2a, 0x23, 0xfa, 0x00, 0x5e, 0x09, 0x73, 0x96, 0x77, 0x2c, 0xdb, 0xf4, 0x88, + 0xd3, 0x33, 0x7d, 0xad, 0x99, 0xb9, 0x32, 0xc4, 0x78, 0x12, 0x2d, 0x5d, 0xbd, 0x32, 0x20, 0xe8, + 0xcc, 0x18, 0x66, 0xcb, 0x26, 0xa9, 0xb5, 0x32, 0x67, 0xc6, 0x18, 0x5a, 0x26, 0xa6, 0xda, 0x95, + 0x05, 0x82, 0x4c, 0x78, 0x2d, 0xcc, 0x5f, 0x32, 0xfa, 0xcf, 0x07, 0x9e, 0xbb, 0xe7, 0x98, 0xcb, + 0xae, 0xed, 0x7a, 0x5a, 0x9b, 0xe1, 0x9f, 0xcb, 0xc5, 0x4f, 0xd0, 0xaf, 0x95, 0x70, 0x1e, 0x14, + 0x5a, 0x86, 0xe9, 0xb0, 0xe8, 0x09, 0x79, 0x19, 0x68, 0x90, 0xb9, 0xfc, 0xc6, 0xd0, 0x94, 0x88, + 0x4e, 0x90, 0x32, 0x93, 0x0c, 0x42, 0x55, 0x42, 0x9b, 0x2a, 0x00, 0xa1, 0x44, 0x32, 0x08, 0x4d, + 0xcb, 0x20, 0x74, 0xf9, 0xd5, 0x66, 0x0a, 0x40, 0x28, 0x91, 0x0c, 0x42, 0xd3, 0x74, 0xa9, 0x8e, + 0x7a, 0xea, 0xba, 0xcf, 0xa9, 0x3e, 0x69, 0xb3, 0x99, 0x4b, 0xb5, 0x34, 0x5a, 0x82, 0x90, 0x2e, + 0xd5, 0x49, 0x66, 0xea, 0xa0, 0x84, 0x79, 0x8b, 0xb6, 0x35, 0x70, 0xb4, 0x43, 0x23, 0x74, 0x99, + 0xa2, 0x31, 0x2a, 0xea, 0xa0, 0x28, 0x6c, 0xe8, 0xae, 0x30, 0xcb, 0x4d, 0x12, 0xac, 0x58, 0xfb, + 0xda, 0xe1, 0xcc, 0x65, 0x28, 0x46, 0x59, 0xb1, 0xf6, 0x23, 0xbb, 0xe4, 0x2c, 0x72, 0xd7, 0xc2, + 0x45, 0x4e, 0x7b, 0xb5, 0xa0, 0x6b, 0x21, 0xa1, 0xdc, 0xb5, 0x30, 0x4f, 0xee, 0xda, 0x43, 0x23, + 0x20, 0x2f, 0xb5, 0xd7, 0x0b, 0xba, 0xc6, 0xa8, 0xe4, 0xae, 0xb1, 0x0c, 0xba, 0xba, 0x85, 0x19, + 0xcf, 0x88, 0x17, 0x58, 0x7d, 0xc3, 0xe6, 0x43, 0x75, 0x2a, 0x73, 0x0d, 0x8a, 0xf1, 0x14, 0x6a, + 0xba, 0xba, 0x65, 0xc2, 0xc8, 0x1d, 0x7f, 0x62, 0x6c, 0xd9, 0x04, 0xbb, 0x2f, 0xb4, 0xd3, 0x05, + 0x1d, 0x0f, 0x09, 0xe5, 0x8e, 0x87, 0x79, 0xf2, 0xdc, 0xf2, 0x79, 0xcb, 0x1c, 0x90, 0x40, 0x3b, + 0x57, 0x30, 0xb7, 0x70, 0x32, 0x79, 0x6e, 0xe1, 0x39, 0xd1, 0x0c, 0xb0, 0x62, 0x04, 0xc6, 0xbe, + 0x45, 0x5e, 0x3c, 0xb3, 0xc8, 0x0b, 0xba, 0xb0, 0xbf, 0x32, 0x62, 0x06, 0x08, 0x69, 0xbb, 0x82, + 0x38, 0x9a, 0x01, 0x12, 0x20, 0xd1, 0x0c, 0x20, 0xe7, 0x8b, 0x69, 0xfd, 0xc8, 0x88, 0x19, 0x40, + 0xc1, 0x8f, 0xe6, 0xf8, 0x3c, 0x28, 0x64, 0xc0, 0xd1, 0x54, 0xd1, 0x63, 0xcf, 0x24, 0x9e, 0xf6, + 0x06, 0xab, 0xe4, 0x6c, 0x71, 0x25, 0x8c, 0x7c, 0xad, 0x84, 0x73, 0x80, 0x52, 0x55, 0x6c, 0xba, + 0x7b, 0x5e, 0x9f, 0xd0, 0x71, 0x3a, 0x39, 0x4e, 0x15, 0x11, 0x79, 0xaa, 0x8a, 0xa8, 0x04, 0xed, + 0xc3, 0x1b, 0x51, 0x09, 0xad, 0x98, 0xad, 0xa2, 0xac, 0x76, 0xb1, 0xb1, 0x38, 0xc3, 0x6a, 0xea, + 0x8e, 0xae, 0x29, 0xc9, 0xb5, 0x56, 0xc2, 0xa3, 0x61, 0xd1, 0x01, 0x1c, 0x57, 0x08, 0xf8, 0x3a, + 0x2f, 0x57, 0x7c, 0x96, 0x55, 0x7c, 0x71, 0x74, 0xc5, 0x29, 0xb6, 0xb5, 0x12, 0x2e, 0x00, 0x46, + 0x43, 0x38, 0xa6, 0x0c, 0x46, 0x68, 0xd8, 0x42, 0x45, 0x7e, 0x96, 0xd5, 0x7b, 0x7e, 0x74, 0xbd, + 0x2a, 0xcf, 0x5a, 0x09, 0x8f, 0x82, 0x44, 0x03, 0xd0, 0x32, 0x8b, 0xa9, 0x24, 0xbf, 0x91, 0xe9, + 0xf6, 0xe4, 0x54, 0xc7, 0x65, 0x99, 0x0b, 0x96, 0xa9, 0xf9, 0x62, 0x38, 0x7f, 0x6e, 0x5c, 0xcd, + 0x8f, 0xc6, 0x31, 0x0f, 0x4a, 0x91, 0x1d, 0x2d, 0x7a, 0x62, 0x78, 0x03, 0x12, 0xf0, 0x81, 0xee, + 0x99, 0xb4, 0x53, 0xdf, 0x1c, 0x47, 0x76, 0x29, 0x36, 0x45, 0x76, 0x99, 0xc0, 0xc8, 0x87, 0x39, + 0x85, 0xa2, 0xe7, 0x2f, 0xbb, 0xb6, 0x4d, 0xfa, 0xe1, 0x68, 0xfe, 0x3c, 0xab, 0xf8, 0xc2, 0xe8, + 0x8a, 0x13, 0x4c, 0x6b, 0x25, 0x3c, 0x12, 0x34, 0xd5, 0xdf, 0xc7, 0xb6, 0x99, 0xd0, 0x19, 0x6d, + 0x2c, 0x5d, 0x4d, 0xb2, 0xa5, 0xfa, 0x9b, 0xa2, 0x48, 0xe9, 0xaa, 0x44, 0x41, 0xbb, 0xfb, 0xda, + 0x38, 0xba, 0xaa, 0xf2, 0xa4, 0x74, 0x55, 0x2d, 0xa6, 0xab, 0xdb, 0x9e, 0x4f, 0x3c, 0x86, 0x71, + 0xdf, 0xb5, 0x1c, 0xed, 0xcd, 0xcc, 0xd5, 0xed, 0xa9, 0x4f, 0x3c, 0x51, 0x11, 0xa5, 0xa2, 0xab, + 0x9b, 0xc2, 0xa6, 0xe0, 0x3c, 0x24, 0xdb, 0x81, 0x76, 0xa2, 0x08, 0x87, 0x52, 0x29, 0x38, 0x34, + 0x83, 0xae, 0x14, 0x51, 0xc6, 0x26, 0xa1, 0x52, 0xc1, 0x86, 0x33, 0x20, 0xda, 0x5b, 0x99, 0x2b, + 0x85, 0x04, 0x27, 0x11, 0xd3, 0x95, 0x22, 0x0b, 0x84, 0xee, 0xfc, 0xa3, 0x7c, 0xea, 0x91, 0x71, + 0xe8, 0xf9, 0xcc, 0x9d, 0xbf, 0x04, 0x1d, 0x91, 0xd2, 0x3d, 0x48, 0x1a, 0x00, 0x7d, 0x06, 0x6a, + 0x43, 0xcb, 0x19, 0x68, 0x26, 0x03, 0x7a, 0x25, 0x01, 0xb4, 0x61, 0x39, 0x83, 0xb5, 0x12, 0x66, + 0x24, 0xe8, 0x16, 0xc0, 0xd0, 0x73, 0xfb, 0xc4, 0xf7, 0xd7, 0xc9, 0x0b, 0x8d, 0x30, 0x06, 0x3d, + 0xc9, 0xc0, 0x09, 0xba, 0xeb, 0x84, 0xae, 0xcb, 0x12, 0x3d, 0x5a, 0x85, 0x19, 0x91, 0x12, 0x56, + 0xbe, 0x9d, 0xe9, 0xfc, 0x85, 0x00, 0x71, 0x14, 0x48, 0xe1, 0xa2, 0x7b, 0x1f, 0x91, 0xb1, 0xe2, + 0x3a, 0x44, 0x1b, 0x64, 0xee, 0x7d, 0x42, 0x10, 0x4a, 0x42, 0x7d, 0x2c, 0x89, 0x03, 0x2d, 0xc1, + 0x74, 0xb0, 0xe3, 0x11, 0xc3, 0xdc, 0x0c, 0x8c, 0x60, 0xcf, 0xd7, 0x9c, 0x4c, 0x37, 0x8d, 0x17, + 0x76, 0x9f, 0x30, 0x4a, 0xea, 0x82, 0xca, 0x3c, 0x68, 0x1d, 0x3a, 0x74, 0x23, 0xf4, 0xd0, 0xda, + 0xb5, 0x02, 0x4c, 0x8c, 0xfe, 0x0e, 0x31, 0x35, 0x37, 0x73, 0x13, 0x45, 0xdd, 0xde, 0xae, 0x4c, + 0x47, 0xbd, 0x95, 0x24, 0x2f, 0x5a, 0x83, 0x59, 0x9a, 0xb7, 0x39, 0x34, 0xfa, 0xe4, 0xa9, 0x6f, + 0x0c, 0x88, 0x36, 0xcc, 0xd4, 0x40, 0x86, 0x16, 0x53, 0x51, 0x67, 0x45, 0xe5, 0x0b, 0x91, 0x1e, + 0xba, 0x7d, 0xc3, 0xe6, 0x48, 0x5f, 0xcb, 0x47, 0x8a, 0xa9, 0x42, 0xa4, 0x38, 0x47, 0xe9, 0x23, + 0x1f, 0x7b, 0x53, 0xdb, 0x2f, 0xe8, 0xa3, 0xa0, 0x53, 0xfa, 0x28, 0xf2, 0x28, 0x9e, 0xe3, 0x06, + 0xd6, 0xb6, 0xd5, 0x17, 0xf6, 0xeb, 0x98, 0x9a, 0x97, 0x89, 0xb7, 0x2e, 0x91, 0x75, 0x37, 0x79, + 0x64, 0x29, 0xc5, 0x8b, 0x9e, 0x00, 0x92, 0xf3, 0x84, 0x52, 0xf9, 0x0c, 0x71, 0x7e, 0x14, 0x62, + 0xa4, 0x59, 0x19, 0xfc, 0xb4, 0x95, 0x43, 0xe3, 0x80, 0x6e, 0x6f, 0x97, 0x3c, 0xd7, 0x30, 0xfb, + 0x86, 0x1f, 0x68, 0x41, 0x66, 0x2b, 0x37, 0x38, 0x59, 0x37, 0xa2, 0xa3, 0xad, 0x4c, 0xf2, 0x52, + 0xbc, 0x5d, 0xb2, 0xbb, 0x45, 0x3c, 0x7f, 0xc7, 0x1a, 0x8a, 0x36, 0xee, 0x65, 0xe2, 0x3d, 0x8a, + 0xc8, 0xe2, 0x16, 0xa6, 0x78, 0xa9, 0x23, 0xee, 0x53, 0x69, 0x6f, 0x1e, 0x38, 0x7d, 0xae, 0x8c, + 0x02, 0xf4, 0x45, 0xa6, 0x23, 0xce, 0x34, 0xa3, 0x1b, 0x13, 0xc7, 0xd0, 0xd9, 0x30, 0xe8, 0x01, + 0x1c, 0x1a, 0x5e, 0x1e, 0x2a, 0xc8, 0x2f, 0x33, 0x1d, 0xe7, 0x8d, 0xcb, 0x1b, 0x49, 0xc8, 0x24, + 0xe7, 0x52, 0x13, 0xea, 0xfb, 0x86, 0xbd, 0x47, 0xf4, 0x3f, 0xad, 0x43, 0x53, 0xc4, 0x63, 0xf5, + 0x75, 0xa8, 0xb1, 0xe0, 0xf5, 0x11, 0xa8, 0x5b, 0x8e, 0x49, 0x5e, 0xb2, 0xb8, 0x77, 0x1d, 0xf3, + 0x04, 0xba, 0x04, 0x4d, 0x11, 0x9f, 0x15, 0x11, 0x91, 0xbc, 0x68, 0x7b, 0x48, 0xa6, 0x7f, 0x08, + 0xcd, 0x30, 0x88, 0x3d, 0x07, 0xed, 0xa1, 0xe7, 0x52, 0xcd, 0xeb, 0x99, 0x0c, 0xb6, 0x8d, 0xe3, + 0x0c, 0xf4, 0x2e, 0x34, 0x4d, 0x11, 0x26, 0xe7, 0xd0, 0xaf, 0x75, 0xf9, 0xb9, 0x42, 0x37, 0x3c, + 0x57, 0xe8, 0x6e, 0xb2, 0x73, 0x05, 0x1c, 0xd2, 0xe9, 0xdf, 0x2a, 0x43, 0x83, 0xc7, 0xb2, 0xf5, + 0x7d, 0x68, 0x88, 0x21, 0xba, 0x06, 0x8d, 0x3e, 0xcb, 0xd3, 0x92, 0x71, 0x6c, 0xa5, 0x85, 0x22, + 0x38, 0x8e, 0x05, 0x31, 0x65, 0xf3, 0xf9, 0x8c, 0x53, 0x19, 0xc9, 0xc6, 0x47, 0x10, 0x0b, 0xe2, + 0xff, 0xb1, 0x7a, 0xff, 0xb3, 0x0c, 0x33, 0x6a, 0x88, 0x7c, 0x0e, 0xda, 0xfd, 0x28, 0xe8, 0x2e, + 0x46, 0xb7, 0x2f, 0x05, 0xd0, 0xa1, 0x6f, 0x5b, 0xc4, 0x09, 0x58, 0x34, 0xa8, 0x92, 0xe9, 0x64, + 0x64, 0x86, 0xe4, 0xbb, 0xcb, 0x11, 0x1b, 0x96, 0x20, 0xf4, 0x6f, 0x02, 0xc4, 0x25, 0xe8, 0x44, + 0x34, 0xed, 0xaf, 0x1b, 0xbb, 0x61, 0xf5, 0x72, 0x96, 0x44, 0xb1, 0x61, 0x04, 0x3b, 0xe2, 0x24, + 0x47, 0xce, 0x42, 0xe7, 0xe1, 0xb0, 0x6f, 0x0d, 0x1c, 0x23, 0xd8, 0xf3, 0xc8, 0x33, 0xe2, 0x59, + 0xdb, 0x16, 0x31, 0x59, 0xf0, 0xac, 0x85, 0xd3, 0x05, 0xfa, 0xaf, 0xb6, 0xa1, 0xc1, 0xdd, 0x39, + 0xfd, 0xc7, 0x95, 0x48, 0xc7, 0xf4, 0xbf, 0x2a, 0x43, 0x9d, 0x87, 0xb5, 0x67, 0xa1, 0x62, 0x85, + 0x6a, 0x56, 0xb1, 0x4c, 0x74, 0x4f, 0xd6, 0xaf, 0x6a, 0x86, 0xaf, 0x93, 0x15, 0xe6, 0xef, 0x3e, + 0x20, 0x07, 0xcf, 0xa8, 0x8d, 0x44, 0x4a, 0x87, 0x8e, 0x42, 0xc3, 0xdf, 0xdb, 0xea, 0x99, 0xbe, + 0x56, 0x3d, 0x51, 0x3d, 0xd7, 0xc6, 0x22, 0xa5, 0xdf, 0x87, 0x56, 0x48, 0x8c, 0x3a, 0x50, 0x7d, + 0x4e, 0x0e, 0x44, 0xe5, 0xf4, 0x2f, 0x3a, 0x2f, 0x6c, 0x2d, 0x32, 0x9b, 0xa4, 0x6e, 0xf3, 0x5a, + 0x84, 0x41, 0x7e, 0x05, 0xaa, 0xd4, 0x81, 0x4a, 0x76, 0x61, 0x72, 0x13, 0xc9, 0x6d, 0xed, 0x32, + 0xd4, 0xf9, 0xd1, 0x42, 0xb2, 0x0e, 0x04, 0xb5, 0xe7, 0xe4, 0x80, 0x8f, 0x51, 0x1b, 0xb3, 0xff, + 0xb9, 0x20, 0x7f, 0x59, 0x85, 0x69, 0x39, 0x9c, 0xaa, 0xaf, 0x42, 0x75, 0xd1, 0x4c, 0x0f, 0xbd, + 0x06, 0x4d, 0x63, 0x3b, 0x20, 0x5e, 0x74, 0x82, 0x17, 0x26, 0xe9, 0x2c, 0xc3, 0xb0, 0x98, 0x9c, + 0xdb, 0x98, 0x27, 0xf4, 0x2e, 0x34, 0x44, 0x94, 0x3a, 0x89, 0x14, 0xd1, 0x57, 0x64, 0xfa, 0xfb, + 0xd0, 0x8a, 0x82, 0xce, 0x1f, 0xb7, 0x6e, 0x0f, 0x5a, 0x51, 0x74, 0xf9, 0x08, 0xd4, 0x03, 0x37, + 0x30, 0x6c, 0x06, 0x57, 0xc5, 0x3c, 0x41, 0x0d, 0xcd, 0x21, 0x2f, 0x83, 0xe5, 0x68, 0x16, 0xac, + 0xe2, 0x38, 0x83, 0x4f, 0x72, 0x64, 0x9f, 0x97, 0x56, 0x79, 0x69, 0x94, 0x11, 0xd7, 0x59, 0x93, + 0xeb, 0x3c, 0x80, 0x86, 0x08, 0x39, 0x47, 0xe5, 0x65, 0xa9, 0x1c, 0x2d, 0x42, 0x7d, 0x40, 0xcb, + 0x85, 0xd4, 0xdf, 0x49, 0x4c, 0x11, 0xdc, 0x93, 0x5c, 0x76, 0x9d, 0x80, 0xaa, 0xb1, 0xba, 0x93, + 0xc6, 0x9c, 0x93, 0x8a, 0xd0, 0xe3, 0xe7, 0x07, 0xdc, 0xa2, 0x44, 0x4a, 0xff, 0x83, 0x32, 0xb4, + 0xa3, 0x03, 0x1b, 0xfd, 0xc3, 0x3c, 0xe3, 0x59, 0x84, 0x19, 0x4f, 0x50, 0xd1, 0xd9, 0x21, 0x34, + 0xa1, 0x63, 0x89, 0x96, 0x60, 0x89, 0x06, 0xab, 0x1c, 0xfa, 0xad, 0x5c, 0xa1, 0xce, 0xc3, 0x74, + 0x48, 0xfa, 0x20, 0x56, 0x3d, 0x25, 0x4f, 0xd7, 0x23, 0xee, 0x0e, 0x54, 0x2d, 0x93, 0x9f, 0x1f, + 0xb7, 0x31, 0xfd, 0xab, 0x6f, 0xc3, 0xb4, 0x1c, 0xb6, 0xd5, 0x9f, 0x65, 0x5b, 0xcf, 0x1d, 0x5a, + 0x8d, 0x14, 0x22, 0xae, 0x24, 0x7c, 0xd3, 0xb0, 0x0b, 0x31, 0x09, 0x56, 0x18, 0xf4, 0xd7, 0xa0, + 0xce, 0x0f, 0x93, 0x12, 0xc8, 0xfa, 0xef, 0xf4, 0xa1, 0xce, 0x84, 0xa0, 0x5f, 0xe1, 0x06, 0x70, + 0x1e, 0x1a, 0x6c, 0x63, 0x14, 0x1e, 0x73, 0x1f, 0xc9, 0x92, 0x18, 0x16, 0x34, 0xfa, 0x32, 0x4c, + 0x49, 0x61, 0x7c, 0xaa, 0xb1, 0xac, 0x20, 0xd2, 0x82, 0x30, 0x89, 0x74, 0x68, 0xd1, 0xc5, 0x52, + 0x4c, 0xa0, 0xb4, 0xff, 0x51, 0x5a, 0x3f, 0x05, 0x0d, 0xb1, 0xd1, 0xd3, 0xc5, 0xb1, 0x45, 0x2f, + 0x1a, 0xa5, 0x28, 0xad, 0x7f, 0x09, 0xda, 0x51, 0xb4, 0x1f, 0x3d, 0x86, 0x69, 0x11, 0xed, 0xe7, + 0x9b, 0x15, 0x4a, 0x3c, 0x5b, 0xa0, 0x5d, 0x74, 0x67, 0xc2, 0x0e, 0x0c, 0xba, 0x4f, 0x0e, 0x86, + 0x04, 0x2b, 0x00, 0xfa, 0x2f, 0x9f, 0x63, 0x23, 0xaf, 0x0f, 0xa1, 0x15, 0x85, 0x38, 0x93, 0x52, + 0x58, 0xe0, 0x53, 0x63, 0xa5, 0x30, 0x3e, 0xcf, 0xf9, 0xe9, 0x04, 0xcc, 0x66, 0x50, 0xfd, 0x18, + 0x54, 0x1f, 0x90, 0x03, 0x6a, 0x21, 0x7c, 0x22, 0x15, 0x16, 0xc2, 0x27, 0xcc, 0x1e, 0x34, 0xc4, + 0x51, 0x43, 0xb2, 0xbe, 0x8b, 0xd0, 0xd8, 0xe6, 0xa7, 0x17, 0x05, 0x53, 0xa6, 0x20, 0xd3, 0xef, + 0xc0, 0x94, 0x7c, 0xc0, 0x90, 0xc4, 0x3b, 0x01, 0x53, 0x7d, 0xe9, 0x08, 0x83, 0x8b, 0x41, 0xce, + 0xd2, 0x89, 0xaa, 0x8e, 0x29, 0x84, 0xd5, 0x4c, 0x3d, 0x7c, 0x2b, 0x73, 0xd8, 0x47, 0x68, 0xe3, + 0x03, 0x38, 0x94, 0x3c, 0x49, 0x48, 0xd6, 0x74, 0x0e, 0x0e, 0x6d, 0x25, 0xce, 0x2d, 0xf8, 0x1c, + 0x98, 0xcc, 0xd6, 0x7b, 0x50, 0xe7, 0x91, 0xde, 0x24, 0xc4, 0x25, 0xa8, 0x1b, 0x2c, 0x92, 0x4c, + 0x19, 0x67, 0xa5, 0xfd, 0xa4, 0xdc, 0x4a, 0xc6, 0x8a, 0x39, 0xa1, 0x6e, 0xc1, 0x8c, 0x1a, 0x3c, + 0x4e, 0x42, 0xae, 0xc1, 0xcc, 0xbe, 0x12, 0xa4, 0xe6, 0xd0, 0xf3, 0x99, 0xd0, 0x0a, 0x14, 0x56, + 0x19, 0xf5, 0x5f, 0x68, 0x40, 0x8d, 0x9d, 0x7e, 0x24, 0xab, 0xb8, 0x0e, 0xb5, 0x80, 0xbc, 0x0c, + 0x7d, 0xd4, 0xf9, 0x91, 0x47, 0x29, 0x7c, 0x0b, 0xce, 0xe8, 0xd1, 0x67, 0xa1, 0xee, 0x07, 0x07, + 0x76, 0x78, 0x66, 0x77, 0x72, 0x34, 0xe3, 0x26, 0x25, 0xc5, 0x9c, 0x83, 0xb2, 0x32, 0x5b, 0x10, + 0xa7, 0x75, 0x05, 0xac, 0xcc, 0x08, 0x31, 0xe7, 0x40, 0x77, 0xa0, 0xd9, 0xdf, 0x21, 0xfd, 0xe7, + 0xc4, 0x14, 0xc7, 0x74, 0xa7, 0x47, 0x33, 0x2f, 0x73, 0x62, 0x1c, 0x72, 0xd1, 0xba, 0xfb, 0x4c, + 0xba, 0x8d, 0x71, 0xea, 0x66, 0x12, 0xc7, 0x9c, 0x03, 0xad, 0x42, 0xdb, 0xea, 0xbb, 0xce, 0xea, + 0xae, 0xfb, 0x55, 0x4b, 0x9c, 0xc7, 0x9d, 0x1d, 0xcd, 0xde, 0x0b, 0xc9, 0x71, 0xcc, 0x19, 0xc2, + 0xf4, 0x76, 0xe9, 0x96, 0xb6, 0x35, 0x2e, 0x0c, 0x23, 0xc7, 0x31, 0xa7, 0x3e, 0x27, 0xe4, 0x99, + 0x6d, 0xe4, 0xf7, 0xa0, 0xce, 0x86, 0x1c, 0xbd, 0x27, 0x17, 0xcf, 0x4a, 0x35, 0xe5, 0xce, 0x58, + 0x42, 0x54, 0x11, 0x0e, 0x1b, 0x7f, 0x15, 0x67, 0x6a, 0x1c, 0x1c, 0x21, 0x37, 0x8e, 0xf3, 0x26, + 0x34, 0x85, 0x28, 0xd4, 0x06, 0xb7, 0x42, 0x82, 0x37, 0xa0, 0xce, 0x0d, 0x33, 0xbb, 0x3f, 0x6f, + 0x41, 0x3b, 0x1a, 0xcc, 0xd1, 0x24, 0x6c, 0x74, 0x72, 0x48, 0x7e, 0xa5, 0x02, 0x75, 0x7e, 0x0a, + 0x94, 0x9e, 0x6a, 0x65, 0x2b, 0x38, 0x39, 0xfa, 0x50, 0x49, 0x36, 0x83, 0x7b, 0x6c, 0xa3, 0x46, + 0x1d, 0xf3, 0xe8, 0x56, 0xd5, 0xb9, 0x02, 0xee, 0x8d, 0x90, 0x1e, 0xc7, 0xac, 0x05, 0xe2, 0x7c, + 0x0c, 0xed, 0x88, 0x0b, 0x2d, 0xa9, 0x22, 0x3d, 0x3f, 0x52, 0x14, 0xc9, 0x2a, 0x05, 0xe0, 0xb7, + 0xcb, 0x50, 0x5d, 0xb1, 0xf6, 0x53, 0xe3, 0x70, 0x23, 0xb4, 0xea, 0xa2, 0xe9, 0x60, 0xc5, 0xda, + 0x57, 0x8c, 0x5a, 0x5f, 0x0d, 0x35, 0xee, 0x96, 0xda, 0xbc, 0x33, 0xa3, 0x3d, 0xb0, 0x18, 0x86, + 0x37, 0xec, 0x37, 0x9a, 0x50, 0x63, 0x07, 0xac, 0x59, 0xf3, 0xd4, 0xc1, 0xb0, 0xb8, 0x61, 0x2c, + 0x84, 0xc3, 0x16, 0x5c, 0x46, 0xcf, 0xe7, 0x29, 0x23, 0x28, 0x9e, 0xa7, 0x78, 0x44, 0x8a, 0x92, + 0x62, 0xce, 0x41, 0xab, 0xdc, 0xb5, 0x76, 0x89, 0x98, 0xa6, 0x0a, 0xaa, 0x7c, 0x64, 0xed, 0x12, + 0xcc, 0xe8, 0x29, 0xdf, 0x8e, 0xe1, 0xef, 0x88, 0x19, 0xaa, 0x80, 0x6f, 0xcd, 0xf0, 0x77, 0x30, + 0xa3, 0xa7, 0x7c, 0x0e, 0xdd, 0x12, 0x36, 0xc6, 0xe1, 0xa3, 0x3b, 0x45, 0xcc, 0xe8, 0x29, 0x9f, + 0x6f, 0x7d, 0x9d, 0x88, 0x39, 0xa9, 0x80, 0x6f, 0xd3, 0xfa, 0x3a, 0xc1, 0x8c, 0x3e, 0x9e, 0xc2, + 0x5b, 0xe3, 0x0d, 0x8d, 0x34, 0x85, 0x3f, 0x81, 0xd9, 0x40, 0x39, 0x26, 0x10, 0xa7, 0xfc, 0xe7, + 0x0b, 0xe4, 0xa2, 0xf0, 0xe0, 0x04, 0x06, 0x35, 0x02, 0xb6, 0x01, 0xce, 0x36, 0x82, 0x37, 0xa0, + 0xfe, 0x79, 0xcb, 0x0c, 0x76, 0xd4, 0xe2, 0xba, 0x32, 0xe5, 0x51, 0xb1, 0x4d, 0x34, 0xe5, 0xc9, + 0x52, 0xe7, 0x38, 0x2b, 0x50, 0xa3, 0xea, 0x33, 0x99, 0x1e, 0xc7, 0x5a, 0xf7, 0xb1, 0x26, 0x60, + 0x79, 0xa0, 0x39, 0xce, 0x1c, 0xd4, 0xa8, 0x86, 0xe4, 0x0c, 0xc9, 0x1c, 0xd4, 0xa8, 0xde, 0xe5, + 0x97, 0x52, 0x69, 0xab, 0xa5, 0xd5, 0xb0, 0xf4, 0x0c, 0xcc, 0xaa, 0xe2, 0xc8, 0x41, 0xf9, 0x8b, + 0x26, 0xd4, 0xd8, 0x6d, 0x85, 0xa4, 0x45, 0xfe, 0x0c, 0xcc, 0x70, 0xf9, 0x2d, 0x09, 0x17, 0xbc, + 0x92, 0x79, 0x59, 0x49, 0xbd, 0x03, 0x21, 0x54, 0x40, 0xb0, 0x60, 0x15, 0x61, 0x7c, 0xa7, 0x82, + 0x41, 0x29, 0x1a, 0x79, 0x2b, 0x72, 0x5e, 0x6b, 0x05, 0x57, 0x65, 0x18, 0x2f, 0x77, 0x81, 0x43, + 0x4f, 0x16, 0x2d, 0x41, 0x8b, 0x2e, 0xad, 0x74, 0xb8, 0x84, 0xd9, 0x9e, 0x19, 0xcd, 0xdf, 0x13, + 0xd4, 0x38, 0xe2, 0xa3, 0x0b, 0x7b, 0xdf, 0xf0, 0x4c, 0xd6, 0x2a, 0x61, 0xc3, 0x67, 0x47, 0x83, + 0x2c, 0x87, 0xe4, 0x38, 0xe6, 0x44, 0x0f, 0x60, 0xca, 0x24, 0x51, 0x9c, 0x40, 0x18, 0xf5, 0x67, + 0x46, 0x03, 0xad, 0xc4, 0x0c, 0x58, 0xe6, 0xa6, 0x6d, 0x0a, 0xf7, 0x86, 0x7e, 0xa1, 0xb3, 0xc1, + 0xa0, 0xe2, 0x2b, 0x89, 0x31, 0xa7, 0x7e, 0x1a, 0x66, 0x14, 0xb9, 0x7d, 0xa2, 0x5e, 0x87, 0x2c, + 0x4b, 0x8e, 0xb3, 0x10, 0x6d, 0x51, 0x2e, 0xa8, 0x6e, 0x47, 0xee, 0x8e, 0x44, 0x30, 0x3e, 0x84, + 0x56, 0x28, 0x18, 0x74, 0x57, 0x6d, 0xc3, 0xdb, 0xc5, 0x6d, 0x88, 0x64, 0x2a, 0xd0, 0xd6, 0xa1, + 0x1d, 0x49, 0x08, 0x2d, 0xaa, 0x70, 0xef, 0x14, 0xc3, 0xc5, 0xd2, 0x15, 0x78, 0x18, 0xa6, 0x24, + 0x41, 0xa1, 0x65, 0x15, 0xf1, 0x42, 0x31, 0xa2, 0x2c, 0xe6, 0xd8, 0xeb, 0x89, 0x24, 0x26, 0x4b, + 0xa5, 0x1a, 0x4b, 0xe5, 0x4f, 0x9a, 0xd0, 0x8a, 0x6e, 0x08, 0x65, 0xec, 0x31, 0xf7, 0x3c, 0xbb, + 0x70, 0x8f, 0x19, 0xf2, 0x77, 0x9f, 0x7a, 0x36, 0xa6, 0x1c, 0x54, 0xc4, 0x81, 0x15, 0x44, 0xa6, + 0x7a, 0xb6, 0x98, 0xf5, 0x09, 0x25, 0xc7, 0x9c, 0x0b, 0x3d, 0x56, 0xb5, 0xbc, 0x36, 0xe2, 0x04, + 0x59, 0x01, 0xc9, 0xd5, 0xf4, 0x1e, 0xb4, 0x2d, 0xea, 0xfa, 0xad, 0xc5, 0x2b, 0xef, 0x3b, 0xc5, + 0x70, 0xbd, 0x90, 0x05, 0xc7, 0xdc, 0xb4, 0x6d, 0xdb, 0xc6, 0x3e, 0xb5, 0x6b, 0x06, 0xd6, 0x18, + 0xb7, 0x6d, 0xf7, 0x62, 0x26, 0x2c, 0x23, 0xa0, 0x9b, 0xc2, 0x77, 0x69, 0x16, 0xcc, 0x2c, 0xf1, + 0x50, 0xc5, 0xfe, 0xcb, 0x07, 0xa9, 0x95, 0x96, 0x9b, 0xf1, 0xa5, 0x31, 0x50, 0x46, 0xae, 0xb6, + 0x54, 0x82, 0xdc, 0x33, 0x6a, 0x8f, 0x2b, 0x41, 0xd9, 0x3b, 0xd2, 0x8f, 0x41, 0xf5, 0xa9, 0x67, + 0xe7, 0xaf, 0xd5, 0x4c, 0xdc, 0x39, 0xc5, 0x27, 0x55, 0x4b, 0xc8, 0x77, 0xe8, 0x23, 0x99, 0xe4, + 0xe2, 0x48, 0x83, 0x9e, 0x43, 0xf4, 0x9e, 0x58, 0xd0, 0xaf, 0xa9, 0xf6, 0xf6, 0x66, 0xc2, 0xde, + 0xa8, 0x85, 0x6d, 0x78, 0x84, 0x5f, 0x92, 0x90, 0x56, 0xf2, 0x71, 0xd7, 0xc9, 0xfb, 0xa1, 0xff, + 0x31, 0xd1, 0x4c, 0x91, 0x1c, 0x5b, 0x8e, 0xf5, 0x4b, 0x65, 0x68, 0x45, 0x17, 0xc0, 0xd2, 0xd1, + 0xf9, 0x96, 0xe5, 0xaf, 0x11, 0xc3, 0x24, 0x9e, 0xb0, 0xdb, 0xb7, 0x0b, 0x6f, 0x96, 0x75, 0x7b, + 0x82, 0x03, 0x47, 0xbc, 0xfa, 0x09, 0x68, 0x85, 0xb9, 0x39, 0x9b, 0xb2, 0xef, 0x57, 0xa0, 0x21, + 0xae, 0x8e, 0x25, 0x1b, 0x71, 0x1b, 0x1a, 0xb6, 0x71, 0xe0, 0xee, 0x85, 0x5b, 0xa6, 0x33, 0x05, + 0xb7, 0xd1, 0xba, 0x0f, 0x19, 0x35, 0x16, 0x5c, 0xe8, 0x73, 0x50, 0xb7, 0xad, 0x5d, 0x2b, 0x10, + 0xd3, 0xc7, 0xe9, 0x42, 0x76, 0x76, 0xc8, 0xcc, 0x79, 0x68, 0xe5, 0xec, 0xc6, 0x48, 0x78, 0xdf, + 0xb7, 0xb0, 0xf2, 0x67, 0x8c, 0x1a, 0x0b, 0x2e, 0xfd, 0x3e, 0x34, 0x78, 0x73, 0x26, 0x5b, 0x24, + 0xd4, 0x9e, 0xc4, 0x9a, 0xce, 0xda, 0x96, 0xe3, 0x95, 0x1e, 0x87, 0x06, 0xaf, 0x3c, 0x47, 0x6b, + 0xbe, 0xf7, 0x3a, 0xdb, 0xef, 0xd8, 0xfa, 0xc3, 0xf8, 0xf0, 0xef, 0xe3, 0x9f, 0x65, 0xe8, 0x4f, + 0xe0, 0xd0, 0x8a, 0x11, 0x18, 0x5b, 0x86, 0x4f, 0x30, 0xe9, 0xbb, 0x9e, 0x99, 0x89, 0xea, 0xf1, + 0x22, 0x11, 0xa1, 0xce, 0x47, 0x15, 0x74, 0x9f, 0x86, 0x0e, 0xff, 0xf7, 0x84, 0x0e, 0xff, 0xac, + 0x96, 0x13, 0xcf, 0x1b, 0x27, 0x92, 0x41, 0x15, 0x2e, 0x15, 0xd0, 0xbb, 0xa9, 0xfa, 0xde, 0xa7, + 0x0a, 0x38, 0x15, 0xe7, 0xfb, 0xa6, 0x1a, 0xd1, 0x2b, 0xe2, 0x55, 0x42, 0x7a, 0x77, 0x93, 0x21, + 0xbd, 0x33, 0x05, 0xdc, 0xa9, 0x98, 0xde, 0x4d, 0x35, 0xa6, 0x57, 0x54, 0xbb, 0x1c, 0xd4, 0xfb, + 0x7f, 0x16, 0x46, 0xfb, 0xad, 0x9c, 0xb0, 0xcf, 0x67, 0xd5, 0xb0, 0xcf, 0x08, 0xad, 0xf9, 0x69, + 0xc5, 0x7d, 0x7e, 0xbb, 0x91, 0x13, 0xf7, 0x59, 0x50, 0xe2, 0x3e, 0x23, 0x5a, 0x96, 0x0c, 0xfc, + 0xdc, 0x54, 0x03, 0x3f, 0xa7, 0x0a, 0x38, 0x95, 0xc8, 0xcf, 0x82, 0x12, 0xf9, 0x29, 0xaa, 0x54, + 0x0a, 0xfd, 0x2c, 0x28, 0xa1, 0x9f, 0x22, 0x46, 0x29, 0xf6, 0xb3, 0xa0, 0xc4, 0x7e, 0x8a, 0x18, + 0xa5, 0xe0, 0xcf, 0x82, 0x12, 0xfc, 0x29, 0x62, 0x94, 0xa2, 0x3f, 0x37, 0xd5, 0xe8, 0x4f, 0xf1, + 0xf8, 0x48, 0x42, 0xff, 0x34, 0x50, 0xf3, 0xdf, 0x18, 0xa8, 0xf9, 0xf5, 0x6a, 0x4e, 0x00, 0x06, + 0x67, 0x07, 0x60, 0xce, 0xe7, 0x4b, 0xb2, 0x38, 0x02, 0x33, 0xfe, 0x2a, 0x90, 0x0e, 0xc1, 0xbc, + 0x97, 0x08, 0xc1, 0x9c, 0x2e, 0x60, 0x56, 0x63, 0x30, 0xff, 0x67, 0x82, 0x0c, 0x7f, 0xd4, 0x18, + 0xb1, 0x9f, 0xbe, 0x21, 0xef, 0xa7, 0x47, 0xac, 0x64, 0xe9, 0x0d, 0xf5, 0x6d, 0x75, 0x43, 0x7d, + 0x6e, 0x0c, 0x5e, 0x65, 0x47, 0xbd, 0x91, 0xb5, 0xa3, 0xee, 0x8e, 0x81, 0x92, 0xbb, 0xa5, 0xbe, + 0x9f, 0xde, 0x52, 0x9f, 0x1f, 0x03, 0x2f, 0x73, 0x4f, 0xbd, 0x91, 0xb5, 0xa7, 0x1e, 0xa7, 0x75, + 0xb9, 0x9b, 0xea, 0xcf, 0x29, 0x9b, 0xea, 0xb3, 0xe3, 0x0c, 0x57, 0xbc, 0x38, 0x7c, 0x21, 0x67, + 0x57, 0xfd, 0xee, 0x38, 0x30, 0xa3, 0x83, 0xd8, 0x9f, 0xee, 0x8b, 0xd5, 0x6a, 0xfe, 0xf0, 0x4d, + 0x68, 0x85, 0x17, 0x6d, 0xf4, 0xaf, 0x41, 0x33, 0x7c, 0x2f, 0x94, 0xb4, 0x9c, 0xa3, 0xd1, 0xa6, + 0x8e, 0x7b, 0xcf, 0x22, 0x85, 0x6e, 0x43, 0x8d, 0xfe, 0x13, 0x66, 0xf1, 0xf6, 0x78, 0x17, 0x7a, + 0x68, 0x25, 0x98, 0xf1, 0xe9, 0x3f, 0x3a, 0x02, 0x20, 0x3d, 0xa3, 0x18, 0xb7, 0xda, 0xf7, 0xe9, + 0x64, 0x66, 0x07, 0xc4, 0x63, 0x17, 0xb9, 0x0a, 0x9f, 0x19, 0xc4, 0x35, 0x50, 0x6d, 0x09, 0x88, + 0x87, 0x05, 0x3b, 0x7a, 0x04, 0xad, 0x30, 0x90, 0xaa, 0xd5, 0x18, 0xd4, 0xbb, 0x63, 0x43, 0x85, + 0xa1, 0x3d, 0x1c, 0x41, 0xa0, 0x45, 0xa8, 0xf9, 0xae, 0x17, 0x68, 0x75, 0x06, 0x75, 0x61, 0x6c, + 0xa8, 0x4d, 0xd7, 0x0b, 0x30, 0x63, 0xe5, 0x5d, 0x93, 0x5e, 0xa9, 0x4e, 0xd2, 0x35, 0x65, 0xc6, + 0xfe, 0xf7, 0x6a, 0x34, 0x87, 0x2e, 0x0b, 0x6b, 0xe4, 0x3a, 0x74, 0x71, 0x7c, 0x29, 0xc9, 0x56, + 0x89, 0x84, 0x13, 0xc4, 0x25, 0xc1, 0xfd, 0x9b, 0xb7, 0xa1, 0xd3, 0x77, 0xf7, 0x89, 0x87, 0xe3, + 0x2b, 0x4e, 0xe2, 0x16, 0x5a, 0x2a, 0x1f, 0xe9, 0xd0, 0xda, 0xb1, 0x4c, 0xd2, 0xeb, 0x8b, 0xf9, + 0xaf, 0x85, 0xa3, 0x34, 0x7a, 0x00, 0x2d, 0x16, 0x63, 0x0f, 0x23, 0xfc, 0x93, 0x35, 0x92, 0x87, + 0xfa, 0x43, 0x00, 0x5a, 0x11, 0xab, 0xfc, 0x9e, 0x15, 0xb0, 0x31, 0x6c, 0xe1, 0x28, 0x4d, 0x1b, + 0xcc, 0xee, 0x91, 0xc9, 0x0d, 0x6e, 0xf2, 0x06, 0x27, 0xf3, 0xd1, 0x55, 0x78, 0x95, 0xe5, 0x25, + 0xb6, 0x98, 0x3c, 0x54, 0xdf, 0xc2, 0xd9, 0x85, 0xec, 0xde, 0x9c, 0x31, 0xe0, 0x77, 0xd2, 0x59, + 0xf0, 0xae, 0x8e, 0xe3, 0x0c, 0x74, 0x1e, 0x0e, 0x9b, 0x64, 0xdb, 0xd8, 0xb3, 0x83, 0x27, 0x64, + 0x77, 0x68, 0x1b, 0x01, 0xe9, 0x99, 0xec, 0xa1, 0x6c, 0x1b, 0xa7, 0x0b, 0xd0, 0x25, 0x78, 0x45, + 0x64, 0x72, 0x33, 0xa6, 0xd2, 0xe8, 0x99, 0xec, 0xdd, 0x68, 0x1b, 0x67, 0x15, 0xe9, 0xdf, 0xab, + 0x51, 0xa1, 0x33, 0xd5, 0x7e, 0x1f, 0xaa, 0x86, 0x69, 0x8a, 0x65, 0xf3, 0xca, 0x84, 0x06, 0x22, + 0xde, 0x82, 0x53, 0x04, 0xb4, 0x11, 0x5d, 0xb9, 0xe3, 0x0b, 0xe7, 0xf5, 0x49, 0xb1, 0xa2, 0xf7, + 0xfb, 0x02, 0x87, 0x22, 0xee, 0xf1, 0x4b, 0xdf, 0xd5, 0x9f, 0x0c, 0x31, 0xba, 0x0b, 0x2e, 0x70, + 0xd0, 0x7d, 0xa8, 0xb1, 0x16, 0xf2, 0x85, 0xf5, 0xea, 0xa4, 0x78, 0x8f, 0x78, 0xfb, 0x18, 0x86, + 0xde, 0xe7, 0x77, 0xdf, 0xa4, 0x0b, 0x97, 0x65, 0xf5, 0xc2, 0xe5, 0x12, 0xd4, 0xad, 0x80, 0xec, + 0xa6, 0xef, 0xdf, 0x8e, 0x54, 0x55, 0x31, 0xf3, 0x70, 0xd6, 0x91, 0xf7, 0x00, 0x3f, 0x8c, 0xee, + 0x62, 0x27, 0xe7, 0xc3, 0xbb, 0x50, 0xa3, 0xec, 0x29, 0x5f, 0x72, 0x9c, 0x8a, 0x19, 0xa7, 0x7e, + 0x19, 0x6a, 0xb4, 0xb3, 0x23, 0x7a, 0x27, 0xda, 0x53, 0x89, 0xda, 0xb3, 0x34, 0x05, 0x6d, 0x77, + 0x48, 0x3c, 0x66, 0x18, 0xfa, 0xbf, 0xd5, 0xa4, 0x4b, 0x71, 0x3d, 0x59, 0xc7, 0xae, 0x4d, 0x3c, + 0x73, 0xca, 0x5a, 0x86, 0x13, 0x5a, 0x76, 0x63, 0x72, 0xb4, 0x94, 0x9e, 0xe1, 0x84, 0x9e, 0xfd, + 0x04, 0x98, 0x29, 0x4d, 0x7b, 0xa8, 0x68, 0xda, 0xf5, 0xc9, 0x11, 0x15, 0x5d, 0x23, 0x45, 0xba, + 0xb6, 0xa2, 0xea, 0x5a, 0x77, 0x3c, 0x91, 0x47, 0x4b, 0xd3, 0x18, 0xda, 0xf6, 0xa5, 0x5c, 0x6d, + 0x5b, 0x52, 0xb4, 0x6d, 0xd2, 0xaa, 0x3f, 0x21, 0x7d, 0xfb, 0xe7, 0x1a, 0xd4, 0xe8, 0xf2, 0x88, + 0x56, 0x65, 0x5d, 0x7b, 0x77, 0xa2, 0xa5, 0x55, 0xd6, 0xb3, 0xf5, 0x84, 0x9e, 0x5d, 0x9d, 0x0c, + 0x29, 0xa5, 0x63, 0xeb, 0x09, 0x1d, 0x9b, 0x10, 0x2f, 0xa5, 0x5f, 0x6b, 0x8a, 0x7e, 0x5d, 0x9e, + 0x0c, 0x4d, 0xd1, 0x2d, 0xa3, 0x48, 0xb7, 0xee, 0xaa, 0xba, 0x35, 0xa6, 0xf7, 0xc6, 0x7c, 0x95, + 0x31, 0xf4, 0xea, 0x83, 0x5c, 0xbd, 0xba, 0xad, 0xe8, 0xd5, 0x24, 0xd5, 0x7e, 0x42, 0x3a, 0x75, + 0x95, 0x3b, 0x9d, 0xe2, 0x9e, 0xf1, 0x98, 0x4e, 0xa7, 0x7e, 0x0d, 0xda, 0xf1, 0x3b, 0xf4, 0x8c, + 0xeb, 0xf9, 0x9c, 0x2c, 0xac, 0x35, 0x4c, 0xea, 0x57, 0xa0, 0x1d, 0xbf, 0x2d, 0xcf, 0xa8, 0xcb, + 0x67, 0x85, 0x82, 0x4b, 0xa4, 0xf4, 0x55, 0x38, 0x9c, 0x7e, 0xf9, 0x9a, 0x11, 0x87, 0x97, 0xee, + 0x96, 0x87, 0x4f, 0x51, 0xa4, 0x2c, 0xfd, 0x05, 0xcc, 0x26, 0xde, 0xb2, 0x4e, 0x8c, 0x81, 0xae, + 0x48, 0x2e, 0x72, 0x55, 0xec, 0xc1, 0xb3, 0x6f, 0xcb, 0xc7, 0x8e, 0xb0, 0xbe, 0x02, 0xb3, 0x05, + 0x8d, 0x1f, 0xe7, 0xb2, 0xfc, 0x57, 0x60, 0x6a, 0x54, 0xdb, 0x3f, 0x81, 0xcb, 0xfc, 0x01, 0x74, + 0x52, 0xef, 0xf0, 0x93, 0xd5, 0x6c, 0x00, 0x0c, 0x22, 0x1a, 0xa1, 0xb4, 0x97, 0x26, 0x78, 0xba, + 0xc0, 0xf8, 0xb0, 0x84, 0xa1, 0xff, 0x7e, 0x19, 0x0e, 0xa7, 0x1f, 0xe1, 0x8f, 0xbb, 0xf9, 0xd1, + 0xa0, 0xc9, 0xb0, 0xa2, 0x17, 0x1f, 0x61, 0x12, 0x3d, 0x82, 0x69, 0xdf, 0xb6, 0xfa, 0x64, 0x79, + 0xc7, 0x70, 0x06, 0xc4, 0x17, 0x3b, 0x9a, 0x82, 0x87, 0xf4, 0x9b, 0x31, 0x07, 0x56, 0xd8, 0xf5, + 0x17, 0x30, 0x25, 0x15, 0xa2, 0x5b, 0x50, 0x71, 0x87, 0xa9, 0x7b, 0x8d, 0xf9, 0x98, 0x8f, 0x43, + 0x7b, 0xc3, 0x15, 0x77, 0x98, 0x36, 0x49, 0xd9, 0x7c, 0xab, 0x8a, 0xf9, 0xea, 0x0f, 0xe0, 0x70, + 0xfa, 0x9d, 0x7b, 0x72, 0x78, 0xce, 0xa4, 0xa2, 0x04, 0x7c, 0x98, 0x92, 0x5b, 0xfe, 0x05, 0x38, + 0x94, 0x7c, 0xbd, 0x9e, 0xf1, 0x1a, 0x27, 0x7e, 0xd4, 0x14, 0x86, 0xeb, 0xe7, 0x7f, 0xad, 0x0c, + 0xb3, 0x6a, 0x47, 0xd0, 0x51, 0x40, 0x6a, 0xce, 0xba, 0xeb, 0x90, 0x4e, 0x09, 0xbd, 0x0a, 0x87, + 0xd5, 0xfc, 0x45, 0xd3, 0xec, 0x94, 0xd3, 0xe4, 0x74, 0xda, 0xea, 0x54, 0x90, 0x06, 0x47, 0x12, + 0x23, 0xc4, 0x26, 0xd1, 0x4e, 0x15, 0xbd, 0x0e, 0xaf, 0x26, 0x4b, 0x86, 0xb6, 0xd1, 0x27, 0x9d, + 0x9a, 0xfe, 0xc3, 0x0a, 0xd4, 0x9e, 0xfa, 0xc4, 0xd3, 0xff, 0xb5, 0x12, 0xbe, 0xd2, 0xb8, 0x01, + 0x35, 0xf6, 0xb0, 0x5c, 0x7a, 0xcd, 0x58, 0x4e, 0xbc, 0x66, 0x54, 0x5e, 0xc4, 0xc5, 0xaf, 0x19, + 0x6f, 0x40, 0x8d, 0x3d, 0x25, 0x9f, 0x9c, 0xf3, 0x17, 0xcb, 0xd0, 0x8e, 0x9f, 0x75, 0x4f, 0xcc, + 0x2f, 0xbf, 0x0a, 0xa9, 0xa8, 0xaf, 0x42, 0xde, 0x86, 0xba, 0xc7, 0xde, 0x6f, 0xf0, 0x59, 0x26, + 0xf9, 0xd6, 0x84, 0x55, 0x88, 0x39, 0x89, 0x4e, 0x60, 0x4a, 0x7e, 0xb4, 0x3e, 0x79, 0x33, 0x4e, + 0x89, 0x2f, 0xd6, 0xf4, 0x4c, 0x7f, 0xd1, 0xf3, 0x8c, 0x03, 0xa1, 0x98, 0x6a, 0xa6, 0x3e, 0x07, + 0xb5, 0x0d, 0xcb, 0x19, 0x64, 0x3f, 0x22, 0xd5, 0xbf, 0x53, 0x86, 0xa6, 0xb8, 0xbc, 0xab, 0x2f, + 0x40, 0x75, 0x9d, 0xbc, 0xa0, 0x0d, 0x11, 0xd7, 0x86, 0x53, 0x0d, 0x79, 0xc4, 0x7a, 0x21, 0xe8, + 0x71, 0x48, 0xa6, 0xdf, 0x8c, 0x96, 0xc9, 0xc9, 0x79, 0x6f, 0x40, 0x8d, 0xbd, 0x35, 0x9f, 0x9c, + 0xf3, 0x77, 0x5b, 0xd0, 0xe0, 0x2f, 0x31, 0xf5, 0x6f, 0xb7, 0xa0, 0xc1, 0xdf, 0x9f, 0xa3, 0xdb, + 0xd0, 0xf4, 0xf7, 0x76, 0x77, 0x0d, 0xef, 0x40, 0xcb, 0xfe, 0xd8, 0xa1, 0xf2, 0x5c, 0xbd, 0xbb, + 0xc9, 0x69, 0x71, 0xc8, 0x84, 0xae, 0x41, 0xad, 0x6f, 0x6c, 0x93, 0xd4, 0x71, 0x6e, 0x16, 0xf3, + 0xb2, 0xb1, 0x4d, 0x30, 0x23, 0x47, 0x77, 0xa1, 0x25, 0xc4, 0xe2, 0x8b, 0x78, 0xce, 0xe8, 0x7a, + 0x43, 0x61, 0x46, 0x5c, 0xfa, 0x7d, 0x68, 0x8a, 0xc6, 0xa0, 0x3b, 0xd1, 0x3b, 0xd4, 0x64, 0xe4, + 0x39, 0xb3, 0x0b, 0xd1, 0xc3, 0xe4, 0xe8, 0x45, 0xea, 0x5f, 0x57, 0xa0, 0x46, 0x1b, 0xf7, 0xb1, + 0x91, 0xd0, 0x71, 0x00, 0xdb, 0xf0, 0x83, 0x8d, 0x3d, 0xdb, 0x26, 0xa6, 0x78, 0x61, 0x27, 0xe5, + 0xa0, 0x73, 0x70, 0x88, 0xa7, 0xfc, 0x9d, 0xcd, 0xbd, 0x7e, 0x9f, 0x44, 0xcf, 0x44, 0x93, 0xd9, + 0x68, 0x11, 0xea, 0xec, 0x8b, 0x68, 0xc2, 0x2b, 0x7c, 0xa7, 0x70, 0x64, 0xbb, 0x1b, 0x96, 0x23, + 0x5a, 0xc3, 0x39, 0x75, 0x17, 0xda, 0x51, 0x1e, 0x35, 0xc2, 0xa1, 0xe5, 0x38, 0x96, 0x33, 0x10, + 0x1a, 0x1d, 0x26, 0xe9, 0xa2, 0x43, 0xff, 0x8a, 0xf6, 0xd6, 0xb1, 0x48, 0xd1, 0xfc, 0x6d, 0xc3, + 0xb2, 0x45, 0x13, 0xeb, 0x58, 0xa4, 0x28, 0xd2, 0x9e, 0x78, 0xb5, 0x5f, 0x63, 0x1d, 0x0c, 0x93, + 0xfa, 0x47, 0xe5, 0xe8, 0x31, 0x76, 0xd6, 0xe3, 0xcc, 0x54, 0x2c, 0x69, 0x4e, 0x0e, 0x68, 0xf3, + 0x05, 0x41, 0x0a, 0x51, 0x1f, 0x85, 0x86, 0xeb, 0xd8, 0x96, 0x43, 0x44, 0xec, 0x48, 0xa4, 0x12, + 0x63, 0x5c, 0x4f, 0x8d, 0xb1, 0x28, 0x5f, 0x35, 0x2d, 0xda, 0xc4, 0x46, 0x5c, 0xce, 0x73, 0xd0, + 0x7b, 0xd0, 0x34, 0xc9, 0xbe, 0xd5, 0x27, 0xbe, 0xd6, 0x64, 0xaa, 0x77, 0x72, 0xe4, 0xd8, 0xae, + 0x30, 0x5a, 0x1c, 0xf2, 0xe8, 0x01, 0x34, 0x78, 0x56, 0xd4, 0xa5, 0xb2, 0xd4, 0xa5, 0xb8, 0xd1, + 0x95, 0x11, 0x8d, 0xae, 0x16, 0x34, 0xba, 0x96, 0x6c, 0xf4, 0xbc, 0x09, 0x10, 0xab, 0x1b, 0x9a, + 0x82, 0xe6, 0x53, 0xe7, 0xb9, 0xe3, 0xbe, 0x70, 0x3a, 0x25, 0x9a, 0x78, 0xbc, 0xbd, 0x4d, 0x6b, + 0xe9, 0x94, 0x69, 0x82, 0xd2, 0x59, 0xce, 0xa0, 0x53, 0x41, 0x00, 0x0d, 0x9a, 0x20, 0x66, 0xa7, + 0x4a, 0xff, 0xdf, 0x63, 0xf2, 0xeb, 0xd4, 0xd0, 0x6b, 0xf0, 0x4a, 0xcf, 0xe9, 0xbb, 0xbb, 0x43, + 0x23, 0xb0, 0xb6, 0x6c, 0xf2, 0x8c, 0x78, 0xbe, 0xe5, 0x3a, 0x9d, 0xba, 0xfe, 0x1f, 0x65, 0x7e, + 0xea, 0xab, 0xdf, 0x85, 0x69, 0xe5, 0x33, 0x12, 0x1a, 0x34, 0xd9, 0xab, 0xfe, 0xd8, 0xef, 0x16, + 0x49, 0xa6, 0x25, 0xfc, 0x59, 0xbc, 0x70, 0x59, 0x78, 0x4a, 0xbf, 0x07, 0x20, 0x7d, 0x3c, 0xe2, + 0x38, 0xc0, 0xd6, 0x41, 0x40, 0x7c, 0xfe, 0xe1, 0x08, 0x0a, 0x51, 0xc3, 0x52, 0x8e, 0x8c, 0x5f, + 0x51, 0xf0, 0xf5, 0xeb, 0x00, 0xd2, 0xa7, 0x23, 0xa8, 0xfd, 0xd0, 0xd4, 0x52, 0x12, 0x2c, 0x99, + 0xad, 0x77, 0x45, 0x0f, 0xc2, 0x8f, 0x44, 0x84, 0x2d, 0xe0, 0x51, 0x3a, 0xb9, 0x05, 0x2c, 0x47, + 0x5f, 0x05, 0x88, 0xbf, 0x93, 0xa0, 0x2f, 0x44, 0x53, 0xf4, 0x05, 0xa8, 0x99, 0x46, 0x60, 0x88, + 0xd9, 0xf1, 0xf5, 0xc4, 0x0a, 0x15, 0xb3, 0x60, 0x46, 0xa6, 0xff, 0x5e, 0x19, 0xa6, 0xe5, 0x6f, + 0x42, 0xe8, 0xef, 0x43, 0x8d, 0x7d, 0x54, 0xe2, 0x0e, 0x4c, 0xcb, 0x1f, 0x85, 0x48, 0x7d, 0x93, + 0x97, 0xe3, 0xc9, 0xac, 0x58, 0x61, 0xd0, 0x7b, 0x51, 0x93, 0x3e, 0x36, 0xd4, 0x25, 0x68, 0x8a, + 0x6f, 0x4c, 0xe8, 0xa7, 0xa1, 0x1d, 0x7f, 0x52, 0x82, 0xce, 0x11, 0x3c, 0x3f, 0x94, 0xb2, 0x48, + 0xea, 0x3f, 0xae, 0x42, 0x9d, 0x89, 0x53, 0xff, 0x56, 0x45, 0xd6, 0x44, 0xfd, 0x87, 0xe5, 0xdc, + 0x3d, 0xdf, 0x15, 0xe5, 0xf3, 0x00, 0xb3, 0xa9, 0x4f, 0xa9, 0x88, 0x2f, 0x48, 0xa8, 0x13, 0xe8, + 0x75, 0x68, 0x3a, 0x24, 0x78, 0xe1, 0x7a, 0xcf, 0x99, 0x91, 0xcc, 0xa6, 0x3f, 0x9f, 0xc2, 0xb8, + 0xd6, 0x39, 0x0d, 0x0e, 0x89, 0xd1, 0x55, 0xa8, 0x13, 0xcf, 0x73, 0x3d, 0x66, 0x3a, 0xb3, 0xa9, + 0x8f, 0x92, 0xc4, 0x5f, 0xab, 0x58, 0xa5, 0x54, 0x98, 0x13, 0xa3, 0xab, 0xf0, 0xaa, 0xcf, 0xad, + 0x85, 0xfb, 0x8e, 0xbe, 0x78, 0x3f, 0x2d, 0x66, 0x95, 0xec, 0xc2, 0xf9, 0x2f, 0x86, 0x0b, 0xa9, + 0x64, 0x60, 0x25, 0xd9, 0xf2, 0xca, 0xa8, 0x0d, 0x75, 0x56, 0x51, 0xa7, 0x22, 0x9b, 0x67, 0x15, + 0x9d, 0x80, 0x39, 0x4a, 0xb4, 0xe1, 0xb9, 0x81, 0xdb, 0x77, 0xed, 0x9e, 0xb3, 0x1c, 0x59, 0x21, + 0x5d, 0xb6, 0x3b, 0xb5, 0xf9, 0x2b, 0xd0, 0x14, 0x9d, 0xa3, 0x9c, 0x8b, 0xbc, 0x17, 0x9d, 0x12, + 0x9a, 0x86, 0xd6, 0x26, 0xb1, 0xb7, 0xd7, 0x5c, 0x3f, 0xe8, 0x94, 0xd1, 0x0c, 0xb4, 0x99, 0x55, + 0x3c, 0x76, 0xec, 0x83, 0x4e, 0x65, 0xfe, 0x03, 0x68, 0x47, 0x7d, 0x43, 0x2d, 0xa8, 0xad, 0xef, + 0xd9, 0x76, 0xa7, 0xc4, 0x9c, 0xd1, 0xc0, 0xf5, 0xc2, 0x50, 0xf4, 0xea, 0x4b, 0xba, 0xb2, 0x74, + 0xca, 0x79, 0xf6, 0x5f, 0x41, 0x1d, 0x98, 0x16, 0x95, 0xf3, 0xd6, 0x57, 0xf5, 0x7f, 0x2c, 0x43, + 0x3b, 0xfa, 0x20, 0x07, 0xf5, 0x04, 0x43, 0x69, 0xe7, 0xcf, 0x08, 0x0b, 0x09, 0xb9, 0xe7, 0x7f, + 0xdf, 0x23, 0x21, 0xfb, 0x33, 0x30, 0x2b, 0x26, 0xd9, 0x50, 0x0c, 0x7c, 0x9e, 0x4c, 0xe4, 0xce, + 0xdf, 0x8c, 0xc6, 0xbf, 0xc3, 0x8c, 0x6d, 0xd9, 0x75, 0x1c, 0xd2, 0x0f, 0x98, 0x14, 0x0e, 0xc1, + 0xd4, 0xba, 0x1b, 0x6c, 0xb8, 0xbe, 0x4f, 0x7b, 0xc6, 0x47, 0x2a, 0x2e, 0xaf, 0xcc, 0x7f, 0x03, + 0x66, 0x30, 0xf1, 0x87, 0xae, 0xe3, 0x93, 0x9f, 0xd6, 0x87, 0xbd, 0x73, 0x3f, 0xd1, 0x3d, 0xff, + 0x9d, 0x2a, 0xd4, 0x99, 0x77, 0xa6, 0xff, 0x71, 0x35, 0xf2, 0x23, 0x33, 0xee, 0xee, 0xc5, 0x37, + 0x6c, 0x64, 0xab, 0x51, 0xfc, 0x3a, 0xf9, 0x98, 0xe6, 0xb2, 0x7c, 0xb3, 0x46, 0xb6, 0x18, 0x95, + 0x43, 0xb9, 0x51, 0xf3, 0x39, 0x68, 0x0d, 0x3d, 0x77, 0xe0, 0x51, 0x07, 0xb2, 0x96, 0xf8, 0x0c, + 0x8b, 0xca, 0xb6, 0x21, 0xc8, 0x70, 0xc4, 0xa0, 0xaf, 0x43, 0x2b, 0xcc, 0xcd, 0xf9, 0xd0, 0x00, + 0x82, 0x9a, 0xe9, 0x8a, 0x45, 0xb0, 0x8a, 0xd9, 0x7f, 0x3a, 0x2e, 0x62, 0x04, 0xc3, 0xcd, 0x9f, + 0x48, 0xce, 0x7f, 0x59, 0x9c, 0x7c, 0xce, 0x40, 0x7b, 0xc5, 0x73, 0x87, 0xec, 0x45, 0x79, 0xa7, + 0x44, 0xad, 0xab, 0xb7, 0x3b, 0x74, 0x3d, 0xaa, 0xf0, 0x00, 0x8d, 0xd5, 0x97, 0xec, 0x7f, 0x85, + 0x99, 0x82, 0xb1, 0x4f, 0x28, 0x59, 0xa7, 0x8a, 0x10, 0xcc, 0x62, 0xc2, 0x4e, 0x7b, 0x84, 0xeb, + 0xd1, 0xa9, 0x51, 0xa0, 0x47, 0xd6, 0x80, 0x6f, 0xa7, 0x3a, 0xf5, 0xf9, 0xc5, 0xf0, 0x86, 0x0b, + 0x35, 0x0d, 0xbe, 0x7d, 0x9b, 0x82, 0x26, 0xde, 0x63, 0xfe, 0x4f, 0xa7, 0x4c, 0xb3, 0xa9, 0x53, + 0xcd, 0xa1, 0x97, 0x0d, 0xa7, 0x4f, 0x6c, 0xb6, 0x66, 0x46, 0x56, 0x5c, 0x5b, 0x9a, 0xfb, 0x9b, + 0x8f, 0x8e, 0x97, 0xbf, 0xfb, 0xd1, 0xf1, 0xf2, 0xf7, 0x3f, 0x3a, 0x5e, 0xfe, 0xcd, 0x1f, 0x1c, + 0x2f, 0x7d, 0xf7, 0x07, 0xc7, 0x4b, 0xff, 0xf2, 0x83, 0xe3, 0xa5, 0x0f, 0x2b, 0xc3, 0xad, 0xad, + 0x06, 0xbb, 0x9a, 0x70, 0xe5, 0xbf, 0x02, 0x00, 0x00, 0xff, 0xff, 0x9a, 0x37, 0xbb, 0xd4, 0x96, + 0x5e, 0x00, 0x00, } func (m *Event) Marshal() (dAtA []byte, err error) { diff --git a/pb/protos/events.proto b/pb/protos/events.proto index 5717c5732..06d41fb6c 100644 --- a/pb/protos/events.proto +++ b/pb/protos/events.proto @@ -1086,6 +1086,7 @@ message Event { Syncing = 1; Error = 2; Offline = 3; + SyncProtocolInCompatibleMode = 4; } enum Network { Anytype = 0; diff --git a/space/spacecore/peermanager/manager.go b/space/spacecore/peermanager/manager.go index 1fadd8bad..a5a36cc72 100644 --- a/space/spacecore/peermanager/manager.go +++ b/space/spacecore/peermanager/manager.go @@ -18,6 +18,7 @@ import ( "github.com/anyproto/any-sync/net/peer" "go.uber.org/zap" + "github.com/anyproto/anytype-heart/core/compatibility" "github.com/anyproto/anytype-heart/core/syncstatus/nodestatus" "github.com/anyproto/anytype-heart/space/spacecore/peerstore" ) @@ -57,6 +58,7 @@ type clientPeerManager struct { availableResponsiblePeers chan struct{} nodeStatus NodeStatus spaceSyncService Updater + compatibilityChecker compatibility.Checker ctx context.Context ctxCancel context.CancelFunc @@ -74,6 +76,7 @@ func (n *clientPeerManager) Init(a *app.App) (err error) { n.nodeStatus = app.MustComponent[NodeStatus](a) n.spaceSyncService = app.MustComponent[Updater](a) n.peerToPeerStatus = app.MustComponent[PeerToPeerStatus](a) + n.compatibilityChecker = app.MustComponent[compatibility.Checker](a) return } @@ -179,6 +182,7 @@ func (n *clientPeerManager) getStreamResponsiblePeers(ctx context.Context) (peer log.Warn("failed to get responsible peer from common pool", zap.Error(nodeErr)) } else { peerIds = []string{p.Id()} + n.addPeerVersion(p) } peerIds = append(peerIds, n.peerStore.LocalPeerIds(n.spaceId)...) for _, peerId := range peerIds { @@ -188,6 +192,7 @@ func (n *clientPeerManager) getStreamResponsiblePeers(ctx context.Context) (peer log.Warn("failed to get peer from stream pool", zap.String("peerId", peerId), zap.Error(err)) continue } + n.addPeerVersion(p) peers = append(peers, p) } @@ -198,6 +203,15 @@ func (n *clientPeerManager) getStreamResponsiblePeers(ctx context.Context) (peer return } +func (n *clientPeerManager) addPeerVersion(p peer.Peer) { + protoVersion, err := peer.CtxProtoVersion(p.Context()) + if err != nil { + log.Warn("failed to get responsible peer proto version", zap.Error(err)) + } else { + n.compatibilityChecker.AddPeerVersion(p.Id(), protoVersion) + } +} + func (n *clientPeerManager) manageResponsiblePeers() { for { n.fetchResponsiblePeers() From 7cf9e9e5aa271cd40cba6621c406cd45f618eb37 Mon Sep 17 00:00:00 2001 From: AnastasiaShemyakinskaya Date: Wed, 21 Aug 2024 15:18:42 +0200 Subject: [PATCH 52/78] GO-3921: fix client manager tests Signed-off-by: AnastasiaShemyakinskaya --- space/spacecore/peermanager/manager_test.go | 22 ++++++++++++++------- 1 file changed, 15 insertions(+), 7 deletions(-) diff --git a/space/spacecore/peermanager/manager_test.go b/space/spacecore/peermanager/manager_test.go index edc50af87..718ee52c2 100644 --- a/space/spacecore/peermanager/manager_test.go +++ b/space/spacecore/peermanager/manager_test.go @@ -137,8 +137,10 @@ func Test_getStreamResponsiblePeers(t *testing.T) { f := newFixtureManager(t, spaceId) // when - f.pool.EXPECT().GetOneOf(gomock.Any(), gomock.Any()).Return(newTestPeer("id"), nil) - f.pool.EXPECT().Get(gomock.Any(), gomock.Any()).Return(newTestPeer("id"), nil) + peer := newTestPeer("id") + peer.ctx = context.Background() + f.pool.EXPECT().GetOneOf(gomock.Any(), gomock.Any()).Return(peer, nil) + f.pool.EXPECT().Get(gomock.Any(), gomock.Any()).Return(peer, nil) peers, err := f.cm.getStreamResponsiblePeers(context.Background()) // then @@ -151,9 +153,13 @@ func Test_getStreamResponsiblePeers(t *testing.T) { f.store.UpdateLocalPeer("peerId", []string{spaceId}) // when - f.pool.EXPECT().GetOneOf(gomock.Any(), gomock.Any()).Return(newTestPeer("id"), nil) - f.pool.EXPECT().Get(f.cm.ctx, "peerId").Return(newTestPeer("id1"), nil) - f.pool.EXPECT().Get(f.cm.ctx, "id").Return(newTestPeer("id"), nil) + peer := newTestPeer("id") + peer.ctx = context.Background() + peer1 := newTestPeer("id1") + peer1.ctx = context.Background() + f.pool.EXPECT().GetOneOf(gomock.Any(), gomock.Any()).Return(peer, nil) + f.pool.EXPECT().Get(f.cm.ctx, "peerId").Return(peer1, nil) + f.pool.EXPECT().Get(f.cm.ctx, "id").Return(peer, nil) peers, err := f.cm.getStreamResponsiblePeers(context.Background()) // then @@ -166,9 +172,11 @@ func Test_getStreamResponsiblePeers(t *testing.T) { f.store.UpdateLocalPeer("peerId", []string{spaceId}) // when - f.pool.EXPECT().GetOneOf(gomock.Any(), gomock.Any()).Return(newTestPeer("id"), nil) + peer := newTestPeer("id") + peer.ctx = context.Background() + f.pool.EXPECT().GetOneOf(gomock.Any(), gomock.Any()).Return(peer, nil) f.pool.EXPECT().Get(f.cm.ctx, "peerId").Return(nil, fmt.Errorf("error")) - f.pool.EXPECT().Get(f.cm.ctx, "id").Return(newTestPeer("id"), nil) + f.pool.EXPECT().Get(f.cm.ctx, "id").Return(peer, nil) peers, err := f.cm.getStreamResponsiblePeers(context.Background()) // then From ccef8c40a6d26c4e5ee0c1cd8ab7320de6b73e17 Mon Sep 17 00:00:00 2001 From: AnastasiaShemyakinskaya Date: Wed, 21 Aug 2024 15:24:48 +0200 Subject: [PATCH 53/78] GO-3921: rename event Signed-off-by: AnastasiaShemyakinskaya --- .../syncstatus/spacesyncstatus/spacestatus.go | 2 +- .../spacesyncstatus/spacestatus_test.go | 2 +- docs/proto.md | 2 +- pb/events.pb.go | 753 +++++++++--------- pb/protos/events.proto | 2 +- 5 files changed, 380 insertions(+), 381 deletions(-) diff --git a/core/syncstatus/spacesyncstatus/spacestatus.go b/core/syncstatus/spacesyncstatus/spacestatus.go index 3f80cfe55..0383c0b44 100644 --- a/core/syncstatus/spacesyncstatus/spacestatus.go +++ b/core/syncstatus/spacesyncstatus/spacestatus.go @@ -294,7 +294,7 @@ func (s *spaceSyncStatus) makeSyncEvent(spaceId string, params syncParams) *pb.E err = pb.EventSpace_IncompatibleVersion } if !params.syncProtocolCompatible { - status = pb.EventSpace_SyncProtocolInCompatibleMode + status = pb.EventSpace_SyncProtocolUpdate } return &pb.EventSpaceSyncStatusUpdate{ Id: spaceId, diff --git a/core/syncstatus/spacesyncstatus/spacestatus_test.go b/core/syncstatus/spacesyncstatus/spacestatus_test.go index b541d9997..440e01511 100644 --- a/core/syncstatus/spacesyncstatus/spacestatus_test.go +++ b/core/syncstatus/spacesyncstatus/spacestatus_test.go @@ -415,7 +415,7 @@ func Test(t *testing.T) { Value: &pb.EventMessageValueOfSpaceSyncStatusUpdate{ SpaceSyncStatusUpdate: &pb.EventSpaceSyncStatusUpdate{ Id: "spaceId", - Status: pb.EventSpace_SyncProtocolInCompatibleMode, + Status: pb.EventSpace_SyncProtocolUpdate, Network: pb.EventSpace_Anytype, }, }, diff --git a/docs/proto.md b/docs/proto.md index b7cdc6812..d73cfacc3 100644 --- a/docs/proto.md +++ b/docs/proto.md @@ -25802,7 +25802,7 @@ Precondition: user A and user B opened the same block | Syncing | 1 | | | Error | 2 | | | Offline | 3 | | -| SyncProtocolInCompatibleMode | 4 | | +| SyncProtocolUpdate | 4 | | diff --git a/pb/events.pb.go b/pb/events.pb.go index 9d0bcd326..d585c3960 100644 --- a/pb/events.pb.go +++ b/pb/events.pb.go @@ -98,11 +98,11 @@ func (EventStatusThreadSyncStatus) EnumDescriptor() ([]byte, []int) { type EventSpaceStatus int32 const ( - EventSpace_Synced EventSpaceStatus = 0 - EventSpace_Syncing EventSpaceStatus = 1 - EventSpace_Error EventSpaceStatus = 2 - EventSpace_Offline EventSpaceStatus = 3 - EventSpace_SyncProtocolInCompatibleMode EventSpaceStatus = 4 + EventSpace_Synced EventSpaceStatus = 0 + EventSpace_Syncing EventSpaceStatus = 1 + EventSpace_Error EventSpaceStatus = 2 + EventSpace_Offline EventSpaceStatus = 3 + EventSpace_SyncProtocolUpdate EventSpaceStatus = 4 ) var EventSpaceStatus_name = map[int32]string{ @@ -110,15 +110,15 @@ var EventSpaceStatus_name = map[int32]string{ 1: "Syncing", 2: "Error", 3: "Offline", - 4: "SyncProtocolInCompatibleMode", + 4: "SyncProtocolUpdate", } var EventSpaceStatus_value = map[string]int32{ - "Synced": 0, - "Syncing": 1, - "Error": 2, - "Offline": 3, - "SyncProtocolInCompatibleMode": 4, + "Synced": 0, + "Syncing": 1, + "Error": 2, + "Offline": 3, + "SyncProtocolUpdate": 4, } func (x EventSpaceStatus) String() string { @@ -11598,372 +11598,371 @@ func init() { func init() { proto.RegisterFile("pb/protos/events.proto", fileDescriptor_a966342d378ae5f5) } var fileDescriptor_a966342d378ae5f5 = []byte{ - // 5827 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x5c, 0x49, 0x8c, 0x1c, 0xc9, - 0x75, 0xad, 0x7d, 0xf9, 0xbd, 0xb0, 0x18, 0xc3, 0xe1, 0xe4, 0x24, 0x7b, 0x38, 0x9c, 0xe6, 0xaa, - 0x19, 0xb2, 0xc8, 0xe1, 0xd6, 0x14, 0xc5, 0x21, 0xd9, 0x1b, 0xa7, 0x8b, 0x4b, 0xb3, 0x1d, 0x4d, - 0x52, 0xa3, 0x91, 0x20, 0x28, 0xbb, 0x32, 0xba, 0x3a, 0xc5, 0xec, 0xcc, 0x52, 0x66, 0x76, 0x93, - 0x2d, 0xd9, 0xb2, 0xe0, 0x05, 0x86, 0x01, 0x1b, 0xf6, 0x49, 0x36, 0x7c, 0xb3, 0x61, 0x03, 0x3e, - 0x18, 0x86, 0x0d, 0x1f, 0xac, 0x93, 0x61, 0xc0, 0x30, 0xe0, 0x15, 0x96, 0x6f, 0xbe, 0x49, 0x18, - 0x5d, 0x7c, 0xf1, 0x41, 0x16, 0x20, 0xf8, 0x64, 0x18, 0xb1, 0x64, 0x66, 0x44, 0x2e, 0x95, 0x55, - 0x9a, 0x91, 0x17, 0x78, 0x4e, 0x55, 0x11, 0xf1, 0xff, 0x8b, 0xe5, 0xff, 0x1f, 0xf1, 0xe3, 0x47, - 0x44, 0xc2, 0xd1, 0xe1, 0xd6, 0xc5, 0xa1, 0xe7, 0x06, 0xae, 0x7f, 0x91, 0xec, 0x13, 0x27, 0xf0, - 0xbb, 0x2c, 0x85, 0x9a, 0x86, 0x73, 0x10, 0x1c, 0x0c, 0x89, 0x7e, 0x6a, 0xf8, 0x7c, 0x70, 0xd1, - 0xb6, 0xb6, 0x2e, 0x0e, 0xb7, 0x2e, 0xee, 0xba, 0x26, 0xb1, 0x43, 0x72, 0x96, 0x10, 0xe4, 0xfa, - 0xdc, 0xc0, 0x75, 0x07, 0x36, 0xe1, 0x65, 0x5b, 0x7b, 0xdb, 0x17, 0xfd, 0xc0, 0xdb, 0xeb, 0x07, - 0xbc, 0x74, 0xfe, 0x9f, 0xfe, 0xbc, 0x0c, 0xf5, 0x55, 0x0a, 0x8f, 0x2e, 0x43, 0x6b, 0x97, 0xf8, - 0xbe, 0x31, 0x20, 0xbe, 0x56, 0x3e, 0x51, 0x3d, 0x37, 0x75, 0xf9, 0x68, 0x57, 0x54, 0xd5, 0x65, - 0x14, 0xdd, 0x47, 0xbc, 0x18, 0x47, 0x74, 0x68, 0x0e, 0xda, 0x7d, 0xd7, 0x09, 0xc8, 0xcb, 0xa0, - 0x67, 0x6a, 0x95, 0x13, 0xe5, 0x73, 0x6d, 0x1c, 0x67, 0xa0, 0xab, 0xd0, 0xb6, 0x1c, 0x2b, 0xb0, - 0x8c, 0xc0, 0xf5, 0xb4, 0xea, 0x89, 0xb2, 0x02, 0xc9, 0x1a, 0xd9, 0x5d, 0xec, 0xf7, 0xdd, 0x3d, - 0x27, 0xc0, 0x31, 0x21, 0xd2, 0xa0, 0x19, 0x78, 0x46, 0x9f, 0xf4, 0x4c, 0xad, 0xc6, 0x10, 0xc3, - 0xa4, 0xfe, 0xa3, 0x0b, 0xd0, 0x14, 0x6d, 0x40, 0x77, 0x60, 0xca, 0xe0, 0xbc, 0x9b, 0x3b, 0xee, - 0x0b, 0xad, 0xcc, 0xd0, 0x8f, 0x25, 0x1a, 0x2c, 0xd0, 0xbb, 0x94, 0x64, 0xad, 0x84, 0x65, 0x0e, - 0xd4, 0x83, 0x59, 0x91, 0x5c, 0x21, 0x81, 0x61, 0xd9, 0xbe, 0xf6, 0xb7, 0x1c, 0xe4, 0x78, 0x0e, - 0x88, 0x20, 0x5b, 0x2b, 0xe1, 0x04, 0x23, 0xfa, 0x02, 0xbc, 0x22, 0x72, 0x96, 0x5d, 0x67, 0xdb, - 0x1a, 0x3c, 0x1d, 0x9a, 0x46, 0x40, 0xb4, 0xbf, 0xe3, 0x78, 0xa7, 0x72, 0xf0, 0x38, 0x6d, 0x97, - 0x13, 0xaf, 0x95, 0x70, 0x16, 0x06, 0xba, 0x07, 0x33, 0x22, 0x5b, 0x80, 0xfe, 0x3d, 0x07, 0x7d, - 0x23, 0x07, 0x34, 0x42, 0x53, 0xd9, 0xd0, 0x17, 0xe1, 0x88, 0xc8, 0x78, 0x68, 0x39, 0xcf, 0x97, - 0x77, 0x0c, 0xdb, 0x26, 0xce, 0x80, 0x68, 0xff, 0x30, 0xba, 0x8d, 0x0a, 0xf1, 0x5a, 0x09, 0x67, - 0x82, 0xa0, 0xc7, 0xd0, 0x71, 0xb7, 0xbe, 0x4a, 0xfa, 0xe1, 0x80, 0x6c, 0x92, 0x40, 0xeb, 0x30, - 0xdc, 0xb7, 0x12, 0xb8, 0x8f, 0x19, 0x59, 0x38, 0x94, 0xdd, 0x4d, 0x12, 0xac, 0x95, 0x70, 0x8a, - 0x19, 0x3d, 0x05, 0xa4, 0xe4, 0x2d, 0xee, 0x12, 0xc7, 0xd4, 0x2e, 0x33, 0xc8, 0x93, 0xa3, 0x21, - 0x19, 0xe9, 0x5a, 0x09, 0x67, 0x00, 0xa4, 0x60, 0x9f, 0x3a, 0x3e, 0x09, 0xb4, 0x2b, 0xe3, 0xc0, - 0x32, 0xd2, 0x14, 0x2c, 0xcb, 0xa5, 0x63, 0xcb, 0x73, 0x31, 0xb1, 0x8d, 0xc0, 0x72, 0x1d, 0xd1, - 0xde, 0xab, 0x0c, 0xf8, 0x74, 0x36, 0x70, 0x44, 0x1b, 0xb5, 0x38, 0x13, 0x04, 0x7d, 0x19, 0x5e, - 0x4d, 0xe4, 0x63, 0xb2, 0xeb, 0xee, 0x13, 0xed, 0x1a, 0x43, 0x3f, 0x53, 0x84, 0xce, 0xa9, 0xd7, - 0x4a, 0x38, 0x1b, 0x06, 0x2d, 0xc1, 0x74, 0x58, 0xc0, 0x60, 0xaf, 0x33, 0xd8, 0xb9, 0x3c, 0x58, - 0x01, 0xa6, 0xf0, 0x50, 0x5b, 0xe4, 0xe9, 0x65, 0xdb, 0xf5, 0x89, 0xb6, 0x98, 0x69, 0x8b, 0x02, - 0x82, 0x91, 0x50, 0x5b, 0x94, 0x38, 0xe4, 0x4e, 0xfa, 0x81, 0x67, 0xf5, 0x59, 0x03, 0xa9, 0x16, - 0x2d, 0x8c, 0xee, 0x64, 0x4c, 0x2c, 0x54, 0x29, 0x1b, 0x06, 0x61, 0x38, 0xe4, 0xef, 0x6d, 0xf9, - 0x7d, 0xcf, 0x1a, 0xd2, 0xbc, 0x45, 0xd3, 0xd4, 0x6e, 0x8d, 0x42, 0xde, 0x94, 0x88, 0xbb, 0x8b, - 0x26, 0x95, 0x4e, 0x12, 0x00, 0x7d, 0x11, 0x90, 0x9c, 0x25, 0x86, 0xef, 0x3d, 0x06, 0xfb, 0x99, - 0x31, 0x60, 0xa3, 0xb1, 0xcc, 0x80, 0x41, 0x06, 0x1c, 0x91, 0x73, 0x37, 0x5c, 0xdf, 0xa2, 0xbf, - 0xda, 0x6d, 0x06, 0xff, 0xce, 0x18, 0xf0, 0x21, 0x0b, 0x55, 0xac, 0x2c, 0xa8, 0x64, 0x15, 0xcb, - 0xd4, 0xac, 0x89, 0xe7, 0x6b, 0x77, 0xc6, 0xae, 0x22, 0x64, 0x49, 0x56, 0x11, 0xe6, 0x27, 0x87, - 0xe8, 0x7d, 0xcf, 0xdd, 0x1b, 0xfa, 0xda, 0xdd, 0xb1, 0x87, 0x88, 0x33, 0x24, 0x87, 0x88, 0xe7, - 0xa2, 0xeb, 0xd0, 0xda, 0xb2, 0xdd, 0xfe, 0x73, 0x2a, 0xcc, 0x0a, 0x83, 0xd4, 0x12, 0x90, 0x4b, - 0xb4, 0x58, 0x88, 0x2f, 0xa2, 0xa5, 0xca, 0xca, 0xfe, 0xaf, 0x10, 0x9b, 0x04, 0x44, 0x2c, 0x4b, - 0xc7, 0x32, 0x59, 0x39, 0x09, 0x55, 0x56, 0x89, 0x03, 0xad, 0xc0, 0xd4, 0xb6, 0x65, 0x13, 0xff, - 0xe9, 0xd0, 0x76, 0x0d, 0xbe, 0x46, 0x4d, 0x5d, 0x3e, 0x91, 0x09, 0x70, 0x2f, 0xa6, 0xa3, 0x28, - 0x12, 0x1b, 0xba, 0x0d, 0xed, 0x5d, 0xc3, 0x7b, 0xee, 0xf7, 0x9c, 0x6d, 0x57, 0xab, 0x67, 0x2e, - 0x3c, 0x1c, 0xe3, 0x51, 0x48, 0xb5, 0x56, 0xc2, 0x31, 0x0b, 0x5d, 0xbe, 0x58, 0xa3, 0x36, 0x49, - 0x70, 0xcf, 0x22, 0xb6, 0xe9, 0x6b, 0x0d, 0x06, 0xf2, 0x66, 0x26, 0xc8, 0x26, 0x09, 0xba, 0x9c, - 0x8c, 0x2e, 0x5f, 0x2a, 0x23, 0xfa, 0x00, 0x5e, 0x09, 0x73, 0x96, 0x77, 0x2c, 0xdb, 0xf4, 0x88, - 0xd3, 0x33, 0x7d, 0xad, 0x99, 0xb9, 0x32, 0xc4, 0x78, 0x12, 0x2d, 0x5d, 0xbd, 0x32, 0x20, 0xe8, - 0xcc, 0x18, 0x66, 0xcb, 0x26, 0xa9, 0xb5, 0x32, 0x67, 0xc6, 0x18, 0x5a, 0x26, 0xa6, 0xda, 0x95, - 0x05, 0x82, 0x4c, 0x78, 0x2d, 0xcc, 0x5f, 0x32, 0xfa, 0xcf, 0x07, 0x9e, 0xbb, 0xe7, 0x98, 0xcb, - 0xae, 0xed, 0x7a, 0x5a, 0x9b, 0xe1, 0x9f, 0xcb, 0xc5, 0x4f, 0xd0, 0xaf, 0x95, 0x70, 0x1e, 0x14, - 0x5a, 0x86, 0xe9, 0xb0, 0xe8, 0x09, 0x79, 0x19, 0x68, 0x90, 0xb9, 0xfc, 0xc6, 0xd0, 0x94, 0x88, - 0x4e, 0x90, 0x32, 0x93, 0x0c, 0x42, 0x55, 0x42, 0x9b, 0x2a, 0x00, 0xa1, 0x44, 0x32, 0x08, 0x4d, - 0xcb, 0x20, 0x74, 0xf9, 0xd5, 0x66, 0x0a, 0x40, 0x28, 0x91, 0x0c, 0x42, 0xd3, 0x74, 0xa9, 0x8e, - 0x7a, 0xea, 0xba, 0xcf, 0xa9, 0x3e, 0x69, 0xb3, 0x99, 0x4b, 0xb5, 0x34, 0x5a, 0x82, 0x90, 0x2e, - 0xd5, 0x49, 0x66, 0xea, 0xa0, 0x84, 0x79, 0x8b, 0xb6, 0x35, 0x70, 0xb4, 0x43, 0x23, 0x74, 0x99, - 0xa2, 0x31, 0x2a, 0xea, 0xa0, 0x28, 0x6c, 0xe8, 0xae, 0x30, 0xcb, 0x4d, 0x12, 0xac, 0x58, 0xfb, - 0xda, 0xe1, 0xcc, 0x65, 0x28, 0x46, 0x59, 0xb1, 0xf6, 0x23, 0xbb, 0xe4, 0x2c, 0x72, 0xd7, 0xc2, - 0x45, 0x4e, 0x7b, 0xb5, 0xa0, 0x6b, 0x21, 0xa1, 0xdc, 0xb5, 0x30, 0x4f, 0xee, 0xda, 0x43, 0x23, - 0x20, 0x2f, 0xb5, 0xd7, 0x0b, 0xba, 0xc6, 0xa8, 0xe4, 0xae, 0xb1, 0x0c, 0xba, 0xba, 0x85, 0x19, - 0xcf, 0x88, 0x17, 0x58, 0x7d, 0xc3, 0xe6, 0x43, 0x75, 0x2a, 0x73, 0x0d, 0x8a, 0xf1, 0x14, 0x6a, - 0xba, 0xba, 0x65, 0xc2, 0xc8, 0x1d, 0x7f, 0x62, 0x6c, 0xd9, 0x04, 0xbb, 0x2f, 0xb4, 0xd3, 0x05, - 0x1d, 0x0f, 0x09, 0xe5, 0x8e, 0x87, 0x79, 0xf2, 0xdc, 0xf2, 0x79, 0xcb, 0x1c, 0x90, 0x40, 0x3b, - 0x57, 0x30, 0xb7, 0x70, 0x32, 0x79, 0x6e, 0xe1, 0x39, 0xd1, 0x0c, 0xb0, 0x62, 0x04, 0xc6, 0xbe, - 0x45, 0x5e, 0x3c, 0xb3, 0xc8, 0x0b, 0xba, 0xb0, 0xbf, 0x32, 0x62, 0x06, 0x08, 0x69, 0xbb, 0x82, - 0x38, 0x9a, 0x01, 0x12, 0x20, 0xd1, 0x0c, 0x20, 0xe7, 0x8b, 0x69, 0xfd, 0xc8, 0x88, 0x19, 0x40, - 0xc1, 0x8f, 0xe6, 0xf8, 0x3c, 0x28, 0x64, 0xc0, 0xd1, 0x54, 0xd1, 0x63, 0xcf, 0x24, 0x9e, 0xf6, - 0x06, 0xab, 0xe4, 0x6c, 0x71, 0x25, 0x8c, 0x7c, 0xad, 0x84, 0x73, 0x80, 0x52, 0x55, 0x6c, 0xba, - 0x7b, 0x5e, 0x9f, 0xd0, 0x71, 0x3a, 0x39, 0x4e, 0x15, 0x11, 0x79, 0xaa, 0x8a, 0xa8, 0x04, 0xed, - 0xc3, 0x1b, 0x51, 0x09, 0xad, 0x98, 0xad, 0xa2, 0xac, 0x76, 0xb1, 0xb1, 0x38, 0xc3, 0x6a, 0xea, - 0x8e, 0xae, 0x29, 0xc9, 0xb5, 0x56, 0xc2, 0xa3, 0x61, 0xd1, 0x01, 0x1c, 0x57, 0x08, 0xf8, 0x3a, - 0x2f, 0x57, 0x7c, 0x96, 0x55, 0x7c, 0x71, 0x74, 0xc5, 0x29, 0xb6, 0xb5, 0x12, 0x2e, 0x00, 0x46, - 0x43, 0x38, 0xa6, 0x0c, 0x46, 0x68, 0xd8, 0x42, 0x45, 0x7e, 0x96, 0xd5, 0x7b, 0x7e, 0x74, 0xbd, - 0x2a, 0xcf, 0x5a, 0x09, 0x8f, 0x82, 0x44, 0x03, 0xd0, 0x32, 0x8b, 0xa9, 0x24, 0xbf, 0x91, 0xe9, - 0xf6, 0xe4, 0x54, 0xc7, 0x65, 0x99, 0x0b, 0x96, 0xa9, 0xf9, 0x62, 0x38, 0x7f, 0x6e, 0x5c, 0xcd, - 0x8f, 0xc6, 0x31, 0x0f, 0x4a, 0x91, 0x1d, 0x2d, 0x7a, 0x62, 0x78, 0x03, 0x12, 0xf0, 0x81, 0xee, - 0x99, 0xb4, 0x53, 0xdf, 0x1c, 0x47, 0x76, 0x29, 0x36, 0x45, 0x76, 0x99, 0xc0, 0xc8, 0x87, 0x39, - 0x85, 0xa2, 0xe7, 0x2f, 0xbb, 0xb6, 0x4d, 0xfa, 0xe1, 0x68, 0xfe, 0x3c, 0xab, 0xf8, 0xc2, 0xe8, - 0x8a, 0x13, 0x4c, 0x6b, 0x25, 0x3c, 0x12, 0x34, 0xd5, 0xdf, 0xc7, 0xb6, 0x99, 0xd0, 0x19, 0x6d, - 0x2c, 0x5d, 0x4d, 0xb2, 0xa5, 0xfa, 0x9b, 0xa2, 0x48, 0xe9, 0xaa, 0x44, 0x41, 0xbb, 0xfb, 0xda, - 0x38, 0xba, 0xaa, 0xf2, 0xa4, 0x74, 0x55, 0x2d, 0xa6, 0xab, 0xdb, 0x9e, 0x4f, 0x3c, 0x86, 0x71, - 0xdf, 0xb5, 0x1c, 0xed, 0xcd, 0xcc, 0xd5, 0xed, 0xa9, 0x4f, 0x3c, 0x51, 0x11, 0xa5, 0xa2, 0xab, - 0x9b, 0xc2, 0xa6, 0xe0, 0x3c, 0x24, 0xdb, 0x81, 0x76, 0xa2, 0x08, 0x87, 0x52, 0x29, 0x38, 0x34, - 0x83, 0xae, 0x14, 0x51, 0xc6, 0x26, 0xa1, 0x52, 0xc1, 0x86, 0x33, 0x20, 0xda, 0x5b, 0x99, 0x2b, - 0x85, 0x04, 0x27, 0x11, 0xd3, 0x95, 0x22, 0x0b, 0x84, 0xee, 0xfc, 0xa3, 0x7c, 0xea, 0x91, 0x71, - 0xe8, 0xf9, 0xcc, 0x9d, 0xbf, 0x04, 0x1d, 0x91, 0xd2, 0x3d, 0x48, 0x1a, 0x00, 0x7d, 0x06, 0x6a, - 0x43, 0xcb, 0x19, 0x68, 0x26, 0x03, 0x7a, 0x25, 0x01, 0xb4, 0x61, 0x39, 0x83, 0xb5, 0x12, 0x66, - 0x24, 0xe8, 0x16, 0xc0, 0xd0, 0x73, 0xfb, 0xc4, 0xf7, 0xd7, 0xc9, 0x0b, 0x8d, 0x30, 0x06, 0x3d, - 0xc9, 0xc0, 0x09, 0xba, 0xeb, 0x84, 0xae, 0xcb, 0x12, 0x3d, 0x5a, 0x85, 0x19, 0x91, 0x12, 0x56, - 0xbe, 0x9d, 0xe9, 0xfc, 0x85, 0x00, 0x71, 0x14, 0x48, 0xe1, 0xa2, 0x7b, 0x1f, 0x91, 0xb1, 0xe2, - 0x3a, 0x44, 0x1b, 0x64, 0xee, 0x7d, 0x42, 0x10, 0x4a, 0x42, 0x7d, 0x2c, 0x89, 0x03, 0x2d, 0xc1, - 0x74, 0xb0, 0xe3, 0x11, 0xc3, 0xdc, 0x0c, 0x8c, 0x60, 0xcf, 0xd7, 0x9c, 0x4c, 0x37, 0x8d, 0x17, - 0x76, 0x9f, 0x30, 0x4a, 0xea, 0x82, 0xca, 0x3c, 0x68, 0x1d, 0x3a, 0x74, 0x23, 0xf4, 0xd0, 0xda, - 0xb5, 0x02, 0x4c, 0x8c, 0xfe, 0x0e, 0x31, 0x35, 0x37, 0x73, 0x13, 0x45, 0xdd, 0xde, 0xae, 0x4c, - 0x47, 0xbd, 0x95, 0x24, 0x2f, 0x5a, 0x83, 0x59, 0x9a, 0xb7, 0x39, 0x34, 0xfa, 0xe4, 0xa9, 0x6f, - 0x0c, 0x88, 0x36, 0xcc, 0xd4, 0x40, 0x86, 0x16, 0x53, 0x51, 0x67, 0x45, 0xe5, 0x0b, 0x91, 0x1e, - 0xba, 0x7d, 0xc3, 0xe6, 0x48, 0x5f, 0xcb, 0x47, 0x8a, 0xa9, 0x42, 0xa4, 0x38, 0x47, 0xe9, 0x23, - 0x1f, 0x7b, 0x53, 0xdb, 0x2f, 0xe8, 0xa3, 0xa0, 0x53, 0xfa, 0x28, 0xf2, 0x28, 0x9e, 0xe3, 0x06, - 0xd6, 0xb6, 0xd5, 0x17, 0xf6, 0xeb, 0x98, 0x9a, 0x97, 0x89, 0xb7, 0x2e, 0x91, 0x75, 0x37, 0x79, - 0x64, 0x29, 0xc5, 0x8b, 0x9e, 0x00, 0x92, 0xf3, 0x84, 0x52, 0xf9, 0x0c, 0x71, 0x7e, 0x14, 0x62, - 0xa4, 0x59, 0x19, 0xfc, 0xb4, 0x95, 0x43, 0xe3, 0x80, 0x6e, 0x6f, 0x97, 0x3c, 0xd7, 0x30, 0xfb, - 0x86, 0x1f, 0x68, 0x41, 0x66, 0x2b, 0x37, 0x38, 0x59, 0x37, 0xa2, 0xa3, 0xad, 0x4c, 0xf2, 0x52, - 0xbc, 0x5d, 0xb2, 0xbb, 0x45, 0x3c, 0x7f, 0xc7, 0x1a, 0x8a, 0x36, 0xee, 0x65, 0xe2, 0x3d, 0x8a, - 0xc8, 0xe2, 0x16, 0xa6, 0x78, 0xa9, 0x23, 0xee, 0x53, 0x69, 0x6f, 0x1e, 0x38, 0x7d, 0xae, 0x8c, - 0x02, 0xf4, 0x45, 0xa6, 0x23, 0xce, 0x34, 0xa3, 0x1b, 0x13, 0xc7, 0xd0, 0xd9, 0x30, 0xe8, 0x01, - 0x1c, 0x1a, 0x5e, 0x1e, 0x2a, 0xc8, 0x2f, 0x33, 0x1d, 0xe7, 0x8d, 0xcb, 0x1b, 0x49, 0xc8, 0x24, - 0xe7, 0x52, 0x13, 0xea, 0xfb, 0x86, 0xbd, 0x47, 0xf4, 0x3f, 0xad, 0x43, 0x53, 0xc4, 0x63, 0xf5, - 0x75, 0xa8, 0xb1, 0xe0, 0xf5, 0x11, 0xa8, 0x5b, 0x8e, 0x49, 0x5e, 0xb2, 0xb8, 0x77, 0x1d, 0xf3, - 0x04, 0xba, 0x04, 0x4d, 0x11, 0x9f, 0x15, 0x11, 0x91, 0xbc, 0x68, 0x7b, 0x48, 0xa6, 0x7f, 0x08, - 0xcd, 0x30, 0x88, 0x3d, 0x07, 0xed, 0xa1, 0xe7, 0x52, 0xcd, 0xeb, 0x99, 0x0c, 0xb6, 0x8d, 0xe3, - 0x0c, 0xf4, 0x2e, 0x34, 0x4d, 0x11, 0x26, 0xe7, 0xd0, 0xaf, 0x75, 0xf9, 0xb9, 0x42, 0x37, 0x3c, - 0x57, 0xe8, 0x6e, 0xb2, 0x73, 0x05, 0x1c, 0xd2, 0xe9, 0xdf, 0x2a, 0x43, 0x83, 0xc7, 0xb2, 0xf5, - 0x7d, 0x68, 0x88, 0x21, 0xba, 0x06, 0x8d, 0x3e, 0xcb, 0xd3, 0x92, 0x71, 0x6c, 0xa5, 0x85, 0x22, - 0x38, 0x8e, 0x05, 0x31, 0x65, 0xf3, 0xf9, 0x8c, 0x53, 0x19, 0xc9, 0xc6, 0x47, 0x10, 0x0b, 0xe2, - 0xff, 0xb1, 0x7a, 0xff, 0xb3, 0x0c, 0x33, 0x6a, 0x88, 0x7c, 0x0e, 0xda, 0xfd, 0x28, 0xe8, 0x2e, - 0x46, 0xb7, 0x2f, 0x05, 0xd0, 0xa1, 0x6f, 0x5b, 0xc4, 0x09, 0x58, 0x34, 0xa8, 0x92, 0xe9, 0x64, - 0x64, 0x86, 0xe4, 0xbb, 0xcb, 0x11, 0x1b, 0x96, 0x20, 0xf4, 0x6f, 0x02, 0xc4, 0x25, 0xe8, 0x44, - 0x34, 0xed, 0xaf, 0x1b, 0xbb, 0x61, 0xf5, 0x72, 0x96, 0x44, 0xb1, 0x61, 0x04, 0x3b, 0xe2, 0x24, - 0x47, 0xce, 0x42, 0xe7, 0xe1, 0xb0, 0x6f, 0x0d, 0x1c, 0x23, 0xd8, 0xf3, 0xc8, 0x33, 0xe2, 0x59, - 0xdb, 0x16, 0x31, 0x59, 0xf0, 0xac, 0x85, 0xd3, 0x05, 0xfa, 0xaf, 0xb6, 0xa1, 0xc1, 0xdd, 0x39, - 0xfd, 0xc7, 0x95, 0x48, 0xc7, 0xf4, 0xbf, 0x2a, 0x43, 0x9d, 0x87, 0xb5, 0x67, 0xa1, 0x62, 0x85, - 0x6a, 0x56, 0xb1, 0x4c, 0x74, 0x4f, 0xd6, 0xaf, 0x6a, 0x86, 0xaf, 0x93, 0x15, 0xe6, 0xef, 0x3e, - 0x20, 0x07, 0xcf, 0xa8, 0x8d, 0x44, 0x4a, 0x87, 0x8e, 0x42, 0xc3, 0xdf, 0xdb, 0xea, 0x99, 0xbe, - 0x56, 0x3d, 0x51, 0x3d, 0xd7, 0xc6, 0x22, 0xa5, 0xdf, 0x87, 0x56, 0x48, 0x8c, 0x3a, 0x50, 0x7d, - 0x4e, 0x0e, 0x44, 0xe5, 0xf4, 0x2f, 0x3a, 0x2f, 0x6c, 0x2d, 0x32, 0x9b, 0xa4, 0x6e, 0xf3, 0x5a, - 0x84, 0x41, 0x7e, 0x05, 0xaa, 0xd4, 0x81, 0x4a, 0x76, 0x61, 0x72, 0x13, 0xc9, 0x6d, 0xed, 0x32, - 0xd4, 0xf9, 0xd1, 0x42, 0xb2, 0x0e, 0x04, 0xb5, 0xe7, 0xe4, 0x80, 0x8f, 0x51, 0x1b, 0xb3, 0xff, - 0xb9, 0x20, 0x7f, 0x59, 0x85, 0x69, 0x39, 0x9c, 0xaa, 0xaf, 0x42, 0x75, 0xd1, 0x4c, 0x0f, 0xbd, - 0x06, 0x4d, 0x63, 0x3b, 0x20, 0x5e, 0x74, 0x82, 0x17, 0x26, 0xe9, 0x2c, 0xc3, 0xb0, 0x98, 0x9c, - 0xdb, 0x98, 0x27, 0xf4, 0x2e, 0x34, 0x44, 0x94, 0x3a, 0x89, 0x14, 0xd1, 0x57, 0x64, 0xfa, 0xfb, - 0xd0, 0x8a, 0x82, 0xce, 0x1f, 0xb7, 0x6e, 0x0f, 0x5a, 0x51, 0x74, 0xf9, 0x08, 0xd4, 0x03, 0x37, - 0x30, 0x6c, 0x06, 0x57, 0xc5, 0x3c, 0x41, 0x0d, 0xcd, 0x21, 0x2f, 0x83, 0xe5, 0x68, 0x16, 0xac, - 0xe2, 0x38, 0x83, 0x4f, 0x72, 0x64, 0x9f, 0x97, 0x56, 0x79, 0x69, 0x94, 0x11, 0xd7, 0x59, 0x93, - 0xeb, 0x3c, 0x80, 0x86, 0x08, 0x39, 0x47, 0xe5, 0x65, 0xa9, 0x1c, 0x2d, 0x42, 0x7d, 0x40, 0xcb, - 0x85, 0xd4, 0xdf, 0x49, 0x4c, 0x11, 0xdc, 0x93, 0x5c, 0x76, 0x9d, 0x80, 0xaa, 0xb1, 0xba, 0x93, - 0xc6, 0x9c, 0x93, 0x8a, 0xd0, 0xe3, 0xe7, 0x07, 0xdc, 0xa2, 0x44, 0x4a, 0xff, 0x83, 0x32, 0xb4, - 0xa3, 0x03, 0x1b, 0xfd, 0xc3, 0x3c, 0xe3, 0x59, 0x84, 0x19, 0x4f, 0x50, 0xd1, 0xd9, 0x21, 0x34, - 0xa1, 0x63, 0x89, 0x96, 0x60, 0x89, 0x06, 0xab, 0x1c, 0xfa, 0xad, 0x5c, 0xa1, 0xce, 0xc3, 0x74, - 0x48, 0xfa, 0x20, 0x56, 0x3d, 0x25, 0x4f, 0xd7, 0x23, 0xee, 0x0e, 0x54, 0x2d, 0x93, 0x9f, 0x1f, - 0xb7, 0x31, 0xfd, 0xab, 0x6f, 0xc3, 0xb4, 0x1c, 0xb6, 0xd5, 0x9f, 0x65, 0x5b, 0xcf, 0x1d, 0x5a, - 0x8d, 0x14, 0x22, 0xae, 0x24, 0x7c, 0xd3, 0xb0, 0x0b, 0x31, 0x09, 0x56, 0x18, 0xf4, 0xd7, 0xa0, - 0xce, 0x0f, 0x93, 0x12, 0xc8, 0xfa, 0xef, 0xf4, 0xa1, 0xce, 0x84, 0xa0, 0x5f, 0xe1, 0x06, 0x70, - 0x1e, 0x1a, 0x6c, 0x63, 0x14, 0x1e, 0x73, 0x1f, 0xc9, 0x92, 0x18, 0x16, 0x34, 0xfa, 0x32, 0x4c, - 0x49, 0x61, 0x7c, 0xaa, 0xb1, 0xac, 0x20, 0xd2, 0x82, 0x30, 0x89, 0x74, 0x68, 0xd1, 0xc5, 0x52, - 0x4c, 0xa0, 0xb4, 0xff, 0x51, 0x5a, 0x3f, 0x05, 0x0d, 0xb1, 0xd1, 0xd3, 0xc5, 0xb1, 0x45, 0x2f, - 0x1a, 0xa5, 0x28, 0xad, 0x7f, 0x09, 0xda, 0x51, 0xb4, 0x1f, 0x3d, 0x86, 0x69, 0x11, 0xed, 0xe7, - 0x9b, 0x15, 0x4a, 0x3c, 0x5b, 0xa0, 0x5d, 0x74, 0x67, 0xc2, 0x0e, 0x0c, 0xba, 0x4f, 0x0e, 0x86, - 0x04, 0x2b, 0x00, 0xfa, 0x2f, 0x9f, 0x63, 0x23, 0xaf, 0x0f, 0xa1, 0x15, 0x85, 0x38, 0x93, 0x52, - 0x58, 0xe0, 0x53, 0x63, 0xa5, 0x30, 0x3e, 0xcf, 0xf9, 0xe9, 0x04, 0xcc, 0x66, 0x50, 0xfd, 0x18, - 0x54, 0x1f, 0x90, 0x03, 0x6a, 0x21, 0x7c, 0x22, 0x15, 0x16, 0xc2, 0x27, 0xcc, 0x1e, 0x34, 0xc4, - 0x51, 0x43, 0xb2, 0xbe, 0x8b, 0xd0, 0xd8, 0xe6, 0xa7, 0x17, 0x05, 0x53, 0xa6, 0x20, 0xd3, 0xef, - 0xc0, 0x94, 0x7c, 0xc0, 0x90, 0xc4, 0x3b, 0x01, 0x53, 0x7d, 0xe9, 0x08, 0x83, 0x8b, 0x41, 0xce, - 0xd2, 0x89, 0xaa, 0x8e, 0x29, 0x84, 0xd5, 0x4c, 0x3d, 0x7c, 0x2b, 0x73, 0xd8, 0x47, 0x68, 0xe3, - 0x03, 0x38, 0x94, 0x3c, 0x49, 0x48, 0xd6, 0x74, 0x0e, 0x0e, 0x6d, 0x25, 0xce, 0x2d, 0xf8, 0x1c, - 0x98, 0xcc, 0xd6, 0x7b, 0x50, 0xe7, 0x91, 0xde, 0x24, 0xc4, 0x25, 0xa8, 0x1b, 0x2c, 0x92, 0x4c, - 0x19, 0x67, 0xa5, 0xfd, 0xa4, 0xdc, 0x4a, 0xc6, 0x8a, 0x39, 0xa1, 0x6e, 0xc1, 0x8c, 0x1a, 0x3c, - 0x4e, 0x42, 0xae, 0xc1, 0xcc, 0xbe, 0x12, 0xa4, 0xe6, 0xd0, 0xf3, 0x99, 0xd0, 0x0a, 0x14, 0x56, - 0x19, 0xf5, 0x5f, 0x68, 0x40, 0x8d, 0x9d, 0x7e, 0x24, 0xab, 0xb8, 0x0e, 0xb5, 0x80, 0xbc, 0x0c, - 0x7d, 0xd4, 0xf9, 0x91, 0x47, 0x29, 0x7c, 0x0b, 0xce, 0xe8, 0xd1, 0x67, 0xa1, 0xee, 0x07, 0x07, - 0x76, 0x78, 0x66, 0x77, 0x72, 0x34, 0xe3, 0x26, 0x25, 0xc5, 0x9c, 0x83, 0xb2, 0x32, 0x5b, 0x10, - 0xa7, 0x75, 0x05, 0xac, 0xcc, 0x08, 0x31, 0xe7, 0x40, 0x77, 0xa0, 0xd9, 0xdf, 0x21, 0xfd, 0xe7, - 0xc4, 0x14, 0xc7, 0x74, 0xa7, 0x47, 0x33, 0x2f, 0x73, 0x62, 0x1c, 0x72, 0xd1, 0xba, 0xfb, 0x4c, - 0xba, 0x8d, 0x71, 0xea, 0x66, 0x12, 0xc7, 0x9c, 0x03, 0xad, 0x42, 0xdb, 0xea, 0xbb, 0xce, 0xea, - 0xae, 0xfb, 0x55, 0x4b, 0x9c, 0xc7, 0x9d, 0x1d, 0xcd, 0xde, 0x0b, 0xc9, 0x71, 0xcc, 0x19, 0xc2, - 0xf4, 0x76, 0xe9, 0x96, 0xb6, 0x35, 0x2e, 0x0c, 0x23, 0xc7, 0x31, 0xa7, 0x3e, 0x27, 0xe4, 0x99, - 0x6d, 0xe4, 0xf7, 0xa0, 0xce, 0x86, 0x1c, 0xbd, 0x27, 0x17, 0xcf, 0x4a, 0x35, 0xe5, 0xce, 0x58, - 0x42, 0x54, 0x11, 0x0e, 0x1b, 0x7f, 0x15, 0x67, 0x6a, 0x1c, 0x1c, 0x21, 0x37, 0x8e, 0xf3, 0x26, - 0x34, 0x85, 0x28, 0xd4, 0x06, 0xb7, 0x42, 0x82, 0x37, 0xa0, 0xce, 0x0d, 0x33, 0xbb, 0x3f, 0x6f, - 0x41, 0x3b, 0x1a, 0xcc, 0xd1, 0x24, 0x6c, 0x74, 0x72, 0x48, 0x7e, 0xa5, 0x02, 0x75, 0x7e, 0x0a, - 0x94, 0x9e, 0x6a, 0x65, 0x2b, 0x38, 0x39, 0xfa, 0x50, 0x49, 0x36, 0x83, 0x7b, 0x6c, 0xa3, 0x46, - 0x1d, 0xf3, 0xe8, 0x56, 0xd5, 0xb9, 0x02, 0xee, 0x8d, 0x90, 0x1e, 0xc7, 0xac, 0x05, 0xe2, 0x7c, - 0x0c, 0xed, 0x88, 0x0b, 0x2d, 0xa9, 0x22, 0x3d, 0x3f, 0x52, 0x14, 0xc9, 0x2a, 0x05, 0xe0, 0xb7, - 0xcb, 0x50, 0x5d, 0xb1, 0xf6, 0x53, 0xe3, 0x70, 0x23, 0xb4, 0xea, 0xa2, 0xe9, 0x60, 0xc5, 0xda, - 0x57, 0x8c, 0x5a, 0x5f, 0x0d, 0x35, 0xee, 0x96, 0xda, 0xbc, 0x33, 0xa3, 0x3d, 0xb0, 0x18, 0x86, - 0x37, 0xec, 0x37, 0x9a, 0x50, 0x63, 0x07, 0xac, 0x59, 0xf3, 0xd4, 0xc1, 0xb0, 0xb8, 0x61, 0x2c, - 0x84, 0xc3, 0x16, 0x5c, 0x46, 0xcf, 0xe7, 0x29, 0x23, 0x28, 0x9e, 0xa7, 0x78, 0x44, 0x8a, 0x92, - 0x62, 0xce, 0x41, 0xab, 0xdc, 0xb5, 0x76, 0x89, 0x98, 0xa6, 0x0a, 0xaa, 0x7c, 0x64, 0xed, 0x12, - 0xcc, 0xe8, 0x29, 0xdf, 0x8e, 0xe1, 0xef, 0x88, 0x19, 0xaa, 0x80, 0x6f, 0xcd, 0xf0, 0x77, 0x30, - 0xa3, 0xa7, 0x7c, 0x0e, 0xdd, 0x12, 0x36, 0xc6, 0xe1, 0xa3, 0x3b, 0x45, 0xcc, 0xe8, 0x29, 0x9f, - 0x6f, 0x7d, 0x9d, 0x88, 0x39, 0xa9, 0x80, 0x6f, 0xd3, 0xfa, 0x3a, 0xc1, 0x8c, 0x3e, 0x9e, 0xc2, - 0x5b, 0xe3, 0x0d, 0x8d, 0x34, 0x85, 0x3f, 0x81, 0xd9, 0x40, 0x39, 0x26, 0x10, 0xa7, 0xfc, 0xe7, - 0x0b, 0xe4, 0xa2, 0xf0, 0xe0, 0x04, 0x06, 0x35, 0x02, 0xb6, 0x01, 0xce, 0x36, 0x82, 0x37, 0xa0, - 0xfe, 0x79, 0xcb, 0x0c, 0x76, 0xd4, 0xe2, 0xba, 0x32, 0xe5, 0x51, 0xb1, 0x4d, 0x34, 0xe5, 0xc9, - 0x52, 0xe7, 0x38, 0x2b, 0x50, 0xa3, 0xea, 0x33, 0x99, 0x1e, 0xc7, 0x5a, 0xf7, 0xb1, 0x26, 0x60, - 0x79, 0xa0, 0x39, 0xce, 0x1c, 0xd4, 0xa8, 0x86, 0xe4, 0x0c, 0xc9, 0x1c, 0xd4, 0xa8, 0xde, 0xe5, - 0x97, 0x52, 0x69, 0xab, 0xa5, 0xd5, 0xb0, 0xf4, 0x0c, 0xcc, 0xaa, 0xe2, 0xc8, 0x41, 0xf9, 0x8b, - 0x26, 0xd4, 0xd8, 0x6d, 0x85, 0xa4, 0x45, 0xfe, 0x0c, 0xcc, 0x70, 0xf9, 0x2d, 0x09, 0x17, 0xbc, - 0x92, 0x79, 0x59, 0x49, 0xbd, 0x03, 0x21, 0x54, 0x40, 0xb0, 0x60, 0x15, 0x61, 0x7c, 0xa7, 0x82, - 0x41, 0x29, 0x1a, 0x79, 0x2b, 0x72, 0x5e, 0x6b, 0x05, 0x57, 0x65, 0x18, 0x2f, 0x77, 0x81, 0x43, - 0x4f, 0x16, 0x2d, 0x41, 0x8b, 0x2e, 0xad, 0x74, 0xb8, 0x84, 0xd9, 0x9e, 0x19, 0xcd, 0xdf, 0x13, - 0xd4, 0x38, 0xe2, 0xa3, 0x0b, 0x7b, 0xdf, 0xf0, 0x4c, 0xd6, 0x2a, 0x61, 0xc3, 0x67, 0x47, 0x83, - 0x2c, 0x87, 0xe4, 0x38, 0xe6, 0x44, 0x0f, 0x60, 0xca, 0x24, 0x51, 0x9c, 0x40, 0x18, 0xf5, 0x67, - 0x46, 0x03, 0xad, 0xc4, 0x0c, 0x58, 0xe6, 0xa6, 0x6d, 0x0a, 0xf7, 0x86, 0x7e, 0xa1, 0xb3, 0xc1, - 0xa0, 0xe2, 0x2b, 0x89, 0x31, 0xa7, 0x7e, 0x1a, 0x66, 0x14, 0xb9, 0x7d, 0xa2, 0x5e, 0x87, 0x2c, - 0x4b, 0x8e, 0xb3, 0x10, 0x6d, 0x51, 0x2e, 0xa8, 0x6e, 0x47, 0xee, 0x8e, 0x44, 0x30, 0x3e, 0x84, - 0x56, 0x28, 0x18, 0x74, 0x57, 0x6d, 0xc3, 0xdb, 0xc5, 0x6d, 0x88, 0x64, 0x2a, 0xd0, 0xd6, 0xa1, - 0x1d, 0x49, 0x08, 0x2d, 0xaa, 0x70, 0xef, 0x14, 0xc3, 0xc5, 0xd2, 0x15, 0x78, 0x18, 0xa6, 0x24, - 0x41, 0xa1, 0x65, 0x15, 0xf1, 0x42, 0x31, 0xa2, 0x2c, 0xe6, 0xd8, 0xeb, 0x89, 0x24, 0x26, 0x4b, - 0xa5, 0x1a, 0x4b, 0xe5, 0x4f, 0x9a, 0xd0, 0x8a, 0x6e, 0x08, 0x65, 0xec, 0x31, 0xf7, 0x3c, 0xbb, - 0x70, 0x8f, 0x19, 0xf2, 0x77, 0x9f, 0x7a, 0x36, 0xa6, 0x1c, 0x54, 0xc4, 0x81, 0x15, 0x44, 0xa6, - 0x7a, 0xb6, 0x98, 0xf5, 0x09, 0x25, 0xc7, 0x9c, 0x0b, 0x3d, 0x56, 0xb5, 0xbc, 0x36, 0xe2, 0x04, - 0x59, 0x01, 0xc9, 0xd5, 0xf4, 0x1e, 0xb4, 0x2d, 0xea, 0xfa, 0xad, 0xc5, 0x2b, 0xef, 0x3b, 0xc5, - 0x70, 0xbd, 0x90, 0x05, 0xc7, 0xdc, 0xb4, 0x6d, 0xdb, 0xc6, 0x3e, 0xb5, 0x6b, 0x06, 0xd6, 0x18, - 0xb7, 0x6d, 0xf7, 0x62, 0x26, 0x2c, 0x23, 0xa0, 0x9b, 0xc2, 0x77, 0x69, 0x16, 0xcc, 0x2c, 0xf1, - 0x50, 0xc5, 0xfe, 0xcb, 0x07, 0xa9, 0x95, 0x96, 0x9b, 0xf1, 0xa5, 0x31, 0x50, 0x46, 0xae, 0xb6, - 0x54, 0x82, 0xdc, 0x33, 0x6a, 0x8f, 0x2b, 0x41, 0xd9, 0x3b, 0xd2, 0x8f, 0x41, 0xf5, 0xa9, 0x67, - 0xe7, 0xaf, 0xd5, 0x4c, 0xdc, 0x39, 0xc5, 0x27, 0x55, 0x4b, 0xc8, 0x77, 0xe8, 0x23, 0x99, 0xe4, - 0xe2, 0x48, 0x83, 0x9e, 0x43, 0xf4, 0x9e, 0x58, 0xd0, 0xaf, 0xa9, 0xf6, 0xf6, 0x66, 0xc2, 0xde, - 0xa8, 0x85, 0x6d, 0x78, 0x84, 0x5f, 0x92, 0x90, 0x56, 0xf2, 0x71, 0xd7, 0xc9, 0xfb, 0xa1, 0xff, - 0x31, 0xd1, 0x4c, 0x91, 0x1c, 0x5b, 0x8e, 0xf5, 0x4b, 0x65, 0x68, 0x45, 0x17, 0xc0, 0xd2, 0xd1, - 0xf9, 0x96, 0xe5, 0xaf, 0x11, 0xc3, 0x24, 0x9e, 0xb0, 0xdb, 0xb7, 0x0b, 0x6f, 0x96, 0x75, 0x7b, - 0x82, 0x03, 0x47, 0xbc, 0xfa, 0x09, 0x68, 0x85, 0xb9, 0x39, 0x9b, 0xb2, 0xef, 0x57, 0xa0, 0x21, - 0xae, 0x8e, 0x25, 0x1b, 0x71, 0x1b, 0x1a, 0xb6, 0x71, 0xe0, 0xee, 0x85, 0x5b, 0xa6, 0x33, 0x05, - 0xb7, 0xd1, 0xba, 0x0f, 0x19, 0x35, 0x16, 0x5c, 0xe8, 0x73, 0x50, 0xb7, 0xad, 0x5d, 0x2b, 0x10, - 0xd3, 0xc7, 0xe9, 0x42, 0x76, 0x76, 0xc8, 0xcc, 0x79, 0x68, 0xe5, 0xec, 0xc6, 0x48, 0x78, 0xdf, - 0xb7, 0xb0, 0xf2, 0x67, 0x8c, 0x1a, 0x0b, 0x2e, 0xfd, 0x3e, 0x34, 0x78, 0x73, 0x26, 0x5b, 0x24, - 0xd4, 0x9e, 0xc4, 0x9a, 0xce, 0xda, 0x96, 0xe3, 0x95, 0x1e, 0x87, 0x06, 0xaf, 0x3c, 0x47, 0x6b, - 0xbe, 0xf7, 0x3a, 0xdb, 0xef, 0xd8, 0xfa, 0xc3, 0xf8, 0xf0, 0xef, 0xe3, 0x9f, 0x65, 0xe8, 0x4f, - 0xe0, 0xd0, 0x8a, 0x11, 0x18, 0x5b, 0x86, 0x4f, 0x30, 0xe9, 0xbb, 0x9e, 0x99, 0x89, 0xea, 0xf1, - 0x22, 0x11, 0xa1, 0xce, 0x47, 0x15, 0x74, 0x9f, 0x86, 0x0e, 0xff, 0xf7, 0x84, 0x0e, 0xff, 0xac, - 0x96, 0x13, 0xcf, 0x1b, 0x27, 0x92, 0x41, 0x15, 0x2e, 0x15, 0xd0, 0xbb, 0xa9, 0xfa, 0xde, 0xa7, - 0x0a, 0x38, 0x15, 0xe7, 0xfb, 0xa6, 0x1a, 0xd1, 0x2b, 0xe2, 0x55, 0x42, 0x7a, 0x77, 0x93, 0x21, - 0xbd, 0x33, 0x05, 0xdc, 0xa9, 0x98, 0xde, 0x4d, 0x35, 0xa6, 0x57, 0x54, 0xbb, 0x1c, 0xd4, 0xfb, - 0x7f, 0x16, 0x46, 0xfb, 0xad, 0x9c, 0xb0, 0xcf, 0x67, 0xd5, 0xb0, 0xcf, 0x08, 0xad, 0xf9, 0x69, - 0xc5, 0x7d, 0x7e, 0xbb, 0x91, 0x13, 0xf7, 0x59, 0x50, 0xe2, 0x3e, 0x23, 0x5a, 0x96, 0x0c, 0xfc, - 0xdc, 0x54, 0x03, 0x3f, 0xa7, 0x0a, 0x38, 0x95, 0xc8, 0xcf, 0x82, 0x12, 0xf9, 0x29, 0xaa, 0x54, - 0x0a, 0xfd, 0x2c, 0x28, 0xa1, 0x9f, 0x22, 0x46, 0x29, 0xf6, 0xb3, 0xa0, 0xc4, 0x7e, 0x8a, 0x18, - 0xa5, 0xe0, 0xcf, 0x82, 0x12, 0xfc, 0x29, 0x62, 0x94, 0xa2, 0x3f, 0x37, 0xd5, 0xe8, 0x4f, 0xf1, - 0xf8, 0x48, 0x42, 0xff, 0x34, 0x50, 0xf3, 0xdf, 0x18, 0xa8, 0xf9, 0xf5, 0x6a, 0x4e, 0x00, 0x06, - 0x67, 0x07, 0x60, 0xce, 0xe7, 0x4b, 0xb2, 0x38, 0x02, 0x33, 0xfe, 0x2a, 0x90, 0x0e, 0xc1, 0xbc, - 0x97, 0x08, 0xc1, 0x9c, 0x2e, 0x60, 0x56, 0x63, 0x30, 0xff, 0x67, 0x82, 0x0c, 0x7f, 0xd4, 0x18, - 0xb1, 0x9f, 0xbe, 0x21, 0xef, 0xa7, 0x47, 0xac, 0x64, 0xe9, 0x0d, 0xf5, 0x6d, 0x75, 0x43, 0x7d, - 0x6e, 0x0c, 0x5e, 0x65, 0x47, 0xbd, 0x91, 0xb5, 0xa3, 0xee, 0x8e, 0x81, 0x92, 0xbb, 0xa5, 0xbe, - 0x9f, 0xde, 0x52, 0x9f, 0x1f, 0x03, 0x2f, 0x73, 0x4f, 0xbd, 0x91, 0xb5, 0xa7, 0x1e, 0xa7, 0x75, - 0xb9, 0x9b, 0xea, 0xcf, 0x29, 0x9b, 0xea, 0xb3, 0xe3, 0x0c, 0x57, 0xbc, 0x38, 0x7c, 0x21, 0x67, - 0x57, 0xfd, 0xee, 0x38, 0x30, 0xa3, 0x83, 0xd8, 0x9f, 0xee, 0x8b, 0xd5, 0x6a, 0xfe, 0xf0, 0x4d, - 0x68, 0x85, 0x17, 0x6d, 0xf4, 0xaf, 0x41, 0x33, 0x7c, 0x2f, 0x94, 0xb4, 0x9c, 0xa3, 0xd1, 0xa6, - 0x8e, 0x7b, 0xcf, 0x22, 0x85, 0x6e, 0x43, 0x8d, 0xfe, 0x13, 0x66, 0xf1, 0xf6, 0x78, 0x17, 0x7a, - 0x68, 0x25, 0x98, 0xf1, 0xe9, 0x3f, 0x3a, 0x02, 0x20, 0x3d, 0xa3, 0x18, 0xb7, 0xda, 0xf7, 0xe9, - 0x64, 0x66, 0x07, 0xc4, 0x63, 0x17, 0xb9, 0x0a, 0x9f, 0x19, 0xc4, 0x35, 0x50, 0x6d, 0x09, 0x88, - 0x87, 0x05, 0x3b, 0x7a, 0x04, 0xad, 0x30, 0x90, 0xaa, 0xd5, 0x18, 0xd4, 0xbb, 0x63, 0x43, 0x85, - 0xa1, 0x3d, 0x1c, 0x41, 0xa0, 0x45, 0xa8, 0xf9, 0xae, 0x17, 0x68, 0x75, 0x06, 0x75, 0x61, 0x6c, - 0xa8, 0x4d, 0xd7, 0x0b, 0x30, 0x63, 0xe5, 0x5d, 0x93, 0x5e, 0xa9, 0x4e, 0xd2, 0x35, 0x65, 0xc6, - 0xfe, 0xf7, 0x6a, 0x34, 0x87, 0x2e, 0x0b, 0x6b, 0xe4, 0x3a, 0x74, 0x71, 0x7c, 0x29, 0xc9, 0x56, - 0x89, 0x84, 0x13, 0xc4, 0x25, 0xc1, 0xfd, 0x9b, 0xb7, 0xa1, 0xd3, 0x77, 0xf7, 0x89, 0x87, 0xe3, - 0x2b, 0x4e, 0xe2, 0x16, 0x5a, 0x2a, 0x1f, 0xe9, 0xd0, 0xda, 0xb1, 0x4c, 0xd2, 0xeb, 0x8b, 0xf9, - 0xaf, 0x85, 0xa3, 0x34, 0x7a, 0x00, 0x2d, 0x16, 0x63, 0x0f, 0x23, 0xfc, 0x93, 0x35, 0x92, 0x87, - 0xfa, 0x43, 0x00, 0x5a, 0x11, 0xab, 0xfc, 0x9e, 0x15, 0xb0, 0x31, 0x6c, 0xe1, 0x28, 0x4d, 0x1b, - 0xcc, 0xee, 0x91, 0xc9, 0x0d, 0x6e, 0xf2, 0x06, 0x27, 0xf3, 0xd1, 0x55, 0x78, 0x95, 0xe5, 0x25, - 0xb6, 0x98, 0x3c, 0x54, 0xdf, 0xc2, 0xd9, 0x85, 0xec, 0xde, 0x9c, 0x31, 0xe0, 0x77, 0xd2, 0x59, - 0xf0, 0xae, 0x8e, 0xe3, 0x0c, 0x74, 0x1e, 0x0e, 0x9b, 0x64, 0xdb, 0xd8, 0xb3, 0x83, 0x27, 0x64, - 0x77, 0x68, 0x1b, 0x01, 0xe9, 0x99, 0xec, 0xa1, 0x6c, 0x1b, 0xa7, 0x0b, 0xd0, 0x25, 0x78, 0x45, - 0x64, 0x72, 0x33, 0xa6, 0xd2, 0xe8, 0x99, 0xec, 0xdd, 0x68, 0x1b, 0x67, 0x15, 0xe9, 0xdf, 0xab, - 0x51, 0xa1, 0x33, 0xd5, 0x7e, 0x1f, 0xaa, 0x86, 0x69, 0x8a, 0x65, 0xf3, 0xca, 0x84, 0x06, 0x22, - 0xde, 0x82, 0x53, 0x04, 0xb4, 0x11, 0x5d, 0xb9, 0xe3, 0x0b, 0xe7, 0xf5, 0x49, 0xb1, 0xa2, 0xf7, - 0xfb, 0x02, 0x87, 0x22, 0xee, 0xf1, 0x4b, 0xdf, 0xd5, 0x9f, 0x0c, 0x31, 0xba, 0x0b, 0x2e, 0x70, - 0xd0, 0x7d, 0xa8, 0xb1, 0x16, 0xf2, 0x85, 0xf5, 0xea, 0xa4, 0x78, 0x8f, 0x78, 0xfb, 0x18, 0x86, - 0xde, 0xe7, 0x77, 0xdf, 0xa4, 0x0b, 0x97, 0x65, 0xf5, 0xc2, 0xe5, 0x12, 0xd4, 0xad, 0x80, 0xec, - 0xa6, 0xef, 0xdf, 0x8e, 0x54, 0x55, 0x31, 0xf3, 0x70, 0xd6, 0x91, 0xf7, 0x00, 0x3f, 0x8c, 0xee, - 0x62, 0x27, 0xe7, 0xc3, 0xbb, 0x50, 0xa3, 0xec, 0x29, 0x5f, 0x72, 0x9c, 0x8a, 0x19, 0xa7, 0x7e, - 0x19, 0x6a, 0xb4, 0xb3, 0x23, 0x7a, 0x27, 0xda, 0x53, 0x89, 0xda, 0xb3, 0x34, 0x05, 0x6d, 0x77, - 0x48, 0x3c, 0x66, 0x18, 0xfa, 0xbf, 0xd5, 0xa4, 0x4b, 0x71, 0x3d, 0x59, 0xc7, 0xae, 0x4d, 0x3c, - 0x73, 0xca, 0x5a, 0x86, 0x13, 0x5a, 0x76, 0x63, 0x72, 0xb4, 0x94, 0x9e, 0xe1, 0x84, 0x9e, 0xfd, - 0x04, 0x98, 0x29, 0x4d, 0x7b, 0xa8, 0x68, 0xda, 0xf5, 0xc9, 0x11, 0x15, 0x5d, 0x23, 0x45, 0xba, - 0xb6, 0xa2, 0xea, 0x5a, 0x77, 0x3c, 0x91, 0x47, 0x4b, 0xd3, 0x18, 0xda, 0xf6, 0xa5, 0x5c, 0x6d, - 0x5b, 0x52, 0xb4, 0x6d, 0xd2, 0xaa, 0x3f, 0x21, 0x7d, 0xfb, 0xe7, 0x1a, 0xd4, 0xe8, 0xf2, 0x88, - 0x56, 0x65, 0x5d, 0x7b, 0x77, 0xa2, 0xa5, 0x55, 0xd6, 0xb3, 0xf5, 0x84, 0x9e, 0x5d, 0x9d, 0x0c, - 0x29, 0xa5, 0x63, 0xeb, 0x09, 0x1d, 0x9b, 0x10, 0x2f, 0xa5, 0x5f, 0x6b, 0x8a, 0x7e, 0x5d, 0x9e, - 0x0c, 0x4d, 0xd1, 0x2d, 0xa3, 0x48, 0xb7, 0xee, 0xaa, 0xba, 0x35, 0xa6, 0xf7, 0xc6, 0x7c, 0x95, - 0x31, 0xf4, 0xea, 0x83, 0x5c, 0xbd, 0xba, 0xad, 0xe8, 0xd5, 0x24, 0xd5, 0x7e, 0x42, 0x3a, 0x75, - 0x95, 0x3b, 0x9d, 0xe2, 0x9e, 0xf1, 0x98, 0x4e, 0xa7, 0x7e, 0x0d, 0xda, 0xf1, 0x3b, 0xf4, 0x8c, - 0xeb, 0xf9, 0x9c, 0x2c, 0xac, 0x35, 0x4c, 0xea, 0x57, 0xa0, 0x1d, 0xbf, 0x2d, 0xcf, 0xa8, 0xcb, - 0x67, 0x85, 0x82, 0x4b, 0xa4, 0xf4, 0x55, 0x38, 0x9c, 0x7e, 0xf9, 0x9a, 0x11, 0x87, 0x97, 0xee, - 0x96, 0x87, 0x4f, 0x51, 0xa4, 0x2c, 0xfd, 0x05, 0xcc, 0x26, 0xde, 0xb2, 0x4e, 0x8c, 0x81, 0xae, - 0x48, 0x2e, 0x72, 0x55, 0xec, 0xc1, 0xb3, 0x6f, 0xcb, 0xc7, 0x8e, 0xb0, 0xbe, 0x02, 0xb3, 0x05, - 0x8d, 0x1f, 0xe7, 0xb2, 0xfc, 0x57, 0x60, 0x6a, 0x54, 0xdb, 0x3f, 0x81, 0xcb, 0xfc, 0x01, 0x74, - 0x52, 0xef, 0xf0, 0x93, 0xd5, 0x6c, 0x00, 0x0c, 0x22, 0x1a, 0xa1, 0xb4, 0x97, 0x26, 0x78, 0xba, - 0xc0, 0xf8, 0xb0, 0x84, 0xa1, 0xff, 0x7e, 0x19, 0x0e, 0xa7, 0x1f, 0xe1, 0x8f, 0xbb, 0xf9, 0xd1, - 0xa0, 0xc9, 0xb0, 0xa2, 0x17, 0x1f, 0x61, 0x12, 0x3d, 0x82, 0x69, 0xdf, 0xb6, 0xfa, 0x64, 0x79, - 0xc7, 0x70, 0x06, 0xc4, 0x17, 0x3b, 0x9a, 0x82, 0x87, 0xf4, 0x9b, 0x31, 0x07, 0x56, 0xd8, 0xf5, - 0x17, 0x30, 0x25, 0x15, 0xa2, 0x5b, 0x50, 0x71, 0x87, 0xa9, 0x7b, 0x8d, 0xf9, 0x98, 0x8f, 0x43, - 0x7b, 0xc3, 0x15, 0x77, 0x98, 0x36, 0x49, 0xd9, 0x7c, 0xab, 0x8a, 0xf9, 0xea, 0x0f, 0xe0, 0x70, - 0xfa, 0x9d, 0x7b, 0x72, 0x78, 0xce, 0xa4, 0xa2, 0x04, 0x7c, 0x98, 0x92, 0x5b, 0xfe, 0x05, 0x38, - 0x94, 0x7c, 0xbd, 0x9e, 0xf1, 0x1a, 0x27, 0x7e, 0xd4, 0x14, 0x86, 0xeb, 0xe7, 0x7f, 0xad, 0x0c, - 0xb3, 0x6a, 0x47, 0xd0, 0x51, 0x40, 0x6a, 0xce, 0xba, 0xeb, 0x90, 0x4e, 0x09, 0xbd, 0x0a, 0x87, - 0xd5, 0xfc, 0x45, 0xd3, 0xec, 0x94, 0xd3, 0xe4, 0x74, 0xda, 0xea, 0x54, 0x90, 0x06, 0x47, 0x12, - 0x23, 0xc4, 0x26, 0xd1, 0x4e, 0x15, 0xbd, 0x0e, 0xaf, 0x26, 0x4b, 0x86, 0xb6, 0xd1, 0x27, 0x9d, - 0x9a, 0xfe, 0xc3, 0x0a, 0xd4, 0x9e, 0xfa, 0xc4, 0xd3, 0xff, 0xb5, 0x12, 0xbe, 0xd2, 0xb8, 0x01, - 0x35, 0xf6, 0xb0, 0x5c, 0x7a, 0xcd, 0x58, 0x4e, 0xbc, 0x66, 0x54, 0x5e, 0xc4, 0xc5, 0xaf, 0x19, - 0x6f, 0x40, 0x8d, 0x3d, 0x25, 0x9f, 0x9c, 0xf3, 0x17, 0xcb, 0xd0, 0x8e, 0x9f, 0x75, 0x4f, 0xcc, - 0x2f, 0xbf, 0x0a, 0xa9, 0xa8, 0xaf, 0x42, 0xde, 0x86, 0xba, 0xc7, 0xde, 0x6f, 0xf0, 0x59, 0x26, - 0xf9, 0xd6, 0x84, 0x55, 0x88, 0x39, 0x89, 0x4e, 0x60, 0x4a, 0x7e, 0xb4, 0x3e, 0x79, 0x33, 0x4e, - 0x89, 0x2f, 0xd6, 0xf4, 0x4c, 0x7f, 0xd1, 0xf3, 0x8c, 0x03, 0xa1, 0x98, 0x6a, 0xa6, 0x3e, 0x07, - 0xb5, 0x0d, 0xcb, 0x19, 0x64, 0x3f, 0x22, 0xd5, 0xbf, 0x53, 0x86, 0xa6, 0xb8, 0xbc, 0xab, 0x2f, - 0x40, 0x75, 0x9d, 0xbc, 0xa0, 0x0d, 0x11, 0xd7, 0x86, 0x53, 0x0d, 0x79, 0xc4, 0x7a, 0x21, 0xe8, - 0x71, 0x48, 0xa6, 0xdf, 0x8c, 0x96, 0xc9, 0xc9, 0x79, 0x6f, 0x40, 0x8d, 0xbd, 0x35, 0x9f, 0x9c, - 0xf3, 0x77, 0x5b, 0xd0, 0xe0, 0x2f, 0x31, 0xf5, 0x6f, 0xb7, 0xa0, 0xc1, 0xdf, 0x9f, 0xa3, 0xdb, - 0xd0, 0xf4, 0xf7, 0x76, 0x77, 0x0d, 0xef, 0x40, 0xcb, 0xfe, 0xd8, 0xa1, 0xf2, 0x5c, 0xbd, 0xbb, - 0xc9, 0x69, 0x71, 0xc8, 0x84, 0xae, 0x41, 0xad, 0x6f, 0x6c, 0x93, 0xd4, 0x71, 0x6e, 0x16, 0xf3, - 0xb2, 0xb1, 0x4d, 0x30, 0x23, 0x47, 0x77, 0xa1, 0x25, 0xc4, 0xe2, 0x8b, 0x78, 0xce, 0xe8, 0x7a, - 0x43, 0x61, 0x46, 0x5c, 0xfa, 0x7d, 0x68, 0x8a, 0xc6, 0xa0, 0x3b, 0xd1, 0x3b, 0xd4, 0x64, 0xe4, - 0x39, 0xb3, 0x0b, 0xd1, 0xc3, 0xe4, 0xe8, 0x45, 0xea, 0x5f, 0x57, 0xa0, 0x46, 0x1b, 0xf7, 0xb1, - 0x91, 0xd0, 0x71, 0x00, 0xdb, 0xf0, 0x83, 0x8d, 0x3d, 0xdb, 0x26, 0xa6, 0x78, 0x61, 0x27, 0xe5, - 0xa0, 0x73, 0x70, 0x88, 0xa7, 0xfc, 0x9d, 0xcd, 0xbd, 0x7e, 0x9f, 0x44, 0xcf, 0x44, 0x93, 0xd9, - 0x68, 0x11, 0xea, 0xec, 0x8b, 0x68, 0xc2, 0x2b, 0x7c, 0xa7, 0x70, 0x64, 0xbb, 0x1b, 0x96, 0x23, - 0x5a, 0xc3, 0x39, 0x75, 0x17, 0xda, 0x51, 0x1e, 0x35, 0xc2, 0xa1, 0xe5, 0x38, 0x96, 0x33, 0x10, - 0x1a, 0x1d, 0x26, 0xe9, 0xa2, 0x43, 0xff, 0x8a, 0xf6, 0xd6, 0xb1, 0x48, 0xd1, 0xfc, 0x6d, 0xc3, - 0xb2, 0x45, 0x13, 0xeb, 0x58, 0xa4, 0x28, 0xd2, 0x9e, 0x78, 0xb5, 0x5f, 0x63, 0x1d, 0x0c, 0x93, - 0xfa, 0x47, 0xe5, 0xe8, 0x31, 0x76, 0xd6, 0xe3, 0xcc, 0x54, 0x2c, 0x69, 0x4e, 0x0e, 0x68, 0xf3, - 0x05, 0x41, 0x0a, 0x51, 0x1f, 0x85, 0x86, 0xeb, 0xd8, 0x96, 0x43, 0x44, 0xec, 0x48, 0xa4, 0x12, - 0x63, 0x5c, 0x4f, 0x8d, 0xb1, 0x28, 0x5f, 0x35, 0x2d, 0xda, 0xc4, 0x46, 0x5c, 0xce, 0x73, 0xd0, - 0x7b, 0xd0, 0x34, 0xc9, 0xbe, 0xd5, 0x27, 0xbe, 0xd6, 0x64, 0xaa, 0x77, 0x72, 0xe4, 0xd8, 0xae, - 0x30, 0x5a, 0x1c, 0xf2, 0xe8, 0x01, 0x34, 0x78, 0x56, 0xd4, 0xa5, 0xb2, 0xd4, 0xa5, 0xb8, 0xd1, - 0x95, 0x11, 0x8d, 0xae, 0x16, 0x34, 0xba, 0x96, 0x6c, 0xf4, 0xbc, 0x09, 0x10, 0xab, 0x1b, 0x9a, - 0x82, 0xe6, 0x53, 0xe7, 0xb9, 0xe3, 0xbe, 0x70, 0x3a, 0x25, 0x9a, 0x78, 0xbc, 0xbd, 0x4d, 0x6b, - 0xe9, 0x94, 0x69, 0x82, 0xd2, 0x59, 0xce, 0xa0, 0x53, 0x41, 0x00, 0x0d, 0x9a, 0x20, 0x66, 0xa7, - 0x4a, 0xff, 0xdf, 0x63, 0xf2, 0xeb, 0xd4, 0xd0, 0x6b, 0xf0, 0x4a, 0xcf, 0xe9, 0xbb, 0xbb, 0x43, - 0x23, 0xb0, 0xb6, 0x6c, 0xf2, 0x8c, 0x78, 0xbe, 0xe5, 0x3a, 0x9d, 0xba, 0xfe, 0x1f, 0x65, 0x7e, - 0xea, 0xab, 0xdf, 0x85, 0x69, 0xe5, 0x33, 0x12, 0x1a, 0x34, 0xd9, 0xab, 0xfe, 0xd8, 0xef, 0x16, - 0x49, 0xa6, 0x25, 0xfc, 0x59, 0xbc, 0x70, 0x59, 0x78, 0x4a, 0xbf, 0x07, 0x20, 0x7d, 0x3c, 0xe2, - 0x38, 0xc0, 0xd6, 0x41, 0x40, 0x7c, 0xfe, 0xe1, 0x08, 0x0a, 0x51, 0xc3, 0x52, 0x8e, 0x8c, 0x5f, - 0x51, 0xf0, 0xf5, 0xeb, 0x00, 0xd2, 0xa7, 0x23, 0xa8, 0xfd, 0xd0, 0xd4, 0x52, 0x12, 0x2c, 0x99, - 0xad, 0x77, 0x45, 0x0f, 0xc2, 0x8f, 0x44, 0x84, 0x2d, 0xe0, 0x51, 0x3a, 0xb9, 0x05, 0x2c, 0x47, - 0x5f, 0x05, 0x88, 0xbf, 0x93, 0xa0, 0x2f, 0x44, 0x53, 0xf4, 0x05, 0xa8, 0x99, 0x46, 0x60, 0x88, - 0xd9, 0xf1, 0xf5, 0xc4, 0x0a, 0x15, 0xb3, 0x60, 0x46, 0xa6, 0xff, 0x5e, 0x19, 0xa6, 0xe5, 0x6f, - 0x42, 0xe8, 0xef, 0x43, 0x8d, 0x7d, 0x54, 0xe2, 0x0e, 0x4c, 0xcb, 0x1f, 0x85, 0x48, 0x7d, 0x93, - 0x97, 0xe3, 0xc9, 0xac, 0x58, 0x61, 0xd0, 0x7b, 0x51, 0x93, 0x3e, 0x36, 0xd4, 0x25, 0x68, 0x8a, - 0x6f, 0x4c, 0xe8, 0xa7, 0xa1, 0x1d, 0x7f, 0x52, 0x82, 0xce, 0x11, 0x3c, 0x3f, 0x94, 0xb2, 0x48, - 0xea, 0x3f, 0xae, 0x42, 0x9d, 0x89, 0x53, 0xff, 0x56, 0x45, 0xd6, 0x44, 0xfd, 0x87, 0xe5, 0xdc, - 0x3d, 0xdf, 0x15, 0xe5, 0xf3, 0x00, 0xb3, 0xa9, 0x4f, 0xa9, 0x88, 0x2f, 0x48, 0xa8, 0x13, 0xe8, - 0x75, 0x68, 0x3a, 0x24, 0x78, 0xe1, 0x7a, 0xcf, 0x99, 0x91, 0xcc, 0xa6, 0x3f, 0x9f, 0xc2, 0xb8, - 0xd6, 0x39, 0x0d, 0x0e, 0x89, 0xd1, 0x55, 0xa8, 0x13, 0xcf, 0x73, 0x3d, 0x66, 0x3a, 0xb3, 0xa9, - 0x8f, 0x92, 0xc4, 0x5f, 0xab, 0x58, 0xa5, 0x54, 0x98, 0x13, 0xa3, 0xab, 0xf0, 0xaa, 0xcf, 0xad, - 0x85, 0xfb, 0x8e, 0xbe, 0x78, 0x3f, 0x2d, 0x66, 0x95, 0xec, 0xc2, 0xf9, 0x2f, 0x86, 0x0b, 0xa9, - 0x64, 0x60, 0x25, 0xd9, 0xf2, 0xca, 0xa8, 0x0d, 0x75, 0x56, 0x51, 0xa7, 0x22, 0x9b, 0x67, 0x15, - 0x9d, 0x80, 0x39, 0x4a, 0xb4, 0xe1, 0xb9, 0x81, 0xdb, 0x77, 0xed, 0x9e, 0xb3, 0x1c, 0x59, 0x21, - 0x5d, 0xb6, 0x3b, 0xb5, 0xf9, 0x2b, 0xd0, 0x14, 0x9d, 0xa3, 0x9c, 0x8b, 0xbc, 0x17, 0x9d, 0x12, - 0x9a, 0x86, 0xd6, 0x26, 0xb1, 0xb7, 0xd7, 0x5c, 0x3f, 0xe8, 0x94, 0xd1, 0x0c, 0xb4, 0x99, 0x55, - 0x3c, 0x76, 0xec, 0x83, 0x4e, 0x65, 0xfe, 0x03, 0x68, 0x47, 0x7d, 0x43, 0x2d, 0xa8, 0xad, 0xef, - 0xd9, 0x76, 0xa7, 0xc4, 0x9c, 0xd1, 0xc0, 0xf5, 0xc2, 0x50, 0xf4, 0xea, 0x4b, 0xba, 0xb2, 0x74, - 0xca, 0x79, 0xf6, 0x5f, 0x41, 0x1d, 0x98, 0x16, 0x95, 0xf3, 0xd6, 0x57, 0xf5, 0x7f, 0x2c, 0x43, - 0x3b, 0xfa, 0x20, 0x07, 0xf5, 0x04, 0x43, 0x69, 0xe7, 0xcf, 0x08, 0x0b, 0x09, 0xb9, 0xe7, 0x7f, - 0xdf, 0x23, 0x21, 0xfb, 0x33, 0x30, 0x2b, 0x26, 0xd9, 0x50, 0x0c, 0x7c, 0x9e, 0x4c, 0xe4, 0xce, - 0xdf, 0x8c, 0xc6, 0xbf, 0xc3, 0x8c, 0x6d, 0xd9, 0x75, 0x1c, 0xd2, 0x0f, 0x98, 0x14, 0x0e, 0xc1, - 0xd4, 0xba, 0x1b, 0x6c, 0xb8, 0xbe, 0x4f, 0x7b, 0xc6, 0x47, 0x2a, 0x2e, 0xaf, 0xcc, 0x7f, 0x03, - 0x66, 0x30, 0xf1, 0x87, 0xae, 0xe3, 0x93, 0x9f, 0xd6, 0x87, 0xbd, 0x73, 0x3f, 0xd1, 0x3d, 0xff, - 0x9d, 0x2a, 0xd4, 0x99, 0x77, 0xa6, 0xff, 0x71, 0x35, 0xf2, 0x23, 0x33, 0xee, 0xee, 0xc5, 0x37, - 0x6c, 0x64, 0xab, 0x51, 0xfc, 0x3a, 0xf9, 0x98, 0xe6, 0xb2, 0x7c, 0xb3, 0x46, 0xb6, 0x18, 0x95, - 0x43, 0xb9, 0x51, 0xf3, 0x39, 0x68, 0x0d, 0x3d, 0x77, 0xe0, 0x51, 0x07, 0xb2, 0x96, 0xf8, 0x0c, - 0x8b, 0xca, 0xb6, 0x21, 0xc8, 0x70, 0xc4, 0xa0, 0xaf, 0x43, 0x2b, 0xcc, 0xcd, 0xf9, 0xd0, 0x00, - 0x82, 0x9a, 0xe9, 0x8a, 0x45, 0xb0, 0x8a, 0xd9, 0x7f, 0x3a, 0x2e, 0x62, 0x04, 0xc3, 0xcd, 0x9f, - 0x48, 0xce, 0x7f, 0x59, 0x9c, 0x7c, 0xce, 0x40, 0x7b, 0xc5, 0x73, 0x87, 0xec, 0x45, 0x79, 0xa7, - 0x44, 0xad, 0xab, 0xb7, 0x3b, 0x74, 0x3d, 0xaa, 0xf0, 0x00, 0x8d, 0xd5, 0x97, 0xec, 0x7f, 0x85, - 0x99, 0x82, 0xb1, 0x4f, 0x28, 0x59, 0xa7, 0x8a, 0x10, 0xcc, 0x62, 0xc2, 0x4e, 0x7b, 0x84, 0xeb, - 0xd1, 0xa9, 0x51, 0xa0, 0x47, 0xd6, 0x80, 0x6f, 0xa7, 0x3a, 0xf5, 0xf9, 0xc5, 0xf0, 0x86, 0x0b, - 0x35, 0x0d, 0xbe, 0x7d, 0x9b, 0x82, 0x26, 0xde, 0x63, 0xfe, 0x4f, 0xa7, 0x4c, 0xb3, 0xa9, 0x53, - 0xcd, 0xa1, 0x97, 0x0d, 0xa7, 0x4f, 0x6c, 0xb6, 0x66, 0x46, 0x56, 0x5c, 0x5b, 0x9a, 0xfb, 0x9b, - 0x8f, 0x8e, 0x97, 0xbf, 0xfb, 0xd1, 0xf1, 0xf2, 0xf7, 0x3f, 0x3a, 0x5e, 0xfe, 0xcd, 0x1f, 0x1c, - 0x2f, 0x7d, 0xf7, 0x07, 0xc7, 0x4b, 0xff, 0xf2, 0x83, 0xe3, 0xa5, 0x0f, 0x2b, 0xc3, 0xad, 0xad, - 0x06, 0xbb, 0x9a, 0x70, 0xe5, 0xbf, 0x02, 0x00, 0x00, 0xff, 0xff, 0x9a, 0x37, 0xbb, 0xd4, 0x96, - 0x5e, 0x00, 0x00, + // 5822 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x7c, 0x49, 0x8c, 0x1c, 0xc9, + 0x75, 0x76, 0xed, 0xcb, 0xeb, 0x85, 0xc5, 0x18, 0x0e, 0x27, 0x27, 0xd9, 0xc3, 0xe1, 0x34, 0x57, + 0xcd, 0x90, 0x45, 0x0e, 0xb7, 0xa6, 0x28, 0x0e, 0xc9, 0xde, 0x38, 0x5d, 0x5c, 0x9a, 0xad, 0x68, + 0x92, 0x1a, 0x8d, 0x04, 0x41, 0xd9, 0x95, 0xd1, 0xd5, 0x29, 0x66, 0x67, 0x96, 0x32, 0xb3, 0x9b, + 0x6c, 0xe9, 0xff, 0x65, 0xc1, 0x0b, 0x0c, 0x03, 0x36, 0xec, 0x93, 0x6c, 0xf8, 0x66, 0xc3, 0x06, + 0x7c, 0x30, 0x0c, 0x1b, 0x3e, 0x58, 0x27, 0xc3, 0x80, 0x21, 0xc0, 0x2b, 0x20, 0xdf, 0x7c, 0x93, + 0x30, 0xba, 0xf8, 0x60, 0x1f, 0x64, 0x01, 0x86, 0x4f, 0x86, 0x11, 0x4b, 0x66, 0x46, 0xe4, 0x52, + 0x59, 0xa5, 0x19, 0x79, 0x81, 0xe7, 0x54, 0x15, 0x11, 0xef, 0xfb, 0x62, 0x7b, 0x2f, 0x96, 0x17, + 0x11, 0x09, 0x47, 0x87, 0x5b, 0x17, 0x87, 0x9e, 0x1b, 0xb8, 0xfe, 0x45, 0xb2, 0x4f, 0x9c, 0xc0, + 0xef, 0xb2, 0x10, 0x6a, 0x1a, 0xce, 0x41, 0x70, 0x30, 0x24, 0xfa, 0xa9, 0xe1, 0xf3, 0xc1, 0x45, + 0xdb, 0xda, 0xba, 0x38, 0xdc, 0xba, 0xb8, 0xeb, 0x9a, 0xc4, 0x0e, 0xc5, 0x59, 0x40, 0x88, 0xeb, + 0x73, 0x03, 0xd7, 0x1d, 0xd8, 0x84, 0xa7, 0x6d, 0xed, 0x6d, 0x5f, 0xf4, 0x03, 0x6f, 0xaf, 0x1f, + 0xf0, 0xd4, 0xf9, 0xef, 0xfd, 0x59, 0x19, 0xea, 0xab, 0x94, 0x1e, 0x5d, 0x86, 0xd6, 0x2e, 0xf1, + 0x7d, 0x63, 0x40, 0x7c, 0xad, 0x7c, 0xa2, 0x7a, 0x6e, 0xea, 0xf2, 0xd1, 0xae, 0xc8, 0xaa, 0xcb, + 0x24, 0xba, 0x8f, 0x78, 0x32, 0x8e, 0xe4, 0xd0, 0x1c, 0xb4, 0xfb, 0xae, 0x13, 0x90, 0x97, 0x41, + 0xcf, 0xd4, 0x2a, 0x27, 0xca, 0xe7, 0xda, 0x38, 0x8e, 0x40, 0x57, 0xa1, 0x6d, 0x39, 0x56, 0x60, + 0x19, 0x81, 0xeb, 0x69, 0xd5, 0x13, 0x65, 0x85, 0x92, 0x15, 0xb2, 0xbb, 0xd8, 0xef, 0xbb, 0x7b, + 0x4e, 0x80, 0x63, 0x41, 0xa4, 0x41, 0x33, 0xf0, 0x8c, 0x3e, 0xe9, 0x99, 0x5a, 0x8d, 0x31, 0x86, + 0x41, 0xfd, 0x27, 0x17, 0xa0, 0x29, 0xca, 0x80, 0xee, 0xc0, 0x94, 0xc1, 0xb1, 0x9b, 0x3b, 0xee, + 0x0b, 0xad, 0xcc, 0xd8, 0x8f, 0x25, 0x0a, 0x2c, 0xd8, 0xbb, 0x54, 0x64, 0xad, 0x84, 0x65, 0x04, + 0xea, 0xc1, 0xac, 0x08, 0xae, 0x90, 0xc0, 0xb0, 0x6c, 0x5f, 0xfb, 0x6b, 0x4e, 0x72, 0x3c, 0x87, + 0x44, 0x88, 0xad, 0x95, 0x70, 0x02, 0x88, 0xbe, 0x08, 0xaf, 0x88, 0x98, 0x65, 0xd7, 0xd9, 0xb6, + 0x06, 0x4f, 0x87, 0xa6, 0x11, 0x10, 0xed, 0x6f, 0x38, 0xdf, 0xa9, 0x1c, 0x3e, 0x2e, 0xdb, 0xe5, + 0xc2, 0x6b, 0x25, 0x9c, 0xc5, 0x81, 0xee, 0xc1, 0x8c, 0x88, 0x16, 0xa4, 0x7f, 0xcb, 0x49, 0xdf, + 0xc8, 0x21, 0x8d, 0xd8, 0x54, 0x18, 0xfa, 0x12, 0x1c, 0x11, 0x11, 0x0f, 0x2d, 0xe7, 0xf9, 0xf2, + 0x8e, 0x61, 0xdb, 0xc4, 0x19, 0x10, 0xed, 0xef, 0x46, 0x97, 0x51, 0x11, 0x5e, 0x2b, 0xe1, 0x4c, + 0x12, 0xf4, 0x18, 0x3a, 0xee, 0xd6, 0xd7, 0x48, 0x3f, 0x6c, 0x90, 0x4d, 0x12, 0x68, 0x1d, 0xc6, + 0xfb, 0x56, 0x82, 0xf7, 0x31, 0x13, 0x0b, 0x9b, 0xb2, 0xbb, 0x49, 0x82, 0xb5, 0x12, 0x4e, 0x81, + 0xd1, 0x53, 0x40, 0x4a, 0xdc, 0xe2, 0x2e, 0x71, 0x4c, 0xed, 0x32, 0xa3, 0x3c, 0x39, 0x9a, 0x92, + 0x89, 0xae, 0x95, 0x70, 0x06, 0x41, 0x8a, 0xf6, 0xa9, 0xe3, 0x93, 0x40, 0xbb, 0x32, 0x0e, 0x2d, + 0x13, 0x4d, 0xd1, 0xb2, 0x58, 0xda, 0xb6, 0x3c, 0x16, 0x13, 0xdb, 0x08, 0x2c, 0xd7, 0x11, 0xe5, + 0xbd, 0xca, 0x88, 0x4f, 0x67, 0x13, 0x47, 0xb2, 0x51, 0x89, 0x33, 0x49, 0xd0, 0x57, 0xe0, 0xd5, + 0x44, 0x3c, 0x26, 0xbb, 0xee, 0x3e, 0xd1, 0xae, 0x31, 0xf6, 0x33, 0x45, 0xec, 0x5c, 0x7a, 0xad, + 0x84, 0xb3, 0x69, 0xd0, 0x12, 0x4c, 0x87, 0x09, 0x8c, 0xf6, 0x3a, 0xa3, 0x9d, 0xcb, 0xa3, 0x15, + 0x64, 0x0a, 0x86, 0xda, 0x22, 0x0f, 0x2f, 0xdb, 0xae, 0x4f, 0xb4, 0xc5, 0x4c, 0x5b, 0x14, 0x14, + 0x4c, 0x84, 0xda, 0xa2, 0x84, 0x90, 0x2b, 0xe9, 0x07, 0x9e, 0xd5, 0x67, 0x05, 0xa4, 0x5a, 0xb4, + 0x30, 0xba, 0x92, 0xb1, 0xb0, 0x50, 0xa5, 0x6c, 0x1a, 0x84, 0xe1, 0x90, 0xbf, 0xb7, 0xe5, 0xf7, + 0x3d, 0x6b, 0x48, 0xe3, 0x16, 0x4d, 0x53, 0xbb, 0x35, 0x8a, 0x79, 0x53, 0x12, 0xee, 0x2e, 0x9a, + 0xb4, 0x77, 0x92, 0x04, 0xe8, 0x4b, 0x80, 0xe4, 0x28, 0xd1, 0x7c, 0xef, 0x31, 0xda, 0xcf, 0x8c, + 0x41, 0x1b, 0xb5, 0x65, 0x06, 0x0d, 0x32, 0xe0, 0x88, 0x1c, 0xbb, 0xe1, 0xfa, 0x16, 0xfd, 0xd5, + 0x6e, 0x33, 0xfa, 0x77, 0xc6, 0xa0, 0x0f, 0x21, 0x54, 0xb1, 0xb2, 0xa8, 0x92, 0x59, 0x2c, 0x53, + 0xb3, 0x26, 0x9e, 0xaf, 0xdd, 0x19, 0x3b, 0x8b, 0x10, 0x92, 0xcc, 0x22, 0x8c, 0x4f, 0x36, 0xd1, + 0xfb, 0x9e, 0xbb, 0x37, 0xf4, 0xb5, 0xbb, 0x63, 0x37, 0x11, 0x07, 0x24, 0x9b, 0x88, 0xc7, 0xa2, + 0xeb, 0xd0, 0xda, 0xb2, 0xdd, 0xfe, 0x73, 0xda, 0x99, 0x15, 0x46, 0xa9, 0x25, 0x28, 0x97, 0x68, + 0xb2, 0xe8, 0xbe, 0x48, 0x96, 0x2a, 0x2b, 0xfb, 0xbf, 0x42, 0x6c, 0x12, 0x10, 0x31, 0x2d, 0x1d, + 0xcb, 0x84, 0x72, 0x11, 0xaa, 0xac, 0x12, 0x02, 0xad, 0xc0, 0xd4, 0xb6, 0x65, 0x13, 0xff, 0xe9, + 0xd0, 0x76, 0x0d, 0x3e, 0x47, 0x4d, 0x5d, 0x3e, 0x91, 0x49, 0x70, 0x2f, 0x96, 0xa3, 0x2c, 0x12, + 0x0c, 0xdd, 0x86, 0xf6, 0xae, 0xe1, 0x3d, 0xf7, 0x7b, 0xce, 0xb6, 0xab, 0xd5, 0x33, 0x27, 0x1e, + 0xce, 0xf1, 0x28, 0x94, 0x5a, 0x2b, 0xe1, 0x18, 0x42, 0xa7, 0x2f, 0x56, 0xa8, 0x4d, 0x12, 0xdc, + 0xb3, 0x88, 0x6d, 0xfa, 0x5a, 0x83, 0x91, 0xbc, 0x99, 0x49, 0xb2, 0x49, 0x82, 0x2e, 0x17, 0xa3, + 0xd3, 0x97, 0x0a, 0x44, 0x1f, 0xc0, 0x2b, 0x61, 0xcc, 0xf2, 0x8e, 0x65, 0x9b, 0x1e, 0x71, 0x7a, + 0xa6, 0xaf, 0x35, 0x33, 0x67, 0x86, 0x98, 0x4f, 0x92, 0xa5, 0xb3, 0x57, 0x06, 0x05, 0x1d, 0x19, + 0xc3, 0x68, 0xd9, 0x24, 0xb5, 0x56, 0xe6, 0xc8, 0x18, 0x53, 0xcb, 0xc2, 0x54, 0xbb, 0xb2, 0x48, + 0x90, 0x09, 0xaf, 0x85, 0xf1, 0x4b, 0x46, 0xff, 0xf9, 0xc0, 0x73, 0xf7, 0x1c, 0x73, 0xd9, 0xb5, + 0x5d, 0x4f, 0x6b, 0x33, 0xfe, 0x73, 0xb9, 0xfc, 0x09, 0xf9, 0xb5, 0x12, 0xce, 0xa3, 0x42, 0xcb, + 0x30, 0x1d, 0x26, 0x3d, 0x21, 0x2f, 0x03, 0x0d, 0x32, 0xa7, 0xdf, 0x98, 0x9a, 0x0a, 0xd1, 0x01, + 0x52, 0x06, 0xc9, 0x24, 0x54, 0x25, 0xb4, 0xa9, 0x02, 0x12, 0x2a, 0x24, 0x93, 0xd0, 0xb0, 0x4c, + 0x42, 0xa7, 0x5f, 0x6d, 0xa6, 0x80, 0x84, 0x0a, 0xc9, 0x24, 0x34, 0x4c, 0xa7, 0xea, 0xa8, 0xa6, + 0xae, 0xfb, 0x9c, 0xea, 0x93, 0x36, 0x9b, 0x39, 0x55, 0x4b, 0xad, 0x25, 0x04, 0xe9, 0x54, 0x9d, + 0x04, 0xd3, 0x05, 0x4a, 0x18, 0xb7, 0x68, 0x5b, 0x03, 0x47, 0x3b, 0x34, 0x42, 0x97, 0x29, 0x1b, + 0x93, 0xa2, 0x0b, 0x14, 0x05, 0x86, 0xee, 0x0a, 0xb3, 0xdc, 0x24, 0xc1, 0x8a, 0xb5, 0xaf, 0x1d, + 0xce, 0x9c, 0x86, 0x62, 0x96, 0x15, 0x6b, 0x3f, 0xb2, 0x4b, 0x0e, 0x91, 0xab, 0x16, 0x4e, 0x72, + 0xda, 0xab, 0x05, 0x55, 0x0b, 0x05, 0xe5, 0xaa, 0x85, 0x71, 0x72, 0xd5, 0x1e, 0x1a, 0x01, 0x79, + 0xa9, 0xbd, 0x5e, 0x50, 0x35, 0x26, 0x25, 0x57, 0x8d, 0x45, 0xd0, 0xd9, 0x2d, 0x8c, 0x78, 0x46, + 0xbc, 0xc0, 0xea, 0x1b, 0x36, 0x6f, 0xaa, 0x53, 0x99, 0x73, 0x50, 0xcc, 0xa7, 0x48, 0xd3, 0xd9, + 0x2d, 0x93, 0x46, 0xae, 0xf8, 0x13, 0x63, 0xcb, 0x26, 0xd8, 0x7d, 0xa1, 0x9d, 0x2e, 0xa8, 0x78, + 0x28, 0x28, 0x57, 0x3c, 0x8c, 0x93, 0xc7, 0x96, 0x2f, 0x58, 0xe6, 0x80, 0x04, 0xda, 0xb9, 0x82, + 0xb1, 0x85, 0x8b, 0xc9, 0x63, 0x0b, 0x8f, 0x89, 0x46, 0x80, 0x15, 0x23, 0x30, 0xf6, 0x2d, 0xf2, + 0xe2, 0x99, 0x45, 0x5e, 0xd0, 0x89, 0xfd, 0x95, 0x11, 0x23, 0x40, 0x28, 0xdb, 0x15, 0xc2, 0xd1, + 0x08, 0x90, 0x20, 0x89, 0x46, 0x00, 0x39, 0x5e, 0x0c, 0xeb, 0x47, 0x46, 0x8c, 0x00, 0x0a, 0x7f, + 0x34, 0xc6, 0xe7, 0x51, 0x21, 0x03, 0x8e, 0xa6, 0x92, 0x1e, 0x7b, 0x26, 0xf1, 0xb4, 0x37, 0x58, + 0x26, 0x67, 0x8b, 0x33, 0x61, 0xe2, 0x6b, 0x25, 0x9c, 0x43, 0x94, 0xca, 0x62, 0xd3, 0xdd, 0xf3, + 0xfa, 0x84, 0xb6, 0xd3, 0xc9, 0x71, 0xb2, 0x88, 0xc4, 0x53, 0x59, 0x44, 0x29, 0x68, 0x1f, 0xde, + 0x88, 0x52, 0x68, 0xc6, 0x6c, 0x16, 0x65, 0xb9, 0x8b, 0x8d, 0xc5, 0x19, 0x96, 0x53, 0x77, 0x74, + 0x4e, 0x49, 0xd4, 0x5a, 0x09, 0x8f, 0xa6, 0x45, 0x07, 0x70, 0x5c, 0x11, 0xe0, 0xf3, 0xbc, 0x9c, + 0xf1, 0x59, 0x96, 0xf1, 0xc5, 0xd1, 0x19, 0xa7, 0x60, 0x6b, 0x25, 0x5c, 0x40, 0x8c, 0x86, 0x70, + 0x4c, 0x69, 0x8c, 0xd0, 0xb0, 0x85, 0x8a, 0xfc, 0x3f, 0x96, 0xef, 0xf9, 0xd1, 0xf9, 0xaa, 0x98, + 0xb5, 0x12, 0x1e, 0x45, 0x89, 0x06, 0xa0, 0x65, 0x26, 0xd3, 0x9e, 0xfc, 0x66, 0xe6, 0xb2, 0x27, + 0x27, 0x3b, 0xde, 0x97, 0xb9, 0x64, 0x99, 0x9a, 0x2f, 0x9a, 0xf3, 0xff, 0x8f, 0xab, 0xf9, 0x51, + 0x3b, 0xe6, 0x51, 0x29, 0x7d, 0x47, 0x93, 0x9e, 0x18, 0xde, 0x80, 0x04, 0xbc, 0xa1, 0x7b, 0x26, + 0xad, 0xd4, 0xb7, 0xc6, 0xe9, 0xbb, 0x14, 0x4c, 0xe9, 0xbb, 0x4c, 0x62, 0xe4, 0xc3, 0x9c, 0x22, + 0xd1, 0xf3, 0x97, 0x5d, 0xdb, 0x26, 0xfd, 0xb0, 0x35, 0x7f, 0x8e, 0x65, 0x7c, 0x61, 0x74, 0xc6, + 0x09, 0xd0, 0x5a, 0x09, 0x8f, 0x24, 0x4d, 0xd5, 0xf7, 0xb1, 0x6d, 0x26, 0x74, 0x46, 0x1b, 0x4b, + 0x57, 0x93, 0xb0, 0x54, 0x7d, 0x53, 0x12, 0x29, 0x5d, 0x95, 0x24, 0x68, 0x75, 0x5f, 0x1b, 0x47, + 0x57, 0x55, 0x4c, 0x4a, 0x57, 0xd5, 0x64, 0x3a, 0xbb, 0xed, 0xf9, 0xc4, 0x63, 0x1c, 0xf7, 0x5d, + 0xcb, 0xd1, 0xde, 0xcc, 0x9c, 0xdd, 0x9e, 0xfa, 0xc4, 0x13, 0x19, 0x51, 0x29, 0x3a, 0xbb, 0x29, + 0x30, 0x85, 0xe7, 0x21, 0xd9, 0x0e, 0xb4, 0x13, 0x45, 0x3c, 0x54, 0x4a, 0xe1, 0xa1, 0x11, 0x74, + 0xa6, 0x88, 0x22, 0x36, 0x09, 0xed, 0x15, 0x6c, 0x38, 0x03, 0xa2, 0xbd, 0x95, 0x39, 0x53, 0x48, + 0x74, 0x92, 0x30, 0x9d, 0x29, 0xb2, 0x48, 0xe8, 0xce, 0x3f, 0x8a, 0xa7, 0x2b, 0x32, 0x4e, 0x3d, + 0x9f, 0xb9, 0xf3, 0x97, 0xa8, 0x23, 0x51, 0xba, 0x07, 0x49, 0x13, 0xa0, 0xcf, 0x40, 0x6d, 0x68, + 0x39, 0x03, 0xcd, 0x64, 0x44, 0xaf, 0x24, 0x88, 0x36, 0x2c, 0x67, 0xb0, 0x56, 0xc2, 0x4c, 0x04, + 0xdd, 0x02, 0x18, 0x7a, 0x6e, 0x9f, 0xf8, 0xfe, 0x3a, 0x79, 0xa1, 0x11, 0x06, 0xd0, 0x93, 0x00, + 0x2e, 0xd0, 0x5d, 0x27, 0x74, 0x5e, 0x96, 0xe4, 0xd1, 0x2a, 0xcc, 0x88, 0x90, 0xb0, 0xf2, 0xed, + 0xcc, 0xc5, 0x5f, 0x48, 0x10, 0x7b, 0x81, 0x14, 0x14, 0xdd, 0xfb, 0x88, 0x88, 0x15, 0xd7, 0x21, + 0xda, 0x20, 0x73, 0xef, 0x13, 0x92, 0x50, 0x11, 0xba, 0xc6, 0x92, 0x10, 0x68, 0x09, 0xa6, 0x83, + 0x1d, 0x8f, 0x18, 0xe6, 0x66, 0x60, 0x04, 0x7b, 0xbe, 0xe6, 0x64, 0x2e, 0xd3, 0x78, 0x62, 0xf7, + 0x09, 0x93, 0xa4, 0x4b, 0x50, 0x19, 0x83, 0xd6, 0xa1, 0x43, 0x37, 0x42, 0x0f, 0xad, 0x5d, 0x2b, + 0xc0, 0xc4, 0xe8, 0xef, 0x10, 0x53, 0x73, 0x33, 0x37, 0x51, 0x74, 0xd9, 0xdb, 0x95, 0xe5, 0xe8, + 0x6a, 0x25, 0x89, 0x45, 0x6b, 0x30, 0x4b, 0xe3, 0x36, 0x87, 0x46, 0x9f, 0x3c, 0xf5, 0x8d, 0x01, + 0xd1, 0x86, 0x99, 0x1a, 0xc8, 0xd8, 0x62, 0x29, 0xba, 0x58, 0x51, 0x71, 0x21, 0xd3, 0x43, 0xb7, + 0x6f, 0xd8, 0x9c, 0xe9, 0xeb, 0xf9, 0x4c, 0xb1, 0x54, 0xc8, 0x14, 0xc7, 0x28, 0x75, 0xe4, 0x6d, + 0x6f, 0x6a, 0xfb, 0x05, 0x75, 0x14, 0x72, 0x4a, 0x1d, 0x45, 0x1c, 0xe5, 0x73, 0xdc, 0xc0, 0xda, + 0xb6, 0xfa, 0xc2, 0x7e, 0x1d, 0x53, 0xf3, 0x32, 0xf9, 0xd6, 0x25, 0xb1, 0xee, 0x26, 0xf7, 0x2c, + 0xa5, 0xb0, 0xe8, 0x09, 0x20, 0x39, 0x4e, 0x28, 0x95, 0xcf, 0x18, 0xe7, 0x47, 0x31, 0x46, 0x9a, + 0x95, 0x81, 0xa7, 0xa5, 0x1c, 0x1a, 0x07, 0x74, 0x7b, 0xbb, 0xe4, 0xb9, 0x86, 0xd9, 0x37, 0xfc, + 0x40, 0x0b, 0x32, 0x4b, 0xb9, 0xc1, 0xc5, 0xba, 0x91, 0x1c, 0x2d, 0x65, 0x12, 0x4b, 0xf9, 0x76, + 0xc9, 0xee, 0x16, 0xf1, 0xfc, 0x1d, 0x6b, 0x28, 0xca, 0xb8, 0x97, 0xc9, 0xf7, 0x28, 0x12, 0x8b, + 0x4b, 0x98, 0xc2, 0xd2, 0x85, 0xb8, 0x4f, 0x7b, 0x7b, 0xf3, 0xc0, 0xe9, 0x73, 0x65, 0x14, 0xa4, + 0x2f, 0x32, 0x17, 0xe2, 0x4c, 0x33, 0xba, 0xb1, 0x70, 0x4c, 0x9d, 0x4d, 0x83, 0x1e, 0xc0, 0xa1, + 0xe1, 0xe5, 0xa1, 0xc2, 0xfc, 0x32, 0x73, 0xe1, 0xbc, 0x71, 0x79, 0x23, 0x49, 0x99, 0x44, 0x2e, + 0x35, 0xa1, 0xbe, 0x6f, 0xd8, 0x7b, 0x44, 0xff, 0x93, 0x3a, 0x34, 0x85, 0x3f, 0x56, 0x5f, 0x87, + 0x1a, 0x73, 0x5e, 0x1f, 0x81, 0xba, 0xe5, 0x98, 0xe4, 0x25, 0xf3, 0x7b, 0xd7, 0x31, 0x0f, 0xa0, + 0x4b, 0xd0, 0x14, 0xfe, 0x59, 0xe1, 0x11, 0xc9, 0xf3, 0xb6, 0x87, 0x62, 0xfa, 0x87, 0xd0, 0x0c, + 0x9d, 0xd8, 0x73, 0xd0, 0x1e, 0x7a, 0x2e, 0xd5, 0xbc, 0x9e, 0xc9, 0x68, 0xdb, 0x38, 0x8e, 0x40, + 0xef, 0x42, 0xd3, 0x14, 0x6e, 0x72, 0x4e, 0xfd, 0x5a, 0x97, 0x9f, 0x2b, 0x74, 0xc3, 0x73, 0x85, + 0xee, 0x26, 0x3b, 0x57, 0xc0, 0xa1, 0x9c, 0xfe, 0xed, 0x32, 0x34, 0xb8, 0x2f, 0x5b, 0xdf, 0x87, + 0x86, 0x68, 0xa2, 0x6b, 0xd0, 0xe8, 0xb3, 0x38, 0x2d, 0xe9, 0xc7, 0x56, 0x4a, 0x28, 0x9c, 0xe3, + 0x58, 0x08, 0x53, 0x98, 0xcf, 0x47, 0x9c, 0xca, 0x48, 0x18, 0x6f, 0x41, 0x2c, 0x84, 0xff, 0xdb, + 0xf2, 0xfd, 0x8f, 0x32, 0xcc, 0xa8, 0x2e, 0xf2, 0x39, 0x68, 0xf7, 0x23, 0xa7, 0xbb, 0x68, 0xdd, + 0xbe, 0xe4, 0x40, 0x87, 0xbe, 0x6d, 0x11, 0x27, 0x60, 0xde, 0xa0, 0x4a, 0xe6, 0x22, 0x23, 0xd3, + 0x25, 0xdf, 0x5d, 0x8e, 0x60, 0x58, 0xa2, 0xd0, 0xbf, 0x05, 0x10, 0xa7, 0xa0, 0x13, 0xd1, 0xb0, + 0xbf, 0x6e, 0xec, 0x86, 0xd9, 0xcb, 0x51, 0x92, 0xc4, 0x86, 0x11, 0xec, 0x88, 0x93, 0x1c, 0x39, + 0x0a, 0x9d, 0x87, 0xc3, 0xbe, 0x35, 0x70, 0x8c, 0x60, 0xcf, 0x23, 0xcf, 0x88, 0x67, 0x6d, 0x5b, + 0xc4, 0x64, 0xce, 0xb3, 0x16, 0x4e, 0x27, 0xe8, 0xbf, 0xd2, 0x86, 0x06, 0x5f, 0xce, 0xe9, 0xff, + 0x56, 0x89, 0x74, 0x4c, 0xff, 0xcb, 0x32, 0xd4, 0xb9, 0x5b, 0x7b, 0x16, 0x2a, 0x56, 0xa8, 0x66, + 0x15, 0xcb, 0x44, 0xf7, 0x64, 0xfd, 0xaa, 0x66, 0xac, 0x75, 0xb2, 0xdc, 0xfc, 0xdd, 0x07, 0xe4, + 0xe0, 0x19, 0xb5, 0x91, 0x48, 0xe9, 0xd0, 0x51, 0x68, 0xf8, 0x7b, 0x5b, 0x3d, 0xd3, 0xd7, 0xaa, + 0x27, 0xaa, 0xe7, 0xda, 0x58, 0x84, 0xf4, 0xfb, 0xd0, 0x0a, 0x85, 0x51, 0x07, 0xaa, 0xcf, 0xc9, + 0x81, 0xc8, 0x9c, 0xfe, 0x45, 0xe7, 0x85, 0xad, 0x45, 0x66, 0x93, 0xd4, 0x6d, 0x9e, 0x8b, 0x30, + 0xc8, 0xaf, 0x42, 0x95, 0x2e, 0xa0, 0x92, 0x55, 0x98, 0xdc, 0x44, 0x72, 0x4b, 0xbb, 0x0c, 0x75, + 0x7e, 0xb4, 0x90, 0xcc, 0x03, 0x41, 0xed, 0x39, 0x39, 0xe0, 0x6d, 0xd4, 0xc6, 0xec, 0x7f, 0x2e, + 0xc9, 0x5f, 0x54, 0x61, 0x5a, 0x76, 0xa7, 0xea, 0xab, 0x50, 0x5d, 0x34, 0xd3, 0x4d, 0xaf, 0x41, + 0xd3, 0xd8, 0x0e, 0x88, 0x17, 0x9d, 0xe0, 0x85, 0x41, 0x3a, 0xca, 0x30, 0x2e, 0xd6, 0xcf, 0x6d, + 0xcc, 0x03, 0x7a, 0x17, 0x1a, 0xc2, 0x4b, 0x9d, 0x64, 0x8a, 0xe4, 0x2b, 0xb2, 0xfc, 0x7d, 0x68, + 0x45, 0x4e, 0xe7, 0x8f, 0x9b, 0xb7, 0x07, 0xad, 0xc8, 0xbb, 0x7c, 0x04, 0xea, 0x81, 0x1b, 0x18, + 0x36, 0xa3, 0xab, 0x62, 0x1e, 0xa0, 0x86, 0xe6, 0x90, 0x97, 0xc1, 0x72, 0x34, 0x0a, 0x56, 0x71, + 0x1c, 0xc1, 0x07, 0x39, 0xb2, 0xcf, 0x53, 0xab, 0x3c, 0x35, 0x8a, 0x88, 0xf3, 0xac, 0xc9, 0x79, + 0x1e, 0x40, 0x43, 0xb8, 0x9c, 0xa3, 0xf4, 0xb2, 0x94, 0x8e, 0x16, 0xa1, 0x3e, 0xa0, 0xe9, 0xa2, + 0xd7, 0xdf, 0x49, 0x0c, 0x11, 0x7c, 0x25, 0xb9, 0xec, 0x3a, 0x01, 0x55, 0x63, 0x75, 0x27, 0x8d, + 0x39, 0x92, 0x76, 0xa1, 0xc7, 0xcf, 0x0f, 0xb8, 0x45, 0x89, 0x90, 0xfe, 0xfb, 0x65, 0x68, 0x47, + 0x07, 0x36, 0xfa, 0x87, 0x79, 0xc6, 0xb3, 0x08, 0x33, 0x9e, 0x90, 0xa2, 0xa3, 0x43, 0x68, 0x42, + 0xc7, 0x12, 0x25, 0xc1, 0x92, 0x0c, 0x56, 0x11, 0xfa, 0xad, 0xdc, 0x4e, 0x9d, 0x87, 0xe9, 0x50, + 0xf4, 0x41, 0xac, 0x7a, 0x4a, 0x9c, 0xae, 0x47, 0xe8, 0x0e, 0x54, 0x2d, 0x93, 0x9f, 0x1f, 0xb7, + 0x31, 0xfd, 0xab, 0x6f, 0xc3, 0xb4, 0xec, 0xb6, 0xd5, 0x9f, 0x65, 0x5b, 0xcf, 0x1d, 0x9a, 0x8d, + 0xe4, 0x22, 0xae, 0x24, 0xd6, 0xa6, 0x61, 0x15, 0x62, 0x11, 0xac, 0x00, 0xf4, 0xd7, 0xa0, 0xce, + 0x0f, 0x93, 0x12, 0xcc, 0xfa, 0x6f, 0xf7, 0xa1, 0xce, 0x3a, 0x41, 0xbf, 0xc2, 0x0d, 0xe0, 0x3c, + 0x34, 0xd8, 0xc6, 0x28, 0x3c, 0xe6, 0x3e, 0x92, 0xd5, 0x63, 0x58, 0xc8, 0xe8, 0xcb, 0x30, 0x25, + 0xb9, 0xf1, 0xa9, 0xc6, 0xb2, 0x84, 0x48, 0x0b, 0xc2, 0x20, 0xd2, 0xa1, 0x45, 0x27, 0x4b, 0x31, + 0x80, 0xd2, 0xfa, 0x47, 0x61, 0xfd, 0x14, 0x34, 0xc4, 0x46, 0x4f, 0x17, 0xc7, 0x16, 0xbd, 0xa8, + 0x95, 0xa2, 0xb0, 0xfe, 0x65, 0x68, 0x47, 0xde, 0x7e, 0xf4, 0x18, 0xa6, 0x85, 0xb7, 0x9f, 0x6f, + 0x56, 0xa8, 0xf0, 0x6c, 0x81, 0x76, 0xd1, 0x9d, 0x09, 0x3b, 0x30, 0xe8, 0x3e, 0x39, 0x18, 0x12, + 0xac, 0x10, 0xe8, 0xbf, 0x74, 0x8e, 0xb5, 0xbc, 0x3e, 0x84, 0x56, 0xe4, 0xe2, 0x4c, 0xf6, 0xc2, + 0x02, 0x1f, 0x1a, 0x2b, 0x85, 0xfe, 0x79, 0x8e, 0xa7, 0x03, 0x30, 0x1b, 0x41, 0xf5, 0x63, 0x50, + 0x7d, 0x40, 0x0e, 0xa8, 0x85, 0xf0, 0x81, 0x54, 0x58, 0x08, 0x1f, 0x30, 0x7b, 0xd0, 0x10, 0x47, + 0x0d, 0xc9, 0xfc, 0x2e, 0x42, 0x63, 0x9b, 0x9f, 0x5e, 0x14, 0x0c, 0x99, 0x42, 0x4c, 0xbf, 0x03, + 0x53, 0xf2, 0x01, 0x43, 0x92, 0xef, 0x04, 0x4c, 0xf5, 0xa5, 0x23, 0x0c, 0xde, 0x0d, 0x72, 0x94, + 0x4e, 0x54, 0x75, 0x4c, 0x31, 0xac, 0x66, 0xea, 0xe1, 0x5b, 0x99, 0xcd, 0x3e, 0x42, 0x1b, 0x1f, + 0xc0, 0xa1, 0xe4, 0x49, 0x42, 0x32, 0xa7, 0x73, 0x70, 0x68, 0x2b, 0x71, 0x6e, 0xc1, 0xc7, 0xc0, + 0x64, 0xb4, 0xde, 0x83, 0x3a, 0xf7, 0xf4, 0x26, 0x29, 0x2e, 0x41, 0xdd, 0x60, 0x9e, 0x64, 0x0a, + 0x9c, 0x95, 0xf6, 0x93, 0x72, 0x29, 0x19, 0x14, 0x73, 0x41, 0xdd, 0x82, 0x19, 0xd5, 0x79, 0x9c, + 0xa4, 0x5c, 0x83, 0x99, 0x7d, 0xc5, 0x49, 0xcd, 0xa9, 0xe7, 0x33, 0xa9, 0x15, 0x2a, 0xac, 0x02, + 0xf5, 0x9f, 0x6f, 0x40, 0x8d, 0x9d, 0x7e, 0x24, 0xb3, 0xb8, 0x0e, 0xb5, 0x80, 0xbc, 0x0c, 0xd7, + 0xa8, 0xf3, 0x23, 0x8f, 0x52, 0xf8, 0x16, 0x9c, 0xc9, 0xa3, 0xcf, 0x42, 0xdd, 0x0f, 0x0e, 0xec, + 0xf0, 0xcc, 0xee, 0xe4, 0x68, 0xe0, 0x26, 0x15, 0xc5, 0x1c, 0x41, 0xa1, 0xcc, 0x16, 0xc4, 0x69, + 0x5d, 0x01, 0x94, 0x19, 0x21, 0xe6, 0x08, 0x74, 0x07, 0x9a, 0xfd, 0x1d, 0xd2, 0x7f, 0x4e, 0x4c, + 0x71, 0x4c, 0x77, 0x7a, 0x34, 0x78, 0x99, 0x0b, 0xe3, 0x10, 0x45, 0xf3, 0xee, 0xb3, 0xde, 0x6d, + 0x8c, 0x93, 0x37, 0xeb, 0x71, 0xcc, 0x11, 0x68, 0x15, 0xda, 0x56, 0xdf, 0x75, 0x56, 0x77, 0xdd, + 0xaf, 0x59, 0xe2, 0x3c, 0xee, 0xec, 0x68, 0x78, 0x2f, 0x14, 0xc7, 0x31, 0x32, 0xa4, 0xe9, 0xed, + 0xd2, 0x2d, 0x6d, 0x6b, 0x5c, 0x1a, 0x26, 0x8e, 0x63, 0xa4, 0x3e, 0x27, 0xfa, 0x33, 0xdb, 0xc8, + 0xef, 0x41, 0x9d, 0x35, 0x39, 0x7a, 0x4f, 0x4e, 0x9e, 0x95, 0x72, 0xca, 0x1d, 0xb1, 0x44, 0x57, + 0x45, 0x3c, 0xac, 0xfd, 0x55, 0x9e, 0xa9, 0x71, 0x78, 0x44, 0xbf, 0x71, 0x9e, 0x37, 0xa1, 0x29, + 0xba, 0x42, 0x2d, 0x70, 0x2b, 0x14, 0x78, 0x03, 0xea, 0xdc, 0x30, 0xb3, 0xeb, 0xf3, 0x16, 0xb4, + 0xa3, 0xc6, 0x1c, 0x2d, 0xc2, 0x5a, 0x27, 0x47, 0xe4, 0x97, 0x2b, 0x50, 0xe7, 0xa7, 0x40, 0xe9, + 0xa1, 0x56, 0xb6, 0x82, 0x93, 0xa3, 0x0f, 0x95, 0x64, 0x33, 0xb8, 0xc7, 0x36, 0x6a, 0x74, 0x61, + 0x1e, 0xdd, 0xaa, 0x3a, 0x57, 0x80, 0xde, 0x08, 0xe5, 0x71, 0x0c, 0x2d, 0xe8, 0xce, 0xc7, 0xd0, + 0x8e, 0x50, 0x68, 0x49, 0xed, 0xd2, 0xf3, 0x23, 0xbb, 0x22, 0x99, 0xa5, 0x20, 0xfc, 0x4e, 0x19, + 0xaa, 0x2b, 0xd6, 0x7e, 0xaa, 0x1d, 0x6e, 0x84, 0x56, 0x5d, 0x34, 0x1c, 0xac, 0x58, 0xfb, 0x8a, + 0x51, 0xeb, 0xab, 0xa1, 0xc6, 0xdd, 0x52, 0x8b, 0x77, 0x66, 0xf4, 0x0a, 0x2c, 0xa6, 0xe1, 0x05, + 0xfb, 0xf5, 0x26, 0xd4, 0xd8, 0x01, 0x6b, 0xd6, 0x38, 0x75, 0x30, 0x2c, 0x2e, 0x18, 0x73, 0xe1, + 0xb0, 0x09, 0x97, 0xc9, 0xf3, 0x71, 0xca, 0x08, 0x8a, 0xc7, 0x29, 0xee, 0x91, 0xa2, 0xa2, 0x98, + 0x23, 0x68, 0x96, 0xbb, 0xd6, 0x2e, 0x11, 0xc3, 0x54, 0x41, 0x96, 0x8f, 0xac, 0x5d, 0x82, 0x99, + 0x3c, 0xc5, 0xed, 0x18, 0xfe, 0x8e, 0x18, 0xa1, 0x0a, 0x70, 0x6b, 0x86, 0xbf, 0x83, 0x99, 0x3c, + 0xc5, 0x39, 0x74, 0x4b, 0xd8, 0x18, 0x07, 0x47, 0x77, 0x8a, 0x98, 0xc9, 0x53, 0x9c, 0x6f, 0x7d, + 0x83, 0x88, 0x31, 0xa9, 0x00, 0xb7, 0x69, 0x7d, 0x83, 0x60, 0x26, 0x1f, 0x0f, 0xe1, 0xad, 0xf1, + 0x9a, 0x46, 0x1a, 0xc2, 0x9f, 0xc0, 0x6c, 0xa0, 0x1c, 0x13, 0x88, 0x53, 0xfe, 0xf3, 0x05, 0xfd, + 0xa2, 0x60, 0x70, 0x82, 0x83, 0x1a, 0x01, 0xdb, 0x00, 0x67, 0x1b, 0xc1, 0x1b, 0x50, 0xff, 0x82, + 0x65, 0x06, 0x3b, 0x6a, 0x72, 0x5d, 0x19, 0xf2, 0x68, 0xb7, 0x4d, 0x34, 0xe4, 0xc9, 0xbd, 0xce, + 0x79, 0x56, 0xa0, 0x46, 0xd5, 0x67, 0x32, 0x3d, 0x8e, 0xb5, 0xee, 0x63, 0x0d, 0xc0, 0x72, 0x43, + 0x73, 0x9e, 0x39, 0xa8, 0x51, 0x0d, 0xc9, 0x69, 0x92, 0x39, 0xa8, 0x51, 0xbd, 0xcb, 0x4f, 0xa5, + 0xbd, 0xad, 0xa6, 0x56, 0xc3, 0xd4, 0x33, 0x30, 0xab, 0x76, 0x47, 0x0e, 0xcb, 0x9f, 0x37, 0xa1, + 0xc6, 0x6e, 0x2b, 0x24, 0x2d, 0xf2, 0xf3, 0x30, 0xc3, 0xfb, 0x6f, 0x49, 0x2c, 0xc1, 0x2b, 0x99, + 0x97, 0x95, 0xd4, 0x3b, 0x10, 0x42, 0x05, 0x04, 0x04, 0xab, 0x0c, 0xe3, 0x2f, 0x2a, 0x18, 0x95, + 0xa2, 0x91, 0xb7, 0xa2, 0xc5, 0x6b, 0xad, 0xe0, 0xaa, 0x0c, 0xc3, 0xf2, 0x25, 0x70, 0xb8, 0x92, + 0x45, 0x4b, 0xd0, 0xa2, 0x53, 0x2b, 0x6d, 0x2e, 0x61, 0xb6, 0x67, 0x46, 0xe3, 0x7b, 0x42, 0x1a, + 0x47, 0x38, 0x3a, 0xb1, 0xf7, 0x0d, 0xcf, 0x64, 0xa5, 0x12, 0x36, 0x7c, 0x76, 0x34, 0xc9, 0x72, + 0x28, 0x8e, 0x63, 0x24, 0x7a, 0x00, 0x53, 0x26, 0x89, 0xfc, 0x04, 0xc2, 0xa8, 0x3f, 0x33, 0x9a, + 0x68, 0x25, 0x06, 0x60, 0x19, 0x4d, 0xcb, 0x14, 0xee, 0x0d, 0xfd, 0xc2, 0xc5, 0x06, 0xa3, 0x8a, + 0xaf, 0x24, 0xc6, 0x48, 0xfd, 0x34, 0xcc, 0x28, 0xfd, 0xf6, 0x89, 0xae, 0x3a, 0xe4, 0xbe, 0xe4, + 0x3c, 0x0b, 0xd1, 0x16, 0xe5, 0x82, 0xba, 0xec, 0xc8, 0xdd, 0x91, 0x08, 0xe0, 0x43, 0x68, 0x85, + 0x1d, 0x83, 0xee, 0xaa, 0x65, 0x78, 0xbb, 0xb8, 0x0c, 0x51, 0x9f, 0x0a, 0xb6, 0x75, 0x68, 0x47, + 0x3d, 0x84, 0x16, 0x55, 0xba, 0x77, 0x8a, 0xe9, 0xe2, 0xde, 0x15, 0x7c, 0x18, 0xa6, 0xa4, 0x8e, + 0x42, 0xcb, 0x2a, 0xe3, 0x85, 0x62, 0x46, 0xb9, 0x9b, 0xe3, 0x55, 0x4f, 0xd4, 0x63, 0x72, 0xaf, + 0x54, 0xe3, 0x5e, 0xf9, 0xe3, 0x26, 0xb4, 0xa2, 0x1b, 0x42, 0x19, 0x7b, 0xcc, 0x3d, 0xcf, 0x2e, + 0xdc, 0x63, 0x86, 0xf8, 0xee, 0x53, 0xcf, 0xc6, 0x14, 0x41, 0xbb, 0x38, 0xb0, 0x82, 0xc8, 0x54, + 0xcf, 0x16, 0x43, 0x9f, 0x50, 0x71, 0xcc, 0x51, 0xe8, 0xb1, 0xaa, 0xe5, 0xb5, 0x11, 0x27, 0xc8, + 0x0a, 0x49, 0xae, 0xa6, 0xf7, 0xa0, 0x6d, 0xd1, 0xa5, 0xdf, 0x5a, 0x3c, 0xf3, 0xbe, 0x53, 0x4c, + 0xd7, 0x0b, 0x21, 0x38, 0x46, 0xd3, 0xb2, 0x6d, 0x1b, 0xfb, 0xd4, 0xae, 0x19, 0x59, 0x63, 0xdc, + 0xb2, 0xdd, 0x8b, 0x41, 0x58, 0x66, 0x40, 0x37, 0xc5, 0xda, 0xa5, 0x59, 0x30, 0xb2, 0xc4, 0x4d, + 0x15, 0xaf, 0x5f, 0x3e, 0x48, 0xcd, 0xb4, 0xdc, 0x8c, 0x2f, 0x8d, 0xc1, 0x32, 0x72, 0xb6, 0xa5, + 0x3d, 0xc8, 0x57, 0x46, 0xed, 0x71, 0x7b, 0x50, 0x5e, 0x1d, 0xe9, 0xc7, 0xa0, 0xfa, 0xd4, 0xb3, + 0xf3, 0xe7, 0x6a, 0xd6, 0xdd, 0x39, 0xc9, 0x27, 0x55, 0x4b, 0xc8, 0x5f, 0xd0, 0x47, 0x7d, 0x92, + 0xcb, 0x23, 0x35, 0x7a, 0x8e, 0xd0, 0x7b, 0x62, 0x42, 0xbf, 0xa6, 0xda, 0xdb, 0x9b, 0x09, 0x7b, + 0xa3, 0x16, 0xb6, 0xe1, 0x11, 0x7e, 0x49, 0x42, 0x9a, 0xc9, 0xc7, 0x9d, 0x27, 0xef, 0x87, 0xeb, + 0x8f, 0x89, 0x46, 0x8a, 0x64, 0xdb, 0x72, 0xae, 0x5f, 0x2c, 0x43, 0x2b, 0xba, 0x00, 0x96, 0xf6, + 0xce, 0xb7, 0x2c, 0x7f, 0x8d, 0x18, 0x26, 0xf1, 0x84, 0xdd, 0xbe, 0x5d, 0x78, 0xb3, 0xac, 0xdb, + 0x13, 0x08, 0x1c, 0x61, 0xf5, 0x13, 0xd0, 0x0a, 0x63, 0x73, 0x36, 0x65, 0x3f, 0xac, 0x40, 0x43, + 0x5c, 0x1d, 0x4b, 0x16, 0xe2, 0x36, 0x34, 0x6c, 0xe3, 0xc0, 0xdd, 0x0b, 0xb7, 0x4c, 0x67, 0x0a, + 0x6e, 0xa3, 0x75, 0x1f, 0x32, 0x69, 0x2c, 0x50, 0xe8, 0x73, 0x50, 0xb7, 0xad, 0x5d, 0x2b, 0x10, + 0xc3, 0xc7, 0xe9, 0x42, 0x38, 0x3b, 0x64, 0xe6, 0x18, 0x9a, 0x39, 0xbb, 0x31, 0x12, 0xde, 0xf7, + 0x2d, 0xcc, 0xfc, 0x19, 0x93, 0xc6, 0x02, 0xa5, 0xdf, 0x87, 0x06, 0x2f, 0xce, 0x64, 0x93, 0x84, + 0x5a, 0x93, 0x58, 0xd3, 0x59, 0xd9, 0x72, 0x56, 0xa5, 0xc7, 0xa1, 0xc1, 0x33, 0xcf, 0xd1, 0x9a, + 0x1f, 0xbc, 0xce, 0xf6, 0x3b, 0xb6, 0xfe, 0x30, 0x3e, 0xfc, 0xfb, 0xf8, 0x67, 0x19, 0xfa, 0x13, + 0x38, 0xb4, 0x62, 0x04, 0xc6, 0x96, 0xe1, 0x13, 0x4c, 0xfa, 0xae, 0x67, 0x66, 0xb2, 0x7a, 0x3c, + 0x49, 0x78, 0xa8, 0xf3, 0x59, 0x85, 0xdc, 0xa7, 0xae, 0xc3, 0xff, 0x39, 0xae, 0xc3, 0x3f, 0xad, + 0xe5, 0xf8, 0xf3, 0xc6, 0xf1, 0x64, 0x50, 0x85, 0x4b, 0x39, 0xf4, 0x6e, 0xaa, 0x6b, 0xef, 0x53, + 0x05, 0x48, 0x65, 0xf1, 0x7d, 0x53, 0xf5, 0xe8, 0x15, 0x61, 0x15, 0x97, 0xde, 0xdd, 0xa4, 0x4b, + 0xef, 0x4c, 0x01, 0x3a, 0xe5, 0xd3, 0xbb, 0xa9, 0xfa, 0xf4, 0x8a, 0x72, 0x97, 0x9d, 0x7a, 0xff, + 0xc7, 0xdc, 0x68, 0xbf, 0x99, 0xe3, 0xf6, 0xf9, 0xac, 0xea, 0xf6, 0x19, 0xa1, 0x35, 0x3f, 0x2b, + 0xbf, 0xcf, 0x6f, 0x35, 0x72, 0xfc, 0x3e, 0x0b, 0x8a, 0xdf, 0x67, 0x44, 0xc9, 0x92, 0x8e, 0x9f, + 0x9b, 0xaa, 0xe3, 0xe7, 0x54, 0x01, 0x52, 0xf1, 0xfc, 0x2c, 0x28, 0x9e, 0x9f, 0xa2, 0x4c, 0x25, + 0xd7, 0xcf, 0x82, 0xe2, 0xfa, 0x29, 0x02, 0x4a, 0xbe, 0x9f, 0x05, 0xc5, 0xf7, 0x53, 0x04, 0x94, + 0x9c, 0x3f, 0x0b, 0x8a, 0xf3, 0xa7, 0x08, 0x28, 0x79, 0x7f, 0x6e, 0xaa, 0xde, 0x9f, 0xe2, 0xf6, + 0x91, 0x3a, 0xfd, 0x53, 0x47, 0xcd, 0x7f, 0xa1, 0xa3, 0xe6, 0xd7, 0xaa, 0x39, 0x0e, 0x18, 0x9c, + 0xed, 0x80, 0x39, 0x9f, 0xdf, 0x93, 0xc5, 0x1e, 0x98, 0xf1, 0x67, 0x81, 0xb4, 0x0b, 0xe6, 0xbd, + 0x84, 0x0b, 0xe6, 0x74, 0x01, 0x58, 0xf5, 0xc1, 0xfc, 0xaf, 0x71, 0x32, 0xfc, 0x61, 0x63, 0xc4, + 0x7e, 0xfa, 0x86, 0xbc, 0x9f, 0x1e, 0x31, 0x93, 0xa5, 0x37, 0xd4, 0xb7, 0xd5, 0x0d, 0xf5, 0xb9, + 0x31, 0xb0, 0xca, 0x8e, 0x7a, 0x23, 0x6b, 0x47, 0xdd, 0x1d, 0x83, 0x25, 0x77, 0x4b, 0x7d, 0x3f, + 0xbd, 0xa5, 0x3e, 0x3f, 0x06, 0x5f, 0xe6, 0x9e, 0x7a, 0x23, 0x6b, 0x4f, 0x3d, 0x4e, 0xe9, 0x72, + 0x37, 0xd5, 0x9f, 0x53, 0x36, 0xd5, 0x67, 0xc7, 0x69, 0xae, 0x78, 0x72, 0xf8, 0x62, 0xce, 0xae, + 0xfa, 0xdd, 0x71, 0x68, 0x46, 0x3b, 0xb1, 0x3f, 0xdd, 0x17, 0xab, 0xd9, 0xfc, 0xc1, 0x9b, 0xd0, + 0x0a, 0x2f, 0xda, 0xe8, 0x5f, 0x87, 0x66, 0xf8, 0x5e, 0x28, 0x69, 0x39, 0x47, 0xa3, 0x4d, 0x1d, + 0x5f, 0x3d, 0x8b, 0x10, 0xba, 0x0d, 0x35, 0xfa, 0x4f, 0x98, 0xc5, 0xdb, 0xe3, 0x5d, 0xe8, 0xa1, + 0x99, 0x60, 0x86, 0xd3, 0x7f, 0x72, 0x04, 0x40, 0x7a, 0x46, 0x31, 0x6e, 0xb6, 0xef, 0xd3, 0xc1, + 0xcc, 0x0e, 0x88, 0xc7, 0x2e, 0x72, 0x15, 0x3e, 0x33, 0x88, 0x73, 0xa0, 0xda, 0x12, 0x10, 0x0f, + 0x0b, 0x38, 0x7a, 0x04, 0xad, 0xd0, 0x91, 0xaa, 0xd5, 0x18, 0xd5, 0xbb, 0x63, 0x53, 0x85, 0xae, + 0x3d, 0x1c, 0x51, 0xa0, 0x45, 0xa8, 0xf9, 0xae, 0x17, 0x68, 0x75, 0x46, 0x75, 0x61, 0x6c, 0xaa, + 0x4d, 0xd7, 0x0b, 0x30, 0x83, 0xf2, 0xaa, 0x49, 0xaf, 0x54, 0x27, 0xa9, 0x9a, 0x32, 0x62, 0xff, + 0x6b, 0x35, 0x1a, 0x43, 0x97, 0x85, 0x35, 0x72, 0x1d, 0xba, 0x38, 0x7e, 0x2f, 0xc9, 0x56, 0x89, + 0xc4, 0x22, 0x88, 0xf7, 0x04, 0x5f, 0xdf, 0xbc, 0x0d, 0x9d, 0xbe, 0xbb, 0x4f, 0x3c, 0x1c, 0x5f, + 0x71, 0x12, 0xb7, 0xd0, 0x52, 0xf1, 0x48, 0x87, 0xd6, 0x8e, 0x65, 0x92, 0x5e, 0x5f, 0x8c, 0x7f, + 0x2d, 0x1c, 0x85, 0xd1, 0x03, 0x68, 0x31, 0x1f, 0x7b, 0xe8, 0xe1, 0x9f, 0xac, 0x90, 0xdc, 0xd5, + 0x1f, 0x12, 0xd0, 0x8c, 0x58, 0xe6, 0xf7, 0xac, 0x80, 0xb5, 0x61, 0x0b, 0x47, 0x61, 0x5a, 0x60, + 0x76, 0x8f, 0x4c, 0x2e, 0x70, 0x93, 0x17, 0x38, 0x19, 0x8f, 0xae, 0xc2, 0xab, 0x2c, 0x2e, 0xb1, + 0xc5, 0xe4, 0xae, 0xfa, 0x16, 0xce, 0x4e, 0x64, 0xf7, 0xe6, 0x8c, 0x01, 0xbf, 0x93, 0xce, 0x9c, + 0x77, 0x75, 0x1c, 0x47, 0xa0, 0xf3, 0x70, 0xd8, 0x24, 0xdb, 0xc6, 0x9e, 0x1d, 0x3c, 0x21, 0xbb, + 0x43, 0xdb, 0x08, 0x48, 0xcf, 0x64, 0x0f, 0x65, 0xdb, 0x38, 0x9d, 0x80, 0x2e, 0xc1, 0x2b, 0x22, + 0x92, 0x9b, 0x31, 0xed, 0x8d, 0x9e, 0xc9, 0xde, 0x8d, 0xb6, 0x71, 0x56, 0x92, 0xfe, 0x83, 0x1a, + 0xed, 0x74, 0xa6, 0xda, 0xef, 0x43, 0xd5, 0x30, 0x4d, 0x31, 0x6d, 0x5e, 0x99, 0xd0, 0x40, 0xc4, + 0x5b, 0x70, 0xca, 0x80, 0x36, 0xa2, 0x2b, 0x77, 0x7c, 0xe2, 0xbc, 0x3e, 0x29, 0x57, 0xf4, 0x7e, + 0x5f, 0xf0, 0x50, 0xc6, 0x3d, 0x7e, 0xe9, 0xbb, 0xfa, 0xd3, 0x31, 0x46, 0x77, 0xc1, 0x05, 0x0f, + 0xba, 0x0f, 0x35, 0x56, 0x42, 0x3e, 0xb1, 0x5e, 0x9d, 0x94, 0xef, 0x11, 0x2f, 0x1f, 0xe3, 0xd0, + 0xfb, 0xfc, 0xee, 0x9b, 0x74, 0xe1, 0xb2, 0xac, 0x5e, 0xb8, 0x5c, 0x82, 0xba, 0x15, 0x90, 0xdd, + 0xf4, 0xfd, 0xdb, 0x91, 0xaa, 0x2a, 0x46, 0x1e, 0x0e, 0x1d, 0x79, 0x0f, 0xf0, 0xc3, 0xe8, 0x2e, + 0x76, 0x72, 0x3c, 0xbc, 0x0b, 0x35, 0x0a, 0x4f, 0xad, 0x25, 0xc7, 0xc9, 0x98, 0x21, 0xf5, 0xcb, + 0x50, 0xa3, 0x95, 0x1d, 0x51, 0x3b, 0x51, 0x9e, 0x4a, 0x54, 0x9e, 0xa5, 0x29, 0x68, 0xbb, 0x43, + 0xe2, 0x31, 0xc3, 0xd0, 0xff, 0xa5, 0x26, 0x5d, 0x8a, 0xeb, 0xc9, 0x3a, 0x76, 0x6d, 0xe2, 0x91, + 0x53, 0xd6, 0x32, 0x9c, 0xd0, 0xb2, 0x1b, 0x93, 0xb3, 0xa5, 0xf4, 0x0c, 0x27, 0xf4, 0xec, 0xa7, + 0xe0, 0x4c, 0x69, 0xda, 0x43, 0x45, 0xd3, 0xae, 0x4f, 0xce, 0xa8, 0xe8, 0x1a, 0x29, 0xd2, 0xb5, + 0x15, 0x55, 0xd7, 0xba, 0xe3, 0x75, 0x79, 0x34, 0x35, 0x8d, 0xa1, 0x6d, 0x5f, 0xce, 0xd5, 0xb6, + 0x25, 0x45, 0xdb, 0x26, 0xcd, 0xfa, 0x13, 0xd2, 0xb7, 0x7f, 0xa8, 0x41, 0x8d, 0x4e, 0x8f, 0x68, + 0x55, 0xd6, 0xb5, 0x77, 0x27, 0x9a, 0x5a, 0x65, 0x3d, 0x5b, 0x4f, 0xe8, 0xd9, 0xd5, 0xc9, 0x98, + 0x52, 0x3a, 0xb6, 0x9e, 0xd0, 0xb1, 0x09, 0xf9, 0x52, 0xfa, 0xb5, 0xa6, 0xe8, 0xd7, 0xe5, 0xc9, + 0xd8, 0x14, 0xdd, 0x32, 0x8a, 0x74, 0xeb, 0xae, 0xaa, 0x5b, 0x63, 0xae, 0xde, 0xd8, 0x5a, 0x65, + 0x0c, 0xbd, 0xfa, 0x20, 0x57, 0xaf, 0x6e, 0x2b, 0x7a, 0x35, 0x49, 0xb6, 0x9f, 0x90, 0x4e, 0x5d, + 0xe5, 0x8b, 0x4e, 0x71, 0xcf, 0x78, 0xcc, 0x45, 0xa7, 0x7e, 0x0d, 0xda, 0xf1, 0x3b, 0xf4, 0x8c, + 0xeb, 0xf9, 0x5c, 0x2c, 0xcc, 0x35, 0x0c, 0xea, 0x57, 0xa0, 0x1d, 0xbf, 0x2d, 0xcf, 0xc8, 0xcb, + 0x67, 0x89, 0x02, 0x25, 0x42, 0xfa, 0x2a, 0x1c, 0x4e, 0xbf, 0x7c, 0xcd, 0xf0, 0xc3, 0x4b, 0x77, + 0xcb, 0xc3, 0xa7, 0x28, 0x52, 0x94, 0xfe, 0x02, 0x66, 0x13, 0x6f, 0x59, 0x27, 0xe6, 0x40, 0x57, + 0xa4, 0x25, 0x72, 0x55, 0xec, 0xc1, 0xb3, 0x6f, 0xcb, 0xc7, 0x0b, 0x61, 0x7d, 0x05, 0x66, 0x0b, + 0x0a, 0x3f, 0xce, 0x65, 0xf9, 0xaf, 0xc2, 0xd4, 0xa8, 0xb2, 0x7f, 0x02, 0x97, 0xf9, 0x03, 0xe8, + 0xa4, 0xde, 0xe1, 0x27, 0xb3, 0xd9, 0x00, 0x18, 0x44, 0x32, 0x42, 0x69, 0x2f, 0x4d, 0xf0, 0x74, + 0x81, 0xe1, 0xb0, 0xc4, 0xa1, 0xff, 0x5e, 0x19, 0x0e, 0xa7, 0x1f, 0xe1, 0x8f, 0xbb, 0xf9, 0xd1, + 0xa0, 0xc9, 0xb8, 0xa2, 0x17, 0x1f, 0x61, 0x10, 0x3d, 0x82, 0x69, 0xdf, 0xb6, 0xfa, 0x64, 0x79, + 0xc7, 0x70, 0x06, 0xc4, 0x17, 0x3b, 0x9a, 0x82, 0x87, 0xf4, 0x9b, 0x31, 0x02, 0x2b, 0x70, 0xfd, + 0x05, 0x4c, 0x49, 0x89, 0xe8, 0x16, 0x54, 0xdc, 0x61, 0xea, 0x5e, 0x63, 0x3e, 0xe7, 0xe3, 0xd0, + 0xde, 0x70, 0xc5, 0x1d, 0xa6, 0x4d, 0x52, 0x36, 0xdf, 0xaa, 0x62, 0xbe, 0xfa, 0x03, 0x38, 0x9c, + 0x7e, 0xe7, 0x9e, 0x6c, 0x9e, 0x33, 0x29, 0x2f, 0x01, 0x6f, 0xa6, 0xe4, 0x96, 0x7f, 0x01, 0x0e, + 0x25, 0x5f, 0xaf, 0x67, 0xbc, 0xc6, 0x89, 0x1f, 0x35, 0x85, 0xee, 0xfa, 0xf9, 0x5f, 0x2d, 0xc3, + 0xac, 0x5a, 0x11, 0x74, 0x14, 0x90, 0x1a, 0xb3, 0xee, 0x3a, 0xa4, 0x53, 0x42, 0xaf, 0xc2, 0x61, + 0x35, 0x7e, 0xd1, 0x34, 0x3b, 0xe5, 0xb4, 0x38, 0x1d, 0xb6, 0x3a, 0x15, 0xa4, 0xc1, 0x91, 0x44, + 0x0b, 0xb1, 0x41, 0xb4, 0x53, 0x45, 0xaf, 0xc3, 0xab, 0xc9, 0x94, 0xa1, 0x6d, 0xf4, 0x49, 0xa7, + 0xa6, 0xff, 0xb8, 0x02, 0xb5, 0xa7, 0x3e, 0xf1, 0xf4, 0x7f, 0xaa, 0x84, 0xaf, 0x34, 0x6e, 0x40, + 0x8d, 0x3d, 0x2c, 0x97, 0x5e, 0x33, 0x96, 0x13, 0xaf, 0x19, 0x95, 0x17, 0x71, 0xf1, 0x6b, 0xc6, + 0x1b, 0x50, 0x63, 0x4f, 0xc9, 0x27, 0x47, 0xfe, 0x42, 0x19, 0xda, 0xf1, 0xb3, 0xee, 0x89, 0xf1, + 0xf2, 0xab, 0x90, 0x8a, 0xfa, 0x2a, 0xe4, 0x6d, 0xa8, 0x7b, 0xec, 0xfd, 0x06, 0x1f, 0x65, 0x92, + 0x6f, 0x4d, 0x58, 0x86, 0x98, 0x8b, 0xe8, 0x04, 0xa6, 0xe4, 0x47, 0xeb, 0x93, 0x17, 0xe3, 0x94, + 0xf8, 0x62, 0x4d, 0xcf, 0xf4, 0x17, 0x3d, 0xcf, 0x38, 0x10, 0x8a, 0xa9, 0x46, 0xea, 0x73, 0x50, + 0xdb, 0xb0, 0x9c, 0x41, 0xf6, 0x23, 0x52, 0xfd, 0xbb, 0x65, 0x68, 0x8a, 0xcb, 0xbb, 0xfa, 0x02, + 0x54, 0xd7, 0xc9, 0x0b, 0x5a, 0x10, 0x71, 0x6d, 0x38, 0x55, 0x90, 0x47, 0xac, 0x16, 0x42, 0x1e, + 0x87, 0x62, 0xfa, 0xcd, 0x68, 0x9a, 0x9c, 0x1c, 0x7b, 0x03, 0x6a, 0xec, 0xad, 0xf9, 0xe4, 0xc8, + 0xdf, 0x69, 0x41, 0x83, 0xbf, 0xc4, 0xd4, 0xbf, 0xd3, 0x82, 0x06, 0x7f, 0x7f, 0x8e, 0x6e, 0x43, + 0xd3, 0xdf, 0xdb, 0xdd, 0x35, 0xbc, 0x03, 0x2d, 0xfb, 0x63, 0x87, 0xca, 0x73, 0xf5, 0xee, 0x26, + 0x97, 0xc5, 0x21, 0x08, 0x5d, 0x83, 0x5a, 0xdf, 0xd8, 0x26, 0xa9, 0xe3, 0xdc, 0x2c, 0xf0, 0xb2, + 0xb1, 0x4d, 0x30, 0x13, 0x47, 0x77, 0xa1, 0x25, 0xba, 0xc5, 0x17, 0xfe, 0x9c, 0xd1, 0xf9, 0x86, + 0x9d, 0x19, 0xa1, 0xf4, 0xfb, 0xd0, 0x14, 0x85, 0x41, 0x77, 0xa2, 0x77, 0xa8, 0x49, 0xcf, 0x73, + 0x66, 0x15, 0xa2, 0x87, 0xc9, 0xd1, 0x8b, 0xd4, 0xef, 0x55, 0xa0, 0x46, 0x0b, 0xf7, 0xb1, 0x99, + 0xd0, 0x71, 0x00, 0xdb, 0xf0, 0x83, 0x8d, 0x3d, 0xdb, 0x26, 0xa6, 0x78, 0x61, 0x27, 0xc5, 0xa0, + 0x73, 0x70, 0x88, 0x87, 0xfc, 0x9d, 0xcd, 0xbd, 0x7e, 0x9f, 0x44, 0xcf, 0x44, 0x93, 0xd1, 0x68, + 0x11, 0xea, 0xec, 0x8b, 0x68, 0x62, 0x55, 0xf8, 0x4e, 0x61, 0xcb, 0x76, 0x37, 0x2c, 0x47, 0x94, + 0x86, 0x23, 0x75, 0x17, 0xda, 0x51, 0x1c, 0x35, 0xc2, 0xa1, 0xe5, 0x38, 0x96, 0x33, 0x10, 0x1a, + 0x1d, 0x06, 0xe9, 0xa4, 0x43, 0xff, 0x8a, 0xf2, 0xd6, 0xb1, 0x08, 0xd1, 0xf8, 0x6d, 0xc3, 0xb2, + 0x45, 0x11, 0xeb, 0x58, 0x84, 0x28, 0xd3, 0x9e, 0x78, 0xb5, 0x5f, 0x63, 0x15, 0x0c, 0x83, 0xfa, + 0x47, 0xe5, 0xe8, 0x31, 0x76, 0xd6, 0xe3, 0xcc, 0x94, 0x2f, 0x69, 0x4e, 0x76, 0x68, 0xf3, 0x09, + 0x41, 0x72, 0x51, 0x1f, 0x85, 0x86, 0xeb, 0xd8, 0x96, 0x43, 0x84, 0xef, 0x48, 0x84, 0x12, 0x6d, + 0x5c, 0x4f, 0xb5, 0xb1, 0x48, 0x5f, 0x35, 0x2d, 0x5a, 0xc4, 0x46, 0x9c, 0xce, 0x63, 0xd0, 0x7b, + 0xd0, 0x34, 0xc9, 0xbe, 0xd5, 0x27, 0xbe, 0xd6, 0x64, 0xaa, 0x77, 0x72, 0x64, 0xdb, 0xae, 0x30, + 0x59, 0x1c, 0x62, 0xf4, 0x00, 0x1a, 0x3c, 0x2a, 0xaa, 0x52, 0x59, 0xaa, 0x52, 0x5c, 0xe8, 0xca, + 0x88, 0x42, 0x57, 0x0b, 0x0a, 0x5d, 0x4b, 0x16, 0x7a, 0xde, 0x04, 0x88, 0xd5, 0x0d, 0x4d, 0x41, + 0xf3, 0xa9, 0xf3, 0xdc, 0x71, 0x5f, 0x38, 0x9d, 0x12, 0x0d, 0x3c, 0xde, 0xde, 0xa6, 0xb9, 0x74, + 0xca, 0x34, 0x40, 0xe5, 0x2c, 0x67, 0xd0, 0xa9, 0x20, 0x80, 0x06, 0x0d, 0x10, 0xb3, 0x53, 0xa5, + 0xff, 0xef, 0xb1, 0xfe, 0xeb, 0xd4, 0xd0, 0x6b, 0xf0, 0x4a, 0xcf, 0xe9, 0xbb, 0xbb, 0x43, 0x23, + 0xb0, 0xb6, 0x6c, 0xf2, 0x8c, 0x78, 0xbe, 0xe5, 0x3a, 0x9d, 0xba, 0xfe, 0xef, 0x65, 0x7e, 0xea, + 0xab, 0xdf, 0x85, 0x69, 0xe5, 0x33, 0x12, 0x1a, 0x34, 0xd9, 0xab, 0xfe, 0x78, 0xdd, 0x2d, 0x82, + 0x4c, 0x4b, 0xf8, 0xb3, 0x78, 0xb1, 0x64, 0xe1, 0x21, 0xfd, 0x1e, 0x80, 0xf4, 0xf1, 0x88, 0xe3, + 0x00, 0x5b, 0x07, 0x01, 0xf1, 0xf9, 0x87, 0x23, 0x28, 0x45, 0x0d, 0x4b, 0x31, 0x32, 0x7f, 0x45, + 0xe1, 0xd7, 0xaf, 0x03, 0x48, 0x9f, 0x8e, 0xa0, 0xf6, 0x43, 0x43, 0x4b, 0x49, 0xb2, 0x64, 0xb4, + 0xde, 0x15, 0x35, 0x08, 0x3f, 0x12, 0x11, 0x96, 0x80, 0x7b, 0xe9, 0xe4, 0x12, 0xb0, 0x18, 0x7d, + 0x15, 0x20, 0xfe, 0x4e, 0x82, 0xbe, 0x10, 0x0d, 0xd1, 0x17, 0xa0, 0x66, 0x1a, 0x81, 0x21, 0x46, + 0xc7, 0xd7, 0x13, 0x33, 0x54, 0x0c, 0xc1, 0x4c, 0x4c, 0xff, 0xdd, 0x32, 0x4c, 0xcb, 0xdf, 0x84, + 0xd0, 0xdf, 0x87, 0x1a, 0xfb, 0xa8, 0xc4, 0x1d, 0x98, 0x96, 0x3f, 0x0a, 0x91, 0xfa, 0x26, 0x2f, + 0xe7, 0x93, 0xa1, 0x58, 0x01, 0xe8, 0xbd, 0xa8, 0x48, 0x1f, 0x9b, 0xea, 0x12, 0x34, 0xc5, 0x37, + 0x26, 0xf4, 0xd3, 0xd0, 0x8e, 0x3f, 0x29, 0x41, 0xc7, 0x08, 0x1e, 0x1f, 0xf6, 0xb2, 0x08, 0xea, + 0xff, 0x5c, 0x85, 0x3a, 0xeb, 0x4e, 0xfd, 0xdb, 0x15, 0x59, 0x13, 0xf5, 0x1f, 0x97, 0x73, 0xf7, + 0x7c, 0x57, 0x94, 0xcf, 0x03, 0xcc, 0xa6, 0x3e, 0xa5, 0x22, 0xbe, 0x20, 0xa1, 0x0e, 0xa0, 0xd7, + 0xa1, 0xe9, 0x90, 0xe0, 0x85, 0xeb, 0x3d, 0x67, 0x46, 0x32, 0x9b, 0xfe, 0x7c, 0x0a, 0x43, 0xad, + 0x73, 0x19, 0x1c, 0x0a, 0xa3, 0xab, 0x50, 0x27, 0x9e, 0xe7, 0x7a, 0xcc, 0x74, 0x66, 0x53, 0x1f, + 0x25, 0x89, 0xbf, 0x56, 0xb1, 0x4a, 0xa5, 0x30, 0x17, 0x46, 0x57, 0xe1, 0x55, 0x9f, 0x5b, 0x0b, + 0x5f, 0x3b, 0xfa, 0xe2, 0xfd, 0xb4, 0x18, 0x55, 0xb2, 0x13, 0xe7, 0x3f, 0x1f, 0x4e, 0xa4, 0x92, + 0x81, 0x95, 0x64, 0xcb, 0x2b, 0xa3, 0x36, 0xd4, 0x59, 0x46, 0x9d, 0x8a, 0x6c, 0x9e, 0x55, 0xb6, + 0x3c, 0x3c, 0x70, 0xfa, 0x1b, 0x9e, 0x1b, 0xb8, 0x7d, 0xd7, 0xe6, 0x2d, 0xd7, 0xa9, 0xcd, 0x5f, + 0x81, 0xa6, 0xa8, 0x12, 0x95, 0x5f, 0xe4, 0x65, 0xef, 0x94, 0xd0, 0x34, 0xb4, 0x36, 0x89, 0xbd, + 0xbd, 0xe6, 0xfa, 0x41, 0xa7, 0x8c, 0x66, 0xa0, 0xcd, 0x6c, 0xe1, 0xb1, 0x63, 0x1f, 0x74, 0x2a, + 0xf3, 0x1f, 0x40, 0x3b, 0xaa, 0x11, 0x6a, 0x41, 0x6d, 0x7d, 0xcf, 0xb6, 0x3b, 0x25, 0x96, 0x47, + 0xe0, 0x7a, 0xa1, 0x03, 0x7a, 0xf5, 0x25, 0x9d, 0x4f, 0x3a, 0xe5, 0x3c, 0xab, 0xaf, 0xa0, 0x0e, + 0x4c, 0x8b, 0xcc, 0x79, 0x99, 0xab, 0xfa, 0xdf, 0x97, 0xa1, 0x1d, 0x7d, 0x86, 0x83, 0xae, 0xff, + 0xc2, 0x3e, 0xce, 0x1f, 0x07, 0x16, 0x12, 0xbd, 0x9d, 0xff, 0x55, 0x8f, 0x44, 0x8f, 0x9f, 0x81, + 0x59, 0x31, 0xb4, 0x86, 0x8d, 0xcf, 0x47, 0xc7, 0x44, 0xec, 0xfc, 0xcd, 0xa8, 0xd5, 0x3b, 0xcc, + 0xc4, 0x96, 0x5d, 0xc7, 0x21, 0xfd, 0x80, 0xb5, 0xfd, 0x21, 0x98, 0x5a, 0x77, 0x83, 0x0d, 0xd7, + 0xf7, 0x69, 0xcd, 0x78, 0x4b, 0xc5, 0xe9, 0x95, 0xf9, 0x6f, 0xc2, 0x0c, 0x26, 0xfe, 0xd0, 0x75, + 0x7c, 0xf2, 0xb3, 0xfa, 0x9c, 0x77, 0xee, 0x87, 0xb9, 0xe7, 0xbf, 0x5b, 0x85, 0x3a, 0x5b, 0x93, + 0xe9, 0x7f, 0x54, 0x8d, 0x56, 0x8f, 0x19, 0x37, 0xf6, 0xe2, 0x7b, 0x35, 0xb2, 0xad, 0x28, 0xab, + 0x39, 0xf9, 0x70, 0xe6, 0xb2, 0x7c, 0x9f, 0x46, 0xb6, 0x13, 0x15, 0xa1, 0xdc, 0xa3, 0xf9, 0x1c, + 0xb4, 0x86, 0x9e, 0x3b, 0xf0, 0xe8, 0xb2, 0xb1, 0x96, 0xf8, 0xf8, 0x8a, 0x0a, 0xdb, 0x10, 0x62, + 0x38, 0x02, 0xe8, 0xeb, 0xd0, 0x0a, 0x63, 0x73, 0x3e, 0x2f, 0x80, 0xa0, 0x66, 0xba, 0x62, 0xea, + 0xab, 0x62, 0xf6, 0x9f, 0xb6, 0x8b, 0x68, 0xc1, 0x70, 0xcb, 0x27, 0x82, 0xf3, 0x5f, 0x11, 0xe7, + 0x9d, 0x33, 0xd0, 0x5e, 0xf1, 0xdc, 0x21, 0x7b, 0x47, 0xde, 0x29, 0x51, 0x9b, 0xea, 0xed, 0x0e, + 0x5d, 0x8f, 0x2a, 0x3c, 0x40, 0x63, 0xf5, 0x25, 0xfb, 0x5f, 0x61, 0xa6, 0x60, 0xec, 0x13, 0x2a, + 0xd6, 0xa9, 0x22, 0x04, 0xb3, 0x98, 0xb0, 0x33, 0x1e, 0xb1, 0xe0, 0xe8, 0xd4, 0x28, 0xd1, 0x23, + 0x6b, 0xc0, 0x37, 0x51, 0x9d, 0xfa, 0xfc, 0x62, 0x78, 0xaf, 0x85, 0x9a, 0x06, 0xdf, 0xb4, 0x4d, + 0x41, 0x13, 0xef, 0xb1, 0x55, 0x4f, 0xa7, 0x4c, 0xa3, 0xe9, 0x52, 0x9a, 0x53, 0x2f, 0x1b, 0x4e, + 0x9f, 0xd8, 0x6c, 0xa6, 0x8c, 0x6c, 0xb7, 0xb6, 0x34, 0xf7, 0x57, 0x1f, 0x1d, 0x2f, 0x7f, 0xff, + 0xa3, 0xe3, 0xe5, 0x1f, 0x7e, 0x74, 0xbc, 0xfc, 0x1b, 0x3f, 0x3a, 0x5e, 0xfa, 0xfe, 0x8f, 0x8e, + 0x97, 0xfe, 0xf1, 0x47, 0xc7, 0x4b, 0x1f, 0x56, 0x86, 0x5b, 0x5b, 0x0d, 0x76, 0x21, 0xe1, 0xca, + 0x7f, 0x06, 0x00, 0x00, 0xff, 0xff, 0xbe, 0xe7, 0xb2, 0xde, 0x8c, 0x5e, 0x00, 0x00, } func (m *Event) Marshal() (dAtA []byte, err error) { diff --git a/pb/protos/events.proto b/pb/protos/events.proto index 06d41fb6c..9942a2d77 100644 --- a/pb/protos/events.proto +++ b/pb/protos/events.proto @@ -1086,7 +1086,7 @@ message Event { Syncing = 1; Error = 2; Offline = 3; - SyncProtocolInCompatibleMode = 4; + SyncProtocolUpdate = 4; } enum Network { Anytype = 0; From cdae7cc651a68c925660f0533b99a83fbbe3eccb Mon Sep 17 00:00:00 2001 From: AnastasiaShemyakinskaya Date: Thu, 22 Aug 2024 13:17:47 +0200 Subject: [PATCH 54/78] GO-3921: fix comments Signed-off-by: AnastasiaShemyakinskaya --- core/compatibility/checker.go | 50 ----- core/compatibility/checker_test.go | 56 ----- .../mock_compatibility/mock_Checker.go | 206 ------------------ .../syncstatus/spacesyncstatus/spacestatus.go | 48 ++-- space/spacecore/peermanager/manager.go | 14 -- space/spacecore/peermanager/manager_test.go | 22 +- 6 files changed, 28 insertions(+), 368 deletions(-) delete mode 100644 core/compatibility/checker.go delete mode 100644 core/compatibility/checker_test.go delete mode 100644 core/compatibility/mock_compatibility/mock_Checker.go diff --git a/core/compatibility/checker.go b/core/compatibility/checker.go deleted file mode 100644 index 0590c5f3b..000000000 --- a/core/compatibility/checker.go +++ /dev/null @@ -1,50 +0,0 @@ -package compatibility - -import ( - "sync" - - "github.com/anyproto/any-sync/app" - "github.com/anyproto/any-sync/net/secureservice" -) - -const CName = "core.compatibility.checker" - -type Checker interface { - app.Component - AddPeerVersion(peerId string, version uint32) - IsVersionCompatibleWithPeers() bool -} - -func New() Checker { - return &compatibilityChecker{peersToVersions: make(map[string]uint32, 0)} -} - -type compatibilityChecker struct { - peersToVersions map[string]uint32 - sync.Mutex -} - -func (i *compatibilityChecker) Init(a *app.App) (err error) { - return -} - -func (i *compatibilityChecker) AddPeerVersion(peerId string, version uint32) { - i.Lock() - defer i.Unlock() - i.peersToVersions[peerId] = version -} - -func (i *compatibilityChecker) IsVersionCompatibleWithPeers() bool { - i.Lock() - defer i.Unlock() - for _, version := range i.peersToVersions { - if version != secureservice.ProtoVersion { - return false - } - } - return true -} - -func (i *compatibilityChecker) Name() (name string) { - return CName -} diff --git a/core/compatibility/checker_test.go b/core/compatibility/checker_test.go deleted file mode 100644 index 4bd43a6fa..000000000 --- a/core/compatibility/checker_test.go +++ /dev/null @@ -1,56 +0,0 @@ -package compatibility - -import ( - "testing" - - "github.com/anyproto/any-sync/net/secureservice" - "github.com/stretchr/testify/assert" -) - -func TestCompatibilityChecker_AddPeerVersion(t *testing.T) { - t.Run("add peer version", func(t *testing.T) { - // given - checker := &compatibilityChecker{peersToVersions: map[string]uint32{}} - - // when - checker.AddPeerVersion("id", 1) - - // then - assert.Equal(t, uint32(1), checker.peersToVersions["id"]) - }) -} - -func TestCompatibilityChecker_IsVersionCompatibleWithPeers(t *testing.T) { - t.Run("no versions", func(t *testing.T) { - // given - checker := &compatibilityChecker{peersToVersions: map[string]uint32{}} - - // when - compatibleWithPeers := checker.IsVersionCompatibleWithPeers() - - // then - assert.True(t, compatibleWithPeers) - }) - t.Run("versions compatible", func(t *testing.T) { - // given - checker := &compatibilityChecker{peersToVersions: map[string]uint32{}} - - // when - checker.AddPeerVersion("id", secureservice.ProtoVersion) - compatibleWithPeers := checker.IsVersionCompatibleWithPeers() - - // then - assert.True(t, compatibleWithPeers) - }) - t.Run("versions is not compatible", func(t *testing.T) { - // given - checker := &compatibilityChecker{peersToVersions: map[string]uint32{}} - - // when - checker.AddPeerVersion("id", 1) - compatibleWithPeers := checker.IsVersionCompatibleWithPeers() - - // then - assert.False(t, compatibleWithPeers) - }) -} diff --git a/core/compatibility/mock_compatibility/mock_Checker.go b/core/compatibility/mock_compatibility/mock_Checker.go deleted file mode 100644 index a4a0bfd27..000000000 --- a/core/compatibility/mock_compatibility/mock_Checker.go +++ /dev/null @@ -1,206 +0,0 @@ -// Code generated by mockery. DO NOT EDIT. - -package mock_compatibility - -import ( - app "github.com/anyproto/any-sync/app" - - mock "github.com/stretchr/testify/mock" -) - -// MockChecker is an autogenerated mock type for the Checker type -type MockChecker struct { - mock.Mock -} - -type MockChecker_Expecter struct { - mock *mock.Mock -} - -func (_m *MockChecker) EXPECT() *MockChecker_Expecter { - return &MockChecker_Expecter{mock: &_m.Mock} -} - -// AddPeerVersion provides a mock function with given fields: peerId, version -func (_m *MockChecker) AddPeerVersion(peerId string, version uint32) { - _m.Called(peerId, version) -} - -// MockChecker_AddPeerVersion_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'AddPeerVersion' -type MockChecker_AddPeerVersion_Call struct { - *mock.Call -} - -// AddPeerVersion is a helper method to define mock.On call -// - peerId string -// - version uint32 -func (_e *MockChecker_Expecter) AddPeerVersion(peerId interface{}, version interface{}) *MockChecker_AddPeerVersion_Call { - return &MockChecker_AddPeerVersion_Call{Call: _e.mock.On("AddPeerVersion", peerId, version)} -} - -func (_c *MockChecker_AddPeerVersion_Call) Run(run func(peerId string, version uint32)) *MockChecker_AddPeerVersion_Call { - _c.Call.Run(func(args mock.Arguments) { - run(args[0].(string), args[1].(uint32)) - }) - return _c -} - -func (_c *MockChecker_AddPeerVersion_Call) Return() *MockChecker_AddPeerVersion_Call { - _c.Call.Return() - return _c -} - -func (_c *MockChecker_AddPeerVersion_Call) RunAndReturn(run func(string, uint32)) *MockChecker_AddPeerVersion_Call { - _c.Call.Return(run) - return _c -} - -// Init provides a mock function with given fields: a -func (_m *MockChecker) Init(a *app.App) error { - ret := _m.Called(a) - - if len(ret) == 0 { - panic("no return value specified for Init") - } - - var r0 error - if rf, ok := ret.Get(0).(func(*app.App) error); ok { - r0 = rf(a) - } else { - r0 = ret.Error(0) - } - - return r0 -} - -// MockChecker_Init_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'Init' -type MockChecker_Init_Call struct { - *mock.Call -} - -// Init is a helper method to define mock.On call -// - a *app.App -func (_e *MockChecker_Expecter) Init(a interface{}) *MockChecker_Init_Call { - return &MockChecker_Init_Call{Call: _e.mock.On("Init", a)} -} - -func (_c *MockChecker_Init_Call) Run(run func(a *app.App)) *MockChecker_Init_Call { - _c.Call.Run(func(args mock.Arguments) { - run(args[0].(*app.App)) - }) - return _c -} - -func (_c *MockChecker_Init_Call) Return(err error) *MockChecker_Init_Call { - _c.Call.Return(err) - return _c -} - -func (_c *MockChecker_Init_Call) RunAndReturn(run func(*app.App) error) *MockChecker_Init_Call { - _c.Call.Return(run) - return _c -} - -// IsVersionCompatibleWithPeers provides a mock function with given fields: -func (_m *MockChecker) IsVersionCompatibleWithPeers() bool { - ret := _m.Called() - - if len(ret) == 0 { - panic("no return value specified for IsVersionCompatibleWithPeers") - } - - var r0 bool - if rf, ok := ret.Get(0).(func() bool); ok { - r0 = rf() - } else { - r0 = ret.Get(0).(bool) - } - - return r0 -} - -// MockChecker_IsVersionCompatibleWithPeers_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'IsVersionCompatibleWithPeers' -type MockChecker_IsVersionCompatibleWithPeers_Call struct { - *mock.Call -} - -// IsVersionCompatibleWithPeers is a helper method to define mock.On call -func (_e *MockChecker_Expecter) IsVersionCompatibleWithPeers() *MockChecker_IsVersionCompatibleWithPeers_Call { - return &MockChecker_IsVersionCompatibleWithPeers_Call{Call: _e.mock.On("IsVersionCompatibleWithPeers")} -} - -func (_c *MockChecker_IsVersionCompatibleWithPeers_Call) Run(run func()) *MockChecker_IsVersionCompatibleWithPeers_Call { - _c.Call.Run(func(args mock.Arguments) { - run() - }) - return _c -} - -func (_c *MockChecker_IsVersionCompatibleWithPeers_Call) Return(_a0 bool) *MockChecker_IsVersionCompatibleWithPeers_Call { - _c.Call.Return(_a0) - return _c -} - -func (_c *MockChecker_IsVersionCompatibleWithPeers_Call) RunAndReturn(run func() bool) *MockChecker_IsVersionCompatibleWithPeers_Call { - _c.Call.Return(run) - return _c -} - -// Name provides a mock function with given fields: -func (_m *MockChecker) Name() string { - ret := _m.Called() - - if len(ret) == 0 { - panic("no return value specified for Name") - } - - var r0 string - if rf, ok := ret.Get(0).(func() string); ok { - r0 = rf() - } else { - r0 = ret.Get(0).(string) - } - - return r0 -} - -// MockChecker_Name_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'Name' -type MockChecker_Name_Call struct { - *mock.Call -} - -// Name is a helper method to define mock.On call -func (_e *MockChecker_Expecter) Name() *MockChecker_Name_Call { - return &MockChecker_Name_Call{Call: _e.mock.On("Name")} -} - -func (_c *MockChecker_Name_Call) Run(run func()) *MockChecker_Name_Call { - _c.Call.Run(func(args mock.Arguments) { - run() - }) - return _c -} - -func (_c *MockChecker_Name_Call) Return(name string) *MockChecker_Name_Call { - _c.Call.Return(name) - return _c -} - -func (_c *MockChecker_Name_Call) RunAndReturn(run func() string) *MockChecker_Name_Call { - _c.Call.Return(run) - return _c -} - -// NewMockChecker creates a new instance of MockChecker. It also registers a testing interface on the mock and a cleanup function to assert the mocks expectations. -// The first argument is typically a *testing.T value. -func NewMockChecker(t interface { - mock.TestingT - Cleanup(func()) -}) *MockChecker { - mock := &MockChecker{} - mock.Mock.Test(t) - - t.Cleanup(func() { mock.AssertExpectations(t) }) - - return mock -} diff --git a/core/syncstatus/spacesyncstatus/spacestatus.go b/core/syncstatus/spacesyncstatus/spacestatus.go index 0383c0b44..de2c7f54e 100644 --- a/core/syncstatus/spacesyncstatus/spacestatus.go +++ b/core/syncstatus/spacesyncstatus/spacestatus.go @@ -11,7 +11,6 @@ import ( "github.com/anyproto/any-sync/util/periodicsync" "github.com/samber/lo" - "github.com/anyproto/anytype-heart/core/compatibility" "github.com/anyproto/anytype-heart/core/event" "github.com/anyproto/anytype-heart/core/files" "github.com/anyproto/anytype-heart/core/session" @@ -56,15 +55,14 @@ type spaceSyncStatus struct { nodeUsage NodeUsage subs syncsubscriptions.SyncSubscriptions - spaceIdGetter SpaceIdGetter - curStatuses map[string]struct{} - missingIds map[string][]string - lastSentEvents map[string]pb.EventSpaceSyncStatusUpdate - mx sync.Mutex - periodicCall periodicsync.PeriodicSync - loopInterval time.Duration - isLocal bool - compatibilityCheck compatibility.Checker + spaceIdGetter SpaceIdGetter + curStatuses map[string]struct{} + missingIds map[string][]string + lastSentEvents map[string]pb.EventSpaceSyncStatusUpdate + mx sync.Mutex + periodicCall periodicsync.PeriodicSync + loopInterval time.Duration + isLocal bool } func NewSpaceSyncStatus() Updater { @@ -88,7 +86,6 @@ func (s *spaceSyncStatus) Init(a *app.App) (err error) { sessionHookRunner := app.MustComponent[session.HookRunner](a) sessionHookRunner.RegisterHook(s.sendSyncEventForNewSession) s.periodicCall = periodicsync.NewPeriodicSyncDuration(s.loopInterval, time.Second*5, s.update, logger.CtxLogger{Logger: log.Desugar()}) - s.compatibilityCheck = app.MustComponent[compatibility.Checker](a) return } @@ -146,11 +143,10 @@ func (s *spaceSyncStatus) sendEventToSession(spaceId, token string) { return } params := syncParams{ - bytesLeftPercentage: s.getBytesLeftPercentage(spaceId), - connectionStatus: s.nodeStatus.GetNodeStatus(spaceId), - compatibility: s.nodeConf.NetworkCompatibilityStatus(), - objectsSyncingCount: s.getObjectSyncingObjectsCount(spaceId, s.getMissingIds(spaceId)), - syncProtocolCompatible: s.compatibilityCheck.IsVersionCompatibleWithPeers(), + bytesLeftPercentage: s.getBytesLeftPercentage(spaceId), + connectionStatus: s.nodeStatus.GetNodeStatus(spaceId), + compatibility: s.nodeConf.NetworkCompatibilityStatus(), + objectsSyncingCount: s.getObjectSyncingObjectsCount(spaceId, s.getMissingIds(spaceId)), } s.eventSender.SendToSession(token, &pb.Event{ Messages: []*pb.EventMessage{{ @@ -246,11 +242,10 @@ func (s *spaceSyncStatus) updateSpaceSyncStatus(spaceId string) { } missingObjects := s.getMissingIds(spaceId) params := syncParams{ - bytesLeftPercentage: s.getBytesLeftPercentage(spaceId), - connectionStatus: s.nodeStatus.GetNodeStatus(spaceId), - compatibility: s.nodeConf.NetworkCompatibilityStatus(), - objectsSyncingCount: s.getObjectSyncingObjectsCount(spaceId, missingObjects), - syncProtocolCompatible: s.compatibilityCheck.IsVersionCompatibleWithPeers(), + bytesLeftPercentage: s.getBytesLeftPercentage(spaceId), + connectionStatus: s.nodeStatus.GetNodeStatus(spaceId), + compatibility: s.nodeConf.NetworkCompatibilityStatus(), + objectsSyncingCount: s.getObjectSyncingObjectsCount(spaceId, missingObjects), } s.broadcast(&pb.Event{ Messages: []*pb.EventMessage{{ @@ -267,11 +262,10 @@ func (s *spaceSyncStatus) Close(ctx context.Context) (err error) { } type syncParams struct { - bytesLeftPercentage float64 - connectionStatus nodestatus.ConnectionStatus - compatibility nodeconf.NetworkCompatibilityStatus - objectsSyncingCount int - syncProtocolCompatible bool + bytesLeftPercentage float64 + connectionStatus nodestatus.ConnectionStatus + compatibility nodeconf.NetworkCompatibilityStatus + objectsSyncingCount int } func (s *spaceSyncStatus) makeSyncEvent(spaceId string, params syncParams) *pb.EventSpaceSyncStatusUpdate { @@ -293,7 +287,7 @@ func (s *spaceSyncStatus) makeSyncEvent(spaceId string, params syncParams) *pb.E status = pb.EventSpace_Error err = pb.EventSpace_IncompatibleVersion } - if !params.syncProtocolCompatible { + if params.compatibility == nodeconf.NetworkCompatibilityStatusIncompatible { status = pb.EventSpace_SyncProtocolUpdate } return &pb.EventSpaceSyncStatusUpdate{ diff --git a/space/spacecore/peermanager/manager.go b/space/spacecore/peermanager/manager.go index a5a36cc72..1fadd8bad 100644 --- a/space/spacecore/peermanager/manager.go +++ b/space/spacecore/peermanager/manager.go @@ -18,7 +18,6 @@ import ( "github.com/anyproto/any-sync/net/peer" "go.uber.org/zap" - "github.com/anyproto/anytype-heart/core/compatibility" "github.com/anyproto/anytype-heart/core/syncstatus/nodestatus" "github.com/anyproto/anytype-heart/space/spacecore/peerstore" ) @@ -58,7 +57,6 @@ type clientPeerManager struct { availableResponsiblePeers chan struct{} nodeStatus NodeStatus spaceSyncService Updater - compatibilityChecker compatibility.Checker ctx context.Context ctxCancel context.CancelFunc @@ -76,7 +74,6 @@ func (n *clientPeerManager) Init(a *app.App) (err error) { n.nodeStatus = app.MustComponent[NodeStatus](a) n.spaceSyncService = app.MustComponent[Updater](a) n.peerToPeerStatus = app.MustComponent[PeerToPeerStatus](a) - n.compatibilityChecker = app.MustComponent[compatibility.Checker](a) return } @@ -182,7 +179,6 @@ func (n *clientPeerManager) getStreamResponsiblePeers(ctx context.Context) (peer log.Warn("failed to get responsible peer from common pool", zap.Error(nodeErr)) } else { peerIds = []string{p.Id()} - n.addPeerVersion(p) } peerIds = append(peerIds, n.peerStore.LocalPeerIds(n.spaceId)...) for _, peerId := range peerIds { @@ -192,7 +188,6 @@ func (n *clientPeerManager) getStreamResponsiblePeers(ctx context.Context) (peer log.Warn("failed to get peer from stream pool", zap.String("peerId", peerId), zap.Error(err)) continue } - n.addPeerVersion(p) peers = append(peers, p) } @@ -203,15 +198,6 @@ func (n *clientPeerManager) getStreamResponsiblePeers(ctx context.Context) (peer return } -func (n *clientPeerManager) addPeerVersion(p peer.Peer) { - protoVersion, err := peer.CtxProtoVersion(p.Context()) - if err != nil { - log.Warn("failed to get responsible peer proto version", zap.Error(err)) - } else { - n.compatibilityChecker.AddPeerVersion(p.Id(), protoVersion) - } -} - func (n *clientPeerManager) manageResponsiblePeers() { for { n.fetchResponsiblePeers() diff --git a/space/spacecore/peermanager/manager_test.go b/space/spacecore/peermanager/manager_test.go index 718ee52c2..edc50af87 100644 --- a/space/spacecore/peermanager/manager_test.go +++ b/space/spacecore/peermanager/manager_test.go @@ -137,10 +137,8 @@ func Test_getStreamResponsiblePeers(t *testing.T) { f := newFixtureManager(t, spaceId) // when - peer := newTestPeer("id") - peer.ctx = context.Background() - f.pool.EXPECT().GetOneOf(gomock.Any(), gomock.Any()).Return(peer, nil) - f.pool.EXPECT().Get(gomock.Any(), gomock.Any()).Return(peer, nil) + f.pool.EXPECT().GetOneOf(gomock.Any(), gomock.Any()).Return(newTestPeer("id"), nil) + f.pool.EXPECT().Get(gomock.Any(), gomock.Any()).Return(newTestPeer("id"), nil) peers, err := f.cm.getStreamResponsiblePeers(context.Background()) // then @@ -153,13 +151,9 @@ func Test_getStreamResponsiblePeers(t *testing.T) { f.store.UpdateLocalPeer("peerId", []string{spaceId}) // when - peer := newTestPeer("id") - peer.ctx = context.Background() - peer1 := newTestPeer("id1") - peer1.ctx = context.Background() - f.pool.EXPECT().GetOneOf(gomock.Any(), gomock.Any()).Return(peer, nil) - f.pool.EXPECT().Get(f.cm.ctx, "peerId").Return(peer1, nil) - f.pool.EXPECT().Get(f.cm.ctx, "id").Return(peer, nil) + f.pool.EXPECT().GetOneOf(gomock.Any(), gomock.Any()).Return(newTestPeer("id"), nil) + f.pool.EXPECT().Get(f.cm.ctx, "peerId").Return(newTestPeer("id1"), nil) + f.pool.EXPECT().Get(f.cm.ctx, "id").Return(newTestPeer("id"), nil) peers, err := f.cm.getStreamResponsiblePeers(context.Background()) // then @@ -172,11 +166,9 @@ func Test_getStreamResponsiblePeers(t *testing.T) { f.store.UpdateLocalPeer("peerId", []string{spaceId}) // when - peer := newTestPeer("id") - peer.ctx = context.Background() - f.pool.EXPECT().GetOneOf(gomock.Any(), gomock.Any()).Return(peer, nil) + f.pool.EXPECT().GetOneOf(gomock.Any(), gomock.Any()).Return(newTestPeer("id"), nil) f.pool.EXPECT().Get(f.cm.ctx, "peerId").Return(nil, fmt.Errorf("error")) - f.pool.EXPECT().Get(f.cm.ctx, "id").Return(peer, nil) + f.pool.EXPECT().Get(f.cm.ctx, "id").Return(newTestPeer("id"), nil) peers, err := f.cm.getStreamResponsiblePeers(context.Background()) // then From 1bd82b1d15731a7d92478815093ea9d810d01147 Mon Sep 17 00:00:00 2001 From: AnastasiaShemyakinskaya Date: Thu, 22 Aug 2024 14:59:46 +0200 Subject: [PATCH 55/78] GO-3921: remove not needed code Signed-off-by: AnastasiaShemyakinskaya --- core/anytype/bootstrap.go | 4 +- .../syncstatus/spacesyncstatus/spacestatus.go | 4 +- .../spacesyncstatus/spacestatus_test.go | 67 +- docs/proto.md | 2 +- pb/events.pb.go | 760 +++++++++--------- pb/protos/events.proto | 2 +- 6 files changed, 414 insertions(+), 425 deletions(-) diff --git a/core/anytype/bootstrap.go b/core/anytype/bootstrap.go index b942dc9db..9e9f3ea42 100644 --- a/core/anytype/bootstrap.go +++ b/core/anytype/bootstrap.go @@ -50,7 +50,6 @@ import ( "github.com/anyproto/anytype-heart/core/block/restriction" "github.com/anyproto/anytype-heart/core/block/source" templateservice "github.com/anyproto/anytype-heart/core/block/template" - "github.com/anyproto/anytype-heart/core/compatibility" "github.com/anyproto/anytype-heart/core/configfetcher" "github.com/anyproto/anytype-heart/core/debug" "github.com/anyproto/anytype-heart/core/debug/profiler" @@ -302,8 +301,7 @@ func Bootstrap(a *app.App, components ...app.Component) { Register(nameserviceclient.New()). Register(payments.New()). Register(paymentscache.New()). - Register(peerstatus.New()). - Register(compatibility.New()) + Register(peerstatus.New()) } func MiddlewareVersion() string { diff --git a/core/syncstatus/spacesyncstatus/spacestatus.go b/core/syncstatus/spacesyncstatus/spacestatus.go index de2c7f54e..d7b49d2cc 100644 --- a/core/syncstatus/spacesyncstatus/spacestatus.go +++ b/core/syncstatus/spacesyncstatus/spacestatus.go @@ -287,8 +287,8 @@ func (s *spaceSyncStatus) makeSyncEvent(spaceId string, params syncParams) *pb.E status = pb.EventSpace_Error err = pb.EventSpace_IncompatibleVersion } - if params.compatibility == nodeconf.NetworkCompatibilityStatusIncompatible { - status = pb.EventSpace_SyncProtocolUpdate + if params.compatibility == nodeconf.NetworkCompatibilityStatusNeedsUpdate { + status = pb.EventSpace_NetworkNeedsUpdate } return &pb.EventSpaceSyncStatusUpdate{ Id: spaceId, diff --git a/core/syncstatus/spacesyncstatus/spacestatus_test.go b/core/syncstatus/spacesyncstatus/spacestatus_test.go index 440e01511..a1fa9024e 100644 --- a/core/syncstatus/spacesyncstatus/spacestatus_test.go +++ b/core/syncstatus/spacesyncstatus/spacestatus_test.go @@ -14,7 +14,6 @@ import ( "github.com/stretchr/testify/require" "go.uber.org/mock/gomock" - "github.com/anyproto/anytype-heart/core/compatibility/mock_compatibility" "github.com/anyproto/anytype-heart/core/domain" "github.com/anyproto/anytype-heart/core/event" "github.com/anyproto/anytype-heart/core/event/mock_event" @@ -66,19 +65,18 @@ func (m mockSessionContext) GetResponseEvent() *pb.ResponseEvent { type fixture struct { *spaceSyncStatus - a *app.App - nodeConf *mock_nodeconf.MockService - nodeUsage *mock_spacesyncstatus.MockNodeUsage - nodeStatus *mock_nodestatus.MockNodeStatus - subscriptionService subscription.Service - syncSubs syncsubscriptions.SyncSubscriptions - objectStore *objectstore.StoreFixture - spaceIdGetter *mock_spacesyncstatus.MockSpaceIdGetter - eventSender *mock_event.MockSender - session session.HookRunner - networkConfig *mock_spacesyncstatus.MockNetworkConfig - ctrl *gomock.Controller - compatibilityChecker *mock_compatibility.MockChecker + a *app.App + nodeConf *mock_nodeconf.MockService + nodeUsage *mock_spacesyncstatus.MockNodeUsage + nodeStatus *mock_nodestatus.MockNodeStatus + subscriptionService subscription.Service + syncSubs syncsubscriptions.SyncSubscriptions + objectStore *objectstore.StoreFixture + spaceIdGetter *mock_spacesyncstatus.MockSpaceIdGetter + eventSender *mock_event.MockSender + session session.HookRunner + networkConfig *mock_spacesyncstatus.MockNetworkConfig + ctrl *gomock.Controller } func genObject(syncStatus domain.ObjectSyncStatus, spaceId string) objectstore.TestObject { @@ -107,20 +105,19 @@ func newFixture(t *testing.T, beforeStart func(fx *fixture)) *fixture { networkConfig := mock_spacesyncstatus.NewMockNetworkConfig(t) sess := session.NewHookRunner() fx := &fixture{ - a: a, - ctrl: ctrl, - spaceSyncStatus: NewSpaceSyncStatus().(*spaceSyncStatus), - nodeUsage: mock_spacesyncstatus.NewMockNodeUsage(t), - nodeStatus: mock_nodestatus.NewMockNodeStatus(t), - nodeConf: mock_nodeconf.NewMockService(ctrl), - spaceIdGetter: mock_spacesyncstatus.NewMockSpaceIdGetter(t), - objectStore: internalSubs.StoreFixture, - eventSender: app.MustComponent[event.Sender](a).(*mock_event.MockSender), - subscriptionService: internalSubs, - session: sess, - syncSubs: syncsubscriptions.New(), - networkConfig: networkConfig, - compatibilityChecker: mock_compatibility.NewMockChecker(t), + a: a, + ctrl: ctrl, + spaceSyncStatus: NewSpaceSyncStatus().(*spaceSyncStatus), + nodeUsage: mock_spacesyncstatus.NewMockNodeUsage(t), + nodeStatus: mock_nodestatus.NewMockNodeStatus(t), + nodeConf: mock_nodeconf.NewMockService(ctrl), + spaceIdGetter: mock_spacesyncstatus.NewMockSpaceIdGetter(t), + objectStore: internalSubs.StoreFixture, + eventSender: app.MustComponent[event.Sender](a).(*mock_event.MockSender), + subscriptionService: internalSubs, + session: sess, + syncSubs: syncsubscriptions.New(), + networkConfig: networkConfig, } fx.spaceIdGetter.EXPECT().TechSpaceId().Return("techSpaceId").Maybe() @@ -130,7 +127,6 @@ func newFixture(t *testing.T, beforeStart func(fx *fixture)) *fixture { Register(testutil.PrepareMock(ctx, a, fx.spaceIdGetter)). Register(testutil.PrepareMock(ctx, a, fx.nodeConf)). Register(testutil.PrepareMock(ctx, a, fx.nodeUsage)). - Register(testutil.PrepareMock(ctx, a, fx.compatibilityChecker)). Register(sess). Register(fx.spaceSyncStatus) beforeStart(fx) @@ -153,7 +149,6 @@ func Test(t *testing.T) { LocalUsageBytes: 0, }, nil) fx.nodeConf.EXPECT().NetworkCompatibilityStatus().Return(nodeconf.NetworkCompatibilityStatusOk) - fx.compatibilityChecker.EXPECT().IsVersionCompatibleWithPeers().Return(true) fx.eventSender.EXPECT().Broadcast(&pb.Event{ Messages: []*pb.EventMessage{{ Value: &pb.EventMessageValueOfSpaceSyncStatusUpdate{ @@ -183,7 +178,6 @@ func Test(t *testing.T) { LocalUsageBytes: 0, }, nil) fx.nodeConf.EXPECT().NetworkCompatibilityStatus().Return(nodeconf.NetworkCompatibilityStatusOk) - fx.compatibilityChecker.EXPECT().IsVersionCompatibleWithPeers().Return(true) fx.eventSender.EXPECT().Broadcast(&pb.Event{ Messages: []*pb.EventMessage{{ Value: &pb.EventMessageValueOfSpaceSyncStatusUpdate{ @@ -215,7 +209,6 @@ func Test(t *testing.T) { LocalUsageBytes: 0, }, nil) fx.nodeConf.EXPECT().NetworkCompatibilityStatus().AnyTimes().Return(nodeconf.NetworkCompatibilityStatusOk) - fx.compatibilityChecker.EXPECT().IsVersionCompatibleWithPeers().Return(true) fx.eventSender.EXPECT().Broadcast(&pb.Event{ Messages: []*pb.EventMessage{{ Value: &pb.EventMessageValueOfSpaceSyncStatusUpdate{ @@ -268,7 +261,6 @@ func Test(t *testing.T) { LocalUsageBytes: 0, }, nil) fx.nodeConf.EXPECT().NetworkCompatibilityStatus().Return(nodeconf.NetworkCompatibilityStatusOk) - fx.compatibilityChecker.EXPECT().IsVersionCompatibleWithPeers().Return(true) fx.eventSender.EXPECT().Broadcast(&pb.Event{ Messages: []*pb.EventMessage{{ Value: &pb.EventMessageValueOfSpaceSyncStatusUpdate{ @@ -300,7 +292,6 @@ func Test(t *testing.T) { LocalUsageBytes: 0, }, nil) fx.nodeConf.EXPECT().NetworkCompatibilityStatus().Return(nodeconf.NetworkCompatibilityStatusOk) - fx.compatibilityChecker.EXPECT().IsVersionCompatibleWithPeers().Return(true) fx.eventSender.EXPECT().Broadcast(&pb.Event{ Messages: []*pb.EventMessage{{ Value: &pb.EventMessageValueOfSpaceSyncStatusUpdate{ @@ -332,7 +323,6 @@ func Test(t *testing.T) { LocalUsageBytes: 0, }, nil) fx.nodeConf.EXPECT().NetworkCompatibilityStatus().Return(nodeconf.NetworkCompatibilityStatusIncompatible) - fx.compatibilityChecker.EXPECT().IsVersionCompatibleWithPeers().Return(true) fx.eventSender.EXPECT().Broadcast(&pb.Event{ Messages: []*pb.EventMessage{{ Value: &pb.EventMessageValueOfSpaceSyncStatusUpdate{ @@ -365,7 +355,6 @@ func Test(t *testing.T) { LocalUsageBytes: 0, }, nil) fx.nodeConf.EXPECT().NetworkCompatibilityStatus().AnyTimes().Return(nodeconf.NetworkCompatibilityStatusOk) - fx.compatibilityChecker.EXPECT().IsVersionCompatibleWithPeers().Return(true) fx.eventSender.EXPECT().Broadcast(&pb.Event{ Messages: []*pb.EventMessage{{ Value: &pb.EventMessageValueOfSpaceSyncStatusUpdate{ @@ -408,14 +397,13 @@ func Test(t *testing.T) { }, LocalUsageBytes: 0, }, nil) - fx.nodeConf.EXPECT().NetworkCompatibilityStatus().Return(nodeconf.NetworkCompatibilityStatusOk) - fx.compatibilityChecker.EXPECT().IsVersionCompatibleWithPeers().Return(false) + fx.nodeConf.EXPECT().NetworkCompatibilityStatus().Return(nodeconf.NetworkCompatibilityStatusNeedsUpdate) fx.eventSender.EXPECT().Broadcast(&pb.Event{ Messages: []*pb.EventMessage{{ Value: &pb.EventMessageValueOfSpaceSyncStatusUpdate{ SpaceSyncStatusUpdate: &pb.EventSpaceSyncStatusUpdate{ Id: "spaceId", - Status: pb.EventSpace_SyncProtocolUpdate, + Status: pb.EventSpace_NetworkNeedsUpdate, Network: pb.EventSpace_Anytype, }, }, @@ -439,7 +427,6 @@ func Test(t *testing.T) { LocalUsageBytes: 0, }, nil) fx.nodeConf.EXPECT().NetworkCompatibilityStatus().AnyTimes().Return(nodeconf.NetworkCompatibilityStatusIncompatible) - fx.compatibilityChecker.EXPECT().IsVersionCompatibleWithPeers().Return(true) fx.eventSender.EXPECT().Broadcast(&pb.Event{ Messages: []*pb.EventMessage{{ Value: &pb.EventMessageValueOfSpaceSyncStatusUpdate{ diff --git a/docs/proto.md b/docs/proto.md index 112e3cd26..cd5ce896b 100644 --- a/docs/proto.md +++ b/docs/proto.md @@ -25832,7 +25832,7 @@ Precondition: user A and user B opened the same block | Syncing | 1 | | | Error | 2 | | | Offline | 3 | | -| SyncProtocolUpdate | 4 | | +| NetworkNeedsUpdate | 4 | | diff --git a/pb/events.pb.go b/pb/events.pb.go index cce65a556..b4a1d3c53 100644 --- a/pb/events.pb.go +++ b/pb/events.pb.go @@ -98,10 +98,11 @@ func (EventStatusThreadSyncStatus) EnumDescriptor() ([]byte, []int) { type EventSpaceStatus int32 const ( - EventSpace_Synced EventSpaceStatus = 0 - EventSpace_Syncing EventSpaceStatus = 1 - EventSpace_Error EventSpaceStatus = 2 - EventSpace_Offline EventSpaceStatus = 3 + EventSpace_Synced EventSpaceStatus = 0 + EventSpace_Syncing EventSpaceStatus = 1 + EventSpace_Error EventSpaceStatus = 2 + EventSpace_Offline EventSpaceStatus = 3 + EventSpace_NetworkNeedsUpdate EventSpaceStatus = 4 ) var EventSpaceStatus_name = map[int32]string{ @@ -109,13 +110,15 @@ var EventSpaceStatus_name = map[int32]string{ 1: "Syncing", 2: "Error", 3: "Offline", + 4: "NetworkNeedsUpdate", } var EventSpaceStatus_value = map[string]int32{ - "Synced": 0, - "Syncing": 1, - "Error": 2, - "Offline": 3, + "Synced": 0, + "Syncing": 1, + "Error": 2, + "Offline": 3, + "NetworkNeedsUpdate": 4, } func (x EventSpaceStatus) String() string { @@ -11706,376 +11709,377 @@ func init() { func init() { proto.RegisterFile("pb/protos/events.proto", fileDescriptor_a966342d378ae5f5) } var fileDescriptor_a966342d378ae5f5 = []byte{ - // 5894 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x5c, 0x59, 0x8c, 0x1d, 0xd9, - 0x59, 0xbe, 0xfb, 0xf2, 0xf7, 0xe2, 0xeb, 0x33, 0x1e, 0x4f, 0x4d, 0xb9, 0xc7, 0xe3, 0x69, 0xaf, - 0xf1, 0x78, 0xae, 0x3d, 0xde, 0xda, 0x71, 0x3c, 0xb6, 0x7b, 0xf3, 0xf4, 0xf5, 0xd2, 0x6e, 0x4e, - 0xdb, 0xce, 0x64, 0x12, 0x45, 0xa9, 0xbe, 0x75, 0xfa, 0x76, 0xc5, 0xd5, 0x55, 0x37, 0x55, 0xd5, - 0x6d, 0x77, 0x02, 0x21, 0x62, 0x11, 0x42, 0x02, 0x81, 0x04, 0x0a, 0x88, 0x17, 0x04, 0x02, 0x89, - 0x07, 0x84, 0x40, 0x3c, 0x10, 0x5e, 0x10, 0x12, 0x42, 0x62, 0x95, 0x82, 0xc4, 0x03, 0x6f, 0x89, - 0x26, 0x2f, 0xbc, 0xf0, 0x10, 0x90, 0x10, 0x4f, 0x08, 0x9d, 0xa5, 0xaa, 0xce, 0xa9, 0xe5, 0xd6, - 0xbd, 0x99, 0x09, 0x8b, 0xc8, 0xd3, 0xbd, 0xe7, 0x3f, 0xff, 0xff, 0x9d, 0xe5, 0xff, 0xff, 0xb3, - 0xfc, 0xe7, 0x9c, 0x82, 0xa3, 0xc3, 0xad, 0x8b, 0x43, 0xcf, 0x0d, 0x5c, 0xff, 0x22, 0xd9, 0x27, - 0x4e, 0xe0, 0x77, 0x59, 0x0a, 0x35, 0x0d, 0xe7, 0x20, 0x38, 0x18, 0x12, 0xfd, 0xd4, 0xf0, 0xf9, - 0xe0, 0xa2, 0x6d, 0x6d, 0x5d, 0x1c, 0x6e, 0x5d, 0xdc, 0x75, 0x4d, 0x62, 0x87, 0xec, 0x2c, 0x21, - 0xd8, 0xf5, 0xb9, 0x81, 0xeb, 0x0e, 0x6c, 0xc2, 0xf3, 0xb6, 0xf6, 0xb6, 0x2f, 0xfa, 0x81, 0xb7, - 0xd7, 0x0f, 0x78, 0xee, 0xfc, 0xaf, 0xfc, 0x69, 0x19, 0xea, 0xab, 0x14, 0x1e, 0x5d, 0x86, 0xd6, - 0x2e, 0xf1, 0x7d, 0x63, 0x40, 0x7c, 0xad, 0x7c, 0xa2, 0x7a, 0x6e, 0xea, 0xf2, 0xd1, 0xae, 0x28, - 0xaa, 0xcb, 0x38, 0xba, 0x8f, 0x78, 0x36, 0x8e, 0xf8, 0xd0, 0x1c, 0xb4, 0xfb, 0xae, 0x13, 0x90, - 0x97, 0x41, 0xcf, 0xd4, 0x2a, 0x27, 0xca, 0xe7, 0xda, 0x38, 0x26, 0xa0, 0xab, 0xd0, 0xb6, 0x1c, - 0x2b, 0xb0, 0x8c, 0xc0, 0xf5, 0xb4, 0xea, 0x89, 0xb2, 0x02, 0xc9, 0x2a, 0xd9, 0x5d, 0xec, 0xf7, - 0xdd, 0x3d, 0x27, 0xc0, 0x31, 0x23, 0xd2, 0xa0, 0x19, 0x78, 0x46, 0x9f, 0xf4, 0x4c, 0xad, 0xc6, - 0x10, 0xc3, 0xa4, 0xfe, 0x27, 0x5d, 0x68, 0x8a, 0x3a, 0xa0, 0x3b, 0x30, 0x65, 0x70, 0xd9, 0xcd, - 0x1d, 0xf7, 0x85, 0x56, 0x66, 0xe8, 0xc7, 0x12, 0x15, 0x16, 0xe8, 0x5d, 0xca, 0xb2, 0x56, 0xc2, - 0xb2, 0x04, 0xea, 0xc1, 0xac, 0x48, 0xae, 0x90, 0xc0, 0xb0, 0x6c, 0x5f, 0xfb, 0x6b, 0x0e, 0x72, - 0x3c, 0x07, 0x44, 0xb0, 0xad, 0x95, 0x70, 0x42, 0x10, 0x7d, 0x0e, 0x5e, 0x11, 0x94, 0x65, 0xd7, - 0xd9, 0xb6, 0x06, 0x4f, 0x87, 0xa6, 0x11, 0x10, 0xed, 0x6f, 0x38, 0xde, 0xa9, 0x1c, 0x3c, 0xce, - 0xdb, 0xe5, 0xcc, 0x6b, 0x25, 0x9c, 0x85, 0x81, 0xee, 0xc1, 0x8c, 0x20, 0x0b, 0xd0, 0xbf, 0xe5, - 0xa0, 0x6f, 0xe4, 0x80, 0x46, 0x68, 0xaa, 0x18, 0xfa, 0x3c, 0x1c, 0x11, 0x84, 0x87, 0x96, 0xf3, - 0x7c, 0x79, 0xc7, 0xb0, 0x6d, 0xe2, 0x0c, 0x88, 0xf6, 0x77, 0xa3, 0xeb, 0xa8, 0x30, 0xaf, 0x95, - 0x70, 0x26, 0x08, 0x7a, 0x0c, 0x1d, 0x77, 0xeb, 0xcb, 0xa4, 0x1f, 0x76, 0xc8, 0x26, 0x09, 0xb4, - 0x0e, 0xc3, 0x7d, 0x2b, 0x81, 0xfb, 0x98, 0xb1, 0x85, 0x5d, 0xd9, 0xdd, 0x24, 0xc1, 0x5a, 0x09, - 0xa7, 0x84, 0xd1, 0x53, 0x40, 0x0a, 0x6d, 0x71, 0x97, 0x38, 0xa6, 0x76, 0x99, 0x41, 0x9e, 0x1c, - 0x0d, 0xc9, 0x58, 0xd7, 0x4a, 0x38, 0x03, 0x20, 0x05, 0xfb, 0xd4, 0xf1, 0x49, 0xa0, 0x5d, 0x19, - 0x07, 0x96, 0xb1, 0xa6, 0x60, 0x19, 0x95, 0xf6, 0x2d, 0xa7, 0x62, 0x62, 0x1b, 0x81, 0xe5, 0x3a, - 0xa2, 0xbe, 0x57, 0x19, 0xf0, 0xe9, 0x6c, 0xe0, 0x88, 0x37, 0xaa, 0x71, 0x26, 0x08, 0xfa, 0x22, - 0xbc, 0x9a, 0xa0, 0x63, 0xb2, 0xeb, 0xee, 0x13, 0xed, 0x1a, 0x43, 0x3f, 0x53, 0x84, 0xce, 0xb9, - 0xd7, 0x4a, 0x38, 0x1b, 0x06, 0x2d, 0xc1, 0x74, 0x98, 0xc1, 0x60, 0xaf, 0x33, 0xd8, 0xb9, 0x3c, - 0x58, 0x01, 0xa6, 0xc8, 0x50, 0x5f, 0xe4, 0xe9, 0x65, 0xdb, 0xf5, 0x89, 0xb6, 0x98, 0xe9, 0x8b, - 0x02, 0x82, 0xb1, 0x50, 0x5f, 0x94, 0x24, 0xe4, 0x46, 0xfa, 0x81, 0x67, 0xf5, 0x59, 0x05, 0xa9, - 0x15, 0x2d, 0x8c, 0x6e, 0x64, 0xcc, 0x2c, 0x4c, 0x29, 0x1b, 0x06, 0x61, 0x38, 0xe4, 0xef, 0x6d, - 0xf9, 0x7d, 0xcf, 0x1a, 0x52, 0xda, 0xa2, 0x69, 0x6a, 0xb7, 0x46, 0x21, 0x6f, 0x4a, 0xcc, 0xdd, - 0x45, 0x93, 0x6a, 0x27, 0x09, 0x80, 0x3e, 0x0f, 0x48, 0x26, 0x89, 0xee, 0x7b, 0x8f, 0xc1, 0x7e, - 0x6a, 0x0c, 0xd8, 0xa8, 0x2f, 0x33, 0x60, 0x90, 0x01, 0x47, 0x64, 0xea, 0x86, 0xeb, 0x5b, 0xf4, - 0x57, 0xbb, 0xcd, 0xe0, 0xdf, 0x1e, 0x03, 0x3e, 0x14, 0xa1, 0x86, 0x95, 0x05, 0x95, 0x2c, 0x62, - 0x99, 0xba, 0x35, 0xf1, 0x7c, 0xed, 0xce, 0xd8, 0x45, 0x84, 0x22, 0xc9, 0x22, 0x42, 0x7a, 0xb2, - 0x8b, 0xde, 0xf7, 0xdc, 0xbd, 0xa1, 0xaf, 0xdd, 0x1d, 0xbb, 0x8b, 0xb8, 0x40, 0xb2, 0x8b, 0x38, - 0x15, 0x5d, 0x87, 0xd6, 0x96, 0xed, 0xf6, 0x9f, 0x53, 0x65, 0x56, 0x18, 0xa4, 0x96, 0x80, 0x5c, - 0xa2, 0xd9, 0x42, 0x7d, 0x11, 0x2f, 0x35, 0x56, 0xf6, 0x7f, 0x85, 0xd8, 0x24, 0x20, 0x62, 0x5a, - 0x3a, 0x96, 0x29, 0xca, 0x59, 0xa8, 0xb1, 0x4a, 0x12, 0x68, 0x05, 0xa6, 0xb6, 0x2d, 0x9b, 0xf8, - 0x4f, 0x87, 0xb6, 0x6b, 0xf0, 0x39, 0x6a, 0xea, 0xf2, 0x89, 0x4c, 0x80, 0x7b, 0x31, 0x1f, 0x45, - 0x91, 0xc4, 0xd0, 0x6d, 0x68, 0xef, 0x1a, 0xde, 0x73, 0xbf, 0xe7, 0x6c, 0xbb, 0x5a, 0x3d, 0x73, - 0xe2, 0xe1, 0x18, 0x8f, 0x42, 0xae, 0xb5, 0x12, 0x8e, 0x45, 0xe8, 0xf4, 0xc5, 0x2a, 0xb5, 0x49, - 0x82, 0x7b, 0x16, 0xb1, 0x4d, 0x5f, 0x6b, 0x30, 0x90, 0x37, 0x33, 0x41, 0x36, 0x49, 0xd0, 0xe5, - 0x6c, 0x74, 0xfa, 0x52, 0x05, 0xd1, 0x07, 0xf0, 0x4a, 0x48, 0x59, 0xde, 0xb1, 0x6c, 0xd3, 0x23, - 0x4e, 0xcf, 0xf4, 0xb5, 0x66, 0xe6, 0xcc, 0x10, 0xe3, 0x49, 0xbc, 0x74, 0xf6, 0xca, 0x80, 0xa0, - 0x23, 0x63, 0x48, 0x96, 0x5d, 0x52, 0x6b, 0x65, 0x8e, 0x8c, 0x31, 0xb4, 0xcc, 0x4c, 0xad, 0x2b, - 0x0b, 0x04, 0x99, 0xf0, 0x5a, 0x48, 0x5f, 0x32, 0xfa, 0xcf, 0x07, 0x9e, 0xbb, 0xe7, 0x98, 0xcb, - 0xae, 0xed, 0x7a, 0x5a, 0x9b, 0xe1, 0x9f, 0xcb, 0xc5, 0x4f, 0xf0, 0xaf, 0x95, 0x70, 0x1e, 0x14, - 0x5a, 0x86, 0xe9, 0x30, 0xeb, 0x09, 0x79, 0x19, 0x68, 0x90, 0x39, 0xfd, 0xc6, 0xd0, 0x94, 0x89, - 0x0e, 0x90, 0xb2, 0x90, 0x0c, 0x42, 0x4d, 0x42, 0x9b, 0x2a, 0x00, 0xa1, 0x4c, 0x32, 0x08, 0x4d, - 0xcb, 0x20, 0x74, 0xfa, 0xd5, 0x66, 0x0a, 0x40, 0x28, 0x93, 0x0c, 0x42, 0xd3, 0x74, 0xaa, 0x8e, - 0x5a, 0xea, 0xba, 0xcf, 0xa9, 0x3d, 0x69, 0xb3, 0x99, 0x53, 0xb5, 0xd4, 0x5b, 0x82, 0x91, 0x4e, - 0xd5, 0x49, 0x61, 0xba, 0x40, 0x09, 0x69, 0x8b, 0xb6, 0x35, 0x70, 0xb4, 0x43, 0x23, 0x6c, 0x99, - 0xa2, 0x31, 0x2e, 0xba, 0x40, 0x51, 0xc4, 0xd0, 0x5d, 0xe1, 0x96, 0x9b, 0x24, 0x58, 0xb1, 0xf6, - 0xb5, 0xc3, 0x99, 0xd3, 0x50, 0x8c, 0xb2, 0x62, 0xed, 0x47, 0x7e, 0xc9, 0x45, 0xe4, 0xa6, 0x85, - 0x93, 0x9c, 0xf6, 0x6a, 0x41, 0xd3, 0x42, 0x46, 0xb9, 0x69, 0x21, 0x4d, 0x6e, 0xda, 0x43, 0x23, - 0x20, 0x2f, 0xb5, 0xd7, 0x0b, 0x9a, 0xc6, 0xb8, 0xe4, 0xa6, 0x31, 0x02, 0x9d, 0xdd, 0x42, 0xc2, - 0x33, 0xe2, 0x05, 0x56, 0xdf, 0xb0, 0x79, 0x57, 0x9d, 0xca, 0x9c, 0x83, 0x62, 0x3c, 0x85, 0x9b, - 0xce, 0x6e, 0x99, 0x30, 0x72, 0xc3, 0x9f, 0x18, 0x5b, 0x36, 0xc1, 0xee, 0x0b, 0xed, 0x74, 0x41, - 0xc3, 0x43, 0x46, 0xb9, 0xe1, 0x21, 0x4d, 0x1e, 0x5b, 0x3e, 0x6b, 0x99, 0x03, 0x12, 0x68, 0xe7, - 0x0a, 0xc6, 0x16, 0xce, 0x26, 0x8f, 0x2d, 0x9c, 0x12, 0x8d, 0x00, 0x2b, 0x46, 0x60, 0xec, 0x5b, - 0xe4, 0xc5, 0x33, 0x8b, 0xbc, 0xa0, 0x13, 0xfb, 0x2b, 0x23, 0x46, 0x80, 0x90, 0xb7, 0x2b, 0x98, - 0xa3, 0x11, 0x20, 0x01, 0x12, 0x8d, 0x00, 0x32, 0x5d, 0x0c, 0xeb, 0x47, 0x46, 0x8c, 0x00, 0x0a, - 0x7e, 0x34, 0xc6, 0xe7, 0x41, 0x21, 0x03, 0x8e, 0xa6, 0xb2, 0x1e, 0x7b, 0x26, 0xf1, 0xb4, 0x37, - 0x58, 0x21, 0x67, 0x8b, 0x0b, 0x61, 0xec, 0x6b, 0x25, 0x9c, 0x03, 0x94, 0x2a, 0x62, 0xd3, 0xdd, - 0xf3, 0xfa, 0x84, 0xf6, 0xd3, 0xc9, 0x71, 0x8a, 0x88, 0xd8, 0x53, 0x45, 0x44, 0x39, 0x68, 0x1f, - 0xde, 0x88, 0x72, 0x68, 0xc1, 0x6c, 0x16, 0x65, 0xa5, 0x8b, 0x8d, 0xc5, 0x19, 0x56, 0x52, 0x77, - 0x74, 0x49, 0x49, 0xa9, 0xb5, 0x12, 0x1e, 0x0d, 0x8b, 0x0e, 0xe0, 0xb8, 0xc2, 0xc0, 0xe7, 0x79, - 0xb9, 0xe0, 0xb3, 0xac, 0xe0, 0x8b, 0xa3, 0x0b, 0x4e, 0x89, 0xad, 0x95, 0x70, 0x01, 0x30, 0x1a, - 0xc2, 0x31, 0xa5, 0x33, 0x42, 0xc7, 0x16, 0x26, 0xf2, 0xe3, 0xac, 0xdc, 0x0b, 0xa3, 0xcb, 0x55, - 0x65, 0xd6, 0x4a, 0x78, 0x14, 0x24, 0x1a, 0x80, 0x96, 0x99, 0x4d, 0x35, 0xf9, 0xb5, 0xcc, 0x65, - 0x4f, 0x4e, 0x71, 0x5c, 0x97, 0xb9, 0x60, 0x99, 0x96, 0x2f, 0xba, 0xf3, 0x27, 0xc6, 0xb5, 0xfc, - 0xa8, 0x1f, 0xf3, 0xa0, 0x14, 0xdd, 0xd1, 0xac, 0x27, 0x86, 0x37, 0x20, 0x01, 0xef, 0xe8, 0x9e, - 0x49, 0x1b, 0xf5, 0xf5, 0x71, 0x74, 0x97, 0x12, 0x53, 0x74, 0x97, 0x09, 0x8c, 0x7c, 0x98, 0x53, - 0x38, 0x7a, 0xfe, 0xb2, 0x6b, 0xdb, 0xa4, 0x1f, 0xf6, 0xe6, 0x4f, 0xb2, 0x82, 0xdf, 0x19, 0x5d, - 0x70, 0x42, 0x68, 0xad, 0x84, 0x47, 0x82, 0xa6, 0xda, 0xfb, 0xd8, 0x36, 0x13, 0x36, 0xa3, 0x8d, - 0x65, 0xab, 0x49, 0xb1, 0x54, 0x7b, 0x53, 0x1c, 0x29, 0x5b, 0x95, 0x38, 0x68, 0x73, 0x5f, 0x1b, - 0xc7, 0x56, 0x55, 0x99, 0x94, 0xad, 0xaa, 0xd9, 0x74, 0x76, 0xdb, 0xf3, 0x89, 0xc7, 0x30, 0xee, - 0xbb, 0x96, 0xa3, 0xbd, 0x99, 0x39, 0xbb, 0x3d, 0xf5, 0x89, 0x27, 0x0a, 0xa2, 0x5c, 0x74, 0x76, - 0x53, 0xc4, 0x14, 0x9c, 0x87, 0x64, 0x3b, 0xd0, 0x4e, 0x14, 0xe1, 0x50, 0x2e, 0x05, 0x87, 0x12, - 0xe8, 0x4c, 0x11, 0x11, 0x36, 0x09, 0xd5, 0x0a, 0x36, 0x9c, 0x01, 0xd1, 0xde, 0xca, 0x9c, 0x29, - 0x24, 0x38, 0x89, 0x99, 0xce, 0x14, 0x59, 0x20, 0x74, 0xe7, 0x1f, 0xd1, 0xe9, 0x8a, 0x8c, 0x43, - 0xcf, 0x67, 0xee, 0xfc, 0x25, 0xe8, 0x88, 0x95, 0xee, 0x41, 0xd2, 0x00, 0xe8, 0x53, 0x50, 0x1b, - 0x5a, 0xce, 0x40, 0x33, 0x19, 0xd0, 0x2b, 0x09, 0xa0, 0x0d, 0xcb, 0x19, 0xac, 0x95, 0x30, 0x63, - 0x41, 0xb7, 0x00, 0x86, 0x9e, 0xdb, 0x27, 0xbe, 0xbf, 0x4e, 0x5e, 0x68, 0x84, 0x09, 0xe8, 0x49, - 0x01, 0xce, 0xd0, 0x5d, 0x27, 0x74, 0x5e, 0x96, 0xf8, 0xd1, 0x2a, 0xcc, 0x88, 0x94, 0xf0, 0xf2, - 0xed, 0xcc, 0xc5, 0x5f, 0x08, 0x10, 0x47, 0x81, 0x14, 0x29, 0xba, 0xf7, 0x11, 0x84, 0x15, 0xd7, - 0x21, 0xda, 0x20, 0x73, 0xef, 0x13, 0x82, 0x50, 0x16, 0xba, 0xc6, 0x92, 0x24, 0xd0, 0x12, 0x4c, - 0x07, 0x3b, 0x1e, 0x31, 0xcc, 0xcd, 0xc0, 0x08, 0xf6, 0x7c, 0xcd, 0xc9, 0x5c, 0xa6, 0xf1, 0xcc, - 0xee, 0x13, 0xc6, 0x49, 0x97, 0xa0, 0xb2, 0x0c, 0x5a, 0x87, 0x0e, 0xdd, 0x08, 0x3d, 0xb4, 0x76, - 0xad, 0x00, 0x13, 0xa3, 0xbf, 0x43, 0x4c, 0xcd, 0xcd, 0xdc, 0x44, 0xd1, 0x65, 0x6f, 0x57, 0xe6, - 0xa3, 0xab, 0x95, 0xa4, 0x2c, 0x5a, 0x83, 0x59, 0x4a, 0xdb, 0x1c, 0x1a, 0x7d, 0xf2, 0xd4, 0x37, - 0x06, 0x44, 0x1b, 0x66, 0x5a, 0x20, 0x43, 0x8b, 0xb9, 0xe8, 0x62, 0x45, 0x95, 0x0b, 0x91, 0x1e, - 0xba, 0x7d, 0xc3, 0xe6, 0x48, 0x5f, 0xc9, 0x47, 0x8a, 0xb9, 0x42, 0xa4, 0x98, 0xa2, 0xb4, 0x91, - 0xf7, 0xbd, 0xa9, 0xed, 0x17, 0xb4, 0x51, 0xf0, 0x29, 0x6d, 0x14, 0x34, 0x8a, 0xe7, 0xb8, 0x81, - 0xb5, 0x6d, 0xf5, 0x85, 0xff, 0x3a, 0xa6, 0xe6, 0x65, 0xe2, 0xad, 0x4b, 0x6c, 0xdd, 0x4d, 0x1e, - 0x59, 0x4a, 0xc9, 0xa2, 0x27, 0x80, 0x64, 0x9a, 0x30, 0x2a, 0x9f, 0x21, 0xce, 0x8f, 0x42, 0x8c, - 0x2c, 0x2b, 0x43, 0x9e, 0xd6, 0x72, 0x68, 0x1c, 0xd0, 0xed, 0xed, 0x92, 0xe7, 0x1a, 0x66, 0xdf, - 0xf0, 0x03, 0x2d, 0xc8, 0xac, 0xe5, 0x06, 0x67, 0xeb, 0x46, 0x7c, 0xb4, 0x96, 0x49, 0x59, 0x8a, - 0xb7, 0x4b, 0x76, 0xb7, 0x88, 0xe7, 0xef, 0x58, 0x43, 0x51, 0xc7, 0xbd, 0x4c, 0xbc, 0x47, 0x11, - 0x5b, 0x5c, 0xc3, 0x94, 0x2c, 0x5d, 0x88, 0xfb, 0x54, 0xdb, 0x9b, 0x07, 0x4e, 0x9f, 0x1b, 0xa3, - 0x00, 0x7d, 0x91, 0xb9, 0x10, 0x67, 0x96, 0xd1, 0x8d, 0x99, 0x63, 0xe8, 0x6c, 0x18, 0xf4, 0x00, - 0x0e, 0x0d, 0x2f, 0x0f, 0x15, 0xe4, 0x97, 0x99, 0x0b, 0xe7, 0x8d, 0xcb, 0x1b, 0x49, 0xc8, 0xa4, - 0x24, 0x75, 0x35, 0x6b, 0x77, 0xe8, 0x7a, 0xc1, 0x3d, 0xcb, 0xb1, 0xfc, 0x1d, 0xed, 0x20, 0xd3, - 0xd5, 0x7a, 0x8c, 0xa5, 0xcb, 0x79, 0xa8, 0xab, 0xc9, 0x32, 0x4b, 0x4d, 0xa8, 0xef, 0x1b, 0xf6, - 0x1e, 0xd1, 0xff, 0xa8, 0x0e, 0x4d, 0x11, 0xd3, 0xd5, 0xd7, 0xa1, 0xc6, 0x02, 0xe0, 0x47, 0xa0, - 0x6e, 0x39, 0x26, 0x79, 0xc9, 0x62, 0xe7, 0x75, 0xcc, 0x13, 0xe8, 0x12, 0x34, 0x45, 0x8c, 0x57, - 0x44, 0x55, 0xf2, 0x22, 0xf6, 0x21, 0x9b, 0xfe, 0x21, 0x34, 0xc3, 0x40, 0xf8, 0x1c, 0xb4, 0x87, - 0x9e, 0x4b, 0xad, 0xb7, 0x67, 0x32, 0xd8, 0x36, 0x8e, 0x09, 0xe8, 0x5d, 0x68, 0x9a, 0x22, 0xd4, - 0xce, 0xa1, 0x5f, 0xeb, 0xf2, 0xb3, 0x89, 0x6e, 0x78, 0x36, 0xd1, 0xdd, 0x64, 0x67, 0x13, 0x38, - 0xe4, 0xd3, 0xbf, 0x51, 0x86, 0x06, 0x8f, 0x87, 0xeb, 0xfb, 0xd0, 0x10, 0x3d, 0x73, 0x0d, 0x1a, - 0x7d, 0x46, 0xd3, 0x92, 0xb1, 0x70, 0xa5, 0x86, 0x22, 0xc0, 0x8e, 0x05, 0x33, 0x15, 0xf3, 0xf9, - 0xa8, 0x55, 0x19, 0x29, 0xc6, 0xb5, 0x80, 0x05, 0xf3, 0xff, 0x58, 0xb9, 0xff, 0x59, 0x86, 0x19, - 0x35, 0xcc, 0x3e, 0x07, 0xed, 0x7e, 0x14, 0xb8, 0x17, 0xbd, 0xdb, 0x97, 0x82, 0xf0, 0xd0, 0xb7, - 0x2d, 0xe2, 0x04, 0x2c, 0xa2, 0x54, 0xc9, 0x5c, 0xa8, 0x64, 0x86, 0xf5, 0xbb, 0xcb, 0x91, 0x18, - 0x96, 0x20, 0xf4, 0xaf, 0x03, 0xc4, 0x39, 0xe8, 0x44, 0x34, 0x75, 0xac, 0x1b, 0xbb, 0x61, 0xf1, - 0x32, 0x49, 0xe2, 0xd8, 0x30, 0x82, 0x1d, 0x71, 0x1a, 0x24, 0x93, 0xd0, 0x05, 0x38, 0xec, 0x5b, - 0x03, 0xc7, 0x08, 0xf6, 0x3c, 0xf2, 0x8c, 0x78, 0xd6, 0xb6, 0x45, 0x4c, 0x16, 0x80, 0x6b, 0xe1, - 0x74, 0x86, 0xfe, 0xf3, 0x6d, 0x68, 0xf0, 0x25, 0xa1, 0xfe, 0xef, 0x95, 0xc8, 0xc6, 0xf4, 0xbf, - 0x28, 0x43, 0x9d, 0x87, 0xc6, 0x67, 0xa1, 0x62, 0x85, 0x66, 0x56, 0xb1, 0x4c, 0x74, 0x4f, 0xb6, - 0xaf, 0x6a, 0xc6, 0x7a, 0x29, 0xeb, 0xa8, 0xa0, 0xfb, 0x80, 0x1c, 0x3c, 0xa3, 0x3e, 0x12, 0x19, - 0x1d, 0x3a, 0x0a, 0x0d, 0x7f, 0x6f, 0xab, 0x67, 0xfa, 0x5a, 0xf5, 0x44, 0xf5, 0x5c, 0x1b, 0x8b, - 0x94, 0x7e, 0x1f, 0x5a, 0x21, 0x33, 0xea, 0x40, 0xf5, 0x39, 0x39, 0x10, 0x85, 0xd3, 0xbf, 0xe8, - 0x82, 0xf0, 0xb5, 0xc8, 0x6d, 0x92, 0xb6, 0xcd, 0x4b, 0x11, 0x0e, 0xf9, 0x25, 0xa8, 0xd2, 0x45, - 0x58, 0xb2, 0x09, 0x93, 0xbb, 0x48, 0x6e, 0x6d, 0x97, 0xa1, 0xce, 0x8f, 0x27, 0x92, 0x65, 0x20, - 0xa8, 0x3d, 0x27, 0x07, 0xbc, 0x8f, 0xda, 0x98, 0xfd, 0xcf, 0x05, 0xf9, 0xf3, 0x2a, 0x4c, 0xcb, - 0x21, 0x59, 0x7d, 0x15, 0xaa, 0x8b, 0x66, 0xba, 0xeb, 0x35, 0x68, 0x1a, 0xdb, 0x01, 0xf1, 0xa2, - 0x53, 0xc0, 0x30, 0x49, 0x47, 0x19, 0x86, 0xc5, 0xf4, 0xdc, 0xc6, 0x3c, 0xa1, 0x77, 0xa1, 0x21, - 0x22, 0xdd, 0x49, 0xa4, 0x88, 0xbf, 0x22, 0xf3, 0xdf, 0x87, 0x56, 0x14, 0xb8, 0xfe, 0xb8, 0x65, - 0x7b, 0xd0, 0x8a, 0x22, 0xd4, 0x47, 0xa0, 0x1e, 0xb8, 0x81, 0x61, 0x33, 0xb8, 0x2a, 0xe6, 0x09, - 0xea, 0x68, 0x0e, 0x79, 0x19, 0x2c, 0x47, 0xa3, 0x60, 0x15, 0xc7, 0x04, 0x3e, 0xc8, 0x91, 0x7d, - 0x9e, 0x5b, 0xe5, 0xb9, 0x11, 0x21, 0x2e, 0xb3, 0x26, 0x97, 0x79, 0x00, 0x0d, 0x11, 0xb6, 0x8e, - 0xf2, 0xcb, 0x52, 0x3e, 0x5a, 0x84, 0xfa, 0x80, 0xe6, 0x0b, 0xad, 0xbf, 0x9d, 0x18, 0x22, 0xf8, - 0x6a, 0x74, 0xd9, 0x75, 0x02, 0x6a, 0xc6, 0xea, 0x6e, 0x1c, 0x73, 0x49, 0xaa, 0x42, 0x8f, 0x9f, - 0x41, 0x70, 0x8f, 0x12, 0x29, 0xfd, 0x77, 0xcb, 0xd0, 0x8e, 0x0e, 0x7d, 0xf4, 0x0f, 0xf3, 0x9c, - 0x67, 0x11, 0x66, 0x3c, 0xc1, 0x45, 0x47, 0x87, 0xd0, 0x85, 0x8e, 0x25, 0x6a, 0x82, 0x25, 0x1e, - 0xac, 0x4a, 0xe8, 0xb7, 0x72, 0x95, 0x3a, 0x0f, 0xd3, 0x21, 0xeb, 0x83, 0xd8, 0xf4, 0x14, 0x9a, - 0xae, 0x47, 0xd2, 0x1d, 0xa8, 0x5a, 0x26, 0x3f, 0x83, 0x6e, 0x63, 0xfa, 0x57, 0xdf, 0x86, 0x69, - 0x39, 0xf4, 0xab, 0x3f, 0xcb, 0xf6, 0x9e, 0x3b, 0xb4, 0x18, 0x29, 0xcc, 0x5c, 0x49, 0xac, 0x6f, - 0xc3, 0x26, 0xc4, 0x2c, 0x58, 0x11, 0xd0, 0x5f, 0x83, 0x3a, 0x3f, 0x90, 0x4a, 0x20, 0xeb, 0xbf, - 0xd1, 0x87, 0x3a, 0x53, 0x82, 0x7e, 0x85, 0x3b, 0xc0, 0x05, 0x68, 0xb0, 0xcd, 0x55, 0x78, 0x54, - 0x7e, 0x24, 0x4b, 0x63, 0x58, 0xf0, 0xe8, 0xcb, 0x30, 0x25, 0x1d, 0x05, 0x50, 0x8b, 0x65, 0x19, - 0x91, 0x15, 0x84, 0x49, 0xa4, 0x43, 0x8b, 0x4e, 0x96, 0x62, 0x00, 0xa5, 0xed, 0x8f, 0xd2, 0xfa, - 0x29, 0x68, 0x88, 0xcd, 0xa2, 0x2e, 0x8e, 0x3e, 0x7a, 0x51, 0x2f, 0x45, 0x69, 0xfd, 0x0b, 0xd0, - 0x8e, 0x4e, 0x0c, 0xd0, 0x63, 0x98, 0x16, 0x27, 0x06, 0x7c, 0xc3, 0x43, 0x99, 0x67, 0x0b, 0xac, - 0x8b, 0xee, 0x6e, 0xd8, 0xa1, 0x43, 0xf7, 0xc9, 0xc1, 0x90, 0x60, 0x05, 0x40, 0xff, 0xd9, 0x73, - 0xac, 0xe7, 0xf5, 0x21, 0xb4, 0xa2, 0x30, 0x69, 0x52, 0x0b, 0x0b, 0x7c, 0x68, 0xac, 0x14, 0xc6, - 0xf8, 0xb9, 0x3c, 0x1d, 0x80, 0xd9, 0x08, 0xaa, 0x1f, 0x83, 0xea, 0x03, 0x72, 0x40, 0x3d, 0x84, - 0x0f, 0xa4, 0xc2, 0x43, 0xf8, 0x80, 0xd9, 0x83, 0x86, 0x38, 0xae, 0x48, 0x96, 0x77, 0x11, 0x1a, - 0xdb, 0xfc, 0x04, 0xa4, 0x60, 0xc8, 0x14, 0x6c, 0xfa, 0x1d, 0x98, 0x92, 0x0f, 0x29, 0x92, 0x78, - 0x27, 0x60, 0xaa, 0x2f, 0x1d, 0x83, 0x70, 0x35, 0xc8, 0x24, 0x9d, 0xa8, 0xe6, 0x98, 0x42, 0x58, - 0xcd, 0xb4, 0xc3, 0xb7, 0x32, 0xbb, 0x7d, 0x84, 0x35, 0x3e, 0x80, 0x43, 0xc9, 0xd3, 0x88, 0x64, - 0x49, 0xe7, 0xe0, 0xd0, 0x56, 0xe2, 0xec, 0x83, 0x8f, 0x81, 0x49, 0xb2, 0xde, 0x83, 0x3a, 0x8f, - 0x16, 0x27, 0x21, 0x2e, 0x41, 0xdd, 0x60, 0xd1, 0x68, 0x2a, 0x38, 0x2b, 0xed, 0x49, 0xe5, 0x5a, - 0x32, 0x51, 0xcc, 0x19, 0x75, 0x0b, 0x66, 0xd4, 0x00, 0x74, 0x12, 0x72, 0x0d, 0x66, 0xf6, 0x95, - 0x40, 0x37, 0x87, 0x9e, 0xcf, 0x84, 0x56, 0xa0, 0xb0, 0x2a, 0xa8, 0xff, 0x54, 0x03, 0x6a, 0xec, - 0x04, 0x25, 0x59, 0xc4, 0x75, 0xa8, 0x05, 0xe4, 0x65, 0xb8, 0x46, 0x9d, 0x1f, 0x79, 0x1c, 0xc3, - 0xb7, 0xf1, 0x8c, 0x1f, 0x7d, 0x1a, 0xea, 0x7e, 0x70, 0x60, 0x87, 0xe7, 0x7e, 0x27, 0x47, 0x0b, - 0x6e, 0x52, 0x56, 0xcc, 0x25, 0xa8, 0x28, 0xf3, 0x05, 0x71, 0xe2, 0x57, 0x20, 0xca, 0x9c, 0x10, - 0x73, 0x09, 0x74, 0x07, 0x9a, 0xfd, 0x1d, 0xd2, 0x7f, 0x4e, 0x4c, 0x71, 0xd4, 0x77, 0x7a, 0xb4, - 0xf0, 0x32, 0x67, 0xc6, 0xa1, 0x14, 0x2d, 0xbb, 0xcf, 0xb4, 0xdb, 0x18, 0xa7, 0x6c, 0xa6, 0x71, - 0xcc, 0x25, 0xd0, 0x2a, 0xb4, 0xad, 0xbe, 0xeb, 0xac, 0xee, 0xba, 0x5f, 0xb6, 0xc4, 0x99, 0xde, - 0xd9, 0xd1, 0xe2, 0xbd, 0x90, 0x1d, 0xc7, 0x92, 0x21, 0x4c, 0x6f, 0x97, 0x6e, 0x8b, 0x5b, 0xe3, - 0xc2, 0x30, 0x76, 0x1c, 0x4b, 0xea, 0x73, 0x42, 0x9f, 0xd9, 0x4e, 0x7e, 0x0f, 0xea, 0xac, 0xcb, - 0xd1, 0x7b, 0x72, 0xf6, 0xac, 0x54, 0x52, 0xee, 0x88, 0x25, 0x54, 0x15, 0xe1, 0xb0, 0xfe, 0x57, - 0x71, 0xa6, 0xc6, 0xc1, 0x11, 0x7a, 0xe3, 0x38, 0x6f, 0x42, 0x53, 0xa8, 0x42, 0xad, 0x70, 0x2b, - 0x64, 0x78, 0x03, 0xea, 0xdc, 0x31, 0xb3, 0xdb, 0xf3, 0x16, 0xb4, 0xa3, 0xce, 0x1c, 0xcd, 0xc2, - 0x7a, 0x27, 0x87, 0xe5, 0xe7, 0x2a, 0x50, 0xe7, 0x27, 0x49, 0xe9, 0xa1, 0x56, 0xf6, 0x82, 0x93, - 0xa3, 0x0f, 0xa6, 0x64, 0x37, 0xb8, 0xc7, 0x36, 0x6a, 0x74, 0x61, 0x1e, 0xdd, 0xcc, 0x3a, 0x57, - 0x20, 0xbd, 0x11, 0xf2, 0xe3, 0x58, 0xb4, 0x40, 0x9d, 0x8f, 0xa1, 0x1d, 0x49, 0xa1, 0x25, 0x55, - 0xa5, 0x17, 0x46, 0xaa, 0x22, 0x59, 0xa4, 0x00, 0xfc, 0x66, 0x19, 0xaa, 0x2b, 0xd6, 0x7e, 0xaa, - 0x1f, 0x6e, 0x84, 0x5e, 0x5d, 0x34, 0x1c, 0xac, 0x58, 0xfb, 0x8a, 0x53, 0xeb, 0xab, 0xa1, 0xc5, - 0xdd, 0x52, 0xab, 0x77, 0x66, 0xf4, 0x0a, 0x2c, 0x86, 0xe1, 0x15, 0xfb, 0xa5, 0x26, 0xd4, 0xd8, - 0x21, 0x6d, 0xd6, 0x38, 0x75, 0x30, 0x2c, 0xae, 0x18, 0x0b, 0x03, 0xb1, 0x09, 0x97, 0xf1, 0xf3, - 0x71, 0xca, 0x08, 0x8a, 0xc7, 0x29, 0x1e, 0xd5, 0xa2, 0xac, 0x98, 0x4b, 0xd0, 0x22, 0x77, 0xad, - 0x5d, 0x22, 0x86, 0xa9, 0x82, 0x22, 0x1f, 0x59, 0xbb, 0x04, 0x33, 0x7e, 0x2a, 0xb7, 0x63, 0xf8, - 0x3b, 0x62, 0x84, 0x2a, 0x90, 0x5b, 0x33, 0xfc, 0x1d, 0xcc, 0xf8, 0xa9, 0x9c, 0x43, 0xb7, 0x84, - 0x8d, 0x71, 0xe4, 0xe8, 0x4e, 0x11, 0x33, 0x7e, 0x2a, 0xe7, 0x5b, 0x5f, 0x25, 0x62, 0x4c, 0x2a, - 0x90, 0xdb, 0xb4, 0xbe, 0x4a, 0x30, 0xe3, 0x8f, 0x87, 0xf0, 0xd6, 0x78, 0x5d, 0x23, 0x0d, 0xe1, - 0x4f, 0x60, 0x36, 0x50, 0x8e, 0x1a, 0xc4, 0x4d, 0x81, 0x0b, 0x05, 0x7a, 0x51, 0x64, 0x70, 0x02, - 0x83, 0x3a, 0x01, 0xdb, 0x00, 0x67, 0x3b, 0xc1, 0x1b, 0x50, 0xff, 0xac, 0x65, 0x06, 0x3b, 0x6a, - 0x76, 0x5d, 0x19, 0xf2, 0xa8, 0xda, 0x26, 0x1a, 0xf2, 0x64, 0xad, 0x73, 0x9c, 0x15, 0xa8, 0x51, - 0xf3, 0x99, 0xcc, 0x8e, 0x63, 0xab, 0xfb, 0x58, 0x03, 0xb0, 0xdc, 0xd1, 0x1c, 0x67, 0x0e, 0x6a, - 0xd4, 0x42, 0x72, 0xba, 0x64, 0x0e, 0x6a, 0xd4, 0xee, 0xf2, 0x73, 0xa9, 0xb6, 0xd5, 0xdc, 0x6a, - 0x98, 0x7b, 0x06, 0x66, 0x55, 0x75, 0xe4, 0xa0, 0xfc, 0x59, 0x13, 0x6a, 0xec, 0xc6, 0x43, 0xd2, - 0x23, 0x7f, 0x0c, 0x66, 0xb8, 0xfe, 0x96, 0xc4, 0x12, 0xbc, 0x92, 0x79, 0xe1, 0x49, 0xbd, 0x47, - 0x21, 0x4c, 0x40, 0x88, 0x60, 0x15, 0x61, 0xfc, 0x45, 0x05, 0x83, 0x52, 0x2c, 0xf2, 0x56, 0xb4, - 0x78, 0xad, 0x15, 0x5c, 0xb7, 0x61, 0xb2, 0x7c, 0x09, 0x1c, 0xae, 0x64, 0xd1, 0x12, 0xb4, 0xe8, - 0xd4, 0x4a, 0xbb, 0x4b, 0xb8, 0xed, 0x99, 0xd1, 0xf2, 0x3d, 0xc1, 0x8d, 0x23, 0x39, 0x3a, 0xb1, - 0xf7, 0x0d, 0xcf, 0x64, 0xb5, 0x12, 0x3e, 0x7c, 0x76, 0x34, 0xc8, 0x72, 0xc8, 0x8e, 0x63, 0x49, - 0xf4, 0x00, 0xa6, 0x4c, 0x12, 0xc5, 0x09, 0x84, 0x53, 0x7f, 0x6a, 0x34, 0xd0, 0x4a, 0x2c, 0x80, - 0x65, 0x69, 0x5a, 0xa7, 0x70, 0x6f, 0xe8, 0x17, 0x2e, 0x36, 0x18, 0x54, 0x7c, 0xad, 0x31, 0x96, - 0xd4, 0x4f, 0xc3, 0x8c, 0xa2, 0xb7, 0x4f, 0x74, 0xd5, 0x21, 0xeb, 0x92, 0xe3, 0x2c, 0x44, 0x5b, - 0x94, 0x77, 0xd4, 0x65, 0x47, 0xee, 0x8e, 0x44, 0x08, 0x3e, 0x84, 0x56, 0xa8, 0x18, 0x74, 0x57, - 0xad, 0xc3, 0xf9, 0xe2, 0x3a, 0x44, 0x3a, 0x15, 0x68, 0xeb, 0xd0, 0x8e, 0x34, 0x84, 0x16, 0x55, - 0xb8, 0xb7, 0x8b, 0xe1, 0x62, 0xed, 0x0a, 0x3c, 0x0c, 0x53, 0x92, 0xa2, 0xd0, 0xb2, 0x8a, 0xf8, - 0x4e, 0x31, 0xa2, 0xac, 0xe6, 0x78, 0xd5, 0x13, 0x69, 0x4c, 0xd6, 0x4a, 0x35, 0xd6, 0xca, 0x1f, - 0x36, 0xa1, 0x15, 0xdd, 0x32, 0xca, 0xd8, 0x63, 0xee, 0x79, 0x76, 0xe1, 0x1e, 0x33, 0x94, 0xef, - 0x3e, 0xf5, 0x6c, 0x4c, 0x25, 0xa8, 0x8a, 0x03, 0x2b, 0x88, 0x5c, 0xf5, 0x6c, 0xb1, 0xe8, 0x13, - 0xca, 0x8e, 0xb9, 0x14, 0x7a, 0xac, 0x5a, 0x79, 0x6d, 0xc4, 0x29, 0xb4, 0x02, 0x92, 0x6b, 0xe9, - 0x3d, 0x68, 0x5b, 0x74, 0xe9, 0xb7, 0x16, 0xcf, 0xbc, 0x6f, 0x17, 0xc3, 0xf5, 0x42, 0x11, 0x1c, - 0x4b, 0xd3, 0xba, 0x6d, 0x1b, 0xfb, 0xd4, 0xaf, 0x19, 0x58, 0x63, 0xdc, 0xba, 0xdd, 0x8b, 0x85, - 0xb0, 0x8c, 0x80, 0x6e, 0x8a, 0xb5, 0x4b, 0xb3, 0x60, 0x64, 0x89, 0xbb, 0x2a, 0x5e, 0xbf, 0x7c, - 0x90, 0x9a, 0x69, 0xb9, 0x1b, 0x5f, 0x1a, 0x03, 0x65, 0xe4, 0x6c, 0x4b, 0x35, 0xc8, 0x57, 0x46, - 0xed, 0x71, 0x35, 0x28, 0xaf, 0x8e, 0xf4, 0x63, 0x50, 0x7d, 0xea, 0xd9, 0xf9, 0x73, 0x35, 0x53, - 0x77, 0x4e, 0xf6, 0x49, 0xd5, 0x13, 0xf2, 0x17, 0xf4, 0x91, 0x4e, 0x72, 0x71, 0xa4, 0x4e, 0xcf, - 0x61, 0x7a, 0x4f, 0x4c, 0xe8, 0xd7, 0x54, 0x7f, 0x7b, 0x33, 0xe1, 0x6f, 0xd4, 0xc3, 0x36, 0x3c, - 0xc2, 0x2f, 0x5a, 0x48, 0x33, 0xf9, 0xb8, 0xf3, 0xe4, 0xfd, 0x70, 0xfd, 0x31, 0xd1, 0x48, 0x91, - 0xec, 0x5b, 0x8e, 0xf5, 0x33, 0x65, 0x68, 0x45, 0x97, 0xc8, 0xd2, 0xd1, 0xf9, 0x96, 0xe5, 0xaf, - 0x11, 0xc3, 0x24, 0x9e, 0xf0, 0xdb, 0xf3, 0x85, 0xb7, 0xd3, 0xba, 0x3d, 0x21, 0x81, 0x23, 0x59, - 0xfd, 0x04, 0xb4, 0x42, 0x6a, 0xce, 0xa6, 0xec, 0xbb, 0x15, 0x68, 0x88, 0xeb, 0x67, 0xc9, 0x4a, - 0xdc, 0x86, 0x86, 0x6d, 0x1c, 0xb8, 0x7b, 0xe1, 0x96, 0xe9, 0x4c, 0xc1, 0x8d, 0xb6, 0xee, 0x43, - 0xc6, 0x8d, 0x85, 0x14, 0xfa, 0x0c, 0xd4, 0x6d, 0x6b, 0xd7, 0x0a, 0xc4, 0xf0, 0x71, 0xba, 0x50, - 0x9c, 0x1d, 0x54, 0x73, 0x19, 0x5a, 0x38, 0xbb, 0x75, 0x12, 0xde, 0x19, 0x2e, 0x2c, 0xfc, 0x19, - 0xe3, 0xc6, 0x42, 0x4a, 0xbf, 0x0f, 0x0d, 0x5e, 0x9d, 0xc9, 0x26, 0x09, 0xb5, 0x25, 0xb1, 0xa5, - 0xb3, 0xba, 0xe5, 0xac, 0x4a, 0x8f, 0x43, 0x83, 0x17, 0x9e, 0x63, 0x35, 0xdf, 0x79, 0x9d, 0xed, - 0x77, 0x6c, 0xfd, 0x61, 0x7c, 0xf8, 0xf7, 0xf1, 0xcf, 0x32, 0xf4, 0x27, 0x70, 0x68, 0xc5, 0x08, - 0x8c, 0x2d, 0xc3, 0x27, 0x98, 0xf4, 0x5d, 0xcf, 0xcc, 0x44, 0xf5, 0x78, 0x96, 0x88, 0x50, 0xe7, - 0xa3, 0x0a, 0xbe, 0x1f, 0x85, 0x0e, 0xff, 0xf7, 0x84, 0x0e, 0xff, 0xb8, 0x96, 0x13, 0xcf, 0x1b, - 0x27, 0x92, 0x41, 0x0d, 0x2e, 0x15, 0xd0, 0xbb, 0xa9, 0xae, 0xbd, 0x4f, 0x15, 0x48, 0x2a, 0x8b, - 0xef, 0x9b, 0x6a, 0x44, 0xaf, 0x48, 0x56, 0x09, 0xe9, 0xdd, 0x4d, 0x86, 0xf4, 0xce, 0x14, 0x48, - 0xa7, 0x62, 0x7a, 0x37, 0xd5, 0x98, 0x5e, 0x51, 0xe9, 0x72, 0x50, 0xef, 0xff, 0x59, 0x18, 0xed, - 0xd7, 0x72, 0xc2, 0x3e, 0x9f, 0x56, 0xc3, 0x3e, 0x23, 0xac, 0xe6, 0x87, 0x15, 0xf7, 0xf9, 0xf5, - 0x46, 0x4e, 0xdc, 0x67, 0x41, 0x89, 0xfb, 0x8c, 0xa8, 0x59, 0x32, 0xf0, 0x73, 0x53, 0x0d, 0xfc, - 0x9c, 0x2a, 0x90, 0x54, 0x22, 0x3f, 0x0b, 0x4a, 0xe4, 0xa7, 0xa8, 0x50, 0x29, 0xf4, 0xb3, 0xa0, - 0x84, 0x7e, 0x8a, 0x04, 0xa5, 0xd8, 0xcf, 0x82, 0x12, 0xfb, 0x29, 0x12, 0x94, 0x82, 0x3f, 0x0b, - 0x4a, 0xf0, 0xa7, 0x48, 0x50, 0x8a, 0xfe, 0xdc, 0x54, 0xa3, 0x3f, 0xc5, 0xfd, 0x23, 0x29, 0xfd, - 0x47, 0x81, 0x9a, 0xff, 0xc6, 0x40, 0xcd, 0x2f, 0x56, 0x73, 0x02, 0x30, 0x38, 0x3b, 0x00, 0x73, - 0x21, 0x5f, 0x93, 0xc5, 0x11, 0x98, 0xf1, 0x67, 0x81, 0x74, 0x08, 0xe6, 0xbd, 0x44, 0x08, 0xe6, - 0x74, 0x81, 0xb0, 0x1a, 0x83, 0xf9, 0x3f, 0x13, 0x64, 0xf8, 0xfd, 0xc6, 0x88, 0xfd, 0xf4, 0x0d, - 0x79, 0x3f, 0x3d, 0x62, 0x26, 0x4b, 0x6f, 0xa8, 0x6f, 0xab, 0x1b, 0xea, 0x73, 0x63, 0xc8, 0x2a, - 0x3b, 0xea, 0x8d, 0xac, 0x1d, 0x75, 0x77, 0x0c, 0x94, 0xdc, 0x2d, 0xf5, 0xfd, 0xf4, 0x96, 0xfa, - 0xc2, 0x18, 0x78, 0x99, 0x7b, 0xea, 0x8d, 0xac, 0x3d, 0xf5, 0x38, 0xb5, 0xcb, 0xdd, 0x54, 0x7f, - 0x46, 0xd9, 0x54, 0x9f, 0x1d, 0xa7, 0xbb, 0xe2, 0xc9, 0xe1, 0x73, 0x39, 0xbb, 0xea, 0x77, 0xc7, - 0x81, 0x19, 0x1d, 0xc4, 0xfe, 0xd1, 0xbe, 0x58, 0x2d, 0xe6, 0xf7, 0xde, 0x84, 0x56, 0x78, 0xd1, - 0x46, 0xff, 0x0a, 0x34, 0xc3, 0x37, 0x47, 0x49, 0xcf, 0x39, 0x1a, 0x6d, 0xea, 0xf8, 0xea, 0x59, - 0xa4, 0xd0, 0x6d, 0xa8, 0xd1, 0x7f, 0xc2, 0x2d, 0xce, 0x8f, 0x77, 0xa1, 0x87, 0x16, 0x82, 0x99, - 0x9c, 0xfe, 0x6f, 0x47, 0x00, 0xa4, 0xa7, 0x18, 0xe3, 0x16, 0xfb, 0x3e, 0x1d, 0xcc, 0xec, 0x80, - 0x78, 0xec, 0x22, 0x57, 0xe1, 0x53, 0x85, 0xb8, 0x04, 0x6a, 0x2d, 0x01, 0xf1, 0xb0, 0x10, 0x47, - 0x8f, 0xa0, 0x15, 0x06, 0x52, 0xb5, 0x1a, 0x83, 0x7a, 0x77, 0x6c, 0xa8, 0x30, 0xb4, 0x87, 0x23, - 0x08, 0xb4, 0x08, 0x35, 0xdf, 0xf5, 0x02, 0xad, 0xce, 0xa0, 0xde, 0x19, 0x1b, 0x6a, 0xd3, 0xf5, - 0x02, 0xcc, 0x44, 0x79, 0xd3, 0xa4, 0x97, 0xae, 0x93, 0x34, 0x4d, 0x19, 0xb1, 0xff, 0xb5, 0x1a, - 0x8d, 0xa1, 0xcb, 0xc2, 0x1b, 0xb9, 0x0d, 0x5d, 0x1c, 0x5f, 0x4b, 0xb2, 0x57, 0x22, 0xb1, 0x08, - 0xe2, 0x9a, 0xe0, 0xeb, 0x9b, 0xf3, 0xd0, 0xe9, 0xbb, 0xfb, 0xc4, 0xc3, 0xf1, 0x15, 0x27, 0x71, - 0x0b, 0x2d, 0x45, 0x47, 0x3a, 0xb4, 0x76, 0x2c, 0x93, 0xf4, 0xfa, 0x62, 0xfc, 0x6b, 0xe1, 0x28, - 0x8d, 0x1e, 0x40, 0x8b, 0xc5, 0xd8, 0xc3, 0x08, 0xff, 0x64, 0x95, 0xe4, 0xa1, 0xfe, 0x10, 0x80, - 0x16, 0xc4, 0x0a, 0xbf, 0x67, 0x05, 0xac, 0x0f, 0x5b, 0x38, 0x4a, 0xd3, 0x0a, 0xb3, 0x7b, 0x64, - 0x72, 0x85, 0x9b, 0xbc, 0xc2, 0x49, 0x3a, 0xba, 0x0a, 0xaf, 0x32, 0x5a, 0x62, 0x8b, 0xc9, 0x43, - 0xf5, 0x2d, 0x9c, 0x9d, 0xc9, 0xee, 0xcd, 0x19, 0x03, 0x7e, 0xaf, 0x9d, 0x05, 0xef, 0xea, 0x38, - 0x26, 0xa0, 0x0b, 0x70, 0xd8, 0x24, 0xdb, 0xc6, 0x9e, 0x1d, 0x3c, 0x21, 0xbb, 0x43, 0xdb, 0x08, - 0x48, 0xcf, 0x64, 0x8f, 0x6d, 0xdb, 0x38, 0x9d, 0x81, 0x2e, 0xc1, 0x2b, 0x82, 0xc8, 0xdd, 0x98, - 0x6a, 0xa3, 0x67, 0xb2, 0xb7, 0xa7, 0x6d, 0x9c, 0x95, 0xa5, 0x7f, 0xa7, 0x46, 0x95, 0xce, 0x4c, - 0xfb, 0x7d, 0xa8, 0x1a, 0xa6, 0x29, 0xa6, 0xcd, 0x2b, 0x13, 0x3a, 0x88, 0x78, 0x4f, 0x4e, 0x11, - 0xd0, 0x46, 0x74, 0xe5, 0x8e, 0x4f, 0x9c, 0xd7, 0x27, 0xc5, 0x8a, 0xbe, 0x01, 0x20, 0x70, 0x28, - 0xe2, 0x1e, 0xbf, 0x38, 0x5e, 0xfd, 0xc1, 0x10, 0xa3, 0xfb, 0xe4, 0x02, 0x07, 0xdd, 0x87, 0x1a, - 0xab, 0x21, 0x9f, 0x58, 0xaf, 0x4e, 0x8a, 0xf7, 0x88, 0xd7, 0x8f, 0x61, 0xe8, 0x7d, 0x7e, 0xf7, - 0x4d, 0xba, 0x70, 0x59, 0x56, 0x2f, 0x5c, 0x2e, 0x41, 0xdd, 0x0a, 0xc8, 0x6e, 0xfa, 0xfe, 0xed, - 0x48, 0x53, 0x15, 0x23, 0x0f, 0x17, 0x1d, 0x79, 0x0f, 0xf0, 0xc3, 0xe8, 0x2e, 0x76, 0x72, 0x3c, - 0xbc, 0x0b, 0x35, 0x2a, 0x9e, 0x5a, 0x4b, 0x8e, 0x53, 0x30, 0x93, 0xd4, 0x2f, 0x43, 0x8d, 0x36, - 0x76, 0x44, 0xeb, 0x44, 0x7d, 0x2a, 0x51, 0x7d, 0x96, 0xa6, 0xa0, 0xed, 0x0e, 0x89, 0xc7, 0x1c, - 0x43, 0xff, 0x97, 0x9a, 0x74, 0x29, 0xae, 0x27, 0xdb, 0xd8, 0xb5, 0x89, 0x47, 0x4e, 0xd9, 0xca, - 0x70, 0xc2, 0xca, 0x6e, 0x4c, 0x8e, 0x96, 0xb2, 0x33, 0x9c, 0xb0, 0xb3, 0x1f, 0x00, 0x33, 0x65, - 0x69, 0x0f, 0x15, 0x4b, 0xbb, 0x3e, 0x39, 0xa2, 0x62, 0x6b, 0xa4, 0xc8, 0xd6, 0x56, 0x54, 0x5b, - 0xeb, 0x8e, 0xa7, 0xf2, 0x68, 0x6a, 0x1a, 0xc3, 0xda, 0xbe, 0x90, 0x6b, 0x6d, 0x4b, 0x8a, 0xb5, - 0x4d, 0x5a, 0xf4, 0x27, 0x64, 0x6f, 0xff, 0x50, 0x83, 0x1a, 0x9d, 0x1e, 0xd1, 0xaa, 0x6c, 0x6b, - 0xef, 0x4e, 0x34, 0xb5, 0xca, 0x76, 0xb6, 0x9e, 0xb0, 0xb3, 0xab, 0x93, 0x21, 0xa5, 0x6c, 0x6c, - 0x3d, 0x61, 0x63, 0x13, 0xe2, 0xa5, 0xec, 0x6b, 0x4d, 0xb1, 0xaf, 0xcb, 0x93, 0xa1, 0x29, 0xb6, - 0x65, 0x14, 0xd9, 0xd6, 0x5d, 0xd5, 0xb6, 0xc6, 0x5c, 0xbd, 0xb1, 0xb5, 0xca, 0x18, 0x76, 0xf5, - 0x41, 0xae, 0x5d, 0xdd, 0x56, 0xec, 0x6a, 0x92, 0x62, 0x3f, 0x21, 0x9b, 0xba, 0xca, 0x17, 0x9d, - 0xe2, 0x9e, 0xf1, 0x98, 0x8b, 0x4e, 0xfd, 0x1a, 0xb4, 0xe3, 0xb7, 0xec, 0x19, 0xd7, 0xf3, 0x39, - 0x5b, 0x58, 0x6a, 0x98, 0xd4, 0xaf, 0x40, 0x3b, 0x7e, 0x9f, 0x9e, 0x51, 0x96, 0xcf, 0x32, 0x85, - 0x94, 0x48, 0xe9, 0xab, 0x70, 0x38, 0xfd, 0x7a, 0x36, 0x23, 0x0e, 0x2f, 0xdd, 0x2d, 0x0f, 0x9f, - 0xa2, 0x48, 0x24, 0xfd, 0x05, 0xcc, 0x26, 0xde, 0xc3, 0x4e, 0x8c, 0x81, 0xae, 0x48, 0x4b, 0xe4, - 0xaa, 0xd8, 0x83, 0x67, 0xdf, 0x96, 0x8f, 0x17, 0xc2, 0xfa, 0x0a, 0xcc, 0x16, 0x54, 0x7e, 0x9c, - 0xcb, 0xf2, 0x5f, 0x82, 0xa9, 0x51, 0x75, 0xff, 0x04, 0x2e, 0xf3, 0x07, 0xd0, 0x49, 0xbd, 0xe5, - 0x4f, 0x16, 0xb3, 0x01, 0x30, 0x88, 0x78, 0x84, 0xd1, 0x5e, 0x9a, 0xe0, 0xe9, 0x02, 0x93, 0xc3, - 0x12, 0x86, 0xfe, 0x3b, 0x65, 0x38, 0x9c, 0x7e, 0xc8, 0x3f, 0xee, 0xe6, 0x47, 0x83, 0x26, 0xc3, - 0x8a, 0x5e, 0x7c, 0x84, 0x49, 0xf4, 0x08, 0xa6, 0x7d, 0xdb, 0xea, 0x93, 0xe5, 0x1d, 0xc3, 0x19, - 0x10, 0x5f, 0xec, 0x68, 0x0a, 0x1e, 0xe3, 0x6f, 0xc6, 0x12, 0x58, 0x11, 0xd7, 0x5f, 0xc0, 0x94, - 0x94, 0x89, 0x6e, 0x41, 0xc5, 0x1d, 0xa6, 0xee, 0x35, 0xe6, 0x63, 0x3e, 0x0e, 0xfd, 0x0d, 0x57, - 0xdc, 0x61, 0xda, 0x25, 0x65, 0xf7, 0xad, 0x2a, 0xee, 0xab, 0x3f, 0x80, 0xc3, 0xe9, 0xb7, 0xf2, - 0xc9, 0xee, 0x39, 0x93, 0x8a, 0x12, 0xf0, 0x6e, 0x4a, 0x6e, 0xf9, 0x17, 0xe0, 0x50, 0xf2, 0x05, - 0x7c, 0xc6, 0x6b, 0x9c, 0xf8, 0x51, 0x53, 0x18, 0xae, 0x9f, 0xff, 0x85, 0x32, 0xcc, 0xaa, 0x0d, - 0x41, 0x47, 0x01, 0xa9, 0x94, 0x75, 0xd7, 0x21, 0x9d, 0x12, 0x7a, 0x15, 0x0e, 0xab, 0xf4, 0x45, - 0xd3, 0xec, 0x94, 0xd3, 0xec, 0x74, 0xd8, 0xea, 0x54, 0x90, 0x06, 0x47, 0x12, 0x3d, 0xc4, 0x06, - 0xd1, 0x4e, 0x15, 0xbd, 0x0e, 0xaf, 0x26, 0x73, 0x86, 0xb6, 0xd1, 0x27, 0x9d, 0x9a, 0xfe, 0xfd, - 0x0a, 0xd4, 0x9e, 0xfa, 0xc4, 0xd3, 0xff, 0xb9, 0x12, 0xbe, 0xd2, 0xb8, 0x01, 0x35, 0xf6, 0x38, - 0x5d, 0x7a, 0xcd, 0x58, 0x4e, 0xbc, 0x66, 0x54, 0x5e, 0xc4, 0xc5, 0xaf, 0x19, 0x6f, 0x40, 0x8d, - 0x3d, 0x47, 0x9f, 0x5c, 0xf2, 0xa7, 0xcb, 0xd0, 0x8e, 0x9f, 0x86, 0x4f, 0x2c, 0x2f, 0xbf, 0x0a, - 0xa9, 0xa8, 0xaf, 0x42, 0xce, 0x43, 0xdd, 0x63, 0xef, 0x37, 0xf8, 0x28, 0x93, 0x7c, 0x6b, 0xc2, - 0x0a, 0xc4, 0x9c, 0x45, 0x27, 0x30, 0x25, 0x3f, 0x7c, 0x9f, 0xbc, 0x1a, 0xa7, 0xc4, 0x57, 0x6f, - 0x7a, 0xa6, 0xbf, 0xe8, 0x79, 0xc6, 0x81, 0x30, 0x4c, 0x95, 0xa8, 0xcf, 0x41, 0x6d, 0xc3, 0x72, - 0x06, 0xd9, 0x8f, 0x48, 0xf5, 0x6f, 0x95, 0xa1, 0x29, 0x2e, 0xef, 0xea, 0x0b, 0x50, 0x5d, 0x27, - 0x2f, 0x68, 0x45, 0xc4, 0xb5, 0xe1, 0x54, 0x45, 0x1e, 0xb1, 0x56, 0x08, 0x7e, 0x1c, 0xb2, 0xe9, - 0x37, 0xa3, 0x69, 0x72, 0x72, 0xd9, 0x1b, 0x50, 0x63, 0xef, 0xd5, 0x27, 0x97, 0xfc, 0xad, 0x16, - 0x34, 0xf8, 0x4b, 0x4c, 0xfd, 0x9b, 0x2d, 0x68, 0xf0, 0x37, 0xec, 0xe8, 0x36, 0x34, 0xfd, 0xbd, - 0xdd, 0x5d, 0xc3, 0x3b, 0xd0, 0xb2, 0x3f, 0x98, 0xa8, 0x3c, 0x79, 0xef, 0x6e, 0x72, 0x5e, 0x1c, - 0x0a, 0xa1, 0x6b, 0x50, 0xeb, 0x1b, 0xdb, 0x24, 0x75, 0x9c, 0x9b, 0x25, 0xbc, 0x6c, 0x6c, 0x13, - 0xcc, 0xd8, 0xd1, 0x5d, 0x68, 0x09, 0xb5, 0xf8, 0x22, 0x9e, 0x33, 0xba, 0xdc, 0x50, 0x99, 0x91, - 0x94, 0x7e, 0x1f, 0x9a, 0xa2, 0x32, 0xe8, 0x4e, 0xf4, 0x0e, 0x35, 0x19, 0x79, 0xce, 0x6c, 0x42, - 0xf4, 0xb8, 0x39, 0x7a, 0x91, 0xfa, 0x97, 0x15, 0xa8, 0xd1, 0xca, 0x7d, 0x6c, 0x24, 0x74, 0x1c, - 0xc0, 0x36, 0xfc, 0x60, 0x63, 0xcf, 0xb6, 0x89, 0x29, 0x5e, 0xd8, 0x49, 0x14, 0x74, 0x0e, 0x0e, - 0xf1, 0x94, 0xbf, 0xb3, 0xb9, 0xd7, 0xef, 0x93, 0xe8, 0x99, 0x68, 0x92, 0x8c, 0x16, 0xa1, 0xce, - 0xbe, 0xaa, 0x26, 0x56, 0x85, 0x6f, 0x17, 0xf6, 0x6c, 0x77, 0xc3, 0x72, 0x44, 0x6d, 0xb8, 0xa4, - 0xee, 0x42, 0x3b, 0xa2, 0x51, 0x27, 0x1c, 0x5a, 0x8e, 0x63, 0x39, 0x03, 0x61, 0xd1, 0x61, 0x92, - 0x4e, 0x3a, 0xf4, 0xaf, 0xa8, 0x6f, 0x1d, 0x8b, 0x14, 0xa5, 0x6f, 0x1b, 0x96, 0x2d, 0xaa, 0x58, - 0xc7, 0x22, 0x45, 0x91, 0xf6, 0xc4, 0xcb, 0xff, 0x1a, 0x6b, 0x60, 0x98, 0xd4, 0x3f, 0x2a, 0x47, - 0x8f, 0xb1, 0xb3, 0x1e, 0x67, 0xa6, 0x62, 0x49, 0x73, 0x72, 0x40, 0x9b, 0x4f, 0x08, 0x52, 0x88, - 0xfa, 0x28, 0x34, 0x5c, 0xc7, 0xb6, 0x1c, 0x22, 0x62, 0x47, 0x22, 0x95, 0xe8, 0xe3, 0x7a, 0xaa, - 0x8f, 0x45, 0xfe, 0xaa, 0x69, 0xd1, 0x2a, 0x36, 0xe2, 0x7c, 0x4e, 0x41, 0xef, 0x41, 0xd3, 0x24, - 0xfb, 0x56, 0x9f, 0xf8, 0x5a, 0x93, 0x99, 0xde, 0xc9, 0x91, 0x7d, 0xbb, 0xc2, 0x78, 0x71, 0x28, - 0xa3, 0x07, 0xd0, 0xe0, 0xa4, 0xa8, 0x49, 0x65, 0xa9, 0x49, 0x71, 0xa5, 0x2b, 0x23, 0x2a, 0x5d, - 0x2d, 0xa8, 0x74, 0x2d, 0x59, 0xe9, 0x79, 0x13, 0x20, 0x36, 0x37, 0x34, 0x05, 0xcd, 0xa7, 0xce, - 0x73, 0xc7, 0x7d, 0xe1, 0x74, 0x4a, 0x34, 0xf1, 0x78, 0x7b, 0x9b, 0x96, 0xd2, 0x29, 0xd3, 0x04, - 0xe5, 0xb3, 0x9c, 0x41, 0xa7, 0x82, 0x00, 0x1a, 0x34, 0x41, 0xcc, 0x4e, 0x95, 0xfe, 0xbf, 0xc7, - 0xf4, 0xd7, 0xa9, 0xa1, 0xd7, 0xe0, 0x95, 0x9e, 0xd3, 0x77, 0x77, 0x87, 0x46, 0x60, 0x6d, 0xd9, - 0xe4, 0x19, 0xf1, 0x7c, 0xcb, 0x75, 0x3a, 0x75, 0xfd, 0x3f, 0xca, 0xfc, 0xd4, 0x57, 0xbf, 0x0b, - 0xd3, 0xca, 0xa7, 0x28, 0x34, 0x68, 0xb2, 0x2f, 0x03, 0xc4, 0xeb, 0x6e, 0x91, 0x64, 0x56, 0xc2, - 0x9f, 0xc5, 0x8b, 0x25, 0x0b, 0x4f, 0xe9, 0xf7, 0x00, 0xa4, 0x0f, 0x50, 0x1c, 0x07, 0xd8, 0x3a, - 0x08, 0x88, 0xcf, 0x3f, 0x3e, 0x41, 0x21, 0x6a, 0x58, 0xa2, 0xc8, 0xf8, 0x15, 0x05, 0x5f, 0xbf, - 0x0e, 0x20, 0x7d, 0x7e, 0x82, 0xfa, 0x0f, 0x4d, 0x2d, 0x25, 0xc1, 0x92, 0x64, 0xbd, 0x2b, 0x5a, - 0x10, 0x7e, 0x68, 0x22, 0xac, 0x01, 0x8f, 0xd2, 0xc9, 0x35, 0x60, 0x14, 0x7d, 0x15, 0x20, 0xfe, - 0xd6, 0x82, 0xbe, 0x10, 0x0d, 0xd1, 0xef, 0x40, 0xcd, 0x34, 0x02, 0x43, 0x8c, 0x8e, 0xaf, 0x27, - 0x66, 0xa8, 0x58, 0x04, 0x33, 0x36, 0xfd, 0xb7, 0xcb, 0x30, 0x2d, 0x7f, 0x57, 0x42, 0x7f, 0x1f, - 0x6a, 0xec, 0xc3, 0x14, 0x77, 0x60, 0x5a, 0xfe, 0xb0, 0x44, 0xea, 0xbb, 0xbe, 0x1c, 0x4f, 0x16, - 0xc5, 0x8a, 0x80, 0xde, 0x8b, 0xaa, 0xf4, 0xb1, 0xa1, 0x2e, 0x41, 0x53, 0x7c, 0xa7, 0x42, 0x3f, - 0x0d, 0xed, 0xf8, 0xb3, 0x14, 0x74, 0x8c, 0xe0, 0xf4, 0x50, 0xcb, 0x22, 0xa9, 0xff, 0x63, 0x15, - 0xea, 0x4c, 0x9d, 0xfa, 0x37, 0x2a, 0xb2, 0x25, 0xea, 0xdf, 0x2f, 0xe7, 0xee, 0xf9, 0xae, 0x28, - 0x9f, 0x07, 0x98, 0x4d, 0x7d, 0x8e, 0x45, 0x7c, 0x85, 0x42, 0x1d, 0x40, 0xaf, 0x43, 0xd3, 0x21, - 0xc1, 0x0b, 0xd7, 0x7b, 0xce, 0x9c, 0x64, 0x36, 0xfd, 0x09, 0x16, 0x26, 0xb5, 0xce, 0x79, 0x70, - 0xc8, 0x8c, 0xae, 0x42, 0x9d, 0x78, 0x9e, 0xeb, 0x31, 0xd7, 0x99, 0x4d, 0x7d, 0xd8, 0x24, 0xfe, - 0xe2, 0xc5, 0x2a, 0xe5, 0xc2, 0x9c, 0x19, 0x5d, 0x85, 0x57, 0x7d, 0xee, 0x2d, 0x7c, 0xed, 0xe8, - 0x8b, 0xf7, 0xd3, 0x62, 0x54, 0xc9, 0xce, 0x9c, 0xff, 0x74, 0x38, 0x91, 0x4a, 0x0e, 0x56, 0x92, - 0x3d, 0xaf, 0x8c, 0xda, 0x50, 0x67, 0x05, 0x75, 0x2a, 0xb2, 0x7b, 0x56, 0xe7, 0xaf, 0x40, 0x53, - 0x54, 0x9d, 0xd2, 0x17, 0x79, 0x1d, 0x3b, 0x25, 0x34, 0x0d, 0xad, 0x4d, 0x62, 0x6f, 0xaf, 0xb9, - 0x7e, 0xd0, 0x29, 0xa3, 0x19, 0x68, 0x33, 0x9b, 0x7f, 0xec, 0xd8, 0x07, 0x9d, 0xca, 0xfc, 0x07, - 0xd0, 0x8e, 0x6a, 0x8e, 0x5a, 0x50, 0x5b, 0xdf, 0xb3, 0xed, 0x4e, 0x89, 0x2d, 0x35, 0x03, 0xd7, - 0x0b, 0x03, 0xcd, 0xab, 0x2f, 0xe9, 0xbc, 0xd1, 0x29, 0xe7, 0x79, 0x77, 0x05, 0x75, 0x60, 0x5a, - 0x14, 0xce, 0xeb, 0x56, 0xd5, 0xff, 0xbe, 0x0c, 0xed, 0xe8, 0x93, 0x1d, 0x74, 0x9d, 0x17, 0xea, - 0x32, 0xdf, 0xdf, 0x17, 0x12, 0x5a, 0xcd, 0xff, 0x02, 0x48, 0x42, 0xb3, 0x67, 0x60, 0x56, 0x0c, - 0xa1, 0x61, 0x27, 0xf3, 0x51, 0x30, 0x41, 0x9d, 0xbf, 0x19, 0xf5, 0x6e, 0x87, 0xb9, 0xd2, 0xb2, - 0xeb, 0x38, 0xa4, 0x1f, 0xb0, 0x3e, 0x3e, 0x04, 0x53, 0xeb, 0x6e, 0xb0, 0xe1, 0xfa, 0x3e, 0x6d, - 0x19, 0xef, 0xa9, 0x38, 0xbf, 0xa2, 0xff, 0x66, 0x19, 0x1a, 0xfc, 0xc3, 0x21, 0xfa, 0xaf, 0x96, - 0xa1, 0xc1, 0x3f, 0x16, 0x82, 0xce, 0x43, 0xc7, 0x73, 0x29, 0x50, 0xb8, 0x21, 0xe8, 0xad, 0x88, - 0x56, 0xa5, 0xe8, 0x74, 0x8f, 0xea, 0x4a, 0xda, 0x16, 0x53, 0xb8, 0x42, 0x43, 0x37, 0x01, 0xf8, - 0xc7, 0x48, 0x9e, 0x1c, 0x0c, 0x89, 0x30, 0xd3, 0xe4, 0x15, 0x31, 0xf1, 0xf9, 0x12, 0x76, 0x98, - 0x22, 0x71, 0xcf, 0x7f, 0x0d, 0x66, 0x30, 0xf1, 0x87, 0xae, 0xe3, 0x93, 0x1f, 0xd6, 0xc7, 0xc9, - 0x73, 0x3f, 0x33, 0x3e, 0xff, 0xad, 0x2a, 0xd4, 0xd9, 0xea, 0x50, 0xff, 0x83, 0x6a, 0xb4, 0x8e, - 0xcd, 0xb8, 0x3b, 0x18, 0xdf, 0xf0, 0x91, 0xbd, 0x56, 0x59, 0x57, 0xca, 0xc7, 0x44, 0x97, 0xe5, - 0x9b, 0x3d, 0xb2, 0xc7, 0xaa, 0x12, 0xca, 0x8d, 0x9e, 0xcf, 0x40, 0x6b, 0xe8, 0xb9, 0x03, 0x8f, - 0x2e, 0x60, 0x6b, 0x89, 0x4f, 0xc9, 0xa8, 0x62, 0x1b, 0x82, 0x0d, 0x47, 0x02, 0xfa, 0x3a, 0xb4, - 0x42, 0x6a, 0xce, 0x87, 0x0e, 0x10, 0xd4, 0x4c, 0x57, 0x4c, 0xc2, 0x55, 0xcc, 0xfe, 0xd3, 0x7e, - 0x11, 0x3d, 0x18, 0x6e, 0x3e, 0x45, 0x72, 0xfe, 0x8b, 0xe2, 0xe4, 0x75, 0x06, 0xda, 0x2b, 0x9e, - 0x3b, 0x64, 0x2f, 0xda, 0x3b, 0x25, 0xea, 0xdd, 0x5c, 0x8d, 0x9d, 0x32, 0xfd, 0xbf, 0xfa, 0x92, - 0xfd, 0xaf, 0x30, 0x67, 0x35, 0xf6, 0x09, 0x65, 0xeb, 0x54, 0x11, 0x82, 0x59, 0x4c, 0xd8, 0x69, - 0x93, 0x58, 0xfa, 0x74, 0x6a, 0x14, 0xe8, 0x91, 0x35, 0xe0, 0xdb, 0xb9, 0x4e, 0x7d, 0x7e, 0x31, - 0xbc, 0x61, 0x43, 0x9d, 0x97, 0x6f, 0x1f, 0xa7, 0xa0, 0x89, 0xf7, 0xd8, 0xfa, 0xab, 0x53, 0xa6, - 0x64, 0xba, 0xa8, 0xe7, 0xd0, 0xcb, 0x86, 0xd3, 0x27, 0x36, 0x9b, 0xb3, 0xa3, 0x51, 0xa4, 0xb6, - 0x34, 0xf7, 0x57, 0x1f, 0x1d, 0x2f, 0x7f, 0xfb, 0xa3, 0xe3, 0xe5, 0xef, 0x7e, 0x74, 0xbc, 0xfc, - 0xcb, 0xdf, 0x3b, 0x5e, 0xfa, 0xf6, 0xf7, 0x8e, 0x97, 0xfe, 0xe9, 0x7b, 0xc7, 0x4b, 0x1f, 0x56, - 0x86, 0x5b, 0x5b, 0x0d, 0x76, 0x35, 0xe2, 0xca, 0x7f, 0x05, 0x00, 0x00, 0xff, 0xff, 0x2a, 0x3c, - 0x5f, 0xfa, 0x5a, 0x5f, 0x00, 0x00, + // 5908 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x7c, 0x49, 0x8c, 0x1c, 0xc9, + 0x75, 0x76, 0xed, 0xcb, 0xeb, 0x85, 0xc5, 0x18, 0x0e, 0x27, 0x27, 0xd9, 0xc3, 0xe1, 0x34, 0x57, + 0x71, 0x38, 0x45, 0x0e, 0xb7, 0xa6, 0x28, 0x0e, 0xc9, 0xde, 0x38, 0x5d, 0x5c, 0x9a, 0xad, 0x68, + 0x92, 0x1a, 0x8d, 0x04, 0x41, 0xd9, 0x95, 0xd1, 0xd5, 0x29, 0x66, 0x67, 0x96, 0x32, 0xb3, 0x9b, + 0x6c, 0xe9, 0xff, 0x65, 0xc1, 0x0b, 0x0c, 0x03, 0x36, 0xec, 0x83, 0x21, 0x1b, 0xbe, 0x18, 0x36, + 0x6c, 0xc0, 0x80, 0x0d, 0xc3, 0x86, 0x0f, 0x96, 0x2f, 0x86, 0x01, 0xc3, 0x80, 0x57, 0x40, 0xbe, + 0xf9, 0x26, 0x61, 0x74, 0xf1, 0xc1, 0x3e, 0xc8, 0x06, 0x0c, 0x9f, 0x0c, 0x23, 0x96, 0xcc, 0x8c, + 0xc8, 0xa5, 0xb2, 0x4a, 0x33, 0xf2, 0x02, 0xeb, 0x54, 0x15, 0x11, 0xef, 0x7d, 0xb1, 0xbc, 0xf7, + 0x22, 0x5e, 0xbc, 0x88, 0x48, 0x38, 0x3a, 0xdc, 0xba, 0x38, 0xf4, 0xdc, 0xc0, 0xf5, 0x2f, 0x92, + 0x7d, 0xe2, 0x04, 0x7e, 0x97, 0xa5, 0x50, 0xd3, 0x70, 0x0e, 0x82, 0x83, 0x21, 0xd1, 0x4f, 0x0d, + 0x9f, 0x0f, 0x2e, 0xda, 0xd6, 0xd6, 0xc5, 0xe1, 0xd6, 0xc5, 0x5d, 0xd7, 0x24, 0x76, 0x48, 0xce, + 0x12, 0x82, 0x5c, 0x9f, 0x1b, 0xb8, 0xee, 0xc0, 0x26, 0xbc, 0x6c, 0x6b, 0x6f, 0xfb, 0xa2, 0x1f, + 0x78, 0x7b, 0xfd, 0x80, 0x97, 0xce, 0xff, 0xee, 0x9f, 0x94, 0xa1, 0xbe, 0x4a, 0xe1, 0xd1, 0x65, + 0x68, 0xed, 0x12, 0xdf, 0x37, 0x06, 0xc4, 0xd7, 0xca, 0x27, 0xaa, 0xe7, 0xa6, 0x2e, 0x1f, 0xed, + 0x8a, 0xaa, 0xba, 0x8c, 0xa2, 0xfb, 0x88, 0x17, 0xe3, 0x88, 0x0e, 0xcd, 0x41, 0xbb, 0xef, 0x3a, + 0x01, 0x79, 0x19, 0xf4, 0x4c, 0xad, 0x72, 0xa2, 0x7c, 0xae, 0x8d, 0xe3, 0x0c, 0x74, 0x15, 0xda, + 0x96, 0x63, 0x05, 0x96, 0x11, 0xb8, 0x9e, 0x56, 0x3d, 0x51, 0x56, 0x20, 0x59, 0x23, 0xbb, 0x8b, + 0xfd, 0xbe, 0xbb, 0xe7, 0x04, 0x38, 0x26, 0x44, 0x1a, 0x34, 0x03, 0xcf, 0xe8, 0x93, 0x9e, 0xa9, + 0xd5, 0x18, 0x62, 0x98, 0xd4, 0xff, 0xb8, 0x0b, 0x4d, 0xd1, 0x06, 0x74, 0x07, 0xa6, 0x0c, 0xce, + 0xbb, 0xb9, 0xe3, 0xbe, 0xd0, 0xca, 0x0c, 0xfd, 0x58, 0xa2, 0xc1, 0x02, 0xbd, 0x4b, 0x49, 0xd6, + 0x4a, 0x58, 0xe6, 0x40, 0x3d, 0x98, 0x15, 0xc9, 0x15, 0x12, 0x18, 0x96, 0xed, 0x6b, 0x7f, 0xc5, + 0x41, 0x8e, 0xe7, 0x80, 0x08, 0xb2, 0xb5, 0x12, 0x4e, 0x30, 0xa2, 0xcf, 0xc3, 0x2b, 0x22, 0x67, + 0xd9, 0x75, 0xb6, 0xad, 0xc1, 0xd3, 0xa1, 0x69, 0x04, 0x44, 0xfb, 0x6b, 0x8e, 0x77, 0x2a, 0x07, + 0x8f, 0xd3, 0x76, 0x39, 0xf1, 0x5a, 0x09, 0x67, 0x61, 0xa0, 0x7b, 0x30, 0x23, 0xb2, 0x05, 0xe8, + 0xdf, 0x70, 0xd0, 0x37, 0x72, 0x40, 0x23, 0x34, 0x95, 0x0d, 0x7d, 0x01, 0x8e, 0x88, 0x8c, 0x87, + 0x96, 0xf3, 0x7c, 0x79, 0xc7, 0xb0, 0x6d, 0xe2, 0x0c, 0x88, 0xf6, 0xb7, 0xa3, 0xdb, 0xa8, 0x10, + 0xaf, 0x95, 0x70, 0x26, 0x08, 0x7a, 0x0c, 0x1d, 0x77, 0xeb, 0x2b, 0xa4, 0x1f, 0x0e, 0xc8, 0x26, + 0x09, 0xb4, 0x0e, 0xc3, 0x7d, 0x2b, 0x81, 0xfb, 0x98, 0x91, 0x85, 0x43, 0xd9, 0xdd, 0x24, 0xc1, + 0x5a, 0x09, 0xa7, 0x98, 0xd1, 0x53, 0x40, 0x4a, 0xde, 0xe2, 0x2e, 0x71, 0x4c, 0xed, 0x32, 0x83, + 0x3c, 0x39, 0x1a, 0x92, 0x91, 0xae, 0x95, 0x70, 0x06, 0x40, 0x0a, 0xf6, 0xa9, 0xe3, 0x93, 0x40, + 0xbb, 0x32, 0x0e, 0x2c, 0x23, 0x4d, 0xc1, 0xb2, 0x5c, 0x3a, 0xb6, 0x3c, 0x17, 0x13, 0xdb, 0x08, + 0x2c, 0xd7, 0x11, 0xed, 0xbd, 0xca, 0x80, 0x4f, 0x67, 0x03, 0x47, 0xb4, 0x51, 0x8b, 0x33, 0x41, + 0xd0, 0x97, 0xe0, 0xd5, 0x44, 0x3e, 0x26, 0xbb, 0xee, 0x3e, 0xd1, 0xae, 0x31, 0xf4, 0x33, 0x45, + 0xe8, 0x9c, 0x7a, 0xad, 0x84, 0xb3, 0x61, 0xd0, 0x12, 0x4c, 0x87, 0x05, 0x0c, 0xf6, 0x3a, 0x83, + 0x9d, 0xcb, 0x83, 0x15, 0x60, 0x0a, 0x0f, 0xb5, 0x45, 0x9e, 0x5e, 0xb6, 0x5d, 0x9f, 0x68, 0x8b, + 0x99, 0xb6, 0x28, 0x20, 0x18, 0x09, 0xb5, 0x45, 0x89, 0x43, 0xee, 0xa4, 0x1f, 0x78, 0x56, 0x9f, + 0x35, 0x90, 0x6a, 0xd1, 0xc2, 0xe8, 0x4e, 0xc6, 0xc4, 0x42, 0x95, 0xb2, 0x61, 0x10, 0x86, 0x43, + 0xfe, 0xde, 0x96, 0xdf, 0xf7, 0xac, 0x21, 0xcd, 0x5b, 0x34, 0x4d, 0xed, 0xd6, 0x28, 0xe4, 0x4d, + 0x89, 0xb8, 0xbb, 0x68, 0x52, 0xe9, 0x24, 0x01, 0xd0, 0x17, 0x00, 0xc9, 0x59, 0x62, 0xf8, 0xde, + 0x63, 0xb0, 0x9f, 0x1a, 0x03, 0x36, 0x1a, 0xcb, 0x0c, 0x18, 0x64, 0xc0, 0x11, 0x39, 0x77, 0xc3, + 0xf5, 0x2d, 0xfa, 0xab, 0xdd, 0x66, 0xf0, 0x6f, 0x8f, 0x01, 0x1f, 0xb2, 0x50, 0xc5, 0xca, 0x82, + 0x4a, 0x56, 0xb1, 0x4c, 0xcd, 0x9a, 0x78, 0xbe, 0x76, 0x67, 0xec, 0x2a, 0x42, 0x96, 0x64, 0x15, + 0x61, 0x7e, 0x72, 0x88, 0xde, 0xf7, 0xdc, 0xbd, 0xa1, 0xaf, 0xdd, 0x1d, 0x7b, 0x88, 0x38, 0x43, + 0x72, 0x88, 0x78, 0x2e, 0xba, 0x0e, 0xad, 0x2d, 0xdb, 0xed, 0x3f, 0xa7, 0xc2, 0xac, 0x30, 0x48, + 0x2d, 0x01, 0xb9, 0x44, 0x8b, 0x85, 0xf8, 0x22, 0x5a, 0xaa, 0xac, 0xec, 0xff, 0x0a, 0xb1, 0x49, + 0x40, 0xc4, 0xb2, 0x74, 0x2c, 0x93, 0x95, 0x93, 0x50, 0x65, 0x95, 0x38, 0xd0, 0x0a, 0x4c, 0x6d, + 0x5b, 0x36, 0xf1, 0x9f, 0x0e, 0x6d, 0xd7, 0xe0, 0x6b, 0xd4, 0xd4, 0xe5, 0x13, 0x99, 0x00, 0xf7, + 0x62, 0x3a, 0x8a, 0x22, 0xb1, 0xa1, 0xdb, 0xd0, 0xde, 0x35, 0xbc, 0xe7, 0x7e, 0xcf, 0xd9, 0x76, + 0xb5, 0x7a, 0xe6, 0xc2, 0xc3, 0x31, 0x1e, 0x85, 0x54, 0x6b, 0x25, 0x1c, 0xb3, 0xd0, 0xe5, 0x8b, + 0x35, 0x6a, 0x93, 0x04, 0xf7, 0x2c, 0x62, 0x9b, 0xbe, 0xd6, 0x60, 0x20, 0x6f, 0x66, 0x82, 0x6c, + 0x92, 0xa0, 0xcb, 0xc9, 0xe8, 0xf2, 0xa5, 0x32, 0xa2, 0x0f, 0xe0, 0x95, 0x30, 0x67, 0x79, 0xc7, + 0xb2, 0x4d, 0x8f, 0x38, 0x3d, 0xd3, 0xd7, 0x9a, 0x99, 0x2b, 0x43, 0x8c, 0x27, 0xd1, 0xd2, 0xd5, + 0x2b, 0x03, 0x82, 0xce, 0x8c, 0x61, 0xb6, 0x6c, 0x92, 0x5a, 0x2b, 0x73, 0x66, 0x8c, 0xa1, 0x65, + 0x62, 0xaa, 0x5d, 0x59, 0x20, 0xc8, 0x84, 0xd7, 0xc2, 0xfc, 0x25, 0xa3, 0xff, 0x7c, 0xe0, 0xb9, + 0x7b, 0x8e, 0xb9, 0xec, 0xda, 0xae, 0xa7, 0xb5, 0x19, 0xfe, 0xb9, 0x5c, 0xfc, 0x04, 0xfd, 0x5a, + 0x09, 0xe7, 0x41, 0xa1, 0x65, 0x98, 0x0e, 0x8b, 0x9e, 0x90, 0x97, 0x81, 0x06, 0x99, 0xcb, 0x6f, + 0x0c, 0x4d, 0x89, 0xe8, 0x04, 0x29, 0x33, 0xc9, 0x20, 0x54, 0x25, 0xb4, 0xa9, 0x02, 0x10, 0x4a, + 0x24, 0x83, 0xd0, 0xb4, 0x0c, 0x42, 0x97, 0x5f, 0x6d, 0xa6, 0x00, 0x84, 0x12, 0xc9, 0x20, 0x34, + 0x4d, 0x97, 0xea, 0xa8, 0xa7, 0xae, 0xfb, 0x9c, 0xea, 0x93, 0x36, 0x9b, 0xb9, 0x54, 0x4b, 0xa3, + 0x25, 0x08, 0xe9, 0x52, 0x9d, 0x64, 0xa6, 0x0e, 0x4a, 0x98, 0xb7, 0x68, 0x5b, 0x03, 0x47, 0x3b, + 0x34, 0x42, 0x97, 0x29, 0x1a, 0xa3, 0xa2, 0x0e, 0x8a, 0xc2, 0x86, 0xee, 0x0a, 0xb3, 0xdc, 0x24, + 0xc1, 0x8a, 0xb5, 0xaf, 0x1d, 0xce, 0x5c, 0x86, 0x62, 0x94, 0x15, 0x6b, 0x3f, 0xb2, 0x4b, 0xce, + 0x22, 0x77, 0x2d, 0x5c, 0xe4, 0xb4, 0x57, 0x0b, 0xba, 0x16, 0x12, 0xca, 0x5d, 0x0b, 0xf3, 0xe4, + 0xae, 0x3d, 0x34, 0x02, 0xf2, 0x52, 0x7b, 0xbd, 0xa0, 0x6b, 0x8c, 0x4a, 0xee, 0x1a, 0xcb, 0xa0, + 0xab, 0x5b, 0x98, 0xf1, 0x8c, 0x78, 0x81, 0xd5, 0x37, 0x6c, 0x3e, 0x54, 0xa7, 0x32, 0xd7, 0xa0, + 0x18, 0x4f, 0xa1, 0xa6, 0xab, 0x5b, 0x26, 0x8c, 0xdc, 0xf1, 0x27, 0xc6, 0x96, 0x4d, 0xb0, 0xfb, + 0x42, 0x3b, 0x5d, 0xd0, 0xf1, 0x90, 0x50, 0xee, 0x78, 0x98, 0x27, 0xcf, 0x2d, 0x9f, 0xb3, 0xcc, + 0x01, 0x09, 0xb4, 0x73, 0x05, 0x73, 0x0b, 0x27, 0x93, 0xe7, 0x16, 0x9e, 0x13, 0xcd, 0x00, 0x2b, + 0x46, 0x60, 0xec, 0x5b, 0xe4, 0xc5, 0x33, 0x8b, 0xbc, 0xa0, 0x0b, 0xfb, 0x2b, 0x23, 0x66, 0x80, + 0x90, 0xb6, 0x2b, 0x88, 0xa3, 0x19, 0x20, 0x01, 0x12, 0xcd, 0x00, 0x72, 0xbe, 0x98, 0xd6, 0x8f, + 0x8c, 0x98, 0x01, 0x14, 0xfc, 0x68, 0x8e, 0xcf, 0x83, 0x42, 0x06, 0x1c, 0x4d, 0x15, 0x3d, 0xf6, + 0x4c, 0xe2, 0x69, 0x6f, 0xb0, 0x4a, 0xce, 0x16, 0x57, 0xc2, 0xc8, 0xd7, 0x4a, 0x38, 0x07, 0x28, + 0x55, 0xc5, 0xa6, 0xbb, 0xe7, 0xf5, 0x09, 0x1d, 0xa7, 0x93, 0xe3, 0x54, 0x11, 0x91, 0xa7, 0xaa, + 0x88, 0x4a, 0xd0, 0x3e, 0xbc, 0x11, 0x95, 0xd0, 0x8a, 0xd9, 0x2a, 0xca, 0x6a, 0x17, 0x1b, 0x8b, + 0x33, 0xac, 0xa6, 0xee, 0xe8, 0x9a, 0x92, 0x5c, 0x6b, 0x25, 0x3c, 0x1a, 0x16, 0x1d, 0xc0, 0x71, + 0x85, 0x80, 0xaf, 0xf3, 0x72, 0xc5, 0x67, 0x59, 0xc5, 0x17, 0x47, 0x57, 0x9c, 0x62, 0x5b, 0x2b, + 0xe1, 0x02, 0x60, 0x34, 0x84, 0x63, 0xca, 0x60, 0x84, 0x86, 0x2d, 0x54, 0xe4, 0xff, 0xb1, 0x7a, + 0x2f, 0x8c, 0xae, 0x57, 0xe5, 0x59, 0x2b, 0xe1, 0x51, 0x90, 0x68, 0x00, 0x5a, 0x66, 0x31, 0x95, + 0xe4, 0xd7, 0x33, 0xdd, 0x9e, 0x9c, 0xea, 0xb8, 0x2c, 0x73, 0xc1, 0x32, 0x35, 0x5f, 0x0c, 0xe7, + 0xff, 0x1f, 0x57, 0xf3, 0xa3, 0x71, 0xcc, 0x83, 0x52, 0x64, 0x47, 0x8b, 0x9e, 0x18, 0xde, 0x80, + 0x04, 0x7c, 0xa0, 0x7b, 0x26, 0xed, 0xd4, 0x37, 0xc6, 0x91, 0x5d, 0x8a, 0x4d, 0x91, 0x5d, 0x26, + 0x30, 0xf2, 0x61, 0x4e, 0xa1, 0xe8, 0xf9, 0xcb, 0xae, 0x6d, 0x93, 0x7e, 0x38, 0x9a, 0x3f, 0xc1, + 0x2a, 0x7e, 0x67, 0x74, 0xc5, 0x09, 0xa6, 0xb5, 0x12, 0x1e, 0x09, 0x9a, 0xea, 0xef, 0x63, 0xdb, + 0x4c, 0xe8, 0x8c, 0x36, 0x96, 0xae, 0x26, 0xd9, 0x52, 0xfd, 0x4d, 0x51, 0xa4, 0x74, 0x55, 0xa2, + 0xa0, 0xdd, 0x7d, 0x6d, 0x1c, 0x5d, 0x55, 0x79, 0x52, 0xba, 0xaa, 0x16, 0xd3, 0xd5, 0x6d, 0xcf, + 0x27, 0x1e, 0xc3, 0xb8, 0xef, 0x5a, 0x8e, 0xf6, 0x66, 0xe6, 0xea, 0xf6, 0xd4, 0x27, 0x9e, 0xa8, + 0x88, 0x52, 0xd1, 0xd5, 0x4d, 0x61, 0x53, 0x70, 0x1e, 0x92, 0xed, 0x40, 0x3b, 0x51, 0x84, 0x43, + 0xa9, 0x14, 0x1c, 0x9a, 0x41, 0x57, 0x8a, 0x28, 0x63, 0x93, 0x50, 0xa9, 0x60, 0xc3, 0x19, 0x10, + 0xed, 0xad, 0xcc, 0x95, 0x42, 0x82, 0x93, 0x88, 0xe9, 0x4a, 0x91, 0x05, 0x42, 0x77, 0xfe, 0x51, + 0x3e, 0xf5, 0xc8, 0x38, 0xf4, 0x7c, 0xe6, 0xce, 0x5f, 0x82, 0x8e, 0x48, 0xe9, 0x1e, 0x24, 0x0d, + 0x80, 0x3e, 0x05, 0xb5, 0xa1, 0xe5, 0x0c, 0x34, 0x93, 0x01, 0xbd, 0x92, 0x00, 0xda, 0xb0, 0x9c, + 0xc1, 0x5a, 0x09, 0x33, 0x12, 0x74, 0x0b, 0x60, 0xe8, 0xb9, 0x7d, 0xe2, 0xfb, 0xeb, 0xe4, 0x85, + 0x46, 0x18, 0x83, 0x9e, 0x64, 0xe0, 0x04, 0xdd, 0x75, 0x42, 0xd7, 0x65, 0x89, 0x1e, 0xad, 0xc2, + 0x8c, 0x48, 0x09, 0x2b, 0xdf, 0xce, 0x74, 0xfe, 0x42, 0x80, 0x38, 0x0a, 0xa4, 0x70, 0xd1, 0xbd, + 0x8f, 0xc8, 0x58, 0x71, 0x1d, 0xa2, 0x0d, 0x32, 0xf7, 0x3e, 0x21, 0x08, 0x25, 0xa1, 0x3e, 0x96, + 0xc4, 0x81, 0x96, 0x60, 0x3a, 0xd8, 0xf1, 0x88, 0x61, 0x6e, 0x06, 0x46, 0xb0, 0xe7, 0x6b, 0x4e, + 0xa6, 0x9b, 0xc6, 0x0b, 0xbb, 0x4f, 0x18, 0x25, 0x75, 0x41, 0x65, 0x1e, 0xb4, 0x0e, 0x1d, 0xba, + 0x11, 0x7a, 0x68, 0xed, 0x5a, 0x01, 0x26, 0x46, 0x7f, 0x87, 0x98, 0x9a, 0x9b, 0xb9, 0x89, 0xa2, + 0x6e, 0x6f, 0x57, 0xa6, 0xa3, 0xde, 0x4a, 0x92, 0x17, 0xad, 0xc1, 0x2c, 0xcd, 0xdb, 0x1c, 0x1a, + 0x7d, 0xf2, 0xd4, 0x37, 0x06, 0x44, 0x1b, 0x66, 0x6a, 0x20, 0x43, 0x8b, 0xa9, 0xa8, 0xb3, 0xa2, + 0xf2, 0x85, 0x48, 0x0f, 0xdd, 0xbe, 0x61, 0x73, 0xa4, 0xaf, 0xe6, 0x23, 0xc5, 0x54, 0x21, 0x52, + 0x9c, 0xa3, 0xf4, 0x91, 0x8f, 0xbd, 0xa9, 0xed, 0x17, 0xf4, 0x51, 0xd0, 0x29, 0x7d, 0x14, 0x79, + 0x14, 0xcf, 0x71, 0x03, 0x6b, 0xdb, 0xea, 0x0b, 0xfb, 0x75, 0x4c, 0xcd, 0xcb, 0xc4, 0x5b, 0x97, + 0xc8, 0xba, 0x9b, 0x3c, 0xb2, 0x94, 0xe2, 0x45, 0x4f, 0x00, 0xc9, 0x79, 0x42, 0xa9, 0x7c, 0x86, + 0x38, 0x3f, 0x0a, 0x31, 0xd2, 0xac, 0x0c, 0x7e, 0xda, 0xca, 0xa1, 0x71, 0x40, 0xb7, 0xb7, 0x4b, + 0x9e, 0x6b, 0x98, 0x7d, 0xc3, 0x0f, 0xb4, 0x20, 0xb3, 0x95, 0x1b, 0x9c, 0xac, 0x1b, 0xd1, 0xd1, + 0x56, 0x26, 0x79, 0x29, 0xde, 0x2e, 0xd9, 0xdd, 0x22, 0x9e, 0xbf, 0x63, 0x0d, 0x45, 0x1b, 0xf7, + 0x32, 0xf1, 0x1e, 0x45, 0x64, 0x71, 0x0b, 0x53, 0xbc, 0xd4, 0x11, 0xf7, 0xa9, 0xb4, 0x37, 0x0f, + 0x9c, 0x3e, 0x57, 0x46, 0x01, 0xfa, 0x22, 0xd3, 0x11, 0x67, 0x9a, 0xd1, 0x8d, 0x89, 0x63, 0xe8, + 0x6c, 0x18, 0xf4, 0x00, 0x0e, 0x0d, 0x2f, 0x0f, 0x15, 0xe4, 0x97, 0x99, 0x8e, 0xf3, 0xc6, 0xe5, + 0x8d, 0x24, 0x64, 0x92, 0x93, 0x9a, 0x9a, 0xb5, 0x3b, 0x74, 0xbd, 0xe0, 0x9e, 0xe5, 0x58, 0xfe, + 0x8e, 0x76, 0x90, 0x69, 0x6a, 0x3d, 0x46, 0xd2, 0xe5, 0x34, 0xd4, 0xd4, 0x64, 0x9e, 0xa5, 0x26, + 0xd4, 0xf7, 0x0d, 0x7b, 0x8f, 0xe8, 0x7f, 0x58, 0x87, 0xa6, 0x88, 0xe9, 0xea, 0xeb, 0x50, 0x63, + 0x01, 0xf0, 0x23, 0x50, 0xb7, 0x1c, 0x93, 0xbc, 0x64, 0xb1, 0xf3, 0x3a, 0xe6, 0x09, 0x74, 0x09, + 0x9a, 0x22, 0xc6, 0x2b, 0xa2, 0x2a, 0x79, 0x11, 0xfb, 0x90, 0x4c, 0xff, 0x10, 0x9a, 0x61, 0x20, + 0x7c, 0x0e, 0xda, 0x43, 0xcf, 0xa5, 0xda, 0xdb, 0x33, 0x19, 0x6c, 0x1b, 0xc7, 0x19, 0xe8, 0x5d, + 0x68, 0x9a, 0x22, 0xd4, 0xce, 0xa1, 0x5f, 0xeb, 0xf2, 0xb3, 0x89, 0x6e, 0x78, 0x36, 0xd1, 0xdd, + 0x64, 0x67, 0x13, 0x38, 0xa4, 0xd3, 0xbf, 0x59, 0x86, 0x06, 0x8f, 0x87, 0xeb, 0xfb, 0xd0, 0x10, + 0x23, 0x73, 0x0d, 0x1a, 0x7d, 0x96, 0xa7, 0x25, 0x63, 0xe1, 0x4a, 0x0b, 0x45, 0x80, 0x1d, 0x0b, + 0x62, 0xca, 0xe6, 0xf3, 0x59, 0xab, 0x32, 0x92, 0x8d, 0x4b, 0x01, 0x0b, 0xe2, 0xff, 0xb6, 0x7a, + 0xff, 0xa3, 0x0c, 0x33, 0x6a, 0x98, 0x7d, 0x0e, 0xda, 0xfd, 0x28, 0x70, 0x2f, 0x46, 0xb7, 0x2f, + 0x05, 0xe1, 0xa1, 0x6f, 0x5b, 0xc4, 0x09, 0x58, 0x44, 0xa9, 0x92, 0xe9, 0xa8, 0x64, 0x86, 0xf5, + 0xbb, 0xcb, 0x11, 0x1b, 0x96, 0x20, 0xf4, 0x6f, 0x00, 0xc4, 0x25, 0xe8, 0x44, 0xb4, 0x74, 0xac, + 0x1b, 0xbb, 0x61, 0xf5, 0x72, 0x96, 0x44, 0xb1, 0x61, 0x04, 0x3b, 0xe2, 0x34, 0x48, 0xce, 0x42, + 0x17, 0xe0, 0xb0, 0x6f, 0x0d, 0x1c, 0x23, 0xd8, 0xf3, 0xc8, 0x33, 0xe2, 0x59, 0xdb, 0x16, 0x31, + 0x59, 0x00, 0xae, 0x85, 0xd3, 0x05, 0xfa, 0xcf, 0xb5, 0xa1, 0xc1, 0x5d, 0x42, 0xfd, 0xdf, 0x2a, + 0x91, 0x8e, 0xe9, 0x7f, 0x5e, 0x86, 0x3a, 0x0f, 0x8d, 0xcf, 0x42, 0xc5, 0x0a, 0xd5, 0xac, 0x62, + 0x99, 0xe8, 0x9e, 0xac, 0x5f, 0xd5, 0x0c, 0x7f, 0x29, 0xeb, 0xa8, 0xa0, 0xfb, 0x80, 0x1c, 0x3c, + 0xa3, 0x36, 0x12, 0x29, 0x1d, 0x3a, 0x0a, 0x0d, 0x7f, 0x6f, 0xab, 0x67, 0xfa, 0x5a, 0xf5, 0x44, + 0xf5, 0x5c, 0x1b, 0x8b, 0x94, 0x7e, 0x1f, 0x5a, 0x21, 0x31, 0xea, 0x40, 0xf5, 0x39, 0x39, 0x10, + 0x95, 0xd3, 0xbf, 0xe8, 0x82, 0xb0, 0xb5, 0xc8, 0x6c, 0x92, 0xba, 0xcd, 0x6b, 0x11, 0x06, 0xf9, + 0x65, 0xa8, 0x52, 0x27, 0x2c, 0xd9, 0x85, 0xc9, 0x4d, 0x24, 0xb7, 0xb5, 0xcb, 0x50, 0xe7, 0xc7, + 0x13, 0xc9, 0x3a, 0x10, 0xd4, 0x9e, 0x93, 0x03, 0x3e, 0x46, 0x6d, 0xcc, 0xfe, 0xe7, 0x82, 0xfc, + 0x59, 0x15, 0xa6, 0xe5, 0x90, 0xac, 0xbe, 0x0a, 0xd5, 0x45, 0x33, 0x3d, 0xf4, 0x1a, 0x34, 0x8d, + 0xed, 0x80, 0x78, 0xd1, 0x29, 0x60, 0x98, 0xa4, 0xb3, 0x0c, 0xc3, 0x62, 0x72, 0x6e, 0x63, 0x9e, + 0xd0, 0xbb, 0xd0, 0x10, 0x91, 0xee, 0x24, 0x52, 0x44, 0x5f, 0x91, 0xe9, 0xef, 0x43, 0x2b, 0x0a, + 0x5c, 0x7f, 0xdc, 0xba, 0x3d, 0x68, 0x45, 0x11, 0xea, 0x23, 0x50, 0x0f, 0xdc, 0xc0, 0xb0, 0x19, + 0x5c, 0x15, 0xf3, 0x04, 0x35, 0x34, 0x87, 0xbc, 0x0c, 0x96, 0xa3, 0x59, 0xb0, 0x8a, 0xe3, 0x0c, + 0x3e, 0xc9, 0x91, 0x7d, 0x5e, 0x5a, 0xe5, 0xa5, 0x51, 0x46, 0x5c, 0x67, 0x4d, 0xae, 0xf3, 0x00, + 0x1a, 0x22, 0x6c, 0x1d, 0x95, 0x97, 0xa5, 0x72, 0xb4, 0x08, 0xf5, 0x01, 0x2d, 0x17, 0x52, 0x7f, + 0x3b, 0x31, 0x45, 0x70, 0x6f, 0x74, 0xd9, 0x75, 0x02, 0xaa, 0xc6, 0xea, 0x6e, 0x1c, 0x73, 0x4e, + 0x2a, 0x42, 0x8f, 0x9f, 0x41, 0x70, 0x8b, 0x12, 0x29, 0xfd, 0xb7, 0xcb, 0xd0, 0x8e, 0x0e, 0x7d, + 0xf4, 0x0f, 0xf3, 0x8c, 0x67, 0x11, 0x66, 0x3c, 0x41, 0x45, 0x67, 0x87, 0xd0, 0x84, 0x8e, 0x25, + 0x5a, 0x82, 0x25, 0x1a, 0xac, 0x72, 0xe8, 0xb7, 0x72, 0x85, 0x3a, 0x0f, 0xd3, 0x21, 0xe9, 0x83, + 0x58, 0xf5, 0x94, 0x3c, 0x5d, 0x8f, 0xb8, 0x3b, 0x50, 0xb5, 0x4c, 0x7e, 0x06, 0xdd, 0xc6, 0xf4, + 0xaf, 0xbe, 0x0d, 0xd3, 0x72, 0xe8, 0x57, 0x7f, 0x96, 0x6d, 0x3d, 0x77, 0x68, 0x35, 0x52, 0x98, + 0xb9, 0x92, 0xf0, 0x6f, 0xc3, 0x2e, 0xc4, 0x24, 0x58, 0x61, 0xd0, 0x5f, 0x83, 0x3a, 0x3f, 0x90, + 0x4a, 0x20, 0xeb, 0xbf, 0xd6, 0x87, 0x3a, 0x13, 0x82, 0x7e, 0x85, 0x1b, 0xc0, 0x05, 0x68, 0xb0, + 0xcd, 0x55, 0x78, 0x54, 0x7e, 0x24, 0x4b, 0x62, 0x58, 0xd0, 0xe8, 0xcb, 0x30, 0x25, 0x1d, 0x05, + 0x50, 0x8d, 0x65, 0x05, 0x91, 0x16, 0x84, 0x49, 0xa4, 0x43, 0x8b, 0x2e, 0x96, 0x62, 0x02, 0xa5, + 0xfd, 0x8f, 0xd2, 0xfa, 0x29, 0x68, 0x88, 0xcd, 0xa2, 0x2e, 0x8e, 0x3e, 0x7a, 0xd1, 0x28, 0x45, + 0x69, 0xfd, 0x8b, 0xd0, 0x8e, 0x4e, 0x0c, 0xd0, 0x63, 0x98, 0x16, 0x27, 0x06, 0x7c, 0xc3, 0x43, + 0x89, 0x67, 0x0b, 0xb4, 0x8b, 0xee, 0x6e, 0xd8, 0xa1, 0x43, 0xf7, 0xc9, 0xc1, 0x90, 0x60, 0x05, + 0x40, 0xff, 0x99, 0x73, 0x6c, 0xe4, 0xf5, 0x21, 0xb4, 0xa2, 0x30, 0x69, 0x52, 0x0a, 0x0b, 0x7c, + 0x6a, 0xac, 0x14, 0xc6, 0xf8, 0x39, 0x3f, 0x9d, 0x80, 0xd9, 0x0c, 0xaa, 0x1f, 0x83, 0xea, 0x03, + 0x72, 0x40, 0x2d, 0x84, 0x4f, 0xa4, 0xc2, 0x42, 0xf8, 0x84, 0xd9, 0x83, 0x86, 0x38, 0xae, 0x48, + 0xd6, 0x77, 0x11, 0x1a, 0xdb, 0xfc, 0x04, 0xa4, 0x60, 0xca, 0x14, 0x64, 0xfa, 0x1d, 0x98, 0x92, + 0x0f, 0x29, 0x92, 0x78, 0x27, 0x60, 0xaa, 0x2f, 0x1d, 0x83, 0x70, 0x31, 0xc8, 0x59, 0x3a, 0x51, + 0xd5, 0x31, 0x85, 0xb0, 0x9a, 0xa9, 0x87, 0x6f, 0x65, 0x0e, 0xfb, 0x08, 0x6d, 0x7c, 0x00, 0x87, + 0x92, 0xa7, 0x11, 0xc9, 0x9a, 0xce, 0xc1, 0xa1, 0xad, 0xc4, 0xd9, 0x07, 0x9f, 0x03, 0x93, 0xd9, + 0x7a, 0x0f, 0xea, 0x3c, 0x5a, 0x9c, 0x84, 0xb8, 0x04, 0x75, 0x83, 0x45, 0xa3, 0x29, 0xe3, 0xac, + 0xb4, 0x27, 0x95, 0x5b, 0xc9, 0x58, 0x31, 0x27, 0xd4, 0x2d, 0x98, 0x51, 0x03, 0xd0, 0x49, 0xc8, + 0x35, 0x98, 0xd9, 0x57, 0x02, 0xdd, 0x1c, 0x7a, 0x3e, 0x13, 0x5a, 0x81, 0xc2, 0x2a, 0xa3, 0xfe, + 0x93, 0x0d, 0xa8, 0xb1, 0x13, 0x94, 0x64, 0x15, 0xd7, 0xa1, 0x16, 0x90, 0x97, 0xa1, 0x8f, 0x3a, + 0x3f, 0xf2, 0x38, 0x86, 0x6f, 0xe3, 0x19, 0x3d, 0xfa, 0x34, 0xd4, 0xfd, 0xe0, 0xc0, 0x0e, 0xcf, + 0xfd, 0x4e, 0x8e, 0x66, 0xdc, 0xa4, 0xa4, 0x98, 0x73, 0x50, 0x56, 0x66, 0x0b, 0xe2, 0xc4, 0xaf, + 0x80, 0x95, 0x19, 0x21, 0xe6, 0x1c, 0xe8, 0x0e, 0x34, 0xfb, 0x3b, 0xa4, 0xff, 0x9c, 0x98, 0xe2, + 0xa8, 0xef, 0xf4, 0x68, 0xe6, 0x65, 0x4e, 0x8c, 0x43, 0x2e, 0x5a, 0x77, 0x9f, 0x49, 0xb7, 0x31, + 0x4e, 0xdd, 0x4c, 0xe2, 0x98, 0x73, 0xa0, 0x55, 0x68, 0x5b, 0x7d, 0xd7, 0x59, 0xdd, 0x75, 0xbf, + 0x62, 0x89, 0x33, 0xbd, 0xb3, 0xa3, 0xd9, 0x7b, 0x21, 0x39, 0x8e, 0x39, 0x43, 0x98, 0xde, 0x2e, + 0xdd, 0x16, 0xb7, 0xc6, 0x85, 0x61, 0xe4, 0x38, 0xe6, 0xd4, 0xe7, 0x84, 0x3c, 0xb3, 0x8d, 0xfc, + 0x1e, 0xd4, 0xd9, 0x90, 0xa3, 0xf7, 0xe4, 0xe2, 0x59, 0xa9, 0xa6, 0xdc, 0x19, 0x4b, 0x88, 0x2a, + 0xc2, 0x61, 0xe3, 0xaf, 0xe2, 0x4c, 0x8d, 0x83, 0x23, 0xe4, 0xc6, 0x71, 0xde, 0x84, 0xa6, 0x10, + 0x85, 0xda, 0xe0, 0x56, 0x48, 0xf0, 0x06, 0xd4, 0xb9, 0x61, 0x66, 0xf7, 0xe7, 0x2d, 0x68, 0x47, + 0x83, 0x39, 0x9a, 0x84, 0x8d, 0x4e, 0x0e, 0xc9, 0xcf, 0x56, 0xa0, 0xce, 0x4f, 0x92, 0xd2, 0x53, + 0xad, 0x6c, 0x05, 0x27, 0x47, 0x1f, 0x4c, 0xc9, 0x66, 0x70, 0x8f, 0x6d, 0xd4, 0xa8, 0x63, 0x1e, + 0xdd, 0xcc, 0x3a, 0x57, 0xc0, 0xbd, 0x11, 0xd2, 0xe3, 0x98, 0xb5, 0x40, 0x9c, 0x8f, 0xa1, 0x1d, + 0x71, 0xa1, 0x25, 0x55, 0xa4, 0x17, 0x46, 0x8a, 0x22, 0x59, 0xa5, 0x00, 0xfc, 0x56, 0x19, 0xaa, + 0x2b, 0xd6, 0x7e, 0x6a, 0x1c, 0x6e, 0x84, 0x56, 0x5d, 0x34, 0x1d, 0xac, 0x58, 0xfb, 0x8a, 0x51, + 0xeb, 0xab, 0xa1, 0xc6, 0xdd, 0x52, 0x9b, 0x77, 0x66, 0xb4, 0x07, 0x16, 0xc3, 0xf0, 0x86, 0xfd, + 0x62, 0x13, 0x6a, 0xec, 0x90, 0x36, 0x6b, 0x9e, 0x3a, 0x18, 0x16, 0x37, 0x8c, 0x85, 0x81, 0xd8, + 0x82, 0xcb, 0xe8, 0xf9, 0x3c, 0x65, 0x04, 0xc5, 0xf3, 0x14, 0x8f, 0x6a, 0x51, 0x52, 0xcc, 0x39, + 0x68, 0x95, 0xbb, 0xd6, 0x2e, 0x11, 0xd3, 0x54, 0x41, 0x95, 0x8f, 0xac, 0x5d, 0x82, 0x19, 0x3d, + 0xe5, 0xdb, 0x31, 0xfc, 0x1d, 0x31, 0x43, 0x15, 0xf0, 0xad, 0x19, 0xfe, 0x0e, 0x66, 0xf4, 0x94, + 0xcf, 0xa1, 0x5b, 0xc2, 0xc6, 0x38, 0x7c, 0x74, 0xa7, 0x88, 0x19, 0x3d, 0xe5, 0xf3, 0xad, 0xaf, + 0x11, 0x31, 0x27, 0x15, 0xf0, 0x6d, 0x5a, 0x5f, 0x23, 0x98, 0xd1, 0xc7, 0x53, 0x78, 0x6b, 0xbc, + 0xa1, 0x91, 0xa6, 0xf0, 0x27, 0x30, 0x1b, 0x28, 0x47, 0x0d, 0xe2, 0xa6, 0xc0, 0x85, 0x02, 0xb9, + 0x28, 0x3c, 0x38, 0x81, 0x41, 0x8d, 0x80, 0x6d, 0x80, 0xb3, 0x8d, 0xe0, 0x0d, 0xa8, 0x7f, 0xce, + 0x32, 0x83, 0x1d, 0xb5, 0xb8, 0xae, 0x4c, 0x79, 0x54, 0x6c, 0x13, 0x4d, 0x79, 0xb2, 0xd4, 0x39, + 0xce, 0x0a, 0xd4, 0xa8, 0xfa, 0x4c, 0xa6, 0xc7, 0xb1, 0xd6, 0x7d, 0xac, 0x09, 0x58, 0x1e, 0x68, + 0x8e, 0x33, 0x07, 0x35, 0xaa, 0x21, 0x39, 0x43, 0x32, 0x07, 0x35, 0xaa, 0x77, 0xf9, 0xa5, 0x54, + 0xda, 0x6a, 0x69, 0x35, 0x2c, 0x3d, 0x03, 0xb3, 0xaa, 0x38, 0x72, 0x50, 0xfe, 0xb4, 0x09, 0x35, + 0x76, 0xe3, 0x21, 0x69, 0x91, 0x9f, 0x85, 0x19, 0x2e, 0xbf, 0x25, 0xe1, 0x82, 0x57, 0x32, 0x2f, + 0x3c, 0xa9, 0xf7, 0x28, 0x84, 0x0a, 0x08, 0x16, 0xac, 0x22, 0x8c, 0xef, 0x54, 0x30, 0x28, 0x45, + 0x23, 0x6f, 0x45, 0xce, 0x6b, 0xad, 0xe0, 0xba, 0x0d, 0xe3, 0xe5, 0x2e, 0x70, 0xe8, 0xc9, 0xa2, + 0x25, 0x68, 0xd1, 0xa5, 0x95, 0x0e, 0x97, 0x30, 0xdb, 0x33, 0xa3, 0xf9, 0x7b, 0x82, 0x1a, 0x47, + 0x7c, 0x74, 0x61, 0xef, 0x1b, 0x9e, 0xc9, 0x5a, 0x25, 0x6c, 0xf8, 0xec, 0x68, 0x90, 0xe5, 0x90, + 0x1c, 0xc7, 0x9c, 0xe8, 0x01, 0x4c, 0x99, 0x24, 0x8a, 0x13, 0x08, 0xa3, 0xfe, 0xd4, 0x68, 0xa0, + 0x95, 0x98, 0x01, 0xcb, 0xdc, 0xb4, 0x4d, 0xe1, 0xde, 0xd0, 0x2f, 0x74, 0x36, 0x18, 0x54, 0x7c, + 0xad, 0x31, 0xe6, 0xd4, 0x4f, 0xc3, 0x8c, 0x22, 0xb7, 0x4f, 0xd4, 0xeb, 0x90, 0x65, 0xc9, 0x71, + 0x16, 0xa2, 0x2d, 0xca, 0x3b, 0xaa, 0xdb, 0x91, 0xbb, 0x23, 0x11, 0x8c, 0x0f, 0xa1, 0x15, 0x0a, + 0x06, 0xdd, 0x55, 0xdb, 0x70, 0xbe, 0xb8, 0x0d, 0x91, 0x4c, 0x05, 0xda, 0x3a, 0xb4, 0x23, 0x09, + 0xa1, 0x45, 0x15, 0xee, 0xed, 0x62, 0xb8, 0x58, 0xba, 0x02, 0x0f, 0xc3, 0x94, 0x24, 0x28, 0xb4, + 0xac, 0x22, 0xbe, 0x53, 0x8c, 0x28, 0x8b, 0x39, 0xf6, 0x7a, 0x22, 0x89, 0xc9, 0x52, 0xa9, 0xc6, + 0x52, 0xf9, 0x83, 0x26, 0xb4, 0xa2, 0x5b, 0x46, 0x19, 0x7b, 0xcc, 0x3d, 0xcf, 0x2e, 0xdc, 0x63, + 0x86, 0xfc, 0xdd, 0xa7, 0x9e, 0x8d, 0x29, 0x07, 0x15, 0x71, 0x60, 0x05, 0x91, 0xa9, 0x9e, 0x2d, + 0x66, 0x7d, 0x42, 0xc9, 0x31, 0xe7, 0x42, 0x8f, 0x55, 0x2d, 0xaf, 0x8d, 0x38, 0x85, 0x56, 0x40, + 0x72, 0x35, 0xbd, 0x07, 0x6d, 0x8b, 0xba, 0x7e, 0x6b, 0xf1, 0xca, 0xfb, 0x76, 0x31, 0x5c, 0x2f, + 0x64, 0xc1, 0x31, 0x37, 0x6d, 0xdb, 0xb6, 0xb1, 0x4f, 0xed, 0x9a, 0x81, 0x35, 0xc6, 0x6d, 0xdb, + 0xbd, 0x98, 0x09, 0xcb, 0x08, 0xe8, 0xa6, 0xf0, 0x5d, 0x9a, 0x05, 0x33, 0x4b, 0x3c, 0x54, 0xb1, + 0xff, 0xf2, 0x41, 0x6a, 0xa5, 0xe5, 0x66, 0x7c, 0x69, 0x0c, 0x94, 0x91, 0xab, 0x2d, 0x95, 0x20, + 0xf7, 0x8c, 0xda, 0xe3, 0x4a, 0x50, 0xf6, 0x8e, 0xf4, 0x63, 0x50, 0x7d, 0xea, 0xd9, 0xf9, 0x6b, + 0x35, 0x13, 0x77, 0x4e, 0xf1, 0x49, 0xd5, 0x12, 0xf2, 0x1d, 0xfa, 0x48, 0x26, 0xb9, 0x38, 0xd2, + 0xa0, 0xe7, 0x10, 0xbd, 0x27, 0x16, 0xf4, 0x6b, 0xaa, 0xbd, 0xbd, 0x99, 0xb0, 0x37, 0x6a, 0x61, + 0x1b, 0x1e, 0xe1, 0x17, 0x2d, 0xa4, 0x95, 0x7c, 0xdc, 0x75, 0xf2, 0x7e, 0xe8, 0x7f, 0x4c, 0x34, + 0x53, 0x24, 0xc7, 0x96, 0x63, 0xfd, 0x74, 0x19, 0x5a, 0xd1, 0x25, 0xb2, 0x74, 0x74, 0xbe, 0x65, + 0xf9, 0x6b, 0xc4, 0x30, 0x89, 0x27, 0xec, 0xf6, 0x7c, 0xe1, 0xed, 0xb4, 0x6e, 0x4f, 0x70, 0xe0, + 0x88, 0x57, 0x3f, 0x01, 0xad, 0x30, 0x37, 0x67, 0x53, 0xf6, 0xbd, 0x0a, 0x34, 0xc4, 0xf5, 0xb3, + 0x64, 0x23, 0x6e, 0x43, 0xc3, 0x36, 0x0e, 0xdc, 0xbd, 0x70, 0xcb, 0x74, 0xa6, 0xe0, 0x46, 0x5b, + 0xf7, 0x21, 0xa3, 0xc6, 0x82, 0x0b, 0x7d, 0x06, 0xea, 0xb6, 0xb5, 0x6b, 0x05, 0x62, 0xfa, 0x38, + 0x5d, 0xc8, 0xce, 0x0e, 0xaa, 0x39, 0x0f, 0xad, 0x9c, 0xdd, 0x3a, 0x09, 0xef, 0x0c, 0x17, 0x56, + 0xfe, 0x8c, 0x51, 0x63, 0xc1, 0xa5, 0xdf, 0x87, 0x06, 0x6f, 0xce, 0x64, 0x8b, 0x84, 0xda, 0x93, + 0x58, 0xd3, 0x59, 0xdb, 0x72, 0xbc, 0xd2, 0xe3, 0xd0, 0xe0, 0x95, 0xe7, 0x68, 0xcd, 0x77, 0x5f, + 0x67, 0xfb, 0x1d, 0x5b, 0x7f, 0x18, 0x1f, 0xfe, 0x7d, 0xfc, 0xb3, 0x0c, 0xfd, 0x09, 0x1c, 0x5a, + 0x31, 0x02, 0x63, 0xcb, 0xf0, 0x09, 0x26, 0x7d, 0xd7, 0x33, 0x33, 0x51, 0x3d, 0x5e, 0x24, 0x22, + 0xd4, 0xf9, 0xa8, 0x82, 0xee, 0xc7, 0xa1, 0xc3, 0xff, 0x39, 0xa1, 0xc3, 0x3f, 0xaa, 0xe5, 0xc4, + 0xf3, 0xc6, 0x89, 0x64, 0x50, 0x85, 0x4b, 0x05, 0xf4, 0x6e, 0xaa, 0xbe, 0xf7, 0xa9, 0x02, 0x4e, + 0xc5, 0xf9, 0xbe, 0xa9, 0x46, 0xf4, 0x8a, 0x78, 0x95, 0x90, 0xde, 0xdd, 0x64, 0x48, 0xef, 0x4c, + 0x01, 0x77, 0x2a, 0xa6, 0x77, 0x53, 0x8d, 0xe9, 0x15, 0xd5, 0x2e, 0x07, 0xf5, 0xfe, 0x8f, 0x85, + 0xd1, 0x7e, 0x25, 0x27, 0xec, 0xf3, 0x69, 0x35, 0xec, 0x33, 0x42, 0x6b, 0x7e, 0x54, 0x71, 0x9f, + 0x5f, 0x6d, 0xe4, 0xc4, 0x7d, 0x16, 0x94, 0xb8, 0xcf, 0x88, 0x96, 0x25, 0x03, 0x3f, 0x37, 0xd5, + 0xc0, 0xcf, 0xa9, 0x02, 0x4e, 0x25, 0xf2, 0xb3, 0xa0, 0x44, 0x7e, 0x8a, 0x2a, 0x95, 0x42, 0x3f, + 0x0b, 0x4a, 0xe8, 0xa7, 0x88, 0x51, 0x8a, 0xfd, 0x2c, 0x28, 0xb1, 0x9f, 0x22, 0x46, 0x29, 0xf8, + 0xb3, 0xa0, 0x04, 0x7f, 0x8a, 0x18, 0xa5, 0xe8, 0xcf, 0x4d, 0x35, 0xfa, 0x53, 0x3c, 0x3e, 0x92, + 0xd0, 0x7f, 0x1c, 0xa8, 0xf9, 0x2f, 0x0c, 0xd4, 0xfc, 0x42, 0x35, 0x27, 0x00, 0x83, 0xb3, 0x03, + 0x30, 0x17, 0xf2, 0x25, 0x59, 0x1c, 0x81, 0x19, 0x7f, 0x15, 0x48, 0x87, 0x60, 0xde, 0x4b, 0x84, + 0x60, 0x4e, 0x17, 0x30, 0xab, 0x31, 0x98, 0xff, 0x35, 0x41, 0x86, 0xdf, 0x6b, 0x8c, 0xd8, 0x4f, + 0xdf, 0x90, 0xf7, 0xd3, 0x23, 0x56, 0xb2, 0xf4, 0x86, 0xfa, 0xb6, 0xba, 0xa1, 0x3e, 0x37, 0x06, + 0xaf, 0xb2, 0xa3, 0xde, 0xc8, 0xda, 0x51, 0x77, 0xc7, 0x40, 0xc9, 0xdd, 0x52, 0xdf, 0x4f, 0x6f, + 0xa9, 0x2f, 0x8c, 0x81, 0x97, 0xb9, 0xa7, 0xde, 0xc8, 0xda, 0x53, 0x8f, 0xd3, 0xba, 0xdc, 0x4d, + 0xf5, 0x67, 0x94, 0x4d, 0xf5, 0xd9, 0x71, 0x86, 0x2b, 0x5e, 0x1c, 0x3e, 0x9f, 0xb3, 0xab, 0x7e, + 0x77, 0x1c, 0x98, 0xd1, 0x41, 0xec, 0x1f, 0xef, 0x8b, 0xd5, 0x6a, 0x7e, 0xe7, 0x4d, 0x68, 0x85, + 0x17, 0x6d, 0xf4, 0xaf, 0x42, 0x33, 0x7c, 0x73, 0x94, 0xb4, 0x9c, 0xa3, 0xd1, 0xa6, 0x8e, 0x7b, + 0xcf, 0x22, 0x85, 0x6e, 0x43, 0x8d, 0xfe, 0x13, 0x66, 0x71, 0x7e, 0xbc, 0x0b, 0x3d, 0xb4, 0x12, + 0xcc, 0xf8, 0xf4, 0x7f, 0x3d, 0x02, 0x20, 0x3d, 0xc5, 0x18, 0xb7, 0xda, 0xf7, 0xe9, 0x64, 0x66, + 0x07, 0xc4, 0x63, 0x17, 0xb9, 0x0a, 0x9f, 0x2a, 0xc4, 0x35, 0x50, 0x6d, 0x09, 0x88, 0x87, 0x05, + 0x3b, 0x7a, 0x04, 0xad, 0x30, 0x90, 0xaa, 0xd5, 0x18, 0xd4, 0xbb, 0x63, 0x43, 0x85, 0xa1, 0x3d, + 0x1c, 0x41, 0xa0, 0x45, 0xa8, 0xf9, 0xae, 0x17, 0x68, 0x75, 0x06, 0xf5, 0xce, 0xd8, 0x50, 0x9b, + 0xae, 0x17, 0x60, 0xc6, 0xca, 0xbb, 0x26, 0xbd, 0x74, 0x9d, 0xa4, 0x6b, 0xca, 0x8c, 0xfd, 0x2f, + 0xd5, 0x68, 0x0e, 0x5d, 0x16, 0xd6, 0xc8, 0x75, 0xe8, 0xe2, 0xf8, 0x52, 0x92, 0xad, 0x12, 0x09, + 0x27, 0x88, 0x4b, 0x82, 0xfb, 0x37, 0xe7, 0xa1, 0xd3, 0x77, 0xf7, 0x89, 0x87, 0xe3, 0x2b, 0x4e, + 0xe2, 0x16, 0x5a, 0x2a, 0x1f, 0xe9, 0xd0, 0xda, 0xb1, 0x4c, 0xd2, 0xeb, 0x8b, 0xf9, 0xaf, 0x85, + 0xa3, 0x34, 0x7a, 0x00, 0x2d, 0x16, 0x63, 0x0f, 0x23, 0xfc, 0x93, 0x35, 0x92, 0x87, 0xfa, 0x43, + 0x00, 0x5a, 0x11, 0xab, 0xfc, 0x9e, 0x15, 0xb0, 0x31, 0x6c, 0xe1, 0x28, 0x4d, 0x1b, 0xcc, 0xee, + 0x91, 0xc9, 0x0d, 0x6e, 0xf2, 0x06, 0x27, 0xf3, 0xd1, 0x55, 0x78, 0x95, 0xe5, 0x25, 0xb6, 0x98, + 0x3c, 0x54, 0xdf, 0xc2, 0xd9, 0x85, 0xec, 0xde, 0x9c, 0x31, 0xe0, 0xf7, 0xda, 0x59, 0xf0, 0xae, + 0x8e, 0xe3, 0x0c, 0x74, 0x01, 0x0e, 0x9b, 0x64, 0xdb, 0xd8, 0xb3, 0x83, 0x27, 0x64, 0x77, 0x68, + 0x1b, 0x01, 0xe9, 0x99, 0xec, 0xb1, 0x6d, 0x1b, 0xa7, 0x0b, 0xd0, 0x25, 0x78, 0x45, 0x64, 0x72, + 0x33, 0xa6, 0xd2, 0xe8, 0x99, 0xec, 0xed, 0x69, 0x1b, 0x67, 0x15, 0xe9, 0xdf, 0xad, 0x51, 0xa1, + 0x33, 0xd5, 0x7e, 0x1f, 0xaa, 0x86, 0x69, 0x8a, 0x65, 0xf3, 0xca, 0x84, 0x06, 0x22, 0xde, 0x93, + 0x53, 0x04, 0xb4, 0x11, 0x5d, 0xb9, 0xe3, 0x0b, 0xe7, 0xf5, 0x49, 0xb1, 0xa2, 0x6f, 0x00, 0x08, + 0x1c, 0x8a, 0xb8, 0xc7, 0x2f, 0x8e, 0x57, 0x7f, 0x38, 0xc4, 0xe8, 0x3e, 0xb9, 0xc0, 0x41, 0xf7, + 0xa1, 0xc6, 0x5a, 0xc8, 0x17, 0xd6, 0xab, 0x93, 0xe2, 0x3d, 0xe2, 0xed, 0x63, 0x18, 0x7a, 0x9f, + 0xdf, 0x7d, 0x93, 0x2e, 0x5c, 0x96, 0xd5, 0x0b, 0x97, 0x4b, 0x50, 0xb7, 0x02, 0xb2, 0x9b, 0xbe, + 0x7f, 0x3b, 0x52, 0x55, 0xc5, 0xcc, 0xc3, 0x59, 0x47, 0xde, 0x03, 0xfc, 0x30, 0xba, 0x8b, 0x9d, + 0x9c, 0x0f, 0xef, 0x42, 0x8d, 0xb2, 0xa7, 0x7c, 0xc9, 0x71, 0x2a, 0x66, 0x9c, 0xfa, 0x65, 0xa8, + 0xd1, 0xce, 0x8e, 0xe8, 0x9d, 0x68, 0x4f, 0x25, 0x6a, 0xcf, 0xd2, 0x14, 0xb4, 0xdd, 0x21, 0xf1, + 0x98, 0x61, 0xe8, 0xff, 0x5c, 0x93, 0x2e, 0xc5, 0xf5, 0x64, 0x1d, 0xbb, 0x36, 0xf1, 0xcc, 0x29, + 0x6b, 0x19, 0x4e, 0x68, 0xd9, 0x8d, 0xc9, 0xd1, 0x52, 0x7a, 0x86, 0x13, 0x7a, 0xf6, 0x43, 0x60, + 0xa6, 0x34, 0xed, 0xa1, 0xa2, 0x69, 0xd7, 0x27, 0x47, 0x54, 0x74, 0x8d, 0x14, 0xe9, 0xda, 0x8a, + 0xaa, 0x6b, 0xdd, 0xf1, 0x44, 0x1e, 0x2d, 0x4d, 0x63, 0x68, 0xdb, 0x17, 0x73, 0xb5, 0x6d, 0x49, + 0xd1, 0xb6, 0x49, 0xab, 0xfe, 0x84, 0xf4, 0xed, 0xef, 0x6b, 0x50, 0xa3, 0xcb, 0x23, 0x5a, 0x95, + 0x75, 0xed, 0xdd, 0x89, 0x96, 0x56, 0x59, 0xcf, 0xd6, 0x13, 0x7a, 0x76, 0x75, 0x32, 0xa4, 0x94, + 0x8e, 0xad, 0x27, 0x74, 0x6c, 0x42, 0xbc, 0x94, 0x7e, 0xad, 0x29, 0xfa, 0x75, 0x79, 0x32, 0x34, + 0x45, 0xb7, 0x8c, 0x22, 0xdd, 0xba, 0xab, 0xea, 0xd6, 0x98, 0xde, 0x1b, 0xf3, 0x55, 0xc6, 0xd0, + 0xab, 0x0f, 0x72, 0xf5, 0xea, 0xb6, 0xa2, 0x57, 0x93, 0x54, 0xfb, 0x09, 0xe9, 0xd4, 0x55, 0xee, + 0x74, 0x8a, 0x7b, 0xc6, 0x63, 0x3a, 0x9d, 0xfa, 0x35, 0x68, 0xc7, 0x6f, 0xd9, 0x33, 0xae, 0xe7, + 0x73, 0xb2, 0xb0, 0xd6, 0x30, 0xa9, 0x5f, 0x81, 0x76, 0xfc, 0x3e, 0x3d, 0xa3, 0x2e, 0x9f, 0x15, + 0x0a, 0x2e, 0x91, 0xd2, 0x57, 0xe1, 0x70, 0xfa, 0xf5, 0x6c, 0x46, 0x1c, 0x5e, 0xba, 0x5b, 0x1e, + 0x3e, 0x45, 0x91, 0xb2, 0xf4, 0x17, 0x30, 0x9b, 0x78, 0x0f, 0x3b, 0x31, 0x06, 0xba, 0x22, 0xb9, + 0xc8, 0x55, 0xb1, 0x07, 0xcf, 0xbe, 0x2d, 0x1f, 0x3b, 0xc2, 0xfa, 0x0a, 0xcc, 0x16, 0x34, 0x7e, + 0x9c, 0xcb, 0xf2, 0x5f, 0x86, 0xa9, 0x51, 0x6d, 0xff, 0x04, 0x2e, 0xf3, 0x07, 0xd0, 0x49, 0xbd, + 0xe5, 0x4f, 0x56, 0xb3, 0x01, 0x30, 0x88, 0x68, 0x84, 0xd2, 0x5e, 0x9a, 0xe0, 0xe9, 0x02, 0xe3, + 0xc3, 0x12, 0x86, 0xfe, 0x5b, 0x65, 0x38, 0x9c, 0x7e, 0xc8, 0x3f, 0xee, 0xe6, 0x47, 0x83, 0x26, + 0xc3, 0x8a, 0x5e, 0x7c, 0x84, 0x49, 0xf4, 0x08, 0xa6, 0x7d, 0xdb, 0xea, 0x93, 0xe5, 0x1d, 0xc3, + 0x19, 0x10, 0x5f, 0xec, 0x68, 0x0a, 0x1e, 0xe3, 0x6f, 0xc6, 0x1c, 0x58, 0x61, 0xd7, 0x5f, 0xc0, + 0x94, 0x54, 0x88, 0x6e, 0x41, 0xc5, 0x1d, 0xa6, 0xee, 0x35, 0xe6, 0x63, 0x3e, 0x0e, 0xed, 0x0d, + 0x57, 0xdc, 0x61, 0xda, 0x24, 0x65, 0xf3, 0xad, 0x2a, 0xe6, 0xab, 0x3f, 0x80, 0xc3, 0xe9, 0xb7, + 0xf2, 0xc9, 0xe1, 0x39, 0x93, 0x8a, 0x12, 0xf0, 0x61, 0x4a, 0x6e, 0xf9, 0x17, 0xe0, 0x50, 0xf2, + 0x05, 0x7c, 0xc6, 0x6b, 0x9c, 0xf8, 0x51, 0x53, 0x18, 0xae, 0x9f, 0xff, 0xf9, 0x32, 0xcc, 0xaa, + 0x1d, 0x41, 0x47, 0x01, 0xa9, 0x39, 0xeb, 0xae, 0x43, 0x3a, 0x25, 0xf4, 0x2a, 0x1c, 0x56, 0xf3, + 0x17, 0x4d, 0xb3, 0x53, 0x4e, 0x93, 0xd3, 0x69, 0xab, 0x53, 0x41, 0x1a, 0x1c, 0x49, 0x8c, 0x10, + 0x9b, 0x44, 0x3b, 0x55, 0xf4, 0x3a, 0xbc, 0x9a, 0x2c, 0x19, 0xda, 0x46, 0x9f, 0x74, 0x6a, 0xfa, + 0x0f, 0x2a, 0x50, 0x7b, 0xea, 0x13, 0x4f, 0xff, 0xc7, 0x4a, 0xf8, 0x4a, 0xe3, 0x06, 0xd4, 0xd8, + 0xe3, 0x74, 0xe9, 0x35, 0x63, 0x39, 0xf1, 0x9a, 0x51, 0x79, 0x11, 0x17, 0xbf, 0x66, 0xbc, 0x01, + 0x35, 0xf6, 0x1c, 0x7d, 0x72, 0xce, 0x9f, 0x2a, 0x43, 0x3b, 0x7e, 0x1a, 0x3e, 0x31, 0xbf, 0xfc, + 0x2a, 0xa4, 0xa2, 0xbe, 0x0a, 0x39, 0x0f, 0x75, 0x8f, 0xbd, 0xdf, 0xe0, 0xb3, 0x4c, 0xf2, 0xad, + 0x09, 0xab, 0x10, 0x73, 0x12, 0x9d, 0xc0, 0x94, 0xfc, 0xf0, 0x7d, 0xf2, 0x66, 0x9c, 0x12, 0x5f, + 0xbd, 0xe9, 0x99, 0xfe, 0xa2, 0xe7, 0x19, 0x07, 0x42, 0x31, 0xd5, 0x4c, 0x7d, 0x0e, 0x6a, 0x1b, + 0x96, 0x33, 0xc8, 0x7e, 0x44, 0xaa, 0x7f, 0xbb, 0x0c, 0x4d, 0x71, 0x79, 0x57, 0x5f, 0x80, 0xea, + 0x3a, 0x79, 0x41, 0x1b, 0x22, 0xae, 0x0d, 0xa7, 0x1a, 0xf2, 0x88, 0xf5, 0x42, 0xd0, 0xe3, 0x90, + 0x4c, 0xbf, 0x19, 0x2d, 0x93, 0x93, 0xf3, 0xde, 0x80, 0x1a, 0x7b, 0xaf, 0x3e, 0x39, 0xe7, 0x6f, + 0xb4, 0xa0, 0xc1, 0x5f, 0x62, 0xea, 0xdf, 0x6a, 0x41, 0x83, 0xbf, 0x61, 0x47, 0xb7, 0xa1, 0xe9, + 0xef, 0xed, 0xee, 0x1a, 0xde, 0x81, 0x96, 0xfd, 0xc1, 0x44, 0xe5, 0xc9, 0x7b, 0x77, 0x93, 0xd3, + 0xe2, 0x90, 0x09, 0x5d, 0x83, 0x5a, 0xdf, 0xd8, 0x26, 0xa9, 0xe3, 0xdc, 0x2c, 0xe6, 0x65, 0x63, + 0x9b, 0x60, 0x46, 0x8e, 0xee, 0x42, 0x4b, 0x88, 0xc5, 0x17, 0xf1, 0x9c, 0xd1, 0xf5, 0x86, 0xc2, + 0x8c, 0xb8, 0xf4, 0xfb, 0xd0, 0x14, 0x8d, 0x41, 0x77, 0xa2, 0x77, 0xa8, 0xc9, 0xc8, 0x73, 0x66, + 0x17, 0xa2, 0xc7, 0xcd, 0xd1, 0x8b, 0xd4, 0xbf, 0xa8, 0x40, 0x8d, 0x36, 0xee, 0x63, 0x23, 0xa1, + 0xe3, 0x00, 0xb6, 0xe1, 0x07, 0x1b, 0x7b, 0xb6, 0x4d, 0x4c, 0xf1, 0xc2, 0x4e, 0xca, 0x41, 0xe7, + 0xe0, 0x10, 0x4f, 0xf9, 0x3b, 0x9b, 0x7b, 0xfd, 0x3e, 0x89, 0x9e, 0x89, 0x26, 0xb3, 0xd1, 0x22, + 0xd4, 0xd9, 0x57, 0xd5, 0x84, 0x57, 0xf8, 0x76, 0xe1, 0xc8, 0x76, 0x37, 0x2c, 0x47, 0xb4, 0x86, + 0x73, 0xea, 0x2e, 0xb4, 0xa3, 0x3c, 0x6a, 0x84, 0x43, 0xcb, 0x71, 0x2c, 0x67, 0x20, 0x34, 0x3a, + 0x4c, 0xd2, 0x45, 0x87, 0xfe, 0x15, 0xed, 0xad, 0x63, 0x91, 0xa2, 0xf9, 0xdb, 0x86, 0x65, 0x8b, + 0x26, 0xd6, 0xb1, 0x48, 0x51, 0xa4, 0x3d, 0xf1, 0xf2, 0xbf, 0xc6, 0x3a, 0x18, 0x26, 0xf5, 0x8f, + 0xca, 0xd1, 0x63, 0xec, 0xac, 0xc7, 0x99, 0xa9, 0x58, 0xd2, 0x9c, 0x1c, 0xd0, 0xe6, 0x0b, 0x82, + 0x14, 0xa2, 0x3e, 0x0a, 0x0d, 0xd7, 0xb1, 0x2d, 0x87, 0x88, 0xd8, 0x91, 0x48, 0x25, 0xc6, 0xb8, + 0x9e, 0x1a, 0x63, 0x51, 0xbe, 0x6a, 0x5a, 0xb4, 0x89, 0x8d, 0xb8, 0x9c, 0xe7, 0xa0, 0xf7, 0xa0, + 0x69, 0x92, 0x7d, 0xab, 0x4f, 0x7c, 0xad, 0xc9, 0x54, 0xef, 0xe4, 0xc8, 0xb1, 0x5d, 0x61, 0xb4, + 0x38, 0xe4, 0xd1, 0x03, 0x68, 0xf0, 0xac, 0xa8, 0x4b, 0x65, 0xa9, 0x4b, 0x71, 0xa3, 0x2b, 0x23, + 0x1a, 0x5d, 0x2d, 0x68, 0x74, 0x2d, 0xd9, 0xe8, 0x79, 0x13, 0x20, 0x56, 0x37, 0x34, 0x05, 0xcd, + 0xa7, 0xce, 0x73, 0xc7, 0x7d, 0xe1, 0x74, 0x4a, 0x34, 0xf1, 0x78, 0x7b, 0x9b, 0xd6, 0xd2, 0x29, + 0xd3, 0x04, 0xa5, 0xb3, 0x9c, 0x41, 0xa7, 0x82, 0x00, 0x1a, 0x34, 0x41, 0xcc, 0x4e, 0x95, 0xfe, + 0xbf, 0xc7, 0xe4, 0xd7, 0xa9, 0xa1, 0xd7, 0xe0, 0x95, 0x9e, 0xd3, 0x77, 0x77, 0x87, 0x46, 0x60, + 0x6d, 0xd9, 0xe4, 0x19, 0xf1, 0x7c, 0xcb, 0x75, 0x3a, 0x75, 0xfd, 0xdf, 0xcb, 0xfc, 0xd4, 0x57, + 0xbf, 0x0b, 0xd3, 0xca, 0xa7, 0x28, 0x34, 0x68, 0xb2, 0x2f, 0x03, 0xc4, 0x7e, 0xb7, 0x48, 0x32, + 0x2d, 0xe1, 0xcf, 0xe2, 0x85, 0xcb, 0xc2, 0x53, 0xfa, 0x3d, 0x00, 0xe9, 0x03, 0x14, 0xc7, 0x01, + 0xb6, 0x0e, 0x02, 0xe2, 0xf3, 0x8f, 0x4f, 0x50, 0x88, 0x1a, 0x96, 0x72, 0x64, 0xfc, 0x8a, 0x82, + 0xaf, 0x5f, 0x07, 0x90, 0x3e, 0x3f, 0x41, 0xed, 0x87, 0xa6, 0x96, 0x92, 0x60, 0xc9, 0x6c, 0xbd, + 0x2b, 0x7a, 0x10, 0x7e, 0x68, 0x22, 0x6c, 0x01, 0x8f, 0xd2, 0xc9, 0x2d, 0x60, 0x39, 0xfa, 0x2a, + 0x40, 0xfc, 0xad, 0x05, 0x7d, 0x21, 0x9a, 0xa2, 0xdf, 0x81, 0x9a, 0x69, 0x04, 0x86, 0x98, 0x1d, + 0x5f, 0x4f, 0xac, 0x50, 0x31, 0x0b, 0x66, 0x64, 0xfa, 0x6f, 0x96, 0x61, 0x5a, 0xfe, 0xae, 0x84, + 0xfe, 0x3e, 0xd4, 0xd8, 0x87, 0x29, 0xee, 0xc0, 0xb4, 0xfc, 0x61, 0x89, 0xd4, 0x77, 0x7d, 0x39, + 0x9e, 0xcc, 0x8a, 0x15, 0x06, 0xbd, 0x17, 0x35, 0xe9, 0x63, 0x43, 0x5d, 0x82, 0xa6, 0xf8, 0x4e, + 0x85, 0x7e, 0x1a, 0xda, 0xf1, 0x67, 0x29, 0xe8, 0x1c, 0xc1, 0xf3, 0x43, 0x29, 0x8b, 0xa4, 0xfe, + 0x4f, 0x55, 0xa8, 0x33, 0x71, 0xea, 0xdf, 0xac, 0xc8, 0x9a, 0xa8, 0xff, 0xa0, 0x9c, 0xbb, 0xe7, + 0xbb, 0xa2, 0x7c, 0x1e, 0x60, 0x36, 0xf5, 0x39, 0x16, 0xf1, 0x15, 0x0a, 0x75, 0x02, 0xbd, 0x0e, + 0x4d, 0x87, 0x04, 0x2f, 0x5c, 0xef, 0x39, 0x33, 0x92, 0xd9, 0xf4, 0x27, 0x58, 0x18, 0xd7, 0x3a, + 0xa7, 0xc1, 0x21, 0x31, 0xba, 0x0a, 0x75, 0xe2, 0x79, 0xae, 0xc7, 0x4c, 0x67, 0x36, 0xf5, 0x61, + 0x93, 0xf8, 0x8b, 0x17, 0xab, 0x94, 0x0a, 0x73, 0x62, 0x74, 0x15, 0x5e, 0xf5, 0xb9, 0xb5, 0x70, + 0xdf, 0xd1, 0x17, 0xef, 0xa7, 0xc5, 0xac, 0x92, 0x5d, 0x38, 0xff, 0xd9, 0x70, 0x21, 0x95, 0x0c, + 0xac, 0x24, 0x5b, 0x5e, 0x19, 0xb5, 0xa1, 0xce, 0x2a, 0xea, 0x54, 0x64, 0xf3, 0xac, 0x52, 0xf7, + 0x50, 0x34, 0x7d, 0x9d, 0x10, 0x53, 0x7c, 0x11, 0xa3, 0x53, 0x9b, 0xbf, 0x02, 0x4d, 0x91, 0x4f, + 0xe9, 0x17, 0x79, 0xdb, 0x3b, 0x25, 0x34, 0x0d, 0xad, 0x4d, 0x62, 0x6f, 0xaf, 0xb9, 0x7e, 0xd0, + 0x29, 0xa3, 0x19, 0x68, 0x33, 0x5b, 0x78, 0xec, 0xd8, 0x07, 0x9d, 0xca, 0xfc, 0x07, 0xd0, 0x8e, + 0x7a, 0x84, 0x5a, 0x50, 0x5b, 0xdf, 0xb3, 0xed, 0x4e, 0x89, 0xb9, 0xa0, 0x81, 0xeb, 0x85, 0x01, + 0xe8, 0xd5, 0x97, 0x74, 0x3d, 0xe9, 0x94, 0xf3, 0xac, 0xbe, 0x82, 0x3a, 0x30, 0x2d, 0x2a, 0xe7, + 0x6d, 0xae, 0xea, 0x7f, 0x57, 0x86, 0x76, 0xf4, 0x29, 0x0f, 0xea, 0xff, 0x85, 0x32, 0xce, 0x9f, + 0x07, 0x16, 0x12, 0xd2, 0xce, 0xff, 0x32, 0x48, 0x42, 0xe2, 0x67, 0x60, 0x56, 0x4c, 0xad, 0xe1, + 0xe0, 0xf3, 0xd9, 0x31, 0x91, 0x3b, 0x7f, 0x33, 0x1a, 0xf5, 0x0e, 0x33, 0xb1, 0x65, 0xd7, 0x71, + 0x48, 0x3f, 0x60, 0x63, 0x7f, 0x08, 0xa6, 0xd6, 0xdd, 0x60, 0xc3, 0xf5, 0x7d, 0xda, 0x33, 0x3e, + 0x52, 0x71, 0x79, 0x45, 0xff, 0xf5, 0x32, 0x34, 0xf8, 0x07, 0x45, 0xf4, 0x5f, 0x2e, 0x43, 0x83, + 0x7f, 0x44, 0x04, 0x9d, 0x87, 0x8e, 0xe7, 0x52, 0xa0, 0x70, 0xa3, 0xd0, 0x5b, 0x11, 0xbd, 0x4a, + 0xe5, 0xd3, 0xbd, 0xab, 0x2b, 0x69, 0x81, 0x58, 0xda, 0x95, 0x3c, 0x74, 0x13, 0x80, 0x7f, 0xa4, + 0xe4, 0xc9, 0xc1, 0x90, 0x08, 0xf5, 0x4d, 0x5e, 0x1d, 0x13, 0x9f, 0x35, 0x61, 0x87, 0x2c, 0x12, + 0xf5, 0xfc, 0xd7, 0x61, 0x06, 0x13, 0x7f, 0xe8, 0x3a, 0x3e, 0xf9, 0x51, 0x7d, 0xb4, 0x3c, 0xf7, + 0xf3, 0xe3, 0xf3, 0xdf, 0xae, 0x42, 0x9d, 0x79, 0x8d, 0xfa, 0xef, 0x57, 0x23, 0xff, 0x36, 0xe3, + 0x4e, 0x61, 0x7c, 0xf3, 0x47, 0xb6, 0x66, 0xc5, 0xdf, 0x94, 0x8f, 0x8f, 0x2e, 0xcb, 0x37, 0x7e, + 0x64, 0x4b, 0x56, 0x39, 0x94, 0x9b, 0x3e, 0x9f, 0x81, 0xd6, 0xd0, 0x73, 0x07, 0x1e, 0x75, 0x6c, + 0x6b, 0x89, 0x4f, 0xcc, 0xa8, 0x6c, 0x1b, 0x82, 0x0c, 0x47, 0x0c, 0xfa, 0x3a, 0xb4, 0xc2, 0xdc, + 0x9c, 0x0f, 0x20, 0x20, 0xa8, 0x99, 0xae, 0x58, 0x9c, 0xab, 0x98, 0xfd, 0xa7, 0xe3, 0x22, 0x46, + 0x30, 0xdc, 0x94, 0x8a, 0xe4, 0xfc, 0x97, 0xc4, 0x89, 0xec, 0x0c, 0xb4, 0x57, 0x3c, 0x77, 0xc8, + 0x5e, 0xba, 0x77, 0x4a, 0xd4, 0xea, 0xb9, 0x18, 0x3b, 0x65, 0xfa, 0x7f, 0xf5, 0x25, 0xfb, 0x5f, + 0x61, 0xc6, 0x6a, 0xec, 0x13, 0x4a, 0xd6, 0xa9, 0x22, 0x04, 0xb3, 0x98, 0xb0, 0x53, 0x28, 0xe1, + 0x12, 0x75, 0x6a, 0x14, 0xe8, 0x91, 0x35, 0xe0, 0xdb, 0xbc, 0x4e, 0x7d, 0x7e, 0x31, 0xbc, 0x79, + 0x43, 0x8d, 0x97, 0x6f, 0x2b, 0xa7, 0xa0, 0x89, 0xf7, 0x98, 0x5f, 0xd6, 0x29, 0xd3, 0x6c, 0xea, + 0xec, 0x73, 0xe8, 0x65, 0xc3, 0xe9, 0x13, 0x9b, 0xad, 0xe5, 0xd1, 0xec, 0x52, 0x5b, 0x9a, 0xfb, + 0xcb, 0x8f, 0x8e, 0x97, 0xbf, 0xf3, 0xd1, 0xf1, 0xf2, 0xf7, 0x3e, 0x3a, 0x5e, 0xfe, 0xa5, 0xef, + 0x1f, 0x2f, 0x7d, 0xe7, 0xfb, 0xc7, 0x4b, 0xff, 0xf0, 0xfd, 0xe3, 0xa5, 0x0f, 0x2b, 0xc3, 0xad, + 0xad, 0x06, 0xbb, 0x32, 0x71, 0xe5, 0x3f, 0x03, 0x00, 0x00, 0xff, 0xff, 0x47, 0xc1, 0xf9, 0xb8, + 0x72, 0x5f, 0x00, 0x00, } func (m *Event) Marshal() (dAtA []byte, err error) { diff --git a/pb/protos/events.proto b/pb/protos/events.proto index d0dd5f4dc..b0f3c6b89 100644 --- a/pb/protos/events.proto +++ b/pb/protos/events.proto @@ -1088,7 +1088,7 @@ message Event { Syncing = 1; Error = 2; Offline = 3; - SyncProtocolUpdate = 4; + NetworkNeedsUpdate = 4; } enum Network { Anytype = 0; From ef39bfb877e65149e039b17094bae5ea1e709ac1 Mon Sep 17 00:00:00 2001 From: AnastasiaShemyakinskaya Date: Thu, 22 Aug 2024 15:00:22 +0200 Subject: [PATCH 56/78] GO-3921: fix mocks Signed-off-by: AnastasiaShemyakinskaya --- .mockery.yaml | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/.mockery.yaml b/.mockery.yaml index bd1968f4a..e0b1b83d3 100644 --- a/.mockery.yaml +++ b/.mockery.yaml @@ -215,7 +215,4 @@ packages: SpaceIdGetter: NodeUsage: NetworkConfig: - Updater: - github.com/anyproto/anytype-heart/core/compatibility: - interfaces: - Checker: + Updater: \ No newline at end of file From 70174797011b803bedd7956588d0279d2afbd8f6 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 23 Aug 2024 04:09:47 +0000 Subject: [PATCH 57/78] Bump github.com/anyproto/tantivy-go from 0.0.7 to 0.0.8 Bumps [github.com/anyproto/tantivy-go](https://github.com/anyproto/tantivy-go) from 0.0.7 to 0.0.8. - [Release notes](https://github.com/anyproto/tantivy-go/releases) - [Commits](https://github.com/anyproto/tantivy-go/compare/v0.0.7...v0.0.8) --- updated-dependencies: - dependency-name: github.com/anyproto/tantivy-go dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 10a979350..8708149a8 100644 --- a/go.mod +++ b/go.mod @@ -10,7 +10,7 @@ require ( github.com/anyproto/any-store v0.0.1 github.com/anyproto/any-sync v0.4.22 github.com/anyproto/go-naturaldate/v2 v2.0.2-0.20230524105841-9829cfd13438 - github.com/anyproto/tantivy-go v0.0.7 + github.com/anyproto/tantivy-go v0.0.8 github.com/araddon/dateparse v0.0.0-20210429162001-6b43995a97de github.com/avast/retry-go/v4 v4.6.0 github.com/blevesearch/bleve/v2 v2.3.10 diff --git a/go.sum b/go.sum index 81e566c8e..049e631b7 100644 --- a/go.sum +++ b/go.sum @@ -109,8 +109,8 @@ github.com/anyproto/protobuf v1.3.3-0.20240201225420-6e325cf0ac38 h1:80jke82/c+b github.com/anyproto/protobuf v1.3.3-0.20240201225420-6e325cf0ac38/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q= github.com/anyproto/ristretto v0.1.2-0.20240221153107-2b23839cc50c h1:GicoaTUyB2mtCIl3YMrO0OzysqRT5GA4vuvDsqEkhSM= github.com/anyproto/ristretto v0.1.2-0.20240221153107-2b23839cc50c/go.mod h1:S1GPSBCYCIhmVNfcth17y2zZtQT6wzkzgwUve0VDWWA= -github.com/anyproto/tantivy-go v0.0.7 h1:sw8wuXJKZYmoULTmoqJdhsK4PYBCdTkAdSD7F89aQiI= -github.com/anyproto/tantivy-go v0.0.7/go.mod h1:Pl0zaeEX7dkVDTDKROzlLlGCVjbZHjyPrZloFuVEASc= +github.com/anyproto/tantivy-go v0.0.8 h1:jigYko7cZBFBg2Z65PdEBsGwRB961uYqZP6SVozskPc= +github.com/anyproto/tantivy-go v0.0.8/go.mod h1:Pl0zaeEX7dkVDTDKROzlLlGCVjbZHjyPrZloFuVEASc= github.com/anyproto/zeroconf/v2 v2.2.1-0.20240228113933-f90a5cc4439d h1:5bj7nX/AS8sxGpTIrapE7PC4oPlhkHMwMqXlJbUHBlg= github.com/anyproto/zeroconf/v2 v2.2.1-0.20240228113933-f90a5cc4439d/go.mod h1:fuJqLnUwZTshS3U/bMRJ3+ow/v9oid1n0DmyYyNO1Xs= github.com/apache/thrift v0.12.0/go.mod h1:cp2SuWMxlEZw2r+iP2GNCdIi4C1qmUzdZFSVb+bacwQ= From 78abdba578ca1fb2b2c85337e2f2de78e15cfb2f Mon Sep 17 00:00:00 2001 From: Anthony Akentiev Date: Fri, 23 Aug 2024 12:06:52 +0200 Subject: [PATCH 58/78] GO-3702 GetAllTiers - supress error if no connectivity --- core/payments/payments.go | 15 ++++++++------- core/payments/payments_test.go | 23 ++++++++++++++++++++--- 2 files changed, 28 insertions(+), 10 deletions(-) diff --git a/core/payments/payments.go b/core/payments/payments.go index 833a9b850..d070ead21 100644 --- a/core/payments/payments.go +++ b/core/payments/payments.go @@ -272,7 +272,7 @@ func (s *service) GetSubscriptionStatus(ctx context.Context, req *pb.RpcMembersh log.Debug("subscription status", zap.Any("from server", status), zap.Any("cached", cachedStatus)) // 5 - Send all messages to the client if needed - if !isUpdateRequired(cacheErr, isCacheDisabled, isCacheExpired, cachedStatus, status) { + if !isUpdateRequired(cacheErr, isCacheExpired, cachedStatus, status) { // no need to send events or enable/disable cache return &out, nil } @@ -323,7 +323,7 @@ func canReturnCachedStatus(s *pb.RpcMembershipGetStatusResponse) bool { return s != nil && s.Data != nil && (s.Error == nil || s.Error.Code == pb.RpcMembershipGetStatusResponseError_NULL) } -func isUpdateRequired(cacheErr error, isCacheDisabled bool, isCacheExpired bool, cachedStatus *pb.RpcMembershipGetStatusResponse, status *proto.GetSubscriptionResponse) bool { +func isUpdateRequired(cacheErr error, isCacheExpired bool, cachedStatus *pb.RpcMembershipGetStatusResponse, status *proto.GetSubscriptionResponse) bool { // 1 - If cache was empty or expired // -> treat at is if data was different isCacheEmpty := cacheErr != nil || cachedStatus == nil || cachedStatus.Data == nil || isCacheExpired @@ -890,11 +890,12 @@ func (s *service) getAllTiers(ctx context.Context, req *pb.RpcMembershipGetTiers // empty return or error tiers, err := s.ppclient.GetAllTiers(ctx, &reqSigned) if err != nil { - // if error here -> we do not create empty array - // with GetStatus above the logic is different - // there we create empty status and save it to cache - log.Error("can not get tiers from payment node", zap.Error(err)) - return nil, err + // If PP node didn't answer -> create empty tiers response + log.Info("creating empty tiers in cache because can not get tiers from the payment node") + + tiers = &proto.GetTiersResponse{ + Tiers: make([]*proto.TierData, 0), + } } // 3 - return out diff --git a/core/payments/payments_test.go b/core/payments/payments_test.go index cdfd74ce5..456c121ce 100644 --- a/core/payments/payments_test.go +++ b/core/payments/payments_test.go @@ -1134,7 +1134,7 @@ func TestFinalizeSubscription(t *testing.T) { } func TestGetTiers(t *testing.T) { - t.Run("fail if no cache, pp client returned error", func(t *testing.T) { + t.Run("do not fail if no cache, pp client returned error", func(t *testing.T) { fx := newFixture(t) defer fx.finish(t) @@ -1145,13 +1145,30 @@ func TestGetTiers(t *testing.T) { fx.cache.EXPECT().IsCacheDisabled().Return(false) fx.cache.EXPECT().IsCacheExpired().Return(false) fx.cache.EXPECT().CacheGet().Return(nil, nil, nil) + fx.cache.EXPECT().CacheSet(mock.AnythingOfType("*pb.RpcMembershipGetStatusResponse"), mock.AnythingOfType("*pb.RpcMembershipGetTiersResponse")).RunAndReturn(func(in *pb.RpcMembershipGetStatusResponse, tiers *pb.RpcMembershipGetTiersResponse) (err error) { + return nil + }) + fx.ppclient.EXPECT().GetSubscriptionStatus(gomock.Any(), gomock.Any()).DoAndReturn(func(ctx interface{}, in *psp.GetSubscriptionRequestSigned) (*psp.GetSubscriptionResponse, error) { + return &psp.GetSubscriptionResponse{ + Tier: uint32(psp.SubscriptionTier_TierExplorer), + Status: psp.SubscriptionStatus_StatusActive, + DateStarted: uint64(timeNow.Unix()), + DateEnds: uint64(subsExpire.Unix()), + IsAutoRenew: true, + PaymentMethod: psp.PaymentMethod_MethodCrypto, + RequestedAnyName: "something.any", + }, nil + }).MinTimes(1) + + fx.expectLimitsUpdated() req := pb.RpcMembershipGetTiersRequest{ NoCache: false, Locale: "en_US", } - _, err := fx.GetTiers(ctx, &req) - assert.Error(t, err) + out, err := fx.GetTiers(ctx, &req) + assert.NoError(t, err) + assert.Equal(t, 0, len(out.Tiers)) }) t.Run("success if no cache, empty response", func(t *testing.T) { From 20ff0b5bbd66a6b4e51e2a0b752b504f6890f0ce Mon Sep 17 00:00:00 2001 From: Mikhail Iudin Date: Thu, 22 Aug 2024 17:45:00 +0200 Subject: [PATCH 59/78] GO-3906 Fix tantivy build for ios --- .github/workflows/build.yml | 3 +- Makefile | 7 +- cmd/iosrepack/main.go | 214 ++++++++++++++++++ go.mod | 6 +- go.sum | 12 +- .../localstore/ftsearch/ftsearchtantivy.go | 4 +- tantivity_sha256.txt | 21 +- 7 files changed, 244 insertions(+), 23 deletions(-) create mode 100644 cmd/iosrepack/main.go diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index ccdd8788d..9098acd2b 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -82,7 +82,7 @@ jobs: ${{ runner.os }}-go-${{ matrix.go-version }}- - name: Install old MacOS SDK (for backward compatibility of CGO) run: source .github/install_macos_sdk.sh 10.15 - if: github.event.inputs.run-on-runner != 'ARM64' + if: github.event.inputs.run-on-runner != 'ARM64' && github.event_name != 'schedule' - name: Set env vars env: UNSPLASH_KEY: ${{ secrets.UNSPLASH_KEY }} @@ -233,6 +233,7 @@ jobs: go install go.uber.org/mock/mockgen@v0.3.0 make test-deps gomobile bind -tags "envproduction nogrpcserver gomobile nowatchdog nosigar nomutexdeadlockdetector timetzdata" -ldflags "$FLAGS" -v -target=ios -o Lib.xcframework github.com/anyproto/anytype-heart/clientlibrary/service github.com/anyproto/anytype-heart/core || true + go run cmd/iosrepack/main.go gtar --exclude ".*" -czvf ios_framework.tar.gz Lib.xcframework protobuf json gradle publish mv ios_framework.tar.gz .release/ios_framework_${VERSION}.tar.gz diff --git a/Makefile b/Makefile index cc06e1438..702e9d945 100644 --- a/Makefile +++ b/Makefile @@ -135,6 +135,8 @@ endif @cp pkg/lib/bundle/relations.json dist/ios/json/ @cp pkg/lib/bundle/internal*.json dist/ios/json/ @go mod tidy + @echo 'Repacking iOS framework...' + @go run cmd/iosrepack/main.go install-dev-ios: setup-go build-ios protos-swift @echo 'Installing iOS framework locally at $(CLIENT_IOS_PATH)...' @@ -337,7 +339,7 @@ endif ### Tantivy Section REPO := anyproto/tantivy-go -VERSION := v0.0.7 +VERSION := v0.0.8 OUTPUT_DIR := deps/libs SHA_FILE = tantivity_sha256.txt @@ -349,6 +351,7 @@ TANTIVY_LIBS := android-386.tar.gz \ darwin-arm64.tar.gz \ ios-amd64.tar.gz \ ios-arm64.tar.gz \ + ios-arm64-sim.tar.gz \ linux-amd64-musl.tar.gz \ windows-amd64.tar.gz @@ -376,10 +379,12 @@ download-tantivy-all-force: download-tantivy @echo "SHA256 checksums generated." download-tantivy-all: download-tantivy + @rm -rf /deps/libs/* @echo "Validating SHA256 checksums..." @shasum -a 256 -c $(SHA_FILE) --status || { echo "Hash mismatch detected."; exit 1; } @echo "All files are valid." download-tantivy-local: + @rm -rf /deps/libs/* @mkdir -p $(OUTPUT_DIR) @cp -r $(TANTIVY_GO_PATH)/libs/ $(OUTPUT_DIR) \ No newline at end of file diff --git a/cmd/iosrepack/main.go b/cmd/iosrepack/main.go new file mode 100644 index 000000000..d2d94287d --- /dev/null +++ b/cmd/iosrepack/main.go @@ -0,0 +1,214 @@ +package main + +import ( + "fmt" + "os" + "os/exec" + "path/filepath" +) + +const ( + repack = "repack" + iosArm64 = "ios_arm64.a" + iosArm64Sim = "ios_arm64_sim.a" + iosX86Sim = "ios_x86_sim.a" + iosArm64Repack = "iosArm64" + iosArm64SimRepack = "iosArm64Sim" + iosX86SimRepack = "iosX86Sim" + combined = "libcombined.a" +) + +type iosContext struct { + tantivyArm64 string + tantivyArm64Sim string + tantivyX86Sim string + iosLib string +} + +func main() { + err := delegateMain() + if err != nil { + fmt.Println("Error:", err) + os.Exit(-1) + } +} + +func delegateMain() error { + ctx := new(iosContext) + ctx.tantivyArm64 = "deps/libs/ios-arm64/libtantivy_go.a" + ctx.tantivyArm64Sim = "deps/libs/ios-arm64-sim/libtantivy_go.a" + ctx.tantivyX86Sim = "deps/libs/ios-amd64/libtantivy_go.a" + ctx.iosLib = "dist/ios/Lib.xcframework" + + iosArm64Lib, iosSimLib, err := thinIosLibs(ctx) + if err != nil { + return err + } + + err = repackIosLibsWithTantivy(ctx) + if err != nil { + return err + } + + err = removeOldIosLibs(iosArm64Lib, iosSimLib) + if err != nil { + return err + } + + err = createNewIosLibs(iosArm64Lib, iosSimLib) + if err != nil { + return err + } + + return nil +} + +func createNewIosLibs(iosArm64Lib string, iosSimLib string) error { + defer func() { + _ = execute("Cleanup:", "rm", "-rf", repack) + _ = execute("Cleanup:", "rm", iosArm64) + _ = execute("Cleanup:", "rm", iosArm64Sim) + _ = execute("Cleanup:", "rm", iosX86Sim) + }() + + err := execute("Error creating lib:", "lipo", "-create", + filepath.Join(repack, iosArm64Repack, combined), "-output", "Lib") + if err != nil { + return err + } + + err = execute("Move created lib:", "mv", "Lib", iosArm64Lib) + if err != nil { + return err + } + + err = execute("Error creating lib:", "lipo", "-create", + filepath.Join(repack, iosArm64SimRepack, combined), + filepath.Join(repack, iosX86SimRepack, combined), "-output", "Lib") + if err != nil { + return err + } + + err = execute("Move created lib:", "mv", "Lib", iosSimLib) + if err != nil { + return err + } + + return nil +} + +func removeOldIosLibs(iosArm64Lib string, iosSimLib string) error { + err := execute("Error removing lib:", "rm", iosArm64Lib) + if err != nil { + return err + } + + err = execute("Error removing lib:", "rm", iosSimLib) + if err != nil { + return err + } + return nil +} + +func thinIosLibs(ctx *iosContext) (string, string, error) { + iosArm64Lib := filepath.Join(ctx.iosLib, "ios-arm64", "Lib.framework", "Lib") + err := execute("Error extracting lib:", "lipo", iosArm64Lib, "-thin", "arm64", "-output", iosArm64) + if err != nil { + return "", "", err + } + + iosSimLib := filepath.Join(ctx.iosLib, "ios-arm64_x86_64-simulator", "Lib.framework", "Lib") + err = execute("Error extracting lib:", "lipo", iosSimLib, "-thin", "arm64", "-output", iosArm64Sim) + if err != nil { + return "", "", err + } + + err = execute("Error extracting lib:", "lipo", iosSimLib, "-thin", "x86_64", "-output", iosX86Sim) + if err != nil { + return "", "", err + } + return iosArm64Lib, iosSimLib, nil +} + +func repackIosLibsWithTantivy(ctx *iosContext) error { + err := os.MkdirAll(repack, os.ModePerm) + if err != nil { + return err + } + + err = os.Chdir(repack) + if err != nil { + return err + } + + err = repackLib(iosArm64Repack, ctx.tantivyArm64, iosArm64) + if err != nil { + return err + } + + err = repackLib(iosArm64SimRepack, ctx.tantivyArm64Sim, iosArm64Sim) + if err != nil { + return err + } + + err = repackLib(iosX86SimRepack, ctx.tantivyX86Sim, iosX86Sim) + if err != nil { + return err + } + + err = os.Chdir("..") + if err != nil { + return err + } + return nil +} + +func repackLib(dir string, tantivyLib string, iosLib string) error { + err := os.MkdirAll(dir, os.ModePerm) + if err != nil { + return err + } + + err = os.Chdir(dir) + if err != nil { + return err + } + + err = execute("Error extracting lib:", "ar", "-x", filepath.Join("..", "..", tantivyLib)) + if err != nil { + return err + } + + err = execute("Error extracting lib:", "ar", "-x", filepath.Join("..", "..", iosLib)) + if err != nil { + return err + } + + oFiles, err := filepath.Glob("*.o") + if err != nil { + return err + } + + err = execute("Error combine lib:", "ar", append([]string{"-qc", combined}, oFiles...)...) + if err != nil { + return err + } + + err = os.Chdir("..") + if err != nil { + return err + } + return nil +} + +func execute(errText string, name string, arg ...string) error { + cmd := exec.Command(name, arg...) + cmd.Stdout = os.Stdout + cmd.Stderr = os.Stderr + err := cmd.Run() + if err != nil { + fmt.Println(errText, err) + return err + } + return nil +} diff --git a/go.mod b/go.mod index 10a979350..a1b9c0ed0 100644 --- a/go.mod +++ b/go.mod @@ -93,7 +93,7 @@ require ( go.uber.org/zap v1.27.0 golang.org/x/exp v0.0.0-20240719175910-8a7402abbf56 golang.org/x/image v0.19.0 - golang.org/x/mobile v0.0.0-20240520174638-fa72addaaa1b + golang.org/x/mobile v0.0.0-20240806205939-81131f6468ab golang.org/x/net v0.28.0 golang.org/x/oauth2 v0.22.0 golang.org/x/text v0.17.0 @@ -257,12 +257,12 @@ require ( go.opentelemetry.io/otel v1.14.0 // indirect go.opentelemetry.io/otel/trace v1.14.0 // indirect golang.org/x/crypto v0.26.0 // indirect - golang.org/x/mod v0.19.0 // indirect + golang.org/x/mod v0.20.0 // indirect golang.org/x/sync v0.8.0 // indirect golang.org/x/sys v0.23.0 // indirect golang.org/x/term v0.23.0 // indirect golang.org/x/time v0.5.0 // indirect - golang.org/x/tools v0.23.0 // indirect + golang.org/x/tools v0.24.0 // indirect google.golang.org/genproto/googleapis/api v0.0.0-20240528184218-531527333157 // indirect google.golang.org/genproto/googleapis/rpc v0.0.0-20240528184218-531527333157 // indirect google.golang.org/protobuf v1.34.2 // indirect diff --git a/go.sum b/go.sum index 81e566c8e..71768e643 100644 --- a/go.sum +++ b/go.sum @@ -1550,8 +1550,8 @@ golang.org/x/lint v0.0.0-20200302205851-738671d3881b/go.mod h1:3xt1FjdF8hUf6vQPI golang.org/x/lint v0.0.0-20201208152925-83fdc39ff7b5/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= golang.org/x/mobile v0.0.0-20190312151609-d3739f865fa6/go.mod h1:z+o9i4GpDbdi3rU15maQ/Ox0txvL9dWGYEHz965HBQE= golang.org/x/mobile v0.0.0-20190719004257-d2bd2a29d028/go.mod h1:E/iHnbuqvinMTCcRqshq8CkpyQDoeVncDDYHnLhea+o= -golang.org/x/mobile v0.0.0-20240520174638-fa72addaaa1b h1:WX7nnnLfCEXg+FmdYZPai2XuP3VqCP1HZVMST0n9DF0= -golang.org/x/mobile v0.0.0-20240520174638-fa72addaaa1b/go.mod h1:EiXZlVfUTaAyySFVJb9rsODuiO+WXu8HrUuySb7nYFw= +golang.org/x/mobile v0.0.0-20240806205939-81131f6468ab h1:KONOFF8Uy3b60HEzOsGnNghORNhY4ImyOx0PGm73K9k= +golang.org/x/mobile v0.0.0-20240806205939-81131f6468ab/go.mod h1:udWezQGYjqrCxz5nV321pXQTx5oGbZx+khZvFjZNOPM= golang.org/x/mod v0.0.0-20190513183733-4bf6d317e70e/go.mod h1:mXi4GBBbnImb6dmsKGUJ2LatrhH/nqhxcFungHvyanc= golang.org/x/mod v0.1.0/go.mod h1:0QHyrYULN0/3qlju5TqG8bIK38QM8yzMo5ekMj3DlcY= golang.org/x/mod v0.1.1-0.20191105210325-c90efee705ee/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg= @@ -1563,8 +1563,8 @@ golang.org/x/mod v0.4.1/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= golang.org/x/mod v0.8.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= -golang.org/x/mod v0.19.0 h1:fEdghXQSo20giMthA7cd28ZC+jts4amQ3YMXiP5oMQ8= -golang.org/x/mod v0.19.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= +golang.org/x/mod v0.20.0 h1:utOm6MM3R3dnawAiJgn0y+xvuYRsm1RKM/4giyfDgV0= +golang.org/x/mod v0.20.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= golang.org/x/net v0.0.0-20180218175443-cbe0f9307d01/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= @@ -1841,8 +1841,8 @@ golang.org/x/tools v0.1.0/go.mod h1:xkSsbof2nBLbhDlRMhhhyNLN/zl3eTqcnHD5viDpcZ0= golang.org/x/tools v0.1.5/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= golang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU= -golang.org/x/tools v0.23.0 h1:SGsXPZ+2l4JsgaCKkx+FQ9YZ5XEtA1GZYuoDjenLjvg= -golang.org/x/tools v0.23.0/go.mod h1:pnu6ufv6vQkll6szChhK3C3L/ruaIv5eBeztNG8wtsI= +golang.org/x/tools v0.24.0 h1:J1shsA93PJUEVaUSaay7UXAyE8aimq3GW0pjlolpa24= +golang.org/x/tools v0.24.0/go.mod h1:YhNqVBIfWHdzvTLs0d8LCuMhkKUgSUKldakyV7W/WDQ= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= diff --git a/pkg/lib/localstore/ftsearch/ftsearchtantivy.go b/pkg/lib/localstore/ftsearch/ftsearchtantivy.go index 044be8194..bc5d4ba09 100644 --- a/pkg/lib/localstore/ftsearch/ftsearchtantivy.go +++ b/pkg/lib/localstore/ftsearch/ftsearchtantivy.go @@ -1,8 +1,8 @@ package ftsearch /* -#cgo windows,amd64 LDFLAGS:-L${SRCDIR}/../../../../deps/libs/windows-amd64 -ltantivy_go -lm -pthread -lws2_32 -lbcrypt -lwsock32 -lntdll -luserenv -lsynchronization -#cgo darwin,amd64 LDFLAGS:-L${SRCDIR}/../../../../deps/libs/darwin-amd64 -ltantivy_go -lm -pthread -framework CoreFoundation -framework Security -ldl +#cgo windows,amd64 LDFLAGS:-L${SRCDIR}/../../../../deps/libs/windows-amd64 -ltantivy_go -lm -pthread -lws2_32 -lbcrypt -lntdll -luserenv +#cgo darwin,amd64 LDFLAGS:-L${SRCDIR}/../../../../deps/libs/darwin-amd64 -ltantivy_go -lm -pthread -ldl #cgo darwin,arm64 LDFLAGS:-L${SRCDIR}/../../../../deps/libs/darwin-arm64 -ltantivy_go -lm -pthread -ldl #cgo ios,arm64 LDFLAGS:-L${SRCDIR}/../../../../deps/libs/ios-arm64 -ltantivy_go -lm -pthread -ldl #cgo ios,amd64 LDFLAGS:-L${SRCDIR}/../../../../deps/libs/ios-amd64 -ltantivy_go -lm -pthread -ldl diff --git a/tantivity_sha256.txt b/tantivity_sha256.txt index f1b29b7ca..ac044d150 100644 --- a/tantivity_sha256.txt +++ b/tantivity_sha256.txt @@ -1,10 +1,11 @@ -31eaddb2ce286ff3c8b9fe01781adaa2f8fd7db759d01c5fab2f655cb85202bb deps/libs/android-386.tar.gz -011be437ffd1498aa295191f0c5f44d30de5ec7dc293f28f57d3acc311a59168 deps/libs/android-amd64.tar.gz -93864215777aba8451ee6ba09a3b2fc2b0582273b166a7f43ecc54e00b37615b deps/libs/android-arm.tar.gz -3a7a5ed4b205d4dafe12dc2cac592cf1f37f5a0f6c99a471365db70eda19effb deps/libs/android-arm64.tar.gz -d9fcba7ec18aaf6e59d06e0ef8011de45df578b7617a566ce38fbe764ebfa0ed deps/libs/darwin-amd64.tar.gz -5d8a1600029c1544bebc6ee0d35098ff8d1242056a23b041da739e5197185557 deps/libs/darwin-arm64.tar.gz -0222fa5e850ddc1641ea9138107138ba754254c577f77b43c1b5bfb11c264610 deps/libs/ios-amd64.tar.gz -e3adc97753f1b8fa95e4d2e37385da2c710dd40ba7706af34303af5bce69506c deps/libs/ios-arm64.tar.gz -f88cff214cc0bb01f2cf7b6e54ca617cce1eac6393decf2d86c6d24f0b903df0 deps/libs/linux-amd64-musl.tar.gz -cb29b5328e9b09d99342b936812903410a1864196486d2edd5cc9028bba9c0a2 deps/libs/windows-amd64.tar.gz +435a2d6cc44cd85c6dfe4a051534ae2ef26d8abb99f2a998da207340350e48fa deps/libs/android-386.tar.gz +b8949b51356b1abb4cf04ac1a5e507c840023a70bd9b82a75e63bc3b3c8070c9 deps/libs/android-amd64.tar.gz +9fc54c7b58941d15f3f1ed8c573592b3ee582dffd29b968ae5db8d6e0d2e8fb8 deps/libs/android-arm.tar.gz +0192d6188ca85b81ba3d2a89e2132b34a50d0f188f201fa51685af6668a4d236 deps/libs/android-arm64.tar.gz +0cc77c0024020c53c8424381649c6477b387a511f3e5f4406fdc2436f40419da deps/libs/darwin-amd64.tar.gz +1a75157778da0afe2d06e91cc8a644848dced50fd49bd3b54ff7256b084728cf deps/libs/darwin-arm64.tar.gz +a5b9c9e573db75e8662b24231517d32c0174661ab1bfb911a66ce74de7c71c71 deps/libs/ios-amd64.tar.gz +d8d0eba9682831862d4925182a066ce28b3bae1539bc338b6200176cba2209d0 deps/libs/ios-arm64.tar.gz +429d68cb69f880ee475422c4856e230bb49cbb554d4d2f61f8e5b23c7597b814 deps/libs/ios-arm64-sim.tar.gz +e83caf65dcaad0fd8fb4e8374c35033841ddb1485381ddff1d0b70b5ee380748 deps/libs/linux-amd64-musl.tar.gz +89fc84bc28461422a08f1662352eb96e5511b0dd679c3e75be80d44fece1296b deps/libs/windows-amd64.tar.gz From fc439862899cd83b1e3f04d8b938f337dbb15fa2 Mon Sep 17 00:00:00 2001 From: Mikhail Iudin Date: Fri, 23 Aug 2024 14:28:10 +0200 Subject: [PATCH 60/78] GO-3906 Fix tantivy build for ios --- .github/workflows/build.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 9098acd2b..26b46d4f4 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -233,8 +233,9 @@ jobs: go install go.uber.org/mock/mockgen@v0.3.0 make test-deps gomobile bind -tags "envproduction nogrpcserver gomobile nowatchdog nosigar nomutexdeadlockdetector timetzdata" -ldflags "$FLAGS" -v -target=ios -o Lib.xcframework github.com/anyproto/anytype-heart/clientlibrary/service github.com/anyproto/anytype-heart/core || true + mkdir -p dist/ios/ && mv Lib.xcframework dist/ios/ go run cmd/iosrepack/main.go - gtar --exclude ".*" -czvf ios_framework.tar.gz Lib.xcframework protobuf json + gtar --exclude ".*" -czvf ios_framework.tar.gz dist/ios/Lib.xcframework protobuf json gradle publish mv ios_framework.tar.gz .release/ios_framework_${VERSION}.tar.gz env: From 7d379e60baf0fe6f74fec6ee7196b32da4d3b83d Mon Sep 17 00:00:00 2001 From: mcrakhman Date: Fri, 23 Aug 2024 15:39:30 +0200 Subject: [PATCH 61/78] GO-3690 Update any-sync --- go.mod | 4 ++-- go.sum | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/go.mod b/go.mod index 63371cb8f..30589b087 100644 --- a/go.mod +++ b/go.mod @@ -8,7 +8,7 @@ require ( github.com/VividCortex/ewma v1.2.0 github.com/adrium/goheif v0.0.0-20230113233934-ca402e77a786 github.com/anyproto/any-store v0.0.1 - github.com/anyproto/any-sync v0.4.24-alpha.1 + github.com/anyproto/any-sync v0.4.27 github.com/anyproto/go-naturaldate/v2 v2.0.2-0.20230524105841-9829cfd13438 github.com/anyproto/tantivy-go v0.0.7 github.com/araddon/dateparse v0.0.0-20210429162001-6b43995a97de @@ -228,7 +228,7 @@ require ( github.com/prometheus/common v0.55.0 // indirect github.com/prometheus/procfs v0.15.1 // indirect github.com/pseudomuto/protokit v0.2.1 // indirect - github.com/quic-go/quic-go v0.44.0 // indirect + github.com/quic-go/quic-go v0.46.0 // indirect github.com/rs/cors v1.7.0 // indirect github.com/rs/zerolog v1.29.0 // indirect github.com/shoenig/go-m1cpu v0.1.6 // indirect diff --git a/go.sum b/go.sum index dafc9b4e7..f6dce5501 100644 --- a/go.sum +++ b/go.sum @@ -85,8 +85,8 @@ github.com/andybalholm/cascadia v1.3.2 h1:3Xi6Dw5lHF15JtdcmAHD3i1+T8plmv7BQ/nsVi github.com/andybalholm/cascadia v1.3.2/go.mod h1:7gtRlve5FxPPgIgX36uWBX58OdBsSS6lUvCFb+h7KvU= github.com/anyproto/any-store v0.0.1 h1:RiZi3cHVSpIebcNeHYOUaDShH7E9Ahto33zdnqCaUHM= github.com/anyproto/any-store v0.0.1/go.mod h1:JV7dJ8+xF1VaCQgFQsD8SZSNlxxTGFbDiF8llkB2ILc= -github.com/anyproto/any-sync v0.4.24-alpha.1 h1:8IaOyvhT5/IDg5qYgwi3yPNjbrZcWAEO/K/G1vgqztQ= -github.com/anyproto/any-sync v0.4.24-alpha.1/go.mod h1:qHIG2zMvGIthEb2FmcjQN5YZZwV8kPHv7/T0ib7YSDg= +github.com/anyproto/any-sync v0.4.27 h1:JpesUcIagpNUR0/zojYfNVJH7bF7Pim/tpYKv/bJwJs= +github.com/anyproto/any-sync v0.4.27/go.mod h1:0SIpsBQU1t2njK9U6ue1HMdMCV5tFtSawsUe556FkkU= github.com/anyproto/badger/v4 v4.2.1-0.20240110160636-80743fa3d580 h1:Ba80IlCCxkZ9H1GF+7vFu/TSpPvbpDCxXJ5ogc4euYc= github.com/anyproto/badger/v4 v4.2.1-0.20240110160636-80743fa3d580/go.mod h1:T/uWAYxrXdaXw64ihI++9RMbKTCpKd/yE9+saARew7k= github.com/anyproto/go-chash v0.1.0 h1:I9meTPjXFRfXZHRJzjOHC/XF7Q5vzysKkiT/grsogXY= @@ -1251,8 +1251,8 @@ github.com/pseudomuto/protokit v0.2.1 h1:kCYpE3thoR6Esm0CUvd5xbrDTOZPvQPTDeyXpZf github.com/pseudomuto/protokit v0.2.1/go.mod h1:gt7N5Rz2flBzYafvaxyIxMZC0TTF5jDZfRnw25hAAyo= github.com/quic-go/qpack v0.4.0 h1:Cr9BXA1sQS2SmDUWjSofMPNKmvF6IiIfDRmgU0w1ZCo= github.com/quic-go/qpack v0.4.0/go.mod h1:UZVnYIfi5GRk+zI9UMaCPsmZ2xKJP7XBUvVyT1Knj9A= -github.com/quic-go/quic-go v0.44.0 h1:So5wOr7jyO4vzL2sd8/pD9Kesciv91zSk8BoFngItQ0= -github.com/quic-go/quic-go v0.44.0/go.mod h1:z4cx/9Ny9UtGITIPzmPTXh1ULfOyWh4qGQlpnPcWmek= +github.com/quic-go/quic-go v0.46.0 h1:uuwLClEEyk1DNvchH8uCByQVjo3yKL9opKulExNDs7Y= +github.com/quic-go/quic-go v0.46.0/go.mod h1:1dLehS7TIR64+vxGR70GDcatWTOtMX2PUtnKsjbTurI= github.com/quic-go/webtransport-go v0.8.0 h1:HxSrwun11U+LlmwpgM1kEqIqH90IT4N8auv/cD7QFJg= github.com/quic-go/webtransport-go v0.8.0/go.mod h1:N99tjprW432Ut5ONql/aUhSLT0YVSlwHohQsuac9WaM= github.com/rcrowley/go-metrics v0.0.0-20181016184325-3113b8401b8a/go.mod h1:bCqnVzQkZxMG4s8nGwiZ5l3QUCyqpo9Y+/ZMZ9VjZe4= From 95842f3cc9af335b37ce8ed659f4bb3927fc60cf Mon Sep 17 00:00:00 2001 From: AnastasiaShemyakinskaya Date: Fri, 23 Aug 2024 16:28:48 +0200 Subject: [PATCH 62/78] GO-3273: fix Signed-off-by: AnastasiaShemyakinskaya --- cmd/debugtree/debugtree.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cmd/debugtree/debugtree.go b/cmd/debugtree/debugtree.go index 47d4841b9..0bb82fc7e 100644 --- a/cmd/debugtree/debugtree.go +++ b/cmd/debugtree/debugtree.go @@ -82,7 +82,7 @@ func main() { } fmt.Println("Change:") fmt.Println(pbtypes.Sprint(ch.Model)) - err = importer.Import(false, ch.Id) + err = importer.Import(*fromRoot, ch.Id) if err != nil { log.Fatal("can't import the tree before", ch.Id, err) } From ba27105deb572ce45ed2677b6e9c7b7affcf9494 Mon Sep 17 00:00:00 2001 From: AnastasiaShemyakinskaya Date: Fri, 23 Aug 2024 18:12:58 +0200 Subject: [PATCH 63/78] GO-3921: update any-sync version Signed-off-by: AnastasiaShemyakinskaya --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index c5bbd6f47..6ec91c479 100644 --- a/go.mod +++ b/go.mod @@ -8,7 +8,7 @@ require ( github.com/VividCortex/ewma v1.2.0 github.com/adrium/goheif v0.0.0-20230113233934-ca402e77a786 github.com/anyproto/any-store v0.0.1 - github.com/anyproto/any-sync v0.4.27 + github.com/anyproto/any-sync v0.4.28 github.com/anyproto/go-naturaldate/v2 v2.0.2-0.20230524105841-9829cfd13438 github.com/anyproto/tantivy-go v0.0.8 github.com/araddon/dateparse v0.0.0-20210429162001-6b43995a97de diff --git a/go.sum b/go.sum index 5256e6dce..3fe1a780f 100644 --- a/go.sum +++ b/go.sum @@ -85,8 +85,8 @@ github.com/andybalholm/cascadia v1.3.2 h1:3Xi6Dw5lHF15JtdcmAHD3i1+T8plmv7BQ/nsVi github.com/andybalholm/cascadia v1.3.2/go.mod h1:7gtRlve5FxPPgIgX36uWBX58OdBsSS6lUvCFb+h7KvU= github.com/anyproto/any-store v0.0.1 h1:RiZi3cHVSpIebcNeHYOUaDShH7E9Ahto33zdnqCaUHM= github.com/anyproto/any-store v0.0.1/go.mod h1:JV7dJ8+xF1VaCQgFQsD8SZSNlxxTGFbDiF8llkB2ILc= -github.com/anyproto/any-sync v0.4.27 h1:JpesUcIagpNUR0/zojYfNVJH7bF7Pim/tpYKv/bJwJs= -github.com/anyproto/any-sync v0.4.27/go.mod h1:0SIpsBQU1t2njK9U6ue1HMdMCV5tFtSawsUe556FkkU= +github.com/anyproto/any-sync v0.4.28 h1:FM6X50oBqODGtcRIHkAK/rn0Mn48WYzH/9D2wzPYmQQ= +github.com/anyproto/any-sync v0.4.28/go.mod h1:0SIpsBQU1t2njK9U6ue1HMdMCV5tFtSawsUe556FkkU= github.com/anyproto/badger/v4 v4.2.1-0.20240110160636-80743fa3d580 h1:Ba80IlCCxkZ9H1GF+7vFu/TSpPvbpDCxXJ5ogc4euYc= github.com/anyproto/badger/v4 v4.2.1-0.20240110160636-80743fa3d580/go.mod h1:T/uWAYxrXdaXw64ihI++9RMbKTCpKd/yE9+saARew7k= github.com/anyproto/go-chash v0.1.0 h1:I9meTPjXFRfXZHRJzjOHC/XF7Q5vzysKkiT/grsogXY= From a1d2c2e6c9cbb449ad3c14f0364e347134b893a2 Mon Sep 17 00:00:00 2001 From: AnastasiaShemyakinskaya Date: Fri, 23 Aug 2024 18:21:10 +0200 Subject: [PATCH 64/78] GO-3273: update any-sync version Signed-off-by: AnastasiaShemyakinskaya --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index c5bbd6f47..2692b0ab1 100644 --- a/go.mod +++ b/go.mod @@ -8,7 +8,7 @@ require ( github.com/VividCortex/ewma v1.2.0 github.com/adrium/goheif v0.0.0-20230113233934-ca402e77a786 github.com/anyproto/any-store v0.0.1 - github.com/anyproto/any-sync v0.4.27 + github.com/anyproto/any-sync v0.4.29 github.com/anyproto/go-naturaldate/v2 v2.0.2-0.20230524105841-9829cfd13438 github.com/anyproto/tantivy-go v0.0.8 github.com/araddon/dateparse v0.0.0-20210429162001-6b43995a97de diff --git a/go.sum b/go.sum index 5256e6dce..3011eb718 100644 --- a/go.sum +++ b/go.sum @@ -85,8 +85,8 @@ github.com/andybalholm/cascadia v1.3.2 h1:3Xi6Dw5lHF15JtdcmAHD3i1+T8plmv7BQ/nsVi github.com/andybalholm/cascadia v1.3.2/go.mod h1:7gtRlve5FxPPgIgX36uWBX58OdBsSS6lUvCFb+h7KvU= github.com/anyproto/any-store v0.0.1 h1:RiZi3cHVSpIebcNeHYOUaDShH7E9Ahto33zdnqCaUHM= github.com/anyproto/any-store v0.0.1/go.mod h1:JV7dJ8+xF1VaCQgFQsD8SZSNlxxTGFbDiF8llkB2ILc= -github.com/anyproto/any-sync v0.4.27 h1:JpesUcIagpNUR0/zojYfNVJH7bF7Pim/tpYKv/bJwJs= -github.com/anyproto/any-sync v0.4.27/go.mod h1:0SIpsBQU1t2njK9U6ue1HMdMCV5tFtSawsUe556FkkU= +github.com/anyproto/any-sync v0.4.29 h1:zLi88h6z7818QC5s7A6bvOyAdrogbbM5GAWe30GPiRU= +github.com/anyproto/any-sync v0.4.29/go.mod h1:0SIpsBQU1t2njK9U6ue1HMdMCV5tFtSawsUe556FkkU= github.com/anyproto/badger/v4 v4.2.1-0.20240110160636-80743fa3d580 h1:Ba80IlCCxkZ9H1GF+7vFu/TSpPvbpDCxXJ5ogc4euYc= github.com/anyproto/badger/v4 v4.2.1-0.20240110160636-80743fa3d580/go.mod h1:T/uWAYxrXdaXw64ihI++9RMbKTCpKd/yE9+saARew7k= github.com/anyproto/go-chash v0.1.0 h1:I9meTPjXFRfXZHRJzjOHC/XF7Q5vzysKkiT/grsogXY= From 35e1ef4fb14d8e3032b017bb2040ad8188d98cac Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 26 Aug 2024 04:21:37 +0000 Subject: [PATCH 65/78] Bump github.com/prometheus/client_golang from 1.20.1 to 1.20.2 Bumps [github.com/prometheus/client_golang](https://github.com/prometheus/client_golang) from 1.20.1 to 1.20.2. - [Release notes](https://github.com/prometheus/client_golang/releases) - [Changelog](https://github.com/prometheus/client_golang/blob/main/CHANGELOG.md) - [Commits](https://github.com/prometheus/client_golang/compare/v1.20.1...v1.20.2) --- updated-dependencies: - dependency-name: github.com/prometheus/client_golang dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 6ec91c479..02e4e1b0d 100644 --- a/go.mod +++ b/go.mod @@ -75,7 +75,7 @@ require ( github.com/otiai10/copy v1.14.0 github.com/otiai10/opengraph/v2 v2.1.0 github.com/pkg/errors v0.9.1 - github.com/prometheus/client_golang v1.20.1 + github.com/prometheus/client_golang v1.20.2 github.com/pseudomuto/protoc-gen-doc v1.5.1 github.com/rwcarlsen/goexif v0.0.0-20190401172101-9e8deecbddbd github.com/samber/lo v1.47.0 diff --git a/go.sum b/go.sum index 3fe1a780f..ec6b3c070 100644 --- a/go.sum +++ b/go.sum @@ -1216,8 +1216,8 @@ github.com/prometheus/client_golang v0.9.3/go.mod h1:/TN21ttK/J9q6uSwhBd54HahCDf github.com/prometheus/client_golang v1.0.0/go.mod h1:db9x61etRT2tGnBNRi70OPL5FsnadC4Ky3P0J6CfImo= github.com/prometheus/client_golang v1.3.0/go.mod h1:hJaj2vgQTGQmVCsAACORcieXFeDPbaTKGT+JTgUa3og= github.com/prometheus/client_golang v1.7.1/go.mod h1:PY5Wy2awLA44sXw4AOSfFBetzPP4j5+D6mVACh+pe2M= -github.com/prometheus/client_golang v1.20.1 h1:IMJXHOD6eARkQpxo8KkhgEVFlBNm+nkrFUyGlIu7Na8= -github.com/prometheus/client_golang v1.20.1/go.mod h1:PIEt8X02hGcP8JWbeHyeZ53Y/jReSnHgO035n//V5WE= +github.com/prometheus/client_golang v1.20.2 h1:5ctymQzZlyOON1666svgwn3s6IKWgfbjsejTMiXIyjg= +github.com/prometheus/client_golang v1.20.2/go.mod h1:PIEt8X02hGcP8JWbeHyeZ53Y/jReSnHgO035n//V5WE= github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= github.com/prometheus/client_model v0.0.0-20190115171406-56726106282f/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= github.com/prometheus/client_model v0.0.0-20190129233127-fd36f4220a90/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= From faf1087c6bbfc398f5bb110213ddc737d468d195 Mon Sep 17 00:00:00 2001 From: mcrakhman Date: Sat, 24 Aug 2024 15:12:40 +0200 Subject: [PATCH 66/78] GO-3920 Use correct hasher --- core/history/history.go | 21 +++++++++++++++++---- 1 file changed, 17 insertions(+), 4 deletions(-) diff --git a/core/history/history.go b/core/history/history.go index 045defa81..214759c77 100644 --- a/core/history/history.go +++ b/core/history/history.go @@ -2,10 +2,11 @@ package history import ( "context" - "crypto/md5" + "encoding/hex" "fmt" "slices" "strings" + "sync" "time" "github.com/anyproto/any-sync/app" @@ -13,6 +14,7 @@ import ( "github.com/anyproto/any-sync/commonspace/objecttreebuilder" "github.com/gogo/protobuf/proto" "github.com/samber/lo" + "github.com/zeebo/blake3" "github.com/anyproto/anytype-heart/core/block/cache" smartblock2 "github.com/anyproto/anytype-heart/core/block/editor/smartblock" @@ -39,6 +41,12 @@ const versionGroupInterval = time.Minute * 5 var log = logging.Logger("anytype-mw-history") +var hashersPool = &sync.Pool{ + New: func() any { + return blake3.New() + }, +} + func New() History { return &history{heads: make(map[string]string, 0)} } @@ -124,6 +132,8 @@ func (h *history) Show(id domain.FullID, versionID string) (bs *model.ObjectView } func (h *history) Versions(id domain.FullID, lastVersionId string, limit int) (resp []*pb.RpcHistoryVersion, err error) { + hasher := hashersPool.Get().(*blake3.Hasher) + defer hashersPool.Put(hasher) if limit <= 0 { limit = 100 } @@ -146,7 +156,7 @@ func (h *history) Versions(id domain.FullID, lastVersionId string, limit int) (r e = tree.IterateFrom(tree.Root().Id, source.UnmarshalChange, func(c *objecttree.Change) (isContinue bool) { participantId := domain.NewParticipantId(id.SpaceID, c.Identity.Account()) - data = h.fillVersionData(c, curHeads, participantId, data) + data = h.fillVersionData(c, curHeads, participantId, data, hasher) return true }) if e != nil { @@ -194,7 +204,7 @@ func (h *history) retrieveHeads(versionId string) []string { return []string{versionId} } -func (h *history) fillVersionData(change *objecttree.Change, curHeads map[string]struct{}, participantId string, data []*pb.RpcHistoryVersion) []*pb.RpcHistoryVersion { +func (h *history) fillVersionData(change *objecttree.Change, curHeads map[string]struct{}, participantId string, data []*pb.RpcHistoryVersion, hasher *blake3.Hasher) []*pb.RpcHistoryVersion { curHeads[change.Id] = struct{}{} for _, previousId := range change.PreviousIds { delete(curHeads, previousId) @@ -211,7 +221,10 @@ func (h *history) fillVersionData(change *objecttree.Change, curHeads map[string combinedHeads += head + " " } combinedHeads = strings.TrimSpace(combinedHeads) - hashSum := fmt.Sprintf("%x", md5.Sum([]byte(combinedHeads))) + hasher.Reset() + // nolint: errcheck + hasher.Write([]byte(combinedHeads)) // it never returns an error + hashSum := hex.EncodeToString(hasher.Sum(nil)) h.heads[hashSum] = combinedHeads version.Id = hashSum } From ea8da5239d86c712adbacb500afc1c445ce18045 Mon Sep 17 00:00:00 2001 From: AnastasiaShemyakinskaya Date: Mon, 26 Aug 2024 11:08:10 +0200 Subject: [PATCH 67/78] GO-3273: fix go mod Signed-off-by: AnastasiaShemyakinskaya --- go.mod | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/go.mod b/go.mod index 2692b0ab1..a048903fe 100644 --- a/go.mod +++ b/go.mod @@ -87,6 +87,7 @@ require ( github.com/vektra/mockery/v2 v2.42.2 github.com/xeipuuv/gojsonschema v1.2.0 github.com/yuin/goldmark v1.7.4 + github.com/zeebo/blake3 v0.2.3 go.uber.org/atomic v1.11.0 go.uber.org/mock v0.4.0 go.uber.org/multierr v1.11.0 @@ -250,7 +251,6 @@ require ( github.com/xeipuuv/gojsonpointer v0.0.0-20180127040702-4e3ac2762d5f // indirect github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415 // indirect github.com/yusufpapurcu/wmi v1.2.4 // indirect - github.com/zeebo/blake3 v0.2.3 // indirect github.com/zeebo/errs v1.3.0 // indirect go.etcd.io/bbolt v1.3.7 // indirect go.opencensus.io v0.24.0 // indirect From dd0222d40135ee3067e445d0e193a86eb4b6916c Mon Sep 17 00:00:00 2001 From: AnastasiaShemyakinskaya Date: Mon, 26 Aug 2024 13:53:07 +0200 Subject: [PATCH 68/78] GO-2787: fix link Signed-off-by: AnastasiaShemyakinskaya --- core/block/import/common/objectcreator/objectcreator.go | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/core/block/import/common/objectcreator/objectcreator.go b/core/block/import/common/objectcreator/objectcreator.go index 9d83b0c90..a5c5d55f9 100644 --- a/core/block/import/common/objectcreator/objectcreator.go +++ b/core/block/import/common/objectcreator/objectcreator.go @@ -555,9 +555,11 @@ func (oc *ObjectCreator) updateKeys(st *state.State, oldIDtoNew map[string]strin func (oc *ObjectCreator) updateDetails(st *state.State, newKey string, value *types.Value, key string) { st.SetDetail(newKey, value) link := oc.findRelationLinkByKey(st, key) + if link != nil { + link.Key = newKey + st.AddRelationLinks(link) + } st.RemoveRelation(key) - link.Key = newKey - st.AddRelationLinks(link) } func (oc *ObjectCreator) findRelationLinkByKey(st *state.State, key string) *model.RelationLink { From a7829d5107b5fdb3ab610ad1af1957cc2cc9878d Mon Sep 17 00:00:00 2001 From: Sergey Date: Mon, 26 Aug 2024 15:26:36 +0200 Subject: [PATCH 69/78] Fix test --- core/files/fileobject/service_test.go | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/core/files/fileobject/service_test.go b/core/files/fileobject/service_test.go index 659b22c57..8d22ca751 100644 --- a/core/files/fileobject/service_test.go +++ b/core/files/fileobject/service_test.go @@ -29,6 +29,7 @@ import ( "github.com/anyproto/anytype-heart/core/filestorage" "github.com/anyproto/anytype-heart/core/filestorage/filesync" "github.com/anyproto/anytype-heart/core/filestorage/rpcstore" + "github.com/anyproto/anytype-heart/core/session" wallet2 "github.com/anyproto/anytype-heart/core/wallet" "github.com/anyproto/anytype-heart/core/wallet/mock_wallet" "github.com/anyproto/anytype-heart/pb" @@ -68,6 +69,16 @@ func (c *dummyConfig) Name() string { return "dummyConfig" } +type dummyObjectArchiver struct{} + +func (a *dummyObjectArchiver) SetPagesIsArchived(ctx session.Context, req pb.RpcObjectListSetIsArchivedRequest) error { + return nil +} + +func (a *dummyObjectArchiver) Name() string { return "dummyObjectArchiver" } + +func (a *dummyObjectArchiver) Init(_ *app.App) error { return nil } + const testResolveRetryDelay = 5 * time.Millisecond func newFixture(t *testing.T) *fixture { @@ -85,6 +96,7 @@ func newFixture(t *testing.T) *fixture { eventSender.EXPECT().Broadcast(mock.Anything).Return().Maybe() fileService := files.New() spaceService := mock_space.NewMockService(t) + spaceService.EXPECT().GetPersonalSpace(mock.Anything).Return(nil, fmt.Errorf("not needed")).Maybe() spaceIdResolver := mock_idresolver.NewMockResolver(t) svc := New(testResolveRetryDelay, testResolveRetryDelay) @@ -114,6 +126,7 @@ func newFixture(t *testing.T) *fixture { a.Register(testutil.PrepareMock(ctx, a, mock_accountservice.NewMockService(ctrl))) a.Register(testutil.PrepareMock(ctx, a, wallet)) a.Register(&config.Config{DisableFileConfig: true, NetworkMode: pb.RpcAccount_DefaultConfig, PeferYamuxTransport: true}) + a.Register(&dummyObjectArchiver{}) err = a.Start(ctx) require.NoError(t, err) From 8105c1ed36ccc4f051b63936026bf0ff9a4e3f7d Mon Sep 17 00:00:00 2001 From: Mikhail Iudin Date: Mon, 26 Aug 2024 16:49:35 +0200 Subject: [PATCH 70/78] Fix build-script --- .github/workflows/build.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 26b46d4f4..19676c43a 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -235,7 +235,8 @@ jobs: gomobile bind -tags "envproduction nogrpcserver gomobile nowatchdog nosigar nomutexdeadlockdetector timetzdata" -ldflags "$FLAGS" -v -target=ios -o Lib.xcframework github.com/anyproto/anytype-heart/clientlibrary/service github.com/anyproto/anytype-heart/core || true mkdir -p dist/ios/ && mv Lib.xcframework dist/ios/ go run cmd/iosrepack/main.go - gtar --exclude ".*" -czvf ios_framework.tar.gz dist/ios/Lib.xcframework protobuf json + mv dist/ios/Lib.xcframework . + gtar --exclude ".*" -czvf ios_framework.tar.gz Lib.xcframework protobuf json gradle publish mv ios_framework.tar.gz .release/ios_framework_${VERSION}.tar.gz env: From 1883b73077e110d106e138b16de2c131fbf74224 Mon Sep 17 00:00:00 2001 From: AnastasiaShemyakinskaya Date: Mon, 26 Aug 2024 16:55:41 +0200 Subject: [PATCH 71/78] GO-2787: update dataview relations Signed-off-by: AnastasiaShemyakinskaya --- core/block/import/common/common.go | 35 ++++ core/block/import/common/common_test.go | 189 ++++++++++++++++++ .../common/objectcreator/objectcreator.go | 2 +- .../objectcreator/objectcreator_test.go | 18 ++ .../import/common/objectid/existingobject.go | 4 +- core/block/import/csv/collectionstrategy.go | 12 +- 6 files changed, 252 insertions(+), 8 deletions(-) diff --git a/core/block/import/common/common.go b/core/block/import/common/common.go index 8996539f5..5c3b5b926 100644 --- a/core/block/import/common/common.go +++ b/core/block/import/common/common.go @@ -87,11 +87,15 @@ func handleDataviewBlock(block simple.Block, oldIDtoNew map[string]string, st *s for _, view := range dataView.GetViews() { for _, filter := range view.GetFilters() { updateObjectIDsInFilter(filter, oldIDtoNew) + updateRelationKeyInFilter(oldIDtoNew, filter) } if view.DefaultTemplateId != "" { view.DefaultTemplateId = oldIDtoNew[view.DefaultTemplateId] } + + updateRelationsInView(view, oldIDtoNew) + updateSortsInView(view, oldIDtoNew) } for _, group := range dataView.GetGroupOrders() { for _, vg := range group.ViewGroups { @@ -107,6 +111,37 @@ func handleDataviewBlock(block simple.Block, oldIDtoNew map[string]string, st *s } } } + updateRelationsLinksInView(dataView, oldIDtoNew) +} + +func updateSortsInView(view *model.BlockContentDataviewView, oldIDtoNew map[string]string) { + for _, sort := range view.GetSorts() { + if newKey, ok := oldIDtoNew[sort.RelationKey]; ok && sort.RelationKey != newKey { + sort.RelationKey = newKey + } + } +} + +func updateRelationsLinksInView(dataView *model.BlockContentDataview, oldIDtoNew map[string]string) { + for _, relationLink := range dataView.GetRelationLinks() { + if newKey, ok := oldIDtoNew[relationLink.Key]; ok && relationLink.Key != newKey { + relationLink.Key = newKey + } + } +} + +func updateRelationsInView(view *model.BlockContentDataviewView, oldIDtoNew map[string]string) { + for _, relation := range view.Relations { + if newKey, ok := oldIDtoNew[relation.Key]; ok && relation.Key != newKey { + relation.Key = newKey + } + } +} + +func updateRelationKeyInFilter(oldIDtoNew map[string]string, filter *model.BlockContentDataviewFilter) { + if newKey, ok := oldIDtoNew[filter.RelationKey]; ok && filter.RelationKey != newKey { + filter.RelationKey = newKey + } } func updateObjectIDsInFilter(filter *model.BlockContentDataviewFilter, oldIDtoNew map[string]string) { diff --git a/core/block/import/common/common_test.go b/core/block/import/common/common_test.go index d653a6b58..5ff7e72bb 100644 --- a/core/block/import/common/common_test.go +++ b/core/block/import/common/common_test.go @@ -10,6 +10,7 @@ import ( "github.com/anyproto/anytype-heart/core/block/simple" "github.com/anyproto/anytype-heart/pkg/lib/localstore/addr" "github.com/anyproto/anytype-heart/pkg/lib/pb/model" + "github.com/anyproto/anytype-heart/util/pbtypes" ) func TestReplaceChunks(t *testing.T) { @@ -165,4 +166,192 @@ func TestUpdateLinksToObjects(t *testing.T) { assert.Nil(t, err) assert.Equal(t, "url", st.Get("test").Model().GetText().GetIconImage()) }) + t.Run("update data view filters relations", func(t *testing.T) { + // given + block := &model.Block{ + Id: "test", + Content: &model.BlockContentOfDataview{Dataview: &model.BlockContentDataview{ + Views: []*model.BlockContentDataviewView{ + { + Id: "id", + Filters: []*model.BlockContentDataviewFilter{ + { + Id: "id1", + RelationKey: "key", + Value: pbtypes.String("test"), + }, + { + Id: "id1", + RelationKey: "key1", + Value: pbtypes.String("test"), + }, + }, + }, + }, + }}, + } + rootBlock := &model.Block{ + Id: "root", + ChildrenIds: []string{"test"}, + Content: &model.BlockContentOfSmartblock{Smartblock: &model.BlockContentSmartblock{}}, + } + simpleBlock := simple.New(block) + rootSimpleBlock := simple.New(rootBlock) + st := state.NewDoc("root", map[string]simple.Block{"test": simpleBlock, "root": rootSimpleBlock}).(*state.State) + + // when + err := UpdateLinksToObjects(st, map[string]string{"key": "newKey"}) + + // then + assert.Nil(t, err) + assert.Equal(t, "newKey", st.Get("test").Model().GetDataview().GetViews()[0].GetFilters()[0].RelationKey) + assert.Equal(t, "key1", st.Get("test").Model().GetDataview().GetViews()[0].GetFilters()[1].RelationKey) + }) + t.Run("update data view filters relations", func(t *testing.T) { + // given + block := &model.Block{ + Id: "test", + Content: &model.BlockContentOfDataview{Dataview: &model.BlockContentDataview{ + Views: []*model.BlockContentDataviewView{ + { + Id: "id", + Filters: []*model.BlockContentDataviewFilter{ + { + Id: "id1", + RelationKey: "key", + Value: pbtypes.String("test"), + }, + { + Id: "id1", + RelationKey: "key1", + Value: pbtypes.String("test"), + }, + }, + }, + }, + }}, + } + rootBlock := &model.Block{ + Id: "root", + ChildrenIds: []string{"test"}, + Content: &model.BlockContentOfSmartblock{Smartblock: &model.BlockContentSmartblock{}}, + } + simpleBlock := simple.New(block) + rootSimpleBlock := simple.New(rootBlock) + st := state.NewDoc("root", map[string]simple.Block{"test": simpleBlock, "root": rootSimpleBlock}).(*state.State) + + // when + err := UpdateLinksToObjects(st, map[string]string{"key": "newKey"}) + + // then + assert.Nil(t, err) + assert.Equal(t, "newKey", st.Get("test").Model().GetDataview().GetViews()[0].GetFilters()[0].RelationKey) + assert.Equal(t, "key1", st.Get("test").Model().GetDataview().GetViews()[0].GetFilters()[1].RelationKey) + }) + t.Run("update data view relations", func(t *testing.T) { + // given + block := &model.Block{ + Id: "test", + Content: &model.BlockContentOfDataview{Dataview: &model.BlockContentDataview{ + Views: []*model.BlockContentDataviewView{ + { + Id: "id", + Relations: []*model.BlockContentDataviewRelation{ + { + Key: "key", + }, + { + Key: "key1", + }, + }, + }, + }, + }}, + } + rootBlock := &model.Block{ + Id: "root", + ChildrenIds: []string{"test"}, + Content: &model.BlockContentOfSmartblock{Smartblock: &model.BlockContentSmartblock{}}, + } + simpleBlock := simple.New(block) + rootSimpleBlock := simple.New(rootBlock) + st := state.NewDoc("root", map[string]simple.Block{"test": simpleBlock, "root": rootSimpleBlock}).(*state.State) + + // when + err := UpdateLinksToObjects(st, map[string]string{"key": "newKey"}) + + // then + assert.Nil(t, err) + assert.Equal(t, "newKey", st.Get("test").Model().GetDataview().GetViews()[0].GetRelations()[0].Key) + assert.Equal(t, "key1", st.Get("test").Model().GetDataview().GetViews()[0].GetRelations()[1].Key) + }) + t.Run("update data view relations links", func(t *testing.T) { + // given + block := &model.Block{ + Id: "test", + Content: &model.BlockContentOfDataview{Dataview: &model.BlockContentDataview{ + RelationLinks: []*model.RelationLink{ + { + Key: "key", + }, + { + Key: "key1", + }, + }, + }}, + } + rootBlock := &model.Block{ + Id: "root", + ChildrenIds: []string{"test"}, + Content: &model.BlockContentOfSmartblock{Smartblock: &model.BlockContentSmartblock{}}, + } + simpleBlock := simple.New(block) + rootSimpleBlock := simple.New(rootBlock) + st := state.NewDoc("root", map[string]simple.Block{"test": simpleBlock, "root": rootSimpleBlock}).(*state.State) + + // when + err := UpdateLinksToObjects(st, map[string]string{"key": "newKey"}) + + // then + assert.Nil(t, err) + assert.Equal(t, "newKey", st.Get("test").Model().GetDataview().GetRelationLinks()[0].Key) + assert.Equal(t, "key1", st.Get("test").Model().GetDataview().GetRelationLinks()[1].Key) + }) + t.Run("update data view sort", func(t *testing.T) { + // given + block := &model.Block{ + Id: "test", + Content: &model.BlockContentOfDataview{Dataview: &model.BlockContentDataview{ + Views: []*model.BlockContentDataviewView{ + { + Id: "id", + Sorts: []*model.BlockContentDataviewSort{ + { + RelationKey: "key", + }, + { + RelationKey: "key1", + }, + }, + }, + }, + }}, + } + rootBlock := &model.Block{ + Id: "root", + ChildrenIds: []string{"test"}, + Content: &model.BlockContentOfSmartblock{Smartblock: &model.BlockContentSmartblock{}}, + } + simpleBlock := simple.New(block) + rootSimpleBlock := simple.New(rootBlock) + st := state.NewDoc("root", map[string]simple.Block{"test": simpleBlock, "root": rootSimpleBlock}).(*state.State) + + // when + err := UpdateLinksToObjects(st, map[string]string{"key": "newKey"}) + + // then + assert.Nil(t, err) + assert.Equal(t, "newKey", st.Get("test").Model().GetDataview().GetViews()[0].GetSorts()[0].RelationKey) + assert.Equal(t, "key1", st.Get("test").Model().GetDataview().GetViews()[0].GetSorts()[1].RelationKey) + }) } diff --git a/core/block/import/common/objectcreator/objectcreator.go b/core/block/import/common/objectcreator/objectcreator.go index a5c5d55f9..4cf5fb913 100644 --- a/core/block/import/common/objectcreator/objectcreator.go +++ b/core/block/import/common/objectcreator/objectcreator.go @@ -542,7 +542,7 @@ func (oc *ObjectCreator) getExistingWidgetsTargetIDs(oldState *state.State) (map func (oc *ObjectCreator) updateKeys(st *state.State, oldIDtoNew map[string]string) { for key, value := range st.Details().GetFields() { - if newKey, ok := oldIDtoNew[key]; ok { + if newKey, ok := oldIDtoNew[key]; ok && newKey != key { oc.updateDetails(st, newKey, value, key) } } diff --git a/core/block/import/common/objectcreator/objectcreator_test.go b/core/block/import/common/objectcreator/objectcreator_test.go index d5992cd37..482d7bd5a 100644 --- a/core/block/import/common/objectcreator/objectcreator_test.go +++ b/core/block/import/common/objectcreator/objectcreator_test.go @@ -132,4 +132,22 @@ func TestObjectCreator_updateKeys(t *testing.T) { assert.Nil(t, doc.Details().GetFields()["newKey"]) assert.Equal(t, domain.TypeKey(""), doc.ObjectTypeKey()) }) + t.Run("keys are the same", func(t *testing.T) { + // given + oc := ObjectCreator{} + oldToNew := map[string]string{"oldId": "newId", "key": "key"} + doc := state.NewDoc("oldId", nil).(*state.State) + doc.SetDetails(&types.Struct{Fields: map[string]*types.Value{ + "key": pbtypes.String("test"), + }}) + doc.AddRelationLinks(&model.RelationLink{ + Key: "key", + }) + // when + oc.updateKeys(doc, oldToNew) + + // then + assert.Equal(t, pbtypes.String("test"), doc.Details().GetFields()["key"]) + assert.True(t, doc.HasRelation("key")) + }) } diff --git a/core/block/import/common/objectid/existingobject.go b/core/block/import/common/objectid/existingobject.go index 6650ec7ba..58e646cf3 100644 --- a/core/block/import/common/objectid/existingobject.go +++ b/core/block/import/common/objectid/existingobject.go @@ -129,8 +129,8 @@ func (e *existingObject) getExistingRelationOption(snapshot *common.Snapshot, sp }, { Condition: model.BlockContentDataviewFilter_Equal, - RelationKey: bundle.RelationKeyType.String(), - Value: pbtypes.String(bundle.TypeKeyRelationOption.URL()), + RelationKey: bundle.RelationKeyLayout.String(), + Value: pbtypes.Int64(int64(model.ObjectType_relationOption)), }, { Condition: model.BlockContentDataviewFilter_Equal, diff --git a/core/block/import/csv/collectionstrategy.go b/core/block/import/csv/collectionstrategy.go index 3233aaab8..d916cfb00 100644 --- a/core/block/import/csv/collectionstrategy.go +++ b/core/block/import/csv/collectionstrategy.go @@ -111,19 +111,21 @@ func getDetailsFromCSVTable(csvTable [][]string, useFirstRowForRelations bool) ( if !useFirstRowForRelations { relationName = getDefaultRelationName(i) } - id := bson.NewObjectId().Hex() + key := bson.NewObjectId().Hex() relations = append(relations, &model.Relation{ Format: model.RelationFormat_longtext, Name: relationName, - Key: id, + Key: key, }) + details := getRelationDetails(relationName, key, float64(model.RelationFormat_longtext)) + id := pbtypes.GetString(details, bundle.RelationKeyId.String()) relationsSnapshots = append(relationsSnapshots, &common.Snapshot{ Id: id, SbType: smartblock.SmartBlockTypeRelation, Snapshot: &pb.ChangeSnapshot{Data: &model.SmartBlockSnapshotBase{ - Details: getRelationDetails(relationName, id, float64(model.RelationFormat_longtext)), + Details: details, ObjectTypes: []string{bundle.TypeKeyRelation.String()}, - Key: id, + Key: key, }}, }) } @@ -177,7 +179,7 @@ func getRelationDetails(name, key string, format float64) *types.Struct { details.Fields[bundle.RelationKeyName.String()] = pbtypes.String(name) details.Fields[bundle.RelationKeyRelationKey.String()] = pbtypes.String(key) details.Fields[bundle.RelationKeyLayout.String()] = pbtypes.Float64(float64(model.ObjectType_relation)) - uniqueKey, err := domain.NewUniqueKey(smartblock.SmartBlockTypeRelationOption, key) + uniqueKey, err := domain.NewUniqueKey(smartblock.SmartBlockTypeRelation, key) if err != nil { log.Warnf("failed to create unique key for Notion relation: %v", err) return details From dbb6ec707659a754acb2c0df4fcf4a8afdd67f59 Mon Sep 17 00:00:00 2001 From: Mikhail Iudin Date: Mon, 26 Aug 2024 19:30:12 +0200 Subject: [PATCH 72/78] GO-3866 Add ascii folding --- Makefile | 2 +- pkg/lib/localstore/ftsearch/ftsearchbleve.go | 2 +- tantivity_sha256.txt | 22 ++++++++++---------- 3 files changed, 13 insertions(+), 13 deletions(-) diff --git a/Makefile b/Makefile index 702e9d945..4afaeaa54 100644 --- a/Makefile +++ b/Makefile @@ -339,7 +339,7 @@ endif ### Tantivy Section REPO := anyproto/tantivy-go -VERSION := v0.0.8 +VERSION := v0.0.9 OUTPUT_DIR := deps/libs SHA_FILE = tantivity_sha256.txt diff --git a/pkg/lib/localstore/ftsearch/ftsearchbleve.go b/pkg/lib/localstore/ftsearch/ftsearchbleve.go index 7c692a64e..24a998cc9 100644 --- a/pkg/lib/localstore/ftsearch/ftsearchbleve.go +++ b/pkg/lib/localstore/ftsearch/ftsearchbleve.go @@ -28,7 +28,7 @@ import ( const ( CName = "fts" ftsDir = "fts" - ftsVer = "4" + ftsVer = "5" fieldTitle = "Title" fieldText = "Text" diff --git a/tantivity_sha256.txt b/tantivity_sha256.txt index ac044d150..689421682 100644 --- a/tantivity_sha256.txt +++ b/tantivity_sha256.txt @@ -1,11 +1,11 @@ -435a2d6cc44cd85c6dfe4a051534ae2ef26d8abb99f2a998da207340350e48fa deps/libs/android-386.tar.gz -b8949b51356b1abb4cf04ac1a5e507c840023a70bd9b82a75e63bc3b3c8070c9 deps/libs/android-amd64.tar.gz -9fc54c7b58941d15f3f1ed8c573592b3ee582dffd29b968ae5db8d6e0d2e8fb8 deps/libs/android-arm.tar.gz -0192d6188ca85b81ba3d2a89e2132b34a50d0f188f201fa51685af6668a4d236 deps/libs/android-arm64.tar.gz -0cc77c0024020c53c8424381649c6477b387a511f3e5f4406fdc2436f40419da deps/libs/darwin-amd64.tar.gz -1a75157778da0afe2d06e91cc8a644848dced50fd49bd3b54ff7256b084728cf deps/libs/darwin-arm64.tar.gz -a5b9c9e573db75e8662b24231517d32c0174661ab1bfb911a66ce74de7c71c71 deps/libs/ios-amd64.tar.gz -d8d0eba9682831862d4925182a066ce28b3bae1539bc338b6200176cba2209d0 deps/libs/ios-arm64.tar.gz -429d68cb69f880ee475422c4856e230bb49cbb554d4d2f61f8e5b23c7597b814 deps/libs/ios-arm64-sim.tar.gz -e83caf65dcaad0fd8fb4e8374c35033841ddb1485381ddff1d0b70b5ee380748 deps/libs/linux-amd64-musl.tar.gz -89fc84bc28461422a08f1662352eb96e5511b0dd679c3e75be80d44fece1296b deps/libs/windows-amd64.tar.gz +ae7b1f9899be6b310aaf7678dfb19c5b4a1ad19fff967a525ab6b30e4730bd77 deps/libs/android-386.tar.gz +b86d874ba76de4f16d43e86cd2ab1f597f5e4b671f39827c018b18558b5333b7 deps/libs/android-amd64.tar.gz +b5796dbcaa501eecb5568ff44bb280099a10e6ec7607383e6fa88dc126c97b11 deps/libs/android-arm.tar.gz +096a55e25df9ccae19b026c628fa3b8f21eb76f70b617d0fcaf2a0dbc291f59c deps/libs/android-arm64.tar.gz +28ab38b8fd0796c07406a15183a29223057e2193365502e7dfe1e88ae86c90b6 deps/libs/darwin-amd64.tar.gz +247e5d6b9eb8d6c5d65f9c44795aaac40499e781715c1d1769151bf8874b7509 deps/libs/darwin-arm64.tar.gz +2ea69b27b42b1e0ef08817c778d6f9a890a9900f22bbab10a1c229ec19d08304 deps/libs/ios-amd64.tar.gz +553fd2feb0ac055eb8c09f076cfcebc455309ca9f4cc37cf2d76e17654b7471d deps/libs/ios-arm64.tar.gz +a1f27b2c55c3fabe16367041706da72dd57ba30f768b227161212a0cf8e50290 deps/libs/ios-arm64-sim.tar.gz +63c5384d4034875e4302d5d583ac6ccae64a88fe73de931cb885f9a75c777408 deps/libs/linux-amd64-musl.tar.gz +de00e402a6bbdf3f77bd91ddc486c4572a630f4332712c72098ecef931350065 deps/libs/windows-amd64.tar.gz From 4967818dbae2b57c5522f859ba34e7e5f71a2e34 Mon Sep 17 00:00:00 2001 From: mcrakhman Date: Mon, 26 Aug 2024 19:33:31 +0200 Subject: [PATCH 73/78] GO-3971 Update any-sync --- go.mod | 4 ++-- go.sum | 10 ++++------ 2 files changed, 6 insertions(+), 8 deletions(-) diff --git a/go.mod b/go.mod index 7ea283b9d..2582f126c 100644 --- a/go.mod +++ b/go.mod @@ -8,7 +8,7 @@ require ( github.com/VividCortex/ewma v1.2.0 github.com/adrium/goheif v0.0.0-20230113233934-ca402e77a786 github.com/anyproto/any-store v0.0.1 - github.com/anyproto/any-sync v0.4.29 + github.com/anyproto/any-sync v0.4.30 github.com/anyproto/go-naturaldate/v2 v2.0.2-0.20230524105841-9829cfd13438 github.com/anyproto/tantivy-go v0.0.8 github.com/araddon/dateparse v0.0.0-20210429162001-6b43995a97de @@ -87,7 +87,7 @@ require ( github.com/vektra/mockery/v2 v2.42.2 github.com/xeipuuv/gojsonschema v1.2.0 github.com/yuin/goldmark v1.7.4 - github.com/zeebo/blake3 v0.2.3 + github.com/zeebo/blake3 v0.2.4 go.uber.org/atomic v1.11.0 go.uber.org/mock v0.4.0 go.uber.org/multierr v1.11.0 diff --git a/go.sum b/go.sum index 738d33c65..be2bbcf8d 100644 --- a/go.sum +++ b/go.sum @@ -85,8 +85,8 @@ github.com/andybalholm/cascadia v1.3.2 h1:3Xi6Dw5lHF15JtdcmAHD3i1+T8plmv7BQ/nsVi github.com/andybalholm/cascadia v1.3.2/go.mod h1:7gtRlve5FxPPgIgX36uWBX58OdBsSS6lUvCFb+h7KvU= github.com/anyproto/any-store v0.0.1 h1:RiZi3cHVSpIebcNeHYOUaDShH7E9Ahto33zdnqCaUHM= github.com/anyproto/any-store v0.0.1/go.mod h1:JV7dJ8+xF1VaCQgFQsD8SZSNlxxTGFbDiF8llkB2ILc= -github.com/anyproto/any-sync v0.4.29 h1:zLi88h6z7818QC5s7A6bvOyAdrogbbM5GAWe30GPiRU= -github.com/anyproto/any-sync v0.4.29/go.mod h1:0SIpsBQU1t2njK9U6ue1HMdMCV5tFtSawsUe556FkkU= +github.com/anyproto/any-sync v0.4.30 h1:2nnoVQF9WiBIw8pzwuOubwqf7a+xvZPDkXHmykTPi0k= +github.com/anyproto/any-sync v0.4.30/go.mod h1:YjwTdTRL6b6GuutJNboJJ1M5D/kkdeSf9qF5xP6wG7Y= github.com/anyproto/badger/v4 v4.2.1-0.20240110160636-80743fa3d580 h1:Ba80IlCCxkZ9H1GF+7vFu/TSpPvbpDCxXJ5ogc4euYc= github.com/anyproto/badger/v4 v4.2.1-0.20240110160636-80743fa3d580/go.mod h1:T/uWAYxrXdaXw64ihI++9RMbKTCpKd/yE9+saARew7k= github.com/anyproto/go-chash v0.1.0 h1:I9meTPjXFRfXZHRJzjOHC/XF7Q5vzysKkiT/grsogXY= @@ -759,7 +759,6 @@ github.com/klauspost/compress v1.11.7/go.mod h1:aoV0uJVorq1K+umq18yTdKaF57EivdYs github.com/klauspost/compress v1.17.9 h1:6KIumPrER1LHsvBVuDa0r5xaG0Es51mhhB9BQB2qeMA= github.com/klauspost/compress v1.17.9/go.mod h1:Di0epgTjJY877eYKx5yC51cX2A2Vl2ibi7bDH9ttBbw= github.com/klauspost/cpuid/v2 v2.0.4/go.mod h1:FInQzS24/EEf25PyTYn52gqo7WaD8xa0213Md/qVLRg= -github.com/klauspost/cpuid/v2 v2.0.12/go.mod h1:g2LTdtYhdyuGPqyWyv7qRAmj1WBqxuObKfj5c0PQa7c= github.com/klauspost/cpuid/v2 v2.2.7 h1:ZWSB3igEs+d0qvnxR/ZBzXVmxkgt8DdzP6m9pfuVLDM= github.com/klauspost/cpuid/v2 v2.2.7/go.mod h1:Lcz8mBdAVJIBVzewtcLocK12l3Y+JytZYpaMropDUws= github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= @@ -1428,11 +1427,10 @@ github.com/yuin/goldmark v1.7.4 h1:BDXOHExt+A7gwPCJgPIIq7ENvceR7we7rOS9TNoLZeg= github.com/yuin/goldmark v1.7.4/go.mod h1:uzxRWxtg69N339t3louHJ7+O03ezfj6PlliRlaOzY1E= github.com/yusufpapurcu/wmi v1.2.4 h1:zFUKzehAFReQwLys1b/iSMl+JQGSCSjtVqQn9bBrPo0= github.com/yusufpapurcu/wmi v1.2.4/go.mod h1:SBZ9tNy3G9/m5Oi98Zks0QjeHVDvuK0qfxQmPyzfmi0= -github.com/zeebo/assert v1.1.0/go.mod h1:Pq9JiuJQpG8JLJdtkwrJESF0Foym2/D9XMU5ciN/wJ0= github.com/zeebo/assert v1.3.0 h1:g7C04CbJuIDKNPFHmsk4hwZDO5O+kntRxzaUoNXj+IQ= github.com/zeebo/assert v1.3.0/go.mod h1:Pq9JiuJQpG8JLJdtkwrJESF0Foym2/D9XMU5ciN/wJ0= -github.com/zeebo/blake3 v0.2.3 h1:TFoLXsjeXqRNFxSbk35Dk4YtszE/MQQGK10BH4ptoTg= -github.com/zeebo/blake3 v0.2.3/go.mod h1:mjJjZpnsyIVtVgTOSpJ9vmRE4wgDeyt2HU3qXvvKCaQ= +github.com/zeebo/blake3 v0.2.4 h1:KYQPkhpRtcqh0ssGYcKLG1JYvddkEA8QwCM/yBqhaZI= +github.com/zeebo/blake3 v0.2.4/go.mod h1:7eeQ6d2iXWRGF6npfaxl2CU+xy2Fjo2gxeyZGCRUjcE= github.com/zeebo/errs v1.3.0 h1:hmiaKqgYZzcVgRL1Vkc1Mn2914BbzB0IBxs+ebeutGs= github.com/zeebo/errs v1.3.0/go.mod h1:sgbWHsvVuTPHcqJJGQ1WhI5KbWlHYz+2+2C/LSEtCw4= github.com/zeebo/pcg v1.0.1 h1:lyqfGeWiv4ahac6ttHs+I5hwtH/+1mrhlCtVNQM2kHo= From f4ba157daf110df575780f1f98edc6f7d5cdf537 Mon Sep 17 00:00:00 2001 From: Mikhail Iudin Date: Mon, 26 Aug 2024 22:26:45 +0200 Subject: [PATCH 74/78] GO-3929 Fix escape errors --- pkg/lib/localstore/ftsearch/ftsearchtantivy.go | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/pkg/lib/localstore/ftsearch/ftsearchtantivy.go b/pkg/lib/localstore/ftsearch/ftsearchtantivy.go index bc5d4ba09..0ac1a1e68 100644 --- a/pkg/lib/localstore/ftsearch/ftsearchtantivy.go +++ b/pkg/lib/localstore/ftsearch/ftsearchtantivy.go @@ -36,8 +36,9 @@ func TantivyNew() FTSearch { } var specialChars = map[rune]struct{}{ - '+': {}, '-': {}, '&': {}, '|': {}, '!': {}, '(': {}, ')': {}, '{': {}, '}': {}, - '[': {}, ']': {}, '^': {}, '"': {}, '~': {}, '*': {}, '?': {}, ':': {}, + '+': {}, '^': {}, '`': {}, ':': {}, '{': {}, + '}': {}, '"': {}, '[': {}, ']': {}, '(': {}, + ')': {}, '~': {}, '!': {}, '\\': {}, '*': {}, } type ftSearchTantivy struct { @@ -350,7 +351,7 @@ func escapeQuery(query string) string { for _, char := range query { if _, found := specialChars[char]; found { - escapedQuery.WriteRune('\\') + escapedQuery.WriteRune(' ') } escapedQuery.WriteRune(char) } From d393cc0c892eb6a86e74b5700a6ae6361339098b Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 27 Aug 2024 09:12:36 +0000 Subject: [PATCH 75/78] Bump github.com/anyproto/tantivy-go from 0.0.8 to 0.0.9 Bumps [github.com/anyproto/tantivy-go](https://github.com/anyproto/tantivy-go) from 0.0.8 to 0.0.9. - [Release notes](https://github.com/anyproto/tantivy-go/releases) - [Commits](https://github.com/anyproto/tantivy-go/compare/v0.0.8...v0.0.9) --- updated-dependencies: - dependency-name: github.com/anyproto/tantivy-go dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- go.mod | 2 +- go.sum | 6 ++---- 2 files changed, 3 insertions(+), 5 deletions(-) diff --git a/go.mod b/go.mod index 45482e006..351ce897b 100644 --- a/go.mod +++ b/go.mod @@ -10,7 +10,7 @@ require ( github.com/anyproto/any-store v0.0.2-0.20240812125400-7f6f6d062ebf github.com/anyproto/any-sync v0.4.30 github.com/anyproto/go-naturaldate/v2 v2.0.2-0.20230524105841-9829cfd13438 - github.com/anyproto/tantivy-go v0.0.8 + github.com/anyproto/tantivy-go v0.0.9 github.com/araddon/dateparse v0.0.0-20210429162001-6b43995a97de github.com/avast/retry-go/v4 v4.6.0 github.com/blevesearch/bleve/v2 v2.3.10 diff --git a/go.sum b/go.sum index 2768c1be5..3f83763ea 100644 --- a/go.sum +++ b/go.sum @@ -83,8 +83,6 @@ github.com/andybalholm/cascadia v1.2.0/go.mod h1:YCyR8vOZT9aZ1CHEd8ap0gMVm2aFgxB github.com/andybalholm/cascadia v1.3.1/go.mod h1:R4bJ1UQfqADjvDa4P6HZHLh/3OxWWEqc0Sk8XGwHqvA= github.com/andybalholm/cascadia v1.3.2 h1:3Xi6Dw5lHF15JtdcmAHD3i1+T8plmv7BQ/nsViSLyss= github.com/andybalholm/cascadia v1.3.2/go.mod h1:7gtRlve5FxPPgIgX36uWBX58OdBsSS6lUvCFb+h7KvU= -github.com/anyproto/any-store v0.0.1 h1:RiZi3cHVSpIebcNeHYOUaDShH7E9Ahto33zdnqCaUHM= -github.com/anyproto/any-store v0.0.1/go.mod h1:JV7dJ8+xF1VaCQgFQsD8SZSNlxxTGFbDiF8llkB2ILc= github.com/anyproto/any-store v0.0.2-0.20240812125400-7f6f6d062ebf h1:9VTQc/011fVyucu9bICmjF6+y/T9QdZv6MN7X4gM4S0= github.com/anyproto/any-store v0.0.2-0.20240812125400-7f6f6d062ebf/go.mod h1:JV7dJ8+xF1VaCQgFQsD8SZSNlxxTGFbDiF8llkB2ILc= github.com/anyproto/any-sync v0.4.30 h1:2nnoVQF9WiBIw8pzwuOubwqf7a+xvZPDkXHmykTPi0k= @@ -111,8 +109,8 @@ github.com/anyproto/protobuf v1.3.3-0.20240201225420-6e325cf0ac38 h1:80jke82/c+b github.com/anyproto/protobuf v1.3.3-0.20240201225420-6e325cf0ac38/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q= github.com/anyproto/ristretto v0.1.2-0.20240221153107-2b23839cc50c h1:GicoaTUyB2mtCIl3YMrO0OzysqRT5GA4vuvDsqEkhSM= github.com/anyproto/ristretto v0.1.2-0.20240221153107-2b23839cc50c/go.mod h1:S1GPSBCYCIhmVNfcth17y2zZtQT6wzkzgwUve0VDWWA= -github.com/anyproto/tantivy-go v0.0.8 h1:jigYko7cZBFBg2Z65PdEBsGwRB961uYqZP6SVozskPc= -github.com/anyproto/tantivy-go v0.0.8/go.mod h1:Pl0zaeEX7dkVDTDKROzlLlGCVjbZHjyPrZloFuVEASc= +github.com/anyproto/tantivy-go v0.0.9 h1:lbRBH5Nzs1nlSWKBlC9UuyOEqhM/KEs8P02Cvt58WP8= +github.com/anyproto/tantivy-go v0.0.9/go.mod h1:Pl0zaeEX7dkVDTDKROzlLlGCVjbZHjyPrZloFuVEASc= github.com/anyproto/zeroconf/v2 v2.2.1-0.20240228113933-f90a5cc4439d h1:5bj7nX/AS8sxGpTIrapE7PC4oPlhkHMwMqXlJbUHBlg= github.com/anyproto/zeroconf/v2 v2.2.1-0.20240228113933-f90a5cc4439d/go.mod h1:fuJqLnUwZTshS3U/bMRJ3+ow/v9oid1n0DmyYyNO1Xs= github.com/apache/thrift v0.12.0/go.mod h1:cp2SuWMxlEZw2r+iP2GNCdIi4C1qmUzdZFSVb+bacwQ= From 00b256686b79b0f2dbaaa0cb5ed1dd4bc7718dcc Mon Sep 17 00:00:00 2001 From: Mikhail Iudin Date: Tue, 27 Aug 2024 13:27:46 +0200 Subject: [PATCH 76/78] GO-3970 Improve query quality --- pkg/lib/localstore/ftsearch/ftsearchtantivy.go | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/pkg/lib/localstore/ftsearch/ftsearchtantivy.go b/pkg/lib/localstore/ftsearch/ftsearchtantivy.go index 0ac1a1e68..19c14feb6 100644 --- a/pkg/lib/localstore/ftsearch/ftsearchtantivy.go +++ b/pkg/lib/localstore/ftsearch/ftsearchtantivy.go @@ -356,5 +356,6 @@ func escapeQuery(query string) string { escapedQuery.WriteRune(char) } - return escapedQuery.String() + resultQuery := escapedQuery.String() + return "(\"" + resultQuery + "\" OR " + resultQuery + ")" } From df02ecd354806902ebd41283ce19d28fe9f28bf1 Mon Sep 17 00:00:00 2001 From: Roman Khafizianov Date: Tue, 27 Aug 2024 14:17:45 +0200 Subject: [PATCH 77/78] GO-3889 fix tests, add tiff --- pkg/lib/mill/image_exif_test.go | 6 +++--- pkg/lib/mill/testdata/image.tif | Bin 0 -> 11082 bytes pkg/lib/mill/testdata/images.go | 21 ++++++++++++++------- 3 files changed, 17 insertions(+), 10 deletions(-) create mode 100644 pkg/lib/mill/testdata/image.tif diff --git a/pkg/lib/mill/image_exif_test.go b/pkg/lib/mill/image_exif_test.go index 959c405d3..88c5654f1 100644 --- a/pkg/lib/mill/image_exif_test.go +++ b/pkg/lib/mill/image_exif_test.go @@ -30,13 +30,13 @@ func TestImageExif_Mill(t *testing.T) { } if exif.Width != i.Width { - t.Errorf("wrong width") + t.Errorf("wrong width %v %v", exif.Width, i.Width) } if exif.Height != i.Height { - t.Errorf("wrong height") + t.Errorf("wrong height %v %v", exif.Height, i.Height) } if exif.Format != i.Format { - t.Errorf("wrong format") + t.Errorf("wrong format %v %v", exif.Format, i.Format) } }) } diff --git a/pkg/lib/mill/testdata/image.tif b/pkg/lib/mill/testdata/image.tif new file mode 100644 index 0000000000000000000000000000000000000000..671a0759c273e28adb65c243f1cf8e0422d68aa8 GIT binary patch literal 11082 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 BhLQjP literal 0 HcmV?d00001 diff --git a/pkg/lib/mill/testdata/images.go b/pkg/lib/mill/testdata/images.go index d325a389e..ef6064652 100644 --- a/pkg/lib/mill/testdata/images.go +++ b/pkg/lib/mill/testdata/images.go @@ -9,13 +9,6 @@ type TestImage struct { } var Images = []TestImage{ - { - Path: "testdata/text.psd", - Format: "psd", - HasExif: true, - Width: 800, - Height: 600, - }, { Path: "testdata/Landscape_8.jpg", Format: "jpeg", @@ -72,4 +65,18 @@ var Images = []TestImage{ Width: 102, Height: 79, }, + { + Path: "testdata/text.psd", + Format: "psd", + HasExif: true, + Width: 800, + Height: 600, + }, + { + Path: "testdata/image.tif", + Format: "tiff", + HasExif: true, + Width: 1728, + Height: 2376, + }, } From 3b1970d95e3b23b771e69865a17e1d609b4d0a5e Mon Sep 17 00:00:00 2001 From: Sergey Date: Wed, 28 Aug 2024 10:04:07 +0200 Subject: [PATCH 78/78] GO-3979: Fix nested not equal query --- pkg/lib/database/filter.go | 100 +++++++++++++++--- pkg/lib/database/filter_test.go | 40 ++++++- .../localstore/objectstore/queries_test.go | 96 +++++++++++++---- 3 files changed, 199 insertions(+), 37 deletions(-) diff --git a/pkg/lib/database/filter.go b/pkg/lib/database/filter.go index 9ebf8f550..eeefb54b9 100644 --- a/pkg/lib/database/filter.go +++ b/pkg/lib/database/filter.go @@ -88,7 +88,14 @@ func makeFilter(spaceID string, rawFilter *model.BlockContentDataviewFilter, sto func makeFilterByCondition(spaceID string, rawFilter *model.BlockContentDataviewFilter, store ObjectStore) (Filter, error) { parts := strings.SplitN(rawFilter.RelationKey, ".", 2) if len(parts) == 2 { - return makeFilterNestedIn(spaceID, rawFilter, store, parts[0], parts[1]) + relationKey := parts[0] + nestedRelationKey := parts[1] + + if rawFilter.Condition == model.BlockContentDataviewFilter_NotEqual { + return makeFilterNestedNotIn(spaceID, rawFilter, store, relationKey, nestedRelationKey) + } else { + return makeFilterNestedIn(spaceID, rawFilter, store, relationKey, nestedRelationKey) + } } // replaces "value == false" to "value != true" for expected work with checkboxes @@ -673,18 +680,6 @@ func optionsToMap(spaceID string, key string, store ObjectStore) map[string]stri return result } -// FilterNestedIn returns true for object that has a relation pointing to any object that matches FilterForNestedObjects. -// This filter uses special machinery in able to work: it only functions when IDs field is populated by IDs of objects -// that match FilterForNestedObjects. You can't just use FilterNestedIn without populating IDs field -type FilterNestedIn struct { - Key string - FilterForNestedObjects Filter - - IDs []string -} - -var _ WithNestedFilter = &FilterNestedIn{} - func makeFilterNestedIn(spaceID string, rawFilter *model.BlockContentDataviewFilter, store ObjectStore, relationKey string, nestedRelationKey string) (Filter, error) { rawNestedFilter := proto.Clone(rawFilter).(*model.BlockContentDataviewFilter) rawNestedFilter.RelationKey = nestedRelationKey @@ -708,6 +703,18 @@ func makeFilterNestedIn(spaceID string, rawFilter *model.BlockContentDataviewFil }, nil } +// FilterNestedIn returns true for object that has a relation pointing to any object that matches FilterForNestedObjects. +// This filter uses special machinery in able to work: it only functions when IDs field is populated by IDs of objects +// that match FilterForNestedObjects. You can't just use FilterNestedIn without populating IDs field +type FilterNestedIn struct { + Key string + FilterForNestedObjects Filter + + IDs []string +} + +var _ WithNestedFilter = &FilterNestedIn{} + func (i *FilterNestedIn) FilterObject(g *types.Struct) bool { val := pbtypes.Get(g, i.Key) for _, id := range i.IDs { @@ -734,3 +741,70 @@ func (i *FilterNestedIn) AnystoreFilter() query.Filter { func (i *FilterNestedIn) IterateNestedFilters(fn func(nestedFilter Filter) error) error { return fn(i) } + +// See FilterNestedIn for details +type FilterNestedNotIn struct { + Key string + FilterForNestedObjects Filter + + IDs []string +} + +func makeFilterNestedNotIn(spaceID string, rawFilter *model.BlockContentDataviewFilter, store ObjectStore, relationKey string, nestedRelationKey string) (Filter, error) { + rawNestedFilter := proto.Clone(rawFilter).(*model.BlockContentDataviewFilter) + rawNestedFilter.RelationKey = nestedRelationKey + + subQueryRawFilter := proto.Clone(rawFilter).(*model.BlockContentDataviewFilter) + subQueryRawFilter.RelationKey = nestedRelationKey + subQueryRawFilter.Condition = model.BlockContentDataviewFilter_Equal + + subQueryFilter, err := MakeFilter(spaceID, subQueryRawFilter, store) + if err != nil { + return nil, fmt.Errorf("make nested filter %s -> %s: %w", relationKey, nestedRelationKey, err) + } + records, err := store.QueryRaw(&Filters{FilterObj: subQueryFilter}, 0, 0) + if err != nil { + return nil, fmt.Errorf("enrich nested filter: %w", err) + } + + ids := make([]string, 0, len(records)) + for _, rec := range records { + ids = append(ids, pbtypes.GetString(rec.Details, bundle.RelationKeyId.String())) + } + nestedFilter, err := MakeFilter(spaceID, rawNestedFilter, store) + if err != nil { + return nil, fmt.Errorf("make nested filter %s -> %s: %w", relationKey, nestedRelationKey, err) + } + return &FilterNestedNotIn{ + Key: relationKey, + FilterForNestedObjects: nestedFilter, + IDs: ids, + }, nil +} + +func (i *FilterNestedNotIn) FilterObject(g *types.Struct) bool { + val := pbtypes.Get(g, i.Key) + for _, id := range i.IDs { + eq := FilterEq{Value: pbtypes.String(id), Cond: model.BlockContentDataviewFilter_Equal} + if eq.filterObject(val) { + return false + } + } + return true +} + +func (i *FilterNestedNotIn) AnystoreFilter() query.Filter { + path := []string{i.Key} + conds := make([]query.Filter, 0, len(i.IDs)) + for _, id := range i.IDs { + conds = append(conds, query.Key{ + Path: path, + Filter: query.NewComp(query.CompOpNe, id), + }) + } + return query.And(conds) +} + +func (i *FilterNestedNotIn) IterateNestedFilters(fn func(nestedFilter Filter) error) error { + return fn(i) +} diff --git a/pkg/lib/database/filter_test.go b/pkg/lib/database/filter_test.go index 79a80582e..02bb20469 100644 --- a/pkg/lib/database/filter_test.go +++ b/pkg/lib/database/filter_test.go @@ -449,7 +449,7 @@ func TestMakeAndFilter(t *testing.T) { } func TestNestedFilters(t *testing.T) { - t.Run("simple", func(t *testing.T) { + t.Run("equal", func(t *testing.T) { store := NewMockObjectStore(t) // Query will occur while nested filter resolving store.EXPECT().QueryRaw(mock.Anything, 0, 0).Return([]Record{ @@ -484,6 +484,44 @@ func TestNestedFilters(t *testing.T) { assertFilter(t, f, obj2, true) }) + t.Run("not equal", func(t *testing.T) { + store := NewMockObjectStore(t) + // Query will occur while nested filter resolving + store.EXPECT().QueryRaw(mock.Anything, 0, 0).Return([]Record{ + { + Details: &types.Struct{ + Fields: map[string]*types.Value{ + bundle.RelationKeyId.String(): pbtypes.String("id1"), + bundle.RelationKeyUniqueKey.String(): pbtypes.String("ot-note"), + }, + }, + }, + { + Details: &types.Struct{ + Fields: map[string]*types.Value{ + bundle.RelationKeyId.String(): pbtypes.String("id2"), + bundle.RelationKeyUniqueKey.String(): pbtypes.String("ot-note"), + }, + }, + }, + }, nil) + + f, err := MakeFilter("spaceId", &model.BlockContentDataviewFilter{ + RelationKey: "type.uniqueKey", + Condition: model.BlockContentDataviewFilter_NotEqual, + Value: pbtypes.String("ot-note"), + }, store) + require.NoError(t, err) + + obj1 := &types.Struct{Fields: map[string]*types.Value{bundle.RelationKeyType.String(): pbtypes.StringList([]string{"id1"})}} + obj2 := &types.Struct{Fields: map[string]*types.Value{bundle.RelationKeyType.String(): pbtypes.StringList([]string{"id2", "id1"})}} + obj3 := &types.Struct{Fields: map[string]*types.Value{bundle.RelationKeyType.String(): pbtypes.StringList([]string{"id3"})}} + obj4 := &types.Struct{Fields: map[string]*types.Value{bundle.RelationKeyType.String(): pbtypes.StringList([]string{"id4", "id5"})}} + assertFilter(t, f, obj1, false) + assertFilter(t, f, obj2, false) + assertFilter(t, f, obj3, true) + assertFilter(t, f, obj4, true) + }) } func TestFilterExists(t *testing.T) { diff --git a/pkg/lib/localstore/objectstore/queries_test.go b/pkg/lib/localstore/objectstore/queries_test.go index 173cb9d11..ece21cef1 100644 --- a/pkg/lib/localstore/objectstore/queries_test.go +++ b/pkg/lib/localstore/objectstore/queries_test.go @@ -953,33 +953,83 @@ func TestQueryRaw(t *testing.T) { }) t.Run("with nested filter", func(t *testing.T) { - s := NewStoreFixture(t) - obj1 := TestObject{ - bundle.RelationKeyId: pbtypes.String("id1"), - bundle.RelationKeyType: pbtypes.String("type1"), - } - type1 := TestObject{ - bundle.RelationKeyId: pbtypes.String("type1"), - bundle.RelationKeyType: pbtypes.String("objectType"), - domain.RelationKey("typeKey"): pbtypes.String("note"), - } + t.Run("equal", func(t *testing.T) { + s := NewStoreFixture(t) + obj1 := TestObject{ + bundle.RelationKeyId: pbtypes.String("id1"), + bundle.RelationKeyType: pbtypes.String("type1"), + } + type1 := TestObject{ + bundle.RelationKeyId: pbtypes.String("type1"), + bundle.RelationKeyType: pbtypes.String("objectType"), + bundle.RelationKeyUniqueKey: pbtypes.String("ot-note"), + } - s.AddObjects(t, []TestObject{obj1, type1}) + s.AddObjects(t, []TestObject{obj1, type1}) - flt, err := database.NewFilters(database.Query{ - Filters: []*model.BlockContentDataviewFilter{ - { - RelationKey: "type.typeKey", - Condition: model.BlockContentDataviewFilter_Equal, - Value: pbtypes.String("note"), + flt, err := database.NewFilters(database.Query{ + Filters: []*model.BlockContentDataviewFilter{ + { + RelationKey: "type.uniqueKey", + Condition: model.BlockContentDataviewFilter_Equal, + Value: pbtypes.String("ot-note"), + }, }, - }, - }, s, arena) - require.NoError(t, err) + }, s, arena) + require.NoError(t, err) + + recs, err := s.QueryRaw(flt, 0, 0) + require.NoError(t, err) + assertRecordsEqual(t, []TestObject{obj1}, recs) + }) + t.Run("not equal", func(t *testing.T) { + s := NewStoreFixture(t) + obj1 := TestObject{ + bundle.RelationKeyId: pbtypes.String("id1"), + bundle.RelationKeyType: pbtypes.String("type1"), + bundle.RelationKeyLayout: pbtypes.Int64(int64(model.ObjectType_basic)), + } + obj2 := TestObject{ + bundle.RelationKeyId: pbtypes.String("id2"), + bundle.RelationKeyType: pbtypes.String("type2"), + bundle.RelationKeyLayout: pbtypes.Int64(int64(model.ObjectType_basic)), + } + type1 := TestObject{ + bundle.RelationKeyId: pbtypes.String("type1"), + bundle.RelationKeyType: pbtypes.String("objectType"), + bundle.RelationKeyUniqueKey: pbtypes.String("ot-template"), + bundle.RelationKeyLayout: pbtypes.Int64(int64(model.ObjectType_objectType)), + } + type2 := TestObject{ + bundle.RelationKeyId: pbtypes.String("type2"), + bundle.RelationKeyType: pbtypes.String("objectType"), + bundle.RelationKeyUniqueKey: pbtypes.String("ot-page"), + bundle.RelationKeyLayout: pbtypes.Int64(int64(model.ObjectType_objectType)), + } + + s.AddObjects(t, []TestObject{obj1, obj2, type1, type2}) + + flt, err := database.NewFilters(database.Query{ + Filters: []*model.BlockContentDataviewFilter{ + { + RelationKey: "type.uniqueKey", + Condition: model.BlockContentDataviewFilter_NotEqual, + Value: pbtypes.String("ot-template"), + }, + { + RelationKey: bundle.RelationKeyLayout.String(), + Condition: model.BlockContentDataviewFilter_Equal, + Value: pbtypes.Int64(int64(model.ObjectType_basic)), + }, + }, + }, s, arena) + require.NoError(t, err) + + recs, err := s.QueryRaw(flt, 0, 0) + require.NoError(t, err) + assertRecordsEqual(t, []TestObject{obj2}, recs) + }) - recs, err := s.QueryRaw(flt, 0, 0) - require.NoError(t, err) - assertRecordsEqual(t, []TestObject{obj1}, recs) }) }