孕妈广场:首页加逛广场入口、帖子返回落广场首页;参差瀑布流+图上压字;分类·话题胶囊层级;话题名与179篇帖子口语化重写

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
deploy
2026-11-02 09:43:22 +00:00
parent 5fc072fb50
commit f2b27f9b6a
8 changed files with 744 additions and 674 deletions

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

View File

@@ -112,6 +112,26 @@ button{font:inherit;color:inherit;border:0;background:none;padding:0;cursor:poin
.th .join .ic{width:14px;height:14px}
.th .sw{height:34px;padding:0 14px;border-radius:99px;background:rgba(255,255,255,.8);color:var(--ht);font-size:13px;font-weight:800}
/* ---------- 层级:分类 · 话题胶囊(11-02) ---------- */
.lvw{margin:16px 0 0}
.lvw .lv{display:flex;align-items:baseline;gap:8px;padding:0 14px}
.lvw .lv h2{margin:0;font-size:17px;font-weight:900;letter-spacing:.3px;color:var(--kt)}
.lvw .lv small{font-size:12px;font-weight:600;color:var(--muted);white-space:nowrap}
.lvw .lv .ba{margin-left:auto;font-size:12.5px;font-weight:800;color:var(--kt)}
.tcs{display:flex;gap:7px;padding:9px 12px 2px;overflow-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain;scrollbar-width:none}
.tcs::-webkit-scrollbar{display:none}
.tcs::after{content:"";flex:none;width:4px}
.tcs button{flex:none;height:30px;padding:0 11px;border-radius:99px;background:#fff;border:1px solid #EFE1DB;font-size:12.5px;font-weight:700;color:#5E4E4A;white-space:nowrap;display:inline-flex;align-items:center;gap:5px}
.tcs button i{font-style:normal;font-size:11px;font-weight:800;color:#B59A93;font-variant-numeric:tabular-nums}
.tcs button.on{background:var(--kf);border-color:var(--kf);color:#fff;box-shadow:0 5px 12px -6px var(--kf)}
.tcs button.on i{color:rgba(255,255,255,.85)}
.th .bc{position:relative;display:flex;align-items:center;gap:6px}
.th .bc button{display:inline-flex}
.th .bc span:last-child{font-size:12px;font-weight:700;color:var(--ht)}
.mo{display:block;width:calc(100% - 24px);margin:14px 12px 0;padding:13px 14px;border-radius:16px;text-align:center;background:linear-gradient(150deg,var(--kl),var(--kl2))}
.mo small{display:block;font-size:11.5px;font-weight:600;color:#9A817C}
.mo b{display:block;margin-top:3px;font-size:14.5px;font-weight:900;color:var(--kt)}
/* ---------- 瀑布流 ---------- */
.wf{display:flex;align-items:flex-start;gap:8px;padding:10px 12px 0}
.wf .col{flex:1;min-width:0;display:flex;flex-direction:column;gap:8px}
@@ -151,6 +171,16 @@ button{font:inherit;color:inherit;border:0;background:none;padding:0;cursor:poin
.cv.ph .kb{position:absolute;left:.95em;top:.95em;z-index:1;box-shadow:0 2px 6px rgba(0,0,0,.12)}
.cv .wm{position:absolute;right:-.1em;bottom:-.25em;font-size:5.6em;font-weight:900;line-height:1;color:#fff;opacity:.55;font-family:"STKaiti","KaiTi","Kaiti SC",serif;pointer-events:none;z-index:0}
/* 图上压字(11-02 用户:文字放到图片上穿插来,小红书式):ov 底部渐变大字 / tg 贴纸字 */
.nc .ovt{position:absolute;left:0;right:0;bottom:0;padding:34px 10px 10px;background:linear-gradient(transparent,rgba(30,18,14,.62));color:#fff;pointer-events:none}
.nc .ovt b{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;font-size:17px;font-weight:900;line-height:1.3;letter-spacing:.5px;text-shadow:0 1px 4px rgba(0,0,0,.25)}
.nc .ovt small{display:block;margin-top:4px;font-size:11px;font-weight:700;opacity:.9;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.nc .tgt{position:absolute;left:9px;right:9px;bottom:12px;pointer-events:none}
.nc .tgt b{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;font-size:15px;font-weight:900;line-height:1.55;color:#2A1E1E}
.nc .tgt span{background:#FFF2A6;padding:1px 5px;-webkit-box-decoration-break:clone;box-decoration-break:clone;border-radius:3px}
.nc:nth-child(odd) .tgt span{background:#fff}
.nc .ovt~*,.nc .tgt~*{display:none}
/* ---------- 详情层 ---------- */
#dt{position:fixed;inset:0;z-index:40;background:#fff;transform:translateX(100%);transition:transform .32s cubic-bezier(.2,.8,.2,1);display:flex;flex-direction:column}
#dt.show{transform:none}
@@ -367,6 +397,7 @@ button{font:inherit;color:inherit;border:0;background:none;padding:0;cursor:poin
<div id="head"></div>
<div class="sh" id="fh"></div>
<div class="wf" id="wf"><div class="col"></div><div class="col"></div></div>
<div id="more"></div>
<div class="end"><b>— 到底啦 —</b><small>内容为示例占位,正式版将替换为妈妈们的真实分享</small></div>
</div>
@@ -402,9 +433,9 @@ button{font:inherit;color:inherit;border:0;background:none;padding:0;cursor:poin
<div id="sheet" role="dialog" aria-modal="true"><i class="sg"></i><div class="sbd" id="sbd"></div></div>
<div class="toast" id="toast"></div>
<script src="topics.js?v=26110204"></script>
<script src="data.js?v=26110204"></script>
<script src="feed.js?v=26110204"></script>
<script src="topics.js?v=26110205"></script>
<script src="data.js?v=26110205"></script>
<script src="feed.js?v=26110205"></script>
<script>
(function () {
'use strict';
@@ -439,13 +470,15 @@ button{font:inherit;color:inherit;border:0;background:none;padding:0;cursor:poin
/* ---------- 笔记:data.js 的原始内容 + 确定性补字段(id / 封面样式 / 比例 / 评论) ---------- */
var NOTES = [], NBY = {}; /* 真实投稿到达后会往前插(loadApproved),所以 NOTES / MIXED 用 var 可重赋值 */
var RATIO = [1.12, 0.94, 1.04, 0.88, 1.18, 0.98, 0.9];
/* 11-02 用户:「要参差不齐的小红书瀑布流,现在都横向对齐」→ 照片封面高度按 id 哈希在 0.95~1.45 之间取,不再统一 1.3 */
var PR = [1.33, 1.05, 1.25, 1.45, 1.15, 0.95, 1.38, 1.2];
T.forEach(function (t, ti) {
var d = D[t.id]; if (!d) return;
(d.notes || []).forEach(function (n, i) {
var o = {
id: t.id + '-' + (i + 1), t: t.id, i: i, title: n.title, cover: n.cover || n.title, coverSub: n.coverSub || '',
author: n.author, stage: n.stage, likes: +n.likes || 0, body: n.body || '',
ratio: n.photo ? 1.3 : RATIO[(ti + i * 3) % RATIO.length], tone: (ti + i) % 3, photo: n.photo || ''
ratio: n.photo ? PR[seed(t.id + '-' + (i + 1) + 'r') % PR.length] : RATIO[(ti + i * 3) % RATIO.length], tone: (ti + i) % 3, photo: n.photo || ''
};
NOTES.push(o); NBY[o.id] = o;
});
@@ -516,10 +549,14 @@ button{font:inherit;color:inherit;border:0;background:none;padding:0;cursor:poin
var on = liked(n.id);
return '<span class="lk' + (on ? ' on' : '') + '" data-like="' + n.id + '" role="button" aria-label="点赞"><svg class="ic"><use href="#i-heart' + (on ? '-f' : '') + '"/></svg>' + cfmt(likeN(n)) + '</span>';
}
function cardHTML(n, showTopic) {
var t = TBY[n.t];
return '<button type="button" class="nc" data-id="' + n.id + '"><div class="cvw">' +
coverHTML(n, 'calc(var(--cw) * ' + n.ratio + ')') + '</div>' +
/* 卡片样式 sty(只对照片封面):'' 普通图 / 'ov' 图上压大字(底部渐变)/ 'tg' 图上贴纸字 —— 11-02 用户:「把一些文字放到图片上,穿插着来,类似小红书」 */
function cardHTML(n, showTopic, sty) {
var t = TBY[n.t], r = n.ratio, ov = '';
if (!n.photo) sty = '';
if (sty === 'ov') { r = Math.max(r, 1.28); ov = '<div class="ovt"><b>' + esc(n.cover) + '</b>' + (n.coverSub ? '<small>' + esc(n.coverSub) + '</small>' : '') + '</div>'; }
else if (sty === 'tg') ov = '<div class="tgt"><b><span>' + esc(n.cover) + '</span></b></div>';
return '<button type="button" class="nc' + (sty ? ' s-' + sty : '') + '" data-id="' + n.id + '"><div class="cvw">' +
coverHTML(n, 'calc(var(--cw) * ' + r + ')') + ov + '</div>' +
'<div class="nb"><h3>' + esc(n.title) + '</h3>' + (showTopic ? '<span class="tp k-' + t.cat + '"># ' + esc(t.name) + '</span>' : '') + '<div class="nf"><img src="' + esc(avOf(n)) + '" alt="" loading="lazy"><span class="nm">' + esc(n.author) + '</span>' + likeHTML(n) + '</div></div></button>';
}
@@ -565,14 +602,29 @@ button{font:inherit;color:inherit;border:0;background:none;padding:0;cursor:poin
'<h3># ' + esc(x.name) + '</h3><p>' + esc((D[x.id] || {}).desc || '') + '</p>' +
'<button type="button" class="jn" data-join="' + x.id + '"><svg class="ic"><use href="#i-plus"/></svg>参与话题</button></div>';
}).join('') + '</div>';
fh.innerHTML = '<h2>' + (catF ? CAT_NAME[catF] : '大家在聊') + '</h2>' + (catF ? '<small>' + CAT_SUB[catF] + '</small>' : '');
if (catF) { fhLevels(fh); return; }
fh.className = 'sh';
fh.innerHTML = '<h2>大家在聊</h2><small>' + T.filter(function (x) { return cntT(x.id); }).length + ' 个话题 · 共 ' + NOTES.length + ' 篇</small>';
return;
}
var d = D[t.id] || {};
el.innerHTML = '<div class="th k-' + t.cat + '"><i class="wm" aria-hidden="true">' + esc(t.g) + '</i><button type="button" class="x" data-t="" aria-label="看全部"><svg class="ic"><use href="#i-x"/></svg></button>' +
kbHTML(t.cat) + '<h2><em>#</em>' + esc(t.name) + '</h2><p>' + esc(d.desc || '') + '</p>' +
'<div class="bc"><button type="button" data-t="">' + kbHTML(t.cat).replace('</span>', ' ›</span>') + '</button><span>话题 · ' + cntT(t.id) + ' 篇</span></div>' +
'<h2><em>#</em>' + esc(t.name) + '</h2><p>' + esc(d.desc || '') + '</p>' +
'<div class="tf"><button type="button" class="join" data-join="' + t.id + '"><svg class="ic"><use href="#i-plus"/></svg>参与话题</button><button type="button" class="sw" data-all="1">换个话题</button></div></div>' + rewardHTML(true);
fh.innerHTML = '<h2>这个话题下的分享</h2>';
fhLevels(fh);
}
/* 11-02 用户:「选了家庭婚姻下一个话题,看着像这块就这几篇,层次感没出来」→ 选了分类 / 话题时,列表上方固定一行「分类 · N 个话题 · 共 M 篇」+ 该分类全部话题胶囊(带篇数),当前话题高亮,「全部」回分类 */
var cntT = function (id) { return NOTES.filter(function (n) { return n.t === id; }).length; };
function fhLevels(fh) {
var tl = hotList().filter(function (x) { return cntT(x.id); }), all = 0;
tl.forEach(function (x) { all += cntT(x.id); });
fh.className = 'lvw k-' + catF;
fh.innerHTML = '<div class="lv"><h2>' + CATS.filter(function (c) { return c[0] === catF; })[0][1] + '</h2><small>' + tl.length + ' 个话题 · 共 ' + all + ' 篇</small>' +
(cur ? '<button type="button" class="ba" data-t="">看这块全部 ›</button>' : '') + '</div>' +
'<div class="tcs"><button type="button" data-t=""' + (cur ? '' : ' class="on"') + '>全部<i>' + all + '</i></button>' +
tl.map(function (x) { return '<button type="button" data-t="' + x.id + '"' + (cur === x.id ? ' class="on"' : '') + '># ' + esc(x.name) + '<i>' + cntT(x.id) + '</i></button>'; }).join('') + '</div>';
var on = fh.querySelector('.tcs .on'); if (on && cur) fh.querySelector('.tcs').scrollLeft = Math.max(0, on.offsetLeft - 60);
}
function renderFeed() {
var list = cur ? NOTES.filter(function (n) { return n.t === cur; }) : MIXED.filter(function (n) { return inCat(TBY[n.t]); });
@@ -583,14 +635,20 @@ button{font:inherit;color:inherit;border:0;background:none;padding:0;cursor:poin
var cw = cols[0].clientWidth || 175;
wf.style.setProperty('--cw', cw + 'px');
/* 真瀑布流:每张卡放进当前更矮的那一列(逐张量高,标题一行/两行也算进去) */
var hs = [0, 0], tmp = document.createElement('div');
var hs = [0, 0], tmp = document.createElement('div'), STY = ['', 'ov', '', '', 'tg', '', '', 'ov', '', 'tg', '', ''];
list.forEach(function (n, k) {
tmp.innerHTML = cardHTML(n, !cur);
tmp.innerHTML = cardHTML(n, !cur, STY[k % STY.length]);
var el = tmp.firstChild; el.style.animationDelay = Math.min(k, 10) * 30 + 'ms';
var c = hs[0] <= hs[1] ? 0 : 1;
cols[c].appendChild(el);
hs[c] += el.offsetHeight + 8;
});
/* 话题下帖子看完,接着引到同分类其他话题,避免以为这块只有这几篇 */
var mo = $('#more'), tc = cur && TBY[cur];
if (tc) {
var rest = NOTES.filter(function (n) { return n.t !== cur && TBY[n.t].cat === tc.cat; }).length;
mo.innerHTML = '<button type="button" class="mo k-' + tc.cat + '" data-t=""><small>这个话题就这些啦</small><b>「' + CATS.filter(function (c) { return c[0] === tc.cat; })[0][1] + '」还有 ' + rest + ' 篇,去看看 ›</b></button>';
} else mo.innerHTML = '';
}
function setQuery(t, n) {
var q = new URLSearchParams(location.search);
@@ -615,6 +673,13 @@ button{font:inherit;color:inherit;border:0;background:none;padding:0;cursor:poin
catF = b.dataset.c; haptic();
selectTopic(''); /* 换分类回到该类「全部」,避免停在别类话题上 */
});
$('#fh').addEventListener('click', function (e) {
var b = e.target.closest('[data-t]'); if (!b || b.dataset.t === cur) return;
haptic(); var sl = $('#fh .tcs') ? $('#fh .tcs').scrollLeft : 0;
selectTopic(b.dataset.t, false);
var tc = $('#fh .tcs'); if (tc && !b.dataset.t) tc.scrollLeft = sl;
});
$('#more').addEventListener('click', function (e) { if (e.target.closest('[data-t]')) { haptic(); selectTopic(''); } });
$('#head').addEventListener('click', function (e) {
var j = e.target.closest('[data-join]'); if (j) { haptic(); openRule(j.dataset.join); return; }
if (e.target.closest('[data-rule]')) { openRule(''); return; }

View File

@@ -1,4 +1,4 @@
/* 孕妈广场 · 话题表(11-02 用户:标题口语化、别太负面 → 40 个话题名全部改成口语正向版,id 不变;2026-11-01 第三版:按用户给的选题清单,分 家庭 / 婚姻 / 职场 / 母婴 四块,每块 10 个;占位内容,纯前端)
/* 孕妈广场 · 话题表(11-02 用户:标题要更口语、说人话、像小红书 → 40 个话题名第二次改写;此前一版口语正向版,id 不变;2026-11-01 第三版:按用户给的选题清单,分 家庭 / 婚姻 / 职场 / 母婴 四块,每块 10 个;占位内容,纯前端)
首页「孕妈广场」横滑卡(js/app.js initPlaza)和广场页(guangchang/index.html)共用这一份。
⚠️ 篇数 / 在聊人数是占位数字,正式版接后端后替换;广场页底部有一行「示例占位」说明。
字段:id 话题 id(广场页 ?t=)· name 名称 · cat family 家庭 / marriage 婚姻 / work 职场 / baby 母婴 · g 封面水印字
@@ -11,46 +11,46 @@
baby: { c: ['#E0F3EE', '#B8E3D8'], ink: '#21705F' }
};
var L = [
['family', 'f01', '怀孕后家里的叮嘱一下子多起来了', '叨', 1],
['family', 'f02', '长辈的老经验,我是这样接话的', '老', 1],
['family', 'f01', '怀孕后,我妈的电话一天比一天多', '叨', 1],
['family', 'f02', '长辈那套老说法,我是这么接的', '老', 1],
['family', 'f03', '亲戚随口一句话,我琢磨了一下午', '琢'],
['family', 'f04', '两家人生活习惯不一样,慢慢磨合中', '齐'],
['family', 'f05', '家人关心太多的时候,我这样给自己留点空间', '空', 1],
['family', 'f06', '不住一起,也天天收到家人的叮嘱', '嘱'],
['family', 'f07', '两代人养胎观念不一样,各退一步就好', '代'],
['family', 'f08', '孕期在家安安静静,也挺好的', '静'],
['family', 'f09', '过节走亲戚,大家都围着我的肚子聊', '节'],
['family', 'f10', '娘家的惦记和婆家的操心,都是心意', '味'],
['marriage', 'm01', '怀孕以后,我们俩的家务分工变了', '分', 1],
['marriage', 'm02', '孕期那些小委屈,后来都说开了', '说'],
['marriage', 'm03', '他不太会安慰人,但一直在学', '学'],
['marriage', 'm04', '孕期夜里睡不着,他陪我聊到天亮', '夜'],
['marriage', 'm05', '怀孕后和老公拌嘴,后来这样和好', '和'],
['marriage', 'm06', '比起礼物,我更想要他一句「辛苦了」', '见', 1],
['marriage', 'm07', '怀孕后,浪漫变成了一起商量小事', '琐'],
['marriage', 'm08', '夫妻间那些「小事」,我们这样聊开', '小'],
['marriage', 'm09', '宝宝要来了,我们俩的日子也在慢慢变', '盼'],
['marriage', 'm10', '他终于知道,养胎不是在家休息', '懂', 1],
['work', 'w01', '怀孕上班,什么时候告诉领导合适', '言', 1],
['work', 'w02', '第一次请产检假,其实没那么难开口', '假', 1],
['work', 'w03', '上班孕妈,我是这样照顾好自己的', '职'],
['work', 'w04', '一边上班,一边惦记肚子里的小家伙', '惦'],
['work', 'w05', '上班时不舒服,我学会了及时说出来', '说'],
['work', 'w06', '同事们的关心,让我暖了一整天', '暖'],
['work', 'w07', '生完还能回原岗位吗?听听过来人怎么说', '岗'],
['work', 'w08', '把项目交出去那天,心里有点不舍', '交'],
['work', 'w09', '孕期上班,我给自己划了几条舒服的线', '界'],
['work', 'w10', '上班孕妈的一天,原来这么充实', '忙', 1],
['baby', 'b01', '孕期那些小不舒服,大家都是怎么缓解的', '缓', 1],
['baby', 'b02', '还没出生,宝宝的开销已经安排上了', '钱'],
['baby', 'b03', '育儿内容刷多了,我学会了挑着看', '挑', 1],
['baby', 'b04', '囤货这件事,过来人教我别囤太多', '囤'],
['baby', 'b05', '孕期体重,我是这样慢慢管住的', '重'],
['baby', 'b06', '每天数胎动,是我和宝宝的小默契', '动'],
['baby', 'b07', '顺产还是剖腹产,听听过来人的经历', '生'],
['baby', 'b08', '有点怕生孩子?我是这样慢慢放松的', '松', 1],
['baby', 'b09', '孕期忌口,哪些真要忌、哪些不用太纠结', '忌'],
['baby', 'b10', '怀孕以后,身体悄悄发生的那些变化', '变']
['family', 'f04', '娘家婆家习惯不一样,我夹在中间当翻译', '齐'],
['family', 'f05', '关心太多有点招架不住,我给自己留了点空间', '空', 1],
['family', 'f06', '不住一起,叮嘱照样每天准时到', '嘱'],
['family', 'f07', '我妈让我躺着养,医生说多走走', '代'],
['family', 'f08', '怀孕后我变宅了,在家待着也挺香', '静'],
['family', 'f09', '过年回家,全家围着我的肚子猜男女', '节'],
['family', 'f10', '我妈寄吃的,婆婆也寄吃的', '味'],
['marriage', 'm01', '怀孕后,家务换他来干了', '分', 1],
['marriage', 'm02', '憋着的小委屈,说出来就好了', '说'],
['marriage', 'm03', '他嘴笨,但一直在学怎么哄我', '学'],
['marriage', 'm04', '半夜睡不着,他陪我聊到天亮', '夜'],
['marriage', 'm05', '怀孕后跟老公拌嘴,我们这样和好', '和'],
['marriage', 'm06', '不要礼物,就想听他说句「辛苦了」', '见', 1],
['marriage', 'm07', '以前约会看电影,现在一起研究产检单', '琐'],
['marriage', 'm08', '挤牙膏这种小事,我们也能拌两句', '小'],
['marriage', 'm09', '宝宝快来了,我们俩的日子在悄悄变', '盼'],
['marriage', 'm10', '他终于知道,养胎不是躺着玩手机', '懂', 1],
['work', 'w01', '怀孕了,啥时候跟领导说', '言', 1],
['work', 'w02', '第一次请产检假,我在门口转了三圈', '假', 1],
['work', 'w03', '上班孕妈的自救小妙招', '职'],
['work', 'w04', '开会的时候,宝宝踢了我一脚', '惦'],
['work', 'w05', '上班不舒服,别硬撑,说出来', '说'],
['work', 'w06', '同事一杯热水,暖了我一整天', '暖'],
['work', 'w07', '生完回去,位置还是我的吗?过来人说说', '岗'],
['work', 'w08', '把带了两年的项目交出去那天', '交'],
['work', 'w09', '怀孕上班,我给自己定了几条规矩', '界'],
['work', 'w10', '上班孕妈的一天,比你想的忙', '忙', 1],
['baby', 'b01', '孕吐、烧心、腿抽筋,大家都怎么缓过来的', '缓', 1],
['baby', 'b02', '宝宝还没生,钱已经花出去不少', '钱'],
['baby', 'b03', '育儿攻略刷多了,我学会挑着看', '挑', 1],
['baby', 'b04', '囤货过来人:这些真用不上', '囤'],
['baby', 'b05', '孕期体重,我这样一点点稳住的', '重'],
['baby', 'b06', '每天数胎动,是我和宝宝的暗号', '动'],
['baby', 'b07', '顺产还是剖,过来人说说真实感受', '生'],
['baby', 'b08', '快生了心里没底?听听过来人怎么说', '松', 1],
['baby', 'b09', '这也不能吃那也不能吃?其实没那么多讲究', '忌'],
['baby', 'b10', '怀孕后身体的这些变化,你中了几个', '变']
];
/* 首页横滑卡的照片(11-01 用户:首页广场也放一些真实图):取该话题第一篇照片笔记的封面,图在 guangchang/img/;data.js 太大首页不加载,所以抄一份到这里,换图后要同步 */
var PH = {"f01":"c2807377d0dd.jpg","f02":"5cc12b5ca19d.jpg","f03":"c1aeeff8c596.jpg","f04":"bcfe0afdde7c.jpg","f05":"f884c0209db9.jpg","f06":"cbd9db78f705.jpg","f07":"c04f5a22e224.jpg","f08":"2cac4ef6500f.jpg","f09":"8f974da03cfa.jpg","f10":"b2b5e91a4553.jpg","m01":"e0118088acf0.jpg","m02":"0b5b852dd448.jpg","m03":"32744c66d8cb.jpg","m04":"dc0e74c1f385.jpg","m05":"ec0314894337.jpg","m06":"eb20a272d965.jpg","m07":"14ce1f9686ee.jpg","m08":"5db0ce8c9d52.jpg","m09":"9ca7ad933408.jpg","m10":"6c2c8052d6f4.jpg","w01":"874abee3d741.jpg","w02":"41ceb30d229a.jpg","w03":"f3f33bbeba33.jpg","w04":"6b374c98a040.jpg","w05":"bd8a5ddc39f5.jpg","w06":"de364ef85902.jpg","w07":"4f3ee7186428.jpg","w08":"cf9253836cf2.jpg","w09":"209084ea24fb.jpg","w10":"9e1feb87c814.jpg","b01":"63659dd16d92.jpg","b02":"c5443c035a02.jpg","b03":"15397c17240a.jpg","b04":"269846ead50f.jpg","b05":"81541ebb328d.jpg","b06":"1bff7a1aad8e.jpg","b07":"6440eaf30b5a.jpg","b08":"37815563fb9a.jpg","b09":"b0910125c744.jpg","b10":"5b7ba031e33d.jpg"};