Lịch sử tái chế thời trang: các nhà mốt thế kỷ 19 đã biến đổi, nâng cấp và lưu truyền như thế nào.

Tác phẩm này được chuyển thể từ Dressing Up: Women Influcting French Fashion (MIT Press), được xuất bản lần đầu bởi MIT News Reader và được phép đăng lại tại đây.
Các nhà lãnh đạo thời trang tiếp tục đẩy mạnh nỗ lực của họ sau khi COP26 nhiệt thành kêu gọi thế giới hành động về biến đổi khí hậu. tác động của nó đối với con người và hành tinh thông qua việc sử dụng năng lượng tái tạo và vật liệu có nguồn gốc đạo đức, trong số hàng trăm sáng kiến ​​khác gây thiệt hại. ”Các công ty tiết kiệm ThredUp (thành lập năm 2009), Poshmark (thành lập năm 2011) và The RealReal (thành lập năm 2011).
Đồng thời, các phương tiện truyền thông thời trang, và WWD nói riêng, đang theo dõi các tuyên bố gian dối của các thương hiệu xa xỉ như Coach về những hành động được cho là có ý thức đã được phát hiện là phá hủy một lượng lớn túi xách không hoàn hảo thay vì sửa chữa hoặc thay thế chúng. Nhà báo thời trang Amy Odell, tác giả của bản tin độc lập “Back Row”, tập trung vào những tuyên bố sai lầm của công ty. nghiêm túc, mặc dù họ sẽ sớm phải đối mặt với các quy định khắt khe hơn ở Mỹ ". Cô lưu ý rằng" năm nay FTC sẽ sửa đổi Hướng dẫn "xanh" của mình, "nhằm mục đích giúp các nhà tiếp thị tránh đưa ra các tuyên bố về môi trường gây hiểu lầm cho người tiêu dùng."
Với xu hướng “mua sắm dựa trên giá trị” và “tính bền vững của việc lựa chọn sản phẩm” đang gia tăng, bây giờ là thời điểm cơ hội để xem những cách thực hành này cộng hưởng với các hoạt động trong quá khứ như thế nào. Félix và House of Worth) và những khách hàng quốc tế hiểu biết của họ? Chúng ta có thể học được gì từ cam kết của thế kỷ 19 về khả năng tái sử dụng và nâng cấp, chất lượng hơn số lượng?
Vào cuối thế kỷ 19, thời trang Pháp là món đồ xa xỉ hàng đầu của phụ nữ Mỹ giàu có. Họ làm với những món đồ trang sức có giá trị nhất của mình. Như nhà sử học và giám tuyển Kate Strastin đã mô tả trong Inside the Royal Wardrobe: The Dress History of Queen Alexandra, Alexandra, Công nương xứ Wales, đã nhờ thợ may Lady Liz và công ty của cô ấy biến chiếc váy cưới do Anh sản xuất thành váy dạ hội. Vào tháng 3 năm 1863, vài ngày sau cuộc hôn nhân của cô với Edward VII.quặng tại Waverley Ball ở London năm 1871. Chiếc váy mang nhãn hiệu Elise và ngày nay được lưu giữ trong Bộ sưu tập Trang phục Nghi lễ Hoàng gia tại Cung điện Kensington.
Mary Endicott Chamberlain đã mặc cùng một chiếc váy lụa màu xanh nhạt của House of Worth với ren, cườm và nhung đến hai sự kiện cung đình riêng biệt ở London vào tháng 3 và tháng 7 năm 1893. và lần thứ hai là đám cưới của Công tước và Nữ công tước xứ York (sau này là Vua George V và Nữ hoàng Mary). cổ áo trên một chiếc váy sa tanh màu đỏ.
Vào đầu những năm 2000, phụ nữ thuộc tầng lớp thượng lưu ở Mỹ đã áp dụng tiền lệ hoàng gia về việc thay đổi trang phục. Hiện đang nằm trong bộ sưu tập của Hiệp hội Lịch sử Chicago, có dấu hiệu được mặc lại.
Trong cuốn hồi ký của mình, Alva Vanderbilt Belmont kể lại rằng cô và các anh chị em của mình đã quý trọng chiếc khăn choàng lông lạc đà như thế nào. Tương tự như vậy, vào năm 1883, nhà từ thiện Caroline Louisa Williams, người Pháp ở Boston, Massachusetts, đã mua một màu xanh đậm. Bộ đồ nhung với trang trí lông chinchilla và nhãn hiệu Maison Lipman với giá 1.600 franc. Thương hiệu do Madame Camille Lipman điều hành, hoạt động ở Paris vào những năm 1880 và khách hàng của nó bao gồm Maria Pia, Nữ hoàng Bồ Đào Nha. 37 năm sau, Alice Williams Pearse , một hậu duệ của người Pháp, được chụp trong một chiếc áo choàng và túi chinchilla, không có áo khoác, tại một sự kiện kỷ niệm Tu chính án thứ mười chín, mà Tu chính án đã cho phụ nữ quyền bỏ phiếu.istoric New England.Orme Wilson Jr. và Richard Thornton Wilson III tặng một bộ sưu tập áo choàng cho Bảo tàng Nghệ thuật Metropolitan của Houses of Worth, Doucet và Paquin, cung cấp thêm cái nhìn về cách thời trang cao cấp đã phát triển thông qua chi nhánh của một gia đình Feel Anh em nhà Wilson là con trai của William Buckhouse Astor Jr. và Carrie, con gái của Caroline Astor.
Đối với các sự kiện như Centennial Ball được tổ chức trên khắp đất nước vào năm 1876, phụ nữ đã đặt những chiếc áo choàng bắt chước những chiếc áo choàng mà tổ tiên họ đã mặc trong các bức ảnh chân dung. Một số phụ nữ đã sử dụng các mảnh từ bộ sưu tập ren cổ cá nhân của họ trong nhiều dịp khác nhau, cũng như các nhà Astors, những người đã sưu tập ren của người Flemish và Pháp thế kỷ 18, một số trong số đó đã tồn tại. 1878, Caroline Astor tự hào khoác lên mình chiếc áo choàng nhung đen có viền ren 200 năm tuổi.
Một cách khác để tái sử dụng là thông qua rác từ chủ sở hữu đến người giúp việc của họ hoặc những người nhận từ thiện. Như Diana de Marley (tác giả cuốn “Lịch sử thời trang cao cấp”) và Kate Strastin đã chỉ ra, hoạt động này là sản phẩm của thông lệ hoàng gia châu Âu về việc giao trang phục cho người hầu gái, Nữ hoàng Victoria và Công nương Alex cũng vậy. Sandra.Wales: Một dòng chảy khác là bán váy cho những người buôn bán đồ cũ, hậu duệ của nghề buôn bán quần áo đã qua sử dụng lâu đời ở Châu Âu. Ở Paris, nghề buôn bán này đã có từ thế kỷ 13, đến thế kỷ 18 thì tập trung quanh Les Halles. Vào thế kỷ 19, các thành viên của gia đình hoàng gia sẽ bán cho một số nhà môi giới quần áo.
Kể từ đầu thế kỷ 18, nước Anh cũng đã có lịch sử bán quần áo hoàng gia và quý tộc trên các sàn giao dịch quần áo cũ ở Đông London, như Jennifer Le Zotte kể lại trong cuốn sách Từ thiện chí đến Grunge của cô. buôn bán tay ở Lower East Side được thúc đẩy bởi sự xuất hiện của một số lượng lớn những người nhập cư châu Âu gần đây từ năm 1880 đến năm 1920, chủ yếu do người Do Thái có kinh nghiệm bán hàng rong và may đo. Vì những người bán hàng rong dường như thường xuyên bị cấm mua quần áo trong các đợt bán hàng từ thiện. doanh số bán hàng.
Khi ca sĩ opera Emma Abbott qua đời vào năm 1891, nữ diễn viên Jeanne Kimball đã mua chiếc váy Worth và Félix mà Abbott đã mặc ở Carmen vài năm trước đó. Khi Elena của Montenegro không thể sử dụng một số chiếc áo choàng Félix mới trong một thời gian để tang nhà vua Ý Umberto I bị giết bởi những người theo chủ nghĩa vô chính phủ, nhà thiết kế lần đầu tiên đưa chúng vào Triển lãm Phổ thông ở Paris. Trưng bày năm 1900. Trong buổi triển lãm, Francesca Redding rất ngưỡng mộ chiếc áo choàng lụa và voan xanh cuộn lá, đã mua nó và nhanh chóng đưa nó lên sân khấu. Khách hàng của rạp hát Eves sau cái chết của cô ấy và được mặc bởi nhiều nữ diễn viên, theo báo cáo.Cuối cùng, nữ diễn viên Sadie Martinot đã bán chiếc váy sân khấu Worth và Félix của riêng mình trong cuộc đấu giá vào tháng 5 năm 1894 với giá 35.000 đô la (hơn 1,1 triệu đô la ngày nay). năm 1892, "với váy, váy và quần áo Basque treo sâu ba hoặc bốn tầng".
Người mua đồ cũ ở các cửa hàng đồ cũ là phụ nữ trung lưu có quần áo dùng được trong nhiều năm. Đặc biệt, tại World Columbia Show ở Chicago Suits đã tổ chức sự kiện này trong cuộc khủng hoảng tài chính quốc gia năm 1893. Với việc lập kế hoạch và bảo dưỡng cẩn thận, quần áo có thể được bảo quản và mặc thường xuyên. đồ lót nhiều lớp hoạt động như một rào cản giữa dầu và chất bẩn của cơ thể và phần lớn của quần áo.
Như Strastin chỉ ra, chiếc váy của Nữ hoàng Alexandra đã được Hiệp hội Nghệ thuật Hoa Kỳ và Phòng trưng bày Nghệ thuật Anderson bán đấu giá vào năm 1937. , và một phần tư trong số đó đã được Erin Lewison mua và bán tại Bảo tàng Nghệ thuật Metropolitan. Trường Quần áo được thành lập.
Mặc dù những vật liệu này có ít nhận thức xã hội trong quan niệm ngày nay - lông thú, lông của các loài chim quý hiếm, và thậm chí những chiếc mũ có gắn các loài sinh vật phân loại là mong muốn - chúng ta có thể đánh giá cao thứ gì đó vốn có trong thời kỳ đó, các phương pháp tái sử dụng được chấp nhận và cái mà ngày nay chúng ta gọi là nâng cấp. Sự xa xỉ của thời trang Pháp mà họ mua, phụ nữ Mỹ đã mang đến một chủ nghĩa thực dụng nhất định cho thị trường. cuối thế kỷ XIX, trong các giới cao nhất của xã hội, không có gì để xóa bỏ sự kỳ thị.
Để mượn thuật ngữ của công ty giáo dục thời trang Motif, những phụ nữ Mỹ mua thời trang của Pháp vào cuối thế kỷ 19 đã giới thiệu một “mô hình tròn trong đó trang phục được thiết kế và phát triển với mục đích sử dụng tiếp theo”. .
“)); Var p = b (h [i.size_id] .split (“ x ”). Map (function (e) {return Number (e)}), 2); f.width = p [0], f.height = p [1]} f.rubiconTargeting = (Array.isArray (i.targeting)? i.targeting: []). Reduce (function (e, t) {return e [t.key] = t. giá trị [0], e}, {rpfl_elemid: l.adUnitCode}), t.push (f)} else Object (r.logError) (“Rubicon: bidRequest 在 索引 位置 未定义:”. concat (o), n , e); return t}, []). sort (function (e, t) {return (t.cpm || 0) - (e.cpm || 0)})}, getUserSyncs: function (e, t , n, r) {if (! u && e.iframeEnabled) {var i = ”"; return n && ”string” == typeof n.consentString && (“boolean” == typeof n.gdprApplies? i + = ”? gdpr =”. concat (数字 (n.gdprApplies), ”& gdpr_consent =”). concat (n.consentString): i + = ”? gdpr_consent =”. concat (n.consentString)), r && (i + = ”“. concat (i? ” & “:”? ”,” Us_privacy = ”) .concat (encodeURIComponent (r))), U =! 0, {type:” iframe ”, url:” https: // ”.concat (y.syncHost || ”Eus”, ”. Rubiconproject.com/usync.html[)+i}}},transformBidParams:osystem(e,t){return Object (r.convertTypes) ({accountId:” number ”, siteId:” number ” , zoneId: ”number”}, e)}}; 函数 _ (e, t) {var n = obgetConfig (“pageUrl”); return e.params.referrer? n = e.params.referrer: n || (n = t.refererInfo.referer), e.params.secure? n.replace (/ ^ http: / i, ”https:”): n } 函数 j (e) {var t, n = document.getElementById (e.adUnitCode); (t = n.querySelector (“div [id ^ = 'google_ads']“)) && t.style.setProperty (“display” , ”None”), function (e) {var t = e.querySelector (“script [id ^ = 'sas_script']“), n = t && t.nextSibling; n && ”iframe” === n.localName && n.style. setProperty (“display”, ”none”)} (n); var r = e.renderer.getConfig (); e.renderer.push (function () {window.MagniteApex.renderAd ({width: e.width, height : e.height, growUrl: e.vastUrl, vị trí: {attachmentTo: ”#”. concat (e.adUnitCode), align: r.align || ”center”, position: r .position || ”append”}, closeButton: r.closeButton ||! 1, label: r.label || void 0, sập: r.collapse ||! 0})})} 函数 S (e, t) {var n = e.params; if (“Video” === t) {var i = []; return n.video && n.video.playerWidth && n.video.playerHeight? I = [n.video.playerWidth, n.video .playerHeight]: Array.isArray (Đối tượng (r.deepAccess) (e, ”mediaTypes.video.playerSize”)) && 1 === e.mediaTypes.video.playerSize.length? i = e.mediaTypes.video.playerSize [0]: Array.isArray (e.sizes) && e.sizes.length> 0 && Array.isArray (e.sizes [0]) && e.sizes [0] .length> 1 && (i = e.sizes [ 0]), i} var o = []; return Array.isArray (n.sizes)? O = n.sizes: void 0! == Object (r.deepAccess) (e, ”mediaTypes.banner.sizes”) ? o = A (e.mediaTypes.banner.sizes): Array.isArray (e.size) && e.sizes.length> 0? o = A (e.sizes): Object (r.logWarn) (“Rubicon: 没有设置 或 找到 大小 ”), w (o)} function E (e, t, n) {var i = {user: {ext: {data: f ({}, e .params.visitor)}}, site: {ext: {data: f ({}, e.params.inventory)}}}; e.params.keywords && (i.site.keywords = Object (r.isArray) (e.params.keywords)? e.params .keywords.join (“,”): e.params.keywords); var c = Object (r.mergeDeep) ({}, obgetConfig (“ortb2 ″) || {}, i), s = Object (r. deepAccess) (e.ortb2Imp, ”ext.data”) || {}, u = {user: [4], site: [1,2,5,6]}, d = {user: ”tg_v.”, site: ”tg_i.”, adserver: ”tg_i.dfp_ad_unit_code”, pbadslot: ”tg_i.pbadslot”, keywords: ”kw”}, l = function (e, t, n) {if (“data” === t && Array .isArray (e)) return e.filter (function (e) {return e.segment && Object (r.deepAccess) (e, ”ext.segtax”) && u [n] && - 1! == u [n] .indexOf (Object (r.deepAccess) (e, ”ext.segtax”))}). map (function (e) {var t = e.segment.filter (function (e) {return e.id}). Reduce (function (e, t) {return e.push (t.id), e}, []); if (t.length> 0) return t.toString ()}). toString (); if (“object”! == v (e) || Array.isArray (e)) {if (void 0! == e) return Array.isArray (e)? e.filter (function (e) {if (“object”! == v (e) && void 0! == e) return e.toString (); Object (r.logWarn) (“Rubicon:过滤 值 : ”, e,” cho key ”, t,” : 期望值 为 字符串 、 整数 或 字符串 / 整数 数组 ”)}). ToString (): e.toString ()} else Object (r .logWarn) (“Rubicon: Khóa FPD đã lọc:“, t, ”: Giá trị mong đợi là chuỗi, số nguyên hoặc một mảng chuỗi / int”)}, p = function (e, t, r) {var i =! (Đối số .length> 3 && void 0! == architects [3]) || đối số [3], o = l (e, r, t), a = d [r] && i? ”". concat (d [r]): ”Data” === r? ”". Concat (d [t], "iab"): "". Concat (d [t]). Concat (r); n [a] = n [a]? N [a] .concat (“,”, o): o}; Object.keys (s) .forEach (function (e) {“adserver” === e? ["name", "adslot"] .forEach (函数 (t) {s [e] [t] && (s [e] [t] = s [e] [t] .toString (). Replace (/ ^ \ / + /, ”"))}): ”Pbadslot” === e && (s [e] = s [e] .toString (). Replace (/ ^ \ / + /, ”"))}), t === ab? (["Site", "người dùng"]. forEach (function (e) {Object.keys (c [e]). forEach (function (t) {“网站” === e && ”内容” === t && c [e] [t]. data? p (c [e] [t] .data, e, ”data”): ”ext”! == t? p (c [e] [t], e, t): c [e] [t ] .data && Object.keys (c [e] .ext.data) .forEach (function (t) {p (c [e]. ext.data [t], e, t,! 1)})})}) , Object.keys (các).forEach (function (e) {“adserver" === e? p (s [e].adslot, name, e): p (s [e], ”site”, e)})) :( Object.keys (s) .length && Object (r.mergeDeep) (n.imp [0] .ext, {data : s}), Object (r.mergeDeep) (n, c))} function A (e) {return Object (r.parseSizesInput) (e) .reduce (function (e, t) {var n = parseInt (h [t], 10); return n && e.push (n), e}, [])} 函数 I (e) {return ”object” === v (Object (r.deepAccess) (e, ”params.video “)) && void 0! == Object (r.deepAccess) (e,” mediaTypes. ”. Concat (ad))} 函数 T (e) {var t = architects.length> 1 && void 0! == đối số [1] && đối số [1]; return I (e)? - 1 === ["outstream", "instream"]. indexOf (Object (r.deepAccess) (e, ”mediaTypes.”. concat (ad, ”. context” )))? void (t && Object (r.logError) (“Rubicon: mediaTypes.video.context 必须 是 外流 或 内 流”)): S (e, ”video”). length-1 || i> -1? -1 === r? 1: -1 === i? -1: ri: en})} 函数 x (e) {var t = parseInt (Object (r.deepAccess) (e, ”params.video. size_id ”)); 返回 isNaN (t)?“Outstream” === Object (r.deepAccess) (e, ”mediaTypes.”. Concat (ad, ”. Context”))? 203: 201: t} function D (e) {return {range: {low: [{tối đa: 5, khoảng tăng: .5}], trung bình: [{max: 20, tăng: .1}], cao: [{max: 20, tăng: .01}], tự động: [{max: 5 , số gia: .05}, {tối thiểu: 5, tối đa: 10, số gia: .1}, {tối thiểu: 10, tối đa: 20, khoảng tăng: .5}], đậm đặc: [{max: 3, số gia: 0,01 }, {tối thiểu: 3, tối đa: 8, gia số: .05}, {tối thiểu: 8, tối đa: 20, gia số: .5}], tùy chỉnh: e.getConfig (“customPriceBucket”) && e.getConfig (“customPriceBucket” ) .buckets} [e.getConfig ("priceGranularity")]}} hàm R (e) {var t =! 0, n = Object.prototype.toString.call ([]), i = {mimes: n, protocols : n, tuyến tính: Object.prototype.toString.call (0), api: n}; 返回 Object.keys (i) .forEach (function (n) {Object.prototype.toString.call (Object (r.deepAccess)) (e, ”mediaTypes.video.” + n))! == i [n] && (t =! 1, Object (r.logError) (“Rubicon: mediaTypes.video.” + n + ”是 必需 的 , 并且必须 是 类型 : ”+ i [n]))}), t} function k (e) {var t =! 1, n = [" asi "," sid "," hp "]; return e.nodes? ((t = e.nodes.reduce (function (e, t) {return e? n.every (function (e) {return t.hasOwnProperty (e)}): e},! 0)) || Object (r.logError) (“Rubicon: thiếu thông số schain bắt buộc”), t): t} function P (e, t) {return ”rp_schain” === e? ”rp_schain =”. concat (t): ” ".concat (e,” = ”). concat (encodeURIComponent (t))} var U =! 1; Object (i.registerBidder) (O)}}, [787]), pbjsChunk ([107], {875 : function (e, t, n) {e.exports = n (876)}, 876: function (e, t, n) {Object.defineProperty (t, ”__esModule”, {value:! 0}), nd (t, ”tripleliftAdapterSpec”, function () {return m}); var r = n (0), i = n (2), o = n (1), a = n (3); function c () { return (c = Object.assign || function (e) {for (var t = 1; te.length) && (t = e.length); for (var n = 0, r = new Array (t); n0 && (t.user = {ext: {eids: o}}); var s = function (e, t) {var n = {}; return Object (r.isEmpty) (e) || (n.schain = d ({}, e)), Object (r.isEmpty) (t) || (n.fpd = d ({}, t)), n} (n, i); return Object (r.isEmpty) (s ) || (t.ext = s), t} (e); if (n = Object (r.tryAppendQueryString) (n, ”lib”, ”prebid”), n = Object (r.tryAppendQueryString) (n, ”V”, ”6.2.0 ″), t && t.refererInfo) {var o = t.refererInfo.referer;n = Object (r.tryAppendQueryString) (n, ”reference”, o)} trả về t && t.timeout && (n = Object (r.tryAppendQueryString) (n, ”tmax”, t.timeout)), t && t.gdprConsent && (void 0 ! == t.gdprConsent.gdprApplies && (b = t.gdprConsent.gdprApplies, n = Object (r.tryAppendQueryString) (n, ”gdpr”, b.toString ())), void 0! == t.gdprConsent.consentString && (g = t.gdprConsent.consentString, n = Object (r.tryAppendQueryString) (n, ”cmp_cs”, g))), t && t.uspConsent && (n = Object (r.tryAppendQueryString) (n, ”us_privacy”, t. uspConsent)),! 0 === abgetConfig (“coppa”) && (n = Object (r.tryAppendQueryString) (n, ”coppa”,! 0)), n.lastIndexOf (“&”) === n.length-1 && (n = n.substring (0, n.length-1)), Object (r.logMessage) (“yêu cầu tlCall được tạo:“ + n), {method: ”POST”, url: n, data: i, bidderRequest: t}} ,pretResponse: function (e, t) {var n = t.bidderRequest; return (e.body.bids || []). map (function (e) {return function (e, t ) {var n = {}, r = t.width || 1, i = t.height || 1, o = t.deal_id || ”", a = t.crid || ”", c = e. giá thầu [t.imp_id]; return 0! = t.cpm && t.ad && (n = {requestId: c.bidId, cpm: t.cpm, width: r, height: i, netRevenue:! 0, ad: t.ad , creativeId: a, dealId: o, currency: ”USD”, ttl: 300, tl_source: t.tl_source, meta: {}}, v (c) && (n.vastXml = t.ad, n.mediaType = ” video ”, n.ttl = 3600), t.advertiser_name && (n.meta.advertiserName = t.advertiser_name), t.adomain && t.adomain.length && (n.meta.advertiserDomains = t.adomain), t .tl_source &&” hdx ” == t.tl_source && (n.meta.mediaType = ”banner”), t.tl_source && ”tlx” == t.tl_source && (n.meta.mediaType = ”native”)), n} (n, e)}) }, getUserSyncs: function (e, t, n, i) {var o = function (e) {if (e) return e.iframeEnabled? ”iframe”: e.pixelEnabled? ”image”: void 0} (e) ; if (o) {var a = ”https://eb2.3lift.com/sync?”; return ”hình ảnh”=== o && (a = Object (r.tryAppendQueryString) (a, px ”, 1), a = Object (r.tryAppendQueryString) (a,” src ”,” prebid ”)), null! == g && (a = Object (r.tryAppendQueryString) (a, ”gdpr”, b), a = Object (r.tryAppendQueryString) (a, ”cmp_cs”, g)), i && (a = Object (r.tryAppendQueryString) (a, ” us_privacy ”, i)), [{type: o, url: a}]}}}; function v (e) {return !! e.mediaTypes.video && !! e.mediaTypes.video.context &&” instream ”== = e.mediaTypes.video.context.toLowerCase ()} function y (e) {var t = null; if (“function” == typeof e.getFloor) {var n = e.getFloor ({currency: ”USD” , mediaType: v (e)? ”video”: ”banner”, size: ”*”}); ”object”! == s (n) || ”USD”! == n.currency || isNaN (parseFloat (n.floor)) || (t = parseFloat (n.floor))} trả về null! == t? T: e.params.floor} 函数h (e, t) {Object (r.isEmpty) (t) || Object.keys (t) .forEach (function (n) {null! = t [n] && (e [n] = t [n] )})} 函数 O (e, t, n, r) {return e.map (function (e) {return function (t) {return t && t.userId && t.userId [e]}} (t)). Filter ( _ (t)). map (function (e, t) {return function (n) {return {source: e, uids: [{id: n.id? n.id: n, ext: {rtiPartner: t} }]}}} (n, r))} var _ = function (e) {返回 函数 (t, n, i) {var o = !! t && (Object (r.isStr) (t)? !! t : Đối tượng (r.isPlainObject) (t) &&! Đối tượng (r.isArray) (t) &&! Đối tượng (r.isEmpty) (t) && t.id && Đối tượng (r.isStr) (t.id) && !! t. id); return o || void 0 === i [0] || Object (r.logWarn) (“Triplelift: không hợp lệ“ .concat (e, ”định dạng userId”)), o}}; function j (e ) {return e.filter (S) .map (function (e) {re 转 {w: e [0], h: e [1]}})} 函数 S (e) {return 2 === e. length && ”number” == typeof e [0] && ”number” == typeof e [1]} Đối tượng (o.registerBidder) (m)}}, [875]), pbjsChunk ([11], {15: function (e, t, n) {tb = function (e) {var t = []; for (var n in e) if (e.hasOwnProperty (n)) if (“pubProvidedId” === n) t = t .concat (e.pubProvidedId); else {var r = o (e [n], n); r && t.push (r)} return t}, ta = function (e) {var t = []; return e.filter (function (e) {return Object (r.isPlainObject) (e.idObj) && Object.keys (e.idObj) .length}). forEach (function (e) {Object.keys (e.idObj) .forEach (function (n) {Object (r.deepAccess) (e, ”config.bidders“) && Array.isArray (e.config.bidders) && Object (r.deepAccess) (i, n + ”. source”) && t.push ({source : i [n] .source, bidders: e.config.bidders})})}), t}; var r = n (0), i = {ÝIqId: {source: ”intentiq.com”, atype: 1 }, naveggId: {source: ”navegg.com”, atype: 1}, pubcid: {source: ”pubcid.org”, atype: 1}, tdid: {source: ”adserver.org”, atype: 1, getUidExt : function () {return {rtiPartner: ”TDID”}}}, id5id: {getValue: function (e) {return e.uid}, source: ”id5-sync.com”, atype: 1, getUidExt: function ( e) {if (e.ext) return e.ext}}, parrableId: {source: ”parrable.com”, atype: 1, getValue: function (e) {return e.eid? e.eid: e.ccpaOptout ? ”": Null}, getUidExt: function (e) {var t = Object (r.pick) (e, ["ibaOptout", "ccpaOptout"]); if (Object.keys (t) .length) return t }}, idl_env: {source: ”ganamp.com ”, atype: 3}, lipb: {getValue: function (e) {return e.lipbid}, source:” liveintent.com ”, atype: 3, getEidExt: function (e) {if (Array.isArray (e.searies) && e.searies.length) trả về {phân khúc: e.searies}}}, britepoolid: {source: ”britepool.com”, atype: 3}, dmdId: {source: ”hcn.health”, atype : 3}, lotamePanoramaId: {source: ”crwdcntrl.net”, atype: 1}, standardoId: {source: ”aimo.com”, atype: 1}, merkleId: {source: ”merkleinc.com ”, atype: 3, getValue: function (e) {return e.id}, getUidExt: function (e) {return e && e.keyID? {keyID: e.keyID}: void 0}}, netId: {source: “Netid.de”, atype: 1}, IDP: {source: ”zeotap.com”, atype: 1}, haloId: {source: ”audigent.com”, atype: 1}, quantcastId: {source: ”quantcast .com ”, atype: 1}, nextrollId: {source:” nextroll.com ”, atype: 1}, idx: {source:” idx.lat ”, atype: 1}, Connectid: {来源 :“ verizonmedia.com ”, Atype : 3} , fabrickId : {来源 :“ neustar.biz ”, atype : 1} , mwOpenLinkId : {来源 :“ mediawallahscript.com ”, atype : 1} , tapadId : {来源 :“ tapad.com ”, atype: 1}, novatiq: {getValue: function (e) {return e.snowflake}, source: ”novatiq.com”, atype: 1}, uid2: {source: ”uidapi.com”, atype: 3, getValue : function (e) {return e.id}}, dapId: {source: ”akamai.com”, atype: 1}, deepintentId: {source: ”deepintent.com”, atype: 3}, AdmixerId: {source: ”Admixer.net”, atype: 3}, adtelligentId: {source: ”adtelligent.com”, atype: 3}, amxId: {source: ”amxrtb.com”, atype: 1}, publinkId: {source: ”epsilon .com ”, atype: 3}, kpuid: {source:” kpuid.com ”, atype: 3}, imuid: {source: ”osystemmerger.com”, atype: 1}, connectId: {来源: ”yahoo.com ”, atype: 3}}; 函数 o (e, t) {var n = i [t]; if (n && e) {var o = {}; o.source = n.source; var a = Object (r.isFn) (n.getValue)? n.getValue (e): e; if (Object (r.isStr) (a)) {var c = {id: a, atype: n.atype}; if ( Đối tượng (r.isFn) (n.getUidExt)) {var s = n.getUidExt (e); s && (c.ext = s)} if (o.uids = [c], Object (r.isFn) (n .getEidExt)) {var u = n.getEidExt (e); u && (o.ext = u)} 返回 o}} return null}}, 897: function (e, t, n) {e.exports = n ( 898)}, 898: function (e, t, n) {Object.defineProperty (t, ”__ esModule”, {value:! 0}), nd (t, ”PBJS_USER_ID_OPTOUT_NAME”, function () {return w}), nd (t, ”coreStorage”, function () {return x}), nd (t, ”syncDelay”, function () {return _}), nd (t, ”radiusDelay”, function () {return j}) , t.setSubmoduleRegistry = function (e) {U = e}, t.setStoredValue = B, t.setStoredConsentData = L, t .findRootDomain = V, t.requestBidsHook = K, nd (t, "validateGdprEnforcement", function () {return Y}), t.attachIdSystem = te, t.init = ne; var r = n (11), i = nn (r), o = n (3), a = n (10), c = nn (a), s = n (14), u = n (8), d = n (5), l = nn (d), f = n (9), p = n (15), b = n ( 7), g = n (0), m = n (12), v = nn (m); 函数 y (e, t) {(null == t || t> e.length) && (t = e .length); cho(var n = 0, r = new Array (t); n1 && void 0! == 参数 [1]? objects [1]: void 0, r = n? ”". concat (e.name, ”_”). concat (n): e.name; try {if (e.type === A) t = x.getCookie (r); else if (e.type === I) {var i = x.getDataFromLocalStorage (“ ”.Concat (e.name,” _ exp ”));” "=== i? T = x.getDataFromLocalStorage (r): i && new Date (i) .getTime () - Date.now ()> 0 && (t = decodeURIComponent (x.getDataFromLocalStorage (r)))} ”string” == typeof t && ”{“ === t.trim (). charAt (0) && (t = JSON.parse (t))} catch (e) {Object (g.logError) (e)} return t} function q (e) {var t = {agreeString: ”", gdprApplies:! 1, apiVersion: 0}; return e && (t.consentString = e.consentString, t .gdprApplies = vddprApplies, t.apiVersion = e.apiVersion), Object (g.cyrb53Hash) (JSON.stringify (t))} 函数 L (e) {try {var t = new Date (Date.now ( ) + 864e5 * C) .toUTCString (); x.setCookie (T, q (e), t, ”Lax”)} catch (e) {Object (g.logError) (e)}} 函数 F () {试试 {return x.getCookie (T)} catch (e) {Object (g.logError) (e)}} 函数 z (e) {if (e && ”boolean” == typeof, ví dụ :dprApplies && egdprApplies) {if (!e.consentString) return! 1; if (1 === e.apiVersion &&! 1 === Object (g.deepAccess) (e, "providerorData. purposeConsents.1 ″)) return! 1; if (2 === e.apiVersion &&! 1 === Object (g.deepAccess) (e, ”vendorData.purpose.consents.1 ″)) return! 1} return! 0} function V () {var e = objects.length> 0 && void 0 ! == đối số [0]? đối số [0]: window.location.hostname; if (! x.cookiesAreEnabled ()) return e; var t, n, r = e.split (“.”); if (2 == r.length) re 转 e; var i = -2, o = ”_ rdc” .concat (Date.now ()), a = ”có thể ghi”; do {t = r.slice (i) .join ( “.”); Var c = new Date (Object (g.timestamp) () + 1e4) .toUTCString (); x.setCookie (o, a, c, ”Lax”, t, void 0), x.getCookie (o, void 0) = == a? (n =! 1, x.setCookie (o, ”", ”Thu, 01/01/1970 00:00:01 GMT”, void 0, t, void 0)): (i + = - 1, n = Math.abs (i) 0) {t =! 0; var r =! 1, i = function () {r || (r =! 0, e ())}; Đối tượng (g.logInfo) (”“ .concat (E, ”- 拍卖 延迟“) .concat (j, ”最多 获取 ids”)), O = setTimeout (i, j), W (n, i)} else caon (laEVENTS.AUCTION_END, 函数 e () {caoff (laEVENTS.AUCTION_END, e), _> 0? setTimeout (function () {W (n)}, _): W (n)})} e &&! t && e () } 函数 K (e, t) {H (function () {! Function (e, t) {[e] .some (function(e) {return! Array.isArray (e) ||! e.length}) || e.forEach (function (e) {e.bids && Object (g.isArray) (e.bids) && e.bids.forEach (function (e) {var n = function (e, t) {return Array.isArray (e) && e.长度 && t? E.filter (function (e) {return! E.config.bidders ||! Object (g.isArray) (e.config.bidders) || v () (e.config.bidders, t)} ) .filter (function (e) {return Object (g.isPlainObject) (e.idObj) && Object.keys (e.idObj) .length}). Reduce (function (e, t) {return Object.keys (t. idObj) .forEach (function (n) {e [n] = t.idObj [n]}), e}, {}): {}} (t, e.bidder); Object.keys (n) .length && (e.userId = n, e.userIdAsEids = Object (pb) (n))})})} (t.adUnits || Object (sa) (). adUnits, h); var n = S && (Q () || []). find (function (e) {return e.source === S}); if (n && ”string” == typeof Object (g.deepAccess) (n, ”uids.0.id”) ) {var r = n.uids [0] .id.replace (/ [\ W_] /g,[");r.length>=32&&r.length=e.length?{done:!0}:{done :! 1, value: e [r ++]}}, e: function (e) {throw e}, f: i}} ném TypeError mới (“Không hợp lệ 尝试 迭代 不可 迭代 实例。 \ n 为了 可 迭代 , 非 数组 对象必须 有 一个 [Symbol.iterator] () 方法。 ”)} var o, a =! 0, c =! 1; return {s: function () {n = n.call (e)}, n: function ( ) {var e = n.next (); return a = e.done, e}, e: function (e){c =! 0, o = e}, f: function () {try {a || null == n.return || n.return ()} 最后 {if (c) throw o}}}} (i ); hãy thử {for (ss ();! (a = sn ()). done;) {var d = a.value; n.length> 0 && - 1 === n.indexOf (d.submodule.name) || (Object (g.logInfo) (“”. Concat (E, ”- 刷新”) .concat (d.submodule.name)), Z (d, e, o,! 0), $ (d), h.length && N (h), Object (g.isFn) (d.callback) && c.push (d))}} catch (e) {se (e)} last {sf ()} c.length> 0 && W (c ), t && t ()} else Object (g.logWarn) (“”. concat (E, ”- gdpr 权限 无效 对于 本地 存储 或 cookie , 退出 模块”))})} var Y = Object (fb) (“sync ”, Function (e, t) {return {userIdModules: e, hasValidated: t && t.hasValidated}},” validateGdprEnforcement ”); 函数 Z (e, t, n, r) {if (e.config.storage) {var i, o = M (e.config.storage), a =! 1; if (“number” == typeof e.config.storage.refreshInSeconds) {var c = new Date (M (e.config.storage, ” last ”)); a = c && Date.now () - c.getTime ()> 1e3 * e.config.storage .refreshInSeconds}! o || a || r ||! function (e, t) {return null! = n && n === q (t)} (0, t)? i = e.submodule.getId (e.config, t, o): ”function” == typeof e.submodule.extendId && (i = e.submodule.extendId (e.config, t, o)), Object (g.isPlainObject) (i) && (i. id && (B (e, i.id), o = i.id), ”function” == typeof i.callback && (e.callback = i.callback)), o && (e.idObj = e.submodule.decode ( o, e.config))} else if (e.config.value) e.idObj = e.config.value; else {var s = e.submodule.getId (e.config, t, void 0); Đối tượng ( g.isPlainObject) (s) && (“function” == typeof s.callback && (e.callback = s.callback), s.id && (e.idObj = e.submodule.decode (s.id, e.config) ))}} 函数 $ (e) {for (var t =! 1, n = 0; nt? E: t} 函数 d (e, t, n) {! E.preload && e.preloadThreshhold && function (e, t, n , i) {return t.top = e.shownThreshold &&! e.seen? (e.seen =! 0, setTimeout (function () {e.trigger (“显示”, new r (“显示”, t))} ( ) {return t.innerHeight || e.documentElement.clientHeight || e.body.clientHeight}, this.getViewportWidth = function () {return t.innerWidth || e.documentElement.clientWidth || e.body.clientWidth}, this.isElementNotHidden = u, this.isElementInViewport = function (n) {var i = n.getBoundsClientRect (); return i.top> = 0 && i.left> = 0 && i .bottom = o.length) 返回 {完成 : 真}; 返回 {完成 : 假, 值 : o [i ++]};}, e: 函数 e (_e) {抛出 _e;}, f: F};} ném TypeError mới (“对 不可 迭代 实例 的 迭代 尝试 无效。 \ n 为了 可 迭代, 非 数组 对象 必须 具有 [Symbol.iterator] () 方法。 ”);} var normalCompletion = true, didErr = false, err; return {s: function s () {it = o [Symbol.iterator] (); }, n: 函数 n () {var step = it.next (); normalCompletion = step.done; 返回 步骤 ;}, e: 函数 e (_e2) {didErr = true; 错误 = _e2;}, f: function f () {try {if (! normalCompletion && it.return! = null) it.return ();} 最后 {if (didErr) throw err;}}};} function _unsupportedIterableToArray (o, minLen) {if (! o) return; if (typeof o === “string”) return _arrayLikeToArray (o, minLen); var n = Object.prototype.toString.call (o) .slice (8, -1); if (n == = “对象” && o.constructor) n = o.constructor.name; if (n === “Bản đồ” ||n === “Set”) trả về Array.from (o); if (n === “参数” || / ^ (?: Ui | I) nt (?: 8 | 16 | 32) (?: Clamp )? Array $ /. Test (n)) return _arrayLikeToArray (o, minLen);} 函数 _arrayLikeToArray (arr, len) {if (len == null || len> arr.length) len = arr.length; for ( var i = 0, arr2 = new Array (len); i


Thời gian đăng: Jan-19-2022