@mark1russell7/packing 0.2.11 → 0.2.13
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +13 -0
- package/build/index.d.ts +81 -9
- package/build/index.d.ts.map +1 -1
- package/build/index.js +524 -236
- package/build/index.js.map +1 -1
- package/package.json +1 -1
- package/src/aspect-fit.ts +133 -0
- package/src/corpus.ts +2 -5
- package/src/frame.ts +24 -8
- package/src/generators.ts +58 -15
- package/src/index.ts +4 -1
- package/src/maxrects.ts +44 -56
- package/src/portfolio-strategy.ts +13 -6
- package/src/portfolio.ts +13 -30
- package/src/registry.ts +46 -3
- package/src/select-key.ts +48 -0
package/README.md
CHANGED
|
@@ -81,6 +81,19 @@ const cell = portfolioCell(input); // { shape: "rect", count: "100", spread: "un
|
|
|
81
81
|
- `PORTFOLIO_SETS` gives the sets of 1, 2 and 3 members of each cell. The bench records of one run gave them.
|
|
82
82
|
- Without options, the default member count of the cell runs. The output is a function of the input only.
|
|
83
83
|
- The option `k` (2 or 3) runs each member of the set of `k`. The option `budgetMs` is an opt-in time limit.
|
|
84
|
+
- The option `members` sets a fixed list of members. The option `key` sets the measures of the pick after the hard breaks.
|
|
85
|
+
|
|
86
|
+
The function `aspectFit` wraps a strategy for a container of free size. It is opt-in, and no default uses it.
|
|
87
|
+
|
|
88
|
+
```ts
|
|
89
|
+
const fit = aspectFit(strategy("maxrects"), { targetAspect: 16 / 9 });
|
|
90
|
+
const output = packWith("aspect-fit", input, { strategy: "maxrects", options: { rule: "bl" } });
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
- A container of fixed size gives the output of the wrapped strategy, with no change.
|
|
94
|
+
- For a free size, it packs at the widths of `ASPECT_FIT_FACTORS` around the target aspect, and at the size of the wrapped strategy.
|
|
95
|
+
- The pick uses `ASPECT_FIT_LEVELS`: the hard breaks, then `pack.overflow.excessArea`, then `pack.aspectError`, then `pack.area`.
|
|
96
|
+
- The target is `targetAspect`, else `aspect` of the container, else 1. `docs/PACKER.md` tells the widths.
|
|
84
97
|
|
|
85
98
|
Both functions also work alone, in an outer rectangle with a width that you set. They do not change the width.
|
|
86
99
|
|
package/build/index.d.ts
CHANGED
|
@@ -752,9 +752,24 @@ export declare function fromRects<T>(rects: readonly Rect<T>[], outer: Rect<T>):
|
|
|
752
752
|
export declare function toRects<T>(output: PackOutput, rects: Rect<T>[], outer: Rect<T>): Rect<T>;
|
|
753
753
|
/** Each single strategy of the package. The benchmark starts each one on each input of the corpus. */
|
|
754
754
|
export declare const strategies: readonly Strategy[];
|
|
755
|
+
/** The options of the strategy `aspect-fit` */
|
|
756
|
+
interface AspectFitStrategyOptions {
|
|
757
|
+
/** The id of the wrapped strategy of the registry. The option is necessary. */
|
|
758
|
+
strategy?: string;
|
|
759
|
+
/** The options of the wrapped strategy over its defaults */
|
|
760
|
+
options?: unknown;
|
|
761
|
+
/** The target aspect of `aspectFit`. The default is `aspect` of the container, else 1. */
|
|
762
|
+
targetAspect?: number;
|
|
763
|
+
}
|
|
764
|
+
/**
|
|
765
|
+
* The strategy `aspect-fit`: `aspectFit` of roadmap item k62 around the strategy of the option `strategy`. Its supports are
|
|
766
|
+
* the union of the supports of the single strategies. A cell that the wrapped strategy does not support throws its error.
|
|
767
|
+
* The strategy throws a `RangeError` without the option `strategy`.
|
|
768
|
+
*/
|
|
769
|
+
export declare const aspectFitStrategy: Strategy<AspectFitStrategyOptions>;
|
|
755
770
|
/**
|
|
756
771
|
* The composite strategies of the registry: each one packs an input with other strategies. They are not in `strategies`.
|
|
757
|
-
* Since 0.2.7, the list has `portfolio` of roadmap item k20.
|
|
772
|
+
* Since 0.2.7, the list has `portfolio` of roadmap item k20. Roadmap item k62 adds `aspect-fit`.
|
|
758
773
|
*/
|
|
759
774
|
export declare const composites: readonly Strategy[];
|
|
760
775
|
/** This function gives the strategy with an id, also a composite strategy. It throws a `RangeError` for an id that the registry does not have. */
|
|
@@ -764,6 +779,40 @@ export declare function strategy(id: string): Strategy;
|
|
|
764
779
|
* context gets `mulberry32` with the seed. The default seed is 0.
|
|
765
780
|
*/
|
|
766
781
|
export declare function packWith(id: string, input: PackInput, options?: unknown, seed?: number): PackOutput;
|
|
782
|
+
/** The options of `aspectFit` */
|
|
783
|
+
interface AspectFitOptions {
|
|
784
|
+
/** The target aspect: the width divided by the height. The default is `aspect` of the container, else 1. */
|
|
785
|
+
targetAspect?: number;
|
|
786
|
+
}
|
|
787
|
+
/** The id of the trace stage of `aspectFit`. Its measure `move.aspectPick` is 1 when the pick is not the output of the wrapped strategy. */
|
|
788
|
+
export declare const ASPECT_FIT_STAGE = "aspect-fit";
|
|
789
|
+
/**
|
|
790
|
+
* The factors of the widths of `aspectFit`. Each width is a factor times the square root of the area of the first output
|
|
791
|
+
* times the target aspect. The steps are approximately 5% of the width, thus approximately 0.1 of the aspect error.
|
|
792
|
+
*/
|
|
793
|
+
export declare const ASPECT_FIT_FACTORS: readonly number[];
|
|
794
|
+
/**
|
|
795
|
+
* The levels of the pick of `aspectFit`, in order. Level 0 is `hard`.
|
|
796
|
+
*
|
|
797
|
+
* - `hard`: the count of hard breaks of `checkHard` with `exactContainer`. Lower is better, with the minimum effect 0.
|
|
798
|
+
* - `pack.overflow.excessArea`: the overflow area above its bound. Lower is better.
|
|
799
|
+
* - `pack.aspectError`: the distance from the target aspect. Lower is better, with the minimum effect 0.01.
|
|
800
|
+
* - `pack.area`: the area of the hull. Lower is better, with the minimum effect of 1% of the area.
|
|
801
|
+
*/
|
|
802
|
+
export declare const ASPECT_FIT_LEVELS: readonly SelectLevel$1[];
|
|
803
|
+
/**
|
|
804
|
+
* This function wraps a strategy. For a free-size container, it packs at some widths near the target aspect and keeps the best output.
|
|
805
|
+
*
|
|
806
|
+
* - The target is `targetAspect`, else `aspect` of the container, else 1.
|
|
807
|
+
* - A container with the size `fixed` goes to the wrapped strategy without a change.
|
|
808
|
+
* - The first member is the output of the wrapped strategy. Each other member packs at one fixed width of `ASPECT_FIT_FACTORS`.
|
|
809
|
+
* - The key is `ASPECT_FIT_LEVELS`, then `outputHash`. The aspect error reads the target. `selectBest` of the contract picks the winner.
|
|
810
|
+
* - A fixed height goes through the turn of the axes, with the target `1 / target`.
|
|
811
|
+
* - The function throws a `RangeError` for a target that is not a number above 0.
|
|
812
|
+
*/
|
|
813
|
+
export declare function aspectFit<O>(inner: Strategy<O>, options?: AspectFitOptions): Strategy<O>;
|
|
814
|
+
/** This function gives the count of the hard breaks of an output: the sum of `checkHard` with `exactContainer`. */
|
|
815
|
+
export declare function hardBreaks(input: PackInput, output: PackOutput): number;
|
|
767
816
|
/** A member of `packPortfolio`: a strategy of the registry with some options. The id names the member in the trace. */
|
|
768
817
|
interface PortfolioEntry {
|
|
769
818
|
id: string;
|
|
@@ -784,6 +833,11 @@ interface PackPortfolioOptions {
|
|
|
784
833
|
maxMembers?: number;
|
|
785
834
|
/** The clock in milliseconds. The default is `performance.now`. */
|
|
786
835
|
now?: () => number;
|
|
836
|
+
/**
|
|
837
|
+
* The measure ids of the key after the hard breaks, in order. Each id is a measure of `MEASURE_SPECS`. The default is
|
|
838
|
+
* `pack.overflow.excessArea`, then `pack.fill`, as in `PORTFOLIO_LEVELS`.
|
|
839
|
+
*/
|
|
840
|
+
key?: readonly string[];
|
|
787
841
|
}
|
|
788
842
|
/** The id of the trace stage of `packPortfolio`. Its measure `move.pick` is 1 when the pick is not member 0. */
|
|
789
843
|
export declare const PORTFOLIO_STAGE = "portfolio";
|
|
@@ -795,8 +849,6 @@ export declare const PORTFOLIO_STAGE = "portfolio";
|
|
|
795
849
|
* - `pack.fill`: the fill of the hull. Higher is better.
|
|
796
850
|
*/
|
|
797
851
|
export declare const PORTFOLIO_LEVELS: readonly SelectLevel$1[];
|
|
798
|
-
/** This function gives the count of the hard breaks of an output: the sum of `checkHard` with `exactContainer`. */
|
|
799
|
-
export declare function hardBreaks(input: PackInput, output: PackOutput): number;
|
|
800
852
|
/**
|
|
801
853
|
* This function makes an opt-in portfolio of strategies of the registry with `portfolio` of the contract.
|
|
802
854
|
* Its `pick(input)` packs the input with each member and gives the output of the winner, its id and the trace.
|
|
@@ -804,10 +856,11 @@ export declare function hardBreaks(input: PackInput, output: PackOutput): number
|
|
|
804
856
|
* - A member is a strategy id, or a `PortfolioEntry` with options. The members run in the given order.
|
|
805
857
|
* - `members` is a list, or a function of the input that gives the list. The strategy `portfolio` uses the function form.
|
|
806
858
|
* - The key is the hard breaks, then `pack.overflow.excessArea`, then `pack.fill`. `PORTFOLIO_LEVELS` gives the specs.
|
|
859
|
+
* The option `key` gives other measures after the hard breaks.
|
|
807
860
|
* - The key reads the measures after `roundMeasures`, as a record keeps them. A replay of the records gives the same pick.
|
|
808
861
|
* - The hash of the key is `outputHash`. `selectBest` of the contract picks the winner.
|
|
809
862
|
* - The output of the winner gets the trace stage `portfolio` with `move.pick` of `pickMoves`.
|
|
810
|
-
* - The function throws a `RangeError` for an unknown strategy, an empty list
|
|
863
|
+
* - The function throws a `RangeError` for an unknown strategy, an empty list, two members with the same id and an unknown measure of `key`.
|
|
811
864
|
* With the function form, `pick` throws this error for the list of an input.
|
|
812
865
|
*/
|
|
813
866
|
export declare function packPortfolio(members: readonly (string | PortfolioEntry)[] | ((input: PackInput) => readonly (string | PortfolioEntry)[]), options?: PackPortfolioOptions): Portfolio$1<PackInput, PackOutput>;
|
|
@@ -1005,6 +1058,10 @@ interface PortfolioStrategyOptions {
|
|
|
1005
1058
|
maxMembers?: number;
|
|
1006
1059
|
/** The opt-in time limit of `portfolio` of the contract, in milliseconds. It has no default. A cut member makes the result not deterministic. */
|
|
1007
1060
|
budgetMs?: number;
|
|
1061
|
+
/** The members for each input, in place of the set of the cell. The function refuses `members` with the option `k`. */
|
|
1062
|
+
members?: readonly (string | PortfolioEntry)[];
|
|
1063
|
+
/** The measure ids of the key after the hard breaks, as the option `key` of `packPortfolio`. The default is the key of `PORTFOLIO_LEVELS`. */
|
|
1064
|
+
key?: readonly string[];
|
|
1008
1065
|
}
|
|
1009
1066
|
/**
|
|
1010
1067
|
* The strategy `portfolio`: `packPortfolio` with the function form `(input) => portfolioMembers(input, k)`. The seed of the context
|
|
@@ -1014,7 +1071,8 @@ interface PortfolioStrategyOptions {
|
|
|
1014
1071
|
* The default output thus does not depend on the clock.
|
|
1015
1072
|
* - A member that does not support the cell of an input throws, and it does not win. When each member throws, the strategy throws the first error.
|
|
1016
1073
|
* - The option `budgetMs` goes to `portfolio` of the contract. The first member always runs.
|
|
1017
|
-
* -
|
|
1074
|
+
* - With `members`, each input gets these members, and `maxMembers` has no default. The id of the portfolio stays `portfolio`.
|
|
1075
|
+
* - The strategy throws a `RangeError` for a `k` other than 2 or 3, and for `k` with `members`.
|
|
1018
1076
|
*/
|
|
1019
1077
|
export declare const portfolioStrategy: Strategy<PortfolioStrategyOptions>;
|
|
1020
1078
|
/**
|
|
@@ -1076,6 +1134,17 @@ type RectGridParams = {
|
|
|
1076
1134
|
* and `sizes`, with each count. The container is a nominal rectangle of 600 to 1000 by 400 to 800.
|
|
1077
1135
|
*/
|
|
1078
1136
|
export declare const rectGrid: CorpusGenerator<RectGridParams>;
|
|
1137
|
+
/** The values of the parameter `order` of `rect-grid` version 2. The input format declares no hard order. */
|
|
1138
|
+
declare const GRID_ORDERS: readonly ["free", "soft"];
|
|
1139
|
+
/** The parameters of `rect-grid` version 2: the parameters of version 1 and the reading order of the boxes. */
|
|
1140
|
+
type RectGridV2Params = RectGridParams & {
|
|
1141
|
+
order: (typeof GRID_ORDERS)[number];
|
|
1142
|
+
};
|
|
1143
|
+
/**
|
|
1144
|
+
* The generator `rect-grid`, version 2: the inputs of version 1 with the parameter `order`. With `soft`, each box gets a
|
|
1145
|
+
* rank, a random permutation of the box indexes. With `free`, the boxes have no rank.
|
|
1146
|
+
*/
|
|
1147
|
+
export declare const rectGridV2: CorpusGenerator<RectGridV2Params>;
|
|
1079
1148
|
/** The parameters of a family of a user interface. */
|
|
1080
1149
|
type UiParams = {
|
|
1081
1150
|
containerSize: DimensionValue<"containerSize">;
|
|
@@ -1108,13 +1177,16 @@ type EdgeCaseParams = {
|
|
|
1108
1177
|
export declare const edgeCases: CorpusGenerator<EdgeCaseParams>;
|
|
1109
1178
|
/** Each generator of the package. */
|
|
1110
1179
|
export declare const generators: readonly CorpusGenerator[];
|
|
1111
|
-
/**
|
|
1112
|
-
|
|
1180
|
+
/**
|
|
1181
|
+
* This function gives the generator with a name and a version. Without a version, it gives the first generator of the name
|
|
1182
|
+
* in `generators`: version 1 of `rect-grid`. It throws a `RangeError` for a name or a version that the package does not have.
|
|
1183
|
+
*/
|
|
1184
|
+
export declare function generator(name: string, version?: number): CorpusGenerator;
|
|
1113
1185
|
/** One spec of a corpus: a generator, its parameters and its seeds. */
|
|
1114
1186
|
interface CorpusSpec {
|
|
1115
1187
|
/** The name of the generator. */
|
|
1116
1188
|
generator: string;
|
|
1117
|
-
/** The version of the generator. Without it, the spec uses the version of the
|
|
1189
|
+
/** The version of the generator. Without it, the spec uses the first version of the name. A version that the package does not have is an error. */
|
|
1118
1190
|
version?: number;
|
|
1119
1191
|
/** The parameters over the defaults of the generator. */
|
|
1120
1192
|
params?: GeneratorParams;
|
|
@@ -1150,5 +1222,5 @@ interface Corpus {
|
|
|
1150
1222
|
* `RangeError` for an unknown generator, a different version or 2 inputs with the same id.
|
|
1151
1223
|
*/
|
|
1152
1224
|
export declare function corpus(name: string, specs: readonly CorpusSpec[]): Corpus;
|
|
1153
|
-
export { type Cell, type ChangeMeasures, type ContainerTest, type Corpus, type CorpusCell, type CorpusEntry, type CorpusGenerator, type CorpusManifest, type CorpusSpec, type CountScale, DEFAULT_TOLERANCE, type Dimension, type DimensionValue, type Direction, EPS, type EdgeCase, type EdgeCaseParams, type FreeSpace, type FreeSpan, type FreeWidthOptions, type FreeWidthResult, type FreeWidthTry, type GeneratedInput, type GeneratorParams, type GeneratorStamp, type Item, type LayoutContainer, type LayoutEdge, type LayoutInput, type LayoutMeasures, type LayoutStrategyOptions, type Margin, type MaxRectsOptions, type MaxRectsRule, type MaxRectsStrategyOptions, type MeasureFamily, type MeasureId, type MeasureOptions, type MeasureSpec, type MemberTrace, type MetricsOptions, type Obstacle, type ObstacleLayout, type PackContext, type PackHard, type PackInput, type PackLayoutOptions, type PackOptions, type PackOutput, type PackPortfolioOptions, type PackingMetrics, type Placement, type Port, type Portfolio, type PortfolioCell, type PortfolioCellSets, type PortfolioEntry, type PortfolioPick, type PortfolioSetSource, type PortfolioSets, type PortfolioSize, type PortfolioStrategyOptions, type PortfolioTrace, type PortfolioTrainScore, type PushOptions, type PushStrategyOptions, RECORD_EPS, type RectGridParams, type RectScatteredParams, type Region, type SelectLevel, type ShelfFit, type ShelfOptions, type Side, type Sides, type SizeDistribution, type SizeSearch, type SkylineOptions, type SortOrder, type SpaceRect, type SpreadBand, type StageTrace, type Strategy, type Supports, type Tolerance, type UiParams, checkInput, turnPoint, turnPort, turnRegion };
|
|
1225
|
+
export { type AspectFitOptions, type AspectFitStrategyOptions, type Cell, type ChangeMeasures, type ContainerTest, type Corpus, type CorpusCell, type CorpusEntry, type CorpusGenerator, type CorpusManifest, type CorpusSpec, type CountScale, DEFAULT_TOLERANCE, type Dimension, type DimensionValue, type Direction, EPS, type EdgeCase, type EdgeCaseParams, type FreeSpace, type FreeSpan, type FreeWidthOptions, type FreeWidthResult, type FreeWidthTry, type GeneratedInput, type GeneratorParams, type GeneratorStamp, type Item, type LayoutContainer, type LayoutEdge, type LayoutInput, type LayoutMeasures, type LayoutStrategyOptions, type Margin, type MaxRectsOptions, type MaxRectsRule, type MaxRectsStrategyOptions, type MeasureFamily, type MeasureId, type MeasureOptions, type MeasureSpec, type MemberTrace, type MetricsOptions, type Obstacle, type ObstacleLayout, type PackContext, type PackHard, type PackInput, type PackLayoutOptions, type PackOptions, type PackOutput, type PackPortfolioOptions, type PackingMetrics, type Placement, type Port, type Portfolio, type PortfolioCell, type PortfolioCellSets, type PortfolioEntry, type PortfolioPick, type PortfolioSetSource, type PortfolioSets, type PortfolioSize, type PortfolioStrategyOptions, type PortfolioTrace, type PortfolioTrainScore, type PushOptions, type PushStrategyOptions, RECORD_EPS, type RectGridParams, type RectGridV2Params, type RectScatteredParams, type Region, type SelectLevel, type ShelfFit, type ShelfOptions, type Side, type Sides, type SizeDistribution, type SizeSearch, type SkylineOptions, type SortOrder, type SpaceRect, type SpreadBand, type StageTrace, type Strategy, type Supports, type Tolerance, type UiParams, checkInput, turnPoint, turnPort, turnRegion };
|
|
1154
1226
|
//# sourceMappingURL=index.d.ts.map
|
package/build/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","names":["Item","Sides","ContractMeasureSpec","Direction","SelectLevel","Portfolio","LayoutContainer","LayoutEdge","LayoutInput","ContainerTest","PackHard"],"sources":["../src/vector.ts","../src/rect.ts","../src/order.ts","../src/contract.ts","../src/space.ts","../src/maxrects.ts","../src/shelf.ts","../src/pack.ts","../src/skyline.ts","../src/free.ts","../src/push.ts","../src/metrics.ts","../src/measures.ts","../src/strategy.ts","../src/adapters.ts","../src/convert.ts","../src/registry.ts","../src/portfolio.ts","../src/layout-input.ts","../src/portfolio-cell.ts","../src/portfolio-sets.ts","../src/portfolio-strategy.ts","../src/check.ts","../src/generators.ts","../src/corpus.ts"],"mappings":";;qBACa;;EAIX,YAAY,YAAO;;MAMf;MACA,EAAE;;MAEF;MACA,EAAE;;EAGN,IAAI,WAAW;;EAMf,MAAM,GAAG;;EAMT,IAAI,OAAO,SAAS;;EAKpB;;EAKA,SAAS;;EAKT,MAAM,KAAK,QAAQ,KAAK,SAAS;;SAQ1B,GAAG,iBAAiB;;SAKpB,IAAI,SAAS,WAAW;;SASxB,IAAI,SAAS,WAAW;;aASpB,YAAY;;;qBCxEZ,KAAK;;;EAKhB,KAAK;;EAEL;;EAEA;;EAEA;;;;;EAKA;;MAGI,YAAY;;MAEZ,QAAQ;;EAGZ;;EAEA;;EAGA,WAAW;;EAOX,YAAY,QAAQ;;EAMpB;;SAGO,OAAO,GAAG,OAAO,KAAK,OAAO,KAAK;;SAKlC,SAAS,GAAG,OAAO,KAAK,OAAO,KAAK;;SAKpC,YAAY,GAAG,OAAO,KAAK;;SAK3B,SAAS,GAAG,OAAO,KAAK;;SAKxB,UAAU,GAAG,OAAO,KAAK;;;;;;KC/DtB;;qBAGC,sBAAsB;;wBAGnB,aAAa,OAAO,aAAa,GAAG,GAAG,KAAK,IAAI,GAAG,KAAK;;wBCiBxD,SAAS,MAAM,KAAKA,oBAAkBC;;;;;;;wBAWtC,SAAS,MAAMD,SAAOA;;UC/BrB;WACN;WACA;;;UAIM;WACN;WACA;WACA;WACA;;;;;;;;;;;UAYM;;WAEN;;WAEA;;;;;WAKA;;EAET,KAAK,YAAY,aAAa;;;;;EAK9B,OAAO,YAAY,YAAY,gBAAgB;;EAE/C,KAAK,MAAM;;EAEX,KAAK,WAAW,WAAW,YAAY;;;;;EAKvC,MAAM,YAAY,YAAY;;;;;;wBAmWhB,UAAU,OAAO,YAAY;;;;;;;;;;qBCzYhC;;KAGD,uBAAuB;;qBAGtB;;UAGI;;EAEf,YAAY;;;;;EAKZ,QAAQ;;EAER,OAAO;;;;;;EAMP;;EAEA,WAAW;;;;;EAKX,SAAS;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"index.d.ts","names":["Item","Sides","ContractMeasureSpec","Direction","SelectLevel","SelectLevel","Portfolio","LayoutContainer","LayoutEdge","LayoutInput","ContainerTest","PackHard"],"sources":["../src/vector.ts","../src/rect.ts","../src/order.ts","../src/contract.ts","../src/space.ts","../src/maxrects.ts","../src/shelf.ts","../src/pack.ts","../src/skyline.ts","../src/free.ts","../src/push.ts","../src/metrics.ts","../src/measures.ts","../src/strategy.ts","../src/adapters.ts","../src/convert.ts","../src/registry.ts","../src/aspect-fit.ts","../src/select-key.ts","../src/portfolio.ts","../src/layout-input.ts","../src/portfolio-cell.ts","../src/portfolio-sets.ts","../src/portfolio-strategy.ts","../src/check.ts","../src/generators.ts","../src/corpus.ts"],"mappings":"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"}
|