{
const A = size;
const N = Math.floor(width / A);
const W = N * A;
const scale = (rows, cols) =>
flags.includes("caleidoscope")
? `${1 - 2 * (rows % 2)},${1 - 2 * (cols % 2)}`
: '1';
return html`<svg width=${W} height=${W}>
${Array.from({ length: N * N }, (_, n) => {
const R = Math.floor(n / N);
const C = Math.floor(n % N);
return `<g transform="translate(${A * R + A / 2}, ${A * C +
A / 2}) scale(${scale(R, C)})">${drawRects(A)}</g>`;
}).join('')}
</svg>`;
}